{"version":3,"file":"static/js/main.a2eafec9.js","mappings":"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","sources":["../node_modules/deepmerge/dist/cjs.js","../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/json2mq/index.js","../node_modules/load-script/index.js","../node_modules/lodash.debounce/index.js","../node_modules/memoize-one/dist/memoize-one.esm.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.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-player/lib/Player.js","../node_modules/react-player/lib/ReactPlayer.js","../node_modules/react-player/lib/index.js","../node_modules/react-player/lib/patterns.js","../node_modules/react-player/lib/players/index.js","../node_modules/react-player/lib/props.js","../node_modules/react-player/lib/utils.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/string-convert/camel2hyphen.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/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/get mini-css chunk filename","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/load script","../webpack/runtime/make namespace object","../webpack/runtime/publicPath","../webpack/runtime/jsonp chunk loading","../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-router-dom/dom.ts","../node_modules/react-router-dom/index.tsx","../node_modules/@fortawesome/fontawesome-svg-core/index.mjs","../node_modules/@fortawesome/react-fontawesome/index.es.js","../node_modules/@fortawesome/free-brands-svg-icons/index.mjs","section/navbar/navbar.jsx","section/header/bannercarousel.js","section/header/header.jsx","section/about/about.jsx","../node_modules/@fortawesome/free-solid-svg-icons/index.mjs","section/promo/promo.jsx","section/fasilitas/fasilitas.js","section/fasilitas/fasilitas.jsx","media/produk/home/home.js","media/produk/tipe5/hampton.js","media/produk/tipe6.js","media/produk/tipe7.js","media/produk/tipe8.js","media/produk/tipe9.js","section/rumah/rumah.jsx","section/lokasi/lokasi.jsx","section/footer/footer.jsx","pages/ScrollToHashElement.js","media/produk/ruko/usp/usp.js","media/produk/ruko/rukoavenue.js","media/produk/ruko/rukoboulevard.js","media/logo/tenant/tenant1.js","media/logo/tenant/tenant2.js","section/ruko/gallerylogo/gallerylogo.jsx","section/ruko/ruko.jsx","section/video/video.jsx","section/newlaunch/newlaunch.jsx","pages/home.jsx","App.js","index.js"],"sourcesContent":["'use strict';\n\nvar isMergeableObject = function isMergeableObject(value) {\n\treturn isNonNullObject(value)\n\t\t&& !isSpecial(value)\n};\n\nfunction isNonNullObject(value) {\n\treturn !!value && typeof value === 'object'\n}\n\nfunction isSpecial(value) {\n\tvar stringValue = Object.prototype.toString.call(value);\n\n\treturn stringValue === '[object RegExp]'\n\t\t|| stringValue === '[object Date]'\n\t\t|| isReactElement(value)\n}\n\n// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value) {\n\treturn value.$$typeof === REACT_ELEMENT_TYPE\n}\n\nfunction emptyTarget(val) {\n\treturn Array.isArray(val) ? [] : {}\n}\n\nfunction cloneUnlessOtherwiseSpecified(value, options) {\n\treturn (options.clone !== false && options.isMergeableObject(value))\n\t\t? deepmerge(emptyTarget(value), value, options)\n\t\t: value\n}\n\nfunction defaultArrayMerge(target, source, options) {\n\treturn target.concat(source).map(function(element) {\n\t\treturn cloneUnlessOtherwiseSpecified(element, options)\n\t})\n}\n\nfunction getMergeFunction(key, options) {\n\tif (!options.customMerge) {\n\t\treturn deepmerge\n\t}\n\tvar customMerge = options.customMerge(key);\n\treturn typeof customMerge === 'function' ? customMerge : deepmerge\n}\n\nfunction getEnumerableOwnPropertySymbols(target) {\n\treturn Object.getOwnPropertySymbols\n\t\t? Object.getOwnPropertySymbols(target).filter(function(symbol) {\n\t\t\treturn Object.propertyIsEnumerable.call(target, symbol)\n\t\t})\n\t\t: []\n}\n\nfunction getKeys(target) {\n\treturn Object.keys(target).concat(getEnumerableOwnPropertySymbols(target))\n}\n\nfunction propertyIsOnObject(object, property) {\n\ttry {\n\t\treturn property in object\n\t} catch(_) {\n\t\treturn false\n\t}\n}\n\n// Protects from prototype poisoning and unexpected merging up the prototype chain.\nfunction propertyIsUnsafe(target, key) {\n\treturn propertyIsOnObject(target, key) // Properties are safe to merge if they don't exist in the target yet,\n\t\t&& !(Object.hasOwnProperty.call(target, key) // unsafe if they exist up the prototype chain,\n\t\t\t&& Object.propertyIsEnumerable.call(target, key)) // and also unsafe if they're nonenumerable.\n}\n\nfunction mergeObject(target, source, options) {\n\tvar destination = {};\n\tif (options.isMergeableObject(target)) {\n\t\tgetKeys(target).forEach(function(key) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n\t\t});\n\t}\n\tgetKeys(source).forEach(function(key) {\n\t\tif (propertyIsUnsafe(target, key)) {\n\t\t\treturn\n\t\t}\n\n\t\tif (propertyIsOnObject(target, key) && options.isMergeableObject(source[key])) {\n\t\t\tdestination[key] = getMergeFunction(key, options)(target[key], source[key], options);\n\t\t} else {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n\t\t}\n\t});\n\treturn destination\n}\n\nfunction deepmerge(target, source, options) {\n\toptions = options || {};\n\toptions.arrayMerge = options.arrayMerge || defaultArrayMerge;\n\toptions.isMergeableObject = options.isMergeableObject || isMergeableObject;\n\t// cloneUnlessOtherwiseSpecified is added to `options` so that custom arrayMerge()\n\t// implementations can use it. The caller may not replace it.\n\toptions.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified;\n\n\tvar sourceIsArray = Array.isArray(source);\n\tvar targetIsArray = Array.isArray(target);\n\tvar sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n\tif (!sourceAndTargetTypesMatch) {\n\t\treturn cloneUnlessOtherwiseSpecified(source, options)\n\t} else if (sourceIsArray) {\n\t\treturn options.arrayMerge(target, source, options)\n\t} else {\n\t\treturn mergeObject(target, source, options)\n\t}\n}\n\ndeepmerge.all = function deepmergeAll(array, options) {\n\tif (!Array.isArray(array)) {\n\t\tthrow new Error('first argument should be an array')\n\t}\n\n\treturn array.reduce(function(prev, next) {\n\t\treturn deepmerge(prev, next, options)\n\t}, {})\n};\n\nvar deepmerge_1 = deepmerge;\n\nmodule.exports = deepmerge_1;\n","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","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;","\nmodule.exports = function load (src, opts, cb) {\n var head = document.head || document.getElementsByTagName('head')[0]\n var script = document.createElement('script')\n\n if (typeof opts === 'function') {\n cb = opts\n opts = {}\n }\n\n opts = opts || {}\n cb = cb || function() {}\n\n script.type = opts.type || 'text/javascript'\n script.charset = opts.charset || 'utf8';\n script.async = 'async' in opts ? !!opts.async : true\n script.src = src\n\n if (opts.attrs) {\n setAttributes(script, opts.attrs)\n }\n\n if (opts.text) {\n script.text = '' + opts.text\n }\n\n var onend = 'onload' in script ? stdOnEnd : ieOnEnd\n onend(script, cb)\n\n // some good legacy browsers (firefox) fail the 'in' detection above\n // so as a fallback we always set onload\n // old IE will ignore this and new IE will set onload\n if (!script.onload) {\n stdOnEnd(script, cb);\n }\n\n head.appendChild(script)\n}\n\nfunction setAttributes(script, attrs) {\n for (var attr in attrs) {\n script.setAttribute(attr, attrs[attr]);\n }\n}\n\nfunction stdOnEnd (script, cb) {\n script.onload = function () {\n this.onerror = this.onload = null\n cb(null, script)\n }\n script.onerror = function () {\n // this.onload = null here is necessary\n // because even IE9 works not like others\n this.onerror = this.onload = null\n cb(new Error('Failed to load ' + this.src), script)\n }\n}\n\nfunction ieOnEnd (script, cb) {\n script.onreadystatechange = function () {\n if (this.readyState != 'complete' && this.readyState != 'loaded') return\n this.onreadystatechange = null\n cb(null, script) // there is no way to catch loading errors in IE8\n }\n}\n","/**\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","var safeIsNaN = Number.isNaN ||\n function ponyfill(value) {\n return typeof value === 'number' && value !== value;\n };\nfunction isEqual(first, second) {\n if (first === second) {\n return true;\n }\n if (safeIsNaN(first) && safeIsNaN(second)) {\n return true;\n }\n return false;\n}\nfunction areInputsEqual(newInputs, lastInputs) {\n if (newInputs.length !== lastInputs.length) {\n return false;\n }\n for (var i = 0; i < newInputs.length; i++) {\n if (!isEqual(newInputs[i], lastInputs[i])) {\n return false;\n }\n }\n return true;\n}\n\nfunction memoizeOne(resultFn, isEqual) {\n if (isEqual === void 0) { isEqual = areInputsEqual; }\n var lastThis;\n var lastArgs = [];\n var lastResult;\n var calledOnce = false;\n function memoized() {\n var newArgs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n newArgs[_i] = arguments[_i];\n }\n if (calledOnce && lastThis === this && isEqual(newArgs, lastArgs)) {\n return lastResult;\n }\n lastResult = resultFn.apply(this, newArgs);\n calledOnce = true;\n lastThis = this;\n lastArgs = newArgs;\n return lastResult;\n }\n return memoized;\n}\n\nexport default memoizeOne;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * @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","var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar __publicField = (obj, key, value) => {\n __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\n return value;\n};\nvar Player_exports = {};\n__export(Player_exports, {\n default: () => Player\n});\nmodule.exports = __toCommonJS(Player_exports);\nvar import_react = __toESM(require(\"react\"));\nvar import_react_fast_compare = __toESM(require(\"react-fast-compare\"));\nvar import_props = require(\"./props\");\nvar import_utils = require(\"./utils\");\nconst SEEK_ON_PLAY_EXPIRY = 5e3;\nclass Player extends import_react.Component {\n constructor() {\n super(...arguments);\n __publicField(this, \"mounted\", false);\n __publicField(this, \"isReady\", false);\n __publicField(this, \"isPlaying\", false);\n // Track playing state internally to prevent bugs\n __publicField(this, \"isLoading\", true);\n // Use isLoading to prevent onPause when switching URL\n __publicField(this, \"loadOnReady\", null);\n __publicField(this, \"startOnPlay\", true);\n __publicField(this, \"seekOnPlay\", null);\n __publicField(this, \"onDurationCalled\", false);\n __publicField(this, \"handlePlayerMount\", (player) => {\n if (this.player) {\n this.progress();\n return;\n }\n this.player = player;\n this.player.load(this.props.url);\n this.progress();\n });\n __publicField(this, \"getInternalPlayer\", (key) => {\n if (!this.player)\n return null;\n return this.player[key];\n });\n __publicField(this, \"progress\", () => {\n if (this.props.url && this.player && this.isReady) {\n const playedSeconds = this.getCurrentTime() || 0;\n const loadedSeconds = this.getSecondsLoaded();\n const duration = this.getDuration();\n if (duration) {\n const progress = {\n playedSeconds,\n played: playedSeconds / duration\n };\n if (loadedSeconds !== null) {\n progress.loadedSeconds = loadedSeconds;\n progress.loaded = loadedSeconds / duration;\n }\n if (progress.playedSeconds !== this.prevPlayed || progress.loadedSeconds !== this.prevLoaded) {\n this.props.onProgress(progress);\n }\n this.prevPlayed = progress.playedSeconds;\n this.prevLoaded = progress.loadedSeconds;\n }\n }\n this.progressTimeout = setTimeout(this.progress, this.props.progressFrequency || this.props.progressInterval);\n });\n __publicField(this, \"handleReady\", () => {\n if (!this.mounted)\n return;\n this.isReady = true;\n this.isLoading = false;\n const { onReady, playing, volume, muted } = this.props;\n onReady();\n if (!muted && volume !== null) {\n this.player.setVolume(volume);\n }\n if (this.loadOnReady) {\n this.player.load(this.loadOnReady, true);\n this.loadOnReady = null;\n } else if (playing) {\n this.player.play();\n }\n this.handleDurationCheck();\n });\n __publicField(this, \"handlePlay\", () => {\n this.isPlaying = true;\n this.isLoading = false;\n const { onStart, onPlay, playbackRate } = this.props;\n if (this.startOnPlay) {\n if (this.player.setPlaybackRate && playbackRate !== 1) {\n this.player.setPlaybackRate(playbackRate);\n }\n onStart();\n this.startOnPlay = false;\n }\n onPlay();\n if (this.seekOnPlay) {\n this.seekTo(this.seekOnPlay);\n this.seekOnPlay = null;\n }\n this.handleDurationCheck();\n });\n __publicField(this, \"handlePause\", (e) => {\n this.isPlaying = false;\n if (!this.isLoading) {\n this.props.onPause(e);\n }\n });\n __publicField(this, \"handleEnded\", () => {\n const { activePlayer, loop, onEnded } = this.props;\n if (activePlayer.loopOnEnded && loop) {\n this.seekTo(0);\n }\n if (!loop) {\n this.isPlaying = false;\n onEnded();\n }\n });\n __publicField(this, \"handleError\", (...args) => {\n this.isLoading = false;\n this.props.onError(...args);\n });\n __publicField(this, \"handleDurationCheck\", () => {\n clearTimeout(this.durationCheckTimeout);\n const duration = this.getDuration();\n if (duration) {\n if (!this.onDurationCalled) {\n this.props.onDuration(duration);\n this.onDurationCalled = true;\n }\n } else {\n this.durationCheckTimeout = setTimeout(this.handleDurationCheck, 100);\n }\n });\n __publicField(this, \"handleLoaded\", () => {\n this.isLoading = false;\n });\n }\n componentDidMount() {\n this.mounted = true;\n }\n componentWillUnmount() {\n clearTimeout(this.progressTimeout);\n clearTimeout(this.durationCheckTimeout);\n if (this.isReady && this.props.stopOnUnmount) {\n this.player.stop();\n if (this.player.disablePIP) {\n this.player.disablePIP();\n }\n }\n this.mounted = false;\n }\n componentDidUpdate(prevProps) {\n if (!this.player) {\n return;\n }\n const { url, playing, volume, muted, playbackRate, pip, loop, activePlayer, disableDeferredLoading } = this.props;\n if (!(0, import_react_fast_compare.default)(prevProps.url, url)) {\n if (this.isLoading && !activePlayer.forceLoad && !disableDeferredLoading && !(0, import_utils.isMediaStream)(url)) {\n console.warn(`ReactPlayer: the attempt to load ${url} is being deferred until the player has loaded`);\n this.loadOnReady = url;\n return;\n }\n this.isLoading = true;\n this.startOnPlay = true;\n this.onDurationCalled = false;\n this.player.load(url, this.isReady);\n }\n if (!prevProps.playing && playing && !this.isPlaying) {\n this.player.play();\n }\n if (prevProps.playing && !playing && this.isPlaying) {\n this.player.pause();\n }\n if (!prevProps.pip && pip && this.player.enablePIP) {\n this.player.enablePIP();\n }\n if (prevProps.pip && !pip && this.player.disablePIP) {\n this.player.disablePIP();\n }\n if (prevProps.volume !== volume && volume !== null) {\n this.player.setVolume(volume);\n }\n if (prevProps.muted !== muted) {\n if (muted) {\n this.player.mute();\n } else {\n this.player.unmute();\n if (volume !== null) {\n setTimeout(() => this.player.setVolume(volume));\n }\n }\n }\n if (prevProps.playbackRate !== playbackRate && this.player.setPlaybackRate) {\n this.player.setPlaybackRate(playbackRate);\n }\n if (prevProps.loop !== loop && this.player.setLoop) {\n this.player.setLoop(loop);\n }\n }\n getDuration() {\n if (!this.isReady)\n return null;\n return this.player.getDuration();\n }\n getCurrentTime() {\n if (!this.isReady)\n return null;\n return this.player.getCurrentTime();\n }\n getSecondsLoaded() {\n if (!this.isReady)\n return null;\n return this.player.getSecondsLoaded();\n }\n seekTo(amount, type, keepPlaying) {\n if (!this.isReady) {\n if (amount !== 0) {\n this.seekOnPlay = amount;\n setTimeout(() => {\n this.seekOnPlay = null;\n }, SEEK_ON_PLAY_EXPIRY);\n }\n return;\n }\n const isFraction = !type ? amount > 0 && amount < 1 : type === \"fraction\";\n if (isFraction) {\n const duration = this.player.getDuration();\n if (!duration) {\n console.warn(\"ReactPlayer: could not seek using fraction \\u2013\\xA0duration not yet available\");\n return;\n }\n this.player.seekTo(duration * amount, keepPlaying);\n return;\n }\n this.player.seekTo(amount, keepPlaying);\n }\n render() {\n const Player2 = this.props.activePlayer;\n if (!Player2) {\n return null;\n }\n return /* @__PURE__ */ import_react.default.createElement(\n Player2,\n {\n ...this.props,\n onMount: this.handlePlayerMount,\n onReady: this.handleReady,\n onPlay: this.handlePlay,\n onPause: this.handlePause,\n onEnded: this.handleEnded,\n onLoaded: this.handleLoaded,\n onError: this.handleError\n }\n );\n }\n}\n__publicField(Player, \"displayName\", \"Player\");\n__publicField(Player, \"propTypes\", import_props.propTypes);\n__publicField(Player, \"defaultProps\", import_props.defaultProps);\n","var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar __publicField = (obj, key, value) => {\n __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\n return value;\n};\nvar ReactPlayer_exports = {};\n__export(ReactPlayer_exports, {\n createReactPlayer: () => createReactPlayer\n});\nmodule.exports = __toCommonJS(ReactPlayer_exports);\nvar import_react = __toESM(require(\"react\"));\nvar import_deepmerge = __toESM(require(\"deepmerge\"));\nvar import_memoize_one = __toESM(require(\"memoize-one\"));\nvar import_react_fast_compare = __toESM(require(\"react-fast-compare\"));\nvar import_props = require(\"./props\");\nvar import_utils = require(\"./utils\");\nvar import_Player = __toESM(require(\"./Player\"));\nconst Preview = (0, import_utils.lazy)(() => import(\n /* webpackChunkName: 'reactPlayerPreview' */\n \"./Preview\"\n));\nconst IS_BROWSER = typeof window !== \"undefined\" && window.document && typeof document !== \"undefined\";\nconst IS_GLOBAL = typeof global !== \"undefined\" && global.window && global.window.document;\nconst SUPPORTED_PROPS = Object.keys(import_props.propTypes);\nconst UniversalSuspense = IS_BROWSER || IS_GLOBAL ? import_react.Suspense : () => null;\nconst customPlayers = [];\nconst createReactPlayer = (players, fallback) => {\n var _a;\n return _a = class extends import_react.Component {\n constructor() {\n super(...arguments);\n __publicField(this, \"state\", {\n showPreview: !!this.props.light\n });\n // Use references, as refs is used by React\n __publicField(this, \"references\", {\n wrapper: (wrapper) => {\n this.wrapper = wrapper;\n },\n player: (player) => {\n this.player = player;\n }\n });\n __publicField(this, \"handleClickPreview\", (e) => {\n this.setState({ showPreview: false });\n this.props.onClickPreview(e);\n });\n __publicField(this, \"showPreview\", () => {\n this.setState({ showPreview: true });\n });\n __publicField(this, \"getDuration\", () => {\n if (!this.player)\n return null;\n return this.player.getDuration();\n });\n __publicField(this, \"getCurrentTime\", () => {\n if (!this.player)\n return null;\n return this.player.getCurrentTime();\n });\n __publicField(this, \"getSecondsLoaded\", () => {\n if (!this.player)\n return null;\n return this.player.getSecondsLoaded();\n });\n __publicField(this, \"getInternalPlayer\", (key = \"player\") => {\n if (!this.player)\n return null;\n return this.player.getInternalPlayer(key);\n });\n __publicField(this, \"seekTo\", (fraction, type, keepPlaying) => {\n if (!this.player)\n return null;\n this.player.seekTo(fraction, type, keepPlaying);\n });\n __publicField(this, \"handleReady\", () => {\n this.props.onReady(this);\n });\n __publicField(this, \"getActivePlayer\", (0, import_memoize_one.default)((url) => {\n for (const player of [...customPlayers, ...players]) {\n if (player.canPlay(url)) {\n return player;\n }\n }\n if (fallback) {\n return fallback;\n }\n return null;\n }));\n __publicField(this, \"getConfig\", (0, import_memoize_one.default)((url, key) => {\n const { config } = this.props;\n return import_deepmerge.default.all([\n import_props.defaultProps.config,\n import_props.defaultProps.config[key] || {},\n config,\n config[key] || {}\n ]);\n }));\n __publicField(this, \"getAttributes\", (0, import_memoize_one.default)((url) => {\n return (0, import_utils.omit)(this.props, SUPPORTED_PROPS);\n }));\n __publicField(this, \"renderActivePlayer\", (url) => {\n if (!url)\n return null;\n const player = this.getActivePlayer(url);\n if (!player)\n return null;\n const config = this.getConfig(url, player.key);\n return /* @__PURE__ */ import_react.default.createElement(\n import_Player.default,\n {\n ...this.props,\n key: player.key,\n ref: this.references.player,\n config,\n activePlayer: player.lazyPlayer || player,\n onReady: this.handleReady\n }\n );\n });\n }\n shouldComponentUpdate(nextProps, nextState) {\n return !(0, import_react_fast_compare.default)(this.props, nextProps) || !(0, import_react_fast_compare.default)(this.state, nextState);\n }\n componentDidUpdate(prevProps) {\n const { light } = this.props;\n if (!prevProps.light && light) {\n this.setState({ showPreview: true });\n }\n if (prevProps.light && !light) {\n this.setState({ showPreview: false });\n }\n }\n renderPreview(url) {\n if (!url)\n return null;\n const { light, playIcon, previewTabIndex, oEmbedUrl, previewAriaLabel } = this.props;\n return /* @__PURE__ */ import_react.default.createElement(\n Preview,\n {\n url,\n light,\n playIcon,\n previewTabIndex,\n previewAriaLabel,\n oEmbedUrl,\n onClick: this.handleClickPreview\n }\n );\n }\n render() {\n const { url, style, width, height, fallback: fallback2, wrapper: Wrapper } = this.props;\n const { showPreview } = this.state;\n const attributes = this.getAttributes(url);\n const wrapperRef = typeof Wrapper === \"string\" ? this.references.wrapper : void 0;\n return /* @__PURE__ */ import_react.default.createElement(Wrapper, { ref: wrapperRef, style: { ...style, width, height }, ...attributes }, /* @__PURE__ */ import_react.default.createElement(UniversalSuspense, { fallback: fallback2 }, showPreview ? this.renderPreview(url) : this.renderActivePlayer(url)));\n }\n }, __publicField(_a, \"displayName\", \"ReactPlayer\"), __publicField(_a, \"propTypes\", import_props.propTypes), __publicField(_a, \"defaultProps\", import_props.defaultProps), __publicField(_a, \"addCustomPlayer\", (player) => {\n customPlayers.push(player);\n }), __publicField(_a, \"removeCustomPlayers\", () => {\n customPlayers.length = 0;\n }), __publicField(_a, \"canPlay\", (url) => {\n for (const Player2 of [...customPlayers, ...players]) {\n if (Player2.canPlay(url)) {\n return true;\n }\n }\n return false;\n }), __publicField(_a, \"canEnablePIP\", (url) => {\n for (const Player2 of [...customPlayers, ...players]) {\n if (Player2.canEnablePIP && Player2.canEnablePIP(url)) {\n return true;\n }\n }\n return false;\n }), _a;\n};\n","var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar src_exports = {};\n__export(src_exports, {\n default: () => src_default\n});\nmodule.exports = __toCommonJS(src_exports);\nvar import_players = __toESM(require(\"./players\"));\nvar import_ReactPlayer = require(\"./ReactPlayer\");\nconst fallback = import_players.default[import_players.default.length - 1];\nvar src_default = (0, import_ReactPlayer.createReactPlayer)(import_players.default, fallback);\n","var __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar patterns_exports = {};\n__export(patterns_exports, {\n AUDIO_EXTENSIONS: () => AUDIO_EXTENSIONS,\n DASH_EXTENSIONS: () => DASH_EXTENSIONS,\n FLV_EXTENSIONS: () => FLV_EXTENSIONS,\n HLS_EXTENSIONS: () => HLS_EXTENSIONS,\n MATCH_URL_DAILYMOTION: () => MATCH_URL_DAILYMOTION,\n MATCH_URL_FACEBOOK: () => MATCH_URL_FACEBOOK,\n MATCH_URL_FACEBOOK_WATCH: () => MATCH_URL_FACEBOOK_WATCH,\n MATCH_URL_KALTURA: () => MATCH_URL_KALTURA,\n MATCH_URL_MIXCLOUD: () => MATCH_URL_MIXCLOUD,\n MATCH_URL_MUX: () => MATCH_URL_MUX,\n MATCH_URL_SOUNDCLOUD: () => MATCH_URL_SOUNDCLOUD,\n MATCH_URL_STREAMABLE: () => MATCH_URL_STREAMABLE,\n MATCH_URL_TWITCH_CHANNEL: () => MATCH_URL_TWITCH_CHANNEL,\n MATCH_URL_TWITCH_VIDEO: () => MATCH_URL_TWITCH_VIDEO,\n MATCH_URL_VIDYARD: () => MATCH_URL_VIDYARD,\n MATCH_URL_VIMEO: () => MATCH_URL_VIMEO,\n MATCH_URL_WISTIA: () => MATCH_URL_WISTIA,\n MATCH_URL_YOUTUBE: () => MATCH_URL_YOUTUBE,\n VIDEO_EXTENSIONS: () => VIDEO_EXTENSIONS,\n canPlay: () => canPlay\n});\nmodule.exports = __toCommonJS(patterns_exports);\nvar import_utils = require(\"./utils\");\nconst MATCH_URL_YOUTUBE = /(?:youtu\\.be\\/|youtube(?:-nocookie|education)?\\.com\\/(?:embed\\/|v\\/|watch\\/|watch\\?v=|watch\\?.+&v=|shorts\\/|live\\/))((\\w|-){11})|youtube\\.com\\/playlist\\?list=|youtube\\.com\\/user\\//;\nconst MATCH_URL_SOUNDCLOUD = /(?:soundcloud\\.com|snd\\.sc)\\/[^.]+$/;\nconst MATCH_URL_VIMEO = /vimeo\\.com\\/(?!progressive_redirect).+/;\nconst MATCH_URL_MUX = /stream\\.mux\\.com\\/(?!\\w+\\.m3u8)(\\w+)/;\nconst MATCH_URL_FACEBOOK = /^https?:\\/\\/(www\\.)?facebook\\.com.*\\/(video(s)?|watch|story)(\\.php?|\\/).+$/;\nconst MATCH_URL_FACEBOOK_WATCH = /^https?:\\/\\/fb\\.watch\\/.+$/;\nconst MATCH_URL_STREAMABLE = /streamable\\.com\\/([a-z0-9]+)$/;\nconst MATCH_URL_WISTIA = /(?:wistia\\.(?:com|net)|wi\\.st)\\/(?:medias|embed)\\/(?:iframe\\/)?([^?]+)/;\nconst MATCH_URL_TWITCH_VIDEO = /(?:www\\.|go\\.)?twitch\\.tv\\/videos\\/(\\d+)($|\\?)/;\nconst MATCH_URL_TWITCH_CHANNEL = /(?:www\\.|go\\.)?twitch\\.tv\\/([a-zA-Z0-9_]+)($|\\?)/;\nconst MATCH_URL_DAILYMOTION = /^(?:(?:https?):)?(?:\\/\\/)?(?:www\\.)?(?:(?:dailymotion\\.com(?:\\/embed)?\\/video)|dai\\.ly)\\/([a-zA-Z0-9]+)(?:_[\\w_-]+)?(?:[\\w.#_-]+)?/;\nconst MATCH_URL_MIXCLOUD = /mixcloud\\.com\\/([^/]+\\/[^/]+)/;\nconst MATCH_URL_VIDYARD = /vidyard.com\\/(?:watch\\/)?([a-zA-Z0-9-_]+)/;\nconst MATCH_URL_KALTURA = /^https?:\\/\\/[a-zA-Z]+\\.kaltura.(com|org)\\/p\\/([0-9]+)\\/sp\\/([0-9]+)00\\/embedIframeJs\\/uiconf_id\\/([0-9]+)\\/partner_id\\/([0-9]+)(.*)entry_id.([a-zA-Z0-9-_].*)$/;\nconst AUDIO_EXTENSIONS = /\\.(m4a|m4b|mp4a|mpga|mp2|mp2a|mp3|m2a|m3a|wav|weba|aac|oga|spx)($|\\?)/i;\nconst VIDEO_EXTENSIONS = /\\.(mp4|og[gv]|webm|mov|m4v)(#t=[,\\d+]+)?($|\\?)/i;\nconst HLS_EXTENSIONS = /\\.(m3u8)($|\\?)/i;\nconst DASH_EXTENSIONS = /\\.(mpd)($|\\?)/i;\nconst FLV_EXTENSIONS = /\\.(flv)($|\\?)/i;\nconst canPlayFile = (url) => {\n if (url instanceof Array) {\n for (const item of url) {\n if (typeof item === \"string\" && canPlayFile(item)) {\n return true;\n }\n if (canPlayFile(item.src)) {\n return true;\n }\n }\n return false;\n }\n if ((0, import_utils.isMediaStream)(url) || (0, import_utils.isBlobUrl)(url)) {\n return true;\n }\n return AUDIO_EXTENSIONS.test(url) || VIDEO_EXTENSIONS.test(url) || HLS_EXTENSIONS.test(url) || DASH_EXTENSIONS.test(url) || FLV_EXTENSIONS.test(url);\n};\nconst canPlay = {\n youtube: (url) => {\n if (url instanceof Array) {\n return url.every((item) => MATCH_URL_YOUTUBE.test(item));\n }\n return MATCH_URL_YOUTUBE.test(url);\n },\n soundcloud: (url) => MATCH_URL_SOUNDCLOUD.test(url) && !AUDIO_EXTENSIONS.test(url),\n vimeo: (url) => MATCH_URL_VIMEO.test(url) && !VIDEO_EXTENSIONS.test(url) && !HLS_EXTENSIONS.test(url),\n mux: (url) => MATCH_URL_MUX.test(url),\n facebook: (url) => MATCH_URL_FACEBOOK.test(url) || MATCH_URL_FACEBOOK_WATCH.test(url),\n streamable: (url) => MATCH_URL_STREAMABLE.test(url),\n wistia: (url) => MATCH_URL_WISTIA.test(url),\n twitch: (url) => MATCH_URL_TWITCH_VIDEO.test(url) || MATCH_URL_TWITCH_CHANNEL.test(url),\n dailymotion: (url) => MATCH_URL_DAILYMOTION.test(url),\n mixcloud: (url) => MATCH_URL_MIXCLOUD.test(url),\n vidyard: (url) => MATCH_URL_VIDYARD.test(url),\n kaltura: (url) => MATCH_URL_KALTURA.test(url),\n file: canPlayFile\n};\n","var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar players_exports = {};\n__export(players_exports, {\n default: () => players_default\n});\nmodule.exports = __toCommonJS(players_exports);\nvar import_utils = require(\"../utils\");\nvar import_patterns = require(\"../patterns\");\nvar players_default = [\n {\n key: \"youtube\",\n name: \"YouTube\",\n canPlay: import_patterns.canPlay.youtube,\n lazyPlayer: (0, import_utils.lazy)(() => import(\n /* webpackChunkName: 'reactPlayerYouTube' */\n \"./YouTube\"\n ))\n },\n {\n key: \"soundcloud\",\n name: \"SoundCloud\",\n canPlay: import_patterns.canPlay.soundcloud,\n lazyPlayer: (0, import_utils.lazy)(() => import(\n /* webpackChunkName: 'reactPlayerSoundCloud' */\n \"./SoundCloud\"\n ))\n },\n {\n key: \"vimeo\",\n name: \"Vimeo\",\n canPlay: import_patterns.canPlay.vimeo,\n lazyPlayer: (0, import_utils.lazy)(() => import(\n /* webpackChunkName: 'reactPlayerVimeo' */\n \"./Vimeo\"\n ))\n },\n {\n key: \"mux\",\n name: \"Mux\",\n canPlay: import_patterns.canPlay.mux,\n lazyPlayer: (0, import_utils.lazy)(() => import(\n /* webpackChunkName: 'reactPlayerMux' */\n \"./Mux\"\n ))\n },\n {\n key: \"facebook\",\n name: \"Facebook\",\n canPlay: import_patterns.canPlay.facebook,\n lazyPlayer: (0, import_utils.lazy)(() => import(\n /* webpackChunkName: 'reactPlayerFacebook' */\n \"./Facebook\"\n ))\n },\n {\n key: \"streamable\",\n name: \"Streamable\",\n canPlay: import_patterns.canPlay.streamable,\n lazyPlayer: (0, import_utils.lazy)(() => import(\n /* webpackChunkName: 'reactPlayerStreamable' */\n \"./Streamable\"\n ))\n },\n {\n key: \"wistia\",\n name: \"Wistia\",\n canPlay: import_patterns.canPlay.wistia,\n lazyPlayer: (0, import_utils.lazy)(() => import(\n /* webpackChunkName: 'reactPlayerWistia' */\n \"./Wistia\"\n ))\n },\n {\n key: \"twitch\",\n name: \"Twitch\",\n canPlay: import_patterns.canPlay.twitch,\n lazyPlayer: (0, import_utils.lazy)(() => import(\n /* webpackChunkName: 'reactPlayerTwitch' */\n \"./Twitch\"\n ))\n },\n {\n key: \"dailymotion\",\n name: \"DailyMotion\",\n canPlay: import_patterns.canPlay.dailymotion,\n lazyPlayer: (0, import_utils.lazy)(() => import(\n /* webpackChunkName: 'reactPlayerDailyMotion' */\n \"./DailyMotion\"\n ))\n },\n {\n key: \"mixcloud\",\n name: \"Mixcloud\",\n canPlay: import_patterns.canPlay.mixcloud,\n lazyPlayer: (0, import_utils.lazy)(() => import(\n /* webpackChunkName: 'reactPlayerMixcloud' */\n \"./Mixcloud\"\n ))\n },\n {\n key: \"vidyard\",\n name: \"Vidyard\",\n canPlay: import_patterns.canPlay.vidyard,\n lazyPlayer: (0, import_utils.lazy)(() => import(\n /* webpackChunkName: 'reactPlayerVidyard' */\n \"./Vidyard\"\n ))\n },\n {\n key: \"kaltura\",\n name: \"Kaltura\",\n canPlay: import_patterns.canPlay.kaltura,\n lazyPlayer: (0, import_utils.lazy)(() => import(\n /* webpackChunkName: 'reactPlayerKaltura' */\n \"./Kaltura\"\n ))\n },\n {\n key: \"file\",\n name: \"FilePlayer\",\n canPlay: import_patterns.canPlay.file,\n canEnablePIP: (url) => {\n return import_patterns.canPlay.file(url) && (document.pictureInPictureEnabled || (0, import_utils.supportsWebKitPresentationMode)()) && !import_patterns.AUDIO_EXTENSIONS.test(url);\n },\n lazyPlayer: (0, import_utils.lazy)(() => import(\n /* webpackChunkName: 'reactPlayerFilePlayer' */\n \"./FilePlayer\"\n ))\n }\n];\n","var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar props_exports = {};\n__export(props_exports, {\n defaultProps: () => defaultProps,\n propTypes: () => propTypes\n});\nmodule.exports = __toCommonJS(props_exports);\nvar import_prop_types = __toESM(require(\"prop-types\"));\nconst { string, bool, number, array, oneOfType, shape, object, func, node } = import_prop_types.default;\nconst propTypes = {\n url: oneOfType([string, array, object]),\n playing: bool,\n loop: bool,\n controls: bool,\n volume: number,\n muted: bool,\n playbackRate: number,\n width: oneOfType([string, number]),\n height: oneOfType([string, number]),\n style: object,\n progressInterval: number,\n playsinline: bool,\n pip: bool,\n stopOnUnmount: bool,\n light: oneOfType([bool, string, object]),\n playIcon: node,\n previewTabIndex: number,\n previewAriaLabel: string,\n fallback: node,\n oEmbedUrl: string,\n wrapper: oneOfType([\n string,\n func,\n shape({ render: func.isRequired })\n ]),\n config: shape({\n soundcloud: shape({\n options: object\n }),\n youtube: shape({\n playerVars: object,\n embedOptions: object,\n onUnstarted: func\n }),\n facebook: shape({\n appId: string,\n version: string,\n playerId: string,\n attributes: object\n }),\n dailymotion: shape({\n params: object\n }),\n vimeo: shape({\n playerOptions: object,\n title: string\n }),\n mux: shape({\n attributes: object,\n version: string\n }),\n file: shape({\n attributes: object,\n tracks: array,\n forceVideo: bool,\n forceAudio: bool,\n forceHLS: bool,\n forceSafariHLS: bool,\n forceDisableHls: bool,\n forceDASH: bool,\n forceFLV: bool,\n hlsOptions: object,\n hlsVersion: string,\n dashVersion: string,\n flvVersion: string\n }),\n wistia: shape({\n options: object,\n playerId: string,\n customControls: array\n }),\n mixcloud: shape({\n options: object\n }),\n twitch: shape({\n options: object,\n playerId: string\n }),\n vidyard: shape({\n options: object\n })\n }),\n onReady: func,\n onStart: func,\n onPlay: func,\n onPause: func,\n onBuffer: func,\n onBufferEnd: func,\n onEnded: func,\n onError: func,\n onDuration: func,\n onSeek: func,\n onPlaybackRateChange: func,\n onPlaybackQualityChange: func,\n onProgress: func,\n onClickPreview: func,\n onEnablePIP: func,\n onDisablePIP: func\n};\nconst noop = () => {\n};\nconst defaultProps = {\n playing: false,\n loop: false,\n controls: false,\n volume: null,\n muted: false,\n playbackRate: 1,\n width: \"640px\",\n height: \"360px\",\n style: {},\n progressInterval: 1e3,\n playsinline: false,\n pip: false,\n stopOnUnmount: true,\n light: false,\n fallback: null,\n wrapper: \"div\",\n previewTabIndex: 0,\n previewAriaLabel: \"\",\n oEmbedUrl: \"https://noembed.com/embed?url={url}\",\n config: {\n soundcloud: {\n options: {\n visual: true,\n // Undocumented, but makes player fill container and look better\n buying: false,\n liking: false,\n download: false,\n sharing: false,\n show_comments: false,\n show_playcount: false\n }\n },\n youtube: {\n playerVars: {\n playsinline: 1,\n showinfo: 0,\n rel: 0,\n iv_load_policy: 3,\n modestbranding: 1\n },\n embedOptions: {},\n onUnstarted: noop\n },\n facebook: {\n appId: \"1309697205772819\",\n version: \"v3.3\",\n playerId: null,\n attributes: {}\n },\n dailymotion: {\n params: {\n api: 1,\n \"endscreen-enable\": false\n }\n },\n vimeo: {\n playerOptions: {\n autopause: false,\n byline: false,\n portrait: false,\n title: false\n },\n title: null\n },\n mux: {\n attributes: {},\n version: \"2\"\n },\n file: {\n attributes: {},\n tracks: [],\n forceVideo: false,\n forceAudio: false,\n forceHLS: false,\n forceDASH: false,\n forceFLV: false,\n hlsOptions: {},\n hlsVersion: \"1.1.4\",\n dashVersion: \"3.1.3\",\n flvVersion: \"1.5.0\",\n forceDisableHls: false\n },\n wistia: {\n options: {},\n playerId: null,\n customControls: null\n },\n mixcloud: {\n options: {\n hide_cover: 1\n }\n },\n twitch: {\n options: {},\n playerId: null\n },\n vidyard: {\n options: {}\n }\n },\n onReady: noop,\n onStart: noop,\n onPlay: noop,\n onPause: noop,\n onBuffer: noop,\n onBufferEnd: noop,\n onEnded: noop,\n onError: noop,\n onDuration: noop,\n onSeek: noop,\n onPlaybackRateChange: noop,\n onPlaybackQualityChange: noop,\n onProgress: noop,\n onClickPreview: noop,\n onEnablePIP: noop,\n onDisablePIP: noop\n};\n","var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar utils_exports = {};\n__export(utils_exports, {\n callPlayer: () => callPlayer,\n getConfig: () => getConfig,\n getSDK: () => getSDK,\n isBlobUrl: () => isBlobUrl,\n isMediaStream: () => isMediaStream,\n lazy: () => lazy,\n omit: () => omit,\n parseEndTime: () => parseEndTime,\n parseStartTime: () => parseStartTime,\n queryString: () => queryString,\n randomString: () => randomString,\n supportsWebKitPresentationMode: () => supportsWebKitPresentationMode\n});\nmodule.exports = __toCommonJS(utils_exports);\nvar import_react = __toESM(require(\"react\"));\nvar import_load_script = __toESM(require(\"load-script\"));\nvar import_deepmerge = __toESM(require(\"deepmerge\"));\nconst lazy = (componentImportFn) => import_react.default.lazy(async () => {\n const obj = await componentImportFn();\n return typeof obj.default === \"function\" ? obj : obj.default;\n});\nconst MATCH_START_QUERY = /[?&#](?:start|t)=([0-9hms]+)/;\nconst MATCH_END_QUERY = /[?&#]end=([0-9hms]+)/;\nconst MATCH_START_STAMP = /(\\d+)(h|m|s)/g;\nconst MATCH_NUMERIC = /^\\d+$/;\nfunction parseTimeParam(url, pattern) {\n if (url instanceof Array) {\n return void 0;\n }\n const match = url.match(pattern);\n if (match) {\n const stamp = match[1];\n if (stamp.match(MATCH_START_STAMP)) {\n return parseTimeString(stamp);\n }\n if (MATCH_NUMERIC.test(stamp)) {\n return parseInt(stamp);\n }\n }\n return void 0;\n}\nfunction parseTimeString(stamp) {\n let seconds = 0;\n let array = MATCH_START_STAMP.exec(stamp);\n while (array !== null) {\n const [, count, period] = array;\n if (period === \"h\")\n seconds += parseInt(count, 10) * 60 * 60;\n if (period === \"m\")\n seconds += parseInt(count, 10) * 60;\n if (period === \"s\")\n seconds += parseInt(count, 10);\n array = MATCH_START_STAMP.exec(stamp);\n }\n return seconds;\n}\nfunction parseStartTime(url) {\n return parseTimeParam(url, MATCH_START_QUERY);\n}\nfunction parseEndTime(url) {\n return parseTimeParam(url, MATCH_END_QUERY);\n}\nfunction randomString() {\n return Math.random().toString(36).substr(2, 5);\n}\nfunction queryString(object) {\n return Object.keys(object).map((key) => `${key}=${object[key]}`).join(\"&\");\n}\nfunction getGlobal(key) {\n if (window[key]) {\n return window[key];\n }\n if (window.exports && window.exports[key]) {\n return window.exports[key];\n }\n if (window.module && window.module.exports && window.module.exports[key]) {\n return window.module.exports[key];\n }\n return null;\n}\nconst requests = {};\nconst getSDK = enableStubOn(function getSDK2(url, sdkGlobal, sdkReady = null, isLoaded = () => true, fetchScript = import_load_script.default) {\n const existingGlobal = getGlobal(sdkGlobal);\n if (existingGlobal && isLoaded(existingGlobal)) {\n return Promise.resolve(existingGlobal);\n }\n return new Promise((resolve, reject) => {\n if (requests[url]) {\n requests[url].push({ resolve, reject });\n return;\n }\n requests[url] = [{ resolve, reject }];\n const onLoaded = (sdk) => {\n requests[url].forEach((request) => request.resolve(sdk));\n };\n if (sdkReady) {\n const previousOnReady = window[sdkReady];\n window[sdkReady] = function() {\n if (previousOnReady)\n previousOnReady();\n onLoaded(getGlobal(sdkGlobal));\n };\n }\n fetchScript(url, (err) => {\n if (err) {\n requests[url].forEach((request) => request.reject(err));\n requests[url] = null;\n } else if (!sdkReady) {\n onLoaded(getGlobal(sdkGlobal));\n }\n });\n });\n});\nfunction getConfig(props, defaultProps) {\n return (0, import_deepmerge.default)(defaultProps.config, props.config);\n}\nfunction omit(object, ...arrays) {\n const omitKeys = [].concat(...arrays);\n const output = {};\n const keys = Object.keys(object);\n for (const key of keys) {\n if (omitKeys.indexOf(key) === -1) {\n output[key] = object[key];\n }\n }\n return output;\n}\nfunction callPlayer(method, ...args) {\n if (!this.player || !this.player[method]) {\n let message = `ReactPlayer: ${this.constructor.displayName} player could not call %c${method}%c \\u2013 `;\n if (!this.player) {\n message += \"The player was not available\";\n } else if (!this.player[method]) {\n message += \"The method was not available\";\n }\n console.warn(message, \"font-weight: bold\", \"\");\n return null;\n }\n return this.player[method](...args);\n}\nfunction isMediaStream(url) {\n return typeof window !== \"undefined\" && typeof window.MediaStream !== \"undefined\" && url instanceof window.MediaStream;\n}\nfunction isBlobUrl(url) {\n return /^blob:/.test(url);\n}\nfunction supportsWebKitPresentationMode(video = document.createElement(\"video\")) {\n const notMobile = /iPhone|iPod/.test(navigator.userAgent) === false;\n return video.webkitSupportsPresentationMode && typeof video.webkitSetPresentationMode === \"function\" && notMobile;\n}\nfunction enableStubOn(fn) {\n if (false) {\n const wrap = (...args) => wrap.stub(...args);\n wrap.stub = fn;\n return wrap;\n }\n return fn;\n}\n","\"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","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\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](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","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__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"static/js/\" + {\"42\":\"reactPlayerTwitch\",\"173\":\"reactPlayerVimeo\",\"328\":\"reactPlayerDailyMotion\",\"340\":\"reactPlayerWistia\",\"353\":\"reactPlayerPreview\",\"392\":\"reactPlayerVidyard\",\"446\":\"reactPlayerYouTube\",\"458\":\"reactPlayerFilePlayer\",\"463\":\"reactPlayerKaltura\",\"570\":\"reactPlayerMixcloud\",\"627\":\"reactPlayerStreamable\",\"723\":\"reactPlayerMux\",\"887\":\"reactPlayerFacebook\",\"979\":\"reactPlayerSoundCloud\"}[chunkId] + \".\" + {\"42\":\"303569e9\",\"173\":\"397826cb\",\"328\":\"105b3286\",\"340\":\"5a54d112\",\"353\":\"eca6116d\",\"392\":\"db683f5c\",\"446\":\"eafd799e\",\"458\":\"a9cd3b0f\",\"463\":\"7d0e4b77\",\"570\":\"cf78655e\",\"627\":\"845de5a4\",\"723\":\"30fd8d9b\",\"887\":\"9a317157\",\"979\":\"bb256dd2\"}[chunkId] + \".chunk.js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = (chunkId) => {\n\t// return url for filenames based on template\n\treturn undefined;\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","var inProgress = {};\nvar dataWebpackPrefix = \"bpj-nita:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// 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 = \"/\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t792: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkbpj_nita\"] = self[\"webpackChunkbpj_nita\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","////////////////////////////////////////////////////////////////////////////////\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\n status?: number;\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 unstable_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\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: number[] = [],\n manifest: RouteManifest = {}\n): AgnosticDataRouteObject[] {\n return routes.map((route, index) => {\n let treePath = [...parentPath, index];\n let id = typeof route.id === \"string\" ? route.id : treePath.join(\"-\");\n invariant(\n route.index !== true || !route.children,\n `Cannot specify children on an index route`\n );\n invariant(\n !manifest[id],\n `Found a route id collision on id \"${id}\". Route ` +\n \"id's must be globally unique within Data Router usages\"\n );\n\n if (isIndexRoute(route)) {\n let indexRoute: AgnosticDataIndexRouteObject = {\n ...route,\n ...mapRouteProperties(route),\n id,\n };\n manifest[id] = indexRoute;\n return indexRoute;\n } else {\n let pathOrLayoutRoute: AgnosticDataNonIndexRouteObject = {\n ...route,\n ...mapRouteProperties(route),\n id,\n children: undefined,\n };\n manifest[id] = pathOrLayoutRoute;\n\n if (route.children) {\n pathOrLayoutRoute.children = convertRoutesToDataRoutes(\n route.children,\n mapRouteProperties,\n treePath,\n manifest\n );\n }\n\n return pathOrLayoutRoute;\n }\n });\n}\n\n/**\n * Matches the given routes to a location and returns the match data.\n *\n * @see https://reactrouter.com/utils/match-routes\n */\nexport function matchRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n locationArg: Partial | string,\n basename = \"/\"\n): AgnosticRouteMatch[] | null {\n let location =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n let pathname = stripBasename(location.pathname || \"/\", basename);\n\n if (pathname == null) {\n return null;\n }\n\n let branches = flattenRoutes(routes);\n rankRouteBranches(branches);\n\n let matches = null;\n for (let i = 0; matches == null && i < branches.length; ++i) {\n // Incoming pathnames are generally encoded from either window.location\n // or from router.navigate, but we want to match against the unencoded\n // paths in the route definitions. Memory router locations won't be\n // encoded here but there also shouldn't be anything to decode so this\n // should be a safe operation. This avoids needing matchRoutes to be\n // history-aware.\n let decoded = decodePath(pathname);\n matches = matchRouteBranch(branches[i], decoded);\n }\n\n return matches;\n}\n\nexport interface UIMatch {\n id: string;\n pathname: string;\n params: AgnosticRouteMatch[\"params\"];\n data: Data;\n handle: Handle;\n}\n\nexport function convertRouteMatchToUiMatch(\n match: AgnosticDataRouteMatch,\n loaderData: RouteData\n): UIMatch {\n let { route, pathname, params } = match;\n return {\n id: route.id,\n pathname,\n params,\n data: loaderData[route.id],\n handle: route.handle,\n };\n}\n\ninterface RouteMeta<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n relativePath: string;\n caseSensitive: boolean;\n childrenIndex: number;\n route: RouteObjectType;\n}\n\ninterface RouteBranch<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n path: string;\n score: number;\n routesMeta: RouteMeta[];\n}\n\nfunction flattenRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n branches: RouteBranch[] = [],\n parentsMeta: RouteMeta[] = [],\n parentPath = \"\"\n): RouteBranch[] {\n let flattenRoute = (\n route: RouteObjectType,\n index: number,\n relativePath?: string\n ) => {\n let meta: RouteMeta = {\n relativePath:\n relativePath === undefined ? route.path || \"\" : relativePath,\n caseSensitive: route.caseSensitive === true,\n childrenIndex: index,\n route,\n };\n\n if (meta.relativePath.startsWith(\"/\")) {\n invariant(\n meta.relativePath.startsWith(parentPath),\n `Absolute route path \"${meta.relativePath}\" nested under path ` +\n `\"${parentPath}\" is not valid. An absolute child route path ` +\n `must start with the combined path of all its parent routes.`\n );\n\n meta.relativePath = meta.relativePath.slice(parentPath.length);\n }\n\n let path = joinPaths([parentPath, meta.relativePath]);\n let routesMeta = parentsMeta.concat(meta);\n\n // Add the children before adding this route to the array, so we traverse the\n // route tree depth-first and child routes appear before their parents in\n // the \"flattened\" version.\n if (route.children && route.children.length > 0) {\n invariant(\n // Our types know better, but runtime JS may not!\n // @ts-expect-error\n route.index !== true,\n `Index routes must not have child routes. Please remove ` +\n `all child routes from route path \"${path}\".`\n );\n\n flattenRoutes(route.children, branches, routesMeta, path);\n }\n\n // Routes without a path shouldn't ever match by themselves unless they are\n // index routes, so don't add them to the list of possible branches.\n if (route.path == null && !route.index) {\n return;\n }\n\n branches.push({\n path,\n score: computeScore(path, route.index),\n routesMeta,\n });\n };\n routes.forEach((route, index) => {\n // coarse-grain check for optional params\n if (route.path === \"\" || !route.path?.includes(\"?\")) {\n flattenRoute(route, index);\n } else {\n for (let exploded of explodeOptionalSegments(route.path)) {\n flattenRoute(route, index, exploded);\n }\n }\n });\n\n return branches;\n}\n\n/**\n * Computes all combinations of optional path segments for a given path,\n * excluding combinations that are ambiguous and of lower priority.\n *\n * For example, `/one/:two?/three/:four?/:five?` explodes to:\n * - `/one/three`\n * - `/one/:two/three`\n * - `/one/three/:four`\n * - `/one/three/:five`\n * - `/one/:two/three/:four`\n * - `/one/:two/three/:five`\n * - `/one/three/:four/:five`\n * - `/one/:two/three/:four/:five`\n */\nfunction explodeOptionalSegments(path: string): string[] {\n let segments = path.split(\"/\");\n if (segments.length === 0) return [];\n\n let [first, ...rest] = segments;\n\n // Optional path segments are denoted by a trailing `?`\n let isOptional = first.endsWith(\"?\");\n // Compute the corresponding required segment: `foo?` -> `foo`\n let required = first.replace(/\\?$/, \"\");\n\n if (rest.length === 0) {\n // Intepret empty string as omitting an optional segment\n // `[\"one\", \"\", \"three\"]` corresponds to omitting `:two` from `/one/:two?/three` -> `/one/three`\n return isOptional ? [required, \"\"] : [required];\n }\n\n let restExploded = explodeOptionalSegments(rest.join(\"/\"));\n\n let result: string[] = [];\n\n // All child paths with the prefix. Do this for all children before the\n // optional version for all children, so we get consistent ordering where the\n // parent optional aspect is preferred as required. Otherwise, we can get\n // child sections interspersed where deeper optional segments are higher than\n // parent optional segments, where for example, /:two would explode _earlier_\n // then /:one. By always including the parent as required _for all children_\n // first, we avoid this issue\n result.push(\n ...restExploded.map((subpath) =>\n subpath === \"\" ? required : [required, subpath].join(\"/\")\n )\n );\n\n // Then, if this is an optional value, add all child versions without\n if (isOptional) {\n result.push(...restExploded);\n }\n\n // for absolute paths, ensure `/` instead of empty segment\n return result.map((exploded) =>\n path.startsWith(\"/\") && exploded === \"\" ? \"/\" : exploded\n );\n}\n\nfunction rankRouteBranches(branches: RouteBranch[]): void {\n branches.sort((a, b) =>\n a.score !== b.score\n ? b.score - a.score // Higher score first\n : compareIndexes(\n a.routesMeta.map((meta) => meta.childrenIndex),\n b.routesMeta.map((meta) => meta.childrenIndex)\n )\n );\n}\n\nconst paramRe = /^:[\\w-]+$/;\nconst dynamicSegmentValue = 3;\nconst indexRouteValue = 2;\nconst emptySegmentValue = 1;\nconst staticSegmentValue = 10;\nconst splatPenalty = -2;\nconst isSplat = (s: string) => s === \"*\";\n\nfunction computeScore(path: string, index: boolean | undefined): number {\n let segments = path.split(\"/\");\n let initialScore = segments.length;\n if (segments.some(isSplat)) {\n initialScore += splatPenalty;\n }\n\n if (index) {\n initialScore += indexRouteValue;\n }\n\n return segments\n .filter((s) => !isSplat(s))\n .reduce(\n (score, segment) =>\n score +\n (paramRe.test(segment)\n ? dynamicSegmentValue\n : segment === \"\"\n ? emptySegmentValue\n : staticSegmentValue),\n initialScore\n );\n}\n\nfunction compareIndexes(a: number[], b: number[]): number {\n let siblings =\n a.length === b.length && a.slice(0, -1).every((n, i) => n === b[i]);\n\n return siblings\n ? // If two routes are siblings, we should try to match the earlier sibling\n // first. This allows people to have fine-grained control over the matching\n // behavior by simply putting routes with identical paths in the order they\n // want them tried.\n a[a.length - 1] - b[b.length - 1]\n : // Otherwise, it doesn't really make sense to rank non-siblings by index,\n // so they sort equally.\n 0;\n}\n\nfunction matchRouteBranch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n branch: RouteBranch,\n pathname: string\n): AgnosticRouteMatch[] | null {\n let { routesMeta } = branch;\n\n let matchedParams = {};\n let matchedPathname = \"/\";\n let matches: AgnosticRouteMatch[] = [];\n for (let i = 0; i < routesMeta.length; ++i) {\n let meta = routesMeta[i];\n let end = i === routesMeta.length - 1;\n let remainingPathname =\n matchedPathname === \"/\"\n ? pathname\n : pathname.slice(matchedPathname.length) || \"/\";\n let match = matchPath(\n { path: meta.relativePath, caseSensitive: meta.caseSensitive, end },\n remainingPathname\n );\n\n if (!match) return null;\n\n Object.assign(matchedParams, match.params);\n\n let route = meta.route;\n\n matches.push({\n // TODO: Can this as be avoided?\n params: matchedParams as Params,\n pathname: joinPaths([matchedPathname, match.pathname]),\n pathnameBase: normalizePathname(\n joinPaths([matchedPathname, match.pathnameBase])\n ),\n route,\n });\n\n if (match.pathnameBase !== \"/\") {\n matchedPathname = joinPaths([matchedPathname, match.pathnameBase]);\n }\n }\n\n return matches;\n}\n\n/**\n * Returns a path with params interpolated.\n *\n * @see https://reactrouter.com/utils/generate-path\n */\nexport function generatePath(\n originalPath: Path,\n params: {\n [key in PathParam]: string | null;\n } = {} as any\n): string {\n let path: string = originalPath;\n if (path.endsWith(\"*\") && path !== \"*\" && !path.endsWith(\"/*\")) {\n warning(\n false,\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n path = path.replace(/\\*$/, \"/*\") as Path;\n }\n\n // ensure `/` is added at the beginning if the path is absolute\n const prefix = path.startsWith(\"/\") ? \"/\" : \"\";\n\n const stringify = (p: any) =>\n p == null ? \"\" : typeof p === \"string\" ? p : String(p);\n\n const segments = path\n .split(/\\/+/)\n .map((segment, index, array) => {\n const isLastSegment = index === array.length - 1;\n\n // only apply the splat if it's the last segment\n if (isLastSegment && segment === \"*\") {\n const star = \"*\" as PathParam;\n // Apply the splat\n return stringify(params[star]);\n }\n\n const keyMatch = segment.match(/^:([\\w-]+)(\\??)$/);\n if (keyMatch) {\n const [, key, optional] = keyMatch;\n let param = params[key as PathParam];\n invariant(optional === \"?\" || param != null, `Missing \":${key}\" param`);\n return stringify(param);\n }\n\n // Remove any optional markers from optional static segments\n return segment.replace(/\\?$/g, \"\");\n })\n // Remove empty segments\n .filter((segment) => !!segment);\n\n return prefix + segments.join(\"/\");\n}\n\n/**\n * A PathPattern is used to match on some portion of a URL pathname.\n */\nexport interface PathPattern {\n /**\n * A string to match against a URL pathname. May contain `:id`-style segments\n * to indicate placeholders for dynamic parameters. May also end with `/*` to\n * indicate matching the rest of the URL pathname.\n */\n path: Path;\n /**\n * Should be `true` if the static portions of the `path` should be matched in\n * the same case.\n */\n caseSensitive?: boolean;\n /**\n * Should be `true` if this pattern should match the entire URL pathname.\n */\n end?: boolean;\n}\n\n/**\n * A PathMatch contains info about how a PathPattern matched on a URL pathname.\n */\nexport interface PathMatch {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The pattern that was used to match.\n */\n pattern: PathPattern;\n}\n\ntype Mutable = {\n -readonly [P in keyof T]: T[P];\n};\n\n/**\n * Performs pattern matching on a URL pathname and returns information about\n * the match.\n *\n * @see https://reactrouter.com/utils/match-path\n */\nexport function matchPath<\n ParamKey extends ParamParseKey,\n Path extends string\n>(\n pattern: PathPattern | Path,\n pathname: string\n): PathMatch | null {\n if (typeof pattern === \"string\") {\n pattern = { path: pattern, caseSensitive: false, end: true };\n }\n\n let [matcher, compiledParams] = compilePath(\n pattern.path,\n pattern.caseSensitive,\n pattern.end\n );\n\n let match = pathname.match(matcher);\n if (!match) return null;\n\n let matchedPathname = match[0];\n let pathnameBase = matchedPathname.replace(/(.)\\/+$/, \"$1\");\n let captureGroups = match.slice(1);\n let params: Params = compiledParams.reduce>(\n (memo, { paramName, isOptional }, index) => {\n // We need to compute the pathnameBase here using the raw splat value\n // instead of using params[\"*\"] later because it will be decoded then\n if (paramName === \"*\") {\n let splatValue = captureGroups[index] || \"\";\n pathnameBase = matchedPathname\n .slice(0, matchedPathname.length - splatValue.length)\n .replace(/(.)\\/+$/, \"$1\");\n }\n\n const value = captureGroups[index];\n if (isOptional && !value) {\n memo[paramName] = undefined;\n } else {\n memo[paramName] = (value || \"\").replace(/%2F/g, \"/\");\n }\n return memo;\n },\n {}\n );\n\n return {\n params,\n pathname: matchedPathname,\n pathnameBase,\n pattern,\n };\n}\n\ntype CompiledPathParam = { paramName: string; isOptional?: boolean };\n\nfunction compilePath(\n path: string,\n caseSensitive = false,\n end = true\n): [RegExp, CompiledPathParam[]] {\n warning(\n path === \"*\" || !path.endsWith(\"*\") || path.endsWith(\"/*\"),\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n\n let params: CompiledPathParam[] = [];\n let regexpSource =\n \"^\" +\n path\n .replace(/\\/*\\*?$/, \"\") // Ignore trailing / and /*, we'll handle it below\n .replace(/^\\/*/, \"/\") // Make sure it has a leading /\n .replace(/[\\\\.*+^${}|()[\\]]/g, \"\\\\$&\") // Escape special regex chars\n .replace(\n /\\/:([\\w-]+)(\\?)?/g,\n (_: string, paramName: string, isOptional) => {\n params.push({ paramName, isOptional: isOptional != null });\n return isOptional ? \"/?([^\\\\/]+)?\" : \"/([^\\\\/]+)\";\n }\n );\n\n if (path.endsWith(\"*\")) {\n params.push({ paramName: \"*\" });\n regexpSource +=\n path === \"*\" || path === \"/*\"\n ? \"(.*)$\" // Already matched the initial /, just match the rest\n : \"(?:\\\\/(.+)|\\\\/*)$\"; // Don't include the / in params[\"*\"]\n } else if (end) {\n // When matching to the end, ignore trailing slashes\n regexpSource += \"\\\\/*$\";\n } else if (path !== \"\" && path !== \"/\") {\n // If our path is non-empty and contains anything beyond an initial slash,\n // then we have _some_ form of path in our regex, so we should expect to\n // match only if we find the end of this path segment. Look for an optional\n // non-captured trailing slash (to match a portion of the URL) or the end\n // of the path (if we've matched to the end). We used to do this with a\n // word boundary but that gives false positives on routes like\n // /user-preferences since `-` counts as a word boundary.\n regexpSource += \"(?:(?=\\\\/|$))\";\n } else {\n // Nothing to match for \"\" or \"/\"\n }\n\n let matcher = new RegExp(regexpSource, caseSensitive ? undefined : \"i\");\n\n return [matcher, params];\n}\n\nfunction decodePath(value: string) {\n try {\n return value\n .split(\"/\")\n .map((v) => decodeURIComponent(v).replace(/\\//g, \"%2F\"))\n .join(\"/\");\n } catch (error) {\n warning(\n false,\n `The URL path \"${value}\" could not be decoded because it is is a ` +\n `malformed URL segment. This is probably due to a bad percent ` +\n `encoding (${error}).`\n );\n\n return value;\n }\n}\n\n/**\n * @private\n */\nexport function stripBasename(\n pathname: string,\n basename: string\n): string | null {\n if (basename === \"/\") return pathname;\n\n if (!pathname.toLowerCase().startsWith(basename.toLowerCase())) {\n return null;\n }\n\n // We want to leave trailing slash behavior in the user's control, so if they\n // specify a basename with a trailing slash, we should support it\n let startIndex = basename.endsWith(\"/\")\n ? basename.length - 1\n : basename.length;\n let nextChar = pathname.charAt(startIndex);\n if (nextChar && nextChar !== \"/\") {\n // pathname does not start with basename/\n return null;\n }\n\n return pathname.slice(startIndex) || \"/\";\n}\n\n/**\n * Returns a resolved path object relative to the given pathname.\n *\n * @see https://reactrouter.com/utils/resolve-path\n */\nexport function resolvePath(to: To, fromPathname = \"/\"): Path {\n let {\n pathname: toPathname,\n search = \"\",\n hash = \"\",\n } = typeof to === \"string\" ? parsePath(to) : to;\n\n let pathname = toPathname\n ? toPathname.startsWith(\"/\")\n ? toPathname\n : resolvePathname(toPathname, fromPathname)\n : fromPathname;\n\n return {\n pathname,\n search: normalizeSearch(search),\n hash: normalizeHash(hash),\n };\n}\n\nfunction resolvePathname(relativePath: string, fromPathname: string): string {\n let segments = fromPathname.replace(/\\/+$/, \"\").split(\"/\");\n let relativeSegments = relativePath.split(\"/\");\n\n relativeSegments.forEach((segment) => {\n if (segment === \"..\") {\n // Keep the root \"\" segment so the pathname starts at /\n if (segments.length > 1) segments.pop();\n } else if (segment !== \".\") {\n segments.push(segment);\n }\n });\n\n return segments.length > 1 ? segments.join(\"/\") : \"/\";\n}\n\nfunction getInvalidPathError(\n char: string,\n field: string,\n dest: string,\n path: Partial\n) {\n return (\n `Cannot include a '${char}' character in a manually specified ` +\n `\\`to.${field}\\` field [${JSON.stringify(\n path\n )}]. Please separate it out to the ` +\n `\\`to.${dest}\\` field. Alternatively you may provide the full path as ` +\n `a string in and the router will parse it for you.`\n );\n}\n\n/**\n * @private\n *\n * When processing relative navigation we want to ignore ancestor routes that\n * do not contribute to the path, such that index/pathless layout routes don't\n * interfere.\n *\n * For example, when moving a route element into an index route and/or a\n * pathless layout route, relative link behavior contained within should stay\n * the same. Both of the following examples should link back to the root:\n *\n * \n * \n * \n *\n * \n * \n * }> // <-- Does not contribute\n * // <-- Does not contribute\n * \n * \n */\nexport function getPathContributingMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[]) {\n return matches.filter(\n (match, index) =>\n index === 0 || (match.route.path && match.route.path.length > 0)\n );\n}\n\n// Return the array of pathnames for the current route matches - used to\n// generate the routePathnames input for resolveTo()\nexport function getResolveToMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[], v7_relativeSplatPath: boolean) {\n let pathMatches = getPathContributingMatches(matches);\n\n // When v7_relativeSplatPath is enabled, use the full pathname for the leaf\n // match so we include splat values for \".\" links. See:\n // https://github.com/remix-run/react-router/issues/11052#issuecomment-1836589329\n if (v7_relativeSplatPath) {\n return pathMatches.map((match, idx) =>\n idx === matches.length - 1 ? match.pathname : match.pathnameBase\n );\n }\n\n return pathMatches.map((match) => match.pathnameBase);\n}\n\n/**\n * @private\n */\nexport function resolveTo(\n toArg: To,\n routePathnames: string[],\n locationPathname: string,\n isPathRelative = false\n): Path {\n let to: Partial;\n if (typeof toArg === \"string\") {\n to = parsePath(toArg);\n } else {\n to = { ...toArg };\n\n invariant(\n !to.pathname || !to.pathname.includes(\"?\"),\n getInvalidPathError(\"?\", \"pathname\", \"search\", to)\n );\n invariant(\n !to.pathname || !to.pathname.includes(\"#\"),\n getInvalidPathError(\"#\", \"pathname\", \"hash\", to)\n );\n invariant(\n !to.search || !to.search.includes(\"#\"),\n getInvalidPathError(\"#\", \"search\", \"hash\", to)\n );\n }\n\n let isEmptyPath = toArg === \"\" || to.pathname === \"\";\n let toPathname = isEmptyPath ? \"/\" : to.pathname;\n\n let from: string;\n\n // Routing is relative to the current pathname if explicitly requested.\n //\n // If a pathname is explicitly provided in `to`, it should be relative to the\n // route context. This is explained in `Note on `` values` in our\n // migration guide from v5 as a means of disambiguation between `to` values\n // that begin with `/` and those that do not. However, this is problematic for\n // `to` values that do not provide a pathname. `to` can simply be a search or\n // hash string, in which case we should assume that the navigation is relative\n // to the current location's pathname and *not* the route pathname.\n if (toPathname == null) {\n from = locationPathname;\n } else {\n let routePathnameIndex = routePathnames.length - 1;\n\n // With relative=\"route\" (the default), each leading .. segment means\n // \"go up one route\" instead of \"go up one URL segment\". This is a key\n // difference from how works and a major reason we call this a\n // \"to\" value instead of a \"href\".\n if (!isPathRelative && toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\");\n\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n\n to.pathname = toSegments.join(\"/\");\n }\n\n from = routePathnameIndex >= 0 ? routePathnames[routePathnameIndex] : \"/\";\n }\n\n let path = resolvePath(to, from);\n\n // Ensure the pathname has a trailing slash if the original \"to\" had one\n let hasExplicitTrailingSlash =\n toPathname && toPathname !== \"/\" && toPathname.endsWith(\"/\");\n // Or if this was a link to the current path which has a trailing slash\n let hasCurrentTrailingSlash =\n (isEmptyPath || toPathname === \".\") && locationPathname.endsWith(\"/\");\n if (\n !path.pathname.endsWith(\"/\") &&\n (hasExplicitTrailingSlash || hasCurrentTrailingSlash)\n ) {\n path.pathname += \"/\";\n }\n\n return path;\n}\n\n/**\n * @private\n */\nexport function getToPathname(to: To): string | undefined {\n // Empty strings should be treated the same as / paths\n return to === \"\" || (to as Path).pathname === \"\"\n ? \"/\"\n : typeof to === \"string\"\n ? parsePath(to).pathname\n : to.pathname;\n}\n\n/**\n * @private\n */\nexport const joinPaths = (paths: string[]): string =>\n paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\n\n/**\n * @private\n */\nexport const normalizePathname = (pathname: string): string =>\n pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\n\n/**\n * @private\n */\nexport const normalizeSearch = (search: string): string =>\n !search || search === \"?\"\n ? \"\"\n : search.startsWith(\"?\")\n ? search\n : \"?\" + search;\n\n/**\n * @private\n */\nexport const normalizeHash = (hash: string): string =>\n !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\n\nexport type JsonFunction = (\n data: Data,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * This is a shortcut for creating `application/json` responses. Converts `data`\n * to JSON and sets the `Content-Type` header.\n */\nexport const json: JsonFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n let headers = new Headers(responseInit.headers);\n if (!headers.has(\"Content-Type\")) {\n headers.set(\"Content-Type\", \"application/json; charset=utf-8\");\n }\n\n return new Response(JSON.stringify(data), {\n ...responseInit,\n headers,\n });\n};\n\nexport interface TrackedPromise extends Promise {\n _tracked?: boolean;\n _data?: any;\n _error?: any;\n}\n\nexport class AbortedDeferredError extends Error {}\n\nexport class DeferredData {\n private pendingKeysSet: Set = new Set();\n private controller: AbortController;\n private abortPromise: Promise;\n private unlistenAbortSignal: () => void;\n private subscribers: Set<(aborted: boolean, settledKey?: string) => void> =\n new Set();\n data: Record;\n init?: ResponseInit;\n deferredKeys: string[] = [];\n\n constructor(data: Record, responseInit?: ResponseInit) {\n invariant(\n data && typeof data === \"object\" && !Array.isArray(data),\n \"defer() only accepts plain objects\"\n );\n\n // Set up an AbortController + Promise we can race against to exit early\n // cancellation\n let reject: (e: AbortedDeferredError) => void;\n this.abortPromise = new Promise((_, r) => (reject = r));\n this.controller = new AbortController();\n let onAbort = () =>\n reject(new AbortedDeferredError(\"Deferred data aborted\"));\n this.unlistenAbortSignal = () =>\n this.controller.signal.removeEventListener(\"abort\", onAbort);\n this.controller.signal.addEventListener(\"abort\", onAbort);\n\n this.data = Object.entries(data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: this.trackPromise(key, value),\n }),\n {}\n );\n\n if (this.done) {\n // All incoming values were resolved\n this.unlistenAbortSignal();\n }\n\n this.init = responseInit;\n }\n\n private trackPromise(\n key: string,\n value: Promise | unknown\n ): TrackedPromise | unknown {\n if (!(value instanceof Promise)) {\n return value;\n }\n\n this.deferredKeys.push(key);\n this.pendingKeysSet.add(key);\n\n // We store a little wrapper promise that will be extended with\n // _data/_error props upon resolve/reject\n let promise: TrackedPromise = Promise.race([value, this.abortPromise]).then(\n (data) => this.onSettle(promise, key, undefined, data as unknown),\n (error) => this.onSettle(promise, key, error as unknown)\n );\n\n // Register rejection listeners to avoid uncaught promise rejections on\n // errors or aborted deferred values\n promise.catch(() => {});\n\n Object.defineProperty(promise, \"_tracked\", { get: () => true });\n return promise;\n }\n\n private onSettle(\n promise: TrackedPromise,\n key: string,\n error: unknown,\n data?: unknown\n ): unknown {\n if (\n this.controller.signal.aborted &&\n error instanceof AbortedDeferredError\n ) {\n this.unlistenAbortSignal();\n Object.defineProperty(promise, \"_error\", { get: () => error });\n return Promise.reject(error);\n }\n\n this.pendingKeysSet.delete(key);\n\n if (this.done) {\n // Nothing left to abort!\n this.unlistenAbortSignal();\n }\n\n // If the promise was resolved/rejected with undefined, we'll throw an error as you\n // should always resolve with a value or null\n if (error === undefined && data === undefined) {\n let undefinedError = new Error(\n `Deferred data for key \"${key}\" resolved/rejected with \\`undefined\\`, ` +\n `you must resolve/reject with a value or \\`null\\`.`\n );\n Object.defineProperty(promise, \"_error\", { get: () => undefinedError });\n this.emit(false, key);\n return Promise.reject(undefinedError);\n }\n\n if (data === undefined) {\n Object.defineProperty(promise, \"_error\", { get: () => error });\n this.emit(false, key);\n return Promise.reject(error);\n }\n\n Object.defineProperty(promise, \"_data\", { get: () => data });\n this.emit(false, key);\n return data;\n }\n\n private emit(aborted: boolean, settledKey?: string) {\n this.subscribers.forEach((subscriber) => subscriber(aborted, settledKey));\n }\n\n subscribe(fn: (aborted: boolean, settledKey?: string) => void) {\n this.subscribers.add(fn);\n return () => this.subscribers.delete(fn);\n }\n\n cancel() {\n this.controller.abort();\n this.pendingKeysSet.forEach((v, k) => this.pendingKeysSet.delete(k));\n this.emit(true);\n }\n\n async resolveData(signal: AbortSignal) {\n let aborted = false;\n if (!this.done) {\n let onAbort = () => this.cancel();\n signal.addEventListener(\"abort\", onAbort);\n aborted = await new Promise((resolve) => {\n this.subscribe((aborted) => {\n signal.removeEventListener(\"abort\", onAbort);\n if (aborted || this.done) {\n resolve(aborted);\n }\n });\n });\n }\n return aborted;\n }\n\n get done() {\n return this.pendingKeysSet.size === 0;\n }\n\n get unwrappedData() {\n invariant(\n this.data !== null && this.done,\n \"Can only unwrap data on initialized and settled deferreds\"\n );\n\n return Object.entries(this.data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: unwrapTrackedPromise(value),\n }),\n {}\n );\n }\n\n get pendingKeys() {\n return Array.from(this.pendingKeysSet);\n }\n}\n\nfunction isTrackedPromise(value: any): value is TrackedPromise {\n return (\n value instanceof Promise && (value as TrackedPromise)._tracked === true\n );\n}\n\nfunction unwrapTrackedPromise(value: any) {\n if (!isTrackedPromise(value)) {\n return value;\n }\n\n if (value._error) {\n throw value._error;\n }\n return value._data;\n}\n\nexport type DeferFunction = (\n data: Record,\n init?: number | ResponseInit\n) => DeferredData;\n\nexport const defer: DeferFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n return new DeferredData(data, responseInit);\n};\n\nexport type RedirectFunction = (\n url: string,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * A redirect response. Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirect: RedirectFunction = (url, init = 302) => {\n let responseInit = init;\n if (typeof responseInit === \"number\") {\n responseInit = { status: responseInit };\n } else if (typeof responseInit.status === \"undefined\") {\n responseInit.status = 302;\n }\n\n let headers = new Headers(responseInit.headers);\n headers.set(\"Location\", url);\n\n return new Response(null, {\n ...responseInit,\n headers,\n });\n};\n\n/**\n * A redirect response that will force a document reload to the new location.\n * Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirectDocument: RedirectFunction = (url, init) => {\n let response = redirect(url, init);\n response.headers.set(\"X-Remix-Reload-Document\", \"true\");\n return response;\n};\n\nexport type ErrorResponse = {\n status: number;\n statusText: string;\n data: any;\n};\n\n/**\n * @private\n * Utility class we use to hold auto-unwrapped 4xx/5xx Response bodies\n *\n * We don't export the class for public use since it's an implementation\n * detail, but we export the interface above so folks can build their own\n * abstractions around instances via isRouteErrorResponse()\n */\nexport class ErrorResponseImpl implements ErrorResponse {\n status: number;\n statusText: string;\n data: any;\n private error?: Error;\n private internal: boolean;\n\n constructor(\n status: number,\n statusText: string | undefined,\n data: any,\n internal = false\n ) {\n this.status = status;\n this.statusText = statusText || \"\";\n this.internal = internal;\n if (data instanceof Error) {\n this.data = data.toString();\n this.error = data;\n } else {\n this.data = data;\n }\n }\n}\n\n/**\n * Check if the given error is an ErrorResponse generated from a 4xx/5xx\n * Response thrown from an action/loader\n */\nexport function isRouteErrorResponse(error: any): error is ErrorResponse {\n return (\n error != null &&\n typeof error.status === \"number\" &&\n typeof error.statusText === \"string\" &&\n typeof error.internal === \"boolean\" &&\n \"data\" in error\n );\n}\n","import type { History, Location, Path, To } from \"./history\";\nimport {\n Action as HistoryAction,\n createLocation,\n createPath,\n invariant,\n parsePath,\n warning,\n} from \"./history\";\nimport type {\n 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} from \"./utils\";\nimport {\n ErrorResponseImpl,\n ResultType,\n convertRouteMatchToUiMatch,\n convertRoutesToDataRoutes,\n getPathContributingMatches,\n getResolveToMatches,\n immutableRouteKeys,\n isRouteErrorResponse,\n joinPaths,\n matchRoutes,\n resolveTo,\n stripBasename,\n} from \"./utils\";\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A Router instance manages all navigation and data loading/mutations\n */\nexport interface Router {\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the basename for the router\n */\n get basename(): RouterInit[\"basename\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the future config for the router\n */\n get future(): FutureConfig;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the current state of the router\n */\n get state(): RouterState;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the routes for this router instance\n */\n get routes(): AgnosticDataRouteObject[];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the window associated with the router\n */\n get window(): RouterInit[\"window\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Initialize the router, including adding history listeners and kicking off\n * initial data fetches. Returns a function to cleanup listeners and abort\n * any in-progress loads\n */\n initialize(): Router;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Subscribe to router.state updates\n *\n * @param fn function to call with the new state\n */\n subscribe(fn: RouterSubscriber): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Enable scroll restoration behavior in the router\n *\n * @param savedScrollPositions Object that will manage positions, in case\n * it's being restored from sessionStorage\n * @param getScrollPosition Function to get the active Y scroll position\n * @param getKey Function to get the key to use for restoration\n */\n enableScrollRestoration(\n savedScrollPositions: Record,\n getScrollPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Navigate forward/backward in the history stack\n * @param to Delta to move in the history stack\n */\n navigate(to: number): Promise;\n\n /**\n * Navigate to the given path\n * @param to Path to navigate to\n * @param opts Navigation options (method, submission, etc.)\n */\n navigate(to: To | null, opts?: RouterNavigateOptions): Promise;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a fetcher load/submission\n *\n * @param key Fetcher key\n * @param routeId Route that owns the fetcher\n * @param href href to fetch\n * @param opts Fetcher options, (method, submission, etc.)\n */\n fetch(\n key: string,\n routeId: string,\n href: string | null,\n opts?: RouterFetchOptions\n ): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a revalidation of all current route loaders and fetcher loads\n */\n revalidate(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to create an href for the given location\n * @param location\n */\n createHref(location: Location | URL): string;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to URL encode a destination path according to the internal\n * history implementation\n * @param to\n */\n encodeLocation(to: To): Path;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get/create a fetcher for the given key\n * @param key\n */\n getFetcher(key: string): Fetcher;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete the fetcher for a given key\n * @param key\n */\n deleteFetcher(key: string): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Cleanup listeners and abort any in-progress loads\n */\n dispose(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get a navigation blocker\n * @param key The identifier for the blocker\n * @param fn The blocker function implementation\n */\n getBlocker(key: string, fn: BlockerFunction): Blocker;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete a navigation blocker\n * @param key The identifier for the blocker\n */\n deleteBlocker(key: string): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * HMR needs to pass in-flight route updates to React Router\n * TODO: Replace this with granular route update APIs (addRoute, updateRoute, deleteRoute)\n */\n _internalSetRoutes(routes: AgnosticRouteObject[]): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal fetch AbortControllers accessed by unit tests\n */\n _internalFetchControllers: Map;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal pending DeferredData instances accessed by unit tests\n */\n _internalActiveDeferreds: Map;\n}\n\n/**\n * State maintained internally by the router. During a navigation, all states\n * reflect the the \"old\" location unless otherwise noted.\n */\nexport interface RouterState {\n /**\n * The action of the most recent navigation\n */\n historyAction: HistoryAction;\n\n /**\n * The current location reflected by the router\n */\n location: Location;\n\n /**\n * The current set of route matches\n */\n matches: AgnosticDataRouteMatch[];\n\n /**\n * Tracks whether we've completed our initial data load\n */\n initialized: boolean;\n\n /**\n * Current scroll position we should start at for a new view\n * - number -> scroll position to restore to\n * - false -> do not restore scroll at all (used during submissions)\n * - null -> don't have a saved position, scroll to hash or top of page\n */\n restoreScrollPosition: number | false | null;\n\n /**\n * Indicate whether this navigation should skip resetting the scroll position\n * if we are unable to restore the scroll position\n */\n preventScrollReset: boolean;\n\n /**\n * Tracks the state of the current navigation\n */\n navigation: Navigation;\n\n /**\n * Tracks any in-progress revalidations\n */\n revalidation: RevalidationState;\n\n /**\n * Data from the loaders for the current matches\n */\n loaderData: RouteData;\n\n /**\n * Data from the action for the current matches\n */\n actionData: RouteData | null;\n\n /**\n * Errors caught from loaders for the current matches\n */\n errors: RouteData | null;\n\n /**\n * Map of current fetchers\n */\n fetchers: Map;\n\n /**\n * Map of current blockers\n */\n blockers: Map;\n}\n\n/**\n * Data that can be passed into hydrate a Router from SSR\n */\nexport type HydrationState = Partial<\n Pick\n>;\n\n/**\n * Future flags to toggle new feature behavior\n */\nexport interface FutureConfig {\n v7_fetcherPersist: boolean;\n v7_normalizeFormMethod: boolean;\n v7_partialHydration: boolean;\n v7_prependBasename: boolean;\n v7_relativeSplatPath: boolean;\n unstable_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_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 * 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 * 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 // 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 unstable_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 // Externally-provided object to hold scroll restoration locations during routing\n let savedScrollPositions: Record | null = null;\n // Externally-provided function to get scroll restoration keys\n let getScrollRestorationKey: GetScrollRestorationKeyFunction | null = null;\n // Externally-provided function to get current scroll position\n let getScrollPosition: GetScrollPositionFunction | null = null;\n // One-time flag to control the initial hydration scroll restoration. Because\n // we don't get the saved positions from until _after_\n // the initial render, we need to manually trigger a separate updateState to\n // send along the restoreScrollPosition\n // Set to true if we have `hydrationData` since we assume we were SSR'd and that\n // SSR did the initial scroll restoration.\n let initialScrollRestored = init.hydrationData != null;\n\n let initialMatches = matchRoutes(dataRoutes, init.history.location, basename);\n let initialErrors: RouteData | null = null;\n\n if (initialMatches == null) {\n // If we do not match a user-provided-route, fall back to the root\n // to allow the error boundary to take over\n let error = getInternalRouterError(404, {\n pathname: init.history.location.pathname,\n });\n let { matches, route } = getShortCircuitMatches(dataRoutes);\n initialMatches = matches;\n initialErrors = { [route.id]: error };\n }\n\n let initialized: boolean;\n let hasLazyRoutes = initialMatches.some((m) => m.route.lazy);\n let hasLoaders = initialMatches.some((m) => m.route.loader);\n if (hasLazyRoutes) {\n // All initialMatches need to be loaded before we're ready. If we have lazy\n // functions around still then we'll need to run them in initialize()\n initialized = false;\n } else if (!hasLoaders) {\n // If we've got no loaders to run, then we're good to go\n initialized = true;\n } else if (future.v7_partialHydration) {\n // If partial hydration is enabled, we're initialized so long as we were\n // provided with hydrationData for every route with a loader, and no loaders\n // were marked for explicit hydration\n let loaderData = init.hydrationData ? init.hydrationData.loaderData : null;\n let errors = init.hydrationData ? init.hydrationData.errors : null;\n let isRouteInitialized = (m: AgnosticDataRouteMatch) => {\n // No loader, nothing to initialize\n if (!m.route.loader) {\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: string[] = [];\n\n // AbortControllers for any in-flight fetchers\n let fetchControllers = new Map();\n\n // Track loads based on the order in which they started\n let incrementingLoadId = 0;\n\n // Track the outstanding pending navigation data load to be compared against\n // the globally incrementing load when a fetcher load lands after a completed\n // navigation\n let pendingNavigationLoadId = -1;\n\n // Fetchers that triggered data reloads as a result of their actions\n let fetchReloadIds = new Map();\n\n // Fetchers that triggered redirect navigations\n let fetchRedirectIds = new Set();\n\n // Most recent href/match for fetcher.load calls for fetchers\n let fetchLoadMatches = new Map();\n\n // Ref-count mounted fetchers so we know when it's ok to clean them up\n let activeFetchers = new Map();\n\n // Fetchers that have requested a delete when using v7_fetcherPersist,\n // they'll be officially removed after they return to idle\n let deletedFetchers = new Set();\n\n // Store DeferredData instances for active route matches. When a\n // route loader returns defer() we stick one in here. Then, when a nested\n // promise resolves we update loaderData. If a new navigation starts we\n // cancel active deferreds for eliminated routes.\n let activeDeferreds = new Map();\n\n // Store blocker functions in a separate Map outside of router state since\n // we don't need to update UI state if they change\n let blockerFunctions = new Map();\n\n // Flag to ignore the next history update, so we can revert the URL change on\n // a POP navigation that was blocked by the user without touching router state\n let ignoreNextHistoryUpdate = false;\n\n // Initialize the router, all side effects should be kicked off from here.\n // Implemented as a Fluent API for ease of:\n // let router = createRouter(init).initialize();\n function initialize() {\n // If history informs us of a POP navigation, start the navigation but do not update\n // state. We'll update our own state once the navigation completes\n unlistenHistory = init.history.listen(\n ({ action: historyAction, location, delta }) => {\n // Ignore this event if it was just us resetting the URL from a\n // blocked POP navigation\n if (ignoreNextHistoryUpdate) {\n ignoreNextHistoryUpdate = false;\n return;\n }\n\n warning(\n blockerFunctions.size === 0 || delta != null,\n \"You are trying to use a blocker on a POP navigation to a location \" +\n \"that was not created by @remix-run/router. This will fail silently in \" +\n \"production. This can happen if you are navigating outside the router \" +\n \"via `window.history.pushState`/`window.location.hash` instead of using \" +\n \"router navigation APIs. This can also happen if you are using \" +\n \"createHashRouter and the user manually changes the URL.\"\n );\n\n let blockerKey = shouldBlockNavigation({\n currentLocation: state.location,\n nextLocation: location,\n historyAction,\n });\n\n if (blockerKey && delta != null) {\n // Restore the URL to match the current UI, but don't update router state\n ignoreNextHistoryUpdate = true;\n init.history.go(delta * -1);\n\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location,\n });\n // Re-do the same POP navigation we just blocked\n init.history.go(delta);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey!, IDLE_BLOCKER);\n updateState({ blockers });\n },\n });\n return;\n }\n\n return startNavigation(historyAction, location);\n }\n );\n\n if (isBrowser) {\n // FIXME: This feels gross. How can we cleanup the lines between\n // scrollRestoration/appliedTransitions persistance?\n restoreAppliedTransitions(routerWindow, appliedViewTransitions);\n let _saveAppliedTransitions = () =>\n persistAppliedTransitions(routerWindow, appliedViewTransitions);\n routerWindow.addEventListener(\"pagehide\", _saveAppliedTransitions);\n removePageHideEventListener = () =>\n routerWindow.removeEventListener(\"pagehide\", _saveAppliedTransitions);\n }\n\n // Kick off initial data load if needed. Use Pop to avoid modifying history\n // Note we don't do any handling of lazy here. For SPA's it'll get handled\n // in the normal navigation flow. For SSR it's expected that lazy modules are\n // resolved prior to router creation since we can't go into a fallbackElement\n // UI for SSR'd apps\n if (!state.initialized) {\n startNavigation(HistoryAction.Pop, state.location, {\n initialHydration: true,\n });\n }\n\n return router;\n }\n\n // Clean up a router and it's side effects\n function dispose() {\n if (unlistenHistory) {\n unlistenHistory();\n }\n if (removePageHideEventListener) {\n removePageHideEventListener();\n }\n subscribers.clear();\n pendingNavigationController && pendingNavigationController.abort();\n state.fetchers.forEach((_, key) => deleteFetcher(key));\n state.blockers.forEach((_, key) => deleteBlocker(key));\n }\n\n // Subscribe to state updates for the router\n function subscribe(fn: RouterSubscriber) {\n subscribers.add(fn);\n return () => subscribers.delete(fn);\n }\n\n // Update our state and notify the calling context of the change\n function updateState(\n newState: Partial,\n opts: {\n flushSync?: boolean;\n viewTransitionOpts?: ViewTransitionOpts;\n } = {}\n ): void {\n state = {\n ...state,\n ...newState,\n };\n\n // Prep fetcher cleanup so we can tell the UI which fetcher data entries\n // can be removed\n let completedFetchers: string[] = [];\n let deletedFetchersKeys: string[] = [];\n\n if (future.v7_fetcherPersist) {\n state.fetchers.forEach((fetcher, key) => {\n if (fetcher.state === \"idle\") {\n if (deletedFetchers.has(key)) {\n // Unmounted from the UI and can be totally removed\n deletedFetchersKeys.push(key);\n } else {\n // Returned to idle but still mounted in the UI, so semi-remains for\n // revalidations and such\n completedFetchers.push(key);\n }\n }\n });\n }\n\n // Iterate over a local copy so that if flushSync is used and we end up\n // removing and adding a new subscriber due to the useCallback dependencies,\n // we don't get ourselves into a loop calling the new subscriber immediately\n [...subscribers].forEach((subscriber) =>\n subscriber(state, {\n deletedFetchers: deletedFetchersKeys,\n unstable_viewTransitionOpts: opts.viewTransitionOpts,\n unstable_flushSync: opts.flushSync === true,\n })\n );\n\n // Remove idle fetchers from state since we only care about in-flight fetchers.\n if (future.v7_fetcherPersist) {\n completedFetchers.forEach((key) => state.fetchers.delete(key));\n deletedFetchersKeys.forEach((key) => deleteFetcher(key));\n }\n }\n\n // Complete a navigation returning the state.navigation back to the IDLE_NAVIGATION\n // and setting state.[historyAction/location/matches] to the new route.\n // - Location is a required param\n // - Navigation will always be set to IDLE_NAVIGATION\n // - Can pass any other state in newState\n function completeNavigation(\n location: Location,\n newState: Partial>,\n { flushSync }: { flushSync?: boolean } = {}\n ): void {\n // Deduce if we're in a loading/actionReload state:\n // - We have committed actionData in the store\n // - The current navigation was a mutation submission\n // - We're past the submitting state and into the loading state\n // - The location being loaded is not the result of a redirect\n let isActionReload =\n state.actionData != null &&\n state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n state.navigation.state === \"loading\" &&\n location.state?._isRedirect !== true;\n\n let actionData: RouteData | null;\n if (newState.actionData) {\n if (Object.keys(newState.actionData).length > 0) {\n actionData = newState.actionData;\n } else {\n // Empty actionData -> clear prior actionData due to an action error\n actionData = null;\n }\n } else if (isActionReload) {\n // Keep the current data if we're wrapping up the action reload\n actionData = state.actionData;\n } else {\n // Clear actionData on any other completed navigations\n actionData = null;\n }\n\n // Always preserve any existing loaderData from re-used routes\n let loaderData = newState.loaderData\n ? mergeLoaderData(\n state.loaderData,\n newState.loaderData,\n newState.matches || [],\n newState.errors\n )\n : state.loaderData;\n\n // On a successful navigation we can assume we got through all blockers\n // so we can start fresh\n let blockers = state.blockers;\n if (blockers.size > 0) {\n blockers = new Map(blockers);\n blockers.forEach((_, k) => blockers.set(k, IDLE_BLOCKER));\n }\n\n // Always respect the user flag. Otherwise don't reset on mutation\n // submission navigations unless they redirect\n let preventScrollReset =\n pendingPreventScrollReset === true ||\n (state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n location.state?._isRedirect !== true);\n\n if (inFlightDataRoutes) {\n dataRoutes = inFlightDataRoutes;\n inFlightDataRoutes = undefined;\n }\n\n if (isUninterruptedRevalidation) {\n // If this was an uninterrupted revalidation then do not touch history\n } else if (pendingAction === HistoryAction.Pop) {\n // Do nothing for POP - URL has already been updated\n } else if (pendingAction === HistoryAction.Push) {\n init.history.push(location, location.state);\n } else if (pendingAction === HistoryAction.Replace) {\n init.history.replace(location, location.state);\n }\n\n let viewTransitionOpts: ViewTransitionOpts | undefined;\n\n // On POP, enable transitions if they were enabled on the original navigation\n if (pendingAction === HistoryAction.Pop) {\n // Forward takes precedence so they behave like the original navigation\n let priorPaths = appliedViewTransitions.get(state.location.pathname);\n if (priorPaths && priorPaths.has(location.pathname)) {\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location,\n };\n } else if (appliedViewTransitions.has(location.pathname)) {\n // If we don't have a previous forward nav, assume we're popping back to\n // the new location and enable if that location previously enabled\n viewTransitionOpts = {\n currentLocation: location,\n nextLocation: state.location,\n };\n }\n } else if (pendingViewTransitionEnabled) {\n // Store the applied transition on PUSH/REPLACE\n let toPaths = appliedViewTransitions.get(state.location.pathname);\n if (toPaths) {\n toPaths.add(location.pathname);\n } else {\n toPaths = new Set([location.pathname]);\n appliedViewTransitions.set(state.location.pathname, toPaths);\n }\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location,\n };\n }\n\n updateState(\n {\n ...newState, // matches, errors, fetchers go through as-is\n actionData,\n loaderData,\n historyAction: pendingAction,\n location,\n initialized: true,\n navigation: IDLE_NAVIGATION,\n revalidation: \"idle\",\n restoreScrollPosition: getSavedScrollPosition(\n location,\n newState.matches || state.matches\n ),\n preventScrollReset,\n blockers,\n },\n {\n viewTransitionOpts,\n flushSync: flushSync === true,\n }\n );\n\n // Reset stateful navigation vars\n pendingAction = HistoryAction.Pop;\n pendingPreventScrollReset = false;\n pendingViewTransitionEnabled = false;\n isUninterruptedRevalidation = false;\n isRevalidationRequired = false;\n cancelledDeferredRoutes = [];\n cancelledFetcherLoads = [];\n }\n\n // Trigger a navigation event, which can either be a numerical POP or a PUSH\n // replace with an optional submission\n async function navigate(\n to: number | To | null,\n opts?: RouterNavigateOptions\n ): Promise {\n if (typeof to === \"number\") {\n init.history.go(to);\n return;\n }\n\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n future.v7_prependBasename,\n to,\n future.v7_relativeSplatPath,\n opts?.fromRouteId,\n opts?.relative\n );\n let { path, submission, error } = normalizeNavigateOptions(\n future.v7_normalizeFormMethod,\n false,\n normalizedPath,\n opts\n );\n\n let currentLocation = state.location;\n let nextLocation = createLocation(state.location, path, opts && opts.state);\n\n // When using navigate as a PUSH/REPLACE we aren't reading an already-encoded\n // URL from window.location, so we need to encode it here so the behavior\n // remains the same as POP and non-data-router usages. new URL() does all\n // the same encoding we'd get from a history.pushState/window.location read\n // without having to touch history\n nextLocation = {\n ...nextLocation,\n ...init.history.encodeLocation(nextLocation),\n };\n\n let userReplace = opts && opts.replace != null ? opts.replace : undefined;\n\n let historyAction = HistoryAction.Push;\n\n if (userReplace === true) {\n historyAction = HistoryAction.Replace;\n } else if (userReplace === false) {\n // no-op\n } else if (\n submission != null &&\n isMutationMethod(submission.formMethod) &&\n submission.formAction === state.location.pathname + state.location.search\n ) {\n // By default on submissions to the current location we REPLACE so that\n // users don't have to double-click the back button to get to the prior\n // location. If the user redirects to a different location from the\n // action/loader this will be ignored and the redirect will be a PUSH\n historyAction = HistoryAction.Replace;\n }\n\n let preventScrollReset =\n opts && \"preventScrollReset\" in opts\n ? opts.preventScrollReset === true\n : undefined;\n\n let flushSync = (opts && opts.unstable_flushSync) === true;\n\n let blockerKey = shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n });\n\n if (blockerKey) {\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location: nextLocation,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location: nextLocation,\n });\n // Send the same navigation through\n navigate(to, opts);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey!, IDLE_BLOCKER);\n updateState({ blockers });\n },\n });\n return;\n }\n\n return await startNavigation(historyAction, nextLocation, {\n submission,\n // Send through the formData serialization error if we have one so we can\n // render at the right error boundary after we match routes\n pendingError: error,\n preventScrollReset,\n replace: opts && opts.replace,\n enableViewTransition: opts && opts.unstable_viewTransition,\n flushSync,\n });\n }\n\n // Revalidate all current loaders. If a navigation is in progress or if this\n // is interrupted by a navigation, allow this to \"succeed\" by calling all\n // loaders during the next loader round\n function revalidate() {\n interruptActiveLoads();\n updateState({ revalidation: \"loading\" });\n\n // If we're currently submitting an action, we don't need to start a new\n // navigation, we'll just let the follow up loader execution call all loaders\n if (state.navigation.state === \"submitting\") {\n return;\n }\n\n // If we're currently in an idle state, start a new navigation for the current\n // action/location and mark it as uninterrupted, which will skip the history\n // update in completeNavigation\n if (state.navigation.state === \"idle\") {\n startNavigation(state.historyAction, state.location, {\n startUninterruptedRevalidation: true,\n });\n return;\n }\n\n // Otherwise, if we're currently in a loading state, just start a new\n // navigation to the navigation.location but do not trigger an uninterrupted\n // revalidation so that history correctly updates once the navigation completes\n startNavigation(\n pendingAction || state.historyAction,\n state.navigation.location,\n { overrideNavigation: state.navigation }\n );\n }\n\n // Start a navigation to the given action/location. Can optionally provide a\n // overrideNavigation which will override the normalLoad in the case of a redirect\n // navigation\n async function startNavigation(\n historyAction: HistoryAction,\n location: Location,\n opts?: {\n initialHydration?: boolean;\n submission?: Submission;\n fetcherSubmission?: Submission;\n overrideNavigation?: Navigation;\n pendingError?: ErrorResponseImpl;\n startUninterruptedRevalidation?: boolean;\n preventScrollReset?: boolean;\n replace?: boolean;\n enableViewTransition?: boolean;\n flushSync?: boolean;\n }\n ): Promise {\n // Abort any in-progress navigations and start a new one. Unset any ongoing\n // uninterrupted revalidations unless told otherwise, since we want this\n // new navigation to update history normally\n pendingNavigationController && pendingNavigationController.abort();\n pendingNavigationController = null;\n pendingAction = historyAction;\n isUninterruptedRevalidation =\n (opts && opts.startUninterruptedRevalidation) === true;\n\n // Save the current scroll position every time we start a new navigation,\n // and track whether we should reset scroll on completion\n saveScrollPosition(state.location, state.matches);\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n pendingViewTransitionEnabled = (opts && opts.enableViewTransition) === true;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let loadingNavigation = opts && opts.overrideNavigation;\n let matches = matchRoutes(routesToUse, location, basename);\n let flushSync = (opts && opts.flushSync) === true;\n\n // Short circuit with a 404 on the root error boundary if we match nothing\n if (!matches) {\n let error = getInternalRouterError(404, { pathname: location.pathname });\n let { matches: notFoundMatches, route } =\n getShortCircuitMatches(routesToUse);\n // Cancel all pending deferred on 404s since we don't keep any routes\n cancelActiveDeferreds();\n completeNavigation(\n location,\n {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error,\n },\n },\n { flushSync }\n );\n return;\n }\n\n // Short circuit if it's only a hash change and not a revalidation or\n // mutation submission.\n //\n // Ignore on initial page loads because since the initial load will always\n // be \"same hash\". For example, on /page#hash and submit a \n // which will default to a navigation to /page\n if (\n state.initialized &&\n !isRevalidationRequired &&\n isHashChangeOnly(state.location, location) &&\n !(opts && opts.submission && isMutationMethod(opts.submission.formMethod))\n ) {\n completeNavigation(location, { matches }, { flushSync });\n return;\n }\n\n // Create a controller/Request for this navigation\n pendingNavigationController = new AbortController();\n let request = createClientSideRequest(\n init.history,\n location,\n pendingNavigationController.signal,\n opts && opts.submission\n );\n let 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 { replace: opts.replace, flushSync }\n );\n\n if (actionResult.shortCircuited) {\n return;\n }\n\n pendingActionResult = actionResult.pendingActionResult;\n loadingNavigation = getLoadingNavigation(location, opts.submission);\n flushSync = 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 { shortCircuited, loaderData, errors } = await handleLoaders(\n request,\n location,\n matches,\n loadingNavigation,\n opts && opts.submission,\n opts && opts.fetcherSubmission,\n opts && opts.replace,\n opts && opts.initialHydration === true,\n flushSync,\n 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,\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 opts: { replace?: boolean; flushSync?: boolean } = {}\n ): Promise {\n interruptActiveLoads();\n\n // Put us in a submitting state\n let navigation = getSubmittingNavigation(location, submission);\n updateState({ navigation }, { flushSync: opts.flushSync === true });\n\n // Call our action and get the result\n let result: DataResult;\n let actionMatch = getTargetMatch(matches, location);\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n result = {\n type: ResultType.error,\n error: getInternalRouterError(405, {\n method: request.method,\n pathname: location.pathname,\n routeId: actionMatch.route.id,\n }),\n };\n } else {\n 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 are REPLACE navigations, but if the\n // action threw an error that'll be rendered in an errorElement, we fall\n // back to PUSH so that the user can use the back button to get back to\n // the pre-submission form location to try again\n if ((opts && opts.replace) !== true) {\n pendingAction = HistoryAction.Push;\n }\n\n return {\n pendingActionResult: [boundaryMatch.route.id, result],\n };\n }\n\n return {\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 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 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.unstable_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 this is an uninterrupted revalidation, we remain in our current idle\n // state. If not, we need to switch to our loading state and load data,\n // preserving any new action data or existing action data (in the case of\n // a revalidation interrupting an actionReload)\n // If we have partialHydration enabled, then don't update the state for the\n // initial data load since it's not a \"navigation\"\n if (\n !isUninterruptedRevalidation &&\n (!future.v7_partialHydration || !initialHydration)\n ) {\n revalidatingFetchers.forEach((rf) => {\n let fetcher = state.fetchers.get(rf.key);\n let revalidatingFetcher = getLoadingFetcher(\n undefined,\n fetcher ? fetcher.data : undefined\n );\n state.fetchers.set(rf.key, revalidatingFetcher);\n });\n\n let actionData: 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 actionData = {\n [pendingActionResult[0]]: pendingActionResult[1].data as any,\n };\n } else if (state.actionData) {\n if (Object.keys(state.actionData).length === 0) {\n actionData = null;\n } else {\n actionData = state.actionData;\n }\n }\n\n updateState(\n {\n navigation: loadingNavigation,\n ...(actionData !== undefined ? { actionData } : {}),\n ...(revalidatingFetchers.length > 0\n ? { fetchers: new Map(state.fetchers) }\n : {}),\n },\n {\n flushSync,\n }\n );\n }\n\n revalidatingFetchers.forEach((rf) => {\n if (fetchControllers.has(rf.key)) {\n abortFetcher(rf.key);\n }\n if (rf.controller) {\n // Fetchers use an independent AbortController so that aborting a fetcher\n // (via deleteFetcher) does not abort the triggering navigation that\n // triggered the revalidation\n fetchControllers.set(rf.key, rf.controller);\n }\n });\n\n // Proxy navigation abort through to revalidation fetchers\n let abortPendingFetchRevalidations = () =>\n revalidatingFetchers.forEach((f) => abortFetcher(f.key));\n if (pendingNavigationController) {\n pendingNavigationController.signal.addEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n }\n\n let { 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 loaderData,\n errors,\n ...(shouldUpdateFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n };\n }\n\n // Trigger a fetcher load/submit for the given fetcher key\n function fetch(\n key: string,\n routeId: string,\n href: string | null,\n opts?: RouterFetchOptions\n ) {\n if (isServer) {\n throw new Error(\n \"router.fetch() was called during the server render, but it shouldn't be. \" +\n \"You are likely calling a useFetcher() method in the body of your component. \" +\n \"Try moving it to a useEffect or a callback.\"\n );\n }\n\n if (fetchControllers.has(key)) abortFetcher(key);\n let flushSync = (opts && opts.unstable_flushSync) === true;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n future.v7_prependBasename,\n href,\n future.v7_relativeSplatPath,\n routeId,\n opts?.relative\n );\n let matches = matchRoutes(routesToUse, normalizedPath, basename);\n\n if (!matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: normalizedPath }),\n { flushSync }\n );\n return;\n }\n\n let { path, submission, error } = normalizeNavigateOptions(\n future.v7_normalizeFormMethod,\n true,\n normalizedPath,\n opts\n );\n\n if (error) {\n setFetcherError(key, routeId, error, { flushSync });\n return;\n }\n\n let match = getTargetMatch(matches, path);\n\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n if (submission && isMutationMethod(submission.formMethod)) {\n handleFetcherAction(\n key,\n routeId,\n path,\n match,\n matches,\n flushSync,\n submission\n );\n return;\n }\n\n // Store off the match so we can call it's shouldRevalidate on subsequent\n // revalidations\n fetchLoadMatches.set(key, { routeId, path });\n handleFetcherLoader(\n key,\n routeId,\n path,\n match,\n matches,\n flushSync,\n submission\n );\n }\n\n // Call the action for the matched fetcher.submit(), and then handle redirects,\n // errors, and revalidation\n async function handleFetcherAction(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n requestMatches: AgnosticDataRouteMatch[],\n flushSync: boolean,\n submission: Submission\n ) {\n interruptActiveLoads();\n fetchLoadMatches.delete(key);\n\n if (!match.route.action && !match.route.lazy) {\n let error = getInternalRouterError(405, {\n method: submission.formMethod,\n pathname: path,\n routeId: routeId,\n });\n setFetcherError(key, routeId, error, { flushSync });\n return;\n }\n\n // Put this fetcher into it's submitting state\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(key, getSubmittingFetcher(submission, existingFetcher), {\n flushSync,\n });\n\n // Call the action for the fetcher\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal,\n submission\n );\n fetchControllers.set(key, abortController);\n\n let originatingLoadId = incrementingLoadId;\n let 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.unstable_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 flushSync: boolean,\n submission?: Submission\n ) {\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(\n key,\n getLoadingFetcher(\n submission,\n existingFetcher ? existingFetcher.data : undefined\n ),\n { flushSync }\n );\n\n // Call the loader for this fetcher route match\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal\n );\n fetchControllers.set(key, abortController);\n\n let originatingLoadId = incrementingLoadId;\n let 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 ? HistoryAction.Replace : HistoryAction.Push;\n\n // Use the incoming submission if provided, fallback on the active one in\n // state.navigation\n let { formMethod, formAction, formEncType } = state.navigation;\n if (\n !submission &&\n !fetcherSubmission &&\n formMethod &&\n formAction &&\n formEncType\n ) {\n submission = getSubmissionFromNavigation(state.navigation);\n }\n\n // If this was a 307/308 submission we want to preserve the HTTP method and\n // re-submit the GET/POST/PUT/PATCH/DELETE as a submission navigation to the\n // redirected location\n let activeSubmission = submission || fetcherSubmission;\n if (\n redirectPreserveMethodStatusCodes.has(redirect.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.push(key);\n abortFetcher(key);\n }\n });\n }\n\n function updateFetcherState(\n key: string,\n fetcher: Fetcher,\n opts: { flushSync?: boolean } = {}\n ) {\n state.fetchers.set(key, fetcher);\n updateState(\n { fetchers: new Map(state.fetchers) },\n { flushSync: (opts && opts.flushSync) === true }\n );\n }\n\n function setFetcherError(\n key: string,\n routeId: string,\n error: any,\n opts: { flushSync?: boolean } = {}\n ) {\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n deleteFetcher(key);\n updateState(\n {\n errors: {\n [boundaryMatch.route.id]: error,\n },\n fetchers: new Map(state.fetchers),\n },\n { flushSync: (opts && opts.flushSync) === true }\n );\n }\n\n function getFetcher(key: string): Fetcher {\n if (future.v7_fetcherPersist) {\n activeFetchers.set(key, (activeFetchers.get(key) || 0) + 1);\n // If this fetcher was previously marked for deletion, unmark it since we\n // have a new instance\n if (deletedFetchers.has(key)) {\n deletedFetchers.delete(key);\n }\n }\n return state.fetchers.get(key) || IDLE_FETCHER;\n }\n\n function deleteFetcher(key: string): void {\n let fetcher = state.fetchers.get(key);\n // Don't abort the controller if this is a deletion of a fetcher.submit()\n // in it's loading phase since - we don't want to abort the corresponding\n // revalidation and want them to complete and land\n if (\n fetchControllers.has(key) &&\n !(fetcher && fetcher.state === \"loading\" && fetchReloadIds.has(key))\n ) {\n abortFetcher(key);\n }\n fetchLoadMatches.delete(key);\n fetchReloadIds.delete(key);\n fetchRedirectIds.delete(key);\n deletedFetchers.delete(key);\n state.fetchers.delete(key);\n }\n\n function deleteFetcherAndUpdateState(key: string): void {\n if (future.v7_fetcherPersist) {\n let count = (activeFetchers.get(key) || 0) - 1;\n if (count <= 0) {\n activeFetchers.delete(key);\n deletedFetchers.add(key);\n } else {\n activeFetchers.set(key, count);\n }\n } else {\n deleteFetcher(key);\n }\n updateState({ fetchers: new Map(state.fetchers) });\n }\n\n function abortFetcher(key: string) {\n let controller = fetchControllers.get(key);\n invariant(controller, `Expected fetch controller: ${key}`);\n controller.abort();\n fetchControllers.delete(key);\n }\n\n function markFetchersDone(keys: string[]) {\n for (let key of keys) {\n let fetcher = getFetcher(key);\n let doneFetcher = getDoneFetcher(fetcher.data);\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n function markFetchRedirectsDone(): boolean {\n let doneKeys = [];\n let updatedFetchers = false;\n for (let key of fetchRedirectIds) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n fetchRedirectIds.delete(key);\n doneKeys.push(key);\n updatedFetchers = true;\n }\n }\n markFetchersDone(doneKeys);\n return updatedFetchers;\n }\n\n function abortStaleFetchLoads(landedId: number): boolean {\n let yeetedKeys = [];\n for (let [key, id] of fetchReloadIds) {\n if (id < landedId) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n abortFetcher(key);\n fetchReloadIds.delete(key);\n yeetedKeys.push(key);\n }\n }\n }\n markFetchersDone(yeetedKeys);\n return yeetedKeys.length > 0;\n }\n\n function getBlocker(key: string, fn: BlockerFunction) {\n let blocker: Blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n if (blockerFunctions.get(key) !== fn) {\n blockerFunctions.set(key, fn);\n }\n\n return blocker;\n }\n\n function deleteBlocker(key: string) {\n state.blockers.delete(key);\n blockerFunctions.delete(key);\n }\n\n // Utility function to update blockers, ensuring valid state transitions\n function updateBlocker(key: string, newBlocker: Blocker) {\n let blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n // Poor mans state machine :)\n // https://mermaid.live/edit#pako:eNqVkc9OwzAMxl8l8nnjAYrEtDIOHEBIgwvKJTReGy3_lDpIqO27k6awMG0XcrLlnz87nwdonESogKXXBuE79rq75XZO3-yHds0RJVuv70YrPlUrCEe2HfrORS3rubqZfuhtpg5C9wk5tZ4VKcRUq88q9Z8RS0-48cE1iHJkL0ugbHuFLus9L6spZy8nX9MP2CNdomVaposqu3fGayT8T8-jJQwhepo_UtpgBQaDEUom04dZhAN1aJBDlUKJBxE1ceB2Smj0Mln-IBW5AFU2dwUiktt_2Qaq2dBfaKdEup85UV7Yd-dKjlnkabl2Pvr0DTkTreM\n invariant(\n (blocker.state === \"unblocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"proceeding\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"unblocked\") ||\n (blocker.state === \"proceeding\" && newBlocker.state === \"unblocked\"),\n `Invalid blocker state transition: ${blocker.state} -> ${newBlocker.state}`\n );\n\n let blockers = new Map(state.blockers);\n blockers.set(key, newBlocker);\n updateState({ blockers });\n }\n\n function shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n }: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n }): string | undefined {\n if (blockerFunctions.size === 0) {\n return;\n }\n\n // We ony support a single active blocker at the moment since we don't have\n // any compelling use cases for multi-blocker yet\n if (blockerFunctions.size > 1) {\n warning(false, \"A router only supports one blocker at a time\");\n }\n\n let entries = Array.from(blockerFunctions.entries());\n let [blockerKey, blockerFunction] = entries[entries.length - 1];\n let blocker = state.blockers.get(blockerKey);\n\n if (blocker && blocker.state === \"proceeding\") {\n // If the blocker is currently proceeding, we don't need to re-check\n // it and can let this navigation continue\n return;\n }\n\n // At this point, we know we're unblocked/blocked so we need to check the\n // user-provided blocker function\n if (blockerFunction({ currentLocation, nextLocation, historyAction })) {\n return blockerKey;\n }\n }\n\n function cancelActiveDeferreds(\n predicate?: (routeId: string) => boolean\n ): string[] {\n let cancelledRouteIds: string[] = [];\n activeDeferreds.forEach((dfd, routeId) => {\n if (!predicate || predicate(routeId)) {\n // Cancel the deferred - but do not remove from activeDeferreds here -\n // we rely on the subscribers to do that so our tests can assert proper\n // cleanup via _internalActiveDeferreds\n dfd.cancel();\n cancelledRouteIds.push(routeId);\n activeDeferreds.delete(routeId);\n }\n });\n return cancelledRouteIds;\n }\n\n // Opt in to capturing and reporting scroll positions during navigations,\n // used by the component\n function enableScrollRestoration(\n positions: Record,\n getPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ) {\n savedScrollPositions = positions;\n getScrollPosition = getPosition;\n getScrollRestorationKey = getKey || null;\n\n // Perform initial hydration scroll restoration, since we miss the boat on\n // the initial updateState() because we've not yet rendered \n // and therefore have no savedScrollPositions available\n if (!initialScrollRestored && state.navigation === IDLE_NAVIGATION) {\n initialScrollRestored = true;\n let y = getSavedScrollPosition(state.location, state.matches);\n if (y != null) {\n updateState({ restoreScrollPosition: y });\n }\n }\n\n return () => {\n savedScrollPositions = null;\n getScrollPosition = null;\n getScrollRestorationKey = null;\n };\n }\n\n function getScrollKey(location: Location, matches: AgnosticDataRouteMatch[]) {\n if (getScrollRestorationKey) {\n let key = getScrollRestorationKey(\n location,\n matches.map((m) => convertRouteMatchToUiMatch(m, state.loaderData))\n );\n return key || location.key;\n }\n return location.key;\n }\n\n function saveScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): void {\n if (savedScrollPositions && getScrollPosition) {\n let key = getScrollKey(location, matches);\n savedScrollPositions[key] = getScrollPosition();\n }\n }\n\n function getSavedScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): number | null {\n if (savedScrollPositions) {\n let key = getScrollKey(location, matches);\n let y = savedScrollPositions[key];\n if (typeof y === \"number\") {\n return y;\n }\n }\n return null;\n }\n\n function _internalSetRoutes(newRoutes: AgnosticDataRouteObject[]) {\n manifest = {};\n inFlightDataRoutes = convertRoutesToDataRoutes(\n newRoutes,\n mapRouteProperties,\n undefined,\n manifest\n );\n }\n\n router = {\n get basename() {\n return basename;\n },\n get future() {\n return future;\n },\n get state() {\n return state;\n },\n get routes() {\n return dataRoutes;\n },\n get window() {\n return routerWindow;\n },\n initialize,\n subscribe,\n enableScrollRestoration,\n navigate,\n fetch,\n revalidate,\n // Passthrough to history-aware createHref used by useHref so we get proper\n // hash-aware URLs in DOM paths\n createHref: (to: To) => init.history.createHref(to),\n encodeLocation: (to: To) => init.history.encodeLocation(to),\n getFetcher,\n deleteFetcher: deleteFetcherAndUpdateState,\n dispose,\n getBlocker,\n deleteBlocker,\n _internalFetchControllers: fetchControllers,\n _internalActiveDeferreds: activeDeferreds,\n // TODO: Remove setRoutes, it's temporary to avoid dealing with\n // updating the tree while validating the update algorithm.\n _internalSetRoutes,\n };\n\n return router;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createStaticHandler\n////////////////////////////////////////////////////////////////////////////////\n\nexport const UNSAFE_DEFERRED_SYMBOL = Symbol(\"deferred\");\n\n/**\n * Future flags to toggle new feature behavior\n */\nexport interface StaticHandlerFutureConfig {\n v7_relativeSplatPath: boolean;\n v7_throwAbortReason: boolean;\n}\n\nexport interface CreateStaticHandlerOptions {\n basename?: string;\n /**\n * @deprecated Use `mapRouteProperties` instead\n */\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n mapRouteProperties?: MapRoutePropertiesFunction;\n future?: Partial;\n}\n\nexport function createStaticHandler(\n routes: AgnosticRouteObject[],\n opts?: CreateStaticHandlerOptions\n): StaticHandler {\n invariant(\n routes.length > 0,\n \"You must provide a non-empty routes array to createStaticHandler\"\n );\n\n let manifest: RouteManifest = {};\n let basename = (opts ? opts.basename : null) || \"/\";\n let mapRouteProperties: MapRoutePropertiesFunction;\n if (opts?.mapRouteProperties) {\n mapRouteProperties = opts.mapRouteProperties;\n } else if (opts?.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = opts.detectErrorBoundary;\n mapRouteProperties = (route) => ({\n hasErrorBoundary: detectErrorBoundary(route),\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n // Config driven behavior flags\n let future: StaticHandlerFutureConfig = {\n v7_relativeSplatPath: false,\n v7_throwAbortReason: false,\n ...(opts ? opts.future : null),\n };\n\n let dataRoutes = convertRoutesToDataRoutes(\n routes,\n mapRouteProperties,\n undefined,\n manifest\n );\n\n /**\n * The query() method is intended for document requests, in which we want to\n * call an optional action and potentially multiple loaders for all nested\n * routes. It returns a StaticHandlerContext object, which is very similar\n * to the router state (location, loaderData, actionData, errors, etc.) and\n * also adds SSR-specific information such as the statusCode and headers\n * from action/loaders Responses.\n *\n * It _should_ never throw and should report all errors through the\n * returned context.errors object, properly associating errors to their error\n * boundary. Additionally, it tracks _deepestRenderedBoundaryId which can be\n * used to emulate React error boundaries during SSr by performing a second\n * pass only down to the boundaryId.\n *\n * The one exception where we do not return a StaticHandlerContext is when a\n * redirect response is returned or thrown from any action/loader. We\n * propagate that out and return the raw Response so the HTTP server can\n * return it directly.\n *\n * - `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: string[],\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 unstable_actionStatus: 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.includes(key)) {\n // Always revalidate if the fetcher was cancelled\n shouldRevalidate = true;\n } else if (\n fetcher &&\n fetcher.state !== \"idle\" &&\n fetcher.data === undefined\n ) {\n // If the fetcher hasn't ever completed loading yet, then this isn't a\n // revalidation, it would just be a brand new load if an explicit\n // revalidation is required\n shouldRevalidate = isRevalidationRequired;\n } else {\n // Otherwise fall back on any user-defined shouldRevalidate, defaulting\n // to explicit revalidations only\n shouldRevalidate = shouldRevalidateLoader(fetcherMatch, {\n currentUrl,\n currentParams: state.matches[state.matches.length - 1].params,\n nextUrl,\n nextParams: matches[matches.length - 1].params,\n ...submission,\n actionResult,\n unstable_actionStatus: 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 * 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;\n if (handlerOverride) {\n handlerPromise = handlerOverride((ctx: unknown) => actualHandler(ctx));\n } else {\n handlerPromise = (async () => {\n try {\n let val = await actualHandler();\n return { type: \"data\", result: val };\n } catch (e) {\n return { type: \"error\", result: e };\n }\n })();\n }\n\n return Promise.race([handlerPromise, abortPromise]);\n };\n\n try {\n let handler = match.route[type];\n\n if (match.route.lazy) {\n if (handler) {\n // Run statically defined handler in parallel with lazy()\n let handlerError;\n let [value] = await Promise.all([\n // If the handler throws, don't let it immediately bubble out,\n // since we need to let the lazy() execution finish so we know if this\n // route has a boundary that can handle the error\n runHandler(handler).catch((e) => {\n handlerError = e;\n }),\n loadLazyRouteModule(match.route, mapRouteProperties, manifest),\n ]);\n if (handlerError !== undefined) {\n throw handlerError;\n }\n result = value!;\n } else {\n // Load lazy route module, then run any returned handler\n await loadLazyRouteModule(match.route, mapRouteProperties, manifest);\n\n handler = match.route[type];\n if (handler) {\n // Handler still runs even if we got interrupted to maintain consistency\n // with un-abortable behavior of handler execution on non-lazy or\n // previously-lazy-loaded routes\n result = await runHandler(handler);\n } else if (type === \"action\") {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(405, {\n method: request.method,\n pathname,\n routeId: match.route.id,\n });\n } else {\n // lazy() route has no loader to run. Short circuit here so we don't\n // hit the invariant below that errors on returning undefined.\n return { type: ResultType.data, result: undefined };\n }\n }\n } else if (!handler) {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(404, {\n pathname,\n });\n } else {\n result = await runHandler(handler);\n }\n\n invariant(\n result.result !== undefined,\n `You defined ${type === \"action\" ? \"an action\" : \"a loader\"} for route ` +\n `\"${match.route.id}\" but didn't return anything from your \\`${type}\\` ` +\n `function. Please return a value or \\`null\\`.`\n );\n } catch (e) {\n // We should already be catching and converting normal handler executions to\n // HandlerResults and returning them, so anything that throws here is an\n // unexpected error we still need to wrap\n return { type: ResultType.error, result: e };\n } finally {\n if (onReject) {\n request.signal.removeEventListener(\"abort\", onReject);\n }\n }\n\n return result;\n}\n\nasync function convertHandlerResultToDataResult(\n handlerResult: HandlerResult\n): Promise {\n let { result, type, status } = handlerResult;\n\n if (isResponse(result)) {\n let data: any;\n\n try {\n let contentType = result.headers.get(\"Content-Type\");\n // Check between word boundaries instead of startsWith() due to the last\n // paragraph of https://httpwg.org/specs/rfc9110.html#field.content-type\n if (contentType && /\\bapplication\\/json\\b/.test(contentType)) {\n if (result.body == null) {\n data = null;\n } else {\n data = await result.json();\n }\n } else {\n data = await result.text();\n }\n } catch (e) {\n return { type: ResultType.error, error: e };\n }\n\n if (type === ResultType.error) {\n return {\n type: ResultType.error,\n error: new ErrorResponseImpl(result.status, result.statusText, data),\n statusCode: result.status,\n headers: result.headers,\n };\n }\n\n return {\n type: ResultType.data,\n data,\n statusCode: result.status,\n headers: result.headers,\n };\n }\n\n if (type === ResultType.error) {\n return {\n type: ResultType.error,\n error: result,\n statusCode: isRouteErrorResponse(result) ? result.status : status,\n };\n }\n\n if (isDeferredData(result)) {\n return {\n type: ResultType.deferred,\n deferredData: result,\n statusCode: result.init?.status,\n headers: result.init?.headers && new Headers(result.init.headers),\n };\n }\n\n return { type: ResultType.data, data: result, statusCode: status };\n}\n\n// Support relative routing in internal redirects\nfunction normalizeRelativeRoutingRedirectResponse(\n response: Response,\n request: Request,\n routeId: string,\n matches: AgnosticDataRouteMatch[],\n basename: string,\n v7_relativeSplatPath: boolean\n) {\n let location = response.headers.get(\"Location\");\n invariant(\n location,\n \"Redirects returned/thrown from loaders/actions must have a Location header\"\n );\n\n if (!ABSOLUTE_URL_REGEX.test(location)) {\n let trimmedMatches = matches.slice(\n 0,\n matches.findIndex((m) => m.route.id === routeId) + 1\n );\n location = normalizeTo(\n new URL(request.url),\n trimmedMatches,\n basename,\n true,\n location,\n v7_relativeSplatPath\n );\n response.headers.set(\"Location\", location);\n }\n\n return response;\n}\n\nfunction normalizeRedirectLocation(\n location: string,\n currentUrl: URL,\n basename: string\n): string {\n if (ABSOLUTE_URL_REGEX.test(location)) {\n // Strip off the protocol+origin for same-origin + same-basename absolute redirects\n let normalizedLocation = location;\n let url = normalizedLocation.startsWith(\"//\")\n ? new URL(currentUrl.protocol + normalizedLocation)\n : new URL(normalizedLocation);\n let isSameBasename = stripBasename(url.pathname, basename) != null;\n if (url.origin === currentUrl.origin && isSameBasename) {\n return url.pathname + url.search + url.hash;\n }\n }\n return location;\n}\n\n// Utility method for creating the Request instances for loaders/actions during\n// client-side navigations and fetches. During SSR we will always have a\n// Request instance from the static handler (query/queryRoute)\nfunction createClientSideRequest(\n history: History,\n location: string | Location,\n signal: AbortSignal,\n submission?: Submission\n): Request {\n let url = history.createURL(stripHashFromPath(location)).toString();\n let init: RequestInit = { signal };\n\n if (submission && isMutationMethod(submission.formMethod)) {\n let { formMethod, formEncType } = submission;\n // Didn't think we needed this but it turns out unlike other methods, patch\n // won't be properly normalized to uppercase and results in a 405 error.\n // See: https://fetch.spec.whatwg.org/#concept-method\n init.method = formMethod.toUpperCase();\n\n if (formEncType === \"application/json\") {\n init.headers = new Headers({ \"Content-Type\": formEncType });\n init.body = JSON.stringify(submission.json);\n } else if (formEncType === \"text/plain\") {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.text;\n } else if (\n formEncType === \"application/x-www-form-urlencoded\" &&\n submission.formData\n ) {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = convertFormDataToSearchParams(submission.formData);\n } else {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.formData;\n }\n }\n\n return new Request(url, init);\n}\n\nfunction convertFormDataToSearchParams(formData: FormData): URLSearchParams {\n let searchParams = new URLSearchParams();\n\n for (let [key, value] of formData.entries()) {\n // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#converting-an-entry-list-to-a-list-of-name-value-pairs\n searchParams.append(key, typeof value === \"string\" ? value : value.name);\n }\n\n return searchParams;\n}\n\nfunction convertSearchParamsToFormData(\n searchParams: URLSearchParams\n): FormData {\n let formData = new FormData();\n for (let [key, value] of searchParams.entries()) {\n formData.append(key, value);\n }\n return formData;\n}\n\nfunction processRouteLoaderData(\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n pendingActionResult: PendingActionResult | undefined,\n activeDeferreds: Map,\n skipLoaderErrorBubbling: boolean\n): {\n loaderData: RouterState[\"loaderData\"];\n errors: RouterState[\"errors\"] | null;\n statusCode: number;\n loaderHeaders: Record;\n} {\n // Fill in loaderData/errors from our loaders\n let loaderData: RouterState[\"loaderData\"] = {};\n let errors: RouterState[\"errors\"] | null = null;\n let statusCode: number | undefined;\n let foundError = false;\n let loaderHeaders: Record = {};\n let pendingError =\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? pendingActionResult[1].error\n : undefined;\n\n // Process loader results into state.loaderData/state.errors\n results.forEach((result, index) => {\n let id = matchesToLoad[index].route.id;\n invariant(\n !isRedirectResult(result),\n \"Cannot handle redirect results in processLoaderData\"\n );\n if (isErrorResult(result)) {\n let error = result.error;\n // If we have a pending action error, we report it at the highest-route\n // that throws a loader error, and then clear it out to indicate that\n // it was consumed\n if (pendingError !== undefined) {\n error = pendingError;\n pendingError = undefined;\n }\n\n errors = errors || {};\n\n if (skipLoaderErrorBubbling) {\n errors[id] = error;\n } else {\n // Look upwards from the matched route for the closest ancestor error\n // boundary, defaulting to the root match. Prefer higher error values\n // if lower errors bubble to the same boundary\n let boundaryMatch = findNearestBoundary(matches, id);\n if (errors[boundaryMatch.route.id] == null) {\n errors[boundaryMatch.route.id] = error;\n }\n }\n\n // Clear our any prior loaderData for the throwing route\n loaderData[id] = undefined;\n\n // Once we find our first (highest) error, we set the status code and\n // prevent deeper status codes from overriding\n if (!foundError) {\n foundError = true;\n statusCode = isRouteErrorResponse(result.error)\n ? result.error.status\n : 500;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n if (isDeferredResult(result)) {\n activeDeferreds.set(id, result.deferredData);\n loaderData[id] = result.deferredData.data;\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (\n result.statusCode != null &&\n result.statusCode !== 200 &&\n !foundError\n ) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n loaderData[id] = result.data;\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (result.statusCode && result.statusCode !== 200 && !foundError) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n }\n }\n });\n\n // If we didn't consume the pending action error (i.e., all loaders\n // resolved), then consume it here. Also clear out any loaderData for the\n // throwing route\n if (pendingError !== undefined && pendingActionResult) {\n errors = { [pendingActionResult[0]]: pendingError };\n loaderData[pendingActionResult[0]] = undefined;\n }\n\n return {\n loaderData,\n errors,\n statusCode: statusCode || 200,\n loaderHeaders,\n };\n}\n\nfunction processLoaderData(\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n pendingActionResult: PendingActionResult | undefined,\n revalidatingFetchers: RevalidatingFetcher[],\n fetcherResults: DataResult[],\n activeDeferreds: Map\n): {\n loaderData: RouterState[\"loaderData\"];\n errors?: RouterState[\"errors\"];\n} {\n let { loaderData, errors } = processRouteLoaderData(\n matches,\n matchesToLoad,\n results,\n pendingActionResult,\n activeDeferreds,\n false // This method is only called client side so we always want to bubble\n );\n\n // Process results from our revalidating fetchers\n for (let index = 0; index < revalidatingFetchers.length; index++) {\n let { key, match, controller } = revalidatingFetchers[index];\n invariant(\n fetcherResults !== undefined && fetcherResults[index] !== undefined,\n \"Did not find corresponding fetcher result\"\n );\n let result = fetcherResults[index];\n\n // Process fetcher non-redirect errors\n if (controller && controller.signal.aborted) {\n // Nothing to do for aborted fetchers\n continue;\n } else if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, match?.route.id);\n if (!(errors && errors[boundaryMatch.route.id])) {\n errors = {\n ...errors,\n [boundaryMatch.route.id]: result.error,\n };\n }\n state.fetchers.delete(key);\n } else if (isRedirectResult(result)) {\n // Should never get here, redirects should get processed above, but we\n // keep this to type narrow to a success result in the else\n invariant(false, \"Unhandled fetcher revalidation redirect\");\n } else if (isDeferredResult(result)) {\n // Should never get here, deferred data should be awaited for fetchers\n // in resolveDeferredResults\n invariant(false, \"Unhandled fetcher deferred data\");\n } else {\n let doneFetcher = getDoneFetcher(result.data);\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n return { loaderData, errors };\n}\n\nfunction mergeLoaderData(\n loaderData: RouteData,\n newLoaderData: RouteData,\n matches: AgnosticDataRouteMatch[],\n errors: RouteData | null | undefined\n): RouteData {\n let mergedLoaderData = { ...newLoaderData };\n for (let match of matches) {\n let id = match.route.id;\n if (newLoaderData.hasOwnProperty(id)) {\n if (newLoaderData[id] !== undefined) {\n mergedLoaderData[id] = newLoaderData[id];\n } else {\n // No-op - this is so we ignore existing data if we have a key in the\n // incoming object with an undefined value, which is how we unset a prior\n // loaderData if we encounter a loader error\n }\n } else if (loaderData[id] !== undefined && match.route.loader) {\n // Preserve existing keys not included in newLoaderData and where a loader\n // wasn't removed by HMR\n mergedLoaderData[id] = loaderData[id];\n }\n\n if (errors && errors.hasOwnProperty(id)) {\n // Don't keep any loader data below the boundary\n break;\n }\n }\n return mergedLoaderData;\n}\n\nfunction getActionDataForCommit(\n pendingActionResult: PendingActionResult | undefined\n) {\n if (!pendingActionResult) {\n return {};\n }\n return isErrorResult(pendingActionResult[1])\n ? {\n // Clear out prior actionData on errors\n actionData: {},\n }\n : {\n actionData: {\n [pendingActionResult[0]]: pendingActionResult[1].data,\n },\n };\n}\n\n// Find the nearest error boundary, looking upwards from the leaf route (or the\n// route specified by routeId) for the closest ancestor error boundary,\n// defaulting to the root match\nfunction findNearestBoundary(\n matches: AgnosticDataRouteMatch[],\n routeId?: string\n): AgnosticDataRouteMatch {\n let eligibleMatches = routeId\n ? matches.slice(0, matches.findIndex((m) => m.route.id === routeId) + 1)\n : [...matches];\n return (\n eligibleMatches.reverse().find((m) => m.route.hasErrorBoundary === true) ||\n matches[0]\n );\n}\n\nfunction getShortCircuitMatches(routes: AgnosticDataRouteObject[]): {\n matches: AgnosticDataRouteMatch[];\n route: AgnosticDataRouteObject;\n} {\n // Prefer a root layout route if present, otherwise shim in a route object\n let route =\n routes.length === 1\n ? routes[0]\n : routes.find((r) => r.index || !r.path || r.path === \"/\") || {\n id: `__shim-error-route__`,\n };\n\n return {\n matches: [\n {\n params: {},\n pathname: \"\",\n pathnameBase: \"\",\n route,\n },\n ],\n route,\n };\n}\n\nfunction getInternalRouterError(\n status: number,\n {\n pathname,\n routeId,\n method,\n type,\n }: {\n pathname?: string;\n routeId?: string;\n method?: string;\n type?: \"defer-action\" | \"invalid-body\";\n } = {}\n) {\n let statusText = \"Unknown Server Error\";\n let errorMessage = \"Unknown @remix-run/router error\";\n\n if (status === 400) {\n statusText = \"Bad Request\";\n if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method} request to \"${pathname}\" but ` +\n `did not provide a \\`loader\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (type === \"defer-action\") {\n errorMessage = \"defer() is not supported in actions\";\n } else if (type === \"invalid-body\") {\n errorMessage = \"Unable to encode submission body\";\n }\n } else if (status === 403) {\n statusText = \"Forbidden\";\n errorMessage = `Route \"${routeId}\" does not match URL \"${pathname}\"`;\n } else if (status === 404) {\n statusText = \"Not Found\";\n errorMessage = `No route matches URL \"${pathname}\"`;\n } else if (status === 405) {\n statusText = \"Method Not Allowed\";\n if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method.toUpperCase()} request to \"${pathname}\" but ` +\n `did not provide an \\`action\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (method) {\n errorMessage = `Invalid request method \"${method.toUpperCase()}\"`;\n }\n }\n\n return new ErrorResponseImpl(\n status || 500,\n statusText,\n new Error(errorMessage),\n true\n );\n}\n\n// Find any returned redirect errors, starting from the lowest match\nfunction findRedirect(\n results: DataResult[]\n): { result: RedirectResult; idx: number } | undefined {\n for (let i = results.length - 1; i >= 0; i--) {\n let result = results[i];\n if (isRedirectResult(result)) {\n return { result, idx: i };\n }\n }\n}\n\nfunction stripHashFromPath(path: To) {\n let parsedPath = typeof path === \"string\" ? parsePath(path) : path;\n return createPath({ ...parsedPath, hash: \"\" });\n}\n\nfunction isHashChangeOnly(a: Location, b: Location): boolean {\n if (a.pathname !== b.pathname || a.search !== b.search) {\n return false;\n }\n\n if (a.hash === \"\") {\n // /page -> /page#hash\n return b.hash !== \"\";\n } else if (a.hash === b.hash) {\n // /page#hash -> /page#hash\n return true;\n } else if (b.hash !== \"\") {\n // /page#hash -> /page#other\n return true;\n }\n\n // If the hash is removed the browser will re-perform a request to the server\n // /page#hash -> /page\n return false;\n}\n\nfunction isHandlerResult(result: unknown): result is HandlerResult {\n return (\n result != null &&\n typeof result === \"object\" &&\n \"type\" in result &&\n \"result\" in result &&\n (result.type === ResultType.data || result.type === ResultType.error)\n );\n}\n\nfunction isRedirectHandlerResult(result: HandlerResult) {\n return (\n isResponse(result.result) && redirectStatusCodes.has(result.result.status)\n );\n}\n\nfunction isDeferredResult(result: DataResult): result is DeferredResult {\n return result.type === ResultType.deferred;\n}\n\nfunction isErrorResult(result: DataResult): result is ErrorResult {\n return result.type === ResultType.error;\n}\n\nfunction isRedirectResult(result?: DataResult): result is RedirectResult {\n return (result && result.type) === ResultType.redirect;\n}\n\nexport function isDeferredData(value: any): value is DeferredData {\n let deferred: DeferredData = value;\n return (\n deferred &&\n typeof deferred === \"object\" &&\n typeof deferred.data === \"object\" &&\n typeof deferred.subscribe === \"function\" &&\n typeof deferred.cancel === \"function\" &&\n typeof deferred.resolveData === \"function\"\n );\n}\n\nfunction isResponse(value: any): value is Response {\n return (\n value != null &&\n typeof value.status === \"number\" &&\n typeof value.statusText === \"string\" &&\n typeof value.headers === \"object\" &&\n typeof value.body !== \"undefined\"\n );\n}\n\nfunction isRedirectResponse(result: any): result is Response {\n if (!isResponse(result)) {\n return false;\n }\n\n let status = result.status;\n let location = result.headers.get(\"Location\");\n return status >= 300 && status <= 399 && location != null;\n}\n\nfunction isValidMethod(method: string): method is FormMethod | V7_FormMethod {\n return validRequestMethods.has(method.toLowerCase() as FormMethod);\n}\n\nfunction isMutationMethod(\n method: string\n): method is MutationFormMethod | V7_MutationFormMethod {\n return validMutationMethods.has(method.toLowerCase() as MutationFormMethod);\n}\n\nasync function resolveDeferredResults(\n currentMatches: AgnosticDataRouteMatch[],\n matchesToLoad: (AgnosticDataRouteMatch | null)[],\n results: DataResult[],\n signals: (AbortSignal | null)[],\n isFetcher: boolean,\n currentLoaderData?: RouteData\n) {\n for (let index = 0; index < results.length; index++) {\n let result = results[index];\n let match = matchesToLoad[index];\n // If we don't have a match, then we can have a deferred result to do\n // anything with. This is for revalidating fetchers where the route was\n // removed during HMR\n if (!match) {\n continue;\n }\n\n let currentMatch = currentMatches.find(\n (m) => m.route.id === match!.route.id\n );\n let isRevalidatingLoader =\n currentMatch != null &&\n !isNewRouteInstance(currentMatch, match) &&\n (currentLoaderData && currentLoaderData[match.route.id]) !== undefined;\n\n if (isDeferredResult(result) && (isFetcher || isRevalidatingLoader)) {\n // Note: we do not have to touch activeDeferreds here since we race them\n // against the signal in resolveDeferredData and they'll get aborted\n // there if needed\n let signal = signals[index];\n invariant(\n signal,\n \"Expected an AbortSignal for revalidating fetcher deferred result\"\n );\n await resolveDeferredData(result, signal, isFetcher).then((result) => {\n if (result) {\n results[index] = result || results[index];\n }\n });\n }\n }\n}\n\nasync function resolveDeferredData(\n result: DeferredResult,\n signal: AbortSignal,\n unwrap = false\n): Promise {\n let aborted = await result.deferredData.resolveData(signal);\n if (aborted) {\n return;\n }\n\n if (unwrap) {\n try {\n return {\n type: ResultType.data,\n data: result.deferredData.unwrappedData,\n };\n } catch (e) {\n // Handle any TrackedPromise._error values encountered while unwrapping\n return {\n type: ResultType.error,\n error: e,\n };\n }\n }\n\n return {\n type: ResultType.data,\n data: result.deferredData.data,\n };\n}\n\nfunction hasNakedIndexQuery(search: string): boolean {\n return new URLSearchParams(search).getAll(\"index\").some((v) => v === \"\");\n}\n\nfunction getTargetMatch(\n matches: AgnosticDataRouteMatch[],\n location: Location | string\n) {\n let search =\n typeof location === \"string\" ? parsePath(location).search : location.search;\n if (\n matches[matches.length - 1].route.index &&\n hasNakedIndexQuery(search || \"\")\n ) {\n // Return the leaf index route when index is present\n return matches[matches.length - 1];\n }\n // Otherwise grab the deepest \"path contributing\" match (ignoring index and\n // pathless layout routes)\n let pathMatches = getPathContributingMatches(matches);\n return pathMatches[pathMatches.length - 1];\n}\n\nfunction getSubmissionFromNavigation(\n navigation: Navigation\n): Submission | undefined {\n let { formMethod, formAction, formEncType, text, formData, json } =\n navigation;\n if (!formMethod || !formAction || !formEncType) {\n return;\n }\n\n if (text != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json: undefined,\n text,\n };\n } else if (formData != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData,\n json: undefined,\n text: undefined,\n };\n } else if (json !== undefined) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json,\n text: undefined,\n };\n }\n}\n\nfunction getLoadingNavigation(\n location: Location,\n submission?: Submission\n): NavigationStates[\"Loading\"] {\n if (submission) {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n };\n return navigation;\n } else {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n };\n return navigation;\n }\n}\n\nfunction getSubmittingNavigation(\n location: Location,\n submission: Submission\n): NavigationStates[\"Submitting\"] {\n let navigation: NavigationStates[\"Submitting\"] = {\n state: \"submitting\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n };\n return navigation;\n}\n\nfunction getLoadingFetcher(\n submission?: Submission,\n data?: Fetcher[\"data\"]\n): FetcherStates[\"Loading\"] {\n if (submission) {\n let fetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data,\n };\n return fetcher;\n } else {\n let fetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data,\n };\n return fetcher;\n }\n}\n\nfunction getSubmittingFetcher(\n submission: Submission,\n existingFetcher?: Fetcher\n): FetcherStates[\"Submitting\"] {\n let fetcher: FetcherStates[\"Submitting\"] = {\n state: \"submitting\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data: existingFetcher ? existingFetcher.data : undefined,\n };\n return fetcher;\n}\n\nfunction getDoneFetcher(data: Fetcher[\"data\"]): FetcherStates[\"Idle\"] {\n let fetcher: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data,\n };\n return fetcher;\n}\n\nfunction restoreAppliedTransitions(\n _window: Window,\n transitions: Map>\n) {\n try {\n let sessionPositions = _window.sessionStorage.getItem(\n TRANSITIONS_STORAGE_KEY\n );\n if (sessionPositions) {\n let json = JSON.parse(sessionPositions);\n for (let [k, v] of Object.entries(json || {})) {\n if (v && Array.isArray(v)) {\n transitions.set(k, new Set(v || []));\n }\n }\n }\n } catch (e) {\n // no-op, use default empty object\n }\n}\n\nfunction persistAppliedTransitions(\n _window: Window,\n transitions: Map>\n) {\n if (transitions.size > 0) {\n let json: Record = {};\n for (let [k, v] of transitions) {\n json[k] = [...v];\n }\n try {\n _window.sessionStorage.setItem(\n TRANSITIONS_STORAGE_KEY,\n JSON.stringify(json)\n );\n } catch (error) {\n warning(\n false,\n `Failed to save applied view transitions in sessionStorage (${error}).`\n );\n }\n }\n}\n\n//#endregion\n","import * as React from \"react\";\nimport type {\n AgnosticIndexRouteObject,\n AgnosticNonIndexRouteObject,\n AgnosticRouteMatch,\n History,\n LazyRouteFunction,\n Location,\n Action as NavigationType,\n RelativeRoutingType,\n Router,\n StaticHandlerContext,\n To,\n TrackedPromise,\n} from \"@remix-run/router\";\n\n// Create react-specific types from the agnostic types in @remix-run/router to\n// export from react-router\nexport interface IndexRouteObject {\n caseSensitive?: AgnosticIndexRouteObject[\"caseSensitive\"];\n path?: AgnosticIndexRouteObject[\"path\"];\n id?: AgnosticIndexRouteObject[\"id\"];\n loader?: AgnosticIndexRouteObject[\"loader\"];\n action?: AgnosticIndexRouteObject[\"action\"];\n hasErrorBoundary?: AgnosticIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: AgnosticIndexRouteObject[\"shouldRevalidate\"];\n handle?: AgnosticIndexRouteObject[\"handle\"];\n index: true;\n children?: undefined;\n element?: React.ReactNode | null;\n hydrateFallbackElement?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n HydrateFallback?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n lazy?: LazyRouteFunction;\n}\n\nexport interface NonIndexRouteObject {\n caseSensitive?: AgnosticNonIndexRouteObject[\"caseSensitive\"];\n path?: AgnosticNonIndexRouteObject[\"path\"];\n id?: AgnosticNonIndexRouteObject[\"id\"];\n loader?: AgnosticNonIndexRouteObject[\"loader\"];\n action?: AgnosticNonIndexRouteObject[\"action\"];\n hasErrorBoundary?: AgnosticNonIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: AgnosticNonIndexRouteObject[\"shouldRevalidate\"];\n handle?: AgnosticNonIndexRouteObject[\"handle\"];\n index?: false;\n children?: RouteObject[];\n element?: React.ReactNode | null;\n hydrateFallbackElement?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n HydrateFallback?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n lazy?: LazyRouteFunction;\n}\n\nexport type RouteObject = IndexRouteObject | NonIndexRouteObject;\n\nexport type DataRouteObject = RouteObject & {\n children?: DataRouteObject[];\n id: string;\n};\n\nexport interface RouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends RouteObject = RouteObject\n> extends AgnosticRouteMatch {}\n\nexport interface DataRouteMatch extends RouteMatch {}\n\nexport interface DataRouterContextObject\n // Omit `future` since those can be pulled from the `router`\n // `NavigationContext` needs future since it doesn't have a `router` in all cases\n extends Omit {\n router: Router;\n staticContext?: StaticHandlerContext;\n}\n\nexport const DataRouterContext =\n React.createContext(null);\nif (__DEV__) {\n DataRouterContext.displayName = \"DataRouter\";\n}\n\nexport const DataRouterStateContext = React.createContext<\n Router[\"state\"] | null\n>(null);\nif (__DEV__) {\n DataRouterStateContext.displayName = \"DataRouterState\";\n}\n\nexport const AwaitContext = React.createContext(null);\nif (__DEV__) {\n AwaitContext.displayName = \"Await\";\n}\n\nexport interface NavigateOptions {\n replace?: boolean;\n state?: any;\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n unstable_flushSync?: boolean;\n unstable_viewTransition?: boolean;\n}\n\n/**\n * A Navigator is a \"location changer\"; it's how you get to different locations.\n *\n * Every history instance conforms to the Navigator interface, but the\n * distinction is useful primarily when it comes to the low-level `` API\n * where both the location and a navigator must be provided separately in order\n * to avoid \"tearing\" that may occur in a suspense-enabled app if the action\n * and/or location were to be read directly from the history instance.\n */\nexport interface Navigator {\n createHref: History[\"createHref\"];\n // Optional for backwards-compat with Router/HistoryRouter usage (edge case)\n encodeLocation?: History[\"encodeLocation\"];\n go: History[\"go\"];\n push(to: To, state?: any, opts?: NavigateOptions): void;\n replace(to: To, state?: any, opts?: NavigateOptions): void;\n}\n\ninterface NavigationContextObject {\n basename: string;\n navigator: Navigator;\n static: boolean;\n future: {\n v7_relativeSplatPath: boolean;\n };\n}\n\nexport const NavigationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n NavigationContext.displayName = \"Navigation\";\n}\n\ninterface LocationContextObject {\n location: Location;\n navigationType: NavigationType;\n}\n\nexport const LocationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n LocationContext.displayName = \"Location\";\n}\n\nexport interface RouteContextObject {\n outlet: React.ReactElement | null;\n matches: RouteMatch[];\n isDataRoute: boolean;\n}\n\nexport const RouteContext = React.createContext({\n outlet: null,\n matches: [],\n isDataRoute: false,\n});\n\nif (__DEV__) {\n RouteContext.displayName = \"Route\";\n}\n\nexport const RouteErrorContext = React.createContext(null);\n\nif (__DEV__) {\n RouteErrorContext.displayName = \"RouteError\";\n}\n","import * as React from \"react\";\nimport type {\n Blocker,\n BlockerFunction,\n Location,\n ParamParseKey,\n Params,\n Path,\n PathMatch,\n PathPattern,\n RelativeRoutingType,\n Router as RemixRouter,\n RevalidationState,\n To,\n UIMatch,\n} from \"@remix-run/router\";\nimport {\n IDLE_BLOCKER,\n Action as NavigationType,\n UNSAFE_convertRouteMatchToUiMatch as convertRouteMatchToUiMatch,\n UNSAFE_getResolveToMatches as getResolveToMatches,\n UNSAFE_invariant as invariant,\n isRouteErrorResponse,\n joinPaths,\n matchPath,\n matchRoutes,\n parsePath,\n resolveTo,\n stripBasename,\n UNSAFE_warning as warning,\n} from \"@remix-run/router\";\n\nimport type {\n DataRouteMatch,\n NavigateOptions,\n RouteContextObject,\n RouteMatch,\n RouteObject,\n} from \"./context\";\nimport {\n AwaitContext,\n DataRouterContext,\n DataRouterStateContext,\n LocationContext,\n NavigationContext,\n RouteContext,\n RouteErrorContext,\n} from \"./context\";\n\n/**\n * Returns the full href for the given \"to\" value. This is useful for building\n * custom links that are also accessible and preserve right-click behavior.\n *\n * @see https://reactrouter.com/hooks/use-href\n */\nexport function useHref(\n to: To,\n { relative }: { relative?: RelativeRoutingType } = {}\n): string {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useHref() may be used only in the context of a component.`\n );\n\n let { basename, navigator } = React.useContext(NavigationContext);\n let { hash, pathname, search } = useResolvedPath(to, { relative });\n\n let joinedPathname = pathname;\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to creating the href. If this is a root navigation, then just use the raw\n // basename which allows the basename to have full control over the presence\n // of a trailing slash on root links\n if (basename !== \"/\") {\n joinedPathname =\n pathname === \"/\" ? basename : joinPaths([basename, pathname]);\n }\n\n return navigator.createHref({ pathname: joinedPathname, search, hash });\n}\n\n/**\n * Returns true if this component is a descendant of a ``.\n *\n * @see https://reactrouter.com/hooks/use-in-router-context\n */\nexport function useInRouterContext(): boolean {\n return React.useContext(LocationContext) != null;\n}\n\n/**\n * Returns the current location object, which represents the current URL in web\n * browsers.\n *\n * Note: If you're using this it may mean you're doing some of your own\n * \"routing\" in your app, and we'd like to know what your use case is. We may\n * be able to provide something higher-level to better suit your needs.\n *\n * @see https://reactrouter.com/hooks/use-location\n */\nexport function useLocation(): Location {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useLocation() may be used only in the context of a component.`\n );\n\n return React.useContext(LocationContext).location;\n}\n\n/**\n * Returns the current navigation action which describes how the router came to\n * the current location, either by a pop, push, or replace on the history stack.\n *\n * @see https://reactrouter.com/hooks/use-navigation-type\n */\nexport function useNavigationType(): NavigationType {\n return React.useContext(LocationContext).navigationType;\n}\n\n/**\n * Returns a PathMatch object if the given pattern matches the current URL.\n * This is useful for components that need to know \"active\" state, e.g.\n * ``.\n *\n * @see https://reactrouter.com/hooks/use-match\n */\nexport function useMatch<\n ParamKey extends ParamParseKey,\n Path extends string\n>(pattern: PathPattern | Path): PathMatch | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useMatch() may be used only in the context of a component.`\n );\n\n let { pathname } = useLocation();\n return React.useMemo(\n () => matchPath(pattern, pathname),\n [pathname, pattern]\n );\n}\n\n/**\n * The interface for the navigate() function returned from useNavigate().\n */\nexport interface NavigateFunction {\n (to: To, options?: NavigateOptions): void;\n (delta: number): void;\n}\n\nconst navigateEffectWarning =\n `You should call navigate() in a React.useEffect(), not when ` +\n `your component is first rendered.`;\n\n// Mute warnings for calls to useNavigate in SSR environments\nfunction useIsomorphicLayoutEffect(\n cb: Parameters[0]\n) {\n let isStatic = React.useContext(NavigationContext).static;\n if (!isStatic) {\n // We should be able to get rid of this once react 18.3 is released\n // See: https://github.com/facebook/react/pull/26395\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useLayoutEffect(cb);\n }\n}\n\n/**\n * Returns an imperative method for changing the location. Used by ``s, but\n * may also be used by other elements to change the location.\n *\n * @see https://reactrouter.com/hooks/use-navigate\n */\nexport function useNavigate(): NavigateFunction {\n let { isDataRoute } = React.useContext(RouteContext);\n // Conditional usage is OK here because the usage of a data router is static\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return isDataRoute ? useNavigateStable() : useNavigateUnstable();\n}\n\nfunction useNavigateUnstable(): NavigateFunction {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useNavigate() may be used only in the context of a component.`\n );\n\n let dataRouterContext = React.useContext(DataRouterContext);\n let { basename, future, navigator } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n getResolveToMatches(matches, future.v7_relativeSplatPath)\n );\n\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(activeRef.current, navigateEffectWarning);\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our history listener yet\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n navigator.go(to);\n return;\n }\n\n let path = resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n options.relative === \"path\"\n );\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to handing off to history (but only if we're not in a data router,\n // otherwise it'll prepend the basename inside of the router).\n // If this is a root navigation, then we navigate to the raw basename\n // which allows the basename to have full control over the presence of a\n // trailing slash on root links\n if (dataRouterContext == null && basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\"\n ? basename\n : joinPaths([basename, path.pathname]);\n }\n\n (!!options.replace ? navigator.replace : navigator.push)(\n path,\n options.state,\n options\n );\n },\n [\n basename,\n navigator,\n routePathnamesJson,\n locationPathname,\n dataRouterContext,\n ]\n );\n\n return navigate;\n}\n\nconst OutletContext = React.createContext(null);\n\n/**\n * Returns the context (if provided) for the child route at this level of the route\n * hierarchy.\n * @see https://reactrouter.com/hooks/use-outlet-context\n */\nexport function useOutletContext(): Context {\n return React.useContext(OutletContext) as Context;\n}\n\n/**\n * Returns the element for the child route at this level of the route\n * hierarchy. Used internally by `` to render child routes.\n *\n * @see https://reactrouter.com/hooks/use-outlet\n */\nexport function useOutlet(context?: unknown): React.ReactElement | null {\n let outlet = React.useContext(RouteContext).outlet;\n if (outlet) {\n return (\n {outlet}\n );\n }\n return outlet;\n}\n\n/**\n * Returns an object of key/value pairs of the dynamic params from the current\n * URL that were matched by the route path.\n *\n * @see https://reactrouter.com/hooks/use-params\n */\nexport function useParams<\n ParamsOrKey extends string | Record = string\n>(): Readonly<\n [ParamsOrKey] extends [string] ? Params : Partial\n> {\n let { matches } = React.useContext(RouteContext);\n let routeMatch = matches[matches.length - 1];\n return routeMatch ? (routeMatch.params as any) : {};\n}\n\n/**\n * Resolves the pathname of the given `to` value against the current location.\n *\n * @see https://reactrouter.com/hooks/use-resolved-path\n */\nexport function useResolvedPath(\n to: To,\n { relative }: { relative?: RelativeRoutingType } = {}\n): Path {\n let { future } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n let routePathnamesJson = JSON.stringify(\n getResolveToMatches(matches, future.v7_relativeSplatPath)\n );\n\n return React.useMemo(\n () =>\n resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n relative === \"path\"\n ),\n [to, routePathnamesJson, locationPathname, relative]\n );\n}\n\n/**\n * Returns the element of the route that matched the current location, prepared\n * with the correct context to render the remainder of the route tree. Route\n * elements in the tree must render an `` to render their child route's\n * element.\n *\n * @see https://reactrouter.com/hooks/use-routes\n */\nexport function useRoutes(\n routes: RouteObject[],\n locationArg?: Partial | string\n): React.ReactElement | null {\n return useRoutesImpl(routes, locationArg);\n}\n\n// Internal implementation with accept optional param for RouterProvider usage\nexport function useRoutesImpl(\n routes: RouteObject[],\n locationArg?: Partial | string,\n dataRouterState?: RemixRouter[\"state\"],\n future?: RemixRouter[\"future\"]\n): React.ReactElement | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useRoutes() may be used only in the context of a component.`\n );\n\n let { navigator } = React.useContext(NavigationContext);\n let { matches: parentMatches } = React.useContext(RouteContext);\n let routeMatch = parentMatches[parentMatches.length - 1];\n let parentParams = routeMatch ? routeMatch.params : {};\n let parentPathname = routeMatch ? routeMatch.pathname : \"/\";\n let parentPathnameBase = routeMatch ? routeMatch.pathnameBase : \"/\";\n let parentRoute = routeMatch && routeMatch.route;\n\n if (__DEV__) {\n // You won't get a warning about 2 different under a \n // without a trailing *, but this is a best-effort warning anyway since we\n // cannot even give the warning unless they land at the parent route.\n //\n // Example:\n //\n // \n // {/* This route path MUST end with /* because otherwise\n // it will never match /blog/post/123 */}\n // } />\n // } />\n // \n //\n // function Blog() {\n // return (\n // \n // } />\n // \n // );\n // }\n let parentPath = (parentRoute && parentRoute.path) || \"\";\n warningOnce(\n parentPathname,\n !parentRoute || parentPath.endsWith(\"*\"),\n `You rendered descendant (or called \\`useRoutes()\\`) at ` +\n `\"${parentPathname}\" (under ) but the ` +\n `parent route path has no trailing \"*\". This means if you navigate ` +\n `deeper, the parent won't match anymore and therefore the child ` +\n `routes will never render.\\n\\n` +\n `Please change the parent to .`\n );\n }\n\n let locationFromContext = useLocation();\n\n let location;\n if (locationArg) {\n let parsedLocationArg =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n invariant(\n parentPathnameBase === \"/\" ||\n parsedLocationArg.pathname?.startsWith(parentPathnameBase),\n `When overriding the location using \\`\\` or \\`useRoutes(routes, location)\\`, ` +\n `the location pathname must begin with the portion of the URL pathname that was ` +\n `matched by all parent routes. The current pathname base is \"${parentPathnameBase}\" ` +\n `but pathname \"${parsedLocationArg.pathname}\" was given in the \\`location\\` prop.`\n );\n\n location = parsedLocationArg;\n } else {\n location = locationFromContext;\n }\n\n let pathname = location.pathname || \"/\";\n\n let remainingPathname = pathname;\n if (parentPathnameBase !== \"/\") {\n // Determine the remaining pathname by removing the # of URL segments the\n // parentPathnameBase has, instead of removing based on character count.\n // This is because we can't guarantee that incoming/outgoing encodings/\n // decodings will match exactly.\n // We decode paths before matching on a per-segment basis with\n // decodeURIComponent(), but we re-encode pathnames via `new URL()` so they\n // match what `window.location.pathname` would reflect. Those don't 100%\n // align when it comes to encoded URI characters such as % and &.\n //\n // So we may end up with:\n // pathname: \"/descendant/a%25b/match\"\n // parentPathnameBase: \"/descendant/a%b\"\n //\n // And the direct substring removal approach won't work :/\n let parentSegments = parentPathnameBase.replace(/^\\//, \"\").split(\"/\");\n let segments = pathname.replace(/^\\//, \"\").split(\"/\");\n remainingPathname = \"/\" + segments.slice(parentSegments.length).join(\"/\");\n }\n\n let matches = matchRoutes(routes, { pathname: remainingPathname });\n\n if (__DEV__) {\n warning(\n parentRoute || matches != null,\n `No routes matched location \"${location.pathname}${location.search}${location.hash}\" `\n );\n\n warning(\n matches == null ||\n matches[matches.length - 1].route.element !== undefined ||\n matches[matches.length - 1].route.Component !== undefined ||\n matches[matches.length - 1].route.lazy !== undefined,\n `Matched leaf route at location \"${location.pathname}${location.search}${location.hash}\" ` +\n `does not have an element or Component. This means it will render an with a ` +\n `null value by default resulting in an \"empty\" page.`\n );\n }\n\n let renderedMatches = _renderMatches(\n matches &&\n matches.map((match) =>\n Object.assign({}, match, {\n params: Object.assign({}, parentParams, match.params),\n pathname: joinPaths([\n parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation\n ? navigator.encodeLocation(match.pathname).pathname\n : match.pathname,\n ]),\n pathnameBase:\n match.pathnameBase === \"/\"\n ? parentPathnameBase\n : joinPaths([\n parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation\n ? navigator.encodeLocation(match.pathnameBase).pathname\n : match.pathnameBase,\n ]),\n })\n ),\n parentMatches,\n dataRouterState,\n future\n );\n\n // When a user passes in a `locationArg`, the associated routes need to\n // be wrapped in a new `LocationContext.Provider` in order for `useLocation`\n // to use the scoped location instead of the global location.\n if (locationArg && renderedMatches) {\n return (\n \n {renderedMatches}\n \n );\n }\n\n return renderedMatches;\n}\n\nfunction DefaultErrorComponent() {\n let error = useRouteError();\n let message = isRouteErrorResponse(error)\n ? `${error.status} ${error.statusText}`\n : error instanceof Error\n ? error.message\n : JSON.stringify(error);\n let stack = error instanceof Error ? error.stack : null;\n let lightgrey = \"rgba(200,200,200, 0.5)\";\n let preStyles = { padding: \"0.5rem\", backgroundColor: lightgrey };\n let codeStyles = { padding: \"2px 4px\", backgroundColor: lightgrey };\n\n let devInfo = null;\n if (__DEV__) {\n console.error(\n \"Error handled by React Router default ErrorBoundary:\",\n error\n );\n\n devInfo = (\n <>\n

💿 Hey developer 👋

\n

\n You can provide a way better UX than this when your app throws errors\n by providing your own ErrorBoundary or{\" \"}\n errorElement prop on your route.\n

\n \n );\n }\n\n return (\n <>\n

Unexpected Application Error!

\n

{message}

\n {stack ?
{stack}
: null}\n {devInfo}\n \n );\n}\n\nconst defaultErrorElement = ;\n\ntype RenderErrorBoundaryProps = React.PropsWithChildren<{\n location: Location;\n revalidation: RevalidationState;\n error: any;\n component: React.ReactNode;\n routeContext: RouteContextObject;\n}>;\n\ntype RenderErrorBoundaryState = {\n location: Location;\n revalidation: RevalidationState;\n error: any;\n};\n\nexport class RenderErrorBoundary extends React.Component<\n RenderErrorBoundaryProps,\n RenderErrorBoundaryState\n> {\n constructor(props: RenderErrorBoundaryProps) {\n super(props);\n this.state = {\n location: props.location,\n revalidation: props.revalidation,\n error: props.error,\n };\n }\n\n static getDerivedStateFromError(error: any) {\n return { error: error };\n }\n\n static getDerivedStateFromProps(\n props: RenderErrorBoundaryProps,\n state: RenderErrorBoundaryState\n ) {\n // When we get into an error state, the user will likely click \"back\" to the\n // previous page that didn't have an error. Because this wraps the entire\n // application, that will have no effect--the error page continues to display.\n // This gives us a mechanism to recover from the error when the location changes.\n //\n // Whether we're in an error state or not, we update the location in state\n // so that when we are in an error state, it gets reset when a new location\n // comes in and the user recovers from the error.\n if (\n state.location !== props.location ||\n (state.revalidation !== \"idle\" && props.revalidation === \"idle\")\n ) {\n return {\n error: props.error,\n location: props.location,\n revalidation: props.revalidation,\n };\n }\n\n // If we're not changing locations, preserve the location but still surface\n // any new errors that may come through. We retain the existing error, we do\n // this because the error provided from the app state may be cleared without\n // the location changing.\n return {\n error: props.error !== undefined ? props.error : state.error,\n location: state.location,\n revalidation: props.revalidation || state.revalidation,\n };\n }\n\n componentDidCatch(error: any, errorInfo: any) {\n console.error(\n \"React Router caught the following error during render\",\n error,\n errorInfo\n );\n }\n\n render() {\n return this.state.error !== undefined ? (\n \n \n \n ) : (\n this.props.children\n );\n }\n}\n\ninterface RenderedRouteProps {\n routeContext: RouteContextObject;\n match: RouteMatch;\n children: React.ReactNode | null;\n}\n\nfunction RenderedRoute({ routeContext, match, children }: RenderedRouteProps) {\n let dataRouterContext = React.useContext(DataRouterContext);\n\n // Track how deep we got in our render pass to emulate SSR componentDidCatch\n // in a DataStaticRouter\n if (\n dataRouterContext &&\n dataRouterContext.static &&\n dataRouterContext.staticContext &&\n (match.route.errorElement || match.route.ErrorBoundary)\n ) {\n dataRouterContext.staticContext._deepestRenderedBoundaryId = match.route.id;\n }\n\n return (\n \n {children}\n \n );\n}\n\nexport function _renderMatches(\n matches: RouteMatch[] | null,\n parentMatches: RouteMatch[] = [],\n dataRouterState: RemixRouter[\"state\"] | null = null,\n future: RemixRouter[\"future\"] | null = null\n): React.ReactElement | null {\n if (matches == null) {\n if (dataRouterState?.errors) {\n // Don't bail if we have data router errors so we can render them in the\n // boundary. Use the pre-matched (or shimmed) matches\n matches = dataRouterState.matches as DataRouteMatch[];\n } else {\n return null;\n }\n }\n\n let renderedMatches = matches;\n\n // If we have data errors, trim matches to the highest error boundary\n let errors = dataRouterState?.errors;\n if (errors != null) {\n let errorIndex = renderedMatches.findIndex(\n (m) => m.route.id && errors?.[m.route.id] !== undefined\n );\n invariant(\n errorIndex >= 0,\n `Could not find a matching route for errors on route IDs: ${Object.keys(\n errors\n ).join(\",\")}`\n );\n renderedMatches = renderedMatches.slice(\n 0,\n Math.min(renderedMatches.length, errorIndex + 1)\n );\n }\n\n // If we're in a partial hydration mode, detect if we need to render down to\n // a given HydrateFallback while we load the rest of the hydration data\n let renderFallback = false;\n let fallbackIndex = -1;\n if (dataRouterState && future && future.v7_partialHydration) {\n for (let i = 0; i < renderedMatches.length; i++) {\n let match = renderedMatches[i];\n // Track the deepest fallback up until the first route without data\n if (match.route.HydrateFallback || match.route.hydrateFallbackElement) {\n fallbackIndex = i;\n }\n\n if (match.route.id) {\n let { loaderData, errors } = dataRouterState;\n let needsToRunLoader =\n match.route.loader &&\n loaderData[match.route.id] === undefined &&\n (!errors || errors[match.route.id] === undefined);\n if (match.route.lazy || needsToRunLoader) {\n // We found the first route that's not ready to render (waiting on\n // lazy, or has a loader that hasn't run yet). Flag that we need to\n // render a fallback and render up until the appropriate fallback\n renderFallback = true;\n if (fallbackIndex >= 0) {\n renderedMatches = renderedMatches.slice(0, fallbackIndex + 1);\n } else {\n renderedMatches = [renderedMatches[0]];\n }\n break;\n }\n }\n }\n }\n\n return renderedMatches.reduceRight((outlet, match, index) => {\n // Only data routers handle errors/fallbacks\n let error: any;\n let shouldRenderHydrateFallback = false;\n let errorElement: React.ReactNode | null = null;\n let hydrateFallbackElement: React.ReactNode | null = null;\n if (dataRouterState) {\n error = errors && match.route.id ? errors[match.route.id] : undefined;\n errorElement = match.route.errorElement || defaultErrorElement;\n\n if (renderFallback) {\n if (fallbackIndex < 0 && index === 0) {\n warningOnce(\n \"route-fallback\",\n false,\n \"No `HydrateFallback` element provided to render during initial hydration\"\n );\n shouldRenderHydrateFallback = true;\n hydrateFallbackElement = null;\n } else if (fallbackIndex === index) {\n shouldRenderHydrateFallback = true;\n hydrateFallbackElement = match.route.hydrateFallbackElement || null;\n }\n }\n }\n\n let matches = parentMatches.concat(renderedMatches.slice(0, index + 1));\n let getChildren = () => {\n let children: React.ReactNode;\n if (error) {\n children = errorElement;\n } else if (shouldRenderHydrateFallback) {\n children = hydrateFallbackElement;\n } else if (match.route.Component) {\n // Note: This is a de-optimized path since React won't re-use the\n // ReactElement since it's identity changes with each new\n // React.createElement call. We keep this so folks can use\n // `` in `` but generally `Component`\n // usage is only advised in `RouterProvider` when we can convert it to\n // `element` ahead of time.\n children = ;\n } else if (match.route.element) {\n children = match.route.element;\n } else {\n children = outlet;\n }\n return (\n \n );\n };\n // Only wrap in an error boundary within data router usages when we have an\n // ErrorBoundary/errorElement on this route. Otherwise let it bubble up to\n // an ancestor ErrorBoundary/errorElement\n return dataRouterState &&\n (match.route.ErrorBoundary || match.route.errorElement || index === 0) ? (\n \n ) : (\n getChildren()\n );\n }, null as React.ReactElement | null);\n}\n\nenum DataRouterHook {\n UseBlocker = \"useBlocker\",\n UseRevalidator = \"useRevalidator\",\n UseNavigateStable = \"useNavigate\",\n}\n\nenum DataRouterStateHook {\n UseBlocker = \"useBlocker\",\n UseLoaderData = \"useLoaderData\",\n UseActionData = \"useActionData\",\n UseRouteError = \"useRouteError\",\n UseNavigation = \"useNavigation\",\n UseRouteLoaderData = \"useRouteLoaderData\",\n UseMatches = \"useMatches\",\n UseRevalidator = \"useRevalidator\",\n UseNavigateStable = \"useNavigate\",\n UseRouteId = \"useRouteId\",\n}\n\nfunction getDataRouterConsoleError(\n hookName: DataRouterHook | DataRouterStateHook\n) {\n return `${hookName} must be used within a data router. See https://reactrouter.com/routers/picking-a-router.`;\n}\n\nfunction useDataRouterContext(hookName: DataRouterHook) {\n let ctx = React.useContext(DataRouterContext);\n invariant(ctx, getDataRouterConsoleError(hookName));\n return ctx;\n}\n\nfunction useDataRouterState(hookName: DataRouterStateHook) {\n let state = React.useContext(DataRouterStateContext);\n invariant(state, getDataRouterConsoleError(hookName));\n return state;\n}\n\nfunction useRouteContext(hookName: DataRouterStateHook) {\n let route = React.useContext(RouteContext);\n invariant(route, getDataRouterConsoleError(hookName));\n return route;\n}\n\n// Internal version with hookName-aware debugging\nfunction useCurrentRouteId(hookName: DataRouterStateHook) {\n let route = useRouteContext(hookName);\n let thisRoute = route.matches[route.matches.length - 1];\n invariant(\n thisRoute.route.id,\n `${hookName} can only be used on routes that contain a unique \"id\"`\n );\n return thisRoute.route.id;\n}\n\n/**\n * Returns the ID for the nearest contextual route\n */\nexport function useRouteId() {\n return useCurrentRouteId(DataRouterStateHook.UseRouteId);\n}\n\n/**\n * Returns the current navigation, defaulting to an \"idle\" navigation when\n * no navigation is in progress\n */\nexport function useNavigation() {\n let state = useDataRouterState(DataRouterStateHook.UseNavigation);\n return state.navigation;\n}\n\n/**\n * Returns a revalidate function for manually triggering revalidation, as well\n * as the current state of any manual revalidations\n */\nexport function useRevalidator() {\n let dataRouterContext = useDataRouterContext(DataRouterHook.UseRevalidator);\n let state = useDataRouterState(DataRouterStateHook.UseRevalidator);\n return React.useMemo(\n () => ({\n revalidate: dataRouterContext.router.revalidate,\n state: state.revalidation,\n }),\n [dataRouterContext.router.revalidate, state.revalidation]\n );\n}\n\n/**\n * Returns the active route matches, useful for accessing loaderData for\n * parent/child routes or the route \"handle\" property\n */\nexport function useMatches(): UIMatch[] {\n let { matches, loaderData } = useDataRouterState(\n DataRouterStateHook.UseMatches\n );\n return React.useMemo(\n () => matches.map((m) => convertRouteMatchToUiMatch(m, loaderData)),\n [matches, loaderData]\n );\n}\n\n/**\n * Returns the loader data for the nearest ancestor Route loader\n */\nexport function useLoaderData(): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseLoaderData);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n\n if (state.errors && state.errors[routeId] != null) {\n console.error(\n `You cannot \\`useLoaderData\\` in an errorElement (routeId: ${routeId})`\n );\n return undefined;\n }\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the loaderData for the given routeId\n */\nexport function useRouteLoaderData(routeId: string): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseRouteLoaderData);\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the action data for the nearest ancestor Route action\n */\nexport function useActionData(): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseActionData);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n return state.actionData ? state.actionData[routeId] : undefined;\n}\n\n/**\n * Returns the nearest ancestor Route error, which could be a loader/action\n * error or a render error. This is intended to be called from your\n * ErrorBoundary/errorElement to display a proper error message.\n */\nexport function useRouteError(): unknown {\n let error = React.useContext(RouteErrorContext);\n let state = useDataRouterState(DataRouterStateHook.UseRouteError);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseRouteError);\n\n // If this was a render error, we put it in a RouteError context inside\n // of RenderErrorBoundary\n if (error !== undefined) {\n return error;\n }\n\n // Otherwise look for errors from our data router state\n return state.errors?.[routeId];\n}\n\n/**\n * Returns the happy-path data from the nearest ancestor `` value\n */\nexport function useAsyncValue(): unknown {\n let value = React.useContext(AwaitContext);\n return value?._data;\n}\n\n/**\n * Returns the error from the nearest ancestor `` value\n */\nexport function useAsyncError(): unknown {\n let value = React.useContext(AwaitContext);\n return value?._error;\n}\n\nlet blockerId = 0;\n\n/**\n * Allow the application to block navigations within the SPA and present the\n * user a confirmation dialog to confirm the navigation. Mostly used to avoid\n * using half-filled form data. This does not handle hard-reloads or\n * cross-origin navigations.\n */\nexport function useBlocker(shouldBlock: boolean | BlockerFunction): Blocker {\n let { router, basename } = useDataRouterContext(DataRouterHook.UseBlocker);\n let state = useDataRouterState(DataRouterStateHook.UseBlocker);\n\n let [blockerKey, setBlockerKey] = React.useState(\"\");\n let blockerFunction = React.useCallback(\n (arg) => {\n if (typeof shouldBlock !== \"function\") {\n return !!shouldBlock;\n }\n if (basename === \"/\") {\n return shouldBlock(arg);\n }\n\n // If they provided us a function and we've got an active basename, strip\n // it from the locations we expose to the user to match the behavior of\n // useLocation\n let { currentLocation, nextLocation, historyAction } = arg;\n return shouldBlock({\n currentLocation: {\n ...currentLocation,\n pathname:\n stripBasename(currentLocation.pathname, basename) ||\n currentLocation.pathname,\n },\n nextLocation: {\n ...nextLocation,\n pathname:\n stripBasename(nextLocation.pathname, basename) ||\n nextLocation.pathname,\n },\n historyAction,\n });\n },\n [basename, shouldBlock]\n );\n\n // This effect is in charge of blocker key assignment and deletion (which is\n // tightly coupled to the key)\n React.useEffect(() => {\n let key = String(++blockerId);\n setBlockerKey(key);\n return () => router.deleteBlocker(key);\n }, [router]);\n\n // This effect handles assigning the blockerFunction. This is to handle\n // unstable blocker function identities, and happens only after the prior\n // effect so we don't get an orphaned blockerFunction in the router with a\n // key of \"\". Until then we just have the IDLE_BLOCKER.\n React.useEffect(() => {\n if (blockerKey !== \"\") {\n router.getBlocker(blockerKey, blockerFunction);\n }\n }, [router, blockerKey, blockerFunction]);\n\n // Prefer the blocker from `state` not `router.state` since DataRouterContext\n // is memoized so this ensures we update on blocker state updates\n return blockerKey && state.blockers.has(blockerKey)\n ? state.blockers.get(blockerKey)!\n : IDLE_BLOCKER;\n}\n\n/**\n * Stable version of useNavigate that is used when we are in the context of\n * a RouterProvider.\n */\nfunction useNavigateStable(): NavigateFunction {\n let { router } = useDataRouterContext(DataRouterHook.UseNavigateStable);\n let id = useCurrentRouteId(DataRouterStateHook.UseNavigateStable);\n\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(activeRef.current, navigateEffectWarning);\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our router subscriber yet\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n router.navigate(to);\n } else {\n router.navigate(to, { fromRouteId: id, ...options });\n }\n },\n [router, id]\n );\n\n return navigate;\n}\n\nconst alreadyWarned: Record = {};\n\nfunction warningOnce(key: string, cond: boolean, message: string) {\n if (!cond && !alreadyWarned[key]) {\n alreadyWarned[key] = true;\n warning(false, message);\n }\n}\n","import type {\n InitialEntry,\n LazyRouteFunction,\n Location,\n MemoryHistory,\n RelativeRoutingType,\n Router as RemixRouter,\n RouterState,\n RouterSubscriber,\n To,\n TrackedPromise,\n} from \"@remix-run/router\";\nimport {\n AbortedDeferredError,\n Action as NavigationType,\n createMemoryHistory,\n UNSAFE_getResolveToMatches as getResolveToMatches,\n UNSAFE_invariant as invariant,\n parsePath,\n resolveTo,\n stripBasename,\n UNSAFE_warning as warning,\n} from \"@remix-run/router\";\nimport * as React from \"react\";\n\nimport type {\n DataRouteObject,\n IndexRouteObject,\n Navigator,\n NonIndexRouteObject,\n RouteMatch,\n RouteObject,\n} from \"./context\";\nimport {\n AwaitContext,\n DataRouterContext,\n DataRouterStateContext,\n LocationContext,\n NavigationContext,\n RouteContext,\n} from \"./context\";\nimport {\n _renderMatches,\n useAsyncValue,\n useInRouterContext,\n useLocation,\n useNavigate,\n useOutlet,\n useRoutes,\n useRoutesImpl,\n} from \"./hooks\";\n\nexport interface FutureConfig {\n v7_relativeSplatPath: boolean;\n v7_startTransition: boolean;\n}\n\nexport interface RouterProviderProps {\n fallbackElement?: React.ReactNode;\n router: RemixRouter;\n // Only accept future flags relevant to rendering behavior\n // routing flags should be accessed via router.future\n future?: Partial>;\n}\n\n/**\n Webpack + React 17 fails to compile on any of the following because webpack\n complains that `startTransition` doesn't exist in `React`:\n * import { startTransition } from \"react\"\n * import * as React from from \"react\";\n \"startTransition\" in React ? React.startTransition(() => setState()) : setState()\n * import * as React from from \"react\";\n \"startTransition\" in React ? React[\"startTransition\"](() => setState()) : setState()\n\n Moving it to a constant such as the following solves the Webpack/React 17 issue:\n * import * as React from from \"react\";\n const START_TRANSITION = \"startTransition\";\n START_TRANSITION in React ? React[START_TRANSITION](() => setState()) : setState()\n\n However, that introduces webpack/terser minification issues in production builds\n in React 18 where minification/obfuscation ends up removing the call of\n React.startTransition entirely from the first half of the ternary. Grabbing\n this exported reference once up front resolves that issue.\n\n See https://github.com/remix-run/react-router/issues/10579\n*/\nconst START_TRANSITION = \"startTransition\";\nconst startTransitionImpl = React[START_TRANSITION];\n\n/**\n * Given a Remix Router instance, render the appropriate UI\n */\nexport function RouterProvider({\n fallbackElement,\n router,\n future,\n}: RouterProviderProps): React.ReactElement {\n let [state, setStateImpl] = React.useState(router.state);\n let { v7_startTransition } = future || {};\n\n let setState = React.useCallback(\n (newState: RouterState) => {\n if (v7_startTransition && startTransitionImpl) {\n startTransitionImpl(() => setStateImpl(newState));\n } else {\n setStateImpl(newState);\n }\n },\n [setStateImpl, v7_startTransition]\n );\n\n // Need to use a layout effect here so we are subscribed early enough to\n // pick up on any render-driven redirects/navigations (useEffect/)\n React.useLayoutEffect(() => router.subscribe(setState), [router, setState]);\n\n React.useEffect(() => {\n warning(\n fallbackElement == null || !router.future.v7_partialHydration,\n \"`` is deprecated when using \" +\n \"`v7_partialHydration`, use a `HydrateFallback` component instead\"\n );\n // Only log this once on initial mount\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n let navigator = React.useMemo((): Navigator => {\n return {\n createHref: router.createHref,\n encodeLocation: router.encodeLocation,\n go: (n) => router.navigate(n),\n push: (to, state, opts) =>\n router.navigate(to, {\n state,\n preventScrollReset: opts?.preventScrollReset,\n }),\n replace: (to, state, opts) =>\n router.navigate(to, {\n replace: true,\n state,\n preventScrollReset: opts?.preventScrollReset,\n }),\n };\n }, [router]);\n\n let basename = router.basename || \"/\";\n\n let dataRouterContext = React.useMemo(\n () => ({\n router,\n navigator,\n static: false,\n basename,\n }),\n [router, navigator, basename]\n );\n\n // The fragment and {null} here are important! We need them to keep React 18's\n // useId happy when we are server-rendering since we may have a