{"version":3,"file":"static/js/main.4434027b.js","mappings":"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","sources":["app.js","routes/admin.js","../node_modules/@fortawesome/fontawesome-svg-core/index.mjs","../node_modules/@fortawesome/react-fontawesome/index.es.js","../node_modules/@react-oauth/google/dist/index.esm.js","../javascript/esm|/Users/alin/src/closetwitch/client/node_modules/@babel/runtime/helpers/esm/construct.js","../javascript/esm|/Users/alin/src/closetwitch/client/node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","../javascript/esm|/Users/alin/src/closetwitch/client/node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","../node_modules/@remix-run/router/history.ts","../node_modules/@remix-run/router/utils.ts","../javascript/esm|/Users/alin/src/closetwitch/client/node_modules/@babel/runtime/helpers/esm/toArray.js","../node_modules/@remix-run/router/router.ts","../node_modules/object-assign/index.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-helmet/es/Helmet.js","../node_modules/react-router-dom/dom.ts","../node_modules/react-router-dom/index.tsx","../node_modules/react-router/lib/use-sync-external-store-shim/useSyncExternalStoreShimClient.ts","../node_modules/react-router/lib/use-sync-external-store-shim/index.ts","../node_modules/react-router/lib/use-sync-external-store-shim/useSyncExternalStoreShimServer.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-side-effect/lib/index.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/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../javascript/dynamic|/Users/alin/src/closetwitch/client/node_modules/@babel/runtime/helpers/regeneratorRuntime.js","../javascript/dynamic|/Users/alin/src/closetwitch/client/node_modules/@babel/runtime/helpers/typeof.js","../javascript/dynamic|/Users/alin/src/closetwitch/client/node_modules/@babel/runtime/regenerator/index.js","../javascript/esm|/Users/alin/src/closetwitch/client/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../javascript/esm|/Users/alin/src/closetwitch/client/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../javascript/esm|/Users/alin/src/closetwitch/client/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../javascript/esm|/Users/alin/src/closetwitch/client/node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../javascript/esm|/Users/alin/src/closetwitch/client/node_modules/@babel/runtime/helpers/esm/createClass.js","../javascript/esm|/Users/alin/src/closetwitch/client/node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","../javascript/esm|/Users/alin/src/closetwitch/client/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../javascript/esm|/Users/alin/src/closetwitch/client/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../javascript/esm|/Users/alin/src/closetwitch/client/node_modules/@babel/runtime/helpers/esm/createSuper.js","../javascript/esm|/Users/alin/src/closetwitch/client/node_modules/@babel/runtime/helpers/esm/defineProperty.js","../javascript/esm|/Users/alin/src/closetwitch/client/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../javascript/esm|/Users/alin/src/closetwitch/client/node_modules/@babel/runtime/helpers/esm/inherits.js","../javascript/esm|/Users/alin/src/closetwitch/client/node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../javascript/esm|/Users/alin/src/closetwitch/client/node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../javascript/esm|/Users/alin/src/closetwitch/client/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../javascript/esm|/Users/alin/src/closetwitch/client/node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../javascript/esm|/Users/alin/src/closetwitch/client/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../javascript/esm|/Users/alin/src/closetwitch/client/node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../javascript/esm|/Users/alin/src/closetwitch/client/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../javascript/esm|/Users/alin/src/closetwitch/client/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../javascript/esm|/Users/alin/src/closetwitch/client/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../javascript/esm|/Users/alin/src/closetwitch/client/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../javascript/esm|/Users/alin/src/closetwitch/client/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../javascript/esm|/Users/alin/src/closetwitch/client/node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../javascript/esm|/Users/alin/src/closetwitch/client/node_modules/@babel/runtime/helpers/esm/typeof.js","../javascript/esm|/Users/alin/src/closetwitch/client/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/@fortawesome/free-solid-svg-icons/index.mjs","../webpack/bootstrap","../webpack/runtime/compat get default export","../webpack/runtime/create fake namespace object","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/get mini-css chunk filename","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/load script","../webpack/runtime/make namespace object","../webpack/runtime/publicPath","../webpack/runtime/jsonp chunk loading","reportWebVitals.js","index.js"],"sourcesContent":["import React, { Suspense, lazy, useState, useEffect, useCallback } from \"react\";\nimport { Routes, Route, Link, Navigate, useNavigate, useLocation, useSearchParams } from \"react-router-dom\";\nimport logo from './site-logo.png';\nimport 'bulma/css/bulma.min.css';\nimport './bulma-pricingtable.min.css';\nimport './app.scss';\nimport { faUser, faCat, faBroom, faHatWizard, faXmark, faCircleCheck, faCircleXmark, faCreditCard, faLock, faEnvelope, faEye, faBars, faTrashCan} from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { AdminUser } from \"./routes/admin\";\n\nconst Home = lazy(() => import(\"./routes/home\"));\nconst About = lazy(() => import(\"./routes/about\"));\nconst Demos = lazy(() => import(\"./routes/demos\"));\nconst Plans = lazy(() => import(\"./routes/plans\"));\nconst FAQ = lazy(() => import(\"./routes/faq\"));\nconst Privacy = lazy(() => import(\"./routes/privacy\"));\nconst TermsOfService = lazy(() => import(\"./routes/terms_of_service\"));\nconst GettingStarted = lazy(() => import(\"./routes/getting-started\"));\nconst SignupForm = lazy(() => import(\"./routes/signup\"));\nconst ResetPasswordForm = lazy(() => import(\"./routes/reset_password\"));\nconst ForgotPasswordForm = lazy(() => import(\"./routes/forgot_password\"));\nconst LoginForm = lazy(() => import(\"./routes/login\"));\nconst AccountInformation = lazy(() => import(\"./routes/account\"));\nconst PaymentForm = lazy(() => import(\"./routes/payment\"));\nconst PaymentComplete = lazy(() => import(\"./routes/payment-complete\"));\nconst Admin = lazy(() => import(\"./routes/admin\"));\nconst Inventory = lazy(() => import(\"./routes/inventory\"));\nconst Sales = lazy(() => import(\"./routes/sales\"));\nconst Business = lazy(() => import(\"./routes/business\"));\nconst Importer = lazy(() => import(\"./routes/importer\"));\nconst NewItem = lazy(() => import(\"./routes/new_item\"));\nconst NewBusiness = lazy(() => import(\"./routes/new_business\"));\n\nconst PrivateRoute = ({ children, unauthenticated }) => {\n const location = useLocation();\n return !unauthenticated ? (\n <>{children}\n ) : (\n \n )\n}\n\nfunction App() {\n let navigate = useNavigate();\n let [searchParams, setSearchParams] = useSearchParams();\n const visitSource = searchParams.get(\"source\");\n const redirectUrl = searchParams.get(\"redirect_url\");\n\n const [account, setAccount] = useState({\n role: null,\n email: null,\n plan: null,\n business: {},\n poshmarkId: null,\n poshmarkHost: null,\n createdAt: null,\n stripe_subscription_status: null,\n trial_end_at: null,\n referralCode: null\n });\n\n const [plan, setPlan] = useState(\"\")\n const [price, setPrice] = useState(\"\")\n const [clientSecret, setClientSecret] = useState(\"\");\n // this gets around the issue of having a redirect chain due to \n // the async nature of account fetching. for example, since account\n // state is nil, loggedIn = false\n // if we redirect based on this initial state, we will end up\n // doing ANOTHER redirect when the async fetch finishes. \n // so to prevent this, we reverse the state so that \n // we always attempt to load children but only redirect if the \n // server tells us otherwise\n const [unauthenticated, setUnauthenticated] = useState(false);\n\n const loggedIn = () => {\n return !!account.email;\n }\n\n const admin = () => {\n return account.role == \"ADMIN\";\n }\n\n const logout = () => {\n const fetchData = async () => {\n let response = await fetch(\"/api/sessions\", {\n method: 'DELETE',\n cache: 'no-cache',\n headers: {\n \"Content-Type\": \"application/json\"\n },\n credentials: \"include\"\n });\n setAccount({\n email: null,\n plan: null,\n poshmarkId: null,\n poshmarkHost: null,\n business: {},\n poshmmarkAccounts: [],\n stripe_subscription_status: null,\n referralCode: null,\n trial_end_at: null,\n role: null,\n });\n setUnauthenticated(true);\n setClientSecret(null);\n navigate(\"/\");\n }\n fetchData();\n }\n\n // authenticate & load\n useEffect(() => {\n const fetchData = async () => {\n let response = await fetch(\"/api/sessions\", {\n method: 'GET',\n cache: 'no-cache',\n headers: {\n \"Content-Type\": \"application/json\"\n },\n credentials: \"include\"\n });\n try {\n let data = await response.json();\n if (data.status === \"success\") {\n setAccount({\n role: data.role,\n email: data.email,\n plan: data.plan_type,\n stripe_subscription_status: data.stripe_subscription_status,\n poshmarkId: data.poshmark_id,\n poshmarkHost: data.poshmark_host,\n poshmarkAccounts: data.poshmark_accounts,\n business: data.business,\n referralCode: data.referral_code,\n trial_end_at: data.trial_end_at,\n feature_flags: data.feature_flags\n });\n setUnauthenticated(false);\n } else {\n setUnauthenticated(true);\n }\n } catch(error) {\n console.log(error.message);\n }\n }\n fetchData();\n }, []);\n\n const handleTagCreate = async (value) => {\n try {\n const response = await fetch(\"/api/inventory/tags\", {\n method: 'POST',\n body: JSON.stringify({ \"value\": value }),\n cache: 'no-cache',\n headers: {\n \"Content-Type\": \"application/json\"\n },\n credentials: \"include\"\n });\n\n if (!response.ok) {\n alert(\"There was an error creating the tag! Please try again later or reach out to contact@closetwitch.com for support\");\n return;\n }\n\n setAccount({\n ... account,\n business: {\n ... account.business,\n tags: [...account.business.tags, value]\n }\n });\n\n return value;\n } catch(error) {\n alert(\"There was an error creating the tag! Please try again later or reach out to contact@closetwitch.com for support\");\n }\n }\n\n const updateBusiness = async (businessData) => {\n fetch(`/api/business/${account.business.id}`, {\n method: \"PATCH\",\n headers: {\n \"Content-Type\": \"application/json\"\n },\n credentials: \"include\",\n body: JSON.stringify(businessData)\n })\n const res = {\n ... account,\n business: {\n ... account.business,\n ... businessData\n }\n };\n setAccount(res);\n return res;\n }\n\n const dispatch = (action) => {\n if (action.type === \"CREATE_NEW_TAG\") {\n handleTagCreate(action.value);\n }\n }\n\n return (\n <>\n { !redirectUrl && }\n }>\n \n }/>\n }/>\n }/>\n }/>\n }/>\n \n }/>\n }/>\n }/>\n }/>\n \n \n \n }/>\n }/>\n \n \n \n \n }>\n \n }/>\n \n \n \n }\n />\n \n \n \n }\n />\n \n \n }/>\n }/>\n }/>\n }/>\n }/>\n }/>\n }/>\n \n }\n />\n \n \n {!redirectUrl &&
\n
\n
\n
\n \n
\n
\n
\n
\n
\n Get in touch\n
\n
\n \n
\n
\n\n
\n
\n Email\n
\n

contact@closetwitch.com

\n
\n
\n
\n Location\n
\n

New Hartford, NY

\n

13413

\n
\n
\n
\n Privacy Policy\n
\n
\n Terms of Service\n
\n
\n
\n
\n
\n }\n \n );\n}\n\nfunction Navbar({ admin, loggedIn, logout, account }) {\n const [menuToggle, setMenuToggle] = useState(false);\n\n return (\n \n );\n}\n\n\nexport function PasswordInputField({ onKeyDown, onChange, onBlur, password, placeholder, error}) {\n const [visible, setVisible] = useState(false);\n return (\n
\n

\n \n { setVisible(false) }}>\n \n \n { setVisible(!visible); }}>\n \n \n

\n { error &&

{ error }

}\n
\n )\n}\n\nexport function EmailInputField({ onKeyDown, onChange, disabled, onBlur, value, error}) {\n const validateEmail = (email) => {\n return String(email)\n .toLowerCase()\n .match(\n /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/\n );\n };\n return (\n
\n
\n \n \n \n \n \n \n \n
\n { error &&

{ error }

}\n
\n );\n}\n\nexport default App;\n","import { Helmet } from \"react-helmet\";\nimport React, { Suspense, lazy, useState, useEffect, useCallback } from \"react\";\nimport { Link, useParams } from \"react-router-dom\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { faUser } from \"@fortawesome/free-solid-svg-icons\";\n\n\nexport function AdminUser({ account }) {\n let { userId } = useParams();\n\n const [userEvents, setUserEvents] = useState([]);\n const endTrial = async (userId) => {\n try {\n let response = await fetch(\"/api/admin/users\", {\n method: 'PATCH',\n cache: 'no-cache',\n headers: {\n \"Content-Type\": \"application/json\"\n },\n credentials: \"include\",\n body: JSON.stringify({\n user_id: userId,\n plan_type: \"FREE\"\n })\n });\n let data = await response.json();\n } catch(error) {\n console.log(error);\n }\n }\n\n useEffect(() => {\n const runFetch = async () => {\n let response = await fetch(`/api/admin/events/${userId}`, {\n method: 'GET',\n cache: 'no-cache',\n headers: {\n \"Content-Type\": \"application/json\"\n },\n credentials: \"include\",\n });\n let data = await response.json();\n setUserEvents(data);\n };\n runFetch();\n }, []);\n\n const countEvent = (name) => {\n return userEvents.filter((data) => data.name === name).length;\n };\n\n return (\n
\n \n ClosetWitch - Admin user\n \n \n
\n
\n

ID: { userId }

\n
\n
\n
\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Event TypeCount
Share{countEvent(\"share\")}
Send offers{countEvent(\"send_offers\")}
Update prices{countEvent(\"update_prices\")}
Relist{countEvent(\"relist_item_success\")}
Comping{countEvent(\"comp\")}
\n
\n
\n
\n
\n
\n \n \n \n \n \n \n \n \n \n { \n userEvents.map((event) => {\n return (\n \n \n \n \n \n );\n })\n }\n \n
EventDateProps
{event.name}{event.props.datetime}{JSON.stringify(event.props)}
\n \n
\n
\n
\n );\n}\n\nfunction Admin({ admin }) {\n const [adminData, setAdminData] = useState([]);\n\n useEffect(() => { \n const fetchData = async () => {\n try {\n let response = await fetch(\"/api/admin/users\", {\n method: 'GET',\n cache: 'no-cache',\n headers: {\n \"Content-Type\": \"application/json\"\n },\n credentials: \"include\"\n });\n let data = await response.json();\n setAdminData(data);\n } catch(error) {\n console.log(error);\n }\n }\n fetchData();\n }, []);\n\n const [orderData, setOrderData] = useState({});\n const ths = (label, sortby) => {\n return (\n {\n let newOrderData = {...orderData};\n const order = orderData[sortby];\n const newData = [...adminData].sort((a, b) => {\n const x = a[sortby] || \"\";\n const y = b[sortby] || \"\";\n if (order) {\n if (x < y) {\n return -1;\n }\n if (x > y) {\n return 1;\n }\n return 0;\n } else {\n if (x < y) {\n return 1;\n }\n if (x > y) {\n return -1;\n }\n return 0;\n }\n return (order ? x > y : x < y);\n }); \n setOrderData(newOrderData);\n setAdminData(newData);\n newOrderData[sortby] = !orderData[sortby];\n }\n }>{label}\n );\n };\n const showUserInfo = async (userId) => {\n try {\n let response = await fetch(\"/api/admin/events/\" + userId, {\n method: 'GET',\n cache: 'no-cache',\n headers: {\n \"Content-Type\": \"application/json\"\n },\n credentials: \"include\"\n });\n let data = await response.json();\n console.log(data);\n } catch(error) {\n console.log(error);\n }\n }\n\n const isVerified = (user) => { \n return user.poshmark_id?.length > 0;\n }\n\n return (\n
\n \n ClosetWitch\n \n \n
\n
\n \n \n \n \n {ths(\"Email\", \"email\")}\n {ths(\"Plan\", \"plan_type\")}\n {ths(\"Poshmark ID\", \"poshmark_id\")}\n \n {ths(\"Subscription Status\", \"stripe_subscription_status\")}\n \n {ths(\"Trial Expires\", \"trial_end_at\")}\n {ths(\"Trial Ended\", \"trial_ended_on\")}\n {ths(\"Activity Count\", \"activity_count\")}\n {ths(\"Last Active\", \"last_active\")}\n \n \n \n { \n adminData.map((user) => {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n })\n }\n \n
ProfileStripe IDPromo
\n \n \n \n {user.email}{user.plan_type}{user.poshmark_id}{user.stripe_customer_id}{user.stripe_subscription_status}{user.promo_code}{user.trial_end_at}{user.trial_ended_on}{user.activity_count}{user.last_active}
\n
\n
\n
\n );\n}\n\nexport default Admin;\n","function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n\n return target;\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}\n\nfunction _wrapRegExp() {\n _wrapRegExp = function (re, groups) {\n return new BabelRegExp(re, void 0, groups);\n };\n\n var _super = RegExp.prototype,\n _groups = new WeakMap();\n\n function BabelRegExp(re, flags, groups) {\n var _this = new RegExp(re, flags);\n\n return _groups.set(_this, groups || _groups.get(re)), _setPrototypeOf(_this, BabelRegExp.prototype);\n }\n\n function buildGroups(result, re) {\n var g = _groups.get(re);\n\n return Object.keys(g).reduce(function (groups, name) {\n return groups[name] = result[g[name]], groups;\n }, Object.create(null));\n }\n\n return _inherits(BabelRegExp, RegExp), BabelRegExp.prototype.exec = function (str) {\n var result = _super.exec.call(this, str);\n\n return result && (result.groups = buildGroups(result, this)), result;\n }, BabelRegExp.prototype[Symbol.replace] = function (str, substitution) {\n if (\"string\" == typeof substitution) {\n var groups = _groups.get(this);\n\n return _super[Symbol.replace].call(this, str, substitution.replace(/\\$<([^>]+)>/g, function (_, name) {\n return \"$\" + groups[name];\n }));\n }\n\n if (\"function\" == typeof substitution) {\n var _this = this;\n\n return _super[Symbol.replace].call(this, str, function () {\n var args = arguments;\n return \"object\" != typeof args[args.length - 1] && (args = [].slice.call(args)).push(buildGroups(args, _this)), substitution.apply(this, args);\n });\n }\n\n return _super[Symbol.replace].call(this, str, substitution);\n }, _wrapRegExp.apply(this, arguments);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nvar noop = function noop() {};\n\nvar _WINDOW = {};\nvar _DOCUMENT = {};\nvar _MUTATION_OBSERVER = null;\nvar _PERFORMANCE = {\n mark: noop,\n measure: noop\n};\n\ntry {\n if (typeof window !== 'undefined') _WINDOW = window;\n if (typeof document !== 'undefined') _DOCUMENT = document;\n if (typeof MutationObserver !== 'undefined') _MUTATION_OBSERVER = MutationObserver;\n if (typeof performance !== 'undefined') _PERFORMANCE = performance;\n} catch (e) {}\n\nvar _ref = _WINDOW.navigator || {},\n _ref$userAgent = _ref.userAgent,\n userAgent = _ref$userAgent === void 0 ? '' : _ref$userAgent;\nvar WINDOW = _WINDOW;\nvar DOCUMENT = _DOCUMENT;\nvar MUTATION_OBSERVER = _MUTATION_OBSERVER;\nvar PERFORMANCE = _PERFORMANCE;\nvar IS_BROWSER = !!WINDOW.document;\nvar IS_DOM = !!DOCUMENT.documentElement && !!DOCUMENT.head && typeof DOCUMENT.addEventListener === 'function' && typeof DOCUMENT.createElement === 'function';\nvar IS_IE = ~userAgent.indexOf('MSIE') || ~userAgent.indexOf('Trident/');\n\nvar _familyProxy, _familyProxy2, _familyProxy3, _familyProxy4, _familyProxy5;\n\nvar NAMESPACE_IDENTIFIER = '___FONT_AWESOME___';\nvar UNITS_IN_GRID = 16;\nvar DEFAULT_CSS_PREFIX = 'fa';\nvar DEFAULT_REPLACEMENT_CLASS = 'svg-inline--fa';\nvar DATA_FA_I2SVG = 'data-fa-i2svg';\nvar DATA_FA_PSEUDO_ELEMENT = 'data-fa-pseudo-element';\nvar DATA_FA_PSEUDO_ELEMENT_PENDING = 'data-fa-pseudo-element-pending';\nvar DATA_PREFIX = 'data-prefix';\nvar DATA_ICON = 'data-icon';\nvar HTML_CLASS_I2SVG_BASE_CLASS = 'fontawesome-i2svg';\nvar MUTATION_APPROACH_ASYNC = 'async';\nvar TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS = ['HTML', 'HEAD', 'STYLE', 'SCRIPT'];\nvar PRODUCTION = function () {\n try {\n return process.env.NODE_ENV === 'production';\n } catch (e) {\n return false;\n }\n}();\nvar FAMILY_CLASSIC = 'classic';\nvar FAMILY_SHARP = 'sharp';\nvar FAMILIES = [FAMILY_CLASSIC, FAMILY_SHARP];\n\nfunction familyProxy(obj) {\n // Defaults to the classic family if family is not available\n return new Proxy(obj, {\n get: function get(target, prop) {\n return prop in target ? target[prop] : target[FAMILY_CLASSIC];\n }\n });\n}\nvar PREFIX_TO_STYLE = familyProxy((_familyProxy = {}, _defineProperty(_familyProxy, FAMILY_CLASSIC, {\n 'fa': 'solid',\n 'fas': 'solid',\n 'fa-solid': 'solid',\n 'far': 'regular',\n 'fa-regular': 'regular',\n 'fal': 'light',\n 'fa-light': 'light',\n 'fat': 'thin',\n 'fa-thin': 'thin',\n 'fad': 'duotone',\n 'fa-duotone': 'duotone',\n 'fab': 'brands',\n 'fa-brands': 'brands',\n 'fak': 'kit',\n 'fa-kit': 'kit'\n}), _defineProperty(_familyProxy, FAMILY_SHARP, {\n 'fa': 'solid',\n 'fass': 'solid',\n 'fa-solid': 'solid',\n 'fasr': 'regular',\n 'fa-regular': 'regular',\n 'fasl': 'light',\n 'fa-light': 'light'\n}), _familyProxy));\nvar STYLE_TO_PREFIX = familyProxy((_familyProxy2 = {}, _defineProperty(_familyProxy2, FAMILY_CLASSIC, {\n 'solid': 'fas',\n 'regular': 'far',\n 'light': 'fal',\n 'thin': 'fat',\n 'duotone': 'fad',\n 'brands': 'fab',\n 'kit': 'fak'\n}), _defineProperty(_familyProxy2, FAMILY_SHARP, {\n 'solid': 'fass',\n 'regular': 'fasr',\n 'light': 'fasl'\n}), _familyProxy2));\nvar PREFIX_TO_LONG_STYLE = familyProxy((_familyProxy3 = {}, _defineProperty(_familyProxy3, FAMILY_CLASSIC, {\n 'fab': 'fa-brands',\n 'fad': 'fa-duotone',\n 'fak': 'fa-kit',\n 'fal': 'fa-light',\n 'far': 'fa-regular',\n 'fas': 'fa-solid',\n 'fat': 'fa-thin'\n}), _defineProperty(_familyProxy3, FAMILY_SHARP, {\n 'fass': 'fa-solid',\n 'fasr': 'fa-regular',\n 'fasl': 'fa-light'\n}), _familyProxy3));\nvar LONG_STYLE_TO_PREFIX = familyProxy((_familyProxy4 = {}, _defineProperty(_familyProxy4, FAMILY_CLASSIC, {\n 'fa-brands': 'fab',\n 'fa-duotone': 'fad',\n 'fa-kit': 'fak',\n 'fa-light': 'fal',\n 'fa-regular': 'far',\n 'fa-solid': 'fas',\n 'fa-thin': 'fat'\n}), _defineProperty(_familyProxy4, FAMILY_SHARP, {\n 'fa-solid': 'fass',\n 'fa-regular': 'fasr',\n 'fa-light': 'fasl'\n}), _familyProxy4));\nvar ICON_SELECTION_SYNTAX_PATTERN = /fa(s|r|l|t|d|b|k|ss|sr|sl)?[\\-\\ ]/; // eslint-disable-line no-useless-escape\n\nvar LAYERS_TEXT_CLASSNAME = 'fa-layers-text';\nvar FONT_FAMILY_PATTERN = /Font ?Awesome ?([56 ]*)(Solid|Regular|Light|Thin|Duotone|Brands|Free|Pro|Sharp|Kit)?.*/i;\nvar FONT_WEIGHT_TO_PREFIX = familyProxy((_familyProxy5 = {}, _defineProperty(_familyProxy5, FAMILY_CLASSIC, {\n '900': 'fas',\n '400': 'far',\n 'normal': 'far',\n '300': 'fal',\n '100': 'fat'\n}), _defineProperty(_familyProxy5, FAMILY_SHARP, {\n '900': 'fass',\n '400': 'fasr',\n '300': 'fasl'\n}), _familyProxy5));\nvar oneToTen = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];\nvar oneToTwenty = oneToTen.concat([11, 12, 13, 14, 15, 16, 17, 18, 19, 20]);\nvar ATTRIBUTES_WATCHED_FOR_MUTATION = ['class', 'data-prefix', 'data-icon', 'data-fa-transform', 'data-fa-mask'];\nvar DUOTONE_CLASSES = {\n GROUP: 'duotone-group',\n SWAP_OPACITY: 'swap-opacity',\n PRIMARY: 'primary',\n SECONDARY: 'secondary'\n};\nvar prefixes = new Set();\nObject.keys(STYLE_TO_PREFIX[FAMILY_CLASSIC]).map(prefixes.add.bind(prefixes));\nObject.keys(STYLE_TO_PREFIX[FAMILY_SHARP]).map(prefixes.add.bind(prefixes));\nvar RESERVED_CLASSES = [].concat(FAMILIES, _toConsumableArray(prefixes), ['2xs', 'xs', 'sm', 'lg', 'xl', '2xl', 'beat', 'border', 'fade', 'beat-fade', 'bounce', 'flip-both', 'flip-horizontal', 'flip-vertical', 'flip', 'fw', 'inverse', 'layers-counter', 'layers-text', 'layers', 'li', 'pull-left', 'pull-right', 'pulse', 'rotate-180', 'rotate-270', 'rotate-90', 'rotate-by', 'shake', 'spin-pulse', 'spin-reverse', 'spin', 'stack-1x', 'stack-2x', 'stack', 'ul', DUOTONE_CLASSES.GROUP, DUOTONE_CLASSES.SWAP_OPACITY, DUOTONE_CLASSES.PRIMARY, DUOTONE_CLASSES.SECONDARY]).concat(oneToTen.map(function (n) {\n return \"\".concat(n, \"x\");\n})).concat(oneToTwenty.map(function (n) {\n return \"w-\".concat(n);\n}));\n\nvar initial = WINDOW.FontAwesomeConfig || {};\n\nfunction getAttrConfig(attr) {\n var element = DOCUMENT.querySelector('script[' + attr + ']');\n\n if (element) {\n return element.getAttribute(attr);\n }\n}\n\nfunction coerce(val) {\n // Getting an empty string will occur if the attribute is set on the HTML tag but without a value\n // We'll assume that this is an indication that it should be toggled to true\n if (val === '') return true;\n if (val === 'false') return false;\n if (val === 'true') return true;\n return val;\n}\n\nif (DOCUMENT && typeof DOCUMENT.querySelector === 'function') {\n var attrs = [['data-family-prefix', 'familyPrefix'], ['data-css-prefix', 'cssPrefix'], ['data-family-default', 'familyDefault'], ['data-style-default', 'styleDefault'], ['data-replacement-class', 'replacementClass'], ['data-auto-replace-svg', 'autoReplaceSvg'], ['data-auto-add-css', 'autoAddCss'], ['data-auto-a11y', 'autoA11y'], ['data-search-pseudo-elements', 'searchPseudoElements'], ['data-observe-mutations', 'observeMutations'], ['data-mutate-approach', 'mutateApproach'], ['data-keep-original-source', 'keepOriginalSource'], ['data-measure-performance', 'measurePerformance'], ['data-show-missing-icons', 'showMissingIcons']];\n attrs.forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n attr = _ref2[0],\n key = _ref2[1];\n\n var val = coerce(getAttrConfig(attr));\n\n if (val !== undefined && val !== null) {\n initial[key] = val;\n }\n });\n}\n\nvar _default = {\n styleDefault: 'solid',\n familyDefault: 'classic',\n cssPrefix: DEFAULT_CSS_PREFIX,\n replacementClass: DEFAULT_REPLACEMENT_CLASS,\n autoReplaceSvg: true,\n autoAddCss: true,\n autoA11y: true,\n searchPseudoElements: false,\n observeMutations: true,\n mutateApproach: 'async',\n keepOriginalSource: true,\n measurePerformance: false,\n showMissingIcons: true\n}; // familyPrefix is deprecated but we must still support it if present\n\nif (initial.familyPrefix) {\n initial.cssPrefix = initial.familyPrefix;\n}\n\nvar _config = _objectSpread2(_objectSpread2({}, _default), initial);\n\nif (!_config.autoReplaceSvg) _config.observeMutations = false;\nvar config = {};\nObject.keys(_default).forEach(function (key) {\n Object.defineProperty(config, key, {\n enumerable: true,\n set: function set(val) {\n _config[key] = val;\n\n _onChangeCb.forEach(function (cb) {\n return cb(config);\n });\n },\n get: function get() {\n return _config[key];\n }\n });\n}); // familyPrefix is deprecated as of 6.2.0 and should be removed in 7.0.0\n\nObject.defineProperty(config, 'familyPrefix', {\n enumerable: true,\n set: function set(val) {\n _config.cssPrefix = val;\n\n _onChangeCb.forEach(function (cb) {\n return cb(config);\n });\n },\n get: function get() {\n return _config.cssPrefix;\n }\n});\nWINDOW.FontAwesomeConfig = config;\nvar _onChangeCb = [];\nfunction onChange(cb) {\n _onChangeCb.push(cb);\n\n return function () {\n _onChangeCb.splice(_onChangeCb.indexOf(cb), 1);\n };\n}\n\nvar d = UNITS_IN_GRID;\nvar meaninglessTransform = {\n size: 16,\n x: 0,\n y: 0,\n rotate: 0,\n flipX: false,\n flipY: false\n};\nfunction insertCss(css) {\n if (!css || !IS_DOM) {\n return;\n }\n\n var style = DOCUMENT.createElement('style');\n style.setAttribute('type', 'text/css');\n style.innerHTML = css;\n var headChildren = DOCUMENT.head.childNodes;\n var beforeChild = null;\n\n for (var i = headChildren.length - 1; i > -1; i--) {\n var child = headChildren[i];\n var tagName = (child.tagName || '').toUpperCase();\n\n if (['STYLE', 'LINK'].indexOf(tagName) > -1) {\n beforeChild = child;\n }\n }\n\n DOCUMENT.head.insertBefore(style, beforeChild);\n return css;\n}\nvar idPool = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';\nfunction nextUniqueId() {\n var size = 12;\n var id = '';\n\n while (size-- > 0) {\n id += idPool[Math.random() * 62 | 0];\n }\n\n return id;\n}\nfunction toArray(obj) {\n var array = [];\n\n for (var i = (obj || []).length >>> 0; i--;) {\n array[i] = obj[i];\n }\n\n return array;\n}\nfunction classArray(node) {\n if (node.classList) {\n return toArray(node.classList);\n } else {\n return (node.getAttribute('class') || '').split(' ').filter(function (i) {\n return i;\n });\n }\n}\nfunction htmlEscape(str) {\n return \"\".concat(str).replace(/&/g, '&').replace(/\"/g, '"').replace(/'/g, ''').replace(//g, '>');\n}\nfunction joinAttributes(attributes) {\n return Object.keys(attributes || {}).reduce(function (acc, attributeName) {\n return acc + \"\".concat(attributeName, \"=\\\"\").concat(htmlEscape(attributes[attributeName]), \"\\\" \");\n }, '').trim();\n}\nfunction joinStyles(styles) {\n return Object.keys(styles || {}).reduce(function (acc, styleName) {\n return acc + \"\".concat(styleName, \": \").concat(styles[styleName].trim(), \";\");\n }, '');\n}\nfunction transformIsMeaningful(transform) {\n return transform.size !== meaninglessTransform.size || transform.x !== meaninglessTransform.x || transform.y !== meaninglessTransform.y || transform.rotate !== meaninglessTransform.rotate || transform.flipX || transform.flipY;\n}\nfunction transformForSvg(_ref) {\n var transform = _ref.transform,\n containerWidth = _ref.containerWidth,\n iconWidth = _ref.iconWidth;\n var outer = {\n transform: \"translate(\".concat(containerWidth / 2, \" 256)\")\n };\n var innerTranslate = \"translate(\".concat(transform.x * 32, \", \").concat(transform.y * 32, \") \");\n var innerScale = \"scale(\".concat(transform.size / 16 * (transform.flipX ? -1 : 1), \", \").concat(transform.size / 16 * (transform.flipY ? -1 : 1), \") \");\n var innerRotate = \"rotate(\".concat(transform.rotate, \" 0 0)\");\n var inner = {\n transform: \"\".concat(innerTranslate, \" \").concat(innerScale, \" \").concat(innerRotate)\n };\n var path = {\n transform: \"translate(\".concat(iconWidth / 2 * -1, \" -256)\")\n };\n return {\n outer: outer,\n inner: inner,\n path: path\n };\n}\nfunction transformForCss(_ref2) {\n var transform = _ref2.transform,\n _ref2$width = _ref2.width,\n width = _ref2$width === void 0 ? UNITS_IN_GRID : _ref2$width,\n _ref2$height = _ref2.height,\n height = _ref2$height === void 0 ? UNITS_IN_GRID : _ref2$height,\n _ref2$startCentered = _ref2.startCentered,\n startCentered = _ref2$startCentered === void 0 ? false : _ref2$startCentered;\n var val = '';\n\n if (startCentered && IS_IE) {\n val += \"translate(\".concat(transform.x / d - width / 2, \"em, \").concat(transform.y / d - height / 2, \"em) \");\n } else if (startCentered) {\n val += \"translate(calc(-50% + \".concat(transform.x / d, \"em), calc(-50% + \").concat(transform.y / d, \"em)) \");\n } else {\n val += \"translate(\".concat(transform.x / d, \"em, \").concat(transform.y / d, \"em) \");\n }\n\n val += \"scale(\".concat(transform.size / d * (transform.flipX ? -1 : 1), \", \").concat(transform.size / d * (transform.flipY ? -1 : 1), \") \");\n val += \"rotate(\".concat(transform.rotate, \"deg) \");\n return val;\n}\n\nvar baseStyles = \":root, :host {\\n --fa-font-solid: normal 900 1em/1 \\\"Font Awesome 6 Solid\\\";\\n --fa-font-regular: normal 400 1em/1 \\\"Font Awesome 6 Regular\\\";\\n --fa-font-light: normal 300 1em/1 \\\"Font Awesome 6 Light\\\";\\n --fa-font-thin: normal 100 1em/1 \\\"Font Awesome 6 Thin\\\";\\n --fa-font-duotone: normal 900 1em/1 \\\"Font Awesome 6 Duotone\\\";\\n --fa-font-sharp-solid: normal 900 1em/1 \\\"Font Awesome 6 Sharp\\\";\\n --fa-font-sharp-regular: normal 400 1em/1 \\\"Font Awesome 6 Sharp\\\";\\n --fa-font-sharp-light: normal 300 1em/1 \\\"Font Awesome 6 Sharp\\\";\\n --fa-font-brands: normal 400 1em/1 \\\"Font Awesome 6 Brands\\\";\\n}\\n\\nsvg:not(:root).svg-inline--fa, svg:not(:host).svg-inline--fa {\\n overflow: visible;\\n box-sizing: content-box;\\n}\\n\\n.svg-inline--fa {\\n display: var(--fa-display, inline-block);\\n height: 1em;\\n overflow: visible;\\n vertical-align: -0.125em;\\n}\\n.svg-inline--fa.fa-2xs {\\n vertical-align: 0.1em;\\n}\\n.svg-inline--fa.fa-xs {\\n vertical-align: 0em;\\n}\\n.svg-inline--fa.fa-sm {\\n vertical-align: -0.0714285705em;\\n}\\n.svg-inline--fa.fa-lg {\\n vertical-align: -0.2em;\\n}\\n.svg-inline--fa.fa-xl {\\n vertical-align: -0.25em;\\n}\\n.svg-inline--fa.fa-2xl {\\n vertical-align: -0.3125em;\\n}\\n.svg-inline--fa.fa-pull-left {\\n margin-right: var(--fa-pull-margin, 0.3em);\\n width: auto;\\n}\\n.svg-inline--fa.fa-pull-right {\\n margin-left: var(--fa-pull-margin, 0.3em);\\n width: auto;\\n}\\n.svg-inline--fa.fa-li {\\n width: var(--fa-li-width, 2em);\\n top: 0.25em;\\n}\\n.svg-inline--fa.fa-fw {\\n width: var(--fa-fw-width, 1.25em);\\n}\\n\\n.fa-layers svg.svg-inline--fa {\\n bottom: 0;\\n left: 0;\\n margin: auto;\\n position: absolute;\\n right: 0;\\n top: 0;\\n}\\n\\n.fa-layers-counter, .fa-layers-text {\\n display: inline-block;\\n position: absolute;\\n text-align: center;\\n}\\n\\n.fa-layers {\\n display: inline-block;\\n height: 1em;\\n position: relative;\\n text-align: center;\\n vertical-align: -0.125em;\\n width: 1em;\\n}\\n.fa-layers svg.svg-inline--fa {\\n -webkit-transform-origin: center center;\\n transform-origin: center center;\\n}\\n\\n.fa-layers-text {\\n left: 50%;\\n top: 50%;\\n -webkit-transform: translate(-50%, -50%);\\n transform: translate(-50%, -50%);\\n -webkit-transform-origin: center center;\\n transform-origin: center center;\\n}\\n\\n.fa-layers-counter {\\n background-color: var(--fa-counter-background-color, #ff253a);\\n border-radius: var(--fa-counter-border-radius, 1em);\\n box-sizing: border-box;\\n color: var(--fa-inverse, #fff);\\n line-height: var(--fa-counter-line-height, 1);\\n max-width: var(--fa-counter-max-width, 5em);\\n min-width: var(--fa-counter-min-width, 1.5em);\\n overflow: hidden;\\n padding: var(--fa-counter-padding, 0.25em 0.5em);\\n right: var(--fa-right, 0);\\n text-overflow: ellipsis;\\n top: var(--fa-top, 0);\\n -webkit-transform: scale(var(--fa-counter-scale, 0.25));\\n transform: scale(var(--fa-counter-scale, 0.25));\\n -webkit-transform-origin: top right;\\n transform-origin: top right;\\n}\\n\\n.fa-layers-bottom-right {\\n bottom: var(--fa-bottom, 0);\\n right: var(--fa-right, 0);\\n top: auto;\\n -webkit-transform: scale(var(--fa-layers-scale, 0.25));\\n transform: scale(var(--fa-layers-scale, 0.25));\\n -webkit-transform-origin: bottom right;\\n transform-origin: bottom right;\\n}\\n\\n.fa-layers-bottom-left {\\n bottom: var(--fa-bottom, 0);\\n left: var(--fa-left, 0);\\n right: auto;\\n top: auto;\\n -webkit-transform: scale(var(--fa-layers-scale, 0.25));\\n transform: scale(var(--fa-layers-scale, 0.25));\\n -webkit-transform-origin: bottom left;\\n transform-origin: bottom left;\\n}\\n\\n.fa-layers-top-right {\\n top: var(--fa-top, 0);\\n right: var(--fa-right, 0);\\n -webkit-transform: scale(var(--fa-layers-scale, 0.25));\\n transform: scale(var(--fa-layers-scale, 0.25));\\n -webkit-transform-origin: top right;\\n transform-origin: top right;\\n}\\n\\n.fa-layers-top-left {\\n left: var(--fa-left, 0);\\n right: auto;\\n top: var(--fa-top, 0);\\n -webkit-transform: scale(var(--fa-layers-scale, 0.25));\\n transform: scale(var(--fa-layers-scale, 0.25));\\n -webkit-transform-origin: top left;\\n transform-origin: top left;\\n}\\n\\n.fa-1x {\\n font-size: 1em;\\n}\\n\\n.fa-2x {\\n font-size: 2em;\\n}\\n\\n.fa-3x {\\n font-size: 3em;\\n}\\n\\n.fa-4x {\\n font-size: 4em;\\n}\\n\\n.fa-5x {\\n font-size: 5em;\\n}\\n\\n.fa-6x {\\n font-size: 6em;\\n}\\n\\n.fa-7x {\\n font-size: 7em;\\n}\\n\\n.fa-8x {\\n font-size: 8em;\\n}\\n\\n.fa-9x {\\n font-size: 9em;\\n}\\n\\n.fa-10x {\\n font-size: 10em;\\n}\\n\\n.fa-2xs {\\n font-size: 0.625em;\\n line-height: 0.1em;\\n vertical-align: 0.225em;\\n}\\n\\n.fa-xs {\\n font-size: 0.75em;\\n line-height: 0.0833333337em;\\n vertical-align: 0.125em;\\n}\\n\\n.fa-sm {\\n font-size: 0.875em;\\n line-height: 0.0714285718em;\\n vertical-align: 0.0535714295em;\\n}\\n\\n.fa-lg {\\n font-size: 1.25em;\\n line-height: 0.05em;\\n vertical-align: -0.075em;\\n}\\n\\n.fa-xl {\\n font-size: 1.5em;\\n line-height: 0.0416666682em;\\n vertical-align: -0.125em;\\n}\\n\\n.fa-2xl {\\n font-size: 2em;\\n line-height: 0.03125em;\\n vertical-align: -0.1875em;\\n}\\n\\n.fa-fw {\\n text-align: center;\\n width: 1.25em;\\n}\\n\\n.fa-ul {\\n list-style-type: none;\\n margin-left: var(--fa-li-margin, 2.5em);\\n padding-left: 0;\\n}\\n.fa-ul > li {\\n position: relative;\\n}\\n\\n.fa-li {\\n left: calc(var(--fa-li-width, 2em) * -1);\\n position: absolute;\\n text-align: center;\\n width: var(--fa-li-width, 2em);\\n line-height: inherit;\\n}\\n\\n.fa-border {\\n border-color: var(--fa-border-color, #eee);\\n border-radius: var(--fa-border-radius, 0.1em);\\n border-style: var(--fa-border-style, solid);\\n border-width: var(--fa-border-width, 0.08em);\\n padding: var(--fa-border-padding, 0.2em 0.25em 0.15em);\\n}\\n\\n.fa-pull-left {\\n float: left;\\n margin-right: var(--fa-pull-margin, 0.3em);\\n}\\n\\n.fa-pull-right {\\n float: right;\\n margin-left: var(--fa-pull-margin, 0.3em);\\n}\\n\\n.fa-beat {\\n -webkit-animation-name: fa-beat;\\n animation-name: fa-beat;\\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\\n animation-delay: var(--fa-animation-delay, 0s);\\n -webkit-animation-direction: var(--fa-animation-direction, normal);\\n animation-direction: var(--fa-animation-direction, normal);\\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\\n animation-duration: var(--fa-animation-duration, 1s);\\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n -webkit-animation-timing-function: var(--fa-animation-timing, ease-in-out);\\n animation-timing-function: var(--fa-animation-timing, ease-in-out);\\n}\\n\\n.fa-bounce {\\n -webkit-animation-name: fa-bounce;\\n animation-name: fa-bounce;\\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\\n animation-delay: var(--fa-animation-delay, 0s);\\n -webkit-animation-direction: var(--fa-animation-direction, normal);\\n animation-direction: var(--fa-animation-direction, normal);\\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\\n animation-duration: var(--fa-animation-duration, 1s);\\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1));\\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1));\\n}\\n\\n.fa-fade {\\n -webkit-animation-name: fa-fade;\\n animation-name: fa-fade;\\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\\n animation-delay: var(--fa-animation-delay, 0s);\\n -webkit-animation-direction: var(--fa-animation-direction, normal);\\n animation-direction: var(--fa-animation-direction, normal);\\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\\n animation-duration: var(--fa-animation-duration, 1s);\\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\\n}\\n\\n.fa-beat-fade {\\n -webkit-animation-name: fa-beat-fade;\\n animation-name: fa-beat-fade;\\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\\n animation-delay: var(--fa-animation-delay, 0s);\\n -webkit-animation-direction: var(--fa-animation-direction, normal);\\n animation-direction: var(--fa-animation-direction, normal);\\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\\n animation-duration: var(--fa-animation-duration, 1s);\\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\\n}\\n\\n.fa-flip {\\n -webkit-animation-name: fa-flip;\\n animation-name: fa-flip;\\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\\n animation-delay: var(--fa-animation-delay, 0s);\\n -webkit-animation-direction: var(--fa-animation-direction, normal);\\n animation-direction: var(--fa-animation-direction, normal);\\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\\n animation-duration: var(--fa-animation-duration, 1s);\\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n -webkit-animation-timing-function: var(--fa-animation-timing, ease-in-out);\\n animation-timing-function: var(--fa-animation-timing, ease-in-out);\\n}\\n\\n.fa-shake {\\n -webkit-animation-name: fa-shake;\\n animation-name: fa-shake;\\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\\n animation-delay: var(--fa-animation-delay, 0s);\\n -webkit-animation-direction: var(--fa-animation-direction, normal);\\n animation-direction: var(--fa-animation-direction, normal);\\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\\n animation-duration: var(--fa-animation-duration, 1s);\\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n -webkit-animation-timing-function: var(--fa-animation-timing, linear);\\n animation-timing-function: var(--fa-animation-timing, linear);\\n}\\n\\n.fa-spin {\\n -webkit-animation-name: fa-spin;\\n animation-name: fa-spin;\\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\\n animation-delay: var(--fa-animation-delay, 0s);\\n -webkit-animation-direction: var(--fa-animation-direction, normal);\\n animation-direction: var(--fa-animation-direction, normal);\\n -webkit-animation-duration: var(--fa-animation-duration, 2s);\\n animation-duration: var(--fa-animation-duration, 2s);\\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n -webkit-animation-timing-function: var(--fa-animation-timing, linear);\\n animation-timing-function: var(--fa-animation-timing, linear);\\n}\\n\\n.fa-spin-reverse {\\n --fa-animation-direction: reverse;\\n}\\n\\n.fa-pulse,\\n.fa-spin-pulse {\\n -webkit-animation-name: fa-spin;\\n animation-name: fa-spin;\\n -webkit-animation-direction: var(--fa-animation-direction, normal);\\n animation-direction: var(--fa-animation-direction, normal);\\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\\n animation-duration: var(--fa-animation-duration, 1s);\\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n -webkit-animation-timing-function: var(--fa-animation-timing, steps(8));\\n animation-timing-function: var(--fa-animation-timing, steps(8));\\n}\\n\\n@media (prefers-reduced-motion: reduce) {\\n .fa-beat,\\n.fa-bounce,\\n.fa-fade,\\n.fa-beat-fade,\\n.fa-flip,\\n.fa-pulse,\\n.fa-shake,\\n.fa-spin,\\n.fa-spin-pulse {\\n -webkit-animation-delay: -1ms;\\n animation-delay: -1ms;\\n -webkit-animation-duration: 1ms;\\n animation-duration: 1ms;\\n -webkit-animation-iteration-count: 1;\\n animation-iteration-count: 1;\\n -webkit-transition-delay: 0s;\\n transition-delay: 0s;\\n -webkit-transition-duration: 0s;\\n transition-duration: 0s;\\n }\\n}\\n@-webkit-keyframes fa-beat {\\n 0%, 90% {\\n -webkit-transform: scale(1);\\n transform: scale(1);\\n }\\n 45% {\\n -webkit-transform: scale(var(--fa-beat-scale, 1.25));\\n transform: scale(var(--fa-beat-scale, 1.25));\\n }\\n}\\n@keyframes fa-beat {\\n 0%, 90% {\\n -webkit-transform: scale(1);\\n transform: scale(1);\\n }\\n 45% {\\n -webkit-transform: scale(var(--fa-beat-scale, 1.25));\\n transform: scale(var(--fa-beat-scale, 1.25));\\n }\\n}\\n@-webkit-keyframes fa-bounce {\\n 0% {\\n -webkit-transform: scale(1, 1) translateY(0);\\n transform: scale(1, 1) translateY(0);\\n }\\n 10% {\\n -webkit-transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\\n transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\\n }\\n 30% {\\n -webkit-transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\\n transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\\n }\\n 50% {\\n -webkit-transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\\n transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\\n }\\n 57% {\\n -webkit-transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\\n transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\\n }\\n 64% {\\n -webkit-transform: scale(1, 1) translateY(0);\\n transform: scale(1, 1) translateY(0);\\n }\\n 100% {\\n -webkit-transform: scale(1, 1) translateY(0);\\n transform: scale(1, 1) translateY(0);\\n }\\n}\\n@keyframes fa-bounce {\\n 0% {\\n -webkit-transform: scale(1, 1) translateY(0);\\n transform: scale(1, 1) translateY(0);\\n }\\n 10% {\\n -webkit-transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\\n transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\\n }\\n 30% {\\n -webkit-transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\\n transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\\n }\\n 50% {\\n -webkit-transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\\n transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\\n }\\n 57% {\\n -webkit-transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\\n transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\\n }\\n 64% {\\n -webkit-transform: scale(1, 1) translateY(0);\\n transform: scale(1, 1) translateY(0);\\n }\\n 100% {\\n -webkit-transform: scale(1, 1) translateY(0);\\n transform: scale(1, 1) translateY(0);\\n }\\n}\\n@-webkit-keyframes fa-fade {\\n 50% {\\n opacity: var(--fa-fade-opacity, 0.4);\\n }\\n}\\n@keyframes fa-fade {\\n 50% {\\n opacity: var(--fa-fade-opacity, 0.4);\\n }\\n}\\n@-webkit-keyframes fa-beat-fade {\\n 0%, 100% {\\n opacity: var(--fa-beat-fade-opacity, 0.4);\\n -webkit-transform: scale(1);\\n transform: scale(1);\\n }\\n 50% {\\n opacity: 1;\\n -webkit-transform: scale(var(--fa-beat-fade-scale, 1.125));\\n transform: scale(var(--fa-beat-fade-scale, 1.125));\\n }\\n}\\n@keyframes fa-beat-fade {\\n 0%, 100% {\\n opacity: var(--fa-beat-fade-opacity, 0.4);\\n -webkit-transform: scale(1);\\n transform: scale(1);\\n }\\n 50% {\\n opacity: 1;\\n -webkit-transform: scale(var(--fa-beat-fade-scale, 1.125));\\n transform: scale(var(--fa-beat-fade-scale, 1.125));\\n }\\n}\\n@-webkit-keyframes fa-flip {\\n 50% {\\n -webkit-transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\\n transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\\n }\\n}\\n@keyframes fa-flip {\\n 50% {\\n -webkit-transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\\n transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\\n }\\n}\\n@-webkit-keyframes fa-shake {\\n 0% {\\n -webkit-transform: rotate(-15deg);\\n transform: rotate(-15deg);\\n }\\n 4% {\\n -webkit-transform: rotate(15deg);\\n transform: rotate(15deg);\\n }\\n 8%, 24% {\\n -webkit-transform: rotate(-18deg);\\n transform: rotate(-18deg);\\n }\\n 12%, 28% {\\n -webkit-transform: rotate(18deg);\\n transform: rotate(18deg);\\n }\\n 16% {\\n -webkit-transform: rotate(-22deg);\\n transform: rotate(-22deg);\\n }\\n 20% {\\n -webkit-transform: rotate(22deg);\\n transform: rotate(22deg);\\n }\\n 32% {\\n -webkit-transform: rotate(-12deg);\\n transform: rotate(-12deg);\\n }\\n 36% {\\n -webkit-transform: rotate(12deg);\\n transform: rotate(12deg);\\n }\\n 40%, 100% {\\n -webkit-transform: rotate(0deg);\\n transform: rotate(0deg);\\n }\\n}\\n@keyframes fa-shake {\\n 0% {\\n -webkit-transform: rotate(-15deg);\\n transform: rotate(-15deg);\\n }\\n 4% {\\n -webkit-transform: rotate(15deg);\\n transform: rotate(15deg);\\n }\\n 8%, 24% {\\n -webkit-transform: rotate(-18deg);\\n transform: rotate(-18deg);\\n }\\n 12%, 28% {\\n -webkit-transform: rotate(18deg);\\n transform: rotate(18deg);\\n }\\n 16% {\\n -webkit-transform: rotate(-22deg);\\n transform: rotate(-22deg);\\n }\\n 20% {\\n -webkit-transform: rotate(22deg);\\n transform: rotate(22deg);\\n }\\n 32% {\\n -webkit-transform: rotate(-12deg);\\n transform: rotate(-12deg);\\n }\\n 36% {\\n -webkit-transform: rotate(12deg);\\n transform: rotate(12deg);\\n }\\n 40%, 100% {\\n -webkit-transform: rotate(0deg);\\n transform: rotate(0deg);\\n }\\n}\\n@-webkit-keyframes fa-spin {\\n 0% {\\n -webkit-transform: rotate(0deg);\\n transform: rotate(0deg);\\n }\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n@keyframes fa-spin {\\n 0% {\\n -webkit-transform: rotate(0deg);\\n transform: rotate(0deg);\\n }\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n.fa-rotate-90 {\\n -webkit-transform: rotate(90deg);\\n transform: rotate(90deg);\\n}\\n\\n.fa-rotate-180 {\\n -webkit-transform: rotate(180deg);\\n transform: rotate(180deg);\\n}\\n\\n.fa-rotate-270 {\\n -webkit-transform: rotate(270deg);\\n transform: rotate(270deg);\\n}\\n\\n.fa-flip-horizontal {\\n -webkit-transform: scale(-1, 1);\\n transform: scale(-1, 1);\\n}\\n\\n.fa-flip-vertical {\\n -webkit-transform: scale(1, -1);\\n transform: scale(1, -1);\\n}\\n\\n.fa-flip-both,\\n.fa-flip-horizontal.fa-flip-vertical {\\n -webkit-transform: scale(-1, -1);\\n transform: scale(-1, -1);\\n}\\n\\n.fa-rotate-by {\\n -webkit-transform: rotate(var(--fa-rotate-angle, none));\\n transform: rotate(var(--fa-rotate-angle, none));\\n}\\n\\n.fa-stack {\\n display: inline-block;\\n vertical-align: middle;\\n height: 2em;\\n position: relative;\\n width: 2.5em;\\n}\\n\\n.fa-stack-1x,\\n.fa-stack-2x {\\n bottom: 0;\\n left: 0;\\n margin: auto;\\n position: absolute;\\n right: 0;\\n top: 0;\\n z-index: var(--fa-stack-z-index, auto);\\n}\\n\\n.svg-inline--fa.fa-stack-1x {\\n height: 1em;\\n width: 1.25em;\\n}\\n.svg-inline--fa.fa-stack-2x {\\n height: 2em;\\n width: 2.5em;\\n}\\n\\n.fa-inverse {\\n color: var(--fa-inverse, #fff);\\n}\\n\\n.sr-only,\\n.fa-sr-only {\\n position: absolute;\\n width: 1px;\\n height: 1px;\\n padding: 0;\\n margin: -1px;\\n overflow: hidden;\\n clip: rect(0, 0, 0, 0);\\n white-space: nowrap;\\n border-width: 0;\\n}\\n\\n.sr-only-focusable:not(:focus),\\n.fa-sr-only-focusable:not(:focus) {\\n position: absolute;\\n width: 1px;\\n height: 1px;\\n padding: 0;\\n margin: -1px;\\n overflow: hidden;\\n clip: rect(0, 0, 0, 0);\\n white-space: nowrap;\\n border-width: 0;\\n}\\n\\n.svg-inline--fa .fa-primary {\\n fill: var(--fa-primary-color, currentColor);\\n opacity: var(--fa-primary-opacity, 1);\\n}\\n\\n.svg-inline--fa .fa-secondary {\\n fill: var(--fa-secondary-color, currentColor);\\n opacity: var(--fa-secondary-opacity, 0.4);\\n}\\n\\n.svg-inline--fa.fa-swap-opacity .fa-primary {\\n opacity: var(--fa-secondary-opacity, 0.4);\\n}\\n\\n.svg-inline--fa.fa-swap-opacity .fa-secondary {\\n opacity: var(--fa-primary-opacity, 1);\\n}\\n\\n.svg-inline--fa mask .fa-primary,\\n.svg-inline--fa mask .fa-secondary {\\n fill: black;\\n}\\n\\n.fad.fa-inverse,\\n.fa-duotone.fa-inverse {\\n color: var(--fa-inverse, #fff);\\n}\";\n\nfunction css() {\n var dcp = DEFAULT_CSS_PREFIX;\n var drc = DEFAULT_REPLACEMENT_CLASS;\n var fp = config.cssPrefix;\n var rc = config.replacementClass;\n var s = baseStyles;\n\n if (fp !== dcp || rc !== drc) {\n var dPatt = new RegExp(\"\\\\.\".concat(dcp, \"\\\\-\"), 'g');\n var customPropPatt = new RegExp(\"\\\\--\".concat(dcp, \"\\\\-\"), 'g');\n var rPatt = new RegExp(\"\\\\.\".concat(drc), 'g');\n s = s.replace(dPatt, \".\".concat(fp, \"-\")).replace(customPropPatt, \"--\".concat(fp, \"-\")).replace(rPatt, \".\".concat(rc));\n }\n\n return s;\n}\n\nvar _cssInserted = false;\n\nfunction ensureCss() {\n if (config.autoAddCss && !_cssInserted) {\n insertCss(css());\n _cssInserted = true;\n }\n}\n\nvar InjectCSS = {\n mixout: function mixout() {\n return {\n dom: {\n css: css,\n insertCss: ensureCss\n }\n };\n },\n hooks: function hooks() {\n return {\n beforeDOMElementCreation: function beforeDOMElementCreation() {\n ensureCss();\n },\n beforeI2svg: function beforeI2svg() {\n ensureCss();\n }\n };\n }\n};\n\nvar w = WINDOW || {};\nif (!w[NAMESPACE_IDENTIFIER]) w[NAMESPACE_IDENTIFIER] = {};\nif (!w[NAMESPACE_IDENTIFIER].styles) w[NAMESPACE_IDENTIFIER].styles = {};\nif (!w[NAMESPACE_IDENTIFIER].hooks) w[NAMESPACE_IDENTIFIER].hooks = {};\nif (!w[NAMESPACE_IDENTIFIER].shims) w[NAMESPACE_IDENTIFIER].shims = [];\nvar namespace = w[NAMESPACE_IDENTIFIER];\n\nvar functions = [];\n\nvar listener = function listener() {\n DOCUMENT.removeEventListener('DOMContentLoaded', listener);\n loaded = 1;\n functions.map(function (fn) {\n return fn();\n });\n};\n\nvar loaded = false;\n\nif (IS_DOM) {\n loaded = (DOCUMENT.documentElement.doScroll ? /^loaded|^c/ : /^loaded|^i|^c/).test(DOCUMENT.readyState);\n if (!loaded) DOCUMENT.addEventListener('DOMContentLoaded', listener);\n}\n\nfunction domready (fn) {\n if (!IS_DOM) return;\n loaded ? setTimeout(fn, 0) : functions.push(fn);\n}\n\nfunction toHtml(abstractNodes) {\n var tag = abstractNodes.tag,\n _abstractNodes$attrib = abstractNodes.attributes,\n attributes = _abstractNodes$attrib === void 0 ? {} : _abstractNodes$attrib,\n _abstractNodes$childr = abstractNodes.children,\n children = _abstractNodes$childr === void 0 ? [] : _abstractNodes$childr;\n\n if (typeof abstractNodes === 'string') {\n return htmlEscape(abstractNodes);\n } else {\n return \"<\".concat(tag, \" \").concat(joinAttributes(attributes), \">\").concat(children.map(toHtml).join(''), \"\");\n }\n}\n\nfunction iconFromMapping(mapping, prefix, iconName) {\n if (mapping && mapping[prefix] && mapping[prefix][iconName]) {\n return {\n prefix: prefix,\n iconName: iconName,\n icon: mapping[prefix][iconName]\n };\n }\n}\n\n/**\n * Internal helper to bind a function known to have 4 arguments\n * to a given context.\n */\n\nvar bindInternal4 = function bindInternal4(func, thisContext) {\n return function (a, b, c, d) {\n return func.call(thisContext, a, b, c, d);\n };\n};\n\n/**\n * # Reduce\n *\n * A fast object `.reduce()` implementation.\n *\n * @param {Object} subject The object to reduce over.\n * @param {Function} fn The reducer function.\n * @param {mixed} initialValue The initial value for the reducer, defaults to subject[0].\n * @param {Object} thisContext The context for the reducer.\n * @return {mixed} The final result.\n */\n\n\nvar reduce = function fastReduceObject(subject, fn, initialValue, thisContext) {\n var keys = Object.keys(subject),\n length = keys.length,\n iterator = thisContext !== undefined ? bindInternal4(fn, thisContext) : fn,\n i,\n key,\n result;\n\n if (initialValue === undefined) {\n i = 1;\n result = subject[keys[0]];\n } else {\n i = 0;\n result = initialValue;\n }\n\n for (; i < length; i++) {\n key = keys[i];\n result = iterator(result, subject[key], key, subject);\n }\n\n return result;\n};\n\n/**\n * ucs2decode() and codePointAt() are both works of Mathias Bynens and licensed under MIT\n *\n * Copyright Mathias Bynens \n\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\nfunction ucs2decode(string) {\n var output = [];\n var counter = 0;\n var length = string.length;\n\n while (counter < length) {\n var value = string.charCodeAt(counter++);\n\n if (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n var extra = string.charCodeAt(counter++);\n\n if ((extra & 0xFC00) == 0xDC00) {\n // eslint-disable-line eqeqeq\n output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n } else {\n output.push(value);\n counter--;\n }\n } else {\n output.push(value);\n }\n }\n\n return output;\n}\n\nfunction toHex(unicode) {\n var decoded = ucs2decode(unicode);\n return decoded.length === 1 ? decoded[0].toString(16) : null;\n}\nfunction codePointAt(string, index) {\n var size = string.length;\n var first = string.charCodeAt(index);\n var second;\n\n if (first >= 0xD800 && first <= 0xDBFF && size > index + 1) {\n second = string.charCodeAt(index + 1);\n\n if (second >= 0xDC00 && second <= 0xDFFF) {\n return (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;\n }\n }\n\n return first;\n}\n\nfunction normalizeIcons(icons) {\n return Object.keys(icons).reduce(function (acc, iconName) {\n var icon = icons[iconName];\n var expanded = !!icon.icon;\n\n if (expanded) {\n acc[icon.iconName] = icon.icon;\n } else {\n acc[iconName] = icon;\n }\n\n return acc;\n }, {});\n}\n\nfunction defineIcons(prefix, icons) {\n var params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var _params$skipHooks = params.skipHooks,\n skipHooks = _params$skipHooks === void 0 ? false : _params$skipHooks;\n var normalized = normalizeIcons(icons);\n\n if (typeof namespace.hooks.addPack === 'function' && !skipHooks) {\n namespace.hooks.addPack(prefix, normalizeIcons(icons));\n } else {\n namespace.styles[prefix] = _objectSpread2(_objectSpread2({}, namespace.styles[prefix] || {}), normalized);\n }\n /**\n * Font Awesome 4 used the prefix of `fa` for all icons. With the introduction\n * of new styles we needed to differentiate between them. Prefix `fa` is now an alias\n * for `fas` so we'll ease the upgrade process for our users by automatically defining\n * this as well.\n */\n\n\n if (prefix === 'fas') {\n defineIcons('fa', icons);\n }\n}\n\nvar duotonePathRe = [/*#__PURE__*/_wrapRegExp(/path d=\"((?:(?!\")[\\s\\S])+)\".*path d=\"((?:(?!\")[\\s\\S])+)\"/, {\n d1: 1,\n d2: 2\n}), /*#__PURE__*/_wrapRegExp(/path class=\"((?:(?!\")[\\s\\S])+)\".*d=\"((?:(?!\")[\\s\\S])+)\".*path class=\"((?:(?!\")[\\s\\S])+)\".*d=\"((?:(?!\")[\\s\\S])+)\"/, {\n cls1: 1,\n d1: 2,\n cls2: 3,\n d2: 4\n}), /*#__PURE__*/_wrapRegExp(/path class=\"((?:(?!\")[\\s\\S])+)\".*d=\"((?:(?!\")[\\s\\S])+)\"/, {\n cls1: 1,\n d1: 2\n})];\n\nvar _LONG_STYLE, _PREFIXES, _PREFIXES_FOR_FAMILY;\nvar styles = namespace.styles,\n shims = namespace.shims;\nvar LONG_STYLE = (_LONG_STYLE = {}, _defineProperty(_LONG_STYLE, FAMILY_CLASSIC, Object.values(PREFIX_TO_LONG_STYLE[FAMILY_CLASSIC])), _defineProperty(_LONG_STYLE, FAMILY_SHARP, Object.values(PREFIX_TO_LONG_STYLE[FAMILY_SHARP])), _LONG_STYLE);\nvar _defaultUsablePrefix = null;\nvar _byUnicode = {};\nvar _byLigature = {};\nvar _byOldName = {};\nvar _byOldUnicode = {};\nvar _byAlias = {};\nvar PREFIXES = (_PREFIXES = {}, _defineProperty(_PREFIXES, FAMILY_CLASSIC, Object.keys(PREFIX_TO_STYLE[FAMILY_CLASSIC])), _defineProperty(_PREFIXES, FAMILY_SHARP, Object.keys(PREFIX_TO_STYLE[FAMILY_SHARP])), _PREFIXES);\n\nfunction isReserved(name) {\n return ~RESERVED_CLASSES.indexOf(name);\n}\n\nfunction getIconName(cssPrefix, cls) {\n var parts = cls.split('-');\n var prefix = parts[0];\n var iconName = parts.slice(1).join('-');\n\n if (prefix === cssPrefix && iconName !== '' && !isReserved(iconName)) {\n return iconName;\n } else {\n return null;\n }\n}\nvar build = function build() {\n var lookup = function lookup(reducer) {\n return reduce(styles, function (o, style, prefix) {\n o[prefix] = reduce(style, reducer, {});\n return o;\n }, {});\n };\n\n _byUnicode = lookup(function (acc, icon, iconName) {\n if (icon[3]) {\n acc[icon[3]] = iconName;\n }\n\n if (icon[2]) {\n var aliases = icon[2].filter(function (a) {\n return typeof a === 'number';\n });\n aliases.forEach(function (alias) {\n acc[alias.toString(16)] = iconName;\n });\n }\n\n return acc;\n });\n _byLigature = lookup(function (acc, icon, iconName) {\n acc[iconName] = iconName;\n\n if (icon[2]) {\n var aliases = icon[2].filter(function (a) {\n return typeof a === 'string';\n });\n aliases.forEach(function (alias) {\n acc[alias] = iconName;\n });\n }\n\n return acc;\n });\n _byAlias = lookup(function (acc, icon, iconName) {\n var aliases = icon[2];\n acc[iconName] = iconName;\n aliases.forEach(function (alias) {\n acc[alias] = iconName;\n });\n return acc;\n }); // If we have a Kit, we can't determine if regular is available since we\n // could be auto-fetching it. We'll have to assume that it is available.\n\n var hasRegular = 'far' in styles || config.autoFetchSvg;\n var shimLookups = reduce(shims, function (acc, shim) {\n var maybeNameMaybeUnicode = shim[0];\n var prefix = shim[1];\n var iconName = shim[2];\n\n if (prefix === 'far' && !hasRegular) {\n prefix = 'fas';\n }\n\n if (typeof maybeNameMaybeUnicode === 'string') {\n acc.names[maybeNameMaybeUnicode] = {\n prefix: prefix,\n iconName: iconName\n };\n }\n\n if (typeof maybeNameMaybeUnicode === 'number') {\n acc.unicodes[maybeNameMaybeUnicode.toString(16)] = {\n prefix: prefix,\n iconName: iconName\n };\n }\n\n return acc;\n }, {\n names: {},\n unicodes: {}\n });\n _byOldName = shimLookups.names;\n _byOldUnicode = shimLookups.unicodes;\n _defaultUsablePrefix = getCanonicalPrefix(config.styleDefault, {\n family: config.familyDefault\n });\n};\nonChange(function (c) {\n _defaultUsablePrefix = getCanonicalPrefix(c.styleDefault, {\n family: config.familyDefault\n });\n});\nbuild();\nfunction byUnicode(prefix, unicode) {\n return (_byUnicode[prefix] || {})[unicode];\n}\nfunction byLigature(prefix, ligature) {\n return (_byLigature[prefix] || {})[ligature];\n}\nfunction byAlias(prefix, alias) {\n return (_byAlias[prefix] || {})[alias];\n}\nfunction byOldName(name) {\n return _byOldName[name] || {\n prefix: null,\n iconName: null\n };\n}\nfunction byOldUnicode(unicode) {\n var oldUnicode = _byOldUnicode[unicode];\n var newUnicode = byUnicode('fas', unicode);\n return oldUnicode || (newUnicode ? {\n prefix: 'fas',\n iconName: newUnicode\n } : null) || {\n prefix: null,\n iconName: null\n };\n}\nfunction getDefaultUsablePrefix() {\n return _defaultUsablePrefix;\n}\nvar emptyCanonicalIcon = function emptyCanonicalIcon() {\n return {\n prefix: null,\n iconName: null,\n rest: []\n };\n};\nfunction getCanonicalPrefix(styleOrPrefix) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$family = params.family,\n family = _params$family === void 0 ? FAMILY_CLASSIC : _params$family;\n var style = PREFIX_TO_STYLE[family][styleOrPrefix];\n var prefix = STYLE_TO_PREFIX[family][styleOrPrefix] || STYLE_TO_PREFIX[family][style];\n var defined = styleOrPrefix in namespace.styles ? styleOrPrefix : null;\n return prefix || defined || null;\n}\nvar PREFIXES_FOR_FAMILY = (_PREFIXES_FOR_FAMILY = {}, _defineProperty(_PREFIXES_FOR_FAMILY, FAMILY_CLASSIC, Object.keys(PREFIX_TO_LONG_STYLE[FAMILY_CLASSIC])), _defineProperty(_PREFIXES_FOR_FAMILY, FAMILY_SHARP, Object.keys(PREFIX_TO_LONG_STYLE[FAMILY_SHARP])), _PREFIXES_FOR_FAMILY);\nfunction getCanonicalIcon(values) {\n var _famProps;\n\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$skipLookups = params.skipLookups,\n skipLookups = _params$skipLookups === void 0 ? false : _params$skipLookups;\n var famProps = (_famProps = {}, _defineProperty(_famProps, FAMILY_CLASSIC, \"\".concat(config.cssPrefix, \"-\").concat(FAMILY_CLASSIC)), _defineProperty(_famProps, FAMILY_SHARP, \"\".concat(config.cssPrefix, \"-\").concat(FAMILY_SHARP)), _famProps);\n var givenPrefix = null;\n var family = FAMILY_CLASSIC;\n\n if (values.includes(famProps[FAMILY_CLASSIC]) || values.some(function (v) {\n return PREFIXES_FOR_FAMILY[FAMILY_CLASSIC].includes(v);\n })) {\n family = FAMILY_CLASSIC;\n }\n\n if (values.includes(famProps[FAMILY_SHARP]) || values.some(function (v) {\n return PREFIXES_FOR_FAMILY[FAMILY_SHARP].includes(v);\n })) {\n family = FAMILY_SHARP;\n }\n\n var canonical = values.reduce(function (acc, cls) {\n var iconName = getIconName(config.cssPrefix, cls);\n\n if (styles[cls]) {\n cls = LONG_STYLE[family].includes(cls) ? LONG_STYLE_TO_PREFIX[family][cls] : cls;\n givenPrefix = cls;\n acc.prefix = cls;\n } else if (PREFIXES[family].indexOf(cls) > -1) {\n givenPrefix = cls;\n acc.prefix = getCanonicalPrefix(cls, {\n family: family\n });\n } else if (iconName) {\n acc.iconName = iconName;\n } else if (cls !== config.replacementClass && cls !== famProps[FAMILY_CLASSIC] && cls !== famProps[FAMILY_SHARP]) {\n acc.rest.push(cls);\n }\n\n if (!skipLookups && acc.prefix && acc.iconName) {\n var shim = givenPrefix === 'fa' ? byOldName(acc.iconName) : {};\n var aliasIconName = byAlias(acc.prefix, acc.iconName);\n\n if (shim.prefix) {\n givenPrefix = null;\n }\n\n acc.iconName = shim.iconName || aliasIconName || acc.iconName;\n acc.prefix = shim.prefix || acc.prefix;\n\n if (acc.prefix === 'far' && !styles['far'] && styles['fas'] && !config.autoFetchSvg) {\n // Allow a fallback from the regular style to solid if regular is not available\n // but only if we aren't auto-fetching SVGs\n acc.prefix = 'fas';\n }\n }\n\n return acc;\n }, emptyCanonicalIcon());\n\n if (values.includes('fa-brands') || values.includes('fab')) {\n canonical.prefix = 'fab';\n }\n\n if (values.includes('fa-duotone') || values.includes('fad')) {\n canonical.prefix = 'fad';\n }\n\n if (!canonical.prefix && family === FAMILY_SHARP && (styles['fass'] || config.autoFetchSvg)) {\n canonical.prefix = 'fass';\n canonical.iconName = byAlias(canonical.prefix, canonical.iconName) || canonical.iconName;\n }\n\n if (canonical.prefix === 'fa' || givenPrefix === 'fa') {\n // The fa prefix is not canonical. So if it has made it through until this point\n // we will shift it to the correct prefix.\n canonical.prefix = getDefaultUsablePrefix() || 'fas';\n }\n\n return canonical;\n}\n\nvar Library = /*#__PURE__*/function () {\n function Library() {\n _classCallCheck(this, Library);\n\n this.definitions = {};\n }\n\n _createClass(Library, [{\n key: \"add\",\n value: function add() {\n var _this = this;\n\n for (var _len = arguments.length, definitions = new Array(_len), _key = 0; _key < _len; _key++) {\n definitions[_key] = arguments[_key];\n }\n\n var additions = definitions.reduce(this._pullDefinitions, {});\n Object.keys(additions).forEach(function (key) {\n _this.definitions[key] = _objectSpread2(_objectSpread2({}, _this.definitions[key] || {}), additions[key]);\n defineIcons(key, additions[key]); // TODO can we stop doing this? We can't get the icons by 'fa-solid' any longer so this probably needs to change\n\n var longPrefix = PREFIX_TO_LONG_STYLE[FAMILY_CLASSIC][key];\n if (longPrefix) defineIcons(longPrefix, additions[key]);\n build();\n });\n }\n }, {\n key: \"reset\",\n value: function reset() {\n this.definitions = {};\n }\n }, {\n key: \"_pullDefinitions\",\n value: function _pullDefinitions(additions, definition) {\n var normalized = definition.prefix && definition.iconName && definition.icon ? {\n 0: definition\n } : definition;\n Object.keys(normalized).map(function (key) {\n var _normalized$key = normalized[key],\n prefix = _normalized$key.prefix,\n iconName = _normalized$key.iconName,\n icon = _normalized$key.icon;\n var aliases = icon[2];\n if (!additions[prefix]) additions[prefix] = {};\n\n if (aliases.length > 0) {\n aliases.forEach(function (alias) {\n if (typeof alias === 'string') {\n additions[prefix][alias] = icon;\n }\n });\n }\n\n additions[prefix][iconName] = icon;\n });\n return additions;\n }\n }]);\n\n return Library;\n}();\n\nvar _plugins = [];\nvar _hooks = {};\nvar providers = {};\nvar defaultProviderKeys = Object.keys(providers);\nfunction registerPlugins(nextPlugins, _ref) {\n var obj = _ref.mixoutsTo;\n _plugins = nextPlugins;\n _hooks = {};\n Object.keys(providers).forEach(function (k) {\n if (defaultProviderKeys.indexOf(k) === -1) {\n delete providers[k];\n }\n });\n\n _plugins.forEach(function (plugin) {\n var mixout = plugin.mixout ? plugin.mixout() : {};\n Object.keys(mixout).forEach(function (tk) {\n if (typeof mixout[tk] === 'function') {\n obj[tk] = mixout[tk];\n }\n\n if (_typeof(mixout[tk]) === 'object') {\n Object.keys(mixout[tk]).forEach(function (sk) {\n if (!obj[tk]) {\n obj[tk] = {};\n }\n\n obj[tk][sk] = mixout[tk][sk];\n });\n }\n });\n\n if (plugin.hooks) {\n var hooks = plugin.hooks();\n Object.keys(hooks).forEach(function (hook) {\n if (!_hooks[hook]) {\n _hooks[hook] = [];\n }\n\n _hooks[hook].push(hooks[hook]);\n });\n }\n\n if (plugin.provides) {\n plugin.provides(providers);\n }\n });\n\n return obj;\n}\nfunction chainHooks(hook, accumulator) {\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n\n var hookFns = _hooks[hook] || [];\n hookFns.forEach(function (hookFn) {\n accumulator = hookFn.apply(null, [accumulator].concat(args)); // eslint-disable-line no-useless-call\n });\n return accumulator;\n}\nfunction callHooks(hook) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n var hookFns = _hooks[hook] || [];\n hookFns.forEach(function (hookFn) {\n hookFn.apply(null, args);\n });\n return undefined;\n}\nfunction callProvided() {\n var hook = arguments[0];\n var args = Array.prototype.slice.call(arguments, 1);\n return providers[hook] ? providers[hook].apply(null, args) : undefined;\n}\n\nfunction findIconDefinition(iconLookup) {\n if (iconLookup.prefix === 'fa') {\n iconLookup.prefix = 'fas';\n }\n\n var iconName = iconLookup.iconName;\n var prefix = iconLookup.prefix || getDefaultUsablePrefix();\n if (!iconName) return;\n iconName = byAlias(prefix, iconName) || iconName;\n return iconFromMapping(library.definitions, prefix, iconName) || iconFromMapping(namespace.styles, prefix, iconName);\n}\nvar library = new Library();\nvar noAuto = function noAuto() {\n config.autoReplaceSvg = false;\n config.observeMutations = false;\n callHooks('noAuto');\n};\nvar dom = {\n i2svg: function i2svg() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n if (IS_DOM) {\n callHooks('beforeI2svg', params);\n callProvided('pseudoElements2svg', params);\n return callProvided('i2svg', params);\n } else {\n return Promise.reject('Operation requires a DOM of some kind.');\n }\n },\n watch: function watch() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var autoReplaceSvgRoot = params.autoReplaceSvgRoot;\n\n if (config.autoReplaceSvg === false) {\n config.autoReplaceSvg = true;\n }\n\n config.observeMutations = true;\n domready(function () {\n autoReplace({\n autoReplaceSvgRoot: autoReplaceSvgRoot\n });\n callHooks('watch', params);\n });\n }\n};\nvar parse = {\n icon: function icon(_icon) {\n if (_icon === null) {\n return null;\n }\n\n if (_typeof(_icon) === 'object' && _icon.prefix && _icon.iconName) {\n return {\n prefix: _icon.prefix,\n iconName: byAlias(_icon.prefix, _icon.iconName) || _icon.iconName\n };\n }\n\n if (Array.isArray(_icon) && _icon.length === 2) {\n var iconName = _icon[1].indexOf('fa-') === 0 ? _icon[1].slice(3) : _icon[1];\n var prefix = getCanonicalPrefix(_icon[0]);\n return {\n prefix: prefix,\n iconName: byAlias(prefix, iconName) || iconName\n };\n }\n\n if (typeof _icon === 'string' && (_icon.indexOf(\"\".concat(config.cssPrefix, \"-\")) > -1 || _icon.match(ICON_SELECTION_SYNTAX_PATTERN))) {\n var canonicalIcon = getCanonicalIcon(_icon.split(' '), {\n skipLookups: true\n });\n return {\n prefix: canonicalIcon.prefix || getDefaultUsablePrefix(),\n iconName: byAlias(canonicalIcon.prefix, canonicalIcon.iconName) || canonicalIcon.iconName\n };\n }\n\n if (typeof _icon === 'string') {\n var _prefix = getDefaultUsablePrefix();\n\n return {\n prefix: _prefix,\n iconName: byAlias(_prefix, _icon) || _icon\n };\n }\n }\n};\nvar api = {\n noAuto: noAuto,\n config: config,\n dom: dom,\n parse: parse,\n library: library,\n findIconDefinition: findIconDefinition,\n toHtml: toHtml\n};\n\nvar autoReplace = function autoReplace() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _params$autoReplaceSv = params.autoReplaceSvgRoot,\n autoReplaceSvgRoot = _params$autoReplaceSv === void 0 ? DOCUMENT : _params$autoReplaceSv;\n if ((Object.keys(namespace.styles).length > 0 || config.autoFetchSvg) && IS_DOM && config.autoReplaceSvg) api.dom.i2svg({\n node: autoReplaceSvgRoot\n });\n};\n\nfunction domVariants(val, abstractCreator) {\n Object.defineProperty(val, 'abstract', {\n get: abstractCreator\n });\n Object.defineProperty(val, 'html', {\n get: function get() {\n return val.abstract.map(function (a) {\n return toHtml(a);\n });\n }\n });\n Object.defineProperty(val, 'node', {\n get: function get() {\n if (!IS_DOM) return;\n var container = DOCUMENT.createElement('div');\n container.innerHTML = val.html;\n return container.children;\n }\n });\n return val;\n}\n\nfunction asIcon (_ref) {\n var children = _ref.children,\n main = _ref.main,\n mask = _ref.mask,\n attributes = _ref.attributes,\n styles = _ref.styles,\n transform = _ref.transform;\n\n if (transformIsMeaningful(transform) && main.found && !mask.found) {\n var width = main.width,\n height = main.height;\n var offset = {\n x: width / height / 2,\n y: 0.5\n };\n attributes['style'] = joinStyles(_objectSpread2(_objectSpread2({}, styles), {}, {\n 'transform-origin': \"\".concat(offset.x + transform.x / 16, \"em \").concat(offset.y + transform.y / 16, \"em\")\n }));\n }\n\n return [{\n tag: 'svg',\n attributes: attributes,\n children: children\n }];\n}\n\nfunction asSymbol (_ref) {\n var prefix = _ref.prefix,\n iconName = _ref.iconName,\n children = _ref.children,\n attributes = _ref.attributes,\n symbol = _ref.symbol;\n var id = symbol === true ? \"\".concat(prefix, \"-\").concat(config.cssPrefix, \"-\").concat(iconName) : symbol;\n return [{\n tag: 'svg',\n attributes: {\n style: 'display: none;'\n },\n children: [{\n tag: 'symbol',\n attributes: _objectSpread2(_objectSpread2({}, attributes), {}, {\n id: id\n }),\n children: children\n }]\n }];\n}\n\nfunction makeInlineSvgAbstract(params) {\n var _params$icons = params.icons,\n main = _params$icons.main,\n mask = _params$icons.mask,\n prefix = params.prefix,\n iconName = params.iconName,\n transform = params.transform,\n symbol = params.symbol,\n title = params.title,\n maskId = params.maskId,\n titleId = params.titleId,\n extra = params.extra,\n _params$watchable = params.watchable,\n watchable = _params$watchable === void 0 ? false : _params$watchable;\n\n var _ref = mask.found ? mask : main,\n width = _ref.width,\n height = _ref.height;\n\n var isUploadedIcon = prefix === 'fak';\n var attrClass = [config.replacementClass, iconName ? \"\".concat(config.cssPrefix, \"-\").concat(iconName) : ''].filter(function (c) {\n return extra.classes.indexOf(c) === -1;\n }).filter(function (c) {\n return c !== '' || !!c;\n }).concat(extra.classes).join(' ');\n var content = {\n children: [],\n attributes: _objectSpread2(_objectSpread2({}, extra.attributes), {}, {\n 'data-prefix': prefix,\n 'data-icon': iconName,\n 'class': attrClass,\n 'role': extra.attributes.role || 'img',\n 'xmlns': 'http://www.w3.org/2000/svg',\n 'viewBox': \"0 0 \".concat(width, \" \").concat(height)\n })\n };\n var uploadedIconWidthStyle = isUploadedIcon && !~extra.classes.indexOf('fa-fw') ? {\n width: \"\".concat(width / height * 16 * 0.0625, \"em\")\n } : {};\n\n if (watchable) {\n content.attributes[DATA_FA_I2SVG] = '';\n }\n\n if (title) {\n content.children.push({\n tag: 'title',\n attributes: {\n id: content.attributes['aria-labelledby'] || \"title-\".concat(titleId || nextUniqueId())\n },\n children: [title]\n });\n delete content.attributes.title;\n }\n\n var args = _objectSpread2(_objectSpread2({}, content), {}, {\n prefix: prefix,\n iconName: iconName,\n main: main,\n mask: mask,\n maskId: maskId,\n transform: transform,\n symbol: symbol,\n styles: _objectSpread2(_objectSpread2({}, uploadedIconWidthStyle), extra.styles)\n });\n\n var _ref2 = mask.found && main.found ? callProvided('generateAbstractMask', args) || {\n children: [],\n attributes: {}\n } : callProvided('generateAbstractIcon', args) || {\n children: [],\n attributes: {}\n },\n children = _ref2.children,\n attributes = _ref2.attributes;\n\n args.children = children;\n args.attributes = attributes;\n\n if (symbol) {\n return asSymbol(args);\n } else {\n return asIcon(args);\n }\n}\nfunction makeLayersTextAbstract(params) {\n var content = params.content,\n width = params.width,\n height = params.height,\n transform = params.transform,\n title = params.title,\n extra = params.extra,\n _params$watchable2 = params.watchable,\n watchable = _params$watchable2 === void 0 ? false : _params$watchable2;\n\n var attributes = _objectSpread2(_objectSpread2(_objectSpread2({}, extra.attributes), title ? {\n 'title': title\n } : {}), {}, {\n 'class': extra.classes.join(' ')\n });\n\n if (watchable) {\n attributes[DATA_FA_I2SVG] = '';\n }\n\n var styles = _objectSpread2({}, extra.styles);\n\n if (transformIsMeaningful(transform)) {\n styles['transform'] = transformForCss({\n transform: transform,\n startCentered: true,\n width: width,\n height: height\n });\n styles['-webkit-transform'] = styles['transform'];\n }\n\n var styleString = joinStyles(styles);\n\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n\n var val = [];\n val.push({\n tag: 'span',\n attributes: attributes,\n children: [content]\n });\n\n if (title) {\n val.push({\n tag: 'span',\n attributes: {\n class: 'sr-only'\n },\n children: [title]\n });\n }\n\n return val;\n}\nfunction makeLayersCounterAbstract(params) {\n var content = params.content,\n title = params.title,\n extra = params.extra;\n\n var attributes = _objectSpread2(_objectSpread2(_objectSpread2({}, extra.attributes), title ? {\n 'title': title\n } : {}), {}, {\n 'class': extra.classes.join(' ')\n });\n\n var styleString = joinStyles(extra.styles);\n\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n\n var val = [];\n val.push({\n tag: 'span',\n attributes: attributes,\n children: [content]\n });\n\n if (title) {\n val.push({\n tag: 'span',\n attributes: {\n class: 'sr-only'\n },\n children: [title]\n });\n }\n\n return val;\n}\n\nvar styles$1 = namespace.styles;\nfunction asFoundIcon(icon) {\n var width = icon[0];\n var height = icon[1];\n\n var _icon$slice = icon.slice(4),\n _icon$slice2 = _slicedToArray(_icon$slice, 1),\n vectorData = _icon$slice2[0];\n\n var element = null;\n\n if (Array.isArray(vectorData)) {\n element = {\n tag: 'g',\n attributes: {\n class: \"\".concat(config.cssPrefix, \"-\").concat(DUOTONE_CLASSES.GROUP)\n },\n children: [{\n tag: 'path',\n attributes: {\n class: \"\".concat(config.cssPrefix, \"-\").concat(DUOTONE_CLASSES.SECONDARY),\n fill: 'currentColor',\n d: vectorData[0]\n }\n }, {\n tag: 'path',\n attributes: {\n class: \"\".concat(config.cssPrefix, \"-\").concat(DUOTONE_CLASSES.PRIMARY),\n fill: 'currentColor',\n d: vectorData[1]\n }\n }]\n };\n } else {\n element = {\n tag: 'path',\n attributes: {\n fill: 'currentColor',\n d: vectorData\n }\n };\n }\n\n return {\n found: true,\n width: width,\n height: height,\n icon: element\n };\n}\nvar missingIconResolutionMixin = {\n found: false,\n width: 512,\n height: 512\n};\n\nfunction maybeNotifyMissing(iconName, prefix) {\n if (!PRODUCTION && !config.showMissingIcons && iconName) {\n console.error(\"Icon with name \\\"\".concat(iconName, \"\\\" and prefix \\\"\").concat(prefix, \"\\\" is missing.\"));\n }\n}\n\nfunction findIcon(iconName, prefix) {\n var givenPrefix = prefix;\n\n if (prefix === 'fa' && config.styleDefault !== null) {\n prefix = getDefaultUsablePrefix();\n }\n\n return new Promise(function (resolve, reject) {\n var val = {\n found: false,\n width: 512,\n height: 512,\n icon: callProvided('missingIconAbstract') || {}\n };\n\n if (givenPrefix === 'fa') {\n var shim = byOldName(iconName) || {};\n iconName = shim.iconName || iconName;\n prefix = shim.prefix || prefix;\n }\n\n if (iconName && prefix && styles$1[prefix] && styles$1[prefix][iconName]) {\n var icon = styles$1[prefix][iconName];\n return resolve(asFoundIcon(icon));\n }\n\n maybeNotifyMissing(iconName, prefix);\n resolve(_objectSpread2(_objectSpread2({}, missingIconResolutionMixin), {}, {\n icon: config.showMissingIcons && iconName ? callProvided('missingIconAbstract') || {} : {}\n }));\n });\n}\n\nvar noop$1 = function noop() {};\n\nvar p = config.measurePerformance && PERFORMANCE && PERFORMANCE.mark && PERFORMANCE.measure ? PERFORMANCE : {\n mark: noop$1,\n measure: noop$1\n};\nvar preamble = \"FA \\\"6.4.2\\\"\";\n\nvar begin = function begin(name) {\n p.mark(\"\".concat(preamble, \" \").concat(name, \" begins\"));\n return function () {\n return end(name);\n };\n};\n\nvar end = function end(name) {\n p.mark(\"\".concat(preamble, \" \").concat(name, \" ends\"));\n p.measure(\"\".concat(preamble, \" \").concat(name), \"\".concat(preamble, \" \").concat(name, \" begins\"), \"\".concat(preamble, \" \").concat(name, \" ends\"));\n};\n\nvar perf = {\n begin: begin,\n end: end\n};\n\nvar noop$2 = function noop() {};\n\nfunction isWatched(node) {\n var i2svg = node.getAttribute ? node.getAttribute(DATA_FA_I2SVG) : null;\n return typeof i2svg === 'string';\n}\n\nfunction hasPrefixAndIcon(node) {\n var prefix = node.getAttribute ? node.getAttribute(DATA_PREFIX) : null;\n var icon = node.getAttribute ? node.getAttribute(DATA_ICON) : null;\n return prefix && icon;\n}\n\nfunction hasBeenReplaced(node) {\n return node && node.classList && node.classList.contains && node.classList.contains(config.replacementClass);\n}\n\nfunction getMutator() {\n if (config.autoReplaceSvg === true) {\n return mutators.replace;\n }\n\n var mutator = mutators[config.autoReplaceSvg];\n return mutator || mutators.replace;\n}\n\nfunction createElementNS(tag) {\n return DOCUMENT.createElementNS('http://www.w3.org/2000/svg', tag);\n}\n\nfunction createElement(tag) {\n return DOCUMENT.createElement(tag);\n}\n\nfunction convertSVG(abstractObj) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$ceFn = params.ceFn,\n ceFn = _params$ceFn === void 0 ? abstractObj.tag === 'svg' ? createElementNS : createElement : _params$ceFn;\n\n if (typeof abstractObj === 'string') {\n return DOCUMENT.createTextNode(abstractObj);\n }\n\n var tag = ceFn(abstractObj.tag);\n Object.keys(abstractObj.attributes || []).forEach(function (key) {\n tag.setAttribute(key, abstractObj.attributes[key]);\n });\n var children = abstractObj.children || [];\n children.forEach(function (child) {\n tag.appendChild(convertSVG(child, {\n ceFn: ceFn\n }));\n });\n return tag;\n}\n\nfunction nodeAsComment(node) {\n var comment = \" \".concat(node.outerHTML, \" \");\n /* BEGIN.ATTRIBUTION */\n\n comment = \"\".concat(comment, \"Font Awesome fontawesome.com \");\n /* END.ATTRIBUTION */\n\n return comment;\n}\n\nvar mutators = {\n replace: function replace(mutation) {\n var node = mutation[0];\n\n if (node.parentNode) {\n mutation[1].forEach(function (_abstract) {\n node.parentNode.insertBefore(convertSVG(_abstract), node);\n });\n\n if (node.getAttribute(DATA_FA_I2SVG) === null && config.keepOriginalSource) {\n var comment = DOCUMENT.createComment(nodeAsComment(node));\n node.parentNode.replaceChild(comment, node);\n } else {\n node.remove();\n }\n }\n },\n nest: function nest(mutation) {\n var node = mutation[0];\n var _abstract2 = mutation[1]; // If we already have a replaced node we do not want to continue nesting within it.\n // Short-circuit to the standard replacement\n\n if (~classArray(node).indexOf(config.replacementClass)) {\n return mutators.replace(mutation);\n }\n\n var forSvg = new RegExp(\"\".concat(config.cssPrefix, \"-.*\"));\n delete _abstract2[0].attributes.id;\n\n if (_abstract2[0].attributes.class) {\n var splitClasses = _abstract2[0].attributes.class.split(' ').reduce(function (acc, cls) {\n if (cls === config.replacementClass || cls.match(forSvg)) {\n acc.toSvg.push(cls);\n } else {\n acc.toNode.push(cls);\n }\n\n return acc;\n }, {\n toNode: [],\n toSvg: []\n });\n\n _abstract2[0].attributes.class = splitClasses.toSvg.join(' ');\n\n if (splitClasses.toNode.length === 0) {\n node.removeAttribute('class');\n } else {\n node.setAttribute('class', splitClasses.toNode.join(' '));\n }\n }\n\n var newInnerHTML = _abstract2.map(function (a) {\n return toHtml(a);\n }).join('\\n');\n\n node.setAttribute(DATA_FA_I2SVG, '');\n node.innerHTML = newInnerHTML;\n }\n};\n\nfunction performOperationSync(op) {\n op();\n}\n\nfunction perform(mutations, callback) {\n var callbackFunction = typeof callback === 'function' ? callback : noop$2;\n\n if (mutations.length === 0) {\n callbackFunction();\n } else {\n var frame = performOperationSync;\n\n if (config.mutateApproach === MUTATION_APPROACH_ASYNC) {\n frame = WINDOW.requestAnimationFrame || performOperationSync;\n }\n\n frame(function () {\n var mutator = getMutator();\n var mark = perf.begin('mutate');\n mutations.map(mutator);\n mark();\n callbackFunction();\n });\n }\n}\nvar disabled = false;\nfunction disableObservation() {\n disabled = true;\n}\nfunction enableObservation() {\n disabled = false;\n}\nvar mo = null;\nfunction observe(options) {\n if (!MUTATION_OBSERVER) {\n return;\n }\n\n if (!config.observeMutations) {\n return;\n }\n\n var _options$treeCallback = options.treeCallback,\n treeCallback = _options$treeCallback === void 0 ? noop$2 : _options$treeCallback,\n _options$nodeCallback = options.nodeCallback,\n nodeCallback = _options$nodeCallback === void 0 ? noop$2 : _options$nodeCallback,\n _options$pseudoElemen = options.pseudoElementsCallback,\n pseudoElementsCallback = _options$pseudoElemen === void 0 ? noop$2 : _options$pseudoElemen,\n _options$observeMutat = options.observeMutationsRoot,\n observeMutationsRoot = _options$observeMutat === void 0 ? DOCUMENT : _options$observeMutat;\n mo = new MUTATION_OBSERVER(function (objects) {\n if (disabled) return;\n var defaultPrefix = getDefaultUsablePrefix();\n toArray(objects).forEach(function (mutationRecord) {\n if (mutationRecord.type === 'childList' && mutationRecord.addedNodes.length > 0 && !isWatched(mutationRecord.addedNodes[0])) {\n if (config.searchPseudoElements) {\n pseudoElementsCallback(mutationRecord.target);\n }\n\n treeCallback(mutationRecord.target);\n }\n\n if (mutationRecord.type === 'attributes' && mutationRecord.target.parentNode && config.searchPseudoElements) {\n pseudoElementsCallback(mutationRecord.target.parentNode);\n }\n\n if (mutationRecord.type === 'attributes' && isWatched(mutationRecord.target) && ~ATTRIBUTES_WATCHED_FOR_MUTATION.indexOf(mutationRecord.attributeName)) {\n if (mutationRecord.attributeName === 'class' && hasPrefixAndIcon(mutationRecord.target)) {\n var _getCanonicalIcon = getCanonicalIcon(classArray(mutationRecord.target)),\n prefix = _getCanonicalIcon.prefix,\n iconName = _getCanonicalIcon.iconName;\n\n mutationRecord.target.setAttribute(DATA_PREFIX, prefix || defaultPrefix);\n if (iconName) mutationRecord.target.setAttribute(DATA_ICON, iconName);\n } else if (hasBeenReplaced(mutationRecord.target)) {\n nodeCallback(mutationRecord.target);\n }\n }\n });\n });\n if (!IS_DOM) return;\n mo.observe(observeMutationsRoot, {\n childList: true,\n attributes: true,\n characterData: true,\n subtree: true\n });\n}\nfunction disconnect() {\n if (!mo) return;\n mo.disconnect();\n}\n\nfunction styleParser (node) {\n var style = node.getAttribute('style');\n var val = [];\n\n if (style) {\n val = style.split(';').reduce(function (acc, style) {\n var styles = style.split(':');\n var prop = styles[0];\n var value = styles.slice(1);\n\n if (prop && value.length > 0) {\n acc[prop] = value.join(':').trim();\n }\n\n return acc;\n }, {});\n }\n\n return val;\n}\n\nfunction classParser (node) {\n var existingPrefix = node.getAttribute('data-prefix');\n var existingIconName = node.getAttribute('data-icon');\n var innerText = node.innerText !== undefined ? node.innerText.trim() : '';\n var val = getCanonicalIcon(classArray(node));\n\n if (!val.prefix) {\n val.prefix = getDefaultUsablePrefix();\n }\n\n if (existingPrefix && existingIconName) {\n val.prefix = existingPrefix;\n val.iconName = existingIconName;\n }\n\n if (val.iconName && val.prefix) {\n return val;\n }\n\n if (val.prefix && innerText.length > 0) {\n val.iconName = byLigature(val.prefix, node.innerText) || byUnicode(val.prefix, toHex(node.innerText));\n }\n\n if (!val.iconName && config.autoFetchSvg && node.firstChild && node.firstChild.nodeType === Node.TEXT_NODE) {\n val.iconName = node.firstChild.data;\n }\n\n return val;\n}\n\nfunction attributesParser (node) {\n var extraAttributes = toArray(node.attributes).reduce(function (acc, attr) {\n if (acc.name !== 'class' && acc.name !== 'style') {\n acc[attr.name] = attr.value;\n }\n\n return acc;\n }, {});\n var title = node.getAttribute('title');\n var titleId = node.getAttribute('data-fa-title-id');\n\n if (config.autoA11y) {\n if (title) {\n extraAttributes['aria-labelledby'] = \"\".concat(config.replacementClass, \"-title-\").concat(titleId || nextUniqueId());\n } else {\n extraAttributes['aria-hidden'] = 'true';\n extraAttributes['focusable'] = 'false';\n }\n }\n\n return extraAttributes;\n}\n\nfunction blankMeta() {\n return {\n iconName: null,\n title: null,\n titleId: null,\n prefix: null,\n transform: meaninglessTransform,\n symbol: false,\n mask: {\n iconName: null,\n prefix: null,\n rest: []\n },\n maskId: null,\n extra: {\n classes: [],\n styles: {},\n attributes: {}\n }\n };\n}\nfunction parseMeta(node) {\n var parser = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n styleParser: true\n };\n\n var _classParser = classParser(node),\n iconName = _classParser.iconName,\n prefix = _classParser.prefix,\n extraClasses = _classParser.rest;\n\n var extraAttributes = attributesParser(node);\n var pluginMeta = chainHooks('parseNodeAttributes', {}, node);\n var extraStyles = parser.styleParser ? styleParser(node) : [];\n return _objectSpread2({\n iconName: iconName,\n title: node.getAttribute('title'),\n titleId: node.getAttribute('data-fa-title-id'),\n prefix: prefix,\n transform: meaninglessTransform,\n mask: {\n iconName: null,\n prefix: null,\n rest: []\n },\n maskId: null,\n symbol: false,\n extra: {\n classes: extraClasses,\n styles: extraStyles,\n attributes: extraAttributes\n }\n }, pluginMeta);\n}\n\nvar styles$2 = namespace.styles;\n\nfunction generateMutation(node) {\n var nodeMeta = config.autoReplaceSvg === 'nest' ? parseMeta(node, {\n styleParser: false\n }) : parseMeta(node);\n\n if (~nodeMeta.extra.classes.indexOf(LAYERS_TEXT_CLASSNAME)) {\n return callProvided('generateLayersText', node, nodeMeta);\n } else {\n return callProvided('generateSvgReplacementMutation', node, nodeMeta);\n }\n}\n\nvar knownPrefixes = new Set();\nFAMILIES.map(function (family) {\n knownPrefixes.add(\"fa-\".concat(family));\n});\nObject.keys(PREFIX_TO_STYLE[FAMILY_CLASSIC]).map(knownPrefixes.add.bind(knownPrefixes));\nObject.keys(PREFIX_TO_STYLE[FAMILY_SHARP]).map(knownPrefixes.add.bind(knownPrefixes));\nknownPrefixes = _toConsumableArray(knownPrefixes);\n\nfunction onTree(root) {\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n if (!IS_DOM) return Promise.resolve();\n var htmlClassList = DOCUMENT.documentElement.classList;\n\n var hclAdd = function hclAdd(suffix) {\n return htmlClassList.add(\"\".concat(HTML_CLASS_I2SVG_BASE_CLASS, \"-\").concat(suffix));\n };\n\n var hclRemove = function hclRemove(suffix) {\n return htmlClassList.remove(\"\".concat(HTML_CLASS_I2SVG_BASE_CLASS, \"-\").concat(suffix));\n };\n\n var prefixes = config.autoFetchSvg ? knownPrefixes : FAMILIES.map(function (f) {\n return \"fa-\".concat(f);\n }).concat(Object.keys(styles$2));\n\n if (!prefixes.includes('fa')) {\n prefixes.push('fa');\n }\n\n var prefixesDomQuery = [\".\".concat(LAYERS_TEXT_CLASSNAME, \":not([\").concat(DATA_FA_I2SVG, \"])\")].concat(prefixes.map(function (p) {\n return \".\".concat(p, \":not([\").concat(DATA_FA_I2SVG, \"])\");\n })).join(', ');\n\n if (prefixesDomQuery.length === 0) {\n return Promise.resolve();\n }\n\n var candidates = [];\n\n try {\n candidates = toArray(root.querySelectorAll(prefixesDomQuery));\n } catch (e) {// noop\n }\n\n if (candidates.length > 0) {\n hclAdd('pending');\n hclRemove('complete');\n } else {\n return Promise.resolve();\n }\n\n var mark = perf.begin('onTree');\n var mutations = candidates.reduce(function (acc, node) {\n try {\n var mutation = generateMutation(node);\n\n if (mutation) {\n acc.push(mutation);\n }\n } catch (e) {\n if (!PRODUCTION) {\n if (e.name === 'MissingIcon') {\n console.error(e);\n }\n }\n }\n\n return acc;\n }, []);\n return new Promise(function (resolve, reject) {\n Promise.all(mutations).then(function (resolvedMutations) {\n perform(resolvedMutations, function () {\n hclAdd('active');\n hclAdd('complete');\n hclRemove('pending');\n if (typeof callback === 'function') callback();\n mark();\n resolve();\n });\n }).catch(function (e) {\n mark();\n reject(e);\n });\n });\n}\n\nfunction onNode(node) {\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n generateMutation(node).then(function (mutation) {\n if (mutation) {\n perform([mutation], callback);\n }\n });\n}\n\nfunction resolveIcons(next) {\n return function (maybeIconDefinition) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var iconDefinition = (maybeIconDefinition || {}).icon ? maybeIconDefinition : findIconDefinition(maybeIconDefinition || {});\n var mask = params.mask;\n\n if (mask) {\n mask = (mask || {}).icon ? mask : findIconDefinition(mask || {});\n }\n\n return next(iconDefinition, _objectSpread2(_objectSpread2({}, params), {}, {\n mask: mask\n }));\n };\n}\n\nvar render = function render(iconDefinition) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$transform = params.transform,\n transform = _params$transform === void 0 ? meaninglessTransform : _params$transform,\n _params$symbol = params.symbol,\n symbol = _params$symbol === void 0 ? false : _params$symbol,\n _params$mask = params.mask,\n mask = _params$mask === void 0 ? null : _params$mask,\n _params$maskId = params.maskId,\n maskId = _params$maskId === void 0 ? null : _params$maskId,\n _params$title = params.title,\n title = _params$title === void 0 ? null : _params$title,\n _params$titleId = params.titleId,\n titleId = _params$titleId === void 0 ? null : _params$titleId,\n _params$classes = params.classes,\n classes = _params$classes === void 0 ? [] : _params$classes,\n _params$attributes = params.attributes,\n attributes = _params$attributes === void 0 ? {} : _params$attributes,\n _params$styles = params.styles,\n styles = _params$styles === void 0 ? {} : _params$styles;\n if (!iconDefinition) return;\n var prefix = iconDefinition.prefix,\n iconName = iconDefinition.iconName,\n icon = iconDefinition.icon;\n return domVariants(_objectSpread2({\n type: 'icon'\n }, iconDefinition), function () {\n callHooks('beforeDOMElementCreation', {\n iconDefinition: iconDefinition,\n params: params\n });\n\n if (config.autoA11y) {\n if (title) {\n attributes['aria-labelledby'] = \"\".concat(config.replacementClass, \"-title-\").concat(titleId || nextUniqueId());\n } else {\n attributes['aria-hidden'] = 'true';\n attributes['focusable'] = 'false';\n }\n }\n\n return makeInlineSvgAbstract({\n icons: {\n main: asFoundIcon(icon),\n mask: mask ? asFoundIcon(mask.icon) : {\n found: false,\n width: null,\n height: null,\n icon: {}\n }\n },\n prefix: prefix,\n iconName: iconName,\n transform: _objectSpread2(_objectSpread2({}, meaninglessTransform), transform),\n symbol: symbol,\n title: title,\n maskId: maskId,\n titleId: titleId,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: classes\n }\n });\n });\n};\nvar ReplaceElements = {\n mixout: function mixout() {\n return {\n icon: resolveIcons(render)\n };\n },\n hooks: function hooks() {\n return {\n mutationObserverCallbacks: function mutationObserverCallbacks(accumulator) {\n accumulator.treeCallback = onTree;\n accumulator.nodeCallback = onNode;\n return accumulator;\n }\n };\n },\n provides: function provides(providers$$1) {\n providers$$1.i2svg = function (params) {\n var _params$node = params.node,\n node = _params$node === void 0 ? DOCUMENT : _params$node,\n _params$callback = params.callback,\n callback = _params$callback === void 0 ? function () {} : _params$callback;\n return onTree(node, callback);\n };\n\n providers$$1.generateSvgReplacementMutation = function (node, nodeMeta) {\n var iconName = nodeMeta.iconName,\n title = nodeMeta.title,\n titleId = nodeMeta.titleId,\n prefix = nodeMeta.prefix,\n transform = nodeMeta.transform,\n symbol = nodeMeta.symbol,\n mask = nodeMeta.mask,\n maskId = nodeMeta.maskId,\n extra = nodeMeta.extra;\n return new Promise(function (resolve, reject) {\n Promise.all([findIcon(iconName, prefix), mask.iconName ? findIcon(mask.iconName, mask.prefix) : Promise.resolve({\n found: false,\n width: 512,\n height: 512,\n icon: {}\n })]).then(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n main = _ref2[0],\n mask = _ref2[1];\n\n resolve([node, makeInlineSvgAbstract({\n icons: {\n main: main,\n mask: mask\n },\n prefix: prefix,\n iconName: iconName,\n transform: transform,\n symbol: symbol,\n maskId: maskId,\n title: title,\n titleId: titleId,\n extra: extra,\n watchable: true\n })]);\n }).catch(reject);\n });\n };\n\n providers$$1.generateAbstractIcon = function (_ref3) {\n var children = _ref3.children,\n attributes = _ref3.attributes,\n main = _ref3.main,\n transform = _ref3.transform,\n styles = _ref3.styles;\n var styleString = joinStyles(styles);\n\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n\n var nextChild;\n\n if (transformIsMeaningful(transform)) {\n nextChild = callProvided('generateAbstractTransformGrouping', {\n main: main,\n transform: transform,\n containerWidth: main.width,\n iconWidth: main.width\n });\n }\n\n children.push(nextChild || main.icon);\n return {\n children: children,\n attributes: attributes\n };\n };\n }\n};\n\nvar Layers = {\n mixout: function mixout() {\n return {\n layer: function layer(assembler) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$classes = params.classes,\n classes = _params$classes === void 0 ? [] : _params$classes;\n return domVariants({\n type: 'layer'\n }, function () {\n callHooks('beforeDOMElementCreation', {\n assembler: assembler,\n params: params\n });\n var children = [];\n assembler(function (args) {\n Array.isArray(args) ? args.map(function (a) {\n children = children.concat(a.abstract);\n }) : children = children.concat(args.abstract);\n });\n return [{\n tag: 'span',\n attributes: {\n class: [\"\".concat(config.cssPrefix, \"-layers\")].concat(_toConsumableArray(classes)).join(' ')\n },\n children: children\n }];\n });\n }\n };\n }\n};\n\nvar LayersCounter = {\n mixout: function mixout() {\n return {\n counter: function counter(content) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$title = params.title,\n title = _params$title === void 0 ? null : _params$title,\n _params$classes = params.classes,\n classes = _params$classes === void 0 ? [] : _params$classes,\n _params$attributes = params.attributes,\n attributes = _params$attributes === void 0 ? {} : _params$attributes,\n _params$styles = params.styles,\n styles = _params$styles === void 0 ? {} : _params$styles;\n return domVariants({\n type: 'counter',\n content: content\n }, function () {\n callHooks('beforeDOMElementCreation', {\n content: content,\n params: params\n });\n return makeLayersCounterAbstract({\n content: content.toString(),\n title: title,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: [\"\".concat(config.cssPrefix, \"-layers-counter\")].concat(_toConsumableArray(classes))\n }\n });\n });\n }\n };\n }\n};\n\nvar LayersText = {\n mixout: function mixout() {\n return {\n text: function text(content) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$transform = params.transform,\n transform = _params$transform === void 0 ? meaninglessTransform : _params$transform,\n _params$title = params.title,\n title = _params$title === void 0 ? null : _params$title,\n _params$classes = params.classes,\n classes = _params$classes === void 0 ? [] : _params$classes,\n _params$attributes = params.attributes,\n attributes = _params$attributes === void 0 ? {} : _params$attributes,\n _params$styles = params.styles,\n styles = _params$styles === void 0 ? {} : _params$styles;\n return domVariants({\n type: 'text',\n content: content\n }, function () {\n callHooks('beforeDOMElementCreation', {\n content: content,\n params: params\n });\n return makeLayersTextAbstract({\n content: content,\n transform: _objectSpread2(_objectSpread2({}, meaninglessTransform), transform),\n title: title,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: [\"\".concat(config.cssPrefix, \"-layers-text\")].concat(_toConsumableArray(classes))\n }\n });\n });\n }\n };\n },\n provides: function provides(providers$$1) {\n providers$$1.generateLayersText = function (node, nodeMeta) {\n var title = nodeMeta.title,\n transform = nodeMeta.transform,\n extra = nodeMeta.extra;\n var width = null;\n var height = null;\n\n if (IS_IE) {\n var computedFontSize = parseInt(getComputedStyle(node).fontSize, 10);\n var boundingClientRect = node.getBoundingClientRect();\n width = boundingClientRect.width / computedFontSize;\n height = boundingClientRect.height / computedFontSize;\n }\n\n if (config.autoA11y && !title) {\n extra.attributes['aria-hidden'] = 'true';\n }\n\n return Promise.resolve([node, makeLayersTextAbstract({\n content: node.innerHTML,\n width: width,\n height: height,\n transform: transform,\n title: title,\n extra: extra,\n watchable: true\n })]);\n };\n }\n};\n\nvar CLEAN_CONTENT_PATTERN = new RegExp(\"\\\"\", 'ug');\nvar SECONDARY_UNICODE_RANGE = [1105920, 1112319];\nfunction hexValueFromContent(content) {\n var cleaned = content.replace(CLEAN_CONTENT_PATTERN, '');\n var codePoint = codePointAt(cleaned, 0);\n var isPrependTen = codePoint >= SECONDARY_UNICODE_RANGE[0] && codePoint <= SECONDARY_UNICODE_RANGE[1];\n var isDoubled = cleaned.length === 2 ? cleaned[0] === cleaned[1] : false;\n return {\n value: isDoubled ? toHex(cleaned[0]) : toHex(cleaned),\n isSecondary: isPrependTen || isDoubled\n };\n}\n\nfunction replaceForPosition(node, position) {\n var pendingAttribute = \"\".concat(DATA_FA_PSEUDO_ELEMENT_PENDING).concat(position.replace(':', '-'));\n return new Promise(function (resolve, reject) {\n if (node.getAttribute(pendingAttribute) !== null) {\n // This node is already being processed\n return resolve();\n }\n\n var children = toArray(node.children);\n var alreadyProcessedPseudoElement = children.filter(function (c) {\n return c.getAttribute(DATA_FA_PSEUDO_ELEMENT) === position;\n })[0];\n var styles = WINDOW.getComputedStyle(node, position);\n var fontFamily = styles.getPropertyValue('font-family').match(FONT_FAMILY_PATTERN);\n var fontWeight = styles.getPropertyValue('font-weight');\n var content = styles.getPropertyValue('content');\n\n if (alreadyProcessedPseudoElement && !fontFamily) {\n // If we've already processed it but the current computed style does not result in a font-family,\n // that probably means that a class name that was previously present to make the icon has been\n // removed. So we now should delete the icon.\n node.removeChild(alreadyProcessedPseudoElement);\n return resolve();\n } else if (fontFamily && content !== 'none' && content !== '') {\n var _content = styles.getPropertyValue('content');\n\n var family = ~['Sharp'].indexOf(fontFamily[2]) ? FAMILY_SHARP : FAMILY_CLASSIC;\n var prefix = ~['Solid', 'Regular', 'Light', 'Thin', 'Duotone', 'Brands', 'Kit'].indexOf(fontFamily[2]) ? STYLE_TO_PREFIX[family][fontFamily[2].toLowerCase()] : FONT_WEIGHT_TO_PREFIX[family][fontWeight];\n\n var _hexValueFromContent = hexValueFromContent(_content),\n hexValue = _hexValueFromContent.value,\n isSecondary = _hexValueFromContent.isSecondary;\n\n var isV4 = fontFamily[0].startsWith('FontAwesome');\n var iconName = byUnicode(prefix, hexValue);\n var iconIdentifier = iconName;\n\n if (isV4) {\n var iconName4 = byOldUnicode(hexValue);\n\n if (iconName4.iconName && iconName4.prefix) {\n iconName = iconName4.iconName;\n prefix = iconName4.prefix;\n }\n } // Only convert the pseudo element in this ::before/::after position into an icon if we haven't\n // already done so with the same prefix and iconName\n\n\n if (iconName && !isSecondary && (!alreadyProcessedPseudoElement || alreadyProcessedPseudoElement.getAttribute(DATA_PREFIX) !== prefix || alreadyProcessedPseudoElement.getAttribute(DATA_ICON) !== iconIdentifier)) {\n node.setAttribute(pendingAttribute, iconIdentifier);\n\n if (alreadyProcessedPseudoElement) {\n // Delete the old one, since we're replacing it with a new one\n node.removeChild(alreadyProcessedPseudoElement);\n }\n\n var meta = blankMeta();\n var extra = meta.extra;\n extra.attributes[DATA_FA_PSEUDO_ELEMENT] = position;\n findIcon(iconName, prefix).then(function (main) {\n var _abstract = makeInlineSvgAbstract(_objectSpread2(_objectSpread2({}, meta), {}, {\n icons: {\n main: main,\n mask: emptyCanonicalIcon()\n },\n prefix: prefix,\n iconName: iconIdentifier,\n extra: extra,\n watchable: true\n }));\n\n var element = DOCUMENT.createElementNS('http://www.w3.org/2000/svg', 'svg');\n\n if (position === '::before') {\n node.insertBefore(element, node.firstChild);\n } else {\n node.appendChild(element);\n }\n\n element.outerHTML = _abstract.map(function (a) {\n return toHtml(a);\n }).join('\\n');\n node.removeAttribute(pendingAttribute);\n resolve();\n }).catch(reject);\n } else {\n resolve();\n }\n } else {\n resolve();\n }\n });\n}\n\nfunction replace(node) {\n return Promise.all([replaceForPosition(node, '::before'), replaceForPosition(node, '::after')]);\n}\n\nfunction processable(node) {\n return node.parentNode !== document.head && !~TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS.indexOf(node.tagName.toUpperCase()) && !node.getAttribute(DATA_FA_PSEUDO_ELEMENT) && (!node.parentNode || node.parentNode.tagName !== 'svg');\n}\n\nfunction searchPseudoElements(root) {\n if (!IS_DOM) return;\n return new Promise(function (resolve, reject) {\n var operations = toArray(root.querySelectorAll('*')).filter(processable).map(replace);\n var end = perf.begin('searchPseudoElements');\n disableObservation();\n Promise.all(operations).then(function () {\n end();\n enableObservation();\n resolve();\n }).catch(function () {\n end();\n enableObservation();\n reject();\n });\n });\n}\n\nvar PseudoElements = {\n hooks: function hooks() {\n return {\n mutationObserverCallbacks: function mutationObserverCallbacks(accumulator) {\n accumulator.pseudoElementsCallback = searchPseudoElements;\n return accumulator;\n }\n };\n },\n provides: function provides(providers$$1) {\n providers$$1.pseudoElements2svg = function (params) {\n var _params$node = params.node,\n node = _params$node === void 0 ? DOCUMENT : _params$node;\n\n if (config.searchPseudoElements) {\n searchPseudoElements(node);\n }\n };\n }\n};\n\nvar _unwatched = false;\nvar MutationObserver$1 = {\n mixout: function mixout() {\n return {\n dom: {\n unwatch: function unwatch() {\n disableObservation();\n _unwatched = true;\n }\n }\n };\n },\n hooks: function hooks() {\n return {\n bootstrap: function bootstrap() {\n observe(chainHooks('mutationObserverCallbacks', {}));\n },\n noAuto: function noAuto() {\n disconnect();\n },\n watch: function watch(params) {\n var observeMutationsRoot = params.observeMutationsRoot;\n\n if (_unwatched) {\n enableObservation();\n } else {\n observe(chainHooks('mutationObserverCallbacks', {\n observeMutationsRoot: observeMutationsRoot\n }));\n }\n }\n };\n }\n};\n\nvar parseTransformString = function parseTransformString(transformString) {\n var transform = {\n size: 16,\n x: 0,\n y: 0,\n flipX: false,\n flipY: false,\n rotate: 0\n };\n return transformString.toLowerCase().split(' ').reduce(function (acc, n) {\n var parts = n.toLowerCase().split('-');\n var first = parts[0];\n var rest = parts.slice(1).join('-');\n\n if (first && rest === 'h') {\n acc.flipX = true;\n return acc;\n }\n\n if (first && rest === 'v') {\n acc.flipY = true;\n return acc;\n }\n\n rest = parseFloat(rest);\n\n if (isNaN(rest)) {\n return acc;\n }\n\n switch (first) {\n case 'grow':\n acc.size = acc.size + rest;\n break;\n\n case 'shrink':\n acc.size = acc.size - rest;\n break;\n\n case 'left':\n acc.x = acc.x - rest;\n break;\n\n case 'right':\n acc.x = acc.x + rest;\n break;\n\n case 'up':\n acc.y = acc.y - rest;\n break;\n\n case 'down':\n acc.y = acc.y + rest;\n break;\n\n case 'rotate':\n acc.rotate = acc.rotate + rest;\n break;\n }\n\n return acc;\n }, transform);\n};\nvar PowerTransforms = {\n mixout: function mixout() {\n return {\n parse: {\n transform: function transform(transformString) {\n return parseTransformString(transformString);\n }\n }\n };\n },\n hooks: function hooks() {\n return {\n parseNodeAttributes: function parseNodeAttributes(accumulator, node) {\n var transformString = node.getAttribute('data-fa-transform');\n\n if (transformString) {\n accumulator.transform = parseTransformString(transformString);\n }\n\n return accumulator;\n }\n };\n },\n provides: function provides(providers) {\n providers.generateAbstractTransformGrouping = function (_ref) {\n var main = _ref.main,\n transform = _ref.transform,\n containerWidth = _ref.containerWidth,\n iconWidth = _ref.iconWidth;\n var outer = {\n transform: \"translate(\".concat(containerWidth / 2, \" 256)\")\n };\n var innerTranslate = \"translate(\".concat(transform.x * 32, \", \").concat(transform.y * 32, \") \");\n var innerScale = \"scale(\".concat(transform.size / 16 * (transform.flipX ? -1 : 1), \", \").concat(transform.size / 16 * (transform.flipY ? -1 : 1), \") \");\n var innerRotate = \"rotate(\".concat(transform.rotate, \" 0 0)\");\n var inner = {\n transform: \"\".concat(innerTranslate, \" \").concat(innerScale, \" \").concat(innerRotate)\n };\n var path = {\n transform: \"translate(\".concat(iconWidth / 2 * -1, \" -256)\")\n };\n var operations = {\n outer: outer,\n inner: inner,\n path: path\n };\n return {\n tag: 'g',\n attributes: _objectSpread2({}, operations.outer),\n children: [{\n tag: 'g',\n attributes: _objectSpread2({}, operations.inner),\n children: [{\n tag: main.icon.tag,\n children: main.icon.children,\n attributes: _objectSpread2(_objectSpread2({}, main.icon.attributes), operations.path)\n }]\n }]\n };\n };\n }\n};\n\nvar ALL_SPACE = {\n x: 0,\n y: 0,\n width: '100%',\n height: '100%'\n};\n\nfunction fillBlack(_abstract) {\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n if (_abstract.attributes && (_abstract.attributes.fill || force)) {\n _abstract.attributes.fill = 'black';\n }\n\n return _abstract;\n}\n\nfunction deGroup(_abstract2) {\n if (_abstract2.tag === 'g') {\n return _abstract2.children;\n } else {\n return [_abstract2];\n }\n}\n\nvar Masks = {\n hooks: function hooks() {\n return {\n parseNodeAttributes: function parseNodeAttributes(accumulator, node) {\n var maskData = node.getAttribute('data-fa-mask');\n var mask = !maskData ? emptyCanonicalIcon() : getCanonicalIcon(maskData.split(' ').map(function (i) {\n return i.trim();\n }));\n\n if (!mask.prefix) {\n mask.prefix = getDefaultUsablePrefix();\n }\n\n accumulator.mask = mask;\n accumulator.maskId = node.getAttribute('data-fa-mask-id');\n return accumulator;\n }\n };\n },\n provides: function provides(providers) {\n providers.generateAbstractMask = function (_ref) {\n var children = _ref.children,\n attributes = _ref.attributes,\n main = _ref.main,\n mask = _ref.mask,\n explicitMaskId = _ref.maskId,\n transform = _ref.transform;\n var mainWidth = main.width,\n mainPath = main.icon;\n var maskWidth = mask.width,\n maskPath = mask.icon;\n var trans = transformForSvg({\n transform: transform,\n containerWidth: maskWidth,\n iconWidth: mainWidth\n });\n var maskRect = {\n tag: 'rect',\n attributes: _objectSpread2(_objectSpread2({}, ALL_SPACE), {}, {\n fill: 'white'\n })\n };\n var maskInnerGroupChildrenMixin = mainPath.children ? {\n children: mainPath.children.map(fillBlack)\n } : {};\n var maskInnerGroup = {\n tag: 'g',\n attributes: _objectSpread2({}, trans.inner),\n children: [fillBlack(_objectSpread2({\n tag: mainPath.tag,\n attributes: _objectSpread2(_objectSpread2({}, mainPath.attributes), trans.path)\n }, maskInnerGroupChildrenMixin))]\n };\n var maskOuterGroup = {\n tag: 'g',\n attributes: _objectSpread2({}, trans.outer),\n children: [maskInnerGroup]\n };\n var maskId = \"mask-\".concat(explicitMaskId || nextUniqueId());\n var clipId = \"clip-\".concat(explicitMaskId || nextUniqueId());\n var maskTag = {\n tag: 'mask',\n attributes: _objectSpread2(_objectSpread2({}, ALL_SPACE), {}, {\n id: maskId,\n maskUnits: 'userSpaceOnUse',\n maskContentUnits: 'userSpaceOnUse'\n }),\n children: [maskRect, maskOuterGroup]\n };\n var defs = {\n tag: 'defs',\n children: [{\n tag: 'clipPath',\n attributes: {\n id: clipId\n },\n children: deGroup(maskPath)\n }, maskTag]\n };\n children.push(defs, {\n tag: 'rect',\n attributes: _objectSpread2({\n fill: 'currentColor',\n 'clip-path': \"url(#\".concat(clipId, \")\"),\n mask: \"url(#\".concat(maskId, \")\")\n }, ALL_SPACE)\n });\n return {\n children: children,\n attributes: attributes\n };\n };\n }\n};\n\nvar MissingIconIndicator = {\n provides: function provides(providers) {\n var reduceMotion = false;\n\n if (WINDOW.matchMedia) {\n reduceMotion = WINDOW.matchMedia('(prefers-reduced-motion: reduce)').matches;\n }\n\n providers.missingIconAbstract = function () {\n var gChildren = [];\n var FILL = {\n fill: 'currentColor'\n };\n var ANIMATION_BASE = {\n attributeType: 'XML',\n repeatCount: 'indefinite',\n dur: '2s'\n }; // Ring\n\n gChildren.push({\n tag: 'path',\n attributes: _objectSpread2(_objectSpread2({}, FILL), {}, {\n d: 'M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z'\n })\n });\n\n var OPACITY_ANIMATE = _objectSpread2(_objectSpread2({}, ANIMATION_BASE), {}, {\n attributeName: 'opacity'\n });\n\n var dot = {\n tag: 'circle',\n attributes: _objectSpread2(_objectSpread2({}, FILL), {}, {\n cx: '256',\n cy: '364',\n r: '28'\n }),\n children: []\n };\n\n if (!reduceMotion) {\n dot.children.push({\n tag: 'animate',\n attributes: _objectSpread2(_objectSpread2({}, ANIMATION_BASE), {}, {\n attributeName: 'r',\n values: '28;14;28;28;14;28;'\n })\n }, {\n tag: 'animate',\n attributes: _objectSpread2(_objectSpread2({}, OPACITY_ANIMATE), {}, {\n values: '1;0;1;1;0;1;'\n })\n });\n }\n\n gChildren.push(dot);\n gChildren.push({\n tag: 'path',\n attributes: _objectSpread2(_objectSpread2({}, FILL), {}, {\n opacity: '1',\n d: 'M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z'\n }),\n children: reduceMotion ? [] : [{\n tag: 'animate',\n attributes: _objectSpread2(_objectSpread2({}, OPACITY_ANIMATE), {}, {\n values: '1;0;0;0;0;1;'\n })\n }]\n });\n\n if (!reduceMotion) {\n // Exclamation\n gChildren.push({\n tag: 'path',\n attributes: _objectSpread2(_objectSpread2({}, FILL), {}, {\n opacity: '0',\n d: 'M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z'\n }),\n children: [{\n tag: 'animate',\n attributes: _objectSpread2(_objectSpread2({}, OPACITY_ANIMATE), {}, {\n values: '0;0;1;1;0;0;'\n })\n }]\n });\n }\n\n return {\n tag: 'g',\n attributes: {\n 'class': 'missing'\n },\n children: gChildren\n };\n };\n }\n};\n\nvar SvgSymbols = {\n hooks: function hooks() {\n return {\n parseNodeAttributes: function parseNodeAttributes(accumulator, node) {\n var symbolData = node.getAttribute('data-fa-symbol');\n var symbol = symbolData === null ? false : symbolData === '' ? true : symbolData;\n accumulator['symbol'] = symbol;\n return accumulator;\n }\n };\n }\n};\n\nvar plugins = [InjectCSS, ReplaceElements, Layers, LayersCounter, LayersText, PseudoElements, MutationObserver$1, PowerTransforms, Masks, MissingIconIndicator, SvgSymbols];\n\nregisterPlugins(plugins, {\n mixoutsTo: api\n});\nvar noAuto$1 = api.noAuto;\nvar config$1 = api.config;\nvar library$1 = api.library;\nvar dom$1 = api.dom;\nvar parse$1 = api.parse;\nvar findIconDefinition$1 = api.findIconDefinition;\nvar toHtml$1 = api.toHtml;\nvar icon = api.icon;\nvar layer = api.layer;\nvar text = api.text;\nvar counter = api.counter;\n\nexport { noAuto$1 as noAuto, config$1 as config, library$1 as library, dom$1 as dom, parse$1 as parse, findIconDefinition$1 as findIconDefinition, toHtml$1 as toHtml, icon, layer, text, counter, api };\n","import { parse, icon } from '@fortawesome/fontawesome-svg-core';\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n\n return target;\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\n// Get CSS class list from a props object\nfunction classList(props) {\n var _classes;\n\n var beat = props.beat,\n fade = props.fade,\n beatFade = props.beatFade,\n bounce = props.bounce,\n shake = props.shake,\n flash = props.flash,\n spin = props.spin,\n spinPulse = props.spinPulse,\n spinReverse = props.spinReverse,\n pulse = props.pulse,\n fixedWidth = props.fixedWidth,\n inverse = props.inverse,\n border = props.border,\n listItem = props.listItem,\n flip = props.flip,\n size = props.size,\n rotation = props.rotation,\n pull = props.pull; // map of CSS class names to properties\n\n var classes = (_classes = {\n 'fa-beat': beat,\n 'fa-fade': fade,\n 'fa-beat-fade': beatFade,\n 'fa-bounce': bounce,\n 'fa-shake': shake,\n 'fa-flash': flash,\n 'fa-spin': spin,\n 'fa-spin-reverse': spinReverse,\n 'fa-spin-pulse': spinPulse,\n 'fa-pulse': pulse,\n 'fa-fw': fixedWidth,\n 'fa-inverse': inverse,\n 'fa-border': border,\n 'fa-li': listItem,\n 'fa-flip': flip === true,\n 'fa-flip-horizontal': flip === 'horizontal' || flip === 'both',\n 'fa-flip-vertical': flip === 'vertical' || flip === 'both'\n }, _defineProperty(_classes, \"fa-\".concat(size), typeof size !== 'undefined' && size !== null), _defineProperty(_classes, \"fa-rotate-\".concat(rotation), typeof rotation !== 'undefined' && rotation !== null && rotation !== 0), _defineProperty(_classes, \"fa-pull-\".concat(pull), typeof pull !== 'undefined' && pull !== null), _defineProperty(_classes, 'fa-swap-opacity', props.swapOpacity), _classes); // map over all the keys in the classes object\n // return an array of the keys where the value for the key is not null\n\n return Object.keys(classes).map(function (key) {\n return classes[key] ? key : null;\n }).filter(function (key) {\n return key;\n });\n}\n\n// Camelize taken from humps\n// humps is copyright © 2012+ Dom Christie\n// Released under the MIT license.\n// Performant way to determine if object coerces to a number\nfunction _isNumerical(obj) {\n obj = obj - 0; // eslint-disable-next-line no-self-compare\n\n return obj === obj;\n}\n\nfunction camelize(string) {\n if (_isNumerical(string)) {\n return string;\n } // eslint-disable-next-line no-useless-escape\n\n\n string = string.replace(/[\\-_\\s]+(.)?/g, function (match, chr) {\n return chr ? chr.toUpperCase() : '';\n }); // Ensure 1st char is always lowercase\n\n return string.substr(0, 1).toLowerCase() + string.substr(1);\n}\n\nvar _excluded = [\"style\"];\n\nfunction capitalize(val) {\n return val.charAt(0).toUpperCase() + val.slice(1);\n}\n\nfunction styleToObject(style) {\n return style.split(';').map(function (s) {\n return s.trim();\n }).filter(function (s) {\n return s;\n }).reduce(function (acc, pair) {\n var i = pair.indexOf(':');\n var prop = camelize(pair.slice(0, i));\n var value = pair.slice(i + 1).trim();\n prop.startsWith('webkit') ? acc[capitalize(prop)] = value : acc[prop] = value;\n return acc;\n }, {});\n}\n\nfunction convert(createElement, element) {\n var extraProps = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n if (typeof element === 'string') {\n return element;\n }\n\n var children = (element.children || []).map(function (child) {\n return convert(createElement, child);\n });\n /* eslint-disable dot-notation */\n\n var mixins = Object.keys(element.attributes || {}).reduce(function (acc, key) {\n var val = element.attributes[key];\n\n switch (key) {\n case 'class':\n acc.attrs['className'] = val;\n delete element.attributes['class'];\n break;\n\n case 'style':\n acc.attrs['style'] = styleToObject(val);\n break;\n\n default:\n if (key.indexOf('aria-') === 0 || key.indexOf('data-') === 0) {\n acc.attrs[key.toLowerCase()] = val;\n } else {\n acc.attrs[camelize(key)] = val;\n }\n\n }\n\n return acc;\n }, {\n attrs: {}\n });\n\n var _extraProps$style = extraProps.style,\n existingStyle = _extraProps$style === void 0 ? {} : _extraProps$style,\n remaining = _objectWithoutProperties(extraProps, _excluded);\n\n mixins.attrs['style'] = _objectSpread2(_objectSpread2({}, mixins.attrs['style']), existingStyle);\n /* eslint-enable */\n\n return createElement.apply(void 0, [element.tag, _objectSpread2(_objectSpread2({}, mixins.attrs), remaining)].concat(_toConsumableArray(children)));\n}\n\nvar PRODUCTION = false;\n\ntry {\n PRODUCTION = process.env.NODE_ENV === 'production';\n} catch (e) {}\n\nfunction log () {\n if (!PRODUCTION && console && typeof console.error === 'function') {\n var _console;\n\n (_console = console).error.apply(_console, arguments);\n }\n}\n\nfunction normalizeIconArgs(icon) {\n // this has everything that it needs to be rendered which means it was probably imported\n // directly from an icon svg package\n if (icon && _typeof(icon) === 'object' && icon.prefix && icon.iconName && icon.icon) {\n return icon;\n }\n\n if (parse.icon) {\n return parse.icon(icon);\n } // if the icon is null, there's nothing to do\n\n\n if (icon === null) {\n return null;\n } // if the icon is an object and has a prefix and an icon name, return it\n\n\n if (icon && _typeof(icon) === 'object' && icon.prefix && icon.iconName) {\n return icon;\n } // if it's an array with length of two\n\n\n if (Array.isArray(icon) && icon.length === 2) {\n // use the first item as prefix, second as icon name\n return {\n prefix: icon[0],\n iconName: icon[1]\n };\n } // if it's a string, use it as the icon name\n\n\n if (typeof icon === 'string') {\n return {\n prefix: 'fas',\n iconName: icon\n };\n }\n}\n\n// creates an object with a key of key\n// and a value of value\n// if certain conditions are met\nfunction objectWithKey(key, value) {\n // if the value is a non-empty array\n // or it's not an array but it is truthy\n // then create the object with the key and the value\n // if not, return an empty array\n return Array.isArray(value) && value.length > 0 || !Array.isArray(value) && value ? _defineProperty({}, key, value) : {};\n}\n\nvar FontAwesomeIcon = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var iconArgs = props.icon,\n maskArgs = props.mask,\n symbol = props.symbol,\n className = props.className,\n title = props.title,\n titleId = props.titleId,\n maskId = props.maskId;\n var iconLookup = normalizeIconArgs(iconArgs);\n var classes = objectWithKey('classes', [].concat(_toConsumableArray(classList(props)), _toConsumableArray(className.split(' '))));\n var transform = objectWithKey('transform', typeof props.transform === 'string' ? parse.transform(props.transform) : props.transform);\n var mask = objectWithKey('mask', normalizeIconArgs(maskArgs));\n var renderedIcon = icon(iconLookup, _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({}, classes), transform), mask), {}, {\n symbol: symbol,\n title: title,\n titleId: titleId,\n maskId: maskId\n }));\n\n if (!renderedIcon) {\n log('Could not find icon', iconLookup);\n return null;\n }\n\n var abstract = renderedIcon.abstract;\n var extraProps = {\n ref: ref\n };\n Object.keys(props).forEach(function (key) {\n // eslint-disable-next-line no-prototype-builtins\n if (!FontAwesomeIcon.defaultProps.hasOwnProperty(key)) {\n extraProps[key] = props[key];\n }\n });\n return convertCurry(abstract[0], extraProps);\n});\nFontAwesomeIcon.displayName = 'FontAwesomeIcon';\nFontAwesomeIcon.propTypes = {\n beat: PropTypes.bool,\n border: PropTypes.bool,\n beatFade: PropTypes.bool,\n bounce: PropTypes.bool,\n className: PropTypes.string,\n fade: PropTypes.bool,\n flash: PropTypes.bool,\n mask: PropTypes.oneOfType([PropTypes.object, PropTypes.array, PropTypes.string]),\n maskId: PropTypes.string,\n fixedWidth: PropTypes.bool,\n inverse: PropTypes.bool,\n flip: PropTypes.oneOf([true, false, 'horizontal', 'vertical', 'both']),\n icon: PropTypes.oneOfType([PropTypes.object, PropTypes.array, PropTypes.string]),\n listItem: PropTypes.bool,\n pull: PropTypes.oneOf(['right', 'left']),\n pulse: PropTypes.bool,\n rotation: PropTypes.oneOf([0, 90, 180, 270]),\n shake: PropTypes.bool,\n size: PropTypes.oneOf(['2xs', 'xs', 'sm', 'lg', 'xl', '2xl', '1x', '2x', '3x', '4x', '5x', '6x', '7x', '8x', '9x', '10x']),\n spin: PropTypes.bool,\n spinPulse: PropTypes.bool,\n spinReverse: PropTypes.bool,\n symbol: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]),\n title: PropTypes.string,\n titleId: PropTypes.string,\n transform: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n swapOpacity: PropTypes.bool\n};\nFontAwesomeIcon.defaultProps = {\n border: false,\n className: '',\n mask: null,\n maskId: null,\n fixedWidth: false,\n inverse: false,\n flip: false,\n icon: null,\n listItem: false,\n pull: null,\n pulse: false,\n rotation: null,\n size: null,\n spin: false,\n spinPulse: false,\n spinReverse: false,\n beat: false,\n fade: false,\n beatFade: false,\n bounce: false,\n shake: false,\n symbol: false,\n title: '',\n titleId: null,\n transform: null,\n swapOpacity: false\n};\nvar convertCurry = convert.bind(null, React.createElement);\n\nexport { FontAwesomeIcon };\n","'use client'\nimport React, { useState, useRef, useEffect, createContext, useMemo, useContext, useCallback } from 'react';\n\nfunction useLoadGsiScript(options = {}) {\r\n const { nonce, onScriptLoadSuccess, onScriptLoadError } = options;\r\n const [scriptLoadedSuccessfully, setScriptLoadedSuccessfully] = useState(false);\r\n const onScriptLoadSuccessRef = useRef(onScriptLoadSuccess);\r\n onScriptLoadSuccessRef.current = onScriptLoadSuccess;\r\n const onScriptLoadErrorRef = useRef(onScriptLoadError);\r\n onScriptLoadErrorRef.current = onScriptLoadError;\r\n useEffect(() => {\r\n const scriptTag = document.createElement('script');\r\n scriptTag.src = 'https://accounts.google.com/gsi/client';\r\n scriptTag.async = true;\r\n scriptTag.defer = true;\r\n scriptTag.nonce = nonce;\r\n scriptTag.onload = () => {\r\n var _a;\r\n setScriptLoadedSuccessfully(true);\r\n (_a = onScriptLoadSuccessRef.current) === null || _a === void 0 ? void 0 : _a.call(onScriptLoadSuccessRef);\r\n };\r\n scriptTag.onerror = () => {\r\n var _a;\r\n setScriptLoadedSuccessfully(false);\r\n (_a = onScriptLoadErrorRef.current) === null || _a === void 0 ? void 0 : _a.call(onScriptLoadErrorRef);\r\n };\r\n document.body.appendChild(scriptTag);\r\n return () => {\r\n document.body.removeChild(scriptTag);\r\n };\r\n }, [nonce]);\r\n return scriptLoadedSuccessfully;\r\n}\n\nconst GoogleOAuthContext = createContext(null);\r\nfunction GoogleOAuthProvider({ clientId, nonce, onScriptLoadSuccess, onScriptLoadError, children, }) {\r\n const scriptLoadedSuccessfully = useLoadGsiScript({\r\n nonce,\r\n onScriptLoadSuccess,\r\n onScriptLoadError,\r\n });\r\n const contextValue = useMemo(() => ({\r\n clientId,\r\n scriptLoadedSuccessfully,\r\n }), [clientId, scriptLoadedSuccessfully]);\r\n return (React.createElement(GoogleOAuthContext.Provider, { value: contextValue }, children));\r\n}\r\nfunction useGoogleOAuth() {\r\n const context = useContext(GoogleOAuthContext);\r\n if (!context) {\r\n throw new Error('Google OAuth components must be used within GoogleOAuthProvider');\r\n }\r\n return context;\r\n}\n\nfunction extractClientId(credentialResponse) {\r\n var _a;\r\n const clientId = (_a = credentialResponse === null || credentialResponse === void 0 ? void 0 : credentialResponse.clientId) !== null && _a !== void 0 ? _a : credentialResponse === null || credentialResponse === void 0 ? void 0 : credentialResponse.client_id;\r\n return clientId;\r\n}\n\nconst containerHeightMap = { large: 40, medium: 32, small: 20 };\r\nfunction GoogleLogin({ onSuccess, onError, useOneTap, promptMomentNotification, type = 'standard', theme = 'outline', size = 'large', text, shape, logo_alignment, width, locale, click_listener, containerProps, ...props }) {\r\n const btnContainerRef = useRef(null);\r\n const { clientId, scriptLoadedSuccessfully } = useGoogleOAuth();\r\n const onSuccessRef = useRef(onSuccess);\r\n onSuccessRef.current = onSuccess;\r\n const onErrorRef = useRef(onError);\r\n onErrorRef.current = onError;\r\n const promptMomentNotificationRef = useRef(promptMomentNotification);\r\n promptMomentNotificationRef.current = promptMomentNotification;\r\n useEffect(() => {\r\n var _a, _b, _c, _d, _e, _f, _g, _h, _j;\r\n if (!scriptLoadedSuccessfully)\r\n return;\r\n (_c = (_b = (_a = window === null || window === void 0 ? void 0 : window.google) === null || _a === void 0 ? void 0 : _a.accounts) === null || _b === void 0 ? void 0 : _b.id) === null || _c === void 0 ? void 0 : _c.initialize({\r\n client_id: clientId,\r\n callback: (credentialResponse) => {\r\n var _a;\r\n if (!(credentialResponse === null || credentialResponse === void 0 ? void 0 : credentialResponse.credential)) {\r\n return (_a = onErrorRef.current) === null || _a === void 0 ? void 0 : _a.call(onErrorRef);\r\n }\r\n const { credential, select_by } = credentialResponse;\r\n onSuccessRef.current({\r\n credential,\r\n clientId: extractClientId(credentialResponse),\r\n select_by,\r\n });\r\n },\r\n ...props,\r\n });\r\n (_f = (_e = (_d = window === null || window === void 0 ? void 0 : window.google) === null || _d === void 0 ? void 0 : _d.accounts) === null || _e === void 0 ? void 0 : _e.id) === null || _f === void 0 ? void 0 : _f.renderButton(btnContainerRef.current, {\r\n type,\r\n theme,\r\n size,\r\n text,\r\n shape,\r\n logo_alignment,\r\n width,\r\n locale,\r\n click_listener,\r\n });\r\n if (useOneTap)\r\n (_j = (_h = (_g = window === null || window === void 0 ? void 0 : window.google) === null || _g === void 0 ? void 0 : _g.accounts) === null || _h === void 0 ? void 0 : _h.id) === null || _j === void 0 ? void 0 : _j.prompt(promptMomentNotificationRef.current);\r\n return () => {\r\n var _a, _b, _c;\r\n if (useOneTap)\r\n (_c = (_b = (_a = window === null || window === void 0 ? void 0 : window.google) === null || _a === void 0 ? void 0 : _a.accounts) === null || _b === void 0 ? void 0 : _b.id) === null || _c === void 0 ? void 0 : _c.cancel();\r\n };\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [\r\n clientId,\r\n scriptLoadedSuccessfully,\r\n useOneTap,\r\n type,\r\n theme,\r\n size,\r\n text,\r\n shape,\r\n logo_alignment,\r\n width,\r\n locale,\r\n ]);\r\n return (React.createElement(\"div\", { ...containerProps, ref: btnContainerRef, style: { height: containerHeightMap[size], ...containerProps === null || containerProps === void 0 ? void 0 : containerProps.style } }));\r\n}\n\nfunction googleLogout() {\r\n var _a, _b, _c;\r\n (_c = (_b = (_a = window === null || window === void 0 ? void 0 : window.google) === null || _a === void 0 ? void 0 : _a.accounts) === null || _b === void 0 ? void 0 : _b.id) === null || _c === void 0 ? void 0 : _c.disableAutoSelect();\r\n}\n\n/* eslint-disable import/export */\r\nfunction useGoogleLogin({ flow = 'implicit', scope = '', onSuccess, onError, onNonOAuthError, overrideScope, state, ...props }) {\r\n const { clientId, scriptLoadedSuccessfully } = useGoogleOAuth();\r\n const clientRef = useRef();\r\n const onSuccessRef = useRef(onSuccess);\r\n onSuccessRef.current = onSuccess;\r\n const onErrorRef = useRef(onError);\r\n onErrorRef.current = onError;\r\n const onNonOAuthErrorRef = useRef(onNonOAuthError);\r\n onNonOAuthErrorRef.current = onNonOAuthError;\r\n useEffect(() => {\r\n var _a, _b;\r\n if (!scriptLoadedSuccessfully)\r\n return;\r\n const clientMethod = flow === 'implicit' ? 'initTokenClient' : 'initCodeClient';\r\n const client = (_b = (_a = window === null || window === void 0 ? void 0 : window.google) === null || _a === void 0 ? void 0 : _a.accounts) === null || _b === void 0 ? void 0 : _b.oauth2[clientMethod]({\r\n client_id: clientId,\r\n scope: overrideScope ? scope : `openid profile email ${scope}`,\r\n callback: (response) => {\r\n var _a, _b;\r\n if (response.error)\r\n return (_a = onErrorRef.current) === null || _a === void 0 ? void 0 : _a.call(onErrorRef, response);\r\n (_b = onSuccessRef.current) === null || _b === void 0 ? void 0 : _b.call(onSuccessRef, response);\r\n },\r\n error_callback: (nonOAuthError) => {\r\n var _a;\r\n (_a = onNonOAuthErrorRef.current) === null || _a === void 0 ? void 0 : _a.call(onNonOAuthErrorRef, nonOAuthError);\r\n },\r\n state,\r\n ...props,\r\n });\r\n clientRef.current = client;\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [clientId, scriptLoadedSuccessfully, flow, scope, state]);\r\n const loginImplicitFlow = useCallback((overrideConfig) => { var _a; return (_a = clientRef.current) === null || _a === void 0 ? void 0 : _a.requestAccessToken(overrideConfig); }, []);\r\n const loginAuthCodeFlow = useCallback(() => { var _a; return (_a = clientRef.current) === null || _a === void 0 ? void 0 : _a.requestCode(); }, []);\r\n return flow === 'implicit' ? loginImplicitFlow : loginAuthCodeFlow;\r\n}\n\nfunction useGoogleOneTapLogin({ onSuccess, onError, promptMomentNotification, cancel_on_tap_outside, prompt_parent_id, state_cookie_domain, hosted_domain, use_fedcm_for_prompt = false, disabled, auto_select, }) {\r\n const { clientId, scriptLoadedSuccessfully } = useGoogleOAuth();\r\n const onSuccessRef = useRef(onSuccess);\r\n onSuccessRef.current = onSuccess;\r\n const onErrorRef = useRef(onError);\r\n onErrorRef.current = onError;\r\n const promptMomentNotificationRef = useRef(promptMomentNotification);\r\n promptMomentNotificationRef.current = promptMomentNotification;\r\n useEffect(() => {\r\n var _a, _b, _c, _d, _e, _f, _g, _h, _j;\r\n if (!scriptLoadedSuccessfully)\r\n return;\r\n if (disabled) {\r\n (_c = (_b = (_a = window === null || window === void 0 ? void 0 : window.google) === null || _a === void 0 ? void 0 : _a.accounts) === null || _b === void 0 ? void 0 : _b.id) === null || _c === void 0 ? void 0 : _c.cancel();\r\n return;\r\n }\r\n (_f = (_e = (_d = window === null || window === void 0 ? void 0 : window.google) === null || _d === void 0 ? void 0 : _d.accounts) === null || _e === void 0 ? void 0 : _e.id) === null || _f === void 0 ? void 0 : _f.initialize({\r\n client_id: clientId,\r\n callback: (credentialResponse) => {\r\n var _a;\r\n if (!(credentialResponse === null || credentialResponse === void 0 ? void 0 : credentialResponse.credential)) {\r\n return (_a = onErrorRef.current) === null || _a === void 0 ? void 0 : _a.call(onErrorRef);\r\n }\r\n const { credential, select_by } = credentialResponse;\r\n onSuccessRef.current({\r\n credential,\r\n clientId: extractClientId(credentialResponse),\r\n select_by,\r\n });\r\n },\r\n hosted_domain,\r\n cancel_on_tap_outside,\r\n prompt_parent_id,\r\n state_cookie_domain,\r\n use_fedcm_for_prompt,\r\n auto_select,\r\n });\r\n (_j = (_h = (_g = window === null || window === void 0 ? void 0 : window.google) === null || _g === void 0 ? void 0 : _g.accounts) === null || _h === void 0 ? void 0 : _h.id) === null || _j === void 0 ? void 0 : _j.prompt(promptMomentNotificationRef.current);\r\n return () => {\r\n var _a, _b, _c;\r\n (_c = (_b = (_a = window === null || window === void 0 ? void 0 : window.google) === null || _a === void 0 ? void 0 : _a.accounts) === null || _b === void 0 ? void 0 : _b.id) === null || _c === void 0 ? void 0 : _c.cancel();\r\n };\r\n }, [\r\n clientId,\r\n scriptLoadedSuccessfully,\r\n cancel_on_tap_outside,\r\n prompt_parent_id,\r\n state_cookie_domain,\r\n hosted_domain,\r\n use_fedcm_for_prompt,\r\n disabled,\r\n auto_select,\r\n ]);\r\n}\n\n/**\r\n * Checks if the user granted all the specified scope or scopes\r\n * @returns True if all the scopes are granted\r\n */\r\nfunction hasGrantedAllScopesGoogle(tokenResponse, firstScope, ...restScopes) {\r\n var _a, _b, _c;\r\n if (!(window === null || window === void 0 ? void 0 : window.google))\r\n return false;\r\n return (((_c = (_b = (_a = window === null || window === void 0 ? void 0 : window.google) === null || _a === void 0 ? void 0 : _a.accounts) === null || _b === void 0 ? void 0 : _b.oauth2) === null || _c === void 0 ? void 0 : _c.hasGrantedAllScopes(tokenResponse, firstScope, ...restScopes)) || false);\r\n}\n\n/**\r\n * Checks if the user granted any of the specified scope or scopes.\r\n * @returns True if any of the scopes are granted\r\n */\r\nfunction hasGrantedAnyScopeGoogle(tokenResponse, firstScope, ...restScopes) {\r\n var _a, _b, _c;\r\n if (!(window === null || window === void 0 ? void 0 : window.google))\r\n return false;\r\n return (((_c = (_b = (_a = window === null || window === void 0 ? void 0 : window.google) === null || _a === void 0 ? void 0 : _a.accounts) === null || _b === void 0 ? void 0 : _b.oauth2) === null || _c === void 0 ? void 0 : _c.hasGrantedAnyScope(tokenResponse, firstScope, ...restScopes)) || false);\r\n}\n\nexport { GoogleLogin, GoogleOAuthProvider, googleLogout, hasGrantedAllScopesGoogle, hasGrantedAnyScopeGoogle, useGoogleLogin, useGoogleOAuth, useGoogleOneTapLogin };\n","import setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nexport default function _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n _construct = Reflect.construct.bind();\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n return _construct.apply(null, arguments);\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeFunction from \"./isNativeFunction.js\";\nimport construct from \"./construct.js\";\nexport default function _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n _cache.set(Class, Wrapper);\n }\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n return _wrapNativeSuper(Class);\n}","export default function _isNativeFunction(fn) {\n try {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n } catch (e) {\n return typeof fn === \"function\";\n }\n}","////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Actions represent the type of change to a location value.\n */\nexport enum Action {\n /**\n * A POP indicates a change to an arbitrary index in the history stack, such\n * as a back or forward navigation. It does not describe the direction of the\n * navigation, only that the current index changed.\n *\n * Note: This is the default action for newly created history objects.\n */\n Pop = \"POP\",\n\n /**\n * A PUSH indicates a new entry being added to the history stack, such as when\n * a link is clicked and a new page loads. When this happens, all subsequent\n * entries in the stack are lost.\n */\n Push = \"PUSH\",\n\n /**\n * A REPLACE indicates the entry at the current index in the history stack\n * being replaced by a new one.\n */\n Replace = \"REPLACE\",\n}\n\n/**\n * The pathname, search, and hash values of a URL.\n */\nexport interface Path {\n /**\n * A URL pathname, beginning with a /.\n */\n pathname: string;\n\n /**\n * A URL search string, beginning with a ?.\n */\n search: string;\n\n /**\n * A URL fragment identifier, beginning with a #.\n */\n hash: string;\n}\n\n/**\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: any;\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`. May be either a URL or the pieces of a\n * 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 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\nfunction 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 // 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 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 } from \"./history\";\n\n/**\n * Map of routeId -> data returned from a loader/action/error\n */\nexport interface RouteData {\n [routeId: string]: any;\n}\n\nexport enum ResultType {\n data = \"data\",\n deferred = \"deferred\",\n redirect = \"redirect\",\n error = \"error\",\n}\n\n/**\n * Successful result from a loader or action\n */\nexport interface SuccessResult {\n type: ResultType.data;\n data: any;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Successful defer() result from a loader or action\n */\nexport interface DeferredResult {\n type: ResultType.deferred;\n deferredData: DeferredData;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Redirect result from a loader or action\n */\nexport interface RedirectResult {\n type: ResultType.redirect;\n status: number;\n location: string;\n revalidate: boolean;\n}\n\n/**\n * Unsuccessful result from a loader or action\n */\nexport interface ErrorResult {\n type: ResultType.error;\n error: any;\n headers?: Headers;\n}\n\n/**\n * Result from a loader or action - potentially successful or unsuccessful\n */\nexport type DataResult =\n | SuccessResult\n | DeferredResult\n | RedirectResult\n | ErrorResult;\n\nexport type MutationFormMethod = \"post\" | \"put\" | \"patch\" | \"delete\";\nexport type FormMethod = \"get\" | MutationFormMethod;\n\nexport type FormEncType =\n | \"application/x-www-form-urlencoded\"\n | \"multipart/form-data\";\n\n/**\n * @private\n * Internal interface to pass around for action submissions, not intended for\n * external consumption\n */\nexport interface Submission {\n formMethod: FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: FormData;\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?: any;\n}\n\n/**\n * Arguments passed to loader functions\n */\nexport interface LoaderFunctionArgs extends DataFunctionArgs {}\n\n/**\n * Arguments passed to action functions\n */\nexport interface ActionFunctionArgs extends DataFunctionArgs {}\n\n/**\n * Route loader function signature\n */\nexport interface LoaderFunction {\n (args: LoaderFunctionArgs): Promise | Response | Promise | any;\n}\n\n/**\n * Route action function signature\n */\nexport interface ActionFunction {\n (args: ActionFunctionArgs): Promise | Response | Promise | any;\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: {\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 formData?: Submission[\"formData\"];\n actionResult?: DataResult;\n defaultShouldRevalidate: boolean;\n }): boolean;\n}\n\n/**\n * Base RouteObject with common props shared by all types of routes\n */\ntype AgnosticBaseRouteObject = {\n caseSensitive?: boolean;\n path?: string;\n id?: string;\n loader?: LoaderFunction;\n action?: ActionFunction;\n hasErrorBoundary?: boolean;\n shouldRevalidate?: ShouldRevalidateFunction;\n handle?: any;\n};\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\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 */\ntype 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 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 parentPath: number[] = [],\n allIds: Set = new Set()\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 !allIds.has(id),\n `Found a route id collision on id \"${id}\". Route ` +\n \"id's must be globally unique within Data Router usages\"\n );\n allIds.add(id);\n\n if (isIndexRoute(route)) {\n let indexRoute: AgnosticDataIndexRouteObject = { ...route, id };\n return indexRoute;\n } else {\n let pathOrLayoutRoute: AgnosticDataNonIndexRouteObject = {\n ...route,\n id,\n children: route.children\n ? convertRoutesToDataRoutes(route.children, treePath, allIds)\n : undefined,\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 matches = matchRouteBranch(\n branches[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 safelyDecodeURI(pathname)\n );\n }\n\n return matches;\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 explodes _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 = 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 return (\n path\n .replace(\n /^:(\\w+)(\\??)/g,\n (_, key: PathParam, optional: string | undefined) => {\n let param = params[key];\n if (optional === \"?\") {\n return param == null ? \"\" : param;\n }\n if (param == null) {\n invariant(false, `Missing \":${key}\" param`);\n }\n return param;\n }\n )\n .replace(\n /\\/:(\\w+)(\\??)/g,\n (_, key: PathParam, optional: string | undefined) => {\n let param = params[key];\n if (optional === \"?\") {\n return param == null ? \"\" : `/${param}`;\n }\n if (param == null) {\n invariant(false, `Missing \":${key}\" param`);\n }\n return `/${param}`;\n }\n )\n // Remove any optional markers from optional static segments\n .replace(/\\?/g, \"\")\n .replace(/(\\/?)\\*/, (_, prefix, __, str) => {\n const star = \"*\" as PathParam;\n\n if (params[star] == null) {\n // If no splat was provided, trim the trailing slash _unless_ it's\n // the entire path\n return str === \"/*\" ? \"/\" : \"\";\n }\n\n // Apply the splat\n return `${prefix}${params[star]}`;\n })\n );\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, paramNames] = 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 = paramNames.reduce>(\n (memo, paramName, 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 memo[paramName] = safelyDecodeURIComponent(\n captureGroups[index] || \"\",\n paramName\n );\n return memo;\n },\n {}\n );\n\n return {\n params,\n pathname: matchedPathname,\n pathnameBase,\n pattern,\n };\n}\n\nfunction compilePath(\n path: string,\n caseSensitive = false,\n end = true\n): [RegExp, string[]] {\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 paramNames: string[] = [];\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(/\\/:(\\w+)/g, (_: string, paramName: string) => {\n paramNames.push(paramName);\n return \"/([^\\\\/]+)\";\n });\n\n if (path.endsWith(\"*\")) {\n paramNames.push(\"*\");\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, paramNames];\n}\n\nfunction safelyDecodeURI(value: string) {\n try {\n return decodeURI(value);\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\nfunction safelyDecodeURIComponent(value: string, paramName: string) {\n try {\n return decodeURIComponent(value);\n } catch (error) {\n warning(\n false,\n `The value for the URL param \"${paramName}\" will not be decoded because` +\n ` the string \"${value}\" is a malformed URL segment. This is probably` +\n ` due to a bad percent 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 * @private\n */\nexport function warning(cond: any, message: string): void {\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 @remix-run/router!\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\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/**\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 (isPathRelative || toPathname == null) {\n from = locationPathname;\n } else {\n let routePathnameIndex = routePathnames.length - 1;\n\n if (toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\");\n\n // Each leading .. segment means \"go up one route\" instead of \"go up one\n // URL segment\". This is a key difference from how works and a\n // major reason we call this a \"to\" value instead of a \"href\".\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n\n to.pathname = toSegments.join(\"/\");\n }\n\n // If there are more \"..\" segments than parent routes, resolve relative to\n // the root / URL.\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, null, 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 (error) {\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 * @private\n * Utility class we use to hold auto-unwrapped 4xx/5xx Response bodies\n */\nexport class ErrorResponse {\n status: number;\n statusText: string;\n data: any;\n error?: Error;\n 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 arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _toArray(arr) {\n return arrayWithHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableRest();\n}","import type { History, Location, Path, To } from \"./history\";\nimport {\n Action as HistoryAction,\n createLocation,\n createPath,\n invariant,\n parsePath,\n} from \"./history\";\nimport type {\n DataResult,\n AgnosticDataRouteMatch,\n AgnosticDataRouteObject,\n DeferredResult,\n ErrorResult,\n FormEncType,\n FormMethod,\n RedirectResult,\n RouteData,\n AgnosticRouteObject,\n Submission,\n SuccessResult,\n AgnosticRouteMatch,\n MutationFormMethod,\n ShouldRevalidateFunction,\n} from \"./utils\";\nimport {\n DeferredData,\n ErrorResponse,\n ResultType,\n convertRoutesToDataRoutes,\n getPathContributingMatches,\n isRouteErrorResponse,\n joinPaths,\n matchRoutes,\n resolveTo,\n stripBasename,\n warning,\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 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 * 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, 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,\n opts?: RouterNavigateOptions\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 * Initialization options for createRouter\n */\nexport interface RouterInit {\n basename?: string;\n routes: AgnosticRouteObject[];\n history: History;\n hydrationData?: HydrationState;\n}\n\n/**\n * State returned from a server-side query() call\n */\nexport interface StaticHandlerContext {\n basename: Router[\"basename\"];\n location: RouterState[\"location\"];\n matches: RouterState[\"matches\"];\n loaderData: RouterState[\"loaderData\"];\n actionData: RouterState[\"actionData\"];\n errors: RouterState[\"errors\"];\n statusCode: number;\n loaderHeaders: Record;\n actionHeaders: Record;\n activeDeferreds: Record | null;\n _deepestRenderedBoundaryId?: string | null;\n}\n\n/**\n * A StaticHandler instance manages a singular SSR navigation/fetch event\n */\nexport interface StaticHandler {\n dataRoutes: AgnosticDataRouteObject[];\n query(\n request: Request,\n opts?: { requestContext?: unknown }\n ): Promise;\n queryRoute(\n request: Request,\n opts?: { routeId?: string; requestContext?: unknown }\n ): Promise;\n}\n\n/**\n * Subscriber function signature for changes to router state\n */\nexport interface RouterSubscriber {\n (state: RouterState): void;\n}\n\ninterface UseMatchesMatch {\n id: string;\n pathname: string;\n params: AgnosticRouteMatch[\"params\"];\n data: unknown;\n handle: unknown;\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: UseMatchesMatch[]): string | null;\n}\n\n/**\n * Function signature for determining the current scroll position\n */\nexport interface GetScrollPositionFunction {\n (): number;\n}\n\n/**\n * Options for a navigate() call for a Link navigation\n */\ntype LinkNavigateOptions = {\n replace?: boolean;\n state?: any;\n preventScrollReset?: boolean;\n};\n\n/**\n * Options for a navigate() call for a Form navigation\n */\ntype SubmissionNavigateOptions = {\n replace?: boolean;\n state?: any;\n preventScrollReset?: boolean;\n formMethod?: FormMethod;\n formEncType?: FormEncType;\n formData: FormData;\n};\n\n/**\n * Options to pass to navigate() for either a Link or Form navigation\n */\nexport type RouterNavigateOptions =\n | LinkNavigateOptions\n | SubmissionNavigateOptions;\n\n/**\n * Options to pass to fetch()\n */\nexport type RouterFetchOptions =\n | Omit\n | Omit;\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 };\n Loading: {\n state: \"loading\";\n location: Location;\n formMethod: FormMethod | undefined;\n formAction: string | undefined;\n formEncType: FormEncType | undefined;\n formData: FormData | undefined;\n };\n Submitting: {\n state: \"submitting\";\n location: Location;\n formMethod: FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: FormData;\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 formData: undefined;\n data: TData | undefined;\n \" _hasFetcherDoneAnything \"?: boolean;\n };\n Loading: {\n state: \"loading\";\n formMethod: FormMethod | undefined;\n formAction: string | undefined;\n formEncType: FormEncType | undefined;\n formData: FormData | undefined;\n data: TData | undefined;\n \" _hasFetcherDoneAnything \"?: boolean;\n };\n Submitting: {\n state: \"submitting\";\n formMethod: FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: FormData;\n data: TData | undefined;\n \" _hasFetcherDoneAnything \"?: boolean;\n };\n};\n\nexport type Fetcher =\n FetcherStates[keyof FetcherStates];\n\ninterface BlockerBlocked {\n state: \"blocked\";\n reset(): void;\n proceed(): void;\n location: Location;\n}\n\ninterface BlockerUnblocked {\n state: \"unblocked\";\n reset: undefined;\n proceed: undefined;\n location: undefined;\n}\n\ninterface BlockerProceeding {\n state: \"proceeding\";\n reset: undefined;\n proceed: undefined;\n location: Location;\n}\n\nexport type Blocker = BlockerUnblocked | BlockerBlocked | BlockerProceeding;\n\nexport type BlockerFunction = (args: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n}) => boolean;\n\ninterface ShortCircuitable {\n /**\n * startNavigation does not need to complete the navigation because we\n * redirected or got interrupted\n */\n shortCircuited?: boolean;\n}\n\ninterface HandleActionResult extends ShortCircuitable {\n /**\n * Error thrown from the current action, keyed by the route containing the\n * error boundary to render the error. To be committed to the state after\n * loaders have completed\n */\n pendingActionError?: RouteData;\n /**\n * Data returned from the current action, keyed by the route owning the action.\n * To be committed to the state after loaders have completed\n */\n pendingActionData?: RouteData;\n}\n\ninterface HandleLoadersResult extends ShortCircuitable {\n /**\n * loaderData returned from the current set of loaders\n */\n loaderData?: RouterState[\"loaderData\"];\n /**\n * errors thrown from the current set of loaders\n */\n errors?: RouterState[\"errors\"];\n}\n\n/**\n * Cached info for active fetcher.load() instances so they can participate\n * in revalidation\n */\ninterface FetchLoadMatch {\n routeId: string;\n path: string;\n}\n\n/**\n * Identified fetcher.load() calls that need to be revalidated\n */\ninterface RevalidatingFetcher extends FetchLoadMatch {\n key: string;\n match: AgnosticDataRouteMatch | null;\n matches: AgnosticDataRouteMatch[] | null;\n}\n\n/**\n * Wrapper object to allow us to throw any response out from callLoaderOrAction\n * for queryRouter while preserving whether or not it was thrown or returned\n * from the loader/action\n */\ninterface QueryRouteResponse {\n type: ResultType.data | ResultType.error;\n response: Response;\n}\n\nconst validMutationMethodsArr: MutationFormMethod[] = [\n \"post\",\n \"put\",\n \"patch\",\n \"delete\",\n];\nconst validMutationMethods = new Set(\n validMutationMethodsArr\n);\n\nconst validRequestMethodsArr: FormMethod[] = [\n \"get\",\n ...validMutationMethodsArr,\n];\nconst validRequestMethods = new Set(validRequestMethodsArr);\n\nconst redirectStatusCodes = new Set([301, 302, 303, 307, 308]);\nconst redirectPreserveMethodStatusCodes = new Set([307, 308]);\n\nexport const IDLE_NAVIGATION: NavigationStates[\"Idle\"] = {\n state: \"idle\",\n location: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n};\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};\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 isBrowser =\n typeof window !== \"undefined\" &&\n typeof window.document !== \"undefined\" &&\n typeof window.document.createElement !== \"undefined\";\nconst isServer = !isBrowser;\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 invariant(\n init.routes.length > 0,\n \"You must provide a non-empty routes array to createRouter\"\n );\n\n let dataRoutes = convertRoutesToDataRoutes(init.routes);\n let inFlightDataRoutes: AgnosticDataRouteObject[] | undefined;\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(\n dataRoutes,\n init.history.location,\n init.basename\n );\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 =\n !initialMatches.some((m) => m.route.loader) || init.hydrationData != null;\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 // 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 // - useRevalidate()\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 from their actions\n let fetchRedirectIds = new Set();\n\n // Most recent href/match for fetcher.load calls for fetchers\n let fetchLoadMatches = new Map();\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 deleteBlocker(blockerKey!);\n updateState({ blockers: new Map(router.state.blockers) });\n },\n });\n return;\n }\n\n return startNavigation(historyAction, location);\n }\n );\n\n // Kick off initial data load if needed. Use Pop to avoid modifying history\n if (!state.initialized) {\n startNavigation(HistoryAction.Pop, state.location);\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 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(newState: Partial): void {\n state = {\n ...state,\n ...newState,\n };\n subscribers.forEach((subscriber) => subscriber(state));\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 ): 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 for (let [key] of blockerFunctions) {\n deleteBlocker(key);\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 updateState({\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: new Map(state.blockers),\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 // Reset stateful navigation vars\n pendingAction = HistoryAction.Pop;\n pendingPreventScrollReset = 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,\n opts?: RouterNavigateOptions\n ): Promise {\n if (typeof to === \"number\") {\n init.history.go(to);\n return;\n }\n\n let { path, submission, error } = normalizeNavigateOptions(to, opts);\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 blockerKey = shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\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 deleteBlocker(blockerKey!);\n updateState({ blockers: new Map(state.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 });\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 submission?: Submission;\n overrideNavigation?: Navigation;\n pendingError?: ErrorResponse;\n startUninterruptedRevalidation?: boolean;\n preventScrollReset?: boolean;\n replace?: 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 let routesToUse = inFlightDataRoutes || dataRoutes;\n let loadingNavigation = opts && opts.overrideNavigation;\n let matches = matchRoutes(routesToUse, location, init.basename);\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(location, {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error,\n },\n });\n return;\n }\n\n // Short circuit if it's only a hash change and not a mutation submission\n // For example, on /page#hash and submit a
which will\n // default to a navigation to /page\n if (\n isHashChangeOnly(state.location, location) &&\n !(opts && opts.submission && isMutationMethod(opts.submission.formMethod))\n ) {\n completeNavigation(location, { matches });\n return;\n }\n\n // Create a controller/Request for this navigation\n pendingNavigationController = new AbortController();\n let request = createClientSideRequest(\n init.history,\n location,\n pendingNavigationController.signal,\n opts && opts.submission\n );\n let pendingActionData: RouteData | undefined;\n let pendingError: RouteData | undefined;\n\n if (opts && opts.pendingError) {\n // If we have a pendingError, it means the user attempted a GET submission\n // with binary FormData so assign here and skip to handleLoaders. That\n // way we handle calling loaders above the boundary etc. It's not really\n // different from an actionError in that sense.\n pendingError = {\n [findNearestBoundary(matches).route.id]: opts.pendingError,\n };\n } else if (\n opts &&\n opts.submission &&\n isMutationMethod(opts.submission.formMethod)\n ) {\n // Call action if we received an action submission\n let actionOutput = await handleAction(\n request,\n location,\n opts.submission,\n matches,\n { replace: opts.replace }\n );\n\n if (actionOutput.shortCircuited) {\n return;\n }\n\n pendingActionData = actionOutput.pendingActionData;\n pendingError = actionOutput.pendingActionError;\n\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n ...opts.submission,\n };\n loadingNavigation = navigation;\n\n // Create a GET request for the loaders\n request = new Request(request.url, { signal: request.signal });\n }\n\n // Call loaders\n let { shortCircuited, loaderData, errors } = await handleLoaders(\n request,\n location,\n matches,\n loadingNavigation,\n opts && opts.submission,\n opts && opts.replace,\n pendingActionData,\n pendingError\n );\n\n if (shortCircuited) {\n return;\n }\n\n // Clean up now that the action/loaders have completed. Don't clean up if\n // we short circuited because pendingNavigationController will have already\n // been assigned to a new controller for the next navigation\n pendingNavigationController = null;\n\n completeNavigation(location, {\n matches,\n ...(pendingActionData ? { actionData: pendingActionData } : {}),\n loaderData,\n errors,\n });\n }\n\n // Call the action matched by the leaf route for this navigation and handle\n // redirects/errors\n async function handleAction(\n request: Request,\n location: Location,\n submission: Submission,\n matches: AgnosticDataRouteMatch[],\n opts?: { replace?: boolean }\n ): Promise {\n interruptActiveLoads();\n\n // Put us in a submitting state\n let navigation: NavigationStates[\"Submitting\"] = {\n state: \"submitting\",\n location,\n ...submission,\n };\n updateState({ navigation });\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) {\n result = {\n type: ResultType.error,\n error: getInternalRouterError(405, {\n method: request.method,\n pathname: location.pathname,\n routeId: actionMatch.route.id,\n }),\n };\n } else {\n result = await callLoaderOrAction(\n \"action\",\n request,\n actionMatch,\n matches,\n router.basename\n );\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n }\n\n if (isRedirectResult(result)) {\n let replace: boolean;\n if (opts && opts.replace != null) {\n replace = opts.replace;\n } else {\n // If the user didn't explicity indicate replace behavior, replace if\n // we redirected to the exact same location we're currently at to avoid\n // double back-buttons\n replace =\n result.location === state.location.pathname + state.location.search;\n }\n await startRedirectNavigation(state, result, { submission, replace });\n return { shortCircuited: true };\n }\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n\n // By default, all submissions are REPLACE navigations, but if the\n // action threw an error that'll be rendered in an errorElement, we fall\n // back to PUSH so that the user can use the back button to get back to\n // the pre-submission form location to try again\n if ((opts && opts.replace) !== true) {\n pendingAction = HistoryAction.Push;\n }\n\n return {\n // Send back an empty object we can use to clear out any prior actionData\n pendingActionData: {},\n pendingActionError: { [boundaryMatch.route.id]: result.error },\n };\n }\n\n if (isDeferredResult(result)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n return {\n pendingActionData: { [actionMatch.route.id]: result.data },\n };\n }\n\n // Call all applicable loaders for the given matches, handling redirects,\n // errors, etc.\n async function handleLoaders(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n overrideNavigation?: Navigation,\n submission?: Submission,\n replace?: boolean,\n pendingActionData?: RouteData,\n pendingError?: RouteData\n ): Promise {\n // Figure out the right navigation we want to use for data loading\n let loadingNavigation = overrideNavigation;\n if (!loadingNavigation) {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n ...submission,\n };\n loadingNavigation = navigation;\n }\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 = submission\n ? submission\n : loadingNavigation.formMethod &&\n loadingNavigation.formAction &&\n loadingNavigation.formData &&\n loadingNavigation.formEncType\n ? {\n formMethod: loadingNavigation.formMethod,\n formAction: loadingNavigation.formAction,\n formData: loadingNavigation.formData,\n formEncType: loadingNavigation.formEncType,\n }\n : undefined;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n activeSubmission,\n location,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n fetchLoadMatches,\n routesToUse,\n init.basename,\n pendingActionData,\n pendingError\n );\n\n // Cancel pending deferreds for no-longer-matched routes or routes we're\n // about to reload. Note that if this is an action reload we would have\n // already cancelled all pending deferreds so this would be a no-op\n cancelActiveDeferreds(\n (routeId) =>\n !(matches && matches.some((m) => m.route.id === routeId)) ||\n (matchesToLoad && matchesToLoad.some((m) => m.route.id === routeId))\n );\n\n // Short circuit if we have no loaders to run\n if (matchesToLoad.length === 0 && revalidatingFetchers.length === 0) {\n completeNavigation(location, {\n matches,\n loaderData: {},\n // Commit pending error if we're short circuiting\n errors: pendingError || null,\n ...(pendingActionData ? { actionData: pendingActionData } : {}),\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 (!isUninterruptedRevalidation) {\n revalidatingFetchers.forEach((rf) => {\n let fetcher = state.fetchers.get(rf.key);\n let revalidatingFetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n data: fetcher && fetcher.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(rf.key, revalidatingFetcher);\n });\n let actionData = pendingActionData || state.actionData;\n updateState({\n navigation: loadingNavigation,\n ...(actionData\n ? Object.keys(actionData).length === 0\n ? { actionData: null }\n : { actionData }\n : {}),\n ...(revalidatingFetchers.length > 0\n ? { fetchers: new Map(state.fetchers) }\n : {}),\n });\n }\n\n pendingNavigationLoadId = ++incrementingLoadId;\n revalidatingFetchers.forEach((rf) =>\n fetchControllers.set(rf.key, pendingNavigationController!)\n );\n\n let { results, loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state.matches,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n request\n );\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n\n // Clean up _after_ loaders have completed. Don't clean up if we short\n // circuited because fetchControllers would have been aborted and\n // reassigned to new controllers for the next navigation\n revalidatingFetchers.forEach((rf) => fetchControllers.delete(rf.key));\n\n // If any loaders returned a redirect Response, start a new REPLACE navigation\n let redirect = findRedirect(results);\n if (redirect) {\n await startRedirectNavigation(state, redirect, { replace });\n return { shortCircuited: true };\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n matches,\n matchesToLoad,\n loaderResults,\n pendingError,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n // Wire up subscribers to update loaderData as promises settle\n activeDeferreds.forEach((deferredData, routeId) => {\n deferredData.subscribe((aborted) => {\n // Note: No need to updateState here since the TrackedPromise on\n // loaderData is stable across resolve/reject\n // Remove this instance if we were aborted or if promises have settled\n if (aborted || deferredData.done) {\n activeDeferreds.delete(routeId);\n }\n });\n });\n\n markFetchRedirectsDone();\n let didAbortFetchLoads = abortStaleFetchLoads(pendingNavigationLoadId);\n\n return {\n loaderData,\n errors,\n ...(didAbortFetchLoads || revalidatingFetchers.length > 0\n ? { fetchers: new Map(state.fetchers) }\n : {}),\n };\n }\n\n function getFetcher(key: string): Fetcher {\n return state.fetchers.get(key) || IDLE_FETCHER;\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,\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\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let matches = matchRoutes(routesToUse, href, init.basename);\n if (!matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: href })\n );\n return;\n }\n\n let { path, submission } = normalizeNavigateOptions(href, opts, true);\n let match = getTargetMatch(matches, path);\n\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n if (submission && isMutationMethod(submission.formMethod)) {\n handleFetcherAction(key, routeId, path, match, matches, submission);\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(key, routeId, path, match, matches, submission);\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 submission: Submission\n ) {\n interruptActiveLoads();\n fetchLoadMatches.delete(key);\n\n if (!match.route.action) {\n let error = getInternalRouterError(405, {\n method: submission.formMethod,\n pathname: path,\n routeId: routeId,\n });\n setFetcherError(key, routeId, error);\n return;\n }\n\n // Put this fetcher into it's submitting state\n let existingFetcher = state.fetchers.get(key);\n let fetcher: FetcherStates[\"Submitting\"] = {\n state: \"submitting\",\n ...submission,\n data: existingFetcher && existingFetcher.data,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(key, fetcher);\n updateState({ fetchers: new Map(state.fetchers) });\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 actionResult = await callLoaderOrAction(\n \"action\",\n fetchRequest,\n match,\n requestMatches,\n router.basename\n );\n\n if (fetchRequest.signal.aborted) {\n // We can delete this so long as we weren't aborted by ou 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 if (isRedirectResult(actionResult)) {\n fetchControllers.delete(key);\n fetchRedirectIds.add(key);\n let loadingFetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n ...submission,\n data: undefined,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(key, loadingFetcher);\n updateState({ fetchers: new Map(state.fetchers) });\n\n return startRedirectNavigation(state, actionResult, {\n isFetchActionRedirect: true,\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 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\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, init.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: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n data: actionResult.data,\n ...submission,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(key, loadFetcher);\n\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n submission,\n nextLocation,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n fetchLoadMatches,\n routesToUse,\n init.basename,\n { [match.route.id]: actionResult.data },\n undefined // No need to send through errors since we short circuit above\n );\n\n // Put all revalidating fetchers into the loading state, except for the\n // current fetcher which we want to keep in it's current loading state which\n // contains it's action submission info + action data\n revalidatingFetchers\n .filter((rf) => rf.key !== key)\n .forEach((rf) => {\n let staleKey = rf.key;\n let existingFetcher = state.fetchers.get(staleKey);\n let revalidatingFetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n data: existingFetcher && existingFetcher.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(staleKey, revalidatingFetcher);\n fetchControllers.set(staleKey, abortController);\n });\n\n updateState({ fetchers: new Map(state.fetchers) });\n\n let { results, loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state.matches,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n revalidationRequest\n );\n\n if (abortController.signal.aborted) {\n return;\n }\n\n fetchReloadIds.delete(key);\n fetchControllers.delete(key);\n revalidatingFetchers.forEach((r) => fetchControllers.delete(r.key));\n\n let redirect = findRedirect(results);\n if (redirect) {\n return startRedirectNavigation(state, redirect);\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 let doneFetcher: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: actionResult.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(key, doneFetcher);\n\n let didAbortFetchLoads = 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 ...(didAbortFetchLoads ? { 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 submission?: Submission\n ) {\n let existingFetcher = state.fetchers.get(key);\n // Put this fetcher into it's loading state\n let loadingFetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n ...submission,\n data: existingFetcher && existingFetcher.data,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(key, loadingFetcher);\n updateState({ fetchers: new Map(state.fetchers) });\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 let result: DataResult = await callLoaderOrAction(\n \"loader\",\n fetchRequest,\n match,\n matches,\n router.basename\n );\n\n // Deferred isn't supported for fetcher loads, await everything and treat it\n // as a normal load. resolveDeferredData will return undefined if this\n // fetcher gets aborted, so we just leave result untouched and short circuit\n // below if that happens\n if (isDeferredResult(result)) {\n result =\n (await resolveDeferredData(result, fetchRequest.signal, true)) ||\n result;\n }\n\n // We can delete this so long as we weren't aborted by ou 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 // If the loader threw a redirect Response, start a new REPLACE navigation\n if (isRedirectResult(result)) {\n await startRedirectNavigation(state, result);\n return;\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n state.fetchers.delete(key);\n // TODO: In remix, this would reset to IDLE_NAVIGATION if it was a catch -\n // do we need to behave any differently with our non-redirect errors?\n // What if it was a non-redirect Response?\n updateState({\n fetchers: new Map(state.fetchers),\n errors: {\n [boundaryMatch.route.id]: result.error,\n },\n });\n return;\n }\n\n invariant(!isDeferredResult(result), \"Unhandled fetcher deferred data\");\n\n // Put the fetcher back into an idle state\n let doneFetcher: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: result.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(key, doneFetcher);\n updateState({ fetchers: new Map(state.fetchers) });\n }\n\n /**\n * Utility function to handle redirects returned from an action or loader.\n * Normally, a redirect \"replaces\" the navigation that triggered it. So, for\n * example:\n *\n * - user is on /a\n * - user clicks a link to /b\n * - loader for /b redirects to /c\n *\n * In a non-JS app the browser would track the in-flight navigation to /b and\n * then replace it with /c when it encountered the redirect response. In\n * the end it would only ever update the URL bar with /c.\n *\n * In client-side routing using pushState/replaceState, we aim to emulate\n * this behavior and we also do not update history until the end of the\n * navigation (including processed redirects). This means that we never\n * actually touch history until we've processed redirects, so we just use\n * the history action from the original navigation (PUSH or REPLACE).\n */\n async function startRedirectNavigation(\n state: RouterState,\n redirect: RedirectResult,\n {\n submission,\n replace,\n isFetchActionRedirect,\n }: {\n submission?: Submission;\n replace?: boolean;\n isFetchActionRedirect?: boolean;\n } = {}\n ) {\n if (redirect.revalidate) {\n isRevalidationRequired = true;\n }\n\n let redirectLocation = createLocation(\n state.location,\n redirect.location,\n // TODO: This can be removed once we get rid of useTransition in Remix v2\n {\n _isRedirect: true,\n ...(isFetchActionRedirect ? { _isFetchActionRedirect: true } : {}),\n }\n );\n invariant(\n redirectLocation,\n \"Expected a location on the redirect navigation\"\n );\n // Check if this an absolute external redirect that goes to a new origin\n if (\n ABSOLUTE_URL_REGEX.test(redirect.location) &&\n isBrowser &&\n typeof window?.location !== \"undefined\"\n ) {\n let url = init.history.createURL(redirect.location);\n let isDifferentBasename =\n stripBasename(url.pathname, init.basename || \"/\") == null;\n\n if (window.location.origin !== url.origin || isDifferentBasename) {\n if (replace) {\n window.location.replace(redirect.location);\n } else {\n window.location.assign(redirect.location);\n }\n return;\n }\n }\n\n // There's no need to abort on redirects, since we don't detect the\n // redirect until the action/loaders have settled\n pendingNavigationController = null;\n\n let redirectHistoryAction =\n replace === true ? HistoryAction.Replace : HistoryAction.Push;\n\n // Use the incoming submission if provided, fallback on the active one in\n // state.navigation\n let { formMethod, formAction, formEncType, formData } = state.navigation;\n if (!submission && formMethod && formAction && formData && formEncType) {\n submission = {\n formMethod,\n formAction,\n formEncType,\n formData,\n };\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 if (\n redirectPreserveMethodStatusCodes.has(redirect.status) &&\n submission &&\n isMutationMethod(submission.formMethod)\n ) {\n await startNavigation(redirectHistoryAction, redirectLocation, {\n submission: {\n ...submission,\n formAction: redirect.location,\n },\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset,\n });\n } else {\n // Otherwise, we kick off a new loading navigation, preserving the\n // submission info for the duration of this navigation\n await startNavigation(redirectHistoryAction, redirectLocation, {\n overrideNavigation: {\n state: \"loading\",\n location: redirectLocation,\n formMethod: submission ? submission.formMethod : undefined,\n formAction: submission ? submission.formAction : undefined,\n formEncType: submission ? submission.formEncType : undefined,\n formData: submission ? submission.formData : undefined,\n },\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset,\n });\n }\n }\n\n async function callLoadersAndMaybeResolveData(\n currentMatches: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n fetchersToLoad: RevalidatingFetcher[],\n request: Request\n ) {\n // Call all navigation loaders and revalidating fetcher loaders in parallel,\n // then slice off the results into separate arrays so we can handle them\n // accordingly\n let results = await Promise.all([\n ...matchesToLoad.map((match) =>\n callLoaderOrAction(\"loader\", request, match, matches, router.basename)\n ),\n ...fetchersToLoad.map((f) => {\n if (f.matches && f.match) {\n return callLoaderOrAction(\n \"loader\",\n createClientSideRequest(init.history, f.path, request.signal),\n f.match,\n f.matches,\n router.basename\n );\n } else {\n let error: ErrorResult = {\n type: ResultType.error,\n error: getInternalRouterError(404, { pathname: f.path }),\n };\n return error;\n }\n }),\n ]);\n let loaderResults = results.slice(0, matchesToLoad.length);\n let fetcherResults = results.slice(matchesToLoad.length);\n\n await Promise.all([\n resolveDeferredResults(\n currentMatches,\n matchesToLoad,\n loaderResults,\n request.signal,\n false,\n state.loaderData\n ),\n resolveDeferredResults(\n currentMatches,\n fetchersToLoad.map((f) => f.match),\n fetcherResults,\n request.signal,\n true\n ),\n ]);\n\n return { results, loaderResults, fetcherResults };\n }\n\n function interruptActiveLoads() {\n // Every interruption triggers a revalidation\n isRevalidationRequired = true;\n\n // Cancel pending route-level deferreds and mark cancelled routes for\n // revalidation\n cancelledDeferredRoutes.push(...cancelActiveDeferreds());\n\n // Abort in-flight fetcher loads\n fetchLoadMatches.forEach((_, key) => {\n if (fetchControllers.has(key)) {\n cancelledFetcherLoads.push(key);\n abortFetcher(key);\n }\n });\n }\n\n function setFetcherError(key: string, routeId: string, error: any) {\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n deleteFetcher(key);\n updateState({\n errors: {\n [boundaryMatch.route.id]: error,\n },\n fetchers: new Map(state.fetchers),\n });\n }\n\n function deleteFetcher(key: string): void {\n if (fetchControllers.has(key)) abortFetcher(key);\n fetchLoadMatches.delete(key);\n fetchReloadIds.delete(key);\n fetchRedirectIds.delete(key);\n state.fetchers.delete(key);\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: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: fetcher.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n function markFetchRedirectsDone(): void {\n let doneKeys = [];\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 }\n }\n markFetchersDone(doneKeys);\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 state.blockers.set(key, newBlocker);\n updateState({ blockers: new Map(state.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 || ((location) => location.key);\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 saveScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): void {\n if (savedScrollPositions && getScrollRestorationKey && getScrollPosition) {\n let userMatches = matches.map((m) =>\n createUseMatchesMatch(m, state.loaderData)\n );\n let key = getScrollRestorationKey(location, userMatches) || location.key;\n savedScrollPositions[key] = getScrollPosition();\n }\n }\n\n function getSavedScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): number | null {\n if (savedScrollPositions && getScrollRestorationKey && getScrollPosition) {\n let userMatches = matches.map((m) =>\n createUseMatchesMatch(m, state.loaderData)\n );\n let key = getScrollRestorationKey(location, userMatches) || location.key;\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 inFlightDataRoutes = newRoutes;\n }\n\n router = {\n get basename() {\n return init.basename;\n },\n get state() {\n return state;\n },\n get routes() {\n return dataRoutes;\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,\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\nexport function createStaticHandler(\n routes: AgnosticRouteObject[],\n opts?: {\n basename?: string;\n }\n): StaticHandler {\n invariant(\n routes.length > 0,\n \"You must provide a non-empty routes array to createStaticHandler\"\n );\n\n let dataRoutes = convertRoutesToDataRoutes(routes);\n let basename = (opts ? opts.basename : null) || \"/\";\n\n /**\n * The query() method is intended for document requests, in which we want to\n * call an optional action and potentially multiple loaders for all nested\n * routes. It returns a StaticHandlerContext object, which is very similar\n * to the router state (location, loaderData, actionData, errors, etc.) and\n * also adds SSR-specific information such as the statusCode and headers\n * from action/loaders Responses.\n *\n * It _should_ never throw and should report all errors through the\n * returned context.errors object, properly associating errors to their error\n * boundary. Additionally, it tracks _deepestRenderedBoundaryId which can be\n * used to emulate React error boundaries during SSr by performing a second\n * pass only down to the boundaryId.\n *\n * The one exception where we do not return a StaticHandlerContext is when a\n * redirect response is returned or thrown from any action/loader. We\n * propagate that out and return the raw Response so the HTTP server can\n * return it directly.\n */\n async function query(\n request: Request,\n { requestContext }: { requestContext?: unknown } = {}\n ): Promise {\n let url = new URL(request.url);\n let method = request.method.toLowerCase();\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"head\") {\n let error = getInternalRouterError(405, { method });\n let { matches: methodNotAllowedMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: methodNotAllowedMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n } else if (!matches) {\n let error = getInternalRouterError(404, { pathname: location.pathname });\n let { matches: notFoundMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: notFoundMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let result = await queryImpl(request, location, matches, requestContext);\n if (isResponse(result)) {\n return result;\n }\n\n // When returning StaticHandlerContext, we patch back in the location here\n // since we need it for React Context. But this helps keep our submit and\n // loadRouteData operating on a Request instead of a Location\n return { location, basename, ...result };\n }\n\n /**\n * The queryRoute() method is intended for targeted route requests, either\n * for fetch ?_data requests or resource route requests. In this case, we\n * are only ever calling a single action or loader, and we are returning the\n * returned value directly. In most cases, this will be a Response returned\n * from the action/loader, but it may be a primitive or other value as well -\n * and in such cases the calling context should handle that accordingly.\n *\n * We do respect the throw/return differentiation, so if an action/loader\n * throws, then this method will throw the value. This is important so we\n * can do proper boundary identification in Remix where a thrown Response\n * must go to the Catch Boundary but a returned Response is happy-path.\n *\n * One thing to note is that any Router-initiated Errors that make sense\n * to associate with a status code will be thrown as an ErrorResponse\n * instance which include the raw Error, such that the calling context can\n * serialize the error as they see fit while including the proper response\n * code. Examples here are 404 and 405 errors that occur prior to reaching\n * any user-defined loaders.\n */\n async function queryRoute(\n request: Request,\n {\n routeId,\n requestContext,\n }: { requestContext?: unknown; routeId?: string } = {}\n ): Promise {\n let url = new URL(request.url);\n let method = request.method.toLowerCase();\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"head\" && method !== \"options\") {\n throw getInternalRouterError(405, { method });\n } else if (!matches) {\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let match = routeId\n ? matches.find((m) => m.route.id === routeId)\n : getTargetMatch(matches, location);\n\n if (routeId && !match) {\n throw getInternalRouterError(403, {\n pathname: location.pathname,\n routeId,\n });\n } else if (!match) {\n // This should never hit I don't think?\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let result = await queryImpl(\n request,\n location,\n matches,\n requestContext,\n match\n );\n if (isResponse(result)) {\n return result;\n }\n\n let error = result.errors ? Object.values(result.errors)[0] : undefined;\n if (error !== undefined) {\n // If we got back result.errors, that means the loader/action threw\n // _something_ that wasn't a Response, but it's not guaranteed/required\n // to be an `instanceof Error` either, so we have to use throw here to\n // preserve the \"error\" state outside of queryImpl.\n throw error;\n }\n\n // Pick off the right state value to return\n if (result.actionData) {\n return Object.values(result.actionData)[0];\n }\n\n if (result.loaderData) {\n let data = Object.values(result.loaderData)[0];\n if (result.activeDeferreds?.[match.route.id]) {\n data[UNSAFE_DEFERRED_SYMBOL] = result.activeDeferreds[match.route.id];\n }\n return data;\n }\n\n return undefined;\n }\n\n async function queryImpl(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n routeMatch?: AgnosticDataRouteMatch\n ): Promise | Response> {\n invariant(\n request.signal,\n \"query()/queryRoute() requests must contain an AbortController signal\"\n );\n\n try {\n if (isMutationMethod(request.method.toLowerCase())) {\n let result = await submit(\n request,\n matches,\n routeMatch || getTargetMatch(matches, location),\n requestContext,\n routeMatch != null\n );\n return result;\n }\n\n let result = await loadRouteData(\n request,\n matches,\n requestContext,\n routeMatch\n );\n return isResponse(result)\n ? result\n : {\n ...result,\n actionData: null,\n actionHeaders: {},\n };\n } catch (e) {\n // If the user threw/returned a Response in callLoaderOrAction, we throw\n // it to bail out and then return or throw here based on whether the user\n // returned or threw\n if (isQueryRouteResponse(e)) {\n if (e.type === ResultType.error && !isRedirectResponse(e.response)) {\n throw e.response;\n }\n return e.response;\n }\n // Redirects are always returned since they don't propagate to catch\n // boundaries\n if (isRedirectResponse(e)) {\n return e;\n }\n throw e;\n }\n }\n\n async function submit(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n actionMatch: AgnosticDataRouteMatch,\n requestContext: unknown,\n isRouteRequest: boolean\n ): Promise | Response> {\n let result: DataResult;\n\n if (!actionMatch.route.action) {\n let error = getInternalRouterError(405, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: actionMatch.route.id,\n });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n } else {\n result = await callLoaderOrAction(\n \"action\",\n request,\n actionMatch,\n matches,\n basename,\n true,\n isRouteRequest,\n requestContext\n );\n\n if (request.signal.aborted) {\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(`${method}() call aborted`);\n }\n }\n\n if (isRedirectResult(result)) {\n // Uhhhh - this should never happen, we should always throw these from\n // callLoaderOrAction, but the type narrowing here keeps TS happy and we\n // can get back on the \"throw all redirect responses\" train here should\n // this ever happen :/\n throw new Response(null, {\n status: result.status,\n headers: {\n Location: result.location,\n },\n });\n }\n\n if (isDeferredResult(result)) {\n let error = getInternalRouterError(400, { type: \"defer-action\" });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n }\n\n if (isRouteRequest) {\n // Note: This should only be non-Response values if we get here, since\n // isRouteRequest should throw any Response received in callLoaderOrAction\n if (isErrorResult(result)) {\n throw result.error;\n }\n\n return {\n matches: [actionMatch],\n loaderData: {},\n actionData: { [actionMatch.route.id]: result.data },\n errors: null,\n // Note: statusCode + headers are unused here since queryRoute will\n // return the raw Response or value\n statusCode: 200,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n let context = await loadRouteData(\n request,\n matches,\n requestContext,\n undefined,\n {\n [boundaryMatch.route.id]: result.error,\n }\n );\n\n // action status codes take precedence over loader status codes\n return {\n ...context,\n statusCode: isRouteErrorResponse(result.error)\n ? result.error.status\n : 500,\n actionData: null,\n actionHeaders: {\n ...(result.headers ? { [actionMatch.route.id]: result.headers } : {}),\n },\n };\n }\n\n // Create a GET request for the loaders\n let loaderRequest = new Request(request.url, {\n headers: request.headers,\n redirect: request.redirect,\n signal: request.signal,\n });\n let context = await loadRouteData(loaderRequest, matches, requestContext);\n\n return {\n ...context,\n // action status codes take precedence over loader status codes\n ...(result.statusCode ? { statusCode: result.statusCode } : {}),\n actionData: {\n [actionMatch.route.id]: result.data,\n },\n actionHeaders: {\n ...(result.headers ? { [actionMatch.route.id]: result.headers } : {}),\n },\n };\n }\n\n async function loadRouteData(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n routeMatch?: AgnosticDataRouteMatch,\n pendingActionError?: RouteData\n ): Promise<\n | Omit<\n StaticHandlerContext,\n \"location\" | \"basename\" | \"actionData\" | \"actionHeaders\"\n >\n | Response\n > {\n let isRouteRequest = routeMatch != null;\n\n // Short circuit if we have no loaders to run (queryRoute())\n if (isRouteRequest && !routeMatch?.route.loader) {\n throw getInternalRouterError(400, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: routeMatch?.route.id,\n });\n }\n\n let requestMatches = routeMatch\n ? [routeMatch]\n : getLoaderMatchesUntilBoundary(\n matches,\n Object.keys(pendingActionError || {})[0]\n );\n let matchesToLoad = requestMatches.filter((m) => m.route.loader);\n\n // Short circuit if we have no loaders to run (query())\n if (matchesToLoad.length === 0) {\n return {\n matches,\n // Add a null for all matched routes for proper revalidation on the client\n loaderData: matches.reduce(\n (acc, m) => Object.assign(acc, { [m.route.id]: null }),\n {}\n ),\n errors: pendingActionError || null,\n statusCode: 200,\n loaderHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let results = await Promise.all([\n ...matchesToLoad.map((match) =>\n callLoaderOrAction(\n \"loader\",\n request,\n match,\n matches,\n basename,\n true,\n isRouteRequest,\n requestContext\n )\n ),\n ]);\n\n if (request.signal.aborted) {\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(`${method}() call aborted`);\n }\n\n // Process and commit output from loaders\n let activeDeferreds = new Map();\n let context = processRouteLoaderData(\n matches,\n matchesToLoad,\n results,\n pendingActionError,\n activeDeferreds\n );\n\n // Add a null for any non-loader matches for proper revalidation on the client\n let executedLoaders = new Set(\n matchesToLoad.map((match) => match.route.id)\n );\n matches.forEach((match) => {\n if (!executedLoaders.has(match.route.id)) {\n context.loaderData[match.route.id] = null;\n }\n });\n\n return {\n ...context,\n matches,\n activeDeferreds:\n activeDeferreds.size > 0\n ? Object.fromEntries(activeDeferreds.entries())\n : null,\n };\n }\n\n return {\n dataRoutes,\n query,\n queryRoute,\n };\n}\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Helpers\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Given an existing StaticHandlerContext and an error thrown at render time,\n * provide an updated StaticHandlerContext suitable for a second SSR render\n */\nexport function getStaticContextFromError(\n routes: AgnosticDataRouteObject[],\n context: StaticHandlerContext,\n error: any\n) {\n let newContext: StaticHandlerContext = {\n ...context,\n statusCode: 500,\n errors: {\n [context._deepestRenderedBoundaryId || routes[0].id]: error,\n },\n };\n return newContext;\n}\n\nfunction isSubmissionNavigation(\n opts: RouterNavigateOptions\n): opts is SubmissionNavigateOptions {\n return opts != null && \"formData\" in opts;\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 to: To,\n opts?: RouterNavigateOptions,\n isFetcher = false\n): {\n path: string;\n submission?: Submission;\n error?: ErrorResponse;\n} {\n let path = typeof to === \"string\" ? to : createPath(to);\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 // Create a Submission on non-GET navigations\n let submission: Submission | undefined;\n if (opts.formData) {\n submission = {\n formMethod: opts.formMethod || \"get\",\n formAction: stripHashFromPath(path),\n formEncType:\n (opts && opts.formEncType) || \"application/x-www-form-urlencoded\",\n formData: opts.formData,\n };\n\n if (isMutationMethod(submission.formMethod)) {\n return { path, submission };\n }\n }\n\n // Flatten submission onto URLSearchParams for GET submissions\n let parsedPath = parsePath(path);\n let searchParams = convertFormDataToSearchParams(opts.formData);\n // Since fetcher GET submissions only run a single loader (as opposed to\n // navigation GET submissions which run all loaders), we need to preserve\n // 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 isRevalidationRequired: boolean,\n cancelledDeferredRoutes: string[],\n cancelledFetcherLoads: string[],\n fetchLoadMatches: Map,\n routesToUse: AgnosticDataRouteObject[],\n basename: string | undefined,\n pendingActionData?: RouteData,\n pendingError?: RouteData\n): [AgnosticDataRouteMatch[], RevalidatingFetcher[]] {\n let actionResult = pendingError\n ? Object.values(pendingError)[0]\n : pendingActionData\n ? Object.values(pendingActionData)[0]\n : undefined;\n\n let currentUrl = history.createURL(state.location);\n let nextUrl = history.createURL(location);\n\n let defaultShouldRevalidate =\n // Forced revalidation due to submission, useRevalidate, or X-Remix-Revalidate\n isRevalidationRequired ||\n // Clicked the same link, resubmitted a GET form\n currentUrl.toString() === nextUrl.toString() ||\n // Search params affect all loaders\n currentUrl.search !== nextUrl.search;\n\n // Pick navigation matches that are net-new or qualify for revalidation\n let boundaryId = pendingError ? Object.keys(pendingError)[0] : undefined;\n let boundaryMatches = getLoaderMatchesUntilBoundary(matches, boundaryId);\n\n let navigationMatches = boundaryMatches.filter((match, index) => {\n if (match.route.loader == null) {\n return false;\n }\n\n // Always call the loader on new route instances and pending defer cancellations\n if (\n isNewLoader(state.loaderData, state.matches[index], match) ||\n cancelledDeferredRoutes.some((id) => id === match.route.id)\n ) {\n return true;\n }\n\n // This is the default implementation for when we revalidate. If the route\n // provides it's own implementation, then we give them full control but\n // provide this value so they can leverage it if needed after they check\n // their own specific use cases\n let currentRouteMatch = state.matches[index];\n let nextRouteMatch = match;\n\n return shouldRevalidateLoader(match, {\n currentUrl,\n currentParams: currentRouteMatch.params,\n nextUrl,\n nextParams: nextRouteMatch.params,\n ...submission,\n actionResult,\n defaultShouldRevalidate:\n defaultShouldRevalidate ||\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 if fetcher won't be present in the subsequent render\n if (!matches.some((m) => m.route.id === f.routeId)) {\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\n if (!fetcherMatches) {\n revalidatingFetchers.push({ key, ...f, matches: null, match: null });\n return;\n }\n\n let fetcherMatch = getTargetMatch(fetcherMatches, f.path);\n\n if (cancelledFetcherLoads.includes(key)) {\n revalidatingFetchers.push({\n key,\n matches: fetcherMatches,\n match: fetcherMatch,\n ...f,\n });\n return;\n }\n\n // Revalidating fetchers are decoupled from the route matches since they\n // hit a static href, so they _always_ check shouldRevalidate and the\n // default is strictly if a revalidation is explicitly required (action\n // submissions, useRevalidator, X-Remix-Revalidate).\n let shouldRevalidate = shouldRevalidateLoader(fetcherMatch, {\n currentUrl,\n currentParams: state.matches[state.matches.length - 1].params,\n nextUrl,\n nextParams: matches[matches.length - 1].params,\n ...submission,\n actionResult,\n defaultShouldRevalidate,\n });\n if (shouldRevalidate) {\n revalidatingFetchers.push({\n key,\n matches: fetcherMatches,\n match: fetcherMatch,\n ...f,\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: Parameters[0]\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\nasync function callLoaderOrAction(\n type: \"loader\" | \"action\",\n request: Request,\n match: AgnosticDataRouteMatch,\n matches: AgnosticDataRouteMatch[],\n basename = \"/\",\n isStaticRequest: boolean = false,\n isRouteRequest: boolean = false,\n requestContext?: unknown\n): Promise {\n let resultType;\n let result;\n\n // Setup a promise we can race against so that abort signals short circuit\n let reject: () => void;\n let abortPromise = new Promise((_, r) => (reject = r));\n let onReject = () => reject();\n request.signal.addEventListener(\"abort\", onReject);\n\n try {\n let handler = match.route[type];\n invariant(\n handler,\n `Could not find the ${type} to run on the \"${match.route.id}\" route`\n );\n\n result = await Promise.race([\n handler({ request, params: match.params, context: requestContext }),\n abortPromise,\n ]);\n\n invariant(\n result !== undefined,\n `You defined ${type === \"action\" ? \"an action\" : \"a loader\"} for route ` +\n `\"${match.route.id}\" but didn't return anything from your \\`${type}\\` ` +\n `function. Please return a value or \\`null\\`.`\n );\n } catch (e) {\n resultType = ResultType.error;\n result = e;\n } finally {\n request.signal.removeEventListener(\"abort\", onReject);\n }\n\n if (isResponse(result)) {\n let status = result.status;\n\n // Process redirects\n if (redirectStatusCodes.has(status)) {\n let location = result.headers.get(\"Location\");\n invariant(\n location,\n \"Redirects returned/thrown from loaders/actions must have a Location header\"\n );\n\n // Support relative routing in internal redirects\n if (!ABSOLUTE_URL_REGEX.test(location)) {\n let activeMatches = matches.slice(0, matches.indexOf(match) + 1);\n let routePathnames = getPathContributingMatches(activeMatches).map(\n (match) => match.pathnameBase\n );\n let resolvedLocation = resolveTo(\n location,\n routePathnames,\n new URL(request.url).pathname\n );\n invariant(\n createPath(resolvedLocation),\n `Unable to resolve redirect location: ${location}`\n );\n\n // Prepend the basename to the redirect location if we have one\n if (basename) {\n let path = resolvedLocation.pathname;\n resolvedLocation.pathname =\n path === \"/\" ? basename : joinPaths([basename, path]);\n }\n\n location = createPath(resolvedLocation);\n } else if (!isStaticRequest) {\n // Strip off the protocol+origin for same-origin + same-basename absolute\n // redirects. If this is a static request, we can let it go back to the\n // browser as-is\n let currentUrl = new URL(request.url);\n let url = location.startsWith(\"//\")\n ? new URL(currentUrl.protocol + location)\n : new URL(location);\n let isSameBasename = stripBasename(url.pathname, basename) != null;\n if (url.origin === currentUrl.origin && isSameBasename) {\n location = url.pathname + url.search + url.hash;\n }\n }\n\n // Don't process redirects in the router during static requests requests.\n // Instead, throw the Response and let the server handle it with an HTTP\n // redirect. We also update the Location header in place in this flow so\n // basename and relative routing is taken into account\n if (isStaticRequest) {\n result.headers.set(\"Location\", location);\n throw result;\n }\n\n return {\n type: ResultType.redirect,\n status,\n location,\n revalidate: result.headers.get(\"X-Remix-Revalidate\") !== null,\n };\n }\n\n // For SSR single-route requests, we want to hand Responses back directly\n // without unwrapping. We do this with the QueryRouteResponse wrapper\n // interface so we can know whether it was returned or thrown\n if (isRouteRequest) {\n // eslint-disable-next-line no-throw-literal\n throw {\n type: resultType || ResultType.data,\n response: result,\n };\n }\n\n let data: any;\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 data = await result.json();\n } else {\n data = await result.text();\n }\n\n if (resultType === ResultType.error) {\n return {\n type: resultType,\n error: new ErrorResponse(status, result.statusText, data),\n headers: result.headers,\n };\n }\n\n return {\n type: ResultType.data,\n data,\n statusCode: result.status,\n headers: result.headers,\n };\n }\n\n if (resultType === ResultType.error) {\n return { type: resultType, error: result };\n }\n\n if (result instanceof DeferredData) {\n return {\n type: ResultType.deferred,\n deferredData: result,\n statusCode: result.init?.status,\n headers: result.init?.headers && new Headers(result.init.headers),\n };\n }\n\n return { type: ResultType.data, data: result };\n}\n\n// Utility method for creating the Request instances for loaders/actions during\n// client-side navigations and fetches. During SSR we will always have a\n// Request instance from the static handler (query/queryRoute)\nfunction createClientSideRequest(\n history: History,\n location: string | Location,\n signal: AbortSignal,\n submission?: Submission\n): Request {\n let url = history.createURL(stripHashFromPath(location)).toString();\n let init: RequestInit = { signal };\n\n if (submission && isMutationMethod(submission.formMethod)) {\n let { formMethod, formEncType, formData } = submission;\n init.method = formMethod.toUpperCase();\n init.body =\n formEncType === \"application/x-www-form-urlencoded\"\n ? convertFormDataToSearchParams(formData)\n : formData;\n }\n\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\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, value instanceof File ? value.name : value);\n }\n\n return searchParams;\n}\n\nfunction processRouteLoaderData(\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n pendingError: RouteData | undefined,\n activeDeferreds: Map\n): {\n loaderData: RouterState[\"loaderData\"];\n errors: RouterState[\"errors\"] | null;\n statusCode: number;\n loaderHeaders: Record;\n} {\n // Fill in loaderData/errors from our loaders\n let loaderData: RouterState[\"loaderData\"] = {};\n let errors: RouterState[\"errors\"] | null = null;\n let statusCode: number | undefined;\n let foundError = false;\n let loaderHeaders: Record = {};\n\n // Process loader results into state.loaderData/state.errors\n results.forEach((result, index) => {\n let id = matchesToLoad[index].route.id;\n invariant(\n !isRedirectResult(result),\n \"Cannot handle redirect results in processLoaderData\"\n );\n if (isErrorResult(result)) {\n // Look upwards from the matched route for the closest ancestor\n // error boundary, defaulting to the root match\n let boundaryMatch = findNearestBoundary(matches, id);\n let error = result.error;\n // If we have a pending action error, we report it at the highest-route\n // that throws a loader error, and then clear it out to indicate that\n // it was consumed\n if (pendingError) {\n error = Object.values(pendingError)[0];\n pendingError = undefined;\n }\n\n errors = errors || {};\n\n // Prefer higher error values if lower errors bubble to the same boundary\n if (errors[boundaryMatch.route.id] == null) {\n errors[boundaryMatch.route.id] = error;\n }\n\n // Clear our any prior loaderData for the throwing route\n loaderData[id] = undefined;\n\n // Once we find our first (highest) error, we set the status code and\n // prevent deeper status codes from overriding\n if (!foundError) {\n foundError = true;\n statusCode = isRouteErrorResponse(result.error)\n ? result.error.status\n : 500;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n if (isDeferredResult(result)) {\n activeDeferreds.set(id, result.deferredData);\n loaderData[id] = result.deferredData.data;\n } else {\n loaderData[id] = result.data;\n }\n\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (\n result.statusCode != null &&\n result.statusCode !== 200 &&\n !foundError\n ) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n }\n });\n\n // If we didn't consume the pending action error (i.e., all loaders\n // resolved), then consume it here. Also clear out any loaderData for the\n // throwing route\n if (pendingError) {\n errors = pendingError;\n loaderData[Object.keys(pendingError)[0]] = undefined;\n }\n\n return {\n loaderData,\n errors,\n statusCode: statusCode || 200,\n loaderHeaders,\n };\n}\n\nfunction processLoaderData(\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n pendingError: RouteData | undefined,\n revalidatingFetchers: RevalidatingFetcher[],\n fetcherResults: DataResult[],\n activeDeferreds: Map\n): {\n loaderData: RouterState[\"loaderData\"];\n errors?: RouterState[\"errors\"];\n} {\n let { loaderData, errors } = processRouteLoaderData(\n matches,\n matchesToLoad,\n results,\n pendingError,\n activeDeferreds\n );\n\n // Process results from our revalidating fetchers\n for (let index = 0; index < revalidatingFetchers.length; index++) {\n let { key, match } = 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 (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: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: result.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n return { loaderData, errors };\n}\n\nfunction mergeLoaderData(\n loaderData: RouteData,\n newLoaderData: RouteData,\n matches: AgnosticDataRouteMatch[],\n errors: RouteData | null | undefined\n): RouteData {\n let mergedLoaderData = { ...newLoaderData };\n for (let match of matches) {\n let id = match.route.id;\n if (newLoaderData.hasOwnProperty(id)) {\n if (newLoaderData[id] !== undefined) {\n mergedLoaderData[id] = newLoaderData[id];\n } else {\n // No-op - this is so we ignore existing data if we have a key in the\n // incoming object with an undefined value, which is how we unset a prior\n // loaderData if we encounter a loader error\n }\n } else if (loaderData[id] !== undefined && match.route.loader) {\n // Preserve existing keys not included in newLoaderData and where a loader\n // wasn't removed by HMR\n mergedLoaderData[id] = loaderData[id];\n }\n\n if (errors && errors.hasOwnProperty(id)) {\n // Don't keep any loader data below the boundary\n break;\n }\n }\n return mergedLoaderData;\n}\n\n// Find the nearest error boundary, looking upwards from the leaf route (or the\n// route specified by routeId) for the closest ancestor error boundary,\n// defaulting to the root match\nfunction findNearestBoundary(\n matches: AgnosticDataRouteMatch[],\n routeId?: string\n): AgnosticDataRouteMatch {\n let eligibleMatches = routeId\n ? matches.slice(0, matches.findIndex((m) => m.route.id === routeId) + 1)\n : [...matches];\n return (\n eligibleMatches.reverse().find((m) => m.route.hasErrorBoundary === true) ||\n matches[0]\n );\n}\n\nfunction getShortCircuitMatches(routes: AgnosticDataRouteObject[]): {\n matches: AgnosticDataRouteMatch[];\n route: AgnosticDataRouteObject;\n} {\n // Prefer a root layout route if present, otherwise shim in a route object\n let route = 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\";\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 }\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 ErrorResponse(\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(results: DataResult[]): RedirectResult | undefined {\n for (let i = results.length - 1; i >= 0; i--) {\n let result = results[i];\n if (isRedirectResult(result)) {\n return result;\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 return (\n a.pathname === b.pathname && a.search === b.search && a.hash !== b.hash\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\nfunction isResponse(value: any): value is Response {\n return (\n value != null &&\n typeof value.status === \"number\" &&\n typeof value.statusText === \"string\" &&\n typeof value.headers === \"object\" &&\n typeof value.body !== \"undefined\"\n );\n}\n\nfunction isRedirectResponse(result: any): result is Response {\n if (!isResponse(result)) {\n return false;\n }\n\n let status = result.status;\n let location = result.headers.get(\"Location\");\n return status >= 300 && status <= 399 && location != null;\n}\n\nfunction isQueryRouteResponse(obj: any): obj is QueryRouteResponse {\n return (\n obj &&\n isResponse(obj.response) &&\n (obj.type === ResultType.data || ResultType.error)\n );\n}\n\nfunction isValidMethod(method: string): method is FormMethod {\n return validRequestMethods.has(method as FormMethod);\n}\n\nfunction isMutationMethod(method?: string): method is MutationFormMethod {\n return validMutationMethods.has(method as MutationFormMethod);\n}\n\nasync function resolveDeferredResults(\n currentMatches: AgnosticDataRouteMatch[],\n matchesToLoad: (AgnosticDataRouteMatch | null)[],\n results: DataResult[],\n signal: AbortSignal,\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 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\n// Note: This should match the format exported by useMatches, so if you change\n// this please also change that :) Eventually we'll DRY this up\nfunction createUseMatchesMatch(\n match: AgnosticDataRouteMatch,\n loaderData: RouteData\n): UseMatchesMatch {\n let { route, pathname, params } = match;\n return {\n id: route.id,\n pathname,\n params,\n data: loaderData[route.id] as unknown,\n handle: route.handle as unknown,\n };\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//#endregion\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\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 = 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&&uh(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=sh(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Ah(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=yh(f.type,f.key,f.props,null,a.mode,h),h.ref=sh(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=zh(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);th(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=xh(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Bh=vh(!0),Ch=vh(!1),Dh={},Eh=Uf(Dh),Fh=Uf(Dh),Gh=Uf(Dh);function Hh(a){if(a===Dh)throw Error(p(174));return a}function Ih(a,b){G(Gh,b);G(Fh,a);G(Eh,Dh);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:lb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=lb(b,a)}E(Eh);G(Eh,b)}function Jh(){E(Eh);E(Fh);E(Gh)}\nfunction Kh(a){Hh(Gh.current);var b=Hh(Eh.current);var c=lb(b,a.type);b!==c&&(G(Fh,a),G(Eh,c))}function Lh(a){Fh.current===a&&(E(Eh),E(Fh))}var M=Uf(0);\nfunction Mh(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&128))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var Nh=[];\nfunction Oh(){for(var a=0;ac?c:4;a(!0);var d=Qh.transition;Qh.transition={};try{a(!1),b()}finally{C=c,Qh.transition=d}}function Fi(){return di().memoizedState}\nfunction Gi(a,b,c){var d=lh(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,c);else if(c=Yg(a,b,c,d),null!==c){var e=L();mh(c,a,d,e);Ji(c,b,d)}}\nfunction ri(a,b,c){var d=lh(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,Xg(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=Yg(a,b,e,d);null!==c&&(e=L(),mh(c,a,d,e),Ji(c,b,d))}}\nfunction Hi(a){var b=a.alternate;return a===N||null!==b&&b===N}function Ii(a,b){Th=Sh=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Ji(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar ai={readContext:Vg,useCallback:Q,useContext:Q,useEffect:Q,useImperativeHandle:Q,useInsertionEffect:Q,useLayoutEffect:Q,useMemo:Q,useReducer:Q,useRef:Q,useState:Q,useDebugValue:Q,useDeferredValue:Q,useTransition:Q,useMutableSource:Q,useSyncExternalStore:Q,useId:Q,unstable_isNewReconciler:!1},Yh={readContext:Vg,useCallback:function(a,b){ci().memoizedState=[a,void 0===b?null:b];return a},useContext:Vg,useEffect:vi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ti(4194308,\n4,yi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ti(4194308,4,a,b)},useInsertionEffect:function(a,b){return ti(4,2,a,b)},useMemo:function(a,b){var c=ci();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=ci();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=Gi.bind(null,N,a);return[d.memoizedState,a]},useRef:function(a){var b=\nci();a={current:a};return b.memoizedState=a},useState:qi,useDebugValue:Ai,useDeferredValue:function(a){return ci().memoizedState=a},useTransition:function(){var a=qi(!1),b=a[0];a=Ei.bind(null,a[1]);ci().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=N,e=ci();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===R)throw Error(p(349));0!==(Rh&30)||ni(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;vi(ki.bind(null,d,\nf,a),[a]);d.flags|=2048;li(9,mi.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=ci(),b=R.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Uh++;0\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;Aj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eHj&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304)}else{if(!d)if(a=Mh(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Ej(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Hj&&1073741824!==c&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=M.current,G(M,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Ij(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(gj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Jj(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return Jh(),E(Wf),E(H),Oh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Lh(b),null;case 13:E(M);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(M),null;case 4:return Jh(),null;case 10:return Rg(b.type._context),null;case 22:case 23:return Ij(),\nnull;case 24:return null;default:return null}}var Kj=!1,U=!1,Lj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Mj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Nj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Oj=!1;\nfunction Pj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Lg(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Oj;Oj=!1;return n}\nfunction Qj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Nj(b,c,f)}e=e.next}while(e!==d)}}function Rj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Sj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Tj(a){var b=a.alternate;null!==b&&(a.alternate=null,Tj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Uj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Vj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Uj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}\nfunction Xj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Xj(a,b,c),a=a.sibling;null!==a;)Xj(a,b,c),a=a.sibling}var X=null,Yj=!1;function Zj(a,b,c){for(c=c.child;null!==c;)ak(a,b,c),c=c.sibling}\nfunction ak(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Mj(c,b);case 6:var d=X,e=Yj;X=null;Zj(a,b,c);X=d;Yj=e;null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Yj;X=c.stateNode.containerInfo;Yj=!0;\nZj(a,b,c);X=d;Yj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Nj(c,b,g):0!==(f&4)&&Nj(c,b,g));e=e.next}while(e!==d)}Zj(a,b,c);break;case 1:if(!U&&(Mj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Zj(a,b,c);break;case 21:Zj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Zj(a,b,c),U=d):Zj(a,b,c);break;default:Zj(a,b,c)}}function bk(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Lj);b.forEach(function(b){var d=ck.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction dk(a,b){var c=b.deletions;if(null!==c)for(var d=0;de&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*mk(d/1960))-d;if(10a?16:a;if(null===xk)var d=!1;else{a=xk;xk=null;yk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;kB()-gk?Lk(a,0):sk|=c);Ek(a,b)}function Zk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=L();a=Zg(a,b);null!==a&&(Ac(a,b,c),Ek(a,c))}function vj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Zk(a,c)}\nfunction ck(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Zk(a,c)}var Wk;\nWk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)Ug=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return Ug=!1,zj(a,b,c);Ug=0!==(a.flags&131072)?!0:!1}else Ug=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;jj(a,b);a=b.pendingProps;var e=Yf(b,H.current);Tg(b,c);e=Xh(null,b,d,a,e,c);var f=bi();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,ah(b),e.updater=nh,b.stateNode=e,e._reactInternals=b,rh(b,d,a,c),b=kj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Yi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{jj(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=$k(d);a=Lg(d,a);switch(e){case 0:b=dj(null,b,d,a,c);break a;case 1:b=ij(null,b,d,a,c);break a;case 11:b=Zi(null,b,d,a,c);break a;case 14:b=aj(null,b,d,Lg(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),dj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),ij(a,b,d,e,c);case 3:a:{lj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;bh(a,b);gh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ki(Error(p(423)),b);b=mj(a,b,d,c,e);break a}else if(d!==e){e=Ki(Error(p(424)),b);b=mj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Ch(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=$i(a,b,c);break a}Yi(a,b,d,c)}b=b.child}return b;case 5:return Kh(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\nhj(a,b),Yi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return pj(a,b,c);case 4:return Ih(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Bh(b,null,d,c):Yi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),Zi(a,b,d,e,c);case 7:return Yi(a,b,b.pendingProps,c),b.child;case 8:return Yi(a,b,b.pendingProps.children,c),b.child;case 12:return Yi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Mg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=$i(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=ch(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);Sg(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);Sg(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Yi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,Tg(b,c),e=Vg(e),d=d(e),b.flags|=1,Yi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Lg(d,b.pendingProps),e=Lg(d.type,e),aj(a,b,d,e,c);case 15:return cj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),jj(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,Tg(b,c),ph(b,d,e),rh(b,d,e,c),kj(null,b,d,!0,a,c);case 19:return yj(a,b,c);case 22:return ej(a,b,c)}throw Error(p(156,b.tag));};function Gk(a,b){return ac(a,b)}\nfunction al(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new al(a,b,c,d)}function bj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction $k(a){if(\"function\"===typeof a)return bj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction wh(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction yh(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)bj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Ah(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return qj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Ah(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function qj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function xh(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction zh(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction bl(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function cl(a,b,c,d,e,f,g,h,k){a=new bl(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};ah(f);return a}function dl(a,b,c){var d=3 &&` helpers in initial condition allow es6 code\n // to co-exist with es5.\n // 2. Replace `for of` with es5 compliant iteration using `for`.\n // Basically, take:\n //\n // ```js\n // for (i of a.entries())\n // if (!b.has(i[0])) return false;\n // ```\n //\n // ... and convert to:\n //\n // ```js\n // it = a.entries();\n // while (!(i = it.next()).done)\n // if (!b.has(i.value[0])) return false;\n // ```\n //\n // **Note**: `i` access switches to `i.value`.\n var it;\n if (hasMap && (a instanceof Map) && (b instanceof Map)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!equal(i.value[1], b.get(i.value[0]))) return false;\n return true;\n }\n\n if (hasSet && (a instanceof Set) && (b instanceof Set)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n return true;\n }\n // END: Modifications\n\n if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (a[i] !== b[i]) return false;\n return true;\n }\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n // START: Modifications:\n // Apply guards for `Object.create(null)` handling. See:\n // - https://github.com/FormidableLabs/react-fast-compare/issues/64\n // - https://github.com/epoberezkin/fast-deep-equal/issues/49\n if (a.valueOf !== Object.prototype.valueOf && typeof a.valueOf === 'function' && typeof b.valueOf === 'function') return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString && typeof a.toString === 'function' && typeof b.toString === 'function') return a.toString() === b.toString();\n // END: Modifications\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n // END: fast-deep-equal\n\n // START: react-fast-compare\n // custom handling for DOM elements\n if (hasElementType && a instanceof Element) return false;\n\n // custom handling for React/Preact\n for (i = length; i-- !== 0;) {\n if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner\n // Preact-specific: avoid traversing Preact elements' __v and __o\n // __v = $_original / $_vnode\n // __o = $_owner\n // These properties contain circular references and are not needed when\n // comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of elements\n\n continue;\n }\n\n // all other properties should be traversed as usual\n if (!equal(a[keys[i]], b[keys[i]])) return false;\n }\n // END: react-fast-compare\n\n // START: fast-deep-equal\n return true;\n }\n\n return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nmodule.exports = function isEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if (((error.message || '').match(/stack|recursion/i))) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('react-fast-compare cannot handle circular refs');\n return false;\n }\n // some other error. we should definitely know about these\n throw error;\n }\n};\n","import PropTypes from 'prop-types';\nimport withSideEffect from 'react-side-effect';\nimport isEqual from 'react-fast-compare';\nimport React from 'react';\nimport objectAssign from 'object-assign';\n\nvar ATTRIBUTE_NAMES = {\n BODY: \"bodyAttributes\",\n HTML: \"htmlAttributes\",\n TITLE: \"titleAttributes\"\n};\n\nvar TAG_NAMES = {\n BASE: \"base\",\n BODY: \"body\",\n HEAD: \"head\",\n HTML: \"html\",\n LINK: \"link\",\n META: \"meta\",\n NOSCRIPT: \"noscript\",\n SCRIPT: \"script\",\n STYLE: \"style\",\n TITLE: \"title\"\n};\n\nvar VALID_TAG_NAMES = Object.keys(TAG_NAMES).map(function (name) {\n return TAG_NAMES[name];\n});\n\nvar TAG_PROPERTIES = {\n CHARSET: \"charset\",\n CSS_TEXT: \"cssText\",\n HREF: \"href\",\n HTTPEQUIV: \"http-equiv\",\n INNER_HTML: \"innerHTML\",\n ITEM_PROP: \"itemprop\",\n NAME: \"name\",\n PROPERTY: \"property\",\n REL: \"rel\",\n SRC: \"src\",\n TARGET: \"target\"\n};\n\nvar REACT_TAG_MAP = {\n accesskey: \"accessKey\",\n charset: \"charSet\",\n class: \"className\",\n contenteditable: \"contentEditable\",\n contextmenu: \"contextMenu\",\n \"http-equiv\": \"httpEquiv\",\n itemprop: \"itemProp\",\n tabindex: \"tabIndex\"\n};\n\nvar HELMET_PROPS = {\n DEFAULT_TITLE: \"defaultTitle\",\n DEFER: \"defer\",\n ENCODE_SPECIAL_CHARACTERS: \"encodeSpecialCharacters\",\n ON_CHANGE_CLIENT_STATE: \"onChangeClientState\",\n TITLE_TEMPLATE: \"titleTemplate\"\n};\n\nvar HTML_TAG_MAP = Object.keys(REACT_TAG_MAP).reduce(function (obj, key) {\n obj[REACT_TAG_MAP[key]] = key;\n return obj;\n}, {});\n\nvar SELF_CLOSING_TAGS = [TAG_NAMES.NOSCRIPT, TAG_NAMES.SCRIPT, TAG_NAMES.STYLE];\n\nvar HELMET_ATTRIBUTE = \"data-react-helmet\";\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar inherits = function (subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n};\n\nvar objectWithoutProperties = function (obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n};\n\nvar possibleConstructorReturn = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n};\n\nvar encodeSpecialCharacters = function encodeSpecialCharacters(str) {\n var encode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n if (encode === false) {\n return String(str);\n }\n\n return String(str).replace(/&/g, \"&\").replace(//g, \">\").replace(/\"/g, \""\").replace(/'/g, \"'\");\n};\n\nvar getTitleFromPropsList = function getTitleFromPropsList(propsList) {\n var innermostTitle = getInnermostProperty(propsList, TAG_NAMES.TITLE);\n var innermostTemplate = getInnermostProperty(propsList, HELMET_PROPS.TITLE_TEMPLATE);\n\n if (innermostTemplate && innermostTitle) {\n // use function arg to avoid need to escape $ characters\n return innermostTemplate.replace(/%s/g, function () {\n return Array.isArray(innermostTitle) ? innermostTitle.join(\"\") : innermostTitle;\n });\n }\n\n var innermostDefaultTitle = getInnermostProperty(propsList, HELMET_PROPS.DEFAULT_TITLE);\n\n return innermostTitle || innermostDefaultTitle || undefined;\n};\n\nvar getOnChangeClientState = function getOnChangeClientState(propsList) {\n return getInnermostProperty(propsList, HELMET_PROPS.ON_CHANGE_CLIENT_STATE) || function () {};\n};\n\nvar getAttributesFromPropsList = function getAttributesFromPropsList(tagType, propsList) {\n return propsList.filter(function (props) {\n return typeof props[tagType] !== \"undefined\";\n }).map(function (props) {\n return props[tagType];\n }).reduce(function (tagAttrs, current) {\n return _extends({}, tagAttrs, current);\n }, {});\n};\n\nvar getBaseTagFromPropsList = function getBaseTagFromPropsList(primaryAttributes, propsList) {\n return propsList.filter(function (props) {\n return typeof props[TAG_NAMES.BASE] !== \"undefined\";\n }).map(function (props) {\n return props[TAG_NAMES.BASE];\n }).reverse().reduce(function (innermostBaseTag, tag) {\n if (!innermostBaseTag.length) {\n var keys = Object.keys(tag);\n\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var lowerCaseAttributeKey = attributeKey.toLowerCase();\n\n if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && tag[lowerCaseAttributeKey]) {\n return innermostBaseTag.concat(tag);\n }\n }\n }\n\n return innermostBaseTag;\n }, []);\n};\n\nvar getTagsFromPropsList = function getTagsFromPropsList(tagName, primaryAttributes, propsList) {\n // Calculate list of tags, giving priority innermost component (end of the propslist)\n var approvedSeenTags = {};\n\n return propsList.filter(function (props) {\n if (Array.isArray(props[tagName])) {\n return true;\n }\n if (typeof props[tagName] !== \"undefined\") {\n warn(\"Helmet: \" + tagName + \" should be of type \\\"Array\\\". Instead found type \\\"\" + _typeof(props[tagName]) + \"\\\"\");\n }\n return false;\n }).map(function (props) {\n return props[tagName];\n }).reverse().reduce(function (approvedTags, instanceTags) {\n var instanceSeenTags = {};\n\n instanceTags.filter(function (tag) {\n var primaryAttributeKey = void 0;\n var keys = Object.keys(tag);\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var lowerCaseAttributeKey = attributeKey.toLowerCase();\n\n // Special rule with link tags, since rel and href are both primary tags, rel takes priority\n if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && !(primaryAttributeKey === TAG_PROPERTIES.REL && tag[primaryAttributeKey].toLowerCase() === \"canonical\") && !(lowerCaseAttributeKey === TAG_PROPERTIES.REL && tag[lowerCaseAttributeKey].toLowerCase() === \"stylesheet\")) {\n primaryAttributeKey = lowerCaseAttributeKey;\n }\n // Special case for innerHTML which doesn't work lowercased\n if (primaryAttributes.indexOf(attributeKey) !== -1 && (attributeKey === TAG_PROPERTIES.INNER_HTML || attributeKey === TAG_PROPERTIES.CSS_TEXT || attributeKey === TAG_PROPERTIES.ITEM_PROP)) {\n primaryAttributeKey = attributeKey;\n }\n }\n\n if (!primaryAttributeKey || !tag[primaryAttributeKey]) {\n return false;\n }\n\n var value = tag[primaryAttributeKey].toLowerCase();\n\n if (!approvedSeenTags[primaryAttributeKey]) {\n approvedSeenTags[primaryAttributeKey] = {};\n }\n\n if (!instanceSeenTags[primaryAttributeKey]) {\n instanceSeenTags[primaryAttributeKey] = {};\n }\n\n if (!approvedSeenTags[primaryAttributeKey][value]) {\n instanceSeenTags[primaryAttributeKey][value] = true;\n return true;\n }\n\n return false;\n }).reverse().forEach(function (tag) {\n return approvedTags.push(tag);\n });\n\n // Update seen tags with tags from this instance\n var keys = Object.keys(instanceSeenTags);\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var tagUnion = objectAssign({}, approvedSeenTags[attributeKey], instanceSeenTags[attributeKey]);\n\n approvedSeenTags[attributeKey] = tagUnion;\n }\n\n return approvedTags;\n }, []).reverse();\n};\n\nvar getInnermostProperty = function getInnermostProperty(propsList, property) {\n for (var i = propsList.length - 1; i >= 0; i--) {\n var props = propsList[i];\n\n if (props.hasOwnProperty(property)) {\n return props[property];\n }\n }\n\n return null;\n};\n\nvar reducePropsToState = function reducePropsToState(propsList) {\n return {\n baseTag: getBaseTagFromPropsList([TAG_PROPERTIES.HREF, TAG_PROPERTIES.TARGET], propsList),\n bodyAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.BODY, propsList),\n defer: getInnermostProperty(propsList, HELMET_PROPS.DEFER),\n encode: getInnermostProperty(propsList, HELMET_PROPS.ENCODE_SPECIAL_CHARACTERS),\n htmlAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.HTML, propsList),\n linkTags: getTagsFromPropsList(TAG_NAMES.LINK, [TAG_PROPERTIES.REL, TAG_PROPERTIES.HREF], propsList),\n metaTags: getTagsFromPropsList(TAG_NAMES.META, [TAG_PROPERTIES.NAME, TAG_PROPERTIES.CHARSET, TAG_PROPERTIES.HTTPEQUIV, TAG_PROPERTIES.PROPERTY, TAG_PROPERTIES.ITEM_PROP], propsList),\n noscriptTags: getTagsFromPropsList(TAG_NAMES.NOSCRIPT, [TAG_PROPERTIES.INNER_HTML], propsList),\n onChangeClientState: getOnChangeClientState(propsList),\n scriptTags: getTagsFromPropsList(TAG_NAMES.SCRIPT, [TAG_PROPERTIES.SRC, TAG_PROPERTIES.INNER_HTML], propsList),\n styleTags: getTagsFromPropsList(TAG_NAMES.STYLE, [TAG_PROPERTIES.CSS_TEXT], propsList),\n title: getTitleFromPropsList(propsList),\n titleAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.TITLE, propsList)\n };\n};\n\nvar rafPolyfill = function () {\n var clock = Date.now();\n\n return function (callback) {\n var currentTime = Date.now();\n\n if (currentTime - clock > 16) {\n clock = currentTime;\n callback(currentTime);\n } else {\n setTimeout(function () {\n rafPolyfill(callback);\n }, 0);\n }\n };\n}();\n\nvar cafPolyfill = function cafPolyfill(id) {\n return clearTimeout(id);\n};\n\nvar requestAnimationFrame = typeof window !== \"undefined\" ? window.requestAnimationFrame && window.requestAnimationFrame.bind(window) || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || rafPolyfill : global.requestAnimationFrame || rafPolyfill;\n\nvar cancelAnimationFrame = typeof window !== \"undefined\" ? window.cancelAnimationFrame || window.webkitCancelAnimationFrame || window.mozCancelAnimationFrame || cafPolyfill : global.cancelAnimationFrame || cafPolyfill;\n\nvar warn = function warn(msg) {\n return console && typeof console.warn === \"function\" && console.warn(msg);\n};\n\nvar _helmetCallback = null;\n\nvar handleClientStateChange = function handleClientStateChange(newState) {\n if (_helmetCallback) {\n cancelAnimationFrame(_helmetCallback);\n }\n\n if (newState.defer) {\n _helmetCallback = requestAnimationFrame(function () {\n commitTagChanges(newState, function () {\n _helmetCallback = null;\n });\n });\n } else {\n commitTagChanges(newState);\n _helmetCallback = null;\n }\n};\n\nvar commitTagChanges = function commitTagChanges(newState, cb) {\n var baseTag = newState.baseTag,\n bodyAttributes = newState.bodyAttributes,\n htmlAttributes = newState.htmlAttributes,\n linkTags = newState.linkTags,\n metaTags = newState.metaTags,\n noscriptTags = newState.noscriptTags,\n onChangeClientState = newState.onChangeClientState,\n scriptTags = newState.scriptTags,\n styleTags = newState.styleTags,\n title = newState.title,\n titleAttributes = newState.titleAttributes;\n\n updateAttributes(TAG_NAMES.BODY, bodyAttributes);\n updateAttributes(TAG_NAMES.HTML, htmlAttributes);\n\n updateTitle(title, titleAttributes);\n\n var tagUpdates = {\n baseTag: updateTags(TAG_NAMES.BASE, baseTag),\n linkTags: updateTags(TAG_NAMES.LINK, linkTags),\n metaTags: updateTags(TAG_NAMES.META, metaTags),\n noscriptTags: updateTags(TAG_NAMES.NOSCRIPT, noscriptTags),\n scriptTags: updateTags(TAG_NAMES.SCRIPT, scriptTags),\n styleTags: updateTags(TAG_NAMES.STYLE, styleTags)\n };\n\n var addedTags = {};\n var removedTags = {};\n\n Object.keys(tagUpdates).forEach(function (tagType) {\n var _tagUpdates$tagType = tagUpdates[tagType],\n newTags = _tagUpdates$tagType.newTags,\n oldTags = _tagUpdates$tagType.oldTags;\n\n\n if (newTags.length) {\n addedTags[tagType] = newTags;\n }\n if (oldTags.length) {\n removedTags[tagType] = tagUpdates[tagType].oldTags;\n }\n });\n\n cb && cb();\n\n onChangeClientState(newState, addedTags, removedTags);\n};\n\nvar flattenArray = function flattenArray(possibleArray) {\n return Array.isArray(possibleArray) ? possibleArray.join(\"\") : possibleArray;\n};\n\nvar updateTitle = function updateTitle(title, attributes) {\n if (typeof title !== \"undefined\" && document.title !== title) {\n document.title = flattenArray(title);\n }\n\n updateAttributes(TAG_NAMES.TITLE, attributes);\n};\n\nvar updateAttributes = function updateAttributes(tagName, attributes) {\n var elementTag = document.getElementsByTagName(tagName)[0];\n\n if (!elementTag) {\n return;\n }\n\n var helmetAttributeString = elementTag.getAttribute(HELMET_ATTRIBUTE);\n var helmetAttributes = helmetAttributeString ? helmetAttributeString.split(\",\") : [];\n var attributesToRemove = [].concat(helmetAttributes);\n var attributeKeys = Object.keys(attributes);\n\n for (var i = 0; i < attributeKeys.length; i++) {\n var attribute = attributeKeys[i];\n var value = attributes[attribute] || \"\";\n\n if (elementTag.getAttribute(attribute) !== value) {\n elementTag.setAttribute(attribute, value);\n }\n\n if (helmetAttributes.indexOf(attribute) === -1) {\n helmetAttributes.push(attribute);\n }\n\n var indexToSave = attributesToRemove.indexOf(attribute);\n if (indexToSave !== -1) {\n attributesToRemove.splice(indexToSave, 1);\n }\n }\n\n for (var _i = attributesToRemove.length - 1; _i >= 0; _i--) {\n elementTag.removeAttribute(attributesToRemove[_i]);\n }\n\n if (helmetAttributes.length === attributesToRemove.length) {\n elementTag.removeAttribute(HELMET_ATTRIBUTE);\n } else if (elementTag.getAttribute(HELMET_ATTRIBUTE) !== attributeKeys.join(\",\")) {\n elementTag.setAttribute(HELMET_ATTRIBUTE, attributeKeys.join(\",\"));\n }\n};\n\nvar updateTags = function updateTags(type, tags) {\n var headElement = document.head || document.querySelector(TAG_NAMES.HEAD);\n var tagNodes = headElement.querySelectorAll(type + \"[\" + HELMET_ATTRIBUTE + \"]\");\n var oldTags = Array.prototype.slice.call(tagNodes);\n var newTags = [];\n var indexToDelete = void 0;\n\n if (tags && tags.length) {\n tags.forEach(function (tag) {\n var newElement = document.createElement(type);\n\n for (var attribute in tag) {\n if (tag.hasOwnProperty(attribute)) {\n if (attribute === TAG_PROPERTIES.INNER_HTML) {\n newElement.innerHTML = tag.innerHTML;\n } else if (attribute === TAG_PROPERTIES.CSS_TEXT) {\n if (newElement.styleSheet) {\n newElement.styleSheet.cssText = tag.cssText;\n } else {\n newElement.appendChild(document.createTextNode(tag.cssText));\n }\n } else {\n var value = typeof tag[attribute] === \"undefined\" ? \"\" : tag[attribute];\n newElement.setAttribute(attribute, value);\n }\n }\n }\n\n newElement.setAttribute(HELMET_ATTRIBUTE, \"true\");\n\n // Remove a duplicate tag from domTagstoRemove, so it isn't cleared.\n if (oldTags.some(function (existingTag, index) {\n indexToDelete = index;\n return newElement.isEqualNode(existingTag);\n })) {\n oldTags.splice(indexToDelete, 1);\n } else {\n newTags.push(newElement);\n }\n });\n }\n\n oldTags.forEach(function (tag) {\n return tag.parentNode.removeChild(tag);\n });\n newTags.forEach(function (tag) {\n return headElement.appendChild(tag);\n });\n\n return {\n oldTags: oldTags,\n newTags: newTags\n };\n};\n\nvar generateElementAttributesAsString = function generateElementAttributesAsString(attributes) {\n return Object.keys(attributes).reduce(function (str, key) {\n var attr = typeof attributes[key] !== \"undefined\" ? key + \"=\\\"\" + attributes[key] + \"\\\"\" : \"\" + key;\n return str ? str + \" \" + attr : attr;\n }, \"\");\n};\n\nvar generateTitleAsString = function generateTitleAsString(type, title, attributes, encode) {\n var attributeString = generateElementAttributesAsString(attributes);\n var flattenedTitle = flattenArray(title);\n return attributeString ? \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\" \" + attributeString + \">\" + encodeSpecialCharacters(flattenedTitle, encode) + \"\" : \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\">\" + encodeSpecialCharacters(flattenedTitle, encode) + \"\";\n};\n\nvar generateTagsAsString = function generateTagsAsString(type, tags, encode) {\n return tags.reduce(function (str, tag) {\n var attributeHtml = Object.keys(tag).filter(function (attribute) {\n return !(attribute === TAG_PROPERTIES.INNER_HTML || attribute === TAG_PROPERTIES.CSS_TEXT);\n }).reduce(function (string, attribute) {\n var attr = typeof tag[attribute] === \"undefined\" ? attribute : attribute + \"=\\\"\" + encodeSpecialCharacters(tag[attribute], encode) + \"\\\"\";\n return string ? string + \" \" + attr : attr;\n }, \"\");\n\n var tagContent = tag.innerHTML || tag.cssText || \"\";\n\n var isSelfClosing = SELF_CLOSING_TAGS.indexOf(type) === -1;\n\n return str + \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\" \" + attributeHtml + (isSelfClosing ? \"/>\" : \">\" + tagContent + \"\");\n }, \"\");\n};\n\nvar convertElementAttributestoReactProps = function convertElementAttributestoReactProps(attributes) {\n var initProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n return Object.keys(attributes).reduce(function (obj, key) {\n obj[REACT_TAG_MAP[key] || key] = attributes[key];\n return obj;\n }, initProps);\n};\n\nvar convertReactPropstoHtmlAttributes = function convertReactPropstoHtmlAttributes(props) {\n var initAttributes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n return Object.keys(props).reduce(function (obj, key) {\n obj[HTML_TAG_MAP[key] || key] = props[key];\n return obj;\n }, initAttributes);\n};\n\nvar generateTitleAsReactComponent = function generateTitleAsReactComponent(type, title, attributes) {\n var _initProps;\n\n // assigning into an array to define toString function on it\n var initProps = (_initProps = {\n key: title\n }, _initProps[HELMET_ATTRIBUTE] = true, _initProps);\n var props = convertElementAttributestoReactProps(attributes, initProps);\n\n return [React.createElement(TAG_NAMES.TITLE, props, title)];\n};\n\nvar generateTagsAsReactComponent = function generateTagsAsReactComponent(type, tags) {\n return tags.map(function (tag, i) {\n var _mappedTag;\n\n var mappedTag = (_mappedTag = {\n key: i\n }, _mappedTag[HELMET_ATTRIBUTE] = true, _mappedTag);\n\n Object.keys(tag).forEach(function (attribute) {\n var mappedAttribute = REACT_TAG_MAP[attribute] || attribute;\n\n if (mappedAttribute === TAG_PROPERTIES.INNER_HTML || mappedAttribute === TAG_PROPERTIES.CSS_TEXT) {\n var content = tag.innerHTML || tag.cssText;\n mappedTag.dangerouslySetInnerHTML = { __html: content };\n } else {\n mappedTag[mappedAttribute] = tag[attribute];\n }\n });\n\n return React.createElement(type, mappedTag);\n });\n};\n\nvar getMethodsForTag = function getMethodsForTag(type, tags, encode) {\n switch (type) {\n case TAG_NAMES.TITLE:\n return {\n toComponent: function toComponent() {\n return generateTitleAsReactComponent(type, tags.title, tags.titleAttributes, encode);\n },\n toString: function toString() {\n return generateTitleAsString(type, tags.title, tags.titleAttributes, encode);\n }\n };\n case ATTRIBUTE_NAMES.BODY:\n case ATTRIBUTE_NAMES.HTML:\n return {\n toComponent: function toComponent() {\n return convertElementAttributestoReactProps(tags);\n },\n toString: function toString() {\n return generateElementAttributesAsString(tags);\n }\n };\n default:\n return {\n toComponent: function toComponent() {\n return generateTagsAsReactComponent(type, tags);\n },\n toString: function toString() {\n return generateTagsAsString(type, tags, encode);\n }\n };\n }\n};\n\nvar mapStateOnServer = function mapStateOnServer(_ref) {\n var baseTag = _ref.baseTag,\n bodyAttributes = _ref.bodyAttributes,\n encode = _ref.encode,\n htmlAttributes = _ref.htmlAttributes,\n linkTags = _ref.linkTags,\n metaTags = _ref.metaTags,\n noscriptTags = _ref.noscriptTags,\n scriptTags = _ref.scriptTags,\n styleTags = _ref.styleTags,\n _ref$title = _ref.title,\n title = _ref$title === undefined ? \"\" : _ref$title,\n titleAttributes = _ref.titleAttributes;\n return {\n base: getMethodsForTag(TAG_NAMES.BASE, baseTag, encode),\n bodyAttributes: getMethodsForTag(ATTRIBUTE_NAMES.BODY, bodyAttributes, encode),\n htmlAttributes: getMethodsForTag(ATTRIBUTE_NAMES.HTML, htmlAttributes, encode),\n link: getMethodsForTag(TAG_NAMES.LINK, linkTags, encode),\n meta: getMethodsForTag(TAG_NAMES.META, metaTags, encode),\n noscript: getMethodsForTag(TAG_NAMES.NOSCRIPT, noscriptTags, encode),\n script: getMethodsForTag(TAG_NAMES.SCRIPT, scriptTags, encode),\n style: getMethodsForTag(TAG_NAMES.STYLE, styleTags, encode),\n title: getMethodsForTag(TAG_NAMES.TITLE, { title: title, titleAttributes: titleAttributes }, encode)\n };\n};\n\nvar Helmet = function Helmet(Component) {\n var _class, _temp;\n\n return _temp = _class = function (_React$Component) {\n inherits(HelmetWrapper, _React$Component);\n\n function HelmetWrapper() {\n classCallCheck(this, HelmetWrapper);\n return possibleConstructorReturn(this, _React$Component.apply(this, arguments));\n }\n\n HelmetWrapper.prototype.shouldComponentUpdate = function shouldComponentUpdate(nextProps) {\n return !isEqual(this.props, nextProps);\n };\n\n HelmetWrapper.prototype.mapNestedChildrenToProps = function mapNestedChildrenToProps(child, nestedChildren) {\n if (!nestedChildren) {\n return null;\n }\n\n switch (child.type) {\n case TAG_NAMES.SCRIPT:\n case TAG_NAMES.NOSCRIPT:\n return {\n innerHTML: nestedChildren\n };\n\n case TAG_NAMES.STYLE:\n return {\n cssText: nestedChildren\n };\n }\n\n throw new Error(\"<\" + child.type + \" /> elements are self-closing and can not contain children. Refer to our API for more information.\");\n };\n\n HelmetWrapper.prototype.flattenArrayTypeChildren = function flattenArrayTypeChildren(_ref) {\n var _babelHelpers$extends;\n\n var child = _ref.child,\n arrayTypeChildren = _ref.arrayTypeChildren,\n newChildProps = _ref.newChildProps,\n nestedChildren = _ref.nestedChildren;\n\n return _extends({}, arrayTypeChildren, (_babelHelpers$extends = {}, _babelHelpers$extends[child.type] = [].concat(arrayTypeChildren[child.type] || [], [_extends({}, newChildProps, this.mapNestedChildrenToProps(child, nestedChildren))]), _babelHelpers$extends));\n };\n\n HelmetWrapper.prototype.mapObjectTypeChildren = function mapObjectTypeChildren(_ref2) {\n var _babelHelpers$extends2, _babelHelpers$extends3;\n\n var child = _ref2.child,\n newProps = _ref2.newProps,\n newChildProps = _ref2.newChildProps,\n nestedChildren = _ref2.nestedChildren;\n\n switch (child.type) {\n case TAG_NAMES.TITLE:\n return _extends({}, newProps, (_babelHelpers$extends2 = {}, _babelHelpers$extends2[child.type] = nestedChildren, _babelHelpers$extends2.titleAttributes = _extends({}, newChildProps), _babelHelpers$extends2));\n\n case TAG_NAMES.BODY:\n return _extends({}, newProps, {\n bodyAttributes: _extends({}, newChildProps)\n });\n\n case TAG_NAMES.HTML:\n return _extends({}, newProps, {\n htmlAttributes: _extends({}, newChildProps)\n });\n }\n\n return _extends({}, newProps, (_babelHelpers$extends3 = {}, _babelHelpers$extends3[child.type] = _extends({}, newChildProps), _babelHelpers$extends3));\n };\n\n HelmetWrapper.prototype.mapArrayTypeChildrenToProps = function mapArrayTypeChildrenToProps(arrayTypeChildren, newProps) {\n var newFlattenedProps = _extends({}, newProps);\n\n Object.keys(arrayTypeChildren).forEach(function (arrayChildName) {\n var _babelHelpers$extends4;\n\n newFlattenedProps = _extends({}, newFlattenedProps, (_babelHelpers$extends4 = {}, _babelHelpers$extends4[arrayChildName] = arrayTypeChildren[arrayChildName], _babelHelpers$extends4));\n });\n\n return newFlattenedProps;\n };\n\n HelmetWrapper.prototype.warnOnInvalidChildren = function warnOnInvalidChildren(child, nestedChildren) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!VALID_TAG_NAMES.some(function (name) {\n return child.type === name;\n })) {\n if (typeof child.type === \"function\") {\n return warn(\"You may be attempting to nest components within each other, which is not allowed. Refer to our API for more information.\");\n }\n\n return warn(\"Only elements types \" + VALID_TAG_NAMES.join(\", \") + \" are allowed. Helmet does not support rendering <\" + child.type + \"> elements. Refer to our API for more information.\");\n }\n\n if (nestedChildren && typeof nestedChildren !== \"string\" && (!Array.isArray(nestedChildren) || nestedChildren.some(function (nestedChild) {\n return typeof nestedChild !== \"string\";\n }))) {\n throw new Error(\"Helmet expects a string as a child of <\" + child.type + \">. Did you forget to wrap your children in braces? ( <\" + child.type + \">{``} ) Refer to our API for more information.\");\n }\n }\n\n return true;\n };\n\n HelmetWrapper.prototype.mapChildrenToProps = function mapChildrenToProps(children, newProps) {\n var _this2 = this;\n\n var arrayTypeChildren = {};\n\n React.Children.forEach(children, function (child) {\n if (!child || !child.props) {\n return;\n }\n\n var _child$props = child.props,\n nestedChildren = _child$props.children,\n childProps = objectWithoutProperties(_child$props, [\"children\"]);\n\n var newChildProps = convertReactPropstoHtmlAttributes(childProps);\n\n _this2.warnOnInvalidChildren(child, nestedChildren);\n\n switch (child.type) {\n case TAG_NAMES.LINK:\n case TAG_NAMES.META:\n case TAG_NAMES.NOSCRIPT:\n case TAG_NAMES.SCRIPT:\n case TAG_NAMES.STYLE:\n arrayTypeChildren = _this2.flattenArrayTypeChildren({\n child: child,\n arrayTypeChildren: arrayTypeChildren,\n newChildProps: newChildProps,\n nestedChildren: nestedChildren\n });\n break;\n\n default:\n newProps = _this2.mapObjectTypeChildren({\n child: child,\n newProps: newProps,\n newChildProps: newChildProps,\n nestedChildren: nestedChildren\n });\n break;\n }\n });\n\n newProps = this.mapArrayTypeChildrenToProps(arrayTypeChildren, newProps);\n return newProps;\n };\n\n HelmetWrapper.prototype.render = function render() {\n var _props = this.props,\n children = _props.children,\n props = objectWithoutProperties(_props, [\"children\"]);\n\n var newProps = _extends({}, props);\n\n if (children) {\n newProps = this.mapChildrenToProps(children, newProps);\n }\n\n return React.createElement(Component, newProps);\n };\n\n createClass(HelmetWrapper, null, [{\n key: \"canUseDOM\",\n\n\n // Component.peek comes from react-side-effect:\n // For testing, you may use a static peek() method available on the returned component.\n // It lets you get the current state without resetting the mounted instance stack.\n // Don’t use it for anything other than testing.\n\n /**\n * @param {Object} base: {\"target\": \"_blank\", \"href\": \"http://mysite.com/\"}\n * @param {Object} bodyAttributes: {\"className\": \"root\"}\n * @param {String} defaultTitle: \"Default Title\"\n * @param {Boolean} defer: true\n * @param {Boolean} encodeSpecialCharacters: true\n * @param {Object} htmlAttributes: {\"lang\": \"en\", \"amp\": undefined}\n * @param {Array} link: [{\"rel\": \"canonical\", \"href\": \"http://mysite.com/example\"}]\n * @param {Array} meta: [{\"name\": \"description\", \"content\": \"Test description\"}]\n * @param {Array} noscript: [{\"innerHTML\": \" console.log(newState)\"\n * @param {Array} script: [{\"type\": \"text/javascript\", \"src\": \"http://mysite.com/js/test.js\"}]\n * @param {Array} style: [{\"type\": \"text/css\", \"cssText\": \"div { display: block; color: blue; }\"}]\n * @param {String} title: \"Title\"\n * @param {Object} titleAttributes: {\"itemprop\": \"name\"}\n * @param {String} titleTemplate: \"MySite.com - %s\"\n */\n set: function set$$1(canUseDOM) {\n Component.canUseDOM = canUseDOM;\n }\n }]);\n return HelmetWrapper;\n }(React.Component), _class.propTypes = {\n base: PropTypes.object,\n bodyAttributes: PropTypes.object,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),\n defaultTitle: PropTypes.string,\n defer: PropTypes.bool,\n encodeSpecialCharacters: PropTypes.bool,\n htmlAttributes: PropTypes.object,\n link: PropTypes.arrayOf(PropTypes.object),\n meta: PropTypes.arrayOf(PropTypes.object),\n noscript: PropTypes.arrayOf(PropTypes.object),\n onChangeClientState: PropTypes.func,\n script: PropTypes.arrayOf(PropTypes.object),\n style: PropTypes.arrayOf(PropTypes.object),\n title: PropTypes.string,\n titleAttributes: PropTypes.object,\n titleTemplate: PropTypes.string\n }, _class.defaultProps = {\n defer: true,\n encodeSpecialCharacters: true\n }, _class.peek = Component.peek, _class.rewind = function () {\n var mappedState = Component.rewind();\n if (!mappedState) {\n // provide fallback if mappedState is undefined\n mappedState = mapStateOnServer({\n baseTag: [],\n bodyAttributes: {},\n encodeSpecialCharacters: true,\n htmlAttributes: {},\n linkTags: [],\n metaTags: [],\n noscriptTags: [],\n scriptTags: [],\n styleTags: [],\n title: \"\",\n titleAttributes: {}\n });\n }\n\n return mappedState;\n }, _temp;\n};\n\nvar NullComponent = function NullComponent() {\n return null;\n};\n\nvar HelmetSideEffects = withSideEffect(reducePropsToState, handleClientStateChange, mapStateOnServer)(NullComponent);\n\nvar HelmetExport = Helmet(HelmetSideEffects);\nHelmetExport.renderStatic = HelmetExport.rewind;\n\nexport default HelmetExport;\nexport { HelmetExport as Helmet };\n","import type { FormEncType, FormMethod } from \"@remix-run/router\";\nimport type { RelativeRoutingType } from \"react-router\";\n\nexport const defaultMethod = \"get\";\nconst defaultEncType = \"application/x-www-form-urlencoded\";\n\nexport function isHtmlElement(object: any): object is HTMLElement {\n return object != null && typeof object.tagName === \"string\";\n}\n\nexport function isButtonElement(object: any): object is HTMLButtonElement {\n return isHtmlElement(object) && object.tagName.toLowerCase() === \"button\";\n}\n\nexport function isFormElement(object: any): object is HTMLFormElement {\n return isHtmlElement(object) && object.tagName.toLowerCase() === \"form\";\n}\n\nexport function isInputElement(object: any): object is HTMLInputElement {\n return isHtmlElement(object) && object.tagName.toLowerCase() === \"input\";\n}\n\ntype LimitedMouseEvent = Pick<\n MouseEvent,\n \"button\" | \"metaKey\" | \"altKey\" | \"ctrlKey\" | \"shiftKey\"\n>;\n\nfunction isModifiedEvent(event: LimitedMouseEvent) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nexport function shouldProcessLinkClick(\n event: LimitedMouseEvent,\n target?: string\n) {\n return (\n event.button === 0 && // Ignore everything but left clicks\n (!target || target === \"_self\") && // Let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // Ignore clicks with modifier keys\n );\n}\n\nexport type ParamKeyValuePair = [string, string];\n\nexport type URLSearchParamsInit =\n | string\n | ParamKeyValuePair[]\n | Record\n | URLSearchParams;\n\n/**\n * Creates a URLSearchParams object using the given initializer.\n *\n * This is identical to `new URLSearchParams(init)` except it also\n * supports arrays as values in the object form of the initializer\n * instead of just strings. This is convenient when you need multiple\n * values for a given key, but don't want to use an array initializer.\n *\n * For example, instead of:\n *\n * let searchParams = new URLSearchParams([\n * ['sort', 'name'],\n * ['sort', 'price']\n * ]);\n *\n * you can do:\n *\n * let searchParams = createSearchParams({\n * sort: ['name', 'price']\n * });\n */\nexport function createSearchParams(\n init: URLSearchParamsInit = \"\"\n): URLSearchParams {\n return new URLSearchParams(\n typeof init === \"string\" ||\n Array.isArray(init) ||\n init instanceof URLSearchParams\n ? init\n : Object.keys(init).reduce((memo, key) => {\n let value = init[key];\n return memo.concat(\n Array.isArray(value) ? value.map((v) => [key, v]) : [[key, value]]\n );\n }, [] as ParamKeyValuePair[])\n );\n}\n\nexport function getSearchParamsForLocation(\n locationSearch: string,\n defaultSearchParams: URLSearchParams | null\n) {\n let searchParams = createSearchParams(locationSearch);\n\n if (defaultSearchParams) {\n for (let key of defaultSearchParams.keys()) {\n if (!searchParams.has(key)) {\n defaultSearchParams.getAll(key).forEach((value) => {\n searchParams.append(key, value);\n });\n }\n }\n }\n\n return searchParams;\n}\n\nexport interface SubmitOptions {\n /**\n * The HTTP method used to submit the form. Overrides ``.\n * Defaults to \"GET\".\n */\n method?: FormMethod;\n\n /**\n * The action URL path used to submit the form. Overrides ``.\n * Defaults to the path of the current route.\n *\n * Note: It is assumed the path is already resolved. If you need to resolve a\n * relative path, use `useFormAction`.\n */\n action?: string;\n\n /**\n * The action URL used to submit the form. Overrides ``.\n * Defaults to \"application/x-www-form-urlencoded\".\n */\n encType?: FormEncType;\n\n /**\n * Set `true` to replace the current entry in the browser's history stack\n * instead of creating a new one (i.e. stay on \"the same page\"). Defaults\n * to `false`.\n */\n replace?: boolean;\n\n /**\n * Determines whether the form action is relative to the route hierarchy or\n * the pathname. Use this if you want to opt out of navigating the route\n * hierarchy and want to instead route based on /-delimited URL segments\n */\n relative?: RelativeRoutingType;\n\n /**\n * In browser-based environments, prevent resetting scroll after this\n * navigation when using the component\n */\n preventScrollReset?: boolean;\n}\n\nexport function getFormSubmissionInfo(\n target:\n | HTMLFormElement\n | HTMLButtonElement\n | HTMLInputElement\n | FormData\n | URLSearchParams\n | { [name: string]: string }\n | null,\n defaultAction: string,\n options: SubmitOptions\n): {\n url: URL;\n method: string;\n encType: string;\n formData: FormData;\n} {\n let method: string;\n let action: string;\n let encType: string;\n let formData: FormData;\n\n if (isFormElement(target)) {\n let submissionTrigger: HTMLButtonElement | HTMLInputElement = (\n options as any\n ).submissionTrigger;\n\n method = options.method || target.getAttribute(\"method\") || defaultMethod;\n action = options.action || target.getAttribute(\"action\") || defaultAction;\n encType =\n options.encType || target.getAttribute(\"enctype\") || defaultEncType;\n\n formData = new FormData(target);\n\n if (submissionTrigger && submissionTrigger.name) {\n formData.append(submissionTrigger.name, submissionTrigger.value);\n }\n } else if (\n isButtonElement(target) ||\n (isInputElement(target) &&\n (target.type === \"submit\" || target.type === \"image\"))\n ) {\n let form = target.form;\n\n if (form == null) {\n throw new Error(\n `Cannot submit a