{"version":3,"file":"static/js/main.1098b323.js","mappings":"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","sources":["components/Loader.jsx","components/RTE.jsx","components/admin/Sidebar.jsx","../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/utils.js","../node_modules/axios/lib/core/AxiosError.js","../node_modules/axios/lib/helpers/toFormData.js","../node_modules/axios/lib/helpers/AxiosURLSearchParams.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/defaults/transitional.js","../node_modules/axios/lib/platform/browser/index.js","../node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","../node_modules/axios/lib/platform/browser/classes/FormData.js","../node_modules/axios/lib/platform/browser/classes/Blob.js","../node_modules/axios/lib/platform/common/utils.js","../node_modules/axios/lib/platform/index.js","../node_modules/axios/lib/helpers/formDataToJSON.js","../node_modules/axios/lib/defaults/index.js","../node_modules/axios/lib/helpers/toURLEncodedForm.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/core/AxiosHeaders.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/cancel/CanceledError.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/helpers/speedometer.js","../node_modules/axios/lib/helpers/throttle.js","../node_modules/axios/lib/helpers/progressEventReducer.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/core/buildFullPath.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/helpers/resolveConfig.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/helpers/parseProtocol.js","../node_modules/axios/lib/helpers/composeSignals.js","../node_modules/axios/lib/helpers/trackStream.js","../node_modules/axios/lib/adapters/fetch.js","../node_modules/axios/lib/adapters/adapters.js","../node_modules/axios/lib/helpers/null.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/env/data.js","../node_modules/axios/lib/helpers/validator.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/helpers/HttpStatusCode.js","../node_modules/axios/lib/axios.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/axios/lib/helpers/isAxiosError.js","lib/api.js","../node_modules/@remix-run/router/history.ts","../node_modules/@remix-run/router/utils.ts","../node_modules/@remix-run/router/router.ts","../node_modules/aos/dist/aos.js","../node_modules/exenv/index.js","../node_modules/lodash/_DataView.js","../node_modules/lodash/_Hash.js","../node_modules/lodash/_ListCache.js","../node_modules/lodash/_Map.js","../node_modules/lodash/_MapCache.js","../node_modules/lodash/_Promise.js","../node_modules/lodash/_Set.js","../node_modules/lodash/_SetCache.js","../node_modules/lodash/_Stack.js","../node_modules/lodash/_Symbol.js","../node_modules/lodash/_Uint8Array.js","../node_modules/lodash/_WeakMap.js","../node_modules/lodash/_arrayFilter.js","../node_modules/lodash/_arrayLikeKeys.js","../node_modules/lodash/_arrayPush.js","../node_modules/lodash/_arraySome.js","../node_modules/lodash/_assocIndexOf.js","../node_modules/lodash/_baseGetAllKeys.js","../node_modules/lodash/_baseGetTag.js","../node_modules/lodash/_baseIsArguments.js","../node_modules/lodash/_baseIsEqual.js","../node_modules/lodash/_baseIsEqualDeep.js","../node_modules/lodash/_baseIsNative.js","../node_modules/lodash/_baseIsTypedArray.js","../node_modules/lodash/_baseKeys.js","../node_modules/lodash/_baseTimes.js","../node_modules/lodash/_baseUnary.js","../node_modules/lodash/_cacheHas.js","../node_modules/lodash/_coreJsData.js","../node_modules/lodash/_equalArrays.js","../node_modules/lodash/_equalByTag.js","../node_modules/lodash/_equalObjects.js","../node_modules/lodash/_freeGlobal.js","../node_modules/lodash/_getAllKeys.js","../node_modules/lodash/_getMapData.js","../node_modules/lodash/_getNative.js","../node_modules/lodash/_getRawTag.js","../node_modules/lodash/_getSymbols.js","../node_modules/lodash/_getTag.js","../node_modules/lodash/_getValue.js","../node_modules/lodash/_hashClear.js","../node_modules/lodash/_hashDelete.js","../node_modules/lodash/_hashGet.js","../node_modules/lodash/_hashHas.js","../node_modules/lodash/_hashSet.js","../node_modules/lodash/_isIndex.js","../node_modules/lodash/_isKeyable.js","../node_modules/lodash/_isMasked.js","../node_modules/lodash/_isPrototype.js","../node_modules/lodash/_listCacheClear.js","../node_modules/lodash/_listCacheDelete.js","../node_modules/lodash/_listCacheGet.js","../node_modules/lodash/_listCacheHas.js","../node_modules/lodash/_listCacheSet.js","../node_modules/lodash/_mapCacheClear.js","../node_modules/lodash/_mapCacheDelete.js","../node_modules/lodash/_mapCacheGet.js","../node_modules/lodash/_mapCacheHas.js","../node_modules/lodash/_mapCacheSet.js","../node_modules/lodash/_mapToArray.js","../node_modules/lodash/_nativeCreate.js","../node_modules/lodash/_nativeKeys.js","../node_modules/lodash/_nodeUtil.js","../node_modules/lodash/_objectToString.js","../node_modules/lodash/_overArg.js","../node_modules/lodash/_root.js","../node_modules/lodash/_setCacheAdd.js","../node_modules/lodash/_setCacheHas.js","../node_modules/lodash/_setToArray.js","../node_modules/lodash/_stackClear.js","../node_modules/lodash/_stackDelete.js","../node_modules/lodash/_stackGet.js","../node_modules/lodash/_stackHas.js","../node_modules/lodash/_stackSet.js","../node_modules/lodash/_toSource.js","../node_modules/lodash/eq.js","../node_modules/lodash/isArguments.js","../node_modules/lodash/isArray.js","../node_modules/lodash/isArrayLike.js","../node_modules/lodash/isBuffer.js","../node_modules/lodash/isEqual.js","../node_modules/lodash/isFunction.js","../node_modules/lodash/isLength.js","../node_modules/lodash/isObject.js","../node_modules/lodash/isObjectLike.js","../node_modules/lodash/isTypedArray.js","../node_modules/lodash/keys.js","../node_modules/lodash/stubArray.js","../node_modules/lodash/stubFalse.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/quill/dist/quill.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/client.js","../node_modules/react-dom/index.js","../node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js","../node_modules/react-modal/lib/components/Modal.js","../node_modules/react-modal/lib/components/ModalPortal.js","../node_modules/react-modal/lib/helpers/ariaAppHider.js","../node_modules/react-modal/lib/helpers/bodyTrap.js","../node_modules/react-modal/lib/helpers/classList.js","../node_modules/react-modal/lib/helpers/focusManager.js","../node_modules/react-modal/lib/helpers/portalOpenInstances.js","../node_modules/react-modal/lib/helpers/safeHTMLElement.js","../node_modules/react-modal/lib/helpers/scopeTab.js","../node_modules/react-modal/lib/helpers/tabbable.js","../node_modules/react-modal/lib/index.js","../node_modules/react-quill/src/index.tsx","../node_modules/react-router-dom/dom.ts","../node_modules/react-router-dom/index.tsx","../node_modules/react-router/lib/context.ts","../node_modules/react-router/lib/hooks.tsx","../node_modules/react-router/lib/components.tsx","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/warning/warning.js","../node_modules/react-icons/fa/index.mjs","../node_modules/react-icons/lib/iconsManifest.mjs","../node_modules/react-icons/lib/iconContext.mjs","../node_modules/react-icons/lib/iconBase.mjs","../node_modules/react-icons/md/index.mjs","../node_modules/clsx/dist/clsx.mjs","../webpack/bootstrap","../webpack/runtime/compat get default export","../webpack/runtime/create fake namespace object","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/get mini-css chunk filename","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/load script","../webpack/runtime/make namespace object","../webpack/runtime/node module decorator","../webpack/runtime/publicPath","../webpack/runtime/css loading","../webpack/runtime/jsonp chunk loading","components/ScrollToTop.jsx","components/Layout/Navbar.jsx","components/Layout/Footer.jsx","components/admin/AddCategoryModal.jsx","components/admin/EditCategoryModal.jsx","components/admin/AddProject.jsx","components/admin/PortfolioUpdate.jsx","pages/ViewBlogs.jsx","components/admin/blogs/AddBlog.jsx","components/admin/blogs/EditBlog.jsx","components/admin/blogs/AllBlogs.jsx","App.jsx","index.js"],"sourcesContent":["import React from \"react\"\r\nconst Loader = () => {\r\n return (\r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default Loader","import React from \"react\"\r\nimport ReactQuill from \"react-quill\"\r\nimport \"react-quill/dist/quill.snow.css\"\r\nfunction RTE({ value, onChange, toolbarOptions }) {\r\n const modules = {\r\n toolbar: toolbarOptions || [\r\n [{ header: [1, 2, 3, false] }],\r\n [\"bold\", \"italic\", \"underline\", \"strike\"],\r\n [{ color: [] }, { background: [] }],\r\n [{ list: \"ordered\" }, { list: \"bullet\" }],\r\n [{ align: [] }],\r\n [\"blockquote\", \"code-block\"],\r\n [\"link\", \"image\", \"video\"],\r\n [\"clean\"]\r\n ]\r\n }\r\n return (\r\n \r\n )\r\n}\r\n\r\nexport default RTE\r\n","import { FaTimes } from \"react-icons/fa\"\r\nimport { NavLink } from \"react-router-dom\"\r\n\r\nconst Sidebar = ({ isOpen, onClose, onLogout }) => {\r\n return (\r\n <>\r\n \r\n \r\n
\r\n

Dashboard

\r\n \r\n
\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default Sidebar\r\n","'use strict';\n\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\n\nconst kindOf = (cache => thing => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type\n}\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n let kind;\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) || (\n isFunction(thing.append) && (\n (kind = kindOf(thing)) === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n )\n )\n )\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\nconst [isReadableStream, isRequest, isResponse, isHeaders] = ['ReadableStream', 'Request', 'Response', 'Headers'].map(kindOfTest);\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\nfunction findKey(obj, key) {\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== \"undefined\") return globalThis;\n return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const {caseless} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else {\n result[targetKey] = val;\n }\n }\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype\n });\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n // eslint-disable-next-line func-names\n return thing => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[Symbol.iterator];\n\n const iterator = generator.call(obj);\n\n let result;\n\n while ((result = iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n}\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n}\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n}\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n };\n }\n });\n}\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach(value => {\n obj[value] = true;\n });\n }\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n}\n\nconst noop = () => {}\n\nconst toFiniteNumber = (value, defaultValue) => {\n return value != null && Number.isFinite(value = +value) ? value : defaultValue;\n}\n\nconst ALPHA = 'abcdefghijklmnopqrstuvwxyz'\n\nconst DIGIT = '0123456789';\n\nconst ALPHABET = {\n DIGIT,\n ALPHA,\n ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT\n}\n\nconst generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {\n let str = '';\n const {length} = alphabet;\n while (size--) {\n str += alphabet[Math.random() * length|0]\n }\n\n return str;\n}\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n }\n\n return visit(obj, 0);\n}\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isReadableStream,\n isRequest,\n isResponse,\n isHeaders,\n isUndefined,\n isDate,\n isFile,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n ALPHABET,\n generateString,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n response && (this.response = response);\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: utils.toJSONObject(this.config),\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n }\n});\n\nconst prototype = AxiosError.prototype;\nconst descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.cause = error;\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nexport default AxiosError;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n });\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value))\n )) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n\n function build(value, path) {\n if (utils.isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result = !(utils.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object} params - The parameters to be converted to a FormData object.\n * @param {Object} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder ? function(value) {\n return encoder.call(this, value, encode);\n } : encode;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '').join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?object} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n \n const _encode = options && options.encode || encode;\n\n const serializeFn = options && options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, options);\n } else {\n serializedParams = utils.isURLSearchParams(params) ?\n params.toString() :\n new AxiosURLSearchParams(params, options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf(\"#\");\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","import URLSearchParams from './classes/URLSearchParams.js'\nimport FormData from './classes/FormData.js'\nimport Blob from './classes/Blob.js'\n\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob\n },\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n};\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","'use strict';\n\nexport default typeof FormData !== 'undefined' ? FormData : null;\n","'use strict'\n\nexport default typeof Blob !== 'undefined' ? Blob : null\n","const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv = (\n (product) => {\n return hasBrowserEnv && ['ReactNative', 'NativeScript', 'NS'].indexOf(product) < 0\n })(typeof navigator !== 'undefined' && navigator.product);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nconst origin = hasBrowserEnv && window.location.href || 'http://localhost';\n\nexport {\n hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv,\n origin\n}\n","import platform from './node/index.js';\nimport * as utils from './common/utils.js';\n\nexport default {\n ...utils,\n ...platform\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n\n if (name === '__proto__') return true;\n\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http', 'fetch'],\n\n transformRequest: [function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data) ||\n utils.isReadableStream(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType ) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (utils.isResponse(data) || utils.isReadableStream(data)) {\n return data;\n }\n\n if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*',\n 'Content-Type': undefined\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({\n visitor: function(value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n }\n }, options));\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default rawHeaders => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header.trim()\n .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach(methodName => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function(arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils.findKey(self, lHeader);\n\n if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite)\n } else if(utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else if (utils.isHeaders(header)) {\n for (const [key, value] of header.entries()) {\n setHeader(value, key, rewrite);\n }\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null && value !== false && (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals = this[$internals] = (this[$internals] = {\n accessors: {}\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n }\n }\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from './../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n","'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nexport default CanceledError;\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n}\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n };\n}\n\nexport default speedometer;\n","'use strict';\n\n/**\n * Throttle decorator\n * @param {Function} fn\n * @param {Number} freq\n * @return {Function}\n */\nfunction throttle(fn, freq) {\n let timestamp = 0;\n const threshold = 1000 / freq;\n let timer = null;\n return function throttled() {\n const force = this === true;\n\n const now = Date.now();\n if (force || now - timestamp > threshold) {\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n timestamp = now;\n return fn.apply(null, arguments);\n }\n if (!timer) {\n timer = setTimeout(() => {\n timer = null;\n timestamp = Date.now();\n return fn.apply(null, arguments);\n }, threshold - (now - timestamp));\n }\n };\n}\n\nexport default throttle;\n","import speedometer from \"./speedometer.js\";\nimport throttle from \"./throttle.js\";\n\nexport default (listener, isDownloadStream, freq = 3) => {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return throttle(e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n bytesNotified = loaded;\n\n const data = {\n loaded,\n total,\n progress: total ? (loaded / total) : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n event: e,\n lengthComputable: total != null\n };\n\n data[isDownloadStream ? 'download' : 'upload'] = true;\n\n listener(data);\n }, freq);\n}\n","'use strict';\n\nimport utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n// Standard browser envs have full support of the APIs needed to test\n// whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n const msie = /(msie|trident)/i.test(navigator.userAgent);\n const urlParsingNode = document.createElement('a');\n let originURL;\n\n /**\n * Parse a URL to discover its components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n let href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n const parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })();\n","import utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure) {\n const cookie = [name + '=' + encodeURIComponent(value)];\n\n utils.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());\n\n utils.isString(path) && cookie.push('path=' + path);\n\n utils.isString(domain) && cookie.push('domain=' + domain);\n\n secure === true && cookie.push('secure');\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n }\n\n :\n\n // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {}\n };\n\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from \"./AxiosHeaders.js\";\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders ? { ...thing } : thing;\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({caseless}, target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(a, b, caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n withXSRFToken: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b) => mergeDeepProperties(headersToObject(a), headersToObject(b), true)\n };\n\n utils.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport isURLSameOrigin from \"./isURLSameOrigin.js\";\nimport cookies from \"./cookies.js\";\nimport buildFullPath from \"../core/buildFullPath.js\";\nimport mergeConfig from \"../core/mergeConfig.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport buildURL from \"./buildURL.js\";\n\nexport default (config) => {\n const newConfig = mergeConfig({}, config);\n\n let {data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth} = newConfig;\n\n newConfig.headers = headers = AxiosHeaders.from(headers);\n\n newConfig.url = buildURL(buildFullPath(newConfig.baseURL, newConfig.url), config.params, config.paramsSerializer);\n\n // HTTP basic authentication\n if (auth) {\n headers.set('Authorization', 'Basic ' +\n btoa((auth.username || '') + ':' + (auth.password ? unescape(encodeURIComponent(auth.password)) : ''))\n );\n }\n\n let contentType;\n\n if (utils.isFormData(data)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n headers.setContentType(undefined); // Let the browser set it\n } else if ((contentType = headers.getContentType()) !== false) {\n // fix semicolon duplication issue for ReactNative FormData implementation\n const [type, ...tokens] = contentType ? contentType.split(';').map(token => token.trim()).filter(Boolean) : [];\n headers.setContentType([type || 'multipart/form-data', ...tokens].join('; '));\n }\n }\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n\n if (platform.hasStandardBrowserEnv) {\n withXSRFToken && utils.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(newConfig));\n\n if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(newConfig.url))) {\n // Add xsrf header\n const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName);\n\n if (xsrfValue) {\n headers.set(xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n return newConfig;\n}\n\n","import utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport progressEventReducer from '../helpers/progressEventReducer.js';\nimport resolveConfig from \"../helpers/resolveConfig.js\";\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n const _config = resolveConfig(config);\n let requestData = _config.data;\n const requestHeaders = AxiosHeaders.from(_config.headers).normalize();\n let {responseType} = _config;\n let onCanceled;\n function done() {\n if (_config.cancelToken) {\n _config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (_config.signal) {\n _config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n let request = new XMLHttpRequest();\n\n request.open(_config.method.toUpperCase(), _config.url, true);\n\n // Set the request timeout in MS\n request.timeout = _config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, _config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, _config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = _config.timeout ? 'timeout of ' + _config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = _config.transitional || transitionalDefaults;\n if (_config.timeoutErrorMessage) {\n timeoutErrorMessage = _config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n _config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(_config.withCredentials)) {\n request.withCredentials = !!_config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = _config.responseType;\n }\n\n // Handle progress if needed\n if (typeof _config.onDownloadProgress === 'function') {\n request.addEventListener('progress', progressEventReducer(_config.onDownloadProgress, true));\n }\n\n // Not all browsers support upload events\n if (typeof _config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', progressEventReducer(_config.onUploadProgress));\n }\n\n if (_config.cancelToken || _config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = cancel => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n request = null;\n };\n\n _config.cancelToken && _config.cancelToken.subscribe(onCanceled);\n if (_config.signal) {\n _config.signal.aborted ? onCanceled() : _config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(_config.url);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData || null);\n });\n}\n","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n}\n","import CanceledError from \"../cancel/CanceledError.js\";\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst composeSignals = (signals, timeout) => {\n let controller = new AbortController();\n\n let aborted;\n\n const onabort = function (cancel) {\n if (!aborted) {\n aborted = true;\n unsubscribe();\n const err = cancel instanceof Error ? cancel : this.reason;\n controller.abort(err instanceof AxiosError ? err : new CanceledError(err instanceof Error ? err.message : err));\n }\n }\n\n let timer = timeout && setTimeout(() => {\n onabort(new AxiosError(`timeout ${timeout} of ms exceeded`, AxiosError.ETIMEDOUT))\n }, timeout)\n\n const unsubscribe = () => {\n if (signals) {\n timer && clearTimeout(timer);\n timer = null;\n signals.forEach(signal => {\n signal &&\n (signal.removeEventListener ? signal.removeEventListener('abort', onabort) : signal.unsubscribe(onabort));\n });\n signals = null;\n }\n }\n\n signals.forEach((signal) => signal && signal.addEventListener && signal.addEventListener('abort', onabort));\n\n const {signal} = controller;\n\n signal.unsubscribe = unsubscribe;\n\n return [signal, () => {\n timer && clearTimeout(timer);\n timer = null;\n }];\n}\n\nexport default composeSignals;\n","\n\nexport const streamChunk = function* (chunk, chunkSize) {\n let len = chunk.byteLength;\n\n if (!chunkSize || len < chunkSize) {\n yield chunk;\n return;\n }\n\n let pos = 0;\n let end;\n\n while (pos < len) {\n end = pos + chunkSize;\n yield chunk.slice(pos, end);\n pos = end;\n }\n}\n\nexport const readBytes = async function* (iterable, chunkSize, encode) {\n for await (const chunk of iterable) {\n yield* streamChunk(ArrayBuffer.isView(chunk) ? chunk : (await encode(String(chunk))), chunkSize);\n }\n}\n\nexport const trackStream = (stream, chunkSize, onProgress, onFinish, encode) => {\n const iterator = readBytes(stream, chunkSize, encode);\n\n let bytes = 0;\n\n return new ReadableStream({\n type: 'bytes',\n\n async pull(controller) {\n const {done, value} = await iterator.next();\n\n if (done) {\n controller.close();\n onFinish();\n return;\n }\n\n let len = value.byteLength;\n onProgress && onProgress(bytes += len);\n controller.enqueue(new Uint8Array(value));\n },\n cancel(reason) {\n onFinish(reason);\n return iterator.return();\n }\n }, {\n highWaterMark: 2\n })\n}\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport AxiosError from \"../core/AxiosError.js\";\nimport composeSignals from \"../helpers/composeSignals.js\";\nimport {trackStream} from \"../helpers/trackStream.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport progressEventReducer from \"../helpers/progressEventReducer.js\";\nimport resolveConfig from \"../helpers/resolveConfig.js\";\nimport settle from \"../core/settle.js\";\n\nconst fetchProgressDecorator = (total, fn) => {\n const lengthComputable = total != null;\n return (loaded) => setTimeout(() => fn({\n lengthComputable,\n total,\n loaded\n }));\n}\n\nconst isFetchSupported = typeof fetch === 'function' && typeof Request === 'function' && typeof Response === 'function';\nconst isReadableStreamSupported = isFetchSupported && typeof ReadableStream === 'function';\n\n// used only inside the fetch adapter\nconst encodeText = isFetchSupported && (typeof TextEncoder === 'function' ?\n ((encoder) => (str) => encoder.encode(str))(new TextEncoder()) :\n async (str) => new Uint8Array(await new Response(str).arrayBuffer())\n);\n\nconst supportsRequestStream = isReadableStreamSupported && (() => {\n let duplexAccessed = false;\n\n const hasContentType = new Request(platform.origin, {\n body: new ReadableStream(),\n method: 'POST',\n get duplex() {\n duplexAccessed = true;\n return 'half';\n },\n }).headers.has('Content-Type');\n\n return duplexAccessed && !hasContentType;\n})();\n\nconst DEFAULT_CHUNK_SIZE = 64 * 1024;\n\nconst supportsResponseStream = isReadableStreamSupported && !!(()=> {\n try {\n return utils.isReadableStream(new Response('').body);\n } catch(err) {\n // return undefined\n }\n})();\n\nconst resolvers = {\n stream: supportsResponseStream && ((res) => res.body)\n};\n\nisFetchSupported && (((res) => {\n ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach(type => {\n !resolvers[type] && (resolvers[type] = utils.isFunction(res[type]) ? (res) => res[type]() :\n (_, config) => {\n throw new AxiosError(`Response type '${type}' is not supported`, AxiosError.ERR_NOT_SUPPORT, config);\n })\n });\n})(new Response));\n\nconst getBodyLength = async (body) => {\n if (body == null) {\n return 0;\n }\n\n if(utils.isBlob(body)) {\n return body.size;\n }\n\n if(utils.isSpecCompliantForm(body)) {\n return (await new Request(body).arrayBuffer()).byteLength;\n }\n\n if(utils.isArrayBufferView(body)) {\n return body.byteLength;\n }\n\n if(utils.isURLSearchParams(body)) {\n body = body + '';\n }\n\n if(utils.isString(body)) {\n return (await encodeText(body)).byteLength;\n }\n}\n\nconst resolveBodyLength = async (headers, body) => {\n const length = utils.toFiniteNumber(headers.getContentLength());\n\n return length == null ? getBodyLength(body) : length;\n}\n\nexport default isFetchSupported && (async (config) => {\n let {\n url,\n method,\n data,\n signal,\n cancelToken,\n timeout,\n onDownloadProgress,\n onUploadProgress,\n responseType,\n headers,\n withCredentials = 'same-origin',\n fetchOptions\n } = resolveConfig(config);\n\n responseType = responseType ? (responseType + '').toLowerCase() : 'text';\n\n let [composedSignal, stopTimeout] = (signal || cancelToken || timeout) ?\n composeSignals([signal, cancelToken], timeout) : [];\n\n let finished, request;\n\n const onFinish = () => {\n !finished && setTimeout(() => {\n composedSignal && composedSignal.unsubscribe();\n });\n\n finished = true;\n }\n\n let requestContentLength;\n\n try {\n if (\n onUploadProgress && supportsRequestStream && method !== 'get' && method !== 'head' &&\n (requestContentLength = await resolveBodyLength(headers, data)) !== 0\n ) {\n let _request = new Request(url, {\n method: 'POST',\n body: data,\n duplex: \"half\"\n });\n\n let contentTypeHeader;\n\n if (utils.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {\n headers.setContentType(contentTypeHeader)\n }\n\n if (_request.body) {\n data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, fetchProgressDecorator(\n requestContentLength,\n progressEventReducer(onUploadProgress)\n ), null, encodeText);\n }\n }\n\n if (!utils.isString(withCredentials)) {\n withCredentials = withCredentials ? 'cors' : 'omit';\n }\n\n request = new Request(url, {\n ...fetchOptions,\n signal: composedSignal,\n method: method.toUpperCase(),\n headers: headers.normalize().toJSON(),\n body: data,\n duplex: \"half\",\n withCredentials\n });\n\n let response = await fetch(request);\n\n const isStreamResponse = supportsResponseStream && (responseType === 'stream' || responseType === 'response');\n\n if (supportsResponseStream && (onDownloadProgress || isStreamResponse)) {\n const options = {};\n\n ['status', 'statusText', 'headers'].forEach(prop => {\n options[prop] = response[prop];\n });\n\n const responseContentLength = utils.toFiniteNumber(response.headers.get('content-length'));\n\n response = new Response(\n trackStream(response.body, DEFAULT_CHUNK_SIZE, onDownloadProgress && fetchProgressDecorator(\n responseContentLength,\n progressEventReducer(onDownloadProgress, true)\n ), isStreamResponse && onFinish, encodeText),\n options\n );\n }\n\n responseType = responseType || 'text';\n\n let responseData = await resolvers[utils.findKey(resolvers, responseType) || 'text'](response, config);\n\n !isStreamResponse && onFinish();\n\n stopTimeout && stopTimeout();\n\n return await new Promise((resolve, reject) => {\n settle(resolve, reject, {\n data: responseData,\n headers: AxiosHeaders.from(response.headers),\n status: response.status,\n statusText: response.statusText,\n config,\n request\n })\n })\n } catch (err) {\n onFinish();\n\n if (err && err.name === 'TypeError' && /fetch/i.test(err.message)) {\n throw Object.assign(\n new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request),\n {\n cause: err.cause || err\n }\n )\n }\n\n throw AxiosError.from(err, err && err.code, config, request);\n }\n});\n\n\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport fetchAdapter from './fetch.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter,\n fetch: fetchAdapter\n}\n\nutils.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n Object.defineProperty(fn, 'name', {value});\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', {value});\n }\n});\n\nconst renderReason = (reason) => `- ${reason}`;\n\nconst isResolvedHandle = (adapter) => utils.isFunction(adapter) || adapter === null || adapter === false;\n\nexport default {\n getAdapter: (adapters) => {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const {length} = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n\n const reasons = Object.entries(rejectedReasons)\n .map(([id, state]) => `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length ?\n (reasons.length > 1 ? 'since :\\n' + reasons.map(renderReason).join('\\n') : ' ' + renderReason(reasons[0])) :\n 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n },\n adapters: knownAdapters\n}\n","// eslint-disable-next-line strict\nexport default null;\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from \"../adapters/adapters.js\";\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.transformRequest\n );\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults.adapter);\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n config.transformResponse,\n response\n );\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n","export const VERSION = \"1.7.2\";","'use strict';\n\nimport {VERSION} from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nexport default {\n assertOptions,\n validators\n};\n","'use strict';\n\nimport utils from './../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n async request(configOrUrl, config) {\n try {\n return await this._request(configOrUrl, config);\n } catch (err) {\n if (err instanceof Error) {\n let dummy;\n\n Error.captureStackTrace ? Error.captureStackTrace(dummy = {}) : (dummy = new Error());\n\n // slice off the Error: ... line\n const stack = dummy.stack ? dummy.stack.replace(/^.+\\n/, '') : '';\n try {\n if (!err.stack) {\n err.stack = stack;\n // match without the 2 top stack lines\n } else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\\n.+\\n/, ''))) {\n err.stack += '\\n' + stack\n }\n } catch (e) {\n // ignore the case where \"stack\" is an un-writable property\n }\n }\n\n throw err;\n }\n }\n\n _request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const {transitional, paramsSerializer, headers} = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer\n }\n } else {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n }\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils.merge(\n headers.common,\n headers[config.method]\n );\n\n headers && utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n (method) => {\n delete headers[method];\n }\n );\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift.apply(chain, requestInterceptorChain);\n chain.push.apply(chain, responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n i = 0;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nexport default Axios;\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(cancel => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = onfulfilled => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise(resolve => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel\n };\n }\n}\n\nexport default CancelToken;\n","const HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport {VERSION} from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from \"./core/AxiosHeaders.js\";\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, {allOwnKeys: true});\n\n // Copy context to instance\n utils.extend(instance, context, null, {allOwnKeys: true});\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = thing => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n}\n","/* eslint-disable comma-dangle */\r\n/* eslint-disable semi */\r\nimport axios from \"axios\"\r\n\r\nconst BASE_URL = \"https://job.aptechmedia.com\"\r\n\r\nconst api = axios.create({\r\n baseURL: BASE_URL,\r\n headers: {\r\n \"Content-Type\": \"application/json\"\r\n }\r\n})\r\n\r\nexport const apiCall = async (method, url, data = {}, headers = {}) => {\r\n try {\r\n const response = await api({\r\n method,\r\n url,\r\n data,\r\n headers: {\r\n ...api.defaults.headers,\r\n ...headers\r\n }\r\n })\r\n return response.data\r\n } catch (error) {\r\n console.error(\"API call error:\", error)\r\n throw error\r\n }\r\n}\r\n\r\nexport default api\r\n","////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Actions represent the type of change to a location value.\n */\nexport enum Action {\n /**\n * A POP indicates a change to an arbitrary index in the history stack, such\n * as a back or forward navigation. It does not describe the direction of the\n * navigation, only that the current index changed.\n *\n * Note: This is the default action for newly created history objects.\n */\n Pop = \"POP\",\n\n /**\n * A PUSH indicates a new entry being added to the history stack, such as when\n * a link is clicked and a new page loads. When this happens, all subsequent\n * entries in the stack are lost.\n */\n Push = \"PUSH\",\n\n /**\n * A REPLACE indicates the entry at the current index in the history stack\n * being replaced by a new one.\n */\n Replace = \"REPLACE\",\n}\n\n/**\n * The pathname, search, and hash values of a URL.\n */\nexport interface Path {\n /**\n * A URL pathname, beginning with a /.\n */\n pathname: string;\n\n /**\n * A URL search string, beginning with a ?.\n */\n search: string;\n\n /**\n * A URL fragment identifier, beginning with a #.\n */\n hash: string;\n}\n\n// TODO: (v7) Change the Location generic default from `any` to `unknown` and\n// remove Remix `useLocation` wrapper.\n\n/**\n * An entry in a history stack. A location contains information about the\n * URL path, as well as possibly some arbitrary state and a key.\n */\nexport interface Location extends Path {\n /**\n * A value of arbitrary data associated with this location.\n */\n state: State;\n\n /**\n * A unique string associated with this location. May be used to safely store\n * and retrieve data in some other storage API, like `localStorage`.\n *\n * Note: This value is always \"default\" on the initial location.\n */\n key: string;\n}\n\n/**\n * A change to the current location.\n */\nexport interface Update {\n /**\n * The action that triggered the change.\n */\n action: Action;\n\n /**\n * The new location.\n */\n location: Location;\n\n /**\n * The delta between this location and the former location in the history stack\n */\n delta: number | null;\n}\n\n/**\n * A function that receives notifications about location changes.\n */\nexport interface Listener {\n (update: Update): void;\n}\n\n/**\n * Describes a location that is the destination of some navigation, either via\n * `history.push` or `history.replace`. This may be either a URL or the pieces\n * of a URL path.\n */\nexport type To = string | Partial;\n\n/**\n * A history is an interface to the navigation stack. The history serves as the\n * source of truth for the current location, as well as provides a set of\n * methods that may be used to change it.\n *\n * It is similar to the DOM's `window.history` object, but with a smaller, more\n * focused API.\n */\nexport interface History {\n /**\n * The last action that modified the current location. This will always be\n * Action.Pop when a history instance is first created. This value is mutable.\n */\n readonly action: Action;\n\n /**\n * The current location. This value is mutable.\n */\n readonly location: Location;\n\n /**\n * Returns a valid href for the given `to` value that may be used as\n * the value of an attribute.\n *\n * @param to - The destination URL\n */\n createHref(to: To): string;\n\n /**\n * Returns a URL for the given `to` value\n *\n * @param to - The destination URL\n */\n createURL(to: To): URL;\n\n /**\n * Encode a location the same way window.history would do (no-op for memory\n * history) so we ensure our PUSH/REPLACE navigations for data routers\n * behave the same as POP\n *\n * @param to Unencoded path\n */\n encodeLocation(to: To): Path;\n\n /**\n * Pushes a new location onto the history stack, increasing its length by one.\n * If there were any entries in the stack after the current one, they are\n * lost.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n push(to: To, state?: any): void;\n\n /**\n * Replaces the current location in the history stack with a new one. The\n * location that was replaced will no longer be available.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n replace(to: To, state?: any): void;\n\n /**\n * Navigates `n` entries backward/forward in the history stack relative to the\n * current index. For example, a \"back\" navigation would use go(-1).\n *\n * @param delta - The delta in the stack index\n */\n go(delta: number): void;\n\n /**\n * Sets up a listener that will be called whenever the current location\n * changes.\n *\n * @param listener - A function that will be called when the location changes\n * @returns unlisten - A function that may be used to stop listening\n */\n listen(listener: Listener): () => void;\n}\n\ntype HistoryState = {\n usr: any;\n key?: string;\n idx: number;\n};\n\nconst PopStateEventType = \"popstate\";\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Memory History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A user-supplied object that describes a location. Used when providing\n * entries to `createMemoryHistory` via its `initialEntries` option.\n */\nexport type InitialEntry = string | Partial;\n\nexport type MemoryHistoryOptions = {\n initialEntries?: InitialEntry[];\n initialIndex?: number;\n v5Compat?: boolean;\n};\n\n/**\n * A memory history stores locations in memory. This is useful in stateful\n * environments where there is no web browser, such as node tests or React\n * Native.\n */\nexport interface MemoryHistory extends History {\n /**\n * The current index in the history stack.\n */\n readonly index: number;\n}\n\n/**\n * Memory history stores the current location in memory. It is designed for use\n * in stateful non-browser environments like tests and React Native.\n */\nexport function createMemoryHistory(\n options: MemoryHistoryOptions = {}\n): MemoryHistory {\n let { initialEntries = [\"/\"], initialIndex, v5Compat = false } = options;\n let entries: Location[]; // Declare so we can access from createMemoryLocation\n entries = initialEntries.map((entry, index) =>\n createMemoryLocation(\n entry,\n typeof entry === \"string\" ? null : entry.state,\n index === 0 ? \"default\" : undefined\n )\n );\n let index = clampIndex(\n initialIndex == null ? entries.length - 1 : initialIndex\n );\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n function clampIndex(n: number): number {\n return Math.min(Math.max(n, 0), entries.length - 1);\n }\n function getCurrentLocation(): Location {\n return entries[index];\n }\n function createMemoryLocation(\n to: To,\n state: any = null,\n key?: string\n ): Location {\n let location = createLocation(\n entries ? getCurrentLocation().pathname : \"/\",\n to,\n state,\n key\n );\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in memory history: ${JSON.stringify(\n to\n )}`\n );\n return location;\n }\n\n function createHref(to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n let history: MemoryHistory = {\n get index() {\n return index;\n },\n get action() {\n return action;\n },\n get location() {\n return getCurrentLocation();\n },\n createHref,\n createURL(to) {\n return new URL(createHref(to), \"http://localhost\");\n },\n encodeLocation(to: To) {\n let path = typeof to === \"string\" ? parsePath(to) : to;\n return {\n pathname: path.pathname || \"\",\n search: path.search || \"\",\n hash: path.hash || \"\",\n };\n },\n push(to, state) {\n action = Action.Push;\n let nextLocation = createMemoryLocation(to, state);\n index += 1;\n entries.splice(index, entries.length, nextLocation);\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 1 });\n }\n },\n replace(to, state) {\n action = Action.Replace;\n let nextLocation = createMemoryLocation(to, state);\n entries[index] = nextLocation;\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 0 });\n }\n },\n go(delta) {\n action = Action.Pop;\n let nextIndex = clampIndex(index + delta);\n let nextLocation = entries[nextIndex];\n index = nextIndex;\n if (listener) {\n listener({ action, location: nextLocation, delta });\n }\n },\n listen(fn: Listener) {\n listener = fn;\n return () => {\n listener = null;\n };\n },\n };\n\n return history;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Browser History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A browser history stores the current location in regular URLs in a web\n * browser environment. This is the standard for most web apps and provides the\n * cleanest URLs the browser's address bar.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#browserhistory\n */\nexport interface BrowserHistory extends UrlHistory {}\n\nexport type BrowserHistoryOptions = UrlHistoryOptions;\n\n/**\n * Browser history stores the location in regular URLs. This is the standard for\n * most web apps, but it requires some configuration on the server to ensure you\n * serve the same app at multiple URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createbrowserhistory\n */\nexport function createBrowserHistory(\n options: BrowserHistoryOptions = {}\n): BrowserHistory {\n function createBrowserLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let { pathname, search, hash } = window.location;\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createBrowserHref(window: Window, to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n return getUrlBasedHistory(\n createBrowserLocation,\n createBrowserHref,\n null,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Hash History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A hash history stores the current location in the fragment identifier portion\n * of the URL in a web browser environment.\n *\n * This is ideal for apps that do not control the server for some reason\n * (because the fragment identifier is never sent to the server), including some\n * shared hosting environments that do not provide fine-grained controls over\n * which pages are served at which URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#hashhistory\n */\nexport interface HashHistory extends UrlHistory {}\n\nexport type HashHistoryOptions = UrlHistoryOptions;\n\n/**\n * Hash history stores the location in window.location.hash. This makes it ideal\n * for situations where you don't want to send the location to the server for\n * some reason, either because you do cannot configure it or the URL space is\n * reserved for something else.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createhashhistory\n */\nexport function createHashHistory(\n options: HashHistoryOptions = {}\n): HashHistory {\n function createHashLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n } = parsePath(window.location.hash.substr(1));\n\n // Hash URL should always have a leading / just like window.location.pathname\n // does, so if an app ends up at a route like /#something then we add a\n // leading slash so all of our path-matching behaves the same as if it would\n // in a browser router. This is particularly important when there exists a\n // root splat route () since that matches internally against\n // \"/*\" and we'd expect /#something to 404 in a hash router app.\n if (!pathname.startsWith(\"/\") && !pathname.startsWith(\".\")) {\n pathname = \"/\" + pathname;\n }\n\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createHashHref(window: Window, to: To) {\n let base = window.document.querySelector(\"base\");\n let href = \"\";\n\n if (base && base.getAttribute(\"href\")) {\n let url = window.location.href;\n let hashIndex = url.indexOf(\"#\");\n href = hashIndex === -1 ? url : url.slice(0, hashIndex);\n }\n\n return href + \"#\" + (typeof to === \"string\" ? to : createPath(to));\n }\n\n function validateHashLocation(location: Location, to: To) {\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in hash history.push(${JSON.stringify(\n to\n )})`\n );\n }\n\n return getUrlBasedHistory(\n createHashLocation,\n createHashHref,\n validateHashLocation,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region UTILS\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * @private\n */\nexport function invariant(value: boolean, message?: string): asserts value;\nexport function invariant(\n value: T | null | undefined,\n message?: string\n): asserts value is T;\nexport function invariant(value: any, message?: string) {\n if (value === false || value === null || typeof value === \"undefined\") {\n throw new Error(message);\n }\n}\n\nexport function warning(cond: any, message: string) {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n\n try {\n // Welcome to debugging history!\n //\n // This error is thrown as a convenience, so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\nfunction createKey() {\n return Math.random().toString(36).substr(2, 8);\n}\n\n/**\n * For browser-based histories, we combine the state and key into an object\n */\nfunction getHistoryState(location: Location, index: number): HistoryState {\n return {\n usr: location.state,\n key: location.key,\n idx: index,\n };\n}\n\n/**\n * Creates a Location object with a unique key from the given Path\n */\nexport function createLocation(\n current: string | Location,\n to: To,\n state: any = null,\n key?: string\n): Readonly {\n let location: Readonly = {\n pathname: typeof current === \"string\" ? current : current.pathname,\n search: \"\",\n hash: \"\",\n ...(typeof to === \"string\" ? parsePath(to) : to),\n state,\n // TODO: This could be cleaned up. push/replace should probably just take\n // full Locations now and avoid the need to run through this flow at all\n // But that's a pretty big refactor to the current test suite so going to\n // keep as is for the time being and just let any incoming keys take precedence\n key: (to && (to as Location).key) || key || createKey(),\n };\n return location;\n}\n\n/**\n * Creates a string URL path from the given pathname, search, and hash components.\n */\nexport function createPath({\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n}: Partial) {\n if (search && search !== \"?\")\n pathname += search.charAt(0) === \"?\" ? search : \"?\" + search;\n if (hash && hash !== \"#\")\n pathname += hash.charAt(0) === \"#\" ? hash : \"#\" + hash;\n return pathname;\n}\n\n/**\n * Parses a string URL path into its separate pathname, search, and hash components.\n */\nexport function parsePath(path: string): Partial {\n let parsedPath: Partial = {};\n\n if (path) {\n let hashIndex = path.indexOf(\"#\");\n if (hashIndex >= 0) {\n parsedPath.hash = path.substr(hashIndex);\n path = path.substr(0, hashIndex);\n }\n\n let searchIndex = path.indexOf(\"?\");\n if (searchIndex >= 0) {\n parsedPath.search = path.substr(searchIndex);\n path = path.substr(0, searchIndex);\n }\n\n if (path) {\n parsedPath.pathname = path;\n }\n }\n\n return parsedPath;\n}\n\nexport interface UrlHistory extends History {}\n\nexport type UrlHistoryOptions = {\n window?: Window;\n v5Compat?: boolean;\n};\n\nfunction getUrlBasedHistory(\n getLocation: (window: Window, globalHistory: Window[\"history\"]) => Location,\n createHref: (window: Window, to: To) => string,\n validateLocation: ((location: Location, to: To) => void) | null,\n options: UrlHistoryOptions = {}\n): UrlHistory {\n let { window = document.defaultView!, v5Compat = false } = options;\n let globalHistory = window.history;\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n let index = getIndex()!;\n // Index should only be null when we initialize. If not, it's because the\n // user called history.pushState or history.replaceState directly, in which\n // case we should log a warning as it will result in bugs.\n if (index == null) {\n index = 0;\n globalHistory.replaceState({ ...globalHistory.state, idx: index }, \"\");\n }\n\n function getIndex(): number {\n let state = globalHistory.state || { idx: null };\n return state.idx;\n }\n\n function handlePop() {\n action = Action.Pop;\n let nextIndex = getIndex();\n let delta = nextIndex == null ? null : nextIndex - index;\n index = nextIndex;\n if (listener) {\n listener({ action, location: history.location, delta });\n }\n }\n\n function push(to: To, state?: any) {\n action = Action.Push;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n index = getIndex() + 1;\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n\n // try...catch because iOS limits us to 100 pushState calls :/\n try {\n globalHistory.pushState(historyState, \"\", url);\n } catch (error) {\n // If the exception is because `state` can't be serialized, let that throw\n // outwards just like a replace call would so the dev knows the cause\n // https://html.spec.whatwg.org/multipage/nav-history-apis.html#shared-history-push/replace-state-steps\n // https://html.spec.whatwg.org/multipage/structured-data.html#structuredserializeinternal\n if (error instanceof DOMException && error.name === \"DataCloneError\") {\n throw error;\n }\n // They are going to lose state here, but there is no real\n // way to warn them about it since the page will refresh...\n window.location.assign(url);\n }\n\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 1 });\n }\n }\n\n function replace(to: To, state?: any) {\n action = Action.Replace;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n index = getIndex();\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n globalHistory.replaceState(historyState, \"\", url);\n\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 0 });\n }\n }\n\n function createURL(to: To): URL {\n // window.location.origin is \"null\" (the literal string value) in Firefox\n // under certain conditions, notably when serving from a local HTML file\n // See https://bugzilla.mozilla.org/show_bug.cgi?id=878297\n let base =\n window.location.origin !== \"null\"\n ? window.location.origin\n : window.location.href;\n\n let href = typeof to === \"string\" ? to : createPath(to);\n // Treating this as a full URL will strip any trailing spaces so we need to\n // pre-encode them since they might be part of a matching splat param from\n // an ancestor route\n href = href.replace(/ $/, \"%20\");\n invariant(\n base,\n `No window.location.(origin|href) available to create URL for href: ${href}`\n );\n return new URL(href, base);\n }\n\n let history: History = {\n get action() {\n return action;\n },\n get location() {\n return getLocation(window, globalHistory);\n },\n listen(fn: Listener) {\n if (listener) {\n throw new Error(\"A history only accepts one active listener\");\n }\n window.addEventListener(PopStateEventType, handlePop);\n listener = fn;\n\n return () => {\n window.removeEventListener(PopStateEventType, handlePop);\n listener = null;\n };\n },\n createHref(to) {\n return createHref(window, to);\n },\n createURL,\n encodeLocation(to) {\n // Encode a Location the same way window.location would\n let url = createURL(to);\n return {\n pathname: url.pathname,\n search: url.search,\n hash: url.hash,\n };\n },\n push,\n replace,\n go(n) {\n return globalHistory.go(n);\n },\n };\n\n return history;\n}\n\n//#endregion\n","import type { Location, Path, To } from \"./history\";\nimport { invariant, parsePath, warning } from \"./history\";\n\n/**\n * Map of routeId -> data returned from a loader/action/error\n */\nexport interface RouteData {\n [routeId: string]: any;\n}\n\nexport enum ResultType {\n data = \"data\",\n deferred = \"deferred\",\n redirect = \"redirect\",\n error = \"error\",\n}\n\n/**\n * Successful result from a loader or action\n */\nexport interface SuccessResult {\n type: ResultType.data;\n data: any;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Successful defer() result from a loader or action\n */\nexport interface DeferredResult {\n type: ResultType.deferred;\n deferredData: DeferredData;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Redirect result from a loader or action\n */\nexport interface RedirectResult {\n type: ResultType.redirect;\n status: number;\n location: string;\n revalidate: boolean;\n reloadDocument?: boolean;\n}\n\n/**\n * Unsuccessful result from a loader or action\n */\nexport interface ErrorResult {\n type: ResultType.error;\n error: any;\n headers?: Headers;\n}\n\n/**\n * Result from a loader or action - potentially successful or unsuccessful\n */\nexport type DataResult =\n | SuccessResult\n | DeferredResult\n | RedirectResult\n | ErrorResult;\n\ntype LowerCaseFormMethod = \"get\" | \"post\" | \"put\" | \"patch\" | \"delete\";\ntype UpperCaseFormMethod = Uppercase;\n\n/**\n * Users can specify either lowercase or uppercase form methods on `
`,\n * useSubmit(), ``, etc.\n */\nexport type HTMLFormMethod = LowerCaseFormMethod | UpperCaseFormMethod;\n\n/**\n * Active navigation/fetcher form methods are exposed in lowercase on the\n * RouterState\n */\nexport type FormMethod = LowerCaseFormMethod;\nexport type MutationFormMethod = Exclude;\n\n/**\n * In v7, active navigation/fetcher form methods are exposed in uppercase on the\n * RouterState. This is to align with the normalization done via fetch().\n */\nexport type V7_FormMethod = UpperCaseFormMethod;\nexport type V7_MutationFormMethod = Exclude;\n\nexport type FormEncType =\n | \"application/x-www-form-urlencoded\"\n | \"multipart/form-data\"\n | \"application/json\"\n | \"text/plain\";\n\n// Thanks https://github.com/sindresorhus/type-fest!\ntype JsonObject = { [Key in string]: JsonValue } & {\n [Key in string]?: JsonValue | undefined;\n};\ntype JsonArray = JsonValue[] | readonly JsonValue[];\ntype JsonPrimitive = string | number | boolean | null;\ntype JsonValue = JsonPrimitive | JsonObject | JsonArray;\n\n/**\n * @private\n * Internal interface to pass around for action submissions, not intended for\n * external consumption\n */\nexport type Submission =\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: FormData;\n json: undefined;\n text: undefined;\n }\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: undefined;\n json: JsonValue;\n text: undefined;\n }\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: undefined;\n json: undefined;\n text: string;\n };\n\n/**\n * @private\n * Arguments passed to route loader/action functions. Same for now but we keep\n * this as a private implementation detail in case they diverge in the future.\n */\ninterface DataFunctionArgs {\n request: Request;\n params: Params;\n context?: Context;\n}\n\n// TODO: (v7) Change the defaults from any to unknown in and remove Remix wrappers:\n// ActionFunction, ActionFunctionArgs, LoaderFunction, LoaderFunctionArgs\n// Also, make them a type alias instead of an interface\n\n/**\n * Arguments passed to loader functions\n */\nexport interface LoaderFunctionArgs\n extends DataFunctionArgs {}\n\n/**\n * Arguments passed to action functions\n */\nexport interface ActionFunctionArgs\n extends DataFunctionArgs {}\n\n/**\n * Loaders and actions can return anything except `undefined` (`null` is a\n * valid return value if there is no data to return). Responses are preferred\n * and will ease any future migration to Remix\n */\ntype DataFunctionValue = Response | NonNullable | null;\n\n/**\n * Route loader function signature\n */\nexport type LoaderFunction = {\n (args: LoaderFunctionArgs):\n | Promise\n | DataFunctionValue;\n} & { hydrate?: boolean };\n\n/**\n * Route action function signature\n */\nexport interface ActionFunction {\n (args: ActionFunctionArgs):\n | Promise\n | DataFunctionValue;\n}\n\n/**\n * Arguments passed to shouldRevalidate function\n */\nexport interface ShouldRevalidateFunctionArgs {\n currentUrl: URL;\n currentParams: AgnosticDataRouteMatch[\"params\"];\n nextUrl: URL;\n nextParams: AgnosticDataRouteMatch[\"params\"];\n formMethod?: Submission[\"formMethod\"];\n formAction?: Submission[\"formAction\"];\n formEncType?: Submission[\"formEncType\"];\n text?: Submission[\"text\"];\n formData?: Submission[\"formData\"];\n json?: Submission[\"json\"];\n actionResult?: any;\n defaultShouldRevalidate: boolean;\n}\n\n/**\n * Route shouldRevalidate function signature. This runs after any submission\n * (navigation or fetcher), so we flatten the navigation/fetcher submission\n * onto the arguments. It shouldn't matter whether it came from a navigation\n * or a fetcher, what really matters is the URLs and the formData since loaders\n * have to re-run based on the data models that were potentially mutated.\n */\nexport interface ShouldRevalidateFunction {\n (args: ShouldRevalidateFunctionArgs): boolean;\n}\n\n/**\n * Function provided by the framework-aware layers to set `hasErrorBoundary`\n * from the framework-aware `errorElement` prop\n *\n * @deprecated Use `mapRouteProperties` instead\n */\nexport interface DetectErrorBoundaryFunction {\n (route: AgnosticRouteObject): boolean;\n}\n\n/**\n * Function provided by the framework-aware layers to set any framework-specific\n * properties from framework-agnostic properties\n */\nexport interface MapRoutePropertiesFunction {\n (route: AgnosticRouteObject): {\n hasErrorBoundary: boolean;\n } & Record;\n}\n\n/**\n * Keys we cannot change from within a lazy() function. We spread all other keys\n * onto the route. Either they're meaningful to the router, or they'll get\n * ignored.\n */\nexport type ImmutableRouteKey =\n | \"lazy\"\n | \"caseSensitive\"\n | \"path\"\n | \"id\"\n | \"index\"\n | \"children\";\n\nexport const immutableRouteKeys = new Set([\n \"lazy\",\n \"caseSensitive\",\n \"path\",\n \"id\",\n \"index\",\n \"children\",\n]);\n\ntype RequireOne = Exclude<\n {\n [K in keyof T]: K extends Key ? Omit & Required> : never;\n }[keyof T],\n undefined\n>;\n\n/**\n * lazy() function to load a route definition, which can add non-matching\n * related properties to a route\n */\nexport interface LazyRouteFunction {\n (): Promise>>;\n}\n\n/**\n * Base RouteObject with common props shared by all types of routes\n */\ntype AgnosticBaseRouteObject = {\n caseSensitive?: boolean;\n path?: string;\n id?: string;\n loader?: LoaderFunction;\n action?: ActionFunction;\n hasErrorBoundary?: boolean;\n shouldRevalidate?: ShouldRevalidateFunction;\n handle?: any;\n lazy?: LazyRouteFunction;\n};\n\n/**\n * Index routes must not have children\n */\nexport type AgnosticIndexRouteObject = AgnosticBaseRouteObject & {\n children?: undefined;\n index: true;\n};\n\n/**\n * Non-index routes may have children, but cannot have index\n */\nexport type AgnosticNonIndexRouteObject = AgnosticBaseRouteObject & {\n children?: AgnosticRouteObject[];\n index?: false;\n};\n\n/**\n * A route object represents a logical route, with (optionally) its child\n * routes organized in a tree-like structure.\n */\nexport type AgnosticRouteObject =\n | AgnosticIndexRouteObject\n | AgnosticNonIndexRouteObject;\n\nexport type AgnosticDataIndexRouteObject = AgnosticIndexRouteObject & {\n id: string;\n};\n\nexport type AgnosticDataNonIndexRouteObject = AgnosticNonIndexRouteObject & {\n children?: AgnosticDataRouteObject[];\n id: string;\n};\n\n/**\n * A data route object, which is just a RouteObject with a required unique ID\n */\nexport type AgnosticDataRouteObject =\n | AgnosticDataIndexRouteObject\n | AgnosticDataNonIndexRouteObject;\n\nexport type RouteManifest = Record;\n\n// Recursive helper for finding path parameters in the absence of wildcards\ntype _PathParam =\n // split path into individual path segments\n Path extends `${infer L}/${infer R}`\n ? _PathParam | _PathParam\n : // find params after `:`\n Path extends `:${infer Param}`\n ? Param extends `${infer Optional}?`\n ? Optional\n : Param\n : // otherwise, there aren't any params present\n never;\n\n/**\n * Examples:\n * \"/a/b/*\" -> \"*\"\n * \":a\" -> \"a\"\n * \"/a/:b\" -> \"b\"\n * \"/a/blahblahblah:b\" -> \"b\"\n * \"/:a/:b\" -> \"a\" | \"b\"\n * \"/:a/b/:c/*\" -> \"a\" | \"c\" | \"*\"\n */\nexport type PathParam =\n // check if path is just a wildcard\n Path extends \"*\" | \"/*\"\n ? \"*\"\n : // look for wildcard at the end of the path\n Path extends `${infer Rest}/*`\n ? \"*\" | _PathParam\n : // look for params in the absence of wildcards\n _PathParam;\n\n// Attempt to parse the given string segment. If it fails, then just return the\n// plain string type as a default fallback. Otherwise, return the union of the\n// parsed string literals that were referenced as dynamic segments in the route.\nexport type ParamParseKey =\n // if you could not find path params, fallback to `string`\n [PathParam] extends [never] ? string : PathParam;\n\n/**\n * The parameters that were parsed from the URL path.\n */\nexport type Params = {\n readonly [key in Key]: string | undefined;\n};\n\n/**\n * A RouteMatch contains info about how a route matched a URL.\n */\nexport interface AgnosticRouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The route object that was used to match.\n */\n route: RouteObjectType;\n}\n\nexport interface AgnosticDataRouteMatch\n extends AgnosticRouteMatch {}\n\nfunction isIndexRoute(\n route: AgnosticRouteObject\n): route is AgnosticIndexRouteObject {\n return route.index === true;\n}\n\n// Walk the route tree generating unique IDs where necessary, so we are working\n// solely with AgnosticDataRouteObject's within the Router\nexport function convertRoutesToDataRoutes(\n routes: AgnosticRouteObject[],\n mapRouteProperties: MapRoutePropertiesFunction,\n parentPath: number[] = [],\n manifest: RouteManifest = {}\n): AgnosticDataRouteObject[] {\n return routes.map((route, index) => {\n let treePath = [...parentPath, index];\n let id = typeof route.id === \"string\" ? route.id : treePath.join(\"-\");\n invariant(\n route.index !== true || !route.children,\n `Cannot specify children on an index route`\n );\n invariant(\n !manifest[id],\n `Found a route id collision on id \"${id}\". Route ` +\n \"id's must be globally unique within Data Router usages\"\n );\n\n if (isIndexRoute(route)) {\n let indexRoute: AgnosticDataIndexRouteObject = {\n ...route,\n ...mapRouteProperties(route),\n id,\n };\n manifest[id] = indexRoute;\n return indexRoute;\n } else {\n let pathOrLayoutRoute: AgnosticDataNonIndexRouteObject = {\n ...route,\n ...mapRouteProperties(route),\n id,\n children: undefined,\n };\n manifest[id] = pathOrLayoutRoute;\n\n if (route.children) {\n pathOrLayoutRoute.children = convertRoutesToDataRoutes(\n route.children,\n mapRouteProperties,\n treePath,\n manifest\n );\n }\n\n return pathOrLayoutRoute;\n }\n });\n}\n\n/**\n * Matches the given routes to a location and returns the match data.\n *\n * @see https://reactrouter.com/utils/match-routes\n */\nexport function matchRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n locationArg: Partial | string,\n basename = \"/\"\n): AgnosticRouteMatch[] | null {\n let location =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n let pathname = stripBasename(location.pathname || \"/\", basename);\n\n if (pathname == null) {\n return null;\n }\n\n let branches = flattenRoutes(routes);\n rankRouteBranches(branches);\n\n let matches = null;\n for (let i = 0; matches == null && i < branches.length; ++i) {\n // Incoming pathnames are generally encoded from either window.location\n // or from router.navigate, but we want to match against the unencoded\n // paths in the route definitions. Memory router locations won't be\n // encoded here but there also shouldn't be anything to decode so this\n // should be a safe operation. This avoids needing matchRoutes to be\n // history-aware.\n let decoded = decodePath(pathname);\n matches = matchRouteBranch(branches[i], decoded);\n }\n\n return matches;\n}\n\nexport interface UIMatch {\n id: string;\n pathname: string;\n params: AgnosticRouteMatch[\"params\"];\n data: Data;\n handle: Handle;\n}\n\nexport function convertRouteMatchToUiMatch(\n match: AgnosticDataRouteMatch,\n loaderData: RouteData\n): UIMatch {\n let { route, pathname, params } = match;\n return {\n id: route.id,\n pathname,\n params,\n data: loaderData[route.id],\n handle: route.handle,\n };\n}\n\ninterface RouteMeta<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n relativePath: string;\n caseSensitive: boolean;\n childrenIndex: number;\n route: RouteObjectType;\n}\n\ninterface RouteBranch<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n path: string;\n score: number;\n routesMeta: RouteMeta[];\n}\n\nfunction flattenRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n branches: RouteBranch[] = [],\n parentsMeta: RouteMeta[] = [],\n parentPath = \"\"\n): RouteBranch[] {\n let flattenRoute = (\n route: RouteObjectType,\n index: number,\n relativePath?: string\n ) => {\n let meta: RouteMeta = {\n relativePath:\n relativePath === undefined ? route.path || \"\" : relativePath,\n caseSensitive: route.caseSensitive === true,\n childrenIndex: index,\n route,\n };\n\n if (meta.relativePath.startsWith(\"/\")) {\n invariant(\n meta.relativePath.startsWith(parentPath),\n `Absolute route path \"${meta.relativePath}\" nested under path ` +\n `\"${parentPath}\" is not valid. An absolute child route path ` +\n `must start with the combined path of all its parent routes.`\n );\n\n meta.relativePath = meta.relativePath.slice(parentPath.length);\n }\n\n let path = joinPaths([parentPath, meta.relativePath]);\n let routesMeta = parentsMeta.concat(meta);\n\n // Add the children before adding this route to the array, so we traverse the\n // route tree depth-first and child routes appear before their parents in\n // the \"flattened\" version.\n if (route.children && route.children.length > 0) {\n invariant(\n // Our types know better, but runtime JS may not!\n // @ts-expect-error\n route.index !== true,\n `Index routes must not have child routes. Please remove ` +\n `all child routes from route path \"${path}\".`\n );\n\n flattenRoutes(route.children, branches, routesMeta, path);\n }\n\n // Routes without a path shouldn't ever match by themselves unless they are\n // index routes, so don't add them to the list of possible branches.\n if (route.path == null && !route.index) {\n return;\n }\n\n branches.push({\n path,\n score: computeScore(path, route.index),\n routesMeta,\n });\n };\n routes.forEach((route, index) => {\n // coarse-grain check for optional params\n if (route.path === \"\" || !route.path?.includes(\"?\")) {\n flattenRoute(route, index);\n } else {\n for (let exploded of explodeOptionalSegments(route.path)) {\n flattenRoute(route, index, exploded);\n }\n }\n });\n\n return branches;\n}\n\n/**\n * Computes all combinations of optional path segments for a given path,\n * excluding combinations that are ambiguous and of lower priority.\n *\n * For example, `/one/:two?/three/:four?/:five?` explodes to:\n * - `/one/three`\n * - `/one/:two/three`\n * - `/one/three/:four`\n * - `/one/three/:five`\n * - `/one/:two/three/:four`\n * - `/one/:two/three/:five`\n * - `/one/three/:four/:five`\n * - `/one/:two/three/:four/:five`\n */\nfunction explodeOptionalSegments(path: string): string[] {\n let segments = path.split(\"/\");\n if (segments.length === 0) return [];\n\n let [first, ...rest] = segments;\n\n // Optional path segments are denoted by a trailing `?`\n let isOptional = first.endsWith(\"?\");\n // Compute the corresponding required segment: `foo?` -> `foo`\n let required = first.replace(/\\?$/, \"\");\n\n if (rest.length === 0) {\n // Intepret empty string as omitting an optional segment\n // `[\"one\", \"\", \"three\"]` corresponds to omitting `:two` from `/one/:two?/three` -> `/one/three`\n return isOptional ? [required, \"\"] : [required];\n }\n\n let restExploded = explodeOptionalSegments(rest.join(\"/\"));\n\n let result: string[] = [];\n\n // All child paths with the prefix. Do this for all children before the\n // optional version for all children, so we get consistent ordering where the\n // parent optional aspect is preferred as required. Otherwise, we can get\n // child sections interspersed where deeper optional segments are higher than\n // parent optional segments, where for example, /:two would explode _earlier_\n // then /:one. By always including the parent as required _for all children_\n // first, we avoid this issue\n result.push(\n ...restExploded.map((subpath) =>\n subpath === \"\" ? required : [required, subpath].join(\"/\")\n )\n );\n\n // Then, if this is an optional value, add all child versions without\n if (isOptional) {\n result.push(...restExploded);\n }\n\n // for absolute paths, ensure `/` instead of empty segment\n return result.map((exploded) =>\n path.startsWith(\"/\") && exploded === \"\" ? \"/\" : exploded\n );\n}\n\nfunction rankRouteBranches(branches: RouteBranch[]): void {\n branches.sort((a, b) =>\n a.score !== b.score\n ? b.score - a.score // Higher score first\n : compareIndexes(\n a.routesMeta.map((meta) => meta.childrenIndex),\n b.routesMeta.map((meta) => meta.childrenIndex)\n )\n );\n}\n\nconst paramRe = /^:[\\w-]+$/;\nconst dynamicSegmentValue = 3;\nconst indexRouteValue = 2;\nconst emptySegmentValue = 1;\nconst staticSegmentValue = 10;\nconst splatPenalty = -2;\nconst isSplat = (s: string) => s === \"*\";\n\nfunction computeScore(path: string, index: boolean | undefined): number {\n let segments = path.split(\"/\");\n let initialScore = segments.length;\n if (segments.some(isSplat)) {\n initialScore += splatPenalty;\n }\n\n if (index) {\n initialScore += indexRouteValue;\n }\n\n return segments\n .filter((s) => !isSplat(s))\n .reduce(\n (score, segment) =>\n score +\n (paramRe.test(segment)\n ? dynamicSegmentValue\n : segment === \"\"\n ? emptySegmentValue\n : staticSegmentValue),\n initialScore\n );\n}\n\nfunction compareIndexes(a: number[], b: number[]): number {\n let siblings =\n a.length === b.length && a.slice(0, -1).every((n, i) => n === b[i]);\n\n return siblings\n ? // If two routes are siblings, we should try to match the earlier sibling\n // first. This allows people to have fine-grained control over the matching\n // behavior by simply putting routes with identical paths in the order they\n // want them tried.\n a[a.length - 1] - b[b.length - 1]\n : // Otherwise, it doesn't really make sense to rank non-siblings by index,\n // so they sort equally.\n 0;\n}\n\nfunction matchRouteBranch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n branch: RouteBranch,\n pathname: string\n): AgnosticRouteMatch[] | null {\n let { routesMeta } = branch;\n\n let matchedParams = {};\n let matchedPathname = \"/\";\n let matches: AgnosticRouteMatch[] = [];\n for (let i = 0; i < routesMeta.length; ++i) {\n let meta = routesMeta[i];\n let end = i === routesMeta.length - 1;\n let remainingPathname =\n matchedPathname === \"/\"\n ? pathname\n : pathname.slice(matchedPathname.length) || \"/\";\n let match = matchPath(\n { path: meta.relativePath, caseSensitive: meta.caseSensitive, end },\n remainingPathname\n );\n\n if (!match) return null;\n\n Object.assign(matchedParams, match.params);\n\n let route = meta.route;\n\n matches.push({\n // TODO: Can this as be avoided?\n params: matchedParams as Params,\n pathname: joinPaths([matchedPathname, match.pathname]),\n pathnameBase: normalizePathname(\n joinPaths([matchedPathname, match.pathnameBase])\n ),\n route,\n });\n\n if (match.pathnameBase !== \"/\") {\n matchedPathname = joinPaths([matchedPathname, match.pathnameBase]);\n }\n }\n\n return matches;\n}\n\n/**\n * Returns a path with params interpolated.\n *\n * @see https://reactrouter.com/utils/generate-path\n */\nexport function generatePath(\n originalPath: Path,\n params: {\n [key in PathParam]: string | null;\n } = {} as any\n): string {\n let path: string = originalPath;\n if (path.endsWith(\"*\") && path !== \"*\" && !path.endsWith(\"/*\")) {\n warning(\n false,\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n path = path.replace(/\\*$/, \"/*\") as Path;\n }\n\n // ensure `/` is added at the beginning if the path is absolute\n const prefix = path.startsWith(\"/\") ? \"/\" : \"\";\n\n const stringify = (p: any) =>\n p == null ? \"\" : typeof p === \"string\" ? p : String(p);\n\n const segments = path\n .split(/\\/+/)\n .map((segment, index, array) => {\n const isLastSegment = index === array.length - 1;\n\n // only apply the splat if it's the last segment\n if (isLastSegment && segment === \"*\") {\n const star = \"*\" as PathParam;\n // Apply the splat\n return stringify(params[star]);\n }\n\n const keyMatch = segment.match(/^:([\\w-]+)(\\??)$/);\n if (keyMatch) {\n const [, key, optional] = keyMatch;\n let param = params[key as PathParam];\n invariant(optional === \"?\" || param != null, `Missing \":${key}\" param`);\n return stringify(param);\n }\n\n // Remove any optional markers from optional static segments\n return segment.replace(/\\?$/g, \"\");\n })\n // Remove empty segments\n .filter((segment) => !!segment);\n\n return prefix + segments.join(\"/\");\n}\n\n/**\n * A PathPattern is used to match on some portion of a URL pathname.\n */\nexport interface PathPattern {\n /**\n * A string to match against a URL pathname. May contain `:id`-style segments\n * to indicate placeholders for dynamic parameters. May also end with `/*` to\n * indicate matching the rest of the URL pathname.\n */\n path: Path;\n /**\n * Should be `true` if the static portions of the `path` should be matched in\n * the same case.\n */\n caseSensitive?: boolean;\n /**\n * Should be `true` if this pattern should match the entire URL pathname.\n */\n end?: boolean;\n}\n\n/**\n * A PathMatch contains info about how a PathPattern matched on a URL pathname.\n */\nexport interface PathMatch {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The pattern that was used to match.\n */\n pattern: PathPattern;\n}\n\ntype Mutable = {\n -readonly [P in keyof T]: T[P];\n};\n\n/**\n * Performs pattern matching on a URL pathname and returns information about\n * the match.\n *\n * @see https://reactrouter.com/utils/match-path\n */\nexport function matchPath<\n ParamKey extends ParamParseKey,\n Path extends string\n>(\n pattern: PathPattern | Path,\n pathname: string\n): PathMatch | null {\n if (typeof pattern === \"string\") {\n pattern = { path: pattern, caseSensitive: false, end: true };\n }\n\n let [matcher, compiledParams] = compilePath(\n pattern.path,\n pattern.caseSensitive,\n pattern.end\n );\n\n let match = pathname.match(matcher);\n if (!match) return null;\n\n let matchedPathname = match[0];\n let pathnameBase = matchedPathname.replace(/(.)\\/+$/, \"$1\");\n let captureGroups = match.slice(1);\n let params: Params = compiledParams.reduce>(\n (memo, { paramName, isOptional }, index) => {\n // We need to compute the pathnameBase here using the raw splat value\n // instead of using params[\"*\"] later because it will be decoded then\n if (paramName === \"*\") {\n let splatValue = captureGroups[index] || \"\";\n pathnameBase = matchedPathname\n .slice(0, matchedPathname.length - splatValue.length)\n .replace(/(.)\\/+$/, \"$1\");\n }\n\n const value = captureGroups[index];\n if (isOptional && !value) {\n memo[paramName] = undefined;\n } else {\n memo[paramName] = (value || \"\").replace(/%2F/g, \"/\");\n }\n return memo;\n },\n {}\n );\n\n return {\n params,\n pathname: matchedPathname,\n pathnameBase,\n pattern,\n };\n}\n\ntype CompiledPathParam = { paramName: string; isOptional?: boolean };\n\nfunction compilePath(\n path: string,\n caseSensitive = false,\n end = true\n): [RegExp, CompiledPathParam[]] {\n warning(\n path === \"*\" || !path.endsWith(\"*\") || path.endsWith(\"/*\"),\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n\n let params: CompiledPathParam[] = [];\n let regexpSource =\n \"^\" +\n path\n .replace(/\\/*\\*?$/, \"\") // Ignore trailing / and /*, we'll handle it below\n .replace(/^\\/*/, \"/\") // Make sure it has a leading /\n .replace(/[\\\\.*+^${}|()[\\]]/g, \"\\\\$&\") // Escape special regex chars\n .replace(\n /\\/:([\\w-]+)(\\?)?/g,\n (_: string, paramName: string, isOptional) => {\n params.push({ paramName, isOptional: isOptional != null });\n return isOptional ? \"/?([^\\\\/]+)?\" : \"/([^\\\\/]+)\";\n }\n );\n\n if (path.endsWith(\"*\")) {\n params.push({ paramName: \"*\" });\n regexpSource +=\n path === \"*\" || path === \"/*\"\n ? \"(.*)$\" // Already matched the initial /, just match the rest\n : \"(?:\\\\/(.+)|\\\\/*)$\"; // Don't include the / in params[\"*\"]\n } else if (end) {\n // When matching to the end, ignore trailing slashes\n regexpSource += \"\\\\/*$\";\n } else if (path !== \"\" && path !== \"/\") {\n // If our path is non-empty and contains anything beyond an initial slash,\n // then we have _some_ form of path in our regex, so we should expect to\n // match only if we find the end of this path segment. Look for an optional\n // non-captured trailing slash (to match a portion of the URL) or the end\n // of the path (if we've matched to the end). We used to do this with a\n // word boundary but that gives false positives on routes like\n // /user-preferences since `-` counts as a word boundary.\n regexpSource += \"(?:(?=\\\\/|$))\";\n } else {\n // Nothing to match for \"\" or \"/\"\n }\n\n let matcher = new RegExp(regexpSource, caseSensitive ? undefined : \"i\");\n\n return [matcher, params];\n}\n\nfunction decodePath(value: string) {\n try {\n return value\n .split(\"/\")\n .map((v) => decodeURIComponent(v).replace(/\\//g, \"%2F\"))\n .join(\"/\");\n } catch (error) {\n warning(\n false,\n `The URL path \"${value}\" could not be decoded because it is is a ` +\n `malformed URL segment. This is probably due to a bad percent ` +\n `encoding (${error}).`\n );\n\n return value;\n }\n}\n\n/**\n * @private\n */\nexport function stripBasename(\n pathname: string,\n basename: string\n): string | null {\n if (basename === \"/\") return pathname;\n\n if (!pathname.toLowerCase().startsWith(basename.toLowerCase())) {\n return null;\n }\n\n // We want to leave trailing slash behavior in the user's control, so if they\n // specify a basename with a trailing slash, we should support it\n let startIndex = basename.endsWith(\"/\")\n ? basename.length - 1\n : basename.length;\n let nextChar = pathname.charAt(startIndex);\n if (nextChar && nextChar !== \"/\") {\n // pathname does not start with basename/\n return null;\n }\n\n return pathname.slice(startIndex) || \"/\";\n}\n\n/**\n * Returns a resolved path object relative to the given pathname.\n *\n * @see https://reactrouter.com/utils/resolve-path\n */\nexport function resolvePath(to: To, fromPathname = \"/\"): Path {\n let {\n pathname: toPathname,\n search = \"\",\n hash = \"\",\n } = typeof to === \"string\" ? parsePath(to) : to;\n\n let pathname = toPathname\n ? toPathname.startsWith(\"/\")\n ? toPathname\n : resolvePathname(toPathname, fromPathname)\n : fromPathname;\n\n return {\n pathname,\n search: normalizeSearch(search),\n hash: normalizeHash(hash),\n };\n}\n\nfunction resolvePathname(relativePath: string, fromPathname: string): string {\n let segments = fromPathname.replace(/\\/+$/, \"\").split(\"/\");\n let relativeSegments = relativePath.split(\"/\");\n\n relativeSegments.forEach((segment) => {\n if (segment === \"..\") {\n // Keep the root \"\" segment so the pathname starts at /\n if (segments.length > 1) segments.pop();\n } else if (segment !== \".\") {\n segments.push(segment);\n }\n });\n\n return segments.length > 1 ? segments.join(\"/\") : \"/\";\n}\n\nfunction getInvalidPathError(\n char: string,\n field: string,\n dest: string,\n path: Partial\n) {\n return (\n `Cannot include a '${char}' character in a manually specified ` +\n `\\`to.${field}\\` field [${JSON.stringify(\n path\n )}]. Please separate it out to the ` +\n `\\`to.${dest}\\` field. Alternatively you may provide the full path as ` +\n `a string in and the router will parse it for you.`\n );\n}\n\n/**\n * @private\n *\n * When processing relative navigation we want to ignore ancestor routes that\n * do not contribute to the path, such that index/pathless layout routes don't\n * interfere.\n *\n * For example, when moving a route element into an index route and/or a\n * pathless layout route, relative link behavior contained within should stay\n * the same. Both of the following examples should link back to the root:\n *\n * \n * \n * \n *\n * \n * \n * }> // <-- Does not contribute\n * // <-- Does not contribute\n * \n * \n */\nexport function getPathContributingMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[]) {\n return matches.filter(\n (match, index) =>\n index === 0 || (match.route.path && match.route.path.length > 0)\n );\n}\n\n// Return the array of pathnames for the current route matches - used to\n// generate the routePathnames input for resolveTo()\nexport function getResolveToMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[], v7_relativeSplatPath: boolean) {\n let pathMatches = getPathContributingMatches(matches);\n\n // When v7_relativeSplatPath is enabled, use the full pathname for the leaf\n // match so we include splat values for \".\" links. See:\n // https://github.com/remix-run/react-router/issues/11052#issuecomment-1836589329\n if (v7_relativeSplatPath) {\n return pathMatches.map((match, idx) =>\n idx === matches.length - 1 ? match.pathname : match.pathnameBase\n );\n }\n\n return pathMatches.map((match) => match.pathnameBase);\n}\n\n/**\n * @private\n */\nexport function resolveTo(\n toArg: To,\n routePathnames: string[],\n locationPathname: string,\n isPathRelative = false\n): Path {\n let to: Partial;\n if (typeof toArg === \"string\") {\n to = parsePath(toArg);\n } else {\n to = { ...toArg };\n\n invariant(\n !to.pathname || !to.pathname.includes(\"?\"),\n getInvalidPathError(\"?\", \"pathname\", \"search\", to)\n );\n invariant(\n !to.pathname || !to.pathname.includes(\"#\"),\n getInvalidPathError(\"#\", \"pathname\", \"hash\", to)\n );\n invariant(\n !to.search || !to.search.includes(\"#\"),\n getInvalidPathError(\"#\", \"search\", \"hash\", to)\n );\n }\n\n let isEmptyPath = toArg === \"\" || to.pathname === \"\";\n let toPathname = isEmptyPath ? \"/\" : to.pathname;\n\n let from: string;\n\n // Routing is relative to the current pathname if explicitly requested.\n //\n // If a pathname is explicitly provided in `to`, it should be relative to the\n // route context. This is explained in `Note on `` values` in our\n // migration guide from v5 as a means of disambiguation between `to` values\n // that begin with `/` and those that do not. However, this is problematic for\n // `to` values that do not provide a pathname. `to` can simply be a search or\n // hash string, in which case we should assume that the navigation is relative\n // to the current location's pathname and *not* the route pathname.\n if (toPathname == null) {\n from = locationPathname;\n } else {\n let routePathnameIndex = routePathnames.length - 1;\n\n // With relative=\"route\" (the default), each leading .. segment means\n // \"go up one route\" instead of \"go up one URL segment\". This is a key\n // difference from how works and a major reason we call this a\n // \"to\" value instead of a \"href\".\n if (!isPathRelative && toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\");\n\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n\n to.pathname = toSegments.join(\"/\");\n }\n\n from = routePathnameIndex >= 0 ? routePathnames[routePathnameIndex] : \"/\";\n }\n\n let path = resolvePath(to, from);\n\n // Ensure the pathname has a trailing slash if the original \"to\" had one\n let hasExplicitTrailingSlash =\n toPathname && toPathname !== \"/\" && toPathname.endsWith(\"/\");\n // Or if this was a link to the current path which has a trailing slash\n let hasCurrentTrailingSlash =\n (isEmptyPath || toPathname === \".\") && locationPathname.endsWith(\"/\");\n if (\n !path.pathname.endsWith(\"/\") &&\n (hasExplicitTrailingSlash || hasCurrentTrailingSlash)\n ) {\n path.pathname += \"/\";\n }\n\n return path;\n}\n\n/**\n * @private\n */\nexport function getToPathname(to: To): string | undefined {\n // Empty strings should be treated the same as / paths\n return to === \"\" || (to as Path).pathname === \"\"\n ? \"/\"\n : typeof to === \"string\"\n ? parsePath(to).pathname\n : to.pathname;\n}\n\n/**\n * @private\n */\nexport const joinPaths = (paths: string[]): string =>\n paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\n\n/**\n * @private\n */\nexport const normalizePathname = (pathname: string): string =>\n pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\n\n/**\n * @private\n */\nexport const normalizeSearch = (search: string): string =>\n !search || search === \"?\"\n ? \"\"\n : search.startsWith(\"?\")\n ? search\n : \"?\" + search;\n\n/**\n * @private\n */\nexport const normalizeHash = (hash: string): string =>\n !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\n\nexport type JsonFunction = (\n data: Data,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * This is a shortcut for creating `application/json` responses. Converts `data`\n * to JSON and sets the `Content-Type` header.\n */\nexport const json: JsonFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n let headers = new Headers(responseInit.headers);\n if (!headers.has(\"Content-Type\")) {\n headers.set(\"Content-Type\", \"application/json; charset=utf-8\");\n }\n\n return new Response(JSON.stringify(data), {\n ...responseInit,\n headers,\n });\n};\n\nexport interface TrackedPromise extends Promise {\n _tracked?: boolean;\n _data?: any;\n _error?: any;\n}\n\nexport class AbortedDeferredError extends Error {}\n\nexport class DeferredData {\n private pendingKeysSet: Set = new Set();\n private controller: AbortController;\n private abortPromise: Promise;\n private unlistenAbortSignal: () => void;\n private subscribers: Set<(aborted: boolean, settledKey?: string) => void> =\n new Set();\n data: Record;\n init?: ResponseInit;\n deferredKeys: string[] = [];\n\n constructor(data: Record, responseInit?: ResponseInit) {\n invariant(\n data && typeof data === \"object\" && !Array.isArray(data),\n \"defer() only accepts plain objects\"\n );\n\n // Set up an AbortController + Promise we can race against to exit early\n // cancellation\n let reject: (e: AbortedDeferredError) => void;\n this.abortPromise = new Promise((_, r) => (reject = r));\n this.controller = new AbortController();\n let onAbort = () =>\n reject(new AbortedDeferredError(\"Deferred data aborted\"));\n this.unlistenAbortSignal = () =>\n this.controller.signal.removeEventListener(\"abort\", onAbort);\n this.controller.signal.addEventListener(\"abort\", onAbort);\n\n this.data = Object.entries(data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: this.trackPromise(key, value),\n }),\n {}\n );\n\n if (this.done) {\n // All incoming values were resolved\n this.unlistenAbortSignal();\n }\n\n this.init = responseInit;\n }\n\n private trackPromise(\n key: string,\n value: Promise | unknown\n ): TrackedPromise | unknown {\n if (!(value instanceof Promise)) {\n return value;\n }\n\n this.deferredKeys.push(key);\n this.pendingKeysSet.add(key);\n\n // We store a little wrapper promise that will be extended with\n // _data/_error props upon resolve/reject\n let promise: TrackedPromise = Promise.race([value, this.abortPromise]).then(\n (data) => this.onSettle(promise, key, undefined, data as unknown),\n (error) => this.onSettle(promise, key, error as unknown)\n );\n\n // Register rejection listeners to avoid uncaught promise rejections on\n // errors or aborted deferred values\n promise.catch(() => {});\n\n Object.defineProperty(promise, \"_tracked\", { get: () => true });\n return promise;\n }\n\n private onSettle(\n promise: TrackedPromise,\n key: string,\n error: unknown,\n data?: unknown\n ): unknown {\n if (\n this.controller.signal.aborted &&\n error instanceof AbortedDeferredError\n ) {\n this.unlistenAbortSignal();\n Object.defineProperty(promise, \"_error\", { get: () => error });\n return Promise.reject(error);\n }\n\n this.pendingKeysSet.delete(key);\n\n if (this.done) {\n // Nothing left to abort!\n this.unlistenAbortSignal();\n }\n\n // If the promise was resolved/rejected with undefined, we'll throw an error as you\n // should always resolve with a value or null\n if (error === undefined && data === undefined) {\n let undefinedError = new Error(\n `Deferred data for key \"${key}\" resolved/rejected with \\`undefined\\`, ` +\n `you must resolve/reject with a value or \\`null\\`.`\n );\n Object.defineProperty(promise, \"_error\", { get: () => undefinedError });\n this.emit(false, key);\n return Promise.reject(undefinedError);\n }\n\n if (data === undefined) {\n Object.defineProperty(promise, \"_error\", { get: () => error });\n this.emit(false, key);\n return Promise.reject(error);\n }\n\n Object.defineProperty(promise, \"_data\", { get: () => data });\n this.emit(false, key);\n return data;\n }\n\n private emit(aborted: boolean, settledKey?: string) {\n this.subscribers.forEach((subscriber) => subscriber(aborted, settledKey));\n }\n\n subscribe(fn: (aborted: boolean, settledKey?: string) => void) {\n this.subscribers.add(fn);\n return () => this.subscribers.delete(fn);\n }\n\n cancel() {\n this.controller.abort();\n this.pendingKeysSet.forEach((v, k) => this.pendingKeysSet.delete(k));\n this.emit(true);\n }\n\n async resolveData(signal: AbortSignal) {\n let aborted = false;\n if (!this.done) {\n let onAbort = () => this.cancel();\n signal.addEventListener(\"abort\", onAbort);\n aborted = await new Promise((resolve) => {\n this.subscribe((aborted) => {\n signal.removeEventListener(\"abort\", onAbort);\n if (aborted || this.done) {\n resolve(aborted);\n }\n });\n });\n }\n return aborted;\n }\n\n get done() {\n return this.pendingKeysSet.size === 0;\n }\n\n get unwrappedData() {\n invariant(\n this.data !== null && this.done,\n \"Can only unwrap data on initialized and settled deferreds\"\n );\n\n return Object.entries(this.data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: unwrapTrackedPromise(value),\n }),\n {}\n );\n }\n\n get pendingKeys() {\n return Array.from(this.pendingKeysSet);\n }\n}\n\nfunction isTrackedPromise(value: any): value is TrackedPromise {\n return (\n value instanceof Promise && (value as TrackedPromise)._tracked === true\n );\n}\n\nfunction unwrapTrackedPromise(value: any) {\n if (!isTrackedPromise(value)) {\n return value;\n }\n\n if (value._error) {\n throw value._error;\n }\n return value._data;\n}\n\nexport type DeferFunction = (\n data: Record,\n init?: number | ResponseInit\n) => DeferredData;\n\nexport const defer: DeferFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n return new DeferredData(data, responseInit);\n};\n\nexport type RedirectFunction = (\n url: string,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * A redirect response. Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirect: RedirectFunction = (url, init = 302) => {\n let responseInit = init;\n if (typeof responseInit === \"number\") {\n responseInit = { status: responseInit };\n } else if (typeof responseInit.status === \"undefined\") {\n responseInit.status = 302;\n }\n\n let headers = new Headers(responseInit.headers);\n headers.set(\"Location\", url);\n\n return new Response(null, {\n ...responseInit,\n headers,\n });\n};\n\n/**\n * A redirect response that will force a document reload to the new location.\n * Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirectDocument: RedirectFunction = (url, init) => {\n let response = redirect(url, init);\n response.headers.set(\"X-Remix-Reload-Document\", \"true\");\n return response;\n};\n\nexport type ErrorResponse = {\n status: number;\n statusText: string;\n data: any;\n};\n\n/**\n * @private\n * Utility class we use to hold auto-unwrapped 4xx/5xx Response bodies\n *\n * We don't export the class for public use since it's an implementation\n * detail, but we export the interface above so folks can build their own\n * abstractions around instances via isRouteErrorResponse()\n */\nexport class ErrorResponseImpl implements ErrorResponse {\n status: number;\n statusText: string;\n data: any;\n private error?: Error;\n private internal: boolean;\n\n constructor(\n status: number,\n statusText: string | undefined,\n data: any,\n internal = false\n ) {\n this.status = status;\n this.statusText = statusText || \"\";\n this.internal = internal;\n if (data instanceof Error) {\n this.data = data.toString();\n this.error = data;\n } else {\n this.data = data;\n }\n }\n}\n\n/**\n * Check if the given error is an ErrorResponse generated from a 4xx/5xx\n * Response thrown from an action/loader\n */\nexport function isRouteErrorResponse(error: any): error is ErrorResponse {\n return (\n error != null &&\n typeof error.status === \"number\" &&\n typeof error.statusText === \"string\" &&\n typeof error.internal === \"boolean\" &&\n \"data\" in error\n );\n}\n","import type { History, Location, Path, To } from \"./history\";\nimport {\n Action as HistoryAction,\n createLocation,\n createPath,\n invariant,\n parsePath,\n warning,\n} from \"./history\";\nimport type {\n ActionFunction,\n AgnosticDataRouteMatch,\n AgnosticDataRouteObject,\n AgnosticRouteObject,\n DataResult,\n DeferredData,\n DeferredResult,\n DetectErrorBoundaryFunction,\n ErrorResult,\n FormEncType,\n FormMethod,\n HTMLFormMethod,\n ImmutableRouteKey,\n LoaderFunction,\n MapRoutePropertiesFunction,\n MutationFormMethod,\n RedirectResult,\n RouteData,\n RouteManifest,\n ShouldRevalidateFunctionArgs,\n Submission,\n SuccessResult,\n UIMatch,\n V7_FormMethod,\n V7_MutationFormMethod,\n} from \"./utils\";\nimport {\n ErrorResponseImpl,\n ResultType,\n convertRouteMatchToUiMatch,\n convertRoutesToDataRoutes,\n getPathContributingMatches,\n getResolveToMatches,\n immutableRouteKeys,\n isRouteErrorResponse,\n joinPaths,\n matchRoutes,\n resolveTo,\n stripBasename,\n} from \"./utils\";\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A Router instance manages all navigation and data loading/mutations\n */\nexport interface Router {\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the basename for the router\n */\n get basename(): RouterInit[\"basename\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the future config for the router\n */\n get future(): FutureConfig;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the current state of the router\n */\n get state(): RouterState;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the routes for this router instance\n */\n get routes(): AgnosticDataRouteObject[];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the window associated with the router\n */\n get window(): RouterInit[\"window\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Initialize the router, including adding history listeners and kicking off\n * initial data fetches. Returns a function to cleanup listeners and abort\n * any in-progress loads\n */\n initialize(): Router;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Subscribe to router.state updates\n *\n * @param fn function to call with the new state\n */\n subscribe(fn: RouterSubscriber): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Enable scroll restoration behavior in the router\n *\n * @param savedScrollPositions Object that will manage positions, in case\n * it's being restored from sessionStorage\n * @param getScrollPosition Function to get the active Y scroll position\n * @param getKey Function to get the key to use for restoration\n */\n enableScrollRestoration(\n savedScrollPositions: Record,\n getScrollPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Navigate forward/backward in the history stack\n * @param to Delta to move in the history stack\n */\n navigate(to: number): Promise;\n\n /**\n * Navigate to the given path\n * @param to Path to navigate to\n * @param opts Navigation options (method, submission, etc.)\n */\n navigate(to: To | null, opts?: RouterNavigateOptions): Promise;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a fetcher load/submission\n *\n * @param key Fetcher key\n * @param routeId Route that owns the fetcher\n * @param href href to fetch\n * @param opts Fetcher options, (method, submission, etc.)\n */\n fetch(\n key: string,\n routeId: string,\n href: string | null,\n opts?: RouterFetchOptions\n ): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a revalidation of all current route loaders and fetcher loads\n */\n revalidate(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to create an href for the given location\n * @param location\n */\n createHref(location: Location | URL): string;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to URL encode a destination path according to the internal\n * history implementation\n * @param to\n */\n encodeLocation(to: To): Path;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get/create a fetcher for the given key\n * @param key\n */\n getFetcher(key: string): Fetcher;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete the fetcher for a given key\n * @param key\n */\n deleteFetcher(key: string): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Cleanup listeners and abort any in-progress loads\n */\n dispose(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get a navigation blocker\n * @param key The identifier for the blocker\n * @param fn The blocker function implementation\n */\n getBlocker(key: string, fn: BlockerFunction): Blocker;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete a navigation blocker\n * @param key The identifier for the blocker\n */\n deleteBlocker(key: string): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * HMR needs to pass in-flight route updates to React Router\n * TODO: Replace this with granular route update APIs (addRoute, updateRoute, deleteRoute)\n */\n _internalSetRoutes(routes: AgnosticRouteObject[]): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal fetch AbortControllers accessed by unit tests\n */\n _internalFetchControllers: Map;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal pending DeferredData instances accessed by unit tests\n */\n _internalActiveDeferreds: Map;\n}\n\n/**\n * State maintained internally by the router. During a navigation, all states\n * reflect the the \"old\" location unless otherwise noted.\n */\nexport interface RouterState {\n /**\n * The action of the most recent navigation\n */\n historyAction: HistoryAction;\n\n /**\n * The current location reflected by the router\n */\n location: Location;\n\n /**\n * The current set of route matches\n */\n matches: AgnosticDataRouteMatch[];\n\n /**\n * Tracks whether we've completed our initial data load\n */\n initialized: boolean;\n\n /**\n * Current scroll position we should start at for a new view\n * - number -> scroll position to restore to\n * - false -> do not restore scroll at all (used during submissions)\n * - null -> don't have a saved position, scroll to hash or top of page\n */\n restoreScrollPosition: number | false | null;\n\n /**\n * Indicate whether this navigation should skip resetting the scroll position\n * if we are unable to restore the scroll position\n */\n preventScrollReset: boolean;\n\n /**\n * Tracks the state of the current navigation\n */\n navigation: Navigation;\n\n /**\n * Tracks any in-progress revalidations\n */\n revalidation: RevalidationState;\n\n /**\n * Data from the loaders for the current matches\n */\n loaderData: RouteData;\n\n /**\n * Data from the action for the current matches\n */\n actionData: RouteData | null;\n\n /**\n * Errors caught from loaders for the current matches\n */\n errors: RouteData | null;\n\n /**\n * Map of current fetchers\n */\n fetchers: Map;\n\n /**\n * Map of current blockers\n */\n blockers: Map;\n}\n\n/**\n * Data that can be passed into hydrate a Router from SSR\n */\nexport type HydrationState = Partial<\n Pick\n>;\n\n/**\n * Future flags to toggle new feature behavior\n */\nexport interface FutureConfig {\n v7_fetcherPersist: boolean;\n v7_normalizeFormMethod: boolean;\n v7_partialHydration: boolean;\n v7_prependBasename: boolean;\n v7_relativeSplatPath: boolean;\n}\n\n/**\n * Initialization options for createRouter\n */\nexport interface RouterInit {\n routes: AgnosticRouteObject[];\n history: History;\n basename?: string;\n /**\n * @deprecated Use `mapRouteProperties` instead\n */\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n mapRouteProperties?: MapRoutePropertiesFunction;\n future?: Partial;\n hydrationData?: HydrationState;\n window?: Window;\n}\n\n/**\n * State returned from a server-side query() call\n */\nexport interface StaticHandlerContext {\n basename: Router[\"basename\"];\n location: RouterState[\"location\"];\n matches: RouterState[\"matches\"];\n loaderData: RouterState[\"loaderData\"];\n actionData: RouterState[\"actionData\"];\n errors: RouterState[\"errors\"];\n statusCode: number;\n loaderHeaders: Record;\n actionHeaders: Record;\n activeDeferreds: Record | null;\n _deepestRenderedBoundaryId?: string | null;\n}\n\n/**\n * A StaticHandler instance manages a singular SSR navigation/fetch event\n */\nexport interface StaticHandler {\n dataRoutes: AgnosticDataRouteObject[];\n query(\n request: Request,\n opts?: { requestContext?: unknown }\n ): Promise;\n queryRoute(\n request: Request,\n opts?: { routeId?: string; requestContext?: unknown }\n ): Promise;\n}\n\ntype ViewTransitionOpts = {\n currentLocation: Location;\n nextLocation: Location;\n};\n\n/**\n * Subscriber function signature for changes to router state\n */\nexport interface RouterSubscriber {\n (\n state: RouterState,\n opts: {\n deletedFetchers: string[];\n unstable_viewTransitionOpts?: ViewTransitionOpts;\n unstable_flushSync: boolean;\n }\n ): void;\n}\n\n/**\n * Function signature for determining the key to be used in scroll restoration\n * for a given location\n */\nexport interface GetScrollRestorationKeyFunction {\n (location: Location, matches: UIMatch[]): string | null;\n}\n\n/**\n * Function signature for determining the current scroll position\n */\nexport interface GetScrollPositionFunction {\n (): number;\n}\n\nexport type RelativeRoutingType = \"route\" | \"path\";\n\n// Allowed for any navigation or fetch\ntype BaseNavigateOrFetchOptions = {\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n unstable_flushSync?: boolean;\n};\n\n// Only allowed for navigations\ntype BaseNavigateOptions = BaseNavigateOrFetchOptions & {\n replace?: boolean;\n state?: any;\n fromRouteId?: string;\n unstable_viewTransition?: boolean;\n};\n\n// Only allowed for submission navigations\ntype BaseSubmissionOptions = {\n formMethod?: HTMLFormMethod;\n formEncType?: FormEncType;\n} & (\n | { formData: FormData; body?: undefined }\n | { formData?: undefined; body: any }\n);\n\n/**\n * Options for a navigate() call for a normal (non-submission) navigation\n */\ntype LinkNavigateOptions = BaseNavigateOptions;\n\n/**\n * Options for a navigate() call for a submission navigation\n */\ntype SubmissionNavigateOptions = BaseNavigateOptions & BaseSubmissionOptions;\n\n/**\n * Options to pass to navigate() for a navigation\n */\nexport type RouterNavigateOptions =\n | LinkNavigateOptions\n | SubmissionNavigateOptions;\n\n/**\n * Options for a fetch() load\n */\ntype LoadFetchOptions = BaseNavigateOrFetchOptions;\n\n/**\n * Options for a fetch() submission\n */\ntype SubmitFetchOptions = BaseNavigateOrFetchOptions & BaseSubmissionOptions;\n\n/**\n * Options to pass to fetch()\n */\nexport type RouterFetchOptions = LoadFetchOptions | SubmitFetchOptions;\n\n/**\n * Potential states for state.navigation\n */\nexport type NavigationStates = {\n Idle: {\n state: \"idle\";\n location: undefined;\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n formData: undefined;\n json: undefined;\n text: undefined;\n };\n Loading: {\n state: \"loading\";\n location: Location;\n formMethod: Submission[\"formMethod\"] | undefined;\n formAction: Submission[\"formAction\"] | undefined;\n formEncType: Submission[\"formEncType\"] | undefined;\n formData: Submission[\"formData\"] | undefined;\n json: Submission[\"json\"] | undefined;\n text: Submission[\"text\"] | undefined;\n };\n Submitting: {\n state: \"submitting\";\n location: Location;\n formMethod: Submission[\"formMethod\"];\n formAction: Submission[\"formAction\"];\n formEncType: Submission[\"formEncType\"];\n formData: Submission[\"formData\"];\n json: Submission[\"json\"];\n text: Submission[\"text\"];\n };\n};\n\nexport type Navigation = NavigationStates[keyof NavigationStates];\n\nexport type RevalidationState = \"idle\" | \"loading\";\n\n/**\n * Potential states for fetchers\n */\ntype FetcherStates = {\n Idle: {\n state: \"idle\";\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n text: undefined;\n formData: undefined;\n json: undefined;\n data: TData | undefined;\n };\n Loading: {\n state: \"loading\";\n formMethod: Submission[\"formMethod\"] | undefined;\n formAction: Submission[\"formAction\"] | undefined;\n formEncType: Submission[\"formEncType\"] | undefined;\n text: Submission[\"text\"] | undefined;\n formData: Submission[\"formData\"] | undefined;\n json: Submission[\"json\"] | undefined;\n data: TData | undefined;\n };\n Submitting: {\n state: \"submitting\";\n formMethod: Submission[\"formMethod\"];\n formAction: Submission[\"formAction\"];\n formEncType: Submission[\"formEncType\"];\n text: Submission[\"text\"];\n formData: Submission[\"formData\"];\n json: Submission[\"json\"];\n data: TData | undefined;\n };\n};\n\nexport type Fetcher =\n FetcherStates[keyof FetcherStates];\n\ninterface BlockerBlocked {\n state: \"blocked\";\n reset(): void;\n proceed(): void;\n location: Location;\n}\n\ninterface BlockerUnblocked {\n state: \"unblocked\";\n reset: undefined;\n proceed: undefined;\n location: undefined;\n}\n\ninterface BlockerProceeding {\n state: \"proceeding\";\n reset: undefined;\n proceed: undefined;\n location: Location;\n}\n\nexport type Blocker = BlockerUnblocked | BlockerBlocked | BlockerProceeding;\n\nexport type BlockerFunction = (args: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n}) => boolean;\n\ninterface ShortCircuitable {\n /**\n * startNavigation does not need to complete the navigation because we\n * redirected or got interrupted\n */\n shortCircuited?: boolean;\n}\n\ninterface HandleActionResult extends ShortCircuitable {\n /**\n * Error thrown from the current action, keyed by the route containing the\n * error boundary to render the error. To be committed to the state after\n * loaders have completed\n */\n pendingActionError?: RouteData;\n /**\n * Data returned from the current action, keyed by the route owning the action.\n * To be committed to the state after loaders have completed\n */\n pendingActionData?: RouteData;\n}\n\ninterface HandleLoadersResult extends ShortCircuitable {\n /**\n * loaderData returned from the current set of loaders\n */\n loaderData?: RouterState[\"loaderData\"];\n /**\n * errors thrown from the current set of loaders\n */\n errors?: RouterState[\"errors\"];\n}\n\n/**\n * Cached info for active fetcher.load() instances so they can participate\n * in revalidation\n */\ninterface FetchLoadMatch {\n routeId: string;\n path: string;\n}\n\n/**\n * Identified fetcher.load() calls that need to be revalidated\n */\ninterface RevalidatingFetcher extends FetchLoadMatch {\n key: string;\n match: AgnosticDataRouteMatch | null;\n matches: AgnosticDataRouteMatch[] | null;\n controller: AbortController | null;\n}\n\n/**\n * Wrapper object to allow us to throw any response out from callLoaderOrAction\n * for queryRouter while preserving whether or not it was thrown or returned\n * from the loader/action\n */\ninterface QueryRouteResponse {\n type: ResultType.data | ResultType.error;\n response: Response;\n}\n\nconst validMutationMethodsArr: MutationFormMethod[] = [\n \"post\",\n \"put\",\n \"patch\",\n \"delete\",\n];\nconst validMutationMethods = new Set(\n validMutationMethodsArr\n);\n\nconst validRequestMethodsArr: FormMethod[] = [\n \"get\",\n ...validMutationMethodsArr,\n];\nconst validRequestMethods = new Set(validRequestMethodsArr);\n\nconst redirectStatusCodes = new Set([301, 302, 303, 307, 308]);\nconst redirectPreserveMethodStatusCodes = new Set([307, 308]);\n\nexport const IDLE_NAVIGATION: NavigationStates[\"Idle\"] = {\n state: \"idle\",\n location: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n};\n\nexport const IDLE_FETCHER: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n};\n\nexport const IDLE_BLOCKER: BlockerUnblocked = {\n state: \"unblocked\",\n proceed: undefined,\n reset: undefined,\n location: undefined,\n};\n\nconst ABSOLUTE_URL_REGEX = /^(?:[a-z][a-z0-9+.-]*:|\\/\\/)/i;\n\nconst defaultMapRouteProperties: MapRoutePropertiesFunction = (route) => ({\n hasErrorBoundary: Boolean(route.hasErrorBoundary),\n});\n\nconst TRANSITIONS_STORAGE_KEY = \"remix-router-transitions\";\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createRouter\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Create a router and listen to history POP navigations\n */\nexport function createRouter(init: RouterInit): Router {\n const routerWindow = init.window\n ? init.window\n : typeof window !== \"undefined\"\n ? window\n : undefined;\n const isBrowser =\n typeof routerWindow !== \"undefined\" &&\n typeof routerWindow.document !== \"undefined\" &&\n typeof routerWindow.document.createElement !== \"undefined\";\n const isServer = !isBrowser;\n\n invariant(\n init.routes.length > 0,\n \"You must provide a non-empty routes array to createRouter\"\n );\n\n let mapRouteProperties: MapRoutePropertiesFunction;\n if (init.mapRouteProperties) {\n mapRouteProperties = init.mapRouteProperties;\n } else if (init.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = init.detectErrorBoundary;\n mapRouteProperties = (route) => ({\n hasErrorBoundary: detectErrorBoundary(route),\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n\n // Routes keyed by ID\n let manifest: RouteManifest = {};\n // Routes in tree format for matching\n let dataRoutes = convertRoutesToDataRoutes(\n init.routes,\n mapRouteProperties,\n undefined,\n manifest\n );\n let inFlightDataRoutes: AgnosticDataRouteObject[] | undefined;\n let basename = init.basename || \"/\";\n // Config driven behavior flags\n let future: FutureConfig = {\n v7_fetcherPersist: false,\n v7_normalizeFormMethod: false,\n v7_partialHydration: false,\n v7_prependBasename: false,\n v7_relativeSplatPath: false,\n ...init.future,\n };\n // Cleanup function for history\n let unlistenHistory: (() => void) | null = null;\n // Externally-provided functions to call on all state changes\n let subscribers = new Set();\n // Externally-provided object to hold scroll restoration locations during routing\n let savedScrollPositions: Record | null = null;\n // Externally-provided function to get scroll restoration keys\n let getScrollRestorationKey: GetScrollRestorationKeyFunction | null = null;\n // Externally-provided function to get current scroll position\n let getScrollPosition: GetScrollPositionFunction | null = null;\n // One-time flag to control the initial hydration scroll restoration. Because\n // we don't get the saved positions from until _after_\n // the initial render, we need to manually trigger a separate updateState to\n // send along the restoreScrollPosition\n // Set to true if we have `hydrationData` since we assume we were SSR'd and that\n // SSR did the initial scroll restoration.\n let initialScrollRestored = init.hydrationData != null;\n\n let initialMatches = matchRoutes(dataRoutes, init.history.location, basename);\n let initialErrors: RouteData | null = null;\n\n if (initialMatches == null) {\n // If we do not match a user-provided-route, fall back to the root\n // to allow the error boundary to take over\n let error = getInternalRouterError(404, {\n pathname: init.history.location.pathname,\n });\n let { matches, route } = getShortCircuitMatches(dataRoutes);\n initialMatches = matches;\n initialErrors = { [route.id]: error };\n }\n\n let initialized: boolean;\n let hasLazyRoutes = initialMatches.some((m) => m.route.lazy);\n let hasLoaders = initialMatches.some((m) => m.route.loader);\n if (hasLazyRoutes) {\n // All initialMatches need to be loaded before we're ready. If we have lazy\n // functions around still then we'll need to run them in initialize()\n initialized = false;\n } else if (!hasLoaders) {\n // If we've got no loaders to run, then we're good to go\n initialized = true;\n } else if (future.v7_partialHydration) {\n // If partial hydration is enabled, we're initialized so long as we were\n // provided with hydrationData for every route with a loader, and no loaders\n // were marked for explicit hydration\n let loaderData = init.hydrationData ? init.hydrationData.loaderData : null;\n let errors = init.hydrationData ? init.hydrationData.errors : null;\n let isRouteInitialized = (m: AgnosticDataRouteMatch) => {\n // No loader, nothing to initialize\n if (!m.route.loader) return true;\n // Explicitly opting-in to running on hydration\n if (m.route.loader.hydrate === true) return false;\n // Otherwise, initialized if hydrated with data or an error\n return (\n (loaderData && loaderData[m.route.id] !== undefined) ||\n (errors && errors[m.route.id] !== undefined)\n );\n };\n\n // If errors exist, don't consider routes below the boundary\n if (errors) {\n let idx = initialMatches.findIndex(\n (m) => errors![m.route.id] !== undefined\n );\n initialized = initialMatches.slice(0, idx + 1).every(isRouteInitialized);\n } else {\n initialized = initialMatches.every(isRouteInitialized);\n }\n } else {\n // Without partial hydration - we're initialized if we were provided any\n // hydrationData - which is expected to be complete\n initialized = init.hydrationData != null;\n }\n\n let router: Router;\n let state: RouterState = {\n historyAction: init.history.action,\n location: init.history.location,\n matches: initialMatches,\n initialized,\n navigation: IDLE_NAVIGATION,\n // Don't restore on initial updateState() if we were SSR'd\n restoreScrollPosition: init.hydrationData != null ? false : null,\n preventScrollReset: false,\n revalidation: \"idle\",\n loaderData: (init.hydrationData && init.hydrationData.loaderData) || {},\n actionData: (init.hydrationData && init.hydrationData.actionData) || null,\n errors: (init.hydrationData && init.hydrationData.errors) || initialErrors,\n fetchers: new Map(),\n blockers: new Map(),\n };\n\n // -- Stateful internal variables to manage navigations --\n // Current navigation in progress (to be committed in completeNavigation)\n let pendingAction: HistoryAction = HistoryAction.Pop;\n\n // Should the current navigation prevent the scroll reset if scroll cannot\n // be restored?\n let pendingPreventScrollReset = false;\n\n // AbortController for the active navigation\n let pendingNavigationController: AbortController | null;\n\n // Should the current navigation enable document.startViewTransition?\n let pendingViewTransitionEnabled = false;\n\n // Store applied view transitions so we can apply them on POP\n let appliedViewTransitions: Map> = new Map<\n string,\n Set\n >();\n\n // Cleanup function for persisting applied transitions to sessionStorage\n let removePageHideEventListener: (() => void) | null = null;\n\n // We use this to avoid touching history in completeNavigation if a\n // revalidation is entirely uninterrupted\n let isUninterruptedRevalidation = false;\n\n // Use this internal flag to force revalidation of all loaders:\n // - submissions (completed or interrupted)\n // - useRevalidator()\n // - X-Remix-Revalidate (from redirect)\n let isRevalidationRequired = false;\n\n // Use this internal array to capture routes that require revalidation due\n // to a cancelled deferred on action submission\n let cancelledDeferredRoutes: string[] = [];\n\n // Use this internal array to capture fetcher loads that were cancelled by an\n // action navigation and require revalidation\n let cancelledFetcherLoads: string[] = [];\n\n // AbortControllers for any in-flight fetchers\n let fetchControllers = new Map();\n\n // Track loads based on the order in which they started\n let incrementingLoadId = 0;\n\n // Track the outstanding pending navigation data load to be compared against\n // the globally incrementing load when a fetcher load lands after a completed\n // navigation\n let pendingNavigationLoadId = -1;\n\n // Fetchers that triggered data reloads as a result of their actions\n let fetchReloadIds = new Map();\n\n // Fetchers that triggered redirect navigations\n let fetchRedirectIds = new Set();\n\n // Most recent href/match for fetcher.load calls for fetchers\n let fetchLoadMatches = new Map();\n\n // Ref-count mounted fetchers so we know when it's ok to clean them up\n let activeFetchers = new Map();\n\n // Fetchers that have requested a delete when using v7_fetcherPersist,\n // they'll be officially removed after they return to idle\n let deletedFetchers = new Set();\n\n // Store DeferredData instances for active route matches. When a\n // route loader returns defer() we stick one in here. Then, when a nested\n // promise resolves we update loaderData. If a new navigation starts we\n // cancel active deferreds for eliminated routes.\n let activeDeferreds = new Map();\n\n // Store blocker functions in a separate Map outside of router state since\n // we don't need to update UI state if they change\n let blockerFunctions = new Map();\n\n // Flag to ignore the next history update, so we can revert the URL change on\n // a POP navigation that was blocked by the user without touching router state\n let ignoreNextHistoryUpdate = false;\n\n // Initialize the router, all side effects should be kicked off from here.\n // Implemented as a Fluent API for ease of:\n // let router = createRouter(init).initialize();\n function initialize() {\n // If history informs us of a POP navigation, start the navigation but do not update\n // state. We'll update our own state once the navigation completes\n unlistenHistory = init.history.listen(\n ({ action: historyAction, location, delta }) => {\n // Ignore this event if it was just us resetting the URL from a\n // blocked POP navigation\n if (ignoreNextHistoryUpdate) {\n ignoreNextHistoryUpdate = false;\n return;\n }\n\n warning(\n blockerFunctions.size === 0 || delta != null,\n \"You are trying to use a blocker on a POP navigation to a location \" +\n \"that was not created by @remix-run/router. This will fail silently in \" +\n \"production. This can happen if you are navigating outside the router \" +\n \"via `window.history.pushState`/`window.location.hash` instead of using \" +\n \"router navigation APIs. This can also happen if you are using \" +\n \"createHashRouter and the user manually changes the URL.\"\n );\n\n let blockerKey = shouldBlockNavigation({\n currentLocation: state.location,\n nextLocation: location,\n historyAction,\n });\n\n if (blockerKey && delta != null) {\n // Restore the URL to match the current UI, but don't update router state\n ignoreNextHistoryUpdate = true;\n init.history.go(delta * -1);\n\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location,\n });\n // Re-do the same POP navigation we just blocked\n init.history.go(delta);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey!, IDLE_BLOCKER);\n updateState({ blockers });\n },\n });\n return;\n }\n\n return startNavigation(historyAction, location);\n }\n );\n\n if (isBrowser) {\n // FIXME: This feels gross. How can we cleanup the lines between\n // scrollRestoration/appliedTransitions persistance?\n restoreAppliedTransitions(routerWindow, appliedViewTransitions);\n let _saveAppliedTransitions = () =>\n persistAppliedTransitions(routerWindow, appliedViewTransitions);\n routerWindow.addEventListener(\"pagehide\", _saveAppliedTransitions);\n removePageHideEventListener = () =>\n routerWindow.removeEventListener(\"pagehide\", _saveAppliedTransitions);\n }\n\n // Kick off initial data load if needed. Use Pop to avoid modifying history\n // Note we don't do any handling of lazy here. For SPA's it'll get handled\n // in the normal navigation flow. For SSR it's expected that lazy modules are\n // resolved prior to router creation since we can't go into a fallbackElement\n // UI for SSR'd apps\n if (!state.initialized) {\n startNavigation(HistoryAction.Pop, state.location, {\n initialHydration: true,\n });\n }\n\n return router;\n }\n\n // Clean up a router and it's side effects\n function dispose() {\n if (unlistenHistory) {\n unlistenHistory();\n }\n if (removePageHideEventListener) {\n removePageHideEventListener();\n }\n subscribers.clear();\n pendingNavigationController && pendingNavigationController.abort();\n state.fetchers.forEach((_, key) => deleteFetcher(key));\n state.blockers.forEach((_, key) => deleteBlocker(key));\n }\n\n // Subscribe to state updates for the router\n function subscribe(fn: RouterSubscriber) {\n subscribers.add(fn);\n return () => subscribers.delete(fn);\n }\n\n // Update our state and notify the calling context of the change\n function updateState(\n newState: Partial,\n opts: {\n flushSync?: boolean;\n viewTransitionOpts?: ViewTransitionOpts;\n } = {}\n ): void {\n state = {\n ...state,\n ...newState,\n };\n\n // Prep fetcher cleanup so we can tell the UI which fetcher data entries\n // can be removed\n let completedFetchers: string[] = [];\n let deletedFetchersKeys: string[] = [];\n\n if (future.v7_fetcherPersist) {\n state.fetchers.forEach((fetcher, key) => {\n if (fetcher.state === \"idle\") {\n if (deletedFetchers.has(key)) {\n // Unmounted from the UI and can be totally removed\n deletedFetchersKeys.push(key);\n } else {\n // Returned to idle but still mounted in the UI, so semi-remains for\n // revalidations and such\n completedFetchers.push(key);\n }\n }\n });\n }\n\n // Iterate over a local copy so that if flushSync is used and we end up\n // removing and adding a new subscriber due to the useCallback dependencies,\n // we don't get ourselves into a loop calling the new subscriber immediately\n [...subscribers].forEach((subscriber) =>\n subscriber(state, {\n deletedFetchers: deletedFetchersKeys,\n unstable_viewTransitionOpts: opts.viewTransitionOpts,\n unstable_flushSync: opts.flushSync === true,\n })\n );\n\n // Remove idle fetchers from state since we only care about in-flight fetchers.\n if (future.v7_fetcherPersist) {\n completedFetchers.forEach((key) => state.fetchers.delete(key));\n deletedFetchersKeys.forEach((key) => deleteFetcher(key));\n }\n }\n\n // Complete a navigation returning the state.navigation back to the IDLE_NAVIGATION\n // and setting state.[historyAction/location/matches] to the new route.\n // - Location is a required param\n // - Navigation will always be set to IDLE_NAVIGATION\n // - Can pass any other state in newState\n function completeNavigation(\n location: Location,\n newState: Partial>,\n { flushSync }: { flushSync?: boolean } = {}\n ): void {\n // Deduce if we're in a loading/actionReload state:\n // - We have committed actionData in the store\n // - The current navigation was a mutation submission\n // - We're past the submitting state and into the loading state\n // - The location being loaded is not the result of a redirect\n let isActionReload =\n state.actionData != null &&\n state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n state.navigation.state === \"loading\" &&\n location.state?._isRedirect !== true;\n\n let actionData: RouteData | null;\n if (newState.actionData) {\n if (Object.keys(newState.actionData).length > 0) {\n actionData = newState.actionData;\n } else {\n // Empty actionData -> clear prior actionData due to an action error\n actionData = null;\n }\n } else if (isActionReload) {\n // Keep the current data if we're wrapping up the action reload\n actionData = state.actionData;\n } else {\n // Clear actionData on any other completed navigations\n actionData = null;\n }\n\n // Always preserve any existing loaderData from re-used routes\n let loaderData = newState.loaderData\n ? mergeLoaderData(\n state.loaderData,\n newState.loaderData,\n newState.matches || [],\n newState.errors\n )\n : state.loaderData;\n\n // On a successful navigation we can assume we got through all blockers\n // so we can start fresh\n let blockers = state.blockers;\n if (blockers.size > 0) {\n blockers = new Map(blockers);\n blockers.forEach((_, k) => blockers.set(k, IDLE_BLOCKER));\n }\n\n // Always respect the user flag. Otherwise don't reset on mutation\n // submission navigations unless they redirect\n let preventScrollReset =\n pendingPreventScrollReset === true ||\n (state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n location.state?._isRedirect !== true);\n\n if (inFlightDataRoutes) {\n dataRoutes = inFlightDataRoutes;\n inFlightDataRoutes = undefined;\n }\n\n if (isUninterruptedRevalidation) {\n // If this was an uninterrupted revalidation then do not touch history\n } else if (pendingAction === HistoryAction.Pop) {\n // Do nothing for POP - URL has already been updated\n } else if (pendingAction === HistoryAction.Push) {\n init.history.push(location, location.state);\n } else if (pendingAction === HistoryAction.Replace) {\n init.history.replace(location, location.state);\n }\n\n let viewTransitionOpts: ViewTransitionOpts | undefined;\n\n // On POP, enable transitions if they were enabled on the original navigation\n if (pendingAction === HistoryAction.Pop) {\n // Forward takes precedence so they behave like the original navigation\n let priorPaths = appliedViewTransitions.get(state.location.pathname);\n if (priorPaths && priorPaths.has(location.pathname)) {\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location,\n };\n } else if (appliedViewTransitions.has(location.pathname)) {\n // If we don't have a previous forward nav, assume we're popping back to\n // the new location and enable if that location previously enabled\n viewTransitionOpts = {\n currentLocation: location,\n nextLocation: state.location,\n };\n }\n } else if (pendingViewTransitionEnabled) {\n // Store the applied transition on PUSH/REPLACE\n let toPaths = appliedViewTransitions.get(state.location.pathname);\n if (toPaths) {\n toPaths.add(location.pathname);\n } else {\n toPaths = new Set([location.pathname]);\n appliedViewTransitions.set(state.location.pathname, toPaths);\n }\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location,\n };\n }\n\n updateState(\n {\n ...newState, // matches, errors, fetchers go through as-is\n actionData,\n loaderData,\n historyAction: pendingAction,\n location,\n initialized: true,\n navigation: IDLE_NAVIGATION,\n revalidation: \"idle\",\n restoreScrollPosition: getSavedScrollPosition(\n location,\n newState.matches || state.matches\n ),\n preventScrollReset,\n blockers,\n },\n {\n viewTransitionOpts,\n flushSync: flushSync === true,\n }\n );\n\n // Reset stateful navigation vars\n pendingAction = HistoryAction.Pop;\n pendingPreventScrollReset = false;\n pendingViewTransitionEnabled = false;\n isUninterruptedRevalidation = false;\n isRevalidationRequired = false;\n cancelledDeferredRoutes = [];\n cancelledFetcherLoads = [];\n }\n\n // Trigger a navigation event, which can either be a numerical POP or a PUSH\n // replace with an optional submission\n async function navigate(\n to: number | To | null,\n opts?: RouterNavigateOptions\n ): Promise {\n if (typeof to === \"number\") {\n init.history.go(to);\n return;\n }\n\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n future.v7_prependBasename,\n to,\n future.v7_relativeSplatPath,\n opts?.fromRouteId,\n opts?.relative\n );\n let { path, submission, error } = normalizeNavigateOptions(\n future.v7_normalizeFormMethod,\n false,\n normalizedPath,\n opts\n );\n\n let currentLocation = state.location;\n let nextLocation = createLocation(state.location, path, opts && opts.state);\n\n // When using navigate as a PUSH/REPLACE we aren't reading an already-encoded\n // URL from window.location, so we need to encode it here so the behavior\n // remains the same as POP and non-data-router usages. new URL() does all\n // the same encoding we'd get from a history.pushState/window.location read\n // without having to touch history\n nextLocation = {\n ...nextLocation,\n ...init.history.encodeLocation(nextLocation),\n };\n\n let userReplace = opts && opts.replace != null ? opts.replace : undefined;\n\n let historyAction = HistoryAction.Push;\n\n if (userReplace === true) {\n historyAction = HistoryAction.Replace;\n } else if (userReplace === false) {\n // no-op\n } else if (\n submission != null &&\n isMutationMethod(submission.formMethod) &&\n submission.formAction === state.location.pathname + state.location.search\n ) {\n // By default on submissions to the current location we REPLACE so that\n // users don't have to double-click the back button to get to the prior\n // location. If the user redirects to a different location from the\n // action/loader this will be ignored and the redirect will be a PUSH\n historyAction = HistoryAction.Replace;\n }\n\n let preventScrollReset =\n opts && \"preventScrollReset\" in opts\n ? opts.preventScrollReset === true\n : undefined;\n\n let flushSync = (opts && opts.unstable_flushSync) === true;\n\n let blockerKey = shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n });\n\n if (blockerKey) {\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location: nextLocation,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location: nextLocation,\n });\n // Send the same navigation through\n navigate(to, opts);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey!, IDLE_BLOCKER);\n updateState({ blockers });\n },\n });\n return;\n }\n\n return await startNavigation(historyAction, nextLocation, {\n submission,\n // Send through the formData serialization error if we have one so we can\n // render at the right error boundary after we match routes\n pendingError: error,\n preventScrollReset,\n replace: opts && opts.replace,\n enableViewTransition: opts && opts.unstable_viewTransition,\n flushSync,\n });\n }\n\n // Revalidate all current loaders. If a navigation is in progress or if this\n // is interrupted by a navigation, allow this to \"succeed\" by calling all\n // loaders during the next loader round\n function revalidate() {\n interruptActiveLoads();\n updateState({ revalidation: \"loading\" });\n\n // If we're currently submitting an action, we don't need to start a new\n // navigation, we'll just let the follow up loader execution call all loaders\n if (state.navigation.state === \"submitting\") {\n return;\n }\n\n // If we're currently in an idle state, start a new navigation for the current\n // action/location and mark it as uninterrupted, which will skip the history\n // update in completeNavigation\n if (state.navigation.state === \"idle\") {\n startNavigation(state.historyAction, state.location, {\n startUninterruptedRevalidation: true,\n });\n return;\n }\n\n // Otherwise, if we're currently in a loading state, just start a new\n // navigation to the navigation.location but do not trigger an uninterrupted\n // revalidation so that history correctly updates once the navigation completes\n startNavigation(\n pendingAction || state.historyAction,\n state.navigation.location,\n { overrideNavigation: state.navigation }\n );\n }\n\n // Start a navigation to the given action/location. Can optionally provide a\n // overrideNavigation which will override the normalLoad in the case of a redirect\n // navigation\n async function startNavigation(\n historyAction: HistoryAction,\n location: Location,\n opts?: {\n initialHydration?: boolean;\n submission?: Submission;\n fetcherSubmission?: Submission;\n overrideNavigation?: Navigation;\n pendingError?: ErrorResponseImpl;\n startUninterruptedRevalidation?: boolean;\n preventScrollReset?: boolean;\n replace?: boolean;\n enableViewTransition?: boolean;\n flushSync?: boolean;\n }\n ): Promise {\n // Abort any in-progress navigations and start a new one. Unset any ongoing\n // uninterrupted revalidations unless told otherwise, since we want this\n // new navigation to update history normally\n pendingNavigationController && pendingNavigationController.abort();\n pendingNavigationController = null;\n pendingAction = historyAction;\n isUninterruptedRevalidation =\n (opts && opts.startUninterruptedRevalidation) === true;\n\n // Save the current scroll position every time we start a new navigation,\n // and track whether we should reset scroll on completion\n saveScrollPosition(state.location, state.matches);\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n pendingViewTransitionEnabled = (opts && opts.enableViewTransition) === true;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let loadingNavigation = opts && opts.overrideNavigation;\n let matches = matchRoutes(routesToUse, location, basename);\n let flushSync = (opts && opts.flushSync) === true;\n\n // Short circuit with a 404 on the root error boundary if we match nothing\n if (!matches) {\n let error = getInternalRouterError(404, { pathname: location.pathname });\n let { matches: notFoundMatches, route } =\n getShortCircuitMatches(routesToUse);\n // Cancel all pending deferred on 404s since we don't keep any routes\n cancelActiveDeferreds();\n completeNavigation(\n location,\n {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error,\n },\n },\n { flushSync }\n );\n return;\n }\n\n // Short circuit if it's only a hash change and not a revalidation or\n // mutation submission.\n //\n // Ignore on initial page loads because since the initial load will always\n // be \"same hash\". For example, on /page#hash and submit a \n // which will default to a navigation to /page\n if (\n state.initialized &&\n !isRevalidationRequired &&\n isHashChangeOnly(state.location, location) &&\n !(opts && opts.submission && isMutationMethod(opts.submission.formMethod))\n ) {\n completeNavigation(location, { matches }, { flushSync });\n return;\n }\n\n // Create a controller/Request for this navigation\n pendingNavigationController = new AbortController();\n let request = createClientSideRequest(\n init.history,\n location,\n pendingNavigationController.signal,\n opts && opts.submission\n );\n let pendingActionData: RouteData | undefined;\n let pendingError: RouteData | undefined;\n\n if (opts && opts.pendingError) {\n // If we have a pendingError, it means the user attempted a GET submission\n // with binary FormData so assign here and skip to handleLoaders. That\n // way we handle calling loaders above the boundary etc. It's not really\n // different from an actionError in that sense.\n pendingError = {\n [findNearestBoundary(matches).route.id]: opts.pendingError,\n };\n } else if (\n opts &&\n opts.submission &&\n isMutationMethod(opts.submission.formMethod)\n ) {\n // Call action if we received an action submission\n let actionOutput = await handleAction(\n request,\n location,\n opts.submission,\n matches,\n { replace: opts.replace, flushSync }\n );\n\n if (actionOutput.shortCircuited) {\n return;\n }\n\n pendingActionData = actionOutput.pendingActionData;\n pendingError = actionOutput.pendingActionError;\n loadingNavigation = getLoadingNavigation(location, opts.submission);\n flushSync = false;\n\n // Create a GET request for the loaders\n request = new Request(request.url, { signal: request.signal });\n }\n\n // Call loaders\n let { shortCircuited, loaderData, errors } = await handleLoaders(\n request,\n location,\n matches,\n loadingNavigation,\n opts && opts.submission,\n opts && opts.fetcherSubmission,\n opts && opts.replace,\n opts && opts.initialHydration === true,\n flushSync,\n pendingActionData,\n pendingError\n );\n\n if (shortCircuited) {\n return;\n }\n\n // Clean up now that the action/loaders have completed. Don't clean up if\n // we short circuited because pendingNavigationController will have already\n // been assigned to a new controller for the next navigation\n pendingNavigationController = null;\n\n completeNavigation(location, {\n matches,\n ...(pendingActionData ? { actionData: pendingActionData } : {}),\n loaderData,\n errors,\n });\n }\n\n // Call the action matched by the leaf route for this navigation and handle\n // redirects/errors\n async function handleAction(\n request: Request,\n location: Location,\n submission: Submission,\n matches: AgnosticDataRouteMatch[],\n opts: { replace?: boolean; flushSync?: boolean } = {}\n ): Promise {\n interruptActiveLoads();\n\n // Put us in a submitting state\n let navigation = getSubmittingNavigation(location, submission);\n updateState({ navigation }, { flushSync: opts.flushSync === true });\n\n // Call our action and get the result\n let result: DataResult;\n let actionMatch = getTargetMatch(matches, location);\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n result = {\n type: ResultType.error,\n error: getInternalRouterError(405, {\n method: request.method,\n pathname: location.pathname,\n routeId: actionMatch.route.id,\n }),\n };\n } else {\n result = await callLoaderOrAction(\n \"action\",\n request,\n actionMatch,\n matches,\n manifest,\n mapRouteProperties,\n basename,\n future.v7_relativeSplatPath\n );\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n }\n\n if (isRedirectResult(result)) {\n let replace: boolean;\n if (opts && opts.replace != null) {\n replace = opts.replace;\n } else {\n // If the user didn't explicity indicate replace behavior, replace if\n // we redirected to the exact same location we're currently at to avoid\n // double back-buttons\n replace =\n result.location === state.location.pathname + state.location.search;\n }\n await startRedirectNavigation(state, result, { submission, replace });\n return { shortCircuited: true };\n }\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n\n // By default, all submissions are REPLACE navigations, but if the\n // action threw an error that'll be rendered in an errorElement, we fall\n // back to PUSH so that the user can use the back button to get back to\n // the pre-submission form location to try again\n if ((opts && opts.replace) !== true) {\n pendingAction = HistoryAction.Push;\n }\n\n return {\n // Send back an empty object we can use to clear out any prior actionData\n pendingActionData: {},\n pendingActionError: { [boundaryMatch.route.id]: result.error },\n };\n }\n\n if (isDeferredResult(result)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n return {\n pendingActionData: { [actionMatch.route.id]: result.data },\n };\n }\n\n // Call all applicable loaders for the given matches, handling redirects,\n // errors, etc.\n async function handleLoaders(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n overrideNavigation?: Navigation,\n submission?: Submission,\n fetcherSubmission?: Submission,\n replace?: boolean,\n initialHydration?: boolean,\n flushSync?: boolean,\n pendingActionData?: RouteData,\n pendingError?: RouteData\n ): Promise {\n // Figure out the right navigation we want to use for data loading\n let loadingNavigation =\n overrideNavigation || getLoadingNavigation(location, submission);\n\n // If this was a redirect from an action we don't have a \"submission\" but\n // we have it on the loading navigation so use that if available\n let activeSubmission =\n submission ||\n fetcherSubmission ||\n getSubmissionFromNavigation(loadingNavigation);\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n activeSubmission,\n location,\n future.v7_partialHydration && initialHydration === true,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n deletedFetchers,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n pendingActionData,\n pendingError\n );\n\n // Cancel pending deferreds for no-longer-matched routes or routes we're\n // about to reload. Note that if this is an action reload we would have\n // already cancelled all pending deferreds so this would be a no-op\n cancelActiveDeferreds(\n (routeId) =>\n !(matches && matches.some((m) => m.route.id === routeId)) ||\n (matchesToLoad && matchesToLoad.some((m) => m.route.id === routeId))\n );\n\n pendingNavigationLoadId = ++incrementingLoadId;\n\n // Short circuit if we have no loaders to run\n if (matchesToLoad.length === 0 && revalidatingFetchers.length === 0) {\n let updatedFetchers = markFetchRedirectsDone();\n completeNavigation(\n location,\n {\n matches,\n loaderData: {},\n // Commit pending error if we're short circuiting\n errors: pendingError || null,\n ...(pendingActionData ? { actionData: pendingActionData } : {}),\n ...(updatedFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n },\n { flushSync }\n );\n return { shortCircuited: true };\n }\n\n // If this is an uninterrupted revalidation, we remain in our current idle\n // state. If not, we need to switch to our loading state and load data,\n // preserving any new action data or existing action data (in the case of\n // a revalidation interrupting an actionReload)\n // If we have partialHydration enabled, then don't update the state for the\n // initial data load since it's not a \"navigation\"\n if (\n !isUninterruptedRevalidation &&\n (!future.v7_partialHydration || !initialHydration)\n ) {\n revalidatingFetchers.forEach((rf) => {\n let fetcher = state.fetchers.get(rf.key);\n let revalidatingFetcher = getLoadingFetcher(\n undefined,\n fetcher ? fetcher.data : undefined\n );\n state.fetchers.set(rf.key, revalidatingFetcher);\n });\n let actionData = pendingActionData || state.actionData;\n updateState(\n {\n navigation: loadingNavigation,\n ...(actionData\n ? Object.keys(actionData).length === 0\n ? { actionData: null }\n : { actionData }\n : {}),\n ...(revalidatingFetchers.length > 0\n ? { fetchers: new Map(state.fetchers) }\n : {}),\n },\n {\n flushSync,\n }\n );\n }\n\n revalidatingFetchers.forEach((rf) => {\n if (fetchControllers.has(rf.key)) {\n abortFetcher(rf.key);\n }\n if (rf.controller) {\n // Fetchers use an independent AbortController so that aborting a fetcher\n // (via deleteFetcher) does not abort the triggering navigation that\n // triggered the revalidation\n fetchControllers.set(rf.key, rf.controller);\n }\n });\n\n // Proxy navigation abort through to revalidation fetchers\n let abortPendingFetchRevalidations = () =>\n revalidatingFetchers.forEach((f) => abortFetcher(f.key));\n if (pendingNavigationController) {\n pendingNavigationController.signal.addEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n }\n\n let { results, loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state.matches,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n request\n );\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n\n // Clean up _after_ loaders have completed. Don't clean up if we short\n // circuited because fetchControllers would have been aborted and\n // reassigned to new controllers for the next navigation\n if (pendingNavigationController) {\n pendingNavigationController.signal.removeEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n }\n revalidatingFetchers.forEach((rf) => fetchControllers.delete(rf.key));\n\n // If any loaders returned a redirect Response, start a new REPLACE navigation\n let redirect = findRedirect(results);\n if (redirect) {\n if (redirect.idx >= matchesToLoad.length) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n let fetcherKey =\n revalidatingFetchers[redirect.idx - matchesToLoad.length].key;\n fetchRedirectIds.add(fetcherKey);\n }\n await startRedirectNavigation(state, redirect.result, { replace });\n return { shortCircuited: true };\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n matches,\n matchesToLoad,\n loaderResults,\n pendingError,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n // Wire up subscribers to update loaderData as promises settle\n activeDeferreds.forEach((deferredData, routeId) => {\n deferredData.subscribe((aborted) => {\n // Note: No need to updateState here since the TrackedPromise on\n // loaderData is stable across resolve/reject\n // Remove this instance if we were aborted or if promises have settled\n if (aborted || deferredData.done) {\n activeDeferreds.delete(routeId);\n }\n });\n });\n\n // During partial hydration, preserve SSR errors for routes that don't re-run\n if (future.v7_partialHydration && initialHydration && state.errors) {\n Object.entries(state.errors)\n .filter(([id]) => !matchesToLoad.some((m) => m.route.id === id))\n .forEach(([routeId, error]) => {\n errors = Object.assign(errors || {}, { [routeId]: error });\n });\n }\n\n let updatedFetchers = markFetchRedirectsDone();\n let didAbortFetchLoads = abortStaleFetchLoads(pendingNavigationLoadId);\n let shouldUpdateFetchers =\n updatedFetchers || didAbortFetchLoads || revalidatingFetchers.length > 0;\n\n return {\n loaderData,\n errors,\n ...(shouldUpdateFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n };\n }\n\n // Trigger a fetcher load/submit for the given fetcher key\n function fetch(\n key: string,\n routeId: string,\n href: string | null,\n opts?: RouterFetchOptions\n ) {\n if (isServer) {\n throw new Error(\n \"router.fetch() was called during the server render, but it shouldn't be. \" +\n \"You are likely calling a useFetcher() method in the body of your component. \" +\n \"Try moving it to a useEffect or a callback.\"\n );\n }\n\n if (fetchControllers.has(key)) abortFetcher(key);\n let flushSync = (opts && opts.unstable_flushSync) === true;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n future.v7_prependBasename,\n href,\n future.v7_relativeSplatPath,\n routeId,\n opts?.relative\n );\n let matches = matchRoutes(routesToUse, normalizedPath, basename);\n\n if (!matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: normalizedPath }),\n { flushSync }\n );\n return;\n }\n\n let { path, submission, error } = normalizeNavigateOptions(\n future.v7_normalizeFormMethod,\n true,\n normalizedPath,\n opts\n );\n\n if (error) {\n setFetcherError(key, routeId, error, { flushSync });\n return;\n }\n\n let match = getTargetMatch(matches, path);\n\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n if (submission && isMutationMethod(submission.formMethod)) {\n handleFetcherAction(\n key,\n routeId,\n path,\n match,\n matches,\n flushSync,\n submission\n );\n return;\n }\n\n // Store off the match so we can call it's shouldRevalidate on subsequent\n // revalidations\n fetchLoadMatches.set(key, { routeId, path });\n handleFetcherLoader(\n key,\n routeId,\n path,\n match,\n matches,\n flushSync,\n submission\n );\n }\n\n // Call the action for the matched fetcher.submit(), and then handle redirects,\n // errors, and revalidation\n async function handleFetcherAction(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n requestMatches: AgnosticDataRouteMatch[],\n flushSync: boolean,\n submission: Submission\n ) {\n interruptActiveLoads();\n fetchLoadMatches.delete(key);\n\n if (!match.route.action && !match.route.lazy) {\n let error = getInternalRouterError(405, {\n method: submission.formMethod,\n pathname: path,\n routeId: routeId,\n });\n setFetcherError(key, routeId, error, { flushSync });\n return;\n }\n\n // Put this fetcher into it's submitting state\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(key, getSubmittingFetcher(submission, existingFetcher), {\n flushSync,\n });\n\n // Call the action for the fetcher\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal,\n submission\n );\n fetchControllers.set(key, abortController);\n\n let originatingLoadId = incrementingLoadId;\n let actionResult = await callLoaderOrAction(\n \"action\",\n fetchRequest,\n match,\n requestMatches,\n manifest,\n mapRouteProperties,\n basename,\n future.v7_relativeSplatPath\n );\n\n if (fetchRequest.signal.aborted) {\n // We can delete this so long as we weren't aborted by our own fetcher\n // re-submit which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n return;\n }\n\n // When using v7_fetcherPersist, we don't want errors bubbling up to the UI\n // or redirects processed for unmounted fetchers so we just revert them to\n // idle\n if (future.v7_fetcherPersist && deletedFetchers.has(key)) {\n if (isRedirectResult(actionResult) || isErrorResult(actionResult)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n // Let SuccessResult's fall through for revalidation\n } else {\n if (isRedirectResult(actionResult)) {\n fetchControllers.delete(key);\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our action started, so that\n // should take precedence over this redirect navigation. We already\n // set isRevalidationRequired so all loaders for the new route should\n // fire unless opted out via shouldRevalidate\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n updateFetcherState(key, getLoadingFetcher(submission));\n return startRedirectNavigation(state, actionResult, {\n fetcherSubmission: submission,\n });\n }\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(actionResult)) {\n setFetcherError(key, routeId, actionResult.error);\n return;\n }\n }\n\n if (isDeferredResult(actionResult)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n // Start the data load for current matches, or the next location if we're\n // in the middle of a navigation\n let nextLocation = state.navigation.location || state.location;\n let revalidationRequest = createClientSideRequest(\n init.history,\n nextLocation,\n abortController.signal\n );\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let matches =\n state.navigation.state !== \"idle\"\n ? matchRoutes(routesToUse, state.navigation.location, basename)\n : state.matches;\n\n invariant(matches, \"Didn't find any matches after fetcher action\");\n\n let loadId = ++incrementingLoadId;\n fetchReloadIds.set(key, loadId);\n\n let loadFetcher = getLoadingFetcher(submission, actionResult.data);\n state.fetchers.set(key, loadFetcher);\n\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n submission,\n nextLocation,\n false,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n deletedFetchers,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n { [match.route.id]: actionResult.data },\n undefined // No need to send through errors since we short circuit above\n );\n\n // Put all revalidating fetchers into the loading state, except for the\n // current fetcher which we want to keep in it's current loading state which\n // contains it's action submission info + action data\n revalidatingFetchers\n .filter((rf) => rf.key !== key)\n .forEach((rf) => {\n let staleKey = rf.key;\n let existingFetcher = state.fetchers.get(staleKey);\n let revalidatingFetcher = getLoadingFetcher(\n undefined,\n existingFetcher ? existingFetcher.data : undefined\n );\n state.fetchers.set(staleKey, revalidatingFetcher);\n if (fetchControllers.has(staleKey)) {\n abortFetcher(staleKey);\n }\n if (rf.controller) {\n fetchControllers.set(staleKey, rf.controller);\n }\n });\n\n updateState({ fetchers: new Map(state.fetchers) });\n\n let abortPendingFetchRevalidations = () =>\n revalidatingFetchers.forEach((rf) => abortFetcher(rf.key));\n\n abortController.signal.addEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n\n let { results, loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state.matches,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n revalidationRequest\n );\n\n if (abortController.signal.aborted) {\n return;\n }\n\n abortController.signal.removeEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n\n fetchReloadIds.delete(key);\n fetchControllers.delete(key);\n revalidatingFetchers.forEach((r) => fetchControllers.delete(r.key));\n\n let redirect = findRedirect(results);\n if (redirect) {\n if (redirect.idx >= matchesToLoad.length) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n let fetcherKey =\n revalidatingFetchers[redirect.idx - matchesToLoad.length].key;\n fetchRedirectIds.add(fetcherKey);\n }\n return startRedirectNavigation(state, redirect.result);\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n state.matches,\n matchesToLoad,\n loaderResults,\n undefined,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n // Since we let revalidations complete even if the submitting fetcher was\n // deleted, only put it back to idle if it hasn't been deleted\n if (state.fetchers.has(key)) {\n let doneFetcher = getDoneFetcher(actionResult.data);\n state.fetchers.set(key, doneFetcher);\n }\n\n abortStaleFetchLoads(loadId);\n\n // If we are currently in a navigation loading state and this fetcher is\n // more recent than the navigation, we want the newer data so abort the\n // navigation and complete it with the fetcher data\n if (\n state.navigation.state === \"loading\" &&\n loadId > pendingNavigationLoadId\n ) {\n invariant(pendingAction, \"Expected pending action\");\n pendingNavigationController && pendingNavigationController.abort();\n\n completeNavigation(state.navigation.location, {\n matches,\n loaderData,\n errors,\n fetchers: new Map(state.fetchers),\n });\n } else {\n // otherwise just update with the fetcher data, preserving any existing\n // loaderData for loaders that did not need to reload. We have to\n // manually merge here since we aren't going through completeNavigation\n updateState({\n errors,\n loaderData: mergeLoaderData(\n state.loaderData,\n loaderData,\n matches,\n errors\n ),\n fetchers: new Map(state.fetchers),\n });\n isRevalidationRequired = false;\n }\n }\n\n // Call the matched loader for fetcher.load(), handling redirects, errors, etc.\n async function handleFetcherLoader(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n matches: AgnosticDataRouteMatch[],\n flushSync: boolean,\n submission?: Submission\n ) {\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(\n key,\n getLoadingFetcher(\n submission,\n existingFetcher ? existingFetcher.data : undefined\n ),\n { flushSync }\n );\n\n // Call the loader for this fetcher route match\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal\n );\n fetchControllers.set(key, abortController);\n\n let originatingLoadId = incrementingLoadId;\n let result: DataResult = await callLoaderOrAction(\n \"loader\",\n fetchRequest,\n match,\n matches,\n manifest,\n mapRouteProperties,\n basename,\n future.v7_relativeSplatPath\n );\n\n // Deferred isn't supported for fetcher loads, await everything and treat it\n // as a normal load. resolveDeferredData will return undefined if this\n // fetcher gets aborted, so we just leave result untouched and short circuit\n // below if that happens\n if (isDeferredResult(result)) {\n result =\n (await resolveDeferredData(result, fetchRequest.signal, true)) ||\n result;\n }\n\n // We can delete this so long as we weren't aborted by our our own fetcher\n // re-load which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n\n if (fetchRequest.signal.aborted) {\n return;\n }\n\n // We don't want errors bubbling up or redirects followed for unmounted\n // fetchers, so short circuit here if it was removed from the UI\n if (deletedFetchers.has(key)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n\n // If the loader threw a redirect Response, start a new REPLACE navigation\n if (isRedirectResult(result)) {\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our loader started, so that\n // should take precedence over this redirect navigation\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n await startRedirectNavigation(state, result);\n return;\n }\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(result)) {\n setFetcherError(key, routeId, result.error);\n return;\n }\n\n invariant(!isDeferredResult(result), \"Unhandled fetcher deferred data\");\n\n // Put the fetcher back into an idle state\n updateFetcherState(key, getDoneFetcher(result.data));\n }\n\n /**\n * Utility function to handle redirects returned from an action or loader.\n * Normally, a redirect \"replaces\" the navigation that triggered it. So, for\n * example:\n *\n * - user is on /a\n * - user clicks a link to /b\n * - loader for /b redirects to /c\n *\n * In a non-JS app the browser would track the in-flight navigation to /b and\n * then replace it with /c when it encountered the redirect response. In\n * the end it would only ever update the URL bar with /c.\n *\n * In client-side routing using pushState/replaceState, we aim to emulate\n * this behavior and we also do not update history until the end of the\n * navigation (including processed redirects). This means that we never\n * actually touch history until we've processed redirects, so we just use\n * the history action from the original navigation (PUSH or REPLACE).\n */\n async function startRedirectNavigation(\n state: RouterState,\n redirect: RedirectResult,\n {\n submission,\n fetcherSubmission,\n replace,\n }: {\n submission?: Submission;\n fetcherSubmission?: Submission;\n replace?: boolean;\n } = {}\n ) {\n if (redirect.revalidate) {\n isRevalidationRequired = true;\n }\n\n let redirectLocation = createLocation(state.location, redirect.location, {\n _isRedirect: true,\n });\n invariant(\n redirectLocation,\n \"Expected a location on the redirect navigation\"\n );\n\n if (isBrowser) {\n let isDocumentReload = false;\n\n if (redirect.reloadDocument) {\n // Hard reload if the response contained X-Remix-Reload-Document\n isDocumentReload = true;\n } else if (ABSOLUTE_URL_REGEX.test(redirect.location)) {\n const url = init.history.createURL(redirect.location);\n isDocumentReload =\n // Hard reload if it's an absolute URL to a new origin\n url.origin !== routerWindow.location.origin ||\n // Hard reload if it's an absolute URL that does not match our basename\n stripBasename(url.pathname, basename) == null;\n }\n\n if (isDocumentReload) {\n if (replace) {\n routerWindow.location.replace(redirect.location);\n } else {\n routerWindow.location.assign(redirect.location);\n }\n return;\n }\n }\n\n // There's no need to abort on redirects, since we don't detect the\n // redirect until the action/loaders have settled\n pendingNavigationController = null;\n\n let redirectHistoryAction =\n replace === true ? HistoryAction.Replace : HistoryAction.Push;\n\n // Use the incoming submission if provided, fallback on the active one in\n // state.navigation\n let { formMethod, formAction, formEncType } = state.navigation;\n if (\n !submission &&\n !fetcherSubmission &&\n formMethod &&\n formAction &&\n formEncType\n ) {\n submission = getSubmissionFromNavigation(state.navigation);\n }\n\n // If this was a 307/308 submission we want to preserve the HTTP method and\n // re-submit the GET/POST/PUT/PATCH/DELETE as a submission navigation to the\n // redirected location\n let activeSubmission = submission || fetcherSubmission;\n if (\n redirectPreserveMethodStatusCodes.has(redirect.status) &&\n activeSubmission &&\n isMutationMethod(activeSubmission.formMethod)\n ) {\n await startNavigation(redirectHistoryAction, redirectLocation, {\n submission: {\n ...activeSubmission,\n formAction: redirect.location,\n },\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset,\n });\n } else {\n // If we have a navigation submission, we will preserve it through the\n // redirect navigation\n let overrideNavigation = getLoadingNavigation(\n redirectLocation,\n submission\n );\n await startNavigation(redirectHistoryAction, redirectLocation, {\n overrideNavigation,\n // Send fetcher submissions through for shouldRevalidate\n fetcherSubmission,\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset,\n });\n }\n }\n\n async function callLoadersAndMaybeResolveData(\n currentMatches: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n fetchersToLoad: RevalidatingFetcher[],\n request: Request\n ) {\n // Call all navigation loaders and revalidating fetcher loaders in parallel,\n // then slice off the results into separate arrays so we can handle them\n // accordingly\n let results = await Promise.all([\n ...matchesToLoad.map((match) =>\n callLoaderOrAction(\n \"loader\",\n request,\n match,\n matches,\n manifest,\n mapRouteProperties,\n basename,\n future.v7_relativeSplatPath\n )\n ),\n ...fetchersToLoad.map((f) => {\n if (f.matches && f.match && f.controller) {\n return callLoaderOrAction(\n \"loader\",\n createClientSideRequest(init.history, f.path, f.controller.signal),\n f.match,\n f.matches,\n manifest,\n mapRouteProperties,\n basename,\n future.v7_relativeSplatPath\n );\n } else {\n let error: ErrorResult = {\n type: ResultType.error,\n error: getInternalRouterError(404, { pathname: f.path }),\n };\n return error;\n }\n }),\n ]);\n let loaderResults = results.slice(0, matchesToLoad.length);\n let fetcherResults = results.slice(matchesToLoad.length);\n\n await Promise.all([\n resolveDeferredResults(\n currentMatches,\n matchesToLoad,\n loaderResults,\n loaderResults.map(() => request.signal),\n false,\n state.loaderData\n ),\n resolveDeferredResults(\n currentMatches,\n fetchersToLoad.map((f) => f.match),\n fetcherResults,\n fetchersToLoad.map((f) => (f.controller ? f.controller.signal : null)),\n true\n ),\n ]);\n\n return { results, loaderResults, fetcherResults };\n }\n\n function interruptActiveLoads() {\n // Every interruption triggers a revalidation\n isRevalidationRequired = true;\n\n // Cancel pending route-level deferreds and mark cancelled routes for\n // revalidation\n cancelledDeferredRoutes.push(...cancelActiveDeferreds());\n\n // Abort in-flight fetcher loads\n fetchLoadMatches.forEach((_, key) => {\n if (fetchControllers.has(key)) {\n cancelledFetcherLoads.push(key);\n abortFetcher(key);\n }\n });\n }\n\n function updateFetcherState(\n key: string,\n fetcher: Fetcher,\n opts: { flushSync?: boolean } = {}\n ) {\n state.fetchers.set(key, fetcher);\n updateState(\n { fetchers: new Map(state.fetchers) },\n { flushSync: (opts && opts.flushSync) === true }\n );\n }\n\n function setFetcherError(\n key: string,\n routeId: string,\n error: any,\n opts: { flushSync?: boolean } = {}\n ) {\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n deleteFetcher(key);\n updateState(\n {\n errors: {\n [boundaryMatch.route.id]: error,\n },\n fetchers: new Map(state.fetchers),\n },\n { flushSync: (opts && opts.flushSync) === true }\n );\n }\n\n function getFetcher(key: string): Fetcher {\n if (future.v7_fetcherPersist) {\n activeFetchers.set(key, (activeFetchers.get(key) || 0) + 1);\n // If this fetcher was previously marked for deletion, unmark it since we\n // have a new instance\n if (deletedFetchers.has(key)) {\n deletedFetchers.delete(key);\n }\n }\n return state.fetchers.get(key) || IDLE_FETCHER;\n }\n\n function deleteFetcher(key: string): void {\n let fetcher = state.fetchers.get(key);\n // Don't abort the controller if this is a deletion of a fetcher.submit()\n // in it's loading phase since - we don't want to abort the corresponding\n // revalidation and want them to complete and land\n if (\n fetchControllers.has(key) &&\n !(fetcher && fetcher.state === \"loading\" && fetchReloadIds.has(key))\n ) {\n abortFetcher(key);\n }\n fetchLoadMatches.delete(key);\n fetchReloadIds.delete(key);\n fetchRedirectIds.delete(key);\n deletedFetchers.delete(key);\n state.fetchers.delete(key);\n }\n\n function deleteFetcherAndUpdateState(key: string): void {\n if (future.v7_fetcherPersist) {\n let count = (activeFetchers.get(key) || 0) - 1;\n if (count <= 0) {\n activeFetchers.delete(key);\n deletedFetchers.add(key);\n } else {\n activeFetchers.set(key, count);\n }\n } else {\n deleteFetcher(key);\n }\n updateState({ fetchers: new Map(state.fetchers) });\n }\n\n function abortFetcher(key: string) {\n let controller = fetchControllers.get(key);\n invariant(controller, `Expected fetch controller: ${key}`);\n controller.abort();\n fetchControllers.delete(key);\n }\n\n function markFetchersDone(keys: string[]) {\n for (let key of keys) {\n let fetcher = getFetcher(key);\n let doneFetcher = getDoneFetcher(fetcher.data);\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n function markFetchRedirectsDone(): boolean {\n let doneKeys = [];\n let updatedFetchers = false;\n for (let key of fetchRedirectIds) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n fetchRedirectIds.delete(key);\n doneKeys.push(key);\n updatedFetchers = true;\n }\n }\n markFetchersDone(doneKeys);\n return updatedFetchers;\n }\n\n function abortStaleFetchLoads(landedId: number): boolean {\n let yeetedKeys = [];\n for (let [key, id] of fetchReloadIds) {\n if (id < landedId) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n abortFetcher(key);\n fetchReloadIds.delete(key);\n yeetedKeys.push(key);\n }\n }\n }\n markFetchersDone(yeetedKeys);\n return yeetedKeys.length > 0;\n }\n\n function getBlocker(key: string, fn: BlockerFunction) {\n let blocker: Blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n if (blockerFunctions.get(key) !== fn) {\n blockerFunctions.set(key, fn);\n }\n\n return blocker;\n }\n\n function deleteBlocker(key: string) {\n state.blockers.delete(key);\n blockerFunctions.delete(key);\n }\n\n // Utility function to update blockers, ensuring valid state transitions\n function updateBlocker(key: string, newBlocker: Blocker) {\n let blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n // Poor mans state machine :)\n // https://mermaid.live/edit#pako:eNqVkc9OwzAMxl8l8nnjAYrEtDIOHEBIgwvKJTReGy3_lDpIqO27k6awMG0XcrLlnz87nwdonESogKXXBuE79rq75XZO3-yHds0RJVuv70YrPlUrCEe2HfrORS3rubqZfuhtpg5C9wk5tZ4VKcRUq88q9Z8RS0-48cE1iHJkL0ugbHuFLus9L6spZy8nX9MP2CNdomVaposqu3fGayT8T8-jJQwhepo_UtpgBQaDEUom04dZhAN1aJBDlUKJBxE1ceB2Smj0Mln-IBW5AFU2dwUiktt_2Qaq2dBfaKdEup85UV7Yd-dKjlnkabl2Pvr0DTkTreM\n invariant(\n (blocker.state === \"unblocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"proceeding\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"unblocked\") ||\n (blocker.state === \"proceeding\" && newBlocker.state === \"unblocked\"),\n `Invalid blocker state transition: ${blocker.state} -> ${newBlocker.state}`\n );\n\n let blockers = new Map(state.blockers);\n blockers.set(key, newBlocker);\n updateState({ blockers });\n }\n\n function shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n }: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n }): string | undefined {\n if (blockerFunctions.size === 0) {\n return;\n }\n\n // We ony support a single active blocker at the moment since we don't have\n // any compelling use cases for multi-blocker yet\n if (blockerFunctions.size > 1) {\n warning(false, \"A router only supports one blocker at a time\");\n }\n\n let entries = Array.from(blockerFunctions.entries());\n let [blockerKey, blockerFunction] = entries[entries.length - 1];\n let blocker = state.blockers.get(blockerKey);\n\n if (blocker && blocker.state === \"proceeding\") {\n // If the blocker is currently proceeding, we don't need to re-check\n // it and can let this navigation continue\n return;\n }\n\n // At this point, we know we're unblocked/blocked so we need to check the\n // user-provided blocker function\n if (blockerFunction({ currentLocation, nextLocation, historyAction })) {\n return blockerKey;\n }\n }\n\n function cancelActiveDeferreds(\n predicate?: (routeId: string) => boolean\n ): string[] {\n let cancelledRouteIds: string[] = [];\n activeDeferreds.forEach((dfd, routeId) => {\n if (!predicate || predicate(routeId)) {\n // Cancel the deferred - but do not remove from activeDeferreds here -\n // we rely on the subscribers to do that so our tests can assert proper\n // cleanup via _internalActiveDeferreds\n dfd.cancel();\n cancelledRouteIds.push(routeId);\n activeDeferreds.delete(routeId);\n }\n });\n return cancelledRouteIds;\n }\n\n // Opt in to capturing and reporting scroll positions during navigations,\n // used by the component\n function enableScrollRestoration(\n positions: Record,\n getPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ) {\n savedScrollPositions = positions;\n getScrollPosition = getPosition;\n getScrollRestorationKey = getKey || null;\n\n // Perform initial hydration scroll restoration, since we miss the boat on\n // the initial updateState() because we've not yet rendered \n // and therefore have no savedScrollPositions available\n if (!initialScrollRestored && state.navigation === IDLE_NAVIGATION) {\n initialScrollRestored = true;\n let y = getSavedScrollPosition(state.location, state.matches);\n if (y != null) {\n updateState({ restoreScrollPosition: y });\n }\n }\n\n return () => {\n savedScrollPositions = null;\n getScrollPosition = null;\n getScrollRestorationKey = null;\n };\n }\n\n function getScrollKey(location: Location, matches: AgnosticDataRouteMatch[]) {\n if (getScrollRestorationKey) {\n let key = getScrollRestorationKey(\n location,\n matches.map((m) => convertRouteMatchToUiMatch(m, state.loaderData))\n );\n return key || location.key;\n }\n return location.key;\n }\n\n function saveScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): void {\n if (savedScrollPositions && getScrollPosition) {\n let key = getScrollKey(location, matches);\n savedScrollPositions[key] = getScrollPosition();\n }\n }\n\n function getSavedScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): number | null {\n if (savedScrollPositions) {\n let key = getScrollKey(location, matches);\n let y = savedScrollPositions[key];\n if (typeof y === \"number\") {\n return y;\n }\n }\n return null;\n }\n\n function _internalSetRoutes(newRoutes: AgnosticDataRouteObject[]) {\n manifest = {};\n inFlightDataRoutes = convertRoutesToDataRoutes(\n newRoutes,\n mapRouteProperties,\n undefined,\n manifest\n );\n }\n\n router = {\n get basename() {\n return basename;\n },\n get future() {\n return future;\n },\n get state() {\n return state;\n },\n get routes() {\n return dataRoutes;\n },\n get window() {\n return routerWindow;\n },\n initialize,\n subscribe,\n enableScrollRestoration,\n navigate,\n fetch,\n revalidate,\n // Passthrough to history-aware createHref used by useHref so we get proper\n // hash-aware URLs in DOM paths\n createHref: (to: To) => init.history.createHref(to),\n encodeLocation: (to: To) => init.history.encodeLocation(to),\n getFetcher,\n deleteFetcher: deleteFetcherAndUpdateState,\n dispose,\n getBlocker,\n deleteBlocker,\n _internalFetchControllers: fetchControllers,\n _internalActiveDeferreds: activeDeferreds,\n // TODO: Remove setRoutes, it's temporary to avoid dealing with\n // updating the tree while validating the update algorithm.\n _internalSetRoutes,\n };\n\n return router;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createStaticHandler\n////////////////////////////////////////////////////////////////////////////////\n\nexport const UNSAFE_DEFERRED_SYMBOL = Symbol(\"deferred\");\n\n/**\n * Future flags to toggle new feature behavior\n */\nexport interface StaticHandlerFutureConfig {\n v7_relativeSplatPath: boolean;\n v7_throwAbortReason: boolean;\n}\n\nexport interface CreateStaticHandlerOptions {\n basename?: string;\n /**\n * @deprecated Use `mapRouteProperties` instead\n */\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n mapRouteProperties?: MapRoutePropertiesFunction;\n future?: Partial;\n}\n\nexport function createStaticHandler(\n routes: AgnosticRouteObject[],\n opts?: CreateStaticHandlerOptions\n): StaticHandler {\n invariant(\n routes.length > 0,\n \"You must provide a non-empty routes array to createStaticHandler\"\n );\n\n let manifest: RouteManifest = {};\n let basename = (opts ? opts.basename : null) || \"/\";\n let mapRouteProperties: MapRoutePropertiesFunction;\n if (opts?.mapRouteProperties) {\n mapRouteProperties = opts.mapRouteProperties;\n } else if (opts?.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = opts.detectErrorBoundary;\n mapRouteProperties = (route) => ({\n hasErrorBoundary: detectErrorBoundary(route),\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n // Config driven behavior flags\n let future: StaticHandlerFutureConfig = {\n v7_relativeSplatPath: false,\n v7_throwAbortReason: false,\n ...(opts ? opts.future : null),\n };\n\n let dataRoutes = convertRoutesToDataRoutes(\n routes,\n mapRouteProperties,\n undefined,\n manifest\n );\n\n /**\n * The query() method is intended for document requests, in which we want to\n * call an optional action and potentially multiple loaders for all nested\n * routes. It returns a StaticHandlerContext object, which is very similar\n * to the router state (location, loaderData, actionData, errors, etc.) and\n * also adds SSR-specific information such as the statusCode and headers\n * from action/loaders Responses.\n *\n * It _should_ never throw and should report all errors through the\n * returned context.errors object, properly associating errors to their error\n * boundary. Additionally, it tracks _deepestRenderedBoundaryId which can be\n * used to emulate React error boundaries during SSr by performing a second\n * pass only down to the boundaryId.\n *\n * The one exception where we do not return a StaticHandlerContext is when a\n * redirect response is returned or thrown from any action/loader. We\n * propagate that out and return the raw Response so the HTTP server can\n * return it directly.\n */\n async function query(\n request: Request,\n { requestContext }: { requestContext?: unknown } = {}\n ): Promise {\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\") {\n let error = getInternalRouterError(405, { method });\n let { matches: methodNotAllowedMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: methodNotAllowedMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n } else if (!matches) {\n let error = getInternalRouterError(404, { pathname: location.pathname });\n let { matches: notFoundMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: notFoundMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let result = await queryImpl(request, location, matches, requestContext);\n if (isResponse(result)) {\n return result;\n }\n\n // When returning StaticHandlerContext, we patch back in the location here\n // since we need it for React Context. But this helps keep our submit and\n // loadRouteData operating on a Request instead of a Location\n return { location, basename, ...result };\n }\n\n /**\n * The queryRoute() method is intended for targeted route requests, either\n * for fetch ?_data requests or resource route requests. In this case, we\n * are only ever calling a single action or loader, and we are returning the\n * returned value directly. In most cases, this will be a Response returned\n * from the action/loader, but it may be a primitive or other value as well -\n * and in such cases the calling context should handle that accordingly.\n *\n * We do respect the throw/return differentiation, so if an action/loader\n * throws, then this method will throw the value. This is important so we\n * can do proper boundary identification in Remix where a thrown Response\n * must go to the Catch Boundary but a returned Response is happy-path.\n *\n * One thing to note is that any Router-initiated Errors that make sense\n * to associate with a status code will be thrown as an ErrorResponse\n * instance which include the raw Error, such that the calling context can\n * serialize the error as they see fit while including the proper response\n * code. Examples here are 404 and 405 errors that occur prior to reaching\n * any user-defined loaders.\n */\n async function queryRoute(\n request: Request,\n {\n routeId,\n requestContext,\n }: { requestContext?: unknown; routeId?: string } = {}\n ): Promise {\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\" && method !== \"OPTIONS\") {\n throw getInternalRouterError(405, { method });\n } else if (!matches) {\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let match = routeId\n ? matches.find((m) => m.route.id === routeId)\n : getTargetMatch(matches, location);\n\n if (routeId && !match) {\n throw getInternalRouterError(403, {\n pathname: location.pathname,\n routeId,\n });\n } else if (!match) {\n // This should never hit I don't think?\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let result = await queryImpl(\n request,\n location,\n matches,\n requestContext,\n match\n );\n if (isResponse(result)) {\n return result;\n }\n\n let error = result.errors ? Object.values(result.errors)[0] : undefined;\n if (error !== undefined) {\n // If we got back result.errors, that means the loader/action threw\n // _something_ that wasn't a Response, but it's not guaranteed/required\n // to be an `instanceof Error` either, so we have to use throw here to\n // preserve the \"error\" state outside of queryImpl.\n throw error;\n }\n\n // Pick off the right state value to return\n if (result.actionData) {\n return Object.values(result.actionData)[0];\n }\n\n if (result.loaderData) {\n let data = Object.values(result.loaderData)[0];\n if (result.activeDeferreds?.[match.route.id]) {\n data[UNSAFE_DEFERRED_SYMBOL] = result.activeDeferreds[match.route.id];\n }\n return data;\n }\n\n return undefined;\n }\n\n async function queryImpl(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n routeMatch?: AgnosticDataRouteMatch\n ): Promise | Response> {\n invariant(\n request.signal,\n \"query()/queryRoute() requests must contain an AbortController signal\"\n );\n\n try {\n if (isMutationMethod(request.method.toLowerCase())) {\n let result = await submit(\n request,\n matches,\n routeMatch || getTargetMatch(matches, location),\n requestContext,\n routeMatch != null\n );\n return result;\n }\n\n let result = await loadRouteData(\n request,\n matches,\n requestContext,\n routeMatch\n );\n return isResponse(result)\n ? result\n : {\n ...result,\n actionData: null,\n actionHeaders: {},\n };\n } catch (e) {\n // If the user threw/returned a Response in callLoaderOrAction, we throw\n // it to bail out and then return or throw here based on whether the user\n // returned or threw\n if (isQueryRouteResponse(e)) {\n if (e.type === ResultType.error) {\n throw e.response;\n }\n return e.response;\n }\n // Redirects are always returned since they don't propagate to catch\n // boundaries\n if (isRedirectResponse(e)) {\n return e;\n }\n throw e;\n }\n }\n\n async function submit(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n actionMatch: AgnosticDataRouteMatch,\n requestContext: unknown,\n isRouteRequest: boolean\n ): Promise | Response> {\n let result: DataResult;\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n let error = getInternalRouterError(405, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: actionMatch.route.id,\n });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n } else {\n result = await callLoaderOrAction(\n \"action\",\n request,\n actionMatch,\n matches,\n manifest,\n mapRouteProperties,\n basename,\n future.v7_relativeSplatPath,\n { isStaticRequest: true, isRouteRequest, requestContext }\n );\n\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest, future);\n }\n }\n\n if (isRedirectResult(result)) {\n // Uhhhh - this should never happen, we should always throw these from\n // callLoaderOrAction, but the type narrowing here keeps TS happy and we\n // can get back on the \"throw all redirect responses\" train here should\n // this ever happen :/\n throw new Response(null, {\n status: result.status,\n headers: {\n Location: result.location,\n },\n });\n }\n\n if (isDeferredResult(result)) {\n let error = getInternalRouterError(400, { type: \"defer-action\" });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n }\n\n if (isRouteRequest) {\n // Note: This should only be non-Response values if we get here, since\n // isRouteRequest should throw any Response received in callLoaderOrAction\n if (isErrorResult(result)) {\n throw result.error;\n }\n\n return {\n matches: [actionMatch],\n loaderData: {},\n actionData: { [actionMatch.route.id]: result.data },\n errors: null,\n // Note: statusCode + headers are unused here since queryRoute will\n // return the raw Response or value\n statusCode: 200,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n let context = await loadRouteData(\n request,\n matches,\n requestContext,\n undefined,\n {\n [boundaryMatch.route.id]: result.error,\n }\n );\n\n // action status codes take precedence over loader status codes\n return {\n ...context,\n statusCode: isRouteErrorResponse(result.error)\n ? result.error.status\n : 500,\n actionData: null,\n actionHeaders: {\n ...(result.headers ? { [actionMatch.route.id]: result.headers } : {}),\n },\n };\n }\n\n // Create a GET request for the loaders\n let loaderRequest = new Request(request.url, {\n headers: request.headers,\n redirect: request.redirect,\n signal: request.signal,\n });\n let context = await loadRouteData(loaderRequest, matches, requestContext);\n\n return {\n ...context,\n // action status codes take precedence over loader status codes\n ...(result.statusCode ? { statusCode: result.statusCode } : {}),\n actionData: {\n [actionMatch.route.id]: result.data,\n },\n actionHeaders: {\n ...(result.headers ? { [actionMatch.route.id]: result.headers } : {}),\n },\n };\n }\n\n async function loadRouteData(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n routeMatch?: AgnosticDataRouteMatch,\n pendingActionError?: RouteData\n ): Promise<\n | Omit<\n StaticHandlerContext,\n \"location\" | \"basename\" | \"actionData\" | \"actionHeaders\"\n >\n | Response\n > {\n let isRouteRequest = routeMatch != null;\n\n // Short circuit if we have no loaders to run (queryRoute())\n if (\n isRouteRequest &&\n !routeMatch?.route.loader &&\n !routeMatch?.route.lazy\n ) {\n throw getInternalRouterError(400, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: routeMatch?.route.id,\n });\n }\n\n let requestMatches = routeMatch\n ? [routeMatch]\n : getLoaderMatchesUntilBoundary(\n matches,\n Object.keys(pendingActionError || {})[0]\n );\n let matchesToLoad = requestMatches.filter(\n (m) => m.route.loader || m.route.lazy\n );\n\n // Short circuit if we have no loaders to run (query())\n if (matchesToLoad.length === 0) {\n return {\n matches,\n // Add a null for all matched routes for proper revalidation on the client\n loaderData: matches.reduce(\n (acc, m) => Object.assign(acc, { [m.route.id]: null }),\n {}\n ),\n errors: pendingActionError || null,\n statusCode: 200,\n loaderHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let results = await Promise.all([\n ...matchesToLoad.map((match) =>\n callLoaderOrAction(\n \"loader\",\n request,\n match,\n matches,\n manifest,\n mapRouteProperties,\n basename,\n future.v7_relativeSplatPath,\n { isStaticRequest: true, isRouteRequest, requestContext }\n )\n ),\n ]);\n\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest, future);\n }\n\n // Process and commit output from loaders\n let activeDeferreds = new Map();\n let context = processRouteLoaderData(\n matches,\n matchesToLoad,\n results,\n pendingActionError,\n activeDeferreds\n );\n\n // Add a null for any non-loader matches for proper revalidation on the client\n let executedLoaders = new Set(\n matchesToLoad.map((match) => match.route.id)\n );\n matches.forEach((match) => {\n if (!executedLoaders.has(match.route.id)) {\n context.loaderData[match.route.id] = null;\n }\n });\n\n return {\n ...context,\n matches,\n activeDeferreds:\n activeDeferreds.size > 0\n ? Object.fromEntries(activeDeferreds.entries())\n : null,\n };\n }\n\n return {\n dataRoutes,\n query,\n queryRoute,\n };\n}\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Helpers\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Given an existing StaticHandlerContext and an error thrown at render time,\n * provide an updated StaticHandlerContext suitable for a second SSR render\n */\nexport function getStaticContextFromError(\n routes: AgnosticDataRouteObject[],\n context: StaticHandlerContext,\n error: any\n) {\n let newContext: StaticHandlerContext = {\n ...context,\n statusCode: isRouteErrorResponse(error) ? error.status : 500,\n errors: {\n [context._deepestRenderedBoundaryId || routes[0].id]: error,\n },\n };\n return newContext;\n}\n\nfunction throwStaticHandlerAbortedError(\n request: Request,\n isRouteRequest: boolean,\n future: StaticHandlerFutureConfig\n) {\n if (future.v7_throwAbortReason && request.signal.reason !== undefined) {\n throw request.signal.reason;\n }\n\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(`${method}() call aborted: ${request.method} ${request.url}`);\n}\n\nfunction isSubmissionNavigation(\n opts: BaseNavigateOrFetchOptions\n): opts is SubmissionNavigateOptions {\n return (\n opts != null &&\n ((\"formData\" in opts && opts.formData != null) ||\n (\"body\" in opts && opts.body !== undefined))\n );\n}\n\nfunction normalizeTo(\n location: Path,\n matches: AgnosticDataRouteMatch[],\n basename: string,\n prependBasename: boolean,\n to: To | null,\n v7_relativeSplatPath: boolean,\n fromRouteId?: string,\n relative?: RelativeRoutingType\n) {\n let contextualMatches: AgnosticDataRouteMatch[];\n let activeRouteMatch: AgnosticDataRouteMatch | undefined;\n if (fromRouteId) {\n // Grab matches up to the calling route so our route-relative logic is\n // relative to the correct source route\n contextualMatches = [];\n for (let match of matches) {\n contextualMatches.push(match);\n if (match.route.id === fromRouteId) {\n activeRouteMatch = match;\n break;\n }\n }\n } else {\n contextualMatches = matches;\n activeRouteMatch = matches[matches.length - 1];\n }\n\n // Resolve the relative path\n let path = resolveTo(\n to ? to : \".\",\n getResolveToMatches(contextualMatches, v7_relativeSplatPath),\n stripBasename(location.pathname, basename) || location.pathname,\n relative === \"path\"\n );\n\n // When `to` is not specified we inherit search/hash from the current\n // location, unlike when to=\".\" and we just inherit the path.\n // See https://github.com/remix-run/remix/issues/927\n if (to == null) {\n path.search = location.search;\n path.hash = location.hash;\n }\n\n // Add an ?index param for matched index routes if we don't already have one\n if (\n (to == null || to === \"\" || to === \".\") &&\n activeRouteMatch &&\n activeRouteMatch.route.index &&\n !hasNakedIndexQuery(path.search)\n ) {\n path.search = path.search\n ? path.search.replace(/^\\?/, \"?index&\")\n : \"?index\";\n }\n\n // If we're operating within a basename, prepend it to the pathname. If\n // this is a root navigation, then just use the raw basename which allows\n // the basename to have full control over the presence of a trailing slash\n // on root actions\n if (prependBasename && basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\n }\n\n return createPath(path);\n}\n\n// Normalize navigation options by converting formMethod=GET formData objects to\n// URLSearchParams so they behave identically to links with query params\nfunction normalizeNavigateOptions(\n normalizeFormMethod: boolean,\n isFetcher: boolean,\n path: string,\n opts?: BaseNavigateOrFetchOptions\n): {\n path: string;\n submission?: Submission;\n error?: ErrorResponseImpl;\n} {\n // Return location verbatim on non-submission navigations\n if (!opts || !isSubmissionNavigation(opts)) {\n return { path };\n }\n\n if (opts.formMethod && !isValidMethod(opts.formMethod)) {\n return {\n path,\n error: getInternalRouterError(405, { method: opts.formMethod }),\n };\n }\n\n let getInvalidBodyError = () => ({\n path,\n error: getInternalRouterError(400, { type: \"invalid-body\" }),\n });\n\n // Create a Submission on non-GET navigations\n let rawFormMethod = opts.formMethod || \"get\";\n let formMethod = normalizeFormMethod\n ? (rawFormMethod.toUpperCase() as V7_FormMethod)\n : (rawFormMethod.toLowerCase() as FormMethod);\n let formAction = stripHashFromPath(path);\n\n if (opts.body !== undefined) {\n if (opts.formEncType === \"text/plain\") {\n // text only support POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n\n let text =\n typeof opts.body === \"string\"\n ? opts.body\n : opts.body instanceof FormData ||\n opts.body instanceof URLSearchParams\n ? // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#plain-text-form-data\n Array.from(opts.body.entries()).reduce(\n (acc, [name, value]) => `${acc}${name}=${value}\\n`,\n \"\"\n )\n : String(opts.body);\n\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json: undefined,\n text,\n },\n };\n } else if (opts.formEncType === \"application/json\") {\n // json only supports POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n\n try {\n let json =\n typeof opts.body === \"string\" ? JSON.parse(opts.body) : opts.body;\n\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json,\n text: undefined,\n },\n };\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n }\n\n invariant(\n typeof FormData === \"function\",\n \"FormData is not available in this environment\"\n );\n\n let searchParams: URLSearchParams;\n let formData: FormData;\n\n if (opts.formData) {\n searchParams = convertFormDataToSearchParams(opts.formData);\n formData = opts.formData;\n } else if (opts.body instanceof FormData) {\n searchParams = convertFormDataToSearchParams(opts.body);\n formData = opts.body;\n } else if (opts.body instanceof URLSearchParams) {\n searchParams = opts.body;\n formData = convertSearchParamsToFormData(searchParams);\n } else if (opts.body == null) {\n searchParams = new URLSearchParams();\n formData = new FormData();\n } else {\n try {\n searchParams = new URLSearchParams(opts.body);\n formData = convertSearchParamsToFormData(searchParams);\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n\n let submission: Submission = {\n formMethod,\n formAction,\n formEncType:\n (opts && opts.formEncType) || \"application/x-www-form-urlencoded\",\n formData,\n json: undefined,\n text: undefined,\n };\n\n if (isMutationMethod(submission.formMethod)) {\n return { path, submission };\n }\n\n // Flatten submission onto URLSearchParams for GET submissions\n let parsedPath = parsePath(path);\n // On GET navigation submissions we can drop the ?index param from the\n // resulting location since all loaders will run. But fetcher GET submissions\n // only run a single loader so we need to preserve any incoming ?index params\n if (isFetcher && parsedPath.search && hasNakedIndexQuery(parsedPath.search)) {\n searchParams.append(\"index\", \"\");\n }\n parsedPath.search = `?${searchParams}`;\n\n return { path: createPath(parsedPath), submission };\n}\n\n// Filter out all routes below any caught error as they aren't going to\n// render so we don't need to load them\nfunction getLoaderMatchesUntilBoundary(\n matches: AgnosticDataRouteMatch[],\n boundaryId?: string\n) {\n let boundaryMatches = matches;\n if (boundaryId) {\n let index = matches.findIndex((m) => m.route.id === boundaryId);\n if (index >= 0) {\n boundaryMatches = matches.slice(0, index);\n }\n }\n return boundaryMatches;\n}\n\nfunction getMatchesToLoad(\n history: History,\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n submission: Submission | undefined,\n location: Location,\n isInitialLoad: boolean,\n isRevalidationRequired: boolean,\n cancelledDeferredRoutes: string[],\n cancelledFetcherLoads: string[],\n deletedFetchers: Set,\n fetchLoadMatches: Map,\n fetchRedirectIds: Set,\n routesToUse: AgnosticDataRouteObject[],\n basename: string | undefined,\n pendingActionData?: RouteData,\n pendingError?: RouteData\n): [AgnosticDataRouteMatch[], RevalidatingFetcher[]] {\n let actionResult = pendingError\n ? Object.values(pendingError)[0]\n : pendingActionData\n ? Object.values(pendingActionData)[0]\n : undefined;\n\n let currentUrl = history.createURL(state.location);\n let nextUrl = history.createURL(location);\n\n // Pick navigation matches that are net-new or qualify for revalidation\n let boundaryId = pendingError ? Object.keys(pendingError)[0] : undefined;\n let boundaryMatches = getLoaderMatchesUntilBoundary(matches, boundaryId);\n\n let navigationMatches = boundaryMatches.filter((match, index) => {\n let { route } = match;\n if (route.lazy) {\n // We haven't loaded this route yet so we don't know if it's got a loader!\n return true;\n }\n\n if (route.loader == null) {\n return false;\n }\n\n if (isInitialLoad) {\n if (route.loader.hydrate) {\n return true;\n }\n return (\n state.loaderData[route.id] === undefined &&\n // Don't re-run if the loader ran and threw an error\n (!state.errors || state.errors[route.id] === undefined)\n );\n }\n\n // Always call the loader on new route instances and pending defer cancellations\n if (\n isNewLoader(state.loaderData, state.matches[index], match) ||\n cancelledDeferredRoutes.some((id) => id === match.route.id)\n ) {\n return true;\n }\n\n // This is the default implementation for when we revalidate. If the route\n // provides it's own implementation, then we give them full control but\n // provide this value so they can leverage it if needed after they check\n // their own specific use cases\n let currentRouteMatch = state.matches[index];\n let nextRouteMatch = match;\n\n return shouldRevalidateLoader(match, {\n currentUrl,\n currentParams: currentRouteMatch.params,\n nextUrl,\n nextParams: nextRouteMatch.params,\n ...submission,\n actionResult,\n defaultShouldRevalidate:\n // Forced revalidation due to submission, useRevalidator, or X-Remix-Revalidate\n isRevalidationRequired ||\n // Clicked the same link, resubmitted a GET form\n currentUrl.pathname + currentUrl.search ===\n nextUrl.pathname + nextUrl.search ||\n // Search params affect all loaders\n currentUrl.search !== nextUrl.search ||\n isNewRouteInstance(currentRouteMatch, nextRouteMatch),\n });\n });\n\n // Pick fetcher.loads that need to be revalidated\n let revalidatingFetchers: RevalidatingFetcher[] = [];\n fetchLoadMatches.forEach((f, key) => {\n // Don't revalidate:\n // - on initial load (shouldn't be any fetchers then anyway)\n // - if fetcher won't be present in the subsequent render\n // - no longer matches the URL (v7_fetcherPersist=false)\n // - was unmounted but persisted due to v7_fetcherPersist=true\n if (\n isInitialLoad ||\n !matches.some((m) => m.route.id === f.routeId) ||\n deletedFetchers.has(key)\n ) {\n return;\n }\n\n let fetcherMatches = matchRoutes(routesToUse, f.path, basename);\n\n // If the fetcher path no longer matches, push it in with null matches so\n // we can trigger a 404 in callLoadersAndMaybeResolveData. Note this is\n // currently only a use-case for Remix HMR where the route tree can change\n // at runtime and remove a route previously loaded via a fetcher\n if (!fetcherMatches) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: null,\n match: null,\n controller: null,\n });\n return;\n }\n\n // Revalidating fetchers are decoupled from the route matches since they\n // load from a static href. They revalidate based on explicit revalidation\n // (submission, useRevalidator, or X-Remix-Revalidate)\n let fetcher = state.fetchers.get(key);\n let fetcherMatch = getTargetMatch(fetcherMatches, f.path);\n\n let shouldRevalidate = false;\n if (fetchRedirectIds.has(key)) {\n // Never trigger a revalidation of an actively redirecting fetcher\n shouldRevalidate = false;\n } else if (cancelledFetcherLoads.includes(key)) {\n // Always revalidate if the fetcher was cancelled\n shouldRevalidate = true;\n } else if (\n fetcher &&\n fetcher.state !== \"idle\" &&\n fetcher.data === undefined\n ) {\n // If the fetcher hasn't ever completed loading yet, then this isn't a\n // revalidation, it would just be a brand new load if an explicit\n // revalidation is required\n shouldRevalidate = isRevalidationRequired;\n } else {\n // Otherwise fall back on any user-defined shouldRevalidate, defaulting\n // to explicit revalidations only\n shouldRevalidate = shouldRevalidateLoader(fetcherMatch, {\n currentUrl,\n currentParams: state.matches[state.matches.length - 1].params,\n nextUrl,\n nextParams: matches[matches.length - 1].params,\n ...submission,\n actionResult,\n defaultShouldRevalidate: isRevalidationRequired,\n });\n }\n\n if (shouldRevalidate) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: fetcherMatches,\n match: fetcherMatch,\n controller: new AbortController(),\n });\n }\n });\n\n return [navigationMatches, revalidatingFetchers];\n}\n\nfunction isNewLoader(\n currentLoaderData: RouteData,\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let isNew =\n // [a] -> [a, b]\n !currentMatch ||\n // [a, b] -> [a, c]\n match.route.id !== currentMatch.route.id;\n\n // Handle the case that we don't have data for a re-used route, potentially\n // from a prior error or from a cancelled pending deferred\n let isMissingData = currentLoaderData[match.route.id] === undefined;\n\n // Always load if this is a net-new route or we don't yet have data\n return isNew || isMissingData;\n}\n\nfunction isNewRouteInstance(\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let currentPath = currentMatch.route.path;\n return (\n // param change for this match, /users/123 -> /users/456\n currentMatch.pathname !== match.pathname ||\n // splat param changed, which is not present in match.path\n // e.g. /files/images/avatar.jpg -> files/finances.xls\n (currentPath != null &&\n currentPath.endsWith(\"*\") &&\n currentMatch.params[\"*\"] !== match.params[\"*\"])\n );\n}\n\nfunction shouldRevalidateLoader(\n loaderMatch: AgnosticDataRouteMatch,\n arg: ShouldRevalidateFunctionArgs\n) {\n if (loaderMatch.route.shouldRevalidate) {\n let routeChoice = loaderMatch.route.shouldRevalidate(arg);\n if (typeof routeChoice === \"boolean\") {\n return routeChoice;\n }\n }\n\n return arg.defaultShouldRevalidate;\n}\n\n/**\n * Execute route.lazy() methods to lazily load route modules (loader, action,\n * shouldRevalidate) and update the routeManifest in place which shares objects\n * with dataRoutes so those get updated as well.\n */\nasync function loadLazyRouteModule(\n route: AgnosticDataRouteObject,\n mapRouteProperties: MapRoutePropertiesFunction,\n manifest: RouteManifest\n) {\n if (!route.lazy) {\n return;\n }\n\n let lazyRoute = await route.lazy();\n\n // If the lazy route function was executed and removed by another parallel\n // call then we can return - first lazy() to finish wins because the return\n // value of lazy is expected to be static\n if (!route.lazy) {\n return;\n }\n\n let routeToUpdate = manifest[route.id];\n invariant(routeToUpdate, \"No route found in manifest\");\n\n // Update the route in place. This should be safe because there's no way\n // we could yet be sitting on this route as we can't get there without\n // resolving lazy() first.\n //\n // This is different than the HMR \"update\" use-case where we may actively be\n // on the route being updated. The main concern boils down to \"does this\n // mutation affect any ongoing navigations or any current state.matches\n // values?\". If not, it should be safe to update in place.\n let routeUpdates: Record = {};\n for (let lazyRouteProperty in lazyRoute) {\n let staticRouteValue =\n routeToUpdate[lazyRouteProperty as keyof typeof routeToUpdate];\n\n let isPropertyStaticallyDefined =\n staticRouteValue !== undefined &&\n // This property isn't static since it should always be updated based\n // on the route updates\n lazyRouteProperty !== \"hasErrorBoundary\";\n\n warning(\n !isPropertyStaticallyDefined,\n `Route \"${routeToUpdate.id}\" has a static property \"${lazyRouteProperty}\" ` +\n `defined but its lazy function is also returning a value for this property. ` +\n `The lazy route property \"${lazyRouteProperty}\" will be ignored.`\n );\n\n if (\n !isPropertyStaticallyDefined &&\n !immutableRouteKeys.has(lazyRouteProperty as ImmutableRouteKey)\n ) {\n routeUpdates[lazyRouteProperty] =\n lazyRoute[lazyRouteProperty as keyof typeof lazyRoute];\n }\n }\n\n // Mutate the route with the provided updates. Do this first so we pass\n // the updated version to mapRouteProperties\n Object.assign(routeToUpdate, routeUpdates);\n\n // Mutate the `hasErrorBoundary` property on the route based on the route\n // updates and remove the `lazy` function so we don't resolve the lazy\n // route again.\n Object.assign(routeToUpdate, {\n // To keep things framework agnostic, we use the provided\n // `mapRouteProperties` (or wrapped `detectErrorBoundary`) function to\n // set the framework-aware properties (`element`/`hasErrorBoundary`) since\n // the logic will differ between frameworks.\n ...mapRouteProperties(routeToUpdate),\n lazy: undefined,\n });\n}\n\nasync function callLoaderOrAction(\n type: \"loader\" | \"action\",\n request: Request,\n match: AgnosticDataRouteMatch,\n matches: AgnosticDataRouteMatch[],\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction,\n basename: string,\n v7_relativeSplatPath: boolean,\n opts: {\n isStaticRequest?: boolean;\n isRouteRequest?: boolean;\n requestContext?: unknown;\n } = {}\n): Promise {\n let resultType;\n let result;\n let onReject: (() => void) | undefined;\n\n let runHandler = (handler: ActionFunction | LoaderFunction) => {\n // Setup a promise we can race against so that abort signals short circuit\n let reject: () => void;\n let abortPromise = new Promise((_, r) => (reject = r));\n onReject = () => reject();\n request.signal.addEventListener(\"abort\", onReject);\n return Promise.race([\n handler({\n request,\n params: match.params,\n context: opts.requestContext,\n }),\n abortPromise,\n ]);\n };\n\n try {\n let handler = match.route[type];\n\n if (match.route.lazy) {\n if (handler) {\n // Run statically defined handler in parallel with lazy()\n let handlerError;\n let values = await Promise.all([\n // If the handler throws, don't let it immediately bubble out,\n // since we need to let the lazy() execution finish so we know if this\n // route has a boundary that can handle the error\n runHandler(handler).catch((e) => {\n handlerError = e;\n }),\n loadLazyRouteModule(match.route, mapRouteProperties, manifest),\n ]);\n if (handlerError) {\n throw handlerError;\n }\n result = values[0];\n } else {\n // Load lazy route module, then run any returned handler\n await loadLazyRouteModule(match.route, mapRouteProperties, manifest);\n\n handler = match.route[type];\n if (handler) {\n // Handler still run even if we got interrupted to maintain consistency\n // with un-abortable behavior of handler execution on non-lazy or\n // previously-lazy-loaded routes\n result = await runHandler(handler);\n } else if (type === \"action\") {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(405, {\n method: request.method,\n pathname,\n routeId: match.route.id,\n });\n } else {\n // lazy() route has no loader to run. Short circuit here so we don't\n // hit the invariant below that errors on returning undefined.\n return { type: ResultType.data, data: undefined };\n }\n }\n } else if (!handler) {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(404, {\n pathname,\n });\n } else {\n result = await runHandler(handler);\n }\n\n invariant(\n result !== undefined,\n `You defined ${type === \"action\" ? \"an action\" : \"a loader\"} for route ` +\n `\"${match.route.id}\" but didn't return anything from your \\`${type}\\` ` +\n `function. Please return a value or \\`null\\`.`\n );\n } catch (e) {\n resultType = ResultType.error;\n result = e;\n } finally {\n if (onReject) {\n request.signal.removeEventListener(\"abort\", onReject);\n }\n }\n\n if (isResponse(result)) {\n let status = result.status;\n\n // Process redirects\n if (redirectStatusCodes.has(status)) {\n let location = result.headers.get(\"Location\");\n invariant(\n location,\n \"Redirects returned/thrown from loaders/actions must have a Location header\"\n );\n\n // Support relative routing in internal redirects\n if (!ABSOLUTE_URL_REGEX.test(location)) {\n location = normalizeTo(\n new URL(request.url),\n matches.slice(0, matches.indexOf(match) + 1),\n basename,\n true,\n location,\n v7_relativeSplatPath\n );\n } else if (!opts.isStaticRequest) {\n // Strip off the protocol+origin for same-origin + same-basename absolute\n // redirects. If this is a static request, we can let it go back to the\n // browser as-is\n let currentUrl = new URL(request.url);\n let url = location.startsWith(\"//\")\n ? new URL(currentUrl.protocol + location)\n : new URL(location);\n let isSameBasename = stripBasename(url.pathname, basename) != null;\n if (url.origin === currentUrl.origin && isSameBasename) {\n location = url.pathname + url.search + url.hash;\n }\n }\n\n // Don't process redirects in the router during static requests requests.\n // Instead, throw the Response and let the server handle it with an HTTP\n // redirect. We also update the Location header in place in this flow so\n // basename and relative routing is taken into account\n if (opts.isStaticRequest) {\n result.headers.set(\"Location\", location);\n throw result;\n }\n\n return {\n type: ResultType.redirect,\n status,\n location,\n revalidate: result.headers.get(\"X-Remix-Revalidate\") !== null,\n reloadDocument: result.headers.get(\"X-Remix-Reload-Document\") !== null,\n };\n }\n\n // For SSR single-route requests, we want to hand Responses back directly\n // without unwrapping. We do this with the QueryRouteResponse wrapper\n // interface so we can know whether it was returned or thrown\n if (opts.isRouteRequest) {\n let queryRouteResponse: QueryRouteResponse = {\n type:\n resultType === ResultType.error ? ResultType.error : ResultType.data,\n response: result,\n };\n throw queryRouteResponse;\n }\n\n let data: any;\n\n try {\n let contentType = result.headers.get(\"Content-Type\");\n // Check between word boundaries instead of startsWith() due to the last\n // paragraph of https://httpwg.org/specs/rfc9110.html#field.content-type\n if (contentType && /\\bapplication\\/json\\b/.test(contentType)) {\n if (result.body == null) {\n data = null;\n } else {\n data = await result.json();\n }\n } else {\n data = await result.text();\n }\n } catch (e) {\n return { type: ResultType.error, error: e };\n }\n\n if (resultType === ResultType.error) {\n return {\n type: resultType,\n error: new ErrorResponseImpl(status, result.statusText, data),\n headers: result.headers,\n };\n }\n\n return {\n type: ResultType.data,\n data,\n statusCode: result.status,\n headers: result.headers,\n };\n }\n\n if (resultType === ResultType.error) {\n return { type: resultType, error: result };\n }\n\n if (isDeferredData(result)) {\n return {\n type: ResultType.deferred,\n deferredData: result,\n statusCode: result.init?.status,\n headers: result.init?.headers && new Headers(result.init.headers),\n };\n }\n\n return { type: ResultType.data, data: result };\n}\n\n// Utility method for creating the Request instances for loaders/actions during\n// client-side navigations and fetches. During SSR we will always have a\n// Request instance from the static handler (query/queryRoute)\nfunction createClientSideRequest(\n history: History,\n location: string | Location,\n signal: AbortSignal,\n submission?: Submission\n): Request {\n let url = history.createURL(stripHashFromPath(location)).toString();\n let init: RequestInit = { signal };\n\n if (submission && isMutationMethod(submission.formMethod)) {\n let { formMethod, formEncType } = submission;\n // Didn't think we needed this but it turns out unlike other methods, patch\n // won't be properly normalized to uppercase and results in a 405 error.\n // See: https://fetch.spec.whatwg.org/#concept-method\n init.method = formMethod.toUpperCase();\n\n if (formEncType === \"application/json\") {\n init.headers = new Headers({ \"Content-Type\": formEncType });\n init.body = JSON.stringify(submission.json);\n } else if (formEncType === \"text/plain\") {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.text;\n } else if (\n formEncType === \"application/x-www-form-urlencoded\" &&\n submission.formData\n ) {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = convertFormDataToSearchParams(submission.formData);\n } else {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.formData;\n }\n }\n\n return new Request(url, init);\n}\n\nfunction convertFormDataToSearchParams(formData: FormData): URLSearchParams {\n let searchParams = new URLSearchParams();\n\n for (let [key, value] of formData.entries()) {\n // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#converting-an-entry-list-to-a-list-of-name-value-pairs\n searchParams.append(key, typeof value === \"string\" ? value : value.name);\n }\n\n return searchParams;\n}\n\nfunction convertSearchParamsToFormData(\n searchParams: URLSearchParams\n): FormData {\n let formData = new FormData();\n for (let [key, value] of searchParams.entries()) {\n formData.append(key, value);\n }\n return formData;\n}\n\nfunction processRouteLoaderData(\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n pendingError: RouteData | undefined,\n activeDeferreds: Map\n): {\n loaderData: RouterState[\"loaderData\"];\n errors: RouterState[\"errors\"] | null;\n statusCode: number;\n loaderHeaders: Record;\n} {\n // Fill in loaderData/errors from our loaders\n let loaderData: RouterState[\"loaderData\"] = {};\n let errors: RouterState[\"errors\"] | null = null;\n let statusCode: number | undefined;\n let foundError = false;\n let loaderHeaders: Record = {};\n\n // Process loader results into state.loaderData/state.errors\n results.forEach((result, index) => {\n let id = matchesToLoad[index].route.id;\n invariant(\n !isRedirectResult(result),\n \"Cannot handle redirect results in processLoaderData\"\n );\n if (isErrorResult(result)) {\n // Look upwards from the matched route for the closest ancestor\n // error boundary, defaulting to the root match\n let boundaryMatch = findNearestBoundary(matches, id);\n let error = result.error;\n // If we have a pending action error, we report it at the highest-route\n // that throws a loader error, and then clear it out to indicate that\n // it was consumed\n if (pendingError) {\n error = Object.values(pendingError)[0];\n pendingError = undefined;\n }\n\n errors = errors || {};\n\n // Prefer higher error values if lower errors bubble to the same boundary\n if (errors[boundaryMatch.route.id] == null) {\n errors[boundaryMatch.route.id] = error;\n }\n\n // Clear our any prior loaderData for the throwing route\n loaderData[id] = undefined;\n\n // Once we find our first (highest) error, we set the status code and\n // prevent deeper status codes from overriding\n if (!foundError) {\n foundError = true;\n statusCode = isRouteErrorResponse(result.error)\n ? result.error.status\n : 500;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n if (isDeferredResult(result)) {\n activeDeferreds.set(id, result.deferredData);\n loaderData[id] = result.deferredData.data;\n } else {\n loaderData[id] = result.data;\n }\n\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (\n result.statusCode != null &&\n result.statusCode !== 200 &&\n !foundError\n ) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n }\n });\n\n // If we didn't consume the pending action error (i.e., all loaders\n // resolved), then consume it here. Also clear out any loaderData for the\n // throwing route\n if (pendingError) {\n errors = pendingError;\n loaderData[Object.keys(pendingError)[0]] = undefined;\n }\n\n return {\n loaderData,\n errors,\n statusCode: statusCode || 200,\n loaderHeaders,\n };\n}\n\nfunction processLoaderData(\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n pendingError: RouteData | undefined,\n revalidatingFetchers: RevalidatingFetcher[],\n fetcherResults: DataResult[],\n activeDeferreds: Map\n): {\n loaderData: RouterState[\"loaderData\"];\n errors?: RouterState[\"errors\"];\n} {\n let { loaderData, errors } = processRouteLoaderData(\n matches,\n matchesToLoad,\n results,\n pendingError,\n activeDeferreds\n );\n\n // Process results from our revalidating fetchers\n for (let index = 0; index < revalidatingFetchers.length; index++) {\n let { key, match, controller } = revalidatingFetchers[index];\n invariant(\n fetcherResults !== undefined && fetcherResults[index] !== undefined,\n \"Did not find corresponding fetcher result\"\n );\n let result = fetcherResults[index];\n\n // Process fetcher non-redirect errors\n if (controller && controller.signal.aborted) {\n // Nothing to do for aborted fetchers\n continue;\n } else if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, match?.route.id);\n if (!(errors && errors[boundaryMatch.route.id])) {\n errors = {\n ...errors,\n [boundaryMatch.route.id]: result.error,\n };\n }\n state.fetchers.delete(key);\n } else if (isRedirectResult(result)) {\n // Should never get here, redirects should get processed above, but we\n // keep this to type narrow to a success result in the else\n invariant(false, \"Unhandled fetcher revalidation redirect\");\n } else if (isDeferredResult(result)) {\n // Should never get here, deferred data should be awaited for fetchers\n // in resolveDeferredResults\n invariant(false, \"Unhandled fetcher deferred data\");\n } else {\n let doneFetcher = getDoneFetcher(result.data);\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n return { loaderData, errors };\n}\n\nfunction mergeLoaderData(\n loaderData: RouteData,\n newLoaderData: RouteData,\n matches: AgnosticDataRouteMatch[],\n errors: RouteData | null | undefined\n): RouteData {\n let mergedLoaderData = { ...newLoaderData };\n for (let match of matches) {\n let id = match.route.id;\n if (newLoaderData.hasOwnProperty(id)) {\n if (newLoaderData[id] !== undefined) {\n mergedLoaderData[id] = newLoaderData[id];\n } else {\n // No-op - this is so we ignore existing data if we have a key in the\n // incoming object with an undefined value, which is how we unset a prior\n // loaderData if we encounter a loader error\n }\n } else if (loaderData[id] !== undefined && match.route.loader) {\n // Preserve existing keys not included in newLoaderData and where a loader\n // wasn't removed by HMR\n mergedLoaderData[id] = loaderData[id];\n }\n\n if (errors && errors.hasOwnProperty(id)) {\n // Don't keep any loader data below the boundary\n break;\n }\n }\n return mergedLoaderData;\n}\n\n// Find the nearest error boundary, looking upwards from the leaf route (or the\n// route specified by routeId) for the closest ancestor error boundary,\n// defaulting to the root match\nfunction findNearestBoundary(\n matches: AgnosticDataRouteMatch[],\n routeId?: string\n): AgnosticDataRouteMatch {\n let eligibleMatches = routeId\n ? matches.slice(0, matches.findIndex((m) => m.route.id === routeId) + 1)\n : [...matches];\n return (\n eligibleMatches.reverse().find((m) => m.route.hasErrorBoundary === true) ||\n matches[0]\n );\n}\n\nfunction getShortCircuitMatches(routes: AgnosticDataRouteObject[]): {\n matches: AgnosticDataRouteMatch[];\n route: AgnosticDataRouteObject;\n} {\n // Prefer a root layout route if present, otherwise shim in a route object\n let route =\n routes.length === 1\n ? routes[0]\n : routes.find((r) => r.index || !r.path || r.path === \"/\") || {\n id: `__shim-error-route__`,\n };\n\n return {\n matches: [\n {\n params: {},\n pathname: \"\",\n pathnameBase: \"\",\n route,\n },\n ],\n route,\n };\n}\n\nfunction getInternalRouterError(\n status: number,\n {\n pathname,\n routeId,\n method,\n type,\n }: {\n pathname?: string;\n routeId?: string;\n method?: string;\n type?: \"defer-action\" | \"invalid-body\";\n } = {}\n) {\n let statusText = \"Unknown Server Error\";\n let errorMessage = \"Unknown @remix-run/router error\";\n\n if (status === 400) {\n statusText = \"Bad Request\";\n if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method} request to \"${pathname}\" but ` +\n `did not provide a \\`loader\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (type === \"defer-action\") {\n errorMessage = \"defer() is not supported in actions\";\n } else if (type === \"invalid-body\") {\n errorMessage = \"Unable to encode submission body\";\n }\n } else if (status === 403) {\n statusText = \"Forbidden\";\n errorMessage = `Route \"${routeId}\" does not match URL \"${pathname}\"`;\n } else if (status === 404) {\n statusText = \"Not Found\";\n errorMessage = `No route matches URL \"${pathname}\"`;\n } else if (status === 405) {\n statusText = \"Method Not Allowed\";\n if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method.toUpperCase()} request to \"${pathname}\" but ` +\n `did not provide an \\`action\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (method) {\n errorMessage = `Invalid request method \"${method.toUpperCase()}\"`;\n }\n }\n\n return new ErrorResponseImpl(\n status || 500,\n statusText,\n new Error(errorMessage),\n true\n );\n}\n\n// Find any returned redirect errors, starting from the lowest match\nfunction findRedirect(\n results: DataResult[]\n): { result: RedirectResult; idx: number } | undefined {\n for (let i = results.length - 1; i >= 0; i--) {\n let result = results[i];\n if (isRedirectResult(result)) {\n return { result, idx: i };\n }\n }\n}\n\nfunction stripHashFromPath(path: To) {\n let parsedPath = typeof path === \"string\" ? parsePath(path) : path;\n return createPath({ ...parsedPath, hash: \"\" });\n}\n\nfunction isHashChangeOnly(a: Location, b: Location): boolean {\n if (a.pathname !== b.pathname || a.search !== b.search) {\n return false;\n }\n\n if (a.hash === \"\") {\n // /page -> /page#hash\n return b.hash !== \"\";\n } else if (a.hash === b.hash) {\n // /page#hash -> /page#hash\n return true;\n } else if (b.hash !== \"\") {\n // /page#hash -> /page#other\n return true;\n }\n\n // If the hash is removed the browser will re-perform a request to the server\n // /page#hash -> /page\n return false;\n}\n\nfunction isDeferredResult(result: DataResult): result is DeferredResult {\n return result.type === ResultType.deferred;\n}\n\nfunction isErrorResult(result: DataResult): result is ErrorResult {\n return result.type === ResultType.error;\n}\n\nfunction isRedirectResult(result?: DataResult): result is RedirectResult {\n return (result && result.type) === ResultType.redirect;\n}\n\nexport function isDeferredData(value: any): value is DeferredData {\n let deferred: DeferredData = value;\n return (\n deferred &&\n typeof deferred === \"object\" &&\n typeof deferred.data === \"object\" &&\n typeof deferred.subscribe === \"function\" &&\n typeof deferred.cancel === \"function\" &&\n typeof deferred.resolveData === \"function\"\n );\n}\n\nfunction isResponse(value: any): value is Response {\n return (\n value != null &&\n typeof value.status === \"number\" &&\n typeof value.statusText === \"string\" &&\n typeof value.headers === \"object\" &&\n typeof value.body !== \"undefined\"\n );\n}\n\nfunction isRedirectResponse(result: any): result is Response {\n if (!isResponse(result)) {\n return false;\n }\n\n let status = result.status;\n let location = result.headers.get(\"Location\");\n return status >= 300 && status <= 399 && location != null;\n}\n\nfunction isQueryRouteResponse(obj: any): obj is QueryRouteResponse {\n return (\n obj &&\n isResponse(obj.response) &&\n (obj.type === ResultType.data || obj.type === ResultType.error)\n );\n}\n\nfunction isValidMethod(method: string): method is FormMethod | V7_FormMethod {\n return validRequestMethods.has(method.toLowerCase() as FormMethod);\n}\n\nfunction isMutationMethod(\n method: string\n): method is MutationFormMethod | V7_MutationFormMethod {\n return validMutationMethods.has(method.toLowerCase() as MutationFormMethod);\n}\n\nasync function resolveDeferredResults(\n currentMatches: AgnosticDataRouteMatch[],\n matchesToLoad: (AgnosticDataRouteMatch | null)[],\n results: DataResult[],\n signals: (AbortSignal | null)[],\n isFetcher: boolean,\n currentLoaderData?: RouteData\n) {\n for (let index = 0; index < results.length; index++) {\n let result = results[index];\n let match = matchesToLoad[index];\n // If we don't have a match, then we can have a deferred result to do\n // anything with. This is for revalidating fetchers where the route was\n // removed during HMR\n if (!match) {\n continue;\n }\n\n let currentMatch = currentMatches.find(\n (m) => m.route.id === match!.route.id\n );\n let isRevalidatingLoader =\n currentMatch != null &&\n !isNewRouteInstance(currentMatch, match) &&\n (currentLoaderData && currentLoaderData[match.route.id]) !== undefined;\n\n if (isDeferredResult(result) && (isFetcher || isRevalidatingLoader)) {\n // Note: we do not have to touch activeDeferreds here since we race them\n // against the signal in resolveDeferredData and they'll get aborted\n // there if needed\n let signal = signals[index];\n invariant(\n signal,\n \"Expected an AbortSignal for revalidating fetcher deferred result\"\n );\n await resolveDeferredData(result, signal, isFetcher).then((result) => {\n if (result) {\n results[index] = result || results[index];\n }\n });\n }\n }\n}\n\nasync function resolveDeferredData(\n result: DeferredResult,\n signal: AbortSignal,\n unwrap = false\n): Promise {\n let aborted = await result.deferredData.resolveData(signal);\n if (aborted) {\n return;\n }\n\n if (unwrap) {\n try {\n return {\n type: ResultType.data,\n data: result.deferredData.unwrappedData,\n };\n } catch (e) {\n // Handle any TrackedPromise._error values encountered while unwrapping\n return {\n type: ResultType.error,\n error: e,\n };\n }\n }\n\n return {\n type: ResultType.data,\n data: result.deferredData.data,\n };\n}\n\nfunction hasNakedIndexQuery(search: string): boolean {\n return new URLSearchParams(search).getAll(\"index\").some((v) => v === \"\");\n}\n\nfunction getTargetMatch(\n matches: AgnosticDataRouteMatch[],\n location: Location | string\n) {\n let search =\n typeof location === \"string\" ? parsePath(location).search : location.search;\n if (\n matches[matches.length - 1].route.index &&\n hasNakedIndexQuery(search || \"\")\n ) {\n // Return the leaf index route when index is present\n return matches[matches.length - 1];\n }\n // Otherwise grab the deepest \"path contributing\" match (ignoring index and\n // pathless layout routes)\n let pathMatches = getPathContributingMatches(matches);\n return pathMatches[pathMatches.length - 1];\n}\n\nfunction getSubmissionFromNavigation(\n navigation: Navigation\n): Submission | undefined {\n let { formMethod, formAction, formEncType, text, formData, json } =\n navigation;\n if (!formMethod || !formAction || !formEncType) {\n return;\n }\n\n if (text != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json: undefined,\n text,\n };\n } else if (formData != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData,\n json: undefined,\n text: undefined,\n };\n } else if (json !== undefined) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json,\n text: undefined,\n };\n }\n}\n\nfunction getLoadingNavigation(\n location: Location,\n submission?: Submission\n): NavigationStates[\"Loading\"] {\n if (submission) {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n };\n return navigation;\n } else {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n };\n return navigation;\n }\n}\n\nfunction getSubmittingNavigation(\n location: Location,\n submission: Submission\n): NavigationStates[\"Submitting\"] {\n let navigation: NavigationStates[\"Submitting\"] = {\n state: \"submitting\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n };\n return navigation;\n}\n\nfunction getLoadingFetcher(\n submission?: Submission,\n data?: Fetcher[\"data\"]\n): FetcherStates[\"Loading\"] {\n if (submission) {\n let fetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data,\n };\n return fetcher;\n } else {\n let fetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data,\n };\n return fetcher;\n }\n}\n\nfunction getSubmittingFetcher(\n submission: Submission,\n existingFetcher?: Fetcher\n): FetcherStates[\"Submitting\"] {\n let fetcher: FetcherStates[\"Submitting\"] = {\n state: \"submitting\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data: existingFetcher ? existingFetcher.data : undefined,\n };\n return fetcher;\n}\n\nfunction getDoneFetcher(data: Fetcher[\"data\"]): FetcherStates[\"Idle\"] {\n let fetcher: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data,\n };\n return fetcher;\n}\n\nfunction restoreAppliedTransitions(\n _window: Window,\n transitions: Map>\n) {\n try {\n let sessionPositions = _window.sessionStorage.getItem(\n TRANSITIONS_STORAGE_KEY\n );\n if (sessionPositions) {\n let json = JSON.parse(sessionPositions);\n for (let [k, v] of Object.entries(json || {})) {\n if (v && Array.isArray(v)) {\n transitions.set(k, new Set(v || []));\n }\n }\n }\n } catch (e) {\n // no-op, use default empty object\n }\n}\n\nfunction persistAppliedTransitions(\n _window: Window,\n transitions: Map>\n) {\n if (transitions.size > 0) {\n let json: Record = {};\n for (let [k, v] of transitions) {\n json[k] = [...v];\n }\n try {\n _window.sessionStorage.setItem(\n TRANSITIONS_STORAGE_KEY,\n JSON.stringify(json)\n );\n } catch (error) {\n warning(\n false,\n `Failed to save applied view transitions in sessionStorage (${error}).`\n );\n }\n }\n}\n\n//#endregion\n","!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define([],t):\"object\"==typeof exports?exports.AOS=t():e.AOS=t()}(this,function(){return function(e){function t(o){if(n[o])return n[o].exports;var i=n[o]={exports:{},id:o,loaded:!1};return e[o].call(i.exports,i,i.exports,t),i.loaded=!0,i.exports}var n={};return t.m=e,t.c=n,t.p=\"dist/\",t(0)}([function(e,t,n){\"use strict\";function o(e){return e&&e.__esModule?e:{default:e}}var i=Object.assign||function(e){for(var t=1;t0&&void 0!==arguments[0]&&arguments[0];if(e&&(k=!0),k)return w=(0,y.default)(w,x),(0,b.default)(w,x.once),w},O=function(){w=(0,h.default)(),j()},M=function(){w.forEach(function(e,t){e.node.removeAttribute(\"data-aos\"),e.node.removeAttribute(\"data-aos-easing\"),e.node.removeAttribute(\"data-aos-duration\"),e.node.removeAttribute(\"data-aos-delay\")})},S=function(e){return e===!0||\"mobile\"===e&&p.default.mobile()||\"phone\"===e&&p.default.phone()||\"tablet\"===e&&p.default.tablet()||\"function\"==typeof e&&e()===!0},_=function(e){x=i(x,e),w=(0,h.default)();var t=document.all&&!window.atob;return S(x.disable)||t?M():(x.disableMutationObserver||d.default.isSupported()||(console.info('\\n aos: MutationObserver is not supported on this browser,\\n code mutations observing has been disabled.\\n You may have to call \"refreshHard()\" by yourself.\\n '),x.disableMutationObserver=!0),document.querySelector(\"body\").setAttribute(\"data-aos-easing\",x.easing),document.querySelector(\"body\").setAttribute(\"data-aos-duration\",x.duration),document.querySelector(\"body\").setAttribute(\"data-aos-delay\",x.delay),\"DOMContentLoaded\"===x.startEvent&&[\"complete\",\"interactive\"].indexOf(document.readyState)>-1?j(!0):\"load\"===x.startEvent?window.addEventListener(x.startEvent,function(){j(!0)}):document.addEventListener(x.startEvent,function(){j(!0)}),window.addEventListener(\"resize\",(0,s.default)(j,x.debounceDelay,!0)),window.addEventListener(\"orientationchange\",(0,s.default)(j,x.debounceDelay,!0)),window.addEventListener(\"scroll\",(0,u.default)(function(){(0,b.default)(w,x.once)},x.throttleDelay)),x.disableMutationObserver||d.default.ready(\"[data-aos]\",O),w)};e.exports={init:_,refresh:j,refreshHard:O}},function(e,t){},,,,,function(e,t){(function(t){\"use strict\";function n(e,t,n){function o(t){var n=b,o=v;return b=v=void 0,k=t,g=e.apply(o,n)}function r(e){return k=e,h=setTimeout(f,t),M?o(e):g}function a(e){var n=e-w,o=e-k,i=t-n;return S?j(i,y-o):i}function c(e){var n=e-w,o=e-k;return void 0===w||n>=t||n<0||S&&o>=y}function f(){var e=O();return c(e)?d(e):void(h=setTimeout(f,a(e)))}function d(e){return h=void 0,_&&b?o(e):(b=v=void 0,g)}function l(){void 0!==h&&clearTimeout(h),k=0,b=w=v=h=void 0}function p(){return void 0===h?g:d(O())}function m(){var e=O(),n=c(e);if(b=arguments,v=this,w=e,n){if(void 0===h)return r(w);if(S)return h=setTimeout(f,t),o(w)}return void 0===h&&(h=setTimeout(f,t)),g}var b,v,y,g,h,w,k=0,M=!1,S=!1,_=!0;if(\"function\"!=typeof e)throw new TypeError(s);return t=u(t)||0,i(n)&&(M=!!n.leading,S=\"maxWait\"in n,y=S?x(u(n.maxWait)||0,t):y,_=\"trailing\"in n?!!n.trailing:_),m.cancel=l,m.flush=p,m}function o(e,t,o){var r=!0,a=!0;if(\"function\"!=typeof e)throw new TypeError(s);return i(o)&&(r=\"leading\"in o?!!o.leading:r,a=\"trailing\"in o?!!o.trailing:a),n(e,t,{leading:r,maxWait:t,trailing:a})}function i(e){var t=\"undefined\"==typeof e?\"undefined\":c(e);return!!e&&(\"object\"==t||\"function\"==t)}function r(e){return!!e&&\"object\"==(\"undefined\"==typeof e?\"undefined\":c(e))}function a(e){return\"symbol\"==(\"undefined\"==typeof e?\"undefined\":c(e))||r(e)&&k.call(e)==d}function u(e){if(\"number\"==typeof e)return e;if(a(e))return f;if(i(e)){var t=\"function\"==typeof e.valueOf?e.valueOf():e;e=i(t)?t+\"\":t}if(\"string\"!=typeof e)return 0===e?e:+e;e=e.replace(l,\"\");var n=m.test(e);return n||b.test(e)?v(e.slice(2),n?2:8):p.test(e)?f:+e}var c=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},s=\"Expected a function\",f=NaN,d=\"[object Symbol]\",l=/^\\s+|\\s+$/g,p=/^[-+]0x[0-9a-f]+$/i,m=/^0b[01]+$/i,b=/^0o[0-7]+$/i,v=parseInt,y=\"object\"==(\"undefined\"==typeof t?\"undefined\":c(t))&&t&&t.Object===Object&&t,g=\"object\"==(\"undefined\"==typeof self?\"undefined\":c(self))&&self&&self.Object===Object&&self,h=y||g||Function(\"return this\")(),w=Object.prototype,k=w.toString,x=Math.max,j=Math.min,O=function(){return h.Date.now()};e.exports=o}).call(t,function(){return this}())},function(e,t){(function(t){\"use strict\";function n(e,t,n){function i(t){var n=b,o=v;return b=v=void 0,O=t,g=e.apply(o,n)}function r(e){return O=e,h=setTimeout(f,t),M?i(e):g}function u(e){var n=e-w,o=e-O,i=t-n;return S?x(i,y-o):i}function s(e){var n=e-w,o=e-O;return void 0===w||n>=t||n<0||S&&o>=y}function f(){var e=j();return s(e)?d(e):void(h=setTimeout(f,u(e)))}function d(e){return h=void 0,_&&b?i(e):(b=v=void 0,g)}function l(){void 0!==h&&clearTimeout(h),O=0,b=w=v=h=void 0}function p(){return void 0===h?g:d(j())}function m(){var e=j(),n=s(e);if(b=arguments,v=this,w=e,n){if(void 0===h)return r(w);if(S)return h=setTimeout(f,t),i(w)}return void 0===h&&(h=setTimeout(f,t)),g}var b,v,y,g,h,w,O=0,M=!1,S=!1,_=!0;if(\"function\"!=typeof e)throw new TypeError(c);return t=a(t)||0,o(n)&&(M=!!n.leading,S=\"maxWait\"in n,y=S?k(a(n.maxWait)||0,t):y,_=\"trailing\"in n?!!n.trailing:_),m.cancel=l,m.flush=p,m}function o(e){var t=\"undefined\"==typeof e?\"undefined\":u(e);return!!e&&(\"object\"==t||\"function\"==t)}function i(e){return!!e&&\"object\"==(\"undefined\"==typeof e?\"undefined\":u(e))}function r(e){return\"symbol\"==(\"undefined\"==typeof e?\"undefined\":u(e))||i(e)&&w.call(e)==f}function a(e){if(\"number\"==typeof e)return e;if(r(e))return s;if(o(e)){var t=\"function\"==typeof e.valueOf?e.valueOf():e;e=o(t)?t+\"\":t}if(\"string\"!=typeof e)return 0===e?e:+e;e=e.replace(d,\"\");var n=p.test(e);return n||m.test(e)?b(e.slice(2),n?2:8):l.test(e)?s:+e}var u=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},c=\"Expected a function\",s=NaN,f=\"[object Symbol]\",d=/^\\s+|\\s+$/g,l=/^[-+]0x[0-9a-f]+$/i,p=/^0b[01]+$/i,m=/^0o[0-7]+$/i,b=parseInt,v=\"object\"==(\"undefined\"==typeof t?\"undefined\":u(t))&&t&&t.Object===Object&&t,y=\"object\"==(\"undefined\"==typeof self?\"undefined\":u(self))&&self&&self.Object===Object&&self,g=v||y||Function(\"return this\")(),h=Object.prototype,w=h.toString,k=Math.max,x=Math.min,j=function(){return g.Date.now()};e.exports=n}).call(t,function(){return this}())},function(e,t){\"use strict\";function n(e){var t=void 0,o=void 0,i=void 0;for(t=0;te.position?e.node.classList.add(\"aos-animate\"):\"undefined\"!=typeof o&&(\"false\"===o||!n&&\"true\"!==o)&&e.node.classList.remove(\"aos-animate\")},o=function(e,t){var o=window.pageYOffset,i=window.innerHeight;e.forEach(function(e,r){n(e,i+o,t)})};t.default=o},function(e,t,n){\"use strict\";function o(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,\"__esModule\",{value:!0});var i=n(12),r=o(i),a=function(e,t){return e.forEach(function(e,n){e.node.classList.add(\"aos-init\"),e.position=(0,r.default)(e.node,t.offset)}),e};t.default=a},function(e,t,n){\"use strict\";function o(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,\"__esModule\",{value:!0});var i=n(13),r=o(i),a=function(e,t){var n=0,o=0,i=window.innerHeight,a={offset:e.getAttribute(\"data-aos-offset\"),anchor:e.getAttribute(\"data-aos-anchor\"),anchorPlacement:e.getAttribute(\"data-aos-anchor-placement\")};switch(a.offset&&!isNaN(a.offset)&&(o=parseInt(a.offset)),a.anchor&&document.querySelectorAll(a.anchor)&&(e=document.querySelectorAll(a.anchor)[0]),n=(0,r.default)(e).top,a.anchorPlacement){case\"top-bottom\":break;case\"center-bottom\":n+=e.offsetHeight/2;break;case\"bottom-bottom\":n+=e.offsetHeight;break;case\"top-center\":n+=i/2;break;case\"bottom-center\":n+=i/2+e.offsetHeight;break;case\"center-center\":n+=i/2+e.offsetHeight/2;break;case\"top-top\":n+=i;break;case\"bottom-top\":n+=e.offsetHeight+i;break;case\"center-top\":n+=e.offsetHeight/2+i}return a.anchorPlacement||a.offset||isNaN(t)||(o=t),n+o};t.default=a},function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(e){for(var t=0,n=0;e&&!isNaN(e.offsetLeft)&&!isNaN(e.offsetTop);)t+=e.offsetLeft-(\"BODY\"!=e.tagName?e.scrollLeft:0),n+=e.offsetTop-(\"BODY\"!=e.tagName?e.scrollTop:0),e=e.offsetParent;return{top:n,left:t}};t.default=n},function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(e){return e=e||document.querySelectorAll(\"[data-aos]\"),Array.prototype.map.call(e,function(e){return{node:e}})};t.default=n}])});","/*!\n Copyright (c) 2015 Jed Watson.\n Based on code that is Copyright 2013-2015, Facebook, Inc.\n All rights reserved.\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar canUseDOM = !!(\n\t\ttypeof window !== 'undefined' &&\n\t\twindow.document &&\n\t\twindow.document.createElement\n\t);\n\n\tvar ExecutionEnvironment = {\n\n\t\tcanUseDOM: canUseDOM,\n\n\t\tcanUseWorkers: typeof Worker !== 'undefined',\n\n\t\tcanUseEventListeners:\n\t\t\tcanUseDOM && !!(window.addEventListener || window.attachEvent),\n\n\t\tcanUseViewport: canUseDOM && !!window.screen\n\n\t};\n\n\tif (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\tdefine(function () {\n\t\t\treturn ExecutionEnvironment;\n\t\t});\n\t} else if (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = ExecutionEnvironment;\n\t} else {\n\t\twindow.ExecutionEnvironment = ExecutionEnvironment;\n\t}\n\n}());\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nmodule.exports = DataView;\n","var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nmodule.exports = Promise;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nmodule.exports = Set;\n","var MapCache = require('./_MapCache'),\n setCacheAdd = require('./_setCacheAdd'),\n setCacheHas = require('./_setCacheHas');\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nmodule.exports = SetCache;\n","var ListCache = require('./_ListCache'),\n stackClear = require('./_stackClear'),\n stackDelete = require('./_stackDelete'),\n stackGet = require('./_stackGet'),\n stackHas = require('./_stackHas'),\n stackSet = require('./_stackSet');\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nmodule.exports = Stack;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nmodule.exports = Uint8Array;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nmodule.exports = WeakMap;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nmodule.exports = arrayFilter;\n","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nmodule.exports = arrayPush;\n","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arraySome;\n","var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n","var arrayPush = require('./_arrayPush'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nmodule.exports = baseGetAllKeys;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n","var baseIsEqualDeep = require('./_baseIsEqualDeep'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nmodule.exports = baseIsEqual;\n","var Stack = require('./_Stack'),\n equalArrays = require('./_equalArrays'),\n equalByTag = require('./_equalByTag'),\n equalObjects = require('./_equalObjects'),\n getTag = require('./_getTag'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isTypedArray = require('./isTypedArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nmodule.exports = baseIsEqualDeep;\n","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n","var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n","var isPrototype = require('./_isPrototype'),\n nativeKeys = require('./_nativeKeys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeys;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nmodule.exports = baseTimes;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nmodule.exports = cacheHas;\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","var SetCache = require('./_SetCache'),\n arraySome = require('./_arraySome'),\n cacheHas = require('./_cacheHas');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalArrays;\n","var Symbol = require('./_Symbol'),\n Uint8Array = require('./_Uint8Array'),\n eq = require('./eq'),\n equalArrays = require('./_equalArrays'),\n mapToArray = require('./_mapToArray'),\n setToArray = require('./_setToArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nmodule.exports = equalByTag;\n","var getAllKeys = require('./_getAllKeys');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalObjects;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbols = require('./_getSymbols'),\n keys = require('./keys');\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nmodule.exports = getAllKeys;\n","var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","var arrayFilter = require('./_arrayFilter'),\n stubArray = require('./stubArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nmodule.exports = getSymbols;\n","var DataView = require('./_DataView'),\n Map = require('./_Map'),\n Promise = require('./_Promise'),\n Set = require('./_Set'),\n WeakMap = require('./_WeakMap'),\n baseGetTag = require('./_baseGetTag'),\n toSource = require('./_toSource');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nmodule.exports = getTag;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n","var nativeCreate = require('./_nativeCreate');\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nmodule.exports = hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = hashDelete;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nmodule.exports = isKeyable;\n","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nmodule.exports = listCacheSet;\n","var Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\n Map = require('./_Map');\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nmodule.exports = mapCacheClear;\n","var getMapData = require('./_getMapData');\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;\n","var getMapData = require('./_getMapData');\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n","var getMapData = require('./_getMapData');\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n","var getMapData = require('./_getMapData');\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;\n","/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nmodule.exports = mapToArray;\n","var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n","var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nmodule.exports = setCacheAdd;\n","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nmodule.exports = setCacheHas;\n","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nmodule.exports = setToArray;\n","var ListCache = require('./_ListCache');\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nmodule.exports = stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nmodule.exports = stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nmodule.exports = stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nmodule.exports = stackHas;\n","var ListCache = require('./_ListCache'),\n Map = require('./_Map'),\n MapCache = require('./_MapCache');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nmodule.exports = stackSet;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n","var root = require('./_root'),\n stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n","var baseIsEqual = require('./_baseIsEqual');\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\n\nmodule.exports = isEqual;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nmodule.exports = stubArray;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/*!\n * Quill Editor v1.3.7\n * https://quilljs.com/\n * Copyright (c) 2014, Jason Chen\n * Copyright (c) 2013, salesforce.com\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Quill\"] = factory();\n\telse\n\t\troot[\"Quill\"] = factory();\n})(typeof self !== 'undefined' ? self : this, function() {\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, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\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/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 109);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar container_1 = __webpack_require__(17);\nvar format_1 = __webpack_require__(18);\nvar leaf_1 = __webpack_require__(19);\nvar scroll_1 = __webpack_require__(45);\nvar inline_1 = __webpack_require__(46);\nvar block_1 = __webpack_require__(47);\nvar embed_1 = __webpack_require__(48);\nvar text_1 = __webpack_require__(49);\nvar attributor_1 = __webpack_require__(12);\nvar class_1 = __webpack_require__(32);\nvar style_1 = __webpack_require__(33);\nvar store_1 = __webpack_require__(31);\nvar Registry = __webpack_require__(1);\nvar Parchment = {\n Scope: Registry.Scope,\n create: Registry.create,\n find: Registry.find,\n query: Registry.query,\n register: Registry.register,\n Container: container_1.default,\n Format: format_1.default,\n Leaf: leaf_1.default,\n Embed: embed_1.default,\n Scroll: scroll_1.default,\n Block: block_1.default,\n Inline: inline_1.default,\n Text: text_1.default,\n Attributor: {\n Attribute: attributor_1.default,\n Class: class_1.default,\n Style: style_1.default,\n Store: store_1.default,\n },\n};\nexports.default = Parchment;\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar ParchmentError = /** @class */ (function (_super) {\n __extends(ParchmentError, _super);\n function ParchmentError(message) {\n var _this = this;\n message = '[Parchment] ' + message;\n _this = _super.call(this, message) || this;\n _this.message = message;\n _this.name = _this.constructor.name;\n return _this;\n }\n return ParchmentError;\n}(Error));\nexports.ParchmentError = ParchmentError;\nvar attributes = {};\nvar classes = {};\nvar tags = {};\nvar types = {};\nexports.DATA_KEY = '__blot';\nvar Scope;\n(function (Scope) {\n Scope[Scope[\"TYPE\"] = 3] = \"TYPE\";\n Scope[Scope[\"LEVEL\"] = 12] = \"LEVEL\";\n Scope[Scope[\"ATTRIBUTE\"] = 13] = \"ATTRIBUTE\";\n Scope[Scope[\"BLOT\"] = 14] = \"BLOT\";\n Scope[Scope[\"INLINE\"] = 7] = \"INLINE\";\n Scope[Scope[\"BLOCK\"] = 11] = \"BLOCK\";\n Scope[Scope[\"BLOCK_BLOT\"] = 10] = \"BLOCK_BLOT\";\n Scope[Scope[\"INLINE_BLOT\"] = 6] = \"INLINE_BLOT\";\n Scope[Scope[\"BLOCK_ATTRIBUTE\"] = 9] = \"BLOCK_ATTRIBUTE\";\n Scope[Scope[\"INLINE_ATTRIBUTE\"] = 5] = \"INLINE_ATTRIBUTE\";\n Scope[Scope[\"ANY\"] = 15] = \"ANY\";\n})(Scope = exports.Scope || (exports.Scope = {}));\nfunction create(input, value) {\n var match = query(input);\n if (match == null) {\n throw new ParchmentError(\"Unable to create \" + input + \" blot\");\n }\n var BlotClass = match;\n var node = \n // @ts-ignore\n input instanceof Node || input['nodeType'] === Node.TEXT_NODE ? input : BlotClass.create(value);\n return new BlotClass(node, value);\n}\nexports.create = create;\nfunction find(node, bubble) {\n if (bubble === void 0) { bubble = false; }\n if (node == null)\n return null;\n // @ts-ignore\n if (node[exports.DATA_KEY] != null)\n return node[exports.DATA_KEY].blot;\n if (bubble)\n return find(node.parentNode, bubble);\n return null;\n}\nexports.find = find;\nfunction query(query, scope) {\n if (scope === void 0) { scope = Scope.ANY; }\n var match;\n if (typeof query === 'string') {\n match = types[query] || attributes[query];\n // @ts-ignore\n }\n else if (query instanceof Text || query['nodeType'] === Node.TEXT_NODE) {\n match = types['text'];\n }\n else if (typeof query === 'number') {\n if (query & Scope.LEVEL & Scope.BLOCK) {\n match = types['block'];\n }\n else if (query & Scope.LEVEL & Scope.INLINE) {\n match = types['inline'];\n }\n }\n else if (query instanceof HTMLElement) {\n var names = (query.getAttribute('class') || '').split(/\\s+/);\n for (var i in names) {\n match = classes[names[i]];\n if (match)\n break;\n }\n match = match || tags[query.tagName];\n }\n if (match == null)\n return null;\n // @ts-ignore\n if (scope & Scope.LEVEL & match.scope && scope & Scope.TYPE & match.scope)\n return match;\n return null;\n}\nexports.query = query;\nfunction register() {\n var Definitions = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n Definitions[_i] = arguments[_i];\n }\n if (Definitions.length > 1) {\n return Definitions.map(function (d) {\n return register(d);\n });\n }\n var Definition = Definitions[0];\n if (typeof Definition.blotName !== 'string' && typeof Definition.attrName !== 'string') {\n throw new ParchmentError('Invalid definition');\n }\n else if (Definition.blotName === 'abstract') {\n throw new ParchmentError('Cannot register abstract class');\n }\n types[Definition.blotName || Definition.attrName] = Definition;\n if (typeof Definition.keyName === 'string') {\n attributes[Definition.keyName] = Definition;\n }\n else {\n if (Definition.className != null) {\n classes[Definition.className] = Definition;\n }\n if (Definition.tagName != null) {\n if (Array.isArray(Definition.tagName)) {\n Definition.tagName = Definition.tagName.map(function (tagName) {\n return tagName.toUpperCase();\n });\n }\n else {\n Definition.tagName = Definition.tagName.toUpperCase();\n }\n var tagNames = Array.isArray(Definition.tagName) ? Definition.tagName : [Definition.tagName];\n tagNames.forEach(function (tag) {\n if (tags[tag] == null || Definition.className == null) {\n tags[tag] = Definition;\n }\n });\n }\n }\n return Definition;\n}\nexports.register = register;\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar diff = __webpack_require__(51);\nvar equal = __webpack_require__(11);\nvar extend = __webpack_require__(3);\nvar op = __webpack_require__(20);\n\n\nvar NULL_CHARACTER = String.fromCharCode(0); // Placeholder char for embed in diff()\n\n\nvar Delta = function (ops) {\n // Assume we are given a well formed ops\n if (Array.isArray(ops)) {\n this.ops = ops;\n } else if (ops != null && Array.isArray(ops.ops)) {\n this.ops = ops.ops;\n } else {\n this.ops = [];\n }\n};\n\n\nDelta.prototype.insert = function (text, attributes) {\n var newOp = {};\n if (text.length === 0) return this;\n newOp.insert = text;\n if (attributes != null && typeof attributes === 'object' && Object.keys(attributes).length > 0) {\n newOp.attributes = attributes;\n }\n return this.push(newOp);\n};\n\nDelta.prototype['delete'] = function (length) {\n if (length <= 0) return this;\n return this.push({ 'delete': length });\n};\n\nDelta.prototype.retain = function (length, attributes) {\n if (length <= 0) return this;\n var newOp = { retain: length };\n if (attributes != null && typeof attributes === 'object' && Object.keys(attributes).length > 0) {\n newOp.attributes = attributes;\n }\n return this.push(newOp);\n};\n\nDelta.prototype.push = function (newOp) {\n var index = this.ops.length;\n var lastOp = this.ops[index - 1];\n newOp = extend(true, {}, newOp);\n if (typeof lastOp === 'object') {\n if (typeof newOp['delete'] === 'number' && typeof lastOp['delete'] === 'number') {\n this.ops[index - 1] = { 'delete': lastOp['delete'] + newOp['delete'] };\n return this;\n }\n // Since it does not matter if we insert before or after deleting at the same index,\n // always prefer to insert first\n if (typeof lastOp['delete'] === 'number' && newOp.insert != null) {\n index -= 1;\n lastOp = this.ops[index - 1];\n if (typeof lastOp !== 'object') {\n this.ops.unshift(newOp);\n return this;\n }\n }\n if (equal(newOp.attributes, lastOp.attributes)) {\n if (typeof newOp.insert === 'string' && typeof lastOp.insert === 'string') {\n this.ops[index - 1] = { insert: lastOp.insert + newOp.insert };\n if (typeof newOp.attributes === 'object') this.ops[index - 1].attributes = newOp.attributes\n return this;\n } else if (typeof newOp.retain === 'number' && typeof lastOp.retain === 'number') {\n this.ops[index - 1] = { retain: lastOp.retain + newOp.retain };\n if (typeof newOp.attributes === 'object') this.ops[index - 1].attributes = newOp.attributes\n return this;\n }\n }\n }\n if (index === this.ops.length) {\n this.ops.push(newOp);\n } else {\n this.ops.splice(index, 0, newOp);\n }\n return this;\n};\n\nDelta.prototype.chop = function () {\n var lastOp = this.ops[this.ops.length - 1];\n if (lastOp && lastOp.retain && !lastOp.attributes) {\n this.ops.pop();\n }\n return this;\n};\n\nDelta.prototype.filter = function (predicate) {\n return this.ops.filter(predicate);\n};\n\nDelta.prototype.forEach = function (predicate) {\n this.ops.forEach(predicate);\n};\n\nDelta.prototype.map = function (predicate) {\n return this.ops.map(predicate);\n};\n\nDelta.prototype.partition = function (predicate) {\n var passed = [], failed = [];\n this.forEach(function(op) {\n var target = predicate(op) ? passed : failed;\n target.push(op);\n });\n return [passed, failed];\n};\n\nDelta.prototype.reduce = function (predicate, initial) {\n return this.ops.reduce(predicate, initial);\n};\n\nDelta.prototype.changeLength = function () {\n return this.reduce(function (length, elem) {\n if (elem.insert) {\n return length + op.length(elem);\n } else if (elem.delete) {\n return length - elem.delete;\n }\n return length;\n }, 0);\n};\n\nDelta.prototype.length = function () {\n return this.reduce(function (length, elem) {\n return length + op.length(elem);\n }, 0);\n};\n\nDelta.prototype.slice = function (start, end) {\n start = start || 0;\n if (typeof end !== 'number') end = Infinity;\n var ops = [];\n var iter = op.iterator(this.ops);\n var index = 0;\n while (index < end && iter.hasNext()) {\n var nextOp;\n if (index < start) {\n nextOp = iter.next(start - index);\n } else {\n nextOp = iter.next(end - index);\n ops.push(nextOp);\n }\n index += op.length(nextOp);\n }\n return new Delta(ops);\n};\n\n\nDelta.prototype.compose = function (other) {\n var thisIter = op.iterator(this.ops);\n var otherIter = op.iterator(other.ops);\n var ops = [];\n var firstOther = otherIter.peek();\n if (firstOther != null && typeof firstOther.retain === 'number' && firstOther.attributes == null) {\n var firstLeft = firstOther.retain;\n while (thisIter.peekType() === 'insert' && thisIter.peekLength() <= firstLeft) {\n firstLeft -= thisIter.peekLength();\n ops.push(thisIter.next());\n }\n if (firstOther.retain - firstLeft > 0) {\n otherIter.next(firstOther.retain - firstLeft);\n }\n }\n var delta = new Delta(ops);\n while (thisIter.hasNext() || otherIter.hasNext()) {\n if (otherIter.peekType() === 'insert') {\n delta.push(otherIter.next());\n } else if (thisIter.peekType() === 'delete') {\n delta.push(thisIter.next());\n } else {\n var length = Math.min(thisIter.peekLength(), otherIter.peekLength());\n var thisOp = thisIter.next(length);\n var otherOp = otherIter.next(length);\n if (typeof otherOp.retain === 'number') {\n var newOp = {};\n if (typeof thisOp.retain === 'number') {\n newOp.retain = length;\n } else {\n newOp.insert = thisOp.insert;\n }\n // Preserve null when composing with a retain, otherwise remove it for inserts\n var attributes = op.attributes.compose(thisOp.attributes, otherOp.attributes, typeof thisOp.retain === 'number');\n if (attributes) newOp.attributes = attributes;\n delta.push(newOp);\n\n // Optimization if rest of other is just retain\n if (!otherIter.hasNext() && equal(delta.ops[delta.ops.length - 1], newOp)) {\n var rest = new Delta(thisIter.rest());\n return delta.concat(rest).chop();\n }\n\n // Other op should be delete, we could be an insert or retain\n // Insert + delete cancels out\n } else if (typeof otherOp['delete'] === 'number' && typeof thisOp.retain === 'number') {\n delta.push(otherOp);\n }\n }\n }\n return delta.chop();\n};\n\nDelta.prototype.concat = function (other) {\n var delta = new Delta(this.ops.slice());\n if (other.ops.length > 0) {\n delta.push(other.ops[0]);\n delta.ops = delta.ops.concat(other.ops.slice(1));\n }\n return delta;\n};\n\nDelta.prototype.diff = function (other, index) {\n if (this.ops === other.ops) {\n return new Delta();\n }\n var strings = [this, other].map(function (delta) {\n return delta.map(function (op) {\n if (op.insert != null) {\n return typeof op.insert === 'string' ? op.insert : NULL_CHARACTER;\n }\n var prep = (delta === other) ? 'on' : 'with';\n throw new Error('diff() called ' + prep + ' non-document');\n }).join('');\n });\n var delta = new Delta();\n var diffResult = diff(strings[0], strings[1], index);\n var thisIter = op.iterator(this.ops);\n var otherIter = op.iterator(other.ops);\n diffResult.forEach(function (component) {\n var length = component[1].length;\n while (length > 0) {\n var opLength = 0;\n switch (component[0]) {\n case diff.INSERT:\n opLength = Math.min(otherIter.peekLength(), length);\n delta.push(otherIter.next(opLength));\n break;\n case diff.DELETE:\n opLength = Math.min(length, thisIter.peekLength());\n thisIter.next(opLength);\n delta['delete'](opLength);\n break;\n case diff.EQUAL:\n opLength = Math.min(thisIter.peekLength(), otherIter.peekLength(), length);\n var thisOp = thisIter.next(opLength);\n var otherOp = otherIter.next(opLength);\n if (equal(thisOp.insert, otherOp.insert)) {\n delta.retain(opLength, op.attributes.diff(thisOp.attributes, otherOp.attributes));\n } else {\n delta.push(otherOp)['delete'](opLength);\n }\n break;\n }\n length -= opLength;\n }\n });\n return delta.chop();\n};\n\nDelta.prototype.eachLine = function (predicate, newline) {\n newline = newline || '\\n';\n var iter = op.iterator(this.ops);\n var line = new Delta();\n var i = 0;\n while (iter.hasNext()) {\n if (iter.peekType() !== 'insert') return;\n var thisOp = iter.peek();\n var start = op.length(thisOp) - iter.peekLength();\n var index = typeof thisOp.insert === 'string' ?\n thisOp.insert.indexOf(newline, start) - start : -1;\n if (index < 0) {\n line.push(iter.next());\n } else if (index > 0) {\n line.push(iter.next(index));\n } else {\n if (predicate(line, iter.next(1).attributes || {}, i) === false) {\n return;\n }\n i += 1;\n line = new Delta();\n }\n }\n if (line.length() > 0) {\n predicate(line, {}, i);\n }\n};\n\nDelta.prototype.transform = function (other, priority) {\n priority = !!priority;\n if (typeof other === 'number') {\n return this.transformPosition(other, priority);\n }\n var thisIter = op.iterator(this.ops);\n var otherIter = op.iterator(other.ops);\n var delta = new Delta();\n while (thisIter.hasNext() || otherIter.hasNext()) {\n if (thisIter.peekType() === 'insert' && (priority || otherIter.peekType() !== 'insert')) {\n delta.retain(op.length(thisIter.next()));\n } else if (otherIter.peekType() === 'insert') {\n delta.push(otherIter.next());\n } else {\n var length = Math.min(thisIter.peekLength(), otherIter.peekLength());\n var thisOp = thisIter.next(length);\n var otherOp = otherIter.next(length);\n if (thisOp['delete']) {\n // Our delete either makes their delete redundant or removes their retain\n continue;\n } else if (otherOp['delete']) {\n delta.push(otherOp);\n } else {\n // We retain either their retain or insert\n delta.retain(length, op.attributes.transform(thisOp.attributes, otherOp.attributes, priority));\n }\n }\n }\n return delta.chop();\n};\n\nDelta.prototype.transformPosition = function (index, priority) {\n priority = !!priority;\n var thisIter = op.iterator(this.ops);\n var offset = 0;\n while (thisIter.hasNext() && offset <= index) {\n var length = thisIter.peekLength();\n var nextType = thisIter.peekType();\n thisIter.next();\n if (nextType === 'delete') {\n index -= Math.min(length, index - offset);\n continue;\n } else if (nextType === 'insert' && (offset < index || !priority)) {\n index += length;\n }\n offset += length;\n }\n return index;\n};\n\n\nmodule.exports = Delta;\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports) {\n\n'use strict';\n\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar toStr = Object.prototype.toString;\nvar defineProperty = Object.defineProperty;\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nvar isArray = function isArray(arr) {\n\tif (typeof Array.isArray === 'function') {\n\t\treturn Array.isArray(arr);\n\t}\n\n\treturn toStr.call(arr) === '[object Array]';\n};\n\nvar isPlainObject = function isPlainObject(obj) {\n\tif (!obj || toStr.call(obj) !== '[object Object]') {\n\t\treturn false;\n\t}\n\n\tvar hasOwnConstructor = hasOwn.call(obj, 'constructor');\n\tvar hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf');\n\t// Not own constructor property must be Object\n\tif (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) {\n\t\treturn false;\n\t}\n\n\t// Own properties are enumerated firstly, so to speed up,\n\t// if last one is own, then all properties are own.\n\tvar key;\n\tfor (key in obj) { /**/ }\n\n\treturn typeof key === 'undefined' || hasOwn.call(obj, key);\n};\n\n// If name is '__proto__', and Object.defineProperty is available, define __proto__ as an own property on target\nvar setProperty = function setProperty(target, options) {\n\tif (defineProperty && options.name === '__proto__') {\n\t\tdefineProperty(target, options.name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tvalue: options.newValue,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\ttarget[options.name] = options.newValue;\n\t}\n};\n\n// Return undefined instead of __proto__ if '__proto__' is not an own property\nvar getProperty = function getProperty(obj, name) {\n\tif (name === '__proto__') {\n\t\tif (!hasOwn.call(obj, name)) {\n\t\t\treturn void 0;\n\t\t} else if (gOPD) {\n\t\t\t// In early versions of node, obj['__proto__'] is buggy when obj has\n\t\t\t// __proto__ as an own property. Object.getOwnPropertyDescriptor() works.\n\t\t\treturn gOPD(obj, name).value;\n\t\t}\n\t}\n\n\treturn obj[name];\n};\n\nmodule.exports = function extend() {\n\tvar options, name, src, copy, copyIsArray, clone;\n\tvar target = arguments[0];\n\tvar i = 1;\n\tvar length = arguments.length;\n\tvar deep = false;\n\n\t// Handle a deep copy situation\n\tif (typeof target === 'boolean') {\n\t\tdeep = target;\n\t\ttarget = arguments[1] || {};\n\t\t// skip the boolean and the target\n\t\ti = 2;\n\t}\n\tif (target == null || (typeof target !== 'object' && typeof target !== 'function')) {\n\t\ttarget = {};\n\t}\n\n\tfor (; i < length; ++i) {\n\t\toptions = arguments[i];\n\t\t// Only deal with non-null/undefined values\n\t\tif (options != null) {\n\t\t\t// Extend the base object\n\t\t\tfor (name in options) {\n\t\t\t\tsrc = getProperty(target, name);\n\t\t\t\tcopy = getProperty(options, name);\n\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif (target !== copy) {\n\t\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\t\tif (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) {\n\t\t\t\t\t\tif (copyIsArray) {\n\t\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\t\tclone = src && isArray(src) ? src : [];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tclone = src && isPlainObject(src) ? src : {};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: extend(deep, clone, copy) });\n\n\t\t\t\t\t// Don't bring in undefined values\n\t\t\t\t\t} else if (typeof copy !== 'undefined') {\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: copy });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.BlockEmbed = exports.bubbleFormats = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _break = __webpack_require__(16);\n\nvar _break2 = _interopRequireDefault(_break);\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar NEWLINE_LENGTH = 1;\n\nvar BlockEmbed = function (_Parchment$Embed) {\n _inherits(BlockEmbed, _Parchment$Embed);\n\n function BlockEmbed() {\n _classCallCheck(this, BlockEmbed);\n\n return _possibleConstructorReturn(this, (BlockEmbed.__proto__ || Object.getPrototypeOf(BlockEmbed)).apply(this, arguments));\n }\n\n _createClass(BlockEmbed, [{\n key: 'attach',\n value: function attach() {\n _get(BlockEmbed.prototype.__proto__ || Object.getPrototypeOf(BlockEmbed.prototype), 'attach', this).call(this);\n this.attributes = new _parchment2.default.Attributor.Store(this.domNode);\n }\n }, {\n key: 'delta',\n value: function delta() {\n return new _quillDelta2.default().insert(this.value(), (0, _extend2.default)(this.formats(), this.attributes.values()));\n }\n }, {\n key: 'format',\n value: function format(name, value) {\n var attribute = _parchment2.default.query(name, _parchment2.default.Scope.BLOCK_ATTRIBUTE);\n if (attribute != null) {\n this.attributes.attribute(attribute, value);\n }\n }\n }, {\n key: 'formatAt',\n value: function formatAt(index, length, name, value) {\n this.format(name, value);\n }\n }, {\n key: 'insertAt',\n value: function insertAt(index, value, def) {\n if (typeof value === 'string' && value.endsWith('\\n')) {\n var block = _parchment2.default.create(Block.blotName);\n this.parent.insertBefore(block, index === 0 ? this : this.next);\n block.insertAt(0, value.slice(0, -1));\n } else {\n _get(BlockEmbed.prototype.__proto__ || Object.getPrototypeOf(BlockEmbed.prototype), 'insertAt', this).call(this, index, value, def);\n }\n }\n }]);\n\n return BlockEmbed;\n}(_parchment2.default.Embed);\n\nBlockEmbed.scope = _parchment2.default.Scope.BLOCK_BLOT;\n// It is important for cursor behavior BlockEmbeds use tags that are block level elements\n\n\nvar Block = function (_Parchment$Block) {\n _inherits(Block, _Parchment$Block);\n\n function Block(domNode) {\n _classCallCheck(this, Block);\n\n var _this2 = _possibleConstructorReturn(this, (Block.__proto__ || Object.getPrototypeOf(Block)).call(this, domNode));\n\n _this2.cache = {};\n return _this2;\n }\n\n _createClass(Block, [{\n key: 'delta',\n value: function delta() {\n if (this.cache.delta == null) {\n this.cache.delta = this.descendants(_parchment2.default.Leaf).reduce(function (delta, leaf) {\n if (leaf.length() === 0) {\n return delta;\n } else {\n return delta.insert(leaf.value(), bubbleFormats(leaf));\n }\n }, new _quillDelta2.default()).insert('\\n', bubbleFormats(this));\n }\n return this.cache.delta;\n }\n }, {\n key: 'deleteAt',\n value: function deleteAt(index, length) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'deleteAt', this).call(this, index, length);\n this.cache = {};\n }\n }, {\n key: 'formatAt',\n value: function formatAt(index, length, name, value) {\n if (length <= 0) return;\n if (_parchment2.default.query(name, _parchment2.default.Scope.BLOCK)) {\n if (index + length === this.length()) {\n this.format(name, value);\n }\n } else {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'formatAt', this).call(this, index, Math.min(length, this.length() - index - 1), name, value);\n }\n this.cache = {};\n }\n }, {\n key: 'insertAt',\n value: function insertAt(index, value, def) {\n if (def != null) return _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'insertAt', this).call(this, index, value, def);\n if (value.length === 0) return;\n var lines = value.split('\\n');\n var text = lines.shift();\n if (text.length > 0) {\n if (index < this.length() - 1 || this.children.tail == null) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'insertAt', this).call(this, Math.min(index, this.length() - 1), text);\n } else {\n this.children.tail.insertAt(this.children.tail.length(), text);\n }\n this.cache = {};\n }\n var block = this;\n lines.reduce(function (index, line) {\n block = block.split(index, true);\n block.insertAt(0, line);\n return line.length;\n }, index + text.length);\n }\n }, {\n key: 'insertBefore',\n value: function insertBefore(blot, ref) {\n var head = this.children.head;\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'insertBefore', this).call(this, blot, ref);\n if (head instanceof _break2.default) {\n head.remove();\n }\n this.cache = {};\n }\n }, {\n key: 'length',\n value: function length() {\n if (this.cache.length == null) {\n this.cache.length = _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'length', this).call(this) + NEWLINE_LENGTH;\n }\n return this.cache.length;\n }\n }, {\n key: 'moveChildren',\n value: function moveChildren(target, ref) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'moveChildren', this).call(this, target, ref);\n this.cache = {};\n }\n }, {\n key: 'optimize',\n value: function optimize(context) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'optimize', this).call(this, context);\n this.cache = {};\n }\n }, {\n key: 'path',\n value: function path(index) {\n return _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'path', this).call(this, index, true);\n }\n }, {\n key: 'removeChild',\n value: function removeChild(child) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'removeChild', this).call(this, child);\n this.cache = {};\n }\n }, {\n key: 'split',\n value: function split(index) {\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (force && (index === 0 || index >= this.length() - NEWLINE_LENGTH)) {\n var clone = this.clone();\n if (index === 0) {\n this.parent.insertBefore(clone, this);\n return this;\n } else {\n this.parent.insertBefore(clone, this.next);\n return clone;\n }\n } else {\n var next = _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'split', this).call(this, index, force);\n this.cache = {};\n return next;\n }\n }\n }]);\n\n return Block;\n}(_parchment2.default.Block);\n\nBlock.blotName = 'block';\nBlock.tagName = 'P';\nBlock.defaultChild = 'break';\nBlock.allowedChildren = [_inline2.default, _parchment2.default.Embed, _text2.default];\n\nfunction bubbleFormats(blot) {\n var formats = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (blot == null) return formats;\n if (typeof blot.formats === 'function') {\n formats = (0, _extend2.default)(formats, blot.formats());\n }\n if (blot.parent == null || blot.parent.blotName == 'scroll' || blot.parent.statics.scope !== blot.statics.scope) {\n return formats;\n }\n return bubbleFormats(blot.parent, formats);\n}\n\nexports.bubbleFormats = bubbleFormats;\nexports.BlockEmbed = BlockEmbed;\nexports.default = Block;\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.overload = exports.expandConfig = undefined;\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\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\n__webpack_require__(50);\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _editor = __webpack_require__(14);\n\nvar _editor2 = _interopRequireDefault(_editor);\n\nvar _emitter3 = __webpack_require__(8);\n\nvar _emitter4 = _interopRequireDefault(_emitter3);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _selection = __webpack_require__(15);\n\nvar _selection2 = _interopRequireDefault(_selection);\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _theme = __webpack_require__(34);\n\nvar _theme2 = _interopRequireDefault(_theme);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar debug = (0, _logger2.default)('quill');\n\nvar Quill = function () {\n _createClass(Quill, null, [{\n key: 'debug',\n value: function debug(limit) {\n if (limit === true) {\n limit = 'log';\n }\n _logger2.default.level(limit);\n }\n }, {\n key: 'find',\n value: function find(node) {\n return node.__quill || _parchment2.default.find(node);\n }\n }, {\n key: 'import',\n value: function _import(name) {\n if (this.imports[name] == null) {\n debug.error('Cannot import ' + name + '. Are you sure it was registered?');\n }\n return this.imports[name];\n }\n }, {\n key: 'register',\n value: function register(path, target) {\n var _this = this;\n\n var overwrite = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n if (typeof path !== 'string') {\n var name = path.attrName || path.blotName;\n if (typeof name === 'string') {\n // register(Blot | Attributor, overwrite)\n this.register('formats/' + name, path, target);\n } else {\n Object.keys(path).forEach(function (key) {\n _this.register(key, path[key], target);\n });\n }\n } else {\n if (this.imports[path] != null && !overwrite) {\n debug.warn('Overwriting ' + path + ' with', target);\n }\n this.imports[path] = target;\n if ((path.startsWith('blots/') || path.startsWith('formats/')) && target.blotName !== 'abstract') {\n _parchment2.default.register(target);\n } else if (path.startsWith('modules') && typeof target.register === 'function') {\n target.register();\n }\n }\n }\n }]);\n\n function Quill(container) {\n var _this2 = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Quill);\n\n this.options = expandConfig(container, options);\n this.container = this.options.container;\n if (this.container == null) {\n return debug.error('Invalid Quill container', container);\n }\n if (this.options.debug) {\n Quill.debug(this.options.debug);\n }\n var html = this.container.innerHTML.trim();\n this.container.classList.add('ql-container');\n this.container.innerHTML = '';\n this.container.__quill = this;\n this.root = this.addContainer('ql-editor');\n this.root.classList.add('ql-blank');\n this.root.setAttribute('data-gramm', false);\n this.scrollingContainer = this.options.scrollingContainer || this.root;\n this.emitter = new _emitter4.default();\n this.scroll = _parchment2.default.create(this.root, {\n emitter: this.emitter,\n whitelist: this.options.formats\n });\n this.editor = new _editor2.default(this.scroll);\n this.selection = new _selection2.default(this.scroll, this.emitter);\n this.theme = new this.options.theme(this, this.options);\n this.keyboard = this.theme.addModule('keyboard');\n this.clipboard = this.theme.addModule('clipboard');\n this.history = this.theme.addModule('history');\n this.theme.init();\n this.emitter.on(_emitter4.default.events.EDITOR_CHANGE, function (type) {\n if (type === _emitter4.default.events.TEXT_CHANGE) {\n _this2.root.classList.toggle('ql-blank', _this2.editor.isBlank());\n }\n });\n this.emitter.on(_emitter4.default.events.SCROLL_UPDATE, function (source, mutations) {\n var range = _this2.selection.lastRange;\n var index = range && range.length === 0 ? range.index : undefined;\n modify.call(_this2, function () {\n return _this2.editor.update(null, mutations, index);\n }, source);\n });\n var contents = this.clipboard.convert('
' + html + '


');\n this.setContents(contents);\n this.history.clear();\n if (this.options.placeholder) {\n this.root.setAttribute('data-placeholder', this.options.placeholder);\n }\n if (this.options.readOnly) {\n this.disable();\n }\n }\n\n _createClass(Quill, [{\n key: 'addContainer',\n value: function addContainer(container) {\n var refNode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n if (typeof container === 'string') {\n var className = container;\n container = document.createElement('div');\n container.classList.add(className);\n }\n this.container.insertBefore(container, refNode);\n return container;\n }\n }, {\n key: 'blur',\n value: function blur() {\n this.selection.setRange(null);\n }\n }, {\n key: 'deleteText',\n value: function deleteText(index, length, source) {\n var _this3 = this;\n\n var _overload = overload(index, length, source);\n\n var _overload2 = _slicedToArray(_overload, 4);\n\n index = _overload2[0];\n length = _overload2[1];\n source = _overload2[3];\n\n return modify.call(this, function () {\n return _this3.editor.deleteText(index, length);\n }, source, index, -1 * length);\n }\n }, {\n key: 'disable',\n value: function disable() {\n this.enable(false);\n }\n }, {\n key: 'enable',\n value: function enable() {\n var enabled = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n\n this.scroll.enable(enabled);\n this.container.classList.toggle('ql-disabled', !enabled);\n }\n }, {\n key: 'focus',\n value: function focus() {\n var scrollTop = this.scrollingContainer.scrollTop;\n this.selection.focus();\n this.scrollingContainer.scrollTop = scrollTop;\n this.scrollIntoView();\n }\n }, {\n key: 'format',\n value: function format(name, value) {\n var _this4 = this;\n\n var source = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _emitter4.default.sources.API;\n\n return modify.call(this, function () {\n var range = _this4.getSelection(true);\n var change = new _quillDelta2.default();\n if (range == null) {\n return change;\n } else if (_parchment2.default.query(name, _parchment2.default.Scope.BLOCK)) {\n change = _this4.editor.formatLine(range.index, range.length, _defineProperty({}, name, value));\n } else if (range.length === 0) {\n _this4.selection.format(name, value);\n return change;\n } else {\n change = _this4.editor.formatText(range.index, range.length, _defineProperty({}, name, value));\n }\n _this4.setSelection(range, _emitter4.default.sources.SILENT);\n return change;\n }, source);\n }\n }, {\n key: 'formatLine',\n value: function formatLine(index, length, name, value, source) {\n var _this5 = this;\n\n var formats = void 0;\n\n var _overload3 = overload(index, length, name, value, source);\n\n var _overload4 = _slicedToArray(_overload3, 4);\n\n index = _overload4[0];\n length = _overload4[1];\n formats = _overload4[2];\n source = _overload4[3];\n\n return modify.call(this, function () {\n return _this5.editor.formatLine(index, length, formats);\n }, source, index, 0);\n }\n }, {\n key: 'formatText',\n value: function formatText(index, length, name, value, source) {\n var _this6 = this;\n\n var formats = void 0;\n\n var _overload5 = overload(index, length, name, value, source);\n\n var _overload6 = _slicedToArray(_overload5, 4);\n\n index = _overload6[0];\n length = _overload6[1];\n formats = _overload6[2];\n source = _overload6[3];\n\n return modify.call(this, function () {\n return _this6.editor.formatText(index, length, formats);\n }, source, index, 0);\n }\n }, {\n key: 'getBounds',\n value: function getBounds(index) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n var bounds = void 0;\n if (typeof index === 'number') {\n bounds = this.selection.getBounds(index, length);\n } else {\n bounds = this.selection.getBounds(index.index, index.length);\n }\n var containerBounds = this.container.getBoundingClientRect();\n return {\n bottom: bounds.bottom - containerBounds.top,\n height: bounds.height,\n left: bounds.left - containerBounds.left,\n right: bounds.right - containerBounds.left,\n top: bounds.top - containerBounds.top,\n width: bounds.width\n };\n }\n }, {\n key: 'getContents',\n value: function getContents() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.getLength() - index;\n\n var _overload7 = overload(index, length);\n\n var _overload8 = _slicedToArray(_overload7, 2);\n\n index = _overload8[0];\n length = _overload8[1];\n\n return this.editor.getContents(index, length);\n }\n }, {\n key: 'getFormat',\n value: function getFormat() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.getSelection(true);\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n if (typeof index === 'number') {\n return this.editor.getFormat(index, length);\n } else {\n return this.editor.getFormat(index.index, index.length);\n }\n }\n }, {\n key: 'getIndex',\n value: function getIndex(blot) {\n return blot.offset(this.scroll);\n }\n }, {\n key: 'getLength',\n value: function getLength() {\n return this.scroll.length();\n }\n }, {\n key: 'getLeaf',\n value: function getLeaf(index) {\n return this.scroll.leaf(index);\n }\n }, {\n key: 'getLine',\n value: function getLine(index) {\n return this.scroll.line(index);\n }\n }, {\n key: 'getLines',\n value: function getLines() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Number.MAX_VALUE;\n\n if (typeof index !== 'number') {\n return this.scroll.lines(index.index, index.length);\n } else {\n return this.scroll.lines(index, length);\n }\n }\n }, {\n key: 'getModule',\n value: function getModule(name) {\n return this.theme.modules[name];\n }\n }, {\n key: 'getSelection',\n value: function getSelection() {\n var focus = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n if (focus) this.focus();\n this.update(); // Make sure we access getRange with editor in consistent state\n return this.selection.getRange()[0];\n }\n }, {\n key: 'getText',\n value: function getText() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.getLength() - index;\n\n var _overload9 = overload(index, length);\n\n var _overload10 = _slicedToArray(_overload9, 2);\n\n index = _overload10[0];\n length = _overload10[1];\n\n return this.editor.getText(index, length);\n }\n }, {\n key: 'hasFocus',\n value: function hasFocus() {\n return this.selection.hasFocus();\n }\n }, {\n key: 'insertEmbed',\n value: function insertEmbed(index, embed, value) {\n var _this7 = this;\n\n var source = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : Quill.sources.API;\n\n return modify.call(this, function () {\n return _this7.editor.insertEmbed(index, embed, value);\n }, source, index);\n }\n }, {\n key: 'insertText',\n value: function insertText(index, text, name, value, source) {\n var _this8 = this;\n\n var formats = void 0;\n\n var _overload11 = overload(index, 0, name, value, source);\n\n var _overload12 = _slicedToArray(_overload11, 4);\n\n index = _overload12[0];\n formats = _overload12[2];\n source = _overload12[3];\n\n return modify.call(this, function () {\n return _this8.editor.insertText(index, text, formats);\n }, source, index, text.length);\n }\n }, {\n key: 'isEnabled',\n value: function isEnabled() {\n return !this.container.classList.contains('ql-disabled');\n }\n }, {\n key: 'off',\n value: function off() {\n return this.emitter.off.apply(this.emitter, arguments);\n }\n }, {\n key: 'on',\n value: function on() {\n return this.emitter.on.apply(this.emitter, arguments);\n }\n }, {\n key: 'once',\n value: function once() {\n return this.emitter.once.apply(this.emitter, arguments);\n }\n }, {\n key: 'pasteHTML',\n value: function pasteHTML(index, html, source) {\n this.clipboard.dangerouslyPasteHTML(index, html, source);\n }\n }, {\n key: 'removeFormat',\n value: function removeFormat(index, length, source) {\n var _this9 = this;\n\n var _overload13 = overload(index, length, source);\n\n var _overload14 = _slicedToArray(_overload13, 4);\n\n index = _overload14[0];\n length = _overload14[1];\n source = _overload14[3];\n\n return modify.call(this, function () {\n return _this9.editor.removeFormat(index, length);\n }, source, index);\n }\n }, {\n key: 'scrollIntoView',\n value: function scrollIntoView() {\n this.selection.scrollIntoView(this.scrollingContainer);\n }\n }, {\n key: 'setContents',\n value: function setContents(delta) {\n var _this10 = this;\n\n var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _emitter4.default.sources.API;\n\n return modify.call(this, function () {\n delta = new _quillDelta2.default(delta);\n var length = _this10.getLength();\n var deleted = _this10.editor.deleteText(0, length);\n var applied = _this10.editor.applyDelta(delta);\n var lastOp = applied.ops[applied.ops.length - 1];\n if (lastOp != null && typeof lastOp.insert === 'string' && lastOp.insert[lastOp.insert.length - 1] === '\\n') {\n _this10.editor.deleteText(_this10.getLength() - 1, 1);\n applied.delete(1);\n }\n var ret = deleted.compose(applied);\n return ret;\n }, source);\n }\n }, {\n key: 'setSelection',\n value: function setSelection(index, length, source) {\n if (index == null) {\n this.selection.setRange(null, length || Quill.sources.API);\n } else {\n var _overload15 = overload(index, length, source);\n\n var _overload16 = _slicedToArray(_overload15, 4);\n\n index = _overload16[0];\n length = _overload16[1];\n source = _overload16[3];\n\n this.selection.setRange(new _selection.Range(index, length), source);\n if (source !== _emitter4.default.sources.SILENT) {\n this.selection.scrollIntoView(this.scrollingContainer);\n }\n }\n }\n }, {\n key: 'setText',\n value: function setText(text) {\n var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _emitter4.default.sources.API;\n\n var delta = new _quillDelta2.default().insert(text);\n return this.setContents(delta, source);\n }\n }, {\n key: 'update',\n value: function update() {\n var source = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _emitter4.default.sources.USER;\n\n var change = this.scroll.update(source); // Will update selection before selection.update() does if text changes\n this.selection.update(source);\n return change;\n }\n }, {\n key: 'updateContents',\n value: function updateContents(delta) {\n var _this11 = this;\n\n var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _emitter4.default.sources.API;\n\n return modify.call(this, function () {\n delta = new _quillDelta2.default(delta);\n return _this11.editor.applyDelta(delta, source);\n }, source, true);\n }\n }]);\n\n return Quill;\n}();\n\nQuill.DEFAULTS = {\n bounds: null,\n formats: null,\n modules: {},\n placeholder: '',\n readOnly: false,\n scrollingContainer: null,\n strict: true,\n theme: 'default'\n};\nQuill.events = _emitter4.default.events;\nQuill.sources = _emitter4.default.sources;\n// eslint-disable-next-line no-undef\nQuill.version = false ? 'dev' : \"1.3.7\";\n\nQuill.imports = {\n 'delta': _quillDelta2.default,\n 'parchment': _parchment2.default,\n 'core/module': _module2.default,\n 'core/theme': _theme2.default\n};\n\nfunction expandConfig(container, userConfig) {\n userConfig = (0, _extend2.default)(true, {\n container: container,\n modules: {\n clipboard: true,\n keyboard: true,\n history: true\n }\n }, userConfig);\n if (!userConfig.theme || userConfig.theme === Quill.DEFAULTS.theme) {\n userConfig.theme = _theme2.default;\n } else {\n userConfig.theme = Quill.import('themes/' + userConfig.theme);\n if (userConfig.theme == null) {\n throw new Error('Invalid theme ' + userConfig.theme + '. Did you register it?');\n }\n }\n var themeConfig = (0, _extend2.default)(true, {}, userConfig.theme.DEFAULTS);\n [themeConfig, userConfig].forEach(function (config) {\n config.modules = config.modules || {};\n Object.keys(config.modules).forEach(function (module) {\n if (config.modules[module] === true) {\n config.modules[module] = {};\n }\n });\n });\n var moduleNames = Object.keys(themeConfig.modules).concat(Object.keys(userConfig.modules));\n var moduleConfig = moduleNames.reduce(function (config, name) {\n var moduleClass = Quill.import('modules/' + name);\n if (moduleClass == null) {\n debug.error('Cannot load ' + name + ' module. Are you sure you registered it?');\n } else {\n config[name] = moduleClass.DEFAULTS || {};\n }\n return config;\n }, {});\n // Special case toolbar shorthand\n if (userConfig.modules != null && userConfig.modules.toolbar && userConfig.modules.toolbar.constructor !== Object) {\n userConfig.modules.toolbar = {\n container: userConfig.modules.toolbar\n };\n }\n userConfig = (0, _extend2.default)(true, {}, Quill.DEFAULTS, { modules: moduleConfig }, themeConfig, userConfig);\n ['bounds', 'container', 'scrollingContainer'].forEach(function (key) {\n if (typeof userConfig[key] === 'string') {\n userConfig[key] = document.querySelector(userConfig[key]);\n }\n });\n userConfig.modules = Object.keys(userConfig.modules).reduce(function (config, name) {\n if (userConfig.modules[name]) {\n config[name] = userConfig.modules[name];\n }\n return config;\n }, {});\n return userConfig;\n}\n\n// Handle selection preservation and TEXT_CHANGE emission\n// common to modification APIs\nfunction modify(modifier, source, index, shift) {\n if (this.options.strict && !this.isEnabled() && source === _emitter4.default.sources.USER) {\n return new _quillDelta2.default();\n }\n var range = index == null ? null : this.getSelection();\n var oldDelta = this.editor.delta;\n var change = modifier();\n if (range != null) {\n if (index === true) index = range.index;\n if (shift == null) {\n range = shiftRange(range, change, source);\n } else if (shift !== 0) {\n range = shiftRange(range, index, shift, source);\n }\n this.setSelection(range, _emitter4.default.sources.SILENT);\n }\n if (change.length() > 0) {\n var _emitter;\n\n var args = [_emitter4.default.events.TEXT_CHANGE, change, oldDelta, source];\n (_emitter = this.emitter).emit.apply(_emitter, [_emitter4.default.events.EDITOR_CHANGE].concat(args));\n if (source !== _emitter4.default.sources.SILENT) {\n var _emitter2;\n\n (_emitter2 = this.emitter).emit.apply(_emitter2, args);\n }\n }\n return change;\n}\n\nfunction overload(index, length, name, value, source) {\n var formats = {};\n if (typeof index.index === 'number' && typeof index.length === 'number') {\n // Allow for throwaway end (used by insertText/insertEmbed)\n if (typeof length !== 'number') {\n source = value, value = name, name = length, length = index.length, index = index.index;\n } else {\n length = index.length, index = index.index;\n }\n } else if (typeof length !== 'number') {\n source = value, value = name, name = length, length = 0;\n }\n // Handle format being object, two format name/value strings or excluded\n if ((typeof name === 'undefined' ? 'undefined' : _typeof(name)) === 'object') {\n formats = name;\n source = value;\n } else if (typeof name === 'string') {\n if (value != null) {\n formats[name] = value;\n } else {\n source = name;\n }\n }\n // Handle optional source\n source = source || _emitter4.default.sources.API;\n return [index, length, formats, source];\n}\n\nfunction shiftRange(range, index, length, source) {\n if (range == null) return null;\n var start = void 0,\n end = void 0;\n if (index instanceof _quillDelta2.default) {\n var _map = [range.index, range.index + range.length].map(function (pos) {\n return index.transformPosition(pos, source !== _emitter4.default.sources.USER);\n });\n\n var _map2 = _slicedToArray(_map, 2);\n\n start = _map2[0];\n end = _map2[1];\n } else {\n var _map3 = [range.index, range.index + range.length].map(function (pos) {\n if (pos < index || pos === index && source === _emitter4.default.sources.USER) return pos;\n if (length >= 0) {\n return pos + length;\n } else {\n return Math.max(index, pos + length);\n }\n });\n\n var _map4 = _slicedToArray(_map3, 2);\n\n start = _map4[0];\n end = _map4[1];\n }\n return new _selection.Range(start, end - start);\n}\n\nexports.expandConfig = expandConfig;\nexports.overload = overload;\nexports.default = Quill;\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Inline = function (_Parchment$Inline) {\n _inherits(Inline, _Parchment$Inline);\n\n function Inline() {\n _classCallCheck(this, Inline);\n\n return _possibleConstructorReturn(this, (Inline.__proto__ || Object.getPrototypeOf(Inline)).apply(this, arguments));\n }\n\n _createClass(Inline, [{\n key: 'formatAt',\n value: function formatAt(index, length, name, value) {\n if (Inline.compare(this.statics.blotName, name) < 0 && _parchment2.default.query(name, _parchment2.default.Scope.BLOT)) {\n var blot = this.isolate(index, length);\n if (value) {\n blot.wrap(name, value);\n }\n } else {\n _get(Inline.prototype.__proto__ || Object.getPrototypeOf(Inline.prototype), 'formatAt', this).call(this, index, length, name, value);\n }\n }\n }, {\n key: 'optimize',\n value: function optimize(context) {\n _get(Inline.prototype.__proto__ || Object.getPrototypeOf(Inline.prototype), 'optimize', this).call(this, context);\n if (this.parent instanceof Inline && Inline.compare(this.statics.blotName, this.parent.statics.blotName) > 0) {\n var parent = this.parent.isolate(this.offset(), this.length());\n this.moveChildren(parent);\n parent.wrap(this);\n }\n }\n }], [{\n key: 'compare',\n value: function compare(self, other) {\n var selfIndex = Inline.order.indexOf(self);\n var otherIndex = Inline.order.indexOf(other);\n if (selfIndex >= 0 || otherIndex >= 0) {\n return selfIndex - otherIndex;\n } else if (self === other) {\n return 0;\n } else if (self < other) {\n return -1;\n } else {\n return 1;\n }\n }\n }]);\n\n return Inline;\n}(_parchment2.default.Inline);\n\nInline.allowedChildren = [Inline, _parchment2.default.Embed, _text2.default];\n// Lower index means deeper in the DOM tree, since not found (-1) is for embeds\nInline.order = ['cursor', 'inline', // Must be lower\n'underline', 'strike', 'italic', 'bold', 'script', 'link', 'code' // Must be higher\n];\n\nexports.default = Inline;\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar TextBlot = function (_Parchment$Text) {\n _inherits(TextBlot, _Parchment$Text);\n\n function TextBlot() {\n _classCallCheck(this, TextBlot);\n\n return _possibleConstructorReturn(this, (TextBlot.__proto__ || Object.getPrototypeOf(TextBlot)).apply(this, arguments));\n }\n\n return TextBlot;\n}(_parchment2.default.Text);\n\nexports.default = TextBlot;\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _eventemitter = __webpack_require__(54);\n\nvar _eventemitter2 = _interopRequireDefault(_eventemitter);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar debug = (0, _logger2.default)('quill:events');\n\nvar EVENTS = ['selectionchange', 'mousedown', 'mouseup', 'click'];\n\nEVENTS.forEach(function (eventName) {\n document.addEventListener(eventName, function () {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n [].slice.call(document.querySelectorAll('.ql-container')).forEach(function (node) {\n // TODO use WeakMap\n if (node.__quill && node.__quill.emitter) {\n var _node$__quill$emitter;\n\n (_node$__quill$emitter = node.__quill.emitter).handleDOM.apply(_node$__quill$emitter, args);\n }\n });\n });\n});\n\nvar Emitter = function (_EventEmitter) {\n _inherits(Emitter, _EventEmitter);\n\n function Emitter() {\n _classCallCheck(this, Emitter);\n\n var _this = _possibleConstructorReturn(this, (Emitter.__proto__ || Object.getPrototypeOf(Emitter)).call(this));\n\n _this.listeners = {};\n _this.on('error', debug.error);\n return _this;\n }\n\n _createClass(Emitter, [{\n key: 'emit',\n value: function emit() {\n debug.log.apply(debug, arguments);\n _get(Emitter.prototype.__proto__ || Object.getPrototypeOf(Emitter.prototype), 'emit', this).apply(this, arguments);\n }\n }, {\n key: 'handleDOM',\n value: function handleDOM(event) {\n for (var _len2 = arguments.length, args = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n (this.listeners[event.type] || []).forEach(function (_ref) {\n var node = _ref.node,\n handler = _ref.handler;\n\n if (event.target === node || node.contains(event.target)) {\n handler.apply(undefined, [event].concat(args));\n }\n });\n }\n }, {\n key: 'listenDOM',\n value: function listenDOM(eventName, node, handler) {\n if (!this.listeners[eventName]) {\n this.listeners[eventName] = [];\n }\n this.listeners[eventName].push({ node: node, handler: handler });\n }\n }]);\n\n return Emitter;\n}(_eventemitter2.default);\n\nEmitter.events = {\n EDITOR_CHANGE: 'editor-change',\n SCROLL_BEFORE_UPDATE: 'scroll-before-update',\n SCROLL_OPTIMIZE: 'scroll-optimize',\n SCROLL_UPDATE: 'scroll-update',\n SELECTION_CHANGE: 'selection-change',\n TEXT_CHANGE: 'text-change'\n};\nEmitter.sources = {\n API: 'api',\n SILENT: 'silent',\n USER: 'user'\n};\n\nexports.default = Emitter;\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Module = function Module(quill) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Module);\n\n this.quill = quill;\n this.options = options;\n};\n\nModule.DEFAULTS = {};\n\nexports.default = Module;\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar levels = ['error', 'warn', 'log', 'info'];\nvar level = 'warn';\n\nfunction debug(method) {\n if (levels.indexOf(method) <= levels.indexOf(level)) {\n var _console;\n\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n (_console = console)[method].apply(_console, args); // eslint-disable-line no-console\n }\n}\n\nfunction namespace(ns) {\n return levels.reduce(function (logger, method) {\n logger[method] = debug.bind(console, method, ns);\n return logger;\n }, {});\n}\n\ndebug.level = namespace.level = function (newLevel) {\n level = newLevel;\n};\n\nexports.default = namespace;\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar pSlice = Array.prototype.slice;\nvar objectKeys = __webpack_require__(52);\nvar isArguments = __webpack_require__(53);\n\nvar deepEqual = module.exports = function (actual, expected, opts) {\n if (!opts) opts = {};\n // 7.1. All identical values are equivalent, as determined by ===.\n if (actual === expected) {\n return true;\n\n } else if (actual instanceof Date && expected instanceof Date) {\n return actual.getTime() === expected.getTime();\n\n // 7.3. Other pairs that do not both pass typeof value == 'object',\n // equivalence is determined by ==.\n } else if (!actual || !expected || typeof actual != 'object' && typeof expected != 'object') {\n return opts.strict ? actual === expected : actual == expected;\n\n // 7.4. For all other Object pairs, including Array objects, equivalence is\n // determined by having the same number of owned properties (as verified\n // with Object.prototype.hasOwnProperty.call), the same set of keys\n // (although not necessarily the same order), equivalent values for every\n // corresponding key, and an identical 'prototype' property. Note: this\n // accounts for both named and indexed properties on Arrays.\n } else {\n return objEquiv(actual, expected, opts);\n }\n}\n\nfunction isUndefinedOrNull(value) {\n return value === null || value === undefined;\n}\n\nfunction isBuffer (x) {\n if (!x || typeof x !== 'object' || typeof x.length !== 'number') return false;\n if (typeof x.copy !== 'function' || typeof x.slice !== 'function') {\n return false;\n }\n if (x.length > 0 && typeof x[0] !== 'number') return false;\n return true;\n}\n\nfunction objEquiv(a, b, opts) {\n var i, key;\n if (isUndefinedOrNull(a) || isUndefinedOrNull(b))\n return false;\n // an identical 'prototype' property.\n if (a.prototype !== b.prototype) return false;\n //~~~I've managed to break Object.keys through screwy arguments passing.\n // Converting to array solves the problem.\n if (isArguments(a)) {\n if (!isArguments(b)) {\n return false;\n }\n a = pSlice.call(a);\n b = pSlice.call(b);\n return deepEqual(a, b, opts);\n }\n if (isBuffer(a)) {\n if (!isBuffer(b)) {\n return false;\n }\n if (a.length !== b.length) return false;\n for (i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) return false;\n }\n return true;\n }\n try {\n var ka = objectKeys(a),\n kb = objectKeys(b);\n } catch (e) {//happens when one is a string literal and the other isn't\n return false;\n }\n // having the same number of owned properties (keys incorporates\n // hasOwnProperty)\n if (ka.length != kb.length)\n return false;\n //the same set of keys (although not necessarily the same order),\n ka.sort();\n kb.sort();\n //~~~cheap key test\n for (i = ka.length - 1; i >= 0; i--) {\n if (ka[i] != kb[i])\n return false;\n }\n //equivalent values for every corresponding key, and\n //~~~possibly expensive deep test\n for (i = ka.length - 1; i >= 0; i--) {\n key = ka[i];\n if (!deepEqual(a[key], b[key], opts)) return false;\n }\n return typeof a === typeof b;\n}\n\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Registry = __webpack_require__(1);\nvar Attributor = /** @class */ (function () {\n function Attributor(attrName, keyName, options) {\n if (options === void 0) { options = {}; }\n this.attrName = attrName;\n this.keyName = keyName;\n var attributeBit = Registry.Scope.TYPE & Registry.Scope.ATTRIBUTE;\n if (options.scope != null) {\n // Ignore type bits, force attribute bit\n this.scope = (options.scope & Registry.Scope.LEVEL) | attributeBit;\n }\n else {\n this.scope = Registry.Scope.ATTRIBUTE;\n }\n if (options.whitelist != null)\n this.whitelist = options.whitelist;\n }\n Attributor.keys = function (node) {\n return [].map.call(node.attributes, function (item) {\n return item.name;\n });\n };\n Attributor.prototype.add = function (node, value) {\n if (!this.canAdd(node, value))\n return false;\n node.setAttribute(this.keyName, value);\n return true;\n };\n Attributor.prototype.canAdd = function (node, value) {\n var match = Registry.query(node, Registry.Scope.BLOT & (this.scope | Registry.Scope.TYPE));\n if (match == null)\n return false;\n if (this.whitelist == null)\n return true;\n if (typeof value === 'string') {\n return this.whitelist.indexOf(value.replace(/[\"']/g, '')) > -1;\n }\n else {\n return this.whitelist.indexOf(value) > -1;\n }\n };\n Attributor.prototype.remove = function (node) {\n node.removeAttribute(this.keyName);\n };\n Attributor.prototype.value = function (node) {\n var value = node.getAttribute(this.keyName);\n if (this.canAdd(node, value) && value) {\n return value;\n }\n return '';\n };\n return Attributor;\n}());\nexports.default = Attributor;\n\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.Code = undefined;\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Code = function (_Inline) {\n _inherits(Code, _Inline);\n\n function Code() {\n _classCallCheck(this, Code);\n\n return _possibleConstructorReturn(this, (Code.__proto__ || Object.getPrototypeOf(Code)).apply(this, arguments));\n }\n\n return Code;\n}(_inline2.default);\n\nCode.blotName = 'code';\nCode.tagName = 'CODE';\n\nvar CodeBlock = function (_Block) {\n _inherits(CodeBlock, _Block);\n\n function CodeBlock() {\n _classCallCheck(this, CodeBlock);\n\n return _possibleConstructorReturn(this, (CodeBlock.__proto__ || Object.getPrototypeOf(CodeBlock)).apply(this, arguments));\n }\n\n _createClass(CodeBlock, [{\n key: 'delta',\n value: function delta() {\n var _this3 = this;\n\n var text = this.domNode.textContent;\n if (text.endsWith('\\n')) {\n // Should always be true\n text = text.slice(0, -1);\n }\n return text.split('\\n').reduce(function (delta, frag) {\n return delta.insert(frag).insert('\\n', _this3.formats());\n }, new _quillDelta2.default());\n }\n }, {\n key: 'format',\n value: function format(name, value) {\n if (name === this.statics.blotName && value) return;\n\n var _descendant = this.descendant(_text2.default, this.length() - 1),\n _descendant2 = _slicedToArray(_descendant, 1),\n text = _descendant2[0];\n\n if (text != null) {\n text.deleteAt(text.length() - 1, 1);\n }\n _get(CodeBlock.prototype.__proto__ || Object.getPrototypeOf(CodeBlock.prototype), 'format', this).call(this, name, value);\n }\n }, {\n key: 'formatAt',\n value: function formatAt(index, length, name, value) {\n if (length === 0) return;\n if (_parchment2.default.query(name, _parchment2.default.Scope.BLOCK) == null || name === this.statics.blotName && value === this.statics.formats(this.domNode)) {\n return;\n }\n var nextNewline = this.newlineIndex(index);\n if (nextNewline < 0 || nextNewline >= index + length) return;\n var prevNewline = this.newlineIndex(index, true) + 1;\n var isolateLength = nextNewline - prevNewline + 1;\n var blot = this.isolate(prevNewline, isolateLength);\n var next = blot.next;\n blot.format(name, value);\n if (next instanceof CodeBlock) {\n next.formatAt(0, index - prevNewline + length - isolateLength, name, value);\n }\n }\n }, {\n key: 'insertAt',\n value: function insertAt(index, value, def) {\n if (def != null) return;\n\n var _descendant3 = this.descendant(_text2.default, index),\n _descendant4 = _slicedToArray(_descendant3, 2),\n text = _descendant4[0],\n offset = _descendant4[1];\n\n text.insertAt(offset, value);\n }\n }, {\n key: 'length',\n value: function length() {\n var length = this.domNode.textContent.length;\n if (!this.domNode.textContent.endsWith('\\n')) {\n return length + 1;\n }\n return length;\n }\n }, {\n key: 'newlineIndex',\n value: function newlineIndex(searchIndex) {\n var reverse = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (!reverse) {\n var offset = this.domNode.textContent.slice(searchIndex).indexOf('\\n');\n return offset > -1 ? searchIndex + offset : -1;\n } else {\n return this.domNode.textContent.slice(0, searchIndex).lastIndexOf('\\n');\n }\n }\n }, {\n key: 'optimize',\n value: function optimize(context) {\n if (!this.domNode.textContent.endsWith('\\n')) {\n this.appendChild(_parchment2.default.create('text', '\\n'));\n }\n _get(CodeBlock.prototype.__proto__ || Object.getPrototypeOf(CodeBlock.prototype), 'optimize', this).call(this, context);\n var next = this.next;\n if (next != null && next.prev === this && next.statics.blotName === this.statics.blotName && this.statics.formats(this.domNode) === next.statics.formats(next.domNode)) {\n next.optimize(context);\n next.moveChildren(this);\n next.remove();\n }\n }\n }, {\n key: 'replace',\n value: function replace(target) {\n _get(CodeBlock.prototype.__proto__ || Object.getPrototypeOf(CodeBlock.prototype), 'replace', this).call(this, target);\n [].slice.call(this.domNode.querySelectorAll('*')).forEach(function (node) {\n var blot = _parchment2.default.find(node);\n if (blot == null) {\n node.parentNode.removeChild(node);\n } else if (blot instanceof _parchment2.default.Embed) {\n blot.remove();\n } else {\n blot.unwrap();\n }\n });\n }\n }], [{\n key: 'create',\n value: function create(value) {\n var domNode = _get(CodeBlock.__proto__ || Object.getPrototypeOf(CodeBlock), 'create', this).call(this, value);\n domNode.setAttribute('spellcheck', false);\n return domNode;\n }\n }, {\n key: 'formats',\n value: function formats() {\n return true;\n }\n }]);\n\n return CodeBlock;\n}(_block2.default);\n\nCodeBlock.blotName = 'code-block';\nCodeBlock.tagName = 'PRE';\nCodeBlock.TAB = ' ';\n\nexports.Code = Code;\nexports.default = CodeBlock;\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\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\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _op = __webpack_require__(20);\n\nvar _op2 = _interopRequireDefault(_op);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _code = __webpack_require__(13);\n\nvar _code2 = _interopRequireDefault(_code);\n\nvar _cursor = __webpack_require__(24);\n\nvar _cursor2 = _interopRequireDefault(_cursor);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nvar _break = __webpack_require__(16);\n\nvar _break2 = _interopRequireDefault(_break);\n\nvar _clone = __webpack_require__(21);\n\nvar _clone2 = _interopRequireDefault(_clone);\n\nvar _deepEqual = __webpack_require__(11);\n\nvar _deepEqual2 = _interopRequireDefault(_deepEqual);\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar ASCII = /^[ -~]*$/;\n\nvar Editor = function () {\n function Editor(scroll) {\n _classCallCheck(this, Editor);\n\n this.scroll = scroll;\n this.delta = this.getDelta();\n }\n\n _createClass(Editor, [{\n key: 'applyDelta',\n value: function applyDelta(delta) {\n var _this = this;\n\n var consumeNextNewline = false;\n this.scroll.update();\n var scrollLength = this.scroll.length();\n this.scroll.batchStart();\n delta = normalizeDelta(delta);\n delta.reduce(function (index, op) {\n var length = op.retain || op.delete || op.insert.length || 1;\n var attributes = op.attributes || {};\n if (op.insert != null) {\n if (typeof op.insert === 'string') {\n var text = op.insert;\n if (text.endsWith('\\n') && consumeNextNewline) {\n consumeNextNewline = false;\n text = text.slice(0, -1);\n }\n if (index >= scrollLength && !text.endsWith('\\n')) {\n consumeNextNewline = true;\n }\n _this.scroll.insertAt(index, text);\n\n var _scroll$line = _this.scroll.line(index),\n _scroll$line2 = _slicedToArray(_scroll$line, 2),\n line = _scroll$line2[0],\n offset = _scroll$line2[1];\n\n var formats = (0, _extend2.default)({}, (0, _block.bubbleFormats)(line));\n if (line instanceof _block2.default) {\n var _line$descendant = line.descendant(_parchment2.default.Leaf, offset),\n _line$descendant2 = _slicedToArray(_line$descendant, 1),\n leaf = _line$descendant2[0];\n\n formats = (0, _extend2.default)(formats, (0, _block.bubbleFormats)(leaf));\n }\n attributes = _op2.default.attributes.diff(formats, attributes) || {};\n } else if (_typeof(op.insert) === 'object') {\n var key = Object.keys(op.insert)[0]; // There should only be one key\n if (key == null) return index;\n _this.scroll.insertAt(index, key, op.insert[key]);\n }\n scrollLength += length;\n }\n Object.keys(attributes).forEach(function (name) {\n _this.scroll.formatAt(index, length, name, attributes[name]);\n });\n return index + length;\n }, 0);\n delta.reduce(function (index, op) {\n if (typeof op.delete === 'number') {\n _this.scroll.deleteAt(index, op.delete);\n return index;\n }\n return index + (op.retain || op.insert.length || 1);\n }, 0);\n this.scroll.batchEnd();\n return this.update(delta);\n }\n }, {\n key: 'deleteText',\n value: function deleteText(index, length) {\n this.scroll.deleteAt(index, length);\n return this.update(new _quillDelta2.default().retain(index).delete(length));\n }\n }, {\n key: 'formatLine',\n value: function formatLine(index, length) {\n var _this2 = this;\n\n var formats = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n this.scroll.update();\n Object.keys(formats).forEach(function (format) {\n if (_this2.scroll.whitelist != null && !_this2.scroll.whitelist[format]) return;\n var lines = _this2.scroll.lines(index, Math.max(length, 1));\n var lengthRemaining = length;\n lines.forEach(function (line) {\n var lineLength = line.length();\n if (!(line instanceof _code2.default)) {\n line.format(format, formats[format]);\n } else {\n var codeIndex = index - line.offset(_this2.scroll);\n var codeLength = line.newlineIndex(codeIndex + lengthRemaining) - codeIndex + 1;\n line.formatAt(codeIndex, codeLength, format, formats[format]);\n }\n lengthRemaining -= lineLength;\n });\n });\n this.scroll.optimize();\n return this.update(new _quillDelta2.default().retain(index).retain(length, (0, _clone2.default)(formats)));\n }\n }, {\n key: 'formatText',\n value: function formatText(index, length) {\n var _this3 = this;\n\n var formats = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n Object.keys(formats).forEach(function (format) {\n _this3.scroll.formatAt(index, length, format, formats[format]);\n });\n return this.update(new _quillDelta2.default().retain(index).retain(length, (0, _clone2.default)(formats)));\n }\n }, {\n key: 'getContents',\n value: function getContents(index, length) {\n return this.delta.slice(index, index + length);\n }\n }, {\n key: 'getDelta',\n value: function getDelta() {\n return this.scroll.lines().reduce(function (delta, line) {\n return delta.concat(line.delta());\n }, new _quillDelta2.default());\n }\n }, {\n key: 'getFormat',\n value: function getFormat(index) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n var lines = [],\n leaves = [];\n if (length === 0) {\n this.scroll.path(index).forEach(function (path) {\n var _path = _slicedToArray(path, 1),\n blot = _path[0];\n\n if (blot instanceof _block2.default) {\n lines.push(blot);\n } else if (blot instanceof _parchment2.default.Leaf) {\n leaves.push(blot);\n }\n });\n } else {\n lines = this.scroll.lines(index, length);\n leaves = this.scroll.descendants(_parchment2.default.Leaf, index, length);\n }\n var formatsArr = [lines, leaves].map(function (blots) {\n if (blots.length === 0) return {};\n var formats = (0, _block.bubbleFormats)(blots.shift());\n while (Object.keys(formats).length > 0) {\n var blot = blots.shift();\n if (blot == null) return formats;\n formats = combineFormats((0, _block.bubbleFormats)(blot), formats);\n }\n return formats;\n });\n return _extend2.default.apply(_extend2.default, formatsArr);\n }\n }, {\n key: 'getText',\n value: function getText(index, length) {\n return this.getContents(index, length).filter(function (op) {\n return typeof op.insert === 'string';\n }).map(function (op) {\n return op.insert;\n }).join('');\n }\n }, {\n key: 'insertEmbed',\n value: function insertEmbed(index, embed, value) {\n this.scroll.insertAt(index, embed, value);\n return this.update(new _quillDelta2.default().retain(index).insert(_defineProperty({}, embed, value)));\n }\n }, {\n key: 'insertText',\n value: function insertText(index, text) {\n var _this4 = this;\n\n var formats = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n text = text.replace(/\\r\\n/g, '\\n').replace(/\\r/g, '\\n');\n this.scroll.insertAt(index, text);\n Object.keys(formats).forEach(function (format) {\n _this4.scroll.formatAt(index, text.length, format, formats[format]);\n });\n return this.update(new _quillDelta2.default().retain(index).insert(text, (0, _clone2.default)(formats)));\n }\n }, {\n key: 'isBlank',\n value: function isBlank() {\n if (this.scroll.children.length == 0) return true;\n if (this.scroll.children.length > 1) return false;\n var block = this.scroll.children.head;\n if (block.statics.blotName !== _block2.default.blotName) return false;\n if (block.children.length > 1) return false;\n return block.children.head instanceof _break2.default;\n }\n }, {\n key: 'removeFormat',\n value: function removeFormat(index, length) {\n var text = this.getText(index, length);\n\n var _scroll$line3 = this.scroll.line(index + length),\n _scroll$line4 = _slicedToArray(_scroll$line3, 2),\n line = _scroll$line4[0],\n offset = _scroll$line4[1];\n\n var suffixLength = 0,\n suffix = new _quillDelta2.default();\n if (line != null) {\n if (!(line instanceof _code2.default)) {\n suffixLength = line.length() - offset;\n } else {\n suffixLength = line.newlineIndex(offset) - offset + 1;\n }\n suffix = line.delta().slice(offset, offset + suffixLength - 1).insert('\\n');\n }\n var contents = this.getContents(index, length + suffixLength);\n var diff = contents.diff(new _quillDelta2.default().insert(text).concat(suffix));\n var delta = new _quillDelta2.default().retain(index).concat(diff);\n return this.applyDelta(delta);\n }\n }, {\n key: 'update',\n value: function update(change) {\n var mutations = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var cursorIndex = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;\n\n var oldDelta = this.delta;\n if (mutations.length === 1 && mutations[0].type === 'characterData' && mutations[0].target.data.match(ASCII) && _parchment2.default.find(mutations[0].target)) {\n // Optimization for character changes\n var textBlot = _parchment2.default.find(mutations[0].target);\n var formats = (0, _block.bubbleFormats)(textBlot);\n var index = textBlot.offset(this.scroll);\n var oldValue = mutations[0].oldValue.replace(_cursor2.default.CONTENTS, '');\n var oldText = new _quillDelta2.default().insert(oldValue);\n var newText = new _quillDelta2.default().insert(textBlot.value());\n var diffDelta = new _quillDelta2.default().retain(index).concat(oldText.diff(newText, cursorIndex));\n change = diffDelta.reduce(function (delta, op) {\n if (op.insert) {\n return delta.insert(op.insert, formats);\n } else {\n return delta.push(op);\n }\n }, new _quillDelta2.default());\n this.delta = oldDelta.compose(change);\n } else {\n this.delta = this.getDelta();\n if (!change || !(0, _deepEqual2.default)(oldDelta.compose(change), this.delta)) {\n change = oldDelta.diff(this.delta, cursorIndex);\n }\n }\n return change;\n }\n }]);\n\n return Editor;\n}();\n\nfunction combineFormats(formats, combined) {\n return Object.keys(combined).reduce(function (merged, name) {\n if (formats[name] == null) return merged;\n if (combined[name] === formats[name]) {\n merged[name] = combined[name];\n } else if (Array.isArray(combined[name])) {\n if (combined[name].indexOf(formats[name]) < 0) {\n merged[name] = combined[name].concat([formats[name]]);\n }\n } else {\n merged[name] = [combined[name], formats[name]];\n }\n return merged;\n }, {});\n}\n\nfunction normalizeDelta(delta) {\n return delta.reduce(function (delta, op) {\n if (op.insert === 1) {\n var attributes = (0, _clone2.default)(op.attributes);\n delete attributes['image'];\n return delta.insert({ image: op.attributes.image }, attributes);\n }\n if (op.attributes != null && (op.attributes.list === true || op.attributes.bullet === true)) {\n op = (0, _clone2.default)(op);\n if (op.attributes.list) {\n op.attributes.list = 'ordered';\n } else {\n op.attributes.list = 'bullet';\n delete op.attributes.bullet;\n }\n }\n if (typeof op.insert === 'string') {\n var text = op.insert.replace(/\\r\\n/g, '\\n').replace(/\\r/g, '\\n');\n return delta.insert(text, op.attributes);\n }\n return delta.push(op);\n }, new _quillDelta2.default());\n}\n\nexports.default = Editor;\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.Range = undefined;\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _clone = __webpack_require__(21);\n\nvar _clone2 = _interopRequireDefault(_clone);\n\nvar _deepEqual = __webpack_require__(11);\n\nvar _deepEqual2 = _interopRequireDefault(_deepEqual);\n\nvar _emitter3 = __webpack_require__(8);\n\nvar _emitter4 = _interopRequireDefault(_emitter3);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar debug = (0, _logger2.default)('quill:selection');\n\nvar Range = function Range(index) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n _classCallCheck(this, Range);\n\n this.index = index;\n this.length = length;\n};\n\nvar Selection = function () {\n function Selection(scroll, emitter) {\n var _this = this;\n\n _classCallCheck(this, Selection);\n\n this.emitter = emitter;\n this.scroll = scroll;\n this.composing = false;\n this.mouseDown = false;\n this.root = this.scroll.domNode;\n this.cursor = _parchment2.default.create('cursor', this);\n // savedRange is last non-null range\n this.lastRange = this.savedRange = new Range(0, 0);\n this.handleComposition();\n this.handleDragging();\n this.emitter.listenDOM('selectionchange', document, function () {\n if (!_this.mouseDown) {\n setTimeout(_this.update.bind(_this, _emitter4.default.sources.USER), 1);\n }\n });\n this.emitter.on(_emitter4.default.events.EDITOR_CHANGE, function (type, delta) {\n if (type === _emitter4.default.events.TEXT_CHANGE && delta.length() > 0) {\n _this.update(_emitter4.default.sources.SILENT);\n }\n });\n this.emitter.on(_emitter4.default.events.SCROLL_BEFORE_UPDATE, function () {\n if (!_this.hasFocus()) return;\n var native = _this.getNativeRange();\n if (native == null) return;\n if (native.start.node === _this.cursor.textNode) return; // cursor.restore() will handle\n // TODO unclear if this has negative side effects\n _this.emitter.once(_emitter4.default.events.SCROLL_UPDATE, function () {\n try {\n _this.setNativeRange(native.start.node, native.start.offset, native.end.node, native.end.offset);\n } catch (ignored) {}\n });\n });\n this.emitter.on(_emitter4.default.events.SCROLL_OPTIMIZE, function (mutations, context) {\n if (context.range) {\n var _context$range = context.range,\n startNode = _context$range.startNode,\n startOffset = _context$range.startOffset,\n endNode = _context$range.endNode,\n endOffset = _context$range.endOffset;\n\n _this.setNativeRange(startNode, startOffset, endNode, endOffset);\n }\n });\n this.update(_emitter4.default.sources.SILENT);\n }\n\n _createClass(Selection, [{\n key: 'handleComposition',\n value: function handleComposition() {\n var _this2 = this;\n\n this.root.addEventListener('compositionstart', function () {\n _this2.composing = true;\n });\n this.root.addEventListener('compositionend', function () {\n _this2.composing = false;\n if (_this2.cursor.parent) {\n var range = _this2.cursor.restore();\n if (!range) return;\n setTimeout(function () {\n _this2.setNativeRange(range.startNode, range.startOffset, range.endNode, range.endOffset);\n }, 1);\n }\n });\n }\n }, {\n key: 'handleDragging',\n value: function handleDragging() {\n var _this3 = this;\n\n this.emitter.listenDOM('mousedown', document.body, function () {\n _this3.mouseDown = true;\n });\n this.emitter.listenDOM('mouseup', document.body, function () {\n _this3.mouseDown = false;\n _this3.update(_emitter4.default.sources.USER);\n });\n }\n }, {\n key: 'focus',\n value: function focus() {\n if (this.hasFocus()) return;\n this.root.focus();\n this.setRange(this.savedRange);\n }\n }, {\n key: 'format',\n value: function format(_format, value) {\n if (this.scroll.whitelist != null && !this.scroll.whitelist[_format]) return;\n this.scroll.update();\n var nativeRange = this.getNativeRange();\n if (nativeRange == null || !nativeRange.native.collapsed || _parchment2.default.query(_format, _parchment2.default.Scope.BLOCK)) return;\n if (nativeRange.start.node !== this.cursor.textNode) {\n var blot = _parchment2.default.find(nativeRange.start.node, false);\n if (blot == null) return;\n // TODO Give blot ability to not split\n if (blot instanceof _parchment2.default.Leaf) {\n var after = blot.split(nativeRange.start.offset);\n blot.parent.insertBefore(this.cursor, after);\n } else {\n blot.insertBefore(this.cursor, nativeRange.start.node); // Should never happen\n }\n this.cursor.attach();\n }\n this.cursor.format(_format, value);\n this.scroll.optimize();\n this.setNativeRange(this.cursor.textNode, this.cursor.textNode.data.length);\n this.update();\n }\n }, {\n key: 'getBounds',\n value: function getBounds(index) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n var scrollLength = this.scroll.length();\n index = Math.min(index, scrollLength - 1);\n length = Math.min(index + length, scrollLength - 1) - index;\n var node = void 0,\n _scroll$leaf = this.scroll.leaf(index),\n _scroll$leaf2 = _slicedToArray(_scroll$leaf, 2),\n leaf = _scroll$leaf2[0],\n offset = _scroll$leaf2[1];\n if (leaf == null) return null;\n\n var _leaf$position = leaf.position(offset, true);\n\n var _leaf$position2 = _slicedToArray(_leaf$position, 2);\n\n node = _leaf$position2[0];\n offset = _leaf$position2[1];\n\n var range = document.createRange();\n if (length > 0) {\n range.setStart(node, offset);\n\n var _scroll$leaf3 = this.scroll.leaf(index + length);\n\n var _scroll$leaf4 = _slicedToArray(_scroll$leaf3, 2);\n\n leaf = _scroll$leaf4[0];\n offset = _scroll$leaf4[1];\n\n if (leaf == null) return null;\n\n var _leaf$position3 = leaf.position(offset, true);\n\n var _leaf$position4 = _slicedToArray(_leaf$position3, 2);\n\n node = _leaf$position4[0];\n offset = _leaf$position4[1];\n\n range.setEnd(node, offset);\n return range.getBoundingClientRect();\n } else {\n var side = 'left';\n var rect = void 0;\n if (node instanceof Text) {\n if (offset < node.data.length) {\n range.setStart(node, offset);\n range.setEnd(node, offset + 1);\n } else {\n range.setStart(node, offset - 1);\n range.setEnd(node, offset);\n side = 'right';\n }\n rect = range.getBoundingClientRect();\n } else {\n rect = leaf.domNode.getBoundingClientRect();\n if (offset > 0) side = 'right';\n }\n return {\n bottom: rect.top + rect.height,\n height: rect.height,\n left: rect[side],\n right: rect[side],\n top: rect.top,\n width: 0\n };\n }\n }\n }, {\n key: 'getNativeRange',\n value: function getNativeRange() {\n var selection = document.getSelection();\n if (selection == null || selection.rangeCount <= 0) return null;\n var nativeRange = selection.getRangeAt(0);\n if (nativeRange == null) return null;\n var range = this.normalizeNative(nativeRange);\n debug.info('getNativeRange', range);\n return range;\n }\n }, {\n key: 'getRange',\n value: function getRange() {\n var normalized = this.getNativeRange();\n if (normalized == null) return [null, null];\n var range = this.normalizedToRange(normalized);\n return [range, normalized];\n }\n }, {\n key: 'hasFocus',\n value: function hasFocus() {\n return document.activeElement === this.root;\n }\n }, {\n key: 'normalizedToRange',\n value: function normalizedToRange(range) {\n var _this4 = this;\n\n var positions = [[range.start.node, range.start.offset]];\n if (!range.native.collapsed) {\n positions.push([range.end.node, range.end.offset]);\n }\n var indexes = positions.map(function (position) {\n var _position = _slicedToArray(position, 2),\n node = _position[0],\n offset = _position[1];\n\n var blot = _parchment2.default.find(node, true);\n var index = blot.offset(_this4.scroll);\n if (offset === 0) {\n return index;\n } else if (blot instanceof _parchment2.default.Container) {\n return index + blot.length();\n } else {\n return index + blot.index(node, offset);\n }\n });\n var end = Math.min(Math.max.apply(Math, _toConsumableArray(indexes)), this.scroll.length() - 1);\n var start = Math.min.apply(Math, [end].concat(_toConsumableArray(indexes)));\n return new Range(start, end - start);\n }\n }, {\n key: 'normalizeNative',\n value: function normalizeNative(nativeRange) {\n if (!contains(this.root, nativeRange.startContainer) || !nativeRange.collapsed && !contains(this.root, nativeRange.endContainer)) {\n return null;\n }\n var range = {\n start: { node: nativeRange.startContainer, offset: nativeRange.startOffset },\n end: { node: nativeRange.endContainer, offset: nativeRange.endOffset },\n native: nativeRange\n };\n [range.start, range.end].forEach(function (position) {\n var node = position.node,\n offset = position.offset;\n while (!(node instanceof Text) && node.childNodes.length > 0) {\n if (node.childNodes.length > offset) {\n node = node.childNodes[offset];\n offset = 0;\n } else if (node.childNodes.length === offset) {\n node = node.lastChild;\n offset = node instanceof Text ? node.data.length : node.childNodes.length + 1;\n } else {\n break;\n }\n }\n position.node = node, position.offset = offset;\n });\n return range;\n }\n }, {\n key: 'rangeToNative',\n value: function rangeToNative(range) {\n var _this5 = this;\n\n var indexes = range.collapsed ? [range.index] : [range.index, range.index + range.length];\n var args = [];\n var scrollLength = this.scroll.length();\n indexes.forEach(function (index, i) {\n index = Math.min(scrollLength - 1, index);\n var node = void 0,\n _scroll$leaf5 = _this5.scroll.leaf(index),\n _scroll$leaf6 = _slicedToArray(_scroll$leaf5, 2),\n leaf = _scroll$leaf6[0],\n offset = _scroll$leaf6[1];\n var _leaf$position5 = leaf.position(offset, i !== 0);\n\n var _leaf$position6 = _slicedToArray(_leaf$position5, 2);\n\n node = _leaf$position6[0];\n offset = _leaf$position6[1];\n\n args.push(node, offset);\n });\n if (args.length < 2) {\n args = args.concat(args);\n }\n return args;\n }\n }, {\n key: 'scrollIntoView',\n value: function scrollIntoView(scrollingContainer) {\n var range = this.lastRange;\n if (range == null) return;\n var bounds = this.getBounds(range.index, range.length);\n if (bounds == null) return;\n var limit = this.scroll.length() - 1;\n\n var _scroll$line = this.scroll.line(Math.min(range.index, limit)),\n _scroll$line2 = _slicedToArray(_scroll$line, 1),\n first = _scroll$line2[0];\n\n var last = first;\n if (range.length > 0) {\n var _scroll$line3 = this.scroll.line(Math.min(range.index + range.length, limit));\n\n var _scroll$line4 = _slicedToArray(_scroll$line3, 1);\n\n last = _scroll$line4[0];\n }\n if (first == null || last == null) return;\n var scrollBounds = scrollingContainer.getBoundingClientRect();\n if (bounds.top < scrollBounds.top) {\n scrollingContainer.scrollTop -= scrollBounds.top - bounds.top;\n } else if (bounds.bottom > scrollBounds.bottom) {\n scrollingContainer.scrollTop += bounds.bottom - scrollBounds.bottom;\n }\n }\n }, {\n key: 'setNativeRange',\n value: function setNativeRange(startNode, startOffset) {\n var endNode = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : startNode;\n var endOffset = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : startOffset;\n var force = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n debug.info('setNativeRange', startNode, startOffset, endNode, endOffset);\n if (startNode != null && (this.root.parentNode == null || startNode.parentNode == null || endNode.parentNode == null)) {\n return;\n }\n var selection = document.getSelection();\n if (selection == null) return;\n if (startNode != null) {\n if (!this.hasFocus()) this.root.focus();\n var native = (this.getNativeRange() || {}).native;\n if (native == null || force || startNode !== native.startContainer || startOffset !== native.startOffset || endNode !== native.endContainer || endOffset !== native.endOffset) {\n\n if (startNode.tagName == \"BR\") {\n startOffset = [].indexOf.call(startNode.parentNode.childNodes, startNode);\n startNode = startNode.parentNode;\n }\n if (endNode.tagName == \"BR\") {\n endOffset = [].indexOf.call(endNode.parentNode.childNodes, endNode);\n endNode = endNode.parentNode;\n }\n var range = document.createRange();\n range.setStart(startNode, startOffset);\n range.setEnd(endNode, endOffset);\n selection.removeAllRanges();\n selection.addRange(range);\n }\n } else {\n selection.removeAllRanges();\n this.root.blur();\n document.body.focus(); // root.blur() not enough on IE11+Travis+SauceLabs (but not local VMs)\n }\n }\n }, {\n key: 'setRange',\n value: function setRange(range) {\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var source = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _emitter4.default.sources.API;\n\n if (typeof force === 'string') {\n source = force;\n force = false;\n }\n debug.info('setRange', range);\n if (range != null) {\n var args = this.rangeToNative(range);\n this.setNativeRange.apply(this, _toConsumableArray(args).concat([force]));\n } else {\n this.setNativeRange(null);\n }\n this.update(source);\n }\n }, {\n key: 'update',\n value: function update() {\n var source = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _emitter4.default.sources.USER;\n\n var oldRange = this.lastRange;\n\n var _getRange = this.getRange(),\n _getRange2 = _slicedToArray(_getRange, 2),\n lastRange = _getRange2[0],\n nativeRange = _getRange2[1];\n\n this.lastRange = lastRange;\n if (this.lastRange != null) {\n this.savedRange = this.lastRange;\n }\n if (!(0, _deepEqual2.default)(oldRange, this.lastRange)) {\n var _emitter;\n\n if (!this.composing && nativeRange != null && nativeRange.native.collapsed && nativeRange.start.node !== this.cursor.textNode) {\n this.cursor.restore();\n }\n var args = [_emitter4.default.events.SELECTION_CHANGE, (0, _clone2.default)(this.lastRange), (0, _clone2.default)(oldRange), source];\n (_emitter = this.emitter).emit.apply(_emitter, [_emitter4.default.events.EDITOR_CHANGE].concat(args));\n if (source !== _emitter4.default.sources.SILENT) {\n var _emitter2;\n\n (_emitter2 = this.emitter).emit.apply(_emitter2, args);\n }\n }\n }\n }]);\n\n return Selection;\n}();\n\nfunction contains(parent, descendant) {\n try {\n // Firefox inserts inaccessible nodes around video elements\n descendant.parentNode;\n } catch (e) {\n return false;\n }\n // IE11 has bug with Text nodes\n // https://connect.microsoft.com/IE/feedback/details/780874/node-contains-is-incorrect\n if (descendant instanceof Text) {\n descendant = descendant.parentNode;\n }\n return parent.contains(descendant);\n}\n\nexports.Range = Range;\nexports.default = Selection;\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Break = function (_Parchment$Embed) {\n _inherits(Break, _Parchment$Embed);\n\n function Break() {\n _classCallCheck(this, Break);\n\n return _possibleConstructorReturn(this, (Break.__proto__ || Object.getPrototypeOf(Break)).apply(this, arguments));\n }\n\n _createClass(Break, [{\n key: 'insertInto',\n value: function insertInto(parent, ref) {\n if (parent.children.length === 0) {\n _get(Break.prototype.__proto__ || Object.getPrototypeOf(Break.prototype), 'insertInto', this).call(this, parent, ref);\n } else {\n this.remove();\n }\n }\n }, {\n key: 'length',\n value: function length() {\n return 0;\n }\n }, {\n key: 'value',\n value: function value() {\n return '';\n }\n }], [{\n key: 'value',\n value: function value() {\n return undefined;\n }\n }]);\n\n return Break;\n}(_parchment2.default.Embed);\n\nBreak.blotName = 'break';\nBreak.tagName = 'BR';\n\nexports.default = Break;\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar linked_list_1 = __webpack_require__(44);\nvar shadow_1 = __webpack_require__(30);\nvar Registry = __webpack_require__(1);\nvar ContainerBlot = /** @class */ (function (_super) {\n __extends(ContainerBlot, _super);\n function ContainerBlot(domNode) {\n var _this = _super.call(this, domNode) || this;\n _this.build();\n return _this;\n }\n ContainerBlot.prototype.appendChild = function (other) {\n this.insertBefore(other);\n };\n ContainerBlot.prototype.attach = function () {\n _super.prototype.attach.call(this);\n this.children.forEach(function (child) {\n child.attach();\n });\n };\n ContainerBlot.prototype.build = function () {\n var _this = this;\n this.children = new linked_list_1.default();\n // Need to be reversed for if DOM nodes already in order\n [].slice\n .call(this.domNode.childNodes)\n .reverse()\n .forEach(function (node) {\n try {\n var child = makeBlot(node);\n _this.insertBefore(child, _this.children.head || undefined);\n }\n catch (err) {\n if (err instanceof Registry.ParchmentError)\n return;\n else\n throw err;\n }\n });\n };\n ContainerBlot.prototype.deleteAt = function (index, length) {\n if (index === 0 && length === this.length()) {\n return this.remove();\n }\n this.children.forEachAt(index, length, function (child, offset, length) {\n child.deleteAt(offset, length);\n });\n };\n ContainerBlot.prototype.descendant = function (criteria, index) {\n var _a = this.children.find(index), child = _a[0], offset = _a[1];\n if ((criteria.blotName == null && criteria(child)) ||\n (criteria.blotName != null && child instanceof criteria)) {\n return [child, offset];\n }\n else if (child instanceof ContainerBlot) {\n return child.descendant(criteria, offset);\n }\n else {\n return [null, -1];\n }\n };\n ContainerBlot.prototype.descendants = function (criteria, index, length) {\n if (index === void 0) { index = 0; }\n if (length === void 0) { length = Number.MAX_VALUE; }\n var descendants = [];\n var lengthLeft = length;\n this.children.forEachAt(index, length, function (child, index, length) {\n if ((criteria.blotName == null && criteria(child)) ||\n (criteria.blotName != null && child instanceof criteria)) {\n descendants.push(child);\n }\n if (child instanceof ContainerBlot) {\n descendants = descendants.concat(child.descendants(criteria, index, lengthLeft));\n }\n lengthLeft -= length;\n });\n return descendants;\n };\n ContainerBlot.prototype.detach = function () {\n this.children.forEach(function (child) {\n child.detach();\n });\n _super.prototype.detach.call(this);\n };\n ContainerBlot.prototype.formatAt = function (index, length, name, value) {\n this.children.forEachAt(index, length, function (child, offset, length) {\n child.formatAt(offset, length, name, value);\n });\n };\n ContainerBlot.prototype.insertAt = function (index, value, def) {\n var _a = this.children.find(index), child = _a[0], offset = _a[1];\n if (child) {\n child.insertAt(offset, value, def);\n }\n else {\n var blot = def == null ? Registry.create('text', value) : Registry.create(value, def);\n this.appendChild(blot);\n }\n };\n ContainerBlot.prototype.insertBefore = function (childBlot, refBlot) {\n if (this.statics.allowedChildren != null &&\n !this.statics.allowedChildren.some(function (child) {\n return childBlot instanceof child;\n })) {\n throw new Registry.ParchmentError(\"Cannot insert \" + childBlot.statics.blotName + \" into \" + this.statics.blotName);\n }\n childBlot.insertInto(this, refBlot);\n };\n ContainerBlot.prototype.length = function () {\n return this.children.reduce(function (memo, child) {\n return memo + child.length();\n }, 0);\n };\n ContainerBlot.prototype.moveChildren = function (targetParent, refNode) {\n this.children.forEach(function (child) {\n targetParent.insertBefore(child, refNode);\n });\n };\n ContainerBlot.prototype.optimize = function (context) {\n _super.prototype.optimize.call(this, context);\n if (this.children.length === 0) {\n if (this.statics.defaultChild != null) {\n var child = Registry.create(this.statics.defaultChild);\n this.appendChild(child);\n child.optimize(context);\n }\n else {\n this.remove();\n }\n }\n };\n ContainerBlot.prototype.path = function (index, inclusive) {\n if (inclusive === void 0) { inclusive = false; }\n var _a = this.children.find(index, inclusive), child = _a[0], offset = _a[1];\n var position = [[this, index]];\n if (child instanceof ContainerBlot) {\n return position.concat(child.path(offset, inclusive));\n }\n else if (child != null) {\n position.push([child, offset]);\n }\n return position;\n };\n ContainerBlot.prototype.removeChild = function (child) {\n this.children.remove(child);\n };\n ContainerBlot.prototype.replace = function (target) {\n if (target instanceof ContainerBlot) {\n target.moveChildren(this);\n }\n _super.prototype.replace.call(this, target);\n };\n ContainerBlot.prototype.split = function (index, force) {\n if (force === void 0) { force = false; }\n if (!force) {\n if (index === 0)\n return this;\n if (index === this.length())\n return this.next;\n }\n var after = this.clone();\n this.parent.insertBefore(after, this.next);\n this.children.forEachAt(index, this.length(), function (child, offset, length) {\n child = child.split(offset, force);\n after.appendChild(child);\n });\n return after;\n };\n ContainerBlot.prototype.unwrap = function () {\n this.moveChildren(this.parent, this.next);\n this.remove();\n };\n ContainerBlot.prototype.update = function (mutations, context) {\n var _this = this;\n var addedNodes = [];\n var removedNodes = [];\n mutations.forEach(function (mutation) {\n if (mutation.target === _this.domNode && mutation.type === 'childList') {\n addedNodes.push.apply(addedNodes, mutation.addedNodes);\n removedNodes.push.apply(removedNodes, mutation.removedNodes);\n }\n });\n removedNodes.forEach(function (node) {\n // Check node has actually been removed\n // One exception is Chrome does not immediately remove IFRAMEs\n // from DOM but MutationRecord is correct in its reported removal\n if (node.parentNode != null &&\n // @ts-ignore\n node.tagName !== 'IFRAME' &&\n document.body.compareDocumentPosition(node) & Node.DOCUMENT_POSITION_CONTAINED_BY) {\n return;\n }\n var blot = Registry.find(node);\n if (blot == null)\n return;\n if (blot.domNode.parentNode == null || blot.domNode.parentNode === _this.domNode) {\n blot.detach();\n }\n });\n addedNodes\n .filter(function (node) {\n return node.parentNode == _this.domNode;\n })\n .sort(function (a, b) {\n if (a === b)\n return 0;\n if (a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_FOLLOWING) {\n return 1;\n }\n return -1;\n })\n .forEach(function (node) {\n var refBlot = null;\n if (node.nextSibling != null) {\n refBlot = Registry.find(node.nextSibling);\n }\n var blot = makeBlot(node);\n if (blot.next != refBlot || blot.next == null) {\n if (blot.parent != null) {\n blot.parent.removeChild(_this);\n }\n _this.insertBefore(blot, refBlot || undefined);\n }\n });\n };\n return ContainerBlot;\n}(shadow_1.default));\nfunction makeBlot(node) {\n var blot = Registry.find(node);\n if (blot == null) {\n try {\n blot = Registry.create(node);\n }\n catch (e) {\n blot = Registry.create(Registry.Scope.INLINE);\n [].slice.call(node.childNodes).forEach(function (child) {\n // @ts-ignore\n blot.domNode.appendChild(child);\n });\n if (node.parentNode) {\n node.parentNode.replaceChild(blot.domNode, node);\n }\n blot.attach();\n }\n }\n return blot;\n}\nexports.default = ContainerBlot;\n\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar attributor_1 = __webpack_require__(12);\nvar store_1 = __webpack_require__(31);\nvar container_1 = __webpack_require__(17);\nvar Registry = __webpack_require__(1);\nvar FormatBlot = /** @class */ (function (_super) {\n __extends(FormatBlot, _super);\n function FormatBlot(domNode) {\n var _this = _super.call(this, domNode) || this;\n _this.attributes = new store_1.default(_this.domNode);\n return _this;\n }\n FormatBlot.formats = function (domNode) {\n if (typeof this.tagName === 'string') {\n return true;\n }\n else if (Array.isArray(this.tagName)) {\n return domNode.tagName.toLowerCase();\n }\n return undefined;\n };\n FormatBlot.prototype.format = function (name, value) {\n var format = Registry.query(name);\n if (format instanceof attributor_1.default) {\n this.attributes.attribute(format, value);\n }\n else if (value) {\n if (format != null && (name !== this.statics.blotName || this.formats()[name] !== value)) {\n this.replaceWith(name, value);\n }\n }\n };\n FormatBlot.prototype.formats = function () {\n var formats = this.attributes.values();\n var format = this.statics.formats(this.domNode);\n if (format != null) {\n formats[this.statics.blotName] = format;\n }\n return formats;\n };\n FormatBlot.prototype.replaceWith = function (name, value) {\n var replacement = _super.prototype.replaceWith.call(this, name, value);\n this.attributes.copy(replacement);\n return replacement;\n };\n FormatBlot.prototype.update = function (mutations, context) {\n var _this = this;\n _super.prototype.update.call(this, mutations, context);\n if (mutations.some(function (mutation) {\n return mutation.target === _this.domNode && mutation.type === 'attributes';\n })) {\n this.attributes.build();\n }\n };\n FormatBlot.prototype.wrap = function (name, value) {\n var wrapper = _super.prototype.wrap.call(this, name, value);\n if (wrapper instanceof FormatBlot && wrapper.statics.scope === this.statics.scope) {\n this.attributes.move(wrapper);\n }\n return wrapper;\n };\n return FormatBlot;\n}(container_1.default));\nexports.default = FormatBlot;\n\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar shadow_1 = __webpack_require__(30);\nvar Registry = __webpack_require__(1);\nvar LeafBlot = /** @class */ (function (_super) {\n __extends(LeafBlot, _super);\n function LeafBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n LeafBlot.value = function (domNode) {\n return true;\n };\n LeafBlot.prototype.index = function (node, offset) {\n if (this.domNode === node ||\n this.domNode.compareDocumentPosition(node) & Node.DOCUMENT_POSITION_CONTAINED_BY) {\n return Math.min(offset, 1);\n }\n return -1;\n };\n LeafBlot.prototype.position = function (index, inclusive) {\n var offset = [].indexOf.call(this.parent.domNode.childNodes, this.domNode);\n if (index > 0)\n offset += 1;\n return [this.parent.domNode, offset];\n };\n LeafBlot.prototype.value = function () {\n var _a;\n return _a = {}, _a[this.statics.blotName] = this.statics.value(this.domNode) || true, _a;\n };\n LeafBlot.scope = Registry.Scope.INLINE_BLOT;\n return LeafBlot;\n}(shadow_1.default));\nexports.default = LeafBlot;\n\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar equal = __webpack_require__(11);\nvar extend = __webpack_require__(3);\n\n\nvar lib = {\n attributes: {\n compose: function (a, b, keepNull) {\n if (typeof a !== 'object') a = {};\n if (typeof b !== 'object') b = {};\n var attributes = extend(true, {}, b);\n if (!keepNull) {\n attributes = Object.keys(attributes).reduce(function (copy, key) {\n if (attributes[key] != null) {\n copy[key] = attributes[key];\n }\n return copy;\n }, {});\n }\n for (var key in a) {\n if (a[key] !== undefined && b[key] === undefined) {\n attributes[key] = a[key];\n }\n }\n return Object.keys(attributes).length > 0 ? attributes : undefined;\n },\n\n diff: function(a, b) {\n if (typeof a !== 'object') a = {};\n if (typeof b !== 'object') b = {};\n var attributes = Object.keys(a).concat(Object.keys(b)).reduce(function (attributes, key) {\n if (!equal(a[key], b[key])) {\n attributes[key] = b[key] === undefined ? null : b[key];\n }\n return attributes;\n }, {});\n return Object.keys(attributes).length > 0 ? attributes : undefined;\n },\n\n transform: function (a, b, priority) {\n if (typeof a !== 'object') return b;\n if (typeof b !== 'object') return undefined;\n if (!priority) return b; // b simply overwrites us without priority\n var attributes = Object.keys(b).reduce(function (attributes, key) {\n if (a[key] === undefined) attributes[key] = b[key]; // null is a valid value\n return attributes;\n }, {});\n return Object.keys(attributes).length > 0 ? attributes : undefined;\n }\n },\n\n iterator: function (ops) {\n return new Iterator(ops);\n },\n\n length: function (op) {\n if (typeof op['delete'] === 'number') {\n return op['delete'];\n } else if (typeof op.retain === 'number') {\n return op.retain;\n } else {\n return typeof op.insert === 'string' ? op.insert.length : 1;\n }\n }\n};\n\n\nfunction Iterator(ops) {\n this.ops = ops;\n this.index = 0;\n this.offset = 0;\n};\n\nIterator.prototype.hasNext = function () {\n return this.peekLength() < Infinity;\n};\n\nIterator.prototype.next = function (length) {\n if (!length) length = Infinity;\n var nextOp = this.ops[this.index];\n if (nextOp) {\n var offset = this.offset;\n var opLength = lib.length(nextOp)\n if (length >= opLength - offset) {\n length = opLength - offset;\n this.index += 1;\n this.offset = 0;\n } else {\n this.offset += length;\n }\n if (typeof nextOp['delete'] === 'number') {\n return { 'delete': length };\n } else {\n var retOp = {};\n if (nextOp.attributes) {\n retOp.attributes = nextOp.attributes;\n }\n if (typeof nextOp.retain === 'number') {\n retOp.retain = length;\n } else if (typeof nextOp.insert === 'string') {\n retOp.insert = nextOp.insert.substr(offset, length);\n } else {\n // offset should === 0, length should === 1\n retOp.insert = nextOp.insert;\n }\n return retOp;\n }\n } else {\n return { retain: Infinity };\n }\n};\n\nIterator.prototype.peek = function () {\n return this.ops[this.index];\n};\n\nIterator.prototype.peekLength = function () {\n if (this.ops[this.index]) {\n // Should never return 0 if our index is being managed correctly\n return lib.length(this.ops[this.index]) - this.offset;\n } else {\n return Infinity;\n }\n};\n\nIterator.prototype.peekType = function () {\n if (this.ops[this.index]) {\n if (typeof this.ops[this.index]['delete'] === 'number') {\n return 'delete';\n } else if (typeof this.ops[this.index].retain === 'number') {\n return 'retain';\n } else {\n return 'insert';\n }\n }\n return 'retain';\n};\n\nIterator.prototype.rest = function () {\n if (!this.hasNext()) {\n return [];\n } else if (this.offset === 0) {\n return this.ops.slice(this.index);\n } else {\n var offset = this.offset;\n var index = this.index;\n var next = this.next();\n var rest = this.ops.slice(this.index);\n this.offset = offset;\n this.index = index;\n return [next].concat(rest);\n }\n};\n\n\nmodule.exports = lib;\n\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports) {\n\nvar clone = (function() {\n'use strict';\n\nfunction _instanceof(obj, type) {\n return type != null && obj instanceof type;\n}\n\nvar nativeMap;\ntry {\n nativeMap = Map;\n} catch(_) {\n // maybe a reference error because no `Map`. Give it a dummy value that no\n // value will ever be an instanceof.\n nativeMap = function() {};\n}\n\nvar nativeSet;\ntry {\n nativeSet = Set;\n} catch(_) {\n nativeSet = function() {};\n}\n\nvar nativePromise;\ntry {\n nativePromise = Promise;\n} catch(_) {\n nativePromise = function() {};\n}\n\n/**\n * Clones (copies) an Object using deep copying.\n *\n * This function supports circular references by default, but if you are certain\n * there are no circular references in your object, you can save some CPU time\n * by calling clone(obj, false).\n *\n * Caution: if `circular` is false and `parent` contains circular references,\n * your program may enter an infinite loop and crash.\n *\n * @param `parent` - the object to be cloned\n * @param `circular` - set to true if the object to be cloned may contain\n * circular references. (optional - true by default)\n * @param `depth` - set to a number if the object is only to be cloned to\n * a particular depth. (optional - defaults to Infinity)\n * @param `prototype` - sets the prototype to be used when cloning an object.\n * (optional - defaults to parent prototype).\n * @param `includeNonEnumerable` - set to true if the non-enumerable properties\n * should be cloned as well. Non-enumerable properties on the prototype\n * chain will be ignored. (optional - false by default)\n*/\nfunction clone(parent, circular, depth, prototype, includeNonEnumerable) {\n if (typeof circular === 'object') {\n depth = circular.depth;\n prototype = circular.prototype;\n includeNonEnumerable = circular.includeNonEnumerable;\n circular = circular.circular;\n }\n // maintain two arrays for circular references, where corresponding parents\n // and children have the same index\n var allParents = [];\n var allChildren = [];\n\n var useBuffer = typeof Buffer != 'undefined';\n\n if (typeof circular == 'undefined')\n circular = true;\n\n if (typeof depth == 'undefined')\n depth = Infinity;\n\n // recurse this function so we don't reset allParents and allChildren\n function _clone(parent, depth) {\n // cloning null always returns null\n if (parent === null)\n return null;\n\n if (depth === 0)\n return parent;\n\n var child;\n var proto;\n if (typeof parent != 'object') {\n return parent;\n }\n\n if (_instanceof(parent, nativeMap)) {\n child = new nativeMap();\n } else if (_instanceof(parent, nativeSet)) {\n child = new nativeSet();\n } else if (_instanceof(parent, nativePromise)) {\n child = new nativePromise(function (resolve, reject) {\n parent.then(function(value) {\n resolve(_clone(value, depth - 1));\n }, function(err) {\n reject(_clone(err, depth - 1));\n });\n });\n } else if (clone.__isArray(parent)) {\n child = [];\n } else if (clone.__isRegExp(parent)) {\n child = new RegExp(parent.source, __getRegExpFlags(parent));\n if (parent.lastIndex) child.lastIndex = parent.lastIndex;\n } else if (clone.__isDate(parent)) {\n child = new Date(parent.getTime());\n } else if (useBuffer && Buffer.isBuffer(parent)) {\n if (Buffer.allocUnsafe) {\n // Node.js >= 4.5.0\n child = Buffer.allocUnsafe(parent.length);\n } else {\n // Older Node.js versions\n child = new Buffer(parent.length);\n }\n parent.copy(child);\n return child;\n } else if (_instanceof(parent, Error)) {\n child = Object.create(parent);\n } else {\n if (typeof prototype == 'undefined') {\n proto = Object.getPrototypeOf(parent);\n child = Object.create(proto);\n }\n else {\n child = Object.create(prototype);\n proto = prototype;\n }\n }\n\n if (circular) {\n var index = allParents.indexOf(parent);\n\n if (index != -1) {\n return allChildren[index];\n }\n allParents.push(parent);\n allChildren.push(child);\n }\n\n if (_instanceof(parent, nativeMap)) {\n parent.forEach(function(value, key) {\n var keyChild = _clone(key, depth - 1);\n var valueChild = _clone(value, depth - 1);\n child.set(keyChild, valueChild);\n });\n }\n if (_instanceof(parent, nativeSet)) {\n parent.forEach(function(value) {\n var entryChild = _clone(value, depth - 1);\n child.add(entryChild);\n });\n }\n\n for (var i in parent) {\n var attrs;\n if (proto) {\n attrs = Object.getOwnPropertyDescriptor(proto, i);\n }\n\n if (attrs && attrs.set == null) {\n continue;\n }\n child[i] = _clone(parent[i], depth - 1);\n }\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(parent);\n for (var i = 0; i < symbols.length; i++) {\n // Don't need to worry about cloning a symbol because it is a primitive,\n // like a number or string.\n var symbol = symbols[i];\n var descriptor = Object.getOwnPropertyDescriptor(parent, symbol);\n if (descriptor && !descriptor.enumerable && !includeNonEnumerable) {\n continue;\n }\n child[symbol] = _clone(parent[symbol], depth - 1);\n if (!descriptor.enumerable) {\n Object.defineProperty(child, symbol, {\n enumerable: false\n });\n }\n }\n }\n\n if (includeNonEnumerable) {\n var allPropertyNames = Object.getOwnPropertyNames(parent);\n for (var i = 0; i < allPropertyNames.length; i++) {\n var propertyName = allPropertyNames[i];\n var descriptor = Object.getOwnPropertyDescriptor(parent, propertyName);\n if (descriptor && descriptor.enumerable) {\n continue;\n }\n child[propertyName] = _clone(parent[propertyName], depth - 1);\n Object.defineProperty(child, propertyName, {\n enumerable: false\n });\n }\n }\n\n return child;\n }\n\n return _clone(parent, depth);\n}\n\n/**\n * Simple flat clone using prototype, accepts only objects, usefull for property\n * override on FLAT configuration object (no nested props).\n *\n * USE WITH CAUTION! This may not behave as you wish if you do not know how this\n * works.\n */\nclone.clonePrototype = function clonePrototype(parent) {\n if (parent === null)\n return null;\n\n var c = function () {};\n c.prototype = parent;\n return new c();\n};\n\n// private utility functions\n\nfunction __objToStr(o) {\n return Object.prototype.toString.call(o);\n}\nclone.__objToStr = __objToStr;\n\nfunction __isDate(o) {\n return typeof o === 'object' && __objToStr(o) === '[object Date]';\n}\nclone.__isDate = __isDate;\n\nfunction __isArray(o) {\n return typeof o === 'object' && __objToStr(o) === '[object Array]';\n}\nclone.__isArray = __isArray;\n\nfunction __isRegExp(o) {\n return typeof o === 'object' && __objToStr(o) === '[object RegExp]';\n}\nclone.__isRegExp = __isRegExp;\n\nfunction __getRegExpFlags(re) {\n var flags = '';\n if (re.global) flags += 'g';\n if (re.ignoreCase) flags += 'i';\n if (re.multiline) flags += 'm';\n return flags;\n}\nclone.__getRegExpFlags = __getRegExpFlags;\n\nreturn clone;\n})();\n\nif (typeof module === 'object' && module.exports) {\n module.exports = clone;\n}\n\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _emitter = __webpack_require__(8);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nvar _break = __webpack_require__(16);\n\nvar _break2 = _interopRequireDefault(_break);\n\nvar _code = __webpack_require__(13);\n\nvar _code2 = _interopRequireDefault(_code);\n\nvar _container = __webpack_require__(25);\n\nvar _container2 = _interopRequireDefault(_container);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction isLine(blot) {\n return blot instanceof _block2.default || blot instanceof _block.BlockEmbed;\n}\n\nvar Scroll = function (_Parchment$Scroll) {\n _inherits(Scroll, _Parchment$Scroll);\n\n function Scroll(domNode, config) {\n _classCallCheck(this, Scroll);\n\n var _this = _possibleConstructorReturn(this, (Scroll.__proto__ || Object.getPrototypeOf(Scroll)).call(this, domNode));\n\n _this.emitter = config.emitter;\n if (Array.isArray(config.whitelist)) {\n _this.whitelist = config.whitelist.reduce(function (whitelist, format) {\n whitelist[format] = true;\n return whitelist;\n }, {});\n }\n // Some reason fixes composition issues with character languages in Windows/Chrome, Safari\n _this.domNode.addEventListener('DOMNodeInserted', function () {});\n _this.optimize();\n _this.enable();\n return _this;\n }\n\n _createClass(Scroll, [{\n key: 'batchStart',\n value: function batchStart() {\n this.batch = true;\n }\n }, {\n key: 'batchEnd',\n value: function batchEnd() {\n this.batch = false;\n this.optimize();\n }\n }, {\n key: 'deleteAt',\n value: function deleteAt(index, length) {\n var _line = this.line(index),\n _line2 = _slicedToArray(_line, 2),\n first = _line2[0],\n offset = _line2[1];\n\n var _line3 = this.line(index + length),\n _line4 = _slicedToArray(_line3, 1),\n last = _line4[0];\n\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'deleteAt', this).call(this, index, length);\n if (last != null && first !== last && offset > 0) {\n if (first instanceof _block.BlockEmbed || last instanceof _block.BlockEmbed) {\n this.optimize();\n return;\n }\n if (first instanceof _code2.default) {\n var newlineIndex = first.newlineIndex(first.length(), true);\n if (newlineIndex > -1) {\n first = first.split(newlineIndex + 1);\n if (first === last) {\n this.optimize();\n return;\n }\n }\n } else if (last instanceof _code2.default) {\n var _newlineIndex = last.newlineIndex(0);\n if (_newlineIndex > -1) {\n last.split(_newlineIndex + 1);\n }\n }\n var ref = last.children.head instanceof _break2.default ? null : last.children.head;\n first.moveChildren(last, ref);\n first.remove();\n }\n this.optimize();\n }\n }, {\n key: 'enable',\n value: function enable() {\n var enabled = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n\n this.domNode.setAttribute('contenteditable', enabled);\n }\n }, {\n key: 'formatAt',\n value: function formatAt(index, length, format, value) {\n if (this.whitelist != null && !this.whitelist[format]) return;\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'formatAt', this).call(this, index, length, format, value);\n this.optimize();\n }\n }, {\n key: 'insertAt',\n value: function insertAt(index, value, def) {\n if (def != null && this.whitelist != null && !this.whitelist[value]) return;\n if (index >= this.length()) {\n if (def == null || _parchment2.default.query(value, _parchment2.default.Scope.BLOCK) == null) {\n var blot = _parchment2.default.create(this.statics.defaultChild);\n this.appendChild(blot);\n if (def == null && value.endsWith('\\n')) {\n value = value.slice(0, -1);\n }\n blot.insertAt(0, value, def);\n } else {\n var embed = _parchment2.default.create(value, def);\n this.appendChild(embed);\n }\n } else {\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'insertAt', this).call(this, index, value, def);\n }\n this.optimize();\n }\n }, {\n key: 'insertBefore',\n value: function insertBefore(blot, ref) {\n if (blot.statics.scope === _parchment2.default.Scope.INLINE_BLOT) {\n var wrapper = _parchment2.default.create(this.statics.defaultChild);\n wrapper.appendChild(blot);\n blot = wrapper;\n }\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'insertBefore', this).call(this, blot, ref);\n }\n }, {\n key: 'leaf',\n value: function leaf(index) {\n return this.path(index).pop() || [null, -1];\n }\n }, {\n key: 'line',\n value: function line(index) {\n if (index === this.length()) {\n return this.line(index - 1);\n }\n return this.descendant(isLine, index);\n }\n }, {\n key: 'lines',\n value: function lines() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Number.MAX_VALUE;\n\n var getLines = function getLines(blot, index, length) {\n var lines = [],\n lengthLeft = length;\n blot.children.forEachAt(index, length, function (child, index, length) {\n if (isLine(child)) {\n lines.push(child);\n } else if (child instanceof _parchment2.default.Container) {\n lines = lines.concat(getLines(child, index, lengthLeft));\n }\n lengthLeft -= length;\n });\n return lines;\n };\n return getLines(this, index, length);\n }\n }, {\n key: 'optimize',\n value: function optimize() {\n var mutations = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (this.batch === true) return;\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'optimize', this).call(this, mutations, context);\n if (mutations.length > 0) {\n this.emitter.emit(_emitter2.default.events.SCROLL_OPTIMIZE, mutations, context);\n }\n }\n }, {\n key: 'path',\n value: function path(index) {\n return _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'path', this).call(this, index).slice(1); // Exclude self\n }\n }, {\n key: 'update',\n value: function update(mutations) {\n if (this.batch === true) return;\n var source = _emitter2.default.sources.USER;\n if (typeof mutations === 'string') {\n source = mutations;\n }\n if (!Array.isArray(mutations)) {\n mutations = this.observer.takeRecords();\n }\n if (mutations.length > 0) {\n this.emitter.emit(_emitter2.default.events.SCROLL_BEFORE_UPDATE, source, mutations);\n }\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'update', this).call(this, mutations.concat([])); // pass copy\n if (mutations.length > 0) {\n this.emitter.emit(_emitter2.default.events.SCROLL_UPDATE, source, mutations);\n }\n }\n }]);\n\n return Scroll;\n}(_parchment2.default.Scroll);\n\nScroll.blotName = 'scroll';\nScroll.className = 'ql-editor';\nScroll.tagName = 'DIV';\nScroll.defaultChild = 'block';\nScroll.allowedChildren = [_block2.default, _block.BlockEmbed, _container2.default];\n\nexports.default = Scroll;\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SHORTKEY = exports.default = undefined;\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\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _clone = __webpack_require__(21);\n\nvar _clone2 = _interopRequireDefault(_clone);\n\nvar _deepEqual = __webpack_require__(11);\n\nvar _deepEqual2 = _interopRequireDefault(_deepEqual);\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _op = __webpack_require__(20);\n\nvar _op2 = _interopRequireDefault(_op);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar debug = (0, _logger2.default)('quill:keyboard');\n\nvar SHORTKEY = /Mac/i.test(navigator.platform) ? 'metaKey' : 'ctrlKey';\n\nvar Keyboard = function (_Module) {\n _inherits(Keyboard, _Module);\n\n _createClass(Keyboard, null, [{\n key: 'match',\n value: function match(evt, binding) {\n binding = normalize(binding);\n if (['altKey', 'ctrlKey', 'metaKey', 'shiftKey'].some(function (key) {\n return !!binding[key] !== evt[key] && binding[key] !== null;\n })) {\n return false;\n }\n return binding.key === (evt.which || evt.keyCode);\n }\n }]);\n\n function Keyboard(quill, options) {\n _classCallCheck(this, Keyboard);\n\n var _this = _possibleConstructorReturn(this, (Keyboard.__proto__ || Object.getPrototypeOf(Keyboard)).call(this, quill, options));\n\n _this.bindings = {};\n Object.keys(_this.options.bindings).forEach(function (name) {\n if (name === 'list autofill' && quill.scroll.whitelist != null && !quill.scroll.whitelist['list']) {\n return;\n }\n if (_this.options.bindings[name]) {\n _this.addBinding(_this.options.bindings[name]);\n }\n });\n _this.addBinding({ key: Keyboard.keys.ENTER, shiftKey: null }, handleEnter);\n _this.addBinding({ key: Keyboard.keys.ENTER, metaKey: null, ctrlKey: null, altKey: null }, function () {});\n if (/Firefox/i.test(navigator.userAgent)) {\n // Need to handle delete and backspace for Firefox in the general case #1171\n _this.addBinding({ key: Keyboard.keys.BACKSPACE }, { collapsed: true }, handleBackspace);\n _this.addBinding({ key: Keyboard.keys.DELETE }, { collapsed: true }, handleDelete);\n } else {\n _this.addBinding({ key: Keyboard.keys.BACKSPACE }, { collapsed: true, prefix: /^.?$/ }, handleBackspace);\n _this.addBinding({ key: Keyboard.keys.DELETE }, { collapsed: true, suffix: /^.?$/ }, handleDelete);\n }\n _this.addBinding({ key: Keyboard.keys.BACKSPACE }, { collapsed: false }, handleDeleteRange);\n _this.addBinding({ key: Keyboard.keys.DELETE }, { collapsed: false }, handleDeleteRange);\n _this.addBinding({ key: Keyboard.keys.BACKSPACE, altKey: null, ctrlKey: null, metaKey: null, shiftKey: null }, { collapsed: true, offset: 0 }, handleBackspace);\n _this.listen();\n return _this;\n }\n\n _createClass(Keyboard, [{\n key: 'addBinding',\n value: function addBinding(key) {\n var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var handler = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n var binding = normalize(key);\n if (binding == null || binding.key == null) {\n return debug.warn('Attempted to add invalid keyboard binding', binding);\n }\n if (typeof context === 'function') {\n context = { handler: context };\n }\n if (typeof handler === 'function') {\n handler = { handler: handler };\n }\n binding = (0, _extend2.default)(binding, context, handler);\n this.bindings[binding.key] = this.bindings[binding.key] || [];\n this.bindings[binding.key].push(binding);\n }\n }, {\n key: 'listen',\n value: function listen() {\n var _this2 = this;\n\n this.quill.root.addEventListener('keydown', function (evt) {\n if (evt.defaultPrevented) return;\n var which = evt.which || evt.keyCode;\n var bindings = (_this2.bindings[which] || []).filter(function (binding) {\n return Keyboard.match(evt, binding);\n });\n if (bindings.length === 0) return;\n var range = _this2.quill.getSelection();\n if (range == null || !_this2.quill.hasFocus()) return;\n\n var _quill$getLine = _this2.quill.getLine(range.index),\n _quill$getLine2 = _slicedToArray(_quill$getLine, 2),\n line = _quill$getLine2[0],\n offset = _quill$getLine2[1];\n\n var _quill$getLeaf = _this2.quill.getLeaf(range.index),\n _quill$getLeaf2 = _slicedToArray(_quill$getLeaf, 2),\n leafStart = _quill$getLeaf2[0],\n offsetStart = _quill$getLeaf2[1];\n\n var _ref = range.length === 0 ? [leafStart, offsetStart] : _this2.quill.getLeaf(range.index + range.length),\n _ref2 = _slicedToArray(_ref, 2),\n leafEnd = _ref2[0],\n offsetEnd = _ref2[1];\n\n var prefixText = leafStart instanceof _parchment2.default.Text ? leafStart.value().slice(0, offsetStart) : '';\n var suffixText = leafEnd instanceof _parchment2.default.Text ? leafEnd.value().slice(offsetEnd) : '';\n var curContext = {\n collapsed: range.length === 0,\n empty: range.length === 0 && line.length() <= 1,\n format: _this2.quill.getFormat(range),\n offset: offset,\n prefix: prefixText,\n suffix: suffixText\n };\n var prevented = bindings.some(function (binding) {\n if (binding.collapsed != null && binding.collapsed !== curContext.collapsed) return false;\n if (binding.empty != null && binding.empty !== curContext.empty) return false;\n if (binding.offset != null && binding.offset !== curContext.offset) return false;\n if (Array.isArray(binding.format)) {\n // any format is present\n if (binding.format.every(function (name) {\n return curContext.format[name] == null;\n })) {\n return false;\n }\n } else if (_typeof(binding.format) === 'object') {\n // all formats must match\n if (!Object.keys(binding.format).every(function (name) {\n if (binding.format[name] === true) return curContext.format[name] != null;\n if (binding.format[name] === false) return curContext.format[name] == null;\n return (0, _deepEqual2.default)(binding.format[name], curContext.format[name]);\n })) {\n return false;\n }\n }\n if (binding.prefix != null && !binding.prefix.test(curContext.prefix)) return false;\n if (binding.suffix != null && !binding.suffix.test(curContext.suffix)) return false;\n return binding.handler.call(_this2, range, curContext) !== true;\n });\n if (prevented) {\n evt.preventDefault();\n }\n });\n }\n }]);\n\n return Keyboard;\n}(_module2.default);\n\nKeyboard.keys = {\n BACKSPACE: 8,\n TAB: 9,\n ENTER: 13,\n ESCAPE: 27,\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40,\n DELETE: 46\n};\n\nKeyboard.DEFAULTS = {\n bindings: {\n 'bold': makeFormatHandler('bold'),\n 'italic': makeFormatHandler('italic'),\n 'underline': makeFormatHandler('underline'),\n 'indent': {\n // highlight tab or tab at beginning of list, indent or blockquote\n key: Keyboard.keys.TAB,\n format: ['blockquote', 'indent', 'list'],\n handler: function handler(range, context) {\n if (context.collapsed && context.offset !== 0) return true;\n this.quill.format('indent', '+1', _quill2.default.sources.USER);\n }\n },\n 'outdent': {\n key: Keyboard.keys.TAB,\n shiftKey: true,\n format: ['blockquote', 'indent', 'list'],\n // highlight tab or tab at beginning of list, indent or blockquote\n handler: function handler(range, context) {\n if (context.collapsed && context.offset !== 0) return true;\n this.quill.format('indent', '-1', _quill2.default.sources.USER);\n }\n },\n 'outdent backspace': {\n key: Keyboard.keys.BACKSPACE,\n collapsed: true,\n shiftKey: null,\n metaKey: null,\n ctrlKey: null,\n altKey: null,\n format: ['indent', 'list'],\n offset: 0,\n handler: function handler(range, context) {\n if (context.format.indent != null) {\n this.quill.format('indent', '-1', _quill2.default.sources.USER);\n } else if (context.format.list != null) {\n this.quill.format('list', false, _quill2.default.sources.USER);\n }\n }\n },\n 'indent code-block': makeCodeBlockHandler(true),\n 'outdent code-block': makeCodeBlockHandler(false),\n 'remove tab': {\n key: Keyboard.keys.TAB,\n shiftKey: true,\n collapsed: true,\n prefix: /\\t$/,\n handler: function handler(range) {\n this.quill.deleteText(range.index - 1, 1, _quill2.default.sources.USER);\n }\n },\n 'tab': {\n key: Keyboard.keys.TAB,\n handler: function handler(range) {\n this.quill.history.cutoff();\n var delta = new _quillDelta2.default().retain(range.index).delete(range.length).insert('\\t');\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n this.quill.history.cutoff();\n this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT);\n }\n },\n 'list empty enter': {\n key: Keyboard.keys.ENTER,\n collapsed: true,\n format: ['list'],\n empty: true,\n handler: function handler(range, context) {\n this.quill.format('list', false, _quill2.default.sources.USER);\n if (context.format.indent) {\n this.quill.format('indent', false, _quill2.default.sources.USER);\n }\n }\n },\n 'checklist enter': {\n key: Keyboard.keys.ENTER,\n collapsed: true,\n format: { list: 'checked' },\n handler: function handler(range) {\n var _quill$getLine3 = this.quill.getLine(range.index),\n _quill$getLine4 = _slicedToArray(_quill$getLine3, 2),\n line = _quill$getLine4[0],\n offset = _quill$getLine4[1];\n\n var formats = (0, _extend2.default)({}, line.formats(), { list: 'checked' });\n var delta = new _quillDelta2.default().retain(range.index).insert('\\n', formats).retain(line.length() - offset - 1).retain(1, { list: 'unchecked' });\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT);\n this.quill.scrollIntoView();\n }\n },\n 'header enter': {\n key: Keyboard.keys.ENTER,\n collapsed: true,\n format: ['header'],\n suffix: /^$/,\n handler: function handler(range, context) {\n var _quill$getLine5 = this.quill.getLine(range.index),\n _quill$getLine6 = _slicedToArray(_quill$getLine5, 2),\n line = _quill$getLine6[0],\n offset = _quill$getLine6[1];\n\n var delta = new _quillDelta2.default().retain(range.index).insert('\\n', context.format).retain(line.length() - offset - 1).retain(1, { header: null });\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT);\n this.quill.scrollIntoView();\n }\n },\n 'list autofill': {\n key: ' ',\n collapsed: true,\n format: { list: false },\n prefix: /^\\s*?(\\d+\\.|-|\\*|\\[ ?\\]|\\[x\\])$/,\n handler: function handler(range, context) {\n var length = context.prefix.length;\n\n var _quill$getLine7 = this.quill.getLine(range.index),\n _quill$getLine8 = _slicedToArray(_quill$getLine7, 2),\n line = _quill$getLine8[0],\n offset = _quill$getLine8[1];\n\n if (offset > length) return true;\n var value = void 0;\n switch (context.prefix.trim()) {\n case '[]':case '[ ]':\n value = 'unchecked';\n break;\n case '[x]':\n value = 'checked';\n break;\n case '-':case '*':\n value = 'bullet';\n break;\n default:\n value = 'ordered';\n }\n this.quill.insertText(range.index, ' ', _quill2.default.sources.USER);\n this.quill.history.cutoff();\n var delta = new _quillDelta2.default().retain(range.index - offset).delete(length + 1).retain(line.length() - 2 - offset).retain(1, { list: value });\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n this.quill.history.cutoff();\n this.quill.setSelection(range.index - length, _quill2.default.sources.SILENT);\n }\n },\n 'code exit': {\n key: Keyboard.keys.ENTER,\n collapsed: true,\n format: ['code-block'],\n prefix: /\\n\\n$/,\n suffix: /^\\s+$/,\n handler: function handler(range) {\n var _quill$getLine9 = this.quill.getLine(range.index),\n _quill$getLine10 = _slicedToArray(_quill$getLine9, 2),\n line = _quill$getLine10[0],\n offset = _quill$getLine10[1];\n\n var delta = new _quillDelta2.default().retain(range.index + line.length() - offset - 2).retain(1, { 'code-block': null }).delete(1);\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n }\n },\n 'embed left': makeEmbedArrowHandler(Keyboard.keys.LEFT, false),\n 'embed left shift': makeEmbedArrowHandler(Keyboard.keys.LEFT, true),\n 'embed right': makeEmbedArrowHandler(Keyboard.keys.RIGHT, false),\n 'embed right shift': makeEmbedArrowHandler(Keyboard.keys.RIGHT, true)\n }\n};\n\nfunction makeEmbedArrowHandler(key, shiftKey) {\n var _ref3;\n\n var where = key === Keyboard.keys.LEFT ? 'prefix' : 'suffix';\n return _ref3 = {\n key: key,\n shiftKey: shiftKey,\n altKey: null\n }, _defineProperty(_ref3, where, /^$/), _defineProperty(_ref3, 'handler', function handler(range) {\n var index = range.index;\n if (key === Keyboard.keys.RIGHT) {\n index += range.length + 1;\n }\n\n var _quill$getLeaf3 = this.quill.getLeaf(index),\n _quill$getLeaf4 = _slicedToArray(_quill$getLeaf3, 1),\n leaf = _quill$getLeaf4[0];\n\n if (!(leaf instanceof _parchment2.default.Embed)) return true;\n if (key === Keyboard.keys.LEFT) {\n if (shiftKey) {\n this.quill.setSelection(range.index - 1, range.length + 1, _quill2.default.sources.USER);\n } else {\n this.quill.setSelection(range.index - 1, _quill2.default.sources.USER);\n }\n } else {\n if (shiftKey) {\n this.quill.setSelection(range.index, range.length + 1, _quill2.default.sources.USER);\n } else {\n this.quill.setSelection(range.index + range.length + 1, _quill2.default.sources.USER);\n }\n }\n return false;\n }), _ref3;\n}\n\nfunction handleBackspace(range, context) {\n if (range.index === 0 || this.quill.getLength() <= 1) return;\n\n var _quill$getLine11 = this.quill.getLine(range.index),\n _quill$getLine12 = _slicedToArray(_quill$getLine11, 1),\n line = _quill$getLine12[0];\n\n var formats = {};\n if (context.offset === 0) {\n var _quill$getLine13 = this.quill.getLine(range.index - 1),\n _quill$getLine14 = _slicedToArray(_quill$getLine13, 1),\n prev = _quill$getLine14[0];\n\n if (prev != null && prev.length() > 1) {\n var curFormats = line.formats();\n var prevFormats = this.quill.getFormat(range.index - 1, 1);\n formats = _op2.default.attributes.diff(curFormats, prevFormats) || {};\n }\n }\n // Check for astral symbols\n var length = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]$/.test(context.prefix) ? 2 : 1;\n this.quill.deleteText(range.index - length, length, _quill2.default.sources.USER);\n if (Object.keys(formats).length > 0) {\n this.quill.formatLine(range.index - length, length, formats, _quill2.default.sources.USER);\n }\n this.quill.focus();\n}\n\nfunction handleDelete(range, context) {\n // Check for astral symbols\n var length = /^[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/.test(context.suffix) ? 2 : 1;\n if (range.index >= this.quill.getLength() - length) return;\n var formats = {},\n nextLength = 0;\n\n var _quill$getLine15 = this.quill.getLine(range.index),\n _quill$getLine16 = _slicedToArray(_quill$getLine15, 1),\n line = _quill$getLine16[0];\n\n if (context.offset >= line.length() - 1) {\n var _quill$getLine17 = this.quill.getLine(range.index + 1),\n _quill$getLine18 = _slicedToArray(_quill$getLine17, 1),\n next = _quill$getLine18[0];\n\n if (next) {\n var curFormats = line.formats();\n var nextFormats = this.quill.getFormat(range.index, 1);\n formats = _op2.default.attributes.diff(curFormats, nextFormats) || {};\n nextLength = next.length();\n }\n }\n this.quill.deleteText(range.index, length, _quill2.default.sources.USER);\n if (Object.keys(formats).length > 0) {\n this.quill.formatLine(range.index + nextLength - 1, length, formats, _quill2.default.sources.USER);\n }\n}\n\nfunction handleDeleteRange(range) {\n var lines = this.quill.getLines(range);\n var formats = {};\n if (lines.length > 1) {\n var firstFormats = lines[0].formats();\n var lastFormats = lines[lines.length - 1].formats();\n formats = _op2.default.attributes.diff(lastFormats, firstFormats) || {};\n }\n this.quill.deleteText(range, _quill2.default.sources.USER);\n if (Object.keys(formats).length > 0) {\n this.quill.formatLine(range.index, 1, formats, _quill2.default.sources.USER);\n }\n this.quill.setSelection(range.index, _quill2.default.sources.SILENT);\n this.quill.focus();\n}\n\nfunction handleEnter(range, context) {\n var _this3 = this;\n\n if (range.length > 0) {\n this.quill.scroll.deleteAt(range.index, range.length); // So we do not trigger text-change\n }\n var lineFormats = Object.keys(context.format).reduce(function (lineFormats, format) {\n if (_parchment2.default.query(format, _parchment2.default.Scope.BLOCK) && !Array.isArray(context.format[format])) {\n lineFormats[format] = context.format[format];\n }\n return lineFormats;\n }, {});\n this.quill.insertText(range.index, '\\n', lineFormats, _quill2.default.sources.USER);\n // Earlier scroll.deleteAt might have messed up our selection,\n // so insertText's built in selection preservation is not reliable\n this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT);\n this.quill.focus();\n Object.keys(context.format).forEach(function (name) {\n if (lineFormats[name] != null) return;\n if (Array.isArray(context.format[name])) return;\n if (name === 'link') return;\n _this3.quill.format(name, context.format[name], _quill2.default.sources.USER);\n });\n}\n\nfunction makeCodeBlockHandler(indent) {\n return {\n key: Keyboard.keys.TAB,\n shiftKey: !indent,\n format: { 'code-block': true },\n handler: function handler(range) {\n var CodeBlock = _parchment2.default.query('code-block');\n var index = range.index,\n length = range.length;\n\n var _quill$scroll$descend = this.quill.scroll.descendant(CodeBlock, index),\n _quill$scroll$descend2 = _slicedToArray(_quill$scroll$descend, 2),\n block = _quill$scroll$descend2[0],\n offset = _quill$scroll$descend2[1];\n\n if (block == null) return;\n var scrollIndex = this.quill.getIndex(block);\n var start = block.newlineIndex(offset, true) + 1;\n var end = block.newlineIndex(scrollIndex + offset + length);\n var lines = block.domNode.textContent.slice(start, end).split('\\n');\n offset = 0;\n lines.forEach(function (line, i) {\n if (indent) {\n block.insertAt(start + offset, CodeBlock.TAB);\n offset += CodeBlock.TAB.length;\n if (i === 0) {\n index += CodeBlock.TAB.length;\n } else {\n length += CodeBlock.TAB.length;\n }\n } else if (line.startsWith(CodeBlock.TAB)) {\n block.deleteAt(start + offset, CodeBlock.TAB.length);\n offset -= CodeBlock.TAB.length;\n if (i === 0) {\n index -= CodeBlock.TAB.length;\n } else {\n length -= CodeBlock.TAB.length;\n }\n }\n offset += line.length + 1;\n });\n this.quill.update(_quill2.default.sources.USER);\n this.quill.setSelection(index, length, _quill2.default.sources.SILENT);\n }\n };\n}\n\nfunction makeFormatHandler(format) {\n return {\n key: format[0].toUpperCase(),\n shortKey: true,\n handler: function handler(range, context) {\n this.quill.format(format, !context.format[format], _quill2.default.sources.USER);\n }\n };\n}\n\nfunction normalize(binding) {\n if (typeof binding === 'string' || typeof binding === 'number') {\n return normalize({ key: binding });\n }\n if ((typeof binding === 'undefined' ? 'undefined' : _typeof(binding)) === 'object') {\n binding = (0, _clone2.default)(binding, false);\n }\n if (typeof binding.key === 'string') {\n if (Keyboard.keys[binding.key.toUpperCase()] != null) {\n binding.key = Keyboard.keys[binding.key.toUpperCase()];\n } else if (binding.key.length === 1) {\n binding.key = binding.key.toUpperCase().charCodeAt(0);\n } else {\n return null;\n }\n }\n if (binding.shortKey) {\n binding[SHORTKEY] = binding.shortKey;\n delete binding.shortKey;\n }\n return binding;\n}\n\nexports.default = Keyboard;\nexports.SHORTKEY = SHORTKEY;\n\n/***/ }),\n/* 24 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Cursor = function (_Parchment$Embed) {\n _inherits(Cursor, _Parchment$Embed);\n\n _createClass(Cursor, null, [{\n key: 'value',\n value: function value() {\n return undefined;\n }\n }]);\n\n function Cursor(domNode, selection) {\n _classCallCheck(this, Cursor);\n\n var _this = _possibleConstructorReturn(this, (Cursor.__proto__ || Object.getPrototypeOf(Cursor)).call(this, domNode));\n\n _this.selection = selection;\n _this.textNode = document.createTextNode(Cursor.CONTENTS);\n _this.domNode.appendChild(_this.textNode);\n _this._length = 0;\n return _this;\n }\n\n _createClass(Cursor, [{\n key: 'detach',\n value: function detach() {\n // super.detach() will also clear domNode.__blot\n if (this.parent != null) this.parent.removeChild(this);\n }\n }, {\n key: 'format',\n value: function format(name, value) {\n if (this._length !== 0) {\n return _get(Cursor.prototype.__proto__ || Object.getPrototypeOf(Cursor.prototype), 'format', this).call(this, name, value);\n }\n var target = this,\n index = 0;\n while (target != null && target.statics.scope !== _parchment2.default.Scope.BLOCK_BLOT) {\n index += target.offset(target.parent);\n target = target.parent;\n }\n if (target != null) {\n this._length = Cursor.CONTENTS.length;\n target.optimize();\n target.formatAt(index, Cursor.CONTENTS.length, name, value);\n this._length = 0;\n }\n }\n }, {\n key: 'index',\n value: function index(node, offset) {\n if (node === this.textNode) return 0;\n return _get(Cursor.prototype.__proto__ || Object.getPrototypeOf(Cursor.prototype), 'index', this).call(this, node, offset);\n }\n }, {\n key: 'length',\n value: function length() {\n return this._length;\n }\n }, {\n key: 'position',\n value: function position() {\n return [this.textNode, this.textNode.data.length];\n }\n }, {\n key: 'remove',\n value: function remove() {\n _get(Cursor.prototype.__proto__ || Object.getPrototypeOf(Cursor.prototype), 'remove', this).call(this);\n this.parent = null;\n }\n }, {\n key: 'restore',\n value: function restore() {\n if (this.selection.composing || this.parent == null) return;\n var textNode = this.textNode;\n var range = this.selection.getNativeRange();\n var restoreText = void 0,\n start = void 0,\n end = void 0;\n if (range != null && range.start.node === textNode && range.end.node === textNode) {\n var _ref = [textNode, range.start.offset, range.end.offset];\n restoreText = _ref[0];\n start = _ref[1];\n end = _ref[2];\n }\n // Link format will insert text outside of anchor tag\n while (this.domNode.lastChild != null && this.domNode.lastChild !== this.textNode) {\n this.domNode.parentNode.insertBefore(this.domNode.lastChild, this.domNode);\n }\n if (this.textNode.data !== Cursor.CONTENTS) {\n var text = this.textNode.data.split(Cursor.CONTENTS).join('');\n if (this.next instanceof _text2.default) {\n restoreText = this.next.domNode;\n this.next.insertAt(0, text);\n this.textNode.data = Cursor.CONTENTS;\n } else {\n this.textNode.data = text;\n this.parent.insertBefore(_parchment2.default.create(this.textNode), this);\n this.textNode = document.createTextNode(Cursor.CONTENTS);\n this.domNode.appendChild(this.textNode);\n }\n }\n this.remove();\n if (start != null) {\n var _map = [start, end].map(function (offset) {\n return Math.max(0, Math.min(restoreText.data.length, offset - 1));\n });\n\n var _map2 = _slicedToArray(_map, 2);\n\n start = _map2[0];\n end = _map2[1];\n\n return {\n startNode: restoreText,\n startOffset: start,\n endNode: restoreText,\n endOffset: end\n };\n }\n }\n }, {\n key: 'update',\n value: function update(mutations, context) {\n var _this2 = this;\n\n if (mutations.some(function (mutation) {\n return mutation.type === 'characterData' && mutation.target === _this2.textNode;\n })) {\n var range = this.restore();\n if (range) context.range = range;\n }\n }\n }, {\n key: 'value',\n value: function value() {\n return '';\n }\n }]);\n\n return Cursor;\n}(_parchment2.default.Embed);\n\nCursor.blotName = 'cursor';\nCursor.className = 'ql-cursor';\nCursor.tagName = 'span';\nCursor.CONTENTS = '\\uFEFF'; // Zero width no break space\n\n\nexports.default = Cursor;\n\n/***/ }),\n/* 25 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Container = function (_Parchment$Container) {\n _inherits(Container, _Parchment$Container);\n\n function Container() {\n _classCallCheck(this, Container);\n\n return _possibleConstructorReturn(this, (Container.__proto__ || Object.getPrototypeOf(Container)).apply(this, arguments));\n }\n\n return Container;\n}(_parchment2.default.Container);\n\nContainer.allowedChildren = [_block2.default, _block.BlockEmbed, Container];\n\nexports.default = Container;\n\n/***/ }),\n/* 26 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ColorStyle = exports.ColorClass = exports.ColorAttributor = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ColorAttributor = function (_Parchment$Attributor) {\n _inherits(ColorAttributor, _Parchment$Attributor);\n\n function ColorAttributor() {\n _classCallCheck(this, ColorAttributor);\n\n return _possibleConstructorReturn(this, (ColorAttributor.__proto__ || Object.getPrototypeOf(ColorAttributor)).apply(this, arguments));\n }\n\n _createClass(ColorAttributor, [{\n key: 'value',\n value: function value(domNode) {\n var value = _get(ColorAttributor.prototype.__proto__ || Object.getPrototypeOf(ColorAttributor.prototype), 'value', this).call(this, domNode);\n if (!value.startsWith('rgb(')) return value;\n value = value.replace(/^[^\\d]+/, '').replace(/[^\\d]+$/, '');\n return '#' + value.split(',').map(function (component) {\n return ('00' + parseInt(component).toString(16)).slice(-2);\n }).join('');\n }\n }]);\n\n return ColorAttributor;\n}(_parchment2.default.Attributor.Style);\n\nvar ColorClass = new _parchment2.default.Attributor.Class('color', 'ql-color', {\n scope: _parchment2.default.Scope.INLINE\n});\nvar ColorStyle = new ColorAttributor('color', 'color', {\n scope: _parchment2.default.Scope.INLINE\n});\n\nexports.ColorAttributor = ColorAttributor;\nexports.ColorClass = ColorClass;\nexports.ColorStyle = ColorStyle;\n\n/***/ }),\n/* 27 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.sanitize = exports.default = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Link = function (_Inline) {\n _inherits(Link, _Inline);\n\n function Link() {\n _classCallCheck(this, Link);\n\n return _possibleConstructorReturn(this, (Link.__proto__ || Object.getPrototypeOf(Link)).apply(this, arguments));\n }\n\n _createClass(Link, [{\n key: 'format',\n value: function format(name, value) {\n if (name !== this.statics.blotName || !value) return _get(Link.prototype.__proto__ || Object.getPrototypeOf(Link.prototype), 'format', this).call(this, name, value);\n value = this.constructor.sanitize(value);\n this.domNode.setAttribute('href', value);\n }\n }], [{\n key: 'create',\n value: function create(value) {\n var node = _get(Link.__proto__ || Object.getPrototypeOf(Link), 'create', this).call(this, value);\n value = this.sanitize(value);\n node.setAttribute('href', value);\n node.setAttribute('rel', 'noopener noreferrer');\n node.setAttribute('target', '_blank');\n return node;\n }\n }, {\n key: 'formats',\n value: function formats(domNode) {\n return domNode.getAttribute('href');\n }\n }, {\n key: 'sanitize',\n value: function sanitize(url) {\n return _sanitize(url, this.PROTOCOL_WHITELIST) ? url : this.SANITIZED_URL;\n }\n }]);\n\n return Link;\n}(_inline2.default);\n\nLink.blotName = 'link';\nLink.tagName = 'A';\nLink.SANITIZED_URL = 'about:blank';\nLink.PROTOCOL_WHITELIST = ['http', 'https', 'mailto', 'tel'];\n\nfunction _sanitize(url, protocols) {\n var anchor = document.createElement('a');\n anchor.href = url;\n var protocol = anchor.href.slice(0, anchor.href.indexOf(':'));\n return protocols.indexOf(protocol) > -1;\n}\n\nexports.default = Link;\nexports.sanitize = _sanitize;\n\n/***/ }),\n/* 28 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\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\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _keyboard = __webpack_require__(23);\n\nvar _keyboard2 = _interopRequireDefault(_keyboard);\n\nvar _dropdown = __webpack_require__(107);\n\nvar _dropdown2 = _interopRequireDefault(_dropdown);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar optionsCounter = 0;\n\nfunction toggleAriaAttribute(element, attribute) {\n element.setAttribute(attribute, !(element.getAttribute(attribute) === 'true'));\n}\n\nvar Picker = function () {\n function Picker(select) {\n var _this = this;\n\n _classCallCheck(this, Picker);\n\n this.select = select;\n this.container = document.createElement('span');\n this.buildPicker();\n this.select.style.display = 'none';\n this.select.parentNode.insertBefore(this.container, this.select);\n\n this.label.addEventListener('mousedown', function () {\n _this.togglePicker();\n });\n this.label.addEventListener('keydown', function (event) {\n switch (event.keyCode) {\n // Allows the \"Enter\" key to open the picker\n case _keyboard2.default.keys.ENTER:\n _this.togglePicker();\n break;\n\n // Allows the \"Escape\" key to close the picker\n case _keyboard2.default.keys.ESCAPE:\n _this.escape();\n event.preventDefault();\n break;\n default:\n }\n });\n this.select.addEventListener('change', this.update.bind(this));\n }\n\n _createClass(Picker, [{\n key: 'togglePicker',\n value: function togglePicker() {\n this.container.classList.toggle('ql-expanded');\n // Toggle aria-expanded and aria-hidden to make the picker accessible\n toggleAriaAttribute(this.label, 'aria-expanded');\n toggleAriaAttribute(this.options, 'aria-hidden');\n }\n }, {\n key: 'buildItem',\n value: function buildItem(option) {\n var _this2 = this;\n\n var item = document.createElement('span');\n item.tabIndex = '0';\n item.setAttribute('role', 'button');\n\n item.classList.add('ql-picker-item');\n if (option.hasAttribute('value')) {\n item.setAttribute('data-value', option.getAttribute('value'));\n }\n if (option.textContent) {\n item.setAttribute('data-label', option.textContent);\n }\n item.addEventListener('click', function () {\n _this2.selectItem(item, true);\n });\n item.addEventListener('keydown', function (event) {\n switch (event.keyCode) {\n // Allows the \"Enter\" key to select an item\n case _keyboard2.default.keys.ENTER:\n _this2.selectItem(item, true);\n event.preventDefault();\n break;\n\n // Allows the \"Escape\" key to close the picker\n case _keyboard2.default.keys.ESCAPE:\n _this2.escape();\n event.preventDefault();\n break;\n default:\n }\n });\n\n return item;\n }\n }, {\n key: 'buildLabel',\n value: function buildLabel() {\n var label = document.createElement('span');\n label.classList.add('ql-picker-label');\n label.innerHTML = _dropdown2.default;\n label.tabIndex = '0';\n label.setAttribute('role', 'button');\n label.setAttribute('aria-expanded', 'false');\n this.container.appendChild(label);\n return label;\n }\n }, {\n key: 'buildOptions',\n value: function buildOptions() {\n var _this3 = this;\n\n var options = document.createElement('span');\n options.classList.add('ql-picker-options');\n\n // Don't want screen readers to read this until options are visible\n options.setAttribute('aria-hidden', 'true');\n options.tabIndex = '-1';\n\n // Need a unique id for aria-controls\n options.id = 'ql-picker-options-' + optionsCounter;\n optionsCounter += 1;\n this.label.setAttribute('aria-controls', options.id);\n\n this.options = options;\n\n [].slice.call(this.select.options).forEach(function (option) {\n var item = _this3.buildItem(option);\n options.appendChild(item);\n if (option.selected === true) {\n _this3.selectItem(item);\n }\n });\n this.container.appendChild(options);\n }\n }, {\n key: 'buildPicker',\n value: function buildPicker() {\n var _this4 = this;\n\n [].slice.call(this.select.attributes).forEach(function (item) {\n _this4.container.setAttribute(item.name, item.value);\n });\n this.container.classList.add('ql-picker');\n this.label = this.buildLabel();\n this.buildOptions();\n }\n }, {\n key: 'escape',\n value: function escape() {\n var _this5 = this;\n\n // Close menu and return focus to trigger label\n this.close();\n // Need setTimeout for accessibility to ensure that the browser executes\n // focus on the next process thread and after any DOM content changes\n setTimeout(function () {\n return _this5.label.focus();\n }, 1);\n }\n }, {\n key: 'close',\n value: function close() {\n this.container.classList.remove('ql-expanded');\n this.label.setAttribute('aria-expanded', 'false');\n this.options.setAttribute('aria-hidden', 'true');\n }\n }, {\n key: 'selectItem',\n value: function selectItem(item) {\n var trigger = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var selected = this.container.querySelector('.ql-selected');\n if (item === selected) return;\n if (selected != null) {\n selected.classList.remove('ql-selected');\n }\n if (item == null) return;\n item.classList.add('ql-selected');\n this.select.selectedIndex = [].indexOf.call(item.parentNode.children, item);\n if (item.hasAttribute('data-value')) {\n this.label.setAttribute('data-value', item.getAttribute('data-value'));\n } else {\n this.label.removeAttribute('data-value');\n }\n if (item.hasAttribute('data-label')) {\n this.label.setAttribute('data-label', item.getAttribute('data-label'));\n } else {\n this.label.removeAttribute('data-label');\n }\n if (trigger) {\n if (typeof Event === 'function') {\n this.select.dispatchEvent(new Event('change'));\n } else if ((typeof Event === 'undefined' ? 'undefined' : _typeof(Event)) === 'object') {\n // IE11\n var event = document.createEvent('Event');\n event.initEvent('change', true, true);\n this.select.dispatchEvent(event);\n }\n this.close();\n }\n }\n }, {\n key: 'update',\n value: function update() {\n var option = void 0;\n if (this.select.selectedIndex > -1) {\n var item = this.container.querySelector('.ql-picker-options').children[this.select.selectedIndex];\n option = this.select.options[this.select.selectedIndex];\n this.selectItem(item);\n } else {\n this.selectItem(null);\n }\n var isActive = option != null && option !== this.select.querySelector('option[selected]');\n this.label.classList.toggle('ql-active', isActive);\n }\n }]);\n\n return Picker;\n}();\n\nexports.default = Picker;\n\n/***/ }),\n/* 29 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nvar _break = __webpack_require__(16);\n\nvar _break2 = _interopRequireDefault(_break);\n\nvar _container = __webpack_require__(25);\n\nvar _container2 = _interopRequireDefault(_container);\n\nvar _cursor = __webpack_require__(24);\n\nvar _cursor2 = _interopRequireDefault(_cursor);\n\nvar _embed = __webpack_require__(35);\n\nvar _embed2 = _interopRequireDefault(_embed);\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nvar _scroll = __webpack_require__(22);\n\nvar _scroll2 = _interopRequireDefault(_scroll);\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nvar _clipboard = __webpack_require__(55);\n\nvar _clipboard2 = _interopRequireDefault(_clipboard);\n\nvar _history = __webpack_require__(42);\n\nvar _history2 = _interopRequireDefault(_history);\n\nvar _keyboard = __webpack_require__(23);\n\nvar _keyboard2 = _interopRequireDefault(_keyboard);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_quill2.default.register({\n 'blots/block': _block2.default,\n 'blots/block/embed': _block.BlockEmbed,\n 'blots/break': _break2.default,\n 'blots/container': _container2.default,\n 'blots/cursor': _cursor2.default,\n 'blots/embed': _embed2.default,\n 'blots/inline': _inline2.default,\n 'blots/scroll': _scroll2.default,\n 'blots/text': _text2.default,\n\n 'modules/clipboard': _clipboard2.default,\n 'modules/history': _history2.default,\n 'modules/keyboard': _keyboard2.default\n});\n\n_parchment2.default.register(_block2.default, _break2.default, _cursor2.default, _inline2.default, _scroll2.default, _text2.default);\n\nexports.default = _quill2.default;\n\n/***/ }),\n/* 30 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Registry = __webpack_require__(1);\nvar ShadowBlot = /** @class */ (function () {\n function ShadowBlot(domNode) {\n this.domNode = domNode;\n // @ts-ignore\n this.domNode[Registry.DATA_KEY] = { blot: this };\n }\n Object.defineProperty(ShadowBlot.prototype, \"statics\", {\n // Hack for accessing inherited static methods\n get: function () {\n return this.constructor;\n },\n enumerable: true,\n configurable: true\n });\n ShadowBlot.create = function (value) {\n if (this.tagName == null) {\n throw new Registry.ParchmentError('Blot definition missing tagName');\n }\n var node;\n if (Array.isArray(this.tagName)) {\n if (typeof value === 'string') {\n value = value.toUpperCase();\n if (parseInt(value).toString() === value) {\n value = parseInt(value);\n }\n }\n if (typeof value === 'number') {\n node = document.createElement(this.tagName[value - 1]);\n }\n else if (this.tagName.indexOf(value) > -1) {\n node = document.createElement(value);\n }\n else {\n node = document.createElement(this.tagName[0]);\n }\n }\n else {\n node = document.createElement(this.tagName);\n }\n if (this.className) {\n node.classList.add(this.className);\n }\n return node;\n };\n ShadowBlot.prototype.attach = function () {\n if (this.parent != null) {\n this.scroll = this.parent.scroll;\n }\n };\n ShadowBlot.prototype.clone = function () {\n var domNode = this.domNode.cloneNode(false);\n return Registry.create(domNode);\n };\n ShadowBlot.prototype.detach = function () {\n if (this.parent != null)\n this.parent.removeChild(this);\n // @ts-ignore\n delete this.domNode[Registry.DATA_KEY];\n };\n ShadowBlot.prototype.deleteAt = function (index, length) {\n var blot = this.isolate(index, length);\n blot.remove();\n };\n ShadowBlot.prototype.formatAt = function (index, length, name, value) {\n var blot = this.isolate(index, length);\n if (Registry.query(name, Registry.Scope.BLOT) != null && value) {\n blot.wrap(name, value);\n }\n else if (Registry.query(name, Registry.Scope.ATTRIBUTE) != null) {\n var parent = Registry.create(this.statics.scope);\n blot.wrap(parent);\n parent.format(name, value);\n }\n };\n ShadowBlot.prototype.insertAt = function (index, value, def) {\n var blot = def == null ? Registry.create('text', value) : Registry.create(value, def);\n var ref = this.split(index);\n this.parent.insertBefore(blot, ref);\n };\n ShadowBlot.prototype.insertInto = function (parentBlot, refBlot) {\n if (refBlot === void 0) { refBlot = null; }\n if (this.parent != null) {\n this.parent.children.remove(this);\n }\n var refDomNode = null;\n parentBlot.children.insertBefore(this, refBlot);\n if (refBlot != null) {\n refDomNode = refBlot.domNode;\n }\n if (this.domNode.parentNode != parentBlot.domNode ||\n this.domNode.nextSibling != refDomNode) {\n parentBlot.domNode.insertBefore(this.domNode, refDomNode);\n }\n this.parent = parentBlot;\n this.attach();\n };\n ShadowBlot.prototype.isolate = function (index, length) {\n var target = this.split(index);\n target.split(length);\n return target;\n };\n ShadowBlot.prototype.length = function () {\n return 1;\n };\n ShadowBlot.prototype.offset = function (root) {\n if (root === void 0) { root = this.parent; }\n if (this.parent == null || this == root)\n return 0;\n return this.parent.children.offset(this) + this.parent.offset(root);\n };\n ShadowBlot.prototype.optimize = function (context) {\n // TODO clean up once we use WeakMap\n // @ts-ignore\n if (this.domNode[Registry.DATA_KEY] != null) {\n // @ts-ignore\n delete this.domNode[Registry.DATA_KEY].mutations;\n }\n };\n ShadowBlot.prototype.remove = function () {\n if (this.domNode.parentNode != null) {\n this.domNode.parentNode.removeChild(this.domNode);\n }\n this.detach();\n };\n ShadowBlot.prototype.replace = function (target) {\n if (target.parent == null)\n return;\n target.parent.insertBefore(this, target.next);\n target.remove();\n };\n ShadowBlot.prototype.replaceWith = function (name, value) {\n var replacement = typeof name === 'string' ? Registry.create(name, value) : name;\n replacement.replace(this);\n return replacement;\n };\n ShadowBlot.prototype.split = function (index, force) {\n return index === 0 ? this : this.next;\n };\n ShadowBlot.prototype.update = function (mutations, context) {\n // Nothing to do by default\n };\n ShadowBlot.prototype.wrap = function (name, value) {\n var wrapper = typeof name === 'string' ? Registry.create(name, value) : name;\n if (this.parent != null) {\n this.parent.insertBefore(wrapper, this.next);\n }\n wrapper.appendChild(this);\n return wrapper;\n };\n ShadowBlot.blotName = 'abstract';\n return ShadowBlot;\n}());\nexports.default = ShadowBlot;\n\n\n/***/ }),\n/* 31 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar attributor_1 = __webpack_require__(12);\nvar class_1 = __webpack_require__(32);\nvar style_1 = __webpack_require__(33);\nvar Registry = __webpack_require__(1);\nvar AttributorStore = /** @class */ (function () {\n function AttributorStore(domNode) {\n this.attributes = {};\n this.domNode = domNode;\n this.build();\n }\n AttributorStore.prototype.attribute = function (attribute, value) {\n // verb\n if (value) {\n if (attribute.add(this.domNode, value)) {\n if (attribute.value(this.domNode) != null) {\n this.attributes[attribute.attrName] = attribute;\n }\n else {\n delete this.attributes[attribute.attrName];\n }\n }\n }\n else {\n attribute.remove(this.domNode);\n delete this.attributes[attribute.attrName];\n }\n };\n AttributorStore.prototype.build = function () {\n var _this = this;\n this.attributes = {};\n var attributes = attributor_1.default.keys(this.domNode);\n var classes = class_1.default.keys(this.domNode);\n var styles = style_1.default.keys(this.domNode);\n attributes\n .concat(classes)\n .concat(styles)\n .forEach(function (name) {\n var attr = Registry.query(name, Registry.Scope.ATTRIBUTE);\n if (attr instanceof attributor_1.default) {\n _this.attributes[attr.attrName] = attr;\n }\n });\n };\n AttributorStore.prototype.copy = function (target) {\n var _this = this;\n Object.keys(this.attributes).forEach(function (key) {\n var value = _this.attributes[key].value(_this.domNode);\n target.format(key, value);\n });\n };\n AttributorStore.prototype.move = function (target) {\n var _this = this;\n this.copy(target);\n Object.keys(this.attributes).forEach(function (key) {\n _this.attributes[key].remove(_this.domNode);\n });\n this.attributes = {};\n };\n AttributorStore.prototype.values = function () {\n var _this = this;\n return Object.keys(this.attributes).reduce(function (attributes, name) {\n attributes[name] = _this.attributes[name].value(_this.domNode);\n return attributes;\n }, {});\n };\n return AttributorStore;\n}());\nexports.default = AttributorStore;\n\n\n/***/ }),\n/* 32 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar attributor_1 = __webpack_require__(12);\nfunction match(node, prefix) {\n var className = node.getAttribute('class') || '';\n return className.split(/\\s+/).filter(function (name) {\n return name.indexOf(prefix + \"-\") === 0;\n });\n}\nvar ClassAttributor = /** @class */ (function (_super) {\n __extends(ClassAttributor, _super);\n function ClassAttributor() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ClassAttributor.keys = function (node) {\n return (node.getAttribute('class') || '').split(/\\s+/).map(function (name) {\n return name\n .split('-')\n .slice(0, -1)\n .join('-');\n });\n };\n ClassAttributor.prototype.add = function (node, value) {\n if (!this.canAdd(node, value))\n return false;\n this.remove(node);\n node.classList.add(this.keyName + \"-\" + value);\n return true;\n };\n ClassAttributor.prototype.remove = function (node) {\n var matches = match(node, this.keyName);\n matches.forEach(function (name) {\n node.classList.remove(name);\n });\n if (node.classList.length === 0) {\n node.removeAttribute('class');\n }\n };\n ClassAttributor.prototype.value = function (node) {\n var result = match(node, this.keyName)[0] || '';\n var value = result.slice(this.keyName.length + 1); // +1 for hyphen\n return this.canAdd(node, value) ? value : '';\n };\n return ClassAttributor;\n}(attributor_1.default));\nexports.default = ClassAttributor;\n\n\n/***/ }),\n/* 33 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar attributor_1 = __webpack_require__(12);\nfunction camelize(name) {\n var parts = name.split('-');\n var rest = parts\n .slice(1)\n .map(function (part) {\n return part[0].toUpperCase() + part.slice(1);\n })\n .join('');\n return parts[0] + rest;\n}\nvar StyleAttributor = /** @class */ (function (_super) {\n __extends(StyleAttributor, _super);\n function StyleAttributor() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n StyleAttributor.keys = function (node) {\n return (node.getAttribute('style') || '').split(';').map(function (value) {\n var arr = value.split(':');\n return arr[0].trim();\n });\n };\n StyleAttributor.prototype.add = function (node, value) {\n if (!this.canAdd(node, value))\n return false;\n // @ts-ignore\n node.style[camelize(this.keyName)] = value;\n return true;\n };\n StyleAttributor.prototype.remove = function (node) {\n // @ts-ignore\n node.style[camelize(this.keyName)] = '';\n if (!node.getAttribute('style')) {\n node.removeAttribute('style');\n }\n };\n StyleAttributor.prototype.value = function (node) {\n // @ts-ignore\n var value = node.style[camelize(this.keyName)];\n return this.canAdd(node, value) ? value : '';\n };\n return StyleAttributor;\n}(attributor_1.default));\nexports.default = StyleAttributor;\n\n\n/***/ }),\n/* 34 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Theme = function () {\n function Theme(quill, options) {\n _classCallCheck(this, Theme);\n\n this.quill = quill;\n this.options = options;\n this.modules = {};\n }\n\n _createClass(Theme, [{\n key: 'init',\n value: function init() {\n var _this = this;\n\n Object.keys(this.options.modules).forEach(function (name) {\n if (_this.modules[name] == null) {\n _this.addModule(name);\n }\n });\n }\n }, {\n key: 'addModule',\n value: function addModule(name) {\n var moduleClass = this.quill.constructor.import('modules/' + name);\n this.modules[name] = new moduleClass(this.quill, this.options.modules[name] || {});\n return this.modules[name];\n }\n }]);\n\n return Theme;\n}();\n\nTheme.DEFAULTS = {\n modules: {}\n};\nTheme.themes = {\n 'default': Theme\n};\n\nexports.default = Theme;\n\n/***/ }),\n/* 35 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar GUARD_TEXT = '\\uFEFF';\n\nvar Embed = function (_Parchment$Embed) {\n _inherits(Embed, _Parchment$Embed);\n\n function Embed(node) {\n _classCallCheck(this, Embed);\n\n var _this = _possibleConstructorReturn(this, (Embed.__proto__ || Object.getPrototypeOf(Embed)).call(this, node));\n\n _this.contentNode = document.createElement('span');\n _this.contentNode.setAttribute('contenteditable', false);\n [].slice.call(_this.domNode.childNodes).forEach(function (childNode) {\n _this.contentNode.appendChild(childNode);\n });\n _this.leftGuard = document.createTextNode(GUARD_TEXT);\n _this.rightGuard = document.createTextNode(GUARD_TEXT);\n _this.domNode.appendChild(_this.leftGuard);\n _this.domNode.appendChild(_this.contentNode);\n _this.domNode.appendChild(_this.rightGuard);\n return _this;\n }\n\n _createClass(Embed, [{\n key: 'index',\n value: function index(node, offset) {\n if (node === this.leftGuard) return 0;\n if (node === this.rightGuard) return 1;\n return _get(Embed.prototype.__proto__ || Object.getPrototypeOf(Embed.prototype), 'index', this).call(this, node, offset);\n }\n }, {\n key: 'restore',\n value: function restore(node) {\n var range = void 0,\n textNode = void 0;\n var text = node.data.split(GUARD_TEXT).join('');\n if (node === this.leftGuard) {\n if (this.prev instanceof _text2.default) {\n var prevLength = this.prev.length();\n this.prev.insertAt(prevLength, text);\n range = {\n startNode: this.prev.domNode,\n startOffset: prevLength + text.length\n };\n } else {\n textNode = document.createTextNode(text);\n this.parent.insertBefore(_parchment2.default.create(textNode), this);\n range = {\n startNode: textNode,\n startOffset: text.length\n };\n }\n } else if (node === this.rightGuard) {\n if (this.next instanceof _text2.default) {\n this.next.insertAt(0, text);\n range = {\n startNode: this.next.domNode,\n startOffset: text.length\n };\n } else {\n textNode = document.createTextNode(text);\n this.parent.insertBefore(_parchment2.default.create(textNode), this.next);\n range = {\n startNode: textNode,\n startOffset: text.length\n };\n }\n }\n node.data = GUARD_TEXT;\n return range;\n }\n }, {\n key: 'update',\n value: function update(mutations, context) {\n var _this2 = this;\n\n mutations.forEach(function (mutation) {\n if (mutation.type === 'characterData' && (mutation.target === _this2.leftGuard || mutation.target === _this2.rightGuard)) {\n var range = _this2.restore(mutation.target);\n if (range) context.range = range;\n }\n });\n }\n }]);\n\n return Embed;\n}(_parchment2.default.Embed);\n\nexports.default = Embed;\n\n/***/ }),\n/* 36 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.AlignStyle = exports.AlignClass = exports.AlignAttribute = undefined;\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar config = {\n scope: _parchment2.default.Scope.BLOCK,\n whitelist: ['right', 'center', 'justify']\n};\n\nvar AlignAttribute = new _parchment2.default.Attributor.Attribute('align', 'align', config);\nvar AlignClass = new _parchment2.default.Attributor.Class('align', 'ql-align', config);\nvar AlignStyle = new _parchment2.default.Attributor.Style('align', 'text-align', config);\n\nexports.AlignAttribute = AlignAttribute;\nexports.AlignClass = AlignClass;\nexports.AlignStyle = AlignStyle;\n\n/***/ }),\n/* 37 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.BackgroundStyle = exports.BackgroundClass = undefined;\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _color = __webpack_require__(26);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar BackgroundClass = new _parchment2.default.Attributor.Class('background', 'ql-bg', {\n scope: _parchment2.default.Scope.INLINE\n});\nvar BackgroundStyle = new _color.ColorAttributor('background', 'background-color', {\n scope: _parchment2.default.Scope.INLINE\n});\n\nexports.BackgroundClass = BackgroundClass;\nexports.BackgroundStyle = BackgroundStyle;\n\n/***/ }),\n/* 38 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.DirectionStyle = exports.DirectionClass = exports.DirectionAttribute = undefined;\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar config = {\n scope: _parchment2.default.Scope.BLOCK,\n whitelist: ['rtl']\n};\n\nvar DirectionAttribute = new _parchment2.default.Attributor.Attribute('direction', 'dir', config);\nvar DirectionClass = new _parchment2.default.Attributor.Class('direction', 'ql-direction', config);\nvar DirectionStyle = new _parchment2.default.Attributor.Style('direction', 'direction', config);\n\nexports.DirectionAttribute = DirectionAttribute;\nexports.DirectionClass = DirectionClass;\nexports.DirectionStyle = DirectionStyle;\n\n/***/ }),\n/* 39 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.FontClass = exports.FontStyle = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar config = {\n scope: _parchment2.default.Scope.INLINE,\n whitelist: ['serif', 'monospace']\n};\n\nvar FontClass = new _parchment2.default.Attributor.Class('font', 'ql-font', config);\n\nvar FontStyleAttributor = function (_Parchment$Attributor) {\n _inherits(FontStyleAttributor, _Parchment$Attributor);\n\n function FontStyleAttributor() {\n _classCallCheck(this, FontStyleAttributor);\n\n return _possibleConstructorReturn(this, (FontStyleAttributor.__proto__ || Object.getPrototypeOf(FontStyleAttributor)).apply(this, arguments));\n }\n\n _createClass(FontStyleAttributor, [{\n key: 'value',\n value: function value(node) {\n return _get(FontStyleAttributor.prototype.__proto__ || Object.getPrototypeOf(FontStyleAttributor.prototype), 'value', this).call(this, node).replace(/[\"']/g, '');\n }\n }]);\n\n return FontStyleAttributor;\n}(_parchment2.default.Attributor.Style);\n\nvar FontStyle = new FontStyleAttributor('font', 'font-family', config);\n\nexports.FontStyle = FontStyle;\nexports.FontClass = FontClass;\n\n/***/ }),\n/* 40 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SizeStyle = exports.SizeClass = undefined;\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar SizeClass = new _parchment2.default.Attributor.Class('size', 'ql-size', {\n scope: _parchment2.default.Scope.INLINE,\n whitelist: ['small', 'large', 'huge']\n});\nvar SizeStyle = new _parchment2.default.Attributor.Style('size', 'font-size', {\n scope: _parchment2.default.Scope.INLINE,\n whitelist: ['10px', '18px', '32px']\n});\n\nexports.SizeClass = SizeClass;\nexports.SizeStyle = SizeStyle;\n\n/***/ }),\n/* 41 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = {\n 'align': {\n '': __webpack_require__(76),\n 'center': __webpack_require__(77),\n 'right': __webpack_require__(78),\n 'justify': __webpack_require__(79)\n },\n 'background': __webpack_require__(80),\n 'blockquote': __webpack_require__(81),\n 'bold': __webpack_require__(82),\n 'clean': __webpack_require__(83),\n 'code': __webpack_require__(58),\n 'code-block': __webpack_require__(58),\n 'color': __webpack_require__(84),\n 'direction': {\n '': __webpack_require__(85),\n 'rtl': __webpack_require__(86)\n },\n 'float': {\n 'center': __webpack_require__(87),\n 'full': __webpack_require__(88),\n 'left': __webpack_require__(89),\n 'right': __webpack_require__(90)\n },\n 'formula': __webpack_require__(91),\n 'header': {\n '1': __webpack_require__(92),\n '2': __webpack_require__(93)\n },\n 'italic': __webpack_require__(94),\n 'image': __webpack_require__(95),\n 'indent': {\n '+1': __webpack_require__(96),\n '-1': __webpack_require__(97)\n },\n 'link': __webpack_require__(98),\n 'list': {\n 'ordered': __webpack_require__(99),\n 'bullet': __webpack_require__(100),\n 'check': __webpack_require__(101)\n },\n 'script': {\n 'sub': __webpack_require__(102),\n 'super': __webpack_require__(103)\n },\n 'strike': __webpack_require__(104),\n 'underline': __webpack_require__(105),\n 'video': __webpack_require__(106)\n};\n\n/***/ }),\n/* 42 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getLastChangeIndex = exports.default = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar History = function (_Module) {\n _inherits(History, _Module);\n\n function History(quill, options) {\n _classCallCheck(this, History);\n\n var _this = _possibleConstructorReturn(this, (History.__proto__ || Object.getPrototypeOf(History)).call(this, quill, options));\n\n _this.lastRecorded = 0;\n _this.ignoreChange = false;\n _this.clear();\n _this.quill.on(_quill2.default.events.EDITOR_CHANGE, function (eventName, delta, oldDelta, source) {\n if (eventName !== _quill2.default.events.TEXT_CHANGE || _this.ignoreChange) return;\n if (!_this.options.userOnly || source === _quill2.default.sources.USER) {\n _this.record(delta, oldDelta);\n } else {\n _this.transform(delta);\n }\n });\n _this.quill.keyboard.addBinding({ key: 'Z', shortKey: true }, _this.undo.bind(_this));\n _this.quill.keyboard.addBinding({ key: 'Z', shortKey: true, shiftKey: true }, _this.redo.bind(_this));\n if (/Win/i.test(navigator.platform)) {\n _this.quill.keyboard.addBinding({ key: 'Y', shortKey: true }, _this.redo.bind(_this));\n }\n return _this;\n }\n\n _createClass(History, [{\n key: 'change',\n value: function change(source, dest) {\n if (this.stack[source].length === 0) return;\n var delta = this.stack[source].pop();\n this.stack[dest].push(delta);\n this.lastRecorded = 0;\n this.ignoreChange = true;\n this.quill.updateContents(delta[source], _quill2.default.sources.USER);\n this.ignoreChange = false;\n var index = getLastChangeIndex(delta[source]);\n this.quill.setSelection(index);\n }\n }, {\n key: 'clear',\n value: function clear() {\n this.stack = { undo: [], redo: [] };\n }\n }, {\n key: 'cutoff',\n value: function cutoff() {\n this.lastRecorded = 0;\n }\n }, {\n key: 'record',\n value: function record(changeDelta, oldDelta) {\n if (changeDelta.ops.length === 0) return;\n this.stack.redo = [];\n var undoDelta = this.quill.getContents().diff(oldDelta);\n var timestamp = Date.now();\n if (this.lastRecorded + this.options.delay > timestamp && this.stack.undo.length > 0) {\n var delta = this.stack.undo.pop();\n undoDelta = undoDelta.compose(delta.undo);\n changeDelta = delta.redo.compose(changeDelta);\n } else {\n this.lastRecorded = timestamp;\n }\n this.stack.undo.push({\n redo: changeDelta,\n undo: undoDelta\n });\n if (this.stack.undo.length > this.options.maxStack) {\n this.stack.undo.shift();\n }\n }\n }, {\n key: 'redo',\n value: function redo() {\n this.change('redo', 'undo');\n }\n }, {\n key: 'transform',\n value: function transform(delta) {\n this.stack.undo.forEach(function (change) {\n change.undo = delta.transform(change.undo, true);\n change.redo = delta.transform(change.redo, true);\n });\n this.stack.redo.forEach(function (change) {\n change.undo = delta.transform(change.undo, true);\n change.redo = delta.transform(change.redo, true);\n });\n }\n }, {\n key: 'undo',\n value: function undo() {\n this.change('undo', 'redo');\n }\n }]);\n\n return History;\n}(_module2.default);\n\nHistory.DEFAULTS = {\n delay: 1000,\n maxStack: 100,\n userOnly: false\n};\n\nfunction endsWithNewlineChange(delta) {\n var lastOp = delta.ops[delta.ops.length - 1];\n if (lastOp == null) return false;\n if (lastOp.insert != null) {\n return typeof lastOp.insert === 'string' && lastOp.insert.endsWith('\\n');\n }\n if (lastOp.attributes != null) {\n return Object.keys(lastOp.attributes).some(function (attr) {\n return _parchment2.default.query(attr, _parchment2.default.Scope.BLOCK) != null;\n });\n }\n return false;\n}\n\nfunction getLastChangeIndex(delta) {\n var deleteLength = delta.reduce(function (length, op) {\n length += op.delete || 0;\n return length;\n }, 0);\n var changeIndex = delta.length() - deleteLength;\n if (endsWithNewlineChange(delta)) {\n changeIndex -= 1;\n }\n return changeIndex;\n}\n\nexports.default = History;\nexports.getLastChangeIndex = getLastChangeIndex;\n\n/***/ }),\n/* 43 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.BaseTooltip = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _emitter = __webpack_require__(8);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _keyboard = __webpack_require__(23);\n\nvar _keyboard2 = _interopRequireDefault(_keyboard);\n\nvar _theme = __webpack_require__(34);\n\nvar _theme2 = _interopRequireDefault(_theme);\n\nvar _colorPicker = __webpack_require__(59);\n\nvar _colorPicker2 = _interopRequireDefault(_colorPicker);\n\nvar _iconPicker = __webpack_require__(60);\n\nvar _iconPicker2 = _interopRequireDefault(_iconPicker);\n\nvar _picker = __webpack_require__(28);\n\nvar _picker2 = _interopRequireDefault(_picker);\n\nvar _tooltip = __webpack_require__(61);\n\nvar _tooltip2 = _interopRequireDefault(_tooltip);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ALIGNS = [false, 'center', 'right', 'justify'];\n\nvar COLORS = [\"#000000\", \"#e60000\", \"#ff9900\", \"#ffff00\", \"#008a00\", \"#0066cc\", \"#9933ff\", \"#ffffff\", \"#facccc\", \"#ffebcc\", \"#ffffcc\", \"#cce8cc\", \"#cce0f5\", \"#ebd6ff\", \"#bbbbbb\", \"#f06666\", \"#ffc266\", \"#ffff66\", \"#66b966\", \"#66a3e0\", \"#c285ff\", \"#888888\", \"#a10000\", \"#b26b00\", \"#b2b200\", \"#006100\", \"#0047b2\", \"#6b24b2\", \"#444444\", \"#5c0000\", \"#663d00\", \"#666600\", \"#003700\", \"#002966\", \"#3d1466\"];\n\nvar FONTS = [false, 'serif', 'monospace'];\n\nvar HEADERS = ['1', '2', '3', false];\n\nvar SIZES = ['small', false, 'large', 'huge'];\n\nvar BaseTheme = function (_Theme) {\n _inherits(BaseTheme, _Theme);\n\n function BaseTheme(quill, options) {\n _classCallCheck(this, BaseTheme);\n\n var _this = _possibleConstructorReturn(this, (BaseTheme.__proto__ || Object.getPrototypeOf(BaseTheme)).call(this, quill, options));\n\n var listener = function listener(e) {\n if (!document.body.contains(quill.root)) {\n return document.body.removeEventListener('click', listener);\n }\n if (_this.tooltip != null && !_this.tooltip.root.contains(e.target) && document.activeElement !== _this.tooltip.textbox && !_this.quill.hasFocus()) {\n _this.tooltip.hide();\n }\n if (_this.pickers != null) {\n _this.pickers.forEach(function (picker) {\n if (!picker.container.contains(e.target)) {\n picker.close();\n }\n });\n }\n };\n quill.emitter.listenDOM('click', document.body, listener);\n return _this;\n }\n\n _createClass(BaseTheme, [{\n key: 'addModule',\n value: function addModule(name) {\n var module = _get(BaseTheme.prototype.__proto__ || Object.getPrototypeOf(BaseTheme.prototype), 'addModule', this).call(this, name);\n if (name === 'toolbar') {\n this.extendToolbar(module);\n }\n return module;\n }\n }, {\n key: 'buildButtons',\n value: function buildButtons(buttons, icons) {\n buttons.forEach(function (button) {\n var className = button.getAttribute('class') || '';\n className.split(/\\s+/).forEach(function (name) {\n if (!name.startsWith('ql-')) return;\n name = name.slice('ql-'.length);\n if (icons[name] == null) return;\n if (name === 'direction') {\n button.innerHTML = icons[name][''] + icons[name]['rtl'];\n } else if (typeof icons[name] === 'string') {\n button.innerHTML = icons[name];\n } else {\n var value = button.value || '';\n if (value != null && icons[name][value]) {\n button.innerHTML = icons[name][value];\n }\n }\n });\n });\n }\n }, {\n key: 'buildPickers',\n value: function buildPickers(selects, icons) {\n var _this2 = this;\n\n this.pickers = selects.map(function (select) {\n if (select.classList.contains('ql-align')) {\n if (select.querySelector('option') == null) {\n fillSelect(select, ALIGNS);\n }\n return new _iconPicker2.default(select, icons.align);\n } else if (select.classList.contains('ql-background') || select.classList.contains('ql-color')) {\n var format = select.classList.contains('ql-background') ? 'background' : 'color';\n if (select.querySelector('option') == null) {\n fillSelect(select, COLORS, format === 'background' ? '#ffffff' : '#000000');\n }\n return new _colorPicker2.default(select, icons[format]);\n } else {\n if (select.querySelector('option') == null) {\n if (select.classList.contains('ql-font')) {\n fillSelect(select, FONTS);\n } else if (select.classList.contains('ql-header')) {\n fillSelect(select, HEADERS);\n } else if (select.classList.contains('ql-size')) {\n fillSelect(select, SIZES);\n }\n }\n return new _picker2.default(select);\n }\n });\n var update = function update() {\n _this2.pickers.forEach(function (picker) {\n picker.update();\n });\n };\n this.quill.on(_emitter2.default.events.EDITOR_CHANGE, update);\n }\n }]);\n\n return BaseTheme;\n}(_theme2.default);\n\nBaseTheme.DEFAULTS = (0, _extend2.default)(true, {}, _theme2.default.DEFAULTS, {\n modules: {\n toolbar: {\n handlers: {\n formula: function formula() {\n this.quill.theme.tooltip.edit('formula');\n },\n image: function image() {\n var _this3 = this;\n\n var fileInput = this.container.querySelector('input.ql-image[type=file]');\n if (fileInput == null) {\n fileInput = document.createElement('input');\n fileInput.setAttribute('type', 'file');\n fileInput.setAttribute('accept', 'image/png, image/gif, image/jpeg, image/bmp, image/x-icon');\n fileInput.classList.add('ql-image');\n fileInput.addEventListener('change', function () {\n if (fileInput.files != null && fileInput.files[0] != null) {\n var reader = new FileReader();\n reader.onload = function (e) {\n var range = _this3.quill.getSelection(true);\n _this3.quill.updateContents(new _quillDelta2.default().retain(range.index).delete(range.length).insert({ image: e.target.result }), _emitter2.default.sources.USER);\n _this3.quill.setSelection(range.index + 1, _emitter2.default.sources.SILENT);\n fileInput.value = \"\";\n };\n reader.readAsDataURL(fileInput.files[0]);\n }\n });\n this.container.appendChild(fileInput);\n }\n fileInput.click();\n },\n video: function video() {\n this.quill.theme.tooltip.edit('video');\n }\n }\n }\n }\n});\n\nvar BaseTooltip = function (_Tooltip) {\n _inherits(BaseTooltip, _Tooltip);\n\n function BaseTooltip(quill, boundsContainer) {\n _classCallCheck(this, BaseTooltip);\n\n var _this4 = _possibleConstructorReturn(this, (BaseTooltip.__proto__ || Object.getPrototypeOf(BaseTooltip)).call(this, quill, boundsContainer));\n\n _this4.textbox = _this4.root.querySelector('input[type=\"text\"]');\n _this4.listen();\n return _this4;\n }\n\n _createClass(BaseTooltip, [{\n key: 'listen',\n value: function listen() {\n var _this5 = this;\n\n this.textbox.addEventListener('keydown', function (event) {\n if (_keyboard2.default.match(event, 'enter')) {\n _this5.save();\n event.preventDefault();\n } else if (_keyboard2.default.match(event, 'escape')) {\n _this5.cancel();\n event.preventDefault();\n }\n });\n }\n }, {\n key: 'cancel',\n value: function cancel() {\n this.hide();\n }\n }, {\n key: 'edit',\n value: function edit() {\n var mode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'link';\n var preview = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n this.root.classList.remove('ql-hidden');\n this.root.classList.add('ql-editing');\n if (preview != null) {\n this.textbox.value = preview;\n } else if (mode !== this.root.getAttribute('data-mode')) {\n this.textbox.value = '';\n }\n this.position(this.quill.getBounds(this.quill.selection.savedRange));\n this.textbox.select();\n this.textbox.setAttribute('placeholder', this.textbox.getAttribute('data-' + mode) || '');\n this.root.setAttribute('data-mode', mode);\n }\n }, {\n key: 'restoreFocus',\n value: function restoreFocus() {\n var scrollTop = this.quill.scrollingContainer.scrollTop;\n this.quill.focus();\n this.quill.scrollingContainer.scrollTop = scrollTop;\n }\n }, {\n key: 'save',\n value: function save() {\n var value = this.textbox.value;\n switch (this.root.getAttribute('data-mode')) {\n case 'link':\n {\n var scrollTop = this.quill.root.scrollTop;\n if (this.linkRange) {\n this.quill.formatText(this.linkRange, 'link', value, _emitter2.default.sources.USER);\n delete this.linkRange;\n } else {\n this.restoreFocus();\n this.quill.format('link', value, _emitter2.default.sources.USER);\n }\n this.quill.root.scrollTop = scrollTop;\n break;\n }\n case 'video':\n {\n value = extractVideoUrl(value);\n } // eslint-disable-next-line no-fallthrough\n case 'formula':\n {\n if (!value) break;\n var range = this.quill.getSelection(true);\n if (range != null) {\n var index = range.index + range.length;\n this.quill.insertEmbed(index, this.root.getAttribute('data-mode'), value, _emitter2.default.sources.USER);\n if (this.root.getAttribute('data-mode') === 'formula') {\n this.quill.insertText(index + 1, ' ', _emitter2.default.sources.USER);\n }\n this.quill.setSelection(index + 2, _emitter2.default.sources.USER);\n }\n break;\n }\n default:\n }\n this.textbox.value = '';\n this.hide();\n }\n }]);\n\n return BaseTooltip;\n}(_tooltip2.default);\n\nfunction extractVideoUrl(url) {\n var match = url.match(/^(?:(https?):\\/\\/)?(?:(?:www|m)\\.)?youtube\\.com\\/watch.*v=([a-zA-Z0-9_-]+)/) || url.match(/^(?:(https?):\\/\\/)?(?:(?:www|m)\\.)?youtu\\.be\\/([a-zA-Z0-9_-]+)/);\n if (match) {\n return (match[1] || 'https') + '://www.youtube.com/embed/' + match[2] + '?showinfo=0';\n }\n if (match = url.match(/^(?:(https?):\\/\\/)?(?:www\\.)?vimeo\\.com\\/(\\d+)/)) {\n // eslint-disable-line no-cond-assign\n return (match[1] || 'https') + '://player.vimeo.com/video/' + match[2] + '/';\n }\n return url;\n}\n\nfunction fillSelect(select, values) {\n var defaultValue = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n values.forEach(function (value) {\n var option = document.createElement('option');\n if (value === defaultValue) {\n option.setAttribute('selected', 'selected');\n } else {\n option.setAttribute('value', value);\n }\n select.appendChild(option);\n });\n}\n\nexports.BaseTooltip = BaseTooltip;\nexports.default = BaseTheme;\n\n/***/ }),\n/* 44 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar LinkedList = /** @class */ (function () {\n function LinkedList() {\n this.head = this.tail = null;\n this.length = 0;\n }\n LinkedList.prototype.append = function () {\n var nodes = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n nodes[_i] = arguments[_i];\n }\n this.insertBefore(nodes[0], null);\n if (nodes.length > 1) {\n this.append.apply(this, nodes.slice(1));\n }\n };\n LinkedList.prototype.contains = function (node) {\n var cur, next = this.iterator();\n while ((cur = next())) {\n if (cur === node)\n return true;\n }\n return false;\n };\n LinkedList.prototype.insertBefore = function (node, refNode) {\n if (!node)\n return;\n node.next = refNode;\n if (refNode != null) {\n node.prev = refNode.prev;\n if (refNode.prev != null) {\n refNode.prev.next = node;\n }\n refNode.prev = node;\n if (refNode === this.head) {\n this.head = node;\n }\n }\n else if (this.tail != null) {\n this.tail.next = node;\n node.prev = this.tail;\n this.tail = node;\n }\n else {\n node.prev = null;\n this.head = this.tail = node;\n }\n this.length += 1;\n };\n LinkedList.prototype.offset = function (target) {\n var index = 0, cur = this.head;\n while (cur != null) {\n if (cur === target)\n return index;\n index += cur.length();\n cur = cur.next;\n }\n return -1;\n };\n LinkedList.prototype.remove = function (node) {\n if (!this.contains(node))\n return;\n if (node.prev != null)\n node.prev.next = node.next;\n if (node.next != null)\n node.next.prev = node.prev;\n if (node === this.head)\n this.head = node.next;\n if (node === this.tail)\n this.tail = node.prev;\n this.length -= 1;\n };\n LinkedList.prototype.iterator = function (curNode) {\n if (curNode === void 0) { curNode = this.head; }\n // TODO use yield when we can\n return function () {\n var ret = curNode;\n if (curNode != null)\n curNode = curNode.next;\n return ret;\n };\n };\n LinkedList.prototype.find = function (index, inclusive) {\n if (inclusive === void 0) { inclusive = false; }\n var cur, next = this.iterator();\n while ((cur = next())) {\n var length = cur.length();\n if (index < length ||\n (inclusive && index === length && (cur.next == null || cur.next.length() !== 0))) {\n return [cur, index];\n }\n index -= length;\n }\n return [null, 0];\n };\n LinkedList.prototype.forEach = function (callback) {\n var cur, next = this.iterator();\n while ((cur = next())) {\n callback(cur);\n }\n };\n LinkedList.prototype.forEachAt = function (index, length, callback) {\n if (length <= 0)\n return;\n var _a = this.find(index), startNode = _a[0], offset = _a[1];\n var cur, curIndex = index - offset, next = this.iterator(startNode);\n while ((cur = next()) && curIndex < index + length) {\n var curLength = cur.length();\n if (index > curIndex) {\n callback(cur, index - curIndex, Math.min(length, curIndex + curLength - index));\n }\n else {\n callback(cur, 0, Math.min(curLength, index + length - curIndex));\n }\n curIndex += curLength;\n }\n };\n LinkedList.prototype.map = function (callback) {\n return this.reduce(function (memo, cur) {\n memo.push(callback(cur));\n return memo;\n }, []);\n };\n LinkedList.prototype.reduce = function (callback, memo) {\n var cur, next = this.iterator();\n while ((cur = next())) {\n memo = callback(memo, cur);\n }\n return memo;\n };\n return LinkedList;\n}());\nexports.default = LinkedList;\n\n\n/***/ }),\n/* 45 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar container_1 = __webpack_require__(17);\nvar Registry = __webpack_require__(1);\nvar OBSERVER_CONFIG = {\n attributes: true,\n characterData: true,\n characterDataOldValue: true,\n childList: true,\n subtree: true,\n};\nvar MAX_OPTIMIZE_ITERATIONS = 100;\nvar ScrollBlot = /** @class */ (function (_super) {\n __extends(ScrollBlot, _super);\n function ScrollBlot(node) {\n var _this = _super.call(this, node) || this;\n _this.scroll = _this;\n _this.observer = new MutationObserver(function (mutations) {\n _this.update(mutations);\n });\n _this.observer.observe(_this.domNode, OBSERVER_CONFIG);\n _this.attach();\n return _this;\n }\n ScrollBlot.prototype.detach = function () {\n _super.prototype.detach.call(this);\n this.observer.disconnect();\n };\n ScrollBlot.prototype.deleteAt = function (index, length) {\n this.update();\n if (index === 0 && length === this.length()) {\n this.children.forEach(function (child) {\n child.remove();\n });\n }\n else {\n _super.prototype.deleteAt.call(this, index, length);\n }\n };\n ScrollBlot.prototype.formatAt = function (index, length, name, value) {\n this.update();\n _super.prototype.formatAt.call(this, index, length, name, value);\n };\n ScrollBlot.prototype.insertAt = function (index, value, def) {\n this.update();\n _super.prototype.insertAt.call(this, index, value, def);\n };\n ScrollBlot.prototype.optimize = function (mutations, context) {\n var _this = this;\n if (mutations === void 0) { mutations = []; }\n if (context === void 0) { context = {}; }\n _super.prototype.optimize.call(this, context);\n // We must modify mutations directly, cannot make copy and then modify\n var records = [].slice.call(this.observer.takeRecords());\n // Array.push currently seems to be implemented by a non-tail recursive function\n // so we cannot just mutations.push.apply(mutations, this.observer.takeRecords());\n while (records.length > 0)\n mutations.push(records.pop());\n // TODO use WeakMap\n var mark = function (blot, markParent) {\n if (markParent === void 0) { markParent = true; }\n if (blot == null || blot === _this)\n return;\n if (blot.domNode.parentNode == null)\n return;\n // @ts-ignore\n if (blot.domNode[Registry.DATA_KEY].mutations == null) {\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY].mutations = [];\n }\n if (markParent)\n mark(blot.parent);\n };\n var optimize = function (blot) {\n // Post-order traversal\n if (\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY] == null ||\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY].mutations == null) {\n return;\n }\n if (blot instanceof container_1.default) {\n blot.children.forEach(optimize);\n }\n blot.optimize(context);\n };\n var remaining = mutations;\n for (var i = 0; remaining.length > 0; i += 1) {\n if (i >= MAX_OPTIMIZE_ITERATIONS) {\n throw new Error('[Parchment] Maximum optimize iterations reached');\n }\n remaining.forEach(function (mutation) {\n var blot = Registry.find(mutation.target, true);\n if (blot == null)\n return;\n if (blot.domNode === mutation.target) {\n if (mutation.type === 'childList') {\n mark(Registry.find(mutation.previousSibling, false));\n [].forEach.call(mutation.addedNodes, function (node) {\n var child = Registry.find(node, false);\n mark(child, false);\n if (child instanceof container_1.default) {\n child.children.forEach(function (grandChild) {\n mark(grandChild, false);\n });\n }\n });\n }\n else if (mutation.type === 'attributes') {\n mark(blot.prev);\n }\n }\n mark(blot);\n });\n this.children.forEach(optimize);\n remaining = [].slice.call(this.observer.takeRecords());\n records = remaining.slice();\n while (records.length > 0)\n mutations.push(records.pop());\n }\n };\n ScrollBlot.prototype.update = function (mutations, context) {\n var _this = this;\n if (context === void 0) { context = {}; }\n mutations = mutations || this.observer.takeRecords();\n // TODO use WeakMap\n mutations\n .map(function (mutation) {\n var blot = Registry.find(mutation.target, true);\n if (blot == null)\n return null;\n // @ts-ignore\n if (blot.domNode[Registry.DATA_KEY].mutations == null) {\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY].mutations = [mutation];\n return blot;\n }\n else {\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY].mutations.push(mutation);\n return null;\n }\n })\n .forEach(function (blot) {\n if (blot == null ||\n blot === _this ||\n //@ts-ignore\n blot.domNode[Registry.DATA_KEY] == null)\n return;\n // @ts-ignore\n blot.update(blot.domNode[Registry.DATA_KEY].mutations || [], context);\n });\n // @ts-ignore\n if (this.domNode[Registry.DATA_KEY].mutations != null) {\n // @ts-ignore\n _super.prototype.update.call(this, this.domNode[Registry.DATA_KEY].mutations, context);\n }\n this.optimize(mutations, context);\n };\n ScrollBlot.blotName = 'scroll';\n ScrollBlot.defaultChild = 'block';\n ScrollBlot.scope = Registry.Scope.BLOCK_BLOT;\n ScrollBlot.tagName = 'DIV';\n return ScrollBlot;\n}(container_1.default));\nexports.default = ScrollBlot;\n\n\n/***/ }),\n/* 46 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar format_1 = __webpack_require__(18);\nvar Registry = __webpack_require__(1);\n// Shallow object comparison\nfunction isEqual(obj1, obj2) {\n if (Object.keys(obj1).length !== Object.keys(obj2).length)\n return false;\n // @ts-ignore\n for (var prop in obj1) {\n // @ts-ignore\n if (obj1[prop] !== obj2[prop])\n return false;\n }\n return true;\n}\nvar InlineBlot = /** @class */ (function (_super) {\n __extends(InlineBlot, _super);\n function InlineBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n InlineBlot.formats = function (domNode) {\n if (domNode.tagName === InlineBlot.tagName)\n return undefined;\n return _super.formats.call(this, domNode);\n };\n InlineBlot.prototype.format = function (name, value) {\n var _this = this;\n if (name === this.statics.blotName && !value) {\n this.children.forEach(function (child) {\n if (!(child instanceof format_1.default)) {\n child = child.wrap(InlineBlot.blotName, true);\n }\n _this.attributes.copy(child);\n });\n this.unwrap();\n }\n else {\n _super.prototype.format.call(this, name, value);\n }\n };\n InlineBlot.prototype.formatAt = function (index, length, name, value) {\n if (this.formats()[name] != null || Registry.query(name, Registry.Scope.ATTRIBUTE)) {\n var blot = this.isolate(index, length);\n blot.format(name, value);\n }\n else {\n _super.prototype.formatAt.call(this, index, length, name, value);\n }\n };\n InlineBlot.prototype.optimize = function (context) {\n _super.prototype.optimize.call(this, context);\n var formats = this.formats();\n if (Object.keys(formats).length === 0) {\n return this.unwrap(); // unformatted span\n }\n var next = this.next;\n if (next instanceof InlineBlot && next.prev === this && isEqual(formats, next.formats())) {\n next.moveChildren(this);\n next.remove();\n }\n };\n InlineBlot.blotName = 'inline';\n InlineBlot.scope = Registry.Scope.INLINE_BLOT;\n InlineBlot.tagName = 'SPAN';\n return InlineBlot;\n}(format_1.default));\nexports.default = InlineBlot;\n\n\n/***/ }),\n/* 47 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar format_1 = __webpack_require__(18);\nvar Registry = __webpack_require__(1);\nvar BlockBlot = /** @class */ (function (_super) {\n __extends(BlockBlot, _super);\n function BlockBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n BlockBlot.formats = function (domNode) {\n var tagName = Registry.query(BlockBlot.blotName).tagName;\n if (domNode.tagName === tagName)\n return undefined;\n return _super.formats.call(this, domNode);\n };\n BlockBlot.prototype.format = function (name, value) {\n if (Registry.query(name, Registry.Scope.BLOCK) == null) {\n return;\n }\n else if (name === this.statics.blotName && !value) {\n this.replaceWith(BlockBlot.blotName);\n }\n else {\n _super.prototype.format.call(this, name, value);\n }\n };\n BlockBlot.prototype.formatAt = function (index, length, name, value) {\n if (Registry.query(name, Registry.Scope.BLOCK) != null) {\n this.format(name, value);\n }\n else {\n _super.prototype.formatAt.call(this, index, length, name, value);\n }\n };\n BlockBlot.prototype.insertAt = function (index, value, def) {\n if (def == null || Registry.query(value, Registry.Scope.INLINE) != null) {\n // Insert text or inline\n _super.prototype.insertAt.call(this, index, value, def);\n }\n else {\n var after = this.split(index);\n var blot = Registry.create(value, def);\n after.parent.insertBefore(blot, after);\n }\n };\n BlockBlot.prototype.update = function (mutations, context) {\n if (navigator.userAgent.match(/Trident/)) {\n this.build();\n }\n else {\n _super.prototype.update.call(this, mutations, context);\n }\n };\n BlockBlot.blotName = 'block';\n BlockBlot.scope = Registry.Scope.BLOCK_BLOT;\n BlockBlot.tagName = 'P';\n return BlockBlot;\n}(format_1.default));\nexports.default = BlockBlot;\n\n\n/***/ }),\n/* 48 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar leaf_1 = __webpack_require__(19);\nvar EmbedBlot = /** @class */ (function (_super) {\n __extends(EmbedBlot, _super);\n function EmbedBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n EmbedBlot.formats = function (domNode) {\n return undefined;\n };\n EmbedBlot.prototype.format = function (name, value) {\n // super.formatAt wraps, which is what we want in general,\n // but this allows subclasses to overwrite for formats\n // that just apply to particular embeds\n _super.prototype.formatAt.call(this, 0, this.length(), name, value);\n };\n EmbedBlot.prototype.formatAt = function (index, length, name, value) {\n if (index === 0 && length === this.length()) {\n this.format(name, value);\n }\n else {\n _super.prototype.formatAt.call(this, index, length, name, value);\n }\n };\n EmbedBlot.prototype.formats = function () {\n return this.statics.formats(this.domNode);\n };\n return EmbedBlot;\n}(leaf_1.default));\nexports.default = EmbedBlot;\n\n\n/***/ }),\n/* 49 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar leaf_1 = __webpack_require__(19);\nvar Registry = __webpack_require__(1);\nvar TextBlot = /** @class */ (function (_super) {\n __extends(TextBlot, _super);\n function TextBlot(node) {\n var _this = _super.call(this, node) || this;\n _this.text = _this.statics.value(_this.domNode);\n return _this;\n }\n TextBlot.create = function (value) {\n return document.createTextNode(value);\n };\n TextBlot.value = function (domNode) {\n var text = domNode.data;\n // @ts-ignore\n if (text['normalize'])\n text = text['normalize']();\n return text;\n };\n TextBlot.prototype.deleteAt = function (index, length) {\n this.domNode.data = this.text = this.text.slice(0, index) + this.text.slice(index + length);\n };\n TextBlot.prototype.index = function (node, offset) {\n if (this.domNode === node) {\n return offset;\n }\n return -1;\n };\n TextBlot.prototype.insertAt = function (index, value, def) {\n if (def == null) {\n this.text = this.text.slice(0, index) + value + this.text.slice(index);\n this.domNode.data = this.text;\n }\n else {\n _super.prototype.insertAt.call(this, index, value, def);\n }\n };\n TextBlot.prototype.length = function () {\n return this.text.length;\n };\n TextBlot.prototype.optimize = function (context) {\n _super.prototype.optimize.call(this, context);\n this.text = this.statics.value(this.domNode);\n if (this.text.length === 0) {\n this.remove();\n }\n else if (this.next instanceof TextBlot && this.next.prev === this) {\n this.insertAt(this.length(), this.next.value());\n this.next.remove();\n }\n };\n TextBlot.prototype.position = function (index, inclusive) {\n if (inclusive === void 0) { inclusive = false; }\n return [this.domNode, index];\n };\n TextBlot.prototype.split = function (index, force) {\n if (force === void 0) { force = false; }\n if (!force) {\n if (index === 0)\n return this;\n if (index === this.length())\n return this.next;\n }\n var after = Registry.create(this.domNode.splitText(index));\n this.parent.insertBefore(after, this.next);\n this.text = this.statics.value(this.domNode);\n return after;\n };\n TextBlot.prototype.update = function (mutations, context) {\n var _this = this;\n if (mutations.some(function (mutation) {\n return mutation.type === 'characterData' && mutation.target === _this.domNode;\n })) {\n this.text = this.statics.value(this.domNode);\n }\n };\n TextBlot.prototype.value = function () {\n return this.text;\n };\n TextBlot.blotName = 'text';\n TextBlot.scope = Registry.Scope.INLINE_BLOT;\n return TextBlot;\n}(leaf_1.default));\nexports.default = TextBlot;\n\n\n/***/ }),\n/* 50 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar elem = document.createElement('div');\nelem.classList.toggle('test-class', false);\nif (elem.classList.contains('test-class')) {\n var _toggle = DOMTokenList.prototype.toggle;\n DOMTokenList.prototype.toggle = function (token, force) {\n if (arguments.length > 1 && !this.contains(token) === !force) {\n return force;\n } else {\n return _toggle.call(this, token);\n }\n };\n}\n\nif (!String.prototype.startsWith) {\n String.prototype.startsWith = function (searchString, position) {\n position = position || 0;\n return this.substr(position, searchString.length) === searchString;\n };\n}\n\nif (!String.prototype.endsWith) {\n String.prototype.endsWith = function (searchString, position) {\n var subjectString = this.toString();\n if (typeof position !== 'number' || !isFinite(position) || Math.floor(position) !== position || position > subjectString.length) {\n position = subjectString.length;\n }\n position -= searchString.length;\n var lastIndex = subjectString.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n };\n}\n\nif (!Array.prototype.find) {\n Object.defineProperty(Array.prototype, \"find\", {\n value: function value(predicate) {\n if (this === null) {\n throw new TypeError('Array.prototype.find called on null or undefined');\n }\n if (typeof predicate !== 'function') {\n throw new TypeError('predicate must be a function');\n }\n var list = Object(this);\n var length = list.length >>> 0;\n var thisArg = arguments[1];\n var value;\n\n for (var i = 0; i < length; i++) {\n value = list[i];\n if (predicate.call(thisArg, value, i, list)) {\n return value;\n }\n }\n return undefined;\n }\n });\n}\n\ndocument.addEventListener(\"DOMContentLoaded\", function () {\n // Disable resizing in Firefox\n document.execCommand(\"enableObjectResizing\", false, false);\n // Disable automatic linkifying in IE11\n document.execCommand(\"autoUrlDetect\", false, false);\n});\n\n/***/ }),\n/* 51 */\n/***/ (function(module, exports) {\n\n/**\n * This library modifies the diff-patch-match library by Neil Fraser\n * by removing the patch and match functionality and certain advanced\n * options in the diff function. The original license is as follows:\n *\n * ===\n *\n * Diff Match and Patch\n *\n * Copyright 2006 Google Inc.\n * http://code.google.com/p/google-diff-match-patch/\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\n/**\n * The data structure representing a diff is an array of tuples:\n * [[DIFF_DELETE, 'Hello'], [DIFF_INSERT, 'Goodbye'], [DIFF_EQUAL, ' world.']]\n * which means: delete 'Hello', add 'Goodbye' and keep ' world.'\n */\nvar DIFF_DELETE = -1;\nvar DIFF_INSERT = 1;\nvar DIFF_EQUAL = 0;\n\n\n/**\n * Find the differences between two texts. Simplifies the problem by stripping\n * any common prefix or suffix off the texts before diffing.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @param {Int} cursor_pos Expected edit position in text1 (optional)\n * @return {Array} Array of diff tuples.\n */\nfunction diff_main(text1, text2, cursor_pos) {\n // Check for equality (speedup).\n if (text1 == text2) {\n if (text1) {\n return [[DIFF_EQUAL, text1]];\n }\n return [];\n }\n\n // Check cursor_pos within bounds\n if (cursor_pos < 0 || text1.length < cursor_pos) {\n cursor_pos = null;\n }\n\n // Trim off common prefix (speedup).\n var commonlength = diff_commonPrefix(text1, text2);\n var commonprefix = text1.substring(0, commonlength);\n text1 = text1.substring(commonlength);\n text2 = text2.substring(commonlength);\n\n // Trim off common suffix (speedup).\n commonlength = diff_commonSuffix(text1, text2);\n var commonsuffix = text1.substring(text1.length - commonlength);\n text1 = text1.substring(0, text1.length - commonlength);\n text2 = text2.substring(0, text2.length - commonlength);\n\n // Compute the diff on the middle block.\n var diffs = diff_compute_(text1, text2);\n\n // Restore the prefix and suffix.\n if (commonprefix) {\n diffs.unshift([DIFF_EQUAL, commonprefix]);\n }\n if (commonsuffix) {\n diffs.push([DIFF_EQUAL, commonsuffix]);\n }\n diff_cleanupMerge(diffs);\n if (cursor_pos != null) {\n diffs = fix_cursor(diffs, cursor_pos);\n }\n diffs = fix_emoji(diffs);\n return diffs;\n};\n\n\n/**\n * Find the differences between two texts. Assumes that the texts do not\n * have any common prefix or suffix.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @return {Array} Array of diff tuples.\n */\nfunction diff_compute_(text1, text2) {\n var diffs;\n\n if (!text1) {\n // Just add some text (speedup).\n return [[DIFF_INSERT, text2]];\n }\n\n if (!text2) {\n // Just delete some text (speedup).\n return [[DIFF_DELETE, text1]];\n }\n\n var longtext = text1.length > text2.length ? text1 : text2;\n var shorttext = text1.length > text2.length ? text2 : text1;\n var i = longtext.indexOf(shorttext);\n if (i != -1) {\n // Shorter text is inside the longer text (speedup).\n diffs = [[DIFF_INSERT, longtext.substring(0, i)],\n [DIFF_EQUAL, shorttext],\n [DIFF_INSERT, longtext.substring(i + shorttext.length)]];\n // Swap insertions for deletions if diff is reversed.\n if (text1.length > text2.length) {\n diffs[0][0] = diffs[2][0] = DIFF_DELETE;\n }\n return diffs;\n }\n\n if (shorttext.length == 1) {\n // Single character string.\n // After the previous speedup, the character can't be an equality.\n return [[DIFF_DELETE, text1], [DIFF_INSERT, text2]];\n }\n\n // Check to see if the problem can be split in two.\n var hm = diff_halfMatch_(text1, text2);\n if (hm) {\n // A half-match was found, sort out the return data.\n var text1_a = hm[0];\n var text1_b = hm[1];\n var text2_a = hm[2];\n var text2_b = hm[3];\n var mid_common = hm[4];\n // Send both pairs off for separate processing.\n var diffs_a = diff_main(text1_a, text2_a);\n var diffs_b = diff_main(text1_b, text2_b);\n // Merge the results.\n return diffs_a.concat([[DIFF_EQUAL, mid_common]], diffs_b);\n }\n\n return diff_bisect_(text1, text2);\n};\n\n\n/**\n * Find the 'middle snake' of a diff, split the problem in two\n * and return the recursively constructed diff.\n * See Myers 1986 paper: An O(ND) Difference Algorithm and Its Variations.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @return {Array} Array of diff tuples.\n * @private\n */\nfunction diff_bisect_(text1, text2) {\n // Cache the text lengths to prevent multiple calls.\n var text1_length = text1.length;\n var text2_length = text2.length;\n var max_d = Math.ceil((text1_length + text2_length) / 2);\n var v_offset = max_d;\n var v_length = 2 * max_d;\n var v1 = new Array(v_length);\n var v2 = new Array(v_length);\n // Setting all elements to -1 is faster in Chrome & Firefox than mixing\n // integers and undefined.\n for (var x = 0; x < v_length; x++) {\n v1[x] = -1;\n v2[x] = -1;\n }\n v1[v_offset + 1] = 0;\n v2[v_offset + 1] = 0;\n var delta = text1_length - text2_length;\n // If the total number of characters is odd, then the front path will collide\n // with the reverse path.\n var front = (delta % 2 != 0);\n // Offsets for start and end of k loop.\n // Prevents mapping of space beyond the grid.\n var k1start = 0;\n var k1end = 0;\n var k2start = 0;\n var k2end = 0;\n for (var d = 0; d < max_d; d++) {\n // Walk the front path one step.\n for (var k1 = -d + k1start; k1 <= d - k1end; k1 += 2) {\n var k1_offset = v_offset + k1;\n var x1;\n if (k1 == -d || (k1 != d && v1[k1_offset - 1] < v1[k1_offset + 1])) {\n x1 = v1[k1_offset + 1];\n } else {\n x1 = v1[k1_offset - 1] + 1;\n }\n var y1 = x1 - k1;\n while (x1 < text1_length && y1 < text2_length &&\n text1.charAt(x1) == text2.charAt(y1)) {\n x1++;\n y1++;\n }\n v1[k1_offset] = x1;\n if (x1 > text1_length) {\n // Ran off the right of the graph.\n k1end += 2;\n } else if (y1 > text2_length) {\n // Ran off the bottom of the graph.\n k1start += 2;\n } else if (front) {\n var k2_offset = v_offset + delta - k1;\n if (k2_offset >= 0 && k2_offset < v_length && v2[k2_offset] != -1) {\n // Mirror x2 onto top-left coordinate system.\n var x2 = text1_length - v2[k2_offset];\n if (x1 >= x2) {\n // Overlap detected.\n return diff_bisectSplit_(text1, text2, x1, y1);\n }\n }\n }\n }\n\n // Walk the reverse path one step.\n for (var k2 = -d + k2start; k2 <= d - k2end; k2 += 2) {\n var k2_offset = v_offset + k2;\n var x2;\n if (k2 == -d || (k2 != d && v2[k2_offset - 1] < v2[k2_offset + 1])) {\n x2 = v2[k2_offset + 1];\n } else {\n x2 = v2[k2_offset - 1] + 1;\n }\n var y2 = x2 - k2;\n while (x2 < text1_length && y2 < text2_length &&\n text1.charAt(text1_length - x2 - 1) ==\n text2.charAt(text2_length - y2 - 1)) {\n x2++;\n y2++;\n }\n v2[k2_offset] = x2;\n if (x2 > text1_length) {\n // Ran off the left of the graph.\n k2end += 2;\n } else if (y2 > text2_length) {\n // Ran off the top of the graph.\n k2start += 2;\n } else if (!front) {\n var k1_offset = v_offset + delta - k2;\n if (k1_offset >= 0 && k1_offset < v_length && v1[k1_offset] != -1) {\n var x1 = v1[k1_offset];\n var y1 = v_offset + x1 - k1_offset;\n // Mirror x2 onto top-left coordinate system.\n x2 = text1_length - x2;\n if (x1 >= x2) {\n // Overlap detected.\n return diff_bisectSplit_(text1, text2, x1, y1);\n }\n }\n }\n }\n }\n // Diff took too long and hit the deadline or\n // number of diffs equals number of characters, no commonality at all.\n return [[DIFF_DELETE, text1], [DIFF_INSERT, text2]];\n};\n\n\n/**\n * Given the location of the 'middle snake', split the diff in two parts\n * and recurse.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @param {number} x Index of split point in text1.\n * @param {number} y Index of split point in text2.\n * @return {Array} Array of diff tuples.\n */\nfunction diff_bisectSplit_(text1, text2, x, y) {\n var text1a = text1.substring(0, x);\n var text2a = text2.substring(0, y);\n var text1b = text1.substring(x);\n var text2b = text2.substring(y);\n\n // Compute both diffs serially.\n var diffs = diff_main(text1a, text2a);\n var diffsb = diff_main(text1b, text2b);\n\n return diffs.concat(diffsb);\n};\n\n\n/**\n * Determine the common prefix of two strings.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {number} The number of characters common to the start of each\n * string.\n */\nfunction diff_commonPrefix(text1, text2) {\n // Quick check for common null cases.\n if (!text1 || !text2 || text1.charAt(0) != text2.charAt(0)) {\n return 0;\n }\n // Binary search.\n // Performance analysis: http://neil.fraser.name/news/2007/10/09/\n var pointermin = 0;\n var pointermax = Math.min(text1.length, text2.length);\n var pointermid = pointermax;\n var pointerstart = 0;\n while (pointermin < pointermid) {\n if (text1.substring(pointerstart, pointermid) ==\n text2.substring(pointerstart, pointermid)) {\n pointermin = pointermid;\n pointerstart = pointermin;\n } else {\n pointermax = pointermid;\n }\n pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin);\n }\n return pointermid;\n};\n\n\n/**\n * Determine the common suffix of two strings.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {number} The number of characters common to the end of each string.\n */\nfunction diff_commonSuffix(text1, text2) {\n // Quick check for common null cases.\n if (!text1 || !text2 ||\n text1.charAt(text1.length - 1) != text2.charAt(text2.length - 1)) {\n return 0;\n }\n // Binary search.\n // Performance analysis: http://neil.fraser.name/news/2007/10/09/\n var pointermin = 0;\n var pointermax = Math.min(text1.length, text2.length);\n var pointermid = pointermax;\n var pointerend = 0;\n while (pointermin < pointermid) {\n if (text1.substring(text1.length - pointermid, text1.length - pointerend) ==\n text2.substring(text2.length - pointermid, text2.length - pointerend)) {\n pointermin = pointermid;\n pointerend = pointermin;\n } else {\n pointermax = pointermid;\n }\n pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin);\n }\n return pointermid;\n};\n\n\n/**\n * Do the two texts share a substring which is at least half the length of the\n * longer text?\n * This speedup can produce non-minimal diffs.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {Array.} Five element Array, containing the prefix of\n * text1, the suffix of text1, the prefix of text2, the suffix of\n * text2 and the common middle. Or null if there was no match.\n */\nfunction diff_halfMatch_(text1, text2) {\n var longtext = text1.length > text2.length ? text1 : text2;\n var shorttext = text1.length > text2.length ? text2 : text1;\n if (longtext.length < 4 || shorttext.length * 2 < longtext.length) {\n return null; // Pointless.\n }\n\n /**\n * Does a substring of shorttext exist within longtext such that the substring\n * is at least half the length of longtext?\n * Closure, but does not reference any external variables.\n * @param {string} longtext Longer string.\n * @param {string} shorttext Shorter string.\n * @param {number} i Start index of quarter length substring within longtext.\n * @return {Array.} Five element Array, containing the prefix of\n * longtext, the suffix of longtext, the prefix of shorttext, the suffix\n * of shorttext and the common middle. Or null if there was no match.\n * @private\n */\n function diff_halfMatchI_(longtext, shorttext, i) {\n // Start with a 1/4 length substring at position i as a seed.\n var seed = longtext.substring(i, i + Math.floor(longtext.length / 4));\n var j = -1;\n var best_common = '';\n var best_longtext_a, best_longtext_b, best_shorttext_a, best_shorttext_b;\n while ((j = shorttext.indexOf(seed, j + 1)) != -1) {\n var prefixLength = diff_commonPrefix(longtext.substring(i),\n shorttext.substring(j));\n var suffixLength = diff_commonSuffix(longtext.substring(0, i),\n shorttext.substring(0, j));\n if (best_common.length < suffixLength + prefixLength) {\n best_common = shorttext.substring(j - suffixLength, j) +\n shorttext.substring(j, j + prefixLength);\n best_longtext_a = longtext.substring(0, i - suffixLength);\n best_longtext_b = longtext.substring(i + prefixLength);\n best_shorttext_a = shorttext.substring(0, j - suffixLength);\n best_shorttext_b = shorttext.substring(j + prefixLength);\n }\n }\n if (best_common.length * 2 >= longtext.length) {\n return [best_longtext_a, best_longtext_b,\n best_shorttext_a, best_shorttext_b, best_common];\n } else {\n return null;\n }\n }\n\n // First check if the second quarter is the seed for a half-match.\n var hm1 = diff_halfMatchI_(longtext, shorttext,\n Math.ceil(longtext.length / 4));\n // Check again based on the third quarter.\n var hm2 = diff_halfMatchI_(longtext, shorttext,\n Math.ceil(longtext.length / 2));\n var hm;\n if (!hm1 && !hm2) {\n return null;\n } else if (!hm2) {\n hm = hm1;\n } else if (!hm1) {\n hm = hm2;\n } else {\n // Both matched. Select the longest.\n hm = hm1[4].length > hm2[4].length ? hm1 : hm2;\n }\n\n // A half-match was found, sort out the return data.\n var text1_a, text1_b, text2_a, text2_b;\n if (text1.length > text2.length) {\n text1_a = hm[0];\n text1_b = hm[1];\n text2_a = hm[2];\n text2_b = hm[3];\n } else {\n text2_a = hm[0];\n text2_b = hm[1];\n text1_a = hm[2];\n text1_b = hm[3];\n }\n var mid_common = hm[4];\n return [text1_a, text1_b, text2_a, text2_b, mid_common];\n};\n\n\n/**\n * Reorder and merge like edit sections. Merge equalities.\n * Any edit section can move as long as it doesn't cross an equality.\n * @param {Array} diffs Array of diff tuples.\n */\nfunction diff_cleanupMerge(diffs) {\n diffs.push([DIFF_EQUAL, '']); // Add a dummy entry at the end.\n var pointer = 0;\n var count_delete = 0;\n var count_insert = 0;\n var text_delete = '';\n var text_insert = '';\n var commonlength;\n while (pointer < diffs.length) {\n switch (diffs[pointer][0]) {\n case DIFF_INSERT:\n count_insert++;\n text_insert += diffs[pointer][1];\n pointer++;\n break;\n case DIFF_DELETE:\n count_delete++;\n text_delete += diffs[pointer][1];\n pointer++;\n break;\n case DIFF_EQUAL:\n // Upon reaching an equality, check for prior redundancies.\n if (count_delete + count_insert > 1) {\n if (count_delete !== 0 && count_insert !== 0) {\n // Factor out any common prefixies.\n commonlength = diff_commonPrefix(text_insert, text_delete);\n if (commonlength !== 0) {\n if ((pointer - count_delete - count_insert) > 0 &&\n diffs[pointer - count_delete - count_insert - 1][0] ==\n DIFF_EQUAL) {\n diffs[pointer - count_delete - count_insert - 1][1] +=\n text_insert.substring(0, commonlength);\n } else {\n diffs.splice(0, 0, [DIFF_EQUAL,\n text_insert.substring(0, commonlength)]);\n pointer++;\n }\n text_insert = text_insert.substring(commonlength);\n text_delete = text_delete.substring(commonlength);\n }\n // Factor out any common suffixies.\n commonlength = diff_commonSuffix(text_insert, text_delete);\n if (commonlength !== 0) {\n diffs[pointer][1] = text_insert.substring(text_insert.length -\n commonlength) + diffs[pointer][1];\n text_insert = text_insert.substring(0, text_insert.length -\n commonlength);\n text_delete = text_delete.substring(0, text_delete.length -\n commonlength);\n }\n }\n // Delete the offending records and add the merged ones.\n if (count_delete === 0) {\n diffs.splice(pointer - count_insert,\n count_delete + count_insert, [DIFF_INSERT, text_insert]);\n } else if (count_insert === 0) {\n diffs.splice(pointer - count_delete,\n count_delete + count_insert, [DIFF_DELETE, text_delete]);\n } else {\n diffs.splice(pointer - count_delete - count_insert,\n count_delete + count_insert, [DIFF_DELETE, text_delete],\n [DIFF_INSERT, text_insert]);\n }\n pointer = pointer - count_delete - count_insert +\n (count_delete ? 1 : 0) + (count_insert ? 1 : 0) + 1;\n } else if (pointer !== 0 && diffs[pointer - 1][0] == DIFF_EQUAL) {\n // Merge this equality with the previous one.\n diffs[pointer - 1][1] += diffs[pointer][1];\n diffs.splice(pointer, 1);\n } else {\n pointer++;\n }\n count_insert = 0;\n count_delete = 0;\n text_delete = '';\n text_insert = '';\n break;\n }\n }\n if (diffs[diffs.length - 1][1] === '') {\n diffs.pop(); // Remove the dummy entry at the end.\n }\n\n // Second pass: look for single edits surrounded on both sides by equalities\n // which can be shifted sideways to eliminate an equality.\n // e.g: ABAC -> ABAC\n var changes = false;\n pointer = 1;\n // Intentionally ignore the first and last element (don't need checking).\n while (pointer < diffs.length - 1) {\n if (diffs[pointer - 1][0] == DIFF_EQUAL &&\n diffs[pointer + 1][0] == DIFF_EQUAL) {\n // This is a single edit surrounded by equalities.\n if (diffs[pointer][1].substring(diffs[pointer][1].length -\n diffs[pointer - 1][1].length) == diffs[pointer - 1][1]) {\n // Shift the edit over the previous equality.\n diffs[pointer][1] = diffs[pointer - 1][1] +\n diffs[pointer][1].substring(0, diffs[pointer][1].length -\n diffs[pointer - 1][1].length);\n diffs[pointer + 1][1] = diffs[pointer - 1][1] + diffs[pointer + 1][1];\n diffs.splice(pointer - 1, 1);\n changes = true;\n } else if (diffs[pointer][1].substring(0, diffs[pointer + 1][1].length) ==\n diffs[pointer + 1][1]) {\n // Shift the edit over the next equality.\n diffs[pointer - 1][1] += diffs[pointer + 1][1];\n diffs[pointer][1] =\n diffs[pointer][1].substring(diffs[pointer + 1][1].length) +\n diffs[pointer + 1][1];\n diffs.splice(pointer + 1, 1);\n changes = true;\n }\n }\n pointer++;\n }\n // If shifts were made, the diff needs reordering and another shift sweep.\n if (changes) {\n diff_cleanupMerge(diffs);\n }\n};\n\n\nvar diff = diff_main;\ndiff.INSERT = DIFF_INSERT;\ndiff.DELETE = DIFF_DELETE;\ndiff.EQUAL = DIFF_EQUAL;\n\nmodule.exports = diff;\n\n/*\n * Modify a diff such that the cursor position points to the start of a change:\n * E.g.\n * cursor_normalize_diff([[DIFF_EQUAL, 'abc']], 1)\n * => [1, [[DIFF_EQUAL, 'a'], [DIFF_EQUAL, 'bc']]]\n * cursor_normalize_diff([[DIFF_INSERT, 'new'], [DIFF_DELETE, 'xyz']], 2)\n * => [2, [[DIFF_INSERT, 'new'], [DIFF_DELETE, 'xy'], [DIFF_DELETE, 'z']]]\n *\n * @param {Array} diffs Array of diff tuples\n * @param {Int} cursor_pos Suggested edit position. Must not be out of bounds!\n * @return {Array} A tuple [cursor location in the modified diff, modified diff]\n */\nfunction cursor_normalize_diff (diffs, cursor_pos) {\n if (cursor_pos === 0) {\n return [DIFF_EQUAL, diffs];\n }\n for (var current_pos = 0, i = 0; i < diffs.length; i++) {\n var d = diffs[i];\n if (d[0] === DIFF_DELETE || d[0] === DIFF_EQUAL) {\n var next_pos = current_pos + d[1].length;\n if (cursor_pos === next_pos) {\n return [i + 1, diffs];\n } else if (cursor_pos < next_pos) {\n // copy to prevent side effects\n diffs = diffs.slice();\n // split d into two diff changes\n var split_pos = cursor_pos - current_pos;\n var d_left = [d[0], d[1].slice(0, split_pos)];\n var d_right = [d[0], d[1].slice(split_pos)];\n diffs.splice(i, 1, d_left, d_right);\n return [i + 1, diffs];\n } else {\n current_pos = next_pos;\n }\n }\n }\n throw new Error('cursor_pos is out of bounds!')\n}\n\n/*\n * Modify a diff such that the edit position is \"shifted\" to the proposed edit location (cursor_position).\n *\n * Case 1)\n * Check if a naive shift is possible:\n * [0, X], [ 1, Y] -> [ 1, Y], [0, X] (if X + Y === Y + X)\n * [0, X], [-1, Y] -> [-1, Y], [0, X] (if X + Y === Y + X) - holds same result\n * Case 2)\n * Check if the following shifts are possible:\n * [0, 'pre'], [ 1, 'prefix'] -> [ 1, 'pre'], [0, 'pre'], [ 1, 'fix']\n * [0, 'pre'], [-1, 'prefix'] -> [-1, 'pre'], [0, 'pre'], [-1, 'fix']\n * ^ ^\n * d d_next\n *\n * @param {Array} diffs Array of diff tuples\n * @param {Int} cursor_pos Suggested edit position. Must not be out of bounds!\n * @return {Array} Array of diff tuples\n */\nfunction fix_cursor (diffs, cursor_pos) {\n var norm = cursor_normalize_diff(diffs, cursor_pos);\n var ndiffs = norm[1];\n var cursor_pointer = norm[0];\n var d = ndiffs[cursor_pointer];\n var d_next = ndiffs[cursor_pointer + 1];\n\n if (d == null) {\n // Text was deleted from end of original string,\n // cursor is now out of bounds in new string\n return diffs;\n } else if (d[0] !== DIFF_EQUAL) {\n // A modification happened at the cursor location.\n // This is the expected outcome, so we can return the original diff.\n return diffs;\n } else {\n if (d_next != null && d[1] + d_next[1] === d_next[1] + d[1]) {\n // Case 1)\n // It is possible to perform a naive shift\n ndiffs.splice(cursor_pointer, 2, d_next, d)\n return merge_tuples(ndiffs, cursor_pointer, 2)\n } else if (d_next != null && d_next[1].indexOf(d[1]) === 0) {\n // Case 2)\n // d[1] is a prefix of d_next[1]\n // We can assume that d_next[0] !== 0, since d[0] === 0\n // Shift edit locations..\n ndiffs.splice(cursor_pointer, 2, [d_next[0], d[1]], [0, d[1]]);\n var suffix = d_next[1].slice(d[1].length);\n if (suffix.length > 0) {\n ndiffs.splice(cursor_pointer + 2, 0, [d_next[0], suffix]);\n }\n return merge_tuples(ndiffs, cursor_pointer, 3)\n } else {\n // Not possible to perform any modification\n return diffs;\n }\n }\n}\n\n/*\n * Check diff did not split surrogate pairs.\n * Ex. [0, '\\uD83D'], [-1, '\\uDC36'], [1, '\\uDC2F'] -> [-1, '\\uD83D\\uDC36'], [1, '\\uD83D\\uDC2F']\n * '\\uD83D\\uDC36' === '🐶', '\\uD83D\\uDC2F' === '🐯'\n *\n * @param {Array} diffs Array of diff tuples\n * @return {Array} Array of diff tuples\n */\nfunction fix_emoji (diffs) {\n var compact = false;\n var starts_with_pair_end = function(str) {\n return str.charCodeAt(0) >= 0xDC00 && str.charCodeAt(0) <= 0xDFFF;\n }\n var ends_with_pair_start = function(str) {\n return str.charCodeAt(str.length-1) >= 0xD800 && str.charCodeAt(str.length-1) <= 0xDBFF;\n }\n for (var i = 2; i < diffs.length; i += 1) {\n if (diffs[i-2][0] === DIFF_EQUAL && ends_with_pair_start(diffs[i-2][1]) &&\n diffs[i-1][0] === DIFF_DELETE && starts_with_pair_end(diffs[i-1][1]) &&\n diffs[i][0] === DIFF_INSERT && starts_with_pair_end(diffs[i][1])) {\n compact = true;\n\n diffs[i-1][1] = diffs[i-2][1].slice(-1) + diffs[i-1][1];\n diffs[i][1] = diffs[i-2][1].slice(-1) + diffs[i][1];\n\n diffs[i-2][1] = diffs[i-2][1].slice(0, -1);\n }\n }\n if (!compact) {\n return diffs;\n }\n var fixed_diffs = [];\n for (var i = 0; i < diffs.length; i += 1) {\n if (diffs[i][1].length > 0) {\n fixed_diffs.push(diffs[i]);\n }\n }\n return fixed_diffs;\n}\n\n/*\n * Try to merge tuples with their neigbors in a given range.\n * E.g. [0, 'a'], [0, 'b'] -> [0, 'ab']\n *\n * @param {Array} diffs Array of diff tuples.\n * @param {Int} start Position of the first element to merge (diffs[start] is also merged with diffs[start - 1]).\n * @param {Int} length Number of consecutive elements to check.\n * @return {Array} Array of merged diff tuples.\n */\nfunction merge_tuples (diffs, start, length) {\n // Check from (start-1) to (start+length).\n for (var i = start + length - 1; i >= 0 && i >= start - 1; i--) {\n if (i + 1 < diffs.length) {\n var left_d = diffs[i];\n var right_d = diffs[i+1];\n if (left_d[0] === right_d[1]) {\n diffs.splice(i, 2, [left_d[0], left_d[1] + right_d[1]]);\n }\n }\n }\n return diffs;\n}\n\n\n/***/ }),\n/* 52 */\n/***/ (function(module, exports) {\n\nexports = module.exports = typeof Object.keys === 'function'\n ? Object.keys : shim;\n\nexports.shim = shim;\nfunction shim (obj) {\n var keys = [];\n for (var key in obj) keys.push(key);\n return keys;\n}\n\n\n/***/ }),\n/* 53 */\n/***/ (function(module, exports) {\n\nvar supportsArgumentsClass = (function(){\n return Object.prototype.toString.call(arguments)\n})() == '[object Arguments]';\n\nexports = module.exports = supportsArgumentsClass ? supported : unsupported;\n\nexports.supported = supported;\nfunction supported(object) {\n return Object.prototype.toString.call(object) == '[object Arguments]';\n};\n\nexports.unsupported = unsupported;\nfunction unsupported(object){\n return object &&\n typeof object == 'object' &&\n typeof object.length == 'number' &&\n Object.prototype.hasOwnProperty.call(object, 'callee') &&\n !Object.prototype.propertyIsEnumerable.call(object, 'callee') ||\n false;\n};\n\n\n/***/ }),\n/* 54 */\n/***/ (function(module, exports) {\n\n'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @api private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n Events.prototype = Object.create(null);\n\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {Mixed} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @api private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @api public\n */\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @api public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = []\n , events\n , name;\n\n if (this._eventsCount === 0) return names;\n\n for (name in (events = this._events)) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {String|Symbol} event The event name.\n * @param {Boolean} exists Only check if there are listeners.\n * @returns {Array|Boolean}\n * @api public\n */\nEventEmitter.prototype.listeners = function listeners(event, exists) {\n var evt = prefix ? prefix + event : event\n , available = this._events[evt];\n\n if (exists) return !!available;\n if (!available) return [];\n if (available.fn) return [available.fn];\n\n for (var i = 0, l = available.length, ee = new Array(l); i < l; i++) {\n ee[i] = available[i].fn;\n }\n\n return ee;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {String|Symbol} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @api public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return false;\n\n var listeners = this._events[evt]\n , len = arguments.length\n , args\n , i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1: return listeners.fn.call(listeners.context), true;\n case 2: return listeners.fn.call(listeners.context, a1), true;\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length\n , j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {String|Symbol} event The event name.\n * @param {Function} fn The listener function.\n * @param {Mixed} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @api public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n var listener = new EE(fn, context || this)\n , evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) this._events[evt] = listener, this._eventsCount++;\n else if (!this._events[evt].fn) this._events[evt].push(listener);\n else this._events[evt] = [this._events[evt], listener];\n\n return this;\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {String|Symbol} event The event name.\n * @param {Function} fn The listener function.\n * @param {Mixed} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @api public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n var listener = new EE(fn, context || this, true)\n , evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) this._events[evt] = listener, this._eventsCount++;\n else if (!this._events[evt].fn) this._events[evt].push(listener);\n else this._events[evt] = [this._events[evt], listener];\n\n return this;\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {String|Symbol} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {Mixed} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @api public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return this;\n if (!fn) {\n if (--this._eventsCount === 0) this._events = new Events();\n else delete this._events[evt];\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (\n listeners.fn === fn\n && (!once || listeners.once)\n && (!context || listeners.context === context)\n ) {\n if (--this._eventsCount === 0) this._events = new Events();\n else delete this._events[evt];\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (\n listeners[i].fn !== fn\n || (once && !listeners[i].once)\n || (context && listeners[i].context !== context)\n ) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else if (--this._eventsCount === 0) this._events = new Events();\n else delete this._events[evt];\n }\n\n return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {String|Symbol} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @api public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) {\n if (--this._eventsCount === 0) this._events = new Events();\n else delete this._events[evt];\n }\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// This function doesn't apply anymore.\n//\nEventEmitter.prototype.setMaxListeners = function setMaxListeners() {\n return this;\n};\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n}\n\n\n/***/ }),\n/* 55 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.matchText = exports.matchSpacing = exports.matchNewline = exports.matchBlot = exports.matchAttributor = exports.default = undefined;\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\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _extend2 = __webpack_require__(3);\n\nvar _extend3 = _interopRequireDefault(_extend2);\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nvar _align = __webpack_require__(36);\n\nvar _background = __webpack_require__(37);\n\nvar _code = __webpack_require__(13);\n\nvar _code2 = _interopRequireDefault(_code);\n\nvar _color = __webpack_require__(26);\n\nvar _direction = __webpack_require__(38);\n\nvar _font = __webpack_require__(39);\n\nvar _size = __webpack_require__(40);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar debug = (0, _logger2.default)('quill:clipboard');\n\nvar DOM_KEY = '__ql-matcher';\n\nvar CLIPBOARD_CONFIG = [[Node.TEXT_NODE, matchText], [Node.TEXT_NODE, matchNewline], ['br', matchBreak], [Node.ELEMENT_NODE, matchNewline], [Node.ELEMENT_NODE, matchBlot], [Node.ELEMENT_NODE, matchSpacing], [Node.ELEMENT_NODE, matchAttributor], [Node.ELEMENT_NODE, matchStyles], ['li', matchIndent], ['b', matchAlias.bind(matchAlias, 'bold')], ['i', matchAlias.bind(matchAlias, 'italic')], ['style', matchIgnore]];\n\nvar ATTRIBUTE_ATTRIBUTORS = [_align.AlignAttribute, _direction.DirectionAttribute].reduce(function (memo, attr) {\n memo[attr.keyName] = attr;\n return memo;\n}, {});\n\nvar STYLE_ATTRIBUTORS = [_align.AlignStyle, _background.BackgroundStyle, _color.ColorStyle, _direction.DirectionStyle, _font.FontStyle, _size.SizeStyle].reduce(function (memo, attr) {\n memo[attr.keyName] = attr;\n return memo;\n}, {});\n\nvar Clipboard = function (_Module) {\n _inherits(Clipboard, _Module);\n\n function Clipboard(quill, options) {\n _classCallCheck(this, Clipboard);\n\n var _this = _possibleConstructorReturn(this, (Clipboard.__proto__ || Object.getPrototypeOf(Clipboard)).call(this, quill, options));\n\n _this.quill.root.addEventListener('paste', _this.onPaste.bind(_this));\n _this.container = _this.quill.addContainer('ql-clipboard');\n _this.container.setAttribute('contenteditable', true);\n _this.container.setAttribute('tabindex', -1);\n _this.matchers = [];\n CLIPBOARD_CONFIG.concat(_this.options.matchers).forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n selector = _ref2[0],\n matcher = _ref2[1];\n\n if (!options.matchVisual && matcher === matchSpacing) return;\n _this.addMatcher(selector, matcher);\n });\n return _this;\n }\n\n _createClass(Clipboard, [{\n key: 'addMatcher',\n value: function addMatcher(selector, matcher) {\n this.matchers.push([selector, matcher]);\n }\n }, {\n key: 'convert',\n value: function convert(html) {\n if (typeof html === 'string') {\n this.container.innerHTML = html.replace(/\\>\\r?\\n +\\<'); // Remove spaces between tags\n return this.convert();\n }\n var formats = this.quill.getFormat(this.quill.selection.savedRange.index);\n if (formats[_code2.default.blotName]) {\n var text = this.container.innerText;\n this.container.innerHTML = '';\n return new _quillDelta2.default().insert(text, _defineProperty({}, _code2.default.blotName, formats[_code2.default.blotName]));\n }\n\n var _prepareMatching = this.prepareMatching(),\n _prepareMatching2 = _slicedToArray(_prepareMatching, 2),\n elementMatchers = _prepareMatching2[0],\n textMatchers = _prepareMatching2[1];\n\n var delta = traverse(this.container, elementMatchers, textMatchers);\n // Remove trailing newline\n if (deltaEndsWith(delta, '\\n') && delta.ops[delta.ops.length - 1].attributes == null) {\n delta = delta.compose(new _quillDelta2.default().retain(delta.length() - 1).delete(1));\n }\n debug.log('convert', this.container.innerHTML, delta);\n this.container.innerHTML = '';\n return delta;\n }\n }, {\n key: 'dangerouslyPasteHTML',\n value: function dangerouslyPasteHTML(index, html) {\n var source = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _quill2.default.sources.API;\n\n if (typeof index === 'string') {\n this.quill.setContents(this.convert(index), html);\n this.quill.setSelection(0, _quill2.default.sources.SILENT);\n } else {\n var paste = this.convert(html);\n this.quill.updateContents(new _quillDelta2.default().retain(index).concat(paste), source);\n this.quill.setSelection(index + paste.length(), _quill2.default.sources.SILENT);\n }\n }\n }, {\n key: 'onPaste',\n value: function onPaste(e) {\n var _this2 = this;\n\n if (e.defaultPrevented || !this.quill.isEnabled()) return;\n var range = this.quill.getSelection();\n var delta = new _quillDelta2.default().retain(range.index);\n var scrollTop = this.quill.scrollingContainer.scrollTop;\n this.container.focus();\n this.quill.selection.update(_quill2.default.sources.SILENT);\n setTimeout(function () {\n delta = delta.concat(_this2.convert()).delete(range.length);\n _this2.quill.updateContents(delta, _quill2.default.sources.USER);\n // range.length contributes to delta.length()\n _this2.quill.setSelection(delta.length() - range.length, _quill2.default.sources.SILENT);\n _this2.quill.scrollingContainer.scrollTop = scrollTop;\n _this2.quill.focus();\n }, 1);\n }\n }, {\n key: 'prepareMatching',\n value: function prepareMatching() {\n var _this3 = this;\n\n var elementMatchers = [],\n textMatchers = [];\n this.matchers.forEach(function (pair) {\n var _pair = _slicedToArray(pair, 2),\n selector = _pair[0],\n matcher = _pair[1];\n\n switch (selector) {\n case Node.TEXT_NODE:\n textMatchers.push(matcher);\n break;\n case Node.ELEMENT_NODE:\n elementMatchers.push(matcher);\n break;\n default:\n [].forEach.call(_this3.container.querySelectorAll(selector), function (node) {\n // TODO use weakmap\n node[DOM_KEY] = node[DOM_KEY] || [];\n node[DOM_KEY].push(matcher);\n });\n break;\n }\n });\n return [elementMatchers, textMatchers];\n }\n }]);\n\n return Clipboard;\n}(_module2.default);\n\nClipboard.DEFAULTS = {\n matchers: [],\n matchVisual: true\n};\n\nfunction applyFormat(delta, format, value) {\n if ((typeof format === 'undefined' ? 'undefined' : _typeof(format)) === 'object') {\n return Object.keys(format).reduce(function (delta, key) {\n return applyFormat(delta, key, format[key]);\n }, delta);\n } else {\n return delta.reduce(function (delta, op) {\n if (op.attributes && op.attributes[format]) {\n return delta.push(op);\n } else {\n return delta.insert(op.insert, (0, _extend3.default)({}, _defineProperty({}, format, value), op.attributes));\n }\n }, new _quillDelta2.default());\n }\n}\n\nfunction computeStyle(node) {\n if (node.nodeType !== Node.ELEMENT_NODE) return {};\n var DOM_KEY = '__ql-computed-style';\n return node[DOM_KEY] || (node[DOM_KEY] = window.getComputedStyle(node));\n}\n\nfunction deltaEndsWith(delta, text) {\n var endText = \"\";\n for (var i = delta.ops.length - 1; i >= 0 && endText.length < text.length; --i) {\n var op = delta.ops[i];\n if (typeof op.insert !== 'string') break;\n endText = op.insert + endText;\n }\n return endText.slice(-1 * text.length) === text;\n}\n\nfunction isLine(node) {\n if (node.childNodes.length === 0) return false; // Exclude embed blocks\n var style = computeStyle(node);\n return ['block', 'list-item'].indexOf(style.display) > -1;\n}\n\nfunction traverse(node, elementMatchers, textMatchers) {\n // Post-order\n if (node.nodeType === node.TEXT_NODE) {\n return textMatchers.reduce(function (delta, matcher) {\n return matcher(node, delta);\n }, new _quillDelta2.default());\n } else if (node.nodeType === node.ELEMENT_NODE) {\n return [].reduce.call(node.childNodes || [], function (delta, childNode) {\n var childrenDelta = traverse(childNode, elementMatchers, textMatchers);\n if (childNode.nodeType === node.ELEMENT_NODE) {\n childrenDelta = elementMatchers.reduce(function (childrenDelta, matcher) {\n return matcher(childNode, childrenDelta);\n }, childrenDelta);\n childrenDelta = (childNode[DOM_KEY] || []).reduce(function (childrenDelta, matcher) {\n return matcher(childNode, childrenDelta);\n }, childrenDelta);\n }\n return delta.concat(childrenDelta);\n }, new _quillDelta2.default());\n } else {\n return new _quillDelta2.default();\n }\n}\n\nfunction matchAlias(format, node, delta) {\n return applyFormat(delta, format, true);\n}\n\nfunction matchAttributor(node, delta) {\n var attributes = _parchment2.default.Attributor.Attribute.keys(node);\n var classes = _parchment2.default.Attributor.Class.keys(node);\n var styles = _parchment2.default.Attributor.Style.keys(node);\n var formats = {};\n attributes.concat(classes).concat(styles).forEach(function (name) {\n var attr = _parchment2.default.query(name, _parchment2.default.Scope.ATTRIBUTE);\n if (attr != null) {\n formats[attr.attrName] = attr.value(node);\n if (formats[attr.attrName]) return;\n }\n attr = ATTRIBUTE_ATTRIBUTORS[name];\n if (attr != null && (attr.attrName === name || attr.keyName === name)) {\n formats[attr.attrName] = attr.value(node) || undefined;\n }\n attr = STYLE_ATTRIBUTORS[name];\n if (attr != null && (attr.attrName === name || attr.keyName === name)) {\n attr = STYLE_ATTRIBUTORS[name];\n formats[attr.attrName] = attr.value(node) || undefined;\n }\n });\n if (Object.keys(formats).length > 0) {\n delta = applyFormat(delta, formats);\n }\n return delta;\n}\n\nfunction matchBlot(node, delta) {\n var match = _parchment2.default.query(node);\n if (match == null) return delta;\n if (match.prototype instanceof _parchment2.default.Embed) {\n var embed = {};\n var value = match.value(node);\n if (value != null) {\n embed[match.blotName] = value;\n delta = new _quillDelta2.default().insert(embed, match.formats(node));\n }\n } else if (typeof match.formats === 'function') {\n delta = applyFormat(delta, match.blotName, match.formats(node));\n }\n return delta;\n}\n\nfunction matchBreak(node, delta) {\n if (!deltaEndsWith(delta, '\\n')) {\n delta.insert('\\n');\n }\n return delta;\n}\n\nfunction matchIgnore() {\n return new _quillDelta2.default();\n}\n\nfunction matchIndent(node, delta) {\n var match = _parchment2.default.query(node);\n if (match == null || match.blotName !== 'list-item' || !deltaEndsWith(delta, '\\n')) {\n return delta;\n }\n var indent = -1,\n parent = node.parentNode;\n while (!parent.classList.contains('ql-clipboard')) {\n if ((_parchment2.default.query(parent) || {}).blotName === 'list') {\n indent += 1;\n }\n parent = parent.parentNode;\n }\n if (indent <= 0) return delta;\n return delta.compose(new _quillDelta2.default().retain(delta.length() - 1).retain(1, { indent: indent }));\n}\n\nfunction matchNewline(node, delta) {\n if (!deltaEndsWith(delta, '\\n')) {\n if (isLine(node) || delta.length() > 0 && node.nextSibling && isLine(node.nextSibling)) {\n delta.insert('\\n');\n }\n }\n return delta;\n}\n\nfunction matchSpacing(node, delta) {\n if (isLine(node) && node.nextElementSibling != null && !deltaEndsWith(delta, '\\n\\n')) {\n var nodeHeight = node.offsetHeight + parseFloat(computeStyle(node).marginTop) + parseFloat(computeStyle(node).marginBottom);\n if (node.nextElementSibling.offsetTop > node.offsetTop + nodeHeight * 1.5) {\n delta.insert('\\n');\n }\n }\n return delta;\n}\n\nfunction matchStyles(node, delta) {\n var formats = {};\n var style = node.style || {};\n if (style.fontStyle && computeStyle(node).fontStyle === 'italic') {\n formats.italic = true;\n }\n if (style.fontWeight && (computeStyle(node).fontWeight.startsWith('bold') || parseInt(computeStyle(node).fontWeight) >= 700)) {\n formats.bold = true;\n }\n if (Object.keys(formats).length > 0) {\n delta = applyFormat(delta, formats);\n }\n if (parseFloat(style.textIndent || 0) > 0) {\n // Could be 0.5in\n delta = new _quillDelta2.default().insert('\\t').concat(delta);\n }\n return delta;\n}\n\nfunction matchText(node, delta) {\n var text = node.data;\n // Word represents empty line with  \n if (node.parentNode.tagName === 'O:P') {\n return delta.insert(text.trim());\n }\n if (text.trim().length === 0 && node.parentNode.classList.contains('ql-clipboard')) {\n return delta;\n }\n if (!computeStyle(node.parentNode).whiteSpace.startsWith('pre')) {\n // eslint-disable-next-line func-style\n var replacer = function replacer(collapse, match) {\n match = match.replace(/[^\\u00a0]/g, ''); // \\u00a0 is nbsp;\n return match.length < 1 && collapse ? ' ' : match;\n };\n text = text.replace(/\\r\\n/g, ' ').replace(/\\n/g, ' ');\n text = text.replace(/\\s\\s+/g, replacer.bind(replacer, true)); // collapse whitespace\n if (node.previousSibling == null && isLine(node.parentNode) || node.previousSibling != null && isLine(node.previousSibling)) {\n text = text.replace(/^\\s+/, replacer.bind(replacer, false));\n }\n if (node.nextSibling == null && isLine(node.parentNode) || node.nextSibling != null && isLine(node.nextSibling)) {\n text = text.replace(/\\s+$/, replacer.bind(replacer, false));\n }\n }\n return delta.insert(text);\n}\n\nexports.default = Clipboard;\nexports.matchAttributor = matchAttributor;\nexports.matchBlot = matchBlot;\nexports.matchNewline = matchNewline;\nexports.matchSpacing = matchSpacing;\nexports.matchText = matchText;\n\n/***/ }),\n/* 56 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Bold = function (_Inline) {\n _inherits(Bold, _Inline);\n\n function Bold() {\n _classCallCheck(this, Bold);\n\n return _possibleConstructorReturn(this, (Bold.__proto__ || Object.getPrototypeOf(Bold)).apply(this, arguments));\n }\n\n _createClass(Bold, [{\n key: 'optimize',\n value: function optimize(context) {\n _get(Bold.prototype.__proto__ || Object.getPrototypeOf(Bold.prototype), 'optimize', this).call(this, context);\n if (this.domNode.tagName !== this.statics.tagName[0]) {\n this.replaceWith(this.statics.blotName);\n }\n }\n }], [{\n key: 'create',\n value: function create() {\n return _get(Bold.__proto__ || Object.getPrototypeOf(Bold), 'create', this).call(this);\n }\n }, {\n key: 'formats',\n value: function formats() {\n return true;\n }\n }]);\n\n return Bold;\n}(_inline2.default);\n\nBold.blotName = 'bold';\nBold.tagName = ['STRONG', 'B'];\n\nexports.default = Bold;\n\n/***/ }),\n/* 57 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.addControls = exports.default = undefined;\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar debug = (0, _logger2.default)('quill:toolbar');\n\nvar Toolbar = function (_Module) {\n _inherits(Toolbar, _Module);\n\n function Toolbar(quill, options) {\n _classCallCheck(this, Toolbar);\n\n var _this = _possibleConstructorReturn(this, (Toolbar.__proto__ || Object.getPrototypeOf(Toolbar)).call(this, quill, options));\n\n if (Array.isArray(_this.options.container)) {\n var container = document.createElement('div');\n addControls(container, _this.options.container);\n quill.container.parentNode.insertBefore(container, quill.container);\n _this.container = container;\n } else if (typeof _this.options.container === 'string') {\n _this.container = document.querySelector(_this.options.container);\n } else {\n _this.container = _this.options.container;\n }\n if (!(_this.container instanceof HTMLElement)) {\n var _ret;\n\n return _ret = debug.error('Container required for toolbar', _this.options), _possibleConstructorReturn(_this, _ret);\n }\n _this.container.classList.add('ql-toolbar');\n _this.controls = [];\n _this.handlers = {};\n Object.keys(_this.options.handlers).forEach(function (format) {\n _this.addHandler(format, _this.options.handlers[format]);\n });\n [].forEach.call(_this.container.querySelectorAll('button, select'), function (input) {\n _this.attach(input);\n });\n _this.quill.on(_quill2.default.events.EDITOR_CHANGE, function (type, range) {\n if (type === _quill2.default.events.SELECTION_CHANGE) {\n _this.update(range);\n }\n });\n _this.quill.on(_quill2.default.events.SCROLL_OPTIMIZE, function () {\n var _this$quill$selection = _this.quill.selection.getRange(),\n _this$quill$selection2 = _slicedToArray(_this$quill$selection, 1),\n range = _this$quill$selection2[0]; // quill.getSelection triggers update\n\n\n _this.update(range);\n });\n return _this;\n }\n\n _createClass(Toolbar, [{\n key: 'addHandler',\n value: function addHandler(format, handler) {\n this.handlers[format] = handler;\n }\n }, {\n key: 'attach',\n value: function attach(input) {\n var _this2 = this;\n\n var format = [].find.call(input.classList, function (className) {\n return className.indexOf('ql-') === 0;\n });\n if (!format) return;\n format = format.slice('ql-'.length);\n if (input.tagName === 'BUTTON') {\n input.setAttribute('type', 'button');\n }\n if (this.handlers[format] == null) {\n if (this.quill.scroll.whitelist != null && this.quill.scroll.whitelist[format] == null) {\n debug.warn('ignoring attaching to disabled format', format, input);\n return;\n }\n if (_parchment2.default.query(format) == null) {\n debug.warn('ignoring attaching to nonexistent format', format, input);\n return;\n }\n }\n var eventName = input.tagName === 'SELECT' ? 'change' : 'click';\n input.addEventListener(eventName, function (e) {\n var value = void 0;\n if (input.tagName === 'SELECT') {\n if (input.selectedIndex < 0) return;\n var selected = input.options[input.selectedIndex];\n if (selected.hasAttribute('selected')) {\n value = false;\n } else {\n value = selected.value || false;\n }\n } else {\n if (input.classList.contains('ql-active')) {\n value = false;\n } else {\n value = input.value || !input.hasAttribute('value');\n }\n e.preventDefault();\n }\n _this2.quill.focus();\n\n var _quill$selection$getR = _this2.quill.selection.getRange(),\n _quill$selection$getR2 = _slicedToArray(_quill$selection$getR, 1),\n range = _quill$selection$getR2[0];\n\n if (_this2.handlers[format] != null) {\n _this2.handlers[format].call(_this2, value);\n } else if (_parchment2.default.query(format).prototype instanceof _parchment2.default.Embed) {\n value = prompt('Enter ' + format);\n if (!value) return;\n _this2.quill.updateContents(new _quillDelta2.default().retain(range.index).delete(range.length).insert(_defineProperty({}, format, value)), _quill2.default.sources.USER);\n } else {\n _this2.quill.format(format, value, _quill2.default.sources.USER);\n }\n _this2.update(range);\n });\n // TODO use weakmap\n this.controls.push([format, input]);\n }\n }, {\n key: 'update',\n value: function update(range) {\n var formats = range == null ? {} : this.quill.getFormat(range);\n this.controls.forEach(function (pair) {\n var _pair = _slicedToArray(pair, 2),\n format = _pair[0],\n input = _pair[1];\n\n if (input.tagName === 'SELECT') {\n var option = void 0;\n if (range == null) {\n option = null;\n } else if (formats[format] == null) {\n option = input.querySelector('option[selected]');\n } else if (!Array.isArray(formats[format])) {\n var value = formats[format];\n if (typeof value === 'string') {\n value = value.replace(/\\\"/g, '\\\\\"');\n }\n option = input.querySelector('option[value=\"' + value + '\"]');\n }\n if (option == null) {\n input.value = ''; // TODO make configurable?\n input.selectedIndex = -1;\n } else {\n option.selected = true;\n }\n } else {\n if (range == null) {\n input.classList.remove('ql-active');\n } else if (input.hasAttribute('value')) {\n // both being null should match (default values)\n // '1' should match with 1 (headers)\n var isActive = formats[format] === input.getAttribute('value') || formats[format] != null && formats[format].toString() === input.getAttribute('value') || formats[format] == null && !input.getAttribute('value');\n input.classList.toggle('ql-active', isActive);\n } else {\n input.classList.toggle('ql-active', formats[format] != null);\n }\n }\n });\n }\n }]);\n\n return Toolbar;\n}(_module2.default);\n\nToolbar.DEFAULTS = {};\n\nfunction addButton(container, format, value) {\n var input = document.createElement('button');\n input.setAttribute('type', 'button');\n input.classList.add('ql-' + format);\n if (value != null) {\n input.value = value;\n }\n container.appendChild(input);\n}\n\nfunction addControls(container, groups) {\n if (!Array.isArray(groups[0])) {\n groups = [groups];\n }\n groups.forEach(function (controls) {\n var group = document.createElement('span');\n group.classList.add('ql-formats');\n controls.forEach(function (control) {\n if (typeof control === 'string') {\n addButton(group, control);\n } else {\n var format = Object.keys(control)[0];\n var value = control[format];\n if (Array.isArray(value)) {\n addSelect(group, format, value);\n } else {\n addButton(group, format, value);\n }\n }\n });\n container.appendChild(group);\n });\n}\n\nfunction addSelect(container, format, values) {\n var input = document.createElement('select');\n input.classList.add('ql-' + format);\n values.forEach(function (value) {\n var option = document.createElement('option');\n if (value !== false) {\n option.setAttribute('value', value);\n } else {\n option.setAttribute('selected', 'selected');\n }\n input.appendChild(option);\n });\n container.appendChild(input);\n}\n\nToolbar.DEFAULTS = {\n container: null,\n handlers: {\n clean: function clean() {\n var _this3 = this;\n\n var range = this.quill.getSelection();\n if (range == null) return;\n if (range.length == 0) {\n var formats = this.quill.getFormat();\n Object.keys(formats).forEach(function (name) {\n // Clean functionality in existing apps only clean inline formats\n if (_parchment2.default.query(name, _parchment2.default.Scope.INLINE) != null) {\n _this3.quill.format(name, false);\n }\n });\n } else {\n this.quill.removeFormat(range, _quill2.default.sources.USER);\n }\n },\n direction: function direction(value) {\n var align = this.quill.getFormat()['align'];\n if (value === 'rtl' && align == null) {\n this.quill.format('align', 'right', _quill2.default.sources.USER);\n } else if (!value && align === 'right') {\n this.quill.format('align', false, _quill2.default.sources.USER);\n }\n this.quill.format('direction', value, _quill2.default.sources.USER);\n },\n indent: function indent(value) {\n var range = this.quill.getSelection();\n var formats = this.quill.getFormat(range);\n var indent = parseInt(formats.indent || 0);\n if (value === '+1' || value === '-1') {\n var modifier = value === '+1' ? 1 : -1;\n if (formats.direction === 'rtl') modifier *= -1;\n this.quill.format('indent', indent + modifier, _quill2.default.sources.USER);\n }\n },\n link: function link(value) {\n if (value === true) {\n value = prompt('Enter link URL:');\n }\n this.quill.format('link', value, _quill2.default.sources.USER);\n },\n list: function list(value) {\n var range = this.quill.getSelection();\n var formats = this.quill.getFormat(range);\n if (value === 'check') {\n if (formats['list'] === 'checked' || formats['list'] === 'unchecked') {\n this.quill.format('list', false, _quill2.default.sources.USER);\n } else {\n this.quill.format('list', 'unchecked', _quill2.default.sources.USER);\n }\n } else {\n this.quill.format('list', value, _quill2.default.sources.USER);\n }\n }\n }\n};\n\nexports.default = Toolbar;\nexports.addControls = addControls;\n\n/***/ }),\n/* 58 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 59 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _picker = __webpack_require__(28);\n\nvar _picker2 = _interopRequireDefault(_picker);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ColorPicker = function (_Picker) {\n _inherits(ColorPicker, _Picker);\n\n function ColorPicker(select, label) {\n _classCallCheck(this, ColorPicker);\n\n var _this = _possibleConstructorReturn(this, (ColorPicker.__proto__ || Object.getPrototypeOf(ColorPicker)).call(this, select));\n\n _this.label.innerHTML = label;\n _this.container.classList.add('ql-color-picker');\n [].slice.call(_this.container.querySelectorAll('.ql-picker-item'), 0, 7).forEach(function (item) {\n item.classList.add('ql-primary');\n });\n return _this;\n }\n\n _createClass(ColorPicker, [{\n key: 'buildItem',\n value: function buildItem(option) {\n var item = _get(ColorPicker.prototype.__proto__ || Object.getPrototypeOf(ColorPicker.prototype), 'buildItem', this).call(this, option);\n item.style.backgroundColor = option.getAttribute('value') || '';\n return item;\n }\n }, {\n key: 'selectItem',\n value: function selectItem(item, trigger) {\n _get(ColorPicker.prototype.__proto__ || Object.getPrototypeOf(ColorPicker.prototype), 'selectItem', this).call(this, item, trigger);\n var colorLabel = this.label.querySelector('.ql-color-label');\n var value = item ? item.getAttribute('data-value') || '' : '';\n if (colorLabel) {\n if (colorLabel.tagName === 'line') {\n colorLabel.style.stroke = value;\n } else {\n colorLabel.style.fill = value;\n }\n }\n }\n }]);\n\n return ColorPicker;\n}(_picker2.default);\n\nexports.default = ColorPicker;\n\n/***/ }),\n/* 60 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _picker = __webpack_require__(28);\n\nvar _picker2 = _interopRequireDefault(_picker);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar IconPicker = function (_Picker) {\n _inherits(IconPicker, _Picker);\n\n function IconPicker(select, icons) {\n _classCallCheck(this, IconPicker);\n\n var _this = _possibleConstructorReturn(this, (IconPicker.__proto__ || Object.getPrototypeOf(IconPicker)).call(this, select));\n\n _this.container.classList.add('ql-icon-picker');\n [].forEach.call(_this.container.querySelectorAll('.ql-picker-item'), function (item) {\n item.innerHTML = icons[item.getAttribute('data-value') || ''];\n });\n _this.defaultItem = _this.container.querySelector('.ql-selected');\n _this.selectItem(_this.defaultItem);\n return _this;\n }\n\n _createClass(IconPicker, [{\n key: 'selectItem',\n value: function selectItem(item, trigger) {\n _get(IconPicker.prototype.__proto__ || Object.getPrototypeOf(IconPicker.prototype), 'selectItem', this).call(this, item, trigger);\n item = item || this.defaultItem;\n this.label.innerHTML = item.innerHTML;\n }\n }]);\n\n return IconPicker;\n}(_picker2.default);\n\nexports.default = IconPicker;\n\n/***/ }),\n/* 61 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Tooltip = function () {\n function Tooltip(quill, boundsContainer) {\n var _this = this;\n\n _classCallCheck(this, Tooltip);\n\n this.quill = quill;\n this.boundsContainer = boundsContainer || document.body;\n this.root = quill.addContainer('ql-tooltip');\n this.root.innerHTML = this.constructor.TEMPLATE;\n if (this.quill.root === this.quill.scrollingContainer) {\n this.quill.root.addEventListener('scroll', function () {\n _this.root.style.marginTop = -1 * _this.quill.root.scrollTop + 'px';\n });\n }\n this.hide();\n }\n\n _createClass(Tooltip, [{\n key: 'hide',\n value: function hide() {\n this.root.classList.add('ql-hidden');\n }\n }, {\n key: 'position',\n value: function position(reference) {\n var left = reference.left + reference.width / 2 - this.root.offsetWidth / 2;\n // root.scrollTop should be 0 if scrollContainer !== root\n var top = reference.bottom + this.quill.root.scrollTop;\n this.root.style.left = left + 'px';\n this.root.style.top = top + 'px';\n this.root.classList.remove('ql-flip');\n var containerBounds = this.boundsContainer.getBoundingClientRect();\n var rootBounds = this.root.getBoundingClientRect();\n var shift = 0;\n if (rootBounds.right > containerBounds.right) {\n shift = containerBounds.right - rootBounds.right;\n this.root.style.left = left + shift + 'px';\n }\n if (rootBounds.left < containerBounds.left) {\n shift = containerBounds.left - rootBounds.left;\n this.root.style.left = left + shift + 'px';\n }\n if (rootBounds.bottom > containerBounds.bottom) {\n var height = rootBounds.bottom - rootBounds.top;\n var verticalShift = reference.bottom - reference.top + height;\n this.root.style.top = top - verticalShift + 'px';\n this.root.classList.add('ql-flip');\n }\n return shift;\n }\n }, {\n key: 'show',\n value: function show() {\n this.root.classList.remove('ql-editing');\n this.root.classList.remove('ql-hidden');\n }\n }]);\n\n return Tooltip;\n}();\n\nexports.default = Tooltip;\n\n/***/ }),\n/* 62 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _emitter = __webpack_require__(8);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _base = __webpack_require__(43);\n\nvar _base2 = _interopRequireDefault(_base);\n\nvar _link = __webpack_require__(27);\n\nvar _link2 = _interopRequireDefault(_link);\n\nvar _selection = __webpack_require__(15);\n\nvar _icons = __webpack_require__(41);\n\nvar _icons2 = _interopRequireDefault(_icons);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar TOOLBAR_CONFIG = [[{ header: ['1', '2', '3', false] }], ['bold', 'italic', 'underline', 'link'], [{ list: 'ordered' }, { list: 'bullet' }], ['clean']];\n\nvar SnowTheme = function (_BaseTheme) {\n _inherits(SnowTheme, _BaseTheme);\n\n function SnowTheme(quill, options) {\n _classCallCheck(this, SnowTheme);\n\n if (options.modules.toolbar != null && options.modules.toolbar.container == null) {\n options.modules.toolbar.container = TOOLBAR_CONFIG;\n }\n\n var _this = _possibleConstructorReturn(this, (SnowTheme.__proto__ || Object.getPrototypeOf(SnowTheme)).call(this, quill, options));\n\n _this.quill.container.classList.add('ql-snow');\n return _this;\n }\n\n _createClass(SnowTheme, [{\n key: 'extendToolbar',\n value: function extendToolbar(toolbar) {\n toolbar.container.classList.add('ql-snow');\n this.buildButtons([].slice.call(toolbar.container.querySelectorAll('button')), _icons2.default);\n this.buildPickers([].slice.call(toolbar.container.querySelectorAll('select')), _icons2.default);\n this.tooltip = new SnowTooltip(this.quill, this.options.bounds);\n if (toolbar.container.querySelector('.ql-link')) {\n this.quill.keyboard.addBinding({ key: 'K', shortKey: true }, function (range, context) {\n toolbar.handlers['link'].call(toolbar, !context.format.link);\n });\n }\n }\n }]);\n\n return SnowTheme;\n}(_base2.default);\n\nSnowTheme.DEFAULTS = (0, _extend2.default)(true, {}, _base2.default.DEFAULTS, {\n modules: {\n toolbar: {\n handlers: {\n link: function link(value) {\n if (value) {\n var range = this.quill.getSelection();\n if (range == null || range.length == 0) return;\n var preview = this.quill.getText(range);\n if (/^\\S+@\\S+\\.\\S+$/.test(preview) && preview.indexOf('mailto:') !== 0) {\n preview = 'mailto:' + preview;\n }\n var tooltip = this.quill.theme.tooltip;\n tooltip.edit('link', preview);\n } else {\n this.quill.format('link', false);\n }\n }\n }\n }\n }\n});\n\nvar SnowTooltip = function (_BaseTooltip) {\n _inherits(SnowTooltip, _BaseTooltip);\n\n function SnowTooltip(quill, bounds) {\n _classCallCheck(this, SnowTooltip);\n\n var _this2 = _possibleConstructorReturn(this, (SnowTooltip.__proto__ || Object.getPrototypeOf(SnowTooltip)).call(this, quill, bounds));\n\n _this2.preview = _this2.root.querySelector('a.ql-preview');\n return _this2;\n }\n\n _createClass(SnowTooltip, [{\n key: 'listen',\n value: function listen() {\n var _this3 = this;\n\n _get(SnowTooltip.prototype.__proto__ || Object.getPrototypeOf(SnowTooltip.prototype), 'listen', this).call(this);\n this.root.querySelector('a.ql-action').addEventListener('click', function (event) {\n if (_this3.root.classList.contains('ql-editing')) {\n _this3.save();\n } else {\n _this3.edit('link', _this3.preview.textContent);\n }\n event.preventDefault();\n });\n this.root.querySelector('a.ql-remove').addEventListener('click', function (event) {\n if (_this3.linkRange != null) {\n var range = _this3.linkRange;\n _this3.restoreFocus();\n _this3.quill.formatText(range, 'link', false, _emitter2.default.sources.USER);\n delete _this3.linkRange;\n }\n event.preventDefault();\n _this3.hide();\n });\n this.quill.on(_emitter2.default.events.SELECTION_CHANGE, function (range, oldRange, source) {\n if (range == null) return;\n if (range.length === 0 && source === _emitter2.default.sources.USER) {\n var _quill$scroll$descend = _this3.quill.scroll.descendant(_link2.default, range.index),\n _quill$scroll$descend2 = _slicedToArray(_quill$scroll$descend, 2),\n link = _quill$scroll$descend2[0],\n offset = _quill$scroll$descend2[1];\n\n if (link != null) {\n _this3.linkRange = new _selection.Range(range.index - offset, link.length());\n var preview = _link2.default.formats(link.domNode);\n _this3.preview.textContent = preview;\n _this3.preview.setAttribute('href', preview);\n _this3.show();\n _this3.position(_this3.quill.getBounds(_this3.linkRange));\n return;\n }\n } else {\n delete _this3.linkRange;\n }\n _this3.hide();\n });\n }\n }, {\n key: 'show',\n value: function show() {\n _get(SnowTooltip.prototype.__proto__ || Object.getPrototypeOf(SnowTooltip.prototype), 'show', this).call(this);\n this.root.removeAttribute('data-mode');\n }\n }]);\n\n return SnowTooltip;\n}(_base.BaseTooltip);\n\nSnowTooltip.TEMPLATE = ['
', '', '', ''].join('');\n\nexports.default = SnowTheme;\n\n/***/ }),\n/* 63 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _core = __webpack_require__(29);\n\nvar _core2 = _interopRequireDefault(_core);\n\nvar _align = __webpack_require__(36);\n\nvar _direction = __webpack_require__(38);\n\nvar _indent = __webpack_require__(64);\n\nvar _blockquote = __webpack_require__(65);\n\nvar _blockquote2 = _interopRequireDefault(_blockquote);\n\nvar _header = __webpack_require__(66);\n\nvar _header2 = _interopRequireDefault(_header);\n\nvar _list = __webpack_require__(67);\n\nvar _list2 = _interopRequireDefault(_list);\n\nvar _background = __webpack_require__(37);\n\nvar _color = __webpack_require__(26);\n\nvar _font = __webpack_require__(39);\n\nvar _size = __webpack_require__(40);\n\nvar _bold = __webpack_require__(56);\n\nvar _bold2 = _interopRequireDefault(_bold);\n\nvar _italic = __webpack_require__(68);\n\nvar _italic2 = _interopRequireDefault(_italic);\n\nvar _link = __webpack_require__(27);\n\nvar _link2 = _interopRequireDefault(_link);\n\nvar _script = __webpack_require__(69);\n\nvar _script2 = _interopRequireDefault(_script);\n\nvar _strike = __webpack_require__(70);\n\nvar _strike2 = _interopRequireDefault(_strike);\n\nvar _underline = __webpack_require__(71);\n\nvar _underline2 = _interopRequireDefault(_underline);\n\nvar _image = __webpack_require__(72);\n\nvar _image2 = _interopRequireDefault(_image);\n\nvar _video = __webpack_require__(73);\n\nvar _video2 = _interopRequireDefault(_video);\n\nvar _code = __webpack_require__(13);\n\nvar _code2 = _interopRequireDefault(_code);\n\nvar _formula = __webpack_require__(74);\n\nvar _formula2 = _interopRequireDefault(_formula);\n\nvar _syntax = __webpack_require__(75);\n\nvar _syntax2 = _interopRequireDefault(_syntax);\n\nvar _toolbar = __webpack_require__(57);\n\nvar _toolbar2 = _interopRequireDefault(_toolbar);\n\nvar _icons = __webpack_require__(41);\n\nvar _icons2 = _interopRequireDefault(_icons);\n\nvar _picker = __webpack_require__(28);\n\nvar _picker2 = _interopRequireDefault(_picker);\n\nvar _colorPicker = __webpack_require__(59);\n\nvar _colorPicker2 = _interopRequireDefault(_colorPicker);\n\nvar _iconPicker = __webpack_require__(60);\n\nvar _iconPicker2 = _interopRequireDefault(_iconPicker);\n\nvar _tooltip = __webpack_require__(61);\n\nvar _tooltip2 = _interopRequireDefault(_tooltip);\n\nvar _bubble = __webpack_require__(108);\n\nvar _bubble2 = _interopRequireDefault(_bubble);\n\nvar _snow = __webpack_require__(62);\n\nvar _snow2 = _interopRequireDefault(_snow);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_core2.default.register({\n 'attributors/attribute/direction': _direction.DirectionAttribute,\n\n 'attributors/class/align': _align.AlignClass,\n 'attributors/class/background': _background.BackgroundClass,\n 'attributors/class/color': _color.ColorClass,\n 'attributors/class/direction': _direction.DirectionClass,\n 'attributors/class/font': _font.FontClass,\n 'attributors/class/size': _size.SizeClass,\n\n 'attributors/style/align': _align.AlignStyle,\n 'attributors/style/background': _background.BackgroundStyle,\n 'attributors/style/color': _color.ColorStyle,\n 'attributors/style/direction': _direction.DirectionStyle,\n 'attributors/style/font': _font.FontStyle,\n 'attributors/style/size': _size.SizeStyle\n}, true);\n\n_core2.default.register({\n 'formats/align': _align.AlignClass,\n 'formats/direction': _direction.DirectionClass,\n 'formats/indent': _indent.IndentClass,\n\n 'formats/background': _background.BackgroundStyle,\n 'formats/color': _color.ColorStyle,\n 'formats/font': _font.FontClass,\n 'formats/size': _size.SizeClass,\n\n 'formats/blockquote': _blockquote2.default,\n 'formats/code-block': _code2.default,\n 'formats/header': _header2.default,\n 'formats/list': _list2.default,\n\n 'formats/bold': _bold2.default,\n 'formats/code': _code.Code,\n 'formats/italic': _italic2.default,\n 'formats/link': _link2.default,\n 'formats/script': _script2.default,\n 'formats/strike': _strike2.default,\n 'formats/underline': _underline2.default,\n\n 'formats/image': _image2.default,\n 'formats/video': _video2.default,\n\n 'formats/list/item': _list.ListItem,\n\n 'modules/formula': _formula2.default,\n 'modules/syntax': _syntax2.default,\n 'modules/toolbar': _toolbar2.default,\n\n 'themes/bubble': _bubble2.default,\n 'themes/snow': _snow2.default,\n\n 'ui/icons': _icons2.default,\n 'ui/picker': _picker2.default,\n 'ui/icon-picker': _iconPicker2.default,\n 'ui/color-picker': _colorPicker2.default,\n 'ui/tooltip': _tooltip2.default\n}, true);\n\nexports.default = _core2.default;\n\n/***/ }),\n/* 64 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.IndentClass = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar IdentAttributor = function (_Parchment$Attributor) {\n _inherits(IdentAttributor, _Parchment$Attributor);\n\n function IdentAttributor() {\n _classCallCheck(this, IdentAttributor);\n\n return _possibleConstructorReturn(this, (IdentAttributor.__proto__ || Object.getPrototypeOf(IdentAttributor)).apply(this, arguments));\n }\n\n _createClass(IdentAttributor, [{\n key: 'add',\n value: function add(node, value) {\n if (value === '+1' || value === '-1') {\n var indent = this.value(node) || 0;\n value = value === '+1' ? indent + 1 : indent - 1;\n }\n if (value === 0) {\n this.remove(node);\n return true;\n } else {\n return _get(IdentAttributor.prototype.__proto__ || Object.getPrototypeOf(IdentAttributor.prototype), 'add', this).call(this, node, value);\n }\n }\n }, {\n key: 'canAdd',\n value: function canAdd(node, value) {\n return _get(IdentAttributor.prototype.__proto__ || Object.getPrototypeOf(IdentAttributor.prototype), 'canAdd', this).call(this, node, value) || _get(IdentAttributor.prototype.__proto__ || Object.getPrototypeOf(IdentAttributor.prototype), 'canAdd', this).call(this, node, parseInt(value));\n }\n }, {\n key: 'value',\n value: function value(node) {\n return parseInt(_get(IdentAttributor.prototype.__proto__ || Object.getPrototypeOf(IdentAttributor.prototype), 'value', this).call(this, node)) || undefined; // Don't return NaN\n }\n }]);\n\n return IdentAttributor;\n}(_parchment2.default.Attributor.Class);\n\nvar IndentClass = new IdentAttributor('indent', 'ql-indent', {\n scope: _parchment2.default.Scope.BLOCK,\n whitelist: [1, 2, 3, 4, 5, 6, 7, 8]\n});\n\nexports.IndentClass = IndentClass;\n\n/***/ }),\n/* 65 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Blockquote = function (_Block) {\n _inherits(Blockquote, _Block);\n\n function Blockquote() {\n _classCallCheck(this, Blockquote);\n\n return _possibleConstructorReturn(this, (Blockquote.__proto__ || Object.getPrototypeOf(Blockquote)).apply(this, arguments));\n }\n\n return Blockquote;\n}(_block2.default);\n\nBlockquote.blotName = 'blockquote';\nBlockquote.tagName = 'blockquote';\n\nexports.default = Blockquote;\n\n/***/ }),\n/* 66 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Header = function (_Block) {\n _inherits(Header, _Block);\n\n function Header() {\n _classCallCheck(this, Header);\n\n return _possibleConstructorReturn(this, (Header.__proto__ || Object.getPrototypeOf(Header)).apply(this, arguments));\n }\n\n _createClass(Header, null, [{\n key: 'formats',\n value: function formats(domNode) {\n return this.tagName.indexOf(domNode.tagName) + 1;\n }\n }]);\n\n return Header;\n}(_block2.default);\n\nHeader.blotName = 'header';\nHeader.tagName = ['H1', 'H2', 'H3', 'H4', 'H5', 'H6'];\n\nexports.default = Header;\n\n/***/ }),\n/* 67 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.ListItem = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nvar _container = __webpack_require__(25);\n\nvar _container2 = _interopRequireDefault(_container);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ListItem = function (_Block) {\n _inherits(ListItem, _Block);\n\n function ListItem() {\n _classCallCheck(this, ListItem);\n\n return _possibleConstructorReturn(this, (ListItem.__proto__ || Object.getPrototypeOf(ListItem)).apply(this, arguments));\n }\n\n _createClass(ListItem, [{\n key: 'format',\n value: function format(name, value) {\n if (name === List.blotName && !value) {\n this.replaceWith(_parchment2.default.create(this.statics.scope));\n } else {\n _get(ListItem.prototype.__proto__ || Object.getPrototypeOf(ListItem.prototype), 'format', this).call(this, name, value);\n }\n }\n }, {\n key: 'remove',\n value: function remove() {\n if (this.prev == null && this.next == null) {\n this.parent.remove();\n } else {\n _get(ListItem.prototype.__proto__ || Object.getPrototypeOf(ListItem.prototype), 'remove', this).call(this);\n }\n }\n }, {\n key: 'replaceWith',\n value: function replaceWith(name, value) {\n this.parent.isolate(this.offset(this.parent), this.length());\n if (name === this.parent.statics.blotName) {\n this.parent.replaceWith(name, value);\n return this;\n } else {\n this.parent.unwrap();\n return _get(ListItem.prototype.__proto__ || Object.getPrototypeOf(ListItem.prototype), 'replaceWith', this).call(this, name, value);\n }\n }\n }], [{\n key: 'formats',\n value: function formats(domNode) {\n return domNode.tagName === this.tagName ? undefined : _get(ListItem.__proto__ || Object.getPrototypeOf(ListItem), 'formats', this).call(this, domNode);\n }\n }]);\n\n return ListItem;\n}(_block2.default);\n\nListItem.blotName = 'list-item';\nListItem.tagName = 'LI';\n\nvar List = function (_Container) {\n _inherits(List, _Container);\n\n _createClass(List, null, [{\n key: 'create',\n value: function create(value) {\n var tagName = value === 'ordered' ? 'OL' : 'UL';\n var node = _get(List.__proto__ || Object.getPrototypeOf(List), 'create', this).call(this, tagName);\n if (value === 'checked' || value === 'unchecked') {\n node.setAttribute('data-checked', value === 'checked');\n }\n return node;\n }\n }, {\n key: 'formats',\n value: function formats(domNode) {\n if (domNode.tagName === 'OL') return 'ordered';\n if (domNode.tagName === 'UL') {\n if (domNode.hasAttribute('data-checked')) {\n return domNode.getAttribute('data-checked') === 'true' ? 'checked' : 'unchecked';\n } else {\n return 'bullet';\n }\n }\n return undefined;\n }\n }]);\n\n function List(domNode) {\n _classCallCheck(this, List);\n\n var _this2 = _possibleConstructorReturn(this, (List.__proto__ || Object.getPrototypeOf(List)).call(this, domNode));\n\n var listEventHandler = function listEventHandler(e) {\n if (e.target.parentNode !== domNode) return;\n var format = _this2.statics.formats(domNode);\n var blot = _parchment2.default.find(e.target);\n if (format === 'checked') {\n blot.format('list', 'unchecked');\n } else if (format === 'unchecked') {\n blot.format('list', 'checked');\n }\n };\n\n domNode.addEventListener('touchstart', listEventHandler);\n domNode.addEventListener('mousedown', listEventHandler);\n return _this2;\n }\n\n _createClass(List, [{\n key: 'format',\n value: function format(name, value) {\n if (this.children.length > 0) {\n this.children.tail.format(name, value);\n }\n }\n }, {\n key: 'formats',\n value: function formats() {\n // We don't inherit from FormatBlot\n return _defineProperty({}, this.statics.blotName, this.statics.formats(this.domNode));\n }\n }, {\n key: 'insertBefore',\n value: function insertBefore(blot, ref) {\n if (blot instanceof ListItem) {\n _get(List.prototype.__proto__ || Object.getPrototypeOf(List.prototype), 'insertBefore', this).call(this, blot, ref);\n } else {\n var index = ref == null ? this.length() : ref.offset(this);\n var after = this.split(index);\n after.parent.insertBefore(blot, after);\n }\n }\n }, {\n key: 'optimize',\n value: function optimize(context) {\n _get(List.prototype.__proto__ || Object.getPrototypeOf(List.prototype), 'optimize', this).call(this, context);\n var next = this.next;\n if (next != null && next.prev === this && next.statics.blotName === this.statics.blotName && next.domNode.tagName === this.domNode.tagName && next.domNode.getAttribute('data-checked') === this.domNode.getAttribute('data-checked')) {\n next.moveChildren(this);\n next.remove();\n }\n }\n }, {\n key: 'replace',\n value: function replace(target) {\n if (target.statics.blotName !== this.statics.blotName) {\n var item = _parchment2.default.create(this.statics.defaultChild);\n target.moveChildren(item);\n this.appendChild(item);\n }\n _get(List.prototype.__proto__ || Object.getPrototypeOf(List.prototype), 'replace', this).call(this, target);\n }\n }]);\n\n return List;\n}(_container2.default);\n\nList.blotName = 'list';\nList.scope = _parchment2.default.Scope.BLOCK_BLOT;\nList.tagName = ['OL', 'UL'];\nList.defaultChild = 'list-item';\nList.allowedChildren = [ListItem];\n\nexports.ListItem = ListItem;\nexports.default = List;\n\n/***/ }),\n/* 68 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _bold = __webpack_require__(56);\n\nvar _bold2 = _interopRequireDefault(_bold);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Italic = function (_Bold) {\n _inherits(Italic, _Bold);\n\n function Italic() {\n _classCallCheck(this, Italic);\n\n return _possibleConstructorReturn(this, (Italic.__proto__ || Object.getPrototypeOf(Italic)).apply(this, arguments));\n }\n\n return Italic;\n}(_bold2.default);\n\nItalic.blotName = 'italic';\nItalic.tagName = ['EM', 'I'];\n\nexports.default = Italic;\n\n/***/ }),\n/* 69 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Script = function (_Inline) {\n _inherits(Script, _Inline);\n\n function Script() {\n _classCallCheck(this, Script);\n\n return _possibleConstructorReturn(this, (Script.__proto__ || Object.getPrototypeOf(Script)).apply(this, arguments));\n }\n\n _createClass(Script, null, [{\n key: 'create',\n value: function create(value) {\n if (value === 'super') {\n return document.createElement('sup');\n } else if (value === 'sub') {\n return document.createElement('sub');\n } else {\n return _get(Script.__proto__ || Object.getPrototypeOf(Script), 'create', this).call(this, value);\n }\n }\n }, {\n key: 'formats',\n value: function formats(domNode) {\n if (domNode.tagName === 'SUB') return 'sub';\n if (domNode.tagName === 'SUP') return 'super';\n return undefined;\n }\n }]);\n\n return Script;\n}(_inline2.default);\n\nScript.blotName = 'script';\nScript.tagName = ['SUB', 'SUP'];\n\nexports.default = Script;\n\n/***/ }),\n/* 70 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Strike = function (_Inline) {\n _inherits(Strike, _Inline);\n\n function Strike() {\n _classCallCheck(this, Strike);\n\n return _possibleConstructorReturn(this, (Strike.__proto__ || Object.getPrototypeOf(Strike)).apply(this, arguments));\n }\n\n return Strike;\n}(_inline2.default);\n\nStrike.blotName = 'strike';\nStrike.tagName = 'S';\n\nexports.default = Strike;\n\n/***/ }),\n/* 71 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Underline = function (_Inline) {\n _inherits(Underline, _Inline);\n\n function Underline() {\n _classCallCheck(this, Underline);\n\n return _possibleConstructorReturn(this, (Underline.__proto__ || Object.getPrototypeOf(Underline)).apply(this, arguments));\n }\n\n return Underline;\n}(_inline2.default);\n\nUnderline.blotName = 'underline';\nUnderline.tagName = 'U';\n\nexports.default = Underline;\n\n/***/ }),\n/* 72 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _link = __webpack_require__(27);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ATTRIBUTES = ['alt', 'height', 'width'];\n\nvar Image = function (_Parchment$Embed) {\n _inherits(Image, _Parchment$Embed);\n\n function Image() {\n _classCallCheck(this, Image);\n\n return _possibleConstructorReturn(this, (Image.__proto__ || Object.getPrototypeOf(Image)).apply(this, arguments));\n }\n\n _createClass(Image, [{\n key: 'format',\n value: function format(name, value) {\n if (ATTRIBUTES.indexOf(name) > -1) {\n if (value) {\n this.domNode.setAttribute(name, value);\n } else {\n this.domNode.removeAttribute(name);\n }\n } else {\n _get(Image.prototype.__proto__ || Object.getPrototypeOf(Image.prototype), 'format', this).call(this, name, value);\n }\n }\n }], [{\n key: 'create',\n value: function create(value) {\n var node = _get(Image.__proto__ || Object.getPrototypeOf(Image), 'create', this).call(this, value);\n if (typeof value === 'string') {\n node.setAttribute('src', this.sanitize(value));\n }\n return node;\n }\n }, {\n key: 'formats',\n value: function formats(domNode) {\n return ATTRIBUTES.reduce(function (formats, attribute) {\n if (domNode.hasAttribute(attribute)) {\n formats[attribute] = domNode.getAttribute(attribute);\n }\n return formats;\n }, {});\n }\n }, {\n key: 'match',\n value: function match(url) {\n return (/\\.(jpe?g|gif|png)$/.test(url) || /^data:image\\/.+;base64/.test(url)\n );\n }\n }, {\n key: 'sanitize',\n value: function sanitize(url) {\n return (0, _link.sanitize)(url, ['http', 'https', 'data']) ? url : '//:0';\n }\n }, {\n key: 'value',\n value: function value(domNode) {\n return domNode.getAttribute('src');\n }\n }]);\n\n return Image;\n}(_parchment2.default.Embed);\n\nImage.blotName = 'image';\nImage.tagName = 'IMG';\n\nexports.default = Image;\n\n/***/ }),\n/* 73 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _block = __webpack_require__(4);\n\nvar _link = __webpack_require__(27);\n\nvar _link2 = _interopRequireDefault(_link);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ATTRIBUTES = ['height', 'width'];\n\nvar Video = function (_BlockEmbed) {\n _inherits(Video, _BlockEmbed);\n\n function Video() {\n _classCallCheck(this, Video);\n\n return _possibleConstructorReturn(this, (Video.__proto__ || Object.getPrototypeOf(Video)).apply(this, arguments));\n }\n\n _createClass(Video, [{\n key: 'format',\n value: function format(name, value) {\n if (ATTRIBUTES.indexOf(name) > -1) {\n if (value) {\n this.domNode.setAttribute(name, value);\n } else {\n this.domNode.removeAttribute(name);\n }\n } else {\n _get(Video.prototype.__proto__ || Object.getPrototypeOf(Video.prototype), 'format', this).call(this, name, value);\n }\n }\n }], [{\n key: 'create',\n value: function create(value) {\n var node = _get(Video.__proto__ || Object.getPrototypeOf(Video), 'create', this).call(this, value);\n node.setAttribute('frameborder', '0');\n node.setAttribute('allowfullscreen', true);\n node.setAttribute('src', this.sanitize(value));\n return node;\n }\n }, {\n key: 'formats',\n value: function formats(domNode) {\n return ATTRIBUTES.reduce(function (formats, attribute) {\n if (domNode.hasAttribute(attribute)) {\n formats[attribute] = domNode.getAttribute(attribute);\n }\n return formats;\n }, {});\n }\n }, {\n key: 'sanitize',\n value: function sanitize(url) {\n return _link2.default.sanitize(url);\n }\n }, {\n key: 'value',\n value: function value(domNode) {\n return domNode.getAttribute('src');\n }\n }]);\n\n return Video;\n}(_block.BlockEmbed);\n\nVideo.blotName = 'video';\nVideo.className = 'ql-video';\nVideo.tagName = 'IFRAME';\n\nexports.default = Video;\n\n/***/ }),\n/* 74 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.FormulaBlot = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _embed = __webpack_require__(35);\n\nvar _embed2 = _interopRequireDefault(_embed);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar FormulaBlot = function (_Embed) {\n _inherits(FormulaBlot, _Embed);\n\n function FormulaBlot() {\n _classCallCheck(this, FormulaBlot);\n\n return _possibleConstructorReturn(this, (FormulaBlot.__proto__ || Object.getPrototypeOf(FormulaBlot)).apply(this, arguments));\n }\n\n _createClass(FormulaBlot, null, [{\n key: 'create',\n value: function create(value) {\n var node = _get(FormulaBlot.__proto__ || Object.getPrototypeOf(FormulaBlot), 'create', this).call(this, value);\n if (typeof value === 'string') {\n window.katex.render(value, node, {\n throwOnError: false,\n errorColor: '#f00'\n });\n node.setAttribute('data-value', value);\n }\n return node;\n }\n }, {\n key: 'value',\n value: function value(domNode) {\n return domNode.getAttribute('data-value');\n }\n }]);\n\n return FormulaBlot;\n}(_embed2.default);\n\nFormulaBlot.blotName = 'formula';\nFormulaBlot.className = 'ql-formula';\nFormulaBlot.tagName = 'SPAN';\n\nvar Formula = function (_Module) {\n _inherits(Formula, _Module);\n\n _createClass(Formula, null, [{\n key: 'register',\n value: function register() {\n _quill2.default.register(FormulaBlot, true);\n }\n }]);\n\n function Formula() {\n _classCallCheck(this, Formula);\n\n var _this2 = _possibleConstructorReturn(this, (Formula.__proto__ || Object.getPrototypeOf(Formula)).call(this));\n\n if (window.katex == null) {\n throw new Error('Formula module requires KaTeX.');\n }\n return _this2;\n }\n\n return Formula;\n}(_module2.default);\n\nexports.FormulaBlot = FormulaBlot;\nexports.default = Formula;\n\n/***/ }),\n/* 75 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.CodeToken = exports.CodeBlock = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nvar _code = __webpack_require__(13);\n\nvar _code2 = _interopRequireDefault(_code);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar SyntaxCodeBlock = function (_CodeBlock) {\n _inherits(SyntaxCodeBlock, _CodeBlock);\n\n function SyntaxCodeBlock() {\n _classCallCheck(this, SyntaxCodeBlock);\n\n return _possibleConstructorReturn(this, (SyntaxCodeBlock.__proto__ || Object.getPrototypeOf(SyntaxCodeBlock)).apply(this, arguments));\n }\n\n _createClass(SyntaxCodeBlock, [{\n key: 'replaceWith',\n value: function replaceWith(block) {\n this.domNode.textContent = this.domNode.textContent;\n this.attach();\n _get(SyntaxCodeBlock.prototype.__proto__ || Object.getPrototypeOf(SyntaxCodeBlock.prototype), 'replaceWith', this).call(this, block);\n }\n }, {\n key: 'highlight',\n value: function highlight(_highlight) {\n var text = this.domNode.textContent;\n if (this.cachedText !== text) {\n if (text.trim().length > 0 || this.cachedText == null) {\n this.domNode.innerHTML = _highlight(text);\n this.domNode.normalize();\n this.attach();\n }\n this.cachedText = text;\n }\n }\n }]);\n\n return SyntaxCodeBlock;\n}(_code2.default);\n\nSyntaxCodeBlock.className = 'ql-syntax';\n\nvar CodeToken = new _parchment2.default.Attributor.Class('token', 'hljs', {\n scope: _parchment2.default.Scope.INLINE\n});\n\nvar Syntax = function (_Module) {\n _inherits(Syntax, _Module);\n\n _createClass(Syntax, null, [{\n key: 'register',\n value: function register() {\n _quill2.default.register(CodeToken, true);\n _quill2.default.register(SyntaxCodeBlock, true);\n }\n }]);\n\n function Syntax(quill, options) {\n _classCallCheck(this, Syntax);\n\n var _this2 = _possibleConstructorReturn(this, (Syntax.__proto__ || Object.getPrototypeOf(Syntax)).call(this, quill, options));\n\n if (typeof _this2.options.highlight !== 'function') {\n throw new Error('Syntax module requires highlight.js. Please include the library on the page before Quill.');\n }\n var timer = null;\n _this2.quill.on(_quill2.default.events.SCROLL_OPTIMIZE, function () {\n clearTimeout(timer);\n timer = setTimeout(function () {\n _this2.highlight();\n timer = null;\n }, _this2.options.interval);\n });\n _this2.highlight();\n return _this2;\n }\n\n _createClass(Syntax, [{\n key: 'highlight',\n value: function highlight() {\n var _this3 = this;\n\n if (this.quill.selection.composing) return;\n this.quill.update(_quill2.default.sources.USER);\n var range = this.quill.getSelection();\n this.quill.scroll.descendants(SyntaxCodeBlock).forEach(function (code) {\n code.highlight(_this3.options.highlight);\n });\n this.quill.update(_quill2.default.sources.SILENT);\n if (range != null) {\n this.quill.setSelection(range, _quill2.default.sources.SILENT);\n }\n }\n }]);\n\n return Syntax;\n}(_module2.default);\n\nSyntax.DEFAULTS = {\n highlight: function () {\n if (window.hljs == null) return null;\n return function (text) {\n var result = window.hljs.highlightAuto(text);\n return result.value;\n };\n }(),\n interval: 1000\n};\n\nexports.CodeBlock = SyntaxCodeBlock;\nexports.CodeToken = CodeToken;\nexports.default = Syntax;\n\n/***/ }),\n/* 76 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 77 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 78 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 79 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 80 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 81 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 82 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 83 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 84 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 85 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 86 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 87 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 88 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 89 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 90 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 91 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 92 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 93 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 94 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 95 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 96 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 97 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 98 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 99 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 100 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 101 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 102 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 103 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 104 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 105 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 106 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 107 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 108 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.BubbleTooltip = undefined;\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _emitter = __webpack_require__(8);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _base = __webpack_require__(43);\n\nvar _base2 = _interopRequireDefault(_base);\n\nvar _selection = __webpack_require__(15);\n\nvar _icons = __webpack_require__(41);\n\nvar _icons2 = _interopRequireDefault(_icons);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar TOOLBAR_CONFIG = [['bold', 'italic', 'link'], [{ header: 1 }, { header: 2 }, 'blockquote']];\n\nvar BubbleTheme = function (_BaseTheme) {\n _inherits(BubbleTheme, _BaseTheme);\n\n function BubbleTheme(quill, options) {\n _classCallCheck(this, BubbleTheme);\n\n if (options.modules.toolbar != null && options.modules.toolbar.container == null) {\n options.modules.toolbar.container = TOOLBAR_CONFIG;\n }\n\n var _this = _possibleConstructorReturn(this, (BubbleTheme.__proto__ || Object.getPrototypeOf(BubbleTheme)).call(this, quill, options));\n\n _this.quill.container.classList.add('ql-bubble');\n return _this;\n }\n\n _createClass(BubbleTheme, [{\n key: 'extendToolbar',\n value: function extendToolbar(toolbar) {\n this.tooltip = new BubbleTooltip(this.quill, this.options.bounds);\n this.tooltip.root.appendChild(toolbar.container);\n this.buildButtons([].slice.call(toolbar.container.querySelectorAll('button')), _icons2.default);\n this.buildPickers([].slice.call(toolbar.container.querySelectorAll('select')), _icons2.default);\n }\n }]);\n\n return BubbleTheme;\n}(_base2.default);\n\nBubbleTheme.DEFAULTS = (0, _extend2.default)(true, {}, _base2.default.DEFAULTS, {\n modules: {\n toolbar: {\n handlers: {\n link: function link(value) {\n if (!value) {\n this.quill.format('link', false);\n } else {\n this.quill.theme.tooltip.edit();\n }\n }\n }\n }\n }\n});\n\nvar BubbleTooltip = function (_BaseTooltip) {\n _inherits(BubbleTooltip, _BaseTooltip);\n\n function BubbleTooltip(quill, bounds) {\n _classCallCheck(this, BubbleTooltip);\n\n var _this2 = _possibleConstructorReturn(this, (BubbleTooltip.__proto__ || Object.getPrototypeOf(BubbleTooltip)).call(this, quill, bounds));\n\n _this2.quill.on(_emitter2.default.events.EDITOR_CHANGE, function (type, range, oldRange, source) {\n if (type !== _emitter2.default.events.SELECTION_CHANGE) return;\n if (range != null && range.length > 0 && source === _emitter2.default.sources.USER) {\n _this2.show();\n // Lock our width so we will expand beyond our offsetParent boundaries\n _this2.root.style.left = '0px';\n _this2.root.style.width = '';\n _this2.root.style.width = _this2.root.offsetWidth + 'px';\n var lines = _this2.quill.getLines(range.index, range.length);\n if (lines.length === 1) {\n _this2.position(_this2.quill.getBounds(range));\n } else {\n var lastLine = lines[lines.length - 1];\n var index = _this2.quill.getIndex(lastLine);\n var length = Math.min(lastLine.length() - 1, range.index + range.length - index);\n var _bounds = _this2.quill.getBounds(new _selection.Range(index, length));\n _this2.position(_bounds);\n }\n } else if (document.activeElement !== _this2.textbox && _this2.quill.hasFocus()) {\n _this2.hide();\n }\n });\n return _this2;\n }\n\n _createClass(BubbleTooltip, [{\n key: 'listen',\n value: function listen() {\n var _this3 = this;\n\n _get(BubbleTooltip.prototype.__proto__ || Object.getPrototypeOf(BubbleTooltip.prototype), 'listen', this).call(this);\n this.root.querySelector('.ql-close').addEventListener('click', function () {\n _this3.root.classList.remove('ql-editing');\n });\n this.quill.on(_emitter2.default.events.SCROLL_OPTIMIZE, function () {\n // Let selection be restored by toolbar handlers before repositioning\n setTimeout(function () {\n if (_this3.root.classList.contains('ql-hidden')) return;\n var range = _this3.quill.getSelection();\n if (range != null) {\n _this3.position(_this3.quill.getBounds(range));\n }\n }, 1);\n });\n }\n }, {\n key: 'cancel',\n value: function cancel() {\n this.show();\n }\n }, {\n key: 'position',\n value: function position(reference) {\n var shift = _get(BubbleTooltip.prototype.__proto__ || Object.getPrototypeOf(BubbleTooltip.prototype), 'position', this).call(this, reference);\n var arrow = this.root.querySelector('.ql-tooltip-arrow');\n arrow.style.marginLeft = '';\n if (shift === 0) return shift;\n arrow.style.marginLeft = -1 * shift - arrow.offsetWidth / 2 + 'px';\n }\n }]);\n\n return BubbleTooltip;\n}(_base.BaseTooltip);\n\nBubbleTooltip.TEMPLATE = ['', '
', '', '', '
'].join('');\n\nexports.BubbleTooltip = BubbleTooltip;\nexports.default = BubbleTheme;\n\n/***/ }),\n/* 109 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(63);\n\n\n/***/ })\n/******/ ])[\"default\"];\n});","/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"\")&&(k=k.replace(\"\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e\"+b.valueOf().toString()+\"\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a>=g;e-=g;rg=1<<32-oc(b)+e|c<w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;ww?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&uh(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=sh(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Ah(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=yh(f.type,f.key,f.props,null,a.mode,h),h.ref=sh(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=zh(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);th(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=xh(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Bh=vh(!0),Ch=vh(!1),Dh={},Eh=Uf(Dh),Fh=Uf(Dh),Gh=Uf(Dh);function Hh(a){if(a===Dh)throw Error(p(174));return a}function Ih(a,b){G(Gh,b);G(Fh,a);G(Eh,Dh);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:lb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=lb(b,a)}E(Eh);G(Eh,b)}function Jh(){E(Eh);E(Fh);E(Gh)}\nfunction Kh(a){Hh(Gh.current);var b=Hh(Eh.current);var c=lb(b,a.type);b!==c&&(G(Fh,a),G(Eh,c))}function Lh(a){Fh.current===a&&(E(Eh),E(Fh))}var M=Uf(0);\nfunction Mh(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&128))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var Nh=[];\nfunction Oh(){for(var a=0;ac?c:4;a(!0);var d=Qh.transition;Qh.transition={};try{a(!1),b()}finally{C=c,Qh.transition=d}}function Fi(){return di().memoizedState}\nfunction Gi(a,b,c){var d=lh(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,c);else if(c=Yg(a,b,c,d),null!==c){var e=L();mh(c,a,d,e);Ji(c,b,d)}}\nfunction ri(a,b,c){var d=lh(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,Xg(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=Yg(a,b,e,d);null!==c&&(e=L(),mh(c,a,d,e),Ji(c,b,d))}}\nfunction Hi(a){var b=a.alternate;return a===N||null!==b&&b===N}function Ii(a,b){Th=Sh=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Ji(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar ai={readContext:Vg,useCallback:Q,useContext:Q,useEffect:Q,useImperativeHandle:Q,useInsertionEffect:Q,useLayoutEffect:Q,useMemo:Q,useReducer:Q,useRef:Q,useState:Q,useDebugValue:Q,useDeferredValue:Q,useTransition:Q,useMutableSource:Q,useSyncExternalStore:Q,useId:Q,unstable_isNewReconciler:!1},Yh={readContext:Vg,useCallback:function(a,b){ci().memoizedState=[a,void 0===b?null:b];return a},useContext:Vg,useEffect:vi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ti(4194308,\n4,yi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ti(4194308,4,a,b)},useInsertionEffect:function(a,b){return ti(4,2,a,b)},useMemo:function(a,b){var c=ci();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=ci();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=Gi.bind(null,N,a);return[d.memoizedState,a]},useRef:function(a){var b=\nci();a={current:a};return b.memoizedState=a},useState:qi,useDebugValue:Ai,useDeferredValue:function(a){return ci().memoizedState=a},useTransition:function(){var a=qi(!1),b=a[0];a=Ei.bind(null,a[1]);ci().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=N,e=ci();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===R)throw Error(p(349));0!==(Rh&30)||ni(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;vi(ki.bind(null,d,\nf,a),[a]);d.flags|=2048;li(9,mi.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=ci(),b=R.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Uh++;0\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;Aj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eHj&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304)}else{if(!d)if(a=Mh(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Ej(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Hj&&1073741824!==c&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=M.current,G(M,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Ij(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(gj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Jj(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return Jh(),E(Wf),E(H),Oh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Lh(b),null;case 13:E(M);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(M),null;case 4:return Jh(),null;case 10:return Rg(b.type._context),null;case 22:case 23:return Ij(),\nnull;case 24:return null;default:return null}}var Kj=!1,U=!1,Lj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Mj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Nj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Oj=!1;\nfunction Pj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Lg(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Oj;Oj=!1;return n}\nfunction Qj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Nj(b,c,f)}e=e.next}while(e!==d)}}function Rj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Sj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Tj(a){var b=a.alternate;null!==b&&(a.alternate=null,Tj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Uj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Vj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Uj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}\nfunction Xj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Xj(a,b,c),a=a.sibling;null!==a;)Xj(a,b,c),a=a.sibling}var X=null,Yj=!1;function Zj(a,b,c){for(c=c.child;null!==c;)ak(a,b,c),c=c.sibling}\nfunction ak(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Mj(c,b);case 6:var d=X,e=Yj;X=null;Zj(a,b,c);X=d;Yj=e;null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Yj;X=c.stateNode.containerInfo;Yj=!0;\nZj(a,b,c);X=d;Yj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Nj(c,b,g):0!==(f&4)&&Nj(c,b,g));e=e.next}while(e!==d)}Zj(a,b,c);break;case 1:if(!U&&(Mj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Zj(a,b,c);break;case 21:Zj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Zj(a,b,c),U=d):Zj(a,b,c);break;default:Zj(a,b,c)}}function bk(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Lj);b.forEach(function(b){var d=ck.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction dk(a,b){var c=b.deletions;if(null!==c)for(var d=0;de&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*mk(d/1960))-d;if(10a?16:a;if(null===xk)var d=!1;else{a=xk;xk=null;yk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;kB()-gk?Lk(a,0):sk|=c);Ek(a,b)}function Zk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=L();a=Zg(a,b);null!==a&&(Ac(a,b,c),Ek(a,c))}function vj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Zk(a,c)}\nfunction ck(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Zk(a,c)}var Wk;\nWk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)Ug=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return Ug=!1,zj(a,b,c);Ug=0!==(a.flags&131072)?!0:!1}else Ug=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;jj(a,b);a=b.pendingProps;var e=Yf(b,H.current);Tg(b,c);e=Xh(null,b,d,a,e,c);var f=bi();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,ah(b),e.updater=nh,b.stateNode=e,e._reactInternals=b,rh(b,d,a,c),b=kj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Yi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{jj(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=$k(d);a=Lg(d,a);switch(e){case 0:b=dj(null,b,d,a,c);break a;case 1:b=ij(null,b,d,a,c);break a;case 11:b=Zi(null,b,d,a,c);break a;case 14:b=aj(null,b,d,Lg(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),dj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),ij(a,b,d,e,c);case 3:a:{lj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;bh(a,b);gh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ki(Error(p(423)),b);b=mj(a,b,d,c,e);break a}else if(d!==e){e=Ki(Error(p(424)),b);b=mj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Ch(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=$i(a,b,c);break a}Yi(a,b,d,c)}b=b.child}return b;case 5:return Kh(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\nhj(a,b),Yi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return pj(a,b,c);case 4:return Ih(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Bh(b,null,d,c):Yi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),Zi(a,b,d,e,c);case 7:return Yi(a,b,b.pendingProps,c),b.child;case 8:return Yi(a,b,b.pendingProps.children,c),b.child;case 12:return Yi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Mg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=$i(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=ch(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);Sg(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);Sg(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Yi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,Tg(b,c),e=Vg(e),d=d(e),b.flags|=1,Yi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Lg(d,b.pendingProps),e=Lg(d.type,e),aj(a,b,d,e,c);case 15:return cj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),jj(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,Tg(b,c),ph(b,d,e),rh(b,d,e,c),kj(null,b,d,!0,a,c);case 19:return yj(a,b,c);case 22:return ej(a,b,c)}throw Error(p(156,b.tag));};function Gk(a,b){return ac(a,b)}\nfunction al(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new al(a,b,c,d)}function bj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction $k(a){if(\"function\"===typeof a)return bj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction wh(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction yh(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)bj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Ah(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return qj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Ah(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function qj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function xh(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction zh(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction bl(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function cl(a,b,c,d,e,f,g,h,k){a=new bl(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};ah(f);return a}function dl(a,b,c){var d=318 (which dropped IE support).\n */\nvar isTabKey = function isTabKey(event) {\n return event.code === \"Tab\" || event.keyCode === 9;\n};\nvar isEscKey = function isEscKey(event) {\n return event.code === \"Escape\" || event.keyCode === 27;\n};\n\nvar ariaHiddenInstances = 0;\n\nvar ModalPortal = function (_Component) {\n _inherits(ModalPortal, _Component);\n\n function ModalPortal(props) {\n _classCallCheck(this, ModalPortal);\n\n var _this = _possibleConstructorReturn(this, (ModalPortal.__proto__ || Object.getPrototypeOf(ModalPortal)).call(this, props));\n\n _this.setOverlayRef = function (overlay) {\n _this.overlay = overlay;\n _this.props.overlayRef && _this.props.overlayRef(overlay);\n };\n\n _this.setContentRef = function (content) {\n _this.content = content;\n _this.props.contentRef && _this.props.contentRef(content);\n };\n\n _this.afterClose = function () {\n var _this$props = _this.props,\n appElement = _this$props.appElement,\n ariaHideApp = _this$props.ariaHideApp,\n htmlOpenClassName = _this$props.htmlOpenClassName,\n bodyOpenClassName = _this$props.bodyOpenClassName,\n parentSelector = _this$props.parentSelector;\n\n\n var parentDocument = parentSelector && parentSelector().ownerDocument || document;\n\n // Remove classes.\n bodyOpenClassName && classList.remove(parentDocument.body, bodyOpenClassName);\n\n htmlOpenClassName && classList.remove(parentDocument.getElementsByTagName(\"html\")[0], htmlOpenClassName);\n\n // Reset aria-hidden attribute if all modals have been removed\n if (ariaHideApp && ariaHiddenInstances > 0) {\n ariaHiddenInstances -= 1;\n\n if (ariaHiddenInstances === 0) {\n ariaAppHider.show(appElement);\n }\n }\n\n if (_this.props.shouldFocusAfterRender) {\n if (_this.props.shouldReturnFocusAfterClose) {\n focusManager.returnFocus(_this.props.preventScroll);\n focusManager.teardownScopedFocus();\n } else {\n focusManager.popWithoutFocus();\n }\n }\n\n if (_this.props.onAfterClose) {\n _this.props.onAfterClose();\n }\n\n _portalOpenInstances2.default.deregister(_this);\n };\n\n _this.open = function () {\n _this.beforeOpen();\n if (_this.state.afterOpen && _this.state.beforeClose) {\n clearTimeout(_this.closeTimer);\n _this.setState({ beforeClose: false });\n } else {\n if (_this.props.shouldFocusAfterRender) {\n focusManager.setupScopedFocus(_this.node);\n focusManager.markForFocusLater();\n }\n\n _this.setState({ isOpen: true }, function () {\n _this.openAnimationFrame = requestAnimationFrame(function () {\n _this.setState({ afterOpen: true });\n\n if (_this.props.isOpen && _this.props.onAfterOpen) {\n _this.props.onAfterOpen({\n overlayEl: _this.overlay,\n contentEl: _this.content\n });\n }\n });\n });\n }\n };\n\n _this.close = function () {\n if (_this.props.closeTimeoutMS > 0) {\n _this.closeWithTimeout();\n } else {\n _this.closeWithoutTimeout();\n }\n };\n\n _this.focusContent = function () {\n return _this.content && !_this.contentHasFocus() && _this.content.focus({ preventScroll: true });\n };\n\n _this.closeWithTimeout = function () {\n var closesAt = Date.now() + _this.props.closeTimeoutMS;\n _this.setState({ beforeClose: true, closesAt: closesAt }, function () {\n _this.closeTimer = setTimeout(_this.closeWithoutTimeout, _this.state.closesAt - Date.now());\n });\n };\n\n _this.closeWithoutTimeout = function () {\n _this.setState({\n beforeClose: false,\n isOpen: false,\n afterOpen: false,\n closesAt: null\n }, _this.afterClose);\n };\n\n _this.handleKeyDown = function (event) {\n if (isTabKey(event)) {\n (0, _scopeTab2.default)(_this.content, event);\n }\n\n if (_this.props.shouldCloseOnEsc && isEscKey(event)) {\n event.stopPropagation();\n _this.requestClose(event);\n }\n };\n\n _this.handleOverlayOnClick = function (event) {\n if (_this.shouldClose === null) {\n _this.shouldClose = true;\n }\n\n if (_this.shouldClose && _this.props.shouldCloseOnOverlayClick) {\n if (_this.ownerHandlesClose()) {\n _this.requestClose(event);\n } else {\n _this.focusContent();\n }\n }\n _this.shouldClose = null;\n };\n\n _this.handleContentOnMouseUp = function () {\n _this.shouldClose = false;\n };\n\n _this.handleOverlayOnMouseDown = function (event) {\n if (!_this.props.shouldCloseOnOverlayClick && event.target == _this.overlay) {\n event.preventDefault();\n }\n };\n\n _this.handleContentOnClick = function () {\n _this.shouldClose = false;\n };\n\n _this.handleContentOnMouseDown = function () {\n _this.shouldClose = false;\n };\n\n _this.requestClose = function (event) {\n return _this.ownerHandlesClose() && _this.props.onRequestClose(event);\n };\n\n _this.ownerHandlesClose = function () {\n return _this.props.onRequestClose;\n };\n\n _this.shouldBeClosed = function () {\n return !_this.state.isOpen && !_this.state.beforeClose;\n };\n\n _this.contentHasFocus = function () {\n return document.activeElement === _this.content || _this.content.contains(document.activeElement);\n };\n\n _this.buildClassName = function (which, additional) {\n var classNames = (typeof additional === \"undefined\" ? \"undefined\" : _typeof(additional)) === \"object\" ? additional : {\n base: CLASS_NAMES[which],\n afterOpen: CLASS_NAMES[which] + \"--after-open\",\n beforeClose: CLASS_NAMES[which] + \"--before-close\"\n };\n var className = classNames.base;\n if (_this.state.afterOpen) {\n className = className + \" \" + classNames.afterOpen;\n }\n if (_this.state.beforeClose) {\n className = className + \" \" + classNames.beforeClose;\n }\n return typeof additional === \"string\" && additional ? className + \" \" + additional : className;\n };\n\n _this.attributesFromObject = function (prefix, items) {\n return Object.keys(items).reduce(function (acc, name) {\n acc[prefix + \"-\" + name] = items[name];\n return acc;\n }, {});\n };\n\n _this.state = {\n afterOpen: false,\n beforeClose: false\n };\n\n _this.shouldClose = null;\n _this.moveFromContentToOverlay = null;\n return _this;\n }\n\n _createClass(ModalPortal, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (this.props.isOpen) {\n this.open();\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, prevState) {\n if (process.env.NODE_ENV !== \"production\") {\n if (prevProps.bodyOpenClassName !== this.props.bodyOpenClassName) {\n // eslint-disable-next-line no-console\n console.warn('React-Modal: \"bodyOpenClassName\" prop has been modified. ' + \"This may cause unexpected behavior when multiple modals are open.\");\n }\n if (prevProps.htmlOpenClassName !== this.props.htmlOpenClassName) {\n // eslint-disable-next-line no-console\n console.warn('React-Modal: \"htmlOpenClassName\" prop has been modified. ' + \"This may cause unexpected behavior when multiple modals are open.\");\n }\n }\n\n if (this.props.isOpen && !prevProps.isOpen) {\n this.open();\n } else if (!this.props.isOpen && prevProps.isOpen) {\n this.close();\n }\n\n // Focus only needs to be set once when the modal is being opened\n if (this.props.shouldFocusAfterRender && this.state.isOpen && !prevState.isOpen) {\n this.focusContent();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.state.isOpen) {\n this.afterClose();\n }\n clearTimeout(this.closeTimer);\n cancelAnimationFrame(this.openAnimationFrame);\n }\n }, {\n key: \"beforeOpen\",\n value: function beforeOpen() {\n var _props = this.props,\n appElement = _props.appElement,\n ariaHideApp = _props.ariaHideApp,\n htmlOpenClassName = _props.htmlOpenClassName,\n bodyOpenClassName = _props.bodyOpenClassName,\n parentSelector = _props.parentSelector;\n\n\n var parentDocument = parentSelector && parentSelector().ownerDocument || document;\n\n // Add classes.\n bodyOpenClassName && classList.add(parentDocument.body, bodyOpenClassName);\n\n htmlOpenClassName && classList.add(parentDocument.getElementsByTagName(\"html\")[0], htmlOpenClassName);\n\n if (ariaHideApp) {\n ariaHiddenInstances += 1;\n ariaAppHider.hide(appElement);\n }\n\n _portalOpenInstances2.default.register(this);\n }\n\n // Don't steal focus from inner elements\n\n }, {\n key: \"render\",\n value: function render() {\n var _props2 = this.props,\n id = _props2.id,\n className = _props2.className,\n overlayClassName = _props2.overlayClassName,\n defaultStyles = _props2.defaultStyles,\n children = _props2.children;\n\n var contentStyles = className ? {} : defaultStyles.content;\n var overlayStyles = overlayClassName ? {} : defaultStyles.overlay;\n\n if (this.shouldBeClosed()) {\n return null;\n }\n\n var overlayProps = {\n ref: this.setOverlayRef,\n className: this.buildClassName(\"overlay\", overlayClassName),\n style: _extends({}, overlayStyles, this.props.style.overlay),\n onClick: this.handleOverlayOnClick,\n onMouseDown: this.handleOverlayOnMouseDown\n };\n\n var contentProps = _extends({\n id: id,\n ref: this.setContentRef,\n style: _extends({}, contentStyles, this.props.style.content),\n className: this.buildClassName(\"content\", className),\n tabIndex: \"-1\",\n onKeyDown: this.handleKeyDown,\n onMouseDown: this.handleContentOnMouseDown,\n onMouseUp: this.handleContentOnMouseUp,\n onClick: this.handleContentOnClick,\n role: this.props.role,\n \"aria-label\": this.props.contentLabel\n }, this.attributesFromObject(\"aria\", _extends({ modal: true }, this.props.aria)), this.attributesFromObject(\"data\", this.props.data || {}), {\n \"data-testid\": this.props.testId\n });\n\n var contentElement = this.props.contentElement(contentProps, children);\n return this.props.overlayElement(overlayProps, contentElement);\n }\n }]);\n\n return ModalPortal;\n}(_react.Component);\n\nModalPortal.defaultProps = {\n style: {\n overlay: {},\n content: {}\n },\n defaultStyles: {}\n};\nModalPortal.propTypes = {\n isOpen: _propTypes2.default.bool.isRequired,\n defaultStyles: _propTypes2.default.shape({\n content: _propTypes2.default.object,\n overlay: _propTypes2.default.object\n }),\n style: _propTypes2.default.shape({\n content: _propTypes2.default.object,\n overlay: _propTypes2.default.object\n }),\n className: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.object]),\n overlayClassName: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.object]),\n parentSelector: _propTypes2.default.func,\n bodyOpenClassName: _propTypes2.default.string,\n htmlOpenClassName: _propTypes2.default.string,\n ariaHideApp: _propTypes2.default.bool,\n appElement: _propTypes2.default.oneOfType([_propTypes2.default.instanceOf(_safeHTMLElement2.default), _propTypes2.default.instanceOf(_safeHTMLElement.SafeHTMLCollection), _propTypes2.default.instanceOf(_safeHTMLElement.SafeNodeList), _propTypes2.default.arrayOf(_propTypes2.default.instanceOf(_safeHTMLElement2.default))]),\n onAfterOpen: _propTypes2.default.func,\n onAfterClose: _propTypes2.default.func,\n onRequestClose: _propTypes2.default.func,\n closeTimeoutMS: _propTypes2.default.number,\n shouldFocusAfterRender: _propTypes2.default.bool,\n shouldCloseOnOverlayClick: _propTypes2.default.bool,\n shouldReturnFocusAfterClose: _propTypes2.default.bool,\n preventScroll: _propTypes2.default.bool,\n role: _propTypes2.default.string,\n contentLabel: _propTypes2.default.string,\n aria: _propTypes2.default.object,\n data: _propTypes2.default.object,\n children: _propTypes2.default.node,\n shouldCloseOnEsc: _propTypes2.default.bool,\n overlayRef: _propTypes2.default.func,\n contentRef: _propTypes2.default.func,\n id: _propTypes2.default.string,\n overlayElement: _propTypes2.default.func,\n contentElement: _propTypes2.default.func,\n testId: _propTypes2.default.string\n};\nexports.default = ModalPortal;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.resetState = resetState;\nexports.log = log;\nexports.assertNodeList = assertNodeList;\nexports.setElement = setElement;\nexports.validateElement = validateElement;\nexports.hide = hide;\nexports.show = show;\nexports.documentNotReadyOrSSRTesting = documentNotReadyOrSSRTesting;\n\nvar _warning = require(\"warning\");\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _safeHTMLElement = require(\"./safeHTMLElement\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar globalElement = null;\n\n/* eslint-disable no-console */\n/* istanbul ignore next */\nfunction resetState() {\n if (globalElement) {\n if (globalElement.removeAttribute) {\n globalElement.removeAttribute(\"aria-hidden\");\n } else if (globalElement.length != null) {\n globalElement.forEach(function (element) {\n return element.removeAttribute(\"aria-hidden\");\n });\n } else {\n document.querySelectorAll(globalElement).forEach(function (element) {\n return element.removeAttribute(\"aria-hidden\");\n });\n }\n }\n globalElement = null;\n}\n\n/* istanbul ignore next */\nfunction log() {\n if (process.env.NODE_ENV !== \"production\") {\n var check = globalElement || {};\n console.log(\"ariaAppHider ----------\");\n console.log(check.nodeName, check.className, check.id);\n console.log(\"end ariaAppHider ----------\");\n }\n}\n/* eslint-enable no-console */\n\nfunction assertNodeList(nodeList, selector) {\n if (!nodeList || !nodeList.length) {\n throw new Error(\"react-modal: No elements were found for selector \" + selector + \".\");\n }\n}\n\nfunction setElement(element) {\n var useElement = element;\n if (typeof useElement === \"string\" && _safeHTMLElement.canUseDOM) {\n var el = document.querySelectorAll(useElement);\n assertNodeList(el, useElement);\n useElement = el;\n }\n globalElement = useElement || globalElement;\n return globalElement;\n}\n\nfunction validateElement(appElement) {\n var el = appElement || globalElement;\n if (el) {\n return Array.isArray(el) || el instanceof HTMLCollection || el instanceof NodeList ? el : [el];\n } else {\n (0, _warning2.default)(false, [\"react-modal: App element is not defined.\", \"Please use `Modal.setAppElement(el)` or set `appElement={el}`.\", \"This is needed so screen readers don't see main content\", \"when modal is opened. It is not recommended, but you can opt-out\", \"by setting `ariaHideApp={false}`.\"].join(\" \"));\n\n return [];\n }\n}\n\nfunction hide(appElement) {\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = validateElement(appElement)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var el = _step.value;\n\n el.setAttribute(\"aria-hidden\", \"true\");\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n}\n\nfunction show(appElement) {\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = validateElement(appElement)[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var el = _step2.value;\n\n el.removeAttribute(\"aria-hidden\");\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n}\n\nfunction documentNotReadyOrSSRTesting() {\n globalElement = null;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.resetState = resetState;\nexports.log = log;\n\nvar _portalOpenInstances = require(\"./portalOpenInstances\");\n\nvar _portalOpenInstances2 = _interopRequireDefault(_portalOpenInstances);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// Body focus trap see Issue #742\n\nvar before = void 0,\n after = void 0,\n instances = [];\n\n/* eslint-disable no-console */\n/* istanbul ignore next */\nfunction resetState() {\n var _arr = [before, after];\n\n for (var _i = 0; _i < _arr.length; _i++) {\n var item = _arr[_i];\n if (!item) continue;\n item.parentNode && item.parentNode.removeChild(item);\n }\n before = after = null;\n instances = [];\n}\n\n/* istanbul ignore next */\nfunction log() {\n console.log(\"bodyTrap ----------\");\n console.log(instances.length);\n var _arr2 = [before, after];\n for (var _i2 = 0; _i2 < _arr2.length; _i2++) {\n var item = _arr2[_i2];\n var check = item || {};\n console.log(check.nodeName, check.className, check.id);\n }\n console.log(\"edn bodyTrap ----------\");\n}\n/* eslint-enable no-console */\n\nfunction focusContent() {\n if (instances.length === 0) {\n if (process.env.NODE_ENV !== \"production\") {\n // eslint-disable-next-line no-console\n console.warn(\"React-Modal: Open instances > 0 expected\");\n }\n return;\n }\n instances[instances.length - 1].focusContent();\n}\n\nfunction bodyTrap(eventType, openInstances) {\n if (!before && !after) {\n before = document.createElement(\"div\");\n before.setAttribute(\"data-react-modal-body-trap\", \"\");\n before.style.position = \"absolute\";\n before.style.opacity = \"0\";\n before.setAttribute(\"tabindex\", \"0\");\n before.addEventListener(\"focus\", focusContent);\n after = before.cloneNode();\n after.addEventListener(\"focus\", focusContent);\n }\n\n instances = openInstances;\n\n if (instances.length > 0) {\n // Add focus trap\n if (document.body.firstChild !== before) {\n document.body.insertBefore(before, document.body.firstChild);\n }\n if (document.body.lastChild !== after) {\n document.body.appendChild(after);\n }\n } else {\n // Remove focus trap\n if (before.parentElement) {\n before.parentElement.removeChild(before);\n }\n if (after.parentElement) {\n after.parentElement.removeChild(after);\n }\n }\n}\n\n_portalOpenInstances2.default.subscribe(bodyTrap);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.resetState = resetState;\nexports.log = log;\nvar htmlClassList = {};\nvar docBodyClassList = {};\n\n/* eslint-disable no-console */\n/* istanbul ignore next */\nfunction removeClass(at, cls) {\n at.classList.remove(cls);\n}\n\n/* istanbul ignore next */\nfunction resetState() {\n var htmlElement = document.getElementsByTagName(\"html\")[0];\n for (var cls in htmlClassList) {\n removeClass(htmlElement, htmlClassList[cls]);\n }\n\n var body = document.body;\n for (var _cls in docBodyClassList) {\n removeClass(body, docBodyClassList[_cls]);\n }\n\n htmlClassList = {};\n docBodyClassList = {};\n}\n\n/* istanbul ignore next */\nfunction log() {\n if (process.env.NODE_ENV !== \"production\") {\n var classes = document.getElementsByTagName(\"html\")[0].className;\n var buffer = \"Show tracked classes:\\n\\n\";\n\n buffer += \" (\" + classes + \"):\\n \";\n for (var x in htmlClassList) {\n buffer += \" \" + x + \" \" + htmlClassList[x] + \"\\n \";\n }\n\n classes = document.body.className;\n\n buffer += \"\\n\\ndoc.body (\" + classes + \"):\\n \";\n for (var _x in docBodyClassList) {\n buffer += \" \" + _x + \" \" + docBodyClassList[_x] + \"\\n \";\n }\n\n buffer += \"\\n\";\n\n console.log(buffer);\n }\n}\n/* eslint-enable no-console */\n\n/**\n * Track the number of reference of a class.\n * @param {object} poll The poll to receive the reference.\n * @param {string} className The class name.\n * @return {string}\n */\nvar incrementReference = function incrementReference(poll, className) {\n if (!poll[className]) {\n poll[className] = 0;\n }\n poll[className] += 1;\n return className;\n};\n\n/**\n * Drop the reference of a class.\n * @param {object} poll The poll to receive the reference.\n * @param {string} className The class name.\n * @return {string}\n */\nvar decrementReference = function decrementReference(poll, className) {\n if (poll[className]) {\n poll[className] -= 1;\n }\n return className;\n};\n\n/**\n * Track a class and add to the given class list.\n * @param {Object} classListRef A class list of an element.\n * @param {Object} poll The poll to be used.\n * @param {Array} classes The list of classes to be tracked.\n */\nvar trackClass = function trackClass(classListRef, poll, classes) {\n classes.forEach(function (className) {\n incrementReference(poll, className);\n classListRef.add(className);\n });\n};\n\n/**\n * Untrack a class and remove from the given class list if the reference\n * reaches 0.\n * @param {Object} classListRef A class list of an element.\n * @param {Object} poll The poll to be used.\n * @param {Array} classes The list of classes to be untracked.\n */\nvar untrackClass = function untrackClass(classListRef, poll, classes) {\n classes.forEach(function (className) {\n decrementReference(poll, className);\n poll[className] === 0 && classListRef.remove(className);\n });\n};\n\n/**\n * Public inferface to add classes to the document.body.\n * @param {string} bodyClass The class string to be added.\n * It may contain more then one class\n * with ' ' as separator.\n */\nvar add = exports.add = function add(element, classString) {\n return trackClass(element.classList, element.nodeName.toLowerCase() == \"html\" ? htmlClassList : docBodyClassList, classString.split(\" \"));\n};\n\n/**\n * Public inferface to remove classes from the document.body.\n * @param {string} bodyClass The class string to be added.\n * It may contain more then one class\n * with ' ' as separator.\n */\nvar remove = exports.remove = function remove(element, classString) {\n return untrackClass(element.classList, element.nodeName.toLowerCase() == \"html\" ? htmlClassList : docBodyClassList, classString.split(\" \"));\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.resetState = resetState;\nexports.log = log;\nexports.handleBlur = handleBlur;\nexports.handleFocus = handleFocus;\nexports.markForFocusLater = markForFocusLater;\nexports.returnFocus = returnFocus;\nexports.popWithoutFocus = popWithoutFocus;\nexports.setupScopedFocus = setupScopedFocus;\nexports.teardownScopedFocus = teardownScopedFocus;\n\nvar _tabbable = require(\"../helpers/tabbable\");\n\nvar _tabbable2 = _interopRequireDefault(_tabbable);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar focusLaterElements = [];\nvar modalElement = null;\nvar needToFocus = false;\n\n/* eslint-disable no-console */\n/* istanbul ignore next */\nfunction resetState() {\n focusLaterElements = [];\n}\n\n/* istanbul ignore next */\nfunction log() {\n if (process.env.NODE_ENV !== \"production\") {\n console.log(\"focusManager ----------\");\n focusLaterElements.forEach(function (f) {\n var check = f || {};\n console.log(check.nodeName, check.className, check.id);\n });\n console.log(\"end focusManager ----------\");\n }\n}\n/* eslint-enable no-console */\n\nfunction handleBlur() {\n needToFocus = true;\n}\n\nfunction handleFocus() {\n if (needToFocus) {\n needToFocus = false;\n if (!modalElement) {\n return;\n }\n // need to see how jQuery shims document.on('focusin') so we don't need the\n // setTimeout, firefox doesn't support focusin, if it did, we could focus\n // the element outside of a setTimeout. Side-effect of this implementation\n // is that the document.body gets focus, and then we focus our element right\n // after, seems fine.\n setTimeout(function () {\n if (modalElement.contains(document.activeElement)) {\n return;\n }\n var el = (0, _tabbable2.default)(modalElement)[0] || modalElement;\n el.focus();\n }, 0);\n }\n}\n\nfunction markForFocusLater() {\n focusLaterElements.push(document.activeElement);\n}\n\n/* eslint-disable no-console */\nfunction returnFocus() {\n var preventScroll = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n var toFocus = null;\n try {\n if (focusLaterElements.length !== 0) {\n toFocus = focusLaterElements.pop();\n toFocus.focus({ preventScroll: preventScroll });\n }\n return;\n } catch (e) {\n console.warn([\"You tried to return focus to\", toFocus, \"but it is not in the DOM anymore\"].join(\" \"));\n }\n}\n/* eslint-enable no-console */\n\nfunction popWithoutFocus() {\n focusLaterElements.length > 0 && focusLaterElements.pop();\n}\n\nfunction setupScopedFocus(element) {\n modalElement = element;\n\n if (window.addEventListener) {\n window.addEventListener(\"blur\", handleBlur, false);\n document.addEventListener(\"focus\", handleFocus, true);\n } else {\n window.attachEvent(\"onBlur\", handleBlur);\n document.attachEvent(\"onFocus\", handleFocus);\n }\n}\n\nfunction teardownScopedFocus() {\n modalElement = null;\n\n if (window.addEventListener) {\n window.removeEventListener(\"blur\", handleBlur);\n document.removeEventListener(\"focus\", handleFocus);\n } else {\n window.detachEvent(\"onBlur\", handleBlur);\n document.detachEvent(\"onFocus\", handleFocus);\n }\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.log = log;\nexports.resetState = resetState;\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n// Tracks portals that are open and emits events to subscribers\n\nvar PortalOpenInstances = function PortalOpenInstances() {\n var _this = this;\n\n _classCallCheck(this, PortalOpenInstances);\n\n this.register = function (openInstance) {\n if (_this.openInstances.indexOf(openInstance) !== -1) {\n if (process.env.NODE_ENV !== \"production\") {\n // eslint-disable-next-line no-console\n console.warn(\"React-Modal: Cannot register modal instance that's already open\");\n }\n return;\n }\n _this.openInstances.push(openInstance);\n _this.emit(\"register\");\n };\n\n this.deregister = function (openInstance) {\n var index = _this.openInstances.indexOf(openInstance);\n if (index === -1) {\n if (process.env.NODE_ENV !== \"production\") {\n // eslint-disable-next-line no-console\n console.warn(\"React-Modal: Unable to deregister \" + openInstance + \" as \" + \"it was never registered\");\n }\n return;\n }\n _this.openInstances.splice(index, 1);\n _this.emit(\"deregister\");\n };\n\n this.subscribe = function (callback) {\n _this.subscribers.push(callback);\n };\n\n this.emit = function (eventType) {\n _this.subscribers.forEach(function (subscriber) {\n return subscriber(eventType,\n // shallow copy to avoid accidental mutation\n _this.openInstances.slice());\n });\n };\n\n this.openInstances = [];\n this.subscribers = [];\n};\n\nvar portalOpenInstances = new PortalOpenInstances();\n\n/* eslint-disable no-console */\n/* istanbul ignore next */\nfunction log() {\n console.log(\"portalOpenInstances ----------\");\n console.log(portalOpenInstances.openInstances.length);\n portalOpenInstances.openInstances.forEach(function (p) {\n return console.log(p);\n });\n console.log(\"end portalOpenInstances ----------\");\n}\n\n/* istanbul ignore next */\nfunction resetState() {\n portalOpenInstances = new PortalOpenInstances();\n}\n/* eslint-enable no-console */\n\nexports.default = portalOpenInstances;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.canUseDOM = exports.SafeNodeList = exports.SafeHTMLCollection = undefined;\n\nvar _exenv = require(\"exenv\");\n\nvar _exenv2 = _interopRequireDefault(_exenv);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar EE = _exenv2.default;\n\nvar SafeHTMLElement = EE.canUseDOM ? window.HTMLElement : {};\n\nvar SafeHTMLCollection = exports.SafeHTMLCollection = EE.canUseDOM ? window.HTMLCollection : {};\n\nvar SafeNodeList = exports.SafeNodeList = EE.canUseDOM ? window.NodeList : {};\n\nvar canUseDOM = exports.canUseDOM = EE.canUseDOM;\n\nexports.default = SafeHTMLElement;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = scopeTab;\n\nvar _tabbable = require(\"./tabbable\");\n\nvar _tabbable2 = _interopRequireDefault(_tabbable);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction getActiveElement() {\n var el = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : document;\n\n return el.activeElement.shadowRoot ? getActiveElement(el.activeElement.shadowRoot) : el.activeElement;\n}\n\nfunction scopeTab(node, event) {\n var tabbable = (0, _tabbable2.default)(node);\n\n if (!tabbable.length) {\n // Do nothing, since there are no elements that can receive focus.\n event.preventDefault();\n return;\n }\n\n var target = void 0;\n\n var shiftKey = event.shiftKey;\n var head = tabbable[0];\n var tail = tabbable[tabbable.length - 1];\n var activeElement = getActiveElement();\n\n // proceed with default browser behavior on tab.\n // Focus on last element on shift + tab.\n if (node === activeElement) {\n if (!shiftKey) return;\n target = tail;\n }\n\n if (tail === activeElement && !shiftKey) {\n target = head;\n }\n\n if (head === activeElement && shiftKey) {\n target = tail;\n }\n\n if (target) {\n event.preventDefault();\n target.focus();\n return;\n }\n\n // Safari radio issue.\n //\n // Safari does not move the focus to the radio button,\n // so we need to force it to really walk through all elements.\n //\n // This is very error prone, since we are trying to guess\n // if it is a safari browser from the first occurence between\n // chrome or safari.\n //\n // The chrome user agent contains the first ocurrence\n // as the 'chrome/version' and later the 'safari/version'.\n var checkSafari = /(\\bChrome\\b|\\bSafari\\b)\\//.exec(navigator.userAgent);\n var isSafariDesktop = checkSafari != null && checkSafari[1] != \"Chrome\" && /\\biPod\\b|\\biPad\\b/g.exec(navigator.userAgent) == null;\n\n // If we are not in safari desktop, let the browser control\n // the focus\n if (!isSafariDesktop) return;\n\n var x = tabbable.indexOf(activeElement);\n\n if (x > -1) {\n x += shiftKey ? -1 : 1;\n }\n\n target = tabbable[x];\n\n // If the tabbable element does not exist,\n // focus head/tail based on shiftKey\n if (typeof target === \"undefined\") {\n event.preventDefault();\n target = shiftKey ? tail : head;\n target.focus();\n return;\n }\n\n event.preventDefault();\n\n target.focus();\n}\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = findTabbableDescendants;\n/*!\n * Adapted from jQuery UI core\n *\n * http://jqueryui.com\n *\n * Copyright 2014 jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/category/ui-core/\n */\n\nvar DISPLAY_NONE = \"none\";\nvar DISPLAY_CONTENTS = \"contents\";\n\nvar tabbableNode = /input|select|textarea|button|object|iframe/;\n\nfunction isNotOverflowing(element, style) {\n return style.getPropertyValue(\"overflow\") !== \"visible\" ||\n // if 'overflow: visible' set, check if there is actually any overflow\n element.scrollWidth <= 0 && element.scrollHeight <= 0;\n}\n\nfunction hidesContents(element) {\n var zeroSize = element.offsetWidth <= 0 && element.offsetHeight <= 0;\n\n // If the node is empty, this is good enough\n if (zeroSize && !element.innerHTML) return true;\n\n try {\n // Otherwise we need to check some styles\n var style = window.getComputedStyle(element);\n var displayValue = style.getPropertyValue(\"display\");\n return zeroSize ? displayValue !== DISPLAY_CONTENTS && isNotOverflowing(element, style) : displayValue === DISPLAY_NONE;\n } catch (exception) {\n // eslint-disable-next-line no-console\n console.warn(\"Failed to inspect element style\");\n return false;\n }\n}\n\nfunction visible(element) {\n var parentElement = element;\n var rootNode = element.getRootNode && element.getRootNode();\n while (parentElement) {\n if (parentElement === document.body) break;\n\n // if we are not hidden yet, skip to checking outside the Web Component\n if (rootNode && parentElement === rootNode) parentElement = rootNode.host.parentNode;\n\n if (hidesContents(parentElement)) return false;\n parentElement = parentElement.parentNode;\n }\n return true;\n}\n\nfunction focusable(element, isTabIndexNotNaN) {\n var nodeName = element.nodeName.toLowerCase();\n var res = tabbableNode.test(nodeName) && !element.disabled || (nodeName === \"a\" ? element.href || isTabIndexNotNaN : isTabIndexNotNaN);\n return res && visible(element);\n}\n\nfunction tabbable(element) {\n var tabIndex = element.getAttribute(\"tabindex\");\n if (tabIndex === null) tabIndex = undefined;\n var isTabIndexNaN = isNaN(tabIndex);\n return (isTabIndexNaN || tabIndex >= 0) && focusable(element, !isTabIndexNaN);\n}\n\nfunction findTabbableDescendants(element) {\n var descendants = [].slice.call(element.querySelectorAll(\"*\"), 0).reduce(function (finished, el) {\n return finished.concat(!el.shadowRoot ? [el] : findTabbableDescendants(el.shadowRoot));\n }, []);\n return descendants.filter(tabbable);\n}\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _Modal = require(\"./components/Modal\");\n\nvar _Modal2 = _interopRequireDefault(_Modal);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _Modal2.default;\nmodule.exports = exports[\"default\"];","/*\nReact-Quill\nhttps://github.com/zenoamaro/react-quill\n*/\n\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport isEqual from 'lodash/isEqual';\n\nimport Quill, {\n QuillOptionsStatic,\n DeltaStatic,\n RangeStatic,\n BoundsStatic,\n StringMap,\n Sources,\n} from 'quill';\n\n// Merged namespace hack to export types along with default object\n// See: https://github.com/Microsoft/TypeScript/issues/2719\nnamespace ReactQuill {\n export type Value = string | DeltaStatic;\n export type Range = RangeStatic | null;\n\n export interface QuillOptions extends QuillOptionsStatic {\n tabIndex?: number,\n }\n\n export interface ReactQuillProps {\n bounds?: string | HTMLElement,\n children?: React.ReactElement,\n className?: string,\n defaultValue?: Value,\n formats?: string[],\n id?: string,\n modules?: StringMap,\n onChange?(\n value: string,\n delta: DeltaStatic,\n source: Sources,\n editor: UnprivilegedEditor,\n ): void,\n onChangeSelection?(\n selection: Range,\n source: Sources,\n editor: UnprivilegedEditor,\n ): void,\n onFocus?(\n selection: Range,\n source: Sources,\n editor: UnprivilegedEditor,\n ): void,\n onBlur?(\n previousSelection: Range,\n source: Sources,\n editor: UnprivilegedEditor,\n ): void,\n onKeyDown?: React.EventHandler,\n onKeyPress?: React.EventHandler,\n onKeyUp?: React.EventHandler,\n placeholder?: string,\n preserveWhitespace?: boolean,\n readOnly?: boolean,\n scrollingContainer?: string | HTMLElement,\n style?: React.CSSProperties,\n tabIndex?: number,\n theme?: string,\n value?: Value,\n }\n\n export interface UnprivilegedEditor {\n getLength(): number;\n getText(index?: number, length?: number): string;\n getHTML(): string;\n getBounds(index: number, length?: number): BoundsStatic;\n getSelection(focus?: boolean): RangeStatic;\n getContents(index?: number, length?: number): DeltaStatic;\n }\n}\n\n// Re-import everything from namespace into scope for comfort\nimport Value = ReactQuill.Value;\nimport Range = ReactQuill.Range;\nimport QuillOptions = ReactQuill.QuillOptions;\nimport ReactQuillProps = ReactQuill.ReactQuillProps;\nimport UnprivilegedEditor = ReactQuill.UnprivilegedEditor;\n\ninterface ReactQuillState {\n generation: number,\n}\n\nclass ReactQuill extends React.Component {\n\n static displayName = 'React Quill'\n\n /*\n Export Quill to be able to call `register`\n */\n static Quill = Quill;\n\n /*\n Changing one of these props should cause a full re-render and a\n re-instantiation of the Quill editor.\n */\n dirtyProps: (keyof ReactQuillProps)[] = [\n 'modules',\n 'formats',\n 'bounds',\n 'theme',\n 'children',\n ]\n\n /*\n Changing one of these props should cause a regular update. These are mostly\n props that act on the container, rather than the quillized editing area.\n */\n cleanProps: (keyof ReactQuillProps)[] = [\n 'id',\n 'className',\n 'style',\n 'placeholder',\n 'tabIndex',\n 'onChange',\n 'onChangeSelection',\n 'onFocus',\n 'onBlur',\n 'onKeyPress',\n 'onKeyDown',\n 'onKeyUp',\n ]\n\n static defaultProps = {\n theme: 'snow',\n modules: {},\n readOnly: false,\n }\n\n state: ReactQuillState = {\n generation: 0,\n }\n\n /*\n The Quill Editor instance.\n */\n editor?: Quill\n\n /*\n Reference to the element holding the Quill editing area.\n */\n editingArea?: React.ReactInstance | null\n\n /*\n Tracks the internal value of the Quill editor\n */\n value: Value\n\n /*\n Tracks the internal selection of the Quill editor\n */\n selection: Range = null\n\n /*\n Used to compare whether deltas from `onChange` are being used as `value`.\n */\n lastDeltaChangeSet?: DeltaStatic\n\n /*\n Stores the contents of the editor to be restored after regeneration.\n */\n regenerationSnapshot?: {\n delta: DeltaStatic,\n selection: Range,\n }\n\n /*\n A weaker, unprivileged proxy for the editor that does not allow accidentally\n modifying editor state.\n */\n unprivilegedEditor?: UnprivilegedEditor\n\n constructor(props: ReactQuillProps) {\n super(props);\n const value = this.isControlled()? props.value : props.defaultValue;\n this.value = value ?? '';\n }\n\n validateProps(props: ReactQuillProps): void {\n if (React.Children.count(props.children) > 1) throw new Error(\n 'The Quill editing area can only be composed of a single React element.'\n );\n\n if (React.Children.count(props.children)) {\n const child = React.Children.only(props.children);\n if (child?.type === 'textarea') throw new Error(\n 'Quill does not support editing on a