{"version":3,"file":"static/js/main.3a5030a7.js","mappings":"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","sources":["Routes.tsx","services/ApiService.tsx","contexts/GlobalContext.tsx","hooks/useTheme.tsx","hooks/useErrors.tsx","hooks/useGamesData.tsx","hooks/useCharactersData.tsx","../node_modules/@microsoft/signalr/src/DefaultReconnectPolicy.ts","../node_modules/@microsoft/signalr/src/HeaderNames.ts","../node_modules/@microsoft/signalr/src/HttpClient.ts","../node_modules/@microsoft/signalr/src/AccessTokenHttpClient.ts","../node_modules/@microsoft/signalr/src/Errors.ts","../node_modules/@microsoft/signalr/src/ILogger.ts","../node_modules/@microsoft/signalr/src/Loggers.ts","../node_modules/@microsoft/signalr/src/Utils.ts","../node_modules/@microsoft/signalr/src/FetchHttpClient.ts","../node_modules/@microsoft/signalr/src/XhrHttpClient.ts","../node_modules/@microsoft/signalr/src/DefaultHttpClient.ts","../node_modules/@microsoft/signalr/src/ITransport.ts","../node_modules/@microsoft/signalr/src/AbortController.ts","../node_modules/@microsoft/signalr/src/LongPollingTransport.ts","../node_modules/@microsoft/signalr/src/ServerSentEventsTransport.ts","../node_modules/@microsoft/signalr/src/WebSocketTransport.ts","../node_modules/@microsoft/signalr/src/HttpConnection.ts","../node_modules/@microsoft/signalr/src/TextMessageFormat.ts","../node_modules/@microsoft/signalr/src/HandshakeProtocol.ts","../node_modules/@microsoft/signalr/src/IHubProtocol.ts","../node_modules/@microsoft/signalr/src/Subject.ts","../node_modules/@microsoft/signalr/src/HubConnection.ts","../node_modules/@microsoft/signalr/src/JsonHubProtocol.ts","../node_modules/@microsoft/signalr/src/HubConnectionBuilder.ts","utils/Constants.tsx","contexts/LadderContext.tsx","hooks/useLadderStatus.tsx","hooks/useAuth.tsx","../node_modules/@popperjs/core/lib/enums.js","../node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","../node_modules/@popperjs/core/lib/dom-utils/getWindow.js","../node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","../node_modules/@popperjs/core/lib/modifiers/applyStyles.js","../node_modules/@popperjs/core/lib/utils/getBasePlacement.js","../node_modules/@popperjs/core/lib/utils/math.js","../node_modules/@popperjs/core/lib/utils/userAgent.js","../node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js","../node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","../node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","../node_modules/@popperjs/core/lib/dom-utils/contains.js","../node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","../node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","../node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","../node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","../node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","../node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","../node_modules/@popperjs/core/lib/utils/within.js","../node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","../node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","../node_modules/@popperjs/core/lib/utils/expandToHashMap.js","../node_modules/@popperjs/core/lib/modifiers/arrow.js","../node_modules/@popperjs/core/lib/utils/getVariation.js","../node_modules/@popperjs/core/lib/modifiers/computeStyles.js","../node_modules/@popperjs/core/lib/modifiers/eventListeners.js","../node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","../node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","../node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","../node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","../node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","../node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","../node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","../node_modules/@popperjs/core/lib/utils/rectToClientRect.js","../node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","../node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","../node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","../node_modules/@popperjs/core/lib/utils/computeOffsets.js","../node_modules/@popperjs/core/lib/utils/detectOverflow.js","../node_modules/@popperjs/core/lib/modifiers/flip.js","../node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","../node_modules/@popperjs/core/lib/modifiers/hide.js","../node_modules/@popperjs/core/lib/modifiers/offset.js","../node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","../node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","../node_modules/@popperjs/core/lib/utils/getAltAxis.js","../node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","../node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","../node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","../node_modules/@popperjs/core/lib/utils/orderModifiers.js","../node_modules/@popperjs/core/lib/utils/debounce.js","../node_modules/@popperjs/core/lib/createPopper.js","../node_modules/@popperjs/core/lib/utils/mergeByName.js","../node_modules/@popperjs/core/lib/popper.js","../node_modules/@popperjs/core/lib/popper-lite.js","../node_modules/bootstrap/js/src/dom/data.js","../node_modules/bootstrap/js/src/util/index.js","../node_modules/bootstrap/js/src/dom/event-handler.js","../node_modules/bootstrap/js/src/dom/manipulator.js","../node_modules/bootstrap/js/src/util/config.js","../node_modules/bootstrap/js/src/base-component.js","../node_modules/bootstrap/js/src/dom/selector-engine.js","../node_modules/bootstrap/js/src/util/component-functions.js","../node_modules/bootstrap/js/src/alert.js","../node_modules/bootstrap/js/src/button.js","../node_modules/bootstrap/js/src/util/swipe.js","../node_modules/bootstrap/js/src/carousel.js","../node_modules/bootstrap/js/src/collapse.js","../node_modules/bootstrap/js/src/dropdown.js","../node_modules/bootstrap/js/src/util/backdrop.js","../node_modules/bootstrap/js/src/util/focustrap.js","../node_modules/bootstrap/js/src/util/scrollbar.js","../node_modules/bootstrap/js/src/modal.js","../node_modules/bootstrap/js/src/offcanvas.js","../node_modules/bootstrap/js/src/util/sanitizer.js","../node_modules/bootstrap/js/src/util/template-factory.js","../node_modules/bootstrap/js/src/tooltip.js","../node_modules/bootstrap/js/src/popover.js","../node_modules/bootstrap/js/src/scrollspy.js","../node_modules/bootstrap/js/src/tab.js","../node_modules/bootstrap/js/src/toast.js","../node_modules/resolve-pathname/esm/resolve-pathname.js","../node_modules/history/esm/history.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/hoist-non-react-statics/node_modules/react-is/index.js","../node_modules/isarray/index.js","../node_modules/path-to-regexp/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-router-dom/modules/BrowserRouter.js","../node_modules/react-router-dom/modules/HashRouter.js","../node_modules/react-router-dom/modules/utils/locationUtils.js","../node_modules/react-router-dom/modules/Link.js","../node_modules/react-router-dom/modules/NavLink.js","../node_modules/react-router/modules/miniCreateReactContext.js","../node_modules/react-router/modules/createContext.js","../node_modules/react-router/modules/createNamedContext.js","../node_modules/react-router/modules/HistoryContext.js","../node_modules/react-router/modules/RouterContext.js","../node_modules/react-router/modules/Router.js","../node_modules/react-router/modules/MemoryRouter.js","../node_modules/react-router/modules/Lifecycle.js","../node_modules/react-router/modules/matchPath.js","../node_modules/react-router/modules/Route.js","../node_modules/react-router/modules/StaticRouter.js","../node_modules/react-router/modules/Switch.js","../node_modules/react-router/modules/hooks.js","../node_modules/react-router/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-router/node_modules/react-is/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","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/tiny-invariant/dist/esm/tiny-invariant.js","../webpack/bootstrap","../webpack/runtime/compat get default export","../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","components/Navbar.tsx","components/Subnav.tsx","placeholder/PagePlaceholder.tsx","components/DebugFooter.tsx","components/ReconnectingBanner.tsx","components/Routes.tsx","App.tsx","serviceWorkerRegistration.tsx","index.tsx"],"sourcesContent":["import { LazyExoticComponent, lazy } from \"react\";\r\n\r\nconst HomePage = lazy(() => import(\"pages/HomePage\"));\r\nconst LadderLobbyPage = lazy(() => import(\"pages/LadderLobbyPage\"));\r\nconst LadderMatchesPage = lazy(() => import(\"pages/LadderMatchesPage\"));\r\nconst LadderCharactersPage = lazy(() => import(\"pages/LadderCharactersPage\"));\r\nconst LadderLeaderboardPage = lazy(() => import(\"pages/LadderLeaderboardPage\"));\r\nconst LadderEntrantPage = lazy(() => import(\"pages/LadderEntrantPage\"));\r\nconst ProfilePage = lazy(() => import(\"pages/ProfilePage\"));\r\nconst AccountLoginPage = lazy(() => import(\"pages/account/AccountLoginPage\"));\r\nconst NotificationAcceptChallengePage = lazy(() => import(\"pages/notification/NotificationAcceptChallengePage\"));\r\nconst NotificationRejectChallengePage = lazy(() => import(\"pages/notification/NotificationRejectChallengePage\"));\r\nconst NotificationAcceptQueuePage = lazy(() => import(\"pages/notification/NotificationAcceptQueuePage\"));\r\nconst NotificationRejectQueuePage = lazy(() => import(\"pages/notification/NotificationRejectQueuePage\"));\r\n\r\nexport const RouteList = {\r\n AccountLogin: \"/login\",\r\n Profile: \"/profile\",\r\n Home: \"/\",\r\n};\r\n\r\ninterface IRouteTableItem {\r\n path: string;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n Component: LazyExoticComponent;\r\n}\r\n\r\nexport const RouteTable: Array = [\r\n { path: \"/ladders/:id([0-9]+)/matches\", Component: LadderMatchesPage },\r\n { path: \"/ladders/:id([0-9]+)/characters\", Component: LadderCharactersPage },\r\n { path: \"/ladders/:id([0-9]+)/leaderboard\", Component: LadderLeaderboardPage },\r\n { path: \"/ladders/:id([0-9]+)/lobby\", Component: LadderLobbyPage },\r\n { path: \"/ladders/:ladderId([0-9]+)/leaderboard/:entrantId([0-9]+)\", Component: LadderEntrantPage },\r\n {\r\n path: \"/notifications/accept-challenge/:ladderId([0-9]+)/:challengeId([0-9]+)\",\r\n Component: NotificationAcceptChallengePage,\r\n },\r\n {\r\n path: \"/notifications/reject-challenge/:ladderId([0-9]+)/:challengeId([0-9]+)\",\r\n Component: NotificationRejectChallengePage,\r\n },\r\n {\r\n path: \"/notifications/accept-queue/:ladderId([0-9]+)\",\r\n Component: NotificationAcceptQueuePage,\r\n },\r\n {\r\n path: \"/notifications/reject-queue/:ladderId([0-9]+)\",\r\n Component: NotificationRejectQueuePage,\r\n },\r\n { path: RouteList.Home, Component: HomePage },\r\n { path: RouteList.AccountLogin, Component: AccountLoginPage },\r\n { path: RouteList.Profile, Component: ProfilePage },\r\n];\r\n\r\nexport const RouteLink = {\r\n ladderLobby: (id: number) => `/ladders/${id}/lobby`,\r\n ladderLeaderboard: (id: number, characterId?: number) =>\r\n `/ladders/${id}/leaderboard${characterId ? `?c=${characterId}` : \"\"}`,\r\n ladderMatches: (id: number, characterId?: number) =>\r\n `/ladders/${id}/matches${characterId ? `?c=${characterId}` : \"\"}`,\r\n ladderCharacters: (id: number) => `/ladders/${id}/characters`,\r\n ladderEntrant: (ladderId: number, entrantId: number) => `/ladders/${ladderId}/leaderboard/${entrantId}`,\r\n notificationAcceptChallenge: (ladderId: number, challengeId: number) =>\r\n `/notifications/accept-challenge/${ladderId}/${challengeId}`,\r\n notificationRejectChallenge: (ladderId: number, challengeId: number) =>\r\n `/notifications/reject-challenge/${ladderId}/${challengeId}`,\r\n notificationAcceptQueue: (ladderId: number) => `/notifications/accept-queue/${ladderId}`,\r\n notificationRejectQueue: (ladderId: number) => `/notifications/reject-queue/${ladderId}`,\r\n};\r\n","import { CommandResult } from \"results/CommandResult\";\r\nimport { GetLaddersCommonDataResult } from \"results/ladders/GetLaddersCommonDataResult\";\r\nimport { UsersLoginResult } from \"results/account/UsersLoginResult\";\r\nimport { UsersLoginCommand } from \"commands/account/UsersLoginCommand\";\r\nimport { GetLaddersResult } from \"results/ladders/GetLaddersResult\";\r\nimport { getToken } from \"hooks/useAuth\";\r\nimport { GetLadderResult } from \"results/ladders/GetLadderResult\";\r\nimport { GetLadderMatchesResult } from \"results/ladders/GetLadderMatchesResult\";\r\nimport { GetLadderLeaderboardResult } from \"results/ladders/GetLadderLeaderboardResult\";\r\nimport { GetLadderCharactersResult } from \"results/ladders/GetLadderCharactersResult\";\r\nimport { GetLadderEntrantResult } from \"results/ladders/GetLadderEntrantResult\";\r\nimport { LaddersPostLadderChatMessageCommand } from \"commands/ladders/LaddersPostChatMessageCommand\";\r\nimport { GetLadderConnectionResult } from \"results/ladders/GetLadderConnectionResult\";\r\nimport { LaddersRecordWinCommand } from \"commands/ladders/LaddersRecordWinCommand\";\r\nimport { GetLadderEntrantsToChallengeResult } from \"results/ladders/GetLadderEntrantsToChallengeResult\";\r\nimport { LaddersBlindSelectCharacterCommand } from \"commands/ladders/LaddersBlindSelectCharacterCommand\";\r\nimport { GetReportingLadderMatchesResult } from \"results/reporting/GetReportingLadderMatchesResult\";\r\nimport { GetReportingLadderEntrantsResult } from \"results/reporting/GetReportingLadderEntrantsResult\";\r\n\r\nconst getApiUrl = (url: string) => `/api${url}`;\r\n\r\nconst getHeaders = (useJson = true) => {\r\n const h = new Headers();\r\n\r\n if (useJson) {\r\n h.append(\"Content-Type\", \"application/json\");\r\n }\r\n\r\n const token = getToken();\r\n\r\n if (token) {\r\n h.append(\"Authorization\", `Bearer ${token}`);\r\n }\r\n\r\n return h;\r\n};\r\n\r\nasync function submitForm(method: string, url: string, data?: unknown) {\r\n const body = JSON.stringify(data);\r\n\r\n const x = await fetch(getApiUrl(url), {\r\n method: method,\r\n body,\r\n headers: getHeaders(),\r\n });\r\n\r\n return await (x.json() as Promise);\r\n}\r\n\r\nasync function get(url: string) {\r\n const x = await fetch(getApiUrl(url), {\r\n method: \"GET\",\r\n headers: getHeaders(),\r\n });\r\n\r\n return await (x.json() as Promise);\r\n}\r\n\r\nasync function post(url: string, data?: unknown) {\r\n return submitForm>(\"POST\", url, data);\r\n}\r\n\r\nexport class ApiService {\r\n // account\r\n login(model: UsersLoginCommand) {\r\n return post(\"/account/login\", model);\r\n }\r\n\r\n // global data\r\n getGlobalData() {\r\n return get(\"/home/data\");\r\n }\r\n\r\n getLadders() {\r\n return get(\"/home/ladders\");\r\n }\r\n\r\n preconnect(id: number) {\r\n return get(`/home/preconnect/${id}`);\r\n }\r\n\r\n getLadder(id: number) {\r\n return get(`/home/ladder/${id}`);\r\n }\r\n\r\n getLadderMatches(id: number) {\r\n return get(`/home/ladder/${id}/matches`);\r\n }\r\n\r\n getLadderLeaderboard(id: number) {\r\n return get(`/home/ladder/${id}/leaderboard`);\r\n }\r\n\r\n getLadderCharacters(id: number) {\r\n return get(`/home/ladder/${id}/characters`);\r\n }\r\n\r\n getLadderEntrant(id: number) {\r\n return get(`/home/entrant/${id}`);\r\n }\r\n\r\n getLadderEntrantsToChallenge(id: number) {\r\n return get(`/home/ladder/${id}/entrants-to-challenge`);\r\n }\r\n\r\n getLadderMatchesReport(id: number) {\r\n return get(`/home/ladder/${id}/report/matches`);\r\n }\r\n\r\n getLadderEntrantsReport(id: number) {\r\n return get(`/home/ladder/${id}/report/entrants`);\r\n }\r\n\r\n // post\r\n registerForLadder(id: number) {\r\n return post(\"/home/register\", { id });\r\n }\r\n\r\n postLadderChatMessage(model: LaddersPostLadderChatMessageCommand) {\r\n return post(\"/home/ladder-chat\", model);\r\n }\r\n\r\n postPairingChatMessage(model: LaddersPostLadderChatMessageCommand) {\r\n return post(\"/home/pairing-chat\", model);\r\n }\r\n\r\n queue(id: number) {\r\n return post(\"/home/queue\", { id });\r\n }\r\n\r\n unqueue(id: number) {\r\n return post(\"/home/unqueue\", { id });\r\n }\r\n\r\n acceptQueueMatch(id: number) {\r\n return post(\"/home/accept-queue-match\", { id });\r\n }\r\n\r\n rejectQueueMatch(id: number) {\r\n return post(\"/home/reject-queue-match\", { id });\r\n }\r\n\r\n challengePlayer(id: number) {\r\n return post(\"/home/challenge-player\", { id });\r\n }\r\n\r\n acceptChallenge(id: number) {\r\n return post(\"/home/accept-challenge\", { id });\r\n }\r\n\r\n rejectChallenge(id: number) {\r\n return post(\"/home/reject-challenge\", { id });\r\n }\r\n\r\n cancelChallenge(id: number) {\r\n return post(\"/home/cancel-challenge\", { id });\r\n }\r\n\r\n cancelMatch(id: number) {\r\n return post(\"/home/cancel-match\", { id });\r\n }\r\n\r\n acceptCancelMatch(id: number) {\r\n return post(\"/home/accept-cancel-match\", { id });\r\n }\r\n\r\n rejectCancelMatch(id: number) {\r\n return post(\"/home/reject-cancel-match\", { id });\r\n }\r\n\r\n cancelCancelMatch(id: number) {\r\n return post(\"/home/cancel-cancel-match\", { id });\r\n }\r\n\r\n forfeit(id: number) {\r\n return post(\"/home/forfeit\", { id });\r\n }\r\n\r\n recordWin(command: LaddersRecordWinCommand) {\r\n return post(\"/home/record-win\", command);\r\n }\r\n\r\n blindSelectCharacter(command: LaddersBlindSelectCharacterCommand) {\r\n return post(\"/home/blind-select-character\", command);\r\n }\r\n}\r\n","import { useAuth } from \"hooks/useAuth\";\r\nimport { useCharactersData } from \"hooks/useCharactersData\";\r\nimport { useErrors } from \"hooks/useErrors\";\r\nimport { useGamesData } from \"hooks/useGamesData\";\r\nimport { useTheme } from \"hooks/useTheme\";\r\nimport { createContext, ReactNode, useEffect, useState } from \"react\";\r\nimport { useLocation } from \"react-router-dom\";\r\nimport { GetLaddersCommonDataResult } from \"results/ladders/GetLaddersCommonDataResult\";\r\nimport { ApiService } from \"services/ApiService\";\r\n\r\n// api access\r\nconst service = new ApiService();\r\n\r\nconst suffixes = new Map([\r\n [\"one\", \"st\"],\r\n [\"two\", \"nd\"],\r\n [\"few\", \"rd\"],\r\n [\"other\", \"th\"],\r\n]);\r\n\r\n// ordinals\r\nconst formatter = new Intl.PluralRules(\"en-US\", { type: \"ordinal\" });\r\nconst numberToOrdinal = (n: number) => {\r\n const suffix = suffixes.get(formatter.select(n));\r\n return `${n}${suffix}`;\r\n};\r\n\r\nexport const useGlobalContext = () => {\r\n // dark mode\r\n useTheme();\r\n\r\n // standard imports\r\n const { login, logout, isAuthenticated } = useAuth();\r\n const { error, catchServerError } = useErrors();\r\n\r\n // data\r\n const [commonData, setCommonData] = useState();\r\n\r\n useEffect(() => {\r\n let isMounted = true;\r\n service\r\n .getGlobalData()\r\n .then(x => {\r\n if (isMounted) {\r\n setCommonData(x);\r\n }\r\n })\r\n .catch(catchServerError);\r\n\r\n return () => {\r\n isMounted = false;\r\n };\r\n }, [catchServerError]);\r\n\r\n // data access\r\n const { games, getGame } = useGamesData({ data: commonData?.games });\r\n const { characters, getCharacter, getCharactersForGame } = useCharactersData({ data: commonData?.characters });\r\n\r\n // scroll to top on page change\r\n const location = useLocation();\r\n\r\n useEffect(() => {\r\n window.scrollTo({ top: 0 });\r\n }, [location]);\r\n\r\n return {\r\n isAuthenticated,\r\n login,\r\n logout,\r\n service,\r\n numberToOrdinal,\r\n error,\r\n catchServerError,\r\n games,\r\n getGame,\r\n characters,\r\n getCharacter,\r\n getCharactersForGame,\r\n };\r\n};\r\n\r\n// automatic exports\r\nexport type IGlobalContext = ReturnType;\r\nexport const GlobalContext = createContext({} as IGlobalContext);\r\n\r\ntype Props = {\r\n children: ReactNode;\r\n};\r\n\r\nexport const GlobalContextProvider = (props: Props) => {\r\n const globalContext = useGlobalContext();\r\n return {props.children};\r\n};\r\n","import { useEffect } from \"react\";\r\n\r\nexport const useTheme = () => {\r\n useEffect(() => {\r\n const getPreferredTheme = () => (window.matchMedia(\"(prefers-color-scheme: dark)\").matches ? \"dark\" : \"light\");\r\n\r\n const setTheme = (theme: string) => {\r\n if (theme === \"auto\" && window.matchMedia(\"(prefers-color-scheme: dark)\").matches) {\r\n document.documentElement.setAttribute(\"data-bs-theme\", \"dark\");\r\n } else {\r\n document.documentElement.setAttribute(\"data-bs-theme\", theme);\r\n }\r\n };\r\n\r\n setTheme(getPreferredTheme());\r\n\r\n window.matchMedia(\"(prefers-color-scheme: dark)\").addEventListener(\"change\", () => {\r\n setTheme(getPreferredTheme());\r\n });\r\n }, []);\r\n};\r\n","import { useState, useCallback } from \"react\";\r\n\r\nexport const useErrors = () => {\r\n const [error, setError] = useState();\r\n\r\n // globally handle server errors\r\n const catchServerError = useCallback((e: unknown) => {\r\n // eslint-disable-next-line no-console\r\n console.log(\"Website error:\");\r\n // eslint-disable-next-line no-console\r\n console.log(e);\r\n setError(\"An error occurred\");\r\n }, []);\r\n\r\n return {\r\n error,\r\n catchServerError,\r\n };\r\n};\r\n","import { GameDto } from \"dtos/GameDto\";\r\nimport { useState, useCallback, useEffect } from \"react\";\r\n\r\nexport const useGamesData = (props: { data?: Array }) => {\r\n const { data } = props;\r\n\r\n const [games, setGames] = useState>();\r\n const [gamesDictionary, setGamesDictionary] = useState>(new Map());\r\n\r\n const getGame = useCallback((id: number) => gamesDictionary.get(id), [gamesDictionary]);\r\n\r\n useEffect(() => {\r\n if (data) {\r\n setGames(data);\r\n setGamesDictionary(new Map(data.map(g => [g.id, g])));\r\n }\r\n }, [data]);\r\n\r\n return {\r\n games,\r\n getGame,\r\n };\r\n};\r\n","import { CharacterDto } from \"dtos/CharacterDto\";\r\nimport { useState, useCallback, useEffect } from \"react\";\r\n\r\nexport const useCharactersData = (props: { data?: Array }) => {\r\n const { data } = props;\r\n\r\n const [characters, setCharacters] = useState>();\r\n const [charactersDictionary, setCharactersDictionary] = useState>(\r\n new Map(),\r\n );\r\n\r\n const getCharacter = useCallback((id: number) => charactersDictionary.get(id), [charactersDictionary]);\r\n const getCharactersForGame = useCallback(\r\n (gameId: number) => characters?.filter(x => x.gameId === gameId),\r\n [characters],\r\n );\r\n\r\n useEffect(() => {\r\n if (data) {\r\n setCharacters(data);\r\n setCharactersDictionary(new Map(data.map(g => [g.id, g])));\r\n }\r\n }, [data]);\r\n\r\n return {\r\n characters,\r\n getCharacter,\r\n getCharactersForGame,\r\n };\r\n};\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\nimport { IRetryPolicy, RetryContext } from \"./IRetryPolicy\";\r\n\r\n// 0, 2, 10, 30 second delays before reconnect attempts.\r\nconst DEFAULT_RETRY_DELAYS_IN_MILLISECONDS = [0, 2000, 10000, 30000, null];\r\n\r\n/** @private */\r\nexport class DefaultReconnectPolicy implements IRetryPolicy {\r\n private readonly _retryDelays: (number | null)[];\r\n\r\n constructor(retryDelays?: number[]) {\r\n this._retryDelays = retryDelays !== undefined ? [...retryDelays, null] : DEFAULT_RETRY_DELAYS_IN_MILLISECONDS;\r\n }\r\n\r\n public nextRetryDelayInMilliseconds(retryContext: RetryContext): number | null {\r\n return this._retryDelays[retryContext.previousRetryCount];\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\nexport abstract class HeaderNames {\r\n static readonly Authorization = \"Authorization\";\r\n static readonly Cookie = \"Cookie\";\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\nimport { AbortSignal } from \"./AbortController\";\r\nimport { MessageHeaders } from \"./IHubProtocol\";\r\n\r\n/** Represents an HTTP request. */\r\nexport interface HttpRequest {\r\n /** The HTTP method to use for the request. */\r\n method?: string;\r\n\r\n /** The URL for the request. */\r\n url?: string;\r\n\r\n /** The body content for the request. May be a string or an ArrayBuffer (for binary data). */\r\n content?: string | ArrayBuffer;\r\n\r\n /** An object describing headers to apply to the request. */\r\n headers?: MessageHeaders;\r\n\r\n /** The XMLHttpRequestResponseType to apply to the request. */\r\n responseType?: XMLHttpRequestResponseType;\r\n\r\n /** An AbortSignal that can be monitored for cancellation. */\r\n abortSignal?: AbortSignal;\r\n\r\n /** The time to wait for the request to complete before throwing a TimeoutError. Measured in milliseconds. */\r\n timeout?: number;\r\n\r\n /** This controls whether credentials such as cookies are sent in cross-site requests. */\r\n withCredentials?: boolean;\r\n}\r\n\r\n/** Represents an HTTP response. */\r\nexport class HttpResponse {\r\n /** Constructs a new instance of {@link @microsoft/signalr.HttpResponse} with the specified status code.\r\n *\r\n * @param {number} statusCode The status code of the response.\r\n */\r\n constructor(statusCode: number);\r\n\r\n /** Constructs a new instance of {@link @microsoft/signalr.HttpResponse} with the specified status code and message.\r\n *\r\n * @param {number} statusCode The status code of the response.\r\n * @param {string} statusText The status message of the response.\r\n */\r\n constructor(statusCode: number, statusText: string);\r\n\r\n /** Constructs a new instance of {@link @microsoft/signalr.HttpResponse} with the specified status code, message and string content.\r\n *\r\n * @param {number} statusCode The status code of the response.\r\n * @param {string} statusText The status message of the response.\r\n * @param {string} content The content of the response.\r\n */\r\n constructor(statusCode: number, statusText: string, content: string);\r\n\r\n /** Constructs a new instance of {@link @microsoft/signalr.HttpResponse} with the specified status code, message and binary content.\r\n *\r\n * @param {number} statusCode The status code of the response.\r\n * @param {string} statusText The status message of the response.\r\n * @param {ArrayBuffer} content The content of the response.\r\n */\r\n constructor(statusCode: number, statusText: string, content: ArrayBuffer);\r\n\r\n /** Constructs a new instance of {@link @microsoft/signalr.HttpResponse} with the specified status code, message and binary content.\r\n *\r\n * @param {number} statusCode The status code of the response.\r\n * @param {string} statusText The status message of the response.\r\n * @param {string | ArrayBuffer} content The content of the response.\r\n */\r\n constructor(statusCode: number, statusText: string, content: string | ArrayBuffer);\r\n constructor(\r\n public readonly statusCode: number,\r\n public readonly statusText?: string,\r\n public readonly content?: string | ArrayBuffer) {\r\n }\r\n}\r\n\r\n/** Abstraction over an HTTP client.\r\n *\r\n * This class provides an abstraction over an HTTP client so that a different implementation can be provided on different platforms.\r\n */\r\nexport abstract class HttpClient {\r\n /** Issues an HTTP GET request to the specified URL, returning a Promise that resolves with an {@link @microsoft/signalr.HttpResponse} representing the result.\r\n *\r\n * @param {string} url The URL for the request.\r\n * @returns {Promise} A Promise that resolves with an {@link @microsoft/signalr.HttpResponse} describing the response, or rejects with an Error indicating a failure.\r\n */\r\n public get(url: string): Promise;\r\n\r\n /** Issues an HTTP GET request to the specified URL, returning a Promise that resolves with an {@link @microsoft/signalr.HttpResponse} representing the result.\r\n *\r\n * @param {string} url The URL for the request.\r\n * @param {HttpRequest} options Additional options to configure the request. The 'url' field in this object will be overridden by the url parameter.\r\n * @returns {Promise} A Promise that resolves with an {@link @microsoft/signalr.HttpResponse} describing the response, or rejects with an Error indicating a failure.\r\n */\r\n public get(url: string, options: HttpRequest): Promise;\r\n public get(url: string, options?: HttpRequest): Promise {\r\n return this.send({\r\n ...options,\r\n method: \"GET\",\r\n url,\r\n });\r\n }\r\n\r\n /** Issues an HTTP POST request to the specified URL, returning a Promise that resolves with an {@link @microsoft/signalr.HttpResponse} representing the result.\r\n *\r\n * @param {string} url The URL for the request.\r\n * @returns {Promise} A Promise that resolves with an {@link @microsoft/signalr.HttpResponse} describing the response, or rejects with an Error indicating a failure.\r\n */\r\n public post(url: string): Promise;\r\n\r\n /** Issues an HTTP POST request to the specified URL, returning a Promise that resolves with an {@link @microsoft/signalr.HttpResponse} representing the result.\r\n *\r\n * @param {string} url The URL for the request.\r\n * @param {HttpRequest} options Additional options to configure the request. The 'url' field in this object will be overridden by the url parameter.\r\n * @returns {Promise} A Promise that resolves with an {@link @microsoft/signalr.HttpResponse} describing the response, or rejects with an Error indicating a failure.\r\n */\r\n public post(url: string, options: HttpRequest): Promise;\r\n public post(url: string, options?: HttpRequest): Promise {\r\n return this.send({\r\n ...options,\r\n method: \"POST\",\r\n url,\r\n });\r\n }\r\n\r\n /** Issues an HTTP DELETE request to the specified URL, returning a Promise that resolves with an {@link @microsoft/signalr.HttpResponse} representing the result.\r\n *\r\n * @param {string} url The URL for the request.\r\n * @returns {Promise} A Promise that resolves with an {@link @microsoft/signalr.HttpResponse} describing the response, or rejects with an Error indicating a failure.\r\n */\r\n public delete(url: string): Promise;\r\n\r\n /** Issues an HTTP DELETE request to the specified URL, returning a Promise that resolves with an {@link @microsoft/signalr.HttpResponse} representing the result.\r\n *\r\n * @param {string} url The URL for the request.\r\n * @param {HttpRequest} options Additional options to configure the request. The 'url' field in this object will be overridden by the url parameter.\r\n * @returns {Promise} A Promise that resolves with an {@link @microsoft/signalr.HttpResponse} describing the response, or rejects with an Error indicating a failure.\r\n */\r\n public delete(url: string, options: HttpRequest): Promise;\r\n public delete(url: string, options?: HttpRequest): Promise {\r\n return this.send({\r\n ...options,\r\n method: \"DELETE\",\r\n url,\r\n });\r\n }\r\n\r\n /** Issues an HTTP request to the specified URL, returning a {@link Promise} that resolves with an {@link @microsoft/signalr.HttpResponse} representing the result.\r\n *\r\n * @param {HttpRequest} request An {@link @microsoft/signalr.HttpRequest} describing the request to send.\r\n * @returns {Promise} A Promise that resolves with an HttpResponse describing the response, or rejects with an Error indicating a failure.\r\n */\r\n public abstract send(request: HttpRequest): Promise;\r\n\r\n /** Gets all cookies that apply to the specified URL.\r\n *\r\n * @param url The URL that the cookies are valid for.\r\n * @returns {string} A string containing all the key-value cookie pairs for the specified URL.\r\n */\r\n // @ts-ignore\r\n public getCookieString(url: string): string {\r\n return \"\";\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\nimport { HeaderNames } from \"./HeaderNames\";\r\nimport { HttpClient, HttpRequest, HttpResponse } from \"./HttpClient\";\r\n\r\n/** @private */\r\nexport class AccessTokenHttpClient extends HttpClient {\r\n private _innerClient: HttpClient;\r\n _accessToken: string | undefined;\r\n _accessTokenFactory: (() => string | Promise) | undefined;\r\n\r\n constructor(innerClient: HttpClient, accessTokenFactory: (() => string | Promise) | undefined) {\r\n super();\r\n\r\n this._innerClient = innerClient;\r\n this._accessTokenFactory = accessTokenFactory;\r\n }\r\n\r\n public async send(request: HttpRequest): Promise {\r\n let allowRetry = true;\r\n if (this._accessTokenFactory && (!this._accessToken || (request.url && request.url.indexOf(\"/negotiate?\") > 0))) {\r\n // don't retry if the request is a negotiate or if we just got a potentially new token from the access token factory\r\n allowRetry = false;\r\n this._accessToken = await this._accessTokenFactory();\r\n }\r\n this._setAuthorizationHeader(request);\r\n const response = await this._innerClient.send(request);\r\n\r\n if (allowRetry && response.statusCode === 401 && this._accessTokenFactory) {\r\n this._accessToken = await this._accessTokenFactory();\r\n this._setAuthorizationHeader(request);\r\n return await this._innerClient.send(request);\r\n }\r\n return response;\r\n }\r\n\r\n private _setAuthorizationHeader(request: HttpRequest) {\r\n if (!request.headers) {\r\n request.headers = {};\r\n }\r\n if (this._accessToken) {\r\n request.headers[HeaderNames.Authorization] = `Bearer ${this._accessToken}`\r\n }\r\n // don't remove the header if there isn't an access token factory, the user manually added the header in this case\r\n else if (this._accessTokenFactory) {\r\n if (request.headers[HeaderNames.Authorization]) {\r\n delete request.headers[HeaderNames.Authorization];\r\n }\r\n }\r\n }\r\n\r\n public getCookieString(url: string): string {\r\n return this._innerClient.getCookieString(url);\r\n }\r\n}","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\nimport { HttpTransportType } from \"./ITransport\";\r\n\r\n/** Error thrown when an HTTP request fails. */\r\nexport class HttpError extends Error {\r\n // @ts-ignore: Intentionally unused.\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n private __proto__: Error;\r\n\r\n /** The HTTP status code represented by this error. */\r\n public statusCode: number;\r\n\r\n /** Constructs a new instance of {@link @microsoft/signalr.HttpError}.\r\n *\r\n * @param {string} errorMessage A descriptive error message.\r\n * @param {number} statusCode The HTTP status code represented by this error.\r\n */\r\n constructor(errorMessage: string, statusCode: number) {\r\n const trueProto = new.target.prototype;\r\n super(`${errorMessage}: Status code '${statusCode}'`);\r\n this.statusCode = statusCode;\r\n\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n\r\n/** Error thrown when a timeout elapses. */\r\nexport class TimeoutError extends Error {\r\n // @ts-ignore: Intentionally unused.\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n private __proto__: Error;\r\n\r\n /** Constructs a new instance of {@link @microsoft/signalr.TimeoutError}.\r\n *\r\n * @param {string} errorMessage A descriptive error message.\r\n */\r\n constructor(errorMessage: string = \"A timeout occurred.\") {\r\n const trueProto = new.target.prototype;\r\n super(errorMessage);\r\n\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n\r\n/** Error thrown when an action is aborted. */\r\nexport class AbortError extends Error {\r\n // @ts-ignore: Intentionally unused.\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n private __proto__: Error;\r\n\r\n /** Constructs a new instance of {@link AbortError}.\r\n *\r\n * @param {string} errorMessage A descriptive error message.\r\n */\r\n constructor(errorMessage: string = \"An abort occurred.\") {\r\n const trueProto = new.target.prototype;\r\n super(errorMessage);\r\n\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n\r\n/** Error thrown when the selected transport is unsupported by the browser. */\r\n/** @private */\r\nexport class UnsupportedTransportError extends Error {\r\n // @ts-ignore: Intentionally unused.\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n private __proto__: Error;\r\n\r\n /** The {@link @microsoft/signalr.HttpTransportType} this error occurred on. */\r\n public transport: HttpTransportType;\r\n\r\n /** The type name of this error. */\r\n public errorType: string;\r\n\r\n /** Constructs a new instance of {@link @microsoft/signalr.UnsupportedTransportError}.\r\n *\r\n * @param {string} message A descriptive error message.\r\n * @param {HttpTransportType} transport The {@link @microsoft/signalr.HttpTransportType} this error occurred on.\r\n */\r\n constructor(message: string, transport: HttpTransportType) {\r\n const trueProto = new.target.prototype;\r\n super(message);\r\n this.transport = transport;\r\n this.errorType = 'UnsupportedTransportError';\r\n\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n\r\n/** Error thrown when the selected transport is disabled by the browser. */\r\n/** @private */\r\nexport class DisabledTransportError extends Error {\r\n // @ts-ignore: Intentionally unused.\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n private __proto__: Error;\r\n\r\n /** The {@link @microsoft/signalr.HttpTransportType} this error occurred on. */\r\n public transport: HttpTransportType;\r\n\r\n /** The type name of this error. */\r\n public errorType: string;\r\n\r\n /** Constructs a new instance of {@link @microsoft/signalr.DisabledTransportError}.\r\n *\r\n * @param {string} message A descriptive error message.\r\n * @param {HttpTransportType} transport The {@link @microsoft/signalr.HttpTransportType} this error occurred on.\r\n */\r\n constructor(message: string, transport: HttpTransportType) {\r\n const trueProto = new.target.prototype;\r\n super(message);\r\n this.transport = transport;\r\n this.errorType = 'DisabledTransportError';\r\n\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n\r\n/** Error thrown when the selected transport cannot be started. */\r\n/** @private */\r\nexport class FailedToStartTransportError extends Error {\r\n // @ts-ignore: Intentionally unused.\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n private __proto__: Error;\r\n\r\n /** The {@link @microsoft/signalr.HttpTransportType} this error occurred on. */\r\n public transport: HttpTransportType;\r\n\r\n /** The type name of this error. */\r\n public errorType: string;\r\n\r\n /** Constructs a new instance of {@link @microsoft/signalr.FailedToStartTransportError}.\r\n *\r\n * @param {string} message A descriptive error message.\r\n * @param {HttpTransportType} transport The {@link @microsoft/signalr.HttpTransportType} this error occurred on.\r\n */\r\n constructor(message: string, transport: HttpTransportType) {\r\n const trueProto = new.target.prototype;\r\n super(message);\r\n this.transport = transport;\r\n this.errorType = 'FailedToStartTransportError';\r\n\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n\r\n/** Error thrown when the negotiation with the server failed to complete. */\r\n/** @private */\r\nexport class FailedToNegotiateWithServerError extends Error {\r\n // @ts-ignore: Intentionally unused.\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n private __proto__: Error;\r\n\r\n /** The type name of this error. */\r\n public errorType: string;\r\n\r\n /** Constructs a new instance of {@link @microsoft/signalr.FailedToNegotiateWithServerError}.\r\n *\r\n * @param {string} message A descriptive error message.\r\n */\r\n constructor(message: string) {\r\n const trueProto = new.target.prototype;\r\n super(message);\r\n this.errorType = 'FailedToNegotiateWithServerError';\r\n\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n\r\n/** Error thrown when multiple errors have occurred. */\r\n/** @private */\r\nexport class AggregateErrors extends Error {\r\n // @ts-ignore: Intentionally unused.\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n private __proto__: Error;\r\n\r\n /** The collection of errors this error is aggregating. */\r\n public innerErrors: Error[];\r\n\r\n /** Constructs a new instance of {@link @microsoft/signalr.AggregateErrors}.\r\n *\r\n * @param {string} message A descriptive error message.\r\n * @param {Error[]} innerErrors The collection of errors this error is aggregating.\r\n */\r\n constructor(message: string, innerErrors: Error[]) {\r\n const trueProto = new.target.prototype;\r\n super(message);\r\n\r\n this.innerErrors = innerErrors;\r\n\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\n// These values are designed to match the ASP.NET Log Levels since that's the pattern we're emulating here.\r\n/** Indicates the severity of a log message.\r\n *\r\n * Log Levels are ordered in increasing severity. So `Debug` is more severe than `Trace`, etc.\r\n */\r\nexport enum LogLevel {\r\n /** Log level for very low severity diagnostic messages. */\r\n Trace = 0,\r\n /** Log level for low severity diagnostic messages. */\r\n Debug = 1,\r\n /** Log level for informational diagnostic messages. */\r\n Information = 2,\r\n /** Log level for diagnostic messages that indicate a non-fatal problem. */\r\n Warning = 3,\r\n /** Log level for diagnostic messages that indicate a failure in the current operation. */\r\n Error = 4,\r\n /** Log level for diagnostic messages that indicate a failure that will terminate the entire application. */\r\n Critical = 5,\r\n /** The highest possible log level. Used when configuring logging to indicate that no log messages should be emitted. */\r\n None = 6,\r\n}\r\n\r\n/** An abstraction that provides a sink for diagnostic messages. */\r\nexport interface ILogger {\r\n /** Called by the framework to emit a diagnostic message.\r\n *\r\n * @param {LogLevel} logLevel The severity level of the message.\r\n * @param {string} message The message.\r\n */\r\n log(logLevel: LogLevel, message: string): void;\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\nimport { ILogger, LogLevel } from \"./ILogger\";\r\n\r\n/** A logger that does nothing when log messages are sent to it. */\r\nexport class NullLogger implements ILogger {\r\n /** The singleton instance of the {@link @microsoft/signalr.NullLogger}. */\r\n public static instance: ILogger = new NullLogger();\r\n\r\n private constructor() {}\r\n\r\n /** @inheritDoc */\r\n // eslint-disable-next-line\r\n public log(_logLevel: LogLevel, _message: string): void {\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\nimport { HttpClient } from \"./HttpClient\";\r\nimport { ILogger, LogLevel } from \"./ILogger\";\r\nimport { NullLogger } from \"./Loggers\";\r\nimport { IStreamSubscriber, ISubscription } from \"./Stream\";\r\nimport { Subject } from \"./Subject\";\r\nimport { IHttpConnectionOptions } from \"./IHttpConnectionOptions\";\r\n\r\n// Version token that will be replaced by the prepack command\r\n/** The version of the SignalR client. */\r\n\r\nexport const VERSION: string = \"0.0.0-DEV_BUILD\";\r\n/** @private */\r\nexport class Arg {\r\n public static isRequired(val: any, name: string): void {\r\n if (val === null || val === undefined) {\r\n throw new Error(`The '${name}' argument is required.`);\r\n }\r\n }\r\n public static isNotEmpty(val: string, name: string): void {\r\n if (!val || val.match(/^\\s*$/)) {\r\n throw new Error(`The '${name}' argument should not be empty.`);\r\n }\r\n }\r\n\r\n public static isIn(val: any, values: any, name: string): void {\r\n // TypeScript enums have keys for **both** the name and the value of each enum member on the type itself.\r\n if (!(val in values)) {\r\n throw new Error(`Unknown ${name} value: ${val}.`);\r\n }\r\n }\r\n}\r\n\r\n/** @private */\r\nexport class Platform {\r\n // react-native has a window but no document so we should check both\r\n public static get isBrowser(): boolean {\r\n return typeof window === \"object\" && typeof window.document === \"object\";\r\n }\r\n\r\n // WebWorkers don't have a window object so the isBrowser check would fail\r\n public static get isWebWorker(): boolean {\r\n return typeof self === \"object\" && \"importScripts\" in self;\r\n }\r\n\r\n // react-native has a window but no document\r\n static get isReactNative(): boolean {\r\n return typeof window === \"object\" && typeof window.document === \"undefined\";\r\n }\r\n\r\n // Node apps shouldn't have a window object, but WebWorkers don't either\r\n // so we need to check for both WebWorker and window\r\n public static get isNode(): boolean {\r\n return !this.isBrowser && !this.isWebWorker && !this.isReactNative;\r\n }\r\n}\r\n\r\n/** @private */\r\nexport function getDataDetail(data: any, includeContent: boolean): string {\r\n let detail = \"\";\r\n if (isArrayBuffer(data)) {\r\n detail = `Binary data of length ${data.byteLength}`;\r\n if (includeContent) {\r\n detail += `. Content: '${formatArrayBuffer(data)}'`;\r\n }\r\n } else if (typeof data === \"string\") {\r\n detail = `String data of length ${data.length}`;\r\n if (includeContent) {\r\n detail += `. Content: '${data}'`;\r\n }\r\n }\r\n return detail;\r\n}\r\n\r\n/** @private */\r\nexport function formatArrayBuffer(data: ArrayBuffer): string {\r\n const view = new Uint8Array(data);\r\n\r\n // Uint8Array.map only supports returning another Uint8Array?\r\n let str = \"\";\r\n view.forEach((num) => {\r\n const pad = num < 16 ? \"0\" : \"\";\r\n str += `0x${pad}${num.toString(16)} `;\r\n });\r\n\r\n // Trim of trailing space.\r\n return str.substr(0, str.length - 1);\r\n}\r\n\r\n// Also in signalr-protocol-msgpack/Utils.ts\r\n/** @private */\r\nexport function isArrayBuffer(val: any): val is ArrayBuffer {\r\n return val && typeof ArrayBuffer !== \"undefined\" &&\r\n (val instanceof ArrayBuffer ||\r\n // Sometimes we get an ArrayBuffer that doesn't satisfy instanceof\r\n (val.constructor && val.constructor.name === \"ArrayBuffer\"));\r\n}\r\n\r\n/** @private */\r\nexport async function sendMessage(logger: ILogger, transportName: string, httpClient: HttpClient, url: string,\r\n content: string | ArrayBuffer, options: IHttpConnectionOptions): Promise {\r\n const headers: {[k: string]: string} = {};\r\n\r\n const [name, value] = getUserAgentHeader();\r\n headers[name] = value;\r\n\r\n logger.log(LogLevel.Trace, `(${transportName} transport) sending data. ${getDataDetail(content, options.logMessageContent!)}.`);\r\n\r\n const responseType = isArrayBuffer(content) ? \"arraybuffer\" : \"text\";\r\n const response = await httpClient.post(url, {\r\n content,\r\n headers: { ...headers, ...options.headers},\r\n responseType,\r\n timeout: options.timeout,\r\n withCredentials: options.withCredentials,\r\n });\r\n\r\n logger.log(LogLevel.Trace, `(${transportName} transport) request complete. Response status: ${response.statusCode}.`);\r\n}\r\n\r\n/** @private */\r\nexport function createLogger(logger?: ILogger | LogLevel): ILogger {\r\n if (logger === undefined) {\r\n return new ConsoleLogger(LogLevel.Information);\r\n }\r\n\r\n if (logger === null) {\r\n return NullLogger.instance;\r\n }\r\n\r\n if ((logger as ILogger).log !== undefined) {\r\n return logger as ILogger;\r\n }\r\n\r\n return new ConsoleLogger(logger as LogLevel);\r\n}\r\n\r\n/** @private */\r\nexport class SubjectSubscription implements ISubscription {\r\n private _subject: Subject;\r\n private _observer: IStreamSubscriber;\r\n\r\n constructor(subject: Subject, observer: IStreamSubscriber) {\r\n this._subject = subject;\r\n this._observer = observer;\r\n }\r\n\r\n public dispose(): void {\r\n const index: number = this._subject.observers.indexOf(this._observer);\r\n if (index > -1) {\r\n this._subject.observers.splice(index, 1);\r\n }\r\n\r\n if (this._subject.observers.length === 0 && this._subject.cancelCallback) {\r\n this._subject.cancelCallback().catch((_) => { });\r\n }\r\n }\r\n}\r\n\r\n/** @private */\r\nexport class ConsoleLogger implements ILogger {\r\n private readonly _minLevel: LogLevel;\r\n\r\n // Public for testing purposes.\r\n public out: {\r\n error(message: any): void,\r\n warn(message: any): void,\r\n info(message: any): void,\r\n log(message: any): void,\r\n };\r\n\r\n constructor(minimumLogLevel: LogLevel) {\r\n this._minLevel = minimumLogLevel;\r\n this.out = console;\r\n }\r\n\r\n public log(logLevel: LogLevel, message: string): void {\r\n if (logLevel >= this._minLevel) {\r\n const msg = `[${new Date().toISOString()}] ${LogLevel[logLevel]}: ${message}`;\r\n switch (logLevel) {\r\n case LogLevel.Critical:\r\n case LogLevel.Error:\r\n this.out.error(msg);\r\n break;\r\n case LogLevel.Warning:\r\n this.out.warn(msg);\r\n break;\r\n case LogLevel.Information:\r\n this.out.info(msg);\r\n break;\r\n default:\r\n // console.debug only goes to attached debuggers in Node, so we use console.log for Trace and Debug\r\n this.out.log(msg);\r\n break;\r\n }\r\n }\r\n }\r\n}\r\n\r\n/** @private */\r\nexport function getUserAgentHeader(): [string, string] {\r\n let userAgentHeaderName = \"X-SignalR-User-Agent\";\r\n if (Platform.isNode) {\r\n userAgentHeaderName = \"User-Agent\";\r\n }\r\n return [ userAgentHeaderName, constructUserAgent(VERSION, getOsName(), getRuntime(), getRuntimeVersion()) ];\r\n}\r\n\r\n/** @private */\r\nexport function constructUserAgent(version: string, os: string, runtime: string, runtimeVersion: string | undefined): string {\r\n // Microsoft SignalR/[Version] ([Detailed Version]; [Operating System]; [Runtime]; [Runtime Version])\r\n let userAgent: string = \"Microsoft SignalR/\";\r\n\r\n const majorAndMinor = version.split(\".\");\r\n userAgent += `${majorAndMinor[0]}.${majorAndMinor[1]}`;\r\n userAgent += ` (${version}; `;\r\n\r\n if (os && os !== \"\") {\r\n userAgent += `${os}; `;\r\n } else {\r\n userAgent += \"Unknown OS; \";\r\n }\r\n\r\n userAgent += `${runtime}`;\r\n\r\n if (runtimeVersion) {\r\n userAgent += `; ${runtimeVersion}`;\r\n } else {\r\n userAgent += \"; Unknown Runtime Version\";\r\n }\r\n\r\n userAgent += \")\";\r\n return userAgent;\r\n}\r\n\r\n// eslint-disable-next-line spaced-comment\r\n/*#__PURE__*/ function getOsName(): string {\r\n if (Platform.isNode) {\r\n switch (process.platform) {\r\n case \"win32\":\r\n return \"Windows NT\";\r\n case \"darwin\":\r\n return \"macOS\";\r\n case \"linux\":\r\n return \"Linux\";\r\n default:\r\n return process.platform;\r\n }\r\n } else {\r\n return \"\";\r\n }\r\n}\r\n\r\n// eslint-disable-next-line spaced-comment\r\n/*#__PURE__*/ function getRuntimeVersion(): string | undefined {\r\n if (Platform.isNode) {\r\n return process.versions.node;\r\n }\r\n return undefined;\r\n}\r\n\r\nfunction getRuntime(): string {\r\n if (Platform.isNode) {\r\n return \"NodeJS\";\r\n } else {\r\n return \"Browser\";\r\n }\r\n}\r\n\r\n/** @private */\r\nexport function getErrorString(e: any): string {\r\n if (e.stack) {\r\n return e.stack;\r\n } else if (e.message) {\r\n return e.message;\r\n }\r\n return `${e}`;\r\n}\r\n\r\n/** @private */\r\nexport function getGlobalThis(): unknown {\r\n // globalThis is semi-new and not available in Node until v12\r\n if (typeof globalThis !== \"undefined\") {\r\n return globalThis;\r\n }\r\n if (typeof self !== \"undefined\") {\r\n return self;\r\n }\r\n if (typeof window !== \"undefined\") {\r\n return window;\r\n }\r\n if (typeof global !== \"undefined\") {\r\n return global;\r\n }\r\n throw new Error(\"could not find global\");\r\n}","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\n// @ts-ignore: This will be removed from built files and is here to make the types available during dev work\r\nimport { CookieJar } from \"@types/tough-cookie\";\r\n\r\nimport { AbortError, HttpError, TimeoutError } from \"./Errors\";\r\nimport { HttpClient, HttpRequest, HttpResponse } from \"./HttpClient\";\r\nimport { ILogger, LogLevel } from \"./ILogger\";\r\nimport { Platform, getGlobalThis, isArrayBuffer } from \"./Utils\";\r\n\r\nexport class FetchHttpClient extends HttpClient {\r\n private readonly _abortControllerType: { prototype: AbortController, new(): AbortController };\r\n private readonly _fetchType: (input: RequestInfo, init?: RequestInit) => Promise;\r\n private readonly _jar?: CookieJar;\r\n\r\n private readonly _logger: ILogger;\r\n\r\n public constructor(logger: ILogger) {\r\n super();\r\n this._logger = logger;\r\n\r\n if (typeof fetch === \"undefined\") {\r\n // In order to ignore the dynamic require in webpack builds we need to do this magic\r\n // @ts-ignore: TS doesn't know about these names\r\n const requireFunc = typeof __webpack_require__ === \"function\" ? __non_webpack_require__ : require;\r\n\r\n // Cookies aren't automatically handled in Node so we need to add a CookieJar to preserve cookies across requests\r\n this._jar = new (requireFunc(\"tough-cookie\")).CookieJar();\r\n this._fetchType = requireFunc(\"node-fetch\");\r\n\r\n // node-fetch doesn't have a nice API for getting and setting cookies\r\n // fetch-cookie will wrap a fetch implementation with a default CookieJar or a provided one\r\n this._fetchType = requireFunc(\"fetch-cookie\")(this._fetchType, this._jar);\r\n } else {\r\n this._fetchType = fetch.bind(getGlobalThis());\r\n }\r\n if (typeof AbortController === \"undefined\") {\r\n // In order to ignore the dynamic require in webpack builds we need to do this magic\r\n // @ts-ignore: TS doesn't know about these names\r\n const requireFunc = typeof __webpack_require__ === \"function\" ? __non_webpack_require__ : require;\r\n\r\n // Node needs EventListener methods on AbortController which our custom polyfill doesn't provide\r\n this._abortControllerType = requireFunc(\"abort-controller\");\r\n } else {\r\n this._abortControllerType = AbortController;\r\n }\r\n }\r\n\r\n /** @inheritDoc */\r\n public async send(request: HttpRequest): Promise {\r\n // Check that abort was not signaled before calling send\r\n if (request.abortSignal && request.abortSignal.aborted) {\r\n throw new AbortError();\r\n }\r\n\r\n if (!request.method) {\r\n throw new Error(\"No method defined.\");\r\n }\r\n if (!request.url) {\r\n throw new Error(\"No url defined.\");\r\n }\r\n\r\n const abortController = new this._abortControllerType();\r\n\r\n let error: any;\r\n // Hook our abortSignal into the abort controller\r\n if (request.abortSignal) {\r\n request.abortSignal.onabort = () => {\r\n abortController.abort();\r\n error = new AbortError();\r\n };\r\n }\r\n\r\n // If a timeout has been passed in, setup a timeout to call abort\r\n // Type needs to be any to fit window.setTimeout and NodeJS.setTimeout\r\n let timeoutId: any = null;\r\n if (request.timeout) {\r\n const msTimeout = request.timeout!;\r\n timeoutId = setTimeout(() => {\r\n abortController.abort();\r\n this._logger.log(LogLevel.Warning, `Timeout from HTTP request.`);\r\n error = new TimeoutError();\r\n }, msTimeout);\r\n }\r\n\r\n if (request.content === \"\") {\r\n request.content = undefined;\r\n }\r\n if (request.content) {\r\n // Explicitly setting the Content-Type header for React Native on Android platform.\r\n request.headers = request.headers || {};\r\n if (isArrayBuffer(request.content)) {\r\n request.headers[\"Content-Type\"] = \"application/octet-stream\";\r\n } else {\r\n request.headers[\"Content-Type\"] = \"text/plain;charset=UTF-8\";\r\n }\r\n }\r\n\r\n let response: Response;\r\n try {\r\n response = await this._fetchType(request.url!, {\r\n body: request.content,\r\n cache: \"no-cache\",\r\n credentials: request.withCredentials === true ? \"include\" : \"same-origin\",\r\n headers: {\r\n \"X-Requested-With\": \"XMLHttpRequest\",\r\n ...request.headers,\r\n },\r\n method: request.method!,\r\n mode: \"cors\",\r\n redirect: \"follow\",\r\n signal: abortController.signal,\r\n });\r\n } catch (e) {\r\n if (error) {\r\n throw error;\r\n }\r\n this._logger.log(\r\n LogLevel.Warning,\r\n `Error from HTTP request. ${e}.`,\r\n );\r\n throw e;\r\n } finally {\r\n if (timeoutId) {\r\n clearTimeout(timeoutId);\r\n }\r\n if (request.abortSignal) {\r\n request.abortSignal.onabort = null;\r\n }\r\n }\r\n\r\n if (!response.ok) {\r\n const errorMessage = await deserializeContent(response, \"text\") as string;\r\n throw new HttpError(errorMessage || response.statusText, response.status);\r\n }\r\n\r\n const content = deserializeContent(response, request.responseType);\r\n const payload = await content;\r\n\r\n return new HttpResponse(\r\n response.status,\r\n response.statusText,\r\n payload,\r\n );\r\n }\r\n\r\n public getCookieString(url: string): string {\r\n let cookies: string = \"\";\r\n if (Platform.isNode && this._jar) {\r\n // @ts-ignore: unused variable\r\n this._jar.getCookies(url, (e, c) => cookies = c.join(\"; \"));\r\n }\r\n return cookies;\r\n }\r\n}\r\n\r\nfunction deserializeContent(response: Response, responseType?: XMLHttpRequestResponseType): Promise {\r\n let content;\r\n switch (responseType) {\r\n case \"arraybuffer\":\r\n content = response.arrayBuffer();\r\n break;\r\n case \"text\":\r\n content = response.text();\r\n break;\r\n case \"blob\":\r\n case \"document\":\r\n case \"json\":\r\n throw new Error(`${responseType} is not supported.`);\r\n default:\r\n content = response.text();\r\n break;\r\n }\r\n\r\n return content;\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\nimport { AbortError, HttpError, TimeoutError } from \"./Errors\";\r\nimport { HttpClient, HttpRequest, HttpResponse } from \"./HttpClient\";\r\nimport { ILogger, LogLevel } from \"./ILogger\";\r\nimport { isArrayBuffer } from \"./Utils\";\r\n\r\nexport class XhrHttpClient extends HttpClient {\r\n private readonly _logger: ILogger;\r\n\r\n public constructor(logger: ILogger) {\r\n super();\r\n this._logger = logger;\r\n }\r\n\r\n /** @inheritDoc */\r\n public send(request: HttpRequest): Promise {\r\n // Check that abort was not signaled before calling send\r\n if (request.abortSignal && request.abortSignal.aborted) {\r\n return Promise.reject(new AbortError());\r\n }\r\n\r\n if (!request.method) {\r\n return Promise.reject(new Error(\"No method defined.\"));\r\n }\r\n if (!request.url) {\r\n return Promise.reject(new Error(\"No url defined.\"));\r\n }\r\n\r\n return new Promise((resolve, reject) => {\r\n const xhr = new XMLHttpRequest();\r\n\r\n xhr.open(request.method!, request.url!, true);\r\n xhr.withCredentials = request.withCredentials === undefined ? true : request.withCredentials;\r\n xhr.setRequestHeader(\"X-Requested-With\", \"XMLHttpRequest\");\r\n if (request.content === \"\") {\r\n request.content = undefined;\r\n }\r\n if (request.content) {\r\n // Explicitly setting the Content-Type header for React Native on Android platform.\r\n if (isArrayBuffer(request.content)) {\r\n xhr.setRequestHeader(\"Content-Type\", \"application/octet-stream\");\r\n } else {\r\n xhr.setRequestHeader(\"Content-Type\", \"text/plain;charset=UTF-8\");\r\n }\r\n }\r\n\r\n const headers = request.headers;\r\n if (headers) {\r\n Object.keys(headers)\r\n .forEach((header) => {\r\n xhr.setRequestHeader(header, headers[header]);\r\n });\r\n }\r\n\r\n if (request.responseType) {\r\n xhr.responseType = request.responseType;\r\n }\r\n\r\n if (request.abortSignal) {\r\n request.abortSignal.onabort = () => {\r\n xhr.abort();\r\n reject(new AbortError());\r\n };\r\n }\r\n\r\n if (request.timeout) {\r\n xhr.timeout = request.timeout;\r\n }\r\n\r\n xhr.onload = () => {\r\n if (request.abortSignal) {\r\n request.abortSignal.onabort = null;\r\n }\r\n\r\n if (xhr.status >= 200 && xhr.status < 300) {\r\n resolve(new HttpResponse(xhr.status, xhr.statusText, xhr.response || xhr.responseText));\r\n } else {\r\n reject(new HttpError(xhr.response || xhr.responseText || xhr.statusText, xhr.status));\r\n }\r\n };\r\n\r\n xhr.onerror = () => {\r\n this._logger.log(LogLevel.Warning, `Error from HTTP request. ${xhr.status}: ${xhr.statusText}.`);\r\n reject(new HttpError(xhr.statusText, xhr.status));\r\n };\r\n\r\n xhr.ontimeout = () => {\r\n this._logger.log(LogLevel.Warning, `Timeout from HTTP request.`);\r\n reject(new TimeoutError());\r\n };\r\n\r\n xhr.send(request.content);\r\n });\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\nimport { AbortError } from \"./Errors\";\r\nimport { FetchHttpClient } from \"./FetchHttpClient\";\r\nimport { HttpClient, HttpRequest, HttpResponse } from \"./HttpClient\";\r\nimport { ILogger } from \"./ILogger\";\r\nimport { Platform } from \"./Utils\";\r\nimport { XhrHttpClient } from \"./XhrHttpClient\";\r\n\r\n/** Default implementation of {@link @microsoft/signalr.HttpClient}. */\r\nexport class DefaultHttpClient extends HttpClient {\r\n private readonly _httpClient: HttpClient;\r\n\r\n /** Creates a new instance of the {@link @microsoft/signalr.DefaultHttpClient}, using the provided {@link @microsoft/signalr.ILogger} to log messages. */\r\n public constructor(logger: ILogger) {\r\n super();\r\n\r\n if (typeof fetch !== \"undefined\" || Platform.isNode) {\r\n this._httpClient = new FetchHttpClient(logger);\r\n } else if (typeof XMLHttpRequest !== \"undefined\") {\r\n this._httpClient = new XhrHttpClient(logger);\r\n } else {\r\n throw new Error(\"No usable HttpClient found.\");\r\n }\r\n }\r\n\r\n /** @inheritDoc */\r\n public send(request: HttpRequest): Promise {\r\n // Check that abort was not signaled before calling send\r\n if (request.abortSignal && request.abortSignal.aborted) {\r\n return Promise.reject(new AbortError());\r\n }\r\n\r\n if (!request.method) {\r\n return Promise.reject(new Error(\"No method defined.\"));\r\n }\r\n if (!request.url) {\r\n return Promise.reject(new Error(\"No url defined.\"));\r\n }\r\n\r\n return this._httpClient.send(request);\r\n }\r\n\r\n public getCookieString(url: string): string {\r\n return this._httpClient.getCookieString(url);\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\n// This will be treated as a bit flag in the future, so we keep it using power-of-two values.\r\n/** Specifies a specific HTTP transport type. */\r\nexport enum HttpTransportType {\r\n /** Specifies no transport preference. */\r\n None = 0,\r\n /** Specifies the WebSockets transport. */\r\n WebSockets = 1,\r\n /** Specifies the Server-Sent Events transport. */\r\n ServerSentEvents = 2,\r\n /** Specifies the Long Polling transport. */\r\n LongPolling = 4,\r\n}\r\n\r\n/** Specifies the transfer format for a connection. */\r\nexport enum TransferFormat {\r\n /** Specifies that only text data will be transmitted over the connection. */\r\n Text = 1,\r\n /** Specifies that binary data will be transmitted over the connection. */\r\n Binary = 2,\r\n}\r\n\r\n/** An abstraction over the behavior of transports. This is designed to support the framework and not intended for use by applications. */\r\nexport interface ITransport {\r\n connect(url: string, transferFormat: TransferFormat): Promise;\r\n send(data: any): Promise;\r\n stop(): Promise;\r\n onreceive: ((data: string | ArrayBuffer) => void) | null;\r\n onclose: ((error?: Error) => void) | null;\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\n// Rough polyfill of https://developer.mozilla.org/en-US/docs/Web/API/AbortController\r\n// We don't actually ever use the API being polyfilled, we always use the polyfill because\r\n// it's a very new API right now.\r\n\r\n// Not exported from index.\r\n/** @private */\r\nexport class AbortController implements AbortSignal {\r\n private _isAborted: boolean = false;\r\n public onabort: (() => void) | null = null;\r\n\r\n public abort(): void {\r\n if (!this._isAborted) {\r\n this._isAborted = true;\r\n if (this.onabort) {\r\n this.onabort();\r\n }\r\n }\r\n }\r\n\r\n get signal(): AbortSignal {\r\n return this;\r\n }\r\n\r\n get aborted(): boolean {\r\n return this._isAborted;\r\n }\r\n}\r\n\r\n/** Represents a signal that can be monitored to determine if a request has been aborted. */\r\nexport interface AbortSignal {\r\n /** Indicates if the request has been aborted. */\r\n aborted: boolean;\r\n /** Set this to a handler that will be invoked when the request is aborted. */\r\n onabort: (() => void) | null;\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\nimport { AbortController } from \"./AbortController\";\r\nimport { HttpError, TimeoutError } from \"./Errors\";\r\nimport { HttpClient, HttpRequest } from \"./HttpClient\";\r\nimport { ILogger, LogLevel } from \"./ILogger\";\r\nimport { ITransport, TransferFormat } from \"./ITransport\";\r\nimport { Arg, getDataDetail, getUserAgentHeader, sendMessage } from \"./Utils\";\r\nimport { IHttpConnectionOptions } from \"./IHttpConnectionOptions\";\r\n\r\n// Not exported from 'index', this type is internal.\r\n/** @private */\r\nexport class LongPollingTransport implements ITransport {\r\n private readonly _httpClient: HttpClient;\r\n private readonly _logger: ILogger;\r\n private readonly _options: IHttpConnectionOptions;\r\n private readonly _pollAbort: AbortController;\r\n\r\n private _url?: string;\r\n private _running: boolean;\r\n private _receiving?: Promise;\r\n private _closeError?: Error;\r\n\r\n public onreceive: ((data: string | ArrayBuffer) => void) | null;\r\n public onclose: ((error?: Error) => void) | null;\r\n\r\n // This is an internal type, not exported from 'index' so this is really just internal.\r\n public get pollAborted(): boolean {\r\n return this._pollAbort.aborted;\r\n }\r\n\r\n constructor(httpClient: HttpClient, logger: ILogger, options: IHttpConnectionOptions) {\r\n this._httpClient = httpClient;\r\n this._logger = logger;\r\n this._pollAbort = new AbortController();\r\n this._options = options;\r\n\r\n this._running = false;\r\n\r\n this.onreceive = null;\r\n this.onclose = null;\r\n }\r\n\r\n public async connect(url: string, transferFormat: TransferFormat): Promise {\r\n Arg.isRequired(url, \"url\");\r\n Arg.isRequired(transferFormat, \"transferFormat\");\r\n Arg.isIn(transferFormat, TransferFormat, \"transferFormat\");\r\n\r\n this._url = url;\r\n\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) Connecting.\");\r\n\r\n // Allow binary format on Node and Browsers that support binary content (indicated by the presence of responseType property)\r\n if (transferFormat === TransferFormat.Binary &&\r\n (typeof XMLHttpRequest !== \"undefined\" && typeof new XMLHttpRequest().responseType !== \"string\")) {\r\n throw new Error(\"Binary protocols over XmlHttpRequest not implementing advanced features are not supported.\");\r\n }\r\n\r\n const [name, value] = getUserAgentHeader();\r\n const headers = { [name]: value, ...this._options.headers };\r\n\r\n const pollOptions: HttpRequest = {\r\n abortSignal: this._pollAbort.signal,\r\n headers,\r\n timeout: 100000,\r\n withCredentials: this._options.withCredentials,\r\n };\r\n\r\n if (transferFormat === TransferFormat.Binary) {\r\n pollOptions.responseType = \"arraybuffer\";\r\n }\r\n\r\n // Make initial long polling request\r\n // Server uses first long polling request to finish initializing connection and it returns without data\r\n const pollUrl = `${url}&_=${Date.now()}`;\r\n this._logger.log(LogLevel.Trace, `(LongPolling transport) polling: ${pollUrl}.`);\r\n const response = await this._httpClient.get(pollUrl, pollOptions);\r\n if (response.statusCode !== 200) {\r\n this._logger.log(LogLevel.Error, `(LongPolling transport) Unexpected response code: ${response.statusCode}.`);\r\n\r\n // Mark running as false so that the poll immediately ends and runs the close logic\r\n this._closeError = new HttpError(response.statusText || \"\", response.statusCode);\r\n this._running = false;\r\n } else {\r\n this._running = true;\r\n }\r\n\r\n this._receiving = this._poll(this._url, pollOptions);\r\n }\r\n\r\n private async _poll(url: string, pollOptions: HttpRequest): Promise {\r\n try {\r\n while (this._running) {\r\n try {\r\n const pollUrl = `${url}&_=${Date.now()}`;\r\n this._logger.log(LogLevel.Trace, `(LongPolling transport) polling: ${pollUrl}.`);\r\n const response = await this._httpClient.get(pollUrl, pollOptions);\r\n\r\n if (response.statusCode === 204) {\r\n this._logger.log(LogLevel.Information, \"(LongPolling transport) Poll terminated by server.\");\r\n\r\n this._running = false;\r\n } else if (response.statusCode !== 200) {\r\n this._logger.log(LogLevel.Error, `(LongPolling transport) Unexpected response code: ${response.statusCode}.`);\r\n\r\n // Unexpected status code\r\n this._closeError = new HttpError(response.statusText || \"\", response.statusCode);\r\n this._running = false;\r\n } else {\r\n // Process the response\r\n if (response.content) {\r\n this._logger.log(LogLevel.Trace, `(LongPolling transport) data received. ${getDataDetail(response.content, this._options.logMessageContent!)}.`);\r\n if (this.onreceive) {\r\n this.onreceive(response.content);\r\n }\r\n } else {\r\n // This is another way timeout manifest.\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) Poll timed out, reissuing.\");\r\n }\r\n }\r\n } catch (e) {\r\n if (!this._running) {\r\n // Log but disregard errors that occur after stopping\r\n this._logger.log(LogLevel.Trace, `(LongPolling transport) Poll errored after shutdown: ${e.message}`);\r\n } else {\r\n if (e instanceof TimeoutError) {\r\n // Ignore timeouts and reissue the poll.\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) Poll timed out, reissuing.\");\r\n } else {\r\n // Close the connection with the error as the result.\r\n this._closeError = e;\r\n this._running = false;\r\n }\r\n }\r\n }\r\n }\r\n } finally {\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) Polling complete.\");\r\n\r\n // We will reach here with pollAborted==false when the server returned a response causing the transport to stop.\r\n // If pollAborted==true then client initiated the stop and the stop method will raise the close event after DELETE is sent.\r\n if (!this.pollAborted) {\r\n this._raiseOnClose();\r\n }\r\n }\r\n }\r\n\r\n public async send(data: any): Promise {\r\n if (!this._running) {\r\n return Promise.reject(new Error(\"Cannot send until the transport is connected\"));\r\n }\r\n return sendMessage(this._logger, \"LongPolling\", this._httpClient, this._url!, data, this._options);\r\n }\r\n\r\n public async stop(): Promise {\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) Stopping polling.\");\r\n\r\n // Tell receiving loop to stop, abort any current request, and then wait for it to finish\r\n this._running = false;\r\n this._pollAbort.abort();\r\n\r\n try {\r\n await this._receiving;\r\n\r\n // Send DELETE to clean up long polling on the server\r\n this._logger.log(LogLevel.Trace, `(LongPolling transport) sending DELETE request to ${this._url}.`);\r\n\r\n const headers: {[k: string]: string} = {};\r\n const [name, value] = getUserAgentHeader();\r\n headers[name] = value;\r\n\r\n const deleteOptions: HttpRequest = {\r\n headers: { ...headers, ...this._options.headers },\r\n timeout: this._options.timeout,\r\n withCredentials: this._options.withCredentials,\r\n };\r\n await this._httpClient.delete(this._url!, deleteOptions);\r\n\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) DELETE request sent.\");\r\n } finally {\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) Stop finished.\");\r\n\r\n // Raise close event here instead of in polling\r\n // It needs to happen after the DELETE request is sent\r\n this._raiseOnClose();\r\n }\r\n }\r\n\r\n private _raiseOnClose() {\r\n if (this.onclose) {\r\n let logMessage = \"(LongPolling transport) Firing onclose event.\";\r\n if (this._closeError) {\r\n logMessage += \" Error: \" + this._closeError;\r\n }\r\n this._logger.log(LogLevel.Trace, logMessage);\r\n this.onclose(this._closeError);\r\n }\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\nimport { HttpClient } from \"./HttpClient\";\r\nimport { MessageHeaders } from \"./IHubProtocol\";\r\nimport { ILogger, LogLevel } from \"./ILogger\";\r\nimport { ITransport, TransferFormat } from \"./ITransport\";\r\nimport { Arg, getDataDetail, getUserAgentHeader, Platform, sendMessage } from \"./Utils\";\r\nimport { IHttpConnectionOptions } from \"./IHttpConnectionOptions\";\r\n\r\n/** @private */\r\nexport class ServerSentEventsTransport implements ITransport {\r\n private readonly _httpClient: HttpClient;\r\n private readonly _accessToken: string | undefined;\r\n private readonly _logger: ILogger;\r\n private readonly _options: IHttpConnectionOptions;\r\n private _eventSource?: EventSource;\r\n private _url?: string;\r\n\r\n public onreceive: ((data: string | ArrayBuffer) => void) | null;\r\n public onclose: ((error?: Error) => void) | null;\r\n\r\n constructor(httpClient: HttpClient, accessToken: string | undefined, logger: ILogger,\r\n options: IHttpConnectionOptions) {\r\n this._httpClient = httpClient;\r\n this._accessToken = accessToken;\r\n this._logger = logger;\r\n this._options = options;\r\n\r\n this.onreceive = null;\r\n this.onclose = null;\r\n }\r\n\r\n public async connect(url: string, transferFormat: TransferFormat): Promise {\r\n Arg.isRequired(url, \"url\");\r\n Arg.isRequired(transferFormat, \"transferFormat\");\r\n Arg.isIn(transferFormat, TransferFormat, \"transferFormat\");\r\n\r\n this._logger.log(LogLevel.Trace, \"(SSE transport) Connecting.\");\r\n\r\n // set url before accessTokenFactory because this._url is only for send and we set the auth header instead of the query string for send\r\n this._url = url;\r\n\r\n if (this._accessToken) {\r\n url += (url.indexOf(\"?\") < 0 ? \"?\" : \"&\") + `access_token=${encodeURIComponent(this._accessToken)}`;\r\n }\r\n\r\n return new Promise((resolve, reject) => {\r\n let opened = false;\r\n if (transferFormat !== TransferFormat.Text) {\r\n reject(new Error(\"The Server-Sent Events transport only supports the 'Text' transfer format\"));\r\n return;\r\n }\r\n\r\n let eventSource: EventSource;\r\n if (Platform.isBrowser || Platform.isWebWorker) {\r\n eventSource = new this._options.EventSource!(url, { withCredentials: this._options.withCredentials });\r\n } else {\r\n // Non-browser passes cookies via the dictionary\r\n const cookies = this._httpClient.getCookieString(url);\r\n const headers: MessageHeaders = {};\r\n headers.Cookie = cookies;\r\n const [name, value] = getUserAgentHeader();\r\n headers[name] = value;\r\n\r\n eventSource = new this._options.EventSource!(url, { withCredentials: this._options.withCredentials, headers: { ...headers, ...this._options.headers} } as EventSourceInit);\r\n }\r\n\r\n try {\r\n eventSource.onmessage = (e: MessageEvent) => {\r\n if (this.onreceive) {\r\n try {\r\n this._logger.log(LogLevel.Trace, `(SSE transport) data received. ${getDataDetail(e.data, this._options.logMessageContent!)}.`);\r\n this.onreceive(e.data);\r\n } catch (error) {\r\n this._close(error);\r\n return;\r\n }\r\n }\r\n };\r\n\r\n // @ts-ignore: not using event on purpose\r\n eventSource.onerror = (e: Event) => {\r\n // EventSource doesn't give any useful information about server side closes.\r\n if (opened) {\r\n this._close();\r\n } else {\r\n reject(new Error(\"EventSource failed to connect. The connection could not be found on the server,\"\r\n + \" either the connection ID is not present on the server, or a proxy is refusing/buffering the connection.\"\r\n + \" If you have multiple servers check that sticky sessions are enabled.\"));\r\n }\r\n };\r\n\r\n eventSource.onopen = () => {\r\n this._logger.log(LogLevel.Information, `SSE connected to ${this._url}`);\r\n this._eventSource = eventSource;\r\n opened = true;\r\n resolve();\r\n };\r\n } catch (e) {\r\n reject(e);\r\n return;\r\n }\r\n });\r\n }\r\n\r\n public async send(data: any): Promise {\r\n if (!this._eventSource) {\r\n return Promise.reject(new Error(\"Cannot send until the transport is connected\"));\r\n }\r\n return sendMessage(this._logger, \"SSE\", this._httpClient, this._url!, data, this._options);\r\n }\r\n\r\n public stop(): Promise {\r\n this._close();\r\n return Promise.resolve();\r\n }\r\n\r\n private _close(e?: Error) {\r\n if (this._eventSource) {\r\n this._eventSource.close();\r\n this._eventSource = undefined;\r\n\r\n if (this.onclose) {\r\n this.onclose(e);\r\n }\r\n }\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\nimport { HeaderNames } from \"./HeaderNames\";\r\nimport { HttpClient } from \"./HttpClient\";\r\nimport { MessageHeaders } from \"./IHubProtocol\";\r\nimport { ILogger, LogLevel } from \"./ILogger\";\r\nimport { ITransport, TransferFormat } from \"./ITransport\";\r\nimport { WebSocketConstructor } from \"./Polyfills\";\r\nimport { Arg, getDataDetail, getUserAgentHeader, Platform } from \"./Utils\";\r\n\r\n/** @private */\r\nexport class WebSocketTransport implements ITransport {\r\n private readonly _logger: ILogger;\r\n private readonly _accessTokenFactory: (() => string | Promise) | undefined;\r\n private readonly _logMessageContent: boolean;\r\n private readonly _webSocketConstructor: WebSocketConstructor;\r\n private readonly _httpClient: HttpClient;\r\n private _webSocket?: WebSocket;\r\n private _headers: MessageHeaders;\r\n\r\n public onreceive: ((data: string | ArrayBuffer) => void) | null;\r\n public onclose: ((error?: Error) => void) | null;\r\n\r\n constructor(httpClient: HttpClient, accessTokenFactory: (() => string | Promise) | undefined, logger: ILogger,\r\n logMessageContent: boolean, webSocketConstructor: WebSocketConstructor, headers: MessageHeaders) {\r\n this._logger = logger;\r\n this._accessTokenFactory = accessTokenFactory;\r\n this._logMessageContent = logMessageContent;\r\n this._webSocketConstructor = webSocketConstructor;\r\n this._httpClient = httpClient;\r\n\r\n this.onreceive = null;\r\n this.onclose = null;\r\n this._headers = headers;\r\n }\r\n\r\n public async connect(url: string, transferFormat: TransferFormat): Promise {\r\n Arg.isRequired(url, \"url\");\r\n Arg.isRequired(transferFormat, \"transferFormat\");\r\n Arg.isIn(transferFormat, TransferFormat, \"transferFormat\");\r\n this._logger.log(LogLevel.Trace, \"(WebSockets transport) Connecting.\");\r\n\r\n let token: string;\r\n if (this._accessTokenFactory) {\r\n token = await this._accessTokenFactory();\r\n }\r\n\r\n return new Promise((resolve, reject) => {\r\n url = url.replace(/^http/, \"ws\");\r\n let webSocket: WebSocket | undefined;\r\n const cookies = this._httpClient.getCookieString(url);\r\n let opened = false;\r\n\r\n if (Platform.isNode || Platform.isReactNative) {\r\n const headers: {[k: string]: string} = {};\r\n const [name, value] = getUserAgentHeader();\r\n headers[name] = value;\r\n if (token) {\r\n headers[HeaderNames.Authorization] = `Bearer ${token}`;\r\n }\r\n\r\n if (cookies) {\r\n headers[HeaderNames.Cookie] = cookies;\r\n }\r\n\r\n // Only pass headers when in non-browser environments\r\n webSocket = new this._webSocketConstructor(url, undefined, {\r\n headers: { ...headers, ...this._headers },\r\n });\r\n }\r\n else\r\n {\r\n if (token) {\r\n url += (url.indexOf(\"?\") < 0 ? \"?\" : \"&\") + `access_token=${encodeURIComponent(token)}`;\r\n }\r\n }\r\n\r\n if (!webSocket) {\r\n // Chrome is not happy with passing 'undefined' as protocol\r\n webSocket = new this._webSocketConstructor(url);\r\n }\r\n\r\n if (transferFormat === TransferFormat.Binary) {\r\n webSocket.binaryType = \"arraybuffer\";\r\n }\r\n\r\n webSocket.onopen = (_event: Event) => {\r\n this._logger.log(LogLevel.Information, `WebSocket connected to ${url}.`);\r\n this._webSocket = webSocket;\r\n opened = true;\r\n resolve();\r\n };\r\n\r\n webSocket.onerror = (event: Event) => {\r\n let error: any = null;\r\n // ErrorEvent is a browser only type we need to check if the type exists before using it\r\n if (typeof ErrorEvent !== \"undefined\" && event instanceof ErrorEvent) {\r\n error = event.error;\r\n } else {\r\n error = \"There was an error with the transport\";\r\n }\r\n\r\n this._logger.log(LogLevel.Information, `(WebSockets transport) ${error}.`);\r\n };\r\n\r\n webSocket.onmessage = (message: MessageEvent) => {\r\n this._logger.log(LogLevel.Trace, `(WebSockets transport) data received. ${getDataDetail(message.data, this._logMessageContent)}.`);\r\n if (this.onreceive) {\r\n try {\r\n this.onreceive(message.data);\r\n } catch (error) {\r\n this._close(error);\r\n return;\r\n }\r\n }\r\n };\r\n\r\n webSocket.onclose = (event: CloseEvent) => {\r\n // Don't call close handler if connection was never established\r\n // We'll reject the connect call instead\r\n if (opened) {\r\n this._close(event);\r\n } else {\r\n let error: any = null;\r\n // ErrorEvent is a browser only type we need to check if the type exists before using it\r\n if (typeof ErrorEvent !== \"undefined\" && event instanceof ErrorEvent) {\r\n error = event.error;\r\n } else {\r\n error = \"WebSocket failed to connect. The connection could not be found on the server,\"\r\n + \" either the endpoint may not be a SignalR endpoint,\"\r\n + \" the connection ID is not present on the server, or there is a proxy blocking WebSockets.\"\r\n + \" If you have multiple servers check that sticky sessions are enabled.\";\r\n }\r\n\r\n reject(new Error(error));\r\n }\r\n };\r\n });\r\n }\r\n\r\n public send(data: any): Promise {\r\n if (this._webSocket && this._webSocket.readyState === this._webSocketConstructor.OPEN) {\r\n this._logger.log(LogLevel.Trace, `(WebSockets transport) sending data. ${getDataDetail(data, this._logMessageContent)}.`);\r\n this._webSocket.send(data);\r\n return Promise.resolve();\r\n }\r\n\r\n return Promise.reject(\"WebSocket is not in the OPEN state\");\r\n }\r\n\r\n public stop(): Promise {\r\n if (this._webSocket) {\r\n // Manually invoke onclose callback inline so we know the HttpConnection was closed properly before returning\r\n // This also solves an issue where websocket.onclose could take 18+ seconds to trigger during network disconnects\r\n this._close(undefined);\r\n }\r\n\r\n return Promise.resolve();\r\n }\r\n\r\n private _close(event?: CloseEvent | Error): void {\r\n // webSocket will be null if the transport did not start successfully\r\n if (this._webSocket) {\r\n // Clear websocket handlers because we are considering the socket closed now\r\n this._webSocket.onclose = () => {};\r\n this._webSocket.onmessage = () => {};\r\n this._webSocket.onerror = () => {};\r\n this._webSocket.close();\r\n this._webSocket = undefined;\r\n }\r\n\r\n this._logger.log(LogLevel.Trace, \"(WebSockets transport) socket closed.\");\r\n if (this.onclose) {\r\n if (this._isCloseEvent(event) && (event.wasClean === false || event.code !== 1000)) {\r\n this.onclose(new Error(`WebSocket closed with status code: ${event.code} (${event.reason || \"no reason given\"}).`));\r\n } else if (event instanceof Error) {\r\n this.onclose(event);\r\n } else {\r\n this.onclose();\r\n }\r\n }\r\n }\r\n\r\n private _isCloseEvent(event?: any): event is CloseEvent {\r\n return event && typeof event.wasClean === \"boolean\" && typeof event.code === \"number\";\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\nimport { AccessTokenHttpClient } from \"./AccessTokenHttpClient\";\r\nimport { DefaultHttpClient } from \"./DefaultHttpClient\";\r\nimport { AggregateErrors, DisabledTransportError, FailedToNegotiateWithServerError, FailedToStartTransportError, HttpError, UnsupportedTransportError, AbortError } from \"./Errors\";\r\nimport { IConnection } from \"./IConnection\";\r\nimport { IHttpConnectionOptions } from \"./IHttpConnectionOptions\";\r\nimport { ILogger, LogLevel } from \"./ILogger\";\r\nimport { HttpTransportType, ITransport, TransferFormat } from \"./ITransport\";\r\nimport { LongPollingTransport } from \"./LongPollingTransport\";\r\nimport { ServerSentEventsTransport } from \"./ServerSentEventsTransport\";\r\nimport { Arg, createLogger, getUserAgentHeader, Platform } from \"./Utils\";\r\nimport { WebSocketTransport } from \"./WebSocketTransport\";\r\n\r\n/** @private */\r\nconst enum ConnectionState {\r\n Connecting = \"Connecting\",\r\n Connected = \"Connected\",\r\n Disconnected = \"Disconnected\",\r\n Disconnecting = \"Disconnecting\",\r\n}\r\n\r\n/** @private */\r\nexport interface INegotiateResponse {\r\n connectionId?: string;\r\n connectionToken?: string;\r\n negotiateVersion?: number;\r\n availableTransports?: IAvailableTransport[];\r\n url?: string;\r\n accessToken?: string;\r\n error?: string;\r\n}\r\n\r\n/** @private */\r\nexport interface IAvailableTransport {\r\n transport: keyof typeof HttpTransportType;\r\n transferFormats: (keyof typeof TransferFormat)[];\r\n}\r\n\r\nconst MAX_REDIRECTS = 100;\r\n\r\n/** @private */\r\nexport class HttpConnection implements IConnection {\r\n private _connectionState: ConnectionState;\r\n // connectionStarted is tracked independently from connectionState, so we can check if the\r\n // connection ever did successfully transition from connecting to connected before disconnecting.\r\n private _connectionStarted: boolean;\r\n private readonly _httpClient: AccessTokenHttpClient;\r\n private readonly _logger: ILogger;\r\n private readonly _options: IHttpConnectionOptions;\r\n // Needs to not start with _ to be available for tests\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n private transport?: ITransport;\r\n private _startInternalPromise?: Promise;\r\n private _stopPromise?: Promise;\r\n private _stopPromiseResolver: (value?: PromiseLike) => void = () => {};\r\n private _stopError?: Error;\r\n private _accessTokenFactory?: () => string | Promise;\r\n private _sendQueue?: TransportSendQueue;\r\n\r\n public readonly features: any = {};\r\n public baseUrl: string;\r\n public connectionId?: string;\r\n public onreceive: ((data: string | ArrayBuffer) => void) | null;\r\n public onclose: ((e?: Error) => void) | null;\r\n\r\n private readonly _negotiateVersion: number = 1;\r\n\r\n constructor(url: string, options: IHttpConnectionOptions = {}) {\r\n Arg.isRequired(url, \"url\");\r\n\r\n this._logger = createLogger(options.logger);\r\n this.baseUrl = this._resolveUrl(url);\r\n\r\n options = options || {};\r\n options.logMessageContent = options.logMessageContent === undefined ? false : options.logMessageContent;\r\n if (typeof options.withCredentials === \"boolean\" || options.withCredentials === undefined) {\r\n options.withCredentials = options.withCredentials === undefined ? true : options.withCredentials;\r\n } else {\r\n throw new Error(\"withCredentials option was not a 'boolean' or 'undefined' value\");\r\n }\r\n options.timeout = options.timeout === undefined ? 100 * 1000 : options.timeout;\r\n\r\n let webSocketModule: any = null;\r\n let eventSourceModule: any = null;\r\n\r\n if (Platform.isNode && typeof require !== \"undefined\") {\r\n // In order to ignore the dynamic require in webpack builds we need to do this magic\r\n // @ts-ignore: TS doesn't know about these names\r\n const requireFunc = typeof __webpack_require__ === \"function\" ? __non_webpack_require__ : require;\r\n webSocketModule = requireFunc(\"ws\");\r\n eventSourceModule = requireFunc(\"eventsource\");\r\n }\r\n\r\n if (!Platform.isNode && typeof WebSocket !== \"undefined\" && !options.WebSocket) {\r\n options.WebSocket = WebSocket;\r\n } else if (Platform.isNode && !options.WebSocket) {\r\n if (webSocketModule) {\r\n options.WebSocket = webSocketModule;\r\n }\r\n }\r\n\r\n if (!Platform.isNode && typeof EventSource !== \"undefined\" && !options.EventSource) {\r\n options.EventSource = EventSource;\r\n } else if (Platform.isNode && !options.EventSource) {\r\n if (typeof eventSourceModule !== \"undefined\") {\r\n options.EventSource = eventSourceModule;\r\n }\r\n }\r\n\r\n this._httpClient = new AccessTokenHttpClient(options.httpClient || new DefaultHttpClient(this._logger), options.accessTokenFactory);\r\n this._connectionState = ConnectionState.Disconnected;\r\n this._connectionStarted = false;\r\n this._options = options;\r\n\r\n this.onreceive = null;\r\n this.onclose = null;\r\n }\r\n\r\n public start(): Promise;\r\n public start(transferFormat: TransferFormat): Promise;\r\n public async start(transferFormat?: TransferFormat): Promise {\r\n transferFormat = transferFormat || TransferFormat.Binary;\r\n\r\n Arg.isIn(transferFormat, TransferFormat, \"transferFormat\");\r\n\r\n this._logger.log(LogLevel.Debug, `Starting connection with transfer format '${TransferFormat[transferFormat]}'.`);\r\n\r\n if (this._connectionState !== ConnectionState.Disconnected) {\r\n return Promise.reject(new Error(\"Cannot start an HttpConnection that is not in the 'Disconnected' state.\"));\r\n }\r\n\r\n this._connectionState = ConnectionState.Connecting;\r\n\r\n this._startInternalPromise = this._startInternal(transferFormat);\r\n await this._startInternalPromise;\r\n\r\n // The TypeScript compiler thinks that connectionState must be Connecting here. The TypeScript compiler is wrong.\r\n if (this._connectionState as any === ConnectionState.Disconnecting) {\r\n // stop() was called and transitioned the client into the Disconnecting state.\r\n const message = \"Failed to start the HttpConnection before stop() was called.\";\r\n this._logger.log(LogLevel.Error, message);\r\n\r\n // We cannot await stopPromise inside startInternal since stopInternal awaits the startInternalPromise.\r\n await this._stopPromise;\r\n\r\n return Promise.reject(new AbortError(message));\r\n } else if (this._connectionState as any !== ConnectionState.Connected) {\r\n // stop() was called and transitioned the client into the Disconnecting state.\r\n const message = \"HttpConnection.startInternal completed gracefully but didn't enter the connection into the connected state!\";\r\n this._logger.log(LogLevel.Error, message);\r\n return Promise.reject(new AbortError(message));\r\n }\r\n\r\n this._connectionStarted = true;\r\n }\r\n\r\n public send(data: string | ArrayBuffer): Promise {\r\n if (this._connectionState !== ConnectionState.Connected) {\r\n return Promise.reject(new Error(\"Cannot send data if the connection is not in the 'Connected' State.\"));\r\n }\r\n\r\n if (!this._sendQueue) {\r\n this._sendQueue = new TransportSendQueue(this.transport!);\r\n }\r\n\r\n // Transport will not be null if state is connected\r\n return this._sendQueue.send(data);\r\n }\r\n\r\n public async stop(error?: Error): Promise {\r\n if (this._connectionState === ConnectionState.Disconnected) {\r\n this._logger.log(LogLevel.Debug, `Call to HttpConnection.stop(${error}) ignored because the connection is already in the disconnected state.`);\r\n return Promise.resolve();\r\n }\r\n\r\n if (this._connectionState === ConnectionState.Disconnecting) {\r\n this._logger.log(LogLevel.Debug, `Call to HttpConnection.stop(${error}) ignored because the connection is already in the disconnecting state.`);\r\n return this._stopPromise;\r\n }\r\n\r\n this._connectionState = ConnectionState.Disconnecting;\r\n\r\n this._stopPromise = new Promise((resolve) => {\r\n // Don't complete stop() until stopConnection() completes.\r\n this._stopPromiseResolver = resolve;\r\n });\r\n\r\n // stopInternal should never throw so just observe it.\r\n await this._stopInternal(error);\r\n await this._stopPromise;\r\n }\r\n\r\n private async _stopInternal(error?: Error): Promise {\r\n // Set error as soon as possible otherwise there is a race between\r\n // the transport closing and providing an error and the error from a close message\r\n // We would prefer the close message error.\r\n this._stopError = error;\r\n\r\n try {\r\n await this._startInternalPromise;\r\n } catch (e) {\r\n // This exception is returned to the user as a rejected Promise from the start method.\r\n }\r\n\r\n // The transport's onclose will trigger stopConnection which will run our onclose event.\r\n // The transport should always be set if currently connected. If it wasn't set, it's likely because\r\n // stop was called during start() and start() failed.\r\n if (this.transport) {\r\n try {\r\n await this.transport.stop();\r\n } catch (e) {\r\n this._logger.log(LogLevel.Error, `HttpConnection.transport.stop() threw error '${e}'.`);\r\n this._stopConnection();\r\n }\r\n\r\n this.transport = undefined;\r\n } else {\r\n this._logger.log(LogLevel.Debug, \"HttpConnection.transport is undefined in HttpConnection.stop() because start() failed.\");\r\n }\r\n }\r\n\r\n private async _startInternal(transferFormat: TransferFormat): Promise {\r\n // Store the original base url and the access token factory since they may change\r\n // as part of negotiating\r\n let url = this.baseUrl;\r\n this._accessTokenFactory = this._options.accessTokenFactory;\r\n this._httpClient._accessTokenFactory = this._accessTokenFactory;\r\n\r\n try {\r\n if (this._options.skipNegotiation) {\r\n if (this._options.transport === HttpTransportType.WebSockets) {\r\n // No need to add a connection ID in this case\r\n this.transport = this._constructTransport(HttpTransportType.WebSockets);\r\n // We should just call connect directly in this case.\r\n // No fallback or negotiate in this case.\r\n await this._startTransport(url, transferFormat);\r\n } else {\r\n throw new Error(\"Negotiation can only be skipped when using the WebSocket transport directly.\");\r\n }\r\n } else {\r\n let negotiateResponse: INegotiateResponse | null = null;\r\n let redirects = 0;\r\n\r\n do {\r\n negotiateResponse = await this._getNegotiationResponse(url);\r\n // the user tries to stop the connection when it is being started\r\n if (this._connectionState === ConnectionState.Disconnecting || this._connectionState === ConnectionState.Disconnected) {\r\n throw new AbortError(\"The connection was stopped during negotiation.\");\r\n }\r\n\r\n if (negotiateResponse.error) {\r\n throw new Error(negotiateResponse.error);\r\n }\r\n\r\n if ((negotiateResponse as any).ProtocolVersion) {\r\n throw new Error(\"Detected a connection attempt to an ASP.NET SignalR Server. This client only supports connecting to an ASP.NET Core SignalR Server. See https://aka.ms/signalr-core-differences for details.\");\r\n }\r\n\r\n if (negotiateResponse.url) {\r\n url = negotiateResponse.url;\r\n }\r\n\r\n if (negotiateResponse.accessToken) {\r\n // Replace the current access token factory with one that uses\r\n // the returned access token\r\n const accessToken = negotiateResponse.accessToken;\r\n this._accessTokenFactory = () => accessToken;\r\n // set the factory to undefined so the AccessTokenHttpClient won't retry with the same token, since we know it won't change until a connection restart\r\n this._httpClient._accessToken = accessToken;\r\n this._httpClient._accessTokenFactory = undefined;\r\n }\r\n\r\n redirects++;\r\n }\r\n while (negotiateResponse.url && redirects < MAX_REDIRECTS);\r\n\r\n if (redirects === MAX_REDIRECTS && negotiateResponse.url) {\r\n throw new Error(\"Negotiate redirection limit exceeded.\");\r\n }\r\n\r\n await this._createTransport(url, this._options.transport, negotiateResponse, transferFormat);\r\n }\r\n\r\n if (this.transport instanceof LongPollingTransport) {\r\n this.features.inherentKeepAlive = true;\r\n }\r\n\r\n if (this._connectionState === ConnectionState.Connecting) {\r\n // Ensure the connection transitions to the connected state prior to completing this.startInternalPromise.\r\n // start() will handle the case when stop was called and startInternal exits still in the disconnecting state.\r\n this._logger.log(LogLevel.Debug, \"The HttpConnection connected successfully.\");\r\n this._connectionState = ConnectionState.Connected;\r\n }\r\n\r\n // stop() is waiting on us via this.startInternalPromise so keep this.transport around so it can clean up.\r\n // This is the only case startInternal can exit in neither the connected nor disconnected state because stopConnection()\r\n // will transition to the disconnected state. start() will wait for the transition using the stopPromise.\r\n } catch (e) {\r\n this._logger.log(LogLevel.Error, \"Failed to start the connection: \" + e);\r\n this._connectionState = ConnectionState.Disconnected;\r\n this.transport = undefined;\r\n\r\n // if start fails, any active calls to stop assume that start will complete the stop promise\r\n this._stopPromiseResolver();\r\n return Promise.reject(e);\r\n }\r\n }\r\n\r\n private async _getNegotiationResponse(url: string): Promise {\r\n const headers: {[k: string]: string} = {};\r\n const [name, value] = getUserAgentHeader();\r\n headers[name] = value;\r\n\r\n const negotiateUrl = this._resolveNegotiateUrl(url);\r\n this._logger.log(LogLevel.Debug, `Sending negotiation request: ${negotiateUrl}.`);\r\n try {\r\n const response = await this._httpClient.post(negotiateUrl, {\r\n content: \"\",\r\n headers: { ...headers, ...this._options.headers },\r\n timeout: this._options.timeout,\r\n withCredentials: this._options.withCredentials,\r\n });\r\n\r\n if (response.statusCode !== 200) {\r\n return Promise.reject(new Error(`Unexpected status code returned from negotiate '${response.statusCode}'`));\r\n }\r\n\r\n const negotiateResponse = JSON.parse(response.content as string) as INegotiateResponse;\r\n if (!negotiateResponse.negotiateVersion || negotiateResponse.negotiateVersion < 1) {\r\n // Negotiate version 0 doesn't use connectionToken\r\n // So we set it equal to connectionId so all our logic can use connectionToken without being aware of the negotiate version\r\n negotiateResponse.connectionToken = negotiateResponse.connectionId;\r\n }\r\n return negotiateResponse;\r\n } catch (e) {\r\n let errorMessage = \"Failed to complete negotiation with the server: \" + e;\r\n if (e instanceof HttpError) {\r\n if (e.statusCode === 404) {\r\n errorMessage = errorMessage + \" Either this is not a SignalR endpoint or there is a proxy blocking the connection.\";\r\n }\r\n }\r\n this._logger.log(LogLevel.Error, errorMessage);\r\n\r\n return Promise.reject(new FailedToNegotiateWithServerError(errorMessage));\r\n }\r\n }\r\n\r\n private _createConnectUrl(url: string, connectionToken: string | null | undefined) {\r\n if (!connectionToken) {\r\n return url;\r\n }\r\n\r\n return url + (url.indexOf(\"?\") === -1 ? \"?\" : \"&\") + `id=${connectionToken}`;\r\n }\r\n\r\n private async _createTransport(url: string, requestedTransport: HttpTransportType | ITransport | undefined, negotiateResponse: INegotiateResponse, requestedTransferFormat: TransferFormat): Promise {\r\n let connectUrl = this._createConnectUrl(url, negotiateResponse.connectionToken);\r\n if (this._isITransport(requestedTransport)) {\r\n this._logger.log(LogLevel.Debug, \"Connection was provided an instance of ITransport, using that directly.\");\r\n this.transport = requestedTransport;\r\n await this._startTransport(connectUrl, requestedTransferFormat);\r\n\r\n this.connectionId = negotiateResponse.connectionId;\r\n return;\r\n }\r\n\r\n const transportExceptions: any[] = [];\r\n const transports = negotiateResponse.availableTransports || [];\r\n let negotiate: INegotiateResponse | undefined = negotiateResponse;\r\n for (const endpoint of transports) {\r\n const transportOrError = this._resolveTransportOrError(endpoint, requestedTransport, requestedTransferFormat);\r\n if (transportOrError instanceof Error) {\r\n // Store the error and continue, we don't want to cause a re-negotiate in these cases\r\n transportExceptions.push(`${endpoint.transport} failed:`);\r\n transportExceptions.push(transportOrError);\r\n } else if (this._isITransport(transportOrError)) {\r\n this.transport = transportOrError;\r\n if (!negotiate) {\r\n try {\r\n negotiate = await this._getNegotiationResponse(url);\r\n } catch (ex) {\r\n return Promise.reject(ex);\r\n }\r\n connectUrl = this._createConnectUrl(url, negotiate.connectionToken);\r\n }\r\n try {\r\n await this._startTransport(connectUrl, requestedTransferFormat);\r\n this.connectionId = negotiate.connectionId;\r\n return;\r\n } catch (ex) {\r\n this._logger.log(LogLevel.Error, `Failed to start the transport '${endpoint.transport}': ${ex}`);\r\n negotiate = undefined;\r\n transportExceptions.push(new FailedToStartTransportError(`${endpoint.transport} failed: ${ex}`, HttpTransportType[endpoint.transport]));\r\n\r\n if (this._connectionState !== ConnectionState.Connecting) {\r\n const message = \"Failed to select transport before stop() was called.\";\r\n this._logger.log(LogLevel.Debug, message);\r\n return Promise.reject(new AbortError(message));\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (transportExceptions.length > 0) {\r\n return Promise.reject(new AggregateErrors(`Unable to connect to the server with any of the available transports. ${transportExceptions.join(\" \")}`, transportExceptions));\r\n }\r\n return Promise.reject(new Error(\"None of the transports supported by the client are supported by the server.\"));\r\n }\r\n\r\n private _constructTransport(transport: HttpTransportType): ITransport {\r\n switch (transport) {\r\n case HttpTransportType.WebSockets:\r\n if (!this._options.WebSocket) {\r\n throw new Error(\"'WebSocket' is not supported in your environment.\");\r\n }\r\n return new WebSocketTransport(this._httpClient, this._accessTokenFactory, this._logger, this._options.logMessageContent!, this._options.WebSocket, this._options.headers || {});\r\n case HttpTransportType.ServerSentEvents:\r\n if (!this._options.EventSource) {\r\n throw new Error(\"'EventSource' is not supported in your environment.\");\r\n }\r\n return new ServerSentEventsTransport(this._httpClient, this._httpClient._accessToken, this._logger, this._options);\r\n case HttpTransportType.LongPolling:\r\n return new LongPollingTransport(this._httpClient, this._logger, this._options);\r\n default:\r\n throw new Error(`Unknown transport: ${transport}.`);\r\n }\r\n }\r\n\r\n private _startTransport(url: string, transferFormat: TransferFormat): Promise {\r\n this.transport!.onreceive = this.onreceive;\r\n this.transport!.onclose = (e) => this._stopConnection(e);\r\n return this.transport!.connect(url, transferFormat);\r\n }\r\n\r\n private _resolveTransportOrError(endpoint: IAvailableTransport, requestedTransport: HttpTransportType | undefined, requestedTransferFormat: TransferFormat): ITransport | Error {\r\n const transport = HttpTransportType[endpoint.transport];\r\n if (transport === null || transport === undefined) {\r\n this._logger.log(LogLevel.Debug, `Skipping transport '${endpoint.transport}' because it is not supported by this client.`);\r\n return new Error(`Skipping transport '${endpoint.transport}' because it is not supported by this client.`);\r\n } else {\r\n if (transportMatches(requestedTransport, transport)) {\r\n const transferFormats = endpoint.transferFormats.map((s) => TransferFormat[s]);\r\n if (transferFormats.indexOf(requestedTransferFormat) >= 0) {\r\n if ((transport === HttpTransportType.WebSockets && !this._options.WebSocket) ||\r\n (transport === HttpTransportType.ServerSentEvents && !this._options.EventSource)) {\r\n this._logger.log(LogLevel.Debug, `Skipping transport '${HttpTransportType[transport]}' because it is not supported in your environment.'`);\r\n return new UnsupportedTransportError(`'${HttpTransportType[transport]}' is not supported in your environment.`, transport);\r\n } else {\r\n this._logger.log(LogLevel.Debug, `Selecting transport '${HttpTransportType[transport]}'.`);\r\n try {\r\n return this._constructTransport(transport);\r\n } catch (ex) {\r\n return ex;\r\n }\r\n }\r\n } else {\r\n this._logger.log(LogLevel.Debug, `Skipping transport '${HttpTransportType[transport]}' because it does not support the requested transfer format '${TransferFormat[requestedTransferFormat]}'.`);\r\n return new Error(`'${HttpTransportType[transport]}' does not support ${TransferFormat[requestedTransferFormat]}.`);\r\n }\r\n } else {\r\n this._logger.log(LogLevel.Debug, `Skipping transport '${HttpTransportType[transport]}' because it was disabled by the client.`);\r\n return new DisabledTransportError(`'${HttpTransportType[transport]}' is disabled by the client.`, transport);\r\n }\r\n }\r\n }\r\n\r\n private _isITransport(transport: any): transport is ITransport {\r\n return transport && typeof (transport) === \"object\" && \"connect\" in transport;\r\n }\r\n\r\n private _stopConnection(error?: Error): void {\r\n this._logger.log(LogLevel.Debug, `HttpConnection.stopConnection(${error}) called while in state ${this._connectionState}.`);\r\n\r\n this.transport = undefined;\r\n\r\n // If we have a stopError, it takes precedence over the error from the transport\r\n error = this._stopError || error;\r\n this._stopError = undefined;\r\n\r\n if (this._connectionState === ConnectionState.Disconnected) {\r\n this._logger.log(LogLevel.Debug, `Call to HttpConnection.stopConnection(${error}) was ignored because the connection is already in the disconnected state.`);\r\n return;\r\n }\r\n\r\n if (this._connectionState === ConnectionState.Connecting) {\r\n this._logger.log(LogLevel.Warning, `Call to HttpConnection.stopConnection(${error}) was ignored because the connection is still in the connecting state.`);\r\n throw new Error(`HttpConnection.stopConnection(${error}) was called while the connection is still in the connecting state.`);\r\n }\r\n\r\n if (this._connectionState === ConnectionState.Disconnecting) {\r\n // A call to stop() induced this call to stopConnection and needs to be completed.\r\n // Any stop() awaiters will be scheduled to continue after the onclose callback fires.\r\n this._stopPromiseResolver();\r\n }\r\n\r\n if (error) {\r\n this._logger.log(LogLevel.Error, `Connection disconnected with error '${error}'.`);\r\n } else {\r\n this._logger.log(LogLevel.Information, \"Connection disconnected.\");\r\n }\r\n\r\n if (this._sendQueue) {\r\n this._sendQueue.stop().catch((e) => {\r\n this._logger.log(LogLevel.Error, `TransportSendQueue.stop() threw error '${e}'.`);\r\n });\r\n this._sendQueue = undefined;\r\n }\r\n\r\n this.connectionId = undefined;\r\n this._connectionState = ConnectionState.Disconnected;\r\n\r\n if (this._connectionStarted) {\r\n this._connectionStarted = false;\r\n try {\r\n if (this.onclose) {\r\n this.onclose(error);\r\n }\r\n } catch (e) {\r\n this._logger.log(LogLevel.Error, `HttpConnection.onclose(${error}) threw error '${e}'.`);\r\n }\r\n }\r\n }\r\n\r\n private _resolveUrl(url: string): string {\r\n // startsWith is not supported in IE\r\n if (url.lastIndexOf(\"https://\", 0) === 0 || url.lastIndexOf(\"http://\", 0) === 0) {\r\n return url;\r\n }\r\n\r\n if (!Platform.isBrowser) {\r\n throw new Error(`Cannot resolve '${url}'.`);\r\n }\r\n\r\n // Setting the url to the href propery of an anchor tag handles normalization\r\n // for us. There are 3 main cases.\r\n // 1. Relative path normalization e.g \"b\" -> \"http://localhost:5000/a/b\"\r\n // 2. Absolute path normalization e.g \"/a/b\" -> \"http://localhost:5000/a/b\"\r\n // 3. Networkpath reference normalization e.g \"//localhost:5000/a/b\" -> \"http://localhost:5000/a/b\"\r\n const aTag = window.document.createElement(\"a\");\r\n aTag.href = url;\r\n\r\n this._logger.log(LogLevel.Information, `Normalizing '${url}' to '${aTag.href}'.`);\r\n return aTag.href;\r\n }\r\n\r\n private _resolveNegotiateUrl(url: string): string {\r\n const index = url.indexOf(\"?\");\r\n let negotiateUrl = url.substring(0, index === -1 ? url.length : index);\r\n if (negotiateUrl[negotiateUrl.length - 1] !== \"/\") {\r\n negotiateUrl += \"/\";\r\n }\r\n negotiateUrl += \"negotiate\";\r\n negotiateUrl += index === -1 ? \"\" : url.substring(index);\r\n\r\n if (negotiateUrl.indexOf(\"negotiateVersion\") === -1) {\r\n negotiateUrl += index === -1 ? \"?\" : \"&\";\r\n negotiateUrl += \"negotiateVersion=\" + this._negotiateVersion;\r\n }\r\n return negotiateUrl;\r\n }\r\n}\r\n\r\nfunction transportMatches(requestedTransport: HttpTransportType | undefined, actualTransport: HttpTransportType) {\r\n return !requestedTransport || ((actualTransport & requestedTransport) !== 0);\r\n}\r\n\r\n/** @private */\r\nexport class TransportSendQueue {\r\n private _buffer: any[] = [];\r\n private _sendBufferedData: PromiseSource;\r\n private _executing: boolean = true;\r\n private _transportResult?: PromiseSource;\r\n private _sendLoopPromise: Promise;\r\n\r\n constructor(private readonly _transport: ITransport) {\r\n this._sendBufferedData = new PromiseSource();\r\n this._transportResult = new PromiseSource();\r\n\r\n this._sendLoopPromise = this._sendLoop();\r\n }\r\n\r\n public send(data: string | ArrayBuffer): Promise {\r\n this._bufferData(data);\r\n if (!this._transportResult) {\r\n this._transportResult = new PromiseSource();\r\n }\r\n return this._transportResult.promise;\r\n }\r\n\r\n public stop(): Promise {\r\n this._executing = false;\r\n this._sendBufferedData.resolve();\r\n return this._sendLoopPromise;\r\n }\r\n\r\n private _bufferData(data: string | ArrayBuffer): void {\r\n if (this._buffer.length && typeof(this._buffer[0]) !== typeof(data)) {\r\n throw new Error(`Expected data to be of type ${typeof(this._buffer)} but was of type ${typeof(data)}`);\r\n }\r\n\r\n this._buffer.push(data);\r\n this._sendBufferedData.resolve();\r\n }\r\n\r\n private async _sendLoop(): Promise {\r\n while (true) {\r\n await this._sendBufferedData.promise;\r\n\r\n if (!this._executing) {\r\n if (this._transportResult) {\r\n this._transportResult.reject(\"Connection stopped.\");\r\n }\r\n\r\n break;\r\n }\r\n\r\n this._sendBufferedData = new PromiseSource();\r\n\r\n const transportResult = this._transportResult!;\r\n this._transportResult = undefined;\r\n\r\n const data = typeof(this._buffer[0]) === \"string\" ?\r\n this._buffer.join(\"\") :\r\n TransportSendQueue._concatBuffers(this._buffer);\r\n\r\n this._buffer.length = 0;\r\n\r\n try {\r\n await this._transport.send(data);\r\n transportResult.resolve();\r\n } catch (error) {\r\n transportResult.reject(error);\r\n }\r\n }\r\n }\r\n\r\n private static _concatBuffers(arrayBuffers: ArrayBuffer[]): ArrayBuffer {\r\n const totalLength = arrayBuffers.map((b) => b.byteLength).reduce((a, b) => a + b);\r\n const result = new Uint8Array(totalLength);\r\n let offset = 0;\r\n for (const item of arrayBuffers) {\r\n result.set(new Uint8Array(item), offset);\r\n offset += item.byteLength;\r\n }\r\n\r\n return result.buffer;\r\n }\r\n}\r\n\r\nclass PromiseSource {\r\n private _resolver?: () => void;\r\n private _rejecter!: (reason?: any) => void;\r\n public promise: Promise;\r\n\r\n constructor() {\r\n this.promise = new Promise((resolve, reject) => [this._resolver, this._rejecter] = [resolve, reject]);\r\n }\r\n\r\n public resolve(): void {\r\n this._resolver!();\r\n }\r\n\r\n public reject(reason?: any): void {\r\n this._rejecter!(reason);\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\n// Not exported from index\r\n/** @private */\r\nexport class TextMessageFormat {\r\n public static RecordSeparatorCode = 0x1e;\r\n public static RecordSeparator = String.fromCharCode(TextMessageFormat.RecordSeparatorCode);\r\n\r\n public static write(output: string): string {\r\n return `${output}${TextMessageFormat.RecordSeparator}`;\r\n }\r\n\r\n public static parse(input: string): string[] {\r\n if (input[input.length - 1] !== TextMessageFormat.RecordSeparator) {\r\n throw new Error(\"Message is incomplete.\");\r\n }\r\n\r\n const messages = input.split(TextMessageFormat.RecordSeparator);\r\n messages.pop();\r\n return messages;\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\nimport { TextMessageFormat } from \"./TextMessageFormat\";\r\nimport { isArrayBuffer } from \"./Utils\";\r\n\r\n/** @private */\r\nexport interface HandshakeRequestMessage {\r\n readonly protocol: string;\r\n readonly version: number;\r\n}\r\n\r\n/** @private */\r\nexport interface HandshakeResponseMessage {\r\n readonly error: string;\r\n readonly minorVersion: number;\r\n}\r\n\r\n/** @private */\r\nexport class HandshakeProtocol {\r\n // Handshake request is always JSON\r\n public writeHandshakeRequest(handshakeRequest: HandshakeRequestMessage): string {\r\n return TextMessageFormat.write(JSON.stringify(handshakeRequest));\r\n }\r\n\r\n public parseHandshakeResponse(data: any): [any, HandshakeResponseMessage] {\r\n let messageData: string;\r\n let remainingData: any;\r\n\r\n if (isArrayBuffer(data)) {\r\n // Format is binary but still need to read JSON text from handshake response\r\n const binaryData = new Uint8Array(data);\r\n const separatorIndex = binaryData.indexOf(TextMessageFormat.RecordSeparatorCode);\r\n if (separatorIndex === -1) {\r\n throw new Error(\"Message is incomplete.\");\r\n }\r\n\r\n // content before separator is handshake response\r\n // optional content after is additional messages\r\n const responseLength = separatorIndex + 1;\r\n messageData = String.fromCharCode.apply(null, Array.prototype.slice.call(binaryData.slice(0, responseLength)));\r\n remainingData = (binaryData.byteLength > responseLength) ? binaryData.slice(responseLength).buffer : null;\r\n } else {\r\n const textData: string = data;\r\n const separatorIndex = textData.indexOf(TextMessageFormat.RecordSeparator);\r\n if (separatorIndex === -1) {\r\n throw new Error(\"Message is incomplete.\");\r\n }\r\n\r\n // content before separator is handshake response\r\n // optional content after is additional messages\r\n const responseLength = separatorIndex + 1;\r\n messageData = textData.substring(0, responseLength);\r\n remainingData = (textData.length > responseLength) ? textData.substring(responseLength) : null;\r\n }\r\n\r\n // At this point we should have just the single handshake message\r\n const messages = TextMessageFormat.parse(messageData);\r\n const response = JSON.parse(messages[0]);\r\n if (response.type) {\r\n throw new Error(\"Expected a handshake response from the server.\");\r\n }\r\n const responseMessage: HandshakeResponseMessage = response;\r\n\r\n // multiple messages could have arrived with handshake\r\n // return additional data to be parsed as usual, or null if all parsed\r\n return [remainingData, responseMessage];\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\nimport { ILogger } from \"./ILogger\";\r\nimport { TransferFormat } from \"./ITransport\";\r\n\r\n/** Defines the type of a Hub Message. */\r\nexport enum MessageType {\r\n /** Indicates the message is an Invocation message and implements the {@link @microsoft/signalr.InvocationMessage} interface. */\r\n Invocation = 1,\r\n /** Indicates the message is a StreamItem message and implements the {@link @microsoft/signalr.StreamItemMessage} interface. */\r\n StreamItem = 2,\r\n /** Indicates the message is a Completion message and implements the {@link @microsoft/signalr.CompletionMessage} interface. */\r\n Completion = 3,\r\n /** Indicates the message is a Stream Invocation message and implements the {@link @microsoft/signalr.StreamInvocationMessage} interface. */\r\n StreamInvocation = 4,\r\n /** Indicates the message is a Cancel Invocation message and implements the {@link @microsoft/signalr.CancelInvocationMessage} interface. */\r\n CancelInvocation = 5,\r\n /** Indicates the message is a Ping message and implements the {@link @microsoft/signalr.PingMessage} interface. */\r\n Ping = 6,\r\n /** Indicates the message is a Close message and implements the {@link @microsoft/signalr.CloseMessage} interface. */\r\n Close = 7,\r\n}\r\n\r\n/** Defines a dictionary of string keys and string values representing headers attached to a Hub message. */\r\nexport interface MessageHeaders {\r\n /** Gets or sets the header with the specified key. */\r\n [key: string]: string;\r\n}\r\n\r\n/** Union type of all known Hub messages. */\r\nexport type HubMessage =\r\n InvocationMessage |\r\n StreamInvocationMessage |\r\n StreamItemMessage |\r\n CompletionMessage |\r\n CancelInvocationMessage |\r\n PingMessage |\r\n CloseMessage;\r\n\r\n/** Defines properties common to all Hub messages. */\r\nexport interface HubMessageBase {\r\n /** A {@link @microsoft/signalr.MessageType} value indicating the type of this message. */\r\n readonly type: MessageType;\r\n}\r\n\r\n/** Defines properties common to all Hub messages relating to a specific invocation. */\r\nexport interface HubInvocationMessage extends HubMessageBase {\r\n /** A {@link @microsoft/signalr.MessageHeaders} dictionary containing headers attached to the message. */\r\n readonly headers?: MessageHeaders;\r\n /** The ID of the invocation relating to this message.\r\n *\r\n * This is expected to be present for {@link @microsoft/signalr.StreamInvocationMessage} and {@link @microsoft/signalr.CompletionMessage}. It may\r\n * be 'undefined' for an {@link @microsoft/signalr.InvocationMessage} if the sender does not expect a response.\r\n */\r\n readonly invocationId?: string;\r\n}\r\n\r\n/** A hub message representing a non-streaming invocation. */\r\nexport interface InvocationMessage extends HubInvocationMessage {\r\n /** @inheritDoc */\r\n readonly type: MessageType.Invocation;\r\n /** The target method name. */\r\n readonly target: string;\r\n /** The target method arguments. */\r\n readonly arguments: any[];\r\n /** The target methods stream IDs. */\r\n readonly streamIds?: string[];\r\n}\r\n\r\n/** A hub message representing a streaming invocation. */\r\nexport interface StreamInvocationMessage extends HubInvocationMessage {\r\n /** @inheritDoc */\r\n readonly type: MessageType.StreamInvocation;\r\n\r\n /** The invocation ID. */\r\n readonly invocationId: string;\r\n /** The target method name. */\r\n readonly target: string;\r\n /** The target method arguments. */\r\n readonly arguments: any[];\r\n /** The target methods stream IDs. */\r\n readonly streamIds?: string[];\r\n}\r\n\r\n/** A hub message representing a single item produced as part of a result stream. */\r\nexport interface StreamItemMessage extends HubInvocationMessage {\r\n /** @inheritDoc */\r\n readonly type: MessageType.StreamItem;\r\n\r\n /** The invocation ID. */\r\n readonly invocationId: string;\r\n\r\n /** The item produced by the server. */\r\n readonly item?: any;\r\n}\r\n\r\n/** A hub message representing the result of an invocation. */\r\nexport interface CompletionMessage extends HubInvocationMessage {\r\n /** @inheritDoc */\r\n readonly type: MessageType.Completion;\r\n /** The invocation ID. */\r\n readonly invocationId: string;\r\n /** The error produced by the invocation, if any.\r\n *\r\n * Either {@link @microsoft/signalr.CompletionMessage.error} or {@link @microsoft/signalr.CompletionMessage.result} must be defined, but not both.\r\n */\r\n readonly error?: string;\r\n /** The result produced by the invocation, if any.\r\n *\r\n * Either {@link @microsoft/signalr.CompletionMessage.error} or {@link @microsoft/signalr.CompletionMessage.result} must be defined, but not both.\r\n */\r\n readonly result?: any;\r\n}\r\n\r\n/** A hub message indicating that the sender is still active. */\r\nexport interface PingMessage extends HubMessageBase {\r\n /** @inheritDoc */\r\n readonly type: MessageType.Ping;\r\n}\r\n\r\n/** A hub message indicating that the sender is closing the connection.\r\n *\r\n * If {@link @microsoft/signalr.CloseMessage.error} is defined, the sender is closing the connection due to an error.\r\n */\r\nexport interface CloseMessage extends HubMessageBase {\r\n /** @inheritDoc */\r\n readonly type: MessageType.Close;\r\n /** The error that triggered the close, if any.\r\n *\r\n * If this property is undefined, the connection was closed normally and without error.\r\n */\r\n readonly error?: string;\r\n\r\n /** If true, clients with automatic reconnects enabled should attempt to reconnect after receiving the CloseMessage. Otherwise, they should not. */\r\n readonly allowReconnect?: boolean;\r\n}\r\n\r\n/** A hub message sent to request that a streaming invocation be canceled. */\r\nexport interface CancelInvocationMessage extends HubInvocationMessage {\r\n /** @inheritDoc */\r\n readonly type: MessageType.CancelInvocation;\r\n /** The invocation ID. */\r\n readonly invocationId: string;\r\n}\r\n\r\n/** A protocol abstraction for communicating with SignalR Hubs. */\r\nexport interface IHubProtocol {\r\n /** The name of the protocol. This is used by SignalR to resolve the protocol between the client and server. */\r\n readonly name: string;\r\n /** The version of the protocol. */\r\n readonly version: number;\r\n /** The {@link @microsoft/signalr.TransferFormat} of the protocol. */\r\n readonly transferFormat: TransferFormat;\r\n\r\n /** Creates an array of {@link @microsoft/signalr.HubMessage} objects from the specified serialized representation.\r\n *\r\n * If {@link @microsoft/signalr.IHubProtocol.transferFormat} is 'Text', the `input` parameter must be a string, otherwise it must be an ArrayBuffer.\r\n *\r\n * @param {string | ArrayBuffer} input A string or ArrayBuffer containing the serialized representation.\r\n * @param {ILogger} logger A logger that will be used to log messages that occur during parsing.\r\n */\r\n parseMessages(input: string | ArrayBuffer, logger: ILogger): HubMessage[];\r\n\r\n /** Writes the specified {@link @microsoft/signalr.HubMessage} to a string or ArrayBuffer and returns it.\r\n *\r\n * If {@link @microsoft/signalr.IHubProtocol.transferFormat} is 'Text', the result of this method will be a string, otherwise it will be an ArrayBuffer.\r\n *\r\n * @param {HubMessage} message The message to write.\r\n * @returns {string | ArrayBuffer} A string or ArrayBuffer containing the serialized representation of the message.\r\n */\r\n writeMessage(message: HubMessage): string | ArrayBuffer;\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\nimport { IStreamResult, IStreamSubscriber, ISubscription } from \"./Stream\";\r\nimport { SubjectSubscription } from \"./Utils\";\r\n\r\n/** Stream implementation to stream items to the server. */\r\nexport class Subject implements IStreamResult {\r\n /** @internal */\r\n public observers: IStreamSubscriber[];\r\n\r\n /** @internal */\r\n public cancelCallback?: () => Promise;\r\n\r\n constructor() {\r\n this.observers = [];\r\n }\r\n\r\n public next(item: T): void {\r\n for (const observer of this.observers) {\r\n observer.next(item);\r\n }\r\n }\r\n\r\n public error(err: any): void {\r\n for (const observer of this.observers) {\r\n if (observer.error) {\r\n observer.error(err);\r\n }\r\n }\r\n }\r\n\r\n public complete(): void {\r\n for (const observer of this.observers) {\r\n if (observer.complete) {\r\n observer.complete();\r\n }\r\n }\r\n }\r\n\r\n public subscribe(observer: IStreamSubscriber): ISubscription {\r\n this.observers.push(observer);\r\n return new SubjectSubscription(this, observer);\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\nimport { HandshakeProtocol, HandshakeRequestMessage, HandshakeResponseMessage } from \"./HandshakeProtocol\";\r\nimport { IConnection } from \"./IConnection\";\r\nimport { AbortError } from \"./Errors\";\r\nimport { CancelInvocationMessage, CompletionMessage, IHubProtocol, InvocationMessage, MessageType, StreamInvocationMessage, StreamItemMessage } from \"./IHubProtocol\";\r\nimport { ILogger, LogLevel } from \"./ILogger\";\r\nimport { IRetryPolicy } from \"./IRetryPolicy\";\r\nimport { IStreamResult } from \"./Stream\";\r\nimport { Subject } from \"./Subject\";\r\nimport { Arg, getErrorString, Platform } from \"./Utils\";\r\n\r\nconst DEFAULT_TIMEOUT_IN_MS: number = 30 * 1000;\r\nconst DEFAULT_PING_INTERVAL_IN_MS: number = 15 * 1000;\r\n\r\n/** Describes the current state of the {@link HubConnection} to the server. */\r\nexport enum HubConnectionState {\r\n /** The hub connection is disconnected. */\r\n Disconnected = \"Disconnected\",\r\n /** The hub connection is connecting. */\r\n Connecting = \"Connecting\",\r\n /** The hub connection is connected. */\r\n Connected = \"Connected\",\r\n /** The hub connection is disconnecting. */\r\n Disconnecting = \"Disconnecting\",\r\n /** The hub connection is reconnecting. */\r\n Reconnecting = \"Reconnecting\",\r\n}\r\n\r\n/** Represents a connection to a SignalR Hub. */\r\nexport class HubConnection {\r\n private readonly _cachedPingMessage: string | ArrayBuffer;\r\n // Needs to not start with _ for tests\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n private readonly connection: IConnection;\r\n private readonly _logger: ILogger;\r\n private readonly _reconnectPolicy?: IRetryPolicy;\r\n private _protocol: IHubProtocol;\r\n private _handshakeProtocol: HandshakeProtocol;\r\n private _callbacks: { [invocationId: string]: (invocationEvent: StreamItemMessage | CompletionMessage | null, error?: Error) => void };\r\n private _methods: { [name: string]: (((...args: any[]) => void) | ((...args: any[]) => any))[] };\r\n private _invocationId: number;\r\n\r\n private _closedCallbacks: ((error?: Error) => void)[];\r\n private _reconnectingCallbacks: ((error?: Error) => void)[];\r\n private _reconnectedCallbacks: ((connectionId?: string) => void)[];\r\n\r\n private _receivedHandshakeResponse: boolean;\r\n private _handshakeResolver!: (value?: PromiseLike<{}>) => void;\r\n private _handshakeRejecter!: (reason?: any) => void;\r\n private _stopDuringStartError?: Error;\r\n\r\n private _connectionState: HubConnectionState;\r\n // connectionStarted is tracked independently from connectionState, so we can check if the\r\n // connection ever did successfully transition from connecting to connected before disconnecting.\r\n private _connectionStarted: boolean;\r\n private _startPromise?: Promise;\r\n private _stopPromise?: Promise;\r\n private _nextKeepAlive: number = 0;\r\n\r\n // The type of these a) doesn't matter and b) varies when building in browser and node contexts\r\n // Since we're building the WebPack bundle directly from the TypeScript, this matters (previously\r\n // we built the bundle from the compiled JavaScript).\r\n private _reconnectDelayHandle?: any;\r\n private _timeoutHandle?: any;\r\n private _pingServerHandle?: any;\r\n\r\n private _freezeEventListener = () =>\r\n {\r\n this._logger.log(LogLevel.Warning, \"The page is being frozen, this will likely lead to the connection being closed and messages being lost. For more information see the docs at https://docs.microsoft.com/aspnet/core/signalr/javascript-client#bsleep\");\r\n };\r\n\r\n /** The server timeout in milliseconds.\r\n *\r\n * If this timeout elapses without receiving any messages from the server, the connection will be terminated with an error.\r\n * The default timeout value is 30,000 milliseconds (30 seconds).\r\n */\r\n public serverTimeoutInMilliseconds: number;\r\n\r\n /** Default interval at which to ping the server.\r\n *\r\n * The default value is 15,000 milliseconds (15 seconds).\r\n * Allows the server to detect hard disconnects (like when a client unplugs their computer).\r\n * The ping will happen at most as often as the server pings.\r\n * If the server pings every 5 seconds, a value lower than 5 will ping every 5 seconds.\r\n */\r\n public keepAliveIntervalInMilliseconds: number;\r\n\r\n /** @internal */\r\n // Using a public static factory method means we can have a private constructor and an _internal_\r\n // create method that can be used by HubConnectionBuilder. An \"internal\" constructor would just\r\n // be stripped away and the '.d.ts' file would have no constructor, which is interpreted as a\r\n // public parameter-less constructor.\r\n public static create(connection: IConnection, logger: ILogger, protocol: IHubProtocol, reconnectPolicy?: IRetryPolicy): HubConnection {\r\n return new HubConnection(connection, logger, protocol, reconnectPolicy);\r\n }\r\n\r\n private constructor(connection: IConnection, logger: ILogger, protocol: IHubProtocol, reconnectPolicy?: IRetryPolicy) {\r\n Arg.isRequired(connection, \"connection\");\r\n Arg.isRequired(logger, \"logger\");\r\n Arg.isRequired(protocol, \"protocol\");\r\n\r\n this.serverTimeoutInMilliseconds = DEFAULT_TIMEOUT_IN_MS;\r\n this.keepAliveIntervalInMilliseconds = DEFAULT_PING_INTERVAL_IN_MS;\r\n\r\n this._logger = logger;\r\n this._protocol = protocol;\r\n this.connection = connection;\r\n this._reconnectPolicy = reconnectPolicy;\r\n this._handshakeProtocol = new HandshakeProtocol();\r\n\r\n this.connection.onreceive = (data: any) => this._processIncomingData(data);\r\n this.connection.onclose = (error?: Error) => this._connectionClosed(error);\r\n\r\n this._callbacks = {};\r\n this._methods = {};\r\n this._closedCallbacks = [];\r\n this._reconnectingCallbacks = [];\r\n this._reconnectedCallbacks = [];\r\n this._invocationId = 0;\r\n this._receivedHandshakeResponse = false;\r\n this._connectionState = HubConnectionState.Disconnected;\r\n this._connectionStarted = false;\r\n\r\n this._cachedPingMessage = this._protocol.writeMessage({ type: MessageType.Ping });\r\n }\r\n\r\n /** Indicates the state of the {@link HubConnection} to the server. */\r\n get state(): HubConnectionState {\r\n return this._connectionState;\r\n }\r\n\r\n /** Represents the connection id of the {@link HubConnection} on the server. The connection id will be null when the connection is either\r\n * in the disconnected state or if the negotiation step was skipped.\r\n */\r\n get connectionId(): string | null {\r\n return this.connection ? (this.connection.connectionId || null) : null;\r\n }\r\n\r\n /** Indicates the url of the {@link HubConnection} to the server. */\r\n get baseUrl(): string {\r\n return this.connection.baseUrl || \"\";\r\n }\r\n\r\n /**\r\n * Sets a new url for the HubConnection. Note that the url can only be changed when the connection is in either the Disconnected or\r\n * Reconnecting states.\r\n * @param {string} url The url to connect to.\r\n */\r\n set baseUrl(url: string) {\r\n if (this._connectionState !== HubConnectionState.Disconnected && this._connectionState !== HubConnectionState.Reconnecting) {\r\n throw new Error(\"The HubConnection must be in the Disconnected or Reconnecting state to change the url.\");\r\n }\r\n\r\n if (!url) {\r\n throw new Error(\"The HubConnection url must be a valid url.\");\r\n }\r\n\r\n this.connection.baseUrl = url;\r\n }\r\n\r\n /** Starts the connection.\r\n *\r\n * @returns {Promise} A Promise that resolves when the connection has been successfully established, or rejects with an error.\r\n */\r\n public start(): Promise {\r\n this._startPromise = this._startWithStateTransitions();\r\n return this._startPromise;\r\n }\r\n\r\n private async _startWithStateTransitions(): Promise {\r\n if (this._connectionState !== HubConnectionState.Disconnected) {\r\n return Promise.reject(new Error(\"Cannot start a HubConnection that is not in the 'Disconnected' state.\"));\r\n }\r\n\r\n this._connectionState = HubConnectionState.Connecting;\r\n this._logger.log(LogLevel.Debug, \"Starting HubConnection.\");\r\n\r\n try {\r\n await this._startInternal();\r\n\r\n if (Platform.isBrowser) {\r\n // Log when the browser freezes the tab so users know why their connection unexpectedly stopped working\r\n window.document.addEventListener(\"freeze\", this._freezeEventListener);\r\n }\r\n\r\n this._connectionState = HubConnectionState.Connected;\r\n this._connectionStarted = true;\r\n this._logger.log(LogLevel.Debug, \"HubConnection connected successfully.\");\r\n } catch (e) {\r\n this._connectionState = HubConnectionState.Disconnected;\r\n this._logger.log(LogLevel.Debug, `HubConnection failed to start successfully because of error '${e}'.`);\r\n return Promise.reject(e);\r\n }\r\n }\r\n\r\n private async _startInternal() {\r\n this._stopDuringStartError = undefined;\r\n this._receivedHandshakeResponse = false;\r\n // Set up the promise before any connection is (re)started otherwise it could race with received messages\r\n const handshakePromise = new Promise((resolve, reject) => {\r\n this._handshakeResolver = resolve;\r\n this._handshakeRejecter = reject;\r\n });\r\n\r\n await this.connection.start(this._protocol.transferFormat);\r\n\r\n try {\r\n const handshakeRequest: HandshakeRequestMessage = {\r\n protocol: this._protocol.name,\r\n version: this._protocol.version,\r\n };\r\n\r\n this._logger.log(LogLevel.Debug, \"Sending handshake request.\");\r\n\r\n await this._sendMessage(this._handshakeProtocol.writeHandshakeRequest(handshakeRequest));\r\n\r\n this._logger.log(LogLevel.Information, `Using HubProtocol '${this._protocol.name}'.`);\r\n\r\n // defensively cleanup timeout in case we receive a message from the server before we finish start\r\n this._cleanupTimeout();\r\n this._resetTimeoutPeriod();\r\n this._resetKeepAliveInterval();\r\n\r\n await handshakePromise;\r\n\r\n // It's important to check the stopDuringStartError instead of just relying on the handshakePromise\r\n // being rejected on close, because this continuation can run after both the handshake completed successfully\r\n // and the connection was closed.\r\n if (this._stopDuringStartError) {\r\n // It's important to throw instead of returning a rejected promise, because we don't want to allow any state\r\n // transitions to occur between now and the calling code observing the exceptions. Returning a rejected promise\r\n // will cause the calling continuation to get scheduled to run later.\r\n // eslint-disable-next-line @typescript-eslint/no-throw-literal\r\n throw this._stopDuringStartError;\r\n }\r\n\r\n if (!this.connection.features.inherentKeepAlive) {\r\n await this._sendMessage(this._cachedPingMessage);\r\n }\r\n } catch (e) {\r\n this._logger.log(LogLevel.Debug, `Hub handshake failed with error '${e}' during start(). Stopping HubConnection.`);\r\n\r\n this._cleanupTimeout();\r\n this._cleanupPingTimer();\r\n\r\n // HttpConnection.stop() should not complete until after the onclose callback is invoked.\r\n // This will transition the HubConnection to the disconnected state before HttpConnection.stop() completes.\r\n await this.connection.stop(e);\r\n throw e;\r\n }\r\n }\r\n\r\n /** Stops the connection.\r\n *\r\n * @returns {Promise} A Promise that resolves when the connection has been successfully terminated, or rejects with an error.\r\n */\r\n public async stop(): Promise {\r\n // Capture the start promise before the connection might be restarted in an onclose callback.\r\n const startPromise = this._startPromise;\r\n\r\n this._stopPromise = this._stopInternal();\r\n await this._stopPromise;\r\n\r\n try {\r\n // Awaiting undefined continues immediately\r\n await startPromise;\r\n } catch (e) {\r\n // This exception is returned to the user as a rejected Promise from the start method.\r\n }\r\n }\r\n\r\n private _stopInternal(error?: Error): Promise {\r\n if (this._connectionState === HubConnectionState.Disconnected) {\r\n this._logger.log(LogLevel.Debug, `Call to HubConnection.stop(${error}) ignored because it is already in the disconnected state.`);\r\n return Promise.resolve();\r\n }\r\n\r\n if (this._connectionState === HubConnectionState.Disconnecting) {\r\n this._logger.log(LogLevel.Debug, `Call to HttpConnection.stop(${error}) ignored because the connection is already in the disconnecting state.`);\r\n return this._stopPromise!;\r\n }\r\n\r\n this._connectionState = HubConnectionState.Disconnecting;\r\n\r\n this._logger.log(LogLevel.Debug, \"Stopping HubConnection.\");\r\n\r\n if (this._reconnectDelayHandle) {\r\n // We're in a reconnect delay which means the underlying connection is currently already stopped.\r\n // Just clear the handle to stop the reconnect loop (which no one is waiting on thankfully) and\r\n // fire the onclose callbacks.\r\n this._logger.log(LogLevel.Debug, \"Connection stopped during reconnect delay. Done reconnecting.\");\r\n\r\n clearTimeout(this._reconnectDelayHandle);\r\n this._reconnectDelayHandle = undefined;\r\n\r\n this._completeClose();\r\n return Promise.resolve();\r\n }\r\n\r\n this._cleanupTimeout();\r\n this._cleanupPingTimer();\r\n this._stopDuringStartError = error || new AbortError(\"The connection was stopped before the hub handshake could complete.\");\r\n\r\n // HttpConnection.stop() should not complete until after either HttpConnection.start() fails\r\n // or the onclose callback is invoked. The onclose callback will transition the HubConnection\r\n // to the disconnected state if need be before HttpConnection.stop() completes.\r\n return this.connection.stop(error);\r\n }\r\n\r\n /** Invokes a streaming hub method on the server using the specified name and arguments.\r\n *\r\n * @typeparam T The type of the items returned by the server.\r\n * @param {string} methodName The name of the server method to invoke.\r\n * @param {any[]} args The arguments used to invoke the server method.\r\n * @returns {IStreamResult} An object that yields results from the server as they are received.\r\n */\r\n public stream(methodName: string, ...args: any[]): IStreamResult {\r\n const [streams, streamIds] = this._replaceStreamingParams(args);\r\n const invocationDescriptor = this._createStreamInvocation(methodName, args, streamIds);\r\n\r\n // eslint-disable-next-line prefer-const\r\n let promiseQueue: Promise;\r\n\r\n const subject = new Subject();\r\n subject.cancelCallback = () => {\r\n const cancelInvocation: CancelInvocationMessage = this._createCancelInvocation(invocationDescriptor.invocationId);\r\n\r\n delete this._callbacks[invocationDescriptor.invocationId];\r\n\r\n return promiseQueue.then(() => {\r\n return this._sendWithProtocol(cancelInvocation);\r\n });\r\n };\r\n\r\n this._callbacks[invocationDescriptor.invocationId] = (invocationEvent: CompletionMessage | StreamItemMessage | null, error?: Error) => {\r\n if (error) {\r\n subject.error(error);\r\n return;\r\n } else if (invocationEvent) {\r\n // invocationEvent will not be null when an error is not passed to the callback\r\n if (invocationEvent.type === MessageType.Completion) {\r\n if (invocationEvent.error) {\r\n subject.error(new Error(invocationEvent.error));\r\n } else {\r\n subject.complete();\r\n }\r\n } else {\r\n subject.next((invocationEvent.item) as T);\r\n }\r\n }\r\n };\r\n\r\n promiseQueue = this._sendWithProtocol(invocationDescriptor)\r\n .catch((e) => {\r\n subject.error(e);\r\n delete this._callbacks[invocationDescriptor.invocationId];\r\n });\r\n\r\n this._launchStreams(streams, promiseQueue);\r\n\r\n return subject;\r\n }\r\n\r\n private _sendMessage(message: any) {\r\n this._resetKeepAliveInterval();\r\n return this.connection.send(message);\r\n }\r\n\r\n /**\r\n * Sends a js object to the server.\r\n * @param message The js object to serialize and send.\r\n */\r\n private _sendWithProtocol(message: any) {\r\n return this._sendMessage(this._protocol.writeMessage(message));\r\n }\r\n\r\n /** Invokes a hub method on the server using the specified name and arguments. Does not wait for a response from the receiver.\r\n *\r\n * The Promise returned by this method resolves when the client has sent the invocation to the server. The server may still\r\n * be processing the invocation.\r\n *\r\n * @param {string} methodName The name of the server method to invoke.\r\n * @param {any[]} args The arguments used to invoke the server method.\r\n * @returns {Promise} A Promise that resolves when the invocation has been successfully sent, or rejects with an error.\r\n */\r\n public send(methodName: string, ...args: any[]): Promise {\r\n const [streams, streamIds] = this._replaceStreamingParams(args);\r\n const sendPromise = this._sendWithProtocol(this._createInvocation(methodName, args, true, streamIds));\r\n\r\n this._launchStreams(streams, sendPromise);\r\n\r\n return sendPromise;\r\n }\r\n\r\n /** Invokes a hub method on the server using the specified name and arguments.\r\n *\r\n * The Promise returned by this method resolves when the server indicates it has finished invoking the method. When the promise\r\n * resolves, the server has finished invoking the method. If the server method returns a result, it is produced as the result of\r\n * resolving the Promise.\r\n *\r\n * @typeparam T The expected return type.\r\n * @param {string} methodName The name of the server method to invoke.\r\n * @param {any[]} args The arguments used to invoke the server method.\r\n * @returns {Promise} A Promise that resolves with the result of the server method (if any), or rejects with an error.\r\n */\r\n public invoke(methodName: string, ...args: any[]): Promise {\r\n const [streams, streamIds] = this._replaceStreamingParams(args);\r\n const invocationDescriptor = this._createInvocation(methodName, args, false, streamIds);\r\n\r\n const p = new Promise((resolve, reject) => {\r\n // invocationId will always have a value for a non-blocking invocation\r\n this._callbacks[invocationDescriptor.invocationId!] = (invocationEvent: StreamItemMessage | CompletionMessage | null, error?: Error) => {\r\n if (error) {\r\n reject(error);\r\n return;\r\n } else if (invocationEvent) {\r\n // invocationEvent will not be null when an error is not passed to the callback\r\n if (invocationEvent.type === MessageType.Completion) {\r\n if (invocationEvent.error) {\r\n reject(new Error(invocationEvent.error));\r\n } else {\r\n resolve(invocationEvent.result);\r\n }\r\n } else {\r\n reject(new Error(`Unexpected message type: ${invocationEvent.type}`));\r\n }\r\n }\r\n };\r\n\r\n const promiseQueue = this._sendWithProtocol(invocationDescriptor)\r\n .catch((e) => {\r\n reject(e);\r\n // invocationId will always have a value for a non-blocking invocation\r\n delete this._callbacks[invocationDescriptor.invocationId!];\r\n });\r\n\r\n this._launchStreams(streams, promiseQueue);\r\n });\r\n\r\n return p;\r\n }\r\n\r\n /** Registers a handler that will be invoked when the hub method with the specified method name is invoked.\r\n *\r\n * @param {string} methodName The name of the hub method to define.\r\n * @param {Function} newMethod The handler that will be raised when the hub method is invoked.\r\n */\r\n public on(methodName: string, newMethod: (...args: any[]) => any): void\r\n public on(methodName: string, newMethod: (...args: any[]) => void): void {\r\n if (!methodName || !newMethod) {\r\n return;\r\n }\r\n\r\n methodName = methodName.toLowerCase();\r\n if (!this._methods[methodName]) {\r\n this._methods[methodName] = [];\r\n }\r\n\r\n // Preventing adding the same handler multiple times.\r\n if (this._methods[methodName].indexOf(newMethod) !== -1) {\r\n return;\r\n }\r\n\r\n this._methods[methodName].push(newMethod);\r\n }\r\n\r\n /** Removes all handlers for the specified hub method.\r\n *\r\n * @param {string} methodName The name of the method to remove handlers for.\r\n */\r\n public off(methodName: string): void;\r\n\r\n /** Removes the specified handler for the specified hub method.\r\n *\r\n * You must pass the exact same Function instance as was previously passed to {@link @microsoft/signalr.HubConnection.on}. Passing a different instance (even if the function\r\n * body is the same) will not remove the handler.\r\n *\r\n * @param {string} methodName The name of the method to remove handlers for.\r\n * @param {Function} method The handler to remove. This must be the same Function instance as the one passed to {@link @microsoft/signalr.HubConnection.on}.\r\n */\r\n public off(methodName: string, method: (...args: any[]) => void): void;\r\n public off(methodName: string, method?: (...args: any[]) => void): void {\r\n if (!methodName) {\r\n return;\r\n }\r\n\r\n methodName = methodName.toLowerCase();\r\n const handlers = this._methods[methodName];\r\n if (!handlers) {\r\n return;\r\n }\r\n if (method) {\r\n const removeIdx = handlers.indexOf(method);\r\n if (removeIdx !== -1) {\r\n handlers.splice(removeIdx, 1);\r\n if (handlers.length === 0) {\r\n delete this._methods[methodName];\r\n }\r\n }\r\n } else {\r\n delete this._methods[methodName];\r\n }\r\n\r\n }\r\n\r\n /** Registers a handler that will be invoked when the connection is closed.\r\n *\r\n * @param {Function} callback The handler that will be invoked when the connection is closed. Optionally receives a single argument containing the error that caused the connection to close (if any).\r\n */\r\n public onclose(callback: (error?: Error) => void): void {\r\n if (callback) {\r\n this._closedCallbacks.push(callback);\r\n }\r\n }\r\n\r\n /** Registers a handler that will be invoked when the connection starts reconnecting.\r\n *\r\n * @param {Function} callback The handler that will be invoked when the connection starts reconnecting. Optionally receives a single argument containing the error that caused the connection to start reconnecting (if any).\r\n */\r\n public onreconnecting(callback: (error?: Error) => void): void {\r\n if (callback) {\r\n this._reconnectingCallbacks.push(callback);\r\n }\r\n }\r\n\r\n /** Registers a handler that will be invoked when the connection successfully reconnects.\r\n *\r\n * @param {Function} callback The handler that will be invoked when the connection successfully reconnects.\r\n */\r\n public onreconnected(callback: (connectionId?: string) => void): void {\r\n if (callback) {\r\n this._reconnectedCallbacks.push(callback);\r\n }\r\n }\r\n\r\n private _processIncomingData(data: any) {\r\n this._cleanupTimeout();\r\n\r\n if (!this._receivedHandshakeResponse) {\r\n data = this._processHandshakeResponse(data);\r\n this._receivedHandshakeResponse = true;\r\n }\r\n\r\n // Data may have all been read when processing handshake response\r\n if (data) {\r\n // Parse the messages\r\n const messages = this._protocol.parseMessages(data, this._logger);\r\n\r\n for (const message of messages) {\r\n switch (message.type) {\r\n case MessageType.Invocation:\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this._invokeClientMethod(message);\r\n break;\r\n case MessageType.StreamItem:\r\n case MessageType.Completion: {\r\n const callback = this._callbacks[message.invocationId];\r\n if (callback) {\r\n if (message.type === MessageType.Completion) {\r\n delete this._callbacks[message.invocationId];\r\n }\r\n try {\r\n callback(message);\r\n } catch (e) {\r\n this._logger.log(LogLevel.Error, `Stream callback threw error: ${getErrorString(e)}`);\r\n }\r\n }\r\n break;\r\n }\r\n case MessageType.Ping:\r\n // Don't care about pings\r\n break;\r\n case MessageType.Close: {\r\n this._logger.log(LogLevel.Information, \"Close message received from server.\");\r\n\r\n const error = message.error ? new Error(\"Server returned an error on close: \" + message.error) : undefined;\r\n\r\n if (message.allowReconnect === true) {\r\n // It feels wrong not to await connection.stop() here, but processIncomingData is called as part of an onreceive callback which is not async,\r\n // this is already the behavior for serverTimeout(), and HttpConnection.Stop() should catch and log all possible exceptions.\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this.connection.stop(error);\r\n } else {\r\n // We cannot await stopInternal() here, but subsequent calls to stop() will await this if stopInternal() is still ongoing.\r\n this._stopPromise = this._stopInternal(error);\r\n }\r\n\r\n break;\r\n }\r\n default:\r\n this._logger.log(LogLevel.Warning, `Invalid message type: ${message.type}.`);\r\n break;\r\n }\r\n }\r\n }\r\n\r\n this._resetTimeoutPeriod();\r\n }\r\n\r\n private _processHandshakeResponse(data: any): any {\r\n let responseMessage: HandshakeResponseMessage;\r\n let remainingData: any;\r\n\r\n try {\r\n [remainingData, responseMessage] = this._handshakeProtocol.parseHandshakeResponse(data);\r\n } catch (e) {\r\n const message = \"Error parsing handshake response: \" + e;\r\n this._logger.log(LogLevel.Error, message);\r\n\r\n const error = new Error(message);\r\n this._handshakeRejecter(error);\r\n throw error;\r\n }\r\n if (responseMessage.error) {\r\n const message = \"Server returned handshake error: \" + responseMessage.error;\r\n this._logger.log(LogLevel.Error, message);\r\n\r\n const error = new Error(message);\r\n this._handshakeRejecter(error);\r\n throw error;\r\n } else {\r\n this._logger.log(LogLevel.Debug, \"Server handshake complete.\");\r\n }\r\n\r\n this._handshakeResolver();\r\n return remainingData;\r\n }\r\n\r\n private _resetKeepAliveInterval() {\r\n if (this.connection.features.inherentKeepAlive) {\r\n return;\r\n }\r\n\r\n // Set the time we want the next keep alive to be sent\r\n // Timer will be setup on next message receive\r\n this._nextKeepAlive = new Date().getTime() + this.keepAliveIntervalInMilliseconds;\r\n\r\n this._cleanupPingTimer();\r\n }\r\n\r\n private _resetTimeoutPeriod() {\r\n if (!this.connection.features || !this.connection.features.inherentKeepAlive) {\r\n // Set the timeout timer\r\n this._timeoutHandle = setTimeout(() => this.serverTimeout(), this.serverTimeoutInMilliseconds);\r\n\r\n // Set keepAlive timer if there isn't one\r\n if (this._pingServerHandle === undefined)\r\n {\r\n let nextPing = this._nextKeepAlive - new Date().getTime();\r\n if (nextPing < 0) {\r\n nextPing = 0;\r\n }\r\n\r\n // The timer needs to be set from a networking callback to avoid Chrome timer throttling from causing timers to run once a minute\r\n this._pingServerHandle = setTimeout(async () => {\r\n if (this._connectionState === HubConnectionState.Connected) {\r\n try {\r\n await this._sendMessage(this._cachedPingMessage);\r\n } catch {\r\n // We don't care about the error. It should be seen elsewhere in the client.\r\n // The connection is probably in a bad or closed state now, cleanup the timer so it stops triggering\r\n this._cleanupPingTimer();\r\n }\r\n }\r\n }, nextPing);\r\n }\r\n }\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n private serverTimeout() {\r\n // The server hasn't talked to us in a while. It doesn't like us anymore ... :(\r\n // Terminate the connection, but we don't need to wait on the promise. This could trigger reconnecting.\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this.connection.stop(new Error(\"Server timeout elapsed without receiving a message from the server.\"));\r\n }\r\n\r\n private async _invokeClientMethod(invocationMessage: InvocationMessage) {\r\n const methodName = invocationMessage.target.toLowerCase();\r\n const methods = this._methods[methodName];\r\n if (!methods) {\r\n this._logger.log(LogLevel.Warning, `No client method with the name '${methodName}' found.`);\r\n\r\n // No handlers provided by client but the server is expecting a response still, so we send an error\r\n if (invocationMessage.invocationId) {\r\n this._logger.log(LogLevel.Warning, `No result given for '${methodName}' method and invocation ID '${invocationMessage.invocationId}'.`);\r\n await this._sendWithProtocol(this._createCompletionMessage(invocationMessage.invocationId, \"Client didn't provide a result.\", null));\r\n }\r\n return;\r\n }\r\n\r\n // Avoid issues with handlers removing themselves thus modifying the list while iterating through it\r\n const methodsCopy = methods.slice();\r\n\r\n // Server expects a response\r\n const expectsResponse = invocationMessage.invocationId ? true : false;\r\n // We preserve the last result or exception but still call all handlers\r\n let res;\r\n let exception;\r\n let completionMessage;\r\n for (const m of methodsCopy) {\r\n try {\r\n const prevRes = res;\r\n res = await m.apply(this, invocationMessage.arguments);\r\n if (expectsResponse && res && prevRes) {\r\n this._logger.log(LogLevel.Error, `Multiple results provided for '${methodName}'. Sending error to server.`);\r\n completionMessage = this._createCompletionMessage(invocationMessage.invocationId!, `Client provided multiple results.`, null);\r\n }\r\n // Ignore exception if we got a result after, the exception will be logged\r\n exception = undefined;\r\n } catch (e) {\r\n exception = e;\r\n this._logger.log(LogLevel.Error, `A callback for the method '${methodName}' threw error '${e}'.`);\r\n }\r\n }\r\n if (completionMessage) {\r\n await this._sendWithProtocol(completionMessage);\r\n } else if (expectsResponse) {\r\n // If there is an exception that means either no result was given or a handler after a result threw\r\n if (exception) {\r\n completionMessage = this._createCompletionMessage(invocationMessage.invocationId!, `${exception}`, null);\r\n } else if (res !== undefined) {\r\n completionMessage = this._createCompletionMessage(invocationMessage.invocationId!, null, res);\r\n } else {\r\n this._logger.log(LogLevel.Warning, `No result given for '${methodName}' method and invocation ID '${invocationMessage.invocationId}'.`);\r\n // Client didn't provide a result or throw from a handler, server expects a response so we send an error\r\n completionMessage = this._createCompletionMessage(invocationMessage.invocationId!, \"Client didn't provide a result.\", null);\r\n }\r\n await this._sendWithProtocol(completionMessage);\r\n } else {\r\n if (res) {\r\n this._logger.log(LogLevel.Error, `Result given for '${methodName}' method but server is not expecting a result.`);\r\n }\r\n }\r\n }\r\n\r\n private _connectionClosed(error?: Error) {\r\n this._logger.log(LogLevel.Debug, `HubConnection.connectionClosed(${error}) called while in state ${this._connectionState}.`);\r\n\r\n // Triggering this.handshakeRejecter is insufficient because it could already be resolved without the continuation having run yet.\r\n this._stopDuringStartError = this._stopDuringStartError || error || new AbortError(\"The underlying connection was closed before the hub handshake could complete.\");\r\n\r\n // If the handshake is in progress, start will be waiting for the handshake promise, so we complete it.\r\n // If it has already completed, this should just noop.\r\n if (this._handshakeResolver) {\r\n this._handshakeResolver();\r\n }\r\n\r\n this._cancelCallbacksWithError(error || new Error(\"Invocation canceled due to the underlying connection being closed.\"));\r\n\r\n this._cleanupTimeout();\r\n this._cleanupPingTimer();\r\n\r\n if (this._connectionState === HubConnectionState.Disconnecting) {\r\n this._completeClose(error);\r\n } else if (this._connectionState === HubConnectionState.Connected && this._reconnectPolicy) {\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this._reconnect(error);\r\n } else if (this._connectionState === HubConnectionState.Connected) {\r\n this._completeClose(error);\r\n }\r\n\r\n // If none of the above if conditions were true were called the HubConnection must be in either:\r\n // 1. The Connecting state in which case the handshakeResolver will complete it and stopDuringStartError will fail it.\r\n // 2. The Reconnecting state in which case the handshakeResolver will complete it and stopDuringStartError will fail the current reconnect attempt\r\n // and potentially continue the reconnect() loop.\r\n // 3. The Disconnected state in which case we're already done.\r\n }\r\n\r\n private _completeClose(error?: Error) {\r\n if (this._connectionStarted) {\r\n this._connectionState = HubConnectionState.Disconnected;\r\n this._connectionStarted = false;\r\n\r\n if (Platform.isBrowser) {\r\n window.document.removeEventListener(\"freeze\", this._freezeEventListener);\r\n }\r\n\r\n try {\r\n this._closedCallbacks.forEach((c) => c.apply(this, [error]));\r\n } catch (e) {\r\n this._logger.log(LogLevel.Error, `An onclose callback called with error '${error}' threw error '${e}'.`);\r\n }\r\n }\r\n }\r\n\r\n private async _reconnect(error?: Error) {\r\n const reconnectStartTime = Date.now();\r\n let previousReconnectAttempts = 0;\r\n let retryError = error !== undefined ? error : new Error(\"Attempting to reconnect due to a unknown error.\");\r\n\r\n let nextRetryDelay = this._getNextRetryDelay(previousReconnectAttempts++, 0, retryError);\r\n\r\n if (nextRetryDelay === null) {\r\n this._logger.log(LogLevel.Debug, \"Connection not reconnecting because the IRetryPolicy returned null on the first reconnect attempt.\");\r\n this._completeClose(error);\r\n return;\r\n }\r\n\r\n this._connectionState = HubConnectionState.Reconnecting;\r\n\r\n if (error) {\r\n this._logger.log(LogLevel.Information, `Connection reconnecting because of error '${error}'.`);\r\n } else {\r\n this._logger.log(LogLevel.Information, \"Connection reconnecting.\");\r\n }\r\n\r\n if (this._reconnectingCallbacks.length !== 0) {\r\n try {\r\n this._reconnectingCallbacks.forEach((c) => c.apply(this, [error]));\r\n } catch (e) {\r\n this._logger.log(LogLevel.Error, `An onreconnecting callback called with error '${error}' threw error '${e}'.`);\r\n }\r\n\r\n // Exit early if an onreconnecting callback called connection.stop().\r\n if (this._connectionState !== HubConnectionState.Reconnecting) {\r\n this._logger.log(LogLevel.Debug, \"Connection left the reconnecting state in onreconnecting callback. Done reconnecting.\");\r\n return;\r\n }\r\n }\r\n\r\n while (nextRetryDelay !== null) {\r\n this._logger.log(LogLevel.Information, `Reconnect attempt number ${previousReconnectAttempts} will start in ${nextRetryDelay} ms.`);\r\n\r\n await new Promise((resolve) => {\r\n this._reconnectDelayHandle = setTimeout(resolve, nextRetryDelay!);\r\n });\r\n this._reconnectDelayHandle = undefined;\r\n\r\n if (this._connectionState !== HubConnectionState.Reconnecting) {\r\n this._logger.log(LogLevel.Debug, \"Connection left the reconnecting state during reconnect delay. Done reconnecting.\");\r\n return;\r\n }\r\n\r\n try {\r\n await this._startInternal();\r\n\r\n this._connectionState = HubConnectionState.Connected;\r\n this._logger.log(LogLevel.Information, \"HubConnection reconnected successfully.\");\r\n\r\n if (this._reconnectedCallbacks.length !== 0) {\r\n try {\r\n this._reconnectedCallbacks.forEach((c) => c.apply(this, [this.connection.connectionId]));\r\n } catch (e) {\r\n this._logger.log(LogLevel.Error, `An onreconnected callback called with connectionId '${this.connection.connectionId}; threw error '${e}'.`);\r\n }\r\n }\r\n\r\n return;\r\n } catch (e) {\r\n this._logger.log(LogLevel.Information, `Reconnect attempt failed because of error '${e}'.`);\r\n\r\n if (this._connectionState !== HubConnectionState.Reconnecting) {\r\n this._logger.log(LogLevel.Debug, `Connection moved to the '${this._connectionState}' from the reconnecting state during reconnect attempt. Done reconnecting.`);\r\n // The TypeScript compiler thinks that connectionState must be Connected here. The TypeScript compiler is wrong.\r\n if (this._connectionState as any === HubConnectionState.Disconnecting) {\r\n this._completeClose();\r\n }\r\n return;\r\n }\r\n\r\n retryError = e instanceof Error ? e : new Error(e.toString());\r\n nextRetryDelay = this._getNextRetryDelay(previousReconnectAttempts++, Date.now() - reconnectStartTime, retryError);\r\n }\r\n }\r\n\r\n this._logger.log(LogLevel.Information, `Reconnect retries have been exhausted after ${Date.now() - reconnectStartTime} ms and ${previousReconnectAttempts} failed attempts. Connection disconnecting.`);\r\n\r\n this._completeClose();\r\n }\r\n\r\n private _getNextRetryDelay(previousRetryCount: number, elapsedMilliseconds: number, retryReason: Error) {\r\n try {\r\n return this._reconnectPolicy!.nextRetryDelayInMilliseconds({\r\n elapsedMilliseconds,\r\n previousRetryCount,\r\n retryReason,\r\n });\r\n } catch (e) {\r\n this._logger.log(LogLevel.Error, `IRetryPolicy.nextRetryDelayInMilliseconds(${previousRetryCount}, ${elapsedMilliseconds}) threw error '${e}'.`);\r\n return null;\r\n }\r\n }\r\n\r\n private _cancelCallbacksWithError(error: Error) {\r\n const callbacks = this._callbacks;\r\n this._callbacks = {};\r\n\r\n Object.keys(callbacks)\r\n .forEach((key) => {\r\n const callback = callbacks[key];\r\n try {\r\n callback(null, error);\r\n } catch (e) {\r\n this._logger.log(LogLevel.Error, `Stream 'error' callback called with '${error}' threw error: ${getErrorString(e)}`);\r\n }\r\n });\r\n }\r\n\r\n private _cleanupPingTimer(): void {\r\n if (this._pingServerHandle) {\r\n clearTimeout(this._pingServerHandle);\r\n this._pingServerHandle = undefined;\r\n }\r\n }\r\n\r\n private _cleanupTimeout(): void {\r\n if (this._timeoutHandle) {\r\n clearTimeout(this._timeoutHandle);\r\n }\r\n }\r\n\r\n private _createInvocation(methodName: string, args: any[], nonblocking: boolean, streamIds: string[]): InvocationMessage {\r\n if (nonblocking) {\r\n if (streamIds.length !== 0) {\r\n return {\r\n arguments: args,\r\n streamIds,\r\n target: methodName,\r\n type: MessageType.Invocation,\r\n };\r\n } else {\r\n return {\r\n arguments: args,\r\n target: methodName,\r\n type: MessageType.Invocation,\r\n };\r\n }\r\n } else {\r\n const invocationId = this._invocationId;\r\n this._invocationId++;\r\n\r\n if (streamIds.length !== 0) {\r\n return {\r\n arguments: args,\r\n invocationId: invocationId.toString(),\r\n streamIds,\r\n target: methodName,\r\n type: MessageType.Invocation,\r\n };\r\n } else {\r\n return {\r\n arguments: args,\r\n invocationId: invocationId.toString(),\r\n target: methodName,\r\n type: MessageType.Invocation,\r\n };\r\n }\r\n }\r\n }\r\n\r\n private _launchStreams(streams: IStreamResult[], promiseQueue: Promise): void {\r\n if (streams.length === 0) {\r\n return;\r\n }\r\n\r\n // Synchronize stream data so they arrive in-order on the server\r\n if (!promiseQueue) {\r\n promiseQueue = Promise.resolve();\r\n }\r\n\r\n // We want to iterate over the keys, since the keys are the stream ids\r\n // eslint-disable-next-line guard-for-in\r\n for (const streamId in streams) {\r\n streams[streamId].subscribe({\r\n complete: () => {\r\n promiseQueue = promiseQueue.then(() => this._sendWithProtocol(this._createCompletionMessage(streamId)));\r\n },\r\n error: (err) => {\r\n let message: string;\r\n if (err instanceof Error) {\r\n message = err.message;\r\n } else if (err && err.toString) {\r\n message = err.toString();\r\n } else {\r\n message = \"Unknown error\";\r\n }\r\n\r\n promiseQueue = promiseQueue.then(() => this._sendWithProtocol(this._createCompletionMessage(streamId, message)));\r\n },\r\n next: (item) => {\r\n promiseQueue = promiseQueue.then(() => this._sendWithProtocol(this._createStreamItemMessage(streamId, item)));\r\n },\r\n });\r\n }\r\n }\r\n\r\n private _replaceStreamingParams(args: any[]): [IStreamResult[], string[]] {\r\n const streams: IStreamResult[] = [];\r\n const streamIds: string[] = [];\r\n for (let i = 0; i < args.length; i++) {\r\n const argument = args[i];\r\n if (this._isObservable(argument)) {\r\n const streamId = this._invocationId;\r\n this._invocationId++;\r\n // Store the stream for later use\r\n streams[streamId] = argument;\r\n streamIds.push(streamId.toString());\r\n\r\n // remove stream from args\r\n args.splice(i, 1);\r\n }\r\n }\r\n\r\n return [streams, streamIds];\r\n }\r\n\r\n private _isObservable(arg: any): arg is IStreamResult {\r\n // This allows other stream implementations to just work (like rxjs)\r\n return arg && arg.subscribe && typeof arg.subscribe === \"function\";\r\n }\r\n\r\n private _createStreamInvocation(methodName: string, args: any[], streamIds: string[]): StreamInvocationMessage {\r\n const invocationId = this._invocationId;\r\n this._invocationId++;\r\n\r\n if (streamIds.length !== 0) {\r\n return {\r\n arguments: args,\r\n invocationId: invocationId.toString(),\r\n streamIds,\r\n target: methodName,\r\n type: MessageType.StreamInvocation,\r\n };\r\n } else {\r\n return {\r\n arguments: args,\r\n invocationId: invocationId.toString(),\r\n target: methodName,\r\n type: MessageType.StreamInvocation,\r\n };\r\n }\r\n }\r\n\r\n private _createCancelInvocation(id: string): CancelInvocationMessage {\r\n return {\r\n invocationId: id,\r\n type: MessageType.CancelInvocation,\r\n };\r\n }\r\n\r\n private _createStreamItemMessage(id: string, item: any): StreamItemMessage {\r\n return {\r\n invocationId: id,\r\n item,\r\n type: MessageType.StreamItem,\r\n };\r\n }\r\n\r\n private _createCompletionMessage(id: string, error?: any, result?: any): CompletionMessage {\r\n if (error) {\r\n return {\r\n error,\r\n invocationId: id,\r\n type: MessageType.Completion,\r\n };\r\n }\r\n\r\n return {\r\n invocationId: id,\r\n result,\r\n type: MessageType.Completion,\r\n };\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\nimport { CompletionMessage, HubMessage, IHubProtocol, InvocationMessage, MessageType, StreamItemMessage } from \"./IHubProtocol\";\r\nimport { ILogger, LogLevel } from \"./ILogger\";\r\nimport { TransferFormat } from \"./ITransport\";\r\nimport { NullLogger } from \"./Loggers\";\r\nimport { TextMessageFormat } from \"./TextMessageFormat\";\r\n\r\nconst JSON_HUB_PROTOCOL_NAME: string = \"json\";\r\n\r\n/** Implements the JSON Hub Protocol. */\r\nexport class JsonHubProtocol implements IHubProtocol {\r\n\r\n /** @inheritDoc */\r\n public readonly name: string = JSON_HUB_PROTOCOL_NAME;\r\n /** @inheritDoc */\r\n public readonly version: number = 1;\r\n\r\n /** @inheritDoc */\r\n public readonly transferFormat: TransferFormat = TransferFormat.Text;\r\n\r\n /** Creates an array of {@link @microsoft/signalr.HubMessage} objects from the specified serialized representation.\r\n *\r\n * @param {string} input A string containing the serialized representation.\r\n * @param {ILogger} logger A logger that will be used to log messages that occur during parsing.\r\n */\r\n public parseMessages(input: string, logger: ILogger): HubMessage[] {\r\n // The interface does allow \"ArrayBuffer\" to be passed in, but this implementation does not. So let's throw a useful error.\r\n if (typeof input !== \"string\") {\r\n throw new Error(\"Invalid input for JSON hub protocol. Expected a string.\");\r\n }\r\n\r\n if (!input) {\r\n return [];\r\n }\r\n\r\n if (logger === null) {\r\n logger = NullLogger.instance;\r\n }\r\n\r\n // Parse the messages\r\n const messages = TextMessageFormat.parse(input);\r\n\r\n const hubMessages = [];\r\n for (const message of messages) {\r\n const parsedMessage = JSON.parse(message) as HubMessage;\r\n if (typeof parsedMessage.type !== \"number\") {\r\n throw new Error(\"Invalid payload.\");\r\n }\r\n switch (parsedMessage.type) {\r\n case MessageType.Invocation:\r\n this._isInvocationMessage(parsedMessage);\r\n break;\r\n case MessageType.StreamItem:\r\n this._isStreamItemMessage(parsedMessage);\r\n break;\r\n case MessageType.Completion:\r\n this._isCompletionMessage(parsedMessage);\r\n break;\r\n case MessageType.Ping:\r\n // Single value, no need to validate\r\n break;\r\n case MessageType.Close:\r\n // All optional values, no need to validate\r\n break;\r\n default:\r\n // Future protocol changes can add message types, old clients can ignore them\r\n logger.log(LogLevel.Information, \"Unknown message type '\" + parsedMessage.type + \"' ignored.\");\r\n continue;\r\n }\r\n hubMessages.push(parsedMessage);\r\n }\r\n\r\n return hubMessages;\r\n }\r\n\r\n /** Writes the specified {@link @microsoft/signalr.HubMessage} to a string and returns it.\r\n *\r\n * @param {HubMessage} message The message to write.\r\n * @returns {string} A string containing the serialized representation of the message.\r\n */\r\n public writeMessage(message: HubMessage): string {\r\n return TextMessageFormat.write(JSON.stringify(message));\r\n }\r\n\r\n private _isInvocationMessage(message: InvocationMessage): void {\r\n this._assertNotEmptyString(message.target, \"Invalid payload for Invocation message.\");\r\n\r\n if (message.invocationId !== undefined) {\r\n this._assertNotEmptyString(message.invocationId, \"Invalid payload for Invocation message.\");\r\n }\r\n }\r\n\r\n private _isStreamItemMessage(message: StreamItemMessage): void {\r\n this._assertNotEmptyString(message.invocationId, \"Invalid payload for StreamItem message.\");\r\n\r\n if (message.item === undefined) {\r\n throw new Error(\"Invalid payload for StreamItem message.\");\r\n }\r\n }\r\n\r\n private _isCompletionMessage(message: CompletionMessage): void {\r\n if (message.result && message.error) {\r\n throw new Error(\"Invalid payload for Completion message.\");\r\n }\r\n\r\n if (!message.result && message.error) {\r\n this._assertNotEmptyString(message.error, \"Invalid payload for Completion message.\");\r\n }\r\n\r\n this._assertNotEmptyString(message.invocationId, \"Invalid payload for Completion message.\");\r\n }\r\n\r\n private _assertNotEmptyString(value: any, errorMessage: string): void {\r\n if (typeof value !== \"string\" || value === \"\") {\r\n throw new Error(errorMessage);\r\n }\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\nimport { DefaultReconnectPolicy } from \"./DefaultReconnectPolicy\";\r\nimport { HttpConnection } from \"./HttpConnection\";\r\nimport { HubConnection } from \"./HubConnection\";\r\nimport { IHttpConnectionOptions } from \"./IHttpConnectionOptions\";\r\nimport { IHubProtocol } from \"./IHubProtocol\";\r\nimport { ILogger, LogLevel } from \"./ILogger\";\r\nimport { IRetryPolicy } from \"./IRetryPolicy\";\r\nimport { HttpTransportType } from \"./ITransport\";\r\nimport { JsonHubProtocol } from \"./JsonHubProtocol\";\r\nimport { NullLogger } from \"./Loggers\";\r\nimport { Arg, ConsoleLogger } from \"./Utils\";\r\n\r\nconst LogLevelNameMapping: {[k: string]: LogLevel} = {\r\n trace: LogLevel.Trace,\r\n debug: LogLevel.Debug,\r\n info: LogLevel.Information,\r\n information: LogLevel.Information,\r\n warn: LogLevel.Warning,\r\n warning: LogLevel.Warning,\r\n error: LogLevel.Error,\r\n critical: LogLevel.Critical,\r\n none: LogLevel.None,\r\n};\r\n\r\nfunction parseLogLevel(name: string): LogLevel {\r\n // Case-insensitive matching via lower-casing\r\n // Yes, I know case-folding is a complicated problem in Unicode, but we only support\r\n // the ASCII strings defined in LogLevelNameMapping anyway, so it's fine -anurse.\r\n const mapping = LogLevelNameMapping[name.toLowerCase()];\r\n if (typeof mapping !== \"undefined\") {\r\n return mapping;\r\n } else {\r\n throw new Error(`Unknown log level: ${name}`);\r\n }\r\n}\r\n\r\n/** A builder for configuring {@link @microsoft/signalr.HubConnection} instances. */\r\nexport class HubConnectionBuilder {\r\n /** @internal */\r\n public protocol?: IHubProtocol;\r\n /** @internal */\r\n public httpConnectionOptions?: IHttpConnectionOptions;\r\n /** @internal */\r\n public url?: string;\r\n /** @internal */\r\n public logger?: ILogger;\r\n\r\n /** If defined, this indicates the client should automatically attempt to reconnect if the connection is lost. */\r\n /** @internal */\r\n public reconnectPolicy?: IRetryPolicy;\r\n\r\n /** Configures console logging for the {@link @microsoft/signalr.HubConnection}.\r\n *\r\n * @param {LogLevel} logLevel The minimum level of messages to log. Anything at this level, or a more severe level, will be logged.\r\n * @returns The {@link @microsoft/signalr.HubConnectionBuilder} instance, for chaining.\r\n */\r\n public configureLogging(logLevel: LogLevel): HubConnectionBuilder;\r\n\r\n /** Configures custom logging for the {@link @microsoft/signalr.HubConnection}.\r\n *\r\n * @param {ILogger} logger An object implementing the {@link @microsoft/signalr.ILogger} interface, which will be used to write all log messages.\r\n * @returns The {@link @microsoft/signalr.HubConnectionBuilder} instance, for chaining.\r\n */\r\n public configureLogging(logger: ILogger): HubConnectionBuilder;\r\n\r\n /** Configures custom logging for the {@link @microsoft/signalr.HubConnection}.\r\n *\r\n * @param {string} logLevel A string representing a LogLevel setting a minimum level of messages to log.\r\n * See {@link https://docs.microsoft.com/aspnet/core/signalr/configuration#configure-logging|the documentation for client logging configuration} for more details.\r\n */\r\n public configureLogging(logLevel: string): HubConnectionBuilder;\r\n\r\n /** Configures custom logging for the {@link @microsoft/signalr.HubConnection}.\r\n *\r\n * @param {LogLevel | string | ILogger} logging A {@link @microsoft/signalr.LogLevel}, a string representing a LogLevel, or an object implementing the {@link @microsoft/signalr.ILogger} interface.\r\n * See {@link https://docs.microsoft.com/aspnet/core/signalr/configuration#configure-logging|the documentation for client logging configuration} for more details.\r\n * @returns The {@link @microsoft/signalr.HubConnectionBuilder} instance, for chaining.\r\n */\r\n public configureLogging(logging: LogLevel | string | ILogger): HubConnectionBuilder;\r\n public configureLogging(logging: LogLevel | string | ILogger): HubConnectionBuilder {\r\n Arg.isRequired(logging, \"logging\");\r\n\r\n if (isLogger(logging)) {\r\n this.logger = logging;\r\n } else if (typeof logging === \"string\") {\r\n const logLevel = parseLogLevel(logging);\r\n this.logger = new ConsoleLogger(logLevel);\r\n } else {\r\n this.logger = new ConsoleLogger(logging);\r\n }\r\n\r\n return this;\r\n }\r\n\r\n /** Configures the {@link @microsoft/signalr.HubConnection} to use HTTP-based transports to connect to the specified URL.\r\n *\r\n * The transport will be selected automatically based on what the server and client support.\r\n *\r\n * @param {string} url The URL the connection will use.\r\n * @returns The {@link @microsoft/signalr.HubConnectionBuilder} instance, for chaining.\r\n */\r\n public withUrl(url: string): HubConnectionBuilder;\r\n\r\n /** Configures the {@link @microsoft/signalr.HubConnection} to use the specified HTTP-based transport to connect to the specified URL.\r\n *\r\n * @param {string} url The URL the connection will use.\r\n * @param {HttpTransportType} transportType The specific transport to use.\r\n * @returns The {@link @microsoft/signalr.HubConnectionBuilder} instance, for chaining.\r\n */\r\n public withUrl(url: string, transportType: HttpTransportType): HubConnectionBuilder;\r\n\r\n /** Configures the {@link @microsoft/signalr.HubConnection} to use HTTP-based transports to connect to the specified URL.\r\n *\r\n * @param {string} url The URL the connection will use.\r\n * @param {IHttpConnectionOptions} options An options object used to configure the connection.\r\n * @returns The {@link @microsoft/signalr.HubConnectionBuilder} instance, for chaining.\r\n */\r\n public withUrl(url: string, options: IHttpConnectionOptions): HubConnectionBuilder;\r\n public withUrl(url: string, transportTypeOrOptions?: IHttpConnectionOptions | HttpTransportType): HubConnectionBuilder {\r\n Arg.isRequired(url, \"url\");\r\n Arg.isNotEmpty(url, \"url\");\r\n\r\n this.url = url;\r\n\r\n // Flow-typing knows where it's at. Since HttpTransportType is a number and IHttpConnectionOptions is guaranteed\r\n // to be an object, we know (as does TypeScript) this comparison is all we need to figure out which overload was called.\r\n if (typeof transportTypeOrOptions === \"object\") {\r\n this.httpConnectionOptions = { ...this.httpConnectionOptions, ...transportTypeOrOptions };\r\n } else {\r\n this.httpConnectionOptions = {\r\n ...this.httpConnectionOptions,\r\n transport: transportTypeOrOptions,\r\n };\r\n }\r\n\r\n return this;\r\n }\r\n\r\n /** Configures the {@link @microsoft/signalr.HubConnection} to use the specified Hub Protocol.\r\n *\r\n * @param {IHubProtocol} protocol The {@link @microsoft/signalr.IHubProtocol} implementation to use.\r\n */\r\n public withHubProtocol(protocol: IHubProtocol): HubConnectionBuilder {\r\n Arg.isRequired(protocol, \"protocol\");\r\n\r\n this.protocol = protocol;\r\n return this;\r\n }\r\n\r\n /** Configures the {@link @microsoft/signalr.HubConnection} to automatically attempt to reconnect if the connection is lost.\r\n * By default, the client will wait 0, 2, 10 and 30 seconds respectively before trying up to 4 reconnect attempts.\r\n */\r\n public withAutomaticReconnect(): HubConnectionBuilder;\r\n\r\n /** Configures the {@link @microsoft/signalr.HubConnection} to automatically attempt to reconnect if the connection is lost.\r\n *\r\n * @param {number[]} retryDelays An array containing the delays in milliseconds before trying each reconnect attempt.\r\n * The length of the array represents how many failed reconnect attempts it takes before the client will stop attempting to reconnect.\r\n */\r\n public withAutomaticReconnect(retryDelays: number[]): HubConnectionBuilder;\r\n\r\n /** Configures the {@link @microsoft/signalr.HubConnection} to automatically attempt to reconnect if the connection is lost.\r\n *\r\n * @param {IRetryPolicy} reconnectPolicy An {@link @microsoft/signalR.IRetryPolicy} that controls the timing and number of reconnect attempts.\r\n */\r\n public withAutomaticReconnect(reconnectPolicy: IRetryPolicy): HubConnectionBuilder;\r\n public withAutomaticReconnect(retryDelaysOrReconnectPolicy?: number[] | IRetryPolicy): HubConnectionBuilder {\r\n if (this.reconnectPolicy) {\r\n throw new Error(\"A reconnectPolicy has already been set.\");\r\n }\r\n\r\n if (!retryDelaysOrReconnectPolicy) {\r\n this.reconnectPolicy = new DefaultReconnectPolicy();\r\n } else if (Array.isArray(retryDelaysOrReconnectPolicy)) {\r\n this.reconnectPolicy = new DefaultReconnectPolicy(retryDelaysOrReconnectPolicy);\r\n } else {\r\n this.reconnectPolicy = retryDelaysOrReconnectPolicy;\r\n }\r\n\r\n return this;\r\n }\r\n\r\n /** Creates a {@link @microsoft/signalr.HubConnection} from the configuration options specified in this builder.\r\n *\r\n * @returns {HubConnection} The configured {@link @microsoft/signalr.HubConnection}.\r\n */\r\n public build(): HubConnection {\r\n // If httpConnectionOptions has a logger, use it. Otherwise, override it with the one\r\n // provided to configureLogger\r\n const httpConnectionOptions = this.httpConnectionOptions || {};\r\n\r\n // If it's 'null', the user **explicitly** asked for null, don't mess with it.\r\n if (httpConnectionOptions.logger === undefined) {\r\n // If our logger is undefined or null, that's OK, the HttpConnection constructor will handle it.\r\n httpConnectionOptions.logger = this.logger;\r\n }\r\n\r\n // Now create the connection\r\n if (!this.url) {\r\n throw new Error(\"The 'HubConnectionBuilder.withUrl' method must be called before building the connection.\");\r\n }\r\n const connection = new HttpConnection(this.url, httpConnectionOptions);\r\n\r\n return HubConnection.create(\r\n connection,\r\n this.logger || NullLogger.instance,\r\n this.protocol || new JsonHubProtocol(),\r\n this.reconnectPolicy);\r\n }\r\n}\r\n\r\nfunction isLogger(logger: any): logger is ILogger {\r\n return logger.log !== undefined;\r\n}\r\n","import * as signalR from \"@microsoft/signalr\";\r\n\r\nexport const Constants = {\r\n animationDuration: 180,\r\n signalRLogLevel: signalR.LogLevel.Error,\r\n};\r\n","import * as signalR from \"@microsoft/signalr\";\r\nimport { ReactNode, createContext, useCallback, useContext, useEffect, useRef, useState } from \"react\";\r\nimport { GetLadderStateResult } from \"results/ladders/GetLadderStateResult\";\r\nimport { Constants } from \"utils/Constants\";\r\nimport { accessTokenFactory } from \"../hooks/useAuth\";\r\nimport { LadderChatMessageDto } from \"dtos/LadderChatMessageDto\";\r\nimport { GetLadderPlayerStateResult } from \"results/ladders/GetLadderPlayerStateResult\";\r\nimport { GlobalContext } from \"contexts/GlobalContext\";\r\nimport { GetLadderResult } from \"results/ladders/GetLadderResult\";\r\nimport { GetLadderPlayerStateChallengeResult } from \"results/ladders/GetLadderPlayerStateChallengeResult\";\r\nimport { GetLadderPlayerStateCancellationResult } from \"results/ladders/GetLadderPlayerStateCancellationResult\";\r\nimport { GetLadderPlayerStatePairingResult } from \"results/ladders/GetLadderPlayerStatePairingResult\";\r\nimport { GetLadderPlayerStateConfirmationResult } from \"results/ladders/GetLadderPlayerStateConfirmationResult\";\r\nimport { useLadderStatus } from \"hooks/useLadderStatus\";\r\nimport { LadderMatchCompletedResult } from \"results/ladders/LadderMatchCompletedResult\";\r\nimport { Modal } from \"bootstrap\";\r\nimport Logo192 from \"assets/img/logo192.png\";\r\nimport Logo24 from \"assets/img/logo24.png\";\r\nimport { RouteLink } from \"Routes\";\r\nimport { HubConnectionState } from \"@microsoft/signalr\";\r\n\r\nconst hideActiveModals = () => {\r\n const modals = document.querySelectorAll(\".modal.show\");\r\n\r\n for (const m of modals) {\r\n const modal = Modal.getOrCreateInstance(m);\r\n\r\n modal.hide();\r\n }\r\n};\r\n\r\nexport const useLadderContext = () => {\r\n const { service, catchServerError } = useContext(GlobalContext);\r\n const { preconnect } = service;\r\n\r\n const hub = useRef();\r\n const [hubState, setHubState] = useState(HubConnectionState.Connecting);\r\n\r\n const [ladder, setLadder] = useState();\r\n const [ladderState, setLadderState] = useState();\r\n const [playerState, setPlayerState] = useState();\r\n const [isConnectingToLadder, setIsConnectingToLadder] = useState(false);\r\n const [isMatchCompleted, setIsMatchCompleted] = useState(false);\r\n const [isMatchReporting, setIsMatchReporting] = useState(false);\r\n const [showChallengeDeclined, setShowChallengeDeclined] = useState(false);\r\n const [showCancellationDeclined, setShowCancellationDeclined] = useState(false);\r\n const [showMatchCancelled, setShowMatchCancelled] = useState(false);\r\n const [showMatchAutoCancelled, setShowMatchAutoCancelled] = useState(false);\r\n const [showEntrantDeclinedMatch, setShowEntrantDeclinedMatch] = useState(false);\r\n const [showOpponentDeclinedMatch, setShowOpponentDeclinedMatch] = useState(false);\r\n const [completedResult, setCompletedResult] = useState();\r\n\r\n const { ladderStatus } = useLadderStatus({ ladder, playerState });\r\n\r\n // clear ladder state\r\n const resetLadderState = () => {\r\n setLadder(undefined);\r\n setLadderState(undefined);\r\n setPlayerState(undefined);\r\n };\r\n\r\n // debug log\r\n const [debugMessages, setDebugMessages] = useState>([]);\r\n\r\n const consoleLog = (message: string) => {\r\n if (localStorage.getItem(\"Shitashi\")) {\r\n // eslint-disable-next-line no-console\r\n console.log(`DEBUG: ${message}`);\r\n }\r\n\r\n setDebugMessages(old => [{ id: old.length + 1, name: message }, ...old]);\r\n };\r\n\r\n const notify = (props: NotificationOptions & { title: string }) => {\r\n const { title } = props;\r\n\r\n navigator.serviceWorker.getRegistration().then(registration => {\r\n const isFocused = document.hasFocus();\r\n\r\n if (registration && !isFocused) {\r\n registration.showNotification(title, {\r\n icon: Logo192,\r\n badge: Logo24,\r\n ...props,\r\n });\r\n }\r\n });\r\n };\r\n\r\n const handlePreconnect = useCallback(() => {\r\n if (ladder?.ladderId) {\r\n // once connected, get game state\r\n preconnect(ladder.ladderId)\r\n .then(x => {\r\n consoleLog(\"Updating ladder and player state\");\r\n setLadderState(x.ladderState);\r\n setPlayerState(x.playerState);\r\n })\r\n .catch(catchServerError);\r\n }\r\n }, [catchServerError, preconnect, ladder?.ladderId]);\r\n\r\n // perform initial preconnect\r\n useEffect(() => {\r\n if (ladder && !ladderState) {\r\n handlePreconnect();\r\n }\r\n }, [handlePreconnect, ladder, ladderState]);\r\n\r\n // web lock (experimental)\r\n useEffect(() => {\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n let lockResolver;\r\n\r\n if (navigator && navigator.locks && navigator.locks.request) {\r\n const promise = new Promise(res => {\r\n lockResolver = res;\r\n });\r\n\r\n navigator.locks.request(\"unique_lock_name\", { mode: \"shared\" }, () => promise);\r\n }\r\n }, []);\r\n\r\n // web socket connection\r\n useEffect(() => {\r\n if (ladder && !hub.current) {\r\n consoleLog(\"Building web socket connection\");\r\n\r\n // builds the SignalR connection\r\n const hubConnection = new signalR.HubConnectionBuilder()\r\n .withUrl(`/hubs/ladders?ladderId=${ladder.ladderId}`, { accessTokenFactory })\r\n .configureLogging(Constants.signalRLogLevel)\r\n .withAutomaticReconnect()\r\n .build();\r\n\r\n const startHub = async () => {\r\n await hubConnection\r\n .start()\r\n .then(() => {\r\n setIsConnectingToLadder(false);\r\n })\r\n .catch(() => {\r\n consoleLog(\"Error in connecting\");\r\n\r\n resetLadderState();\r\n });\r\n };\r\n\r\n hubConnection.onclose(async () => {\r\n setHubState(HubConnectionState.Disconnected);\r\n });\r\n\r\n hubConnection.onreconnecting(async () => {\r\n setHubState(HubConnectionState.Reconnecting);\r\n });\r\n\r\n hubConnection.onreconnected(async () => {\r\n setHubState(HubConnectionState.Connected);\r\n\r\n handlePreconnect();\r\n });\r\n\r\n hubConnection.on(\"AddLadderChatMessage\", (message: LadderChatMessageDto) => {\r\n setLadderState(old => old && { ...old, messages: [message, ...old.messages] });\r\n });\r\n\r\n hubConnection.on(\"AddPairingChatMessage\", (message: LadderChatMessageDto) => {\r\n setPlayerState(\r\n old =>\r\n old?.pairing?.messages && {\r\n ...old,\r\n pairing: { ...old.pairing, messages: [message, ...old.pairing.messages] },\r\n },\r\n );\r\n });\r\n\r\n hubConnection.on(\"UpdateActiveUserCount\", (activeUserCount: number) => {\r\n setLadderState(old => old && { ...old, activeUserCount });\r\n });\r\n\r\n hubConnection.on(\"SetIsQueued\", () => {\r\n setPlayerState(old => old && { ...old, userIsQueued: true });\r\n });\r\n\r\n hubConnection.on(\"SetIsUnqueued\", () => {\r\n setPlayerState(old => old && { ...old, userIsQueued: false });\r\n });\r\n\r\n hubConnection.on(\"SetHasConfirmation\", () => {\r\n setPlayerState(\r\n old =>\r\n old && {\r\n ...old,\r\n userIsQueued: false,\r\n confirmation: {\r\n userHasConfirmation: true,\r\n opponentHasConfirmed: false,\r\n userHasConfirmed: false,\r\n },\r\n },\r\n );\r\n });\r\n\r\n hubConnection.on(\"SetPlayerMatchConfirmed\", (opponentName: string) => {\r\n setPlayerState(\r\n old =>\r\n old?.confirmation && {\r\n ...old,\r\n confirmation: { ...old.confirmation, userHasConfirmed: true, opponentName },\r\n },\r\n );\r\n });\r\n\r\n hubConnection.on(\"SetOpponentMatchConfirmed\", () => {\r\n setPlayerState(\r\n old =>\r\n old?.confirmation && {\r\n ...old,\r\n confirmation: { ...old.confirmation, opponentHasConfirmed: true },\r\n },\r\n );\r\n });\r\n\r\n hubConnection.on(\"EntrantDeclinedMatch\", () => {\r\n setShowEntrantDeclinedMatch(true);\r\n setPlayerState(old => old && { ...old, confirmation: undefined });\r\n });\r\n\r\n hubConnection.on(\"OpponentDeclinedMatch\", () => {\r\n setShowOpponentDeclinedMatch(true);\r\n setPlayerState(old => old && { ...old, confirmation: undefined });\r\n });\r\n\r\n hubConnection.on(\"UpdatePlayerState\", (state: GetLadderPlayerStateResult) => {\r\n setPlayerState(state);\r\n });\r\n\r\n hubConnection.on(\"CompleteMatch\", () => {\r\n setIsMatchCompleted(true);\r\n });\r\n\r\n hubConnection.on(\"UpdateChallenge\", (challenge?: GetLadderPlayerStateChallengeResult) => {\r\n hideActiveModals();\r\n\r\n setPlayerState(old => old && { ...old, challenge });\r\n });\r\n\r\n hubConnection.on(\"ShowChallengeDeclined\", () => {\r\n setShowChallengeDeclined(true);\r\n });\r\n\r\n hubConnection.on(\"UpdateCancellation\", (cancellation?: GetLadderPlayerStateCancellationResult) => {\r\n setPlayerState(old => old && { ...old, cancellation });\r\n });\r\n\r\n hubConnection.on(\"ShowCancellationDeclined\", () => {\r\n setShowCancellationDeclined(true);\r\n });\r\n\r\n hubConnection.on(\"ShowMatchCancelled\", () => {\r\n setShowMatchCancelled(true);\r\n });\r\n\r\n hubConnection.on(\"ShowMatchAutoCancelled\", () => {\r\n setShowMatchAutoCancelled(true);\r\n });\r\n\r\n hubConnection.on(\"UpdatePairing\", (pairing?: GetLadderPlayerStatePairingResult) => {\r\n setPlayerState(old => old && { ...old, pairing });\r\n });\r\n\r\n hubConnection.on(\"UpdateConfirmation\", (confirmation?: GetLadderPlayerStateConfirmationResult) => {\r\n setPlayerState(old => old && { ...old, confirmation });\r\n });\r\n\r\n hubConnection.on(\"UpdatePairingEntrantBlindCharacter\", (characterId: number) => {\r\n setPlayerState(\r\n old =>\r\n old?.pairing && {\r\n ...old,\r\n pairing: { ...old.pairing, chosenCharacterId: characterId },\r\n },\r\n );\r\n });\r\n\r\n hubConnection.on(\"UpdatePairingOpponentBlindCharacter\", (characterId: number) => {\r\n setPlayerState(\r\n old =>\r\n old?.pairing && {\r\n ...old,\r\n pairing: { ...old.pairing, opponentCharacterId: characterId },\r\n },\r\n );\r\n });\r\n\r\n hubConnection.on(\"ShowMatchResult\", (result: LadderMatchCompletedResult) => {\r\n hideActiveModals();\r\n setCompletedResult(result);\r\n setIsMatchReporting(false);\r\n });\r\n\r\n hubConnection.on(\"NotifyChallengeReceived\", (challengeId: number, opponentName: string) => {\r\n notify({\r\n title: \"Challenge received\",\r\n body: `${opponentName} wants to fight`,\r\n actions: [\r\n { action: \"accept-challenge\", title: \"Accept\" },\r\n { action: \"reject-challenge\", title: \"Reject\" },\r\n ],\r\n data: {\r\n acceptUrl: RouteLink.notificationAcceptChallenge(ladder?.ladderId, challengeId),\r\n rejectUrl: RouteLink.notificationRejectChallenge(ladder?.ladderId, challengeId),\r\n lobbyUrl: RouteLink.ladderLobby(ladder?.ladderId),\r\n },\r\n });\r\n });\r\n\r\n hubConnection.on(\"NotifyQueueConfirmationReceived\", () => {\r\n notify({\r\n title: \"Ladder match ready\",\r\n body: \"Accept your queue match\",\r\n actions: [\r\n { action: \"accept-queue\", title: \"Accept\" },\r\n { action: \"reject-queue\", title: \"Reject\" },\r\n ],\r\n data: {\r\n acceptUrl: RouteLink.notificationAcceptQueue(ladder?.ladderId),\r\n rejectUrl: RouteLink.notificationRejectQueue(ladder?.ladderId),\r\n lobbyUrl: RouteLink.ladderLobby(ladder?.ladderId),\r\n },\r\n });\r\n });\r\n\r\n // start connection\r\n startHub();\r\n\r\n hub.current = hubConnection;\r\n setHubState(HubConnectionState.Connected);\r\n\r\n // cleanup\r\n return () => {\r\n if (ladderState) {\r\n consoleLog(\"Stopping hub connection\");\r\n setIsConnectingToLadder(false);\r\n hubConnection.stop();\r\n }\r\n };\r\n }\r\n }, [handlePreconnect, ladder, ladderState]);\r\n\r\n // register for ladder\r\n const setUserHasEntered = () => {\r\n setLadder(old => old && { ...old, userHasEntered: true });\r\n };\r\n\r\n // leave match\r\n const leaveMatch = () => {\r\n setPlayerState(old => old && { ...old, pairing: undefined });\r\n };\r\n\r\n // reset if match is complete on load\r\n useEffect(() => {\r\n if (playerState?.pairing?.pairingId) {\r\n setIsMatchCompleted(false);\r\n }\r\n }, [playerState?.pairing?.pairingId]);\r\n\r\n const stopHub = () => {\r\n consoleLog(\"Stopping hub\");\r\n\r\n hub.current?.stop();\r\n };\r\n\r\n return {\r\n setIsConnectingToLadder,\r\n setLadder,\r\n ladder,\r\n ladderState,\r\n playerState,\r\n ladderStatus,\r\n isConnectingToLadder,\r\n setUserHasEntered,\r\n resetLadderState,\r\n leaveMatch,\r\n stopHub,\r\n isMatchCompleted,\r\n setIsMatchCompleted,\r\n isMatchReporting,\r\n setIsMatchReporting,\r\n showChallengeDeclined,\r\n setShowChallengeDeclined,\r\n showCancellationDeclined,\r\n setShowCancellationDeclined,\r\n showMatchCancelled,\r\n setShowMatchCancelled,\r\n showMatchAutoCancelled,\r\n setShowMatchAutoCancelled,\r\n showEntrantDeclinedMatch,\r\n setShowEntrantDeclinedMatch,\r\n showOpponentDeclinedMatch,\r\n setShowOpponentDeclinedMatch,\r\n completedResult,\r\n setCompletedResult,\r\n debugMessages,\r\n hubState,\r\n };\r\n};\r\n\r\n// automatic exports\r\nexport type ILadderContext = ReturnType;\r\nexport const LadderContext = createContext({} as ILadderContext);\r\n\r\ntype Props = {\r\n children: ReactNode;\r\n};\r\n\r\nexport const LadderContextProvider = (props: Props) => {\r\n const ladderContext = useLadderContext();\r\n return {props.children};\r\n};\r\n","import { GetLadderPlayerStateResult } from \"results/ladders/GetLadderPlayerStateResult\";\r\nimport { GetLadderResult } from \"results/ladders/GetLadderResult\";\r\n\r\ntype LadderStatus = \"Open\" | \"InQueue\" | \"ChallengingPlayer\" | \"MatchFound\" | \"ChallengeReceived\" | \"Banned\" | \"\";\r\n\r\nexport const useLadderStatus = (props: { ladder?: GetLadderResult; playerState?: GetLadderPlayerStateResult }) => {\r\n const { playerState } = props;\r\n\r\n let ladderStatus: LadderStatus = \"\";\r\n\r\n switch (true) {\r\n case playerState?.userIsBanned:\r\n ladderStatus = \"Banned\";\r\n break;\r\n case !!playerState?.pairing:\r\n ladderStatus = \"MatchFound\";\r\n break;\r\n case playerState?.challenge?.userHasChallengeSent:\r\n ladderStatus = \"ChallengingPlayer\";\r\n break;\r\n case playerState?.challenge?.userHasChallengeReceived:\r\n ladderStatus = \"ChallengeReceived\";\r\n break;\r\n case playerState?.userIsQueued:\r\n ladderStatus = \"InQueue\";\r\n break;\r\n case !!playerState:\r\n ladderStatus = \"Open\";\r\n break;\r\n }\r\n\r\n return { ladderStatus };\r\n};\r\n","import { useState, useEffect } from \"react\";\r\nimport { RouteList } from \"Routes\";\r\nimport { useHistory } from \"react-router-dom\";\r\n\r\nconst storage = localStorage.getItem(\"Shitashi\") ? sessionStorage : localStorage;\r\n\r\nexport const authTokenKey = \"auth-v1\";\r\n\r\nconst oldAuthTokenKeys = [\"auth-token\", \"data-key\", \"token\"];\r\n\r\nfor (const key of oldAuthTokenKeys) {\r\n storage.removeItem(key);\r\n}\r\n\r\nexport const getToken = () => storage.getItem(authTokenKey) ?? \"\";\r\nexport const accessTokenFactory = () => getToken();\r\n\r\nexport const useAuth = () => {\r\n const history = useHistory();\r\n\r\n const [isAuthenticated, setIsAuthenticated] = useState(false);\r\n\r\n // account methods\r\n const login = (token: string) => {\r\n setIsAuthenticated(true);\r\n storage.setItem(authTokenKey, token);\r\n history.push(RouteList.Home);\r\n };\r\n\r\n const logout = () => {\r\n setIsAuthenticated(false);\r\n storage.removeItem(authTokenKey);\r\n history.push(RouteList.Home);\r\n };\r\n\r\n // the user is logged in if they have the token saved in storage on page load\r\n useEffect(() => {\r\n const token = storage.getItem(authTokenKey);\r\n\r\n if (token) {\r\n setIsAuthenticated(true);\r\n }\r\n }, []);\r\n\r\n return {\r\n isAuthenticated,\r\n login,\r\n logout,\r\n };\r\n};\r\n","export var top = 'top';\nexport var bottom = 'bottom';\nexport var right = 'right';\nexport var left = 'left';\nexport var auto = 'auto';\nexport var basePlacements = [top, bottom, right, left];\nexport var start = 'start';\nexport var end = 'end';\nexport var clippingParents = 'clippingParents';\nexport var viewport = 'viewport';\nexport var popper = 'popper';\nexport var reference = 'reference';\nexport var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {\n return acc.concat([placement + \"-\" + start, placement + \"-\" + end]);\n}, []);\nexport var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {\n return acc.concat([placement, placement + \"-\" + start, placement + \"-\" + end]);\n}, []); // modifiers that need to read the DOM\n\nexport var beforeRead = 'beforeRead';\nexport var read = 'read';\nexport var afterRead = 'afterRead'; // pure-logic modifiers\n\nexport var beforeMain = 'beforeMain';\nexport var main = 'main';\nexport var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)\n\nexport var beforeWrite = 'beforeWrite';\nexport var write = 'write';\nexport var afterWrite = 'afterWrite';\nexport var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];","export default function getNodeName(element) {\n return element ? (element.nodeName || '').toLowerCase() : null;\n}","export default function getWindow(node) {\n if (node == null) {\n return window;\n }\n\n if (node.toString() !== '[object Window]') {\n var ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n\n return node;\n}","import getWindow from \"./getWindow.js\";\n\nfunction isElement(node) {\n var OwnElement = getWindow(node).Element;\n return node instanceof OwnElement || node instanceof Element;\n}\n\nfunction isHTMLElement(node) {\n var OwnElement = getWindow(node).HTMLElement;\n return node instanceof OwnElement || node instanceof HTMLElement;\n}\n\nfunction isShadowRoot(node) {\n // IE 11 has no ShadowRoot\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n\n var OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\nexport { isElement, isHTMLElement, isShadowRoot };","import getNodeName from \"../dom-utils/getNodeName.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // This modifier takes the styles prepared by the `computeStyles` modifier\n// and applies them to the HTMLElements such as popper and arrow\n\nfunction applyStyles(_ref) {\n var state = _ref.state;\n Object.keys(state.elements).forEach(function (name) {\n var style = state.styles[name] || {};\n var attributes = state.attributes[name] || {};\n var element = state.elements[name]; // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n } // Flow doesn't support to extend this property, but it's the most\n // effective way to apply styles to an HTMLElement\n // $FlowFixMe[cannot-write]\n\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (name) {\n var value = attributes[name];\n\n if (value === false) {\n element.removeAttribute(name);\n } else {\n element.setAttribute(name, value === true ? '' : value);\n }\n });\n });\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state;\n var initialStyles = {\n popper: {\n position: state.options.strategy,\n left: '0',\n top: '0',\n margin: '0'\n },\n arrow: {\n position: 'absolute'\n },\n reference: {}\n };\n Object.assign(state.elements.popper.style, initialStyles.popper);\n state.styles = initialStyles;\n\n if (state.elements.arrow) {\n Object.assign(state.elements.arrow.style, initialStyles.arrow);\n }\n\n return function () {\n Object.keys(state.elements).forEach(function (name) {\n var element = state.elements[name];\n var attributes = state.attributes[name] || {};\n var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); // Set all values to an empty string to unset them\n\n var style = styleProperties.reduce(function (style, property) {\n style[property] = '';\n return style;\n }, {}); // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n }\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (attribute) {\n element.removeAttribute(attribute);\n });\n });\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'applyStyles',\n enabled: true,\n phase: 'write',\n fn: applyStyles,\n effect: effect,\n requires: ['computeStyles']\n};","import { auto } from \"../enums.js\";\nexport default function getBasePlacement(placement) {\n return placement.split('-')[0];\n}","export var max = Math.max;\nexport var min = Math.min;\nexport var round = Math.round;","export default function getUAString() {\n var uaData = navigator.userAgentData;\n\n if (uaData != null && uaData.brands && Array.isArray(uaData.brands)) {\n return uaData.brands.map(function (item) {\n return item.brand + \"/\" + item.version;\n }).join(' ');\n }\n\n return navigator.userAgent;\n}","import getUAString from \"../utils/userAgent.js\";\nexport default function isLayoutViewport() {\n return !/^((?!chrome|android).)*safari/i.test(getUAString());\n}","import { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport { round } from \"../utils/math.js\";\nimport getWindow from \"./getWindow.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getBoundingClientRect(element, includeScale, isFixedStrategy) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n\n var clientRect = element.getBoundingClientRect();\n var scaleX = 1;\n var scaleY = 1;\n\n if (includeScale && isHTMLElement(element)) {\n scaleX = element.offsetWidth > 0 ? round(clientRect.width) / element.offsetWidth || 1 : 1;\n scaleY = element.offsetHeight > 0 ? round(clientRect.height) / element.offsetHeight || 1 : 1;\n }\n\n var _ref = isElement(element) ? getWindow(element) : window,\n visualViewport = _ref.visualViewport;\n\n var addVisualOffsets = !isLayoutViewport() && isFixedStrategy;\n var x = (clientRect.left + (addVisualOffsets && visualViewport ? visualViewport.offsetLeft : 0)) / scaleX;\n var y = (clientRect.top + (addVisualOffsets && visualViewport ? visualViewport.offsetTop : 0)) / scaleY;\n var width = clientRect.width / scaleX;\n var height = clientRect.height / scaleY;\n return {\n width: width,\n height: height,\n top: y,\n right: x + width,\n bottom: y + height,\n left: x,\n x: x,\n y: y\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\"; // Returns the layout rect of an element relative to its offsetParent. Layout\n// means it doesn't take into account transforms.\n\nexport default function getLayoutRect(element) {\n var clientRect = getBoundingClientRect(element); // Use the clientRect sizes if it's not been transformed.\n // Fixes https://github.com/popperjs/popper-core/issues/1223\n\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n\n if (Math.abs(clientRect.width - width) <= 1) {\n width = clientRect.width;\n }\n\n if (Math.abs(clientRect.height - height) <= 1) {\n height = clientRect.height;\n }\n\n return {\n x: element.offsetLeft,\n y: element.offsetTop,\n width: width,\n height: height\n };\n}","import { isShadowRoot } from \"./instanceOf.js\";\nexport default function contains(parent, child) {\n var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method\n\n if (parent.contains(child)) {\n return true;\n } // then fallback to custom implementation with Shadow DOM support\n else if (rootNode && isShadowRoot(rootNode)) {\n var next = child;\n\n do {\n if (next && parent.isSameNode(next)) {\n return true;\n } // $FlowFixMe[prop-missing]: need a better way to handle this...\n\n\n next = next.parentNode || next.host;\n } while (next);\n } // Give up, the result is false\n\n\n return false;\n}","import getWindow from \"./getWindow.js\";\nexport default function getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}","import getNodeName from \"./getNodeName.js\";\nexport default function isTableElement(element) {\n return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;\n}","import { isElement } from \"./instanceOf.js\";\nexport default function getDocumentElement(element) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return ((isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing]\n element.document) || window.document).documentElement;\n}","import getNodeName from \"./getNodeName.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport { isShadowRoot } from \"./instanceOf.js\";\nexport default function getParentNode(element) {\n if (getNodeName(element) === 'html') {\n return element;\n }\n\n return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle\n // $FlowFixMe[incompatible-return]\n // $FlowFixMe[prop-missing]\n element.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n element.parentNode || ( // DOM Element detected\n isShadowRoot(element) ? element.host : null) || // ShadowRoot detected\n // $FlowFixMe[incompatible-call]: HTMLElement is a Node\n getDocumentElement(element) // fallback\n\n );\n}","import getWindow from \"./getWindow.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isHTMLElement, isShadowRoot } from \"./instanceOf.js\";\nimport isTableElement from \"./isTableElement.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getUAString from \"../utils/userAgent.js\";\n\nfunction getTrueOffsetParent(element) {\n if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837\n getComputedStyle(element).position === 'fixed') {\n return null;\n }\n\n return element.offsetParent;\n} // `.offsetParent` reports `null` for fixed elements, while absolute elements\n// return the containing block\n\n\nfunction getContainingBlock(element) {\n var isFirefox = /firefox/i.test(getUAString());\n var isIE = /Trident/i.test(getUAString());\n\n if (isIE && isHTMLElement(element)) {\n // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport\n var elementCss = getComputedStyle(element);\n\n if (elementCss.position === 'fixed') {\n return null;\n }\n }\n\n var currentNode = getParentNode(element);\n\n if (isShadowRoot(currentNode)) {\n currentNode = currentNode.host;\n }\n\n while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) {\n var css = getComputedStyle(currentNode); // This is non-exhaustive but covers the most common CSS properties that\n // create a containing block.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n\n if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') {\n return currentNode;\n } else {\n currentNode = currentNode.parentNode;\n }\n }\n\n return null;\n} // Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\n\n\nexport default function getOffsetParent(element) {\n var window = getWindow(element);\n var offsetParent = getTrueOffsetParent(element);\n\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static')) {\n return window;\n }\n\n return offsetParent || getContainingBlock(element) || window;\n}","export default function getMainAxisFromPlacement(placement) {\n return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';\n}","import { max as mathMax, min as mathMin } from \"./math.js\";\nexport function within(min, value, max) {\n return mathMax(min, mathMin(value, max));\n}\nexport function withinMaxClamp(min, value, max) {\n var v = within(min, value, max);\n return v > max ? max : v;\n}","import getFreshSideObject from \"./getFreshSideObject.js\";\nexport default function mergePaddingObject(paddingObject) {\n return Object.assign({}, getFreshSideObject(), paddingObject);\n}","export default function getFreshSideObject() {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n}","export default function expandToHashMap(value, keys) {\n return keys.reduce(function (hashMap, key) {\n hashMap[key] = value;\n return hashMap;\n }, {});\n}","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport contains from \"../dom-utils/contains.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport { within } from \"../utils/within.js\";\nimport mergePaddingObject from \"../utils/mergePaddingObject.js\";\nimport expandToHashMap from \"../utils/expandToHashMap.js\";\nimport { left, right, basePlacements, top, bottom } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar toPaddingObject = function toPaddingObject(padding, state) {\n padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, {\n placement: state.placement\n })) : padding;\n return mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n};\n\nfunction arrow(_ref) {\n var _state$modifiersData$;\n\n var state = _ref.state,\n name = _ref.name,\n options = _ref.options;\n var arrowElement = state.elements.arrow;\n var popperOffsets = state.modifiersData.popperOffsets;\n var basePlacement = getBasePlacement(state.placement);\n var axis = getMainAxisFromPlacement(basePlacement);\n var isVertical = [left, right].indexOf(basePlacement) >= 0;\n var len = isVertical ? 'height' : 'width';\n\n if (!arrowElement || !popperOffsets) {\n return;\n }\n\n var paddingObject = toPaddingObject(options.padding, state);\n var arrowRect = getLayoutRect(arrowElement);\n var minProp = axis === 'y' ? top : left;\n var maxProp = axis === 'y' ? bottom : right;\n var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len];\n var startDiff = popperOffsets[axis] - state.rects.reference[axis];\n var arrowOffsetParent = getOffsetParent(arrowElement);\n var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;\n var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is\n // outside of the popper bounds\n\n var min = paddingObject[minProp];\n var max = clientSize - arrowRect[len] - paddingObject[maxProp];\n var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;\n var offset = within(min, center, max); // Prevents breaking syntax highlighting...\n\n var axisProp = axis;\n state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$);\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state,\n options = _ref2.options;\n var _options$element = options.element,\n arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element;\n\n if (arrowElement == null) {\n return;\n } // CSS selector\n\n\n if (typeof arrowElement === 'string') {\n arrowElement = state.elements.popper.querySelector(arrowElement);\n\n if (!arrowElement) {\n return;\n }\n }\n\n if (!contains(state.elements.popper, arrowElement)) {\n return;\n }\n\n state.elements.arrow = arrowElement;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'arrow',\n enabled: true,\n phase: 'main',\n fn: arrow,\n effect: effect,\n requires: ['popperOffsets'],\n requiresIfExists: ['preventOverflow']\n};","export default function getVariation(placement) {\n return placement.split('-')[1];\n}","import { top, left, right, bottom, end } from \"../enums.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getWindow from \"../dom-utils/getWindow.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getComputedStyle from \"../dom-utils/getComputedStyle.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport { round } from \"../utils/math.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar unsetSides = {\n top: 'auto',\n right: 'auto',\n bottom: 'auto',\n left: 'auto'\n}; // Round the offsets to the nearest suitable subpixel based on the DPR.\n// Zooming can change the DPR, but it seems to report a value that will\n// cleanly divide the values into the appropriate subpixels.\n\nfunction roundOffsetsByDPR(_ref, win) {\n var x = _ref.x,\n y = _ref.y;\n var dpr = win.devicePixelRatio || 1;\n return {\n x: round(x * dpr) / dpr || 0,\n y: round(y * dpr) / dpr || 0\n };\n}\n\nexport function mapToStyles(_ref2) {\n var _Object$assign2;\n\n var popper = _ref2.popper,\n popperRect = _ref2.popperRect,\n placement = _ref2.placement,\n variation = _ref2.variation,\n offsets = _ref2.offsets,\n position = _ref2.position,\n gpuAcceleration = _ref2.gpuAcceleration,\n adaptive = _ref2.adaptive,\n roundOffsets = _ref2.roundOffsets,\n isFixed = _ref2.isFixed;\n var _offsets$x = offsets.x,\n x = _offsets$x === void 0 ? 0 : _offsets$x,\n _offsets$y = offsets.y,\n y = _offsets$y === void 0 ? 0 : _offsets$y;\n\n var _ref3 = typeof roundOffsets === 'function' ? roundOffsets({\n x: x,\n y: y\n }) : {\n x: x,\n y: y\n };\n\n x = _ref3.x;\n y = _ref3.y;\n var hasX = offsets.hasOwnProperty('x');\n var hasY = offsets.hasOwnProperty('y');\n var sideX = left;\n var sideY = top;\n var win = window;\n\n if (adaptive) {\n var offsetParent = getOffsetParent(popper);\n var heightProp = 'clientHeight';\n var widthProp = 'clientWidth';\n\n if (offsetParent === getWindow(popper)) {\n offsetParent = getDocumentElement(popper);\n\n if (getComputedStyle(offsetParent).position !== 'static' && position === 'absolute') {\n heightProp = 'scrollHeight';\n widthProp = 'scrollWidth';\n }\n } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it\n\n\n offsetParent = offsetParent;\n\n if (placement === top || (placement === left || placement === right) && variation === end) {\n sideY = bottom;\n var offsetY = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.height : // $FlowFixMe[prop-missing]\n offsetParent[heightProp];\n y -= offsetY - popperRect.height;\n y *= gpuAcceleration ? 1 : -1;\n }\n\n if (placement === left || (placement === top || placement === bottom) && variation === end) {\n sideX = right;\n var offsetX = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.width : // $FlowFixMe[prop-missing]\n offsetParent[widthProp];\n x -= offsetX - popperRect.width;\n x *= gpuAcceleration ? 1 : -1;\n }\n }\n\n var commonStyles = Object.assign({\n position: position\n }, adaptive && unsetSides);\n\n var _ref4 = roundOffsets === true ? roundOffsetsByDPR({\n x: x,\n y: y\n }, getWindow(popper)) : {\n x: x,\n y: y\n };\n\n x = _ref4.x;\n y = _ref4.y;\n\n if (gpuAcceleration) {\n var _Object$assign;\n\n return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? \"translate(\" + x + \"px, \" + y + \"px)\" : \"translate3d(\" + x + \"px, \" + y + \"px, 0)\", _Object$assign));\n }\n\n return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + \"px\" : '', _Object$assign2[sideX] = hasX ? x + \"px\" : '', _Object$assign2.transform = '', _Object$assign2));\n}\n\nfunction computeStyles(_ref5) {\n var state = _ref5.state,\n options = _ref5.options;\n var _options$gpuAccelerat = options.gpuAcceleration,\n gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat,\n _options$adaptive = options.adaptive,\n adaptive = _options$adaptive === void 0 ? true : _options$adaptive,\n _options$roundOffsets = options.roundOffsets,\n roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;\n var commonStyles = {\n placement: getBasePlacement(state.placement),\n variation: getVariation(state.placement),\n popper: state.elements.popper,\n popperRect: state.rects.popper,\n gpuAcceleration: gpuAcceleration,\n isFixed: state.options.strategy === 'fixed'\n };\n\n if (state.modifiersData.popperOffsets != null) {\n state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.popperOffsets,\n position: state.options.strategy,\n adaptive: adaptive,\n roundOffsets: roundOffsets\n })));\n }\n\n if (state.modifiersData.arrow != null) {\n state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.arrow,\n position: 'absolute',\n adaptive: false,\n roundOffsets: roundOffsets\n })));\n }\n\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-placement': state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'computeStyles',\n enabled: true,\n phase: 'beforeWrite',\n fn: computeStyles,\n data: {}\n};","import getWindow from \"../dom-utils/getWindow.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar passive = {\n passive: true\n};\n\nfunction effect(_ref) {\n var state = _ref.state,\n instance = _ref.instance,\n options = _ref.options;\n var _options$scroll = options.scroll,\n scroll = _options$scroll === void 0 ? true : _options$scroll,\n _options$resize = options.resize,\n resize = _options$resize === void 0 ? true : _options$resize;\n var window = getWindow(state.elements.popper);\n var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);\n\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.addEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.addEventListener('resize', instance.update, passive);\n }\n\n return function () {\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.removeEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.removeEventListener('resize', instance.update, passive);\n }\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'eventListeners',\n enabled: true,\n phase: 'write',\n fn: function fn() {},\n effect: effect,\n data: {}\n};","var hash = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nexport default function getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}","var hash = {\n start: 'end',\n end: 'start'\n};\nexport default function getOppositeVariationPlacement(placement) {\n return placement.replace(/start|end/g, function (matched) {\n return hash[matched];\n });\n}","import getWindow from \"./getWindow.js\";\nexport default function getWindowScroll(node) {\n var win = getWindow(node);\n var scrollLeft = win.pageXOffset;\n var scrollTop = win.pageYOffset;\n return {\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nexport default function getWindowScrollBarX(element) {\n // If has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n // Popper 1 is broken in this case and never had a bug report so let's assume\n // it's not an issue. I don't think anyone ever specifies width on \n // anyway.\n // Browsers where the left scrollbar doesn't cause an issue report `0` for\n // this (e.g. Edge 2019, IE11, Safari)\n return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;\n}","import getComputedStyle from \"./getComputedStyle.js\";\nexport default function isScrollParent(element) {\n // Firefox wants us to check `-x` and `-y` variations as well\n var _getComputedStyle = getComputedStyle(element),\n overflow = _getComputedStyle.overflow,\n overflowX = _getComputedStyle.overflowX,\n overflowY = _getComputedStyle.overflowY;\n\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}","import getParentNode from \"./getParentNode.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nexport default function getScrollParent(node) {\n if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return node.ownerDocument.body;\n }\n\n if (isHTMLElement(node) && isScrollParent(node)) {\n return node;\n }\n\n return getScrollParent(getParentNode(node));\n}","import getScrollParent from \"./getScrollParent.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getWindow from \"./getWindow.js\";\nimport isScrollParent from \"./isScrollParent.js\";\n/*\ngiven a DOM element, return the list of all scroll parents, up the list of ancesors\nuntil we get to the top window object. This list is what we attach scroll listeners\nto, because if any of these parent elements scroll, we'll need to re-calculate the\nreference element's position.\n*/\n\nexport default function listScrollParents(element, list) {\n var _element$ownerDocumen;\n\n if (list === void 0) {\n list = [];\n }\n\n var scrollParent = getScrollParent(element);\n var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);\n var win = getWindow(scrollParent);\n var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;\n var updatedList = list.concat(target);\n return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here\n updatedList.concat(listScrollParents(getParentNode(target)));\n}","export default function rectToClientRect(rect) {\n return Object.assign({}, rect, {\n left: rect.x,\n top: rect.y,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n });\n}","import { viewport } from \"../enums.js\";\nimport getViewportRect from \"./getViewportRect.js\";\nimport getDocumentRect from \"./getDocumentRect.js\";\nimport listScrollParents from \"./listScrollParents.js\";\nimport getOffsetParent from \"./getOffsetParent.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport contains from \"./contains.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport rectToClientRect from \"../utils/rectToClientRect.js\";\nimport { max, min } from \"../utils/math.js\";\n\nfunction getInnerBoundingClientRect(element, strategy) {\n var rect = getBoundingClientRect(element, false, strategy === 'fixed');\n rect.top = rect.top + element.clientTop;\n rect.left = rect.left + element.clientLeft;\n rect.bottom = rect.top + element.clientHeight;\n rect.right = rect.left + element.clientWidth;\n rect.width = element.clientWidth;\n rect.height = element.clientHeight;\n rect.x = rect.left;\n rect.y = rect.top;\n return rect;\n}\n\nfunction getClientRectFromMixedType(element, clippingParent, strategy) {\n return clippingParent === viewport ? rectToClientRect(getViewportRect(element, strategy)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent, strategy) : rectToClientRect(getDocumentRect(getDocumentElement(element)));\n} // A \"clipping parent\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\n\n\nfunction getClippingParents(element) {\n var clippingParents = listScrollParents(getParentNode(element));\n var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0;\n var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;\n\n if (!isElement(clipperElement)) {\n return [];\n } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414\n\n\n return clippingParents.filter(function (clippingParent) {\n return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body';\n });\n} // Gets the maximum area that the element is visible in due to any number of\n// clipping parents\n\n\nexport default function getClippingRect(element, boundary, rootBoundary, strategy) {\n var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);\n var clippingParents = [].concat(mainClippingParents, [rootBoundary]);\n var firstClippingParent = clippingParents[0];\n var clippingRect = clippingParents.reduce(function (accRect, clippingParent) {\n var rect = getClientRectFromMixedType(element, clippingParent, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromMixedType(element, firstClippingParent, strategy));\n clippingRect.width = clippingRect.right - clippingRect.left;\n clippingRect.height = clippingRect.bottom - clippingRect.top;\n clippingRect.x = clippingRect.left;\n clippingRect.y = clippingRect.top;\n return clippingRect;\n}","import getWindow from \"./getWindow.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getViewportRect(element, strategy) {\n var win = getWindow(element);\n var html = getDocumentElement(element);\n var visualViewport = win.visualViewport;\n var width = html.clientWidth;\n var height = html.clientHeight;\n var x = 0;\n var y = 0;\n\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n var layoutViewport = isLayoutViewport();\n\n if (layoutViewport || !layoutViewport && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n\n return {\n width: width,\n height: height,\n x: x + getWindowScrollBarX(element),\n y: y\n };\n}","import getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nimport { max } from \"../utils/math.js\"; // Gets the entire size of the scrollable document area, even extending outside\n// of the `` and `` rect bounds if horizontally scrollable\n\nexport default function getDocumentRect(element) {\n var _element$ownerDocumen;\n\n var html = getDocumentElement(element);\n var winScroll = getWindowScroll(element);\n var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;\n var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);\n var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);\n var x = -winScroll.scrollLeft + getWindowScrollBarX(element);\n var y = -winScroll.scrollTop;\n\n if (getComputedStyle(body || html).direction === 'rtl') {\n x += max(html.clientWidth, body ? body.clientWidth : 0) - width;\n }\n\n return {\n width: width,\n height: height,\n x: x,\n y: y\n };\n}","import getBasePlacement from \"./getBasePlacement.js\";\nimport getVariation from \"./getVariation.js\";\nimport getMainAxisFromPlacement from \"./getMainAxisFromPlacement.js\";\nimport { top, right, bottom, left, start, end } from \"../enums.js\";\nexport default function computeOffsets(_ref) {\n var reference = _ref.reference,\n element = _ref.element,\n placement = _ref.placement;\n var basePlacement = placement ? getBasePlacement(placement) : null;\n var variation = placement ? getVariation(placement) : null;\n var commonX = reference.x + reference.width / 2 - element.width / 2;\n var commonY = reference.y + reference.height / 2 - element.height / 2;\n var offsets;\n\n switch (basePlacement) {\n case top:\n offsets = {\n x: commonX,\n y: reference.y - element.height\n };\n break;\n\n case bottom:\n offsets = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n\n case right:\n offsets = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n\n case left:\n offsets = {\n x: reference.x - element.width,\n y: commonY\n };\n break;\n\n default:\n offsets = {\n x: reference.x,\n y: reference.y\n };\n }\n\n var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;\n\n if (mainAxis != null) {\n var len = mainAxis === 'y' ? 'height' : 'width';\n\n switch (variation) {\n case start:\n offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);\n break;\n\n case end:\n offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);\n break;\n\n default:\n }\n }\n\n return offsets;\n}","import getClippingRect from \"../dom-utils/getClippingRect.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getBoundingClientRect from \"../dom-utils/getBoundingClientRect.js\";\nimport computeOffsets from \"./computeOffsets.js\";\nimport rectToClientRect from \"./rectToClientRect.js\";\nimport { clippingParents, reference, popper, bottom, top, right, basePlacements, viewport } from \"../enums.js\";\nimport { isElement } from \"../dom-utils/instanceOf.js\";\nimport mergePaddingObject from \"./mergePaddingObject.js\";\nimport expandToHashMap from \"./expandToHashMap.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport default function detectOverflow(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$placement = _options.placement,\n placement = _options$placement === void 0 ? state.placement : _options$placement,\n _options$strategy = _options.strategy,\n strategy = _options$strategy === void 0 ? state.strategy : _options$strategy,\n _options$boundary = _options.boundary,\n boundary = _options$boundary === void 0 ? clippingParents : _options$boundary,\n _options$rootBoundary = _options.rootBoundary,\n rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary,\n _options$elementConte = _options.elementContext,\n elementContext = _options$elementConte === void 0 ? popper : _options$elementConte,\n _options$altBoundary = _options.altBoundary,\n altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary,\n _options$padding = _options.padding,\n padding = _options$padding === void 0 ? 0 : _options$padding;\n var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n var altContext = elementContext === popper ? reference : popper;\n var popperRect = state.rects.popper;\n var element = state.elements[altBoundary ? altContext : elementContext];\n var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary, strategy);\n var referenceClientRect = getBoundingClientRect(state.elements.reference);\n var popperOffsets = computeOffsets({\n reference: referenceClientRect,\n element: popperRect,\n strategy: 'absolute',\n placement: placement\n });\n var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets));\n var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n\n var overflowOffsets = {\n top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,\n left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n right: elementClientRect.right - clippingClientRect.right + paddingObject.right\n };\n var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element\n\n if (elementContext === popper && offsetData) {\n var offset = offsetData[placement];\n Object.keys(overflowOffsets).forEach(function (key) {\n var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;\n var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';\n overflowOffsets[key] += offset[axis] * multiply;\n });\n }\n\n return overflowOffsets;\n}","import getOppositePlacement from \"../utils/getOppositePlacement.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getOppositeVariationPlacement from \"../utils/getOppositeVariationPlacement.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport computeAutoPlacement from \"../utils/computeAutoPlacement.js\";\nimport { bottom, top, start, right, left, auto } from \"../enums.js\";\nimport getVariation from \"../utils/getVariation.js\"; // eslint-disable-next-line import/no-unused-modules\n\nfunction getExpandedFallbackPlacements(placement) {\n if (getBasePlacement(placement) === auto) {\n return [];\n }\n\n var oppositePlacement = getOppositePlacement(placement);\n return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)];\n}\n\nfunction flip(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n\n if (state.modifiersData[name]._skip) {\n return;\n }\n\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis,\n specifiedFallbackPlacements = options.fallbackPlacements,\n padding = options.padding,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n _options$flipVariatio = options.flipVariations,\n flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio,\n allowedAutoPlacements = options.allowedAutoPlacements;\n var preferredPlacement = state.options.placement;\n var basePlacement = getBasePlacement(preferredPlacement);\n var isBasePlacement = basePlacement === preferredPlacement;\n var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement));\n var placements = [preferredPlacement].concat(fallbackPlacements).reduce(function (acc, placement) {\n return acc.concat(getBasePlacement(placement) === auto ? computeAutoPlacement(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n flipVariations: flipVariations,\n allowedAutoPlacements: allowedAutoPlacements\n }) : placement);\n }, []);\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var checksMap = new Map();\n var makeFallbackChecks = true;\n var firstFittingPlacement = placements[0];\n\n for (var i = 0; i < placements.length; i++) {\n var placement = placements[i];\n\n var _basePlacement = getBasePlacement(placement);\n\n var isStartVariation = getVariation(placement) === start;\n var isVertical = [top, bottom].indexOf(_basePlacement) >= 0;\n var len = isVertical ? 'width' : 'height';\n var overflow = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n altBoundary: altBoundary,\n padding: padding\n });\n var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top;\n\n if (referenceRect[len] > popperRect[len]) {\n mainVariationSide = getOppositePlacement(mainVariationSide);\n }\n\n var altVariationSide = getOppositePlacement(mainVariationSide);\n var checks = [];\n\n if (checkMainAxis) {\n checks.push(overflow[_basePlacement] <= 0);\n }\n\n if (checkAltAxis) {\n checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0);\n }\n\n if (checks.every(function (check) {\n return check;\n })) {\n firstFittingPlacement = placement;\n makeFallbackChecks = false;\n break;\n }\n\n checksMap.set(placement, checks);\n }\n\n if (makeFallbackChecks) {\n // `2` may be desired in some cases – research later\n var numberOfChecks = flipVariations ? 3 : 1;\n\n var _loop = function _loop(_i) {\n var fittingPlacement = placements.find(function (placement) {\n var checks = checksMap.get(placement);\n\n if (checks) {\n return checks.slice(0, _i).every(function (check) {\n return check;\n });\n }\n });\n\n if (fittingPlacement) {\n firstFittingPlacement = fittingPlacement;\n return \"break\";\n }\n };\n\n for (var _i = numberOfChecks; _i > 0; _i--) {\n var _ret = _loop(_i);\n\n if (_ret === \"break\") break;\n }\n }\n\n if (state.placement !== firstFittingPlacement) {\n state.modifiersData[name]._skip = true;\n state.placement = firstFittingPlacement;\n state.reset = true;\n }\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'flip',\n enabled: true,\n phase: 'main',\n fn: flip,\n requiresIfExists: ['offset'],\n data: {\n _skip: false\n }\n};","import getVariation from \"./getVariation.js\";\nimport { variationPlacements, basePlacements, placements as allPlacements } from \"../enums.js\";\nimport detectOverflow from \"./detectOverflow.js\";\nimport getBasePlacement from \"./getBasePlacement.js\";\nexport default function computeAutoPlacement(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n placement = _options.placement,\n boundary = _options.boundary,\n rootBoundary = _options.rootBoundary,\n padding = _options.padding,\n flipVariations = _options.flipVariations,\n _options$allowedAutoP = _options.allowedAutoPlacements,\n allowedAutoPlacements = _options$allowedAutoP === void 0 ? allPlacements : _options$allowedAutoP;\n var variation = getVariation(placement);\n var placements = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) {\n return getVariation(placement) === variation;\n }) : basePlacements;\n var allowedPlacements = placements.filter(function (placement) {\n return allowedAutoPlacements.indexOf(placement) >= 0;\n });\n\n if (allowedPlacements.length === 0) {\n allowedPlacements = placements;\n } // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions...\n\n\n var overflows = allowedPlacements.reduce(function (acc, placement) {\n acc[placement] = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding\n })[getBasePlacement(placement)];\n return acc;\n }, {});\n return Object.keys(overflows).sort(function (a, b) {\n return overflows[a] - overflows[b];\n });\n}","import { top, bottom, left, right } from \"../enums.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\n\nfunction getSideOffsets(overflow, rect, preventedOffsets) {\n if (preventedOffsets === void 0) {\n preventedOffsets = {\n x: 0,\n y: 0\n };\n }\n\n return {\n top: overflow.top - rect.height - preventedOffsets.y,\n right: overflow.right - rect.width + preventedOffsets.x,\n bottom: overflow.bottom - rect.height + preventedOffsets.y,\n left: overflow.left - rect.width - preventedOffsets.x\n };\n}\n\nfunction isAnySideFullyClipped(overflow) {\n return [top, right, bottom, left].some(function (side) {\n return overflow[side] >= 0;\n });\n}\n\nfunction hide(_ref) {\n var state = _ref.state,\n name = _ref.name;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var preventedOffsets = state.modifiersData.preventOverflow;\n var referenceOverflow = detectOverflow(state, {\n elementContext: 'reference'\n });\n var popperAltOverflow = detectOverflow(state, {\n altBoundary: true\n });\n var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect);\n var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets);\n var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);\n var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);\n state.modifiersData[name] = {\n referenceClippingOffsets: referenceClippingOffsets,\n popperEscapeOffsets: popperEscapeOffsets,\n isReferenceHidden: isReferenceHidden,\n hasPopperEscaped: hasPopperEscaped\n };\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-reference-hidden': isReferenceHidden,\n 'data-popper-escaped': hasPopperEscaped\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'hide',\n enabled: true,\n phase: 'main',\n requiresIfExists: ['preventOverflow'],\n fn: hide\n};","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport { top, left, right, placements } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport function distanceAndSkiddingToXY(placement, rects, offset) {\n var basePlacement = getBasePlacement(placement);\n var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1;\n\n var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, {\n placement: placement\n })) : offset,\n skidding = _ref[0],\n distance = _ref[1];\n\n skidding = skidding || 0;\n distance = (distance || 0) * invertDistance;\n return [left, right].indexOf(basePlacement) >= 0 ? {\n x: distance,\n y: skidding\n } : {\n x: skidding,\n y: distance\n };\n}\n\nfunction offset(_ref2) {\n var state = _ref2.state,\n options = _ref2.options,\n name = _ref2.name;\n var _options$offset = options.offset,\n offset = _options$offset === void 0 ? [0, 0] : _options$offset;\n var data = placements.reduce(function (acc, placement) {\n acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset);\n return acc;\n }, {});\n var _data$state$placement = data[state.placement],\n x = _data$state$placement.x,\n y = _data$state$placement.y;\n\n if (state.modifiersData.popperOffsets != null) {\n state.modifiersData.popperOffsets.x += x;\n state.modifiersData.popperOffsets.y += y;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'offset',\n enabled: true,\n phase: 'main',\n requires: ['popperOffsets'],\n fn: offset\n};","import computeOffsets from \"../utils/computeOffsets.js\";\n\nfunction popperOffsets(_ref) {\n var state = _ref.state,\n name = _ref.name;\n // Offsets are the actual position the popper needs to have to be\n // properly positioned near its reference element\n // This is the most basic placement, and will be adjusted by\n // the modifiers in the next step\n state.modifiersData[name] = computeOffsets({\n reference: state.rects.reference,\n element: state.rects.popper,\n strategy: 'absolute',\n placement: state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'popperOffsets',\n enabled: true,\n phase: 'read',\n fn: popperOffsets,\n data: {}\n};","import { top, left, right, bottom, start } from \"../enums.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport getAltAxis from \"../utils/getAltAxis.js\";\nimport { within, withinMaxClamp } from \"../utils/within.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport getFreshSideObject from \"../utils/getFreshSideObject.js\";\nimport { min as mathMin, max as mathMax } from \"../utils/math.js\";\n\nfunction preventOverflow(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n padding = options.padding,\n _options$tether = options.tether,\n tether = _options$tether === void 0 ? true : _options$tether,\n _options$tetherOffset = options.tetherOffset,\n tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset;\n var overflow = detectOverflow(state, {\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n altBoundary: altBoundary\n });\n var basePlacement = getBasePlacement(state.placement);\n var variation = getVariation(state.placement);\n var isBasePlacement = !variation;\n var mainAxis = getMainAxisFromPlacement(basePlacement);\n var altAxis = getAltAxis(mainAxis);\n var popperOffsets = state.modifiersData.popperOffsets;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, {\n placement: state.placement\n })) : tetherOffset;\n var normalizedTetherOffsetValue = typeof tetherOffsetValue === 'number' ? {\n mainAxis: tetherOffsetValue,\n altAxis: tetherOffsetValue\n } : Object.assign({\n mainAxis: 0,\n altAxis: 0\n }, tetherOffsetValue);\n var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null;\n var data = {\n x: 0,\n y: 0\n };\n\n if (!popperOffsets) {\n return;\n }\n\n if (checkMainAxis) {\n var _offsetModifierState$;\n\n var mainSide = mainAxis === 'y' ? top : left;\n var altSide = mainAxis === 'y' ? bottom : right;\n var len = mainAxis === 'y' ? 'height' : 'width';\n var offset = popperOffsets[mainAxis];\n var min = offset + overflow[mainSide];\n var max = offset - overflow[altSide];\n var additive = tether ? -popperRect[len] / 2 : 0;\n var minLen = variation === start ? referenceRect[len] : popperRect[len];\n var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go\n // outside the reference bounds\n\n var arrowElement = state.elements.arrow;\n var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : {\n width: 0,\n height: 0\n };\n var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : getFreshSideObject();\n var arrowPaddingMin = arrowPaddingObject[mainSide];\n var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want\n // to include its full size in the calculation. If the reference is small\n // and near the edge of a boundary, the popper can overflow even if the\n // reference is not overflowing as well (e.g. virtual elements with no\n // width or height)\n\n var arrowLen = within(0, referenceRect[len], arrowRect[len]);\n var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis;\n var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis;\n var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow);\n var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;\n var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0;\n var tetherMin = offset + minOffset - offsetModifierValue - clientOffset;\n var tetherMax = offset + maxOffset - offsetModifierValue;\n var preventedOffset = within(tether ? mathMin(min, tetherMin) : min, offset, tether ? mathMax(max, tetherMax) : max);\n popperOffsets[mainAxis] = preventedOffset;\n data[mainAxis] = preventedOffset - offset;\n }\n\n if (checkAltAxis) {\n var _offsetModifierState$2;\n\n var _mainSide = mainAxis === 'x' ? top : left;\n\n var _altSide = mainAxis === 'x' ? bottom : right;\n\n var _offset = popperOffsets[altAxis];\n\n var _len = altAxis === 'y' ? 'height' : 'width';\n\n var _min = _offset + overflow[_mainSide];\n\n var _max = _offset - overflow[_altSide];\n\n var isOriginSide = [top, left].indexOf(basePlacement) !== -1;\n\n var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0;\n\n var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis;\n\n var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max;\n\n var _preventedOffset = tether && isOriginSide ? withinMaxClamp(_tetherMin, _offset, _tetherMax) : within(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max);\n\n popperOffsets[altAxis] = _preventedOffset;\n data[altAxis] = _preventedOffset - _offset;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'preventOverflow',\n enabled: true,\n phase: 'main',\n fn: preventOverflow,\n requiresIfExists: ['offset']\n};","export default function getAltAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getNodeScroll from \"./getNodeScroll.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport { round } from \"../utils/math.js\";\n\nfunction isElementScaled(element) {\n var rect = element.getBoundingClientRect();\n var scaleX = round(rect.width) / element.offsetWidth || 1;\n var scaleY = round(rect.height) / element.offsetHeight || 1;\n return scaleX !== 1 || scaleY !== 1;\n} // Returns the composite rect of an element relative to its offsetParent.\n// Composite means it takes into account transforms as well as layout.\n\n\nexport default function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n\n var isOffsetParentAnElement = isHTMLElement(offsetParent);\n var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent);\n var documentElement = getDocumentElement(offsetParent);\n var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled, isFixed);\n var scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n var offsets = {\n x: 0,\n y: 0\n };\n\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078\n isScrollParent(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n offsets = getBoundingClientRect(offsetParent, true);\n offsets.x += offsetParent.clientLeft;\n offsets.y += offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}","import getWindowScroll from \"./getWindowScroll.js\";\nimport getWindow from \"./getWindow.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getHTMLElementScroll from \"./getHTMLElementScroll.js\";\nexport default function getNodeScroll(node) {\n if (node === getWindow(node) || !isHTMLElement(node)) {\n return getWindowScroll(node);\n } else {\n return getHTMLElementScroll(node);\n }\n}","export default function getHTMLElementScroll(element) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n}","import { modifierPhases } from \"../enums.js\"; // source: https://stackoverflow.com/questions/49875255\n\nfunction order(modifiers) {\n var map = new Map();\n var visited = new Set();\n var result = [];\n modifiers.forEach(function (modifier) {\n map.set(modifier.name, modifier);\n }); // On visiting object, check for its dependencies and visit them recursively\n\n function sort(modifier) {\n visited.add(modifier.name);\n var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);\n requires.forEach(function (dep) {\n if (!visited.has(dep)) {\n var depModifier = map.get(dep);\n\n if (depModifier) {\n sort(depModifier);\n }\n }\n });\n result.push(modifier);\n }\n\n modifiers.forEach(function (modifier) {\n if (!visited.has(modifier.name)) {\n // check for visited object\n sort(modifier);\n }\n });\n return result;\n}\n\nexport default function orderModifiers(modifiers) {\n // order based on dependencies\n var orderedModifiers = order(modifiers); // order based on phase\n\n return modifierPhases.reduce(function (acc, phase) {\n return acc.concat(orderedModifiers.filter(function (modifier) {\n return modifier.phase === phase;\n }));\n }, []);\n}","export default function debounce(fn) {\n var pending;\n return function () {\n if (!pending) {\n pending = new Promise(function (resolve) {\n Promise.resolve().then(function () {\n pending = undefined;\n resolve(fn());\n });\n });\n }\n\n return pending;\n };\n}","import getCompositeRect from \"./dom-utils/getCompositeRect.js\";\nimport getLayoutRect from \"./dom-utils/getLayoutRect.js\";\nimport listScrollParents from \"./dom-utils/listScrollParents.js\";\nimport getOffsetParent from \"./dom-utils/getOffsetParent.js\";\nimport orderModifiers from \"./utils/orderModifiers.js\";\nimport debounce from \"./utils/debounce.js\";\nimport mergeByName from \"./utils/mergeByName.js\";\nimport detectOverflow from \"./utils/detectOverflow.js\";\nimport { isElement } from \"./dom-utils/instanceOf.js\";\nvar DEFAULT_OPTIONS = {\n placement: 'bottom',\n modifiers: [],\n strategy: 'absolute'\n};\n\nfunction areValidElements() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return !args.some(function (element) {\n return !(element && typeof element.getBoundingClientRect === 'function');\n });\n}\n\nexport function popperGenerator(generatorOptions) {\n if (generatorOptions === void 0) {\n generatorOptions = {};\n }\n\n var _generatorOptions = generatorOptions,\n _generatorOptions$def = _generatorOptions.defaultModifiers,\n defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def,\n _generatorOptions$def2 = _generatorOptions.defaultOptions,\n defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;\n return function createPopper(reference, popper, options) {\n if (options === void 0) {\n options = defaultOptions;\n }\n\n var state = {\n placement: 'bottom',\n orderedModifiers: [],\n options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions),\n modifiersData: {},\n elements: {\n reference: reference,\n popper: popper\n },\n attributes: {},\n styles: {}\n };\n var effectCleanupFns = [];\n var isDestroyed = false;\n var instance = {\n state: state,\n setOptions: function setOptions(setOptionsAction) {\n var options = typeof setOptionsAction === 'function' ? setOptionsAction(state.options) : setOptionsAction;\n cleanupModifierEffects();\n state.options = Object.assign({}, defaultOptions, state.options, options);\n state.scrollParents = {\n reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [],\n popper: listScrollParents(popper)\n }; // Orders the modifiers based on their dependencies and `phase`\n // properties\n\n var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers\n\n state.orderedModifiers = orderedModifiers.filter(function (m) {\n return m.enabled;\n });\n runModifierEffects();\n return instance.update();\n },\n // Sync update – it will always be executed, even if not necessary. This\n // is useful for low frequency updates where sync behavior simplifies the\n // logic.\n // For high frequency updates (e.g. `resize` and `scroll` events), always\n // prefer the async Popper#update method\n forceUpdate: function forceUpdate() {\n if (isDestroyed) {\n return;\n }\n\n var _state$elements = state.elements,\n reference = _state$elements.reference,\n popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements\n // anymore\n\n if (!areValidElements(reference, popper)) {\n return;\n } // Store the reference and popper rects to be read by modifiers\n\n\n state.rects = {\n reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'),\n popper: getLayoutRect(popper)\n }; // Modifiers have the ability to reset the current update cycle. The\n // most common use case for this is the `flip` modifier changing the\n // placement, which then needs to re-run all the modifiers, because the\n // logic was previously ran for the previous placement and is therefore\n // stale/incorrect\n\n state.reset = false;\n state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier\n // is filled with the initial data specified by the modifier. This means\n // it doesn't persist and is fresh on each update.\n // To ensure persistent data, use `${name}#persistent`\n\n state.orderedModifiers.forEach(function (modifier) {\n return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);\n });\n\n for (var index = 0; index < state.orderedModifiers.length; index++) {\n if (state.reset === true) {\n state.reset = false;\n index = -1;\n continue;\n }\n\n var _state$orderedModifie = state.orderedModifiers[index],\n fn = _state$orderedModifie.fn,\n _state$orderedModifie2 = _state$orderedModifie.options,\n _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2,\n name = _state$orderedModifie.name;\n\n if (typeof fn === 'function') {\n state = fn({\n state: state,\n options: _options,\n name: name,\n instance: instance\n }) || state;\n }\n }\n },\n // Async and optimistically optimized update – it will not be executed if\n // not necessary (debounced to run at most once-per-tick)\n update: debounce(function () {\n return new Promise(function (resolve) {\n instance.forceUpdate();\n resolve(state);\n });\n }),\n destroy: function destroy() {\n cleanupModifierEffects();\n isDestroyed = true;\n }\n };\n\n if (!areValidElements(reference, popper)) {\n return instance;\n }\n\n instance.setOptions(options).then(function (state) {\n if (!isDestroyed && options.onFirstUpdate) {\n options.onFirstUpdate(state);\n }\n }); // Modifiers have the ability to execute arbitrary code before the first\n // update cycle runs. They will be executed in the same order as the update\n // cycle. This is useful when a modifier adds some persistent data that\n // other modifiers need to use, but the modifier is run after the dependent\n // one.\n\n function runModifierEffects() {\n state.orderedModifiers.forEach(function (_ref) {\n var name = _ref.name,\n _ref$options = _ref.options,\n options = _ref$options === void 0 ? {} : _ref$options,\n effect = _ref.effect;\n\n if (typeof effect === 'function') {\n var cleanupFn = effect({\n state: state,\n name: name,\n instance: instance,\n options: options\n });\n\n var noopFn = function noopFn() {};\n\n effectCleanupFns.push(cleanupFn || noopFn);\n }\n });\n }\n\n function cleanupModifierEffects() {\n effectCleanupFns.forEach(function (fn) {\n return fn();\n });\n effectCleanupFns = [];\n }\n\n return instance;\n };\n}\nexport var createPopper = /*#__PURE__*/popperGenerator(); // eslint-disable-next-line import/no-unused-modules\n\nexport { detectOverflow };","export default function mergeByName(modifiers) {\n var merged = modifiers.reduce(function (merged, current) {\n var existing = merged[current.name];\n merged[current.name] = existing ? Object.assign({}, existing, current, {\n options: Object.assign({}, existing.options, current.options),\n data: Object.assign({}, existing.data, current.data)\n }) : current;\n return merged;\n }, {}); // IE11 does not support Object.values\n\n return Object.keys(merged).map(function (key) {\n return merged[key];\n });\n}","import { popperGenerator, detectOverflow } from \"./createPopper.js\";\nimport eventListeners from \"./modifiers/eventListeners.js\";\nimport popperOffsets from \"./modifiers/popperOffsets.js\";\nimport computeStyles from \"./modifiers/computeStyles.js\";\nimport applyStyles from \"./modifiers/applyStyles.js\";\nimport offset from \"./modifiers/offset.js\";\nimport flip from \"./modifiers/flip.js\";\nimport preventOverflow from \"./modifiers/preventOverflow.js\";\nimport arrow from \"./modifiers/arrow.js\";\nimport hide from \"./modifiers/hide.js\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles, offset, flip, preventOverflow, arrow, hide];\nvar createPopper = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow }; // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper as createPopperLite } from \"./popper-lite.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport * from \"./modifiers/index.js\";","import { popperGenerator, detectOverflow } from \"./createPopper.js\";\nimport eventListeners from \"./modifiers/eventListeners.js\";\nimport popperOffsets from \"./modifiers/popperOffsets.js\";\nimport computeStyles from \"./modifiers/computeStyles.js\";\nimport applyStyles from \"./modifiers/applyStyles.js\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles];\nvar createPopper = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow };","/**\n * --------------------------------------------------------------------------\n * Bootstrap dom/data.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * Constants\n */\n\nconst elementMap = new Map()\n\nexport default {\n set(element, key, instance) {\n if (!elementMap.has(element)) {\n elementMap.set(element, new Map())\n }\n\n const instanceMap = elementMap.get(element)\n\n // make it clear we only want one instance per element\n // can be removed later when multiple key/instances are fine to be used\n if (!instanceMap.has(key) && instanceMap.size !== 0) {\n // eslint-disable-next-line no-console\n console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(instanceMap.keys())[0]}.`)\n return\n }\n\n instanceMap.set(key, instance)\n },\n\n get(element, key) {\n if (elementMap.has(element)) {\n return elementMap.get(element).get(key) || null\n }\n\n return null\n },\n\n remove(element, key) {\n if (!elementMap.has(element)) {\n return\n }\n\n const instanceMap = elementMap.get(element)\n\n instanceMap.delete(key)\n\n // free up element references if there are no instances left for an element\n if (instanceMap.size === 0) {\n elementMap.delete(element)\n }\n }\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1_000_000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\n\n/**\n * Properly escape IDs selectors to handle weird IDs\n * @param {string} selector\n * @returns {string}\n */\nconst parseSelector = selector => {\n if (selector && window.CSS && window.CSS.escape) {\n // document.querySelector needs escaping to handle IDs (html5+) containing for instance /\n selector = selector.replace(/#([^\\s\"#']+)/g, (match, id) => `#${CSS.escape(id)}`)\n }\n\n return selector\n}\n\n// Shout-out Angus Croll (https://goo.gl/pxwQGp)\nconst toType = object => {\n if (object === null || object === undefined) {\n return `${object}`\n }\n\n return Object.prototype.toString.call(object).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\n/**\n * Public Util API\n */\n\nconst getUID = prefix => {\n do {\n prefix += Math.floor(Math.random() * MAX_UID)\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let { transitionDuration, transitionDelay } = window.getComputedStyle(element)\n\n const floatTransitionDuration = Number.parseFloat(transitionDuration)\n const floatTransitionDelay = Number.parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n element.dispatchEvent(new Event(TRANSITION_END))\n}\n\nconst isElement = object => {\n if (!object || typeof object !== 'object') {\n return false\n }\n\n if (typeof object.jquery !== 'undefined') {\n object = object[0]\n }\n\n return typeof object.nodeType !== 'undefined'\n}\n\nconst getElement = object => {\n // it's a jQuery object or a node element\n if (isElement(object)) {\n return object.jquery ? object[0] : object\n }\n\n if (typeof object === 'string' && object.length > 0) {\n return document.querySelector(parseSelector(object))\n }\n\n return null\n}\n\nconst isVisible = element => {\n if (!isElement(element) || element.getClientRects().length === 0) {\n return false\n }\n\n const elementIsVisible = getComputedStyle(element).getPropertyValue('visibility') === 'visible'\n // Handle `details` element as its content may falsie appear visible when it is closed\n const closedDetails = element.closest('details:not([open])')\n\n if (!closedDetails) {\n return elementIsVisible\n }\n\n if (closedDetails !== element) {\n const summary = element.closest('summary')\n if (summary && summary.parentNode !== closedDetails) {\n return false\n }\n\n if (summary === null) {\n return false\n }\n }\n\n return elementIsVisible\n}\n\nconst isDisabled = element => {\n if (!element || element.nodeType !== Node.ELEMENT_NODE) {\n return true\n }\n\n if (element.classList.contains('disabled')) {\n return true\n }\n\n if (typeof element.disabled !== 'undefined') {\n return element.disabled\n }\n\n return element.hasAttribute('disabled') && element.getAttribute('disabled') !== 'false'\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\nconst noop = () => {}\n\n/**\n * Trick to restart an element's animation\n *\n * @param {HTMLElement} element\n * @return void\n *\n * @see https://www.charistheo.io/blog/2021/02/restart-a-css-animation-with-javascript/#restarting-a-css-animation\n */\nconst reflow = element => {\n element.offsetHeight // eslint-disable-line no-unused-expressions\n}\n\nconst getjQuery = () => {\n if (window.jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {\n return window.jQuery\n }\n\n return null\n}\n\nconst DOMContentLoadedCallbacks = []\n\nconst onDOMContentLoaded = callback => {\n if (document.readyState === 'loading') {\n // add listener on the first call when the document is in loading state\n if (!DOMContentLoadedCallbacks.length) {\n document.addEventListener('DOMContentLoaded', () => {\n for (const callback of DOMContentLoadedCallbacks) {\n callback()\n }\n })\n }\n\n DOMContentLoadedCallbacks.push(callback)\n } else {\n callback()\n }\n}\n\nconst isRTL = () => document.documentElement.dir === 'rtl'\n\nconst defineJQueryPlugin = plugin => {\n onDOMContentLoaded(() => {\n const $ = getjQuery()\n /* istanbul ignore if */\n if ($) {\n const name = plugin.NAME\n const JQUERY_NO_CONFLICT = $.fn[name]\n $.fn[name] = plugin.jQueryInterface\n $.fn[name].Constructor = plugin\n $.fn[name].noConflict = () => {\n $.fn[name] = JQUERY_NO_CONFLICT\n return plugin.jQueryInterface\n }\n }\n })\n}\n\nconst execute = (possibleCallback, args = [], defaultValue = possibleCallback) => {\n return typeof possibleCallback === 'function' ? possibleCallback(...args) : defaultValue\n}\n\nconst executeAfterTransition = (callback, transitionElement, waitForTransition = true) => {\n if (!waitForTransition) {\n execute(callback)\n return\n }\n\n const durationPadding = 5\n const emulatedDuration = getTransitionDurationFromElement(transitionElement) + durationPadding\n\n let called = false\n\n const handler = ({ target }) => {\n if (target !== transitionElement) {\n return\n }\n\n called = true\n transitionElement.removeEventListener(TRANSITION_END, handler)\n execute(callback)\n }\n\n transitionElement.addEventListener(TRANSITION_END, handler)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(transitionElement)\n }\n }, emulatedDuration)\n}\n\n/**\n * Return the previous/next element of a list.\n *\n * @param {array} list The list of elements\n * @param activeElement The active element\n * @param shouldGetNext Choose to get next or previous element\n * @param isCycleAllowed\n * @return {Element|elem} The proper element\n */\nconst getNextActiveElement = (list, activeElement, shouldGetNext, isCycleAllowed) => {\n const listLength = list.length\n let index = list.indexOf(activeElement)\n\n // if the element does not exist in the list return an element\n // depending on the direction and if cycle is allowed\n if (index === -1) {\n return !shouldGetNext && isCycleAllowed ? list[listLength - 1] : list[0]\n }\n\n index += shouldGetNext ? 1 : -1\n\n if (isCycleAllowed) {\n index = (index + listLength) % listLength\n }\n\n return list[Math.max(0, Math.min(index, listLength - 1))]\n}\n\nexport {\n defineJQueryPlugin,\n execute,\n executeAfterTransition,\n findShadowRoot,\n getElement,\n getjQuery,\n getNextActiveElement,\n getTransitionDurationFromElement,\n getUID,\n isDisabled,\n isElement,\n isRTL,\n isVisible,\n noop,\n onDOMContentLoaded,\n parseSelector,\n reflow,\n triggerTransitionEnd,\n toType\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap dom/event-handler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { getjQuery } from '../util/index.js'\n\n/**\n * Constants\n */\n\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/\nconst stripNameRegex = /\\..*/\nconst stripUidRegex = /::\\d+$/\nconst eventRegistry = {} // Events storage\nlet uidEvent = 1\nconst customEvents = {\n mouseenter: 'mouseover',\n mouseleave: 'mouseout'\n}\n\nconst nativeEvents = new Set([\n 'click',\n 'dblclick',\n 'mouseup',\n 'mousedown',\n 'contextmenu',\n 'mousewheel',\n 'DOMMouseScroll',\n 'mouseover',\n 'mouseout',\n 'mousemove',\n 'selectstart',\n 'selectend',\n 'keydown',\n 'keypress',\n 'keyup',\n 'orientationchange',\n 'touchstart',\n 'touchmove',\n 'touchend',\n 'touchcancel',\n 'pointerdown',\n 'pointermove',\n 'pointerup',\n 'pointerleave',\n 'pointercancel',\n 'gesturestart',\n 'gesturechange',\n 'gestureend',\n 'focus',\n 'blur',\n 'change',\n 'reset',\n 'select',\n 'submit',\n 'focusin',\n 'focusout',\n 'load',\n 'unload',\n 'beforeunload',\n 'resize',\n 'move',\n 'DOMContentLoaded',\n 'readystatechange',\n 'error',\n 'abort',\n 'scroll'\n])\n\n/**\n * Private methods\n */\n\nfunction makeEventUid(element, uid) {\n return (uid && `${uid}::${uidEvent++}`) || element.uidEvent || uidEvent++\n}\n\nfunction getElementEvents(element) {\n const uid = makeEventUid(element)\n\n element.uidEvent = uid\n eventRegistry[uid] = eventRegistry[uid] || {}\n\n return eventRegistry[uid]\n}\n\nfunction bootstrapHandler(element, fn) {\n return function handler(event) {\n hydrateObj(event, { delegateTarget: element })\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(element, [event])\n }\n}\n\nfunction bootstrapDelegationHandler(element, selector, fn) {\n return function handler(event) {\n const domElements = element.querySelectorAll(selector)\n\n for (let { target } = event; target && target !== this; target = target.parentNode) {\n for (const domElement of domElements) {\n if (domElement !== target) {\n continue\n }\n\n hydrateObj(event, { delegateTarget: target })\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, selector, fn)\n }\n\n return fn.apply(target, [event])\n }\n }\n }\n}\n\nfunction findHandler(events, callable, delegationSelector = null) {\n return Object.values(events)\n .find(event => event.callable === callable && event.delegationSelector === delegationSelector)\n}\n\nfunction normalizeParameters(originalTypeEvent, handler, delegationFunction) {\n const isDelegated = typeof handler === 'string'\n // TODO: tooltip passes `false` instead of selector, so we need to check\n const callable = isDelegated ? delegationFunction : (handler || delegationFunction)\n let typeEvent = getTypeEvent(originalTypeEvent)\n\n if (!nativeEvents.has(typeEvent)) {\n typeEvent = originalTypeEvent\n }\n\n return [isDelegated, callable, typeEvent]\n}\n\nfunction addHandler(element, originalTypeEvent, handler, delegationFunction, oneOff) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n let [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction)\n\n // in case of mouseenter or mouseleave wrap the handler within a function that checks for its DOM position\n // this prevents the handler from being dispatched the same way as mouseover or mouseout does\n if (originalTypeEvent in customEvents) {\n const wrapFunction = fn => {\n return function (event) {\n if (!event.relatedTarget || (event.relatedTarget !== event.delegateTarget && !event.delegateTarget.contains(event.relatedTarget))) {\n return fn.call(this, event)\n }\n }\n }\n\n callable = wrapFunction(callable)\n }\n\n const events = getElementEvents(element)\n const handlers = events[typeEvent] || (events[typeEvent] = {})\n const previousFunction = findHandler(handlers, callable, isDelegated ? handler : null)\n\n if (previousFunction) {\n previousFunction.oneOff = previousFunction.oneOff && oneOff\n\n return\n }\n\n const uid = makeEventUid(callable, originalTypeEvent.replace(namespaceRegex, ''))\n const fn = isDelegated ?\n bootstrapDelegationHandler(element, handler, callable) :\n bootstrapHandler(element, callable)\n\n fn.delegationSelector = isDelegated ? handler : null\n fn.callable = callable\n fn.oneOff = oneOff\n fn.uidEvent = uid\n handlers[uid] = fn\n\n element.addEventListener(typeEvent, fn, isDelegated)\n}\n\nfunction removeHandler(element, events, typeEvent, handler, delegationSelector) {\n const fn = findHandler(events[typeEvent], handler, delegationSelector)\n\n if (!fn) {\n return\n }\n\n element.removeEventListener(typeEvent, fn, Boolean(delegationSelector))\n delete events[typeEvent][fn.uidEvent]\n}\n\nfunction removeNamespacedHandlers(element, events, typeEvent, namespace) {\n const storeElementEvent = events[typeEvent] || {}\n\n for (const [handlerKey, event] of Object.entries(storeElementEvent)) {\n if (handlerKey.includes(namespace)) {\n removeHandler(element, events, typeEvent, event.callable, event.delegationSelector)\n }\n }\n}\n\nfunction getTypeEvent(event) {\n // allow to get the native events from namespaced events ('click.bs.button' --> 'click')\n event = event.replace(stripNameRegex, '')\n return customEvents[event] || event\n}\n\nconst EventHandler = {\n on(element, event, handler, delegationFunction) {\n addHandler(element, event, handler, delegationFunction, false)\n },\n\n one(element, event, handler, delegationFunction) {\n addHandler(element, event, handler, delegationFunction, true)\n },\n\n off(element, originalTypeEvent, handler, delegationFunction) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n const [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction)\n const inNamespace = typeEvent !== originalTypeEvent\n const events = getElementEvents(element)\n const storeElementEvent = events[typeEvent] || {}\n const isNamespace = originalTypeEvent.startsWith('.')\n\n if (typeof callable !== 'undefined') {\n // Simplest case: handler is passed, remove that listener ONLY.\n if (!Object.keys(storeElementEvent).length) {\n return\n }\n\n removeHandler(element, events, typeEvent, callable, isDelegated ? handler : null)\n return\n }\n\n if (isNamespace) {\n for (const elementEvent of Object.keys(events)) {\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1))\n }\n }\n\n for (const [keyHandlers, event] of Object.entries(storeElementEvent)) {\n const handlerKey = keyHandlers.replace(stripUidRegex, '')\n\n if (!inNamespace || originalTypeEvent.includes(handlerKey)) {\n removeHandler(element, events, typeEvent, event.callable, event.delegationSelector)\n }\n }\n },\n\n trigger(element, event, args) {\n if (typeof event !== 'string' || !element) {\n return null\n }\n\n const $ = getjQuery()\n const typeEvent = getTypeEvent(event)\n const inNamespace = event !== typeEvent\n\n let jQueryEvent = null\n let bubbles = true\n let nativeDispatch = true\n let defaultPrevented = false\n\n if (inNamespace && $) {\n jQueryEvent = $.Event(event, args)\n\n $(element).trigger(jQueryEvent)\n bubbles = !jQueryEvent.isPropagationStopped()\n nativeDispatch = !jQueryEvent.isImmediatePropagationStopped()\n defaultPrevented = jQueryEvent.isDefaultPrevented()\n }\n\n const evt = hydrateObj(new Event(event, { bubbles, cancelable: true }), args)\n\n if (defaultPrevented) {\n evt.preventDefault()\n }\n\n if (nativeDispatch) {\n element.dispatchEvent(evt)\n }\n\n if (evt.defaultPrevented && jQueryEvent) {\n jQueryEvent.preventDefault()\n }\n\n return evt\n }\n}\n\nfunction hydrateObj(obj, meta = {}) {\n for (const [key, value] of Object.entries(meta)) {\n try {\n obj[key] = value\n } catch {\n Object.defineProperty(obj, key, {\n configurable: true,\n get() {\n return value\n }\n })\n }\n }\n\n return obj\n}\n\nexport default EventHandler\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap dom/manipulator.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nfunction normalizeData(value) {\n if (value === 'true') {\n return true\n }\n\n if (value === 'false') {\n return false\n }\n\n if (value === Number(value).toString()) {\n return Number(value)\n }\n\n if (value === '' || value === 'null') {\n return null\n }\n\n if (typeof value !== 'string') {\n return value\n }\n\n try {\n return JSON.parse(decodeURIComponent(value))\n } catch {\n return value\n }\n}\n\nfunction normalizeDataKey(key) {\n return key.replace(/[A-Z]/g, chr => `-${chr.toLowerCase()}`)\n}\n\nconst Manipulator = {\n setDataAttribute(element, key, value) {\n element.setAttribute(`data-bs-${normalizeDataKey(key)}`, value)\n },\n\n removeDataAttribute(element, key) {\n element.removeAttribute(`data-bs-${normalizeDataKey(key)}`)\n },\n\n getDataAttributes(element) {\n if (!element) {\n return {}\n }\n\n const attributes = {}\n const bsKeys = Object.keys(element.dataset).filter(key => key.startsWith('bs') && !key.startsWith('bsConfig'))\n\n for (const key of bsKeys) {\n let pureKey = key.replace(/^bs/, '')\n pureKey = pureKey.charAt(0).toLowerCase() + pureKey.slice(1, pureKey.length)\n attributes[pureKey] = normalizeData(element.dataset[key])\n }\n\n return attributes\n },\n\n getDataAttribute(element, key) {\n return normalizeData(element.getAttribute(`data-bs-${normalizeDataKey(key)}`))\n }\n}\n\nexport default Manipulator\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap util/config.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Manipulator from '../dom/manipulator.js'\nimport { isElement, toType } from './index.js'\n\n/**\n * Class definition\n */\n\nclass Config {\n // Getters\n static get Default() {\n return {}\n }\n\n static get DefaultType() {\n return {}\n }\n\n static get NAME() {\n throw new Error('You have to implement the static method \"NAME\", for each component!')\n }\n\n _getConfig(config) {\n config = this._mergeConfigObj(config)\n config = this._configAfterMerge(config)\n this._typeCheckConfig(config)\n return config\n }\n\n _configAfterMerge(config) {\n return config\n }\n\n _mergeConfigObj(config, element) {\n const jsonConfig = isElement(element) ? Manipulator.getDataAttribute(element, 'config') : {} // try to parse\n\n return {\n ...this.constructor.Default,\n ...(typeof jsonConfig === 'object' ? jsonConfig : {}),\n ...(isElement(element) ? Manipulator.getDataAttributes(element) : {}),\n ...(typeof config === 'object' ? config : {})\n }\n }\n\n _typeCheckConfig(config, configTypes = this.constructor.DefaultType) {\n for (const [property, expectedTypes] of Object.entries(configTypes)) {\n const value = config[property]\n const valueType = isElement(value) ? 'element' : toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new TypeError(\n `${this.constructor.NAME.toUpperCase()}: Option \"${property}\" provided type \"${valueType}\" but expected type \"${expectedTypes}\".`\n )\n }\n }\n }\n}\n\nexport default Config\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap base-component.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Data from './dom/data.js'\nimport EventHandler from './dom/event-handler.js'\nimport Config from './util/config.js'\nimport { executeAfterTransition, getElement } from './util/index.js'\n\n/**\n * Constants\n */\n\nconst VERSION = '5.3.3'\n\n/**\n * Class definition\n */\n\nclass BaseComponent extends Config {\n constructor(element, config) {\n super()\n\n element = getElement(element)\n if (!element) {\n return\n }\n\n this._element = element\n this._config = this._getConfig(config)\n\n Data.set(this._element, this.constructor.DATA_KEY, this)\n }\n\n // Public\n dispose() {\n Data.remove(this._element, this.constructor.DATA_KEY)\n EventHandler.off(this._element, this.constructor.EVENT_KEY)\n\n for (const propertyName of Object.getOwnPropertyNames(this)) {\n this[propertyName] = null\n }\n }\n\n _queueCallback(callback, element, isAnimated = true) {\n executeAfterTransition(callback, element, isAnimated)\n }\n\n _getConfig(config) {\n config = this._mergeConfigObj(config, this._element)\n config = this._configAfterMerge(config)\n this._typeCheckConfig(config)\n return config\n }\n\n // Static\n static getInstance(element) {\n return Data.get(getElement(element), this.DATA_KEY)\n }\n\n static getOrCreateInstance(element, config = {}) {\n return this.getInstance(element) || new this(element, typeof config === 'object' ? config : null)\n }\n\n static get VERSION() {\n return VERSION\n }\n\n static get DATA_KEY() {\n return `bs.${this.NAME}`\n }\n\n static get EVENT_KEY() {\n return `.${this.DATA_KEY}`\n }\n\n static eventName(name) {\n return `${name}${this.EVENT_KEY}`\n }\n}\n\nexport default BaseComponent\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap dom/selector-engine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { isDisabled, isVisible, parseSelector } from '../util/index.js'\n\nconst getSelector = element => {\n let selector = element.getAttribute('data-bs-target')\n\n if (!selector || selector === '#') {\n let hrefAttribute = element.getAttribute('href')\n\n // The only valid content that could double as a selector are IDs or classes,\n // so everything starting with `#` or `.`. If a \"real\" URL is used as the selector,\n // `document.querySelector` will rightfully complain it is invalid.\n // See https://github.com/twbs/bootstrap/issues/32273\n if (!hrefAttribute || (!hrefAttribute.includes('#') && !hrefAttribute.startsWith('.'))) {\n return null\n }\n\n // Just in case some CMS puts out a full URL with the anchor appended\n if (hrefAttribute.includes('#') && !hrefAttribute.startsWith('#')) {\n hrefAttribute = `#${hrefAttribute.split('#')[1]}`\n }\n\n selector = hrefAttribute && hrefAttribute !== '#' ? hrefAttribute.trim() : null\n }\n\n return selector ? selector.split(',').map(sel => parseSelector(sel)).join(',') : null\n}\n\nconst SelectorEngine = {\n find(selector, element = document.documentElement) {\n return [].concat(...Element.prototype.querySelectorAll.call(element, selector))\n },\n\n findOne(selector, element = document.documentElement) {\n return Element.prototype.querySelector.call(element, selector)\n },\n\n children(element, selector) {\n return [].concat(...element.children).filter(child => child.matches(selector))\n },\n\n parents(element, selector) {\n const parents = []\n let ancestor = element.parentNode.closest(selector)\n\n while (ancestor) {\n parents.push(ancestor)\n ancestor = ancestor.parentNode.closest(selector)\n }\n\n return parents\n },\n\n prev(element, selector) {\n let previous = element.previousElementSibling\n\n while (previous) {\n if (previous.matches(selector)) {\n return [previous]\n }\n\n previous = previous.previousElementSibling\n }\n\n return []\n },\n // TODO: this is now unused; remove later along with prev()\n next(element, selector) {\n let next = element.nextElementSibling\n\n while (next) {\n if (next.matches(selector)) {\n return [next]\n }\n\n next = next.nextElementSibling\n }\n\n return []\n },\n\n focusableChildren(element) {\n const focusables = [\n 'a',\n 'button',\n 'input',\n 'textarea',\n 'select',\n 'details',\n '[tabindex]',\n '[contenteditable=\"true\"]'\n ].map(selector => `${selector}:not([tabindex^=\"-\"])`).join(',')\n\n return this.find(focusables, element).filter(el => !isDisabled(el) && isVisible(el))\n },\n\n getSelectorFromElement(element) {\n const selector = getSelector(element)\n\n if (selector) {\n return SelectorEngine.findOne(selector) ? selector : null\n }\n\n return null\n },\n\n getElementFromSelector(element) {\n const selector = getSelector(element)\n\n return selector ? SelectorEngine.findOne(selector) : null\n },\n\n getMultipleElementsFromSelector(element) {\n const selector = getSelector(element)\n\n return selector ? SelectorEngine.find(selector) : []\n }\n}\n\nexport default SelectorEngine\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap util/component-functions.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport EventHandler from '../dom/event-handler.js'\nimport SelectorEngine from '../dom/selector-engine.js'\nimport { isDisabled } from './index.js'\n\nconst enableDismissTrigger = (component, method = 'hide') => {\n const clickEvent = `click.dismiss${component.EVENT_KEY}`\n const name = component.NAME\n\n EventHandler.on(document, clickEvent, `[data-bs-dismiss=\"${name}\"]`, function (event) {\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault()\n }\n\n if (isDisabled(this)) {\n return\n }\n\n const target = SelectorEngine.getElementFromSelector(this) || this.closest(`.${name}`)\n const instance = component.getOrCreateInstance(target)\n\n // Method argument is left, for Alert and only, as it doesn't implement the 'hide' method\n instance[method]()\n })\n}\n\nexport {\n enableDismissTrigger\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport { enableDismissTrigger } from './util/component-functions.js'\nimport { defineJQueryPlugin } from './util/index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'alert'\nconst DATA_KEY = 'bs.alert'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst EVENT_CLOSE = `close${EVENT_KEY}`\nconst EVENT_CLOSED = `closed${EVENT_KEY}`\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\n/**\n * Class definition\n */\n\nclass Alert extends BaseComponent {\n // Getters\n static get NAME() {\n return NAME\n }\n\n // Public\n close() {\n const closeEvent = EventHandler.trigger(this._element, EVENT_CLOSE)\n\n if (closeEvent.defaultPrevented) {\n return\n }\n\n this._element.classList.remove(CLASS_NAME_SHOW)\n\n const isAnimated = this._element.classList.contains(CLASS_NAME_FADE)\n this._queueCallback(() => this._destroyElement(), this._element, isAnimated)\n }\n\n // Private\n _destroyElement() {\n this._element.remove()\n EventHandler.trigger(this._element, EVENT_CLOSED)\n this.dispose()\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Alert.getOrCreateInstance(this)\n\n if (typeof config !== 'string') {\n return\n }\n\n if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](this)\n })\n }\n}\n\n/**\n * Data API implementation\n */\n\nenableDismissTrigger(Alert, 'close')\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Alert)\n\nexport default Alert\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport { defineJQueryPlugin } from './util/index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'button'\nconst DATA_KEY = 'bs.button'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst CLASS_NAME_ACTIVE = 'active'\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"button\"]'\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\n/**\n * Class definition\n */\n\nclass Button extends BaseComponent {\n // Getters\n static get NAME() {\n return NAME\n }\n\n // Public\n toggle() {\n // Toggle class and sync the `aria-pressed` attribute with the return value of the `.toggle()` method\n this._element.setAttribute('aria-pressed', this._element.classList.toggle(CLASS_NAME_ACTIVE))\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Button.getOrCreateInstance(this)\n\n if (config === 'toggle') {\n data[config]()\n }\n })\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, event => {\n event.preventDefault()\n\n const button = event.target.closest(SELECTOR_DATA_TOGGLE)\n const data = Button.getOrCreateInstance(button)\n\n data.toggle()\n})\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Button)\n\nexport default Button\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap util/swipe.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport EventHandler from '../dom/event-handler.js'\nimport Config from './config.js'\nimport { execute } from './index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'swipe'\nconst EVENT_KEY = '.bs.swipe'\nconst EVENT_TOUCHSTART = `touchstart${EVENT_KEY}`\nconst EVENT_TOUCHMOVE = `touchmove${EVENT_KEY}`\nconst EVENT_TOUCHEND = `touchend${EVENT_KEY}`\nconst EVENT_POINTERDOWN = `pointerdown${EVENT_KEY}`\nconst EVENT_POINTERUP = `pointerup${EVENT_KEY}`\nconst POINTER_TYPE_TOUCH = 'touch'\nconst POINTER_TYPE_PEN = 'pen'\nconst CLASS_NAME_POINTER_EVENT = 'pointer-event'\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n endCallback: null,\n leftCallback: null,\n rightCallback: null\n}\n\nconst DefaultType = {\n endCallback: '(function|null)',\n leftCallback: '(function|null)',\n rightCallback: '(function|null)'\n}\n\n/**\n * Class definition\n */\n\nclass Swipe extends Config {\n constructor(element, config) {\n super()\n this._element = element\n\n if (!element || !Swipe.isSupported()) {\n return\n }\n\n this._config = this._getConfig(config)\n this._deltaX = 0\n this._supportPointerEvents = Boolean(window.PointerEvent)\n this._initEvents()\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n dispose() {\n EventHandler.off(this._element, EVENT_KEY)\n }\n\n // Private\n _start(event) {\n if (!this._supportPointerEvents) {\n this._deltaX = event.touches[0].clientX\n\n return\n }\n\n if (this._eventIsPointerPenTouch(event)) {\n this._deltaX = event.clientX\n }\n }\n\n _end(event) {\n if (this._eventIsPointerPenTouch(event)) {\n this._deltaX = event.clientX - this._deltaX\n }\n\n this._handleSwipe()\n execute(this._config.endCallback)\n }\n\n _move(event) {\n this._deltaX = event.touches && event.touches.length > 1 ?\n 0 :\n event.touches[0].clientX - this._deltaX\n }\n\n _handleSwipe() {\n const absDeltaX = Math.abs(this._deltaX)\n\n if (absDeltaX <= SWIPE_THRESHOLD) {\n return\n }\n\n const direction = absDeltaX / this._deltaX\n\n this._deltaX = 0\n\n if (!direction) {\n return\n }\n\n execute(direction > 0 ? this._config.rightCallback : this._config.leftCallback)\n }\n\n _initEvents() {\n if (this._supportPointerEvents) {\n EventHandler.on(this._element, EVENT_POINTERDOWN, event => this._start(event))\n EventHandler.on(this._element, EVENT_POINTERUP, event => this._end(event))\n\n this._element.classList.add(CLASS_NAME_POINTER_EVENT)\n } else {\n EventHandler.on(this._element, EVENT_TOUCHSTART, event => this._start(event))\n EventHandler.on(this._element, EVENT_TOUCHMOVE, event => this._move(event))\n EventHandler.on(this._element, EVENT_TOUCHEND, event => this._end(event))\n }\n }\n\n _eventIsPointerPenTouch(event) {\n return this._supportPointerEvents && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH)\n }\n\n // Static\n static isSupported() {\n return 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n }\n}\n\nexport default Swipe\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport Manipulator from './dom/manipulator.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport {\n defineJQueryPlugin,\n getNextActiveElement,\n isRTL,\n isVisible,\n reflow,\n triggerTransitionEnd\n} from './util/index.js'\nimport Swipe from './util/swipe.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'carousel'\nconst DATA_KEY = 'bs.carousel'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst ARROW_LEFT_KEY = 'ArrowLeft'\nconst ARROW_RIGHT_KEY = 'ArrowRight'\nconst TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\n\nconst ORDER_NEXT = 'next'\nconst ORDER_PREV = 'prev'\nconst DIRECTION_LEFT = 'left'\nconst DIRECTION_RIGHT = 'right'\n\nconst EVENT_SLIDE = `slide${EVENT_KEY}`\nconst EVENT_SLID = `slid${EVENT_KEY}`\nconst EVENT_KEYDOWN = `keydown${EVENT_KEY}`\nconst EVENT_MOUSEENTER = `mouseenter${EVENT_KEY}`\nconst EVENT_MOUSELEAVE = `mouseleave${EVENT_KEY}`\nconst EVENT_DRAG_START = `dragstart${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_CAROUSEL = 'carousel'\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_SLIDE = 'slide'\nconst CLASS_NAME_END = 'carousel-item-end'\nconst CLASS_NAME_START = 'carousel-item-start'\nconst CLASS_NAME_NEXT = 'carousel-item-next'\nconst CLASS_NAME_PREV = 'carousel-item-prev'\n\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ITEM = '.carousel-item'\nconst SELECTOR_ACTIVE_ITEM = SELECTOR_ACTIVE + SELECTOR_ITEM\nconst SELECTOR_ITEM_IMG = '.carousel-item img'\nconst SELECTOR_INDICATORS = '.carousel-indicators'\nconst SELECTOR_DATA_SLIDE = '[data-bs-slide], [data-bs-slide-to]'\nconst SELECTOR_DATA_RIDE = '[data-bs-ride=\"carousel\"]'\n\nconst KEY_TO_DIRECTION = {\n [ARROW_LEFT_KEY]: DIRECTION_RIGHT,\n [ARROW_RIGHT_KEY]: DIRECTION_LEFT\n}\n\nconst Default = {\n interval: 5000,\n keyboard: true,\n pause: 'hover',\n ride: false,\n touch: true,\n wrap: true\n}\n\nconst DefaultType = {\n interval: '(number|boolean)', // TODO:v6 remove boolean support\n keyboard: 'boolean',\n pause: '(string|boolean)',\n ride: '(boolean|string)',\n touch: 'boolean',\n wrap: 'boolean'\n}\n\n/**\n * Class definition\n */\n\nclass Carousel extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._interval = null\n this._activeElement = null\n this._isSliding = false\n this.touchTimeout = null\n this._swipeHelper = null\n\n this._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, this._element)\n this._addEventListeners()\n\n if (this._config.ride === CLASS_NAME_CAROUSEL) {\n this.cycle()\n }\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n next() {\n this._slide(ORDER_NEXT)\n }\n\n nextWhenVisible() {\n // FIXME TODO use `document.visibilityState`\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden && isVisible(this._element)) {\n this.next()\n }\n }\n\n prev() {\n this._slide(ORDER_PREV)\n }\n\n pause() {\n if (this._isSliding) {\n triggerTransitionEnd(this._element)\n }\n\n this._clearInterval()\n }\n\n cycle() {\n this._clearInterval()\n this._updateInterval()\n\n this._interval = setInterval(() => this.nextWhenVisible(), this._config.interval)\n }\n\n _maybeEnableCycle() {\n if (!this._config.ride) {\n return\n }\n\n if (this._isSliding) {\n EventHandler.one(this._element, EVENT_SLID, () => this.cycle())\n return\n }\n\n this.cycle()\n }\n\n to(index) {\n const items = this._getItems()\n if (index > items.length - 1 || index < 0) {\n return\n }\n\n if (this._isSliding) {\n EventHandler.one(this._element, EVENT_SLID, () => this.to(index))\n return\n }\n\n const activeIndex = this._getItemIndex(this._getActive())\n if (activeIndex === index) {\n return\n }\n\n const order = index > activeIndex ? ORDER_NEXT : ORDER_PREV\n\n this._slide(order, items[index])\n }\n\n dispose() {\n if (this._swipeHelper) {\n this._swipeHelper.dispose()\n }\n\n super.dispose()\n }\n\n // Private\n _configAfterMerge(config) {\n config.defaultInterval = config.interval\n return config\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n EventHandler.on(this._element, EVENT_KEYDOWN, event => this._keydown(event))\n }\n\n if (this._config.pause === 'hover') {\n EventHandler.on(this._element, EVENT_MOUSEENTER, () => this.pause())\n EventHandler.on(this._element, EVENT_MOUSELEAVE, () => this._maybeEnableCycle())\n }\n\n if (this._config.touch && Swipe.isSupported()) {\n this._addTouchEventListeners()\n }\n }\n\n _addTouchEventListeners() {\n for (const img of SelectorEngine.find(SELECTOR_ITEM_IMG, this._element)) {\n EventHandler.on(img, EVENT_DRAG_START, event => event.preventDefault())\n }\n\n const endCallBack = () => {\n if (this._config.pause !== 'hover') {\n return\n }\n\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n\n this.pause()\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout)\n }\n\n this.touchTimeout = setTimeout(() => this._maybeEnableCycle(), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n }\n\n const swipeConfig = {\n leftCallback: () => this._slide(this._directionToOrder(DIRECTION_LEFT)),\n rightCallback: () => this._slide(this._directionToOrder(DIRECTION_RIGHT)),\n endCallback: endCallBack\n }\n\n this._swipeHelper = new Swipe(this._element, swipeConfig)\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n const direction = KEY_TO_DIRECTION[event.key]\n if (direction) {\n event.preventDefault()\n this._slide(this._directionToOrder(direction))\n }\n }\n\n _getItemIndex(element) {\n return this._getItems().indexOf(element)\n }\n\n _setActiveIndicatorElement(index) {\n if (!this._indicatorsElement) {\n return\n }\n\n const activeIndicator = SelectorEngine.findOne(SELECTOR_ACTIVE, this._indicatorsElement)\n\n activeIndicator.classList.remove(CLASS_NAME_ACTIVE)\n activeIndicator.removeAttribute('aria-current')\n\n const newActiveIndicator = SelectorEngine.findOne(`[data-bs-slide-to=\"${index}\"]`, this._indicatorsElement)\n\n if (newActiveIndicator) {\n newActiveIndicator.classList.add(CLASS_NAME_ACTIVE)\n newActiveIndicator.setAttribute('aria-current', 'true')\n }\n }\n\n _updateInterval() {\n const element = this._activeElement || this._getActive()\n\n if (!element) {\n return\n }\n\n const elementInterval = Number.parseInt(element.getAttribute('data-bs-interval'), 10)\n\n this._config.interval = elementInterval || this._config.defaultInterval\n }\n\n _slide(order, element = null) {\n if (this._isSliding) {\n return\n }\n\n const activeElement = this._getActive()\n const isNext = order === ORDER_NEXT\n const nextElement = element || getNextActiveElement(this._getItems(), activeElement, isNext, this._config.wrap)\n\n if (nextElement === activeElement) {\n return\n }\n\n const nextElementIndex = this._getItemIndex(nextElement)\n\n const triggerEvent = eventName => {\n return EventHandler.trigger(this._element, eventName, {\n relatedTarget: nextElement,\n direction: this._orderToDirection(order),\n from: this._getItemIndex(activeElement),\n to: nextElementIndex\n })\n }\n\n const slideEvent = triggerEvent(EVENT_SLIDE)\n\n if (slideEvent.defaultPrevented) {\n return\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n // TODO: change tests that use empty divs to avoid this check\n return\n }\n\n const isCycling = Boolean(this._interval)\n this.pause()\n\n this._isSliding = true\n\n this._setActiveIndicatorElement(nextElementIndex)\n this._activeElement = nextElement\n\n const directionalClassName = isNext ? CLASS_NAME_START : CLASS_NAME_END\n const orderClassName = isNext ? CLASS_NAME_NEXT : CLASS_NAME_PREV\n\n nextElement.classList.add(orderClassName)\n\n reflow(nextElement)\n\n activeElement.classList.add(directionalClassName)\n nextElement.classList.add(directionalClassName)\n\n const completeCallBack = () => {\n nextElement.classList.remove(directionalClassName, orderClassName)\n nextElement.classList.add(CLASS_NAME_ACTIVE)\n\n activeElement.classList.remove(CLASS_NAME_ACTIVE, orderClassName, directionalClassName)\n\n this._isSliding = false\n\n triggerEvent(EVENT_SLID)\n }\n\n this._queueCallback(completeCallBack, activeElement, this._isAnimated())\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n _isAnimated() {\n return this._element.classList.contains(CLASS_NAME_SLIDE)\n }\n\n _getActive() {\n return SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element)\n }\n\n _getItems() {\n return SelectorEngine.find(SELECTOR_ITEM, this._element)\n }\n\n _clearInterval() {\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n }\n\n _directionToOrder(direction) {\n if (isRTL()) {\n return direction === DIRECTION_LEFT ? ORDER_PREV : ORDER_NEXT\n }\n\n return direction === DIRECTION_LEFT ? ORDER_NEXT : ORDER_PREV\n }\n\n _orderToDirection(order) {\n if (isRTL()) {\n return order === ORDER_PREV ? DIRECTION_LEFT : DIRECTION_RIGHT\n }\n\n return order === ORDER_PREV ? DIRECTION_RIGHT : DIRECTION_LEFT\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Carousel.getOrCreateInstance(this, config)\n\n if (typeof config === 'number') {\n data.to(config)\n return\n }\n\n if (typeof config === 'string') {\n if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_SLIDE, function (event) {\n const target = SelectorEngine.getElementFromSelector(this)\n\n if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) {\n return\n }\n\n event.preventDefault()\n\n const carousel = Carousel.getOrCreateInstance(target)\n const slideIndex = this.getAttribute('data-bs-slide-to')\n\n if (slideIndex) {\n carousel.to(slideIndex)\n carousel._maybeEnableCycle()\n return\n }\n\n if (Manipulator.getDataAttribute(this, 'slide') === 'next') {\n carousel.next()\n carousel._maybeEnableCycle()\n return\n }\n\n carousel.prev()\n carousel._maybeEnableCycle()\n})\n\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n const carousels = SelectorEngine.find(SELECTOR_DATA_RIDE)\n\n for (const carousel of carousels) {\n Carousel.getOrCreateInstance(carousel)\n }\n})\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Carousel)\n\nexport default Carousel\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport {\n defineJQueryPlugin,\n getElement,\n reflow\n} from './util/index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'collapse'\nconst DATA_KEY = 'bs.collapse'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_COLLAPSE = 'collapse'\nconst CLASS_NAME_COLLAPSING = 'collapsing'\nconst CLASS_NAME_COLLAPSED = 'collapsed'\nconst CLASS_NAME_DEEPER_CHILDREN = `:scope .${CLASS_NAME_COLLAPSE} .${CLASS_NAME_COLLAPSE}`\nconst CLASS_NAME_HORIZONTAL = 'collapse-horizontal'\n\nconst WIDTH = 'width'\nconst HEIGHT = 'height'\n\nconst SELECTOR_ACTIVES = '.collapse.show, .collapse.collapsing'\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"collapse\"]'\n\nconst Default = {\n parent: null,\n toggle: true\n}\n\nconst DefaultType = {\n parent: '(null|element)',\n toggle: 'boolean'\n}\n\n/**\n * Class definition\n */\n\nclass Collapse extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._isTransitioning = false\n this._triggerArray = []\n\n const toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE)\n\n for (const elem of toggleList) {\n const selector = SelectorEngine.getSelectorFromElement(elem)\n const filterElement = SelectorEngine.find(selector)\n .filter(foundElement => foundElement === this._element)\n\n if (selector !== null && filterElement.length) {\n this._triggerArray.push(elem)\n }\n }\n\n this._initializeChildren()\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._triggerArray, this._isShown())\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n toggle() {\n if (this._isShown()) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning || this._isShown()) {\n return\n }\n\n let activeChildren = []\n\n // find active children\n if (this._config.parent) {\n activeChildren = this._getFirstLevelChildren(SELECTOR_ACTIVES)\n .filter(element => element !== this._element)\n .map(element => Collapse.getOrCreateInstance(element, { toggle: false }))\n }\n\n if (activeChildren.length && activeChildren[0]._isTransitioning) {\n return\n }\n\n const startEvent = EventHandler.trigger(this._element, EVENT_SHOW)\n if (startEvent.defaultPrevented) {\n return\n }\n\n for (const activeInstance of activeChildren) {\n activeInstance.hide()\n }\n\n const dimension = this._getDimension()\n\n this._element.classList.remove(CLASS_NAME_COLLAPSE)\n this._element.classList.add(CLASS_NAME_COLLAPSING)\n\n this._element.style[dimension] = 0\n\n this._addAriaAndCollapsedClass(this._triggerArray, true)\n this._isTransitioning = true\n\n const complete = () => {\n this._isTransitioning = false\n\n this._element.classList.remove(CLASS_NAME_COLLAPSING)\n this._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW)\n\n this._element.style[dimension] = ''\n\n EventHandler.trigger(this._element, EVENT_SHOWN)\n }\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n const scrollSize = `scroll${capitalizedDimension}`\n\n this._queueCallback(complete, this._element, true)\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning || !this._isShown()) {\n return\n }\n\n const startEvent = EventHandler.trigger(this._element, EVENT_HIDE)\n if (startEvent.defaultPrevented) {\n return\n }\n\n const dimension = this._getDimension()\n\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n reflow(this._element)\n\n this._element.classList.add(CLASS_NAME_COLLAPSING)\n this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW)\n\n for (const trigger of this._triggerArray) {\n const element = SelectorEngine.getElementFromSelector(trigger)\n\n if (element && !this._isShown(element)) {\n this._addAriaAndCollapsedClass([trigger], false)\n }\n }\n\n this._isTransitioning = true\n\n const complete = () => {\n this._isTransitioning = false\n this._element.classList.remove(CLASS_NAME_COLLAPSING)\n this._element.classList.add(CLASS_NAME_COLLAPSE)\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n }\n\n this._element.style[dimension] = ''\n\n this._queueCallback(complete, this._element, true)\n }\n\n _isShown(element = this._element) {\n return element.classList.contains(CLASS_NAME_SHOW)\n }\n\n // Private\n _configAfterMerge(config) {\n config.toggle = Boolean(config.toggle) // Coerce string values\n config.parent = getElement(config.parent)\n return config\n }\n\n _getDimension() {\n return this._element.classList.contains(CLASS_NAME_HORIZONTAL) ? WIDTH : HEIGHT\n }\n\n _initializeChildren() {\n if (!this._config.parent) {\n return\n }\n\n const children = this._getFirstLevelChildren(SELECTOR_DATA_TOGGLE)\n\n for (const element of children) {\n const selected = SelectorEngine.getElementFromSelector(element)\n\n if (selected) {\n this._addAriaAndCollapsedClass([element], this._isShown(selected))\n }\n }\n }\n\n _getFirstLevelChildren(selector) {\n const children = SelectorEngine.find(CLASS_NAME_DEEPER_CHILDREN, this._config.parent)\n // remove children if greater depth\n return SelectorEngine.find(selector, this._config.parent).filter(element => !children.includes(element))\n }\n\n _addAriaAndCollapsedClass(triggerArray, isOpen) {\n if (!triggerArray.length) {\n return\n }\n\n for (const element of triggerArray) {\n element.classList.toggle(CLASS_NAME_COLLAPSED, !isOpen)\n element.setAttribute('aria-expanded', isOpen)\n }\n }\n\n // Static\n static jQueryInterface(config) {\n const _config = {}\n if (typeof config === 'string' && /show|hide/.test(config)) {\n _config.toggle = false\n }\n\n return this.each(function () {\n const data = Collapse.getOrCreateInstance(this, _config)\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n // preventDefault only for elements (which change the URL) not inside the collapsible element\n if (event.target.tagName === 'A' || (event.delegateTarget && event.delegateTarget.tagName === 'A')) {\n event.preventDefault()\n }\n\n for (const element of SelectorEngine.getMultipleElementsFromSelector(this)) {\n Collapse.getOrCreateInstance(element, { toggle: false }).toggle()\n }\n})\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Collapse)\n\nexport default Collapse\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport * as Popper from '@popperjs/core'\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport Manipulator from './dom/manipulator.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport {\n defineJQueryPlugin,\n execute,\n getElement,\n getNextActiveElement,\n isDisabled,\n isElement,\n isRTL,\n isVisible,\n noop\n} from './util/index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'dropdown'\nconst DATA_KEY = 'bs.dropdown'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst ESCAPE_KEY = 'Escape'\nconst TAB_KEY = 'Tab'\nconst ARROW_UP_KEY = 'ArrowUp'\nconst ARROW_DOWN_KEY = 'ArrowDown'\nconst RIGHT_MOUSE_BUTTON = 2 // MouseEvent.button value for the secondary button, usually the right button\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_DROPUP = 'dropup'\nconst CLASS_NAME_DROPEND = 'dropend'\nconst CLASS_NAME_DROPSTART = 'dropstart'\nconst CLASS_NAME_DROPUP_CENTER = 'dropup-center'\nconst CLASS_NAME_DROPDOWN_CENTER = 'dropdown-center'\n\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"dropdown\"]:not(.disabled):not(:disabled)'\nconst SELECTOR_DATA_TOGGLE_SHOWN = `${SELECTOR_DATA_TOGGLE}.${CLASS_NAME_SHOW}`\nconst SELECTOR_MENU = '.dropdown-menu'\nconst SELECTOR_NAVBAR = '.navbar'\nconst SELECTOR_NAVBAR_NAV = '.navbar-nav'\nconst SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n\nconst PLACEMENT_TOP = isRTL() ? 'top-end' : 'top-start'\nconst PLACEMENT_TOPEND = isRTL() ? 'top-start' : 'top-end'\nconst PLACEMENT_BOTTOM = isRTL() ? 'bottom-end' : 'bottom-start'\nconst PLACEMENT_BOTTOMEND = isRTL() ? 'bottom-start' : 'bottom-end'\nconst PLACEMENT_RIGHT = isRTL() ? 'left-start' : 'right-start'\nconst PLACEMENT_LEFT = isRTL() ? 'right-start' : 'left-start'\nconst PLACEMENT_TOPCENTER = 'top'\nconst PLACEMENT_BOTTOMCENTER = 'bottom'\n\nconst Default = {\n autoClose: true,\n boundary: 'clippingParents',\n display: 'dynamic',\n offset: [0, 2],\n popperConfig: null,\n reference: 'toggle'\n}\n\nconst DefaultType = {\n autoClose: '(boolean|string)',\n boundary: '(string|element)',\n display: 'string',\n offset: '(array|string|function)',\n popperConfig: '(null|object|function)',\n reference: '(string|element|object)'\n}\n\n/**\n * Class definition\n */\n\nclass Dropdown extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._popper = null\n this._parent = this._element.parentNode // dropdown wrapper\n // TODO: v6 revert #37011 & change markup https://getbootstrap.com/docs/5.3/forms/input-group/\n this._menu = SelectorEngine.next(this._element, SELECTOR_MENU)[0] ||\n SelectorEngine.prev(this._element, SELECTOR_MENU)[0] ||\n SelectorEngine.findOne(SELECTOR_MENU, this._parent)\n this._inNavbar = this._detectNavbar()\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n toggle() {\n return this._isShown() ? this.hide() : this.show()\n }\n\n show() {\n if (isDisabled(this._element) || this._isShown()) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, relatedTarget)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n this._createPopper()\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement && !this._parent.closest(SELECTOR_NAVBAR_NAV)) {\n for (const element of [].concat(...document.body.children)) {\n EventHandler.on(element, 'mouseover', noop)\n }\n }\n\n this._element.focus()\n this._element.setAttribute('aria-expanded', true)\n\n this._menu.classList.add(CLASS_NAME_SHOW)\n this._element.classList.add(CLASS_NAME_SHOW)\n EventHandler.trigger(this._element, EVENT_SHOWN, relatedTarget)\n }\n\n hide() {\n if (isDisabled(this._element) || !this._isShown()) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n this._completeHide(relatedTarget)\n }\n\n dispose() {\n if (this._popper) {\n this._popper.destroy()\n }\n\n super.dispose()\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper) {\n this._popper.update()\n }\n }\n\n // Private\n _completeHide(relatedTarget) {\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE, relatedTarget)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n for (const element of [].concat(...document.body.children)) {\n EventHandler.off(element, 'mouseover', noop)\n }\n }\n\n if (this._popper) {\n this._popper.destroy()\n }\n\n this._menu.classList.remove(CLASS_NAME_SHOW)\n this._element.classList.remove(CLASS_NAME_SHOW)\n this._element.setAttribute('aria-expanded', 'false')\n Manipulator.removeDataAttribute(this._menu, 'popper')\n EventHandler.trigger(this._element, EVENT_HIDDEN, relatedTarget)\n }\n\n _getConfig(config) {\n config = super._getConfig(config)\n\n if (typeof config.reference === 'object' && !isElement(config.reference) &&\n typeof config.reference.getBoundingClientRect !== 'function'\n ) {\n // Popper virtual elements require a getBoundingClientRect method\n throw new TypeError(`${NAME.toUpperCase()}: Option \"reference\" provided type \"object\" without a required \"getBoundingClientRect\" method.`)\n }\n\n return config\n }\n\n _createPopper() {\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s dropdowns require Popper (https://popper.js.org)')\n }\n\n let referenceElement = this._element\n\n if (this._config.reference === 'parent') {\n referenceElement = this._parent\n } else if (isElement(this._config.reference)) {\n referenceElement = getElement(this._config.reference)\n } else if (typeof this._config.reference === 'object') {\n referenceElement = this._config.reference\n }\n\n const popperConfig = this._getPopperConfig()\n this._popper = Popper.createPopper(referenceElement, this._menu, popperConfig)\n }\n\n _isShown() {\n return this._menu.classList.contains(CLASS_NAME_SHOW)\n }\n\n _getPlacement() {\n const parentDropdown = this._parent\n\n if (parentDropdown.classList.contains(CLASS_NAME_DROPEND)) {\n return PLACEMENT_RIGHT\n }\n\n if (parentDropdown.classList.contains(CLASS_NAME_DROPSTART)) {\n return PLACEMENT_LEFT\n }\n\n if (parentDropdown.classList.contains(CLASS_NAME_DROPUP_CENTER)) {\n return PLACEMENT_TOPCENTER\n }\n\n if (parentDropdown.classList.contains(CLASS_NAME_DROPDOWN_CENTER)) {\n return PLACEMENT_BOTTOMCENTER\n }\n\n // We need to trim the value because custom properties can also include spaces\n const isEnd = getComputedStyle(this._menu).getPropertyValue('--bs-position').trim() === 'end'\n\n if (parentDropdown.classList.contains(CLASS_NAME_DROPUP)) {\n return isEnd ? PLACEMENT_TOPEND : PLACEMENT_TOP\n }\n\n return isEnd ? PLACEMENT_BOTTOMEND : PLACEMENT_BOTTOM\n }\n\n _detectNavbar() {\n return this._element.closest(SELECTOR_NAVBAR) !== null\n }\n\n _getOffset() {\n const { offset } = this._config\n\n if (typeof offset === 'string') {\n return offset.split(',').map(value => Number.parseInt(value, 10))\n }\n\n if (typeof offset === 'function') {\n return popperData => offset(popperData, this._element)\n }\n\n return offset\n }\n\n _getPopperConfig() {\n const defaultBsPopperConfig = {\n placement: this._getPlacement(),\n modifiers: [{\n name: 'preventOverflow',\n options: {\n boundary: this._config.boundary\n }\n },\n {\n name: 'offset',\n options: {\n offset: this._getOffset()\n }\n }]\n }\n\n // Disable Popper if we have a static display or Dropdown is in Navbar\n if (this._inNavbar || this._config.display === 'static') {\n Manipulator.setDataAttribute(this._menu, 'popper', 'static') // TODO: v6 remove\n defaultBsPopperConfig.modifiers = [{\n name: 'applyStyles',\n enabled: false\n }]\n }\n\n return {\n ...defaultBsPopperConfig,\n ...execute(this._config.popperConfig, [defaultBsPopperConfig])\n }\n }\n\n _selectMenuItem({ key, target }) {\n const items = SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, this._menu).filter(element => isVisible(element))\n\n if (!items.length) {\n return\n }\n\n // if target isn't included in items (e.g. when expanding the dropdown)\n // allow cycling to get the last item in case key equals ARROW_UP_KEY\n getNextActiveElement(items, target, key === ARROW_DOWN_KEY, !items.includes(target)).focus()\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Dropdown.getOrCreateInstance(this, config)\n\n if (typeof config !== 'string') {\n return\n }\n\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n })\n }\n\n static clearMenus(event) {\n if (event.button === RIGHT_MOUSE_BUTTON || (event.type === 'keyup' && event.key !== TAB_KEY)) {\n return\n }\n\n const openToggles = SelectorEngine.find(SELECTOR_DATA_TOGGLE_SHOWN)\n\n for (const toggle of openToggles) {\n const context = Dropdown.getInstance(toggle)\n if (!context || context._config.autoClose === false) {\n continue\n }\n\n const composedPath = event.composedPath()\n const isMenuTarget = composedPath.includes(context._menu)\n if (\n composedPath.includes(context._element) ||\n (context._config.autoClose === 'inside' && !isMenuTarget) ||\n (context._config.autoClose === 'outside' && isMenuTarget)\n ) {\n continue\n }\n\n // Tab navigation through the dropdown menu or events from contained inputs shouldn't close the menu\n if (context._menu.contains(event.target) && ((event.type === 'keyup' && event.key === TAB_KEY) || /input|select|option|textarea|form/i.test(event.target.tagName))) {\n continue\n }\n\n const relatedTarget = { relatedTarget: context._element }\n\n if (event.type === 'click') {\n relatedTarget.clickEvent = event\n }\n\n context._completeHide(relatedTarget)\n }\n }\n\n static dataApiKeydownHandler(event) {\n // If not an UP | DOWN | ESCAPE key => not a dropdown command\n // If input/textarea && if key is other than ESCAPE => not a dropdown command\n\n const isInput = /input|textarea/i.test(event.target.tagName)\n const isEscapeEvent = event.key === ESCAPE_KEY\n const isUpOrDownEvent = [ARROW_UP_KEY, ARROW_DOWN_KEY].includes(event.key)\n\n if (!isUpOrDownEvent && !isEscapeEvent) {\n return\n }\n\n if (isInput && !isEscapeEvent) {\n return\n }\n\n event.preventDefault()\n\n // TODO: v6 revert #37011 & change markup https://getbootstrap.com/docs/5.3/forms/input-group/\n const getToggleButton = this.matches(SELECTOR_DATA_TOGGLE) ?\n this :\n (SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE)[0] ||\n SelectorEngine.next(this, SELECTOR_DATA_TOGGLE)[0] ||\n SelectorEngine.findOne(SELECTOR_DATA_TOGGLE, event.delegateTarget.parentNode))\n\n const instance = Dropdown.getOrCreateInstance(getToggleButton)\n\n if (isUpOrDownEvent) {\n event.stopPropagation()\n instance.show()\n instance._selectMenuItem(event)\n return\n }\n\n if (instance._isShown()) { // else is escape and we check if it is shown\n event.stopPropagation()\n instance.hide()\n getToggleButton.focus()\n }\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE, Dropdown.dataApiKeydownHandler)\nEventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown.dataApiKeydownHandler)\nEventHandler.on(document, EVENT_CLICK_DATA_API, Dropdown.clearMenus)\nEventHandler.on(document, EVENT_KEYUP_DATA_API, Dropdown.clearMenus)\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n event.preventDefault()\n Dropdown.getOrCreateInstance(this).toggle()\n})\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Dropdown)\n\nexport default Dropdown\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap util/backdrop.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport EventHandler from '../dom/event-handler.js'\nimport Config from './config.js'\nimport {\n execute, executeAfterTransition, getElement, reflow\n} from './index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'backdrop'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\nconst EVENT_MOUSEDOWN = `mousedown.bs.${NAME}`\n\nconst Default = {\n className: 'modal-backdrop',\n clickCallback: null,\n isAnimated: false,\n isVisible: true, // if false, we use the backdrop helper without adding any element to the dom\n rootElement: 'body' // give the choice to place backdrop under different elements\n}\n\nconst DefaultType = {\n className: 'string',\n clickCallback: '(function|null)',\n isAnimated: 'boolean',\n isVisible: 'boolean',\n rootElement: '(element|string)'\n}\n\n/**\n * Class definition\n */\n\nclass Backdrop extends Config {\n constructor(config) {\n super()\n this._config = this._getConfig(config)\n this._isAppended = false\n this._element = null\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n show(callback) {\n if (!this._config.isVisible) {\n execute(callback)\n return\n }\n\n this._append()\n\n const element = this._getElement()\n if (this._config.isAnimated) {\n reflow(element)\n }\n\n element.classList.add(CLASS_NAME_SHOW)\n\n this._emulateAnimation(() => {\n execute(callback)\n })\n }\n\n hide(callback) {\n if (!this._config.isVisible) {\n execute(callback)\n return\n }\n\n this._getElement().classList.remove(CLASS_NAME_SHOW)\n\n this._emulateAnimation(() => {\n this.dispose()\n execute(callback)\n })\n }\n\n dispose() {\n if (!this._isAppended) {\n return\n }\n\n EventHandler.off(this._element, EVENT_MOUSEDOWN)\n\n this._element.remove()\n this._isAppended = false\n }\n\n // Private\n _getElement() {\n if (!this._element) {\n const backdrop = document.createElement('div')\n backdrop.className = this._config.className\n if (this._config.isAnimated) {\n backdrop.classList.add(CLASS_NAME_FADE)\n }\n\n this._element = backdrop\n }\n\n return this._element\n }\n\n _configAfterMerge(config) {\n // use getElement() with the default \"body\" to get a fresh Element on each instantiation\n config.rootElement = getElement(config.rootElement)\n return config\n }\n\n _append() {\n if (this._isAppended) {\n return\n }\n\n const element = this._getElement()\n this._config.rootElement.append(element)\n\n EventHandler.on(element, EVENT_MOUSEDOWN, () => {\n execute(this._config.clickCallback)\n })\n\n this._isAppended = true\n }\n\n _emulateAnimation(callback) {\n executeAfterTransition(callback, this._getElement(), this._config.isAnimated)\n }\n}\n\nexport default Backdrop\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap util/focustrap.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport EventHandler from '../dom/event-handler.js'\nimport SelectorEngine from '../dom/selector-engine.js'\nimport Config from './config.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'focustrap'\nconst DATA_KEY = 'bs.focustrap'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst EVENT_FOCUSIN = `focusin${EVENT_KEY}`\nconst EVENT_KEYDOWN_TAB = `keydown.tab${EVENT_KEY}`\n\nconst TAB_KEY = 'Tab'\nconst TAB_NAV_FORWARD = 'forward'\nconst TAB_NAV_BACKWARD = 'backward'\n\nconst Default = {\n autofocus: true,\n trapElement: null // The element to trap focus inside of\n}\n\nconst DefaultType = {\n autofocus: 'boolean',\n trapElement: 'element'\n}\n\n/**\n * Class definition\n */\n\nclass FocusTrap extends Config {\n constructor(config) {\n super()\n this._config = this._getConfig(config)\n this._isActive = false\n this._lastTabNavDirection = null\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n activate() {\n if (this._isActive) {\n return\n }\n\n if (this._config.autofocus) {\n this._config.trapElement.focus()\n }\n\n EventHandler.off(document, EVENT_KEY) // guard against infinite focus loop\n EventHandler.on(document, EVENT_FOCUSIN, event => this._handleFocusin(event))\n EventHandler.on(document, EVENT_KEYDOWN_TAB, event => this._handleKeydown(event))\n\n this._isActive = true\n }\n\n deactivate() {\n if (!this._isActive) {\n return\n }\n\n this._isActive = false\n EventHandler.off(document, EVENT_KEY)\n }\n\n // Private\n _handleFocusin(event) {\n const { trapElement } = this._config\n\n if (event.target === document || event.target === trapElement || trapElement.contains(event.target)) {\n return\n }\n\n const elements = SelectorEngine.focusableChildren(trapElement)\n\n if (elements.length === 0) {\n trapElement.focus()\n } else if (this._lastTabNavDirection === TAB_NAV_BACKWARD) {\n elements[elements.length - 1].focus()\n } else {\n elements[0].focus()\n }\n }\n\n _handleKeydown(event) {\n if (event.key !== TAB_KEY) {\n return\n }\n\n this._lastTabNavDirection = event.shiftKey ? TAB_NAV_BACKWARD : TAB_NAV_FORWARD\n }\n}\n\nexport default FocusTrap\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap util/scrollBar.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Manipulator from '../dom/manipulator.js'\nimport SelectorEngine from '../dom/selector-engine.js'\nimport { isElement } from './index.js'\n\n/**\n * Constants\n */\n\nconst SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top'\nconst SELECTOR_STICKY_CONTENT = '.sticky-top'\nconst PROPERTY_PADDING = 'padding-right'\nconst PROPERTY_MARGIN = 'margin-right'\n\n/**\n * Class definition\n */\n\nclass ScrollBarHelper {\n constructor() {\n this._element = document.body\n }\n\n // Public\n getWidth() {\n // https://developer.mozilla.org/en-US/docs/Web/API/Window/innerWidth#usage_notes\n const documentWidth = document.documentElement.clientWidth\n return Math.abs(window.innerWidth - documentWidth)\n }\n\n hide() {\n const width = this.getWidth()\n this._disableOverFlow()\n // give padding to element to balance the hidden scrollbar width\n this._setElementAttributes(this._element, PROPERTY_PADDING, calculatedValue => calculatedValue + width)\n // trick: We adjust positive paddingRight and negative marginRight to sticky-top elements to keep showing fullwidth\n this._setElementAttributes(SELECTOR_FIXED_CONTENT, PROPERTY_PADDING, calculatedValue => calculatedValue + width)\n this._setElementAttributes(SELECTOR_STICKY_CONTENT, PROPERTY_MARGIN, calculatedValue => calculatedValue - width)\n }\n\n reset() {\n this._resetElementAttributes(this._element, 'overflow')\n this._resetElementAttributes(this._element, PROPERTY_PADDING)\n this._resetElementAttributes(SELECTOR_FIXED_CONTENT, PROPERTY_PADDING)\n this._resetElementAttributes(SELECTOR_STICKY_CONTENT, PROPERTY_MARGIN)\n }\n\n isOverflowing() {\n return this.getWidth() > 0\n }\n\n // Private\n _disableOverFlow() {\n this._saveInitialAttribute(this._element, 'overflow')\n this._element.style.overflow = 'hidden'\n }\n\n _setElementAttributes(selector, styleProperty, callback) {\n const scrollbarWidth = this.getWidth()\n const manipulationCallBack = element => {\n if (element !== this._element && window.innerWidth > element.clientWidth + scrollbarWidth) {\n return\n }\n\n this._saveInitialAttribute(element, styleProperty)\n const calculatedValue = window.getComputedStyle(element).getPropertyValue(styleProperty)\n element.style.setProperty(styleProperty, `${callback(Number.parseFloat(calculatedValue))}px`)\n }\n\n this._applyManipulationCallback(selector, manipulationCallBack)\n }\n\n _saveInitialAttribute(element, styleProperty) {\n const actualValue = element.style.getPropertyValue(styleProperty)\n if (actualValue) {\n Manipulator.setDataAttribute(element, styleProperty, actualValue)\n }\n }\n\n _resetElementAttributes(selector, styleProperty) {\n const manipulationCallBack = element => {\n const value = Manipulator.getDataAttribute(element, styleProperty)\n // We only want to remove the property if the value is `null`; the value can also be zero\n if (value === null) {\n element.style.removeProperty(styleProperty)\n return\n }\n\n Manipulator.removeDataAttribute(element, styleProperty)\n element.style.setProperty(styleProperty, value)\n }\n\n this._applyManipulationCallback(selector, manipulationCallBack)\n }\n\n _applyManipulationCallback(selector, callBack) {\n if (isElement(selector)) {\n callBack(selector)\n return\n }\n\n for (const sel of SelectorEngine.find(selector, this._element)) {\n callBack(sel)\n }\n }\n}\n\nexport default ScrollBarHelper\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport Backdrop from './util/backdrop.js'\nimport { enableDismissTrigger } from './util/component-functions.js'\nimport FocusTrap from './util/focustrap.js'\nimport {\n defineJQueryPlugin, isRTL, isVisible, reflow\n} from './util/index.js'\nimport ScrollBarHelper from './util/scrollbar.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'modal'\nconst DATA_KEY = 'bs.modal'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ESCAPE_KEY = 'Escape'\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_RESIZE = `resize${EVENT_KEY}`\nconst EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY}`\nconst EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_OPEN = 'modal-open'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_STATIC = 'modal-static'\n\nconst OPEN_SELECTOR = '.modal.show'\nconst SELECTOR_DIALOG = '.modal-dialog'\nconst SELECTOR_MODAL_BODY = '.modal-body'\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"modal\"]'\n\nconst Default = {\n backdrop: true,\n focus: true,\n keyboard: true\n}\n\nconst DefaultType = {\n backdrop: '(boolean|string)',\n focus: 'boolean',\n keyboard: 'boolean'\n}\n\n/**\n * Class definition\n */\n\nclass Modal extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._dialog = SelectorEngine.findOne(SELECTOR_DIALOG, this._element)\n this._backdrop = this._initializeBackDrop()\n this._focustrap = this._initializeFocusTrap()\n this._isShown = false\n this._isTransitioning = false\n this._scrollBar = new ScrollBarHelper()\n\n this._addEventListeners()\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return\n }\n\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, {\n relatedTarget\n })\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n this._isShown = true\n this._isTransitioning = true\n\n this._scrollBar.hide()\n\n document.body.classList.add(CLASS_NAME_OPEN)\n\n this._adjustDialog()\n\n this._backdrop.show(() => this._showElement(relatedTarget))\n }\n\n hide() {\n if (!this._isShown || this._isTransitioning) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n this._isShown = false\n this._isTransitioning = true\n this._focustrap.deactivate()\n\n this._element.classList.remove(CLASS_NAME_SHOW)\n\n this._queueCallback(() => this._hideModal(), this._element, this._isAnimated())\n }\n\n dispose() {\n EventHandler.off(window, EVENT_KEY)\n EventHandler.off(this._dialog, EVENT_KEY)\n\n this._backdrop.dispose()\n this._focustrap.deactivate()\n\n super.dispose()\n }\n\n handleUpdate() {\n this._adjustDialog()\n }\n\n // Private\n _initializeBackDrop() {\n return new Backdrop({\n isVisible: Boolean(this._config.backdrop), // 'static' option will be translated to true, and booleans will keep their value,\n isAnimated: this._isAnimated()\n })\n }\n\n _initializeFocusTrap() {\n return new FocusTrap({\n trapElement: this._element\n })\n }\n\n _showElement(relatedTarget) {\n // try to append dynamic modal\n if (!document.body.contains(this._element)) {\n document.body.append(this._element)\n }\n\n this._element.style.display = 'block'\n this._element.removeAttribute('aria-hidden')\n this._element.setAttribute('aria-modal', true)\n this._element.setAttribute('role', 'dialog')\n this._element.scrollTop = 0\n\n const modalBody = SelectorEngine.findOne(SELECTOR_MODAL_BODY, this._dialog)\n if (modalBody) {\n modalBody.scrollTop = 0\n }\n\n reflow(this._element)\n\n this._element.classList.add(CLASS_NAME_SHOW)\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._focustrap.activate()\n }\n\n this._isTransitioning = false\n EventHandler.trigger(this._element, EVENT_SHOWN, {\n relatedTarget\n })\n }\n\n this._queueCallback(transitionComplete, this._dialog, this._isAnimated())\n }\n\n _addEventListeners() {\n EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, event => {\n if (event.key !== ESCAPE_KEY) {\n return\n }\n\n if (this._config.keyboard) {\n this.hide()\n return\n }\n\n this._triggerBackdropTransition()\n })\n\n EventHandler.on(window, EVENT_RESIZE, () => {\n if (this._isShown && !this._isTransitioning) {\n this._adjustDialog()\n }\n })\n\n EventHandler.on(this._element, EVENT_MOUSEDOWN_DISMISS, event => {\n // a bad trick to segregate clicks that may start inside dialog but end outside, and avoid listen to scrollbar clicks\n EventHandler.one(this._element, EVENT_CLICK_DISMISS, event2 => {\n if (this._element !== event.target || this._element !== event2.target) {\n return\n }\n\n if (this._config.backdrop === 'static') {\n this._triggerBackdropTransition()\n return\n }\n\n if (this._config.backdrop) {\n this.hide()\n }\n })\n })\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-modal')\n this._element.removeAttribute('role')\n this._isTransitioning = false\n\n this._backdrop.hide(() => {\n document.body.classList.remove(CLASS_NAME_OPEN)\n this._resetAdjustments()\n this._scrollBar.reset()\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n })\n }\n\n _isAnimated() {\n return this._element.classList.contains(CLASS_NAME_FADE)\n }\n\n _triggerBackdropTransition() {\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight\n const initialOverflowY = this._element.style.overflowY\n // return if the following background transition hasn't yet completed\n if (initialOverflowY === 'hidden' || this._element.classList.contains(CLASS_NAME_STATIC)) {\n return\n }\n\n if (!isModalOverflowing) {\n this._element.style.overflowY = 'hidden'\n }\n\n this._element.classList.add(CLASS_NAME_STATIC)\n this._queueCallback(() => {\n this._element.classList.remove(CLASS_NAME_STATIC)\n this._queueCallback(() => {\n this._element.style.overflowY = initialOverflowY\n }, this._dialog)\n }, this._dialog)\n\n this._element.focus()\n }\n\n /**\n * The following methods are used to handle overflowing modals\n */\n\n _adjustDialog() {\n const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight\n const scrollbarWidth = this._scrollBar.getWidth()\n const isBodyOverflowing = scrollbarWidth > 0\n\n if (isBodyOverflowing && !isModalOverflowing) {\n const property = isRTL() ? 'paddingLeft' : 'paddingRight'\n this._element.style[property] = `${scrollbarWidth}px`\n }\n\n if (!isBodyOverflowing && isModalOverflowing) {\n const property = isRTL() ? 'paddingRight' : 'paddingLeft'\n this._element.style[property] = `${scrollbarWidth}px`\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = ''\n this._element.style.paddingRight = ''\n }\n\n // Static\n static jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n const data = Modal.getOrCreateInstance(this, config)\n\n if (typeof config !== 'string') {\n return\n }\n\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](relatedTarget)\n })\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n const target = SelectorEngine.getElementFromSelector(this)\n\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault()\n }\n\n EventHandler.one(target, EVENT_SHOW, showEvent => {\n if (showEvent.defaultPrevented) {\n // only register focus restorer if modal will actually get shown\n return\n }\n\n EventHandler.one(target, EVENT_HIDDEN, () => {\n if (isVisible(this)) {\n this.focus()\n }\n })\n })\n\n // avoid conflict when clicking modal toggler while another one is open\n const alreadyOpen = SelectorEngine.findOne(OPEN_SELECTOR)\n if (alreadyOpen) {\n Modal.getInstance(alreadyOpen).hide()\n }\n\n const data = Modal.getOrCreateInstance(target)\n\n data.toggle(this)\n})\n\nenableDismissTrigger(Modal)\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Modal)\n\nexport default Modal\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap offcanvas.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport Backdrop from './util/backdrop.js'\nimport { enableDismissTrigger } from './util/component-functions.js'\nimport FocusTrap from './util/focustrap.js'\nimport {\n defineJQueryPlugin,\n isDisabled,\n isVisible\n} from './util/index.js'\nimport ScrollBarHelper from './util/scrollbar.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'offcanvas'\nconst DATA_KEY = 'bs.offcanvas'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\nconst ESCAPE_KEY = 'Escape'\n\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_SHOWING = 'showing'\nconst CLASS_NAME_HIDING = 'hiding'\nconst CLASS_NAME_BACKDROP = 'offcanvas-backdrop'\nconst OPEN_SELECTOR = '.offcanvas.show'\n\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_RESIZE = `resize${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY}`\n\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"offcanvas\"]'\n\nconst Default = {\n backdrop: true,\n keyboard: true,\n scroll: false\n}\n\nconst DefaultType = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n scroll: 'boolean'\n}\n\n/**\n * Class definition\n */\n\nclass Offcanvas extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._isShown = false\n this._backdrop = this._initializeBackDrop()\n this._focustrap = this._initializeFocusTrap()\n this._addEventListeners()\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isShown) {\n return\n }\n\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, { relatedTarget })\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n this._isShown = true\n this._backdrop.show()\n\n if (!this._config.scroll) {\n new ScrollBarHelper().hide()\n }\n\n this._element.setAttribute('aria-modal', true)\n this._element.setAttribute('role', 'dialog')\n this._element.classList.add(CLASS_NAME_SHOWING)\n\n const completeCallBack = () => {\n if (!this._config.scroll || this._config.backdrop) {\n this._focustrap.activate()\n }\n\n this._element.classList.add(CLASS_NAME_SHOW)\n this._element.classList.remove(CLASS_NAME_SHOWING)\n EventHandler.trigger(this._element, EVENT_SHOWN, { relatedTarget })\n }\n\n this._queueCallback(completeCallBack, this._element, true)\n }\n\n hide() {\n if (!this._isShown) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n this._focustrap.deactivate()\n this._element.blur()\n this._isShown = false\n this._element.classList.add(CLASS_NAME_HIDING)\n this._backdrop.hide()\n\n const completeCallback = () => {\n this._element.classList.remove(CLASS_NAME_SHOW, CLASS_NAME_HIDING)\n this._element.removeAttribute('aria-modal')\n this._element.removeAttribute('role')\n\n if (!this._config.scroll) {\n new ScrollBarHelper().reset()\n }\n\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n }\n\n this._queueCallback(completeCallback, this._element, true)\n }\n\n dispose() {\n this._backdrop.dispose()\n this._focustrap.deactivate()\n super.dispose()\n }\n\n // Private\n _initializeBackDrop() {\n const clickCallback = () => {\n if (this._config.backdrop === 'static') {\n EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED)\n return\n }\n\n this.hide()\n }\n\n // 'static' option will be translated to true, and booleans will keep their value\n const isVisible = Boolean(this._config.backdrop)\n\n return new Backdrop({\n className: CLASS_NAME_BACKDROP,\n isVisible,\n isAnimated: true,\n rootElement: this._element.parentNode,\n clickCallback: isVisible ? clickCallback : null\n })\n }\n\n _initializeFocusTrap() {\n return new FocusTrap({\n trapElement: this._element\n })\n }\n\n _addEventListeners() {\n EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, event => {\n if (event.key !== ESCAPE_KEY) {\n return\n }\n\n if (this._config.keyboard) {\n this.hide()\n return\n }\n\n EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED)\n })\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Offcanvas.getOrCreateInstance(this, config)\n\n if (typeof config !== 'string') {\n return\n }\n\n if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](this)\n })\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n const target = SelectorEngine.getElementFromSelector(this)\n\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault()\n }\n\n if (isDisabled(this)) {\n return\n }\n\n EventHandler.one(target, EVENT_HIDDEN, () => {\n // focus on trigger when it is closed\n if (isVisible(this)) {\n this.focus()\n }\n })\n\n // avoid conflict when clicking a toggler of an offcanvas, while another is open\n const alreadyOpen = SelectorEngine.findOne(OPEN_SELECTOR)\n if (alreadyOpen && alreadyOpen !== target) {\n Offcanvas.getInstance(alreadyOpen).hide()\n }\n\n const data = Offcanvas.getOrCreateInstance(target)\n data.toggle(this)\n})\n\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n for (const selector of SelectorEngine.find(OPEN_SELECTOR)) {\n Offcanvas.getOrCreateInstance(selector).show()\n }\n})\n\nEventHandler.on(window, EVENT_RESIZE, () => {\n for (const element of SelectorEngine.find('[aria-modal][class*=show][class*=offcanvas-]')) {\n if (getComputedStyle(element).position !== 'fixed') {\n Offcanvas.getOrCreateInstance(element).hide()\n }\n }\n})\n\nenableDismissTrigger(Offcanvas)\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Offcanvas)\n\nexport default Offcanvas\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap util/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n// js-docs-start allow-list\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i\n\nexport const DefaultAllowlist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n dd: [],\n div: [],\n dl: [],\n dt: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'srcset', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n}\n// js-docs-end allow-list\n\nconst uriAttributes = new Set([\n 'background',\n 'cite',\n 'href',\n 'itemtype',\n 'longdesc',\n 'poster',\n 'src',\n 'xlink:href'\n])\n\n/**\n * A pattern that recognizes URLs that are safe wrt. XSS in URL navigation\n * contexts.\n *\n * Shout-out to Angular https://github.com/angular/angular/blob/15.2.8/packages/core/src/sanitization/url_sanitizer.ts#L38\n */\n// eslint-disable-next-line unicorn/better-regex\nconst SAFE_URL_PATTERN = /^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i\n\nconst allowedAttribute = (attribute, allowedAttributeList) => {\n const attributeName = attribute.nodeName.toLowerCase()\n\n if (allowedAttributeList.includes(attributeName)) {\n if (uriAttributes.has(attributeName)) {\n return Boolean(SAFE_URL_PATTERN.test(attribute.nodeValue))\n }\n\n return true\n }\n\n // Check if a regular expression validates the attribute.\n return allowedAttributeList.filter(attributeRegex => attributeRegex instanceof RegExp)\n .some(regex => regex.test(attributeName))\n}\n\nexport function sanitizeHtml(unsafeHtml, allowList, sanitizeFunction) {\n if (!unsafeHtml.length) {\n return unsafeHtml\n }\n\n if (sanitizeFunction && typeof sanitizeFunction === 'function') {\n return sanitizeFunction(unsafeHtml)\n }\n\n const domParser = new window.DOMParser()\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html')\n const elements = [].concat(...createdDocument.body.querySelectorAll('*'))\n\n for (const element of elements) {\n const elementName = element.nodeName.toLowerCase()\n\n if (!Object.keys(allowList).includes(elementName)) {\n element.remove()\n continue\n }\n\n const attributeList = [].concat(...element.attributes)\n const allowedAttributes = [].concat(allowList['*'] || [], allowList[elementName] || [])\n\n for (const attribute of attributeList) {\n if (!allowedAttribute(attribute, allowedAttributes)) {\n element.removeAttribute(attribute.nodeName)\n }\n }\n }\n\n return createdDocument.body.innerHTML\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap util/template-factory.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport SelectorEngine from '../dom/selector-engine.js'\nimport Config from './config.js'\nimport { DefaultAllowlist, sanitizeHtml } from './sanitizer.js'\nimport { execute, getElement, isElement } from './index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'TemplateFactory'\n\nconst Default = {\n allowList: DefaultAllowlist,\n content: {}, // { selector : text , selector2 : text2 , }\n extraClass: '',\n html: false,\n sanitize: true,\n sanitizeFn: null,\n template: '
'\n}\n\nconst DefaultType = {\n allowList: 'object',\n content: 'object',\n extraClass: '(string|function)',\n html: 'boolean',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n template: 'string'\n}\n\nconst DefaultContentType = {\n entry: '(string|element|function|null)',\n selector: '(string|element)'\n}\n\n/**\n * Class definition\n */\n\nclass TemplateFactory extends Config {\n constructor(config) {\n super()\n this._config = this._getConfig(config)\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n getContent() {\n return Object.values(this._config.content)\n .map(config => this._resolvePossibleFunction(config))\n .filter(Boolean)\n }\n\n hasContent() {\n return this.getContent().length > 0\n }\n\n changeContent(content) {\n this._checkContent(content)\n this._config.content = { ...this._config.content, ...content }\n return this\n }\n\n toHtml() {\n const templateWrapper = document.createElement('div')\n templateWrapper.innerHTML = this._maybeSanitize(this._config.template)\n\n for (const [selector, text] of Object.entries(this._config.content)) {\n this._setContent(templateWrapper, text, selector)\n }\n\n const template = templateWrapper.children[0]\n const extraClass = this._resolvePossibleFunction(this._config.extraClass)\n\n if (extraClass) {\n template.classList.add(...extraClass.split(' '))\n }\n\n return template\n }\n\n // Private\n _typeCheckConfig(config) {\n super._typeCheckConfig(config)\n this._checkContent(config.content)\n }\n\n _checkContent(arg) {\n for (const [selector, content] of Object.entries(arg)) {\n super._typeCheckConfig({ selector, entry: content }, DefaultContentType)\n }\n }\n\n _setContent(template, content, selector) {\n const templateElement = SelectorEngine.findOne(selector, template)\n\n if (!templateElement) {\n return\n }\n\n content = this._resolvePossibleFunction(content)\n\n if (!content) {\n templateElement.remove()\n return\n }\n\n if (isElement(content)) {\n this._putElementInTemplate(getElement(content), templateElement)\n return\n }\n\n if (this._config.html) {\n templateElement.innerHTML = this._maybeSanitize(content)\n return\n }\n\n templateElement.textContent = content\n }\n\n _maybeSanitize(arg) {\n return this._config.sanitize ? sanitizeHtml(arg, this._config.allowList, this._config.sanitizeFn) : arg\n }\n\n _resolvePossibleFunction(arg) {\n return execute(arg, [this])\n }\n\n _putElementInTemplate(element, templateElement) {\n if (this._config.html) {\n templateElement.innerHTML = ''\n templateElement.append(element)\n return\n }\n\n templateElement.textContent = element.textContent\n }\n}\n\nexport default TemplateFactory\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport * as Popper from '@popperjs/core'\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport Manipulator from './dom/manipulator.js'\nimport {\n defineJQueryPlugin, execute, findShadowRoot, getElement, getUID, isRTL, noop\n} from './util/index.js'\nimport { DefaultAllowlist } from './util/sanitizer.js'\nimport TemplateFactory from './util/template-factory.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'tooltip'\nconst DISALLOWED_ATTRIBUTES = new Set(['sanitize', 'allowList', 'sanitizeFn'])\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_MODAL = 'modal'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_TOOLTIP_INNER = '.tooltip-inner'\nconst SELECTOR_MODAL = `.${CLASS_NAME_MODAL}`\n\nconst EVENT_MODAL_HIDE = 'hide.bs.modal'\n\nconst TRIGGER_HOVER = 'hover'\nconst TRIGGER_FOCUS = 'focus'\nconst TRIGGER_CLICK = 'click'\nconst TRIGGER_MANUAL = 'manual'\n\nconst EVENT_HIDE = 'hide'\nconst EVENT_HIDDEN = 'hidden'\nconst EVENT_SHOW = 'show'\nconst EVENT_SHOWN = 'shown'\nconst EVENT_INSERTED = 'inserted'\nconst EVENT_CLICK = 'click'\nconst EVENT_FOCUSIN = 'focusin'\nconst EVENT_FOCUSOUT = 'focusout'\nconst EVENT_MOUSEENTER = 'mouseenter'\nconst EVENT_MOUSELEAVE = 'mouseleave'\n\nconst AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: isRTL() ? 'left' : 'right',\n BOTTOM: 'bottom',\n LEFT: isRTL() ? 'right' : 'left'\n}\n\nconst Default = {\n allowList: DefaultAllowlist,\n animation: true,\n boundary: 'clippingParents',\n container: false,\n customClass: '',\n delay: 0,\n fallbackPlacements: ['top', 'right', 'bottom', 'left'],\n html: false,\n offset: [0, 6],\n placement: 'top',\n popperConfig: null,\n sanitize: true,\n sanitizeFn: null,\n selector: false,\n template: '
' +\n '
' +\n '
' +\n '
',\n title: '',\n trigger: 'hover focus'\n}\n\nconst DefaultType = {\n allowList: 'object',\n animation: 'boolean',\n boundary: '(string|element)',\n container: '(string|element|boolean)',\n customClass: '(string|function)',\n delay: '(number|object)',\n fallbackPlacements: 'array',\n html: 'boolean',\n offset: '(array|string|function)',\n placement: '(string|function)',\n popperConfig: '(null|object|function)',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n selector: '(string|boolean)',\n template: 'string',\n title: '(string|element|function)',\n trigger: 'string'\n}\n\n/**\n * Class definition\n */\n\nclass Tooltip extends BaseComponent {\n constructor(element, config) {\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Popper (https://popper.js.org)')\n }\n\n super(element, config)\n\n // Private\n this._isEnabled = true\n this._timeout = 0\n this._isHovered = null\n this._activeTrigger = {}\n this._popper = null\n this._templateFactory = null\n this._newContent = null\n\n // Protected\n this.tip = null\n\n this._setListeners()\n\n if (!this._config.selector) {\n this._fixTitle()\n }\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n enable() {\n this._isEnabled = true\n }\n\n disable() {\n this._isEnabled = false\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled\n }\n\n toggle() {\n if (!this._isEnabled) {\n return\n }\n\n this._activeTrigger.click = !this._activeTrigger.click\n if (this._isShown()) {\n this._leave()\n return\n }\n\n this._enter()\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n EventHandler.off(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler)\n\n if (this._element.getAttribute('data-bs-original-title')) {\n this._element.setAttribute('title', this._element.getAttribute('data-bs-original-title'))\n }\n\n this._disposePopper()\n super.dispose()\n }\n\n show() {\n if (this._element.style.display === 'none') {\n throw new Error('Please use show on visible elements')\n }\n\n if (!(this._isWithContent() && this._isEnabled)) {\n return\n }\n\n const showEvent = EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOW))\n const shadowRoot = findShadowRoot(this._element)\n const isInTheDom = (shadowRoot || this._element.ownerDocument.documentElement).contains(this._element)\n\n if (showEvent.defaultPrevented || !isInTheDom) {\n return\n }\n\n // TODO: v6 remove this or make it optional\n this._disposePopper()\n\n const tip = this._getTipElement()\n\n this._element.setAttribute('aria-describedby', tip.getAttribute('id'))\n\n const { container } = this._config\n\n if (!this._element.ownerDocument.documentElement.contains(this.tip)) {\n container.append(tip)\n EventHandler.trigger(this._element, this.constructor.eventName(EVENT_INSERTED))\n }\n\n this._popper = this._createPopper(tip)\n\n tip.classList.add(CLASS_NAME_SHOW)\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n for (const element of [].concat(...document.body.children)) {\n EventHandler.on(element, 'mouseover', noop)\n }\n }\n\n const complete = () => {\n EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOWN))\n\n if (this._isHovered === false) {\n this._leave()\n }\n\n this._isHovered = false\n }\n\n this._queueCallback(complete, this.tip, this._isAnimated())\n }\n\n hide() {\n if (!this._isShown()) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDE))\n if (hideEvent.defaultPrevented) {\n return\n }\n\n const tip = this._getTipElement()\n tip.classList.remove(CLASS_NAME_SHOW)\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n for (const element of [].concat(...document.body.children)) {\n EventHandler.off(element, 'mouseover', noop)\n }\n }\n\n this._activeTrigger[TRIGGER_CLICK] = false\n this._activeTrigger[TRIGGER_FOCUS] = false\n this._activeTrigger[TRIGGER_HOVER] = false\n this._isHovered = null // it is a trick to support manual triggering\n\n const complete = () => {\n if (this._isWithActiveTrigger()) {\n return\n }\n\n if (!this._isHovered) {\n this._disposePopper()\n }\n\n this._element.removeAttribute('aria-describedby')\n EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDDEN))\n }\n\n this._queueCallback(complete, this.tip, this._isAnimated())\n }\n\n update() {\n if (this._popper) {\n this._popper.update()\n }\n }\n\n // Protected\n _isWithContent() {\n return Boolean(this._getTitle())\n }\n\n _getTipElement() {\n if (!this.tip) {\n this.tip = this._createTipElement(this._newContent || this._getContentForTemplate())\n }\n\n return this.tip\n }\n\n _createTipElement(content) {\n const tip = this._getTemplateFactory(content).toHtml()\n\n // TODO: remove this check in v6\n if (!tip) {\n return null\n }\n\n tip.classList.remove(CLASS_NAME_FADE, CLASS_NAME_SHOW)\n // TODO: v6 the following can be achieved with CSS only\n tip.classList.add(`bs-${this.constructor.NAME}-auto`)\n\n const tipId = getUID(this.constructor.NAME).toString()\n\n tip.setAttribute('id', tipId)\n\n if (this._isAnimated()) {\n tip.classList.add(CLASS_NAME_FADE)\n }\n\n return tip\n }\n\n setContent(content) {\n this._newContent = content\n if (this._isShown()) {\n this._disposePopper()\n this.show()\n }\n }\n\n _getTemplateFactory(content) {\n if (this._templateFactory) {\n this._templateFactory.changeContent(content)\n } else {\n this._templateFactory = new TemplateFactory({\n ...this._config,\n // the `content` var has to be after `this._config`\n // to override config.content in case of popover\n content,\n extraClass: this._resolvePossibleFunction(this._config.customClass)\n })\n }\n\n return this._templateFactory\n }\n\n _getContentForTemplate() {\n return {\n [SELECTOR_TOOLTIP_INNER]: this._getTitle()\n }\n }\n\n _getTitle() {\n return this._resolvePossibleFunction(this._config.title) || this._element.getAttribute('data-bs-original-title')\n }\n\n // Private\n _initializeOnDelegatedTarget(event) {\n return this.constructor.getOrCreateInstance(event.delegateTarget, this._getDelegateConfig())\n }\n\n _isAnimated() {\n return this._config.animation || (this.tip && this.tip.classList.contains(CLASS_NAME_FADE))\n }\n\n _isShown() {\n return this.tip && this.tip.classList.contains(CLASS_NAME_SHOW)\n }\n\n _createPopper(tip) {\n const placement = execute(this._config.placement, [this, tip, this._element])\n const attachment = AttachmentMap[placement.toUpperCase()]\n return Popper.createPopper(this._element, tip, this._getPopperConfig(attachment))\n }\n\n _getOffset() {\n const { offset } = this._config\n\n if (typeof offset === 'string') {\n return offset.split(',').map(value => Number.parseInt(value, 10))\n }\n\n if (typeof offset === 'function') {\n return popperData => offset(popperData, this._element)\n }\n\n return offset\n }\n\n _resolvePossibleFunction(arg) {\n return execute(arg, [this._element])\n }\n\n _getPopperConfig(attachment) {\n const defaultBsPopperConfig = {\n placement: attachment,\n modifiers: [\n {\n name: 'flip',\n options: {\n fallbackPlacements: this._config.fallbackPlacements\n }\n },\n {\n name: 'offset',\n options: {\n offset: this._getOffset()\n }\n },\n {\n name: 'preventOverflow',\n options: {\n boundary: this._config.boundary\n }\n },\n {\n name: 'arrow',\n options: {\n element: `.${this.constructor.NAME}-arrow`\n }\n },\n {\n name: 'preSetPlacement',\n enabled: true,\n phase: 'beforeMain',\n fn: data => {\n // Pre-set Popper's placement attribute in order to read the arrow sizes properly.\n // Otherwise, Popper mixes up the width and height dimensions since the initial arrow style is for top placement\n this._getTipElement().setAttribute('data-popper-placement', data.state.placement)\n }\n }\n ]\n }\n\n return {\n ...defaultBsPopperConfig,\n ...execute(this._config.popperConfig, [defaultBsPopperConfig])\n }\n }\n\n _setListeners() {\n const triggers = this._config.trigger.split(' ')\n\n for (const trigger of triggers) {\n if (trigger === 'click') {\n EventHandler.on(this._element, this.constructor.eventName(EVENT_CLICK), this._config.selector, event => {\n const context = this._initializeOnDelegatedTarget(event)\n context.toggle()\n })\n } else if (trigger !== TRIGGER_MANUAL) {\n const eventIn = trigger === TRIGGER_HOVER ?\n this.constructor.eventName(EVENT_MOUSEENTER) :\n this.constructor.eventName(EVENT_FOCUSIN)\n const eventOut = trigger === TRIGGER_HOVER ?\n this.constructor.eventName(EVENT_MOUSELEAVE) :\n this.constructor.eventName(EVENT_FOCUSOUT)\n\n EventHandler.on(this._element, eventIn, this._config.selector, event => {\n const context = this._initializeOnDelegatedTarget(event)\n context._activeTrigger[event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER] = true\n context._enter()\n })\n EventHandler.on(this._element, eventOut, this._config.selector, event => {\n const context = this._initializeOnDelegatedTarget(event)\n context._activeTrigger[event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER] =\n context._element.contains(event.relatedTarget)\n\n context._leave()\n })\n }\n }\n\n this._hideModalHandler = () => {\n if (this._element) {\n this.hide()\n }\n }\n\n EventHandler.on(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler)\n }\n\n _fixTitle() {\n const title = this._element.getAttribute('title')\n\n if (!title) {\n return\n }\n\n if (!this._element.getAttribute('aria-label') && !this._element.textContent.trim()) {\n this._element.setAttribute('aria-label', title)\n }\n\n this._element.setAttribute('data-bs-original-title', title) // DO NOT USE IT. Is only for backwards compatibility\n this._element.removeAttribute('title')\n }\n\n _enter() {\n if (this._isShown() || this._isHovered) {\n this._isHovered = true\n return\n }\n\n this._isHovered = true\n\n this._setTimeout(() => {\n if (this._isHovered) {\n this.show()\n }\n }, this._config.delay.show)\n }\n\n _leave() {\n if (this._isWithActiveTrigger()) {\n return\n }\n\n this._isHovered = false\n\n this._setTimeout(() => {\n if (!this._isHovered) {\n this.hide()\n }\n }, this._config.delay.hide)\n }\n\n _setTimeout(handler, timeout) {\n clearTimeout(this._timeout)\n this._timeout = setTimeout(handler, timeout)\n }\n\n _isWithActiveTrigger() {\n return Object.values(this._activeTrigger).includes(true)\n }\n\n _getConfig(config) {\n const dataAttributes = Manipulator.getDataAttributes(this._element)\n\n for (const dataAttribute of Object.keys(dataAttributes)) {\n if (DISALLOWED_ATTRIBUTES.has(dataAttribute)) {\n delete dataAttributes[dataAttribute]\n }\n }\n\n config = {\n ...dataAttributes,\n ...(typeof config === 'object' && config ? config : {})\n }\n config = this._mergeConfigObj(config)\n config = this._configAfterMerge(config)\n this._typeCheckConfig(config)\n return config\n }\n\n _configAfterMerge(config) {\n config.container = config.container === false ? document.body : getElement(config.container)\n\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n }\n }\n\n if (typeof config.title === 'number') {\n config.title = config.title.toString()\n }\n\n if (typeof config.content === 'number') {\n config.content = config.content.toString()\n }\n\n return config\n }\n\n _getDelegateConfig() {\n const config = {}\n\n for (const [key, value] of Object.entries(this._config)) {\n if (this.constructor.Default[key] !== value) {\n config[key] = value\n }\n }\n\n config.selector = false\n config.trigger = 'manual'\n\n // In the future can be replaced with:\n // const keysWithDifferentValues = Object.entries(this._config).filter(entry => this.constructor.Default[entry[0]] !== this._config[entry[0]])\n // `Object.fromEntries(keysWithDifferentValues)`\n return config\n }\n\n _disposePopper() {\n if (this._popper) {\n this._popper.destroy()\n this._popper = null\n }\n\n if (this.tip) {\n this.tip.remove()\n this.tip = null\n }\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Tooltip.getOrCreateInstance(this, config)\n\n if (typeof config !== 'string') {\n return\n }\n\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n })\n }\n}\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Tooltip)\n\nexport default Tooltip\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Tooltip from './tooltip.js'\nimport { defineJQueryPlugin } from './util/index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'popover'\n\nconst SELECTOR_TITLE = '.popover-header'\nconst SELECTOR_CONTENT = '.popover-body'\n\nconst Default = {\n ...Tooltip.Default,\n content: '',\n offset: [0, 8],\n placement: 'right',\n template: '
' +\n '
' +\n '

' +\n '
' +\n '
',\n trigger: 'click'\n}\n\nconst DefaultType = {\n ...Tooltip.DefaultType,\n content: '(null|string|element|function)'\n}\n\n/**\n * Class definition\n */\n\nclass Popover extends Tooltip {\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Overrides\n _isWithContent() {\n return this._getTitle() || this._getContent()\n }\n\n // Private\n _getContentForTemplate() {\n return {\n [SELECTOR_TITLE]: this._getTitle(),\n [SELECTOR_CONTENT]: this._getContent()\n }\n }\n\n _getContent() {\n return this._resolvePossibleFunction(this._config.content)\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Popover.getOrCreateInstance(this, config)\n\n if (typeof config !== 'string') {\n return\n }\n\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n })\n }\n}\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Popover)\n\nexport default Popover\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport {\n defineJQueryPlugin, getElement, isDisabled, isVisible\n} from './util/index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'scrollspy'\nconst DATA_KEY = 'bs.scrollspy'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst EVENT_ACTIVATE = `activate${EVENT_KEY}`\nconst EVENT_CLICK = `click${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item'\nconst CLASS_NAME_ACTIVE = 'active'\n\nconst SELECTOR_DATA_SPY = '[data-bs-spy=\"scroll\"]'\nconst SELECTOR_TARGET_LINKS = '[href]'\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'\nconst SELECTOR_NAV_LINKS = '.nav-link'\nconst SELECTOR_NAV_ITEMS = '.nav-item'\nconst SELECTOR_LIST_ITEMS = '.list-group-item'\nconst SELECTOR_LINK_ITEMS = `${SELECTOR_NAV_LINKS}, ${SELECTOR_NAV_ITEMS} > ${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}`\nconst SELECTOR_DROPDOWN = '.dropdown'\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\n\nconst Default = {\n offset: null, // TODO: v6 @deprecated, keep it for backwards compatibility reasons\n rootMargin: '0px 0px -25%',\n smoothScroll: false,\n target: null,\n threshold: [0.1, 0.5, 1]\n}\n\nconst DefaultType = {\n offset: '(number|null)', // TODO v6 @deprecated, keep it for backwards compatibility reasons\n rootMargin: 'string',\n smoothScroll: 'boolean',\n target: 'element',\n threshold: 'array'\n}\n\n/**\n * Class definition\n */\n\nclass ScrollSpy extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n // this._element is the observablesContainer and config.target the menu links wrapper\n this._targetLinks = new Map()\n this._observableSections = new Map()\n this._rootElement = getComputedStyle(this._element).overflowY === 'visible' ? null : this._element\n this._activeTarget = null\n this._observer = null\n this._previousScrollData = {\n visibleEntryTop: 0,\n parentScrollTop: 0\n }\n this.refresh() // initialize\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n refresh() {\n this._initializeTargetsAndObservables()\n this._maybeEnableSmoothScroll()\n\n if (this._observer) {\n this._observer.disconnect()\n } else {\n this._observer = this._getNewObserver()\n }\n\n for (const section of this._observableSections.values()) {\n this._observer.observe(section)\n }\n }\n\n dispose() {\n this._observer.disconnect()\n super.dispose()\n }\n\n // Private\n _configAfterMerge(config) {\n // TODO: on v6 target should be given explicitly & remove the {target: 'ss-target'} case\n config.target = getElement(config.target) || document.body\n\n // TODO: v6 Only for backwards compatibility reasons. Use rootMargin only\n config.rootMargin = config.offset ? `${config.offset}px 0px -30%` : config.rootMargin\n\n if (typeof config.threshold === 'string') {\n config.threshold = config.threshold.split(',').map(value => Number.parseFloat(value))\n }\n\n return config\n }\n\n _maybeEnableSmoothScroll() {\n if (!this._config.smoothScroll) {\n return\n }\n\n // unregister any previous listeners\n EventHandler.off(this._config.target, EVENT_CLICK)\n\n EventHandler.on(this._config.target, EVENT_CLICK, SELECTOR_TARGET_LINKS, event => {\n const observableSection = this._observableSections.get(event.target.hash)\n if (observableSection) {\n event.preventDefault()\n const root = this._rootElement || window\n const height = observableSection.offsetTop - this._element.offsetTop\n if (root.scrollTo) {\n root.scrollTo({ top: height, behavior: 'smooth' })\n return\n }\n\n // Chrome 60 doesn't support `scrollTo`\n root.scrollTop = height\n }\n })\n }\n\n _getNewObserver() {\n const options = {\n root: this._rootElement,\n threshold: this._config.threshold,\n rootMargin: this._config.rootMargin\n }\n\n return new IntersectionObserver(entries => this._observerCallback(entries), options)\n }\n\n // The logic of selection\n _observerCallback(entries) {\n const targetElement = entry => this._targetLinks.get(`#${entry.target.id}`)\n const activate = entry => {\n this._previousScrollData.visibleEntryTop = entry.target.offsetTop\n this._process(targetElement(entry))\n }\n\n const parentScrollTop = (this._rootElement || document.documentElement).scrollTop\n const userScrollsDown = parentScrollTop >= this._previousScrollData.parentScrollTop\n this._previousScrollData.parentScrollTop = parentScrollTop\n\n for (const entry of entries) {\n if (!entry.isIntersecting) {\n this._activeTarget = null\n this._clearActiveClass(targetElement(entry))\n\n continue\n }\n\n const entryIsLowerThanPrevious = entry.target.offsetTop >= this._previousScrollData.visibleEntryTop\n // if we are scrolling down, pick the bigger offsetTop\n if (userScrollsDown && entryIsLowerThanPrevious) {\n activate(entry)\n // if parent isn't scrolled, let's keep the first visible item, breaking the iteration\n if (!parentScrollTop) {\n return\n }\n\n continue\n }\n\n // if we are scrolling up, pick the smallest offsetTop\n if (!userScrollsDown && !entryIsLowerThanPrevious) {\n activate(entry)\n }\n }\n }\n\n _initializeTargetsAndObservables() {\n this._targetLinks = new Map()\n this._observableSections = new Map()\n\n const targetLinks = SelectorEngine.find(SELECTOR_TARGET_LINKS, this._config.target)\n\n for (const anchor of targetLinks) {\n // ensure that the anchor has an id and is not disabled\n if (!anchor.hash || isDisabled(anchor)) {\n continue\n }\n\n const observableSection = SelectorEngine.findOne(decodeURI(anchor.hash), this._element)\n\n // ensure that the observableSection exists & is visible\n if (isVisible(observableSection)) {\n this._targetLinks.set(decodeURI(anchor.hash), anchor)\n this._observableSections.set(anchor.hash, observableSection)\n }\n }\n }\n\n _process(target) {\n if (this._activeTarget === target) {\n return\n }\n\n this._clearActiveClass(this._config.target)\n this._activeTarget = target\n target.classList.add(CLASS_NAME_ACTIVE)\n this._activateParents(target)\n\n EventHandler.trigger(this._element, EVENT_ACTIVATE, { relatedTarget: target })\n }\n\n _activateParents(target) {\n // Activate dropdown parents\n if (target.classList.contains(CLASS_NAME_DROPDOWN_ITEM)) {\n SelectorEngine.findOne(SELECTOR_DROPDOWN_TOGGLE, target.closest(SELECTOR_DROPDOWN))\n .classList.add(CLASS_NAME_ACTIVE)\n return\n }\n\n for (const listGroup of SelectorEngine.parents(target, SELECTOR_NAV_LIST_GROUP)) {\n // Set triggered links parents as active\n // With both