{"version":3,"file":"static/js/main.e1922439.js","mappings":"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","sources":["../node_modules/enquire.js/src/MediaQuery.js","../node_modules/enquire.js/src/MediaQueryDispatch.js","../node_modules/enquire.js/src/QueryHandler.js","../node_modules/enquire.js/src/Util.js","../node_modules/enquire.js/src/index.js","../node_modules/invariant/browser.js","../node_modules/js-cookie/src/js.cookie.js","../node_modules/json2mq/index.js","../node_modules/lodash.debounce/index.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-fast-compare/index.js","../node_modules/react-fast-marquee/src/components/Marquee.tsx","../node_modules/react-ga4/dist/format.js","../node_modules/react-ga4/dist/ga4.js","../node_modules/react-ga4/dist/gtag.js","../node_modules/react-ga4/dist/index.js","../node_modules/react-slick/lib/arrows.js","../node_modules/react-slick/lib/default-props.js","../node_modules/react-slick/lib/dots.js","../node_modules/react-slick/lib/index.js","../node_modules/react-slick/lib/initial-state.js","../node_modules/react-slick/lib/inner-slider.js","../node_modules/react-slick/lib/slider.js","../node_modules/react-slick/lib/track.js","../node_modules/react-slick/lib/utils/innerSliderUtils.js","../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/resize-observer-polyfill/dist/ResizeObserver.es.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/shallowequal/index.js","../node_modules/string-convert/camel2hyphen.js","../node_modules/sweetalert2/dist/sweetalert2.all.js","../node_modules/classnames/index.js","../webpack/bootstrap","../webpack/runtime/compat get default export","../webpack/runtime/create fake namespace object","../webpack/runtime/define property getters","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/make namespace object","../webpack/runtime/publicPath","../node_modules/@remix-run/router/history.ts","../node_modules/@remix-run/router/utils.ts","../node_modules/@remix-run/router/router.ts","../node_modules/react-router/lib/context.ts","../node_modules/react-router/lib/hooks.tsx","../node_modules/react-router/lib/components.tsx","../node_modules/react-cookie-consent/src/components/ConditionalWrapper.tsx","../node_modules/react-cookie-consent/src/models/constants/sameSiteOptions.ts","../node_modules/react-cookie-consent/src/models/constants/positionOptions.ts","../node_modules/react-cookie-consent/src/models/constants/visibilityOptions.ts","../node_modules/react-cookie-consent/src/models/constants/defaultCookieName.ts","../node_modules/react-cookie-consent/src/CookieConsent.props.tsx","../node_modules/react-cookie-consent/src/CookieConsent.state.ts","../node_modules/react-cookie-consent/src/utilities.ts","../node_modules/react-cookie-consent/src/CookieConsent.tsx","../node_modules/react-router-dom/dom.ts","../node_modules/react-router-dom/index.tsx","components/CookieBanner.jsx","../node_modules/react-helmet-async/lib/index.esm.js","assets/hamburger.svg","assets/close.svg","assets/lock.svg","assets/playStore.svg","assets/appStore.svg","constants/index.js","../node_modules/mixpanel-browser/dist/mixpanel.module.js","eventDispatchers/MixpanelEventDispatcher.js","eventDispatchers/GoogleAnalyticsEventDispatcher.js","components/Navbar.jsx","../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/fa/index.mjs","../node_modules/react-icons/md/index.mjs","components/Footer.jsx","components/FooterBanner.jsx","components/Intro.jsx","components/Trusted.jsx","components/FeedbackCard.jsx","components/Feedback.jsx","components/Card.jsx","../node_modules/react-icons/io/index.mjs","components/UserGuide.jsx","components/Process.jsx","components/ServicesCard.jsx","components/Services.jsx","../node_modules/react-icons/sl/index.mjs","../node_modules/react-icons/gi/index.mjs","components/Achievement.jsx","components/TeamCard.jsx","components/Team.jsx","components/Banner.jsx","components/FeaturedIn.jsx","components/RecognizedBy.jsx","components/Contact.jsx","components/TopBanner.jsx","components/FeaturesPostCard.jsx","components/Featuresposts.jsx","components/BlogsCard.jsx","components/Blogs.jsx","components/BlogContent.jsx","components/Privacy.jsx","Pages/Home.jsx","Pages/Policy.jsx","Pages/Posts.jsx","Pages/DownloadPage.jsx","Pages/BlogsPage.jsx","Pages/Blog.jsx","App.js","index.js"],"sourcesContent":["var QueryHandler = require('./QueryHandler');\nvar each = require('./Util').each;\n\n/**\n * Represents a single media query, manages it's state and registered handlers for this query\n *\n * @constructor\n * @param {string} query the media query string\n * @param {boolean} [isUnconditional=false] whether the media query should run regardless of whether the conditions are met. Primarily for helping older browsers deal with mobile-first design\n */\nfunction MediaQuery(query, isUnconditional) {\n this.query = query;\n this.isUnconditional = isUnconditional;\n this.handlers = [];\n this.mql = window.matchMedia(query);\n\n var self = this;\n this.listener = function(mql) {\n // Chrome passes an MediaQueryListEvent object, while other browsers pass MediaQueryList directly\n self.mql = mql.currentTarget || mql;\n self.assess();\n };\n this.mql.addListener(this.listener);\n}\n\nMediaQuery.prototype = {\n\n constuctor : MediaQuery,\n\n /**\n * add a handler for this query, triggering if already active\n *\n * @param {object} handler\n * @param {function} handler.match callback for when query is activated\n * @param {function} [handler.unmatch] callback for when query is deactivated\n * @param {function} [handler.setup] callback for immediate execution when a query handler is registered\n * @param {boolean} [handler.deferSetup=false] should the setup callback be deferred until the first time the handler is matched?\n */\n addHandler : function(handler) {\n var qh = new QueryHandler(handler);\n this.handlers.push(qh);\n\n this.matches() && qh.on();\n },\n\n /**\n * removes the given handler from the collection, and calls it's destroy methods\n *\n * @param {object || function} handler the handler to remove\n */\n removeHandler : function(handler) {\n var handlers = this.handlers;\n each(handlers, function(h, i) {\n if(h.equals(handler)) {\n h.destroy();\n return !handlers.splice(i,1); //remove from array and exit each early\n }\n });\n },\n\n /**\n * Determine whether the media query should be considered a match\n *\n * @return {Boolean} true if media query can be considered a match, false otherwise\n */\n matches : function() {\n return this.mql.matches || this.isUnconditional;\n },\n\n /**\n * Clears all handlers and unbinds events\n */\n clear : function() {\n each(this.handlers, function(handler) {\n handler.destroy();\n });\n this.mql.removeListener(this.listener);\n this.handlers.length = 0; //clear array\n },\n\n /*\n * Assesses the query, turning on all handlers if it matches, turning them off if it doesn't match\n */\n assess : function() {\n var action = this.matches() ? 'on' : 'off';\n\n each(this.handlers, function(handler) {\n handler[action]();\n });\n }\n};\n\nmodule.exports = MediaQuery;\n","var MediaQuery = require('./MediaQuery');\nvar Util = require('./Util');\nvar each = Util.each;\nvar isFunction = Util.isFunction;\nvar isArray = Util.isArray;\n\n/**\n * Allows for registration of query handlers.\n * Manages the query handler's state and is responsible for wiring up browser events\n *\n * @constructor\n */\nfunction MediaQueryDispatch () {\n if(!window.matchMedia) {\n throw new Error('matchMedia not present, legacy browsers require a polyfill');\n }\n\n this.queries = {};\n this.browserIsIncapable = !window.matchMedia('only all').matches;\n}\n\nMediaQueryDispatch.prototype = {\n\n constructor : MediaQueryDispatch,\n\n /**\n * Registers a handler for the given media query\n *\n * @param {string} q the media query\n * @param {object || Array || Function} options either a single query handler object, a function, or an array of query handlers\n * @param {function} options.match fired when query matched\n * @param {function} [options.unmatch] fired when a query is no longer matched\n * @param {function} [options.setup] fired when handler first triggered\n * @param {boolean} [options.deferSetup=false] whether setup should be run immediately or deferred until query is first matched\n * @param {boolean} [shouldDegrade=false] whether this particular media query should always run on incapable browsers\n */\n register : function(q, options, shouldDegrade) {\n var queries = this.queries,\n isUnconditional = shouldDegrade && this.browserIsIncapable;\n\n if(!queries[q]) {\n queries[q] = new MediaQuery(q, isUnconditional);\n }\n\n //normalise to object in an array\n if(isFunction(options)) {\n options = { match : options };\n }\n if(!isArray(options)) {\n options = [options];\n }\n each(options, function(handler) {\n if (isFunction(handler)) {\n handler = { match : handler };\n }\n queries[q].addHandler(handler);\n });\n\n return this;\n },\n\n /**\n * unregisters a query and all it's handlers, or a specific handler for a query\n *\n * @param {string} q the media query to target\n * @param {object || function} [handler] specific handler to unregister\n */\n unregister : function(q, handler) {\n var query = this.queries[q];\n\n if(query) {\n if(handler) {\n query.removeHandler(handler);\n }\n else {\n query.clear();\n delete this.queries[q];\n }\n }\n\n return this;\n }\n};\n\nmodule.exports = MediaQueryDispatch;\n","/**\n * Delegate to handle a media query being matched and unmatched.\n *\n * @param {object} options\n * @param {function} options.match callback for when the media query is matched\n * @param {function} [options.unmatch] callback for when the media query is unmatched\n * @param {function} [options.setup] one-time callback triggered the first time a query is matched\n * @param {boolean} [options.deferSetup=false] should the setup callback be run immediately, rather than first time query is matched?\n * @constructor\n */\nfunction QueryHandler(options) {\n this.options = options;\n !options.deferSetup && this.setup();\n}\n\nQueryHandler.prototype = {\n\n constructor : QueryHandler,\n\n /**\n * coordinates setup of the handler\n *\n * @function\n */\n setup : function() {\n if(this.options.setup) {\n this.options.setup();\n }\n this.initialised = true;\n },\n\n /**\n * coordinates setup and triggering of the handler\n *\n * @function\n */\n on : function() {\n !this.initialised && this.setup();\n this.options.match && this.options.match();\n },\n\n /**\n * coordinates the unmatch event for the handler\n *\n * @function\n */\n off : function() {\n this.options.unmatch && this.options.unmatch();\n },\n\n /**\n * called when a handler is to be destroyed.\n * delegates to the destroy or unmatch callbacks, depending on availability.\n *\n * @function\n */\n destroy : function() {\n this.options.destroy ? this.options.destroy() : this.off();\n },\n\n /**\n * determines equality by reference.\n * if object is supplied compare options, if function, compare match callback\n *\n * @function\n * @param {object || function} [target] the target for comparison\n */\n equals : function(target) {\n return this.options === target || this.options.match === target;\n }\n\n};\n\nmodule.exports = QueryHandler;\n","/**\n * Helper function for iterating over a collection\n *\n * @param collection\n * @param fn\n */\nfunction each(collection, fn) {\n var i = 0,\n length = collection.length,\n cont;\n\n for(i; i < length; i++) {\n cont = fn(collection[i], i);\n if(cont === false) {\n break; //allow early exit\n }\n }\n}\n\n/**\n * Helper function for determining whether target object is an array\n *\n * @param target the object under test\n * @return {Boolean} true if array, false otherwise\n */\nfunction isArray(target) {\n return Object.prototype.toString.apply(target) === '[object Array]';\n}\n\n/**\n * Helper function for determining whether target object is a function\n *\n * @param target the object under test\n * @return {Boolean} true if function, false otherwise\n */\nfunction isFunction(target) {\n return typeof target === 'function';\n}\n\nmodule.exports = {\n isFunction : isFunction,\n isArray : isArray,\n each : each\n};\n","var MediaQueryDispatch = require('./MediaQueryDispatch');\nmodule.exports = new MediaQueryDispatch();\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\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n","/*!\n * JavaScript Cookie v2.2.1\n * https://github.com/js-cookie/js-cookie\n *\n * Copyright 2006, 2015 Klaus Hartl & Fagner Brack\n * Released under the MIT license\n */\n;(function (factory) {\n\tvar registeredInModuleLoader;\n\tif (typeof define === 'function' && define.amd) {\n\t\tdefine(factory);\n\t\tregisteredInModuleLoader = true;\n\t}\n\tif (typeof exports === 'object') {\n\t\tmodule.exports = factory();\n\t\tregisteredInModuleLoader = true;\n\t}\n\tif (!registeredInModuleLoader) {\n\t\tvar OldCookies = window.Cookies;\n\t\tvar api = window.Cookies = factory();\n\t\tapi.noConflict = function () {\n\t\t\twindow.Cookies = OldCookies;\n\t\t\treturn api;\n\t\t};\n\t}\n}(function () {\n\tfunction extend () {\n\t\tvar i = 0;\n\t\tvar result = {};\n\t\tfor (; i < arguments.length; i++) {\n\t\t\tvar attributes = arguments[ i ];\n\t\t\tfor (var key in attributes) {\n\t\t\t\tresult[key] = attributes[key];\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\n\tfunction decode (s) {\n\t\treturn s.replace(/(%[0-9A-Z]{2})+/g, decodeURIComponent);\n\t}\n\n\tfunction init (converter) {\n\t\tfunction api() {}\n\n\t\tfunction set (key, value, attributes) {\n\t\t\tif (typeof document === 'undefined') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tattributes = extend({\n\t\t\t\tpath: '/'\n\t\t\t}, api.defaults, attributes);\n\n\t\t\tif (typeof attributes.expires === 'number') {\n\t\t\t\tattributes.expires = new Date(new Date() * 1 + attributes.expires * 864e+5);\n\t\t\t}\n\n\t\t\t// We're using \"expires\" because \"max-age\" is not supported by IE\n\t\t\tattributes.expires = attributes.expires ? attributes.expires.toUTCString() : '';\n\n\t\t\ttry {\n\t\t\t\tvar result = JSON.stringify(value);\n\t\t\t\tif (/^[\\{\\[]/.test(result)) {\n\t\t\t\t\tvalue = result;\n\t\t\t\t}\n\t\t\t} catch (e) {}\n\n\t\t\tvalue = converter.write ?\n\t\t\t\tconverter.write(value, key) :\n\t\t\t\tencodeURIComponent(String(value))\n\t\t\t\t\t.replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent);\n\n\t\t\tkey = encodeURIComponent(String(key))\n\t\t\t\t.replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent)\n\t\t\t\t.replace(/[\\(\\)]/g, escape);\n\n\t\t\tvar stringifiedAttributes = '';\n\t\t\tfor (var attributeName in attributes) {\n\t\t\t\tif (!attributes[attributeName]) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tstringifiedAttributes += '; ' + attributeName;\n\t\t\t\tif (attributes[attributeName] === true) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Considers RFC 6265 section 5.2:\n\t\t\t\t// ...\n\t\t\t\t// 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n\t\t\t\t// character:\n\t\t\t\t// Consume the characters of the unparsed-attributes up to,\n\t\t\t\t// not including, the first %x3B (\";\") character.\n\t\t\t\t// ...\n\t\t\t\tstringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n\t\t\t}\n\n\t\t\treturn (document.cookie = key + '=' + value + stringifiedAttributes);\n\t\t}\n\n\t\tfunction get (key, json) {\n\t\t\tif (typeof document === 'undefined') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar jar = {};\n\t\t\t// To prevent the for loop in the first place assign an empty array\n\t\t\t// in case there are no cookies at all.\n\t\t\tvar cookies = document.cookie ? document.cookie.split('; ') : [];\n\t\t\tvar i = 0;\n\n\t\t\tfor (; i < cookies.length; i++) {\n\t\t\t\tvar parts = cookies[i].split('=');\n\t\t\t\tvar cookie = parts.slice(1).join('=');\n\n\t\t\t\tif (!json && cookie.charAt(0) === '\"') {\n\t\t\t\t\tcookie = cookie.slice(1, -1);\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tvar name = decode(parts[0]);\n\t\t\t\t\tcookie = (converter.read || converter)(cookie, name) ||\n\t\t\t\t\t\tdecode(cookie);\n\n\t\t\t\t\tif (json) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tcookie = JSON.parse(cookie);\n\t\t\t\t\t\t} catch (e) {}\n\t\t\t\t\t}\n\n\t\t\t\t\tjar[name] = cookie;\n\n\t\t\t\t\tif (key === name) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {}\n\t\t\t}\n\n\t\t\treturn key ? jar[key] : jar;\n\t\t}\n\n\t\tapi.set = set;\n\t\tapi.get = function (key) {\n\t\t\treturn get(key, false /* read as raw */);\n\t\t};\n\t\tapi.getJSON = function (key) {\n\t\t\treturn get(key, true /* read as json */);\n\t\t};\n\t\tapi.remove = function (key, attributes) {\n\t\t\tset(key, '', extend(attributes, {\n\t\t\t\texpires: -1\n\t\t\t}));\n\t\t};\n\n\t\tapi.defaults = {};\n\n\t\tapi.withConverter = init;\n\n\t\treturn api;\n\t}\n\n\treturn init(function () {});\n}));\n","var camel2hyphen = require('string-convert/camel2hyphen');\n\nvar isDimension = function (feature) {\n var re = /[height|width]$/;\n return re.test(feature);\n};\n\nvar obj2mq = function (obj) {\n var mq = '';\n var features = Object.keys(obj);\n features.forEach(function (feature, index) {\n var value = obj[feature];\n feature = camel2hyphen(feature);\n // Add px to dimension features\n if (isDimension(feature) && typeof value === 'number') {\n value = value + 'px';\n }\n if (value === true) {\n mq += feature;\n } else if (value === false) {\n mq += 'not ' + feature;\n } else {\n mq += '(' + feature + ': ' + value + ')';\n }\n if (index < features.length-1) {\n mq += ' and '\n }\n });\n return mq;\n};\n\nvar json2mq = function (query) {\n var mq = '';\n if (typeof query === 'string') {\n return query;\n }\n // Handling array of media queries\n if (query instanceof Array) {\n query.forEach(function (q, index) {\n mq += obj2mq(q);\n if (index < query.length-1) {\n mq += ', '\n }\n });\n return mq;\n }\n // Handling single media query\n return obj2mq(query);\n};\n\nmodule.exports = json2mq;","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\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\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 objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\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 && (type == 'object' || type == 'function');\n}\n\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 && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or 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 a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = debounce;\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&&Ng(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=Lg(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=Tg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Rg(f.type,f.key,f.props,null,a.mode,h),h.ref=Lg(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=Sg(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);Mg(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=Qg(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Ug=Og(!0),Vg=Og(!1),Wg=Uf(null),Xg=null,Yg=null,Zg=null;function $g(){Zg=Yg=Xg=null}function ah(a){var b=Wg.current;E(Wg);a._currentValue=b}function bh(a,b,c){for(;null!==a;){var d=a.alternate;(a.childLanes&b)!==b?(a.childLanes|=b,null!==d&&(d.childLanes|=b)):null!==d&&(d.childLanes&b)!==b&&(d.childLanes|=b);if(a===c)break;a=a.return}}\nfunction ch(a,b){Xg=a;Zg=Yg=null;a=a.dependencies;null!==a&&null!==a.firstContext&&(0!==(a.lanes&b)&&(dh=!0),a.firstContext=null)}function eh(a){var b=a._currentValue;if(Zg!==a)if(a={context:a,memoizedValue:b,next:null},null===Yg){if(null===Xg)throw Error(p(308));Yg=a;Xg.dependencies={lanes:0,firstContext:a}}else Yg=Yg.next=a;return b}var fh=null;function gh(a){null===fh?fh=[a]:fh.push(a)}\nfunction hh(a,b,c,d){var e=b.interleaved;null===e?(c.next=c,gh(b)):(c.next=e.next,e.next=c);b.interleaved=c;return ih(a,d)}function ih(a,b){a.lanes|=b;var c=a.alternate;null!==c&&(c.lanes|=b);c=a;for(a=a.return;null!==a;)a.childLanes|=b,c=a.alternate,null!==c&&(c.childLanes|=b),c=a,a=a.return;return 3===c.tag?c.stateNode:null}var jh=!1;function kh(a){a.updateQueue={baseState:a.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}\nfunction lh(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,firstBaseUpdate:a.firstBaseUpdate,lastBaseUpdate:a.lastBaseUpdate,shared:a.shared,effects:a.effects})}function mh(a,b){return{eventTime:a,lane:b,tag:0,payload:null,callback:null,next:null}}\nfunction nh(a,b,c){var d=a.updateQueue;if(null===d)return null;d=d.shared;if(0!==(K&2)){var e=d.pending;null===e?b.next=b:(b.next=e.next,e.next=b);d.pending=b;return ih(a,c)}e=d.interleaved;null===e?(b.next=b,gh(d)):(b.next=e.next,e.next=b);d.interleaved=b;return ih(a,c)}function oh(a,b,c){b=b.updateQueue;if(null!==b&&(b=b.shared,0!==(c&4194240))){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nfunction ph(a,b){var c=a.updateQueue,d=a.alternate;if(null!==d&&(d=d.updateQueue,c===d)){var e=null,f=null;c=c.firstBaseUpdate;if(null!==c){do{var g={eventTime:c.eventTime,lane:c.lane,tag:c.tag,payload:c.payload,callback:c.callback,next:null};null===f?e=f=g:f=f.next=g;c=c.next}while(null!==c);null===f?e=f=b:f=f.next=b}else e=f=b;c={baseState:d.baseState,firstBaseUpdate:e,lastBaseUpdate:f,shared:d.shared,effects:d.effects};a.updateQueue=c;return}a=c.lastBaseUpdate;null===a?c.firstBaseUpdate=b:a.next=\nb;c.lastBaseUpdate=b}\nfunction qh(a,b,c,d){var e=a.updateQueue;jh=!1;var f=e.firstBaseUpdate,g=e.lastBaseUpdate,h=e.shared.pending;if(null!==h){e.shared.pending=null;var k=h,l=k.next;k.next=null;null===g?f=l:g.next=l;g=k;var m=a.alternate;null!==m&&(m=m.updateQueue,h=m.lastBaseUpdate,h!==g&&(null===h?m.firstBaseUpdate=l:h.next=l,m.lastBaseUpdate=k))}if(null!==f){var q=e.baseState;g=0;m=l=k=null;h=f;do{var r=h.lane,y=h.eventTime;if((d&r)===r){null!==m&&(m=m.next={eventTime:y,lane:0,tag:h.tag,payload:h.payload,callback:h.callback,\nnext:null});a:{var n=a,t=h;r=b;y=c;switch(t.tag){case 1:n=t.payload;if(\"function\"===typeof n){q=n.call(y,q,r);break a}q=n;break a;case 3:n.flags=n.flags&-65537|128;case 0:n=t.payload;r=\"function\"===typeof n?n.call(y,q,r):n;if(null===r||void 0===r)break a;q=A({},q,r);break a;case 2:jh=!0}}null!==h.callback&&0!==h.lane&&(a.flags|=64,r=e.effects,null===r?e.effects=[h]:r.push(h))}else y={eventTime:y,lane:r,tag:h.tag,payload:h.payload,callback:h.callback,next:null},null===m?(l=m=y,k=q):m=m.next=y,g|=r;\nh=h.next;if(null===h)if(h=e.shared.pending,null===h)break;else r=h,h=r.next,r.next=null,e.lastBaseUpdate=r,e.shared.pending=null}while(1);null===m&&(k=q);e.baseState=k;e.firstBaseUpdate=l;e.lastBaseUpdate=m;b=e.shared.interleaved;if(null!==b){e=b;do g|=e.lane,e=e.next;while(e!==b)}else null===f&&(e.shared.lanes=0);rh|=g;a.lanes=g;a.memoizedState=q}}\nfunction sh(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;bc?c:4;a(!0);var d=Gh.transition;Gh.transition={};try{a(!1),b()}finally{C=c,Gh.transition=d}}function wi(){return Uh().memoizedState}\nfunction xi(a,b,c){var d=yi(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,c);else if(c=hh(a,b,c,d),null!==c){var e=R();gi(c,a,d,e);Bi(c,b,d)}}\nfunction ii(a,b,c){var d=yi(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(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,gh(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=hh(a,b,e,d);null!==c&&(e=R(),gi(c,a,d,e),Bi(c,b,d))}}\nfunction zi(a){var b=a.alternate;return a===M||null!==b&&b===M}function Ai(a,b){Jh=Ih=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Bi(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar Rh={readContext:eh,useCallback:P,useContext:P,useEffect:P,useImperativeHandle:P,useInsertionEffect:P,useLayoutEffect:P,useMemo:P,useReducer:P,useRef:P,useState:P,useDebugValue:P,useDeferredValue:P,useTransition:P,useMutableSource:P,useSyncExternalStore:P,useId:P,unstable_isNewReconciler:!1},Oh={readContext:eh,useCallback:function(a,b){Th().memoizedState=[a,void 0===b?null:b];return a},useContext:eh,useEffect:mi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ki(4194308,\n4,pi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ki(4194308,4,a,b)},useInsertionEffect:function(a,b){return ki(4,2,a,b)},useMemo:function(a,b){var c=Th();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=Th();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=xi.bind(null,M,a);return[d.memoizedState,a]},useRef:function(a){var b=\nTh();a={current:a};return b.memoizedState=a},useState:hi,useDebugValue:ri,useDeferredValue:function(a){return Th().memoizedState=a},useTransition:function(){var a=hi(!1),b=a[0];a=vi.bind(null,a[1]);Th().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=M,e=Th();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===Q)throw Error(p(349));0!==(Hh&30)||di(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;mi(ai.bind(null,d,\nf,a),[a]);d.flags|=2048;bi(9,ci.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=Th(),b=Q.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Kh++;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;zj(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;eGj&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304)}else{if(!d)if(a=Ch(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Dj(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Gj&&1073741824!==c&&(b.flags|=128,d=!0,Dj(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=L.current,G(L,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Hj(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(fj&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 Ij(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 zh(),E(Wf),E(H),Eh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Bh(b),null;case 13:E(L);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(L),null;case 4:return zh(),null;case 10:return ah(b.type._context),null;case 22:case 23:return Hj(),\nnull;case 24:return null;default:return null}}var Jj=!1,U=!1,Kj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Lj(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 Mj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Nj=!1;\nfunction Oj(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:Ci(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=Nj;Nj=!1;return n}\nfunction Pj(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&&Mj(b,c,f)}e=e.next}while(e!==d)}}function Qj(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 Rj(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 Sj(a){var b=a.alternate;null!==b&&(a.alternate=null,Sj(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 Tj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Uj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Tj(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 Vj(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(Vj(a,b,c),a=a.sibling;null!==a;)Vj(a,b,c),a=a.sibling}\nfunction Wj(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(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}var X=null,Xj=!1;function Yj(a,b,c){for(c=c.child;null!==c;)Zj(a,b,c),c=c.sibling}\nfunction Zj(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Lj(c,b);case 6:var d=X,e=Xj;X=null;Yj(a,b,c);X=d;Xj=e;null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Xj?(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=Xj;X=c.stateNode.containerInfo;Xj=!0;\nYj(a,b,c);X=d;Xj=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)?Mj(c,b,g):0!==(f&4)&&Mj(c,b,g));e=e.next}while(e!==d)}Yj(a,b,c);break;case 1:if(!U&&(Lj(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)}Yj(a,b,c);break;case 21:Yj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Yj(a,b,c),U=d):Yj(a,b,c);break;default:Yj(a,b,c)}}function ak(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Kj);b.forEach(function(b){var d=bk.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction ck(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*lk(d/1960))-d;if(10a?16:a;if(null===wk)var d=!1;else{a=wk;wk=null;xk=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()-fk?Kk(a,0):rk|=c);Dk(a,b)}function Yk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=R();a=ih(a,b);null!==a&&(Ac(a,b,c),Dk(a,c))}function uj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Yk(a,c)}\nfunction bk(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);Yk(a,c)}var Vk;\nVk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)dh=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return dh=!1,yj(a,b,c);dh=0!==(a.flags&131072)?!0:!1}else dh=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;ij(a,b);a=b.pendingProps;var e=Yf(b,H.current);ch(b,c);e=Nh(null,b,d,a,e,c);var f=Sh();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,kh(b),e.updater=Ei,b.stateNode=e,e._reactInternals=b,Ii(b,d,a,c),b=jj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Xi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{ij(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=Zk(d);a=Ci(d,a);switch(e){case 0:b=cj(null,b,d,a,c);break a;case 1:b=hj(null,b,d,a,c);break a;case 11:b=Yi(null,b,d,a,c);break a;case 14:b=$i(null,b,d,Ci(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:Ci(d,e),cj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),hj(a,b,d,e,c);case 3:a:{kj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;lh(a,b);qh(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=Ji(Error(p(423)),b);b=lj(a,b,d,c,e);break a}else if(d!==e){e=Ji(Error(p(424)),b);b=lj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Vg(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=Zi(a,b,c);break a}Xi(a,b,d,c)}b=b.child}return b;case 5:return Ah(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),\ngj(a,b),Xi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return oj(a,b,c);case 4:return yh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Ug(b,null,d,c):Xi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),Yi(a,b,d,e,c);case 7:return Xi(a,b,b.pendingProps,c),b.child;case 8:return Xi(a,b,b.pendingProps.children,c),b.child;case 12:return Xi(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(Wg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=Zi(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=mh(-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);bh(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);bh(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}Xi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,ch(b,c),e=eh(e),d=d(e),b.flags|=1,Xi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Ci(d,b.pendingProps),e=Ci(d.type,e),$i(a,b,d,e,c);case 15:return bj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),ij(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,ch(b,c),Gi(b,d,e),Ii(b,d,e,c),jj(null,b,d,!0,a,c);case 19:return xj(a,b,c);case 22:return dj(a,b,c)}throw Error(p(156,b.tag));};function Fk(a,b){return ac(a,b)}\nfunction $k(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 $k(a,b,c,d)}function aj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction Zk(a){if(\"function\"===typeof a)return aj(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 Pg(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 Rg(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)aj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Tg(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 pj(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 Tg(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function pj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function Qg(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction Sg(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 al(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 bl(a,b,c,d,e,f,g,h,k){a=new al(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};kh(f);return a}function cl(a,b,c){var d=3 &&` helpers in initial condition allow es6 code\n // to co-exist with es5.\n // 2. Replace `for of` with es5 compliant iteration using `for`.\n // Basically, take:\n //\n // ```js\n // for (i of a.entries())\n // if (!b.has(i[0])) return false;\n // ```\n //\n // ... and convert to:\n //\n // ```js\n // it = a.entries();\n // while (!(i = it.next()).done)\n // if (!b.has(i.value[0])) return false;\n // ```\n //\n // **Note**: `i` access switches to `i.value`.\n var it;\n if (hasMap && (a instanceof Map) && (b instanceof Map)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!equal(i.value[1], b.get(i.value[0]))) return false;\n return true;\n }\n\n if (hasSet && (a instanceof Set) && (b instanceof Set)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n return true;\n }\n // END: Modifications\n\n if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (a[i] !== b[i]) return false;\n return true;\n }\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n // START: Modifications:\n // Apply guards for `Object.create(null)` handling. See:\n // - https://github.com/FormidableLabs/react-fast-compare/issues/64\n // - https://github.com/epoberezkin/fast-deep-equal/issues/49\n if (a.valueOf !== Object.prototype.valueOf && typeof a.valueOf === 'function' && typeof b.valueOf === 'function') return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString && typeof a.toString === 'function' && typeof b.toString === 'function') return a.toString() === b.toString();\n // END: Modifications\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n // END: fast-deep-equal\n\n // START: react-fast-compare\n // custom handling for DOM elements\n if (hasElementType && a instanceof Element) return false;\n\n // custom handling for React/Preact\n for (i = length; i-- !== 0;) {\n if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner\n // Preact-specific: avoid traversing Preact elements' __v and __o\n // __v = $_original / $_vnode\n // __o = $_owner\n // These properties contain circular references and are not needed when\n // comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of elements\n\n continue;\n }\n\n // all other properties should be traversed as usual\n if (!equal(a[keys[i]], b[keys[i]])) return false;\n }\n // END: react-fast-compare\n\n // START: fast-deep-equal\n return true;\n }\n\n return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nmodule.exports = function isEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if (((error.message || '').match(/stack|recursion/i))) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('react-fast-compare cannot handle circular refs');\n return false;\n }\n // some other error. we should definitely know about these\n throw error;\n }\n};\n","import React, {\n Fragment,\n useEffect,\n useState,\n useRef,\n useCallback,\n useMemo,\n ReactNode,\n CSSProperties,\n FC,\n forwardRef,\n Children,\n MutableRefObject,\n RefAttributes,\n} from \"react\";\nimport \"./Marquee.scss\";\n\nexport type MarqueeProps = {\n /**\n * @description Inline style for the container div\n * @type {CSSProperties}\n * @default {}\n */\n style?: CSSProperties;\n /**\n * @description Class name to style the container div\n * @type {string}\n * @default \"\"\n */\n className?: string;\n /**\n * @description Whether to automatically fill blank space in the marquee with copies of the children or not\n * @type {boolean}\n * @default false\n */\n autoFill?: boolean;\n /**\n * @description Whether to play or pause the marquee\n * @type {boolean}\n * @default true\n */\n play?: boolean;\n /**\n * @description Whether to pause the marquee when hovered\n * @type {boolean}\n * @default false\n */\n pauseOnHover?: boolean;\n /**\n * @description Whether to pause the marquee when clicked\n * @type {boolean}\n * @default false\n */\n pauseOnClick?: boolean;\n /**\n * @description The direction the marquee is sliding\n * @type {\"left\" | \"right\" | \"up\" | \"down\"}\n * @default \"left\"\n */\n direction?: \"left\" | \"right\" | \"up\" | \"down\";\n /**\n * @description Speed calculated as pixels/second\n * @type {number}\n * @default 50\n */\n speed?: number;\n /**\n * @description Duration to delay the animation after render, in seconds\n * @type {number}\n * @default 0\n */\n delay?: number;\n /**\n * @description The number of times the marquee should loop, 0 is equivalent to infinite\n * @type {number}\n * @default 0\n */\n loop?: number;\n /**\n * @description Whether to show the gradient or not\n * @type {boolean}\n * @default false\n */\n gradient?: boolean;\n /**\n * @description The color of the gradient\n * @type {string}\n * @default \"white\"\n */\n gradientColor?: string;\n /**\n * @description The width of the gradient on either side\n * @type {number | string}\n * @default 200\n */\n gradientWidth?: number | string;\n /**\n * @description A callback for when the marquee finishes scrolling and stops. Only calls if loop is non-zero.\n * @type {() => void}\n * @default null\n */\n onFinish?: () => void;\n /**\n * @description A callback for when the marquee finishes a loop. Does not call if maximum loops are reached (use onFinish instead).\n * @type {() => void}\n * @default null\n */\n onCycleComplete?: () => void;\n /**\n * @description: A callback function that is invoked once the marquee has finished mounting. It can be utilized to recalculate the page size, if necessary.\n * @type {() => void}\n * @default null\n */\n onMount?: () => void;\n /**\n * @description The children rendered inside the marquee\n * @type {ReactNode}\n * @default null\n */\n children?: ReactNode;\n} & RefAttributes;\n\nconst Marquee: FC = forwardRef(function Marquee(\n {\n style = {},\n className = \"\",\n autoFill = false,\n play = true,\n pauseOnHover = false,\n pauseOnClick = false,\n direction = \"left\",\n speed = 50,\n delay = 0,\n loop = 0,\n gradient = false,\n gradientColor = \"white\",\n gradientWidth = 200,\n onFinish,\n onCycleComplete,\n onMount,\n children,\n },\n ref\n) {\n // React Hooks\n const [containerWidth, setContainerWidth] = useState(0);\n const [marqueeWidth, setMarqueeWidth] = useState(0);\n const [multiplier, setMultiplier] = useState(1);\n const [isMounted, setIsMounted] = useState(false);\n const rootRef = useRef(null);\n const containerRef = (ref as MutableRefObject) || rootRef;\n const marqueeRef = useRef(null);\n\n // Calculate width of container and marquee and set multiplier\n const calculateWidth = useCallback(() => {\n if (marqueeRef.current && containerRef.current) {\n const containerRect = containerRef.current.getBoundingClientRect();\n const marqueeRect = marqueeRef.current.getBoundingClientRect();\n let containerWidth = containerRect.width;\n let marqueeWidth = marqueeRect.width;\n\n // Swap width and height if direction is up or down\n if (direction === \"up\" || direction === \"down\") {\n containerWidth = containerRect.height;\n marqueeWidth = marqueeRect.height;\n }\n\n if (autoFill && containerWidth && marqueeWidth) {\n setMultiplier(\n marqueeWidth < containerWidth\n ? Math.ceil(containerWidth / marqueeWidth)\n : 1\n );\n } else {\n setMultiplier(1);\n }\n\n setContainerWidth(containerWidth);\n setMarqueeWidth(marqueeWidth);\n }\n }, [autoFill, containerRef, direction]);\n\n // Calculate width and multiplier on mount and on window resize\n useEffect(() => {\n if (!isMounted) return;\n\n calculateWidth();\n if (marqueeRef.current && containerRef.current) {\n const resizeObserver = new ResizeObserver(() => calculateWidth());\n resizeObserver.observe(containerRef.current);\n resizeObserver.observe(marqueeRef.current);\n return () => {\n if (!resizeObserver) return;\n resizeObserver.disconnect();\n };\n }\n }, [calculateWidth, containerRef, isMounted]);\n\n // Recalculate width when children change\n useEffect(() => {\n calculateWidth();\n }, [calculateWidth, children]);\n\n useEffect(() => {\n setIsMounted(true);\n }, []);\n\n // Runs the onMount callback, if it is a function, when Marquee is mounted.\n useEffect(() => {\n if (typeof onMount === \"function\") {\n onMount();\n }\n }, []);\n\n // Animation duration\n const duration = useMemo(() => {\n if (autoFill) {\n return (marqueeWidth * multiplier) / speed;\n } else {\n return marqueeWidth < containerWidth\n ? containerWidth / speed\n : marqueeWidth / speed;\n }\n }, [autoFill, containerWidth, marqueeWidth, multiplier, speed]);\n\n const containerStyle = useMemo(\n () => ({\n ...style,\n [\"--pause-on-hover\" as string]:\n !play || pauseOnHover ? \"paused\" : \"running\",\n [\"--pause-on-click\" as string]:\n !play || (pauseOnHover && !pauseOnClick) || pauseOnClick\n ? \"paused\"\n : \"running\",\n [\"--width\" as string]:\n direction === \"up\" || direction === \"down\" ? `100vh` : \"100%\",\n [\"--transform\" as string]:\n direction === \"up\"\n ? \"rotate(-90deg)\"\n : direction === \"down\"\n ? \"rotate(90deg)\"\n : \"none\",\n }),\n [style, play, pauseOnHover, pauseOnClick, direction]\n );\n\n const gradientStyle = useMemo(\n () => ({\n [\"--gradient-color\" as string]: gradientColor,\n [\"--gradient-width\" as string]:\n typeof gradientWidth === \"number\"\n ? `${gradientWidth}px`\n : gradientWidth,\n }),\n [gradientColor, gradientWidth]\n );\n\n const marqueeStyle = useMemo(\n () => ({\n [\"--play\" as string]: play ? \"running\" : \"paused\",\n [\"--direction\" as string]: direction === \"left\" ? \"normal\" : \"reverse\",\n [\"--duration\" as string]: `${duration}s`,\n [\"--delay\" as string]: `${delay}s`,\n [\"--iteration-count\" as string]: !!loop ? `${loop}` : \"infinite\",\n [\"--min-width\" as string]: autoFill ? `auto` : \"100%\",\n }),\n [play, direction, duration, delay, loop, autoFill]\n );\n\n const childStyle = useMemo(\n () => ({\n [\"--transform\" as string]:\n direction === \"up\"\n ? \"rotate(90deg)\"\n : direction === \"down\"\n ? \"rotate(-90deg)\"\n : \"none\",\n }),\n [direction]\n );\n\n // Render {multiplier} number of children\n const multiplyChildren = useCallback(\n (multiplier: number) => {\n return [\n ...Array(\n Number.isFinite(multiplier) && multiplier >= 0 ? multiplier : 0\n ),\n ].map((_, i) => (\n \n {Children.map(children, (child) => {\n return (\n \n {child}\n \n );\n })}\n \n ));\n },\n [childStyle, children]\n );\n\n return !isMounted ? null : (\n \n {gradient && }\n \n \n {Children.map(children, (child) => {\n return (\n \n {child}\n \n );\n })}\n \n {multiplyChildren(multiplier - 1)}\n \n \n {multiplyChildren(multiplier)}\n \n \n );\n});\n\nexport default Marquee;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = format;\nvar smallWords = /^(a|an|and|as|at|but|by|en|for|if|in|nor|of|on|or|per|the|to|vs?\\.?|via)$/i;\nfunction toTitleCase(string) {\n return string.toString().trim().replace(/[A-Za-z0-9\\u00C0-\\u00FF]+[^\\s-]*/g, function (match, index, title) {\n if (index > 0 && index + match.length !== title.length && match.search(smallWords) > -1 && title.charAt(index - 2) !== \":\" && (title.charAt(index + match.length) !== \"-\" || title.charAt(index - 1) === \"-\") && title.charAt(index - 1).search(/[^\\s-]/) < 0) {\n return match.toLowerCase();\n }\n if (match.substr(1).search(/[A-Z]|\\../) > -1) {\n return match;\n }\n return match.charAt(0).toUpperCase() + match.substr(1);\n });\n}\n\n// See if s could be an email address. We don't want to send personal data like email.\n// https://support.google.com/analytics/answer/2795983?hl=en\nfunction mightBeEmail(s) {\n // There's no point trying to validate rfc822 fully, just look for ...@...\n return typeof s === \"string\" && s.indexOf(\"@\") !== -1;\n}\nvar redacted = \"REDACTED (Potential Email Address)\";\nfunction redactEmail(string) {\n if (mightBeEmail(string)) {\n console.warn(\"This arg looks like an email address, redacting.\");\n return redacted;\n }\n return string;\n}\nfunction format() {\n var s = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"\";\n var titleCase = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var redactingEmail = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n var _str = s || \"\";\n if (titleCase) {\n _str = toTitleCase(s);\n }\n if (redactingEmail) {\n _str = redactEmail(_str);\n }\n return _str;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = exports.GA4 = void 0;\nvar _gtag = _interopRequireDefault(require(\"./gtag\"));\nvar _format = _interopRequireDefault(require(\"./format\"));\nvar _excluded = [\"eventCategory\", \"eventAction\", \"eventLabel\", \"eventValue\", \"hitType\"],\n _excluded2 = [\"title\", \"location\"],\n _excluded3 = [\"page\", \"hitType\"];\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i[\"return\"] && (_r = _i[\"return\"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _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, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n/*\nLinks\nhttps://developers.google.com/gtagjs/reference/api\nhttps://developers.google.com/tag-platform/gtagjs/reference\n*/\n/**\n * @typedef GaOptions\n * @type {Object}\n * @property {boolean} [cookieUpdate=true]\n * @property {number} [cookieExpires=63072000] Default two years\n * @property {string} [cookieDomain=\"auto\"]\n * @property {string} [cookieFlags]\n * @property {string} [userId]\n * @property {string} [clientId]\n * @property {boolean} [anonymizeIp]\n * @property {string} [contentGroup1]\n * @property {string} [contentGroup2]\n * @property {string} [contentGroup3]\n * @property {string} [contentGroup4]\n * @property {string} [contentGroup5]\n * @property {boolean} [allowAdFeatures=true]\n * @property {boolean} [allowAdPersonalizationSignals]\n * @property {boolean} [nonInteraction]\n * @property {string} [page]\n */\n/**\n * @typedef UaEventOptions\n * @type {Object}\n * @property {string} action\n * @property {string} category\n * @property {string} [label]\n * @property {number} [value]\n * @property {boolean} [nonInteraction]\n * @property {('beacon'|'xhr'|'image')} [transport]\n */\n/**\n * @typedef InitOptions\n * @type {Object}\n * @property {string} trackingId\n * @property {GaOptions|any} [gaOptions]\n * @property {Object} [gtagOptions] New parameter\n */\nvar GA4 = /*#__PURE__*/function () {\n function GA4() {\n var _this = this;\n _classCallCheck(this, GA4);\n _defineProperty(this, \"reset\", function () {\n _this.isInitialized = false;\n _this._testMode = false;\n _this._currentMeasurementId;\n _this._hasLoadedGA = false;\n _this._isQueuing = false;\n _this._queueGtag = [];\n });\n _defineProperty(this, \"_gtag\", function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (!_this._testMode) {\n if (_this._isQueuing) {\n _this._queueGtag.push(args);\n } else {\n _gtag[\"default\"].apply(void 0, args);\n }\n } else {\n _this._queueGtag.push(args);\n }\n });\n _defineProperty(this, \"_loadGA\", function (GA_MEASUREMENT_ID, nonce) {\n var gtagUrl = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : \"https://www.googletagmanager.com/gtag/js\";\n if (typeof window === \"undefined\" || typeof document === \"undefined\") {\n return;\n }\n if (!_this._hasLoadedGA) {\n // Global Site Tag (gtag.js) - Google Analytics\n var script = document.createElement(\"script\");\n script.async = true;\n script.src = \"\".concat(gtagUrl, \"?id=\").concat(GA_MEASUREMENT_ID);\n if (nonce) {\n script.setAttribute(\"nonce\", nonce);\n }\n document.body.appendChild(script);\n window.dataLayer = window.dataLayer || [];\n window.gtag = function gtag() {\n window.dataLayer.push(arguments);\n };\n _this._hasLoadedGA = true;\n }\n });\n _defineProperty(this, \"_toGtagOptions\", function (gaOptions) {\n if (!gaOptions) {\n return;\n }\n var mapFields = {\n // Old https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference#cookieUpdate\n // New https://developers.google.com/analytics/devguides/collection/gtagjs/cookies-user-id#cookie_update\n cookieUpdate: \"cookie_update\",\n cookieExpires: \"cookie_expires\",\n cookieDomain: \"cookie_domain\",\n cookieFlags: \"cookie_flags\",\n // must be in set method?\n userId: \"user_id\",\n clientId: \"client_id\",\n anonymizeIp: \"anonymize_ip\",\n // https://support.google.com/analytics/answer/2853546?hl=en#zippy=%2Cin-this-article\n contentGroup1: \"content_group1\",\n contentGroup2: \"content_group2\",\n contentGroup3: \"content_group3\",\n contentGroup4: \"content_group4\",\n contentGroup5: \"content_group5\",\n // https://support.google.com/analytics/answer/9050852?hl=en\n allowAdFeatures: \"allow_google_signals\",\n allowAdPersonalizationSignals: \"allow_ad_personalization_signals\",\n nonInteraction: \"non_interaction\",\n page: \"page_path\",\n hitCallback: \"event_callback\"\n };\n var gtagOptions = Object.entries(gaOptions).reduce(function (prev, _ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n key = _ref2[0],\n value = _ref2[1];\n if (mapFields[key]) {\n prev[mapFields[key]] = value;\n } else {\n prev[key] = value;\n }\n return prev;\n }, {});\n return gtagOptions;\n });\n _defineProperty(this, \"initialize\", function (GA_MEASUREMENT_ID) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (!GA_MEASUREMENT_ID) {\n throw new Error(\"Require GA_MEASUREMENT_ID\");\n }\n var initConfigs = typeof GA_MEASUREMENT_ID === \"string\" ? [{\n trackingId: GA_MEASUREMENT_ID\n }] : GA_MEASUREMENT_ID;\n _this._currentMeasurementId = initConfigs[0].trackingId;\n var gaOptions = options.gaOptions,\n gtagOptions = options.gtagOptions,\n nonce = options.nonce,\n _options$testMode = options.testMode,\n testMode = _options$testMode === void 0 ? false : _options$testMode,\n gtagUrl = options.gtagUrl;\n _this._testMode = testMode;\n if (!testMode) {\n _this._loadGA(_this._currentMeasurementId, nonce, gtagUrl);\n }\n if (!_this.isInitialized) {\n _this._gtag(\"js\", new Date());\n initConfigs.forEach(function (config) {\n var mergedGtagOptions = _objectSpread(_objectSpread(_objectSpread({}, _this._toGtagOptions(_objectSpread(_objectSpread({}, gaOptions), config.gaOptions))), gtagOptions), config.gtagOptions);\n if (Object.keys(mergedGtagOptions).length) {\n _this._gtag(\"config\", config.trackingId, mergedGtagOptions);\n } else {\n _this._gtag(\"config\", config.trackingId);\n }\n });\n }\n _this.isInitialized = true;\n if (!testMode) {\n var queues = _toConsumableArray(_this._queueGtag);\n _this._queueGtag = [];\n _this._isQueuing = false;\n while (queues.length) {\n var queue = queues.shift();\n _this._gtag.apply(_this, _toConsumableArray(queue));\n if (queue[0] === \"get\") {\n _this._isQueuing = true;\n }\n }\n }\n });\n _defineProperty(this, \"set\", function (fieldsObject) {\n if (!fieldsObject) {\n console.warn(\"`fieldsObject` is required in .set()\");\n return;\n }\n if (_typeof(fieldsObject) !== \"object\") {\n console.warn(\"Expected `fieldsObject` arg to be an Object\");\n return;\n }\n if (Object.keys(fieldsObject).length === 0) {\n console.warn(\"empty `fieldsObject` given to .set()\");\n }\n _this._gaCommand(\"set\", fieldsObject);\n });\n _defineProperty(this, \"_gaCommandSendEvent\", function (eventCategory, eventAction, eventLabel, eventValue, fieldsObject) {\n _this._gtag(\"event\", eventAction, _objectSpread(_objectSpread({\n event_category: eventCategory,\n event_label: eventLabel,\n value: eventValue\n }, fieldsObject && {\n non_interaction: fieldsObject.nonInteraction\n }), _this._toGtagOptions(fieldsObject)));\n });\n _defineProperty(this, \"_gaCommandSendEventParameters\", function () {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n if (typeof args[0] === \"string\") {\n _this._gaCommandSendEvent.apply(_this, _toConsumableArray(args.slice(1)));\n } else {\n var _args$ = args[0],\n eventCategory = _args$.eventCategory,\n eventAction = _args$.eventAction,\n eventLabel = _args$.eventLabel,\n eventValue = _args$.eventValue,\n hitType = _args$.hitType,\n rest = _objectWithoutProperties(_args$, _excluded);\n _this._gaCommandSendEvent(eventCategory, eventAction, eventLabel, eventValue, rest);\n }\n });\n _defineProperty(this, \"_gaCommandSendTiming\", function (timingCategory, timingVar, timingValue, timingLabel) {\n _this._gtag(\"event\", \"timing_complete\", {\n name: timingVar,\n value: timingValue,\n event_category: timingCategory,\n event_label: timingLabel\n });\n });\n _defineProperty(this, \"_gaCommandSendPageview\", function (page, fieldsObject) {\n if (fieldsObject && Object.keys(fieldsObject).length) {\n var _this$_toGtagOptions = _this._toGtagOptions(fieldsObject),\n title = _this$_toGtagOptions.title,\n location = _this$_toGtagOptions.location,\n rest = _objectWithoutProperties(_this$_toGtagOptions, _excluded2);\n _this._gtag(\"event\", \"page_view\", _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, page && {\n page_path: page\n }), title && {\n page_title: title\n }), location && {\n page_location: location\n }), rest));\n } else if (page) {\n _this._gtag(\"event\", \"page_view\", {\n page_path: page\n });\n } else {\n _this._gtag(\"event\", \"page_view\");\n }\n });\n _defineProperty(this, \"_gaCommandSendPageviewParameters\", function () {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n if (typeof args[0] === \"string\") {\n _this._gaCommandSendPageview.apply(_this, _toConsumableArray(args.slice(1)));\n } else {\n var _args$2 = args[0],\n page = _args$2.page,\n hitType = _args$2.hitType,\n rest = _objectWithoutProperties(_args$2, _excluded3);\n _this._gaCommandSendPageview(page, rest);\n }\n });\n _defineProperty(this, \"_gaCommandSend\", function () {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n var hitType = typeof args[0] === \"string\" ? args[0] : args[0].hitType;\n switch (hitType) {\n case \"event\":\n _this._gaCommandSendEventParameters.apply(_this, args);\n break;\n case \"pageview\":\n _this._gaCommandSendPageviewParameters.apply(_this, args);\n break;\n case \"timing\":\n _this._gaCommandSendTiming.apply(_this, _toConsumableArray(args.slice(1)));\n break;\n case \"screenview\":\n case \"transaction\":\n case \"item\":\n case \"social\":\n case \"exception\":\n console.warn(\"Unsupported send command: \".concat(hitType));\n break;\n default:\n console.warn(\"Send command doesn't exist: \".concat(hitType));\n }\n });\n _defineProperty(this, \"_gaCommandSet\", function () {\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n if (typeof args[0] === \"string\") {\n args[0] = _defineProperty({}, args[0], args[1]);\n }\n _this._gtag(\"set\", _this._toGtagOptions(args[0]));\n });\n _defineProperty(this, \"_gaCommand\", function (command) {\n for (var _len6 = arguments.length, args = new Array(_len6 > 1 ? _len6 - 1 : 0), _key6 = 1; _key6 < _len6; _key6++) {\n args[_key6 - 1] = arguments[_key6];\n }\n switch (command) {\n case \"send\":\n _this._gaCommandSend.apply(_this, args);\n break;\n case \"set\":\n _this._gaCommandSet.apply(_this, args);\n break;\n default:\n console.warn(\"Command doesn't exist: \".concat(command));\n }\n });\n _defineProperty(this, \"ga\", function () {\n for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n args[_key7] = arguments[_key7];\n }\n if (typeof args[0] === \"string\") {\n _this._gaCommand.apply(_this, args);\n } else {\n var readyCallback = args[0];\n _this._gtag(\"get\", _this._currentMeasurementId, \"client_id\", function (clientId) {\n _this._isQueuing = false;\n var queues = _this._queueGtag;\n readyCallback({\n get: function get(property) {\n return property === \"clientId\" ? clientId : property === \"trackingId\" ? _this._currentMeasurementId : property === \"apiVersion\" ? \"1\" : undefined;\n }\n });\n while (queues.length) {\n var queue = queues.shift();\n _this._gtag.apply(_this, _toConsumableArray(queue));\n }\n });\n _this._isQueuing = true;\n }\n return _this.ga;\n });\n _defineProperty(this, \"event\", function (optionsOrName, params) {\n if (typeof optionsOrName === \"string\") {\n _this._gtag(\"event\", optionsOrName, _this._toGtagOptions(params));\n } else {\n var action = optionsOrName.action,\n category = optionsOrName.category,\n label = optionsOrName.label,\n value = optionsOrName.value,\n nonInteraction = optionsOrName.nonInteraction,\n transport = optionsOrName.transport;\n if (!category || !action) {\n console.warn(\"args.category AND args.action are required in event()\");\n return;\n }\n\n // Required Fields\n var fieldObject = {\n hitType: \"event\",\n eventCategory: (0, _format[\"default\"])(category),\n eventAction: (0, _format[\"default\"])(action)\n };\n\n // Optional Fields\n if (label) {\n fieldObject.eventLabel = (0, _format[\"default\"])(label);\n }\n if (typeof value !== \"undefined\") {\n if (typeof value !== \"number\") {\n console.warn(\"Expected `args.value` arg to be a Number.\");\n } else {\n fieldObject.eventValue = value;\n }\n }\n if (typeof nonInteraction !== \"undefined\") {\n if (typeof nonInteraction !== \"boolean\") {\n console.warn(\"`args.nonInteraction` must be a boolean.\");\n } else {\n fieldObject.nonInteraction = nonInteraction;\n }\n }\n if (typeof transport !== \"undefined\") {\n if (typeof transport !== \"string\") {\n console.warn(\"`args.transport` must be a string.\");\n } else {\n if ([\"beacon\", \"xhr\", \"image\"].indexOf(transport) === -1) {\n console.warn(\"`args.transport` must be either one of these values: `beacon`, `xhr` or `image`\");\n }\n fieldObject.transport = transport;\n }\n }\n _this._gaCommand(\"send\", fieldObject);\n }\n });\n _defineProperty(this, \"send\", function (fieldObject) {\n _this._gaCommand(\"send\", fieldObject);\n });\n this.reset();\n }\n _createClass(GA4, [{\n key: \"gtag\",\n value: function gtag() {\n this._gtag.apply(this, arguments);\n }\n }]);\n return GA4;\n}();\nexports.GA4 = GA4;\nvar _default = new GA4();\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar gtag = function gtag() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (typeof window !== \"undefined\") {\n var _window;\n if (typeof window.gtag === \"undefined\") {\n window.dataLayer = window.dataLayer || [];\n window.gtag = function gtag() {\n window.dataLayer.push(arguments);\n };\n }\n (_window = window).gtag.apply(_window, args);\n }\n};\nvar _default = gtag;\nexports[\"default\"] = _default;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = exports.ReactGAImplementation = void 0;\nvar _ga = _interopRequireWildcard(require(\"./ga4\"));\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\nvar ReactGAImplementation = _ga.GA4;\nexports.ReactGAImplementation = ReactGAImplementation;\nvar _default = _ga[\"default\"];\nexports[\"default\"] = _default;","\"use strict\";\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PrevArrow = exports.NextArrow = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _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, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nvar PrevArrow = exports.PrevArrow = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(PrevArrow, _React$PureComponent);\n var _super = _createSuper(PrevArrow);\n function PrevArrow() {\n _classCallCheck(this, PrevArrow);\n return _super.apply(this, arguments);\n }\n _createClass(PrevArrow, [{\n key: \"clickHandler\",\n value: function clickHandler(options, e) {\n if (e) {\n e.preventDefault();\n }\n this.props.clickHandler(options, e);\n }\n }, {\n key: \"render\",\n value: function render() {\n var prevClasses = {\n \"slick-arrow\": true,\n \"slick-prev\": true\n };\n var prevHandler = this.clickHandler.bind(this, {\n message: \"previous\"\n });\n if (!this.props.infinite && (this.props.currentSlide === 0 || this.props.slideCount <= this.props.slidesToShow)) {\n prevClasses[\"slick-disabled\"] = true;\n prevHandler = null;\n }\n var prevArrowProps = {\n key: \"0\",\n \"data-role\": \"none\",\n className: (0, _classnames[\"default\"])(prevClasses),\n style: {\n display: \"block\"\n },\n onClick: prevHandler\n };\n var customProps = {\n currentSlide: this.props.currentSlide,\n slideCount: this.props.slideCount\n };\n var prevArrow;\n if (this.props.prevArrow) {\n prevArrow = /*#__PURE__*/_react[\"default\"].cloneElement(this.props.prevArrow, _objectSpread(_objectSpread({}, prevArrowProps), customProps));\n } else {\n prevArrow = /*#__PURE__*/_react[\"default\"].createElement(\"button\", _extends({\n key: \"0\",\n type: \"button\"\n }, prevArrowProps), \" \", \"Previous\");\n }\n return prevArrow;\n }\n }]);\n return PrevArrow;\n}(_react[\"default\"].PureComponent);\nvar NextArrow = exports.NextArrow = /*#__PURE__*/function (_React$PureComponent2) {\n _inherits(NextArrow, _React$PureComponent2);\n var _super2 = _createSuper(NextArrow);\n function NextArrow() {\n _classCallCheck(this, NextArrow);\n return _super2.apply(this, arguments);\n }\n _createClass(NextArrow, [{\n key: \"clickHandler\",\n value: function clickHandler(options, e) {\n if (e) {\n e.preventDefault();\n }\n this.props.clickHandler(options, e);\n }\n }, {\n key: \"render\",\n value: function render() {\n var nextClasses = {\n \"slick-arrow\": true,\n \"slick-next\": true\n };\n var nextHandler = this.clickHandler.bind(this, {\n message: \"next\"\n });\n if (!(0, _innerSliderUtils.canGoNext)(this.props)) {\n nextClasses[\"slick-disabled\"] = true;\n nextHandler = null;\n }\n var nextArrowProps = {\n key: \"1\",\n \"data-role\": \"none\",\n className: (0, _classnames[\"default\"])(nextClasses),\n style: {\n display: \"block\"\n },\n onClick: nextHandler\n };\n var customProps = {\n currentSlide: this.props.currentSlide,\n slideCount: this.props.slideCount\n };\n var nextArrow;\n if (this.props.nextArrow) {\n nextArrow = /*#__PURE__*/_react[\"default\"].cloneElement(this.props.nextArrow, _objectSpread(_objectSpread({}, nextArrowProps), customProps));\n } else {\n nextArrow = /*#__PURE__*/_react[\"default\"].createElement(\"button\", _extends({\n key: \"1\",\n type: \"button\"\n }, nextArrowProps), \" \", \"Next\");\n }\n return nextArrow;\n }\n }]);\n return NextArrow;\n}(_react[\"default\"].PureComponent);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nvar defaultProps = {\n accessibility: true,\n adaptiveHeight: false,\n afterChange: null,\n appendDots: function appendDots(dots) {\n return /*#__PURE__*/_react[\"default\"].createElement(\"ul\", {\n style: {\n display: \"block\"\n }\n }, dots);\n },\n arrows: true,\n autoplay: false,\n autoplaySpeed: 3000,\n beforeChange: null,\n centerMode: false,\n centerPadding: \"50px\",\n className: \"\",\n cssEase: \"ease\",\n customPaging: function customPaging(i) {\n return /*#__PURE__*/_react[\"default\"].createElement(\"button\", null, i + 1);\n },\n dots: false,\n dotsClass: \"slick-dots\",\n draggable: true,\n easing: \"linear\",\n edgeFriction: 0.35,\n fade: false,\n focusOnSelect: false,\n infinite: true,\n initialSlide: 0,\n lazyLoad: null,\n nextArrow: null,\n onEdge: null,\n onInit: null,\n onLazyLoadError: null,\n onReInit: null,\n pauseOnDotsHover: false,\n pauseOnFocus: false,\n pauseOnHover: true,\n prevArrow: null,\n responsive: null,\n rows: 1,\n rtl: false,\n slide: \"div\",\n slidesPerRow: 1,\n slidesToScroll: 1,\n slidesToShow: 1,\n speed: 500,\n swipe: true,\n swipeEvent: null,\n swipeToSlide: false,\n touchMove: true,\n touchThreshold: 5,\n useCSS: true,\n useTransform: true,\n variableWidth: false,\n vertical: false,\n waitForAnimate: true,\n asNavFor: null\n};\nvar _default = exports[\"default\"] = defaultProps;","\"use strict\";\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Dots = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _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, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nvar getDotCount = function getDotCount(spec) {\n var dots;\n if (spec.infinite) {\n dots = Math.ceil(spec.slideCount / spec.slidesToScroll);\n } else {\n dots = Math.ceil((spec.slideCount - spec.slidesToShow) / spec.slidesToScroll) + 1;\n }\n return dots;\n};\nvar Dots = exports.Dots = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(Dots, _React$PureComponent);\n var _super = _createSuper(Dots);\n function Dots() {\n _classCallCheck(this, Dots);\n return _super.apply(this, arguments);\n }\n _createClass(Dots, [{\n key: \"clickHandler\",\n value: function clickHandler(options, e) {\n // In Autoplay the focus stays on clicked button even after transition\n // to next slide. That only goes away by click somewhere outside\n e.preventDefault();\n this.props.clickHandler(options);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n onMouseEnter = _this$props.onMouseEnter,\n onMouseOver = _this$props.onMouseOver,\n onMouseLeave = _this$props.onMouseLeave,\n infinite = _this$props.infinite,\n slidesToScroll = _this$props.slidesToScroll,\n slidesToShow = _this$props.slidesToShow,\n slideCount = _this$props.slideCount,\n currentSlide = _this$props.currentSlide;\n var dotCount = getDotCount({\n slideCount: slideCount,\n slidesToScroll: slidesToScroll,\n slidesToShow: slidesToShow,\n infinite: infinite\n });\n var mouseEvents = {\n onMouseEnter: onMouseEnter,\n onMouseOver: onMouseOver,\n onMouseLeave: onMouseLeave\n };\n var dots = [];\n for (var i = 0; i < dotCount; i++) {\n var _rightBound = (i + 1) * slidesToScroll - 1;\n var rightBound = infinite ? _rightBound : (0, _innerSliderUtils.clamp)(_rightBound, 0, slideCount - 1);\n var _leftBound = rightBound - (slidesToScroll - 1);\n var leftBound = infinite ? _leftBound : (0, _innerSliderUtils.clamp)(_leftBound, 0, slideCount - 1);\n var className = (0, _classnames[\"default\"])({\n \"slick-active\": infinite ? currentSlide >= leftBound && currentSlide <= rightBound : currentSlide === leftBound\n });\n var dotOptions = {\n message: \"dots\",\n index: i,\n slidesToScroll: slidesToScroll,\n currentSlide: currentSlide\n };\n var onClick = this.clickHandler.bind(this, dotOptions);\n dots = dots.concat( /*#__PURE__*/_react[\"default\"].createElement(\"li\", {\n key: i,\n className: className\n }, /*#__PURE__*/_react[\"default\"].cloneElement(this.props.customPaging(i), {\n onClick: onClick\n })));\n }\n return /*#__PURE__*/_react[\"default\"].cloneElement(this.props.appendDots(dots), _objectSpread({\n className: this.props.dotsClass\n }, mouseEvents));\n }\n }]);\n return Dots;\n}(_react[\"default\"].PureComponent);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar _slider = _interopRequireDefault(require(\"./slider\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nvar _default = exports[\"default\"] = _slider[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar initialState = {\n animating: false,\n autoplaying: null,\n currentDirection: 0,\n currentLeft: null,\n currentSlide: 0,\n direction: 1,\n dragging: false,\n edgeDragged: false,\n initialized: false,\n lazyLoadedList: [],\n listHeight: null,\n listWidth: null,\n scrolling: false,\n slideCount: null,\n slideHeight: null,\n slideWidth: null,\n swipeLeft: null,\n swiped: false,\n // used by swipeEvent. differentites between touch and swipe.\n swiping: false,\n touchObject: {\n startX: 0,\n startY: 0,\n curX: 0,\n curY: 0\n },\n trackStyle: {},\n trackWidth: 0,\n targetSlide: 0\n};\nvar _default = exports[\"default\"] = initialState;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.InnerSlider = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _initialState = _interopRequireDefault(require(\"./initial-state\"));\nvar _lodash = _interopRequireDefault(require(\"lodash.debounce\"));\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\nvar _track = require(\"./track\");\nvar _dots = require(\"./dots\");\nvar _arrows = require(\"./arrows\");\nvar _resizeObserverPolyfill = _interopRequireDefault(require(\"resize-observer-polyfill\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _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, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nvar InnerSlider = exports.InnerSlider = /*#__PURE__*/function (_React$Component) {\n _inherits(InnerSlider, _React$Component);\n var _super = _createSuper(InnerSlider);\n function InnerSlider(props) {\n var _this;\n _classCallCheck(this, InnerSlider);\n _this = _super.call(this, props);\n _defineProperty(_assertThisInitialized(_this), \"listRefHandler\", function (ref) {\n return _this.list = ref;\n });\n _defineProperty(_assertThisInitialized(_this), \"trackRefHandler\", function (ref) {\n return _this.track = ref;\n });\n _defineProperty(_assertThisInitialized(_this), \"adaptHeight\", function () {\n if (_this.props.adaptiveHeight && _this.list) {\n var elem = _this.list.querySelector(\"[data-index=\\\"\".concat(_this.state.currentSlide, \"\\\"]\"));\n _this.list.style.height = (0, _innerSliderUtils.getHeight)(elem) + \"px\";\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"componentDidMount\", function () {\n _this.props.onInit && _this.props.onInit();\n if (_this.props.lazyLoad) {\n var slidesToLoad = (0, _innerSliderUtils.getOnDemandLazySlides)(_objectSpread(_objectSpread({}, _this.props), _this.state));\n if (slidesToLoad.length > 0) {\n _this.setState(function (prevState) {\n return {\n lazyLoadedList: prevState.lazyLoadedList.concat(slidesToLoad)\n };\n });\n if (_this.props.onLazyLoad) {\n _this.props.onLazyLoad(slidesToLoad);\n }\n }\n }\n var spec = _objectSpread({\n listRef: _this.list,\n trackRef: _this.track\n }, _this.props);\n _this.updateState(spec, true, function () {\n _this.adaptHeight();\n _this.props.autoplay && _this.autoPlay(\"update\");\n });\n if (_this.props.lazyLoad === \"progressive\") {\n _this.lazyLoadTimer = setInterval(_this.progressiveLazyLoad, 1000);\n }\n _this.ro = new _resizeObserverPolyfill[\"default\"](function () {\n if (_this.state.animating) {\n _this.onWindowResized(false); // don't set trackStyle hence don't break animation\n _this.callbackTimers.push(setTimeout(function () {\n return _this.onWindowResized();\n }, _this.props.speed));\n } else {\n _this.onWindowResized();\n }\n });\n _this.ro.observe(_this.list);\n document.querySelectorAll && Array.prototype.forEach.call(document.querySelectorAll(\".slick-slide\"), function (slide) {\n slide.onfocus = _this.props.pauseOnFocus ? _this.onSlideFocus : null;\n slide.onblur = _this.props.pauseOnFocus ? _this.onSlideBlur : null;\n });\n if (window.addEventListener) {\n window.addEventListener(\"resize\", _this.onWindowResized);\n } else {\n window.attachEvent(\"onresize\", _this.onWindowResized);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"componentWillUnmount\", function () {\n if (_this.animationEndCallback) {\n clearTimeout(_this.animationEndCallback);\n }\n if (_this.lazyLoadTimer) {\n clearInterval(_this.lazyLoadTimer);\n }\n if (_this.callbackTimers.length) {\n _this.callbackTimers.forEach(function (timer) {\n return clearTimeout(timer);\n });\n _this.callbackTimers = [];\n }\n if (window.addEventListener) {\n window.removeEventListener(\"resize\", _this.onWindowResized);\n } else {\n window.detachEvent(\"onresize\", _this.onWindowResized);\n }\n if (_this.autoplayTimer) {\n clearInterval(_this.autoplayTimer);\n }\n _this.ro.disconnect();\n });\n _defineProperty(_assertThisInitialized(_this), \"componentDidUpdate\", function (prevProps) {\n _this.checkImagesLoad();\n _this.props.onReInit && _this.props.onReInit();\n if (_this.props.lazyLoad) {\n var slidesToLoad = (0, _innerSliderUtils.getOnDemandLazySlides)(_objectSpread(_objectSpread({}, _this.props), _this.state));\n if (slidesToLoad.length > 0) {\n _this.setState(function (prevState) {\n return {\n lazyLoadedList: prevState.lazyLoadedList.concat(slidesToLoad)\n };\n });\n if (_this.props.onLazyLoad) {\n _this.props.onLazyLoad(slidesToLoad);\n }\n }\n }\n // if (this.props.onLazyLoad) {\n // this.props.onLazyLoad([leftMostSlide])\n // }\n _this.adaptHeight();\n var spec = _objectSpread(_objectSpread({\n listRef: _this.list,\n trackRef: _this.track\n }, _this.props), _this.state);\n var setTrackStyle = _this.didPropsChange(prevProps);\n setTrackStyle && _this.updateState(spec, setTrackStyle, function () {\n if (_this.state.currentSlide >= _react[\"default\"].Children.count(_this.props.children)) {\n _this.changeSlide({\n message: \"index\",\n index: _react[\"default\"].Children.count(_this.props.children) - _this.props.slidesToShow,\n currentSlide: _this.state.currentSlide\n });\n }\n if (_this.props.autoplay) {\n _this.autoPlay(\"update\");\n } else {\n _this.pause(\"paused\");\n }\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"onWindowResized\", function (setTrackStyle) {\n if (_this.debouncedResize) _this.debouncedResize.cancel();\n _this.debouncedResize = (0, _lodash[\"default\"])(function () {\n return _this.resizeWindow(setTrackStyle);\n }, 50);\n _this.debouncedResize();\n });\n _defineProperty(_assertThisInitialized(_this), \"resizeWindow\", function () {\n var setTrackStyle = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n var isTrackMounted = Boolean(_this.track && _this.track.node);\n // prevent warning: setting state on unmounted component (server side rendering)\n if (!isTrackMounted) return;\n var spec = _objectSpread(_objectSpread({\n listRef: _this.list,\n trackRef: _this.track\n }, _this.props), _this.state);\n _this.updateState(spec, setTrackStyle, function () {\n if (_this.props.autoplay) _this.autoPlay(\"update\");else _this.pause(\"paused\");\n });\n // animating state should be cleared while resizing, otherwise autoplay stops working\n _this.setState({\n animating: false\n });\n clearTimeout(_this.animationEndCallback);\n delete _this.animationEndCallback;\n });\n _defineProperty(_assertThisInitialized(_this), \"updateState\", function (spec, setTrackStyle, callback) {\n var updatedState = (0, _innerSliderUtils.initializedState)(spec);\n spec = _objectSpread(_objectSpread(_objectSpread({}, spec), updatedState), {}, {\n slideIndex: updatedState.currentSlide\n });\n var targetLeft = (0, _innerSliderUtils.getTrackLeft)(spec);\n spec = _objectSpread(_objectSpread({}, spec), {}, {\n left: targetLeft\n });\n var trackStyle = (0, _innerSliderUtils.getTrackCSS)(spec);\n if (setTrackStyle || _react[\"default\"].Children.count(_this.props.children) !== _react[\"default\"].Children.count(spec.children)) {\n updatedState[\"trackStyle\"] = trackStyle;\n }\n _this.setState(updatedState, callback);\n });\n _defineProperty(_assertThisInitialized(_this), \"ssrInit\", function () {\n if (_this.props.variableWidth) {\n var _trackWidth = 0,\n _trackLeft = 0;\n var childrenWidths = [];\n var preClones = (0, _innerSliderUtils.getPreClones)(_objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n slideCount: _this.props.children.length\n }));\n var postClones = (0, _innerSliderUtils.getPostClones)(_objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n slideCount: _this.props.children.length\n }));\n _this.props.children.forEach(function (child) {\n childrenWidths.push(child.props.style.width);\n _trackWidth += child.props.style.width;\n });\n for (var i = 0; i < preClones; i++) {\n _trackLeft += childrenWidths[childrenWidths.length - 1 - i];\n _trackWidth += childrenWidths[childrenWidths.length - 1 - i];\n }\n for (var _i = 0; _i < postClones; _i++) {\n _trackWidth += childrenWidths[_i];\n }\n for (var _i2 = 0; _i2 < _this.state.currentSlide; _i2++) {\n _trackLeft += childrenWidths[_i2];\n }\n var _trackStyle = {\n width: _trackWidth + \"px\",\n left: -_trackLeft + \"px\"\n };\n if (_this.props.centerMode) {\n var currentWidth = \"\".concat(childrenWidths[_this.state.currentSlide], \"px\");\n _trackStyle.left = \"calc(\".concat(_trackStyle.left, \" + (100% - \").concat(currentWidth, \") / 2 ) \");\n }\n return {\n trackStyle: _trackStyle\n };\n }\n var childrenCount = _react[\"default\"].Children.count(_this.props.children);\n var spec = _objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n slideCount: childrenCount\n });\n var slideCount = (0, _innerSliderUtils.getPreClones)(spec) + (0, _innerSliderUtils.getPostClones)(spec) + childrenCount;\n var trackWidth = 100 / _this.props.slidesToShow * slideCount;\n var slideWidth = 100 / slideCount;\n var trackLeft = -slideWidth * ((0, _innerSliderUtils.getPreClones)(spec) + _this.state.currentSlide) * trackWidth / 100;\n if (_this.props.centerMode) {\n trackLeft += (100 - slideWidth * trackWidth / 100) / 2;\n }\n var trackStyle = {\n width: trackWidth + \"%\",\n left: trackLeft + \"%\"\n };\n return {\n slideWidth: slideWidth + \"%\",\n trackStyle: trackStyle\n };\n });\n _defineProperty(_assertThisInitialized(_this), \"checkImagesLoad\", function () {\n var images = _this.list && _this.list.querySelectorAll && _this.list.querySelectorAll(\".slick-slide img\") || [];\n var imagesCount = images.length,\n loadedCount = 0;\n Array.prototype.forEach.call(images, function (image) {\n var handler = function handler() {\n return ++loadedCount && loadedCount >= imagesCount && _this.onWindowResized();\n };\n if (!image.onclick) {\n image.onclick = function () {\n return image.parentNode.focus();\n };\n } else {\n var prevClickHandler = image.onclick;\n image.onclick = function (e) {\n prevClickHandler(e);\n image.parentNode.focus();\n };\n }\n if (!image.onload) {\n if (_this.props.lazyLoad) {\n image.onload = function () {\n _this.adaptHeight();\n _this.callbackTimers.push(setTimeout(_this.onWindowResized, _this.props.speed));\n };\n } else {\n image.onload = handler;\n image.onerror = function () {\n handler();\n _this.props.onLazyLoadError && _this.props.onLazyLoadError();\n };\n }\n }\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"progressiveLazyLoad\", function () {\n var slidesToLoad = [];\n var spec = _objectSpread(_objectSpread({}, _this.props), _this.state);\n for (var index = _this.state.currentSlide; index < _this.state.slideCount + (0, _innerSliderUtils.getPostClones)(spec); index++) {\n if (_this.state.lazyLoadedList.indexOf(index) < 0) {\n slidesToLoad.push(index);\n break;\n }\n }\n for (var _index = _this.state.currentSlide - 1; _index >= -(0, _innerSliderUtils.getPreClones)(spec); _index--) {\n if (_this.state.lazyLoadedList.indexOf(_index) < 0) {\n slidesToLoad.push(_index);\n break;\n }\n }\n if (slidesToLoad.length > 0) {\n _this.setState(function (state) {\n return {\n lazyLoadedList: state.lazyLoadedList.concat(slidesToLoad)\n };\n });\n if (_this.props.onLazyLoad) {\n _this.props.onLazyLoad(slidesToLoad);\n }\n } else {\n if (_this.lazyLoadTimer) {\n clearInterval(_this.lazyLoadTimer);\n delete _this.lazyLoadTimer;\n }\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"slideHandler\", function (index) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var _this$props = _this.props,\n asNavFor = _this$props.asNavFor,\n beforeChange = _this$props.beforeChange,\n onLazyLoad = _this$props.onLazyLoad,\n speed = _this$props.speed,\n afterChange = _this$props.afterChange; // capture currentslide before state is updated\n var currentSlide = _this.state.currentSlide;\n var _slideHandler = (0, _innerSliderUtils.slideHandler)(_objectSpread(_objectSpread(_objectSpread({\n index: index\n }, _this.props), _this.state), {}, {\n trackRef: _this.track,\n useCSS: _this.props.useCSS && !dontAnimate\n })),\n state = _slideHandler.state,\n nextState = _slideHandler.nextState;\n if (!state) return;\n beforeChange && beforeChange(currentSlide, state.currentSlide);\n var slidesToLoad = state.lazyLoadedList.filter(function (value) {\n return _this.state.lazyLoadedList.indexOf(value) < 0;\n });\n onLazyLoad && slidesToLoad.length > 0 && onLazyLoad(slidesToLoad);\n if (!_this.props.waitForAnimate && _this.animationEndCallback) {\n clearTimeout(_this.animationEndCallback);\n afterChange && afterChange(currentSlide);\n delete _this.animationEndCallback;\n }\n _this.setState(state, function () {\n // asNavForIndex check is to avoid recursive calls of slideHandler in waitForAnimate=false mode\n if (asNavFor && _this.asNavForIndex !== index) {\n _this.asNavForIndex = index;\n asNavFor.innerSlider.slideHandler(index);\n }\n if (!nextState) return;\n _this.animationEndCallback = setTimeout(function () {\n var animating = nextState.animating,\n firstBatch = _objectWithoutProperties(nextState, [\"animating\"]);\n _this.setState(firstBatch, function () {\n _this.callbackTimers.push(setTimeout(function () {\n return _this.setState({\n animating: animating\n });\n }, 10));\n afterChange && afterChange(state.currentSlide);\n delete _this.animationEndCallback;\n });\n }, speed);\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"changeSlide\", function (options) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var spec = _objectSpread(_objectSpread({}, _this.props), _this.state);\n var targetSlide = (0, _innerSliderUtils.changeSlide)(spec, options);\n if (targetSlide !== 0 && !targetSlide) return;\n if (dontAnimate === true) {\n _this.slideHandler(targetSlide, dontAnimate);\n } else {\n _this.slideHandler(targetSlide);\n }\n _this.props.autoplay && _this.autoPlay(\"update\");\n if (_this.props.focusOnSelect) {\n var nodes = _this.list.querySelectorAll(\".slick-current\");\n nodes[0] && nodes[0].focus();\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"clickHandler\", function (e) {\n if (_this.clickable === false) {\n e.stopPropagation();\n e.preventDefault();\n }\n _this.clickable = true;\n });\n _defineProperty(_assertThisInitialized(_this), \"keyHandler\", function (e) {\n var dir = (0, _innerSliderUtils.keyHandler)(e, _this.props.accessibility, _this.props.rtl);\n dir !== \"\" && _this.changeSlide({\n message: dir\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"selectHandler\", function (options) {\n _this.changeSlide(options);\n });\n _defineProperty(_assertThisInitialized(_this), \"disableBodyScroll\", function () {\n var preventDefault = function preventDefault(e) {\n e = e || window.event;\n if (e.preventDefault) e.preventDefault();\n e.returnValue = false;\n };\n window.ontouchmove = preventDefault;\n });\n _defineProperty(_assertThisInitialized(_this), \"enableBodyScroll\", function () {\n window.ontouchmove = null;\n });\n _defineProperty(_assertThisInitialized(_this), \"swipeStart\", function (e) {\n if (_this.props.verticalSwiping) {\n _this.disableBodyScroll();\n }\n var state = (0, _innerSliderUtils.swipeStart)(e, _this.props.swipe, _this.props.draggable);\n state !== \"\" && _this.setState(state);\n });\n _defineProperty(_assertThisInitialized(_this), \"swipeMove\", function (e) {\n var state = (0, _innerSliderUtils.swipeMove)(e, _objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n trackRef: _this.track,\n listRef: _this.list,\n slideIndex: _this.state.currentSlide\n }));\n if (!state) return;\n if (state[\"swiping\"]) {\n _this.clickable = false;\n }\n _this.setState(state);\n });\n _defineProperty(_assertThisInitialized(_this), \"swipeEnd\", function (e) {\n var state = (0, _innerSliderUtils.swipeEnd)(e, _objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n trackRef: _this.track,\n listRef: _this.list,\n slideIndex: _this.state.currentSlide\n }));\n if (!state) return;\n var triggerSlideHandler = state[\"triggerSlideHandler\"];\n delete state[\"triggerSlideHandler\"];\n _this.setState(state);\n if (triggerSlideHandler === undefined) return;\n _this.slideHandler(triggerSlideHandler);\n if (_this.props.verticalSwiping) {\n _this.enableBodyScroll();\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"touchEnd\", function (e) {\n _this.swipeEnd(e);\n _this.clickable = true;\n });\n _defineProperty(_assertThisInitialized(_this), \"slickPrev\", function () {\n // this and fellow methods are wrapped in setTimeout\n // to make sure initialize setState has happened before\n // any of such methods are called\n _this.callbackTimers.push(setTimeout(function () {\n return _this.changeSlide({\n message: \"previous\"\n });\n }, 0));\n });\n _defineProperty(_assertThisInitialized(_this), \"slickNext\", function () {\n _this.callbackTimers.push(setTimeout(function () {\n return _this.changeSlide({\n message: \"next\"\n });\n }, 0));\n });\n _defineProperty(_assertThisInitialized(_this), \"slickGoTo\", function (slide) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n slide = Number(slide);\n if (isNaN(slide)) return \"\";\n _this.callbackTimers.push(setTimeout(function () {\n return _this.changeSlide({\n message: \"index\",\n index: slide,\n currentSlide: _this.state.currentSlide\n }, dontAnimate);\n }, 0));\n });\n _defineProperty(_assertThisInitialized(_this), \"play\", function () {\n var nextIndex;\n if (_this.props.rtl) {\n nextIndex = _this.state.currentSlide - _this.props.slidesToScroll;\n } else {\n if ((0, _innerSliderUtils.canGoNext)(_objectSpread(_objectSpread({}, _this.props), _this.state))) {\n nextIndex = _this.state.currentSlide + _this.props.slidesToScroll;\n } else {\n return false;\n }\n }\n _this.slideHandler(nextIndex);\n });\n _defineProperty(_assertThisInitialized(_this), \"autoPlay\", function (playType) {\n if (_this.autoplayTimer) {\n clearInterval(_this.autoplayTimer);\n }\n var autoplaying = _this.state.autoplaying;\n if (playType === \"update\") {\n if (autoplaying === \"hovered\" || autoplaying === \"focused\" || autoplaying === \"paused\") {\n return;\n }\n } else if (playType === \"leave\") {\n if (autoplaying === \"paused\" || autoplaying === \"focused\") {\n return;\n }\n } else if (playType === \"blur\") {\n if (autoplaying === \"paused\" || autoplaying === \"hovered\") {\n return;\n }\n }\n _this.autoplayTimer = setInterval(_this.play, _this.props.autoplaySpeed + 50);\n _this.setState({\n autoplaying: \"playing\"\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"pause\", function (pauseType) {\n if (_this.autoplayTimer) {\n clearInterval(_this.autoplayTimer);\n _this.autoplayTimer = null;\n }\n var autoplaying = _this.state.autoplaying;\n if (pauseType === \"paused\") {\n _this.setState({\n autoplaying: \"paused\"\n });\n } else if (pauseType === \"focused\") {\n if (autoplaying === \"hovered\" || autoplaying === \"playing\") {\n _this.setState({\n autoplaying: \"focused\"\n });\n }\n } else {\n // pauseType is 'hovered'\n if (autoplaying === \"playing\") {\n _this.setState({\n autoplaying: \"hovered\"\n });\n }\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"onDotsOver\", function () {\n return _this.props.autoplay && _this.pause(\"hovered\");\n });\n _defineProperty(_assertThisInitialized(_this), \"onDotsLeave\", function () {\n return _this.props.autoplay && _this.state.autoplaying === \"hovered\" && _this.autoPlay(\"leave\");\n });\n _defineProperty(_assertThisInitialized(_this), \"onTrackOver\", function () {\n return _this.props.autoplay && _this.pause(\"hovered\");\n });\n _defineProperty(_assertThisInitialized(_this), \"onTrackLeave\", function () {\n return _this.props.autoplay && _this.state.autoplaying === \"hovered\" && _this.autoPlay(\"leave\");\n });\n _defineProperty(_assertThisInitialized(_this), \"onSlideFocus\", function () {\n return _this.props.autoplay && _this.pause(\"focused\");\n });\n _defineProperty(_assertThisInitialized(_this), \"onSlideBlur\", function () {\n return _this.props.autoplay && _this.state.autoplaying === \"focused\" && _this.autoPlay(\"blur\");\n });\n _defineProperty(_assertThisInitialized(_this), \"render\", function () {\n var className = (0, _classnames[\"default\"])(\"slick-slider\", _this.props.className, {\n \"slick-vertical\": _this.props.vertical,\n \"slick-initialized\": true\n });\n var spec = _objectSpread(_objectSpread({}, _this.props), _this.state);\n var trackProps = (0, _innerSliderUtils.extractObject)(spec, [\"fade\", \"cssEase\", \"speed\", \"infinite\", \"centerMode\", \"focusOnSelect\", \"currentSlide\", \"lazyLoad\", \"lazyLoadedList\", \"rtl\", \"slideWidth\", \"slideHeight\", \"listHeight\", \"vertical\", \"slidesToShow\", \"slidesToScroll\", \"slideCount\", \"trackStyle\", \"variableWidth\", \"unslick\", \"centerPadding\", \"targetSlide\", \"useCSS\"]);\n var pauseOnHover = _this.props.pauseOnHover;\n trackProps = _objectSpread(_objectSpread({}, trackProps), {}, {\n onMouseEnter: pauseOnHover ? _this.onTrackOver : null,\n onMouseLeave: pauseOnHover ? _this.onTrackLeave : null,\n onMouseOver: pauseOnHover ? _this.onTrackOver : null,\n focusOnSelect: _this.props.focusOnSelect && _this.clickable ? _this.selectHandler : null\n });\n var dots;\n if (_this.props.dots === true && _this.state.slideCount >= _this.props.slidesToShow) {\n var dotProps = (0, _innerSliderUtils.extractObject)(spec, [\"dotsClass\", \"slideCount\", \"slidesToShow\", \"currentSlide\", \"slidesToScroll\", \"clickHandler\", \"children\", \"customPaging\", \"infinite\", \"appendDots\"]);\n var pauseOnDotsHover = _this.props.pauseOnDotsHover;\n dotProps = _objectSpread(_objectSpread({}, dotProps), {}, {\n clickHandler: _this.changeSlide,\n onMouseEnter: pauseOnDotsHover ? _this.onDotsLeave : null,\n onMouseOver: pauseOnDotsHover ? _this.onDotsOver : null,\n onMouseLeave: pauseOnDotsHover ? _this.onDotsLeave : null\n });\n dots = /*#__PURE__*/_react[\"default\"].createElement(_dots.Dots, dotProps);\n }\n var prevArrow, nextArrow;\n var arrowProps = (0, _innerSliderUtils.extractObject)(spec, [\"infinite\", \"centerMode\", \"currentSlide\", \"slideCount\", \"slidesToShow\", \"prevArrow\", \"nextArrow\"]);\n arrowProps.clickHandler = _this.changeSlide;\n if (_this.props.arrows) {\n prevArrow = /*#__PURE__*/_react[\"default\"].createElement(_arrows.PrevArrow, arrowProps);\n nextArrow = /*#__PURE__*/_react[\"default\"].createElement(_arrows.NextArrow, arrowProps);\n }\n var verticalHeightStyle = null;\n if (_this.props.vertical) {\n verticalHeightStyle = {\n height: _this.state.listHeight\n };\n }\n var centerPaddingStyle = null;\n if (_this.props.vertical === false) {\n if (_this.props.centerMode === true) {\n centerPaddingStyle = {\n padding: \"0px \" + _this.props.centerPadding\n };\n }\n } else {\n if (_this.props.centerMode === true) {\n centerPaddingStyle = {\n padding: _this.props.centerPadding + \" 0px\"\n };\n }\n }\n var listStyle = _objectSpread(_objectSpread({}, verticalHeightStyle), centerPaddingStyle);\n var touchMove = _this.props.touchMove;\n var listProps = {\n className: \"slick-list\",\n style: listStyle,\n onClick: _this.clickHandler,\n onMouseDown: touchMove ? _this.swipeStart : null,\n onMouseMove: _this.state.dragging && touchMove ? _this.swipeMove : null,\n onMouseUp: touchMove ? _this.swipeEnd : null,\n onMouseLeave: _this.state.dragging && touchMove ? _this.swipeEnd : null,\n onTouchStart: touchMove ? _this.swipeStart : null,\n onTouchMove: _this.state.dragging && touchMove ? _this.swipeMove : null,\n onTouchEnd: touchMove ? _this.touchEnd : null,\n onTouchCancel: _this.state.dragging && touchMove ? _this.swipeEnd : null,\n onKeyDown: _this.props.accessibility ? _this.keyHandler : null\n };\n var innerSliderProps = {\n className: className,\n dir: \"ltr\",\n style: _this.props.style\n };\n if (_this.props.unslick) {\n listProps = {\n className: \"slick-list\"\n };\n innerSliderProps = {\n className: className\n };\n }\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", innerSliderProps, !_this.props.unslick ? prevArrow : \"\", /*#__PURE__*/_react[\"default\"].createElement(\"div\", _extends({\n ref: _this.listRefHandler\n }, listProps), /*#__PURE__*/_react[\"default\"].createElement(_track.Track, _extends({\n ref: _this.trackRefHandler\n }, trackProps), _this.props.children)), !_this.props.unslick ? nextArrow : \"\", !_this.props.unslick ? dots : \"\");\n });\n _this.list = null;\n _this.track = null;\n _this.state = _objectSpread(_objectSpread({}, _initialState[\"default\"]), {}, {\n currentSlide: _this.props.initialSlide,\n targetSlide: _this.props.initialSlide ? _this.props.initialSlide : 0,\n slideCount: _react[\"default\"].Children.count(_this.props.children)\n });\n _this.callbackTimers = [];\n _this.clickable = true;\n _this.debouncedResize = null;\n var ssrState = _this.ssrInit();\n _this.state = _objectSpread(_objectSpread({}, _this.state), ssrState);\n return _this;\n }\n _createClass(InnerSlider, [{\n key: \"didPropsChange\",\n value: function didPropsChange(prevProps) {\n var setTrackStyle = false;\n for (var _i3 = 0, _Object$keys = Object.keys(this.props); _i3 < _Object$keys.length; _i3++) {\n var key = _Object$keys[_i3];\n if (!prevProps.hasOwnProperty(key)) {\n setTrackStyle = true;\n break;\n }\n if (_typeof(prevProps[key]) === \"object\" || typeof prevProps[key] === \"function\" || isNaN(prevProps[key])) {\n continue;\n }\n if (prevProps[key] !== this.props[key]) {\n setTrackStyle = true;\n break;\n }\n }\n return setTrackStyle || _react[\"default\"].Children.count(this.props.children) !== _react[\"default\"].Children.count(prevProps.children);\n }\n }]);\n return InnerSlider;\n}(_react[\"default\"].Component);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _innerSlider = require(\"./inner-slider\");\nvar _json2mq = _interopRequireDefault(require(\"json2mq\"));\nvar _defaultProps = _interopRequireDefault(require(\"./default-props\"));\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _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, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nvar enquire = (0, _innerSliderUtils.canUseDOM)() && require(\"enquire.js\");\nvar Slider = exports[\"default\"] = /*#__PURE__*/function (_React$Component) {\n _inherits(Slider, _React$Component);\n var _super = _createSuper(Slider);\n function Slider(props) {\n var _this;\n _classCallCheck(this, Slider);\n _this = _super.call(this, props);\n _defineProperty(_assertThisInitialized(_this), \"innerSliderRefHandler\", function (ref) {\n return _this.innerSlider = ref;\n });\n _defineProperty(_assertThisInitialized(_this), \"slickPrev\", function () {\n return _this.innerSlider.slickPrev();\n });\n _defineProperty(_assertThisInitialized(_this), \"slickNext\", function () {\n return _this.innerSlider.slickNext();\n });\n _defineProperty(_assertThisInitialized(_this), \"slickGoTo\", function (slide) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n return _this.innerSlider.slickGoTo(slide, dontAnimate);\n });\n _defineProperty(_assertThisInitialized(_this), \"slickPause\", function () {\n return _this.innerSlider.pause(\"paused\");\n });\n _defineProperty(_assertThisInitialized(_this), \"slickPlay\", function () {\n return _this.innerSlider.autoPlay(\"play\");\n });\n _this.state = {\n breakpoint: null\n };\n _this._responsiveMediaHandlers = [];\n return _this;\n }\n _createClass(Slider, [{\n key: \"media\",\n value: function media(query, handler) {\n // javascript handler for css media query\n enquire.register(query, handler);\n this._responsiveMediaHandlers.push({\n query: query,\n handler: handler\n });\n } // handles responsive breakpoints\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this2 = this;\n // performance monitoring\n //if (process.env.NODE_ENV !== 'production') {\n //const { whyDidYouUpdate } = require('why-did-you-update')\n //whyDidYouUpdate(React)\n //}\n if (this.props.responsive) {\n var breakpoints = this.props.responsive.map(function (breakpt) {\n return breakpt.breakpoint;\n });\n // sort them in increasing order of their numerical value\n breakpoints.sort(function (x, y) {\n return x - y;\n });\n breakpoints.forEach(function (breakpoint, index) {\n // media query for each breakpoint\n var bQuery;\n if (index === 0) {\n bQuery = (0, _json2mq[\"default\"])({\n minWidth: 0,\n maxWidth: breakpoint\n });\n } else {\n bQuery = (0, _json2mq[\"default\"])({\n minWidth: breakpoints[index - 1] + 1,\n maxWidth: breakpoint\n });\n }\n // when not using server side rendering\n (0, _innerSliderUtils.canUseDOM)() && _this2.media(bQuery, function () {\n _this2.setState({\n breakpoint: breakpoint\n });\n });\n });\n\n // Register media query for full screen. Need to support resize from small to large\n // convert javascript object to media query string\n var query = (0, _json2mq[\"default\"])({\n minWidth: breakpoints.slice(-1)[0]\n });\n (0, _innerSliderUtils.canUseDOM)() && this.media(query, function () {\n _this2.setState({\n breakpoint: null\n });\n });\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this._responsiveMediaHandlers.forEach(function (obj) {\n enquire.unregister(obj.query, obj.handler);\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this3 = this;\n var settings;\n var newProps;\n if (this.state.breakpoint) {\n newProps = this.props.responsive.filter(function (resp) {\n return resp.breakpoint === _this3.state.breakpoint;\n });\n settings = newProps[0].settings === \"unslick\" ? \"unslick\" : _objectSpread(_objectSpread(_objectSpread({}, _defaultProps[\"default\"]), this.props), newProps[0].settings);\n } else {\n settings = _objectSpread(_objectSpread({}, _defaultProps[\"default\"]), this.props);\n }\n\n // force scrolling by one if centerMode is on\n if (settings.centerMode) {\n if (settings.slidesToScroll > 1 && process.env.NODE_ENV !== \"production\") {\n console.warn(\"slidesToScroll should be equal to 1 in centerMode, you are using \".concat(settings.slidesToScroll));\n }\n settings.slidesToScroll = 1;\n }\n // force showing one slide and scrolling by one if the fade mode is on\n if (settings.fade) {\n if (settings.slidesToShow > 1 && process.env.NODE_ENV !== \"production\") {\n console.warn(\"slidesToShow should be equal to 1 when fade is true, you're using \".concat(settings.slidesToShow));\n }\n if (settings.slidesToScroll > 1 && process.env.NODE_ENV !== \"production\") {\n console.warn(\"slidesToScroll should be equal to 1 when fade is true, you're using \".concat(settings.slidesToScroll));\n }\n settings.slidesToShow = 1;\n settings.slidesToScroll = 1;\n }\n\n // makes sure that children is an array, even when there is only 1 child\n var children = _react[\"default\"].Children.toArray(this.props.children);\n\n // Children may contain false or null, so we should filter them\n // children may also contain string filled with spaces (in certain cases where we use jsx strings)\n children = children.filter(function (child) {\n if (typeof child === \"string\") {\n return !!child.trim();\n }\n return !!child;\n });\n\n // rows and slidesPerRow logic is handled here\n if (settings.variableWidth && (settings.rows > 1 || settings.slidesPerRow > 1)) {\n console.warn(\"variableWidth is not supported in case of rows > 1 or slidesPerRow > 1\");\n settings.variableWidth = false;\n }\n var newChildren = [];\n var currentWidth = null;\n for (var i = 0; i < children.length; i += settings.rows * settings.slidesPerRow) {\n var newSlide = [];\n for (var j = i; j < i + settings.rows * settings.slidesPerRow; j += settings.slidesPerRow) {\n var row = [];\n for (var k = j; k < j + settings.slidesPerRow; k += 1) {\n if (settings.variableWidth && children[k].props.style) {\n currentWidth = children[k].props.style.width;\n }\n if (k >= children.length) break;\n row.push( /*#__PURE__*/_react[\"default\"].cloneElement(children[k], {\n key: 100 * i + 10 * j + k,\n tabIndex: -1,\n style: {\n width: \"\".concat(100 / settings.slidesPerRow, \"%\"),\n display: \"inline-block\"\n }\n }));\n }\n newSlide.push( /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n key: 10 * i + j\n }, row));\n }\n if (settings.variableWidth) {\n newChildren.push( /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n key: i,\n style: {\n width: currentWidth\n }\n }, newSlide));\n } else {\n newChildren.push( /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n key: i\n }, newSlide));\n }\n }\n if (settings === \"unslick\") {\n var className = \"regular slider \" + (this.props.className || \"\");\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: className\n }, children);\n } else if (newChildren.length <= settings.slidesToShow && !settings.infinite) {\n settings.unslick = true;\n }\n return /*#__PURE__*/_react[\"default\"].createElement(_innerSlider.InnerSlider, _extends({\n style: this.props.style,\n ref: this.innerSliderRefHandler\n }, (0, _innerSliderUtils.filterSettings)(settings)), newChildren);\n }\n }]);\n return Slider;\n}(_react[\"default\"].Component);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Track = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _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, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n// given specifications/props for a slide, fetch all the classes that need to be applied to the slide\nvar getSlideClasses = function getSlideClasses(spec) {\n var slickActive, slickCenter, slickCloned;\n var centerOffset, index;\n if (spec.rtl) {\n index = spec.slideCount - 1 - spec.index;\n } else {\n index = spec.index;\n }\n slickCloned = index < 0 || index >= spec.slideCount;\n if (spec.centerMode) {\n centerOffset = Math.floor(spec.slidesToShow / 2);\n slickCenter = (index - spec.currentSlide) % spec.slideCount === 0;\n if (index > spec.currentSlide - centerOffset - 1 && index <= spec.currentSlide + centerOffset) {\n slickActive = true;\n }\n } else {\n slickActive = spec.currentSlide <= index && index < spec.currentSlide + spec.slidesToShow;\n }\n var focusedSlide;\n if (spec.targetSlide < 0) {\n focusedSlide = spec.targetSlide + spec.slideCount;\n } else if (spec.targetSlide >= spec.slideCount) {\n focusedSlide = spec.targetSlide - spec.slideCount;\n } else {\n focusedSlide = spec.targetSlide;\n }\n var slickCurrent = index === focusedSlide;\n return {\n \"slick-slide\": true,\n \"slick-active\": slickActive,\n \"slick-center\": slickCenter,\n \"slick-cloned\": slickCloned,\n \"slick-current\": slickCurrent // dubious in case of RTL\n };\n};\nvar getSlideStyle = function getSlideStyle(spec) {\n var style = {};\n if (spec.variableWidth === undefined || spec.variableWidth === false) {\n style.width = spec.slideWidth;\n }\n if (spec.fade) {\n style.position = \"relative\";\n if (spec.vertical) {\n style.top = -spec.index * parseInt(spec.slideHeight);\n } else {\n style.left = -spec.index * parseInt(spec.slideWidth);\n }\n style.opacity = spec.currentSlide === spec.index ? 1 : 0;\n style.zIndex = spec.currentSlide === spec.index ? 999 : 998;\n if (spec.useCSS) {\n style.transition = \"opacity \" + spec.speed + \"ms \" + spec.cssEase + \", \" + \"visibility \" + spec.speed + \"ms \" + spec.cssEase;\n }\n }\n return style;\n};\nvar getKey = function getKey(child, fallbackKey) {\n return child.key || fallbackKey;\n};\nvar renderSlides = function renderSlides(spec) {\n var key;\n var slides = [];\n var preCloneSlides = [];\n var postCloneSlides = [];\n var childrenCount = _react[\"default\"].Children.count(spec.children);\n var startIndex = (0, _innerSliderUtils.lazyStartIndex)(spec);\n var endIndex = (0, _innerSliderUtils.lazyEndIndex)(spec);\n _react[\"default\"].Children.forEach(spec.children, function (elem, index) {\n var child;\n var childOnClickOptions = {\n message: \"children\",\n index: index,\n slidesToScroll: spec.slidesToScroll,\n currentSlide: spec.currentSlide\n };\n\n // in case of lazyLoad, whether or not we want to fetch the slide\n if (!spec.lazyLoad || spec.lazyLoad && spec.lazyLoadedList.indexOf(index) >= 0) {\n child = elem;\n } else {\n child = /*#__PURE__*/_react[\"default\"].createElement(\"div\", null);\n }\n var childStyle = getSlideStyle(_objectSpread(_objectSpread({}, spec), {}, {\n index: index\n }));\n var slideClass = child.props.className || \"\";\n var slideClasses = getSlideClasses(_objectSpread(_objectSpread({}, spec), {}, {\n index: index\n }));\n // push a cloned element of the desired slide\n slides.push( /*#__PURE__*/_react[\"default\"].cloneElement(child, {\n key: \"original\" + getKey(child, index),\n \"data-index\": index,\n className: (0, _classnames[\"default\"])(slideClasses, slideClass),\n tabIndex: \"-1\",\n \"aria-hidden\": !slideClasses[\"slick-active\"],\n style: _objectSpread(_objectSpread({\n outline: \"none\"\n }, child.props.style || {}), childStyle),\n onClick: function onClick(e) {\n child.props && child.props.onClick && child.props.onClick(e);\n if (spec.focusOnSelect) {\n spec.focusOnSelect(childOnClickOptions);\n }\n }\n }));\n\n // if slide needs to be precloned or postcloned\n if (spec.infinite && spec.fade === false) {\n var preCloneNo = childrenCount - index;\n if (preCloneNo <= (0, _innerSliderUtils.getPreClones)(spec)) {\n key = -preCloneNo;\n if (key >= startIndex) {\n child = elem;\n }\n slideClasses = getSlideClasses(_objectSpread(_objectSpread({}, spec), {}, {\n index: key\n }));\n preCloneSlides.push( /*#__PURE__*/_react[\"default\"].cloneElement(child, {\n key: \"precloned\" + getKey(child, key),\n \"data-index\": key,\n tabIndex: \"-1\",\n className: (0, _classnames[\"default\"])(slideClasses, slideClass),\n \"aria-hidden\": !slideClasses[\"slick-active\"],\n style: _objectSpread(_objectSpread({}, child.props.style || {}), childStyle),\n onClick: function onClick(e) {\n child.props && child.props.onClick && child.props.onClick(e);\n if (spec.focusOnSelect) {\n spec.focusOnSelect(childOnClickOptions);\n }\n }\n }));\n }\n key = childrenCount + index;\n if (key < endIndex) {\n child = elem;\n }\n slideClasses = getSlideClasses(_objectSpread(_objectSpread({}, spec), {}, {\n index: key\n }));\n postCloneSlides.push( /*#__PURE__*/_react[\"default\"].cloneElement(child, {\n key: \"postcloned\" + getKey(child, key),\n \"data-index\": key,\n tabIndex: \"-1\",\n className: (0, _classnames[\"default\"])(slideClasses, slideClass),\n \"aria-hidden\": !slideClasses[\"slick-active\"],\n style: _objectSpread(_objectSpread({}, child.props.style || {}), childStyle),\n onClick: function onClick(e) {\n child.props && child.props.onClick && child.props.onClick(e);\n if (spec.focusOnSelect) {\n spec.focusOnSelect(childOnClickOptions);\n }\n }\n }));\n }\n });\n if (spec.rtl) {\n return preCloneSlides.concat(slides, postCloneSlides).reverse();\n } else {\n return preCloneSlides.concat(slides, postCloneSlides);\n }\n};\nvar Track = exports.Track = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(Track, _React$PureComponent);\n var _super = _createSuper(Track);\n function Track() {\n var _this;\n _classCallCheck(this, Track);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"node\", null);\n _defineProperty(_assertThisInitialized(_this), \"handleRef\", function (ref) {\n _this.node = ref;\n });\n return _this;\n }\n _createClass(Track, [{\n key: \"render\",\n value: function render() {\n var slides = renderSlides(this.props);\n var _this$props = this.props,\n onMouseEnter = _this$props.onMouseEnter,\n onMouseOver = _this$props.onMouseOver,\n onMouseLeave = _this$props.onMouseLeave;\n var mouseEvents = {\n onMouseEnter: onMouseEnter,\n onMouseOver: onMouseOver,\n onMouseLeave: onMouseLeave\n };\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", _extends({\n ref: this.handleRef,\n className: \"slick-track\",\n style: this.props.trackStyle\n }, mouseEvents), slides);\n }\n }]);\n return Track;\n}(_react[\"default\"].PureComponent);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.checkSpecKeys = exports.checkNavigable = exports.changeSlide = exports.canUseDOM = exports.canGoNext = void 0;\nexports.clamp = clamp;\nexports.extractObject = void 0;\nexports.filterSettings = filterSettings;\nexports.validSettings = exports.swipeStart = exports.swipeMove = exports.swipeEnd = exports.slidesOnRight = exports.slidesOnLeft = exports.slideHandler = exports.siblingDirection = exports.safePreventDefault = exports.lazyStartIndex = exports.lazySlidesOnRight = exports.lazySlidesOnLeft = exports.lazyEndIndex = exports.keyHandler = exports.initializedState = exports.getWidth = exports.getTrackLeft = exports.getTrackCSS = exports.getTrackAnimateCSS = exports.getTotalSlides = exports.getSwipeDirection = exports.getSlideCount = exports.getRequiredLazySlides = exports.getPreClones = exports.getPostClones = exports.getOnDemandLazySlides = exports.getNavigableIndexes = exports.getHeight = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _defaultProps = _interopRequireDefault(require(\"../default-props\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction clamp(number, lowerBound, upperBound) {\n return Math.max(lowerBound, Math.min(number, upperBound));\n}\nvar safePreventDefault = exports.safePreventDefault = function safePreventDefault(event) {\n var passiveEvents = [\"onTouchStart\", \"onTouchMove\", \"onWheel\"];\n if (!passiveEvents.includes(event._reactName)) {\n event.preventDefault();\n }\n};\nvar getOnDemandLazySlides = exports.getOnDemandLazySlides = function getOnDemandLazySlides(spec) {\n var onDemandSlides = [];\n var startIndex = lazyStartIndex(spec);\n var endIndex = lazyEndIndex(spec);\n for (var slideIndex = startIndex; slideIndex < endIndex; slideIndex++) {\n if (spec.lazyLoadedList.indexOf(slideIndex) < 0) {\n onDemandSlides.push(slideIndex);\n }\n }\n return onDemandSlides;\n};\n\n// return list of slides that need to be present\nvar getRequiredLazySlides = exports.getRequiredLazySlides = function getRequiredLazySlides(spec) {\n var requiredSlides = [];\n var startIndex = lazyStartIndex(spec);\n var endIndex = lazyEndIndex(spec);\n for (var slideIndex = startIndex; slideIndex < endIndex; slideIndex++) {\n requiredSlides.push(slideIndex);\n }\n return requiredSlides;\n};\n\n// startIndex that needs to be present\nvar lazyStartIndex = exports.lazyStartIndex = function lazyStartIndex(spec) {\n return spec.currentSlide - lazySlidesOnLeft(spec);\n};\nvar lazyEndIndex = exports.lazyEndIndex = function lazyEndIndex(spec) {\n return spec.currentSlide + lazySlidesOnRight(spec);\n};\nvar lazySlidesOnLeft = exports.lazySlidesOnLeft = function lazySlidesOnLeft(spec) {\n return spec.centerMode ? Math.floor(spec.slidesToShow / 2) + (parseInt(spec.centerPadding) > 0 ? 1 : 0) : 0;\n};\nvar lazySlidesOnRight = exports.lazySlidesOnRight = function lazySlidesOnRight(spec) {\n return spec.centerMode ? Math.floor((spec.slidesToShow - 1) / 2) + 1 + (parseInt(spec.centerPadding) > 0 ? 1 : 0) : spec.slidesToShow;\n};\n\n// get width of an element\nvar getWidth = exports.getWidth = function getWidth(elem) {\n return elem && elem.offsetWidth || 0;\n};\nvar getHeight = exports.getHeight = function getHeight(elem) {\n return elem && elem.offsetHeight || 0;\n};\nvar getSwipeDirection = exports.getSwipeDirection = function getSwipeDirection(touchObject) {\n var verticalSwiping = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var xDist, yDist, r, swipeAngle;\n xDist = touchObject.startX - touchObject.curX;\n yDist = touchObject.startY - touchObject.curY;\n r = Math.atan2(yDist, xDist);\n swipeAngle = Math.round(r * 180 / Math.PI);\n if (swipeAngle < 0) {\n swipeAngle = 360 - Math.abs(swipeAngle);\n }\n if (swipeAngle <= 45 && swipeAngle >= 0 || swipeAngle <= 360 && swipeAngle >= 315) {\n return \"left\";\n }\n if (swipeAngle >= 135 && swipeAngle <= 225) {\n return \"right\";\n }\n if (verticalSwiping === true) {\n if (swipeAngle >= 35 && swipeAngle <= 135) {\n return \"up\";\n } else {\n return \"down\";\n }\n }\n return \"vertical\";\n};\n\n// whether or not we can go next\nvar canGoNext = exports.canGoNext = function canGoNext(spec) {\n var canGo = true;\n if (!spec.infinite) {\n if (spec.centerMode && spec.currentSlide >= spec.slideCount - 1) {\n canGo = false;\n } else if (spec.slideCount <= spec.slidesToShow || spec.currentSlide >= spec.slideCount - spec.slidesToShow) {\n canGo = false;\n }\n }\n return canGo;\n};\n\n// given an object and a list of keys, return new object with given keys\nvar extractObject = exports.extractObject = function extractObject(spec, keys) {\n var newObject = {};\n keys.forEach(function (key) {\n return newObject[key] = spec[key];\n });\n return newObject;\n};\n\n// get initialized state\nvar initializedState = exports.initializedState = function initializedState(spec) {\n // spec also contains listRef, trackRef\n var slideCount = _react[\"default\"].Children.count(spec.children);\n var listNode = spec.listRef;\n var listWidth = Math.ceil(getWidth(listNode));\n var trackNode = spec.trackRef && spec.trackRef.node;\n var trackWidth = Math.ceil(getWidth(trackNode));\n var slideWidth;\n if (!spec.vertical) {\n var centerPaddingAdj = spec.centerMode && parseInt(spec.centerPadding) * 2;\n if (typeof spec.centerPadding === \"string\" && spec.centerPadding.slice(-1) === \"%\") {\n centerPaddingAdj *= listWidth / 100;\n }\n slideWidth = Math.ceil((listWidth - centerPaddingAdj) / spec.slidesToShow);\n } else {\n slideWidth = listWidth;\n }\n var slideHeight = listNode && getHeight(listNode.querySelector('[data-index=\"0\"]'));\n var listHeight = slideHeight * spec.slidesToShow;\n var currentSlide = spec.currentSlide === undefined ? spec.initialSlide : spec.currentSlide;\n if (spec.rtl && spec.currentSlide === undefined) {\n currentSlide = slideCount - 1 - spec.initialSlide;\n }\n var lazyLoadedList = spec.lazyLoadedList || [];\n var slidesToLoad = getOnDemandLazySlides(_objectSpread(_objectSpread({}, spec), {}, {\n currentSlide: currentSlide,\n lazyLoadedList: lazyLoadedList\n }));\n lazyLoadedList = lazyLoadedList.concat(slidesToLoad);\n var state = {\n slideCount: slideCount,\n slideWidth: slideWidth,\n listWidth: listWidth,\n trackWidth: trackWidth,\n currentSlide: currentSlide,\n slideHeight: slideHeight,\n listHeight: listHeight,\n lazyLoadedList: lazyLoadedList\n };\n if (spec.autoplaying === null && spec.autoplay) {\n state[\"autoplaying\"] = \"playing\";\n }\n return state;\n};\nvar slideHandler = exports.slideHandler = function slideHandler(spec) {\n var waitForAnimate = spec.waitForAnimate,\n animating = spec.animating,\n fade = spec.fade,\n infinite = spec.infinite,\n index = spec.index,\n slideCount = spec.slideCount,\n lazyLoad = spec.lazyLoad,\n currentSlide = spec.currentSlide,\n centerMode = spec.centerMode,\n slidesToScroll = spec.slidesToScroll,\n slidesToShow = spec.slidesToShow,\n useCSS = spec.useCSS;\n var lazyLoadedList = spec.lazyLoadedList;\n if (waitForAnimate && animating) return {};\n var animationSlide = index,\n finalSlide,\n animationLeft,\n finalLeft;\n var state = {},\n nextState = {};\n var targetSlide = infinite ? index : clamp(index, 0, slideCount - 1);\n if (fade) {\n if (!infinite && (index < 0 || index >= slideCount)) return {};\n if (index < 0) {\n animationSlide = index + slideCount;\n } else if (index >= slideCount) {\n animationSlide = index - slideCount;\n }\n if (lazyLoad && lazyLoadedList.indexOf(animationSlide) < 0) {\n lazyLoadedList = lazyLoadedList.concat(animationSlide);\n }\n state = {\n animating: true,\n currentSlide: animationSlide,\n lazyLoadedList: lazyLoadedList,\n targetSlide: animationSlide\n };\n nextState = {\n animating: false,\n targetSlide: animationSlide\n };\n } else {\n finalSlide = animationSlide;\n if (animationSlide < 0) {\n finalSlide = animationSlide + slideCount;\n if (!infinite) finalSlide = 0;else if (slideCount % slidesToScroll !== 0) finalSlide = slideCount - slideCount % slidesToScroll;\n } else if (!canGoNext(spec) && animationSlide > currentSlide) {\n animationSlide = finalSlide = currentSlide;\n } else if (centerMode && animationSlide >= slideCount) {\n animationSlide = infinite ? slideCount : slideCount - 1;\n finalSlide = infinite ? 0 : slideCount - 1;\n } else if (animationSlide >= slideCount) {\n finalSlide = animationSlide - slideCount;\n if (!infinite) finalSlide = slideCount - slidesToShow;else if (slideCount % slidesToScroll !== 0) finalSlide = 0;\n }\n if (!infinite && animationSlide + slidesToShow >= slideCount) {\n finalSlide = slideCount - slidesToShow;\n }\n animationLeft = getTrackLeft(_objectSpread(_objectSpread({}, spec), {}, {\n slideIndex: animationSlide\n }));\n finalLeft = getTrackLeft(_objectSpread(_objectSpread({}, spec), {}, {\n slideIndex: finalSlide\n }));\n if (!infinite) {\n if (animationLeft === finalLeft) animationSlide = finalSlide;\n animationLeft = finalLeft;\n }\n if (lazyLoad) {\n lazyLoadedList = lazyLoadedList.concat(getOnDemandLazySlides(_objectSpread(_objectSpread({}, spec), {}, {\n currentSlide: animationSlide\n })));\n }\n if (!useCSS) {\n state = {\n currentSlide: finalSlide,\n trackStyle: getTrackCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: finalLeft\n })),\n lazyLoadedList: lazyLoadedList,\n targetSlide: targetSlide\n };\n } else {\n state = {\n animating: true,\n currentSlide: finalSlide,\n trackStyle: getTrackAnimateCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: animationLeft\n })),\n lazyLoadedList: lazyLoadedList,\n targetSlide: targetSlide\n };\n nextState = {\n animating: false,\n currentSlide: finalSlide,\n trackStyle: getTrackCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: finalLeft\n })),\n swipeLeft: null,\n targetSlide: targetSlide\n };\n }\n }\n return {\n state: state,\n nextState: nextState\n };\n};\nvar changeSlide = exports.changeSlide = function changeSlide(spec, options) {\n var indexOffset, previousInt, slideOffset, unevenOffset, targetSlide;\n var slidesToScroll = spec.slidesToScroll,\n slidesToShow = spec.slidesToShow,\n slideCount = spec.slideCount,\n currentSlide = spec.currentSlide,\n previousTargetSlide = spec.targetSlide,\n lazyLoad = spec.lazyLoad,\n infinite = spec.infinite;\n unevenOffset = slideCount % slidesToScroll !== 0;\n indexOffset = unevenOffset ? 0 : (slideCount - currentSlide) % slidesToScroll;\n if (options.message === \"previous\") {\n slideOffset = indexOffset === 0 ? slidesToScroll : slidesToShow - indexOffset;\n targetSlide = currentSlide - slideOffset;\n if (lazyLoad && !infinite) {\n previousInt = currentSlide - slideOffset;\n targetSlide = previousInt === -1 ? slideCount - 1 : previousInt;\n }\n if (!infinite) {\n targetSlide = previousTargetSlide - slidesToScroll;\n }\n } else if (options.message === \"next\") {\n slideOffset = indexOffset === 0 ? slidesToScroll : indexOffset;\n targetSlide = currentSlide + slideOffset;\n if (lazyLoad && !infinite) {\n targetSlide = (currentSlide + slidesToScroll) % slideCount + indexOffset;\n }\n if (!infinite) {\n targetSlide = previousTargetSlide + slidesToScroll;\n }\n } else if (options.message === \"dots\") {\n // Click on dots\n targetSlide = options.index * options.slidesToScroll;\n } else if (options.message === \"children\") {\n // Click on the slides\n targetSlide = options.index;\n if (infinite) {\n var direction = siblingDirection(_objectSpread(_objectSpread({}, spec), {}, {\n targetSlide: targetSlide\n }));\n if (targetSlide > options.currentSlide && direction === \"left\") {\n targetSlide = targetSlide - slideCount;\n } else if (targetSlide < options.currentSlide && direction === \"right\") {\n targetSlide = targetSlide + slideCount;\n }\n }\n } else if (options.message === \"index\") {\n targetSlide = Number(options.index);\n }\n return targetSlide;\n};\nvar keyHandler = exports.keyHandler = function keyHandler(e, accessibility, rtl) {\n if (e.target.tagName.match(\"TEXTAREA|INPUT|SELECT\") || !accessibility) return \"\";\n if (e.keyCode === 37) return rtl ? \"next\" : \"previous\";\n if (e.keyCode === 39) return rtl ? \"previous\" : \"next\";\n return \"\";\n};\nvar swipeStart = exports.swipeStart = function swipeStart(e, swipe, draggable) {\n e.target.tagName === \"IMG\" && safePreventDefault(e);\n if (!swipe || !draggable && e.type.indexOf(\"mouse\") !== -1) return \"\";\n return {\n dragging: true,\n touchObject: {\n startX: e.touches ? e.touches[0].pageX : e.clientX,\n startY: e.touches ? e.touches[0].pageY : e.clientY,\n curX: e.touches ? e.touches[0].pageX : e.clientX,\n curY: e.touches ? e.touches[0].pageY : e.clientY\n }\n };\n};\nvar swipeMove = exports.swipeMove = function swipeMove(e, spec) {\n // spec also contains, trackRef and slideIndex\n var scrolling = spec.scrolling,\n animating = spec.animating,\n vertical = spec.vertical,\n swipeToSlide = spec.swipeToSlide,\n verticalSwiping = spec.verticalSwiping,\n rtl = spec.rtl,\n currentSlide = spec.currentSlide,\n edgeFriction = spec.edgeFriction,\n edgeDragged = spec.edgeDragged,\n onEdge = spec.onEdge,\n swiped = spec.swiped,\n swiping = spec.swiping,\n slideCount = spec.slideCount,\n slidesToScroll = spec.slidesToScroll,\n infinite = spec.infinite,\n touchObject = spec.touchObject,\n swipeEvent = spec.swipeEvent,\n listHeight = spec.listHeight,\n listWidth = spec.listWidth;\n if (scrolling) return;\n if (animating) return safePreventDefault(e);\n if (vertical && swipeToSlide && verticalSwiping) safePreventDefault(e);\n var swipeLeft,\n state = {};\n var curLeft = getTrackLeft(spec);\n touchObject.curX = e.touches ? e.touches[0].pageX : e.clientX;\n touchObject.curY = e.touches ? e.touches[0].pageY : e.clientY;\n touchObject.swipeLength = Math.round(Math.sqrt(Math.pow(touchObject.curX - touchObject.startX, 2)));\n var verticalSwipeLength = Math.round(Math.sqrt(Math.pow(touchObject.curY - touchObject.startY, 2)));\n if (!verticalSwiping && !swiping && verticalSwipeLength > 10) {\n return {\n scrolling: true\n };\n }\n if (verticalSwiping) touchObject.swipeLength = verticalSwipeLength;\n var positionOffset = (!rtl ? 1 : -1) * (touchObject.curX > touchObject.startX ? 1 : -1);\n if (verticalSwiping) positionOffset = touchObject.curY > touchObject.startY ? 1 : -1;\n var dotCount = Math.ceil(slideCount / slidesToScroll);\n var swipeDirection = getSwipeDirection(spec.touchObject, verticalSwiping);\n var touchSwipeLength = touchObject.swipeLength;\n if (!infinite) {\n if (currentSlide === 0 && (swipeDirection === \"right\" || swipeDirection === \"down\") || currentSlide + 1 >= dotCount && (swipeDirection === \"left\" || swipeDirection === \"up\") || !canGoNext(spec) && (swipeDirection === \"left\" || swipeDirection === \"up\")) {\n touchSwipeLength = touchObject.swipeLength * edgeFriction;\n if (edgeDragged === false && onEdge) {\n onEdge(swipeDirection);\n state[\"edgeDragged\"] = true;\n }\n }\n }\n if (!swiped && swipeEvent) {\n swipeEvent(swipeDirection);\n state[\"swiped\"] = true;\n }\n if (!vertical) {\n if (!rtl) {\n swipeLeft = curLeft + touchSwipeLength * positionOffset;\n } else {\n swipeLeft = curLeft - touchSwipeLength * positionOffset;\n }\n } else {\n swipeLeft = curLeft + touchSwipeLength * (listHeight / listWidth) * positionOffset;\n }\n if (verticalSwiping) {\n swipeLeft = curLeft + touchSwipeLength * positionOffset;\n }\n state = _objectSpread(_objectSpread({}, state), {}, {\n touchObject: touchObject,\n swipeLeft: swipeLeft,\n trackStyle: getTrackCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: swipeLeft\n }))\n });\n if (Math.abs(touchObject.curX - touchObject.startX) < Math.abs(touchObject.curY - touchObject.startY) * 0.8) {\n return state;\n }\n if (touchObject.swipeLength > 10) {\n state[\"swiping\"] = true;\n safePreventDefault(e);\n }\n return state;\n};\nvar swipeEnd = exports.swipeEnd = function swipeEnd(e, spec) {\n var dragging = spec.dragging,\n swipe = spec.swipe,\n touchObject = spec.touchObject,\n listWidth = spec.listWidth,\n touchThreshold = spec.touchThreshold,\n verticalSwiping = spec.verticalSwiping,\n listHeight = spec.listHeight,\n swipeToSlide = spec.swipeToSlide,\n scrolling = spec.scrolling,\n onSwipe = spec.onSwipe,\n targetSlide = spec.targetSlide,\n currentSlide = spec.currentSlide,\n infinite = spec.infinite;\n if (!dragging) {\n if (swipe) safePreventDefault(e);\n return {};\n }\n var minSwipe = verticalSwiping ? listHeight / touchThreshold : listWidth / touchThreshold;\n var swipeDirection = getSwipeDirection(touchObject, verticalSwiping);\n // reset the state of touch related state variables.\n var state = {\n dragging: false,\n edgeDragged: false,\n scrolling: false,\n swiping: false,\n swiped: false,\n swipeLeft: null,\n touchObject: {}\n };\n if (scrolling) {\n return state;\n }\n if (!touchObject.swipeLength) {\n return state;\n }\n if (touchObject.swipeLength > minSwipe) {\n safePreventDefault(e);\n if (onSwipe) {\n onSwipe(swipeDirection);\n }\n var slideCount, newSlide;\n var activeSlide = infinite ? currentSlide : targetSlide;\n switch (swipeDirection) {\n case \"left\":\n case \"up\":\n newSlide = activeSlide + getSlideCount(spec);\n slideCount = swipeToSlide ? checkNavigable(spec, newSlide) : newSlide;\n state[\"currentDirection\"] = 0;\n break;\n case \"right\":\n case \"down\":\n newSlide = activeSlide - getSlideCount(spec);\n slideCount = swipeToSlide ? checkNavigable(spec, newSlide) : newSlide;\n state[\"currentDirection\"] = 1;\n break;\n default:\n slideCount = activeSlide;\n }\n state[\"triggerSlideHandler\"] = slideCount;\n } else {\n // Adjust the track back to it's original position.\n var currentLeft = getTrackLeft(spec);\n state[\"trackStyle\"] = getTrackAnimateCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: currentLeft\n }));\n }\n return state;\n};\nvar getNavigableIndexes = exports.getNavigableIndexes = function getNavigableIndexes(spec) {\n var max = spec.infinite ? spec.slideCount * 2 : spec.slideCount;\n var breakpoint = spec.infinite ? spec.slidesToShow * -1 : 0;\n var counter = spec.infinite ? spec.slidesToShow * -1 : 0;\n var indexes = [];\n while (breakpoint < max) {\n indexes.push(breakpoint);\n breakpoint = counter + spec.slidesToScroll;\n counter += Math.min(spec.slidesToScroll, spec.slidesToShow);\n }\n return indexes;\n};\nvar checkNavigable = exports.checkNavigable = function checkNavigable(spec, index) {\n var navigables = getNavigableIndexes(spec);\n var prevNavigable = 0;\n if (index > navigables[navigables.length - 1]) {\n index = navigables[navigables.length - 1];\n } else {\n for (var n in navigables) {\n if (index < navigables[n]) {\n index = prevNavigable;\n break;\n }\n prevNavigable = navigables[n];\n }\n }\n return index;\n};\nvar getSlideCount = exports.getSlideCount = function getSlideCount(spec) {\n var centerOffset = spec.centerMode ? spec.slideWidth * Math.floor(spec.slidesToShow / 2) : 0;\n if (spec.swipeToSlide) {\n var swipedSlide;\n var slickList = spec.listRef;\n var slides = slickList.querySelectorAll && slickList.querySelectorAll(\".slick-slide\") || [];\n Array.from(slides).every(function (slide) {\n if (!spec.vertical) {\n if (slide.offsetLeft - centerOffset + getWidth(slide) / 2 > spec.swipeLeft * -1) {\n swipedSlide = slide;\n return false;\n }\n } else {\n if (slide.offsetTop + getHeight(slide) / 2 > spec.swipeLeft * -1) {\n swipedSlide = slide;\n return false;\n }\n }\n return true;\n });\n if (!swipedSlide) {\n return 0;\n }\n var currentIndex = spec.rtl === true ? spec.slideCount - spec.currentSlide : spec.currentSlide;\n var slidesTraversed = Math.abs(swipedSlide.dataset.index - currentIndex) || 1;\n return slidesTraversed;\n } else {\n return spec.slidesToScroll;\n }\n};\nvar checkSpecKeys = exports.checkSpecKeys = function checkSpecKeys(spec, keysArray) {\n return keysArray.reduce(function (value, key) {\n return value && spec.hasOwnProperty(key);\n }, true) ? null : console.error(\"Keys Missing:\", spec);\n};\nvar getTrackCSS = exports.getTrackCSS = function getTrackCSS(spec) {\n checkSpecKeys(spec, [\"left\", \"variableWidth\", \"slideCount\", \"slidesToShow\", \"slideWidth\"]);\n var trackWidth, trackHeight;\n var trackChildren = spec.slideCount + 2 * spec.slidesToShow;\n if (!spec.vertical) {\n trackWidth = getTotalSlides(spec) * spec.slideWidth;\n } else {\n trackHeight = trackChildren * spec.slideHeight;\n }\n var style = {\n opacity: 1,\n transition: \"\",\n WebkitTransition: \"\"\n };\n if (spec.useTransform) {\n var WebkitTransform = !spec.vertical ? \"translate3d(\" + spec.left + \"px, 0px, 0px)\" : \"translate3d(0px, \" + spec.left + \"px, 0px)\";\n var transform = !spec.vertical ? \"translate3d(\" + spec.left + \"px, 0px, 0px)\" : \"translate3d(0px, \" + spec.left + \"px, 0px)\";\n var msTransform = !spec.vertical ? \"translateX(\" + spec.left + \"px)\" : \"translateY(\" + spec.left + \"px)\";\n style = _objectSpread(_objectSpread({}, style), {}, {\n WebkitTransform: WebkitTransform,\n transform: transform,\n msTransform: msTransform\n });\n } else {\n if (spec.vertical) {\n style[\"top\"] = spec.left;\n } else {\n style[\"left\"] = spec.left;\n }\n }\n if (spec.fade) style = {\n opacity: 1\n };\n if (trackWidth) style.width = trackWidth;\n if (trackHeight) style.height = trackHeight;\n\n // Fallback for IE8\n if (window && !window.addEventListener && window.attachEvent) {\n if (!spec.vertical) {\n style.marginLeft = spec.left + \"px\";\n } else {\n style.marginTop = spec.left + \"px\";\n }\n }\n return style;\n};\nvar getTrackAnimateCSS = exports.getTrackAnimateCSS = function getTrackAnimateCSS(spec) {\n checkSpecKeys(spec, [\"left\", \"variableWidth\", \"slideCount\", \"slidesToShow\", \"slideWidth\", \"speed\", \"cssEase\"]);\n var style = getTrackCSS(spec);\n // useCSS is true by default so it can be undefined\n if (spec.useTransform) {\n style.WebkitTransition = \"-webkit-transform \" + spec.speed + \"ms \" + spec.cssEase;\n style.transition = \"transform \" + spec.speed + \"ms \" + spec.cssEase;\n } else {\n if (spec.vertical) {\n style.transition = \"top \" + spec.speed + \"ms \" + spec.cssEase;\n } else {\n style.transition = \"left \" + spec.speed + \"ms \" + spec.cssEase;\n }\n }\n return style;\n};\nvar getTrackLeft = exports.getTrackLeft = function getTrackLeft(spec) {\n if (spec.unslick) {\n return 0;\n }\n checkSpecKeys(spec, [\"slideIndex\", \"trackRef\", \"infinite\", \"centerMode\", \"slideCount\", \"slidesToShow\", \"slidesToScroll\", \"slideWidth\", \"listWidth\", \"variableWidth\", \"slideHeight\"]);\n var slideIndex = spec.slideIndex,\n trackRef = spec.trackRef,\n infinite = spec.infinite,\n centerMode = spec.centerMode,\n slideCount = spec.slideCount,\n slidesToShow = spec.slidesToShow,\n slidesToScroll = spec.slidesToScroll,\n slideWidth = spec.slideWidth,\n listWidth = spec.listWidth,\n variableWidth = spec.variableWidth,\n slideHeight = spec.slideHeight,\n fade = spec.fade,\n vertical = spec.vertical;\n var slideOffset = 0;\n var targetLeft;\n var targetSlide;\n var verticalOffset = 0;\n if (fade || spec.slideCount === 1) {\n return 0;\n }\n var slidesToOffset = 0;\n if (infinite) {\n slidesToOffset = -getPreClones(spec); // bring active slide to the beginning of visual area\n // if next scroll doesn't have enough children, just reach till the end of original slides instead of shifting slidesToScroll children\n if (slideCount % slidesToScroll !== 0 && slideIndex + slidesToScroll > slideCount) {\n slidesToOffset = -(slideIndex > slideCount ? slidesToShow - (slideIndex - slideCount) : slideCount % slidesToScroll);\n }\n // shift current slide to center of the frame\n if (centerMode) {\n slidesToOffset += parseInt(slidesToShow / 2);\n }\n } else {\n if (slideCount % slidesToScroll !== 0 && slideIndex + slidesToScroll > slideCount) {\n slidesToOffset = slidesToShow - slideCount % slidesToScroll;\n }\n if (centerMode) {\n slidesToOffset = parseInt(slidesToShow / 2);\n }\n }\n slideOffset = slidesToOffset * slideWidth;\n verticalOffset = slidesToOffset * slideHeight;\n if (!vertical) {\n targetLeft = slideIndex * slideWidth * -1 + slideOffset;\n } else {\n targetLeft = slideIndex * slideHeight * -1 + verticalOffset;\n }\n if (variableWidth === true) {\n var targetSlideIndex;\n var trackElem = trackRef && trackRef.node;\n targetSlideIndex = slideIndex + getPreClones(spec);\n targetSlide = trackElem && trackElem.childNodes[targetSlideIndex];\n targetLeft = targetSlide ? targetSlide.offsetLeft * -1 : 0;\n if (centerMode === true) {\n targetSlideIndex = infinite ? slideIndex + getPreClones(spec) : slideIndex;\n targetSlide = trackElem && trackElem.children[targetSlideIndex];\n targetLeft = 0;\n for (var slide = 0; slide < targetSlideIndex; slide++) {\n targetLeft -= trackElem && trackElem.children[slide] && trackElem.children[slide].offsetWidth;\n }\n targetLeft -= parseInt(spec.centerPadding);\n targetLeft += targetSlide && (listWidth - targetSlide.offsetWidth) / 2;\n }\n }\n return targetLeft;\n};\nvar getPreClones = exports.getPreClones = function getPreClones(spec) {\n if (spec.unslick || !spec.infinite) {\n return 0;\n }\n if (spec.variableWidth) {\n return spec.slideCount;\n }\n return spec.slidesToShow + (spec.centerMode ? 1 : 0);\n};\nvar getPostClones = exports.getPostClones = function getPostClones(spec) {\n if (spec.unslick || !spec.infinite) {\n return 0;\n }\n return spec.slideCount;\n};\nvar getTotalSlides = exports.getTotalSlides = function getTotalSlides(spec) {\n return spec.slideCount === 1 ? 1 : getPreClones(spec) + spec.slideCount + getPostClones(spec);\n};\nvar siblingDirection = exports.siblingDirection = function siblingDirection(spec) {\n if (spec.targetSlide > spec.currentSlide) {\n if (spec.targetSlide > spec.currentSlide + slidesOnRight(spec)) {\n return \"left\";\n }\n return \"right\";\n } else {\n if (spec.targetSlide < spec.currentSlide - slidesOnLeft(spec)) {\n return \"right\";\n }\n return \"left\";\n }\n};\nvar slidesOnRight = exports.slidesOnRight = function slidesOnRight(_ref) {\n var slidesToShow = _ref.slidesToShow,\n centerMode = _ref.centerMode,\n rtl = _ref.rtl,\n centerPadding = _ref.centerPadding;\n // returns no of slides on the right of active slide\n if (centerMode) {\n var right = (slidesToShow - 1) / 2 + 1;\n if (parseInt(centerPadding) > 0) right += 1;\n if (rtl && slidesToShow % 2 === 0) right += 1;\n return right;\n }\n if (rtl) {\n return 0;\n }\n return slidesToShow - 1;\n};\nvar slidesOnLeft = exports.slidesOnLeft = function slidesOnLeft(_ref2) {\n var slidesToShow = _ref2.slidesToShow,\n centerMode = _ref2.centerMode,\n rtl = _ref2.rtl,\n centerPadding = _ref2.centerPadding;\n // returns no of slides on the left of active slide\n if (centerMode) {\n var left = (slidesToShow - 1) / 2 + 1;\n if (parseInt(centerPadding) > 0) left += 1;\n if (!rtl && slidesToShow % 2 === 0) left += 1;\n return left;\n }\n if (rtl) {\n return slidesToShow - 1;\n }\n return 0;\n};\nvar canUseDOM = exports.canUseDOM = function canUseDOM() {\n return !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\n};\nvar validSettings = exports.validSettings = Object.keys(_defaultProps[\"default\"]);\nfunction filterSettings(settings) {\n return validSettings.reduce(function (acc, settingName) {\n if (settings.hasOwnProperty(settingName)) {\n acc[settingName] = settings[settingName];\n }\n return acc;\n }, {});\n}","/**\n * @license React\n * react-jsx-runtime.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'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","/**\n * @license React\n * react.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'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1} arr\r\n * @param {*} key\r\n * @returns {number}\r\n */\r\n function getIndex(arr, key) {\r\n var result = -1;\r\n arr.some(function (entry, index) {\r\n if (entry[0] === key) {\r\n result = index;\r\n return true;\r\n }\r\n return false;\r\n });\r\n return result;\r\n }\r\n return /** @class */ (function () {\r\n function class_1() {\r\n this.__entries__ = [];\r\n }\r\n Object.defineProperty(class_1.prototype, \"size\", {\r\n /**\r\n * @returns {boolean}\r\n */\r\n get: function () {\r\n return this.__entries__.length;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @param {*} key\r\n * @returns {*}\r\n */\r\n class_1.prototype.get = function (key) {\r\n var index = getIndex(this.__entries__, key);\r\n var entry = this.__entries__[index];\r\n return entry && entry[1];\r\n };\r\n /**\r\n * @param {*} key\r\n * @param {*} value\r\n * @returns {void}\r\n */\r\n class_1.prototype.set = function (key, value) {\r\n var index = getIndex(this.__entries__, key);\r\n if (~index) {\r\n this.__entries__[index][1] = value;\r\n }\r\n else {\r\n this.__entries__.push([key, value]);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.delete = function (key) {\r\n var entries = this.__entries__;\r\n var index = getIndex(entries, key);\r\n if (~index) {\r\n entries.splice(index, 1);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.has = function (key) {\r\n return !!~getIndex(this.__entries__, key);\r\n };\r\n /**\r\n * @returns {void}\r\n */\r\n class_1.prototype.clear = function () {\r\n this.__entries__.splice(0);\r\n };\r\n /**\r\n * @param {Function} callback\r\n * @param {*} [ctx=null]\r\n * @returns {void}\r\n */\r\n class_1.prototype.forEach = function (callback, ctx) {\r\n if (ctx === void 0) { ctx = null; }\r\n for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {\r\n var entry = _a[_i];\r\n callback.call(ctx, entry[1], entry[0]);\r\n }\r\n };\r\n return class_1;\r\n }());\r\n})();\n\n/**\r\n * Detects whether window and document objects are available in current environment.\r\n */\r\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;\n\n// Returns global object of a current environment.\r\nvar global$1 = (function () {\r\n if (typeof global !== 'undefined' && global.Math === Math) {\r\n return global;\r\n }\r\n if (typeof self !== 'undefined' && self.Math === Math) {\r\n return self;\r\n }\r\n if (typeof window !== 'undefined' && window.Math === Math) {\r\n return window;\r\n }\r\n // eslint-disable-next-line no-new-func\r\n return Function('return this')();\r\n})();\n\n/**\r\n * A shim for the requestAnimationFrame which falls back to the setTimeout if\r\n * first one is not supported.\r\n *\r\n * @returns {number} Requests' identifier.\r\n */\r\nvar requestAnimationFrame$1 = (function () {\r\n if (typeof requestAnimationFrame === 'function') {\r\n // It's required to use a bounded function because IE sometimes throws\r\n // an \"Invalid calling object\" error if rAF is invoked without the global\r\n // object on the left hand side.\r\n return requestAnimationFrame.bind(global$1);\r\n }\r\n return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); };\r\n})();\n\n// Defines minimum timeout before adding a trailing call.\r\nvar trailingTimeout = 2;\r\n/**\r\n * Creates a wrapper function which ensures that provided callback will be\r\n * invoked only once during the specified delay period.\r\n *\r\n * @param {Function} callback - Function to be invoked after the delay period.\r\n * @param {number} delay - Delay after which to invoke callback.\r\n * @returns {Function}\r\n */\r\nfunction throttle (callback, delay) {\r\n var leadingCall = false, trailingCall = false, lastCallTime = 0;\r\n /**\r\n * Invokes the original callback function and schedules new invocation if\r\n * the \"proxy\" was called during current request.\r\n *\r\n * @returns {void}\r\n */\r\n function resolvePending() {\r\n if (leadingCall) {\r\n leadingCall = false;\r\n callback();\r\n }\r\n if (trailingCall) {\r\n proxy();\r\n }\r\n }\r\n /**\r\n * Callback invoked after the specified delay. It will further postpone\r\n * invocation of the original function delegating it to the\r\n * requestAnimationFrame.\r\n *\r\n * @returns {void}\r\n */\r\n function timeoutCallback() {\r\n requestAnimationFrame$1(resolvePending);\r\n }\r\n /**\r\n * Schedules invocation of the original function.\r\n *\r\n * @returns {void}\r\n */\r\n function proxy() {\r\n var timeStamp = Date.now();\r\n if (leadingCall) {\r\n // Reject immediately following calls.\r\n if (timeStamp - lastCallTime < trailingTimeout) {\r\n return;\r\n }\r\n // Schedule new call to be in invoked when the pending one is resolved.\r\n // This is important for \"transitions\" which never actually start\r\n // immediately so there is a chance that we might miss one if change\r\n // happens amids the pending invocation.\r\n trailingCall = true;\r\n }\r\n else {\r\n leadingCall = true;\r\n trailingCall = false;\r\n setTimeout(timeoutCallback, delay);\r\n }\r\n lastCallTime = timeStamp;\r\n }\r\n return proxy;\r\n}\n\n// Minimum delay before invoking the update of observers.\r\nvar REFRESH_DELAY = 20;\r\n// A list of substrings of CSS properties used to find transition events that\r\n// might affect dimensions of observed elements.\r\nvar transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];\r\n// Check if MutationObserver is available.\r\nvar mutationObserverSupported = typeof MutationObserver !== 'undefined';\r\n/**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\r\nvar ResizeObserverController = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserverController.\r\n *\r\n * @private\r\n */\r\n function ResizeObserverController() {\r\n /**\r\n * Indicates whether DOM listeners have been added.\r\n *\r\n * @private {boolean}\r\n */\r\n this.connected_ = false;\r\n /**\r\n * Tells that controller has subscribed for Mutation Events.\r\n *\r\n * @private {boolean}\r\n */\r\n this.mutationEventsAdded_ = false;\r\n /**\r\n * Keeps reference to the instance of MutationObserver.\r\n *\r\n * @private {MutationObserver}\r\n */\r\n this.mutationsObserver_ = null;\r\n /**\r\n * A list of connected observers.\r\n *\r\n * @private {Array}\r\n */\r\n this.observers_ = [];\r\n this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);\r\n this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);\r\n }\r\n /**\r\n * Adds observer to observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be added.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.addObserver = function (observer) {\r\n if (!~this.observers_.indexOf(observer)) {\r\n this.observers_.push(observer);\r\n }\r\n // Add listeners if they haven't been added yet.\r\n if (!this.connected_) {\r\n this.connect_();\r\n }\r\n };\r\n /**\r\n * Removes observer from observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be removed.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.removeObserver = function (observer) {\r\n var observers = this.observers_;\r\n var index = observers.indexOf(observer);\r\n // Remove observer if it's present in registry.\r\n if (~index) {\r\n observers.splice(index, 1);\r\n }\r\n // Remove listeners if controller has no connected observers.\r\n if (!observers.length && this.connected_) {\r\n this.disconnect_();\r\n }\r\n };\r\n /**\r\n * Invokes the update of observers. It will continue running updates insofar\r\n * it detects changes.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.refresh = function () {\r\n var changesDetected = this.updateObservers_();\r\n // Continue running updates if changes have been detected as there might\r\n // be future ones caused by CSS transitions.\r\n if (changesDetected) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Updates every observer from observers list and notifies them of queued\r\n * entries.\r\n *\r\n * @private\r\n * @returns {boolean} Returns \"true\" if any observer has detected changes in\r\n * dimensions of it's elements.\r\n */\r\n ResizeObserverController.prototype.updateObservers_ = function () {\r\n // Collect observers that have active observations.\r\n var activeObservers = this.observers_.filter(function (observer) {\r\n return observer.gatherActive(), observer.hasActive();\r\n });\r\n // Deliver notifications in a separate cycle in order to avoid any\r\n // collisions between observers, e.g. when multiple instances of\r\n // ResizeObserver are tracking the same element and the callback of one\r\n // of them changes content dimensions of the observed target. Sometimes\r\n // this may result in notifications being blocked for the rest of observers.\r\n activeObservers.forEach(function (observer) { return observer.broadcastActive(); });\r\n return activeObservers.length > 0;\r\n };\r\n /**\r\n * Initializes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.connect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already added.\r\n if (!isBrowser || this.connected_) {\r\n return;\r\n }\r\n // Subscription to the \"Transitionend\" event is used as a workaround for\r\n // delayed transitions. This way it's possible to capture at least the\r\n // final state of an element.\r\n document.addEventListener('transitionend', this.onTransitionEnd_);\r\n window.addEventListener('resize', this.refresh);\r\n if (mutationObserverSupported) {\r\n this.mutationsObserver_ = new MutationObserver(this.refresh);\r\n this.mutationsObserver_.observe(document, {\r\n attributes: true,\r\n childList: true,\r\n characterData: true,\r\n subtree: true\r\n });\r\n }\r\n else {\r\n document.addEventListener('DOMSubtreeModified', this.refresh);\r\n this.mutationEventsAdded_ = true;\r\n }\r\n this.connected_ = true;\r\n };\r\n /**\r\n * Removes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.disconnect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already removed.\r\n if (!isBrowser || !this.connected_) {\r\n return;\r\n }\r\n document.removeEventListener('transitionend', this.onTransitionEnd_);\r\n window.removeEventListener('resize', this.refresh);\r\n if (this.mutationsObserver_) {\r\n this.mutationsObserver_.disconnect();\r\n }\r\n if (this.mutationEventsAdded_) {\r\n document.removeEventListener('DOMSubtreeModified', this.refresh);\r\n }\r\n this.mutationsObserver_ = null;\r\n this.mutationEventsAdded_ = false;\r\n this.connected_ = false;\r\n };\r\n /**\r\n * \"Transitionend\" event handler.\r\n *\r\n * @private\r\n * @param {TransitionEvent} event\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {\r\n var _b = _a.propertyName, propertyName = _b === void 0 ? '' : _b;\r\n // Detect whether transition may affect dimensions of an element.\r\n var isReflowProperty = transitionKeys.some(function (key) {\r\n return !!~propertyName.indexOf(key);\r\n });\r\n if (isReflowProperty) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Returns instance of the ResizeObserverController.\r\n *\r\n * @returns {ResizeObserverController}\r\n */\r\n ResizeObserverController.getInstance = function () {\r\n if (!this.instance_) {\r\n this.instance_ = new ResizeObserverController();\r\n }\r\n return this.instance_;\r\n };\r\n /**\r\n * Holds reference to the controller's instance.\r\n *\r\n * @private {ResizeObserverController}\r\n */\r\n ResizeObserverController.instance_ = null;\r\n return ResizeObserverController;\r\n}());\n\n/**\r\n * Defines non-writable/enumerable properties of the provided target object.\r\n *\r\n * @param {Object} target - Object for which to define properties.\r\n * @param {Object} props - Properties to be defined.\r\n * @returns {Object} Target object.\r\n */\r\nvar defineConfigurable = (function (target, props) {\r\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n Object.defineProperty(target, key, {\r\n value: props[key],\r\n enumerable: false,\r\n writable: false,\r\n configurable: true\r\n });\r\n }\r\n return target;\r\n});\n\n/**\r\n * Returns the global object associated with provided element.\r\n *\r\n * @param {Object} target\r\n * @returns {Object}\r\n */\r\nvar getWindowOf = (function (target) {\r\n // Assume that the element is an instance of Node, which means that it\r\n // has the \"ownerDocument\" property from which we can retrieve a\r\n // corresponding global object.\r\n var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;\r\n // Return the local global object if it's not possible extract one from\r\n // provided element.\r\n return ownerGlobal || global$1;\r\n});\n\n// Placeholder of an empty content rectangle.\r\nvar emptyRect = createRectInit(0, 0, 0, 0);\r\n/**\r\n * Converts provided string to a number.\r\n *\r\n * @param {number|string} value\r\n * @returns {number}\r\n */\r\nfunction toFloat(value) {\r\n return parseFloat(value) || 0;\r\n}\r\n/**\r\n * Extracts borders size from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @param {...string} positions - Borders positions (top, right, ...)\r\n * @returns {number}\r\n */\r\nfunction getBordersSize(styles) {\r\n var positions = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n positions[_i - 1] = arguments[_i];\r\n }\r\n return positions.reduce(function (size, position) {\r\n var value = styles['border-' + position + '-width'];\r\n return size + toFloat(value);\r\n }, 0);\r\n}\r\n/**\r\n * Extracts paddings sizes from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @returns {Object} Paddings box.\r\n */\r\nfunction getPaddings(styles) {\r\n var positions = ['top', 'right', 'bottom', 'left'];\r\n var paddings = {};\r\n for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {\r\n var position = positions_1[_i];\r\n var value = styles['padding-' + position];\r\n paddings[position] = toFloat(value);\r\n }\r\n return paddings;\r\n}\r\n/**\r\n * Calculates content rectangle of provided SVG element.\r\n *\r\n * @param {SVGGraphicsElement} target - Element content rectangle of which needs\r\n * to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getSVGContentRect(target) {\r\n var bbox = target.getBBox();\r\n return createRectInit(0, 0, bbox.width, bbox.height);\r\n}\r\n/**\r\n * Calculates content rectangle of provided HTMLElement.\r\n *\r\n * @param {HTMLElement} target - Element for which to calculate the content rectangle.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getHTMLElementContentRect(target) {\r\n // Client width & height properties can't be\r\n // used exclusively as they provide rounded values.\r\n var clientWidth = target.clientWidth, clientHeight = target.clientHeight;\r\n // By this condition we can catch all non-replaced inline, hidden and\r\n // detached elements. Though elements with width & height properties less\r\n // than 0.5 will be discarded as well.\r\n //\r\n // Without it we would need to implement separate methods for each of\r\n // those cases and it's not possible to perform a precise and performance\r\n // effective test for hidden elements. E.g. even jQuery's ':visible' filter\r\n // gives wrong results for elements with width & height less than 0.5.\r\n if (!clientWidth && !clientHeight) {\r\n return emptyRect;\r\n }\r\n var styles = getWindowOf(target).getComputedStyle(target);\r\n var paddings = getPaddings(styles);\r\n var horizPad = paddings.left + paddings.right;\r\n var vertPad = paddings.top + paddings.bottom;\r\n // Computed styles of width & height are being used because they are the\r\n // only dimensions available to JS that contain non-rounded values. It could\r\n // be possible to utilize the getBoundingClientRect if only it's data wasn't\r\n // affected by CSS transformations let alone paddings, borders and scroll bars.\r\n var width = toFloat(styles.width), height = toFloat(styles.height);\r\n // Width & height include paddings and borders when the 'border-box' box\r\n // model is applied (except for IE).\r\n if (styles.boxSizing === 'border-box') {\r\n // Following conditions are required to handle Internet Explorer which\r\n // doesn't include paddings and borders to computed CSS dimensions.\r\n //\r\n // We can say that if CSS dimensions + paddings are equal to the \"client\"\r\n // properties then it's either IE, and thus we don't need to subtract\r\n // anything, or an element merely doesn't have paddings/borders styles.\r\n if (Math.round(width + horizPad) !== clientWidth) {\r\n width -= getBordersSize(styles, 'left', 'right') + horizPad;\r\n }\r\n if (Math.round(height + vertPad) !== clientHeight) {\r\n height -= getBordersSize(styles, 'top', 'bottom') + vertPad;\r\n }\r\n }\r\n // Following steps can't be applied to the document's root element as its\r\n // client[Width/Height] properties represent viewport area of the window.\r\n // Besides, it's as well not necessary as the itself neither has\r\n // rendered scroll bars nor it can be clipped.\r\n if (!isDocumentElement(target)) {\r\n // In some browsers (only in Firefox, actually) CSS width & height\r\n // include scroll bars size which can be removed at this step as scroll\r\n // bars are the only difference between rounded dimensions + paddings\r\n // and \"client\" properties, though that is not always true in Chrome.\r\n var vertScrollbar = Math.round(width + horizPad) - clientWidth;\r\n var horizScrollbar = Math.round(height + vertPad) - clientHeight;\r\n // Chrome has a rather weird rounding of \"client\" properties.\r\n // E.g. for an element with content width of 314.2px it sometimes gives\r\n // the client width of 315px and for the width of 314.7px it may give\r\n // 314px. And it doesn't happen all the time. So just ignore this delta\r\n // as a non-relevant.\r\n if (Math.abs(vertScrollbar) !== 1) {\r\n width -= vertScrollbar;\r\n }\r\n if (Math.abs(horizScrollbar) !== 1) {\r\n height -= horizScrollbar;\r\n }\r\n }\r\n return createRectInit(paddings.left, paddings.top, width, height);\r\n}\r\n/**\r\n * Checks whether provided element is an instance of the SVGGraphicsElement.\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nvar isSVGGraphicsElement = (function () {\r\n // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement\r\n // interface.\r\n if (typeof SVGGraphicsElement !== 'undefined') {\r\n return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; };\r\n }\r\n // If it's so, then check that element is at least an instance of the\r\n // SVGElement and that it has the \"getBBox\" method.\r\n // eslint-disable-next-line no-extra-parens\r\n return function (target) { return (target instanceof getWindowOf(target).SVGElement &&\r\n typeof target.getBBox === 'function'); };\r\n})();\r\n/**\r\n * Checks whether provided element is a document element ().\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nfunction isDocumentElement(target) {\r\n return target === getWindowOf(target).document.documentElement;\r\n}\r\n/**\r\n * Calculates an appropriate content rectangle for provided html or svg element.\r\n *\r\n * @param {Element} target - Element content rectangle of which needs to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getContentRect(target) {\r\n if (!isBrowser) {\r\n return emptyRect;\r\n }\r\n if (isSVGGraphicsElement(target)) {\r\n return getSVGContentRect(target);\r\n }\r\n return getHTMLElementContentRect(target);\r\n}\r\n/**\r\n * Creates rectangle with an interface of the DOMRectReadOnly.\r\n * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly\r\n *\r\n * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.\r\n * @returns {DOMRectReadOnly}\r\n */\r\nfunction createReadOnlyRect(_a) {\r\n var x = _a.x, y = _a.y, width = _a.width, height = _a.height;\r\n // If DOMRectReadOnly is available use it as a prototype for the rectangle.\r\n var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;\r\n var rect = Object.create(Constr.prototype);\r\n // Rectangle's properties are not writable and non-enumerable.\r\n defineConfigurable(rect, {\r\n x: x, y: y, width: width, height: height,\r\n top: y,\r\n right: x + width,\r\n bottom: height + y,\r\n left: x\r\n });\r\n return rect;\r\n}\r\n/**\r\n * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.\r\n * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit\r\n *\r\n * @param {number} x - X coordinate.\r\n * @param {number} y - Y coordinate.\r\n * @param {number} width - Rectangle's width.\r\n * @param {number} height - Rectangle's height.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction createRectInit(x, y, width, height) {\r\n return { x: x, y: y, width: width, height: height };\r\n}\n\n/**\r\n * Class that is responsible for computations of the content rectangle of\r\n * provided DOM element and for keeping track of it's changes.\r\n */\r\nvar ResizeObservation = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObservation.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n */\r\n function ResizeObservation(target) {\r\n /**\r\n * Broadcasted width of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastWidth = 0;\r\n /**\r\n * Broadcasted height of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastHeight = 0;\r\n /**\r\n * Reference to the last observed content rectangle.\r\n *\r\n * @private {DOMRectInit}\r\n */\r\n this.contentRect_ = createRectInit(0, 0, 0, 0);\r\n this.target = target;\r\n }\r\n /**\r\n * Updates content rectangle and tells whether it's width or height properties\r\n * have changed since the last broadcast.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObservation.prototype.isActive = function () {\r\n var rect = getContentRect(this.target);\r\n this.contentRect_ = rect;\r\n return (rect.width !== this.broadcastWidth ||\r\n rect.height !== this.broadcastHeight);\r\n };\r\n /**\r\n * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data\r\n * from the corresponding properties of the last observed content rectangle.\r\n *\r\n * @returns {DOMRectInit} Last observed content rectangle.\r\n */\r\n ResizeObservation.prototype.broadcastRect = function () {\r\n var rect = this.contentRect_;\r\n this.broadcastWidth = rect.width;\r\n this.broadcastHeight = rect.height;\r\n return rect;\r\n };\r\n return ResizeObservation;\r\n}());\n\nvar ResizeObserverEntry = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObserverEntry.\r\n *\r\n * @param {Element} target - Element that is being observed.\r\n * @param {DOMRectInit} rectInit - Data of the element's content rectangle.\r\n */\r\n function ResizeObserverEntry(target, rectInit) {\r\n var contentRect = createReadOnlyRect(rectInit);\r\n // According to the specification following properties are not writable\r\n // and are also not enumerable in the native implementation.\r\n //\r\n // Property accessors are not being used as they'd require to define a\r\n // private WeakMap storage which may cause memory leaks in browsers that\r\n // don't support this type of collections.\r\n defineConfigurable(this, { target: target, contentRect: contentRect });\r\n }\r\n return ResizeObserverEntry;\r\n}());\n\nvar ResizeObserverSPI = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback function that is invoked\r\n * when one of the observed elements changes it's content dimensions.\r\n * @param {ResizeObserverController} controller - Controller instance which\r\n * is responsible for the updates of observer.\r\n * @param {ResizeObserver} callbackCtx - Reference to the public\r\n * ResizeObserver instance which will be passed to callback function.\r\n */\r\n function ResizeObserverSPI(callback, controller, callbackCtx) {\r\n /**\r\n * Collection of resize observations that have detected changes in dimensions\r\n * of elements.\r\n *\r\n * @private {Array}\r\n */\r\n this.activeObservations_ = [];\r\n /**\r\n * Registry of the ResizeObservation instances.\r\n *\r\n * @private {Map}\r\n */\r\n this.observations_ = new MapShim();\r\n if (typeof callback !== 'function') {\r\n throw new TypeError('The callback provided as parameter 1 is not a function.');\r\n }\r\n this.callback_ = callback;\r\n this.controller_ = controller;\r\n this.callbackCtx_ = callbackCtx;\r\n }\r\n /**\r\n * Starts observing provided element.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.observe = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is already being observed.\r\n if (observations.has(target)) {\r\n return;\r\n }\r\n observations.set(target, new ResizeObservation(target));\r\n this.controller_.addObserver(this);\r\n // Force the update of observations.\r\n this.controller_.refresh();\r\n };\r\n /**\r\n * Stops observing provided element.\r\n *\r\n * @param {Element} target - Element to stop observing.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.unobserve = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is not being observed.\r\n if (!observations.has(target)) {\r\n return;\r\n }\r\n observations.delete(target);\r\n if (!observations.size) {\r\n this.controller_.removeObserver(this);\r\n }\r\n };\r\n /**\r\n * Stops observing all elements.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.disconnect = function () {\r\n this.clearActive();\r\n this.observations_.clear();\r\n this.controller_.removeObserver(this);\r\n };\r\n /**\r\n * Collects observation instances the associated element of which has changed\r\n * it's content rectangle.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.gatherActive = function () {\r\n var _this = this;\r\n this.clearActive();\r\n this.observations_.forEach(function (observation) {\r\n if (observation.isActive()) {\r\n _this.activeObservations_.push(observation);\r\n }\r\n });\r\n };\r\n /**\r\n * Invokes initial callback function with a list of ResizeObserverEntry\r\n * instances collected from active resize observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.broadcastActive = function () {\r\n // Do nothing if observer doesn't have active observations.\r\n if (!this.hasActive()) {\r\n return;\r\n }\r\n var ctx = this.callbackCtx_;\r\n // Create ResizeObserverEntry instance for every active observation.\r\n var entries = this.activeObservations_.map(function (observation) {\r\n return new ResizeObserverEntry(observation.target, observation.broadcastRect());\r\n });\r\n this.callback_.call(ctx, entries, ctx);\r\n this.clearActive();\r\n };\r\n /**\r\n * Clears the collection of active observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.clearActive = function () {\r\n this.activeObservations_.splice(0);\r\n };\r\n /**\r\n * Tells whether observer has active observations.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObserverSPI.prototype.hasActive = function () {\r\n return this.activeObservations_.length > 0;\r\n };\r\n return ResizeObserverSPI;\r\n}());\n\n// Registry of internal observers. If WeakMap is not available use current shim\r\n// for the Map collection as it has all required methods and because WeakMap\r\n// can't be fully polyfilled anyway.\r\nvar observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();\r\n/**\r\n * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation\r\n * exposing only those methods and properties that are defined in the spec.\r\n */\r\nvar ResizeObserver = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback that is invoked when\r\n * dimensions of the observed elements change.\r\n */\r\n function ResizeObserver(callback) {\r\n if (!(this instanceof ResizeObserver)) {\r\n throw new TypeError('Cannot call a class as a function.');\r\n }\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n var controller = ResizeObserverController.getInstance();\r\n var observer = new ResizeObserverSPI(callback, controller, this);\r\n observers.set(this, observer);\r\n }\r\n return ResizeObserver;\r\n}());\r\n// Expose public methods of ResizeObserver.\r\n[\r\n 'observe',\r\n 'unobserve',\r\n 'disconnect'\r\n].forEach(function (method) {\r\n ResizeObserver.prototype[method] = function () {\r\n var _a;\r\n return (_a = observers.get(this))[method].apply(_a, arguments);\r\n };\r\n});\n\nvar index = (function () {\r\n // Export existing implementation if available.\r\n if (typeof global$1.ResizeObserver !== 'undefined') {\r\n return global$1.ResizeObserver;\r\n }\r\n return ResizeObserver;\r\n})();\n\nexport default index;\n","/**\n * @license React\n * scheduler.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'use strict';function f(a,b){var c=a.length;a.push(b);a:for(;0>>1,e=a[d];if(0>>1;dg(C,c))ng(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(ng(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Qa||125d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","//\n\nmodule.exports = function shallowEqual(objA, objB, compare, compareContext) {\n var ret = compare ? compare.call(compareContext, objA, objB) : void 0;\n\n if (ret !== void 0) {\n return !!ret;\n }\n\n if (objA === objB) {\n return true;\n }\n\n if (typeof objA !== \"object\" || !objA || typeof objB !== \"object\" || !objB) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);\n\n // Test for A's keys different from B.\n for (var idx = 0; idx < keysA.length; idx++) {\n var key = keysA[idx];\n\n if (!bHasOwnProperty(key)) {\n return false;\n }\n\n var valueA = objA[key];\n var valueB = objB[key];\n\n ret = compare ? compare.call(compareContext, valueA, valueB, key) : void 0;\n\n if (ret === false || (ret === void 0 && valueA !== valueB)) {\n return false;\n }\n }\n\n return true;\n};\n","var camel2hyphen = function (str) {\n return str\n .replace(/[A-Z]/g, function (match) {\n return '-' + match.toLowerCase();\n })\n .toLowerCase();\n};\n\nmodule.exports = camel2hyphen;","/*!\n* sweetalert2 v11.12.4\n* Released under the MIT License.\n*/\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Sweetalert2 = factory());\n})(this, (function () { 'use strict';\n\n function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n }\n function _arrayWithHoles(r) {\n if (Array.isArray(r)) return r;\n }\n function _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return _arrayLikeToArray(r);\n }\n function _assertClassBrand(e, t, n) {\n if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n;\n throw new TypeError(\"Private element is not present on this object\");\n }\n function _assertThisInitialized(e) {\n if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return e;\n }\n function _callSuper(t, o, e) {\n return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e));\n }\n function _checkPrivateRedeclaration(e, t) {\n if (t.has(e)) throw new TypeError(\"Cannot initialize the same private elements twice on an object\");\n }\n function _classCallCheck(a, n) {\n if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n }\n function _classPrivateFieldGet2(s, a) {\n return s.get(_assertClassBrand(s, a));\n }\n function _classPrivateFieldInitSpec(e, t, a) {\n _checkPrivateRedeclaration(e, t), t.set(e, a);\n }\n function _classPrivateFieldSet2(s, a, r) {\n return s.set(_assertClassBrand(s, a), r), r;\n }\n function _construct(t, e, r) {\n if (_isNativeReflectConstruct()) return Reflect.construct.apply(null, arguments);\n var o = [null];\n o.push.apply(o, e);\n var p = new (t.bind.apply(t, o))();\n return p;\n }\n function _defineProperties(e, r) {\n for (var t = 0; t < r.length; t++) {\n var o = r[t];\n o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o);\n }\n }\n function _createClass(e, r, t) {\n return r && _defineProperties(e.prototype, r), Object.defineProperty(e, \"prototype\", {\n writable: !1\n }), e;\n }\n function _createForOfIteratorHelper(r, e) {\n var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (!t) {\n if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e) {\n t && (r = t);\n var n = 0,\n F = function () {};\n return {\n s: F,\n n: function () {\n return n >= r.length ? {\n done: !0\n } : {\n done: !1,\n value: r[n++]\n };\n },\n e: function (r) {\n throw r;\n },\n f: F\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n var o,\n a = !0,\n u = !1;\n return {\n s: function () {\n t = t.call(r);\n },\n n: function () {\n var r = t.next();\n return a = r.done, r;\n },\n e: function (r) {\n u = !0, o = r;\n },\n f: function () {\n try {\n a || null == t.return || t.return();\n } finally {\n if (u) throw o;\n }\n }\n };\n }\n function _get() {\n return _get = \"undefined\" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) {\n var p = _superPropBase(e, t);\n if (p) {\n var n = Object.getOwnPropertyDescriptor(p, t);\n return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value;\n }\n }, _get.apply(null, arguments);\n }\n function _getPrototypeOf(t) {\n return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) {\n return t.__proto__ || Object.getPrototypeOf(t);\n }, _getPrototypeOf(t);\n }\n function _inherits(t, e) {\n if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function\");\n t.prototype = Object.create(e && e.prototype, {\n constructor: {\n value: t,\n writable: !0,\n configurable: !0\n }\n }), Object.defineProperty(t, \"prototype\", {\n writable: !1\n }), e && _setPrototypeOf(t, e);\n }\n function _isNativeReflectConstruct() {\n try {\n var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n } catch (t) {}\n return (_isNativeReflectConstruct = function () {\n return !!t;\n })();\n }\n function _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n }\n function _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) ; else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n }\n function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n function _possibleConstructorReturn(t, e) {\n if (e && (\"object\" == typeof e || \"function\" == typeof e)) return e;\n if (void 0 !== e) throw new TypeError(\"Derived constructors may only return object or undefined\");\n return _assertThisInitialized(t);\n }\n function _setPrototypeOf(t, e) {\n return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, _setPrototypeOf(t, e);\n }\n function _slicedToArray(r, e) {\n return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest();\n }\n function _superPropBase(t, o) {\n for (; !{}.hasOwnProperty.call(t, o) && null !== (t = _getPrototypeOf(t)););\n return t;\n }\n function _superPropGet(t, e, r, o) {\n var p = _get(_getPrototypeOf(t.prototype ), e, r);\n return function (t) {\n return p.apply(r, t);\n } ;\n }\n function _toConsumableArray(r) {\n return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread();\n }\n function _toPrimitive(t, r) {\n if (\"object\" != typeof t || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r);\n if (\"object\" != typeof i) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (String )(t);\n }\n function _toPropertyKey(t) {\n var i = _toPrimitive(t, \"string\");\n return \"symbol\" == typeof i ? i : i + \"\";\n }\n function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n }\n function _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return _arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;\n }\n }\n\n var RESTORE_FOCUS_TIMEOUT = 100;\n\n /** @type {GlobalState} */\n var globalState = {};\n var focusPreviousActiveElement = function focusPreviousActiveElement() {\n if (globalState.previousActiveElement instanceof HTMLElement) {\n globalState.previousActiveElement.focus();\n globalState.previousActiveElement = null;\n } else if (document.body) {\n document.body.focus();\n }\n };\n\n /**\n * Restore previous active (focused) element\n *\n * @param {boolean} returnFocus\n * @returns {Promise}\n */\n var restoreActiveElement = function restoreActiveElement(returnFocus) {\n return new Promise(function (resolve) {\n if (!returnFocus) {\n return resolve();\n }\n var x = window.scrollX;\n var y = window.scrollY;\n globalState.restoreFocusTimeout = setTimeout(function () {\n focusPreviousActiveElement();\n resolve();\n }, RESTORE_FOCUS_TIMEOUT); // issues/900\n\n window.scrollTo(x, y);\n });\n };\n\n var swalPrefix = 'swal2-';\n\n /**\n * @typedef {Record} SwalClasses\n */\n\n /**\n * @typedef {'success' | 'warning' | 'info' | 'question' | 'error'} SwalIcon\n * @typedef {Record} SwalIcons\n */\n\n /** @type {SwalClass[]} */\n var classNames = ['container', 'shown', 'height-auto', 'iosfix', 'popup', 'modal', 'no-backdrop', 'no-transition', 'toast', 'toast-shown', 'show', 'hide', 'close', 'title', 'html-container', 'actions', 'confirm', 'deny', 'cancel', 'default-outline', 'footer', 'icon', 'icon-content', 'image', 'input', 'file', 'range', 'select', 'radio', 'checkbox', 'label', 'textarea', 'inputerror', 'input-label', 'validation-message', 'progress-steps', 'active-progress-step', 'progress-step', 'progress-step-line', 'loader', 'loading', 'styled', 'top', 'top-start', 'top-end', 'top-left', 'top-right', 'center', 'center-start', 'center-end', 'center-left', 'center-right', 'bottom', 'bottom-start', 'bottom-end', 'bottom-left', 'bottom-right', 'grow-row', 'grow-column', 'grow-fullscreen', 'rtl', 'timer-progress-bar', 'timer-progress-bar-container', 'scrollbar-measure', 'icon-success', 'icon-warning', 'icon-info', 'icon-question', 'icon-error'];\n var swalClasses = classNames.reduce(function (acc, className) {\n acc[className] = swalPrefix + className;\n return acc;\n }, /** @type {SwalClasses} */{});\n\n /** @type {SwalIcon[]} */\n var icons = ['success', 'warning', 'info', 'question', 'error'];\n var iconTypes = icons.reduce(function (acc, icon) {\n acc[icon] = swalPrefix + icon;\n return acc;\n }, /** @type {SwalIcons} */{});\n\n var consolePrefix = 'SweetAlert2:';\n\n /**\n * Capitalize the first letter of a string\n *\n * @param {string} str\n * @returns {string}\n */\n var capitalizeFirstLetter = function capitalizeFirstLetter(str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n };\n\n /**\n * Standardize console warnings\n *\n * @param {string | string[]} message\n */\n var warn = function warn(message) {\n console.warn(\"\".concat(consolePrefix, \" \").concat(_typeof(message) === 'object' ? message.join(' ') : message));\n };\n\n /**\n * Standardize console errors\n *\n * @param {string} message\n */\n var error = function error(message) {\n console.error(\"\".concat(consolePrefix, \" \").concat(message));\n };\n\n /**\n * Private global state for `warnOnce`\n *\n * @type {string[]}\n * @private\n */\n var previousWarnOnceMessages = [];\n\n /**\n * Show a console warning, but only if it hasn't already been shown\n *\n * @param {string} message\n */\n var warnOnce = function warnOnce(message) {\n if (!previousWarnOnceMessages.includes(message)) {\n previousWarnOnceMessages.push(message);\n warn(message);\n }\n };\n\n /**\n * Show a one-time console warning about deprecated params/methods\n *\n * @param {string} deprecatedParam\n * @param {string?} useInstead\n */\n var warnAboutDeprecation = function warnAboutDeprecation(deprecatedParam) {\n var useInstead = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n warnOnce(\"\\\"\".concat(deprecatedParam, \"\\\" is deprecated and will be removed in the next major release.\").concat(useInstead ? \" Use \\\"\".concat(useInstead, \"\\\" instead.\") : ''));\n };\n\n /**\n * If `arg` is a function, call it (with no arguments or context) and return the result.\n * Otherwise, just pass the value through\n *\n * @param {Function | any} arg\n * @returns {any}\n */\n var callIfFunction = function callIfFunction(arg) {\n return typeof arg === 'function' ? arg() : arg;\n };\n\n /**\n * @param {any} arg\n * @returns {boolean}\n */\n var hasToPromiseFn = function hasToPromiseFn(arg) {\n return arg && typeof arg.toPromise === 'function';\n };\n\n /**\n * @param {any} arg\n * @returns {Promise}\n */\n var asPromise = function asPromise(arg) {\n return hasToPromiseFn(arg) ? arg.toPromise() : Promise.resolve(arg);\n };\n\n /**\n * @param {any} arg\n * @returns {boolean}\n */\n var isPromise = function isPromise(arg) {\n return arg && Promise.resolve(arg) === arg;\n };\n\n /**\n * Gets the popup container which contains the backdrop and the popup itself.\n *\n * @returns {HTMLElement | null}\n */\n var getContainer = function getContainer() {\n return document.body.querySelector(\".\".concat(swalClasses.container));\n };\n\n /**\n * @param {string} selectorString\n * @returns {HTMLElement | null}\n */\n var elementBySelector = function elementBySelector(selectorString) {\n var container = getContainer();\n return container ? container.querySelector(selectorString) : null;\n };\n\n /**\n * @param {string} className\n * @returns {HTMLElement | null}\n */\n var elementByClass = function elementByClass(className) {\n return elementBySelector(\".\".concat(className));\n };\n\n /**\n * @returns {HTMLElement | null}\n */\n var getPopup = function getPopup() {\n return elementByClass(swalClasses.popup);\n };\n\n /**\n * @returns {HTMLElement | null}\n */\n var getIcon = function getIcon() {\n return elementByClass(swalClasses.icon);\n };\n\n /**\n * @returns {HTMLElement | null}\n */\n var getIconContent = function getIconContent() {\n return elementByClass(swalClasses['icon-content']);\n };\n\n /**\n * @returns {HTMLElement | null}\n */\n var getTitle = function getTitle() {\n return elementByClass(swalClasses.title);\n };\n\n /**\n * @returns {HTMLElement | null}\n */\n var getHtmlContainer = function getHtmlContainer() {\n return elementByClass(swalClasses['html-container']);\n };\n\n /**\n * @returns {HTMLElement | null}\n */\n var getImage = function getImage() {\n return elementByClass(swalClasses.image);\n };\n\n /**\n * @returns {HTMLElement | null}\n */\n var getProgressSteps = function getProgressSteps() {\n return elementByClass(swalClasses['progress-steps']);\n };\n\n /**\n * @returns {HTMLElement | null}\n */\n var getValidationMessage = function getValidationMessage() {\n return elementByClass(swalClasses['validation-message']);\n };\n\n /**\n * @returns {HTMLButtonElement | null}\n */\n var getConfirmButton = function getConfirmButton() {\n return /** @type {HTMLButtonElement} */elementBySelector(\".\".concat(swalClasses.actions, \" .\").concat(swalClasses.confirm));\n };\n\n /**\n * @returns {HTMLButtonElement | null}\n */\n var getCancelButton = function getCancelButton() {\n return /** @type {HTMLButtonElement} */elementBySelector(\".\".concat(swalClasses.actions, \" .\").concat(swalClasses.cancel));\n };\n\n /**\n * @returns {HTMLButtonElement | null}\n */\n var getDenyButton = function getDenyButton() {\n return /** @type {HTMLButtonElement} */elementBySelector(\".\".concat(swalClasses.actions, \" .\").concat(swalClasses.deny));\n };\n\n /**\n * @returns {HTMLElement | null}\n */\n var getInputLabel = function getInputLabel() {\n return elementByClass(swalClasses['input-label']);\n };\n\n /**\n * @returns {HTMLElement | null}\n */\n var getLoader = function getLoader() {\n return elementBySelector(\".\".concat(swalClasses.loader));\n };\n\n /**\n * @returns {HTMLElement | null}\n */\n var getActions = function getActions() {\n return elementByClass(swalClasses.actions);\n };\n\n /**\n * @returns {HTMLElement | null}\n */\n var getFooter = function getFooter() {\n return elementByClass(swalClasses.footer);\n };\n\n /**\n * @returns {HTMLElement | null}\n */\n var getTimerProgressBar = function getTimerProgressBar() {\n return elementByClass(swalClasses['timer-progress-bar']);\n };\n\n /**\n * @returns {HTMLElement | null}\n */\n var getCloseButton = function getCloseButton() {\n return elementByClass(swalClasses.close);\n };\n\n // https://github.com/jkup/focusable/blob/master/index.js\n var focusable = \"\\n a[href],\\n area[href],\\n input:not([disabled]),\\n select:not([disabled]),\\n textarea:not([disabled]),\\n button:not([disabled]),\\n iframe,\\n object,\\n embed,\\n [tabindex=\\\"0\\\"],\\n [contenteditable],\\n audio[controls],\\n video[controls],\\n summary\\n\";\n /**\n * @returns {HTMLElement[]}\n */\n var getFocusableElements = function getFocusableElements() {\n var popup = getPopup();\n if (!popup) {\n return [];\n }\n /** @type {NodeListOf} */\n var focusableElementsWithTabindex = popup.querySelectorAll('[tabindex]:not([tabindex=\"-1\"]):not([tabindex=\"0\"])');\n var focusableElementsWithTabindexSorted = Array.from(focusableElementsWithTabindex)\n // sort according to tabindex\n .sort(function (a, b) {\n var tabindexA = parseInt(a.getAttribute('tabindex') || '0');\n var tabindexB = parseInt(b.getAttribute('tabindex') || '0');\n if (tabindexA > tabindexB) {\n return 1;\n } else if (tabindexA < tabindexB) {\n return -1;\n }\n return 0;\n });\n\n /** @type {NodeListOf} */\n var otherFocusableElements = popup.querySelectorAll(focusable);\n var otherFocusableElementsFiltered = Array.from(otherFocusableElements).filter(function (el) {\n return el.getAttribute('tabindex') !== '-1';\n });\n return _toConsumableArray(new Set(focusableElementsWithTabindexSorted.concat(otherFocusableElementsFiltered))).filter(function (el) {\n return isVisible$1(el);\n });\n };\n\n /**\n * @returns {boolean}\n */\n var isModal = function isModal() {\n return hasClass(document.body, swalClasses.shown) && !hasClass(document.body, swalClasses['toast-shown']) && !hasClass(document.body, swalClasses['no-backdrop']);\n };\n\n /**\n * @returns {boolean}\n */\n var isToast = function isToast() {\n var popup = getPopup();\n if (!popup) {\n return false;\n }\n return hasClass(popup, swalClasses.toast);\n };\n\n /**\n * @returns {boolean}\n */\n var isLoading = function isLoading() {\n var popup = getPopup();\n if (!popup) {\n return false;\n }\n return popup.hasAttribute('data-loading');\n };\n\n /**\n * Securely set innerHTML of an element\n * https://github.com/sweetalert2/sweetalert2/issues/1926\n *\n * @param {HTMLElement} elem\n * @param {string} html\n */\n var setInnerHtml = function setInnerHtml(elem, html) {\n elem.textContent = '';\n if (html) {\n var parser = new DOMParser();\n var parsed = parser.parseFromString(html, \"text/html\");\n var head = parsed.querySelector('head');\n if (head) {\n Array.from(head.childNodes).forEach(function (child) {\n elem.appendChild(child);\n });\n }\n var body = parsed.querySelector('body');\n if (body) {\n Array.from(body.childNodes).forEach(function (child) {\n if (child instanceof HTMLVideoElement || child instanceof HTMLAudioElement) {\n elem.appendChild(child.cloneNode(true)); // https://github.com/sweetalert2/sweetalert2/issues/2507\n } else {\n elem.appendChild(child);\n }\n });\n }\n }\n };\n\n /**\n * @param {HTMLElement} elem\n * @param {string} className\n * @returns {boolean}\n */\n var hasClass = function hasClass(elem, className) {\n if (!className) {\n return false;\n }\n var classList = className.split(/\\s+/);\n for (var i = 0; i < classList.length; i++) {\n if (!elem.classList.contains(classList[i])) {\n return false;\n }\n }\n return true;\n };\n\n /**\n * @param {HTMLElement} elem\n * @param {SweetAlertOptions} params\n */\n var removeCustomClasses = function removeCustomClasses(elem, params) {\n Array.from(elem.classList).forEach(function (className) {\n if (!Object.values(swalClasses).includes(className) && !Object.values(iconTypes).includes(className) && !Object.values(params.showClass || {}).includes(className)) {\n elem.classList.remove(className);\n }\n });\n };\n\n /**\n * @param {HTMLElement} elem\n * @param {SweetAlertOptions} params\n * @param {string} className\n */\n var applyCustomClass = function applyCustomClass(elem, params, className) {\n removeCustomClasses(elem, params);\n if (!params.customClass) {\n return;\n }\n var customClass = params.customClass[( /** @type {keyof SweetAlertCustomClass} */className)];\n if (!customClass) {\n return;\n }\n if (typeof customClass !== 'string' && !customClass.forEach) {\n warn(\"Invalid type of customClass.\".concat(className, \"! Expected string or iterable object, got \\\"\").concat(_typeof(customClass), \"\\\"\"));\n return;\n }\n addClass(elem, customClass);\n };\n\n /**\n * @param {HTMLElement} popup\n * @param {import('./renderers/renderInput').InputClass | SweetAlertInput} inputClass\n * @returns {HTMLInputElement | null}\n */\n var getInput$1 = function getInput(popup, inputClass) {\n if (!inputClass) {\n return null;\n }\n switch (inputClass) {\n case 'select':\n case 'textarea':\n case 'file':\n return popup.querySelector(\".\".concat(swalClasses.popup, \" > .\").concat(swalClasses[inputClass]));\n case 'checkbox':\n return popup.querySelector(\".\".concat(swalClasses.popup, \" > .\").concat(swalClasses.checkbox, \" input\"));\n case 'radio':\n return popup.querySelector(\".\".concat(swalClasses.popup, \" > .\").concat(swalClasses.radio, \" input:checked\")) || popup.querySelector(\".\".concat(swalClasses.popup, \" > .\").concat(swalClasses.radio, \" input:first-child\"));\n case 'range':\n return popup.querySelector(\".\".concat(swalClasses.popup, \" > .\").concat(swalClasses.range, \" input\"));\n default:\n return popup.querySelector(\".\".concat(swalClasses.popup, \" > .\").concat(swalClasses.input));\n }\n };\n\n /**\n * @param {HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement} input\n */\n var focusInput = function focusInput(input) {\n input.focus();\n\n // place cursor at end of text in text input\n if (input.type !== 'file') {\n // http://stackoverflow.com/a/2345915\n var val = input.value;\n input.value = '';\n input.value = val;\n }\n };\n\n /**\n * @param {HTMLElement | HTMLElement[] | null} target\n * @param {string | string[] | readonly string[] | undefined} classList\n * @param {boolean} condition\n */\n var toggleClass = function toggleClass(target, classList, condition) {\n if (!target || !classList) {\n return;\n }\n if (typeof classList === 'string') {\n classList = classList.split(/\\s+/).filter(Boolean);\n }\n classList.forEach(function (className) {\n if (Array.isArray(target)) {\n target.forEach(function (elem) {\n if (condition) {\n elem.classList.add(className);\n } else {\n elem.classList.remove(className);\n }\n });\n } else {\n if (condition) {\n target.classList.add(className);\n } else {\n target.classList.remove(className);\n }\n }\n });\n };\n\n /**\n * @param {HTMLElement | HTMLElement[] | null} target\n * @param {string | string[] | readonly string[] | undefined} classList\n */\n var addClass = function addClass(target, classList) {\n toggleClass(target, classList, true);\n };\n\n /**\n * @param {HTMLElement | HTMLElement[] | null} target\n * @param {string | string[] | readonly string[] | undefined} classList\n */\n var removeClass = function removeClass(target, classList) {\n toggleClass(target, classList, false);\n };\n\n /**\n * Get direct child of an element by class name\n *\n * @param {HTMLElement} elem\n * @param {string} className\n * @returns {HTMLElement | undefined}\n */\n var getDirectChildByClass = function getDirectChildByClass(elem, className) {\n var children = Array.from(elem.children);\n for (var i = 0; i < children.length; i++) {\n var child = children[i];\n if (child instanceof HTMLElement && hasClass(child, className)) {\n return child;\n }\n }\n };\n\n /**\n * @param {HTMLElement} elem\n * @param {string} property\n * @param {*} value\n */\n var applyNumericalStyle = function applyNumericalStyle(elem, property, value) {\n if (value === \"\".concat(parseInt(value))) {\n value = parseInt(value);\n }\n if (value || parseInt(value) === 0) {\n elem.style.setProperty(property, typeof value === 'number' ? \"\".concat(value, \"px\") : value);\n } else {\n elem.style.removeProperty(property);\n }\n };\n\n /**\n * @param {HTMLElement | null} elem\n * @param {string} display\n */\n var show = function show(elem) {\n var display = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'flex';\n if (!elem) {\n return;\n }\n elem.style.display = display;\n };\n\n /**\n * @param {HTMLElement | null} elem\n */\n var hide = function hide(elem) {\n if (!elem) {\n return;\n }\n elem.style.display = 'none';\n };\n\n /**\n * @param {HTMLElement | null} elem\n * @param {string} display\n */\n var showWhenInnerHtmlPresent = function showWhenInnerHtmlPresent(elem) {\n var display = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'block';\n if (!elem) {\n return;\n }\n new MutationObserver(function () {\n toggle(elem, elem.innerHTML, display);\n }).observe(elem, {\n childList: true,\n subtree: true\n });\n };\n\n /**\n * @param {HTMLElement} parent\n * @param {string} selector\n * @param {string} property\n * @param {string} value\n */\n var setStyle = function setStyle(parent, selector, property, value) {\n /** @type {HTMLElement | null} */\n var el = parent.querySelector(selector);\n if (el) {\n el.style.setProperty(property, value);\n }\n };\n\n /**\n * @param {HTMLElement} elem\n * @param {any} condition\n * @param {string} display\n */\n var toggle = function toggle(elem, condition) {\n var display = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'flex';\n if (condition) {\n show(elem, display);\n } else {\n hide(elem);\n }\n };\n\n /**\n * borrowed from jquery $(elem).is(':visible') implementation\n *\n * @param {HTMLElement | null} elem\n * @returns {boolean}\n */\n var isVisible$1 = function isVisible(elem) {\n return !!(elem && (elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length));\n };\n\n /**\n * @returns {boolean}\n */\n var allButtonsAreHidden = function allButtonsAreHidden() {\n return !isVisible$1(getConfirmButton()) && !isVisible$1(getDenyButton()) && !isVisible$1(getCancelButton());\n };\n\n /**\n * @param {HTMLElement} elem\n * @returns {boolean}\n */\n var isScrollable = function isScrollable(elem) {\n return !!(elem.scrollHeight > elem.clientHeight);\n };\n\n /**\n * borrowed from https://stackoverflow.com/a/46352119\n *\n * @param {HTMLElement} elem\n * @returns {boolean}\n */\n var hasCssAnimation = function hasCssAnimation(elem) {\n var style = window.getComputedStyle(elem);\n var animDuration = parseFloat(style.getPropertyValue('animation-duration') || '0');\n var transDuration = parseFloat(style.getPropertyValue('transition-duration') || '0');\n return animDuration > 0 || transDuration > 0;\n };\n\n /**\n * @param {number} timer\n * @param {boolean} reset\n */\n var animateTimerProgressBar = function animateTimerProgressBar(timer) {\n var reset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var timerProgressBar = getTimerProgressBar();\n if (!timerProgressBar) {\n return;\n }\n if (isVisible$1(timerProgressBar)) {\n if (reset) {\n timerProgressBar.style.transition = 'none';\n timerProgressBar.style.width = '100%';\n }\n setTimeout(function () {\n timerProgressBar.style.transition = \"width \".concat(timer / 1000, \"s linear\");\n timerProgressBar.style.width = '0%';\n }, 10);\n }\n };\n var stopTimerProgressBar = function stopTimerProgressBar() {\n var timerProgressBar = getTimerProgressBar();\n if (!timerProgressBar) {\n return;\n }\n var timerProgressBarWidth = parseInt(window.getComputedStyle(timerProgressBar).width);\n timerProgressBar.style.removeProperty('transition');\n timerProgressBar.style.width = '100%';\n var timerProgressBarFullWidth = parseInt(window.getComputedStyle(timerProgressBar).width);\n var timerProgressBarPercent = timerProgressBarWidth / timerProgressBarFullWidth * 100;\n timerProgressBar.style.width = \"\".concat(timerProgressBarPercent, \"%\");\n };\n\n /**\n * Detect Node env\n *\n * @returns {boolean}\n */\n var isNodeEnv = function isNodeEnv() {\n return typeof window === 'undefined' || typeof document === 'undefined';\n };\n\n var sweetHTML = \"\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\").replace(/(^|\\n)\\s*/g, '');\n\n /**\n * @returns {boolean}\n */\n var resetOldContainer = function resetOldContainer() {\n var oldContainer = getContainer();\n if (!oldContainer) {\n return false;\n }\n oldContainer.remove();\n removeClass([document.documentElement, document.body], [swalClasses['no-backdrop'], swalClasses['toast-shown'], swalClasses['has-column']]);\n return true;\n };\n var resetValidationMessage$1 = function resetValidationMessage() {\n globalState.currentInstance.resetValidationMessage();\n };\n var addInputChangeListeners = function addInputChangeListeners() {\n var popup = getPopup();\n var input = getDirectChildByClass(popup, swalClasses.input);\n var file = getDirectChildByClass(popup, swalClasses.file);\n /** @type {HTMLInputElement} */\n var range = popup.querySelector(\".\".concat(swalClasses.range, \" input\"));\n /** @type {HTMLOutputElement} */\n var rangeOutput = popup.querySelector(\".\".concat(swalClasses.range, \" output\"));\n var select = getDirectChildByClass(popup, swalClasses.select);\n /** @type {HTMLInputElement} */\n var checkbox = popup.querySelector(\".\".concat(swalClasses.checkbox, \" input\"));\n var textarea = getDirectChildByClass(popup, swalClasses.textarea);\n input.oninput = resetValidationMessage$1;\n file.onchange = resetValidationMessage$1;\n select.onchange = resetValidationMessage$1;\n checkbox.onchange = resetValidationMessage$1;\n textarea.oninput = resetValidationMessage$1;\n range.oninput = function () {\n resetValidationMessage$1();\n rangeOutput.value = range.value;\n };\n range.onchange = function () {\n resetValidationMessage$1();\n rangeOutput.value = range.value;\n };\n };\n\n /**\n * @param {string | HTMLElement} target\n * @returns {HTMLElement}\n */\n var getTarget = function getTarget(target) {\n return typeof target === 'string' ? document.querySelector(target) : target;\n };\n\n /**\n * @param {SweetAlertOptions} params\n */\n var setupAccessibility = function setupAccessibility(params) {\n var popup = getPopup();\n popup.setAttribute('role', params.toast ? 'alert' : 'dialog');\n popup.setAttribute('aria-live', params.toast ? 'polite' : 'assertive');\n if (!params.toast) {\n popup.setAttribute('aria-modal', 'true');\n }\n };\n\n /**\n * @param {HTMLElement} targetElement\n */\n var setupRTL = function setupRTL(targetElement) {\n if (window.getComputedStyle(targetElement).direction === 'rtl') {\n addClass(getContainer(), swalClasses.rtl);\n }\n };\n\n /**\n * Add modal + backdrop + no-war message for Russians to DOM\n *\n * @param {SweetAlertOptions} params\n */\n var init = function init(params) {\n // Clean up the old popup container if it exists\n var oldContainerExisted = resetOldContainer();\n if (isNodeEnv()) {\n error('SweetAlert2 requires document to initialize');\n return;\n }\n var container = document.createElement('div');\n container.className = swalClasses.container;\n if (oldContainerExisted) {\n addClass(container, swalClasses['no-transition']);\n }\n setInnerHtml(container, sweetHTML);\n var targetElement = getTarget(params.target);\n targetElement.appendChild(container);\n setupAccessibility(params);\n setupRTL(targetElement);\n addInputChangeListeners();\n };\n\n /**\n * @param {HTMLElement | object | string} param\n * @param {HTMLElement} target\n */\n var parseHtmlToContainer = function parseHtmlToContainer(param, target) {\n // DOM element\n if (param instanceof HTMLElement) {\n target.appendChild(param);\n }\n\n // Object\n else if (_typeof(param) === 'object') {\n handleObject(param, target);\n }\n\n // Plain string\n else if (param) {\n setInnerHtml(target, param);\n }\n };\n\n /**\n * @param {any} param\n * @param {HTMLElement} target\n */\n var handleObject = function handleObject(param, target) {\n // JQuery element(s)\n if (param.jquery) {\n handleJqueryElem(target, param);\n }\n\n // For other objects use their string representation\n else {\n setInnerHtml(target, param.toString());\n }\n };\n\n /**\n * @param {HTMLElement} target\n * @param {any} elem\n */\n var handleJqueryElem = function handleJqueryElem(target, elem) {\n target.textContent = '';\n if (0 in elem) {\n for (var i = 0; i in elem; i++) {\n target.appendChild(elem[i].cloneNode(true));\n }\n } else {\n target.appendChild(elem.cloneNode(true));\n }\n };\n\n /**\n * @returns {'webkitAnimationEnd' | 'animationend' | false}\n */\n var animationEndEvent = function () {\n // Prevent run in Node env\n if (isNodeEnv()) {\n return false;\n }\n var testEl = document.createElement('div');\n\n // Chrome, Safari and Opera\n if (typeof testEl.style.webkitAnimation !== 'undefined') {\n return 'webkitAnimationEnd';\n }\n\n // Standard syntax\n if (typeof testEl.style.animation !== 'undefined') {\n return 'animationend';\n }\n return false;\n }();\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n var renderActions = function renderActions(instance, params) {\n var actions = getActions();\n var loader = getLoader();\n if (!actions || !loader) {\n return;\n }\n\n // Actions (buttons) wrapper\n if (!params.showConfirmButton && !params.showDenyButton && !params.showCancelButton) {\n hide(actions);\n } else {\n show(actions);\n }\n\n // Custom class\n applyCustomClass(actions, params, 'actions');\n\n // Render all the buttons\n renderButtons(actions, loader, params);\n\n // Loader\n setInnerHtml(loader, params.loaderHtml || '');\n applyCustomClass(loader, params, 'loader');\n };\n\n /**\n * @param {HTMLElement} actions\n * @param {HTMLElement} loader\n * @param {SweetAlertOptions} params\n */\n function renderButtons(actions, loader, params) {\n var confirmButton = getConfirmButton();\n var denyButton = getDenyButton();\n var cancelButton = getCancelButton();\n if (!confirmButton || !denyButton || !cancelButton) {\n return;\n }\n\n // Render buttons\n renderButton(confirmButton, 'confirm', params);\n renderButton(denyButton, 'deny', params);\n renderButton(cancelButton, 'cancel', params);\n handleButtonsStyling(confirmButton, denyButton, cancelButton, params);\n if (params.reverseButtons) {\n if (params.toast) {\n actions.insertBefore(cancelButton, confirmButton);\n actions.insertBefore(denyButton, confirmButton);\n } else {\n actions.insertBefore(cancelButton, loader);\n actions.insertBefore(denyButton, loader);\n actions.insertBefore(confirmButton, loader);\n }\n }\n }\n\n /**\n * @param {HTMLElement} confirmButton\n * @param {HTMLElement} denyButton\n * @param {HTMLElement} cancelButton\n * @param {SweetAlertOptions} params\n */\n function handleButtonsStyling(confirmButton, denyButton, cancelButton, params) {\n if (!params.buttonsStyling) {\n removeClass([confirmButton, denyButton, cancelButton], swalClasses.styled);\n return;\n }\n addClass([confirmButton, denyButton, cancelButton], swalClasses.styled);\n\n // Buttons background colors\n if (params.confirmButtonColor) {\n confirmButton.style.backgroundColor = params.confirmButtonColor;\n addClass(confirmButton, swalClasses['default-outline']);\n }\n if (params.denyButtonColor) {\n denyButton.style.backgroundColor = params.denyButtonColor;\n addClass(denyButton, swalClasses['default-outline']);\n }\n if (params.cancelButtonColor) {\n cancelButton.style.backgroundColor = params.cancelButtonColor;\n addClass(cancelButton, swalClasses['default-outline']);\n }\n }\n\n /**\n * @param {HTMLElement} button\n * @param {'confirm' | 'deny' | 'cancel'} buttonType\n * @param {SweetAlertOptions} params\n */\n function renderButton(button, buttonType, params) {\n var buttonName = /** @type {'Confirm' | 'Deny' | 'Cancel'} */capitalizeFirstLetter(buttonType);\n toggle(button, params[\"show\".concat(buttonName, \"Button\")], 'inline-block');\n setInnerHtml(button, params[\"\".concat(buttonType, \"ButtonText\")] || ''); // Set caption text\n button.setAttribute('aria-label', params[\"\".concat(buttonType, \"ButtonAriaLabel\")] || ''); // ARIA label\n\n // Add buttons custom classes\n button.className = swalClasses[buttonType];\n applyCustomClass(button, params, \"\".concat(buttonType, \"Button\"));\n }\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n var renderCloseButton = function renderCloseButton(instance, params) {\n var closeButton = getCloseButton();\n if (!closeButton) {\n return;\n }\n setInnerHtml(closeButton, params.closeButtonHtml || '');\n\n // Custom class\n applyCustomClass(closeButton, params, 'closeButton');\n toggle(closeButton, params.showCloseButton);\n closeButton.setAttribute('aria-label', params.closeButtonAriaLabel || '');\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n var renderContainer = function renderContainer(instance, params) {\n var container = getContainer();\n if (!container) {\n return;\n }\n handleBackdropParam(container, params.backdrop);\n handlePositionParam(container, params.position);\n handleGrowParam(container, params.grow);\n\n // Custom class\n applyCustomClass(container, params, 'container');\n };\n\n /**\n * @param {HTMLElement} container\n * @param {SweetAlertOptions['backdrop']} backdrop\n */\n function handleBackdropParam(container, backdrop) {\n if (typeof backdrop === 'string') {\n container.style.background = backdrop;\n } else if (!backdrop) {\n addClass([document.documentElement, document.body], swalClasses['no-backdrop']);\n }\n }\n\n /**\n * @param {HTMLElement} container\n * @param {SweetAlertOptions['position']} position\n */\n function handlePositionParam(container, position) {\n if (!position) {\n return;\n }\n if (position in swalClasses) {\n addClass(container, swalClasses[position]);\n } else {\n warn('The \"position\" parameter is not valid, defaulting to \"center\"');\n addClass(container, swalClasses.center);\n }\n }\n\n /**\n * @param {HTMLElement} container\n * @param {SweetAlertOptions['grow']} grow\n */\n function handleGrowParam(container, grow) {\n if (!grow) {\n return;\n }\n addClass(container, swalClasses[\"grow-\".concat(grow)]);\n }\n\n /**\n * This module contains `WeakMap`s for each effectively-\"private property\" that a `Swal` has.\n * For example, to set the private property \"foo\" of `this` to \"bar\", you can `privateProps.foo.set(this, 'bar')`\n * This is the approach that Babel will probably take to implement private methods/fields\n * https://github.com/tc39/proposal-private-methods\n * https://github.com/babel/babel/pull/7555\n * Once we have the changes from that PR in Babel, and our core class fits reasonable in *one module*\n * then we can use that language feature.\n */\n\n var privateProps = {\n innerParams: new WeakMap(),\n domCache: new WeakMap()\n };\n\n /** @type {InputClass[]} */\n var inputClasses = ['input', 'file', 'range', 'select', 'radio', 'checkbox', 'textarea'];\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n var renderInput = function renderInput(instance, params) {\n var popup = getPopup();\n if (!popup) {\n return;\n }\n var innerParams = privateProps.innerParams.get(instance);\n var rerender = !innerParams || params.input !== innerParams.input;\n inputClasses.forEach(function (inputClass) {\n var inputContainer = getDirectChildByClass(popup, swalClasses[inputClass]);\n if (!inputContainer) {\n return;\n }\n\n // set attributes\n setAttributes(inputClass, params.inputAttributes);\n\n // set class\n inputContainer.className = swalClasses[inputClass];\n if (rerender) {\n hide(inputContainer);\n }\n });\n if (params.input) {\n if (rerender) {\n showInput(params);\n }\n // set custom class\n setCustomClass(params);\n }\n };\n\n /**\n * @param {SweetAlertOptions} params\n */\n var showInput = function showInput(params) {\n if (!params.input) {\n return;\n }\n if (!renderInputType[params.input]) {\n error(\"Unexpected type of input! Expected \".concat(Object.keys(renderInputType).join(' | '), \", got \\\"\").concat(params.input, \"\\\"\"));\n return;\n }\n var inputContainer = getInputContainer(params.input);\n if (!inputContainer) {\n return;\n }\n var input = renderInputType[params.input](inputContainer, params);\n show(inputContainer);\n\n // input autofocus\n if (params.inputAutoFocus) {\n setTimeout(function () {\n focusInput(input);\n });\n }\n };\n\n /**\n * @param {HTMLInputElement} input\n */\n var removeAttributes = function removeAttributes(input) {\n for (var i = 0; i < input.attributes.length; i++) {\n var attrName = input.attributes[i].name;\n if (!['id', 'type', 'value', 'style'].includes(attrName)) {\n input.removeAttribute(attrName);\n }\n }\n };\n\n /**\n * @param {InputClass} inputClass\n * @param {SweetAlertOptions['inputAttributes']} inputAttributes\n */\n var setAttributes = function setAttributes(inputClass, inputAttributes) {\n var popup = getPopup();\n if (!popup) {\n return;\n }\n var input = getInput$1(popup, inputClass);\n if (!input) {\n return;\n }\n removeAttributes(input);\n for (var attr in inputAttributes) {\n input.setAttribute(attr, inputAttributes[attr]);\n }\n };\n\n /**\n * @param {SweetAlertOptions} params\n */\n var setCustomClass = function setCustomClass(params) {\n if (!params.input) {\n return;\n }\n var inputContainer = getInputContainer(params.input);\n if (inputContainer) {\n applyCustomClass(inputContainer, params, 'input');\n }\n };\n\n /**\n * @param {HTMLInputElement | HTMLTextAreaElement} input\n * @param {SweetAlertOptions} params\n */\n var setInputPlaceholder = function setInputPlaceholder(input, params) {\n if (!input.placeholder && params.inputPlaceholder) {\n input.placeholder = params.inputPlaceholder;\n }\n };\n\n /**\n * @param {Input} input\n * @param {Input} prependTo\n * @param {SweetAlertOptions} params\n */\n var setInputLabel = function setInputLabel(input, prependTo, params) {\n if (params.inputLabel) {\n var label = document.createElement('label');\n var labelClass = swalClasses['input-label'];\n label.setAttribute('for', input.id);\n label.className = labelClass;\n if (_typeof(params.customClass) === 'object') {\n addClass(label, params.customClass.inputLabel);\n }\n label.innerText = params.inputLabel;\n prependTo.insertAdjacentElement('beforebegin', label);\n }\n };\n\n /**\n * @param {SweetAlertInput} inputType\n * @returns {HTMLElement | undefined}\n */\n var getInputContainer = function getInputContainer(inputType) {\n var popup = getPopup();\n if (!popup) {\n return;\n }\n return getDirectChildByClass(popup, swalClasses[( /** @type {SwalClass} */inputType)] || swalClasses.input);\n };\n\n /**\n * @param {HTMLInputElement | HTMLOutputElement | HTMLTextAreaElement} input\n * @param {SweetAlertOptions['inputValue']} inputValue\n */\n var checkAndSetInputValue = function checkAndSetInputValue(input, inputValue) {\n if (['string', 'number'].includes(_typeof(inputValue))) {\n input.value = \"\".concat(inputValue);\n } else if (!isPromise(inputValue)) {\n warn(\"Unexpected type of inputValue! Expected \\\"string\\\", \\\"number\\\" or \\\"Promise\\\", got \\\"\".concat(_typeof(inputValue), \"\\\"\"));\n }\n };\n\n /** @type {Record Input>} */\n var renderInputType = {};\n\n /**\n * @param {HTMLInputElement} input\n * @param {SweetAlertOptions} params\n * @returns {HTMLInputElement}\n */\n renderInputType.text = renderInputType.email = renderInputType.password = renderInputType.number = renderInputType.tel = renderInputType.url = renderInputType.search = renderInputType.date = renderInputType['datetime-local'] = renderInputType.time = renderInputType.week = renderInputType.month = /** @type {(input: Input | HTMLElement, params: SweetAlertOptions) => Input} */\n function (input, params) {\n checkAndSetInputValue(input, params.inputValue);\n setInputLabel(input, input, params);\n setInputPlaceholder(input, params);\n input.type = params.input;\n return input;\n };\n\n /**\n * @param {HTMLInputElement} input\n * @param {SweetAlertOptions} params\n * @returns {HTMLInputElement}\n */\n renderInputType.file = function (input, params) {\n setInputLabel(input, input, params);\n setInputPlaceholder(input, params);\n return input;\n };\n\n /**\n * @param {HTMLInputElement} range\n * @param {SweetAlertOptions} params\n * @returns {HTMLInputElement}\n */\n renderInputType.range = function (range, params) {\n var rangeInput = range.querySelector('input');\n var rangeOutput = range.querySelector('output');\n checkAndSetInputValue(rangeInput, params.inputValue);\n rangeInput.type = params.input;\n checkAndSetInputValue(rangeOutput, params.inputValue);\n setInputLabel(rangeInput, range, params);\n return range;\n };\n\n /**\n * @param {HTMLSelectElement} select\n * @param {SweetAlertOptions} params\n * @returns {HTMLSelectElement}\n */\n renderInputType.select = function (select, params) {\n select.textContent = '';\n if (params.inputPlaceholder) {\n var placeholder = document.createElement('option');\n setInnerHtml(placeholder, params.inputPlaceholder);\n placeholder.value = '';\n placeholder.disabled = true;\n placeholder.selected = true;\n select.appendChild(placeholder);\n }\n setInputLabel(select, select, params);\n return select;\n };\n\n /**\n * @param {HTMLInputElement} radio\n * @returns {HTMLInputElement}\n */\n renderInputType.radio = function (radio) {\n radio.textContent = '';\n return radio;\n };\n\n /**\n * @param {HTMLLabelElement} checkboxContainer\n * @param {SweetAlertOptions} params\n * @returns {HTMLInputElement}\n */\n renderInputType.checkbox = function (checkboxContainer, params) {\n var checkbox = getInput$1(getPopup(), 'checkbox');\n checkbox.value = '1';\n checkbox.checked = Boolean(params.inputValue);\n var label = checkboxContainer.querySelector('span');\n setInnerHtml(label, params.inputPlaceholder);\n return checkbox;\n };\n\n /**\n * @param {HTMLTextAreaElement} textarea\n * @param {SweetAlertOptions} params\n * @returns {HTMLTextAreaElement}\n */\n renderInputType.textarea = function (textarea, params) {\n checkAndSetInputValue(textarea, params.inputValue);\n setInputPlaceholder(textarea, params);\n setInputLabel(textarea, textarea, params);\n\n /**\n * @param {HTMLElement} el\n * @returns {number}\n */\n var getMargin = function getMargin(el) {\n return parseInt(window.getComputedStyle(el).marginLeft) + parseInt(window.getComputedStyle(el).marginRight);\n };\n\n // https://github.com/sweetalert2/sweetalert2/issues/2291\n setTimeout(function () {\n // https://github.com/sweetalert2/sweetalert2/issues/1699\n if ('MutationObserver' in window) {\n var initialPopupWidth = parseInt(window.getComputedStyle(getPopup()).width);\n var textareaResizeHandler = function textareaResizeHandler() {\n // check if texarea is still in document (i.e. popup wasn't closed in the meantime)\n if (!document.body.contains(textarea)) {\n return;\n }\n var textareaWidth = textarea.offsetWidth + getMargin(textarea);\n if (textareaWidth > initialPopupWidth) {\n getPopup().style.width = \"\".concat(textareaWidth, \"px\");\n } else {\n applyNumericalStyle(getPopup(), 'width', params.width);\n }\n };\n new MutationObserver(textareaResizeHandler).observe(textarea, {\n attributes: true,\n attributeFilter: ['style']\n });\n }\n });\n return textarea;\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n var renderContent = function renderContent(instance, params) {\n var htmlContainer = getHtmlContainer();\n if (!htmlContainer) {\n return;\n }\n showWhenInnerHtmlPresent(htmlContainer);\n applyCustomClass(htmlContainer, params, 'htmlContainer');\n\n // Content as HTML\n if (params.html) {\n parseHtmlToContainer(params.html, htmlContainer);\n show(htmlContainer, 'block');\n }\n\n // Content as plain text\n else if (params.text) {\n htmlContainer.textContent = params.text;\n show(htmlContainer, 'block');\n }\n\n // No content\n else {\n hide(htmlContainer);\n }\n renderInput(instance, params);\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n var renderFooter = function renderFooter(instance, params) {\n var footer = getFooter();\n if (!footer) {\n return;\n }\n showWhenInnerHtmlPresent(footer);\n toggle(footer, params.footer, 'block');\n if (params.footer) {\n parseHtmlToContainer(params.footer, footer);\n }\n\n // Custom class\n applyCustomClass(footer, params, 'footer');\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n var renderIcon = function renderIcon(instance, params) {\n var innerParams = privateProps.innerParams.get(instance);\n var icon = getIcon();\n if (!icon) {\n return;\n }\n\n // if the given icon already rendered, apply the styling without re-rendering the icon\n if (innerParams && params.icon === innerParams.icon) {\n // Custom or default content\n setContent(icon, params);\n applyStyles(icon, params);\n return;\n }\n if (!params.icon && !params.iconHtml) {\n hide(icon);\n return;\n }\n if (params.icon && Object.keys(iconTypes).indexOf(params.icon) === -1) {\n error(\"Unknown icon! Expected \\\"success\\\", \\\"error\\\", \\\"warning\\\", \\\"info\\\" or \\\"question\\\", got \\\"\".concat(params.icon, \"\\\"\"));\n hide(icon);\n return;\n }\n show(icon);\n\n // Custom or default content\n setContent(icon, params);\n applyStyles(icon, params);\n\n // Animate icon\n addClass(icon, params.showClass && params.showClass.icon);\n };\n\n /**\n * @param {HTMLElement} icon\n * @param {SweetAlertOptions} params\n */\n var applyStyles = function applyStyles(icon, params) {\n for (var _i = 0, _Object$entries = Object.entries(iconTypes); _i < _Object$entries.length; _i++) {\n var _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2),\n iconType = _Object$entries$_i[0],\n iconClassName = _Object$entries$_i[1];\n if (params.icon !== iconType) {\n removeClass(icon, iconClassName);\n }\n }\n addClass(icon, params.icon && iconTypes[params.icon]);\n\n // Icon color\n setColor(icon, params);\n\n // Success icon background color\n adjustSuccessIconBackgroundColor();\n\n // Custom class\n applyCustomClass(icon, params, 'icon');\n };\n\n // Adjust success icon background color to match the popup background color\n var adjustSuccessIconBackgroundColor = function adjustSuccessIconBackgroundColor() {\n var popup = getPopup();\n if (!popup) {\n return;\n }\n var popupBackgroundColor = window.getComputedStyle(popup).getPropertyValue('background-color');\n /** @type {NodeListOf} */\n var successIconParts = popup.querySelectorAll('[class^=swal2-success-circular-line], .swal2-success-fix');\n for (var i = 0; i < successIconParts.length; i++) {\n successIconParts[i].style.backgroundColor = popupBackgroundColor;\n }\n };\n var successIconHtml = \"\\n \\n \\n \\n \\n\";\n var errorIconHtml = \"\\n \\n \\n \\n \\n\";\n\n /**\n * @param {HTMLElement} icon\n * @param {SweetAlertOptions} params\n */\n var setContent = function setContent(icon, params) {\n if (!params.icon && !params.iconHtml) {\n return;\n }\n var oldContent = icon.innerHTML;\n var newContent = '';\n if (params.iconHtml) {\n newContent = iconContent(params.iconHtml);\n } else if (params.icon === 'success') {\n newContent = successIconHtml;\n oldContent = oldContent.replace(/ style=\".*?\"/g, ''); // undo adjustSuccessIconBackgroundColor()\n } else if (params.icon === 'error') {\n newContent = errorIconHtml;\n } else if (params.icon) {\n var defaultIconHtml = {\n question: '?',\n warning: '!',\n info: 'i'\n };\n newContent = iconContent(defaultIconHtml[params.icon]);\n }\n if (oldContent.trim() !== newContent.trim()) {\n setInnerHtml(icon, newContent);\n }\n };\n\n /**\n * @param {HTMLElement} icon\n * @param {SweetAlertOptions} params\n */\n var setColor = function setColor(icon, params) {\n if (!params.iconColor) {\n return;\n }\n icon.style.color = params.iconColor;\n icon.style.borderColor = params.iconColor;\n for (var _i2 = 0, _arr = ['.swal2-success-line-tip', '.swal2-success-line-long', '.swal2-x-mark-line-left', '.swal2-x-mark-line-right']; _i2 < _arr.length; _i2++) {\n var sel = _arr[_i2];\n setStyle(icon, sel, 'background-color', params.iconColor);\n }\n setStyle(icon, '.swal2-success-ring', 'border-color', params.iconColor);\n };\n\n /**\n * @param {string} content\n * @returns {string}\n */\n var iconContent = function iconContent(content) {\n return \"\").concat(content, \"\");\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n var renderImage = function renderImage(instance, params) {\n var image = getImage();\n if (!image) {\n return;\n }\n if (!params.imageUrl) {\n hide(image);\n return;\n }\n show(image, '');\n\n // Src, alt\n image.setAttribute('src', params.imageUrl);\n image.setAttribute('alt', params.imageAlt || '');\n\n // Width, height\n applyNumericalStyle(image, 'width', params.imageWidth);\n applyNumericalStyle(image, 'height', params.imageHeight);\n\n // Class\n image.className = swalClasses.image;\n applyCustomClass(image, params, 'image');\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n var renderPopup = function renderPopup(instance, params) {\n var container = getContainer();\n var popup = getPopup();\n if (!container || !popup) {\n return;\n }\n\n // Width\n // https://github.com/sweetalert2/sweetalert2/issues/2170\n if (params.toast) {\n applyNumericalStyle(container, 'width', params.width);\n popup.style.width = '100%';\n var loader = getLoader();\n if (loader) {\n popup.insertBefore(loader, getIcon());\n }\n } else {\n applyNumericalStyle(popup, 'width', params.width);\n }\n\n // Padding\n applyNumericalStyle(popup, 'padding', params.padding);\n\n // Color\n if (params.color) {\n popup.style.color = params.color;\n }\n\n // Background\n if (params.background) {\n popup.style.background = params.background;\n }\n hide(getValidationMessage());\n\n // Classes\n addClasses$1(popup, params);\n };\n\n /**\n * @param {HTMLElement} popup\n * @param {SweetAlertOptions} params\n */\n var addClasses$1 = function addClasses(popup, params) {\n var showClass = params.showClass || {};\n // Default Class + showClass when updating Swal.update({})\n popup.className = \"\".concat(swalClasses.popup, \" \").concat(isVisible$1(popup) ? showClass.popup : '');\n if (params.toast) {\n addClass([document.documentElement, document.body], swalClasses['toast-shown']);\n addClass(popup, swalClasses.toast);\n } else {\n addClass(popup, swalClasses.modal);\n }\n\n // Custom class\n applyCustomClass(popup, params, 'popup');\n // TODO: remove in the next major\n if (typeof params.customClass === 'string') {\n addClass(popup, params.customClass);\n }\n\n // Icon class (#1842)\n if (params.icon) {\n addClass(popup, swalClasses[\"icon-\".concat(params.icon)]);\n }\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n var renderProgressSteps = function renderProgressSteps(instance, params) {\n var progressStepsContainer = getProgressSteps();\n if (!progressStepsContainer) {\n return;\n }\n var progressSteps = params.progressSteps,\n currentProgressStep = params.currentProgressStep;\n if (!progressSteps || progressSteps.length === 0 || currentProgressStep === undefined) {\n hide(progressStepsContainer);\n return;\n }\n show(progressStepsContainer);\n progressStepsContainer.textContent = '';\n if (currentProgressStep >= progressSteps.length) {\n warn('Invalid currentProgressStep parameter, it should be less than progressSteps.length ' + '(currentProgressStep like JS arrays starts from 0)');\n }\n progressSteps.forEach(function (step, index) {\n var stepEl = createStepElement(step);\n progressStepsContainer.appendChild(stepEl);\n if (index === currentProgressStep) {\n addClass(stepEl, swalClasses['active-progress-step']);\n }\n if (index !== progressSteps.length - 1) {\n var lineEl = createLineElement(params);\n progressStepsContainer.appendChild(lineEl);\n }\n });\n };\n\n /**\n * @param {string} step\n * @returns {HTMLLIElement}\n */\n var createStepElement = function createStepElement(step) {\n var stepEl = document.createElement('li');\n addClass(stepEl, swalClasses['progress-step']);\n setInnerHtml(stepEl, step);\n return stepEl;\n };\n\n /**\n * @param {SweetAlertOptions} params\n * @returns {HTMLLIElement}\n */\n var createLineElement = function createLineElement(params) {\n var lineEl = document.createElement('li');\n addClass(lineEl, swalClasses['progress-step-line']);\n if (params.progressStepsDistance) {\n applyNumericalStyle(lineEl, 'width', params.progressStepsDistance);\n }\n return lineEl;\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n var renderTitle = function renderTitle(instance, params) {\n var title = getTitle();\n if (!title) {\n return;\n }\n showWhenInnerHtmlPresent(title);\n toggle(title, params.title || params.titleText, 'block');\n if (params.title) {\n parseHtmlToContainer(params.title, title);\n }\n if (params.titleText) {\n title.innerText = params.titleText;\n }\n\n // Custom class\n applyCustomClass(title, params, 'title');\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n var render = function render(instance, params) {\n renderPopup(instance, params);\n renderContainer(instance, params);\n renderProgressSteps(instance, params);\n renderIcon(instance, params);\n renderImage(instance, params);\n renderTitle(instance, params);\n renderCloseButton(instance, params);\n renderContent(instance, params);\n renderActions(instance, params);\n renderFooter(instance, params);\n var popup = getPopup();\n if (typeof params.didRender === 'function' && popup) {\n params.didRender(popup);\n }\n };\n\n /*\n * Global function to determine if SweetAlert2 popup is shown\n */\n var isVisible = function isVisible() {\n return isVisible$1(getPopup());\n };\n\n /*\n * Global function to click 'Confirm' button\n */\n var clickConfirm = function clickConfirm() {\n var _dom$getConfirmButton;\n return (_dom$getConfirmButton = getConfirmButton()) === null || _dom$getConfirmButton === void 0 ? void 0 : _dom$getConfirmButton.click();\n };\n\n /*\n * Global function to click 'Deny' button\n */\n var clickDeny = function clickDeny() {\n var _dom$getDenyButton;\n return (_dom$getDenyButton = getDenyButton()) === null || _dom$getDenyButton === void 0 ? void 0 : _dom$getDenyButton.click();\n };\n\n /*\n * Global function to click 'Cancel' button\n */\n var clickCancel = function clickCancel() {\n var _dom$getCancelButton;\n return (_dom$getCancelButton = getCancelButton()) === null || _dom$getCancelButton === void 0 ? void 0 : _dom$getCancelButton.click();\n };\n\n /** @typedef {'cancel' | 'backdrop' | 'close' | 'esc' | 'timer'} DismissReason */\n\n /** @type {Record} */\n var DismissReason = Object.freeze({\n cancel: 'cancel',\n backdrop: 'backdrop',\n close: 'close',\n esc: 'esc',\n timer: 'timer'\n });\n\n /**\n * @param {GlobalState} globalState\n */\n var removeKeydownHandler = function removeKeydownHandler(globalState) {\n if (globalState.keydownTarget && globalState.keydownHandlerAdded) {\n globalState.keydownTarget.removeEventListener('keydown', globalState.keydownHandler, {\n capture: globalState.keydownListenerCapture\n });\n globalState.keydownHandlerAdded = false;\n }\n };\n\n /**\n * @param {GlobalState} globalState\n * @param {SweetAlertOptions} innerParams\n * @param {*} dismissWith\n */\n var addKeydownHandler = function addKeydownHandler(globalState, innerParams, dismissWith) {\n removeKeydownHandler(globalState);\n if (!innerParams.toast) {\n globalState.keydownHandler = function (e) {\n return keydownHandler(innerParams, e, dismissWith);\n };\n globalState.keydownTarget = innerParams.keydownListenerCapture ? window : getPopup();\n globalState.keydownListenerCapture = innerParams.keydownListenerCapture;\n globalState.keydownTarget.addEventListener('keydown', globalState.keydownHandler, {\n capture: globalState.keydownListenerCapture\n });\n globalState.keydownHandlerAdded = true;\n }\n };\n\n /**\n * @param {number} index\n * @param {number} increment\n */\n var setFocus = function setFocus(index, increment) {\n var _dom$getPopup;\n var focusableElements = getFocusableElements();\n // search for visible elements and select the next possible match\n if (focusableElements.length) {\n index = index + increment;\n\n // rollover to first item\n if (index === focusableElements.length) {\n index = 0;\n\n // go to last item\n } else if (index === -1) {\n index = focusableElements.length - 1;\n }\n focusableElements[index].focus();\n return;\n }\n // no visible focusable elements, focus the popup\n (_dom$getPopup = getPopup()) === null || _dom$getPopup === void 0 || _dom$getPopup.focus();\n };\n var arrowKeysNextButton = ['ArrowRight', 'ArrowDown'];\n var arrowKeysPreviousButton = ['ArrowLeft', 'ArrowUp'];\n\n /**\n * @param {SweetAlertOptions} innerParams\n * @param {KeyboardEvent} event\n * @param {Function} dismissWith\n */\n var keydownHandler = function keydownHandler(innerParams, event, dismissWith) {\n if (!innerParams) {\n return; // This instance has already been destroyed\n }\n\n // Ignore keydown during IME composition\n // https://developer.mozilla.org/en-US/docs/Web/API/Document/keydown_event#ignoring_keydown_during_ime_composition\n // https://github.com/sweetalert2/sweetalert2/issues/720\n // https://github.com/sweetalert2/sweetalert2/issues/2406\n if (event.isComposing || event.keyCode === 229) {\n return;\n }\n if (innerParams.stopKeydownPropagation) {\n event.stopPropagation();\n }\n\n // ENTER\n if (event.key === 'Enter') {\n handleEnter(event, innerParams);\n }\n\n // TAB\n else if (event.key === 'Tab') {\n handleTab(event);\n }\n\n // ARROWS - switch focus between buttons\n else if ([].concat(arrowKeysNextButton, arrowKeysPreviousButton).includes(event.key)) {\n handleArrows(event.key);\n }\n\n // ESC\n else if (event.key === 'Escape') {\n handleEsc(event, innerParams, dismissWith);\n }\n };\n\n /**\n * @param {KeyboardEvent} event\n * @param {SweetAlertOptions} innerParams\n */\n var handleEnter = function handleEnter(event, innerParams) {\n // https://github.com/sweetalert2/sweetalert2/issues/2386\n if (!callIfFunction(innerParams.allowEnterKey)) {\n return;\n }\n var input = getInput$1(getPopup(), innerParams.input);\n if (event.target && input && event.target instanceof HTMLElement && event.target.outerHTML === input.outerHTML) {\n if (['textarea', 'file'].includes(innerParams.input)) {\n return; // do not submit\n }\n clickConfirm();\n event.preventDefault();\n }\n };\n\n /**\n * @param {KeyboardEvent} event\n */\n var handleTab = function handleTab(event) {\n var targetElement = event.target;\n var focusableElements = getFocusableElements();\n var btnIndex = -1;\n for (var i = 0; i < focusableElements.length; i++) {\n if (targetElement === focusableElements[i]) {\n btnIndex = i;\n break;\n }\n }\n\n // Cycle to the next button\n if (!event.shiftKey) {\n setFocus(btnIndex, 1);\n }\n\n // Cycle to the prev button\n else {\n setFocus(btnIndex, -1);\n }\n event.stopPropagation();\n event.preventDefault();\n };\n\n /**\n * @param {string} key\n */\n var handleArrows = function handleArrows(key) {\n var actions = getActions();\n var confirmButton = getConfirmButton();\n var denyButton = getDenyButton();\n var cancelButton = getCancelButton();\n if (!actions || !confirmButton || !denyButton || !cancelButton) {\n return;\n }\n /** @type HTMLElement[] */\n var buttons = [confirmButton, denyButton, cancelButton];\n if (document.activeElement instanceof HTMLElement && !buttons.includes(document.activeElement)) {\n return;\n }\n var sibling = arrowKeysNextButton.includes(key) ? 'nextElementSibling' : 'previousElementSibling';\n var buttonToFocus = document.activeElement;\n if (!buttonToFocus) {\n return;\n }\n for (var i = 0; i < actions.children.length; i++) {\n buttonToFocus = buttonToFocus[sibling];\n if (!buttonToFocus) {\n return;\n }\n if (buttonToFocus instanceof HTMLButtonElement && isVisible$1(buttonToFocus)) {\n break;\n }\n }\n if (buttonToFocus instanceof HTMLButtonElement) {\n buttonToFocus.focus();\n }\n };\n\n /**\n * @param {KeyboardEvent} event\n * @param {SweetAlertOptions} innerParams\n * @param {Function} dismissWith\n */\n var handleEsc = function handleEsc(event, innerParams, dismissWith) {\n if (callIfFunction(innerParams.allowEscapeKey)) {\n event.preventDefault();\n dismissWith(DismissReason.esc);\n }\n };\n\n /**\n * This module contains `WeakMap`s for each effectively-\"private property\" that a `Swal` has.\n * For example, to set the private property \"foo\" of `this` to \"bar\", you can `privateProps.foo.set(this, 'bar')`\n * This is the approach that Babel will probably take to implement private methods/fields\n * https://github.com/tc39/proposal-private-methods\n * https://github.com/babel/babel/pull/7555\n * Once we have the changes from that PR in Babel, and our core class fits reasonable in *one module*\n * then we can use that language feature.\n */\n\n var privateMethods = {\n swalPromiseResolve: new WeakMap(),\n swalPromiseReject: new WeakMap()\n };\n\n // From https://developer.paciellogroup.com/blog/2018/06/the-current-state-of-modal-dialog-accessibility/\n // Adding aria-hidden=\"true\" to elements outside of the active modal dialog ensures that\n // elements not within the active modal dialog will not be surfaced if a user opens a screen\n // reader’s list of elements (headings, form controls, landmarks, etc.) in the document.\n\n var setAriaHidden = function setAriaHidden() {\n var container = getContainer();\n var bodyChildren = Array.from(document.body.children);\n bodyChildren.forEach(function (el) {\n if (el.contains(container)) {\n return;\n }\n if (el.hasAttribute('aria-hidden')) {\n el.setAttribute('data-previous-aria-hidden', el.getAttribute('aria-hidden') || '');\n }\n el.setAttribute('aria-hidden', 'true');\n });\n };\n var unsetAriaHidden = function unsetAriaHidden() {\n var bodyChildren = Array.from(document.body.children);\n bodyChildren.forEach(function (el) {\n if (el.hasAttribute('data-previous-aria-hidden')) {\n el.setAttribute('aria-hidden', el.getAttribute('data-previous-aria-hidden') || '');\n el.removeAttribute('data-previous-aria-hidden');\n } else {\n el.removeAttribute('aria-hidden');\n }\n });\n };\n\n // @ts-ignore\n var isSafariOrIOS = typeof window !== 'undefined' && !!window.GestureEvent; // true for Safari desktop + all iOS browsers https://stackoverflow.com/a/70585394\n\n /**\n * Fix iOS scrolling\n * http://stackoverflow.com/q/39626302\n */\n var iOSfix = function iOSfix() {\n if (isSafariOrIOS && !hasClass(document.body, swalClasses.iosfix)) {\n var offset = document.body.scrollTop;\n document.body.style.top = \"\".concat(offset * -1, \"px\");\n addClass(document.body, swalClasses.iosfix);\n lockBodyScroll();\n }\n };\n\n /**\n * https://github.com/sweetalert2/sweetalert2/issues/1246\n */\n var lockBodyScroll = function lockBodyScroll() {\n var container = getContainer();\n if (!container) {\n return;\n }\n /** @type {boolean} */\n var preventTouchMove;\n /**\n * @param {TouchEvent} event\n */\n container.ontouchstart = function (event) {\n preventTouchMove = shouldPreventTouchMove(event);\n };\n /**\n * @param {TouchEvent} event\n */\n container.ontouchmove = function (event) {\n if (preventTouchMove) {\n event.preventDefault();\n event.stopPropagation();\n }\n };\n };\n\n /**\n * @param {TouchEvent} event\n * @returns {boolean}\n */\n var shouldPreventTouchMove = function shouldPreventTouchMove(event) {\n var target = event.target;\n var container = getContainer();\n var htmlContainer = getHtmlContainer();\n if (!container || !htmlContainer) {\n return false;\n }\n if (isStylus(event) || isZoom(event)) {\n return false;\n }\n if (target === container) {\n return true;\n }\n if (!isScrollable(container) && target instanceof HTMLElement && target.tagName !== 'INPUT' &&\n // #1603\n target.tagName !== 'TEXTAREA' &&\n // #2266\n !(isScrollable(htmlContainer) &&\n // #1944\n htmlContainer.contains(target))) {\n return true;\n }\n return false;\n };\n\n /**\n * https://github.com/sweetalert2/sweetalert2/issues/1786\n *\n * @param {*} event\n * @returns {boolean}\n */\n var isStylus = function isStylus(event) {\n return event.touches && event.touches.length && event.touches[0].touchType === 'stylus';\n };\n\n /**\n * https://github.com/sweetalert2/sweetalert2/issues/1891\n *\n * @param {TouchEvent} event\n * @returns {boolean}\n */\n var isZoom = function isZoom(event) {\n return event.touches && event.touches.length > 1;\n };\n var undoIOSfix = function undoIOSfix() {\n if (hasClass(document.body, swalClasses.iosfix)) {\n var offset = parseInt(document.body.style.top, 10);\n removeClass(document.body, swalClasses.iosfix);\n document.body.style.top = '';\n document.body.scrollTop = offset * -1;\n }\n };\n\n /**\n * Measure scrollbar width for padding body during modal show/hide\n * https://github.com/twbs/bootstrap/blob/master/js/src/modal.js\n *\n * @returns {number}\n */\n var measureScrollbar = function measureScrollbar() {\n var scrollDiv = document.createElement('div');\n scrollDiv.className = swalClasses['scrollbar-measure'];\n document.body.appendChild(scrollDiv);\n var scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;\n document.body.removeChild(scrollDiv);\n return scrollbarWidth;\n };\n\n /**\n * Remember state in cases where opening and handling a modal will fiddle with it.\n * @type {number | null}\n */\n var previousBodyPadding = null;\n\n /**\n * @param {string} initialBodyOverflow\n */\n var replaceScrollbarWithPadding = function replaceScrollbarWithPadding(initialBodyOverflow) {\n // for queues, do not do this more than once\n if (previousBodyPadding !== null) {\n return;\n }\n // if the body has overflow\n if (document.body.scrollHeight > window.innerHeight || initialBodyOverflow === 'scroll' // https://github.com/sweetalert2/sweetalert2/issues/2663\n ) {\n // add padding so the content doesn't shift after removal of scrollbar\n previousBodyPadding = parseInt(window.getComputedStyle(document.body).getPropertyValue('padding-right'));\n document.body.style.paddingRight = \"\".concat(previousBodyPadding + measureScrollbar(), \"px\");\n }\n };\n var undoReplaceScrollbarWithPadding = function undoReplaceScrollbarWithPadding() {\n if (previousBodyPadding !== null) {\n document.body.style.paddingRight = \"\".concat(previousBodyPadding, \"px\");\n previousBodyPadding = null;\n }\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {HTMLElement} container\n * @param {boolean} returnFocus\n * @param {Function} didClose\n */\n function removePopupAndResetState(instance, container, returnFocus, didClose) {\n if (isToast()) {\n triggerDidCloseAndDispose(instance, didClose);\n } else {\n restoreActiveElement(returnFocus).then(function () {\n return triggerDidCloseAndDispose(instance, didClose);\n });\n removeKeydownHandler(globalState);\n }\n\n // workaround for https://github.com/sweetalert2/sweetalert2/issues/2088\n // for some reason removing the container in Safari will scroll the document to bottom\n if (isSafariOrIOS) {\n container.setAttribute('style', 'display:none !important');\n container.removeAttribute('class');\n container.innerHTML = '';\n } else {\n container.remove();\n }\n if (isModal()) {\n undoReplaceScrollbarWithPadding();\n undoIOSfix();\n unsetAriaHidden();\n }\n removeBodyClasses();\n }\n\n /**\n * Remove SweetAlert2 classes from body\n */\n function removeBodyClasses() {\n removeClass([document.documentElement, document.body], [swalClasses.shown, swalClasses['height-auto'], swalClasses['no-backdrop'], swalClasses['toast-shown']]);\n }\n\n /**\n * Instance method to close sweetAlert\n *\n * @param {any} resolveValue\n */\n function close(resolveValue) {\n resolveValue = prepareResolveValue(resolveValue);\n var swalPromiseResolve = privateMethods.swalPromiseResolve.get(this);\n var didClose = triggerClosePopup(this);\n if (this.isAwaitingPromise) {\n // A swal awaiting for a promise (after a click on Confirm or Deny) cannot be dismissed anymore #2335\n if (!resolveValue.isDismissed) {\n handleAwaitingPromise(this);\n swalPromiseResolve(resolveValue);\n }\n } else if (didClose) {\n // Resolve Swal promise\n swalPromiseResolve(resolveValue);\n }\n }\n var triggerClosePopup = function triggerClosePopup(instance) {\n var popup = getPopup();\n if (!popup) {\n return false;\n }\n var innerParams = privateProps.innerParams.get(instance);\n if (!innerParams || hasClass(popup, innerParams.hideClass.popup)) {\n return false;\n }\n removeClass(popup, innerParams.showClass.popup);\n addClass(popup, innerParams.hideClass.popup);\n var backdrop = getContainer();\n removeClass(backdrop, innerParams.showClass.backdrop);\n addClass(backdrop, innerParams.hideClass.backdrop);\n handlePopupAnimation(instance, popup, innerParams);\n return true;\n };\n\n /**\n * @param {any} error\n */\n function rejectPromise(error) {\n var rejectPromise = privateMethods.swalPromiseReject.get(this);\n handleAwaitingPromise(this);\n if (rejectPromise) {\n // Reject Swal promise\n rejectPromise(error);\n }\n }\n\n /**\n * @param {SweetAlert} instance\n */\n var handleAwaitingPromise = function handleAwaitingPromise(instance) {\n if (instance.isAwaitingPromise) {\n delete instance.isAwaitingPromise;\n // The instance might have been previously partly destroyed, we must resume the destroy process in this case #2335\n if (!privateProps.innerParams.get(instance)) {\n instance._destroy();\n }\n }\n };\n\n /**\n * @param {any} resolveValue\n * @returns {SweetAlertResult}\n */\n var prepareResolveValue = function prepareResolveValue(resolveValue) {\n // When user calls Swal.close()\n if (typeof resolveValue === 'undefined') {\n return {\n isConfirmed: false,\n isDenied: false,\n isDismissed: true\n };\n }\n return Object.assign({\n isConfirmed: false,\n isDenied: false,\n isDismissed: false\n }, resolveValue);\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {HTMLElement} popup\n * @param {SweetAlertOptions} innerParams\n */\n var handlePopupAnimation = function handlePopupAnimation(instance, popup, innerParams) {\n var container = getContainer();\n // If animation is supported, animate\n var animationIsSupported = animationEndEvent && hasCssAnimation(popup);\n if (typeof innerParams.willClose === 'function') {\n innerParams.willClose(popup);\n }\n if (animationIsSupported) {\n animatePopup(instance, popup, container, innerParams.returnFocus, innerParams.didClose);\n } else {\n // Otherwise, remove immediately\n removePopupAndResetState(instance, container, innerParams.returnFocus, innerParams.didClose);\n }\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {HTMLElement} popup\n * @param {HTMLElement} container\n * @param {boolean} returnFocus\n * @param {Function} didClose\n */\n var animatePopup = function animatePopup(instance, popup, container, returnFocus, didClose) {\n if (!animationEndEvent) {\n return;\n }\n globalState.swalCloseEventFinishedCallback = removePopupAndResetState.bind(null, instance, container, returnFocus, didClose);\n popup.addEventListener(animationEndEvent, function (e) {\n if (e.target === popup) {\n globalState.swalCloseEventFinishedCallback();\n delete globalState.swalCloseEventFinishedCallback;\n }\n });\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {Function} didClose\n */\n var triggerDidCloseAndDispose = function triggerDidCloseAndDispose(instance, didClose) {\n setTimeout(function () {\n if (typeof didClose === 'function') {\n didClose.bind(instance.params)();\n }\n // instance might have been destroyed already\n if (instance._destroy) {\n instance._destroy();\n }\n });\n };\n\n /**\n * Shows loader (spinner), this is useful with AJAX requests.\n * By default the loader be shown instead of the \"Confirm\" button.\n *\n * @param {HTMLButtonElement | null} [buttonToReplace]\n */\n var showLoading = function showLoading(buttonToReplace) {\n var popup = getPopup();\n if (!popup) {\n new Swal();\n }\n popup = getPopup();\n if (!popup) {\n return;\n }\n var loader = getLoader();\n if (isToast()) {\n hide(getIcon());\n } else {\n replaceButton(popup, buttonToReplace);\n }\n show(loader);\n popup.setAttribute('data-loading', 'true');\n popup.setAttribute('aria-busy', 'true');\n popup.focus();\n };\n\n /**\n * @param {HTMLElement} popup\n * @param {HTMLButtonElement | null} [buttonToReplace]\n */\n var replaceButton = function replaceButton(popup, buttonToReplace) {\n var actions = getActions();\n var loader = getLoader();\n if (!actions || !loader) {\n return;\n }\n if (!buttonToReplace && isVisible$1(getConfirmButton())) {\n buttonToReplace = getConfirmButton();\n }\n show(actions);\n if (buttonToReplace) {\n hide(buttonToReplace);\n loader.setAttribute('data-button-to-replace', buttonToReplace.className);\n actions.insertBefore(loader, buttonToReplace);\n }\n addClass([popup, actions], swalClasses.loading);\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n var handleInputOptionsAndValue = function handleInputOptionsAndValue(instance, params) {\n if (params.input === 'select' || params.input === 'radio') {\n handleInputOptions(instance, params);\n } else if (['text', 'email', 'number', 'tel', 'textarea'].some(function (i) {\n return i === params.input;\n }) && (hasToPromiseFn(params.inputValue) || isPromise(params.inputValue))) {\n showLoading(getConfirmButton());\n handleInputValue(instance, params);\n }\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} innerParams\n * @returns {SweetAlertInputValue}\n */\n var getInputValue = function getInputValue(instance, innerParams) {\n var input = instance.getInput();\n if (!input) {\n return null;\n }\n switch (innerParams.input) {\n case 'checkbox':\n return getCheckboxValue(input);\n case 'radio':\n return getRadioValue(input);\n case 'file':\n return getFileValue(input);\n default:\n return innerParams.inputAutoTrim ? input.value.trim() : input.value;\n }\n };\n\n /**\n * @param {HTMLInputElement} input\n * @returns {number}\n */\n var getCheckboxValue = function getCheckboxValue(input) {\n return input.checked ? 1 : 0;\n };\n\n /**\n * @param {HTMLInputElement} input\n * @returns {string | null}\n */\n var getRadioValue = function getRadioValue(input) {\n return input.checked ? input.value : null;\n };\n\n /**\n * @param {HTMLInputElement} input\n * @returns {FileList | File | null}\n */\n var getFileValue = function getFileValue(input) {\n return input.files && input.files.length ? input.getAttribute('multiple') !== null ? input.files : input.files[0] : null;\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n var handleInputOptions = function handleInputOptions(instance, params) {\n var popup = getPopup();\n if (!popup) {\n return;\n }\n /**\n * @param {Record} inputOptions\n */\n var processInputOptions = function processInputOptions(inputOptions) {\n if (params.input === 'select') {\n populateSelectOptions(popup, _formatInputOptions(inputOptions), params);\n } else if (params.input === 'radio') {\n populateRadioOptions(popup, _formatInputOptions(inputOptions), params);\n }\n };\n if (hasToPromiseFn(params.inputOptions) || isPromise(params.inputOptions)) {\n showLoading(getConfirmButton());\n asPromise(params.inputOptions).then(function (inputOptions) {\n instance.hideLoading();\n processInputOptions(inputOptions);\n });\n } else if (_typeof(params.inputOptions) === 'object') {\n processInputOptions(params.inputOptions);\n } else {\n error(\"Unexpected type of inputOptions! Expected object, Map or Promise, got \".concat(_typeof(params.inputOptions)));\n }\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n var handleInputValue = function handleInputValue(instance, params) {\n var input = instance.getInput();\n if (!input) {\n return;\n }\n hide(input);\n asPromise(params.inputValue).then(function (inputValue) {\n input.value = params.input === 'number' ? \"\".concat(parseFloat(inputValue) || 0) : \"\".concat(inputValue);\n show(input);\n input.focus();\n instance.hideLoading();\n })[\"catch\"](function (err) {\n error(\"Error in inputValue promise: \".concat(err));\n input.value = '';\n show(input);\n input.focus();\n instance.hideLoading();\n });\n };\n\n /**\n * @param {HTMLElement} popup\n * @param {InputOptionFlattened[]} inputOptions\n * @param {SweetAlertOptions} params\n */\n function populateSelectOptions(popup, inputOptions, params) {\n var select = getDirectChildByClass(popup, swalClasses.select);\n if (!select) {\n return;\n }\n /**\n * @param {HTMLElement} parent\n * @param {string} optionLabel\n * @param {string} optionValue\n */\n var renderOption = function renderOption(parent, optionLabel, optionValue) {\n var option = document.createElement('option');\n option.value = optionValue;\n setInnerHtml(option, optionLabel);\n option.selected = isSelected(optionValue, params.inputValue);\n parent.appendChild(option);\n };\n inputOptions.forEach(function (inputOption) {\n var optionValue = inputOption[0];\n var optionLabel = inputOption[1];\n // spec:\n // https://www.w3.org/TR/html401/interact/forms.html#h-17.6\n // \"...all OPTGROUP elements must be specified directly within a SELECT element (i.e., groups may not be nested)...\"\n // check whether this is a \n if (Array.isArray(optionLabel)) {\n // if it is an array, then it is an \n var optgroup = document.createElement('optgroup');\n optgroup.label = optionValue;\n optgroup.disabled = false; // not configurable for now\n select.appendChild(optgroup);\n optionLabel.forEach(function (o) {\n return renderOption(optgroup, o[1], o[0]);\n });\n } else {\n // case of \n renderOption(select, optionLabel, optionValue);\n }\n });\n select.focus();\n }\n\n /**\n * @param {HTMLElement} popup\n * @param {InputOptionFlattened[]} inputOptions\n * @param {SweetAlertOptions} params\n */\n function populateRadioOptions(popup, inputOptions, params) {\n var radio = getDirectChildByClass(popup, swalClasses.radio);\n if (!radio) {\n return;\n }\n inputOptions.forEach(function (inputOption) {\n var radioValue = inputOption[0];\n var radioLabel = inputOption[1];\n var radioInput = document.createElement('input');\n var radioLabelElement = document.createElement('label');\n radioInput.type = 'radio';\n radioInput.name = swalClasses.radio;\n radioInput.value = radioValue;\n if (isSelected(radioValue, params.inputValue)) {\n radioInput.checked = true;\n }\n var label = document.createElement('span');\n setInnerHtml(label, radioLabel);\n label.className = swalClasses.label;\n radioLabelElement.appendChild(radioInput);\n radioLabelElement.appendChild(label);\n radio.appendChild(radioLabelElement);\n });\n var radios = radio.querySelectorAll('input');\n if (radios.length) {\n radios[0].focus();\n }\n }\n\n /**\n * Converts `inputOptions` into an array of `[value, label]`s\n *\n * @param {Record} inputOptions\n * @typedef {string[]} InputOptionFlattened\n * @returns {InputOptionFlattened[]}\n */\n var _formatInputOptions = function formatInputOptions(inputOptions) {\n /** @type {InputOptionFlattened[]} */\n var result = [];\n if (inputOptions instanceof Map) {\n inputOptions.forEach(function (value, key) {\n var valueFormatted = value;\n if (_typeof(valueFormatted) === 'object') {\n // case of \n valueFormatted = _formatInputOptions(valueFormatted);\n }\n result.push([key, valueFormatted]);\n });\n } else {\n Object.keys(inputOptions).forEach(function (key) {\n var valueFormatted = inputOptions[key];\n if (_typeof(valueFormatted) === 'object') {\n // case of \n valueFormatted = _formatInputOptions(valueFormatted);\n }\n result.push([key, valueFormatted]);\n });\n }\n return result;\n };\n\n /**\n * @param {string} optionValue\n * @param {SweetAlertInputValue} inputValue\n * @returns {boolean}\n */\n var isSelected = function isSelected(optionValue, inputValue) {\n return !!inputValue && inputValue.toString() === optionValue.toString();\n };\n\n var _this = undefined;\n\n /**\n * @param {SweetAlert} instance\n */\n var handleConfirmButtonClick = function handleConfirmButtonClick(instance) {\n var innerParams = privateProps.innerParams.get(instance);\n instance.disableButtons();\n if (innerParams.input) {\n handleConfirmOrDenyWithInput(instance, 'confirm');\n } else {\n confirm(instance, true);\n }\n };\n\n /**\n * @param {SweetAlert} instance\n */\n var handleDenyButtonClick = function handleDenyButtonClick(instance) {\n var innerParams = privateProps.innerParams.get(instance);\n instance.disableButtons();\n if (innerParams.returnInputValueOnDeny) {\n handleConfirmOrDenyWithInput(instance, 'deny');\n } else {\n deny(instance, false);\n }\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {Function} dismissWith\n */\n var handleCancelButtonClick = function handleCancelButtonClick(instance, dismissWith) {\n instance.disableButtons();\n dismissWith(DismissReason.cancel);\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {'confirm' | 'deny'} type\n */\n var handleConfirmOrDenyWithInput = function handleConfirmOrDenyWithInput(instance, type) {\n var innerParams = privateProps.innerParams.get(instance);\n if (!innerParams.input) {\n error(\"The \\\"input\\\" parameter is needed to be set when using returnInputValueOn\".concat(capitalizeFirstLetter(type)));\n return;\n }\n var input = instance.getInput();\n var inputValue = getInputValue(instance, innerParams);\n if (innerParams.inputValidator) {\n handleInputValidator(instance, inputValue, type);\n } else if (input && !input.checkValidity()) {\n instance.enableButtons();\n instance.showValidationMessage(innerParams.validationMessage || input.validationMessage);\n } else if (type === 'deny') {\n deny(instance, inputValue);\n } else {\n confirm(instance, inputValue);\n }\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertInputValue} inputValue\n * @param {'confirm' | 'deny'} type\n */\n var handleInputValidator = function handleInputValidator(instance, inputValue, type) {\n var innerParams = privateProps.innerParams.get(instance);\n instance.disableInput();\n var validationPromise = Promise.resolve().then(function () {\n return asPromise(innerParams.inputValidator(inputValue, innerParams.validationMessage));\n });\n validationPromise.then(function (validationMessage) {\n instance.enableButtons();\n instance.enableInput();\n if (validationMessage) {\n instance.showValidationMessage(validationMessage);\n } else if (type === 'deny') {\n deny(instance, inputValue);\n } else {\n confirm(instance, inputValue);\n }\n });\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {any} value\n */\n var deny = function deny(instance, value) {\n var innerParams = privateProps.innerParams.get(instance || _this);\n if (innerParams.showLoaderOnDeny) {\n showLoading(getDenyButton());\n }\n if (innerParams.preDeny) {\n instance.isAwaitingPromise = true; // Flagging the instance as awaiting a promise so it's own promise's reject/resolve methods doesn't get destroyed until the result from this preDeny's promise is received\n var preDenyPromise = Promise.resolve().then(function () {\n return asPromise(innerParams.preDeny(value, innerParams.validationMessage));\n });\n preDenyPromise.then(function (preDenyValue) {\n if (preDenyValue === false) {\n instance.hideLoading();\n handleAwaitingPromise(instance);\n } else {\n instance.close({\n isDenied: true,\n value: typeof preDenyValue === 'undefined' ? value : preDenyValue\n });\n }\n })[\"catch\"](function (error) {\n return rejectWith(instance || _this, error);\n });\n } else {\n instance.close({\n isDenied: true,\n value: value\n });\n }\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {any} value\n */\n var succeedWith = function succeedWith(instance, value) {\n instance.close({\n isConfirmed: true,\n value: value\n });\n };\n\n /**\n *\n * @param {SweetAlert} instance\n * @param {string} error\n */\n var rejectWith = function rejectWith(instance, error) {\n instance.rejectPromise(error);\n };\n\n /**\n *\n * @param {SweetAlert} instance\n * @param {any} value\n */\n var confirm = function confirm(instance, value) {\n var innerParams = privateProps.innerParams.get(instance || _this);\n if (innerParams.showLoaderOnConfirm) {\n showLoading();\n }\n if (innerParams.preConfirm) {\n instance.resetValidationMessage();\n instance.isAwaitingPromise = true; // Flagging the instance as awaiting a promise so it's own promise's reject/resolve methods doesn't get destroyed until the result from this preConfirm's promise is received\n var preConfirmPromise = Promise.resolve().then(function () {\n return asPromise(innerParams.preConfirm(value, innerParams.validationMessage));\n });\n preConfirmPromise.then(function (preConfirmValue) {\n if (isVisible$1(getValidationMessage()) || preConfirmValue === false) {\n instance.hideLoading();\n handleAwaitingPromise(instance);\n } else {\n succeedWith(instance, typeof preConfirmValue === 'undefined' ? value : preConfirmValue);\n }\n })[\"catch\"](function (error) {\n return rejectWith(instance || _this, error);\n });\n } else {\n succeedWith(instance, value);\n }\n };\n\n /**\n * Hides loader and shows back the button which was hidden by .showLoading()\n */\n function hideLoading() {\n // do nothing if popup is closed\n var innerParams = privateProps.innerParams.get(this);\n if (!innerParams) {\n return;\n }\n var domCache = privateProps.domCache.get(this);\n hide(domCache.loader);\n if (isToast()) {\n if (innerParams.icon) {\n show(getIcon());\n }\n } else {\n showRelatedButton(domCache);\n }\n removeClass([domCache.popup, domCache.actions], swalClasses.loading);\n domCache.popup.removeAttribute('aria-busy');\n domCache.popup.removeAttribute('data-loading');\n domCache.confirmButton.disabled = false;\n domCache.denyButton.disabled = false;\n domCache.cancelButton.disabled = false;\n }\n var showRelatedButton = function showRelatedButton(domCache) {\n var buttonToReplace = domCache.popup.getElementsByClassName(domCache.loader.getAttribute('data-button-to-replace'));\n if (buttonToReplace.length) {\n show(buttonToReplace[0], 'inline-block');\n } else if (allButtonsAreHidden()) {\n hide(domCache.actions);\n }\n };\n\n /**\n * Gets the input DOM node, this method works with input parameter.\n *\n * @returns {HTMLInputElement | null}\n */\n function getInput() {\n var innerParams = privateProps.innerParams.get(this);\n var domCache = privateProps.domCache.get(this);\n if (!domCache) {\n return null;\n }\n return getInput$1(domCache.popup, innerParams.input);\n }\n\n /**\n * @param {SweetAlert} instance\n * @param {string[]} buttons\n * @param {boolean} disabled\n */\n function setButtonsDisabled(instance, buttons, disabled) {\n var domCache = privateProps.domCache.get(instance);\n buttons.forEach(function (button) {\n domCache[button].disabled = disabled;\n });\n }\n\n /**\n * @param {HTMLInputElement | null} input\n * @param {boolean} disabled\n */\n function setInputDisabled(input, disabled) {\n var popup = getPopup();\n if (!popup || !input) {\n return;\n }\n if (input.type === 'radio') {\n /** @type {NodeListOf} */\n var radios = popup.querySelectorAll(\"[name=\\\"\".concat(swalClasses.radio, \"\\\"]\"));\n for (var i = 0; i < radios.length; i++) {\n radios[i].disabled = disabled;\n }\n } else {\n input.disabled = disabled;\n }\n }\n\n /**\n * Enable all the buttons\n * @this {SweetAlert}\n */\n function enableButtons() {\n setButtonsDisabled(this, ['confirmButton', 'denyButton', 'cancelButton'], false);\n }\n\n /**\n * Disable all the buttons\n * @this {SweetAlert}\n */\n function disableButtons() {\n setButtonsDisabled(this, ['confirmButton', 'denyButton', 'cancelButton'], true);\n }\n\n /**\n * Enable the input field\n * @this {SweetAlert}\n */\n function enableInput() {\n setInputDisabled(this.getInput(), false);\n }\n\n /**\n * Disable the input field\n * @this {SweetAlert}\n */\n function disableInput() {\n setInputDisabled(this.getInput(), true);\n }\n\n /**\n * Show block with validation message\n *\n * @param {string} error\n * @this {SweetAlert}\n */\n function showValidationMessage(error) {\n var domCache = privateProps.domCache.get(this);\n var params = privateProps.innerParams.get(this);\n setInnerHtml(domCache.validationMessage, error);\n domCache.validationMessage.className = swalClasses['validation-message'];\n if (params.customClass && params.customClass.validationMessage) {\n addClass(domCache.validationMessage, params.customClass.validationMessage);\n }\n show(domCache.validationMessage);\n var input = this.getInput();\n if (input) {\n input.setAttribute('aria-invalid', 'true');\n input.setAttribute('aria-describedby', swalClasses['validation-message']);\n focusInput(input);\n addClass(input, swalClasses.inputerror);\n }\n }\n\n /**\n * Hide block with validation message\n *\n * @this {SweetAlert}\n */\n function resetValidationMessage() {\n var domCache = privateProps.domCache.get(this);\n if (domCache.validationMessage) {\n hide(domCache.validationMessage);\n }\n var input = this.getInput();\n if (input) {\n input.removeAttribute('aria-invalid');\n input.removeAttribute('aria-describedby');\n removeClass(input, swalClasses.inputerror);\n }\n }\n\n var defaultParams = {\n title: '',\n titleText: '',\n text: '',\n html: '',\n footer: '',\n icon: undefined,\n iconColor: undefined,\n iconHtml: undefined,\n template: undefined,\n toast: false,\n animation: true,\n showClass: {\n popup: 'swal2-show',\n backdrop: 'swal2-backdrop-show',\n icon: 'swal2-icon-show'\n },\n hideClass: {\n popup: 'swal2-hide',\n backdrop: 'swal2-backdrop-hide',\n icon: 'swal2-icon-hide'\n },\n customClass: {},\n target: 'body',\n color: undefined,\n backdrop: true,\n heightAuto: true,\n allowOutsideClick: true,\n allowEscapeKey: true,\n allowEnterKey: true,\n stopKeydownPropagation: true,\n keydownListenerCapture: false,\n showConfirmButton: true,\n showDenyButton: false,\n showCancelButton: false,\n preConfirm: undefined,\n preDeny: undefined,\n confirmButtonText: 'OK',\n confirmButtonAriaLabel: '',\n confirmButtonColor: undefined,\n denyButtonText: 'No',\n denyButtonAriaLabel: '',\n denyButtonColor: undefined,\n cancelButtonText: 'Cancel',\n cancelButtonAriaLabel: '',\n cancelButtonColor: undefined,\n buttonsStyling: true,\n reverseButtons: false,\n focusConfirm: true,\n focusDeny: false,\n focusCancel: false,\n returnFocus: true,\n showCloseButton: false,\n closeButtonHtml: '×',\n closeButtonAriaLabel: 'Close this dialog',\n loaderHtml: '',\n showLoaderOnConfirm: false,\n showLoaderOnDeny: false,\n imageUrl: undefined,\n imageWidth: undefined,\n imageHeight: undefined,\n imageAlt: '',\n timer: undefined,\n timerProgressBar: false,\n width: undefined,\n padding: undefined,\n background: undefined,\n input: undefined,\n inputPlaceholder: '',\n inputLabel: '',\n inputValue: '',\n inputOptions: {},\n inputAutoFocus: true,\n inputAutoTrim: true,\n inputAttributes: {},\n inputValidator: undefined,\n returnInputValueOnDeny: false,\n validationMessage: undefined,\n grow: false,\n position: 'center',\n progressSteps: [],\n currentProgressStep: undefined,\n progressStepsDistance: undefined,\n willOpen: undefined,\n didOpen: undefined,\n didRender: undefined,\n willClose: undefined,\n didClose: undefined,\n didDestroy: undefined,\n scrollbarPadding: true\n };\n var updatableParams = ['allowEscapeKey', 'allowOutsideClick', 'background', 'buttonsStyling', 'cancelButtonAriaLabel', 'cancelButtonColor', 'cancelButtonText', 'closeButtonAriaLabel', 'closeButtonHtml', 'color', 'confirmButtonAriaLabel', 'confirmButtonColor', 'confirmButtonText', 'currentProgressStep', 'customClass', 'denyButtonAriaLabel', 'denyButtonColor', 'denyButtonText', 'didClose', 'didDestroy', 'footer', 'hideClass', 'html', 'icon', 'iconColor', 'iconHtml', 'imageAlt', 'imageHeight', 'imageUrl', 'imageWidth', 'preConfirm', 'preDeny', 'progressSteps', 'returnFocus', 'reverseButtons', 'showCancelButton', 'showCloseButton', 'showConfirmButton', 'showDenyButton', 'text', 'title', 'titleText', 'willClose'];\n\n /** @type {Record} */\n var deprecatedParams = {\n allowEnterKey: undefined\n };\n var toastIncompatibleParams = ['allowOutsideClick', 'allowEnterKey', 'backdrop', 'focusConfirm', 'focusDeny', 'focusCancel', 'returnFocus', 'heightAuto', 'keydownListenerCapture'];\n\n /**\n * Is valid parameter\n *\n * @param {string} paramName\n * @returns {boolean}\n */\n var isValidParameter = function isValidParameter(paramName) {\n return Object.prototype.hasOwnProperty.call(defaultParams, paramName);\n };\n\n /**\n * Is valid parameter for Swal.update() method\n *\n * @param {string} paramName\n * @returns {boolean}\n */\n var isUpdatableParameter = function isUpdatableParameter(paramName) {\n return updatableParams.indexOf(paramName) !== -1;\n };\n\n /**\n * Is deprecated parameter\n *\n * @param {string} paramName\n * @returns {string | undefined}\n */\n var isDeprecatedParameter = function isDeprecatedParameter(paramName) {\n return deprecatedParams[paramName];\n };\n\n /**\n * @param {string} param\n */\n var checkIfParamIsValid = function checkIfParamIsValid(param) {\n if (!isValidParameter(param)) {\n warn(\"Unknown parameter \\\"\".concat(param, \"\\\"\"));\n }\n };\n\n /**\n * @param {string} param\n */\n var checkIfToastParamIsValid = function checkIfToastParamIsValid(param) {\n if (toastIncompatibleParams.includes(param)) {\n warn(\"The parameter \\\"\".concat(param, \"\\\" is incompatible with toasts\"));\n }\n };\n\n /**\n * @param {string} param\n */\n var checkIfParamIsDeprecated = function checkIfParamIsDeprecated(param) {\n var isDeprecated = isDeprecatedParameter(param);\n if (isDeprecated) {\n warnAboutDeprecation(param, isDeprecated);\n }\n };\n\n /**\n * Show relevant warnings for given params\n *\n * @param {SweetAlertOptions} params\n */\n var showWarningsForParams = function showWarningsForParams(params) {\n if (params.backdrop === false && params.allowOutsideClick) {\n warn('\"allowOutsideClick\" parameter requires `backdrop` parameter to be set to `true`');\n }\n for (var param in params) {\n checkIfParamIsValid(param);\n if (params.toast) {\n checkIfToastParamIsValid(param);\n }\n checkIfParamIsDeprecated(param);\n }\n };\n\n /**\n * Updates popup parameters.\n *\n * @param {SweetAlertOptions} params\n */\n function update(params) {\n var popup = getPopup();\n var innerParams = privateProps.innerParams.get(this);\n if (!popup || hasClass(popup, innerParams.hideClass.popup)) {\n warn(\"You're trying to update the closed or closing popup, that won't work. Use the update() method in preConfirm parameter or show a new popup.\");\n return;\n }\n var validUpdatableParams = filterValidParams(params);\n var updatedParams = Object.assign({}, innerParams, validUpdatableParams);\n render(this, updatedParams);\n privateProps.innerParams.set(this, updatedParams);\n Object.defineProperties(this, {\n params: {\n value: Object.assign({}, this.params, params),\n writable: false,\n enumerable: true\n }\n });\n }\n\n /**\n * @param {SweetAlertOptions} params\n * @returns {SweetAlertOptions}\n */\n var filterValidParams = function filterValidParams(params) {\n var validUpdatableParams = {};\n Object.keys(params).forEach(function (param) {\n if (isUpdatableParameter(param)) {\n validUpdatableParams[param] = params[param];\n } else {\n warn(\"Invalid parameter to update: \".concat(param));\n }\n });\n return validUpdatableParams;\n };\n\n /**\n * Dispose the current SweetAlert2 instance\n */\n function _destroy() {\n var domCache = privateProps.domCache.get(this);\n var innerParams = privateProps.innerParams.get(this);\n if (!innerParams) {\n disposeWeakMaps(this); // The WeakMaps might have been partly destroyed, we must recall it to dispose any remaining WeakMaps #2335\n return; // This instance has already been destroyed\n }\n\n // Check if there is another Swal closing\n if (domCache.popup && globalState.swalCloseEventFinishedCallback) {\n globalState.swalCloseEventFinishedCallback();\n delete globalState.swalCloseEventFinishedCallback;\n }\n if (typeof innerParams.didDestroy === 'function') {\n innerParams.didDestroy();\n }\n disposeSwal(this);\n }\n\n /**\n * @param {SweetAlert} instance\n */\n var disposeSwal = function disposeSwal(instance) {\n disposeWeakMaps(instance);\n // Unset this.params so GC will dispose it (#1569)\n delete instance.params;\n // Unset globalState props so GC will dispose globalState (#1569)\n delete globalState.keydownHandler;\n delete globalState.keydownTarget;\n // Unset currentInstance\n delete globalState.currentInstance;\n };\n\n /**\n * @param {SweetAlert} instance\n */\n var disposeWeakMaps = function disposeWeakMaps(instance) {\n // If the current instance is awaiting a promise result, we keep the privateMethods to call them once the promise result is retrieved #2335\n if (instance.isAwaitingPromise) {\n unsetWeakMaps(privateProps, instance);\n instance.isAwaitingPromise = true;\n } else {\n unsetWeakMaps(privateMethods, instance);\n unsetWeakMaps(privateProps, instance);\n delete instance.isAwaitingPromise;\n // Unset instance methods\n delete instance.disableButtons;\n delete instance.enableButtons;\n delete instance.getInput;\n delete instance.disableInput;\n delete instance.enableInput;\n delete instance.hideLoading;\n delete instance.disableLoading;\n delete instance.showValidationMessage;\n delete instance.resetValidationMessage;\n delete instance.close;\n delete instance.closePopup;\n delete instance.closeModal;\n delete instance.closeToast;\n delete instance.rejectPromise;\n delete instance.update;\n delete instance._destroy;\n }\n };\n\n /**\n * @param {object} obj\n * @param {SweetAlert} instance\n */\n var unsetWeakMaps = function unsetWeakMaps(obj, instance) {\n for (var i in obj) {\n obj[i][\"delete\"](instance);\n }\n };\n\n var instanceMethods = /*#__PURE__*/Object.freeze({\n __proto__: null,\n _destroy: _destroy,\n close: close,\n closeModal: close,\n closePopup: close,\n closeToast: close,\n disableButtons: disableButtons,\n disableInput: disableInput,\n disableLoading: hideLoading,\n enableButtons: enableButtons,\n enableInput: enableInput,\n getInput: getInput,\n handleAwaitingPromise: handleAwaitingPromise,\n hideLoading: hideLoading,\n rejectPromise: rejectPromise,\n resetValidationMessage: resetValidationMessage,\n showValidationMessage: showValidationMessage,\n update: update\n });\n\n /**\n * @param {SweetAlertOptions} innerParams\n * @param {DomCache} domCache\n * @param {Function} dismissWith\n */\n var handlePopupClick = function handlePopupClick(innerParams, domCache, dismissWith) {\n if (innerParams.toast) {\n handleToastClick(innerParams, domCache, dismissWith);\n } else {\n // Ignore click events that had mousedown on the popup but mouseup on the container\n // This can happen when the user drags a slider\n handleModalMousedown(domCache);\n\n // Ignore click events that had mousedown on the container but mouseup on the popup\n handleContainerMousedown(domCache);\n handleModalClick(innerParams, domCache, dismissWith);\n }\n };\n\n /**\n * @param {SweetAlertOptions} innerParams\n * @param {DomCache} domCache\n * @param {Function} dismissWith\n */\n var handleToastClick = function handleToastClick(innerParams, domCache, dismissWith) {\n // Closing toast by internal click\n domCache.popup.onclick = function () {\n if (innerParams && (isAnyButtonShown(innerParams) || innerParams.timer || innerParams.input)) {\n return;\n }\n dismissWith(DismissReason.close);\n };\n };\n\n /**\n * @param {SweetAlertOptions} innerParams\n * @returns {boolean}\n */\n var isAnyButtonShown = function isAnyButtonShown(innerParams) {\n return !!(innerParams.showConfirmButton || innerParams.showDenyButton || innerParams.showCancelButton || innerParams.showCloseButton);\n };\n var ignoreOutsideClick = false;\n\n /**\n * @param {DomCache} domCache\n */\n var handleModalMousedown = function handleModalMousedown(domCache) {\n domCache.popup.onmousedown = function () {\n domCache.container.onmouseup = function (e) {\n domCache.container.onmouseup = function () {};\n // We only check if the mouseup target is the container because usually it doesn't\n // have any other direct children aside of the popup\n if (e.target === domCache.container) {\n ignoreOutsideClick = true;\n }\n };\n };\n };\n\n /**\n * @param {DomCache} domCache\n */\n var handleContainerMousedown = function handleContainerMousedown(domCache) {\n domCache.container.onmousedown = function (e) {\n // prevent the modal text from being selected on double click on the container (allowOutsideClick: false)\n if (e.target === domCache.container) {\n e.preventDefault();\n }\n domCache.popup.onmouseup = function (e) {\n domCache.popup.onmouseup = function () {};\n // We also need to check if the mouseup target is a child of the popup\n if (e.target === domCache.popup || e.target instanceof HTMLElement && domCache.popup.contains(e.target)) {\n ignoreOutsideClick = true;\n }\n };\n };\n };\n\n /**\n * @param {SweetAlertOptions} innerParams\n * @param {DomCache} domCache\n * @param {Function} dismissWith\n */\n var handleModalClick = function handleModalClick(innerParams, domCache, dismissWith) {\n domCache.container.onclick = function (e) {\n if (ignoreOutsideClick) {\n ignoreOutsideClick = false;\n return;\n }\n if (e.target === domCache.container && callIfFunction(innerParams.allowOutsideClick)) {\n dismissWith(DismissReason.backdrop);\n }\n };\n };\n\n var isJqueryElement = function isJqueryElement(elem) {\n return _typeof(elem) === 'object' && elem.jquery;\n };\n var isElement = function isElement(elem) {\n return elem instanceof Element || isJqueryElement(elem);\n };\n var argsToParams = function argsToParams(args) {\n var params = {};\n if (_typeof(args[0]) === 'object' && !isElement(args[0])) {\n Object.assign(params, args[0]);\n } else {\n ['title', 'html', 'icon'].forEach(function (name, index) {\n var arg = args[index];\n if (typeof arg === 'string' || isElement(arg)) {\n params[name] = arg;\n } else if (arg !== undefined) {\n error(\"Unexpected type of \".concat(name, \"! Expected \\\"string\\\" or \\\"Element\\\", got \").concat(_typeof(arg)));\n }\n });\n }\n return params;\n };\n\n /**\n * Main method to create a new SweetAlert2 popup\n *\n * @param {...SweetAlertOptions} args\n * @returns {Promise}\n */\n function fire() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return _construct(this, args);\n }\n\n /**\n * Returns an extended version of `Swal` containing `params` as defaults.\n * Useful for reusing Swal configuration.\n *\n * For example:\n *\n * Before:\n * const textPromptOptions = { input: 'text', showCancelButton: true }\n * const {value: firstName} = await Swal.fire({ ...textPromptOptions, title: 'What is your first name?' })\n * const {value: lastName} = await Swal.fire({ ...textPromptOptions, title: 'What is your last name?' })\n *\n * After:\n * const TextPrompt = Swal.mixin({ input: 'text', showCancelButton: true })\n * const {value: firstName} = await TextPrompt('What is your first name?')\n * const {value: lastName} = await TextPrompt('What is your last name?')\n *\n * @param {SweetAlertOptions} mixinParams\n * @returns {SweetAlert}\n */\n function mixin(mixinParams) {\n var MixinSwal = /*#__PURE__*/function (_this) {\n function MixinSwal() {\n _classCallCheck(this, MixinSwal);\n return _callSuper(this, MixinSwal, arguments);\n }\n _inherits(MixinSwal, _this);\n return _createClass(MixinSwal, [{\n key: \"_main\",\n value: function _main(params, priorityMixinParams) {\n return _superPropGet(MixinSwal, \"_main\", this)([params, Object.assign({}, mixinParams, priorityMixinParams)]);\n }\n }]);\n }(this); // @ts-ignore\n return MixinSwal;\n }\n\n /**\n * If `timer` parameter is set, returns number of milliseconds of timer remained.\n * Otherwise, returns undefined.\n *\n * @returns {number | undefined}\n */\n var getTimerLeft = function getTimerLeft() {\n return globalState.timeout && globalState.timeout.getTimerLeft();\n };\n\n /**\n * Stop timer. Returns number of milliseconds of timer remained.\n * If `timer` parameter isn't set, returns undefined.\n *\n * @returns {number | undefined}\n */\n var stopTimer = function stopTimer() {\n if (globalState.timeout) {\n stopTimerProgressBar();\n return globalState.timeout.stop();\n }\n };\n\n /**\n * Resume timer. Returns number of milliseconds of timer remained.\n * If `timer` parameter isn't set, returns undefined.\n *\n * @returns {number | undefined}\n */\n var resumeTimer = function resumeTimer() {\n if (globalState.timeout) {\n var remaining = globalState.timeout.start();\n animateTimerProgressBar(remaining);\n return remaining;\n }\n };\n\n /**\n * Resume timer. Returns number of milliseconds of timer remained.\n * If `timer` parameter isn't set, returns undefined.\n *\n * @returns {number | undefined}\n */\n var toggleTimer = function toggleTimer() {\n var timer = globalState.timeout;\n return timer && (timer.running ? stopTimer() : resumeTimer());\n };\n\n /**\n * Increase timer. Returns number of milliseconds of an updated timer.\n * If `timer` parameter isn't set, returns undefined.\n *\n * @param {number} ms\n * @returns {number | undefined}\n */\n var increaseTimer = function increaseTimer(ms) {\n if (globalState.timeout) {\n var remaining = globalState.timeout.increase(ms);\n animateTimerProgressBar(remaining, true);\n return remaining;\n }\n };\n\n /**\n * Check if timer is running. Returns true if timer is running\n * or false if timer is paused or stopped.\n * If `timer` parameter isn't set, returns undefined\n *\n * @returns {boolean}\n */\n var isTimerRunning = function isTimerRunning() {\n return !!(globalState.timeout && globalState.timeout.isRunning());\n };\n\n var bodyClickListenerAdded = false;\n var clickHandlers = {};\n\n /**\n * @param {string} attr\n */\n function bindClickHandler() {\n var attr = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'data-swal-template';\n clickHandlers[attr] = this;\n if (!bodyClickListenerAdded) {\n document.body.addEventListener('click', bodyClickListener);\n bodyClickListenerAdded = true;\n }\n }\n var bodyClickListener = function bodyClickListener(event) {\n for (var el = event.target; el && el !== document; el = el.parentNode) {\n for (var attr in clickHandlers) {\n var template = el.getAttribute(attr);\n if (template) {\n clickHandlers[attr].fire({\n template: template\n });\n return;\n }\n }\n }\n };\n\n var staticMethods = /*#__PURE__*/Object.freeze({\n __proto__: null,\n argsToParams: argsToParams,\n bindClickHandler: bindClickHandler,\n clickCancel: clickCancel,\n clickConfirm: clickConfirm,\n clickDeny: clickDeny,\n enableLoading: showLoading,\n fire: fire,\n getActions: getActions,\n getCancelButton: getCancelButton,\n getCloseButton: getCloseButton,\n getConfirmButton: getConfirmButton,\n getContainer: getContainer,\n getDenyButton: getDenyButton,\n getFocusableElements: getFocusableElements,\n getFooter: getFooter,\n getHtmlContainer: getHtmlContainer,\n getIcon: getIcon,\n getIconContent: getIconContent,\n getImage: getImage,\n getInputLabel: getInputLabel,\n getLoader: getLoader,\n getPopup: getPopup,\n getProgressSteps: getProgressSteps,\n getTimerLeft: getTimerLeft,\n getTimerProgressBar: getTimerProgressBar,\n getTitle: getTitle,\n getValidationMessage: getValidationMessage,\n increaseTimer: increaseTimer,\n isDeprecatedParameter: isDeprecatedParameter,\n isLoading: isLoading,\n isTimerRunning: isTimerRunning,\n isUpdatableParameter: isUpdatableParameter,\n isValidParameter: isValidParameter,\n isVisible: isVisible,\n mixin: mixin,\n resumeTimer: resumeTimer,\n showLoading: showLoading,\n stopTimer: stopTimer,\n toggleTimer: toggleTimer\n });\n\n var Timer = /*#__PURE__*/function () {\n /**\n * @param {Function} callback\n * @param {number} delay\n */\n function Timer(callback, delay) {\n _classCallCheck(this, Timer);\n this.callback = callback;\n this.remaining = delay;\n this.running = false;\n this.start();\n }\n\n /**\n * @returns {number}\n */\n return _createClass(Timer, [{\n key: \"start\",\n value: function start() {\n if (!this.running) {\n this.running = true;\n this.started = new Date();\n this.id = setTimeout(this.callback, this.remaining);\n }\n return this.remaining;\n }\n\n /**\n * @returns {number}\n */\n }, {\n key: \"stop\",\n value: function stop() {\n if (this.started && this.running) {\n this.running = false;\n clearTimeout(this.id);\n this.remaining -= new Date().getTime() - this.started.getTime();\n }\n return this.remaining;\n }\n\n /**\n * @param {number} n\n * @returns {number}\n */\n }, {\n key: \"increase\",\n value: function increase(n) {\n var running = this.running;\n if (running) {\n this.stop();\n }\n this.remaining += n;\n if (running) {\n this.start();\n }\n return this.remaining;\n }\n\n /**\n * @returns {number}\n */\n }, {\n key: \"getTimerLeft\",\n value: function getTimerLeft() {\n if (this.running) {\n this.stop();\n this.start();\n }\n return this.remaining;\n }\n\n /**\n * @returns {boolean}\n */\n }, {\n key: \"isRunning\",\n value: function isRunning() {\n return this.running;\n }\n }]);\n }();\n\n var swalStringParams = ['swal-title', 'swal-html', 'swal-footer'];\n\n /**\n * @param {SweetAlertOptions} params\n * @returns {SweetAlertOptions}\n */\n var getTemplateParams = function getTemplateParams(params) {\n var template = typeof params.template === 'string' ? ( /** @type {HTMLTemplateElement} */document.querySelector(params.template)) : params.template;\n if (!template) {\n return {};\n }\n /** @type {DocumentFragment} */\n var templateContent = template.content;\n showWarningsForElements(templateContent);\n var result = Object.assign(getSwalParams(templateContent), getSwalFunctionParams(templateContent), getSwalButtons(templateContent), getSwalImage(templateContent), getSwalIcon(templateContent), getSwalInput(templateContent), getSwalStringParams(templateContent, swalStringParams));\n return result;\n };\n\n /**\n * @param {DocumentFragment} templateContent\n * @returns {Record}\n */\n var getSwalParams = function getSwalParams(templateContent) {\n /** @type {Record} */\n var result = {};\n /** @type {HTMLElement[]} */\n var swalParams = Array.from(templateContent.querySelectorAll('swal-param'));\n swalParams.forEach(function (param) {\n showWarningsForAttributes(param, ['name', 'value']);\n var paramName = /** @type {keyof SweetAlertOptions} */param.getAttribute('name');\n var value = param.getAttribute('value');\n if (!paramName || !value) {\n return;\n }\n if (typeof defaultParams[paramName] === 'boolean') {\n result[paramName] = value !== 'false';\n } else if (_typeof(defaultParams[paramName]) === 'object') {\n result[paramName] = JSON.parse(value);\n } else {\n result[paramName] = value;\n }\n });\n return result;\n };\n\n /**\n * @param {DocumentFragment} templateContent\n * @returns {Record}\n */\n var getSwalFunctionParams = function getSwalFunctionParams(templateContent) {\n /** @type {Record} */\n var result = {};\n /** @type {HTMLElement[]} */\n var swalFunctions = Array.from(templateContent.querySelectorAll('swal-function-param'));\n swalFunctions.forEach(function (param) {\n var paramName = /** @type {keyof SweetAlertOptions} */param.getAttribute('name');\n var value = param.getAttribute('value');\n if (!paramName || !value) {\n return;\n }\n result[paramName] = new Function(\"return \".concat(value))();\n });\n return result;\n };\n\n /**\n * @param {DocumentFragment} templateContent\n * @returns {Record}\n */\n var getSwalButtons = function getSwalButtons(templateContent) {\n /** @type {Record} */\n var result = {};\n /** @type {HTMLElement[]} */\n var swalButtons = Array.from(templateContent.querySelectorAll('swal-button'));\n swalButtons.forEach(function (button) {\n showWarningsForAttributes(button, ['type', 'color', 'aria-label']);\n var type = button.getAttribute('type');\n if (!type || !['confirm', 'cancel', 'deny'].includes(type)) {\n return;\n }\n result[\"\".concat(type, \"ButtonText\")] = button.innerHTML;\n result[\"show\".concat(capitalizeFirstLetter(type), \"Button\")] = true;\n if (button.hasAttribute('color')) {\n result[\"\".concat(type, \"ButtonColor\")] = button.getAttribute('color');\n }\n if (button.hasAttribute('aria-label')) {\n result[\"\".concat(type, \"ButtonAriaLabel\")] = button.getAttribute('aria-label');\n }\n });\n return result;\n };\n\n /**\n * @param {DocumentFragment} templateContent\n * @returns {Pick}\n */\n var getSwalImage = function getSwalImage(templateContent) {\n var result = {};\n /** @type {HTMLElement | null} */\n var image = templateContent.querySelector('swal-image');\n if (image) {\n showWarningsForAttributes(image, ['src', 'width', 'height', 'alt']);\n if (image.hasAttribute('src')) {\n result.imageUrl = image.getAttribute('src') || undefined;\n }\n if (image.hasAttribute('width')) {\n result.imageWidth = image.getAttribute('width') || undefined;\n }\n if (image.hasAttribute('height')) {\n result.imageHeight = image.getAttribute('height') || undefined;\n }\n if (image.hasAttribute('alt')) {\n result.imageAlt = image.getAttribute('alt') || undefined;\n }\n }\n return result;\n };\n\n /**\n * @param {DocumentFragment} templateContent\n * @returns {Record}\n */\n var getSwalIcon = function getSwalIcon(templateContent) {\n var result = {};\n /** @type {HTMLElement | null} */\n var icon = templateContent.querySelector('swal-icon');\n if (icon) {\n showWarningsForAttributes(icon, ['type', 'color']);\n if (icon.hasAttribute('type')) {\n result.icon = icon.getAttribute('type');\n }\n if (icon.hasAttribute('color')) {\n result.iconColor = icon.getAttribute('color');\n }\n result.iconHtml = icon.innerHTML;\n }\n return result;\n };\n\n /**\n * @param {DocumentFragment} templateContent\n * @returns {Record}\n */\n var getSwalInput = function getSwalInput(templateContent) {\n /** @type {Record} */\n var result = {};\n /** @type {HTMLElement | null} */\n var input = templateContent.querySelector('swal-input');\n if (input) {\n showWarningsForAttributes(input, ['type', 'label', 'placeholder', 'value']);\n result.input = input.getAttribute('type') || 'text';\n if (input.hasAttribute('label')) {\n result.inputLabel = input.getAttribute('label');\n }\n if (input.hasAttribute('placeholder')) {\n result.inputPlaceholder = input.getAttribute('placeholder');\n }\n if (input.hasAttribute('value')) {\n result.inputValue = input.getAttribute('value');\n }\n }\n /** @type {HTMLElement[]} */\n var inputOptions = Array.from(templateContent.querySelectorAll('swal-input-option'));\n if (inputOptions.length) {\n result.inputOptions = {};\n inputOptions.forEach(function (option) {\n showWarningsForAttributes(option, ['value']);\n var optionValue = option.getAttribute('value');\n if (!optionValue) {\n return;\n }\n var optionName = option.innerHTML;\n result.inputOptions[optionValue] = optionName;\n });\n }\n return result;\n };\n\n /**\n * @param {DocumentFragment} templateContent\n * @param {string[]} paramNames\n * @returns {Record}\n */\n var getSwalStringParams = function getSwalStringParams(templateContent, paramNames) {\n /** @type {Record} */\n var result = {};\n for (var i in paramNames) {\n var paramName = paramNames[i];\n /** @type {HTMLElement | null} */\n var tag = templateContent.querySelector(paramName);\n if (tag) {\n showWarningsForAttributes(tag, []);\n result[paramName.replace(/^swal-/, '')] = tag.innerHTML.trim();\n }\n }\n return result;\n };\n\n /**\n * @param {DocumentFragment} templateContent\n */\n var showWarningsForElements = function showWarningsForElements(templateContent) {\n var allowedElements = swalStringParams.concat(['swal-param', 'swal-function-param', 'swal-button', 'swal-image', 'swal-icon', 'swal-input', 'swal-input-option']);\n Array.from(templateContent.children).forEach(function (el) {\n var tagName = el.tagName.toLowerCase();\n if (!allowedElements.includes(tagName)) {\n warn(\"Unrecognized element <\".concat(tagName, \">\"));\n }\n });\n };\n\n /**\n * @param {HTMLElement} el\n * @param {string[]} allowedAttributes\n */\n var showWarningsForAttributes = function showWarningsForAttributes(el, allowedAttributes) {\n Array.from(el.attributes).forEach(function (attribute) {\n if (allowedAttributes.indexOf(attribute.name) === -1) {\n warn([\"Unrecognized attribute \\\"\".concat(attribute.name, \"\\\" on <\").concat(el.tagName.toLowerCase(), \">.\"), \"\".concat(allowedAttributes.length ? \"Allowed attributes are: \".concat(allowedAttributes.join(', ')) : 'To set the value, use HTML within the element.')]);\n }\n });\n };\n\n var SHOW_CLASS_TIMEOUT = 10;\n\n /**\n * Open popup, add necessary classes and styles, fix scrollbar\n *\n * @param {SweetAlertOptions} params\n */\n var openPopup = function openPopup(params) {\n var container = getContainer();\n var popup = getPopup();\n if (typeof params.willOpen === 'function') {\n params.willOpen(popup);\n }\n var bodyStyles = window.getComputedStyle(document.body);\n var initialBodyOverflow = bodyStyles.overflowY;\n addClasses(container, popup, params);\n\n // scrolling is 'hidden' until animation is done, after that 'auto'\n setTimeout(function () {\n setScrollingVisibility(container, popup);\n }, SHOW_CLASS_TIMEOUT);\n if (isModal()) {\n fixScrollContainer(container, params.scrollbarPadding, initialBodyOverflow);\n setAriaHidden();\n }\n if (!isToast() && !globalState.previousActiveElement) {\n globalState.previousActiveElement = document.activeElement;\n }\n if (typeof params.didOpen === 'function') {\n setTimeout(function () {\n return params.didOpen(popup);\n });\n }\n removeClass(container, swalClasses['no-transition']);\n };\n\n /**\n * @param {AnimationEvent} event\n */\n var _swalOpenAnimationFinished = function swalOpenAnimationFinished(event) {\n var popup = getPopup();\n if (event.target !== popup || !animationEndEvent) {\n return;\n }\n var container = getContainer();\n popup.removeEventListener(animationEndEvent, _swalOpenAnimationFinished);\n container.style.overflowY = 'auto';\n };\n\n /**\n * @param {HTMLElement} container\n * @param {HTMLElement} popup\n */\n var setScrollingVisibility = function setScrollingVisibility(container, popup) {\n if (animationEndEvent && hasCssAnimation(popup)) {\n container.style.overflowY = 'hidden';\n popup.addEventListener(animationEndEvent, _swalOpenAnimationFinished);\n } else {\n container.style.overflowY = 'auto';\n }\n };\n\n /**\n * @param {HTMLElement} container\n * @param {boolean} scrollbarPadding\n * @param {string} initialBodyOverflow\n */\n var fixScrollContainer = function fixScrollContainer(container, scrollbarPadding, initialBodyOverflow) {\n iOSfix();\n if (scrollbarPadding && initialBodyOverflow !== 'hidden') {\n replaceScrollbarWithPadding(initialBodyOverflow);\n }\n\n // sweetalert2/issues/1247\n setTimeout(function () {\n container.scrollTop = 0;\n });\n };\n\n /**\n * @param {HTMLElement} container\n * @param {HTMLElement} popup\n * @param {SweetAlertOptions} params\n */\n var addClasses = function addClasses(container, popup, params) {\n addClass(container, params.showClass.backdrop);\n if (params.animation) {\n // this workaround with opacity is needed for https://github.com/sweetalert2/sweetalert2/issues/2059\n popup.style.setProperty('opacity', '0', 'important');\n show(popup, 'grid');\n setTimeout(function () {\n // Animate popup right after showing it\n addClass(popup, params.showClass.popup);\n // and remove the opacity workaround\n popup.style.removeProperty('opacity');\n }, SHOW_CLASS_TIMEOUT); // 10ms in order to fix #2062\n } else {\n show(popup, 'grid');\n }\n addClass([document.documentElement, document.body], swalClasses.shown);\n if (params.heightAuto && params.backdrop && !params.toast) {\n addClass([document.documentElement, document.body], swalClasses['height-auto']);\n }\n };\n\n var defaultInputValidators = {\n /**\n * @param {string} string\n * @param {string} [validationMessage]\n * @returns {Promise}\n */\n email: function email(string, validationMessage) {\n return /^[a-zA-Z0-9.+_'-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z0-9-]+$/.test(string) ? Promise.resolve() : Promise.resolve(validationMessage || 'Invalid email address');\n },\n /**\n * @param {string} string\n * @param {string} [validationMessage]\n * @returns {Promise}\n */\n url: function url(string, validationMessage) {\n // taken from https://stackoverflow.com/a/3809435 with a small change from #1306 and #2013\n return /^https?:\\/\\/(www\\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\\.[a-z]{2,63}\\b([-a-zA-Z0-9@:%_+.~#?&/=]*)$/.test(string) ? Promise.resolve() : Promise.resolve(validationMessage || 'Invalid URL');\n }\n };\n\n /**\n * @param {SweetAlertOptions} params\n */\n function setDefaultInputValidators(params) {\n // Use default `inputValidator` for supported input types if not provided\n if (params.inputValidator) {\n return;\n }\n if (params.input === 'email') {\n params.inputValidator = defaultInputValidators['email'];\n }\n if (params.input === 'url') {\n params.inputValidator = defaultInputValidators['url'];\n }\n }\n\n /**\n * @param {SweetAlertOptions} params\n */\n function validateCustomTargetElement(params) {\n // Determine if the custom target element is valid\n if (!params.target || typeof params.target === 'string' && !document.querySelector(params.target) || typeof params.target !== 'string' && !params.target.appendChild) {\n warn('Target parameter is not valid, defaulting to \"body\"');\n params.target = 'body';\n }\n }\n\n /**\n * Set type, text and actions on popup\n *\n * @param {SweetAlertOptions} params\n */\n function setParameters(params) {\n setDefaultInputValidators(params);\n\n // showLoaderOnConfirm && preConfirm\n if (params.showLoaderOnConfirm && !params.preConfirm) {\n warn('showLoaderOnConfirm is set to true, but preConfirm is not defined.\\n' + 'showLoaderOnConfirm should be used together with preConfirm, see usage example:\\n' + 'https://sweetalert2.github.io/#ajax-request');\n }\n validateCustomTargetElement(params);\n\n // Replace newlines with in title\n if (typeof params.title === 'string') {\n params.title = params.title.split('\\n').join('');\n }\n init(params);\n }\n\n /** @type {SweetAlert} */\n var currentInstance;\n var _promise = /*#__PURE__*/new WeakMap();\n var SweetAlert = /*#__PURE__*/function () {\n /**\n * @param {...any} args\n * @this {SweetAlert}\n */\n function SweetAlert() {\n _classCallCheck(this, SweetAlert);\n /**\n * @type {Promise}\n */\n _classPrivateFieldInitSpec(this, _promise, void 0);\n // Prevent run in Node env\n if (typeof window === 'undefined') {\n return;\n }\n currentInstance = this;\n\n // @ts-ignore\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n var outerParams = Object.freeze(this.constructor.argsToParams(args));\n\n /** @type {Readonly} */\n this.params = outerParams;\n\n /** @type {boolean} */\n this.isAwaitingPromise = false;\n _classPrivateFieldSet2(_promise, this, this._main(currentInstance.params));\n }\n return _createClass(SweetAlert, [{\n key: \"_main\",\n value: function _main(userParams) {\n var mixinParams = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n showWarningsForParams(Object.assign({}, mixinParams, userParams));\n if (globalState.currentInstance) {\n var swalPromiseResolve = privateMethods.swalPromiseResolve.get(globalState.currentInstance);\n var isAwaitingPromise = globalState.currentInstance.isAwaitingPromise;\n globalState.currentInstance._destroy();\n if (!isAwaitingPromise) {\n swalPromiseResolve({\n isDismissed: true\n });\n }\n if (isModal()) {\n unsetAriaHidden();\n }\n }\n globalState.currentInstance = currentInstance;\n var innerParams = prepareParams(userParams, mixinParams);\n setParameters(innerParams);\n Object.freeze(innerParams);\n\n // clear the previous timer\n if (globalState.timeout) {\n globalState.timeout.stop();\n delete globalState.timeout;\n }\n\n // clear the restore focus timeout\n clearTimeout(globalState.restoreFocusTimeout);\n var domCache = populateDomCache(currentInstance);\n render(currentInstance, innerParams);\n privateProps.innerParams.set(currentInstance, innerParams);\n return swalPromise(currentInstance, domCache, innerParams);\n }\n\n // `catch` cannot be the name of a module export, so we define our thenable methods here instead\n }, {\n key: \"then\",\n value: function then(onFulfilled) {\n return _classPrivateFieldGet2(_promise, this).then(onFulfilled);\n }\n }, {\n key: \"finally\",\n value: function _finally(onFinally) {\n return _classPrivateFieldGet2(_promise, this)[\"finally\"](onFinally);\n }\n }]);\n }();\n\n /**\n * @param {SweetAlert} instance\n * @param {DomCache} domCache\n * @param {SweetAlertOptions} innerParams\n * @returns {Promise}\n */\n var swalPromise = function swalPromise(instance, domCache, innerParams) {\n return new Promise(function (resolve, reject) {\n // functions to handle all closings/dismissals\n /**\n * @param {DismissReason} dismiss\n */\n var dismissWith = function dismissWith(dismiss) {\n instance.close({\n isDismissed: true,\n dismiss: dismiss\n });\n };\n privateMethods.swalPromiseResolve.set(instance, resolve);\n privateMethods.swalPromiseReject.set(instance, reject);\n domCache.confirmButton.onclick = function () {\n handleConfirmButtonClick(instance);\n };\n domCache.denyButton.onclick = function () {\n handleDenyButtonClick(instance);\n };\n domCache.cancelButton.onclick = function () {\n handleCancelButtonClick(instance, dismissWith);\n };\n domCache.closeButton.onclick = function () {\n dismissWith(DismissReason.close);\n };\n handlePopupClick(innerParams, domCache, dismissWith);\n addKeydownHandler(globalState, innerParams, dismissWith);\n handleInputOptionsAndValue(instance, innerParams);\n openPopup(innerParams);\n setupTimer(globalState, innerParams, dismissWith);\n initFocus(domCache, innerParams);\n\n // Scroll container to top on open (#1247, #1946)\n setTimeout(function () {\n domCache.container.scrollTop = 0;\n });\n });\n };\n\n /**\n * @param {SweetAlertOptions} userParams\n * @param {SweetAlertOptions} mixinParams\n * @returns {SweetAlertOptions}\n */\n var prepareParams = function prepareParams(userParams, mixinParams) {\n var templateParams = getTemplateParams(userParams);\n var params = Object.assign({}, defaultParams, mixinParams, templateParams, userParams); // precedence is described in #2131\n params.showClass = Object.assign({}, defaultParams.showClass, params.showClass);\n params.hideClass = Object.assign({}, defaultParams.hideClass, params.hideClass);\n if (params.animation === false) {\n params.showClass = {\n backdrop: 'swal2-noanimation'\n };\n params.hideClass = {};\n }\n return params;\n };\n\n /**\n * @param {SweetAlert} instance\n * @returns {DomCache}\n */\n var populateDomCache = function populateDomCache(instance) {\n var domCache = {\n popup: getPopup(),\n container: getContainer(),\n actions: getActions(),\n confirmButton: getConfirmButton(),\n denyButton: getDenyButton(),\n cancelButton: getCancelButton(),\n loader: getLoader(),\n closeButton: getCloseButton(),\n validationMessage: getValidationMessage(),\n progressSteps: getProgressSteps()\n };\n privateProps.domCache.set(instance, domCache);\n return domCache;\n };\n\n /**\n * @param {GlobalState} globalState\n * @param {SweetAlertOptions} innerParams\n * @param {Function} dismissWith\n */\n var setupTimer = function setupTimer(globalState, innerParams, dismissWith) {\n var timerProgressBar = getTimerProgressBar();\n hide(timerProgressBar);\n if (innerParams.timer) {\n globalState.timeout = new Timer(function () {\n dismissWith('timer');\n delete globalState.timeout;\n }, innerParams.timer);\n if (innerParams.timerProgressBar) {\n show(timerProgressBar);\n applyCustomClass(timerProgressBar, innerParams, 'timerProgressBar');\n setTimeout(function () {\n if (globalState.timeout && globalState.timeout.running) {\n // timer can be already stopped or unset at this point\n animateTimerProgressBar(innerParams.timer);\n }\n });\n }\n }\n };\n\n /**\n * Initialize focus in the popup:\n *\n * 1. If `toast` is `true`, don't steal focus from the document.\n * 2. Else if there is an [autofocus] element, focus it.\n * 3. Else if `focusConfirm` is `true` and confirm button is visible, focus it.\n * 4. Else if `focusDeny` is `true` and deny button is visible, focus it.\n * 5. Else if `focusCancel` is `true` and cancel button is visible, focus it.\n * 6. Else focus the first focusable element in a popup (if any).\n *\n * @param {DomCache} domCache\n * @param {SweetAlertOptions} innerParams\n */\n var initFocus = function initFocus(domCache, innerParams) {\n if (innerParams.toast) {\n return;\n }\n // TODO: this is dumb, remove `allowEnterKey` param in the next major version\n if (!callIfFunction(innerParams.allowEnterKey)) {\n warnAboutDeprecation('allowEnterKey');\n blurActiveElement();\n return;\n }\n if (focusAutofocus(domCache)) {\n return;\n }\n if (focusButton(domCache, innerParams)) {\n return;\n }\n setFocus(-1, 1);\n };\n\n /**\n * @param {DomCache} domCache\n * @returns {boolean}\n */\n var focusAutofocus = function focusAutofocus(domCache) {\n var autofocusElements = domCache.popup.querySelectorAll('[autofocus]');\n var _iterator = _createForOfIteratorHelper(autofocusElements),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var autofocusElement = _step.value;\n if (autofocusElement instanceof HTMLElement && isVisible$1(autofocusElement)) {\n autofocusElement.focus();\n return true;\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n return false;\n };\n\n /**\n * @param {DomCache} domCache\n * @param {SweetAlertOptions} innerParams\n * @returns {boolean}\n */\n var focusButton = function focusButton(domCache, innerParams) {\n if (innerParams.focusDeny && isVisible$1(domCache.denyButton)) {\n domCache.denyButton.focus();\n return true;\n }\n if (innerParams.focusCancel && isVisible$1(domCache.cancelButton)) {\n domCache.cancelButton.focus();\n return true;\n }\n if (innerParams.focusConfirm && isVisible$1(domCache.confirmButton)) {\n domCache.confirmButton.focus();\n return true;\n }\n return false;\n };\n var blurActiveElement = function blurActiveElement() {\n if (document.activeElement instanceof HTMLElement && typeof document.activeElement.blur === 'function') {\n document.activeElement.blur();\n }\n };\n\n // Dear russian users visiting russian sites. Let's have fun.\n if (typeof window !== 'undefined' && /^ru\\b/.test(navigator.language) && location.host.match(/\\.(ru|su|by|xn--p1ai)$/)) {\n var now = new Date();\n var initiationDate = localStorage.getItem('swal-initiation');\n if (!initiationDate) {\n localStorage.setItem('swal-initiation', \"\".concat(now));\n } else if ((now.getTime() - Date.parse(initiationDate)) / (1000 * 60 * 60 * 24) > 3) {\n setTimeout(function () {\n document.body.style.pointerEvents = 'none';\n var ukrainianAnthem = document.createElement('audio');\n ukrainianAnthem.src = 'https://flag-gimn.ru/wp-content/uploads/2021/09/Ukraina.mp3';\n ukrainianAnthem.loop = true;\n document.body.appendChild(ukrainianAnthem);\n setTimeout(function () {\n ukrainianAnthem.play()[\"catch\"](function () {\n // ignore\n });\n }, 2500);\n }, 500);\n }\n }\n\n // Assign instance methods from src/instanceMethods/*.js to prototype\n SweetAlert.prototype.disableButtons = disableButtons;\n SweetAlert.prototype.enableButtons = enableButtons;\n SweetAlert.prototype.getInput = getInput;\n SweetAlert.prototype.disableInput = disableInput;\n SweetAlert.prototype.enableInput = enableInput;\n SweetAlert.prototype.hideLoading = hideLoading;\n SweetAlert.prototype.disableLoading = hideLoading;\n SweetAlert.prototype.showValidationMessage = showValidationMessage;\n SweetAlert.prototype.resetValidationMessage = resetValidationMessage;\n SweetAlert.prototype.close = close;\n SweetAlert.prototype.closePopup = close;\n SweetAlert.prototype.closeModal = close;\n SweetAlert.prototype.closeToast = close;\n SweetAlert.prototype.rejectPromise = rejectPromise;\n SweetAlert.prototype.update = update;\n SweetAlert.prototype._destroy = _destroy;\n\n // Assign static methods from src/staticMethods/*.js to constructor\n Object.assign(SweetAlert, staticMethods);\n\n // Proxy to instance methods to constructor, for now, for backwards compatibility\n Object.keys(instanceMethods).forEach(function (key) {\n /**\n * @param {...any} args\n * @returns {any | undefined}\n */\n SweetAlert[key] = function () {\n if (currentInstance && currentInstance[key]) {\n var _currentInstance;\n return (_currentInstance = currentInstance)[key].apply(_currentInstance, arguments);\n }\n return null;\n };\n });\n SweetAlert.DismissReason = DismissReason;\n SweetAlert.version = '11.12.4';\n\n var Swal = SweetAlert;\n // @ts-ignore\n Swal[\"default\"] = Swal;\n\n return Swal;\n\n}));\nif (typeof this !== 'undefined' && this.Sweetalert2){this.swal = this.sweetAlert = this.Swal = this.SweetAlert = this.Sweetalert2}\n\"undefined\"!=typeof document&&function(e,t){var n=e.createElement(\"style\");if(e.getElementsByTagName(\"head\")[0].appendChild(n),n.styleSheet)n.styleSheet.disabled||(n.styleSheet.cssText=t);else try{n.innerHTML=t}catch(e){n.innerText=t}}(document,\".swal2-popup.swal2-toast{box-sizing:border-box;grid-column:1/4 !important;grid-row:1/4 !important;grid-template-columns:min-content auto min-content;padding:1em;overflow-y:hidden;background:#fff;box-shadow:0 0 1px rgba(0,0,0,.075),0 1px 2px rgba(0,0,0,.075),1px 2px 4px rgba(0,0,0,.075),1px 3px 8px rgba(0,0,0,.075),2px 4px 16px rgba(0,0,0,.075);pointer-events:all}.swal2-popup.swal2-toast>*{grid-column:2}.swal2-popup.swal2-toast .swal2-title{margin:.5em 1em;padding:0;font-size:1em;text-align:initial}.swal2-popup.swal2-toast .swal2-loading{justify-content:center}.swal2-popup.swal2-toast .swal2-input{height:2em;margin:.5em;font-size:1em}.swal2-popup.swal2-toast .swal2-validation-message{font-size:1em}.swal2-popup.swal2-toast .swal2-footer{margin:.5em 0 0;padding:.5em 0 0;font-size:.8em}.swal2-popup.swal2-toast .swal2-close{grid-column:3/3;grid-row:1/99;align-self:center;width:.8em;height:.8em;margin:0;font-size:2em}.swal2-popup.swal2-toast .swal2-html-container{margin:.5em 1em;padding:0;overflow:initial;font-size:1em;text-align:initial}.swal2-popup.swal2-toast .swal2-html-container:empty{padding:0}.swal2-popup.swal2-toast .swal2-loader{grid-column:1;grid-row:1/99;align-self:center;width:2em;height:2em;margin:.25em}.swal2-popup.swal2-toast .swal2-icon{grid-column:1;grid-row:1/99;align-self:center;width:2em;min-width:2em;height:2em;margin:0 .5em 0 0}.swal2-popup.swal2-toast .swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:1.8em;font-weight:bold}.swal2-popup.swal2-toast .swal2-icon.swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line]{top:.875em;width:1.375em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:.3125em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:.3125em}.swal2-popup.swal2-toast .swal2-actions{justify-content:flex-start;height:auto;margin:0;margin-top:.5em;padding:0 .5em}.swal2-popup.swal2-toast .swal2-styled{margin:.25em .5em;padding:.4em .6em;font-size:1em}.swal2-popup.swal2-toast .swal2-success{border-color:#a5dc86}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line]{position:absolute;width:1.6em;height:3em;border-radius:50%}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=left]{top:-0.8em;left:-0.5em;transform:rotate(-45deg);transform-origin:2em 2em;border-radius:4em 0 0 4em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=right]{top:-0.25em;left:.9375em;transform-origin:0 1.5em;border-radius:0 4em 4em 0}.swal2-popup.swal2-toast .swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-success .swal2-success-fix{top:0;left:.4375em;width:.4375em;height:2.6875em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line]{height:.3125em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=tip]{top:1.125em;left:.1875em;width:.75em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=long]{top:.9375em;right:.1875em;width:1.375em}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-tip{animation:swal2-toast-animate-success-line-tip .75s}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-long{animation:swal2-toast-animate-success-line-long .75s}.swal2-popup.swal2-toast.swal2-show{animation:swal2-toast-show .5s}.swal2-popup.swal2-toast.swal2-hide{animation:swal2-toast-hide .1s forwards}div:where(.swal2-container){display:grid;position:fixed;z-index:1060;inset:0;box-sizing:border-box;grid-template-areas:\\\"top-start top top-end\\\" \\\"center-start center center-end\\\" \\\"bottom-start bottom-center bottom-end\\\";grid-template-rows:minmax(min-content, auto) minmax(min-content, auto) minmax(min-content, auto);height:100%;padding:.625em;overflow-x:hidden;transition:background-color .1s;-webkit-overflow-scrolling:touch}div:where(.swal2-container).swal2-backdrop-show,div:where(.swal2-container).swal2-noanimation{background:rgba(0,0,0,.4)}div:where(.swal2-container).swal2-backdrop-hide{background:rgba(0,0,0,0) !important}div:where(.swal2-container).swal2-top-start,div:where(.swal2-container).swal2-center-start,div:where(.swal2-container).swal2-bottom-start{grid-template-columns:minmax(0, 1fr) auto auto}div:where(.swal2-container).swal2-top,div:where(.swal2-container).swal2-center,div:where(.swal2-container).swal2-bottom{grid-template-columns:auto minmax(0, 1fr) auto}div:where(.swal2-container).swal2-top-end,div:where(.swal2-container).swal2-center-end,div:where(.swal2-container).swal2-bottom-end{grid-template-columns:auto auto minmax(0, 1fr)}div:where(.swal2-container).swal2-top-start>.swal2-popup{align-self:start}div:where(.swal2-container).swal2-top>.swal2-popup{grid-column:2;place-self:start center}div:where(.swal2-container).swal2-top-end>.swal2-popup,div:where(.swal2-container).swal2-top-right>.swal2-popup{grid-column:3;place-self:start end}div:where(.swal2-container).swal2-center-start>.swal2-popup,div:where(.swal2-container).swal2-center-left>.swal2-popup{grid-row:2;align-self:center}div:where(.swal2-container).swal2-center>.swal2-popup{grid-column:2;grid-row:2;place-self:center center}div:where(.swal2-container).swal2-center-end>.swal2-popup,div:where(.swal2-container).swal2-center-right>.swal2-popup{grid-column:3;grid-row:2;place-self:center end}div:where(.swal2-container).swal2-bottom-start>.swal2-popup,div:where(.swal2-container).swal2-bottom-left>.swal2-popup{grid-column:1;grid-row:3;align-self:end}div:where(.swal2-container).swal2-bottom>.swal2-popup{grid-column:2;grid-row:3;place-self:end center}div:where(.swal2-container).swal2-bottom-end>.swal2-popup,div:where(.swal2-container).swal2-bottom-right>.swal2-popup{grid-column:3;grid-row:3;place-self:end end}div:where(.swal2-container).swal2-grow-row>.swal2-popup,div:where(.swal2-container).swal2-grow-fullscreen>.swal2-popup{grid-column:1/4;width:100%}div:where(.swal2-container).swal2-grow-column>.swal2-popup,div:where(.swal2-container).swal2-grow-fullscreen>.swal2-popup{grid-row:1/4;align-self:stretch}div:where(.swal2-container).swal2-no-transition{transition:none !important}div:where(.swal2-container) div:where(.swal2-popup){display:none;position:relative;box-sizing:border-box;grid-template-columns:minmax(0, 100%);width:32em;max-width:100%;padding:0 0 1.25em;border:none;border-radius:5px;background:#fff;color:#545454;font-family:inherit;font-size:1rem}div:where(.swal2-container) div:where(.swal2-popup):focus{outline:none}div:where(.swal2-container) div:where(.swal2-popup).swal2-loading{overflow-y:hidden}div:where(.swal2-container) h2:where(.swal2-title){position:relative;max-width:100%;margin:0;padding:.8em 1em 0;color:inherit;font-size:1.875em;font-weight:600;text-align:center;text-transform:none;word-wrap:break-word}div:where(.swal2-container) div:where(.swal2-actions){display:flex;z-index:1;box-sizing:border-box;flex-wrap:wrap;align-items:center;justify-content:center;width:auto;margin:1.25em auto 0;padding:0}div:where(.swal2-container) div:where(.swal2-actions):not(.swal2-loading) .swal2-styled[disabled]{opacity:.4}div:where(.swal2-container) div:where(.swal2-actions):not(.swal2-loading) .swal2-styled:hover{background-image:linear-gradient(rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0.1))}div:where(.swal2-container) div:where(.swal2-actions):not(.swal2-loading) .swal2-styled:active{background-image:linear-gradient(rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.2))}div:where(.swal2-container) div:where(.swal2-loader){display:none;align-items:center;justify-content:center;width:2.2em;height:2.2em;margin:0 1.875em;animation:swal2-rotate-loading 1.5s linear 0s infinite normal;border-width:.25em;border-style:solid;border-radius:100%;border-color:#2778c4 rgba(0,0,0,0) #2778c4 rgba(0,0,0,0)}div:where(.swal2-container) button:where(.swal2-styled){margin:.3125em;padding:.625em 1.1em;transition:box-shadow .1s;box-shadow:0 0 0 3px rgba(0,0,0,0);font-weight:500}div:where(.swal2-container) button:where(.swal2-styled):not([disabled]){cursor:pointer}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-confirm){border:0;border-radius:.25em;background:initial;background-color:#7066e0;color:#fff;font-size:1em}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-confirm):focus-visible{box-shadow:0 0 0 3px rgba(112,102,224,.5)}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-deny){border:0;border-radius:.25em;background:initial;background-color:#dc3741;color:#fff;font-size:1em}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-deny):focus-visible{box-shadow:0 0 0 3px rgba(220,55,65,.5)}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-cancel){border:0;border-radius:.25em;background:initial;background-color:#6e7881;color:#fff;font-size:1em}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-cancel):focus-visible{box-shadow:0 0 0 3px rgba(110,120,129,.5)}div:where(.swal2-container) button:where(.swal2-styled).swal2-default-outline:focus-visible{box-shadow:0 0 0 3px rgba(100,150,200,.5)}div:where(.swal2-container) button:where(.swal2-styled):focus-visible{outline:none}div:where(.swal2-container) button:where(.swal2-styled)::-moz-focus-inner{border:0}div:where(.swal2-container) div:where(.swal2-footer){margin:1em 0 0;padding:1em 1em 0;border-top:1px solid #eee;color:inherit;font-size:1em;text-align:center}div:where(.swal2-container) .swal2-timer-progress-bar-container{position:absolute;right:0;bottom:0;left:0;grid-column:auto !important;overflow:hidden;border-bottom-right-radius:5px;border-bottom-left-radius:5px}div:where(.swal2-container) div:where(.swal2-timer-progress-bar){width:100%;height:.25em;background:rgba(0,0,0,.2)}div:where(.swal2-container) img:where(.swal2-image){max-width:100%;margin:2em auto 1em}div:where(.swal2-container) button:where(.swal2-close){z-index:2;align-items:center;justify-content:center;width:1.2em;height:1.2em;margin-top:0;margin-right:0;margin-bottom:-1.2em;padding:0;overflow:hidden;transition:color .1s,box-shadow .1s;border:none;border-radius:5px;background:rgba(0,0,0,0);color:#ccc;font-family:monospace;font-size:2.5em;cursor:pointer;justify-self:end}div:where(.swal2-container) button:where(.swal2-close):hover{transform:none;background:rgba(0,0,0,0);color:#f27474}div:where(.swal2-container) button:where(.swal2-close):focus-visible{outline:none;box-shadow:inset 0 0 0 3px rgba(100,150,200,.5)}div:where(.swal2-container) button:where(.swal2-close)::-moz-focus-inner{border:0}div:where(.swal2-container) .swal2-html-container{z-index:1;justify-content:center;margin:0;padding:1em 1.6em .3em;overflow:auto;color:inherit;font-size:1.125em;font-weight:normal;line-height:normal;text-align:center;word-wrap:break-word;word-break:break-word}div:where(.swal2-container) input:where(.swal2-input),div:where(.swal2-container) input:where(.swal2-file),div:where(.swal2-container) textarea:where(.swal2-textarea),div:where(.swal2-container) select:where(.swal2-select),div:where(.swal2-container) div:where(.swal2-radio),div:where(.swal2-container) label:where(.swal2-checkbox){margin:1em 2em 3px}div:where(.swal2-container) input:where(.swal2-input),div:where(.swal2-container) input:where(.swal2-file),div:where(.swal2-container) textarea:where(.swal2-textarea){box-sizing:border-box;width:auto;transition:border-color .1s,box-shadow .1s;border:1px solid #d9d9d9;border-radius:.1875em;background:rgba(0,0,0,0);box-shadow:inset 0 1px 1px rgba(0,0,0,.06),0 0 0 3px rgba(0,0,0,0);color:inherit;font-size:1.125em}div:where(.swal2-container) input:where(.swal2-input).swal2-inputerror,div:where(.swal2-container) input:where(.swal2-file).swal2-inputerror,div:where(.swal2-container) textarea:where(.swal2-textarea).swal2-inputerror{border-color:#f27474 !important;box-shadow:0 0 2px #f27474 !important}div:where(.swal2-container) input:where(.swal2-input):focus,div:where(.swal2-container) input:where(.swal2-file):focus,div:where(.swal2-container) textarea:where(.swal2-textarea):focus{border:1px solid #b4dbed;outline:none;box-shadow:inset 0 1px 1px rgba(0,0,0,.06),0 0 0 3px rgba(100,150,200,.5)}div:where(.swal2-container) input:where(.swal2-input)::placeholder,div:where(.swal2-container) input:where(.swal2-file)::placeholder,div:where(.swal2-container) textarea:where(.swal2-textarea)::placeholder{color:#ccc}div:where(.swal2-container) .swal2-range{margin:1em 2em 3px;background:#fff}div:where(.swal2-container) .swal2-range input{width:80%}div:where(.swal2-container) .swal2-range output{width:20%;color:inherit;font-weight:600;text-align:center}div:where(.swal2-container) .swal2-range input,div:where(.swal2-container) .swal2-range output{height:2.625em;padding:0;font-size:1.125em;line-height:2.625em}div:where(.swal2-container) .swal2-input{height:2.625em;padding:0 .75em}div:where(.swal2-container) .swal2-file{width:75%;margin-right:auto;margin-left:auto;background:rgba(0,0,0,0);font-size:1.125em}div:where(.swal2-container) .swal2-textarea{height:6.75em;padding:.75em}div:where(.swal2-container) .swal2-select{min-width:50%;max-width:100%;padding:.375em .625em;background:rgba(0,0,0,0);color:inherit;font-size:1.125em}div:where(.swal2-container) .swal2-radio,div:where(.swal2-container) .swal2-checkbox{align-items:center;justify-content:center;background:#fff;color:inherit}div:where(.swal2-container) .swal2-radio label,div:where(.swal2-container) .swal2-checkbox label{margin:0 .6em;font-size:1.125em}div:where(.swal2-container) .swal2-radio input,div:where(.swal2-container) .swal2-checkbox input{flex-shrink:0;margin:0 .4em}div:where(.swal2-container) label:where(.swal2-input-label){display:flex;justify-content:center;margin:1em auto 0}div:where(.swal2-container) div:where(.swal2-validation-message){align-items:center;justify-content:center;margin:1em 0 0;padding:.625em;overflow:hidden;background:#f0f0f0;color:#666;font-size:1em;font-weight:300}div:where(.swal2-container) div:where(.swal2-validation-message)::before{content:\\\"!\\\";display:inline-block;width:1.5em;min-width:1.5em;height:1.5em;margin:0 .625em;border-radius:50%;background-color:#f27474;color:#fff;font-weight:600;line-height:1.5em;text-align:center}div:where(.swal2-container) .swal2-progress-steps{flex-wrap:wrap;align-items:center;max-width:100%;margin:1.25em auto;padding:0;background:rgba(0,0,0,0);font-weight:600}div:where(.swal2-container) .swal2-progress-steps li{display:inline-block;position:relative}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step{z-index:20;flex-shrink:0;width:2em;height:2em;border-radius:2em;background:#2778c4;color:#fff;line-height:2em;text-align:center}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step.swal2-active-progress-step{background:#2778c4}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step{background:#add8e6;color:#fff}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step-line{background:#add8e6}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step-line{z-index:10;flex-shrink:0;width:2.5em;height:.4em;margin:0 -1px;background:#2778c4}div:where(.swal2-icon){position:relative;box-sizing:content-box;justify-content:center;width:5em;height:5em;margin:2.5em auto .6em;border:0.25em solid rgba(0,0,0,0);border-radius:50%;border-color:#000;font-family:inherit;line-height:5em;cursor:default;user-select:none}div:where(.swal2-icon) .swal2-icon-content{display:flex;align-items:center;font-size:3.75em}div:where(.swal2-icon).swal2-error{border-color:#f27474;color:#f27474}div:where(.swal2-icon).swal2-error .swal2-x-mark{position:relative;flex-grow:1}div:where(.swal2-icon).swal2-error [class^=swal2-x-mark-line]{display:block;position:absolute;top:2.3125em;width:2.9375em;height:.3125em;border-radius:.125em;background-color:#f27474}div:where(.swal2-icon).swal2-error [class^=swal2-x-mark-line][class$=left]{left:1.0625em;transform:rotate(45deg)}div:where(.swal2-icon).swal2-error [class^=swal2-x-mark-line][class$=right]{right:1em;transform:rotate(-45deg)}div:where(.swal2-icon).swal2-error.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-error.swal2-icon-show .swal2-x-mark{animation:swal2-animate-error-x-mark .5s}div:where(.swal2-icon).swal2-warning{border-color:#facea8;color:#f8bb86}div:where(.swal2-icon).swal2-warning.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-warning.swal2-icon-show .swal2-icon-content{animation:swal2-animate-i-mark .5s}div:where(.swal2-icon).swal2-info{border-color:#9de0f6;color:#3fc3ee}div:where(.swal2-icon).swal2-info.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-info.swal2-icon-show .swal2-icon-content{animation:swal2-animate-i-mark .8s}div:where(.swal2-icon).swal2-question{border-color:#c9dae1;color:#87adbd}div:where(.swal2-icon).swal2-question.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-question.swal2-icon-show .swal2-icon-content{animation:swal2-animate-question-mark .8s}div:where(.swal2-icon).swal2-success{border-color:#a5dc86;color:#a5dc86}div:where(.swal2-icon).swal2-success [class^=swal2-success-circular-line]{position:absolute;width:3.75em;height:7.5em;border-radius:50%}div:where(.swal2-icon).swal2-success [class^=swal2-success-circular-line][class$=left]{top:-0.4375em;left:-2.0635em;transform:rotate(-45deg);transform-origin:3.75em 3.75em;border-radius:7.5em 0 0 7.5em}div:where(.swal2-icon).swal2-success [class^=swal2-success-circular-line][class$=right]{top:-0.6875em;left:1.875em;transform:rotate(-45deg);transform-origin:0 3.75em;border-radius:0 7.5em 7.5em 0}div:where(.swal2-icon).swal2-success .swal2-success-ring{position:absolute;z-index:2;top:-0.25em;left:-0.25em;box-sizing:content-box;width:100%;height:100%;border:.25em solid rgba(165,220,134,.3);border-radius:50%}div:where(.swal2-icon).swal2-success .swal2-success-fix{position:absolute;z-index:1;top:.5em;left:1.625em;width:.4375em;height:5.625em;transform:rotate(-45deg)}div:where(.swal2-icon).swal2-success [class^=swal2-success-line]{display:block;position:absolute;z-index:2;height:.3125em;border-radius:.125em;background-color:#a5dc86}div:where(.swal2-icon).swal2-success [class^=swal2-success-line][class$=tip]{top:2.875em;left:.8125em;width:1.5625em;transform:rotate(45deg)}div:where(.swal2-icon).swal2-success [class^=swal2-success-line][class$=long]{top:2.375em;right:.5em;width:2.9375em;transform:rotate(-45deg)}div:where(.swal2-icon).swal2-success.swal2-icon-show .swal2-success-line-tip{animation:swal2-animate-success-line-tip .75s}div:where(.swal2-icon).swal2-success.swal2-icon-show .swal2-success-line-long{animation:swal2-animate-success-line-long .75s}div:where(.swal2-icon).swal2-success.swal2-icon-show .swal2-success-circular-line-right{animation:swal2-rotate-success-circular-line 4.25s ease-in}[class^=swal2]{-webkit-tap-highlight-color:rgba(0,0,0,0)}.swal2-show{animation:swal2-show .3s}.swal2-hide{animation:swal2-hide .15s forwards}.swal2-noanimation{transition:none}.swal2-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}.swal2-rtl .swal2-close{margin-right:initial;margin-left:0}.swal2-rtl .swal2-timer-progress-bar{right:0;left:auto}@keyframes swal2-toast-show{0%{transform:translateY(-0.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(0.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0deg)}}@keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-0.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}@keyframes swal2-show{0%{transform:scale(0.7)}45%{transform:scale(1.05)}80%{transform:scale(0.95)}100%{transform:scale(1)}}@keyframes swal2-hide{0%{transform:scale(1);opacity:1}100%{transform:scale(0.5);opacity:0}}@keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-0.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.8125em;width:1.5625em}}@keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(0.4);opacity:0}50%{margin-top:1.625em;transform:scale(0.4);opacity:0}80%{margin-top:-0.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0deg);opacity:1}}@keyframes swal2-rotate-loading{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}@keyframes swal2-animate-question-mark{0%{transform:rotateY(-360deg)}100%{transform:rotateY(0)}}@keyframes swal2-animate-i-mark{0%{transform:rotateZ(45deg);opacity:0}25%{transform:rotateZ(-25deg);opacity:.4}50%{transform:rotateZ(15deg);opacity:.8}75%{transform:rotateZ(-5deg);opacity:1}100%{transform:rotateX(0);opacity:1}}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow:hidden}body.swal2-height-auto{height:auto !important}body.swal2-no-backdrop .swal2-container{background-color:rgba(0,0,0,0) !important;pointer-events:none}body.swal2-no-backdrop .swal2-container .swal2-popup{pointer-events:all}body.swal2-no-backdrop .swal2-container .swal2-modal{box-shadow:0 0 10px rgba(0,0,0,.4)}@media print{body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow-y:scroll !important}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown)>[aria-hidden=true]{display:none}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) .swal2-container{position:static !important}}body.swal2-toast-shown .swal2-container{box-sizing:border-box;width:360px;max-width:100%;background-color:rgba(0,0,0,0);pointer-events:none}body.swal2-toast-shown .swal2-container.swal2-top{inset:0 auto auto 50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-top-end,body.swal2-toast-shown .swal2-container.swal2-top-right{inset:0 0 auto auto}body.swal2-toast-shown .swal2-container.swal2-top-start,body.swal2-toast-shown .swal2-container.swal2-top-left{inset:0 auto auto 0}body.swal2-toast-shown .swal2-container.swal2-center-start,body.swal2-toast-shown .swal2-container.swal2-center-left{inset:50% auto auto 0;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-center{inset:50% auto auto 50%;transform:translate(-50%, -50%)}body.swal2-toast-shown .swal2-container.swal2-center-end,body.swal2-toast-shown .swal2-container.swal2-center-right{inset:50% 0 auto auto;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-start,body.swal2-toast-shown .swal2-container.swal2-bottom-left{inset:auto auto 0 0}body.swal2-toast-shown .swal2-container.swal2-bottom{inset:auto auto 0 50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-end,body.swal2-toast-shown .swal2-container.swal2-bottom-right{inset:auto 0 0 auto}\");","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"/\";","////////////////////////////////////////////////////////////////////////////////\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: unknown;\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 // We keep the raw Response for redirects so we can return it verbatim\n response: Response;\n}\n\n/**\n * Unsuccessful result from a loader or action\n */\nexport interface ErrorResult {\n type: ResultType.error;\n error: unknown;\n statusCode?: number;\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\n/**\n * Result from a loader or action called via dataStrategy\n */\nexport interface HandlerResult {\n type: \"data\" | \"error\";\n result: unknown; // data, Error, Response, DeferredData, DataWithResponseInit\n}\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\ntype DataFunctionReturnValue = Promise | DataFunctionValue;\n\n/**\n * Route loader function signature\n */\nexport type LoaderFunction = {\n (\n args: LoaderFunctionArgs,\n handlerCtx?: unknown\n ): DataFunctionReturnValue;\n} & { hydrate?: boolean };\n\n/**\n * Route action function signature\n */\nexport interface ActionFunction {\n (\n args: ActionFunctionArgs,\n handlerCtx?: unknown\n ): DataFunctionReturnValue;\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 actionStatus?: number;\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\nexport interface DataStrategyMatch\n extends AgnosticRouteMatch {\n shouldLoad: boolean;\n resolve: (\n handlerOverride?: (\n handler: (ctx?: unknown) => DataFunctionReturnValue\n ) => Promise\n ) => Promise;\n}\n\nexport interface DataStrategyFunctionArgs\n extends DataFunctionArgs {\n matches: DataStrategyMatch[];\n}\n\nexport interface DataStrategyFunction {\n (args: DataStrategyFunctionArgs): Promise;\n}\n\nexport interface AgnosticPatchRoutesOnNavigationFunction<\n M extends AgnosticRouteMatch = AgnosticRouteMatch\n> {\n (opts: {\n path: string;\n matches: M[];\n patch: (routeId: string | null, children: AgnosticRouteObject[]) => void;\n }): void | Promise;\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 | boolean;\n action?: ActionFunction | boolean;\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: string[] = [],\n manifest: RouteManifest = {}\n): AgnosticDataRouteObject[] {\n return routes.map((route, index) => {\n let treePath = [...parentPath, String(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 return matchRoutesImpl(routes, locationArg, basename, false);\n}\n\nexport function matchRoutesImpl<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n locationArg: Partial | string,\n basename: string,\n allowPartial: boolean\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(\n branches[i],\n decoded,\n allowPartial\n );\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 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 allowPartial = false\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 let route = meta.route;\n\n if (\n !match &&\n end &&\n allowPartial &&\n !routesMeta[routesMeta.length - 1].route.index\n ) {\n match = matchPath(\n {\n path: meta.relativePath,\n caseSensitive: meta.caseSensitive,\n end: false,\n },\n remainingPathname\n );\n }\n\n if (!match) {\n return null;\n }\n\n Object.assign(matchedParams, match.params);\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\nexport function 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 === pathMatches.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 class DataWithResponseInit {\n type: string = \"DataWithResponseInit\";\n data: D;\n init: ResponseInit | null;\n\n constructor(data: D, init?: ResponseInit) {\n this.data = data;\n this.init = init || null;\n }\n}\n\n/**\n * Create \"responses\" that contain `status`/`headers` without forcing\n * serialization into an actual `Response` - used by Remix single fetch\n */\nexport function data(data: D, init?: number | ResponseInit) {\n return new DataWithResponseInit(\n data,\n typeof init === \"number\" ? { status: init } : init\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\n/**\n * A redirect response that will perform a `history.replaceState` instead of a\n * `history.pushState` for client-side navigation redirects.\n * Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const replace: RedirectFunction = (url, init) => {\n let response = redirect(url, init);\n response.headers.set(\"X-Remix-Replace\", \"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 AgnosticDataRouteMatch,\n AgnosticDataRouteObject,\n DataStrategyMatch,\n AgnosticRouteObject,\n DataResult,\n DataStrategyFunction,\n DataStrategyFunctionArgs,\n DeferredData,\n DeferredResult,\n DetectErrorBoundaryFunction,\n ErrorResult,\n FormEncType,\n FormMethod,\n HTMLFormMethod,\n HandlerResult,\n ImmutableRouteKey,\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 AgnosticPatchRoutesOnNavigationFunction,\n DataWithResponseInit,\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 matchRoutesImpl,\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 * Patch additional children routes into an existing parent route\n * @param routeId The parent route id or a callback function accepting `patch`\n * to perform batch patching\n * @param children The additional children routes\n */\n patchRoutes(routeId: string | null, children: AgnosticRouteObject[]): 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 v7_skipActionErrorRevalidation: 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 unstable_patchRoutesOnNavigation?: AgnosticPatchRoutesOnNavigationFunction;\n unstable_dataStrategy?: DataStrategyFunction;\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?: {\n requestContext?: unknown;\n skipLoaderErrorBubbling?: boolean;\n unstable_dataStrategy?: DataStrategyFunction;\n }\n ): Promise;\n queryRoute(\n request: Request,\n opts?: {\n routeId?: string;\n requestContext?: unknown;\n unstable_dataStrategy?: DataStrategyFunction;\n }\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\ntype PendingActionResult = [string, SuccessResult | ErrorResult];\n\ninterface HandleActionResult extends ShortCircuitable {\n /**\n * Route matches which may have been updated from fog of war discovery\n */\n matches?: RouterState[\"matches\"];\n /**\n * Tuple for the returned or thrown value from the current action. The routeId\n * is the action route for success and the bubbled boundary route for errors.\n */\n pendingActionResult?: PendingActionResult;\n}\n\ninterface HandleLoadersResult extends ShortCircuitable {\n /**\n * Route matches which may have been updated from fog of war discovery\n */\n matches?: RouterState[\"matches\"];\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\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 let dataStrategyImpl = init.unstable_dataStrategy || defaultDataStrategy;\n let patchRoutesOnNavigationImpl = init.unstable_patchRoutesOnNavigation;\n\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 v7_skipActionErrorRevalidation: 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 // FIFO queue of previously discovered routes to prevent re-calling on\n // subsequent navigations to the same path\n let discoveredRoutesMaxSize = 1000;\n let discoveredRoutes = 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 && !patchRoutesOnNavigationImpl) {\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 // In SPA apps, if the user provided a patchRoutesOnNavigation implementation and\n // our initial match is a splat route, clear them out so we run through lazy\n // discovery on hydration in case there's a more accurate lazy route match.\n // In SSR apps (with `hydrationData`), we expect that the server will send\n // up the proper matched routes so we don't want to run lazy discovery on\n // initial hydration and want to hydrate into the splat route.\n if (initialMatches && !init.hydrationData) {\n let fogOfWar = checkFogOfWar(\n initialMatches,\n dataRoutes,\n init.history.location.pathname\n );\n if (fogOfWar.active) {\n initialMatches = null;\n }\n }\n\n let initialized: boolean;\n if (!initialMatches) {\n initialized = false;\n initialMatches = [];\n\n // If partial hydration and fog of war is enabled, we will be running\n // `patchRoutesOnNavigation` during hydration so include any partial matches as\n // the initial matches so we can properly render `HydrateFallback`'s\n if (future.v7_partialHydration) {\n let fogOfWar = checkFogOfWar(\n null,\n dataRoutes,\n init.history.location.pathname\n );\n if (fogOfWar.active && fogOfWar.matches) {\n initialMatches = fogOfWar.matches;\n }\n }\n } else if (initialMatches.some((m) => m.route.lazy)) {\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 (!initialMatches.some((m) => m.route.loader)) {\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) {\n return true;\n }\n // Explicitly opting-in to running on hydration\n if (\n typeof m.route.loader === \"function\" &&\n m.route.loader.hydrate === true\n ) {\n return false;\n }\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: Set = new Set();\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 // Map of pending patchRoutesOnNavigation() promises (keyed by path/matches) so\n // that we only kick them off once for a given combo\n let pendingPatchRoutes = new Map<\n string,\n ReturnType\n >();\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 // Commit any in-flight routes at the end of the HMR revalidation \"navigation\"\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 }\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 let fogOfWar = checkFogOfWar(matches, routesToUse, location.pathname);\n if (fogOfWar.active && fogOfWar.matches) {\n matches = fogOfWar.matches;\n }\n\n // Short circuit with a 404 on the root error boundary if we match nothing\n if (!matches) {\n let { error, notFoundMatches, route } = handleNavigational404(\n location.pathname\n );\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 pendingActionResult: PendingActionResult | 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 pendingActionResult = [\n findNearestBoundary(matches).route.id,\n { type: ResultType.error, error: 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 actionResult = await handleAction(\n request,\n location,\n opts.submission,\n matches,\n fogOfWar.active,\n { replace: opts.replace, flushSync }\n );\n\n if (actionResult.shortCircuited) {\n return;\n }\n\n // If we received a 404 from handleAction, it's because we couldn't lazily\n // discover the destination route so we don't want to call loaders\n if (actionResult.pendingActionResult) {\n let [routeId, result] = actionResult.pendingActionResult;\n if (\n isErrorResult(result) &&\n isRouteErrorResponse(result.error) &&\n result.error.status === 404\n ) {\n pendingNavigationController = null;\n\n completeNavigation(location, {\n matches: actionResult.matches,\n loaderData: {},\n errors: {\n [routeId]: result.error,\n },\n });\n return;\n }\n }\n\n matches = actionResult.matches || matches;\n pendingActionResult = actionResult.pendingActionResult;\n loadingNavigation = getLoadingNavigation(location, opts.submission);\n flushSync = false;\n // No need to do fog of war matching again on loader execution\n fogOfWar.active = false;\n\n // Create a GET request for the loaders\n request = createClientSideRequest(\n init.history,\n request.url,\n request.signal\n );\n }\n\n // Call loaders\n let {\n shortCircuited,\n matches: updatedMatches,\n loaderData,\n errors,\n } = await handleLoaders(\n request,\n location,\n matches,\n fogOfWar.active,\n loadingNavigation,\n opts && opts.submission,\n opts && opts.fetcherSubmission,\n opts && opts.replace,\n opts && opts.initialHydration === true,\n flushSync,\n pendingActionResult\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: updatedMatches || matches,\n ...getActionDataForCommit(pendingActionResult),\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 isFogOfWar: boolean,\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 if (isFogOfWar) {\n let discoverResult = await discoverRoutes(\n matches,\n location.pathname,\n request.signal\n );\n if (discoverResult.type === \"aborted\") {\n return { shortCircuited: true };\n } else if (discoverResult.type === \"error\") {\n let { boundaryId, error } = handleDiscoverRouteError(\n location.pathname,\n discoverResult\n );\n return {\n matches: discoverResult.partialMatches,\n pendingActionResult: [\n boundaryId,\n {\n type: ResultType.error,\n error,\n },\n ],\n };\n } else if (!discoverResult.matches) {\n let { notFoundMatches, error, route } = handleNavigational404(\n location.pathname\n );\n return {\n matches: notFoundMatches,\n pendingActionResult: [\n route.id,\n {\n type: ResultType.error,\n error,\n },\n ],\n };\n } else {\n matches = discoverResult.matches;\n }\n }\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 let results = await callDataStrategy(\n \"action\",\n request,\n [actionMatch],\n matches\n );\n result = results[0];\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 let location = normalizeRedirectLocation(\n result.response.headers.get(\"Location\")!,\n new URL(request.url),\n basename\n );\n replace = location === state.location.pathname + state.location.search;\n }\n await startRedirectNavigation(request, result, {\n submission,\n replace,\n });\n return { shortCircuited: true };\n }\n\n if (isDeferredResult(result)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\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 to the current location are REPLACE\n // navigations, but if the action threw an error that'll be rendered in\n // an errorElement, we fall back to PUSH so that the user can use the\n // back button to get back to the pre-submission form location to try\n // again\n if ((opts && opts.replace) !== true) {\n pendingAction = HistoryAction.Push;\n }\n\n return {\n matches,\n pendingActionResult: [boundaryMatch.route.id, result],\n };\n }\n\n return {\n matches,\n pendingActionResult: [actionMatch.route.id, result],\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 isFogOfWar: boolean,\n overrideNavigation?: Navigation,\n submission?: Submission,\n fetcherSubmission?: Submission,\n replace?: boolean,\n initialHydration?: boolean,\n flushSync?: boolean,\n pendingActionResult?: PendingActionResult\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 // 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 let shouldUpdateNavigationState =\n !isUninterruptedRevalidation &&\n (!future.v7_partialHydration || !initialHydration);\n\n // When fog of war is enabled, we enter our `loading` state earlier so we\n // can discover new routes during the `loading` state. We skip this if\n // we've already run actions since we would have done our matching already.\n // If the children() function threw then, we want to proceed with the\n // partial matches it discovered.\n if (isFogOfWar) {\n if (shouldUpdateNavigationState) {\n let actionData = getUpdatedActionData(pendingActionResult);\n updateState(\n {\n navigation: loadingNavigation,\n ...(actionData !== undefined ? { actionData } : {}),\n },\n {\n flushSync,\n }\n );\n }\n\n let discoverResult = await discoverRoutes(\n matches,\n location.pathname,\n request.signal\n );\n\n if (discoverResult.type === \"aborted\") {\n return { shortCircuited: true };\n } else if (discoverResult.type === \"error\") {\n let { boundaryId, error } = handleDiscoverRouteError(\n location.pathname,\n discoverResult\n );\n return {\n matches: discoverResult.partialMatches,\n loaderData: {},\n errors: {\n [boundaryId]: error,\n },\n };\n } else if (!discoverResult.matches) {\n let { error, notFoundMatches, route } = handleNavigational404(\n location.pathname\n );\n return {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error,\n },\n };\n } else {\n matches = discoverResult.matches;\n }\n }\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 future.v7_skipActionErrorRevalidation,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n deletedFetchers,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n pendingActionResult\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:\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? { [pendingActionResult[0]]: pendingActionResult[1].error }\n : null,\n ...getActionDataForCommit(pendingActionResult),\n ...(updatedFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n },\n { flushSync }\n );\n return { shortCircuited: true };\n }\n\n if (shouldUpdateNavigationState) {\n let updates: Partial = {};\n if (!isFogOfWar) {\n // Only update navigation/actionNData if we didn't already do it above\n updates.navigation = loadingNavigation;\n let actionData = getUpdatedActionData(pendingActionResult);\n if (actionData !== undefined) {\n updates.actionData = actionData;\n }\n }\n if (revalidatingFetchers.length > 0) {\n updates.fetchers = getUpdatedRevalidatingFetchers(revalidatingFetchers);\n }\n updateState(updates, { flushSync });\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 { 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([...loaderResults, ...fetcherResults]);\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(request, redirect.result, {\n replace,\n });\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 pendingActionResult,\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 matches,\n loaderData,\n errors,\n ...(shouldUpdateFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n };\n }\n\n function getUpdatedActionData(\n pendingActionResult: PendingActionResult | undefined\n ): Record | null | undefined {\n if (pendingActionResult && !isErrorResult(pendingActionResult[1])) {\n // This is cast to `any` currently because `RouteData`uses any and it\n // would be a breaking change to use any.\n // TODO: v7 - change `RouteData` to use `unknown` instead of `any`\n return {\n [pendingActionResult[0]]: pendingActionResult[1].data as any,\n };\n } else if (state.actionData) {\n if (Object.keys(state.actionData).length === 0) {\n return null;\n } else {\n return state.actionData;\n }\n }\n }\n\n function getUpdatedRevalidatingFetchers(\n revalidatingFetchers: RevalidatingFetcher[]\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 return new Map(state.fetchers);\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 let fogOfWar = checkFogOfWar(matches, routesToUse, normalizedPath);\n if (fogOfWar.active && fogOfWar.matches) {\n matches = fogOfWar.matches;\n }\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 fogOfWar.active,\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 fogOfWar.active,\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 isFogOfWar: boolean,\n flushSync: boolean,\n submission: Submission\n ) {\n interruptActiveLoads();\n fetchLoadMatches.delete(key);\n\n function detectAndHandle405Error(m: AgnosticDataRouteMatch) {\n if (!m.route.action && !m.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 true;\n }\n return false;\n }\n\n if (!isFogOfWar && detectAndHandle405Error(match)) {\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 let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal,\n submission\n );\n\n if (isFogOfWar) {\n let discoverResult = await discoverRoutes(\n requestMatches,\n path,\n fetchRequest.signal\n );\n\n if (discoverResult.type === \"aborted\") {\n return;\n } else if (discoverResult.type === \"error\") {\n let { error } = handleDiscoverRouteError(path, discoverResult);\n setFetcherError(key, routeId, error, { flushSync });\n return;\n } else if (!discoverResult.matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: path }),\n { flushSync }\n );\n return;\n } else {\n requestMatches = discoverResult.matches;\n match = getTargetMatch(requestMatches, path);\n\n if (detectAndHandle405Error(match)) {\n return;\n }\n }\n }\n\n // Call the action for the fetcher\n fetchControllers.set(key, abortController);\n\n let originatingLoadId = incrementingLoadId;\n let actionResults = await callDataStrategy(\n \"action\",\n fetchRequest,\n [match],\n requestMatches\n );\n let actionResult = actionResults[0];\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(fetchRequest, 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 future.v7_skipActionErrorRevalidation,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n deletedFetchers,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n [match.route.id, actionResult]\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 { 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([...loaderResults, ...fetcherResults]);\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(revalidationRequest, 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 isFogOfWar: boolean,\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 let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal\n );\n\n if (isFogOfWar) {\n let discoverResult = await discoverRoutes(\n matches,\n path,\n fetchRequest.signal\n );\n\n if (discoverResult.type === \"aborted\") {\n return;\n } else if (discoverResult.type === \"error\") {\n let { error } = handleDiscoverRouteError(path, discoverResult);\n setFetcherError(key, routeId, error, { flushSync });\n return;\n } else if (!discoverResult.matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: path }),\n { flushSync }\n );\n return;\n } else {\n matches = discoverResult.matches;\n match = getTargetMatch(matches, path);\n }\n }\n\n // Call the loader for this fetcher route match\n fetchControllers.set(key, abortController);\n\n let originatingLoadId = incrementingLoadId;\n let results = await callDataStrategy(\n \"loader\",\n fetchRequest,\n [match],\n matches\n );\n let result = results[0];\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(fetchRequest, 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 request: Request,\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.response.headers.has(\"X-Remix-Revalidate\")) {\n isRevalidationRequired = true;\n }\n\n let location = redirect.response.headers.get(\"Location\");\n invariant(location, \"Expected a Location header on the redirect Response\");\n location = normalizeRedirectLocation(\n location,\n new URL(request.url),\n basename\n );\n let redirectLocation = createLocation(state.location, location, {\n _isRedirect: true,\n });\n\n if (isBrowser) {\n let isDocumentReload = false;\n\n if (redirect.response.headers.has(\"X-Remix-Reload-Document\")) {\n // Hard reload if the response contained X-Remix-Reload-Document\n isDocumentReload = true;\n } else if (ABSOLUTE_URL_REGEX.test(location)) {\n const url = init.history.createURL(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(location);\n } else {\n routerWindow.location.assign(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 || redirect.response.headers.has(\"X-Remix-Replace\")\n ? HistoryAction.Replace\n : 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.response.status) &&\n activeSubmission &&\n isMutationMethod(activeSubmission.formMethod)\n ) {\n await startNavigation(redirectHistoryAction, redirectLocation, {\n submission: {\n ...activeSubmission,\n formAction: 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 // Utility wrapper for calling dataStrategy client-side without having to\n // pass around the manifest, mapRouteProperties, etc.\n async function callDataStrategy(\n type: \"loader\" | \"action\",\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[]\n ): Promise {\n try {\n let results = await callDataStrategyImpl(\n dataStrategyImpl,\n type,\n request,\n matchesToLoad,\n matches,\n manifest,\n mapRouteProperties\n );\n\n return await Promise.all(\n results.map((result, i) => {\n if (isRedirectHandlerResult(result)) {\n let response = result.result as Response;\n return {\n type: ResultType.redirect,\n response: normalizeRelativeRoutingRedirectResponse(\n response,\n request,\n matchesToLoad[i].route.id,\n matches,\n basename,\n future.v7_relativeSplatPath\n ),\n };\n }\n\n return convertHandlerResultToDataResult(result);\n })\n );\n } catch (e) {\n // If the outer dataStrategy method throws, just return the error for all\n // matches - and it'll naturally bubble to the root\n return matchesToLoad.map(() => ({\n type: ResultType.error,\n error: e,\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 let [loaderResults, ...fetcherResults] = await Promise.all([\n matchesToLoad.length\n ? callDataStrategy(\"loader\", request, matchesToLoad, matches)\n : [],\n ...fetchersToLoad.map((f) => {\n if (f.matches && f.match && f.controller) {\n let fetcherRequest = createClientSideRequest(\n init.history,\n f.path,\n f.controller.signal\n );\n return callDataStrategy(\n \"loader\",\n fetcherRequest,\n [f.match],\n f.matches\n ).then((r) => r[0]);\n } else {\n return Promise.resolve({\n type: ResultType.error,\n error: getInternalRouterError(404, {\n pathname: f.path,\n }),\n });\n }\n }),\n ]);\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 {\n loaderResults,\n fetcherResults,\n };\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.add(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 cancelledFetcherLoads.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 handleNavigational404(pathname: string) {\n let error = getInternalRouterError(404, { pathname });\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let { matches, route } = getShortCircuitMatches(routesToUse);\n\n // Cancel all pending deferred on 404s since we don't keep any routes\n cancelActiveDeferreds();\n\n return { notFoundMatches: matches, route, error };\n }\n\n function handleDiscoverRouteError(\n pathname: string,\n discoverResult: DiscoverRoutesErrorResult\n ) {\n return {\n boundaryId: findNearestBoundary(discoverResult.partialMatches).route.id,\n error: getInternalRouterError(400, {\n type: \"route-discovery\",\n pathname,\n message:\n discoverResult.error != null && \"message\" in discoverResult.error\n ? discoverResult.error\n : String(discoverResult.error),\n }),\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 checkFogOfWar(\n matches: AgnosticDataRouteMatch[] | null,\n routesToUse: AgnosticDataRouteObject[],\n pathname: string\n ): { active: boolean; matches: AgnosticDataRouteMatch[] | null } {\n if (patchRoutesOnNavigationImpl) {\n // Don't bother re-calling patchRouteOnMiss for a path we've already\n // processed. the last execution would have patched the route tree\n // accordingly so `matches` here are already accurate.\n if (discoveredRoutes.has(pathname)) {\n return { active: false, matches };\n }\n\n if (!matches) {\n let fogMatches = matchRoutesImpl(\n routesToUse,\n pathname,\n basename,\n true\n );\n\n return { active: true, matches: fogMatches || [] };\n } else {\n if (Object.keys(matches[0].params).length > 0) {\n // If we matched a dynamic param or a splat, it might only be because\n // we haven't yet discovered other routes that would match with a\n // higher score. Call patchRoutesOnNavigation just to be sure\n let partialMatches = matchRoutesImpl(\n routesToUse,\n pathname,\n basename,\n true\n );\n return { active: true, matches: partialMatches };\n }\n }\n }\n\n return { active: false, matches: null };\n }\n\n type DiscoverRoutesSuccessResult = {\n type: \"success\";\n matches: AgnosticDataRouteMatch[] | null;\n };\n type DiscoverRoutesErrorResult = {\n type: \"error\";\n error: any;\n partialMatches: AgnosticDataRouteMatch[];\n };\n type DiscoverRoutesAbortedResult = { type: \"aborted\" };\n type DiscoverRoutesResult =\n | DiscoverRoutesSuccessResult\n | DiscoverRoutesErrorResult\n | DiscoverRoutesAbortedResult;\n\n async function discoverRoutes(\n matches: AgnosticDataRouteMatch[],\n pathname: string,\n signal: AbortSignal\n ): Promise {\n let partialMatches: AgnosticDataRouteMatch[] | null = matches;\n while (true) {\n let isNonHMR = inFlightDataRoutes == null;\n let routesToUse = inFlightDataRoutes || dataRoutes;\n try {\n await loadLazyRouteChildren(\n patchRoutesOnNavigationImpl!,\n pathname,\n partialMatches,\n routesToUse,\n manifest,\n mapRouteProperties,\n pendingPatchRoutes,\n signal\n );\n } catch (e) {\n return { type: \"error\", error: e, partialMatches };\n } finally {\n // If we are not in the middle of an HMR revalidation and we changed the\n // routes, provide a new identity so when we `updateState` at the end of\n // this navigation/fetch `router.routes` will be a new identity and\n // trigger a re-run of memoized `router.routes` dependencies.\n // HMR will already update the identity and reflow when it lands\n // `inFlightDataRoutes` in `completeNavigation`\n if (isNonHMR) {\n dataRoutes = [...dataRoutes];\n }\n }\n\n if (signal.aborted) {\n return { type: \"aborted\" };\n }\n\n let newMatches = matchRoutes(routesToUse, pathname, basename);\n if (newMatches) {\n addToFifoQueue(pathname, discoveredRoutes);\n return { type: \"success\", matches: newMatches };\n }\n\n let newPartialMatches = matchRoutesImpl(\n routesToUse,\n pathname,\n basename,\n true\n );\n\n // Avoid loops if the second pass results in the same partial matches\n if (\n !newPartialMatches ||\n (partialMatches.length === newPartialMatches.length &&\n partialMatches.every(\n (m, i) => m.route.id === newPartialMatches![i].route.id\n ))\n ) {\n addToFifoQueue(pathname, discoveredRoutes);\n return { type: \"success\", matches: null };\n }\n\n partialMatches = newPartialMatches;\n }\n }\n\n function addToFifoQueue(path: string, queue: Set) {\n if (queue.size >= discoveredRoutesMaxSize) {\n let first = queue.values().next().value;\n queue.delete(first);\n }\n queue.add(path);\n }\n\n function _internalSetRoutes(newRoutes: AgnosticDataRouteObject[]) {\n manifest = {};\n inFlightDataRoutes = convertRoutesToDataRoutes(\n newRoutes,\n mapRouteProperties,\n undefined,\n manifest\n );\n }\n\n function patchRoutes(\n routeId: string | null,\n children: AgnosticRouteObject[]\n ): void {\n let isNonHMR = inFlightDataRoutes == null;\n let routesToUse = inFlightDataRoutes || dataRoutes;\n patchRoutesImpl(\n routeId,\n children,\n routesToUse,\n manifest,\n mapRouteProperties\n );\n\n // If we are not in the middle of an HMR revalidation and we changed the\n // routes, provide a new identity and trigger a reflow via `updateState`\n // to re-run memoized `router.routes` dependencies.\n // HMR will already update the identity and reflow when it lands\n // `inFlightDataRoutes` in `completeNavigation`\n if (isNonHMR) {\n dataRoutes = [...dataRoutes];\n updateState({});\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 patchRoutes,\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 * - `opts.requestContext` is an optional server context that will be passed\n * to actions/loaders in the `context` parameter\n * - `opts.skipLoaderErrorBubbling` is an optional parameter that will prevent\n * the bubbling of errors which allows single-fetch-type implementations\n * where the client will handle the bubbling and we may need to return data\n * for the handling route\n */\n async function query(\n request: Request,\n {\n requestContext,\n skipLoaderErrorBubbling,\n unstable_dataStrategy,\n }: {\n requestContext?: unknown;\n skipLoaderErrorBubbling?: boolean;\n unstable_dataStrategy?: DataStrategyFunction;\n } = {}\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(\n request,\n location,\n matches,\n requestContext,\n unstable_dataStrategy || null,\n skipLoaderErrorBubbling === true,\n null\n );\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 * - `opts.routeId` allows you to specify the specific route handler to call.\n * If not provided the handler will determine the proper route by matching\n * against `request.url`\n * - `opts.requestContext` is an optional server context that will be passed\n * to actions/loaders in the `context` parameter\n */\n async function queryRoute(\n request: Request,\n {\n routeId,\n requestContext,\n unstable_dataStrategy,\n }: {\n requestContext?: unknown;\n routeId?: string;\n unstable_dataStrategy?: DataStrategyFunction;\n } = {}\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 unstable_dataStrategy || null,\n false,\n match\n );\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 unstable_dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\n routeMatch: AgnosticDataRouteMatch | null\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 unstable_dataStrategy,\n skipLoaderErrorBubbling,\n routeMatch != null\n );\n return result;\n }\n\n let result = await loadRouteData(\n request,\n matches,\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\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 for a\n // `queryRoute` call, we throw the `HandlerResult` to bail out early\n // and then return or throw the raw Response here accordingly\n if (isHandlerResult(e) && isResponse(e.result)) {\n if (e.type === ResultType.error) {\n throw e.result;\n }\n return e.result;\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 unstable_dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\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 let results = await callDataStrategy(\n \"action\",\n request,\n [actionMatch],\n matches,\n isRouteRequest,\n requestContext,\n unstable_dataStrategy\n );\n result = results[0];\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.response.status,\n headers: {\n Location: result.response.headers.get(\"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 // 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\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 = skipLoaderErrorBubbling\n ? actionMatch\n : findNearestBoundary(matches, actionMatch.route.id);\n\n let context = await loadRouteData(\n loaderRequest,\n matches,\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n null,\n [boundaryMatch.route.id, result]\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 : result.statusCode != null\n ? result.statusCode\n : 500,\n actionData: null,\n actionHeaders: {\n ...(result.headers ? { [actionMatch.route.id]: result.headers } : {}),\n },\n };\n }\n\n let context = await loadRouteData(\n loaderRequest,\n matches,\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n null\n );\n\n return {\n ...context,\n actionData: {\n [actionMatch.route.id]: result.data,\n },\n // action status codes take precedence over loader status codes\n ...(result.statusCode ? { statusCode: result.statusCode } : {}),\n actionHeaders: result.headers\n ? { [actionMatch.route.id]: result.headers }\n : {},\n };\n }\n\n async function loadRouteData(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\n routeMatch: AgnosticDataRouteMatch | null,\n pendingActionResult?: PendingActionResult\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 : pendingActionResult && isErrorResult(pendingActionResult[1])\n ? getLoaderMatchesUntilBoundary(matches, pendingActionResult[0])\n : matches;\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:\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? {\n [pendingActionResult[0]]: pendingActionResult[1].error,\n }\n : null,\n statusCode: 200,\n loaderHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let results = await callDataStrategy(\n \"loader\",\n request,\n matchesToLoad,\n matches,\n isRouteRequest,\n requestContext,\n unstable_dataStrategy\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 pendingActionResult,\n activeDeferreds,\n skipLoaderErrorBubbling\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 // Utility wrapper for calling dataStrategy server-side without having to\n // pass around the manifest, mapRouteProperties, etc.\n async function callDataStrategy(\n type: \"loader\" | \"action\",\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n isRouteRequest: boolean,\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null\n ): Promise {\n let results = await callDataStrategyImpl(\n unstable_dataStrategy || defaultDataStrategy,\n type,\n request,\n matchesToLoad,\n matches,\n manifest,\n mapRouteProperties,\n requestContext\n );\n\n return await Promise.all(\n results.map((result, i) => {\n if (isRedirectHandlerResult(result)) {\n let response = result.result as Response;\n // Throw redirects and let the server handle them with an HTTP redirect\n throw normalizeRelativeRoutingRedirectResponse(\n response,\n request,\n matchesToLoad[i].route.id,\n matches,\n basename,\n future.v7_relativeSplatPath\n );\n }\n if (isResponse(result.result) && isRouteRequest) {\n // For SSR single-route requests, we want to hand Responses back\n // directly without unwrapping\n throw result;\n }\n\n return convertHandlerResultToDataResult(result);\n })\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 skipActionErrorRevalidation: boolean,\n isRevalidationRequired: boolean,\n cancelledDeferredRoutes: string[],\n cancelledFetcherLoads: Set,\n deletedFetchers: Set,\n fetchLoadMatches: Map,\n fetchRedirectIds: Set,\n routesToUse: AgnosticDataRouteObject[],\n basename: string | undefined,\n pendingActionResult?: PendingActionResult\n): [AgnosticDataRouteMatch[], RevalidatingFetcher[]] {\n let actionResult = pendingActionResult\n ? isErrorResult(pendingActionResult[1])\n ? pendingActionResult[1].error\n : pendingActionResult[1].data\n : undefined;\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 =\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? pendingActionResult[0]\n : undefined;\n let boundaryMatches = boundaryId\n ? getLoaderMatchesUntilBoundary(matches, boundaryId)\n : matches;\n\n // Don't revalidate loaders by default after action 4xx/5xx responses\n // when the flag is enabled. They can still opt-into revalidation via\n // `shouldRevalidate` via `actionResult`\n let actionStatus = pendingActionResult\n ? pendingActionResult[1].statusCode\n : undefined;\n let shouldSkipRevalidation =\n skipActionErrorRevalidation && actionStatus && actionStatus >= 400;\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 (typeof route.loader !== \"function\" || 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 actionStatus,\n defaultShouldRevalidate: shouldSkipRevalidation\n ? false\n : // Forced revalidation due to submission, useRevalidator, or X-Remix-Revalidate\n isRevalidationRequired ||\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.has(key)) {\n // Always mark for revalidation if the fetcher was cancelled\n cancelledFetcherLoads.delete(key);\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 actionStatus,\n defaultShouldRevalidate: shouldSkipRevalidation\n ? false\n : 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 * Idempotent utility to execute patchRoutesOnNavigation() to lazily load route\n * definitions and update the routes/routeManifest\n */\nasync function loadLazyRouteChildren(\n patchRoutesOnNavigationImpl: AgnosticPatchRoutesOnNavigationFunction,\n path: string,\n matches: AgnosticDataRouteMatch[],\n routes: AgnosticDataRouteObject[],\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction,\n pendingRouteChildren: Map<\n string,\n ReturnType\n >,\n signal: AbortSignal\n) {\n let key = [path, ...matches.map((m) => m.route.id)].join(\"-\");\n try {\n let pending = pendingRouteChildren.get(key);\n if (!pending) {\n pending = patchRoutesOnNavigationImpl({\n path,\n matches,\n patch: (routeId, children) => {\n if (!signal.aborted) {\n patchRoutesImpl(\n routeId,\n children,\n routes,\n manifest,\n mapRouteProperties\n );\n }\n },\n });\n pendingRouteChildren.set(key, pending);\n }\n\n if (pending && isPromise(pending)) {\n await pending;\n }\n } finally {\n pendingRouteChildren.delete(key);\n }\n}\n\nfunction patchRoutesImpl(\n routeId: string | null,\n children: AgnosticRouteObject[],\n routesToUse: AgnosticDataRouteObject[],\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction\n) {\n if (routeId) {\n let route = manifest[routeId];\n invariant(\n route,\n `No route found to patch children into: routeId = ${routeId}`\n );\n let dataChildren = convertRoutesToDataRoutes(\n children,\n mapRouteProperties,\n [routeId, \"patch\", String(route.children?.length || \"0\")],\n manifest\n );\n if (route.children) {\n route.children.push(...dataChildren);\n } else {\n route.children = dataChildren;\n }\n } else {\n let dataChildren = convertRoutesToDataRoutes(\n children,\n mapRouteProperties,\n [\"patch\", String(routesToUse.length || \"0\")],\n manifest\n );\n routesToUse.push(...dataChildren);\n }\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\n// Default implementation of `dataStrategy` which fetches all loaders in parallel\nfunction defaultDataStrategy(\n opts: DataStrategyFunctionArgs\n): ReturnType {\n return Promise.all(opts.matches.map((m) => m.resolve()));\n}\n\nasync function callDataStrategyImpl(\n dataStrategyImpl: DataStrategyFunction,\n type: \"loader\" | \"action\",\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction,\n requestContext?: unknown\n): Promise {\n let routeIdsToLoad = matchesToLoad.reduce(\n (acc, m) => acc.add(m.route.id),\n new Set()\n );\n let loadedMatches = new Set();\n\n // Send all matches here to allow for a middleware-type implementation.\n // handler will be a no-op for unneeded routes and we filter those results\n // back out below.\n let results = await dataStrategyImpl({\n matches: matches.map((match) => {\n let shouldLoad = routeIdsToLoad.has(match.route.id);\n // `resolve` encapsulates the route.lazy, executing the\n // loader/action, and mapping return values/thrown errors to a\n // HandlerResult. Users can pass a callback to take fine-grained control\n // over the execution of the loader/action\n let resolve: DataStrategyMatch[\"resolve\"] = (handlerOverride) => {\n loadedMatches.add(match.route.id);\n return shouldLoad\n ? callLoaderOrAction(\n type,\n request,\n match,\n manifest,\n mapRouteProperties,\n handlerOverride,\n requestContext\n )\n : Promise.resolve({ type: ResultType.data, result: undefined });\n };\n\n return {\n ...match,\n shouldLoad,\n resolve,\n };\n }),\n request,\n params: matches[0].params,\n context: requestContext,\n });\n\n // Throw if any loadRoute implementations not called since they are what\n // ensures a route is fully loaded\n matches.forEach((m) =>\n invariant(\n loadedMatches.has(m.route.id),\n `\\`match.resolve()\\` was not called for route id \"${m.route.id}\". ` +\n \"You must call `match.resolve()` on every match passed to \" +\n \"`dataStrategy` to ensure all routes are properly loaded.\"\n )\n );\n\n // Filter out any middleware-only matches for which we didn't need to run handlers\n return results.filter((_, i) => routeIdsToLoad.has(matches[i].route.id));\n}\n\n// Default logic for calling a loader/action is the user has no specified a dataStrategy\nasync function callLoaderOrAction(\n type: \"loader\" | \"action\",\n request: Request,\n match: AgnosticDataRouteMatch,\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction,\n handlerOverride: Parameters[0],\n staticContext?: unknown\n): Promise {\n let result: HandlerResult;\n let onReject: (() => void) | undefined;\n\n let runHandler = (\n handler: AgnosticRouteObject[\"loader\"] | AgnosticRouteObject[\"action\"]\n ): Promise => {\n // Setup a promise we can race against so that abort signals short circuit\n let reject: () => void;\n // This will never resolve so safe to type it as Promise to\n // satisfy the function return value\n let abortPromise = new Promise((_, r) => (reject = r));\n onReject = () => reject();\n request.signal.addEventListener(\"abort\", onReject);\n\n let actualHandler = (ctx?: unknown) => {\n if (typeof handler !== \"function\") {\n return Promise.reject(\n new Error(\n `You cannot call the handler for a route which defines a boolean ` +\n `\"${type}\" [routeId: ${match.route.id}]`\n )\n );\n }\n return handler(\n {\n request,\n params: match.params,\n context: staticContext,\n },\n ...(ctx !== undefined ? [ctx] : [])\n );\n };\n\n let handlerPromise: Promise
a||125d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","//\n\nmodule.exports = function shallowEqual(objA, objB, compare, compareContext) {\n var ret = compare ? compare.call(compareContext, objA, objB) : void 0;\n\n if (ret !== void 0) {\n return !!ret;\n }\n\n if (objA === objB) {\n return true;\n }\n\n if (typeof objA !== \"object\" || !objA || typeof objB !== \"object\" || !objB) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);\n\n // Test for A's keys different from B.\n for (var idx = 0; idx < keysA.length; idx++) {\n var key = keysA[idx];\n\n if (!bHasOwnProperty(key)) {\n return false;\n }\n\n var valueA = objA[key];\n var valueB = objB[key];\n\n ret = compare ? compare.call(compareContext, valueA, valueB, key) : void 0;\n\n if (ret === false || (ret === void 0 && valueA !== valueB)) {\n return false;\n }\n }\n\n return true;\n};\n","var camel2hyphen = function (str) {\n return str\n .replace(/[A-Z]/g, function (match) {\n return '-' + match.toLowerCase();\n })\n .toLowerCase();\n};\n\nmodule.exports = camel2hyphen;","/*!\n* sweetalert2 v11.12.4\n* Released under the MIT License.\n*/\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Sweetalert2 = factory());\n})(this, (function () { 'use strict';\n\n function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n }\n function _arrayWithHoles(r) {\n if (Array.isArray(r)) return r;\n }\n function _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return _arrayLikeToArray(r);\n }\n function _assertClassBrand(e, t, n) {\n if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n;\n throw new TypeError(\"Private element is not present on this object\");\n }\n function _assertThisInitialized(e) {\n if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return e;\n }\n function _callSuper(t, o, e) {\n return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e));\n }\n function _checkPrivateRedeclaration(e, t) {\n if (t.has(e)) throw new TypeError(\"Cannot initialize the same private elements twice on an object\");\n }\n function _classCallCheck(a, n) {\n if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n }\n function _classPrivateFieldGet2(s, a) {\n return s.get(_assertClassBrand(s, a));\n }\n function _classPrivateFieldInitSpec(e, t, a) {\n _checkPrivateRedeclaration(e, t), t.set(e, a);\n }\n function _classPrivateFieldSet2(s, a, r) {\n return s.set(_assertClassBrand(s, a), r), r;\n }\n function _construct(t, e, r) {\n if (_isNativeReflectConstruct()) return Reflect.construct.apply(null, arguments);\n var o = [null];\n o.push.apply(o, e);\n var p = new (t.bind.apply(t, o))();\n return p;\n }\n function _defineProperties(e, r) {\n for (var t = 0; t < r.length; t++) {\n var o = r[t];\n o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o);\n }\n }\n function _createClass(e, r, t) {\n return r && _defineProperties(e.prototype, r), Object.defineProperty(e, \"prototype\", {\n writable: !1\n }), e;\n }\n function _createForOfIteratorHelper(r, e) {\n var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (!t) {\n if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e) {\n t && (r = t);\n var n = 0,\n F = function () {};\n return {\n s: F,\n n: function () {\n return n >= r.length ? {\n done: !0\n } : {\n done: !1,\n value: r[n++]\n };\n },\n e: function (r) {\n throw r;\n },\n f: F\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n var o,\n a = !0,\n u = !1;\n return {\n s: function () {\n t = t.call(r);\n },\n n: function () {\n var r = t.next();\n return a = r.done, r;\n },\n e: function (r) {\n u = !0, o = r;\n },\n f: function () {\n try {\n a || null == t.return || t.return();\n } finally {\n if (u) throw o;\n }\n }\n };\n }\n function _get() {\n return _get = \"undefined\" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) {\n var p = _superPropBase(e, t);\n if (p) {\n var n = Object.getOwnPropertyDescriptor(p, t);\n return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value;\n }\n }, _get.apply(null, arguments);\n }\n function _getPrototypeOf(t) {\n return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) {\n return t.__proto__ || Object.getPrototypeOf(t);\n }, _getPrototypeOf(t);\n }\n function _inherits(t, e) {\n if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function\");\n t.prototype = Object.create(e && e.prototype, {\n constructor: {\n value: t,\n writable: !0,\n configurable: !0\n }\n }), Object.defineProperty(t, \"prototype\", {\n writable: !1\n }), e && _setPrototypeOf(t, e);\n }\n function _isNativeReflectConstruct() {\n try {\n var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n } catch (t) {}\n return (_isNativeReflectConstruct = function () {\n return !!t;\n })();\n }\n function _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n }\n function _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) ; else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n }\n function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n function _possibleConstructorReturn(t, e) {\n if (e && (\"object\" == typeof e || \"function\" == typeof e)) return e;\n if (void 0 !== e) throw new TypeError(\"Derived constructors may only return object or undefined\");\n return _assertThisInitialized(t);\n }\n function _setPrototypeOf(t, e) {\n return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, _setPrototypeOf(t, e);\n }\n function _slicedToArray(r, e) {\n return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest();\n }\n function _superPropBase(t, o) {\n for (; !{}.hasOwnProperty.call(t, o) && null !== (t = _getPrototypeOf(t)););\n return t;\n }\n function _superPropGet(t, e, r, o) {\n var p = _get(_getPrototypeOf(t.prototype ), e, r);\n return function (t) {\n return p.apply(r, t);\n } ;\n }\n function _toConsumableArray(r) {\n return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread();\n }\n function _toPrimitive(t, r) {\n if (\"object\" != typeof t || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r);\n if (\"object\" != typeof i) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (String )(t);\n }\n function _toPropertyKey(t) {\n var i = _toPrimitive(t, \"string\");\n return \"symbol\" == typeof i ? i : i + \"\";\n }\n function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n }\n function _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return _arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;\n }\n }\n\n var RESTORE_FOCUS_TIMEOUT = 100;\n\n /** @type {GlobalState} */\n var globalState = {};\n var focusPreviousActiveElement = function focusPreviousActiveElement() {\n if (globalState.previousActiveElement instanceof HTMLElement) {\n globalState.previousActiveElement.focus();\n globalState.previousActiveElement = null;\n } else if (document.body) {\n document.body.focus();\n }\n };\n\n /**\n * Restore previous active (focused) element\n *\n * @param {boolean} returnFocus\n * @returns {Promise}\n */\n var restoreActiveElement = function restoreActiveElement(returnFocus) {\n return new Promise(function (resolve) {\n if (!returnFocus) {\n return resolve();\n }\n var x = window.scrollX;\n var y = window.scrollY;\n globalState.restoreFocusTimeout = setTimeout(function () {\n focusPreviousActiveElement();\n resolve();\n }, RESTORE_FOCUS_TIMEOUT); // issues/900\n\n window.scrollTo(x, y);\n });\n };\n\n var swalPrefix = 'swal2-';\n\n /**\n * @typedef {Record} SwalClasses\n */\n\n /**\n * @typedef {'success' | 'warning' | 'info' | 'question' | 'error'} SwalIcon\n * @typedef {Record} SwalIcons\n */\n\n /** @type {SwalClass[]} */\n var classNames = ['container', 'shown', 'height-auto', 'iosfix', 'popup', 'modal', 'no-backdrop', 'no-transition', 'toast', 'toast-shown', 'show', 'hide', 'close', 'title', 'html-container', 'actions', 'confirm', 'deny', 'cancel', 'default-outline', 'footer', 'icon', 'icon-content', 'image', 'input', 'file', 'range', 'select', 'radio', 'checkbox', 'label', 'textarea', 'inputerror', 'input-label', 'validation-message', 'progress-steps', 'active-progress-step', 'progress-step', 'progress-step-line', 'loader', 'loading', 'styled', 'top', 'top-start', 'top-end', 'top-left', 'top-right', 'center', 'center-start', 'center-end', 'center-left', 'center-right', 'bottom', 'bottom-start', 'bottom-end', 'bottom-left', 'bottom-right', 'grow-row', 'grow-column', 'grow-fullscreen', 'rtl', 'timer-progress-bar', 'timer-progress-bar-container', 'scrollbar-measure', 'icon-success', 'icon-warning', 'icon-info', 'icon-question', 'icon-error'];\n var swalClasses = classNames.reduce(function (acc, className) {\n acc[className] = swalPrefix + className;\n return acc;\n }, /** @type {SwalClasses} */{});\n\n /** @type {SwalIcon[]} */\n var icons = ['success', 'warning', 'info', 'question', 'error'];\n var iconTypes = icons.reduce(function (acc, icon) {\n acc[icon] = swalPrefix + icon;\n return acc;\n }, /** @type {SwalIcons} */{});\n\n var consolePrefix = 'SweetAlert2:';\n\n /**\n * Capitalize the first letter of a string\n *\n * @param {string} str\n * @returns {string}\n */\n var capitalizeFirstLetter = function capitalizeFirstLetter(str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n };\n\n /**\n * Standardize console warnings\n *\n * @param {string | string[]} message\n */\n var warn = function warn(message) {\n console.warn(\"\".concat(consolePrefix, \" \").concat(_typeof(message) === 'object' ? message.join(' ') : message));\n };\n\n /**\n * Standardize console errors\n *\n * @param {string} message\n */\n var error = function error(message) {\n console.error(\"\".concat(consolePrefix, \" \").concat(message));\n };\n\n /**\n * Private global state for `warnOnce`\n *\n * @type {string[]}\n * @private\n */\n var previousWarnOnceMessages = [];\n\n /**\n * Show a console warning, but only if it hasn't already been shown\n *\n * @param {string} message\n */\n var warnOnce = function warnOnce(message) {\n if (!previousWarnOnceMessages.includes(message)) {\n previousWarnOnceMessages.push(message);\n warn(message);\n }\n };\n\n /**\n * Show a one-time console warning about deprecated params/methods\n *\n * @param {string} deprecatedParam\n * @param {string?} useInstead\n */\n var warnAboutDeprecation = function warnAboutDeprecation(deprecatedParam) {\n var useInstead = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n warnOnce(\"\\\"\".concat(deprecatedParam, \"\\\" is deprecated and will be removed in the next major release.\").concat(useInstead ? \" Use \\\"\".concat(useInstead, \"\\\" instead.\") : ''));\n };\n\n /**\n * If `arg` is a function, call it (with no arguments or context) and return the result.\n * Otherwise, just pass the value through\n *\n * @param {Function | any} arg\n * @returns {any}\n */\n var callIfFunction = function callIfFunction(arg) {\n return typeof arg === 'function' ? arg() : arg;\n };\n\n /**\n * @param {any} arg\n * @returns {boolean}\n */\n var hasToPromiseFn = function hasToPromiseFn(arg) {\n return arg && typeof arg.toPromise === 'function';\n };\n\n /**\n * @param {any} arg\n * @returns {Promise}\n */\n var asPromise = function asPromise(arg) {\n return hasToPromiseFn(arg) ? arg.toPromise() : Promise.resolve(arg);\n };\n\n /**\n * @param {any} arg\n * @returns {boolean}\n */\n var isPromise = function isPromise(arg) {\n return arg && Promise.resolve(arg) === arg;\n };\n\n /**\n * Gets the popup container which contains the backdrop and the popup itself.\n *\n * @returns {HTMLElement | null}\n */\n var getContainer = function getContainer() {\n return document.body.querySelector(\".\".concat(swalClasses.container));\n };\n\n /**\n * @param {string} selectorString\n * @returns {HTMLElement | null}\n */\n var elementBySelector = function elementBySelector(selectorString) {\n var container = getContainer();\n return container ? container.querySelector(selectorString) : null;\n };\n\n /**\n * @param {string} className\n * @returns {HTMLElement | null}\n */\n var elementByClass = function elementByClass(className) {\n return elementBySelector(\".\".concat(className));\n };\n\n /**\n * @returns {HTMLElement | null}\n */\n var getPopup = function getPopup() {\n return elementByClass(swalClasses.popup);\n };\n\n /**\n * @returns {HTMLElement | null}\n */\n var getIcon = function getIcon() {\n return elementByClass(swalClasses.icon);\n };\n\n /**\n * @returns {HTMLElement | null}\n */\n var getIconContent = function getIconContent() {\n return elementByClass(swalClasses['icon-content']);\n };\n\n /**\n * @returns {HTMLElement | null}\n */\n var getTitle = function getTitle() {\n return elementByClass(swalClasses.title);\n };\n\n /**\n * @returns {HTMLElement | null}\n */\n var getHtmlContainer = function getHtmlContainer() {\n return elementByClass(swalClasses['html-container']);\n };\n\n /**\n * @returns {HTMLElement | null}\n */\n var getImage = function getImage() {\n return elementByClass(swalClasses.image);\n };\n\n /**\n * @returns {HTMLElement | null}\n */\n var getProgressSteps = function getProgressSteps() {\n return elementByClass(swalClasses['progress-steps']);\n };\n\n /**\n * @returns {HTMLElement | null}\n */\n var getValidationMessage = function getValidationMessage() {\n return elementByClass(swalClasses['validation-message']);\n };\n\n /**\n * @returns {HTMLButtonElement | null}\n */\n var getConfirmButton = function getConfirmButton() {\n return /** @type {HTMLButtonElement} */elementBySelector(\".\".concat(swalClasses.actions, \" .\").concat(swalClasses.confirm));\n };\n\n /**\n * @returns {HTMLButtonElement | null}\n */\n var getCancelButton = function getCancelButton() {\n return /** @type {HTMLButtonElement} */elementBySelector(\".\".concat(swalClasses.actions, \" .\").concat(swalClasses.cancel));\n };\n\n /**\n * @returns {HTMLButtonElement | null}\n */\n var getDenyButton = function getDenyButton() {\n return /** @type {HTMLButtonElement} */elementBySelector(\".\".concat(swalClasses.actions, \" .\").concat(swalClasses.deny));\n };\n\n /**\n * @returns {HTMLElement | null}\n */\n var getInputLabel = function getInputLabel() {\n return elementByClass(swalClasses['input-label']);\n };\n\n /**\n * @returns {HTMLElement | null}\n */\n var getLoader = function getLoader() {\n return elementBySelector(\".\".concat(swalClasses.loader));\n };\n\n /**\n * @returns {HTMLElement | null}\n */\n var getActions = function getActions() {\n return elementByClass(swalClasses.actions);\n };\n\n /**\n * @returns {HTMLElement | null}\n */\n var getFooter = function getFooter() {\n return elementByClass(swalClasses.footer);\n };\n\n /**\n * @returns {HTMLElement | null}\n */\n var getTimerProgressBar = function getTimerProgressBar() {\n return elementByClass(swalClasses['timer-progress-bar']);\n };\n\n /**\n * @returns {HTMLElement | null}\n */\n var getCloseButton = function getCloseButton() {\n return elementByClass(swalClasses.close);\n };\n\n // https://github.com/jkup/focusable/blob/master/index.js\n var focusable = \"\\n a[href],\\n area[href],\\n input:not([disabled]),\\n select:not([disabled]),\\n textarea:not([disabled]),\\n button:not([disabled]),\\n iframe,\\n object,\\n embed,\\n [tabindex=\\\"0\\\"],\\n [contenteditable],\\n audio[controls],\\n video[controls],\\n summary\\n\";\n /**\n * @returns {HTMLElement[]}\n */\n var getFocusableElements = function getFocusableElements() {\n var popup = getPopup();\n if (!popup) {\n return [];\n }\n /** @type {NodeListOf} */\n var focusableElementsWithTabindex = popup.querySelectorAll('[tabindex]:not([tabindex=\"-1\"]):not([tabindex=\"0\"])');\n var focusableElementsWithTabindexSorted = Array.from(focusableElementsWithTabindex)\n // sort according to tabindex\n .sort(function (a, b) {\n var tabindexA = parseInt(a.getAttribute('tabindex') || '0');\n var tabindexB = parseInt(b.getAttribute('tabindex') || '0');\n if (tabindexA > tabindexB) {\n return 1;\n } else if (tabindexA < tabindexB) {\n return -1;\n }\n return 0;\n });\n\n /** @type {NodeListOf} */\n var otherFocusableElements = popup.querySelectorAll(focusable);\n var otherFocusableElementsFiltered = Array.from(otherFocusableElements).filter(function (el) {\n return el.getAttribute('tabindex') !== '-1';\n });\n return _toConsumableArray(new Set(focusableElementsWithTabindexSorted.concat(otherFocusableElementsFiltered))).filter(function (el) {\n return isVisible$1(el);\n });\n };\n\n /**\n * @returns {boolean}\n */\n var isModal = function isModal() {\n return hasClass(document.body, swalClasses.shown) && !hasClass(document.body, swalClasses['toast-shown']) && !hasClass(document.body, swalClasses['no-backdrop']);\n };\n\n /**\n * @returns {boolean}\n */\n var isToast = function isToast() {\n var popup = getPopup();\n if (!popup) {\n return false;\n }\n return hasClass(popup, swalClasses.toast);\n };\n\n /**\n * @returns {boolean}\n */\n var isLoading = function isLoading() {\n var popup = getPopup();\n if (!popup) {\n return false;\n }\n return popup.hasAttribute('data-loading');\n };\n\n /**\n * Securely set innerHTML of an element\n * https://github.com/sweetalert2/sweetalert2/issues/1926\n *\n * @param {HTMLElement} elem\n * @param {string} html\n */\n var setInnerHtml = function setInnerHtml(elem, html) {\n elem.textContent = '';\n if (html) {\n var parser = new DOMParser();\n var parsed = parser.parseFromString(html, \"text/html\");\n var head = parsed.querySelector('head');\n if (head) {\n Array.from(head.childNodes).forEach(function (child) {\n elem.appendChild(child);\n });\n }\n var body = parsed.querySelector('body');\n if (body) {\n Array.from(body.childNodes).forEach(function (child) {\n if (child instanceof HTMLVideoElement || child instanceof HTMLAudioElement) {\n elem.appendChild(child.cloneNode(true)); // https://github.com/sweetalert2/sweetalert2/issues/2507\n } else {\n elem.appendChild(child);\n }\n });\n }\n }\n };\n\n /**\n * @param {HTMLElement} elem\n * @param {string} className\n * @returns {boolean}\n */\n var hasClass = function hasClass(elem, className) {\n if (!className) {\n return false;\n }\n var classList = className.split(/\\s+/);\n for (var i = 0; i < classList.length; i++) {\n if (!elem.classList.contains(classList[i])) {\n return false;\n }\n }\n return true;\n };\n\n /**\n * @param {HTMLElement} elem\n * @param {SweetAlertOptions} params\n */\n var removeCustomClasses = function removeCustomClasses(elem, params) {\n Array.from(elem.classList).forEach(function (className) {\n if (!Object.values(swalClasses).includes(className) && !Object.values(iconTypes).includes(className) && !Object.values(params.showClass || {}).includes(className)) {\n elem.classList.remove(className);\n }\n });\n };\n\n /**\n * @param {HTMLElement} elem\n * @param {SweetAlertOptions} params\n * @param {string} className\n */\n var applyCustomClass = function applyCustomClass(elem, params, className) {\n removeCustomClasses(elem, params);\n if (!params.customClass) {\n return;\n }\n var customClass = params.customClass[( /** @type {keyof SweetAlertCustomClass} */className)];\n if (!customClass) {\n return;\n }\n if (typeof customClass !== 'string' && !customClass.forEach) {\n warn(\"Invalid type of customClass.\".concat(className, \"! Expected string or iterable object, got \\\"\").concat(_typeof(customClass), \"\\\"\"));\n return;\n }\n addClass(elem, customClass);\n };\n\n /**\n * @param {HTMLElement} popup\n * @param {import('./renderers/renderInput').InputClass | SweetAlertInput} inputClass\n * @returns {HTMLInputElement | null}\n */\n var getInput$1 = function getInput(popup, inputClass) {\n if (!inputClass) {\n return null;\n }\n switch (inputClass) {\n case 'select':\n case 'textarea':\n case 'file':\n return popup.querySelector(\".\".concat(swalClasses.popup, \" > .\").concat(swalClasses[inputClass]));\n case 'checkbox':\n return popup.querySelector(\".\".concat(swalClasses.popup, \" > .\").concat(swalClasses.checkbox, \" input\"));\n case 'radio':\n return popup.querySelector(\".\".concat(swalClasses.popup, \" > .\").concat(swalClasses.radio, \" input:checked\")) || popup.querySelector(\".\".concat(swalClasses.popup, \" > .\").concat(swalClasses.radio, \" input:first-child\"));\n case 'range':\n return popup.querySelector(\".\".concat(swalClasses.popup, \" > .\").concat(swalClasses.range, \" input\"));\n default:\n return popup.querySelector(\".\".concat(swalClasses.popup, \" > .\").concat(swalClasses.input));\n }\n };\n\n /**\n * @param {HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement} input\n */\n var focusInput = function focusInput(input) {\n input.focus();\n\n // place cursor at end of text in text input\n if (input.type !== 'file') {\n // http://stackoverflow.com/a/2345915\n var val = input.value;\n input.value = '';\n input.value = val;\n }\n };\n\n /**\n * @param {HTMLElement | HTMLElement[] | null} target\n * @param {string | string[] | readonly string[] | undefined} classList\n * @param {boolean} condition\n */\n var toggleClass = function toggleClass(target, classList, condition) {\n if (!target || !classList) {\n return;\n }\n if (typeof classList === 'string') {\n classList = classList.split(/\\s+/).filter(Boolean);\n }\n classList.forEach(function (className) {\n if (Array.isArray(target)) {\n target.forEach(function (elem) {\n if (condition) {\n elem.classList.add(className);\n } else {\n elem.classList.remove(className);\n }\n });\n } else {\n if (condition) {\n target.classList.add(className);\n } else {\n target.classList.remove(className);\n }\n }\n });\n };\n\n /**\n * @param {HTMLElement | HTMLElement[] | null} target\n * @param {string | string[] | readonly string[] | undefined} classList\n */\n var addClass = function addClass(target, classList) {\n toggleClass(target, classList, true);\n };\n\n /**\n * @param {HTMLElement | HTMLElement[] | null} target\n * @param {string | string[] | readonly string[] | undefined} classList\n */\n var removeClass = function removeClass(target, classList) {\n toggleClass(target, classList, false);\n };\n\n /**\n * Get direct child of an element by class name\n *\n * @param {HTMLElement} elem\n * @param {string} className\n * @returns {HTMLElement | undefined}\n */\n var getDirectChildByClass = function getDirectChildByClass(elem, className) {\n var children = Array.from(elem.children);\n for (var i = 0; i < children.length; i++) {\n var child = children[i];\n if (child instanceof HTMLElement && hasClass(child, className)) {\n return child;\n }\n }\n };\n\n /**\n * @param {HTMLElement} elem\n * @param {string} property\n * @param {*} value\n */\n var applyNumericalStyle = function applyNumericalStyle(elem, property, value) {\n if (value === \"\".concat(parseInt(value))) {\n value = parseInt(value);\n }\n if (value || parseInt(value) === 0) {\n elem.style.setProperty(property, typeof value === 'number' ? \"\".concat(value, \"px\") : value);\n } else {\n elem.style.removeProperty(property);\n }\n };\n\n /**\n * @param {HTMLElement | null} elem\n * @param {string} display\n */\n var show = function show(elem) {\n var display = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'flex';\n if (!elem) {\n return;\n }\n elem.style.display = display;\n };\n\n /**\n * @param {HTMLElement | null} elem\n */\n var hide = function hide(elem) {\n if (!elem) {\n return;\n }\n elem.style.display = 'none';\n };\n\n /**\n * @param {HTMLElement | null} elem\n * @param {string} display\n */\n var showWhenInnerHtmlPresent = function showWhenInnerHtmlPresent(elem) {\n var display = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'block';\n if (!elem) {\n return;\n }\n new MutationObserver(function () {\n toggle(elem, elem.innerHTML, display);\n }).observe(elem, {\n childList: true,\n subtree: true\n });\n };\n\n /**\n * @param {HTMLElement} parent\n * @param {string} selector\n * @param {string} property\n * @param {string} value\n */\n var setStyle = function setStyle(parent, selector, property, value) {\n /** @type {HTMLElement | null} */\n var el = parent.querySelector(selector);\n if (el) {\n el.style.setProperty(property, value);\n }\n };\n\n /**\n * @param {HTMLElement} elem\n * @param {any} condition\n * @param {string} display\n */\n var toggle = function toggle(elem, condition) {\n var display = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'flex';\n if (condition) {\n show(elem, display);\n } else {\n hide(elem);\n }\n };\n\n /**\n * borrowed from jquery $(elem).is(':visible') implementation\n *\n * @param {HTMLElement | null} elem\n * @returns {boolean}\n */\n var isVisible$1 = function isVisible(elem) {\n return !!(elem && (elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length));\n };\n\n /**\n * @returns {boolean}\n */\n var allButtonsAreHidden = function allButtonsAreHidden() {\n return !isVisible$1(getConfirmButton()) && !isVisible$1(getDenyButton()) && !isVisible$1(getCancelButton());\n };\n\n /**\n * @param {HTMLElement} elem\n * @returns {boolean}\n */\n var isScrollable = function isScrollable(elem) {\n return !!(elem.scrollHeight > elem.clientHeight);\n };\n\n /**\n * borrowed from https://stackoverflow.com/a/46352119\n *\n * @param {HTMLElement} elem\n * @returns {boolean}\n */\n var hasCssAnimation = function hasCssAnimation(elem) {\n var style = window.getComputedStyle(elem);\n var animDuration = parseFloat(style.getPropertyValue('animation-duration') || '0');\n var transDuration = parseFloat(style.getPropertyValue('transition-duration') || '0');\n return animDuration > 0 || transDuration > 0;\n };\n\n /**\n * @param {number} timer\n * @param {boolean} reset\n */\n var animateTimerProgressBar = function animateTimerProgressBar(timer) {\n var reset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var timerProgressBar = getTimerProgressBar();\n if (!timerProgressBar) {\n return;\n }\n if (isVisible$1(timerProgressBar)) {\n if (reset) {\n timerProgressBar.style.transition = 'none';\n timerProgressBar.style.width = '100%';\n }\n setTimeout(function () {\n timerProgressBar.style.transition = \"width \".concat(timer / 1000, \"s linear\");\n timerProgressBar.style.width = '0%';\n }, 10);\n }\n };\n var stopTimerProgressBar = function stopTimerProgressBar() {\n var timerProgressBar = getTimerProgressBar();\n if (!timerProgressBar) {\n return;\n }\n var timerProgressBarWidth = parseInt(window.getComputedStyle(timerProgressBar).width);\n timerProgressBar.style.removeProperty('transition');\n timerProgressBar.style.width = '100%';\n var timerProgressBarFullWidth = parseInt(window.getComputedStyle(timerProgressBar).width);\n var timerProgressBarPercent = timerProgressBarWidth / timerProgressBarFullWidth * 100;\n timerProgressBar.style.width = \"\".concat(timerProgressBarPercent, \"%\");\n };\n\n /**\n * Detect Node env\n *\n * @returns {boolean}\n */\n var isNodeEnv = function isNodeEnv() {\n return typeof window === 'undefined' || typeof document === 'undefined';\n };\n\n var sweetHTML = \"\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\").replace(/(^|\\n)\\s*/g, '');\n\n /**\n * @returns {boolean}\n */\n var resetOldContainer = function resetOldContainer() {\n var oldContainer = getContainer();\n if (!oldContainer) {\n return false;\n }\n oldContainer.remove();\n removeClass([document.documentElement, document.body], [swalClasses['no-backdrop'], swalClasses['toast-shown'], swalClasses['has-column']]);\n return true;\n };\n var resetValidationMessage$1 = function resetValidationMessage() {\n globalState.currentInstance.resetValidationMessage();\n };\n var addInputChangeListeners = function addInputChangeListeners() {\n var popup = getPopup();\n var input = getDirectChildByClass(popup, swalClasses.input);\n var file = getDirectChildByClass(popup, swalClasses.file);\n /** @type {HTMLInputElement} */\n var range = popup.querySelector(\".\".concat(swalClasses.range, \" input\"));\n /** @type {HTMLOutputElement} */\n var rangeOutput = popup.querySelector(\".\".concat(swalClasses.range, \" output\"));\n var select = getDirectChildByClass(popup, swalClasses.select);\n /** @type {HTMLInputElement} */\n var checkbox = popup.querySelector(\".\".concat(swalClasses.checkbox, \" input\"));\n var textarea = getDirectChildByClass(popup, swalClasses.textarea);\n input.oninput = resetValidationMessage$1;\n file.onchange = resetValidationMessage$1;\n select.onchange = resetValidationMessage$1;\n checkbox.onchange = resetValidationMessage$1;\n textarea.oninput = resetValidationMessage$1;\n range.oninput = function () {\n resetValidationMessage$1();\n rangeOutput.value = range.value;\n };\n range.onchange = function () {\n resetValidationMessage$1();\n rangeOutput.value = range.value;\n };\n };\n\n /**\n * @param {string | HTMLElement} target\n * @returns {HTMLElement}\n */\n var getTarget = function getTarget(target) {\n return typeof target === 'string' ? document.querySelector(target) : target;\n };\n\n /**\n * @param {SweetAlertOptions} params\n */\n var setupAccessibility = function setupAccessibility(params) {\n var popup = getPopup();\n popup.setAttribute('role', params.toast ? 'alert' : 'dialog');\n popup.setAttribute('aria-live', params.toast ? 'polite' : 'assertive');\n if (!params.toast) {\n popup.setAttribute('aria-modal', 'true');\n }\n };\n\n /**\n * @param {HTMLElement} targetElement\n */\n var setupRTL = function setupRTL(targetElement) {\n if (window.getComputedStyle(targetElement).direction === 'rtl') {\n addClass(getContainer(), swalClasses.rtl);\n }\n };\n\n /**\n * Add modal + backdrop + no-war message for Russians to DOM\n *\n * @param {SweetAlertOptions} params\n */\n var init = function init(params) {\n // Clean up the old popup container if it exists\n var oldContainerExisted = resetOldContainer();\n if (isNodeEnv()) {\n error('SweetAlert2 requires document to initialize');\n return;\n }\n var container = document.createElement('div');\n container.className = swalClasses.container;\n if (oldContainerExisted) {\n addClass(container, swalClasses['no-transition']);\n }\n setInnerHtml(container, sweetHTML);\n var targetElement = getTarget(params.target);\n targetElement.appendChild(container);\n setupAccessibility(params);\n setupRTL(targetElement);\n addInputChangeListeners();\n };\n\n /**\n * @param {HTMLElement | object | string} param\n * @param {HTMLElement} target\n */\n var parseHtmlToContainer = function parseHtmlToContainer(param, target) {\n // DOM element\n if (param instanceof HTMLElement) {\n target.appendChild(param);\n }\n\n // Object\n else if (_typeof(param) === 'object') {\n handleObject(param, target);\n }\n\n // Plain string\n else if (param) {\n setInnerHtml(target, param);\n }\n };\n\n /**\n * @param {any} param\n * @param {HTMLElement} target\n */\n var handleObject = function handleObject(param, target) {\n // JQuery element(s)\n if (param.jquery) {\n handleJqueryElem(target, param);\n }\n\n // For other objects use their string representation\n else {\n setInnerHtml(target, param.toString());\n }\n };\n\n /**\n * @param {HTMLElement} target\n * @param {any} elem\n */\n var handleJqueryElem = function handleJqueryElem(target, elem) {\n target.textContent = '';\n if (0 in elem) {\n for (var i = 0; i in elem; i++) {\n target.appendChild(elem[i].cloneNode(true));\n }\n } else {\n target.appendChild(elem.cloneNode(true));\n }\n };\n\n /**\n * @returns {'webkitAnimationEnd' | 'animationend' | false}\n */\n var animationEndEvent = function () {\n // Prevent run in Node env\n if (isNodeEnv()) {\n return false;\n }\n var testEl = document.createElement('div');\n\n // Chrome, Safari and Opera\n if (typeof testEl.style.webkitAnimation !== 'undefined') {\n return 'webkitAnimationEnd';\n }\n\n // Standard syntax\n if (typeof testEl.style.animation !== 'undefined') {\n return 'animationend';\n }\n return false;\n }();\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n var renderActions = function renderActions(instance, params) {\n var actions = getActions();\n var loader = getLoader();\n if (!actions || !loader) {\n return;\n }\n\n // Actions (buttons) wrapper\n if (!params.showConfirmButton && !params.showDenyButton && !params.showCancelButton) {\n hide(actions);\n } else {\n show(actions);\n }\n\n // Custom class\n applyCustomClass(actions, params, 'actions');\n\n // Render all the buttons\n renderButtons(actions, loader, params);\n\n // Loader\n setInnerHtml(loader, params.loaderHtml || '');\n applyCustomClass(loader, params, 'loader');\n };\n\n /**\n * @param {HTMLElement} actions\n * @param {HTMLElement} loader\n * @param {SweetAlertOptions} params\n */\n function renderButtons(actions, loader, params) {\n var confirmButton = getConfirmButton();\n var denyButton = getDenyButton();\n var cancelButton = getCancelButton();\n if (!confirmButton || !denyButton || !cancelButton) {\n return;\n }\n\n // Render buttons\n renderButton(confirmButton, 'confirm', params);\n renderButton(denyButton, 'deny', params);\n renderButton(cancelButton, 'cancel', params);\n handleButtonsStyling(confirmButton, denyButton, cancelButton, params);\n if (params.reverseButtons) {\n if (params.toast) {\n actions.insertBefore(cancelButton, confirmButton);\n actions.insertBefore(denyButton, confirmButton);\n } else {\n actions.insertBefore(cancelButton, loader);\n actions.insertBefore(denyButton, loader);\n actions.insertBefore(confirmButton, loader);\n }\n }\n }\n\n /**\n * @param {HTMLElement} confirmButton\n * @param {HTMLElement} denyButton\n * @param {HTMLElement} cancelButton\n * @param {SweetAlertOptions} params\n */\n function handleButtonsStyling(confirmButton, denyButton, cancelButton, params) {\n if (!params.buttonsStyling) {\n removeClass([confirmButton, denyButton, cancelButton], swalClasses.styled);\n return;\n }\n addClass([confirmButton, denyButton, cancelButton], swalClasses.styled);\n\n // Buttons background colors\n if (params.confirmButtonColor) {\n confirmButton.style.backgroundColor = params.confirmButtonColor;\n addClass(confirmButton, swalClasses['default-outline']);\n }\n if (params.denyButtonColor) {\n denyButton.style.backgroundColor = params.denyButtonColor;\n addClass(denyButton, swalClasses['default-outline']);\n }\n if (params.cancelButtonColor) {\n cancelButton.style.backgroundColor = params.cancelButtonColor;\n addClass(cancelButton, swalClasses['default-outline']);\n }\n }\n\n /**\n * @param {HTMLElement} button\n * @param {'confirm' | 'deny' | 'cancel'} buttonType\n * @param {SweetAlertOptions} params\n */\n function renderButton(button, buttonType, params) {\n var buttonName = /** @type {'Confirm' | 'Deny' | 'Cancel'} */capitalizeFirstLetter(buttonType);\n toggle(button, params[\"show\".concat(buttonName, \"Button\")], 'inline-block');\n setInnerHtml(button, params[\"\".concat(buttonType, \"ButtonText\")] || ''); // Set caption text\n button.setAttribute('aria-label', params[\"\".concat(buttonType, \"ButtonAriaLabel\")] || ''); // ARIA label\n\n // Add buttons custom classes\n button.className = swalClasses[buttonType];\n applyCustomClass(button, params, \"\".concat(buttonType, \"Button\"));\n }\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n var renderCloseButton = function renderCloseButton(instance, params) {\n var closeButton = getCloseButton();\n if (!closeButton) {\n return;\n }\n setInnerHtml(closeButton, params.closeButtonHtml || '');\n\n // Custom class\n applyCustomClass(closeButton, params, 'closeButton');\n toggle(closeButton, params.showCloseButton);\n closeButton.setAttribute('aria-label', params.closeButtonAriaLabel || '');\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n var renderContainer = function renderContainer(instance, params) {\n var container = getContainer();\n if (!container) {\n return;\n }\n handleBackdropParam(container, params.backdrop);\n handlePositionParam(container, params.position);\n handleGrowParam(container, params.grow);\n\n // Custom class\n applyCustomClass(container, params, 'container');\n };\n\n /**\n * @param {HTMLElement} container\n * @param {SweetAlertOptions['backdrop']} backdrop\n */\n function handleBackdropParam(container, backdrop) {\n if (typeof backdrop === 'string') {\n container.style.background = backdrop;\n } else if (!backdrop) {\n addClass([document.documentElement, document.body], swalClasses['no-backdrop']);\n }\n }\n\n /**\n * @param {HTMLElement} container\n * @param {SweetAlertOptions['position']} position\n */\n function handlePositionParam(container, position) {\n if (!position) {\n return;\n }\n if (position in swalClasses) {\n addClass(container, swalClasses[position]);\n } else {\n warn('The \"position\" parameter is not valid, defaulting to \"center\"');\n addClass(container, swalClasses.center);\n }\n }\n\n /**\n * @param {HTMLElement} container\n * @param {SweetAlertOptions['grow']} grow\n */\n function handleGrowParam(container, grow) {\n if (!grow) {\n return;\n }\n addClass(container, swalClasses[\"grow-\".concat(grow)]);\n }\n\n /**\n * This module contains `WeakMap`s for each effectively-\"private property\" that a `Swal` has.\n * For example, to set the private property \"foo\" of `this` to \"bar\", you can `privateProps.foo.set(this, 'bar')`\n * This is the approach that Babel will probably take to implement private methods/fields\n * https://github.com/tc39/proposal-private-methods\n * https://github.com/babel/babel/pull/7555\n * Once we have the changes from that PR in Babel, and our core class fits reasonable in *one module*\n * then we can use that language feature.\n */\n\n var privateProps = {\n innerParams: new WeakMap(),\n domCache: new WeakMap()\n };\n\n /** @type {InputClass[]} */\n var inputClasses = ['input', 'file', 'range', 'select', 'radio', 'checkbox', 'textarea'];\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n var renderInput = function renderInput(instance, params) {\n var popup = getPopup();\n if (!popup) {\n return;\n }\n var innerParams = privateProps.innerParams.get(instance);\n var rerender = !innerParams || params.input !== innerParams.input;\n inputClasses.forEach(function (inputClass) {\n var inputContainer = getDirectChildByClass(popup, swalClasses[inputClass]);\n if (!inputContainer) {\n return;\n }\n\n // set attributes\n setAttributes(inputClass, params.inputAttributes);\n\n // set class\n inputContainer.className = swalClasses[inputClass];\n if (rerender) {\n hide(inputContainer);\n }\n });\n if (params.input) {\n if (rerender) {\n showInput(params);\n }\n // set custom class\n setCustomClass(params);\n }\n };\n\n /**\n * @param {SweetAlertOptions} params\n */\n var showInput = function showInput(params) {\n if (!params.input) {\n return;\n }\n if (!renderInputType[params.input]) {\n error(\"Unexpected type of input! Expected \".concat(Object.keys(renderInputType).join(' | '), \", got \\\"\").concat(params.input, \"\\\"\"));\n return;\n }\n var inputContainer = getInputContainer(params.input);\n if (!inputContainer) {\n return;\n }\n var input = renderInputType[params.input](inputContainer, params);\n show(inputContainer);\n\n // input autofocus\n if (params.inputAutoFocus) {\n setTimeout(function () {\n focusInput(input);\n });\n }\n };\n\n /**\n * @param {HTMLInputElement} input\n */\n var removeAttributes = function removeAttributes(input) {\n for (var i = 0; i < input.attributes.length; i++) {\n var attrName = input.attributes[i].name;\n if (!['id', 'type', 'value', 'style'].includes(attrName)) {\n input.removeAttribute(attrName);\n }\n }\n };\n\n /**\n * @param {InputClass} inputClass\n * @param {SweetAlertOptions['inputAttributes']} inputAttributes\n */\n var setAttributes = function setAttributes(inputClass, inputAttributes) {\n var popup = getPopup();\n if (!popup) {\n return;\n }\n var input = getInput$1(popup, inputClass);\n if (!input) {\n return;\n }\n removeAttributes(input);\n for (var attr in inputAttributes) {\n input.setAttribute(attr, inputAttributes[attr]);\n }\n };\n\n /**\n * @param {SweetAlertOptions} params\n */\n var setCustomClass = function setCustomClass(params) {\n if (!params.input) {\n return;\n }\n var inputContainer = getInputContainer(params.input);\n if (inputContainer) {\n applyCustomClass(inputContainer, params, 'input');\n }\n };\n\n /**\n * @param {HTMLInputElement | HTMLTextAreaElement} input\n * @param {SweetAlertOptions} params\n */\n var setInputPlaceholder = function setInputPlaceholder(input, params) {\n if (!input.placeholder && params.inputPlaceholder) {\n input.placeholder = params.inputPlaceholder;\n }\n };\n\n /**\n * @param {Input} input\n * @param {Input} prependTo\n * @param {SweetAlertOptions} params\n */\n var setInputLabel = function setInputLabel(input, prependTo, params) {\n if (params.inputLabel) {\n var label = document.createElement('label');\n var labelClass = swalClasses['input-label'];\n label.setAttribute('for', input.id);\n label.className = labelClass;\n if (_typeof(params.customClass) === 'object') {\n addClass(label, params.customClass.inputLabel);\n }\n label.innerText = params.inputLabel;\n prependTo.insertAdjacentElement('beforebegin', label);\n }\n };\n\n /**\n * @param {SweetAlertInput} inputType\n * @returns {HTMLElement | undefined}\n */\n var getInputContainer = function getInputContainer(inputType) {\n var popup = getPopup();\n if (!popup) {\n return;\n }\n return getDirectChildByClass(popup, swalClasses[( /** @type {SwalClass} */inputType)] || swalClasses.input);\n };\n\n /**\n * @param {HTMLInputElement | HTMLOutputElement | HTMLTextAreaElement} input\n * @param {SweetAlertOptions['inputValue']} inputValue\n */\n var checkAndSetInputValue = function checkAndSetInputValue(input, inputValue) {\n if (['string', 'number'].includes(_typeof(inputValue))) {\n input.value = \"\".concat(inputValue);\n } else if (!isPromise(inputValue)) {\n warn(\"Unexpected type of inputValue! Expected \\\"string\\\", \\\"number\\\" or \\\"Promise\\\", got \\\"\".concat(_typeof(inputValue), \"\\\"\"));\n }\n };\n\n /** @type {Record Input>} */\n var renderInputType = {};\n\n /**\n * @param {HTMLInputElement} input\n * @param {SweetAlertOptions} params\n * @returns {HTMLInputElement}\n */\n renderInputType.text = renderInputType.email = renderInputType.password = renderInputType.number = renderInputType.tel = renderInputType.url = renderInputType.search = renderInputType.date = renderInputType['datetime-local'] = renderInputType.time = renderInputType.week = renderInputType.month = /** @type {(input: Input | HTMLElement, params: SweetAlertOptions) => Input} */\n function (input, params) {\n checkAndSetInputValue(input, params.inputValue);\n setInputLabel(input, input, params);\n setInputPlaceholder(input, params);\n input.type = params.input;\n return input;\n };\n\n /**\n * @param {HTMLInputElement} input\n * @param {SweetAlertOptions} params\n * @returns {HTMLInputElement}\n */\n renderInputType.file = function (input, params) {\n setInputLabel(input, input, params);\n setInputPlaceholder(input, params);\n return input;\n };\n\n /**\n * @param {HTMLInputElement} range\n * @param {SweetAlertOptions} params\n * @returns {HTMLInputElement}\n */\n renderInputType.range = function (range, params) {\n var rangeInput = range.querySelector('input');\n var rangeOutput = range.querySelector('output');\n checkAndSetInputValue(rangeInput, params.inputValue);\n rangeInput.type = params.input;\n checkAndSetInputValue(rangeOutput, params.inputValue);\n setInputLabel(rangeInput, range, params);\n return range;\n };\n\n /**\n * @param {HTMLSelectElement} select\n * @param {SweetAlertOptions} params\n * @returns {HTMLSelectElement}\n */\n renderInputType.select = function (select, params) {\n select.textContent = '';\n if (params.inputPlaceholder) {\n var placeholder = document.createElement('option');\n setInnerHtml(placeholder, params.inputPlaceholder);\n placeholder.value = '';\n placeholder.disabled = true;\n placeholder.selected = true;\n select.appendChild(placeholder);\n }\n setInputLabel(select, select, params);\n return select;\n };\n\n /**\n * @param {HTMLInputElement} radio\n * @returns {HTMLInputElement}\n */\n renderInputType.radio = function (radio) {\n radio.textContent = '';\n return radio;\n };\n\n /**\n * @param {HTMLLabelElement} checkboxContainer\n * @param {SweetAlertOptions} params\n * @returns {HTMLInputElement}\n */\n renderInputType.checkbox = function (checkboxContainer, params) {\n var checkbox = getInput$1(getPopup(), 'checkbox');\n checkbox.value = '1';\n checkbox.checked = Boolean(params.inputValue);\n var label = checkboxContainer.querySelector('span');\n setInnerHtml(label, params.inputPlaceholder);\n return checkbox;\n };\n\n /**\n * @param {HTMLTextAreaElement} textarea\n * @param {SweetAlertOptions} params\n * @returns {HTMLTextAreaElement}\n */\n renderInputType.textarea = function (textarea, params) {\n checkAndSetInputValue(textarea, params.inputValue);\n setInputPlaceholder(textarea, params);\n setInputLabel(textarea, textarea, params);\n\n /**\n * @param {HTMLElement} el\n * @returns {number}\n */\n var getMargin = function getMargin(el) {\n return parseInt(window.getComputedStyle(el).marginLeft) + parseInt(window.getComputedStyle(el).marginRight);\n };\n\n // https://github.com/sweetalert2/sweetalert2/issues/2291\n setTimeout(function () {\n // https://github.com/sweetalert2/sweetalert2/issues/1699\n if ('MutationObserver' in window) {\n var initialPopupWidth = parseInt(window.getComputedStyle(getPopup()).width);\n var textareaResizeHandler = function textareaResizeHandler() {\n // check if texarea is still in document (i.e. popup wasn't closed in the meantime)\n if (!document.body.contains(textarea)) {\n return;\n }\n var textareaWidth = textarea.offsetWidth + getMargin(textarea);\n if (textareaWidth > initialPopupWidth) {\n getPopup().style.width = \"\".concat(textareaWidth, \"px\");\n } else {\n applyNumericalStyle(getPopup(), 'width', params.width);\n }\n };\n new MutationObserver(textareaResizeHandler).observe(textarea, {\n attributes: true,\n attributeFilter: ['style']\n });\n }\n });\n return textarea;\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n var renderContent = function renderContent(instance, params) {\n var htmlContainer = getHtmlContainer();\n if (!htmlContainer) {\n return;\n }\n showWhenInnerHtmlPresent(htmlContainer);\n applyCustomClass(htmlContainer, params, 'htmlContainer');\n\n // Content as HTML\n if (params.html) {\n parseHtmlToContainer(params.html, htmlContainer);\n show(htmlContainer, 'block');\n }\n\n // Content as plain text\n else if (params.text) {\n htmlContainer.textContent = params.text;\n show(htmlContainer, 'block');\n }\n\n // No content\n else {\n hide(htmlContainer);\n }\n renderInput(instance, params);\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n var renderFooter = function renderFooter(instance, params) {\n var footer = getFooter();\n if (!footer) {\n return;\n }\n showWhenInnerHtmlPresent(footer);\n toggle(footer, params.footer, 'block');\n if (params.footer) {\n parseHtmlToContainer(params.footer, footer);\n }\n\n // Custom class\n applyCustomClass(footer, params, 'footer');\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n var renderIcon = function renderIcon(instance, params) {\n var innerParams = privateProps.innerParams.get(instance);\n var icon = getIcon();\n if (!icon) {\n return;\n }\n\n // if the given icon already rendered, apply the styling without re-rendering the icon\n if (innerParams && params.icon === innerParams.icon) {\n // Custom or default content\n setContent(icon, params);\n applyStyles(icon, params);\n return;\n }\n if (!params.icon && !params.iconHtml) {\n hide(icon);\n return;\n }\n if (params.icon && Object.keys(iconTypes).indexOf(params.icon) === -1) {\n error(\"Unknown icon! Expected \\\"success\\\", \\\"error\\\", \\\"warning\\\", \\\"info\\\" or \\\"question\\\", got \\\"\".concat(params.icon, \"\\\"\"));\n hide(icon);\n return;\n }\n show(icon);\n\n // Custom or default content\n setContent(icon, params);\n applyStyles(icon, params);\n\n // Animate icon\n addClass(icon, params.showClass && params.showClass.icon);\n };\n\n /**\n * @param {HTMLElement} icon\n * @param {SweetAlertOptions} params\n */\n var applyStyles = function applyStyles(icon, params) {\n for (var _i = 0, _Object$entries = Object.entries(iconTypes); _i < _Object$entries.length; _i++) {\n var _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2),\n iconType = _Object$entries$_i[0],\n iconClassName = _Object$entries$_i[1];\n if (params.icon !== iconType) {\n removeClass(icon, iconClassName);\n }\n }\n addClass(icon, params.icon && iconTypes[params.icon]);\n\n // Icon color\n setColor(icon, params);\n\n // Success icon background color\n adjustSuccessIconBackgroundColor();\n\n // Custom class\n applyCustomClass(icon, params, 'icon');\n };\n\n // Adjust success icon background color to match the popup background color\n var adjustSuccessIconBackgroundColor = function adjustSuccessIconBackgroundColor() {\n var popup = getPopup();\n if (!popup) {\n return;\n }\n var popupBackgroundColor = window.getComputedStyle(popup).getPropertyValue('background-color');\n /** @type {NodeListOf} */\n var successIconParts = popup.querySelectorAll('[class^=swal2-success-circular-line], .swal2-success-fix');\n for (var i = 0; i < successIconParts.length; i++) {\n successIconParts[i].style.backgroundColor = popupBackgroundColor;\n }\n };\n var successIconHtml = \"\\n \\n \\n \\n \\n\";\n var errorIconHtml = \"\\n \\n \\n \\n \\n\";\n\n /**\n * @param {HTMLElement} icon\n * @param {SweetAlertOptions} params\n */\n var setContent = function setContent(icon, params) {\n if (!params.icon && !params.iconHtml) {\n return;\n }\n var oldContent = icon.innerHTML;\n var newContent = '';\n if (params.iconHtml) {\n newContent = iconContent(params.iconHtml);\n } else if (params.icon === 'success') {\n newContent = successIconHtml;\n oldContent = oldContent.replace(/ style=\".*?\"/g, ''); // undo adjustSuccessIconBackgroundColor()\n } else if (params.icon === 'error') {\n newContent = errorIconHtml;\n } else if (params.icon) {\n var defaultIconHtml = {\n question: '?',\n warning: '!',\n info: 'i'\n };\n newContent = iconContent(defaultIconHtml[params.icon]);\n }\n if (oldContent.trim() !== newContent.trim()) {\n setInnerHtml(icon, newContent);\n }\n };\n\n /**\n * @param {HTMLElement} icon\n * @param {SweetAlertOptions} params\n */\n var setColor = function setColor(icon, params) {\n if (!params.iconColor) {\n return;\n }\n icon.style.color = params.iconColor;\n icon.style.borderColor = params.iconColor;\n for (var _i2 = 0, _arr = ['.swal2-success-line-tip', '.swal2-success-line-long', '.swal2-x-mark-line-left', '.swal2-x-mark-line-right']; _i2 < _arr.length; _i2++) {\n var sel = _arr[_i2];\n setStyle(icon, sel, 'background-color', params.iconColor);\n }\n setStyle(icon, '.swal2-success-ring', 'border-color', params.iconColor);\n };\n\n /**\n * @param {string} content\n * @returns {string}\n */\n var iconContent = function iconContent(content) {\n return \"\").concat(content, \"\");\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n var renderImage = function renderImage(instance, params) {\n var image = getImage();\n if (!image) {\n return;\n }\n if (!params.imageUrl) {\n hide(image);\n return;\n }\n show(image, '');\n\n // Src, alt\n image.setAttribute('src', params.imageUrl);\n image.setAttribute('alt', params.imageAlt || '');\n\n // Width, height\n applyNumericalStyle(image, 'width', params.imageWidth);\n applyNumericalStyle(image, 'height', params.imageHeight);\n\n // Class\n image.className = swalClasses.image;\n applyCustomClass(image, params, 'image');\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n var renderPopup = function renderPopup(instance, params) {\n var container = getContainer();\n var popup = getPopup();\n if (!container || !popup) {\n return;\n }\n\n // Width\n // https://github.com/sweetalert2/sweetalert2/issues/2170\n if (params.toast) {\n applyNumericalStyle(container, 'width', params.width);\n popup.style.width = '100%';\n var loader = getLoader();\n if (loader) {\n popup.insertBefore(loader, getIcon());\n }\n } else {\n applyNumericalStyle(popup, 'width', params.width);\n }\n\n // Padding\n applyNumericalStyle(popup, 'padding', params.padding);\n\n // Color\n if (params.color) {\n popup.style.color = params.color;\n }\n\n // Background\n if (params.background) {\n popup.style.background = params.background;\n }\n hide(getValidationMessage());\n\n // Classes\n addClasses$1(popup, params);\n };\n\n /**\n * @param {HTMLElement} popup\n * @param {SweetAlertOptions} params\n */\n var addClasses$1 = function addClasses(popup, params) {\n var showClass = params.showClass || {};\n // Default Class + showClass when updating Swal.update({})\n popup.className = \"\".concat(swalClasses.popup, \" \").concat(isVisible$1(popup) ? showClass.popup : '');\n if (params.toast) {\n addClass([document.documentElement, document.body], swalClasses['toast-shown']);\n addClass(popup, swalClasses.toast);\n } else {\n addClass(popup, swalClasses.modal);\n }\n\n // Custom class\n applyCustomClass(popup, params, 'popup');\n // TODO: remove in the next major\n if (typeof params.customClass === 'string') {\n addClass(popup, params.customClass);\n }\n\n // Icon class (#1842)\n if (params.icon) {\n addClass(popup, swalClasses[\"icon-\".concat(params.icon)]);\n }\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n var renderProgressSteps = function renderProgressSteps(instance, params) {\n var progressStepsContainer = getProgressSteps();\n if (!progressStepsContainer) {\n return;\n }\n var progressSteps = params.progressSteps,\n currentProgressStep = params.currentProgressStep;\n if (!progressSteps || progressSteps.length === 0 || currentProgressStep === undefined) {\n hide(progressStepsContainer);\n return;\n }\n show(progressStepsContainer);\n progressStepsContainer.textContent = '';\n if (currentProgressStep >= progressSteps.length) {\n warn('Invalid currentProgressStep parameter, it should be less than progressSteps.length ' + '(currentProgressStep like JS arrays starts from 0)');\n }\n progressSteps.forEach(function (step, index) {\n var stepEl = createStepElement(step);\n progressStepsContainer.appendChild(stepEl);\n if (index === currentProgressStep) {\n addClass(stepEl, swalClasses['active-progress-step']);\n }\n if (index !== progressSteps.length - 1) {\n var lineEl = createLineElement(params);\n progressStepsContainer.appendChild(lineEl);\n }\n });\n };\n\n /**\n * @param {string} step\n * @returns {HTMLLIElement}\n */\n var createStepElement = function createStepElement(step) {\n var stepEl = document.createElement('li');\n addClass(stepEl, swalClasses['progress-step']);\n setInnerHtml(stepEl, step);\n return stepEl;\n };\n\n /**\n * @param {SweetAlertOptions} params\n * @returns {HTMLLIElement}\n */\n var createLineElement = function createLineElement(params) {\n var lineEl = document.createElement('li');\n addClass(lineEl, swalClasses['progress-step-line']);\n if (params.progressStepsDistance) {\n applyNumericalStyle(lineEl, 'width', params.progressStepsDistance);\n }\n return lineEl;\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n var renderTitle = function renderTitle(instance, params) {\n var title = getTitle();\n if (!title) {\n return;\n }\n showWhenInnerHtmlPresent(title);\n toggle(title, params.title || params.titleText, 'block');\n if (params.title) {\n parseHtmlToContainer(params.title, title);\n }\n if (params.titleText) {\n title.innerText = params.titleText;\n }\n\n // Custom class\n applyCustomClass(title, params, 'title');\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n var render = function render(instance, params) {\n renderPopup(instance, params);\n renderContainer(instance, params);\n renderProgressSteps(instance, params);\n renderIcon(instance, params);\n renderImage(instance, params);\n renderTitle(instance, params);\n renderCloseButton(instance, params);\n renderContent(instance, params);\n renderActions(instance, params);\n renderFooter(instance, params);\n var popup = getPopup();\n if (typeof params.didRender === 'function' && popup) {\n params.didRender(popup);\n }\n };\n\n /*\n * Global function to determine if SweetAlert2 popup is shown\n */\n var isVisible = function isVisible() {\n return isVisible$1(getPopup());\n };\n\n /*\n * Global function to click 'Confirm' button\n */\n var clickConfirm = function clickConfirm() {\n var _dom$getConfirmButton;\n return (_dom$getConfirmButton = getConfirmButton()) === null || _dom$getConfirmButton === void 0 ? void 0 : _dom$getConfirmButton.click();\n };\n\n /*\n * Global function to click 'Deny' button\n */\n var clickDeny = function clickDeny() {\n var _dom$getDenyButton;\n return (_dom$getDenyButton = getDenyButton()) === null || _dom$getDenyButton === void 0 ? void 0 : _dom$getDenyButton.click();\n };\n\n /*\n * Global function to click 'Cancel' button\n */\n var clickCancel = function clickCancel() {\n var _dom$getCancelButton;\n return (_dom$getCancelButton = getCancelButton()) === null || _dom$getCancelButton === void 0 ? void 0 : _dom$getCancelButton.click();\n };\n\n /** @typedef {'cancel' | 'backdrop' | 'close' | 'esc' | 'timer'} DismissReason */\n\n /** @type {Record} */\n var DismissReason = Object.freeze({\n cancel: 'cancel',\n backdrop: 'backdrop',\n close: 'close',\n esc: 'esc',\n timer: 'timer'\n });\n\n /**\n * @param {GlobalState} globalState\n */\n var removeKeydownHandler = function removeKeydownHandler(globalState) {\n if (globalState.keydownTarget && globalState.keydownHandlerAdded) {\n globalState.keydownTarget.removeEventListener('keydown', globalState.keydownHandler, {\n capture: globalState.keydownListenerCapture\n });\n globalState.keydownHandlerAdded = false;\n }\n };\n\n /**\n * @param {GlobalState} globalState\n * @param {SweetAlertOptions} innerParams\n * @param {*} dismissWith\n */\n var addKeydownHandler = function addKeydownHandler(globalState, innerParams, dismissWith) {\n removeKeydownHandler(globalState);\n if (!innerParams.toast) {\n globalState.keydownHandler = function (e) {\n return keydownHandler(innerParams, e, dismissWith);\n };\n globalState.keydownTarget = innerParams.keydownListenerCapture ? window : getPopup();\n globalState.keydownListenerCapture = innerParams.keydownListenerCapture;\n globalState.keydownTarget.addEventListener('keydown', globalState.keydownHandler, {\n capture: globalState.keydownListenerCapture\n });\n globalState.keydownHandlerAdded = true;\n }\n };\n\n /**\n * @param {number} index\n * @param {number} increment\n */\n var setFocus = function setFocus(index, increment) {\n var _dom$getPopup;\n var focusableElements = getFocusableElements();\n // search for visible elements and select the next possible match\n if (focusableElements.length) {\n index = index + increment;\n\n // rollover to first item\n if (index === focusableElements.length) {\n index = 0;\n\n // go to last item\n } else if (index === -1) {\n index = focusableElements.length - 1;\n }\n focusableElements[index].focus();\n return;\n }\n // no visible focusable elements, focus the popup\n (_dom$getPopup = getPopup()) === null || _dom$getPopup === void 0 || _dom$getPopup.focus();\n };\n var arrowKeysNextButton = ['ArrowRight', 'ArrowDown'];\n var arrowKeysPreviousButton = ['ArrowLeft', 'ArrowUp'];\n\n /**\n * @param {SweetAlertOptions} innerParams\n * @param {KeyboardEvent} event\n * @param {Function} dismissWith\n */\n var keydownHandler = function keydownHandler(innerParams, event, dismissWith) {\n if (!innerParams) {\n return; // This instance has already been destroyed\n }\n\n // Ignore keydown during IME composition\n // https://developer.mozilla.org/en-US/docs/Web/API/Document/keydown_event#ignoring_keydown_during_ime_composition\n // https://github.com/sweetalert2/sweetalert2/issues/720\n // https://github.com/sweetalert2/sweetalert2/issues/2406\n if (event.isComposing || event.keyCode === 229) {\n return;\n }\n if (innerParams.stopKeydownPropagation) {\n event.stopPropagation();\n }\n\n // ENTER\n if (event.key === 'Enter') {\n handleEnter(event, innerParams);\n }\n\n // TAB\n else if (event.key === 'Tab') {\n handleTab(event);\n }\n\n // ARROWS - switch focus between buttons\n else if ([].concat(arrowKeysNextButton, arrowKeysPreviousButton).includes(event.key)) {\n handleArrows(event.key);\n }\n\n // ESC\n else if (event.key === 'Escape') {\n handleEsc(event, innerParams, dismissWith);\n }\n };\n\n /**\n * @param {KeyboardEvent} event\n * @param {SweetAlertOptions} innerParams\n */\n var handleEnter = function handleEnter(event, innerParams) {\n // https://github.com/sweetalert2/sweetalert2/issues/2386\n if (!callIfFunction(innerParams.allowEnterKey)) {\n return;\n }\n var input = getInput$1(getPopup(), innerParams.input);\n if (event.target && input && event.target instanceof HTMLElement && event.target.outerHTML === input.outerHTML) {\n if (['textarea', 'file'].includes(innerParams.input)) {\n return; // do not submit\n }\n clickConfirm();\n event.preventDefault();\n }\n };\n\n /**\n * @param {KeyboardEvent} event\n */\n var handleTab = function handleTab(event) {\n var targetElement = event.target;\n var focusableElements = getFocusableElements();\n var btnIndex = -1;\n for (var i = 0; i < focusableElements.length; i++) {\n if (targetElement === focusableElements[i]) {\n btnIndex = i;\n break;\n }\n }\n\n // Cycle to the next button\n if (!event.shiftKey) {\n setFocus(btnIndex, 1);\n }\n\n // Cycle to the prev button\n else {\n setFocus(btnIndex, -1);\n }\n event.stopPropagation();\n event.preventDefault();\n };\n\n /**\n * @param {string} key\n */\n var handleArrows = function handleArrows(key) {\n var actions = getActions();\n var confirmButton = getConfirmButton();\n var denyButton = getDenyButton();\n var cancelButton = getCancelButton();\n if (!actions || !confirmButton || !denyButton || !cancelButton) {\n return;\n }\n /** @type HTMLElement[] */\n var buttons = [confirmButton, denyButton, cancelButton];\n if (document.activeElement instanceof HTMLElement && !buttons.includes(document.activeElement)) {\n return;\n }\n var sibling = arrowKeysNextButton.includes(key) ? 'nextElementSibling' : 'previousElementSibling';\n var buttonToFocus = document.activeElement;\n if (!buttonToFocus) {\n return;\n }\n for (var i = 0; i < actions.children.length; i++) {\n buttonToFocus = buttonToFocus[sibling];\n if (!buttonToFocus) {\n return;\n }\n if (buttonToFocus instanceof HTMLButtonElement && isVisible$1(buttonToFocus)) {\n break;\n }\n }\n if (buttonToFocus instanceof HTMLButtonElement) {\n buttonToFocus.focus();\n }\n };\n\n /**\n * @param {KeyboardEvent} event\n * @param {SweetAlertOptions} innerParams\n * @param {Function} dismissWith\n */\n var handleEsc = function handleEsc(event, innerParams, dismissWith) {\n if (callIfFunction(innerParams.allowEscapeKey)) {\n event.preventDefault();\n dismissWith(DismissReason.esc);\n }\n };\n\n /**\n * This module contains `WeakMap`s for each effectively-\"private property\" that a `Swal` has.\n * For example, to set the private property \"foo\" of `this` to \"bar\", you can `privateProps.foo.set(this, 'bar')`\n * This is the approach that Babel will probably take to implement private methods/fields\n * https://github.com/tc39/proposal-private-methods\n * https://github.com/babel/babel/pull/7555\n * Once we have the changes from that PR in Babel, and our core class fits reasonable in *one module*\n * then we can use that language feature.\n */\n\n var privateMethods = {\n swalPromiseResolve: new WeakMap(),\n swalPromiseReject: new WeakMap()\n };\n\n // From https://developer.paciellogroup.com/blog/2018/06/the-current-state-of-modal-dialog-accessibility/\n // Adding aria-hidden=\"true\" to elements outside of the active modal dialog ensures that\n // elements not within the active modal dialog will not be surfaced if a user opens a screen\n // reader’s list of elements (headings, form controls, landmarks, etc.) in the document.\n\n var setAriaHidden = function setAriaHidden() {\n var container = getContainer();\n var bodyChildren = Array.from(document.body.children);\n bodyChildren.forEach(function (el) {\n if (el.contains(container)) {\n return;\n }\n if (el.hasAttribute('aria-hidden')) {\n el.setAttribute('data-previous-aria-hidden', el.getAttribute('aria-hidden') || '');\n }\n el.setAttribute('aria-hidden', 'true');\n });\n };\n var unsetAriaHidden = function unsetAriaHidden() {\n var bodyChildren = Array.from(document.body.children);\n bodyChildren.forEach(function (el) {\n if (el.hasAttribute('data-previous-aria-hidden')) {\n el.setAttribute('aria-hidden', el.getAttribute('data-previous-aria-hidden') || '');\n el.removeAttribute('data-previous-aria-hidden');\n } else {\n el.removeAttribute('aria-hidden');\n }\n });\n };\n\n // @ts-ignore\n var isSafariOrIOS = typeof window !== 'undefined' && !!window.GestureEvent; // true for Safari desktop + all iOS browsers https://stackoverflow.com/a/70585394\n\n /**\n * Fix iOS scrolling\n * http://stackoverflow.com/q/39626302\n */\n var iOSfix = function iOSfix() {\n if (isSafariOrIOS && !hasClass(document.body, swalClasses.iosfix)) {\n var offset = document.body.scrollTop;\n document.body.style.top = \"\".concat(offset * -1, \"px\");\n addClass(document.body, swalClasses.iosfix);\n lockBodyScroll();\n }\n };\n\n /**\n * https://github.com/sweetalert2/sweetalert2/issues/1246\n */\n var lockBodyScroll = function lockBodyScroll() {\n var container = getContainer();\n if (!container) {\n return;\n }\n /** @type {boolean} */\n var preventTouchMove;\n /**\n * @param {TouchEvent} event\n */\n container.ontouchstart = function (event) {\n preventTouchMove = shouldPreventTouchMove(event);\n };\n /**\n * @param {TouchEvent} event\n */\n container.ontouchmove = function (event) {\n if (preventTouchMove) {\n event.preventDefault();\n event.stopPropagation();\n }\n };\n };\n\n /**\n * @param {TouchEvent} event\n * @returns {boolean}\n */\n var shouldPreventTouchMove = function shouldPreventTouchMove(event) {\n var target = event.target;\n var container = getContainer();\n var htmlContainer = getHtmlContainer();\n if (!container || !htmlContainer) {\n return false;\n }\n if (isStylus(event) || isZoom(event)) {\n return false;\n }\n if (target === container) {\n return true;\n }\n if (!isScrollable(container) && target instanceof HTMLElement && target.tagName !== 'INPUT' &&\n // #1603\n target.tagName !== 'TEXTAREA' &&\n // #2266\n !(isScrollable(htmlContainer) &&\n // #1944\n htmlContainer.contains(target))) {\n return true;\n }\n return false;\n };\n\n /**\n * https://github.com/sweetalert2/sweetalert2/issues/1786\n *\n * @param {*} event\n * @returns {boolean}\n */\n var isStylus = function isStylus(event) {\n return event.touches && event.touches.length && event.touches[0].touchType === 'stylus';\n };\n\n /**\n * https://github.com/sweetalert2/sweetalert2/issues/1891\n *\n * @param {TouchEvent} event\n * @returns {boolean}\n */\n var isZoom = function isZoom(event) {\n return event.touches && event.touches.length > 1;\n };\n var undoIOSfix = function undoIOSfix() {\n if (hasClass(document.body, swalClasses.iosfix)) {\n var offset = parseInt(document.body.style.top, 10);\n removeClass(document.body, swalClasses.iosfix);\n document.body.style.top = '';\n document.body.scrollTop = offset * -1;\n }\n };\n\n /**\n * Measure scrollbar width for padding body during modal show/hide\n * https://github.com/twbs/bootstrap/blob/master/js/src/modal.js\n *\n * @returns {number}\n */\n var measureScrollbar = function measureScrollbar() {\n var scrollDiv = document.createElement('div');\n scrollDiv.className = swalClasses['scrollbar-measure'];\n document.body.appendChild(scrollDiv);\n var scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;\n document.body.removeChild(scrollDiv);\n return scrollbarWidth;\n };\n\n /**\n * Remember state in cases where opening and handling a modal will fiddle with it.\n * @type {number | null}\n */\n var previousBodyPadding = null;\n\n /**\n * @param {string} initialBodyOverflow\n */\n var replaceScrollbarWithPadding = function replaceScrollbarWithPadding(initialBodyOverflow) {\n // for queues, do not do this more than once\n if (previousBodyPadding !== null) {\n return;\n }\n // if the body has overflow\n if (document.body.scrollHeight > window.innerHeight || initialBodyOverflow === 'scroll' // https://github.com/sweetalert2/sweetalert2/issues/2663\n ) {\n // add padding so the content doesn't shift after removal of scrollbar\n previousBodyPadding = parseInt(window.getComputedStyle(document.body).getPropertyValue('padding-right'));\n document.body.style.paddingRight = \"\".concat(previousBodyPadding + measureScrollbar(), \"px\");\n }\n };\n var undoReplaceScrollbarWithPadding = function undoReplaceScrollbarWithPadding() {\n if (previousBodyPadding !== null) {\n document.body.style.paddingRight = \"\".concat(previousBodyPadding, \"px\");\n previousBodyPadding = null;\n }\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {HTMLElement} container\n * @param {boolean} returnFocus\n * @param {Function} didClose\n */\n function removePopupAndResetState(instance, container, returnFocus, didClose) {\n if (isToast()) {\n triggerDidCloseAndDispose(instance, didClose);\n } else {\n restoreActiveElement(returnFocus).then(function () {\n return triggerDidCloseAndDispose(instance, didClose);\n });\n removeKeydownHandler(globalState);\n }\n\n // workaround for https://github.com/sweetalert2/sweetalert2/issues/2088\n // for some reason removing the container in Safari will scroll the document to bottom\n if (isSafariOrIOS) {\n container.setAttribute('style', 'display:none !important');\n container.removeAttribute('class');\n container.innerHTML = '';\n } else {\n container.remove();\n }\n if (isModal()) {\n undoReplaceScrollbarWithPadding();\n undoIOSfix();\n unsetAriaHidden();\n }\n removeBodyClasses();\n }\n\n /**\n * Remove SweetAlert2 classes from body\n */\n function removeBodyClasses() {\n removeClass([document.documentElement, document.body], [swalClasses.shown, swalClasses['height-auto'], swalClasses['no-backdrop'], swalClasses['toast-shown']]);\n }\n\n /**\n * Instance method to close sweetAlert\n *\n * @param {any} resolveValue\n */\n function close(resolveValue) {\n resolveValue = prepareResolveValue(resolveValue);\n var swalPromiseResolve = privateMethods.swalPromiseResolve.get(this);\n var didClose = triggerClosePopup(this);\n if (this.isAwaitingPromise) {\n // A swal awaiting for a promise (after a click on Confirm or Deny) cannot be dismissed anymore #2335\n if (!resolveValue.isDismissed) {\n handleAwaitingPromise(this);\n swalPromiseResolve(resolveValue);\n }\n } else if (didClose) {\n // Resolve Swal promise\n swalPromiseResolve(resolveValue);\n }\n }\n var triggerClosePopup = function triggerClosePopup(instance) {\n var popup = getPopup();\n if (!popup) {\n return false;\n }\n var innerParams = privateProps.innerParams.get(instance);\n if (!innerParams || hasClass(popup, innerParams.hideClass.popup)) {\n return false;\n }\n removeClass(popup, innerParams.showClass.popup);\n addClass(popup, innerParams.hideClass.popup);\n var backdrop = getContainer();\n removeClass(backdrop, innerParams.showClass.backdrop);\n addClass(backdrop, innerParams.hideClass.backdrop);\n handlePopupAnimation(instance, popup, innerParams);\n return true;\n };\n\n /**\n * @param {any} error\n */\n function rejectPromise(error) {\n var rejectPromise = privateMethods.swalPromiseReject.get(this);\n handleAwaitingPromise(this);\n if (rejectPromise) {\n // Reject Swal promise\n rejectPromise(error);\n }\n }\n\n /**\n * @param {SweetAlert} instance\n */\n var handleAwaitingPromise = function handleAwaitingPromise(instance) {\n if (instance.isAwaitingPromise) {\n delete instance.isAwaitingPromise;\n // The instance might have been previously partly destroyed, we must resume the destroy process in this case #2335\n if (!privateProps.innerParams.get(instance)) {\n instance._destroy();\n }\n }\n };\n\n /**\n * @param {any} resolveValue\n * @returns {SweetAlertResult}\n */\n var prepareResolveValue = function prepareResolveValue(resolveValue) {\n // When user calls Swal.close()\n if (typeof resolveValue === 'undefined') {\n return {\n isConfirmed: false,\n isDenied: false,\n isDismissed: true\n };\n }\n return Object.assign({\n isConfirmed: false,\n isDenied: false,\n isDismissed: false\n }, resolveValue);\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {HTMLElement} popup\n * @param {SweetAlertOptions} innerParams\n */\n var handlePopupAnimation = function handlePopupAnimation(instance, popup, innerParams) {\n var container = getContainer();\n // If animation is supported, animate\n var animationIsSupported = animationEndEvent && hasCssAnimation(popup);\n if (typeof innerParams.willClose === 'function') {\n innerParams.willClose(popup);\n }\n if (animationIsSupported) {\n animatePopup(instance, popup, container, innerParams.returnFocus, innerParams.didClose);\n } else {\n // Otherwise, remove immediately\n removePopupAndResetState(instance, container, innerParams.returnFocus, innerParams.didClose);\n }\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {HTMLElement} popup\n * @param {HTMLElement} container\n * @param {boolean} returnFocus\n * @param {Function} didClose\n */\n var animatePopup = function animatePopup(instance, popup, container, returnFocus, didClose) {\n if (!animationEndEvent) {\n return;\n }\n globalState.swalCloseEventFinishedCallback = removePopupAndResetState.bind(null, instance, container, returnFocus, didClose);\n popup.addEventListener(animationEndEvent, function (e) {\n if (e.target === popup) {\n globalState.swalCloseEventFinishedCallback();\n delete globalState.swalCloseEventFinishedCallback;\n }\n });\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {Function} didClose\n */\n var triggerDidCloseAndDispose = function triggerDidCloseAndDispose(instance, didClose) {\n setTimeout(function () {\n if (typeof didClose === 'function') {\n didClose.bind(instance.params)();\n }\n // instance might have been destroyed already\n if (instance._destroy) {\n instance._destroy();\n }\n });\n };\n\n /**\n * Shows loader (spinner), this is useful with AJAX requests.\n * By default the loader be shown instead of the \"Confirm\" button.\n *\n * @param {HTMLButtonElement | null} [buttonToReplace]\n */\n var showLoading = function showLoading(buttonToReplace) {\n var popup = getPopup();\n if (!popup) {\n new Swal();\n }\n popup = getPopup();\n if (!popup) {\n return;\n }\n var loader = getLoader();\n if (isToast()) {\n hide(getIcon());\n } else {\n replaceButton(popup, buttonToReplace);\n }\n show(loader);\n popup.setAttribute('data-loading', 'true');\n popup.setAttribute('aria-busy', 'true');\n popup.focus();\n };\n\n /**\n * @param {HTMLElement} popup\n * @param {HTMLButtonElement | null} [buttonToReplace]\n */\n var replaceButton = function replaceButton(popup, buttonToReplace) {\n var actions = getActions();\n var loader = getLoader();\n if (!actions || !loader) {\n return;\n }\n if (!buttonToReplace && isVisible$1(getConfirmButton())) {\n buttonToReplace = getConfirmButton();\n }\n show(actions);\n if (buttonToReplace) {\n hide(buttonToReplace);\n loader.setAttribute('data-button-to-replace', buttonToReplace.className);\n actions.insertBefore(loader, buttonToReplace);\n }\n addClass([popup, actions], swalClasses.loading);\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n var handleInputOptionsAndValue = function handleInputOptionsAndValue(instance, params) {\n if (params.input === 'select' || params.input === 'radio') {\n handleInputOptions(instance, params);\n } else if (['text', 'email', 'number', 'tel', 'textarea'].some(function (i) {\n return i === params.input;\n }) && (hasToPromiseFn(params.inputValue) || isPromise(params.inputValue))) {\n showLoading(getConfirmButton());\n handleInputValue(instance, params);\n }\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} innerParams\n * @returns {SweetAlertInputValue}\n */\n var getInputValue = function getInputValue(instance, innerParams) {\n var input = instance.getInput();\n if (!input) {\n return null;\n }\n switch (innerParams.input) {\n case 'checkbox':\n return getCheckboxValue(input);\n case 'radio':\n return getRadioValue(input);\n case 'file':\n return getFileValue(input);\n default:\n return innerParams.inputAutoTrim ? input.value.trim() : input.value;\n }\n };\n\n /**\n * @param {HTMLInputElement} input\n * @returns {number}\n */\n var getCheckboxValue = function getCheckboxValue(input) {\n return input.checked ? 1 : 0;\n };\n\n /**\n * @param {HTMLInputElement} input\n * @returns {string | null}\n */\n var getRadioValue = function getRadioValue(input) {\n return input.checked ? input.value : null;\n };\n\n /**\n * @param {HTMLInputElement} input\n * @returns {FileList | File | null}\n */\n var getFileValue = function getFileValue(input) {\n return input.files && input.files.length ? input.getAttribute('multiple') !== null ? input.files : input.files[0] : null;\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n var handleInputOptions = function handleInputOptions(instance, params) {\n var popup = getPopup();\n if (!popup) {\n return;\n }\n /**\n * @param {Record} inputOptions\n */\n var processInputOptions = function processInputOptions(inputOptions) {\n if (params.input === 'select') {\n populateSelectOptions(popup, _formatInputOptions(inputOptions), params);\n } else if (params.input === 'radio') {\n populateRadioOptions(popup, _formatInputOptions(inputOptions), params);\n }\n };\n if (hasToPromiseFn(params.inputOptions) || isPromise(params.inputOptions)) {\n showLoading(getConfirmButton());\n asPromise(params.inputOptions).then(function (inputOptions) {\n instance.hideLoading();\n processInputOptions(inputOptions);\n });\n } else if (_typeof(params.inputOptions) === 'object') {\n processInputOptions(params.inputOptions);\n } else {\n error(\"Unexpected type of inputOptions! Expected object, Map or Promise, got \".concat(_typeof(params.inputOptions)));\n }\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n var handleInputValue = function handleInputValue(instance, params) {\n var input = instance.getInput();\n if (!input) {\n return;\n }\n hide(input);\n asPromise(params.inputValue).then(function (inputValue) {\n input.value = params.input === 'number' ? \"\".concat(parseFloat(inputValue) || 0) : \"\".concat(inputValue);\n show(input);\n input.focus();\n instance.hideLoading();\n })[\"catch\"](function (err) {\n error(\"Error in inputValue promise: \".concat(err));\n input.value = '';\n show(input);\n input.focus();\n instance.hideLoading();\n });\n };\n\n /**\n * @param {HTMLElement} popup\n * @param {InputOptionFlattened[]} inputOptions\n * @param {SweetAlertOptions} params\n */\n function populateSelectOptions(popup, inputOptions, params) {\n var select = getDirectChildByClass(popup, swalClasses.select);\n if (!select) {\n return;\n }\n /**\n * @param {HTMLElement} parent\n * @param {string} optionLabel\n * @param {string} optionValue\n */\n var renderOption = function renderOption(parent, optionLabel, optionValue) {\n var option = document.createElement('option');\n option.value = optionValue;\n setInnerHtml(option, optionLabel);\n option.selected = isSelected(optionValue, params.inputValue);\n parent.appendChild(option);\n };\n inputOptions.forEach(function (inputOption) {\n var optionValue = inputOption[0];\n var optionLabel = inputOption[1];\n // spec:\n // https://www.w3.org/TR/html401/interact/forms.html#h-17.6\n // \"...all OPTGROUP elements must be specified directly within a SELECT element (i.e., groups may not be nested)...\"\n // check whether this is a \n if (Array.isArray(optionLabel)) {\n // if it is an array, then it is an \n var optgroup = document.createElement('optgroup');\n optgroup.label = optionValue;\n optgroup.disabled = false; // not configurable for now\n select.appendChild(optgroup);\n optionLabel.forEach(function (o) {\n return renderOption(optgroup, o[1], o[0]);\n });\n } else {\n // case of \n renderOption(select, optionLabel, optionValue);\n }\n });\n select.focus();\n }\n\n /**\n * @param {HTMLElement} popup\n * @param {InputOptionFlattened[]} inputOptions\n * @param {SweetAlertOptions} params\n */\n function populateRadioOptions(popup, inputOptions, params) {\n var radio = getDirectChildByClass(popup, swalClasses.radio);\n if (!radio) {\n return;\n }\n inputOptions.forEach(function (inputOption) {\n var radioValue = inputOption[0];\n var radioLabel = inputOption[1];\n var radioInput = document.createElement('input');\n var radioLabelElement = document.createElement('label');\n radioInput.type = 'radio';\n radioInput.name = swalClasses.radio;\n radioInput.value = radioValue;\n if (isSelected(radioValue, params.inputValue)) {\n radioInput.checked = true;\n }\n var label = document.createElement('span');\n setInnerHtml(label, radioLabel);\n label.className = swalClasses.label;\n radioLabelElement.appendChild(radioInput);\n radioLabelElement.appendChild(label);\n radio.appendChild(radioLabelElement);\n });\n var radios = radio.querySelectorAll('input');\n if (radios.length) {\n radios[0].focus();\n }\n }\n\n /**\n * Converts `inputOptions` into an array of `[value, label]`s\n *\n * @param {Record} inputOptions\n * @typedef {string[]} InputOptionFlattened\n * @returns {InputOptionFlattened[]}\n */\n var _formatInputOptions = function formatInputOptions(inputOptions) {\n /** @type {InputOptionFlattened[]} */\n var result = [];\n if (inputOptions instanceof Map) {\n inputOptions.forEach(function (value, key) {\n var valueFormatted = value;\n if (_typeof(valueFormatted) === 'object') {\n // case of \n valueFormatted = _formatInputOptions(valueFormatted);\n }\n result.push([key, valueFormatted]);\n });\n } else {\n Object.keys(inputOptions).forEach(function (key) {\n var valueFormatted = inputOptions[key];\n if (_typeof(valueFormatted) === 'object') {\n // case of \n valueFormatted = _formatInputOptions(valueFormatted);\n }\n result.push([key, valueFormatted]);\n });\n }\n return result;\n };\n\n /**\n * @param {string} optionValue\n * @param {SweetAlertInputValue} inputValue\n * @returns {boolean}\n */\n var isSelected = function isSelected(optionValue, inputValue) {\n return !!inputValue && inputValue.toString() === optionValue.toString();\n };\n\n var _this = undefined;\n\n /**\n * @param {SweetAlert} instance\n */\n var handleConfirmButtonClick = function handleConfirmButtonClick(instance) {\n var innerParams = privateProps.innerParams.get(instance);\n instance.disableButtons();\n if (innerParams.input) {\n handleConfirmOrDenyWithInput(instance, 'confirm');\n } else {\n confirm(instance, true);\n }\n };\n\n /**\n * @param {SweetAlert} instance\n */\n var handleDenyButtonClick = function handleDenyButtonClick(instance) {\n var innerParams = privateProps.innerParams.get(instance);\n instance.disableButtons();\n if (innerParams.returnInputValueOnDeny) {\n handleConfirmOrDenyWithInput(instance, 'deny');\n } else {\n deny(instance, false);\n }\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {Function} dismissWith\n */\n var handleCancelButtonClick = function handleCancelButtonClick(instance, dismissWith) {\n instance.disableButtons();\n dismissWith(DismissReason.cancel);\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {'confirm' | 'deny'} type\n */\n var handleConfirmOrDenyWithInput = function handleConfirmOrDenyWithInput(instance, type) {\n var innerParams = privateProps.innerParams.get(instance);\n if (!innerParams.input) {\n error(\"The \\\"input\\\" parameter is needed to be set when using returnInputValueOn\".concat(capitalizeFirstLetter(type)));\n return;\n }\n var input = instance.getInput();\n var inputValue = getInputValue(instance, innerParams);\n if (innerParams.inputValidator) {\n handleInputValidator(instance, inputValue, type);\n } else if (input && !input.checkValidity()) {\n instance.enableButtons();\n instance.showValidationMessage(innerParams.validationMessage || input.validationMessage);\n } else if (type === 'deny') {\n deny(instance, inputValue);\n } else {\n confirm(instance, inputValue);\n }\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertInputValue} inputValue\n * @param {'confirm' | 'deny'} type\n */\n var handleInputValidator = function handleInputValidator(instance, inputValue, type) {\n var innerParams = privateProps.innerParams.get(instance);\n instance.disableInput();\n var validationPromise = Promise.resolve().then(function () {\n return asPromise(innerParams.inputValidator(inputValue, innerParams.validationMessage));\n });\n validationPromise.then(function (validationMessage) {\n instance.enableButtons();\n instance.enableInput();\n if (validationMessage) {\n instance.showValidationMessage(validationMessage);\n } else if (type === 'deny') {\n deny(instance, inputValue);\n } else {\n confirm(instance, inputValue);\n }\n });\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {any} value\n */\n var deny = function deny(instance, value) {\n var innerParams = privateProps.innerParams.get(instance || _this);\n if (innerParams.showLoaderOnDeny) {\n showLoading(getDenyButton());\n }\n if (innerParams.preDeny) {\n instance.isAwaitingPromise = true; // Flagging the instance as awaiting a promise so it's own promise's reject/resolve methods doesn't get destroyed until the result from this preDeny's promise is received\n var preDenyPromise = Promise.resolve().then(function () {\n return asPromise(innerParams.preDeny(value, innerParams.validationMessage));\n });\n preDenyPromise.then(function (preDenyValue) {\n if (preDenyValue === false) {\n instance.hideLoading();\n handleAwaitingPromise(instance);\n } else {\n instance.close({\n isDenied: true,\n value: typeof preDenyValue === 'undefined' ? value : preDenyValue\n });\n }\n })[\"catch\"](function (error) {\n return rejectWith(instance || _this, error);\n });\n } else {\n instance.close({\n isDenied: true,\n value: value\n });\n }\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {any} value\n */\n var succeedWith = function succeedWith(instance, value) {\n instance.close({\n isConfirmed: true,\n value: value\n });\n };\n\n /**\n *\n * @param {SweetAlert} instance\n * @param {string} error\n */\n var rejectWith = function rejectWith(instance, error) {\n instance.rejectPromise(error);\n };\n\n /**\n *\n * @param {SweetAlert} instance\n * @param {any} value\n */\n var confirm = function confirm(instance, value) {\n var innerParams = privateProps.innerParams.get(instance || _this);\n if (innerParams.showLoaderOnConfirm) {\n showLoading();\n }\n if (innerParams.preConfirm) {\n instance.resetValidationMessage();\n instance.isAwaitingPromise = true; // Flagging the instance as awaiting a promise so it's own promise's reject/resolve methods doesn't get destroyed until the result from this preConfirm's promise is received\n var preConfirmPromise = Promise.resolve().then(function () {\n return asPromise(innerParams.preConfirm(value, innerParams.validationMessage));\n });\n preConfirmPromise.then(function (preConfirmValue) {\n if (isVisible$1(getValidationMessage()) || preConfirmValue === false) {\n instance.hideLoading();\n handleAwaitingPromise(instance);\n } else {\n succeedWith(instance, typeof preConfirmValue === 'undefined' ? value : preConfirmValue);\n }\n })[\"catch\"](function (error) {\n return rejectWith(instance || _this, error);\n });\n } else {\n succeedWith(instance, value);\n }\n };\n\n /**\n * Hides loader and shows back the button which was hidden by .showLoading()\n */\n function hideLoading() {\n // do nothing if popup is closed\n var innerParams = privateProps.innerParams.get(this);\n if (!innerParams) {\n return;\n }\n var domCache = privateProps.domCache.get(this);\n hide(domCache.loader);\n if (isToast()) {\n if (innerParams.icon) {\n show(getIcon());\n }\n } else {\n showRelatedButton(domCache);\n }\n removeClass([domCache.popup, domCache.actions], swalClasses.loading);\n domCache.popup.removeAttribute('aria-busy');\n domCache.popup.removeAttribute('data-loading');\n domCache.confirmButton.disabled = false;\n domCache.denyButton.disabled = false;\n domCache.cancelButton.disabled = false;\n }\n var showRelatedButton = function showRelatedButton(domCache) {\n var buttonToReplace = domCache.popup.getElementsByClassName(domCache.loader.getAttribute('data-button-to-replace'));\n if (buttonToReplace.length) {\n show(buttonToReplace[0], 'inline-block');\n } else if (allButtonsAreHidden()) {\n hide(domCache.actions);\n }\n };\n\n /**\n * Gets the input DOM node, this method works with input parameter.\n *\n * @returns {HTMLInputElement | null}\n */\n function getInput() {\n var innerParams = privateProps.innerParams.get(this);\n var domCache = privateProps.domCache.get(this);\n if (!domCache) {\n return null;\n }\n return getInput$1(domCache.popup, innerParams.input);\n }\n\n /**\n * @param {SweetAlert} instance\n * @param {string[]} buttons\n * @param {boolean} disabled\n */\n function setButtonsDisabled(instance, buttons, disabled) {\n var domCache = privateProps.domCache.get(instance);\n buttons.forEach(function (button) {\n domCache[button].disabled = disabled;\n });\n }\n\n /**\n * @param {HTMLInputElement | null} input\n * @param {boolean} disabled\n */\n function setInputDisabled(input, disabled) {\n var popup = getPopup();\n if (!popup || !input) {\n return;\n }\n if (input.type === 'radio') {\n /** @type {NodeListOf} */\n var radios = popup.querySelectorAll(\"[name=\\\"\".concat(swalClasses.radio, \"\\\"]\"));\n for (var i = 0; i < radios.length; i++) {\n radios[i].disabled = disabled;\n }\n } else {\n input.disabled = disabled;\n }\n }\n\n /**\n * Enable all the buttons\n * @this {SweetAlert}\n */\n function enableButtons() {\n setButtonsDisabled(this, ['confirmButton', 'denyButton', 'cancelButton'], false);\n }\n\n /**\n * Disable all the buttons\n * @this {SweetAlert}\n */\n function disableButtons() {\n setButtonsDisabled(this, ['confirmButton', 'denyButton', 'cancelButton'], true);\n }\n\n /**\n * Enable the input field\n * @this {SweetAlert}\n */\n function enableInput() {\n setInputDisabled(this.getInput(), false);\n }\n\n /**\n * Disable the input field\n * @this {SweetAlert}\n */\n function disableInput() {\n setInputDisabled(this.getInput(), true);\n }\n\n /**\n * Show block with validation message\n *\n * @param {string} error\n * @this {SweetAlert}\n */\n function showValidationMessage(error) {\n var domCache = privateProps.domCache.get(this);\n var params = privateProps.innerParams.get(this);\n setInnerHtml(domCache.validationMessage, error);\n domCache.validationMessage.className = swalClasses['validation-message'];\n if (params.customClass && params.customClass.validationMessage) {\n addClass(domCache.validationMessage, params.customClass.validationMessage);\n }\n show(domCache.validationMessage);\n var input = this.getInput();\n if (input) {\n input.setAttribute('aria-invalid', 'true');\n input.setAttribute('aria-describedby', swalClasses['validation-message']);\n focusInput(input);\n addClass(input, swalClasses.inputerror);\n }\n }\n\n /**\n * Hide block with validation message\n *\n * @this {SweetAlert}\n */\n function resetValidationMessage() {\n var domCache = privateProps.domCache.get(this);\n if (domCache.validationMessage) {\n hide(domCache.validationMessage);\n }\n var input = this.getInput();\n if (input) {\n input.removeAttribute('aria-invalid');\n input.removeAttribute('aria-describedby');\n removeClass(input, swalClasses.inputerror);\n }\n }\n\n var defaultParams = {\n title: '',\n titleText: '',\n text: '',\n html: '',\n footer: '',\n icon: undefined,\n iconColor: undefined,\n iconHtml: undefined,\n template: undefined,\n toast: false,\n animation: true,\n showClass: {\n popup: 'swal2-show',\n backdrop: 'swal2-backdrop-show',\n icon: 'swal2-icon-show'\n },\n hideClass: {\n popup: 'swal2-hide',\n backdrop: 'swal2-backdrop-hide',\n icon: 'swal2-icon-hide'\n },\n customClass: {},\n target: 'body',\n color: undefined,\n backdrop: true,\n heightAuto: true,\n allowOutsideClick: true,\n allowEscapeKey: true,\n allowEnterKey: true,\n stopKeydownPropagation: true,\n keydownListenerCapture: false,\n showConfirmButton: true,\n showDenyButton: false,\n showCancelButton: false,\n preConfirm: undefined,\n preDeny: undefined,\n confirmButtonText: 'OK',\n confirmButtonAriaLabel: '',\n confirmButtonColor: undefined,\n denyButtonText: 'No',\n denyButtonAriaLabel: '',\n denyButtonColor: undefined,\n cancelButtonText: 'Cancel',\n cancelButtonAriaLabel: '',\n cancelButtonColor: undefined,\n buttonsStyling: true,\n reverseButtons: false,\n focusConfirm: true,\n focusDeny: false,\n focusCancel: false,\n returnFocus: true,\n showCloseButton: false,\n closeButtonHtml: '×',\n closeButtonAriaLabel: 'Close this dialog',\n loaderHtml: '',\n showLoaderOnConfirm: false,\n showLoaderOnDeny: false,\n imageUrl: undefined,\n imageWidth: undefined,\n imageHeight: undefined,\n imageAlt: '',\n timer: undefined,\n timerProgressBar: false,\n width: undefined,\n padding: undefined,\n background: undefined,\n input: undefined,\n inputPlaceholder: '',\n inputLabel: '',\n inputValue: '',\n inputOptions: {},\n inputAutoFocus: true,\n inputAutoTrim: true,\n inputAttributes: {},\n inputValidator: undefined,\n returnInputValueOnDeny: false,\n validationMessage: undefined,\n grow: false,\n position: 'center',\n progressSteps: [],\n currentProgressStep: undefined,\n progressStepsDistance: undefined,\n willOpen: undefined,\n didOpen: undefined,\n didRender: undefined,\n willClose: undefined,\n didClose: undefined,\n didDestroy: undefined,\n scrollbarPadding: true\n };\n var updatableParams = ['allowEscapeKey', 'allowOutsideClick', 'background', 'buttonsStyling', 'cancelButtonAriaLabel', 'cancelButtonColor', 'cancelButtonText', 'closeButtonAriaLabel', 'closeButtonHtml', 'color', 'confirmButtonAriaLabel', 'confirmButtonColor', 'confirmButtonText', 'currentProgressStep', 'customClass', 'denyButtonAriaLabel', 'denyButtonColor', 'denyButtonText', 'didClose', 'didDestroy', 'footer', 'hideClass', 'html', 'icon', 'iconColor', 'iconHtml', 'imageAlt', 'imageHeight', 'imageUrl', 'imageWidth', 'preConfirm', 'preDeny', 'progressSteps', 'returnFocus', 'reverseButtons', 'showCancelButton', 'showCloseButton', 'showConfirmButton', 'showDenyButton', 'text', 'title', 'titleText', 'willClose'];\n\n /** @type {Record} */\n var deprecatedParams = {\n allowEnterKey: undefined\n };\n var toastIncompatibleParams = ['allowOutsideClick', 'allowEnterKey', 'backdrop', 'focusConfirm', 'focusDeny', 'focusCancel', 'returnFocus', 'heightAuto', 'keydownListenerCapture'];\n\n /**\n * Is valid parameter\n *\n * @param {string} paramName\n * @returns {boolean}\n */\n var isValidParameter = function isValidParameter(paramName) {\n return Object.prototype.hasOwnProperty.call(defaultParams, paramName);\n };\n\n /**\n * Is valid parameter for Swal.update() method\n *\n * @param {string} paramName\n * @returns {boolean}\n */\n var isUpdatableParameter = function isUpdatableParameter(paramName) {\n return updatableParams.indexOf(paramName) !== -1;\n };\n\n /**\n * Is deprecated parameter\n *\n * @param {string} paramName\n * @returns {string | undefined}\n */\n var isDeprecatedParameter = function isDeprecatedParameter(paramName) {\n return deprecatedParams[paramName];\n };\n\n /**\n * @param {string} param\n */\n var checkIfParamIsValid = function checkIfParamIsValid(param) {\n if (!isValidParameter(param)) {\n warn(\"Unknown parameter \\\"\".concat(param, \"\\\"\"));\n }\n };\n\n /**\n * @param {string} param\n */\n var checkIfToastParamIsValid = function checkIfToastParamIsValid(param) {\n if (toastIncompatibleParams.includes(param)) {\n warn(\"The parameter \\\"\".concat(param, \"\\\" is incompatible with toasts\"));\n }\n };\n\n /**\n * @param {string} param\n */\n var checkIfParamIsDeprecated = function checkIfParamIsDeprecated(param) {\n var isDeprecated = isDeprecatedParameter(param);\n if (isDeprecated) {\n warnAboutDeprecation(param, isDeprecated);\n }\n };\n\n /**\n * Show relevant warnings for given params\n *\n * @param {SweetAlertOptions} params\n */\n var showWarningsForParams = function showWarningsForParams(params) {\n if (params.backdrop === false && params.allowOutsideClick) {\n warn('\"allowOutsideClick\" parameter requires `backdrop` parameter to be set to `true`');\n }\n for (var param in params) {\n checkIfParamIsValid(param);\n if (params.toast) {\n checkIfToastParamIsValid(param);\n }\n checkIfParamIsDeprecated(param);\n }\n };\n\n /**\n * Updates popup parameters.\n *\n * @param {SweetAlertOptions} params\n */\n function update(params) {\n var popup = getPopup();\n var innerParams = privateProps.innerParams.get(this);\n if (!popup || hasClass(popup, innerParams.hideClass.popup)) {\n warn(\"You're trying to update the closed or closing popup, that won't work. Use the update() method in preConfirm parameter or show a new popup.\");\n return;\n }\n var validUpdatableParams = filterValidParams(params);\n var updatedParams = Object.assign({}, innerParams, validUpdatableParams);\n render(this, updatedParams);\n privateProps.innerParams.set(this, updatedParams);\n Object.defineProperties(this, {\n params: {\n value: Object.assign({}, this.params, params),\n writable: false,\n enumerable: true\n }\n });\n }\n\n /**\n * @param {SweetAlertOptions} params\n * @returns {SweetAlertOptions}\n */\n var filterValidParams = function filterValidParams(params) {\n var validUpdatableParams = {};\n Object.keys(params).forEach(function (param) {\n if (isUpdatableParameter(param)) {\n validUpdatableParams[param] = params[param];\n } else {\n warn(\"Invalid parameter to update: \".concat(param));\n }\n });\n return validUpdatableParams;\n };\n\n /**\n * Dispose the current SweetAlert2 instance\n */\n function _destroy() {\n var domCache = privateProps.domCache.get(this);\n var innerParams = privateProps.innerParams.get(this);\n if (!innerParams) {\n disposeWeakMaps(this); // The WeakMaps might have been partly destroyed, we must recall it to dispose any remaining WeakMaps #2335\n return; // This instance has already been destroyed\n }\n\n // Check if there is another Swal closing\n if (domCache.popup && globalState.swalCloseEventFinishedCallback) {\n globalState.swalCloseEventFinishedCallback();\n delete globalState.swalCloseEventFinishedCallback;\n }\n if (typeof innerParams.didDestroy === 'function') {\n innerParams.didDestroy();\n }\n disposeSwal(this);\n }\n\n /**\n * @param {SweetAlert} instance\n */\n var disposeSwal = function disposeSwal(instance) {\n disposeWeakMaps(instance);\n // Unset this.params so GC will dispose it (#1569)\n delete instance.params;\n // Unset globalState props so GC will dispose globalState (#1569)\n delete globalState.keydownHandler;\n delete globalState.keydownTarget;\n // Unset currentInstance\n delete globalState.currentInstance;\n };\n\n /**\n * @param {SweetAlert} instance\n */\n var disposeWeakMaps = function disposeWeakMaps(instance) {\n // If the current instance is awaiting a promise result, we keep the privateMethods to call them once the promise result is retrieved #2335\n if (instance.isAwaitingPromise) {\n unsetWeakMaps(privateProps, instance);\n instance.isAwaitingPromise = true;\n } else {\n unsetWeakMaps(privateMethods, instance);\n unsetWeakMaps(privateProps, instance);\n delete instance.isAwaitingPromise;\n // Unset instance methods\n delete instance.disableButtons;\n delete instance.enableButtons;\n delete instance.getInput;\n delete instance.disableInput;\n delete instance.enableInput;\n delete instance.hideLoading;\n delete instance.disableLoading;\n delete instance.showValidationMessage;\n delete instance.resetValidationMessage;\n delete instance.close;\n delete instance.closePopup;\n delete instance.closeModal;\n delete instance.closeToast;\n delete instance.rejectPromise;\n delete instance.update;\n delete instance._destroy;\n }\n };\n\n /**\n * @param {object} obj\n * @param {SweetAlert} instance\n */\n var unsetWeakMaps = function unsetWeakMaps(obj, instance) {\n for (var i in obj) {\n obj[i][\"delete\"](instance);\n }\n };\n\n var instanceMethods = /*#__PURE__*/Object.freeze({\n __proto__: null,\n _destroy: _destroy,\n close: close,\n closeModal: close,\n closePopup: close,\n closeToast: close,\n disableButtons: disableButtons,\n disableInput: disableInput,\n disableLoading: hideLoading,\n enableButtons: enableButtons,\n enableInput: enableInput,\n getInput: getInput,\n handleAwaitingPromise: handleAwaitingPromise,\n hideLoading: hideLoading,\n rejectPromise: rejectPromise,\n resetValidationMessage: resetValidationMessage,\n showValidationMessage: showValidationMessage,\n update: update\n });\n\n /**\n * @param {SweetAlertOptions} innerParams\n * @param {DomCache} domCache\n * @param {Function} dismissWith\n */\n var handlePopupClick = function handlePopupClick(innerParams, domCache, dismissWith) {\n if (innerParams.toast) {\n handleToastClick(innerParams, domCache, dismissWith);\n } else {\n // Ignore click events that had mousedown on the popup but mouseup on the container\n // This can happen when the user drags a slider\n handleModalMousedown(domCache);\n\n // Ignore click events that had mousedown on the container but mouseup on the popup\n handleContainerMousedown(domCache);\n handleModalClick(innerParams, domCache, dismissWith);\n }\n };\n\n /**\n * @param {SweetAlertOptions} innerParams\n * @param {DomCache} domCache\n * @param {Function} dismissWith\n */\n var handleToastClick = function handleToastClick(innerParams, domCache, dismissWith) {\n // Closing toast by internal click\n domCache.popup.onclick = function () {\n if (innerParams && (isAnyButtonShown(innerParams) || innerParams.timer || innerParams.input)) {\n return;\n }\n dismissWith(DismissReason.close);\n };\n };\n\n /**\n * @param {SweetAlertOptions} innerParams\n * @returns {boolean}\n */\n var isAnyButtonShown = function isAnyButtonShown(innerParams) {\n return !!(innerParams.showConfirmButton || innerParams.showDenyButton || innerParams.showCancelButton || innerParams.showCloseButton);\n };\n var ignoreOutsideClick = false;\n\n /**\n * @param {DomCache} domCache\n */\n var handleModalMousedown = function handleModalMousedown(domCache) {\n domCache.popup.onmousedown = function () {\n domCache.container.onmouseup = function (e) {\n domCache.container.onmouseup = function () {};\n // We only check if the mouseup target is the container because usually it doesn't\n // have any other direct children aside of the popup\n if (e.target === domCache.container) {\n ignoreOutsideClick = true;\n }\n };\n };\n };\n\n /**\n * @param {DomCache} domCache\n */\n var handleContainerMousedown = function handleContainerMousedown(domCache) {\n domCache.container.onmousedown = function (e) {\n // prevent the modal text from being selected on double click on the container (allowOutsideClick: false)\n if (e.target === domCache.container) {\n e.preventDefault();\n }\n domCache.popup.onmouseup = function (e) {\n domCache.popup.onmouseup = function () {};\n // We also need to check if the mouseup target is a child of the popup\n if (e.target === domCache.popup || e.target instanceof HTMLElement && domCache.popup.contains(e.target)) {\n ignoreOutsideClick = true;\n }\n };\n };\n };\n\n /**\n * @param {SweetAlertOptions} innerParams\n * @param {DomCache} domCache\n * @param {Function} dismissWith\n */\n var handleModalClick = function handleModalClick(innerParams, domCache, dismissWith) {\n domCache.container.onclick = function (e) {\n if (ignoreOutsideClick) {\n ignoreOutsideClick = false;\n return;\n }\n if (e.target === domCache.container && callIfFunction(innerParams.allowOutsideClick)) {\n dismissWith(DismissReason.backdrop);\n }\n };\n };\n\n var isJqueryElement = function isJqueryElement(elem) {\n return _typeof(elem) === 'object' && elem.jquery;\n };\n var isElement = function isElement(elem) {\n return elem instanceof Element || isJqueryElement(elem);\n };\n var argsToParams = function argsToParams(args) {\n var params = {};\n if (_typeof(args[0]) === 'object' && !isElement(args[0])) {\n Object.assign(params, args[0]);\n } else {\n ['title', 'html', 'icon'].forEach(function (name, index) {\n var arg = args[index];\n if (typeof arg === 'string' || isElement(arg)) {\n params[name] = arg;\n } else if (arg !== undefined) {\n error(\"Unexpected type of \".concat(name, \"! Expected \\\"string\\\" or \\\"Element\\\", got \").concat(_typeof(arg)));\n }\n });\n }\n return params;\n };\n\n /**\n * Main method to create a new SweetAlert2 popup\n *\n * @param {...SweetAlertOptions} args\n * @returns {Promise}\n */\n function fire() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return _construct(this, args);\n }\n\n /**\n * Returns an extended version of `Swal` containing `params` as defaults.\n * Useful for reusing Swal configuration.\n *\n * For example:\n *\n * Before:\n * const textPromptOptions = { input: 'text', showCancelButton: true }\n * const {value: firstName} = await Swal.fire({ ...textPromptOptions, title: 'What is your first name?' })\n * const {value: lastName} = await Swal.fire({ ...textPromptOptions, title: 'What is your last name?' })\n *\n * After:\n * const TextPrompt = Swal.mixin({ input: 'text', showCancelButton: true })\n * const {value: firstName} = await TextPrompt('What is your first name?')\n * const {value: lastName} = await TextPrompt('What is your last name?')\n *\n * @param {SweetAlertOptions} mixinParams\n * @returns {SweetAlert}\n */\n function mixin(mixinParams) {\n var MixinSwal = /*#__PURE__*/function (_this) {\n function MixinSwal() {\n _classCallCheck(this, MixinSwal);\n return _callSuper(this, MixinSwal, arguments);\n }\n _inherits(MixinSwal, _this);\n return _createClass(MixinSwal, [{\n key: \"_main\",\n value: function _main(params, priorityMixinParams) {\n return _superPropGet(MixinSwal, \"_main\", this)([params, Object.assign({}, mixinParams, priorityMixinParams)]);\n }\n }]);\n }(this); // @ts-ignore\n return MixinSwal;\n }\n\n /**\n * If `timer` parameter is set, returns number of milliseconds of timer remained.\n * Otherwise, returns undefined.\n *\n * @returns {number | undefined}\n */\n var getTimerLeft = function getTimerLeft() {\n return globalState.timeout && globalState.timeout.getTimerLeft();\n };\n\n /**\n * Stop timer. Returns number of milliseconds of timer remained.\n * If `timer` parameter isn't set, returns undefined.\n *\n * @returns {number | undefined}\n */\n var stopTimer = function stopTimer() {\n if (globalState.timeout) {\n stopTimerProgressBar();\n return globalState.timeout.stop();\n }\n };\n\n /**\n * Resume timer. Returns number of milliseconds of timer remained.\n * If `timer` parameter isn't set, returns undefined.\n *\n * @returns {number | undefined}\n */\n var resumeTimer = function resumeTimer() {\n if (globalState.timeout) {\n var remaining = globalState.timeout.start();\n animateTimerProgressBar(remaining);\n return remaining;\n }\n };\n\n /**\n * Resume timer. Returns number of milliseconds of timer remained.\n * If `timer` parameter isn't set, returns undefined.\n *\n * @returns {number | undefined}\n */\n var toggleTimer = function toggleTimer() {\n var timer = globalState.timeout;\n return timer && (timer.running ? stopTimer() : resumeTimer());\n };\n\n /**\n * Increase timer. Returns number of milliseconds of an updated timer.\n * If `timer` parameter isn't set, returns undefined.\n *\n * @param {number} ms\n * @returns {number | undefined}\n */\n var increaseTimer = function increaseTimer(ms) {\n if (globalState.timeout) {\n var remaining = globalState.timeout.increase(ms);\n animateTimerProgressBar(remaining, true);\n return remaining;\n }\n };\n\n /**\n * Check if timer is running. Returns true if timer is running\n * or false if timer is paused or stopped.\n * If `timer` parameter isn't set, returns undefined\n *\n * @returns {boolean}\n */\n var isTimerRunning = function isTimerRunning() {\n return !!(globalState.timeout && globalState.timeout.isRunning());\n };\n\n var bodyClickListenerAdded = false;\n var clickHandlers = {};\n\n /**\n * @param {string} attr\n */\n function bindClickHandler() {\n var attr = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'data-swal-template';\n clickHandlers[attr] = this;\n if (!bodyClickListenerAdded) {\n document.body.addEventListener('click', bodyClickListener);\n bodyClickListenerAdded = true;\n }\n }\n var bodyClickListener = function bodyClickListener(event) {\n for (var el = event.target; el && el !== document; el = el.parentNode) {\n for (var attr in clickHandlers) {\n var template = el.getAttribute(attr);\n if (template) {\n clickHandlers[attr].fire({\n template: template\n });\n return;\n }\n }\n }\n };\n\n var staticMethods = /*#__PURE__*/Object.freeze({\n __proto__: null,\n argsToParams: argsToParams,\n bindClickHandler: bindClickHandler,\n clickCancel: clickCancel,\n clickConfirm: clickConfirm,\n clickDeny: clickDeny,\n enableLoading: showLoading,\n fire: fire,\n getActions: getActions,\n getCancelButton: getCancelButton,\n getCloseButton: getCloseButton,\n getConfirmButton: getConfirmButton,\n getContainer: getContainer,\n getDenyButton: getDenyButton,\n getFocusableElements: getFocusableElements,\n getFooter: getFooter,\n getHtmlContainer: getHtmlContainer,\n getIcon: getIcon,\n getIconContent: getIconContent,\n getImage: getImage,\n getInputLabel: getInputLabel,\n getLoader: getLoader,\n getPopup: getPopup,\n getProgressSteps: getProgressSteps,\n getTimerLeft: getTimerLeft,\n getTimerProgressBar: getTimerProgressBar,\n getTitle: getTitle,\n getValidationMessage: getValidationMessage,\n increaseTimer: increaseTimer,\n isDeprecatedParameter: isDeprecatedParameter,\n isLoading: isLoading,\n isTimerRunning: isTimerRunning,\n isUpdatableParameter: isUpdatableParameter,\n isValidParameter: isValidParameter,\n isVisible: isVisible,\n mixin: mixin,\n resumeTimer: resumeTimer,\n showLoading: showLoading,\n stopTimer: stopTimer,\n toggleTimer: toggleTimer\n });\n\n var Timer = /*#__PURE__*/function () {\n /**\n * @param {Function} callback\n * @param {number} delay\n */\n function Timer(callback, delay) {\n _classCallCheck(this, Timer);\n this.callback = callback;\n this.remaining = delay;\n this.running = false;\n this.start();\n }\n\n /**\n * @returns {number}\n */\n return _createClass(Timer, [{\n key: \"start\",\n value: function start() {\n if (!this.running) {\n this.running = true;\n this.started = new Date();\n this.id = setTimeout(this.callback, this.remaining);\n }\n return this.remaining;\n }\n\n /**\n * @returns {number}\n */\n }, {\n key: \"stop\",\n value: function stop() {\n if (this.started && this.running) {\n this.running = false;\n clearTimeout(this.id);\n this.remaining -= new Date().getTime() - this.started.getTime();\n }\n return this.remaining;\n }\n\n /**\n * @param {number} n\n * @returns {number}\n */\n }, {\n key: \"increase\",\n value: function increase(n) {\n var running = this.running;\n if (running) {\n this.stop();\n }\n this.remaining += n;\n if (running) {\n this.start();\n }\n return this.remaining;\n }\n\n /**\n * @returns {number}\n */\n }, {\n key: \"getTimerLeft\",\n value: function getTimerLeft() {\n if (this.running) {\n this.stop();\n this.start();\n }\n return this.remaining;\n }\n\n /**\n * @returns {boolean}\n */\n }, {\n key: \"isRunning\",\n value: function isRunning() {\n return this.running;\n }\n }]);\n }();\n\n var swalStringParams = ['swal-title', 'swal-html', 'swal-footer'];\n\n /**\n * @param {SweetAlertOptions} params\n * @returns {SweetAlertOptions}\n */\n var getTemplateParams = function getTemplateParams(params) {\n var template = typeof params.template === 'string' ? ( /** @type {HTMLTemplateElement} */document.querySelector(params.template)) : params.template;\n if (!template) {\n return {};\n }\n /** @type {DocumentFragment} */\n var templateContent = template.content;\n showWarningsForElements(templateContent);\n var result = Object.assign(getSwalParams(templateContent), getSwalFunctionParams(templateContent), getSwalButtons(templateContent), getSwalImage(templateContent), getSwalIcon(templateContent), getSwalInput(templateContent), getSwalStringParams(templateContent, swalStringParams));\n return result;\n };\n\n /**\n * @param {DocumentFragment} templateContent\n * @returns {Record}\n */\n var getSwalParams = function getSwalParams(templateContent) {\n /** @type {Record} */\n var result = {};\n /** @type {HTMLElement[]} */\n var swalParams = Array.from(templateContent.querySelectorAll('swal-param'));\n swalParams.forEach(function (param) {\n showWarningsForAttributes(param, ['name', 'value']);\n var paramName = /** @type {keyof SweetAlertOptions} */param.getAttribute('name');\n var value = param.getAttribute('value');\n if (!paramName || !value) {\n return;\n }\n if (typeof defaultParams[paramName] === 'boolean') {\n result[paramName] = value !== 'false';\n } else if (_typeof(defaultParams[paramName]) === 'object') {\n result[paramName] = JSON.parse(value);\n } else {\n result[paramName] = value;\n }\n });\n return result;\n };\n\n /**\n * @param {DocumentFragment} templateContent\n * @returns {Record}\n */\n var getSwalFunctionParams = function getSwalFunctionParams(templateContent) {\n /** @type {Record} */\n var result = {};\n /** @type {HTMLElement[]} */\n var swalFunctions = Array.from(templateContent.querySelectorAll('swal-function-param'));\n swalFunctions.forEach(function (param) {\n var paramName = /** @type {keyof SweetAlertOptions} */param.getAttribute('name');\n var value = param.getAttribute('value');\n if (!paramName || !value) {\n return;\n }\n result[paramName] = new Function(\"return \".concat(value))();\n });\n return result;\n };\n\n /**\n * @param {DocumentFragment} templateContent\n * @returns {Record}\n */\n var getSwalButtons = function getSwalButtons(templateContent) {\n /** @type {Record} */\n var result = {};\n /** @type {HTMLElement[]} */\n var swalButtons = Array.from(templateContent.querySelectorAll('swal-button'));\n swalButtons.forEach(function (button) {\n showWarningsForAttributes(button, ['type', 'color', 'aria-label']);\n var type = button.getAttribute('type');\n if (!type || !['confirm', 'cancel', 'deny'].includes(type)) {\n return;\n }\n result[\"\".concat(type, \"ButtonText\")] = button.innerHTML;\n result[\"show\".concat(capitalizeFirstLetter(type), \"Button\")] = true;\n if (button.hasAttribute('color')) {\n result[\"\".concat(type, \"ButtonColor\")] = button.getAttribute('color');\n }\n if (button.hasAttribute('aria-label')) {\n result[\"\".concat(type, \"ButtonAriaLabel\")] = button.getAttribute('aria-label');\n }\n });\n return result;\n };\n\n /**\n * @param {DocumentFragment} templateContent\n * @returns {Pick}\n */\n var getSwalImage = function getSwalImage(templateContent) {\n var result = {};\n /** @type {HTMLElement | null} */\n var image = templateContent.querySelector('swal-image');\n if (image) {\n showWarningsForAttributes(image, ['src', 'width', 'height', 'alt']);\n if (image.hasAttribute('src')) {\n result.imageUrl = image.getAttribute('src') || undefined;\n }\n if (image.hasAttribute('width')) {\n result.imageWidth = image.getAttribute('width') || undefined;\n }\n if (image.hasAttribute('height')) {\n result.imageHeight = image.getAttribute('height') || undefined;\n }\n if (image.hasAttribute('alt')) {\n result.imageAlt = image.getAttribute('alt') || undefined;\n }\n }\n return result;\n };\n\n /**\n * @param {DocumentFragment} templateContent\n * @returns {Record}\n */\n var getSwalIcon = function getSwalIcon(templateContent) {\n var result = {};\n /** @type {HTMLElement | null} */\n var icon = templateContent.querySelector('swal-icon');\n if (icon) {\n showWarningsForAttributes(icon, ['type', 'color']);\n if (icon.hasAttribute('type')) {\n result.icon = icon.getAttribute('type');\n }\n if (icon.hasAttribute('color')) {\n result.iconColor = icon.getAttribute('color');\n }\n result.iconHtml = icon.innerHTML;\n }\n return result;\n };\n\n /**\n * @param {DocumentFragment} templateContent\n * @returns {Record}\n */\n var getSwalInput = function getSwalInput(templateContent) {\n /** @type {Record} */\n var result = {};\n /** @type {HTMLElement | null} */\n var input = templateContent.querySelector('swal-input');\n if (input) {\n showWarningsForAttributes(input, ['type', 'label', 'placeholder', 'value']);\n result.input = input.getAttribute('type') || 'text';\n if (input.hasAttribute('label')) {\n result.inputLabel = input.getAttribute('label');\n }\n if (input.hasAttribute('placeholder')) {\n result.inputPlaceholder = input.getAttribute('placeholder');\n }\n if (input.hasAttribute('value')) {\n result.inputValue = input.getAttribute('value');\n }\n }\n /** @type {HTMLElement[]} */\n var inputOptions = Array.from(templateContent.querySelectorAll('swal-input-option'));\n if (inputOptions.length) {\n result.inputOptions = {};\n inputOptions.forEach(function (option) {\n showWarningsForAttributes(option, ['value']);\n var optionValue = option.getAttribute('value');\n if (!optionValue) {\n return;\n }\n var optionName = option.innerHTML;\n result.inputOptions[optionValue] = optionName;\n });\n }\n return result;\n };\n\n /**\n * @param {DocumentFragment} templateContent\n * @param {string[]} paramNames\n * @returns {Record}\n */\n var getSwalStringParams = function getSwalStringParams(templateContent, paramNames) {\n /** @type {Record} */\n var result = {};\n for (var i in paramNames) {\n var paramName = paramNames[i];\n /** @type {HTMLElement | null} */\n var tag = templateContent.querySelector(paramName);\n if (tag) {\n showWarningsForAttributes(tag, []);\n result[paramName.replace(/^swal-/, '')] = tag.innerHTML.trim();\n }\n }\n return result;\n };\n\n /**\n * @param {DocumentFragment} templateContent\n */\n var showWarningsForElements = function showWarningsForElements(templateContent) {\n var allowedElements = swalStringParams.concat(['swal-param', 'swal-function-param', 'swal-button', 'swal-image', 'swal-icon', 'swal-input', 'swal-input-option']);\n Array.from(templateContent.children).forEach(function (el) {\n var tagName = el.tagName.toLowerCase();\n if (!allowedElements.includes(tagName)) {\n warn(\"Unrecognized element <\".concat(tagName, \">\"));\n }\n });\n };\n\n /**\n * @param {HTMLElement} el\n * @param {string[]} allowedAttributes\n */\n var showWarningsForAttributes = function showWarningsForAttributes(el, allowedAttributes) {\n Array.from(el.attributes).forEach(function (attribute) {\n if (allowedAttributes.indexOf(attribute.name) === -1) {\n warn([\"Unrecognized attribute \\\"\".concat(attribute.name, \"\\\" on <\").concat(el.tagName.toLowerCase(), \">.\"), \"\".concat(allowedAttributes.length ? \"Allowed attributes are: \".concat(allowedAttributes.join(', ')) : 'To set the value, use HTML within the element.')]);\n }\n });\n };\n\n var SHOW_CLASS_TIMEOUT = 10;\n\n /**\n * Open popup, add necessary classes and styles, fix scrollbar\n *\n * @param {SweetAlertOptions} params\n */\n var openPopup = function openPopup(params) {\n var container = getContainer();\n var popup = getPopup();\n if (typeof params.willOpen === 'function') {\n params.willOpen(popup);\n }\n var bodyStyles = window.getComputedStyle(document.body);\n var initialBodyOverflow = bodyStyles.overflowY;\n addClasses(container, popup, params);\n\n // scrolling is 'hidden' until animation is done, after that 'auto'\n setTimeout(function () {\n setScrollingVisibility(container, popup);\n }, SHOW_CLASS_TIMEOUT);\n if (isModal()) {\n fixScrollContainer(container, params.scrollbarPadding, initialBodyOverflow);\n setAriaHidden();\n }\n if (!isToast() && !globalState.previousActiveElement) {\n globalState.previousActiveElement = document.activeElement;\n }\n if (typeof params.didOpen === 'function') {\n setTimeout(function () {\n return params.didOpen(popup);\n });\n }\n removeClass(container, swalClasses['no-transition']);\n };\n\n /**\n * @param {AnimationEvent} event\n */\n var _swalOpenAnimationFinished = function swalOpenAnimationFinished(event) {\n var popup = getPopup();\n if (event.target !== popup || !animationEndEvent) {\n return;\n }\n var container = getContainer();\n popup.removeEventListener(animationEndEvent, _swalOpenAnimationFinished);\n container.style.overflowY = 'auto';\n };\n\n /**\n * @param {HTMLElement} container\n * @param {HTMLElement} popup\n */\n var setScrollingVisibility = function setScrollingVisibility(container, popup) {\n if (animationEndEvent && hasCssAnimation(popup)) {\n container.style.overflowY = 'hidden';\n popup.addEventListener(animationEndEvent, _swalOpenAnimationFinished);\n } else {\n container.style.overflowY = 'auto';\n }\n };\n\n /**\n * @param {HTMLElement} container\n * @param {boolean} scrollbarPadding\n * @param {string} initialBodyOverflow\n */\n var fixScrollContainer = function fixScrollContainer(container, scrollbarPadding, initialBodyOverflow) {\n iOSfix();\n if (scrollbarPadding && initialBodyOverflow !== 'hidden') {\n replaceScrollbarWithPadding(initialBodyOverflow);\n }\n\n // sweetalert2/issues/1247\n setTimeout(function () {\n container.scrollTop = 0;\n });\n };\n\n /**\n * @param {HTMLElement} container\n * @param {HTMLElement} popup\n * @param {SweetAlertOptions} params\n */\n var addClasses = function addClasses(container, popup, params) {\n addClass(container, params.showClass.backdrop);\n if (params.animation) {\n // this workaround with opacity is needed for https://github.com/sweetalert2/sweetalert2/issues/2059\n popup.style.setProperty('opacity', '0', 'important');\n show(popup, 'grid');\n setTimeout(function () {\n // Animate popup right after showing it\n addClass(popup, params.showClass.popup);\n // and remove the opacity workaround\n popup.style.removeProperty('opacity');\n }, SHOW_CLASS_TIMEOUT); // 10ms in order to fix #2062\n } else {\n show(popup, 'grid');\n }\n addClass([document.documentElement, document.body], swalClasses.shown);\n if (params.heightAuto && params.backdrop && !params.toast) {\n addClass([document.documentElement, document.body], swalClasses['height-auto']);\n }\n };\n\n var defaultInputValidators = {\n /**\n * @param {string} string\n * @param {string} [validationMessage]\n * @returns {Promise}\n */\n email: function email(string, validationMessage) {\n return /^[a-zA-Z0-9.+_'-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z0-9-]+$/.test(string) ? Promise.resolve() : Promise.resolve(validationMessage || 'Invalid email address');\n },\n /**\n * @param {string} string\n * @param {string} [validationMessage]\n * @returns {Promise}\n */\n url: function url(string, validationMessage) {\n // taken from https://stackoverflow.com/a/3809435 with a small change from #1306 and #2013\n return /^https?:\\/\\/(www\\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\\.[a-z]{2,63}\\b([-a-zA-Z0-9@:%_+.~#?&/=]*)$/.test(string) ? Promise.resolve() : Promise.resolve(validationMessage || 'Invalid URL');\n }\n };\n\n /**\n * @param {SweetAlertOptions} params\n */\n function setDefaultInputValidators(params) {\n // Use default `inputValidator` for supported input types if not provided\n if (params.inputValidator) {\n return;\n }\n if (params.input === 'email') {\n params.inputValidator = defaultInputValidators['email'];\n }\n if (params.input === 'url') {\n params.inputValidator = defaultInputValidators['url'];\n }\n }\n\n /**\n * @param {SweetAlertOptions} params\n */\n function validateCustomTargetElement(params) {\n // Determine if the custom target element is valid\n if (!params.target || typeof params.target === 'string' && !document.querySelector(params.target) || typeof params.target !== 'string' && !params.target.appendChild) {\n warn('Target parameter is not valid, defaulting to \"body\"');\n params.target = 'body';\n }\n }\n\n /**\n * Set type, text and actions on popup\n *\n * @param {SweetAlertOptions} params\n */\n function setParameters(params) {\n setDefaultInputValidators(params);\n\n // showLoaderOnConfirm && preConfirm\n if (params.showLoaderOnConfirm && !params.preConfirm) {\n warn('showLoaderOnConfirm is set to true, but preConfirm is not defined.\\n' + 'showLoaderOnConfirm should be used together with preConfirm, see usage example:\\n' + 'https://sweetalert2.github.io/#ajax-request');\n }\n validateCustomTargetElement(params);\n\n // Replace newlines with in title\n if (typeof params.title === 'string') {\n params.title = params.title.split('\\n').join('');\n }\n init(params);\n }\n\n /** @type {SweetAlert} */\n var currentInstance;\n var _promise = /*#__PURE__*/new WeakMap();\n var SweetAlert = /*#__PURE__*/function () {\n /**\n * @param {...any} args\n * @this {SweetAlert}\n */\n function SweetAlert() {\n _classCallCheck(this, SweetAlert);\n /**\n * @type {Promise}\n */\n _classPrivateFieldInitSpec(this, _promise, void 0);\n // Prevent run in Node env\n if (typeof window === 'undefined') {\n return;\n }\n currentInstance = this;\n\n // @ts-ignore\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n var outerParams = Object.freeze(this.constructor.argsToParams(args));\n\n /** @type {Readonly} */\n this.params = outerParams;\n\n /** @type {boolean} */\n this.isAwaitingPromise = false;\n _classPrivateFieldSet2(_promise, this, this._main(currentInstance.params));\n }\n return _createClass(SweetAlert, [{\n key: \"_main\",\n value: function _main(userParams) {\n var mixinParams = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n showWarningsForParams(Object.assign({}, mixinParams, userParams));\n if (globalState.currentInstance) {\n var swalPromiseResolve = privateMethods.swalPromiseResolve.get(globalState.currentInstance);\n var isAwaitingPromise = globalState.currentInstance.isAwaitingPromise;\n globalState.currentInstance._destroy();\n if (!isAwaitingPromise) {\n swalPromiseResolve({\n isDismissed: true\n });\n }\n if (isModal()) {\n unsetAriaHidden();\n }\n }\n globalState.currentInstance = currentInstance;\n var innerParams = prepareParams(userParams, mixinParams);\n setParameters(innerParams);\n Object.freeze(innerParams);\n\n // clear the previous timer\n if (globalState.timeout) {\n globalState.timeout.stop();\n delete globalState.timeout;\n }\n\n // clear the restore focus timeout\n clearTimeout(globalState.restoreFocusTimeout);\n var domCache = populateDomCache(currentInstance);\n render(currentInstance, innerParams);\n privateProps.innerParams.set(currentInstance, innerParams);\n return swalPromise(currentInstance, domCache, innerParams);\n }\n\n // `catch` cannot be the name of a module export, so we define our thenable methods here instead\n }, {\n key: \"then\",\n value: function then(onFulfilled) {\n return _classPrivateFieldGet2(_promise, this).then(onFulfilled);\n }\n }, {\n key: \"finally\",\n value: function _finally(onFinally) {\n return _classPrivateFieldGet2(_promise, this)[\"finally\"](onFinally);\n }\n }]);\n }();\n\n /**\n * @param {SweetAlert} instance\n * @param {DomCache} domCache\n * @param {SweetAlertOptions} innerParams\n * @returns {Promise}\n */\n var swalPromise = function swalPromise(instance, domCache, innerParams) {\n return new Promise(function (resolve, reject) {\n // functions to handle all closings/dismissals\n /**\n * @param {DismissReason} dismiss\n */\n var dismissWith = function dismissWith(dismiss) {\n instance.close({\n isDismissed: true,\n dismiss: dismiss\n });\n };\n privateMethods.swalPromiseResolve.set(instance, resolve);\n privateMethods.swalPromiseReject.set(instance, reject);\n domCache.confirmButton.onclick = function () {\n handleConfirmButtonClick(instance);\n };\n domCache.denyButton.onclick = function () {\n handleDenyButtonClick(instance);\n };\n domCache.cancelButton.onclick = function () {\n handleCancelButtonClick(instance, dismissWith);\n };\n domCache.closeButton.onclick = function () {\n dismissWith(DismissReason.close);\n };\n handlePopupClick(innerParams, domCache, dismissWith);\n addKeydownHandler(globalState, innerParams, dismissWith);\n handleInputOptionsAndValue(instance, innerParams);\n openPopup(innerParams);\n setupTimer(globalState, innerParams, dismissWith);\n initFocus(domCache, innerParams);\n\n // Scroll container to top on open (#1247, #1946)\n setTimeout(function () {\n domCache.container.scrollTop = 0;\n });\n });\n };\n\n /**\n * @param {SweetAlertOptions} userParams\n * @param {SweetAlertOptions} mixinParams\n * @returns {SweetAlertOptions}\n */\n var prepareParams = function prepareParams(userParams, mixinParams) {\n var templateParams = getTemplateParams(userParams);\n var params = Object.assign({}, defaultParams, mixinParams, templateParams, userParams); // precedence is described in #2131\n params.showClass = Object.assign({}, defaultParams.showClass, params.showClass);\n params.hideClass = Object.assign({}, defaultParams.hideClass, params.hideClass);\n if (params.animation === false) {\n params.showClass = {\n backdrop: 'swal2-noanimation'\n };\n params.hideClass = {};\n }\n return params;\n };\n\n /**\n * @param {SweetAlert} instance\n * @returns {DomCache}\n */\n var populateDomCache = function populateDomCache(instance) {\n var domCache = {\n popup: getPopup(),\n container: getContainer(),\n actions: getActions(),\n confirmButton: getConfirmButton(),\n denyButton: getDenyButton(),\n cancelButton: getCancelButton(),\n loader: getLoader(),\n closeButton: getCloseButton(),\n validationMessage: getValidationMessage(),\n progressSteps: getProgressSteps()\n };\n privateProps.domCache.set(instance, domCache);\n return domCache;\n };\n\n /**\n * @param {GlobalState} globalState\n * @param {SweetAlertOptions} innerParams\n * @param {Function} dismissWith\n */\n var setupTimer = function setupTimer(globalState, innerParams, dismissWith) {\n var timerProgressBar = getTimerProgressBar();\n hide(timerProgressBar);\n if (innerParams.timer) {\n globalState.timeout = new Timer(function () {\n dismissWith('timer');\n delete globalState.timeout;\n }, innerParams.timer);\n if (innerParams.timerProgressBar) {\n show(timerProgressBar);\n applyCustomClass(timerProgressBar, innerParams, 'timerProgressBar');\n setTimeout(function () {\n if (globalState.timeout && globalState.timeout.running) {\n // timer can be already stopped or unset at this point\n animateTimerProgressBar(innerParams.timer);\n }\n });\n }\n }\n };\n\n /**\n * Initialize focus in the popup:\n *\n * 1. If `toast` is `true`, don't steal focus from the document.\n * 2. Else if there is an [autofocus] element, focus it.\n * 3. Else if `focusConfirm` is `true` and confirm button is visible, focus it.\n * 4. Else if `focusDeny` is `true` and deny button is visible, focus it.\n * 5. Else if `focusCancel` is `true` and cancel button is visible, focus it.\n * 6. Else focus the first focusable element in a popup (if any).\n *\n * @param {DomCache} domCache\n * @param {SweetAlertOptions} innerParams\n */\n var initFocus = function initFocus(domCache, innerParams) {\n if (innerParams.toast) {\n return;\n }\n // TODO: this is dumb, remove `allowEnterKey` param in the next major version\n if (!callIfFunction(innerParams.allowEnterKey)) {\n warnAboutDeprecation('allowEnterKey');\n blurActiveElement();\n return;\n }\n if (focusAutofocus(domCache)) {\n return;\n }\n if (focusButton(domCache, innerParams)) {\n return;\n }\n setFocus(-1, 1);\n };\n\n /**\n * @param {DomCache} domCache\n * @returns {boolean}\n */\n var focusAutofocus = function focusAutofocus(domCache) {\n var autofocusElements = domCache.popup.querySelectorAll('[autofocus]');\n var _iterator = _createForOfIteratorHelper(autofocusElements),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var autofocusElement = _step.value;\n if (autofocusElement instanceof HTMLElement && isVisible$1(autofocusElement)) {\n autofocusElement.focus();\n return true;\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n return false;\n };\n\n /**\n * @param {DomCache} domCache\n * @param {SweetAlertOptions} innerParams\n * @returns {boolean}\n */\n var focusButton = function focusButton(domCache, innerParams) {\n if (innerParams.focusDeny && isVisible$1(domCache.denyButton)) {\n domCache.denyButton.focus();\n return true;\n }\n if (innerParams.focusCancel && isVisible$1(domCache.cancelButton)) {\n domCache.cancelButton.focus();\n return true;\n }\n if (innerParams.focusConfirm && isVisible$1(domCache.confirmButton)) {\n domCache.confirmButton.focus();\n return true;\n }\n return false;\n };\n var blurActiveElement = function blurActiveElement() {\n if (document.activeElement instanceof HTMLElement && typeof document.activeElement.blur === 'function') {\n document.activeElement.blur();\n }\n };\n\n // Dear russian users visiting russian sites. Let's have fun.\n if (typeof window !== 'undefined' && /^ru\\b/.test(navigator.language) && location.host.match(/\\.(ru|su|by|xn--p1ai)$/)) {\n var now = new Date();\n var initiationDate = localStorage.getItem('swal-initiation');\n if (!initiationDate) {\n localStorage.setItem('swal-initiation', \"\".concat(now));\n } else if ((now.getTime() - Date.parse(initiationDate)) / (1000 * 60 * 60 * 24) > 3) {\n setTimeout(function () {\n document.body.style.pointerEvents = 'none';\n var ukrainianAnthem = document.createElement('audio');\n ukrainianAnthem.src = 'https://flag-gimn.ru/wp-content/uploads/2021/09/Ukraina.mp3';\n ukrainianAnthem.loop = true;\n document.body.appendChild(ukrainianAnthem);\n setTimeout(function () {\n ukrainianAnthem.play()[\"catch\"](function () {\n // ignore\n });\n }, 2500);\n }, 500);\n }\n }\n\n // Assign instance methods from src/instanceMethods/*.js to prototype\n SweetAlert.prototype.disableButtons = disableButtons;\n SweetAlert.prototype.enableButtons = enableButtons;\n SweetAlert.prototype.getInput = getInput;\n SweetAlert.prototype.disableInput = disableInput;\n SweetAlert.prototype.enableInput = enableInput;\n SweetAlert.prototype.hideLoading = hideLoading;\n SweetAlert.prototype.disableLoading = hideLoading;\n SweetAlert.prototype.showValidationMessage = showValidationMessage;\n SweetAlert.prototype.resetValidationMessage = resetValidationMessage;\n SweetAlert.prototype.close = close;\n SweetAlert.prototype.closePopup = close;\n SweetAlert.prototype.closeModal = close;\n SweetAlert.prototype.closeToast = close;\n SweetAlert.prototype.rejectPromise = rejectPromise;\n SweetAlert.prototype.update = update;\n SweetAlert.prototype._destroy = _destroy;\n\n // Assign static methods from src/staticMethods/*.js to constructor\n Object.assign(SweetAlert, staticMethods);\n\n // Proxy to instance methods to constructor, for now, for backwards compatibility\n Object.keys(instanceMethods).forEach(function (key) {\n /**\n * @param {...any} args\n * @returns {any | undefined}\n */\n SweetAlert[key] = function () {\n if (currentInstance && currentInstance[key]) {\n var _currentInstance;\n return (_currentInstance = currentInstance)[key].apply(_currentInstance, arguments);\n }\n return null;\n };\n });\n SweetAlert.DismissReason = DismissReason;\n SweetAlert.version = '11.12.4';\n\n var Swal = SweetAlert;\n // @ts-ignore\n Swal[\"default\"] = Swal;\n\n return Swal;\n\n}));\nif (typeof this !== 'undefined' && this.Sweetalert2){this.swal = this.sweetAlert = this.Swal = this.SweetAlert = this.Sweetalert2}\n\"undefined\"!=typeof document&&function(e,t){var n=e.createElement(\"style\");if(e.getElementsByTagName(\"head\")[0].appendChild(n),n.styleSheet)n.styleSheet.disabled||(n.styleSheet.cssText=t);else try{n.innerHTML=t}catch(e){n.innerText=t}}(document,\".swal2-popup.swal2-toast{box-sizing:border-box;grid-column:1/4 !important;grid-row:1/4 !important;grid-template-columns:min-content auto min-content;padding:1em;overflow-y:hidden;background:#fff;box-shadow:0 0 1px rgba(0,0,0,.075),0 1px 2px rgba(0,0,0,.075),1px 2px 4px rgba(0,0,0,.075),1px 3px 8px rgba(0,0,0,.075),2px 4px 16px rgba(0,0,0,.075);pointer-events:all}.swal2-popup.swal2-toast>*{grid-column:2}.swal2-popup.swal2-toast .swal2-title{margin:.5em 1em;padding:0;font-size:1em;text-align:initial}.swal2-popup.swal2-toast .swal2-loading{justify-content:center}.swal2-popup.swal2-toast .swal2-input{height:2em;margin:.5em;font-size:1em}.swal2-popup.swal2-toast .swal2-validation-message{font-size:1em}.swal2-popup.swal2-toast .swal2-footer{margin:.5em 0 0;padding:.5em 0 0;font-size:.8em}.swal2-popup.swal2-toast .swal2-close{grid-column:3/3;grid-row:1/99;align-self:center;width:.8em;height:.8em;margin:0;font-size:2em}.swal2-popup.swal2-toast .swal2-html-container{margin:.5em 1em;padding:0;overflow:initial;font-size:1em;text-align:initial}.swal2-popup.swal2-toast .swal2-html-container:empty{padding:0}.swal2-popup.swal2-toast .swal2-loader{grid-column:1;grid-row:1/99;align-self:center;width:2em;height:2em;margin:.25em}.swal2-popup.swal2-toast .swal2-icon{grid-column:1;grid-row:1/99;align-self:center;width:2em;min-width:2em;height:2em;margin:0 .5em 0 0}.swal2-popup.swal2-toast .swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:1.8em;font-weight:bold}.swal2-popup.swal2-toast .swal2-icon.swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line]{top:.875em;width:1.375em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:.3125em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:.3125em}.swal2-popup.swal2-toast .swal2-actions{justify-content:flex-start;height:auto;margin:0;margin-top:.5em;padding:0 .5em}.swal2-popup.swal2-toast .swal2-styled{margin:.25em .5em;padding:.4em .6em;font-size:1em}.swal2-popup.swal2-toast .swal2-success{border-color:#a5dc86}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line]{position:absolute;width:1.6em;height:3em;border-radius:50%}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=left]{top:-0.8em;left:-0.5em;transform:rotate(-45deg);transform-origin:2em 2em;border-radius:4em 0 0 4em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=right]{top:-0.25em;left:.9375em;transform-origin:0 1.5em;border-radius:0 4em 4em 0}.swal2-popup.swal2-toast .swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-success .swal2-success-fix{top:0;left:.4375em;width:.4375em;height:2.6875em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line]{height:.3125em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=tip]{top:1.125em;left:.1875em;width:.75em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=long]{top:.9375em;right:.1875em;width:1.375em}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-tip{animation:swal2-toast-animate-success-line-tip .75s}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-long{animation:swal2-toast-animate-success-line-long .75s}.swal2-popup.swal2-toast.swal2-show{animation:swal2-toast-show .5s}.swal2-popup.swal2-toast.swal2-hide{animation:swal2-toast-hide .1s forwards}div:where(.swal2-container){display:grid;position:fixed;z-index:1060;inset:0;box-sizing:border-box;grid-template-areas:\\\"top-start top top-end\\\" \\\"center-start center center-end\\\" \\\"bottom-start bottom-center bottom-end\\\";grid-template-rows:minmax(min-content, auto) minmax(min-content, auto) minmax(min-content, auto);height:100%;padding:.625em;overflow-x:hidden;transition:background-color .1s;-webkit-overflow-scrolling:touch}div:where(.swal2-container).swal2-backdrop-show,div:where(.swal2-container).swal2-noanimation{background:rgba(0,0,0,.4)}div:where(.swal2-container).swal2-backdrop-hide{background:rgba(0,0,0,0) !important}div:where(.swal2-container).swal2-top-start,div:where(.swal2-container).swal2-center-start,div:where(.swal2-container).swal2-bottom-start{grid-template-columns:minmax(0, 1fr) auto auto}div:where(.swal2-container).swal2-top,div:where(.swal2-container).swal2-center,div:where(.swal2-container).swal2-bottom{grid-template-columns:auto minmax(0, 1fr) auto}div:where(.swal2-container).swal2-top-end,div:where(.swal2-container).swal2-center-end,div:where(.swal2-container).swal2-bottom-end{grid-template-columns:auto auto minmax(0, 1fr)}div:where(.swal2-container).swal2-top-start>.swal2-popup{align-self:start}div:where(.swal2-container).swal2-top>.swal2-popup{grid-column:2;place-self:start center}div:where(.swal2-container).swal2-top-end>.swal2-popup,div:where(.swal2-container).swal2-top-right>.swal2-popup{grid-column:3;place-self:start end}div:where(.swal2-container).swal2-center-start>.swal2-popup,div:where(.swal2-container).swal2-center-left>.swal2-popup{grid-row:2;align-self:center}div:where(.swal2-container).swal2-center>.swal2-popup{grid-column:2;grid-row:2;place-self:center center}div:where(.swal2-container).swal2-center-end>.swal2-popup,div:where(.swal2-container).swal2-center-right>.swal2-popup{grid-column:3;grid-row:2;place-self:center end}div:where(.swal2-container).swal2-bottom-start>.swal2-popup,div:where(.swal2-container).swal2-bottom-left>.swal2-popup{grid-column:1;grid-row:3;align-self:end}div:where(.swal2-container).swal2-bottom>.swal2-popup{grid-column:2;grid-row:3;place-self:end center}div:where(.swal2-container).swal2-bottom-end>.swal2-popup,div:where(.swal2-container).swal2-bottom-right>.swal2-popup{grid-column:3;grid-row:3;place-self:end end}div:where(.swal2-container).swal2-grow-row>.swal2-popup,div:where(.swal2-container).swal2-grow-fullscreen>.swal2-popup{grid-column:1/4;width:100%}div:where(.swal2-container).swal2-grow-column>.swal2-popup,div:where(.swal2-container).swal2-grow-fullscreen>.swal2-popup{grid-row:1/4;align-self:stretch}div:where(.swal2-container).swal2-no-transition{transition:none !important}div:where(.swal2-container) div:where(.swal2-popup){display:none;position:relative;box-sizing:border-box;grid-template-columns:minmax(0, 100%);width:32em;max-width:100%;padding:0 0 1.25em;border:none;border-radius:5px;background:#fff;color:#545454;font-family:inherit;font-size:1rem}div:where(.swal2-container) div:where(.swal2-popup):focus{outline:none}div:where(.swal2-container) div:where(.swal2-popup).swal2-loading{overflow-y:hidden}div:where(.swal2-container) h2:where(.swal2-title){position:relative;max-width:100%;margin:0;padding:.8em 1em 0;color:inherit;font-size:1.875em;font-weight:600;text-align:center;text-transform:none;word-wrap:break-word}div:where(.swal2-container) div:where(.swal2-actions){display:flex;z-index:1;box-sizing:border-box;flex-wrap:wrap;align-items:center;justify-content:center;width:auto;margin:1.25em auto 0;padding:0}div:where(.swal2-container) div:where(.swal2-actions):not(.swal2-loading) .swal2-styled[disabled]{opacity:.4}div:where(.swal2-container) div:where(.swal2-actions):not(.swal2-loading) .swal2-styled:hover{background-image:linear-gradient(rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0.1))}div:where(.swal2-container) div:where(.swal2-actions):not(.swal2-loading) .swal2-styled:active{background-image:linear-gradient(rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.2))}div:where(.swal2-container) div:where(.swal2-loader){display:none;align-items:center;justify-content:center;width:2.2em;height:2.2em;margin:0 1.875em;animation:swal2-rotate-loading 1.5s linear 0s infinite normal;border-width:.25em;border-style:solid;border-radius:100%;border-color:#2778c4 rgba(0,0,0,0) #2778c4 rgba(0,0,0,0)}div:where(.swal2-container) button:where(.swal2-styled){margin:.3125em;padding:.625em 1.1em;transition:box-shadow .1s;box-shadow:0 0 0 3px rgba(0,0,0,0);font-weight:500}div:where(.swal2-container) button:where(.swal2-styled):not([disabled]){cursor:pointer}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-confirm){border:0;border-radius:.25em;background:initial;background-color:#7066e0;color:#fff;font-size:1em}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-confirm):focus-visible{box-shadow:0 0 0 3px rgba(112,102,224,.5)}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-deny){border:0;border-radius:.25em;background:initial;background-color:#dc3741;color:#fff;font-size:1em}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-deny):focus-visible{box-shadow:0 0 0 3px rgba(220,55,65,.5)}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-cancel){border:0;border-radius:.25em;background:initial;background-color:#6e7881;color:#fff;font-size:1em}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-cancel):focus-visible{box-shadow:0 0 0 3px rgba(110,120,129,.5)}div:where(.swal2-container) button:where(.swal2-styled).swal2-default-outline:focus-visible{box-shadow:0 0 0 3px rgba(100,150,200,.5)}div:where(.swal2-container) button:where(.swal2-styled):focus-visible{outline:none}div:where(.swal2-container) button:where(.swal2-styled)::-moz-focus-inner{border:0}div:where(.swal2-container) div:where(.swal2-footer){margin:1em 0 0;padding:1em 1em 0;border-top:1px solid #eee;color:inherit;font-size:1em;text-align:center}div:where(.swal2-container) .swal2-timer-progress-bar-container{position:absolute;right:0;bottom:0;left:0;grid-column:auto !important;overflow:hidden;border-bottom-right-radius:5px;border-bottom-left-radius:5px}div:where(.swal2-container) div:where(.swal2-timer-progress-bar){width:100%;height:.25em;background:rgba(0,0,0,.2)}div:where(.swal2-container) img:where(.swal2-image){max-width:100%;margin:2em auto 1em}div:where(.swal2-container) button:where(.swal2-close){z-index:2;align-items:center;justify-content:center;width:1.2em;height:1.2em;margin-top:0;margin-right:0;margin-bottom:-1.2em;padding:0;overflow:hidden;transition:color .1s,box-shadow .1s;border:none;border-radius:5px;background:rgba(0,0,0,0);color:#ccc;font-family:monospace;font-size:2.5em;cursor:pointer;justify-self:end}div:where(.swal2-container) button:where(.swal2-close):hover{transform:none;background:rgba(0,0,0,0);color:#f27474}div:where(.swal2-container) button:where(.swal2-close):focus-visible{outline:none;box-shadow:inset 0 0 0 3px rgba(100,150,200,.5)}div:where(.swal2-container) button:where(.swal2-close)::-moz-focus-inner{border:0}div:where(.swal2-container) .swal2-html-container{z-index:1;justify-content:center;margin:0;padding:1em 1.6em .3em;overflow:auto;color:inherit;font-size:1.125em;font-weight:normal;line-height:normal;text-align:center;word-wrap:break-word;word-break:break-word}div:where(.swal2-container) input:where(.swal2-input),div:where(.swal2-container) input:where(.swal2-file),div:where(.swal2-container) textarea:where(.swal2-textarea),div:where(.swal2-container) select:where(.swal2-select),div:where(.swal2-container) div:where(.swal2-radio),div:where(.swal2-container) label:where(.swal2-checkbox){margin:1em 2em 3px}div:where(.swal2-container) input:where(.swal2-input),div:where(.swal2-container) input:where(.swal2-file),div:where(.swal2-container) textarea:where(.swal2-textarea){box-sizing:border-box;width:auto;transition:border-color .1s,box-shadow .1s;border:1px solid #d9d9d9;border-radius:.1875em;background:rgba(0,0,0,0);box-shadow:inset 0 1px 1px rgba(0,0,0,.06),0 0 0 3px rgba(0,0,0,0);color:inherit;font-size:1.125em}div:where(.swal2-container) input:where(.swal2-input).swal2-inputerror,div:where(.swal2-container) input:where(.swal2-file).swal2-inputerror,div:where(.swal2-container) textarea:where(.swal2-textarea).swal2-inputerror{border-color:#f27474 !important;box-shadow:0 0 2px #f27474 !important}div:where(.swal2-container) input:where(.swal2-input):focus,div:where(.swal2-container) input:where(.swal2-file):focus,div:where(.swal2-container) textarea:where(.swal2-textarea):focus{border:1px solid #b4dbed;outline:none;box-shadow:inset 0 1px 1px rgba(0,0,0,.06),0 0 0 3px rgba(100,150,200,.5)}div:where(.swal2-container) input:where(.swal2-input)::placeholder,div:where(.swal2-container) input:where(.swal2-file)::placeholder,div:where(.swal2-container) textarea:where(.swal2-textarea)::placeholder{color:#ccc}div:where(.swal2-container) .swal2-range{margin:1em 2em 3px;background:#fff}div:where(.swal2-container) .swal2-range input{width:80%}div:where(.swal2-container) .swal2-range output{width:20%;color:inherit;font-weight:600;text-align:center}div:where(.swal2-container) .swal2-range input,div:where(.swal2-container) .swal2-range output{height:2.625em;padding:0;font-size:1.125em;line-height:2.625em}div:where(.swal2-container) .swal2-input{height:2.625em;padding:0 .75em}div:where(.swal2-container) .swal2-file{width:75%;margin-right:auto;margin-left:auto;background:rgba(0,0,0,0);font-size:1.125em}div:where(.swal2-container) .swal2-textarea{height:6.75em;padding:.75em}div:where(.swal2-container) .swal2-select{min-width:50%;max-width:100%;padding:.375em .625em;background:rgba(0,0,0,0);color:inherit;font-size:1.125em}div:where(.swal2-container) .swal2-radio,div:where(.swal2-container) .swal2-checkbox{align-items:center;justify-content:center;background:#fff;color:inherit}div:where(.swal2-container) .swal2-radio label,div:where(.swal2-container) .swal2-checkbox label{margin:0 .6em;font-size:1.125em}div:where(.swal2-container) .swal2-radio input,div:where(.swal2-container) .swal2-checkbox input{flex-shrink:0;margin:0 .4em}div:where(.swal2-container) label:where(.swal2-input-label){display:flex;justify-content:center;margin:1em auto 0}div:where(.swal2-container) div:where(.swal2-validation-message){align-items:center;justify-content:center;margin:1em 0 0;padding:.625em;overflow:hidden;background:#f0f0f0;color:#666;font-size:1em;font-weight:300}div:where(.swal2-container) div:where(.swal2-validation-message)::before{content:\\\"!\\\";display:inline-block;width:1.5em;min-width:1.5em;height:1.5em;margin:0 .625em;border-radius:50%;background-color:#f27474;color:#fff;font-weight:600;line-height:1.5em;text-align:center}div:where(.swal2-container) .swal2-progress-steps{flex-wrap:wrap;align-items:center;max-width:100%;margin:1.25em auto;padding:0;background:rgba(0,0,0,0);font-weight:600}div:where(.swal2-container) .swal2-progress-steps li{display:inline-block;position:relative}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step{z-index:20;flex-shrink:0;width:2em;height:2em;border-radius:2em;background:#2778c4;color:#fff;line-height:2em;text-align:center}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step.swal2-active-progress-step{background:#2778c4}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step{background:#add8e6;color:#fff}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step-line{background:#add8e6}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step-line{z-index:10;flex-shrink:0;width:2.5em;height:.4em;margin:0 -1px;background:#2778c4}div:where(.swal2-icon){position:relative;box-sizing:content-box;justify-content:center;width:5em;height:5em;margin:2.5em auto .6em;border:0.25em solid rgba(0,0,0,0);border-radius:50%;border-color:#000;font-family:inherit;line-height:5em;cursor:default;user-select:none}div:where(.swal2-icon) .swal2-icon-content{display:flex;align-items:center;font-size:3.75em}div:where(.swal2-icon).swal2-error{border-color:#f27474;color:#f27474}div:where(.swal2-icon).swal2-error .swal2-x-mark{position:relative;flex-grow:1}div:where(.swal2-icon).swal2-error [class^=swal2-x-mark-line]{display:block;position:absolute;top:2.3125em;width:2.9375em;height:.3125em;border-radius:.125em;background-color:#f27474}div:where(.swal2-icon).swal2-error [class^=swal2-x-mark-line][class$=left]{left:1.0625em;transform:rotate(45deg)}div:where(.swal2-icon).swal2-error [class^=swal2-x-mark-line][class$=right]{right:1em;transform:rotate(-45deg)}div:where(.swal2-icon).swal2-error.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-error.swal2-icon-show .swal2-x-mark{animation:swal2-animate-error-x-mark .5s}div:where(.swal2-icon).swal2-warning{border-color:#facea8;color:#f8bb86}div:where(.swal2-icon).swal2-warning.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-warning.swal2-icon-show .swal2-icon-content{animation:swal2-animate-i-mark .5s}div:where(.swal2-icon).swal2-info{border-color:#9de0f6;color:#3fc3ee}div:where(.swal2-icon).swal2-info.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-info.swal2-icon-show .swal2-icon-content{animation:swal2-animate-i-mark .8s}div:where(.swal2-icon).swal2-question{border-color:#c9dae1;color:#87adbd}div:where(.swal2-icon).swal2-question.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-question.swal2-icon-show .swal2-icon-content{animation:swal2-animate-question-mark .8s}div:where(.swal2-icon).swal2-success{border-color:#a5dc86;color:#a5dc86}div:where(.swal2-icon).swal2-success [class^=swal2-success-circular-line]{position:absolute;width:3.75em;height:7.5em;border-radius:50%}div:where(.swal2-icon).swal2-success [class^=swal2-success-circular-line][class$=left]{top:-0.4375em;left:-2.0635em;transform:rotate(-45deg);transform-origin:3.75em 3.75em;border-radius:7.5em 0 0 7.5em}div:where(.swal2-icon).swal2-success [class^=swal2-success-circular-line][class$=right]{top:-0.6875em;left:1.875em;transform:rotate(-45deg);transform-origin:0 3.75em;border-radius:0 7.5em 7.5em 0}div:where(.swal2-icon).swal2-success .swal2-success-ring{position:absolute;z-index:2;top:-0.25em;left:-0.25em;box-sizing:content-box;width:100%;height:100%;border:.25em solid rgba(165,220,134,.3);border-radius:50%}div:where(.swal2-icon).swal2-success .swal2-success-fix{position:absolute;z-index:1;top:.5em;left:1.625em;width:.4375em;height:5.625em;transform:rotate(-45deg)}div:where(.swal2-icon).swal2-success [class^=swal2-success-line]{display:block;position:absolute;z-index:2;height:.3125em;border-radius:.125em;background-color:#a5dc86}div:where(.swal2-icon).swal2-success [class^=swal2-success-line][class$=tip]{top:2.875em;left:.8125em;width:1.5625em;transform:rotate(45deg)}div:where(.swal2-icon).swal2-success [class^=swal2-success-line][class$=long]{top:2.375em;right:.5em;width:2.9375em;transform:rotate(-45deg)}div:where(.swal2-icon).swal2-success.swal2-icon-show .swal2-success-line-tip{animation:swal2-animate-success-line-tip .75s}div:where(.swal2-icon).swal2-success.swal2-icon-show .swal2-success-line-long{animation:swal2-animate-success-line-long .75s}div:where(.swal2-icon).swal2-success.swal2-icon-show .swal2-success-circular-line-right{animation:swal2-rotate-success-circular-line 4.25s ease-in}[class^=swal2]{-webkit-tap-highlight-color:rgba(0,0,0,0)}.swal2-show{animation:swal2-show .3s}.swal2-hide{animation:swal2-hide .15s forwards}.swal2-noanimation{transition:none}.swal2-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}.swal2-rtl .swal2-close{margin-right:initial;margin-left:0}.swal2-rtl .swal2-timer-progress-bar{right:0;left:auto}@keyframes swal2-toast-show{0%{transform:translateY(-0.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(0.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0deg)}}@keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-0.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}@keyframes swal2-show{0%{transform:scale(0.7)}45%{transform:scale(1.05)}80%{transform:scale(0.95)}100%{transform:scale(1)}}@keyframes swal2-hide{0%{transform:scale(1);opacity:1}100%{transform:scale(0.5);opacity:0}}@keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-0.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.8125em;width:1.5625em}}@keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(0.4);opacity:0}50%{margin-top:1.625em;transform:scale(0.4);opacity:0}80%{margin-top:-0.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0deg);opacity:1}}@keyframes swal2-rotate-loading{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}@keyframes swal2-animate-question-mark{0%{transform:rotateY(-360deg)}100%{transform:rotateY(0)}}@keyframes swal2-animate-i-mark{0%{transform:rotateZ(45deg);opacity:0}25%{transform:rotateZ(-25deg);opacity:.4}50%{transform:rotateZ(15deg);opacity:.8}75%{transform:rotateZ(-5deg);opacity:1}100%{transform:rotateX(0);opacity:1}}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow:hidden}body.swal2-height-auto{height:auto !important}body.swal2-no-backdrop .swal2-container{background-color:rgba(0,0,0,0) !important;pointer-events:none}body.swal2-no-backdrop .swal2-container .swal2-popup{pointer-events:all}body.swal2-no-backdrop .swal2-container .swal2-modal{box-shadow:0 0 10px rgba(0,0,0,.4)}@media print{body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow-y:scroll !important}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown)>[aria-hidden=true]{display:none}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) .swal2-container{position:static !important}}body.swal2-toast-shown .swal2-container{box-sizing:border-box;width:360px;max-width:100%;background-color:rgba(0,0,0,0);pointer-events:none}body.swal2-toast-shown .swal2-container.swal2-top{inset:0 auto auto 50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-top-end,body.swal2-toast-shown .swal2-container.swal2-top-right{inset:0 0 auto auto}body.swal2-toast-shown .swal2-container.swal2-top-start,body.swal2-toast-shown .swal2-container.swal2-top-left{inset:0 auto auto 0}body.swal2-toast-shown .swal2-container.swal2-center-start,body.swal2-toast-shown .swal2-container.swal2-center-left{inset:50% auto auto 0;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-center{inset:50% auto auto 50%;transform:translate(-50%, -50%)}body.swal2-toast-shown .swal2-container.swal2-center-end,body.swal2-toast-shown .swal2-container.swal2-center-right{inset:50% 0 auto auto;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-start,body.swal2-toast-shown .swal2-container.swal2-bottom-left{inset:auto auto 0 0}body.swal2-toast-shown .swal2-container.swal2-bottom{inset:auto auto 0 50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-end,body.swal2-toast-shown .swal2-container.swal2-bottom-right{inset:auto 0 0 auto}\");","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"/\";","////////////////////////////////////////////////////////////////////////////////\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: unknown;\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 // We keep the raw Response for redirects so we can return it verbatim\n response: Response;\n}\n\n/**\n * Unsuccessful result from a loader or action\n */\nexport interface ErrorResult {\n type: ResultType.error;\n error: unknown;\n statusCode?: number;\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\n/**\n * Result from a loader or action called via dataStrategy\n */\nexport interface HandlerResult {\n type: \"data\" | \"error\";\n result: unknown; // data, Error, Response, DeferredData, DataWithResponseInit\n}\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\ntype DataFunctionReturnValue = Promise | DataFunctionValue;\n\n/**\n * Route loader function signature\n */\nexport type LoaderFunction = {\n (\n args: LoaderFunctionArgs,\n handlerCtx?: unknown\n ): DataFunctionReturnValue;\n} & { hydrate?: boolean };\n\n/**\n * Route action function signature\n */\nexport interface ActionFunction {\n (\n args: ActionFunctionArgs,\n handlerCtx?: unknown\n ): DataFunctionReturnValue;\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 actionStatus?: number;\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\nexport interface DataStrategyMatch\n extends AgnosticRouteMatch {\n shouldLoad: boolean;\n resolve: (\n handlerOverride?: (\n handler: (ctx?: unknown) => DataFunctionReturnValue\n ) => Promise\n ) => Promise;\n}\n\nexport interface DataStrategyFunctionArgs\n extends DataFunctionArgs {\n matches: DataStrategyMatch[];\n}\n\nexport interface DataStrategyFunction {\n (args: DataStrategyFunctionArgs): Promise;\n}\n\nexport interface AgnosticPatchRoutesOnNavigationFunction<\n M extends AgnosticRouteMatch = AgnosticRouteMatch\n> {\n (opts: {\n path: string;\n matches: M[];\n patch: (routeId: string | null, children: AgnosticRouteObject[]) => void;\n }): void | Promise;\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 | boolean;\n action?: ActionFunction | boolean;\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: string[] = [],\n manifest: RouteManifest = {}\n): AgnosticDataRouteObject[] {\n return routes.map((route, index) => {\n let treePath = [...parentPath, String(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 return matchRoutesImpl(routes, locationArg, basename, false);\n}\n\nexport function matchRoutesImpl<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n locationArg: Partial | string,\n basename: string,\n allowPartial: boolean\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(\n branches[i],\n decoded,\n allowPartial\n );\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 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 allowPartial = false\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 let route = meta.route;\n\n if (\n !match &&\n end &&\n allowPartial &&\n !routesMeta[routesMeta.length - 1].route.index\n ) {\n match = matchPath(\n {\n path: meta.relativePath,\n caseSensitive: meta.caseSensitive,\n end: false,\n },\n remainingPathname\n );\n }\n\n if (!match) {\n return null;\n }\n\n Object.assign(matchedParams, match.params);\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\nexport function 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 === pathMatches.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 class DataWithResponseInit {\n type: string = \"DataWithResponseInit\";\n data: D;\n init: ResponseInit | null;\n\n constructor(data: D, init?: ResponseInit) {\n this.data = data;\n this.init = init || null;\n }\n}\n\n/**\n * Create \"responses\" that contain `status`/`headers` without forcing\n * serialization into an actual `Response` - used by Remix single fetch\n */\nexport function data(data: D, init?: number | ResponseInit) {\n return new DataWithResponseInit(\n data,\n typeof init === \"number\" ? { status: init } : init\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\n/**\n * A redirect response that will perform a `history.replaceState` instead of a\n * `history.pushState` for client-side navigation redirects.\n * Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const replace: RedirectFunction = (url, init) => {\n let response = redirect(url, init);\n response.headers.set(\"X-Remix-Replace\", \"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 AgnosticDataRouteMatch,\n AgnosticDataRouteObject,\n DataStrategyMatch,\n AgnosticRouteObject,\n DataResult,\n DataStrategyFunction,\n DataStrategyFunctionArgs,\n DeferredData,\n DeferredResult,\n DetectErrorBoundaryFunction,\n ErrorResult,\n FormEncType,\n FormMethod,\n HTMLFormMethod,\n HandlerResult,\n ImmutableRouteKey,\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 AgnosticPatchRoutesOnNavigationFunction,\n DataWithResponseInit,\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 matchRoutesImpl,\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 * Patch additional children routes into an existing parent route\n * @param routeId The parent route id or a callback function accepting `patch`\n * to perform batch patching\n * @param children The additional children routes\n */\n patchRoutes(routeId: string | null, children: AgnosticRouteObject[]): 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 v7_skipActionErrorRevalidation: 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 unstable_patchRoutesOnNavigation?: AgnosticPatchRoutesOnNavigationFunction;\n unstable_dataStrategy?: DataStrategyFunction;\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?: {\n requestContext?: unknown;\n skipLoaderErrorBubbling?: boolean;\n unstable_dataStrategy?: DataStrategyFunction;\n }\n ): Promise;\n queryRoute(\n request: Request,\n opts?: {\n routeId?: string;\n requestContext?: unknown;\n unstable_dataStrategy?: DataStrategyFunction;\n }\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\ntype PendingActionResult = [string, SuccessResult | ErrorResult];\n\ninterface HandleActionResult extends ShortCircuitable {\n /**\n * Route matches which may have been updated from fog of war discovery\n */\n matches?: RouterState[\"matches\"];\n /**\n * Tuple for the returned or thrown value from the current action. The routeId\n * is the action route for success and the bubbled boundary route for errors.\n */\n pendingActionResult?: PendingActionResult;\n}\n\ninterface HandleLoadersResult extends ShortCircuitable {\n /**\n * Route matches which may have been updated from fog of war discovery\n */\n matches?: RouterState[\"matches\"];\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\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 let dataStrategyImpl = init.unstable_dataStrategy || defaultDataStrategy;\n let patchRoutesOnNavigationImpl = init.unstable_patchRoutesOnNavigation;\n\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 v7_skipActionErrorRevalidation: 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 // FIFO queue of previously discovered routes to prevent re-calling on\n // subsequent navigations to the same path\n let discoveredRoutesMaxSize = 1000;\n let discoveredRoutes = 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 && !patchRoutesOnNavigationImpl) {\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 // In SPA apps, if the user provided a patchRoutesOnNavigation implementation and\n // our initial match is a splat route, clear them out so we run through lazy\n // discovery on hydration in case there's a more accurate lazy route match.\n // In SSR apps (with `hydrationData`), we expect that the server will send\n // up the proper matched routes so we don't want to run lazy discovery on\n // initial hydration and want to hydrate into the splat route.\n if (initialMatches && !init.hydrationData) {\n let fogOfWar = checkFogOfWar(\n initialMatches,\n dataRoutes,\n init.history.location.pathname\n );\n if (fogOfWar.active) {\n initialMatches = null;\n }\n }\n\n let initialized: boolean;\n if (!initialMatches) {\n initialized = false;\n initialMatches = [];\n\n // If partial hydration and fog of war is enabled, we will be running\n // `patchRoutesOnNavigation` during hydration so include any partial matches as\n // the initial matches so we can properly render `HydrateFallback`'s\n if (future.v7_partialHydration) {\n let fogOfWar = checkFogOfWar(\n null,\n dataRoutes,\n init.history.location.pathname\n );\n if (fogOfWar.active && fogOfWar.matches) {\n initialMatches = fogOfWar.matches;\n }\n }\n } else if (initialMatches.some((m) => m.route.lazy)) {\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 (!initialMatches.some((m) => m.route.loader)) {\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) {\n return true;\n }\n // Explicitly opting-in to running on hydration\n if (\n typeof m.route.loader === \"function\" &&\n m.route.loader.hydrate === true\n ) {\n return false;\n }\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: Set = new Set();\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 // Map of pending patchRoutesOnNavigation() promises (keyed by path/matches) so\n // that we only kick them off once for a given combo\n let pendingPatchRoutes = new Map<\n string,\n ReturnType\n >();\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 // Commit any in-flight routes at the end of the HMR revalidation \"navigation\"\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 }\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 let fogOfWar = checkFogOfWar(matches, routesToUse, location.pathname);\n if (fogOfWar.active && fogOfWar.matches) {\n matches = fogOfWar.matches;\n }\n\n // Short circuit with a 404 on the root error boundary if we match nothing\n if (!matches) {\n let { error, notFoundMatches, route } = handleNavigational404(\n location.pathname\n );\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 pendingActionResult: PendingActionResult | 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 pendingActionResult = [\n findNearestBoundary(matches).route.id,\n { type: ResultType.error, error: 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 actionResult = await handleAction(\n request,\n location,\n opts.submission,\n matches,\n fogOfWar.active,\n { replace: opts.replace, flushSync }\n );\n\n if (actionResult.shortCircuited) {\n return;\n }\n\n // If we received a 404 from handleAction, it's because we couldn't lazily\n // discover the destination route so we don't want to call loaders\n if (actionResult.pendingActionResult) {\n let [routeId, result] = actionResult.pendingActionResult;\n if (\n isErrorResult(result) &&\n isRouteErrorResponse(result.error) &&\n result.error.status === 404\n ) {\n pendingNavigationController = null;\n\n completeNavigation(location, {\n matches: actionResult.matches,\n loaderData: {},\n errors: {\n [routeId]: result.error,\n },\n });\n return;\n }\n }\n\n matches = actionResult.matches || matches;\n pendingActionResult = actionResult.pendingActionResult;\n loadingNavigation = getLoadingNavigation(location, opts.submission);\n flushSync = false;\n // No need to do fog of war matching again on loader execution\n fogOfWar.active = false;\n\n // Create a GET request for the loaders\n request = createClientSideRequest(\n init.history,\n request.url,\n request.signal\n );\n }\n\n // Call loaders\n let {\n shortCircuited,\n matches: updatedMatches,\n loaderData,\n errors,\n } = await handleLoaders(\n request,\n location,\n matches,\n fogOfWar.active,\n loadingNavigation,\n opts && opts.submission,\n opts && opts.fetcherSubmission,\n opts && opts.replace,\n opts && opts.initialHydration === true,\n flushSync,\n pendingActionResult\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: updatedMatches || matches,\n ...getActionDataForCommit(pendingActionResult),\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 isFogOfWar: boolean,\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 if (isFogOfWar) {\n let discoverResult = await discoverRoutes(\n matches,\n location.pathname,\n request.signal\n );\n if (discoverResult.type === \"aborted\") {\n return { shortCircuited: true };\n } else if (discoverResult.type === \"error\") {\n let { boundaryId, error } = handleDiscoverRouteError(\n location.pathname,\n discoverResult\n );\n return {\n matches: discoverResult.partialMatches,\n pendingActionResult: [\n boundaryId,\n {\n type: ResultType.error,\n error,\n },\n ],\n };\n } else if (!discoverResult.matches) {\n let { notFoundMatches, error, route } = handleNavigational404(\n location.pathname\n );\n return {\n matches: notFoundMatches,\n pendingActionResult: [\n route.id,\n {\n type: ResultType.error,\n error,\n },\n ],\n };\n } else {\n matches = discoverResult.matches;\n }\n }\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 let results = await callDataStrategy(\n \"action\",\n request,\n [actionMatch],\n matches\n );\n result = results[0];\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 let location = normalizeRedirectLocation(\n result.response.headers.get(\"Location\")!,\n new URL(request.url),\n basename\n );\n replace = location === state.location.pathname + state.location.search;\n }\n await startRedirectNavigation(request, result, {\n submission,\n replace,\n });\n return { shortCircuited: true };\n }\n\n if (isDeferredResult(result)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\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 to the current location are REPLACE\n // navigations, but if the action threw an error that'll be rendered in\n // an errorElement, we fall back to PUSH so that the user can use the\n // back button to get back to the pre-submission form location to try\n // again\n if ((opts && opts.replace) !== true) {\n pendingAction = HistoryAction.Push;\n }\n\n return {\n matches,\n pendingActionResult: [boundaryMatch.route.id, result],\n };\n }\n\n return {\n matches,\n pendingActionResult: [actionMatch.route.id, result],\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 isFogOfWar: boolean,\n overrideNavigation?: Navigation,\n submission?: Submission,\n fetcherSubmission?: Submission,\n replace?: boolean,\n initialHydration?: boolean,\n flushSync?: boolean,\n pendingActionResult?: PendingActionResult\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 // 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 let shouldUpdateNavigationState =\n !isUninterruptedRevalidation &&\n (!future.v7_partialHydration || !initialHydration);\n\n // When fog of war is enabled, we enter our `loading` state earlier so we\n // can discover new routes during the `loading` state. We skip this if\n // we've already run actions since we would have done our matching already.\n // If the children() function threw then, we want to proceed with the\n // partial matches it discovered.\n if (isFogOfWar) {\n if (shouldUpdateNavigationState) {\n let actionData = getUpdatedActionData(pendingActionResult);\n updateState(\n {\n navigation: loadingNavigation,\n ...(actionData !== undefined ? { actionData } : {}),\n },\n {\n flushSync,\n }\n );\n }\n\n let discoverResult = await discoverRoutes(\n matches,\n location.pathname,\n request.signal\n );\n\n if (discoverResult.type === \"aborted\") {\n return { shortCircuited: true };\n } else if (discoverResult.type === \"error\") {\n let { boundaryId, error } = handleDiscoverRouteError(\n location.pathname,\n discoverResult\n );\n return {\n matches: discoverResult.partialMatches,\n loaderData: {},\n errors: {\n [boundaryId]: error,\n },\n };\n } else if (!discoverResult.matches) {\n let { error, notFoundMatches, route } = handleNavigational404(\n location.pathname\n );\n return {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error,\n },\n };\n } else {\n matches = discoverResult.matches;\n }\n }\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 future.v7_skipActionErrorRevalidation,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n deletedFetchers,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n pendingActionResult\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:\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? { [pendingActionResult[0]]: pendingActionResult[1].error }\n : null,\n ...getActionDataForCommit(pendingActionResult),\n ...(updatedFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n },\n { flushSync }\n );\n return { shortCircuited: true };\n }\n\n if (shouldUpdateNavigationState) {\n let updates: Partial = {};\n if (!isFogOfWar) {\n // Only update navigation/actionNData if we didn't already do it above\n updates.navigation = loadingNavigation;\n let actionData = getUpdatedActionData(pendingActionResult);\n if (actionData !== undefined) {\n updates.actionData = actionData;\n }\n }\n if (revalidatingFetchers.length > 0) {\n updates.fetchers = getUpdatedRevalidatingFetchers(revalidatingFetchers);\n }\n updateState(updates, { flushSync });\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 { 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([...loaderResults, ...fetcherResults]);\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(request, redirect.result, {\n replace,\n });\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 pendingActionResult,\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 matches,\n loaderData,\n errors,\n ...(shouldUpdateFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n };\n }\n\n function getUpdatedActionData(\n pendingActionResult: PendingActionResult | undefined\n ): Record | null | undefined {\n if (pendingActionResult && !isErrorResult(pendingActionResult[1])) {\n // This is cast to `any` currently because `RouteData`uses any and it\n // would be a breaking change to use any.\n // TODO: v7 - change `RouteData` to use `unknown` instead of `any`\n return {\n [pendingActionResult[0]]: pendingActionResult[1].data as any,\n };\n } else if (state.actionData) {\n if (Object.keys(state.actionData).length === 0) {\n return null;\n } else {\n return state.actionData;\n }\n }\n }\n\n function getUpdatedRevalidatingFetchers(\n revalidatingFetchers: RevalidatingFetcher[]\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 return new Map(state.fetchers);\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 let fogOfWar = checkFogOfWar(matches, routesToUse, normalizedPath);\n if (fogOfWar.active && fogOfWar.matches) {\n matches = fogOfWar.matches;\n }\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 fogOfWar.active,\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 fogOfWar.active,\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 isFogOfWar: boolean,\n flushSync: boolean,\n submission: Submission\n ) {\n interruptActiveLoads();\n fetchLoadMatches.delete(key);\n\n function detectAndHandle405Error(m: AgnosticDataRouteMatch) {\n if (!m.route.action && !m.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 true;\n }\n return false;\n }\n\n if (!isFogOfWar && detectAndHandle405Error(match)) {\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 let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal,\n submission\n );\n\n if (isFogOfWar) {\n let discoverResult = await discoverRoutes(\n requestMatches,\n path,\n fetchRequest.signal\n );\n\n if (discoverResult.type === \"aborted\") {\n return;\n } else if (discoverResult.type === \"error\") {\n let { error } = handleDiscoverRouteError(path, discoverResult);\n setFetcherError(key, routeId, error, { flushSync });\n return;\n } else if (!discoverResult.matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: path }),\n { flushSync }\n );\n return;\n } else {\n requestMatches = discoverResult.matches;\n match = getTargetMatch(requestMatches, path);\n\n if (detectAndHandle405Error(match)) {\n return;\n }\n }\n }\n\n // Call the action for the fetcher\n fetchControllers.set(key, abortController);\n\n let originatingLoadId = incrementingLoadId;\n let actionResults = await callDataStrategy(\n \"action\",\n fetchRequest,\n [match],\n requestMatches\n );\n let actionResult = actionResults[0];\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(fetchRequest, 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 future.v7_skipActionErrorRevalidation,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n deletedFetchers,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n [match.route.id, actionResult]\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 { 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([...loaderResults, ...fetcherResults]);\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(revalidationRequest, 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 isFogOfWar: boolean,\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 let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal\n );\n\n if (isFogOfWar) {\n let discoverResult = await discoverRoutes(\n matches,\n path,\n fetchRequest.signal\n );\n\n if (discoverResult.type === \"aborted\") {\n return;\n } else if (discoverResult.type === \"error\") {\n let { error } = handleDiscoverRouteError(path, discoverResult);\n setFetcherError(key, routeId, error, { flushSync });\n return;\n } else if (!discoverResult.matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: path }),\n { flushSync }\n );\n return;\n } else {\n matches = discoverResult.matches;\n match = getTargetMatch(matches, path);\n }\n }\n\n // Call the loader for this fetcher route match\n fetchControllers.set(key, abortController);\n\n let originatingLoadId = incrementingLoadId;\n let results = await callDataStrategy(\n \"loader\",\n fetchRequest,\n [match],\n matches\n );\n let result = results[0];\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(fetchRequest, 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 request: Request,\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.response.headers.has(\"X-Remix-Revalidate\")) {\n isRevalidationRequired = true;\n }\n\n let location = redirect.response.headers.get(\"Location\");\n invariant(location, \"Expected a Location header on the redirect Response\");\n location = normalizeRedirectLocation(\n location,\n new URL(request.url),\n basename\n );\n let redirectLocation = createLocation(state.location, location, {\n _isRedirect: true,\n });\n\n if (isBrowser) {\n let isDocumentReload = false;\n\n if (redirect.response.headers.has(\"X-Remix-Reload-Document\")) {\n // Hard reload if the response contained X-Remix-Reload-Document\n isDocumentReload = true;\n } else if (ABSOLUTE_URL_REGEX.test(location)) {\n const url = init.history.createURL(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(location);\n } else {\n routerWindow.location.assign(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 || redirect.response.headers.has(\"X-Remix-Replace\")\n ? HistoryAction.Replace\n : 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.response.status) &&\n activeSubmission &&\n isMutationMethod(activeSubmission.formMethod)\n ) {\n await startNavigation(redirectHistoryAction, redirectLocation, {\n submission: {\n ...activeSubmission,\n formAction: 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 // Utility wrapper for calling dataStrategy client-side without having to\n // pass around the manifest, mapRouteProperties, etc.\n async function callDataStrategy(\n type: \"loader\" | \"action\",\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[]\n ): Promise {\n try {\n let results = await callDataStrategyImpl(\n dataStrategyImpl,\n type,\n request,\n matchesToLoad,\n matches,\n manifest,\n mapRouteProperties\n );\n\n return await Promise.all(\n results.map((result, i) => {\n if (isRedirectHandlerResult(result)) {\n let response = result.result as Response;\n return {\n type: ResultType.redirect,\n response: normalizeRelativeRoutingRedirectResponse(\n response,\n request,\n matchesToLoad[i].route.id,\n matches,\n basename,\n future.v7_relativeSplatPath\n ),\n };\n }\n\n return convertHandlerResultToDataResult(result);\n })\n );\n } catch (e) {\n // If the outer dataStrategy method throws, just return the error for all\n // matches - and it'll naturally bubble to the root\n return matchesToLoad.map(() => ({\n type: ResultType.error,\n error: e,\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 let [loaderResults, ...fetcherResults] = await Promise.all([\n matchesToLoad.length\n ? callDataStrategy(\"loader\", request, matchesToLoad, matches)\n : [],\n ...fetchersToLoad.map((f) => {\n if (f.matches && f.match && f.controller) {\n let fetcherRequest = createClientSideRequest(\n init.history,\n f.path,\n f.controller.signal\n );\n return callDataStrategy(\n \"loader\",\n fetcherRequest,\n [f.match],\n f.matches\n ).then((r) => r[0]);\n } else {\n return Promise.resolve({\n type: ResultType.error,\n error: getInternalRouterError(404, {\n pathname: f.path,\n }),\n });\n }\n }),\n ]);\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 {\n loaderResults,\n fetcherResults,\n };\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.add(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 cancelledFetcherLoads.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 handleNavigational404(pathname: string) {\n let error = getInternalRouterError(404, { pathname });\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let { matches, route } = getShortCircuitMatches(routesToUse);\n\n // Cancel all pending deferred on 404s since we don't keep any routes\n cancelActiveDeferreds();\n\n return { notFoundMatches: matches, route, error };\n }\n\n function handleDiscoverRouteError(\n pathname: string,\n discoverResult: DiscoverRoutesErrorResult\n ) {\n return {\n boundaryId: findNearestBoundary(discoverResult.partialMatches).route.id,\n error: getInternalRouterError(400, {\n type: \"route-discovery\",\n pathname,\n message:\n discoverResult.error != null && \"message\" in discoverResult.error\n ? discoverResult.error\n : String(discoverResult.error),\n }),\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 checkFogOfWar(\n matches: AgnosticDataRouteMatch[] | null,\n routesToUse: AgnosticDataRouteObject[],\n pathname: string\n ): { active: boolean; matches: AgnosticDataRouteMatch[] | null } {\n if (patchRoutesOnNavigationImpl) {\n // Don't bother re-calling patchRouteOnMiss for a path we've already\n // processed. the last execution would have patched the route tree\n // accordingly so `matches` here are already accurate.\n if (discoveredRoutes.has(pathname)) {\n return { active: false, matches };\n }\n\n if (!matches) {\n let fogMatches = matchRoutesImpl(\n routesToUse,\n pathname,\n basename,\n true\n );\n\n return { active: true, matches: fogMatches || [] };\n } else {\n if (Object.keys(matches[0].params).length > 0) {\n // If we matched a dynamic param or a splat, it might only be because\n // we haven't yet discovered other routes that would match with a\n // higher score. Call patchRoutesOnNavigation just to be sure\n let partialMatches = matchRoutesImpl(\n routesToUse,\n pathname,\n basename,\n true\n );\n return { active: true, matches: partialMatches };\n }\n }\n }\n\n return { active: false, matches: null };\n }\n\n type DiscoverRoutesSuccessResult = {\n type: \"success\";\n matches: AgnosticDataRouteMatch[] | null;\n };\n type DiscoverRoutesErrorResult = {\n type: \"error\";\n error: any;\n partialMatches: AgnosticDataRouteMatch[];\n };\n type DiscoverRoutesAbortedResult = { type: \"aborted\" };\n type DiscoverRoutesResult =\n | DiscoverRoutesSuccessResult\n | DiscoverRoutesErrorResult\n | DiscoverRoutesAbortedResult;\n\n async function discoverRoutes(\n matches: AgnosticDataRouteMatch[],\n pathname: string,\n signal: AbortSignal\n ): Promise {\n let partialMatches: AgnosticDataRouteMatch[] | null = matches;\n while (true) {\n let isNonHMR = inFlightDataRoutes == null;\n let routesToUse = inFlightDataRoutes || dataRoutes;\n try {\n await loadLazyRouteChildren(\n patchRoutesOnNavigationImpl!,\n pathname,\n partialMatches,\n routesToUse,\n manifest,\n mapRouteProperties,\n pendingPatchRoutes,\n signal\n );\n } catch (e) {\n return { type: \"error\", error: e, partialMatches };\n } finally {\n // If we are not in the middle of an HMR revalidation and we changed the\n // routes, provide a new identity so when we `updateState` at the end of\n // this navigation/fetch `router.routes` will be a new identity and\n // trigger a re-run of memoized `router.routes` dependencies.\n // HMR will already update the identity and reflow when it lands\n // `inFlightDataRoutes` in `completeNavigation`\n if (isNonHMR) {\n dataRoutes = [...dataRoutes];\n }\n }\n\n if (signal.aborted) {\n return { type: \"aborted\" };\n }\n\n let newMatches = matchRoutes(routesToUse, pathname, basename);\n if (newMatches) {\n addToFifoQueue(pathname, discoveredRoutes);\n return { type: \"success\", matches: newMatches };\n }\n\n let newPartialMatches = matchRoutesImpl(\n routesToUse,\n pathname,\n basename,\n true\n );\n\n // Avoid loops if the second pass results in the same partial matches\n if (\n !newPartialMatches ||\n (partialMatches.length === newPartialMatches.length &&\n partialMatches.every(\n (m, i) => m.route.id === newPartialMatches![i].route.id\n ))\n ) {\n addToFifoQueue(pathname, discoveredRoutes);\n return { type: \"success\", matches: null };\n }\n\n partialMatches = newPartialMatches;\n }\n }\n\n function addToFifoQueue(path: string, queue: Set) {\n if (queue.size >= discoveredRoutesMaxSize) {\n let first = queue.values().next().value;\n queue.delete(first);\n }\n queue.add(path);\n }\n\n function _internalSetRoutes(newRoutes: AgnosticDataRouteObject[]) {\n manifest = {};\n inFlightDataRoutes = convertRoutesToDataRoutes(\n newRoutes,\n mapRouteProperties,\n undefined,\n manifest\n );\n }\n\n function patchRoutes(\n routeId: string | null,\n children: AgnosticRouteObject[]\n ): void {\n let isNonHMR = inFlightDataRoutes == null;\n let routesToUse = inFlightDataRoutes || dataRoutes;\n patchRoutesImpl(\n routeId,\n children,\n routesToUse,\n manifest,\n mapRouteProperties\n );\n\n // If we are not in the middle of an HMR revalidation and we changed the\n // routes, provide a new identity and trigger a reflow via `updateState`\n // to re-run memoized `router.routes` dependencies.\n // HMR will already update the identity and reflow when it lands\n // `inFlightDataRoutes` in `completeNavigation`\n if (isNonHMR) {\n dataRoutes = [...dataRoutes];\n updateState({});\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 patchRoutes,\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 * - `opts.requestContext` is an optional server context that will be passed\n * to actions/loaders in the `context` parameter\n * - `opts.skipLoaderErrorBubbling` is an optional parameter that will prevent\n * the bubbling of errors which allows single-fetch-type implementations\n * where the client will handle the bubbling and we may need to return data\n * for the handling route\n */\n async function query(\n request: Request,\n {\n requestContext,\n skipLoaderErrorBubbling,\n unstable_dataStrategy,\n }: {\n requestContext?: unknown;\n skipLoaderErrorBubbling?: boolean;\n unstable_dataStrategy?: DataStrategyFunction;\n } = {}\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(\n request,\n location,\n matches,\n requestContext,\n unstable_dataStrategy || null,\n skipLoaderErrorBubbling === true,\n null\n );\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 * - `opts.routeId` allows you to specify the specific route handler to call.\n * If not provided the handler will determine the proper route by matching\n * against `request.url`\n * - `opts.requestContext` is an optional server context that will be passed\n * to actions/loaders in the `context` parameter\n */\n async function queryRoute(\n request: Request,\n {\n routeId,\n requestContext,\n unstable_dataStrategy,\n }: {\n requestContext?: unknown;\n routeId?: string;\n unstable_dataStrategy?: DataStrategyFunction;\n } = {}\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 unstable_dataStrategy || null,\n false,\n match\n );\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 unstable_dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\n routeMatch: AgnosticDataRouteMatch | null\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 unstable_dataStrategy,\n skipLoaderErrorBubbling,\n routeMatch != null\n );\n return result;\n }\n\n let result = await loadRouteData(\n request,\n matches,\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\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 for a\n // `queryRoute` call, we throw the `HandlerResult` to bail out early\n // and then return or throw the raw Response here accordingly\n if (isHandlerResult(e) && isResponse(e.result)) {\n if (e.type === ResultType.error) {\n throw e.result;\n }\n return e.result;\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 unstable_dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\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 let results = await callDataStrategy(\n \"action\",\n request,\n [actionMatch],\n matches,\n isRouteRequest,\n requestContext,\n unstable_dataStrategy\n );\n result = results[0];\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.response.status,\n headers: {\n Location: result.response.headers.get(\"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 // 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\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 = skipLoaderErrorBubbling\n ? actionMatch\n : findNearestBoundary(matches, actionMatch.route.id);\n\n let context = await loadRouteData(\n loaderRequest,\n matches,\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n null,\n [boundaryMatch.route.id, result]\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 : result.statusCode != null\n ? result.statusCode\n : 500,\n actionData: null,\n actionHeaders: {\n ...(result.headers ? { [actionMatch.route.id]: result.headers } : {}),\n },\n };\n }\n\n let context = await loadRouteData(\n loaderRequest,\n matches,\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n null\n );\n\n return {\n ...context,\n actionData: {\n [actionMatch.route.id]: result.data,\n },\n // action status codes take precedence over loader status codes\n ...(result.statusCode ? { statusCode: result.statusCode } : {}),\n actionHeaders: result.headers\n ? { [actionMatch.route.id]: result.headers }\n : {},\n };\n }\n\n async function loadRouteData(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\n routeMatch: AgnosticDataRouteMatch | null,\n pendingActionResult?: PendingActionResult\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 : pendingActionResult && isErrorResult(pendingActionResult[1])\n ? getLoaderMatchesUntilBoundary(matches, pendingActionResult[0])\n : matches;\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:\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? {\n [pendingActionResult[0]]: pendingActionResult[1].error,\n }\n : null,\n statusCode: 200,\n loaderHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let results = await callDataStrategy(\n \"loader\",\n request,\n matchesToLoad,\n matches,\n isRouteRequest,\n requestContext,\n unstable_dataStrategy\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 pendingActionResult,\n activeDeferreds,\n skipLoaderErrorBubbling\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 // Utility wrapper for calling dataStrategy server-side without having to\n // pass around the manifest, mapRouteProperties, etc.\n async function callDataStrategy(\n type: \"loader\" | \"action\",\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n isRouteRequest: boolean,\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null\n ): Promise {\n let results = await callDataStrategyImpl(\n unstable_dataStrategy || defaultDataStrategy,\n type,\n request,\n matchesToLoad,\n matches,\n manifest,\n mapRouteProperties,\n requestContext\n );\n\n return await Promise.all(\n results.map((result, i) => {\n if (isRedirectHandlerResult(result)) {\n let response = result.result as Response;\n // Throw redirects and let the server handle them with an HTTP redirect\n throw normalizeRelativeRoutingRedirectResponse(\n response,\n request,\n matchesToLoad[i].route.id,\n matches,\n basename,\n future.v7_relativeSplatPath\n );\n }\n if (isResponse(result.result) && isRouteRequest) {\n // For SSR single-route requests, we want to hand Responses back\n // directly without unwrapping\n throw result;\n }\n\n return convertHandlerResultToDataResult(result);\n })\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 skipActionErrorRevalidation: boolean,\n isRevalidationRequired: boolean,\n cancelledDeferredRoutes: string[],\n cancelledFetcherLoads: Set,\n deletedFetchers: Set,\n fetchLoadMatches: Map,\n fetchRedirectIds: Set,\n routesToUse: AgnosticDataRouteObject[],\n basename: string | undefined,\n pendingActionResult?: PendingActionResult\n): [AgnosticDataRouteMatch[], RevalidatingFetcher[]] {\n let actionResult = pendingActionResult\n ? isErrorResult(pendingActionResult[1])\n ? pendingActionResult[1].error\n : pendingActionResult[1].data\n : undefined;\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 =\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? pendingActionResult[0]\n : undefined;\n let boundaryMatches = boundaryId\n ? getLoaderMatchesUntilBoundary(matches, boundaryId)\n : matches;\n\n // Don't revalidate loaders by default after action 4xx/5xx responses\n // when the flag is enabled. They can still opt-into revalidation via\n // `shouldRevalidate` via `actionResult`\n let actionStatus = pendingActionResult\n ? pendingActionResult[1].statusCode\n : undefined;\n let shouldSkipRevalidation =\n skipActionErrorRevalidation && actionStatus && actionStatus >= 400;\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 (typeof route.loader !== \"function\" || 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 actionStatus,\n defaultShouldRevalidate: shouldSkipRevalidation\n ? false\n : // Forced revalidation due to submission, useRevalidator, or X-Remix-Revalidate\n isRevalidationRequired ||\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.has(key)) {\n // Always mark for revalidation if the fetcher was cancelled\n cancelledFetcherLoads.delete(key);\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 actionStatus,\n defaultShouldRevalidate: shouldSkipRevalidation\n ? false\n : 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 * Idempotent utility to execute patchRoutesOnNavigation() to lazily load route\n * definitions and update the routes/routeManifest\n */\nasync function loadLazyRouteChildren(\n patchRoutesOnNavigationImpl: AgnosticPatchRoutesOnNavigationFunction,\n path: string,\n matches: AgnosticDataRouteMatch[],\n routes: AgnosticDataRouteObject[],\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction,\n pendingRouteChildren: Map<\n string,\n ReturnType\n >,\n signal: AbortSignal\n) {\n let key = [path, ...matches.map((m) => m.route.id)].join(\"-\");\n try {\n let pending = pendingRouteChildren.get(key);\n if (!pending) {\n pending = patchRoutesOnNavigationImpl({\n path,\n matches,\n patch: (routeId, children) => {\n if (!signal.aborted) {\n patchRoutesImpl(\n routeId,\n children,\n routes,\n manifest,\n mapRouteProperties\n );\n }\n },\n });\n pendingRouteChildren.set(key, pending);\n }\n\n if (pending && isPromise(pending)) {\n await pending;\n }\n } finally {\n pendingRouteChildren.delete(key);\n }\n}\n\nfunction patchRoutesImpl(\n routeId: string | null,\n children: AgnosticRouteObject[],\n routesToUse: AgnosticDataRouteObject[],\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction\n) {\n if (routeId) {\n let route = manifest[routeId];\n invariant(\n route,\n `No route found to patch children into: routeId = ${routeId}`\n );\n let dataChildren = convertRoutesToDataRoutes(\n children,\n mapRouteProperties,\n [routeId, \"patch\", String(route.children?.length || \"0\")],\n manifest\n );\n if (route.children) {\n route.children.push(...dataChildren);\n } else {\n route.children = dataChildren;\n }\n } else {\n let dataChildren = convertRoutesToDataRoutes(\n children,\n mapRouteProperties,\n [\"patch\", String(routesToUse.length || \"0\")],\n manifest\n );\n routesToUse.push(...dataChildren);\n }\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\n// Default implementation of `dataStrategy` which fetches all loaders in parallel\nfunction defaultDataStrategy(\n opts: DataStrategyFunctionArgs\n): ReturnType {\n return Promise.all(opts.matches.map((m) => m.resolve()));\n}\n\nasync function callDataStrategyImpl(\n dataStrategyImpl: DataStrategyFunction,\n type: \"loader\" | \"action\",\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction,\n requestContext?: unknown\n): Promise {\n let routeIdsToLoad = matchesToLoad.reduce(\n (acc, m) => acc.add(m.route.id),\n new Set()\n );\n let loadedMatches = new Set();\n\n // Send all matches here to allow for a middleware-type implementation.\n // handler will be a no-op for unneeded routes and we filter those results\n // back out below.\n let results = await dataStrategyImpl({\n matches: matches.map((match) => {\n let shouldLoad = routeIdsToLoad.has(match.route.id);\n // `resolve` encapsulates the route.lazy, executing the\n // loader/action, and mapping return values/thrown errors to a\n // HandlerResult. Users can pass a callback to take fine-grained control\n // over the execution of the loader/action\n let resolve: DataStrategyMatch[\"resolve\"] = (handlerOverride) => {\n loadedMatches.add(match.route.id);\n return shouldLoad\n ? callLoaderOrAction(\n type,\n request,\n match,\n manifest,\n mapRouteProperties,\n handlerOverride,\n requestContext\n )\n : Promise.resolve({ type: ResultType.data, result: undefined });\n };\n\n return {\n ...match,\n shouldLoad,\n resolve,\n };\n }),\n request,\n params: matches[0].params,\n context: requestContext,\n });\n\n // Throw if any loadRoute implementations not called since they are what\n // ensures a route is fully loaded\n matches.forEach((m) =>\n invariant(\n loadedMatches.has(m.route.id),\n `\\`match.resolve()\\` was not called for route id \"${m.route.id}\". ` +\n \"You must call `match.resolve()` on every match passed to \" +\n \"`dataStrategy` to ensure all routes are properly loaded.\"\n )\n );\n\n // Filter out any middleware-only matches for which we didn't need to run handlers\n return results.filter((_, i) => routeIdsToLoad.has(matches[i].route.id));\n}\n\n// Default logic for calling a loader/action is the user has no specified a dataStrategy\nasync function callLoaderOrAction(\n type: \"loader\" | \"action\",\n request: Request,\n match: AgnosticDataRouteMatch,\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction,\n handlerOverride: Parameters[0],\n staticContext?: unknown\n): Promise {\n let result: HandlerResult;\n let onReject: (() => void) | undefined;\n\n let runHandler = (\n handler: AgnosticRouteObject[\"loader\"] | AgnosticRouteObject[\"action\"]\n ): Promise => {\n // Setup a promise we can race against so that abort signals short circuit\n let reject: () => void;\n // This will never resolve so safe to type it as Promise to\n // satisfy the function return value\n let abortPromise = new Promise((_, r) => (reject = r));\n onReject = () => reject();\n request.signal.addEventListener(\"abort\", onReject);\n\n let actualHandler = (ctx?: unknown) => {\n if (typeof handler !== \"function\") {\n return Promise.reject(\n new Error(\n `You cannot call the handler for a route which defines a boolean ` +\n `\"${type}\" [routeId: ${match.route.id}]`\n )\n );\n }\n return handler(\n {\n request,\n params: match.params,\n context: staticContext,\n },\n ...(ctx !== undefined ? [ctx] : [])\n );\n };\n\n let handlerPromise: Promise