keycloak-d4science-spi-parent/keycloak-d4science-theme/src/main/resources/theme/d4science/account/resources/assets/index-Bw6oJPms.js.map

1 line
1.9 MiB
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{"version":3,"mappings":"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,gBAAmB,0BACnB,iBAAoB,2BACpB,iBAAoB,2BACpB,iBAAoB,2BACpB,WAAY,mBACZ,WAAY,mBACZ,WAAY,mBACZ,WAAY,mBACZ,WAAY,mBACZ,WAAY,mBACZ,WAAY,mBACZ,WAAY,mBACZ,WAAY,mBACZ,YAAa,oBACb,YAAa,oBACb,YAAa,oBACb,WAAY,mBACZ,WAAY,mBACZ,WAAY,mBACZ,WAAY,mBACZ,WAAY,mBACZ,WAAY,mBACZ,WAAY,mBACZ,WAAY,mBACZ,WAAY,mBACZ,YAAa,oBACb,YAAa,oBACb,YAAa,oBACb,gBAAmB,0BACnB,gBAAmB,0BACnB,gBAAmB,0BACnB,gBAAmB,0BACnB,gBAAmB,0BACnB,gBAAmB,0BACnB,gBAAmB,0BACnB,gBAAmB,0BACnB,gBAAmB,0BACnB,iBAAoB,2BACpB,iBAAoB,2BACpB,iBAAoB,2BACpB,WAAY,mBACZ,WAAY,mBACZ,WAAY,mBACZ,WAAY,mBACZ,WAAY,mBACZ,WAAY,mBACZ,WAAY,mBACZ,WAAY,mBACZ,WAAY,mBACZ,YAAa,oBACb,YAAa,oBACb,YAAa,oBACb,WAAY,mBACZ,WAAY,mBACZ,WAAY,mBACZ,WAAY,mBACZ,WAAY,mBACZ,WAAY,mBACZ,WAAY,mBACZ,WAAY,mBACZ,WAAY,mBACZ,YAAa,oBACb,YAAa,oBACb,YAAa,oBACb,gBAAmB,0BACnB,gBAAmB,0BACnB,gBAAmB,0BACnB,gBAAmB,0BACnB,gBAAmB,0BACnB,gBAAmB,0BACnB,gBAAmB,0BACnB,gBAAmB,0BACnB,gBAAmB,0BACnB,iBAAoB,2BACpB,iBAAoB,2BACpB,iBAAoB,2BACpB,WAAY,mBACZ,WAAY,mBACZ,WAAY,mBACZ,WAAY,mBACZ,WAAY,mBACZ,WAAY,mBACZ,WAAY,mBACZ,WAAY,mBACZ,WAAY,mBACZ,YAAa,oBACb,YAAa,oBACb,YAAa,oBACb,WAAY,mBACZ,WAAY,mBACZ,WAAY,mBACZ,WAAY,mBACZ,WAAY,mBACZ,WAAY,mBACZ,WAAY,mBACZ,WAAY,mBACZ,WAAY,mBACZ,YAAa,oBACb,YAAa,oBACb,YAAa,oBACb,gBAAmB,0BACnB,g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","names":["m","require$$0","createRoot","_extends","target","i","source","key","Action","PopStateEventType","createBrowserHistory","options","createBrowserLocation","window","globalHistory","pathname","search","hash","createLocation","createBrowserHref","to","createPath","getUrlBasedHistory","invariant","value","message","warning","cond","createKey","getHistoryState","location","index","current","state","parsePath","_ref","path","parsedPath","hashIndex","searchIndex","getLocation","createHref","validateLocation","v5Compat","action","listener","getIndex","handlePop","nextIndex","delta","history","push","historyState","url","error","replace","createURL","base","href","fn","n","ResultType","immutableRouteKeys","isIndexRoute","route","convertRoutesToDataRoutes","routes","mapRouteProperties","parentPath","manifest","treePath","id","indexRoute","pathOrLayoutRoute","matchRoutes","locationArg","basename","stripBasename","branches","flattenRoutes","rankRouteBranches","matches","decoded","decodePath","matchRouteBranch","convertRouteMatchToUiMatch","match","loaderData","params","parentsMeta","flattenRoute","relativePath","meta","joinPaths","routesMeta","computeScore","_route$path","exploded","explodeOptionalSegments","segments","first","rest","isOptional","required","restExploded","result","subpath","a","b","compareIndexes","paramRe","dynamicSegmentValue","indexRouteValue","emptySegmentValue","staticSegmentValue","splatPenalty","isSplat","s","initialScore","score","segment","branch","matchedParams","matchedPathname","end","remainingPathname","matchPath","normalizePathname","pattern","matcher","compiledParams","compilePath","pathnameBase","captureGroups","memo","paramName","splatValue","caseSensitive","regexpSource","_","v","startIndex","nextChar","resolvePath","fromPathname","toPathname","resolvePathname","normalizeSearch","normalizeHash","getInvalidPathError","char","field","dest","getPathContributingMatches","getResolveToMatches","v7_relativeSplatPath","pathMatches","idx","resolveTo","toArg","routePathnames","locationPathname","isPathRelative","isEmptyPath","from","routePathnameIndex","toSegments","hasExplicitTrailingSlash","hasCurrentTrailingSlash","paths","ErrorResponseImpl","status","statusText","data","internal","isRouteErrorResponse","validMutationMethodsArr","validMutationMethods","validRequestMethodsArr","validRequestMethods","redirectStatusCodes","redirectPreserveMethodStatusCodes","IDLE_NAVIGATION","IDLE_FETCHER","IDLE_BLOCKER","ABSOLUTE_URL_REGEX","defaultMapRouteProperties","TRANSITIONS_STORAGE_KEY","createRouter","init","routerWindow","isBrowser","isServer","detectErrorBoundary","dataRoutes","inFlightDataRoutes","future","unlistenHistory","subscribers","savedScrollPositions","getScrollRestorationKey","getScrollPosition","initialScrollRestored","initialMatches","initialErrors","getInternalRouterError","getShortCircuitMatches","initialized","hasLazyRoutes","hasLoaders","errors","isRouteInitialized","router","pendingAction","pendingPreventScrollReset","pendingNavigationController","pendingViewTransitionEnabled","appliedViewTransitions","removePageHideEventListener","isUninterruptedRevalidation","isRevalidationRequired","cancelledDeferredRoutes","cancelledFetcherLoads","fetchControllers","incrementingLoadId","pendingNavigationLoadId","fetchReloadIds","fetchRedirectIds","fetchLoadMatches","activeFetchers","deletedFetchers","activeDeferreds","blockerFunctions","ignoreNextHistoryUpdate","initialize","historyAction","blockerKey","shouldBlockNavigation","updateBlocker","blockers","updateState","startNavigation","restoreAppliedTransitions","_saveAppliedTransitions","persistAppliedTransitions","dispose","deleteFetcher","deleteBlocker","subscribe","newState","opts","completedFetchers","deletedFetchersKeys","fetcher","subscriber","completeNavigation","_temp","_location$state","_location$state2","flushSync","isActionReload","isMutationMethod","actionData","mergeLoaderData","k","preventScrollReset","viewTransitionOpts","priorPaths","toPaths","getSavedScrollPosition","navigate","normalizedPath","normalizeTo","submission","normalizeNavigateOptions","currentLocation","nextLocation","userReplace","revalidate","interruptActiveLoads","saveScrollPosition","routesToUse","loadingNavigation","notFoundMatches","cancelActiveDeferreds","isHashChangeOnly","request","createClientSideRequest","pendingActionData","pendingError","findNearestBoundary","actionOutput","handleAction","getLoadingNavigation","shortCircuited","handleLoaders","navigation","getSubmittingNavigation","actionMatch","getTargetMatch","callLoaderOrAction","isRedirectResult","startRedirectNavigation","isErrorResult","boundaryMatch","isDeferredResult","overrideNavigation","fetcherSubmission","initialHydration","activeSubmission","getSubmissionFromNavigation","matchesToLoad","revalidatingFetchers","getMatchesToLoad","routeId","updatedFetchers","markFetchRedirectsDone","rf","revalidatingFetcher","getLoadingFetcher","abortFetcher","abortPendingFetchRevalidations","f","results","loaderResults","fetcherResults","callLoadersAndMaybeResolveData","redirect","findRedirect","fetcherKey","processLoaderData","deferredData","aborted","_ref2","_ref3","didAbortFetchLoads","abortStaleFetchLoads","shouldUpdateFetchers","fetch","setFetcherError","handleFetcherAction","handleFetcherLoader","requestMatches","existingFetcher","updateFetcherState","getSubmittingFetcher","abortController","fetchRequest","originatingLoadId","actionResult","getDoneFetcher","revalidationRequest","loadId","loadFetcher","staleKey","r","doneFetcher","resolveDeferredData","_temp2","redirectLocation","isDocumentReload","redirectHistoryAction","formMethod","formAction","formEncType","currentMatches","fetchersToLoad","resolveDeferredResults","getFetcher","deleteFetcherAndUpdateState","count","controller","markFetchersDone","keys","doneKeys","landedId","yeetedKeys","getBlocker","blocker","newBlocker","_ref4","entries","blockerFunction","predicate","cancelledRouteIds","dfd","enableScrollRestoration","positions","getPosition","getKey","y","getScrollKey","_internalSetRoutes","newRoutes","isSubmissionNavigation","prependBasename","fromRouteId","relative","contextualMatches","activeRouteMatch","hasNakedIndexQuery","normalizeFormMethod","isFetcher","isValidMethod","getInvalidBodyError","rawFormMethod","stripHashFromPath","text","acc","_ref5","name","json","searchParams","formData","convertFormDataToSearchParams","convertSearchParamsToFormData","getLoaderMatchesUntilBoundary","boundaryId","boundaryMatches","isInitialLoad","currentUrl","nextUrl","navigationMatches","isNewLoader","currentRouteMatch","nextRouteMatch","shouldRevalidateLoader","isNewRouteInstance","fetcherMatches","fetcherMatch","shouldRevalidate","currentLoaderData","currentMatch","isNew","isMissingData","currentPath","loaderMatch","arg","routeChoice","loadLazyRouteModule","lazyRoute","routeToUpdate","routeUpdates","lazyRouteProperty","isPropertyStaticallyDefined","type","resultType","onReject","runHandler","handler","reject","abortPromise","handlerError","values","e","isResponse","isSameBasename","contentType","isDeferredData","_result$init","_result$init2","signal","processRouteLoaderData","statusCode","foundError","loaderHeaders","newLoaderData","mergedLoaderData","_temp5","method","errorMessage","deferred","signals","isRevalidatingLoader","unwrap","_window","transitions","sessionPositions","DataRouterContext","React","DataRouterStateContext","NavigationContext","LocationContext","RouteContext","RouteErrorContext","useHref","useInRouterContext","UNSAFE_invariant","navigator","useResolvedPath","joinedPathname","useLocation","useIsomorphicLayoutEffect","cb","useNavigate","isDataRoute","useNavigateStable","useNavigateUnstable","dataRouterContext","routePathnamesJson","UNSAFE_getResolveToMatches","activeRef","OutletContext","useOutlet","context","outlet","useParams","routeMatch","useRoutesImpl","dataRouterState","parentMatches","parentParams","parentPathnameBase","locationFromContext","_parsedLocationArg$pa","parsedLocationArg","parentSegments","renderedMatches","_renderMatches","DefaultErrorComponent","useRouteError","stack","preStyles","defaultErrorElement","RenderErrorBoundary","props","errorInfo","RenderedRoute","routeContext","children","_dataRouterState2","_dataRouterState","errorIndex","renderFallback","fallbackIndex","needsToRunLoader","shouldRenderHydrateFallback","errorElement","hydrateFallbackElement","warningOnce","getChildren","DataRouterHook","DataRouterStateHook","useDataRouterContext","hookName","ctx","useDataRouterState","useRouteContext","useCurrentRouteId","thisRoute","_state$errors","alreadyWarned","Outlet","Router","basenameProp","locationProp","navigationType","staticProp","navigationContext","locationContext","trailingPathname","updates","isModifiedEvent","event","shouldProcessLinkClick","REACT_ROUTER_VERSION","createBrowserRouter","parseHydrationData","UNSAFE_mapRouteProperties","deserializeErrors","serialized","val","UNSAFE_ErrorResponseImpl","ErrorConstructor","ViewTransitionContext","FetchersContext","START_TRANSITION","startTransitionImpl","FLUSH_SYNC","flushSyncImpl","ReactDOM","startTransitionSafe","flushSyncSafe","Deferred","resolve","reason","RouterProvider","fallbackElement","setStateImpl","pendingState","setPendingState","vtContext","setVtContext","renderDfd","setRenderDfd","transition","setTransition","interruption","setInterruption","fetcherData","v7_startTransition","optInStartTransition","setState","isViewTransitionUnavailable","t","renderPromise","UNSAFE_DataRouterContext","UNSAFE_DataRouterStateContext","DataRoutes","UNSAFE_useRoutesImpl","useLinkClickHandler","replaceProp","unstable_viewTransition","consoleLogger","args","Logger","concreteLogger","_len","_key","_len2","_key2","_len3","_key3","_len4","_key4","lvl","prefix","debugOnly","moduleName","baseLogger","EventEmitter","events","numListeners","observer","numTimesAdded","defer","res","rej","promise","makeString","object","copy","lastOfPathSeparatorRegExp","getLastOfPath","Empty","cleanKey","canNotTraverseDeeper","stackIndex","setPath","newValue","obj","p","last","pushPath","concat","getPath","getPathWithDefaults","defaultData","deepExtend","overwrite","prop","regexEscape","str","_entityMap","escape","RegExpCache","capacity","regExpFromCache","regExpNew","chars","looksLikeObjectPathRegExpCache","looksLikeObjectPath","nsSeparator","keySeparator","possibleChars","c","matched","ki","deepFind","tokens","next","nextPath","j","getCleanedCode","code","ResourceStore","ns","lng","ignoreJSONStructure","resources","deep","pack","postProcessor","module","processors","translator","processor","checkedLoadedFor","Translator","services","resolved","namespaces","wouldCheckForNsInKey","seemsNaturalLanguage","parts","lastKey","returnDetails","namespace","appendNamespaceToCIMode","resUsedKey","resExactUsedKey","resType","noObject","joinArrays","handleAsObjectInI18nFormat","resTypeIsArray","newKeyToUse","deepKey","usedDefault","usedKey","needsPluralHandling","hasDefaultValue","defaultValueSuffix","defaultValueSuffixOrdinalFallback","needsZeroSuffixLookup","defaultValue","resForMissing","updateMissing","fk","lngs","fallbackLngs","send","l","specificDefaultValue","defaultForMissing","language","suffixes","suffix","_this","skipOnVariables","nestBef","nb","na","nestAft","postProcess","postProcessorNames","found","exactUsedKey","usedLng","usedNS","extracted","needsContextHandling","codes","finalKeys","pluralSuffix","zeroSuffix","ordinalPrefix","contextKey","possibleKey","optionsKeys","useOptionsReplaceForData","option","capitalize","string","LanguageUtil","specialCases","part","cleanedLng","lngOnly","supportedLng","fallbacks","fallbackCode","fallbackCodes","addCode","fc","sets","_rulesPluralsTypes","nonIntlVersions","intlVersions","suffixesOrder","createRules","rules","set","PluralResolver","languageUtils","rule","pluralCategory1","pluralCategory2","pluralCategory","number","returnSuffix","deepFindWithDefaults","Interpolator","iOpts","getOrResetRegExp","existingRegExp","replaces","regexSafe","handleFormat","missingInterpolationHandler","todo","matchedVar","temp","safeValue","clonedOptions","handleHasOptions","inheritedOptions","sep","optionsString","matchedSingleQuotes","matchedDoubleQuotes","formatters","doReduce","elem","parseFormatStr","formatStr","formatName","formatOptions","optStr","opt","createCachedFormatter","cache","formatter","Formatter","format","mem","formatted","valOptions","removePending","q","Connector","backend","store","languages","callback","toLoad","pending","toLoadLanguages","toLoadNamespaces","hasAllNamespaces","err","loaded","loadedKeys","fcName","tried","wait","resolver","fallbackValue","isUpdate","clb","get","ret","transformOptions","noop","bindMemberFunctions","inst","I18n","defOpts","createClassOnDemand","ClassOrObject","lu","load","finish","usedCallback","append","li","lngInLngs","_this2","setLngProps","done","setLng","keyPrefix","_this3","fixedT","resultKey","fallbackLng","lastLng","loadNotPending","loadState","preResult","preloaded","newLngs","rtlLngs","forkResourceStore","mergedOptions","clone","instance","createInstance","_typeof","o","hasXMLHttpRequest","isPromise","maybePromise","makePromise","__global__","global","__globalThis__","F","globalThis","exports","support","isDataView","viewClasses","isArrayBufferView","normalizeName","normalizeValue","iteratorFor","items","iterator","Headers","headers","header","oldValue","thisArg","consumed","body","fileReaderReady","reader","readBlobAsArrayBuffer","blob","readBlobAsText","readArrayBufferAsText","buf","view","bufferClone","Body","rejected","isConsumed","decode","methods","normalizeMethod","upcased","Request","input","reParamSearch","reQueryString","form","bytes","split","parseHeaders","rawHeaders","preProcessedHeaders","line","Response","bodyInit","response","redirectStatuses","xhr","abortXhr","fixUrl","fetchApi","require","ownKeys","_objectSpread","_defineProperty","_toPropertyKey","_toPrimitive","XmlHttpRequestApi","ActiveXObjectApi","fetchNode","fetchNode.default","addQueryString","queryString","fetchIt","fetchOptions","altFetch","altResponse","omitFetchOptions","requestWithFetch","payload","reqOptions","requestWithXmlHttpRequest","x","h","_classCallCheck","Constructor","_defineProperties","descriptor","_createClass","protoProps","staticProps","getDefaults","Backend","allOptions","loadUrlLanguages","loadUrlNamespaces","loadPath","resolvedLoadPath","parseErr","_this4","finished","dataArray","resArray","addPath","_this5","_this$services","backendConnector","logger","currentLanguage","warn","warnOnce","loadedClb","i18n","loadNamespaces","loadLanguages","oldI18nextHasLoadedNamespace","hasLoadedNamespace","i18nInstance","matchHtmlEntity","htmlEntities","unescapeHtmlEntity","unescape","defaultOptions","setDefaults","setI18n","getI18n","initReactI18next","I18nContext","createContext","ReportNamespaces","usePrevious","ignore","ref","useRef","useEffect","alwaysNewT","useMemoizedT","useCallback","useTranslation","i18nFromProps","i18nFromContext","defaultNSFromContext","useContext","notReadyT","optsOrDefaultValue","retNotReady","i18nOptions","useSuspense","ready","memoGetT","getT","getNewT","setT","useState","joinedNS","previousJoinedNS","isMounted","bindI18n","bindI18nStore","boundReset","DEFAULT_REALM","ROOT_PATH","defaultEnvironment","environment","getInjectedEnvironment","element","env","PATH_SEPARATOR","joinPath","isFirst","isLast","DEFAULT_LOCALE","keycloakLanguageDetector","messages","HttpBackend","__rest","__awaiter","_arguments","P","generator","adopt","fulfilled","step","__generator","g","verb","op","__read","ar","__spreadArray","css","classes","hasOwn","argType","inner","styles$p","styles$o","global_breakpoint_sm","globalBreakpointSm","global_breakpoint_md","globalBreakpointMd","global_breakpoint_lg","globalBreakpointLg","global_breakpoint_xl","global_breakpoint_2xl","globalBreakpoint2xl","global_height_breakpoint_sm","global_height_breakpoint_md","global_height_breakpoint_lg","global_height_breakpoint_xl","global_height_breakpoint_2xl","KEYHANDLER_DIRECTION","ValidatedOptions","KeyTypes","globalWidthBreakpoints","globalBreakpointXl","globalHeightBreakpoints","globalHeightBreakpointSm","globalHeightBreakpointMd","globalHeightBreakpointLg","globalHeightBreakpointXl","globalHeightBreakpoint2xl","candidateSelectors","candidateSelector","NoElement","getRootNode","_element$getRootNode","isInert","node","lookUp","_node$getAttribute","inertAtt","inert","isContentEditable","_node$getAttribute2","attValue","getCandidates","el","includeContainer","filter","candidates","getCandidatesIteratively","elements","elementsToCheck","assigned","content","nestedCandidates","validCandidate","shadowRoot","validShadowRoot","_nestedCandidates","hasTabIndex","getTabIndex","getSortOrderTabIndex","isScope","tabIndex","sortOrderedTabbables","isInput","isHiddenInput","isDetailsWithSummary","child","getCheckedRadio","nodes","isTabbableRadio","radioScope","queryRadios","radioSet","checked","isRadio","isNonTabbableRadio","isNodeAttached","_nodeRoot","nodeRoot","nodeRootHost","attached","_nodeRootHost","_nodeRootHost$ownerDo","_node$ownerDocument","_nodeRoot2","_nodeRootHost2","_nodeRootHost2$ownerD","isZeroArea","_node$getBoundingClie","width","height","isHidden","displayCheck","getShadowRoot","isDirectSummary","nodeUnderDetails","originalNode","parentElement","rootNode","isDisabledFromFieldset","parentNode","isNodeMatchingSelectorFocusable","isNodeMatchingSelectorTabbable","isValidShadowRootTabbable","shadowHostNode","sortByOrder","regularTabbables","orderedTabbables","item","candidateTabindex","sortable","tabbable","container","focusable","isTabbable","focusableCandidateSelector","isFocusable","enumerableOnly","symbols","sym","_objectSpread2","hint","prim","activeFocusTraps","trapStack","trap","activeTrap","trapIndex","isSelectableInput","isEscapeEvent","isTabEvent","isKeyForward","isKeyBackward","delay","findIndex","arr","valueOrHandler","getActualTarget","internalTrapStack","createFocusTrap","userOptions","doc","config","getOption","configOverrideOptions","optionName","configOptionName","findContainerIndex","composedPath","tabbableNodes","getNodeForOption","optionValue","getInitialFocusNode","firstTabbableGroup","firstTabbableNode","updateTabbableNodes","focusableNodes","lastTabbableNode","firstDomTabbableNode","lastDomTabbableNode","posTabIndexesFound","forward","nodeIdx","group","tryFocus","getReturnFocusNode","previousActiveElement","findNextNavNode","_ref2$isBackward","isBackward","destinationNode","containerIndex","containerGroup","startOfGroupIndex","destinationGroupIndex","destinationGroup","lastOfGroupIndex","_destinationGroupIndex","_destinationGroup","checkPointerDown","checkFocusIn","targetContained","nextNode","navAcrossContainers","mruContainerIdx","mruTabIdx","checkKeyNav","checkKey","checkClick","addListeners","removeListeners","checkDomRemoval","mutations","isFocusedNodeRemoved","mutation","removedNodes","mutationObserver","updateObservedNodes","activateOptions","onActivate","onPostActivate","checkCanFocusTrap","finishActivation","deactivateOptions","onDeactivate","onPostDeactivate","checkCanReturnFocus","returnFocus","finishDeactivation","pauseOptions","onPause","onPostPause","unpauseOptions","onUnpause","onPostUnpause","containerElements","elementsAsArray","useUnmountEffect","effect","effectRef","FocusTrap","forwardRef","_a","forwardedRef","active","paused","focusTrapOptions","preventScrollOnDeactivate","useImperativeHandle","focusTrapRef","focusTrap","previousElementRef","currentId","GenerateId","ASTERISK","uid","ouiaPrefix","ouiaIdByRoute","getOUIAProps","componentType","ouiaSafe","useOUIAProps","variant","useOUIAId","defaultOUIAId","useMemo","getDefaultOUIAId","getUniqueId","debounce","func","timeout","isElementInView","partial","strict","containerBounds","elementBounds","containerBoundsLeft","containerBoundsRight","elementBoundsLeft","elementBoundsRight","isTotallyInView","isPartiallyInView","fillTemplate","templateString","templateVars","keyHandler","innerIndex","position","refsCollection","kids","custom","isMultiDimensional","nextInnerIndex","findTabbableElements","containerRef","tababbleSelectors","getNextIndex","collection","pluralize","singular","plural","setBreakpointCssVars","mods","cssVar","breakpoint","formatBreakpointMods","styles","stylePrefix","vertical","toCamel","breakpointsOrder","breakpointsIndex","mod","_res","modifierKey","getVerticalBreakpoint","getBreakpoint","camelize","canUseDOM","getTextWidth","computedStyle","getFontFromComputedStyle","computedFont","fontStretchLookupTable","fontStretch","innerDimensions","trimLeft","availableWidth","preventedEvents","handlers","eventToPrevent","clearTimeouts","timeoutRefs","getLanguageDirection","targetElement","defaultDirection","computedDirection","getBoundingClientRect","rect","getWindow","ownerDocument","getWindowScroll","win","scrollLeft","scrollTop","isElement","OwnElement","isHTMLElement","getHTMLElementScroll","getNodeScroll","getNodeName","getDocumentElement","getWindowScrollBarX","getComputedStyle","isScrollParent","overflow","overflowX","overflowY","getCompositeRect","elementOrVirtualElement","offsetParent","isFixed","documentElement","isOffsetParentAnElement","scroll","offsets","getLayoutRect","getParentNode","getScrollParent","listScrollParents","list","scrollParent","isBody","updatedList","isTableElement","getTrueOffsetParent","html","getContainingBlock","currentNode","getOffsetParent","top","bottom","right","left","auto","basePlacements","start","clippingParents","viewport","popper","reference","variationPlacements","placement","placements","beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite","modifierPhases","order","modifiers","map","visited","modifier","sort","dep","depModifier","orderModifiers","orderedModifiers","phase","getBasePlacement","mergeByName","merged","existing","getViewportRect","visualViewport","getDocumentRect","winScroll","contains","parent","isShadow","rectToClientRect","getInnerBoundingClientRect","getClientRectFromMixedType","clippingParent","getClippingParents","clipperElement","getClippingRect","boundary","rootBoundary","firstClippingParent","clippingRect","accRect","getVariation","getMainAxisFromPlacement","computeOffsets","basePlacement","variation","commonX","commonY","mainAxis","len","getFreshSideObject","mergePaddingObject","paddingObject","expandToHashMap","hashMap","detectOverflow","elementContext","altBoundary","padding","altContext","referenceElement","popperRect","clippingClientRect","referenceClientRect","popperOffsets","popperClientRect","elementClientRect","overflowOffsets","offsetData","offset","multiply","axis","DEFAULT_OPTIONS","areValidElements","popperGenerator","generatorOptions","defaultModifiers","effectCleanupFns","isDestroyed","cleanupModifierEffects","runModifierEffects","cleanupFn","noopFn","passive","resize","scrollParents","eventListeners","popperOffsets$1","unsetSides","roundOffsets","dpr","mapToStyles","gpuAcceleration","adaptive","hasX","hasY","sideX","sideY","commonStyles","computeStyles","computeStyles$1","applyStyles","style","attributes","initialStyles","property","attribute","applyStyles$1","distanceAndSkiddingToXY","rects","invertDistance","skidding","distance","offset$1","getOppositePlacement","getOppositeVariationPlacement","computeAutoPlacement","flipVariations","allowedAutoPlacements","allPlacements","allowedPlacements","overflows","getExpandedFallbackPlacements","oppositePlacement","flip","checkMainAxis","checkAltAxis","specifiedFallbackPlacements","preferredPlacement","isBasePlacement","fallbackPlacements","referenceRect","checksMap","makeFallbackChecks","firstFittingPlacement","isStartVariation","isVertical","mainVariationSide","altVariationSide","checks","check","numberOfChecks","fittingPlacement","flip$1","getAltAxis","within","min","max","preventOverflow","tether","tetherOffset","altAxis","tetherOffsetValue","mainSide","altSide","additive","minLen","maxLen","arrowElement","arrowRect","arrowPaddingObject","arrowPaddingMin","arrowPaddingMax","arrowLen","minOffset","maxOffset","arrowOffsetParent","clientOffset","offsetModifierValue","tetherMin","tetherMax","preventedOffset","preventOverflow$1","arrow","minProp","maxProp","endDiff","startDiff","clientSize","centerToReference","center","axisProp","arrow$1","getSideOffsets","preventedOffsets","isAnySideFullyClipped","side","hide","referenceOverflow","popperAltOverflow","referenceClippingOffsets","popperEscapeOffsets","isReferenceHidden","hasPopperEscaped","hide$1","createPopper","isEqual","fromEntries","EMPTY_MODIFIERS","usePopper","popperElement","prevOptions","optionsWithDefaults","updateStateModifier","popperOptions","newOptions","popperInstanceRef","popperInstance","defaultCreatePopper","getOpacityTransition","animationDuration","Popper","trigger","direction","minWidth","maxWidth","appendTo","zIndex","isVisible","positionModifiers","onMouseEnter","onMouseLeave","onFocus","onBlur","onDocumentClick","onTriggerClick","onTriggerEnter","onPopperClick","onPopperMouseEnter","onPopperMouseLeave","onDocumentKeyDown","enableFlip","flipBehavior","triggerRef","popperRef","entryDelay","exitDelay","onHidden","onHide","onMount","onShow","onShown","triggerElement","setTriggerElement","refElement","setRefElement","setPopperElement","popperContent","setPopperContent","setReady","opacity","setOpacity","internalIsVisible","setInternalIsVisible","transitionTimerRef","showTimerRef","hideTimerRef","prevExitDelayRef","refOrTrigger","showPopper","triggerParent","languageDirection","internalPosition","fixedPositions","onDocumentClickCallback","update","addEventListener","capture","removeEventListener","getPlacement","convertedPlacement","getPlacementMemo","getOppositePlacementMemo","widthMods","triggerWidth","popperStyles","forceUpdate","_b","_c","_d","_e","_f","currentPopperContent","show","modifierFromPopperPosition","popperPlacement","getMenuWithPopper","localPopper","getPopper","getResizeObserver","containerRefElement","handleResize","useRequestAnimationFrame","unobserve","ResizeObserver","resizeObserver","TitleSizes","headingLevelSizeMap","Title","className","HeadingLevel","size","ouiaId","ouiaProps","buttonStyles","styles$n","c_spinner_diameter","spinnerSize","Spinner","ariaValueText","diameter","isInline","ariaLabel","ariaLabelledBy","cssDiameter","badgeStyles","Badge","isRead","screenReaderText","ButtonVariant","ButtonType","ButtonSize","ButtonBase","component","isActive","isBlock","isDisabled","isAriaDisabled","isLoading","isDanger","spinnerAriaValueText","spinnerAriaLabelledBy","spinnerAriaLabel","inoperableEvents","iconPosition","icon","innerRef","countOptions","Button","Component","isButtonElement","isInlineSpan","getDefaultTabIdx","createIcon","xOffset","yOffset","svgPath","title","hasTitle","viewBox","TimesIconConfig","TimesIcon","TimesIcon$1","styles$m","modalStyles","styles$l","Backdrop","ModalBoxBody","ModalBoxCloseButton","onClose","c_modal_box_m_align_top_spacer","ModalBox","positionOffset","ariaLabelledby","ariaDescribedby","topSpacer","ModalBoxFooter","ModalBoxDescription","ModalBoxHeader","help","styles$k","TooltipContent","isLeftAligned","TooltipArrow","c_tooltip_MaxWidth","TooltipPosition","pfTooltipIdCounter","Tooltip","bodyContent","isContentLeftAligned","tooltipMaxWidth","aria","ariaLive","onTooltipHidden","triggerOnMouseenter","triggerOnFocus","triggerOnClick","triggerManually","visible","setVisible","hasCustomMaxWidth","addAriaToTrigger","CheckCircleIconConfig","CheckCircleIcon","CheckCircleIcon$1","ExclamationCircleIconConfig","ExclamationCircleIcon","ExclamationCircleIcon$1","ExclamationTriangleIconConfig","ExclamationTriangleIcon","ExclamationTriangleIcon$1","InfoCircleIconConfig","InfoCircleIcon","InfoCircleIcon$1","BellIconConfig","BellIcon","BellIcon$1","isVariantIcon","ModalBoxTitle","titleIconVariant","titleLabel","hasTooltip","setHasTooltip","h1","label","variantIcons","CustomIcon","ModalContent","isOpen","description","bodyAriaLabel","bodyAriaRole","showClose","footer","actions","boxId","labelId","descriptorId","disableFocusTrap","hasNoBodyWrapper","elementToFocus","modalBoxHeader","modalBoxFooter","defaultModalBodyAriaRole","modalBody","ariaLabelledbyFormatted","idRefList","modalBox","bullsEyeStyles","ModalVariant","Modal","onEscapePress","bodyChildren","boxIdNum","labelIdNum","descriptorIdNum","AngleRightIconConfig","AngleRightIcon","AngleRightIcon$1","styles$j","AlertIcon","customIcon","Icon","AlertContext","c_alert__title_max_lines","AlertToggleExpandButton","variantLabel","onToggleExpand","isExpanded","alertVariantLabel","AlertVariant","Alert","isPlain","isLiveRegion","actionClose","actionLinks","timeoutAnimation","onTimeout","truncateTitle","tooltipPosition","isExpandable","toggleAriaLabel","getHeadingContent","titleRef","TitleComponent","divRef","isTooltipVisible","setIsTooltipVisible","maxLines","showTooltip","timedOut","setTimedOut","timedOutAnimation","setTimedOutAnimation","isMouseOver","setIsMouseOver","containsFocus","setContainsFocus","dismissed","calculatedTimeout","timer","onDocumentFocus","setIsExpanded","myOnMouseEnter","ev","myOnMouseLeave","AlertActionCloseButton","styles$i","AlertGroupInline","isToast","onOverflowClick","overflowMessage","alert","AlertGroup","alertGroup","Avatar","src","alt","border","styles$h","c_brand_Height","cssBrandHeight","c_brand_Width","Brand","widths","heights","responsiveStyles","cssBrandWidth","formStyles$1","statusIcons","FormControlIcon","StatusIcon","TextInputTypes","TextInputReadOnlyVariant","TextInputBase","inputRef","isLeftTruncated","isStartTruncated","placeholder","validated","onChange","expandedProps","readOnly","readOnlyVariant","isRequired","hasStatusIcon","ariaExpandedProps","TextInput","styles$g","AngleLeftIconConfig","AngleLeftIcon","CheckIconConfig","CheckIcon","checkStyles","defaultOnChange","Checkbox","inputClassName","isLabelWrapped","isLabelBeforeButton","isValid","isChecked","defaultChecked","checkedProps","inputRendered","wrapWithLabel","Label","labelRendered","StarIconConfig","StarIcon","CaretDownIconConfig","CaretDownIcon","styles$f","InputGroupBase","inputGroupRef","InputGroup","InputGroupItem","isFill","isBox","styles$e","CardContext","Card","isCompact","isSelectable","isClickable","isSelectableRaised","isSelected","isDisabledRaised","isFlat","isRounded","isLarge","isFullHeight","hasSelectableInput","selectableInputAriaLabel","onSelectableInputChange","titleId","setTitleId","ariaProps","setAriaProps","getSelectableModifiers","containsCardTitleChildRef","registerTitleId","CardBody","isFilled","CardTitle","cardId","CardHeaderMain","CardActions","hasNoOffset","CardSelectableActions","styles$d","Radio","CardHeader","selectableActions","onExpand","toggleButtonProps","isToggleRightAligned","isCardDisabled","cardHeaderToggle","evt","isClickableOrSelectableOnly","isDeprecatedSelectableCard","handleActionClick","getClickableSelectableProps","baseProps","styles$c","c_chip__text_MaxWidth","Chip","cssChipTextMaxWidth","badge","onClick","textMaxWidth","isOverflowChip","closeBtnAriaLabel","isReadOnly","randomId","_prevProps","prevState","nextIsTooltipVisible","idProp","styles$b","TimesCircleIconConfig","TimesCircleIcon","ChipGroup","categoryName","isClosable","onOverflowChipClick","numChips","expandedText","collapsedText","defaultIsOpen","numChildren","collapsedTextResult","renderChipGroup","chipArray","styles$a","PopoverContext","PopoverContent","PopoverBody","PopoverHeaderIcon","PopoverHeaderText","headingLevel","PopoverHeader","titleHeadingLevel","alertSeverityVariant","alertSeverityScreenReaderText","PopoverFooter","PopoverCloseButton","PopoverArrow","c_popover_MaxWidth","c_popover_MinWidth","PopoverPosition","alertStyle","Popover","shouldClose","shouldOpen","headerContent","headerComponent","headerIcon","footerContent","hideOnOutsideClick","triggerAction","popoverMinWidth","popoverMaxWidth","propWithFocusTrap","hasNoPadding","hasAutoWidth","uniqueId","focusTrapActive","setFocusTrapActive","popoverRef","withFocusTrap","hasCustomMinWidth","isFromChild","isFromTrigger","onContentMouseDown","closePopover","containers","interval","styles$9","HelperText","MinusIconConfig","MinusIcon","MinusIcon$1","variantStyle","HelperTextItem","isDynamic","hasIcon","styles$8","DividerVariant","Divider","inset","orientation","styles$7","DrawerColorVariant","DrawerContext","Drawer","isStatic","drawerRef","drawerContentRef","DrawerMain","DrawerContent","panelContent","colorVariant","DrawerContentBody","hasPadding","c_drawer__panel_md_FlexBasis","c_drawer__panel_md_FlexBasis_min","c_drawer__panel_md_FlexBasis_max","isResizing","newSize","DrawerPanelContent","hasNoBorder","isResizable","onResize","minSize","defaultSize","maxSize","increment","resizeAriaLabel","panel","splitterRef","separatorValue","setSeparatorValue","hidden","isExpandedInternal","setIsExpandedInternal","isFocusTrapActive","setIsFocusTrapActive","previouslyFocusedElement","currWidth","panelRect","setInitialVals","calcValueNow","splitterPos","drawerSize","isRTL","newSplitterPos","handleTouchStart","callbackTouchMove","callbackTouchEnd","handleMousedown","callbackMouseMove","callbackMouseUp","handleMouseMove","mousePos","handleControlMove","handleTouchMove","touchPos","controlPosition","cssPanelMdFlexBasis","handleMouseup","handleTouchEnd","handleKeys","boundaryCssVars","cssPanelMdFlexBasisMin","cssPanelMdFlexBasisMax","isValidFocusTrap","panelId","focusTrapProps","prevIsFocusTrapActive","styles$6","progressIcon","iconSize","progressIconSize","isInProgress","defaultProgressArialabel","shouldMirrorRTL","_progressIcon","formStyles","FormGroup","labelInfo","labelIcon","hasNoPaddingTop","isStack","fieldId","role","isGroupOrRadioGroup","LabelComponent","labelContent","FormHelperText","TextAreResizeOrientation","TextAreaReadOnlyVariant","TextAreaBase","computed","resizeOrientation","disabled","autoResize","TextArea","styles$5","styles$4","JumpLinksList","JumpLinksItem","childrenArr","sublists","c_jump_links__toggle_Display","cssToggleDisplayVar","getScrollItems","scrollNode","isResponsive","jumpLinks","JumpLinks","isCentered","scrollableSelector","activeIndexProp","expandable","isExpandedProp","alwaysShowLabel","hasScrollSpy","scrollItems","setScrollItems","activeIndex","setActiveIndex","isLinkClicked","navRef","scrollableElement","scrollSpy","scrollPosition","newScrollItems","scrollElements","e1","e2","jumpLinkIndex","cloneChildren","onClickProp","isActiveProp","itemIndex","scrollItem","newScrollItem","stickyParent","sidebarStyles","EyeSlashIconConfig","EyeSlashIcon","EyeIconConfig","EyeIcon","pageContextDefaults","PageContext","PageContextProvider","PageContextConsumer","styles$3","navContextDefaults","NavContext","Nav","groupId","itemId","preventDefault","toggleValue","onSelect","onToggle","theme","isHorizontal","expanded","isScrollable","flyoutRef","styles$2","pageSidebarContextDefaults","PageSidebarContext","PageSidebar","isSidebarOpen","isManagedSidebar","managedIsNavOpen","sidebarOpen","NavList","scrollViewAtStart","scrollViewAtEnd","firstElementInView","lastElementOutOfView","lastElementInView","firstElementOutOfView","ariaLeftScroll","ariaRightScroll","backScrollAriaLabel","forwardScrollAriaLabel","NavItem","styleChildren","flyout","onShowFlyout","hasNavLinkWrapper","setFlyoutRef","flyoutTarget","setFlyoutTarget","isHovered","setIsHovered","flyoutVisible","hasFlyout","showFlyout","override","onMouseOver","evtContainedInFlyout","onFlyoutClick","handleFlyout","flyoutButton","ariaFlyoutProps","renderDefaultLink","preventLinkDefault","renderClonedChild","handleMouseEnter","handleMouseLeave","flyoutPopper","NavExpandable","expandedState","prevProps","srText","buttonProps","ouiaStateId","TextContent","isVisited","TextVariants","Text","isVisitedLink","PageGroup","stickyOnBreakpoint","hasShadowTop","hasShadowBottom","hasOverflowScroll","PageLayouts","Page","_event","onPageResize","mobileView","currentWidth","currentHeight","defaultManagedSidebarIsOpen","managedSidebarOpen","currentRef","breadcrumb","isBreadcrumbWidthLimited","sidebar","notificationDrawer","isNotificationDrawerExpanded","onNotificationDrawerExpand","isTertiaryNavWidthLimited","skipToContent","mainContainerId","mainAriaLabel","mainTabIndex","mainComponent","tertiaryNav","isTertiaryNavGrouped","isBreadcrumbGrouped","additionalGroupedContent","groupProps","breadcrumbProps","mobileIsSidebarOpen","desktopIsSidebarOpen","nav","crumb","PageSidebarBody","usePageInsets","PageSectionVariants","PageSectionTypes","variantType","PageSection","isWidthLimited","isCenterAligned","styles$1","BaseSizes","DeviceSizes","l_grid_item_Order","Grid","hasGutter","span","propKey","gridSpanModifier","propValue","gridToken.l_grid_item_Order","GridItem","rowSpan","classModifier","rowSpanKey","offsetKey","spanValue","rowSpanValue","offsetValue","ErrorPage","getErrorMessage","onRetry","jsx","DropdownPosition","DropdownDirection","DropdownContext","DropdownArrowContext","DropdownMenu","refs","firstFocusTargetCollection","collectionLength","lastFocusTargetCollection","lastFocusTarget","isSeparator","autoFocus","focusTargetCollection","focusTarget","isGrouped","groupedChildren","setMenuComponentRef","alignments","menuClass","menuComponent","MenuComponent","refCollection","DropdownWithContext","dropdownItems","isText","toggle","menuAppendTo","isFlipEnabled","renderedContent","ariaHasPopup","openedOnEnter","baseClass","baseComponent","contextId","ouiaComponentType","BaseComponent","menuContainer","popperContainer","mainContainer","oneToggle","getParentElement","Dropdown","contextProps","InternalDropdownItem","_g","_h","_j","_k","customChild","customRef","additionalChild","isPlainText","tooltip","tooltipProps","componentID","listItemClassName","enterTriggersArrowDown","additionalProps","renderWithTooltip","childNode","renderClonedComponent","renderDefaultComponent","tag","componentContent","itemClass","disabledClass","plainTextClass","DropdownItem","DropdownSeparator","buttonVariantStyles","Toggle","parentRef","getMenuRef","menuRef","clickedOnToggle","clickedWithinMenu","escFromToggle","escFromWithinMenu","isSplitButton","toggleVariant","bubbleEvent","onEnter","toggleClass","EllipsisVIconConfig","EllipsisVIcon","EllipsisVIcon$1","KebabToggle","DropdownToggle","_evt","_isOpen","ToggleIndicator","splitButtonItems","splitButtonVariant","toggleTextClass","toggleIndicatorClass","toggleIconClass","ApplicationLauncherSeparator","createRenderableFavorites","favorites","isEnterTriggersArrowDown","favoriteItems","extendItemsWithFavorite","favoriteId","BarsIconConfig","BarsIcon","BarsIcon$1","PageHeader","logo","logoProps","logoComponent","headerTools","topNav","isNavOpen","showNavToggle","navToggleId","onNavToggle","ariaControls","LogoComponent","managedOnSidebarToggle","managedIsSidebarOpen","navToggle","navOpen","PageHeaderTools","PageHeaderToolsGroup","visibility","PageHeaderToolsItem","SelectContext","SelectConsumer","SelectVariant","SelectPosition","SelectDirection","SelectFooterTabbableItems","SelectOption","isCheckbox","isLastOptionBeforeFooter","isLastItemBeforeFooter","itemCount","isPlaceholder","isNoResultsOption","isFocused","sendRef","inputId","isFavorite","ariaIsFavoriteLabel","ariaIsNotFavoriteLabel","isLoad","setViewMoreNextIndex","generatedId","favoriteButton","onFavorite","itemDisplay","onViewMoreClick","renderOption","inputIdPrefix","shouldResetOnSelect","SelectGroup","SelectMenuWithRef","hasInlineFilter","childrenArray","selected","valueToCheck","isSelectOptionObject","isCustomContent","maxHeight","noResultsFoundText","createText","footerRef","variantProps","extendedChildren","SelectMenu","SelectToggleBase","clickedWithinFooter","hasFooter","moveFocusToLastMenuItem","tabbableItems","currentElementIndex","handleTypeaheadKeys","isTypeahead","hasPlaceholderStyle","onClickTypeaheadToggleButton","hasClearButton","toggleIndicator","toggleProps","SelectToggle","Select","typeaheadCurrIndex","firstRef","checkUpdatedChildren","prevChildren","currChildren","prevChild","prevChildProps","currChild","currChildProps","tempRenderableChildren","renderableFavorites","favoritesGroup","isInputValuePersisted","isInputFilterPersisted","typeaheadInputValue","typeaheadFilteredChildren","onFilter","isCreatable","isCreateOptionOnTop","onCreateOption","isCreateSelectOptionObject","loadingVariant","childFilter","filteredGroupChildren","newOptionValue","createSelectOption","optionRef","favoriteRef","optionContainerRef","updateCurrentIndex","hasDescriptionElm","optionTextElm","typeaheadStoredIndex","indexForFocus","refCollectionLen","shiftKey","tabbedIntoFavoritesMenu","typeaheadActiveChild","typeaheadActiveChildText","tabbedIntoMenu","curr","multi","customBadgeText","selections","typeaheadChildren","activeElement","chipGroupProps","chipGroupComponent","customContent","onClear","toggleId","toggleRef","selectionsProp","typeAheadAriaLabel","typeAheadAriaDescribedby","clearSelectionsAriaLabel","removeSelectionAriaLabel","ariaInvalid","placeholderText","toggleIcon","isCheckboxSelectionBadgeHidden","inlineFilterPlaceholderText","onTypeaheadInputChanged","inputAutoComplete","favoritesLabel","selectToggleId","selectedOption","isSelectedPlaceholder","hasAnySelections","childPlaceholderText","renderableItems","tempExtendedChildren","childPlaceholder","hasOnClear","clearBtn","selectedChips","variantChildren","innerMenu","U","A","C","z","T","w","M","Q","K","H","S","I","B","V","W","d","u","N","R","O","D","__viteBrowserExternal","ERROR","WINDOW","root","WEB_WORKER","NODE_JS","COMMON_JS","ARRAY_BUFFER","HEX_CHARS","EXTRA","SHIFT","OUTPUT_TYPES","blocks","createOutputMethod","outputType","is224","Sha256","createMethod","nodeWrap","crypto","Buffer","require$$1","algorithm","bufferFrom","nodeMethod","createHmacOutputMethod","HmacSha256","createHmacMethod","sharedMemory","notString","length","s0","s1","maj","t1","t2","ch","ab","da","cd","bc","h0","h2","h3","h4","h5","h6","h7","hex","buffer","dataView","oKeyPad","iKeyPad","innerHash","InvalidTokenError","b64DecodeUnicode","base64UrlDecode","output","jwtDecode","token","pos","Keycloak","kc","adapter","refreshQueue","callbackStorage","loginIframe","scripts","useNonce","logInfo","createLogger","logWarn","initOptions","createCallbackStorage","adapters","loadAdapter","createPromise","initPromise","configPromise","loadConfig","onLoad","doLogin","prompt","checkSsoSilently","ifrm","messageCallback","oauth","parseCallback","processCallback","setupCheckLoginIframe","checkLoginIframe","unchanged","processInit","setToken","scheduleCheckIframe","domReady","checkReadyState","check3pCookiesSupported","generateRandomData","array","generateCodeVerifier","generateRandomString","alphabet","randomData","generatePkceChallenge","pkceMethod","codeVerifier","hashBytes","sha256","bytesToBase64","buildClaimsParameter","requestedAcr","claims","createUUID","nonce","redirectUri","callbackState","baseUrl","scope","claimsParameter","pkceChallenge","realm","getRealmUrl","access","resource","req","minValidity","expiresIn","exec","refreshToken","timeLocal","tokenResponse","iframePromise","getOrigin","errorData","authSuccess","accessToken","idToken","fulfillPromise","configUrl","setupOidcEndoints","oidcConfiguration","fileLoaded","oidcProvider","oidcProviderConfigUrl","oidcProviderConfig","hexDigits","uuid","parseCallbackUrl","oauthState","supportedParams","queryIndex","fragmentIndex","newUrl","parsed","parseCallbackParams","paramsString","applyTimeoutToPromise","timeoutHandle","timeoutPromise","iframe","authUrl","callbacks","msg","origin","logoutUrl","accountUrl","encodeHash","cordovaOpenWindowWrapper","loginUrl","shallowCloneCordovaOptions","formatCordovaOptions","cordovaOptions","createCordovaOptions","getCordovaRedirectUri","completed","closed","closeBrowser","registerUrl","LocalStorage","cs","clearExpired","time","expires","CookieStorage","getCookie","setCookie","cookieExpiration","minutes","exp","ca","expirationDate","cookie","binString","BitbucketIconConfig","BitbucketIcon","CubeIconConfig","CubeIcon","ExternalLinkSquareAltIconConfig","ExternalLinkSquareAltIcon","FacebookSquareIconConfig","FacebookSquareIcon","GithubIconConfig","GithubIcon","GitlabIconConfig","GitlabIcon","GoogleIconConfig","GoogleIcon","HelpIconConfig","HelpIcon","InstagramIconConfig","InstagramIcon","LinkedinIconConfig","LinkedinIcon","MicrosoftIconConfig","MicrosoftIcon","MinusCircleIconConfig","MinusCircleIcon","OpenshiftIconConfig","OpenshiftIcon","PaypalIconConfig","PaypalIcon","PlusCircleIconConfig","PlusCircleIcon","StackOverflowIconConfig","StackOverflowIcon","TwitterIconConfig","TwitterIcon","isCheckBoxInput","isDateObject","isNullOrUndefined","isObjectType","isObject","getEventValue","getNodeParentName","isNameInFieldArray","names","isPlainObject","tempObject","prototypeCopy","isWeb","cloneObject","isArray","compact","isUndefined","isBoolean","EVENTS","VALIDATION_MODE","INPUT_VALIDATION_RULES","HookFormContext","useFormContext","FormProvider","getProxyFormState","formState","control","localProxyFormState","isRoot","isEmptyObject","shouldRenderFormState","formStateData","_proxyFormState","updateFormState","convertToArrayPayload","shouldSubscribeByName","signalName","exact","currentName","useSubscribe","_props","subscription","useFormState","_mounted","_localProxyFormState","_name","isString","generateWatchOutput","_names","formValues","isGlobal","fieldName","useWatch","updateValue","isKey","stringToPath","tempPath","lastIndex","objValue","useController","shouldUnregister","isArrayField","_registerProps","_shouldUnregisterField","updateMounted","elm","Controller","appendErrors","validateAllFieldCriteria","generateId","getFocusFieldName","getValidationModes","mode","isWatched","isBlurEvent","watchName","iterateFieldsByAction","fields","fieldsNames","abortEarly","currentField","updateFieldArrayRootError","fieldArrayErrors","isFileInput","isFunction","owner","isMessage","isRadioInput","isRegex","defaultResult","validResult","getCheckboxValue","defaultReturn","getRadioValue","previous","getValidateError","getValueAndMessage","validationData","validateField","shouldUseNativeValidation","isFieldArray","maxLength","minLength","validate","valueAsNumber","mount","inputValue","setCustomValidity","isCheckBox","isRadioOrCheckbox","isEmpty","appendErrorsCurry","getMinMaxMessage","exceedMax","maxLengthMessage","minLengthMessage","maxType","minType","exceedMin","maxOutput","minOutput","valueNumber","valueDate","convertTimeToDate","isTime","isWeek","maxLengthOutput","minLengthOutput","patternValue","validateError","validationResult","appendAt","fillEmptyArray","insert","moveArrayAt","prependAt","removeAtIndexes","indexes","removeArrayAt","swapArrayAt","indexA","indexB","baseGet","updatePath","isEmptyArray","unset","childObject","updateAt","fieldValues","useFieldArray","keyName","setFields","ids","_fieldIds","_actioned","fieldArrayName","updateValues","updatedFieldArrayValues","appendValue","prepend","prependValue","remove","insert$1","insertValue","swap","move","existingError","createSubject","_observers","isPrimitive","deepEqual","object1","object2","keys1","keys2","val1","val2","isMultipleSelect","live","objectHasFunction","markFieldsDirty","isParentNodeArray","getDirtyFieldsFromDefaultValues","dirtyFieldsFromValues","getDirtyFields","defaultValues","getFieldValueAs","valueAsDate","setValueAs","getFieldValue","getResolverOptions","_fields","criteriaMode","getRuleValue","hasValidation","schemaErrorLookup","skipValidation","isTouched","isSubmitted","reValidateMode","unsetEmptyArray","createFormControl","_options","_formState","_defaultValues","_formValues","_state","delayErrorCallback","_subjects","validationModeBeforeSubmit","validationModeAfterSubmit","shouldDisplayAllAssociatedErrors","_updateValid","shouldUpdateValid","_executeSchema","executeBuiltInValidation","_updateIsValidating","isValidating","_updateFieldArray","shouldSetValues","shouldUpdateFieldsAndState","touchedFields","_getDirty","updateErrors","_setErrors","updateValidAndValue","shouldSkipSetValueAs","setFieldValue","updateTouchAndDirty","fieldValue","shouldDirty","shouldRender","shouldUpdateField","isPreviousDirty","disabledField","isCurrentFieldPristine","isPreviousFieldTouched","shouldRenderByError","fieldState","previousFieldError","updatedFormState","executeSchemaAndUpdateState","shouldOnlyCheckValid","isFieldArrayRoot","fieldError","_removeUnmounted","unregister","getValues","_getWatch","_getFieldArray","fieldReference","checkboxRef","radioRef","setValues","fieldKey","setValue","cloneValue","isFieldValueUpdated","getCurrentFieldValue","_updateIsFieldValueUpdated","shouldSkipValidation","watched","previousErrorLookupResult","errorLookupResult","_focusInput","fieldNames","getFieldState","clearErrors","inputName","setError","watch","_updateDisabledField","register","disabledIsDefined","fieldRef","radioOrCheckbox","_focusError","_disableForm","requiredDisabledState","handleSubmit","onValid","onInvalid","onValidError","resetField","_reset","keepStateOptions","updatedValues","cloneUpdatedValues","isEmptyResetValues","reset","useForm","_formControl","_values","isDirty","freeGlobal","freeSelf","Symbol","objectProto","hasOwnProperty","nativeObjectToString","symToStringTag","getRawTag","isOwn","unmasked","objectToString","nullTag","undefinedTag","baseGetTag","isObjectLike","symbolTag","isSymbol","arrayMap","iteratee","INFINITY","symbolProto","symbolToString","baseToString","asyncTag","funcTag","genTag","proxyTag","coreJsData","maskSrcKey","isMasked","funcProto","funcToString","toSource","reRegExpChar","reIsHostCtor","reIsNative","baseIsNative","getValue","getNative","eq","other","reIsDeepProp","reIsPlainProp","nativeCreate","hashClear","hashDelete","HASH_UNDEFINED","hashGet","hashHas","hashSet","Hash","entry","listCacheClear","assocIndexOf","arrayProto","splice","listCacheDelete","listCacheGet","listCacheHas","listCacheSet","ListCache","Map","mapCacheClear","isKeyable","getMapData","mapCacheDelete","mapCacheGet","mapCacheHas","mapCacheSet","MapCache","FUNC_ERROR_TEXT","memoize","memoized","MAX_MEMOIZE_SIZE","memoizeCapped","rePropName","reEscapeChar","quote","subString","toString","castPath","toKey","he","se","Qt","ie","Xt","ke","xe","we","ht","ft","gt","bt","oe","ce","pt","fe","yt","Zt","en","Ae","ge","$","G","Ue","be","Ve","Y","le","It","dt","E","We","Je","pe","Ge","ye","X","Ct","me","de","an","vt","ae","sn","Tt","st","at","lt","rt","nt","tt","et","Ze","Xe","Qe","Ye","Ke","ze","St","kt","Ie","Ne","xt","je","Le","Pe","Re","wt","At","Vt","Z","qt","ee","Ot","Fe","ue","De","Ee","He","Nt","Lt","ct","Ce","ve","Pt","Te","on","cn","un","L","Rt","mt","_t","Ft","ut","J","Se","it","ot","ne","Me","$e","re","Dt","mn","Be","Et","Mt","Bt","Ht","$t","KeycloakEnvContext","useEnvironment","KeycloakProvider","calledOnce","setInit","keycloak","AlertProvider","Help","ReferrerLink","Header","brandImage","logoUrl","internalLogoHref","indexHref","translations","TranslationsProvider","KeycloakMasthead","fetchContentJson","usePromise","factory","deps","handlePromise","PageNav","menuItems","setMenuItems","Suspense","menuItem","NavMenuItem","features","matchMenuItem","NavLink","menuItemPath","handleClick","Root","DeviceActivity","lazy","__vitePreload","LinkedAccounts","SigningIn","Applications","Groups","PersonalInfo","Resources","ContentComponent","AccountExtraPage","DeviceActivityRoute","LinkedAccountsRoute","SigningInRoute","ApplicationsRoute","GroupsRoute","ResourcesRoute","ContentRoute","PersonalInfoRoute","AccountExtraPageRoute","RootRoute","StrictMode"],"ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,268,269,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340],"sources":["../../../../../node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/client.js","../../../../../node_modules/.pnpm/@remix-run+router@1.15.3/node_modules/@remix-run/router/dist/router.js","../../../../../node_modules/.pnpm/react-router@6.22.3_react@18.2.0/node_modules/react-router/dist/index.js","../../../../../node_modules/.pnpm/react-router-dom@6.22.3_react-dom@18.2.0_react@18.2.0/node_modules/react-router-dom/dist/index.js","../../../../../node_modules/.pnpm/i18next@23.10.1/node_modules/i18next/dist/esm/i18next.js","../../../../../node_modules/.pnpm/i18next-http-backend@2.5.0/node_modules/i18next-http-backend/esm/utils.js","../../../../../node_modules/.pnpm/cross-fetch@4.0.0/node_modules/cross-fetch/dist/browser-ponyfill.js","../../../../../node_modules/.pnpm/i18next-http-backend@2.5.0/node_modules/i18next-http-backend/esm/getFetch.cjs","../../../../../node_modules/.pnpm/i18next-http-backend@2.5.0/node_modules/i18next-http-backend/esm/request.js","../../../../../node_modules/.pnpm/i18next-http-backend@2.5.0/node_modules/i18next-http-backend/esm/index.js","../../../../../node_modules/.pnpm/react-i18next@14.1.0_i18next@23.10.1_react-dom@18.2.0_react@18.2.0/node_modules/react-i18next/dist/es/utils.js","../../../../../node_modules/.pnpm/react-i18next@14.1.0_i18next@23.10.1_react-dom@18.2.0_react@18.2.0/node_modules/react-i18next/dist/es/unescape.js","../../../../../node_modules/.pnpm/react-i18next@14.1.0_i18next@23.10.1_react-dom@18.2.0_react@18.2.0/node_modules/react-i18next/dist/es/defaults.js","../../../../../node_modules/.pnpm/react-i18next@14.1.0_i18next@23.10.1_react-dom@18.2.0_react@18.2.0/node_modules/react-i18next/dist/es/i18nInstance.js","../../../../../node_modules/.pnpm/react-i18next@14.1.0_i18next@23.10.1_react-dom@18.2.0_react@18.2.0/node_modules/react-i18next/dist/es/initReactI18next.js","../../../../../node_modules/.pnpm/react-i18next@14.1.0_i18next@23.10.1_react-dom@18.2.0_react@18.2.0/node_modules/react-i18next/dist/es/context.js","../../../../../node_modules/.pnpm/react-i18next@14.1.0_i18next@23.10.1_react-dom@18.2.0_react@18.2.0/node_modules/react-i18next/dist/es/useTranslation.js","../../src/constants.ts","../../src/environment.ts","../../src/utils/joinPath.ts","../../src/i18n.ts","../../../../../node_modules/.pnpm/tslib@2.6.2/node_modules/tslib/tslib.es6.mjs","../../../../../node_modules/.pnpm/@patternfly+react-styles@5.2.1/node_modules/@patternfly/react-styles/dist/esm/index.js","../../../../../node_modules/.pnpm/@patternfly+react-styles@5.2.1/node_modules/@patternfly/react-styles/css/components/Content/content.mjs","../../../../../node_modules/.pnpm/@patternfly+react-styles@5.2.1/node_modules/@patternfly/react-styles/css/components/Title/title.mjs","../../../../../node_modules/.pnpm/@patternfly+react-tokens@5.2.1/node_modules/@patternfly/react-tokens/dist/esm/global_breakpoint_sm.js","../../../../../node_modules/.pnpm/@patternfly+react-tokens@5.2.1/node_modules/@patternfly/react-tokens/dist/esm/global_breakpoint_md.js","../../../../../node_modules/.pnpm/@patternfly+react-tokens@5.2.1/node_modules/@patternfly/react-tokens/dist/esm/global_breakpoint_lg.js","../../../../../node_modules/.pnpm/@patternfly+react-tokens@5.2.1/node_modules/@patternfly/react-tokens/dist/esm/global_breakpoint_xl.js","../../../../../node_modules/.pnpm/@patternfly+react-tokens@5.2.1/node_modules/@patternfly/react-tokens/dist/esm/global_breakpoint_2xl.js","../../../../../node_modules/.pnpm/@patternfly+react-tokens@5.2.1/node_modules/@patternfly/react-tokens/dist/esm/global_height_breakpoint_sm.js","../../../../../node_modules/.pnpm/@patternfly+react-tokens@5.2.1/node_modules/@patternfly/react-tokens/dist/esm/global_height_breakpoint_md.js","../../../../../node_modules/.pnpm/@patternfly+react-tokens@5.2.1/node_modules/@patternfly/react-tokens/dist/esm/global_height_breakpoint_lg.js","../../../../../node_modules/.pnpm/@patternfly+react-tokens@5.2.1/node_modules/@patternfly/react-tokens/dist/esm/global_height_breakpoint_xl.js","../../../../../node_modules/.pnpm/@patternfly+react-tokens@5.2.1/node_modules/@patternfly/react-tokens/dist/esm/global_height_breakpoint_2xl.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/helpers/constants.js","../../../../../node_modules/.pnpm/tabbable@6.2.0/node_modules/tabbable/dist/index.esm.js","../../../../../node_modules/.pnpm/focus-trap@7.5.2/node_modules/focus-trap/dist/focus-trap.esm.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/helpers/useUnmountEffect.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/helpers/FocusTrap/FocusTrap.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/helpers/GenerateId/GenerateId.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/helpers/htmlConstants.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/helpers/OUIA/ouia.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/helpers/util.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/helpers/Popper/thirdparty/popper-core/dom-utils/getBoundingClientRect.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/helpers/Popper/thirdparty/popper-core/dom-utils/getWindow.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/helpers/Popper/thirdparty/popper-core/dom-utils/getWindowScroll.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/helpers/Popper/thirdparty/popper-core/dom-utils/instanceOf.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/helpers/Popper/thirdparty/popper-core/dom-utils/getHTMLElementScroll.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/helpers/Popper/thirdparty/popper-core/dom-utils/getNodeScroll.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/helpers/Popper/thirdparty/popper-core/dom-utils/getNodeName.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/helpers/Popper/thirdparty/popper-core/dom-utils/getDocumentElement.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/helpers/Popper/thirdparty/popper-core/dom-utils/getWindowScrollBarX.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/helpers/Popper/thirdparty/popper-core/dom-utils/getComputedStyle.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/helpers/Popper/thirdparty/popper-core/dom-utils/isScrollParent.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/helpers/Popper/thirdparty/popper-core/dom-utils/getCompositeRect.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/helpers/Popper/thirdparty/popper-core/dom-utils/getLayoutRect.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/helpers/Popper/thirdparty/popper-core/dom-utils/getParentNode.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/helpers/Popper/thirdparty/popper-core/dom-utils/getScrollParent.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/helpers/Popper/thirdparty/popper-core/dom-utils/listScrollParents.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/helpers/Popper/thirdparty/popper-core/dom-utils/isTableElement.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/helpers/Popper/thirdparty/popper-core/dom-utils/getOffsetParent.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/helpers/Popper/thirdparty/popper-core/enums.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/helpers/Popper/thirdparty/popper-core/utils/orderModifiers.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/helpers/Popper/thirdparty/popper-core/utils/debounce.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/helpers/Popper/thirdparty/popper-core/utils/getBasePlacement.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/helpers/Popper/thirdparty/popper-core/utils/mergeByName.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/helpers/Popper/thirdparty/popper-core/dom-utils/getViewportRect.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/helpers/Popper/thirdparty/popper-core/dom-utils/getDocumentRect.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/helpers/Popper/thirdparty/popper-core/dom-utils/contains.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/helpers/Popper/thirdparty/popper-core/utils/rectToClientRect.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/helpers/Popper/thirdparty/popper-core/dom-utils/getClippingRect.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/helpers/Popper/thirdparty/popper-core/utils/getVariation.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/helpers/Popper/thirdparty/popper-core/utils/getMainAxisFromPlacement.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/helpers/Popper/thirdparty/popper-core/utils/computeOffsets.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/helpers/Popper/thirdparty/popper-core/utils/getFreshSideObject.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/helpers/Popper/thirdparty/popper-core/utils/mergePaddingObject.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/helpers/Popper/thirdparty/popper-core/utils/expandToHashMap.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/helpers/Popper/thirdparty/popper-core/utils/detectOverflow.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/helpers/Popper/thirdparty/popper-core/index.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/helpers/Popper/thirdparty/popper-core/modifiers/eventListeners.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/helpers/Popper/thirdparty/popper-core/modifiers/popperOffsets.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/helpers/Popper/thirdparty/popper-core/modifiers/computeStyles.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/helpers/Popper/thirdparty/popper-core/modifiers/applyStyles.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/helpers/Popper/thirdparty/popper-core/modifiers/offset.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/helpers/Popper/thirdparty/popper-core/utils/getOppositePlacement.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/helpers/Popper/thirdparty/popper-core/utils/getOppositeVariationPlacement.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/helpers/Popper/thirdparty/popper-core/utils/computeAutoPlacement.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/helpers/Popper/thirdparty/popper-core/modifiers/flip.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/helpers/Popper/thirdparty/popper-core/utils/getAltAxis.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/helpers/Popper/thirdparty/popper-core/utils/within.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/helpers/Popper/thirdparty/popper-core/modifiers/preventOverflow.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/helpers/Popper/thirdparty/popper-core/modifiers/arrow.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/helpers/Popper/thirdparty/popper-core/modifiers/hide.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/helpers/Popper/thirdparty/popper-core/popper.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/helpers/useIsomorphicLayout.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/helpers/Popper/thirdparty/react-popper/usePopper.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/helpers/Popper/Popper.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/helpers/resizeObserver.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/components/Title/Title.js","../../../../../node_modules/.pnpm/@patternfly+react-styles@5.2.1/node_modules/@patternfly/react-styles/css/components/Button/button.mjs","../../../../../node_modules/.pnpm/@patternfly+react-styles@5.2.1/node_modules/@patternfly/react-styles/css/components/Spinner/spinner.mjs","../../../../../node_modules/.pnpm/@patternfly+react-tokens@5.2.1/node_modules/@patternfly/react-tokens/dist/esm/c_spinner_diameter.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/components/Spinner/Spinner.js","../../../../../node_modules/.pnpm/@patternfly+react-styles@5.2.1/node_modules/@patternfly/react-styles/css/components/Badge/badge.mjs","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/components/Badge/Badge.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/components/Button/Button.js","../../../../../node_modules/.pnpm/@patternfly+react-icons@5.2.1_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-icons/dist/esm/createIcon.js","../../../../../node_modules/.pnpm/@patternfly+react-icons@5.2.1_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-icons/dist/esm/icons/times-icon.js","../../../../../node_modules/.pnpm/@patternfly+react-styles@5.2.1/node_modules/@patternfly/react-styles/css/components/Backdrop/backdrop.mjs","../../../../../node_modules/.pnpm/@patternfly+react-styles@5.2.1/node_modules/@patternfly/react-styles/css/components/ModalBox/modal-box.mjs","../../../../../node_modules/.pnpm/@patternfly+react-styles@5.2.1/node_modules/@patternfly/react-styles/css/layouts/Bullseye/bullseye.mjs","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/components/Backdrop/Backdrop.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/components/Modal/ModalBoxBody.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/components/Modal/ModalBoxCloseButton.js","../../../../../node_modules/.pnpm/@patternfly+react-tokens@5.2.1/node_modules/@patternfly/react-tokens/dist/esm/c_modal_box_m_align_top_spacer.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/components/Modal/ModalBox.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/components/Modal/ModalBoxFooter.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/components/Modal/ModalBoxDescription.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/components/Modal/ModalBoxHeader.js","../../../../../node_modules/.pnpm/@patternfly+react-styles@5.2.1/node_modules/@patternfly/react-styles/css/components/Tooltip/tooltip.mjs","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/components/Tooltip/TooltipContent.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/components/Tooltip/TooltipArrow.js","../../../../../node_modules/.pnpm/@patternfly+react-tokens@5.2.1/node_modules/@patternfly/react-tokens/dist/esm/c_tooltip_MaxWidth.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/components/Tooltip/Tooltip.js","../../../../../node_modules/.pnpm/@patternfly+react-icons@5.2.1_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-icons/dist/esm/icons/check-circle-icon.js","../../../../../node_modules/.pnpm/@patternfly+react-icons@5.2.1_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-icons/dist/esm/icons/exclamation-circle-icon.js","../../../../../node_modules/.pnpm/@patternfly+react-icons@5.2.1_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-icons/dist/esm/icons/exclamation-triangle-icon.js","../../../../../node_modules/.pnpm/@patternfly+react-icons@5.2.1_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-icons/dist/esm/icons/info-circle-icon.js","../../../../../node_modules/.pnpm/@patternfly+react-icons@5.2.1_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-icons/dist/esm/icons/bell-icon.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/components/Modal/ModalBoxTitle.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/components/Modal/ModalContent.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/components/Modal/Modal.js","../../../../../node_modules/.pnpm/@patternfly+react-icons@5.2.1_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-icons/dist/esm/icons/angle-right-icon.js","../../../../../node_modules/.pnpm/@patternfly+react-styles@5.2.1/node_modules/@patternfly/react-styles/css/components/Alert/alert.mjs","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/components/Alert/AlertIcon.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/components/Alert/AlertContext.js","../../../../../node_modules/.pnpm/@patternfly+react-tokens@5.2.1/node_modules/@patternfly/react-tokens/dist/esm/c_alert__title_max_lines.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/components/Alert/AlertToggleExpandButton.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/components/Alert/Alert.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/components/Alert/AlertActionCloseButton.js","../../../../../node_modules/.pnpm/@patternfly+react-styles@5.2.1/node_modules/@patternfly/react-styles/css/components/Alert/alert-group.mjs","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/components/Alert/AlertGroupInline.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/components/Alert/AlertGroup.js","../../../../../node_modules/.pnpm/@patternfly+react-styles@5.2.1/node_modules/@patternfly/react-styles/css/components/Avatar/avatar.mjs","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/components/Avatar/Avatar.js","../../../../../node_modules/.pnpm/@patternfly+react-styles@5.2.1/node_modules/@patternfly/react-styles/css/components/Brand/brand.mjs","../../../../../node_modules/.pnpm/@patternfly+react-tokens@5.2.1/node_modules/@patternfly/react-tokens/dist/esm/c_brand_Height.js","../../../../../node_modules/.pnpm/@patternfly+react-tokens@5.2.1/node_modules/@patternfly/react-tokens/dist/esm/c_brand_Width.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/components/Brand/Brand.js","../../../../../node_modules/.pnpm/@patternfly+react-styles@5.2.1/node_modules/@patternfly/react-styles/css/components/FormControl/form-control.mjs","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/components/FormControl/FormControlIcon.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/components/TextInput/TextInput.js","../../../../../node_modules/.pnpm/@patternfly+react-styles@5.2.1/node_modules/@patternfly/react-styles/css/components/Dropdown/dropdown.mjs","../../../../../node_modules/.pnpm/@patternfly+react-icons@5.2.1_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-icons/dist/esm/icons/angle-left-icon.js","../../../../../node_modules/.pnpm/@patternfly+react-icons@5.2.1_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-icons/dist/esm/icons/check-icon.js","../../../../../node_modules/.pnpm/@patternfly+react-styles@5.2.1/node_modules/@patternfly/react-styles/css/components/Check/check.mjs","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/components/Checkbox/Checkbox.js","../../../../../node_modules/.pnpm/@patternfly+react-icons@5.2.1_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-icons/dist/esm/icons/star-icon.js","../../../../../node_modules/.pnpm/@patternfly+react-icons@5.2.1_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-icons/dist/esm/icons/caret-down-icon.js","../../../../../node_modules/.pnpm/@patternfly+react-styles@5.2.1/node_modules/@patternfly/react-styles/css/components/InputGroup/input-group.mjs","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/components/InputGroup/InputGroup.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/components/InputGroup/InputGroupItem.js","../../../../../node_modules/.pnpm/@patternfly+react-styles@5.2.1/node_modules/@patternfly/react-styles/css/components/Card/card.mjs","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/components/Card/Card.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/components/Card/CardBody.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/components/Card/CardTitle.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/components/Card/CardHeaderMain.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/components/Card/CardActions.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/components/Card/CardSelectableActions.js","../../../../../node_modules/.pnpm/@patternfly+react-styles@5.2.1/node_modules/@patternfly/react-styles/css/components/Radio/radio.mjs","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/components/Radio/Radio.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/components/Card/CardHeader.js","../../../../../node_modules/.pnpm/@patternfly+react-styles@5.2.1/node_modules/@patternfly/react-styles/css/components/Chip/chip.mjs","../../../../../node_modules/.pnpm/@patternfly+react-tokens@5.2.1/node_modules/@patternfly/react-tokens/dist/esm/c_chip__text_MaxWidth.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/components/Chip/Chip.js","../../../../../node_modules/.pnpm/@patternfly+react-styles@5.2.1/node_modules/@patternfly/react-styles/css/components/Chip/chip-group.mjs","../../../../../node_modules/.pnpm/@patternfly+react-icons@5.2.1_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-icons/dist/esm/icons/times-circle-icon.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/components/Chip/ChipGroup.js","../../../../../node_modules/.pnpm/@patternfly+react-styles@5.2.1/node_modules/@patternfly/react-styles/css/components/Popover/popover.mjs","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/components/Popover/PopoverContext.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/components/Popover/PopoverContent.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/components/Popover/PopoverBody.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/components/Popover/PopoverHeaderIcon.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/components/Popover/PopoverHeaderText.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/components/Popover/PopoverHeader.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/components/Popover/PopoverFooter.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/components/Popover/PopoverCloseButton.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/components/Popover/PopoverArrow.js","../../../../../node_modules/.pnpm/@patternfly+react-tokens@5.2.1/node_modules/@patternfly/react-tokens/dist/esm/c_popover_MaxWidth.js","../../../../../node_modules/.pnpm/@patternfly+react-tokens@5.2.1/node_modules/@patternfly/react-tokens/dist/esm/c_popover_MinWidth.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/components/Popover/Popover.js","../../../../../node_modules/.pnpm/@patternfly+react-styles@5.2.1/node_modules/@patternfly/react-styles/css/components/HelperText/helper-text.mjs","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/components/HelperText/HelperText.js","../../../../../node_modules/.pnpm/@patternfly+react-icons@5.2.1_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-icons/dist/esm/icons/minus-icon.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/components/HelperText/HelperTextItem.js","../../../../../node_modules/.pnpm/@patternfly+react-styles@5.2.1/node_modules/@patternfly/react-styles/css/components/Divider/divider.mjs","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/components/Divider/Divider.js","../../../../../node_modules/.pnpm/@patternfly+react-styles@5.2.1/node_modules/@patternfly/react-styles/css/components/Drawer/drawer.mjs","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/components/Drawer/Drawer.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/components/Drawer/DrawerMain.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/components/Drawer/DrawerContent.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/components/Drawer/DrawerContentBody.js","../../../../../node_modules/.pnpm/@patternfly+react-tokens@5.2.1/node_modules/@patternfly/react-tokens/dist/esm/c_drawer__panel_md_FlexBasis.js","../../../../../node_modules/.pnpm/@patternfly+react-tokens@5.2.1/node_modules/@patternfly/react-tokens/dist/esm/c_drawer__panel_md_FlexBasis_min.js","../../../../../node_modules/.pnpm/@patternfly+react-tokens@5.2.1/node_modules/@patternfly/react-tokens/dist/esm/c_drawer__panel_md_FlexBasis_max.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/components/Drawer/DrawerPanelContent.js","../../../../../node_modules/.pnpm/@patternfly+react-styles@5.2.1/node_modules/@patternfly/react-styles/css/components/Icon/icon.mjs","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/components/Icon/Icon.js","../../../../../node_modules/.pnpm/@patternfly+react-styles@5.2.1/node_modules/@patternfly/react-styles/css/components/Form/form.mjs","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/components/Form/FormGroup.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/components/Form/FormHelperText.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/components/TextArea/TextArea.js","../../../../../node_modules/.pnpm/@patternfly+react-styles@5.2.1/node_modules/@patternfly/react-styles/css/components/JumpLinks/jump-links.mjs","../../../../../node_modules/.pnpm/@patternfly+react-styles@5.2.1/node_modules/@patternfly/react-styles/css/components/Sidebar/sidebar.mjs","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/components/JumpLinks/JumpLinksList.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/components/JumpLinks/JumpLinksItem.js","../../../../../node_modules/.pnpm/@patternfly+react-tokens@5.2.1/node_modules/@patternfly/react-tokens/dist/esm/c_jump_links__toggle_Display.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/components/JumpLinks/JumpLinks.js","../../../../../node_modules/.pnpm/@patternfly+react-icons@5.2.1_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-icons/dist/esm/icons/eye-slash-icon.js","../../../../../node_modules/.pnpm/@patternfly+react-icons@5.2.1_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-icons/dist/esm/icons/eye-icon.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/components/Page/PageContext.js","../../../../../node_modules/.pnpm/@patternfly+react-styles@5.2.1/node_modules/@patternfly/react-styles/css/components/Nav/nav.mjs","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/components/Nav/Nav.js","../../../../../node_modules/.pnpm/@patternfly+react-styles@5.2.1/node_modules/@patternfly/react-styles/css/components/Page/page.mjs","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/components/Page/PageSidebar.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/components/Nav/NavList.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/components/Nav/NavItem.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/components/Nav/NavExpandable.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/components/Text/TextContent.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/components/Text/Text.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/components/Page/PageGroup.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/components/Page/Page.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/components/Page/PageSidebarBody.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/components/Page/PageSection.js","../../../../../node_modules/.pnpm/@patternfly+react-styles@5.2.1/node_modules/@patternfly/react-styles/css/layouts/Grid/grid.mjs","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/styles/sizes.js","../../../../../node_modules/.pnpm/@patternfly+react-tokens@5.2.1/node_modules/@patternfly/react-tokens/dist/esm/l_grid_item_Order.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/layouts/Grid/Grid.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/layouts/Grid/GridItem.js","../../src/root/ErrorPage.tsx","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/deprecated/components/Dropdown/dropdownConstants.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/deprecated/components/Dropdown/DropdownMenu.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/deprecated/components/Dropdown/DropdownWithContext.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/deprecated/components/Dropdown/Dropdown.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/deprecated/components/Dropdown/InternalDropdownItem.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/deprecated/components/Dropdown/DropdownItem.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/deprecated/components/Dropdown/DropdownSeparator.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/deprecated/components/Dropdown/Toggle.js","../../../../../node_modules/.pnpm/@patternfly+react-icons@5.2.1_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-icons/dist/esm/icons/ellipsis-v-icon.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/deprecated/components/Dropdown/KebabToggle.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/deprecated/components/Dropdown/DropdownToggle.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/deprecated/components/ApplicationLauncher/ApplicationLauncherSeparator.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/helpers/favorites.js","../../../../../node_modules/.pnpm/@patternfly+react-icons@5.2.1_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-icons/dist/esm/icons/bars-icon.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/deprecated/components/PageHeader/PageHeader.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/deprecated/components/PageHeader/PageHeaderTools.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/deprecated/components/PageHeader/PageHeaderToolsGroup.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/deprecated/components/PageHeader/PageHeaderToolsItem.js","../../../../../node_modules/.pnpm/@patternfly+react-styles@5.2.1/node_modules/@patternfly/react-styles/css/components/Select/select.mjs","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/deprecated/components/Select/selectConstants.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/deprecated/components/Select/SelectOption.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/deprecated/components/Select/SelectGroup.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/deprecated/components/Select/SelectMenu.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/deprecated/components/Select/SelectToggle.js","../../../../../node_modules/.pnpm/@patternfly+react-core@5.2.3_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-core/dist/esm/deprecated/components/Select/Select.js","../../../../libs/keycloak-masthead/dist/keycloak-masthead.js","../../__vite-browser-external","../../../../../node_modules/.pnpm/js-sha256@0.11.0/node_modules/js-sha256/src/sha256.js","../../../../../node_modules/.pnpm/jwt-decode@4.0.0/node_modules/jwt-decode/build/esm/index.js","../../../../libs/keycloak-js/dist/keycloak.mjs","../../../../../node_modules/.pnpm/@patternfly+react-icons@5.2.1_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-icons/dist/esm/icons/bitbucket-icon.js","../../../../../node_modules/.pnpm/@patternfly+react-icons@5.2.1_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-icons/dist/esm/icons/cube-icon.js","../../../../../node_modules/.pnpm/@patternfly+react-icons@5.2.1_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-icons/dist/esm/icons/external-link-square-alt-icon.js","../../../../../node_modules/.pnpm/@patternfly+react-icons@5.2.1_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-icons/dist/esm/icons/facebook-square-icon.js","../../../../../node_modules/.pnpm/@patternfly+react-icons@5.2.1_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-icons/dist/esm/icons/github-icon.js","../../../../../node_modules/.pnpm/@patternfly+react-icons@5.2.1_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-icons/dist/esm/icons/gitlab-icon.js","../../../../../node_modules/.pnpm/@patternfly+react-icons@5.2.1_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-icons/dist/esm/icons/google-icon.js","../../../../../node_modules/.pnpm/@patternfly+react-icons@5.2.1_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-icons/dist/esm/icons/help-icon.js","../../../../../node_modules/.pnpm/@patternfly+react-icons@5.2.1_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-icons/dist/esm/icons/instagram-icon.js","../../../../../node_modules/.pnpm/@patternfly+react-icons@5.2.1_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-icons/dist/esm/icons/linkedin-icon.js","../../../../../node_modules/.pnpm/@patternfly+react-icons@5.2.1_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-icons/dist/esm/icons/microsoft-icon.js","../../../../../node_modules/.pnpm/@patternfly+react-icons@5.2.1_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-icons/dist/esm/icons/minus-circle-icon.js","../../../../../node_modules/.pnpm/@patternfly+react-icons@5.2.1_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-icons/dist/esm/icons/openshift-icon.js","../../../../../node_modules/.pnpm/@patternfly+react-icons@5.2.1_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-icons/dist/esm/icons/paypal-icon.js","../../../../../node_modules/.pnpm/@patternfly+react-icons@5.2.1_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-icons/dist/esm/icons/plus-circle-icon.js","../../../../../node_modules/.pnpm/@patternfly+react-icons@5.2.1_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-icons/dist/esm/icons/stack-overflow-icon.js","../../../../../node_modules/.pnpm/@patternfly+react-icons@5.2.1_react-dom@18.2.0_react@18.2.0/node_modules/@patternfly/react-icons/dist/esm/icons/twitter-icon.js","../../../../../node_modules/.pnpm/react-hook-form@7.51.2_react@18.2.0/node_modules/react-hook-form/dist/index.esm.mjs","../../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_freeGlobal.js","../../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_root.js","../../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Symbol.js","../../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getRawTag.js","../../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_objectToString.js","../../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseGetTag.js","../../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isObjectLike.js","../../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isSymbol.js","../../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arrayMap.js","../../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isArray.js","../../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseToString.js","../../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isObject.js","../../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isFunction.js","../../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_coreJsData.js","../../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isMasked.js","../../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_toSource.js","../../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsNative.js","../../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getValue.js","../../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getNative.js","../../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/eq.js","../../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isKey.js","../../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_nativeCreate.js","../../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hashClear.js","../../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hashDelete.js","../../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hashGet.js","../../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hashHas.js","../../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hashSet.js","../../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Hash.js","../../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_listCacheClear.js","../../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_assocIndexOf.js","../../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_listCacheDelete.js","../../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_listCacheGet.js","../../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_listCacheHas.js","../../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_listCacheSet.js","../../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_ListCache.js","../../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Map.js","../../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapCacheClear.js","../../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isKeyable.js","../../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getMapData.js","../../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapCacheDelete.js","../../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapCacheGet.js","../../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapCacheHas.js","../../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapCacheSet.js","../../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_MapCache.js","../../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/memoize.js","../../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_memoizeCapped.js","../../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stringToPath.js","../../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/toString.js","../../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_castPath.js","../../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_toKey.js","../../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseGet.js","../../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/get.js","../../../../libs/ui-shared/dist/ui-shared.js","../../src/root/KeycloakContext.tsx","../../src/root/Header.tsx","../../src/content/fetchContent.ts","../../src/utils/usePromise.ts","../../src/root/PageNav.tsx","../../src/root/Root.tsx","../../src/routes.tsx","../../src/main.tsx"],"sourcesContent":["'use strict';\n\nvar m = require('react-dom');\nif (process.env.NODE_ENV === 'production') {\n exports.createRoot = m.createRoot;\n exports.hydrateRoot = m.hydrateRoot;\n} else {\n var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n exports.createRoot = function(c, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.createRoot(c, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n exports.hydrateRoot = function(c, h, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.hydrateRoot(c, h, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n}\n","/**\n * @remix-run/router v1.15.3\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n/**\n * Actions represent the type of change to a location value.\n */\nvar Action;\n(function (Action) {\n /**\n * A POP indicates a change to an arbitrary index in the history stack, such\n * as a back or forward navigation. It does not describe the direction of the\n * navigation, only that the current index changed.\n *\n * Note: This is the default action for newly created history objects.\n */\n Action[\"Pop\"] = \"POP\";\n /**\n * A PUSH indicates a new entry being added to the history stack, such as when\n * a link is clicked and a new page loads. When this happens, all subsequent\n * entries in the stack are lost.\n */\n Action[\"Push\"] = \"PUSH\";\n /**\n * A REPLACE indicates the entry at the current index in the history stack\n * being replaced by a new one.\n */\n Action[\"Replace\"] = \"REPLACE\";\n})(Action || (Action = {}));\nconst PopStateEventType = \"popstate\";\n/**\n * Memory history stores the current location in memory. It is designed for use\n * in stateful non-browser environments like tests and React Native.\n */\nfunction createMemoryHistory(options) {\n if (options === void 0) {\n options = {};\n }\n let {\n initialEntries = [\"/\"],\n initialIndex,\n v5Compat = false\n } = options;\n let entries; // Declare so we can access from createMemoryLocation\n entries = initialEntries.map((entry, index) => createMemoryLocation(entry, typeof entry === \"string\" ? null : entry.state, index === 0 ? \"default\" : undefined));\n let index = clampIndex(initialIndex == null ? entries.length - 1 : initialIndex);\n let action = Action.Pop;\n let listener = null;\n function clampIndex(n) {\n return Math.min(Math.max(n, 0), entries.length - 1);\n }\n function getCurrentLocation() {\n return entries[index];\n }\n function createMemoryLocation(to, state, key) {\n if (state === void 0) {\n state = null;\n }\n let location = createLocation(entries ? getCurrentLocation().pathname : \"/\", to, state, key);\n warning(location.pathname.charAt(0) === \"/\", \"relative pathnames are not supported in memory history: \" + JSON.stringify(to));\n return location;\n }\n function createHref(to) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n let history = {\n get index() {\n return index;\n },\n get action() {\n return action;\n },\n get location() {\n return getCurrentLocation();\n },\n createHref,\n createURL(to) {\n return new URL(createHref(to), \"http://localhost\");\n },\n encodeLocation(to) {\n let path = typeof to === \"string\" ? parsePath(to) : to;\n return {\n pathname: path.pathname || \"\",\n search: path.search || \"\",\n hash: path.hash || \"\"\n };\n },\n push(to, state) {\n action = Action.Push;\n let nextLocation = createMemoryLocation(to, state);\n index += 1;\n entries.splice(index, entries.length, nextLocation);\n if (v5Compat && listener) {\n listener({\n action,\n location: nextLocation,\n delta: 1\n });\n }\n },\n replace(to, state) {\n action = Action.Replace;\n let nextLocation = createMemoryLocation(to, state);\n entries[index] = nextLocation;\n if (v5Compat && listener) {\n listener({\n action,\n location: nextLocation,\n delta: 0\n });\n }\n },\n go(delta) {\n action = Action.Pop;\n let nextIndex = clampIndex(index + delta);\n let nextLocation = entries[nextIndex];\n index = nextIndex;\n if (listener) {\n listener({\n action,\n location: nextLocation,\n delta\n });\n }\n },\n listen(fn) {\n listener = fn;\n return () => {\n listener = null;\n };\n }\n };\n return history;\n}\n/**\n * Browser history stores the location in regular URLs. This is the standard for\n * most web apps, but it requires some configuration on the server to ensure you\n * serve the same app at multiple URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createbrowserhistory\n */\nfunction createBrowserHistory(options) {\n if (options === void 0) {\n options = {};\n }\n function createBrowserLocation(window, globalHistory) {\n let {\n pathname,\n search,\n hash\n } = window.location;\n return createLocation(\"\", {\n pathname,\n search,\n hash\n },\n // state defaults to `null` because `window.history.state` does\n globalHistory.state && globalHistory.state.usr || null, globalHistory.state && globalHistory.state.key || \"default\");\n }\n function createBrowserHref(window, to) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n return getUrlBasedHistory(createBrowserLocation, createBrowserHref, null, options);\n}\n/**\n * Hash history stores the location in window.location.hash. This makes it ideal\n * for situations where you don't want to send the location to the server for\n * some reason, either because you do cannot configure it or the URL space is\n * reserved for something else.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createhashhistory\n */\nfunction createHashHistory(options) {\n if (options === void 0) {\n options = {};\n }\n function createHashLocation(window, globalHistory) {\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\"\n } = parsePath(window.location.hash.substr(1));\n // Hash URL should always have a leading / just like window.location.pathname\n // does, so if an app ends up at a route like /#something then we add a\n // leading slash so all of our path-matching behaves the same as if it would\n // in a browser router. This is particularly important when there exists a\n // root splat route (<Route path=\"*\">) since that matches internally against\n // \"/*\" and we'd expect /#something to 404 in a hash router app.\n if (!pathname.startsWith(\"/\") && !pathname.startsWith(\".\")) {\n pathname = \"/\" + pathname;\n }\n return createLocation(\"\", {\n pathname,\n search,\n hash\n },\n // state defaults to `null` because `window.history.state` does\n globalHistory.state && globalHistory.state.usr || null, globalHistory.state && globalHistory.state.key || \"default\");\n }\n function createHashHref(window, to) {\n let base = window.document.querySelector(\"base\");\n let href = \"\";\n if (base && base.getAttribute(\"href\")) {\n let url = window.location.href;\n let hashIndex = url.indexOf(\"#\");\n href = hashIndex === -1 ? url : url.slice(0, hashIndex);\n }\n return href + \"#\" + (typeof to === \"string\" ? to : createPath(to));\n }\n function validateHashLocation(location, to) {\n warning(location.pathname.charAt(0) === \"/\", \"relative pathnames are not supported in hash history.push(\" + JSON.stringify(to) + \")\");\n }\n return getUrlBasedHistory(createHashLocation, createHashHref, validateHashLocation, options);\n}\nfunction invariant(value, message) {\n if (value === false || value === null || typeof value === \"undefined\") {\n throw new Error(message);\n }\n}\nfunction warning(cond, message) {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n try {\n // Welcome to debugging history!\n //\n // This error is thrown as a convenience, so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\nfunction createKey() {\n return Math.random().toString(36).substr(2, 8);\n}\n/**\n * For browser-based histories, we combine the state and key into an object\n */\nfunction getHistoryState(location, index) {\n return {\n usr: location.state,\n key: location.key,\n idx: index\n };\n}\n/**\n * Creates a Location object with a unique key from the given Path\n */\nfunction createLocation(current, to, state, key) {\n if (state === void 0) {\n state = null;\n }\n let location = _extends({\n pathname: typeof current === \"string\" ? current : current.pathname,\n search: \"\",\n hash: \"\"\n }, typeof to === \"string\" ? parsePath(to) : to, {\n state,\n // TODO: This could be cleaned up. push/replace should probably just take\n // full Locations now and avoid the need to run through this flow at all\n // But that's a pretty big refactor to the current test suite so going to\n // keep as is for the time being and just let any incoming keys take precedence\n key: to && to.key || key || createKey()\n });\n return location;\n}\n/**\n * Creates a string URL path from the given pathname, search, and hash components.\n */\nfunction createPath(_ref) {\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\"\n } = _ref;\n if (search && search !== \"?\") pathname += search.charAt(0) === \"?\" ? search : \"?\" + search;\n if (hash && hash !== \"#\") pathname += hash.charAt(0) === \"#\" ? hash : \"#\" + hash;\n return pathname;\n}\n/**\n * Parses a string URL path into its separate pathname, search, and hash components.\n */\nfunction parsePath(path) {\n let parsedPath = {};\n if (path) {\n let hashIndex = path.indexOf(\"#\");\n if (hashIndex >= 0) {\n parsedPath.hash = path.substr(hashIndex);\n path = path.substr(0, hashIndex);\n }\n let searchIndex = path.indexOf(\"?\");\n if (searchIndex >= 0) {\n parsedPath.search = path.substr(searchIndex);\n path = path.substr(0, searchIndex);\n }\n if (path) {\n parsedPath.pathname = path;\n }\n }\n return parsedPath;\n}\nfunction getUrlBasedHistory(getLocation, createHref, validateLocation, options) {\n if (options === void 0) {\n options = {};\n }\n let {\n window = document.defaultView,\n v5Compat = false\n } = options;\n let globalHistory = window.history;\n let action = Action.Pop;\n let listener = null;\n let index = getIndex();\n // Index should only be null when we initialize. If not, it's because the\n // user called history.pushState or history.replaceState directly, in which\n // case we should log a warning as it will result in bugs.\n if (index == null) {\n index = 0;\n globalHistory.replaceState(_extends({}, globalHistory.state, {\n idx: index\n }), \"\");\n }\n function getIndex() {\n let state = globalHistory.state || {\n idx: null\n };\n return state.idx;\n }\n function handlePop() {\n action = Action.Pop;\n let nextIndex = getIndex();\n let delta = nextIndex == null ? null : nextIndex - index;\n index = nextIndex;\n if (listener) {\n listener({\n action,\n location: history.location,\n delta\n });\n }\n }\n function push(to, state) {\n action = Action.Push;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n index = getIndex() + 1;\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n // try...catch because iOS limits us to 100 pushState calls :/\n try {\n globalHistory.pushState(historyState, \"\", url);\n } catch (error) {\n // If the exception is because `state` can't be serialized, let that throw\n // outwards just like a replace call would so the dev knows the cause\n // https://html.spec.whatwg.org/multipage/nav-history-apis.html#shared-history-push/replace-state-steps\n // https://html.spec.whatwg.org/multipage/structured-data.html#structuredserializeinternal\n if (error instanceof DOMException && error.name === \"DataCloneError\") {\n throw error;\n }\n // They are going to lose state here, but there is no real\n // way to warn them about it since the page will refresh...\n window.location.assign(url);\n }\n if (v5Compat && listener) {\n listener({\n action,\n location: history.location,\n delta: 1\n });\n }\n }\n function replace(to, state) {\n action = Action.Replace;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n index = getIndex();\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n globalHistory.replaceState(historyState, \"\", url);\n if (v5Compat && listener) {\n listener({\n action,\n location: history.location,\n delta: 0\n });\n }\n }\n function createURL(to) {\n // window.location.origin is \"null\" (the literal string value) in Firefox\n // under certain conditions, notably when serving from a local HTML file\n // See https://bugzilla.mozilla.org/show_bug.cgi?id=878297\n let base = window.location.origin !== \"null\" ? window.location.origin : window.location.href;\n let href = typeof to === \"string\" ? to : createPath(to);\n // Treating this as a full URL will strip any trailing spaces so we need to\n // pre-encode them since they might be part of a matching splat param from\n // an ancestor route\n href = href.replace(/ $/, \"%20\");\n invariant(base, \"No window.location.(origin|href) available to create URL for href: \" + href);\n return new URL(href, base);\n }\n let history = {\n get action() {\n return action;\n },\n get location() {\n return getLocation(window, globalHistory);\n },\n listen(fn) {\n if (listener) {\n throw new Error(\"A history only accepts one active listener\");\n }\n window.addEventListener(PopStateEventType, handlePop);\n listener = fn;\n return () => {\n window.removeEventListener(PopStateEventType, handlePop);\n listener = null;\n };\n },\n createHref(to) {\n return createHref(window, to);\n },\n createURL,\n encodeLocation(to) {\n // Encode a Location the same way window.location would\n let url = createURL(to);\n return {\n pathname: url.pathname,\n search: url.search,\n hash: url.hash\n };\n },\n push,\n replace,\n go(n) {\n return globalHistory.go(n);\n }\n };\n return history;\n}\n//#endregion\n\nvar ResultType;\n(function (ResultType) {\n ResultType[\"data\"] = \"data\";\n ResultType[\"deferred\"] = \"deferred\";\n ResultType[\"redirect\"] = \"redirect\";\n ResultType[\"error\"] = \"error\";\n})(ResultType || (ResultType = {}));\nconst immutableRouteKeys = new Set([\"lazy\", \"caseSensitive\", \"path\", \"id\", \"index\", \"children\"]);\nfunction isIndexRoute(route) {\n return route.index === true;\n}\n// Walk the route tree generating unique IDs where necessary, so we are working\n// solely with AgnosticDataRouteObject's within the Router\nfunction convertRoutesToDataRoutes(routes, mapRouteProperties, parentPath, manifest) {\n if (parentPath === void 0) {\n parentPath = [];\n }\n if (manifest === void 0) {\n manifest = {};\n }\n return routes.map((route, index) => {\n let treePath = [...parentPath, index];\n let id = typeof route.id === \"string\" ? route.id : treePath.join(\"-\");\n invariant(route.index !== true || !route.children, \"Cannot specify children on an index route\");\n invariant(!manifest[id], \"Found a route id collision on id \\\"\" + id + \"\\\". Route \" + \"id's must be globally unique within Data Router usages\");\n if (isIndexRoute(route)) {\n let indexRoute = _extends({}, route, mapRouteProperties(route), {\n id\n });\n manifest[id] = indexRoute;\n return indexRoute;\n } else {\n let pathOrLayoutRoute = _extends({}, route, mapRouteProperties(route), {\n id,\n children: undefined\n });\n manifest[id] = pathOrLayoutRoute;\n if (route.children) {\n pathOrLayoutRoute.children = convertRoutesToDataRoutes(route.children, mapRouteProperties, treePath, manifest);\n }\n return pathOrLayoutRoute;\n }\n });\n}\n/**\n * Matches the given routes to a location and returns the match data.\n *\n * @see https://reactrouter.com/utils/match-routes\n */\nfunction matchRoutes(routes, locationArg, basename) {\n if (basename === void 0) {\n basename = \"/\";\n }\n let location = typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n let pathname = stripBasename(location.pathname || \"/\", basename);\n if (pathname == null) {\n return null;\n }\n let branches = flattenRoutes(routes);\n rankRouteBranches(branches);\n let matches = null;\n for (let i = 0; matches == null && i < branches.length; ++i) {\n // Incoming pathnames are generally encoded from either window.location\n // or from router.navigate, but we want to match against the unencoded\n // paths in the route definitions. Memory router locations won't be\n // encoded here but there also shouldn't be anything to decode so this\n // should be a safe operation. This avoids needing matchRoutes to be\n // history-aware.\n let decoded = decodePath(pathname);\n matches = matchRouteBranch(branches[i], decoded);\n }\n return matches;\n}\nfunction convertRouteMatchToUiMatch(match, loaderData) {\n let {\n route,\n pathname,\n params\n } = match;\n return {\n id: route.id,\n pathname,\n params,\n data: loaderData[route.id],\n handle: route.handle\n };\n}\nfunction flattenRoutes(routes, branches, parentsMeta, parentPath) {\n if (branches === void 0) {\n branches = [];\n }\n if (parentsMeta === void 0) {\n parentsMeta = [];\n }\n if (parentPath === void 0) {\n parentPath = \"\";\n }\n let flattenRoute = (route, index, relativePath) => {\n let meta = {\n relativePath: relativePath === undefined ? route.path || \"\" : relativePath,\n caseSensitive: route.caseSensitive === true,\n childrenIndex: index,\n route\n };\n if (meta.relativePath.startsWith(\"/\")) {\n invariant(meta.relativePath.startsWith(parentPath), \"Absolute route path \\\"\" + meta.relativePath + \"\\\" nested under path \" + (\"\\\"\" + parentPath + \"\\\" is not valid. An absolute child route path \") + \"must start with the combined path of all its parent routes.\");\n meta.relativePath = meta.relativePath.slice(parentPath.length);\n }\n let path = joinPaths([parentPath, meta.relativePath]);\n let routesMeta = parentsMeta.concat(meta);\n // Add the children before adding this route to the array, so we traverse the\n // route tree depth-first and child routes appear before their parents in\n // the \"flattened\" version.\n if (route.children && route.children.length > 0) {\n invariant(\n // Our types know better, but runtime JS may not!\n // @ts-expect-error\n route.index !== true, \"Index routes must not have child routes. Please remove \" + (\"all child routes from route path \\\"\" + path + \"\\\".\"));\n flattenRoutes(route.children, branches, routesMeta, path);\n }\n // Routes without a path shouldn't ever match by themselves unless they are\n // index routes, so don't add them to the list of possible branches.\n if (route.path == null && !route.index) {\n return;\n }\n branches.push({\n path,\n score: computeScore(path, route.index),\n routesMeta\n });\n };\n routes.forEach((route, index) => {\n var _route$path;\n // coarse-grain check for optional params\n if (route.path === \"\" || !((_route$path = route.path) != null && _route$path.includes(\"?\"))) {\n flattenRoute(route, index);\n } else {\n for (let exploded of explodeOptionalSegments(route.path)) {\n flattenRoute(route, index, exploded);\n }\n }\n });\n return branches;\n}\n/**\n * Computes all combinations of optional path segments for a given path,\n * excluding combinations that are ambiguous and of lower priority.\n *\n * For example, `/one/:two?/three/:four?/:five?` explodes to:\n * - `/one/three`\n * - `/one/:two/three`\n * - `/one/three/:four`\n * - `/one/three/:five`\n * - `/one/:two/three/:four`\n * - `/one/:two/three/:five`\n * - `/one/three/:four/:five`\n * - `/one/:two/three/:four/:five`\n */\nfunction explodeOptionalSegments(path) {\n let segments = path.split(\"/\");\n if (segments.length === 0) return [];\n let [first, ...rest] = segments;\n // Optional path segments are denoted by a trailing `?`\n let isOptional = first.endsWith(\"?\");\n // Compute the corresponding required segment: `foo?` -> `foo`\n let required = first.replace(/\\?$/, \"\");\n if (rest.length === 0) {\n // Intepret empty string as omitting an optional segment\n // `[\"one\", \"\", \"three\"]` corresponds to omitting `:two` from `/one/:two?/three` -> `/one/three`\n return isOptional ? [required, \"\"] : [required];\n }\n let restExploded = explodeOptionalSegments(rest.join(\"/\"));\n let result = [];\n // All child paths with the prefix. Do this for all children before the\n // optional version for all children, so we get consistent ordering where the\n // parent optional aspect is preferred as required. Otherwise, we can get\n // child sections interspersed where deeper optional segments are higher than\n // parent optional segments, where for example, /:two would explode _earlier_\n // then /:one. By always including the parent as required _for all children_\n // first, we avoid this issue\n result.push(...restExploded.map(subpath => subpath === \"\" ? required : [required, subpath].join(\"/\")));\n // Then, if this is an optional value, add all child versions without\n if (isOptional) {\n result.push(...restExploded);\n }\n // for absolute paths, ensure `/` instead of empty segment\n return result.map(exploded => path.startsWith(\"/\") && exploded === \"\" ? \"/\" : exploded);\n}\nfunction rankRouteBranches(branches) {\n branches.sort((a, b) => a.score !== b.score ? b.score - a.score // Higher score first\n : compareIndexes(a.routesMeta.map(meta => meta.childrenIndex), b.routesMeta.map(meta => meta.childrenIndex)));\n}\nconst paramRe = /^:[\\w-]+$/;\nconst dynamicSegmentValue = 3;\nconst indexRouteValue = 2;\nconst emptySegmentValue = 1;\nconst staticSegmentValue = 10;\nconst splatPenalty = -2;\nconst isSplat = s => s === \"*\";\nfunction computeScore(path, index) {\n let segments = path.split(\"/\");\n let initialScore = segments.length;\n if (segments.some(isSplat)) {\n initialScore += splatPenalty;\n }\n if (index) {\n initialScore += indexRouteValue;\n }\n return segments.filter(s => !isSplat(s)).reduce((score, segment) => score + (paramRe.test(segment) ? dynamicSegmentValue : segment === \"\" ? emptySegmentValue : staticSegmentValue), initialScore);\n}\nfunction compareIndexes(a, b) {\n let siblings = a.length === b.length && a.slice(0, -1).every((n, i) => n === b[i]);\n return siblings ?\n // If two routes are siblings, we should try to match the earlier sibling\n // first. This allows people to have fine-grained control over the matching\n // behavior by simply putting routes with identical paths in the order they\n // want them tried.\n a[a.length - 1] - b[b.length - 1] :\n // Otherwise, it doesn't really make sense to rank non-siblings by index,\n // so they sort equally.\n 0;\n}\nfunction matchRouteBranch(branch, pathname) {\n let {\n routesMeta\n } = branch;\n let matchedParams = {};\n let matchedPathname = \"/\";\n let matches = [];\n for (let i = 0; i < routesMeta.length; ++i) {\n let meta = routesMeta[i];\n let end = i === routesMeta.length - 1;\n let remainingPathname = matchedPathname === \"/\" ? pathname : pathname.slice(matchedPathname.length) || \"/\";\n let match = matchPath({\n path: meta.relativePath,\n caseSensitive: meta.caseSensitive,\n end\n }, remainingPathname);\n if (!match) return null;\n Object.assign(matchedParams, match.params);\n let route = meta.route;\n matches.push({\n // TODO: Can this as be avoided?\n params: matchedParams,\n pathname: joinPaths([matchedPathname, match.pathname]),\n pathnameBase: normalizePathname(joinPaths([matchedPathname, match.pathnameBase])),\n route\n });\n if (match.pathnameBase !== \"/\") {\n matchedPathname = joinPaths([matchedPathname, match.pathnameBase]);\n }\n }\n return matches;\n}\n/**\n * Returns a path with params interpolated.\n *\n * @see https://reactrouter.com/utils/generate-path\n */\nfunction generatePath(originalPath, params) {\n if (params === void 0) {\n params = {};\n }\n let path = originalPath;\n if (path.endsWith(\"*\") && path !== \"*\" && !path.endsWith(\"/*\")) {\n warning(false, \"Route path \\\"\" + path + \"\\\" will be treated as if it were \" + (\"\\\"\" + path.replace(/\\*$/, \"/*\") + \"\\\" because the `*` character must \") + \"always follow a `/` in the pattern. To get rid of this warning, \" + (\"please change the route path to \\\"\" + path.replace(/\\*$/, \"/*\") + \"\\\".\"));\n path = path.replace(/\\*$/, \"/*\");\n }\n // ensure `/` is added at the beginning if the path is absolute\n const prefix = path.startsWith(\"/\") ? \"/\" : \"\";\n const stringify = p => p == null ? \"\" : typeof p === \"string\" ? p : String(p);\n const segments = path.split(/\\/+/).map((segment, index, array) => {\n const isLastSegment = index === array.length - 1;\n // only apply the splat if it's the last segment\n if (isLastSegment && segment === \"*\") {\n const star = \"*\";\n // Apply the splat\n return stringify(params[star]);\n }\n const keyMatch = segment.match(/^:([\\w-]+)(\\??)$/);\n if (keyMatch) {\n const [, key, optional] = keyMatch;\n let param = params[key];\n invariant(optional === \"?\" || param != null, \"Missing \\\":\" + key + \"\\\" param\");\n return stringify(param);\n }\n // Remove any optional markers from optional static segments\n return segment.replace(/\\?$/g, \"\");\n })\n // Remove empty segments\n .filter(segment => !!segment);\n return prefix + segments.join(\"/\");\n}\n/**\n * Performs pattern matching on a URL pathname and returns information about\n * the match.\n *\n * @see https://reactrouter.com/utils/match-path\n */\nfunction matchPath(pattern, pathname) {\n if (typeof pattern === \"string\") {\n pattern = {\n path: pattern,\n caseSensitive: false,\n end: true\n };\n }\n let [matcher, compiledParams] = compilePath(pattern.path, pattern.caseSensitive, pattern.end);\n let match = pathname.match(matcher);\n if (!match) return null;\n let matchedPathname = match[0];\n let pathnameBase = matchedPathname.replace(/(.)\\/+$/, \"$1\");\n let captureGroups = match.slice(1);\n let params = compiledParams.reduce((memo, _ref, index) => {\n let {\n paramName,\n isOptional\n } = _ref;\n // We need to compute the pathnameBase here using the raw splat value\n // instead of using params[\"*\"] later because it will be decoded then\n if (paramName === \"*\") {\n let splatValue = captureGroups[index] || \"\";\n pathnameBase = matchedPathname.slice(0, matchedPathname.length - splatValue.length).replace(/(.)\\/+$/, \"$1\");\n }\n const value = captureGroups[index];\n if (isOptional && !value) {\n memo[paramName] = undefined;\n } else {\n memo[paramName] = (value || \"\").replace(/%2F/g, \"/\");\n }\n return memo;\n }, {});\n return {\n params,\n pathname: matchedPathname,\n pathnameBase,\n pattern\n };\n}\nfunction compilePath(path, caseSensitive, end) {\n if (caseSensitive === void 0) {\n caseSensitive = false;\n }\n if (end === void 0) {\n end = true;\n }\n warning(path === \"*\" || !path.endsWith(\"*\") || path.endsWith(\"/*\"), \"Route path \\\"\" + path + \"\\\" will be treated as if it were \" + (\"\\\"\" + path.replace(/\\*$/, \"/*\") + \"\\\" because the `*` character must \") + \"always follow a `/` in the pattern. To get rid of this warning, \" + (\"please change the route path to \\\"\" + path.replace(/\\*$/, \"/*\") + \"\\\".\"));\n let params = [];\n let regexpSource = \"^\" + path.replace(/\\/*\\*?$/, \"\") // Ignore trailing / and /*, we'll handle it below\n .replace(/^\\/*/, \"/\") // Make sure it has a leading /\n .replace(/[\\\\.*+^${}|()[\\]]/g, \"\\\\$&\") // Escape special regex chars\n .replace(/\\/:([\\w-]+)(\\?)?/g, (_, paramName, isOptional) => {\n params.push({\n paramName,\n isOptional: isOptional != null\n });\n return isOptional ? \"/?([^\\\\/]+)?\" : \"/([^\\\\/]+)\";\n });\n if (path.endsWith(\"*\")) {\n params.push({\n paramName: \"*\"\n });\n regexpSource += path === \"*\" || path === \"/*\" ? \"(.*)$\" // Already matched the initial /, just match the rest\n : \"(?:\\\\/(.+)|\\\\/*)$\"; // Don't include the / in params[\"*\"]\n } else if (end) {\n // When matching to the end, ignore trailing slashes\n regexpSource += \"\\\\/*$\";\n } else if (path !== \"\" && path !== \"/\") {\n // If our path is non-empty and contains anything beyond an initial slash,\n // then we have _some_ form of path in our regex, so we should expect to\n // match only if we find the end of this path segment. Look for an optional\n // non-captured trailing slash (to match a portion of the URL) or the end\n // of the path (if we've matched to the end). We used to do this with a\n // word boundary but that gives false positives on routes like\n // /user-preferences since `-` counts as a word boundary.\n regexpSource += \"(?:(?=\\\\/|$))\";\n } else ;\n let matcher = new RegExp(regexpSource, caseSensitive ? undefined : \"i\");\n return [matcher, params];\n}\nfunction decodePath(value) {\n try {\n return value.split(\"/\").map(v => decodeURIComponent(v).replace(/\\//g, \"%2F\")).join(\"/\");\n } catch (error) {\n warning(false, \"The URL path \\\"\" + value + \"\\\" could not be decoded because it is is a \" + \"malformed URL segment. This is probably due to a bad percent \" + (\"encoding (\" + error + \").\"));\n return value;\n }\n}\n/**\n * @private\n */\nfunction stripBasename(pathname, basename) {\n if (basename === \"/\") return pathname;\n if (!pathname.toLowerCase().startsWith(basename.toLowerCase())) {\n return null;\n }\n // We want to leave trailing slash behavior in the user's control, so if they\n // specify a basename with a trailing slash, we should support it\n let startIndex = basename.endsWith(\"/\") ? basename.length - 1 : basename.length;\n let nextChar = pathname.charAt(startIndex);\n if (nextChar && nextChar !== \"/\") {\n // pathname does not start with basename/\n return null;\n }\n return pathname.slice(startIndex) || \"/\";\n}\n/**\n * Returns a resolved path object relative to the given pathname.\n *\n * @see https://reactrouter.com/utils/resolve-path\n */\nfunction resolvePath(to, fromPathname) {\n if (fromPathname === void 0) {\n fromPathname = \"/\";\n }\n let {\n pathname: toPathname,\n search = \"\",\n hash = \"\"\n } = typeof to === \"string\" ? parsePath(to) : to;\n let pathname = toPathname ? toPathname.startsWith(\"/\") ? toPathname : resolvePathname(toPathname, fromPathname) : fromPathname;\n return {\n pathname,\n search: normalizeSearch(search),\n hash: normalizeHash(hash)\n };\n}\nfunction resolvePathname(relativePath, fromPathname) {\n let segments = fromPathname.replace(/\\/+$/, \"\").split(\"/\");\n let relativeSegments = relativePath.split(\"/\");\n relativeSegments.forEach(segment => {\n if (segment === \"..\") {\n // Keep the root \"\" segment so the pathname starts at /\n if (segments.length > 1) segments.pop();\n } else if (segment !== \".\") {\n segments.push(segment);\n }\n });\n return segments.length > 1 ? segments.join(\"/\") : \"/\";\n}\nfunction getInvalidPathError(char, field, dest, path) {\n return \"Cannot include a '\" + char + \"' character in a manually specified \" + (\"`to.\" + field + \"` field [\" + JSON.stringify(path) + \"]. Please separate it out to the \") + (\"`to.\" + dest + \"` field. Alternatively you may provide the full path as \") + \"a string in <Link to=\\\"...\\\"> and the router will parse it for you.\";\n}\n/**\n * @private\n *\n * When processing relative navigation we want to ignore ancestor routes that\n * do not contribute to the path, such that index/pathless layout routes don't\n * interfere.\n *\n * For example, when moving a route element into an index route and/or a\n * pathless layout route, relative link behavior contained within should stay\n * the same. Both of the following examples should link back to the root:\n *\n * <Route path=\"/\">\n * <Route path=\"accounts\" element={<Link to=\"..\"}>\n * </Route>\n *\n * <Route path=\"/\">\n * <Route path=\"accounts\">\n * <Route element={<AccountsLayout />}> // <-- Does not contribute\n * <Route index element={<Link to=\"..\"} /> // <-- Does not contribute\n * </Route\n * </Route>\n * </Route>\n */\nfunction getPathContributingMatches(matches) {\n return matches.filter((match, index) => index === 0 || match.route.path && match.route.path.length > 0);\n}\n// Return the array of pathnames for the current route matches - used to\n// generate the routePathnames input for resolveTo()\nfunction getResolveToMatches(matches, v7_relativeSplatPath) {\n let pathMatches = getPathContributingMatches(matches);\n // When v7_relativeSplatPath is enabled, use the full pathname for the leaf\n // match so we include splat values for \".\" links. See:\n // https://github.com/remix-run/react-router/issues/11052#issuecomment-1836589329\n if (v7_relativeSplatPath) {\n return pathMatches.map((match, idx) => idx === matches.length - 1 ? match.pathname : match.pathnameBase);\n }\n return pathMatches.map(match => match.pathnameBase);\n}\n/**\n * @private\n */\nfunction resolveTo(toArg, routePathnames, locationPathname, isPathRelative) {\n if (isPathRelative === void 0) {\n isPathRelative = false;\n }\n let to;\n if (typeof toArg === \"string\") {\n to = parsePath(toArg);\n } else {\n to = _extends({}, toArg);\n invariant(!to.pathname || !to.pathname.includes(\"?\"), getInvalidPathError(\"?\", \"pathname\", \"search\", to));\n invariant(!to.pathname || !to.pathname.includes(\"#\"), getInvalidPathError(\"#\", \"pathname\", \"hash\", to));\n invariant(!to.search || !to.search.includes(\"#\"), getInvalidPathError(\"#\", \"search\", \"hash\", to));\n }\n let isEmptyPath = toArg === \"\" || to.pathname === \"\";\n let toPathname = isEmptyPath ? \"/\" : to.pathname;\n let from;\n // Routing is relative to the current pathname if explicitly requested.\n //\n // If a pathname is explicitly provided in `to`, it should be relative to the\n // route context. This is explained in `Note on `<Link to>` values` in our\n // migration guide from v5 as a means of disambiguation between `to` values\n // that begin with `/` and those that do not. However, this is problematic for\n // `to` values that do not provide a pathname. `to` can simply be a search or\n // hash string, in which case we should assume that the navigation is relative\n // to the current location's pathname and *not* the route pathname.\n if (toPathname == null) {\n from = locationPathname;\n } else {\n let routePathnameIndex = routePathnames.length - 1;\n // With relative=\"route\" (the default), each leading .. segment means\n // \"go up one route\" instead of \"go up one URL segment\". This is a key\n // difference from how <a href> works and a major reason we call this a\n // \"to\" value instead of a \"href\".\n if (!isPathRelative && toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\");\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n to.pathname = toSegments.join(\"/\");\n }\n from = routePathnameIndex >= 0 ? routePathnames[routePathnameIndex] : \"/\";\n }\n let path = resolvePath(to, from);\n // Ensure the pathname has a trailing slash if the original \"to\" had one\n let hasExplicitTrailingSlash = toPathname && toPathname !== \"/\" && toPathname.endsWith(\"/\");\n // Or if this was a link to the current path which has a trailing slash\n let hasCurrentTrailingSlash = (isEmptyPath || toPathname === \".\") && locationPathname.endsWith(\"/\");\n if (!path.pathname.endsWith(\"/\") && (hasExplicitTrailingSlash || hasCurrentTrailingSlash)) {\n path.pathname += \"/\";\n }\n return path;\n}\n/**\n * @private\n */\nfunction getToPathname(to) {\n // Empty strings should be treated the same as / paths\n return to === \"\" || to.pathname === \"\" ? \"/\" : typeof to === \"string\" ? parsePath(to).pathname : to.pathname;\n}\n/**\n * @private\n */\nconst joinPaths = paths => paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\n/**\n * @private\n */\nconst normalizePathname = pathname => pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\n/**\n * @private\n */\nconst normalizeSearch = search => !search || search === \"?\" ? \"\" : search.startsWith(\"?\") ? search : \"?\" + search;\n/**\n * @private\n */\nconst normalizeHash = hash => !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\n/**\n * This is a shortcut for creating `application/json` responses. Converts `data`\n * to JSON and sets the `Content-Type` header.\n */\nconst json = function json(data, init) {\n if (init === void 0) {\n init = {};\n }\n let responseInit = typeof init === \"number\" ? {\n status: init\n } : init;\n let headers = new Headers(responseInit.headers);\n if (!headers.has(\"Content-Type\")) {\n headers.set(\"Content-Type\", \"application/json; charset=utf-8\");\n }\n return new Response(JSON.stringify(data), _extends({}, responseInit, {\n headers\n }));\n};\nclass AbortedDeferredError extends Error {}\nclass DeferredData {\n constructor(data, responseInit) {\n this.pendingKeysSet = new Set();\n this.subscribers = new Set();\n this.deferredKeys = [];\n invariant(data && typeof data === \"object\" && !Array.isArray(data), \"defer() only accepts plain objects\");\n // Set up an AbortController + Promise we can race against to exit early\n // cancellation\n let reject;\n this.abortPromise = new Promise((_, r) => reject = r);\n this.controller = new AbortController();\n let onAbort = () => reject(new AbortedDeferredError(\"Deferred data aborted\"));\n this.unlistenAbortSignal = () => this.controller.signal.removeEventListener(\"abort\", onAbort);\n this.controller.signal.addEventListener(\"abort\", onAbort);\n this.data = Object.entries(data).reduce((acc, _ref2) => {\n let [key, value] = _ref2;\n return Object.assign(acc, {\n [key]: this.trackPromise(key, value)\n });\n }, {});\n if (this.done) {\n // All incoming values were resolved\n this.unlistenAbortSignal();\n }\n this.init = responseInit;\n }\n trackPromise(key, value) {\n if (!(value instanceof Promise)) {\n return value;\n }\n this.deferredKeys.push(key);\n this.pendingKeysSet.add(key);\n // We store a little wrapper promise that will be extended with\n // _data/_error props upon resolve/reject\n let promise = Promise.race([value, this.abortPromise]).then(data => this.onSettle(promise, key, undefined, data), error => this.onSettle(promise, key, error));\n // Register rejection listeners to avoid uncaught promise rejections on\n // errors or aborted deferred values\n promise.catch(() => {});\n Object.defineProperty(promise, \"_tracked\", {\n get: () => true\n });\n return promise;\n }\n onSettle(promise, key, error, data) {\n if (this.controller.signal.aborted && error instanceof AbortedDeferredError) {\n this.unlistenAbortSignal();\n Object.defineProperty(promise, \"_error\", {\n get: () => error\n });\n return Promise.reject(error);\n }\n this.pendingKeysSet.delete(key);\n if (this.done) {\n // Nothing left to abort!\n this.unlistenAbortSignal();\n }\n // If the promise was resolved/rejected with undefined, we'll throw an error as you\n // should always resolve with a value or null\n if (error === undefined && data === undefined) {\n let undefinedError = new Error(\"Deferred data for key \\\"\" + key + \"\\\" resolved/rejected with `undefined`, \" + \"you must resolve/reject with a value or `null`.\");\n Object.defineProperty(promise, \"_error\", {\n get: () => undefinedError\n });\n this.emit(false, key);\n return Promise.reject(undefinedError);\n }\n if (data === undefined) {\n Object.defineProperty(promise, \"_error\", {\n get: () => error\n });\n this.emit(false, key);\n return Promise.reject(error);\n }\n Object.defineProperty(promise, \"_data\", {\n get: () => data\n });\n this.emit(false, key);\n return data;\n }\n emit(aborted, settledKey) {\n this.subscribers.forEach(subscriber => subscriber(aborted, settledKey));\n }\n subscribe(fn) {\n this.subscribers.add(fn);\n return () => this.subscribers.delete(fn);\n }\n cancel() {\n this.controller.abort();\n this.pendingKeysSet.forEach((v, k) => this.pendingKeysSet.delete(k));\n this.emit(true);\n }\n async resolveData(signal) {\n let aborted = false;\n if (!this.done) {\n let onAbort = () => this.cancel();\n signal.addEventListener(\"abort\", onAbort);\n aborted = await new Promise(resolve => {\n this.subscribe(aborted => {\n signal.removeEventListener(\"abort\", onAbort);\n if (aborted || this.done) {\n resolve(aborted);\n }\n });\n });\n }\n return aborted;\n }\n get done() {\n return this.pendingKeysSet.size === 0;\n }\n get unwrappedData() {\n invariant(this.data !== null && this.done, \"Can only unwrap data on initialized and settled deferreds\");\n return Object.entries(this.data).reduce((acc, _ref3) => {\n let [key, value] = _ref3;\n return Object.assign(acc, {\n [key]: unwrapTrackedPromise(value)\n });\n }, {});\n }\n get pendingKeys() {\n return Array.from(this.pendingKeysSet);\n }\n}\nfunction isTrackedPromise(value) {\n return value instanceof Promise && value._tracked === true;\n}\nfunction unwrapTrackedPromise(value) {\n if (!isTrackedPromise(value)) {\n return value;\n }\n if (value._error) {\n throw value._error;\n }\n return value._data;\n}\nconst defer = function defer(data, init) {\n if (init === void 0) {\n init = {};\n }\n let responseInit = typeof init === \"number\" ? {\n status: init\n } : init;\n return new DeferredData(data, responseInit);\n};\n/**\n * A redirect response. Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nconst redirect = function redirect(url, init) {\n if (init === void 0) {\n init = 302;\n }\n let responseInit = init;\n if (typeof responseInit === \"number\") {\n responseInit = {\n status: responseInit\n };\n } else if (typeof responseInit.status === \"undefined\") {\n responseInit.status = 302;\n }\n let headers = new Headers(responseInit.headers);\n headers.set(\"Location\", url);\n return new Response(null, _extends({}, responseInit, {\n headers\n }));\n};\n/**\n * A redirect response that will force a document reload to the new location.\n * Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nconst redirectDocument = (url, init) => {\n let response = redirect(url, init);\n response.headers.set(\"X-Remix-Reload-Document\", \"true\");\n return response;\n};\n/**\n * @private\n * Utility class we use to hold auto-unwrapped 4xx/5xx Response bodies\n *\n * We don't export the class for public use since it's an implementation\n * detail, but we export the interface above so folks can build their own\n * abstractions around instances via isRouteErrorResponse()\n */\nclass ErrorResponseImpl {\n constructor(status, statusText, data, internal) {\n if (internal === void 0) {\n internal = false;\n }\n this.status = status;\n this.statusText = statusText || \"\";\n this.internal = internal;\n if (data instanceof Error) {\n this.data = data.toString();\n this.error = data;\n } else {\n this.data = data;\n }\n }\n}\n/**\n * Check if the given error is an ErrorResponse generated from a 4xx/5xx\n * Response thrown from an action/loader\n */\nfunction isRouteErrorResponse(error) {\n return error != null && typeof error.status === \"number\" && typeof error.statusText === \"string\" && typeof error.internal === \"boolean\" && \"data\" in error;\n}\n\nconst validMutationMethodsArr = [\"post\", \"put\", \"patch\", \"delete\"];\nconst validMutationMethods = new Set(validMutationMethodsArr);\nconst validRequestMethodsArr = [\"get\", ...validMutationMethodsArr];\nconst validRequestMethods = new Set(validRequestMethodsArr);\nconst redirectStatusCodes = new Set([301, 302, 303, 307, 308]);\nconst redirectPreserveMethodStatusCodes = new Set([307, 308]);\nconst IDLE_NAVIGATION = {\n state: \"idle\",\n location: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined\n};\nconst IDLE_FETCHER = {\n state: \"idle\",\n data: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined\n};\nconst IDLE_BLOCKER = {\n state: \"unblocked\",\n proceed: undefined,\n reset: undefined,\n location: undefined\n};\nconst ABSOLUTE_URL_REGEX = /^(?:[a-z][a-z0-9+.-]*:|\\/\\/)/i;\nconst defaultMapRouteProperties = route => ({\n hasErrorBoundary: Boolean(route.hasErrorBoundary)\n});\nconst TRANSITIONS_STORAGE_KEY = \"remix-router-transitions\";\n//#endregion\n////////////////////////////////////////////////////////////////////////////////\n//#region createRouter\n////////////////////////////////////////////////////////////////////////////////\n/**\n * Create a router and listen to history POP navigations\n */\nfunction createRouter(init) {\n const routerWindow = init.window ? init.window : typeof window !== \"undefined\" ? window : undefined;\n const isBrowser = typeof routerWindow !== \"undefined\" && typeof routerWindow.document !== \"undefined\" && typeof routerWindow.document.createElement !== \"undefined\";\n const isServer = !isBrowser;\n invariant(init.routes.length > 0, \"You must provide a non-empty routes array to createRouter\");\n let mapRouteProperties;\n if (init.mapRouteProperties) {\n mapRouteProperties = init.mapRouteProperties;\n } else if (init.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = init.detectErrorBoundary;\n mapRouteProperties = route => ({\n hasErrorBoundary: detectErrorBoundary(route)\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n // Routes keyed by ID\n let manifest = {};\n // Routes in tree format for matching\n let dataRoutes = convertRoutesToDataRoutes(init.routes, mapRouteProperties, undefined, manifest);\n let inFlightDataRoutes;\n let basename = init.basename || \"/\";\n // Config driven behavior flags\n let future = _extends({\n v7_fetcherPersist: false,\n v7_normalizeFormMethod: false,\n v7_partialHydration: false,\n v7_prependBasename: false,\n v7_relativeSplatPath: false\n }, init.future);\n // Cleanup function for history\n let unlistenHistory = null;\n // Externally-provided functions to call on all state changes\n let subscribers = new Set();\n // Externally-provided object to hold scroll restoration locations during routing\n let savedScrollPositions = null;\n // Externally-provided function to get scroll restoration keys\n let getScrollRestorationKey = null;\n // Externally-provided function to get current scroll position\n let getScrollPosition = null;\n // One-time flag to control the initial hydration scroll restoration. Because\n // we don't get the saved positions from <ScrollRestoration /> until _after_\n // the initial render, we need to manually trigger a separate updateState to\n // send along the restoreScrollPosition\n // Set to true if we have `hydrationData` since we assume we were SSR'd and that\n // SSR did the initial scroll restoration.\n let initialScrollRestored = init.hydrationData != null;\n let initialMatches = matchRoutes(dataRoutes, init.history.location, basename);\n let initialErrors = null;\n if (initialMatches == null) {\n // If we do not match a user-provided-route, fall back to the root\n // to allow the error boundary to take over\n let error = getInternalRouterError(404, {\n pathname: init.history.location.pathname\n });\n let {\n matches,\n route\n } = getShortCircuitMatches(dataRoutes);\n initialMatches = matches;\n initialErrors = {\n [route.id]: error\n };\n }\n let initialized;\n let hasLazyRoutes = initialMatches.some(m => m.route.lazy);\n let hasLoaders = initialMatches.some(m => m.route.loader);\n if (hasLazyRoutes) {\n // All initialMatches need to be loaded before we're ready. If we have lazy\n // functions around still then we'll need to run them in initialize()\n initialized = false;\n } else if (!hasLoaders) {\n // If we've got no loaders to run, then we're good to go\n initialized = true;\n } else if (future.v7_partialHydration) {\n // If partial hydration is enabled, we're initialized so long as we were\n // provided with hydrationData for every route with a loader, and no loaders\n // were marked for explicit hydration\n let loaderData = init.hydrationData ? init.hydrationData.loaderData : null;\n let errors = init.hydrationData ? init.hydrationData.errors : null;\n let isRouteInitialized = m => {\n // No loader, nothing to initialize\n if (!m.route.loader) return true;\n // Explicitly opting-in to running on hydration\n if (m.route.loader.hydrate === true) return false;\n // Otherwise, initialized if hydrated with data or an error\n return loaderData && loaderData[m.route.id] !== undefined || errors && errors[m.route.id] !== undefined;\n };\n // If errors exist, don't consider routes below the boundary\n if (errors) {\n let idx = initialMatches.findIndex(m => errors[m.route.id] !== undefined);\n initialized = initialMatches.slice(0, idx + 1).every(isRouteInitialized);\n } else {\n initialized = initialMatches.every(isRouteInitialized);\n }\n } else {\n // Without partial hydration - we're initialized if we were provided any\n // hydrationData - which is expected to be complete\n initialized = init.hydrationData != null;\n }\n let router;\n let state = {\n historyAction: init.history.action,\n location: init.history.location,\n matches: initialMatches,\n initialized,\n navigation: IDLE_NAVIGATION,\n // Don't restore on initial updateState() if we were SSR'd\n restoreScrollPosition: init.hydrationData != null ? false : null,\n preventScrollReset: false,\n revalidation: \"idle\",\n loaderData: init.hydrationData && init.hydrationData.loaderData || {},\n actionData: init.hydrationData && init.hydrationData.actionData || null,\n errors: init.hydrationData && init.hydrationData.errors || initialErrors,\n fetchers: new Map(),\n blockers: new Map()\n };\n // -- Stateful internal variables to manage navigations --\n // Current navigation in progress (to be committed in completeNavigation)\n let pendingAction = Action.Pop;\n // Should the current navigation prevent the scroll reset if scroll cannot\n // be restored?\n let pendingPreventScrollReset = false;\n // AbortController for the active navigation\n let pendingNavigationController;\n // Should the current navigation enable document.startViewTransition?\n let pendingViewTransitionEnabled = false;\n // Store applied view transitions so we can apply them on POP\n let appliedViewTransitions = new Map();\n // Cleanup function for persisting applied transitions to sessionStorage\n let removePageHideEventListener = null;\n // We use this to avoid touching history in completeNavigation if a\n // revalidation is entirely uninterrupted\n let isUninterruptedRevalidation = false;\n // Use this internal flag to force revalidation of all loaders:\n // - submissions (completed or interrupted)\n // - useRevalidator()\n // - X-Remix-Revalidate (from redirect)\n let isRevalidationRequired = false;\n // Use this internal array to capture routes that require revalidation due\n // to a cancelled deferred on action submission\n let cancelledDeferredRoutes = [];\n // Use this internal array to capture fetcher loads that were cancelled by an\n // action navigation and require revalidation\n let cancelledFetcherLoads = [];\n // AbortControllers for any in-flight fetchers\n let fetchControllers = new Map();\n // Track loads based on the order in which they started\n let incrementingLoadId = 0;\n // Track the outstanding pending navigation data load to be compared against\n // the globally incrementing load when a fetcher load lands after a completed\n // navigation\n let pendingNavigationLoadId = -1;\n // Fetchers that triggered data reloads as a result of their actions\n let fetchReloadIds = new Map();\n // Fetchers that triggered redirect navigations\n let fetchRedirectIds = new Set();\n // Most recent href/match for fetcher.load calls for fetchers\n let fetchLoadMatches = new Map();\n // Ref-count mounted fetchers so we know when it's ok to clean them up\n let activeFetchers = new Map();\n // Fetchers that have requested a delete when using v7_fetcherPersist,\n // they'll be officially removed after they return to idle\n let deletedFetchers = new Set();\n // Store DeferredData instances for active route matches. When a\n // route loader returns defer() we stick one in here. Then, when a nested\n // promise resolves we update loaderData. If a new navigation starts we\n // cancel active deferreds for eliminated routes.\n let activeDeferreds = new Map();\n // Store blocker functions in a separate Map outside of router state since\n // we don't need to update UI state if they change\n let blockerFunctions = new Map();\n // Flag to ignore the next history update, so we can revert the URL change on\n // a POP navigation that was blocked by the user without touching router state\n let ignoreNextHistoryUpdate = false;\n // Initialize the router, all side effects should be kicked off from here.\n // Implemented as a Fluent API for ease of:\n // let router = createRouter(init).initialize();\n function initialize() {\n // If history informs us of a POP navigation, start the navigation but do not update\n // state. We'll update our own state once the navigation completes\n unlistenHistory = init.history.listen(_ref => {\n let {\n action: historyAction,\n location,\n delta\n } = _ref;\n // Ignore this event if it was just us resetting the URL from a\n // blocked POP navigation\n if (ignoreNextHistoryUpdate) {\n ignoreNextHistoryUpdate = false;\n return;\n }\n warning(blockerFunctions.size === 0 || delta != null, \"You are trying to use a blocker on a POP navigation to a location \" + \"that was not created by @remix-run/router. This will fail silently in \" + \"production. This can happen if you are navigating outside the router \" + \"via `window.history.pushState`/`window.location.hash` instead of using \" + \"router navigation APIs. This can also happen if you are using \" + \"createHashRouter and the user manually changes the URL.\");\n let blockerKey = shouldBlockNavigation({\n currentLocation: state.location,\n nextLocation: location,\n historyAction\n });\n if (blockerKey && delta != null) {\n // Restore the URL to match the current UI, but don't update router state\n ignoreNextHistoryUpdate = true;\n init.history.go(delta * -1);\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location,\n proceed() {\n updateBlocker(blockerKey, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location\n });\n // Re-do the same POP navigation we just blocked\n init.history.go(delta);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey, IDLE_BLOCKER);\n updateState({\n blockers\n });\n }\n });\n return;\n }\n return startNavigation(historyAction, location);\n });\n if (isBrowser) {\n // FIXME: This feels gross. How can we cleanup the lines between\n // scrollRestoration/appliedTransitions persistance?\n restoreAppliedTransitions(routerWindow, appliedViewTransitions);\n let _saveAppliedTransitions = () => persistAppliedTransitions(routerWindow, appliedViewTransitions);\n routerWindow.addEventListener(\"pagehide\", _saveAppliedTransitions);\n removePageHideEventListener = () => routerWindow.removeEventListener(\"pagehide\", _saveAppliedTransitions);\n }\n // Kick off initial data load if needed. Use Pop to avoid modifying history\n // Note we don't do any handling of lazy here. For SPA's it'll get handled\n // in the normal navigation flow. For SSR it's expected that lazy modules are\n // resolved prior to router creation since we can't go into a fallbackElement\n // UI for SSR'd apps\n if (!state.initialized) {\n startNavigation(Action.Pop, state.location, {\n initialHydration: true\n });\n }\n return router;\n }\n // Clean up a router and it's side effects\n function dispose() {\n if (unlistenHistory) {\n unlistenHistory();\n }\n if (removePageHideEventListener) {\n removePageHideEventListener();\n }\n subscribers.clear();\n pendingNavigationController && pendingNavigationController.abort();\n state.fetchers.forEach((_, key) => deleteFetcher(key));\n state.blockers.forEach((_, key) => deleteBlocker(key));\n }\n // Subscribe to state updates for the router\n function subscribe(fn) {\n subscribers.add(fn);\n return () => subscribers.delete(fn);\n }\n // Update our state and notify the calling context of the change\n function updateState(newState, opts) {\n if (opts === void 0) {\n opts = {};\n }\n state = _extends({}, state, newState);\n // Prep fetcher cleanup so we can tell the UI which fetcher data entries\n // can be removed\n let completedFetchers = [];\n let deletedFetchersKeys = [];\n if (future.v7_fetcherPersist) {\n state.fetchers.forEach((fetcher, key) => {\n if (fetcher.state === \"idle\") {\n if (deletedFetchers.has(key)) {\n // Unmounted from the UI and can be totally removed\n deletedFetchersKeys.push(key);\n } else {\n // Returned to idle but still mounted in the UI, so semi-remains for\n // revalidations and such\n completedFetchers.push(key);\n }\n }\n });\n }\n // Iterate over a local copy so that if flushSync is used and we end up\n // removing and adding a new subscriber due to the useCallback dependencies,\n // we don't get ourselves into a loop calling the new subscriber immediately\n [...subscribers].forEach(subscriber => subscriber(state, {\n deletedFetchers: deletedFetchersKeys,\n unstable_viewTransitionOpts: opts.viewTransitionOpts,\n unstable_flushSync: opts.flushSync === true\n }));\n // Remove idle fetchers from state since we only care about in-flight fetchers.\n if (future.v7_fetcherPersist) {\n completedFetchers.forEach(key => state.fetchers.delete(key));\n deletedFetchersKeys.forEach(key => deleteFetcher(key));\n }\n }\n // Complete a navigation returning the state.navigation back to the IDLE_NAVIGATION\n // and setting state.[historyAction/location/matches] to the new route.\n // - Location is a required param\n // - Navigation will always be set to IDLE_NAVIGATION\n // - Can pass any other state in newState\n function completeNavigation(location, newState, _temp) {\n var _location$state, _location$state2;\n let {\n flushSync\n } = _temp === void 0 ? {} : _temp;\n // Deduce if we're in a loading/actionReload state:\n // - We have committed actionData in the store\n // - The current navigation was a mutation submission\n // - We're past the submitting state and into the loading state\n // - The location being loaded is not the result of a redirect\n let isActionReload = state.actionData != null && state.navigation.formMethod != null && isMutationMethod(state.navigation.formMethod) && state.navigation.state === \"loading\" && ((_location$state = location.state) == null ? void 0 : _location$state._isRedirect) !== true;\n let actionData;\n if (newState.actionData) {\n if (Object.keys(newState.actionData).length > 0) {\n actionData = newState.actionData;\n } else {\n // Empty actionData -> clear prior actionData due to an action error\n actionData = null;\n }\n } else if (isActionReload) {\n // Keep the current data if we're wrapping up the action reload\n actionData = state.actionData;\n } else {\n // Clear actionData on any other completed navigations\n actionData = null;\n }\n // Always preserve any existing loaderData from re-used routes\n let loaderData = newState.loaderData ? mergeLoaderData(state.loaderData, newState.loaderData, newState.matches || [], newState.errors) : state.loaderData;\n // On a successful navigation we can assume we got through all blockers\n // so we can start fresh\n let blockers = state.blockers;\n if (blockers.size > 0) {\n blockers = new Map(blockers);\n blockers.forEach((_, k) => blockers.set(k, IDLE_BLOCKER));\n }\n // Always respect the user flag. Otherwise don't reset on mutation\n // submission navigations unless they redirect\n let preventScrollReset = pendingPreventScrollReset === true || state.navigation.formMethod != null && isMutationMethod(state.navigation.formMethod) && ((_location$state2 = location.state) == null ? void 0 : _location$state2._isRedirect) !== true;\n if (inFlightDataRoutes) {\n dataRoutes = inFlightDataRoutes;\n inFlightDataRoutes = undefined;\n }\n if (isUninterruptedRevalidation) ; else if (pendingAction === Action.Pop) ; else if (pendingAction === Action.Push) {\n init.history.push(location, location.state);\n } else if (pendingAction === Action.Replace) {\n init.history.replace(location, location.state);\n }\n let viewTransitionOpts;\n // On POP, enable transitions if they were enabled on the original navigation\n if (pendingAction === Action.Pop) {\n // Forward takes precedence so they behave like the original navigation\n let priorPaths = appliedViewTransitions.get(state.location.pathname);\n if (priorPaths && priorPaths.has(location.pathname)) {\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location\n };\n } else if (appliedViewTransitions.has(location.pathname)) {\n // If we don't have a previous forward nav, assume we're popping back to\n // the new location and enable if that location previously enabled\n viewTransitionOpts = {\n currentLocation: location,\n nextLocation: state.location\n };\n }\n } else if (pendingViewTransitionEnabled) {\n // Store the applied transition on PUSH/REPLACE\n let toPaths = appliedViewTransitions.get(state.location.pathname);\n if (toPaths) {\n toPaths.add(location.pathname);\n } else {\n toPaths = new Set([location.pathname]);\n appliedViewTransitions.set(state.location.pathname, toPaths);\n }\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location\n };\n }\n updateState(_extends({}, newState, {\n actionData,\n loaderData,\n historyAction: pendingAction,\n location,\n initialized: true,\n navigation: IDLE_NAVIGATION,\n revalidation: \"idle\",\n restoreScrollPosition: getSavedScrollPosition(location, newState.matches || state.matches),\n preventScrollReset,\n blockers\n }), {\n viewTransitionOpts,\n flushSync: flushSync === true\n });\n // Reset stateful navigation vars\n pendingAction = Action.Pop;\n pendingPreventScrollReset = false;\n pendingViewTransitionEnabled = false;\n isUninterruptedRevalidation = false;\n isRevalidationRequired = false;\n cancelledDeferredRoutes = [];\n cancelledFetcherLoads = [];\n }\n // Trigger a navigation event, which can either be a numerical POP or a PUSH\n // replace with an optional submission\n async function navigate(to, opts) {\n if (typeof to === \"number\") {\n init.history.go(to);\n return;\n }\n let normalizedPath = normalizeTo(state.location, state.matches, basename, future.v7_prependBasename, to, future.v7_relativeSplatPath, opts == null ? void 0 : opts.fromRouteId, opts == null ? void 0 : opts.relative);\n let {\n path,\n submission,\n error\n } = normalizeNavigateOptions(future.v7_normalizeFormMethod, false, normalizedPath, opts);\n let currentLocation = state.location;\n let nextLocation = createLocation(state.location, path, opts && opts.state);\n // When using navigate as a PUSH/REPLACE we aren't reading an already-encoded\n // URL from window.location, so we need to encode it here so the behavior\n // remains the same as POP and non-data-router usages. new URL() does all\n // the same encoding we'd get from a history.pushState/window.location read\n // without having to touch history\n nextLocation = _extends({}, nextLocation, init.history.encodeLocation(nextLocation));\n let userReplace = opts && opts.replace != null ? opts.replace : undefined;\n let historyAction = Action.Push;\n if (userReplace === true) {\n historyAction = Action.Replace;\n } else if (userReplace === false) ; else if (submission != null && isMutationMethod(submission.formMethod) && submission.formAction === state.location.pathname + state.location.search) {\n // By default on submissions to the current location we REPLACE so that\n // users don't have to double-click the back button to get to the prior\n // location. If the user redirects to a different location from the\n // action/loader this will be ignored and the redirect will be a PUSH\n historyAction = Action.Replace;\n }\n let preventScrollReset = opts && \"preventScrollReset\" in opts ? opts.preventScrollReset === true : undefined;\n let flushSync = (opts && opts.unstable_flushSync) === true;\n let blockerKey = shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction\n });\n if (blockerKey) {\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location: nextLocation,\n proceed() {\n updateBlocker(blockerKey, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location: nextLocation\n });\n // Send the same navigation through\n navigate(to, opts);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey, IDLE_BLOCKER);\n updateState({\n blockers\n });\n }\n });\n return;\n }\n return await startNavigation(historyAction, nextLocation, {\n submission,\n // Send through the formData serialization error if we have one so we can\n // render at the right error boundary after we match routes\n pendingError: error,\n preventScrollReset,\n replace: opts && opts.replace,\n enableViewTransition: opts && opts.unstable_viewTransition,\n flushSync\n });\n }\n // Revalidate all current loaders. If a navigation is in progress or if this\n // is interrupted by a navigation, allow this to \"succeed\" by calling all\n // loaders during the next loader round\n function revalidate() {\n interruptActiveLoads();\n updateState({\n revalidation: \"loading\"\n });\n // If we're currently submitting an action, we don't need to start a new\n // navigation, we'll just let the follow up loader execution call all loaders\n if (state.navigation.state === \"submitting\") {\n return;\n }\n // If we're currently in an idle state, start a new navigation for the current\n // action/location and mark it as uninterrupted, which will skip the history\n // update in completeNavigation\n if (state.navigation.state === \"idle\") {\n startNavigation(state.historyAction, state.location, {\n startUninterruptedRevalidation: true\n });\n return;\n }\n // Otherwise, if we're currently in a loading state, just start a new\n // navigation to the navigation.location but do not trigger an uninterrupted\n // revalidation so that history correctly updates once the navigation completes\n startNavigation(pendingAction || state.historyAction, state.navigation.location, {\n overrideNavigation: state.navigation\n });\n }\n // Start a navigation to the given action/location. Can optionally provide a\n // overrideNavigation which will override the normalLoad in the case of a redirect\n // navigation\n async function startNavigation(historyAction, location, opts) {\n // Abort any in-progress navigations and start a new one. Unset any ongoing\n // uninterrupted revalidations unless told otherwise, since we want this\n // new navigation to update history normally\n pendingNavigationController && pendingNavigationController.abort();\n pendingNavigationController = null;\n pendingAction = historyAction;\n isUninterruptedRevalidation = (opts && opts.startUninterruptedRevalidation) === true;\n // Save the current scroll position every time we start a new navigation,\n // and track whether we should reset scroll on completion\n saveScrollPosition(state.location, state.matches);\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n pendingViewTransitionEnabled = (opts && opts.enableViewTransition) === true;\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let loadingNavigation = opts && opts.overrideNavigation;\n let matches = matchRoutes(routesToUse, location, basename);\n let flushSync = (opts && opts.flushSync) === true;\n // Short circuit with a 404 on the root error boundary if we match nothing\n if (!matches) {\n let error = getInternalRouterError(404, {\n pathname: location.pathname\n });\n let {\n matches: notFoundMatches,\n route\n } = getShortCircuitMatches(routesToUse);\n // Cancel all pending deferred on 404s since we don't keep any routes\n cancelActiveDeferreds();\n completeNavigation(location, {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error\n }\n }, {\n flushSync\n });\n return;\n }\n // Short circuit if it's only a hash change and not a revalidation or\n // mutation submission.\n //\n // Ignore on initial page loads because since the initial load will always\n // be \"same hash\". For example, on /page#hash and submit a <Form method=\"post\">\n // which will default to a navigation to /page\n if (state.initialized && !isRevalidationRequired && isHashChangeOnly(state.location, location) && !(opts && opts.submission && isMutationMethod(opts.submission.formMethod))) {\n completeNavigation(location, {\n matches\n }, {\n flushSync\n });\n return;\n }\n // Create a controller/Request for this navigation\n pendingNavigationController = new AbortController();\n let request = createClientSideRequest(init.history, location, pendingNavigationController.signal, opts && opts.submission);\n let pendingActionData;\n let pendingError;\n if (opts && opts.pendingError) {\n // If we have a pendingError, it means the user attempted a GET submission\n // with binary FormData so assign here and skip to handleLoaders. That\n // way we handle calling loaders above the boundary etc. It's not really\n // different from an actionError in that sense.\n pendingError = {\n [findNearestBoundary(matches).route.id]: opts.pendingError\n };\n } else if (opts && opts.submission && isMutationMethod(opts.submission.formMethod)) {\n // Call action if we received an action submission\n let actionOutput = await handleAction(request, location, opts.submission, matches, {\n replace: opts.replace,\n flushSync\n });\n if (actionOutput.shortCircuited) {\n return;\n }\n pendingActionData = actionOutput.pendingActionData;\n pendingError = actionOutput.pendingActionError;\n loadingNavigation = getLoadingNavigation(location, opts.submission);\n flushSync = false;\n // Create a GET request for the loaders\n request = new Request(request.url, {\n signal: request.signal\n });\n }\n // Call loaders\n let {\n shortCircuited,\n loaderData,\n errors\n } = await handleLoaders(request, location, matches, loadingNavigation, opts && opts.submission, opts && opts.fetcherSubmission, opts && opts.replace, opts && opts.initialHydration === true, flushSync, pendingActionData, pendingError);\n if (shortCircuited) {\n return;\n }\n // Clean up now that the action/loaders have completed. Don't clean up if\n // we short circuited because pendingNavigationController will have already\n // been assigned to a new controller for the next navigation\n pendingNavigationController = null;\n completeNavigation(location, _extends({\n matches\n }, pendingActionData ? {\n actionData: pendingActionData\n } : {}, {\n loaderData,\n errors\n }));\n }\n // Call the action matched by the leaf route for this navigation and handle\n // redirects/errors\n async function handleAction(request, location, submission, matches, opts) {\n if (opts === void 0) {\n opts = {};\n }\n interruptActiveLoads();\n // Put us in a submitting state\n let navigation = getSubmittingNavigation(location, submission);\n updateState({\n navigation\n }, {\n flushSync: opts.flushSync === true\n });\n // Call our action and get the result\n let result;\n let actionMatch = getTargetMatch(matches, location);\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n result = {\n type: ResultType.error,\n error: getInternalRouterError(405, {\n method: request.method,\n pathname: location.pathname,\n routeId: actionMatch.route.id\n })\n };\n } else {\n result = await callLoaderOrAction(\"action\", request, actionMatch, matches, manifest, mapRouteProperties, basename, future.v7_relativeSplatPath);\n if (request.signal.aborted) {\n return {\n shortCircuited: true\n };\n }\n }\n if (isRedirectResult(result)) {\n let replace;\n if (opts && opts.replace != null) {\n replace = opts.replace;\n } else {\n // If the user didn't explicity indicate replace behavior, replace if\n // we redirected to the exact same location we're currently at to avoid\n // double back-buttons\n replace = result.location === state.location.pathname + state.location.search;\n }\n await startRedirectNavigation(state, result, {\n submission,\n replace\n });\n return {\n shortCircuited: true\n };\n }\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n // By default, all submissions are REPLACE navigations, but if the\n // action threw an error that'll be rendered in an errorElement, we fall\n // back to PUSH so that the user can use the back button to get back to\n // the pre-submission form location to try again\n if ((opts && opts.replace) !== true) {\n pendingAction = Action.Push;\n }\n return {\n // Send back an empty object we can use to clear out any prior actionData\n pendingActionData: {},\n pendingActionError: {\n [boundaryMatch.route.id]: result.error\n }\n };\n }\n if (isDeferredResult(result)) {\n throw getInternalRouterError(400, {\n type: \"defer-action\"\n });\n }\n return {\n pendingActionData: {\n [actionMatch.route.id]: result.data\n }\n };\n }\n // Call all applicable loaders for the given matches, handling redirects,\n // errors, etc.\n async function handleLoaders(request, location, matches, overrideNavigation, submission, fetcherSubmission, replace, initialHydration, flushSync, pendingActionData, pendingError) {\n // Figure out the right navigation we want to use for data loading\n let loadingNavigation = overrideNavigation || getLoadingNavigation(location, submission);\n // If this was a redirect from an action we don't have a \"submission\" but\n // we have it on the loading navigation so use that if available\n let activeSubmission = submission || fetcherSubmission || getSubmissionFromNavigation(loadingNavigation);\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(init.history, state, matches, activeSubmission, location, future.v7_partialHydration && initialHydration === true, isRevalidationRequired, cancelledDeferredRoutes, cancelledFetcherLoads, deletedFetchers, fetchLoadMatches, fetchRedirectIds, routesToUse, basename, pendingActionData, pendingError);\n // Cancel pending deferreds for no-longer-matched routes or routes we're\n // about to reload. Note that if this is an action reload we would have\n // already cancelled all pending deferreds so this would be a no-op\n cancelActiveDeferreds(routeId => !(matches && matches.some(m => m.route.id === routeId)) || matchesToLoad && matchesToLoad.some(m => m.route.id === routeId));\n pendingNavigationLoadId = ++incrementingLoadId;\n // Short circuit if we have no loaders to run\n if (matchesToLoad.length === 0 && revalidatingFetchers.length === 0) {\n let updatedFetchers = markFetchRedirectsDone();\n completeNavigation(location, _extends({\n matches,\n loaderData: {},\n // Commit pending error if we're short circuiting\n errors: pendingError || null\n }, pendingActionData ? {\n actionData: pendingActionData\n } : {}, updatedFetchers ? {\n fetchers: new Map(state.fetchers)\n } : {}), {\n flushSync\n });\n return {\n shortCircuited: true\n };\n }\n // If this is an uninterrupted revalidation, we remain in our current idle\n // state. If not, we need to switch to our loading state and load data,\n // preserving any new action data or existing action data (in the case of\n // a revalidation interrupting an actionReload)\n // If we have partialHydration enabled, then don't update the state for the\n // initial data load since it's not a \"navigation\"\n if (!isUninterruptedRevalidation && (!future.v7_partialHydration || !initialHydration)) {\n revalidatingFetchers.forEach(rf => {\n let fetcher = state.fetchers.get(rf.key);\n let revalidatingFetcher = getLoadingFetcher(undefined, fetcher ? fetcher.data : undefined);\n state.fetchers.set(rf.key, revalidatingFetcher);\n });\n let actionData = pendingActionData || state.actionData;\n updateState(_extends({\n navigation: loadingNavigation\n }, actionData ? Object.keys(actionData).length === 0 ? {\n actionData: null\n } : {\n actionData\n } : {}, revalidatingFetchers.length > 0 ? {\n fetchers: new Map(state.fetchers)\n } : {}), {\n flushSync\n });\n }\n revalidatingFetchers.forEach(rf => {\n if (fetchControllers.has(rf.key)) {\n abortFetcher(rf.key);\n }\n if (rf.controller) {\n // Fetchers use an independent AbortController so that aborting a fetcher\n // (via deleteFetcher) does not abort the triggering navigation that\n // triggered the revalidation\n fetchControllers.set(rf.key, rf.controller);\n }\n });\n // Proxy navigation abort through to revalidation fetchers\n let abortPendingFetchRevalidations = () => revalidatingFetchers.forEach(f => abortFetcher(f.key));\n if (pendingNavigationController) {\n pendingNavigationController.signal.addEventListener(\"abort\", abortPendingFetchRevalidations);\n }\n let {\n results,\n loaderResults,\n fetcherResults\n } = await callLoadersAndMaybeResolveData(state.matches, matches, matchesToLoad, revalidatingFetchers, request);\n if (request.signal.aborted) {\n return {\n shortCircuited: true\n };\n }\n // Clean up _after_ loaders have completed. Don't clean up if we short\n // circuited because fetchControllers would have been aborted and\n // reassigned to new controllers for the next navigation\n if (pendingNavigationController) {\n pendingNavigationController.signal.removeEventListener(\"abort\", abortPendingFetchRevalidations);\n }\n revalidatingFetchers.forEach(rf => fetchControllers.delete(rf.key));\n // If any loaders returned a redirect Response, start a new REPLACE navigation\n let redirect = findRedirect(results);\n if (redirect) {\n if (redirect.idx >= matchesToLoad.length) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n let fetcherKey = revalidatingFetchers[redirect.idx - matchesToLoad.length].key;\n fetchRedirectIds.add(fetcherKey);\n }\n await startRedirectNavigation(state, redirect.result, {\n replace\n });\n return {\n shortCircuited: true\n };\n }\n // Process and commit output from loaders\n let {\n loaderData,\n errors\n } = processLoaderData(state, matches, matchesToLoad, loaderResults, pendingError, revalidatingFetchers, fetcherResults, activeDeferreds);\n // Wire up subscribers to update loaderData as promises settle\n activeDeferreds.forEach((deferredData, routeId) => {\n deferredData.subscribe(aborted => {\n // Note: No need to updateState here since the TrackedPromise on\n // loaderData is stable across resolve/reject\n // Remove this instance if we were aborted or if promises have settled\n if (aborted || deferredData.done) {\n activeDeferreds.delete(routeId);\n }\n });\n });\n // During partial hydration, preserve SSR errors for routes that don't re-run\n if (future.v7_partialHydration && initialHydration && state.errors) {\n Object.entries(state.errors).filter(_ref2 => {\n let [id] = _ref2;\n return !matchesToLoad.some(m => m.route.id === id);\n }).forEach(_ref3 => {\n let [routeId, error] = _ref3;\n errors = Object.assign(errors || {}, {\n [routeId]: error\n });\n });\n }\n let updatedFetchers = markFetchRedirectsDone();\n let didAbortFetchLoads = abortStaleFetchLoads(pendingNavigationLoadId);\n let shouldUpdateFetchers = updatedFetchers || didAbortFetchLoads || revalidatingFetchers.length > 0;\n return _extends({\n loaderData,\n errors\n }, shouldUpdateFetchers ? {\n fetchers: new Map(state.fetchers)\n } : {});\n }\n // Trigger a fetcher load/submit for the given fetcher key\n function fetch(key, routeId, href, opts) {\n if (isServer) {\n throw new Error(\"router.fetch() was called during the server render, but it shouldn't be. \" + \"You are likely calling a useFetcher() method in the body of your component. \" + \"Try moving it to a useEffect or a callback.\");\n }\n if (fetchControllers.has(key)) abortFetcher(key);\n let flushSync = (opts && opts.unstable_flushSync) === true;\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let normalizedPath = normalizeTo(state.location, state.matches, basename, future.v7_prependBasename, href, future.v7_relativeSplatPath, routeId, opts == null ? void 0 : opts.relative);\n let matches = matchRoutes(routesToUse, normalizedPath, basename);\n if (!matches) {\n setFetcherError(key, routeId, getInternalRouterError(404, {\n pathname: normalizedPath\n }), {\n flushSync\n });\n return;\n }\n let {\n path,\n submission,\n error\n } = normalizeNavigateOptions(future.v7_normalizeFormMethod, true, normalizedPath, opts);\n if (error) {\n setFetcherError(key, routeId, error, {\n flushSync\n });\n return;\n }\n let match = getTargetMatch(matches, path);\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n if (submission && isMutationMethod(submission.formMethod)) {\n handleFetcherAction(key, routeId, path, match, matches, flushSync, submission);\n return;\n }\n // Store off the match so we can call it's shouldRevalidate on subsequent\n // revalidations\n fetchLoadMatches.set(key, {\n routeId,\n path\n });\n handleFetcherLoader(key, routeId, path, match, matches, flushSync, submission);\n }\n // Call the action for the matched fetcher.submit(), and then handle redirects,\n // errors, and revalidation\n async function handleFetcherAction(key, routeId, path, match, requestMatches, flushSync, submission) {\n interruptActiveLoads();\n fetchLoadMatches.delete(key);\n if (!match.route.action && !match.route.lazy) {\n let error = getInternalRouterError(405, {\n method: submission.formMethod,\n pathname: path,\n routeId: routeId\n });\n setFetcherError(key, routeId, error, {\n flushSync\n });\n return;\n }\n // Put this fetcher into it's submitting state\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(key, getSubmittingFetcher(submission, existingFetcher), {\n flushSync\n });\n // Call the action for the fetcher\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(init.history, path, abortController.signal, submission);\n fetchControllers.set(key, abortController);\n let originatingLoadId = incrementingLoadId;\n let actionResult = await callLoaderOrAction(\"action\", fetchRequest, match, requestMatches, manifest, mapRouteProperties, basename, future.v7_relativeSplatPath);\n if (fetchRequest.signal.aborted) {\n // We can delete this so long as we weren't aborted by our own fetcher\n // re-submit which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n return;\n }\n // When using v7_fetcherPersist, we don't want errors bubbling up to the UI\n // or redirects processed for unmounted fetchers so we just revert them to\n // idle\n if (future.v7_fetcherPersist && deletedFetchers.has(key)) {\n if (isRedirectResult(actionResult) || isErrorResult(actionResult)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n // Let SuccessResult's fall through for revalidation\n } else {\n if (isRedirectResult(actionResult)) {\n fetchControllers.delete(key);\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our action started, so that\n // should take precedence over this redirect navigation. We already\n // set isRevalidationRequired so all loaders for the new route should\n // fire unless opted out via shouldRevalidate\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n updateFetcherState(key, getLoadingFetcher(submission));\n return startRedirectNavigation(state, actionResult, {\n fetcherSubmission: submission\n });\n }\n }\n // Process any non-redirect errors thrown\n if (isErrorResult(actionResult)) {\n setFetcherError(key, routeId, actionResult.error);\n return;\n }\n }\n if (isDeferredResult(actionResult)) {\n throw getInternalRouterError(400, {\n type: \"defer-action\"\n });\n }\n // Start the data load for current matches, or the next location if we're\n // in the middle of a navigation\n let nextLocation = state.navigation.location || state.location;\n let revalidationRequest = createClientSideRequest(init.history, nextLocation, abortController.signal);\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let matches = state.navigation.state !== \"idle\" ? matchRoutes(routesToUse, state.navigation.location, basename) : state.matches;\n invariant(matches, \"Didn't find any matches after fetcher action\");\n let loadId = ++incrementingLoadId;\n fetchReloadIds.set(key, loadId);\n let loadFetcher = getLoadingFetcher(submission, actionResult.data);\n state.fetchers.set(key, loadFetcher);\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(init.history, state, matches, submission, nextLocation, false, isRevalidationRequired, cancelledDeferredRoutes, cancelledFetcherLoads, deletedFetchers, fetchLoadMatches, fetchRedirectIds, routesToUse, basename, {\n [match.route.id]: actionResult.data\n }, undefined // No need to send through errors since we short circuit above\n );\n // Put all revalidating fetchers into the loading state, except for the\n // current fetcher which we want to keep in it's current loading state which\n // contains it's action submission info + action data\n revalidatingFetchers.filter(rf => rf.key !== key).forEach(rf => {\n let staleKey = rf.key;\n let existingFetcher = state.fetchers.get(staleKey);\n let revalidatingFetcher = getLoadingFetcher(undefined, existingFetcher ? existingFetcher.data : undefined);\n state.fetchers.set(staleKey, revalidatingFetcher);\n if (fetchControllers.has(staleKey)) {\n abortFetcher(staleKey);\n }\n if (rf.controller) {\n fetchControllers.set(staleKey, rf.controller);\n }\n });\n updateState({\n fetchers: new Map(state.fetchers)\n });\n let abortPendingFetchRevalidations = () => revalidatingFetchers.forEach(rf => abortFetcher(rf.key));\n abortController.signal.addEventListener(\"abort\", abortPendingFetchRevalidations);\n let {\n results,\n loaderResults,\n fetcherResults\n } = await callLoadersAndMaybeResolveData(state.matches, matches, matchesToLoad, revalidatingFetchers, revalidationRequest);\n if (abortController.signal.aborted) {\n return;\n }\n abortController.signal.removeEventListener(\"abort\", abortPendingFetchRevalidations);\n fetchReloadIds.delete(key);\n fetchControllers.delete(key);\n revalidatingFetchers.forEach(r => fetchControllers.delete(r.key));\n let redirect = findRedirect(results);\n if (redirect) {\n if (redirect.idx >= matchesToLoad.length) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n let fetcherKey = revalidatingFetchers[redirect.idx - matchesToLoad.length].key;\n fetchRedirectIds.add(fetcherKey);\n }\n return startRedirectNavigation(state, redirect.result);\n }\n // Process and commit output from loaders\n let {\n loaderData,\n errors\n } = processLoaderData(state, state.matches, matchesToLoad, loaderResults, undefined, revalidatingFetchers, fetcherResults, activeDeferreds);\n // Since we let revalidations complete even if the submitting fetcher was\n // deleted, only put it back to idle if it hasn't been deleted\n if (state.fetchers.has(key)) {\n let doneFetcher = getDoneFetcher(actionResult.data);\n state.fetchers.set(key, doneFetcher);\n }\n abortStaleFetchLoads(loadId);\n // If we are currently in a navigation loading state and this fetcher is\n // more recent than the navigation, we want the newer data so abort the\n // navigation and complete it with the fetcher data\n if (state.navigation.state === \"loading\" && loadId > pendingNavigationLoadId) {\n invariant(pendingAction, \"Expected pending action\");\n pendingNavigationController && pendingNavigationController.abort();\n completeNavigation(state.navigation.location, {\n matches,\n loaderData,\n errors,\n fetchers: new Map(state.fetchers)\n });\n } else {\n // otherwise just update with the fetcher data, preserving any existing\n // loaderData for loaders that did not need to reload. We have to\n // manually merge here since we aren't going through completeNavigation\n updateState({\n errors,\n loaderData: mergeLoaderData(state.loaderData, loaderData, matches, errors),\n fetchers: new Map(state.fetchers)\n });\n isRevalidationRequired = false;\n }\n }\n // Call the matched loader for fetcher.load(), handling redirects, errors, etc.\n async function handleFetcherLoader(key, routeId, path, match, matches, flushSync, submission) {\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(key, getLoadingFetcher(submission, existingFetcher ? existingFetcher.data : undefined), {\n flushSync\n });\n // Call the loader for this fetcher route match\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(init.history, path, abortController.signal);\n fetchControllers.set(key, abortController);\n let originatingLoadId = incrementingLoadId;\n let result = await callLoaderOrAction(\"loader\", fetchRequest, match, matches, manifest, mapRouteProperties, basename, future.v7_relativeSplatPath);\n // Deferred isn't supported for fetcher loads, await everything and treat it\n // as a normal load. resolveDeferredData will return undefined if this\n // fetcher gets aborted, so we just leave result untouched and short circuit\n // below if that happens\n if (isDeferredResult(result)) {\n result = (await resolveDeferredData(result, fetchRequest.signal, true)) || result;\n }\n // We can delete this so long as we weren't aborted by our our own fetcher\n // re-load which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n if (fetchRequest.signal.aborted) {\n return;\n }\n // We don't want errors bubbling up or redirects followed for unmounted\n // fetchers, so short circuit here if it was removed from the UI\n if (deletedFetchers.has(key)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n // If the loader threw a redirect Response, start a new REPLACE navigation\n if (isRedirectResult(result)) {\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our loader started, so that\n // should take precedence over this redirect navigation\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n await startRedirectNavigation(state, result);\n return;\n }\n }\n // Process any non-redirect errors thrown\n if (isErrorResult(result)) {\n setFetcherError(key, routeId, result.error);\n return;\n }\n invariant(!isDeferredResult(result), \"Unhandled fetcher deferred data\");\n // Put the fetcher back into an idle state\n updateFetcherState(key, getDoneFetcher(result.data));\n }\n /**\n * Utility function to handle redirects returned from an action or loader.\n * Normally, a redirect \"replaces\" the navigation that triggered it. So, for\n * example:\n *\n * - user is on /a\n * - user clicks a link to /b\n * - loader for /b redirects to /c\n *\n * In a non-JS app the browser would track the in-flight navigation to /b and\n * then replace it with /c when it encountered the redirect response. In\n * the end it would only ever update the URL bar with /c.\n *\n * In client-side routing using pushState/replaceState, we aim to emulate\n * this behavior and we also do not update history until the end of the\n * navigation (including processed redirects). This means that we never\n * actually touch history until we've processed redirects, so we just use\n * the history action from the original navigation (PUSH or REPLACE).\n */\n async function startRedirectNavigation(state, redirect, _temp2) {\n let {\n submission,\n fetcherSubmission,\n replace\n } = _temp2 === void 0 ? {} : _temp2;\n if (redirect.revalidate) {\n isRevalidationRequired = true;\n }\n let redirectLocation = createLocation(state.location, redirect.location, {\n _isRedirect: true\n });\n invariant(redirectLocation, \"Expected a location on the redirect navigation\");\n if (isBrowser) {\n let isDocumentReload = false;\n if (redirect.reloadDocument) {\n // Hard reload if the response contained X-Remix-Reload-Document\n isDocumentReload = true;\n } else if (ABSOLUTE_URL_REGEX.test(redirect.location)) {\n const url = init.history.createURL(redirect.location);\n isDocumentReload =\n // Hard reload if it's an absolute URL to a new origin\n url.origin !== routerWindow.location.origin ||\n // Hard reload if it's an absolute URL that does not match our basename\n stripBasename(url.pathname, basename) == null;\n }\n if (isDocumentReload) {\n if (replace) {\n routerWindow.location.replace(redirect.location);\n } else {\n routerWindow.location.assign(redirect.location);\n }\n return;\n }\n }\n // There's no need to abort on redirects, since we don't detect the\n // redirect until the action/loaders have settled\n pendingNavigationController = null;\n let redirectHistoryAction = replace === true ? Action.Replace : Action.Push;\n // Use the incoming submission if provided, fallback on the active one in\n // state.navigation\n let {\n formMethod,\n formAction,\n formEncType\n } = state.navigation;\n if (!submission && !fetcherSubmission && formMethod && formAction && formEncType) {\n submission = getSubmissionFromNavigation(state.navigation);\n }\n // If this was a 307/308 submission we want to preserve the HTTP method and\n // re-submit the GET/POST/PUT/PATCH/DELETE as a submission navigation to the\n // redirected location\n let activeSubmission = submission || fetcherSubmission;\n if (redirectPreserveMethodStatusCodes.has(redirect.status) && activeSubmission && isMutationMethod(activeSubmission.formMethod)) {\n await startNavigation(redirectHistoryAction, redirectLocation, {\n submission: _extends({}, activeSubmission, {\n formAction: redirect.location\n }),\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset\n });\n } else {\n // If we have a navigation submission, we will preserve it through the\n // redirect navigation\n let overrideNavigation = getLoadingNavigation(redirectLocation, submission);\n await startNavigation(redirectHistoryAction, redirectLocation, {\n overrideNavigation,\n // Send fetcher submissions through for shouldRevalidate\n fetcherSubmission,\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset\n });\n }\n }\n async function callLoadersAndMaybeResolveData(currentMatches, matches, matchesToLoad, fetchersToLoad, request) {\n // Call all navigation loaders and revalidating fetcher loaders in parallel,\n // then slice off the results into separate arrays so we can handle them\n // accordingly\n let results = await Promise.all([...matchesToLoad.map(match => callLoaderOrAction(\"loader\", request, match, matches, manifest, mapRouteProperties, basename, future.v7_relativeSplatPath)), ...fetchersToLoad.map(f => {\n if (f.matches && f.match && f.controller) {\n return callLoaderOrAction(\"loader\", createClientSideRequest(init.history, f.path, f.controller.signal), f.match, f.matches, manifest, mapRouteProperties, basename, future.v7_relativeSplatPath);\n } else {\n let error = {\n type: ResultType.error,\n error: getInternalRouterError(404, {\n pathname: f.path\n })\n };\n return error;\n }\n })]);\n let loaderResults = results.slice(0, matchesToLoad.length);\n let fetcherResults = results.slice(matchesToLoad.length);\n await Promise.all([resolveDeferredResults(currentMatches, matchesToLoad, loaderResults, loaderResults.map(() => request.signal), false, state.loaderData), resolveDeferredResults(currentMatches, fetchersToLoad.map(f => f.match), fetcherResults, fetchersToLoad.map(f => f.controller ? f.controller.signal : null), true)]);\n return {\n results,\n loaderResults,\n fetcherResults\n };\n }\n function interruptActiveLoads() {\n // Every interruption triggers a revalidation\n isRevalidationRequired = true;\n // Cancel pending route-level deferreds and mark cancelled routes for\n // revalidation\n cancelledDeferredRoutes.push(...cancelActiveDeferreds());\n // Abort in-flight fetcher loads\n fetchLoadMatches.forEach((_, key) => {\n if (fetchControllers.has(key)) {\n cancelledFetcherLoads.push(key);\n abortFetcher(key);\n }\n });\n }\n function updateFetcherState(key, fetcher, opts) {\n if (opts === void 0) {\n opts = {};\n }\n state.fetchers.set(key, fetcher);\n updateState({\n fetchers: new Map(state.fetchers)\n }, {\n flushSync: (opts && opts.flushSync) === true\n });\n }\n function setFetcherError(key, routeId, error, opts) {\n if (opts === void 0) {\n opts = {};\n }\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n deleteFetcher(key);\n updateState({\n errors: {\n [boundaryMatch.route.id]: error\n },\n fetchers: new Map(state.fetchers)\n }, {\n flushSync: (opts && opts.flushSync) === true\n });\n }\n function getFetcher(key) {\n if (future.v7_fetcherPersist) {\n activeFetchers.set(key, (activeFetchers.get(key) || 0) + 1);\n // If this fetcher was previously marked for deletion, unmark it since we\n // have a new instance\n if (deletedFetchers.has(key)) {\n deletedFetchers.delete(key);\n }\n }\n return state.fetchers.get(key) || IDLE_FETCHER;\n }\n function deleteFetcher(key) {\n let fetcher = state.fetchers.get(key);\n // Don't abort the controller if this is a deletion of a fetcher.submit()\n // in it's loading phase since - we don't want to abort the corresponding\n // revalidation and want them to complete and land\n if (fetchControllers.has(key) && !(fetcher && fetcher.state === \"loading\" && fetchReloadIds.has(key))) {\n abortFetcher(key);\n }\n fetchLoadMatches.delete(key);\n fetchReloadIds.delete(key);\n fetchRedirectIds.delete(key);\n deletedFetchers.delete(key);\n state.fetchers.delete(key);\n }\n function deleteFetcherAndUpdateState(key) {\n if (future.v7_fetcherPersist) {\n let count = (activeFetchers.get(key) || 0) - 1;\n if (count <= 0) {\n activeFetchers.delete(key);\n deletedFetchers.add(key);\n } else {\n activeFetchers.set(key, count);\n }\n } else {\n deleteFetcher(key);\n }\n updateState({\n fetchers: new Map(state.fetchers)\n });\n }\n function abortFetcher(key) {\n let controller = fetchControllers.get(key);\n invariant(controller, \"Expected fetch controller: \" + key);\n controller.abort();\n fetchControllers.delete(key);\n }\n function markFetchersDone(keys) {\n for (let key of keys) {\n let fetcher = getFetcher(key);\n let doneFetcher = getDoneFetcher(fetcher.data);\n state.fetchers.set(key, doneFetcher);\n }\n }\n function markFetchRedirectsDone() {\n let doneKeys = [];\n let updatedFetchers = false;\n for (let key of fetchRedirectIds) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, \"Expected fetcher: \" + key);\n if (fetcher.state === \"loading\") {\n fetchRedirectIds.delete(key);\n doneKeys.push(key);\n updatedFetchers = true;\n }\n }\n markFetchersDone(doneKeys);\n return updatedFetchers;\n }\n function abortStaleFetchLoads(landedId) {\n let yeetedKeys = [];\n for (let [key, id] of fetchReloadIds) {\n if (id < landedId) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, \"Expected fetcher: \" + key);\n if (fetcher.state === \"loading\") {\n abortFetcher(key);\n fetchReloadIds.delete(key);\n yeetedKeys.push(key);\n }\n }\n }\n markFetchersDone(yeetedKeys);\n return yeetedKeys.length > 0;\n }\n function getBlocker(key, fn) {\n let blocker = state.blockers.get(key) || IDLE_BLOCKER;\n if (blockerFunctions.get(key) !== fn) {\n blockerFunctions.set(key, fn);\n }\n return blocker;\n }\n function deleteBlocker(key) {\n state.blockers.delete(key);\n blockerFunctions.delete(key);\n }\n // Utility function to update blockers, ensuring valid state transitions\n function updateBlocker(key, newBlocker) {\n let blocker = state.blockers.get(key) || IDLE_BLOCKER;\n // Poor mans state machine :)\n // https://mermaid.live/edit#pako:eNqVkc9OwzAMxl8l8nnjAYrEtDIOHEBIgwvKJTReGy3_lDpIqO27k6awMG0XcrLlnz87nwdonESogKXXBuE79rq75XZO3-yHds0RJVuv70YrPlUrCEe2HfrORS3rubqZfuhtpg5C9wk5tZ4VKcRUq88q9Z8RS0-48cE1iHJkL0ugbHuFLus9L6spZy8nX9MP2CNdomVaposqu3fGayT8T8-jJQwhepo_UtpgBQaDEUom04dZhAN1aJBDlUKJBxE1ceB2Smj0Mln-IBW5AFU2dwUiktt_2Qaq2dBfaKdEup85UV7Yd-dKjlnkabl2Pvr0DTkTreM\n invariant(blocker.state === \"unblocked\" && newBlocker.state === \"blocked\" || blocker.state === \"blocked\" && newBlocker.state === \"blocked\" || blocker.state === \"blocked\" && newBlocker.state === \"proceeding\" || blocker.state === \"blocked\" && newBlocker.state === \"unblocked\" || blocker.state === \"proceeding\" && newBlocker.state === \"unblocked\", \"Invalid blocker state transition: \" + blocker.state + \" -> \" + newBlocker.state);\n let blockers = new Map(state.blockers);\n blockers.set(key, newBlocker);\n updateState({\n blockers\n });\n }\n function shouldBlockNavigation(_ref4) {\n let {\n currentLocation,\n nextLocation,\n historyAction\n } = _ref4;\n if (blockerFunctions.size === 0) {\n return;\n }\n // We ony support a single active blocker at the moment since we don't have\n // any compelling use cases for multi-blocker yet\n if (blockerFunctions.size > 1) {\n warning(false, \"A router only supports one blocker at a time\");\n }\n let entries = Array.from(blockerFunctions.entries());\n let [blockerKey, blockerFunction] = entries[entries.length - 1];\n let blocker = state.blockers.get(blockerKey);\n if (blocker && blocker.state === \"proceeding\") {\n // If the blocker is currently proceeding, we don't need to re-check\n // it and can let this navigation continue\n return;\n }\n // At this point, we know we're unblocked/blocked so we need to check the\n // user-provided blocker function\n if (blockerFunction({\n currentLocation,\n nextLocation,\n historyAction\n })) {\n return blockerKey;\n }\n }\n function cancelActiveDeferreds(predicate) {\n let cancelledRouteIds = [];\n activeDeferreds.forEach((dfd, routeId) => {\n if (!predicate || predicate(routeId)) {\n // Cancel the deferred - but do not remove from activeDeferreds here -\n // we rely on the subscribers to do that so our tests can assert proper\n // cleanup via _internalActiveDeferreds\n dfd.cancel();\n cancelledRouteIds.push(routeId);\n activeDeferreds.delete(routeId);\n }\n });\n return cancelledRouteIds;\n }\n // Opt in to capturing and reporting scroll positions during navigations,\n // used by the <ScrollRestoration> component\n function enableScrollRestoration(positions, getPosition, getKey) {\n savedScrollPositions = positions;\n getScrollPosition = getPosition;\n getScrollRestorationKey = getKey || null;\n // Perform initial hydration scroll restoration, since we miss the boat on\n // the initial updateState() because we've not yet rendered <ScrollRestoration/>\n // and therefore have no savedScrollPositions available\n if (!initialScrollRestored && state.navigation === IDLE_NAVIGATION) {\n initialScrollRestored = true;\n let y = getSavedScrollPosition(state.location, state.matches);\n if (y != null) {\n updateState({\n restoreScrollPosition: y\n });\n }\n }\n return () => {\n savedScrollPositions = null;\n getScrollPosition = null;\n getScrollRestorationKey = null;\n };\n }\n function getScrollKey(location, matches) {\n if (getScrollRestorationKey) {\n let key = getScrollRestorationKey(location, matches.map(m => convertRouteMatchToUiMatch(m, state.loaderData)));\n return key || location.key;\n }\n return location.key;\n }\n function saveScrollPosition(location, matches) {\n if (savedScrollPositions && getScrollPosition) {\n let key = getScrollKey(location, matches);\n savedScrollPositions[key] = getScrollPosition();\n }\n }\n function getSavedScrollPosition(location, matches) {\n if (savedScrollPositions) {\n let key = getScrollKey(location, matches);\n let y = savedScrollPositions[key];\n if (typeof y === \"number\") {\n return y;\n }\n }\n return null;\n }\n function _internalSetRoutes(newRoutes) {\n manifest = {};\n inFlightDataRoutes = convertRoutesToDataRoutes(newRoutes, mapRouteProperties, undefined, manifest);\n }\n router = {\n get basename() {\n return basename;\n },\n get future() {\n return future;\n },\n get state() {\n return state;\n },\n get routes() {\n return dataRoutes;\n },\n get window() {\n return routerWindow;\n },\n initialize,\n subscribe,\n enableScrollRestoration,\n navigate,\n fetch,\n revalidate,\n // Passthrough to history-aware createHref used by useHref so we get proper\n // hash-aware URLs in DOM paths\n createHref: to => init.history.createHref(to),\n encodeLocation: to => init.history.encodeLocation(to),\n getFetcher,\n deleteFetcher: deleteFetcherAndUpdateState,\n dispose,\n getBlocker,\n deleteBlocker,\n _internalFetchControllers: fetchControllers,\n _internalActiveDeferreds: activeDeferreds,\n // TODO: Remove setRoutes, it's temporary to avoid dealing with\n // updating the tree while validating the update algorithm.\n _internalSetRoutes\n };\n return router;\n}\n//#endregion\n////////////////////////////////////////////////////////////////////////////////\n//#region createStaticHandler\n////////////////////////////////////////////////////////////////////////////////\nconst UNSAFE_DEFERRED_SYMBOL = Symbol(\"deferred\");\nfunction createStaticHandler(routes, opts) {\n invariant(routes.length > 0, \"You must provide a non-empty routes array to createStaticHandler\");\n let manifest = {};\n let basename = (opts ? opts.basename : null) || \"/\";\n let mapRouteProperties;\n if (opts != null && opts.mapRouteProperties) {\n mapRouteProperties = opts.mapRouteProperties;\n } else if (opts != null && opts.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = opts.detectErrorBoundary;\n mapRouteProperties = route => ({\n hasErrorBoundary: detectErrorBoundary(route)\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n // Config driven behavior flags\n let future = _extends({\n v7_relativeSplatPath: false,\n v7_throwAbortReason: false\n }, opts ? opts.future : null);\n let dataRoutes = convertRoutesToDataRoutes(routes, mapRouteProperties, undefined, manifest);\n /**\n * The query() method is intended for document requests, in which we want to\n * call an optional action and potentially multiple loaders for all nested\n * routes. It returns a StaticHandlerContext object, which is very similar\n * to the router state (location, loaderData, actionData, errors, etc.) and\n * also adds SSR-specific information such as the statusCode and headers\n * from action/loaders Responses.\n *\n * It _should_ never throw and should report all errors through the\n * returned context.errors object, properly associating errors to their error\n * boundary. Additionally, it tracks _deepestRenderedBoundaryId which can be\n * used to emulate React error boundaries during SSr by performing a second\n * pass only down to the boundaryId.\n *\n * The one exception where we do not return a StaticHandlerContext is when a\n * redirect response is returned or thrown from any action/loader. We\n * propagate that out and return the raw Response so the HTTP server can\n * return it directly.\n */\n async function query(request, _temp3) {\n let {\n requestContext\n } = _temp3 === void 0 ? {} : _temp3;\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\") {\n let error = getInternalRouterError(405, {\n method\n });\n let {\n matches: methodNotAllowedMatches,\n route\n } = getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: methodNotAllowedMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null\n };\n } else if (!matches) {\n let error = getInternalRouterError(404, {\n pathname: location.pathname\n });\n let {\n matches: notFoundMatches,\n route\n } = getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: notFoundMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null\n };\n }\n let result = await queryImpl(request, location, matches, requestContext);\n if (isResponse(result)) {\n return result;\n }\n // When returning StaticHandlerContext, we patch back in the location here\n // since we need it for React Context. But this helps keep our submit and\n // loadRouteData operating on a Request instead of a Location\n return _extends({\n location,\n basename\n }, result);\n }\n /**\n * The queryRoute() method is intended for targeted route requests, either\n * for fetch ?_data requests or resource route requests. In this case, we\n * are only ever calling a single action or loader, and we are returning the\n * returned value directly. In most cases, this will be a Response returned\n * from the action/loader, but it may be a primitive or other value as well -\n * and in such cases the calling context should handle that accordingly.\n *\n * We do respect the throw/return differentiation, so if an action/loader\n * throws, then this method will throw the value. This is important so we\n * can do proper boundary identification in Remix where a thrown Response\n * must go to the Catch Boundary but a returned Response is happy-path.\n *\n * One thing to note is that any Router-initiated Errors that make sense\n * to associate with a status code will be thrown as an ErrorResponse\n * instance which include the raw Error, such that the calling context can\n * serialize the error as they see fit while including the proper response\n * code. Examples here are 404 and 405 errors that occur prior to reaching\n * any user-defined loaders.\n */\n async function queryRoute(request, _temp4) {\n let {\n routeId,\n requestContext\n } = _temp4 === void 0 ? {} : _temp4;\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\" && method !== \"OPTIONS\") {\n throw getInternalRouterError(405, {\n method\n });\n } else if (!matches) {\n throw getInternalRouterError(404, {\n pathname: location.pathname\n });\n }\n let match = routeId ? matches.find(m => m.route.id === routeId) : getTargetMatch(matches, location);\n if (routeId && !match) {\n throw getInternalRouterError(403, {\n pathname: location.pathname,\n routeId\n });\n } else if (!match) {\n // This should never hit I don't think?\n throw getInternalRouterError(404, {\n pathname: location.pathname\n });\n }\n let result = await queryImpl(request, location, matches, requestContext, match);\n if (isResponse(result)) {\n return result;\n }\n let error = result.errors ? Object.values(result.errors)[0] : undefined;\n if (error !== undefined) {\n // If we got back result.errors, that means the loader/action threw\n // _something_ that wasn't a Response, but it's not guaranteed/required\n // to be an `instanceof Error` either, so we have to use throw here to\n // preserve the \"error\" state outside of queryImpl.\n throw error;\n }\n // Pick off the right state value to return\n if (result.actionData) {\n return Object.values(result.actionData)[0];\n }\n if (result.loaderData) {\n var _result$activeDeferre;\n let data = Object.values(result.loaderData)[0];\n if ((_result$activeDeferre = result.activeDeferreds) != null && _result$activeDeferre[match.route.id]) {\n data[UNSAFE_DEFERRED_SYMBOL] = result.activeDeferreds[match.route.id];\n }\n return data;\n }\n return undefined;\n }\n async function queryImpl(request, location, matches, requestContext, routeMatch) {\n invariant(request.signal, \"query()/queryRoute() requests must contain an AbortController signal\");\n try {\n if (isMutationMethod(request.method.toLowerCase())) {\n let result = await submit(request, matches, routeMatch || getTargetMatch(matches, location), requestContext, routeMatch != null);\n return result;\n }\n let result = await loadRouteData(request, matches, requestContext, routeMatch);\n return isResponse(result) ? result : _extends({}, result, {\n actionData: null,\n actionHeaders: {}\n });\n } catch (e) {\n // If the user threw/returned a Response in callLoaderOrAction, we throw\n // it to bail out and then return or throw here based on whether the user\n // returned or threw\n if (isQueryRouteResponse(e)) {\n if (e.type === ResultType.error) {\n throw e.response;\n }\n return e.response;\n }\n // Redirects are always returned since they don't propagate to catch\n // boundaries\n if (isRedirectResponse(e)) {\n return e;\n }\n throw e;\n }\n }\n async function submit(request, matches, actionMatch, requestContext, isRouteRequest) {\n let result;\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n let error = getInternalRouterError(405, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: actionMatch.route.id\n });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error\n };\n } else {\n result = await callLoaderOrAction(\"action\", request, actionMatch, matches, manifest, mapRouteProperties, basename, future.v7_relativeSplatPath, {\n isStaticRequest: true,\n isRouteRequest,\n requestContext\n });\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest, future);\n }\n }\n if (isRedirectResult(result)) {\n // Uhhhh - this should never happen, we should always throw these from\n // callLoaderOrAction, but the type narrowing here keeps TS happy and we\n // can get back on the \"throw all redirect responses\" train here should\n // this ever happen :/\n throw new Response(null, {\n status: result.status,\n headers: {\n Location: result.location\n }\n });\n }\n if (isDeferredResult(result)) {\n let error = getInternalRouterError(400, {\n type: \"defer-action\"\n });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error\n };\n }\n if (isRouteRequest) {\n // Note: This should only be non-Response values if we get here, since\n // isRouteRequest should throw any Response received in callLoaderOrAction\n if (isErrorResult(result)) {\n throw result.error;\n }\n return {\n matches: [actionMatch],\n loaderData: {},\n actionData: {\n [actionMatch.route.id]: result.data\n },\n errors: null,\n // Note: statusCode + headers are unused here since queryRoute will\n // return the raw Response or value\n statusCode: 200,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null\n };\n }\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n let context = await loadRouteData(request, matches, requestContext, undefined, {\n [boundaryMatch.route.id]: result.error\n });\n // action status codes take precedence over loader status codes\n return _extends({}, context, {\n statusCode: isRouteErrorResponse(result.error) ? result.error.status : 500,\n actionData: null,\n actionHeaders: _extends({}, result.headers ? {\n [actionMatch.route.id]: result.headers\n } : {})\n });\n }\n // Create a GET request for the loaders\n let loaderRequest = new Request(request.url, {\n headers: request.headers,\n redirect: request.redirect,\n signal: request.signal\n });\n let context = await loadRouteData(loaderRequest, matches, requestContext);\n return _extends({}, context, result.statusCode ? {\n statusCode: result.statusCode\n } : {}, {\n actionData: {\n [actionMatch.route.id]: result.data\n },\n actionHeaders: _extends({}, result.headers ? {\n [actionMatch.route.id]: result.headers\n } : {})\n });\n }\n async function loadRouteData(request, matches, requestContext, routeMatch, pendingActionError) {\n let isRouteRequest = routeMatch != null;\n // Short circuit if we have no loaders to run (queryRoute())\n if (isRouteRequest && !(routeMatch != null && routeMatch.route.loader) && !(routeMatch != null && routeMatch.route.lazy)) {\n throw getInternalRouterError(400, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: routeMatch == null ? void 0 : routeMatch.route.id\n });\n }\n let requestMatches = routeMatch ? [routeMatch] : getLoaderMatchesUntilBoundary(matches, Object.keys(pendingActionError || {})[0]);\n let matchesToLoad = requestMatches.filter(m => m.route.loader || m.route.lazy);\n // Short circuit if we have no loaders to run (query())\n if (matchesToLoad.length === 0) {\n return {\n matches,\n // Add a null for all matched routes for proper revalidation on the client\n loaderData: matches.reduce((acc, m) => Object.assign(acc, {\n [m.route.id]: null\n }), {}),\n errors: pendingActionError || null,\n statusCode: 200,\n loaderHeaders: {},\n activeDeferreds: null\n };\n }\n let results = await Promise.all([...matchesToLoad.map(match => callLoaderOrAction(\"loader\", request, match, matches, manifest, mapRouteProperties, basename, future.v7_relativeSplatPath, {\n isStaticRequest: true,\n isRouteRequest,\n requestContext\n }))]);\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest, future);\n }\n // Process and commit output from loaders\n let activeDeferreds = new Map();\n let context = processRouteLoaderData(matches, matchesToLoad, results, pendingActionError, activeDeferreds);\n // Add a null for any non-loader matches for proper revalidation on the client\n let executedLoaders = new Set(matchesToLoad.map(match => match.route.id));\n matches.forEach(match => {\n if (!executedLoaders.has(match.route.id)) {\n context.loaderData[match.route.id] = null;\n }\n });\n return _extends({}, context, {\n matches,\n activeDeferreds: activeDeferreds.size > 0 ? Object.fromEntries(activeDeferreds.entries()) : null\n });\n }\n return {\n dataRoutes,\n query,\n queryRoute\n };\n}\n//#endregion\n////////////////////////////////////////////////////////////////////////////////\n//#region Helpers\n////////////////////////////////////////////////////////////////////////////////\n/**\n * Given an existing StaticHandlerContext and an error thrown at render time,\n * provide an updated StaticHandlerContext suitable for a second SSR render\n */\nfunction getStaticContextFromError(routes, context, error) {\n let newContext = _extends({}, context, {\n statusCode: isRouteErrorResponse(error) ? error.status : 500,\n errors: {\n [context._deepestRenderedBoundaryId || routes[0].id]: error\n }\n });\n return newContext;\n}\nfunction throwStaticHandlerAbortedError(request, isRouteRequest, future) {\n if (future.v7_throwAbortReason && request.signal.reason !== undefined) {\n throw request.signal.reason;\n }\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(method + \"() call aborted: \" + request.method + \" \" + request.url);\n}\nfunction isSubmissionNavigation(opts) {\n return opts != null && (\"formData\" in opts && opts.formData != null || \"body\" in opts && opts.body !== undefined);\n}\nfunction normalizeTo(location, matches, basename, prependBasename, to, v7_relativeSplatPath, fromRouteId, relative) {\n let contextualMatches;\n let activeRouteMatch;\n if (fromRouteId) {\n // Grab matches up to the calling route so our route-relative logic is\n // relative to the correct source route\n contextualMatches = [];\n for (let match of matches) {\n contextualMatches.push(match);\n if (match.route.id === fromRouteId) {\n activeRouteMatch = match;\n break;\n }\n }\n } else {\n contextualMatches = matches;\n activeRouteMatch = matches[matches.length - 1];\n }\n // Resolve the relative path\n let path = resolveTo(to ? to : \".\", getResolveToMatches(contextualMatches, v7_relativeSplatPath), stripBasename(location.pathname, basename) || location.pathname, relative === \"path\");\n // When `to` is not specified we inherit search/hash from the current\n // location, unlike when to=\".\" and we just inherit the path.\n // See https://github.com/remix-run/remix/issues/927\n if (to == null) {\n path.search = location.search;\n path.hash = location.hash;\n }\n // Add an ?index param for matched index routes if we don't already have one\n if ((to == null || to === \"\" || to === \".\") && activeRouteMatch && activeRouteMatch.route.index && !hasNakedIndexQuery(path.search)) {\n path.search = path.search ? path.search.replace(/^\\?/, \"?index&\") : \"?index\";\n }\n // If we're operating within a basename, prepend it to the pathname. If\n // this is a root navigation, then just use the raw basename which allows\n // the basename to have full control over the presence of a trailing slash\n // on root actions\n if (prependBasename && basename !== \"/\") {\n path.pathname = path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\n }\n return createPath(path);\n}\n// Normalize navigation options by converting formMethod=GET formData objects to\n// URLSearchParams so they behave identically to links with query params\nfunction normalizeNavigateOptions(normalizeFormMethod, isFetcher, path, opts) {\n // Return location verbatim on non-submission navigations\n if (!opts || !isSubmissionNavigation(opts)) {\n return {\n path\n };\n }\n if (opts.formMethod && !isValidMethod(opts.formMethod)) {\n return {\n path,\n error: getInternalRouterError(405, {\n method: opts.formMethod\n })\n };\n }\n let getInvalidBodyError = () => ({\n path,\n error: getInternalRouterError(400, {\n type: \"invalid-body\"\n })\n });\n // Create a Submission on non-GET navigations\n let rawFormMethod = opts.formMethod || \"get\";\n let formMethod = normalizeFormMethod ? rawFormMethod.toUpperCase() : rawFormMethod.toLowerCase();\n let formAction = stripHashFromPath(path);\n if (opts.body !== undefined) {\n if (opts.formEncType === \"text/plain\") {\n // text only support POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n let text = typeof opts.body === \"string\" ? opts.body : opts.body instanceof FormData || opts.body instanceof URLSearchParams ?\n // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#plain-text-form-data\n Array.from(opts.body.entries()).reduce((acc, _ref5) => {\n let [name, value] = _ref5;\n return \"\" + acc + name + \"=\" + value + \"\\n\";\n }, \"\") : String(opts.body);\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json: undefined,\n text\n }\n };\n } else if (opts.formEncType === \"application/json\") {\n // json only supports POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n try {\n let json = typeof opts.body === \"string\" ? JSON.parse(opts.body) : opts.body;\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json,\n text: undefined\n }\n };\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n }\n invariant(typeof FormData === \"function\", \"FormData is not available in this environment\");\n let searchParams;\n let formData;\n if (opts.formData) {\n searchParams = convertFormDataToSearchParams(opts.formData);\n formData = opts.formData;\n } else if (opts.body instanceof FormData) {\n searchParams = convertFormDataToSearchParams(opts.body);\n formData = opts.body;\n } else if (opts.body instanceof URLSearchParams) {\n searchParams = opts.body;\n formData = convertSearchParamsToFormData(searchParams);\n } else if (opts.body == null) {\n searchParams = new URLSearchParams();\n formData = new FormData();\n } else {\n try {\n searchParams = new URLSearchParams(opts.body);\n formData = convertSearchParamsToFormData(searchParams);\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n let submission = {\n formMethod,\n formAction,\n formEncType: opts && opts.formEncType || \"application/x-www-form-urlencoded\",\n formData,\n json: undefined,\n text: undefined\n };\n if (isMutationMethod(submission.formMethod)) {\n return {\n path,\n submission\n };\n }\n // Flatten submission onto URLSearchParams for GET submissions\n let parsedPath = parsePath(path);\n // On GET navigation submissions we can drop the ?index param from the\n // resulting location since all loaders will run. But fetcher GET submissions\n // only run a single loader so we need to preserve any incoming ?index params\n if (isFetcher && parsedPath.search && hasNakedIndexQuery(parsedPath.search)) {\n searchParams.append(\"index\", \"\");\n }\n parsedPath.search = \"?\" + searchParams;\n return {\n path: createPath(parsedPath),\n submission\n };\n}\n// Filter out all routes below any caught error as they aren't going to\n// render so we don't need to load them\nfunction getLoaderMatchesUntilBoundary(matches, boundaryId) {\n let boundaryMatches = matches;\n if (boundaryId) {\n let index = matches.findIndex(m => m.route.id === boundaryId);\n if (index >= 0) {\n boundaryMatches = matches.slice(0, index);\n }\n }\n return boundaryMatches;\n}\nfunction getMatchesToLoad(history, state, matches, submission, location, isInitialLoad, isRevalidationRequired, cancelledDeferredRoutes, cancelledFetcherLoads, deletedFetchers, fetchLoadMatches, fetchRedirectIds, routesToUse, basename, pendingActionData, pendingError) {\n let actionResult = pendingError ? Object.values(pendingError)[0] : pendingActionData ? Object.values(pendingActionData)[0] : undefined;\n let currentUrl = history.createURL(state.location);\n let nextUrl = history.createURL(location);\n // Pick navigation matches that are net-new or qualify for revalidation\n let boundaryId = pendingError ? Object.keys(pendingError)[0] : undefined;\n let boundaryMatches = getLoaderMatchesUntilBoundary(matches, boundaryId);\n let navigationMatches = boundaryMatches.filter((match, index) => {\n let {\n route\n } = match;\n if (route.lazy) {\n // We haven't loaded this route yet so we don't know if it's got a loader!\n return true;\n }\n if (route.loader == null) {\n return false;\n }\n if (isInitialLoad) {\n if (route.loader.hydrate) {\n return true;\n }\n return state.loaderData[route.id] === undefined && (\n // Don't re-run if the loader ran and threw an error\n !state.errors || state.errors[route.id] === undefined);\n }\n // Always call the loader on new route instances and pending defer cancellations\n if (isNewLoader(state.loaderData, state.matches[index], match) || cancelledDeferredRoutes.some(id => id === match.route.id)) {\n return true;\n }\n // This is the default implementation for when we revalidate. If the route\n // provides it's own implementation, then we give them full control but\n // provide this value so they can leverage it if needed after they check\n // their own specific use cases\n let currentRouteMatch = state.matches[index];\n let nextRouteMatch = match;\n return shouldRevalidateLoader(match, _extends({\n currentUrl,\n currentParams: currentRouteMatch.params,\n nextUrl,\n nextParams: nextRouteMatch.params\n }, submission, {\n actionResult,\n defaultShouldRevalidate:\n // Forced revalidation due to submission, useRevalidator, or X-Remix-Revalidate\n isRevalidationRequired ||\n // Clicked the same link, resubmitted a GET form\n currentUrl.pathname + currentUrl.search === nextUrl.pathname + nextUrl.search ||\n // Search params affect all loaders\n currentUrl.search !== nextUrl.search || isNewRouteInstance(currentRouteMatch, nextRouteMatch)\n }));\n });\n // Pick fetcher.loads that need to be revalidated\n let revalidatingFetchers = [];\n fetchLoadMatches.forEach((f, key) => {\n // Don't revalidate:\n // - on initial load (shouldn't be any fetchers then anyway)\n // - if fetcher won't be present in the subsequent render\n // - no longer matches the URL (v7_fetcherPersist=false)\n // - was unmounted but persisted due to v7_fetcherPersist=true\n if (isInitialLoad || !matches.some(m => m.route.id === f.routeId) || deletedFetchers.has(key)) {\n return;\n }\n let fetcherMatches = matchRoutes(routesToUse, f.path, basename);\n // If the fetcher path no longer matches, push it in with null matches so\n // we can trigger a 404 in callLoadersAndMaybeResolveData. Note this is\n // currently only a use-case for Remix HMR where the route tree can change\n // at runtime and remove a route previously loaded via a fetcher\n if (!fetcherMatches) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: null,\n match: null,\n controller: null\n });\n return;\n }\n // Revalidating fetchers are decoupled from the route matches since they\n // load from a static href. They revalidate based on explicit revalidation\n // (submission, useRevalidator, or X-Remix-Revalidate)\n let fetcher = state.fetchers.get(key);\n let fetcherMatch = getTargetMatch(fetcherMatches, f.path);\n let shouldRevalidate = false;\n if (fetchRedirectIds.has(key)) {\n // Never trigger a revalidation of an actively redirecting fetcher\n shouldRevalidate = false;\n } else if (cancelledFetcherLoads.includes(key)) {\n // Always revalidate if the fetcher was cancelled\n shouldRevalidate = true;\n } else if (fetcher && fetcher.state !== \"idle\" && fetcher.data === undefined) {\n // If the fetcher hasn't ever completed loading yet, then this isn't a\n // revalidation, it would just be a brand new load if an explicit\n // revalidation is required\n shouldRevalidate = isRevalidationRequired;\n } else {\n // Otherwise fall back on any user-defined shouldRevalidate, defaulting\n // to explicit revalidations only\n shouldRevalidate = shouldRevalidateLoader(fetcherMatch, _extends({\n currentUrl,\n currentParams: state.matches[state.matches.length - 1].params,\n nextUrl,\n nextParams: matches[matches.length - 1].params\n }, submission, {\n actionResult,\n defaultShouldRevalidate: isRevalidationRequired\n }));\n }\n if (shouldRevalidate) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: fetcherMatches,\n match: fetcherMatch,\n controller: new AbortController()\n });\n }\n });\n return [navigationMatches, revalidatingFetchers];\n}\nfunction isNewLoader(currentLoaderData, currentMatch, match) {\n let isNew =\n // [a] -> [a, b]\n !currentMatch ||\n // [a, b] -> [a, c]\n match.route.id !== currentMatch.route.id;\n // Handle the case that we don't have data for a re-used route, potentially\n // from a prior error or from a cancelled pending deferred\n let isMissingData = currentLoaderData[match.route.id] === undefined;\n // Always load if this is a net-new route or we don't yet have data\n return isNew || isMissingData;\n}\nfunction isNewRouteInstance(currentMatch, match) {\n let currentPath = currentMatch.route.path;\n return (\n // param change for this match, /users/123 -> /users/456\n currentMatch.pathname !== match.pathname ||\n // splat param changed, which is not present in match.path\n // e.g. /files/images/avatar.jpg -> files/finances.xls\n currentPath != null && currentPath.endsWith(\"*\") && currentMatch.params[\"*\"] !== match.params[\"*\"]\n );\n}\nfunction shouldRevalidateLoader(loaderMatch, arg) {\n if (loaderMatch.route.shouldRevalidate) {\n let routeChoice = loaderMatch.route.shouldRevalidate(arg);\n if (typeof routeChoice === \"boolean\") {\n return routeChoice;\n }\n }\n return arg.defaultShouldRevalidate;\n}\n/**\n * Execute route.lazy() methods to lazily load route modules (loader, action,\n * shouldRevalidate) and update the routeManifest in place which shares objects\n * with dataRoutes so those get updated as well.\n */\nasync function loadLazyRouteModule(route, mapRouteProperties, manifest) {\n if (!route.lazy) {\n return;\n }\n let lazyRoute = await route.lazy();\n // If the lazy route function was executed and removed by another parallel\n // call then we can return - first lazy() to finish wins because the return\n // value of lazy is expected to be static\n if (!route.lazy) {\n return;\n }\n let routeToUpdate = manifest[route.id];\n invariant(routeToUpdate, \"No route found in manifest\");\n // Update the route in place. This should be safe because there's no way\n // we could yet be sitting on this route as we can't get there without\n // resolving lazy() first.\n //\n // This is different than the HMR \"update\" use-case where we may actively be\n // on the route being updated. The main concern boils down to \"does this\n // mutation affect any ongoing navigations or any current state.matches\n // values?\". If not, it should be safe to update in place.\n let routeUpdates = {};\n for (let lazyRouteProperty in lazyRoute) {\n let staticRouteValue = routeToUpdate[lazyRouteProperty];\n let isPropertyStaticallyDefined = staticRouteValue !== undefined &&\n // This property isn't static since it should always be updated based\n // on the route updates\n lazyRouteProperty !== \"hasErrorBoundary\";\n warning(!isPropertyStaticallyDefined, \"Route \\\"\" + routeToUpdate.id + \"\\\" has a static property \\\"\" + lazyRouteProperty + \"\\\" \" + \"defined but its lazy function is also returning a value for this property. \" + (\"The lazy route property \\\"\" + lazyRouteProperty + \"\\\" will be ignored.\"));\n if (!isPropertyStaticallyDefined && !immutableRouteKeys.has(lazyRouteProperty)) {\n routeUpdates[lazyRouteProperty] = lazyRoute[lazyRouteProperty];\n }\n }\n // Mutate the route with the provided updates. Do this first so we pass\n // the updated version to mapRouteProperties\n Object.assign(routeToUpdate, routeUpdates);\n // Mutate the `hasErrorBoundary` property on the route based on the route\n // updates and remove the `lazy` function so we don't resolve the lazy\n // route again.\n Object.assign(routeToUpdate, _extends({}, mapRouteProperties(routeToUpdate), {\n lazy: undefined\n }));\n}\nasync function callLoaderOrAction(type, request, match, matches, manifest, mapRouteProperties, basename, v7_relativeSplatPath, opts) {\n if (opts === void 0) {\n opts = {};\n }\n let resultType;\n let result;\n let onReject;\n let runHandler = handler => {\n // Setup a promise we can race against so that abort signals short circuit\n let reject;\n let abortPromise = new Promise((_, r) => reject = r);\n onReject = () => reject();\n request.signal.addEventListener(\"abort\", onReject);\n return Promise.race([handler({\n request,\n params: match.params,\n context: opts.requestContext\n }), abortPromise]);\n };\n try {\n let handler = match.route[type];\n if (match.route.lazy) {\n if (handler) {\n // Run statically defined handler in parallel with lazy()\n let handlerError;\n let values = await Promise.all([\n // If the handler throws, don't let it immediately bubble out,\n // since we need to let the lazy() execution finish so we know if this\n // route has a boundary that can handle the error\n runHandler(handler).catch(e => {\n handlerError = e;\n }), loadLazyRouteModule(match.route, mapRouteProperties, manifest)]);\n if (handlerError) {\n throw handlerError;\n }\n result = values[0];\n } else {\n // Load lazy route module, then run any returned handler\n await loadLazyRouteModule(match.route, mapRouteProperties, manifest);\n handler = match.route[type];\n if (handler) {\n // Handler still run even if we got interrupted to maintain consistency\n // with un-abortable behavior of handler execution on non-lazy or\n // previously-lazy-loaded routes\n result = await runHandler(handler);\n } else if (type === \"action\") {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(405, {\n method: request.method,\n pathname,\n routeId: match.route.id\n });\n } else {\n // lazy() route has no loader to run. Short circuit here so we don't\n // hit the invariant below that errors on returning undefined.\n return {\n type: ResultType.data,\n data: undefined\n };\n }\n }\n } else if (!handler) {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(404, {\n pathname\n });\n } else {\n result = await runHandler(handler);\n }\n invariant(result !== undefined, \"You defined \" + (type === \"action\" ? \"an action\" : \"a loader\") + \" for route \" + (\"\\\"\" + match.route.id + \"\\\" but didn't return anything from your `\" + type + \"` \") + \"function. Please return a value or `null`.\");\n } catch (e) {\n resultType = ResultType.error;\n result = e;\n } finally {\n if (onReject) {\n request.signal.removeEventListener(\"abort\", onReject);\n }\n }\n if (isResponse(result)) {\n let status = result.status;\n // Process redirects\n if (redirectStatusCodes.has(status)) {\n let location = result.headers.get(\"Location\");\n invariant(location, \"Redirects returned/thrown from loaders/actions must have a Location header\");\n // Support relative routing in internal redirects\n if (!ABSOLUTE_URL_REGEX.test(location)) {\n location = normalizeTo(new URL(request.url), matches.slice(0, matches.indexOf(match) + 1), basename, true, location, v7_relativeSplatPath);\n } else if (!opts.isStaticRequest) {\n // Strip off the protocol+origin for same-origin + same-basename absolute\n // redirects. If this is a static request, we can let it go back to the\n // browser as-is\n let currentUrl = new URL(request.url);\n let url = location.startsWith(\"//\") ? new URL(currentUrl.protocol + location) : new URL(location);\n let isSameBasename = stripBasename(url.pathname, basename) != null;\n if (url.origin === currentUrl.origin && isSameBasename) {\n location = url.pathname + url.search + url.hash;\n }\n }\n // Don't process redirects in the router during static requests requests.\n // Instead, throw the Response and let the server handle it with an HTTP\n // redirect. We also update the Location header in place in this flow so\n // basename and relative routing is taken into account\n if (opts.isStaticRequest) {\n result.headers.set(\"Location\", location);\n throw result;\n }\n return {\n type: ResultType.redirect,\n status,\n location,\n revalidate: result.headers.get(\"X-Remix-Revalidate\") !== null,\n reloadDocument: result.headers.get(\"X-Remix-Reload-Document\") !== null\n };\n }\n // For SSR single-route requests, we want to hand Responses back directly\n // without unwrapping. We do this with the QueryRouteResponse wrapper\n // interface so we can know whether it was returned or thrown\n if (opts.isRouteRequest) {\n let queryRouteResponse = {\n type: resultType === ResultType.error ? ResultType.error : ResultType.data,\n response: result\n };\n throw queryRouteResponse;\n }\n let data;\n try {\n let contentType = result.headers.get(\"Content-Type\");\n // Check between word boundaries instead of startsWith() due to the last\n // paragraph of https://httpwg.org/specs/rfc9110.html#field.content-type\n if (contentType && /\\bapplication\\/json\\b/.test(contentType)) {\n if (result.body == null) {\n data = null;\n } else {\n data = await result.json();\n }\n } else {\n data = await result.text();\n }\n } catch (e) {\n return {\n type: ResultType.error,\n error: e\n };\n }\n if (resultType === ResultType.error) {\n return {\n type: resultType,\n error: new ErrorResponseImpl(status, result.statusText, data),\n headers: result.headers\n };\n }\n return {\n type: ResultType.data,\n data,\n statusCode: result.status,\n headers: result.headers\n };\n }\n if (resultType === ResultType.error) {\n return {\n type: resultType,\n error: result\n };\n }\n if (isDeferredData(result)) {\n var _result$init, _result$init2;\n return {\n type: ResultType.deferred,\n deferredData: result,\n statusCode: (_result$init = result.init) == null ? void 0 : _result$init.status,\n headers: ((_result$init2 = result.init) == null ? void 0 : _result$init2.headers) && new Headers(result.init.headers)\n };\n }\n return {\n type: ResultType.data,\n data: result\n };\n}\n// Utility method for creating the Request instances for loaders/actions during\n// client-side navigations and fetches. During SSR we will always have a\n// Request instance from the static handler (query/queryRoute)\nfunction createClientSideRequest(history, location, signal, submission) {\n let url = history.createURL(stripHashFromPath(location)).toString();\n let init = {\n signal\n };\n if (submission && isMutationMethod(submission.formMethod)) {\n let {\n formMethod,\n formEncType\n } = submission;\n // Didn't think we needed this but it turns out unlike other methods, patch\n // won't be properly normalized to uppercase and results in a 405 error.\n // See: https://fetch.spec.whatwg.org/#concept-method\n init.method = formMethod.toUpperCase();\n if (formEncType === \"application/json\") {\n init.headers = new Headers({\n \"Content-Type\": formEncType\n });\n init.body = JSON.stringify(submission.json);\n } else if (formEncType === \"text/plain\") {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.text;\n } else if (formEncType === \"application/x-www-form-urlencoded\" && submission.formData) {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = convertFormDataToSearchParams(submission.formData);\n } else {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.formData;\n }\n }\n return new Request(url, init);\n}\nfunction convertFormDataToSearchParams(formData) {\n let searchParams = new URLSearchParams();\n for (let [key, value] of formData.entries()) {\n // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#converting-an-entry-list-to-a-list-of-name-value-pairs\n searchParams.append(key, typeof value === \"string\" ? value : value.name);\n }\n return searchParams;\n}\nfunction convertSearchParamsToFormData(searchParams) {\n let formData = new FormData();\n for (let [key, value] of searchParams.entries()) {\n formData.append(key, value);\n }\n return formData;\n}\nfunction processRouteLoaderData(matches, matchesToLoad, results, pendingError, activeDeferreds) {\n // Fill in loaderData/errors from our loaders\n let loaderData = {};\n let errors = null;\n let statusCode;\n let foundError = false;\n let loaderHeaders = {};\n // Process loader results into state.loaderData/state.errors\n results.forEach((result, index) => {\n let id = matchesToLoad[index].route.id;\n invariant(!isRedirectResult(result), \"Cannot handle redirect results in processLoaderData\");\n if (isErrorResult(result)) {\n // Look upwards from the matched route for the closest ancestor\n // error boundary, defaulting to the root match\n let boundaryMatch = findNearestBoundary(matches, id);\n let error = result.error;\n // If we have a pending action error, we report it at the highest-route\n // that throws a loader error, and then clear it out to indicate that\n // it was consumed\n if (pendingError) {\n error = Object.values(pendingError)[0];\n pendingError = undefined;\n }\n errors = errors || {};\n // Prefer higher error values if lower errors bubble to the same boundary\n if (errors[boundaryMatch.route.id] == null) {\n errors[boundaryMatch.route.id] = error;\n }\n // Clear our any prior loaderData for the throwing route\n loaderData[id] = undefined;\n // Once we find our first (highest) error, we set the status code and\n // prevent deeper status codes from overriding\n if (!foundError) {\n foundError = true;\n statusCode = isRouteErrorResponse(result.error) ? result.error.status : 500;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n if (isDeferredResult(result)) {\n activeDeferreds.set(id, result.deferredData);\n loaderData[id] = result.deferredData.data;\n } else {\n loaderData[id] = result.data;\n }\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (result.statusCode != null && result.statusCode !== 200 && !foundError) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n }\n });\n // If we didn't consume the pending action error (i.e., all loaders\n // resolved), then consume it here. Also clear out any loaderData for the\n // throwing route\n if (pendingError) {\n errors = pendingError;\n loaderData[Object.keys(pendingError)[0]] = undefined;\n }\n return {\n loaderData,\n errors,\n statusCode: statusCode || 200,\n loaderHeaders\n };\n}\nfunction processLoaderData(state, matches, matchesToLoad, results, pendingError, revalidatingFetchers, fetcherResults, activeDeferreds) {\n let {\n loaderData,\n errors\n } = processRouteLoaderData(matches, matchesToLoad, results, pendingError, activeDeferreds);\n // Process results from our revalidating fetchers\n for (let index = 0; index < revalidatingFetchers.length; index++) {\n let {\n key,\n match,\n controller\n } = revalidatingFetchers[index];\n invariant(fetcherResults !== undefined && fetcherResults[index] !== undefined, \"Did not find corresponding fetcher result\");\n let result = fetcherResults[index];\n // Process fetcher non-redirect errors\n if (controller && controller.signal.aborted) {\n // Nothing to do for aborted fetchers\n continue;\n } else if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, match == null ? void 0 : match.route.id);\n if (!(errors && errors[boundaryMatch.route.id])) {\n errors = _extends({}, errors, {\n [boundaryMatch.route.id]: result.error\n });\n }\n state.fetchers.delete(key);\n } else if (isRedirectResult(result)) {\n // Should never get here, redirects should get processed above, but we\n // keep this to type narrow to a success result in the else\n invariant(false, \"Unhandled fetcher revalidation redirect\");\n } else if (isDeferredResult(result)) {\n // Should never get here, deferred data should be awaited for fetchers\n // in resolveDeferredResults\n invariant(false, \"Unhandled fetcher deferred data\");\n } else {\n let doneFetcher = getDoneFetcher(result.data);\n state.fetchers.set(key, doneFetcher);\n }\n }\n return {\n loaderData,\n errors\n };\n}\nfunction mergeLoaderData(loaderData, newLoaderData, matches, errors) {\n let mergedLoaderData = _extends({}, newLoaderData);\n for (let match of matches) {\n let id = match.route.id;\n if (newLoaderData.hasOwnProperty(id)) {\n if (newLoaderData[id] !== undefined) {\n mergedLoaderData[id] = newLoaderData[id];\n }\n } else if (loaderData[id] !== undefined && match.route.loader) {\n // Preserve existing keys not included in newLoaderData and where a loader\n // wasn't removed by HMR\n mergedLoaderData[id] = loaderData[id];\n }\n if (errors && errors.hasOwnProperty(id)) {\n // Don't keep any loader data below the boundary\n break;\n }\n }\n return mergedLoaderData;\n}\n// Find the nearest error boundary, looking upwards from the leaf route (or the\n// route specified by routeId) for the closest ancestor error boundary,\n// defaulting to the root match\nfunction findNearestBoundary(matches, routeId) {\n let eligibleMatches = routeId ? matches.slice(0, matches.findIndex(m => m.route.id === routeId) + 1) : [...matches];\n return eligibleMatches.reverse().find(m => m.route.hasErrorBoundary === true) || matches[0];\n}\nfunction getShortCircuitMatches(routes) {\n // Prefer a root layout route if present, otherwise shim in a route object\n let route = routes.length === 1 ? routes[0] : routes.find(r => r.index || !r.path || r.path === \"/\") || {\n id: \"__shim-error-route__\"\n };\n return {\n matches: [{\n params: {},\n pathname: \"\",\n pathnameBase: \"\",\n route\n }],\n route\n };\n}\nfunction getInternalRouterError(status, _temp5) {\n let {\n pathname,\n routeId,\n method,\n type\n } = _temp5 === void 0 ? {} : _temp5;\n let statusText = \"Unknown Server Error\";\n let errorMessage = \"Unknown @remix-run/router error\";\n if (status === 400) {\n statusText = \"Bad Request\";\n if (method && pathname && routeId) {\n errorMessage = \"You made a \" + method + \" request to \\\"\" + pathname + \"\\\" but \" + (\"did not provide a `loader` for route \\\"\" + routeId + \"\\\", \") + \"so there is no way to handle the request.\";\n } else if (type === \"defer-action\") {\n errorMessage = \"defer() is not supported in actions\";\n } else if (type === \"invalid-body\") {\n errorMessage = \"Unable to encode submission body\";\n }\n } else if (status === 403) {\n statusText = \"Forbidden\";\n errorMessage = \"Route \\\"\" + routeId + \"\\\" does not match URL \\\"\" + pathname + \"\\\"\";\n } else if (status === 404) {\n statusText = \"Not Found\";\n errorMessage = \"No route matches URL \\\"\" + pathname + \"\\\"\";\n } else if (status === 405) {\n statusText = \"Method Not Allowed\";\n if (method && pathname && routeId) {\n errorMessage = \"You made a \" + method.toUpperCase() + \" request to \\\"\" + pathname + \"\\\" but \" + (\"did not provide an `action` for route \\\"\" + routeId + \"\\\", \") + \"so there is no way to handle the request.\";\n } else if (method) {\n errorMessage = \"Invalid request method \\\"\" + method.toUpperCase() + \"\\\"\";\n }\n }\n return new ErrorResponseImpl(status || 500, statusText, new Error(errorMessage), true);\n}\n// Find any returned redirect errors, starting from the lowest match\nfunction findRedirect(results) {\n for (let i = results.length - 1; i >= 0; i--) {\n let result = results[i];\n if (isRedirectResult(result)) {\n return {\n result,\n idx: i\n };\n }\n }\n}\nfunction stripHashFromPath(path) {\n let parsedPath = typeof path === \"string\" ? parsePath(path) : path;\n return createPath(_extends({}, parsedPath, {\n hash: \"\"\n }));\n}\nfunction isHashChangeOnly(a, b) {\n if (a.pathname !== b.pathname || a.search !== b.search) {\n return false;\n }\n if (a.hash === \"\") {\n // /page -> /page#hash\n return b.hash !== \"\";\n } else if (a.hash === b.hash) {\n // /page#hash -> /page#hash\n return true;\n } else if (b.hash !== \"\") {\n // /page#hash -> /page#other\n return true;\n }\n // If the hash is removed the browser will re-perform a request to the server\n // /page#hash -> /page\n return false;\n}\nfunction isDeferredResult(result) {\n return result.type === ResultType.deferred;\n}\nfunction isErrorResult(result) {\n return result.type === ResultType.error;\n}\nfunction isRedirectResult(result) {\n return (result && result.type) === ResultType.redirect;\n}\nfunction isDeferredData(value) {\n let deferred = value;\n return deferred && typeof deferred === \"object\" && typeof deferred.data === \"object\" && typeof deferred.subscribe === \"function\" && typeof deferred.cancel === \"function\" && typeof deferred.resolveData === \"function\";\n}\nfunction isResponse(value) {\n return value != null && typeof value.status === \"number\" && typeof value.statusText === \"string\" && typeof value.headers === \"object\" && typeof value.body !== \"undefined\";\n}\nfunction isRedirectResponse(result) {\n if (!isResponse(result)) {\n return false;\n }\n let status = result.status;\n let location = result.headers.get(\"Location\");\n return status >= 300 && status <= 399 && location != null;\n}\nfunction isQueryRouteResponse(obj) {\n return obj && isResponse(obj.response) && (obj.type === ResultType.data || obj.type === ResultType.error);\n}\nfunction isValidMethod(method) {\n return validRequestMethods.has(method.toLowerCase());\n}\nfunction isMutationMethod(method) {\n return validMutationMethods.has(method.toLowerCase());\n}\nasync function resolveDeferredResults(currentMatches, matchesToLoad, results, signals, isFetcher, currentLoaderData) {\n for (let index = 0; index < results.length; index++) {\n let result = results[index];\n let match = matchesToLoad[index];\n // If we don't have a match, then we can have a deferred result to do\n // anything with. This is for revalidating fetchers where the route was\n // removed during HMR\n if (!match) {\n continue;\n }\n let currentMatch = currentMatches.find(m => m.route.id === match.route.id);\n let isRevalidatingLoader = currentMatch != null && !isNewRouteInstance(currentMatch, match) && (currentLoaderData && currentLoaderData[match.route.id]) !== undefined;\n if (isDeferredResult(result) && (isFetcher || isRevalidatingLoader)) {\n // Note: we do not have to touch activeDeferreds here since we race them\n // against the signal in resolveDeferredData and they'll get aborted\n // there if needed\n let signal = signals[index];\n invariant(signal, \"Expected an AbortSignal for revalidating fetcher deferred result\");\n await resolveDeferredData(result, signal, isFetcher).then(result => {\n if (result) {\n results[index] = result || results[index];\n }\n });\n }\n }\n}\nasync function resolveDeferredData(result, signal, unwrap) {\n if (unwrap === void 0) {\n unwrap = false;\n }\n let aborted = await result.deferredData.resolveData(signal);\n if (aborted) {\n return;\n }\n if (unwrap) {\n try {\n return {\n type: ResultType.data,\n data: result.deferredData.unwrappedData\n };\n } catch (e) {\n // Handle any TrackedPromise._error values encountered while unwrapping\n return {\n type: ResultType.error,\n error: e\n };\n }\n }\n return {\n type: ResultType.data,\n data: result.deferredData.data\n };\n}\nfunction hasNakedIndexQuery(search) {\n return new URLSearchParams(search).getAll(\"index\").some(v => v === \"\");\n}\nfunction getTargetMatch(matches, location) {\n let search = typeof location === \"string\" ? parsePath(location).search : location.search;\n if (matches[matches.length - 1].route.index && hasNakedIndexQuery(search || \"\")) {\n // Return the leaf index route when index is present\n return matches[matches.length - 1];\n }\n // Otherwise grab the deepest \"path contributing\" match (ignoring index and\n // pathless layout routes)\n let pathMatches = getPathContributingMatches(matches);\n return pathMatches[pathMatches.length - 1];\n}\nfunction getSubmissionFromNavigation(navigation) {\n let {\n formMethod,\n formAction,\n formEncType,\n text,\n formData,\n json\n } = navigation;\n if (!formMethod || !formAction || !formEncType) {\n return;\n }\n if (text != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json: undefined,\n text\n };\n } else if (formData != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData,\n json: undefined,\n text: undefined\n };\n } else if (json !== undefined) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json,\n text: undefined\n };\n }\n}\nfunction getLoadingNavigation(location, submission) {\n if (submission) {\n let navigation = {\n state: \"loading\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text\n };\n return navigation;\n } else {\n let navigation = {\n state: \"loading\",\n location,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined\n };\n return navigation;\n }\n}\nfunction getSubmittingNavigation(location, submission) {\n let navigation = {\n state: \"submitting\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text\n };\n return navigation;\n}\nfunction getLoadingFetcher(submission, data) {\n if (submission) {\n let fetcher = {\n state: \"loading\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data\n };\n return fetcher;\n } else {\n let fetcher = {\n state: \"loading\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data\n };\n return fetcher;\n }\n}\nfunction getSubmittingFetcher(submission, existingFetcher) {\n let fetcher = {\n state: \"submitting\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data: existingFetcher ? existingFetcher.data : undefined\n };\n return fetcher;\n}\nfunction getDoneFetcher(data) {\n let fetcher = {\n state: \"idle\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data\n };\n return fetcher;\n}\nfunction restoreAppliedTransitions(_window, transitions) {\n try {\n let sessionPositions = _window.sessionStorage.getItem(TRANSITIONS_STORAGE_KEY);\n if (sessionPositions) {\n let json = JSON.parse(sessionPositions);\n for (let [k, v] of Object.entries(json || {})) {\n if (v && Array.isArray(v)) {\n transitions.set(k, new Set(v || []));\n }\n }\n }\n } catch (e) {\n // no-op, use default empty object\n }\n}\nfunction persistAppliedTransitions(_window, transitions) {\n if (transitions.size > 0) {\n let json = {};\n for (let [k, v] of transitions) {\n json[k] = [...v];\n }\n try {\n _window.sessionStorage.setItem(TRANSITIONS_STORAGE_KEY, JSON.stringify(json));\n } catch (error) {\n warning(false, \"Failed to save applied view transitions in sessionStorage (\" + error + \").\");\n }\n }\n}\n//#endregion\n\nexport { AbortedDeferredError, Action, IDLE_BLOCKER, IDLE_FETCHER, IDLE_NAVIGATION, UNSAFE_DEFERRED_SYMBOL, DeferredData as UNSAFE_DeferredData, ErrorResponseImpl as UNSAFE_ErrorResponseImpl, convertRouteMatchToUiMatch as UNSAFE_convertRouteMatchToUiMatch, convertRoutesToDataRoutes as UNSAFE_convertRoutesToDataRoutes, getResolveToMatches as UNSAFE_getResolveToMatches, invariant as UNSAFE_invariant, warning as UNSAFE_warning, createBrowserHistory, createHashHistory, createMemoryHistory, createPath, createRouter, createStaticHandler, defer, generatePath, getStaticContextFromError, getToPathname, isDeferredData, isRouteErrorResponse, joinPaths, json, matchPath, matchRoutes, normalizePathname, parsePath, redirect, redirectDocument, resolvePath, resolveTo, stripBasename };\n//# sourceMappingURL=router.js.map\n","/**\n * React Router v6.22.3\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nimport * as React from 'react';\nimport { UNSAFE_invariant, joinPaths, matchPath, UNSAFE_getResolveToMatches, UNSAFE_warning, resolveTo, parsePath, matchRoutes, Action, UNSAFE_convertRouteMatchToUiMatch, stripBasename, IDLE_BLOCKER, isRouteErrorResponse, createMemoryHistory, AbortedDeferredError, createRouter } from '@remix-run/router';\nexport { AbortedDeferredError, Action as NavigationType, createPath, defer, generatePath, isRouteErrorResponse, json, matchPath, matchRoutes, parsePath, redirect, redirectDocument, resolvePath } from '@remix-run/router';\n\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\n\n// Create react-specific types from the agnostic types in @remix-run/router to\n// export from react-router\nconst DataRouterContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== \"production\") {\n DataRouterContext.displayName = \"DataRouter\";\n}\nconst DataRouterStateContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== \"production\") {\n DataRouterStateContext.displayName = \"DataRouterState\";\n}\nconst AwaitContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== \"production\") {\n AwaitContext.displayName = \"Await\";\n}\n\n/**\n * A Navigator is a \"location changer\"; it's how you get to different locations.\n *\n * Every history instance conforms to the Navigator interface, but the\n * distinction is useful primarily when it comes to the low-level `<Router>` API\n * where both the location and a navigator must be provided separately in order\n * to avoid \"tearing\" that may occur in a suspense-enabled app if the action\n * and/or location were to be read directly from the history instance.\n */\n\nconst NavigationContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== \"production\") {\n NavigationContext.displayName = \"Navigation\";\n}\nconst LocationContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== \"production\") {\n LocationContext.displayName = \"Location\";\n}\nconst RouteContext = /*#__PURE__*/React.createContext({\n outlet: null,\n matches: [],\n isDataRoute: false\n});\nif (process.env.NODE_ENV !== \"production\") {\n RouteContext.displayName = \"Route\";\n}\nconst RouteErrorContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== \"production\") {\n RouteErrorContext.displayName = \"RouteError\";\n}\n\n/**\n * Returns the full href for the given \"to\" value. This is useful for building\n * custom links that are also accessible and preserve right-click behavior.\n *\n * @see https://reactrouter.com/hooks/use-href\n */\nfunction useHref(to, _temp) {\n let {\n relative\n } = _temp === void 0 ? {} : _temp;\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n \"useHref() may be used only in the context of a <Router> component.\") : UNSAFE_invariant(false) : void 0;\n let {\n basename,\n navigator\n } = React.useContext(NavigationContext);\n let {\n hash,\n pathname,\n search\n } = useResolvedPath(to, {\n relative\n });\n let joinedPathname = pathname;\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to creating the href. If this is a root navigation, then just use the raw\n // basename which allows the basename to have full control over the presence\n // of a trailing slash on root links\n if (basename !== \"/\") {\n joinedPathname = pathname === \"/\" ? basename : joinPaths([basename, pathname]);\n }\n return navigator.createHref({\n pathname: joinedPathname,\n search,\n hash\n });\n}\n\n/**\n * Returns true if this component is a descendant of a `<Router>`.\n *\n * @see https://reactrouter.com/hooks/use-in-router-context\n */\nfunction useInRouterContext() {\n return React.useContext(LocationContext) != null;\n}\n\n/**\n * Returns the current location object, which represents the current URL in web\n * browsers.\n *\n * Note: If you're using this it may mean you're doing some of your own\n * \"routing\" in your app, and we'd like to know what your use case is. We may\n * be able to provide something higher-level to better suit your needs.\n *\n * @see https://reactrouter.com/hooks/use-location\n */\nfunction useLocation() {\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n \"useLocation() may be used only in the context of a <Router> component.\") : UNSAFE_invariant(false) : void 0;\n return React.useContext(LocationContext).location;\n}\n\n/**\n * Returns the current navigation action which describes how the router came to\n * the current location, either by a pop, push, or replace on the history stack.\n *\n * @see https://reactrouter.com/hooks/use-navigation-type\n */\nfunction useNavigationType() {\n return React.useContext(LocationContext).navigationType;\n}\n\n/**\n * Returns a PathMatch object if the given pattern matches the current URL.\n * This is useful for components that need to know \"active\" state, e.g.\n * `<NavLink>`.\n *\n * @see https://reactrouter.com/hooks/use-match\n */\nfunction useMatch(pattern) {\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n \"useMatch() may be used only in the context of a <Router> component.\") : UNSAFE_invariant(false) : void 0;\n let {\n pathname\n } = useLocation();\n return React.useMemo(() => matchPath(pattern, pathname), [pathname, pattern]);\n}\n\n/**\n * The interface for the navigate() function returned from useNavigate().\n */\n\nconst navigateEffectWarning = \"You should call navigate() in a React.useEffect(), not when \" + \"your component is first rendered.\";\n\n// Mute warnings for calls to useNavigate in SSR environments\nfunction useIsomorphicLayoutEffect(cb) {\n let isStatic = React.useContext(NavigationContext).static;\n if (!isStatic) {\n // We should be able to get rid of this once react 18.3 is released\n // See: https://github.com/facebook/react/pull/26395\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useLayoutEffect(cb);\n }\n}\n\n/**\n * Returns an imperative method for changing the location. Used by `<Link>`s, but\n * may also be used by other elements to change the location.\n *\n * @see https://reactrouter.com/hooks/use-navigate\n */\nfunction useNavigate() {\n let {\n isDataRoute\n } = React.useContext(RouteContext);\n // Conditional usage is OK here because the usage of a data router is static\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return isDataRoute ? useNavigateStable() : useNavigateUnstable();\n}\nfunction useNavigateUnstable() {\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n \"useNavigate() may be used only in the context of a <Router> component.\") : UNSAFE_invariant(false) : void 0;\n let dataRouterContext = React.useContext(DataRouterContext);\n let {\n basename,\n future,\n navigator\n } = React.useContext(NavigationContext);\n let {\n matches\n } = React.useContext(RouteContext);\n let {\n pathname: locationPathname\n } = useLocation();\n let routePathnamesJson = JSON.stringify(UNSAFE_getResolveToMatches(matches, future.v7_relativeSplatPath));\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n let navigate = React.useCallback(function (to, options) {\n if (options === void 0) {\n options = {};\n }\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(activeRef.current, navigateEffectWarning) : void 0;\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our history listener yet\n if (!activeRef.current) return;\n if (typeof to === \"number\") {\n navigator.go(to);\n return;\n }\n let path = resolveTo(to, JSON.parse(routePathnamesJson), locationPathname, options.relative === \"path\");\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to handing off to history (but only if we're not in a data router,\n // otherwise it'll prepend the basename inside of the router).\n // If this is a root navigation, then we navigate to the raw basename\n // which allows the basename to have full control over the presence of a\n // trailing slash on root links\n if (dataRouterContext == null && basename !== \"/\") {\n path.pathname = path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\n }\n (!!options.replace ? navigator.replace : navigator.push)(path, options.state, options);\n }, [basename, navigator, routePathnamesJson, locationPathname, dataRouterContext]);\n return navigate;\n}\nconst OutletContext = /*#__PURE__*/React.createContext(null);\n\n/**\n * Returns the context (if provided) for the child route at this level of the route\n * hierarchy.\n * @see https://reactrouter.com/hooks/use-outlet-context\n */\nfunction useOutletContext() {\n return React.useContext(OutletContext);\n}\n\n/**\n * Returns the element for the child route at this level of the route\n * hierarchy. Used internally by `<Outlet>` to render child routes.\n *\n * @see https://reactrouter.com/hooks/use-outlet\n */\nfunction useOutlet(context) {\n let outlet = React.useContext(RouteContext).outlet;\n if (outlet) {\n return /*#__PURE__*/React.createElement(OutletContext.Provider, {\n value: context\n }, outlet);\n }\n return outlet;\n}\n\n/**\n * Returns an object of key/value pairs of the dynamic params from the current\n * URL that were matched by the route path.\n *\n * @see https://reactrouter.com/hooks/use-params\n */\nfunction useParams() {\n let {\n matches\n } = React.useContext(RouteContext);\n let routeMatch = matches[matches.length - 1];\n return routeMatch ? routeMatch.params : {};\n}\n\n/**\n * Resolves the pathname of the given `to` value against the current location.\n *\n * @see https://reactrouter.com/hooks/use-resolved-path\n */\nfunction useResolvedPath(to, _temp2) {\n let {\n relative\n } = _temp2 === void 0 ? {} : _temp2;\n let {\n future\n } = React.useContext(NavigationContext);\n let {\n matches\n } = React.useContext(RouteContext);\n let {\n pathname: locationPathname\n } = useLocation();\n let routePathnamesJson = JSON.stringify(UNSAFE_getResolveToMatches(matches, future.v7_relativeSplatPath));\n return React.useMemo(() => resolveTo(to, JSON.parse(routePathnamesJson), locationPathname, relative === \"path\"), [to, routePathnamesJson, locationPathname, relative]);\n}\n\n/**\n * Returns the element of the route that matched the current location, prepared\n * with the correct context to render the remainder of the route tree. Route\n * elements in the tree must render an `<Outlet>` to render their child route's\n * element.\n *\n * @see https://reactrouter.com/hooks/use-routes\n */\nfunction useRoutes(routes, locationArg) {\n return useRoutesImpl(routes, locationArg);\n}\n\n// Internal implementation with accept optional param for RouterProvider usage\nfunction useRoutesImpl(routes, locationArg, dataRouterState, future) {\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n \"useRoutes() may be used only in the context of a <Router> component.\") : UNSAFE_invariant(false) : void 0;\n let {\n navigator\n } = React.useContext(NavigationContext);\n let {\n matches: parentMatches\n } = React.useContext(RouteContext);\n let routeMatch = parentMatches[parentMatches.length - 1];\n let parentParams = routeMatch ? routeMatch.params : {};\n let parentPathname = routeMatch ? routeMatch.pathname : \"/\";\n let parentPathnameBase = routeMatch ? routeMatch.pathnameBase : \"/\";\n let parentRoute = routeMatch && routeMatch.route;\n if (process.env.NODE_ENV !== \"production\") {\n // You won't get a warning about 2 different <Routes> under a <Route>\n // without a trailing *, but this is a best-effort warning anyway since we\n // cannot even give the warning unless they land at the parent route.\n //\n // Example:\n //\n // <Routes>\n // {/* This route path MUST end with /* because otherwise\n // it will never match /blog/post/123 */}\n // <Route path=\"blog\" element={<Blog />} />\n // <Route path=\"blog/feed\" element={<BlogFeed />} />\n // </Routes>\n //\n // function Blog() {\n // return (\n // <Routes>\n // <Route path=\"post/:id\" element={<Post />} />\n // </Routes>\n // );\n // }\n let parentPath = parentRoute && parentRoute.path || \"\";\n warningOnce(parentPathname, !parentRoute || parentPath.endsWith(\"*\"), \"You rendered descendant <Routes> (or called `useRoutes()`) at \" + (\"\\\"\" + parentPathname + \"\\\" (under <Route path=\\\"\" + parentPath + \"\\\">) but the \") + \"parent route path has no trailing \\\"*\\\". This means if you navigate \" + \"deeper, the parent won't match anymore and therefore the child \" + \"routes will never render.\\n\\n\" + (\"Please change the parent <Route path=\\\"\" + parentPath + \"\\\"> to <Route \") + (\"path=\\\"\" + (parentPath === \"/\" ? \"*\" : parentPath + \"/*\") + \"\\\">.\"));\n }\n let locationFromContext = useLocation();\n let location;\n if (locationArg) {\n var _parsedLocationArg$pa;\n let parsedLocationArg = typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n !(parentPathnameBase === \"/\" || ((_parsedLocationArg$pa = parsedLocationArg.pathname) == null ? void 0 : _parsedLocationArg$pa.startsWith(parentPathnameBase))) ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, \"When overriding the location using `<Routes location>` or `useRoutes(routes, location)`, \" + \"the location pathname must begin with the portion of the URL pathname that was \" + (\"matched by all parent routes. The current pathname base is \\\"\" + parentPathnameBase + \"\\\" \") + (\"but pathname \\\"\" + parsedLocationArg.pathname + \"\\\" was given in the `location` prop.\")) : UNSAFE_invariant(false) : void 0;\n location = parsedLocationArg;\n } else {\n location = locationFromContext;\n }\n let pathname = location.pathname || \"/\";\n let remainingPathname = pathname;\n if (parentPathnameBase !== \"/\") {\n // Determine the remaining pathname by removing the # of URL segments the\n // parentPathnameBase has, instead of removing based on character count.\n // This is because we can't guarantee that incoming/outgoing encodings/\n // decodings will match exactly.\n // We decode paths before matching on a per-segment basis with\n // decodeURIComponent(), but we re-encode pathnames via `new URL()` so they\n // match what `window.location.pathname` would reflect. Those don't 100%\n // align when it comes to encoded URI characters such as % and &.\n //\n // So we may end up with:\n // pathname: \"/descendant/a%25b/match\"\n // parentPathnameBase: \"/descendant/a%b\"\n //\n // And the direct substring removal approach won't work :/\n let parentSegments = parentPathnameBase.replace(/^\\//, \"\").split(\"/\");\n let segments = pathname.replace(/^\\//, \"\").split(\"/\");\n remainingPathname = \"/\" + segments.slice(parentSegments.length).join(\"/\");\n }\n let matches = matchRoutes(routes, {\n pathname: remainingPathname\n });\n if (process.env.NODE_ENV !== \"production\") {\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(parentRoute || matches != null, \"No routes matched location \\\"\" + location.pathname + location.search + location.hash + \"\\\" \") : void 0;\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(matches == null || matches[matches.length - 1].route.element !== undefined || matches[matches.length - 1].route.Component !== undefined || matches[matches.length - 1].route.lazy !== undefined, \"Matched leaf route at location \\\"\" + location.pathname + location.search + location.hash + \"\\\" \" + \"does not have an element or Component. This means it will render an <Outlet /> with a \" + \"null value by default resulting in an \\\"empty\\\" page.\") : void 0;\n }\n let renderedMatches = _renderMatches(matches && matches.map(match => Object.assign({}, match, {\n params: Object.assign({}, parentParams, match.params),\n pathname: joinPaths([parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation ? navigator.encodeLocation(match.pathname).pathname : match.pathname]),\n pathnameBase: match.pathnameBase === \"/\" ? parentPathnameBase : joinPaths([parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation ? navigator.encodeLocation(match.pathnameBase).pathname : match.pathnameBase])\n })), parentMatches, dataRouterState, future);\n\n // When a user passes in a `locationArg`, the associated routes need to\n // be wrapped in a new `LocationContext.Provider` in order for `useLocation`\n // to use the scoped location instead of the global location.\n if (locationArg && renderedMatches) {\n return /*#__PURE__*/React.createElement(LocationContext.Provider, {\n value: {\n location: _extends({\n pathname: \"/\",\n search: \"\",\n hash: \"\",\n state: null,\n key: \"default\"\n }, location),\n navigationType: Action.Pop\n }\n }, renderedMatches);\n }\n return renderedMatches;\n}\nfunction DefaultErrorComponent() {\n let error = useRouteError();\n let message = isRouteErrorResponse(error) ? error.status + \" \" + error.statusText : error instanceof Error ? error.message : JSON.stringify(error);\n let stack = error instanceof Error ? error.stack : null;\n let lightgrey = \"rgba(200,200,200, 0.5)\";\n let preStyles = {\n padding: \"0.5rem\",\n backgroundColor: lightgrey\n };\n let codeStyles = {\n padding: \"2px 4px\",\n backgroundColor: lightgrey\n };\n let devInfo = null;\n if (process.env.NODE_ENV !== \"production\") {\n console.error(\"Error handled by React Router default ErrorBoundary:\", error);\n devInfo = /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"p\", null, \"\\uD83D\\uDCBF Hey developer \\uD83D\\uDC4B\"), /*#__PURE__*/React.createElement(\"p\", null, \"You can provide a way better UX than this when your app throws errors by providing your own \", /*#__PURE__*/React.createElement(\"code\", {\n style: codeStyles\n }, \"ErrorBoundary\"), \" or\", \" \", /*#__PURE__*/React.createElement(\"code\", {\n style: codeStyles\n }, \"errorElement\"), \" prop on your route.\"));\n }\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"h2\", null, \"Unexpected Application Error!\"), /*#__PURE__*/React.createElement(\"h3\", {\n style: {\n fontStyle: \"italic\"\n }\n }, message), stack ? /*#__PURE__*/React.createElement(\"pre\", {\n style: preStyles\n }, stack) : null, devInfo);\n}\nconst defaultErrorElement = /*#__PURE__*/React.createElement(DefaultErrorComponent, null);\nclass RenderErrorBoundary extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n location: props.location,\n revalidation: props.revalidation,\n error: props.error\n };\n }\n static getDerivedStateFromError(error) {\n return {\n error: error\n };\n }\n static getDerivedStateFromProps(props, state) {\n // When we get into an error state, the user will likely click \"back\" to the\n // previous page that didn't have an error. Because this wraps the entire\n // application, that will have no effect--the error page continues to display.\n // This gives us a mechanism to recover from the error when the location changes.\n //\n // Whether we're in an error state or not, we update the location in state\n // so that when we are in an error state, it gets reset when a new location\n // comes in and the user recovers from the error.\n if (state.location !== props.location || state.revalidation !== \"idle\" && props.revalidation === \"idle\") {\n return {\n error: props.error,\n location: props.location,\n revalidation: props.revalidation\n };\n }\n\n // If we're not changing locations, preserve the location but still surface\n // any new errors that may come through. We retain the existing error, we do\n // this because the error provided from the app state may be cleared without\n // the location changing.\n return {\n error: props.error !== undefined ? props.error : state.error,\n location: state.location,\n revalidation: props.revalidation || state.revalidation\n };\n }\n componentDidCatch(error, errorInfo) {\n console.error(\"React Router caught the following error during render\", error, errorInfo);\n }\n render() {\n return this.state.error !== undefined ? /*#__PURE__*/React.createElement(RouteContext.Provider, {\n value: this.props.routeContext\n }, /*#__PURE__*/React.createElement(RouteErrorContext.Provider, {\n value: this.state.error,\n children: this.props.component\n })) : this.props.children;\n }\n}\nfunction RenderedRoute(_ref) {\n let {\n routeContext,\n match,\n children\n } = _ref;\n let dataRouterContext = React.useContext(DataRouterContext);\n\n // Track how deep we got in our render pass to emulate SSR componentDidCatch\n // in a DataStaticRouter\n if (dataRouterContext && dataRouterContext.static && dataRouterContext.staticContext && (match.route.errorElement || match.route.ErrorBoundary)) {\n dataRouterContext.staticContext._deepestRenderedBoundaryId = match.route.id;\n }\n return /*#__PURE__*/React.createElement(RouteContext.Provider, {\n value: routeContext\n }, children);\n}\nfunction _renderMatches(matches, parentMatches, dataRouterState, future) {\n var _dataRouterState2;\n if (parentMatches === void 0) {\n parentMatches = [];\n }\n if (dataRouterState === void 0) {\n dataRouterState = null;\n }\n if (future === void 0) {\n future = null;\n }\n if (matches == null) {\n var _dataRouterState;\n if ((_dataRouterState = dataRouterState) != null && _dataRouterState.errors) {\n // Don't bail if we have data router errors so we can render them in the\n // boundary. Use the pre-matched (or shimmed) matches\n matches = dataRouterState.matches;\n } else {\n return null;\n }\n }\n let renderedMatches = matches;\n\n // If we have data errors, trim matches to the highest error boundary\n let errors = (_dataRouterState2 = dataRouterState) == null ? void 0 : _dataRouterState2.errors;\n if (errors != null) {\n let errorIndex = renderedMatches.findIndex(m => m.route.id && (errors == null ? void 0 : errors[m.route.id]));\n !(errorIndex >= 0) ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, \"Could not find a matching route for errors on route IDs: \" + Object.keys(errors).join(\",\")) : UNSAFE_invariant(false) : void 0;\n renderedMatches = renderedMatches.slice(0, Math.min(renderedMatches.length, errorIndex + 1));\n }\n\n // If we're in a partial hydration mode, detect if we need to render down to\n // a given HydrateFallback while we load the rest of the hydration data\n let renderFallback = false;\n let fallbackIndex = -1;\n if (dataRouterState && future && future.v7_partialHydration) {\n for (let i = 0; i < renderedMatches.length; i++) {\n let match = renderedMatches[i];\n // Track the deepest fallback up until the first route without data\n if (match.route.HydrateFallback || match.route.hydrateFallbackElement) {\n fallbackIndex = i;\n }\n if (match.route.id) {\n let {\n loaderData,\n errors\n } = dataRouterState;\n let needsToRunLoader = match.route.loader && loaderData[match.route.id] === undefined && (!errors || errors[match.route.id] === undefined);\n if (match.route.lazy || needsToRunLoader) {\n // We found the first route that's not ready to render (waiting on\n // lazy, or has a loader that hasn't run yet). Flag that we need to\n // render a fallback and render up until the appropriate fallback\n renderFallback = true;\n if (fallbackIndex >= 0) {\n renderedMatches = renderedMatches.slice(0, fallbackIndex + 1);\n } else {\n renderedMatches = [renderedMatches[0]];\n }\n break;\n }\n }\n }\n }\n return renderedMatches.reduceRight((outlet, match, index) => {\n // Only data routers handle errors/fallbacks\n let error;\n let shouldRenderHydrateFallback = false;\n let errorElement = null;\n let hydrateFallbackElement = null;\n if (dataRouterState) {\n error = errors && match.route.id ? errors[match.route.id] : undefined;\n errorElement = match.route.errorElement || defaultErrorElement;\n if (renderFallback) {\n if (fallbackIndex < 0 && index === 0) {\n warningOnce(\"route-fallback\", false, \"No `HydrateFallback` element provided to render during initial hydration\");\n shouldRenderHydrateFallback = true;\n hydrateFallbackElement = null;\n } else if (fallbackIndex === index) {\n shouldRenderHydrateFallback = true;\n hydrateFallbackElement = match.route.hydrateFallbackElement || null;\n }\n }\n }\n let matches = parentMatches.concat(renderedMatches.slice(0, index + 1));\n let getChildren = () => {\n let children;\n if (error) {\n children = errorElement;\n } else if (shouldRenderHydrateFallback) {\n children = hydrateFallbackElement;\n } else if (match.route.Component) {\n // Note: This is a de-optimized path since React won't re-use the\n // ReactElement since it's identity changes with each new\n // React.createElement call. We keep this so folks can use\n // `<Route Component={...}>` in `<Routes>` but generally `Component`\n // usage is only advised in `RouterProvider` when we can convert it to\n // `element` ahead of time.\n children = /*#__PURE__*/React.createElement(match.route.Component, null);\n } else if (match.route.element) {\n children = match.route.element;\n } else {\n children = outlet;\n }\n return /*#__PURE__*/React.createElement(RenderedRoute, {\n match: match,\n routeContext: {\n outlet,\n matches,\n isDataRoute: dataRouterState != null\n },\n children: children\n });\n };\n // Only wrap in an error boundary within data router usages when we have an\n // ErrorBoundary/errorElement on this route. Otherwise let it bubble up to\n // an ancestor ErrorBoundary/errorElement\n return dataRouterState && (match.route.ErrorBoundary || match.route.errorElement || index === 0) ? /*#__PURE__*/React.createElement(RenderErrorBoundary, {\n location: dataRouterState.location,\n revalidation: dataRouterState.revalidation,\n component: errorElement,\n error: error,\n children: getChildren(),\n routeContext: {\n outlet: null,\n matches,\n isDataRoute: true\n }\n }) : getChildren();\n }, null);\n}\nvar DataRouterHook = /*#__PURE__*/function (DataRouterHook) {\n DataRouterHook[\"UseBlocker\"] = \"useBlocker\";\n DataRouterHook[\"UseRevalidator\"] = \"useRevalidator\";\n DataRouterHook[\"UseNavigateStable\"] = \"useNavigate\";\n return DataRouterHook;\n}(DataRouterHook || {});\nvar DataRouterStateHook = /*#__PURE__*/function (DataRouterStateHook) {\n DataRouterStateHook[\"UseBlocker\"] = \"useBlocker\";\n DataRouterStateHook[\"UseLoaderData\"] = \"useLoaderData\";\n DataRouterStateHook[\"UseActionData\"] = \"useActionData\";\n DataRouterStateHook[\"UseRouteError\"] = \"useRouteError\";\n DataRouterStateHook[\"UseNavigation\"] = \"useNavigation\";\n DataRouterStateHook[\"UseRouteLoaderData\"] = \"useRouteLoaderData\";\n DataRouterStateHook[\"UseMatches\"] = \"useMatches\";\n DataRouterStateHook[\"UseRevalidator\"] = \"useRevalidator\";\n DataRouterStateHook[\"UseNavigateStable\"] = \"useNavigate\";\n DataRouterStateHook[\"UseRouteId\"] = \"useRouteId\";\n return DataRouterStateHook;\n}(DataRouterStateHook || {});\nfunction getDataRouterConsoleError(hookName) {\n return hookName + \" must be used within a data router. See https://reactrouter.com/routers/picking-a-router.\";\n}\nfunction useDataRouterContext(hookName) {\n let ctx = React.useContext(DataRouterContext);\n !ctx ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, getDataRouterConsoleError(hookName)) : UNSAFE_invariant(false) : void 0;\n return ctx;\n}\nfunction useDataRouterState(hookName) {\n let state = React.useContext(DataRouterStateContext);\n !state ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, getDataRouterConsoleError(hookName)) : UNSAFE_invariant(false) : void 0;\n return state;\n}\nfunction useRouteContext(hookName) {\n let route = React.useContext(RouteContext);\n !route ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, getDataRouterConsoleError(hookName)) : UNSAFE_invariant(false) : void 0;\n return route;\n}\n\n// Internal version with hookName-aware debugging\nfunction useCurrentRouteId(hookName) {\n let route = useRouteContext(hookName);\n let thisRoute = route.matches[route.matches.length - 1];\n !thisRoute.route.id ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, hookName + \" can only be used on routes that contain a unique \\\"id\\\"\") : UNSAFE_invariant(false) : void 0;\n return thisRoute.route.id;\n}\n\n/**\n * Returns the ID for the nearest contextual route\n */\nfunction useRouteId() {\n return useCurrentRouteId(DataRouterStateHook.UseRouteId);\n}\n\n/**\n * Returns the current navigation, defaulting to an \"idle\" navigation when\n * no navigation is in progress\n */\nfunction useNavigation() {\n let state = useDataRouterState(DataRouterStateHook.UseNavigation);\n return state.navigation;\n}\n\n/**\n * Returns a revalidate function for manually triggering revalidation, as well\n * as the current state of any manual revalidations\n */\nfunction useRevalidator() {\n let dataRouterContext = useDataRouterContext(DataRouterHook.UseRevalidator);\n let state = useDataRouterState(DataRouterStateHook.UseRevalidator);\n return React.useMemo(() => ({\n revalidate: dataRouterContext.router.revalidate,\n state: state.revalidation\n }), [dataRouterContext.router.revalidate, state.revalidation]);\n}\n\n/**\n * Returns the active route matches, useful for accessing loaderData for\n * parent/child routes or the route \"handle\" property\n */\nfunction useMatches() {\n let {\n matches,\n loaderData\n } = useDataRouterState(DataRouterStateHook.UseMatches);\n return React.useMemo(() => matches.map(m => UNSAFE_convertRouteMatchToUiMatch(m, loaderData)), [matches, loaderData]);\n}\n\n/**\n * Returns the loader data for the nearest ancestor Route loader\n */\nfunction useLoaderData() {\n let state = useDataRouterState(DataRouterStateHook.UseLoaderData);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n if (state.errors && state.errors[routeId] != null) {\n console.error(\"You cannot `useLoaderData` in an errorElement (routeId: \" + routeId + \")\");\n return undefined;\n }\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the loaderData for the given routeId\n */\nfunction useRouteLoaderData(routeId) {\n let state = useDataRouterState(DataRouterStateHook.UseRouteLoaderData);\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the action data for the nearest ancestor Route action\n */\nfunction useActionData() {\n let state = useDataRouterState(DataRouterStateHook.UseActionData);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n return state.actionData ? state.actionData[routeId] : undefined;\n}\n\n/**\n * Returns the nearest ancestor Route error, which could be a loader/action\n * error or a render error. This is intended to be called from your\n * ErrorBoundary/errorElement to display a proper error message.\n */\nfunction useRouteError() {\n var _state$errors;\n let error = React.useContext(RouteErrorContext);\n let state = useDataRouterState(DataRouterStateHook.UseRouteError);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseRouteError);\n\n // If this was a render error, we put it in a RouteError context inside\n // of RenderErrorBoundary\n if (error !== undefined) {\n return error;\n }\n\n // Otherwise look for errors from our data router state\n return (_state$errors = state.errors) == null ? void 0 : _state$errors[routeId];\n}\n\n/**\n * Returns the happy-path data from the nearest ancestor `<Await />` value\n */\nfunction useAsyncValue() {\n let value = React.useContext(AwaitContext);\n return value == null ? void 0 : value._data;\n}\n\n/**\n * Returns the error from the nearest ancestor `<Await />` value\n */\nfunction useAsyncError() {\n let value = React.useContext(AwaitContext);\n return value == null ? void 0 : value._error;\n}\nlet blockerId = 0;\n\n/**\n * Allow the application to block navigations within the SPA and present the\n * user a confirmation dialog to confirm the navigation. Mostly used to avoid\n * using half-filled form data. This does not handle hard-reloads or\n * cross-origin navigations.\n */\nfunction useBlocker(shouldBlock) {\n let {\n router,\n basename\n } = useDataRouterContext(DataRouterHook.UseBlocker);\n let state = useDataRouterState(DataRouterStateHook.UseBlocker);\n let [blockerKey, setBlockerKey] = React.useState(\"\");\n let blockerFunction = React.useCallback(arg => {\n if (typeof shouldBlock !== \"function\") {\n return !!shouldBlock;\n }\n if (basename === \"/\") {\n return shouldBlock(arg);\n }\n\n // If they provided us a function and we've got an active basename, strip\n // it from the locations we expose to the user to match the behavior of\n // useLocation\n let {\n currentLocation,\n nextLocation,\n historyAction\n } = arg;\n return shouldBlock({\n currentLocation: _extends({}, currentLocation, {\n pathname: stripBasename(currentLocation.pathname, basename) || currentLocation.pathname\n }),\n nextLocation: _extends({}, nextLocation, {\n pathname: stripBasename(nextLocation.pathname, basename) || nextLocation.pathname\n }),\n historyAction\n });\n }, [basename, shouldBlock]);\n\n // This effect is in charge of blocker key assignment and deletion (which is\n // tightly coupled to the key)\n React.useEffect(() => {\n let key = String(++blockerId);\n setBlockerKey(key);\n return () => router.deleteBlocker(key);\n }, [router]);\n\n // This effect handles assigning the blockerFunction. This is to handle\n // unstable blocker function identities, and happens only after the prior\n // effect so we don't get an orphaned blockerFunction in the router with a\n // key of \"\". Until then we just have the IDLE_BLOCKER.\n React.useEffect(() => {\n if (blockerKey !== \"\") {\n router.getBlocker(blockerKey, blockerFunction);\n }\n }, [router, blockerKey, blockerFunction]);\n\n // Prefer the blocker from `state` not `router.state` since DataRouterContext\n // is memoized so this ensures we update on blocker state updates\n return blockerKey && state.blockers.has(blockerKey) ? state.blockers.get(blockerKey) : IDLE_BLOCKER;\n}\n\n/**\n * Stable version of useNavigate that is used when we are in the context of\n * a RouterProvider.\n */\nfunction useNavigateStable() {\n let {\n router\n } = useDataRouterContext(DataRouterHook.UseNavigateStable);\n let id = useCurrentRouteId(DataRouterStateHook.UseNavigateStable);\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n let navigate = React.useCallback(function (to, options) {\n if (options === void 0) {\n options = {};\n }\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(activeRef.current, navigateEffectWarning) : void 0;\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our router subscriber yet\n if (!activeRef.current) return;\n if (typeof to === \"number\") {\n router.navigate(to);\n } else {\n router.navigate(to, _extends({\n fromRouteId: id\n }, options));\n }\n }, [router, id]);\n return navigate;\n}\nconst alreadyWarned = {};\nfunction warningOnce(key, cond, message) {\n if (!cond && !alreadyWarned[key]) {\n alreadyWarned[key] = true;\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(false, message) : void 0;\n }\n}\n\n/**\n Webpack + React 17 fails to compile on any of the following because webpack\n complains that `startTransition` doesn't exist in `React`:\n * import { startTransition } from \"react\"\n * import * as React from from \"react\";\n \"startTransition\" in React ? React.startTransition(() => setState()) : setState()\n * import * as React from from \"react\";\n \"startTransition\" in React ? React[\"startTransition\"](() => setState()) : setState()\n\n Moving it to a constant such as the following solves the Webpack/React 17 issue:\n * import * as React from from \"react\";\n const START_TRANSITION = \"startTransition\";\n START_TRANSITION in React ? React[START_TRANSITION](() => setState()) : setState()\n\n However, that introduces webpack/terser minification issues in production builds\n in React 18 where minification/obfuscation ends up removing the call of\n React.startTransition entirely from the first half of the ternary. Grabbing\n this exported reference once up front resolves that issue.\n\n See https://github.com/remix-run/react-router/issues/10579\n*/\nconst START_TRANSITION = \"startTransition\";\nconst startTransitionImpl = React[START_TRANSITION];\n\n/**\n * Given a Remix Router instance, render the appropriate UI\n */\nfunction RouterProvider(_ref) {\n let {\n fallbackElement,\n router,\n future\n } = _ref;\n let [state, setStateImpl] = React.useState(router.state);\n let {\n v7_startTransition\n } = future || {};\n let setState = React.useCallback(newState => {\n if (v7_startTransition && startTransitionImpl) {\n startTransitionImpl(() => setStateImpl(newState));\n } else {\n setStateImpl(newState);\n }\n }, [setStateImpl, v7_startTransition]);\n\n // Need to use a layout effect here so we are subscribed early enough to\n // pick up on any render-driven redirects/navigations (useEffect/<Navigate>)\n React.useLayoutEffect(() => router.subscribe(setState), [router, setState]);\n React.useEffect(() => {\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(fallbackElement == null || !router.future.v7_partialHydration, \"`<RouterProvider fallbackElement>` is deprecated when using \" + \"`v7_partialHydration`, use a `HydrateFallback` component instead\") : void 0;\n // Only log this once on initial mount\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n let navigator = React.useMemo(() => {\n return {\n createHref: router.createHref,\n encodeLocation: router.encodeLocation,\n go: n => router.navigate(n),\n push: (to, state, opts) => router.navigate(to, {\n state,\n preventScrollReset: opts == null ? void 0 : opts.preventScrollReset\n }),\n replace: (to, state, opts) => router.navigate(to, {\n replace: true,\n state,\n preventScrollReset: opts == null ? void 0 : opts.preventScrollReset\n })\n };\n }, [router]);\n let basename = router.basename || \"/\";\n let dataRouterContext = React.useMemo(() => ({\n router,\n navigator,\n static: false,\n basename\n }), [router, navigator, basename]);\n\n // The fragment and {null} here are important! We need them to keep React 18's\n // useId happy when we are server-rendering since we may have a <script> here\n // containing the hydrated server-side staticContext (from StaticRouterProvider).\n // useId relies on the component tree structure to generate deterministic id's\n // so we need to ensure it remains the same on the client even though\n // we don't need the <script> tag\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(DataRouterContext.Provider, {\n value: dataRouterContext\n }, /*#__PURE__*/React.createElement(DataRouterStateContext.Provider, {\n value: state\n }, /*#__PURE__*/React.createElement(Router, {\n basename: basename,\n location: state.location,\n navigationType: state.historyAction,\n navigator: navigator,\n future: {\n v7_relativeSplatPath: router.future.v7_relativeSplatPath\n }\n }, state.initialized || router.future.v7_partialHydration ? /*#__PURE__*/React.createElement(DataRoutes, {\n routes: router.routes,\n future: router.future,\n state: state\n }) : fallbackElement))), null);\n}\nfunction DataRoutes(_ref2) {\n let {\n routes,\n future,\n state\n } = _ref2;\n return useRoutesImpl(routes, undefined, state, future);\n}\n/**\n * A `<Router>` that stores all entries in memory.\n *\n * @see https://reactrouter.com/router-components/memory-router\n */\nfunction MemoryRouter(_ref3) {\n let {\n basename,\n children,\n initialEntries,\n initialIndex,\n future\n } = _ref3;\n let historyRef = React.useRef();\n if (historyRef.current == null) {\n historyRef.current = createMemoryHistory({\n initialEntries,\n initialIndex,\n v5Compat: true\n });\n }\n let history = historyRef.current;\n let [state, setStateImpl] = React.useState({\n action: history.action,\n location: history.location\n });\n let {\n v7_startTransition\n } = future || {};\n let setState = React.useCallback(newState => {\n v7_startTransition && startTransitionImpl ? startTransitionImpl(() => setStateImpl(newState)) : setStateImpl(newState);\n }, [setStateImpl, v7_startTransition]);\n React.useLayoutEffect(() => history.listen(setState), [history, setState]);\n return /*#__PURE__*/React.createElement(Router, {\n basename: basename,\n children: children,\n location: state.location,\n navigationType: state.action,\n navigator: history,\n future: future\n });\n}\n/**\n * Changes the current location.\n *\n * Note: This API is mostly useful in React.Component subclasses that are not\n * able to use hooks. In functional components, we recommend you use the\n * `useNavigate` hook instead.\n *\n * @see https://reactrouter.com/components/navigate\n */\nfunction Navigate(_ref4) {\n let {\n to,\n replace,\n state,\n relative\n } = _ref4;\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, // TODO: This error is probably because they somehow have 2 versions of\n // the router loaded. We can help them understand how to avoid that.\n \"<Navigate> may be used only in the context of a <Router> component.\") : UNSAFE_invariant(false) : void 0;\n let {\n future,\n static: isStatic\n } = React.useContext(NavigationContext);\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(!isStatic, \"<Navigate> must not be used on the initial render in a <StaticRouter>. \" + \"This is a no-op, but you should modify your code so the <Navigate> is \" + \"only ever rendered in response to some user interaction or state change.\") : void 0;\n let {\n matches\n } = React.useContext(RouteContext);\n let {\n pathname: locationPathname\n } = useLocation();\n let navigate = useNavigate();\n\n // Resolve the path outside of the effect so that when effects run twice in\n // StrictMode they navigate to the same place\n let path = resolveTo(to, UNSAFE_getResolveToMatches(matches, future.v7_relativeSplatPath), locationPathname, relative === \"path\");\n let jsonPath = JSON.stringify(path);\n React.useEffect(() => navigate(JSON.parse(jsonPath), {\n replace,\n state,\n relative\n }), [navigate, jsonPath, relative, replace, state]);\n return null;\n}\n/**\n * Renders the child route's element, if there is one.\n *\n * @see https://reactrouter.com/components/outlet\n */\nfunction Outlet(props) {\n return useOutlet(props.context);\n}\n/**\n * Declares an element that should be rendered at a certain URL path.\n *\n * @see https://reactrouter.com/components/route\n */\nfunction Route(_props) {\n process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, \"A <Route> is only ever to be used as the child of <Routes> element, \" + \"never rendered directly. Please wrap your <Route> in a <Routes>.\") : UNSAFE_invariant(false) ;\n}\n/**\n * Provides location context for the rest of the app.\n *\n * Note: You usually won't render a `<Router>` directly. Instead, you'll render a\n * router that is more specific to your environment such as a `<BrowserRouter>`\n * in web browsers or a `<StaticRouter>` for server rendering.\n *\n * @see https://reactrouter.com/router-components/router\n */\nfunction Router(_ref5) {\n let {\n basename: basenameProp = \"/\",\n children = null,\n location: locationProp,\n navigationType = Action.Pop,\n navigator,\n static: staticProp = false,\n future\n } = _ref5;\n !!useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, \"You cannot render a <Router> inside another <Router>.\" + \" You should never have more than one in your app.\") : UNSAFE_invariant(false) : void 0;\n\n // Preserve trailing slashes on basename, so we can let the user control\n // the enforcement of trailing slashes throughout the app\n let basename = basenameProp.replace(/^\\/*/, \"/\");\n let navigationContext = React.useMemo(() => ({\n basename,\n navigator,\n static: staticProp,\n future: _extends({\n v7_relativeSplatPath: false\n }, future)\n }), [basename, future, navigator, staticProp]);\n if (typeof locationProp === \"string\") {\n locationProp = parsePath(locationProp);\n }\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n state = null,\n key = \"default\"\n } = locationProp;\n let locationContext = React.useMemo(() => {\n let trailingPathname = stripBasename(pathname, basename);\n if (trailingPathname == null) {\n return null;\n }\n return {\n location: {\n pathname: trailingPathname,\n search,\n hash,\n state,\n key\n },\n navigationType\n };\n }, [basename, pathname, search, hash, state, key, navigationType]);\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(locationContext != null, \"<Router basename=\\\"\" + basename + \"\\\"> is not able to match the URL \" + (\"\\\"\" + pathname + search + hash + \"\\\" because it does not start with the \") + \"basename, so the <Router> won't render anything.\") : void 0;\n if (locationContext == null) {\n return null;\n }\n return /*#__PURE__*/React.createElement(NavigationContext.Provider, {\n value: navigationContext\n }, /*#__PURE__*/React.createElement(LocationContext.Provider, {\n children: children,\n value: locationContext\n }));\n}\n/**\n * A container for a nested tree of `<Route>` elements that renders the branch\n * that best matches the current location.\n *\n * @see https://reactrouter.com/components/routes\n */\nfunction Routes(_ref6) {\n let {\n children,\n location\n } = _ref6;\n return useRoutes(createRoutesFromChildren(children), location);\n}\n/**\n * Component to use for rendering lazily loaded data from returning defer()\n * in a loader function\n */\nfunction Await(_ref7) {\n let {\n children,\n errorElement,\n resolve\n } = _ref7;\n return /*#__PURE__*/React.createElement(AwaitErrorBoundary, {\n resolve: resolve,\n errorElement: errorElement\n }, /*#__PURE__*/React.createElement(ResolveAwait, null, children));\n}\nvar AwaitRenderStatus = /*#__PURE__*/function (AwaitRenderStatus) {\n AwaitRenderStatus[AwaitRenderStatus[\"pending\"] = 0] = \"pending\";\n AwaitRenderStatus[AwaitRenderStatus[\"success\"] = 1] = \"success\";\n AwaitRenderStatus[AwaitRenderStatus[\"error\"] = 2] = \"error\";\n return AwaitRenderStatus;\n}(AwaitRenderStatus || {});\nconst neverSettledPromise = new Promise(() => {});\nclass AwaitErrorBoundary extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n error: null\n };\n }\n static getDerivedStateFromError(error) {\n return {\n error\n };\n }\n componentDidCatch(error, errorInfo) {\n console.error(\"<Await> caught the following error during render\", error, errorInfo);\n }\n render() {\n let {\n children,\n errorElement,\n resolve\n } = this.props;\n let promise = null;\n let status = AwaitRenderStatus.pending;\n if (!(resolve instanceof Promise)) {\n // Didn't get a promise - provide as a resolved promise\n status = AwaitRenderStatus.success;\n promise = Promise.resolve();\n Object.defineProperty(promise, \"_tracked\", {\n get: () => true\n });\n Object.defineProperty(promise, \"_data\", {\n get: () => resolve\n });\n } else if (this.state.error) {\n // Caught a render error, provide it as a rejected promise\n status = AwaitRenderStatus.error;\n let renderError = this.state.error;\n promise = Promise.reject().catch(() => {}); // Avoid unhandled rejection warnings\n Object.defineProperty(promise, \"_tracked\", {\n get: () => true\n });\n Object.defineProperty(promise, \"_error\", {\n get: () => renderError\n });\n } else if (resolve._tracked) {\n // Already tracked promise - check contents\n promise = resolve;\n status = promise._error !== undefined ? AwaitRenderStatus.error : promise._data !== undefined ? AwaitRenderStatus.success : AwaitRenderStatus.pending;\n } else {\n // Raw (untracked) promise - track it\n status = AwaitRenderStatus.pending;\n Object.defineProperty(resolve, \"_tracked\", {\n get: () => true\n });\n promise = resolve.then(data => Object.defineProperty(resolve, \"_data\", {\n get: () => data\n }), error => Object.defineProperty(resolve, \"_error\", {\n get: () => error\n }));\n }\n if (status === AwaitRenderStatus.error && promise._error instanceof AbortedDeferredError) {\n // Freeze the UI by throwing a never resolved promise\n throw neverSettledPromise;\n }\n if (status === AwaitRenderStatus.error && !errorElement) {\n // No errorElement, throw to the nearest route-level error boundary\n throw promise._error;\n }\n if (status === AwaitRenderStatus.error) {\n // Render via our errorElement\n return /*#__PURE__*/React.createElement(AwaitContext.Provider, {\n value: promise,\n children: errorElement\n });\n }\n if (status === AwaitRenderStatus.success) {\n // Render children with resolved value\n return /*#__PURE__*/React.createElement(AwaitContext.Provider, {\n value: promise,\n children: children\n });\n }\n\n // Throw to the suspense boundary\n throw promise;\n }\n}\n\n/**\n * @private\n * Indirection to leverage useAsyncValue for a render-prop API on `<Await>`\n */\nfunction ResolveAwait(_ref8) {\n let {\n children\n } = _ref8;\n let data = useAsyncValue();\n let toRender = typeof children === \"function\" ? children(data) : children;\n return /*#__PURE__*/React.createElement(React.Fragment, null, toRender);\n}\n\n///////////////////////////////////////////////////////////////////////////////\n// UTILS\n///////////////////////////////////////////////////////////////////////////////\n\n/**\n * Creates a route config from a React \"children\" object, which is usually\n * either a `<Route>` element or an array of them. Used internally by\n * `<Routes>` to create a route config from its children.\n *\n * @see https://reactrouter.com/utils/create-routes-from-children\n */\nfunction createRoutesFromChildren(children, parentPath) {\n if (parentPath === void 0) {\n parentPath = [];\n }\n let routes = [];\n React.Children.forEach(children, (element, index) => {\n if (! /*#__PURE__*/React.isValidElement(element)) {\n // Ignore non-elements. This allows people to more easily inline\n // conditionals in their route config.\n return;\n }\n let treePath = [...parentPath, index];\n if (element.type === React.Fragment) {\n // Transparently support React.Fragment and its children.\n routes.push.apply(routes, createRoutesFromChildren(element.props.children, treePath));\n return;\n }\n !(element.type === Route) ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, \"[\" + (typeof element.type === \"string\" ? element.type : element.type.name) + \"] is not a <Route> component. All component children of <Routes> must be a <Route> or <React.Fragment>\") : UNSAFE_invariant(false) : void 0;\n !(!element.props.index || !element.props.children) ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, \"An index route cannot have child routes.\") : UNSAFE_invariant(false) : void 0;\n let route = {\n id: element.props.id || treePath.join(\"-\"),\n caseSensitive: element.props.caseSensitive,\n element: element.props.element,\n Component: element.props.Component,\n index: element.props.index,\n path: element.props.path,\n loader: element.props.loader,\n action: element.props.action,\n errorElement: element.props.errorElement,\n ErrorBoundary: element.props.ErrorBoundary,\n hasErrorBoundary: element.props.ErrorBoundary != null || element.props.errorElement != null,\n shouldRevalidate: element.props.shouldRevalidate,\n handle: element.props.handle,\n lazy: element.props.lazy\n };\n if (element.props.children) {\n route.children = createRoutesFromChildren(element.props.children, treePath);\n }\n routes.push(route);\n });\n return routes;\n}\n\n/**\n * Renders the result of `matchRoutes()` into a React element.\n */\nfunction renderMatches(matches) {\n return _renderMatches(matches);\n}\n\nfunction mapRouteProperties(route) {\n let updates = {\n // Note: this check also occurs in createRoutesFromChildren so update\n // there if you change this -- please and thank you!\n hasErrorBoundary: route.ErrorBoundary != null || route.errorElement != null\n };\n if (route.Component) {\n if (process.env.NODE_ENV !== \"production\") {\n if (route.element) {\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(false, \"You should not include both `Component` and `element` on your route - \" + \"`Component` will be used.\") : void 0;\n }\n }\n Object.assign(updates, {\n element: /*#__PURE__*/React.createElement(route.Component),\n Component: undefined\n });\n }\n if (route.HydrateFallback) {\n if (process.env.NODE_ENV !== \"production\") {\n if (route.hydrateFallbackElement) {\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(false, \"You should not include both `HydrateFallback` and `hydrateFallbackElement` on your route - \" + \"`HydrateFallback` will be used.\") : void 0;\n }\n }\n Object.assign(updates, {\n hydrateFallbackElement: /*#__PURE__*/React.createElement(route.HydrateFallback),\n HydrateFallback: undefined\n });\n }\n if (route.ErrorBoundary) {\n if (process.env.NODE_ENV !== \"production\") {\n if (route.errorElement) {\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(false, \"You should not include both `ErrorBoundary` and `errorElement` on your route - \" + \"`ErrorBoundary` will be used.\") : void 0;\n }\n }\n Object.assign(updates, {\n errorElement: /*#__PURE__*/React.createElement(route.ErrorBoundary),\n ErrorBoundary: undefined\n });\n }\n return updates;\n}\nfunction createMemoryRouter(routes, opts) {\n return createRouter({\n basename: opts == null ? void 0 : opts.basename,\n future: _extends({}, opts == null ? void 0 : opts.future, {\n v7_prependBasename: true\n }),\n history: createMemoryHistory({\n initialEntries: opts == null ? void 0 : opts.initialEntries,\n initialIndex: opts == null ? void 0 : opts.initialIndex\n }),\n hydrationData: opts == null ? void 0 : opts.hydrationData,\n routes,\n mapRouteProperties\n }).initialize();\n}\n\nexport { Await, MemoryRouter, Navigate, Outlet, Route, Router, RouterProvider, Routes, DataRouterContext as UNSAFE_DataRouterContext, DataRouterStateContext as UNSAFE_DataRouterStateContext, LocationContext as UNSAFE_LocationContext, NavigationContext as UNSAFE_NavigationContext, RouteContext as UNSAFE_RouteContext, mapRouteProperties as UNSAFE_mapRouteProperties, useRouteId as UNSAFE_useRouteId, useRoutesImpl as UNSAFE_useRoutesImpl, createMemoryRouter, createRoutesFromChildren, createRoutesFromChildren as createRoutesFromElements, renderMatches, useActionData, useAsyncError, useAsyncValue, useBlocker, useHref, useInRouterContext, useLoaderData, useLocation, useMatch, useMatches, useNavigate, useNavigation, useNavigationType, useOutlet, useOutletContext, useParams, useResolvedPath, useRevalidator, useRouteError, useRouteLoaderData, useRoutes };\n//# sourceMappingURL=index.js.map\n","/**\n * React Router DOM v6.22.3\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { UNSAFE_mapRouteProperties, UNSAFE_DataRouterContext, UNSAFE_DataRouterStateContext, Router, UNSAFE_useRoutesImpl, UNSAFE_NavigationContext, useHref, useResolvedPath, useLocation, useNavigate, createPath, UNSAFE_useRouteId, UNSAFE_RouteContext, useMatches, useNavigation, useBlocker } from 'react-router';\nexport { AbortedDeferredError, Await, MemoryRouter, Navigate, NavigationType, Outlet, Route, Router, Routes, UNSAFE_DataRouterContext, UNSAFE_DataRouterStateContext, UNSAFE_LocationContext, UNSAFE_NavigationContext, UNSAFE_RouteContext, UNSAFE_useRouteId, createMemoryRouter, createPath, createRoutesFromChildren, createRoutesFromElements, defer, generatePath, isRouteErrorResponse, json, matchPath, matchRoutes, parsePath, redirect, redirectDocument, renderMatches, resolvePath, useActionData, useAsyncError, useAsyncValue, useBlocker, useHref, useInRouterContext, useLoaderData, useLocation, useMatch, useMatches, useNavigate, useNavigation, useNavigationType, useOutlet, useOutletContext, useParams, useResolvedPath, useRevalidator, useRouteError, useRouteLoaderData, useRoutes } from 'react-router';\nimport { stripBasename, UNSAFE_warning, createRouter, createBrowserHistory, createHashHistory, UNSAFE_ErrorResponseImpl, UNSAFE_invariant, joinPaths, IDLE_FETCHER, matchPath } from '@remix-run/router';\n\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}\n\nconst defaultMethod = \"get\";\nconst defaultEncType = \"application/x-www-form-urlencoded\";\nfunction isHtmlElement(object) {\n return object != null && typeof object.tagName === \"string\";\n}\nfunction isButtonElement(object) {\n return isHtmlElement(object) && object.tagName.toLowerCase() === \"button\";\n}\nfunction isFormElement(object) {\n return isHtmlElement(object) && object.tagName.toLowerCase() === \"form\";\n}\nfunction isInputElement(object) {\n return isHtmlElement(object) && object.tagName.toLowerCase() === \"input\";\n}\nfunction isModifiedEvent(event) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\nfunction shouldProcessLinkClick(event, target) {\n return event.button === 0 && (\n // Ignore everything but left clicks\n !target || target === \"_self\") &&\n // Let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // Ignore clicks with modifier keys\n ;\n}\n/**\n * Creates a URLSearchParams object using the given initializer.\n *\n * This is identical to `new URLSearchParams(init)` except it also\n * supports arrays as values in the object form of the initializer\n * instead of just strings. This is convenient when you need multiple\n * values for a given key, but don't want to use an array initializer.\n *\n * For example, instead of:\n *\n * let searchParams = new URLSearchParams([\n * ['sort', 'name'],\n * ['sort', 'price']\n * ]);\n *\n * you can do:\n *\n * let searchParams = createSearchParams({\n * sort: ['name', 'price']\n * });\n */\nfunction createSearchParams(init) {\n if (init === void 0) {\n init = \"\";\n }\n return new URLSearchParams(typeof init === \"string\" || Array.isArray(init) || init instanceof URLSearchParams ? init : Object.keys(init).reduce((memo, key) => {\n let value = init[key];\n return memo.concat(Array.isArray(value) ? value.map(v => [key, v]) : [[key, value]]);\n }, []));\n}\nfunction getSearchParamsForLocation(locationSearch, defaultSearchParams) {\n let searchParams = createSearchParams(locationSearch);\n if (defaultSearchParams) {\n // Use `defaultSearchParams.forEach(...)` here instead of iterating of\n // `defaultSearchParams.keys()` to work-around a bug in Firefox related to\n // web extensions. Relevant Bugzilla tickets:\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1414602\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1023984\n defaultSearchParams.forEach((_, key) => {\n if (!searchParams.has(key)) {\n defaultSearchParams.getAll(key).forEach(value => {\n searchParams.append(key, value);\n });\n }\n });\n }\n return searchParams;\n}\n// One-time check for submitter support\nlet _formDataSupportsSubmitter = null;\nfunction isFormDataSubmitterSupported() {\n if (_formDataSupportsSubmitter === null) {\n try {\n new FormData(document.createElement(\"form\"),\n // @ts-expect-error if FormData supports the submitter parameter, this will throw\n 0);\n _formDataSupportsSubmitter = false;\n } catch (e) {\n _formDataSupportsSubmitter = true;\n }\n }\n return _formDataSupportsSubmitter;\n}\nconst supportedFormEncTypes = new Set([\"application/x-www-form-urlencoded\", \"multipart/form-data\", \"text/plain\"]);\nfunction getFormEncType(encType) {\n if (encType != null && !supportedFormEncTypes.has(encType)) {\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(false, \"\\\"\" + encType + \"\\\" is not a valid `encType` for `<Form>`/`<fetcher.Form>` \" + (\"and will default to \\\"\" + defaultEncType + \"\\\"\")) : void 0;\n return null;\n }\n return encType;\n}\nfunction getFormSubmissionInfo(target, basename) {\n let method;\n let action;\n let encType;\n let formData;\n let body;\n if (isFormElement(target)) {\n // When grabbing the action from the element, it will have had the basename\n // prefixed to ensure non-JS scenarios work, so strip it since we'll\n // re-prefix in the router\n let attr = target.getAttribute(\"action\");\n action = attr ? stripBasename(attr, basename) : null;\n method = target.getAttribute(\"method\") || defaultMethod;\n encType = getFormEncType(target.getAttribute(\"enctype\")) || defaultEncType;\n formData = new FormData(target);\n } else if (isButtonElement(target) || isInputElement(target) && (target.type === \"submit\" || target.type === \"image\")) {\n let form = target.form;\n if (form == null) {\n throw new Error(\"Cannot submit a <button> or <input type=\\\"submit\\\"> without a <form>\");\n }\n // <button>/<input type=\"submit\"> may override attributes of <form>\n // When grabbing the action from the element, it will have had the basename\n // prefixed to ensure non-JS scenarios work, so strip it since we'll\n // re-prefix in the router\n let attr = target.getAttribute(\"formaction\") || form.getAttribute(\"action\");\n action = attr ? stripBasename(attr, basename) : null;\n method = target.getAttribute(\"formmethod\") || form.getAttribute(\"method\") || defaultMethod;\n encType = getFormEncType(target.getAttribute(\"formenctype\")) || getFormEncType(form.getAttribute(\"enctype\")) || defaultEncType;\n // Build a FormData object populated from a form and submitter\n formData = new FormData(form, target);\n // If this browser doesn't support the `FormData(el, submitter)` format,\n // then tack on the submitter value at the end. This is a lightweight\n // solution that is not 100% spec compliant. For complete support in older\n // browsers, consider using the `formdata-submitter-polyfill` package\n if (!isFormDataSubmitterSupported()) {\n let {\n name,\n type,\n value\n } = target;\n if (type === \"image\") {\n let prefix = name ? name + \".\" : \"\";\n formData.append(prefix + \"x\", \"0\");\n formData.append(prefix + \"y\", \"0\");\n } else if (name) {\n formData.append(name, value);\n }\n }\n } else if (isHtmlElement(target)) {\n throw new Error(\"Cannot submit element that is not <form>, <button>, or \" + \"<input type=\\\"submit|image\\\">\");\n } else {\n method = defaultMethod;\n action = null;\n encType = defaultEncType;\n body = target;\n }\n // Send body for <Form encType=\"text/plain\" so we encode it into text\n if (formData && encType === \"text/plain\") {\n body = formData;\n formData = undefined;\n }\n return {\n action,\n method: method.toLowerCase(),\n encType,\n formData,\n body\n };\n}\n\nconst _excluded = [\"onClick\", \"relative\", \"reloadDocument\", \"replace\", \"state\", \"target\", \"to\", \"preventScrollReset\", \"unstable_viewTransition\"],\n _excluded2 = [\"aria-current\", \"caseSensitive\", \"className\", \"end\", \"style\", \"to\", \"unstable_viewTransition\", \"children\"],\n _excluded3 = [\"fetcherKey\", \"navigate\", \"reloadDocument\", \"replace\", \"state\", \"method\", \"action\", \"onSubmit\", \"relative\", \"preventScrollReset\", \"unstable_viewTransition\"];\n// HEY YOU! DON'T TOUCH THIS VARIABLE!\n//\n// It is replaced with the proper version at build time via a babel plugin in\n// the rollup config.\n//\n// Export a global property onto the window for React Router detection by the\n// Core Web Vitals Technology Report. This way they can configure the `wappalyzer`\n// to detect and properly classify live websites as being built with React Router:\n// https://github.com/HTTPArchive/wappalyzer/blob/main/src/technologies/r.json\nconst REACT_ROUTER_VERSION = \"6\";\ntry {\n window.__reactRouterVersion = REACT_ROUTER_VERSION;\n} catch (e) {\n // no-op\n}\nfunction createBrowserRouter(routes, opts) {\n return createRouter({\n basename: opts == null ? void 0 : opts.basename,\n future: _extends({}, opts == null ? void 0 : opts.future, {\n v7_prependBasename: true\n }),\n history: createBrowserHistory({\n window: opts == null ? void 0 : opts.window\n }),\n hydrationData: (opts == null ? void 0 : opts.hydrationData) || parseHydrationData(),\n routes,\n mapRouteProperties: UNSAFE_mapRouteProperties,\n window: opts == null ? void 0 : opts.window\n }).initialize();\n}\nfunction createHashRouter(routes, opts) {\n return createRouter({\n basename: opts == null ? void 0 : opts.basename,\n future: _extends({}, opts == null ? void 0 : opts.future, {\n v7_prependBasename: true\n }),\n history: createHashHistory({\n window: opts == null ? void 0 : opts.window\n }),\n hydrationData: (opts == null ? void 0 : opts.hydrationData) || parseHydrationData(),\n routes,\n mapRouteProperties: UNSAFE_mapRouteProperties,\n window: opts == null ? void 0 : opts.window\n }).initialize();\n}\nfunction parseHydrationData() {\n var _window;\n let state = (_window = window) == null ? void 0 : _window.__staticRouterHydrationData;\n if (state && state.errors) {\n state = _extends({}, state, {\n errors: deserializeErrors(state.errors)\n });\n }\n return state;\n}\nfunction deserializeErrors(errors) {\n if (!errors) return null;\n let entries = Object.entries(errors);\n let serialized = {};\n for (let [key, val] of entries) {\n // Hey you! If you change this, please change the corresponding logic in\n // serializeErrors in react-router-dom/server.tsx :)\n if (val && val.__type === \"RouteErrorResponse\") {\n serialized[key] = new UNSAFE_ErrorResponseImpl(val.status, val.statusText, val.data, val.internal === true);\n } else if (val && val.__type === \"Error\") {\n // Attempt to reconstruct the right type of Error (i.e., ReferenceError)\n if (val.__subType) {\n let ErrorConstructor = window[val.__subType];\n if (typeof ErrorConstructor === \"function\") {\n try {\n // @ts-expect-error\n let error = new ErrorConstructor(val.message);\n // Wipe away the client-side stack trace. Nothing to fill it in with\n // because we don't serialize SSR stack traces for security reasons\n error.stack = \"\";\n serialized[key] = error;\n } catch (e) {\n // no-op - fall through and create a normal Error\n }\n }\n }\n if (serialized[key] == null) {\n let error = new Error(val.message);\n // Wipe away the client-side stack trace. Nothing to fill it in with\n // because we don't serialize SSR stack traces for security reasons\n error.stack = \"\";\n serialized[key] = error;\n }\n } else {\n serialized[key] = val;\n }\n }\n return serialized;\n}\nconst ViewTransitionContext = /*#__PURE__*/React.createContext({\n isTransitioning: false\n});\nif (process.env.NODE_ENV !== \"production\") {\n ViewTransitionContext.displayName = \"ViewTransition\";\n}\nconst FetchersContext = /*#__PURE__*/React.createContext(new Map());\nif (process.env.NODE_ENV !== \"production\") {\n FetchersContext.displayName = \"Fetchers\";\n}\n//#endregion\n////////////////////////////////////////////////////////////////////////////////\n//#region Components\n////////////////////////////////////////////////////////////////////////////////\n/**\n Webpack + React 17 fails to compile on any of the following because webpack\n complains that `startTransition` doesn't exist in `React`:\n * import { startTransition } from \"react\"\n * import * as React from from \"react\";\n \"startTransition\" in React ? React.startTransition(() => setState()) : setState()\n * import * as React from from \"react\";\n \"startTransition\" in React ? React[\"startTransition\"](() => setState()) : setState()\n\n Moving it to a constant such as the following solves the Webpack/React 17 issue:\n * import * as React from from \"react\";\n const START_TRANSITION = \"startTransition\";\n START_TRANSITION in React ? React[START_TRANSITION](() => setState()) : setState()\n\n However, that introduces webpack/terser minification issues in production builds\n in React 18 where minification/obfuscation ends up removing the call of\n React.startTransition entirely from the first half of the ternary. Grabbing\n this exported reference once up front resolves that issue.\n\n See https://github.com/remix-run/react-router/issues/10579\n*/\nconst START_TRANSITION = \"startTransition\";\nconst startTransitionImpl = React[START_TRANSITION];\nconst FLUSH_SYNC = \"flushSync\";\nconst flushSyncImpl = ReactDOM[FLUSH_SYNC];\nconst USE_ID = \"useId\";\nconst useIdImpl = React[USE_ID];\nfunction startTransitionSafe(cb) {\n if (startTransitionImpl) {\n startTransitionImpl(cb);\n } else {\n cb();\n }\n}\nfunction flushSyncSafe(cb) {\n if (flushSyncImpl) {\n flushSyncImpl(cb);\n } else {\n cb();\n }\n}\nclass Deferred {\n constructor() {\n this.status = \"pending\";\n this.promise = new Promise((resolve, reject) => {\n this.resolve = value => {\n if (this.status === \"pending\") {\n this.status = \"resolved\";\n resolve(value);\n }\n };\n this.reject = reason => {\n if (this.status === \"pending\") {\n this.status = \"rejected\";\n reject(reason);\n }\n };\n });\n }\n}\n/**\n * Given a Remix Router instance, render the appropriate UI\n */\nfunction RouterProvider(_ref) {\n let {\n fallbackElement,\n router,\n future\n } = _ref;\n let [state, setStateImpl] = React.useState(router.state);\n let [pendingState, setPendingState] = React.useState();\n let [vtContext, setVtContext] = React.useState({\n isTransitioning: false\n });\n let [renderDfd, setRenderDfd] = React.useState();\n let [transition, setTransition] = React.useState();\n let [interruption, setInterruption] = React.useState();\n let fetcherData = React.useRef(new Map());\n let {\n v7_startTransition\n } = future || {};\n let optInStartTransition = React.useCallback(cb => {\n if (v7_startTransition) {\n startTransitionSafe(cb);\n } else {\n cb();\n }\n }, [v7_startTransition]);\n let setState = React.useCallback((newState, _ref2) => {\n let {\n deletedFetchers,\n unstable_flushSync: flushSync,\n unstable_viewTransitionOpts: viewTransitionOpts\n } = _ref2;\n deletedFetchers.forEach(key => fetcherData.current.delete(key));\n newState.fetchers.forEach((fetcher, key) => {\n if (fetcher.data !== undefined) {\n fetcherData.current.set(key, fetcher.data);\n }\n });\n let isViewTransitionUnavailable = router.window == null || typeof router.window.document.startViewTransition !== \"function\";\n // If this isn't a view transition or it's not available in this browser,\n // just update and be done with it\n if (!viewTransitionOpts || isViewTransitionUnavailable) {\n if (flushSync) {\n flushSyncSafe(() => setStateImpl(newState));\n } else {\n optInStartTransition(() => setStateImpl(newState));\n }\n return;\n }\n // flushSync + startViewTransition\n if (flushSync) {\n // Flush through the context to mark DOM elements as transition=ing\n flushSyncSafe(() => {\n // Cancel any pending transitions\n if (transition) {\n renderDfd && renderDfd.resolve();\n transition.skipTransition();\n }\n setVtContext({\n isTransitioning: true,\n flushSync: true,\n currentLocation: viewTransitionOpts.currentLocation,\n nextLocation: viewTransitionOpts.nextLocation\n });\n });\n // Update the DOM\n let t = router.window.document.startViewTransition(() => {\n flushSyncSafe(() => setStateImpl(newState));\n });\n // Clean up after the animation completes\n t.finished.finally(() => {\n flushSyncSafe(() => {\n setRenderDfd(undefined);\n setTransition(undefined);\n setPendingState(undefined);\n setVtContext({\n isTransitioning: false\n });\n });\n });\n flushSyncSafe(() => setTransition(t));\n return;\n }\n // startTransition + startViewTransition\n if (transition) {\n // Interrupting an in-progress transition, cancel and let everything flush\n // out, and then kick off a new transition from the interruption state\n renderDfd && renderDfd.resolve();\n transition.skipTransition();\n setInterruption({\n state: newState,\n currentLocation: viewTransitionOpts.currentLocation,\n nextLocation: viewTransitionOpts.nextLocation\n });\n } else {\n // Completed navigation update with opted-in view transitions, let 'er rip\n setPendingState(newState);\n setVtContext({\n isTransitioning: true,\n flushSync: false,\n currentLocation: viewTransitionOpts.currentLocation,\n nextLocation: viewTransitionOpts.nextLocation\n });\n }\n }, [router.window, transition, renderDfd, fetcherData, optInStartTransition]);\n // Need to use a layout effect here so we are subscribed early enough to\n // pick up on any render-driven redirects/navigations (useEffect/<Navigate>)\n React.useLayoutEffect(() => router.subscribe(setState), [router, setState]);\n // When we start a view transition, create a Deferred we can use for the\n // eventual \"completed\" render\n React.useEffect(() => {\n if (vtContext.isTransitioning && !vtContext.flushSync) {\n setRenderDfd(new Deferred());\n }\n }, [vtContext]);\n // Once the deferred is created, kick off startViewTransition() to update the\n // DOM and then wait on the Deferred to resolve (indicating the DOM update has\n // happened)\n React.useEffect(() => {\n if (renderDfd && pendingState && router.window) {\n let newState = pendingState;\n let renderPromise = renderDfd.promise;\n let transition = router.window.document.startViewTransition(async () => {\n optInStartTransition(() => setStateImpl(newState));\n await renderPromise;\n });\n transition.finished.finally(() => {\n setRenderDfd(undefined);\n setTransition(undefined);\n setPendingState(undefined);\n setVtContext({\n isTransitioning: false\n });\n });\n setTransition(transition);\n }\n }, [optInStartTransition, pendingState, renderDfd, router.window]);\n // When the new location finally renders and is committed to the DOM, this\n // effect will run to resolve the transition\n React.useEffect(() => {\n if (renderDfd && pendingState && state.location.key === pendingState.location.key) {\n renderDfd.resolve();\n }\n }, [renderDfd, transition, state.location, pendingState]);\n // If we get interrupted with a new navigation during a transition, we skip\n // the active transition, let it cleanup, then kick it off again here\n React.useEffect(() => {\n if (!vtContext.isTransitioning && interruption) {\n setPendingState(interruption.state);\n setVtContext({\n isTransitioning: true,\n flushSync: false,\n currentLocation: interruption.currentLocation,\n nextLocation: interruption.nextLocation\n });\n setInterruption(undefined);\n }\n }, [vtContext.isTransitioning, interruption]);\n React.useEffect(() => {\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(fallbackElement == null || !router.future.v7_partialHydration, \"`<RouterProvider fallbackElement>` is deprecated when using \" + \"`v7_partialHydration`, use a `HydrateFallback` component instead\") : void 0;\n // Only log this once on initial mount\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n let navigator = React.useMemo(() => {\n return {\n createHref: router.createHref,\n encodeLocation: router.encodeLocation,\n go: n => router.navigate(n),\n push: (to, state, opts) => router.navigate(to, {\n state,\n preventScrollReset: opts == null ? void 0 : opts.preventScrollReset\n }),\n replace: (to, state, opts) => router.navigate(to, {\n replace: true,\n state,\n preventScrollReset: opts == null ? void 0 : opts.preventScrollReset\n })\n };\n }, [router]);\n let basename = router.basename || \"/\";\n let dataRouterContext = React.useMemo(() => ({\n router,\n navigator,\n static: false,\n basename\n }), [router, navigator, basename]);\n // The fragment and {null} here are important! We need them to keep React 18's\n // useId happy when we are server-rendering since we may have a <script> here\n // containing the hydrated server-side staticContext (from StaticRouterProvider).\n // useId relies on the component tree structure to generate deterministic id's\n // so we need to ensure it remains the same on the client even though\n // we don't need the <script> tag\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(UNSAFE_DataRouterContext.Provider, {\n value: dataRouterContext\n }, /*#__PURE__*/React.createElement(UNSAFE_DataRouterStateContext.Provider, {\n value: state\n }, /*#__PURE__*/React.createElement(FetchersContext.Provider, {\n value: fetcherData.current\n }, /*#__PURE__*/React.createElement(ViewTransitionContext.Provider, {\n value: vtContext\n }, /*#__PURE__*/React.createElement(Router, {\n basename: basename,\n location: state.location,\n navigationType: state.historyAction,\n navigator: navigator,\n future: {\n v7_relativeSplatPath: router.future.v7_relativeSplatPath\n }\n }, state.initialized || router.future.v7_partialHydration ? /*#__PURE__*/React.createElement(DataRoutes, {\n routes: router.routes,\n future: router.future,\n state: state\n }) : fallbackElement))))), null);\n}\nfunction DataRoutes(_ref3) {\n let {\n routes,\n future,\n state\n } = _ref3;\n return UNSAFE_useRoutesImpl(routes, undefined, state, future);\n}\n/**\n * A `<Router>` for use in web browsers. Provides the cleanest URLs.\n */\nfunction BrowserRouter(_ref4) {\n let {\n basename,\n children,\n future,\n window\n } = _ref4;\n let historyRef = React.useRef();\n if (historyRef.current == null) {\n historyRef.current = createBrowserHistory({\n window,\n v5Compat: true\n });\n }\n let history = historyRef.current;\n let [state, setStateImpl] = React.useState({\n action: history.action,\n location: history.location\n });\n let {\n v7_startTransition\n } = future || {};\n let setState = React.useCallback(newState => {\n v7_startTransition && startTransitionImpl ? startTransitionImpl(() => setStateImpl(newState)) : setStateImpl(newState);\n }, [setStateImpl, v7_startTransition]);\n React.useLayoutEffect(() => history.listen(setState), [history, setState]);\n return /*#__PURE__*/React.createElement(Router, {\n basename: basename,\n children: children,\n location: state.location,\n navigationType: state.action,\n navigator: history,\n future: future\n });\n}\n/**\n * A `<Router>` for use in web browsers. Stores the location in the hash\n * portion of the URL so it is not sent to the server.\n */\nfunction HashRouter(_ref5) {\n let {\n basename,\n children,\n future,\n window\n } = _ref5;\n let historyRef = React.useRef();\n if (historyRef.current == null) {\n historyRef.current = createHashHistory({\n window,\n v5Compat: true\n });\n }\n let history = historyRef.current;\n let [state, setStateImpl] = React.useState({\n action: history.action,\n location: history.location\n });\n let {\n v7_startTransition\n } = future || {};\n let setState = React.useCallback(newState => {\n v7_startTransition && startTransitionImpl ? startTransitionImpl(() => setStateImpl(newState)) : setStateImpl(newState);\n }, [setStateImpl, v7_startTransition]);\n React.useLayoutEffect(() => history.listen(setState), [history, setState]);\n return /*#__PURE__*/React.createElement(Router, {\n basename: basename,\n children: children,\n location: state.location,\n navigationType: state.action,\n navigator: history,\n future: future\n });\n}\n/**\n * A `<Router>` that accepts a pre-instantiated history object. It's important\n * to note that using your own history object is highly discouraged and may add\n * two versions of the history library to your bundles unless you use the same\n * version of the history library that React Router uses internally.\n */\nfunction HistoryRouter(_ref6) {\n let {\n basename,\n children,\n future,\n history\n } = _ref6;\n let [state, setStateImpl] = React.useState({\n action: history.action,\n location: history.location\n });\n let {\n v7_startTransition\n } = future || {};\n let setState = React.useCallback(newState => {\n v7_startTransition && startTransitionImpl ? startTransitionImpl(() => setStateImpl(newState)) : setStateImpl(newState);\n }, [setStateImpl, v7_startTransition]);\n React.useLayoutEffect(() => history.listen(setState), [history, setState]);\n return /*#__PURE__*/React.createElement(Router, {\n basename: basename,\n children: children,\n location: state.location,\n navigationType: state.action,\n navigator: history,\n future: future\n });\n}\nif (process.env.NODE_ENV !== \"production\") {\n HistoryRouter.displayName = \"unstable_HistoryRouter\";\n}\nconst isBrowser = typeof window !== \"undefined\" && typeof window.document !== \"undefined\" && typeof window.document.createElement !== \"undefined\";\nconst ABSOLUTE_URL_REGEX = /^(?:[a-z][a-z0-9+.-]*:|\\/\\/)/i;\n/**\n * The public API for rendering a history-aware `<a>`.\n */\nconst Link = /*#__PURE__*/React.forwardRef(function LinkWithRef(_ref7, ref) {\n let {\n onClick,\n relative,\n reloadDocument,\n replace,\n state,\n target,\n to,\n preventScrollReset,\n unstable_viewTransition\n } = _ref7,\n rest = _objectWithoutPropertiesLoose(_ref7, _excluded);\n let {\n basename\n } = React.useContext(UNSAFE_NavigationContext);\n // Rendered into <a href> for absolute URLs\n let absoluteHref;\n let isExternal = false;\n if (typeof to === \"string\" && ABSOLUTE_URL_REGEX.test(to)) {\n // Render the absolute href server- and client-side\n absoluteHref = to;\n // Only check for external origins client-side\n if (isBrowser) {\n try {\n let currentUrl = new URL(window.location.href);\n let targetUrl = to.startsWith(\"//\") ? new URL(currentUrl.protocol + to) : new URL(to);\n let path = stripBasename(targetUrl.pathname, basename);\n if (targetUrl.origin === currentUrl.origin && path != null) {\n // Strip the protocol/origin/basename for same-origin absolute URLs\n to = path + targetUrl.search + targetUrl.hash;\n } else {\n isExternal = true;\n }\n } catch (e) {\n // We can't do external URL detection without a valid URL\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(false, \"<Link to=\\\"\" + to + \"\\\"> contains an invalid URL which will probably break \" + \"when clicked - please update to a valid URL path.\") : void 0;\n }\n }\n }\n // Rendered into <a href> for relative URLs\n let href = useHref(to, {\n relative\n });\n let internalOnClick = useLinkClickHandler(to, {\n replace,\n state,\n target,\n preventScrollReset,\n relative,\n unstable_viewTransition\n });\n function handleClick(event) {\n if (onClick) onClick(event);\n if (!event.defaultPrevented) {\n internalOnClick(event);\n }\n }\n return (\n /*#__PURE__*/\n // eslint-disable-next-line jsx-a11y/anchor-has-content\n React.createElement(\"a\", _extends({}, rest, {\n href: absoluteHref || href,\n onClick: isExternal || reloadDocument ? onClick : handleClick,\n ref: ref,\n target: target\n }))\n );\n});\nif (process.env.NODE_ENV !== \"production\") {\n Link.displayName = \"Link\";\n}\n/**\n * A `<Link>` wrapper that knows if it's \"active\" or not.\n */\nconst NavLink = /*#__PURE__*/React.forwardRef(function NavLinkWithRef(_ref8, ref) {\n let {\n \"aria-current\": ariaCurrentProp = \"page\",\n caseSensitive = false,\n className: classNameProp = \"\",\n end = false,\n style: styleProp,\n to,\n unstable_viewTransition,\n children\n } = _ref8,\n rest = _objectWithoutPropertiesLoose(_ref8, _excluded2);\n let path = useResolvedPath(to, {\n relative: rest.relative\n });\n let location = useLocation();\n let routerState = React.useContext(UNSAFE_DataRouterStateContext);\n let {\n navigator,\n basename\n } = React.useContext(UNSAFE_NavigationContext);\n let isTransitioning = routerState != null &&\n // Conditional usage is OK here because the usage of a data router is static\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useViewTransitionState(path) && unstable_viewTransition === true;\n let toPathname = navigator.encodeLocation ? navigator.encodeLocation(path).pathname : path.pathname;\n let locationPathname = location.pathname;\n let nextLocationPathname = routerState && routerState.navigation && routerState.navigation.location ? routerState.navigation.location.pathname : null;\n if (!caseSensitive) {\n locationPathname = locationPathname.toLowerCase();\n nextLocationPathname = nextLocationPathname ? nextLocationPathname.toLowerCase() : null;\n toPathname = toPathname.toLowerCase();\n }\n if (nextLocationPathname && basename) {\n nextLocationPathname = stripBasename(nextLocationPathname, basename) || nextLocationPathname;\n }\n // If the `to` has a trailing slash, look at that exact spot. Otherwise,\n // we're looking for a slash _after_ what's in `to`. For example:\n //\n // <NavLink to=\"/users\"> and <NavLink to=\"/users/\">\n // both want to look for a / at index 6 to match URL `/users/matt`\n const endSlashPosition = toPathname !== \"/\" && toPathname.endsWith(\"/\") ? toPathname.length - 1 : toPathname.length;\n let isActive = locationPathname === toPathname || !end && locationPathname.startsWith(toPathname) && locationPathname.charAt(endSlashPosition) === \"/\";\n let isPending = nextLocationPathname != null && (nextLocationPathname === toPathname || !end && nextLocationPathname.startsWith(toPathname) && nextLocationPathname.charAt(toPathname.length) === \"/\");\n let renderProps = {\n isActive,\n isPending,\n isTransitioning\n };\n let ariaCurrent = isActive ? ariaCurrentProp : undefined;\n let className;\n if (typeof classNameProp === \"function\") {\n className = classNameProp(renderProps);\n } else {\n // If the className prop is not a function, we use a default `active`\n // class for <NavLink />s that are active. In v5 `active` was the default\n // value for `activeClassName`, but we are removing that API and can still\n // use the old default behavior for a cleaner upgrade path and keep the\n // simple styling rules working as they currently do.\n className = [classNameProp, isActive ? \"active\" : null, isPending ? \"pending\" : null, isTransitioning ? \"transitioning\" : null].filter(Boolean).join(\" \");\n }\n let style = typeof styleProp === \"function\" ? styleProp(renderProps) : styleProp;\n return /*#__PURE__*/React.createElement(Link, _extends({}, rest, {\n \"aria-current\": ariaCurrent,\n className: className,\n ref: ref,\n style: style,\n to: to,\n unstable_viewTransition: unstable_viewTransition\n }), typeof children === \"function\" ? children(renderProps) : children);\n});\nif (process.env.NODE_ENV !== \"production\") {\n NavLink.displayName = \"NavLink\";\n}\n/**\n * A `@remix-run/router`-aware `<form>`. It behaves like a normal form except\n * that the interaction with the server is with `fetch` instead of new document\n * requests, allowing components to add nicer UX to the page as the form is\n * submitted and returns with data.\n */\nconst Form = /*#__PURE__*/React.forwardRef((_ref9, forwardedRef) => {\n let {\n fetcherKey,\n navigate,\n reloadDocument,\n replace,\n state,\n method = defaultMethod,\n action,\n onSubmit,\n relative,\n preventScrollReset,\n unstable_viewTransition\n } = _ref9,\n props = _objectWithoutPropertiesLoose(_ref9, _excluded3);\n let submit = useSubmit();\n let formAction = useFormAction(action, {\n relative\n });\n let formMethod = method.toLowerCase() === \"get\" ? \"get\" : \"post\";\n let submitHandler = event => {\n onSubmit && onSubmit(event);\n if (event.defaultPrevented) return;\n event.preventDefault();\n let submitter = event.nativeEvent.submitter;\n let submitMethod = (submitter == null ? void 0 : submitter.getAttribute(\"formmethod\")) || method;\n submit(submitter || event.currentTarget, {\n fetcherKey,\n method: submitMethod,\n navigate,\n replace,\n state,\n relative,\n preventScrollReset,\n unstable_viewTransition\n });\n };\n return /*#__PURE__*/React.createElement(\"form\", _extends({\n ref: forwardedRef,\n method: formMethod,\n action: formAction,\n onSubmit: reloadDocument ? onSubmit : submitHandler\n }, props));\n});\nif (process.env.NODE_ENV !== \"production\") {\n Form.displayName = \"Form\";\n}\n/**\n * This component will emulate the browser's scroll restoration on location\n * changes.\n */\nfunction ScrollRestoration(_ref10) {\n let {\n getKey,\n storageKey\n } = _ref10;\n useScrollRestoration({\n getKey,\n storageKey\n });\n return null;\n}\nif (process.env.NODE_ENV !== \"production\") {\n ScrollRestoration.displayName = \"ScrollRestoration\";\n}\n//#endregion\n////////////////////////////////////////////////////////////////////////////////\n//#region Hooks\n////////////////////////////////////////////////////////////////////////////////\nvar DataRouterHook;\n(function (DataRouterHook) {\n DataRouterHook[\"UseScrollRestoration\"] = \"useScrollRestoration\";\n DataRouterHook[\"UseSubmit\"] = \"useSubmit\";\n DataRouterHook[\"UseSubmitFetcher\"] = \"useSubmitFetcher\";\n DataRouterHook[\"UseFetcher\"] = \"useFetcher\";\n DataRouterHook[\"useViewTransitionState\"] = \"useViewTransitionState\";\n})(DataRouterHook || (DataRouterHook = {}));\nvar DataRouterStateHook;\n(function (DataRouterStateHook) {\n DataRouterStateHook[\"UseFetcher\"] = \"useFetcher\";\n DataRouterStateHook[\"UseFetchers\"] = \"useFetchers\";\n DataRouterStateHook[\"UseScrollRestoration\"] = \"useScrollRestoration\";\n})(DataRouterStateHook || (DataRouterStateHook = {}));\n// Internal hooks\nfunction getDataRouterConsoleError(hookName) {\n return hookName + \" must be used within a data router. See https://reactrouter.com/routers/picking-a-router.\";\n}\nfunction useDataRouterContext(hookName) {\n let ctx = React.useContext(UNSAFE_DataRouterContext);\n !ctx ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, getDataRouterConsoleError(hookName)) : UNSAFE_invariant(false) : void 0;\n return ctx;\n}\nfunction useDataRouterState(hookName) {\n let state = React.useContext(UNSAFE_DataRouterStateContext);\n !state ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, getDataRouterConsoleError(hookName)) : UNSAFE_invariant(false) : void 0;\n return state;\n}\n// External hooks\n/**\n * Handles the click behavior for router `<Link>` components. This is useful if\n * you need to create custom `<Link>` components with the same click behavior we\n * use in our exported `<Link>`.\n */\nfunction useLinkClickHandler(to, _temp) {\n let {\n target,\n replace: replaceProp,\n state,\n preventScrollReset,\n relative,\n unstable_viewTransition\n } = _temp === void 0 ? {} : _temp;\n let navigate = useNavigate();\n let location = useLocation();\n let path = useResolvedPath(to, {\n relative\n });\n return React.useCallback(event => {\n if (shouldProcessLinkClick(event, target)) {\n event.preventDefault();\n // If the URL hasn't changed, a regular <a> will do a replace instead of\n // a push, so do the same here unless the replace prop is explicitly set\n let replace = replaceProp !== undefined ? replaceProp : createPath(location) === createPath(path);\n navigate(to, {\n replace,\n state,\n preventScrollReset,\n relative,\n unstable_viewTransition\n });\n }\n }, [location, navigate, path, replaceProp, state, target, to, preventScrollReset, relative, unstable_viewTransition]);\n}\n/**\n * A convenient wrapper for reading and writing search parameters via the\n * URLSearchParams interface.\n */\nfunction useSearchParams(defaultInit) {\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(typeof URLSearchParams !== \"undefined\", \"You cannot use the `useSearchParams` hook in a browser that does not \" + \"support the URLSearchParams API. If you need to support Internet \" + \"Explorer 11, we recommend you load a polyfill such as \" + \"https://github.com/ungap/url-search-params\\n\\n\" + \"If you're unsure how to load polyfills, we recommend you check out \" + \"https://polyfill.io/v3/ which provides some recommendations about how \" + \"to load polyfills only for users that need them, instead of for every \" + \"user.\") : void 0;\n let defaultSearchParamsRef = React.useRef(createSearchParams(defaultInit));\n let hasSetSearchParamsRef = React.useRef(false);\n let location = useLocation();\n let searchParams = React.useMemo(() =>\n // Only merge in the defaults if we haven't yet called setSearchParams.\n // Once we call that we want those to take precedence, otherwise you can't\n // remove a param with setSearchParams({}) if it has an initial value\n getSearchParamsForLocation(location.search, hasSetSearchParamsRef.current ? null : defaultSearchParamsRef.current), [location.search]);\n let navigate = useNavigate();\n let setSearchParams = React.useCallback((nextInit, navigateOptions) => {\n const newSearchParams = createSearchParams(typeof nextInit === \"function\" ? nextInit(searchParams) : nextInit);\n hasSetSearchParamsRef.current = true;\n navigate(\"?\" + newSearchParams, navigateOptions);\n }, [navigate, searchParams]);\n return [searchParams, setSearchParams];\n}\nfunction validateClientSideSubmission() {\n if (typeof document === \"undefined\") {\n throw new Error(\"You are calling submit during the server render. \" + \"Try calling submit within a `useEffect` or callback instead.\");\n }\n}\nlet fetcherId = 0;\nlet getUniqueFetcherId = () => \"__\" + String(++fetcherId) + \"__\";\n/**\n * Returns a function that may be used to programmatically submit a form (or\n * some arbitrary data) to the server.\n */\nfunction useSubmit() {\n let {\n router\n } = useDataRouterContext(DataRouterHook.UseSubmit);\n let {\n basename\n } = React.useContext(UNSAFE_NavigationContext);\n let currentRouteId = UNSAFE_useRouteId();\n return React.useCallback(function (target, options) {\n if (options === void 0) {\n options = {};\n }\n validateClientSideSubmission();\n let {\n action,\n method,\n encType,\n formData,\n body\n } = getFormSubmissionInfo(target, basename);\n if (options.navigate === false) {\n let key = options.fetcherKey || getUniqueFetcherId();\n router.fetch(key, currentRouteId, options.action || action, {\n preventScrollReset: options.preventScrollReset,\n formData,\n body,\n formMethod: options.method || method,\n formEncType: options.encType || encType,\n unstable_flushSync: options.unstable_flushSync\n });\n } else {\n router.navigate(options.action || action, {\n preventScrollReset: options.preventScrollReset,\n formData,\n body,\n formMethod: options.method || method,\n formEncType: options.encType || encType,\n replace: options.replace,\n state: options.state,\n fromRouteId: currentRouteId,\n unstable_flushSync: options.unstable_flushSync,\n unstable_viewTransition: options.unstable_viewTransition\n });\n }\n }, [router, basename, currentRouteId]);\n}\n// v7: Eventually we should deprecate this entirely in favor of using the\n// router method directly?\nfunction useFormAction(action, _temp2) {\n let {\n relative\n } = _temp2 === void 0 ? {} : _temp2;\n let {\n basename\n } = React.useContext(UNSAFE_NavigationContext);\n let routeContext = React.useContext(UNSAFE_RouteContext);\n !routeContext ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, \"useFormAction must be used inside a RouteContext\") : UNSAFE_invariant(false) : void 0;\n let [match] = routeContext.matches.slice(-1);\n // Shallow clone path so we can modify it below, otherwise we modify the\n // object referenced by useMemo inside useResolvedPath\n let path = _extends({}, useResolvedPath(action ? action : \".\", {\n relative\n }));\n // If no action was specified, browsers will persist current search params\n // when determining the path, so match that behavior\n // https://github.com/remix-run/remix/issues/927\n let location = useLocation();\n if (action == null) {\n // Safe to write to this directly here since if action was undefined, we\n // would have called useResolvedPath(\".\") which will never include a search\n path.search = location.search;\n // When grabbing search params from the URL, remove any included ?index param\n // since it might not apply to our contextual route. We add it back based\n // on match.route.index below\n let params = new URLSearchParams(path.search);\n if (params.has(\"index\") && params.get(\"index\") === \"\") {\n params.delete(\"index\");\n path.search = params.toString() ? \"?\" + params.toString() : \"\";\n }\n }\n if ((!action || action === \".\") && match.route.index) {\n path.search = path.search ? path.search.replace(/^\\?/, \"?index&\") : \"?index\";\n }\n // If we're operating within a basename, prepend it to the pathname prior\n // to creating the form action. If this is a root navigation, then just use\n // the raw basename which allows the basename to have full control over the\n // presence of a trailing slash on root actions\n if (basename !== \"/\") {\n path.pathname = path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\n }\n return createPath(path);\n}\n// TODO: (v7) Change the useFetcher generic default from `any` to `unknown`\n/**\n * Interacts with route loaders and actions without causing a navigation. Great\n * for any interaction that stays on the same page.\n */\nfunction useFetcher(_temp3) {\n var _route$matches;\n let {\n key\n } = _temp3 === void 0 ? {} : _temp3;\n let {\n router\n } = useDataRouterContext(DataRouterHook.UseFetcher);\n let state = useDataRouterState(DataRouterStateHook.UseFetcher);\n let fetcherData = React.useContext(FetchersContext);\n let route = React.useContext(UNSAFE_RouteContext);\n let routeId = (_route$matches = route.matches[route.matches.length - 1]) == null ? void 0 : _route$matches.route.id;\n !fetcherData ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, \"useFetcher must be used inside a FetchersContext\") : UNSAFE_invariant(false) : void 0;\n !route ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, \"useFetcher must be used inside a RouteContext\") : UNSAFE_invariant(false) : void 0;\n !(routeId != null) ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, \"useFetcher can only be used on routes that contain a unique \\\"id\\\"\") : UNSAFE_invariant(false) : void 0;\n // Fetcher key handling\n // OK to call conditionally to feature detect `useId`\n // eslint-disable-next-line react-hooks/rules-of-hooks\n let defaultKey = useIdImpl ? useIdImpl() : \"\";\n let [fetcherKey, setFetcherKey] = React.useState(key || defaultKey);\n if (key && key !== fetcherKey) {\n setFetcherKey(key);\n } else if (!fetcherKey) {\n // We will only fall through here when `useId` is not available\n setFetcherKey(getUniqueFetcherId());\n }\n // Registration/cleanup\n React.useEffect(() => {\n router.getFetcher(fetcherKey);\n return () => {\n // Tell the router we've unmounted - if v7_fetcherPersist is enabled this\n // will not delete immediately but instead queue up a delete after the\n // fetcher returns to an `idle` state\n router.deleteFetcher(fetcherKey);\n };\n }, [router, fetcherKey]);\n // Fetcher additions\n let load = React.useCallback((href, opts) => {\n !routeId ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, \"No routeId available for fetcher.load()\") : UNSAFE_invariant(false) : void 0;\n router.fetch(fetcherKey, routeId, href, opts);\n }, [fetcherKey, routeId, router]);\n let submitImpl = useSubmit();\n let submit = React.useCallback((target, opts) => {\n submitImpl(target, _extends({}, opts, {\n navigate: false,\n fetcherKey\n }));\n }, [fetcherKey, submitImpl]);\n let FetcherForm = React.useMemo(() => {\n let FetcherForm = /*#__PURE__*/React.forwardRef((props, ref) => {\n return /*#__PURE__*/React.createElement(Form, _extends({}, props, {\n navigate: false,\n fetcherKey: fetcherKey,\n ref: ref\n }));\n });\n if (process.env.NODE_ENV !== \"production\") {\n FetcherForm.displayName = \"fetcher.Form\";\n }\n return FetcherForm;\n }, [fetcherKey]);\n // Exposed FetcherWithComponents\n let fetcher = state.fetchers.get(fetcherKey) || IDLE_FETCHER;\n let data = fetcherData.get(fetcherKey);\n let fetcherWithComponents = React.useMemo(() => _extends({\n Form: FetcherForm,\n submit,\n load\n }, fetcher, {\n data\n }), [FetcherForm, submit, load, fetcher, data]);\n return fetcherWithComponents;\n}\n/**\n * Provides all fetchers currently on the page. Useful for layouts and parent\n * routes that need to provide pending/optimistic UI regarding the fetch.\n */\nfunction useFetchers() {\n let state = useDataRouterState(DataRouterStateHook.UseFetchers);\n return Array.from(state.fetchers.entries()).map(_ref11 => {\n let [key, fetcher] = _ref11;\n return _extends({}, fetcher, {\n key\n });\n });\n}\nconst SCROLL_RESTORATION_STORAGE_KEY = \"react-router-scroll-positions\";\nlet savedScrollPositions = {};\n/**\n * When rendered inside a RouterProvider, will restore scroll positions on navigations\n */\nfunction useScrollRestoration(_temp4) {\n let {\n getKey,\n storageKey\n } = _temp4 === void 0 ? {} : _temp4;\n let {\n router\n } = useDataRouterContext(DataRouterHook.UseScrollRestoration);\n let {\n restoreScrollPosition,\n preventScrollReset\n } = useDataRouterState(DataRouterStateHook.UseScrollRestoration);\n let {\n basename\n } = React.useContext(UNSAFE_NavigationContext);\n let location = useLocation();\n let matches = useMatches();\n let navigation = useNavigation();\n // Trigger manual scroll restoration while we're active\n React.useEffect(() => {\n window.history.scrollRestoration = \"manual\";\n return () => {\n window.history.scrollRestoration = \"auto\";\n };\n }, []);\n // Save positions on pagehide\n usePageHide(React.useCallback(() => {\n if (navigation.state === \"idle\") {\n let key = (getKey ? getKey(location, matches) : null) || location.key;\n savedScrollPositions[key] = window.scrollY;\n }\n try {\n sessionStorage.setItem(storageKey || SCROLL_RESTORATION_STORAGE_KEY, JSON.stringify(savedScrollPositions));\n } catch (error) {\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(false, \"Failed to save scroll positions in sessionStorage, <ScrollRestoration /> will not work properly (\" + error + \").\") : void 0;\n }\n window.history.scrollRestoration = \"auto\";\n }, [storageKey, getKey, navigation.state, location, matches]));\n // Read in any saved scroll locations\n if (typeof document !== \"undefined\") {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useLayoutEffect(() => {\n try {\n let sessionPositions = sessionStorage.getItem(storageKey || SCROLL_RESTORATION_STORAGE_KEY);\n if (sessionPositions) {\n savedScrollPositions = JSON.parse(sessionPositions);\n }\n } catch (e) {\n // no-op, use default empty object\n }\n }, [storageKey]);\n // Enable scroll restoration in the router\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useLayoutEffect(() => {\n let getKeyWithoutBasename = getKey && basename !== \"/\" ? (location, matches) => getKey( // Strip the basename to match useLocation()\n _extends({}, location, {\n pathname: stripBasename(location.pathname, basename) || location.pathname\n }), matches) : getKey;\n let disableScrollRestoration = router == null ? void 0 : router.enableScrollRestoration(savedScrollPositions, () => window.scrollY, getKeyWithoutBasename);\n return () => disableScrollRestoration && disableScrollRestoration();\n }, [router, basename, getKey]);\n // Restore scrolling when state.restoreScrollPosition changes\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useLayoutEffect(() => {\n // Explicit false means don't do anything (used for submissions)\n if (restoreScrollPosition === false) {\n return;\n }\n // been here before, scroll to it\n if (typeof restoreScrollPosition === \"number\") {\n window.scrollTo(0, restoreScrollPosition);\n return;\n }\n // try to scroll to the hash\n if (location.hash) {\n let el = document.getElementById(decodeURIComponent(location.hash.slice(1)));\n if (el) {\n el.scrollIntoView();\n return;\n }\n }\n // Don't reset if this navigation opted out\n if (preventScrollReset === true) {\n return;\n }\n // otherwise go to the top on new locations\n window.scrollTo(0, 0);\n }, [location, restoreScrollPosition, preventScrollReset]);\n }\n}\n/**\n * Setup a callback to be fired on the window's `beforeunload` event. This is\n * useful for saving some data to `window.localStorage` just before the page\n * refreshes.\n *\n * Note: The `callback` argument should be a function created with\n * `React.useCallback()`.\n */\nfunction useBeforeUnload(callback, options) {\n let {\n capture\n } = options || {};\n React.useEffect(() => {\n let opts = capture != null ? {\n capture\n } : undefined;\n window.addEventListener(\"beforeunload\", callback, opts);\n return () => {\n window.removeEventListener(\"beforeunload\", callback, opts);\n };\n }, [callback, capture]);\n}\n/**\n * Setup a callback to be fired on the window's `pagehide` event. This is\n * useful for saving some data to `window.localStorage` just before the page\n * refreshes. This event is better supported than beforeunload across browsers.\n *\n * Note: The `callback` argument should be a function created with\n * `React.useCallback()`.\n */\nfunction usePageHide(callback, options) {\n let {\n capture\n } = options || {};\n React.useEffect(() => {\n let opts = capture != null ? {\n capture\n } : undefined;\n window.addEventListener(\"pagehide\", callback, opts);\n return () => {\n window.removeEventListener(\"pagehide\", callback, opts);\n };\n }, [callback, capture]);\n}\n/**\n * Wrapper around useBlocker to show a window.confirm prompt to users instead\n * of building a custom UI with useBlocker.\n *\n * Warning: This has *a lot of rough edges* and behaves very differently (and\n * very incorrectly in some cases) across browsers if user click addition\n * back/forward navigations while the confirm is open. Use at your own risk.\n */\nfunction usePrompt(_ref12) {\n let {\n when,\n message\n } = _ref12;\n let blocker = useBlocker(when);\n React.useEffect(() => {\n if (blocker.state === \"blocked\") {\n let proceed = window.confirm(message);\n if (proceed) {\n // This timeout is needed to avoid a weird \"race\" on POP navigations\n // between the `window.history` revert navigation and the result of\n // `window.confirm`\n setTimeout(blocker.proceed, 0);\n } else {\n blocker.reset();\n }\n }\n }, [blocker, message]);\n React.useEffect(() => {\n if (blocker.state === \"blocked\" && !when) {\n blocker.reset();\n }\n }, [blocker, when]);\n}\n/**\n * Return a boolean indicating if there is an active view transition to the\n * given href. You can use this value to render CSS classes or viewTransitionName\n * styles onto your elements\n *\n * @param href The destination href\n * @param [opts.relative] Relative routing type (\"route\" | \"path\")\n */\nfunction useViewTransitionState(to, opts) {\n if (opts === void 0) {\n opts = {};\n }\n let vtContext = React.useContext(ViewTransitionContext);\n !(vtContext != null) ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, \"`unstable_useViewTransitionState` must be used within `react-router-dom`'s `RouterProvider`. \" + \"Did you accidentally import `RouterProvider` from `react-router`?\") : UNSAFE_invariant(false) : void 0;\n let {\n basename\n } = useDataRouterContext(DataRouterHook.useViewTransitionState);\n let path = useResolvedPath(to, {\n relative: opts.relative\n });\n if (!vtContext.isTransitioning) {\n return false;\n }\n let currentPath = stripBasename(vtContext.currentLocation.pathname, basename) || vtContext.currentLocation.pathname;\n let nextPath = stripBasename(vtContext.nextLocation.pathname, basename) || vtContext.nextLocation.pathname;\n // Transition is active if we're going to or coming from the indicated\n // destination. This ensures that other PUSH navigations that reverse\n // an indicated transition apply. I.e., on the list view you have:\n //\n // <NavLink to=\"/details/1\" unstable_viewTransition>\n //\n // If you click the breadcrumb back to the list view:\n //\n // <NavLink to=\"/list\" unstable_viewTransition>\n //\n // We should apply the transition because it's indicated as active going\n // from /list -> /details/1 and therefore should be active on the reverse\n // (even though this isn't strictly a POP reverse)\n return matchPath(path.pathname, nextPath) != null || matchPath(path.pathname, currentPath) != null;\n}\n//#endregion\n\nexport { BrowserRouter, Form, HashRouter, Link, NavLink, RouterProvider, ScrollRestoration, FetchersContext as UNSAFE_FetchersContext, ViewTransitionContext as UNSAFE_ViewTransitionContext, useScrollRestoration as UNSAFE_useScrollRestoration, createBrowserRouter, createHashRouter, createSearchParams, HistoryRouter as unstable_HistoryRouter, usePrompt as unstable_usePrompt, useViewTransitionState as unstable_useViewTransitionState, useBeforeUnload, useFetcher, useFetchers, useFormAction, useLinkClickHandler, useSearchParams, useSubmit };\n//# sourceMappingURL=index.js.map\n","const consoleLogger = {\n type: 'logger',\n log(args) {\n this.output('log', args);\n },\n warn(args) {\n this.output('warn', args);\n },\n error(args) {\n this.output('error', args);\n },\n output(type, args) {\n if (console && console[type]) console[type].apply(console, args);\n }\n};\nclass Logger {\n constructor(concreteLogger) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.init(concreteLogger, options);\n }\n init(concreteLogger) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.prefix = options.prefix || 'i18next:';\n this.logger = concreteLogger || consoleLogger;\n this.options = options;\n this.debug = options.debug;\n }\n log() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return this.forward(args, 'log', '', true);\n }\n warn() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n return this.forward(args, 'warn', '', true);\n }\n error() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n return this.forward(args, 'error', '');\n }\n deprecate() {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n return this.forward(args, 'warn', 'WARNING DEPRECATED: ', true);\n }\n forward(args, lvl, prefix, debugOnly) {\n if (debugOnly && !this.debug) return null;\n if (typeof args[0] === 'string') args[0] = `${prefix}${this.prefix} ${args[0]}`;\n return this.logger[lvl](args);\n }\n create(moduleName) {\n return new Logger(this.logger, {\n ...{\n prefix: `${this.prefix}:${moduleName}:`\n },\n ...this.options\n });\n }\n clone(options) {\n options = options || this.options;\n options.prefix = options.prefix || this.prefix;\n return new Logger(this.logger, options);\n }\n}\nvar baseLogger = new Logger();\n\nclass EventEmitter {\n constructor() {\n this.observers = {};\n }\n on(events, listener) {\n events.split(' ').forEach(event => {\n if (!this.observers[event]) this.observers[event] = new Map();\n const numListeners = this.observers[event].get(listener) || 0;\n this.observers[event].set(listener, numListeners + 1);\n });\n return this;\n }\n off(event, listener) {\n if (!this.observers[event]) return;\n if (!listener) {\n delete this.observers[event];\n return;\n }\n this.observers[event].delete(listener);\n }\n emit(event) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n if (this.observers[event]) {\n const cloned = Array.from(this.observers[event].entries());\n cloned.forEach(_ref => {\n let [observer, numTimesAdded] = _ref;\n for (let i = 0; i < numTimesAdded; i++) {\n observer(...args);\n }\n });\n }\n if (this.observers['*']) {\n const cloned = Array.from(this.observers['*'].entries());\n cloned.forEach(_ref2 => {\n let [observer, numTimesAdded] = _ref2;\n for (let i = 0; i < numTimesAdded; i++) {\n observer.apply(observer, [event, ...args]);\n }\n });\n }\n }\n}\n\nfunction defer() {\n let res;\n let rej;\n const promise = new Promise((resolve, reject) => {\n res = resolve;\n rej = reject;\n });\n promise.resolve = res;\n promise.reject = rej;\n return promise;\n}\nfunction makeString(object) {\n if (object == null) return '';\n return '' + object;\n}\nfunction copy(a, s, t) {\n a.forEach(m => {\n if (s[m]) t[m] = s[m];\n });\n}\nconst lastOfPathSeparatorRegExp = /###/g;\nfunction getLastOfPath(object, path, Empty) {\n function cleanKey(key) {\n return key && key.indexOf('###') > -1 ? key.replace(lastOfPathSeparatorRegExp, '.') : key;\n }\n function canNotTraverseDeeper() {\n return !object || typeof object === 'string';\n }\n const stack = typeof path !== 'string' ? path : path.split('.');\n let stackIndex = 0;\n while (stackIndex < stack.length - 1) {\n if (canNotTraverseDeeper()) return {};\n const key = cleanKey(stack[stackIndex]);\n if (!object[key] && Empty) object[key] = new Empty();\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n object = object[key];\n } else {\n object = {};\n }\n ++stackIndex;\n }\n if (canNotTraverseDeeper()) return {};\n return {\n obj: object,\n k: cleanKey(stack[stackIndex])\n };\n}\nfunction setPath(object, path, newValue) {\n const {\n obj,\n k\n } = getLastOfPath(object, path, Object);\n if (obj !== undefined || path.length === 1) {\n obj[k] = newValue;\n return;\n }\n let e = path[path.length - 1];\n let p = path.slice(0, path.length - 1);\n let last = getLastOfPath(object, p, Object);\n while (last.obj === undefined && p.length) {\n e = `${p[p.length - 1]}.${e}`;\n p = p.slice(0, p.length - 1);\n last = getLastOfPath(object, p, Object);\n if (last && last.obj && typeof last.obj[`${last.k}.${e}`] !== 'undefined') {\n last.obj = undefined;\n }\n }\n last.obj[`${last.k}.${e}`] = newValue;\n}\nfunction pushPath(object, path, newValue, concat) {\n const {\n obj,\n k\n } = getLastOfPath(object, path, Object);\n obj[k] = obj[k] || [];\n if (concat) obj[k] = obj[k].concat(newValue);\n if (!concat) obj[k].push(newValue);\n}\nfunction getPath(object, path) {\n const {\n obj,\n k\n } = getLastOfPath(object, path);\n if (!obj) return undefined;\n return obj[k];\n}\nfunction getPathWithDefaults(data, defaultData, key) {\n const value = getPath(data, key);\n if (value !== undefined) {\n return value;\n }\n return getPath(defaultData, key);\n}\nfunction deepExtend(target, source, overwrite) {\n for (const prop in source) {\n if (prop !== '__proto__' && prop !== 'constructor') {\n if (prop in target) {\n if (typeof target[prop] === 'string' || target[prop] instanceof String || typeof source[prop] === 'string' || source[prop] instanceof String) {\n if (overwrite) target[prop] = source[prop];\n } else {\n deepExtend(target[prop], source[prop], overwrite);\n }\n } else {\n target[prop] = source[prop];\n }\n }\n }\n return target;\n}\nfunction regexEscape(str) {\n return str.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, '\\\\$&');\n}\nvar _entityMap = {\n '&': '&amp;',\n '<': '&lt;',\n '>': '&gt;',\n '\"': '&quot;',\n \"'\": '&#39;',\n '/': '&#x2F;'\n};\nfunction escape(data) {\n if (typeof data === 'string') {\n return data.replace(/[&<>\"'\\/]/g, s => _entityMap[s]);\n }\n return data;\n}\nclass RegExpCache {\n constructor(capacity) {\n this.capacity = capacity;\n this.regExpMap = new Map();\n this.regExpQueue = [];\n }\n getRegExp(pattern) {\n const regExpFromCache = this.regExpMap.get(pattern);\n if (regExpFromCache !== undefined) {\n return regExpFromCache;\n }\n const regExpNew = new RegExp(pattern);\n if (this.regExpQueue.length === this.capacity) {\n this.regExpMap.delete(this.regExpQueue.shift());\n }\n this.regExpMap.set(pattern, regExpNew);\n this.regExpQueue.push(pattern);\n return regExpNew;\n }\n}\nconst chars = [' ', ',', '?', '!', ';'];\nconst looksLikeObjectPathRegExpCache = new RegExpCache(20);\nfunction looksLikeObjectPath(key, nsSeparator, keySeparator) {\n nsSeparator = nsSeparator || '';\n keySeparator = keySeparator || '';\n const possibleChars = chars.filter(c => nsSeparator.indexOf(c) < 0 && keySeparator.indexOf(c) < 0);\n if (possibleChars.length === 0) return true;\n const r = looksLikeObjectPathRegExpCache.getRegExp(`(${possibleChars.map(c => c === '?' ? '\\\\?' : c).join('|')})`);\n let matched = !r.test(key);\n if (!matched) {\n const ki = key.indexOf(keySeparator);\n if (ki > 0 && !r.test(key.substring(0, ki))) {\n matched = true;\n }\n }\n return matched;\n}\nfunction deepFind(obj, path) {\n let keySeparator = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '.';\n if (!obj) return undefined;\n if (obj[path]) return obj[path];\n const tokens = path.split(keySeparator);\n let current = obj;\n for (let i = 0; i < tokens.length;) {\n if (!current || typeof current !== 'object') {\n return undefined;\n }\n let next;\n let nextPath = '';\n for (let j = i; j < tokens.length; ++j) {\n if (j !== i) {\n nextPath += keySeparator;\n }\n nextPath += tokens[j];\n next = current[nextPath];\n if (next !== undefined) {\n if (['string', 'number', 'boolean'].indexOf(typeof next) > -1 && j < tokens.length - 1) {\n continue;\n }\n i += j - i + 1;\n break;\n }\n }\n current = next;\n }\n return current;\n}\nfunction getCleanedCode(code) {\n if (code && code.indexOf('_') > 0) return code.replace('_', '-');\n return code;\n}\n\nclass ResourceStore extends EventEmitter {\n constructor(data) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n ns: ['translation'],\n defaultNS: 'translation'\n };\n super();\n this.data = data || {};\n this.options = options;\n if (this.options.keySeparator === undefined) {\n this.options.keySeparator = '.';\n }\n if (this.options.ignoreJSONStructure === undefined) {\n this.options.ignoreJSONStructure = true;\n }\n }\n addNamespaces(ns) {\n if (this.options.ns.indexOf(ns) < 0) {\n this.options.ns.push(ns);\n }\n }\n removeNamespaces(ns) {\n const index = this.options.ns.indexOf(ns);\n if (index > -1) {\n this.options.ns.splice(index, 1);\n }\n }\n getResource(lng, ns, key) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n const ignoreJSONStructure = options.ignoreJSONStructure !== undefined ? options.ignoreJSONStructure : this.options.ignoreJSONStructure;\n let path;\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n } else {\n path = [lng, ns];\n if (key) {\n if (Array.isArray(key)) {\n path.push(...key);\n } else if (typeof key === 'string' && keySeparator) {\n path.push(...key.split(keySeparator));\n } else {\n path.push(key);\n }\n }\n }\n const result = getPath(this.data, path);\n if (!result && !ns && !key && lng.indexOf('.') > -1) {\n lng = path[0];\n ns = path[1];\n key = path.slice(2).join('.');\n }\n if (result || !ignoreJSONStructure || typeof key !== 'string') return result;\n return deepFind(this.data && this.data[lng] && this.data[lng][ns], key, keySeparator);\n }\n addResource(lng, ns, key, value) {\n let options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {\n silent: false\n };\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n let path = [lng, ns];\n if (key) path = path.concat(keySeparator ? key.split(keySeparator) : key);\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n value = ns;\n ns = path[1];\n }\n this.addNamespaces(ns);\n setPath(this.data, path, value);\n if (!options.silent) this.emit('added', lng, ns, key, value);\n }\n addResources(lng, ns, resources) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {\n silent: false\n };\n for (const m in resources) {\n if (typeof resources[m] === 'string' || Object.prototype.toString.apply(resources[m]) === '[object Array]') this.addResource(lng, ns, m, resources[m], {\n silent: true\n });\n }\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n addResourceBundle(lng, ns, resources, deep, overwrite) {\n let options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {\n silent: false,\n skipCopy: false\n };\n let path = [lng, ns];\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n deep = resources;\n resources = ns;\n ns = path[1];\n }\n this.addNamespaces(ns);\n let pack = getPath(this.data, path) || {};\n if (!options.skipCopy) resources = JSON.parse(JSON.stringify(resources));\n if (deep) {\n deepExtend(pack, resources, overwrite);\n } else {\n pack = {\n ...pack,\n ...resources\n };\n }\n setPath(this.data, path, pack);\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n removeResourceBundle(lng, ns) {\n if (this.hasResourceBundle(lng, ns)) {\n delete this.data[lng][ns];\n }\n this.removeNamespaces(ns);\n this.emit('removed', lng, ns);\n }\n hasResourceBundle(lng, ns) {\n return this.getResource(lng, ns) !== undefined;\n }\n getResourceBundle(lng, ns) {\n if (!ns) ns = this.options.defaultNS;\n if (this.options.compatibilityAPI === 'v1') return {\n ...{},\n ...this.getResource(lng, ns)\n };\n return this.getResource(lng, ns);\n }\n getDataByLanguage(lng) {\n return this.data[lng];\n }\n hasLanguageSomeTranslations(lng) {\n const data = this.getDataByLanguage(lng);\n const n = data && Object.keys(data) || [];\n return !!n.find(v => data[v] && Object.keys(data[v]).length > 0);\n }\n toJSON() {\n return this.data;\n }\n}\n\nvar postProcessor = {\n processors: {},\n addPostProcessor(module) {\n this.processors[module.name] = module;\n },\n handle(processors, value, key, options, translator) {\n processors.forEach(processor => {\n if (this.processors[processor]) value = this.processors[processor].process(value, key, options, translator);\n });\n return value;\n }\n};\n\nconst checkedLoadedFor = {};\nclass Translator extends EventEmitter {\n constructor(services) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n super();\n copy(['resourceStore', 'languageUtils', 'pluralResolver', 'interpolator', 'backendConnector', 'i18nFormat', 'utils'], services, this);\n this.options = options;\n if (this.options.keySeparator === undefined) {\n this.options.keySeparator = '.';\n }\n this.logger = baseLogger.create('translator');\n }\n changeLanguage(lng) {\n if (lng) this.language = lng;\n }\n exists(key) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n interpolation: {}\n };\n if (key === undefined || key === null) {\n return false;\n }\n const resolved = this.resolve(key, options);\n return resolved && resolved.res !== undefined;\n }\n extractFromKey(key, options) {\n let nsSeparator = options.nsSeparator !== undefined ? options.nsSeparator : this.options.nsSeparator;\n if (nsSeparator === undefined) nsSeparator = ':';\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n let namespaces = options.ns || this.options.defaultNS || [];\n const wouldCheckForNsInKey = nsSeparator && key.indexOf(nsSeparator) > -1;\n const seemsNaturalLanguage = !this.options.userDefinedKeySeparator && !options.keySeparator && !this.options.userDefinedNsSeparator && !options.nsSeparator && !looksLikeObjectPath(key, nsSeparator, keySeparator);\n if (wouldCheckForNsInKey && !seemsNaturalLanguage) {\n const m = key.match(this.interpolator.nestingRegexp);\n if (m && m.length > 0) {\n return {\n key,\n namespaces\n };\n }\n const parts = key.split(nsSeparator);\n if (nsSeparator !== keySeparator || nsSeparator === keySeparator && this.options.ns.indexOf(parts[0]) > -1) namespaces = parts.shift();\n key = parts.join(keySeparator);\n }\n if (typeof namespaces === 'string') namespaces = [namespaces];\n return {\n key,\n namespaces\n };\n }\n translate(keys, options, lastKey) {\n if (typeof options !== 'object' && this.options.overloadTranslationOptionHandler) {\n options = this.options.overloadTranslationOptionHandler(arguments);\n }\n if (typeof options === 'object') options = {\n ...options\n };\n if (!options) options = {};\n if (keys === undefined || keys === null) return '';\n if (!Array.isArray(keys)) keys = [String(keys)];\n const returnDetails = options.returnDetails !== undefined ? options.returnDetails : this.options.returnDetails;\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n const {\n key,\n namespaces\n } = this.extractFromKey(keys[keys.length - 1], options);\n const namespace = namespaces[namespaces.length - 1];\n const lng = options.lng || this.language;\n const appendNamespaceToCIMode = options.appendNamespaceToCIMode || this.options.appendNamespaceToCIMode;\n if (lng && lng.toLowerCase() === 'cimode') {\n if (appendNamespaceToCIMode) {\n const nsSeparator = options.nsSeparator || this.options.nsSeparator;\n if (returnDetails) {\n return {\n res: `${namespace}${nsSeparator}${key}`,\n usedKey: key,\n exactUsedKey: key,\n usedLng: lng,\n usedNS: namespace,\n usedParams: this.getUsedParamsDetails(options)\n };\n }\n return `${namespace}${nsSeparator}${key}`;\n }\n if (returnDetails) {\n return {\n res: key,\n usedKey: key,\n exactUsedKey: key,\n usedLng: lng,\n usedNS: namespace,\n usedParams: this.getUsedParamsDetails(options)\n };\n }\n return key;\n }\n const resolved = this.resolve(keys, options);\n let res = resolved && resolved.res;\n const resUsedKey = resolved && resolved.usedKey || key;\n const resExactUsedKey = resolved && resolved.exactUsedKey || key;\n const resType = Object.prototype.toString.apply(res);\n const noObject = ['[object Number]', '[object Function]', '[object RegExp]'];\n const joinArrays = options.joinArrays !== undefined ? options.joinArrays : this.options.joinArrays;\n const handleAsObjectInI18nFormat = !this.i18nFormat || this.i18nFormat.handleAsObject;\n const handleAsObject = typeof res !== 'string' && typeof res !== 'boolean' && typeof res !== 'number';\n if (handleAsObjectInI18nFormat && res && handleAsObject && noObject.indexOf(resType) < 0 && !(typeof joinArrays === 'string' && resType === '[object Array]')) {\n if (!options.returnObjects && !this.options.returnObjects) {\n if (!this.options.returnedObjectHandler) {\n this.logger.warn('accessing an object - but returnObjects options is not enabled!');\n }\n const r = this.options.returnedObjectHandler ? this.options.returnedObjectHandler(resUsedKey, res, {\n ...options,\n ns: namespaces\n }) : `key '${key} (${this.language})' returned an object instead of string.`;\n if (returnDetails) {\n resolved.res = r;\n resolved.usedParams = this.getUsedParamsDetails(options);\n return resolved;\n }\n return r;\n }\n if (keySeparator) {\n const resTypeIsArray = resType === '[object Array]';\n const copy = resTypeIsArray ? [] : {};\n const newKeyToUse = resTypeIsArray ? resExactUsedKey : resUsedKey;\n for (const m in res) {\n if (Object.prototype.hasOwnProperty.call(res, m)) {\n const deepKey = `${newKeyToUse}${keySeparator}${m}`;\n copy[m] = this.translate(deepKey, {\n ...options,\n ...{\n joinArrays: false,\n ns: namespaces\n }\n });\n if (copy[m] === deepKey) copy[m] = res[m];\n }\n }\n res = copy;\n }\n } else if (handleAsObjectInI18nFormat && typeof joinArrays === 'string' && resType === '[object Array]') {\n res = res.join(joinArrays);\n if (res) res = this.extendTranslation(res, keys, options, lastKey);\n } else {\n let usedDefault = false;\n let usedKey = false;\n const needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n const hasDefaultValue = Translator.hasDefaultValue(options);\n const defaultValueSuffix = needsPluralHandling ? this.pluralResolver.getSuffix(lng, options.count, options) : '';\n const defaultValueSuffixOrdinalFallback = options.ordinal && needsPluralHandling ? this.pluralResolver.getSuffix(lng, options.count, {\n ordinal: false\n }) : '';\n const needsZeroSuffixLookup = needsPluralHandling && !options.ordinal && options.count === 0 && this.pluralResolver.shouldUseIntlApi();\n const defaultValue = needsZeroSuffixLookup && options[`defaultValue${this.options.pluralSeparator}zero`] || options[`defaultValue${defaultValueSuffix}`] || options[`defaultValue${defaultValueSuffixOrdinalFallback}`] || options.defaultValue;\n if (!this.isValidLookup(res) && hasDefaultValue) {\n usedDefault = true;\n res = defaultValue;\n }\n if (!this.isValidLookup(res)) {\n usedKey = true;\n res = key;\n }\n const missingKeyNoValueFallbackToKey = options.missingKeyNoValueFallbackToKey || this.options.missingKeyNoValueFallbackToKey;\n const resForMissing = missingKeyNoValueFallbackToKey && usedKey ? undefined : res;\n const updateMissing = hasDefaultValue && defaultValue !== res && this.options.updateMissing;\n if (usedKey || usedDefault || updateMissing) {\n this.logger.log(updateMissing ? 'updateKey' : 'missingKey', lng, namespace, key, updateMissing ? defaultValue : res);\n if (keySeparator) {\n const fk = this.resolve(key, {\n ...options,\n keySeparator: false\n });\n if (fk && fk.res) this.logger.warn('Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.');\n }\n let lngs = [];\n const fallbackLngs = this.languageUtils.getFallbackCodes(this.options.fallbackLng, options.lng || this.language);\n if (this.options.saveMissingTo === 'fallback' && fallbackLngs && fallbackLngs[0]) {\n for (let i = 0; i < fallbackLngs.length; i++) {\n lngs.push(fallbackLngs[i]);\n }\n } else if (this.options.saveMissingTo === 'all') {\n lngs = this.languageUtils.toResolveHierarchy(options.lng || this.language);\n } else {\n lngs.push(options.lng || this.language);\n }\n const send = (l, k, specificDefaultValue) => {\n const defaultForMissing = hasDefaultValue && specificDefaultValue !== res ? specificDefaultValue : resForMissing;\n if (this.options.missingKeyHandler) {\n this.options.missingKeyHandler(l, namespace, k, defaultForMissing, updateMissing, options);\n } else if (this.backendConnector && this.backendConnector.saveMissing) {\n this.backendConnector.saveMissing(l, namespace, k, defaultForMissing, updateMissing, options);\n }\n this.emit('missingKey', l, namespace, k, res);\n };\n if (this.options.saveMissing) {\n if (this.options.saveMissingPlurals && needsPluralHandling) {\n lngs.forEach(language => {\n const suffixes = this.pluralResolver.getSuffixes(language, options);\n if (needsZeroSuffixLookup && options[`defaultValue${this.options.pluralSeparator}zero`] && suffixes.indexOf(`${this.options.pluralSeparator}zero`) < 0) {\n suffixes.push(`${this.options.pluralSeparator}zero`);\n }\n suffixes.forEach(suffix => {\n send([language], key + suffix, options[`defaultValue${suffix}`] || defaultValue);\n });\n });\n } else {\n send(lngs, key, defaultValue);\n }\n }\n }\n res = this.extendTranslation(res, keys, options, resolved, lastKey);\n if (usedKey && res === key && this.options.appendNamespaceToMissingKey) res = `${namespace}:${key}`;\n if ((usedKey || usedDefault) && this.options.parseMissingKeyHandler) {\n if (this.options.compatibilityAPI !== 'v1') {\n res = this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey ? `${namespace}:${key}` : key, usedDefault ? res : undefined);\n } else {\n res = this.options.parseMissingKeyHandler(res);\n }\n }\n }\n if (returnDetails) {\n resolved.res = res;\n resolved.usedParams = this.getUsedParamsDetails(options);\n return resolved;\n }\n return res;\n }\n extendTranslation(res, key, options, resolved, lastKey) {\n var _this = this;\n if (this.i18nFormat && this.i18nFormat.parse) {\n res = this.i18nFormat.parse(res, {\n ...this.options.interpolation.defaultVariables,\n ...options\n }, options.lng || this.language || resolved.usedLng, resolved.usedNS, resolved.usedKey, {\n resolved\n });\n } else if (!options.skipInterpolation) {\n if (options.interpolation) this.interpolator.init({\n ...options,\n ...{\n interpolation: {\n ...this.options.interpolation,\n ...options.interpolation\n }\n }\n });\n const skipOnVariables = typeof res === 'string' && (options && options.interpolation && options.interpolation.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables);\n let nestBef;\n if (skipOnVariables) {\n const nb = res.match(this.interpolator.nestingRegexp);\n nestBef = nb && nb.length;\n }\n let data = options.replace && typeof options.replace !== 'string' ? options.replace : options;\n if (this.options.interpolation.defaultVariables) data = {\n ...this.options.interpolation.defaultVariables,\n ...data\n };\n res = this.interpolator.interpolate(res, data, options.lng || this.language, options);\n if (skipOnVariables) {\n const na = res.match(this.interpolator.nestingRegexp);\n const nestAft = na && na.length;\n if (nestBef < nestAft) options.nest = false;\n }\n if (!options.lng && this.options.compatibilityAPI !== 'v1' && resolved && resolved.res) options.lng = resolved.usedLng;\n if (options.nest !== false) res = this.interpolator.nest(res, function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (lastKey && lastKey[0] === args[0] && !options.context) {\n _this.logger.warn(`It seems you are nesting recursively key: ${args[0]} in key: ${key[0]}`);\n return null;\n }\n return _this.translate(...args, key);\n }, options);\n if (options.interpolation) this.interpolator.reset();\n }\n const postProcess = options.postProcess || this.options.postProcess;\n const postProcessorNames = typeof postProcess === 'string' ? [postProcess] : postProcess;\n if (res !== undefined && res !== null && postProcessorNames && postProcessorNames.length && options.applyPostProcessor !== false) {\n res = postProcessor.handle(postProcessorNames, res, key, this.options && this.options.postProcessPassResolved ? {\n i18nResolved: {\n ...resolved,\n usedParams: this.getUsedParamsDetails(options)\n },\n ...options\n } : options, this);\n }\n return res;\n }\n resolve(keys) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n let found;\n let usedKey;\n let exactUsedKey;\n let usedLng;\n let usedNS;\n if (typeof keys === 'string') keys = [keys];\n keys.forEach(k => {\n if (this.isValidLookup(found)) return;\n const extracted = this.extractFromKey(k, options);\n const key = extracted.key;\n usedKey = key;\n let namespaces = extracted.namespaces;\n if (this.options.fallbackNS) namespaces = namespaces.concat(this.options.fallbackNS);\n const needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n const needsZeroSuffixLookup = needsPluralHandling && !options.ordinal && options.count === 0 && this.pluralResolver.shouldUseIntlApi();\n const needsContextHandling = options.context !== undefined && (typeof options.context === 'string' || typeof options.context === 'number') && options.context !== '';\n const codes = options.lngs ? options.lngs : this.languageUtils.toResolveHierarchy(options.lng || this.language, options.fallbackLng);\n namespaces.forEach(ns => {\n if (this.isValidLookup(found)) return;\n usedNS = ns;\n if (!checkedLoadedFor[`${codes[0]}-${ns}`] && this.utils && this.utils.hasLoadedNamespace && !this.utils.hasLoadedNamespace(usedNS)) {\n checkedLoadedFor[`${codes[0]}-${ns}`] = true;\n this.logger.warn(`key \"${usedKey}\" for languages \"${codes.join(', ')}\" won't get resolved as namespace \"${usedNS}\" was not yet loaded`, 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n }\n codes.forEach(code => {\n if (this.isValidLookup(found)) return;\n usedLng = code;\n const finalKeys = [key];\n if (this.i18nFormat && this.i18nFormat.addLookupKeys) {\n this.i18nFormat.addLookupKeys(finalKeys, key, code, ns, options);\n } else {\n let pluralSuffix;\n if (needsPluralHandling) pluralSuffix = this.pluralResolver.getSuffix(code, options.count, options);\n const zeroSuffix = `${this.options.pluralSeparator}zero`;\n const ordinalPrefix = `${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`;\n if (needsPluralHandling) {\n finalKeys.push(key + pluralSuffix);\n if (options.ordinal && pluralSuffix.indexOf(ordinalPrefix) === 0) {\n finalKeys.push(key + pluralSuffix.replace(ordinalPrefix, this.options.pluralSeparator));\n }\n if (needsZeroSuffixLookup) {\n finalKeys.push(key + zeroSuffix);\n }\n }\n if (needsContextHandling) {\n const contextKey = `${key}${this.options.contextSeparator}${options.context}`;\n finalKeys.push(contextKey);\n if (needsPluralHandling) {\n finalKeys.push(contextKey + pluralSuffix);\n if (options.ordinal && pluralSuffix.indexOf(ordinalPrefix) === 0) {\n finalKeys.push(contextKey + pluralSuffix.replace(ordinalPrefix, this.options.pluralSeparator));\n }\n if (needsZeroSuffixLookup) {\n finalKeys.push(contextKey + zeroSuffix);\n }\n }\n }\n }\n let possibleKey;\n while (possibleKey = finalKeys.pop()) {\n if (!this.isValidLookup(found)) {\n exactUsedKey = possibleKey;\n found = this.getResource(code, ns, possibleKey, options);\n }\n }\n });\n });\n });\n return {\n res: found,\n usedKey,\n exactUsedKey,\n usedLng,\n usedNS\n };\n }\n isValidLookup(res) {\n return res !== undefined && !(!this.options.returnNull && res === null) && !(!this.options.returnEmptyString && res === '');\n }\n getResource(code, ns, key) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n if (this.i18nFormat && this.i18nFormat.getResource) return this.i18nFormat.getResource(code, ns, key, options);\n return this.resourceStore.getResource(code, ns, key, options);\n }\n getUsedParamsDetails() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n const optionsKeys = ['defaultValue', 'ordinal', 'context', 'replace', 'lng', 'lngs', 'fallbackLng', 'ns', 'keySeparator', 'nsSeparator', 'returnObjects', 'returnDetails', 'joinArrays', 'postProcess', 'interpolation'];\n const useOptionsReplaceForData = options.replace && typeof options.replace !== 'string';\n let data = useOptionsReplaceForData ? options.replace : options;\n if (useOptionsReplaceForData && typeof options.count !== 'undefined') {\n data.count = options.count;\n }\n if (this.options.interpolation.defaultVariables) {\n data = {\n ...this.options.interpolation.defaultVariables,\n ...data\n };\n }\n if (!useOptionsReplaceForData) {\n data = {\n ...data\n };\n for (const key of optionsKeys) {\n delete data[key];\n }\n }\n return data;\n }\n static hasDefaultValue(options) {\n const prefix = 'defaultValue';\n for (const option in options) {\n if (Object.prototype.hasOwnProperty.call(options, option) && prefix === option.substring(0, prefix.length) && undefined !== options[option]) {\n return true;\n }\n }\n return false;\n }\n}\n\nfunction capitalize(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\nclass LanguageUtil {\n constructor(options) {\n this.options = options;\n this.supportedLngs = this.options.supportedLngs || false;\n this.logger = baseLogger.create('languageUtils');\n }\n getScriptPartFromCode(code) {\n code = getCleanedCode(code);\n if (!code || code.indexOf('-') < 0) return null;\n const p = code.split('-');\n if (p.length === 2) return null;\n p.pop();\n if (p[p.length - 1].toLowerCase() === 'x') return null;\n return this.formatLanguageCode(p.join('-'));\n }\n getLanguagePartFromCode(code) {\n code = getCleanedCode(code);\n if (!code || code.indexOf('-') < 0) return code;\n const p = code.split('-');\n return this.formatLanguageCode(p[0]);\n }\n formatLanguageCode(code) {\n if (typeof code === 'string' && code.indexOf('-') > -1) {\n const specialCases = ['hans', 'hant', 'latn', 'cyrl', 'cans', 'mong', 'arab'];\n let p = code.split('-');\n if (this.options.lowerCaseLng) {\n p = p.map(part => part.toLowerCase());\n } else if (p.length === 2) {\n p[0] = p[0].toLowerCase();\n p[1] = p[1].toUpperCase();\n if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n } else if (p.length === 3) {\n p[0] = p[0].toLowerCase();\n if (p[1].length === 2) p[1] = p[1].toUpperCase();\n if (p[0] !== 'sgn' && p[2].length === 2) p[2] = p[2].toUpperCase();\n if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n if (specialCases.indexOf(p[2].toLowerCase()) > -1) p[2] = capitalize(p[2].toLowerCase());\n }\n return p.join('-');\n }\n return this.options.cleanCode || this.options.lowerCaseLng ? code.toLowerCase() : code;\n }\n isSupportedCode(code) {\n if (this.options.load === 'languageOnly' || this.options.nonExplicitSupportedLngs) {\n code = this.getLanguagePartFromCode(code);\n }\n return !this.supportedLngs || !this.supportedLngs.length || this.supportedLngs.indexOf(code) > -1;\n }\n getBestMatchFromCodes(codes) {\n if (!codes) return null;\n let found;\n codes.forEach(code => {\n if (found) return;\n const cleanedLng = this.formatLanguageCode(code);\n if (!this.options.supportedLngs || this.isSupportedCode(cleanedLng)) found = cleanedLng;\n });\n if (!found && this.options.supportedLngs) {\n codes.forEach(code => {\n if (found) return;\n const lngOnly = this.getLanguagePartFromCode(code);\n if (this.isSupportedCode(lngOnly)) return found = lngOnly;\n found = this.options.supportedLngs.find(supportedLng => {\n if (supportedLng === lngOnly) return supportedLng;\n if (supportedLng.indexOf('-') < 0 && lngOnly.indexOf('-') < 0) return;\n if (supportedLng.indexOf('-') > 0 && lngOnly.indexOf('-') < 0 && supportedLng.substring(0, supportedLng.indexOf('-')) === lngOnly) return supportedLng;\n if (supportedLng.indexOf(lngOnly) === 0 && lngOnly.length > 1) return supportedLng;\n });\n });\n }\n if (!found) found = this.getFallbackCodes(this.options.fallbackLng)[0];\n return found;\n }\n getFallbackCodes(fallbacks, code) {\n if (!fallbacks) return [];\n if (typeof fallbacks === 'function') fallbacks = fallbacks(code);\n if (typeof fallbacks === 'string') fallbacks = [fallbacks];\n if (Object.prototype.toString.apply(fallbacks) === '[object Array]') return fallbacks;\n if (!code) return fallbacks.default || [];\n let found = fallbacks[code];\n if (!found) found = fallbacks[this.getScriptPartFromCode(code)];\n if (!found) found = fallbacks[this.formatLanguageCode(code)];\n if (!found) found = fallbacks[this.getLanguagePartFromCode(code)];\n if (!found) found = fallbacks.default;\n return found || [];\n }\n toResolveHierarchy(code, fallbackCode) {\n const fallbackCodes = this.getFallbackCodes(fallbackCode || this.options.fallbackLng || [], code);\n const codes = [];\n const addCode = c => {\n if (!c) return;\n if (this.isSupportedCode(c)) {\n codes.push(c);\n } else {\n this.logger.warn(`rejecting language code not found in supportedLngs: ${c}`);\n }\n };\n if (typeof code === 'string' && (code.indexOf('-') > -1 || code.indexOf('_') > -1)) {\n if (this.options.load !== 'languageOnly') addCode(this.formatLanguageCode(code));\n if (this.options.load !== 'languageOnly' && this.options.load !== 'currentOnly') addCode(this.getScriptPartFromCode(code));\n if (this.options.load !== 'currentOnly') addCode(this.getLanguagePartFromCode(code));\n } else if (typeof code === 'string') {\n addCode(this.formatLanguageCode(code));\n }\n fallbackCodes.forEach(fc => {\n if (codes.indexOf(fc) < 0) addCode(this.formatLanguageCode(fc));\n });\n return codes;\n }\n}\n\nlet sets = [{\n lngs: ['ach', 'ak', 'am', 'arn', 'br', 'fil', 'gun', 'ln', 'mfe', 'mg', 'mi', 'oc', 'pt', 'pt-BR', 'tg', 'tl', 'ti', 'tr', 'uz', 'wa'],\n nr: [1, 2],\n fc: 1\n}, {\n lngs: ['af', 'an', 'ast', 'az', 'bg', 'bn', 'ca', 'da', 'de', 'dev', 'el', 'en', 'eo', 'es', 'et', 'eu', 'fi', 'fo', 'fur', 'fy', 'gl', 'gu', 'ha', 'hi', 'hu', 'hy', 'ia', 'it', 'kk', 'kn', 'ku', 'lb', 'mai', 'ml', 'mn', 'mr', 'nah', 'nap', 'nb', 'ne', 'nl', 'nn', 'no', 'nso', 'pa', 'pap', 'pms', 'ps', 'pt-PT', 'rm', 'sco', 'se', 'si', 'so', 'son', 'sq', 'sv', 'sw', 'ta', 'te', 'tk', 'ur', 'yo'],\n nr: [1, 2],\n fc: 2\n}, {\n lngs: ['ay', 'bo', 'cgg', 'fa', 'ht', 'id', 'ja', 'jbo', 'ka', 'km', 'ko', 'ky', 'lo', 'ms', 'sah', 'su', 'th', 'tt', 'ug', 'vi', 'wo', 'zh'],\n nr: [1],\n fc: 3\n}, {\n lngs: ['be', 'bs', 'cnr', 'dz', 'hr', 'ru', 'sr', 'uk'],\n nr: [1, 2, 5],\n fc: 4\n}, {\n lngs: ['ar'],\n nr: [0, 1, 2, 3, 11, 100],\n fc: 5\n}, {\n lngs: ['cs', 'sk'],\n nr: [1, 2, 5],\n fc: 6\n}, {\n lngs: ['csb', 'pl'],\n nr: [1, 2, 5],\n fc: 7\n}, {\n lngs: ['cy'],\n nr: [1, 2, 3, 8],\n fc: 8\n}, {\n lngs: ['fr'],\n nr: [1, 2],\n fc: 9\n}, {\n lngs: ['ga'],\n nr: [1, 2, 3, 7, 11],\n fc: 10\n}, {\n lngs: ['gd'],\n nr: [1, 2, 3, 20],\n fc: 11\n}, {\n lngs: ['is'],\n nr: [1, 2],\n fc: 12\n}, {\n lngs: ['jv'],\n nr: [0, 1],\n fc: 13\n}, {\n lngs: ['kw'],\n nr: [1, 2, 3, 4],\n fc: 14\n}, {\n lngs: ['lt'],\n nr: [1, 2, 10],\n fc: 15\n}, {\n lngs: ['lv'],\n nr: [1, 2, 0],\n fc: 16\n}, {\n lngs: ['mk'],\n nr: [1, 2],\n fc: 17\n}, {\n lngs: ['mnk'],\n nr: [0, 1, 2],\n fc: 18\n}, {\n lngs: ['mt'],\n nr: [1, 2, 11, 20],\n fc: 19\n}, {\n lngs: ['or'],\n nr: [2, 1],\n fc: 2\n}, {\n lngs: ['ro'],\n nr: [1, 2, 20],\n fc: 20\n}, {\n lngs: ['sl'],\n nr: [5, 1, 2, 3],\n fc: 21\n}, {\n lngs: ['he', 'iw'],\n nr: [1, 2, 20, 21],\n fc: 22\n}];\nlet _rulesPluralsTypes = {\n 1: function (n) {\n return Number(n > 1);\n },\n 2: function (n) {\n return Number(n != 1);\n },\n 3: function (n) {\n return 0;\n },\n 4: function (n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 5: function (n) {\n return Number(n == 0 ? 0 : n == 1 ? 1 : n == 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5);\n },\n 6: function (n) {\n return Number(n == 1 ? 0 : n >= 2 && n <= 4 ? 1 : 2);\n },\n 7: function (n) {\n return Number(n == 1 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 8: function (n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n != 8 && n != 11 ? 2 : 3);\n },\n 9: function (n) {\n return Number(n >= 2);\n },\n 10: function (n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n < 7 ? 2 : n < 11 ? 3 : 4);\n },\n 11: function (n) {\n return Number(n == 1 || n == 11 ? 0 : n == 2 || n == 12 ? 1 : n > 2 && n < 20 ? 2 : 3);\n },\n 12: function (n) {\n return Number(n % 10 != 1 || n % 100 == 11);\n },\n 13: function (n) {\n return Number(n !== 0);\n },\n 14: function (n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n == 3 ? 2 : 3);\n },\n 15: function (n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 16: function (n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n !== 0 ? 1 : 2);\n },\n 17: function (n) {\n return Number(n == 1 || n % 10 == 1 && n % 100 != 11 ? 0 : 1);\n },\n 18: function (n) {\n return Number(n == 0 ? 0 : n == 1 ? 1 : 2);\n },\n 19: function (n) {\n return Number(n == 1 ? 0 : n == 0 || n % 100 > 1 && n % 100 < 11 ? 1 : n % 100 > 10 && n % 100 < 20 ? 2 : 3);\n },\n 20: function (n) {\n return Number(n == 1 ? 0 : n == 0 || n % 100 > 0 && n % 100 < 20 ? 1 : 2);\n },\n 21: function (n) {\n return Number(n % 100 == 1 ? 1 : n % 100 == 2 ? 2 : n % 100 == 3 || n % 100 == 4 ? 3 : 0);\n },\n 22: function (n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : (n < 0 || n > 10) && n % 10 == 0 ? 2 : 3);\n }\n};\nconst nonIntlVersions = ['v1', 'v2', 'v3'];\nconst intlVersions = ['v4'];\nconst suffixesOrder = {\n zero: 0,\n one: 1,\n two: 2,\n few: 3,\n many: 4,\n other: 5\n};\nfunction createRules() {\n const rules = {};\n sets.forEach(set => {\n set.lngs.forEach(l => {\n rules[l] = {\n numbers: set.nr,\n plurals: _rulesPluralsTypes[set.fc]\n };\n });\n });\n return rules;\n}\nclass PluralResolver {\n constructor(languageUtils) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.languageUtils = languageUtils;\n this.options = options;\n this.logger = baseLogger.create('pluralResolver');\n if ((!this.options.compatibilityJSON || intlVersions.includes(this.options.compatibilityJSON)) && (typeof Intl === 'undefined' || !Intl.PluralRules)) {\n this.options.compatibilityJSON = 'v3';\n this.logger.error('Your environment seems not to be Intl API compatible, use an Intl.PluralRules polyfill. Will fallback to the compatibilityJSON v3 format handling.');\n }\n this.rules = createRules();\n }\n addRule(lng, obj) {\n this.rules[lng] = obj;\n }\n getRule(code) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (this.shouldUseIntlApi()) {\n try {\n return new Intl.PluralRules(getCleanedCode(code === 'dev' ? 'en' : code), {\n type: options.ordinal ? 'ordinal' : 'cardinal'\n });\n } catch (err) {\n return;\n }\n }\n return this.rules[code] || this.rules[this.languageUtils.getLanguagePartFromCode(code)];\n }\n needsPlural(code) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const rule = this.getRule(code, options);\n if (this.shouldUseIntlApi()) {\n return rule && rule.resolvedOptions().pluralCategories.length > 1;\n }\n return rule && rule.numbers.length > 1;\n }\n getPluralFormsOfKey(code, key) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return this.getSuffixes(code, options).map(suffix => `${key}${suffix}`);\n }\n getSuffixes(code) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const rule = this.getRule(code, options);\n if (!rule) {\n return [];\n }\n if (this.shouldUseIntlApi()) {\n return rule.resolvedOptions().pluralCategories.sort((pluralCategory1, pluralCategory2) => suffixesOrder[pluralCategory1] - suffixesOrder[pluralCategory2]).map(pluralCategory => `${this.options.prepend}${options.ordinal ? `ordinal${this.options.prepend}` : ''}${pluralCategory}`);\n }\n return rule.numbers.map(number => this.getSuffix(code, number, options));\n }\n getSuffix(code, count) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n const rule = this.getRule(code, options);\n if (rule) {\n if (this.shouldUseIntlApi()) {\n return `${this.options.prepend}${options.ordinal ? `ordinal${this.options.prepend}` : ''}${rule.select(count)}`;\n }\n return this.getSuffixRetroCompatible(rule, count);\n }\n this.logger.warn(`no plural rule found for: ${code}`);\n return '';\n }\n getSuffixRetroCompatible(rule, count) {\n const idx = rule.noAbs ? rule.plurals(count) : rule.plurals(Math.abs(count));\n let suffix = rule.numbers[idx];\n if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n if (suffix === 2) {\n suffix = 'plural';\n } else if (suffix === 1) {\n suffix = '';\n }\n }\n const returnSuffix = () => this.options.prepend && suffix.toString() ? this.options.prepend + suffix.toString() : suffix.toString();\n if (this.options.compatibilityJSON === 'v1') {\n if (suffix === 1) return '';\n if (typeof suffix === 'number') return `_plural_${suffix.toString()}`;\n return returnSuffix();\n } else if (this.options.compatibilityJSON === 'v2') {\n return returnSuffix();\n } else if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n return returnSuffix();\n }\n return this.options.prepend && idx.toString() ? this.options.prepend + idx.toString() : idx.toString();\n }\n shouldUseIntlApi() {\n return !nonIntlVersions.includes(this.options.compatibilityJSON);\n }\n}\n\nfunction deepFindWithDefaults(data, defaultData, key) {\n let keySeparator = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '.';\n let ignoreJSONStructure = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true;\n let path = getPathWithDefaults(data, defaultData, key);\n if (!path && ignoreJSONStructure && typeof key === 'string') {\n path = deepFind(data, key, keySeparator);\n if (path === undefined) path = deepFind(defaultData, key, keySeparator);\n }\n return path;\n}\nclass Interpolator {\n constructor() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.logger = baseLogger.create('interpolator');\n this.options = options;\n this.format = options.interpolation && options.interpolation.format || (value => value);\n this.init(options);\n }\n init() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (!options.interpolation) options.interpolation = {\n escapeValue: true\n };\n const iOpts = options.interpolation;\n this.escape = iOpts.escape !== undefined ? iOpts.escape : escape;\n this.escapeValue = iOpts.escapeValue !== undefined ? iOpts.escapeValue : true;\n this.useRawValueToEscape = iOpts.useRawValueToEscape !== undefined ? iOpts.useRawValueToEscape : false;\n this.prefix = iOpts.prefix ? regexEscape(iOpts.prefix) : iOpts.prefixEscaped || '{{';\n this.suffix = iOpts.suffix ? regexEscape(iOpts.suffix) : iOpts.suffixEscaped || '}}';\n this.formatSeparator = iOpts.formatSeparator ? iOpts.formatSeparator : iOpts.formatSeparator || ',';\n this.unescapePrefix = iOpts.unescapeSuffix ? '' : iOpts.unescapePrefix || '-';\n this.unescapeSuffix = this.unescapePrefix ? '' : iOpts.unescapeSuffix || '';\n this.nestingPrefix = iOpts.nestingPrefix ? regexEscape(iOpts.nestingPrefix) : iOpts.nestingPrefixEscaped || regexEscape('$t(');\n this.nestingSuffix = iOpts.nestingSuffix ? regexEscape(iOpts.nestingSuffix) : iOpts.nestingSuffixEscaped || regexEscape(')');\n this.nestingOptionsSeparator = iOpts.nestingOptionsSeparator ? iOpts.nestingOptionsSeparator : iOpts.nestingOptionsSeparator || ',';\n this.maxReplaces = iOpts.maxReplaces ? iOpts.maxReplaces : 1000;\n this.alwaysFormat = iOpts.alwaysFormat !== undefined ? iOpts.alwaysFormat : false;\n this.resetRegExp();\n }\n reset() {\n if (this.options) this.init(this.options);\n }\n resetRegExp() {\n const getOrResetRegExp = (existingRegExp, pattern) => {\n if (existingRegExp && existingRegExp.source === pattern) {\n existingRegExp.lastIndex = 0;\n return existingRegExp;\n }\n return new RegExp(pattern, 'g');\n };\n this.regexp = getOrResetRegExp(this.regexp, `${this.prefix}(.+?)${this.suffix}`);\n this.regexpUnescape = getOrResetRegExp(this.regexpUnescape, `${this.prefix}${this.unescapePrefix}(.+?)${this.unescapeSuffix}${this.suffix}`);\n this.nestingRegexp = getOrResetRegExp(this.nestingRegexp, `${this.nestingPrefix}(.+?)${this.nestingSuffix}`);\n }\n interpolate(str, data, lng, options) {\n let match;\n let value;\n let replaces;\n const defaultData = this.options && this.options.interpolation && this.options.interpolation.defaultVariables || {};\n function regexSafe(val) {\n return val.replace(/\\$/g, '$$$$');\n }\n const handleFormat = key => {\n if (key.indexOf(this.formatSeparator) < 0) {\n const path = deepFindWithDefaults(data, defaultData, key, this.options.keySeparator, this.options.ignoreJSONStructure);\n return this.alwaysFormat ? this.format(path, undefined, lng, {\n ...options,\n ...data,\n interpolationkey: key\n }) : path;\n }\n const p = key.split(this.formatSeparator);\n const k = p.shift().trim();\n const f = p.join(this.formatSeparator).trim();\n return this.format(deepFindWithDefaults(data, defaultData, k, this.options.keySeparator, this.options.ignoreJSONStructure), f, lng, {\n ...options,\n ...data,\n interpolationkey: k\n });\n };\n this.resetRegExp();\n const missingInterpolationHandler = options && options.missingInterpolationHandler || this.options.missingInterpolationHandler;\n const skipOnVariables = options && options.interpolation && options.interpolation.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables;\n const todos = [{\n regex: this.regexpUnescape,\n safeValue: val => regexSafe(val)\n }, {\n regex: this.regexp,\n safeValue: val => this.escapeValue ? regexSafe(this.escape(val)) : regexSafe(val)\n }];\n todos.forEach(todo => {\n replaces = 0;\n while (match = todo.regex.exec(str)) {\n const matchedVar = match[1].trim();\n value = handleFormat(matchedVar);\n if (value === undefined) {\n if (typeof missingInterpolationHandler === 'function') {\n const temp = missingInterpolationHandler(str, match, options);\n value = typeof temp === 'string' ? temp : '';\n } else if (options && Object.prototype.hasOwnProperty.call(options, matchedVar)) {\n value = '';\n } else if (skipOnVariables) {\n value = match[0];\n continue;\n } else {\n this.logger.warn(`missed to pass in variable ${matchedVar} for interpolating ${str}`);\n value = '';\n }\n } else if (typeof value !== 'string' && !this.useRawValueToEscape) {\n value = makeString(value);\n }\n const safeValue = todo.safeValue(value);\n str = str.replace(match[0], safeValue);\n if (skipOnVariables) {\n todo.regex.lastIndex += value.length;\n todo.regex.lastIndex -= match[0].length;\n } else {\n todo.regex.lastIndex = 0;\n }\n replaces++;\n if (replaces >= this.maxReplaces) {\n break;\n }\n }\n });\n return str;\n }\n nest(str, fc) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n let match;\n let value;\n let clonedOptions;\n function handleHasOptions(key, inheritedOptions) {\n const sep = this.nestingOptionsSeparator;\n if (key.indexOf(sep) < 0) return key;\n const c = key.split(new RegExp(`${sep}[ ]*{`));\n let optionsString = `{${c[1]}`;\n key = c[0];\n optionsString = this.interpolate(optionsString, clonedOptions);\n const matchedSingleQuotes = optionsString.match(/'/g);\n const matchedDoubleQuotes = optionsString.match(/\"/g);\n if (matchedSingleQuotes && matchedSingleQuotes.length % 2 === 0 && !matchedDoubleQuotes || matchedDoubleQuotes.length % 2 !== 0) {\n optionsString = optionsString.replace(/'/g, '\"');\n }\n try {\n clonedOptions = JSON.parse(optionsString);\n if (inheritedOptions) clonedOptions = {\n ...inheritedOptions,\n ...clonedOptions\n };\n } catch (e) {\n this.logger.warn(`failed parsing options string in nesting for key ${key}`, e);\n return `${key}${sep}${optionsString}`;\n }\n delete clonedOptions.defaultValue;\n return key;\n }\n while (match = this.nestingRegexp.exec(str)) {\n let formatters = [];\n clonedOptions = {\n ...options\n };\n clonedOptions = clonedOptions.replace && typeof clonedOptions.replace !== 'string' ? clonedOptions.replace : clonedOptions;\n clonedOptions.applyPostProcessor = false;\n delete clonedOptions.defaultValue;\n let doReduce = false;\n if (match[0].indexOf(this.formatSeparator) !== -1 && !/{.*}/.test(match[1])) {\n const r = match[1].split(this.formatSeparator).map(elem => elem.trim());\n match[1] = r.shift();\n formatters = r;\n doReduce = true;\n }\n value = fc(handleHasOptions.call(this, match[1].trim(), clonedOptions), clonedOptions);\n if (value && match[0] === str && typeof value !== 'string') return value;\n if (typeof value !== 'string') value = makeString(value);\n if (!value) {\n this.logger.warn(`missed to resolve ${match[1]} for nesting ${str}`);\n value = '';\n }\n if (doReduce) {\n value = formatters.reduce((v, f) => this.format(v, f, options.lng, {\n ...options,\n interpolationkey: match[1].trim()\n }), value.trim());\n }\n str = str.replace(match[0], value);\n this.regexp.lastIndex = 0;\n }\n return str;\n }\n}\n\nfunction parseFormatStr(formatStr) {\n let formatName = formatStr.toLowerCase().trim();\n const formatOptions = {};\n if (formatStr.indexOf('(') > -1) {\n const p = formatStr.split('(');\n formatName = p[0].toLowerCase().trim();\n const optStr = p[1].substring(0, p[1].length - 1);\n if (formatName === 'currency' && optStr.indexOf(':') < 0) {\n if (!formatOptions.currency) formatOptions.currency = optStr.trim();\n } else if (formatName === 'relativetime' && optStr.indexOf(':') < 0) {\n if (!formatOptions.range) formatOptions.range = optStr.trim();\n } else {\n const opts = optStr.split(';');\n opts.forEach(opt => {\n if (!opt) return;\n const [key, ...rest] = opt.split(':');\n const val = rest.join(':').trim().replace(/^'+|'+$/g, '');\n if (!formatOptions[key.trim()]) formatOptions[key.trim()] = val;\n if (val === 'false') formatOptions[key.trim()] = false;\n if (val === 'true') formatOptions[key.trim()] = true;\n if (!isNaN(val)) formatOptions[key.trim()] = parseInt(val, 10);\n });\n }\n }\n return {\n formatName,\n formatOptions\n };\n}\nfunction createCachedFormatter(fn) {\n const cache = {};\n return function invokeFormatter(val, lng, options) {\n const key = lng + JSON.stringify(options);\n let formatter = cache[key];\n if (!formatter) {\n formatter = fn(getCleanedCode(lng), options);\n cache[key] = formatter;\n }\n return formatter(val);\n };\n}\nclass Formatter {\n constructor() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.logger = baseLogger.create('formatter');\n this.options = options;\n this.formats = {\n number: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.NumberFormat(lng, {\n ...opt\n });\n return val => formatter.format(val);\n }),\n currency: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.NumberFormat(lng, {\n ...opt,\n style: 'currency'\n });\n return val => formatter.format(val);\n }),\n datetime: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.DateTimeFormat(lng, {\n ...opt\n });\n return val => formatter.format(val);\n }),\n relativetime: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.RelativeTimeFormat(lng, {\n ...opt\n });\n return val => formatter.format(val, opt.range || 'day');\n }),\n list: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.ListFormat(lng, {\n ...opt\n });\n return val => formatter.format(val);\n })\n };\n this.init(options);\n }\n init(services) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n interpolation: {}\n };\n const iOpts = options.interpolation;\n this.formatSeparator = iOpts.formatSeparator ? iOpts.formatSeparator : iOpts.formatSeparator || ',';\n }\n add(name, fc) {\n this.formats[name.toLowerCase().trim()] = fc;\n }\n addCached(name, fc) {\n this.formats[name.toLowerCase().trim()] = createCachedFormatter(fc);\n }\n format(value, format, lng) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n const formats = format.split(this.formatSeparator);\n const result = formats.reduce((mem, f) => {\n const {\n formatName,\n formatOptions\n } = parseFormatStr(f);\n if (this.formats[formatName]) {\n let formatted = mem;\n try {\n const valOptions = options && options.formatParams && options.formatParams[options.interpolationkey] || {};\n const l = valOptions.locale || valOptions.lng || options.locale || options.lng || lng;\n formatted = this.formats[formatName](mem, l, {\n ...formatOptions,\n ...options,\n ...valOptions\n });\n } catch (error) {\n this.logger.warn(error);\n }\n return formatted;\n } else {\n this.logger.warn(`there was no format function for ${formatName}`);\n }\n return mem;\n }, value);\n return result;\n }\n}\n\nfunction removePending(q, name) {\n if (q.pending[name] !== undefined) {\n delete q.pending[name];\n q.pendingCount--;\n }\n}\nclass Connector extends EventEmitter {\n constructor(backend, store, services) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n super();\n this.backend = backend;\n this.store = store;\n this.services = services;\n this.languageUtils = services.languageUtils;\n this.options = options;\n this.logger = baseLogger.create('backendConnector');\n this.waitingReads = [];\n this.maxParallelReads = options.maxParallelReads || 10;\n this.readingCalls = 0;\n this.maxRetries = options.maxRetries >= 0 ? options.maxRetries : 5;\n this.retryTimeout = options.retryTimeout >= 1 ? options.retryTimeout : 350;\n this.state = {};\n this.queue = [];\n if (this.backend && this.backend.init) {\n this.backend.init(services, options.backend, options);\n }\n }\n queueLoad(languages, namespaces, options, callback) {\n const toLoad = {};\n const pending = {};\n const toLoadLanguages = {};\n const toLoadNamespaces = {};\n languages.forEach(lng => {\n let hasAllNamespaces = true;\n namespaces.forEach(ns => {\n const name = `${lng}|${ns}`;\n if (!options.reload && this.store.hasResourceBundle(lng, ns)) {\n this.state[name] = 2;\n } else if (this.state[name] < 0) ; else if (this.state[name] === 1) {\n if (pending[name] === undefined) pending[name] = true;\n } else {\n this.state[name] = 1;\n hasAllNamespaces = false;\n if (pending[name] === undefined) pending[name] = true;\n if (toLoad[name] === undefined) toLoad[name] = true;\n if (toLoadNamespaces[ns] === undefined) toLoadNamespaces[ns] = true;\n }\n });\n if (!hasAllNamespaces) toLoadLanguages[lng] = true;\n });\n if (Object.keys(toLoad).length || Object.keys(pending).length) {\n this.queue.push({\n pending,\n pendingCount: Object.keys(pending).length,\n loaded: {},\n errors: [],\n callback\n });\n }\n return {\n toLoad: Object.keys(toLoad),\n pending: Object.keys(pending),\n toLoadLanguages: Object.keys(toLoadLanguages),\n toLoadNamespaces: Object.keys(toLoadNamespaces)\n };\n }\n loaded(name, err, data) {\n const s = name.split('|');\n const lng = s[0];\n const ns = s[1];\n if (err) this.emit('failedLoading', lng, ns, err);\n if (data) {\n this.store.addResourceBundle(lng, ns, data, undefined, undefined, {\n skipCopy: true\n });\n }\n this.state[name] = err ? -1 : 2;\n const loaded = {};\n this.queue.forEach(q => {\n pushPath(q.loaded, [lng], ns);\n removePending(q, name);\n if (err) q.errors.push(err);\n if (q.pendingCount === 0 && !q.done) {\n Object.keys(q.loaded).forEach(l => {\n if (!loaded[l]) loaded[l] = {};\n const loadedKeys = q.loaded[l];\n if (loadedKeys.length) {\n loadedKeys.forEach(n => {\n if (loaded[l][n] === undefined) loaded[l][n] = true;\n });\n }\n });\n q.done = true;\n if (q.errors.length) {\n q.callback(q.errors);\n } else {\n q.callback();\n }\n }\n });\n this.emit('loaded', loaded);\n this.queue = this.queue.filter(q => !q.done);\n }\n read(lng, ns, fcName) {\n let tried = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n let wait = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : this.retryTimeout;\n let callback = arguments.length > 5 ? arguments[5] : undefined;\n if (!lng.length) return callback(null, {});\n if (this.readingCalls >= this.maxParallelReads) {\n this.waitingReads.push({\n lng,\n ns,\n fcName,\n tried,\n wait,\n callback\n });\n return;\n }\n this.readingCalls++;\n const resolver = (err, data) => {\n this.readingCalls--;\n if (this.waitingReads.length > 0) {\n const next = this.waitingReads.shift();\n this.read(next.lng, next.ns, next.fcName, next.tried, next.wait, next.callback);\n }\n if (err && data && tried < this.maxRetries) {\n setTimeout(() => {\n this.read.call(this, lng, ns, fcName, tried + 1, wait * 2, callback);\n }, wait);\n return;\n }\n callback(err, data);\n };\n const fc = this.backend[fcName].bind(this.backend);\n if (fc.length === 2) {\n try {\n const r = fc(lng, ns);\n if (r && typeof r.then === 'function') {\n r.then(data => resolver(null, data)).catch(resolver);\n } else {\n resolver(null, r);\n }\n } catch (err) {\n resolver(err);\n }\n return;\n }\n return fc(lng, ns, resolver);\n }\n prepareLoading(languages, namespaces) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n let callback = arguments.length > 3 ? arguments[3] : undefined;\n if (!this.backend) {\n this.logger.warn('No backend was added via i18next.use. Will not load resources.');\n return callback && callback();\n }\n if (typeof languages === 'string') languages = this.languageUtils.toResolveHierarchy(languages);\n if (typeof namespaces === 'string') namespaces = [namespaces];\n const toLoad = this.queueLoad(languages, namespaces, options, callback);\n if (!toLoad.toLoad.length) {\n if (!toLoad.pending.length) callback();\n return null;\n }\n toLoad.toLoad.forEach(name => {\n this.loadOne(name);\n });\n }\n load(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {}, callback);\n }\n reload(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {\n reload: true\n }, callback);\n }\n loadOne(name) {\n let prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n const s = name.split('|');\n const lng = s[0];\n const ns = s[1];\n this.read(lng, ns, 'read', undefined, undefined, (err, data) => {\n if (err) this.logger.warn(`${prefix}loading namespace ${ns} for language ${lng} failed`, err);\n if (!err && data) this.logger.log(`${prefix}loaded namespace ${ns} for language ${lng}`, data);\n this.loaded(name, err, data);\n });\n }\n saveMissing(languages, namespace, key, fallbackValue, isUpdate) {\n let options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};\n let clb = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : () => {};\n if (this.services.utils && this.services.utils.hasLoadedNamespace && !this.services.utils.hasLoadedNamespace(namespace)) {\n this.logger.warn(`did not save key \"${key}\" as the namespace \"${namespace}\" was not yet loaded`, 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n return;\n }\n if (key === undefined || key === null || key === '') return;\n if (this.backend && this.backend.create) {\n const opts = {\n ...options,\n isUpdate\n };\n const fc = this.backend.create.bind(this.backend);\n if (fc.length < 6) {\n try {\n let r;\n if (fc.length === 5) {\n r = fc(languages, namespace, key, fallbackValue, opts);\n } else {\n r = fc(languages, namespace, key, fallbackValue);\n }\n if (r && typeof r.then === 'function') {\n r.then(data => clb(null, data)).catch(clb);\n } else {\n clb(null, r);\n }\n } catch (err) {\n clb(err);\n }\n } else {\n fc(languages, namespace, key, fallbackValue, clb, opts);\n }\n }\n if (!languages || !languages[0]) return;\n this.store.addResource(languages[0], namespace, key, fallbackValue);\n }\n}\n\nfunction get() {\n return {\n debug: false,\n initImmediate: true,\n ns: ['translation'],\n defaultNS: ['translation'],\n fallbackLng: ['dev'],\n fallbackNS: false,\n supportedLngs: false,\n nonExplicitSupportedLngs: false,\n load: 'all',\n preload: false,\n simplifyPluralSuffix: true,\n keySeparator: '.',\n nsSeparator: ':',\n pluralSeparator: '_',\n contextSeparator: '_',\n partialBundledLanguages: false,\n saveMissing: false,\n updateMissing: false,\n saveMissingTo: 'fallback',\n saveMissingPlurals: true,\n missingKeyHandler: false,\n missingInterpolationHandler: false,\n postProcess: false,\n postProcessPassResolved: false,\n returnNull: false,\n returnEmptyString: true,\n returnObjects: false,\n joinArrays: false,\n returnedObjectHandler: false,\n parseMissingKeyHandler: false,\n appendNamespaceToMissingKey: false,\n appendNamespaceToCIMode: false,\n overloadTranslationOptionHandler: function handle(args) {\n let ret = {};\n if (typeof args[1] === 'object') ret = args[1];\n if (typeof args[1] === 'string') ret.defaultValue = args[1];\n if (typeof args[2] === 'string') ret.tDescription = args[2];\n if (typeof args[2] === 'object' || typeof args[3] === 'object') {\n const options = args[3] || args[2];\n Object.keys(options).forEach(key => {\n ret[key] = options[key];\n });\n }\n return ret;\n },\n interpolation: {\n escapeValue: true,\n format: value => value,\n prefix: '{{',\n suffix: '}}',\n formatSeparator: ',',\n unescapePrefix: '-',\n nestingPrefix: '$t(',\n nestingSuffix: ')',\n nestingOptionsSeparator: ',',\n maxReplaces: 1000,\n skipOnVariables: true\n }\n };\n}\nfunction transformOptions(options) {\n if (typeof options.ns === 'string') options.ns = [options.ns];\n if (typeof options.fallbackLng === 'string') options.fallbackLng = [options.fallbackLng];\n if (typeof options.fallbackNS === 'string') options.fallbackNS = [options.fallbackNS];\n if (options.supportedLngs && options.supportedLngs.indexOf('cimode') < 0) {\n options.supportedLngs = options.supportedLngs.concat(['cimode']);\n }\n return options;\n}\n\nfunction noop() {}\nfunction bindMemberFunctions(inst) {\n const mems = Object.getOwnPropertyNames(Object.getPrototypeOf(inst));\n mems.forEach(mem => {\n if (typeof inst[mem] === 'function') {\n inst[mem] = inst[mem].bind(inst);\n }\n });\n}\nclass I18n extends EventEmitter {\n constructor() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let callback = arguments.length > 1 ? arguments[1] : undefined;\n super();\n this.options = transformOptions(options);\n this.services = {};\n this.logger = baseLogger;\n this.modules = {\n external: []\n };\n bindMemberFunctions(this);\n if (callback && !this.isInitialized && !options.isClone) {\n if (!this.options.initImmediate) {\n this.init(options, callback);\n return this;\n }\n setTimeout(() => {\n this.init(options, callback);\n }, 0);\n }\n }\n init() {\n var _this = this;\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let callback = arguments.length > 1 ? arguments[1] : undefined;\n this.isInitializing = true;\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n if (!options.defaultNS && options.defaultNS !== false && options.ns) {\n if (typeof options.ns === 'string') {\n options.defaultNS = options.ns;\n } else if (options.ns.indexOf('translation') < 0) {\n options.defaultNS = options.ns[0];\n }\n }\n const defOpts = get();\n this.options = {\n ...defOpts,\n ...this.options,\n ...transformOptions(options)\n };\n if (this.options.compatibilityAPI !== 'v1') {\n this.options.interpolation = {\n ...defOpts.interpolation,\n ...this.options.interpolation\n };\n }\n if (options.keySeparator !== undefined) {\n this.options.userDefinedKeySeparator = options.keySeparator;\n }\n if (options.nsSeparator !== undefined) {\n this.options.userDefinedNsSeparator = options.nsSeparator;\n }\n function createClassOnDemand(ClassOrObject) {\n if (!ClassOrObject) return null;\n if (typeof ClassOrObject === 'function') return new ClassOrObject();\n return ClassOrObject;\n }\n if (!this.options.isClone) {\n if (this.modules.logger) {\n baseLogger.init(createClassOnDemand(this.modules.logger), this.options);\n } else {\n baseLogger.init(null, this.options);\n }\n let formatter;\n if (this.modules.formatter) {\n formatter = this.modules.formatter;\n } else if (typeof Intl !== 'undefined') {\n formatter = Formatter;\n }\n const lu = new LanguageUtil(this.options);\n this.store = new ResourceStore(this.options.resources, this.options);\n const s = this.services;\n s.logger = baseLogger;\n s.resourceStore = this.store;\n s.languageUtils = lu;\n s.pluralResolver = new PluralResolver(lu, {\n prepend: this.options.pluralSeparator,\n compatibilityJSON: this.options.compatibilityJSON,\n simplifyPluralSuffix: this.options.simplifyPluralSuffix\n });\n if (formatter && (!this.options.interpolation.format || this.options.interpolation.format === defOpts.interpolation.format)) {\n s.formatter = createClassOnDemand(formatter);\n s.formatter.init(s, this.options);\n this.options.interpolation.format = s.formatter.format.bind(s.formatter);\n }\n s.interpolator = new Interpolator(this.options);\n s.utils = {\n hasLoadedNamespace: this.hasLoadedNamespace.bind(this)\n };\n s.backendConnector = new Connector(createClassOnDemand(this.modules.backend), s.resourceStore, s, this.options);\n s.backendConnector.on('*', function (event) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n _this.emit(event, ...args);\n });\n if (this.modules.languageDetector) {\n s.languageDetector = createClassOnDemand(this.modules.languageDetector);\n if (s.languageDetector.init) s.languageDetector.init(s, this.options.detection, this.options);\n }\n if (this.modules.i18nFormat) {\n s.i18nFormat = createClassOnDemand(this.modules.i18nFormat);\n if (s.i18nFormat.init) s.i18nFormat.init(this);\n }\n this.translator = new Translator(this.services, this.options);\n this.translator.on('*', function (event) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n _this.emit(event, ...args);\n });\n this.modules.external.forEach(m => {\n if (m.init) m.init(this);\n });\n }\n this.format = this.options.interpolation.format;\n if (!callback) callback = noop;\n if (this.options.fallbackLng && !this.services.languageDetector && !this.options.lng) {\n const codes = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n if (codes.length > 0 && codes[0] !== 'dev') this.options.lng = codes[0];\n }\n if (!this.services.languageDetector && !this.options.lng) {\n this.logger.warn('init: no languageDetector is used and no lng is defined');\n }\n const storeApi = ['getResource', 'hasResourceBundle', 'getResourceBundle', 'getDataByLanguage'];\n storeApi.forEach(fcName => {\n this[fcName] = function () {\n return _this.store[fcName](...arguments);\n };\n });\n const storeApiChained = ['addResource', 'addResources', 'addResourceBundle', 'removeResourceBundle'];\n storeApiChained.forEach(fcName => {\n this[fcName] = function () {\n _this.store[fcName](...arguments);\n return _this;\n };\n });\n const deferred = defer();\n const load = () => {\n const finish = (err, t) => {\n this.isInitializing = false;\n if (this.isInitialized && !this.initializedStoreOnce) this.logger.warn('init: i18next is already initialized. You should call init just once!');\n this.isInitialized = true;\n if (!this.options.isClone) this.logger.log('initialized', this.options);\n this.emit('initialized', this.options);\n deferred.resolve(t);\n callback(err, t);\n };\n if (this.languages && this.options.compatibilityAPI !== 'v1' && !this.isInitialized) return finish(null, this.t.bind(this));\n this.changeLanguage(this.options.lng, finish);\n };\n if (this.options.resources || !this.options.initImmediate) {\n load();\n } else {\n setTimeout(load, 0);\n }\n return deferred;\n }\n loadResources(language) {\n let callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n let usedCallback = callback;\n const usedLng = typeof language === 'string' ? language : this.language;\n if (typeof language === 'function') usedCallback = language;\n if (!this.options.resources || this.options.partialBundledLanguages) {\n if (usedLng && usedLng.toLowerCase() === 'cimode' && (!this.options.preload || this.options.preload.length === 0)) return usedCallback();\n const toLoad = [];\n const append = lng => {\n if (!lng) return;\n if (lng === 'cimode') return;\n const lngs = this.services.languageUtils.toResolveHierarchy(lng);\n lngs.forEach(l => {\n if (l === 'cimode') return;\n if (toLoad.indexOf(l) < 0) toLoad.push(l);\n });\n };\n if (!usedLng) {\n const fallbacks = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n fallbacks.forEach(l => append(l));\n } else {\n append(usedLng);\n }\n if (this.options.preload) {\n this.options.preload.forEach(l => append(l));\n }\n this.services.backendConnector.load(toLoad, this.options.ns, e => {\n if (!e && !this.resolvedLanguage && this.language) this.setResolvedLanguage(this.language);\n usedCallback(e);\n });\n } else {\n usedCallback(null);\n }\n }\n reloadResources(lngs, ns, callback) {\n const deferred = defer();\n if (!lngs) lngs = this.languages;\n if (!ns) ns = this.options.ns;\n if (!callback) callback = noop;\n this.services.backendConnector.reload(lngs, ns, err => {\n deferred.resolve();\n callback(err);\n });\n return deferred;\n }\n use(module) {\n if (!module) throw new Error('You are passing an undefined module! Please check the object you are passing to i18next.use()');\n if (!module.type) throw new Error('You are passing a wrong module! Please check the object you are passing to i18next.use()');\n if (module.type === 'backend') {\n this.modules.backend = module;\n }\n if (module.type === 'logger' || module.log && module.warn && module.error) {\n this.modules.logger = module;\n }\n if (module.type === 'languageDetector') {\n this.modules.languageDetector = module;\n }\n if (module.type === 'i18nFormat') {\n this.modules.i18nFormat = module;\n }\n if (module.type === 'postProcessor') {\n postProcessor.addPostProcessor(module);\n }\n if (module.type === 'formatter') {\n this.modules.formatter = module;\n }\n if (module.type === '3rdParty') {\n this.modules.external.push(module);\n }\n return this;\n }\n setResolvedLanguage(l) {\n if (!l || !this.languages) return;\n if (['cimode', 'dev'].indexOf(l) > -1) return;\n for (let li = 0; li < this.languages.length; li++) {\n const lngInLngs = this.languages[li];\n if (['cimode', 'dev'].indexOf(lngInLngs) > -1) continue;\n if (this.store.hasLanguageSomeTranslations(lngInLngs)) {\n this.resolvedLanguage = lngInLngs;\n break;\n }\n }\n }\n changeLanguage(lng, callback) {\n var _this2 = this;\n this.isLanguageChangingTo = lng;\n const deferred = defer();\n this.emit('languageChanging', lng);\n const setLngProps = l => {\n this.language = l;\n this.languages = this.services.languageUtils.toResolveHierarchy(l);\n this.resolvedLanguage = undefined;\n this.setResolvedLanguage(l);\n };\n const done = (err, l) => {\n if (l) {\n setLngProps(l);\n this.translator.changeLanguage(l);\n this.isLanguageChangingTo = undefined;\n this.emit('languageChanged', l);\n this.logger.log('languageChanged', l);\n } else {\n this.isLanguageChangingTo = undefined;\n }\n deferred.resolve(function () {\n return _this2.t(...arguments);\n });\n if (callback) callback(err, function () {\n return _this2.t(...arguments);\n });\n };\n const setLng = lngs => {\n if (!lng && !lngs && this.services.languageDetector) lngs = [];\n const l = typeof lngs === 'string' ? lngs : this.services.languageUtils.getBestMatchFromCodes(lngs);\n if (l) {\n if (!this.language) {\n setLngProps(l);\n }\n if (!this.translator.language) this.translator.changeLanguage(l);\n if (this.services.languageDetector && this.services.languageDetector.cacheUserLanguage) this.services.languageDetector.cacheUserLanguage(l);\n }\n this.loadResources(l, err => {\n done(err, l);\n });\n };\n if (!lng && this.services.languageDetector && !this.services.languageDetector.async) {\n setLng(this.services.languageDetector.detect());\n } else if (!lng && this.services.languageDetector && this.services.languageDetector.async) {\n if (this.services.languageDetector.detect.length === 0) {\n this.services.languageDetector.detect().then(setLng);\n } else {\n this.services.languageDetector.detect(setLng);\n }\n } else {\n setLng(lng);\n }\n return deferred;\n }\n getFixedT(lng, ns, keyPrefix) {\n var _this3 = this;\n const fixedT = function (key, opts) {\n let options;\n if (typeof opts !== 'object') {\n for (var _len3 = arguments.length, rest = new Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {\n rest[_key3 - 2] = arguments[_key3];\n }\n options = _this3.options.overloadTranslationOptionHandler([key, opts].concat(rest));\n } else {\n options = {\n ...opts\n };\n }\n options.lng = options.lng || fixedT.lng;\n options.lngs = options.lngs || fixedT.lngs;\n options.ns = options.ns || fixedT.ns;\n options.keyPrefix = options.keyPrefix || keyPrefix || fixedT.keyPrefix;\n const keySeparator = _this3.options.keySeparator || '.';\n let resultKey;\n if (options.keyPrefix && Array.isArray(key)) {\n resultKey = key.map(k => `${options.keyPrefix}${keySeparator}${k}`);\n } else {\n resultKey = options.keyPrefix ? `${options.keyPrefix}${keySeparator}${key}` : key;\n }\n return _this3.t(resultKey, options);\n };\n if (typeof lng === 'string') {\n fixedT.lng = lng;\n } else {\n fixedT.lngs = lng;\n }\n fixedT.ns = ns;\n fixedT.keyPrefix = keyPrefix;\n return fixedT;\n }\n t() {\n return this.translator && this.translator.translate(...arguments);\n }\n exists() {\n return this.translator && this.translator.exists(...arguments);\n }\n setDefaultNamespace(ns) {\n this.options.defaultNS = ns;\n }\n hasLoadedNamespace(ns) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (!this.isInitialized) {\n this.logger.warn('hasLoadedNamespace: i18next was not initialized', this.languages);\n return false;\n }\n if (!this.languages || !this.languages.length) {\n this.logger.warn('hasLoadedNamespace: i18n.languages were undefined or empty', this.languages);\n return false;\n }\n const lng = options.lng || this.resolvedLanguage || this.languages[0];\n const fallbackLng = this.options ? this.options.fallbackLng : false;\n const lastLng = this.languages[this.languages.length - 1];\n if (lng.toLowerCase() === 'cimode') return true;\n const loadNotPending = (l, n) => {\n const loadState = this.services.backendConnector.state[`${l}|${n}`];\n return loadState === -1 || loadState === 2;\n };\n if (options.precheck) {\n const preResult = options.precheck(this, loadNotPending);\n if (preResult !== undefined) return preResult;\n }\n if (this.hasResourceBundle(lng, ns)) return true;\n if (!this.services.backendConnector.backend || this.options.resources && !this.options.partialBundledLanguages) return true;\n if (loadNotPending(lng, ns) && (!fallbackLng || loadNotPending(lastLng, ns))) return true;\n return false;\n }\n loadNamespaces(ns, callback) {\n const deferred = defer();\n if (!this.options.ns) {\n if (callback) callback();\n return Promise.resolve();\n }\n if (typeof ns === 'string') ns = [ns];\n ns.forEach(n => {\n if (this.options.ns.indexOf(n) < 0) this.options.ns.push(n);\n });\n this.loadResources(err => {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n loadLanguages(lngs, callback) {\n const deferred = defer();\n if (typeof lngs === 'string') lngs = [lngs];\n const preloaded = this.options.preload || [];\n const newLngs = lngs.filter(lng => preloaded.indexOf(lng) < 0);\n if (!newLngs.length) {\n if (callback) callback();\n return Promise.resolve();\n }\n this.options.preload = preloaded.concat(newLngs);\n this.loadResources(err => {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n dir(lng) {\n if (!lng) lng = this.resolvedLanguage || (this.languages && this.languages.length > 0 ? this.languages[0] : this.language);\n if (!lng) return 'rtl';\n const rtlLngs = ['ar', 'shu', 'sqr', 'ssh', 'xaa', 'yhd', 'yud', 'aao', 'abh', 'abv', 'acm', 'acq', 'acw', 'acx', 'acy', 'adf', 'ads', 'aeb', 'aec', 'afb', 'ajp', 'apc', 'apd', 'arb', 'arq', 'ars', 'ary', 'arz', 'auz', 'avl', 'ayh', 'ayl', 'ayn', 'ayp', 'bbz', 'pga', 'he', 'iw', 'ps', 'pbt', 'pbu', 'pst', 'prp', 'prd', 'ug', 'ur', 'ydd', 'yds', 'yih', 'ji', 'yi', 'hbo', 'men', 'xmn', 'fa', 'jpr', 'peo', 'pes', 'prs', 'dv', 'sam', 'ckb'];\n const languageUtils = this.services && this.services.languageUtils || new LanguageUtil(get());\n return rtlLngs.indexOf(languageUtils.getLanguagePartFromCode(lng)) > -1 || lng.toLowerCase().indexOf('-arab') > 1 ? 'rtl' : 'ltr';\n }\n static createInstance() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let callback = arguments.length > 1 ? arguments[1] : undefined;\n return new I18n(options, callback);\n }\n cloneInstance() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n const forkResourceStore = options.forkResourceStore;\n if (forkResourceStore) delete options.forkResourceStore;\n const mergedOptions = {\n ...this.options,\n ...options,\n ...{\n isClone: true\n }\n };\n const clone = new I18n(mergedOptions);\n if (options.debug !== undefined || options.prefix !== undefined) {\n clone.logger = clone.logger.clone(options);\n }\n const membersToCopy = ['store', 'services', 'language'];\n membersToCopy.forEach(m => {\n clone[m] = this[m];\n });\n clone.services = {\n ...this.services\n };\n clone.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n if (forkResourceStore) {\n clone.store = new ResourceStore(this.store.data, mergedOptions);\n clone.services.resourceStore = clone.store;\n }\n clone.translator = new Translator(clone.services, mergedOptions);\n clone.translator.on('*', function (event) {\n for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n args[_key4 - 1] = arguments[_key4];\n }\n clone.emit(event, ...args);\n });\n clone.init(mergedOptions, callback);\n clone.translator.options = mergedOptions;\n clone.translator.backendConnector.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n return clone;\n }\n toJSON() {\n return {\n options: this.options,\n store: this.store,\n language: this.language,\n languages: this.languages,\n resolvedLanguage: this.resolvedLanguage\n };\n }\n}\nconst instance = I18n.createInstance();\ninstance.createInstance = I18n.createInstance;\n\nconst createInstance = instance.createInstance;\nconst dir = instance.dir;\nconst init = instance.init;\nconst loadResources = instance.loadResources;\nconst reloadResources = instance.reloadResources;\nconst use = instance.use;\nconst changeLanguage = instance.changeLanguage;\nconst getFixedT = instance.getFixedT;\nconst t = instance.t;\nconst exists = instance.exists;\nconst setDefaultNamespace = instance.setDefaultNamespace;\nconst hasLoadedNamespace = instance.hasLoadedNamespace;\nconst loadNamespaces = instance.loadNamespaces;\nconst loadLanguages = instance.loadLanguages;\n\nexport { changeLanguage, createInstance, instance as default, dir, exists, getFixedT, hasLoadedNamespace, init, loadLanguages, loadNamespaces, loadResources, reloadResources, setDefaultNamespace, t, use };\n","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nvar arr = [];\nvar each = arr.forEach;\nvar slice = arr.slice;\nexport function defaults(obj) {\n each.call(slice.call(arguments, 1), function (source) {\n if (source) {\n for (var prop in source) {\n if (obj[prop] === undefined) obj[prop] = source[prop];\n }\n }\n });\n return obj;\n}\nexport function hasXMLHttpRequest() {\n return typeof XMLHttpRequest === 'function' || (typeof XMLHttpRequest === \"undefined\" ? \"undefined\" : _typeof(XMLHttpRequest)) === 'object';\n}\nfunction isPromise(maybePromise) {\n return !!maybePromise && typeof maybePromise.then === 'function';\n}\nexport function makePromise(maybePromise) {\n if (isPromise(maybePromise)) {\n return maybePromise;\n }\n return Promise.resolve(maybePromise);\n}","// Save global object in a variable\nvar __global__ =\n(typeof globalThis !== 'undefined' && globalThis) ||\n(typeof self !== 'undefined' && self) ||\n(typeof global !== 'undefined' && global);\n// Create an object that extends from __global__ without the fetch function\nvar __globalThis__ = (function () {\nfunction F() {\nthis.fetch = false;\nthis.DOMException = __global__.DOMException\n}\nF.prototype = __global__; // Needed for feature detection on whatwg-fetch's code\nreturn new F();\n})();\n// Wraps whatwg-fetch with a function scope to hijack the global object\n// \"globalThis\" that's going to be patched\n(function(globalThis) {\n\nvar irrelevant = (function (exports) {\n\n var global =\n (typeof globalThis !== 'undefined' && globalThis) ||\n (typeof self !== 'undefined' && self) ||\n (typeof global !== 'undefined' && global);\n\n var support = {\n searchParams: 'URLSearchParams' in global,\n iterable: 'Symbol' in global && 'iterator' in Symbol,\n blob:\n 'FileReader' in global &&\n 'Blob' in global &&\n (function() {\n try {\n new Blob();\n return true\n } catch (e) {\n return false\n }\n })(),\n formData: 'FormData' in global,\n arrayBuffer: 'ArrayBuffer' in global\n };\n\n function isDataView(obj) {\n return obj && DataView.prototype.isPrototypeOf(obj)\n }\n\n if (support.arrayBuffer) {\n var viewClasses = [\n '[object Int8Array]',\n '[object Uint8Array]',\n '[object Uint8ClampedArray]',\n '[object Int16Array]',\n '[object Uint16Array]',\n '[object Int32Array]',\n '[object Uint32Array]',\n '[object Float32Array]',\n '[object Float64Array]'\n ];\n\n var isArrayBufferView =\n ArrayBuffer.isView ||\n function(obj) {\n return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n };\n }\n\n function normalizeName(name) {\n if (typeof name !== 'string') {\n name = String(name);\n }\n if (/[^a-z0-9\\-#$%&'*+.^_`|~!]/i.test(name) || name === '') {\n throw new TypeError('Invalid character in header field name: \"' + name + '\"')\n }\n return name.toLowerCase()\n }\n\n function normalizeValue(value) {\n if (typeof value !== 'string') {\n value = String(value);\n }\n return value\n }\n\n // Build a destructive iterator for the value list\n function iteratorFor(items) {\n var iterator = {\n next: function() {\n var value = items.shift();\n return {done: value === undefined, value: value}\n }\n };\n\n if (support.iterable) {\n iterator[Symbol.iterator] = function() {\n return iterator\n };\n }\n\n return iterator\n }\n\n function Headers(headers) {\n this.map = {};\n\n if (headers instanceof Headers) {\n headers.forEach(function(value, name) {\n this.append(name, value);\n }, this);\n } else if (Array.isArray(headers)) {\n headers.forEach(function(header) {\n this.append(header[0], header[1]);\n }, this);\n } else if (headers) {\n Object.getOwnPropertyNames(headers).forEach(function(name) {\n this.append(name, headers[name]);\n }, this);\n }\n }\n\n Headers.prototype.append = function(name, value) {\n name = normalizeName(name);\n value = normalizeValue(value);\n var oldValue = this.map[name];\n this.map[name] = oldValue ? oldValue + ', ' + value : value;\n };\n\n Headers.prototype['delete'] = function(name) {\n delete this.map[normalizeName(name)];\n };\n\n Headers.prototype.get = function(name) {\n name = normalizeName(name);\n return this.has(name) ? this.map[name] : null\n };\n\n Headers.prototype.has = function(name) {\n return this.map.hasOwnProperty(normalizeName(name))\n };\n\n Headers.prototype.set = function(name, value) {\n this.map[normalizeName(name)] = normalizeValue(value);\n };\n\n Headers.prototype.forEach = function(callback, thisArg) {\n for (var name in this.map) {\n if (this.map.hasOwnProperty(name)) {\n callback.call(thisArg, this.map[name], name, this);\n }\n }\n };\n\n Headers.prototype.keys = function() {\n var items = [];\n this.forEach(function(value, name) {\n items.push(name);\n });\n return iteratorFor(items)\n };\n\n Headers.prototype.values = function() {\n var items = [];\n this.forEach(function(value) {\n items.push(value);\n });\n return iteratorFor(items)\n };\n\n Headers.prototype.entries = function() {\n var items = [];\n this.forEach(function(value, name) {\n items.push([name, value]);\n });\n return iteratorFor(items)\n };\n\n if (support.iterable) {\n Headers.prototype[Symbol.iterator] = Headers.prototype.entries;\n }\n\n function consumed(body) {\n if (body.bodyUsed) {\n return Promise.reject(new TypeError('Already read'))\n }\n body.bodyUsed = true;\n }\n\n function fileReaderReady(reader) {\n return new Promise(function(resolve, reject) {\n reader.onload = function() {\n resolve(reader.result);\n };\n reader.onerror = function() {\n reject(reader.error);\n };\n })\n }\n\n function readBlobAsArrayBuffer(blob) {\n var reader = new FileReader();\n var promise = fileReaderReady(reader);\n reader.readAsArrayBuffer(blob);\n return promise\n }\n\n function readBlobAsText(blob) {\n var reader = new FileReader();\n var promise = fileReaderReady(reader);\n reader.readAsText(blob);\n return promise\n }\n\n function readArrayBufferAsText(buf) {\n var view = new Uint8Array(buf);\n var chars = new Array(view.length);\n\n for (var i = 0; i < view.length; i++) {\n chars[i] = String.fromCharCode(view[i]);\n }\n return chars.join('')\n }\n\n function bufferClone(buf) {\n if (buf.slice) {\n return buf.slice(0)\n } else {\n var view = new Uint8Array(buf.byteLength);\n view.set(new Uint8Array(buf));\n return view.buffer\n }\n }\n\n function Body() {\n this.bodyUsed = false;\n\n this._initBody = function(body) {\n /*\n fetch-mock wraps the Response object in an ES6 Proxy to\n provide useful test harness features such as flush. However, on\n ES5 browsers without fetch or Proxy support pollyfills must be used;\n the proxy-pollyfill is unable to proxy an attribute unless it exists\n on the object before the Proxy is created. This change ensures\n Response.bodyUsed exists on the instance, while maintaining the\n semantic of setting Request.bodyUsed in the constructor before\n _initBody is called.\n */\n this.bodyUsed = this.bodyUsed;\n this._bodyInit = body;\n if (!body) {\n this._bodyText = '';\n } else if (typeof body === 'string') {\n this._bodyText = body;\n } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n this._bodyBlob = body;\n } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n this._bodyFormData = body;\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this._bodyText = body.toString();\n } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n this._bodyArrayBuffer = bufferClone(body.buffer);\n // IE 10-11 can't handle a DataView body.\n this._bodyInit = new Blob([this._bodyArrayBuffer]);\n } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n this._bodyArrayBuffer = bufferClone(body);\n } else {\n this._bodyText = body = Object.prototype.toString.call(body);\n }\n\n if (!this.headers.get('content-type')) {\n if (typeof body === 'string') {\n this.headers.set('content-type', 'text/plain;charset=UTF-8');\n } else if (this._bodyBlob && this._bodyBlob.type) {\n this.headers.set('content-type', this._bodyBlob.type);\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8');\n }\n }\n };\n\n if (support.blob) {\n this.blob = function() {\n var rejected = consumed(this);\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return Promise.resolve(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as blob')\n } else {\n return Promise.resolve(new Blob([this._bodyText]))\n }\n };\n\n this.arrayBuffer = function() {\n if (this._bodyArrayBuffer) {\n var isConsumed = consumed(this);\n if (isConsumed) {\n return isConsumed\n }\n if (ArrayBuffer.isView(this._bodyArrayBuffer)) {\n return Promise.resolve(\n this._bodyArrayBuffer.buffer.slice(\n this._bodyArrayBuffer.byteOffset,\n this._bodyArrayBuffer.byteOffset + this._bodyArrayBuffer.byteLength\n )\n )\n } else {\n return Promise.resolve(this._bodyArrayBuffer)\n }\n } else {\n return this.blob().then(readBlobAsArrayBuffer)\n }\n };\n }\n\n this.text = function() {\n var rejected = consumed(this);\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return readBlobAsText(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as text')\n } else {\n return Promise.resolve(this._bodyText)\n }\n };\n\n if (support.formData) {\n this.formData = function() {\n return this.text().then(decode)\n };\n }\n\n this.json = function() {\n return this.text().then(JSON.parse)\n };\n\n return this\n }\n\n // HTTP methods whose capitalization should be normalized\n var methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT'];\n\n function normalizeMethod(method) {\n var upcased = method.toUpperCase();\n return methods.indexOf(upcased) > -1 ? upcased : method\n }\n\n function Request(input, options) {\n if (!(this instanceof Request)) {\n throw new TypeError('Please use the \"new\" operator, this DOM object constructor cannot be called as a function.')\n }\n\n options = options || {};\n var body = options.body;\n\n if (input instanceof Request) {\n if (input.bodyUsed) {\n throw new TypeError('Already read')\n }\n this.url = input.url;\n this.credentials = input.credentials;\n if (!options.headers) {\n this.headers = new Headers(input.headers);\n }\n this.method = input.method;\n this.mode = input.mode;\n this.signal = input.signal;\n if (!body && input._bodyInit != null) {\n body = input._bodyInit;\n input.bodyUsed = true;\n }\n } else {\n this.url = String(input);\n }\n\n this.credentials = options.credentials || this.credentials || 'same-origin';\n if (options.headers || !this.headers) {\n this.headers = new Headers(options.headers);\n }\n this.method = normalizeMethod(options.method || this.method || 'GET');\n this.mode = options.mode || this.mode || null;\n this.signal = options.signal || this.signal;\n this.referrer = null;\n\n if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n throw new TypeError('Body not allowed for GET or HEAD requests')\n }\n this._initBody(body);\n\n if (this.method === 'GET' || this.method === 'HEAD') {\n if (options.cache === 'no-store' || options.cache === 'no-cache') {\n // Search for a '_' parameter in the query string\n var reParamSearch = /([?&])_=[^&]*/;\n if (reParamSearch.test(this.url)) {\n // If it already exists then set the value with the current time\n this.url = this.url.replace(reParamSearch, '$1_=' + new Date().getTime());\n } else {\n // Otherwise add a new '_' parameter to the end with the current time\n var reQueryString = /\\?/;\n this.url += (reQueryString.test(this.url) ? '&' : '?') + '_=' + new Date().getTime();\n }\n }\n }\n }\n\n Request.prototype.clone = function() {\n return new Request(this, {body: this._bodyInit})\n };\n\n function decode(body) {\n var form = new FormData();\n body\n .trim()\n .split('&')\n .forEach(function(bytes) {\n if (bytes) {\n var split = bytes.split('=');\n var name = split.shift().replace(/\\+/g, ' ');\n var value = split.join('=').replace(/\\+/g, ' ');\n form.append(decodeURIComponent(name), decodeURIComponent(value));\n }\n });\n return form\n }\n\n function parseHeaders(rawHeaders) {\n var headers = new Headers();\n // Replace instances of \\r\\n and \\n followed by at least one space or horizontal tab with a space\n // https://tools.ietf.org/html/rfc7230#section-3.2\n var preProcessedHeaders = rawHeaders.replace(/\\r?\\n[\\t ]+/g, ' ');\n // Avoiding split via regex to work around a common IE11 bug with the core-js 3.6.0 regex polyfill\n // https://github.com/github/fetch/issues/748\n // https://github.com/zloirock/core-js/issues/751\n preProcessedHeaders\n .split('\\r')\n .map(function(header) {\n return header.indexOf('\\n') === 0 ? header.substr(1, header.length) : header\n })\n .forEach(function(line) {\n var parts = line.split(':');\n var key = parts.shift().trim();\n if (key) {\n var value = parts.join(':').trim();\n headers.append(key, value);\n }\n });\n return headers\n }\n\n Body.call(Request.prototype);\n\n function Response(bodyInit, options) {\n if (!(this instanceof Response)) {\n throw new TypeError('Please use the \"new\" operator, this DOM object constructor cannot be called as a function.')\n }\n if (!options) {\n options = {};\n }\n\n this.type = 'default';\n this.status = options.status === undefined ? 200 : options.status;\n this.ok = this.status >= 200 && this.status < 300;\n this.statusText = options.statusText === undefined ? '' : '' + options.statusText;\n this.headers = new Headers(options.headers);\n this.url = options.url || '';\n this._initBody(bodyInit);\n }\n\n Body.call(Response.prototype);\n\n Response.prototype.clone = function() {\n return new Response(this._bodyInit, {\n status: this.status,\n statusText: this.statusText,\n headers: new Headers(this.headers),\n url: this.url\n })\n };\n\n Response.error = function() {\n var response = new Response(null, {status: 0, statusText: ''});\n response.type = 'error';\n return response\n };\n\n var redirectStatuses = [301, 302, 303, 307, 308];\n\n Response.redirect = function(url, status) {\n if (redirectStatuses.indexOf(status) === -1) {\n throw new RangeError('Invalid status code')\n }\n\n return new Response(null, {status: status, headers: {location: url}})\n };\n\n exports.DOMException = global.DOMException;\n try {\n new exports.DOMException();\n } catch (err) {\n exports.DOMException = function(message, name) {\n this.message = message;\n this.name = name;\n var error = Error(message);\n this.stack = error.stack;\n };\n exports.DOMException.prototype = Object.create(Error.prototype);\n exports.DOMException.prototype.constructor = exports.DOMException;\n }\n\n function fetch(input, init) {\n return new Promise(function(resolve, reject) {\n var request = new Request(input, init);\n\n if (request.signal && request.signal.aborted) {\n return reject(new exports.DOMException('Aborted', 'AbortError'))\n }\n\n var xhr = new XMLHttpRequest();\n\n function abortXhr() {\n xhr.abort();\n }\n\n xhr.onload = function() {\n var options = {\n status: xhr.status,\n statusText: xhr.statusText,\n headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n };\n options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL');\n var body = 'response' in xhr ? xhr.response : xhr.responseText;\n setTimeout(function() {\n resolve(new Response(body, options));\n }, 0);\n };\n\n xhr.onerror = function() {\n setTimeout(function() {\n reject(new TypeError('Network request failed'));\n }, 0);\n };\n\n xhr.ontimeout = function() {\n setTimeout(function() {\n reject(new TypeError('Network request failed'));\n }, 0);\n };\n\n xhr.onabort = function() {\n setTimeout(function() {\n reject(new exports.DOMException('Aborted', 'AbortError'));\n }, 0);\n };\n\n function fixUrl(url) {\n try {\n return url === '' && global.location.href ? global.location.href : url\n } catch (e) {\n return url\n }\n }\n\n xhr.open(request.method, fixUrl(request.url), true);\n\n if (request.credentials === 'include') {\n xhr.withCredentials = true;\n } else if (request.credentials === 'omit') {\n xhr.withCredentials = false;\n }\n\n if ('responseType' in xhr) {\n if (support.blob) {\n xhr.responseType = 'blob';\n } else if (\n support.arrayBuffer &&\n request.headers.get('Content-Type') &&\n request.headers.get('Content-Type').indexOf('application/octet-stream') !== -1\n ) {\n xhr.responseType = 'arraybuffer';\n }\n }\n\n if (init && typeof init.headers === 'object' && !(init.headers instanceof Headers)) {\n Object.getOwnPropertyNames(init.headers).forEach(function(name) {\n xhr.setRequestHeader(name, normalizeValue(init.headers[name]));\n });\n } else {\n request.headers.forEach(function(value, name) {\n xhr.setRequestHeader(name, value);\n });\n }\n\n if (request.signal) {\n request.signal.addEventListener('abort', abortXhr);\n\n xhr.onreadystatechange = function() {\n // DONE (success or failure)\n if (xhr.readyState === 4) {\n request.signal.removeEventListener('abort', abortXhr);\n }\n };\n }\n\n xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit);\n })\n }\n\n fetch.polyfill = true;\n\n if (!global.fetch) {\n global.fetch = fetch;\n global.Headers = Headers;\n global.Request = Request;\n global.Response = Response;\n }\n\n exports.Headers = Headers;\n exports.Request = Request;\n exports.Response = Response;\n exports.fetch = fetch;\n\n return exports;\n\n})({});\n})(__globalThis__);\n// This is a ponyfill, so...\n__globalThis__.fetch.ponyfill = true;\ndelete __globalThis__.fetch.polyfill;\n// Choose between native implementation (__global__) or custom implementation (__globalThis__)\nvar ctx = __global__.fetch ? __global__ : __globalThis__;\nexports = ctx.fetch // To enable: import fetch from 'cross-fetch'\nexports.default = ctx.fetch // For TypeScript consumers without esModuleInterop.\nexports.fetch = ctx.fetch // To enable: import {fetch} from 'cross-fetch'\nexports.Headers = ctx.Headers\nexports.Request = ctx.Request\nexports.Response = ctx.Response\nmodule.exports = exports\n","var fetchApi\nif (typeof fetch === 'function') {\n if (typeof global !== 'undefined' && global.fetch) {\n fetchApi = global.fetch\n } else if (typeof window !== 'undefined' && window.fetch) {\n fetchApi = window.fetch\n } else {\n fetchApi = fetch\n }\n}\n\nif (typeof require !== 'undefined' && (typeof window === 'undefined' || typeof window.document === 'undefined')) {\n var f = fetchApi || require('cross-fetch')\n if (f.default) f = f.default\n exports.default = f\n module.exports = exports.default\n}\n","function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nimport { hasXMLHttpRequest } from './utils.js';\nimport * as fetchNode from './getFetch.cjs';\nvar fetchApi;\nif (typeof fetch === 'function') {\n if (typeof global !== 'undefined' && global.fetch) {\n fetchApi = global.fetch;\n } else if (typeof window !== 'undefined' && window.fetch) {\n fetchApi = window.fetch;\n } else {\n fetchApi = fetch;\n }\n}\nvar XmlHttpRequestApi;\nif (hasXMLHttpRequest()) {\n if (typeof global !== 'undefined' && global.XMLHttpRequest) {\n XmlHttpRequestApi = global.XMLHttpRequest;\n } else if (typeof window !== 'undefined' && window.XMLHttpRequest) {\n XmlHttpRequestApi = window.XMLHttpRequest;\n }\n}\nvar ActiveXObjectApi;\nif (typeof ActiveXObject === 'function') {\n if (typeof global !== 'undefined' && global.ActiveXObject) {\n ActiveXObjectApi = global.ActiveXObject;\n } else if (typeof window !== 'undefined' && window.ActiveXObject) {\n ActiveXObjectApi = window.ActiveXObject;\n }\n}\nif (!fetchApi && fetchNode && !XmlHttpRequestApi && !ActiveXObjectApi) fetchApi = fetchNode.default || fetchNode;\nif (typeof fetchApi !== 'function') fetchApi = undefined;\nvar addQueryString = function addQueryString(url, params) {\n if (params && _typeof(params) === 'object') {\n var queryString = '';\n for (var paramName in params) {\n queryString += '&' + encodeURIComponent(paramName) + '=' + encodeURIComponent(params[paramName]);\n }\n if (!queryString) return url;\n url = url + (url.indexOf('?') !== -1 ? '&' : '?') + queryString.slice(1);\n }\n return url;\n};\nvar fetchIt = function fetchIt(url, fetchOptions, callback, altFetch) {\n var resolver = function resolver(response) {\n if (!response.ok) return callback(response.statusText || 'Error', {\n status: response.status\n });\n response.text().then(function (data) {\n callback(null, {\n status: response.status,\n data: data\n });\n }).catch(callback);\n };\n if (altFetch) {\n var altResponse = altFetch(url, fetchOptions);\n if (altResponse instanceof Promise) {\n altResponse.then(resolver).catch(callback);\n return;\n }\n }\n if (typeof fetch === 'function') {\n fetch(url, fetchOptions).then(resolver).catch(callback);\n } else {\n fetchApi(url, fetchOptions).then(resolver).catch(callback);\n }\n};\nvar omitFetchOptions = false;\nvar requestWithFetch = function requestWithFetch(options, url, payload, callback) {\n if (options.queryStringParams) {\n url = addQueryString(url, options.queryStringParams);\n }\n var headers = _objectSpread({}, typeof options.customHeaders === 'function' ? options.customHeaders() : options.customHeaders);\n if (typeof window === 'undefined' && typeof global !== 'undefined' && typeof global.process !== 'undefined' && global.process.versions && global.process.versions.node) {\n headers['User-Agent'] = \"i18next-http-backend (node/\".concat(global.process.version, \"; \").concat(global.process.platform, \" \").concat(global.process.arch, \")\");\n }\n if (payload) headers['Content-Type'] = 'application/json';\n var reqOptions = typeof options.requestOptions === 'function' ? options.requestOptions(payload) : options.requestOptions;\n var fetchOptions = _objectSpread({\n method: payload ? 'POST' : 'GET',\n body: payload ? options.stringify(payload) : undefined,\n headers: headers\n }, omitFetchOptions ? {} : reqOptions);\n var altFetch = typeof options.alternateFetch === 'function' && options.alternateFetch.length >= 1 ? options.alternateFetch : undefined;\n try {\n fetchIt(url, fetchOptions, callback, altFetch);\n } catch (e) {\n if (!reqOptions || Object.keys(reqOptions).length === 0 || !e.message || e.message.indexOf('not implemented') < 0) {\n return callback(e);\n }\n try {\n Object.keys(reqOptions).forEach(function (opt) {\n delete fetchOptions[opt];\n });\n fetchIt(url, fetchOptions, callback, altFetch);\n omitFetchOptions = true;\n } catch (err) {\n callback(err);\n }\n }\n};\nvar requestWithXmlHttpRequest = function requestWithXmlHttpRequest(options, url, payload, callback) {\n if (payload && _typeof(payload) === 'object') {\n payload = addQueryString('', payload).slice(1);\n }\n if (options.queryStringParams) {\n url = addQueryString(url, options.queryStringParams);\n }\n try {\n var x;\n if (XmlHttpRequestApi) {\n x = new XmlHttpRequestApi();\n } else {\n x = new ActiveXObjectApi('MSXML2.XMLHTTP.3.0');\n }\n x.open(payload ? 'POST' : 'GET', url, 1);\n if (!options.crossDomain) {\n x.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n }\n x.withCredentials = !!options.withCredentials;\n if (payload) {\n x.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');\n }\n if (x.overrideMimeType) {\n x.overrideMimeType('application/json');\n }\n var h = options.customHeaders;\n h = typeof h === 'function' ? h() : h;\n if (h) {\n for (var i in h) {\n x.setRequestHeader(i, h[i]);\n }\n }\n x.onreadystatechange = function () {\n x.readyState > 3 && callback(x.status >= 400 ? x.statusText : null, {\n status: x.status,\n data: x.responseText\n });\n };\n x.send(payload);\n } catch (e) {\n console && console.log(e);\n }\n};\nvar request = function request(options, url, payload, callback) {\n if (typeof payload === 'function') {\n callback = payload;\n payload = undefined;\n }\n callback = callback || function () {};\n if (fetchApi && url.indexOf('file:') !== 0) {\n return requestWithFetch(options, url, payload, callback);\n }\n if (hasXMLHttpRequest() || typeof ActiveXObject === 'function') {\n return requestWithXmlHttpRequest(options, url, payload, callback);\n }\n callback(new Error('No fetch and no xhr implementation found!'));\n};\nexport default request;","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport { makePromise } from './utils.js';\nimport request from './request.js';\nvar getDefaults = function getDefaults() {\n return {\n loadPath: '/locales/{{lng}}/{{ns}}.json',\n addPath: '/locales/add/{{lng}}/{{ns}}',\n parse: function parse(data) {\n return JSON.parse(data);\n },\n stringify: JSON.stringify,\n parsePayload: function parsePayload(namespace, key, fallbackValue) {\n return _defineProperty({}, key, fallbackValue || '');\n },\n parseLoadPayload: function parseLoadPayload(languages, namespaces) {\n return undefined;\n },\n request: request,\n reloadInterval: typeof window !== 'undefined' ? false : 60 * 60 * 1000,\n customHeaders: {},\n queryStringParams: {},\n crossDomain: false,\n withCredentials: false,\n overrideMimeType: false,\n requestOptions: {\n mode: 'cors',\n credentials: 'same-origin',\n cache: 'default'\n }\n };\n};\nvar Backend = function () {\n function Backend(services) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var allOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n _classCallCheck(this, Backend);\n this.services = services;\n this.options = options;\n this.allOptions = allOptions;\n this.type = 'backend';\n this.init(services, options, allOptions);\n }\n _createClass(Backend, [{\n key: \"init\",\n value: function init(services) {\n var _this = this;\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var allOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n this.services = services;\n this.options = _objectSpread(_objectSpread(_objectSpread({}, getDefaults()), this.options || {}), options);\n this.allOptions = allOptions;\n if (this.services && this.options.reloadInterval) {\n setInterval(function () {\n return _this.reload();\n }, this.options.reloadInterval);\n }\n }\n }, {\n key: \"readMulti\",\n value: function readMulti(languages, namespaces, callback) {\n this._readAny(languages, languages, namespaces, namespaces, callback);\n }\n }, {\n key: \"read\",\n value: function read(language, namespace, callback) {\n this._readAny([language], language, [namespace], namespace, callback);\n }\n }, {\n key: \"_readAny\",\n value: function _readAny(languages, loadUrlLanguages, namespaces, loadUrlNamespaces, callback) {\n var _this2 = this;\n var loadPath = this.options.loadPath;\n if (typeof this.options.loadPath === 'function') {\n loadPath = this.options.loadPath(languages, namespaces);\n }\n loadPath = makePromise(loadPath);\n loadPath.then(function (resolvedLoadPath) {\n if (!resolvedLoadPath) return callback(null, {});\n var url = _this2.services.interpolator.interpolate(resolvedLoadPath, {\n lng: languages.join('+'),\n ns: namespaces.join('+')\n });\n _this2.loadUrl(url, callback, loadUrlLanguages, loadUrlNamespaces);\n });\n }\n }, {\n key: \"loadUrl\",\n value: function loadUrl(url, callback, languages, namespaces) {\n var _this3 = this;\n var lng = typeof languages === 'string' ? [languages] : languages;\n var ns = typeof namespaces === 'string' ? [namespaces] : namespaces;\n var payload = this.options.parseLoadPayload(lng, ns);\n this.options.request(this.options, url, payload, function (err, res) {\n if (res && (res.status >= 500 && res.status < 600 || !res.status)) return callback('failed loading ' + url + '; status code: ' + res.status, true);\n if (res && res.status >= 400 && res.status < 500) return callback('failed loading ' + url + '; status code: ' + res.status, false);\n if (!res && err && err.message && err.message.indexOf('Failed to fetch') > -1) return callback('failed loading ' + url + ': ' + err.message, true);\n if (err) return callback(err, false);\n var ret, parseErr;\n try {\n if (typeof res.data === 'string') {\n ret = _this3.options.parse(res.data, languages, namespaces);\n } else {\n ret = res.data;\n }\n } catch (e) {\n parseErr = 'failed parsing ' + url + ' to json';\n }\n if (parseErr) return callback(parseErr, false);\n callback(null, ret);\n });\n }\n }, {\n key: \"create\",\n value: function create(languages, namespace, key, fallbackValue, callback) {\n var _this4 = this;\n if (!this.options.addPath) return;\n if (typeof languages === 'string') languages = [languages];\n var payload = this.options.parsePayload(namespace, key, fallbackValue);\n var finished = 0;\n var dataArray = [];\n var resArray = [];\n languages.forEach(function (lng) {\n var addPath = _this4.options.addPath;\n if (typeof _this4.options.addPath === 'function') {\n addPath = _this4.options.addPath(lng, namespace);\n }\n var url = _this4.services.interpolator.interpolate(addPath, {\n lng: lng,\n ns: namespace\n });\n _this4.options.request(_this4.options, url, payload, function (data, res) {\n finished += 1;\n dataArray.push(data);\n resArray.push(res);\n if (finished === languages.length) {\n if (typeof callback === 'function') callback(dataArray, resArray);\n }\n });\n });\n }\n }, {\n key: \"reload\",\n value: function reload() {\n var _this5 = this;\n var _this$services = this.services,\n backendConnector = _this$services.backendConnector,\n languageUtils = _this$services.languageUtils,\n logger = _this$services.logger;\n var currentLanguage = backendConnector.language;\n if (currentLanguage && currentLanguage.toLowerCase() === 'cimode') return;\n var toLoad = [];\n var append = function append(lng) {\n var lngs = languageUtils.toResolveHierarchy(lng);\n lngs.forEach(function (l) {\n if (toLoad.indexOf(l) < 0) toLoad.push(l);\n });\n };\n append(currentLanguage);\n if (this.allOptions.preload) this.allOptions.preload.forEach(function (l) {\n return append(l);\n });\n toLoad.forEach(function (lng) {\n _this5.allOptions.ns.forEach(function (ns) {\n backendConnector.read(lng, ns, 'read', null, null, function (err, data) {\n if (err) logger.warn(\"loading namespace \".concat(ns, \" for language \").concat(lng, \" failed\"), err);\n if (!err && data) logger.log(\"loaded namespace \".concat(ns, \" for language \").concat(lng), data);\n backendConnector.loaded(\"\".concat(lng, \"|\").concat(ns), err, data);\n });\n });\n });\n }\n }]);\n return Backend;\n}();\nBackend.type = 'backend';\nexport default Backend;","export function warn() {\n if (console && console.warn) {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (typeof args[0] === 'string') args[0] = `react-i18next:: ${args[0]}`;\n console.warn(...args);\n }\n}\nconst alreadyWarned = {};\nexport function warnOnce() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n if (typeof args[0] === 'string' && alreadyWarned[args[0]]) return;\n if (typeof args[0] === 'string') alreadyWarned[args[0]] = new Date();\n warn(...args);\n}\nconst loadedClb = (i18n, cb) => () => {\n if (i18n.isInitialized) {\n cb();\n } else {\n const initialized = () => {\n setTimeout(() => {\n i18n.off('initialized', initialized);\n }, 0);\n cb();\n };\n i18n.on('initialized', initialized);\n }\n};\nexport function loadNamespaces(i18n, ns, cb) {\n i18n.loadNamespaces(ns, loadedClb(i18n, cb));\n}\nexport function loadLanguages(i18n, lng, ns, cb) {\n if (typeof ns === 'string') ns = [ns];\n ns.forEach(n => {\n if (i18n.options.ns.indexOf(n) < 0) i18n.options.ns.push(n);\n });\n i18n.loadLanguages(lng, loadedClb(i18n, cb));\n}\nfunction oldI18nextHasLoadedNamespace(ns, i18n) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n const lng = i18n.languages[0];\n const fallbackLng = i18n.options ? i18n.options.fallbackLng : false;\n const lastLng = i18n.languages[i18n.languages.length - 1];\n if (lng.toLowerCase() === 'cimode') return true;\n const loadNotPending = (l, n) => {\n const loadState = i18n.services.backendConnector.state[`${l}|${n}`];\n return loadState === -1 || loadState === 2;\n };\n if (options.bindI18n && options.bindI18n.indexOf('languageChanging') > -1 && i18n.services.backendConnector.backend && i18n.isLanguageChangingTo && !loadNotPending(i18n.isLanguageChangingTo, ns)) return false;\n if (i18n.hasResourceBundle(lng, ns)) return true;\n if (!i18n.services.backendConnector.backend || i18n.options.resources && !i18n.options.partialBundledLanguages) return true;\n if (loadNotPending(lng, ns) && (!fallbackLng || loadNotPending(lastLng, ns))) return true;\n return false;\n}\nexport function hasLoadedNamespace(ns, i18n) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n if (!i18n.languages || !i18n.languages.length) {\n warnOnce('i18n.languages were undefined or empty', i18n.languages);\n return true;\n }\n const isNewerI18next = i18n.options.ignoreJSONStructure !== undefined;\n if (!isNewerI18next) {\n return oldI18nextHasLoadedNamespace(ns, i18n, options);\n }\n return i18n.hasLoadedNamespace(ns, {\n lng: options.lng,\n precheck: (i18nInstance, loadNotPending) => {\n if (options.bindI18n && options.bindI18n.indexOf('languageChanging') > -1 && i18nInstance.services.backendConnector.backend && i18nInstance.isLanguageChangingTo && !loadNotPending(i18nInstance.isLanguageChangingTo, ns)) return false;\n }\n });\n}\nexport function getDisplayName(Component) {\n return Component.displayName || Component.name || (typeof Component === 'string' && Component.length > 0 ? Component : 'Unknown');\n}","const matchHtmlEntity = /&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g;\nconst htmlEntities = {\n '&amp;': '&',\n '&#38;': '&',\n '&lt;': '<',\n '&#60;': '<',\n '&gt;': '>',\n '&#62;': '>',\n '&apos;': \"'\",\n '&#39;': \"'\",\n '&quot;': '\"',\n '&#34;': '\"',\n '&nbsp;': ' ',\n '&#160;': ' ',\n '&copy;': '©',\n '&#169;': '©',\n '&reg;': '®',\n '&#174;': '®',\n '&hellip;': '…',\n '&#8230;': '…',\n '&#x2F;': '/',\n '&#47;': '/'\n};\nconst unescapeHtmlEntity = m => htmlEntities[m];\nexport const unescape = text => text.replace(matchHtmlEntity, unescapeHtmlEntity);","import { unescape } from './unescape.js';\nlet defaultOptions = {\n bindI18n: 'languageChanged',\n bindI18nStore: '',\n transEmptyNodeValue: '',\n transSupportBasicHtmlNodes: true,\n transWrapTextNodes: '',\n transKeepBasicHtmlNodesFor: ['br', 'strong', 'i', 'p'],\n useSuspense: true,\n unescape\n};\nexport function setDefaults() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n defaultOptions = {\n ...defaultOptions,\n ...options\n };\n}\nexport function getDefaults() {\n return defaultOptions;\n}","let i18nInstance;\nexport function setI18n(instance) {\n i18nInstance = instance;\n}\nexport function getI18n() {\n return i18nInstance;\n}","import { setDefaults } from './defaults.js';\nimport { setI18n } from './i18nInstance.js';\nexport const initReactI18next = {\n type: '3rdParty',\n init(instance) {\n setDefaults(instance.options.react);\n setI18n(instance);\n }\n};","import { createContext } from 'react';\nimport { getDefaults, setDefaults } from './defaults.js';\nimport { getI18n, setI18n } from './i18nInstance.js';\nimport { initReactI18next } from './initReactI18next.js';\nexport { getDefaults, setDefaults, getI18n, setI18n, initReactI18next };\nexport const I18nContext = createContext();\nexport class ReportNamespaces {\n constructor() {\n this.usedNamespaces = {};\n }\n addUsedNamespaces(namespaces) {\n namespaces.forEach(ns => {\n if (!this.usedNamespaces[ns]) this.usedNamespaces[ns] = true;\n });\n }\n getUsedNamespaces() {\n return Object.keys(this.usedNamespaces);\n }\n}\nexport function composeInitialProps(ForComponent) {\n return ctx => new Promise(resolve => {\n const i18nInitialProps = getInitialProps();\n if (ForComponent.getInitialProps) {\n ForComponent.getInitialProps(ctx).then(componentsInitialProps => {\n resolve({\n ...componentsInitialProps,\n ...i18nInitialProps\n });\n });\n } else {\n resolve(i18nInitialProps);\n }\n });\n}\nexport function getInitialProps() {\n const i18n = getI18n();\n const namespaces = i18n.reportNamespaces ? i18n.reportNamespaces.getUsedNamespaces() : [];\n const ret = {};\n const initialI18nStore = {};\n i18n.languages.forEach(l => {\n initialI18nStore[l] = {};\n namespaces.forEach(ns => {\n initialI18nStore[l][ns] = i18n.getResourceBundle(l, ns) || {};\n });\n });\n ret.initialI18nStore = initialI18nStore;\n ret.initialLanguage = i18n.language;\n return ret;\n}","import { useState, useEffect, useContext, useRef, useCallback } from 'react';\nimport { getI18n, getDefaults, ReportNamespaces, I18nContext } from './context.js';\nimport { warnOnce, loadNamespaces, loadLanguages, hasLoadedNamespace } from './utils.js';\nconst usePrevious = (value, ignore) => {\n const ref = useRef();\n useEffect(() => {\n ref.current = ignore ? ref.current : value;\n }, [value, ignore]);\n return ref.current;\n};\nfunction alwaysNewT(i18n, language, namespace, keyPrefix) {\n return i18n.getFixedT(language, namespace, keyPrefix);\n}\nfunction useMemoizedT(i18n, language, namespace, keyPrefix) {\n return useCallback(alwaysNewT(i18n, language, namespace, keyPrefix), [i18n, language, namespace, keyPrefix]);\n}\nexport function useTranslation(ns) {\n let props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const {\n i18n: i18nFromProps\n } = props;\n const {\n i18n: i18nFromContext,\n defaultNS: defaultNSFromContext\n } = useContext(I18nContext) || {};\n const i18n = i18nFromProps || i18nFromContext || getI18n();\n if (i18n && !i18n.reportNamespaces) i18n.reportNamespaces = new ReportNamespaces();\n if (!i18n) {\n warnOnce('You will need to pass in an i18next instance by using initReactI18next');\n const notReadyT = (k, optsOrDefaultValue) => {\n if (typeof optsOrDefaultValue === 'string') return optsOrDefaultValue;\n if (optsOrDefaultValue && typeof optsOrDefaultValue === 'object' && typeof optsOrDefaultValue.defaultValue === 'string') return optsOrDefaultValue.defaultValue;\n return Array.isArray(k) ? k[k.length - 1] : k;\n };\n const retNotReady = [notReadyT, {}, false];\n retNotReady.t = notReadyT;\n retNotReady.i18n = {};\n retNotReady.ready = false;\n return retNotReady;\n }\n if (i18n.options.react && i18n.options.react.wait !== undefined) warnOnce('It seems you are still using the old wait option, you may migrate to the new useSuspense behaviour.');\n const i18nOptions = {\n ...getDefaults(),\n ...i18n.options.react,\n ...props\n };\n const {\n useSuspense,\n keyPrefix\n } = i18nOptions;\n let namespaces = ns || defaultNSFromContext || i18n.options && i18n.options.defaultNS;\n namespaces = typeof namespaces === 'string' ? [namespaces] : namespaces || ['translation'];\n if (i18n.reportNamespaces.addUsedNamespaces) i18n.reportNamespaces.addUsedNamespaces(namespaces);\n const ready = (i18n.isInitialized || i18n.initializedStoreOnce) && namespaces.every(n => hasLoadedNamespace(n, i18n, i18nOptions));\n const memoGetT = useMemoizedT(i18n, props.lng || null, i18nOptions.nsMode === 'fallback' ? namespaces : namespaces[0], keyPrefix);\n const getT = () => memoGetT;\n const getNewT = () => alwaysNewT(i18n, props.lng || null, i18nOptions.nsMode === 'fallback' ? namespaces : namespaces[0], keyPrefix);\n const [t, setT] = useState(getT);\n let joinedNS = namespaces.join();\n if (props.lng) joinedNS = `${props.lng}${joinedNS}`;\n const previousJoinedNS = usePrevious(joinedNS);\n const isMounted = useRef(true);\n useEffect(() => {\n const {\n bindI18n,\n bindI18nStore\n } = i18nOptions;\n isMounted.current = true;\n if (!ready && !useSuspense) {\n if (props.lng) {\n loadLanguages(i18n, props.lng, namespaces, () => {\n if (isMounted.current) setT(getNewT);\n });\n } else {\n loadNamespaces(i18n, namespaces, () => {\n if (isMounted.current) setT(getNewT);\n });\n }\n }\n if (ready && previousJoinedNS && previousJoinedNS !== joinedNS && isMounted.current) {\n setT(getNewT);\n }\n function boundReset() {\n if (isMounted.current) setT(getNewT);\n }\n if (bindI18n && i18n) i18n.on(bindI18n, boundReset);\n if (bindI18nStore && i18n) i18n.store.on(bindI18nStore, boundReset);\n return () => {\n isMounted.current = false;\n if (bindI18n && i18n) bindI18n.split(' ').forEach(e => i18n.off(e, boundReset));\n if (bindI18nStore && i18n) bindI18nStore.split(' ').forEach(e => i18n.store.off(e, boundReset));\n };\n }, [i18n, joinedNS]);\n useEffect(() => {\n if (isMounted.current && ready) {\n setT(getT);\n }\n }, [i18n, keyPrefix, ready]);\n const ret = [t, i18n, ready];\n ret.t = t;\n ret.i18n = i18n;\n ret.ready = ready;\n if (ready) return ret;\n if (!ready && !useSuspense) return ret;\n throw new Promise(resolve => {\n if (props.lng) {\n loadLanguages(i18n, props.lng, namespaces, () => resolve());\n } else {\n loadNamespaces(i18n, namespaces, () => resolve());\n }\n });\n}","export const DEFAULT_REALM = \"master\";\r\nexport const ROOT_PATH = \"/realms/:realm/account\";\r\n","import { matchPath } from \"react-router-dom\";\r\nimport { DEFAULT_REALM, ROOT_PATH } from \"./constants\";\r\n\r\nexport type Feature = {\r\n isRegistrationEmailAsUsername: boolean;\r\n isEditUserNameAllowed: boolean;\r\n isInternationalizationEnabled: boolean;\r\n isLinkedAccountsEnabled: boolean;\r\n isEventsEnabled: boolean;\r\n isMyResourcesEnabled: boolean;\r\n isTotpConfigured: boolean;\r\n deleteAccountAllowed: boolean;\r\n updateEmailFeatureEnabled: boolean;\r\n updateEmailActionEnabled: boolean;\r\n isViewGroupsEnabled: boolean;\r\n};\r\n\r\nexport type Environment = {\r\n /** The URL to the root of the auth server. */\r\n authUrl: string;\r\n /** The URL to the root of the account console. */\r\n baseUrl: string;\r\n /** The realm used to authenticate the user to the Account Console. */\r\n realm: string;\r\n /** The identifier of the client used to authenticate the user to the Account Console. */\r\n clientId: string;\r\n /** The URL to resources such as the files in the `public` directory. */\r\n resourceUrl: string;\r\n /** Indicates the src for the Brand image */\r\n logo: string;\r\n /** Indicates the url to be followed when Brand image is clicked */\r\n logoUrl: string;\r\n /** The locale of the user */\r\n locale: string;\r\n /** Feature flags */\r\n features: Feature;\r\n /** Client id of the application to add back link */\r\n referrer?: string;\r\n /** URI to the referrer application in the back link */\r\n referrer_uri?: string;\r\n};\r\n\r\n// Detect the current realm from the URL.\r\nconst match = matchPath(ROOT_PATH, location.pathname);\r\n\r\nconst defaultEnvironment: Environment = {\r\n authUrl: \"http://localhost:8180\",\r\n baseUrl: `http://localhost:8180/realms/${match?.params.realm ?? DEFAULT_REALM}/account/`,\r\n realm: match?.params.realm ?? DEFAULT_REALM,\r\n clientId: \"security-admin-console-v2\",\r\n resourceUrl: \"http://localhost:8080\",\r\n logo: \"/d4science-logo.png\",\r\n logoUrl: \"/\",\r\n locale: \"en\",\r\n features: {\r\n isRegistrationEmailAsUsername: false,\r\n isEditUserNameAllowed: true,\r\n isInternationalizationEnabled: true,\r\n isLinkedAccountsEnabled: true,\r\n isEventsEnabled: true,\r\n isMyResourcesEnabled: true,\r\n isTotpConfigured: true,\r\n deleteAccountAllowed: true,\r\n updateEmailFeatureEnabled: true,\r\n updateEmailActionEnabled: true,\r\n isViewGroupsEnabled: true,\r\n },\r\n};\r\n\r\n// Merge the default and injected environment variables together.\r\nconst environment: Environment = {\r\n ...defaultEnvironment,\r\n ...getInjectedEnvironment(),\r\n};\r\n\r\nexport { environment };\r\n\r\n/**\r\n * Extracts the environment variables that are passed if the application is running as a Keycloak theme.\r\n * These variables are injected by Keycloak into the `index.ftl` as a script tag, the contents of which can be parsed as JSON.\r\n */\r\nfunction getInjectedEnvironment(): Record<string, string | number | boolean> {\r\n const element = document.getElementById(\"environment\");\r\n\r\n let env = {} as Record<string, string | number | boolean>;\r\n\r\n // Attempt to parse the contents as JSON and return its value.\r\n try {\r\n // If the element cannot be found, return an empty record.\r\n if (element?.textContent) {\r\n env = JSON.parse(element.textContent);\r\n }\r\n } catch (error) {\r\n console.error(\"Unable to parse environment variables.\");\r\n }\r\n\r\n const searchParams = new URLSearchParams(location.search);\r\n if (searchParams.has(\"referrer_uri\")) {\r\n env[\"referrer_uri\"] = searchParams.get(\"referrer_uri\")!;\r\n }\r\n if (searchParams.has(\"referrer\")) {\r\n env[\"referrer\"] = searchParams.get(\"referrer\")!;\r\n }\r\n\r\n // Otherwise, return an empty record.\r\n return env;\r\n}\r\n","const PATH_SEPARATOR = \"/\";\r\n\r\nexport function joinPath(...paths: string[]) {\r\n const normalizedPaths = paths.map((path, index) => {\r\n const isFirst = index === 0;\r\n const isLast = index === paths.length - 1;\r\n\r\n // Strip out any leading slashes from the path.\r\n if (!isFirst && path.startsWith(PATH_SEPARATOR)) {\r\n path = path.slice(1);\r\n }\r\n\r\n // Strip out any trailing slashes from the path.\r\n if (!isLast && path.endsWith(PATH_SEPARATOR)) {\r\n path = path.slice(0, -1);\r\n }\r\n\r\n return path;\r\n }, []);\r\n\r\n return normalizedPaths.join(PATH_SEPARATOR);\r\n}\r\n","import { LanguageDetectorModule, createInstance } from \"i18next\";\r\nimport HttpBackend from \"i18next-http-backend\";\r\nimport { initReactI18next } from \"react-i18next\";\r\n\r\nimport { environment } from \"./environment\";\r\nimport { joinPath } from \"./utils/joinPath\";\r\n\r\nconst DEFAULT_LOCALE = \"en\";\r\n\r\ntype KeyValue = { key: string; value: string };\r\n\r\n// This type is aliased to any, so that we can find all the places where we use it.\r\n// In the future all casts to this type should be removed from the code, so\r\n// that we can have a proper type-safe translation function.\r\nexport type TFuncKey = any;\r\n\r\nexport const keycloakLanguageDetector: LanguageDetectorModule = {\r\n type: \"languageDetector\",\r\n\r\n detect() {\r\n return environment.locale;\r\n },\r\n};\r\n\r\nexport const i18n = createInstance({\r\n fallbackLng: DEFAULT_LOCALE,\r\n interpolation: {\r\n escapeValue: false,\r\n },\r\n backend: {\r\n loadPath: joinPath(\r\n environment.authUrl,\r\n `resources/${environment.realm}/account/{{lng}}`,\r\n ),\r\n parse: (data: string) => {\r\n const messages = JSON.parse(data);\r\n\r\n const result: Record<string, string> = {};\r\n messages.forEach((v: KeyValue) => (result[v.key] = v.value));\r\n return result;\r\n },\r\n },\r\n});\r\n\r\ni18n.use(HttpBackend);\r\ni18n.use(keycloakLanguageDetector);\r\ni18n.use(initReactI18next);\r\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n function next() {\n while (env.stack.length) {\n var rec = env.stack.pop();\n try {\n var result = rec.dispose && rec.dispose.call(rec.value);\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n catch (e) {\n fail(e);\n }\n }\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n};\n","/** Joins args into a className string\n *\n * @param {any} args list of objects, string, or arrays to reduce\n */\nexport function css(...args) {\n // Adapted from https://github.com/JedWatson/classnames/blob/master/index.js\n const classes = [];\n const hasOwn = {}.hasOwnProperty;\n args.filter(Boolean).forEach((arg) => {\n const argType = typeof arg;\n if (argType === 'string' || argType === 'number') {\n classes.push(arg);\n }\n else if (Array.isArray(arg) && arg.length) {\n const inner = css(...arg);\n if (inner) {\n classes.push(inner);\n }\n }\n else if (argType === 'object') {\n for (const key in arg) {\n if (hasOwn.call(arg, key) && arg[key]) {\n classes.push(key);\n }\n }\n }\n });\n return classes.join(' ');\n}\n//# sourceMappingURL=index.js.map","import './content.css';\nexport default {\n \"content\": \"pf-v5-c-content\",\n \"modifiers\": {\n \"visited\": \"pf-m-visited\",\n \"plain\": \"pf-m-plain\"\n }\n};","import './title.css';\nexport default {\n \"modifiers\": {\n \"4xl\": \"pf-m-4xl\",\n \"3xl\": \"pf-m-3xl\",\n \"2xl\": \"pf-m-2xl\",\n \"xl\": \"pf-m-xl\",\n \"lg\": \"pf-m-lg\",\n \"md\": \"pf-m-md\"\n },\n \"title\": \"pf-v5-c-title\"\n};","export const global_breakpoint_sm = {\n \"name\": \"--pf-v5-global--breakpoint--sm\",\n \"value\": \"576px\",\n \"var\": \"var(--pf-v5-global--breakpoint--sm)\"\n};\nexport default global_breakpoint_sm;","export const global_breakpoint_md = {\n \"name\": \"--pf-v5-global--breakpoint--md\",\n \"value\": \"768px\",\n \"var\": \"var(--pf-v5-global--breakpoint--md)\"\n};\nexport default global_breakpoint_md;","export const global_breakpoint_lg = {\n \"name\": \"--pf-v5-global--breakpoint--lg\",\n \"value\": \"992px\",\n \"var\": \"var(--pf-v5-global--breakpoint--lg)\"\n};\nexport default global_breakpoint_lg;","export const global_breakpoint_xl = {\n \"name\": \"--pf-v5-global--breakpoint--xl\",\n \"value\": \"1200px\",\n \"var\": \"var(--pf-v5-global--breakpoint--xl)\"\n};\nexport default global_breakpoint_xl;","export const global_breakpoint_2xl = {\n \"name\": \"--pf-v5-global--breakpoint--2xl\",\n \"value\": \"1450px\",\n \"var\": \"var(--pf-v5-global--breakpoint--2xl)\"\n};\nexport default global_breakpoint_2xl;","export const global_height_breakpoint_sm = {\n \"name\": \"--pf-v5-global--height-breakpoint--sm\",\n \"value\": \"0\",\n \"var\": \"var(--pf-v5-global--height-breakpoint--sm)\"\n};\nexport default global_height_breakpoint_sm;","export const global_height_breakpoint_md = {\n \"name\": \"--pf-v5-global--height-breakpoint--md\",\n \"value\": \"40rem\",\n \"var\": \"var(--pf-v5-global--height-breakpoint--md)\"\n};\nexport default global_height_breakpoint_md;","export const global_height_breakpoint_lg = {\n \"name\": \"--pf-v5-global--height-breakpoint--lg\",\n \"value\": \"48rem\",\n \"var\": \"var(--pf-v5-global--height-breakpoint--lg)\"\n};\nexport default global_height_breakpoint_lg;","export const global_height_breakpoint_xl = {\n \"name\": \"--pf-v5-global--height-breakpoint--xl\",\n \"value\": \"60rem\",\n \"var\": \"var(--pf-v5-global--height-breakpoint--xl)\"\n};\nexport default global_height_breakpoint_xl;","export const global_height_breakpoint_2xl = {\n \"name\": \"--pf-v5-global--height-breakpoint--2xl\",\n \"value\": \"80rem\",\n \"var\": \"var(--pf-v5-global--height-breakpoint--2xl)\"\n};\nexport default global_height_breakpoint_2xl;","import globalBreakpointSm from '@patternfly/react-tokens/dist/esm/global_breakpoint_sm';\nimport globalBreakpointMd from '@patternfly/react-tokens/dist/esm/global_breakpoint_md';\nimport globalBreakpointLg from '@patternfly/react-tokens/dist/esm/global_breakpoint_lg';\nimport globalBreakpointXl from '@patternfly/react-tokens/dist/esm/global_breakpoint_xl';\nimport globalBreakpoint2xl from '@patternfly/react-tokens/dist/esm/global_breakpoint_2xl';\nimport globalHeightBreakpointSm from '@patternfly/react-tokens/dist/esm/global_height_breakpoint_sm';\nimport globalHeightBreakpointMd from '@patternfly/react-tokens/dist/esm/global_height_breakpoint_md';\nimport globalHeightBreakpointLg from '@patternfly/react-tokens/dist/esm/global_height_breakpoint_lg';\nimport globalHeightBreakpointXl from '@patternfly/react-tokens/dist/esm/global_height_breakpoint_xl';\nimport globalHeightBreakpoint2xl from '@patternfly/react-tokens/dist/esm/global_height_breakpoint_2xl';\nexport const SIDE = { RIGHT: 'right', LEFT: 'left', BOTH: 'both', NONE: 'none' };\nexport const KEYHANDLER_DIRECTION = { UP: 'up', DOWN: 'down', RIGHT: 'right', LEFT: 'left' };\nexport var ValidatedOptions;\n(function (ValidatedOptions) {\n ValidatedOptions[\"success\"] = \"success\";\n ValidatedOptions[\"error\"] = \"error\";\n ValidatedOptions[\"warning\"] = \"warning\";\n ValidatedOptions[\"default\"] = \"default\";\n})(ValidatedOptions || (ValidatedOptions = {}));\nexport const KeyTypes = {\n Tab: 'Tab',\n Space: ' ',\n Escape: 'Escape',\n Enter: 'Enter',\n ArrowUp: 'ArrowUp',\n ArrowDown: 'ArrowDown',\n ArrowLeft: 'ArrowLeft',\n ArrowRight: 'ArrowRight'\n};\nexport const globalWidthBreakpoints = {\n sm: parseInt(globalBreakpointSm.value),\n md: parseInt(globalBreakpointMd.value),\n lg: parseInt(globalBreakpointLg.value),\n xl: parseInt(globalBreakpointXl.value),\n '2xl': parseInt(globalBreakpoint2xl.value)\n};\nexport const globalHeightBreakpoints = {\n sm: parseInt(globalHeightBreakpointSm.value),\n md: parseInt(globalHeightBreakpointMd.value),\n lg: parseInt(globalHeightBreakpointLg.value),\n xl: parseInt(globalHeightBreakpointXl.value),\n '2xl': parseInt(globalHeightBreakpoint2xl.value)\n};\n//# sourceMappingURL=constants.js.map","/*!\n* tabbable 6.2.0\n* @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE\n*/\n// NOTE: separate `:not()` selectors has broader browser support than the newer\n// `:not([inert], [inert] *)` (Feb 2023)\n// CAREFUL: JSDom does not support `:not([inert] *)` as a selector; using it causes\n// the entire query to fail, resulting in no nodes found, which will break a lot\n// of things... so we have to rely on JS to identify nodes inside an inert container\nvar candidateSelectors = ['input:not([inert])', 'select:not([inert])', 'textarea:not([inert])', 'a[href]:not([inert])', 'button:not([inert])', '[tabindex]:not(slot):not([inert])', 'audio[controls]:not([inert])', 'video[controls]:not([inert])', '[contenteditable]:not([contenteditable=\"false\"]):not([inert])', 'details>summary:first-of-type:not([inert])', 'details:not([inert])'];\nvar candidateSelector = /* #__PURE__ */candidateSelectors.join(',');\nvar NoElement = typeof Element === 'undefined';\nvar matches = NoElement ? function () {} : Element.prototype.matches || Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;\nvar getRootNode = !NoElement && Element.prototype.getRootNode ? function (element) {\n var _element$getRootNode;\n return element === null || element === void 0 ? void 0 : (_element$getRootNode = element.getRootNode) === null || _element$getRootNode === void 0 ? void 0 : _element$getRootNode.call(element);\n} : function (element) {\n return element === null || element === void 0 ? void 0 : element.ownerDocument;\n};\n\n/**\n * Determines if a node is inert or in an inert ancestor.\n * @param {Element} [node]\n * @param {boolean} [lookUp] If true and `node` is not inert, looks up at ancestors to\n * see if any of them are inert. If false, only `node` itself is considered.\n * @returns {boolean} True if inert itself or by way of being in an inert ancestor.\n * False if `node` is falsy.\n */\nvar isInert = function isInert(node, lookUp) {\n var _node$getAttribute;\n if (lookUp === void 0) {\n lookUp = true;\n }\n // CAREFUL: JSDom does not support inert at all, so we can't use the `HTMLElement.inert`\n // JS API property; we have to check the attribute, which can either be empty or 'true';\n // if it's `null` (not specified) or 'false', it's an active element\n var inertAtt = node === null || node === void 0 ? void 0 : (_node$getAttribute = node.getAttribute) === null || _node$getAttribute === void 0 ? void 0 : _node$getAttribute.call(node, 'inert');\n var inert = inertAtt === '' || inertAtt === 'true';\n\n // NOTE: this could also be handled with `node.matches('[inert], :is([inert] *)')`\n // if it weren't for `matches()` not being a function on shadow roots; the following\n // code works for any kind of node\n // CAREFUL: JSDom does not appear to support certain selectors like `:not([inert] *)`\n // so it likely would not support `:is([inert] *)` either...\n var result = inert || lookUp && node && isInert(node.parentNode); // recursive\n\n return result;\n};\n\n/**\n * Determines if a node's content is editable.\n * @param {Element} [node]\n * @returns True if it's content-editable; false if it's not or `node` is falsy.\n */\nvar isContentEditable = function isContentEditable(node) {\n var _node$getAttribute2;\n // CAREFUL: JSDom does not support the `HTMLElement.isContentEditable` API so we have\n // to use the attribute directly to check for this, which can either be empty or 'true';\n // if it's `null` (not specified) or 'false', it's a non-editable element\n var attValue = node === null || node === void 0 ? void 0 : (_node$getAttribute2 = node.getAttribute) === null || _node$getAttribute2 === void 0 ? void 0 : _node$getAttribute2.call(node, 'contenteditable');\n return attValue === '' || attValue === 'true';\n};\n\n/**\n * @param {Element} el container to check in\n * @param {boolean} includeContainer add container to check\n * @param {(node: Element) => boolean} filter filter candidates\n * @returns {Element[]}\n */\nvar getCandidates = function getCandidates(el, includeContainer, filter) {\n // even if `includeContainer=false`, we still have to check it for inertness because\n // if it's inert, all its children are inert\n if (isInert(el)) {\n return [];\n }\n var candidates = Array.prototype.slice.apply(el.querySelectorAll(candidateSelector));\n if (includeContainer && matches.call(el, candidateSelector)) {\n candidates.unshift(el);\n }\n candidates = candidates.filter(filter);\n return candidates;\n};\n\n/**\n * @callback GetShadowRoot\n * @param {Element} element to check for shadow root\n * @returns {ShadowRoot|boolean} ShadowRoot if available or boolean indicating if a shadowRoot is attached but not available.\n */\n\n/**\n * @callback ShadowRootFilter\n * @param {Element} shadowHostNode the element which contains shadow content\n * @returns {boolean} true if a shadow root could potentially contain valid candidates.\n */\n\n/**\n * @typedef {Object} CandidateScope\n * @property {Element} scopeParent contains inner candidates\n * @property {Element[]} candidates list of candidates found in the scope parent\n */\n\n/**\n * @typedef {Object} IterativeOptions\n * @property {GetShadowRoot|boolean} getShadowRoot true if shadow support is enabled; falsy if not;\n * if a function, implies shadow support is enabled and either returns the shadow root of an element\n * or a boolean stating if it has an undisclosed shadow root\n * @property {(node: Element) => boolean} filter filter candidates\n * @property {boolean} flatten if true then result will flatten any CandidateScope into the returned list\n * @property {ShadowRootFilter} shadowRootFilter filter shadow roots;\n */\n\n/**\n * @param {Element[]} elements list of element containers to match candidates from\n * @param {boolean} includeContainer add container list to check\n * @param {IterativeOptions} options\n * @returns {Array.<Element|CandidateScope>}\n */\nvar getCandidatesIteratively = function getCandidatesIteratively(elements, includeContainer, options) {\n var candidates = [];\n var elementsToCheck = Array.from(elements);\n while (elementsToCheck.length) {\n var element = elementsToCheck.shift();\n if (isInert(element, false)) {\n // no need to look up since we're drilling down\n // anything inside this container will also be inert\n continue;\n }\n if (element.tagName === 'SLOT') {\n // add shadow dom slot scope (slot itself cannot be focusable)\n var assigned = element.assignedElements();\n var content = assigned.length ? assigned : element.children;\n var nestedCandidates = getCandidatesIteratively(content, true, options);\n if (options.flatten) {\n candidates.push.apply(candidates, nestedCandidates);\n } else {\n candidates.push({\n scopeParent: element,\n candidates: nestedCandidates\n });\n }\n } else {\n // check candidate element\n var validCandidate = matches.call(element, candidateSelector);\n if (validCandidate && options.filter(element) && (includeContainer || !elements.includes(element))) {\n candidates.push(element);\n }\n\n // iterate over shadow content if possible\n var shadowRoot = element.shadowRoot ||\n // check for an undisclosed shadow\n typeof options.getShadowRoot === 'function' && options.getShadowRoot(element);\n\n // no inert look up because we're already drilling down and checking for inertness\n // on the way down, so all containers to this root node should have already been\n // vetted as non-inert\n var validShadowRoot = !isInert(shadowRoot, false) && (!options.shadowRootFilter || options.shadowRootFilter(element));\n if (shadowRoot && validShadowRoot) {\n // add shadow dom scope IIF a shadow root node was given; otherwise, an undisclosed\n // shadow exists, so look at light dom children as fallback BUT create a scope for any\n // child candidates found because they're likely slotted elements (elements that are\n // children of the web component element (which has the shadow), in the light dom, but\n // slotted somewhere _inside_ the undisclosed shadow) -- the scope is created below,\n // _after_ we return from this recursive call\n var _nestedCandidates = getCandidatesIteratively(shadowRoot === true ? element.children : shadowRoot.children, true, options);\n if (options.flatten) {\n candidates.push.apply(candidates, _nestedCandidates);\n } else {\n candidates.push({\n scopeParent: element,\n candidates: _nestedCandidates\n });\n }\n } else {\n // there's not shadow so just dig into the element's (light dom) children\n // __without__ giving the element special scope treatment\n elementsToCheck.unshift.apply(elementsToCheck, element.children);\n }\n }\n }\n return candidates;\n};\n\n/**\n * @private\n * Determines if the node has an explicitly specified `tabindex` attribute.\n * @param {HTMLElement} node\n * @returns {boolean} True if so; false if not.\n */\nvar hasTabIndex = function hasTabIndex(node) {\n return !isNaN(parseInt(node.getAttribute('tabindex'), 10));\n};\n\n/**\n * Determine the tab index of a given node.\n * @param {HTMLElement} node\n * @returns {number} Tab order (negative, 0, or positive number).\n * @throws {Error} If `node` is falsy.\n */\nvar getTabIndex = function getTabIndex(node) {\n if (!node) {\n throw new Error('No node provided');\n }\n if (node.tabIndex < 0) {\n // in Chrome, <details/>, <audio controls/> and <video controls/> elements get a default\n // `tabIndex` of -1 when the 'tabindex' attribute isn't specified in the DOM,\n // yet they are still part of the regular tab order; in FF, they get a default\n // `tabIndex` of 0; since Chrome still puts those elements in the regular tab\n // order, consider their tab index to be 0.\n // Also browsers do not return `tabIndex` correctly for contentEditable nodes;\n // so if they don't have a tabindex attribute specifically set, assume it's 0.\n if ((/^(AUDIO|VIDEO|DETAILS)$/.test(node.tagName) || isContentEditable(node)) && !hasTabIndex(node)) {\n return 0;\n }\n }\n return node.tabIndex;\n};\n\n/**\n * Determine the tab index of a given node __for sort order purposes__.\n * @param {HTMLElement} node\n * @param {boolean} [isScope] True for a custom element with shadow root or slot that, by default,\n * has tabIndex -1, but needs to be sorted by document order in order for its content to be\n * inserted into the correct sort position.\n * @returns {number} Tab order (negative, 0, or positive number).\n */\nvar getSortOrderTabIndex = function getSortOrderTabIndex(node, isScope) {\n var tabIndex = getTabIndex(node);\n if (tabIndex < 0 && isScope && !hasTabIndex(node)) {\n return 0;\n }\n return tabIndex;\n};\nvar sortOrderedTabbables = function sortOrderedTabbables(a, b) {\n return a.tabIndex === b.tabIndex ? a.documentOrder - b.documentOrder : a.tabIndex - b.tabIndex;\n};\nvar isInput = function isInput(node) {\n return node.tagName === 'INPUT';\n};\nvar isHiddenInput = function isHiddenInput(node) {\n return isInput(node) && node.type === 'hidden';\n};\nvar isDetailsWithSummary = function isDetailsWithSummary(node) {\n var r = node.tagName === 'DETAILS' && Array.prototype.slice.apply(node.children).some(function (child) {\n return child.tagName === 'SUMMARY';\n });\n return r;\n};\nvar getCheckedRadio = function getCheckedRadio(nodes, form) {\n for (var i = 0; i < nodes.length; i++) {\n if (nodes[i].checked && nodes[i].form === form) {\n return nodes[i];\n }\n }\n};\nvar isTabbableRadio = function isTabbableRadio(node) {\n if (!node.name) {\n return true;\n }\n var radioScope = node.form || getRootNode(node);\n var queryRadios = function queryRadios(name) {\n return radioScope.querySelectorAll('input[type=\"radio\"][name=\"' + name + '\"]');\n };\n var radioSet;\n if (typeof window !== 'undefined' && typeof window.CSS !== 'undefined' && typeof window.CSS.escape === 'function') {\n radioSet = queryRadios(window.CSS.escape(node.name));\n } else {\n try {\n radioSet = queryRadios(node.name);\n } catch (err) {\n // eslint-disable-next-line no-console\n console.error('Looks like you have a radio button with a name attribute containing invalid CSS selector characters and need the CSS.escape polyfill: %s', err.message);\n return false;\n }\n }\n var checked = getCheckedRadio(radioSet, node.form);\n return !checked || checked === node;\n};\nvar isRadio = function isRadio(node) {\n return isInput(node) && node.type === 'radio';\n};\nvar isNonTabbableRadio = function isNonTabbableRadio(node) {\n return isRadio(node) && !isTabbableRadio(node);\n};\n\n// determines if a node is ultimately attached to the window's document\nvar isNodeAttached = function isNodeAttached(node) {\n var _nodeRoot;\n // The root node is the shadow root if the node is in a shadow DOM; some document otherwise\n // (but NOT _the_ document; see second 'If' comment below for more).\n // If rootNode is shadow root, it'll have a host, which is the element to which the shadow\n // is attached, and the one we need to check if it's in the document or not (because the\n // shadow, and all nodes it contains, is never considered in the document since shadows\n // behave like self-contained DOMs; but if the shadow's HOST, which is part of the document,\n // is hidden, or is not in the document itself but is detached, it will affect the shadow's\n // visibility, including all the nodes it contains). The host could be any normal node,\n // or a custom element (i.e. web component). Either way, that's the one that is considered\n // part of the document, not the shadow root, nor any of its children (i.e. the node being\n // tested).\n // To further complicate things, we have to look all the way up until we find a shadow HOST\n // that is attached (or find none) because the node might be in nested shadows...\n // If rootNode is not a shadow root, it won't have a host, and so rootNode should be the\n // document (per the docs) and while it's a Document-type object, that document does not\n // appear to be the same as the node's `ownerDocument` for some reason, so it's safer\n // to ignore the rootNode at this point, and use `node.ownerDocument`. Otherwise,\n // using `rootNode.contains(node)` will _always_ be true we'll get false-positives when\n // node is actually detached.\n // NOTE: If `nodeRootHost` or `node` happens to be the `document` itself (which is possible\n // if a tabbable/focusable node was quickly added to the DOM, focused, and then removed\n // from the DOM as in https://github.com/focus-trap/focus-trap-react/issues/905), then\n // `ownerDocument` will be `null`, hence the optional chaining on it.\n var nodeRoot = node && getRootNode(node);\n var nodeRootHost = (_nodeRoot = nodeRoot) === null || _nodeRoot === void 0 ? void 0 : _nodeRoot.host;\n\n // in some cases, a detached node will return itself as the root instead of a document or\n // shadow root object, in which case, we shouldn't try to look further up the host chain\n var attached = false;\n if (nodeRoot && nodeRoot !== node) {\n var _nodeRootHost, _nodeRootHost$ownerDo, _node$ownerDocument;\n attached = !!((_nodeRootHost = nodeRootHost) !== null && _nodeRootHost !== void 0 && (_nodeRootHost$ownerDo = _nodeRootHost.ownerDocument) !== null && _nodeRootHost$ownerDo !== void 0 && _nodeRootHost$ownerDo.contains(nodeRootHost) || node !== null && node !== void 0 && (_node$ownerDocument = node.ownerDocument) !== null && _node$ownerDocument !== void 0 && _node$ownerDocument.contains(node));\n while (!attached && nodeRootHost) {\n var _nodeRoot2, _nodeRootHost2, _nodeRootHost2$ownerD;\n // since it's not attached and we have a root host, the node MUST be in a nested shadow DOM,\n // which means we need to get the host's host and check if that parent host is contained\n // in (i.e. attached to) the document\n nodeRoot = getRootNode(nodeRootHost);\n nodeRootHost = (_nodeRoot2 = nodeRoot) === null || _nodeRoot2 === void 0 ? void 0 : _nodeRoot2.host;\n attached = !!((_nodeRootHost2 = nodeRootHost) !== null && _nodeRootHost2 !== void 0 && (_nodeRootHost2$ownerD = _nodeRootHost2.ownerDocument) !== null && _nodeRootHost2$ownerD !== void 0 && _nodeRootHost2$ownerD.contains(nodeRootHost));\n }\n }\n return attached;\n};\nvar isZeroArea = function isZeroArea(node) {\n var _node$getBoundingClie = node.getBoundingClientRect(),\n width = _node$getBoundingClie.width,\n height = _node$getBoundingClie.height;\n return width === 0 && height === 0;\n};\nvar isHidden = function isHidden(node, _ref) {\n var displayCheck = _ref.displayCheck,\n getShadowRoot = _ref.getShadowRoot;\n // NOTE: visibility will be `undefined` if node is detached from the document\n // (see notes about this further down), which means we will consider it visible\n // (this is legacy behavior from a very long way back)\n // NOTE: we check this regardless of `displayCheck=\"none\"` because this is a\n // _visibility_ check, not a _display_ check\n if (getComputedStyle(node).visibility === 'hidden') {\n return true;\n }\n var isDirectSummary = matches.call(node, 'details>summary:first-of-type');\n var nodeUnderDetails = isDirectSummary ? node.parentElement : node;\n if (matches.call(nodeUnderDetails, 'details:not([open]) *')) {\n return true;\n }\n if (!displayCheck || displayCheck === 'full' || displayCheck === 'legacy-full') {\n if (typeof getShadowRoot === 'function') {\n // figure out if we should consider the node to be in an undisclosed shadow and use the\n // 'non-zero-area' fallback\n var originalNode = node;\n while (node) {\n var parentElement = node.parentElement;\n var rootNode = getRootNode(node);\n if (parentElement && !parentElement.shadowRoot && getShadowRoot(parentElement) === true // check if there's an undisclosed shadow\n ) {\n // node has an undisclosed shadow which means we can only treat it as a black box, so we\n // fall back to a non-zero-area test\n return isZeroArea(node);\n } else if (node.assignedSlot) {\n // iterate up slot\n node = node.assignedSlot;\n } else if (!parentElement && rootNode !== node.ownerDocument) {\n // cross shadow boundary\n node = rootNode.host;\n } else {\n // iterate up normal dom\n node = parentElement;\n }\n }\n node = originalNode;\n }\n // else, `getShadowRoot` might be true, but all that does is enable shadow DOM support\n // (i.e. it does not also presume that all nodes might have undisclosed shadows); or\n // it might be a falsy value, which means shadow DOM support is disabled\n\n // Since we didn't find it sitting in an undisclosed shadow (or shadows are disabled)\n // now we can just test to see if it would normally be visible or not, provided it's\n // attached to the main document.\n // NOTE: We must consider case where node is inside a shadow DOM and given directly to\n // `isTabbable()` or `isFocusable()` -- regardless of `getShadowRoot` option setting.\n\n if (isNodeAttached(node)) {\n // this works wherever the node is: if there's at least one client rect, it's\n // somehow displayed; it also covers the CSS 'display: contents' case where the\n // node itself is hidden in place of its contents; and there's no need to search\n // up the hierarchy either\n return !node.getClientRects().length;\n }\n\n // Else, the node isn't attached to the document, which means the `getClientRects()`\n // API will __always__ return zero rects (this can happen, for example, if React\n // is used to render nodes onto a detached tree, as confirmed in this thread:\n // https://github.com/facebook/react/issues/9117#issuecomment-284228870)\n //\n // It also means that even window.getComputedStyle(node).display will return `undefined`\n // because styles are only computed for nodes that are in the document.\n //\n // NOTE: THIS HAS BEEN THE CASE FOR YEARS. It is not new, nor is it caused by tabbable\n // somehow. Though it was never stated officially, anyone who has ever used tabbable\n // APIs on nodes in detached containers has actually implicitly used tabbable in what\n // was later (as of v5.2.0 on Apr 9, 2021) called `displayCheck=\"none\"` mode -- essentially\n // considering __everything__ to be visible because of the innability to determine styles.\n //\n // v6.0.0: As of this major release, the default 'full' option __no longer treats detached\n // nodes as visible with the 'none' fallback.__\n if (displayCheck !== 'legacy-full') {\n return true; // hidden\n }\n // else, fallback to 'none' mode and consider the node visible\n } else if (displayCheck === 'non-zero-area') {\n // NOTE: Even though this tests that the node's client rect is non-zero to determine\n // whether it's displayed, and that a detached node will __always__ have a zero-area\n // client rect, we don't special-case for whether the node is attached or not. In\n // this mode, we do want to consider nodes that have a zero area to be hidden at all\n // times, and that includes attached or not.\n return isZeroArea(node);\n }\n\n // visible, as far as we can tell, or per current `displayCheck=none` mode, we assume\n // it's visible\n return false;\n};\n\n// form fields (nested) inside a disabled fieldset are not focusable/tabbable\n// unless they are in the _first_ <legend> element of the top-most disabled\n// fieldset\nvar isDisabledFromFieldset = function isDisabledFromFieldset(node) {\n if (/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(node.tagName)) {\n var parentNode = node.parentElement;\n // check if `node` is contained in a disabled <fieldset>\n while (parentNode) {\n if (parentNode.tagName === 'FIELDSET' && parentNode.disabled) {\n // look for the first <legend> among the children of the disabled <fieldset>\n for (var i = 0; i < parentNode.children.length; i++) {\n var child = parentNode.children.item(i);\n // when the first <legend> (in document order) is found\n if (child.tagName === 'LEGEND') {\n // if its parent <fieldset> is not nested in another disabled <fieldset>,\n // return whether `node` is a descendant of its first <legend>\n return matches.call(parentNode, 'fieldset[disabled] *') ? true : !child.contains(node);\n }\n }\n // the disabled <fieldset> containing `node` has no <legend>\n return true;\n }\n parentNode = parentNode.parentElement;\n }\n }\n\n // else, node's tabbable/focusable state should not be affected by a fieldset's\n // enabled/disabled state\n return false;\n};\nvar isNodeMatchingSelectorFocusable = function isNodeMatchingSelectorFocusable(options, node) {\n if (node.disabled ||\n // we must do an inert look up to filter out any elements inside an inert ancestor\n // because we're limited in the type of selectors we can use in JSDom (see related\n // note related to `candidateSelectors`)\n isInert(node) || isHiddenInput(node) || isHidden(node, options) ||\n // For a details element with a summary, the summary element gets the focus\n isDetailsWithSummary(node) || isDisabledFromFieldset(node)) {\n return false;\n }\n return true;\n};\nvar isNodeMatchingSelectorTabbable = function isNodeMatchingSelectorTabbable(options, node) {\n if (isNonTabbableRadio(node) || getTabIndex(node) < 0 || !isNodeMatchingSelectorFocusable(options, node)) {\n return false;\n }\n return true;\n};\nvar isValidShadowRootTabbable = function isValidShadowRootTabbable(shadowHostNode) {\n var tabIndex = parseInt(shadowHostNode.getAttribute('tabindex'), 10);\n if (isNaN(tabIndex) || tabIndex >= 0) {\n return true;\n }\n // If a custom element has an explicit negative tabindex,\n // browsers will not allow tab targeting said element's children.\n return false;\n};\n\n/**\n * @param {Array.<Element|CandidateScope>} candidates\n * @returns Element[]\n */\nvar sortByOrder = function sortByOrder(candidates) {\n var regularTabbables = [];\n var orderedTabbables = [];\n candidates.forEach(function (item, i) {\n var isScope = !!item.scopeParent;\n var element = isScope ? item.scopeParent : item;\n var candidateTabindex = getSortOrderTabIndex(element, isScope);\n var elements = isScope ? sortByOrder(item.candidates) : element;\n if (candidateTabindex === 0) {\n isScope ? regularTabbables.push.apply(regularTabbables, elements) : regularTabbables.push(element);\n } else {\n orderedTabbables.push({\n documentOrder: i,\n tabIndex: candidateTabindex,\n item: item,\n isScope: isScope,\n content: elements\n });\n }\n });\n return orderedTabbables.sort(sortOrderedTabbables).reduce(function (acc, sortable) {\n sortable.isScope ? acc.push.apply(acc, sortable.content) : acc.push(sortable.content);\n return acc;\n }, []).concat(regularTabbables);\n};\nvar tabbable = function tabbable(container, options) {\n options = options || {};\n var candidates;\n if (options.getShadowRoot) {\n candidates = getCandidatesIteratively([container], options.includeContainer, {\n filter: isNodeMatchingSelectorTabbable.bind(null, options),\n flatten: false,\n getShadowRoot: options.getShadowRoot,\n shadowRootFilter: isValidShadowRootTabbable\n });\n } else {\n candidates = getCandidates(container, options.includeContainer, isNodeMatchingSelectorTabbable.bind(null, options));\n }\n return sortByOrder(candidates);\n};\nvar focusable = function focusable(container, options) {\n options = options || {};\n var candidates;\n if (options.getShadowRoot) {\n candidates = getCandidatesIteratively([container], options.includeContainer, {\n filter: isNodeMatchingSelectorFocusable.bind(null, options),\n flatten: true,\n getShadowRoot: options.getShadowRoot\n });\n } else {\n candidates = getCandidates(container, options.includeContainer, isNodeMatchingSelectorFocusable.bind(null, options));\n }\n return candidates;\n};\nvar isTabbable = function isTabbable(node, options) {\n options = options || {};\n if (!node) {\n throw new Error('No node provided');\n }\n if (matches.call(node, candidateSelector) === false) {\n return false;\n }\n return isNodeMatchingSelectorTabbable(options, node);\n};\nvar focusableCandidateSelector = /* #__PURE__ */candidateSelectors.concat('iframe').join(',');\nvar isFocusable = function isFocusable(node, options) {\n options = options || {};\n if (!node) {\n throw new Error('No node provided');\n }\n if (matches.call(node, focusableCandidateSelector) === false) {\n return false;\n }\n return isNodeMatchingSelectorFocusable(options, node);\n};\n\nexport { focusable, getTabIndex, isFocusable, isTabbable, tabbable };\n//# sourceMappingURL=index.esm.js.map\n","/*!\n* focus-trap 7.5.2\n* @license MIT, https://github.com/focus-trap/focus-trap/blob/master/LICENSE\n*/\nimport { isFocusable, tabbable, focusable, isTabbable, getTabIndex } from 'tabbable';\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}\nfunction _defineProperty(obj, key, value) {\n key = _toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _toPrimitive(input, hint) {\n if (typeof input !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (typeof res !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\nfunction _toPropertyKey(arg) {\n var key = _toPrimitive(arg, \"string\");\n return typeof key === \"symbol\" ? key : String(key);\n}\n\nvar activeFocusTraps = {\n activateTrap: function activateTrap(trapStack, trap) {\n if (trapStack.length > 0) {\n var activeTrap = trapStack[trapStack.length - 1];\n if (activeTrap !== trap) {\n activeTrap.pause();\n }\n }\n var trapIndex = trapStack.indexOf(trap);\n if (trapIndex === -1) {\n trapStack.push(trap);\n } else {\n // move this existing trap to the front of the queue\n trapStack.splice(trapIndex, 1);\n trapStack.push(trap);\n }\n },\n deactivateTrap: function deactivateTrap(trapStack, trap) {\n var trapIndex = trapStack.indexOf(trap);\n if (trapIndex !== -1) {\n trapStack.splice(trapIndex, 1);\n }\n if (trapStack.length > 0) {\n trapStack[trapStack.length - 1].unpause();\n }\n }\n};\nvar isSelectableInput = function isSelectableInput(node) {\n return node.tagName && node.tagName.toLowerCase() === 'input' && typeof node.select === 'function';\n};\nvar isEscapeEvent = function isEscapeEvent(e) {\n return (e === null || e === void 0 ? void 0 : e.key) === 'Escape' || (e === null || e === void 0 ? void 0 : e.key) === 'Esc' || (e === null || e === void 0 ? void 0 : e.keyCode) === 27;\n};\nvar isTabEvent = function isTabEvent(e) {\n return (e === null || e === void 0 ? void 0 : e.key) === 'Tab' || (e === null || e === void 0 ? void 0 : e.keyCode) === 9;\n};\n\n// checks for TAB by default\nvar isKeyForward = function isKeyForward(e) {\n return isTabEvent(e) && !e.shiftKey;\n};\n\n// checks for SHIFT+TAB by default\nvar isKeyBackward = function isKeyBackward(e) {\n return isTabEvent(e) && e.shiftKey;\n};\nvar delay = function delay(fn) {\n return setTimeout(fn, 0);\n};\n\n// Array.find/findIndex() are not supported on IE; this replicates enough\n// of Array.findIndex() for our needs\nvar findIndex = function findIndex(arr, fn) {\n var idx = -1;\n arr.every(function (value, i) {\n if (fn(value)) {\n idx = i;\n return false; // break\n }\n\n return true; // next\n });\n\n return idx;\n};\n\n/**\n * Get an option's value when it could be a plain value, or a handler that provides\n * the value.\n * @param {*} value Option's value to check.\n * @param {...*} [params] Any parameters to pass to the handler, if `value` is a function.\n * @returns {*} The `value`, or the handler's returned value.\n */\nvar valueOrHandler = function valueOrHandler(value) {\n for (var _len = arguments.length, params = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n params[_key - 1] = arguments[_key];\n }\n return typeof value === 'function' ? value.apply(void 0, params) : value;\n};\nvar getActualTarget = function getActualTarget(event) {\n // NOTE: If the trap is _inside_ a shadow DOM, event.target will always be the\n // shadow host. However, event.target.composedPath() will be an array of\n // nodes \"clicked\" from inner-most (the actual element inside the shadow) to\n // outer-most (the host HTML document). If we have access to composedPath(),\n // then use its first element; otherwise, fall back to event.target (and\n // this only works for an _open_ shadow DOM; otherwise,\n // composedPath()[0] === event.target always).\n return event.target.shadowRoot && typeof event.composedPath === 'function' ? event.composedPath()[0] : event.target;\n};\n\n// NOTE: this must be _outside_ `createFocusTrap()` to make sure all traps in this\n// current instance use the same stack if `userOptions.trapStack` isn't specified\nvar internalTrapStack = [];\nvar createFocusTrap = function createFocusTrap(elements, userOptions) {\n // SSR: a live trap shouldn't be created in this type of environment so this\n // should be safe code to execute if the `document` option isn't specified\n var doc = (userOptions === null || userOptions === void 0 ? void 0 : userOptions.document) || document;\n var trapStack = (userOptions === null || userOptions === void 0 ? void 0 : userOptions.trapStack) || internalTrapStack;\n var config = _objectSpread2({\n returnFocusOnDeactivate: true,\n escapeDeactivates: true,\n delayInitialFocus: true,\n isKeyForward: isKeyForward,\n isKeyBackward: isKeyBackward\n }, userOptions);\n var state = {\n // containers given to createFocusTrap()\n // @type {Array<HTMLElement>}\n containers: [],\n // list of objects identifying tabbable nodes in `containers` in the trap\n // NOTE: it's possible that a group has no tabbable nodes if nodes get removed while the trap\n // is active, but the trap should never get to a state where there isn't at least one group\n // with at least one tabbable node in it (that would lead to an error condition that would\n // result in an error being thrown)\n // @type {Array<{\n // container: HTMLElement,\n // tabbableNodes: Array<HTMLElement>, // empty if none\n // focusableNodes: Array<HTMLElement>, // empty if none\n // posTabIndexesFound: boolean,\n // firstTabbableNode: HTMLElement|undefined,\n // lastTabbableNode: HTMLElement|undefined,\n // firstDomTabbableNode: HTMLElement|undefined,\n // lastDomTabbableNode: HTMLElement|undefined,\n // nextTabbableNode: (node: HTMLElement, forward: boolean) => HTMLElement|undefined\n // }>}\n containerGroups: [],\n // same order/length as `containers` list\n\n // references to objects in `containerGroups`, but only those that actually have\n // tabbable nodes in them\n // NOTE: same order as `containers` and `containerGroups`, but __not necessarily__\n // the same length\n tabbableGroups: [],\n nodeFocusedBeforeActivation: null,\n mostRecentlyFocusedNode: null,\n active: false,\n paused: false,\n // timer ID for when delayInitialFocus is true and initial focus in this trap\n // has been delayed during activation\n delayInitialFocusTimer: undefined,\n // the most recent KeyboardEvent for the configured nav key (typically [SHIFT+]TAB), if any\n recentNavEvent: undefined\n };\n var trap; // eslint-disable-line prefer-const -- some private functions reference it, and its methods reference private functions, so we must declare here and define later\n\n /**\n * Gets a configuration option value.\n * @param {Object|undefined} configOverrideOptions If true, and option is defined in this set,\n * value will be taken from this object. Otherwise, value will be taken from base configuration.\n * @param {string} optionName Name of the option whose value is sought.\n * @param {string|undefined} [configOptionName] Name of option to use __instead of__ `optionName`\n * IIF `configOverrideOptions` is not defined. Otherwise, `optionName` is used.\n */\n var getOption = function getOption(configOverrideOptions, optionName, configOptionName) {\n return configOverrideOptions && configOverrideOptions[optionName] !== undefined ? configOverrideOptions[optionName] : config[configOptionName || optionName];\n };\n\n /**\n * Finds the index of the container that contains the element.\n * @param {HTMLElement} element\n * @param {Event} [event] If available, and `element` isn't directly found in any container,\n * the event's composed path is used to see if includes any known trap containers in the\n * case where the element is inside a Shadow DOM.\n * @returns {number} Index of the container in either `state.containers` or\n * `state.containerGroups` (the order/length of these lists are the same); -1\n * if the element isn't found.\n */\n var findContainerIndex = function findContainerIndex(element, event) {\n var composedPath = typeof (event === null || event === void 0 ? void 0 : event.composedPath) === 'function' ? event.composedPath() : undefined;\n // NOTE: search `containerGroups` because it's possible a group contains no tabbable\n // nodes, but still contains focusable nodes (e.g. if they all have `tabindex=-1`)\n // and we still need to find the element in there\n return state.containerGroups.findIndex(function (_ref) {\n var container = _ref.container,\n tabbableNodes = _ref.tabbableNodes;\n return container.contains(element) || ( // fall back to explicit tabbable search which will take into consideration any\n // web components if the `tabbableOptions.getShadowRoot` option was used for\n // the trap, enabling shadow DOM support in tabbable (`Node.contains()` doesn't\n // look inside web components even if open)\n composedPath === null || composedPath === void 0 ? void 0 : composedPath.includes(container)) || tabbableNodes.find(function (node) {\n return node === element;\n });\n });\n };\n\n /**\n * Gets the node for the given option, which is expected to be an option that\n * can be either a DOM node, a string that is a selector to get a node, `false`\n * (if a node is explicitly NOT given), or a function that returns any of these\n * values.\n * @param {string} optionName\n * @returns {undefined | false | HTMLElement | SVGElement} Returns\n * `undefined` if the option is not specified; `false` if the option\n * resolved to `false` (node explicitly not given); otherwise, the resolved\n * DOM node.\n * @throws {Error} If the option is set, not `false`, and is not, or does not\n * resolve to a node.\n */\n var getNodeForOption = function getNodeForOption(optionName) {\n var optionValue = config[optionName];\n if (typeof optionValue === 'function') {\n for (var _len2 = arguments.length, params = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n params[_key2 - 1] = arguments[_key2];\n }\n optionValue = optionValue.apply(void 0, params);\n }\n if (optionValue === true) {\n optionValue = undefined; // use default value\n }\n\n if (!optionValue) {\n if (optionValue === undefined || optionValue === false) {\n return optionValue;\n }\n // else, empty string (invalid), null (invalid), 0 (invalid)\n\n throw new Error(\"`\".concat(optionName, \"` was specified but was not a node, or did not return a node\"));\n }\n var node = optionValue; // could be HTMLElement, SVGElement, or non-empty string at this point\n\n if (typeof optionValue === 'string') {\n node = doc.querySelector(optionValue); // resolve to node, or null if fails\n if (!node) {\n throw new Error(\"`\".concat(optionName, \"` as selector refers to no known node\"));\n }\n }\n return node;\n };\n var getInitialFocusNode = function getInitialFocusNode() {\n var node = getNodeForOption('initialFocus');\n\n // false explicitly indicates we want no initialFocus at all\n if (node === false) {\n return false;\n }\n if (node === undefined || !isFocusable(node, config.tabbableOptions)) {\n // option not specified nor focusable: use fallback options\n if (findContainerIndex(doc.activeElement) >= 0) {\n node = doc.activeElement;\n } else {\n var firstTabbableGroup = state.tabbableGroups[0];\n var firstTabbableNode = firstTabbableGroup && firstTabbableGroup.firstTabbableNode;\n\n // NOTE: `fallbackFocus` option function cannot return `false` (not supported)\n node = firstTabbableNode || getNodeForOption('fallbackFocus');\n }\n }\n if (!node) {\n throw new Error('Your focus-trap needs to have at least one focusable element');\n }\n return node;\n };\n var updateTabbableNodes = function updateTabbableNodes() {\n state.containerGroups = state.containers.map(function (container) {\n var tabbableNodes = tabbable(container, config.tabbableOptions);\n\n // NOTE: if we have tabbable nodes, we must have focusable nodes; focusable nodes\n // are a superset of tabbable nodes since nodes with negative `tabindex` attributes\n // are focusable but not tabbable\n var focusableNodes = focusable(container, config.tabbableOptions);\n var firstTabbableNode = tabbableNodes.length > 0 ? tabbableNodes[0] : undefined;\n var lastTabbableNode = tabbableNodes.length > 0 ? tabbableNodes[tabbableNodes.length - 1] : undefined;\n var firstDomTabbableNode = focusableNodes.find(function (node) {\n return isTabbable(node);\n });\n var lastDomTabbableNode = focusableNodes.slice().reverse().find(function (node) {\n return isTabbable(node);\n });\n var posTabIndexesFound = !!tabbableNodes.find(function (node) {\n return getTabIndex(node) > 0;\n });\n return {\n container: container,\n tabbableNodes: tabbableNodes,\n focusableNodes: focusableNodes,\n /** True if at least one node with positive `tabindex` was found in this container. */\n posTabIndexesFound: posTabIndexesFound,\n /** First tabbable node in container, __tabindex__ order; `undefined` if none. */\n firstTabbableNode: firstTabbableNode,\n /** Last tabbable node in container, __tabindex__ order; `undefined` if none. */\n lastTabbableNode: lastTabbableNode,\n // NOTE: DOM order is NOT NECESSARILY \"document position\" order, but figuring that out\n // would require more than just https://developer.mozilla.org/en-US/docs/Web/API/Node/compareDocumentPosition\n // because that API doesn't work with Shadow DOM as well as it should (@see\n // https://github.com/whatwg/dom/issues/320) and since this first/last is only needed, so far,\n // to address an edge case related to positive tabindex support, this seems like a much easier,\n // \"close enough most of the time\" alternative for positive tabindexes which should generally\n // be avoided anyway...\n /** First tabbable node in container, __DOM__ order; `undefined` if none. */\n firstDomTabbableNode: firstDomTabbableNode,\n /** Last tabbable node in container, __DOM__ order; `undefined` if none. */\n lastDomTabbableNode: lastDomTabbableNode,\n /**\n * Finds the __tabbable__ node that follows the given node in the specified direction,\n * in this container, if any.\n * @param {HTMLElement} node\n * @param {boolean} [forward] True if going in forward tab order; false if going\n * in reverse.\n * @returns {HTMLElement|undefined} The next tabbable node, if any.\n */\n nextTabbableNode: function nextTabbableNode(node) {\n var forward = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var nodeIdx = tabbableNodes.indexOf(node);\n if (nodeIdx < 0) {\n // either not tabbable nor focusable, or was focused but not tabbable (negative tabindex):\n // since `node` should at least have been focusable, we assume that's the case and mimic\n // what browsers do, which is set focus to the next node in __document position order__,\n // regardless of positive tabindexes, if any -- and for reasons explained in the NOTE\n // above related to `firstDomTabbable` and `lastDomTabbable` properties, we fall back to\n // basic DOM order\n if (forward) {\n return focusableNodes.slice(focusableNodes.indexOf(node) + 1).find(function (el) {\n return isTabbable(el);\n });\n }\n return focusableNodes.slice(0, focusableNodes.indexOf(node)).reverse().find(function (el) {\n return isTabbable(el);\n });\n }\n return tabbableNodes[nodeIdx + (forward ? 1 : -1)];\n }\n };\n });\n state.tabbableGroups = state.containerGroups.filter(function (group) {\n return group.tabbableNodes.length > 0;\n });\n\n // throw if no groups have tabbable nodes and we don't have a fallback focus node either\n if (state.tabbableGroups.length <= 0 && !getNodeForOption('fallbackFocus') // returning false not supported for this option\n ) {\n throw new Error('Your focus-trap must have at least one container with at least one tabbable node in it at all times');\n }\n\n // NOTE: Positive tabindexes are only properly supported in single-container traps because\n // doing it across multiple containers where tabindexes could be all over the place\n // would require Tabbable to support multiple containers, would require additional\n // specialized Shadow DOM support, and would require Tabbable's multi-container support\n // to look at those containers in document position order rather than user-provided\n // order (as they are treated in Focus-trap, for legacy reasons). See discussion on\n // https://github.com/focus-trap/focus-trap/issues/375 for more details.\n if (state.containerGroups.find(function (g) {\n return g.posTabIndexesFound;\n }) && state.containerGroups.length > 1) {\n throw new Error(\"At least one node with a positive tabindex was found in one of your focus-trap's multiple containers. Positive tabindexes are only supported in single-container focus-traps.\");\n }\n };\n var tryFocus = function tryFocus(node) {\n if (node === false) {\n return;\n }\n if (node === doc.activeElement) {\n return;\n }\n if (!node || !node.focus) {\n tryFocus(getInitialFocusNode());\n return;\n }\n node.focus({\n preventScroll: !!config.preventScroll\n });\n // NOTE: focus() API does not trigger focusIn event so set MRU node manually\n state.mostRecentlyFocusedNode = node;\n if (isSelectableInput(node)) {\n node.select();\n }\n };\n var getReturnFocusNode = function getReturnFocusNode(previousActiveElement) {\n var node = getNodeForOption('setReturnFocus', previousActiveElement);\n return node ? node : node === false ? false : previousActiveElement;\n };\n\n /**\n * Finds the next node (in either direction) where focus should move according to a\n * keyboard focus-in event.\n * @param {Object} params\n * @param {Node} [params.target] Known target __from which__ to navigate, if any.\n * @param {KeyboardEvent|FocusEvent} [params.event] Event to use if `target` isn't known (event\n * will be used to determine the `target`). Ignored if `target` is specified.\n * @param {boolean} [params.isBackward] True if focus should move backward.\n * @returns {Node|undefined} The next node, or `undefined` if a next node couldn't be\n * determined given the current state of the trap.\n */\n var findNextNavNode = function findNextNavNode(_ref2) {\n var target = _ref2.target,\n event = _ref2.event,\n _ref2$isBackward = _ref2.isBackward,\n isBackward = _ref2$isBackward === void 0 ? false : _ref2$isBackward;\n target = target || getActualTarget(event);\n updateTabbableNodes();\n var destinationNode = null;\n if (state.tabbableGroups.length > 0) {\n // make sure the target is actually contained in a group\n // NOTE: the target may also be the container itself if it's focusable\n // with tabIndex='-1' and was given initial focus\n var containerIndex = findContainerIndex(target, event);\n var containerGroup = containerIndex >= 0 ? state.containerGroups[containerIndex] : undefined;\n if (containerIndex < 0) {\n // target not found in any group: quite possible focus has escaped the trap,\n // so bring it back into...\n if (isBackward) {\n // ...the last node in the last group\n destinationNode = state.tabbableGroups[state.tabbableGroups.length - 1].lastTabbableNode;\n } else {\n // ...the first node in the first group\n destinationNode = state.tabbableGroups[0].firstTabbableNode;\n }\n } else if (isBackward) {\n // REVERSE\n\n // is the target the first tabbable node in a group?\n var startOfGroupIndex = findIndex(state.tabbableGroups, function (_ref3) {\n var firstTabbableNode = _ref3.firstTabbableNode;\n return target === firstTabbableNode;\n });\n if (startOfGroupIndex < 0 && (containerGroup.container === target || isFocusable(target, config.tabbableOptions) && !isTabbable(target, config.tabbableOptions) && !containerGroup.nextTabbableNode(target, false))) {\n // an exception case where the target is either the container itself, or\n // a non-tabbable node that was given focus (i.e. tabindex is negative\n // and user clicked on it or node was programmatically given focus)\n // and is not followed by any other tabbable node, in which\n // case, we should handle shift+tab as if focus were on the container's\n // first tabbable node, and go to the last tabbable node of the LAST group\n startOfGroupIndex = containerIndex;\n }\n if (startOfGroupIndex >= 0) {\n // YES: then shift+tab should go to the last tabbable node in the\n // previous group (and wrap around to the last tabbable node of\n // the LAST group if it's the first tabbable node of the FIRST group)\n var destinationGroupIndex = startOfGroupIndex === 0 ? state.tabbableGroups.length - 1 : startOfGroupIndex - 1;\n var destinationGroup = state.tabbableGroups[destinationGroupIndex];\n destinationNode = getTabIndex(target) >= 0 ? destinationGroup.lastTabbableNode : destinationGroup.lastDomTabbableNode;\n } else if (!isTabEvent(event)) {\n // user must have customized the nav keys so we have to move focus manually _within_\n // the active group: do this based on the order determined by tabbable()\n destinationNode = containerGroup.nextTabbableNode(target, false);\n }\n } else {\n // FORWARD\n\n // is the target the last tabbable node in a group?\n var lastOfGroupIndex = findIndex(state.tabbableGroups, function (_ref4) {\n var lastTabbableNode = _ref4.lastTabbableNode;\n return target === lastTabbableNode;\n });\n if (lastOfGroupIndex < 0 && (containerGroup.container === target || isFocusable(target, config.tabbableOptions) && !isTabbable(target, config.tabbableOptions) && !containerGroup.nextTabbableNode(target))) {\n // an exception case where the target is the container itself, or\n // a non-tabbable node that was given focus (i.e. tabindex is negative\n // and user clicked on it or node was programmatically given focus)\n // and is not followed by any other tabbable node, in which\n // case, we should handle tab as if focus were on the container's\n // last tabbable node, and go to the first tabbable node of the FIRST group\n lastOfGroupIndex = containerIndex;\n }\n if (lastOfGroupIndex >= 0) {\n // YES: then tab should go to the first tabbable node in the next\n // group (and wrap around to the first tabbable node of the FIRST\n // group if it's the last tabbable node of the LAST group)\n var _destinationGroupIndex = lastOfGroupIndex === state.tabbableGroups.length - 1 ? 0 : lastOfGroupIndex + 1;\n var _destinationGroup = state.tabbableGroups[_destinationGroupIndex];\n destinationNode = getTabIndex(target) >= 0 ? _destinationGroup.firstTabbableNode : _destinationGroup.firstDomTabbableNode;\n } else if (!isTabEvent(event)) {\n // user must have customized the nav keys so we have to move focus manually _within_\n // the active group: do this based on the order determined by tabbable()\n destinationNode = containerGroup.nextTabbableNode(target);\n }\n }\n } else {\n // no groups available\n // NOTE: the fallbackFocus option does not support returning false to opt-out\n destinationNode = getNodeForOption('fallbackFocus');\n }\n return destinationNode;\n };\n\n // This needs to be done on mousedown and touchstart instead of click\n // so that it precedes the focus event.\n var checkPointerDown = function checkPointerDown(e) {\n var target = getActualTarget(e);\n if (findContainerIndex(target, e) >= 0) {\n // allow the click since it ocurred inside the trap\n return;\n }\n if (valueOrHandler(config.clickOutsideDeactivates, e)) {\n // immediately deactivate the trap\n trap.deactivate({\n // NOTE: by setting `returnFocus: false`, deactivate() will do nothing,\n // which will result in the outside click setting focus to the node\n // that was clicked (and if not focusable, to \"nothing\"); by setting\n // `returnFocus: true`, we'll attempt to re-focus the node originally-focused\n // on activation (or the configured `setReturnFocus` node), whether the\n // outside click was on a focusable node or not\n returnFocus: config.returnFocusOnDeactivate\n });\n return;\n }\n\n // This is needed for mobile devices.\n // (If we'll only let `click` events through,\n // then on mobile they will be blocked anyways if `touchstart` is blocked.)\n if (valueOrHandler(config.allowOutsideClick, e)) {\n // allow the click outside the trap to take place\n return;\n }\n\n // otherwise, prevent the click\n e.preventDefault();\n };\n\n // In case focus escapes the trap for some strange reason, pull it back in.\n // NOTE: the focusIn event is NOT cancelable, so if focus escapes, it may cause unexpected\n // scrolling if the node that got focused was out of view; there's nothing we can do to\n // prevent that from happening by the time we discover that focus escaped\n var checkFocusIn = function checkFocusIn(event) {\n var target = getActualTarget(event);\n var targetContained = findContainerIndex(target, event) >= 0;\n\n // In Firefox when you Tab out of an iframe the Document is briefly focused.\n if (targetContained || target instanceof Document) {\n if (targetContained) {\n state.mostRecentlyFocusedNode = target;\n }\n } else {\n // escaped! pull it back in to where it just left\n event.stopImmediatePropagation();\n\n // focus will escape if the MRU node had a positive tab index and user tried to nav forward;\n // it will also escape if the MRU node had a 0 tab index and user tried to nav backward\n // toward a node with a positive tab index\n var nextNode; // next node to focus, if we find one\n var navAcrossContainers = true;\n if (state.mostRecentlyFocusedNode) {\n if (getTabIndex(state.mostRecentlyFocusedNode) > 0) {\n // MRU container index must be >=0 otherwise we wouldn't have it as an MRU node...\n var mruContainerIdx = findContainerIndex(state.mostRecentlyFocusedNode);\n // there MAY not be any tabbable nodes in the container if there are at least 2 containers\n // and the MRU node is focusable but not tabbable (focus-trap requires at least 1 container\n // with at least one tabbable node in order to function, so this could be the other container\n // with nothing tabbable in it)\n var tabbableNodes = state.containerGroups[mruContainerIdx].tabbableNodes;\n if (tabbableNodes.length > 0) {\n // MRU tab index MAY not be found if the MRU node is focusable but not tabbable\n var mruTabIdx = tabbableNodes.findIndex(function (node) {\n return node === state.mostRecentlyFocusedNode;\n });\n if (mruTabIdx >= 0) {\n if (config.isKeyForward(state.recentNavEvent)) {\n if (mruTabIdx + 1 < tabbableNodes.length) {\n nextNode = tabbableNodes[mruTabIdx + 1];\n navAcrossContainers = false;\n }\n // else, don't wrap within the container as focus should move to next/previous\n // container\n } else {\n if (mruTabIdx - 1 >= 0) {\n nextNode = tabbableNodes[mruTabIdx - 1];\n navAcrossContainers = false;\n }\n // else, don't wrap within the container as focus should move to next/previous\n // container\n }\n // else, don't find in container order without considering direction too\n }\n }\n // else, no tabbable nodes in that container (which means we must have at least one other\n // container with at least one tabbable node in it, otherwise focus-trap would've thrown\n // an error the last time updateTabbableNodes() was run): find next node among all known\n // containers\n } else {\n // check to see if there's at least one tabbable node with a positive tab index inside\n // the trap because focus seems to escape when navigating backward from a tabbable node\n // with tabindex=0 when this is the case (instead of wrapping to the tabbable node with\n // the greatest positive tab index like it should)\n if (!state.containerGroups.some(function (g) {\n return g.tabbableNodes.some(function (n) {\n return getTabIndex(n) > 0;\n });\n })) {\n // no containers with tabbable nodes with positive tab indexes which means the focus\n // escaped for some other reason and we should just execute the fallback to the\n // MRU node or initial focus node, if any\n navAcrossContainers = false;\n }\n }\n } else {\n // no MRU node means we're likely in some initial condition when the trap has just\n // been activated and initial focus hasn't been given yet, in which case we should\n // fall through to trying to focus the initial focus node, which is what should\n // happen below at this point in the logic\n navAcrossContainers = false;\n }\n if (navAcrossContainers) {\n nextNode = findNextNavNode({\n // move FROM the MRU node, not event-related node (which will be the node that is\n // outside the trap causing the focus escape we're trying to fix)\n target: state.mostRecentlyFocusedNode,\n isBackward: config.isKeyBackward(state.recentNavEvent)\n });\n }\n if (nextNode) {\n tryFocus(nextNode);\n } else {\n tryFocus(state.mostRecentlyFocusedNode || getInitialFocusNode());\n }\n }\n state.recentNavEvent = undefined; // clear\n };\n\n // Hijack key nav events on the first and last focusable nodes of the trap,\n // in order to prevent focus from escaping. If it escapes for even a\n // moment it can end up scrolling the page and causing confusion so we\n // kind of need to capture the action at the keydown phase.\n var checkKeyNav = function checkKeyNav(event) {\n var isBackward = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n state.recentNavEvent = event;\n var destinationNode = findNextNavNode({\n event: event,\n isBackward: isBackward\n });\n if (destinationNode) {\n if (isTabEvent(event)) {\n // since tab natively moves focus, we wouldn't have a destination node unless we\n // were on the edge of a container and had to move to the next/previous edge, in\n // which case we want to prevent default to keep the browser from moving focus\n // to where it normally would\n event.preventDefault();\n }\n tryFocus(destinationNode);\n }\n // else, let the browser take care of [shift+]tab and move the focus\n };\n\n var checkKey = function checkKey(event) {\n if (isEscapeEvent(event) && valueOrHandler(config.escapeDeactivates, event) !== false) {\n event.preventDefault();\n trap.deactivate();\n return;\n }\n if (config.isKeyForward(event) || config.isKeyBackward(event)) {\n checkKeyNav(event, config.isKeyBackward(event));\n }\n };\n var checkClick = function checkClick(e) {\n var target = getActualTarget(e);\n if (findContainerIndex(target, e) >= 0) {\n return;\n }\n if (valueOrHandler(config.clickOutsideDeactivates, e)) {\n return;\n }\n if (valueOrHandler(config.allowOutsideClick, e)) {\n return;\n }\n e.preventDefault();\n e.stopImmediatePropagation();\n };\n\n //\n // EVENT LISTENERS\n //\n\n var addListeners = function addListeners() {\n if (!state.active) {\n return;\n }\n\n // There can be only one listening focus trap at a time\n activeFocusTraps.activateTrap(trapStack, trap);\n\n // Delay ensures that the focused element doesn't capture the event\n // that caused the focus trap activation.\n state.delayInitialFocusTimer = config.delayInitialFocus ? delay(function () {\n tryFocus(getInitialFocusNode());\n }) : tryFocus(getInitialFocusNode());\n doc.addEventListener('focusin', checkFocusIn, true);\n doc.addEventListener('mousedown', checkPointerDown, {\n capture: true,\n passive: false\n });\n doc.addEventListener('touchstart', checkPointerDown, {\n capture: true,\n passive: false\n });\n doc.addEventListener('click', checkClick, {\n capture: true,\n passive: false\n });\n doc.addEventListener('keydown', checkKey, {\n capture: true,\n passive: false\n });\n return trap;\n };\n var removeListeners = function removeListeners() {\n if (!state.active) {\n return;\n }\n doc.removeEventListener('focusin', checkFocusIn, true);\n doc.removeEventListener('mousedown', checkPointerDown, true);\n doc.removeEventListener('touchstart', checkPointerDown, true);\n doc.removeEventListener('click', checkClick, true);\n doc.removeEventListener('keydown', checkKey, true);\n return trap;\n };\n\n //\n // MUTATION OBSERVER\n //\n\n var checkDomRemoval = function checkDomRemoval(mutations) {\n var isFocusedNodeRemoved = mutations.some(function (mutation) {\n var removedNodes = Array.from(mutation.removedNodes);\n return removedNodes.some(function (node) {\n return node === state.mostRecentlyFocusedNode;\n });\n });\n\n // If the currently focused is removed then browsers will move focus to the\n // <body> element. If this happens, try to move focus back into the trap.\n if (isFocusedNodeRemoved) {\n tryFocus(getInitialFocusNode());\n }\n };\n\n // Use MutationObserver - if supported - to detect if focused node is removed\n // from the DOM.\n var mutationObserver = typeof window !== 'undefined' && 'MutationObserver' in window ? new MutationObserver(checkDomRemoval) : undefined;\n var updateObservedNodes = function updateObservedNodes() {\n if (!mutationObserver) {\n return;\n }\n mutationObserver.disconnect();\n if (state.active && !state.paused) {\n state.containers.map(function (container) {\n mutationObserver.observe(container, {\n subtree: true,\n childList: true\n });\n });\n }\n };\n\n //\n // TRAP DEFINITION\n //\n\n trap = {\n get active() {\n return state.active;\n },\n get paused() {\n return state.paused;\n },\n activate: function activate(activateOptions) {\n if (state.active) {\n return this;\n }\n var onActivate = getOption(activateOptions, 'onActivate');\n var onPostActivate = getOption(activateOptions, 'onPostActivate');\n var checkCanFocusTrap = getOption(activateOptions, 'checkCanFocusTrap');\n if (!checkCanFocusTrap) {\n updateTabbableNodes();\n }\n state.active = true;\n state.paused = false;\n state.nodeFocusedBeforeActivation = doc.activeElement;\n onActivate === null || onActivate === void 0 ? void 0 : onActivate();\n var finishActivation = function finishActivation() {\n if (checkCanFocusTrap) {\n updateTabbableNodes();\n }\n addListeners();\n updateObservedNodes();\n onPostActivate === null || onPostActivate === void 0 ? void 0 : onPostActivate();\n };\n if (checkCanFocusTrap) {\n checkCanFocusTrap(state.containers.concat()).then(finishActivation, finishActivation);\n return this;\n }\n finishActivation();\n return this;\n },\n deactivate: function deactivate(deactivateOptions) {\n if (!state.active) {\n return this;\n }\n var options = _objectSpread2({\n onDeactivate: config.onDeactivate,\n onPostDeactivate: config.onPostDeactivate,\n checkCanReturnFocus: config.checkCanReturnFocus\n }, deactivateOptions);\n clearTimeout(state.delayInitialFocusTimer); // noop if undefined\n state.delayInitialFocusTimer = undefined;\n removeListeners();\n state.active = false;\n state.paused = false;\n updateObservedNodes();\n activeFocusTraps.deactivateTrap(trapStack, trap);\n var onDeactivate = getOption(options, 'onDeactivate');\n var onPostDeactivate = getOption(options, 'onPostDeactivate');\n var checkCanReturnFocus = getOption(options, 'checkCanReturnFocus');\n var returnFocus = getOption(options, 'returnFocus', 'returnFocusOnDeactivate');\n onDeactivate === null || onDeactivate === void 0 ? void 0 : onDeactivate();\n var finishDeactivation = function finishDeactivation() {\n delay(function () {\n if (returnFocus) {\n tryFocus(getReturnFocusNode(state.nodeFocusedBeforeActivation));\n }\n onPostDeactivate === null || onPostDeactivate === void 0 ? void 0 : onPostDeactivate();\n });\n };\n if (returnFocus && checkCanReturnFocus) {\n checkCanReturnFocus(getReturnFocusNode(state.nodeFocusedBeforeActivation)).then(finishDeactivation, finishDeactivation);\n return this;\n }\n finishDeactivation();\n return this;\n },\n pause: function pause(pauseOptions) {\n if (state.paused || !state.active) {\n return this;\n }\n var onPause = getOption(pauseOptions, 'onPause');\n var onPostPause = getOption(pauseOptions, 'onPostPause');\n state.paused = true;\n onPause === null || onPause === void 0 ? void 0 : onPause();\n removeListeners();\n updateObservedNodes();\n onPostPause === null || onPostPause === void 0 ? void 0 : onPostPause();\n return this;\n },\n unpause: function unpause(unpauseOptions) {\n if (!state.paused || !state.active) {\n return this;\n }\n var onUnpause = getOption(unpauseOptions, 'onUnpause');\n var onPostUnpause = getOption(unpauseOptions, 'onPostUnpause');\n state.paused = false;\n onUnpause === null || onUnpause === void 0 ? void 0 : onUnpause();\n updateTabbableNodes();\n addListeners();\n updateObservedNodes();\n onPostUnpause === null || onPostUnpause === void 0 ? void 0 : onPostUnpause();\n return this;\n },\n updateContainerElements: function updateContainerElements(containerElements) {\n var elementsAsArray = [].concat(containerElements).filter(Boolean);\n state.containers = elementsAsArray.map(function (element) {\n return typeof element === 'string' ? doc.querySelector(element) : element;\n });\n if (state.active) {\n updateTabbableNodes();\n }\n updateObservedNodes();\n return this;\n }\n };\n\n // initialize container elements\n trap.updateContainerElements(elements);\n return trap;\n};\n\nexport { createFocusTrap };\n//# sourceMappingURL=focus-trap.esm.js.map\n","import { useEffect, useRef } from 'react';\n/**\n * A `useEffect`-like hook that only triggers when a component unmounts. Does not require a dependency list, as the effect callback will always be kept up to date.\n */\nexport function useUnmountEffect(effect) {\n // Always use the latest effect callback so that it can reference the latest props and state.\n const effectRef = useRef(effect);\n effectRef.current = effect;\n // Trigger the effect callback when the component unmounts.\n useEffect(() => () => {\n effectRef.current();\n }, []);\n}\n//# sourceMappingURL=useUnmountEffect.js.map","import { __rest } from \"tslib\";\nimport { createFocusTrap } from 'focus-trap';\nimport React, { forwardRef, useEffect, useImperativeHandle, useRef } from 'react';\nimport { useUnmountEffect } from '../useUnmountEffect';\nexport const FocusTrap = forwardRef(function FocusTrap(_a, forwardedRef) {\n var { active = true, paused = false, focusTrapOptions = {}, preventScrollOnDeactivate = false } = _a, props = __rest(_a, [\"active\", \"paused\", \"focusTrapOptions\", \"preventScrollOnDeactivate\"]);\n // Fall back to internal ref if no forwarded ref is provided.\n const ref = useRef(null);\n useImperativeHandle(forwardedRef, () => ref.current);\n // Create focus trap instance after rendering DOM.\n const focusTrapRef = useRef(null);\n useEffect(() => {\n const focusTrap = createFocusTrap(ref.current, Object.assign(Object.assign({}, focusTrapOptions), { returnFocusOnDeactivate: false }));\n focusTrapRef.current = focusTrap;\n // Deactivate focus trap on cleanup.\n return () => {\n focusTrap.deactivate();\n };\n }, []);\n // Handle activation status based on 'active' prop.\n useEffect(() => {\n const focusTrap = focusTrapRef.current;\n active ? focusTrap === null || focusTrap === void 0 ? void 0 : focusTrap.activate() : focusTrap === null || focusTrap === void 0 ? void 0 : focusTrap.deactivate();\n }, [active]);\n // Handle pause status based on 'pause' prop.\n useEffect(() => {\n const focusTrap = focusTrapRef.current;\n paused ? focusTrap === null || focusTrap === void 0 ? void 0 : focusTrap.pause() : focusTrap === null || focusTrap === void 0 ? void 0 : focusTrap.unpause();\n }, [paused]);\n // Store the currently active element to restore focus to later.\n const previousElementRef = useRef(typeof document !== 'undefined' ? document.activeElement : null);\n // Restore focus to the previously active element on unmount.\n useUnmountEffect(() => {\n if (focusTrapOptions.returnFocusOnDeactivate !== false && previousElementRef.current instanceof HTMLElement) {\n previousElementRef.current.focus({\n preventScroll: preventScrollOnDeactivate\n });\n }\n });\n return React.createElement(\"div\", Object.assign({ ref: ref }, props));\n});\nFocusTrap.displayName = 'FocusTrap';\n//# sourceMappingURL=FocusTrap.js.map","/** This Component can be used to wrap a functional component in order to generate a random ID\n * Example of how to use this component\n *\n * const Component = ({id}: {id: string}) => (\n * <GenerateId>{randomId => (\n * <div id={id || randomId}>\n * div with random ID\n * </div>\n * )}\n * </GenerateId>\n * );\n */\nimport * as React from 'react';\nlet currentId = 0;\nclass GenerateId extends React.Component {\n constructor() {\n super(...arguments);\n this.id = `${this.props.prefix}${currentId++}`;\n }\n render() {\n return this.props.children(this.id);\n }\n}\nGenerateId.displayName = 'GenerateId';\nGenerateId.defaultProps = {\n prefix: 'pf-random-id-'\n};\nexport { GenerateId };\n//# sourceMappingURL=GenerateId.js.map","export const ASTERISK = '*';\n//# sourceMappingURL=htmlConstants.js.map","import { useMemo } from 'react';\nlet uid = 0;\nconst ouiaPrefix = 'OUIA-Generated-';\nconst ouiaIdByRoute = {};\n/** Get props to conform to OUIA spec\n *\n * For functional components, use the useOUIAProps function instead\n *\n * In class based components, create a state variable ouiaStateId to create a static generated ID:\n * state = {\n * ouiaStateId: getDefaultOUIAId(Chip.displayName)\n * }\n * This generated ID should remain alive as long as the component is not unmounted.\n *\n * Then add the attributes to the component\n * {...getOUIAProps('OverflowChip', this.props.ouiaId !== undefined ? this.props.ouiaId : this.state.ouiaStateId)}\n *\n * @param {string} componentType OUIA component type\n * @param {number|string} id OUIA component id\n * @param {boolean} ouiaSafe false if in animation\n */\nexport function getOUIAProps(componentType, id, ouiaSafe = true) {\n return {\n 'data-ouia-component-type': `PF5/${componentType}`,\n 'data-ouia-safe': ouiaSafe,\n 'data-ouia-component-id': id\n };\n}\n/**\n * Hooks version of the getOUIAProps function that also memoizes the generated ID\n * Can only be used in functional components\n *\n * @param {string} componentType OUIA component type\n * @param {number|string} id OUIA component id\n * @param {boolean} ouiaSafe false if in animation\n * @param {string} variant Optional variant to add to the generated ID\n */\nexport const useOUIAProps = (componentType, id, ouiaSafe = true, variant) => ({\n 'data-ouia-component-type': `PF5/${componentType}`,\n 'data-ouia-safe': ouiaSafe,\n 'data-ouia-component-id': useOUIAId(componentType, id, variant)\n});\n/**\n * Returns the ID or the memoized generated ID\n *\n * @param {string} componentType OUIA component type\n * @param {number|string} id OUIA component id\n * @param {string} variant Optional variant to add to the generated ID\n */\nexport const useOUIAId = (componentType, id, variant) => {\n const defaultOUIAId = useMemo(() => getDefaultOUIAId(componentType, variant), [componentType, variant]);\n return id !== null && id !== void 0 ? id : defaultOUIAId;\n};\n/**\n * Returns a generated id based on the URL location\n *\n * @param {string} componentType OUIA component type\n * @param {string} variant Optional variant to add to the generated ID\n */\nexport function getDefaultOUIAId(componentType, variant) {\n /*\n ouiaIdByRoute = {\n [route+componentType]: [number]\n }\n */\n try {\n let key;\n if (typeof window !== 'undefined') {\n // browser environments\n key = `${window.location.href}-${componentType}-${variant || ''}`;\n }\n else {\n // node/SSR environments\n key = `${componentType}-${variant || ''}`;\n }\n if (!ouiaIdByRoute[key]) {\n ouiaIdByRoute[key] = 0;\n }\n return `${ouiaPrefix}${componentType}-${variant ? `${variant}-` : ''}${++ouiaIdByRoute[key]}`;\n }\n catch (exception) {\n return `${ouiaPrefix}${componentType}-${variant ? `${variant}-` : ''}${++uid}`;\n }\n}\n//# sourceMappingURL=ouia.js.map","import * as ReactDOM from 'react-dom';\nimport { globalWidthBreakpoints, globalHeightBreakpoints, SIDE } from './constants';\n/**\n * @param {string} input - String to capitalize first letter\n */\nexport function capitalize(input) {\n return input[0].toUpperCase() + input.substring(1);\n}\n/**\n * @param {string} prefix - String to prefix ID with\n */\nexport function getUniqueId(prefix = 'pf') {\n const uid = new Date().getTime() + Math.random().toString(36).slice(2);\n return `${prefix}-${uid}`;\n}\n/**\n * @param { any } this - \"This\" reference\n * @param { Function } func - Function to debounce\n * @param { number } wait - Debounce amount\n */\nexport function debounce(func, wait) {\n let timeout;\n return (...args) => {\n clearTimeout(timeout);\n timeout = setTimeout(() => func.apply(this, args), wait);\n };\n}\n/** This function returns whether or not an element is within the viewable area of a container. If partial is true,\n * then this function will return true even if only part of the element is in view.\n *\n * @param {HTMLElement} container The container to check if the element is in view of.\n * @param {HTMLElement} element The element to check if it is view\n * @param {boolean} partial true if partial view is allowed\n * @param {boolean} strict true if strict mode is set, never consider the container width and element width\n *\n * @returns { boolean } True if the component is in View.\n */\nexport function isElementInView(container, element, partial, strict = false) {\n if (!container || !element) {\n return false;\n }\n const containerBounds = container.getBoundingClientRect();\n const elementBounds = element.getBoundingClientRect();\n const containerBoundsLeft = Math.ceil(containerBounds.left);\n const containerBoundsRight = Math.floor(containerBounds.right);\n const elementBoundsLeft = Math.ceil(elementBounds.left);\n const elementBoundsRight = Math.floor(elementBounds.right);\n // Check if in view\n const isTotallyInView = elementBoundsLeft >= containerBoundsLeft && elementBoundsRight <= containerBoundsRight;\n const isPartiallyInView = (partial || (!strict && containerBounds.width < elementBounds.width)) &&\n ((elementBoundsLeft < containerBoundsLeft && elementBoundsRight > containerBoundsLeft) ||\n (elementBoundsRight > containerBoundsRight && elementBoundsLeft < containerBoundsRight));\n // Return outcome\n return isTotallyInView || isPartiallyInView;\n}\n/** This function returns the side the element is out of view on (right, left or both)\n *\n * @param {HTMLElement} container The container to check if the element is in view of.\n * @param {HTMLElement} element The element to check if it is view\n *\n * @returns {string} right if the element is of the right, left if element is off the left or both if it is off on both sides.\n */\nexport function sideElementIsOutOfView(container, element) {\n const containerBounds = container.getBoundingClientRect();\n const elementBounds = element.getBoundingClientRect();\n const containerBoundsLeft = Math.floor(containerBounds.left);\n const containerBoundsRight = Math.floor(containerBounds.right);\n const elementBoundsLeft = Math.floor(elementBounds.left);\n const elementBoundsRight = Math.floor(elementBounds.right);\n // Check if in view\n const isOffLeft = elementBoundsLeft < containerBoundsLeft;\n const isOffRight = elementBoundsRight > containerBoundsRight;\n let side = SIDE.NONE;\n if (isOffRight && isOffLeft) {\n side = SIDE.BOTH;\n }\n else if (isOffRight) {\n side = SIDE.RIGHT;\n }\n else if (isOffLeft) {\n side = SIDE.LEFT;\n }\n // Return outcome\n return side;\n}\n/** Interpolates a parameterized templateString using values from a templateVars object.\n * The templateVars object should have keys and values which match the templateString's parameters.\n * Example:\n * const templateString: 'My name is ${firstName} ${lastName}';\n * const templateVars: {\n * firstName: 'Jon'\n * lastName: 'Dough'\n * };\n * const result = fillTemplate(templateString, templateVars);\n * // \"My name is Jon Dough\"\n *\n * @param {string} templateString The string passed by the consumer\n * @param {object} templateVars The variables passed to the string\n *\n * @returns {string} The template string literal result\n */\nexport function fillTemplate(templateString, templateVars) {\n return templateString.replace(/\\${(.*?)}/g, (_, match) => templateVars[match] || '');\n}\n/**\n * This function allows for keyboard navigation through dropdowns. The custom argument is optional.\n *\n * @param {number} index The index of the element you're on\n * @param {number} innerIndex Inner index number\n * @param {string} position The orientation of the dropdown\n * @param {string[]} refsCollection Array of refs to the items in the dropdown\n * @param {object[]} kids Array of items in the dropdown\n * @param {boolean} [custom] Allows for handling of flexible content\n */\nexport function keyHandler(index, innerIndex, position, refsCollection, kids, custom = false) {\n if (!Array.isArray(kids)) {\n return;\n }\n const isMultiDimensional = refsCollection.filter((ref) => ref)[0].constructor === Array;\n let nextIndex = index;\n let nextInnerIndex = innerIndex;\n if (position === 'up') {\n if (index === 0) {\n // loop back to end\n nextIndex = kids.length - 1;\n }\n else {\n nextIndex = index - 1;\n }\n }\n else if (position === 'down') {\n if (index === kids.length - 1) {\n // loop back to beginning\n nextIndex = 0;\n }\n else {\n nextIndex = index + 1;\n }\n }\n else if (position === 'left') {\n if (innerIndex === 0) {\n nextInnerIndex = refsCollection[index].length - 1;\n }\n else {\n nextInnerIndex = innerIndex - 1;\n }\n }\n else if (position === 'right') {\n if (innerIndex === refsCollection[index].length - 1) {\n nextInnerIndex = 0;\n }\n else {\n nextInnerIndex = innerIndex + 1;\n }\n }\n if (refsCollection[nextIndex] === null ||\n refsCollection[nextIndex] === undefined ||\n (isMultiDimensional &&\n (refsCollection[nextIndex][nextInnerIndex] === null || refsCollection[nextIndex][nextInnerIndex] === undefined))) {\n keyHandler(nextIndex, nextInnerIndex, position, refsCollection, kids, custom);\n }\n else if (custom) {\n if (refsCollection[nextIndex].focus) {\n refsCollection[nextIndex].focus();\n }\n // eslint-disable-next-line react/no-find-dom-node\n const element = ReactDOM.findDOMNode(refsCollection[nextIndex]);\n element.focus();\n }\n else if (position !== 'tab') {\n if (isMultiDimensional) {\n refsCollection[nextIndex][nextInnerIndex].focus();\n }\n else {\n refsCollection[nextIndex].focus();\n }\n }\n}\n/** This function returns a list of tabbable items in a container\n *\n * @param {any} containerRef to the container\n * @param {string} tababbleSelectors CSS selector string of tabbable items\n */\nexport function findTabbableElements(containerRef, tababbleSelectors) {\n const tabbable = containerRef.current.querySelectorAll(tababbleSelectors);\n const list = Array.prototype.filter.call(tabbable, function (item) {\n return item.tabIndex >= '0';\n });\n return list;\n}\n/** This function is a helper for keyboard navigation through dropdowns.\n *\n * @param {number} index The index of the element you're on\n * @param {string} position The orientation of the dropdown\n * @param {string[]} collection Array of refs to the items in the dropdown\n */\nexport function getNextIndex(index, position, collection) {\n let nextIndex;\n if (position === 'up') {\n if (index === 0) {\n // loop back to end\n nextIndex = collection.length - 1;\n }\n else {\n nextIndex = index - 1;\n }\n }\n else if (index === collection.length - 1) {\n // loop back to beginning\n nextIndex = 0;\n }\n else {\n nextIndex = index + 1;\n }\n if (collection[nextIndex] === undefined || collection[nextIndex][0] === null) {\n return getNextIndex(nextIndex, position, collection);\n }\n else {\n return nextIndex;\n }\n}\n/** This function is a helper for pluralizing strings.\n *\n * @param {number} i The quantity of the string you want to pluralize\n * @param {string} singular The singular version of the string\n * @param {string} plural The change to the string that should occur if the quantity is not equal to 1.\n * Defaults to adding an 's'.\n */\nexport function pluralize(i, singular, plural) {\n if (!plural) {\n plural = `${singular}s`;\n }\n return `${i || 0} ${i === 1 ? singular : plural}`;\n}\n/**\n * This function is a helper for turning arrays of breakpointMod objects for flex and grid into style object\n *\n * @param {object} mods The modifiers object\n * @param {string} css-variable The appropriate css variable for the component\n */\nexport const setBreakpointCssVars = (mods, cssVar) => Object.entries(mods || {}).reduce((acc, [breakpoint, value]) => breakpoint === 'default' ? Object.assign(Object.assign({}, acc), { [cssVar]: value }) : Object.assign(Object.assign({}, acc), { [`${cssVar}-on-${breakpoint}`]: value }), {});\n/**\n * This function is a helper for turning arrays of breakpointMod objects for data toolbar and flex into classes\n *\n * @param {object} mods The modifiers object\n * @param {any} styles The appropriate styles object for the component\n */\nexport const formatBreakpointMods = (mods, styles, stylePrefix = '', breakpoint, vertical) => {\n if (!mods) {\n return '';\n }\n if (breakpoint && !vertical) {\n if (breakpoint in mods) {\n return styles.modifiers[toCamel(`${stylePrefix}${mods[breakpoint]}`)];\n }\n // the current breakpoint is not specified in mods, so we try to find the next nearest\n const breakpointsOrder = ['2xl', 'xl', 'lg', 'md', 'sm', 'default'];\n const breakpointsIndex = breakpointsOrder.indexOf(breakpoint);\n for (let i = breakpointsIndex; i < breakpointsOrder.length; i++) {\n if (breakpointsOrder[i] in mods) {\n return styles.modifiers[toCamel(`${stylePrefix}${mods[breakpointsOrder[i]]}`)];\n }\n }\n return '';\n }\n return Object.entries(mods || {})\n .map(([breakpoint, mod]) => `${stylePrefix}${mod}${breakpoint !== 'default' ? `-on-${breakpoint}` : ''}${vertical && breakpoint !== 'default' ? '-height' : ''}`)\n .map(toCamel)\n .map((mod) => mod.replace(/-?(\\dxl)/gi, (_res, group) => `_${group}`))\n .map((modifierKey) => styles.modifiers[modifierKey])\n .filter(Boolean)\n .join(' ');\n};\n/**\n * Return the breakpoint for the given height\n *\n * @param {number | null} height The height to check\n * @returns {'default' | 'sm' | 'md' | 'lg' | 'xl' | '2xl'} The breakpoint\n */\nexport const getVerticalBreakpoint = (height) => {\n if (height === null) {\n return null;\n }\n if (height >= globalHeightBreakpoints['2xl']) {\n return '2xl';\n }\n if (height >= globalHeightBreakpoints.xl) {\n return 'xl';\n }\n if (height >= globalHeightBreakpoints.lg) {\n return 'lg';\n }\n if (height >= globalHeightBreakpoints.md) {\n return 'md';\n }\n if (height >= globalHeightBreakpoints.sm) {\n return 'sm';\n }\n return 'default';\n};\n/**\n * Return the breakpoint for the given width\n *\n * @param {number | null} width The width to check\n * @returns {'default' | 'sm' | 'md' | 'lg' | 'xl' | '2xl'} The breakpoint\n */\nexport const getBreakpoint = (width) => {\n if (width === null) {\n return null;\n }\n if (width >= globalWidthBreakpoints['2xl']) {\n return '2xl';\n }\n if (width >= globalWidthBreakpoints.xl) {\n return 'xl';\n }\n if (width >= globalWidthBreakpoints.lg) {\n return 'lg';\n }\n if (width >= globalWidthBreakpoints.md) {\n return 'md';\n }\n if (width >= globalWidthBreakpoints.sm) {\n return 'sm';\n }\n return 'default';\n};\nconst camelize = (s) => s.toUpperCase().replace('-', '').replace('_', '');\n/**\n *\n * @param {string} s string to make camelCased\n */\nexport const toCamel = (s) => s.replace(/([-_][a-z])/gi, camelize);\n/**\n * Copied from exenv\n */\nexport const canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n/**\n * Calculate the width of the text\n * Example:\n * getTextWidth('my text', node)\n *\n * @param {string} text The text to calculate the width for\n * @param {HTMLElement} node The HTML element\n */\nexport const getTextWidth = (text, node) => {\n const computedStyle = getComputedStyle(node);\n // Firefox returns the empty string for .font, so this function creates the .font property manually\n const getFontFromComputedStyle = () => {\n let computedFont = '';\n // Firefox uses percentages for font-stretch, but Canvas does not accept percentages\n // so convert to keywords, as listed at:\n // https://developer.mozilla.org/en-US/docs/Web/CSS/font-stretch\n const fontStretchLookupTable = {\n '50%': 'ultra-condensed',\n '62.5%': 'extra-condensed',\n '75%': 'condensed',\n '87.5%': 'semi-condensed',\n '100%': 'normal',\n '112.5%': 'semi-expanded',\n '125%': 'expanded',\n '150%': 'extra-expanded',\n '200%': 'ultra-expanded'\n };\n // If the retrieved font-stretch percentage isn't found in the lookup table, use\n // 'normal' as a last resort.\n let fontStretch;\n if (computedStyle.fontStretch in fontStretchLookupTable) {\n fontStretch = fontStretchLookupTable[computedStyle.fontStretch];\n }\n else {\n fontStretch = 'normal';\n }\n computedFont =\n computedStyle.fontStyle +\n ' ' +\n computedStyle.fontVariant +\n ' ' +\n computedStyle.fontWeight +\n ' ' +\n fontStretch +\n ' ' +\n computedStyle.fontSize +\n '/' +\n computedStyle.lineHeight +\n ' ' +\n computedStyle.fontFamily;\n return computedFont;\n };\n const canvas = document.createElement('canvas');\n const context = canvas.getContext('2d');\n context.font = computedStyle.font || getFontFromComputedStyle();\n return context.measureText(text).width;\n};\n/**\n * Get the inner dimensions of an element\n *\n * @param {HTMLElement} node HTML element to calculate the inner dimensions for\n */\nexport const innerDimensions = (node) => {\n const computedStyle = getComputedStyle(node);\n let width = node.clientWidth; // width with padding\n let height = node.clientHeight; // height with padding\n height -= parseFloat(computedStyle.paddingTop) + parseFloat(computedStyle.paddingBottom);\n width -= parseFloat(computedStyle.paddingLeft) + parseFloat(computedStyle.paddingRight);\n return { height, width };\n};\n/**\n * This function is a helper for truncating text content on the left, leaving the right side of the content in view\n *\n * @param {HTMLElement} node HTML element\n * @param {string} value The original text value\n */\nexport const trimLeft = (node, value) => {\n const availableWidth = innerDimensions(node).width;\n let newValue = value;\n if (getTextWidth(value, node) > availableWidth) {\n // we have text overflow, trim the text to the left and add ... in the front until it fits\n while (getTextWidth(`...${newValue}`, node) > availableWidth) {\n newValue = newValue.substring(1);\n }\n // replace text with our truncated text\n if (node.value) {\n node.value = `...${newValue}`;\n }\n else {\n node.innerText = `...${newValue}`;\n }\n }\n else {\n if (node.value) {\n node.value = value;\n }\n else {\n node.innerText = value;\n }\n }\n};\n/**\n * @param {string[]} events - Operations to prevent when disabled\n */\nexport const preventedEvents = (events) => events.reduce((handlers, eventToPrevent) => (Object.assign(Object.assign({}, handlers), { [eventToPrevent]: (event) => {\n event.preventDefault();\n } })), {});\n/**\n * @param {React.RefObject<any>[]} timeoutRefs - Timeout refs to clear\n */\nexport const clearTimeouts = (timeoutRefs) => {\n timeoutRefs.forEach((ref) => {\n if (ref.current) {\n clearTimeout(ref.current);\n }\n });\n};\n/**\n * Helper function to get the language direction of a given element, useful for figuring out if left-to-right\n * or right-to-left specific logic should be applied.\n *\n * @param {HTMLElement} targetElement - Element the helper will get the language direction of\n * @param {'ltr' | 'rtl'} defaultDirection - Language direction to assume if one can't be determined, defaults to 'ltr'\n * @returns {'ltr' | 'rtl'} - The language direction of the target element\n */\nexport const getLanguageDirection = (targetElement, defaultDirection = 'ltr') => {\n if (!targetElement) {\n return defaultDirection;\n }\n const computedDirection = getComputedStyle(targetElement).getPropertyValue('direction');\n if (['ltr', 'rtl'].includes(computedDirection)) {\n return computedDirection;\n }\n return defaultDirection;\n};\n//# sourceMappingURL=util.js.map","/**\n * @param element\n */\nexport default function getBoundingClientRect(element) {\n const rect = element.getBoundingClientRect();\n return {\n width: rect.width,\n height: rect.height,\n top: rect.top,\n right: rect.right,\n bottom: rect.bottom,\n left: rect.left,\n x: rect.left,\n y: rect.top\n };\n}\n//# sourceMappingURL=getBoundingClientRect.js.map","// @ts-nocheck\n/* :: import type { Window } from '../types'; */\n/* :: declare function getWindow(node: Node | Window): Window; */\n/**\n * @param node\n */\nexport default function getWindow(node) {\n if (node.toString() !== '[object Window]') {\n const ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n }\n return node;\n}\n//# sourceMappingURL=getWindow.js.map","// @ts-nocheck\nimport getWindow from './getWindow';\n/**\n * @param node\n */\nexport default function getWindowScroll(node) {\n const win = getWindow(node);\n const scrollLeft = win.pageXOffset;\n const scrollTop = win.pageYOffset;\n return {\n scrollLeft,\n scrollTop\n };\n}\n//# sourceMappingURL=getWindowScroll.js.map","// @ts-nocheck\nimport getWindow from './getWindow';\n/* :: declare function isElement(node: mixed): boolean %checks(node instanceof\n Element); */\n/**\n * @param node\n */\nfunction isElement(node) {\n const OwnElement = getWindow(node).Element;\n return node instanceof OwnElement || node instanceof Element;\n}\n/* :: declare function isHTMLElement(node: mixed): boolean %checks(node instanceof\n HTMLElement); */\n/**\n * @param node\n */\nfunction isHTMLElement(node) {\n const OwnElement = getWindow(node).HTMLElement;\n return node instanceof OwnElement || node instanceof HTMLElement;\n}\nexport { isElement, isHTMLElement };\n//# sourceMappingURL=instanceOf.js.map","// @ts-nocheck\n/**\n * @param element\n */\nexport default function getHTMLElementScroll(element) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n}\n//# sourceMappingURL=getHTMLElementScroll.js.map","// @ts-nocheck\nimport getWindowScroll from './getWindowScroll';\nimport getWindow from './getWindow';\nimport { isHTMLElement } from './instanceOf';\nimport getHTMLElementScroll from './getHTMLElementScroll';\n/**\n * @param node\n */\nexport default function getNodeScroll(node) {\n if (node === getWindow(node) || !isHTMLElement(node)) {\n return getWindowScroll(node);\n }\n else {\n return getHTMLElementScroll(node);\n }\n}\n//# sourceMappingURL=getNodeScroll.js.map","/**\n * @param element\n */\nexport default function getNodeName(element) {\n return element ? (element.nodeName || '').toLowerCase() : null;\n}\n//# sourceMappingURL=getNodeName.js.map","// @ts-nocheck\nimport { isElement } from './instanceOf';\n/**\n * @param element\n */\nexport default function getDocumentElement(element) {\n // $FlowFixMe: assume body is always available\n return (isElement(element) ? element.ownerDocument : element.document).documentElement;\n}\n//# sourceMappingURL=getDocumentElement.js.map","// @ts-nocheck\nimport getBoundingClientRect from './getBoundingClientRect';\nimport getDocumentElement from './getDocumentElement';\nimport getWindowScroll from './getWindowScroll';\n/**\n * @param element\n */\nexport default function getWindowScrollBarX(element) {\n // If <html> 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 <html>\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}\n//# sourceMappingURL=getWindowScrollBarX.js.map","// @ts-nocheck\nimport getWindow from './getWindow';\n/**\n * @param element\n */\nexport default function getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}\n//# sourceMappingURL=getComputedStyle.js.map","// @ts-nocheck\nimport getComputedStyle from './getComputedStyle';\n/**\n * @param element\n */\nexport default function isScrollParent(element) {\n // Firefox wants us to check `-x` and `-y` variations as well\n const { overflow, overflowX, overflowY } = getComputedStyle(element);\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}\n//# sourceMappingURL=isScrollParent.js.map","import getBoundingClientRect from './getBoundingClientRect';\nimport getNodeScroll from './getNodeScroll';\nimport getNodeName from './getNodeName';\nimport { isHTMLElement } from './instanceOf';\nimport getWindowScrollBarX from './getWindowScrollBarX';\nimport getDocumentElement from './getDocumentElement';\nimport isScrollParent from './isScrollParent';\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 * @param elementOrVirtualElement\n * @param offsetParent\n * @param isFixed\n */\nexport default function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed = false) {\n const documentElement = getDocumentElement(offsetParent);\n const rect = getBoundingClientRect(elementOrVirtualElement);\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n let scroll = { scrollLeft: 0, scrollTop: 0 };\n let offsets = { x: 0, y: 0 };\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 if (isHTMLElement(offsetParent)) {\n offsets = getBoundingClientRect(offsetParent);\n offsets.x += offsetParent.clientLeft;\n offsets.y += offsetParent.clientTop;\n }\n else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\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}\n//# sourceMappingURL=getCompositeRect.js.map","// Returns the layout rect of an element relative to its offsetParent. Layout\n// means it doesn't take into account transforms.\n/**\n * @param element\n */\nexport default function getLayoutRect(element) {\n return {\n x: element.offsetLeft,\n y: element.offsetTop,\n width: element.offsetWidth,\n height: element.offsetHeight\n };\n}\n//# sourceMappingURL=getLayoutRect.js.map","// @ts-nocheck\nimport getNodeName from './getNodeName';\nimport getDocumentElement from './getDocumentElement';\n/**\n * @param element\n */\nexport default function getParentNode(element) {\n if (getNodeName(element) === 'html') {\n return element;\n }\n return (\n // $FlowFixMe: this is a quicker (but less type safe) way to save quite some bytes from the bundle\n element.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n element.parentNode || // DOM Element detected\n // $FlowFixMe: need a better way to handle this...\n element.host || // ShadowRoot detected\n // $FlowFixMe: HTMLElement is a Node\n getDocumentElement(element) // fallback\n );\n}\n//# sourceMappingURL=getParentNode.js.map","// @ts-nocheck\nimport getParentNode from './getParentNode';\nimport isScrollParent from './isScrollParent';\nimport getNodeName from './getNodeName';\nimport { isHTMLElement } from './instanceOf';\n/**\n * @param node\n */\nexport default function getScrollParent(node) {\n if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {\n // $FlowFixMe: assume body is always available\n return node.ownerDocument.body;\n }\n if (isHTMLElement(node) && isScrollParent(node)) {\n return node;\n }\n return getScrollParent(getParentNode(node));\n}\n//# sourceMappingURL=getScrollParent.js.map","// @ts-nocheck\nimport getScrollParent from './getScrollParent';\nimport getParentNode from './getParentNode';\nimport getNodeName from './getNodeName';\nimport getWindow from './getWindow';\nimport isScrollParent from './isScrollParent';\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/**\n * @param element\n * @param list\n */\nexport default function listScrollParents(element, list = []) {\n const scrollParent = getScrollParent(element);\n const isBody = getNodeName(scrollParent) === 'body';\n const win = getWindow(scrollParent);\n const target = isBody\n ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : [])\n : scrollParent;\n const updatedList = list.concat(target);\n return isBody\n ? updatedList // $FlowFixMe: isBody tells us target will be an HTMLElement here\n : updatedList.concat(listScrollParents(getParentNode(target)));\n}\n//# sourceMappingURL=listScrollParents.js.map","// @ts-nocheck\nimport getNodeName from './getNodeName';\n/**\n * @param element\n */\nexport default function isTableElement(element) {\n return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;\n}\n//# sourceMappingURL=isTableElement.js.map","// @ts-nocheck\nimport getWindow from './getWindow';\nimport getNodeName from './getNodeName';\nimport getComputedStyle from './getComputedStyle';\nimport { isHTMLElement } from './instanceOf';\nimport isTableElement from './isTableElement';\nimport getParentNode from './getParentNode';\nimport getDocumentElement from './getDocumentElement';\n/**\n * @param element\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 const offsetParent = element.offsetParent;\n if (offsetParent) {\n const html = getDocumentElement(offsetParent);\n if (getNodeName(offsetParent) === 'body' &&\n getComputedStyle(offsetParent).position === 'static' &&\n getComputedStyle(html).position !== 'static') {\n return html;\n }\n }\n return offsetParent;\n}\n// `.offsetParent` reports `null` for fixed elements, while absolute elements\n// return the containing block\n/**\n * @param element\n */\nfunction getContainingBlock(element) {\n let currentNode = getParentNode(element);\n while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) {\n const css = getComputedStyle(currentNode);\n // This is non-exhaustive but covers the most common CSS properties that\n // create a containing block.\n if (css.transform !== 'none' || css.perspective !== 'none' || (css.willChange && css.willChange !== 'auto')) {\n return currentNode;\n }\n else {\n currentNode = currentNode.parentNode;\n }\n }\n return null;\n}\n// Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\n/**\n * @param element\n */\nexport default function getOffsetParent(element) {\n const window = getWindow(element);\n let offsetParent = getTrueOffsetParent(element);\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n if (offsetParent && getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static') {\n return window;\n }\n return offsetParent || getContainingBlock(element) || window;\n}\n//# sourceMappingURL=getOffsetParent.js.map","// @ts-nocheck\nexport const top = 'top';\nexport const bottom = 'bottom';\nexport const right = 'right';\nexport const left = 'left';\nexport const auto = 'auto';\nexport const basePlacements = [top, bottom, right, left];\nexport const start = 'start';\nexport const end = 'end';\nexport const clippingParents = 'clippingParents';\nexport const viewport = 'viewport';\nexport const popper = 'popper';\nexport const reference = 'reference';\nexport const variationPlacements = basePlacements.reduce((acc, placement) => acc.concat([`${placement}-${start}`, `${placement}-${end}`]), []);\nexport const placements = [...basePlacements, auto].reduce((acc, placement) => acc.concat([placement, `${placement}-${start}`, `${placement}-${end}`]), []);\n// modifiers that need to read the DOM\nexport const beforeRead = 'beforeRead';\nexport const read = 'read';\nexport const afterRead = 'afterRead';\n// pure-logic modifiers\nexport const beforeMain = 'beforeMain';\nexport const main = 'main';\nexport const afterMain = 'afterMain';\n// modifier with the purpose to write to the DOM (or write into a framework state)\nexport const beforeWrite = 'beforeWrite';\nexport const write = 'write';\nexport const afterWrite = 'afterWrite';\nexport const modifierPhases = [\n beforeRead,\n read,\n afterRead,\n beforeMain,\n main,\n afterMain,\n beforeWrite,\n write,\n afterWrite\n];\n//# sourceMappingURL=enums.js.map","import { modifierPhases } from '../enums';\n// source: https://stackoverflow.com/questions/49875255\n/**\n * @param modifiers\n */\nfunction order(modifiers) {\n const map = new Map();\n const visited = new Set();\n const result = [];\n modifiers.forEach(modifier => {\n map.set(modifier.name, modifier);\n });\n // On visiting object, check for its dependencies and visit them recursively\n /**\n * @param modifier\n */\n function sort(modifier) {\n visited.add(modifier.name);\n const requires = [...(modifier.requires || []), ...(modifier.requiresIfExists || [])];\n requires.forEach(dep => {\n if (!visited.has(dep)) {\n const depModifier = map.get(dep);\n if (depModifier) {\n sort(depModifier);\n }\n }\n });\n result.push(modifier);\n }\n modifiers.forEach(modifier => {\n if (!visited.has(modifier.name)) {\n // check for visited object\n sort(modifier);\n }\n });\n return result;\n}\n/**\n * @param modifiers\n */\nexport default function orderModifiers(modifiers) {\n // order based on dependencies\n const orderedModifiers = order(modifiers);\n // order based on phase\n return modifierPhases.reduce((acc, phase) => acc.concat(orderedModifiers.filter(modifier => modifier.phase === phase)), []);\n}\n//# sourceMappingURL=orderModifiers.js.map","// @ts-nocheck\n/**\n * @param fn\n */\nexport default function debounce(fn) {\n let pending;\n return () => {\n if (!pending) {\n pending = new Promise(resolve => {\n Promise.resolve().then(() => {\n pending = undefined;\n resolve(fn());\n });\n });\n }\n return pending;\n };\n}\n//# sourceMappingURL=debounce.js.map","/**\n * @param placement\n */\nexport default function getBasePlacement(placement) {\n return placement.split('-')[0];\n}\n//# sourceMappingURL=getBasePlacement.js.map","/**\n * @param modifiers\n */\nexport default function mergeByName(modifiers) {\n const merged = modifiers.reduce((merged, current) => {\n const existing = merged[current.name];\n merged[current.name] = existing\n ? Object.assign(Object.assign(Object.assign({}, existing), current), { options: Object.assign(Object.assign({}, existing.options), current.options), data: Object.assign(Object.assign({}, existing.data), current.data) }) : current;\n return merged;\n }, {});\n // IE11 does not support Object.values\n return Object.keys(merged).map(key => merged[key]);\n}\n//# sourceMappingURL=mergeByName.js.map","// @ts-nocheck\nimport getWindow from './getWindow';\nimport getDocumentElement from './getDocumentElement';\nimport getWindowScrollBarX from './getWindowScrollBarX';\n/**\n * @param element\n */\nexport default function getViewportRect(element) {\n const win = getWindow(element);\n const html = getDocumentElement(element);\n const visualViewport = win.visualViewport;\n let width = html.clientWidth;\n let height = html.clientHeight;\n let x = 0;\n let y = 0;\n // NB: This isn't supported on iOS <= 12. If the keyboard is open, the popper\n // can be obscured underneath it.\n // Also, `html.clientHeight` adds the bottom bar height in Safari iOS, even\n // if it isn't open, so if this isn't available, the popper will be detected\n // to overflow the bottom of the screen too early.\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n // Uses Layout Viewport (like Chrome; Safari does not currently)\n // In Chrome, it returns a value very close to 0 (+/-) but contains rounding\n // errors due to floating point numbers, so we need to check precision.\n // Safari returns a number <= 0, usually < -1 when pinch-zoomed\n // Feature detection fails in mobile emulation mode in Chrome.\n // Math.abs(win.innerWidth / visualViewport.scale - visualViewport.width) <\n // 0.001\n // Fallback here: \"Not Safari\" userAgent\n if (!/^((?!chrome|android).)*safari/i.test(navigator.userAgent)) {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n return {\n width,\n height,\n x: x + getWindowScrollBarX(element),\n y\n };\n}\n//# sourceMappingURL=getViewportRect.js.map","import getDocumentElement from './getDocumentElement';\nimport getComputedStyle from './getComputedStyle';\nimport getWindowScrollBarX from './getWindowScrollBarX';\nimport getWindowScroll from './getWindowScroll';\n// Gets the entire size of the scrollable document area, even extending outside\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable\n/**\n * @param element\n */\nexport default function getDocumentRect(element) {\n const html = getDocumentElement(element);\n const winScroll = getWindowScroll(element);\n const body = element.ownerDocument.body;\n const width = Math.max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);\n const height = Math.max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);\n let x = -winScroll.scrollLeft + getWindowScrollBarX(element);\n const y = -winScroll.scrollTop;\n if (getComputedStyle(body || html).direction === 'rtl') {\n x += Math.max(html.clientWidth, body ? body.clientWidth : 0) - width;\n }\n return { width, height, x, y };\n}\n//# sourceMappingURL=getDocumentRect.js.map","// @ts-nocheck\n/**\n * @param parent\n * @param child\n */\nexport default function contains(parent, child) {\n // $FlowFixMe: hasOwnProperty doesn't seem to work in tests\n const isShadow = Boolean(child.getRootNode && child.getRootNode().host);\n // First, attempt with faster native method\n if (parent.contains(child)) {\n return true;\n } // then fallback to custom implementation with Shadow DOM support\n else if (isShadow) {\n let next = child;\n do {\n if (next && parent.isSameNode(next)) {\n return true;\n }\n // $FlowFixMe: need a better way to handle this...\n next = next.parentNode || next.host;\n } while (next);\n }\n // Give up, the result is false\n return false;\n}\n//# sourceMappingURL=contains.js.map","/**\n * @param rect\n */\nexport default function rectToClientRect(rect) {\n return Object.assign(Object.assign({}, rect), { left: rect.x, top: rect.y, right: rect.x + rect.width, bottom: rect.y + rect.height });\n}\n//# sourceMappingURL=rectToClientRect.js.map","import { viewport } from '../enums';\nimport getViewportRect from './getViewportRect';\nimport getDocumentRect from './getDocumentRect';\nimport listScrollParents from './listScrollParents';\nimport getOffsetParent from './getOffsetParent';\nimport getDocumentElement from './getDocumentElement';\nimport getComputedStyle from './getComputedStyle';\nimport { isElement, isHTMLElement } from './instanceOf';\nimport getBoundingClientRect from './getBoundingClientRect';\nimport getParentNode from './getParentNode';\nimport contains from './contains';\nimport getNodeName from './getNodeName';\nimport rectToClientRect from '../utils/rectToClientRect';\n/**\n * @param element\n */\nfunction getInnerBoundingClientRect(element) {\n const rect = getBoundingClientRect(element);\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/**\n * @param element\n * @param clippingParent\n */\nfunction getClientRectFromMixedType(element, clippingParent) {\n return clippingParent === viewport\n ? rectToClientRect(getViewportRect(element))\n : isHTMLElement(clippingParent)\n ? getInnerBoundingClientRect(clippingParent)\n : rectToClientRect(getDocumentRect(getDocumentElement(element)));\n}\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 * @param element\n */\nfunction getClippingParents(element) {\n const clippingParents = listScrollParents(getParentNode(element));\n const canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0;\n const clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;\n if (!isElement(clipperElement)) {\n return [];\n }\n // $FlowFixMe: https://github.com/facebook/flow/issues/1414\n return clippingParents.filter(clippingParent => 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 * @param element\n * @param boundary\n * @param rootBoundary\n */\nexport default function getClippingRect(element, boundary, rootBoundary) {\n const mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);\n const clippingParents = [...mainClippingParents, rootBoundary];\n const firstClippingParent = clippingParents[0];\n const clippingRect = clippingParents.reduce((accRect, clippingParent) => {\n const rect = getClientRectFromMixedType(element, clippingParent);\n accRect.top = Math.max(rect.top, accRect.top);\n accRect.right = Math.min(rect.right, accRect.right);\n accRect.bottom = Math.min(rect.bottom, accRect.bottom);\n accRect.left = Math.max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromMixedType(element, firstClippingParent));\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}\n//# sourceMappingURL=getClippingRect.js.map","/**\n * @param placement\n */\nexport default function getVariation(placement) {\n return placement.split('-')[1];\n}\n//# sourceMappingURL=getVariation.js.map","/**\n * @param placement\n */\nexport default function getMainAxisFromPlacement(placement) {\n return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';\n}\n//# sourceMappingURL=getMainAxisFromPlacement.js.map","// @ts-nocheck\nimport getBasePlacement from './getBasePlacement';\nimport getVariation from './getVariation';\nimport getMainAxisFromPlacement from './getMainAxisFromPlacement';\nimport { top, right, bottom, left, start, end } from '../enums';\n/**\n *\n */\nexport default function computeOffsets({ reference, element, placement }) {\n const basePlacement = placement ? getBasePlacement(placement) : null;\n const variation = placement ? getVariation(placement) : null;\n const commonX = reference.x + reference.width / 2 - element.width / 2;\n const commonY = reference.y + reference.height / 2 - element.height / 2;\n let offsets;\n switch (basePlacement) {\n case top:\n offsets = {\n x: commonX,\n y: reference.y - element.height\n };\n break;\n case bottom:\n offsets = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n case right:\n offsets = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n case left:\n offsets = {\n x: reference.x - element.width,\n y: commonY\n };\n break;\n default:\n offsets = {\n x: reference.x,\n y: reference.y\n };\n }\n const mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;\n if (mainAxis != null) {\n const len = mainAxis === 'y' ? 'height' : 'width';\n switch (variation) {\n case start:\n offsets[mainAxis] = Math.floor(offsets[mainAxis]) - Math.floor(reference[len] / 2 - element[len] / 2);\n break;\n case end:\n offsets[mainAxis] = Math.floor(offsets[mainAxis]) + Math.ceil(reference[len] / 2 - element[len] / 2);\n break;\n default:\n }\n }\n return offsets;\n}\n//# sourceMappingURL=computeOffsets.js.map","/**\n *\n */\nexport default function getFreshSideObject() {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n}\n//# sourceMappingURL=getFreshSideObject.js.map","import getFreshSideObject from './getFreshSideObject';\n/**\n * @param paddingObject\n */\nexport default function mergePaddingObject(paddingObject) {\n return Object.assign(Object.assign({}, getFreshSideObject()), paddingObject);\n}\n//# sourceMappingURL=mergePaddingObject.js.map","// @ts-nocheck\n/**\n * @param value\n * @param keys\n */\nexport default function expandToHashMap(value, keys) {\n return keys.reduce((hashMap, key) => {\n hashMap[key] = value;\n return hashMap;\n }, {});\n}\n//# sourceMappingURL=expandToHashMap.js.map","import getBoundingClientRect from '../dom-utils/getBoundingClientRect';\nimport getClippingRect from '../dom-utils/getClippingRect';\nimport getDocumentElement from '../dom-utils/getDocumentElement';\nimport computeOffsets from './computeOffsets';\nimport rectToClientRect from './rectToClientRect';\nimport { clippingParents, reference, popper, bottom, top, right, basePlacements, viewport } from '../enums';\nimport { isElement } from '../dom-utils/instanceOf';\nimport mergePaddingObject from './mergePaddingObject';\nimport expandToHashMap from './expandToHashMap';\n/**\n * @param state\n * @param options\n */\nexport default function detectOverflow(state, options = {}) {\n const { placement = state.placement, boundary = clippingParents, rootBoundary = viewport, elementContext = popper, altBoundary = false, padding = 0 } = options;\n const paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n const altContext = elementContext === popper ? reference : popper;\n const referenceElement = state.elements.reference;\n const popperRect = state.rects.popper;\n const element = state.elements[altBoundary ? altContext : elementContext];\n const clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary);\n const referenceClientRect = getBoundingClientRect(referenceElement);\n const popperOffsets = computeOffsets({\n reference: referenceClientRect,\n element: popperRect,\n strategy: 'absolute',\n placement\n });\n const popperClientRect = rectToClientRect(Object.assign(Object.assign({}, popperRect), popperOffsets));\n const elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect;\n // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n const 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 const offsetData = state.modifiersData.offset;\n // Offsets can be applied only to the popper element\n if (elementContext === popper && offsetData) {\n const offset = offsetData[placement];\n Object.keys(overflowOffsets).forEach(key => {\n const multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;\n const axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';\n overflowOffsets[key] += offset[axis] * multiply;\n });\n }\n return overflowOffsets;\n}\n//# sourceMappingURL=detectOverflow.js.map","import getCompositeRect from './dom-utils/getCompositeRect';\nimport getLayoutRect from './dom-utils/getLayoutRect';\nimport listScrollParents from './dom-utils/listScrollParents';\nimport getOffsetParent from './dom-utils/getOffsetParent';\nimport getComputedStyle from './dom-utils/getComputedStyle';\nimport orderModifiers from './utils/orderModifiers';\nimport debounce from './utils/debounce';\nimport validateModifiers from './utils/validateModifiers';\nimport uniqueBy from './utils/uniqueBy';\nimport getBasePlacement from './utils/getBasePlacement';\nimport mergeByName from './utils/mergeByName';\nimport detectOverflow from './utils/detectOverflow';\nimport { isElement } from './dom-utils/instanceOf';\nimport { auto } from './enums';\nexport * from './types';\nexport * from './enums';\nconst INVALID_ELEMENT_ERROR = 'Popper: Invalid reference or popper argument provided. They must be either a DOM element or virtual element.';\nconst INFINITE_LOOP_ERROR = 'Popper: An infinite loop in the modifiers cycle has been detected! The cycle has been interrupted to prevent a browser crash.';\nconst DEFAULT_OPTIONS = {\n placement: 'bottom',\n modifiers: [],\n strategy: 'absolute'\n};\n/**\n * @param args\n */\nfunction areValidElements(...args) {\n return !args.some(element => !(element && typeof element.getBoundingClientRect === 'function'));\n}\n/**\n * @param generatorOptions\n */\nexport function popperGenerator(generatorOptions = {}) {\n const { defaultModifiers = [], defaultOptions = DEFAULT_OPTIONS } = generatorOptions;\n return function createPopper(reference, popper, options = defaultOptions) {\n let state = {\n placement: 'bottom',\n orderedModifiers: [],\n options: Object.assign(Object.assign({}, DEFAULT_OPTIONS), defaultOptions),\n modifiersData: {},\n elements: {\n reference,\n popper\n },\n attributes: {},\n styles: {}\n };\n let effectCleanupFns = [];\n let isDestroyed = false;\n const instance = {\n state,\n setOptions(options) {\n cleanupModifierEffects();\n state.options = Object.assign(Object.assign(Object.assign({}, defaultOptions), state.options), options);\n state.scrollParents = {\n reference: isElement(reference)\n ? listScrollParents(reference)\n : reference.contextElement\n ? listScrollParents(reference.contextElement)\n : [],\n popper: listScrollParents(popper)\n };\n // Orders the modifiers based on their dependencies and `phase`\n // properties\n const orderedModifiers = orderModifiers(mergeByName([...defaultModifiers, ...state.options.modifiers]));\n // Strip out disabled modifiers\n state.orderedModifiers = orderedModifiers.filter(m => m.enabled);\n // Validate the provided modifiers so that the consumer will get warned\n // if one of the modifiers is invalid for any reason\n if (false /* __DEV__*/) {\n const modifiers = uniqueBy([...orderedModifiers, ...state.options.modifiers], ({ name }) => name);\n validateModifiers(modifiers);\n if (getBasePlacement(state.options.placement) === auto) {\n const flipModifier = state.orderedModifiers.find(({ name }) => name === 'flip');\n if (!flipModifier) {\n console.error(['Popper: \"auto\" placements require the \"flip\" modifier be', 'present and enabled to work.'].join(' '));\n }\n }\n const { marginTop, marginRight, marginBottom, marginLeft } = getComputedStyle(popper);\n // We no longer take into account `margins` on the popper, and it can\n // cause bugs with positioning, so we'll warn the consumer\n if ([marginTop, marginRight, marginBottom, marginLeft].some(margin => parseFloat(margin))) {\n console.warn([\n 'Popper: CSS \"margin\" styles cannot be used to apply padding',\n 'between the popper and its reference element or boundary.',\n 'To replicate margin, use the `offset` modifier, as well as',\n 'the `padding` option in the `preventOverflow` and `flip`',\n 'modifiers.'\n ].join(' '));\n }\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() {\n if (isDestroyed) {\n return;\n }\n const { reference, popper } = state.elements;\n // Don't proceed if `reference` or `popper` are not valid elements\n // anymore\n if (!areValidElements(reference, popper)) {\n if (false /* __DEV__*/) {\n console.error(INVALID_ELEMENT_ERROR);\n }\n return;\n }\n // Store the reference and popper rects to be read by modifiers\n state.rects = {\n reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'),\n popper: getLayoutRect(popper)\n };\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 state.reset = false;\n state.placement = state.options.placement;\n // 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 state.orderedModifiers.forEach(modifier => (state.modifiersData[modifier.name] = Object.assign({}, modifier.data)));\n let __debug_loops__ = 0;\n for (let index = 0; index < state.orderedModifiers.length; index++) {\n if (false /* __DEV__*/) {\n __debug_loops__ += 1;\n if (__debug_loops__ > 100) {\n console.error(INFINITE_LOOP_ERROR);\n break;\n }\n }\n if (state.reset === true) {\n state.reset = false;\n index = -1;\n continue;\n }\n const { fn, options = {}, name } = state.orderedModifiers[index];\n if (typeof fn === 'function') {\n state = fn({ state, options, name, instance }) || 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(() => new Promise(resolve => {\n instance.forceUpdate();\n resolve(state);\n })),\n destroy() {\n cleanupModifierEffects();\n isDestroyed = true;\n }\n };\n if (!areValidElements(reference, popper)) {\n if (false /* __DEV__*/) {\n console.error(INVALID_ELEMENT_ERROR);\n }\n return instance;\n }\n instance.setOptions(options).then(state => {\n if (!isDestroyed && options.onFirstUpdate) {\n options.onFirstUpdate(state);\n }\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 *\n */\n function runModifierEffects() {\n state.orderedModifiers.forEach(({ name, options = {}, effect }) => {\n if (typeof effect === 'function') {\n const cleanupFn = effect({ state, name, instance, options });\n const noopFn = () => { };\n effectCleanupFns.push(cleanupFn || noopFn);\n }\n });\n }\n /**\n *\n */\n function cleanupModifierEffects() {\n effectCleanupFns.forEach(fn => fn());\n effectCleanupFns = [];\n }\n return instance;\n };\n}\nexport const createPopper = popperGenerator();\n// eslint-disable-next-line import/no-unused-modules\nexport { detectOverflow };\n//# sourceMappingURL=index.js.map","import getWindow from '../dom-utils/getWindow';\nconst passive = { passive: true };\n/**\n *\n */\nfunction effect({ state, instance, options }) {\n const { scroll = true, resize = true } = options;\n const window = getWindow(state.elements.popper);\n const scrollParents = [...state.scrollParents.reference, ...state.scrollParents.popper];\n if (scroll) {\n scrollParents.forEach(scrollParent => {\n scrollParent.addEventListener('scroll', instance.update, passive);\n });\n }\n if (resize) {\n window.addEventListener('resize', instance.update, passive);\n }\n return () => {\n if (scroll) {\n scrollParents.forEach(scrollParent => {\n scrollParent.removeEventListener('scroll', instance.update, passive);\n });\n }\n if (resize) {\n window.removeEventListener('resize', instance.update, passive);\n }\n };\n}\nexport default {\n name: 'eventListeners',\n enabled: true,\n phase: 'write',\n fn: () => { },\n effect,\n data: {}\n};\n//# sourceMappingURL=eventListeners.js.map","import computeOffsets from '../utils/computeOffsets';\n/**\n *\n */\nfunction popperOffsets({ state, 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}\nexport default {\n name: 'popperOffsets',\n enabled: true,\n phase: 'read',\n fn: popperOffsets,\n data: {}\n};\n//# sourceMappingURL=popperOffsets.js.map","import { top, left, right, bottom } from '../enums';\nimport getOffsetParent from '../dom-utils/getOffsetParent';\nimport getWindow from '../dom-utils/getWindow';\nimport getDocumentElement from '../dom-utils/getDocumentElement';\nimport getComputedStyle from '../dom-utils/getComputedStyle';\nimport getBasePlacement from '../utils/getBasePlacement';\nconst unsetSides = {\n top: 'auto',\n right: 'auto',\n bottom: 'auto',\n left: 'auto'\n};\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/**\n *\n */\nfunction roundOffsets({ x, y }) {\n const win = window;\n const dpr = win.devicePixelRatio || 1;\n return {\n x: Math.round(x * dpr) / dpr || 0,\n y: Math.round(y * dpr) / dpr || 0\n };\n}\n/**\n *\n */\nexport function mapToStyles({ popper, popperRect, placement, offsets, position, gpuAcceleration, adaptive }) {\n let { x, y } = roundOffsets(offsets);\n const hasX = offsets.hasOwnProperty('x');\n const hasY = offsets.hasOwnProperty('y');\n let sideX = left;\n let sideY = top;\n const win = window;\n if (adaptive) {\n let offsetParent = getOffsetParent(popper);\n if (offsetParent === getWindow(popper)) {\n offsetParent = getDocumentElement(popper);\n }\n // $FlowFixMe: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it\n /* :: offsetParent = (offsetParent: Element); */\n if (placement === top) {\n sideY = bottom;\n y -= offsetParent.clientHeight - popperRect.height;\n y *= gpuAcceleration ? 1 : -1;\n }\n if (placement === left) {\n sideX = right;\n x -= offsetParent.clientWidth - popperRect.width;\n x *= gpuAcceleration ? 1 : -1;\n }\n }\n const commonStyles = Object.assign({ position }, (adaptive && unsetSides));\n if (gpuAcceleration) {\n return Object.assign(Object.assign({}, commonStyles), { [sideY]: hasY ? '0' : '', [sideX]: hasX ? '0' : '', \n // Layer acceleration can disable subpixel rendering which causes slightly\n // blurry text on low PPI displays, so we want to use 2D transforms\n // instead\n transform: (win.devicePixelRatio || 1) < 2 ? `translate(${x}px, ${y}px)` : `translate3d(${x}px, ${y}px, 0)` });\n }\n return Object.assign(Object.assign({}, commonStyles), { [sideY]: hasY ? `${y}px` : '', [sideX]: hasX ? `${x}px` : '', transform: '' });\n}\n/**\n *\n */\nfunction computeStyles({ state, options }) {\n const { gpuAcceleration = true, adaptive = true } = options;\n if (false /* __DEV__*/) {\n const transitionProperty = getComputedStyle(state.elements.popper).transitionProperty || '';\n if (adaptive &&\n ['transform', 'top', 'right', 'bottom', 'left'].some(property => transitionProperty.indexOf(property) >= 0)) {\n console.warn([\n 'Popper: Detected CSS transitions on at least one of the following',\n 'CSS properties: \"transform\", \"top\", \"right\", \"bottom\", \"left\".',\n '\\n\\n',\n 'Disable the \"computeStyles\" modifier\\'s `adaptive` option to allow',\n 'for smooth transitions, or remove these properties from the CSS',\n 'transition declaration on the popper element if only transitioning',\n 'opacity or background-color for example.',\n '\\n\\n',\n 'We recommend using the popper element as a wrapper around an inner',\n 'element that can have any CSS property transitioned for animations.'\n ].join(' '));\n }\n }\n const commonStyles = {\n placement: getBasePlacement(state.placement),\n popper: state.elements.popper,\n popperRect: state.rects.popper,\n gpuAcceleration\n };\n if (state.modifiersData.popperOffsets != null) {\n state.styles.popper = Object.assign(Object.assign({}, state.styles.popper), mapToStyles(Object.assign(Object.assign({}, commonStyles), { offsets: state.modifiersData.popperOffsets, position: state.options.strategy, adaptive })));\n }\n if (state.modifiersData.arrow != null) {\n state.styles.arrow = Object.assign(Object.assign({}, state.styles.arrow), mapToStyles(Object.assign(Object.assign({}, commonStyles), { offsets: state.modifiersData.arrow, position: 'absolute', adaptive: false })));\n }\n state.attributes.popper = Object.assign(Object.assign({}, state.attributes.popper), { 'data-popper-placement': state.placement });\n}\nexport default {\n name: 'computeStyles',\n enabled: true,\n phase: 'beforeWrite',\n fn: computeStyles,\n data: {}\n};\n//# sourceMappingURL=computeStyles.js.map","import getNodeName from '../dom-utils/getNodeName';\nimport { isHTMLElement } from '../dom-utils/instanceOf';\n// This modifier takes the styles prepared by the `computeStyles` modifier\n// and applies them to the HTMLElements such as popper and arrow\n/**\n *\n */\nfunction applyStyles({ state }) {\n Object.keys(state.elements).forEach(name => {\n const style = state.styles[name] || {};\n const attributes = state.attributes[name] || {};\n const element = state.elements[name];\n // arrow is optional + virtual elements\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n }\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\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(name => {\n const value = attributes[name];\n if (value === false) {\n element.removeAttribute(name);\n }\n else {\n element.setAttribute(name, value === true ? '' : value);\n }\n });\n });\n}\n/**\n *\n */\nfunction effect({ state }) {\n const 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 if (state.elements.arrow) {\n Object.assign(state.elements.arrow.style, initialStyles.arrow);\n }\n return () => {\n Object.keys(state.elements).forEach(name => {\n const element = state.elements[name];\n const attributes = state.attributes[name] || {};\n const styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]);\n // Set all values to an empty string to unset them\n const style = styleProperties.reduce((style, property) => {\n style[property] = '';\n return style;\n }, {});\n // arrow is optional + virtual elements\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n }\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\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(attribute => {\n element.removeAttribute(attribute);\n });\n });\n };\n}\nexport default {\n name: 'applyStyles',\n enabled: true,\n phase: 'write',\n fn: applyStyles,\n effect,\n requires: ['computeStyles']\n};\n//# sourceMappingURL=applyStyles.js.map","import getBasePlacement from '../utils/getBasePlacement';\nimport { top, left, right, placements } from '../enums';\n/**\n * @param placement\n * @param rects\n * @param offset\n */\nexport function distanceAndSkiddingToXY(placement, rects, offset) {\n const basePlacement = getBasePlacement(placement);\n const invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1;\n let [skidding, distance] = typeof offset === 'function'\n ? offset(Object.assign(Object.assign({}, rects), { placement }))\n : offset;\n skidding = skidding || 0;\n distance = (distance || 0) * invertDistance;\n return [left, right].indexOf(basePlacement) >= 0 ? { x: distance, y: skidding } : { x: skidding, y: distance };\n}\n/**\n *\n */\nfunction offset({ state, options, name }) {\n const { offset = [0, 0] } = options;\n const data = placements.reduce((acc, placement) => {\n acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset);\n return acc;\n }, {});\n const { x, y } = data[state.placement];\n if (state.modifiersData.popperOffsets != null) {\n state.modifiersData.popperOffsets.x += x;\n state.modifiersData.popperOffsets.y += y;\n }\n state.modifiersData[name] = data;\n}\nexport default {\n name: 'offset',\n enabled: true,\n phase: 'main',\n requires: ['popperOffsets'],\n fn: offset\n};\n//# sourceMappingURL=offset.js.map","const hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n/**\n * @param placement\n */\nexport default function getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, matched => hash[matched]);\n}\n//# sourceMappingURL=getOppositePlacement.js.map","const hash = { start: 'end', end: 'start' };\n/**\n * @param placement\n */\nexport default function getOppositeVariationPlacement(placement) {\n return placement.replace(/start|end/g, matched => hash[matched]);\n}\n//# sourceMappingURL=getOppositeVariationPlacement.js.map","import getVariation from './getVariation';\nimport { variationPlacements, basePlacements, placements as allPlacements } from '../enums';\nimport detectOverflow from './detectOverflow';\nimport getBasePlacement from './getBasePlacement';\n/* :: type OverflowsMap = { [ComputedPlacement]: number }; */\n/* ;; type OverflowsMap = { [key in ComputedPlacement]: number }; */\n/**\n * @param state\n * @param options\n */\nexport default function computeAutoPlacement(state, options = {}) {\n const { placement, boundary, rootBoundary, padding, flipVariations, allowedAutoPlacements = allPlacements } = options;\n const variation = getVariation(placement);\n const placements = variation\n ? flipVariations\n ? variationPlacements\n : variationPlacements.filter(placement => getVariation(placement) === variation)\n : basePlacements;\n // $FlowFixMe\n let allowedPlacements = placements.filter(placement => allowedAutoPlacements.indexOf(placement) >= 0);\n if (allowedPlacements.length === 0) {\n allowedPlacements = placements;\n if (false /* __DEV__*/) {\n console.error([\n 'Popper: The `allowedAutoPlacements` option did not allow any',\n 'placements. Ensure the `placement` option matches the variation',\n 'of the allowed placements.',\n 'For example, \"auto\" cannot be used to allow \"bottom-start\".',\n 'Use \"auto-start\" instead.'\n ].join(' '));\n }\n }\n // $FlowFixMe: Flow seems to have problems with two array unions...\n const overflows = allowedPlacements.reduce((acc, placement) => {\n acc[placement] = detectOverflow(state, {\n placement,\n boundary,\n rootBoundary,\n padding\n })[getBasePlacement(placement)];\n return acc;\n }, {});\n return Object.keys(overflows).sort((a, b) => overflows[a] - overflows[b]);\n}\n//# sourceMappingURL=computeAutoPlacement.js.map","import getOppositePlacement from '../utils/getOppositePlacement';\nimport getBasePlacement from '../utils/getBasePlacement';\nimport getOppositeVariationPlacement from '../utils/getOppositeVariationPlacement';\nimport detectOverflow from '../utils/detectOverflow';\nimport computeAutoPlacement from '../utils/computeAutoPlacement';\nimport { bottom, top, start, right, left, auto } from '../enums';\nimport getVariation from '../utils/getVariation';\n/**\n * @param placement\n */\nfunction getExpandedFallbackPlacements(placement) {\n if (getBasePlacement(placement) === auto) {\n return [];\n }\n const oppositePlacement = getOppositePlacement(placement);\n return [\n getOppositeVariationPlacement(placement),\n oppositePlacement,\n getOppositeVariationPlacement(oppositePlacement)\n ];\n}\n/**\n *\n */\nfunction flip({ state, options, name }) {\n if (state.modifiersData[name]._skip) {\n return;\n }\n const { mainAxis: checkMainAxis = true, altAxis: checkAltAxis = true, fallbackPlacements: specifiedFallbackPlacements, padding, boundary, rootBoundary, altBoundary, flipVariations = true, allowedAutoPlacements } = options;\n const preferredPlacement = state.options.placement;\n const basePlacement = getBasePlacement(preferredPlacement);\n const isBasePlacement = basePlacement === preferredPlacement;\n const fallbackPlacements = specifiedFallbackPlacements ||\n (isBasePlacement || !flipVariations\n ? [getOppositePlacement(preferredPlacement)]\n : getExpandedFallbackPlacements(preferredPlacement));\n const placements = [preferredPlacement, ...fallbackPlacements].reduce((acc, placement) => acc.concat(getBasePlacement(placement) === auto\n ? computeAutoPlacement(state, {\n placement,\n boundary,\n rootBoundary,\n padding,\n flipVariations,\n allowedAutoPlacements\n })\n : placement), []);\n const referenceRect = state.rects.reference;\n const popperRect = state.rects.popper;\n const checksMap = new Map();\n let makeFallbackChecks = true;\n let firstFittingPlacement = placements[0];\n for (let i = 0; i < placements.length; i++) {\n const placement = placements[i];\n const basePlacement = getBasePlacement(placement);\n const isStartVariation = getVariation(placement) === start;\n const isVertical = [top, bottom].indexOf(basePlacement) >= 0;\n const len = isVertical ? 'width' : 'height';\n const overflow = detectOverflow(state, {\n placement,\n boundary,\n rootBoundary,\n altBoundary,\n padding\n });\n let mainVariationSide = isVertical ? (isStartVariation ? right : left) : isStartVariation ? bottom : top;\n if (referenceRect[len] > popperRect[len]) {\n mainVariationSide = getOppositePlacement(mainVariationSide);\n }\n const altVariationSide = getOppositePlacement(mainVariationSide);\n const checks = [];\n if (checkMainAxis) {\n checks.push(overflow[basePlacement] <= 0);\n }\n if (checkAltAxis) {\n checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0);\n }\n if (checks.every(check => check)) {\n firstFittingPlacement = placement;\n makeFallbackChecks = false;\n break;\n }\n checksMap.set(placement, checks);\n }\n if (makeFallbackChecks) {\n // `2` may be desired in some cases research later\n const numberOfChecks = flipVariations ? 3 : 1;\n for (let i = numberOfChecks; i > 0; i--) {\n const fittingPlacement = placements.find(placement => {\n const checks = checksMap.get(placement);\n if (checks) {\n return checks.slice(0, i).every(check => check);\n }\n });\n if (fittingPlacement) {\n firstFittingPlacement = fittingPlacement;\n 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}\nexport default {\n name: 'flip',\n enabled: true,\n phase: 'main',\n fn: flip,\n requiresIfExists: ['offset'],\n data: { _skip: false }\n};\n//# sourceMappingURL=flip.js.map","// @ts-nocheck\n/**\n * @param axis\n */\nexport default function getAltAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}\n//# sourceMappingURL=getAltAxis.js.map","// @ts-nocheck\n/**\n * @param min\n * @param value\n * @param max\n */\nexport default function within(min, value, max) {\n return Math.max(min, Math.min(value, max));\n}\n//# sourceMappingURL=within.js.map","// @ts-nocheck\nimport { top, left, right, bottom, start } from '../enums';\nimport getBasePlacement from '../utils/getBasePlacement';\nimport getMainAxisFromPlacement from '../utils/getMainAxisFromPlacement';\nimport getAltAxis from '../utils/getAltAxis';\nimport within from '../utils/within';\nimport getLayoutRect from '../dom-utils/getLayoutRect';\nimport getOffsetParent from '../dom-utils/getOffsetParent';\nimport detectOverflow from '../utils/detectOverflow';\nimport getVariation from '../utils/getVariation';\nimport getFreshSideObject from '../utils/getFreshSideObject';\n/**\n *\n */\nfunction preventOverflow({ state, options, name }) {\n const { mainAxis: checkMainAxis = true, altAxis: checkAltAxis = false, boundary, rootBoundary, altBoundary, padding, tether = true, tetherOffset = 0 } = options;\n const overflow = detectOverflow(state, {\n boundary,\n rootBoundary,\n padding,\n altBoundary\n });\n const basePlacement = getBasePlacement(state.placement);\n const variation = getVariation(state.placement);\n const isBasePlacement = !variation;\n const mainAxis = getMainAxisFromPlacement(basePlacement);\n const altAxis = getAltAxis(mainAxis);\n const popperOffsets = state.modifiersData.popperOffsets;\n const referenceRect = state.rects.reference;\n const popperRect = state.rects.popper;\n const tetherOffsetValue = typeof tetherOffset === 'function'\n ? tetherOffset(Object.assign(Object.assign({}, state.rects), { placement: state.placement }))\n : tetherOffset;\n const data = { x: 0, y: 0 };\n if (!popperOffsets) {\n return;\n }\n if (checkMainAxis) {\n const mainSide = mainAxis === 'y' ? top : left;\n const altSide = mainAxis === 'y' ? bottom : right;\n const len = mainAxis === 'y' ? 'height' : 'width';\n const offset = popperOffsets[mainAxis];\n const min = popperOffsets[mainAxis] + overflow[mainSide];\n const max = popperOffsets[mainAxis] - overflow[altSide];\n const additive = tether ? -popperRect[len] / 2 : 0;\n const minLen = variation === start ? referenceRect[len] : popperRect[len];\n const maxLen = variation === start ? -popperRect[len] : -referenceRect[len];\n // We need to include the arrow in the calculation so the arrow doesn't go\n // outside the reference bounds\n const arrowElement = state.elements.arrow;\n const arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : { width: 0, height: 0 };\n const arrowPaddingObject = state.modifiersData['arrow#persistent']\n ? state.modifiersData['arrow#persistent'].padding\n : getFreshSideObject();\n const arrowPaddingMin = arrowPaddingObject[mainSide];\n const arrowPaddingMax = arrowPaddingObject[altSide];\n // 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 const arrowLen = within(0, referenceRect[len], arrowRect[len]);\n const minOffset = isBasePlacement\n ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - tetherOffsetValue\n : minLen - arrowLen - arrowPaddingMin - tetherOffsetValue;\n const maxOffset = isBasePlacement\n ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + tetherOffsetValue\n : maxLen + arrowLen + arrowPaddingMax + tetherOffsetValue;\n const arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow);\n const clientOffset = arrowOffsetParent\n ? mainAxis === 'y'\n ? arrowOffsetParent.clientTop || 0\n : arrowOffsetParent.clientLeft || 0\n : 0;\n const offsetModifierValue = state.modifiersData.offset ? state.modifiersData.offset[state.placement][mainAxis] : 0;\n const tetherMin = popperOffsets[mainAxis] + minOffset - offsetModifierValue - clientOffset;\n const tetherMax = popperOffsets[mainAxis] + maxOffset - offsetModifierValue;\n const preventedOffset = within(tether ? Math.min(min, tetherMin) : min, offset, tether ? Math.max(max, tetherMax) : max);\n popperOffsets[mainAxis] = preventedOffset;\n data[mainAxis] = preventedOffset - offset;\n }\n if (checkAltAxis) {\n const mainSide = mainAxis === 'x' ? top : left;\n const altSide = mainAxis === 'x' ? bottom : right;\n const offset = popperOffsets[altAxis];\n const min = offset + overflow[mainSide];\n const max = offset - overflow[altSide];\n const preventedOffset = within(min, offset, max);\n popperOffsets[altAxis] = preventedOffset;\n data[altAxis] = preventedOffset - offset;\n }\n state.modifiersData[name] = data;\n}\nexport default {\n name: 'preventOverflow',\n enabled: true,\n phase: 'main',\n fn: preventOverflow,\n requiresIfExists: ['offset']\n};\n//# sourceMappingURL=preventOverflow.js.map","import getBasePlacement from '../utils/getBasePlacement';\nimport getLayoutRect from '../dom-utils/getLayoutRect';\nimport contains from '../dom-utils/contains';\nimport getOffsetParent from '../dom-utils/getOffsetParent';\nimport getMainAxisFromPlacement from '../utils/getMainAxisFromPlacement';\nimport within from '../utils/within';\nimport mergePaddingObject from '../utils/mergePaddingObject';\nimport expandToHashMap from '../utils/expandToHashMap';\nimport { left, right, basePlacements, top, bottom } from '../enums';\nimport { isHTMLElement } from '../dom-utils/instanceOf';\n/**\n *\n */\nfunction arrow({ state, name }) {\n const arrowElement = state.elements.arrow;\n const popperOffsets = state.modifiersData.popperOffsets;\n const basePlacement = getBasePlacement(state.placement);\n const axis = getMainAxisFromPlacement(basePlacement);\n const isVertical = [left, right].indexOf(basePlacement) >= 0;\n const len = isVertical ? 'height' : 'width';\n if (!arrowElement || !popperOffsets) {\n return;\n }\n const paddingObject = state.modifiersData[`${name}#persistent`].padding;\n const arrowRect = getLayoutRect(arrowElement);\n const minProp = axis === 'y' ? top : left;\n const maxProp = axis === 'y' ? bottom : right;\n const endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len];\n const startDiff = popperOffsets[axis] - state.rects.reference[axis];\n const arrowOffsetParent = getOffsetParent(arrowElement);\n const clientSize = arrowOffsetParent\n ? axis === 'y'\n ? arrowOffsetParent.clientHeight || 0\n : arrowOffsetParent.clientWidth || 0\n : 0;\n const centerToReference = endDiff / 2 - startDiff / 2;\n // Make sure the arrow doesn't overflow the popper if the center point is\n // outside of the popper bounds\n const min = paddingObject[minProp];\n const max = clientSize - arrowRect[len] - paddingObject[maxProp];\n const center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;\n const offset = within(min, center, max);\n // Prevents breaking syntax highlighting...\n const axisProp = axis;\n state.modifiersData[name] = {\n [axisProp]: offset,\n centerOffset: offset - center\n };\n}\n/**\n *\n */\nfunction effect({ state, options, name }) {\n let { element: arrowElement = '[data-popper-arrow]', padding = 0 } = options;\n if (arrowElement == null) {\n return;\n }\n // CSS selector\n if (typeof arrowElement === 'string') {\n arrowElement = state.elements.popper.querySelector(arrowElement);\n if (!arrowElement) {\n return;\n }\n }\n if (false /* __DEV__*/) {\n if (!isHTMLElement(arrowElement)) {\n console.error([\n 'Popper: \"arrow\" element must be an HTMLElement (not an SVGElement).',\n 'To use an SVG arrow, wrap it in an HTMLElement that will be used as',\n 'the arrow.'\n ].join(' '));\n }\n }\n if (!contains(state.elements.popper, arrowElement)) {\n if (false /* __DEV__*/) {\n console.error(['Popper: \"arrow\" modifier\\'s `element` must be a child of the popper', 'element.'].join(' '));\n }\n return;\n }\n state.elements.arrow = arrowElement;\n state.modifiersData[`${name}#persistent`] = {\n padding: mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements))\n };\n}\nexport default {\n name: 'arrow',\n enabled: true,\n phase: 'main',\n fn: arrow,\n effect,\n requires: ['popperOffsets'],\n requiresIfExists: ['preventOverflow']\n};\n//# sourceMappingURL=arrow.js.map","import { top, bottom, left, right } from '../enums';\nimport detectOverflow from '../utils/detectOverflow';\n/**\n * @param overflow\n * @param rect\n * @param preventedOffsets\n */\nfunction getSideOffsets(overflow, rect, preventedOffsets = { x: 0, y: 0 }) {\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/**\n * @param overflow\n */\nfunction isAnySideFullyClipped(overflow) {\n return [top, right, bottom, left].some(side => overflow[side] >= 0);\n}\n/**\n *\n */\nfunction hide({ state, name }) {\n const referenceRect = state.rects.reference;\n const popperRect = state.rects.popper;\n const preventedOffsets = state.modifiersData.preventOverflow;\n const referenceOverflow = detectOverflow(state, {\n elementContext: 'reference'\n });\n const popperAltOverflow = detectOverflow(state, {\n altBoundary: true\n });\n const referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect);\n const popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets);\n const isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);\n const hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);\n state.modifiersData[name] = {\n referenceClippingOffsets,\n popperEscapeOffsets,\n isReferenceHidden,\n hasPopperEscaped\n };\n state.attributes.popper = Object.assign(Object.assign({}, state.attributes.popper), { 'data-popper-reference-hidden': isReferenceHidden, 'data-popper-escaped': hasPopperEscaped });\n}\nexport default {\n name: 'hide',\n enabled: true,\n phase: 'main',\n requiresIfExists: ['preventOverflow'],\n fn: hide\n};\n//# sourceMappingURL=hide.js.map","// @ts-nocheck\nimport { popperGenerator, detectOverflow } from '.';\nimport eventListeners from './modifiers/eventListeners';\nimport popperOffsets from './modifiers/popperOffsets';\nimport computeStyles from './modifiers/computeStyles';\nimport applyStyles from './modifiers/applyStyles';\nimport offset from './modifiers/offset';\nimport flip from './modifiers/flip';\nimport preventOverflow from './modifiers/preventOverflow';\nimport arrow from './modifiers/arrow';\nimport hide from './modifiers/hide';\nexport * from './types';\nconst defaultModifiers = [\n eventListeners,\n popperOffsets,\n computeStyles,\n applyStyles,\n offset,\n flip,\n preventOverflow,\n arrow,\n hide\n];\nconst createPopper = popperGenerator({ defaultModifiers });\n// eslint-disable-next-line import/no-unused-modules\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow };\n//# sourceMappingURL=popper.js.map","import * as React from 'react';\nimport { canUseDOM } from './util';\n/**\n * Small wrapper around `useLayoutEffect` to get rid of the warning on SSR envs\n */\nexport const useIsomorphicLayoutEffect = canUseDOM ? React.useLayoutEffect : React.useEffect;\n//# sourceMappingURL=useIsomorphicLayout.js.map","/* eslint-disable @typescript-eslint/consistent-type-definitions */\nimport * as React from 'react';\nimport { createPopper as defaultCreatePopper } from '../popper-core/popper';\nimport { useIsomorphicLayoutEffect } from '../../../../helpers/useIsomorphicLayout';\nconst isEqual = (a, b) => JSON.stringify(a) === JSON.stringify(b);\n/**\n * Simple ponyfill for Object.fromEntries\n */\nconst fromEntries = (entries) => entries.reduce((acc, [key, value]) => {\n acc[key] = value;\n return acc;\n}, {});\nconst EMPTY_MODIFIERS = [];\nexport const usePopper = (referenceElement, popperElement, options = {}) => {\n const prevOptions = React.useRef(null);\n const optionsWithDefaults = {\n onFirstUpdate: options.onFirstUpdate,\n placement: options.placement || 'bottom',\n strategy: options.strategy || 'absolute',\n modifiers: options.modifiers || EMPTY_MODIFIERS\n };\n const [state, setState] = React.useState({\n styles: {\n popper: {\n position: optionsWithDefaults.strategy,\n left: '0',\n top: '0'\n }\n },\n attributes: {}\n });\n const updateStateModifier = React.useMemo(() => ({\n name: 'updateState',\n enabled: true,\n phase: 'write',\n // eslint-disable-next-line no-shadow\n fn: ({ state }) => {\n const elements = Object.keys(state.elements);\n setState({\n styles: fromEntries(elements.map(element => [element, state.styles[element] || {}])),\n attributes: fromEntries(elements.map(element => [element, state.attributes[element]]))\n });\n },\n requires: ['computeStyles']\n }), []);\n const popperOptions = React.useMemo(() => {\n const newOptions = {\n onFirstUpdate: optionsWithDefaults.onFirstUpdate,\n placement: optionsWithDefaults.placement,\n strategy: optionsWithDefaults.strategy,\n modifiers: [...optionsWithDefaults.modifiers, updateStateModifier, { name: 'applyStyles', enabled: false }]\n };\n if (isEqual(prevOptions.current, newOptions)) {\n return prevOptions.current || newOptions;\n }\n else {\n prevOptions.current = newOptions;\n return newOptions;\n }\n }, [\n optionsWithDefaults.onFirstUpdate,\n optionsWithDefaults.placement,\n optionsWithDefaults.strategy,\n optionsWithDefaults.modifiers,\n updateStateModifier\n ]);\n const popperInstanceRef = React.useRef();\n useIsomorphicLayoutEffect(() => {\n if (popperInstanceRef && popperInstanceRef.current) {\n popperInstanceRef.current.setOptions(popperOptions);\n }\n }, [popperOptions]);\n useIsomorphicLayoutEffect(() => {\n if (referenceElement == null || popperElement == null) {\n return;\n }\n const createPopper = options.createPopper || defaultCreatePopper;\n const popperInstance = createPopper(referenceElement, popperElement, popperOptions);\n popperInstanceRef.current = popperInstance;\n return () => {\n popperInstance.destroy();\n popperInstanceRef.current = null;\n };\n }, [referenceElement, popperElement, options.createPopper]);\n return {\n state: popperInstanceRef.current ? popperInstanceRef.current.state : null,\n styles: state.styles,\n attributes: state.attributes,\n update: popperInstanceRef.current ? popperInstanceRef.current.update : null,\n forceUpdate: popperInstanceRef.current ? popperInstanceRef.current.forceUpdate : null\n };\n};\n//# sourceMappingURL=usePopper.js.map","import * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { usePopper } from './thirdparty/react-popper/usePopper';\nimport { clearTimeouts } from '../util';\nimport { css } from '@patternfly/react-styles';\nimport '@patternfly/react-styles/css/components/Popper/Popper.css';\nimport { getLanguageDirection } from '../util';\nconst hash = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom',\n 'top-start': 'bottom-end',\n 'top-end': 'bottom-start',\n 'bottom-start': 'top-end',\n 'bottom-end': 'top-start',\n 'left-start': 'right-end',\n 'left-end': 'right-start',\n 'right-start': 'left-end',\n 'right-end': 'left-start'\n};\nconst getOppositePlacement = (placement) => placement.replace(/left|right|bottom|top|top-start|top-end|bottom-start|bottom-end|right-start|right-end|left-start|left-end/g, (matched) => hash[matched]);\nexport const getOpacityTransition = (animationDuration) => `opacity ${animationDuration}ms cubic-bezier(.54, 1.5, .38, 1.11)`;\nexport const Popper = ({ trigger, popper, direction = 'down', position = 'start', placement, width, minWidth = 'trigger', maxWidth, appendTo = 'inline', zIndex = 9999, isVisible = true, positionModifiers, distance = 0, onMouseEnter, onMouseLeave, onFocus, onBlur, onDocumentClick, onTriggerClick, onTriggerEnter, onPopperClick, onPopperMouseEnter, onPopperMouseLeave, onDocumentKeyDown, enableFlip = true, flipBehavior = 'flip', triggerRef, popperRef, animationDuration = 0, entryDelay = 0, exitDelay = 0, onHidden = () => { }, onHide = () => { }, onMount = () => { }, onShow = () => { }, onShown = () => { }, preventOverflow = false }) => {\n var _a;\n const [triggerElement, setTriggerElement] = React.useState(null);\n const [refElement, setRefElement] = React.useState(null);\n const [popperElement, setPopperElement] = React.useState(null);\n const [popperContent, setPopperContent] = React.useState(null);\n const [ready, setReady] = React.useState(false);\n const [opacity, setOpacity] = React.useState(0);\n const [internalIsVisible, setInternalIsVisible] = React.useState(isVisible);\n const transitionTimerRef = React.useRef(null);\n const showTimerRef = React.useRef(null);\n const hideTimerRef = React.useRef(null);\n const prevExitDelayRef = React.useRef();\n const refOrTrigger = refElement || triggerElement;\n const showPopper = isVisible || internalIsVisible;\n const triggerParent = (_a = ((triggerRef === null || triggerRef === void 0 ? void 0 : triggerRef.current) || triggerElement)) === null || _a === void 0 ? void 0 : _a.parentElement;\n const languageDirection = getLanguageDirection(triggerParent);\n const internalPosition = React.useMemo(() => {\n const fixedPositions = { left: 'left', right: 'right', center: 'center' };\n const positionMap = {\n ltr: Object.assign({ start: 'left', end: 'right' }, fixedPositions),\n rtl: Object.assign({ start: 'right', end: 'left' }, fixedPositions)\n };\n return positionMap[languageDirection][position];\n }, [position, languageDirection]);\n const onDocumentClickCallback = React.useCallback((event) => onDocumentClick(event, refOrTrigger, popperElement), [showPopper, triggerElement, refElement, popperElement, onDocumentClick]);\n React.useEffect(() => {\n setReady(true);\n onMount();\n }, []);\n // Cancel all timers on unmount\n React.useEffect(() => () => {\n clearTimeouts([transitionTimerRef, hideTimerRef, showTimerRef]);\n }, []);\n React.useEffect(() => {\n if (triggerRef) {\n if (triggerRef.current) {\n setRefElement(triggerRef.current);\n }\n else if (typeof triggerRef === 'function') {\n setRefElement(triggerRef());\n }\n }\n }, [triggerRef, trigger]);\n React.useEffect(() => {\n // When the popperRef is defined or the popper visibility changes, ensure the popper element is up to date\n if (popperRef) {\n if (popperRef.current) {\n setPopperElement(popperRef.current);\n }\n else if (typeof popperRef === 'function') {\n setPopperElement(popperRef());\n }\n }\n }, [showPopper, popperRef]);\n React.useEffect(() => {\n // Trigger a Popper update when content changes.\n const observer = new MutationObserver(() => {\n update && update();\n });\n popperElement && observer.observe(popperElement, { attributes: true, childList: true, subtree: true });\n return () => {\n observer.disconnect();\n };\n }, [popperElement]);\n const addEventListener = (listener, element, event, capture = false) => {\n if (listener && element) {\n element.addEventListener(event, listener, { capture });\n }\n };\n const removeEventListener = (listener, element, event, capture = false) => {\n if (listener && element) {\n element.removeEventListener(event, listener, { capture });\n }\n };\n React.useEffect(() => {\n addEventListener(onMouseEnter, refOrTrigger, 'mouseenter');\n addEventListener(onMouseLeave, refOrTrigger, 'mouseleave');\n addEventListener(onFocus, refOrTrigger, 'focus');\n addEventListener(onBlur, refOrTrigger, 'blur');\n addEventListener(onTriggerClick, refOrTrigger, 'click');\n addEventListener(onTriggerEnter, refOrTrigger, 'keydown');\n addEventListener(onPopperClick, popperElement, 'click');\n addEventListener(onPopperMouseEnter, popperElement, 'mouseenter');\n addEventListener(onPopperMouseLeave, popperElement, 'mouseleave');\n onDocumentClick && addEventListener(onDocumentClickCallback, document, 'click', true);\n addEventListener(onDocumentKeyDown, document, 'keydown', true);\n return () => {\n removeEventListener(onMouseEnter, refOrTrigger, 'mouseenter');\n removeEventListener(onMouseLeave, refOrTrigger, 'mouseleave');\n removeEventListener(onFocus, refOrTrigger, 'focus');\n removeEventListener(onBlur, refOrTrigger, 'blur');\n removeEventListener(onTriggerClick, refOrTrigger, 'click');\n removeEventListener(onTriggerEnter, refOrTrigger, 'keydown');\n removeEventListener(onPopperClick, popperElement, 'click');\n removeEventListener(onPopperMouseEnter, popperElement, 'mouseenter');\n removeEventListener(onPopperMouseLeave, popperElement, 'mouseleave');\n onDocumentClick && removeEventListener(onDocumentClickCallback, document, 'click', true);\n removeEventListener(onDocumentKeyDown, document, 'keydown', true);\n };\n }, [\n triggerElement,\n popperElement,\n onMouseEnter,\n onMouseLeave,\n onFocus,\n onBlur,\n onTriggerClick,\n onTriggerEnter,\n onPopperClick,\n onPopperMouseEnter,\n onPopperMouseLeave,\n onDocumentClick,\n onDocumentKeyDown,\n refElement\n ]);\n const getPlacement = () => {\n if (placement) {\n return placement;\n }\n let convertedPlacement = direction === 'up' ? 'top' : 'bottom';\n if (internalPosition !== 'center') {\n convertedPlacement = `${convertedPlacement}-${internalPosition === 'right' ? 'end' : 'start'}`;\n }\n return convertedPlacement;\n };\n const getPlacementMemo = React.useMemo(getPlacement, [direction, internalPosition, placement]);\n const getOppositePlacementMemo = React.useMemo(() => getOppositePlacement(getPlacement()), [direction, internalPosition, placement]);\n const widthMods = React.useMemo(() => ({\n name: 'widthMods',\n enabled: width !== undefined || minWidth !== undefined || maxWidth !== undefined,\n phase: 'beforeWrite',\n requires: ['computeStyles'],\n fn: ({ state }) => {\n const triggerWidth = state.rects.reference.width;\n if (width) {\n state.styles.popper.width = width === 'trigger' ? `${triggerWidth}px` : width;\n }\n if (minWidth) {\n state.styles.popper.minWidth = minWidth === 'trigger' ? `${triggerWidth}px` : minWidth;\n }\n if (maxWidth) {\n state.styles.popper.maxWidth = maxWidth === 'trigger' ? `${triggerWidth}px` : maxWidth;\n }\n },\n effect: ({ state }) => {\n const triggerWidth = state.elements.reference.offsetWidth;\n if (width) {\n state.elements.popper.style.width = width === 'trigger' ? `${triggerWidth}px` : width;\n }\n if (minWidth) {\n state.elements.popper.style.minWidth = minWidth === 'trigger' ? `${triggerWidth}px` : minWidth;\n }\n if (maxWidth) {\n state.elements.popper.style.maxWidth = maxWidth === 'trigger' ? `${triggerWidth}px` : maxWidth;\n }\n return () => { };\n }\n }), [width, minWidth, maxWidth]);\n const { styles: popperStyles, attributes, update, forceUpdate } = usePopper(refOrTrigger, popperElement, {\n placement: getPlacementMemo,\n modifiers: [\n {\n name: 'offset',\n options: {\n offset: [0, distance]\n }\n },\n {\n name: 'preventOverflow',\n enabled: preventOverflow\n },\n {\n // adds attribute [data-popper-reference-hidden] to the popper element which can be used to hide it using CSS\n name: 'hide',\n enabled: true\n },\n {\n name: 'flip',\n enabled: getPlacementMemo.startsWith('auto') || enableFlip,\n options: {\n fallbackPlacements: flipBehavior === 'flip' ? [getOppositePlacementMemo] : flipBehavior\n }\n },\n widthMods\n ]\n });\n /** We want to forceUpdate only when a tooltip's content is dynamically updated.\n * TODO: Investigate into 3rd party libraries for a less limited/specific solution\n */\n React.useEffect(() => {\n var _a, _b, _c, _d, _e, _f;\n // currentPopperContent = {tooltip children} || {dropdown children}\n const currentPopperContent = ((_c = (_b = (_a = popper === null || popper === void 0 ? void 0 : popper.props) === null || _a === void 0 ? void 0 : _a.children[1]) === null || _b === void 0 ? void 0 : _b.props) === null || _c === void 0 ? void 0 : _c.children) || ((_f = (_e = (_d = popper === null || popper === void 0 ? void 0 : popper.props) === null || _d === void 0 ? void 0 : _d.children) === null || _e === void 0 ? void 0 : _e.props) === null || _f === void 0 ? void 0 : _f.children);\n setPopperContent(currentPopperContent);\n if (currentPopperContent && popperContent && currentPopperContent !== popperContent) {\n forceUpdate && forceUpdate();\n }\n }, [popper]);\n React.useEffect(() => {\n if (prevExitDelayRef.current < exitDelay) {\n clearTimeouts([transitionTimerRef, hideTimerRef]);\n hideTimerRef.current = setTimeout(() => {\n transitionTimerRef.current = setTimeout(() => {\n setInternalIsVisible(false);\n }, animationDuration);\n }, exitDelay);\n }\n prevExitDelayRef.current = exitDelay;\n }, [exitDelay]);\n const show = () => {\n onShow();\n clearTimeouts([transitionTimerRef, hideTimerRef]);\n showTimerRef.current = setTimeout(() => {\n setInternalIsVisible(true);\n setOpacity(1);\n onShown();\n }, entryDelay);\n };\n const hide = () => {\n onHide();\n clearTimeouts([showTimerRef]);\n hideTimerRef.current = setTimeout(() => {\n setOpacity(0);\n transitionTimerRef.current = setTimeout(() => {\n setInternalIsVisible(false);\n onHidden();\n }, animationDuration);\n }, exitDelay);\n };\n React.useEffect(() => {\n if (isVisible) {\n show();\n }\n else {\n hide();\n }\n }, [isVisible]);\n // Returns the CSS modifier class in order to place the Popper's arrow properly\n // Depends on the position of the Popper relative to the reference element\n const modifierFromPopperPosition = () => {\n if (attributes && attributes.popper && attributes.popper['data-popper-placement']) {\n const popperPlacement = attributes.popper['data-popper-placement'];\n return positionModifiers[popperPlacement];\n }\n return positionModifiers.top;\n };\n const options = Object.assign({ className: css(popper.props && popper.props.className, positionModifiers && modifierFromPopperPosition()), style: Object.assign(Object.assign(Object.assign({}, ((popper.props && popper.props.style) || {})), popperStyles.popper), { zIndex,\n opacity, transition: getOpacityTransition(animationDuration) }) }, attributes.popper);\n const getMenuWithPopper = () => {\n const localPopper = React.cloneElement(popper, options);\n return popperRef ? (localPopper) : (React.createElement(\"div\", { style: { display: 'contents' }, ref: (node) => setPopperElement(node === null || node === void 0 ? void 0 : node.firstElementChild) }, localPopper));\n };\n const getPopper = () => {\n if (appendTo === 'inline') {\n return getMenuWithPopper();\n }\n else {\n const target = typeof appendTo === 'function' ? appendTo() : appendTo;\n return ReactDOM.createPortal(getMenuWithPopper(), target);\n }\n };\n return (React.createElement(React.Fragment, null,\n !triggerRef && trigger && React.isValidElement(trigger) && (React.createElement(\"div\", { style: { display: 'contents' }, ref: (node) => setTriggerElement(node === null || node === void 0 ? void 0 : node.firstElementChild) }, trigger)),\n triggerRef && trigger && React.isValidElement(trigger) && trigger,\n ready && showPopper && getPopper()));\n};\nPopper.displayName = 'Popper';\n//# sourceMappingURL=Popper.js.map","import { canUseDOM } from './util';\n/**\n * This function creates a ResizeObserver used to handle resize events for the given containerRef. If ResizeObserver\n * or the given containerRef are not available, a window resize event listener is used by default.\n *\n * Example 1:\n *\n * private containerRef = React.createRef<HTMLDivElement>();\n * private observer: any = () => {};\n *\n * public componentDidMount() {\n * this.observer = getResizeObserver(this.containerRef.current, this.handleResize, true);\n * }\n *\n * public componentWillUnmount() {\n * this.observer();\n * }\n *\n * private handleResize = () => {\n * if (this.containerRef.current && this.containerRef.current.clientWidth) {\n * this.setState({ width: this.containerRef.current.clientWidth });\n * }\n * };\n *\n * public render() {\n * return (\n * <div ref={this.containerRef} >\n * <Chart width={this.state.width} ... />\n * </div>\n * );\n * }\n *\n * Example 2:\n *\n * private inputRef = React.createRef<HTMLInputElement>();\n * private observer: any = () => {};\n *\n * public componentDidMount() {\n * this.observer = getResizeObserver(this.inputRef.current, this.handleResize, true);\n * }\n *\n * public componentWillUnmount() {\n * this.observer();\n * }\n *\n * private handleResize = () => {\n * if (this.inputRef.current) {\n * trimLeft(inputRef.current, String(this.props.value));\n * }\n * };\n *\n * public render() {\n * return (\n * <input ref={this.inputRef} ... />\n * );\n * }\n *\n * Example 3 - With debounced method passed in:\n *\n * public componentDidMount() {\n * this.observer = getResizeObserver(this.inputRef.current, debounce(this.handleResize, 250));\n * }\n *\n * @param {Element} containerRefElement The container reference to observe\n * @param {Function} handleResize The function to call for resize events\n * @param {boolean} useRequestAnimationFrame Whether to pass the handleResize function as a callback to requestAnimationFrame. Pass in true when the function passed in is not debounced.\n * @return {Function} The function used to unobserve resize events\n */\nexport const getResizeObserver = (containerRefElement, handleResize, useRequestAnimationFrame) => {\n let unobserve;\n if (canUseDOM) {\n const { ResizeObserver } = window;\n if (containerRefElement && ResizeObserver) {\n const resizeObserver = new ResizeObserver((entries) => {\n // Wrap resize function in requestAnimationFrame to avoid \"ResizeObserver loop limit exceeded\" errors\n if (useRequestAnimationFrame) {\n window.requestAnimationFrame(() => {\n if (Array.isArray(entries) && entries.length > 0) {\n handleResize();\n }\n });\n // Avoid wrapping function in requestAnimationFrame if the function is debounced\n }\n else {\n if (Array.isArray(entries) && entries.length > 0) {\n handleResize();\n }\n }\n });\n resizeObserver.observe(containerRefElement);\n unobserve = () => resizeObserver.unobserve(containerRefElement);\n }\n else {\n window.addEventListener('resize', handleResize);\n unobserve = () => window.removeEventListener('resize', handleResize);\n }\n }\n return () => {\n if (unobserve) {\n unobserve();\n }\n };\n};\n//# sourceMappingURL=resizeObserver.js.map","import { __rest } from \"tslib\";\nimport * as React from 'react';\nimport { css } from '@patternfly/react-styles';\nimport styles from '@patternfly/react-styles/css/components/Title/title.mjs';\nimport { useOUIAProps } from '../../helpers';\nexport var TitleSizes;\n(function (TitleSizes) {\n TitleSizes[\"md\"] = \"md\";\n TitleSizes[\"lg\"] = \"lg\";\n TitleSizes[\"xl\"] = \"xl\";\n TitleSizes[\"2xl\"] = \"2xl\";\n TitleSizes[\"3xl\"] = \"3xl\";\n TitleSizes[\"4xl\"] = \"4xl\";\n})(TitleSizes || (TitleSizes = {}));\nvar headingLevelSizeMap;\n(function (headingLevelSizeMap) {\n headingLevelSizeMap[\"h1\"] = \"2xl\";\n headingLevelSizeMap[\"h2\"] = \"xl\";\n headingLevelSizeMap[\"h3\"] = \"lg\";\n headingLevelSizeMap[\"h4\"] = \"md\";\n headingLevelSizeMap[\"h5\"] = \"md\";\n headingLevelSizeMap[\"h6\"] = \"md\";\n})(headingLevelSizeMap || (headingLevelSizeMap = {}));\nexport const Title = (_a) => {\n var { className = '', children = '', headingLevel: HeadingLevel, size = headingLevelSizeMap[HeadingLevel], ouiaId, ouiaSafe = true } = _a, props = __rest(_a, [\"className\", \"children\", \"headingLevel\", \"size\", \"ouiaId\", \"ouiaSafe\"]);\n const ouiaProps = useOUIAProps(Title.displayName, ouiaId, ouiaSafe);\n return (React.createElement(HeadingLevel, Object.assign({}, ouiaProps, props, { className: css(styles.title, size && styles.modifiers[size], className) }), children));\n};\nTitle.displayName = 'Title';\n//# sourceMappingURL=Title.js.map","import './button.css';\nexport default {\n \"badge\": \"pf-v5-c-badge\",\n \"button\": \"pf-v5-c-button\",\n \"buttonCount\": \"pf-v5-c-button__count\",\n \"buttonIcon\": \"pf-v5-c-button__icon\",\n \"buttonProgress\": \"pf-v5-c-button__progress\",\n \"modifiers\": {\n \"active\": \"pf-m-active\",\n \"block\": \"pf-m-block\",\n \"small\": \"pf-m-small\",\n \"primary\": \"pf-m-primary\",\n \"displayLg\": \"pf-m-display-lg\",\n \"secondary\": \"pf-m-secondary\",\n \"tertiary\": \"pf-m-tertiary\",\n \"link\": \"pf-m-link\",\n \"unread\": \"pf-m-unread\",\n \"inline\": \"pf-m-inline\",\n \"danger\": \"pf-m-danger\",\n \"warning\": \"pf-m-warning\",\n \"control\": \"pf-m-control\",\n \"expanded\": \"pf-m-expanded\",\n \"plain\": \"pf-m-plain\",\n \"noPadding\": \"pf-m-no-padding\",\n \"disabled\": \"pf-m-disabled\",\n \"ariaDisabled\": \"pf-m-aria-disabled\",\n \"progress\": \"pf-m-progress\",\n \"inProgress\": \"pf-m-in-progress\",\n \"start\": \"pf-m-start\",\n \"end\": \"pf-m-end\"\n },\n \"spinner\": \"pf-v5-c-spinner\",\n \"themeDark\": \"pf-v5-theme-dark\"\n};","import './spinner.css';\nexport default {\n \"modifiers\": {\n \"inline\": \"pf-m-inline\",\n \"sm\": \"pf-m-sm\",\n \"md\": \"pf-m-md\",\n \"lg\": \"pf-m-lg\",\n \"xl\": \"pf-m-xl\"\n },\n \"spinner\": \"pf-v5-c-spinner\",\n \"spinnerPath\": \"pf-v5-c-spinner__path\"\n};","export const c_spinner_diameter = {\n \"name\": \"--pf-v5-c-spinner--diameter\",\n \"value\": \"0.875rem\",\n \"var\": \"var(--pf-v5-c-spinner--diameter)\"\n};\nexport default c_spinner_diameter;","import { __rest } from \"tslib\";\nimport * as React from 'react';\nimport styles from '@patternfly/react-styles/css/components/Spinner/spinner.mjs';\nimport { css } from '@patternfly/react-styles';\nimport cssDiameter from '@patternfly/react-tokens/dist/esm/c_spinner_diameter';\nexport var spinnerSize;\n(function (spinnerSize) {\n spinnerSize[\"sm\"] = \"sm\";\n spinnerSize[\"md\"] = \"md\";\n spinnerSize[\"lg\"] = \"lg\";\n spinnerSize[\"xl\"] = \"xl\";\n})(spinnerSize || (spinnerSize = {}));\nexport const Spinner = (_a) => {\n var { \n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n className = '', size = 'xl', 'aria-valuetext': ariaValueText = 'Loading...', diameter, isInline = false, 'aria-label': ariaLabel, 'aria-labelledBy': ariaLabelledBy } = _a, props = __rest(_a, [\"className\", \"size\", 'aria-valuetext', \"diameter\", \"isInline\", 'aria-label', 'aria-labelledBy']);\n return (React.createElement(\"svg\", Object.assign({ className: css(styles.spinner, isInline ? styles.modifiers.inline : styles.modifiers[size], className), role: \"progressbar\", \"aria-valuetext\": ariaValueText, viewBox: \"0 0 100 100\" }, (diameter && { style: { [cssDiameter.name]: diameter } }), (ariaLabel && { 'aria-label': ariaLabel }), (ariaLabelledBy && { 'aria-labelledBy': ariaLabelledBy }), (!ariaLabel && !ariaLabelledBy && { 'aria-label': 'Contents' }), props),\n React.createElement(\"circle\", { className: styles.spinnerPath, cx: \"50\", cy: \"50\", r: \"45\", fill: \"none\" })));\n};\nSpinner.displayName = 'Spinner';\n//# sourceMappingURL=Spinner.js.map","import './badge.css';\nexport default {\n \"badge\": \"pf-v5-c-badge\",\n \"modifiers\": {\n \"read\": \"pf-m-read\",\n \"unread\": \"pf-m-unread\"\n },\n \"themeDark\": \"pf-v5-theme-dark\"\n};","import { __rest } from \"tslib\";\nimport * as React from 'react';\nimport { css } from '@patternfly/react-styles';\nimport styles from '@patternfly/react-styles/css/components/Badge/badge.mjs';\nexport const Badge = (_a) => {\n var { isRead = false, className = '', children = '', screenReaderText } = _a, props = __rest(_a, [\"isRead\", \"className\", \"children\", \"screenReaderText\"]);\n return (React.createElement(\"span\", Object.assign({}, props, { className: css(styles.badge, (isRead ? styles.modifiers.read : styles.modifiers.unread), className) }),\n children,\n screenReaderText && React.createElement(\"span\", { className: \"pf-v5-screen-reader\" }, screenReaderText)));\n};\nBadge.displayName = 'Badge';\n//# sourceMappingURL=Badge.js.map","import { __rest } from \"tslib\";\nimport * as React from 'react';\nimport styles from '@patternfly/react-styles/css/components/Button/button.mjs';\nimport { css } from '@patternfly/react-styles';\nimport { Spinner, spinnerSize } from '../Spinner';\nimport { useOUIAProps } from '../../helpers/OUIA/ouia';\nimport { Badge } from '../Badge';\nexport var ButtonVariant;\n(function (ButtonVariant) {\n ButtonVariant[\"primary\"] = \"primary\";\n ButtonVariant[\"secondary\"] = \"secondary\";\n ButtonVariant[\"tertiary\"] = \"tertiary\";\n ButtonVariant[\"danger\"] = \"danger\";\n ButtonVariant[\"warning\"] = \"warning\";\n ButtonVariant[\"link\"] = \"link\";\n ButtonVariant[\"plain\"] = \"plain\";\n ButtonVariant[\"control\"] = \"control\";\n})(ButtonVariant || (ButtonVariant = {}));\nexport var ButtonType;\n(function (ButtonType) {\n ButtonType[\"button\"] = \"button\";\n ButtonType[\"submit\"] = \"submit\";\n ButtonType[\"reset\"] = \"reset\";\n})(ButtonType || (ButtonType = {}));\nexport var ButtonSize;\n(function (ButtonSize) {\n ButtonSize[\"default\"] = \"default\";\n ButtonSize[\"sm\"] = \"sm\";\n ButtonSize[\"lg\"] = \"lg\";\n})(ButtonSize || (ButtonSize = {}));\nconst ButtonBase = (_a) => {\n var { children = null, className = '', component = 'button', isActive = false, isBlock = false, isDisabled = false, isAriaDisabled = false, isLoading = null, isDanger = false, spinnerAriaValueText, spinnerAriaLabelledBy, spinnerAriaLabel, size = ButtonSize.default, inoperableEvents = ['onClick', 'onKeyPress'], isInline = false, type = ButtonType.button, variant = ButtonVariant.primary, iconPosition = 'start', 'aria-label': ariaLabel = null, icon = null, ouiaId, ouiaSafe = true, tabIndex = null, innerRef, countOptions } = _a, props = __rest(_a, [\"children\", \"className\", \"component\", \"isActive\", \"isBlock\", \"isDisabled\", \"isAriaDisabled\", \"isLoading\", \"isDanger\", \"spinnerAriaValueText\", \"spinnerAriaLabelledBy\", \"spinnerAriaLabel\", \"size\", \"inoperableEvents\", \"isInline\", \"type\", \"variant\", \"iconPosition\", 'aria-label', \"icon\", \"ouiaId\", \"ouiaSafe\", \"tabIndex\", \"innerRef\", \"countOptions\"]);\n const ouiaProps = useOUIAProps(Button.displayName, ouiaId, ouiaSafe, variant);\n const Component = component;\n const isButtonElement = Component === 'button';\n const isInlineSpan = isInline && Component === 'span';\n const preventedEvents = inoperableEvents.reduce((handlers, eventToPrevent) => (Object.assign(Object.assign({}, handlers), { [eventToPrevent]: (event) => {\n event.preventDefault();\n } })), {});\n const getDefaultTabIdx = () => {\n if (isDisabled) {\n return isButtonElement ? null : -1;\n }\n else if (isAriaDisabled) {\n return null;\n }\n else if (isInlineSpan) {\n return 0;\n }\n };\n return (React.createElement(Component, Object.assign({}, props, (isAriaDisabled ? preventedEvents : null), { \"aria-disabled\": isDisabled || isAriaDisabled, \"aria-label\": ariaLabel, className: css(styles.button, styles.modifiers[variant], isBlock && styles.modifiers.block, isDisabled && styles.modifiers.disabled, isAriaDisabled && styles.modifiers.ariaDisabled, isActive && styles.modifiers.active, isInline && variant === ButtonVariant.link && styles.modifiers.inline, isDanger && (variant === ButtonVariant.secondary || variant === ButtonVariant.link) && styles.modifiers.danger, isLoading !== null && variant !== ButtonVariant.plain && styles.modifiers.progress, isLoading && styles.modifiers.inProgress, size === ButtonSize.sm && styles.modifiers.small, size === ButtonSize.lg && styles.modifiers.displayLg, className), disabled: isButtonElement ? isDisabled : null, tabIndex: tabIndex !== null ? tabIndex : getDefaultTabIdx(), type: isButtonElement || isInlineSpan ? type : null, role: isInlineSpan ? 'button' : null, ref: innerRef }, ouiaProps),\n isLoading && (React.createElement(\"span\", { className: css(styles.buttonProgress) },\n React.createElement(Spinner, { size: spinnerSize.md, isInline: isInline, \"aria-valuetext\": spinnerAriaValueText, \"aria-label\": spinnerAriaLabel, \"aria-labelledby\": spinnerAriaLabelledBy }))),\n variant === ButtonVariant.plain && children === null && icon ? icon : null,\n variant !== ButtonVariant.plain && icon && (iconPosition === 'start' || iconPosition === 'left') && (React.createElement(\"span\", { className: css(styles.buttonIcon, styles.modifiers.start) }, icon)),\n children,\n variant !== ButtonVariant.plain && icon && (iconPosition === 'end' || iconPosition === 'right') && (React.createElement(\"span\", { className: css(styles.buttonIcon, styles.modifiers.end) }, icon)),\n countOptions && (React.createElement(\"span\", { className: css(styles.buttonCount, countOptions.className) },\n React.createElement(Badge, { isRead: countOptions.isRead }, countOptions.count)))));\n};\nexport const Button = React.forwardRef((props, ref) => (React.createElement(ButtonBase, Object.assign({ innerRef: ref }, props))));\nButton.displayName = 'Button';\n//# sourceMappingURL=Button.js.map","import { __rest } from \"tslib\";\nimport * as React from 'react';\nlet currentId = 0;\n/**\n * Factory to create Icon class components for consumers\n */\nexport function createIcon({ name, xOffset = 0, yOffset = 0, width, height, svgPath }) {\n var _a;\n return _a = class SVGIcon extends React.Component {\n constructor() {\n super(...arguments);\n this.id = `icon-title-${currentId++}`;\n }\n render() {\n const _a = this.props, { title, className } = _a, props = __rest(_a, [\"title\", \"className\"]);\n const classes = className ? `pf-v5-svg ${className}` : 'pf-v5-svg';\n const hasTitle = Boolean(title);\n const viewBox = [xOffset, yOffset, width, height].join(' ');\n return (React.createElement(\"svg\", Object.assign({ className: classes, viewBox: viewBox, fill: \"currentColor\", \"aria-labelledby\": hasTitle ? this.id : null, \"aria-hidden\": hasTitle ? null : true, role: \"img\", width: \"1em\", height: \"1em\" }, props),\n hasTitle && React.createElement(\"title\", { id: this.id }, title),\n React.createElement(\"path\", { d: svgPath })));\n }\n },\n _a.displayName = name,\n _a;\n}\n//# sourceMappingURL=createIcon.js.map","import { createIcon } from '../createIcon';\n\nexport const TimesIconConfig = {\n name: 'TimesIcon',\n height: 512,\n width: 352,\n svgPath: 'M242.72 256l100.07-100.07c12.28-12.28 12.28-32.19 0-44.48l-22.24-22.24c-12.28-12.28-32.19-12.28-44.48 0L176 189.28 75.93 89.21c-12.28-12.28-32.19-12.28-44.48 0L9.21 111.45c-12.28 12.28-12.28 32.19 0 44.48L109.28 256 9.21 356.07c-12.28 12.28-12.28 32.19 0 44.48l22.24 22.24c12.28 12.28 32.2 12.28 44.48 0L176 322.72l100.07 100.07c12.28 12.28 32.2 12.28 44.48 0l22.24-22.24c12.28-12.28 12.28-32.19 0-44.48L242.72 256z',\n yOffset: 0,\n xOffset: 0,\n};\n\nexport const TimesIcon = createIcon(TimesIconConfig);\n\nexport default TimesIcon;","import './backdrop.css';\nexport default {\n \"backdrop\": \"pf-v5-c-backdrop\",\n \"backdropOpen\": \"pf-v5-c-backdrop__open\"\n};","import './modal-box.css';\nexport default {\n \"button\": \"pf-v5-c-button\",\n \"modalBox\": \"pf-v5-c-modal-box\",\n \"modalBoxBody\": \"pf-v5-c-modal-box__body\",\n \"modalBoxClose\": \"pf-v5-c-modal-box__close\",\n \"modalBoxDescription\": \"pf-v5-c-modal-box__description\",\n \"modalBoxFooter\": \"pf-v5-c-modal-box__footer\",\n \"modalBoxHeader\": \"pf-v5-c-modal-box__header\",\n \"modalBoxHeaderMain\": \"pf-v5-c-modal-box__header-main\",\n \"modalBoxTitle\": \"pf-v5-c-modal-box__title\",\n \"modalBoxTitleIcon\": \"pf-v5-c-modal-box__title-icon\",\n \"modalBoxTitleText\": \"pf-v5-c-modal-box__title-text\",\n \"modifiers\": {\n \"sm\": \"pf-m-sm\",\n \"md\": \"pf-m-md\",\n \"lg\": \"pf-m-lg\",\n \"alignTop\": \"pf-m-align-top\",\n \"danger\": \"pf-m-danger\",\n \"warning\": \"pf-m-warning\",\n \"success\": \"pf-m-success\",\n \"custom\": \"pf-m-custom\",\n \"info\": \"pf-m-info\",\n \"help\": \"pf-m-help\",\n \"icon\": \"pf-m-icon\"\n },\n \"themeDark\": \"pf-v5-theme-dark\"\n};","import './bullseye.css';\nexport default {\n \"bullseye\": \"pf-v5-l-bullseye\"\n};","import { __rest } from \"tslib\";\nimport * as React from 'react';\nimport { css } from '@patternfly/react-styles';\nimport styles from '@patternfly/react-styles/css/components/Backdrop/backdrop.mjs';\nexport const Backdrop = (_a) => {\n var { children = null, className = '' } = _a, props = __rest(_a, [\"children\", \"className\"]);\n return (React.createElement(\"div\", Object.assign({}, props, { className: css(styles.backdrop, className) }), children));\n};\nBackdrop.displayName = 'Backdrop';\n//# sourceMappingURL=Backdrop.js.map","import { __rest } from \"tslib\";\nimport * as React from 'react';\nimport { css } from '@patternfly/react-styles';\nimport styles from '@patternfly/react-styles/css/components/ModalBox/modal-box.mjs';\nexport const ModalBoxBody = (_a) => {\n var { children = null, className = '' } = _a, props = __rest(_a, [\"children\", \"className\"]);\n return (React.createElement(\"div\", Object.assign({}, props, { className: css(styles.modalBoxBody, className) }), children));\n};\nModalBoxBody.displayName = 'ModalBoxBody';\n//# sourceMappingURL=ModalBoxBody.js.map","import { __rest } from \"tslib\";\nimport * as React from 'react';\nimport { css } from '@patternfly/react-styles';\nimport styles from '@patternfly/react-styles/css/components/ModalBox/modal-box.mjs';\nimport { Button } from '../Button';\nimport TimesIcon from '@patternfly/react-icons/dist/esm/icons/times-icon';\nexport const ModalBoxCloseButton = (_a) => {\n var { className, onClose = () => undefined, 'aria-label': ariaLabel = 'Close', ouiaId } = _a, props = __rest(_a, [\"className\", \"onClose\", 'aria-label', \"ouiaId\"]);\n return (React.createElement(\"div\", { className: css(styles.modalBoxClose, className) },\n React.createElement(Button, Object.assign({ variant: \"plain\", onClick: (event) => onClose(event), \"aria-label\": ariaLabel }, (ouiaId && { ouiaId: `${ouiaId}-${ModalBoxCloseButton.displayName}` }), props),\n React.createElement(TimesIcon, null))));\n};\nModalBoxCloseButton.displayName = 'ModalBoxCloseButton';\n//# sourceMappingURL=ModalBoxCloseButton.js.map","export const c_modal_box_m_align_top_spacer = {\n \"name\": \"--pf-v5-c-modal-box--m-align-top--spacer\",\n \"value\": \"0.5rem\",\n \"var\": \"var(--pf-v5-c-modal-box--m-align-top--spacer)\"\n};\nexport default c_modal_box_m_align_top_spacer;","import { __rest } from \"tslib\";\nimport * as React from 'react';\nimport { css } from '@patternfly/react-styles';\nimport styles from '@patternfly/react-styles/css/components/ModalBox/modal-box.mjs';\nimport topSpacer from '@patternfly/react-tokens/dist/esm/c_modal_box_m_align_top_spacer';\nexport const ModalBox = (_a) => {\n var { children, className = '', variant = 'default', position, positionOffset, 'aria-labelledby': ariaLabelledby, 'aria-label': ariaLabel = '', 'aria-describedby': ariaDescribedby, style } = _a, props = __rest(_a, [\"children\", \"className\", \"variant\", \"position\", \"positionOffset\", 'aria-labelledby', 'aria-label', 'aria-describedby', \"style\"]);\n if (positionOffset) {\n style = style || {};\n style[topSpacer.name] = positionOffset;\n }\n return (React.createElement(\"div\", Object.assign({}, props, { role: \"dialog\", \"aria-label\": ariaLabel || null, \"aria-labelledby\": ariaLabelledby || null, \"aria-describedby\": ariaDescribedby, \"aria-modal\": \"true\", className: css(styles.modalBox, className, position === 'top' && styles.modifiers.alignTop, variant === 'large' && styles.modifiers.lg, variant === 'small' && styles.modifiers.sm, variant === 'medium' && styles.modifiers.md), style: style }), children));\n};\nModalBox.displayName = 'ModalBox';\n//# sourceMappingURL=ModalBox.js.map","import { __rest } from \"tslib\";\nimport * as React from 'react';\nimport { css } from '@patternfly/react-styles';\nimport styles from '@patternfly/react-styles/css/components/ModalBox/modal-box.mjs';\nexport const ModalBoxFooter = (_a) => {\n var { children = null, className = '' } = _a, props = __rest(_a, [\"children\", \"className\"]);\n return (React.createElement(\"footer\", Object.assign({}, props, { className: css(styles.modalBoxFooter, className) }), children));\n};\nModalBoxFooter.displayName = 'ModalBoxFooter';\n//# sourceMappingURL=ModalBoxFooter.js.map","import { __rest } from \"tslib\";\nimport * as React from 'react';\nimport { css } from '@patternfly/react-styles';\nimport styles from '@patternfly/react-styles/css/components/ModalBox/modal-box.mjs';\nexport const ModalBoxDescription = (_a) => {\n var { children = null, className = '', id = '' } = _a, props = __rest(_a, [\"children\", \"className\", \"id\"]);\n return (React.createElement(\"div\", Object.assign({}, props, { id: id, className: css(styles.modalBoxDescription, className) }), children));\n};\nModalBoxDescription.displayName = 'ModalBoxDescription';\n//# sourceMappingURL=ModalBoxDescription.js.map","import { __rest } from \"tslib\";\nimport * as React from 'react';\nimport { css } from '@patternfly/react-styles';\nimport styles from '@patternfly/react-styles/css/components/ModalBox/modal-box.mjs';\nexport const ModalBoxHeader = (_a) => {\n var { children = null, className = '', help = null } = _a, props = __rest(_a, [\"children\", \"className\", \"help\"]);\n return (React.createElement(\"header\", Object.assign({ className: css(styles.modalBoxHeader, help && styles.modifiers.help, className) }, props),\n help && (React.createElement(React.Fragment, null,\n React.createElement(\"div\", { className: css(styles.modalBoxHeaderMain) }, children),\n React.createElement(\"div\", { className: `${styles.modalBoxHeader}-help` }, help))),\n !help && children));\n};\nModalBoxHeader.displayName = 'ModalBoxHeader';\n//# sourceMappingURL=ModalBoxHeader.js.map","import './tooltip.css';\nexport default {\n \"modifiers\": {\n \"top\": \"pf-m-top\",\n \"topLeft\": \"pf-m-top-left\",\n \"topRight\": \"pf-m-top-right\",\n \"bottom\": \"pf-m-bottom\",\n \"bottomLeft\": \"pf-m-bottom-left\",\n \"bottomRight\": \"pf-m-bottom-right\",\n \"left\": \"pf-m-left\",\n \"leftTop\": \"pf-m-left-top\",\n \"leftBottom\": \"pf-m-left-bottom\",\n \"right\": \"pf-m-right\",\n \"rightTop\": \"pf-m-right-top\",\n \"rightBottom\": \"pf-m-right-bottom\",\n \"textAlignLeft\": \"pf-m-text-align-left\"\n },\n \"themeDark\": \"pf-v5-theme-dark\",\n \"tooltip\": \"pf-v5-c-tooltip\",\n \"tooltipArrow\": \"pf-v5-c-tooltip__arrow\",\n \"tooltipContent\": \"pf-v5-c-tooltip__content\"\n};","import { __rest } from \"tslib\";\nimport * as React from 'react';\nimport styles from '@patternfly/react-styles/css/components/Tooltip/tooltip.mjs';\nimport { css } from '@patternfly/react-styles';\nexport const TooltipContent = (_a) => {\n var { className, children, isLeftAligned } = _a, props = __rest(_a, [\"className\", \"children\", \"isLeftAligned\"]);\n return (React.createElement(\"div\", Object.assign({ className: css(styles.tooltipContent, isLeftAligned && styles.modifiers.textAlignLeft, className) }, props), children));\n};\nTooltipContent.displayName = 'TooltipContent';\n//# sourceMappingURL=TooltipContent.js.map","import { __rest } from \"tslib\";\nimport * as React from 'react';\nimport styles from '@patternfly/react-styles/css/components/Tooltip/tooltip.mjs';\nimport { css } from '@patternfly/react-styles';\nexport const TooltipArrow = (_a) => {\n var { className } = _a, props = __rest(_a, [\"className\"]);\n return React.createElement(\"div\", Object.assign({ className: css(styles.tooltipArrow, className) }, props));\n};\nTooltipArrow.displayName = 'TooltipArrow';\n//# sourceMappingURL=TooltipArrow.js.map","export const c_tooltip_MaxWidth = {\n \"name\": \"--pf-v5-c-tooltip--MaxWidth\",\n \"value\": \"18.75rem\",\n \"var\": \"var(--pf-v5-c-tooltip--MaxWidth)\"\n};\nexport default c_tooltip_MaxWidth;","import { __rest } from \"tslib\";\n/* eslint-disable no-console */\nimport * as React from 'react';\nimport styles from '@patternfly/react-styles/css/components/Tooltip/tooltip.mjs';\nimport { css } from '@patternfly/react-styles';\nimport { TooltipContent } from './TooltipContent';\nimport { TooltipArrow } from './TooltipArrow';\nimport { KeyTypes } from '../../helpers/constants';\nimport tooltipMaxWidth from '@patternfly/react-tokens/dist/esm/c_tooltip_MaxWidth';\nimport { Popper } from '../../helpers/Popper/Popper';\nexport var TooltipPosition;\n(function (TooltipPosition) {\n TooltipPosition[\"auto\"] = \"auto\";\n TooltipPosition[\"top\"] = \"top\";\n TooltipPosition[\"bottom\"] = \"bottom\";\n TooltipPosition[\"left\"] = \"left\";\n TooltipPosition[\"right\"] = \"right\";\n TooltipPosition[\"topStart\"] = \"top-start\";\n TooltipPosition[\"topEnd\"] = \"top-end\";\n TooltipPosition[\"bottomStart\"] = \"bottom-start\";\n TooltipPosition[\"bottomEnd\"] = \"bottom-end\";\n TooltipPosition[\"leftStart\"] = \"left-start\";\n TooltipPosition[\"leftEnd\"] = \"left-end\";\n TooltipPosition[\"rightStart\"] = \"right-start\";\n TooltipPosition[\"rightEnd\"] = \"right-end\";\n})(TooltipPosition || (TooltipPosition = {}));\n// id for associating trigger with the content aria-describedby or aria-labelledby\nlet pfTooltipIdCounter = 1;\nexport const Tooltip = (_a) => {\n var { content: bodyContent, position = 'top', trigger = 'mouseenter focus', isVisible = false, isContentLeftAligned = false, enableFlip = true, className = '', entryDelay = 300, exitDelay = 300, appendTo = () => document.body, zIndex = 9999, minWidth, maxWidth = tooltipMaxWidth.value, distance = 15, aria = 'describedby', \n // For every initial starting position, there are 3 escape positions\n flipBehavior = ['top', 'right', 'bottom', 'left', 'top', 'right', 'bottom'], id = `pf-tooltip-${pfTooltipIdCounter++}`, children, animationDuration = 300, triggerRef, 'aria-live': ariaLive = triggerRef ? 'polite' : 'off', onTooltipHidden = () => { } } = _a, rest = __rest(_a, [\"content\", \"position\", \"trigger\", \"isVisible\", \"isContentLeftAligned\", \"enableFlip\", \"className\", \"entryDelay\", \"exitDelay\", \"appendTo\", \"zIndex\", \"minWidth\", \"maxWidth\", \"distance\", \"aria\", \"flipBehavior\", \"id\", \"children\", \"animationDuration\", \"triggerRef\", 'aria-live', \"onTooltipHidden\"]);\n // could make this a prop in the future (true | false | 'toggle')\n const hideOnClick = true;\n const triggerOnMouseenter = trigger.includes('mouseenter');\n const triggerOnFocus = trigger.includes('focus');\n const triggerOnClick = trigger.includes('click');\n const triggerManually = trigger === 'manual';\n const [visible, setVisible] = React.useState(false);\n const popperRef = React.createRef();\n const onDocumentKeyDown = (event) => {\n if (!triggerManually) {\n if (event.key === KeyTypes.Escape && visible) {\n hide();\n }\n }\n };\n const onTriggerEnter = (event) => {\n if (event.key === KeyTypes.Enter) {\n if (!visible) {\n show();\n }\n else {\n hide();\n }\n }\n };\n React.useEffect(() => {\n if (isVisible) {\n show();\n }\n else {\n hide();\n }\n }, [isVisible]);\n const show = () => {\n setVisible(true);\n };\n const hide = () => {\n setVisible(false);\n };\n const positionModifiers = {\n top: styles.modifiers.top,\n bottom: styles.modifiers.bottom,\n left: styles.modifiers.left,\n right: styles.modifiers.right,\n 'top-start': styles.modifiers.topLeft,\n 'top-end': styles.modifiers.topRight,\n 'bottom-start': styles.modifiers.bottomLeft,\n 'bottom-end': styles.modifiers.bottomRight,\n 'left-start': styles.modifiers.leftTop,\n 'left-end': styles.modifiers.leftBottom,\n 'right-start': styles.modifiers.rightTop,\n 'right-end': styles.modifiers.rightBottom\n };\n const hasCustomMaxWidth = maxWidth !== tooltipMaxWidth.value;\n const content = (React.createElement(\"div\", Object.assign({ \"aria-live\": ariaLive, className: css(styles.tooltip, className), role: \"tooltip\", id: id, style: {\n maxWidth: hasCustomMaxWidth ? maxWidth : null\n }, ref: popperRef }, rest),\n React.createElement(TooltipArrow, null),\n React.createElement(TooltipContent, { isLeftAligned: isContentLeftAligned }, bodyContent)));\n const onDocumentClick = (event, triggerElement) => {\n // event.currentTarget = document\n // event.target could be triggerElement or something else\n if (hideOnClick === true) {\n // hide on inside the toggle as well as on outside clicks\n if (visible) {\n hide();\n }\n else if (event.target === triggerElement) {\n show();\n }\n }\n else if (hideOnClick === 'toggle' && event.target === triggerElement) {\n // prevent outside clicks from hiding but allow it to still be toggled on toggle click\n if (visible) {\n hide();\n }\n else {\n show();\n }\n }\n else if (hideOnClick === false && !visible && event.target === triggerElement) {\n show();\n }\n };\n const addAriaToTrigger = () => {\n if (aria === 'describedby' && children && children.props && !children.props['aria-describedby']) {\n return React.cloneElement(children, { 'aria-describedby': id });\n }\n else if (aria === 'labelledby' && children.props && !children.props['aria-labelledby']) {\n return React.cloneElement(children, { 'aria-labelledby': id });\n }\n return children;\n };\n return (React.createElement(Popper, { trigger: aria !== 'none' && visible ? addAriaToTrigger() : children, triggerRef: triggerRef, popper: content, popperRef: popperRef, minWidth: minWidth !== undefined ? minWidth : 'revert', appendTo: appendTo, isVisible: visible, positionModifiers: positionModifiers, distance: distance, placement: position, onMouseEnter: triggerOnMouseenter && show, onMouseLeave: triggerOnMouseenter && hide, onPopperMouseEnter: triggerOnMouseenter && show, onPopperMouseLeave: triggerOnMouseenter && hide, onFocus: triggerOnFocus && show, onBlur: triggerOnFocus && hide, onDocumentClick: triggerOnClick && onDocumentClick, onDocumentKeyDown: triggerManually ? null : onDocumentKeyDown, onTriggerEnter: triggerManually ? null : onTriggerEnter, enableFlip: enableFlip, zIndex: zIndex, flipBehavior: flipBehavior, animationDuration: animationDuration, entryDelay: entryDelay, exitDelay: exitDelay, onHidden: onTooltipHidden }));\n};\nTooltip.displayName = 'Tooltip';\n//# sourceMappingURL=Tooltip.js.map","import { createIcon } from '../createIcon';\n\nexport const CheckCircleIconConfig = {\n name: 'CheckCircleIcon',\n height: 512,\n width: 512,\n svgPath: 'M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zM227.314 387.314l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.249-16.379-6.249-22.628 0L216 308.118l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.249 16.379 6.249 22.628.001z',\n yOffset: 0,\n xOffset: 0,\n};\n\nexport const CheckCircleIcon = createIcon(CheckCircleIconConfig);\n\nexport default CheckCircleIcon;","import { createIcon } from '../createIcon';\n\nexport const ExclamationCircleIconConfig = {\n name: 'ExclamationCircleIcon',\n height: 512,\n width: 512,\n svgPath: 'M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zm-248 50c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z',\n yOffset: 0,\n xOffset: 0,\n};\n\nexport const ExclamationCircleIcon = createIcon(ExclamationCircleIconConfig);\n\nexport default ExclamationCircleIcon;","import { createIcon } from '../createIcon';\n\nexport const ExclamationTriangleIconConfig = {\n name: 'ExclamationTriangleIcon',\n height: 512,\n width: 576,\n svgPath: 'M569.517 440.013C587.975 472.007 564.806 512 527.94 512H48.054c-36.937 0-59.999-40.055-41.577-71.987L246.423 23.985c18.467-32.009 64.72-31.951 83.154 0l239.94 416.028zM288 354c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z',\n yOffset: 0,\n xOffset: 0,\n};\n\nexport const ExclamationTriangleIcon = createIcon(ExclamationTriangleIconConfig);\n\nexport default ExclamationTriangleIcon;","import { createIcon } from '../createIcon';\n\nexport const InfoCircleIconConfig = {\n name: 'InfoCircleIcon',\n height: 512,\n width: 512,\n svgPath: 'M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 110c23.196 0 42 18.804 42 42s-18.804 42-42 42-42-18.804-42-42 18.804-42 42-42zm56 254c0 6.627-5.373 12-12 12h-88c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h12v-64h-12c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h64c6.627 0 12 5.373 12 12v100h12c6.627 0 12 5.373 12 12v24z',\n yOffset: 0,\n xOffset: 0,\n};\n\nexport const InfoCircleIcon = createIcon(InfoCircleIconConfig);\n\nexport default InfoCircleIcon;","import { createIcon } from '../createIcon';\n\nexport const BellIconConfig = {\n name: 'BellIcon',\n height: 1024,\n width: 896,\n svgPath: 'M448,0 C465.333333,0 480.333333,6.33333333 493,19 C505.666667,31.6666667 512,46.6666667 512,64 L512,106 L514.23,106.45 C587.89,121.39 648.48,157.24 696,214 C744,271.333333 768,338.666667 768,416 C768,500 780,568.666667 804,622 C818.666667,652.666667 841.333333,684 872,716 C873.773676,718.829136 875.780658,721.505113 878,724 C890,737.333333 896,752.333333 896,769 C896,785.666667 890,800.333333 878,813 C866,825.666667 850.666667,832 832,832 L63.3,832 C44.9533333,831.84 29.8533333,825.506667 18,813 C6,800.333333 0,785.666667 0,769 C0,752.333333 6,737.333333 18,724 L24,716 L25.06,714.9 C55.1933333,683.28 77.5066667,652.313333 92,622 C116,568.666667 128,500 128,416 C128,338.666667 152,271.333333 200,214 C248,156.666667 309.333333,120.666667 384,106 L384,63.31 C384.166667,46.27 390.5,31.5 403,19 C415.666667,6.33333333 430.666667,0 448,0 Z M576,896 L576,897.08 C575.74,932.6 563.073333,962.573333 538,987 C512.666667,1011.66667 482.666667,1024 448,1024 C413.333333,1024 383.333333,1011.66667 358,987 C332.666667,962.333333 320,932 320,896 L576,896 Z',\n yOffset: 0,\n xOffset: 0,\n};\n\nexport const BellIcon = createIcon(BellIconConfig);\n\nexport default BellIcon;","import { __rest } from \"tslib\";\nimport * as React from 'react';\nimport modalStyles from '@patternfly/react-styles/css/components/ModalBox/modal-box.mjs';\nimport { css } from '@patternfly/react-styles';\nimport { capitalize } from '../../helpers';\nimport { Tooltip } from '../Tooltip';\nimport CheckCircleIcon from '@patternfly/react-icons/dist/esm/icons/check-circle-icon';\nimport ExclamationCircleIcon from '@patternfly/react-icons/dist/esm/icons/exclamation-circle-icon';\nimport ExclamationTriangleIcon from '@patternfly/react-icons/dist/esm/icons/exclamation-triangle-icon';\nimport InfoCircleIcon from '@patternfly/react-icons/dist/esm/icons/info-circle-icon';\nimport BellIcon from '@patternfly/react-icons/dist/esm/icons/bell-icon';\nimport { useIsomorphicLayoutEffect } from '../../helpers';\nexport const isVariantIcon = (icon) => ['success', 'danger', 'warning', 'info', 'custom'].includes(icon);\nexport const ModalBoxTitle = (_a) => {\n var { className = '', id, title, titleIconVariant, titleLabel = '' } = _a, props = __rest(_a, [\"className\", \"id\", \"title\", \"titleIconVariant\", \"titleLabel\"]);\n const [hasTooltip, setHasTooltip] = React.useState(false);\n const h1 = React.useRef(null);\n const label = titleLabel || (isVariantIcon(titleIconVariant) ? `${capitalize(titleIconVariant)} alert:` : titleLabel);\n const variantIcons = {\n success: React.createElement(CheckCircleIcon, null),\n danger: React.createElement(ExclamationCircleIcon, null),\n warning: React.createElement(ExclamationTriangleIcon, null),\n info: React.createElement(InfoCircleIcon, null),\n custom: React.createElement(BellIcon, null)\n };\n const CustomIcon = !isVariantIcon(titleIconVariant) && titleIconVariant;\n useIsomorphicLayoutEffect(() => {\n setHasTooltip(h1.current && h1.current.offsetWidth < h1.current.scrollWidth);\n }, []);\n const content = (React.createElement(\"h1\", Object.assign({ id: id, ref: h1, className: css(modalStyles.modalBoxTitle, titleIconVariant && modalStyles.modifiers.icon, className) }, props),\n titleIconVariant && (React.createElement(\"span\", { className: css(modalStyles.modalBoxTitleIcon) }, isVariantIcon(titleIconVariant) ? variantIcons[titleIconVariant] : React.createElement(CustomIcon, null))),\n label && React.createElement(\"span\", { className: \"pf-v5-screen-reader\" }, label),\n React.createElement(\"span\", { className: css(modalStyles.modalBoxTitleText) }, title)));\n return hasTooltip ? React.createElement(Tooltip, { content: title }, content) : content;\n};\nModalBoxTitle.displayName = 'ModalBoxTitle';\n//# sourceMappingURL=ModalBoxTitle.js.map","import { __rest } from \"tslib\";\nimport * as React from 'react';\nimport { FocusTrap } from '../../helpers';\nimport modalStyles from '@patternfly/react-styles/css/components/ModalBox/modal-box.mjs';\nimport bullsEyeStyles from '@patternfly/react-styles/css/layouts/Bullseye/bullseye.mjs';\nimport { css } from '@patternfly/react-styles';\nimport { getOUIAProps } from '../../helpers';\nimport { Backdrop } from '../Backdrop/Backdrop';\nimport { ModalBoxBody } from './ModalBoxBody';\nimport { ModalBoxCloseButton } from './ModalBoxCloseButton';\nimport { ModalBox } from './ModalBox';\nimport { ModalBoxFooter } from './ModalBoxFooter';\nimport { ModalBoxDescription } from './ModalBoxDescription';\nimport { ModalBoxHeader } from './ModalBoxHeader';\nimport { ModalBoxTitle, isVariantIcon } from './ModalBoxTitle';\nexport const ModalContent = (_a) => {\n var { children, className = '', isOpen = false, header = null, help = null, description = null, title = '', titleIconVariant = null, titleLabel = '', 'aria-label': ariaLabel = '', 'aria-describedby': ariaDescribedby, 'aria-labelledby': ariaLabelledby, bodyAriaLabel, bodyAriaRole, showClose = true, footer = null, actions = [], onClose = () => undefined, variant = 'default', position, positionOffset, width, maxWidth, boxId, labelId, descriptorId, disableFocusTrap = false, hasNoBodyWrapper = false, ouiaId, ouiaSafe = true, elementToFocus } = _a, props = __rest(_a, [\"children\", \"className\", \"isOpen\", \"header\", \"help\", \"description\", \"title\", \"titleIconVariant\", \"titleLabel\", 'aria-label', 'aria-describedby', 'aria-labelledby', \"bodyAriaLabel\", \"bodyAriaRole\", \"showClose\", \"footer\", \"actions\", \"onClose\", \"variant\", \"position\", \"positionOffset\", \"width\", \"maxWidth\", \"boxId\", \"labelId\", \"descriptorId\", \"disableFocusTrap\", \"hasNoBodyWrapper\", \"ouiaId\", \"ouiaSafe\", \"elementToFocus\"]);\n if (!isOpen) {\n return null;\n }\n const modalBoxHeader = header ? (React.createElement(ModalBoxHeader, { help: help }, header)) : (title && (React.createElement(ModalBoxHeader, { help: help },\n React.createElement(ModalBoxTitle, { title: title, titleIconVariant: titleIconVariant, titleLabel: titleLabel, id: labelId }),\n description && React.createElement(ModalBoxDescription, { id: descriptorId }, description))));\n const modalBoxFooter = footer ? (React.createElement(ModalBoxFooter, null, footer)) : (actions.length > 0 && React.createElement(ModalBoxFooter, null, actions));\n const defaultModalBodyAriaRole = bodyAriaLabel ? 'region' : undefined;\n const hasNoDescription = !description && !ariaDescribedby;\n const id = hasNoDescription ? descriptorId : undefined;\n const modalBody = hasNoBodyWrapper ? (children) : (React.createElement(ModalBoxBody, Object.assign({ \"aria-label\": bodyAriaLabel, role: bodyAriaRole || defaultModalBodyAriaRole }, props, { id: id }), children));\n const ariaLabelledbyFormatted = () => {\n if (ariaLabelledby === null) {\n return null;\n }\n const idRefList = [];\n if ((ariaLabel && boxId) !== '') {\n idRefList.push(ariaLabel && boxId);\n }\n if (ariaLabelledby) {\n idRefList.push(ariaLabelledby);\n }\n if (title) {\n idRefList.push(labelId);\n }\n return idRefList.join(' ');\n };\n const modalBox = (React.createElement(ModalBox, Object.assign({ id: boxId, className: css(className, isVariantIcon(titleIconVariant) && modalStyles.modifiers[titleIconVariant]), variant: variant, position: position, positionOffset: positionOffset, \"aria-label\": ariaLabel, \"aria-labelledby\": ariaLabelledbyFormatted(), \"aria-describedby\": ariaDescribedby || (hasNoBodyWrapper ? null : descriptorId) }, getOUIAProps(ModalContent.displayName, ouiaId, ouiaSafe), { style: Object.assign(Object.assign({}, (width && { '--pf-v5-c-modal-box--Width': typeof width !== 'number' ? width : `${width}px` })), (maxWidth && {\n '--pf-v5-c-modal-box--MaxWidth': typeof maxWidth !== 'number' ? maxWidth : `${maxWidth}px`\n })) }),\n showClose && React.createElement(ModalBoxCloseButton, { onClose: (event) => onClose(event), ouiaId: ouiaId }),\n modalBoxHeader,\n modalBody,\n modalBoxFooter));\n return (React.createElement(Backdrop, null,\n React.createElement(FocusTrap, { active: !disableFocusTrap, focusTrapOptions: {\n clickOutsideDeactivates: true,\n tabbableOptions: { displayCheck: 'none' },\n // FocusTrap's initialFocus can accept false as a value to prevent initial focus.\n // We want to prevent this in case false is ever passed in.\n initialFocus: elementToFocus || undefined\n }, className: css(bullsEyeStyles.bullseye) }, modalBox)));\n};\nModalContent.displayName = 'ModalContent';\n//# sourceMappingURL=ModalContent.js.map","import { __rest } from \"tslib\";\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { canUseDOM, KeyTypes } from '../../helpers';\nimport { css } from '@patternfly/react-styles';\nimport styles from '@patternfly/react-styles/css/components/Backdrop/backdrop.mjs';\nimport { ModalContent } from './ModalContent';\nimport { getDefaultOUIAId } from '../../helpers';\nexport var ModalVariant;\n(function (ModalVariant) {\n ModalVariant[\"small\"] = \"small\";\n ModalVariant[\"medium\"] = \"medium\";\n ModalVariant[\"large\"] = \"large\";\n ModalVariant[\"default\"] = \"default\";\n})(ModalVariant || (ModalVariant = {}));\nclass Modal extends React.Component {\n constructor(props) {\n super(props);\n this.boxId = '';\n this.labelId = '';\n this.descriptorId = '';\n this.handleEscKeyClick = (event) => {\n var _a, _b;\n const { onEscapePress } = this.props;\n if (event.key === KeyTypes.Escape && this.props.isOpen) {\n onEscapePress ? onEscapePress(event) : (_b = (_a = this.props).onClose) === null || _b === void 0 ? void 0 : _b.call(_a, event);\n }\n };\n this.getElement = (appendTo) => {\n if (typeof appendTo === 'function') {\n return appendTo();\n }\n return appendTo || document.body;\n };\n this.toggleSiblingsFromScreenReaders = (hide) => {\n const { appendTo } = this.props;\n const target = this.getElement(appendTo);\n const bodyChildren = target.children;\n for (const child of Array.from(bodyChildren)) {\n if (child !== this.state.container) {\n hide ? child.setAttribute('aria-hidden', '' + hide) : child.removeAttribute('aria-hidden');\n }\n }\n };\n this.isEmpty = (value) => value === null || value === undefined || value === '';\n const boxIdNum = Modal.currentId++;\n const labelIdNum = boxIdNum + 1;\n const descriptorIdNum = boxIdNum + 2;\n this.boxId = props.id || `pf-modal-part-${boxIdNum}`;\n this.labelId = `pf-modal-part-${labelIdNum}`;\n this.descriptorId = `pf-modal-part-${descriptorIdNum}`;\n this.state = {\n container: undefined,\n ouiaStateId: getDefaultOUIAId(Modal.displayName, props.variant)\n };\n }\n componentDidMount() {\n const { appendTo, title, 'aria-label': ariaLabel, 'aria-labelledby': ariaLabelledby, hasNoBodyWrapper, header } = this.props;\n const target = this.getElement(appendTo);\n const container = document.createElement('div');\n this.setState({ container });\n target.appendChild(container);\n target.addEventListener('keydown', this.handleEscKeyClick, false);\n if (this.props.isOpen) {\n target.classList.add(css(styles.backdropOpen));\n }\n else {\n target.classList.remove(css(styles.backdropOpen));\n }\n if (this.isEmpty(title) && this.isEmpty(ariaLabel) && this.isEmpty(ariaLabelledby)) {\n // eslint-disable-next-line no-console\n console.error('Modal: Specify at least one of: title, aria-label, aria-labelledby.');\n }\n if (this.isEmpty(ariaLabel) && this.isEmpty(ariaLabelledby) && (hasNoBodyWrapper || header)) {\n // eslint-disable-next-line no-console\n console.error('Modal: When using hasNoBodyWrapper or setting a custom header, ensure you assign an accessible name to the the modal container with aria-label or aria-labelledby.');\n }\n }\n componentDidUpdate() {\n const { appendTo } = this.props;\n const target = this.getElement(appendTo);\n if (this.props.isOpen) {\n target.classList.add(css(styles.backdropOpen));\n this.toggleSiblingsFromScreenReaders(true);\n }\n else {\n target.classList.remove(css(styles.backdropOpen));\n this.toggleSiblingsFromScreenReaders(false);\n }\n }\n componentWillUnmount() {\n const { appendTo } = this.props;\n const target = this.getElement(appendTo);\n if (this.state.container) {\n target.removeChild(this.state.container);\n }\n target.removeEventListener('keydown', this.handleEscKeyClick, false);\n target.classList.remove(css(styles.backdropOpen));\n this.toggleSiblingsFromScreenReaders(false);\n }\n render() {\n const _a = this.props, { \n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n appendTo, \n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n onEscapePress, 'aria-labelledby': ariaLabelledby, 'aria-label': ariaLabel, 'aria-describedby': ariaDescribedby, bodyAriaLabel, bodyAriaRole, title, titleIconVariant, titleLabel, ouiaId, ouiaSafe, position, elementToFocus } = _a, props = __rest(_a, [\"appendTo\", \"onEscapePress\", 'aria-labelledby', 'aria-label', 'aria-describedby', \"bodyAriaLabel\", \"bodyAriaRole\", \"title\", \"titleIconVariant\", \"titleLabel\", \"ouiaId\", \"ouiaSafe\", \"position\", \"elementToFocus\"]);\n const { container } = this.state;\n if (!canUseDOM || !container) {\n return null;\n }\n return ReactDOM.createPortal(React.createElement(ModalContent, Object.assign({}, props, { boxId: this.boxId, labelId: this.labelId, descriptorId: this.descriptorId, title: title, titleIconVariant: titleIconVariant, titleLabel: titleLabel, \"aria-label\": ariaLabel, \"aria-describedby\": ariaDescribedby, \"aria-labelledby\": ariaLabelledby, bodyAriaLabel: bodyAriaLabel, bodyAriaRole: bodyAriaRole, ouiaId: ouiaId !== undefined ? ouiaId : this.state.ouiaStateId, ouiaSafe: ouiaSafe, position: position, elementToFocus: elementToFocus })), container);\n }\n}\nModal.displayName = 'Modal';\nModal.currentId = 0;\nModal.defaultProps = {\n className: '',\n isOpen: false,\n title: '',\n titleIconVariant: null,\n titleLabel: '',\n 'aria-label': '',\n showClose: true,\n 'aria-describedby': '',\n 'aria-labelledby': '',\n id: undefined,\n actions: [],\n onClose: () => undefined,\n variant: 'default',\n hasNoBodyWrapper: false,\n appendTo: () => document.body,\n ouiaSafe: true,\n position: 'default'\n};\nexport { Modal };\n//# sourceMappingURL=Modal.js.map","import { createIcon } from '../createIcon';\n\nexport const AngleRightIconConfig = {\n name: 'AngleRightIcon',\n height: 512,\n width: 256,\n svgPath: 'M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z',\n yOffset: 0,\n xOffset: 0,\n};\n\nexport const AngleRightIcon = createIcon(AngleRightIconConfig);\n\nexport default AngleRightIcon;","import './alert.css';\nexport default {\n \"alert\": \"pf-v5-c-alert\",\n \"alertAction\": \"pf-v5-c-alert__action\",\n \"alertActionGroup\": \"pf-v5-c-alert__action-group\",\n \"alertDescription\": \"pf-v5-c-alert__description\",\n \"alertIcon\": \"pf-v5-c-alert__icon\",\n \"alertTitle\": \"pf-v5-c-alert__title\",\n \"alertToggle\": \"pf-v5-c-alert__toggle\",\n \"alertToggleIcon\": \"pf-v5-c-alert__toggle-icon\",\n \"button\": \"pf-v5-c-button\",\n \"dirRtl\": \"pf-v5-m-dir-rtl\",\n \"modifiers\": {\n \"custom\": \"pf-m-custom\",\n \"success\": \"pf-m-success\",\n \"danger\": \"pf-m-danger\",\n \"warning\": \"pf-m-warning\",\n \"info\": \"pf-m-info\",\n \"inline\": \"pf-m-inline\",\n \"plain\": \"pf-m-plain\",\n \"expandable\": \"pf-m-expandable\",\n \"expanded\": \"pf-m-expanded\",\n \"truncate\": \"pf-m-truncate\"\n },\n \"themeDark\": \"pf-v5-theme-dark\"\n};","import { __rest } from \"tslib\";\nimport * as React from 'react';\nimport { css } from '@patternfly/react-styles';\nimport styles from '@patternfly/react-styles/css/components/Alert/alert.mjs';\nimport CheckCircleIcon from '@patternfly/react-icons/dist/esm/icons/check-circle-icon';\nimport ExclamationCircleIcon from '@patternfly/react-icons/dist/esm/icons/exclamation-circle-icon';\nimport ExclamationTriangleIcon from '@patternfly/react-icons/dist/esm/icons/exclamation-triangle-icon';\nimport InfoCircleIcon from '@patternfly/react-icons/dist/esm/icons/info-circle-icon';\nimport BellIcon from '@patternfly/react-icons/dist/esm/icons/bell-icon';\nexport const variantIcons = {\n success: CheckCircleIcon,\n danger: ExclamationCircleIcon,\n warning: ExclamationTriangleIcon,\n info: InfoCircleIcon,\n custom: BellIcon\n};\nexport const AlertIcon = (_a) => {\n var { variant, customIcon, className = '' } = _a, props = __rest(_a, [\"variant\", \"customIcon\", \"className\"]);\n const Icon = variantIcons[variant];\n return Icon ? (React.createElement(\"div\", Object.assign({}, props, { className: css(styles.alertIcon, className) }), customIcon || React.createElement(Icon, null))) : null;\n};\n//# sourceMappingURL=AlertIcon.js.map","import * as React from 'react';\nexport const AlertContext = React.createContext(null);\n//# sourceMappingURL=AlertContext.js.map","export const c_alert__title_max_lines = {\n \"name\": \"--pf-v5-c-alert__title--max-lines\",\n \"value\": \"1\",\n \"var\": \"var(--pf-v5-c-alert__title--max-lines)\"\n};\nexport default c_alert__title_max_lines;","import { __rest } from \"tslib\";\nimport * as React from 'react';\nimport { Button, ButtonVariant } from '../Button';\nimport { AlertContext } from './AlertContext';\nimport AngleRightIcon from '@patternfly/react-icons/dist/esm/icons/angle-right-icon';\nimport { css } from '@patternfly/react-styles';\nimport styles from '@patternfly/react-styles/css/components/Alert/alert.mjs';\nexport const AlertToggleExpandButton = (_a) => {\n var { 'aria-label': ariaLabel = '', variantLabel, onToggleExpand, isExpanded = false } = _a, props = __rest(_a, ['aria-label', \"variantLabel\", \"onToggleExpand\", \"isExpanded\"]);\n const { title, variantLabel: alertVariantLabel } = React.useContext(AlertContext);\n return (React.createElement(Button, Object.assign({ variant: ButtonVariant.plain, onClick: onToggleExpand, \"aria-expanded\": isExpanded, \"aria-label\": ariaLabel === '' ? `Toggle ${variantLabel || alertVariantLabel} alert: ${title}` : ariaLabel }, props),\n React.createElement(\"span\", { className: css(styles.alertToggleIcon) },\n React.createElement(AngleRightIcon, { \"aria-hidden\": \"true\" }))));\n};\nAlertToggleExpandButton.displayName = 'AlertToggleExpandButton';\n//# sourceMappingURL=AlertToggleExpandButton.js.map","import { __rest } from \"tslib\";\nimport * as React from 'react';\nimport { useState } from 'react';\nimport { css } from '@patternfly/react-styles';\nimport styles from '@patternfly/react-styles/css/components/Alert/alert.mjs';\nimport { AlertIcon } from './AlertIcon';\nimport { capitalize, useOUIAProps } from '../../helpers';\nimport { AlertContext } from './AlertContext';\nimport maxLines from '@patternfly/react-tokens/dist/esm/c_alert__title_max_lines';\nimport { Tooltip } from '../Tooltip';\nimport { AlertToggleExpandButton } from './AlertToggleExpandButton';\nexport var AlertVariant;\n(function (AlertVariant) {\n AlertVariant[\"success\"] = \"success\";\n AlertVariant[\"danger\"] = \"danger\";\n AlertVariant[\"warning\"] = \"warning\";\n AlertVariant[\"info\"] = \"info\";\n AlertVariant[\"custom\"] = \"custom\";\n})(AlertVariant || (AlertVariant = {}));\nexport const Alert = (_a) => {\n var { variant = AlertVariant.custom, isInline = false, isPlain = false, isLiveRegion = false, variantLabel = `${capitalize(variant)} alert:`, actionClose, actionLinks, title, component = 'h4', children = '', className = '', ouiaId, ouiaSafe = true, timeout = false, timeoutAnimation = 3000, onTimeout = () => { }, truncateTitle = 0, tooltipPosition, customIcon, isExpandable = false, toggleAriaLabel = `${capitalize(variant)} alert details`, onMouseEnter = () => { }, onMouseLeave = () => { }, id } = _a, props = __rest(_a, [\"variant\", \"isInline\", \"isPlain\", \"isLiveRegion\", \"variantLabel\", \"actionClose\", \"actionLinks\", \"title\", \"component\", \"children\", \"className\", \"ouiaId\", \"ouiaSafe\", \"timeout\", \"timeoutAnimation\", \"onTimeout\", \"truncateTitle\", \"tooltipPosition\", \"customIcon\", \"isExpandable\", \"toggleAriaLabel\", \"onMouseEnter\", \"onMouseLeave\", \"id\"]);\n const ouiaProps = useOUIAProps(Alert.displayName, ouiaId, ouiaSafe, variant);\n const getHeadingContent = (React.createElement(React.Fragment, null,\n React.createElement(\"span\", { className: \"pf-v5-screen-reader\" }, variantLabel),\n title));\n const titleRef = React.useRef(null);\n const TitleComponent = component;\n const divRef = React.useRef();\n const [isTooltipVisible, setIsTooltipVisible] = useState(false);\n React.useEffect(() => {\n if (!titleRef.current || !truncateTitle) {\n return;\n }\n titleRef.current.style.setProperty(maxLines.name, truncateTitle.toString());\n const showTooltip = titleRef.current && titleRef.current.offsetHeight < titleRef.current.scrollHeight;\n if (isTooltipVisible !== showTooltip) {\n setIsTooltipVisible(showTooltip);\n }\n }, [titleRef, truncateTitle, isTooltipVisible]);\n const [timedOut, setTimedOut] = useState(false);\n const [timedOutAnimation, setTimedOutAnimation] = useState(true);\n const [isMouseOver, setIsMouseOver] = useState();\n const [containsFocus, setContainsFocus] = useState();\n const dismissed = timedOut && timedOutAnimation && !isMouseOver && !containsFocus;\n React.useEffect(() => {\n const calculatedTimeout = timeout === true ? 8000 : Number(timeout);\n if (calculatedTimeout > 0) {\n const timer = setTimeout(() => setTimedOut(true), calculatedTimeout);\n return () => clearTimeout(timer);\n }\n }, [timeout]);\n React.useEffect(() => {\n const onDocumentFocus = () => {\n if (divRef.current) {\n if (divRef.current.contains(document.activeElement)) {\n setContainsFocus(true);\n setTimedOutAnimation(false);\n }\n else if (containsFocus) {\n setContainsFocus(false);\n }\n }\n };\n document.addEventListener('focus', onDocumentFocus, true);\n return () => document.removeEventListener('focus', onDocumentFocus, true);\n }, [containsFocus]);\n React.useEffect(() => {\n if (containsFocus === false || isMouseOver === false) {\n const timer = setTimeout(() => setTimedOutAnimation(true), timeoutAnimation);\n return () => clearTimeout(timer);\n }\n }, [containsFocus, isMouseOver, timeoutAnimation]);\n React.useEffect(() => {\n dismissed && onTimeout();\n }, [dismissed, onTimeout]);\n const [isExpanded, setIsExpanded] = useState(false);\n const onToggleExpand = () => {\n setIsExpanded(!isExpanded);\n };\n const myOnMouseEnter = (ev) => {\n setIsMouseOver(true);\n setTimedOutAnimation(false);\n onMouseEnter(ev);\n };\n const myOnMouseLeave = (ev) => {\n setIsMouseOver(false);\n onMouseLeave(ev);\n };\n if (dismissed) {\n return null;\n }\n const Title = (React.createElement(TitleComponent, Object.assign({}, (isTooltipVisible && { tabIndex: 0 }), { ref: titleRef, className: css(styles.alertTitle, truncateTitle && styles.modifiers.truncate) }), getHeadingContent));\n return (React.createElement(\"div\", Object.assign({ ref: divRef, className: css(styles.alert, isInline && styles.modifiers.inline, isPlain && styles.modifiers.plain, isExpandable && styles.modifiers.expandable, isExpanded && styles.modifiers.expanded, styles.modifiers[variant], className) }, ouiaProps, (isLiveRegion && {\n 'aria-live': 'polite',\n 'aria-atomic': 'false'\n }), { onMouseEnter: myOnMouseEnter, onMouseLeave: myOnMouseLeave, id: id }, props),\n isExpandable && (React.createElement(AlertContext.Provider, { value: { title, variantLabel } },\n React.createElement(\"div\", { className: css(styles.alertToggle) },\n React.createElement(AlertToggleExpandButton, { isExpanded: isExpanded, onToggleExpand: onToggleExpand, \"aria-label\": toggleAriaLabel })))),\n React.createElement(AlertIcon, { variant: variant, customIcon: customIcon }),\n isTooltipVisible ? (React.createElement(Tooltip, { content: getHeadingContent, position: tooltipPosition }, Title)) : (Title),\n actionClose && (React.createElement(AlertContext.Provider, { value: { title, variantLabel } },\n React.createElement(\"div\", { className: css(styles.alertAction) }, actionClose))),\n children && (!isExpandable || (isExpandable && isExpanded)) && (React.createElement(\"div\", { className: css(styles.alertDescription) }, children)),\n actionLinks && React.createElement(\"div\", { className: css(styles.alertActionGroup) }, actionLinks)));\n};\nAlert.displayName = 'Alert';\n//# sourceMappingURL=Alert.js.map","import { __rest } from \"tslib\";\nimport * as React from 'react';\nimport { Button, ButtonVariant } from '../Button';\nimport TimesIcon from '@patternfly/react-icons/dist/esm/icons/times-icon';\nimport { AlertContext } from './AlertContext';\nexport const AlertActionCloseButton = (_a) => {\n var { className, onClose = () => undefined, 'aria-label': ariaLabel = '', variantLabel } = _a, props = __rest(_a, [\"className\", \"onClose\", 'aria-label', \"variantLabel\"]);\n return (React.createElement(AlertContext.Consumer, null, ({ title, variantLabel: alertVariantLabel }) => (React.createElement(Button, Object.assign({ variant: ButtonVariant.plain, onClick: onClose, \"aria-label\": ariaLabel === '' ? `Close ${variantLabel || alertVariantLabel} alert: ${title}` : ariaLabel, className: className }, props),\n React.createElement(TimesIcon, null)))));\n};\nAlertActionCloseButton.displayName = 'AlertActionCloseButton';\n//# sourceMappingURL=AlertActionCloseButton.js.map","import './alert-group.css';\nexport default {\n \"alertGroup\": \"pf-v5-c-alert-group\",\n \"alertGroupOverflowButton\": \"pf-v5-c-alert-group__overflow-button\",\n \"modifiers\": {\n \"toast\": \"pf-m-toast\"\n }\n};","import { __rest } from \"tslib\";\nimport * as React from 'react';\nimport { css } from '@patternfly/react-styles';\nimport styles from '@patternfly/react-styles/css/components/Alert/alert-group.mjs';\nexport const AlertGroupInline = (_a) => {\n var { className, children, isToast, isLiveRegion, onOverflowClick, overflowMessage } = _a, rest = __rest(_a, [\"className\", \"children\", \"isToast\", \"isLiveRegion\", \"onOverflowClick\", \"overflowMessage\"]);\n return (React.createElement(\"ul\", Object.assign({ role: \"list\", \"aria-live\": isLiveRegion ? 'polite' : null, \"aria-atomic\": isLiveRegion ? false : null, className: css(styles.alertGroup, className, isToast ? styles.modifiers.toast : '') }, rest),\n React.Children.toArray(children).map((alert, index) => {\n var _a;\n return (React.createElement(\"li\", { key: ((_a = alert.props) === null || _a === void 0 ? void 0 : _a.id) || index }, alert));\n }),\n overflowMessage && (React.createElement(\"li\", null,\n React.createElement(\"button\", { onClick: onOverflowClick, className: css(styles.alertGroupOverflowButton) }, overflowMessage)))));\n};\nAlertGroupInline.displayName = 'AlertGroupInline';\n//# sourceMappingURL=AlertGroupInline.js.map","import { __rest } from \"tslib\";\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { canUseDOM } from '../../helpers';\nimport { AlertGroupInline } from './AlertGroupInline';\nclass AlertGroup extends React.Component {\n constructor() {\n super(...arguments);\n this.state = {\n container: undefined\n };\n }\n componentDidMount() {\n const container = document.createElement('div');\n const target = this.getTargetElement();\n this.setState({ container });\n target.appendChild(container);\n }\n componentWillUnmount() {\n const target = this.getTargetElement();\n if (this.state.container) {\n target.removeChild(this.state.container);\n }\n }\n getTargetElement() {\n const appendTo = this.props.appendTo;\n if (typeof appendTo === 'function') {\n return appendTo();\n }\n return appendTo || document.body;\n }\n render() {\n const _a = this.props, { className, children, isToast, isLiveRegion, onOverflowClick, overflowMessage, 'aria-label': ariaLabel, \n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n appendTo } = _a, // dont pass down to ul\n props = __rest(_a, [\"className\", \"children\", \"isToast\", \"isLiveRegion\", \"onOverflowClick\", \"overflowMessage\", 'aria-label', \"appendTo\"]);\n const alertGroup = (React.createElement(AlertGroupInline, Object.assign({ onOverflowClick: onOverflowClick, className: className, isToast: isToast, isLiveRegion: isLiveRegion, overflowMessage: overflowMessage, \"aria-label\": ariaLabel }, props), children));\n if (!this.props.isToast) {\n return alertGroup;\n }\n const container = this.state.container;\n if (!canUseDOM || !container) {\n return null;\n }\n return ReactDOM.createPortal(alertGroup, container);\n }\n}\nAlertGroup.displayName = 'AlertGroup';\nexport { AlertGroup };\n//# sourceMappingURL=AlertGroup.js.map","import './avatar.css';\nexport default {\n \"avatar\": \"pf-v5-c-avatar\",\n \"modifiers\": {\n \"light\": \"pf-m-light\",\n \"dark\": \"pf-m-dark\",\n \"sm\": \"pf-m-sm\",\n \"md\": \"pf-m-md\",\n \"lg\": \"pf-m-lg\",\n \"xl\": \"pf-m-xl\"\n }\n};","import { __rest } from \"tslib\";\nimport * as React from 'react';\nimport styles from '@patternfly/react-styles/css/components/Avatar/avatar.mjs';\nimport { css } from '@patternfly/react-styles';\nexport const Avatar = (_a) => {\n var { className = '', src = '', alt, border, size } = _a, props = __rest(_a, [\"className\", \"src\", \"alt\", \"border\", \"size\"]);\n return (React.createElement(\"img\", Object.assign({ src: src, alt: alt, className: css(styles.avatar, styles.modifiers[size], border === 'light' && styles.modifiers.light, border === 'dark' && styles.modifiers.dark, className) }, props)));\n};\nAvatar.displayName = 'Avatar';\n//# sourceMappingURL=Avatar.js.map","import './brand.css';\nexport default {\n \"brand\": \"pf-v5-c-brand\",\n \"modifiers\": {\n \"picture\": \"pf-m-picture\"\n }\n};","export const c_brand_Height = {\n \"name\": \"--pf-v5-c-brand--Height\",\n \"value\": \"auto\",\n \"var\": \"var(--pf-v5-c-brand--Height)\"\n};\nexport default c_brand_Height;","export const c_brand_Width = {\n \"name\": \"--pf-v5-c-brand--Width\",\n \"value\": \"auto\",\n \"var\": \"var(--pf-v5-c-brand--Width)\"\n};\nexport default c_brand_Width;","import { __rest } from \"tslib\";\nimport * as React from 'react';\nimport { css } from '@patternfly/react-styles';\nimport styles from '@patternfly/react-styles/css/components/Brand/brand.mjs';\nimport { setBreakpointCssVars } from '../../helpers';\nimport cssBrandHeight from '@patternfly/react-tokens/dist/esm/c_brand_Height';\nimport cssBrandWidth from '@patternfly/react-tokens/dist/esm/c_brand_Width';\nexport const Brand = (_a) => {\n var { className = '', src = '', alt, children, widths, heights, style } = _a, props = __rest(_a, [\"className\", \"src\", \"alt\", \"children\", \"widths\", \"heights\", \"style\"]);\n let responsiveStyles;\n if (widths !== undefined) {\n responsiveStyles = Object.assign({}, setBreakpointCssVars(widths, cssBrandWidth.name));\n }\n if (heights !== undefined) {\n responsiveStyles = Object.assign(Object.assign({}, responsiveStyles), setBreakpointCssVars(heights, cssBrandHeight.name));\n }\n return (\n /** the brand component currently contains no styling the 'pf-v5-c-brand' string will be used for the className */\n children !== undefined ? (React.createElement(\"picture\", Object.assign({ className: css(styles.brand, styles.modifiers.picture, className), style: Object.assign(Object.assign({}, style), responsiveStyles) }, props),\n children,\n React.createElement(\"img\", { src: src, alt: alt }))) : (React.createElement(\"img\", Object.assign({}, props, { className: css(styles.brand, className), style: Object.assign(Object.assign({}, style), responsiveStyles), src: src, alt: alt }))));\n};\nBrand.displayName = 'Brand';\n//# sourceMappingURL=Brand.js.map","import './form-control.css';\nexport default {\n \"formControl\": \"pf-v5-c-form-control\",\n \"formControlIcon\": \"pf-v5-c-form-control__icon\",\n \"formControlToggleIcon\": \"pf-v5-c-form-control__toggle-icon\",\n \"formControlUtilities\": \"pf-v5-c-form-control__utilities\",\n \"modifiers\": {\n \"readonly\": \"pf-m-readonly\",\n \"success\": \"pf-m-success\",\n \"warning\": \"pf-m-warning\",\n \"error\": \"pf-m-error\",\n \"plain\": \"pf-m-plain\",\n \"expanded\": \"pf-m-expanded\",\n \"disabled\": \"pf-m-disabled\",\n \"icon\": \"pf-m-icon\",\n \"placeholder\": \"pf-m-placeholder\",\n \"resizeVertical\": \"pf-m-resize-vertical\",\n \"resizeHorizontal\": \"pf-m-resize-horizontal\",\n \"resizeBoth\": \"pf-m-resize-both\",\n \"status\": \"pf-m-status\"\n },\n \"themeDark\": \"pf-v5-theme-dark\"\n};","import { __rest } from \"tslib\";\nimport * as React from 'react';\nimport styles from '@patternfly/react-styles/css/components/FormControl/form-control.mjs';\nimport { css } from '@patternfly/react-styles';\nimport CheckCircleIcon from '@patternfly/react-icons/dist/esm/icons/check-circle-icon';\nimport ExclamationCircleIcon from '@patternfly/react-icons/dist/esm/icons/exclamation-circle-icon';\nimport ExclamationTriangleIcon from '@patternfly/react-icons/dist/esm/icons/exclamation-triangle-icon';\nexport const statusIcons = {\n success: CheckCircleIcon,\n error: ExclamationCircleIcon,\n warning: ExclamationTriangleIcon\n};\nexport const FormControlIcon = (_a) => {\n var { status, customIcon, className } = _a, props = __rest(_a, [\"status\", \"customIcon\", \"className\"]);\n const StatusIcon = status && statusIcons[status];\n return (React.createElement(\"span\", Object.assign({ className: css(styles.formControlIcon, status && styles.modifiers.status, className) }, props), customIcon || React.createElement(StatusIcon, null)));\n};\n//# sourceMappingURL=FormControlIcon.js.map","import { __rest } from \"tslib\";\nimport * as React from 'react';\nimport styles from '@patternfly/react-styles/css/components/FormControl/form-control.mjs';\nimport { css } from '@patternfly/react-styles';\nimport { ValidatedOptions } from '../../helpers/constants';\nimport { trimLeft } from '../../helpers/util';\nimport { getDefaultOUIAId, getOUIAProps } from '../../helpers';\nimport { getResizeObserver } from '../../helpers/resizeObserver';\nimport { FormControlIcon } from '../FormControl/FormControlIcon';\nexport var TextInputTypes;\n(function (TextInputTypes) {\n TextInputTypes[\"text\"] = \"text\";\n TextInputTypes[\"date\"] = \"date\";\n TextInputTypes[\"datetimeLocal\"] = \"datetime-local\";\n TextInputTypes[\"email\"] = \"email\";\n TextInputTypes[\"month\"] = \"month\";\n TextInputTypes[\"number\"] = \"number\";\n TextInputTypes[\"password\"] = \"password\";\n TextInputTypes[\"search\"] = \"search\";\n TextInputTypes[\"tel\"] = \"tel\";\n TextInputTypes[\"time\"] = \"time\";\n TextInputTypes[\"url\"] = \"url\";\n})(TextInputTypes || (TextInputTypes = {}));\nexport var TextInputReadOnlyVariant;\n(function (TextInputReadOnlyVariant) {\n TextInputReadOnlyVariant[\"default\"] = \"default\";\n TextInputReadOnlyVariant[\"plain\"] = \"plain\";\n})(TextInputReadOnlyVariant || (TextInputReadOnlyVariant = {}));\n// eslint-disable-next-line patternfly-react/no-anonymous-functions\nexport class TextInputBase extends React.Component {\n constructor(props) {\n super(props);\n this.inputRef = React.createRef();\n this.observer = () => { };\n this.handleChange = (event) => {\n if (this.props.onChange) {\n this.props.onChange(event, event.currentTarget.value);\n }\n };\n this.handleResize = () => {\n const inputRef = this.props.innerRef || this.inputRef;\n if (inputRef && inputRef.current) {\n trimLeft(inputRef.current, String(this.props.value));\n }\n };\n this.restoreText = () => {\n const inputRef = this.props.innerRef || this.inputRef;\n // restore the value\n inputRef.current.value = String(this.props.value);\n // make sure we still see the rightmost value to preserve cursor click position\n inputRef.current.scrollLeft = inputRef.current.scrollWidth;\n };\n this.onFocus = (event) => {\n const { isLeftTruncated, isStartTruncated, onFocus } = this.props;\n if (isLeftTruncated || isStartTruncated) {\n this.restoreText();\n }\n onFocus && onFocus(event);\n };\n this.onBlur = (event) => {\n const { isLeftTruncated, isStartTruncated, onBlur } = this.props;\n if (isLeftTruncated || isStartTruncated) {\n this.handleResize();\n }\n onBlur && onBlur(event);\n };\n this.sanitizeInputValue = (value) => typeof value === 'string' ? value.replace(/\\n/g, ' ') : value;\n if (!props.id && !props['aria-label'] && !props['aria-labelledby']) {\n // eslint-disable-next-line no-console\n console.error('Text input:', 'Text input requires either an id or aria-label to be specified');\n }\n this.state = {\n ouiaStateId: getDefaultOUIAId(TextInputBase.displayName)\n };\n }\n componentDidMount() {\n if (this.props.isLeftTruncated || this.props.isStartTruncated) {\n const inputRef = this.props.innerRef || this.inputRef;\n this.observer = getResizeObserver(inputRef.current, this.handleResize, true);\n this.handleResize();\n }\n }\n componentWillUnmount() {\n if (this.props.isLeftTruncated || this.props.isStartTruncated) {\n this.observer();\n }\n }\n render() {\n const _a = this.props, { innerRef, className, type, value, placeholder, validated, \n /* eslint-disable @typescript-eslint/no-unused-vars */\n onChange, onFocus, onBlur, isLeftTruncated, isStartTruncated, isExpanded, expandedProps, readOnly, readOnlyVariant, isRequired, isDisabled, customIcon, ouiaId, ouiaSafe } = _a, props = __rest(_a, [\"innerRef\", \"className\", \"type\", \"value\", \"placeholder\", \"validated\", \"onChange\", \"onFocus\", \"onBlur\", \"isLeftTruncated\", \"isStartTruncated\", \"isExpanded\", \"expandedProps\", \"readOnly\", \"readOnlyVariant\", \"isRequired\", \"isDisabled\", \"customIcon\", \"ouiaId\", \"ouiaSafe\"]);\n const hasStatusIcon = ['success', 'error', 'warning'].includes(validated);\n const ariaExpandedProps = expandedProps\n ? { 'aria-expanded': expandedProps === null || expandedProps === void 0 ? void 0 : expandedProps.isExpanded, 'aria-controls': expandedProps === null || expandedProps === void 0 ? void 0 : expandedProps.ariaControls, role: 'combobox' }\n : {};\n return (React.createElement(\"span\", { className: css(styles.formControl, readOnlyVariant && styles.modifiers.readonly, readOnlyVariant === 'plain' && styles.modifiers.plain, isDisabled && styles.modifiers.disabled, (isExpanded || (expandedProps === null || expandedProps === void 0 ? void 0 : expandedProps.isExpanded)) && styles.modifiers.expanded, customIcon && styles.modifiers.icon, hasStatusIcon && styles.modifiers[validated], className) },\n React.createElement(\"input\", Object.assign({}, props, { onFocus: this.onFocus, onBlur: this.onBlur, onChange: this.handleChange, type: type, value: this.sanitizeInputValue(value), \"aria-invalid\": props['aria-invalid'] ? props['aria-invalid'] : validated === ValidatedOptions.error }, ariaExpandedProps, { required: isRequired, disabled: isDisabled, readOnly: !!readOnlyVariant || readOnly, ref: innerRef || this.inputRef, placeholder: placeholder }, getOUIAProps(TextInput.displayName, ouiaId !== undefined ? ouiaId : this.state.ouiaStateId, ouiaSafe))),\n (customIcon || hasStatusIcon) && (React.createElement(\"span\", { className: css(styles.formControlUtilities) },\n customIcon && React.createElement(FormControlIcon, { customIcon: customIcon }),\n hasStatusIcon && React.createElement(FormControlIcon, { status: validated })))));\n }\n}\nTextInputBase.displayName = 'TextInputBase';\nTextInputBase.defaultProps = {\n 'aria-label': null,\n isRequired: false,\n validated: 'default',\n isDisabled: false,\n isExpanded: false,\n type: TextInputTypes.text,\n isLeftTruncated: false,\n isStartTruncated: false,\n onChange: () => undefined,\n ouiaSafe: true\n};\nexport const TextInput = React.forwardRef((props, ref) => (React.createElement(TextInputBase, Object.assign({}, props, { innerRef: ref }))));\nTextInput.displayName = 'TextInput';\n//# sourceMappingURL=TextInput.js.map","import './dropdown.css';\nexport default {\n \"badge\": \"pf-v5-c-badge\",\n \"check\": \"pf-v5-c-check\",\n \"divider\": \"pf-v5-c-divider\",\n \"dropdown\": \"pf-v5-c-dropdown\",\n \"dropdownGroup\": \"pf-v5-c-dropdown__group\",\n \"dropdownGroupTitle\": \"pf-v5-c-dropdown__group-title\",\n \"dropdownMenu\": \"pf-v5-c-dropdown__menu\",\n \"dropdownMenuItem\": \"pf-v5-c-dropdown__menu-item\",\n \"dropdownMenuItemDescription\": \"pf-v5-c-dropdown__menu-item-description\",\n \"dropdownMenuItemIcon\": \"pf-v5-c-dropdown__menu-item-icon\",\n \"dropdownMenuItemMain\": \"pf-v5-c-dropdown__menu-item-main\",\n \"dropdownToggle\": \"pf-v5-c-dropdown__toggle\",\n \"dropdownToggleButton\": \"pf-v5-c-dropdown__toggle-button\",\n \"dropdownToggleCheck\": \"pf-v5-c-dropdown__toggle-check\",\n \"dropdownToggleIcon\": \"pf-v5-c-dropdown__toggle-icon\",\n \"dropdownToggleImage\": \"pf-v5-c-dropdown__toggle-image\",\n \"dropdownToggleProgress\": \"pf-v5-c-dropdown__toggle-progress\",\n \"dropdownToggleText\": \"pf-v5-c-dropdown__toggle-text\",\n \"menu\": \"pf-v5-c-menu\",\n \"modifiers\": {\n \"fullHeight\": \"pf-m-full-height\",\n \"expanded\": \"pf-m-expanded\",\n \"action\": \"pf-m-action\",\n \"disabled\": \"pf-m-disabled\",\n \"plain\": \"pf-m-plain\",\n \"text\": \"pf-m-text\",\n \"splitButton\": \"pf-m-split-button\",\n \"primary\": \"pf-m-primary\",\n \"inProgress\": \"pf-m-in-progress\",\n \"active\": \"pf-m-active\",\n \"secondary\": \"pf-m-secondary\",\n \"top\": \"pf-m-top\",\n \"static\": \"pf-m-static\",\n \"alignRight\": \"pf-m-align-right\",\n \"alignLeft\": \"pf-m-align-left\",\n \"alignRightOnSm\": \"pf-m-align-right-on-sm\",\n \"alignLeftOnSm\": \"pf-m-align-left-on-sm\",\n \"alignRightOnMd\": \"pf-m-align-right-on-md\",\n \"alignLeftOnMd\": \"pf-m-align-left-on-md\",\n \"alignRightOnLg\": \"pf-m-align-right-on-lg\",\n \"alignLeftOnLg\": \"pf-m-align-left-on-lg\",\n \"alignRightOnXl\": \"pf-m-align-right-on-xl\",\n \"alignLeftOnXl\": \"pf-m-align-left-on-xl\",\n \"alignRightOn_2xl\": \"pf-m-align-right-on-2xl\",\n \"alignLeftOn_2xl\": \"pf-m-align-left-on-2xl\",\n \"ariaDisabled\": \"pf-m-aria-disabled\",\n \"icon\": \"pf-m-icon\",\n \"description\": \"pf-m-description\"\n },\n \"spinner\": \"pf-v5-c-spinner\",\n \"themeDark\": \"pf-v5-theme-dark\"\n};","import { createIcon } from '../createIcon';\n\nexport const AngleLeftIconConfig = {\n name: 'AngleLeftIcon',\n height: 512,\n width: 256,\n svgPath: 'M31.7 239l136-136c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9L127.9 256l96.4 96.4c9.4 9.4 9.4 24.6 0 33.9L201.7 409c-9.4 9.4-24.6 9.4-33.9 0l-136-136c-9.5-9.4-9.5-24.6-.1-34z',\n yOffset: 0,\n xOffset: 0,\n};\n\nexport const AngleLeftIcon = createIcon(AngleLeftIconConfig);\n\nexport default AngleLeftIcon;","import { createIcon } from '../createIcon';\n\nexport const CheckIconConfig = {\n name: 'CheckIcon',\n height: 512,\n width: 512,\n svgPath: 'M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z',\n yOffset: 0,\n xOffset: 0,\n};\n\nexport const CheckIcon = createIcon(CheckIconConfig);\n\nexport default CheckIcon;","import './check.css';\nexport default {\n \"check\": \"pf-v5-c-check\",\n \"checkBody\": \"pf-v5-c-check__body\",\n \"checkDescription\": \"pf-v5-c-check__description\",\n \"checkInput\": \"pf-v5-c-check__input\",\n \"checkLabel\": \"pf-v5-c-check__label\",\n \"checkLabelRequired\": \"pf-v5-c-check__label-required\",\n \"modifiers\": {\n \"standalone\": \"pf-m-standalone\",\n \"disabled\": \"pf-m-disabled\"\n }\n};","import { __rest } from \"tslib\";\nimport * as React from 'react';\nimport styles from '@patternfly/react-styles/css/components/Check/check.mjs';\nimport { css } from '@patternfly/react-styles';\nimport { getDefaultOUIAId, getOUIAProps } from '../../helpers';\nimport { ASTERISK } from '../../helpers/htmlConstants';\n// tslint:disable-next-line:no-empty\nconst defaultOnChange = () => { };\nclass Checkbox extends React.Component {\n constructor(props) {\n super(props);\n this.handleChange = (event) => {\n this.props.onChange(event, event.currentTarget.checked);\n };\n this.state = {\n ouiaStateId: getDefaultOUIAId(Checkbox.displayName)\n };\n }\n render() {\n const _a = this.props, { 'aria-label': ariaLabel, className, inputClassName, onChange, isLabelWrapped, isLabelBeforeButton, isValid, isDisabled, isRequired, isChecked, label, checked, defaultChecked, description, body, ouiaId, ouiaSafe, component } = _a, props = __rest(_a, ['aria-label', \"className\", \"inputClassName\", \"onChange\", \"isLabelWrapped\", \"isLabelBeforeButton\", \"isValid\", \"isDisabled\", \"isRequired\", \"isChecked\", \"label\", \"checked\", \"defaultChecked\", \"description\", \"body\", \"ouiaId\", \"ouiaSafe\", \"component\"]);\n if (!props.id) {\n // eslint-disable-next-line no-console\n console.error('Checkbox:', 'id is required to make input accessible');\n }\n const checkedProps = {};\n if ([true, false].includes(checked) || isChecked === true) {\n checkedProps.checked = checked || isChecked;\n }\n if (onChange !== defaultOnChange) {\n checkedProps.checked = isChecked;\n }\n if ([false, true].includes(defaultChecked)) {\n checkedProps.defaultChecked = defaultChecked;\n }\n const inputRendered = (React.createElement(\"input\", Object.assign({}, props, { className: css(styles.checkInput, inputClassName), type: \"checkbox\", onChange: this.handleChange, \"aria-invalid\": !isValid, \"aria-label\": ariaLabel, disabled: isDisabled, required: isRequired, ref: (elem) => elem && (elem.indeterminate = isChecked === null) }, checkedProps, getOUIAProps(Checkbox.displayName, ouiaId !== undefined ? ouiaId : this.state.ouiaStateId, ouiaSafe))));\n const wrapWithLabel = (isLabelWrapped && !component) || component === 'label';\n const Label = wrapWithLabel ? 'span' : 'label';\n const labelRendered = label ? (React.createElement(Label, { className: css(styles.checkLabel, isDisabled && styles.modifiers.disabled), htmlFor: !wrapWithLabel ? props.id : undefined },\n label,\n isRequired && (React.createElement(\"span\", { className: css(styles.checkLabelRequired), \"aria-hidden\": \"true\" }, ASTERISK)))) : null;\n const Component = component !== null && component !== void 0 ? component : (wrapWithLabel ? 'label' : 'div');\n checkedProps.checked = checkedProps.checked === null ? false : checkedProps.checked;\n return (React.createElement(Component, { className: css(styles.check, !label && styles.modifiers.standalone, className), htmlFor: wrapWithLabel ? props.id : undefined },\n isLabelBeforeButton ? (React.createElement(React.Fragment, null,\n labelRendered,\n inputRendered)) : (React.createElement(React.Fragment, null,\n inputRendered,\n labelRendered)),\n description && React.createElement(\"span\", { className: css(styles.checkDescription) }, description),\n body && React.createElement(\"span\", { className: css(styles.checkBody) }, body)));\n }\n}\nCheckbox.displayName = 'Checkbox';\nCheckbox.defaultProps = {\n className: '',\n isLabelWrapped: false,\n isValid: true,\n isDisabled: false,\n isRequired: false,\n isChecked: false,\n onChange: defaultOnChange,\n ouiaSafe: true\n};\nexport { Checkbox };\n//# sourceMappingURL=Checkbox.js.map","import { createIcon } from '../createIcon';\n\nexport const StarIconConfig = {\n name: 'StarIcon',\n height: 512,\n width: 576,\n svgPath: 'M259.3 17.8L194 150.2 47.9 171.5c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.3 23.2 46 46.4 33.7L288 439.6l130.7 68.7c23.2 12.2 50.9-7.4 46.4-33.7l-25-145.5 105.7-103c19-18.5 8.5-50.8-17.7-54.6L382 150.2 316.7 17.8c-11.7-23.6-45.6-23.9-57.4 0z',\n yOffset: 0,\n xOffset: 0,\n};\n\nexport const StarIcon = createIcon(StarIconConfig);\n\nexport default StarIcon;","import { createIcon } from '../createIcon';\n\nexport const CaretDownIconConfig = {\n name: 'CaretDownIcon',\n height: 512,\n width: 320,\n svgPath: 'M31.3 192h257.3c17.8 0 26.7 21.5 14.1 34.1L174.1 354.8c-7.8 7.8-20.5 7.8-28.3 0L17.2 226.1C4.6 213.5 13.5 192 31.3 192z',\n yOffset: 0,\n xOffset: 0,\n};\n\nexport const CaretDownIcon = createIcon(CaretDownIconConfig);\n\nexport default CaretDownIcon;","import './input-group.css';\nexport default {\n \"inputGroup\": \"pf-v5-c-input-group\",\n \"inputGroupItem\": \"pf-v5-c-input-group__item\",\n \"inputGroupText\": \"pf-v5-c-input-group__text\",\n \"modifiers\": {\n \"box\": \"pf-m-box\",\n \"plain\": \"pf-m-plain\",\n \"disabled\": \"pf-m-disabled\",\n \"fill\": \"pf-m-fill\"\n },\n \"themeDark\": \"pf-v5-theme-dark\"\n};","import { __rest } from \"tslib\";\nimport * as React from 'react';\nimport styles from '@patternfly/react-styles/css/components/InputGroup/input-group.mjs';\nimport { css } from '@patternfly/react-styles';\nexport const InputGroupBase = (_a) => {\n var { className, children, innerRef } = _a, props = __rest(_a, [\"className\", \"children\", \"innerRef\"]);\n const ref = React.useRef(null);\n const inputGroupRef = innerRef || ref;\n return (React.createElement(\"div\", Object.assign({ ref: inputGroupRef, className: css(styles.inputGroup, className) }, props), children));\n};\nInputGroupBase.displayName = 'InputGroupBase';\nexport const InputGroup = React.forwardRef((props, ref) => (React.createElement(InputGroupBase, Object.assign({ innerRef: ref }, props))));\nInputGroup.displayName = 'InputGroup';\n//# sourceMappingURL=InputGroup.js.map","import { __rest } from \"tslib\";\nimport * as React from 'react';\nimport styles from '@patternfly/react-styles/css/components/InputGroup/input-group.mjs';\nimport { css } from '@patternfly/react-styles';\nexport const InputGroupItem = (_a) => {\n var { className, children, isFill = false, isBox = false, isPlain, isDisabled } = _a, props = __rest(_a, [\"className\", \"children\", \"isFill\", \"isBox\", \"isPlain\", \"isDisabled\"]);\n return (React.createElement(\"div\", Object.assign({ className: css(styles.inputGroupItem, isFill && styles.modifiers.fill, isBox && styles.modifiers.box, isPlain && styles.modifiers.plain, isDisabled && styles.modifiers.disabled, className) }, props), children));\n};\nInputGroupItem.displayName = 'InputGroupItem';\n//# sourceMappingURL=InputGroupItem.js.map","import './card.css';\nexport default {\n \"card\": \"pf-v5-c-card\",\n \"cardActions\": \"pf-v5-c-card__actions\",\n \"cardBody\": \"pf-v5-c-card__body\",\n \"cardExpandableContent\": \"pf-v5-c-card__expandable-content\",\n \"cardFooter\": \"pf-v5-c-card__footer\",\n \"cardHeader\": \"pf-v5-c-card__header\",\n \"cardHeaderMain\": \"pf-v5-c-card__header-main\",\n \"cardHeaderToggle\": \"pf-v5-c-card__header-toggle\",\n \"cardHeaderToggleIcon\": \"pf-v5-c-card__header-toggle-icon\",\n \"cardSelectableActions\": \"pf-v5-c-card__selectable-actions\",\n \"cardSrInput\": \"pf-v5-c-card__sr-input\",\n \"cardTitle\": \"pf-v5-c-card__title\",\n \"cardTitleText\": \"pf-v5-c-card__title-text\",\n \"check\": \"pf-v5-c-check\",\n \"checkInput\": \"pf-v5-c-check__input\",\n \"checkLabel\": \"pf-v5-c-check__label\",\n \"dirRtl\": \"pf-v5-m-dir-rtl\",\n \"divider\": \"pf-v5-c-divider\",\n \"modifiers\": {\n \"selectable\": \"pf-m-selectable\",\n \"clickable\": \"pf-m-clickable\",\n \"selected\": \"pf-m-selected\",\n \"current\": \"pf-m-current\",\n \"disabled\": \"pf-m-disabled\",\n \"hoverableRaised\": \"pf-m-hoverable-raised\",\n \"selectableRaised\": \"pf-m-selectable-raised\",\n \"nonSelectableRaised\": \"pf-m-non-selectable-raised\",\n \"selectedRaised\": \"pf-m-selected-raised\",\n \"compact\": \"pf-m-compact\",\n \"displayLg\": \"pf-m-display-lg\",\n \"flat\": \"pf-m-flat\",\n \"plain\": \"pf-m-plain\",\n \"rounded\": \"pf-m-rounded\",\n \"expanded\": \"pf-m-expanded\",\n \"fullHeight\": \"pf-m-full-height\",\n \"toggleRight\": \"pf-m-toggle-right\",\n \"noOffset\": \"pf-m-no-offset\",\n \"noFill\": \"pf-m-no-fill\"\n },\n \"radio\": \"pf-v5-c-radio\",\n \"radioInput\": \"pf-v5-c-radio__input\",\n \"radioLabel\": \"pf-v5-c-radio__label\",\n \"themeDark\": \"pf-v5-theme-dark\"\n};","import { __rest } from \"tslib\";\nimport * as React from 'react';\nimport styles from '@patternfly/react-styles/css/components/Card/card.mjs';\nimport { css } from '@patternfly/react-styles';\nimport { useOUIAProps } from '../../helpers';\nexport const CardContext = React.createContext({\n cardId: '',\n registerTitleId: () => { },\n isExpanded: false,\n isClickable: false,\n isSelectable: false,\n isDisabled: false\n});\nexport const Card = (_a) => {\n var { children, id = '', className, component = 'div', isCompact = false, isSelectable = false, isClickable = false, isDisabled = false, isSelectableRaised = false, isSelected = false, isDisabledRaised = false, isFlat = false, isExpanded = false, isRounded = false, isLarge = false, isFullHeight = false, isPlain = false, ouiaId, ouiaSafe = true, hasSelectableInput = false, selectableInputAriaLabel, onSelectableInputChange = () => { } } = _a, props = __rest(_a, [\"children\", \"id\", \"className\", \"component\", \"isCompact\", \"isSelectable\", \"isClickable\", \"isDisabled\", \"isSelectableRaised\", \"isSelected\", \"isDisabledRaised\", \"isFlat\", \"isExpanded\", \"isRounded\", \"isLarge\", \"isFullHeight\", \"isPlain\", \"ouiaId\", \"ouiaSafe\", \"hasSelectableInput\", \"selectableInputAriaLabel\", \"onSelectableInputChange\"]);\n const Component = component;\n const ouiaProps = useOUIAProps(Card.displayName, ouiaId, ouiaSafe);\n const [titleId, setTitleId] = React.useState('');\n const [ariaProps, setAriaProps] = React.useState();\n if (isCompact && isLarge) {\n // eslint-disable-next-line no-console\n console.warn('Card: Cannot use isCompact with isLarge. Defaulting to isCompact');\n isLarge = false;\n }\n const getSelectableModifiers = () => {\n if (isDisabledRaised) {\n return css(styles.modifiers.nonSelectableRaised);\n }\n if (isSelectableRaised) {\n return css(styles.modifiers.selectableRaised, isSelected && styles.modifiers.selectedRaised);\n }\n if (isSelectable && isClickable) {\n return css(styles.modifiers.selectable, styles.modifiers.clickable, isSelected && styles.modifiers.current);\n }\n if (isSelectable) {\n return css(styles.modifiers.selectable, isSelected && styles.modifiers.selected);\n }\n if (isClickable) {\n return css(styles.modifiers.clickable, isSelected && styles.modifiers.selected);\n }\n return '';\n };\n const containsCardTitleChildRef = React.useRef(false);\n const registerTitleId = (id) => {\n setTitleId(id);\n containsCardTitleChildRef.current = !!id;\n };\n React.useEffect(() => {\n if (selectableInputAriaLabel) {\n setAriaProps({ 'aria-label': selectableInputAriaLabel });\n }\n else if (titleId) {\n setAriaProps({ 'aria-labelledby': titleId });\n }\n else if (hasSelectableInput && !containsCardTitleChildRef.current) {\n setAriaProps({});\n // eslint-disable-next-line no-console\n console.warn('If no CardTitle component is passed as a child of Card the selectableInputAriaLabel prop must be passed');\n }\n }, [hasSelectableInput, selectableInputAriaLabel, titleId]);\n return (React.createElement(CardContext.Provider, { value: {\n cardId: id,\n registerTitleId,\n isExpanded,\n isClickable,\n isSelectable,\n isDisabled,\n // TODO: Remove hasSelectableInput when deprecated prop is removed\n hasSelectableInput\n } },\n hasSelectableInput && (React.createElement(\"input\", Object.assign({ className: \"pf-v5-screen-reader\", id: `${id}-input` }, ariaProps, { type: \"checkbox\", checked: isSelected, onChange: (event) => onSelectableInputChange(event, id), disabled: isDisabledRaised, tabIndex: -1 }))),\n React.createElement(Component, Object.assign({ id: id, className: css(styles.card, isCompact && styles.modifiers.compact, isExpanded && styles.modifiers.expanded, isFlat && styles.modifiers.flat, isRounded && styles.modifiers.rounded, isLarge && styles.modifiers.displayLg, isFullHeight && styles.modifiers.fullHeight, isPlain && styles.modifiers.plain, getSelectableModifiers(), isDisabled && styles.modifiers.disabled, className), tabIndex: isSelectableRaised ? '0' : undefined }, props, ouiaProps), children)));\n};\nCard.displayName = 'Card';\n//# sourceMappingURL=Card.js.map","import { __rest } from \"tslib\";\nimport * as React from 'react';\nimport styles from '@patternfly/react-styles/css/components/Card/card.mjs';\nimport { css } from '@patternfly/react-styles';\nexport const CardBody = (_a) => {\n var { children, className, component = 'div', isFilled = true } = _a, props = __rest(_a, [\"children\", \"className\", \"component\", \"isFilled\"]);\n const Component = component;\n return (React.createElement(Component, Object.assign({ className: css(styles.cardBody, !isFilled && styles.modifiers.noFill, className) }, props), children));\n};\nCardBody.displayName = 'CardBody';\n//# sourceMappingURL=CardBody.js.map","import { __rest } from \"tslib\";\nimport * as React from 'react';\nimport { css } from '@patternfly/react-styles';\nimport styles from '@patternfly/react-styles/css/components/Card/card.mjs';\nimport { CardContext } from './Card';\nexport const CardTitle = (_a) => {\n var { children, className, component = 'div' } = _a, props = __rest(_a, [\"children\", \"className\", \"component\"]);\n const { cardId, registerTitleId } = React.useContext(CardContext);\n const Component = component;\n const titleId = cardId ? `${cardId}-title` : '';\n React.useEffect(() => {\n registerTitleId(titleId);\n return () => registerTitleId('');\n }, [registerTitleId, titleId]);\n return (React.createElement(\"div\", { className: css(styles.cardTitle) },\n React.createElement(Component, Object.assign({ className: css(styles.cardTitleText, className), id: titleId || undefined }, props), children)));\n};\nCardTitle.displayName = 'CardTitle';\n//# sourceMappingURL=CardTitle.js.map","import { __rest } from \"tslib\";\nimport * as React from 'react';\nimport { css } from '@patternfly/react-styles';\nimport styles from '@patternfly/react-styles/css/components/Card/card.mjs';\nexport const CardHeaderMain = (_a) => {\n var { children, className } = _a, props = __rest(_a, [\"children\", \"className\"]);\n return (React.createElement(\"div\", Object.assign({ className: css(styles.cardHeaderMain, className) }, props), children));\n};\nCardHeaderMain.displayName = 'CardHeaderMain';\n//# sourceMappingURL=CardHeaderMain.js.map","import { __rest } from \"tslib\";\nimport * as React from 'react';\nimport { css } from '@patternfly/react-styles';\nimport styles from '@patternfly/react-styles/css/components/Card/card.mjs';\nexport const CardActions = (_a) => {\n var { children, className, hasNoOffset = false } = _a, props = __rest(_a, [\"children\", \"className\", \"hasNoOffset\"]);\n return (React.createElement(\"div\", Object.assign({ className: css(styles.cardActions, hasNoOffset && styles.modifiers.noOffset, className) }, props), children));\n};\nCardActions.displayName = 'CardActions';\n//# sourceMappingURL=CardActions.js.map","import { __rest } from \"tslib\";\nimport * as React from 'react';\nimport { css } from '@patternfly/react-styles';\nimport styles from '@patternfly/react-styles/css/components/Card/card.mjs';\nexport const CardSelectableActions = (_a) => {\n var { children, className } = _a, props = __rest(_a, [\"children\", \"className\"]);\n return (React.createElement(\"div\", Object.assign({ className: css(styles.cardSelectableActions, className) }, props), children));\n};\nCardSelectableActions.displayName = 'CardSelectableActions';\n//# sourceMappingURL=CardSelectableActions.js.map","import './radio.css';\nexport default {\n \"modifiers\": {\n \"standalone\": \"pf-m-standalone\",\n \"disabled\": \"pf-m-disabled\"\n },\n \"radio\": \"pf-v5-c-radio\",\n \"radioBody\": \"pf-v5-c-radio__body\",\n \"radioDescription\": \"pf-v5-c-radio__description\",\n \"radioInput\": \"pf-v5-c-radio__input\",\n \"radioLabel\": \"pf-v5-c-radio__label\"\n};","import { __rest } from \"tslib\";\nimport * as React from 'react';\nimport styles from '@patternfly/react-styles/css/components/Radio/radio.mjs';\nimport { css } from '@patternfly/react-styles';\nimport { getOUIAProps, getDefaultOUIAId } from '../../helpers';\nclass Radio extends React.Component {\n constructor(props) {\n super(props);\n this.handleChange = (event) => {\n this.props.onChange(event, event.currentTarget.checked);\n };\n if (!props.label && !props['aria-label']) {\n // eslint-disable-next-line no-console\n console.error('Radio:', 'Radio requires an aria-label to be specified');\n }\n this.state = {\n ouiaStateId: getDefaultOUIAId(Radio.displayName)\n };\n }\n render() {\n const _a = this.props, { 'aria-label': ariaLabel, checked, className, inputClassName, defaultChecked, isLabelWrapped, isLabelBeforeButton, isChecked, isDisabled, isValid, label, \n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n onChange, description, body, ouiaId, ouiaSafe = true, component } = _a, props = __rest(_a, ['aria-label', \"checked\", \"className\", \"inputClassName\", \"defaultChecked\", \"isLabelWrapped\", \"isLabelBeforeButton\", \"isChecked\", \"isDisabled\", \"isValid\", \"label\", \"onChange\", \"description\", \"body\", \"ouiaId\", \"ouiaSafe\", \"component\"]);\n if (!props.id) {\n // eslint-disable-next-line no-console\n console.error('Radio:', 'id is required to make input accessible');\n }\n const inputRendered = (React.createElement(\"input\", Object.assign({}, props, { className: css(styles.radioInput, inputClassName), type: \"radio\", onChange: this.handleChange, \"aria-invalid\": !isValid, disabled: isDisabled, checked: checked || isChecked }, (checked === undefined && { defaultChecked }), (!label && { 'aria-label': ariaLabel }), getOUIAProps(Radio.displayName, ouiaId !== undefined ? ouiaId : this.state.ouiaStateId, ouiaSafe))));\n const wrapWithLabel = (isLabelWrapped && !component) || component === 'label';\n const Label = wrapWithLabel ? 'span' : 'label';\n const labelRendered = label ? (React.createElement(Label, { className: css(styles.radioLabel, isDisabled && styles.modifiers.disabled), htmlFor: !wrapWithLabel ? props.id : undefined }, label)) : null;\n const Component = component !== null && component !== void 0 ? component : (wrapWithLabel ? 'label' : 'div');\n return (React.createElement(Component, { className: css(styles.radio, !label && styles.modifiers.standalone, className), htmlFor: wrapWithLabel ? props.id : undefined },\n isLabelBeforeButton ? (React.createElement(React.Fragment, null,\n labelRendered,\n inputRendered)) : (React.createElement(React.Fragment, null,\n inputRendered,\n labelRendered)),\n description && React.createElement(\"span\", { className: css(styles.radioDescription) }, description),\n body && React.createElement(\"span\", { className: css(styles.radioBody) }, body)));\n }\n}\nRadio.displayName = 'Radio';\nRadio.defaultProps = {\n className: '',\n isDisabled: false,\n isValid: true,\n onChange: () => { }\n};\nexport { Radio };\n//# sourceMappingURL=Radio.js.map","import { __rest } from \"tslib\";\nimport * as React from 'react';\nimport { css } from '@patternfly/react-styles';\nimport styles from '@patternfly/react-styles/css/components/Card/card.mjs';\nimport { CardContext } from './Card';\nimport { CardHeaderMain } from './CardHeaderMain';\nimport { CardActions } from './CardActions';\nimport { CardSelectableActions } from './CardSelectableActions';\nimport { Button } from '../Button';\nimport AngleRightIcon from '@patternfly/react-icons/dist/esm/icons/angle-right-icon';\nimport { Radio } from '../Radio';\nimport { Checkbox } from '../Checkbox';\nexport const CardHeader = (_a) => {\n var { children, className, actions, selectableActions, id, onExpand, toggleButtonProps, isToggleRightAligned } = _a, props = __rest(_a, [\"children\", \"className\", \"actions\", \"selectableActions\", \"id\", \"onExpand\", \"toggleButtonProps\", \"isToggleRightAligned\"]);\n return (React.createElement(CardContext.Consumer, null, ({ cardId, isClickable, isSelectable, isDisabled: isCardDisabled, hasSelectableInput }) => {\n const cardHeaderToggle = (React.createElement(\"div\", { className: css(styles.cardHeaderToggle) },\n React.createElement(Button, Object.assign({ variant: \"plain\", type: \"button\", onClick: (evt) => {\n onExpand(evt, cardId);\n } }, toggleButtonProps),\n React.createElement(\"span\", { className: css(styles.cardHeaderToggleIcon) },\n React.createElement(AngleRightIcon, { \"aria-hidden\": \"true\" })))));\n const isClickableOrSelectableOnly = (isClickable && !isSelectable) || (isSelectable && !isClickable);\n // TODO: Remove following variable and update if block when deprecated prop is removed\n // We don't want to throw a warning for the deprecated card\n const isDeprecatedSelectableCard = hasSelectableInput;\n if ((actions === null || actions === void 0 ? void 0 : actions.actions) && isClickableOrSelectableOnly && !isDeprecatedSelectableCard) {\n // eslint-disable-next-line no-console\n console.warn(`${isClickable ? 'Clickable' : 'Selectable'} only cards should not contain any other actions. If you wish to include additional actions, use a clickable and selectable card.`);\n }\n const handleActionClick = (event) => {\n if (isClickable) {\n if (selectableActions === null || selectableActions === void 0 ? void 0 : selectableActions.onClickAction) {\n selectableActions.onClickAction(event);\n }\n else if (selectableActions === null || selectableActions === void 0 ? void 0 : selectableActions.to) {\n window.open(selectableActions.to, selectableActions.isExternalLink ? '_blank' : '_self');\n }\n }\n };\n const getClickableSelectableProps = () => {\n const baseProps = {\n className: 'pf-m-standalone',\n inputClassName: isClickable && !isSelectable && 'pf-v5-screen-reader',\n label: React.createElement(React.Fragment, null),\n 'aria-label': selectableActions.selectableActionAriaLabel,\n 'aria-labelledby': selectableActions.selectableActionAriaLabelledby,\n id: selectableActions.selectableActionId,\n name: selectableActions.name,\n isDisabled: isCardDisabled\n };\n if (isClickable && !isSelectable) {\n return Object.assign(Object.assign({}, baseProps), { onClick: handleActionClick });\n }\n if (isSelectable) {\n return Object.assign(Object.assign({}, baseProps), { onChange: selectableActions.onChange, isChecked: selectableActions.isChecked });\n }\n return baseProps;\n };\n return (React.createElement(\"div\", Object.assign({ className: css(styles.cardHeader, isToggleRightAligned && styles.modifiers.toggleRight, className), id: id }, props),\n onExpand && !isToggleRightAligned && cardHeaderToggle,\n (actions || (selectableActions && (isClickable || isSelectable))) && (React.createElement(CardActions, { className: actions === null || actions === void 0 ? void 0 : actions.className, hasNoOffset: (actions === null || actions === void 0 ? void 0 : actions.hasNoOffset) || (selectableActions === null || selectableActions === void 0 ? void 0 : selectableActions.hasNoOffset) }, actions === null || actions === void 0 ? void 0 :\n actions.actions,\n selectableActions && (isClickable || isSelectable) && (React.createElement(CardSelectableActions, { className: selectableActions === null || selectableActions === void 0 ? void 0 : selectableActions.className }, (selectableActions === null || selectableActions === void 0 ? void 0 : selectableActions.variant) === 'single' || (isClickable && !isSelectable) ? (React.createElement(Radio, Object.assign({}, getClickableSelectableProps()))) : (React.createElement(Checkbox, Object.assign({}, getClickableSelectableProps()))))))),\n children && React.createElement(CardHeaderMain, null, children),\n onExpand && isToggleRightAligned && cardHeaderToggle));\n }));\n};\nCardHeader.displayName = 'CardHeader';\n//# sourceMappingURL=CardHeader.js.map","import './chip.css';\nexport default {\n \"badge\": \"pf-v5-c-badge\",\n \"button\": \"pf-v5-c-button\",\n \"chip\": \"pf-v5-c-chip\",\n \"chipActions\": \"pf-v5-c-chip__actions\",\n \"chipContent\": \"pf-v5-c-chip__content\",\n \"chipIcon\": \"pf-v5-c-chip__icon\",\n \"chipText\": \"pf-v5-c-chip__text\",\n \"modifiers\": {\n \"overflow\": \"pf-m-overflow\",\n \"draggable\": \"pf-m-draggable\"\n },\n \"themeDark\": \"pf-v5-theme-dark\"\n};","export const c_chip__text_MaxWidth = {\n \"name\": \"--pf-v5-c-chip__text--MaxWidth\",\n \"value\": \"16ch\",\n \"var\": \"var(--pf-v5-c-chip__text--MaxWidth)\"\n};\nexport default c_chip__text_MaxWidth;","import { __rest } from \"tslib\";\nimport * as React from 'react';\nimport { css } from '@patternfly/react-styles';\nimport { Button } from '../Button';\nimport { Tooltip } from '../Tooltip';\nimport TimesIcon from '@patternfly/react-icons/dist/esm/icons/times-icon';\nimport styles from '@patternfly/react-styles/css/components/Chip/chip.mjs';\nimport { GenerateId } from '../../helpers/GenerateId/GenerateId';\nimport { getOUIAProps, getDefaultOUIAId } from '../../helpers';\nimport cssChipTextMaxWidth from '@patternfly/react-tokens/dist/esm/c_chip__text_MaxWidth';\nclass Chip extends React.Component {\n constructor(props) {\n super(props);\n this.span = React.createRef();\n this.setChipStyle = () => ({\n [cssChipTextMaxWidth.name]: this.props.textMaxWidth\n });\n this.renderOverflowChip = () => {\n const _a = this.props, { badge, children, className, onClick, ouiaId, textMaxWidth, style, component, \n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n tooltipPosition, \n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n isOverflowChip, \n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n closeBtnAriaLabel, \n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n isReadOnly } = _a, props = __rest(_a, [\"badge\", \"children\", \"className\", \"onClick\", \"ouiaId\", \"textMaxWidth\", \"style\", \"component\", \"tooltipPosition\", \"isOverflowChip\", \"closeBtnAriaLabel\", \"isReadOnly\"]);\n const Component = component;\n return (React.createElement(Component, Object.assign({ onClick: onClick }, (textMaxWidth && Object.assign({ style: this.setChipStyle() }, style)), { className: css(styles.chip, styles.modifiers.overflow, className) }, (component === 'button' ? { type: 'button' } : {}), getOUIAProps('OverflowChip', ouiaId !== undefined ? ouiaId : this.state.ouiaStateId), props),\n React.createElement(\"span\", { className: css(styles.chipContent) },\n React.createElement(\"span\", { className: css(styles.chipText) }, children),\n badge && badge)));\n };\n this.renderChip = (randomId) => {\n const { children, tooltipPosition } = this.props;\n if (this.state.isTooltipVisible) {\n return (React.createElement(Tooltip, { position: tooltipPosition, content: children }, this.renderInnerChip(randomId)));\n }\n return this.renderInnerChip(randomId);\n };\n this.state = {\n isTooltipVisible: false,\n ouiaStateId: getDefaultOUIAId(Chip.displayName)\n };\n }\n componentDidMount() {\n this.setState({\n isTooltipVisible: Boolean(this.span.current && this.span.current.offsetWidth < this.span.current.scrollWidth)\n });\n }\n componentDidUpdate(_prevProps, prevState) {\n const nextIsTooltipVisible = Boolean(this.span.current && this.span.current.offsetWidth < this.span.current.scrollWidth);\n if (prevState.isTooltipVisible !== nextIsTooltipVisible) {\n this.setState({\n isTooltipVisible: nextIsTooltipVisible\n });\n }\n }\n renderInnerChip(id) {\n const _a = this.props, { badge, children, className, onClick, closeBtnAriaLabel, isReadOnly, \n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n isOverflowChip, \n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n tooltipPosition, \n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n id: idProp, component, ouiaId, textMaxWidth } = _a, props = __rest(_a, [\"badge\", \"children\", \"className\", \"onClick\", \"closeBtnAriaLabel\", \"isReadOnly\", \"isOverflowChip\", \"tooltipPosition\", \"id\", \"component\", \"ouiaId\", \"textMaxWidth\"]);\n const Component = component;\n return (React.createElement(Component, Object.assign({}, (textMaxWidth && {\n style: this.setChipStyle()\n }), { className: css(styles.chip, className) }, (this.state.isTooltipVisible && { tabIndex: 0 }), getOUIAProps(Chip.displayName, ouiaId !== undefined ? ouiaId : this.state.ouiaStateId), props),\n React.createElement(\"span\", { className: css(styles.chipContent) },\n React.createElement(\"span\", { ref: this.span, className: css(styles.chipText), id: id }, children),\n badge && badge),\n !isReadOnly && (React.createElement(\"span\", { className: css(styles.chipActions) },\n React.createElement(Button, { onClick: onClick, variant: \"plain\", \"aria-label\": closeBtnAriaLabel, id: `remove_${id}`, \"aria-labelledby\": `remove_${id} ${id}`, ouiaId: ouiaId || closeBtnAriaLabel },\n React.createElement(TimesIcon, { \"aria-hidden\": \"true\" }))))));\n }\n render() {\n const { isOverflowChip } = this.props;\n return (React.createElement(GenerateId, null, (randomId) => (isOverflowChip ? this.renderOverflowChip() : this.renderChip(this.props.id || randomId))));\n }\n}\nChip.displayName = 'Chip';\nChip.defaultProps = {\n closeBtnAriaLabel: 'close',\n className: '',\n isOverflowChip: false,\n isReadOnly: false,\n tooltipPosition: 'top',\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n onClick: (_e) => undefined,\n component: 'div'\n};\nexport { Chip };\n//# sourceMappingURL=Chip.js.map","import './chip-group.css';\nexport default {\n \"chipGroup\": \"pf-v5-c-chip-group\",\n \"chipGroupClose\": \"pf-v5-c-chip-group__close\",\n \"chipGroupLabel\": \"pf-v5-c-chip-group__label\",\n \"chipGroupList\": \"pf-v5-c-chip-group__list\",\n \"chipGroupListItem\": \"pf-v5-c-chip-group__list-item\",\n \"chipGroupMain\": \"pf-v5-c-chip-group__main\",\n \"modifiers\": {\n \"category\": \"pf-m-category\"\n }\n};","import { createIcon } from '../createIcon';\n\nexport const TimesCircleIconConfig = {\n name: 'TimesCircleIcon',\n height: 512,\n width: 512,\n svgPath: 'M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm121.6 313.1c4.7 4.7 4.7 12.3 0 17L338 377.6c-4.7 4.7-12.3 4.7-17 0L256 312l-65.1 65.6c-4.7 4.7-12.3 4.7-17 0L134.4 338c-4.7-4.7-4.7-12.3 0-17l65.6-65-65.6-65.1c-4.7-4.7-4.7-12.3 0-17l39.6-39.6c4.7-4.7 12.3-4.7 17 0l65 65.7 65.1-65.6c4.7-4.7 12.3-4.7 17 0l39.6 39.6c4.7 4.7 4.7 12.3 0 17L312 256l65.6 65.1z',\n yOffset: 0,\n xOffset: 0,\n};\n\nexport const TimesCircleIcon = createIcon(TimesCircleIconConfig);\n\nexport default TimesCircleIcon;","import { __rest } from \"tslib\";\nimport * as React from 'react';\nimport styles from '@patternfly/react-styles/css/components/Chip/chip-group.mjs';\nimport { css } from '@patternfly/react-styles';\nimport { Button } from '../Button';\nimport { Chip } from './Chip';\nimport { Tooltip } from '../Tooltip';\nimport TimesCircleIcon from '@patternfly/react-icons/dist/esm/icons/times-circle-icon';\nimport { fillTemplate } from '../../helpers';\nimport { GenerateId } from '../../helpers/GenerateId/GenerateId';\nimport { getOUIAProps } from '../../helpers';\nclass ChipGroup extends React.Component {\n constructor(props) {\n super(props);\n this.headingRef = React.createRef();\n this.toggleCollapse = () => {\n this.setState((prevState) => ({\n isOpen: !prevState.isOpen,\n isTooltipVisible: Boolean(this.headingRef.current && this.headingRef.current.offsetWidth < this.headingRef.current.scrollWidth)\n }));\n };\n this.state = {\n isOpen: this.props.defaultIsOpen,\n isTooltipVisible: false\n };\n }\n componentDidMount() {\n this.setState({\n isTooltipVisible: Boolean(this.headingRef.current && this.headingRef.current.offsetWidth < this.headingRef.current.scrollWidth)\n });\n }\n renderLabel(id) {\n const { categoryName, tooltipPosition } = this.props;\n const { isTooltipVisible } = this.state;\n return isTooltipVisible ? (React.createElement(Tooltip, { position: tooltipPosition, content: categoryName },\n React.createElement(\"span\", { tabIndex: 0, ref: this.headingRef, className: css(styles.chipGroupLabel) },\n React.createElement(\"span\", { id: id }, categoryName)))) : (React.createElement(\"span\", { ref: this.headingRef, className: css(styles.chipGroupLabel), id: id }, categoryName));\n }\n render() {\n const _a = this.props, { categoryName, children, className, isClosable, closeBtnAriaLabel, 'aria-label': ariaLabel, onClick, onOverflowChipClick, numChips, expandedText, collapsedText, ouiaId, \n /* eslint-disable @typescript-eslint/no-unused-vars */\n defaultIsOpen, tooltipPosition } = _a, \n /* eslint-enable @typescript-eslint/no-unused-vars */\n rest = __rest(_a, [\"categoryName\", \"children\", \"className\", \"isClosable\", \"closeBtnAriaLabel\", 'aria-label', \"onClick\", \"onOverflowChipClick\", \"numChips\", \"expandedText\", \"collapsedText\", \"ouiaId\", \"defaultIsOpen\", \"tooltipPosition\"]);\n const { isOpen } = this.state;\n const numChildren = React.Children.count(children);\n const collapsedTextResult = fillTemplate(collapsedText, {\n remaining: React.Children.count(children) - numChips\n });\n const renderChipGroup = (id) => {\n const chipArray = !isOpen\n ? React.Children.toArray(children).slice(0, numChips)\n : React.Children.toArray(children);\n return (React.createElement(\"div\", Object.assign({ className: css(styles.chipGroup, className, categoryName && styles.modifiers.category), role: \"group\" }, (categoryName && { 'aria-labelledby': id }), (!categoryName && { 'aria-label': ariaLabel }), getOUIAProps(ChipGroup.displayName, ouiaId)),\n React.createElement(\"div\", { className: css(styles.chipGroupMain) },\n categoryName && this.renderLabel(id),\n React.createElement(\"ul\", Object.assign({ className: css(styles.chipGroupList) }, (categoryName && { 'aria-labelledby': id }), (!categoryName && { 'aria-label': ariaLabel }), { role: \"list\" }, rest),\n chipArray.map((child, i) => (React.createElement(\"li\", { className: css(styles.chipGroupListItem), key: i }, child))),\n numChildren > numChips && (React.createElement(\"li\", { className: css(styles.chipGroupListItem) },\n React.createElement(Chip, { isOverflowChip: true, onClick: (event) => {\n this.toggleCollapse();\n onOverflowChipClick(event);\n }, component: \"button\" }, isOpen ? expandedText : collapsedTextResult))))),\n isClosable && (React.createElement(\"div\", { className: css(styles.chipGroupClose) },\n React.createElement(Button, { variant: \"plain\", \"aria-label\": closeBtnAriaLabel, onClick: onClick, id: `remove_group_${id}`, \"aria-labelledby\": `remove_group_${id} ${id}`, ouiaId: ouiaId || closeBtnAriaLabel },\n React.createElement(TimesCircleIcon, { \"aria-hidden\": \"true\" }))))));\n };\n return numChildren === 0 ? null : (React.createElement(GenerateId, null, (randomId) => renderChipGroup(this.props.id || randomId)));\n }\n}\nChipGroup.displayName = 'ChipGroup';\nChipGroup.defaultProps = {\n expandedText: 'Show Less',\n collapsedText: '${remaining} more',\n categoryName: '',\n defaultIsOpen: false,\n numChips: 3,\n isClosable: false,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n onClick: (_e) => undefined,\n onOverflowChipClick: (_e) => undefined,\n closeBtnAriaLabel: 'Close chip group',\n tooltipPosition: 'top',\n 'aria-label': 'Chip group category'\n};\nexport { ChipGroup };\n//# sourceMappingURL=ChipGroup.js.map","import './popover.css';\nexport default {\n \"modifiers\": {\n \"noPadding\": \"pf-m-no-padding\",\n \"widthAuto\": \"pf-m-width-auto\",\n \"top\": \"pf-m-top\",\n \"topLeft\": \"pf-m-top-left\",\n \"topRight\": \"pf-m-top-right\",\n \"bottom\": \"pf-m-bottom\",\n \"bottomLeft\": \"pf-m-bottom-left\",\n \"bottomRight\": \"pf-m-bottom-right\",\n \"left\": \"pf-m-left\",\n \"leftTop\": \"pf-m-left-top\",\n \"leftBottom\": \"pf-m-left-bottom\",\n \"right\": \"pf-m-right\",\n \"rightTop\": \"pf-m-right-top\",\n \"rightBottom\": \"pf-m-right-bottom\",\n \"danger\": \"pf-m-danger\",\n \"warning\": \"pf-m-warning\",\n \"success\": \"pf-m-success\",\n \"custom\": \"pf-m-custom\",\n \"info\": \"pf-m-info\"\n },\n \"popover\": \"pf-v5-c-popover\",\n \"popoverArrow\": \"pf-v5-c-popover__arrow\",\n \"popoverBody\": \"pf-v5-c-popover__body\",\n \"popoverClose\": \"pf-v5-c-popover__close\",\n \"popoverContent\": \"pf-v5-c-popover__content\",\n \"popoverFooter\": \"pf-v5-c-popover__footer\",\n \"popoverHeader\": \"pf-v5-c-popover__header\",\n \"popoverTitle\": \"pf-v5-c-popover__title\",\n \"popoverTitleIcon\": \"pf-v5-c-popover__title-icon\",\n \"popoverTitleText\": \"pf-v5-c-popover__title-text\",\n \"themeDark\": \"pf-v5-theme-dark\"\n};","import * as React from 'react';\nexport const PopoverContext = React.createContext({});\n//# sourceMappingURL=PopoverContext.js.map","import { __rest } from \"tslib\";\nimport * as React from 'react';\nimport styles from '@patternfly/react-styles/css/components/Popover/popover.mjs';\nimport { css } from '@patternfly/react-styles';\nexport const PopoverContent = (_a) => {\n var { className = null, children } = _a, props = __rest(_a, [\"className\", \"children\"]);\n return (React.createElement(\"div\", Object.assign({ className: css(styles.popoverContent, className) }, props), children));\n};\nPopoverContent.displayName = 'PopoverContent';\n//# sourceMappingURL=PopoverContent.js.map","import { __rest } from \"tslib\";\nimport * as React from 'react';\nimport styles from '@patternfly/react-styles/css/components/Popover/popover.mjs';\nimport { css } from '@patternfly/react-styles';\nexport const PopoverBody = (_a) => {\n var { children, id, className } = _a, props = __rest(_a, [\"children\", \"id\", \"className\"]);\n return (React.createElement(\"div\", Object.assign({ className: css(styles.popoverBody, className), id: id }, props), children));\n};\nPopoverBody.displayName = 'PopoverBody';\n//# sourceMappingURL=PopoverBody.js.map","import { __rest } from \"tslib\";\nimport * as React from 'react';\nimport { css } from '@patternfly/react-styles';\nimport styles from '@patternfly/react-styles/css/components/Popover/popover.mjs';\nexport const PopoverHeaderIcon = (_a) => {\n var { children, className } = _a, props = __rest(_a, [\"children\", \"className\"]);\n return (React.createElement(\"span\", Object.assign({ className: css(styles.popoverTitleIcon, className) }, props), children));\n};\nPopoverHeaderIcon.displayName = 'PopoverHeaderIcon';\n//# sourceMappingURL=PopoverHeaderIcon.js.map","import { __rest } from \"tslib\";\nimport * as React from 'react';\nimport { css } from '@patternfly/react-styles';\nimport styles from '@patternfly/react-styles/css/components/Popover/popover.mjs';\nexport const PopoverHeaderText = (_a) => {\n var { children, className, headingLevel } = _a, props = __rest(_a, [\"children\", \"className\", \"headingLevel\"]);\n const HeadingLevel = headingLevel;\n return (React.createElement(HeadingLevel, Object.assign({ className: css(styles.popoverTitleText, className) }, props), children));\n};\nPopoverHeaderText.displayName = 'PopoverHeaderText';\n//# sourceMappingURL=PopoverHeaderText.js.map","import { __rest } from \"tslib\";\nimport * as React from 'react';\nimport { css } from '@patternfly/react-styles';\nimport styles from '@patternfly/react-styles/css/components/Popover/popover.mjs';\nimport { PopoverHeaderIcon } from './PopoverHeaderIcon';\nimport { PopoverHeaderText } from './PopoverHeaderText';\nexport const PopoverHeader = (_a) => {\n var { children, icon, className, titleHeadingLevel = 'h6', alertSeverityVariant, id, alertSeverityScreenReaderText } = _a, props = __rest(_a, [\"children\", \"icon\", \"className\", \"titleHeadingLevel\", \"alertSeverityVariant\", \"id\", \"alertSeverityScreenReaderText\"]);\n return (React.createElement(\"header\", Object.assign({ className: css(styles.popoverHeader, className) }, props),\n React.createElement(\"div\", { className: css(styles.popoverTitle), id: id },\n icon && React.createElement(PopoverHeaderIcon, null, icon),\n React.createElement(PopoverHeaderText, { headingLevel: titleHeadingLevel },\n alertSeverityVariant && alertSeverityScreenReaderText && (React.createElement(\"span\", { className: \"pf-v5-screen-reader\" }, alertSeverityScreenReaderText)),\n children))));\n};\nPopoverHeader.displayName = 'PopoverHeader';\n//# sourceMappingURL=PopoverHeader.js.map","import { __rest } from \"tslib\";\nimport * as React from 'react';\nimport styles from '@patternfly/react-styles/css/components/Popover/popover.mjs';\nimport { css } from '@patternfly/react-styles';\nexport const PopoverFooter = (_a) => {\n var { children, className = '' } = _a, props = __rest(_a, [\"children\", \"className\"]);\n return (React.createElement(\"footer\", Object.assign({ className: css(styles.popoverFooter, className) }, props), children));\n};\nPopoverFooter.displayName = 'PopoverFooter';\n//# sourceMappingURL=PopoverFooter.js.map","import { __rest } from \"tslib\";\nimport * as React from 'react';\nimport { css } from '@patternfly/react-styles';\nimport styles from '@patternfly/react-styles/css/components/Popover/popover.mjs';\nimport { Button } from '../Button';\nimport TimesIcon from '@patternfly/react-icons/dist/esm/icons/times-icon';\nexport const PopoverCloseButton = (_a) => {\n var { onClose = () => undefined } = _a, props = __rest(_a, [\"onClose\"]);\n return (React.createElement(\"div\", { className: css(styles.popoverClose) },\n React.createElement(Button, Object.assign({ onClick: onClose, variant: \"plain\", \"aria-label\": true }, props, { style: { pointerEvents: 'auto' } }),\n React.createElement(TimesIcon, null))));\n};\nPopoverCloseButton.displayName = 'PopoverCloseButton';\n//# sourceMappingURL=PopoverCloseButton.js.map","import { __rest } from \"tslib\";\nimport * as React from 'react';\nimport styles from '@patternfly/react-styles/css/components/Popover/popover.mjs';\nimport { css } from '@patternfly/react-styles';\nexport const PopoverArrow = (_a) => {\n var { className = '' } = _a, props = __rest(_a, [\"className\"]);\n return React.createElement(\"div\", Object.assign({ className: css(styles.popoverArrow, className) }, props));\n};\nPopoverArrow.displayName = 'PopoverArrow';\n//# sourceMappingURL=PopoverArrow.js.map","export const c_popover_MaxWidth = {\n \"name\": \"--pf-v5-c-popover--MaxWidth\",\n \"value\": \"none\",\n \"var\": \"var(--pf-v5-c-popover--MaxWidth)\"\n};\nexport default c_popover_MaxWidth;","export const c_popover_MinWidth = {\n \"name\": \"--pf-v5-c-popover--MinWidth\",\n \"value\": \"auto\",\n \"var\": \"var(--pf-v5-c-popover--MinWidth)\"\n};\nexport default c_popover_MinWidth;","import { __rest } from \"tslib\";\n/* eslint-disable no-console */\nimport * as React from 'react';\nimport { KeyTypes } from '../../helpers/constants';\nimport styles from '@patternfly/react-styles/css/components/Popover/popover.mjs';\nimport { css } from '@patternfly/react-styles';\nimport { PopoverContext } from './PopoverContext';\nimport { PopoverContent } from './PopoverContent';\nimport { PopoverBody } from './PopoverBody';\nimport { PopoverHeader } from './PopoverHeader';\nimport { PopoverFooter } from './PopoverFooter';\nimport { PopoverCloseButton } from './PopoverCloseButton';\nimport { PopoverArrow } from './PopoverArrow';\nimport popoverMaxWidth from '@patternfly/react-tokens/dist/esm/c_popover_MaxWidth';\nimport popoverMinWidth from '@patternfly/react-tokens/dist/esm/c_popover_MinWidth';\nimport { FocusTrap } from '../../helpers';\nimport { Popper } from '../../helpers/Popper/Popper';\nimport { getUniqueId } from '../../helpers/util';\nexport var PopoverPosition;\n(function (PopoverPosition) {\n PopoverPosition[\"auto\"] = \"auto\";\n PopoverPosition[\"top\"] = \"top\";\n PopoverPosition[\"bottom\"] = \"bottom\";\n PopoverPosition[\"left\"] = \"left\";\n PopoverPosition[\"right\"] = \"right\";\n PopoverPosition[\"topStart\"] = \"top-start\";\n PopoverPosition[\"topEnd\"] = \"top-end\";\n PopoverPosition[\"bottomStart\"] = \"bottom-start\";\n PopoverPosition[\"bottomEnd\"] = \"bottom-end\";\n PopoverPosition[\"leftStart\"] = \"left-start\";\n PopoverPosition[\"leftEnd\"] = \"left-end\";\n PopoverPosition[\"rightStart\"] = \"right-start\";\n PopoverPosition[\"rightEnd\"] = \"right-end\";\n})(PopoverPosition || (PopoverPosition = {}));\nconst alertStyle = {\n custom: styles.modifiers.custom,\n info: styles.modifiers.info,\n success: styles.modifiers.success,\n warning: styles.modifiers.warning,\n danger: styles.modifiers.danger\n};\nexport const Popover = (_a) => {\n var { children, position = 'top', enableFlip = true, className = '', isVisible = null, shouldClose = () => null, shouldOpen = () => null, 'aria-label': ariaLabel = '', bodyContent, headerContent = null, headerComponent = 'h6', headerIcon = null, alertSeverityVariant, alertSeverityScreenReaderText, footerContent = null, appendTo = () => document.body, hideOnOutsideClick = true, onHide = () => null, onHidden = () => null, onShow = () => null, onShown = () => null, onMount = () => null, zIndex = 9999, triggerAction = 'click', minWidth = popoverMinWidth && popoverMinWidth.value, maxWidth = popoverMaxWidth && popoverMaxWidth.value, closeBtnAriaLabel = 'Close', showClose = true, distance = 25, flipBehavior = [\n 'top',\n 'bottom',\n 'left',\n 'right',\n 'top-start',\n 'top-end',\n 'bottom-start',\n 'bottom-end',\n 'left-start',\n 'left-end',\n 'right-start',\n 'right-end'\n ], animationDuration = 300, id, withFocusTrap: propWithFocusTrap, triggerRef, hasNoPadding = false, hasAutoWidth = false, elementToFocus } = _a, rest = __rest(_a, [\"children\", \"position\", \"enableFlip\", \"className\", \"isVisible\", \"shouldClose\", \"shouldOpen\", 'aria-label', \"bodyContent\", \"headerContent\", \"headerComponent\", \"headerIcon\", \"alertSeverityVariant\", \"alertSeverityScreenReaderText\", \"footerContent\", \"appendTo\", \"hideOnOutsideClick\", \"onHide\", \"onHidden\", \"onShow\", \"onShown\", \"onMount\", \"zIndex\", \"triggerAction\", \"minWidth\", \"maxWidth\", \"closeBtnAriaLabel\", \"showClose\", \"distance\", \"flipBehavior\", \"animationDuration\", \"id\", \"withFocusTrap\", \"triggerRef\", \"hasNoPadding\", \"hasAutoWidth\", \"elementToFocus\"]);\n // could make this a prop in the future (true | false | 'toggle')\n // const hideOnClick = true;\n const uniqueId = id || getUniqueId();\n const triggerManually = isVisible !== null;\n const [visible, setVisible] = React.useState(false);\n const [focusTrapActive, setFocusTrapActive] = React.useState(Boolean(propWithFocusTrap));\n const popoverRef = React.useRef(null);\n React.useEffect(() => {\n onMount();\n }, []);\n React.useEffect(() => {\n if (triggerManually) {\n if (isVisible) {\n show(undefined, true);\n }\n else {\n hide();\n }\n }\n }, [isVisible, triggerManually]);\n const show = (event, withFocusTrap) => {\n event && onShow(event);\n setVisible(true);\n propWithFocusTrap !== false && withFocusTrap && setFocusTrapActive(true);\n };\n const hide = (event) => {\n event && onHide(event);\n setVisible(false);\n };\n const positionModifiers = {\n top: styles.modifiers.top,\n bottom: styles.modifiers.bottom,\n left: styles.modifiers.left,\n right: styles.modifiers.right,\n 'top-start': styles.modifiers.topLeft,\n 'top-end': styles.modifiers.topRight,\n 'bottom-start': styles.modifiers.bottomLeft,\n 'bottom-end': styles.modifiers.bottomRight,\n 'left-start': styles.modifiers.leftTop,\n 'left-end': styles.modifiers.leftBottom,\n 'right-start': styles.modifiers.rightTop,\n 'right-end': styles.modifiers.rightBottom\n };\n const hasCustomMinWidth = minWidth !== popoverMinWidth.value;\n const hasCustomMaxWidth = maxWidth !== popoverMaxWidth.value;\n const onDocumentKeyDown = (event) => {\n if (event.key === KeyTypes.Escape && visible) {\n if (triggerManually) {\n shouldClose(event, hide);\n }\n else {\n hide(event);\n }\n }\n };\n const onDocumentClick = (event, triggerElement, popperElement) => {\n if (hideOnOutsideClick && visible) {\n const isFromChild = popperElement && popperElement.contains(event.target);\n const isFromTrigger = triggerElement && triggerElement.contains(event.target);\n if (isFromChild || isFromTrigger) {\n // if clicked within the popper or on the trigger, ignore this event\n return;\n }\n if (triggerManually) {\n shouldClose(event, hide);\n }\n else {\n hide(event);\n }\n }\n };\n const onTriggerClick = (event) => {\n if (triggerManually) {\n if (visible) {\n shouldClose(event, hide);\n }\n else {\n shouldOpen(event, show);\n }\n }\n else {\n if (visible) {\n hide(event);\n }\n else {\n show(event, true);\n }\n }\n };\n const onContentMouseDown = () => {\n if (focusTrapActive) {\n setFocusTrapActive(false);\n }\n };\n const onMouseEnter = (event) => {\n if (triggerManually) {\n shouldOpen(event, show);\n }\n else {\n show(event, false);\n }\n };\n const onMouseLeave = (event) => {\n if (triggerManually) {\n shouldClose(event, hide);\n }\n else {\n hide(event);\n }\n };\n const onFocus = (event) => {\n if (triggerManually) {\n shouldOpen(event, show);\n }\n else {\n show(event, false);\n }\n };\n const onBlur = (event) => {\n if (triggerManually) {\n shouldClose(event, hide);\n }\n else {\n hide(event);\n }\n };\n const closePopover = (event) => {\n event.stopPropagation();\n if (triggerManually) {\n shouldClose(event, hide);\n }\n else {\n hide(event);\n }\n };\n const content = (React.createElement(FocusTrap, Object.assign({ ref: popoverRef, active: focusTrapActive, focusTrapOptions: {\n returnFocusOnDeactivate: propWithFocusTrap !== false,\n clickOutsideDeactivates: true,\n // FocusTrap's initialFocus can accept false as a value to prevent initial focus.\n // We want to prevent this in case false is ever passed in.\n initialFocus: elementToFocus || undefined,\n checkCanFocusTrap: (containers) => new Promise((resolve) => {\n const interval = setInterval(() => {\n if (containers.every((container) => getComputedStyle(container).visibility !== 'hidden')) {\n resolve();\n clearInterval(interval);\n }\n }, 10);\n }),\n tabbableOptions: { displayCheck: 'none' },\n fallbackFocus: () => {\n // If the popover's trigger is focused but scrolled out of view,\n // FocusTrap will throw an error when the Enter button is used on the trigger.\n // That is because the Popover is hidden when its trigger is out of view.\n // Provide a fallback in that case.\n let node = null;\n if (document && document.activeElement) {\n node = document.activeElement;\n }\n return node;\n }\n }, preventScrollOnDeactivate: true, className: css(styles.popover, alertSeverityVariant && alertStyle[alertSeverityVariant], hasNoPadding && styles.modifiers.noPadding, hasAutoWidth && styles.modifiers.widthAuto, className), role: \"dialog\", \"aria-modal\": \"true\", \"aria-label\": headerContent ? undefined : ariaLabel, \"aria-labelledby\": headerContent ? `popover-${uniqueId}-header` : undefined, \"aria-describedby\": `popover-${uniqueId}-body`, onMouseDown: onContentMouseDown, style: {\n minWidth: hasCustomMinWidth ? minWidth : null,\n maxWidth: hasCustomMaxWidth ? maxWidth : null\n } }, rest),\n React.createElement(PopoverArrow, null),\n React.createElement(PopoverContent, null,\n showClose && triggerAction === 'click' && (React.createElement(PopoverCloseButton, { onClose: closePopover, \"aria-label\": closeBtnAriaLabel })),\n headerContent && (React.createElement(PopoverHeader, { id: `popover-${uniqueId}-header`, icon: headerIcon, alertSeverityVariant: alertSeverityVariant, alertSeverityScreenReaderText: alertSeverityScreenReaderText || `${alertSeverityVariant} alert:`, titleHeadingLevel: headerComponent }, typeof headerContent === 'function' ? headerContent(hide) : headerContent)),\n React.createElement(PopoverBody, { id: `popover-${uniqueId}-body` }, typeof bodyContent === 'function' ? bodyContent(hide) : bodyContent),\n footerContent && (React.createElement(PopoverFooter, { id: `popover-${uniqueId}-footer` }, typeof footerContent === 'function' ? footerContent(hide) : footerContent)))));\n return (React.createElement(PopoverContext.Provider, { value: { headerComponent } },\n React.createElement(Popper, { trigger: children, triggerRef: triggerRef, popper: content, popperRef: popoverRef, minWidth: minWidth, appendTo: appendTo, isVisible: visible, onMouseEnter: triggerAction === 'hover' && onMouseEnter, onMouseLeave: triggerAction === 'hover' && onMouseLeave, onPopperMouseEnter: triggerAction === 'hover' && onMouseEnter, onPopperMouseLeave: triggerAction === 'hover' && onMouseLeave, onFocus: triggerAction === 'hover' && onFocus, onBlur: triggerAction === 'hover' && onBlur, positionModifiers: positionModifiers, distance: distance, placement: position, onTriggerClick: triggerAction === 'click' && onTriggerClick, onDocumentClick: onDocumentClick, onDocumentKeyDown: onDocumentKeyDown, enableFlip: enableFlip, zIndex: zIndex, flipBehavior: flipBehavior, animationDuration: animationDuration, onHidden: onHidden, onShown: onShown, onHide: () => setFocusTrapActive(false) })));\n};\nPopover.displayName = 'Popover';\n//# sourceMappingURL=Popover.js.map","import './helper-text.css';\nexport default {\n \"helperText\": \"pf-v5-c-helper-text\",\n \"helperTextItem\": \"pf-v5-c-helper-text__item\",\n \"helperTextItemIcon\": \"pf-v5-c-helper-text__item-icon\",\n \"helperTextItemText\": \"pf-v5-c-helper-text__item-text\",\n \"modifiers\": {\n \"hidden\": \"pf-m-hidden\",\n \"indeterminate\": \"pf-m-indeterminate\",\n \"warning\": \"pf-m-warning\",\n \"success\": \"pf-m-success\",\n \"error\": \"pf-m-error\",\n \"dynamic\": \"pf-m-dynamic\"\n },\n \"themeDark\": \"pf-v5-theme-dark\"\n};","import { __rest } from \"tslib\";\nimport * as React from 'react';\nimport styles from '@patternfly/react-styles/css/components/HelperText/helper-text.mjs';\nimport { css } from '@patternfly/react-styles';\nexport const HelperText = (_a) => {\n var { children, className, component = 'div', id, isLiveRegion = false, 'aria-label': ariaLabel } = _a, props = __rest(_a, [\"children\", \"className\", \"component\", \"id\", \"isLiveRegion\", 'aria-label']);\n const Component = component;\n return (React.createElement(Component, Object.assign({ id: id, className: css(styles.helperText, className) }, (isLiveRegion && { 'aria-live': 'polite' }), (component === 'ul' && { role: 'list', 'aria-label': ariaLabel }), props), children));\n};\nHelperText.displayName = 'HelperText';\n//# sourceMappingURL=HelperText.js.map","import { createIcon } from '../createIcon';\n\nexport const MinusIconConfig = {\n name: 'MinusIcon',\n height: 512,\n width: 448,\n svgPath: 'M416 208H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z',\n yOffset: 0,\n xOffset: 0,\n};\n\nexport const MinusIcon = createIcon(MinusIconConfig);\n\nexport default MinusIcon;","import { __rest } from \"tslib\";\nimport * as React from 'react';\nimport styles from '@patternfly/react-styles/css/components/HelperText/helper-text.mjs';\nimport { css } from '@patternfly/react-styles';\nimport MinusIcon from '@patternfly/react-icons/dist/esm/icons/minus-icon';\nimport ExclamationTriangleIcon from '@patternfly/react-icons/dist/esm/icons/exclamation-triangle-icon';\nimport CheckCircleIcon from '@patternfly/react-icons/dist/esm/icons/check-circle-icon';\nimport ExclamationCircleIcon from '@patternfly/react-icons/dist/esm/icons/exclamation-circle-icon';\nconst variantStyle = {\n default: '',\n indeterminate: styles.modifiers.indeterminate,\n warning: styles.modifiers.warning,\n success: styles.modifiers.success,\n error: styles.modifiers.error\n};\nexport const HelperTextItem = (_a) => {\n var { children, className, component = 'div', variant = 'default', icon, isDynamic = false, hasIcon = isDynamic, id, screenReaderText = `${variant} status` } = _a, props = __rest(_a, [\"children\", \"className\", \"component\", \"variant\", \"icon\", \"isDynamic\", \"hasIcon\", \"id\", \"screenReaderText\"]);\n const Component = component;\n return (React.createElement(Component, Object.assign({ className: css(styles.helperTextItem, variantStyle[variant], isDynamic && styles.modifiers.dynamic, className), id: id }, props),\n icon && (React.createElement(\"span\", { className: css(styles.helperTextItemIcon), \"aria-hidden\": true }, icon)),\n hasIcon && !icon && (React.createElement(\"span\", { className: css(styles.helperTextItemIcon), \"aria-hidden\": true },\n (variant === 'default' || variant === 'indeterminate') && React.createElement(MinusIcon, null),\n variant === 'warning' && React.createElement(ExclamationTriangleIcon, null),\n variant === 'success' && React.createElement(CheckCircleIcon, null),\n variant === 'error' && React.createElement(ExclamationCircleIcon, null))),\n React.createElement(\"span\", { className: css(styles.helperTextItemText) },\n children,\n isDynamic && React.createElement(\"span\", { className: \"pf-v5-screen-reader\" },\n \": \",\n screenReaderText,\n \";\"))));\n};\nHelperTextItem.displayName = 'HelperTextItem';\n//# sourceMappingURL=HelperTextItem.js.map","import './divider.css';\nexport default {\n \"divider\": \"pf-v5-c-divider\",\n \"modifiers\": {\n \"hidden\": \"pf-m-hidden\",\n \"hiddenOnSm\": \"pf-m-hidden-on-sm\",\n \"visibleOnSm\": \"pf-m-visible-on-sm\",\n \"hiddenOnMd\": \"pf-m-hidden-on-md\",\n \"visibleOnMd\": \"pf-m-visible-on-md\",\n \"hiddenOnLg\": \"pf-m-hidden-on-lg\",\n \"visibleOnLg\": \"pf-m-visible-on-lg\",\n \"hiddenOnXl\": \"pf-m-hidden-on-xl\",\n \"visibleOnXl\": \"pf-m-visible-on-xl\",\n \"hiddenOn_2xl\": \"pf-m-hidden-on-2xl\",\n \"visibleOn_2xl\": \"pf-m-visible-on-2xl\",\n \"vertical\": \"pf-m-vertical\",\n \"insetNone\": \"pf-m-inset-none\",\n \"insetXs\": \"pf-m-inset-xs\",\n \"insetSm\": \"pf-m-inset-sm\",\n \"insetMd\": \"pf-m-inset-md\",\n \"insetLg\": \"pf-m-inset-lg\",\n \"insetXl\": \"pf-m-inset-xl\",\n \"inset_2xl\": \"pf-m-inset-2xl\",\n \"inset_3xl\": \"pf-m-inset-3xl\",\n \"horizontalOnSm\": \"pf-m-horizontal-on-sm\",\n \"verticalOnSm\": \"pf-m-vertical-on-sm\",\n \"insetNoneOnSm\": \"pf-m-inset-none-on-sm\",\n \"insetXsOnSm\": \"pf-m-inset-xs-on-sm\",\n \"insetSmOnSm\": \"pf-m-inset-sm-on-sm\",\n \"insetMdOnSm\": \"pf-m-inset-md-on-sm\",\n \"insetLgOnSm\": \"pf-m-inset-lg-on-sm\",\n \"insetXlOnSm\": \"pf-m-inset-xl-on-sm\",\n \"inset_2xlOnSm\": \"pf-m-inset-2xl-on-sm\",\n \"inset_3xlOnSm\": \"pf-m-inset-3xl-on-sm\",\n \"horizontalOnMd\": \"pf-m-horizontal-on-md\",\n \"verticalOnMd\": \"pf-m-vertical-on-md\",\n \"insetNoneOnMd\": \"pf-m-inset-none-on-md\",\n \"insetXsOnMd\": \"pf-m-inset-xs-on-md\",\n \"insetSmOnMd\": \"pf-m-inset-sm-on-md\",\n \"insetMdOnMd\": \"pf-m-inset-md-on-md\",\n \"insetLgOnMd\": \"pf-m-inset-lg-on-md\",\n \"insetXlOnMd\": \"pf-m-inset-xl-on-md\",\n \"inset_2xlOnMd\": \"pf-m-inset-2xl-on-md\",\n \"inset_3xlOnMd\": \"pf-m-inset-3xl-on-md\",\n \"horizontalOnLg\": \"pf-m-horizontal-on-lg\",\n \"verticalOnLg\": \"pf-m-vertical-on-lg\",\n \"insetNoneOnLg\": \"pf-m-inset-none-on-lg\",\n \"insetXsOnLg\": \"pf-m-inset-xs-on-lg\",\n \"insetSmOnLg\": \"pf-m-inset-sm-on-lg\",\n \"insetMdOnLg\": \"pf-m-inset-md-on-lg\",\n \"insetLgOnLg\": \"pf-m-inset-lg-on-lg\",\n \"insetXlOnLg\": \"pf-m-inset-xl-on-lg\",\n \"inset_2xlOnLg\": \"pf-m-inset-2xl-on-lg\",\n \"inset_3xlOnLg\": \"pf-m-inset-3xl-on-lg\",\n \"horizontalOnXl\": \"pf-m-horizontal-on-xl\",\n \"verticalOnXl\": \"pf-m-vertical-on-xl\",\n \"insetNoneOnXl\": \"pf-m-inset-none-on-xl\",\n \"insetXsOnXl\": \"pf-m-inset-xs-on-xl\",\n \"insetSmOnXl\": \"pf-m-inset-sm-on-xl\",\n \"insetMdOnXl\": \"pf-m-inset-md-on-xl\",\n \"insetLgOnXl\": \"pf-m-inset-lg-on-xl\",\n \"insetXlOnXl\": \"pf-m-inset-xl-on-xl\",\n \"inset_2xlOnXl\": \"pf-m-inset-2xl-on-xl\",\n \"inset_3xlOnXl\": \"pf-m-inset-3xl-on-xl\",\n \"horizontalOn_2xl\": \"pf-m-horizontal-on-2xl\",\n \"verticalOn_2xl\": \"pf-m-vertical-on-2xl\",\n \"insetNoneOn_2xl\": \"pf-m-inset-none-on-2xl\",\n \"insetXsOn_2xl\": \"pf-m-inset-xs-on-2xl\",\n \"insetSmOn_2xl\": \"pf-m-inset-sm-on-2xl\",\n \"insetMdOn_2xl\": \"pf-m-inset-md-on-2xl\",\n \"insetLgOn_2xl\": \"pf-m-inset-lg-on-2xl\",\n \"insetXlOn_2xl\": \"pf-m-inset-xl-on-2xl\",\n \"inset_2xlOn_2xl\": \"pf-m-inset-2xl-on-2xl\",\n \"inset_3xlOn_2xl\": \"pf-m-inset-3xl-on-2xl\"\n }\n};","import { __rest } from \"tslib\";\nimport * as React from 'react';\nimport { css } from '@patternfly/react-styles';\nimport styles from '@patternfly/react-styles/css/components/Divider/divider.mjs';\nimport { formatBreakpointMods } from '../../helpers/util';\nexport var DividerVariant;\n(function (DividerVariant) {\n DividerVariant[\"hr\"] = \"hr\";\n DividerVariant[\"li\"] = \"li\";\n DividerVariant[\"div\"] = \"div\";\n})(DividerVariant || (DividerVariant = {}));\nexport const Divider = (_a) => {\n var { className, component = DividerVariant.hr, inset, orientation } = _a, props = __rest(_a, [\"className\", \"component\", \"inset\", \"orientation\"]);\n const Component = component;\n return (React.createElement(Component, Object.assign({ className: css(styles.divider, formatBreakpointMods(inset, styles), formatBreakpointMods(orientation, styles), className) }, (component !== 'hr' && { role: 'separator' }), props)));\n};\nDivider.displayName = 'Divider';\n//# sourceMappingURL=Divider.js.map","import './drawer.css';\nexport default {\n \"dirRtl\": \"pf-v5-m-dir-rtl\",\n \"drawer\": \"pf-v5-c-drawer\",\n \"drawerActions\": \"pf-v5-c-drawer__actions\",\n \"drawerBody\": \"pf-v5-c-drawer__body\",\n \"drawerClose\": \"pf-v5-c-drawer__close\",\n \"drawerContent\": \"pf-v5-c-drawer__content\",\n \"drawerHead\": \"pf-v5-c-drawer__head\",\n \"drawerMain\": \"pf-v5-c-drawer__main\",\n \"drawerPanel\": \"pf-v5-c-drawer__panel\",\n \"drawerPanelMain\": \"pf-v5-c-drawer__panel-main\",\n \"drawerSection\": \"pf-v5-c-drawer__section\",\n \"drawerSplitter\": \"pf-v5-c-drawer__splitter\",\n \"drawerSplitterHandle\": \"pf-v5-c-drawer__splitter-handle\",\n \"modifiers\": {\n \"panelBottom\": \"pf-m-panel-bottom\",\n \"inline\": \"pf-m-inline\",\n \"noBorder\": \"pf-m-no-border\",\n \"resizable\": \"pf-m-resizable\",\n \"static\": \"pf-m-static\",\n \"panelLeft\": \"pf-m-panel-left\",\n \"expanded\": \"pf-m-expanded\",\n \"resizing\": \"pf-m-resizing\",\n \"noBackground\": \"pf-m-no-background\",\n \"light_200\": \"pf-m-light-200\",\n \"noPadding\": \"pf-m-no-padding\",\n \"padding\": \"pf-m-padding\",\n \"vertical\": \"pf-m-vertical\",\n \"width_25\": \"pf-m-width-25\",\n \"width_33\": \"pf-m-width-33\",\n \"width_50\": \"pf-m-width-50\",\n \"width_66\": \"pf-m-width-66\",\n \"width_75\": \"pf-m-width-75\",\n \"width_100\": \"pf-m-width-100\",\n \"width_25OnLg\": \"pf-m-width-25-on-lg\",\n \"width_33OnLg\": \"pf-m-width-33-on-lg\",\n \"width_50OnLg\": \"pf-m-width-50-on-lg\",\n \"width_66OnLg\": \"pf-m-width-66-on-lg\",\n \"width_75OnLg\": \"pf-m-width-75-on-lg\",\n \"width_100OnLg\": \"pf-m-width-100-on-lg\",\n \"width_25OnXl\": \"pf-m-width-25-on-xl\",\n \"width_33OnXl\": \"pf-m-width-33-on-xl\",\n \"width_50OnXl\": \"pf-m-width-50-on-xl\",\n \"width_66OnXl\": \"pf-m-width-66-on-xl\",\n \"width_75OnXl\": \"pf-m-width-75-on-xl\",\n \"width_100OnXl\": \"pf-m-width-100-on-xl\",\n \"width_25On_2xl\": \"pf-m-width-25-on-2xl\",\n \"width_33On_2xl\": \"pf-m-width-33-on-2xl\",\n \"width_50On_2xl\": \"pf-m-width-50-on-2xl\",\n \"width_66On_2xl\": \"pf-m-width-66-on-2xl\",\n \"width_75On_2xl\": \"pf-m-width-75-on-2xl\",\n \"width_100On_2xl\": \"pf-m-width-100-on-2xl\",\n \"inlineOnLg\": \"pf-m-inline-on-lg\",\n \"staticOnLg\": \"pf-m-static-on-lg\",\n \"inlineOnXl\": \"pf-m-inline-on-xl\",\n \"staticOnXl\": \"pf-m-static-on-xl\",\n \"inlineOn_2xl\": \"pf-m-inline-on-2xl\",\n \"staticOn_2xl\": \"pf-m-static-on-2xl\"\n },\n \"pageMain\": \"pf-v5-c-page__main\",\n \"themeDark\": \"pf-v5-theme-dark\"\n};","import { __rest } from \"tslib\";\nimport * as React from 'react';\nimport styles from '@patternfly/react-styles/css/components/Drawer/drawer.mjs';\nimport { css } from '@patternfly/react-styles';\nexport var DrawerColorVariant;\n(function (DrawerColorVariant) {\n DrawerColorVariant[\"default\"] = \"default\";\n DrawerColorVariant[\"light200\"] = \"light-200\";\n DrawerColorVariant[\"noBackground\"] = \"no-background\";\n})(DrawerColorVariant || (DrawerColorVariant = {}));\nexport const DrawerContext = React.createContext({\n isExpanded: false,\n isStatic: false,\n onExpand: () => { },\n position: 'end',\n drawerRef: null,\n drawerContentRef: null,\n isInline: false\n});\nexport const Drawer = (_a) => {\n var { className = '', children, isExpanded = false, isInline = false, isStatic = false, position = 'end', onExpand = () => { } } = _a, props = __rest(_a, [\"className\", \"children\", \"isExpanded\", \"isInline\", \"isStatic\", \"position\", \"onExpand\"]);\n const drawerRef = React.useRef();\n const drawerContentRef = React.useRef();\n return (React.createElement(DrawerContext.Provider, { value: { isExpanded, isStatic, onExpand, position, drawerRef, drawerContentRef, isInline } },\n React.createElement(\"div\", Object.assign({ className: css(styles.drawer, isExpanded && styles.modifiers.expanded, isInline && styles.modifiers.inline, isStatic && styles.modifiers.static, (position === 'left' || position === 'start') && styles.modifiers.panelLeft, position === 'bottom' && styles.modifiers.panelBottom, className), ref: drawerRef }, props), children)));\n};\nDrawer.displayName = 'Drawer';\n//# sourceMappingURL=Drawer.js.map","import { __rest } from \"tslib\";\nimport * as React from 'react';\nimport styles from '@patternfly/react-styles/css/components/Drawer/drawer.mjs';\nimport { css } from '@patternfly/react-styles';\nexport const DrawerMain = (_a) => {\n var { \n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n className = '', children } = _a, props = __rest(_a, [\"className\", \"children\"]);\n return (React.createElement(\"div\", Object.assign({ className: css(styles.drawerMain, className) }, props), children));\n};\nDrawerMain.displayName = 'DrawerMain';\n//# sourceMappingURL=DrawerMain.js.map","import { __rest } from \"tslib\";\nimport * as React from 'react';\nimport styles from '@patternfly/react-styles/css/components/Drawer/drawer.mjs';\nimport { css } from '@patternfly/react-styles';\nimport { DrawerMain } from './DrawerMain';\nimport { DrawerColorVariant, DrawerContext } from './Drawer';\nexport const DrawerContent = (_a) => {\n var { \n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n className = '', children, panelContent, colorVariant = DrawerColorVariant.default } = _a, props = __rest(_a, [\"className\", \"children\", \"panelContent\", \"colorVariant\"]);\n const { drawerContentRef } = React.useContext(DrawerContext);\n return (React.createElement(DrawerMain, null,\n React.createElement(\"div\", Object.assign({ className: css(styles.drawerContent, colorVariant === DrawerColorVariant.light200 && styles.modifiers.light_200, colorVariant === DrawerColorVariant.noBackground && styles.modifiers.noBackground, className), ref: drawerContentRef }, props), children),\n panelContent));\n};\nDrawerContent.displayName = 'DrawerContent';\n//# sourceMappingURL=DrawerContent.js.map","import { __rest } from \"tslib\";\nimport * as React from 'react';\nimport styles from '@patternfly/react-styles/css/components/Drawer/drawer.mjs';\nimport { css } from '@patternfly/react-styles';\nexport const DrawerContentBody = (_a) => {\n var { \n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n className = '', children, hasPadding = false } = _a, props = __rest(_a, [\"className\", \"children\", \"hasPadding\"]);\n return (React.createElement(\"div\", Object.assign({ className: css(styles.drawerBody, hasPadding && styles.modifiers.padding, className) }, props), children));\n};\nDrawerContentBody.displayName = 'DrawerContentBody';\n//# sourceMappingURL=DrawerContentBody.js.map","export const c_drawer__panel_md_FlexBasis = {\n \"name\": \"--pf-v5-c-drawer__panel--md--FlexBasis\",\n \"value\": \"50%\",\n \"var\": \"var(--pf-v5-c-drawer__panel--md--FlexBasis)\"\n};\nexport default c_drawer__panel_md_FlexBasis;","export const c_drawer__panel_md_FlexBasis_min = {\n \"name\": \"--pf-v5-c-drawer__panel--md--FlexBasis--min\",\n \"value\": \"1.5rem\",\n \"var\": \"var(--pf-v5-c-drawer__panel--md--FlexBasis--min)\"\n};\nexport default c_drawer__panel_md_FlexBasis_min;","export const c_drawer__panel_md_FlexBasis_max = {\n \"name\": \"--pf-v5-c-drawer__panel--md--FlexBasis--max\",\n \"value\": \"100%\",\n \"var\": \"var(--pf-v5-c-drawer__panel--md--FlexBasis--max)\"\n};\nexport default c_drawer__panel_md_FlexBasis_max;","import { __rest } from \"tslib\";\nimport * as React from 'react';\nimport styles from '@patternfly/react-styles/css/components/Drawer/drawer.mjs';\nimport { css } from '@patternfly/react-styles';\nimport { DrawerColorVariant, DrawerContext } from './Drawer';\nimport { formatBreakpointMods, getLanguageDirection } from '../../helpers/util';\nimport { GenerateId } from '../../helpers/GenerateId/GenerateId';\nimport { FocusTrap } from '../../helpers/FocusTrap/FocusTrap';\nimport cssPanelMdFlexBasis from '@patternfly/react-tokens/dist/esm/c_drawer__panel_md_FlexBasis';\nimport cssPanelMdFlexBasisMin from '@patternfly/react-tokens/dist/esm/c_drawer__panel_md_FlexBasis_min';\nimport cssPanelMdFlexBasisMax from '@patternfly/react-tokens/dist/esm/c_drawer__panel_md_FlexBasis_max';\nlet isResizing = null;\nlet newSize = 0;\nexport const DrawerPanelContent = (_a) => {\n var { className = '', id, children, hasNoBorder = false, isResizable = false, onResize, minSize, defaultSize, maxSize, increment = 5, resizeAriaLabel = 'Resize', widths, colorVariant = DrawerColorVariant.default, focusTrap } = _a, props = __rest(_a, [\"className\", \"id\", \"children\", \"hasNoBorder\", \"isResizable\", \"onResize\", \"minSize\", \"defaultSize\", \"maxSize\", \"increment\", \"resizeAriaLabel\", \"widths\", \"colorVariant\", \"focusTrap\"]);\n const panel = React.useRef();\n const splitterRef = React.useRef();\n const [separatorValue, setSeparatorValue] = React.useState(0);\n const { position, isExpanded, isStatic, onExpand, drawerRef, drawerContentRef, isInline } = React.useContext(DrawerContext);\n const hidden = isStatic ? false : !isExpanded;\n const [isExpandedInternal, setIsExpandedInternal] = React.useState(!hidden);\n const [isFocusTrapActive, setIsFocusTrapActive] = React.useState(false);\n const previouslyFocusedElement = React.useRef(null);\n let currWidth = 0;\n let panelRect;\n let end;\n let start;\n let bottom;\n let setInitialVals = true;\n if (isStatic && (focusTrap === null || focusTrap === void 0 ? void 0 : focusTrap.enabled)) {\n // eslint-disable-next-line no-console\n console.warn(`DrawerPanelContent: The focusTrap.enabled prop cannot be true if the Drawer's isStatic prop is true. This will cause a permanent focus trap.`);\n }\n React.useEffect(() => {\n if (!isStatic && isExpanded) {\n setIsExpandedInternal(isExpanded);\n }\n }, [isStatic, isExpanded]);\n const calcValueNow = () => {\n let splitterPos;\n let drawerSize;\n const isRTL = getLanguageDirection(panel.current) === 'rtl';\n if (isInline && (position === 'end' || position === 'right')) {\n if (isRTL) {\n splitterPos = panel.current.getBoundingClientRect().left - splitterRef.current.getBoundingClientRect().right;\n drawerSize = drawerRef.current.getBoundingClientRect().left - drawerRef.current.getBoundingClientRect().right;\n }\n else {\n splitterPos = panel.current.getBoundingClientRect().right - splitterRef.current.getBoundingClientRect().left;\n drawerSize = drawerRef.current.getBoundingClientRect().right - drawerRef.current.getBoundingClientRect().left;\n }\n }\n else if (isInline && (position === 'start' || position === 'left')) {\n if (isRTL) {\n splitterPos = splitterRef.current.getBoundingClientRect().left - panel.current.getBoundingClientRect().right;\n drawerSize = drawerRef.current.getBoundingClientRect().left - drawerRef.current.getBoundingClientRect().right;\n }\n else {\n splitterPos = splitterRef.current.getBoundingClientRect().right - panel.current.getBoundingClientRect().left;\n drawerSize = drawerRef.current.getBoundingClientRect().right - drawerRef.current.getBoundingClientRect().left;\n }\n }\n else if (position === 'end' || position === 'right') {\n if (isRTL) {\n splitterPos =\n drawerContentRef.current.getBoundingClientRect().left - splitterRef.current.getBoundingClientRect().right;\n drawerSize =\n drawerContentRef.current.getBoundingClientRect().left -\n drawerContentRef.current.getBoundingClientRect().right;\n }\n else {\n splitterPos =\n drawerContentRef.current.getBoundingClientRect().right - splitterRef.current.getBoundingClientRect().left;\n drawerSize =\n drawerContentRef.current.getBoundingClientRect().right -\n drawerContentRef.current.getBoundingClientRect().left;\n }\n }\n else if (position === 'start' || position === 'left') {\n if (isRTL) {\n splitterPos =\n splitterRef.current.getBoundingClientRect().left - drawerContentRef.current.getBoundingClientRect().right;\n drawerSize =\n drawerContentRef.current.getBoundingClientRect().left -\n drawerContentRef.current.getBoundingClientRect().right;\n }\n else {\n splitterPos =\n splitterRef.current.getBoundingClientRect().right - drawerContentRef.current.getBoundingClientRect().left;\n drawerSize =\n drawerContentRef.current.getBoundingClientRect().right -\n drawerContentRef.current.getBoundingClientRect().left;\n }\n }\n else if (position === 'bottom') {\n splitterPos =\n drawerContentRef.current.getBoundingClientRect().bottom - splitterRef.current.getBoundingClientRect().top;\n drawerSize =\n drawerContentRef.current.getBoundingClientRect().bottom - drawerContentRef.current.getBoundingClientRect().top;\n }\n const newSplitterPos = (splitterPos / drawerSize) * 100;\n return Math.round((newSplitterPos + Number.EPSILON) * 100) / 100;\n };\n const handleTouchStart = (e) => {\n e.stopPropagation();\n document.addEventListener('touchmove', callbackTouchMove, { passive: false });\n document.addEventListener('touchend', callbackTouchEnd);\n isResizing = true;\n };\n const handleMousedown = (e) => {\n e.stopPropagation();\n e.preventDefault();\n document.addEventListener('mousemove', callbackMouseMove);\n document.addEventListener('mouseup', callbackMouseUp);\n drawerRef.current.classList.add(css(styles.modifiers.resizing));\n isResizing = true;\n setInitialVals = true;\n };\n const handleMouseMove = (e) => {\n const mousePos = position === 'bottom' ? e.clientY : e.clientX;\n handleControlMove(e, mousePos);\n };\n const handleTouchMove = (e) => {\n e.preventDefault();\n e.stopImmediatePropagation();\n const touchPos = position === 'bottom' ? e.touches[0].clientY : e.touches[0].clientX;\n handleControlMove(e, touchPos);\n };\n const handleControlMove = (e, controlPosition) => {\n const isRTL = getLanguageDirection(panel.current) === 'rtl';\n e.stopPropagation();\n if (!isResizing) {\n return;\n }\n if (setInitialVals) {\n panelRect = panel.current.getBoundingClientRect();\n if (isRTL) {\n start = panelRect.right;\n end = panelRect.left;\n }\n else {\n end = panelRect.right;\n start = panelRect.left;\n }\n bottom = panelRect.bottom;\n setInitialVals = false;\n }\n const mousePos = controlPosition;\n let newSize = 0;\n if (position === 'end' || position === 'right') {\n newSize = isRTL ? mousePos - end : end - mousePos;\n }\n else if (position === 'start' || position === 'left') {\n newSize = isRTL ? start - mousePos : mousePos - start;\n }\n else {\n newSize = bottom - mousePos;\n }\n if (position === 'bottom') {\n panel.current.style.overflowAnchor = 'none';\n }\n panel.current.style.setProperty(cssPanelMdFlexBasis.name, newSize + 'px');\n currWidth = newSize;\n setSeparatorValue(calcValueNow());\n };\n const handleMouseup = (e) => {\n if (!isResizing) {\n return;\n }\n drawerRef.current.classList.remove(css(styles.modifiers.resizing));\n isResizing = false;\n onResize && onResize(e, currWidth, id);\n setInitialVals = true;\n document.removeEventListener('mousemove', callbackMouseMove);\n document.removeEventListener('mouseup', callbackMouseUp);\n };\n const handleTouchEnd = (e) => {\n e.stopPropagation();\n if (!isResizing) {\n return;\n }\n isResizing = false;\n onResize && onResize(e, currWidth, id);\n document.removeEventListener('touchmove', callbackTouchMove);\n document.removeEventListener('touchend', callbackTouchEnd);\n };\n const callbackMouseMove = React.useCallback(handleMouseMove, []);\n const callbackTouchEnd = React.useCallback(handleTouchEnd, []);\n const callbackTouchMove = React.useCallback(handleTouchMove, []);\n const callbackMouseUp = React.useCallback(handleMouseup, []);\n const handleKeys = (e) => {\n const isRTL = getLanguageDirection(panel.current) === 'rtl';\n const key = e.key;\n if (key !== 'Escape' &&\n key !== 'Enter' &&\n key !== 'ArrowUp' &&\n key !== 'ArrowDown' &&\n key !== 'ArrowLeft' &&\n key !== 'ArrowRight') {\n if (isResizing) {\n e.preventDefault();\n }\n return;\n }\n e.preventDefault();\n if (key === 'Escape' || key === 'Enter') {\n onResize && onResize(e, currWidth, id);\n }\n const panelRect = panel.current.getBoundingClientRect();\n newSize = position === 'bottom' ? panelRect.height : panelRect.width;\n let delta = 0;\n if (key === 'ArrowRight') {\n if (isRTL) {\n delta = position === 'left' || position === 'start' ? -increment : increment;\n }\n else {\n delta = position === 'left' || position === 'start' ? increment : -increment;\n }\n }\n else if (key === 'ArrowLeft') {\n if (isRTL) {\n delta = position === 'left' || position === 'start' ? increment : -increment;\n }\n else {\n delta = position === 'left' || position === 'start' ? -increment : increment;\n }\n }\n else if (key === 'ArrowUp') {\n delta = increment;\n }\n else if (key === 'ArrowDown') {\n delta = -increment;\n }\n newSize = newSize + delta;\n if (position === 'bottom') {\n panel.current.style.overflowAnchor = 'none';\n }\n panel.current.style.setProperty(cssPanelMdFlexBasis.name, newSize + 'px');\n currWidth = newSize;\n setSeparatorValue(calcValueNow());\n };\n const boundaryCssVars = {};\n if (defaultSize) {\n boundaryCssVars[cssPanelMdFlexBasis.name] = defaultSize;\n }\n if (minSize) {\n boundaryCssVars[cssPanelMdFlexBasisMin.name] = minSize;\n }\n if (maxSize) {\n boundaryCssVars[cssPanelMdFlexBasisMax.name] = maxSize;\n }\n const isValidFocusTrap = (focusTrap === null || focusTrap === void 0 ? void 0 : focusTrap.enabled) && !isStatic;\n const Component = isValidFocusTrap ? FocusTrap : 'div';\n return (React.createElement(GenerateId, { prefix: \"pf-drawer-panel-\" }, (panelId) => {\n const focusTrapProps = {\n tabIndex: -1,\n 'aria-modal': true,\n role: 'dialog',\n active: isFocusTrapActive,\n 'aria-labelledby': (focusTrap === null || focusTrap === void 0 ? void 0 : focusTrap['aria-labelledby']) || id || panelId,\n focusTrapOptions: {\n fallbackFocus: () => panel.current,\n onActivate: () => {\n if (previouslyFocusedElement.current !== document.activeElement) {\n previouslyFocusedElement.current = document.activeElement;\n }\n },\n onDeactivate: () => {\n previouslyFocusedElement.current &&\n previouslyFocusedElement.current.focus &&\n previouslyFocusedElement.current.focus();\n },\n clickOutsideDeactivates: true,\n returnFocusOnDeactivate: false,\n // FocusTrap's initialFocus can accept false as a value to prevent initial focus.\n // We want to prevent this in case false is ever passed in.\n initialFocus: (focusTrap === null || focusTrap === void 0 ? void 0 : focusTrap.elementToFocusOnExpand) || undefined,\n escapeDeactivates: false\n }\n };\n return (React.createElement(Component, Object.assign({}, (isValidFocusTrap && focusTrapProps), { id: id || panelId, className: css(styles.drawerPanel, isResizable && styles.modifiers.resizable, hasNoBorder && styles.modifiers.noBorder, formatBreakpointMods(widths, styles), colorVariant === DrawerColorVariant.light200 && styles.modifiers.light_200, colorVariant === DrawerColorVariant.noBackground && styles.modifiers.noBackground, className), onTransitionEnd: (ev) => {\n if (ev.target === panel.current) {\n if (!hidden && ev.nativeEvent.propertyName === 'transform') {\n onExpand(ev);\n }\n setIsExpandedInternal(!hidden);\n if (isValidFocusTrap && ev.nativeEvent.propertyName === 'transform') {\n setIsFocusTrapActive((prevIsFocusTrapActive) => !prevIsFocusTrapActive);\n }\n }\n }, hidden: hidden }, ((defaultSize || minSize || maxSize) && {\n style: boundaryCssVars\n }), props, { ref: panel }), isExpandedInternal && (React.createElement(React.Fragment, null,\n isResizable && (React.createElement(React.Fragment, null,\n React.createElement(\"div\", { className: css(styles.drawerSplitter, position !== 'bottom' && styles.modifiers.vertical), role: \"separator\", tabIndex: 0, \"aria-orientation\": position === 'bottom' ? 'horizontal' : 'vertical', \"aria-label\": resizeAriaLabel, \"aria-valuenow\": separatorValue, \"aria-valuemin\": 0, \"aria-valuemax\": 100, \"aria-controls\": id || panelId, onMouseDown: handleMousedown, onKeyDown: handleKeys, onTouchStart: handleTouchStart, ref: splitterRef },\n React.createElement(\"div\", { className: css(styles.drawerSplitterHandle), \"aria-hidden\": true })),\n React.createElement(\"div\", { className: css(styles.drawerPanelMain) }, children))),\n !isResizable && children))));\n }));\n};\nDrawerPanelContent.displayName = 'DrawerPanelContent';\n//# sourceMappingURL=DrawerPanelContent.js.map","import './icon.css';\nexport default {\n \"icon\": \"pf-v5-c-icon\",\n \"iconContent\": \"pf-v5-c-icon__content\",\n \"iconProgress\": \"pf-v5-c-icon__progress\",\n \"modifiers\": {\n \"inline\": \"pf-m-inline\",\n \"sm\": \"pf-m-sm\",\n \"md\": \"pf-m-md\",\n \"lg\": \"pf-m-lg\",\n \"xl\": \"pf-m-xl\",\n \"inProgress\": \"pf-m-in-progress\",\n \"danger\": \"pf-m-danger\",\n \"warning\": \"pf-m-warning\",\n \"success\": \"pf-m-success\",\n \"info\": \"pf-m-info\",\n \"custom\": \"pf-m-custom\"\n },\n \"spinner\": \"pf-v5-c-spinner\"\n};","import { __rest } from \"tslib\";\nimport * as React from 'react';\nimport styles from '@patternfly/react-styles/css/components/Icon/icon.mjs';\nimport { css } from '@patternfly/react-styles';\nimport { Spinner } from '../Spinner';\nexport const Icon = (_a) => {\n var { children, className, progressIcon, size, iconSize, progressIconSize, status, isInline = false, isInProgress = false, defaultProgressArialabel = 'Loading...', shouldMirrorRTL = false } = _a, props = __rest(_a, [\"children\", \"className\", \"progressIcon\", \"size\", \"iconSize\", \"progressIconSize\", \"status\", \"isInline\", \"isInProgress\", \"defaultProgressArialabel\", \"shouldMirrorRTL\"]);\n const _progressIcon = progressIcon !== null && progressIcon !== void 0 ? progressIcon : React.createElement(Spinner, { diameter: \"1em\", \"aria-label\": defaultProgressArialabel });\n return (React.createElement(\"span\", Object.assign({ className: css(styles.icon, isInline && styles.modifiers.inline, isInProgress && styles.modifiers.inProgress, styles.modifiers[size], className) }, props),\n React.createElement(\"span\", { className: css(styles.iconContent, styles.modifiers[iconSize], styles.modifiers[status], shouldMirrorRTL && 'pf-v5-m-mirror-inline-rtl') }, children),\n isInProgress && (React.createElement(\"span\", { className: css(styles.iconProgress, styles.modifiers[progressIconSize], className) }, _progressIcon))));\n};\nIcon.displayName = 'Icon';\n//# sourceMappingURL=Icon.js.map","import './form.css';\nexport default {\n \"dirRtl\": \"pf-v5-m-dir-rtl\",\n \"form\": \"pf-v5-c-form\",\n \"formActions\": \"pf-v5-c-form__actions\",\n \"formFieldGroup\": \"pf-v5-c-form__field-group\",\n \"formFieldGroupBody\": \"pf-v5-c-form__field-group-body\",\n \"formFieldGroupHeader\": \"pf-v5-c-form__field-group-header\",\n \"formFieldGroupHeaderActions\": \"pf-v5-c-form__field-group-header-actions\",\n \"formFieldGroupHeaderDescription\": \"pf-v5-c-form__field-group-header-description\",\n \"formFieldGroupHeaderMain\": \"pf-v5-c-form__field-group-header-main\",\n \"formFieldGroupHeaderTitle\": \"pf-v5-c-form__field-group-header-title\",\n \"formFieldGroupHeaderTitleText\": \"pf-v5-c-form__field-group-header-title-text\",\n \"formFieldGroupToggle\": \"pf-v5-c-form__field-group-toggle\",\n \"formFieldGroupToggleButton\": \"pf-v5-c-form__field-group-toggle-button\",\n \"formFieldGroupToggleIcon\": \"pf-v5-c-form__field-group-toggle-icon\",\n \"formFieldset\": \"pf-v5-c-form__fieldset\",\n \"formGroup\": \"pf-v5-c-form__group\",\n \"formGroupControl\": \"pf-v5-c-form__group-control\",\n \"formGroupLabel\": \"pf-v5-c-form__group-label\",\n \"formGroupLabelHelp\": \"pf-v5-c-form__group-label-help\",\n \"formGroupLabelInfo\": \"pf-v5-c-form__group-label-info\",\n \"formGroupLabelMain\": \"pf-v5-c-form__group-label-main\",\n \"formHelperText\": \"pf-v5-c-form__helper-text\",\n \"formHelperTextIcon\": \"pf-v5-c-form__helper-text-icon\",\n \"formLabel\": \"pf-v5-c-form__label\",\n \"formLabelRequired\": \"pf-v5-c-form__label-required\",\n \"formLabelText\": \"pf-v5-c-form__label-text\",\n \"formSection\": \"pf-v5-c-form__section\",\n \"formSectionTitle\": \"pf-v5-c-form__section-title\",\n \"modifiers\": {\n \"horizontal\": \"pf-m-horizontal\",\n \"alignRight\": \"pf-m-align-right\",\n \"noPaddingTop\": \"pf-m-no-padding-top\",\n \"horizontalOnXs\": \"pf-m-horizontal-on-xs\",\n \"horizontalOnSm\": \"pf-m-horizontal-on-sm\",\n \"horizontalOnMd\": \"pf-m-horizontal-on-md\",\n \"horizontalOnLg\": \"pf-m-horizontal-on-lg\",\n \"horizontalOnXl\": \"pf-m-horizontal-on-xl\",\n \"horizontalOn_2xl\": \"pf-m-horizontal-on-2xl\",\n \"limitWidth\": \"pf-m-limit-width\",\n \"action\": \"pf-m-action\",\n \"info\": \"pf-m-info\",\n \"disabled\": \"pf-m-disabled\",\n \"inline\": \"pf-m-inline\",\n \"stack\": \"pf-m-stack\",\n \"error\": \"pf-m-error\",\n \"success\": \"pf-m-success\",\n \"warning\": \"pf-m-warning\",\n \"inactive\": \"pf-m-inactive\",\n \"hidden\": \"pf-m-hidden\",\n \"expanded\": \"pf-m-expanded\"\n },\n \"themeDark\": \"pf-v5-theme-dark\"\n};","import { __rest } from \"tslib\";\nimport * as React from 'react';\nimport styles from '@patternfly/react-styles/css/components/Form/form.mjs';\nimport { ASTERISK } from '../../helpers/htmlConstants';\nimport { css } from '@patternfly/react-styles';\nimport { GenerateId } from '../../helpers/GenerateId/GenerateId';\nexport const FormGroup = (_a) => {\n var { children = null, className = '', label, labelInfo, labelIcon, isRequired = false, isInline = false, hasNoPaddingTop = false, isStack = false, fieldId, role } = _a, props = __rest(_a, [\"children\", \"className\", \"label\", \"labelInfo\", \"labelIcon\", \"isRequired\", \"isInline\", \"hasNoPaddingTop\", \"isStack\", \"fieldId\", \"role\"]);\n const isGroupOrRadioGroup = role === 'group' || role === 'radiogroup';\n const LabelComponent = isGroupOrRadioGroup ? 'span' : 'label';\n const labelContent = (React.createElement(React.Fragment, null,\n React.createElement(LabelComponent, Object.assign({ className: css(styles.formLabel) }, (!isGroupOrRadioGroup && { htmlFor: fieldId })),\n React.createElement(\"span\", { className: css(styles.formLabelText) }, label),\n isRequired && (React.createElement(\"span\", { className: css(styles.formLabelRequired), \"aria-hidden\": \"true\" },\n ' ',\n ASTERISK))),\n ' ',\n React.isValidElement(labelIcon) && labelIcon));\n return (React.createElement(GenerateId, null, (randomId) => (React.createElement(\"div\", Object.assign({ className: css(styles.formGroup, className) }, (role && { role }), (isGroupOrRadioGroup && { 'aria-labelledby': `${fieldId || randomId}-legend` }), props),\n label && (React.createElement(\"div\", Object.assign({ className: css(styles.formGroupLabel, labelInfo && styles.modifiers.info, hasNoPaddingTop && styles.modifiers.noPaddingTop) }, (isGroupOrRadioGroup && { id: `${fieldId || randomId}-legend` })),\n labelInfo && (React.createElement(React.Fragment, null,\n React.createElement(\"div\", { className: css(styles.formGroupLabelMain) }, labelContent),\n React.createElement(\"div\", { className: css(styles.formGroupLabelInfo) }, labelInfo))),\n !labelInfo && labelContent)),\n React.createElement(\"div\", { className: css(styles.formGroupControl, isInline && styles.modifiers.inline, isStack && styles.modifiers.stack) }, children)))));\n};\nFormGroup.displayName = 'FormGroup';\n//# sourceMappingURL=FormGroup.js.map","import { __rest } from \"tslib\";\nimport * as React from 'react';\nimport { css } from '@patternfly/react-styles';\nimport styles from '@patternfly/react-styles/css/components/Form/form.mjs';\nexport const FormHelperText = (_a) => {\n var { children = null, className = '' } = _a, props = __rest(_a, [\"children\", \"className\"]);\n return (React.createElement(\"div\", Object.assign({ className: css(styles.formHelperText, className) }, props), children));\n};\nFormHelperText.displayName = 'FormHelperText';\n//# sourceMappingURL=FormHelperText.js.map","import { __rest } from \"tslib\";\nimport * as React from 'react';\nimport styles from '@patternfly/react-styles/css/components/FormControl/form-control.mjs';\nimport { css } from '@patternfly/react-styles';\nimport { capitalize, ValidatedOptions, canUseDOM } from '../../helpers';\nimport { FormControlIcon } from '../FormControl/FormControlIcon';\nexport var TextAreResizeOrientation;\n(function (TextAreResizeOrientation) {\n TextAreResizeOrientation[\"horizontal\"] = \"horizontal\";\n TextAreResizeOrientation[\"vertical\"] = \"vertical\";\n TextAreResizeOrientation[\"both\"] = \"both\";\n})(TextAreResizeOrientation || (TextAreResizeOrientation = {}));\nexport var TextAreaReadOnlyVariant;\n(function (TextAreaReadOnlyVariant) {\n TextAreaReadOnlyVariant[\"default\"] = \"default\";\n TextAreaReadOnlyVariant[\"plain\"] = \"plain\";\n})(TextAreaReadOnlyVariant || (TextAreaReadOnlyVariant = {}));\nclass TextAreaBase extends React.Component {\n constructor(props) {\n super(props);\n this.inputRef = React.createRef();\n this.setAutoHeight = (field) => {\n const parent = field.parentElement;\n parent.style.setProperty('height', 'inherit');\n const computed = window.getComputedStyle(field);\n // Calculate the height\n const height = parseInt(computed.getPropertyValue('border-top-width')) +\n parseInt(computed.getPropertyValue('padding-top')) +\n field.scrollHeight +\n parseInt(computed.getPropertyValue('padding-bottom')) +\n parseInt(computed.getPropertyValue('border-bottom-width'));\n parent.style.setProperty('height', `${height}px`);\n };\n this.handleChange = (event) => {\n // https://gomakethings.com/automatically-expand-a-textarea-as-the-user-types-using-vanilla-javascript/\n const field = event.currentTarget;\n if (this.props.autoResize && canUseDOM) {\n this.setAutoHeight(field);\n }\n if (this.props.onChange) {\n this.props.onChange(event, field.value);\n }\n };\n if (!props.id && !props['aria-label']) {\n // eslint-disable-next-line no-console\n console.error('TextArea: TextArea requires either an id or aria-label to be specified');\n }\n }\n componentDidMount() {\n const inputRef = this.props.innerRef || this.inputRef;\n if (this.props.autoResize && canUseDOM) {\n const field = inputRef.current;\n this.setAutoHeight(field);\n }\n }\n render() {\n const _a = this.props, { className, value, validated, isRequired, isDisabled, readOnlyVariant, resizeOrientation, innerRef, disabled, \n /* eslint-disable @typescript-eslint/no-unused-vars */\n autoResize, onChange, \n /* eslint-enable @typescript-eslint/no-unused-vars */\n onBlur, onFocus } = _a, props = __rest(_a, [\"className\", \"value\", \"validated\", \"isRequired\", \"isDisabled\", \"readOnlyVariant\", \"resizeOrientation\", \"innerRef\", \"disabled\", \"autoResize\", \"onChange\", \"onBlur\", \"onFocus\"]);\n const orientation = `resize${capitalize(resizeOrientation)}`;\n const hasStatusIcon = ['success', 'error', 'warning'].includes(validated);\n return (React.createElement(\"span\", { className: css(styles.formControl, readOnlyVariant && styles.modifiers.readonly, readOnlyVariant === 'plain' && styles.modifiers.plain, resizeOrientation && styles.modifiers[orientation], isDisabled && styles.modifiers.disabled, hasStatusIcon && styles.modifiers[validated], className) },\n React.createElement(\"textarea\", Object.assign({ onChange: this.handleChange, onFocus: onFocus, onBlur: onBlur }, (typeof this.props.defaultValue !== 'string' && { value }), { \"aria-invalid\": validated === ValidatedOptions.error, required: isRequired, disabled: isDisabled || disabled, readOnly: !!readOnlyVariant, ref: innerRef || this.inputRef }, props)),\n hasStatusIcon && (React.createElement(\"span\", { className: css(styles.formControlUtilities) },\n React.createElement(FormControlIcon, { status: validated })))));\n }\n}\nTextAreaBase.displayName = 'TextArea';\nTextAreaBase.defaultProps = {\n innerRef: React.createRef(),\n className: '',\n isRequired: false,\n isDisabled: false,\n validated: 'default',\n resizeOrientation: 'both',\n 'aria-label': null\n};\nexport const TextArea = React.forwardRef((props, ref) => (React.createElement(TextAreaBase, Object.assign({}, props, { innerRef: ref }))));\nTextArea.displayName = 'TextArea';\n//# sourceMappingURL=TextArea.js.map","import './jump-links.css';\nexport default {\n \"button\": \"pf-v5-c-button\",\n \"dirRtl\": \"pf-v5-m-dir-rtl\",\n \"jumpLinks\": \"pf-v5-c-jump-links\",\n \"jumpLinksItem\": \"pf-v5-c-jump-links__item\",\n \"jumpLinksLabel\": \"pf-v5-c-jump-links__label\",\n \"jumpLinksLink\": \"pf-v5-c-jump-links__link\",\n \"jumpLinksLinkText\": \"pf-v5-c-jump-links__link-text\",\n \"jumpLinksList\": \"pf-v5-c-jump-links__list\",\n \"jumpLinksMain\": \"pf-v5-c-jump-links__main\",\n \"jumpLinksToggle\": \"pf-v5-c-jump-links__toggle\",\n \"jumpLinksToggleIcon\": \"pf-v5-c-jump-links__toggle-icon\",\n \"jumpLinksToggleText\": \"pf-v5-c-jump-links__toggle-text\",\n \"modifiers\": {\n \"center\": \"pf-m-center\",\n \"vertical\": \"pf-m-vertical\",\n \"expandable\": \"pf-m-expandable\",\n \"nonExpandable\": \"pf-m-non-expandable\",\n \"expandableOnSm\": \"pf-m-expandable-on-sm\",\n \"nonExpandableOnSm\": \"pf-m-non-expandable-on-sm\",\n \"expandableOnMd\": \"pf-m-expandable-on-md\",\n \"nonExpandableOnMd\": \"pf-m-non-expandable-on-md\",\n \"expandableOnLg\": \"pf-m-expandable-on-lg\",\n \"nonExpandableOnLg\": \"pf-m-non-expandable-on-lg\",\n \"expandableOnXl\": \"pf-m-expandable-on-xl\",\n \"nonExpandableOnXl\": \"pf-m-non-expandable-on-xl\",\n \"expandableOn_2xl\": \"pf-m-expandable-on-2xl\",\n \"nonExpandableOn_2xl\": \"pf-m-non-expandable-on-2xl\",\n \"expanded\": \"pf-m-expanded\",\n \"current\": \"pf-m-current\"\n }\n};","import './sidebar.css';\nexport default {\n \"modifiers\": {\n \"gutter\": \"pf-m-gutter\",\n \"panelRight\": \"pf-m-panel-right\",\n \"stack\": \"pf-m-stack\",\n \"split\": \"pf-m-split\",\n \"border\": \"pf-m-border\",\n \"padding\": \"pf-m-padding\",\n \"sticky\": \"pf-m-sticky\",\n \"static\": \"pf-m-static\",\n \"noBackground\": \"pf-m-no-background\",\n \"widthDefault\": \"pf-m-width-default\",\n \"width_25\": \"pf-m-width-25\",\n \"width_33\": \"pf-m-width-33\",\n \"width_50\": \"pf-m-width-50\",\n \"width_66\": \"pf-m-width-66\",\n \"width_75\": \"pf-m-width-75\",\n \"width_100\": \"pf-m-width-100\",\n \"widthDefaultOnSm\": \"pf-m-width-default-on-sm\",\n \"width_25OnSm\": \"pf-m-width-25-on-sm\",\n \"width_33OnSm\": \"pf-m-width-33-on-sm\",\n \"width_50OnSm\": \"pf-m-width-50-on-sm\",\n \"width_66OnSm\": \"pf-m-width-66-on-sm\",\n \"width_75OnSm\": \"pf-m-width-75-on-sm\",\n \"width_100OnSm\": \"pf-m-width-100-on-sm\",\n \"widthDefaultOnMd\": \"pf-m-width-default-on-md\",\n \"width_25OnMd\": \"pf-m-width-25-on-md\",\n \"width_33OnMd\": \"pf-m-width-33-on-md\",\n \"width_50OnMd\": \"pf-m-width-50-on-md\",\n \"width_66OnMd\": \"pf-m-width-66-on-md\",\n \"width_75OnMd\": \"pf-m-width-75-on-md\",\n \"width_100OnMd\": \"pf-m-width-100-on-md\",\n \"widthDefaultOnLg\": \"pf-m-width-default-on-lg\",\n \"width_25OnLg\": \"pf-m-width-25-on-lg\",\n \"width_33OnLg\": \"pf-m-width-33-on-lg\",\n \"width_50OnLg\": \"pf-m-width-50-on-lg\",\n \"width_66OnLg\": \"pf-m-width-66-on-lg\",\n \"width_75OnLg\": \"pf-m-width-75-on-lg\",\n \"width_100OnLg\": \"pf-m-width-100-on-lg\",\n \"widthDefaultOnXl\": \"pf-m-width-default-on-xl\",\n \"width_25OnXl\": \"pf-m-width-25-on-xl\",\n \"width_33OnXl\": \"pf-m-width-33-on-xl\",\n \"width_50OnXl\": \"pf-m-width-50-on-xl\",\n \"width_66OnXl\": \"pf-m-width-66-on-xl\",\n \"width_75OnXl\": \"pf-m-width-75-on-xl\",\n \"width_100OnXl\": \"pf-m-width-100-on-xl\",\n \"widthDefaultOn_2xl\": \"pf-m-width-default-on-2xl\",\n \"width_25On_2xl\": \"pf-m-width-25-on-2xl\",\n \"width_33On_2xl\": \"pf-m-width-33-on-2xl\",\n \"width_50On_2xl\": \"pf-m-width-50-on-2xl\",\n \"width_66On_2xl\": \"pf-m-width-66-on-2xl\",\n \"width_75On_2xl\": \"pf-m-width-75-on-2xl\",\n \"width_100On_2xl\": \"pf-m-width-100-on-2xl\"\n },\n \"sidebar\": \"pf-v5-c-sidebar\",\n \"sidebarContent\": \"pf-v5-c-sidebar__content\",\n \"sidebarMain\": \"pf-v5-c-sidebar__main\",\n \"sidebarPanel\": \"pf-v5-c-sidebar__panel\"\n};","import { __rest } from \"tslib\";\nimport * as React from 'react';\nimport { css } from '@patternfly/react-styles';\nimport styles from '@patternfly/react-styles/css/components/JumpLinks/jump-links.mjs';\nexport const JumpLinksList = (_a) => {\n var { children, className } = _a, props = __rest(_a, [\"children\", \"className\"]);\n return (React.createElement(\"ul\", Object.assign({ className: css(styles.jumpLinksList, className), role: \"list\" }, props), children));\n};\nJumpLinksList.displayName = 'JumpLinksList';\n//# sourceMappingURL=JumpLinksList.js.map","import { __rest } from \"tslib\";\nimport * as React from 'react';\nimport { css } from '@patternfly/react-styles';\nimport styles from '@patternfly/react-styles/css/components/JumpLinks/jump-links.mjs';\nimport { JumpLinksList } from './JumpLinksList';\nexport const JumpLinksItem = (_a) => {\n var { isActive, href, \n // eslint-disable-next-line\n node, children, onClick, className } = _a, props = __rest(_a, [\"isActive\", \"href\", \"node\", \"children\", \"onClick\", \"className\"]);\n const childrenArr = React.Children.toArray(children);\n const sublists = childrenArr.filter((child) => child.type === JumpLinksList);\n children = childrenArr.filter((child) => child.type !== JumpLinksList);\n return (React.createElement(\"li\", Object.assign({ className: css(styles.jumpLinksItem, isActive && styles.modifiers.current, className) }, (isActive && { 'aria-current': 'location' }), props),\n React.createElement(\"a\", { className: styles.jumpLinksLink, href: href, onClick: onClick },\n React.createElement(\"span\", { className: styles.jumpLinksLinkText }, children)),\n sublists));\n};\nJumpLinksItem.displayName = 'JumpLinksItem';\n//# sourceMappingURL=JumpLinksItem.js.map","export const c_jump_links__toggle_Display = {\n \"name\": \"--pf-v5-c-jump-links__toggle--Display\",\n \"value\": \"none\",\n \"var\": \"var(--pf-v5-c-jump-links__toggle--Display)\"\n};\nexport default c_jump_links__toggle_Display;","import { __rest } from \"tslib\";\nimport * as React from 'react';\nimport { css } from '@patternfly/react-styles';\nimport styles from '@patternfly/react-styles/css/components/JumpLinks/jump-links.mjs';\nimport sidebarStyles from '@patternfly/react-styles/css/components/Sidebar/sidebar.mjs';\nimport { JumpLinksItem } from './JumpLinksItem';\nimport { JumpLinksList } from './JumpLinksList';\nimport { formatBreakpointMods } from '../../helpers/util';\nimport { Button } from '../Button';\nimport AngleRightIcon from '@patternfly/react-icons/dist/esm/icons/angle-right-icon';\nimport cssToggleDisplayVar from '@patternfly/react-tokens/dist/esm/c_jump_links__toggle_Display';\nimport { canUseDOM } from '../../helpers/util';\n// Recursively find JumpLinkItems and return an array of all their scrollNodes\nconst getScrollItems = (children, res) => {\n React.Children.forEach(children, (child) => {\n if (canUseDOM && document.getElementById && document.querySelector && child.type === JumpLinksItem) {\n const scrollNode = child.props.node || child.props.href;\n if (typeof scrollNode === 'string') {\n if (scrollNode.startsWith('#')) {\n // Allow spaces and other special characters as `id`s to be nicer to consumers\n // https://stackoverflow.com/questions/70579/what-are-valid-values-for-the-id-attribute-in-html\n res.push(document.getElementById(scrollNode.substr(1)));\n }\n else {\n res.push(document.querySelector(scrollNode));\n }\n }\n else if (scrollNode instanceof HTMLElement) {\n res.push(scrollNode);\n }\n }\n if ([React.Fragment, JumpLinksList, JumpLinksItem].includes(child.type)) {\n getScrollItems(child.props.children, res);\n }\n });\n return res;\n};\nfunction isResponsive(jumpLinks) {\n // https://github.com/patternfly/patternfly/blob/main/src/patternfly/components/JumpLinks/jump-links.scss#L103\n return jumpLinks && getComputedStyle(jumpLinks).getPropertyValue(cssToggleDisplayVar.name).includes('block');\n}\nexport const JumpLinks = (_a) => {\n var { isCentered, isVertical, children, label, 'aria-label': ariaLabel = typeof label === 'string' ? label : null, scrollableSelector, activeIndex: activeIndexProp = 0, offset = 0, expandable, isExpanded: isExpandedProp = false, alwaysShowLabel = true, toggleAriaLabel = 'Toggle jump links', className } = _a, props = __rest(_a, [\"isCentered\", \"isVertical\", \"children\", \"label\", 'aria-label', \"scrollableSelector\", \"activeIndex\", \"offset\", \"expandable\", \"isExpanded\", \"alwaysShowLabel\", \"toggleAriaLabel\", \"className\"]);\n const hasScrollSpy = Boolean(scrollableSelector);\n const [scrollItems, setScrollItems] = React.useState(hasScrollSpy ? getScrollItems(children, []) : []);\n const [activeIndex, setActiveIndex] = React.useState(activeIndexProp);\n const [isExpanded, setIsExpanded] = React.useState(isExpandedProp);\n // Boolean to disable scroll listener from overriding active state of clicked jumplink\n const isLinkClicked = React.useRef(false);\n // Allow expanding to be controlled for a niche use case\n React.useEffect(() => setIsExpanded(isExpandedProp), [isExpandedProp]);\n const navRef = React.useRef();\n let scrollableElement;\n const scrollSpy = React.useCallback(() => {\n if (!canUseDOM || !hasScrollSpy || !(scrollableElement instanceof HTMLElement)) {\n return;\n }\n if (isLinkClicked.current) {\n isLinkClicked.current = false;\n return;\n }\n const scrollPosition = Math.ceil(scrollableElement.scrollTop + offset);\n window.requestAnimationFrame(() => {\n let newScrollItems = scrollItems;\n // Items might have rendered after this component or offsetTop values may need\n // to be updated. Do a quick refresh.\n const requiresRefresh = newScrollItems.every((e) => !(e === null || e === void 0 ? void 0 : e.offsetTop)) || !newScrollItems[0] || newScrollItems.includes(null);\n if (requiresRefresh) {\n newScrollItems = getScrollItems(children, []);\n setScrollItems(newScrollItems);\n }\n const scrollElements = newScrollItems\n .map((e, index) => ({\n y: e ? e.offsetTop : null,\n index\n }))\n .filter(({ y }) => y !== null)\n .sort((e1, e2) => e2.y - e1.y);\n for (const { y, index } of scrollElements) {\n if (scrollPosition >= y) {\n return setActiveIndex(index);\n }\n }\n });\n }, [scrollItems, hasScrollSpy, scrollableElement, offset]);\n React.useEffect(() => {\n scrollableElement = document.querySelector(scrollableSelector);\n if (!(scrollableElement instanceof HTMLElement)) {\n return;\n }\n scrollableElement.addEventListener('scroll', scrollSpy);\n return () => scrollableElement.removeEventListener('scroll', scrollSpy);\n }, [scrollableSelector, scrollSpy]);\n React.useEffect(() => {\n scrollSpy();\n }, []);\n let jumpLinkIndex = 0;\n const cloneChildren = (children) => !hasScrollSpy\n ? children\n : React.Children.map(children, (child) => {\n if (child.type === JumpLinksItem) {\n const { onClick: onClickProp, isActive: isActiveProp } = child.props;\n const itemIndex = jumpLinkIndex++;\n const scrollItem = scrollItems[itemIndex];\n return React.cloneElement(child, {\n onClick(ev) {\n isLinkClicked.current = true;\n // Items might have rendered after this component. Do a quick refresh.\n let newScrollItems;\n if (!scrollItem) {\n newScrollItems = getScrollItems(children, []);\n setScrollItems(newScrollItems);\n }\n const newScrollItem = scrollItem || newScrollItems[itemIndex];\n if (newScrollItem) {\n // we have to support scrolling to an offset due to sticky sidebar\n const scrollableElement = document.querySelector(scrollableSelector);\n if (scrollableElement instanceof HTMLElement) {\n if (isResponsive(navRef.current)) {\n // Remove class immediately so we can get collapsed height\n if (navRef.current) {\n navRef.current.classList.remove(styles.modifiers.expanded);\n }\n let stickyParent = navRef.current && navRef.current.parentElement;\n while (stickyParent && !stickyParent.classList.contains(sidebarStyles.modifiers.sticky)) {\n stickyParent = stickyParent.parentElement;\n }\n setIsExpanded(false);\n if (stickyParent) {\n offset += stickyParent.scrollHeight;\n }\n }\n scrollableElement.scrollTo(0, newScrollItem.offsetTop - offset);\n }\n newScrollItem.focus();\n window.history.pushState('', '', ev.currentTarget.href);\n ev.preventDefault();\n setActiveIndex(itemIndex);\n }\n if (onClickProp) {\n onClickProp(ev);\n }\n },\n isActive: isActiveProp || activeIndex === itemIndex,\n children: cloneChildren(child.props.children)\n });\n }\n else if (child.type === React.Fragment) {\n return cloneChildren(child.props.children);\n }\n else if (child.type === JumpLinksList) {\n return React.cloneElement(child, { children: cloneChildren(child.props.children) });\n }\n return child;\n });\n return (React.createElement(\"nav\", Object.assign({ className: css(styles.jumpLinks, isCentered && styles.modifiers.center, isVertical && styles.modifiers.vertical, formatBreakpointMods(expandable, styles), isExpanded && styles.modifiers.expanded, className), \"aria-label\": ariaLabel, ref: navRef }, props),\n React.createElement(\"div\", { className: styles.jumpLinksMain },\n React.createElement(\"div\", { className: css(`${styles.jumpLinks}__header`) },\n expandable && (React.createElement(\"div\", { className: styles.jumpLinksToggle },\n React.createElement(Button, { variant: \"plain\", onClick: () => setIsExpanded(!isExpanded), \"aria-label\": toggleAriaLabel, \"aria-expanded\": isExpanded },\n React.createElement(\"span\", { className: styles.jumpLinksToggleIcon },\n React.createElement(AngleRightIcon, null)),\n label && React.createElement(\"span\", { className: css(styles.jumpLinksToggleText) },\n \" \",\n label,\n \" \")))),\n label && alwaysShowLabel && React.createElement(\"div\", { className: css(styles.jumpLinksLabel) }, label)),\n React.createElement(\"ul\", { className: styles.jumpLinksList, role: \"list\" }, cloneChildren(children)))));\n};\nJumpLinks.displayName = 'JumpLinks';\n//# sourceMappingURL=JumpLinks.js.map","import { createIcon } from '../createIcon';\n\nexport const EyeSlashIconConfig = {\n name: 'EyeSlashIcon',\n height: 512,\n width: 640,\n svgPath: 'M320 400c-75.85 0-137.25-58.71-142.9-133.11L72.2 185.82c-13.79 17.3-26.48 35.59-36.72 55.59a32.35 32.35 0 0 0 0 29.19C89.71 376.41 197.07 448 320 448c26.91 0 52.87-4 77.89-10.46L346 397.39a144.13 144.13 0 0 1-26 2.61zm313.82 58.1l-110.55-85.44a331.25 331.25 0 0 0 81.25-102.07 32.35 32.35 0 0 0 0-29.19C550.29 135.59 442.93 64 320 64a308.15 308.15 0 0 0-147.32 37.7L45.46 3.37A16 16 0 0 0 23 6.18L3.37 31.45A16 16 0 0 0 6.18 53.9l588.36 454.73a16 16 0 0 0 22.46-2.81l19.64-25.27a16 16 0 0 0-2.82-22.45zm-183.72-142l-39.3-30.38A94.75 94.75 0 0 0 416 256a94.76 94.76 0 0 0-121.31-92.21A47.65 47.65 0 0 1 304 192a46.64 46.64 0 0 1-1.54 10l-73.61-56.89A142.31 142.31 0 0 1 320 112a143.92 143.92 0 0 1 144 144c0 21.63-5.29 41.79-13.9 60.11z',\n yOffset: 0,\n xOffset: 0,\n};\n\nexport const EyeSlashIcon = createIcon(EyeSlashIconConfig);\n\nexport default EyeSlashIcon;","import { createIcon } from '../createIcon';\n\nexport const EyeIconConfig = {\n name: 'EyeIcon',\n height: 512,\n width: 576,\n svgPath: 'M572.52 241.4C518.29 135.59 410.93 64 288 64S57.68 135.64 3.48 241.41a32.35 32.35 0 0 0 0 29.19C57.71 376.41 165.07 448 288 448s230.32-71.64 284.52-177.41a32.35 32.35 0 0 0 0-29.19zM288 400a144 144 0 1 1 144-144 143.93 143.93 0 0 1-144 144zm0-240a95.31 95.31 0 0 0-25.31 3.79 47.85 47.85 0 0 1-66.9 66.9A95.78 95.78 0 1 0 288 160z',\n yOffset: 0,\n xOffset: 0,\n};\n\nexport const EyeIcon = createIcon(EyeIconConfig);\n\nexport default EyeIcon;","import * as React from 'react';\nimport { getBreakpoint, getVerticalBreakpoint } from '../../helpers/util';\nexport const pageContextDefaults = {\n isManagedSidebar: false,\n isSidebarOpen: false,\n onSidebarToggle: () => null,\n width: null,\n height: null,\n getBreakpoint,\n getVerticalBreakpoint\n};\nexport const PageContext = React.createContext(pageContextDefaults);\nexport const PageContextProvider = PageContext.Provider;\nexport const PageContextConsumer = PageContext.Consumer;\n//# sourceMappingURL=PageContext.js.map","import './nav.css';\nexport default {\n \"dirRtl\": \"pf-v5-m-dir-rtl\",\n \"divider\": \"pf-v5-c-divider\",\n \"menu\": \"pf-v5-c-menu\",\n \"menuContent\": \"pf-v5-c-menu__content\",\n \"menuItem\": \"pf-v5-c-menu__item\",\n \"menuItemToggleIcon\": \"pf-v5-c-menu__item-toggle-icon\",\n \"menuListItem\": \"pf-v5-c-menu__list-item\",\n \"modifiers\": {\n \"flyout\": \"pf-m-flyout\",\n \"top\": \"pf-m-top\",\n \"left\": \"pf-m-left\",\n \"current\": \"pf-m-current\",\n \"drillUp\": \"pf-m-drill-up\",\n \"horizontal\": \"pf-m-horizontal\",\n \"tertiary\": \"pf-m-tertiary\",\n \"horizontalSubnav\": \"pf-m-horizontal-subnav\",\n \"light\": \"pf-m-light\",\n \"scrollable\": \"pf-m-scrollable\",\n \"overflowHidden\": \"pf-m-overflow-hidden\",\n \"expandable\": \"pf-m-expandable\",\n \"expanded\": \"pf-m-expanded\",\n \"drilldown\": \"pf-m-drilldown\",\n \"hover\": \"pf-m-hover\",\n \"start\": \"pf-m-start\"\n },\n \"nav\": \"pf-v5-c-nav\",\n \"navItem\": \"pf-v5-c-nav__item\",\n \"navLink\": \"pf-v5-c-nav__link\",\n \"navList\": \"pf-v5-c-nav__list\",\n \"navScrollButton\": \"pf-v5-c-nav__scroll-button\",\n \"navSection\": \"pf-v5-c-nav__section\",\n \"navSectionTitle\": \"pf-v5-c-nav__section-title\",\n \"navSubnav\": \"pf-v5-c-nav__subnav\",\n \"navToggle\": \"pf-v5-c-nav__toggle\",\n \"navToggleIcon\": \"pf-v5-c-nav__toggle-icon\",\n \"themeDark\": \"pf-v5-theme-dark\"\n};","import { __rest } from \"tslib\";\nimport * as React from 'react';\nimport styles from '@patternfly/react-styles/css/components/Nav/nav.mjs';\nimport { css } from '@patternfly/react-styles';\nimport { getOUIAProps, getDefaultOUIAId } from '../../helpers';\nexport const navContextDefaults = {};\nexport const NavContext = React.createContext(navContextDefaults);\nclass Nav extends React.Component {\n constructor() {\n super(...arguments);\n this.state = {\n isScrollable: false,\n ouiaStateId: getDefaultOUIAId(Nav.displayName, this.props.variant),\n flyoutRef: null\n };\n this.navRef = React.createRef();\n }\n // Callback from NavItem\n onSelect(event, groupId, itemId, to, preventDefault, onClick) {\n if (preventDefault) {\n event.preventDefault();\n }\n this.props.onSelect(event, { groupId, itemId, to });\n if (onClick) {\n onClick(event, itemId, groupId, to);\n }\n }\n // Callback from NavExpandable\n onToggle(event, groupId, toggleValue) {\n this.props.onToggle(event, {\n groupId,\n isExpanded: toggleValue\n });\n }\n render() {\n const _a = this.props, { 'aria-label': ariaLabel, children, className, \n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n onSelect, \n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n onToggle, theme, ouiaId, ouiaSafe, variant } = _a, props = __rest(_a, ['aria-label', \"children\", \"className\", \"onSelect\", \"onToggle\", \"theme\", \"ouiaId\", \"ouiaSafe\", \"variant\"]);\n const isHorizontal = ['horizontal', 'tertiary'].includes(variant);\n return (React.createElement(NavContext.Provider, { value: {\n onSelect: (event, groupId, itemId, to, preventDefault, onClick) => this.onSelect(event, groupId, itemId, to, preventDefault, onClick),\n onToggle: (event, groupId, expanded) => this.onToggle(event, groupId, expanded),\n updateIsScrollable: (isScrollable) => this.setState({ isScrollable }),\n isHorizontal: ['horizontal', 'tertiary', 'horizontal-subnav'].includes(variant),\n flyoutRef: this.state.flyoutRef,\n setFlyoutRef: (flyoutRef) => this.setState({ flyoutRef }),\n navRef: this.navRef\n } },\n React.createElement(\"nav\", Object.assign({ className: css(styles.nav, theme === 'light' && styles.modifiers.light, isHorizontal && styles.modifiers.horizontal, variant === 'tertiary' && styles.modifiers.tertiary, variant === 'horizontal-subnav' && styles.modifiers.horizontalSubnav, this.state.isScrollable && styles.modifiers.scrollable, className), \"aria-label\": ariaLabel || (['tertiary', 'horizontal-subnav'].includes(variant) ? 'Local' : 'Global'), ref: this.navRef }, getOUIAProps(Nav.displayName, ouiaId !== undefined ? ouiaId : this.state.ouiaStateId, ouiaSafe), props), children)));\n }\n}\nNav.displayName = 'Nav';\nNav.defaultProps = {\n onSelect: () => undefined,\n onToggle: () => undefined,\n theme: 'dark',\n ouiaSafe: true\n};\nexport { Nav };\n//# sourceMappingURL=Nav.js.map","import './page.css';\nexport default {\n \"avatar\": \"pf-v5-c-avatar\",\n \"brand\": \"pf-v5-c-brand\",\n \"button\": \"pf-v5-c-button\",\n \"contextSelector\": \"pf-v5-c-context-selector\",\n \"dirRtl\": \"pf-v5-m-dir-rtl\",\n \"drawer\": \"pf-v5-c-drawer\",\n \"masthead\": \"pf-v5-c-masthead\",\n \"modifiers\": {\n \"light\": \"pf-m-light\",\n \"menu\": \"pf-m-menu\",\n \"hidden\": \"pf-m-hidden\",\n \"hiddenOnSm\": \"pf-m-hidden-on-sm\",\n \"visibleOnSm\": \"pf-m-visible-on-sm\",\n \"hiddenOnMd\": \"pf-m-hidden-on-md\",\n \"visibleOnMd\": \"pf-m-visible-on-md\",\n \"hiddenOnLg\": \"pf-m-hidden-on-lg\",\n \"visibleOnLg\": \"pf-m-visible-on-lg\",\n \"hiddenOnXl\": \"pf-m-hidden-on-xl\",\n \"visibleOnXl\": \"pf-m-visible-on-xl\",\n \"hiddenOn_2xl\": \"pf-m-hidden-on-2xl\",\n \"visibleOn_2xl\": \"pf-m-visible-on-2xl\",\n \"read\": \"pf-m-read\",\n \"selected\": \"pf-m-selected\",\n \"unread\": \"pf-m-unread\",\n \"attention\": \"pf-m-attention\",\n \"expanded\": \"pf-m-expanded\",\n \"collapsed\": \"pf-m-collapsed\",\n \"pageInsets\": \"pf-m-page-insets\",\n \"insetNone\": \"pf-m-inset-none\",\n \"fill\": \"pf-m-fill\",\n \"noFill\": \"pf-m-no-fill\",\n \"limitWidth\": \"pf-m-limit-width\",\n \"alignCenter\": \"pf-m-align-center\",\n \"overflowScroll\": \"pf-m-overflow-scroll\",\n \"shadowBottom\": \"pf-m-shadow-bottom\",\n \"shadowTop\": \"pf-m-shadow-top\",\n \"stickyTop\": \"pf-m-sticky-top\",\n \"stickyBottom\": \"pf-m-sticky-bottom\",\n \"stickyTopOnSmHeight\": \"pf-m-sticky-top-on-sm-height\",\n \"stickyBottomOnSmHeight\": \"pf-m-sticky-bottom-on-sm-height\",\n \"stickyTopOnMdHeight\": \"pf-m-sticky-top-on-md-height\",\n \"stickyBottomOnMdHeight\": \"pf-m-sticky-bottom-on-md-height\",\n \"stickyTopOnLgHeight\": \"pf-m-sticky-top-on-lg-height\",\n \"stickyBottomOnLgHeight\": \"pf-m-sticky-bottom-on-lg-height\",\n \"stickyTopOnXlHeight\": \"pf-m-sticky-top-on-xl-height\",\n \"stickyBottomOnXlHeight\": \"pf-m-sticky-bottom-on-xl-height\",\n \"stickyTopOn_2xlHeight\": \"pf-m-sticky-top-on-2xl-height\",\n \"stickyBottomOn_2xlHeight\": \"pf-m-sticky-bottom-on-2xl-height\",\n \"light_100\": \"pf-m-light-100\",\n \"dark_100\": \"pf-m-dark-100\",\n \"dark_200\": \"pf-m-dark-200\",\n \"padding\": \"pf-m-padding\",\n \"noPadding\": \"pf-m-no-padding\",\n \"paddingOnSm\": \"pf-m-padding-on-sm\",\n \"noPaddingOnSm\": \"pf-m-no-padding-on-sm\",\n \"paddingOnMd\": \"pf-m-padding-on-md\",\n \"noPaddingOnMd\": \"pf-m-no-padding-on-md\",\n \"paddingOnLg\": \"pf-m-padding-on-lg\",\n \"noPaddingOnLg\": \"pf-m-no-padding-on-lg\",\n \"paddingOnXl\": \"pf-m-padding-on-xl\",\n \"noPaddingOnXl\": \"pf-m-no-padding-on-xl\",\n \"paddingOn_2xl\": \"pf-m-padding-on-2xl\",\n \"noPaddingOn_2xl\": \"pf-m-no-padding-on-2xl\",\n \"light_200\": \"pf-m-light-200\"\n },\n \"nav\": \"pf-v5-c-nav\",\n \"notificationBadge\": \"pf-v5-c-notification-badge\",\n \"page\": \"pf-v5-c-page\",\n \"pageDrawer\": \"pf-v5-c-page__drawer\",\n \"pageHeader\": \"pf-v5-c-page__header\",\n \"pageHeaderBrand\": \"pf-v5-c-page__header-brand\",\n \"pageHeaderBrandLink\": \"pf-v5-c-page__header-brand-link\",\n \"pageHeaderBrandToggle\": \"pf-v5-c-page__header-brand-toggle\",\n \"pageHeaderNav\": \"pf-v5-c-page__header-nav\",\n \"pageHeaderTools\": \"pf-v5-c-page__header-tools\",\n \"pageHeaderToolsGroup\": \"pf-v5-c-page__header-tools-group\",\n \"pageHeaderToolsItem\": \"pf-v5-c-page__header-tools-item\",\n \"pageMain\": \"pf-v5-c-page__main\",\n \"pageMainBody\": \"pf-v5-c-page__main-body\",\n \"pageMainBreadcrumb\": \"pf-v5-c-page__main-breadcrumb\",\n \"pageMainDrawer\": \"pf-v5-c-page__main-drawer\",\n \"pageMainGroup\": \"pf-v5-c-page__main-group\",\n \"pageMainNav\": \"pf-v5-c-page__main-nav\",\n \"pageMainSection\": \"pf-v5-c-page__main-section\",\n \"pageMainSubnav\": \"pf-v5-c-page__main-subnav\",\n \"pageMainTabs\": \"pf-v5-c-page__main-tabs\",\n \"pageMainWizard\": \"pf-v5-c-page__main-wizard\",\n \"pageSidebar\": \"pf-v5-c-page__sidebar\",\n \"pageSidebarBody\": \"pf-v5-c-page__sidebar-body\",\n \"themeDark\": \"pf-v5-theme-dark\"\n};","import { __rest } from \"tslib\";\nimport * as React from 'react';\nimport styles from '@patternfly/react-styles/css/components/Page/page.mjs';\nimport { css } from '@patternfly/react-styles';\nimport { PageContextConsumer } from './PageContext';\nexport const pageSidebarContextDefaults = {\n isSidebarOpen: true\n};\nexport const PageSidebarContext = React.createContext(pageSidebarContextDefaults);\nexport const PageSidebar = (_a) => {\n var { className = '', children, isSidebarOpen = true, theme = 'dark', id = 'page-sidebar' } = _a, props = __rest(_a, [\"className\", \"children\", \"isSidebarOpen\", \"theme\", \"id\"]);\n return (React.createElement(PageContextConsumer, null, ({ isManagedSidebar, isSidebarOpen: managedIsNavOpen }) => {\n const sidebarOpen = isManagedSidebar ? managedIsNavOpen : isSidebarOpen;\n return (React.createElement(\"div\", Object.assign({ id: id, className: css(styles.pageSidebar, theme === 'light' && styles.modifiers.light, sidebarOpen && styles.modifiers.expanded, !sidebarOpen && styles.modifiers.collapsed, className), \"aria-hidden\": !sidebarOpen }, props),\n React.createElement(PageSidebarContext.Provider, { value: { isSidebarOpen: sidebarOpen } }, children)));\n }));\n};\nPageSidebar.displayName = 'PageSidebar';\n//# sourceMappingURL=PageSidebar.js.map","import { __rest } from \"tslib\";\nimport * as React from 'react';\nimport styles from '@patternfly/react-styles/css/components/Nav/nav.mjs';\nimport { css } from '@patternfly/react-styles';\nimport AngleLeftIcon from '@patternfly/react-icons/dist/esm/icons/angle-left-icon';\nimport AngleRightIcon from '@patternfly/react-icons/dist/esm/icons/angle-right-icon';\nimport { getLanguageDirection, isElementInView } from '../../helpers/util';\nimport { NavContext } from './Nav';\nimport { PageSidebarContext } from '../Page/PageSidebar';\nimport { getResizeObserver } from '../../helpers/resizeObserver';\nclass NavList extends React.Component {\n constructor() {\n super(...arguments);\n this.direction = 'ltr';\n this.state = {\n scrollViewAtStart: false,\n scrollViewAtEnd: false\n };\n this.navList = React.createRef();\n this.observer = () => { };\n this.handleScrollButtons = () => {\n const container = this.navList.current;\n if (container) {\n // check if it elements are in view\n const scrollViewAtStart = isElementInView(container, container.firstChild, false);\n const scrollViewAtEnd = isElementInView(container, container.lastChild, false);\n this.setState({\n scrollViewAtStart,\n scrollViewAtEnd\n });\n this.context.updateIsScrollable(!scrollViewAtStart || !scrollViewAtEnd);\n }\n };\n this.scrollBack = () => {\n // find first Element that is fully in view on the left, then scroll to the element before it\n const container = this.navList.current;\n if (container) {\n const childrenArr = Array.from(container.children);\n let firstElementInView;\n let lastElementOutOfView;\n for (let i = 0; i < childrenArr.length && !firstElementInView; i++) {\n if (isElementInView(container, childrenArr[i], false)) {\n firstElementInView = childrenArr[i];\n lastElementOutOfView = childrenArr[i - 1];\n }\n }\n if (lastElementOutOfView) {\n if (this.direction === 'ltr') {\n // LTR scrolls left to go back\n container.scrollLeft -= lastElementOutOfView.scrollWidth;\n }\n else {\n // RTL scrolls right to go back\n container.scrollLeft += lastElementOutOfView.scrollWidth;\n }\n }\n this.handleScrollButtons();\n }\n };\n this.scrollForward = () => {\n // find last Element that is fully in view on the right, then scroll to the element after it\n const container = this.navList.current;\n if (container) {\n const childrenArr = Array.from(container.children);\n let lastElementInView;\n let firstElementOutOfView;\n for (let i = childrenArr.length - 1; i >= 0 && !lastElementInView; i--) {\n if (isElementInView(container, childrenArr[i], false)) {\n lastElementInView = childrenArr[i];\n firstElementOutOfView = childrenArr[i + 1];\n }\n }\n if (firstElementOutOfView) {\n if (this.direction === 'ltr') {\n // LTR scrolls right to go forward\n container.scrollLeft += firstElementOutOfView.scrollWidth;\n }\n else {\n // RTL scrolls left to go forward\n container.scrollLeft -= firstElementOutOfView.scrollWidth;\n }\n }\n this.handleScrollButtons();\n }\n };\n }\n componentDidMount() {\n this.observer = getResizeObserver(this.navList.current, this.handleScrollButtons, true);\n this.direction = getLanguageDirection(this.navList.current);\n this.handleScrollButtons();\n }\n componentWillUnmount() {\n this.observer();\n }\n componentDidUpdate() {\n this.direction = getLanguageDirection(this.navList.current);\n }\n render() {\n const _a = this.props, { children, className, ariaLeftScroll, ariaRightScroll, backScrollAriaLabel, forwardScrollAriaLabel } = _a, props = __rest(_a, [\"children\", \"className\", \"ariaLeftScroll\", \"ariaRightScroll\", \"backScrollAriaLabel\", \"forwardScrollAriaLabel\"]);\n const { scrollViewAtStart, scrollViewAtEnd } = this.state;\n return (React.createElement(NavContext.Consumer, null, ({ isHorizontal }) => (React.createElement(PageSidebarContext.Consumer, null, ({ isSidebarOpen }) => (React.createElement(React.Fragment, null,\n isHorizontal && (React.createElement(\"button\", { className: css(styles.navScrollButton), \"aria-label\": backScrollAriaLabel || ariaLeftScroll, onClick: this.scrollBack, disabled: scrollViewAtStart, tabIndex: isSidebarOpen ? null : -1 },\n React.createElement(AngleLeftIcon, null))),\n React.createElement(\"ul\", Object.assign({ ref: this.navList, className: css(styles.navList, className), onScroll: this.handleScrollButtons, role: \"list\" }, props), children),\n isHorizontal && (React.createElement(\"button\", { className: css(styles.navScrollButton), \"aria-label\": forwardScrollAriaLabel || ariaRightScroll, onClick: this.scrollForward, disabled: scrollViewAtEnd, tabIndex: isSidebarOpen ? null : -1 },\n React.createElement(AngleRightIcon, null)))))))));\n }\n}\nNavList.displayName = 'NavList';\nNavList.contextType = NavContext;\nNavList.defaultProps = {\n ariaLeftScroll: 'Scroll left',\n backScrollAriaLabel: 'Scroll back',\n ariaRightScroll: 'Scroll right',\n forwardScrollAriaLabel: 'Scroll foward'\n};\nexport { NavList };\n//# sourceMappingURL=NavList.js.map","import { __rest } from \"tslib\";\nimport * as React from 'react';\nimport styles from '@patternfly/react-styles/css/components/Nav/nav.mjs';\nimport { css } from '@patternfly/react-styles';\nimport { NavContext } from './Nav';\nimport { PageSidebarContext } from '../Page/PageSidebar';\nimport { useOUIAProps } from '../../helpers';\nimport { Popper } from '../../helpers/Popper/Popper';\nimport AngleRightIcon from '@patternfly/react-icons/dist/esm/icons/angle-right-icon';\nexport const NavItem = (_a) => {\n var { children, styleChildren = true, className, to, isActive = false, groupId = null, itemId = null, preventDefault = false, onClick, component = 'a', flyout, onShowFlyout, ouiaId, ouiaSafe, zIndex = 9999, hasNavLinkWrapper } = _a, props = __rest(_a, [\"children\", \"styleChildren\", \"className\", \"to\", \"isActive\", \"groupId\", \"itemId\", \"preventDefault\", \"onClick\", \"component\", \"flyout\", \"onShowFlyout\", \"ouiaId\", \"ouiaSafe\", \"zIndex\", \"hasNavLinkWrapper\"]);\n const { flyoutRef, setFlyoutRef, navRef } = React.useContext(NavContext);\n const { isSidebarOpen } = React.useContext(PageSidebarContext);\n const [flyoutTarget, setFlyoutTarget] = React.useState(null);\n const [isHovered, setIsHovered] = React.useState(false);\n const ref = React.useRef();\n const flyoutVisible = ref === flyoutRef;\n const popperRef = React.useRef();\n const hasFlyout = flyout !== undefined;\n const Component = hasFlyout ? 'button' : component;\n // A NavItem should not be both a link and a flyout\n if (to && hasFlyout) {\n // eslint-disable-next-line no-console\n console.error('NavItem cannot have both \"to\" and \"flyout\" props.');\n }\n const showFlyout = (show, override) => {\n if ((!flyoutVisible || override) && show) {\n setFlyoutRef(ref);\n }\n else if ((flyoutVisible || override) && !show) {\n setFlyoutRef(null);\n }\n onShowFlyout && show && onShowFlyout();\n };\n const onMouseOver = (event) => {\n const evtContainedInFlyout = event.target.closest(`.${styles.navItem}.pf-m-flyout`);\n if (hasFlyout && !flyoutVisible) {\n showFlyout(true);\n }\n else if (flyoutRef !== null && !evtContainedInFlyout) {\n setFlyoutRef(null);\n }\n };\n const onFlyoutClick = (event) => {\n const target = event.target;\n const closestItem = target.closest('.pf-m-flyout');\n if (!closestItem) {\n if (hasFlyout) {\n showFlyout(false, true);\n }\n else if (flyoutRef !== null) {\n setFlyoutRef(null);\n }\n }\n };\n const handleFlyout = (event) => {\n var _a, _b;\n const key = event.key;\n const target = event.target;\n if ((key === ' ' || key === 'Enter' || key === 'ArrowRight') && hasFlyout && ((_a = ref === null || ref === void 0 ? void 0 : ref.current) === null || _a === void 0 ? void 0 : _a.contains(target))) {\n event.stopPropagation();\n event.preventDefault();\n if (!flyoutVisible) {\n showFlyout(true);\n setFlyoutTarget(target);\n }\n }\n // We only want the NavItem to handle closing a flyout menu if only the first level flyout is open.\n // Otherwise, MenuItem should handle closing its flyouts\n if ((key === 'Escape' || key === 'ArrowLeft') &&\n ((_b = popperRef === null || popperRef === void 0 ? void 0 : popperRef.current) === null || _b === void 0 ? void 0 : _b.querySelectorAll(`.${styles.menu}`).length) === 1) {\n if (flyoutVisible) {\n event.stopPropagation();\n event.preventDefault();\n showFlyout(false);\n }\n }\n };\n React.useEffect(() => {\n if (hasFlyout) {\n window.addEventListener('click', onFlyoutClick);\n }\n return () => {\n if (hasFlyout) {\n window.removeEventListener('click', onFlyoutClick);\n }\n };\n }, []);\n React.useEffect(() => {\n if (flyoutTarget) {\n if (flyoutVisible) {\n const flyoutItems = Array.from(popperRef.current.getElementsByTagName('UL')[0].children).filter((el) => !(el.classList.contains('pf-m-disabled') || el.classList.contains(styles.divider)));\n flyoutItems[0].firstChild.focus();\n }\n else {\n flyoutTarget.focus();\n }\n }\n }, [flyoutVisible, flyoutTarget]);\n const flyoutButton = (React.createElement(\"span\", { className: css(styles.navToggle) },\n React.createElement(\"span\", { className: css(styles.navToggleIcon) },\n React.createElement(AngleRightIcon, { \"aria-hidden\": true }))));\n const ariaFlyoutProps = {\n 'aria-haspopup': 'menu',\n 'aria-expanded': flyoutVisible\n };\n const tabIndex = isSidebarOpen ? null : -1;\n const renderDefaultLink = (context) => {\n const preventLinkDefault = preventDefault || !to;\n return (React.createElement(Component, Object.assign({ href: to, onClick: (e) => context.onSelect(e, groupId, itemId, to, preventLinkDefault, onClick), className: css(styles.navLink, isActive && styles.modifiers.current, isHovered && styles.modifiers.hover, className), \"aria-current\": isActive ? 'page' : null, tabIndex: tabIndex }, (hasFlyout && Object.assign({}, ariaFlyoutProps)), props),\n hasNavLinkWrapper ? React.createElement(\"span\", { className: css(`${styles.nav}__link-text`) }, children) : children,\n flyout && flyoutButton));\n };\n const renderClonedChild = (context, child) => React.cloneElement(child, Object.assign(Object.assign({ onClick: (e) => context.onSelect(e, groupId, itemId, to, preventDefault, onClick), 'aria-current': isActive ? 'page' : null }, (styleChildren && {\n className: css(styles.navLink, isActive && styles.modifiers.current, child.props && child.props.className)\n })), { tabIndex: child.props.tabIndex || tabIndex, children: hasFlyout ? (React.createElement(React.Fragment, null,\n child.props.children,\n flyoutButton)) : (child.props.children) }));\n const ouiaProps = useOUIAProps(NavItem.displayName, ouiaId, ouiaSafe);\n const handleMouseEnter = () => {\n setIsHovered(true);\n };\n const handleMouseLeave = () => {\n setIsHovered(false);\n };\n const flyoutPopper = (React.createElement(Popper, { triggerRef: ref, popper: React.createElement(\"div\", { ref: popperRef, onMouseEnter: handleMouseEnter, onMouseLeave: handleMouseLeave }, flyout), popperRef: popperRef, placement: \"right-start\", isVisible: flyoutVisible, onDocumentKeyDown: handleFlyout, zIndex: zIndex, appendTo: navRef === null || navRef === void 0 ? void 0 : navRef.current }));\n const navItem = (React.createElement(React.Fragment, null,\n React.createElement(\"li\", Object.assign({ onMouseOver: onMouseOver, className: css(styles.navItem, hasFlyout && styles.modifiers.flyout, className), ref: ref }, ouiaProps),\n React.createElement(NavContext.Consumer, null, (context) => React.isValidElement(children)\n ? renderClonedChild(context, children)\n : renderDefaultLink(context))),\n flyout && flyoutPopper));\n return navItem;\n};\nNavItem.displayName = 'NavItem';\n//# sourceMappingURL=NavItem.js.map","import { __rest } from \"tslib\";\nimport * as React from 'react';\nimport styles from '@patternfly/react-styles/css/components/Nav/nav.mjs';\nimport { css } from '@patternfly/react-styles';\nimport AngleRightIcon from '@patternfly/react-icons/dist/esm/icons/angle-right-icon';\nimport { getUniqueId } from '../../helpers/util';\nimport { NavContext } from './Nav';\nimport { PageSidebarContext } from '../Page/PageSidebar';\nimport { getOUIAProps, getDefaultOUIAId } from '../../helpers';\nclass NavExpandable extends React.Component {\n constructor() {\n super(...arguments);\n this.id = this.props.id || getUniqueId();\n this.state = {\n expandedState: this.props.isExpanded,\n ouiaStateId: getDefaultOUIAId(NavExpandable.displayName)\n };\n this.onExpand = (event, onToggle) => {\n const { expandedState } = this.state;\n if (this.props.onExpand) {\n this.props.onExpand(event, !expandedState);\n }\n else {\n this.setState((prevState) => ({ expandedState: !prevState.expandedState }));\n const { groupId } = this.props;\n onToggle(event, groupId, !expandedState);\n }\n };\n }\n componentDidMount() {\n this.setState({ expandedState: this.props.isExpanded });\n }\n componentDidUpdate(prevProps) {\n if (this.props.isExpanded !== prevProps.isExpanded) {\n this.setState({ expandedState: this.props.isExpanded });\n }\n }\n render() {\n const _a = this.props, { title, srText, children, className, isActive, ouiaId, \n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n groupId, \n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n id, \n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n isExpanded, buttonProps, \n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n onExpand } = _a, props = __rest(_a, [\"title\", \"srText\", \"children\", \"className\", \"isActive\", \"ouiaId\", \"groupId\", \"id\", \"isExpanded\", \"buttonProps\", \"onExpand\"]);\n const { expandedState, ouiaStateId } = this.state;\n return (React.createElement(NavContext.Consumer, null, (context) => (React.createElement(\"li\", Object.assign({ className: css(styles.navItem, styles.modifiers.expandable, expandedState && styles.modifiers.expanded, isActive && styles.modifiers.current, className) }, getOUIAProps(NavExpandable.displayName, ouiaId !== undefined ? ouiaId : ouiaStateId), props),\n React.createElement(PageSidebarContext.Consumer, null, ({ isSidebarOpen }) => (React.createElement(\"button\", Object.assign({ className: css(styles.navLink), id: srText ? null : this.id, onClick: (event) => this.onExpand(event, context.onToggle), \"aria-expanded\": expandedState, tabIndex: isSidebarOpen ? null : -1 }, buttonProps),\n typeof title !== 'string' ? React.createElement(\"span\", { className: css(`${styles.nav}__link-text`) }, title) : title,\n React.createElement(\"span\", { className: css(styles.navToggle) },\n React.createElement(\"span\", { className: css(styles.navToggleIcon) },\n React.createElement(AngleRightIcon, { \"aria-hidden\": \"true\" })))))),\n React.createElement(\"section\", { className: css(styles.navSubnav), \"aria-labelledby\": this.id, hidden: expandedState ? null : true },\n srText && (React.createElement(\"h2\", { className: \"pf-v5-screen-reader\", id: this.id }, srText)),\n React.createElement(\"ul\", { className: css(styles.navList), role: \"list\" }, children))))));\n }\n}\nNavExpandable.displayName = 'NavExpandable';\nNavExpandable.defaultProps = {\n srText: '',\n isExpanded: false,\n children: '',\n className: '',\n groupId: null,\n isActive: false,\n id: ''\n};\nexport { NavExpandable };\n//# sourceMappingURL=NavExpandable.js.map","import { __rest } from \"tslib\";\nimport * as React from 'react';\nimport styles from '@patternfly/react-styles/css/components/Content/content.mjs';\nimport { css } from '@patternfly/react-styles';\nexport const TextContent = (_a) => {\n var { children, className = '', isVisited = false } = _a, props = __rest(_a, [\"children\", \"className\", \"isVisited\"]);\n return (React.createElement(\"div\", Object.assign({}, props, { className: css(styles.content, isVisited && styles.modifiers.visited, className) }), children));\n};\nTextContent.displayName = 'TextContent';\n//# sourceMappingURL=TextContent.js.map","import { __rest } from \"tslib\";\nimport * as React from 'react';\nimport { css } from '@patternfly/react-styles';\nimport styles from '@patternfly/react-styles/css/components/Content/content.mjs';\nimport { useOUIAProps } from '../../helpers';\nexport var TextVariants;\n(function (TextVariants) {\n TextVariants[\"h1\"] = \"h1\";\n TextVariants[\"h2\"] = \"h2\";\n TextVariants[\"h3\"] = \"h3\";\n TextVariants[\"h4\"] = \"h4\";\n TextVariants[\"h5\"] = \"h5\";\n TextVariants[\"h6\"] = \"h6\";\n TextVariants[\"p\"] = \"p\";\n TextVariants[\"a\"] = \"a\";\n TextVariants[\"small\"] = \"small\";\n TextVariants[\"blockquote\"] = \"blockquote\";\n TextVariants[\"pre\"] = \"pre\";\n})(TextVariants || (TextVariants = {}));\nexport const Text = (_a) => {\n var { children = null, className = '', component = TextVariants.p, isVisitedLink = false, ouiaId, ouiaSafe = true } = _a, props = __rest(_a, [\"children\", \"className\", \"component\", \"isVisitedLink\", \"ouiaId\", \"ouiaSafe\"]);\n const Component = component;\n const ouiaProps = useOUIAProps(Text.displayName, ouiaId, ouiaSafe);\n return (React.createElement(Component, Object.assign({}, ouiaProps, props, { \"data-pf-content\": true, className: css(isVisitedLink && component === TextVariants.a && styles.modifiers.visited, className) }), children));\n};\nText.displayName = 'Text';\n//# sourceMappingURL=Text.js.map","import { __rest } from \"tslib\";\nimport * as React from 'react';\nimport { css } from '@patternfly/react-styles';\nimport styles from '@patternfly/react-styles/css/components/Page/page.mjs';\nimport { formatBreakpointMods } from '../../helpers/util';\nimport { PageContext } from './PageContext';\nexport const PageGroup = (_a) => {\n var { className = '', children, stickyOnBreakpoint, hasShadowTop = false, hasShadowBottom = false, hasOverflowScroll = false, 'aria-label': ariaLabel } = _a, props = __rest(_a, [\"className\", \"children\", \"stickyOnBreakpoint\", \"hasShadowTop\", \"hasShadowBottom\", \"hasOverflowScroll\", 'aria-label']);\n const { height, getVerticalBreakpoint } = React.useContext(PageContext);\n React.useEffect(() => {\n if (hasOverflowScroll && !ariaLabel) {\n /* eslint-disable no-console */\n console.warn('PageGroup: An accessible aria-label is required when hasOverflowScroll is set to true.');\n }\n }, [hasOverflowScroll, ariaLabel]);\n return (React.createElement(\"div\", Object.assign({}, props, { className: css(styles.pageMainGroup, formatBreakpointMods(stickyOnBreakpoint, styles, 'sticky-', getVerticalBreakpoint(height), true), hasShadowTop && styles.modifiers.shadowTop, hasShadowBottom && styles.modifiers.shadowBottom, hasOverflowScroll && styles.modifiers.overflowScroll, className) }, (hasOverflowScroll && { tabIndex: 0, role: 'region', 'aria-label': ariaLabel })), children));\n};\nPageGroup.displayName = 'PageGroup';\n//# sourceMappingURL=PageGroup.js.map","import { __rest } from \"tslib\";\nimport * as React from 'react';\nimport styles from '@patternfly/react-styles/css/components/Page/page.mjs';\nimport { css } from '@patternfly/react-styles';\nimport globalBreakpointXl from '@patternfly/react-tokens/dist/esm/global_breakpoint_xl';\nimport { debounce, canUseDOM } from '../../helpers/util';\nimport { Drawer, DrawerContent, DrawerContentBody, DrawerPanelContent } from '../Drawer';\nimport { PageGroup } from './PageGroup';\nimport { getResizeObserver } from '../../helpers/resizeObserver';\nimport { formatBreakpointMods, getBreakpoint, getVerticalBreakpoint } from '../../helpers/util';\nimport { PageContextProvider } from './PageContext';\nexport var PageLayouts;\n(function (PageLayouts) {\n PageLayouts[\"vertical\"] = \"vertical\";\n PageLayouts[\"horizontal\"] = \"horizontal\";\n})(PageLayouts || (PageLayouts = {}));\nclass Page extends React.Component {\n constructor(props) {\n super(props);\n this.mainRef = React.createRef();\n this.pageRef = React.createRef();\n this.observer = () => { };\n this.getWindowWidth = () => {\n if (canUseDOM) {\n return this.pageRef.current ? this.pageRef.current.clientWidth : window.innerWidth;\n }\n else {\n return 1200;\n }\n };\n this.isMobile = () => \n // eslint-disable-next-line radix\n this.getWindowWidth() < Number.parseInt(globalBreakpointXl.value, 10);\n this.resize = (_event) => {\n var _a;\n const { onPageResize } = this.props;\n const mobileView = this.isMobile();\n if (onPageResize) {\n onPageResize(_event, { mobileView, windowSize: this.getWindowWidth() });\n }\n if (mobileView !== this.state.mobileView) {\n this.setState({ mobileView });\n }\n if ((_a = this.pageRef) === null || _a === void 0 ? void 0 : _a.current) {\n const currentWidth = this.pageRef.current.clientWidth;\n const currentHeight = this.pageRef.current.clientHeight;\n if (this.state.width !== currentWidth) {\n this.setState({ width: currentWidth });\n }\n if (this.state.height !== currentHeight) {\n this.setState({ height: currentHeight });\n }\n }\n };\n this.handleResize = debounce(this.resize, 250);\n this.handleMainClick = () => {\n if (this.isMobile() && this.state.mobileIsSidebarOpen && this.mainRef.current) {\n this.setState({ mobileIsSidebarOpen: false });\n }\n };\n this.onSidebarToggleMobile = () => {\n this.setState((prevState) => ({\n mobileIsSidebarOpen: !prevState.mobileIsSidebarOpen\n }));\n };\n this.onSidebarToggleDesktop = () => {\n this.setState((prevState) => ({\n desktopIsSidebarOpen: !prevState.desktopIsSidebarOpen\n }));\n };\n const { isManagedSidebar, defaultManagedSidebarIsOpen } = props;\n const managedSidebarOpen = !isManagedSidebar ? true : defaultManagedSidebarIsOpen;\n this.state = {\n desktopIsSidebarOpen: managedSidebarOpen,\n mobileIsSidebarOpen: false,\n mobileView: false,\n width: null,\n height: null\n };\n }\n componentDidMount() {\n const { isManagedSidebar, onPageResize } = this.props;\n if (isManagedSidebar || onPageResize) {\n this.observer = getResizeObserver(this.pageRef.current, this.handleResize);\n const currentRef = this.mainRef.current;\n if (currentRef) {\n currentRef.addEventListener('mousedown', this.handleMainClick);\n currentRef.addEventListener('touchstart', this.handleMainClick);\n }\n // Initial check if should be shown\n this.resize();\n }\n }\n componentWillUnmount() {\n const { isManagedSidebar, onPageResize } = this.props;\n if (isManagedSidebar || onPageResize) {\n this.observer();\n const currentRef = this.mainRef.current;\n if (currentRef) {\n currentRef.removeEventListener('mousedown', this.handleMainClick);\n currentRef.removeEventListener('touchstart', this.handleMainClick);\n }\n }\n }\n render() {\n const _a = this.props, { breadcrumb, isBreadcrumbWidthLimited, className, children, header, sidebar, notificationDrawer, isNotificationDrawerExpanded, onNotificationDrawerExpand, isTertiaryNavWidthLimited, skipToContent, role, mainContainerId, isManagedSidebar, \n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n defaultManagedSidebarIsOpen, \n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n onPageResize, getBreakpoint, getVerticalBreakpoint, mainAriaLabel, mainTabIndex, mainComponent, tertiaryNav, isTertiaryNavGrouped, isBreadcrumbGrouped, additionalGroupedContent, groupProps, breadcrumbProps } = _a, rest = __rest(_a, [\"breadcrumb\", \"isBreadcrumbWidthLimited\", \"className\", \"children\", \"header\", \"sidebar\", \"notificationDrawer\", \"isNotificationDrawerExpanded\", \"onNotificationDrawerExpand\", \"isTertiaryNavWidthLimited\", \"skipToContent\", \"role\", \"mainContainerId\", \"isManagedSidebar\", \"defaultManagedSidebarIsOpen\", \"onPageResize\", \"getBreakpoint\", \"getVerticalBreakpoint\", \"mainAriaLabel\", \"mainTabIndex\", \"mainComponent\", \"tertiaryNav\", \"isTertiaryNavGrouped\", \"isBreadcrumbGrouped\", \"additionalGroupedContent\", \"groupProps\", \"breadcrumbProps\"]);\n const { mobileView, mobileIsSidebarOpen, desktopIsSidebarOpen, width, height } = this.state;\n const context = {\n isManagedSidebar,\n onSidebarToggle: mobileView ? this.onSidebarToggleMobile : this.onSidebarToggleDesktop,\n isSidebarOpen: mobileView ? mobileIsSidebarOpen : desktopIsSidebarOpen,\n width,\n height,\n getBreakpoint,\n getVerticalBreakpoint\n };\n let nav = null;\n if (tertiaryNav && isTertiaryNavWidthLimited) {\n nav = (React.createElement(\"div\", { className: css(styles.pageMainNav, styles.modifiers.limitWidth) },\n React.createElement(\"div\", { className: css(styles.pageMainBody) }, tertiaryNav)));\n }\n else if (tertiaryNav) {\n nav = React.createElement(\"div\", { className: css(styles.pageMainNav) }, tertiaryNav);\n }\n const crumb = breadcrumb ? (React.createElement(\"section\", { className: css(styles.pageMainBreadcrumb, isBreadcrumbWidthLimited && styles.modifiers.limitWidth, formatBreakpointMods(breadcrumbProps === null || breadcrumbProps === void 0 ? void 0 : breadcrumbProps.stickyOnBreakpoint, styles, 'sticky-', getVerticalBreakpoint(height), true)) }, isBreadcrumbWidthLimited ? React.createElement(\"div\", { className: css(styles.pageMainBody) }, breadcrumb) : breadcrumb)) : null;\n const isGrouped = isTertiaryNavGrouped || isBreadcrumbGrouped || additionalGroupedContent;\n const group = isGrouped ? (React.createElement(PageGroup, Object.assign({}, groupProps),\n isTertiaryNavGrouped && nav,\n isBreadcrumbGrouped && crumb,\n additionalGroupedContent)) : null;\n const Component = mainComponent;\n const main = (React.createElement(Component, { ref: this.mainRef, role: role, id: mainContainerId, className: css(styles.pageMain), tabIndex: mainTabIndex, \"aria-label\": mainAriaLabel },\n group,\n !isTertiaryNavGrouped && nav,\n !isBreadcrumbGrouped && crumb,\n children));\n const panelContent = React.createElement(DrawerPanelContent, null, notificationDrawer);\n return (React.createElement(PageContextProvider, { value: context },\n React.createElement(\"div\", Object.assign({ ref: this.pageRef }, rest, { className: css(styles.page, width !== null && height !== null && 'pf-m-resize-observer', width !== null && `pf-m-breakpoint-${getBreakpoint(width)}`, height !== null && `pf-m-height-breakpoint-${getVerticalBreakpoint(height)}`, className) }),\n skipToContent,\n header,\n sidebar,\n notificationDrawer && (React.createElement(\"div\", { className: css(styles.pageDrawer) },\n React.createElement(Drawer, { isExpanded: isNotificationDrawerExpanded, onExpand: (event) => onNotificationDrawerExpand(event) },\n React.createElement(DrawerContent, { panelContent: panelContent },\n React.createElement(DrawerContentBody, null, main))))),\n !notificationDrawer && main)));\n }\n}\nPage.displayName = 'Page';\nPage.defaultProps = {\n isManagedSidebar: false,\n isBreadcrumbWidthLimited: false,\n defaultManagedSidebarIsOpen: true,\n mainTabIndex: -1,\n isNotificationDrawerExpanded: false,\n onNotificationDrawerExpand: () => null,\n mainComponent: 'main',\n getBreakpoint,\n getVerticalBreakpoint\n};\nexport { Page };\n//# sourceMappingURL=Page.js.map","import { __rest } from \"tslib\";\nimport * as React from 'react';\nimport styles from '@patternfly/react-styles/css/components/Page/page.mjs';\nimport { css } from '@patternfly/react-styles';\nexport const PageSidebarBody = (_a) => {\n var { children, className, usePageInsets, isFilled } = _a, props = __rest(_a, [\"children\", \"className\", \"usePageInsets\", \"isFilled\"]);\n return (React.createElement(\"div\", Object.assign({ className: css(styles.pageSidebarBody, usePageInsets && styles.modifiers.pageInsets, isFilled === false && styles.modifiers.noFill, isFilled === true && styles.modifiers.fill, className) }, props), children));\n};\nPageSidebarBody.displayName = 'PageSidebarBody';\n//# sourceMappingURL=PageSidebarBody.js.map","import { __rest } from \"tslib\";\nimport * as React from 'react';\nimport styles from '@patternfly/react-styles/css/components/Page/page.mjs';\nimport { css } from '@patternfly/react-styles';\nimport { formatBreakpointMods } from '../../helpers/util';\nimport { PageContext } from './PageContext';\nexport var PageSectionVariants;\n(function (PageSectionVariants) {\n PageSectionVariants[\"default\"] = \"default\";\n PageSectionVariants[\"light\"] = \"light\";\n PageSectionVariants[\"dark\"] = \"dark\";\n PageSectionVariants[\"darker\"] = \"darker\";\n})(PageSectionVariants || (PageSectionVariants = {}));\nexport var PageSectionTypes;\n(function (PageSectionTypes) {\n PageSectionTypes[\"default\"] = \"default\";\n PageSectionTypes[\"nav\"] = \"nav\";\n PageSectionTypes[\"subNav\"] = \"subnav\";\n PageSectionTypes[\"breadcrumb\"] = \"breadcrumb\";\n PageSectionTypes[\"tabs\"] = \"tabs\";\n PageSectionTypes[\"wizard\"] = \"wizard\";\n})(PageSectionTypes || (PageSectionTypes = {}));\nconst variantType = {\n [PageSectionTypes.default]: styles.pageMainSection,\n [PageSectionTypes.nav]: styles.pageMainNav,\n [PageSectionTypes.subNav]: styles.pageMainSubnav,\n [PageSectionTypes.breadcrumb]: styles.pageMainBreadcrumb,\n [PageSectionTypes.tabs]: styles.pageMainTabs,\n [PageSectionTypes.wizard]: styles.pageMainWizard\n};\nconst variantStyle = {\n [PageSectionVariants.default]: '',\n [PageSectionVariants.light]: styles.modifiers.light,\n [PageSectionVariants.dark]: styles.modifiers.dark_200,\n [PageSectionVariants.darker]: styles.modifiers.dark_100\n};\nexport const PageSection = (_a) => {\n var { className = '', children, variant = 'default', type = 'default', padding, isFilled, isWidthLimited = false, isCenterAligned = false, stickyOnBreakpoint, hasShadowTop = false, hasShadowBottom = false, hasOverflowScroll = false, 'aria-label': ariaLabel, component = 'section' } = _a, props = __rest(_a, [\"className\", \"children\", \"variant\", \"type\", \"padding\", \"isFilled\", \"isWidthLimited\", \"isCenterAligned\", \"stickyOnBreakpoint\", \"hasShadowTop\", \"hasShadowBottom\", \"hasOverflowScroll\", 'aria-label', \"component\"]);\n const { height, getVerticalBreakpoint } = React.useContext(PageContext);\n React.useEffect(() => {\n if (hasOverflowScroll && !ariaLabel) {\n /* eslint-disable no-console */\n console.warn('PageSection: An accessible aria-label is required when hasOverflowScroll is set to true.');\n }\n }, [hasOverflowScroll, ariaLabel]);\n const Component = component;\n return (React.createElement(Component, Object.assign({}, props, { className: css(variantType[type], formatBreakpointMods(padding, styles), formatBreakpointMods(stickyOnBreakpoint, styles, 'sticky-', getVerticalBreakpoint(height), true), variantStyle[variant], isFilled === false && styles.modifiers.noFill, isFilled === true && styles.modifiers.fill, isWidthLimited && styles.modifiers.limitWidth, isWidthLimited && isCenterAligned && type !== PageSectionTypes.subNav && styles.modifiers.alignCenter, hasShadowTop && styles.modifiers.shadowTop, hasShadowBottom && styles.modifiers.shadowBottom, hasOverflowScroll && styles.modifiers.overflowScroll, className) }, (hasOverflowScroll && { tabIndex: 0 }), { \"aria-label\": ariaLabel }),\n isWidthLimited && React.createElement(\"div\", { className: css(styles.pageMainBody) }, children),\n !isWidthLimited && children));\n};\nPageSection.displayName = 'PageSection';\n//# sourceMappingURL=PageSection.js.map","import './grid.css';\nexport default {\n \"grid\": \"pf-v5-l-grid\",\n \"gridItem\": \"pf-v5-l-grid__item\",\n \"modifiers\": {\n \"all_1Col\": \"pf-m-all-1-col\",\n \"all_2Col\": \"pf-m-all-2-col\",\n \"all_3Col\": \"pf-m-all-3-col\",\n \"all_4Col\": \"pf-m-all-4-col\",\n \"all_5Col\": \"pf-m-all-5-col\",\n \"all_6Col\": \"pf-m-all-6-col\",\n \"all_7Col\": \"pf-m-all-7-col\",\n \"all_8Col\": \"pf-m-all-8-col\",\n \"all_9Col\": \"pf-m-all-9-col\",\n \"all_10Col\": \"pf-m-all-10-col\",\n \"all_11Col\": \"pf-m-all-11-col\",\n \"all_12Col\": \"pf-m-all-12-col\",\n \"all_1ColOnSm\": \"pf-m-all-1-col-on-sm\",\n \"all_2ColOnSm\": \"pf-m-all-2-col-on-sm\",\n \"all_3ColOnSm\": \"pf-m-all-3-col-on-sm\",\n \"all_4ColOnSm\": \"pf-m-all-4-col-on-sm\",\n \"all_5ColOnSm\": \"pf-m-all-5-col-on-sm\",\n \"all_6ColOnSm\": \"pf-m-all-6-col-on-sm\",\n \"all_7ColOnSm\": \"pf-m-all-7-col-on-sm\",\n \"all_8ColOnSm\": \"pf-m-all-8-col-on-sm\",\n \"all_9ColOnSm\": \"pf-m-all-9-col-on-sm\",\n \"all_10ColOnSm\": \"pf-m-all-10-col-on-sm\",\n \"all_11ColOnSm\": \"pf-m-all-11-col-on-sm\",\n \"all_12ColOnSm\": \"pf-m-all-12-col-on-sm\",\n \"all_1ColOnMd\": \"pf-m-all-1-col-on-md\",\n \"all_2ColOnMd\": \"pf-m-all-2-col-on-md\",\n \"all_3ColOnMd\": \"pf-m-all-3-col-on-md\",\n \"all_4ColOnMd\": \"pf-m-all-4-col-on-md\",\n \"all_5ColOnMd\": \"pf-m-all-5-col-on-md\",\n \"all_6ColOnMd\": \"pf-m-all-6-col-on-md\",\n \"all_7ColOnMd\": \"pf-m-all-7-col-on-md\",\n \"all_8ColOnMd\": \"pf-m-all-8-col-on-md\",\n \"all_9ColOnMd\": \"pf-m-all-9-col-on-md\",\n \"all_10ColOnMd\": \"pf-m-all-10-col-on-md\",\n \"all_11ColOnMd\": \"pf-m-all-11-col-on-md\",\n \"all_12ColOnMd\": \"pf-m-all-12-col-on-md\",\n \"all_1ColOnLg\": \"pf-m-all-1-col-on-lg\",\n \"all_2ColOnLg\": \"pf-m-all-2-col-on-lg\",\n \"all_3ColOnLg\": \"pf-m-all-3-col-on-lg\",\n \"all_4ColOnLg\": \"pf-m-all-4-col-on-lg\",\n \"all_5ColOnLg\": \"pf-m-all-5-col-on-lg\",\n \"all_6ColOnLg\": \"pf-m-all-6-col-on-lg\",\n \"all_7ColOnLg\": \"pf-m-all-7-col-on-lg\",\n \"all_8ColOnLg\": \"pf-m-all-8-col-on-lg\",\n \"all_9ColOnLg\": \"pf-m-all-9-col-on-lg\",\n \"all_10ColOnLg\": \"pf-m-all-10-col-on-lg\",\n \"all_11ColOnLg\": \"pf-m-all-11-col-on-lg\",\n \"all_12ColOnLg\": \"pf-m-all-12-col-on-lg\",\n \"all_1ColOnXl\": \"pf-m-all-1-col-on-xl\",\n \"all_2ColOnXl\": \"pf-m-all-2-col-on-xl\",\n \"all_3ColOnXl\": \"pf-m-all-3-col-on-xl\",\n \"all_4ColOnXl\": \"pf-m-all-4-col-on-xl\",\n \"all_5ColOnXl\": \"pf-m-all-5-col-on-xl\",\n \"all_6ColOnXl\": \"pf-m-all-6-col-on-xl\",\n \"all_7ColOnXl\": \"pf-m-all-7-col-on-xl\",\n \"all_8ColOnXl\": \"pf-m-all-8-col-on-xl\",\n \"all_9ColOnXl\": \"pf-m-all-9-col-on-xl\",\n \"all_10ColOnXl\": \"pf-m-all-10-col-on-xl\",\n \"all_11ColOnXl\": \"pf-m-all-11-col-on-xl\",\n \"all_12ColOnXl\": \"pf-m-all-12-col-on-xl\",\n \"all_1ColOn_2xl\": \"pf-m-all-1-col-on-2xl\",\n \"all_2ColOn_2xl\": \"pf-m-all-2-col-on-2xl\",\n \"all_3ColOn_2xl\": \"pf-m-all-3-col-on-2xl\",\n \"all_4ColOn_2xl\": \"pf-m-all-4-col-on-2xl\",\n \"all_5ColOn_2xl\": \"pf-m-all-5-col-on-2xl\",\n \"all_6ColOn_2xl\": \"pf-m-all-6-col-on-2xl\",\n \"all_7ColOn_2xl\": \"pf-m-all-7-col-on-2xl\",\n \"all_8ColOn_2xl\": \"pf-m-all-8-col-on-2xl\",\n \"all_9ColOn_2xl\": \"pf-m-all-9-col-on-2xl\",\n \"all_10ColOn_2xl\": \"pf-m-all-10-col-on-2xl\",\n \"all_11ColOn_2xl\": \"pf-m-all-11-col-on-2xl\",\n \"all_12ColOn_2xl\": \"pf-m-all-12-col-on-2xl\",\n \"1Col\": \"pf-m-1-col\",\n \"2Col\": \"pf-m-2-col\",\n \"3Col\": \"pf-m-3-col\",\n \"4Col\": \"pf-m-4-col\",\n \"5Col\": \"pf-m-5-col\",\n \"6Col\": \"pf-m-6-col\",\n \"7Col\": \"pf-m-7-col\",\n \"8Col\": \"pf-m-8-col\",\n \"9Col\": \"pf-m-9-col\",\n \"10Col\": \"pf-m-10-col\",\n \"11Col\": \"pf-m-11-col\",\n \"12Col\": \"pf-m-12-col\",\n \"offset_1Col\": \"pf-m-offset-1-col\",\n \"offset_2Col\": \"pf-m-offset-2-col\",\n \"offset_3Col\": \"pf-m-offset-3-col\",\n \"offset_4Col\": \"pf-m-offset-4-col\",\n \"offset_5Col\": \"pf-m-offset-5-col\",\n \"offset_6Col\": \"pf-m-offset-6-col\",\n \"offset_7Col\": \"pf-m-offset-7-col\",\n \"offset_8Col\": \"pf-m-offset-8-col\",\n \"offset_9Col\": \"pf-m-offset-9-col\",\n \"offset_10Col\": \"pf-m-offset-10-col\",\n \"offset_11Col\": \"pf-m-offset-11-col\",\n \"offset_12Col\": \"pf-m-offset-12-col\",\n \"1Row\": \"pf-m-1-row\",\n \"2Row\": \"pf-m-2-row\",\n \"3Row\": \"pf-m-3-row\",\n \"4Row\": \"pf-m-4-row\",\n \"5Row\": \"pf-m-5-row\",\n \"6Row\": \"pf-m-6-row\",\n \"7Row\": \"pf-m-7-row\",\n \"8Row\": \"pf-m-8-row\",\n \"9Row\": \"pf-m-9-row\",\n \"10Row\": \"pf-m-10-row\",\n \"11Row\": \"pf-m-11-row\",\n \"12Row\": \"pf-m-12-row\",\n \"1ColOnSm\": \"pf-m-1-col-on-sm\",\n \"2ColOnSm\": \"pf-m-2-col-on-sm\",\n \"3ColOnSm\": \"pf-m-3-col-on-sm\",\n \"4ColOnSm\": \"pf-m-4-col-on-sm\",\n \"5ColOnSm\": \"pf-m-5-col-on-sm\",\n \"6ColOnSm\": \"pf-m-6-col-on-sm\",\n \"7ColOnSm\": \"pf-m-7-col-on-sm\",\n \"8ColOnSm\": \"pf-m-8-col-on-sm\",\n \"9ColOnSm\": \"pf-m-9-col-on-sm\",\n \"10ColOnSm\": \"pf-m-10-col-on-sm\",\n \"11ColOnSm\": \"pf-m-11-col-on-sm\",\n \"12ColOnSm\": \"pf-m-12-col-on-sm\",\n \"offset_1ColOnSm\": \"pf-m-offset-1-col-on-sm\",\n \"offset_2ColOnSm\": \"pf-m-offset-2-col-on-sm\",\n \"offset_3ColOnSm\": \"pf-m-offset-3-col-on-sm\",\n \"offset_4ColOnSm\": \"pf-m-offset-4-col-on-sm\",\n \"offset_5ColOnSm\": \"pf-m-offset-5-col-on-sm\",\n \"offset_6ColOnSm\": \"pf-m-offset-6-col-on-sm\",\n \"offset_7ColOnSm\": \"pf-m-offset-7-col-on-sm\",\n \"offset_8ColOnSm\": \"pf-m-offset-8-col-on-sm\",\n \"offset_9ColOnSm\": \"pf-m-offset-9-col-on-sm\",\n \"offset_10ColOnSm\": \"pf-m-offset-10-col-on-sm\",\n \"offset_11ColOnSm\": \"pf-m-offset-11-col-on-sm\",\n \"offset_12ColOnSm\": \"pf-m-offset-12-col-on-sm\",\n \"1RowOnSm\": \"pf-m-1-row-on-sm\",\n \"2RowOnSm\": \"pf-m-2-row-on-sm\",\n \"3RowOnSm\": \"pf-m-3-row-on-sm\",\n \"4RowOnSm\": \"pf-m-4-row-on-sm\",\n \"5RowOnSm\": \"pf-m-5-row-on-sm\",\n \"6RowOnSm\": \"pf-m-6-row-on-sm\",\n \"7RowOnSm\": \"pf-m-7-row-on-sm\",\n \"8RowOnSm\": \"pf-m-8-row-on-sm\",\n \"9RowOnSm\": \"pf-m-9-row-on-sm\",\n \"10RowOnSm\": \"pf-m-10-row-on-sm\",\n \"11RowOnSm\": \"pf-m-11-row-on-sm\",\n \"12RowOnSm\": \"pf-m-12-row-on-sm\",\n \"1ColOnMd\": \"pf-m-1-col-on-md\",\n \"2ColOnMd\": \"pf-m-2-col-on-md\",\n \"3ColOnMd\": \"pf-m-3-col-on-md\",\n \"4ColOnMd\": \"pf-m-4-col-on-md\",\n \"5ColOnMd\": \"pf-m-5-col-on-md\",\n \"6ColOnMd\": \"pf-m-6-col-on-md\",\n \"7ColOnMd\": \"pf-m-7-col-on-md\",\n \"8ColOnMd\": \"pf-m-8-col-on-md\",\n \"9ColOnMd\": \"pf-m-9-col-on-md\",\n \"10ColOnMd\": \"pf-m-10-col-on-md\",\n \"11ColOnMd\": \"pf-m-11-col-on-md\",\n \"12ColOnMd\": \"pf-m-12-col-on-md\",\n \"offset_1ColOnMd\": \"pf-m-offset-1-col-on-md\",\n \"offset_2ColOnMd\": \"pf-m-offset-2-col-on-md\",\n \"offset_3ColOnMd\": \"pf-m-offset-3-col-on-md\",\n \"offset_4ColOnMd\": \"pf-m-offset-4-col-on-md\",\n \"offset_5ColOnMd\": \"pf-m-offset-5-col-on-md\",\n \"offset_6ColOnMd\": \"pf-m-offset-6-col-on-md\",\n \"offset_7ColOnMd\": \"pf-m-offset-7-col-on-md\",\n \"offset_8ColOnMd\": \"pf-m-offset-8-col-on-md\",\n \"offset_9ColOnMd\": \"pf-m-offset-9-col-on-md\",\n \"offset_10ColOnMd\": \"pf-m-offset-10-col-on-md\",\n \"offset_11ColOnMd\": \"pf-m-offset-11-col-on-md\",\n \"offset_12ColOnMd\": \"pf-m-offset-12-col-on-md\",\n \"1RowOnMd\": \"pf-m-1-row-on-md\",\n \"2RowOnMd\": \"pf-m-2-row-on-md\",\n \"3RowOnMd\": \"pf-m-3-row-on-md\",\n \"4RowOnMd\": \"pf-m-4-row-on-md\",\n \"5RowOnMd\": \"pf-m-5-row-on-md\",\n \"6RowOnMd\": \"pf-m-6-row-on-md\",\n \"7RowOnMd\": \"pf-m-7-row-on-md\",\n \"8RowOnMd\": \"pf-m-8-row-on-md\",\n \"9RowOnMd\": \"pf-m-9-row-on-md\",\n \"10RowOnMd\": \"pf-m-10-row-on-md\",\n \"11RowOnMd\": \"pf-m-11-row-on-md\",\n \"12RowOnMd\": \"pf-m-12-row-on-md\",\n \"1ColOnLg\": \"pf-m-1-col-on-lg\",\n \"2ColOnLg\": \"pf-m-2-col-on-lg\",\n \"3ColOnLg\": \"pf-m-3-col-on-lg\",\n \"4ColOnLg\": \"pf-m-4-col-on-lg\",\n \"5ColOnLg\": \"pf-m-5-col-on-lg\",\n \"6ColOnLg\": \"pf-m-6-col-on-lg\",\n \"7ColOnLg\": \"pf-m-7-col-on-lg\",\n \"8ColOnLg\": \"pf-m-8-col-on-lg\",\n \"9ColOnLg\": \"pf-m-9-col-on-lg\",\n \"10ColOnLg\": \"pf-m-10-col-on-lg\",\n \"11ColOnLg\": \"pf-m-11-col-on-lg\",\n \"12ColOnLg\": \"pf-m-12-col-on-lg\",\n \"offset_1ColOnLg\": \"pf-m-offset-1-col-on-lg\",\n \"offset_2ColOnLg\": \"pf-m-offset-2-col-on-lg\",\n \"offset_3ColOnLg\": \"pf-m-offset-3-col-on-lg\",\n \"offset_4ColOnLg\": \"pf-m-offset-4-col-on-lg\",\n \"offset_5ColOnLg\": \"pf-m-offset-5-col-on-lg\",\n \"offset_6ColOnLg\": \"pf-m-offset-6-col-on-lg\",\n \"offset_7ColOnLg\": \"pf-m-offset-7-col-on-lg\",\n \"offset_8ColOnLg\": \"pf-m-offset-8-col-on-lg\",\n \"offset_9ColOnLg\": \"pf-m-offset-9-col-on-lg\",\n \"offset_10ColOnLg\": \"pf-m-offset-10-col-on-lg\",\n \"offset_11ColOnLg\": \"pf-m-offset-11-col-on-lg\",\n \"offset_12ColOnLg\": \"pf-m-offset-12-col-on-lg\",\n \"1RowOnLg\": \"pf-m-1-row-on-lg\",\n \"2RowOnLg\": \"pf-m-2-row-on-lg\",\n \"3RowOnLg\": \"pf-m-3-row-on-lg\",\n \"4RowOnLg\": \"pf-m-4-row-on-lg\",\n \"5RowOnLg\": \"pf-m-5-row-on-lg\",\n \"6RowOnLg\": \"pf-m-6-row-on-lg\",\n \"7RowOnLg\": \"pf-m-7-row-on-lg\",\n \"8RowOnLg\": \"pf-m-8-row-on-lg\",\n \"9RowOnLg\": \"pf-m-9-row-on-lg\",\n \"10RowOnLg\": \"pf-m-10-row-on-lg\",\n \"11RowOnLg\": \"pf-m-11-row-on-lg\",\n \"12RowOnLg\": \"pf-m-12-row-on-lg\",\n \"1ColOnXl\": \"pf-m-1-col-on-xl\",\n \"2ColOnXl\": \"pf-m-2-col-on-xl\",\n \"3ColOnXl\": \"pf-m-3-col-on-xl\",\n \"4ColOnXl\": \"pf-m-4-col-on-xl\",\n \"5ColOnXl\": \"pf-m-5-col-on-xl\",\n \"6ColOnXl\": \"pf-m-6-col-on-xl\",\n \"7ColOnXl\": \"pf-m-7-col-on-xl\",\n \"8ColOnXl\": \"pf-m-8-col-on-xl\",\n \"9ColOnXl\": \"pf-m-9-col-on-xl\",\n \"10ColOnXl\": \"pf-m-10-col-on-xl\",\n \"11ColOnXl\": \"pf-m-11-col-on-xl\",\n \"12ColOnXl\": \"pf-m-12-col-on-xl\",\n \"offset_1ColOnXl\": \"pf-m-offset-1-col-on-xl\",\n \"offset_2ColOnXl\": \"pf-m-offset-2-col-on-xl\",\n \"offset_3ColOnXl\": \"pf-m-offset-3-col-on-xl\",\n \"offset_4ColOnXl\": \"pf-m-offset-4-col-on-xl\",\n \"offset_5ColOnXl\": \"pf-m-offset-5-col-on-xl\",\n \"offset_6ColOnXl\": \"pf-m-offset-6-col-on-xl\",\n \"offset_7ColOnXl\": \"pf-m-offset-7-col-on-xl\",\n \"offset_8ColOnXl\": \"pf-m-offset-8-col-on-xl\",\n \"offset_9ColOnXl\": \"pf-m-offset-9-col-on-xl\",\n \"offset_10ColOnXl\": \"pf-m-offset-10-col-on-xl\",\n \"offset_11ColOnXl\": \"pf-m-offset-11-col-on-xl\",\n \"offset_12ColOnXl\": \"pf-m-offset-12-col-on-xl\",\n \"1RowOnXl\": \"pf-m-1-row-on-xl\",\n \"2RowOnXl\": \"pf-m-2-row-on-xl\",\n \"3RowOnXl\": \"pf-m-3-row-on-xl\",\n \"4RowOnXl\": \"pf-m-4-row-on-xl\",\n \"5RowOnXl\": \"pf-m-5-row-on-xl\",\n \"6RowOnXl\": \"pf-m-6-row-on-xl\",\n \"7RowOnXl\": \"pf-m-7-row-on-xl\",\n \"8RowOnXl\": \"pf-m-8-row-on-xl\",\n \"9RowOnXl\": \"pf-m-9-row-on-xl\",\n \"10RowOnXl\": \"pf-m-10-row-on-xl\",\n \"11RowOnXl\": \"pf-m-11-row-on-xl\",\n \"12RowOnXl\": \"pf-m-12-row-on-xl\",\n \"1ColOn_2xl\": \"pf-m-1-col-on-2xl\",\n \"2ColOn_2xl\": \"pf-m-2-col-on-2xl\",\n \"3ColOn_2xl\": \"pf-m-3-col-on-2xl\",\n \"4ColOn_2xl\": \"pf-m-4-col-on-2xl\",\n \"5ColOn_2xl\": \"pf-m-5-col-on-2xl\",\n \"6ColOn_2xl\": \"pf-m-6-col-on-2xl\",\n \"7ColOn_2xl\": \"pf-m-7-col-on-2xl\",\n \"8ColOn_2xl\": \"pf-m-8-col-on-2xl\",\n \"9ColOn_2xl\": \"pf-m-9-col-on-2xl\",\n \"10ColOn_2xl\": \"pf-m-10-col-on-2xl\",\n \"11ColOn_2xl\": \"pf-m-11-col-on-2xl\",\n \"12ColOn_2xl\": \"pf-m-12-col-on-2xl\",\n \"offset_1ColOn_2xl\": \"pf-m-offset-1-col-on-2xl\",\n \"offset_2ColOn_2xl\": \"pf-m-offset-2-col-on-2xl\",\n \"offset_3ColOn_2xl\": \"pf-m-offset-3-col-on-2xl\",\n \"offset_4ColOn_2xl\": \"pf-m-offset-4-col-on-2xl\",\n \"offset_5ColOn_2xl\": \"pf-m-offset-5-col-on-2xl\",\n \"offset_6ColOn_2xl\": \"pf-m-offset-6-col-on-2xl\",\n \"offset_7ColOn_2xl\": \"pf-m-offset-7-col-on-2xl\",\n \"offset_8ColOn_2xl\": \"pf-m-offset-8-col-on-2xl\",\n \"offset_9ColOn_2xl\": \"pf-m-offset-9-col-on-2xl\",\n \"offset_10ColOn_2xl\": \"pf-m-offset-10-col-on-2xl\",\n \"offset_11ColOn_2xl\": \"pf-m-offset-11-col-on-2xl\",\n \"offset_12ColOn_2xl\": \"pf-m-offset-12-col-on-2xl\",\n \"1RowOn_2xl\": \"pf-m-1-row-on-2xl\",\n \"2RowOn_2xl\": \"pf-m-2-row-on-2xl\",\n \"3RowOn_2xl\": \"pf-m-3-row-on-2xl\",\n \"4RowOn_2xl\": \"pf-m-4-row-on-2xl\",\n \"5RowOn_2xl\": \"pf-m-5-row-on-2xl\",\n \"6RowOn_2xl\": \"pf-m-6-row-on-2xl\",\n \"7RowOn_2xl\": \"pf-m-7-row-on-2xl\",\n \"8RowOn_2xl\": \"pf-m-8-row-on-2xl\",\n \"9RowOn_2xl\": \"pf-m-9-row-on-2xl\",\n \"10RowOn_2xl\": \"pf-m-10-row-on-2xl\",\n \"11RowOn_2xl\": \"pf-m-11-row-on-2xl\",\n \"12RowOn_2xl\": \"pf-m-12-row-on-2xl\",\n \"gutter\": \"pf-m-gutter\"\n }\n};","export var BaseSizes;\n(function (BaseSizes) {\n BaseSizes[\"xs\"] = \"xs\";\n BaseSizes[\"sm\"] = \"sm\";\n BaseSizes[\"md\"] = \"md\";\n BaseSizes[\"lg\"] = \"lg\";\n BaseSizes[\"xl\"] = \"xl\";\n BaseSizes[\"2xl\"] = \"2xl\";\n BaseSizes[\"3xl\"] = \"3xl\";\n BaseSizes[\"4xl\"] = \"4xl\";\n})(BaseSizes || (BaseSizes = {}));\nexport var DeviceSizes;\n(function (DeviceSizes) {\n DeviceSizes[\"sm\"] = \"Sm\";\n DeviceSizes[\"md\"] = \"Md\";\n DeviceSizes[\"lg\"] = \"Lg\";\n DeviceSizes[\"xl\"] = \"Xl\";\n DeviceSizes[\"xl2\"] = \"_2xl\";\n})(DeviceSizes || (DeviceSizes = {}));\n//# sourceMappingURL=sizes.js.map","export const l_grid_item_Order = {\n \"name\": \"--pf-v5-l-grid--item--Order\",\n \"value\": \"0\",\n \"var\": \"var(--pf-v5-l-grid--item--Order)\"\n};\nexport default l_grid_item_Order;","import { __rest } from \"tslib\";\nimport * as React from 'react';\nimport styles from '@patternfly/react-styles/css/layouts/Grid/grid.mjs';\nimport { css } from '@patternfly/react-styles';\nimport { DeviceSizes } from '../../styles/sizes';\nimport * as gridToken from '@patternfly/react-tokens/dist/esm/l_grid_item_Order';\nimport { setBreakpointCssVars } from '../../helpers/util';\nexport const Grid = (_a) => {\n var { children = null, className = '', component = 'div', hasGutter, span = null, order, style } = _a, props = __rest(_a, [\"children\", \"className\", \"component\", \"hasGutter\", \"span\", \"order\", \"style\"]);\n const classes = [styles.grid, span && styles.modifiers[`all_${span}Col`]];\n const Component = component;\n Object.entries(DeviceSizes).forEach(([propKey, gridSpanModifier]) => {\n const key = propKey;\n const propValue = props[key];\n if (propValue) {\n classes.push(styles.modifiers[`all_${propValue}ColOn${gridSpanModifier}`]);\n }\n delete props[key];\n });\n return (React.createElement(Component, Object.assign({ className: css(...classes, hasGutter && styles.modifiers.gutter, className), style: style || order ? Object.assign(Object.assign({}, style), setBreakpointCssVars(order, gridToken.l_grid_item_Order.name)) : undefined }, props), children));\n};\nGrid.displayName = 'Grid';\n//# sourceMappingURL=Grid.js.map","import { __rest } from \"tslib\";\nimport * as React from 'react';\nimport styles from '@patternfly/react-styles/css/layouts/Grid/grid.mjs';\nimport { css } from '@patternfly/react-styles';\nimport { DeviceSizes } from '../../styles/sizes';\nimport * as gridToken from '@patternfly/react-tokens/dist/esm/l_grid_item_Order';\nimport { setBreakpointCssVars } from '../../helpers/util';\nexport const GridItem = (_a) => {\n var { children = null, className = '', component = 'div', span = null, rowSpan = null, offset = null, order, style } = _a, props = __rest(_a, [\"children\", \"className\", \"component\", \"span\", \"rowSpan\", \"offset\", \"order\", \"style\"]);\n const classes = [\n styles.gridItem,\n span && styles.modifiers[`${span}Col`],\n rowSpan && styles.modifiers[`${rowSpan}Row`],\n offset && styles.modifiers[`offset_${offset}Col`]\n ];\n const Component = component;\n Object.entries(DeviceSizes).forEach(([propKey, classModifier]) => {\n const key = propKey;\n const rowSpanKey = `${key}RowSpan`;\n const offsetKey = `${key}Offset`;\n const spanValue = props[key];\n const rowSpanValue = props[rowSpanKey];\n const offsetValue = props[offsetKey];\n if (spanValue) {\n classes.push(styles.modifiers[`${spanValue}ColOn${classModifier}`]);\n }\n if (rowSpanValue) {\n classes.push(styles.modifiers[`${rowSpanValue}RowOn${classModifier}`]);\n }\n if (offsetValue) {\n classes.push(styles.modifiers[`offset_${offsetValue}ColOn${classModifier}`]);\n }\n delete props[key];\n delete props[rowSpanKey];\n delete props[offsetKey];\n });\n return (React.createElement(Component, Object.assign({ className: css(...classes, className), style: style || order ? Object.assign(Object.assign({}, style), setBreakpointCssVars(order, gridToken.l_grid_item_Order.name)) : undefined }, props), children));\n};\nGridItem.displayName = 'GridItem';\n//# sourceMappingURL=GridItem.js.map","import {\r\n Button,\r\n Modal,\r\n ModalVariant,\r\n Page,\r\n Text,\r\n TextContent,\r\n TextVariants,\r\n} from \"@patternfly/react-core\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { isRouteErrorResponse, useRouteError } from \"react-router-dom\";\r\n\r\ntype ErrorPageProps = {\r\n error?: unknown;\r\n};\r\n\r\nexport const ErrorPage = (props: ErrorPageProps) => {\r\n const { t } = useTranslation();\r\n const error = useRouteError() ?? props.error;\r\n const errorMessage = getErrorMessage(error);\r\n\r\n function onRetry() {\r\n location.href = location.origin + location.pathname;\r\n }\r\n\r\n return (\r\n <Page>\r\n <Modal\r\n variant={ModalVariant.small}\r\n title={t(\"somethingWentWrong\")}\r\n titleIconVariant=\"danger\"\r\n showClose={false}\r\n isOpen\r\n actions={[\r\n <Button key=\"tryAgain\" variant=\"primary\" onClick={onRetry}>\r\n {t(\"tryAgain\")}\r\n </Button>,\r\n ]}\r\n >\r\n <TextContent>\r\n <Text>{t(\"somethingWentWrongDescription\")}</Text>\r\n {errorMessage && (\r\n <Text component={TextVariants.small}>{errorMessage}</Text>\r\n )}\r\n </TextContent>\r\n </Modal>\r\n </Page>\r\n );\r\n};\r\n\r\nfunction getErrorMessage(error: unknown): string | null {\r\n if (typeof error === \"string\") {\r\n return error;\r\n }\r\n\r\n if (isRouteErrorResponse(error)) {\r\n return error.statusText;\r\n }\r\n\r\n if (error instanceof Error) {\r\n return error.message;\r\n }\r\n\r\n return null;\r\n}\r\n","import * as React from 'react';\nexport var DropdownPosition;\n(function (DropdownPosition) {\n DropdownPosition[\"right\"] = \"right\";\n DropdownPosition[\"left\"] = \"left\";\n})(DropdownPosition || (DropdownPosition = {}));\nexport var DropdownDirection;\n(function (DropdownDirection) {\n DropdownDirection[\"up\"] = \"up\";\n DropdownDirection[\"down\"] = \"down\";\n})(DropdownDirection || (DropdownDirection = {}));\nexport const DropdownContext = React.createContext({\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n onSelect: (event) => undefined,\n id: '',\n toggleIndicatorClass: '',\n toggleIconClass: '',\n toggleTextClass: '',\n menuClass: '',\n itemClass: '',\n toggleClass: '',\n baseClass: '',\n baseComponent: 'div',\n sectionClass: '',\n sectionTitleClass: '',\n sectionComponent: 'section',\n disabledClass: '',\n plainTextClass: '',\n menuComponent: 'ul'\n});\nexport const DropdownArrowContext = React.createContext({\n keyHandler: null,\n sendRef: null\n});\n//# sourceMappingURL=dropdownConstants.js.map","import { __rest } from \"tslib\";\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport styles from '@patternfly/react-styles/css/components/Dropdown/dropdown.mjs';\nimport { css } from '@patternfly/react-styles';\nimport { keyHandler, formatBreakpointMods } from '../../../helpers/util';\nimport { DropdownPosition, DropdownArrowContext, DropdownContext } from './dropdownConstants';\nclass DropdownMenu extends React.Component {\n constructor() {\n super(...arguments);\n this.refsCollection = [];\n this.componentWillUnmount = () => {\n document.removeEventListener('keydown', this.onKeyDown);\n };\n this.onKeyDown = (event) => {\n if (!this.props.isOpen ||\n !Array.from(document.activeElement.classList).find((className) => DropdownMenu.validToggleClasses.concat(this.context.toggleClass).includes(className))) {\n return;\n }\n const refs = this.refsCollection;\n if (event.key === 'ArrowDown') {\n const firstFocusTargetCollection = refs.find((ref) => ref && ref[0] && !ref[0].hasAttribute('disabled'));\n DropdownMenu.focusFirstRef(firstFocusTargetCollection);\n event.stopPropagation();\n }\n else if (event.key === 'ArrowUp') {\n const collectionLength = refs.length;\n const lastFocusTargetCollection = refs.slice(collectionLength - 1, collectionLength);\n const lastFocusTarget = lastFocusTargetCollection && lastFocusTargetCollection[0];\n DropdownMenu.focusFirstRef(lastFocusTarget);\n event.stopPropagation();\n }\n };\n this.childKeyHandler = (index, innerIndex, position, custom = false) => {\n keyHandler(index, innerIndex, position, this.refsCollection, this.props.isGrouped ? this.refsCollection : React.Children.toArray(this.props.children), custom);\n };\n this.sendRef = (index, nodes, isDisabled, isSeparator) => {\n this.refsCollection[index] = [];\n nodes.map((node, innerIndex) => {\n if (!node) {\n this.refsCollection[index][innerIndex] = null;\n }\n else if (!node.getAttribute) {\n // eslint-disable-next-line react/no-find-dom-node\n this.refsCollection[index][innerIndex] = ReactDOM.findDOMNode(node);\n }\n else if (isSeparator) {\n this.refsCollection[index][innerIndex] = null;\n }\n else {\n this.refsCollection[index][innerIndex] = node;\n }\n });\n };\n }\n componentDidMount() {\n document.addEventListener('keydown', this.onKeyDown);\n const { autoFocus } = this.props;\n if (autoFocus) {\n // Focus first non-disabled element\n const focusTargetCollection = this.refsCollection.find((ref) => ref && ref[0] && !ref[0].hasAttribute('disabled'));\n const focusTarget = focusTargetCollection && focusTargetCollection[0];\n if (focusTarget && focusTarget.focus) {\n setTimeout(() => focusTarget.focus());\n }\n }\n }\n shouldComponentUpdate() {\n // reset refsCollection before updating to account for child removal between mounts\n this.refsCollection = [];\n return true;\n }\n extendChildren() {\n const { children, isGrouped } = this.props;\n if (isGrouped) {\n let index = 0;\n return React.Children.map(children, (groupedChildren) => {\n const group = groupedChildren;\n const props = {};\n if (group.props && group.props.children) {\n if (Array.isArray(group.props.children)) {\n props.children = React.Children.map(group.props.children, (option) => React.cloneElement(option, {\n index: index++\n }));\n }\n else {\n props.children = React.cloneElement(group.props.children, {\n index: index++\n });\n }\n }\n return React.cloneElement(group, props);\n });\n }\n return React.Children.map(children, (child, index) => React.cloneElement(child, {\n index\n }));\n }\n render() {\n const _a = this.props, { className, isOpen, position, children, component, isGrouped, setMenuComponentRef, alignments } = _a, props = __rest(_a, [\"className\", \"isOpen\", \"position\", \"children\", \"component\", \"isGrouped\", \"setMenuComponentRef\", \"alignments\"]);\n return (React.createElement(DropdownArrowContext.Provider, { value: {\n keyHandler: this.childKeyHandler,\n sendRef: this.sendRef\n } }, component === 'div' ? (React.createElement(DropdownContext.Consumer, null, ({ onSelect, menuClass }) => (React.createElement(\"div\", { className: css(menuClass, position === DropdownPosition.right && styles.modifiers.alignRight, formatBreakpointMods(alignments, styles, 'align-'), className), hidden: !isOpen, onClick: (event) => onSelect && onSelect(event), ref: setMenuComponentRef }, children)))) : ((isGrouped && (React.createElement(DropdownContext.Consumer, null, ({ menuClass, menuComponent }) => {\n const MenuComponent = (menuComponent || 'div');\n return (React.createElement(MenuComponent, Object.assign({}, props, { className: css(menuClass, position === DropdownPosition.right && styles.modifiers.alignRight, formatBreakpointMods(alignments, styles, 'align-'), className), hidden: !isOpen, role: \"menu\", ref: setMenuComponentRef }), this.extendChildren()));\n }))) || (React.createElement(DropdownContext.Consumer, null, ({ menuClass, menuComponent }) => {\n const MenuComponent = (menuComponent || component);\n return (React.createElement(MenuComponent, Object.assign({}, props, { className: css(menuClass, position === DropdownPosition.right && styles.modifiers.alignRight, formatBreakpointMods(alignments, styles, 'align-'), className), hidden: !isOpen, role: \"menu\", ref: setMenuComponentRef }), this.extendChildren()));\n })))));\n }\n}\nDropdownMenu.displayName = 'DropdownMenu';\nDropdownMenu.defaultProps = {\n className: '',\n isOpen: true,\n autoFocus: true,\n position: DropdownPosition.left,\n component: 'ul',\n isGrouped: false,\n setMenuComponentRef: null\n};\nDropdownMenu.validToggleClasses = [styles.dropdownToggle, styles.dropdownToggleButton];\nDropdownMenu.focusFirstRef = (refCollection) => {\n if (refCollection && refCollection[0] && refCollection[0].focus) {\n setTimeout(() => refCollection[0].focus());\n }\n};\nDropdownMenu.contextType = DropdownContext;\nexport { DropdownMenu };\n//# sourceMappingURL=DropdownMenu.js.map","import { __rest } from \"tslib\";\nimport * as React from 'react';\nimport styles from '@patternfly/react-styles/css/components/Dropdown/dropdown.mjs';\nimport { css } from '@patternfly/react-styles';\nimport { DropdownMenu } from './DropdownMenu';\nimport { DropdownContext, DropdownDirection, DropdownPosition } from './dropdownConstants';\nimport { getOUIAProps } from '../../../helpers';\nimport { Popper } from '../../../helpers/Popper/Popper';\nclass DropdownWithContext extends React.Component {\n constructor(props) {\n super(props);\n this.openedOnEnter = false;\n this.baseComponentRef = React.createRef();\n this.menuComponentRef = React.createRef();\n this.onEnter = () => {\n this.openedOnEnter = true;\n };\n this.setMenuComponentRef = (element) => {\n this.menuComponentRef = element;\n };\n this.getMenuComponentRef = () => this.menuComponentRef;\n if (props.dropdownItems && props.dropdownItems.length > 0 && props.children) {\n // eslint-disable-next-line no-console\n console.error('Children and dropdownItems props have been provided. Only the dropdownItems prop items will be rendered');\n }\n }\n componentDidUpdate() {\n if (!this.props.isOpen) {\n this.openedOnEnter = false;\n }\n }\n render() {\n const _a = this.props, { children, className, direction, dropdownItems, isOpen, isPlain, isText, isGrouped, isFullHeight, \n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n onSelect, position, toggle, autoFocus, minWidth, menuAppendTo, isFlipEnabled, zIndex } = _a, props = __rest(_a, [\"children\", \"className\", \"direction\", \"dropdownItems\", \"isOpen\", \"isPlain\", \"isText\", \"isGrouped\", \"isFullHeight\", \"onSelect\", \"position\", \"toggle\", \"autoFocus\", \"minWidth\", \"menuAppendTo\", \"isFlipEnabled\", \"zIndex\"]);\n const id = toggle.props.id || `pf-dropdown-toggle-id-${DropdownWithContext.currentId++}`;\n let component;\n let renderedContent;\n let ariaHasPopup = false;\n if (dropdownItems && dropdownItems.length > 0) {\n component = 'ul';\n renderedContent = dropdownItems;\n ariaHasPopup = true;\n }\n else {\n component = 'div';\n renderedContent = React.Children.toArray(children);\n }\n const popperRef = React.createRef();\n const openedOnEnter = this.openedOnEnter;\n const isStatic = isFlipEnabled && menuAppendTo !== 'inline';\n return (React.createElement(DropdownContext.Consumer, null, ({ baseClass, baseComponent, id: contextId, ouiaId, ouiaComponentType, ouiaSafe, alignments }) => {\n const BaseComponent = baseComponent;\n const menuContainer = (React.createElement(DropdownMenu, { className: css(isStatic && styles.modifiers.static), setMenuComponentRef: this.setMenuComponentRef, component: component, isOpen: isOpen, position: position, \"aria-labelledby\": contextId ? `${contextId}-toggle` : id, isGrouped: isGrouped, autoFocus: openedOnEnter && autoFocus, alignments: alignments }, renderedContent));\n const popperContainer = (React.createElement(\"div\", { className: css(baseClass, direction === DropdownDirection.up && styles.modifiers.top, position === DropdownPosition.right && styles.modifiers.alignRight, isOpen && styles.modifiers.expanded, className), ref: popperRef }, isOpen && menuContainer));\n const mainContainer = (React.createElement(BaseComponent, Object.assign({}, props, { className: css(baseClass, direction === DropdownDirection.up && styles.modifiers.top, position === DropdownPosition.right && styles.modifiers.alignRight, isOpen && styles.modifiers.expanded, isFullHeight && styles.modifiers.fullHeight, className), ref: this.baseComponentRef }, getOUIAProps(ouiaComponentType, ouiaId, ouiaSafe)),\n React.Children.map(toggle, (oneToggle) => React.cloneElement(oneToggle, {\n parentRef: this.baseComponentRef,\n getMenuRef: this.getMenuComponentRef,\n isOpen,\n id,\n isPlain,\n isText,\n 'aria-haspopup': ariaHasPopup,\n onEnter: () => {\n this.onEnter();\n oneToggle.props.onEnter && oneToggle.props.onEnter();\n }\n })),\n menuAppendTo === 'inline' && isOpen && menuContainer));\n const getParentElement = () => {\n if (this.baseComponentRef && this.baseComponentRef.current) {\n return this.baseComponentRef.current.parentElement;\n }\n return null;\n };\n return menuAppendTo === 'inline' ? (mainContainer) : (React.createElement(Popper, { trigger: mainContainer, triggerRef: this.baseComponentRef, popper: popperContainer, popperRef: popperRef, direction: direction, position: position, appendTo: menuAppendTo === 'parent' ? getParentElement() : menuAppendTo, isVisible: isOpen, zIndex: zIndex, minWidth: minWidth !== undefined ? minWidth : 'revert' }));\n }));\n }\n}\nDropdownWithContext.displayName = 'DropdownWithContext';\n// seed for the aria-labelledby ID\nDropdownWithContext.currentId = 0;\nDropdownWithContext.defaultProps = {\n className: '',\n dropdownItems: [],\n isOpen: false,\n isPlain: false,\n isText: false,\n isGrouped: false,\n position: DropdownPosition.left,\n direction: DropdownDirection.down,\n onSelect: () => undefined,\n autoFocus: true,\n menuAppendTo: 'inline',\n isFlipEnabled: true\n};\nexport { DropdownWithContext };\n//# sourceMappingURL=DropdownWithContext.js.map","import { __rest } from \"tslib\";\nimport * as React from 'react';\nimport styles from '@patternfly/react-styles/css/components/Dropdown/dropdown.mjs';\nimport { DropdownContext } from './dropdownConstants';\nimport { DropdownWithContext } from './DropdownWithContext';\nimport { useOUIAId } from '../../../helpers';\nexport const Dropdown = (_a) => {\n var { onSelect, \n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n ref, // Types of Ref are different for React.FunctionComponent vs React.Component\n ouiaId, ouiaSafe, alignments, contextProps, minWidth, menuAppendTo = 'inline', isFlipEnabled = true, zIndex = 9999 } = _a, props = __rest(_a, [\"onSelect\", \"ref\", \"ouiaId\", \"ouiaSafe\", \"alignments\", \"contextProps\", \"minWidth\", \"menuAppendTo\", \"isFlipEnabled\", \"zIndex\"]);\n return (React.createElement(DropdownContext.Provider, { value: Object.assign({ onSelect: (event) => onSelect && onSelect(event), toggleTextClass: styles.dropdownToggleText, toggleIconClass: styles.dropdownToggleImage, toggleIndicatorClass: styles.dropdownToggleIcon, menuClass: styles.dropdownMenu, itemClass: styles.dropdownMenuItem, toggleClass: styles.dropdownToggle, baseClass: styles.dropdown, baseComponent: 'div', sectionClass: styles.dropdownGroup, sectionTitleClass: styles.dropdownGroupTitle, sectionComponent: 'section', disabledClass: styles.modifiers.disabled, plainTextClass: styles.modifiers.text, ouiaId: useOUIAId(Dropdown.displayName, ouiaId), ouiaSafe, ouiaComponentType: Dropdown.displayName, alignments }, contextProps) },\n React.createElement(DropdownWithContext, Object.assign({ menuAppendTo: menuAppendTo, isFlipEnabled: isFlipEnabled, zIndex: zIndex, minWidth: minWidth }, props))));\n};\nDropdown.displayName = 'Dropdown';\n//# sourceMappingURL=Dropdown.js.map","import { __rest } from \"tslib\";\nimport * as React from 'react';\nimport { css } from '@patternfly/react-styles';\nimport { DropdownContext } from './dropdownConstants';\nimport { KEYHANDLER_DIRECTION } from '../../../helpers/constants';\nimport { preventedEvents } from '../../../helpers/util';\nimport { Tooltip } from '../../../components/Tooltip';\nimport styles from '@patternfly/react-styles/css/components/Dropdown/dropdown.mjs';\nclass InternalDropdownItem extends React.Component {\n constructor() {\n super(...arguments);\n this.ref = React.createRef();\n this.additionalRef = React.createRef();\n this.getInnerNode = (node) => (node && node.childNodes && node.childNodes.length ? node.childNodes[0] : node);\n this.onKeyDown = (event) => {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;\n // Detected key press on this item, notify the menu parent so that the appropriate item can be focused\n const innerIndex = event.target === this.ref.current ? 0 : 1;\n if (!this.props.customChild) {\n event.preventDefault();\n }\n if (event.key === 'ArrowUp') {\n (_b = (_a = this.props.context) === null || _a === void 0 ? void 0 : _a.keyHandler) === null || _b === void 0 ? void 0 : _b.call(_a, this.props.index, innerIndex, KEYHANDLER_DIRECTION.UP);\n event.stopPropagation();\n }\n else if (event.key === 'ArrowDown') {\n (_d = (_c = this.props.context) === null || _c === void 0 ? void 0 : _c.keyHandler) === null || _d === void 0 ? void 0 : _d.call(_c, this.props.index, innerIndex, KEYHANDLER_DIRECTION.DOWN);\n event.stopPropagation();\n }\n else if (event.key === 'ArrowRight') {\n (_f = (_e = this.props.context) === null || _e === void 0 ? void 0 : _e.keyHandler) === null || _f === void 0 ? void 0 : _f.call(_e, this.props.index, innerIndex, KEYHANDLER_DIRECTION.RIGHT);\n event.stopPropagation();\n }\n else if (event.key === 'ArrowLeft') {\n (_h = (_g = this.props.context) === null || _g === void 0 ? void 0 : _g.keyHandler) === null || _h === void 0 ? void 0 : _h.call(_g, this.props.index, innerIndex, KEYHANDLER_DIRECTION.LEFT);\n event.stopPropagation();\n }\n else if (event.key === 'Enter' || event.key === ' ') {\n event.target.click();\n this.props.enterTriggersArrowDown &&\n ((_k = (_j = this.props.context) === null || _j === void 0 ? void 0 : _j.keyHandler) === null || _k === void 0 ? void 0 : _k.call(_j, this.props.index, innerIndex, KEYHANDLER_DIRECTION.DOWN));\n }\n };\n this.componentRef = (element) => {\n this.ref.current = element;\n const { component } = this.props;\n const ref = component.ref;\n if (ref) {\n if (typeof ref === 'function') {\n ref(element);\n }\n else {\n ref.current = element;\n }\n }\n };\n }\n componentDidMount() {\n var _a;\n const { context, index, isDisabled, role, customChild, autoFocus } = this.props;\n const customRef = customChild ? this.getInnerNode(this.ref.current) : this.ref.current;\n (_a = context === null || context === void 0 ? void 0 : context.sendRef) === null || _a === void 0 ? void 0 : _a.call(context, index, [customRef, customChild ? customRef : this.additionalRef.current], isDisabled, role === 'separator');\n autoFocus && setTimeout(() => customRef.focus());\n }\n componentDidUpdate() {\n var _a;\n const { context, index, isDisabled, role, customChild } = this.props;\n const customRef = customChild ? this.getInnerNode(this.ref.current) : this.ref.current;\n (_a = context === null || context === void 0 ? void 0 : context.sendRef) === null || _a === void 0 ? void 0 : _a.call(context, index, [customRef, customChild ? customRef : this.additionalRef.current], isDisabled, role === 'separator');\n }\n extendAdditionalChildRef() {\n const { additionalChild } = this.props;\n return React.cloneElement(additionalChild, {\n ref: this.additionalRef\n });\n }\n render() {\n /* eslint-disable @typescript-eslint/no-unused-vars */\n const _a = this.props, { className, children, context, onClick, component, role, isDisabled, isAriaDisabled, isPlainText, index, href, tooltip, tooltipProps, id, componentID, listItemClassName, additionalChild, customChild, enterTriggersArrowDown, icon, autoFocus, styleChildren, description, inoperableEvents } = _a, additionalProps = __rest(_a, [\"className\", \"children\", \"context\", \"onClick\", \"component\", \"role\", \"isDisabled\", \"isAriaDisabled\", \"isPlainText\", \"index\", \"href\", \"tooltip\", \"tooltipProps\", \"id\", \"componentID\", \"listItemClassName\", \"additionalChild\", \"customChild\", \"enterTriggersArrowDown\", \"icon\", \"autoFocus\", \"styleChildren\", \"description\", \"inoperableEvents\"]);\n /* eslint-enable @typescript-eslint/no-unused-vars */\n let classes = css(icon && styles.modifiers.icon, isAriaDisabled && styles.modifiers.ariaDisabled, className);\n if (component === 'a') {\n additionalProps['aria-disabled'] = isDisabled || isAriaDisabled;\n }\n else if (component === 'button') {\n additionalProps['aria-disabled'] = isDisabled || isAriaDisabled;\n additionalProps.type = additionalProps.type || 'button';\n }\n const renderWithTooltip = (childNode) => tooltip ? (React.createElement(Tooltip, Object.assign({ content: tooltip }, tooltipProps), childNode)) : (childNode);\n const renderClonedComponent = (element) => React.cloneElement(element, Object.assign(Object.assign({}, (styleChildren && {\n className: css(element.props.className, classes)\n })), (this.props.role !== 'separator' && { role, ref: this.componentRef })));\n const renderDefaultComponent = (tag) => {\n const Component = tag;\n const componentContent = description ? (React.createElement(React.Fragment, null,\n React.createElement(\"div\", { className: styles.dropdownMenuItemMain },\n icon && React.createElement(\"span\", { className: css(styles.dropdownMenuItemIcon) }, icon),\n children),\n React.createElement(\"div\", { className: styles.dropdownMenuItemDescription }, description))) : (React.createElement(React.Fragment, null,\n icon && React.createElement(\"span\", { className: css(styles.dropdownMenuItemIcon) }, icon),\n children));\n return (React.createElement(Component, Object.assign({}, additionalProps, (isDisabled || isAriaDisabled ? preventedEvents(inoperableEvents) : null), { href: href, ref: this.ref, className: classes, id: componentID, role: role }), componentContent));\n };\n return (React.createElement(DropdownContext.Consumer, null, ({ onSelect, itemClass, disabledClass, plainTextClass }) => {\n if (this.props.role !== 'separator') {\n classes = css(classes, isDisabled && disabledClass, isPlainText && plainTextClass, itemClass, description && styles.modifiers.description);\n }\n if (customChild) {\n return React.cloneElement(customChild, {\n ref: this.ref,\n onKeyDown: this.onKeyDown\n });\n }\n return (React.createElement(\"li\", Object.assign({}, (listItemClassName && { className: listItemClassName }), { role: \"none\", onKeyDown: this.onKeyDown, onClick: (event) => {\n if (!isDisabled && !isAriaDisabled) {\n onClick === null || onClick === void 0 ? void 0 : onClick(event);\n onSelect === null || onSelect === void 0 ? void 0 : onSelect(event);\n }\n }, id: id }),\n renderWithTooltip(React.isValidElement(component)\n ? renderClonedComponent(component)\n : renderDefaultComponent(component)),\n additionalChild && this.extendAdditionalChildRef()));\n }));\n }\n}\nInternalDropdownItem.displayName = 'InternalDropdownItem';\nInternalDropdownItem.defaultProps = {\n className: '',\n component: 'a',\n role: 'none',\n isDisabled: false,\n isPlainText: false,\n tooltipProps: {},\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n onClick: (event) => undefined,\n index: -1,\n context: {\n keyHandler: () => { },\n sendRef: () => { }\n },\n enterTriggersArrowDown: false,\n icon: null,\n styleChildren: true,\n description: null,\n inoperableEvents: ['onClick', 'onKeyPress']\n};\nexport { InternalDropdownItem };\n//# sourceMappingURL=InternalDropdownItem.js.map","import { __rest } from \"tslib\";\nimport * as React from 'react';\nimport { InternalDropdownItem } from './InternalDropdownItem';\nimport { DropdownArrowContext } from './dropdownConstants';\nimport { useOUIAProps } from '../../../helpers';\nexport const DropdownItem = (_a) => {\n var { children, className, component = 'a', isDisabled = false, isAriaDisabled = false, isPlainText = false, href, tooltip, tooltipProps = {}, listItemClassName, onClick, \n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n ref, // Types of Ref are different for React.FunctionComponent vs React.Component\n additionalChild, customChild, tabIndex = -1, icon = null, autoFocus, description = null, styleChildren, ouiaId, ouiaSafe } = _a, props = __rest(_a, [\"children\", \"className\", \"component\", \"isDisabled\", \"isAriaDisabled\", \"isPlainText\", \"href\", \"tooltip\", \"tooltipProps\", \"listItemClassName\", \"onClick\", \"ref\", \"additionalChild\", \"customChild\", \"tabIndex\", \"icon\", \"autoFocus\", \"description\", \"styleChildren\", \"ouiaId\", \"ouiaSafe\"]);\n const ouiaProps = useOUIAProps(DropdownItem.displayName, ouiaId, ouiaSafe);\n return (React.createElement(DropdownArrowContext.Consumer, null, (context) => (React.createElement(InternalDropdownItem, Object.assign({ context: context, role: \"menuitem\", tabIndex: tabIndex, className: className, component: component, isDisabled: isDisabled, isAriaDisabled: isAriaDisabled, isPlainText: isPlainText, href: href, tooltip: tooltip, tooltipProps: tooltipProps, listItemClassName: listItemClassName, onClick: onClick, additionalChild: additionalChild, customChild: customChild, icon: icon, autoFocus: autoFocus, styleChildren: styleChildren, description: description }, ouiaProps, props), children))));\n};\nDropdownItem.displayName = 'DropdownItem';\n//# sourceMappingURL=DropdownItem.js.map","import { __rest } from \"tslib\";\nimport * as React from 'react';\nimport { DropdownArrowContext } from './dropdownConstants';\nimport { InternalDropdownItem } from './InternalDropdownItem';\nimport { Divider, DividerVariant } from '../../../components/Divider';\nimport { useOUIAProps } from '../../../helpers';\nexport const DropdownSeparator = (_a) => {\n var { className = '', \n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n ref, // Types of Ref are different for React.FunctionComponent vs React.Component\n ouiaId, ouiaSafe } = _a, props = __rest(_a, [\"className\", \"ref\", \"ouiaId\", \"ouiaSafe\"]);\n const ouiaProps = useOUIAProps(DropdownSeparator.displayName, ouiaId, ouiaSafe);\n return (React.createElement(DropdownArrowContext.Consumer, null, (context) => (React.createElement(InternalDropdownItem, Object.assign({}, props, { context: context, component: React.createElement(Divider, { component: DividerVariant.div }), className: className, role: \"separator\" }, ouiaProps)))));\n};\nDropdownSeparator.displayName = 'DropdownSeparator';\n//# sourceMappingURL=DropdownSeparator.js.map","import { __rest } from \"tslib\";\nimport * as React from 'react';\nimport styles from '@patternfly/react-styles/css/components/Dropdown/dropdown.mjs';\nimport { DropdownContext } from './dropdownConstants';\nimport { css } from '@patternfly/react-styles';\nimport { KeyTypes } from '../../../helpers/constants';\nconst buttonVariantStyles = {\n default: '',\n primary: styles.modifiers.primary,\n secondary: styles.modifiers.secondary\n};\nclass Toggle extends React.Component {\n constructor() {\n super(...arguments);\n this.buttonRef = React.createRef();\n this.componentDidMount = () => {\n document.addEventListener('click', this.onDocClick);\n document.addEventListener('touchstart', this.onDocClick);\n document.addEventListener('keydown', this.onEscPress);\n };\n this.componentWillUnmount = () => {\n document.removeEventListener('click', this.onDocClick);\n document.removeEventListener('touchstart', this.onDocClick);\n document.removeEventListener('keydown', this.onEscPress);\n };\n this.onDocClick = (event) => {\n const { isOpen, parentRef, onToggle, getMenuRef } = this.props;\n const menuRef = getMenuRef && getMenuRef();\n const clickedOnToggle = parentRef && parentRef.current && parentRef.current.contains(event.target);\n const clickedWithinMenu = menuRef && menuRef.contains && menuRef.contains(event.target);\n if (isOpen && !(clickedOnToggle || clickedWithinMenu)) {\n onToggle === null || onToggle === void 0 ? void 0 : onToggle(event, false);\n }\n };\n this.onEscPress = (event) => {\n var _a, _b, _c;\n const { parentRef, getMenuRef } = this.props;\n const menuRef = getMenuRef && getMenuRef();\n const escFromToggle = parentRef && parentRef.current && parentRef.current.contains(event.target);\n const escFromWithinMenu = menuRef && menuRef.contains && menuRef.contains(event.target);\n if (this.props.isOpen &&\n (event.key === KeyTypes.Escape || event.key === 'Tab') &&\n (escFromToggle || escFromWithinMenu)) {\n (_b = (_a = this.props).onToggle) === null || _b === void 0 ? void 0 : _b.call(_a, event, false);\n (_c = this.buttonRef.current) === null || _c === void 0 ? void 0 : _c.focus();\n }\n };\n this.onKeyDown = (event) => {\n var _a, _b, _c, _d, _e, _f;\n if (event.key === 'Tab' && !this.props.isOpen) {\n return;\n }\n if ((event.key === 'Tab' || event.key === 'Enter' || event.key === ' ') && this.props.isOpen) {\n if (!this.props.bubbleEvent) {\n event.stopPropagation();\n }\n event.preventDefault();\n (_b = (_a = this.props).onToggle) === null || _b === void 0 ? void 0 : _b.call(_a, event, !this.props.isOpen);\n }\n else if ((event.key === 'Enter' || event.key === ' ') && !this.props.isOpen) {\n if (!this.props.bubbleEvent) {\n event.stopPropagation();\n }\n event.preventDefault();\n (_d = (_c = this.props).onToggle) === null || _d === void 0 ? void 0 : _d.call(_c, event, !this.props.isOpen);\n (_f = (_e = this.props).onEnter) === null || _f === void 0 ? void 0 : _f.call(_e);\n }\n };\n }\n render() {\n const _a = this.props, { className, children, isOpen, isDisabled, isPlain, isText, isSplitButton, toggleVariant, onToggle, 'aria-haspopup': ariaHasPopup, \n /* eslint-disable @typescript-eslint/no-unused-vars */\n isActive, bubbleEvent, onEnter, parentRef, getMenuRef, \n /* eslint-enable @typescript-eslint/no-unused-vars */\n id, type } = _a, props = __rest(_a, [\"className\", \"children\", \"isOpen\", \"isDisabled\", \"isPlain\", \"isText\", \"isSplitButton\", \"toggleVariant\", \"onToggle\", 'aria-haspopup', \"isActive\", \"bubbleEvent\", \"onEnter\", \"parentRef\", \"getMenuRef\", \"id\", \"type\"]);\n return (React.createElement(DropdownContext.Consumer, null, ({ toggleClass }) => (React.createElement(\"button\", Object.assign({}, props, { id: id, ref: this.buttonRef, className: css(isSplitButton ? styles.dropdownToggleButton : toggleClass || styles.dropdownToggle, isActive && styles.modifiers.active, isPlain && styles.modifiers.plain, isText && styles.modifiers.text, toggleVariant && buttonVariantStyles[toggleVariant], className), type: type || 'button', onClick: (event) => onToggle === null || onToggle === void 0 ? void 0 : onToggle(event, !isOpen), \"aria-expanded\": isOpen, \"aria-haspopup\": ariaHasPopup, onKeyDown: (event) => this.onKeyDown(event), disabled: isDisabled }), children))));\n }\n}\nToggle.displayName = 'Toggle';\nToggle.defaultProps = {\n className: '',\n isOpen: false,\n isActive: false,\n isDisabled: false,\n isPlain: false,\n isText: false,\n isSplitButton: false,\n onToggle: () => { },\n onEnter: () => { },\n bubbleEvent: false\n};\nexport { Toggle };\n//# sourceMappingURL=Toggle.js.map","import { createIcon } from '../createIcon';\n\nexport const EllipsisVIconConfig = {\n name: 'EllipsisVIcon',\n height: 512,\n width: 192,\n svgPath: 'M96 184c39.8 0 72 32.2 72 72s-32.2 72-72 72-72-32.2-72-72 32.2-72 72-72zM24 80c0 39.8 32.2 72 72 72s72-32.2 72-72S135.8 8 96 8 24 40.2 24 80zm0 352c0 39.8 32.2 72 72 72s72-32.2 72-72-32.2-72-72-72-72 32.2-72 72z',\n yOffset: 0,\n xOffset: 0,\n};\n\nexport const EllipsisVIcon = createIcon(EllipsisVIconConfig);\n\nexport default EllipsisVIcon;","import { __rest } from \"tslib\";\nimport * as React from 'react';\nimport EllipsisVIcon from '@patternfly/react-icons/dist/esm/icons/ellipsis-v-icon';\nimport { Toggle } from './Toggle';\nexport const KebabToggle = (_a) => {\n var { id = '', \n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n children = null, className = '', isOpen = false, 'aria-label': ariaLabel = 'Actions', parentRef = null, getMenuRef = null, isActive = false, isPlain = false, isDisabled = false, bubbleEvent = false, onToggle = () => undefined, \n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n ref } = _a, // Types of Ref are different for React.FunctionComponent vs React.Component\n props = __rest(_a, [\"id\", \"children\", \"className\", \"isOpen\", 'aria-label', \"parentRef\", \"getMenuRef\", \"isActive\", \"isPlain\", \"isDisabled\", \"bubbleEvent\", \"onToggle\", \"ref\"]);\n return (React.createElement(Toggle, Object.assign({ id: id, className: className, isOpen: isOpen, \"aria-label\": ariaLabel, parentRef: parentRef, getMenuRef: getMenuRef, isActive: isActive, isPlain: isPlain, isDisabled: isDisabled, onToggle: onToggle, bubbleEvent: bubbleEvent }, props),\n React.createElement(EllipsisVIcon, null)));\n};\nKebabToggle.displayName = 'KebabToggle';\n//# sourceMappingURL=KebabToggle.js.map","import { __rest } from \"tslib\";\nimport * as React from 'react';\nimport CaretDownIcon from '@patternfly/react-icons/dist/esm/icons/caret-down-icon';\nimport { Toggle } from './Toggle';\nimport styles from '@patternfly/react-styles/css/components/Dropdown/dropdown.mjs';\nimport { DropdownContext } from './dropdownConstants';\nimport { css } from '@patternfly/react-styles';\nimport { useOUIAProps } from '../../../helpers';\nexport const DropdownToggle = (_a) => {\n var { id = '', children = null, className = '', isOpen = false, parentRef = null, getMenuRef = null, isDisabled = false, isPlain = false, isText = false, toggleVariant = 'default', \n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n isActive = false, \n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n onToggle = (_evt, _isOpen) => undefined, icon = null, toggleIndicator: ToggleIndicator = CaretDownIcon, splitButtonItems, splitButtonVariant = 'checkbox', 'aria-haspopup': ariaHasPopup, ouiaId, ouiaSafe, \n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n ref } = _a, // Types of Ref are different for React.FunctionComponent vs React.Component\n props = __rest(_a, [\"id\", \"children\", \"className\", \"isOpen\", \"parentRef\", \"getMenuRef\", \"isDisabled\", \"isPlain\", \"isText\", \"toggleVariant\", \"isActive\", \"onToggle\", \"icon\", \"toggleIndicator\", \"splitButtonItems\", \"splitButtonVariant\", 'aria-haspopup', \"ouiaId\", \"ouiaSafe\", \"ref\"]);\n const ouiaProps = useOUIAProps(DropdownToggle.displayName, ouiaId, ouiaSafe);\n const toggle = (React.createElement(DropdownContext.Consumer, null, ({ toggleTextClass, toggleIndicatorClass, toggleIconClass }) => (React.createElement(Toggle, Object.assign({}, props, { id: id, className: className, isOpen: isOpen, parentRef: parentRef, getMenuRef: getMenuRef, isActive: isActive, isDisabled: isDisabled, isPlain: isPlain, isText: isText, toggleVariant: toggleVariant, onToggle: onToggle, \"aria-haspopup\": ariaHasPopup }, ouiaProps, (splitButtonItems && { isSplitButton: true, 'aria-label': props['aria-label'] || 'Select' })),\n icon && React.createElement(\"span\", { className: css(toggleIconClass) }, icon),\n children && React.createElement(\"span\", { className: ToggleIndicator && css(toggleTextClass) }, children),\n ToggleIndicator && (React.createElement(\"span\", { className: css(!splitButtonItems && toggleIndicatorClass) },\n React.createElement(ToggleIndicator, null)))))));\n if (splitButtonItems) {\n return (React.createElement(\"div\", { className: css(styles.dropdownToggle, styles.modifiers.splitButton, splitButtonVariant === 'action' && styles.modifiers.action, toggleVariant === 'primary' && splitButtonVariant === 'action' && styles.modifiers.primary, toggleVariant === 'secondary' && splitButtonVariant === 'action' && styles.modifiers.secondary, isDisabled && styles.modifiers.disabled) },\n splitButtonItems,\n toggle));\n }\n return toggle;\n};\nDropdownToggle.displayName = 'DropdownToggle';\n//# sourceMappingURL=DropdownToggle.js.map","import { __rest } from \"tslib\";\nimport * as React from 'react';\nimport { DropdownSeparator } from '../Dropdown/DropdownSeparator';\nexport const ApplicationLauncherSeparator = (_a) => {\n var { \n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n children } = _a, props = __rest(_a, [\"children\"]);\n return React.createElement(DropdownSeparator, Object.assign({}, props));\n};\nApplicationLauncherSeparator.displayName = 'ApplicationLauncherSeparator';\n//# sourceMappingURL=ApplicationLauncherSeparator.js.map","import * as React from 'react';\nimport { ApplicationLauncherSeparator } from '../deprecated/components/ApplicationLauncher/ApplicationLauncherSeparator';\nimport { Divider } from '../components/Divider/Divider';\n/**\n * This function is a helper for creating an array of renderable favorite items for the Application launcher or Select\n *\n * @param {object} items The items rendered in Select or Application aLauncher\n * @param {boolean} isGrouped Flag indicating if items are grouped\n * @param {any[]} favorites Array of ids of favorited items\n * @param {boolean} isEnterTriggersArrowDown Flag indicating if we should add isEnterTriggersArrowDown to favorited item\n */\nexport const createRenderableFavorites = (items, isGrouped, favorites, isEnterTriggersArrowDown) => {\n if (isGrouped) {\n const favoriteItems = [];\n items.forEach((group) => {\n if (favorites.length > 0) {\n return (group.props.children &&\n group.props.children\n .filter((item) => favorites.includes(item.props.id))\n .map((item) => {\n if (isEnterTriggersArrowDown) {\n return favoriteItems.push(React.cloneElement(item, {\n isFavorite: true,\n enterTriggersArrowDown: isEnterTriggersArrowDown,\n id: `favorite-${item.props.id}`\n }));\n }\n else {\n return favoriteItems.push(React.cloneElement(item, { isFavorite: true, id: `favorite-${item.props.id}` }));\n }\n }));\n }\n });\n return favoriteItems;\n }\n return items\n .filter((item) => favorites.includes(item.props.id))\n .map((item) => React.cloneElement(item, { isFavorite: true, enterTriggersArrowDown: isEnterTriggersArrowDown }));\n};\n/**\n * This function is a helper for extending the array of renderable favorite with the select/application launcher items to render in the Application launcher or Select\n *\n * @param {object} items The items rendered in Select or Application aLauncher\n * @param {boolean} isGrouped Flag indicating if items are grouped\n * @param {any[]} favorites Array of ids of favorited items\n */\nexport const extendItemsWithFavorite = (items, isGrouped, favorites) => {\n if (isGrouped) {\n return items.map((group) => React.cloneElement(group, {\n children: React.Children.map(group.props.children, (item) => {\n if (item.type === ApplicationLauncherSeparator || item.type === Divider) {\n return item;\n }\n return React.cloneElement(item, {\n isFavorite: favorites.some((favoriteId) => favoriteId === item.props.id || `favorite-${favoriteId}` === item.props.id)\n });\n })\n }));\n }\n return items.map((item) => React.cloneElement(item, {\n isFavorite: favorites.some((favoriteId) => favoriteId === item.props.id)\n }));\n};\n//# sourceMappingURL=favorites.js.map","import { createIcon } from '../createIcon';\n\nexport const BarsIconConfig = {\n name: 'BarsIcon',\n height: 512,\n width: 448,\n svgPath: 'M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z',\n yOffset: 0,\n xOffset: 0,\n};\n\nexport const BarsIcon = createIcon(BarsIconConfig);\n\nexport default BarsIcon;","import { __rest } from \"tslib\";\n/* eslint-disable no-console */\nimport * as React from 'react';\nimport styles from '@patternfly/react-styles/css/components/Page/page.mjs';\nimport { css } from '@patternfly/react-styles';\nimport BarsIcon from '@patternfly/react-icons/dist/esm/icons/bars-icon';\nimport { Button, ButtonVariant } from '../../../components/Button';\nimport { PageContextConsumer } from '../../../components/Page/PageContext';\nexport const PageHeader = (_a) => {\n var { className = '', logo = null, logoProps = null, logoComponent, headerTools = null, topNav = null, isNavOpen = true, role = undefined, showNavToggle = false, navToggleId = 'nav-toggle', onNavToggle = (_event) => undefined, 'aria-label': ariaLabel = 'Global navigation', 'aria-controls': ariaControls = null } = _a, props = __rest(_a, [\"className\", \"logo\", \"logoProps\", \"logoComponent\", \"headerTools\", \"topNav\", \"isNavOpen\", \"role\", \"showNavToggle\", \"navToggleId\", \"onNavToggle\", 'aria-label', 'aria-controls']);\n let LogoComponent = logoComponent;\n if (!logoComponent) {\n if ((logoProps === null || logoProps === void 0 ? void 0 : logoProps.href) !== undefined) {\n LogoComponent = 'a';\n }\n else {\n LogoComponent = 'span';\n }\n }\n return (React.createElement(PageContextConsumer, null, ({ isManagedSidebar, onSidebarToggle: managedOnSidebarToggle, isSidebarOpen: managedIsSidebarOpen }) => {\n const navToggle = isManagedSidebar ? managedOnSidebarToggle : onNavToggle;\n const navOpen = isManagedSidebar ? managedIsSidebarOpen : isNavOpen;\n return (React.createElement(\"header\", Object.assign({ role: role, className: css(styles.pageHeader, className) }, props),\n (showNavToggle || logo) && (React.createElement(\"div\", { className: css(styles.pageHeaderBrand) },\n showNavToggle && (React.createElement(\"div\", { className: css(styles.pageHeaderBrandToggle) },\n React.createElement(Button, { id: navToggleId, onClick: navToggle, \"aria-label\": ariaLabel, \"aria-controls\": ariaControls, \"aria-expanded\": navOpen ? 'true' : 'false', variant: ButtonVariant.plain },\n React.createElement(BarsIcon, null)))),\n logo && (React.createElement(LogoComponent, Object.assign({ className: css(styles.pageHeaderBrandLink) }, logoProps), logo)))),\n topNav && React.createElement(\"div\", { className: css(styles.pageHeaderNav) }, topNav),\n headerTools));\n }));\n};\nPageHeader.displayName = 'PageHeader';\n//# sourceMappingURL=PageHeader.js.map","import { __rest } from \"tslib\";\nimport * as React from 'react';\nimport styles from '@patternfly/react-styles/css/components/Page/page.mjs';\nimport { css } from '@patternfly/react-styles';\nexport const PageHeaderTools = (_a) => {\n var { children, className } = _a, props = __rest(_a, [\"children\", \"className\"]);\n return (React.createElement(\"div\", Object.assign({ className: css(styles.pageHeaderTools, className) }, props), children));\n};\nPageHeaderTools.displayName = 'PageHeaderTools';\n//# sourceMappingURL=PageHeaderTools.js.map","import { __rest } from \"tslib\";\nimport * as React from 'react';\nimport styles from '@patternfly/react-styles/css/components/Page/page.mjs';\nimport { css } from '@patternfly/react-styles';\nimport { formatBreakpointMods } from '../../../helpers/util';\nimport { PageContext } from '../../../components/Page/PageContext';\nexport const PageHeaderToolsGroup = (_a) => {\n var { children, className, visibility } = _a, props = __rest(_a, [\"children\", \"className\", \"visibility\"]);\n const { width, getBreakpoint } = React.useContext(PageContext);\n return (React.createElement(\"div\", Object.assign({ className: css(styles.pageHeaderToolsGroup, formatBreakpointMods(visibility, styles, '', getBreakpoint(width)), className) }, props), children));\n};\nPageHeaderToolsGroup.displayName = 'PageHeaderToolsGroup';\n//# sourceMappingURL=PageHeaderToolsGroup.js.map","import { __rest } from \"tslib\";\nimport * as React from 'react';\nimport styles from '@patternfly/react-styles/css/components/Page/page.mjs';\nimport { css } from '@patternfly/react-styles';\nimport { formatBreakpointMods } from '../../../helpers/util';\nimport { PageContext } from '../../../components/Page/PageContext';\nexport const PageHeaderToolsItem = (_a) => {\n var { children, id, className, visibility, isSelected } = _a, props = __rest(_a, [\"children\", \"id\", \"className\", \"visibility\", \"isSelected\"]);\n const { width, getBreakpoint } = React.useContext(PageContext);\n return (React.createElement(\"div\", Object.assign({ className: css(styles.pageHeaderToolsItem, isSelected && styles.modifiers.selected, formatBreakpointMods(visibility, styles, '', getBreakpoint(width)), className), id: id }, props), children));\n};\nPageHeaderToolsItem.displayName = 'PageHeaderToolsItem';\n//# sourceMappingURL=PageHeaderToolsItem.js.map","import './select.css';\nexport default {\n \"check\": \"pf-v5-c-check\",\n \"checkLabel\": \"pf-v5-c-check__label\",\n \"chipGroup\": \"pf-v5-c-chip-group\",\n \"divider\": \"pf-v5-c-divider\",\n \"formControl\": \"pf-v5-c-form-control\",\n \"modifiers\": {\n \"invalid\": \"pf-m-invalid\",\n \"success\": \"pf-m-success\",\n \"warning\": \"pf-m-warning\",\n \"disabled\": \"pf-m-disabled\",\n \"active\": \"pf-m-active\",\n \"expanded\": \"pf-m-expanded\",\n \"plain\": \"pf-m-plain\",\n \"typeahead\": \"pf-m-typeahead\",\n \"placeholder\": \"pf-m-placeholder\",\n \"top\": \"pf-m-top\",\n \"alignRight\": \"pf-m-align-right\",\n \"static\": \"pf-m-static\",\n \"favorite\": \"pf-m-favorite\",\n \"favoriteAction\": \"pf-m-favorite-action\",\n \"focus\": \"pf-m-focus\",\n \"link\": \"pf-m-link\",\n \"action\": \"pf-m-action\",\n \"selected\": \"pf-m-selected\",\n \"description\": \"pf-m-description\",\n \"load\": \"pf-m-load\",\n \"loading\": \"pf-m-loading\"\n },\n \"select\": \"pf-v5-c-select\",\n \"selectListItem\": \"pf-v5-c-select__list-item\",\n \"selectMenu\": \"pf-v5-c-select__menu\",\n \"selectMenuFieldset\": \"pf-v5-c-select__menu-fieldset\",\n \"selectMenuFooter\": \"pf-v5-c-select__menu-footer\",\n \"selectMenuGroup\": \"pf-v5-c-select__menu-group\",\n \"selectMenuGroupTitle\": \"pf-v5-c-select__menu-group-title\",\n \"selectMenuItem\": \"pf-v5-c-select__menu-item\",\n \"selectMenuItemActionIcon\": \"pf-v5-c-select__menu-item-action-icon\",\n \"selectMenuItemCount\": \"pf-v5-c-select__menu-item-count\",\n \"selectMenuItemDescription\": \"pf-v5-c-select__menu-item-description\",\n \"selectMenuItemIcon\": \"pf-v5-c-select__menu-item-icon\",\n \"selectMenuItemMain\": \"pf-v5-c-select__menu-item-main\",\n \"selectMenuItemMatch\": \"pf-v5-c-select__menu-item--match\",\n \"selectMenuItemRow\": \"pf-v5-c-select__menu-item-row\",\n \"selectMenuItemText\": \"pf-v5-c-select__menu-item-text\",\n \"selectMenuSearch\": \"pf-v5-c-select__menu-search\",\n \"selectMenuWrapper\": \"pf-v5-c-select__menu-wrapper\",\n \"selectToggle\": \"pf-v5-c-select__toggle\",\n \"selectToggleArrow\": \"pf-v5-c-select__toggle-arrow\",\n \"selectToggleBadge\": \"pf-v5-c-select__toggle-badge\",\n \"selectToggleButton\": \"pf-v5-c-select__toggle-button\",\n \"selectToggleClear\": \"pf-v5-c-select__toggle-clear\",\n \"selectToggleIcon\": \"pf-v5-c-select__toggle-icon\",\n \"selectToggleStatusIcon\": \"pf-v5-c-select__toggle-status-icon\",\n \"selectToggleText\": \"pf-v5-c-select__toggle-text\",\n \"selectToggleTypeahead\": \"pf-v5-c-select__toggle-typeahead\",\n \"selectToggleWrapper\": \"pf-v5-c-select__toggle-wrapper\",\n \"themeDark\": \"pf-v5-theme-dark\"\n};","import * as React from 'react';\nexport const SelectContext = React.createContext(null);\nexport const SelectProvider = SelectContext.Provider;\nexport const SelectConsumer = SelectContext.Consumer;\nexport var SelectVariant;\n(function (SelectVariant) {\n SelectVariant[\"single\"] = \"single\";\n SelectVariant[\"checkbox\"] = \"checkbox\";\n SelectVariant[\"typeahead\"] = \"typeahead\";\n SelectVariant[\"typeaheadMulti\"] = \"typeaheadmulti\";\n})(SelectVariant || (SelectVariant = {}));\nexport var SelectPosition;\n(function (SelectPosition) {\n SelectPosition[\"right\"] = \"right\";\n SelectPosition[\"left\"] = \"left\";\n})(SelectPosition || (SelectPosition = {}));\nexport var SelectDirection;\n(function (SelectDirection) {\n SelectDirection[\"up\"] = \"up\";\n SelectDirection[\"down\"] = \"down\";\n})(SelectDirection || (SelectDirection = {}));\nexport const SelectFooterTabbableItems = 'input, button, select, textarea, a[href]';\n//# sourceMappingURL=selectConstants.js.map","import { __rest } from \"tslib\";\nimport * as React from 'react';\nimport styles from '@patternfly/react-styles/css/components/Select/select.mjs';\nimport checkStyles from '@patternfly/react-styles/css/components/Check/check.mjs';\nimport { css } from '@patternfly/react-styles';\nimport CheckIcon from '@patternfly/react-icons/dist/esm/icons/check-icon';\nimport { SelectConsumer, SelectVariant } from './selectConstants';\nimport StarIcon from '@patternfly/react-icons/dist/esm/icons/star-icon';\nimport { getUniqueId } from '../../../helpers/util';\nimport { KeyTypes } from '../../../helpers/constants';\nclass SelectOption extends React.Component {\n constructor() {\n super(...arguments);\n this.ref = React.createRef();\n this.liRef = React.createRef();\n this.favoriteRef = React.createRef();\n this.onKeyDown = (event, innerIndex, onEnter, isCheckbox) => {\n const { index, keyHandler, isLastOptionBeforeFooter } = this.props;\n let isLastItemBeforeFooter = false;\n if (isLastOptionBeforeFooter !== undefined) {\n isLastItemBeforeFooter = isLastOptionBeforeFooter(index);\n }\n if (event.key === KeyTypes.Tab) {\n // More modal-like experience for checkboxes\n if (isCheckbox && !isLastItemBeforeFooter) {\n if (event.shiftKey) {\n keyHandler(index, innerIndex, 'up');\n }\n else {\n keyHandler(index, innerIndex, 'down');\n }\n event.stopPropagation();\n }\n else {\n if (event.shiftKey) {\n keyHandler(index, innerIndex, 'up');\n }\n else {\n keyHandler(index, innerIndex, 'tab');\n }\n }\n }\n event.preventDefault();\n if (event.key === KeyTypes.ArrowUp) {\n keyHandler(index, innerIndex, 'up');\n }\n else if (event.key === KeyTypes.ArrowDown) {\n keyHandler(index, innerIndex, 'down');\n }\n else if (event.key === KeyTypes.ArrowLeft) {\n keyHandler(index, innerIndex, 'left');\n }\n else if (event.key === KeyTypes.ArrowRight) {\n keyHandler(index, innerIndex, 'right');\n }\n else if (event.key === KeyTypes.Enter) {\n if (onEnter !== undefined) {\n onEnter();\n }\n else {\n this.ref.current.click();\n }\n }\n };\n }\n componentDidMount() {\n this.props.sendRef(this.props.isDisabled ? null : this.ref.current, this.props.isDisabled ? null : this.favoriteRef.current, this.props.isDisabled ? null : this.liRef.current, this.props.index);\n }\n componentDidUpdate() {\n this.props.sendRef(this.props.isDisabled ? null : this.ref.current, this.props.isDisabled ? null : this.favoriteRef.current, this.props.isDisabled ? null : this.liRef.current, this.props.index);\n }\n render() {\n /* eslint-disable @typescript-eslint/no-unused-vars */\n const _a = this.props, { children, className, id, description, itemCount, value, onClick, isDisabled, isPlaceholder, isNoResultsOption, isSelected, isChecked, isFocused, sendRef, keyHandler, index, component, inputId, isFavorite, ariaIsFavoriteLabel = 'starred', ariaIsNotFavoriteLabel = 'not starred', isLoad, isLoading, setViewMoreNextIndex, \n // eslint-disable-next-line no-console\n isLastOptionBeforeFooter, isGrouped = false } = _a, props = __rest(_a, [\"children\", \"className\", \"id\", \"description\", \"itemCount\", \"value\", \"onClick\", \"isDisabled\", \"isPlaceholder\", \"isNoResultsOption\", \"isSelected\", \"isChecked\", \"isFocused\", \"sendRef\", \"keyHandler\", \"index\", \"component\", \"inputId\", \"isFavorite\", \"ariaIsFavoriteLabel\", \"ariaIsNotFavoriteLabel\", \"isLoad\", \"isLoading\", \"setViewMoreNextIndex\", \"isLastOptionBeforeFooter\", \"isGrouped\"]);\n /* eslint-enable @typescript-eslint/no-unused-vars */\n const Component = component;\n if (!id && isFavorite !== null) {\n // eslint-disable-next-line no-console\n console.error('Please provide an id to use the favorites feature.');\n }\n const generatedId = id || getUniqueId('select-option');\n const favoriteButton = (onFavorite) => (React.createElement(\"button\", { className: css(styles.selectMenuItem, styles.modifiers.action, styles.modifiers.favoriteAction), \"aria-label\": isFavorite ? ariaIsFavoriteLabel : ariaIsNotFavoriteLabel, onClick: () => {\n onFavorite(generatedId.replace('favorite-', ''), isFavorite);\n }, onKeyDown: (event) => {\n this.onKeyDown(event, 1, () => onFavorite(generatedId.replace('favorite-', ''), isFavorite));\n }, ref: this.favoriteRef },\n React.createElement(\"span\", { className: css(styles.selectMenuItemActionIcon) },\n React.createElement(StarIcon, null))));\n const itemDisplay = itemCount ? (React.createElement(\"span\", { className: css(styles.selectMenuItemRow) },\n React.createElement(\"span\", { className: css(styles.selectMenuItemText) }, children || (value && value.toString && value.toString())),\n React.createElement(\"span\", { className: css(styles.selectMenuItemCount) }, itemCount))) : (children || value.toString());\n const onViewMoreClick = (event) => {\n // Set the index for the next item to focus after view more clicked, then call view more callback\n setViewMoreNextIndex();\n onClick(event);\n };\n const renderOption = (onSelect, onClose, variant, inputIdPrefix, onFavorite, shouldResetOnSelect) => {\n if (variant !== SelectVariant.checkbox && isLoading && isGrouped) {\n return (React.createElement(\"div\", { role: \"presentation\", className: css(styles.selectListItem, isLoading && styles.modifiers.loading, className) }, children));\n }\n else if (variant !== SelectVariant.checkbox && isLoad && isGrouped) {\n return (React.createElement(\"div\", null,\n React.createElement(\"button\", Object.assign({}, props, { role: \"presentation\", className: css(styles.selectMenuItem, styles.modifiers.load, className), onClick: (event) => {\n onViewMoreClick(event);\n event.stopPropagation();\n }, ref: this.ref, type: \"button\" }), children || value.toString())));\n }\n else if (variant !== SelectVariant.checkbox) {\n return (React.createElement(\"li\", { id: generatedId, role: \"presentation\", className: css(isLoading && styles.selectListItem, !isLoading && styles.selectMenuWrapper, isFavorite && styles.modifiers.favorite, isFocused && styles.modifiers.focus, isLoading && styles.modifiers.loading), ref: this.liRef },\n isLoading && children,\n isLoad && !isGrouped && (React.createElement(\"button\", Object.assign({}, props, { className: css(styles.selectMenuItem, styles.modifiers.load, className), onClick: (event) => {\n onViewMoreClick(event);\n event.stopPropagation();\n }, ref: this.ref, onKeyDown: (event) => {\n this.onKeyDown(event, 0);\n }, type: \"button\" }), itemDisplay)),\n !isLoading && !isLoad && (React.createElement(React.Fragment, null,\n React.createElement(Component, Object.assign({}, props, { className: css(styles.selectMenuItem, isLoad && styles.modifiers.load, isSelected && styles.modifiers.selected, isDisabled && styles.modifiers.disabled, description && styles.modifiers.description, isFavorite !== null && styles.modifiers.link, className), onClick: (event) => {\n if (!isDisabled) {\n onClick(event);\n onSelect(event, value, isPlaceholder);\n shouldResetOnSelect && onClose();\n }\n }, role: \"option\", \"aria-selected\": isSelected || null, ref: this.ref, onKeyDown: (event) => {\n this.onKeyDown(event, 0);\n }, type: \"button\" }),\n description && (React.createElement(React.Fragment, null,\n React.createElement(\"span\", { className: css(styles.selectMenuItemMain) },\n itemDisplay,\n isSelected && (React.createElement(\"span\", { className: css(styles.selectMenuItemIcon) },\n React.createElement(CheckIcon, { \"aria-hidden\": true })))),\n React.createElement(\"span\", { className: css(styles.selectMenuItemDescription) }, description))),\n !description && (React.createElement(React.Fragment, null,\n itemDisplay,\n isSelected && (React.createElement(\"span\", { className: css(styles.selectMenuItemIcon) },\n React.createElement(CheckIcon, { \"aria-hidden\": true })))))),\n isFavorite !== null && id && favoriteButton(onFavorite)))));\n }\n else if (variant === SelectVariant.checkbox && isLoad) {\n return (React.createElement(\"button\", { className: css(styles.selectMenuItem, styles.modifiers.load, isFocused && styles.modifiers.focus, className), onKeyDown: (event) => {\n this.onKeyDown(event, 0, undefined, true);\n }, onClick: (event) => {\n onViewMoreClick(event);\n event.stopPropagation();\n }, ref: this.ref }, children || (value && value.toString && value.toString())));\n }\n else if (variant === SelectVariant.checkbox && isLoading) {\n return (React.createElement(\"div\", { className: css(styles.selectListItem, isLoading && styles.modifiers.loading, className) }, children));\n }\n else if (variant === SelectVariant.checkbox && !isNoResultsOption && !isLoading && !isLoad) {\n return (React.createElement(\"label\", Object.assign({}, props, { className: css(checkStyles.check, styles.selectMenuItem, isDisabled && styles.modifiers.disabled, description && styles.modifiers.description, className), onKeyDown: (event) => {\n this.onKeyDown(event, 0, undefined, true);\n } }),\n React.createElement(\"input\", { id: inputId || `${inputIdPrefix}-${value.toString()}`, className: css(checkStyles.checkInput), type: \"checkbox\", onChange: (event) => {\n if (!isDisabled) {\n onClick(event);\n onSelect(event, value);\n }\n }, ref: this.ref, checked: isChecked || false, disabled: isDisabled }),\n React.createElement(\"span\", { className: css(checkStyles.checkLabel, isDisabled && styles.modifiers.disabled) }, itemDisplay),\n description && React.createElement(\"div\", { className: css(checkStyles.checkDescription) }, description)));\n }\n else if (variant === SelectVariant.checkbox && isNoResultsOption && !isLoading && !isLoad) {\n return (React.createElement(\"div\", null,\n React.createElement(Component, Object.assign({}, props, { className: css(styles.selectMenuItem, isSelected && styles.modifiers.selected, isDisabled && styles.modifiers.disabled, className), role: \"option\", \"aria-selected\": isSelected || null, ref: this.ref, onKeyDown: (event) => {\n this.onKeyDown(event, 0, undefined, true);\n }, type: \"button\" }), itemDisplay)));\n }\n };\n return (React.createElement(SelectConsumer, null, ({ onSelect, onClose, variant, inputIdPrefix, onFavorite, shouldResetOnSelect }) => (React.createElement(React.Fragment, null, renderOption(onSelect, onClose, variant, inputIdPrefix, onFavorite, shouldResetOnSelect)))));\n }\n}\nSelectOption.displayName = 'SelectOption';\nSelectOption.defaultProps = {\n className: '',\n value: '',\n index: 0,\n isDisabled: false,\n isPlaceholder: false,\n isSelected: false,\n isChecked: false,\n isNoResultsOption: false,\n component: 'button',\n onClick: () => { },\n sendRef: () => { },\n keyHandler: () => { },\n inputId: '',\n isFavorite: null,\n isLoad: false,\n isLoading: false,\n setViewMoreNextIndex: () => { },\n isLastOptionBeforeFooter: () => false\n};\nexport { SelectOption };\n//# sourceMappingURL=SelectOption.js.map","import { __rest } from \"tslib\";\nimport * as React from 'react';\nimport styles from '@patternfly/react-styles/css/components/Select/select.mjs';\nimport { css } from '@patternfly/react-styles';\nimport { SelectConsumer, SelectVariant } from './selectConstants';\nexport const SelectGroup = (_a) => {\n var { children = [], className = '', label = '', titleId = '' } = _a, props = __rest(_a, [\"children\", \"className\", \"label\", \"titleId\"]);\n return (React.createElement(SelectConsumer, null, ({ variant }) => (React.createElement(\"div\", Object.assign({}, props, { className: css(styles.selectMenuGroup, className) }),\n React.createElement(\"div\", { className: css(styles.selectMenuGroupTitle), id: titleId, \"aria-hidden\": true }, label),\n variant === SelectVariant.checkbox ? children : React.createElement(\"ul\", { role: \"listbox\" }, children)))));\n};\nSelectGroup.displayName = 'SelectGroup';\n//# sourceMappingURL=SelectGroup.js.map","import { __rest } from \"tslib\";\nimport * as React from 'react';\nimport styles from '@patternfly/react-styles/css/components/Select/select.mjs';\nimport formStyles from '@patternfly/react-styles/css/components/Form/form.mjs';\nimport { css } from '@patternfly/react-styles';\nimport { SelectOption } from './SelectOption';\nimport { SelectConsumer, SelectPosition, SelectVariant } from './selectConstants';\nimport { SelectGroup } from './SelectGroup';\nimport { Divider } from '../../../components/Divider/Divider';\nclass SelectMenuWithRef extends React.Component {\n extendChildren(randomId) {\n const { children, hasInlineFilter, isGrouped } = this.props;\n const childrenArray = children;\n let index = hasInlineFilter ? 1 : 0;\n if (isGrouped) {\n return React.Children.map(childrenArray, (group) => {\n if (group.type === SelectGroup) {\n return React.cloneElement(group, {\n titleId: group.props.label && group.props.label.replace(/\\W/g, '-'),\n children: React.Children.map(group.props.children, (option) => this.cloneOption(option, index++, randomId))\n });\n }\n else {\n return this.cloneOption(group, index++, randomId);\n }\n });\n }\n return React.Children.map(childrenArray, (child) => this.cloneOption(child, index++, randomId));\n }\n cloneOption(child, index, randomId) {\n const { selected, sendRef, keyHandler } = this.props;\n const isSelected = this.checkForValue(child.props.value, selected);\n if (child.type === Divider) {\n return child;\n }\n return React.cloneElement(child, {\n inputId: `${randomId}-${index}`,\n isSelected,\n sendRef,\n keyHandler,\n index\n });\n }\n checkForValue(valueToCheck, options) {\n if (!options || !valueToCheck) {\n return false;\n }\n const isSelectOptionObject = typeof valueToCheck !== 'string' &&\n valueToCheck.toString &&\n valueToCheck.compareTo;\n if (Array.isArray(options)) {\n if (isSelectOptionObject) {\n return options.some((option) => option.compareTo(valueToCheck));\n }\n else {\n return options.includes(valueToCheck);\n }\n }\n else {\n if (isSelectOptionObject) {\n return options.compareTo(valueToCheck);\n }\n else {\n return options === valueToCheck;\n }\n }\n }\n extendCheckboxChildren(children) {\n const { isGrouped, checked, sendRef, keyHandler, hasInlineFilter, isLastOptionBeforeFooter } = this.props;\n let index = hasInlineFilter ? 1 : 0;\n if (isGrouped) {\n return React.Children.map(children, (group) => {\n if (group.type === Divider) {\n return group;\n }\n else if (group.type === SelectOption) {\n return React.cloneElement(group, {\n isChecked: this.checkForValue(group.props.value, checked),\n sendRef,\n keyHandler,\n index: index++,\n isLastOptionBeforeFooter\n });\n }\n return React.cloneElement(group, {\n titleId: group.props.label && group.props.label.replace(/\\W/g, '-'),\n children: group.props.children ? (React.createElement(\"fieldset\", { \"aria-labelledby\": group.props.label && group.props.label.replace(/\\W/g, '-'), className: css(styles.selectMenuFieldset) }, React.Children.map(group.props.children, (option) => option.type === Divider\n ? option\n : React.cloneElement(option, {\n isChecked: this.checkForValue(option.props.value, checked),\n sendRef,\n keyHandler,\n index: index++,\n isLastOptionBeforeFooter\n })))) : null\n });\n });\n }\n return React.Children.map(children, (child) => child.type === Divider\n ? child\n : React.cloneElement(child, {\n isChecked: this.checkForValue(child.props.value, checked),\n sendRef,\n keyHandler,\n index: index++,\n isLastOptionBeforeFooter\n }));\n }\n renderSelectMenu({ variant, inputIdPrefix }) {\n /* eslint-disable @typescript-eslint/no-unused-vars */\n const _a = this.props, { children, isCustomContent, className, isExpanded, openedOnEnter, selected, checked, isGrouped, position, sendRef, keyHandler, maxHeight, noResultsFoundText, createText, 'aria-label': ariaLabel, 'aria-labelledby': ariaLabelledBy, hasInlineFilter, innerRef, footer, footerRef, isLastOptionBeforeFooter } = _a, props = __rest(_a, [\"children\", \"isCustomContent\", \"className\", \"isExpanded\", \"openedOnEnter\", \"selected\", \"checked\", \"isGrouped\", \"position\", \"sendRef\", \"keyHandler\", \"maxHeight\", \"noResultsFoundText\", \"createText\", 'aria-label', 'aria-labelledby', \"hasInlineFilter\", \"innerRef\", \"footer\", \"footerRef\", \"isLastOptionBeforeFooter\"]);\n /* eslint-enable @typescript-eslint/no-unused-vars */\n let Component = 'div';\n const variantProps = Object.assign({ ref: innerRef, className: css(!footer ? styles.selectMenu : `${styles.selectMenu}-list`, position === SelectPosition.right && styles.modifiers.alignRight, className) }, (maxHeight && { style: { maxHeight, overflow: 'auto' } }));\n const extendedChildren = () => variant === SelectVariant.checkbox\n ? this.extendCheckboxChildren(children)\n : this.extendChildren(inputIdPrefix);\n if (isCustomContent) {\n variantProps.children = children;\n }\n else if (hasInlineFilter) {\n if (React.Children.count(children) === 0) {\n variantProps.children = React.createElement(\"fieldset\", { className: css(styles.selectMenuFieldset) });\n }\n else {\n variantProps.children = (React.createElement(\"fieldset\", { \"aria-label\": ariaLabel, \"aria-labelledby\": (!ariaLabel && ariaLabelledBy) || null, className: css(formStyles.formFieldset) },\n children.shift(),\n extendedChildren()));\n }\n }\n else {\n variantProps.children = extendedChildren();\n if (!isGrouped) {\n Component = 'ul';\n variantProps.role = 'listbox';\n variantProps['aria-label'] = ariaLabel;\n variantProps['aria-labelledby'] = (!ariaLabel && ariaLabelledBy) || null;\n }\n }\n return (React.createElement(React.Fragment, null,\n React.createElement(Component, Object.assign({}, variantProps, props)),\n footer && (React.createElement(\"div\", { className: css(styles.selectMenuFooter), ref: footerRef }, footer))));\n }\n render() {\n return React.createElement(SelectConsumer, null, (context) => this.renderSelectMenu(context));\n }\n}\nSelectMenuWithRef.displayName = 'SelectMenu';\nSelectMenuWithRef.defaultProps = {\n className: '',\n isExpanded: false,\n isGrouped: false,\n openedOnEnter: false,\n selected: '',\n maxHeight: '',\n position: SelectPosition.left,\n sendRef: () => { },\n keyHandler: () => { },\n isCustomContent: false,\n hasInlineFilter: false,\n isLastOptionBeforeFooter: () => { }\n};\nexport const SelectMenu = React.forwardRef((props, ref) => (React.createElement(SelectMenuWithRef, Object.assign({ innerRef: ref }, props), props.children)));\n//# sourceMappingURL=SelectMenu.js.map","import { __rest } from \"tslib\";\nimport * as React from 'react';\nimport styles from '@patternfly/react-styles/css/components/Select/select.mjs';\nimport buttonStyles from '@patternfly/react-styles/css/components/Button/button.mjs';\nimport { css } from '@patternfly/react-styles';\nimport CaretDownIcon from '@patternfly/react-icons/dist/esm/icons/caret-down-icon';\nimport { SelectVariant, SelectFooterTabbableItems } from './selectConstants';\nimport { findTabbableElements } from '../../../helpers/util';\nimport { KeyTypes } from '../../../helpers/constants';\nclass SelectToggleBase extends React.Component {\n constructor(props) {\n super(props);\n this.onDocClick = (event) => {\n const { parentRef, menuRef, footerRef, isOpen, onToggle, onClose } = this.props;\n const clickedOnToggle = parentRef && parentRef.current && parentRef.current.contains(event.target);\n const clickedWithinMenu = menuRef && menuRef.current && menuRef.current.contains && menuRef.current.contains(event.target);\n const clickedWithinFooter = footerRef && footerRef.current && footerRef.current.contains && footerRef.current.contains(event.target);\n if (isOpen && !(clickedOnToggle || clickedWithinMenu || clickedWithinFooter)) {\n onToggle(event, false);\n onClose();\n }\n };\n this.handleGlobalKeys = (event) => {\n const { parentRef, menuRef, hasFooter, footerRef, isOpen, variant, onToggle, onClose, moveFocusToLastMenuItem } = this.props;\n const escFromToggle = parentRef && parentRef.current && parentRef.current.contains(event.target);\n const escFromWithinMenu = menuRef && menuRef.current && menuRef.current.contains && menuRef.current.contains(event.target);\n if (isOpen &&\n event.key === KeyTypes.Tab &&\n (variant === SelectVariant.typeahead || variant === SelectVariant.typeaheadMulti)) {\n this.props.handleTypeaheadKeys('tab', event.shiftKey);\n event.preventDefault();\n return;\n }\n if (isOpen && event.key === KeyTypes.Tab && hasFooter) {\n const tabbableItems = findTabbableElements(footerRef, SelectFooterTabbableItems);\n // If no tabbable item in footer close select\n if (tabbableItems.length <= 0) {\n onToggle(event, false);\n onClose();\n this.toggle.current.focus();\n return;\n }\n else {\n // if current element is not in footer, tab to first tabbable element in footer, or close if shift clicked\n const currentElementIndex = tabbableItems.findIndex((item) => item === document.activeElement);\n if (currentElementIndex === -1) {\n if (event.shiftKey) {\n if (variant !== 'checkbox') {\n // only close non checkbox variation on shift clicked\n onToggle(event, false);\n onClose();\n this.toggle.current.focus();\n }\n }\n else {\n // tab to footer\n tabbableItems[0].focus();\n return;\n }\n }\n // Current element is in footer.\n if (event.shiftKey) {\n // Move focus back to menu if current tab index is 0\n if (currentElementIndex === 0) {\n moveFocusToLastMenuItem();\n event.preventDefault();\n }\n return;\n }\n // Tab to next element in footer or close if there are none\n if (currentElementIndex + 1 < tabbableItems.length) {\n tabbableItems[currentElementIndex + 1].focus();\n }\n else {\n // no more footer items close menu\n onToggle(event, false);\n onClose();\n this.toggle.current.focus();\n }\n event.preventDefault();\n return;\n }\n }\n if (isOpen &&\n (event.key === KeyTypes.Escape || event.key === KeyTypes.Tab) &&\n (escFromToggle || escFromWithinMenu)) {\n onToggle(event, false);\n onClose();\n this.toggle.current.focus();\n }\n };\n this.onKeyDown = (event) => {\n const { isOpen, onToggle, variant, onClose, onEnter, handleTypeaheadKeys } = this.props;\n if (variant === SelectVariant.typeahead || variant === SelectVariant.typeaheadMulti) {\n if (event.key === KeyTypes.ArrowDown || event.key === KeyTypes.ArrowUp) {\n handleTypeaheadKeys((event.key === KeyTypes.ArrowDown && 'down') || (event.key === KeyTypes.ArrowUp && 'up'));\n event.preventDefault();\n }\n else if (event.key === KeyTypes.Enter) {\n if (isOpen) {\n handleTypeaheadKeys('enter');\n }\n else {\n onToggle(event, !isOpen);\n }\n }\n }\n if (variant === SelectVariant.typeahead ||\n variant === SelectVariant.typeaheadMulti ||\n (event.key === KeyTypes.Tab && !isOpen) ||\n (event.key !== KeyTypes.Enter && event.key !== KeyTypes.Space)) {\n return;\n }\n event.preventDefault();\n if ((event.key === KeyTypes.Tab || event.key === KeyTypes.Enter || event.key === KeyTypes.Space) && isOpen) {\n onToggle(event, !isOpen);\n onClose();\n this.toggle.current.focus();\n }\n else if ((event.key === KeyTypes.Enter || event.key === KeyTypes.Space) && !isOpen) {\n onToggle(event, !isOpen);\n onEnter();\n }\n };\n const { variant } = props;\n const isTypeahead = variant === SelectVariant.typeahead || variant === SelectVariant.typeaheadMulti;\n if (this.props.innerRef) {\n this.toggle = this.props.innerRef;\n }\n else {\n this.toggle = isTypeahead ? React.createRef() : React.createRef();\n }\n }\n componentDidMount() {\n document.addEventListener('click', this.onDocClick, { capture: true });\n document.addEventListener('touchstart', this.onDocClick);\n document.addEventListener('keydown', this.handleGlobalKeys);\n }\n componentWillUnmount() {\n document.removeEventListener('click', this.onDocClick, { capture: true });\n document.removeEventListener('touchstart', this.onDocClick);\n document.removeEventListener('keydown', this.handleGlobalKeys);\n }\n render() {\n /* eslint-disable @typescript-eslint/no-unused-vars */\n const _a = this.props, { className, children, isOpen, isActive, isPlain, isDisabled, hasPlaceholderStyle, variant, onToggle, onEnter, onClose, onBlur, onClickTypeaheadToggleButton, handleTypeaheadKeys, moveFocusToLastMenuItem, parentRef, menuRef, id, type, hasClearButton, 'aria-labelledby': ariaLabelledBy, 'aria-label': ariaLabel, hasFooter, footerRef, toggleIndicator, innerRef } = _a, props = __rest(_a, [\"className\", \"children\", \"isOpen\", \"isActive\", \"isPlain\", \"isDisabled\", \"hasPlaceholderStyle\", \"variant\", \"onToggle\", \"onEnter\", \"onClose\", \"onBlur\", \"onClickTypeaheadToggleButton\", \"handleTypeaheadKeys\", \"moveFocusToLastMenuItem\", \"parentRef\", \"menuRef\", \"id\", \"type\", \"hasClearButton\", 'aria-labelledby', 'aria-label', \"hasFooter\", \"footerRef\", \"toggleIndicator\", \"innerRef\"]);\n /* eslint-enable @typescript-eslint/no-unused-vars */\n const isTypeahead = variant === SelectVariant.typeahead || variant === SelectVariant.typeaheadMulti || hasClearButton;\n const toggleProps = {\n id,\n 'aria-labelledby': ariaLabelledBy,\n 'aria-expanded': isOpen,\n 'aria-haspopup': (variant !== SelectVariant.checkbox && 'listbox') || null\n };\n return (React.createElement(React.Fragment, null,\n !isTypeahead && (React.createElement(\"button\", Object.assign({}, props, toggleProps, { ref: this.toggle, type: type, className: css(styles.selectToggle, hasPlaceholderStyle && styles.modifiers.placeholder, isDisabled && styles.modifiers.disabled, isPlain && styles.modifiers.plain, isActive && styles.modifiers.active, className), \"aria-label\": ariaLabel, onBlur: onBlur, \n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n onClick: (event) => {\n onToggle(event, !isOpen);\n if (isOpen) {\n onClose();\n }\n }, onKeyDown: this.onKeyDown, disabled: isDisabled }),\n children,\n React.createElement(\"span\", { className: css(styles.selectToggleArrow) }, toggleIndicator !== null && toggleIndicator !== void 0 ? toggleIndicator : React.createElement(CaretDownIcon, null)))),\n isTypeahead && (React.createElement(\"div\", Object.assign({}, props, { ref: this.toggle, className: css(styles.selectToggle, hasPlaceholderStyle && styles.modifiers.placeholder, isDisabled && styles.modifiers.disabled, isPlain && styles.modifiers.plain, isTypeahead && styles.modifiers.typeahead, className), onBlur: onBlur, \n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n onClick: (event) => {\n if (!isDisabled) {\n onToggle(event, !isOpen);\n if (isOpen) {\n onClose();\n }\n }\n }, onKeyDown: this.onKeyDown }),\n children,\n React.createElement(\"button\", Object.assign({}, toggleProps, { type: type, className: css(buttonStyles.button, styles.selectToggleButton, styles.modifiers.plain), \"aria-label\": ariaLabel, onClick: (event) => {\n onToggle(event, !isOpen);\n if (isOpen) {\n onClose();\n }\n onClickTypeaheadToggleButton();\n } }, ((variant === SelectVariant.typeahead || variant === SelectVariant.typeaheadMulti) && {\n tabIndex: -1\n }), { disabled: isDisabled }), toggleIndicator !== null && toggleIndicator !== void 0 ? toggleIndicator : React.createElement(CaretDownIcon, { className: css(styles.selectToggleArrow) }))))));\n }\n}\nSelectToggleBase.displayName = 'SelectToggle';\nSelectToggleBase.defaultProps = {\n className: '',\n isOpen: false,\n isActive: false,\n isPlain: false,\n isDisabled: false,\n hasPlaceholderStyle: false,\n hasClearButton: false,\n hasFooter: false,\n variant: 'single',\n 'aria-labelledby': '',\n 'aria-label': '',\n type: 'button',\n onToggle: () => { },\n onEnter: () => { },\n onClose: () => { },\n onClickTypeaheadToggleButton: () => { }\n};\nexport const SelectToggle = React.forwardRef((props, ref) => (React.createElement(SelectToggleBase, Object.assign({ innerRef: ref }, props))));\n//# sourceMappingURL=SelectToggle.js.map","import { __rest } from \"tslib\";\nimport * as React from 'react';\nimport styles from '@patternfly/react-styles/css/components/Select/select.mjs';\nimport badgeStyles from '@patternfly/react-styles/css/components/Badge/badge.mjs';\nimport formStyles from '@patternfly/react-styles/css/components/FormControl/form-control.mjs';\nimport buttonStyles from '@patternfly/react-styles/css/components/Button/button.mjs';\nimport { css } from '@patternfly/react-styles';\nimport TimesCircleIcon from '@patternfly/react-icons/dist/esm/icons/times-circle-icon';\nimport CheckCircleIcon from '@patternfly/react-icons/dist/esm/icons/check-circle-icon';\nimport ExclamationTriangleIcon from '@patternfly/react-icons/dist/esm/icons/exclamation-triangle-icon';\nimport ExclamationCircleIcon from '@patternfly/react-icons/dist/esm/icons/exclamation-circle-icon';\nimport { SelectMenu } from './SelectMenu';\nimport { SelectOption } from './SelectOption';\nimport { SelectGroup } from './SelectGroup';\nimport { SelectToggle } from './SelectToggle';\nimport { SelectContext, SelectVariant, SelectPosition, SelectDirection, SelectFooterTabbableItems } from './selectConstants';\nimport { ChipGroup } from '../../../components/Chip';\nimport { Chip } from '../../../components/Chip';\nimport { Spinner } from '../../../components/Spinner';\nimport { keyHandler, getNextIndex, getOUIAProps, getDefaultOUIAId, GenerateId } from '../../../helpers';\nimport { KeyTypes } from '../../../helpers/constants';\nimport { Divider } from '../../../components/Divider';\nimport { Popper } from '../../../helpers/Popper/Popper';\nimport { createRenderableFavorites, extendItemsWithFavorite } from '../../../helpers/favorites';\nimport { ValidatedOptions } from '../../../helpers/constants';\nimport { findTabbableElements } from '../../../helpers/util';\nimport { TextInput } from '../../../components/TextInput';\n// seed for the aria-labelledby ID\nlet currentId = 0;\nclass Select extends React.Component {\n constructor() {\n super(...arguments);\n this.parentRef = React.createRef();\n this.menuComponentRef = React.createRef();\n this.filterRef = React.createRef();\n this.clearRef = React.createRef();\n this.inputRef = React.createRef();\n this.refCollection = [[]];\n this.optionContainerRefCollection = [];\n this.footerRef = React.createRef();\n this.state = {\n focusFirstOption: false,\n typeaheadInputValue: null,\n typeaheadFilteredChildren: React.Children.toArray(this.props.children),\n favoritesGroup: [],\n typeaheadCurrIndex: -1,\n typeaheadStoredIndex: -1,\n creatableValue: '',\n tabbedIntoFavoritesMenu: false,\n ouiaStateId: getDefaultOUIAId(Select.displayName, this.props.variant),\n viewMoreNextIndex: -1\n };\n this.getTypeaheadActiveChild = (typeaheadCurrIndex) => this.refCollection[typeaheadCurrIndex] ? this.refCollection[typeaheadCurrIndex][0] : null;\n this.componentDidUpdate = (prevProps, prevState) => {\n if (this.props.hasInlineFilter) {\n this.refCollection[0][0] = this.filterRef.current;\n }\n // Move focus to top of the menu if state.focusFirstOption was updated to true and the menu does not have custom content\n if (!prevState.focusFirstOption && this.state.focusFirstOption && !this.props.customContent) {\n const firstRef = this.refCollection.find((ref) => \n // If a select option is disabled then ref[0] will be undefined, so we want to return\n // the first ref that both a) is not null and b) is not disabled.\n ref !== null && ref[0]);\n if (firstRef && firstRef[0]) {\n firstRef[0].focus();\n }\n }\n else if (\n // if viewMoreNextIndex is not -1, view more was clicked, set focus on first newly loaded item\n this.state.viewMoreNextIndex !== -1 &&\n this.refCollection.length > this.state.viewMoreNextIndex &&\n this.props.loadingVariant !== 'spinner' &&\n this.refCollection[this.state.viewMoreNextIndex][0] &&\n this.props.variant !== 'typeahead' && // do not hard focus newly added items for typeahead variants\n this.props.variant !== 'typeaheadmulti') {\n this.refCollection[this.state.viewMoreNextIndex][0].focus();\n this.setState({ viewMoreNextIndex: -1 });\n }\n const checkUpdatedChildren = (prevChildren, currChildren) => Array.from(prevChildren).some((prevChild, index) => {\n const prevChildProps = prevChild.props;\n const currChild = currChildren[index];\n const { props: currChildProps } = currChild;\n if (prevChildProps && currChildProps) {\n return (prevChildProps.value !== currChildProps.value ||\n prevChildProps.label !== currChildProps.label ||\n prevChildProps.isDisabled !== currChildProps.isDisabled ||\n prevChildProps.isPlaceholder !== currChildProps.isPlaceholder);\n }\n else {\n return prevChild !== currChild;\n }\n });\n const hasUpdatedChildren = prevProps.children.length !== this.props.children.length ||\n checkUpdatedChildren(prevProps.children, this.props.children) ||\n (this.props.isGrouped &&\n Array.from(prevProps.children).some((prevChild, index) => prevChild.type === SelectGroup &&\n prevChild.props.children &&\n this.props.children[index].props.children &&\n (prevChild.props.children.length !== this.props.children[index].props.children.length ||\n checkUpdatedChildren(prevChild.props.children, this.props.children[index].props.children))));\n if (hasUpdatedChildren) {\n this.updateTypeAheadFilteredChildren(prevState.typeaheadInputValue || '', null);\n }\n // for menus with favorites,\n // if the number of favorites or typeahead filtered children has changed, the generated\n // list of favorites needs to be updated\n if (this.props.onFavorite &&\n (this.props.favorites.length !== prevProps.favorites.length ||\n this.state.typeaheadFilteredChildren !== prevState.typeaheadFilteredChildren)) {\n const tempRenderableChildren = this.props.variant === 'typeahead' || this.props.variant === 'typeaheadmulti'\n ? this.state.typeaheadFilteredChildren\n : this.props.children;\n const renderableFavorites = createRenderableFavorites(tempRenderableChildren, this.props.isGrouped, this.props.favorites);\n const favoritesGroup = renderableFavorites.length\n ? [\n React.createElement(SelectGroup, { key: \"favorites\", label: this.props.favoritesLabel }, renderableFavorites),\n React.createElement(Divider, { key: \"favorites-group-divider\" })\n ]\n : [];\n this.setState({ favoritesGroup });\n }\n };\n this.onEnter = () => {\n this.setState({ focusFirstOption: true });\n };\n this.onToggle = (e, isExpanded) => {\n const { isInputValuePersisted, onSelect, onToggle, hasInlineFilter } = this.props;\n if (!isExpanded && isInputValuePersisted && onSelect) {\n onSelect(undefined, this.inputRef.current ? this.inputRef.current.value : '');\n }\n if (isExpanded && hasInlineFilter) {\n this.setState({\n focusFirstOption: true\n });\n }\n onToggle(e, isExpanded);\n };\n this.onClose = () => {\n const { isInputFilterPersisted } = this.props;\n this.setState(Object.assign(Object.assign({ focusFirstOption: false, typeaheadInputValue: null }, (!isInputFilterPersisted && {\n typeaheadFilteredChildren: React.Children.toArray(this.props.children)\n })), { typeaheadCurrIndex: -1, tabbedIntoFavoritesMenu: false, viewMoreNextIndex: -1 }));\n };\n this.onChange = (e) => {\n if (e.target.value.toString() !== '' && !this.props.isOpen) {\n this.onToggle(e, true);\n }\n if (this.props.onTypeaheadInputChanged) {\n this.props.onTypeaheadInputChanged(e.target.value.toString());\n }\n this.setState({\n typeaheadCurrIndex: -1,\n typeaheadInputValue: e.target.value,\n creatableValue: e.target.value\n });\n this.updateTypeAheadFilteredChildren(e.target.value.toString(), e);\n this.refCollection = [[]];\n };\n this.updateTypeAheadFilteredChildren = (typeaheadInputValue, e) => {\n let typeaheadFilteredChildren;\n const { onFilter, isCreatable, isCreateOptionOnTop, onCreateOption, createText, noResultsFoundText, children, isGrouped, isCreateSelectOptionObject, loadingVariant } = this.props;\n if (onFilter) {\n /* The updateTypeAheadFilteredChildren callback is not only called on input changes but also when the children change.\n * In this case the e is null but we can get the typeaheadInputValue from the state.\n */\n typeaheadFilteredChildren = onFilter(e, e ? e.target.value : typeaheadInputValue) || children;\n }\n else {\n let input;\n try {\n input = new RegExp(typeaheadInputValue.toString(), 'i');\n }\n catch (err) {\n input = new RegExp(typeaheadInputValue.toString().replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&'), 'i');\n }\n const childrenArray = React.Children.toArray(children);\n if (isGrouped) {\n const childFilter = (child) => child.props.value &&\n child.props.value.toString &&\n this.getDisplay(child.props.value.toString(), 'text').search(input) === 0;\n typeaheadFilteredChildren =\n typeaheadInputValue.toString() !== ''\n ? React.Children.map(children, (group) => {\n if (React.isValidElement(group) &&\n group.type === SelectGroup) {\n const filteredGroupChildren = React.Children.toArray(group.props.children).filter(childFilter);\n if (filteredGroupChildren.length > 0) {\n return React.cloneElement(group, {\n titleId: group.props.label && group.props.label.replace(/\\W/g, '-'),\n children: filteredGroupChildren\n });\n }\n }\n else {\n return React.Children.toArray(group).filter(childFilter);\n }\n })\n : childrenArray;\n }\n else {\n typeaheadFilteredChildren =\n typeaheadInputValue.toString() !== ''\n ? childrenArray.filter((child) => {\n const valueToCheck = child.props.value;\n // Dividers don't have value and should not be filtered\n if (!valueToCheck) {\n return true;\n }\n const isSelectOptionObject = typeof valueToCheck !== 'string' &&\n valueToCheck.toString &&\n valueToCheck.compareTo;\n // View more option should be returned as not a match\n if (loadingVariant !== 'spinner' && (loadingVariant === null || loadingVariant === void 0 ? void 0 : loadingVariant.text) === valueToCheck) {\n return true;\n }\n // spinner should be returned as not a match\n if (loadingVariant === 'spinner' && valueToCheck === 'loading') {\n return true;\n }\n if (isSelectOptionObject) {\n return valueToCheck.compareTo(typeaheadInputValue);\n }\n else {\n return this.getDisplay(child.props.value.toString(), 'text').search(input) === 0;\n }\n })\n : childrenArray;\n }\n }\n if (!typeaheadFilteredChildren) {\n typeaheadFilteredChildren = [];\n }\n if (typeaheadFilteredChildren.length === 0) {\n !isCreatable &&\n typeaheadFilteredChildren.push(React.createElement(SelectOption, { isDisabled: true, key: \"no-results\", value: noResultsFoundText, isNoResultsOption: true }));\n }\n if (isCreatable && typeaheadInputValue !== '') {\n const newValue = typeaheadInputValue;\n if (!typeaheadFilteredChildren.find((i) => i.props.value && i.props.value.toString().toLowerCase() === newValue.toString().toLowerCase())) {\n const newOptionValue = isCreateSelectOptionObject\n ? {\n toString: () => newValue,\n compareTo: (value) => this.toString().toLowerCase().includes(value.toString().toLowerCase())\n }\n : newValue;\n const createSelectOption = (React.createElement(SelectOption, { key: `create ${newValue}`, value: newOptionValue, onClick: () => onCreateOption && onCreateOption(newValue) },\n createText,\n \" \\\"\",\n newValue,\n \"\\\"\"));\n if (isCreateOptionOnTop) {\n typeaheadFilteredChildren.unshift(createSelectOption);\n }\n else {\n typeaheadFilteredChildren.push(createSelectOption);\n }\n }\n }\n this.setState({\n typeaheadFilteredChildren\n });\n };\n this.onClick = (e) => {\n if (!this.props.isOpen) {\n this.onToggle(e, true);\n }\n };\n this.clearSelection = (_e) => {\n this.setState({\n typeaheadInputValue: null,\n typeaheadFilteredChildren: React.Children.toArray(this.props.children),\n typeaheadCurrIndex: -1\n });\n };\n this.sendRef = (optionRef, favoriteRef, optionContainerRef, index) => {\n this.refCollection[index] = [optionRef, favoriteRef];\n this.optionContainerRefCollection[index] = optionContainerRef;\n };\n this.handleMenuKeys = (index, innerIndex, position) => {\n keyHandler(index, innerIndex, position, this.refCollection, this.refCollection);\n if (this.props.variant === SelectVariant.typeahead || this.props.variant === SelectVariant.typeaheadMulti) {\n if (position !== 'tab') {\n this.handleTypeaheadKeys(position);\n }\n }\n };\n this.moveFocus = (nextIndex, updateCurrentIndex = true) => {\n const { isCreatable, createText } = this.props;\n const hasDescriptionElm = Boolean(this.refCollection[nextIndex][0] && this.refCollection[nextIndex][0].classList.contains('pf-m-description'));\n const isLoad = Boolean(this.refCollection[nextIndex][0] && this.refCollection[nextIndex][0].classList.contains('pf-m-load'));\n const optionTextElm = hasDescriptionElm\n ? this.refCollection[nextIndex][0].firstElementChild\n : this.refCollection[nextIndex][0];\n let typeaheadInputValue = '';\n if (isCreatable && optionTextElm.textContent.includes(createText)) {\n typeaheadInputValue = this.state.creatableValue;\n }\n else if (optionTextElm && !isLoad) {\n // !isLoad prevents the view more button text from appearing the typeahead input\n typeaheadInputValue = optionTextElm.textContent;\n }\n this.setState((prevState) => ({\n typeaheadCurrIndex: updateCurrentIndex ? nextIndex : prevState.typeaheadCurrIndex,\n typeaheadStoredIndex: nextIndex,\n typeaheadInputValue\n }));\n };\n this.switchFocusToFavoriteMenu = () => {\n const { typeaheadCurrIndex, typeaheadStoredIndex } = this.state;\n let indexForFocus = 0;\n if (typeaheadCurrIndex !== -1) {\n indexForFocus = typeaheadCurrIndex;\n }\n else if (typeaheadStoredIndex !== -1) {\n indexForFocus = typeaheadStoredIndex;\n }\n if (this.refCollection[indexForFocus] !== null && this.refCollection[indexForFocus][0] !== null) {\n this.refCollection[indexForFocus][0].focus();\n }\n else {\n this.clearRef.current.focus();\n }\n this.setState({\n tabbedIntoFavoritesMenu: true,\n typeaheadCurrIndex: -1\n });\n };\n this.moveFocusToLastMenuItem = () => {\n const refCollectionLen = this.refCollection.length;\n if (refCollectionLen > 0 &&\n this.refCollection[refCollectionLen - 1] !== null &&\n this.refCollection[refCollectionLen - 1][0] !== null) {\n this.refCollection[refCollectionLen - 1][0].focus();\n }\n };\n this.handleTypeaheadKeys = (position, shiftKey = false) => {\n const { isOpen, onFavorite, isCreatable } = this.props;\n const { typeaheadCurrIndex, tabbedIntoFavoritesMenu } = this.state;\n const typeaheadActiveChild = this.getTypeaheadActiveChild(typeaheadCurrIndex);\n if (isOpen) {\n if (position === 'enter') {\n if ((typeaheadCurrIndex !== -1 || (isCreatable && this.refCollection.length === 1)) && // do not allow selection without moving to an initial option unless it is a single create option\n (typeaheadActiveChild || (this.refCollection[0] && this.refCollection[0][0]))) {\n if (typeaheadActiveChild) {\n if (!typeaheadActiveChild.classList.contains('pf-m-load')) {\n const hasDescriptionElm = typeaheadActiveChild.childElementCount > 1;\n const typeaheadActiveChildText = hasDescriptionElm\n ? typeaheadActiveChild.firstChild.textContent\n : typeaheadActiveChild.textContent;\n this.setState({\n typeaheadInputValue: typeaheadActiveChildText\n });\n }\n }\n else if (this.refCollection[0] && this.refCollection[0][0]) {\n this.setState({\n typeaheadInputValue: this.refCollection[0][0].textContent\n });\n }\n if (typeaheadActiveChild) {\n typeaheadActiveChild.click();\n }\n else {\n this.refCollection[0][0].click();\n }\n }\n }\n else if (position === 'tab') {\n if (onFavorite) {\n // if the input has focus, tab to the first item or the last item that was previously focused.\n if (this.inputRef.current === document.activeElement) {\n // If shift is also clicked and there is a footer, tab to the last item in tabbable footer\n if (this.props.footer && shiftKey) {\n const tabbableItems = findTabbableElements(this.footerRef, SelectFooterTabbableItems);\n if (tabbableItems.length > 0) {\n if (tabbableItems[tabbableItems.length - 1]) {\n tabbableItems[tabbableItems.length - 1].focus();\n }\n }\n }\n else {\n this.switchFocusToFavoriteMenu();\n }\n }\n else {\n // focus is on menu or footer\n if (this.props.footer) {\n let tabbedIntoMenu = false;\n const tabbableItems = findTabbableElements(this.footerRef, SelectFooterTabbableItems);\n if (tabbableItems.length > 0) {\n // if current element is not in footer, tab to first tabbable element in footer,\n // if shift was clicked, tab to input since focus is on menu\n const currentElementIndex = tabbableItems.findIndex((item) => item === document.activeElement);\n if (currentElementIndex === -1) {\n if (shiftKey) {\n // currently in menu, shift back to input\n this.inputRef.current.focus();\n }\n else {\n // currently in menu, tab to first tabbable item in footer\n tabbableItems[0].focus();\n }\n }\n else {\n // already in footer\n if (shiftKey) {\n // shift to previous item\n if (currentElementIndex === 0) {\n // on first footer item, shift back to menu\n this.switchFocusToFavoriteMenu();\n tabbedIntoMenu = true;\n }\n else {\n // shift to previous footer item\n tabbableItems[currentElementIndex - 1].focus();\n }\n }\n else {\n // tab to next tabbable item in footer or to input.\n if (tabbableItems[currentElementIndex + 1]) {\n tabbableItems[currentElementIndex + 1].focus();\n }\n else {\n this.inputRef.current.focus();\n }\n }\n }\n }\n else {\n // no tabbable items in footer, tab to input\n this.inputRef.current.focus();\n tabbedIntoMenu = false;\n }\n this.setState({ tabbedIntoFavoritesMenu: tabbedIntoMenu });\n }\n else {\n this.inputRef.current.focus();\n this.setState({ tabbedIntoFavoritesMenu: false });\n }\n }\n }\n else {\n // Close if there is no footer\n if (!this.props.footer) {\n this.onToggle(null, false);\n this.onClose();\n }\n else {\n // has footer\n const tabbableItems = findTabbableElements(this.footerRef, SelectFooterTabbableItems);\n const currentElementIndex = tabbableItems.findIndex((item) => item === document.activeElement);\n if (this.inputRef.current === document.activeElement) {\n if (shiftKey) {\n // close toggle if shift key and tab on input\n this.onToggle(null, false);\n this.onClose();\n }\n else {\n // tab to first tabbable item in footer\n if (tabbableItems[0]) {\n tabbableItems[0].focus();\n }\n else {\n this.onToggle(null, false);\n this.onClose();\n }\n }\n }\n else {\n // focus is in footer\n if (shiftKey) {\n if (currentElementIndex === 0) {\n // shift tab back to input\n this.inputRef.current.focus();\n }\n else {\n // shift to previous footer item\n tabbableItems[currentElementIndex - 1].focus();\n }\n }\n else {\n // tab to next footer item or close tab if last item\n if (tabbableItems[currentElementIndex + 1]) {\n tabbableItems[currentElementIndex + 1].focus();\n }\n else {\n // no next item, close toggle\n this.onToggle(null, false);\n this.inputRef.current.focus();\n this.onClose();\n }\n }\n }\n }\n }\n }\n else if (!tabbedIntoFavoritesMenu) {\n if (this.refCollection[0][0] === null) {\n return;\n }\n let nextIndex;\n if (typeaheadCurrIndex === -1 && position === 'down') {\n nextIndex = 0;\n }\n else if (typeaheadCurrIndex === -1 && position === 'up') {\n nextIndex = this.refCollection.length - 1;\n }\n else if (position !== 'left' && position !== 'right') {\n nextIndex = getNextIndex(typeaheadCurrIndex, position, this.refCollection);\n }\n else {\n nextIndex = typeaheadCurrIndex;\n }\n if (this.refCollection[nextIndex] === null) {\n return;\n }\n this.moveFocus(nextIndex);\n }\n else {\n const nextIndex = this.refCollection.findIndex((ref) => ref !== undefined && (ref[0] === document.activeElement || ref[1] === document.activeElement));\n this.moveFocus(nextIndex);\n }\n }\n };\n this.onClickTypeaheadToggleButton = () => {\n if (this.inputRef && this.inputRef.current) {\n this.inputRef.current.focus();\n }\n };\n this.getDisplay = (value, type = 'node') => {\n if (!value) {\n return;\n }\n const item = this.props.isGrouped\n ? React.Children.toArray(this.props.children)\n .reduce((acc, curr) => [...acc, ...React.Children.toArray(curr.props.children)], [])\n .find((child) => child.props.value.toString() === value.toString())\n : React.Children.toArray(this.props.children).find((child) => child.props.value &&\n child.props.value.toString() === value.toString());\n if (item) {\n if (item && item.props.children) {\n if (type === 'node') {\n return item.props.children;\n }\n return this.findText(item);\n }\n return item.props.value.toString();\n }\n return value.toString();\n };\n this.findText = (item) => {\n if (typeof item === 'string') {\n return item;\n }\n else if (!React.isValidElement(item)) {\n return '';\n }\n else {\n const multi = [];\n React.Children.toArray(item.props.children).forEach((child) => multi.push(this.findText(child)));\n return multi.join('');\n }\n };\n this.generateSelectedBadge = () => {\n const { customBadgeText, selections } = this.props;\n if (customBadgeText !== null) {\n return customBadgeText;\n }\n if (Array.isArray(selections) && selections.length > 0) {\n return selections.length;\n }\n return null;\n };\n this.setVieMoreNextIndex = () => {\n this.setState({ viewMoreNextIndex: this.refCollection.length - 1 });\n };\n this.isLastOptionBeforeFooter = (index) => this.props.footer && index === this.refCollection.length - 1 ? true : false;\n }\n extendTypeaheadChildren(typeaheadCurrIndex, favoritesGroup) {\n const { isGrouped, onFavorite, createText } = this.props;\n const typeaheadChildren = favoritesGroup\n ? favoritesGroup.concat(this.state.typeaheadFilteredChildren)\n : this.state.typeaheadFilteredChildren;\n const activeElement = this.optionContainerRefCollection[typeaheadCurrIndex];\n let typeaheadActiveChild = this.getTypeaheadActiveChild(typeaheadCurrIndex);\n if (typeaheadActiveChild && typeaheadActiveChild.classList.contains('pf-m-description')) {\n typeaheadActiveChild = typeaheadActiveChild.firstElementChild;\n }\n this.refCollection = [[]];\n this.optionContainerRefCollection = [];\n if (isGrouped) {\n return React.Children.map(typeaheadChildren, (group) => {\n if (group.type === Divider) {\n return group;\n }\n else if (group.type === SelectGroup && onFavorite) {\n return React.cloneElement(group, {\n titleId: group.props.label && group.props.label.replace(/\\W/g, '-'),\n children: React.Children.map(group.props.children, (child) => child.type === Divider\n ? child\n : React.cloneElement(child, {\n isFocused: activeElement &&\n (activeElement.id === child.props.id ||\n (this.props.isCreatable &&\n typeaheadActiveChild.textContent ===\n `${createText} \"${group.props.value}\"`))\n }))\n });\n }\n else if (group.type === SelectGroup) {\n return React.cloneElement(group, {\n titleId: group.props.label && group.props.label.replace(/\\W/g, '-'),\n children: React.Children.map(group.props.children, (child) => child.type === Divider\n ? child\n : React.cloneElement(child, {\n isFocused: typeaheadActiveChild &&\n (typeaheadActiveChild.textContent === child.props.value.toString() ||\n (this.props.isCreatable &&\n typeaheadActiveChild.textContent ===\n `${createText} \"${child.props.value}\"`))\n }))\n });\n }\n else {\n // group has been filtered down to SelectOption\n return React.cloneElement(group, {\n isFocused: typeaheadActiveChild &&\n (typeaheadActiveChild.textContent === group.props.value.toString() ||\n (this.props.isCreatable && typeaheadActiveChild.textContent === `${createText} \"${group.props.value}\"`))\n });\n }\n });\n }\n return typeaheadChildren.map((child, index) => {\n const childElement = child;\n return childElement.type.displayName === 'Divider'\n ? child\n : React.cloneElement(child, {\n isFocused: typeaheadActiveChild\n ? typeaheadActiveChild.textContent === child.props.value.toString() ||\n (this.props.isCreatable &&\n typeaheadActiveChild.textContent === `${createText} \"${child.props.value}\"`)\n : index === typeaheadCurrIndex // fallback for view more + typeahead use cases, when the new expanded list is loaded and refCollection hasn't be updated yet\n });\n });\n }\n render() {\n const _a = this.props, { children, chipGroupProps, chipGroupComponent, className, customContent, variant, direction, onSelect, onClear, onBlur, toggleId, toggleRef, isOpen, isGrouped, isPlain, isDisabled, hasPlaceholderStyle, validated, selections: selectionsProp, typeAheadAriaLabel, typeAheadAriaDescribedby, clearSelectionsAriaLabel, toggleAriaLabel, removeSelectionAriaLabel, 'aria-label': ariaLabel, 'aria-labelledby': ariaLabelledBy, 'aria-describedby': ariaDescribedby, 'aria-invalid': ariaInvalid, placeholderText, width, maxHeight, toggleIcon, toggleIndicator, ouiaId, ouiaSafe, hasInlineFilter, isCheckboxSelectionBadgeHidden, inlineFilterPlaceholderText, \n /* eslint-disable @typescript-eslint/no-unused-vars */\n onFilter, \n /* eslint-disable @typescript-eslint/no-unused-vars */\n onTypeaheadInputChanged, onCreateOption, isCreatable, onToggle, createText, noResultsFoundText, customBadgeText, inputIdPrefix, inputAutoComplete, \n /* eslint-disable @typescript-eslint/no-unused-vars */\n isInputValuePersisted, isInputFilterPersisted, \n /* eslint-enable @typescript-eslint/no-unused-vars */\n menuAppendTo, favorites, onFavorite, \n /* eslint-disable @typescript-eslint/no-unused-vars */\n favoritesLabel, footer, loadingVariant, isCreateSelectOptionObject, isCreateOptionOnTop, shouldResetOnSelect, isFlipEnabled, zIndex } = _a, props = __rest(_a, [\"children\", \"chipGroupProps\", \"chipGroupComponent\", \"className\", \"customContent\", \"variant\", \"direction\", \"onSelect\", \"onClear\", \"onBlur\", \"toggleId\", \"toggleRef\", \"isOpen\", \"isGrouped\", \"isPlain\", \"isDisabled\", \"hasPlaceholderStyle\", \"validated\", \"selections\", \"typeAheadAriaLabel\", \"typeAheadAriaDescribedby\", \"clearSelectionsAriaLabel\", \"toggleAriaLabel\", \"removeSelectionAriaLabel\", 'aria-label', 'aria-labelledby', 'aria-describedby', 'aria-invalid', \"placeholderText\", \"width\", \"maxHeight\", \"toggleIcon\", \"toggleIndicator\", \"ouiaId\", \"ouiaSafe\", \"hasInlineFilter\", \"isCheckboxSelectionBadgeHidden\", \"inlineFilterPlaceholderText\", \"onFilter\", \"onTypeaheadInputChanged\", \"onCreateOption\", \"isCreatable\", \"onToggle\", \"createText\", \"noResultsFoundText\", \"customBadgeText\", \"inputIdPrefix\", \"inputAutoComplete\", \"isInputValuePersisted\", \"isInputFilterPersisted\", \"menuAppendTo\", \"favorites\", \"onFavorite\", \"favoritesLabel\", \"footer\", \"loadingVariant\", \"isCreateSelectOptionObject\", \"isCreateOptionOnTop\", \"shouldResetOnSelect\", \"isFlipEnabled\", \"zIndex\"]);\n const { focusFirstOption: openedOnEnter, typeaheadCurrIndex, typeaheadInputValue, typeaheadFilteredChildren, favoritesGroup } = this.state;\n const selectToggleId = toggleId || `pf-select-toggle-id-${currentId++}`;\n const selections = Array.isArray(selectionsProp) ? selectionsProp : [selectionsProp];\n // Find out if the selected option is a placeholder\n const selectedOption = React.Children.toArray(children).find((option) => option.props.value === selections[0]);\n const isSelectedPlaceholder = selectedOption && selectedOption.props.isPlaceholder;\n const hasAnySelections = Boolean(selections[0] && selections[0] !== '');\n const typeaheadActiveChild = this.getTypeaheadActiveChild(typeaheadCurrIndex);\n let childPlaceholderText = null;\n // If onFavorites is set, add isFavorite prop to children and add a Favorites group to the SelectMenu\n let renderableItems = [];\n if (onFavorite) {\n // if variant is type-ahead call the extendTypeaheadChildren before adding favorites\n let tempExtendedChildren = children;\n if (variant === 'typeahead' || variant === 'typeaheadmulti') {\n tempExtendedChildren = this.extendTypeaheadChildren(typeaheadCurrIndex, favoritesGroup);\n }\n else if (onFavorite) {\n tempExtendedChildren = favoritesGroup.concat(children);\n }\n // mark items that are favorited with isFavorite\n renderableItems = extendItemsWithFavorite(tempExtendedChildren, isGrouped, favorites);\n }\n else {\n renderableItems = children;\n }\n if (!customContent) {\n if (!hasAnySelections && !placeholderText) {\n const childPlaceholder = React.Children.toArray(children).filter((child) => child.props.isPlaceholder === true);\n childPlaceholderText =\n (childPlaceholder[0] && this.getDisplay(childPlaceholder[0].props.value, 'node')) ||\n (children[0] && this.getDisplay(children[0].props.value, 'node'));\n }\n }\n if (isOpen) {\n if (renderableItems.find((item) => (item === null || item === void 0 ? void 0 : item.key) === 'loading') === undefined) {\n if (loadingVariant === 'spinner') {\n renderableItems.push(React.createElement(SelectOption, { isLoading: true, key: \"loading\", value: \"loading\" },\n React.createElement(Spinner, { size: \"lg\" })));\n }\n else if (loadingVariant === null || loadingVariant === void 0 ? void 0 : loadingVariant.text) {\n renderableItems.push(React.createElement(SelectOption, { isLoad: true, key: \"loading\", value: loadingVariant.text, setViewMoreNextIndex: this.setVieMoreNextIndex, onClick: loadingVariant === null || loadingVariant === void 0 ? void 0 : loadingVariant.onClick }));\n }\n }\n }\n const hasOnClear = onClear !== Select.defaultProps.onClear;\n const clearBtn = (React.createElement(\"button\", { className: css(buttonStyles.button, buttonStyles.modifiers.plain, styles.selectToggleClear), onClick: (e) => {\n this.clearSelection(e);\n onClear(e);\n e.stopPropagation();\n }, \"aria-label\": clearSelectionsAriaLabel, type: \"button\", disabled: isDisabled, ref: this.clearRef, onKeyDown: (event) => {\n if (event.key === KeyTypes.Enter) {\n this.clearRef.current.click();\n }\n } },\n React.createElement(TimesCircleIcon, { \"aria-hidden\": true })));\n let selectedChips = null;\n if (variant === SelectVariant.typeaheadMulti) {\n selectedChips = chipGroupComponent ? (chipGroupComponent) : (React.createElement(ChipGroup, Object.assign({}, chipGroupProps), selections &&\n selections.map((item) => (React.createElement(Chip, { key: item, onClick: (e) => onSelect(e, item), closeBtnAriaLabel: removeSelectionAriaLabel }, this.getDisplay(item, 'node'))))));\n }\n if (hasInlineFilter) {\n const filterBox = (React.createElement(React.Fragment, null,\n React.createElement(\"div\", { key: \"inline-filter\", className: css(styles.selectMenuSearch) },\n React.createElement(\"div\", { key: \"inline-filter\", className: css(formStyles.formControl) },\n React.createElement(\"input\", { key: \"inline-filter-input\", type: \"search\", onChange: this.onChange, placeholder: inlineFilterPlaceholderText, onKeyDown: (event) => {\n if (event.key === KeyTypes.ArrowUp) {\n this.handleMenuKeys(0, 0, 'up');\n event.preventDefault();\n }\n else if (event.key === KeyTypes.ArrowDown) {\n this.handleMenuKeys(0, 0, 'down');\n event.preventDefault();\n }\n else if (event.key === KeyTypes.ArrowLeft) {\n this.handleMenuKeys(0, 0, 'left');\n event.preventDefault();\n }\n else if (event.key === KeyTypes.ArrowRight) {\n this.handleMenuKeys(0, 0, 'right');\n event.preventDefault();\n }\n else if (event.key === KeyTypes.Tab && variant !== SelectVariant.checkbox && this.props.footer) {\n // tab to footer or close menu if shift key\n if (event.shiftKey) {\n this.onToggle(event, false);\n }\n else {\n const tabbableItems = findTabbableElements(this.footerRef, SelectFooterTabbableItems);\n if (tabbableItems.length > 0) {\n tabbableItems[0].focus();\n event.stopPropagation();\n event.preventDefault();\n }\n else {\n this.onToggle(event, false);\n }\n }\n }\n else if (event.key === KeyTypes.Tab && variant === SelectVariant.checkbox) {\n // More modal-like experience for checkboxes\n // Let SelectOption handle this\n if (event.shiftKey) {\n this.handleMenuKeys(0, 0, 'up');\n }\n else {\n this.handleMenuKeys(0, 0, 'down');\n }\n event.stopPropagation();\n event.preventDefault();\n }\n }, ref: this.filterRef, autoComplete: inputAutoComplete }))),\n React.createElement(Divider, { key: \"inline-filter-divider\" })));\n renderableItems = [filterBox, ...typeaheadFilteredChildren].map((option, index) => React.cloneElement(option, { key: index }));\n }\n let variantProps;\n let variantChildren;\n if (customContent) {\n variantProps = {\n selected: selections,\n openedOnEnter,\n isCustomContent: true\n };\n variantChildren = customContent;\n }\n else {\n switch (variant) {\n case 'single':\n variantProps = {\n selected: selections[0],\n hasInlineFilter,\n openedOnEnter\n };\n variantChildren = renderableItems;\n break;\n case 'checkbox':\n variantProps = {\n checked: selections,\n isGrouped,\n hasInlineFilter,\n openedOnEnter\n };\n variantChildren = renderableItems;\n break;\n case 'typeahead':\n variantProps = {\n selected: selections[0],\n openedOnEnter\n };\n variantChildren = onFavorite ? renderableItems : this.extendTypeaheadChildren(typeaheadCurrIndex);\n if (variantChildren.length === 0) {\n variantChildren.push(React.createElement(SelectOption, { isDisabled: true, key: 0, value: noResultsFoundText, isNoResultsOption: true }));\n }\n break;\n case 'typeaheadmulti':\n variantProps = {\n selected: selections,\n openedOnEnter\n };\n variantChildren = onFavorite ? renderableItems : this.extendTypeaheadChildren(typeaheadCurrIndex);\n if (variantChildren.length === 0) {\n variantChildren.push(React.createElement(SelectOption, { isDisabled: true, key: 0, value: noResultsFoundText, isNoResultsOption: true }));\n }\n break;\n }\n }\n const isStatic = isFlipEnabled && menuAppendTo !== 'inline';\n const innerMenu = (React.createElement(SelectMenu, Object.assign({ className: css(isStatic && styles.modifiers.static) }, props, { isGrouped: isGrouped, selected: selections }, variantProps, { openedOnEnter: openedOnEnter, \"aria-label\": ariaLabel, \"aria-labelledby\": ariaLabelledBy, sendRef: this.sendRef, keyHandler: this.handleMenuKeys, maxHeight: maxHeight, ref: this.menuComponentRef, footer: footer, footerRef: this.footerRef, isLastOptionBeforeFooter: this.isLastOptionBeforeFooter }), variantChildren));\n const menuContainer = footer ? React.createElement(\"div\", { className: css(styles.selectMenu) },\n \" \",\n innerMenu,\n \" \") : innerMenu;\n const popperRef = React.createRef();\n const popperContainer = (React.createElement(\"div\", Object.assign({ className: css(styles.select, isOpen && styles.modifiers.expanded, validated === ValidatedOptions.success && styles.modifiers.success, validated === ValidatedOptions.warning && styles.modifiers.warning, validated === ValidatedOptions.error && styles.modifiers.invalid, direction === SelectDirection.up && styles.modifiers.top, className), ref: popperRef }, (width && { style: { width } }), (validated !== ValidatedOptions.default && { 'aria-invalid': ariaInvalid })), isOpen && menuContainer));\n const mainContainer = (React.createElement(\"div\", Object.assign({ className: css(styles.select, isOpen && styles.modifiers.expanded, validated === ValidatedOptions.success && styles.modifiers.success, validated === ValidatedOptions.warning && styles.modifiers.warning, validated === ValidatedOptions.error && styles.modifiers.invalid, direction === SelectDirection.up && styles.modifiers.top, className), ref: this.parentRef }, getOUIAProps(Select.displayName, ouiaId !== undefined ? ouiaId : this.state.ouiaStateId, ouiaSafe), (width && { style: { width } }), (validated !== ValidatedOptions.default && { 'aria-invalid': ariaInvalid })),\n React.createElement(SelectToggle, Object.assign({ id: selectToggleId, parentRef: this.parentRef, menuRef: this.menuComponentRef, ref: toggleRef }, (footer && { footerRef: this.footerRef }), { isOpen: isOpen, isPlain: isPlain, hasPlaceholderStyle: hasPlaceholderStyle && (!selections.length || selections[0] === null || isSelectedPlaceholder), onToggle: this.onToggle, onEnter: this.onEnter, onClose: this.onClose, onBlur: onBlur, variant: variant, toggleIndicator: toggleIndicator, \"aria-labelledby\": `${ariaLabelledBy || ''} ${selectToggleId}`, \"aria-label\": toggleAriaLabel }, (ariaDescribedby && { 'aria-describedby': ariaDescribedby }), { handleTypeaheadKeys: this.handleTypeaheadKeys, moveFocusToLastMenuItem: this.moveFocusToLastMenuItem, isDisabled: isDisabled, hasClearButton: hasOnClear, hasFooter: footer !== undefined, onClickTypeaheadToggleButton: this.onClickTypeaheadToggleButton }),\n customContent && (React.createElement(\"div\", { className: css(styles.selectToggleWrapper) },\n toggleIcon && React.createElement(\"span\", { className: css(styles.selectToggleIcon) }, toggleIcon),\n React.createElement(\"span\", { className: css(styles.selectToggleText) }, placeholderText))),\n variant === SelectVariant.single && !customContent && (React.createElement(React.Fragment, null,\n React.createElement(\"div\", { className: css(styles.selectToggleWrapper) },\n toggleIcon && React.createElement(\"span\", { className: css(styles.selectToggleIcon) }, toggleIcon),\n React.createElement(\"span\", { className: css(styles.selectToggleText) }, this.getDisplay(selections[0], 'node') || placeholderText || childPlaceholderText)),\n hasOnClear && hasAnySelections && clearBtn)),\n variant === SelectVariant.checkbox && !customContent && (React.createElement(React.Fragment, null,\n React.createElement(\"div\", { className: css(styles.selectToggleWrapper) },\n toggleIcon && React.createElement(\"span\", { className: css(styles.selectToggleIcon) }, toggleIcon),\n React.createElement(\"span\", { className: css(styles.selectToggleText) }, placeholderText),\n !isCheckboxSelectionBadgeHidden && hasAnySelections && (React.createElement(\"div\", { className: css(styles.selectToggleBadge) },\n React.createElement(\"span\", { className: css(badgeStyles.badge, badgeStyles.modifiers.read) }, this.generateSelectedBadge())))),\n hasOnClear && hasAnySelections && clearBtn)),\n variant === SelectVariant.typeahead && !customContent && (React.createElement(React.Fragment, null,\n React.createElement(\"div\", { className: css(styles.selectToggleWrapper) },\n toggleIcon && React.createElement(\"span\", { className: css(styles.selectToggleIcon) }, toggleIcon),\n React.createElement(TextInput, Object.assign({ className: css(styles.selectToggleTypeahead), \"aria-activedescendant\": typeaheadActiveChild && typeaheadActiveChild.id, id: `${selectToggleId}-select-typeahead`, \"aria-label\": typeAheadAriaLabel }, (typeAheadAriaDescribedby && { 'aria-describedby': typeAheadAriaDescribedby }), { placeholder: placeholderText, value: typeaheadInputValue !== null\n ? typeaheadInputValue\n : this.getDisplay(selections[0], 'text') || '', onChange: (event) => this.onChange(event), onClick: this.onClick, autoComplete: inputAutoComplete, isDisabled: isDisabled, ref: this.inputRef }))),\n hasOnClear && (selections[0] || typeaheadInputValue) && clearBtn)),\n variant === SelectVariant.typeaheadMulti && !customContent && (React.createElement(React.Fragment, null,\n React.createElement(\"div\", { className: css(styles.selectToggleWrapper) },\n toggleIcon && React.createElement(\"span\", { className: css(styles.selectToggleIcon) }, toggleIcon),\n selections && Array.isArray(selections) && selections.length > 0 && selectedChips,\n React.createElement(TextInput, Object.assign({ className: css(styles.selectToggleTypeahead), \"aria-activedescendant\": typeaheadActiveChild && typeaheadActiveChild.id, id: `${selectToggleId}-select-multi-typeahead-typeahead`, \"aria-label\": typeAheadAriaLabel, \"aria-invalid\": validated === ValidatedOptions.error }, (typeAheadAriaDescribedby && { 'aria-describedby': typeAheadAriaDescribedby }), { placeholder: placeholderText, value: typeaheadInputValue !== null ? typeaheadInputValue : '', onChange: (event) => this.onChange(event), onClick: this.onClick, autoComplete: inputAutoComplete, isDisabled: isDisabled, ref: this.inputRef }))),\n hasOnClear && ((selections && selections.length > 0) || typeaheadInputValue) && clearBtn)),\n validated === ValidatedOptions.success && (React.createElement(\"span\", { className: css(styles.selectToggleStatusIcon) },\n React.createElement(CheckCircleIcon, { \"aria-hidden\": \"true\" }))),\n validated === ValidatedOptions.error && (React.createElement(\"span\", { className: css(styles.selectToggleStatusIcon) },\n React.createElement(ExclamationCircleIcon, { \"aria-hidden\": \"true\" }))),\n validated === ValidatedOptions.warning && (React.createElement(\"span\", { className: css(styles.selectToggleStatusIcon) },\n React.createElement(ExclamationTriangleIcon, { \"aria-hidden\": \"true\" })))),\n isOpen && menuAppendTo === 'inline' && menuContainer));\n const getParentElement = () => {\n if (this.parentRef && this.parentRef.current) {\n return this.parentRef.current.parentElement;\n }\n return null;\n };\n return (React.createElement(GenerateId, null, (randomId) => (React.createElement(SelectContext.Provider, { value: {\n onSelect,\n onFavorite,\n onClose: this.onClose,\n variant,\n inputIdPrefix: inputIdPrefix || randomId,\n shouldResetOnSelect\n } }, menuAppendTo === 'inline' ? (mainContainer) : (React.createElement(Popper, { width: \"auto\", trigger: mainContainer, triggerRef: this.parentRef, popper: popperContainer, popperRef: popperRef, direction: direction, appendTo: menuAppendTo === 'parent' ? getParentElement() : menuAppendTo, isVisible: isOpen, zIndex: zIndex }))))));\n }\n}\nSelect.displayName = 'Select';\nSelect.defaultProps = {\n children: [],\n className: '',\n position: SelectPosition.left,\n direction: SelectDirection.down,\n toggleId: null,\n isOpen: false,\n isGrouped: false,\n isPlain: false,\n isDisabled: false,\n hasPlaceholderStyle: false,\n isCreatable: false,\n isCreateOptionOnTop: false,\n validated: 'default',\n 'aria-label': '',\n 'aria-labelledby': '',\n 'aria-describedby': '',\n 'aria-invalid': false,\n typeAheadAriaLabel: '',\n typeAheadAriaDescribedby: '',\n clearSelectionsAriaLabel: 'Clear all',\n toggleAriaLabel: 'Options menu',\n removeSelectionAriaLabel: 'Remove',\n selections: [],\n createText: 'Create',\n placeholderText: '',\n noResultsFoundText: 'No results found',\n variant: SelectVariant.single,\n width: '',\n onClear: () => undefined,\n onCreateOption: () => undefined,\n toggleIcon: null,\n toggleIndicator: null,\n onFilter: null,\n onTypeaheadInputChanged: null,\n customContent: null,\n hasInlineFilter: false,\n inlineFilterPlaceholderText: null,\n customBadgeText: null,\n inputIdPrefix: '',\n inputAutoComplete: 'off',\n menuAppendTo: 'inline',\n favorites: [],\n favoritesLabel: 'Favorites',\n ouiaSafe: true,\n chipGroupComponent: null,\n isInputValuePersisted: false,\n isInputFilterPersisted: false,\n isCreateSelectOptionObject: false,\n shouldResetOnSelect: true,\n isFlipEnabled: true,\n zIndex: 9999\n};\nexport { Select };\n//# sourceMappingURL=Select.js.map","import { jsx as e, jsxs as f } from \"react/jsx-runtime\";\nimport { Brand as R, Avatar as F } from \"@patternfly/react-core\";\nimport { Dropdown as U, KebabToggle as A, DropdownToggle as C, DropdownItem as h, PageHeader as N, PageHeaderTools as O, PageHeaderToolsGroup as D, PageHeaderToolsItem as p } from \"@patternfly/react-core/deprecated\";\nimport { useState as y, createContext as w, useContext as k, useCallback as K, useMemo as x } from \"react\";\nimport m from \"@patternfly/react-styles/css/components/Avatar/avatar\";\nimport { css as I } from \"@patternfly/react-styles\";\nconst v = ({\n isKebab: n = !1,\n title: t,\n dropDownItems: o,\n ...l\n}) => {\n const [r, i] = y(!1);\n return /* @__PURE__ */ e(\n U,\n {\n ...l,\n isPlain: !0,\n position: \"right\",\n toggle: n ? /* @__PURE__ */ e(A, { onToggle: (a, s) => i(s), children: t }) : /* @__PURE__ */ e(C, { onToggle: (a, s) => i(s), children: t }),\n isOpen: r,\n dropdownItems: o\n }\n );\n}, z = {\n avatar: \"Avatar\",\n fullName: \"{{givenName}} {{familyName}}\",\n manageAccount: \"Manage account\",\n signOut: \"Sign out\",\n unknownUser: \"Anonymous\"\n}, T = w(z), M = () => k(T), Q = ({\n translations: n,\n children: t\n}) => /* @__PURE__ */ e(T.Provider, { value: n, children: t }), _ = () => {\n const n = M(), t = K(\n (o, l) => {\n const r = n[o];\n return l ? Object.entries(l).reduce(\n (i, [a, s]) => i.replaceAll(`{{${a}}}`, s),\n r\n ) : r;\n },\n [n]\n );\n return x(() => ({ t }), [t]);\n};\nfunction H(n, t) {\n if (!n)\n return t(\"unknownUser\");\n const o = n.given_name, l = n.family_name, r = n.preferred_username;\n return o && l ? t(\"fullName\", { givenName: o, familyName: l }) : o || l || r || t(\"unknownUser\");\n}\nconst S = ({\n className: n = \"\",\n border: t,\n size: o = \"md\"\n}) => /* @__PURE__ */ f(\n \"svg\",\n {\n className: I(\n m.avatar,\n m.modifiers[o],\n t === \"light\" && m.modifiers.light,\n t === \"dark\" && m.modifiers.dark,\n n\n ),\n enableBackground: \"new 0 0 36 36\",\n version: \"1.1\",\n viewBox: \"0 0 36 36\",\n xmlns: \"http://www.w3.org/2000/svg\",\n children: [\n /* @__PURE__ */ e(\n \"circle\",\n {\n style: { fillRule: \"evenodd\", clipRule: \"evenodd\", fill: \"#FFFFFF\" },\n cx: \"18\",\n cy: \"18.5\",\n r: \"18\"\n }\n ),\n /* @__PURE__ */ e(\"defs\", { children: /* @__PURE__ */ e(\n \"filter\",\n {\n id: \"b\",\n x: \"5.2\",\n y: \"7.2\",\n width: \"25.6\",\n height: \"53.6\",\n filterUnits: \"userSpaceOnUse\",\n children: /* @__PURE__ */ e(\"feColorMatrix\", { values: \"1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0\" })\n }\n ) }),\n /* @__PURE__ */ e(\n \"mask\",\n {\n id: \"a\",\n x: \"5.2\",\n y: \"7.2\",\n width: \"25.6\",\n height: \"53.6\",\n maskUnits: \"userSpaceOnUse\",\n children: /* @__PURE__ */ e(\"g\", { style: { filter: 'url(\"#b\")' }, children: /* @__PURE__ */ e(\n \"circle\",\n {\n style: { fillRule: \"evenodd\", clipRule: \"evenodd\", fill: \"#FFFFFF\" },\n cx: \"18\",\n cy: \"18.5\",\n r: \"18\"\n }\n ) })\n }\n ),\n /* @__PURE__ */ e(\"g\", { style: { filter: 'url(\"#a\")' }, children: /* @__PURE__ */ f(\"g\", { transform: \"translate(5.04 6.88)\", children: [\n /* @__PURE__ */ e(\n \"path\",\n {\n style: {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n fill: \"#BBBBBB\"\n },\n d: \"m22.6 18.1c-1.1-1.4-2.3-2.2-3.5-2.6s-1.8-0.6-6.3-0.6-6.1 0.7-6.1 0.7 0 0 0 0c-1.2 0.4-2.4 1.2-3.4 2.6-2.3 2.8-3.2 12.3-3.2 14.8 0 3.2 0.4 12.3 0.6 15.4 0 0-0.4 5.5 4 5.5l-0.3-6.3-0.4-3.5 0.2-0.9c0.9 0.4 3.6 1.2 8.6 1.2 5.3 0 8-0.9 8.8-1.3l0.2 1-0.2 3.6-0.3 6.3c3 0.1 3.7-3 3.8-4.4s0.6-12.6 0.6-16.5c0.1-2.6-0.8-12.1-3.1-15z\"\n }\n ),\n /* @__PURE__ */ e(\n \"path\",\n {\n style: {\n opacity: 0.1,\n fillRule: \"evenodd\",\n clipRule: \"evenodd\"\n },\n d: \"m22.5 26c-0.1-2.1-1.5-2.8-4.8-2.8l2.2 9.6s1.8-1.7 3-1.8c0 0-0.4-4.6-0.4-5z\"\n }\n ),\n /* @__PURE__ */ e(\n \"path\",\n {\n style: {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n fill: \"#BBBBBB\"\n },\n d: \"m12.7 13.2c-3.5 0-6.4-2.9-6.4-6.4s2.9-6.4 6.4-6.4 6.4 2.9 6.4 6.4-2.8 6.4-6.4 6.4z\"\n }\n ),\n /* @__PURE__ */ e(\n \"path\",\n {\n style: {\n opacity: 0.08,\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n fill: \"#231F20\"\n },\n d: \"m9.4 6.8c0-3 2.1-5.5 4.9-6.3-0.5-0.1-1-0.2-1.6-0.2-3.5 0-6.4 2.9-6.4 6.4s2.9 6.4 6.4 6.4c0.6 0 1.1-0.1 1.6-0.2-2.8-0.6-4.9-3.1-4.9-6.1z\"\n }\n ),\n /* @__PURE__ */ e(\n \"path\",\n {\n style: {\n opacity: 0.1,\n fillRule: \"evenodd\",\n clipRule: \"evenodd\"\n },\n d: \"m8.3 22.4c-2 0.4-2.9 1.4-3.1 3.5l-0.6 18.6s1.7 0.7 3.6 0.9l0.1-23z\"\n }\n )\n ] }) })\n ]\n }\n), B = w(void 0), j = () => k(B), V = ({\n keycloak: n,\n children: t\n}) => {\n const [o, l] = y(n.tokenParsed), r = x(\n () => ({\n keycloak: n,\n token: o,\n updateToken: async () => {\n await n.updateToken(-1), l(n.tokenParsed);\n }\n }),\n [n, o]\n );\n return /* @__PURE__ */ e(B.Provider, { value: r, children: t });\n}, W = ({\n brand: { href: n, ...t },\n avatar: o,\n features: {\n hasLogout: l = !0,\n hasManageAccount: r = !0,\n hasUsername: i = !0\n } = {},\n kebabDropdownItems: a,\n dropdownItems: s = [],\n toolbarItems: b,\n ...P\n}) => {\n const { t: d } = _(), { keycloak: c } = j(), u = [];\n r && u.push(\n /* @__PURE__ */ e(\n h,\n {\n onClick: () => c.accountManagement(),\n children: d(\"manageAccount\")\n },\n \"manageAccount\"\n )\n ), l && u.push(\n /* @__PURE__ */ e(h, { onClick: () => c.logout(), children: d(\"signOut\") }, \"signOut\")\n );\n const g = c.tokenParsed?.picture;\n return /* @__PURE__ */ e(\n N,\n {\n ...P,\n logo: /* @__PURE__ */ e(R, { ...t }),\n logoProps: { href: n },\n headerTools: /* @__PURE__ */ f(O, { children: [\n /* @__PURE__ */ f(D, { children: [\n /* @__PURE__ */ e(\n p,\n {\n visibility: {\n md: \"hidden\"\n },\n children: /* @__PURE__ */ e(\n v,\n {\n \"data-testid\": \"options-kebab\",\n isKebab: !0,\n dropDownItems: [\n ...a || s,\n u\n ]\n }\n )\n }\n ),\n /* @__PURE__ */ e(p, { children: b }),\n /* @__PURE__ */ e(\n p,\n {\n visibility: {\n default: \"hidden\",\n md: \"visible\"\n },\n children: /* @__PURE__ */ e(\n v,\n {\n \"data-testid\": \"options\",\n dropDownItems: [...s, u],\n title: i ? H(c.tokenParsed, d) : void 0\n }\n )\n }\n )\n ] }),\n g || o?.src ? /* @__PURE__ */ e(F, { src: g, alt: d(\"avatar\"), ...o }) : /* @__PURE__ */ e(S, { ...o })\n ] })\n }\n );\n};\nexport {\n W as KeycloakMasthead,\n V as KeycloakProvider,\n Q as TranslationsProvider,\n z as defaultTranslations,\n j as useKeycloak\n};\n","export default {}","/**\n * [js-sha256]{@link https://github.com/emn178/js-sha256}\n *\n * @version 0.11.0\n * @author Chen, Yi-Cyuan [emn178@gmail.com]\n * @copyright Chen, Yi-Cyuan 2014-2024\n * @license MIT\n */\n/*jslint bitwise: true */\n(function () {\n 'use strict';\n\n var ERROR = 'input is invalid type';\n var WINDOW = typeof window === 'object';\n var root = WINDOW ? window : {};\n if (root.JS_SHA256_NO_WINDOW) {\n WINDOW = false;\n }\n var WEB_WORKER = !WINDOW && typeof self === 'object';\n var NODE_JS = !root.JS_SHA256_NO_NODE_JS && typeof process === 'object' && process.versions && process.versions.node;\n if (NODE_JS) {\n root = global;\n } else if (WEB_WORKER) {\n root = self;\n }\n var COMMON_JS = !root.JS_SHA256_NO_COMMON_JS && typeof module === 'object' && module.exports;\n var AMD = typeof define === 'function' && define.amd;\n var ARRAY_BUFFER = !root.JS_SHA256_NO_ARRAY_BUFFER && typeof ArrayBuffer !== 'undefined';\n var HEX_CHARS = '0123456789abcdef'.split('');\n var EXTRA = [-2147483648, 8388608, 32768, 128];\n var SHIFT = [24, 16, 8, 0];\n var K = [\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n ];\n var OUTPUT_TYPES = ['hex', 'array', 'digest', 'arrayBuffer'];\n\n var blocks = [];\n\n if (root.JS_SHA256_NO_NODE_JS || !Array.isArray) {\n Array.isArray = function (obj) {\n return Object.prototype.toString.call(obj) === '[object Array]';\n };\n }\n\n if (ARRAY_BUFFER && (root.JS_SHA256_NO_ARRAY_BUFFER_IS_VIEW || !ArrayBuffer.isView)) {\n ArrayBuffer.isView = function (obj) {\n return typeof obj === 'object' && obj.buffer && obj.buffer.constructor === ArrayBuffer;\n };\n }\n\n var createOutputMethod = function (outputType, is224) {\n return function (message) {\n return new Sha256(is224, true).update(message)[outputType]();\n };\n };\n\n var createMethod = function (is224) {\n var method = createOutputMethod('hex', is224);\n if (NODE_JS) {\n method = nodeWrap(method, is224);\n }\n method.create = function () {\n return new Sha256(is224);\n };\n method.update = function (message) {\n return method.create().update(message);\n };\n for (var i = 0; i < OUTPUT_TYPES.length; ++i) {\n var type = OUTPUT_TYPES[i];\n method[type] = createOutputMethod(type, is224);\n }\n return method;\n };\n\n var nodeWrap = function (method, is224) {\n var crypto = require('crypto')\n var Buffer = require('buffer').Buffer;\n var algorithm = is224 ? 'sha224' : 'sha256';\n var bufferFrom;\n if (Buffer.from && !root.JS_SHA256_NO_BUFFER_FROM) {\n bufferFrom = Buffer.from;\n } else {\n bufferFrom = function (message) {\n return new Buffer(message);\n };\n }\n var nodeMethod = function (message) {\n if (typeof message === 'string') {\n return crypto.createHash(algorithm).update(message, 'utf8').digest('hex');\n } else {\n if (message === null || message === undefined) {\n throw new Error(ERROR);\n } else if (message.constructor === ArrayBuffer) {\n message = new Uint8Array(message);\n }\n }\n if (Array.isArray(message) || ArrayBuffer.isView(message) ||\n message.constructor === Buffer) {\n return crypto.createHash(algorithm).update(bufferFrom(message)).digest('hex');\n } else {\n return method(message);\n }\n };\n return nodeMethod;\n };\n\n var createHmacOutputMethod = function (outputType, is224) {\n return function (key, message) {\n return new HmacSha256(key, is224, true).update(message)[outputType]();\n };\n };\n\n var createHmacMethod = function (is224) {\n var method = createHmacOutputMethod('hex', is224);\n method.create = function (key) {\n return new HmacSha256(key, is224);\n };\n method.update = function (key, message) {\n return method.create(key).update(message);\n };\n for (var i = 0; i < OUTPUT_TYPES.length; ++i) {\n var type = OUTPUT_TYPES[i];\n method[type] = createHmacOutputMethod(type, is224);\n }\n return method;\n };\n\n function Sha256(is224, sharedMemory) {\n if (sharedMemory) {\n blocks[0] = blocks[16] = blocks[1] = blocks[2] = blocks[3] =\n blocks[4] = blocks[5] = blocks[6] = blocks[7] =\n blocks[8] = blocks[9] = blocks[10] = blocks[11] =\n blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;\n this.blocks = blocks;\n } else {\n this.blocks = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n }\n\n if (is224) {\n this.h0 = 0xc1059ed8;\n this.h1 = 0x367cd507;\n this.h2 = 0x3070dd17;\n this.h3 = 0xf70e5939;\n this.h4 = 0xffc00b31;\n this.h5 = 0x68581511;\n this.h6 = 0x64f98fa7;\n this.h7 = 0xbefa4fa4;\n } else { // 256\n this.h0 = 0x6a09e667;\n this.h1 = 0xbb67ae85;\n this.h2 = 0x3c6ef372;\n this.h3 = 0xa54ff53a;\n this.h4 = 0x510e527f;\n this.h5 = 0x9b05688c;\n this.h6 = 0x1f83d9ab;\n this.h7 = 0x5be0cd19;\n }\n\n this.block = this.start = this.bytes = this.hBytes = 0;\n this.finalized = this.hashed = false;\n this.first = true;\n this.is224 = is224;\n }\n\n Sha256.prototype.update = function (message) {\n if (this.finalized) {\n return;\n }\n var notString, type = typeof message;\n if (type !== 'string') {\n if (type === 'object') {\n if (message === null) {\n throw new Error(ERROR);\n } else if (ARRAY_BUFFER && message.constructor === ArrayBuffer) {\n message = new Uint8Array(message);\n } else if (!Array.isArray(message)) {\n if (!ARRAY_BUFFER || !ArrayBuffer.isView(message)) {\n throw new Error(ERROR);\n }\n }\n } else {\n throw new Error(ERROR);\n }\n notString = true;\n }\n var code, index = 0, i, length = message.length, blocks = this.blocks;\n while (index < length) {\n if (this.hashed) {\n this.hashed = false;\n blocks[0] = this.block;\n this.block = blocks[16] = blocks[1] = blocks[2] = blocks[3] =\n blocks[4] = blocks[5] = blocks[6] = blocks[7] =\n blocks[8] = blocks[9] = blocks[10] = blocks[11] =\n blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;\n }\n\n if (notString) {\n for (i = this.start; index < length && i < 64; ++index) {\n blocks[i >>> 2] |= message[index] << SHIFT[i++ & 3];\n }\n } else {\n for (i = this.start; index < length && i < 64; ++index) {\n code = message.charCodeAt(index);\n if (code < 0x80) {\n blocks[i >>> 2] |= code << SHIFT[i++ & 3];\n } else if (code < 0x800) {\n blocks[i >>> 2] |= (0xc0 | (code >>> 6)) << SHIFT[i++ & 3];\n blocks[i >>> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n } else if (code < 0xd800 || code >= 0xe000) {\n blocks[i >>> 2] |= (0xe0 | (code >>> 12)) << SHIFT[i++ & 3];\n blocks[i >>> 2] |= (0x80 | ((code >>> 6) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >>> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n } else {\n code = 0x10000 + (((code & 0x3ff) << 10) | (message.charCodeAt(++index) & 0x3ff));\n blocks[i >>> 2] |= (0xf0 | (code >>> 18)) << SHIFT[i++ & 3];\n blocks[i >>> 2] |= (0x80 | ((code >>> 12) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >>> 2] |= (0x80 | ((code >>> 6) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >>> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n }\n }\n }\n\n this.lastByteIndex = i;\n this.bytes += i - this.start;\n if (i >= 64) {\n this.block = blocks[16];\n this.start = i - 64;\n this.hash();\n this.hashed = true;\n } else {\n this.start = i;\n }\n }\n if (this.bytes > 4294967295) {\n this.hBytes += this.bytes / 4294967296 << 0;\n this.bytes = this.bytes % 4294967296;\n }\n return this;\n };\n\n Sha256.prototype.finalize = function () {\n if (this.finalized) {\n return;\n }\n this.finalized = true;\n var blocks = this.blocks, i = this.lastByteIndex;\n blocks[16] = this.block;\n blocks[i >>> 2] |= EXTRA[i & 3];\n this.block = blocks[16];\n if (i >= 56) {\n if (!this.hashed) {\n this.hash();\n }\n blocks[0] = this.block;\n blocks[16] = blocks[1] = blocks[2] = blocks[3] =\n blocks[4] = blocks[5] = blocks[6] = blocks[7] =\n blocks[8] = blocks[9] = blocks[10] = blocks[11] =\n blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;\n }\n blocks[14] = this.hBytes << 3 | this.bytes >>> 29;\n blocks[15] = this.bytes << 3;\n this.hash();\n };\n\n Sha256.prototype.hash = function () {\n var a = this.h0, b = this.h1, c = this.h2, d = this.h3, e = this.h4, f = this.h5, g = this.h6,\n h = this.h7, blocks = this.blocks, j, s0, s1, maj, t1, t2, ch, ab, da, cd, bc;\n\n for (j = 16; j < 64; ++j) {\n // rightrotate\n t1 = blocks[j - 15];\n s0 = ((t1 >>> 7) | (t1 << 25)) ^ ((t1 >>> 18) | (t1 << 14)) ^ (t1 >>> 3);\n t1 = blocks[j - 2];\n s1 = ((t1 >>> 17) | (t1 << 15)) ^ ((t1 >>> 19) | (t1 << 13)) ^ (t1 >>> 10);\n blocks[j] = blocks[j - 16] + s0 + blocks[j - 7] + s1 << 0;\n }\n\n bc = b & c;\n for (j = 0; j < 64; j += 4) {\n if (this.first) {\n if (this.is224) {\n ab = 300032;\n t1 = blocks[0] - 1413257819;\n h = t1 - 150054599 << 0;\n d = t1 + 24177077 << 0;\n } else {\n ab = 704751109;\n t1 = blocks[0] - 210244248;\n h = t1 - 1521486534 << 0;\n d = t1 + 143694565 << 0;\n }\n this.first = false;\n } else {\n s0 = ((a >>> 2) | (a << 30)) ^ ((a >>> 13) | (a << 19)) ^ ((a >>> 22) | (a << 10));\n s1 = ((e >>> 6) | (e << 26)) ^ ((e >>> 11) | (e << 21)) ^ ((e >>> 25) | (e << 7));\n ab = a & b;\n maj = ab ^ (a & c) ^ bc;\n ch = (e & f) ^ (~e & g);\n t1 = h + s1 + ch + K[j] + blocks[j];\n t2 = s0 + maj;\n h = d + t1 << 0;\n d = t1 + t2 << 0;\n }\n s0 = ((d >>> 2) | (d << 30)) ^ ((d >>> 13) | (d << 19)) ^ ((d >>> 22) | (d << 10));\n s1 = ((h >>> 6) | (h << 26)) ^ ((h >>> 11) | (h << 21)) ^ ((h >>> 25) | (h << 7));\n da = d & a;\n maj = da ^ (d & b) ^ ab;\n ch = (h & e) ^ (~h & f);\n t1 = g + s1 + ch + K[j + 1] + blocks[j + 1];\n t2 = s0 + maj;\n g = c + t1 << 0;\n c = t1 + t2 << 0;\n s0 = ((c >>> 2) | (c << 30)) ^ ((c >>> 13) | (c << 19)) ^ ((c >>> 22) | (c << 10));\n s1 = ((g >>> 6) | (g << 26)) ^ ((g >>> 11) | (g << 21)) ^ ((g >>> 25) | (g << 7));\n cd = c & d;\n maj = cd ^ (c & a) ^ da;\n ch = (g & h) ^ (~g & e);\n t1 = f + s1 + ch + K[j + 2] + blocks[j + 2];\n t2 = s0 + maj;\n f = b + t1 << 0;\n b = t1 + t2 << 0;\n s0 = ((b >>> 2) | (b << 30)) ^ ((b >>> 13) | (b << 19)) ^ ((b >>> 22) | (b << 10));\n s1 = ((f >>> 6) | (f << 26)) ^ ((f >>> 11) | (f << 21)) ^ ((f >>> 25) | (f << 7));\n bc = b & c;\n maj = bc ^ (b & d) ^ cd;\n ch = (f & g) ^ (~f & h);\n t1 = e + s1 + ch + K[j + 3] + blocks[j + 3];\n t2 = s0 + maj;\n e = a + t1 << 0;\n a = t1 + t2 << 0;\n this.chromeBugWorkAround = true;\n }\n\n this.h0 = this.h0 + a << 0;\n this.h1 = this.h1 + b << 0;\n this.h2 = this.h2 + c << 0;\n this.h3 = this.h3 + d << 0;\n this.h4 = this.h4 + e << 0;\n this.h5 = this.h5 + f << 0;\n this.h6 = this.h6 + g << 0;\n this.h7 = this.h7 + h << 0;\n };\n\n Sha256.prototype.hex = function () {\n this.finalize();\n\n var h0 = this.h0, h1 = this.h1, h2 = this.h2, h3 = this.h3, h4 = this.h4, h5 = this.h5,\n h6 = this.h6, h7 = this.h7;\n\n var hex = HEX_CHARS[(h0 >>> 28) & 0x0F] + HEX_CHARS[(h0 >>> 24) & 0x0F] +\n HEX_CHARS[(h0 >>> 20) & 0x0F] + HEX_CHARS[(h0 >>> 16) & 0x0F] +\n HEX_CHARS[(h0 >>> 12) & 0x0F] + HEX_CHARS[(h0 >>> 8) & 0x0F] +\n HEX_CHARS[(h0 >>> 4) & 0x0F] + HEX_CHARS[h0 & 0x0F] +\n HEX_CHARS[(h1 >>> 28) & 0x0F] + HEX_CHARS[(h1 >>> 24) & 0x0F] +\n HEX_CHARS[(h1 >>> 20) & 0x0F] + HEX_CHARS[(h1 >>> 16) & 0x0F] +\n HEX_CHARS[(h1 >>> 12) & 0x0F] + HEX_CHARS[(h1 >>> 8) & 0x0F] +\n HEX_CHARS[(h1 >>> 4) & 0x0F] + HEX_CHARS[h1 & 0x0F] +\n HEX_CHARS[(h2 >>> 28) & 0x0F] + HEX_CHARS[(h2 >>> 24) & 0x0F] +\n HEX_CHARS[(h2 >>> 20) & 0x0F] + HEX_CHARS[(h2 >>> 16) & 0x0F] +\n HEX_CHARS[(h2 >>> 12) & 0x0F] + HEX_CHARS[(h2 >>> 8) & 0x0F] +\n HEX_CHARS[(h2 >>> 4) & 0x0F] + HEX_CHARS[h2 & 0x0F] +\n HEX_CHARS[(h3 >>> 28) & 0x0F] + HEX_CHARS[(h3 >>> 24) & 0x0F] +\n HEX_CHARS[(h3 >>> 20) & 0x0F] + HEX_CHARS[(h3 >>> 16) & 0x0F] +\n HEX_CHARS[(h3 >>> 12) & 0x0F] + HEX_CHARS[(h3 >>> 8) & 0x0F] +\n HEX_CHARS[(h3 >>> 4) & 0x0F] + HEX_CHARS[h3 & 0x0F] +\n HEX_CHARS[(h4 >>> 28) & 0x0F] + HEX_CHARS[(h4 >>> 24) & 0x0F] +\n HEX_CHARS[(h4 >>> 20) & 0x0F] + HEX_CHARS[(h4 >>> 16) & 0x0F] +\n HEX_CHARS[(h4 >>> 12) & 0x0F] + HEX_CHARS[(h4 >>> 8) & 0x0F] +\n HEX_CHARS[(h4 >>> 4) & 0x0F] + HEX_CHARS[h4 & 0x0F] +\n HEX_CHARS[(h5 >>> 28) & 0x0F] + HEX_CHARS[(h5 >>> 24) & 0x0F] +\n HEX_CHARS[(h5 >>> 20) & 0x0F] + HEX_CHARS[(h5 >>> 16) & 0x0F] +\n HEX_CHARS[(h5 >>> 12) & 0x0F] + HEX_CHARS[(h5 >>> 8) & 0x0F] +\n HEX_CHARS[(h5 >>> 4) & 0x0F] + HEX_CHARS[h5 & 0x0F] +\n HEX_CHARS[(h6 >>> 28) & 0x0F] + HEX_CHARS[(h6 >>> 24) & 0x0F] +\n HEX_CHARS[(h6 >>> 20) & 0x0F] + HEX_CHARS[(h6 >>> 16) & 0x0F] +\n HEX_CHARS[(h6 >>> 12) & 0x0F] + HEX_CHARS[(h6 >>> 8) & 0x0F] +\n HEX_CHARS[(h6 >>> 4) & 0x0F] + HEX_CHARS[h6 & 0x0F];\n if (!this.is224) {\n hex += HEX_CHARS[(h7 >>> 28) & 0x0F] + HEX_CHARS[(h7 >>> 24) & 0x0F] +\n HEX_CHARS[(h7 >>> 20) & 0x0F] + HEX_CHARS[(h7 >>> 16) & 0x0F] +\n HEX_CHARS[(h7 >>> 12) & 0x0F] + HEX_CHARS[(h7 >>> 8) & 0x0F] +\n HEX_CHARS[(h7 >>> 4) & 0x0F] + HEX_CHARS[h7 & 0x0F];\n }\n return hex;\n };\n\n Sha256.prototype.toString = Sha256.prototype.hex;\n\n Sha256.prototype.digest = function () {\n this.finalize();\n\n var h0 = this.h0, h1 = this.h1, h2 = this.h2, h3 = this.h3, h4 = this.h4, h5 = this.h5,\n h6 = this.h6, h7 = this.h7;\n\n var arr = [\n (h0 >>> 24) & 0xFF, (h0 >>> 16) & 0xFF, (h0 >>> 8) & 0xFF, h0 & 0xFF,\n (h1 >>> 24) & 0xFF, (h1 >>> 16) & 0xFF, (h1 >>> 8) & 0xFF, h1 & 0xFF,\n (h2 >>> 24) & 0xFF, (h2 >>> 16) & 0xFF, (h2 >>> 8) & 0xFF, h2 & 0xFF,\n (h3 >>> 24) & 0xFF, (h3 >>> 16) & 0xFF, (h3 >>> 8) & 0xFF, h3 & 0xFF,\n (h4 >>> 24) & 0xFF, (h4 >>> 16) & 0xFF, (h4 >>> 8) & 0xFF, h4 & 0xFF,\n (h5 >>> 24) & 0xFF, (h5 >>> 16) & 0xFF, (h5 >>> 8) & 0xFF, h5 & 0xFF,\n (h6 >>> 24) & 0xFF, (h6 >>> 16) & 0xFF, (h6 >>> 8) & 0xFF, h6 & 0xFF\n ];\n if (!this.is224) {\n arr.push((h7 >>> 24) & 0xFF, (h7 >>> 16) & 0xFF, (h7 >>> 8) & 0xFF, h7 & 0xFF);\n }\n return arr;\n };\n\n Sha256.prototype.array = Sha256.prototype.digest;\n\n Sha256.prototype.arrayBuffer = function () {\n this.finalize();\n\n var buffer = new ArrayBuffer(this.is224 ? 28 : 32);\n var dataView = new DataView(buffer);\n dataView.setUint32(0, this.h0);\n dataView.setUint32(4, this.h1);\n dataView.setUint32(8, this.h2);\n dataView.setUint32(12, this.h3);\n dataView.setUint32(16, this.h4);\n dataView.setUint32(20, this.h5);\n dataView.setUint32(24, this.h6);\n if (!this.is224) {\n dataView.setUint32(28, this.h7);\n }\n return buffer;\n };\n\n function HmacSha256(key, is224, sharedMemory) {\n var i, type = typeof key;\n if (type === 'string') {\n var bytes = [], length = key.length, index = 0, code;\n for (i = 0; i < length; ++i) {\n code = key.charCodeAt(i);\n if (code < 0x80) {\n bytes[index++] = code;\n } else if (code < 0x800) {\n bytes[index++] = (0xc0 | (code >>> 6));\n bytes[index++] = (0x80 | (code & 0x3f));\n } else if (code < 0xd800 || code >= 0xe000) {\n bytes[index++] = (0xe0 | (code >>> 12));\n bytes[index++] = (0x80 | ((code >>> 6) & 0x3f));\n bytes[index++] = (0x80 | (code & 0x3f));\n } else {\n code = 0x10000 + (((code & 0x3ff) << 10) | (key.charCodeAt(++i) & 0x3ff));\n bytes[index++] = (0xf0 | (code >>> 18));\n bytes[index++] = (0x80 | ((code >>> 12) & 0x3f));\n bytes[index++] = (0x80 | ((code >>> 6) & 0x3f));\n bytes[index++] = (0x80 | (code & 0x3f));\n }\n }\n key = bytes;\n } else {\n if (type === 'object') {\n if (key === null) {\n throw new Error(ERROR);\n } else if (ARRAY_BUFFER && key.constructor === ArrayBuffer) {\n key = new Uint8Array(key);\n } else if (!Array.isArray(key)) {\n if (!ARRAY_BUFFER || !ArrayBuffer.isView(key)) {\n throw new Error(ERROR);\n }\n }\n } else {\n throw new Error(ERROR);\n }\n }\n\n if (key.length > 64) {\n key = (new Sha256(is224, true)).update(key).array();\n }\n\n var oKeyPad = [], iKeyPad = [];\n for (i = 0; i < 64; ++i) {\n var b = key[i] || 0;\n oKeyPad[i] = 0x5c ^ b;\n iKeyPad[i] = 0x36 ^ b;\n }\n\n Sha256.call(this, is224, sharedMemory);\n\n this.update(iKeyPad);\n this.oKeyPad = oKeyPad;\n this.inner = true;\n this.sharedMemory = sharedMemory;\n }\n HmacSha256.prototype = new Sha256();\n\n HmacSha256.prototype.finalize = function () {\n Sha256.prototype.finalize.call(this);\n if (this.inner) {\n this.inner = false;\n var innerHash = this.array();\n Sha256.call(this, this.is224, this.sharedMemory);\n this.update(this.oKeyPad);\n this.update(innerHash);\n Sha256.prototype.finalize.call(this);\n }\n };\n\n var exports = createMethod();\n exports.sha256 = exports;\n exports.sha224 = createMethod(true);\n exports.sha256.hmac = createHmacMethod();\n exports.sha224.hmac = createHmacMethod(true);\n\n if (COMMON_JS) {\n module.exports = exports;\n } else {\n root.sha256 = exports.sha256;\n root.sha224 = exports.sha224;\n if (AMD) {\n define(function () {\n return exports;\n });\n }\n }\n})();\n","export class InvalidTokenError extends Error {\n}\nInvalidTokenError.prototype.name = \"InvalidTokenError\";\nfunction b64DecodeUnicode(str) {\n return decodeURIComponent(atob(str).replace(/(.)/g, (m, p) => {\n let code = p.charCodeAt(0).toString(16).toUpperCase();\n if (code.length < 2) {\n code = \"0\" + code;\n }\n return \"%\" + code;\n }));\n}\nfunction base64UrlDecode(str) {\n let output = str.replace(/-/g, \"+\").replace(/_/g, \"/\");\n switch (output.length % 4) {\n case 0:\n break;\n case 2:\n output += \"==\";\n break;\n case 3:\n output += \"=\";\n break;\n default:\n throw new Error(\"base64 string is not of the correct length\");\n }\n try {\n return b64DecodeUnicode(output);\n }\n catch (err) {\n return atob(output);\n }\n}\nexport function jwtDecode(token, options) {\n if (typeof token !== \"string\") {\n throw new InvalidTokenError(\"Invalid token specified: must be a string\");\n }\n options || (options = {});\n const pos = options.header === true ? 0 : 1;\n const part = token.split(\".\")[pos];\n if (typeof part !== \"string\") {\n throw new InvalidTokenError(`Invalid token specified: missing part #${pos + 1}`);\n }\n let decoded;\n try {\n decoded = base64UrlDecode(part);\n }\n catch (e) {\n throw new InvalidTokenError(`Invalid token specified: invalid base64 for part #${pos + 1} (${e.message})`);\n }\n try {\n return JSON.parse(decoded);\n }\n catch (e) {\n throw new InvalidTokenError(`Invalid token specified: invalid json for part #${pos + 1} (${e.message})`);\n }\n}\n","import sha256 from 'js-sha256';\nimport { jwtDecode } from 'jwt-decode';\n\n/*\n * Copyright 2016 Red Hat, Inc. and/or its affiliates\n * and other contributors as indicated by the @author tags.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nif (typeof Promise === 'undefined') {\n throw Error('Keycloak requires an environment that supports Promises. Make sure that you include the appropriate polyfill.');\n}\n\nfunction Keycloak (config) {\n if (!(this instanceof Keycloak)) {\n throw new Error(\"The 'Keycloak' constructor must be invoked with 'new'.\")\n }\n\n var kc = this;\n var adapter;\n var refreshQueue = [];\n var callbackStorage;\n\n var loginIframe = {\n enable: true,\n callbackList: [],\n interval: 5\n };\n\n var scripts = document.getElementsByTagName('script');\n for (var i = 0; i < scripts.length; i++) {\n if ((scripts[i].src.indexOf('keycloak.js') !== -1 || scripts[i].src.indexOf('keycloak.min.js') !== -1) && scripts[i].src.indexOf('version=') !== -1) {\n kc.iframeVersion = scripts[i].src.substring(scripts[i].src.indexOf('version=') + 8).split('&')[0];\n }\n }\n\n var useNonce = true;\n var logInfo = createLogger(console.info);\n var logWarn = createLogger(console.warn);\n\n kc.init = function (initOptions) {\n if (kc.didInitialize) {\n throw new Error(\"A 'Keycloak' instance can only be initialized once.\");\n }\n\n kc.didInitialize = true;\n\n kc.authenticated = false;\n\n callbackStorage = createCallbackStorage();\n var adapters = ['default', 'cordova', 'cordova-native'];\n\n if (initOptions && adapters.indexOf(initOptions.adapter) > -1) {\n adapter = loadAdapter(initOptions.adapter);\n } else if (initOptions && typeof initOptions.adapter === \"object\") {\n adapter = initOptions.adapter;\n } else {\n if (window.Cordova || window.cordova) {\n adapter = loadAdapter('cordova');\n } else {\n adapter = loadAdapter();\n }\n }\n\n if (initOptions) {\n if (typeof initOptions.useNonce !== 'undefined') {\n useNonce = initOptions.useNonce;\n }\n\n if (typeof initOptions.checkLoginIframe !== 'undefined') {\n loginIframe.enable = initOptions.checkLoginIframe;\n }\n\n if (initOptions.checkLoginIframeInterval) {\n loginIframe.interval = initOptions.checkLoginIframeInterval;\n }\n\n if (initOptions.onLoad === 'login-required') {\n kc.loginRequired = true;\n }\n\n if (initOptions.responseMode) {\n if (initOptions.responseMode === 'query' || initOptions.responseMode === 'fragment') {\n kc.responseMode = initOptions.responseMode;\n } else {\n throw 'Invalid value for responseMode';\n }\n }\n\n if (initOptions.flow) {\n switch (initOptions.flow) {\n case 'standard':\n kc.responseType = 'code';\n break;\n case 'implicit':\n kc.responseType = 'id_token token';\n break;\n case 'hybrid':\n kc.responseType = 'code id_token token';\n break;\n default:\n throw 'Invalid value for flow';\n }\n kc.flow = initOptions.flow;\n }\n\n if (initOptions.timeSkew != null) {\n kc.timeSkew = initOptions.timeSkew;\n }\n\n if(initOptions.redirectUri) {\n kc.redirectUri = initOptions.redirectUri;\n }\n\n if (initOptions.silentCheckSsoRedirectUri) {\n kc.silentCheckSsoRedirectUri = initOptions.silentCheckSsoRedirectUri;\n }\n\n if (typeof initOptions.silentCheckSsoFallback === 'boolean') {\n kc.silentCheckSsoFallback = initOptions.silentCheckSsoFallback;\n } else {\n kc.silentCheckSsoFallback = true;\n }\n\n if (initOptions.pkceMethod) {\n if (initOptions.pkceMethod !== \"S256\") {\n throw new TypeError(`Invalid value for 'pkceMethod', expected 'S256' but got '${initOptions.pkceMethod}'.`);\n }\n kc.pkceMethod = initOptions.pkceMethod;\n } else {\n kc.pkceMethod = \"S256\";\n }\n\n if (typeof initOptions.enableLogging === 'boolean') {\n kc.enableLogging = initOptions.enableLogging;\n } else {\n kc.enableLogging = false;\n }\n\n if (initOptions.logoutMethod === 'POST') {\n kc.logoutMethod = 'POST';\n } else {\n kc.logoutMethod = 'GET';\n }\n\n if (typeof initOptions.scope === 'string') {\n kc.scope = initOptions.scope;\n }\n\n if (typeof initOptions.acrValues === 'string') {\n kc.acrValues = initOptions.acrValues;\n }\n\n if (typeof initOptions.messageReceiveTimeout === 'number' && initOptions.messageReceiveTimeout > 0) {\n kc.messageReceiveTimeout = initOptions.messageReceiveTimeout;\n } else {\n kc.messageReceiveTimeout = 10000;\n }\n }\n\n if (!kc.responseMode) {\n kc.responseMode = 'fragment';\n }\n if (!kc.responseType) {\n kc.responseType = 'code';\n kc.flow = 'standard';\n }\n\n var promise = createPromise();\n\n var initPromise = createPromise();\n initPromise.promise.then(function() {\n kc.onReady && kc.onReady(kc.authenticated);\n promise.setSuccess(kc.authenticated);\n }).catch(function(error) {\n promise.setError(error);\n });\n\n var configPromise = loadConfig();\n\n function onLoad() {\n var doLogin = function(prompt) {\n if (!prompt) {\n options.prompt = 'none';\n }\n\n if (initOptions && initOptions.locale) {\n options.locale = initOptions.locale;\n }\n kc.login(options).then(function () {\n initPromise.setSuccess();\n }).catch(function (error) {\n initPromise.setError(error);\n });\n };\n\n var checkSsoSilently = function() {\n var ifrm = document.createElement(\"iframe\");\n var src = kc.createLoginUrl({prompt: 'none', redirectUri: kc.silentCheckSsoRedirectUri});\n ifrm.setAttribute(\"src\", src);\n ifrm.setAttribute(\"sandbox\", \"allow-storage-access-by-user-activation allow-scripts allow-same-origin\");\n ifrm.setAttribute(\"title\", \"keycloak-silent-check-sso\");\n ifrm.style.display = \"none\";\n document.body.appendChild(ifrm);\n\n var messageCallback = function(event) {\n if (event.origin !== window.location.origin || ifrm.contentWindow !== event.source) {\n return;\n }\n\n var oauth = parseCallback(event.data);\n processCallback(oauth, initPromise);\n\n document.body.removeChild(ifrm);\n window.removeEventListener(\"message\", messageCallback);\n };\n\n window.addEventListener(\"message\", messageCallback);\n };\n\n var options = {};\n switch (initOptions.onLoad) {\n case 'check-sso':\n if (loginIframe.enable) {\n setupCheckLoginIframe().then(function() {\n checkLoginIframe().then(function (unchanged) {\n if (!unchanged) {\n kc.silentCheckSsoRedirectUri ? checkSsoSilently() : doLogin(false);\n } else {\n initPromise.setSuccess();\n }\n }).catch(function (error) {\n initPromise.setError(error);\n });\n });\n } else {\n kc.silentCheckSsoRedirectUri ? checkSsoSilently() : doLogin(false);\n }\n break;\n case 'login-required':\n doLogin(true);\n break;\n default:\n throw 'Invalid value for onLoad';\n }\n }\n\n function processInit() {\n var callback = parseCallback(window.location.href);\n\n if (callback) {\n window.history.replaceState(window.history.state, null, callback.newUrl);\n }\n\n if (callback && callback.valid) {\n return setupCheckLoginIframe().then(function() {\n processCallback(callback, initPromise);\n }).catch(function (error) {\n initPromise.setError(error);\n });\n } else if (initOptions) {\n if (initOptions.token && initOptions.refreshToken) {\n setToken(initOptions.token, initOptions.refreshToken, initOptions.idToken);\n\n if (loginIframe.enable) {\n setupCheckLoginIframe().then(function() {\n checkLoginIframe().then(function (unchanged) {\n if (unchanged) {\n kc.onAuthSuccess && kc.onAuthSuccess();\n initPromise.setSuccess();\n scheduleCheckIframe();\n } else {\n initPromise.setSuccess();\n }\n }).catch(function (error) {\n initPromise.setError(error);\n });\n });\n } else {\n kc.updateToken(-1).then(function() {\n kc.onAuthSuccess && kc.onAuthSuccess();\n initPromise.setSuccess();\n }).catch(function(error) {\n kc.onAuthError && kc.onAuthError();\n if (initOptions.onLoad) {\n onLoad();\n } else {\n initPromise.setError(error);\n }\n });\n }\n } else if (initOptions.onLoad) {\n onLoad();\n } else {\n initPromise.setSuccess();\n }\n } else {\n initPromise.setSuccess();\n }\n }\n\n function domReady() {\n var promise = createPromise();\n\n var checkReadyState = function () {\n if (document.readyState === 'interactive' || document.readyState === 'complete') {\n document.removeEventListener('readystatechange', checkReadyState);\n promise.setSuccess();\n }\n };\n document.addEventListener('readystatechange', checkReadyState);\n\n checkReadyState(); // just in case the event was already fired and we missed it (in case the init is done later than at the load time, i.e. it's done from code)\n\n return promise.promise;\n }\n\n configPromise.then(function () {\n domReady()\n .then(check3pCookiesSupported)\n .then(processInit)\n .catch(function (error) {\n promise.setError(error);\n });\n });\n configPromise.catch(function (error) {\n promise.setError(error);\n });\n\n return promise.promise;\n };\n\n kc.login = function (options) {\n return adapter.login(options);\n };\n\n function generateRandomData(len) {\n // use web crypto APIs if possible\n var array = null;\n var crypto = window.crypto || window.msCrypto;\n if (crypto && crypto.getRandomValues && window.Uint8Array) {\n array = new Uint8Array(len);\n crypto.getRandomValues(array);\n return array;\n }\n\n // fallback to Math random\n array = new Array(len);\n for (var j = 0; j < array.length; j++) {\n array[j] = Math.floor(256 * Math.random());\n }\n return array;\n }\n\n function generateCodeVerifier(len) {\n return generateRandomString(len, 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789');\n }\n\n function generateRandomString(len, alphabet){\n var randomData = generateRandomData(len);\n var chars = new Array(len);\n for (var i = 0; i < len; i++) {\n chars[i] = alphabet.charCodeAt(randomData[i] % alphabet.length);\n }\n return String.fromCharCode.apply(null, chars);\n }\n\n function generatePkceChallenge(pkceMethod, codeVerifier) {\n if (pkceMethod !== \"S256\") {\n throw new TypeError(`Invalid value for 'pkceMethod', expected 'S256' but got '${pkceMethod}'.`);\n }\n\n // hash codeVerifier, then encode as url-safe base64 without padding\n const hashBytes = new Uint8Array(sha256.arrayBuffer(codeVerifier));\n const encodedHash = bytesToBase64(hashBytes)\n .replace(/\\+/g, '-')\n .replace(/\\//g, '_')\n .replace(/\\=/g, '');\n\n return encodedHash;\n }\n\n function buildClaimsParameter(requestedAcr){\n var claims = {\n id_token: {\n acr: requestedAcr\n }\n };\n return JSON.stringify(claims);\n }\n\n kc.createLoginUrl = function(options) {\n var state = createUUID();\n var nonce = createUUID();\n\n var redirectUri = adapter.redirectUri(options);\n\n var callbackState = {\n state: state,\n nonce: nonce,\n redirectUri: encodeURIComponent(redirectUri),\n loginOptions: options\n };\n\n if (options && options.prompt) {\n callbackState.prompt = options.prompt;\n }\n\n var baseUrl;\n if (options && options.action == 'register') {\n baseUrl = kc.endpoints.register();\n } else {\n baseUrl = kc.endpoints.authorize();\n }\n\n var scope = options && options.scope || kc.scope;\n if (!scope) {\n // if scope is not set, default to \"openid\"\n scope = \"openid\";\n } else if (scope.indexOf(\"openid\") === -1) {\n // if openid scope is missing, prefix the given scopes with it\n scope = \"openid \" + scope;\n }\n\n var url = baseUrl\n + '?client_id=' + encodeURIComponent(kc.clientId)\n + '&redirect_uri=' + encodeURIComponent(redirectUri)\n + '&state=' + encodeURIComponent(state)\n + '&response_mode=' + encodeURIComponent(kc.responseMode)\n + '&response_type=' + encodeURIComponent(kc.responseType)\n + '&scope=' + encodeURIComponent(scope);\n if (useNonce) {\n url = url + '&nonce=' + encodeURIComponent(nonce);\n }\n\n if (options && options.prompt) {\n url += '&prompt=' + encodeURIComponent(options.prompt);\n }\n\n if (options && options.maxAge) {\n url += '&max_age=' + encodeURIComponent(options.maxAge);\n }\n\n if (options && options.loginHint) {\n url += '&login_hint=' + encodeURIComponent(options.loginHint);\n }\n\n if (options && options.idpHint) {\n url += '&kc_idp_hint=' + encodeURIComponent(options.idpHint);\n }\n\n if (options && options.action && options.action != 'register') {\n url += '&kc_action=' + encodeURIComponent(options.action);\n }\n\n if (options && options.locale) {\n url += '&ui_locales=' + encodeURIComponent(options.locale);\n }\n\n if (options && options.acr) {\n var claimsParameter = buildClaimsParameter(options.acr);\n url += '&claims=' + encodeURIComponent(claimsParameter);\n }\n\n if ((options && options.acrValues) || kc.acrValues) {\n url += '&acr_values=' + encodeURIComponent(options.acrValues || kc.acrValues);\n }\n\n if (kc.pkceMethod) {\n var codeVerifier = generateCodeVerifier(96);\n callbackState.pkceCodeVerifier = codeVerifier;\n var pkceChallenge = generatePkceChallenge(kc.pkceMethod, codeVerifier);\n url += '&code_challenge=' + pkceChallenge;\n url += '&code_challenge_method=' + kc.pkceMethod;\n }\n\n callbackStorage.add(callbackState);\n\n return url;\n };\n\n kc.logout = function(options) {\n return adapter.logout(options);\n };\n\n kc.createLogoutUrl = function(options) {\n\n const logoutMethod = options?.logoutMethod ?? kc.logoutMethod;\n if (logoutMethod === 'POST') {\n return kc.endpoints.logout();\n }\n\n var url = kc.endpoints.logout()\n + '?client_id=' + encodeURIComponent(kc.clientId)\n + '&post_logout_redirect_uri=' + encodeURIComponent(adapter.redirectUri(options, false));\n\n if (kc.idToken) {\n url += '&id_token_hint=' + encodeURIComponent(kc.idToken);\n }\n\n return url;\n };\n\n kc.register = function (options) {\n return adapter.register(options);\n };\n\n kc.createRegisterUrl = function(options) {\n if (!options) {\n options = {};\n }\n options.action = 'register';\n return kc.createLoginUrl(options);\n };\n\n kc.createAccountUrl = function(options) {\n var realm = getRealmUrl();\n var url = undefined;\n if (typeof realm !== 'undefined') {\n url = realm\n + '/account'\n + '?referrer=' + encodeURIComponent(kc.clientId)\n + '&referrer_uri=' + encodeURIComponent(adapter.redirectUri(options));\n }\n return url;\n };\n\n kc.accountManagement = function() {\n return adapter.accountManagement();\n };\n\n kc.hasRealmRole = function (role) {\n var access = kc.realmAccess;\n return !!access && access.roles.indexOf(role) >= 0;\n };\n\n kc.hasResourceRole = function(role, resource) {\n if (!kc.resourceAccess) {\n return false;\n }\n\n var access = kc.resourceAccess[resource || kc.clientId];\n return !!access && access.roles.indexOf(role) >= 0;\n };\n\n kc.loadUserProfile = function() {\n var url = getRealmUrl() + '/account';\n var req = new XMLHttpRequest();\n req.open('GET', url, true);\n req.setRequestHeader('Accept', 'application/json');\n req.setRequestHeader('Authorization', 'bearer ' + kc.token);\n\n var promise = createPromise();\n\n req.onreadystatechange = function () {\n if (req.readyState == 4) {\n if (req.status == 200) {\n kc.profile = JSON.parse(req.responseText);\n promise.setSuccess(kc.profile);\n } else {\n promise.setError();\n }\n }\n };\n\n req.send();\n\n return promise.promise;\n };\n\n kc.loadUserInfo = function() {\n var url = kc.endpoints.userinfo();\n var req = new XMLHttpRequest();\n req.open('GET', url, true);\n req.setRequestHeader('Accept', 'application/json');\n req.setRequestHeader('Authorization', 'bearer ' + kc.token);\n\n var promise = createPromise();\n\n req.onreadystatechange = function () {\n if (req.readyState == 4) {\n if (req.status == 200) {\n kc.userInfo = JSON.parse(req.responseText);\n promise.setSuccess(kc.userInfo);\n } else {\n promise.setError();\n }\n }\n };\n\n req.send();\n\n return promise.promise;\n };\n\n kc.isTokenExpired = function(minValidity) {\n if (!kc.tokenParsed || (!kc.refreshToken && kc.flow != 'implicit' )) {\n throw 'Not authenticated';\n }\n\n if (kc.timeSkew == null) {\n logInfo('[KEYCLOAK] Unable to determine if token is expired as timeskew is not set');\n return true;\n }\n\n var expiresIn = kc.tokenParsed['exp'] - Math.ceil(new Date().getTime() / 1000) + kc.timeSkew;\n if (minValidity) {\n if (isNaN(minValidity)) {\n throw 'Invalid minValidity';\n }\n expiresIn -= minValidity;\n }\n return expiresIn < 0;\n };\n\n kc.updateToken = function(minValidity) {\n var promise = createPromise();\n\n if (!kc.refreshToken) {\n promise.setError();\n return promise.promise;\n }\n\n minValidity = minValidity || 5;\n\n var exec = function() {\n var refreshToken = false;\n if (minValidity == -1) {\n refreshToken = true;\n logInfo('[KEYCLOAK] Refreshing token: forced refresh');\n } else if (!kc.tokenParsed || kc.isTokenExpired(minValidity)) {\n refreshToken = true;\n logInfo('[KEYCLOAK] Refreshing token: token expired');\n }\n\n if (!refreshToken) {\n promise.setSuccess(false);\n } else {\n var params = 'grant_type=refresh_token&' + 'refresh_token=' + kc.refreshToken;\n var url = kc.endpoints.token();\n\n refreshQueue.push(promise);\n\n if (refreshQueue.length == 1) {\n var req = new XMLHttpRequest();\n req.open('POST', url, true);\n req.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');\n req.withCredentials = true;\n\n params += '&client_id=' + encodeURIComponent(kc.clientId);\n\n var timeLocal = new Date().getTime();\n\n req.onreadystatechange = function () {\n if (req.readyState == 4) {\n if (req.status == 200) {\n logInfo('[KEYCLOAK] Token refreshed');\n\n timeLocal = (timeLocal + new Date().getTime()) / 2;\n\n var tokenResponse = JSON.parse(req.responseText);\n\n setToken(tokenResponse['access_token'], tokenResponse['refresh_token'], tokenResponse['id_token'], timeLocal);\n\n kc.onAuthRefreshSuccess && kc.onAuthRefreshSuccess();\n for (var p = refreshQueue.pop(); p != null; p = refreshQueue.pop()) {\n p.setSuccess(true);\n }\n } else {\n logWarn('[KEYCLOAK] Failed to refresh token');\n\n if (req.status == 400) {\n kc.clearToken();\n }\n\n kc.onAuthRefreshError && kc.onAuthRefreshError();\n for (var p = refreshQueue.pop(); p != null; p = refreshQueue.pop()) {\n p.setError(true);\n }\n }\n }\n };\n\n req.send(params);\n }\n }\n };\n\n if (loginIframe.enable) {\n var iframePromise = checkLoginIframe();\n iframePromise.then(function() {\n exec();\n }).catch(function(error) {\n promise.setError(error);\n });\n } else {\n exec();\n }\n\n return promise.promise;\n };\n\n kc.clearToken = function() {\n if (kc.token) {\n setToken(null, null, null);\n kc.onAuthLogout && kc.onAuthLogout();\n if (kc.loginRequired) {\n kc.login();\n }\n }\n };\n\n function getRealmUrl() {\n if (typeof kc.authServerUrl !== 'undefined') {\n if (kc.authServerUrl.charAt(kc.authServerUrl.length - 1) == '/') {\n return kc.authServerUrl + 'realms/' + encodeURIComponent(kc.realm);\n } else {\n return kc.authServerUrl + '/realms/' + encodeURIComponent(kc.realm);\n }\n } else {\n return undefined;\n }\n }\n\n function getOrigin() {\n if (!window.location.origin) {\n return window.location.protocol + \"//\" + window.location.hostname + (window.location.port ? ':' + window.location.port: '');\n } else {\n return window.location.origin;\n }\n }\n\n function processCallback(oauth, promise) {\n var code = oauth.code;\n var error = oauth.error;\n var prompt = oauth.prompt;\n\n var timeLocal = new Date().getTime();\n\n if (oauth['kc_action_status']) {\n kc.onActionUpdate && kc.onActionUpdate(oauth['kc_action_status']);\n }\n\n if (error) {\n if (prompt != 'none') {\n if (oauth.error_description && oauth.error_description === \"authentication_expired\") {\n kc.login(oauth.loginOptions);\n } else {\n var errorData = { error: error, error_description: oauth.error_description };\n kc.onAuthError && kc.onAuthError(errorData);\n promise && promise.setError(errorData);\n }\n } else {\n promise && promise.setSuccess();\n }\n return;\n } else if ((kc.flow != 'standard') && (oauth.access_token || oauth.id_token)) {\n authSuccess(oauth.access_token, null, oauth.id_token, true);\n }\n\n if ((kc.flow != 'implicit') && code) {\n var params = 'code=' + code + '&grant_type=authorization_code';\n var url = kc.endpoints.token();\n\n var req = new XMLHttpRequest();\n req.open('POST', url, true);\n req.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');\n\n params += '&client_id=' + encodeURIComponent(kc.clientId);\n params += '&redirect_uri=' + oauth.redirectUri;\n\n if (oauth.pkceCodeVerifier) {\n params += '&code_verifier=' + oauth.pkceCodeVerifier;\n }\n\n req.withCredentials = true;\n\n req.onreadystatechange = function() {\n if (req.readyState == 4) {\n if (req.status == 200) {\n\n var tokenResponse = JSON.parse(req.responseText);\n authSuccess(tokenResponse['access_token'], tokenResponse['refresh_token'], tokenResponse['id_token'], kc.flow === 'standard');\n scheduleCheckIframe();\n } else {\n kc.onAuthError && kc.onAuthError();\n promise && promise.setError();\n }\n }\n };\n\n req.send(params);\n }\n\n function authSuccess(accessToken, refreshToken, idToken, fulfillPromise) {\n timeLocal = (timeLocal + new Date().getTime()) / 2;\n\n setToken(accessToken, refreshToken, idToken, timeLocal);\n\n if (useNonce && (kc.idTokenParsed && kc.idTokenParsed.nonce != oauth.storedNonce)) {\n logInfo('[KEYCLOAK] Invalid nonce, clearing token');\n kc.clearToken();\n promise && promise.setError();\n } else {\n if (fulfillPromise) {\n kc.onAuthSuccess && kc.onAuthSuccess();\n promise && promise.setSuccess();\n }\n }\n }\n\n }\n\n function loadConfig(url) {\n var promise = createPromise();\n var configUrl;\n\n if (!config) {\n configUrl = 'keycloak.json';\n } else if (typeof config === 'string') {\n configUrl = config;\n }\n\n function setupOidcEndoints(oidcConfiguration) {\n if (! oidcConfiguration) {\n kc.endpoints = {\n authorize: function() {\n return getRealmUrl() + '/protocol/openid-connect/auth';\n },\n token: function() {\n return getRealmUrl() + '/protocol/openid-connect/token';\n },\n logout: function() {\n return getRealmUrl() + '/protocol/openid-connect/logout';\n },\n checkSessionIframe: function() {\n var src = getRealmUrl() + '/protocol/openid-connect/login-status-iframe.html';\n if (kc.iframeVersion) {\n src = src + '?version=' + kc.iframeVersion;\n }\n return src;\n },\n thirdPartyCookiesIframe: function() {\n var src = getRealmUrl() + '/protocol/openid-connect/3p-cookies/step1.html';\n if (kc.iframeVersion) {\n src = src + '?version=' + kc.iframeVersion;\n }\n return src;\n },\n register: function() {\n return getRealmUrl() + '/protocol/openid-connect/registrations';\n },\n userinfo: function() {\n return getRealmUrl() + '/protocol/openid-connect/userinfo';\n }\n };\n } else {\n kc.endpoints = {\n authorize: function() {\n return oidcConfiguration.authorization_endpoint;\n },\n token: function() {\n return oidcConfiguration.token_endpoint;\n },\n logout: function() {\n if (!oidcConfiguration.end_session_endpoint) {\n throw \"Not supported by the OIDC server\";\n }\n return oidcConfiguration.end_session_endpoint;\n },\n checkSessionIframe: function() {\n if (!oidcConfiguration.check_session_iframe) {\n throw \"Not supported by the OIDC server\";\n }\n return oidcConfiguration.check_session_iframe;\n },\n register: function() {\n throw 'Redirection to \"Register user\" page not supported in standard OIDC mode';\n },\n userinfo: function() {\n if (!oidcConfiguration.userinfo_endpoint) {\n throw \"Not supported by the OIDC server\";\n }\n return oidcConfiguration.userinfo_endpoint;\n }\n };\n }\n }\n\n if (configUrl) {\n var req = new XMLHttpRequest();\n req.open('GET', configUrl, true);\n req.setRequestHeader('Accept', 'application/json');\n\n req.onreadystatechange = function () {\n if (req.readyState == 4) {\n if (req.status == 200 || fileLoaded(req)) {\n var config = JSON.parse(req.responseText);\n\n kc.authServerUrl = config['auth-server-url'];\n kc.realm = config['realm'];\n kc.clientId = config['resource'];\n setupOidcEndoints(null);\n promise.setSuccess();\n } else {\n promise.setError();\n }\n }\n };\n\n req.send();\n } else {\n if (!config.clientId) {\n throw 'clientId missing';\n }\n\n kc.clientId = config.clientId;\n\n var oidcProvider = config['oidcProvider'];\n if (!oidcProvider) {\n if (!config['url']) {\n var scripts = document.getElementsByTagName('script');\n for (var i = 0; i < scripts.length; i++) {\n if (scripts[i].src.match(/.*keycloak\\.js/)) {\n config.url = scripts[i].src.substr(0, scripts[i].src.indexOf('/js/keycloak.js'));\n break;\n }\n }\n }\n if (!config.realm) {\n throw 'realm missing';\n }\n\n kc.authServerUrl = config.url;\n kc.realm = config.realm;\n setupOidcEndoints(null);\n promise.setSuccess();\n } else {\n if (typeof oidcProvider === 'string') {\n var oidcProviderConfigUrl;\n if (oidcProvider.charAt(oidcProvider.length - 1) == '/') {\n oidcProviderConfigUrl = oidcProvider + '.well-known/openid-configuration';\n } else {\n oidcProviderConfigUrl = oidcProvider + '/.well-known/openid-configuration';\n }\n var req = new XMLHttpRequest();\n req.open('GET', oidcProviderConfigUrl, true);\n req.setRequestHeader('Accept', 'application/json');\n\n req.onreadystatechange = function () {\n if (req.readyState == 4) {\n if (req.status == 200 || fileLoaded(req)) {\n var oidcProviderConfig = JSON.parse(req.responseText);\n setupOidcEndoints(oidcProviderConfig);\n promise.setSuccess();\n } else {\n promise.setError();\n }\n }\n };\n\n req.send();\n } else {\n setupOidcEndoints(oidcProvider);\n promise.setSuccess();\n }\n }\n }\n\n return promise.promise;\n }\n\n function fileLoaded(xhr) {\n return xhr.status == 0 && xhr.responseText && xhr.responseURL.startsWith('file:');\n }\n\n function setToken(token, refreshToken, idToken, timeLocal) {\n if (kc.tokenTimeoutHandle) {\n clearTimeout(kc.tokenTimeoutHandle);\n kc.tokenTimeoutHandle = null;\n }\n\n if (refreshToken) {\n kc.refreshToken = refreshToken;\n kc.refreshTokenParsed = jwtDecode(refreshToken);\n } else {\n delete kc.refreshToken;\n delete kc.refreshTokenParsed;\n }\n\n if (idToken) {\n kc.idToken = idToken;\n kc.idTokenParsed = jwtDecode(idToken);\n } else {\n delete kc.idToken;\n delete kc.idTokenParsed;\n }\n\n if (token) {\n kc.token = token;\n kc.tokenParsed = jwtDecode(token);\n kc.sessionId = kc.tokenParsed.sid;\n kc.authenticated = true;\n kc.subject = kc.tokenParsed.sub;\n kc.realmAccess = kc.tokenParsed.realm_access;\n kc.resourceAccess = kc.tokenParsed.resource_access;\n\n if (timeLocal) {\n kc.timeSkew = Math.floor(timeLocal / 1000) - kc.tokenParsed.iat;\n }\n\n if (kc.timeSkew != null) {\n logInfo('[KEYCLOAK] Estimated time difference between browser and server is ' + kc.timeSkew + ' seconds');\n\n if (kc.onTokenExpired) {\n var expiresIn = (kc.tokenParsed['exp'] - (new Date().getTime() / 1000) + kc.timeSkew) * 1000;\n logInfo('[KEYCLOAK] Token expires in ' + Math.round(expiresIn / 1000) + ' s');\n if (expiresIn <= 0) {\n kc.onTokenExpired();\n } else {\n kc.tokenTimeoutHandle = setTimeout(kc.onTokenExpired, expiresIn);\n }\n }\n }\n } else {\n delete kc.token;\n delete kc.tokenParsed;\n delete kc.subject;\n delete kc.realmAccess;\n delete kc.resourceAccess;\n\n kc.authenticated = false;\n }\n }\n\n function createUUID() {\n var hexDigits = '0123456789abcdef';\n var s = generateRandomString(36, hexDigits).split(\"\");\n s[14] = '4';\n s[19] = hexDigits.substr((s[19] & 0x3) | 0x8, 1);\n s[8] = s[13] = s[18] = s[23] = '-';\n var uuid = s.join('');\n return uuid;\n }\n\n function parseCallback(url) {\n var oauth = parseCallbackUrl(url);\n if (!oauth) {\n return;\n }\n\n var oauthState = callbackStorage.get(oauth.state);\n\n if (oauthState) {\n oauth.valid = true;\n oauth.redirectUri = oauthState.redirectUri;\n oauth.storedNonce = oauthState.nonce;\n oauth.prompt = oauthState.prompt;\n oauth.pkceCodeVerifier = oauthState.pkceCodeVerifier;\n oauth.loginOptions = oauthState.loginOptions;\n }\n\n return oauth;\n }\n\n function parseCallbackUrl(url) {\n var supportedParams;\n switch (kc.flow) {\n case 'standard':\n supportedParams = ['code', 'state', 'session_state', 'kc_action_status', 'iss'];\n break;\n case 'implicit':\n supportedParams = ['access_token', 'token_type', 'id_token', 'state', 'session_state', 'expires_in', 'kc_action_status', 'iss'];\n break;\n case 'hybrid':\n supportedParams = ['access_token', 'token_type', 'id_token', 'code', 'state', 'session_state', 'expires_in', 'kc_action_status', 'iss'];\n break;\n }\n\n supportedParams.push('error');\n supportedParams.push('error_description');\n supportedParams.push('error_uri');\n\n var queryIndex = url.indexOf('?');\n var fragmentIndex = url.indexOf('#');\n\n var newUrl;\n var parsed;\n\n if (kc.responseMode === 'query' && queryIndex !== -1) {\n newUrl = url.substring(0, queryIndex);\n parsed = parseCallbackParams(url.substring(queryIndex + 1, fragmentIndex !== -1 ? fragmentIndex : url.length), supportedParams);\n if (parsed.paramsString !== '') {\n newUrl += '?' + parsed.paramsString;\n }\n if (fragmentIndex !== -1) {\n newUrl += url.substring(fragmentIndex);\n }\n } else if (kc.responseMode === 'fragment' && fragmentIndex !== -1) {\n newUrl = url.substring(0, fragmentIndex);\n parsed = parseCallbackParams(url.substring(fragmentIndex + 1), supportedParams);\n if (parsed.paramsString !== '') {\n newUrl += '#' + parsed.paramsString;\n }\n }\n\n if (parsed && parsed.oauthParams) {\n if (kc.flow === 'standard' || kc.flow === 'hybrid') {\n if ((parsed.oauthParams.code || parsed.oauthParams.error) && parsed.oauthParams.state) {\n parsed.oauthParams.newUrl = newUrl;\n return parsed.oauthParams;\n }\n } else if (kc.flow === 'implicit') {\n if ((parsed.oauthParams.access_token || parsed.oauthParams.error) && parsed.oauthParams.state) {\n parsed.oauthParams.newUrl = newUrl;\n return parsed.oauthParams;\n }\n }\n }\n }\n\n function parseCallbackParams(paramsString, supportedParams) {\n var p = paramsString.split('&');\n var result = {\n paramsString: '',\n oauthParams: {}\n };\n for (var i = 0; i < p.length; i++) {\n var split = p[i].indexOf(\"=\");\n var key = p[i].slice(0, split);\n if (supportedParams.indexOf(key) !== -1) {\n result.oauthParams[key] = p[i].slice(split + 1);\n } else {\n if (result.paramsString !== '') {\n result.paramsString += '&';\n }\n result.paramsString += p[i];\n }\n }\n return result;\n }\n\n function createPromise() {\n // Need to create a native Promise which also preserves the\n // interface of the custom promise type previously used by the API\n var p = {\n setSuccess: function(result) {\n p.resolve(result);\n },\n\n setError: function(result) {\n p.reject(result);\n }\n };\n p.promise = new Promise(function(resolve, reject) {\n p.resolve = resolve;\n p.reject = reject;\n });\n\n return p;\n }\n\n // Function to extend existing native Promise with timeout\n function applyTimeoutToPromise(promise, timeout, errorMessage) {\n var timeoutHandle = null;\n var timeoutPromise = new Promise(function (resolve, reject) {\n timeoutHandle = setTimeout(function () {\n reject({ \"error\": errorMessage || \"Promise is not settled within timeout of \" + timeout + \"ms\" });\n }, timeout);\n });\n\n return Promise.race([promise, timeoutPromise]).finally(function () {\n clearTimeout(timeoutHandle);\n });\n }\n\n function setupCheckLoginIframe() {\n var promise = createPromise();\n\n if (!loginIframe.enable) {\n promise.setSuccess();\n return promise.promise;\n }\n\n if (loginIframe.iframe) {\n promise.setSuccess();\n return promise.promise;\n }\n\n var iframe = document.createElement('iframe');\n loginIframe.iframe = iframe;\n\n iframe.onload = function() {\n var authUrl = kc.endpoints.authorize();\n if (authUrl.charAt(0) === '/') {\n loginIframe.iframeOrigin = getOrigin();\n } else {\n loginIframe.iframeOrigin = authUrl.substring(0, authUrl.indexOf('/', 8));\n }\n promise.setSuccess();\n };\n\n var src = kc.endpoints.checkSessionIframe();\n iframe.setAttribute('src', src );\n iframe.setAttribute('sandbox', 'allow-storage-access-by-user-activation allow-scripts allow-same-origin');\n iframe.setAttribute('title', 'keycloak-session-iframe' );\n iframe.style.display = 'none';\n document.body.appendChild(iframe);\n\n var messageCallback = function(event) {\n if ((event.origin !== loginIframe.iframeOrigin) || (loginIframe.iframe.contentWindow !== event.source)) {\n return;\n }\n\n if (!(event.data == 'unchanged' || event.data == 'changed' || event.data == 'error')) {\n return;\n }\n\n\n if (event.data != 'unchanged') {\n kc.clearToken();\n }\n\n var callbacks = loginIframe.callbackList.splice(0, loginIframe.callbackList.length);\n\n for (var i = callbacks.length - 1; i >= 0; --i) {\n var promise = callbacks[i];\n if (event.data == 'error') {\n promise.setError();\n } else {\n promise.setSuccess(event.data == 'unchanged');\n }\n }\n };\n\n window.addEventListener('message', messageCallback, false);\n\n return promise.promise;\n }\n\n function scheduleCheckIframe() {\n if (loginIframe.enable) {\n if (kc.token) {\n setTimeout(function() {\n checkLoginIframe().then(function(unchanged) {\n if (unchanged) {\n scheduleCheckIframe();\n }\n });\n }, loginIframe.interval * 1000);\n }\n }\n }\n\n function checkLoginIframe() {\n var promise = createPromise();\n\n if (loginIframe.iframe && loginIframe.iframeOrigin ) {\n var msg = kc.clientId + ' ' + (kc.sessionId ? kc.sessionId : '');\n loginIframe.callbackList.push(promise);\n var origin = loginIframe.iframeOrigin;\n if (loginIframe.callbackList.length == 1) {\n loginIframe.iframe.contentWindow.postMessage(msg, origin);\n }\n } else {\n promise.setSuccess();\n }\n\n return promise.promise;\n }\n\n function check3pCookiesSupported() {\n var promise = createPromise();\n\n if (loginIframe.enable || kc.silentCheckSsoRedirectUri) {\n var iframe = document.createElement('iframe');\n iframe.setAttribute('src', kc.endpoints.thirdPartyCookiesIframe());\n iframe.setAttribute('sandbox', 'allow-storage-access-by-user-activation allow-scripts allow-same-origin');\n iframe.setAttribute('title', 'keycloak-3p-check-iframe' );\n iframe.style.display = 'none';\n document.body.appendChild(iframe);\n\n var messageCallback = function(event) {\n if (iframe.contentWindow !== event.source) {\n return;\n }\n\n if (event.data !== \"supported\" && event.data !== \"unsupported\") {\n return;\n } else if (event.data === \"unsupported\") {\n logWarn(\n \"[KEYCLOAK] Your browser is blocking access to 3rd-party cookies, this means:\\n\\n\" +\n \" - It is not possible to retrieve tokens without redirecting to the Keycloak server (a.k.a. no support for silent authentication).\\n\" +\n \" - It is not possible to automatically detect changes to the session status (such as the user logging out in another tab).\\n\\n\" +\n \"For more information see: https://www.keycloak.org/docs/latest/securing_apps/#_modern_browsers\"\n );\n\n loginIframe.enable = false;\n if (kc.silentCheckSsoFallback) {\n kc.silentCheckSsoRedirectUri = false;\n }\n }\n\n document.body.removeChild(iframe);\n window.removeEventListener(\"message\", messageCallback);\n promise.setSuccess();\n };\n\n window.addEventListener('message', messageCallback, false);\n } else {\n promise.setSuccess();\n }\n\n return applyTimeoutToPromise(promise.promise, kc.messageReceiveTimeout, \"Timeout when waiting for 3rd party check iframe message.\");\n }\n\n function loadAdapter(type) {\n if (!type || type == 'default') {\n return {\n login: function(options) {\n window.location.assign(kc.createLoginUrl(options));\n return createPromise().promise;\n },\n\n logout: async function(options) {\n\n const logoutMethod = options?.logoutMethod ?? kc.logoutMethod;\n if (logoutMethod === \"GET\") {\n window.location.replace(kc.createLogoutUrl(options));\n return;\n }\n\n const logoutUrl = kc.createLogoutUrl(options);\n const response = await fetch(logoutUrl, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/x-www-form-urlencoded\"\n },\n body: new URLSearchParams({\n id_token_hint: kc.idToken,\n client_id: kc.clientId,\n post_logout_redirect_uri: adapter.redirectUri(options, false)\n })\n });\n\n if (response.redirected) {\n window.location.href = response.url;\n return;\n }\n\n if (response.ok) {\n window.location.reload();\n return;\n }\n\n throw new Error(\"Logout failed, request returned an error code.\");\n },\n\n register: function(options) {\n window.location.assign(kc.createRegisterUrl(options));\n return createPromise().promise;\n },\n\n accountManagement : function() {\n var accountUrl = kc.createAccountUrl();\n if (typeof accountUrl !== 'undefined') {\n window.location.href = accountUrl;\n } else {\n throw \"Not supported by the OIDC server\";\n }\n return createPromise().promise;\n },\n\n redirectUri: function(options, encodeHash) {\n\n if (options && options.redirectUri) {\n return options.redirectUri;\n } else if (kc.redirectUri) {\n return kc.redirectUri;\n } else {\n return location.href;\n }\n }\n };\n }\n\n if (type == 'cordova') {\n loginIframe.enable = false;\n var cordovaOpenWindowWrapper = function(loginUrl, target, options) {\n if (window.cordova && window.cordova.InAppBrowser) {\n // Use inappbrowser for IOS and Android if available\n return window.cordova.InAppBrowser.open(loginUrl, target, options);\n } else {\n return window.open(loginUrl, target, options);\n }\n };\n\n var shallowCloneCordovaOptions = function (userOptions) {\n if (userOptions && userOptions.cordovaOptions) {\n return Object.keys(userOptions.cordovaOptions).reduce(function (options, optionName) {\n options[optionName] = userOptions.cordovaOptions[optionName];\n return options;\n }, {});\n } else {\n return {};\n }\n };\n\n var formatCordovaOptions = function (cordovaOptions) {\n return Object.keys(cordovaOptions).reduce(function (options, optionName) {\n options.push(optionName+\"=\"+cordovaOptions[optionName]);\n return options;\n }, []).join(\",\");\n };\n\n var createCordovaOptions = function (userOptions) {\n var cordovaOptions = shallowCloneCordovaOptions(userOptions);\n cordovaOptions.location = 'no';\n if (userOptions && userOptions.prompt == 'none') {\n cordovaOptions.hidden = 'yes';\n }\n return formatCordovaOptions(cordovaOptions);\n };\n\n var getCordovaRedirectUri = function() {\n return kc.redirectUri || 'http://localhost';\n };\n \n return {\n login: function(options) {\n var promise = createPromise();\n\n var cordovaOptions = createCordovaOptions(options);\n var loginUrl = kc.createLoginUrl(options);\n var ref = cordovaOpenWindowWrapper(loginUrl, '_blank', cordovaOptions);\n var completed = false;\n\n var closed = false;\n var closeBrowser = function() {\n closed = true;\n ref.close();\n };\n\n ref.addEventListener('loadstart', function(event) {\n if (event.url.indexOf(getCordovaRedirectUri()) == 0) {\n var callback = parseCallback(event.url);\n processCallback(callback, promise);\n closeBrowser();\n completed = true;\n }\n });\n\n ref.addEventListener('loaderror', function(event) {\n if (!completed) {\n if (event.url.indexOf(getCordovaRedirectUri()) == 0) {\n var callback = parseCallback(event.url);\n processCallback(callback, promise);\n closeBrowser();\n completed = true;\n } else {\n promise.setError();\n closeBrowser();\n }\n }\n });\n\n ref.addEventListener('exit', function(event) {\n if (!closed) {\n promise.setError({\n reason: \"closed_by_user\"\n });\n }\n });\n\n return promise.promise;\n },\n\n logout: function(options) {\n var promise = createPromise();\n\n var logoutUrl = kc.createLogoutUrl(options);\n var ref = cordovaOpenWindowWrapper(logoutUrl, '_blank', 'location=no,hidden=yes,clearcache=yes');\n\n var error;\n\n ref.addEventListener('loadstart', function(event) {\n if (event.url.indexOf(getCordovaRedirectUri()) == 0) {\n ref.close();\n }\n });\n\n ref.addEventListener('loaderror', function(event) {\n if (event.url.indexOf(getCordovaRedirectUri()) == 0) {\n ref.close();\n } else {\n error = true;\n ref.close();\n }\n });\n\n ref.addEventListener('exit', function(event) {\n if (error) {\n promise.setError();\n } else {\n kc.clearToken();\n promise.setSuccess();\n }\n });\n\n return promise.promise;\n },\n\n register : function(options) {\n var promise = createPromise();\n var registerUrl = kc.createRegisterUrl();\n var cordovaOptions = createCordovaOptions(options);\n var ref = cordovaOpenWindowWrapper(registerUrl, '_blank', cordovaOptions);\n ref.addEventListener('loadstart', function(event) {\n if (event.url.indexOf(getCordovaRedirectUri()) == 0) {\n ref.close();\n var oauth = parseCallback(event.url);\n processCallback(oauth, promise);\n }\n });\n return promise.promise;\n },\n\n accountManagement : function() {\n var accountUrl = kc.createAccountUrl();\n if (typeof accountUrl !== 'undefined') {\n var ref = cordovaOpenWindowWrapper(accountUrl, '_blank', 'location=no');\n ref.addEventListener('loadstart', function(event) {\n if (event.url.indexOf(getCordovaRedirectUri()) == 0) {\n ref.close();\n }\n });\n } else {\n throw \"Not supported by the OIDC server\";\n }\n },\n\n redirectUri: function(options) {\n return getCordovaRedirectUri();\n }\n }\n }\n\n if (type == 'cordova-native') {\n loginIframe.enable = false;\n\n return {\n login: function(options) {\n var promise = createPromise();\n var loginUrl = kc.createLoginUrl(options);\n\n universalLinks.subscribe('keycloak', function(event) {\n universalLinks.unsubscribe('keycloak');\n window.cordova.plugins.browsertab.close();\n var oauth = parseCallback(event.url);\n processCallback(oauth, promise);\n });\n\n window.cordova.plugins.browsertab.openUrl(loginUrl);\n return promise.promise;\n },\n\n logout: function(options) {\n var promise = createPromise();\n var logoutUrl = kc.createLogoutUrl(options);\n\n universalLinks.subscribe('keycloak', function(event) {\n universalLinks.unsubscribe('keycloak');\n window.cordova.plugins.browsertab.close();\n kc.clearToken();\n promise.setSuccess();\n });\n\n window.cordova.plugins.browsertab.openUrl(logoutUrl);\n return promise.promise;\n },\n\n register : function(options) {\n var promise = createPromise();\n var registerUrl = kc.createRegisterUrl(options);\n universalLinks.subscribe('keycloak' , function(event) {\n universalLinks.unsubscribe('keycloak');\n window.cordova.plugins.browsertab.close();\n var oauth = parseCallback(event.url);\n processCallback(oauth, promise);\n });\n window.cordova.plugins.browsertab.openUrl(registerUrl);\n return promise.promise;\n\n },\n\n accountManagement : function() {\n var accountUrl = kc.createAccountUrl();\n if (typeof accountUrl !== 'undefined') {\n window.cordova.plugins.browsertab.openUrl(accountUrl);\n } else {\n throw \"Not supported by the OIDC server\";\n }\n },\n\n redirectUri: function(options) {\n if (options && options.redirectUri) {\n return options.redirectUri;\n } else if (kc.redirectUri) {\n return kc.redirectUri;\n } else {\n return \"http://localhost\";\n }\n }\n }\n }\n\n throw 'invalid adapter type: ' + type;\n }\n\n var LocalStorage = function() {\n if (!(this instanceof LocalStorage)) {\n return new LocalStorage();\n }\n\n localStorage.setItem('kc-test', 'test');\n localStorage.removeItem('kc-test');\n\n var cs = this;\n\n function clearExpired() {\n var time = new Date().getTime();\n for (var i = 0; i < localStorage.length; i++) {\n var key = localStorage.key(i);\n if (key && key.indexOf('kc-callback-') == 0) {\n var value = localStorage.getItem(key);\n if (value) {\n try {\n var expires = JSON.parse(value).expires;\n if (!expires || expires < time) {\n localStorage.removeItem(key);\n }\n } catch (err) {\n localStorage.removeItem(key);\n }\n }\n }\n }\n }\n\n cs.get = function(state) {\n if (!state) {\n return;\n }\n\n var key = 'kc-callback-' + state;\n var value = localStorage.getItem(key);\n if (value) {\n localStorage.removeItem(key);\n value = JSON.parse(value);\n }\n\n clearExpired();\n return value;\n };\n\n cs.add = function(state) {\n clearExpired();\n\n var key = 'kc-callback-' + state.state;\n state.expires = new Date().getTime() + (60 * 60 * 1000);\n localStorage.setItem(key, JSON.stringify(state));\n };\n };\n\n var CookieStorage = function() {\n if (!(this instanceof CookieStorage)) {\n return new CookieStorage();\n }\n\n var cs = this;\n\n cs.get = function(state) {\n if (!state) {\n return;\n }\n\n var value = getCookie('kc-callback-' + state);\n setCookie('kc-callback-' + state, '', cookieExpiration(-100));\n if (value) {\n return JSON.parse(value);\n }\n };\n\n cs.add = function(state) {\n setCookie('kc-callback-' + state.state, JSON.stringify(state), cookieExpiration(60));\n };\n\n cs.removeItem = function(key) {\n setCookie(key, '', cookieExpiration(-100));\n };\n\n var cookieExpiration = function (minutes) {\n var exp = new Date();\n exp.setTime(exp.getTime() + (minutes*60*1000));\n return exp;\n };\n\n var getCookie = function (key) {\n var name = key + '=';\n var ca = document.cookie.split(';');\n for (var i = 0; i < ca.length; i++) {\n var c = ca[i];\n while (c.charAt(0) == ' ') {\n c = c.substring(1);\n }\n if (c.indexOf(name) == 0) {\n return c.substring(name.length, c.length);\n }\n }\n return '';\n };\n\n var setCookie = function (key, value, expirationDate) {\n var cookie = key + '=' + value + '; '\n + 'expires=' + expirationDate.toUTCString() + '; ';\n document.cookie = cookie;\n };\n };\n\n function createCallbackStorage() {\n try {\n return new LocalStorage();\n } catch (err) {\n }\n\n return new CookieStorage();\n }\n\n function createLogger(fn) {\n return function() {\n if (kc.enableLogging) {\n fn.apply(console, Array.prototype.slice.call(arguments));\n }\n };\n }\n}\n\n// See: https://developer.mozilla.org/en-US/docs/Glossary/Base64#the_unicode_problem\nfunction bytesToBase64(bytes) {\n const binString = String.fromCodePoint(...bytes);\n return btoa(binString);\n}\n\nexport { Keycloak as default };\n","import { createIcon } from '../createIcon';\n\nexport const BitbucketIconConfig = {\n name: 'BitbucketIcon',\n height: 512,\n width: 512,\n svgPath: 'M22.2 32A16 16 0 0 0 6 47.8a26.35 26.35 0 0 0 .2 2.8l67.9 412.1a21.77 21.77 0 0 0 21.3 18.2h325.7a16 16 0 0 0 16-13.4L505 50.7a16 16 0 0 0-13.2-18.3 24.58 24.58 0 0 0-2.8-.2L22.2 32zm285.9 297.8h-104l-28.1-147h157.3l-25.2 147z',\n yOffset: 0,\n xOffset: 0,\n};\n\nexport const BitbucketIcon = createIcon(BitbucketIconConfig);\n\nexport default BitbucketIcon;","import { createIcon } from '../createIcon';\n\nexport const CubeIconConfig = {\n name: 'CubeIcon',\n height: 512,\n width: 512,\n svgPath: 'M239.1 6.3l-208 78c-18.7 7-31.1 25-31.1 45v225.1c0 18.2 10.3 34.8 26.5 42.9l208 104c13.5 6.8 29.4 6.8 42.9 0l208-104c16.3-8.1 26.5-24.8 26.5-42.9V129.3c0-20-12.4-37.9-31.1-44.9l-208-78C262 2.2 250 2.2 239.1 6.3zM256 68.4l192 72v1.1l-192 78-192-78v-1.1l192-72zm32 356V275.5l160-65v133.9l-160 80z',\n yOffset: 0,\n xOffset: 0,\n};\n\nexport const CubeIcon = createIcon(CubeIconConfig);\n\nexport default CubeIcon;","import { createIcon } from '../createIcon';\n\nexport const ExternalLinkSquareAltIconConfig = {\n name: 'ExternalLinkSquareAltIcon',\n height: 512,\n width: 448,\n svgPath: 'M448 80v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48zm-88 16H248.029c-21.313 0-32.08 25.861-16.971 40.971l31.984 31.987L67.515 364.485c-4.686 4.686-4.686 12.284 0 16.971l31.029 31.029c4.687 4.686 12.285 4.686 16.971 0l195.526-195.526 31.988 31.991C358.058 263.977 384 253.425 384 231.979V120c0-13.255-10.745-24-24-24z',\n yOffset: 0,\n xOffset: 0,\n};\n\nexport const ExternalLinkSquareAltIcon = createIcon(ExternalLinkSquareAltIconConfig);\n\nexport default ExternalLinkSquareAltIcon;","import { createIcon } from '../createIcon';\n\nexport const FacebookSquareIconConfig = {\n name: 'FacebookSquareIcon',\n height: 512,\n width: 448,\n svgPath: 'M400 32H48A48 48 0 0 0 0 80v352a48 48 0 0 0 48 48h137.25V327.69h-63V256h63v-54.64c0-62.15 37-96.48 93.67-96.48 27.14 0 55.52 4.84 55.52 4.84v61h-31.27c-30.81 0-40.42 19.12-40.42 38.73V256h68.78l-11 71.69h-57.78V480H400a48 48 0 0 0 48-48V80a48 48 0 0 0-48-48z',\n yOffset: 0,\n xOffset: 0,\n};\n\nexport const FacebookSquareIcon = createIcon(FacebookSquareIconConfig);\n\nexport default FacebookSquareIcon;","import { createIcon } from '../createIcon';\n\nexport const GithubIconConfig = {\n name: 'GithubIcon',\n height: 512,\n width: 496,\n svgPath: 'M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z',\n yOffset: 0,\n xOffset: 0,\n};\n\nexport const GithubIcon = createIcon(GithubIconConfig);\n\nexport default GithubIcon;","import { createIcon } from '../createIcon';\n\nexport const GitlabIconConfig = {\n name: 'GitlabIcon',\n height: 512,\n width: 512,\n svgPath: 'M105.2 24.9c-3.1-8.9-15.7-8.9-18.9 0L29.8 199.7h132c-.1 0-56.6-174.8-56.6-174.8zM.9 287.7c-2.6 8 .3 16.9 7.1 22l247.9 184-226.2-294zm160.8-88l94.3 294 94.3-294zm349.4 88l-28.8-88-226.3 294 247.9-184c6.9-5.1 9.7-14 7.2-22zM425.7 24.9c-3.1-8.9-15.7-8.9-18.9 0l-56.6 174.8h132z',\n yOffset: 0,\n xOffset: 0,\n};\n\nexport const GitlabIcon = createIcon(GitlabIconConfig);\n\nexport default GitlabIcon;","import { createIcon } from '../createIcon';\n\nexport const GoogleIconConfig = {\n name: 'GoogleIcon',\n height: 512,\n width: 488,\n svgPath: 'M488 261.8C488 403.3 391.1 504 248 504 110.8 504 0 393.2 0 256S110.8 8 248 8c66.8 0 123 24.5 166.3 64.9l-67.5 64.9C258.5 52.6 94.3 116.6 94.3 256c0 86.5 69.1 156.6 153.7 156.6 98.2 0 135-70.4 140.8-106.9H248v-85.3h236.1c2.3 12.7 3.9 24.9 3.9 41.4z',\n yOffset: 0,\n xOffset: 0,\n};\n\nexport const GoogleIcon = createIcon(GoogleIconConfig);\n\nexport default GoogleIcon;","import { createIcon } from '../createIcon';\n\nexport const HelpIconConfig = {\n name: 'HelpIcon',\n height: 1024,\n width: 1024,\n svgPath: 'M521.3,576 C627.5,576 713.7,502 713.7,413.7 C713.7,325.4 627.6,253.6 521.3,253.6 C366,253.6 334.5,337.7 329.2,407.2 C329.2,414.3 335.2,416 343.5,416 L445,416 C450.5,416 458,415.5 460.8,406.5 C460.8,362.6 582.9,357.1 582.9,413.6 C582.9,441.9 556.2,470.9 521.3,473 C486.4,475.1 447.3,479.8 447.3,521.7 L447.3,553.8 C447.3,570.8 456.1,576 472,576 C487.9,576 521.3,576 521.3,576 M575.3,751.3 L575.3,655.3 C575.313862,651.055109 573.620137,646.982962 570.6,644 C567.638831,640.947672 563.552355,639.247987 559.3,639.29884 L463.3,639.29884 C459.055109,639.286138 454.982962,640.979863 452,644 C448.947672,646.961169 447.247987,651.047645 447.29884,655.3 L447.29884,751.3 C447.286138,755.544891 448.979863,759.617038 452,762.6 C454.961169,765.652328 459.047645,767.352013 463.3,767.30116 L559.3,767.30116 C563.544891,767.313862 567.617038,765.620137 570.6,762.6 C573.659349,759.643612 575.360354,755.553963 575.3,751.3 M512,896 C300.2,896 128,723.9 128,512 C128,300.3 300.2,128 512,128 C723.8,128 896,300.2 896,512 C896,723.8 723.7,896 512,896 M512.1,0 C229.7,0 0,229.8 0,512 C0,794.2 229.8,1024 512.1,1024 C794.4,1024 1024,794.3 1024,512 C1024,229.7 794.4,0 512.1,0',\n yOffset: 0,\n xOffset: 0,\n};\n\nexport const HelpIcon = createIcon(HelpIconConfig);\n\nexport default HelpIcon;","import { createIcon } from '../createIcon';\n\nexport const InstagramIconConfig = {\n name: 'InstagramIcon',\n height: 512,\n width: 448,\n svgPath: 'M224.1 141c-63.6 0-114.9 51.3-114.9 114.9s51.3 114.9 114.9 114.9S339 319.5 339 255.9 287.7 141 224.1 141zm0 189.6c-41.1 0-74.7-33.5-74.7-74.7s33.5-74.7 74.7-74.7 74.7 33.5 74.7 74.7-33.6 74.7-74.7 74.7zm146.4-194.3c0 14.9-12 26.8-26.8 26.8-14.9 0-26.8-12-26.8-26.8s12-26.8 26.8-26.8 26.8 12 26.8 26.8zm76.1 27.2c-1.7-35.9-9.9-67.7-36.2-93.9-26.2-26.2-58-34.4-93.9-36.2-37-2.1-147.9-2.1-184.9 0-35.8 1.7-67.6 9.9-93.9 36.1s-34.4 58-36.2 93.9c-2.1 37-2.1 147.9 0 184.9 1.7 35.9 9.9 67.7 36.2 93.9s58 34.4 93.9 36.2c37 2.1 147.9 2.1 184.9 0 35.9-1.7 67.7-9.9 93.9-36.2 26.2-26.2 34.4-58 36.2-93.9 2.1-37 2.1-147.8 0-184.8zM398.8 388c-7.8 19.6-22.9 34.7-42.6 42.6-29.5 11.7-99.5 9-132.1 9s-102.7 2.6-132.1-9c-19.6-7.8-34.7-22.9-42.6-42.6-11.7-29.5-9-99.5-9-132.1s-2.6-102.7 9-132.1c7.8-19.6 22.9-34.7 42.6-42.6 29.5-11.7 99.5-9 132.1-9s102.7-2.6 132.1 9c19.6 7.8 34.7 22.9 42.6 42.6 11.7 29.5 9 99.5 9 132.1s2.7 102.7-9 132.1z',\n yOffset: 0,\n xOffset: 0,\n};\n\nexport const InstagramIcon = createIcon(InstagramIconConfig);\n\nexport default InstagramIcon;","import { createIcon } from '../createIcon';\n\nexport const LinkedinIconConfig = {\n name: 'LinkedinIcon',\n height: 512,\n width: 448,\n svgPath: 'M416 32H31.9C14.3 32 0 46.5 0 64.3v383.4C0 465.5 14.3 480 31.9 480H416c17.6 0 32-14.5 32-32.3V64.3c0-17.8-14.4-32.3-32-32.3zM135.4 416H69V202.2h66.5V416zm-33.2-243c-21.3 0-38.5-17.3-38.5-38.5S80.9 96 102.2 96c21.2 0 38.5 17.3 38.5 38.5 0 21.3-17.2 38.5-38.5 38.5zm282.1 243h-66.4V312c0-24.8-.5-56.7-34.5-56.7-34.6 0-39.9 27-39.9 54.9V416h-66.4V202.2h63.7v29.2h.9c8.9-16.8 30.6-34.5 62.9-34.5 67.2 0 79.7 44.3 79.7 101.9V416z',\n yOffset: 0,\n xOffset: 0,\n};\n\nexport const LinkedinIcon = createIcon(LinkedinIconConfig);\n\nexport default LinkedinIcon;","import { createIcon } from '../createIcon';\n\nexport const MicrosoftIconConfig = {\n name: 'MicrosoftIcon',\n height: 512,\n width: 448,\n svgPath: 'M0 32h214.6v214.6H0V32zm233.4 0H448v214.6H233.4V32zM0 265.4h214.6V480H0V265.4zm233.4 0H448V480H233.4V265.4z',\n yOffset: 0,\n xOffset: 0,\n};\n\nexport const MicrosoftIcon = createIcon(MicrosoftIconConfig);\n\nexport default MicrosoftIcon;","import { createIcon } from '../createIcon';\n\nexport const MinusCircleIconConfig = {\n name: 'MinusCircleIcon',\n height: 512,\n width: 512,\n svgPath: 'M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zM124 296c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h264c6.6 0 12 5.4 12 12v56c0 6.6-5.4 12-12 12H124z',\n yOffset: 0,\n xOffset: 0,\n};\n\nexport const MinusCircleIcon = createIcon(MinusCircleIconConfig);\n\nexport default MinusCircleIcon;","import { createIcon } from '../createIcon';\n\nexport const OpenshiftIconConfig = {\n name: 'OpenshiftIcon',\n height: 100,\n width: 100,\n svgPath: 'M145.7,45.3l-16.1,5.8c0.2,2.6,0.6,5.1,1.3,7.6l15.3-5.6C145.7,50.6,145.5,47.9,145.7,45.3M216.7,27.5c-1.1-2.3-2.4-4.5-3.9-6.6l-16.1,5.8c1.9,1.9,3.4,4.1,4.7,6.4L216.7,27.5zM181.4,23c3.3,1.6,6.2,3.7,8.7,6.2l16.1-5.8c-4.4-6.2-10.5-11.5-17.9-14.9c-22.9-10.7-50.3-0.7-61,22.2c-3.5,7.4-4.8,15.3-4.1,23l16.1-5.8c0.3-3.5,1.1-7,2.7-10.3C148.7,22.5,166.4,16,181.4,23M131.9,58.4l-15.3,5.6c1.4,5.6,3.8,10.8,7.2,15.5l16-5.8C135.8,69.4,133,64.1,131.9,58.4M198.5,52.3c-0.3,3.5-1.1,7-2.7,10.3C188.8,77.5,171,84,156.1,77c-3.3-1.6-6.3-3.7-8.7-6.2l-16,5.8c4.4,6.2,10.5,11.5,17.9,14.9c22.9,10.7,50.3,0.7,61-22.2c3.5-7.4,4.7-15.3,4.1-22.9L198.5,52.3zM202.4,32.7l-15.3,5.6c2.8,5.1,4.2,10.9,3.7,16.8l16-5.8C206.5,43.5,204.9,37.9,202.4,32.7',\n yOffset: 0,\n xOffset: 116,\n};\n\nexport const OpenshiftIcon = createIcon(OpenshiftIconConfig);\n\nexport default OpenshiftIcon;","import { createIcon } from '../createIcon';\n\nexport const PaypalIconConfig = {\n name: 'PaypalIcon',\n height: 512,\n width: 384,\n svgPath: 'M111.4 295.9c-3.5 19.2-17.4 108.7-21.5 134-.3 1.8-1 2.5-3 2.5H12.3c-7.6 0-13.1-6.6-12.1-13.9L58.8 46.6c1.5-9.6 10.1-16.9 20-16.9 152.3 0 165.1-3.7 204 11.4 60.1 23.3 65.6 79.5 44 140.3-21.5 62.6-72.5 89.5-140.1 90.3-43.4.7-69.5-7-75.3 24.2zM357.1 152c-1.8-1.3-2.5-1.8-3 1.3-2 11.4-5.1 22.5-8.8 33.6-39.9 113.8-150.5 103.9-204.5 103.9-6.1 0-10.1 3.3-10.9 9.4-22.6 140.4-27.1 169.7-27.1 169.7-1 7.1 3.5 12.9 10.6 12.9h63.5c8.6 0 15.7-6.3 17.4-14.9.7-5.4-1.1 6.1 14.4-91.3 4.6-22 14.3-19.7 29.3-19.7 71 0 126.4-28.8 142.9-112.3 6.5-34.8 4.6-71.4-23.8-92.6z',\n yOffset: 0,\n xOffset: 0,\n};\n\nexport const PaypalIcon = createIcon(PaypalIconConfig);\n\nexport default PaypalIcon;","import { createIcon } from '../createIcon';\n\nexport const PlusCircleIconConfig = {\n name: 'PlusCircleIcon',\n height: 512,\n width: 512,\n svgPath: 'M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm144 276c0 6.6-5.4 12-12 12h-92v92c0 6.6-5.4 12-12 12h-56c-6.6 0-12-5.4-12-12v-92h-92c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h92v-92c0-6.6 5.4-12 12-12h56c6.6 0 12 5.4 12 12v92h92c6.6 0 12 5.4 12 12v56z',\n yOffset: 0,\n xOffset: 0,\n};\n\nexport const PlusCircleIcon = createIcon(PlusCircleIconConfig);\n\nexport default PlusCircleIcon;","import { createIcon } from '../createIcon';\n\nexport const StackOverflowIconConfig = {\n name: 'StackOverflowIcon',\n height: 512,\n width: 384,\n svgPath: 'M290.7 311L95 269.7 86.8 309l195.7 41zm51-87L188.2 95.7l-25.5 30.8 153.5 128.3zm-31.2 39.7L129.2 179l-16.7 36.5L293.7 300zM262 32l-32 24 119.3 160.3 32-24zm20.5 328h-200v39.7h200zm39.7 80H42.7V320h-40v160h359.5V320h-40z',\n yOffset: 0,\n xOffset: 0,\n};\n\nexport const StackOverflowIcon = createIcon(StackOverflowIconConfig);\n\nexport default StackOverflowIcon;","import { createIcon } from '../createIcon';\n\nexport const TwitterIconConfig = {\n name: 'TwitterIcon',\n height: 512,\n width: 512,\n svgPath: 'M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z',\n yOffset: 0,\n xOffset: 0,\n};\n\nexport const TwitterIcon = createIcon(TwitterIconConfig);\n\nexport default TwitterIcon;","import React from 'react';\n\nvar isCheckBoxInput = (element) => element.type === 'checkbox';\n\nvar isDateObject = (value) => value instanceof Date;\n\nvar isNullOrUndefined = (value) => value == null;\n\nconst isObjectType = (value) => typeof value === 'object';\nvar isObject = (value) => !isNullOrUndefined(value) &&\n !Array.isArray(value) &&\n isObjectType(value) &&\n !isDateObject(value);\n\nvar getEventValue = (event) => isObject(event) && event.target\n ? isCheckBoxInput(event.target)\n ? event.target.checked\n : event.target.value\n : event;\n\nvar getNodeParentName = (name) => name.substring(0, name.search(/\\.\\d+(\\.|$)/)) || name;\n\nvar isNameInFieldArray = (names, name) => names.has(getNodeParentName(name));\n\nvar isPlainObject = (tempObject) => {\n const prototypeCopy = tempObject.constructor && tempObject.constructor.prototype;\n return (isObject(prototypeCopy) && prototypeCopy.hasOwnProperty('isPrototypeOf'));\n};\n\nvar isWeb = typeof window !== 'undefined' &&\n typeof window.HTMLElement !== 'undefined' &&\n typeof document !== 'undefined';\n\nfunction cloneObject(data) {\n let copy;\n const isArray = Array.isArray(data);\n if (data instanceof Date) {\n copy = new Date(data);\n }\n else if (data instanceof Set) {\n copy = new Set(data);\n }\n else if (!(isWeb && (data instanceof Blob || data instanceof FileList)) &&\n (isArray || isObject(data))) {\n copy = isArray ? [] : {};\n if (!isArray && !isPlainObject(data)) {\n copy = data;\n }\n else {\n for (const key in data) {\n if (data.hasOwnProperty(key)) {\n copy[key] = cloneObject(data[key]);\n }\n }\n }\n }\n else {\n return data;\n }\n return copy;\n}\n\nvar compact = (value) => Array.isArray(value) ? value.filter(Boolean) : [];\n\nvar isUndefined = (val) => val === undefined;\n\nvar get = (object, path, defaultValue) => {\n if (!path || !isObject(object)) {\n return defaultValue;\n }\n const result = compact(path.split(/[,[\\].]+?/)).reduce((result, key) => isNullOrUndefined(result) ? result : result[key], object);\n return isUndefined(result) || result === object\n ? isUndefined(object[path])\n ? defaultValue\n : object[path]\n : result;\n};\n\nvar isBoolean = (value) => typeof value === 'boolean';\n\nconst EVENTS = {\n BLUR: 'blur',\n FOCUS_OUT: 'focusout',\n CHANGE: 'change',\n};\nconst VALIDATION_MODE = {\n onBlur: 'onBlur',\n onChange: 'onChange',\n onSubmit: 'onSubmit',\n onTouched: 'onTouched',\n all: 'all',\n};\nconst INPUT_VALIDATION_RULES = {\n max: 'max',\n min: 'min',\n maxLength: 'maxLength',\n minLength: 'minLength',\n pattern: 'pattern',\n required: 'required',\n validate: 'validate',\n};\n\nconst HookFormContext = React.createContext(null);\n/**\n * This custom hook allows you to access the form context. useFormContext is intended to be used in deeply nested structures, where it would become inconvenient to pass the context as a prop. To be used with {@link FormProvider}.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/useformcontext) • [Demo](https://codesandbox.io/s/react-hook-form-v7-form-context-ytudi)\n *\n * @returns return all useForm methods\n *\n * @example\n * ```tsx\n * function App() {\n * const methods = useForm();\n * const onSubmit = data => console.log(data);\n *\n * return (\n * <FormProvider {...methods} >\n * <form onSubmit={methods.handleSubmit(onSubmit)}>\n * <NestedInput />\n * <input type=\"submit\" />\n * </form>\n * </FormProvider>\n * );\n * }\n *\n * function NestedInput() {\n * const { register } = useFormContext(); // retrieve all hook methods\n * return <input {...register(\"test\")} />;\n * }\n * ```\n */\nconst useFormContext = () => React.useContext(HookFormContext);\n/**\n * A provider component that propagates the `useForm` methods to all children components via [React Context](https://reactjs.org/docs/context.html) API. To be used with {@link useFormContext}.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/useformcontext) • [Demo](https://codesandbox.io/s/react-hook-form-v7-form-context-ytudi)\n *\n * @param props - all useForm methods\n *\n * @example\n * ```tsx\n * function App() {\n * const methods = useForm();\n * const onSubmit = data => console.log(data);\n *\n * return (\n * <FormProvider {...methods} >\n * <form onSubmit={methods.handleSubmit(onSubmit)}>\n * <NestedInput />\n * <input type=\"submit\" />\n * </form>\n * </FormProvider>\n * );\n * }\n *\n * function NestedInput() {\n * const { register } = useFormContext(); // retrieve all hook methods\n * return <input {...register(\"test\")} />;\n * }\n * ```\n */\nconst FormProvider = (props) => {\n const { children, ...data } = props;\n return (React.createElement(HookFormContext.Provider, { value: data }, children));\n};\n\nvar getProxyFormState = (formState, control, localProxyFormState, isRoot = true) => {\n const result = {\n defaultValues: control._defaultValues,\n };\n for (const key in formState) {\n Object.defineProperty(result, key, {\n get: () => {\n const _key = key;\n if (control._proxyFormState[_key] !== VALIDATION_MODE.all) {\n control._proxyFormState[_key] = !isRoot || VALIDATION_MODE.all;\n }\n localProxyFormState && (localProxyFormState[_key] = true);\n return formState[_key];\n },\n });\n }\n return result;\n};\n\nvar isEmptyObject = (value) => isObject(value) && !Object.keys(value).length;\n\nvar shouldRenderFormState = (formStateData, _proxyFormState, updateFormState, isRoot) => {\n updateFormState(formStateData);\n const { name, ...formState } = formStateData;\n return (isEmptyObject(formState) ||\n Object.keys(formState).length >= Object.keys(_proxyFormState).length ||\n Object.keys(formState).find((key) => _proxyFormState[key] ===\n (!isRoot || VALIDATION_MODE.all)));\n};\n\nvar convertToArrayPayload = (value) => (Array.isArray(value) ? value : [value]);\n\nvar shouldSubscribeByName = (name, signalName, exact) => !name ||\n !signalName ||\n name === signalName ||\n convertToArrayPayload(name).some((currentName) => currentName &&\n (exact\n ? currentName === signalName\n : currentName.startsWith(signalName) ||\n signalName.startsWith(currentName)));\n\nfunction useSubscribe(props) {\n const _props = React.useRef(props);\n _props.current = props;\n React.useEffect(() => {\n const subscription = !props.disabled &&\n _props.current.subject &&\n _props.current.subject.subscribe({\n next: _props.current.next,\n });\n return () => {\n subscription && subscription.unsubscribe();\n };\n }, [props.disabled]);\n}\n\n/**\n * This custom hook allows you to subscribe to each form state, and isolate the re-render at the custom hook level. It has its scope in terms of form state subscription, so it would not affect other useFormState and useForm. Using this hook can reduce the re-render impact on large and complex form application.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/useformstate) • [Demo](https://codesandbox.io/s/useformstate-75xly)\n *\n * @param props - include options on specify fields to subscribe. {@link UseFormStateReturn}\n *\n * @example\n * ```tsx\n * function App() {\n * const { register, handleSubmit, control } = useForm({\n * defaultValues: {\n * firstName: \"firstName\"\n * }});\n * const { dirtyFields } = useFormState({\n * control\n * });\n * const onSubmit = (data) => console.log(data);\n *\n * return (\n * <form onSubmit={handleSubmit(onSubmit)}>\n * <input {...register(\"firstName\")} placeholder=\"First Name\" />\n * {dirtyFields.firstName && <p>Field is dirty.</p>}\n * <input type=\"submit\" />\n * </form>\n * );\n * }\n * ```\n */\nfunction useFormState(props) {\n const methods = useFormContext();\n const { control = methods.control, disabled, name, exact } = props || {};\n const [formState, updateFormState] = React.useState(control._formState);\n const _mounted = React.useRef(true);\n const _localProxyFormState = React.useRef({\n isDirty: false,\n isLoading: false,\n dirtyFields: false,\n touchedFields: false,\n validatingFields: false,\n isValidating: false,\n isValid: false,\n errors: false,\n });\n const _name = React.useRef(name);\n _name.current = name;\n useSubscribe({\n disabled,\n next: (value) => _mounted.current &&\n shouldSubscribeByName(_name.current, value.name, exact) &&\n shouldRenderFormState(value, _localProxyFormState.current, control._updateFormState) &&\n updateFormState({\n ...control._formState,\n ...value,\n }),\n subject: control._subjects.state,\n });\n React.useEffect(() => {\n _mounted.current = true;\n _localProxyFormState.current.isValid && control._updateValid(true);\n return () => {\n _mounted.current = false;\n };\n }, [control]);\n return getProxyFormState(formState, control, _localProxyFormState.current, false);\n}\n\nvar isString = (value) => typeof value === 'string';\n\nvar generateWatchOutput = (names, _names, formValues, isGlobal, defaultValue) => {\n if (isString(names)) {\n isGlobal && _names.watch.add(names);\n return get(formValues, names, defaultValue);\n }\n if (Array.isArray(names)) {\n return names.map((fieldName) => (isGlobal && _names.watch.add(fieldName), get(formValues, fieldName)));\n }\n isGlobal && (_names.watchAll = true);\n return formValues;\n};\n\n/**\n * Custom hook to subscribe to field change and isolate re-rendering at the component level.\n *\n * @remarks\n *\n * [API](https://react-hook-form.com/docs/usewatch) • [Demo](https://codesandbox.io/s/react-hook-form-v7-ts-usewatch-h9i5e)\n *\n * @example\n * ```tsx\n * const { control } = useForm();\n * const values = useWatch({\n * name: \"fieldName\"\n * control,\n * })\n * ```\n */\nfunction useWatch(props) {\n const methods = useFormContext();\n const { control = methods.control, name, defaultValue, disabled, exact, } = props || {};\n const _name = React.useRef(name);\n _name.current = name;\n useSubscribe({\n disabled,\n subject: control._subjects.values,\n next: (formState) => {\n if (shouldSubscribeByName(_name.current, formState.name, exact)) {\n updateValue(cloneObject(generateWatchOutput(_name.current, control._names, formState.values || control._formValues, false, defaultValue)));\n }\n },\n });\n const [value, updateValue] = React.useState(control._getWatch(name, defaultValue));\n React.useEffect(() => control._removeUnmounted());\n return value;\n}\n\nvar isKey = (value) => /^\\w*$/.test(value);\n\nvar stringToPath = (input) => compact(input.replace(/[\"|']|\\]/g, '').split(/\\.|\\[/));\n\nvar set = (object, path, value) => {\n let index = -1;\n const tempPath = isKey(path) ? [path] : stringToPath(path);\n const length = tempPath.length;\n const lastIndex = length - 1;\n while (++index < length) {\n const key = tempPath[index];\n let newValue = value;\n if (index !== lastIndex) {\n const objValue = object[key];\n newValue =\n isObject(objValue) || Array.isArray(objValue)\n ? objValue\n : !isNaN(+tempPath[index + 1])\n ? []\n : {};\n }\n object[key] = newValue;\n object = object[key];\n }\n return object;\n};\n\n/**\n * Custom hook to work with controlled component, this function provide you with both form and field level state. Re-render is isolated at the hook level.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/usecontroller) • [Demo](https://codesandbox.io/s/usecontroller-0o8px)\n *\n * @param props - the path name to the form field value, and validation rules.\n *\n * @returns field properties, field and form state. {@link UseControllerReturn}\n *\n * @example\n * ```tsx\n * function Input(props) {\n * const { field, fieldState, formState } = useController(props);\n * return (\n * <div>\n * <input {...field} placeholder={props.name} />\n * <p>{fieldState.isTouched && \"Touched\"}</p>\n * <p>{formState.isSubmitted ? \"submitted\" : \"\"}</p>\n * </div>\n * );\n * }\n * ```\n */\nfunction useController(props) {\n const methods = useFormContext();\n const { name, disabled, control = methods.control, shouldUnregister } = props;\n const isArrayField = isNameInFieldArray(control._names.array, name);\n const value = useWatch({\n control,\n name,\n defaultValue: get(control._formValues, name, get(control._defaultValues, name, props.defaultValue)),\n exact: true,\n });\n const formState = useFormState({\n control,\n name,\n });\n const _registerProps = React.useRef(control.register(name, {\n ...props.rules,\n value,\n ...(isBoolean(props.disabled) ? { disabled: props.disabled } : {}),\n }));\n React.useEffect(() => {\n const _shouldUnregisterField = control._options.shouldUnregister || shouldUnregister;\n const updateMounted = (name, value) => {\n const field = get(control._fields, name);\n if (field) {\n field._f.mount = value;\n }\n };\n updateMounted(name, true);\n if (_shouldUnregisterField) {\n const value = cloneObject(get(control._options.defaultValues, name));\n set(control._defaultValues, name, value);\n if (isUndefined(get(control._formValues, name))) {\n set(control._formValues, name, value);\n }\n }\n return () => {\n (isArrayField\n ? _shouldUnregisterField && !control._state.action\n : _shouldUnregisterField)\n ? control.unregister(name)\n : updateMounted(name, false);\n };\n }, [name, control, isArrayField, shouldUnregister]);\n React.useEffect(() => {\n if (get(control._fields, name)) {\n control._updateDisabledField({\n disabled,\n fields: control._fields,\n name,\n value: get(control._fields, name)._f.value,\n });\n }\n }, [disabled, name, control]);\n return {\n field: {\n name,\n value,\n ...(isBoolean(disabled) || formState.disabled\n ? { disabled: formState.disabled || disabled }\n : {}),\n onChange: React.useCallback((event) => _registerProps.current.onChange({\n target: {\n value: getEventValue(event),\n name: name,\n },\n type: EVENTS.CHANGE,\n }), [name]),\n onBlur: React.useCallback(() => _registerProps.current.onBlur({\n target: {\n value: get(control._formValues, name),\n name: name,\n },\n type: EVENTS.BLUR,\n }), [name, control]),\n ref: (elm) => {\n const field = get(control._fields, name);\n if (field && elm) {\n field._f.ref = {\n focus: () => elm.focus(),\n select: () => elm.select(),\n setCustomValidity: (message) => elm.setCustomValidity(message),\n reportValidity: () => elm.reportValidity(),\n };\n }\n },\n },\n formState,\n fieldState: Object.defineProperties({}, {\n invalid: {\n enumerable: true,\n get: () => !!get(formState.errors, name),\n },\n isDirty: {\n enumerable: true,\n get: () => !!get(formState.dirtyFields, name),\n },\n isTouched: {\n enumerable: true,\n get: () => !!get(formState.touchedFields, name),\n },\n isValidating: {\n enumerable: true,\n get: () => !!get(formState.validatingFields, name),\n },\n error: {\n enumerable: true,\n get: () => get(formState.errors, name),\n },\n }),\n };\n}\n\n/**\n * Component based on `useController` hook to work with controlled component.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/usecontroller/controller) • [Demo](https://codesandbox.io/s/react-hook-form-v6-controller-ts-jwyzw) • [Video](https://www.youtube.com/watch?v=N2UNk_UCVyA)\n *\n * @param props - the path name to the form field value, and validation rules.\n *\n * @returns provide field handler functions, field and form state.\n *\n * @example\n * ```tsx\n * function App() {\n * const { control } = useForm<FormValues>({\n * defaultValues: {\n * test: \"\"\n * }\n * });\n *\n * return (\n * <form>\n * <Controller\n * control={control}\n * name=\"test\"\n * render={({ field: { onChange, onBlur, value, ref }, formState, fieldState }) => (\n * <>\n * <input\n * onChange={onChange} // send value to hook form\n * onBlur={onBlur} // notify when input is touched\n * value={value} // return updated value\n * ref={ref} // set ref for focus management\n * />\n * <p>{formState.isSubmitted ? \"submitted\" : \"\"}</p>\n * <p>{fieldState.isTouched ? \"touched\" : \"\"}</p>\n * </>\n * )}\n * />\n * </form>\n * );\n * }\n * ```\n */\nconst Controller = (props) => props.render(useController(props));\n\nconst POST_REQUEST = 'post';\n/**\n * Form component to manage submission.\n *\n * @param props - to setup submission detail. {@link FormProps}\n *\n * @returns form component or headless render prop.\n *\n * @example\n * ```tsx\n * function App() {\n * const { control, formState: { errors } } = useForm();\n *\n * return (\n * <Form action=\"/api\" control={control}>\n * <input {...register(\"name\")} />\n * <p>{errors?.root?.server && 'Server error'}</p>\n * <button>Submit</button>\n * </Form>\n * );\n * }\n * ```\n */\nfunction Form(props) {\n const methods = useFormContext();\n const [mounted, setMounted] = React.useState(false);\n const { control = methods.control, onSubmit, children, action, method = POST_REQUEST, headers, encType, onError, render, onSuccess, validateStatus, ...rest } = props;\n const submit = async (event) => {\n let hasError = false;\n let type = '';\n await control.handleSubmit(async (data) => {\n const formData = new FormData();\n let formDataJson = '';\n try {\n formDataJson = JSON.stringify(data);\n }\n catch (_a) { }\n for (const name of control._names.mount) {\n formData.append(name, get(data, name));\n }\n if (onSubmit) {\n await onSubmit({\n data,\n event,\n method,\n formData,\n formDataJson,\n });\n }\n if (action) {\n try {\n const shouldStringifySubmissionData = [\n headers && headers['Content-Type'],\n encType,\n ].some((value) => value && value.includes('json'));\n const response = await fetch(action, {\n method,\n headers: {\n ...headers,\n ...(encType ? { 'Content-Type': encType } : {}),\n },\n body: shouldStringifySubmissionData ? formDataJson : formData,\n });\n if (response &&\n (validateStatus\n ? !validateStatus(response.status)\n : response.status < 200 || response.status >= 300)) {\n hasError = true;\n onError && onError({ response });\n type = String(response.status);\n }\n else {\n onSuccess && onSuccess({ response });\n }\n }\n catch (error) {\n hasError = true;\n onError && onError({ error });\n }\n }\n })(event);\n if (hasError && props.control) {\n props.control._subjects.state.next({\n isSubmitSuccessful: false,\n });\n props.control.setError('root.server', {\n type,\n });\n }\n };\n React.useEffect(() => {\n setMounted(true);\n }, []);\n return render ? (React.createElement(React.Fragment, null, render({\n submit,\n }))) : (React.createElement(\"form\", { noValidate: mounted, action: action, method: method, encType: encType, onSubmit: submit, ...rest }, children));\n}\n\nvar appendErrors = (name, validateAllFieldCriteria, errors, type, message) => validateAllFieldCriteria\n ? {\n ...errors[name],\n types: {\n ...(errors[name] && errors[name].types ? errors[name].types : {}),\n [type]: message || true,\n },\n }\n : {};\n\nvar generateId = () => {\n const d = typeof performance === 'undefined' ? Date.now() : performance.now() * 1000;\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\n const r = (Math.random() * 16 + d) % 16 | 0;\n return (c == 'x' ? r : (r & 0x3) | 0x8).toString(16);\n });\n};\n\nvar getFocusFieldName = (name, index, options = {}) => options.shouldFocus || isUndefined(options.shouldFocus)\n ? options.focusName ||\n `${name}.${isUndefined(options.focusIndex) ? index : options.focusIndex}.`\n : '';\n\nvar getValidationModes = (mode) => ({\n isOnSubmit: !mode || mode === VALIDATION_MODE.onSubmit,\n isOnBlur: mode === VALIDATION_MODE.onBlur,\n isOnChange: mode === VALIDATION_MODE.onChange,\n isOnAll: mode === VALIDATION_MODE.all,\n isOnTouch: mode === VALIDATION_MODE.onTouched,\n});\n\nvar isWatched = (name, _names, isBlurEvent) => !isBlurEvent &&\n (_names.watchAll ||\n _names.watch.has(name) ||\n [..._names.watch].some((watchName) => name.startsWith(watchName) &&\n /^\\.\\w+/.test(name.slice(watchName.length))));\n\nconst iterateFieldsByAction = (fields, action, fieldsNames, abortEarly) => {\n for (const key of fieldsNames || Object.keys(fields)) {\n const field = get(fields, key);\n if (field) {\n const { _f, ...currentField } = field;\n if (_f) {\n if (_f.refs && _f.refs[0] && action(_f.refs[0], key) && !abortEarly) {\n break;\n }\n else if (_f.ref && action(_f.ref, _f.name) && !abortEarly) {\n break;\n }\n else {\n iterateFieldsByAction(currentField, action);\n }\n }\n else if (isObject(currentField)) {\n iterateFieldsByAction(currentField, action);\n }\n }\n }\n};\n\nvar updateFieldArrayRootError = (errors, error, name) => {\n const fieldArrayErrors = compact(get(errors, name));\n set(fieldArrayErrors, 'root', error[name]);\n set(errors, name, fieldArrayErrors);\n return errors;\n};\n\nvar isFileInput = (element) => element.type === 'file';\n\nvar isFunction = (value) => typeof value === 'function';\n\nvar isHTMLElement = (value) => {\n if (!isWeb) {\n return false;\n }\n const owner = value ? value.ownerDocument : 0;\n return (value instanceof\n (owner && owner.defaultView ? owner.defaultView.HTMLElement : HTMLElement));\n};\n\nvar isMessage = (value) => isString(value);\n\nvar isRadioInput = (element) => element.type === 'radio';\n\nvar isRegex = (value) => value instanceof RegExp;\n\nconst defaultResult = {\n value: false,\n isValid: false,\n};\nconst validResult = { value: true, isValid: true };\nvar getCheckboxValue = (options) => {\n if (Array.isArray(options)) {\n if (options.length > 1) {\n const values = options\n .filter((option) => option && option.checked && !option.disabled)\n .map((option) => option.value);\n return { value: values, isValid: !!values.length };\n }\n return options[0].checked && !options[0].disabled\n ? // @ts-expect-error expected to work in the browser\n options[0].attributes && !isUndefined(options[0].attributes.value)\n ? isUndefined(options[0].value) || options[0].value === ''\n ? validResult\n : { value: options[0].value, isValid: true }\n : validResult\n : defaultResult;\n }\n return defaultResult;\n};\n\nconst defaultReturn = {\n isValid: false,\n value: null,\n};\nvar getRadioValue = (options) => Array.isArray(options)\n ? options.reduce((previous, option) => option && option.checked && !option.disabled\n ? {\n isValid: true,\n value: option.value,\n }\n : previous, defaultReturn)\n : defaultReturn;\n\nfunction getValidateError(result, ref, type = 'validate') {\n if (isMessage(result) ||\n (Array.isArray(result) && result.every(isMessage)) ||\n (isBoolean(result) && !result)) {\n return {\n type,\n message: isMessage(result) ? result : '',\n ref,\n };\n }\n}\n\nvar getValueAndMessage = (validationData) => isObject(validationData) && !isRegex(validationData)\n ? validationData\n : {\n value: validationData,\n message: '',\n };\n\nvar validateField = async (field, formValues, validateAllFieldCriteria, shouldUseNativeValidation, isFieldArray) => {\n const { ref, refs, required, maxLength, minLength, min, max, pattern, validate, name, valueAsNumber, mount, disabled, } = field._f;\n const inputValue = get(formValues, name);\n if (!mount || disabled) {\n return {};\n }\n const inputRef = refs ? refs[0] : ref;\n const setCustomValidity = (message) => {\n if (shouldUseNativeValidation && inputRef.reportValidity) {\n inputRef.setCustomValidity(isBoolean(message) ? '' : message || '');\n inputRef.reportValidity();\n }\n };\n const error = {};\n const isRadio = isRadioInput(ref);\n const isCheckBox = isCheckBoxInput(ref);\n const isRadioOrCheckbox = isRadio || isCheckBox;\n const isEmpty = ((valueAsNumber || isFileInput(ref)) &&\n isUndefined(ref.value) &&\n isUndefined(inputValue)) ||\n (isHTMLElement(ref) && ref.value === '') ||\n inputValue === '' ||\n (Array.isArray(inputValue) && !inputValue.length);\n const appendErrorsCurry = appendErrors.bind(null, name, validateAllFieldCriteria, error);\n const getMinMaxMessage = (exceedMax, maxLengthMessage, minLengthMessage, maxType = INPUT_VALIDATION_RULES.maxLength, minType = INPUT_VALIDATION_RULES.minLength) => {\n const message = exceedMax ? maxLengthMessage : minLengthMessage;\n error[name] = {\n type: exceedMax ? maxType : minType,\n message,\n ref,\n ...appendErrorsCurry(exceedMax ? maxType : minType, message),\n };\n };\n if (isFieldArray\n ? !Array.isArray(inputValue) || !inputValue.length\n : required &&\n ((!isRadioOrCheckbox && (isEmpty || isNullOrUndefined(inputValue))) ||\n (isBoolean(inputValue) && !inputValue) ||\n (isCheckBox && !getCheckboxValue(refs).isValid) ||\n (isRadio && !getRadioValue(refs).isValid))) {\n const { value, message } = isMessage(required)\n ? { value: !!required, message: required }\n : getValueAndMessage(required);\n if (value) {\n error[name] = {\n type: INPUT_VALIDATION_RULES.required,\n message,\n ref: inputRef,\n ...appendErrorsCurry(INPUT_VALIDATION_RULES.required, message),\n };\n if (!validateAllFieldCriteria) {\n setCustomValidity(message);\n return error;\n }\n }\n }\n if (!isEmpty && (!isNullOrUndefined(min) || !isNullOrUndefined(max))) {\n let exceedMax;\n let exceedMin;\n const maxOutput = getValueAndMessage(max);\n const minOutput = getValueAndMessage(min);\n if (!isNullOrUndefined(inputValue) && !isNaN(inputValue)) {\n const valueNumber = ref.valueAsNumber ||\n (inputValue ? +inputValue : inputValue);\n if (!isNullOrUndefined(maxOutput.value)) {\n exceedMax = valueNumber > maxOutput.value;\n }\n if (!isNullOrUndefined(minOutput.value)) {\n exceedMin = valueNumber < minOutput.value;\n }\n }\n else {\n const valueDate = ref.valueAsDate || new Date(inputValue);\n const convertTimeToDate = (time) => new Date(new Date().toDateString() + ' ' + time);\n const isTime = ref.type == 'time';\n const isWeek = ref.type == 'week';\n if (isString(maxOutput.value) && inputValue) {\n exceedMax = isTime\n ? convertTimeToDate(inputValue) > convertTimeToDate(maxOutput.value)\n : isWeek\n ? inputValue > maxOutput.value\n : valueDate > new Date(maxOutput.value);\n }\n if (isString(minOutput.value) && inputValue) {\n exceedMin = isTime\n ? convertTimeToDate(inputValue) < convertTimeToDate(minOutput.value)\n : isWeek\n ? inputValue < minOutput.value\n : valueDate < new Date(minOutput.value);\n }\n }\n if (exceedMax || exceedMin) {\n getMinMaxMessage(!!exceedMax, maxOutput.message, minOutput.message, INPUT_VALIDATION_RULES.max, INPUT_VALIDATION_RULES.min);\n if (!validateAllFieldCriteria) {\n setCustomValidity(error[name].message);\n return error;\n }\n }\n }\n if ((maxLength || minLength) &&\n !isEmpty &&\n (isString(inputValue) || (isFieldArray && Array.isArray(inputValue)))) {\n const maxLengthOutput = getValueAndMessage(maxLength);\n const minLengthOutput = getValueAndMessage(minLength);\n const exceedMax = !isNullOrUndefined(maxLengthOutput.value) &&\n inputValue.length > +maxLengthOutput.value;\n const exceedMin = !isNullOrUndefined(minLengthOutput.value) &&\n inputValue.length < +minLengthOutput.value;\n if (exceedMax || exceedMin) {\n getMinMaxMessage(exceedMax, maxLengthOutput.message, minLengthOutput.message);\n if (!validateAllFieldCriteria) {\n setCustomValidity(error[name].message);\n return error;\n }\n }\n }\n if (pattern && !isEmpty && isString(inputValue)) {\n const { value: patternValue, message } = getValueAndMessage(pattern);\n if (isRegex(patternValue) && !inputValue.match(patternValue)) {\n error[name] = {\n type: INPUT_VALIDATION_RULES.pattern,\n message,\n ref,\n ...appendErrorsCurry(INPUT_VALIDATION_RULES.pattern, message),\n };\n if (!validateAllFieldCriteria) {\n setCustomValidity(message);\n return error;\n }\n }\n }\n if (validate) {\n if (isFunction(validate)) {\n const result = await validate(inputValue, formValues);\n const validateError = getValidateError(result, inputRef);\n if (validateError) {\n error[name] = {\n ...validateError,\n ...appendErrorsCurry(INPUT_VALIDATION_RULES.validate, validateError.message),\n };\n if (!validateAllFieldCriteria) {\n setCustomValidity(validateError.message);\n return error;\n }\n }\n }\n else if (isObject(validate)) {\n let validationResult = {};\n for (const key in validate) {\n if (!isEmptyObject(validationResult) && !validateAllFieldCriteria) {\n break;\n }\n const validateError = getValidateError(await validate[key](inputValue, formValues), inputRef, key);\n if (validateError) {\n validationResult = {\n ...validateError,\n ...appendErrorsCurry(key, validateError.message),\n };\n setCustomValidity(validateError.message);\n if (validateAllFieldCriteria) {\n error[name] = validationResult;\n }\n }\n }\n if (!isEmptyObject(validationResult)) {\n error[name] = {\n ref: inputRef,\n ...validationResult,\n };\n if (!validateAllFieldCriteria) {\n return error;\n }\n }\n }\n }\n setCustomValidity(true);\n return error;\n};\n\nvar appendAt = (data, value) => [\n ...data,\n ...convertToArrayPayload(value),\n];\n\nvar fillEmptyArray = (value) => Array.isArray(value) ? value.map(() => undefined) : undefined;\n\nfunction insert(data, index, value) {\n return [\n ...data.slice(0, index),\n ...convertToArrayPayload(value),\n ...data.slice(index),\n ];\n}\n\nvar moveArrayAt = (data, from, to) => {\n if (!Array.isArray(data)) {\n return [];\n }\n if (isUndefined(data[to])) {\n data[to] = undefined;\n }\n data.splice(to, 0, data.splice(from, 1)[0]);\n return data;\n};\n\nvar prependAt = (data, value) => [\n ...convertToArrayPayload(value),\n ...convertToArrayPayload(data),\n];\n\nfunction removeAtIndexes(data, indexes) {\n let i = 0;\n const temp = [...data];\n for (const index of indexes) {\n temp.splice(index - i, 1);\n i++;\n }\n return compact(temp).length ? temp : [];\n}\nvar removeArrayAt = (data, index) => isUndefined(index)\n ? []\n : removeAtIndexes(data, convertToArrayPayload(index).sort((a, b) => a - b));\n\nvar swapArrayAt = (data, indexA, indexB) => {\n [data[indexA], data[indexB]] = [data[indexB], data[indexA]];\n};\n\nfunction baseGet(object, updatePath) {\n const length = updatePath.slice(0, -1).length;\n let index = 0;\n while (index < length) {\n object = isUndefined(object) ? index++ : object[updatePath[index++]];\n }\n return object;\n}\nfunction isEmptyArray(obj) {\n for (const key in obj) {\n if (obj.hasOwnProperty(key) && !isUndefined(obj[key])) {\n return false;\n }\n }\n return true;\n}\nfunction unset(object, path) {\n const paths = Array.isArray(path)\n ? path\n : isKey(path)\n ? [path]\n : stringToPath(path);\n const childObject = paths.length === 1 ? object : baseGet(object, paths);\n const index = paths.length - 1;\n const key = paths[index];\n if (childObject) {\n delete childObject[key];\n }\n if (index !== 0 &&\n ((isObject(childObject) && isEmptyObject(childObject)) ||\n (Array.isArray(childObject) && isEmptyArray(childObject)))) {\n unset(object, paths.slice(0, -1));\n }\n return object;\n}\n\nvar updateAt = (fieldValues, index, value) => {\n fieldValues[index] = value;\n return fieldValues;\n};\n\n/**\n * A custom hook that exposes convenient methods to perform operations with a list of dynamic inputs that need to be appended, updated, removed etc. • [Demo](https://codesandbox.io/s/react-hook-form-usefieldarray-ssugn) • [Video](https://youtu.be/4MrbfGSFY2A)\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/usefieldarray) • [Demo](https://codesandbox.io/s/react-hook-form-usefieldarray-ssugn)\n *\n * @param props - useFieldArray props\n *\n * @returns methods - functions to manipulate with the Field Arrays (dynamic inputs) {@link UseFieldArrayReturn}\n *\n * @example\n * ```tsx\n * function App() {\n * const { register, control, handleSubmit, reset, trigger, setError } = useForm({\n * defaultValues: {\n * test: []\n * }\n * });\n * const { fields, append } = useFieldArray({\n * control,\n * name: \"test\"\n * });\n *\n * return (\n * <form onSubmit={handleSubmit(data => console.log(data))}>\n * {fields.map((item, index) => (\n * <input key={item.id} {...register(`test.${index}.firstName`)} />\n * ))}\n * <button type=\"button\" onClick={() => append({ firstName: \"bill\" })}>\n * append\n * </button>\n * <input type=\"submit\" />\n * </form>\n * );\n * }\n * ```\n */\nfunction useFieldArray(props) {\n const methods = useFormContext();\n const { control = methods.control, name, keyName = 'id', shouldUnregister, } = props;\n const [fields, setFields] = React.useState(control._getFieldArray(name));\n const ids = React.useRef(control._getFieldArray(name).map(generateId));\n const _fieldIds = React.useRef(fields);\n const _name = React.useRef(name);\n const _actioned = React.useRef(false);\n _name.current = name;\n _fieldIds.current = fields;\n control._names.array.add(name);\n props.rules &&\n control.register(name, props.rules);\n useSubscribe({\n next: ({ values, name: fieldArrayName, }) => {\n if (fieldArrayName === _name.current || !fieldArrayName) {\n const fieldValues = get(values, _name.current);\n if (Array.isArray(fieldValues)) {\n setFields(fieldValues);\n ids.current = fieldValues.map(generateId);\n }\n }\n },\n subject: control._subjects.array,\n });\n const updateValues = React.useCallback((updatedFieldArrayValues) => {\n _actioned.current = true;\n control._updateFieldArray(name, updatedFieldArrayValues);\n }, [control, name]);\n const append = (value, options) => {\n const appendValue = convertToArrayPayload(cloneObject(value));\n const updatedFieldArrayValues = appendAt(control._getFieldArray(name), appendValue);\n control._names.focus = getFocusFieldName(name, updatedFieldArrayValues.length - 1, options);\n ids.current = appendAt(ids.current, appendValue.map(generateId));\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n control._updateFieldArray(name, updatedFieldArrayValues, appendAt, {\n argA: fillEmptyArray(value),\n });\n };\n const prepend = (value, options) => {\n const prependValue = convertToArrayPayload(cloneObject(value));\n const updatedFieldArrayValues = prependAt(control._getFieldArray(name), prependValue);\n control._names.focus = getFocusFieldName(name, 0, options);\n ids.current = prependAt(ids.current, prependValue.map(generateId));\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n control._updateFieldArray(name, updatedFieldArrayValues, prependAt, {\n argA: fillEmptyArray(value),\n });\n };\n const remove = (index) => {\n const updatedFieldArrayValues = removeArrayAt(control._getFieldArray(name), index);\n ids.current = removeArrayAt(ids.current, index);\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n control._updateFieldArray(name, updatedFieldArrayValues, removeArrayAt, {\n argA: index,\n });\n };\n const insert$1 = (index, value, options) => {\n const insertValue = convertToArrayPayload(cloneObject(value));\n const updatedFieldArrayValues = insert(control._getFieldArray(name), index, insertValue);\n control._names.focus = getFocusFieldName(name, index, options);\n ids.current = insert(ids.current, index, insertValue.map(generateId));\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n control._updateFieldArray(name, updatedFieldArrayValues, insert, {\n argA: index,\n argB: fillEmptyArray(value),\n });\n };\n const swap = (indexA, indexB) => {\n const updatedFieldArrayValues = control._getFieldArray(name);\n swapArrayAt(updatedFieldArrayValues, indexA, indexB);\n swapArrayAt(ids.current, indexA, indexB);\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n control._updateFieldArray(name, updatedFieldArrayValues, swapArrayAt, {\n argA: indexA,\n argB: indexB,\n }, false);\n };\n const move = (from, to) => {\n const updatedFieldArrayValues = control._getFieldArray(name);\n moveArrayAt(updatedFieldArrayValues, from, to);\n moveArrayAt(ids.current, from, to);\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n control._updateFieldArray(name, updatedFieldArrayValues, moveArrayAt, {\n argA: from,\n argB: to,\n }, false);\n };\n const update = (index, value) => {\n const updateValue = cloneObject(value);\n const updatedFieldArrayValues = updateAt(control._getFieldArray(name), index, updateValue);\n ids.current = [...updatedFieldArrayValues].map((item, i) => !item || i === index ? generateId() : ids.current[i]);\n updateValues(updatedFieldArrayValues);\n setFields([...updatedFieldArrayValues]);\n control._updateFieldArray(name, updatedFieldArrayValues, updateAt, {\n argA: index,\n argB: updateValue,\n }, true, false);\n };\n const replace = (value) => {\n const updatedFieldArrayValues = convertToArrayPayload(cloneObject(value));\n ids.current = updatedFieldArrayValues.map(generateId);\n updateValues([...updatedFieldArrayValues]);\n setFields([...updatedFieldArrayValues]);\n control._updateFieldArray(name, [...updatedFieldArrayValues], (data) => data, {}, true, false);\n };\n React.useEffect(() => {\n control._state.action = false;\n isWatched(name, control._names) &&\n control._subjects.state.next({\n ...control._formState,\n });\n if (_actioned.current &&\n (!getValidationModes(control._options.mode).isOnSubmit ||\n control._formState.isSubmitted)) {\n if (control._options.resolver) {\n control._executeSchema([name]).then((result) => {\n const error = get(result.errors, name);\n const existingError = get(control._formState.errors, name);\n if (existingError\n ? (!error && existingError.type) ||\n (error &&\n (existingError.type !== error.type ||\n existingError.message !== error.message))\n : error && error.type) {\n error\n ? set(control._formState.errors, name, error)\n : unset(control._formState.errors, name);\n control._subjects.state.next({\n errors: control._formState.errors,\n });\n }\n });\n }\n else {\n const field = get(control._fields, name);\n if (field &&\n field._f &&\n !(getValidationModes(control._options.reValidateMode).isOnSubmit &&\n getValidationModes(control._options.mode).isOnSubmit)) {\n validateField(field, control._formValues, control._options.criteriaMode === VALIDATION_MODE.all, control._options.shouldUseNativeValidation, true).then((error) => !isEmptyObject(error) &&\n control._subjects.state.next({\n errors: updateFieldArrayRootError(control._formState.errors, error, name),\n }));\n }\n }\n }\n control._subjects.values.next({\n name,\n values: { ...control._formValues },\n });\n control._names.focus &&\n iterateFieldsByAction(control._fields, (ref, key) => {\n if (control._names.focus &&\n key.startsWith(control._names.focus) &&\n ref.focus) {\n ref.focus();\n return 1;\n }\n return;\n });\n control._names.focus = '';\n control._updateValid();\n _actioned.current = false;\n }, [fields, name, control]);\n React.useEffect(() => {\n !get(control._formValues, name) && control._updateFieldArray(name);\n return () => {\n (control._options.shouldUnregister || shouldUnregister) &&\n control.unregister(name);\n };\n }, [name, control, keyName, shouldUnregister]);\n return {\n swap: React.useCallback(swap, [updateValues, name, control]),\n move: React.useCallback(move, [updateValues, name, control]),\n prepend: React.useCallback(prepend, [updateValues, name, control]),\n append: React.useCallback(append, [updateValues, name, control]),\n remove: React.useCallback(remove, [updateValues, name, control]),\n insert: React.useCallback(insert$1, [updateValues, name, control]),\n update: React.useCallback(update, [updateValues, name, control]),\n replace: React.useCallback(replace, [updateValues, name, control]),\n fields: React.useMemo(() => fields.map((field, index) => ({\n ...field,\n [keyName]: ids.current[index] || generateId(),\n })), [fields, keyName]),\n };\n}\n\nvar createSubject = () => {\n let _observers = [];\n const next = (value) => {\n for (const observer of _observers) {\n observer.next && observer.next(value);\n }\n };\n const subscribe = (observer) => {\n _observers.push(observer);\n return {\n unsubscribe: () => {\n _observers = _observers.filter((o) => o !== observer);\n },\n };\n };\n const unsubscribe = () => {\n _observers = [];\n };\n return {\n get observers() {\n return _observers;\n },\n next,\n subscribe,\n unsubscribe,\n };\n};\n\nvar isPrimitive = (value) => isNullOrUndefined(value) || !isObjectType(value);\n\nfunction deepEqual(object1, object2) {\n if (isPrimitive(object1) || isPrimitive(object2)) {\n return object1 === object2;\n }\n if (isDateObject(object1) && isDateObject(object2)) {\n return object1.getTime() === object2.getTime();\n }\n const keys1 = Object.keys(object1);\n const keys2 = Object.keys(object2);\n if (keys1.length !== keys2.length) {\n return false;\n }\n for (const key of keys1) {\n const val1 = object1[key];\n if (!keys2.includes(key)) {\n return false;\n }\n if (key !== 'ref') {\n const val2 = object2[key];\n if ((isDateObject(val1) && isDateObject(val2)) ||\n (isObject(val1) && isObject(val2)) ||\n (Array.isArray(val1) && Array.isArray(val2))\n ? !deepEqual(val1, val2)\n : val1 !== val2) {\n return false;\n }\n }\n }\n return true;\n}\n\nvar isMultipleSelect = (element) => element.type === `select-multiple`;\n\nvar isRadioOrCheckbox = (ref) => isRadioInput(ref) || isCheckBoxInput(ref);\n\nvar live = (ref) => isHTMLElement(ref) && ref.isConnected;\n\nvar objectHasFunction = (data) => {\n for (const key in data) {\n if (isFunction(data[key])) {\n return true;\n }\n }\n return false;\n};\n\nfunction markFieldsDirty(data, fields = {}) {\n const isParentNodeArray = Array.isArray(data);\n if (isObject(data) || isParentNodeArray) {\n for (const key in data) {\n if (Array.isArray(data[key]) ||\n (isObject(data[key]) && !objectHasFunction(data[key]))) {\n fields[key] = Array.isArray(data[key]) ? [] : {};\n markFieldsDirty(data[key], fields[key]);\n }\n else if (!isNullOrUndefined(data[key])) {\n fields[key] = true;\n }\n }\n }\n return fields;\n}\nfunction getDirtyFieldsFromDefaultValues(data, formValues, dirtyFieldsFromValues) {\n const isParentNodeArray = Array.isArray(data);\n if (isObject(data) || isParentNodeArray) {\n for (const key in data) {\n if (Array.isArray(data[key]) ||\n (isObject(data[key]) && !objectHasFunction(data[key]))) {\n if (isUndefined(formValues) ||\n isPrimitive(dirtyFieldsFromValues[key])) {\n dirtyFieldsFromValues[key] = Array.isArray(data[key])\n ? markFieldsDirty(data[key], [])\n : { ...markFieldsDirty(data[key]) };\n }\n else {\n getDirtyFieldsFromDefaultValues(data[key], isNullOrUndefined(formValues) ? {} : formValues[key], dirtyFieldsFromValues[key]);\n }\n }\n else {\n dirtyFieldsFromValues[key] = !deepEqual(data[key], formValues[key]);\n }\n }\n }\n return dirtyFieldsFromValues;\n}\nvar getDirtyFields = (defaultValues, formValues) => getDirtyFieldsFromDefaultValues(defaultValues, formValues, markFieldsDirty(formValues));\n\nvar getFieldValueAs = (value, { valueAsNumber, valueAsDate, setValueAs }) => isUndefined(value)\n ? value\n : valueAsNumber\n ? value === ''\n ? NaN\n : value\n ? +value\n : value\n : valueAsDate && isString(value)\n ? new Date(value)\n : setValueAs\n ? setValueAs(value)\n : value;\n\nfunction getFieldValue(_f) {\n const ref = _f.ref;\n if (_f.refs ? _f.refs.every((ref) => ref.disabled) : ref.disabled) {\n return;\n }\n if (isFileInput(ref)) {\n return ref.files;\n }\n if (isRadioInput(ref)) {\n return getRadioValue(_f.refs).value;\n }\n if (isMultipleSelect(ref)) {\n return [...ref.selectedOptions].map(({ value }) => value);\n }\n if (isCheckBoxInput(ref)) {\n return getCheckboxValue(_f.refs).value;\n }\n return getFieldValueAs(isUndefined(ref.value) ? _f.ref.value : ref.value, _f);\n}\n\nvar getResolverOptions = (fieldsNames, _fields, criteriaMode, shouldUseNativeValidation) => {\n const fields = {};\n for (const name of fieldsNames) {\n const field = get(_fields, name);\n field && set(fields, name, field._f);\n }\n return {\n criteriaMode,\n names: [...fieldsNames],\n fields,\n shouldUseNativeValidation,\n };\n};\n\nvar getRuleValue = (rule) => isUndefined(rule)\n ? rule\n : isRegex(rule)\n ? rule.source\n : isObject(rule)\n ? isRegex(rule.value)\n ? rule.value.source\n : rule.value\n : rule;\n\nvar hasValidation = (options) => options.mount &&\n (options.required ||\n options.min ||\n options.max ||\n options.maxLength ||\n options.minLength ||\n options.pattern ||\n options.validate);\n\nfunction schemaErrorLookup(errors, _fields, name) {\n const error = get(errors, name);\n if (error || isKey(name)) {\n return {\n error,\n name,\n };\n }\n const names = name.split('.');\n while (names.length) {\n const fieldName = names.join('.');\n const field = get(_fields, fieldName);\n const foundError = get(errors, fieldName);\n if (field && !Array.isArray(field) && name !== fieldName) {\n return { name };\n }\n if (foundError && foundError.type) {\n return {\n name: fieldName,\n error: foundError,\n };\n }\n names.pop();\n }\n return {\n name,\n };\n}\n\nvar skipValidation = (isBlurEvent, isTouched, isSubmitted, reValidateMode, mode) => {\n if (mode.isOnAll) {\n return false;\n }\n else if (!isSubmitted && mode.isOnTouch) {\n return !(isTouched || isBlurEvent);\n }\n else if (isSubmitted ? reValidateMode.isOnBlur : mode.isOnBlur) {\n return !isBlurEvent;\n }\n else if (isSubmitted ? reValidateMode.isOnChange : mode.isOnChange) {\n return isBlurEvent;\n }\n return true;\n};\n\nvar unsetEmptyArray = (ref, name) => !compact(get(ref, name)).length && unset(ref, name);\n\nconst defaultOptions = {\n mode: VALIDATION_MODE.onSubmit,\n reValidateMode: VALIDATION_MODE.onChange,\n shouldFocusError: true,\n};\nfunction createFormControl(props = {}) {\n let _options = {\n ...defaultOptions,\n ...props,\n };\n let _formState = {\n submitCount: 0,\n isDirty: false,\n isLoading: isFunction(_options.defaultValues),\n isValidating: false,\n isSubmitted: false,\n isSubmitting: false,\n isSubmitSuccessful: false,\n isValid: false,\n touchedFields: {},\n dirtyFields: {},\n validatingFields: {},\n errors: _options.errors || {},\n disabled: _options.disabled || false,\n };\n let _fields = {};\n let _defaultValues = isObject(_options.defaultValues) || isObject(_options.values)\n ? cloneObject(_options.defaultValues || _options.values) || {}\n : {};\n let _formValues = _options.shouldUnregister\n ? {}\n : cloneObject(_defaultValues);\n let _state = {\n action: false,\n mount: false,\n watch: false,\n };\n let _names = {\n mount: new Set(),\n unMount: new Set(),\n array: new Set(),\n watch: new Set(),\n };\n let delayErrorCallback;\n let timer = 0;\n const _proxyFormState = {\n isDirty: false,\n dirtyFields: false,\n validatingFields: false,\n touchedFields: false,\n isValidating: false,\n isValid: false,\n errors: false,\n };\n const _subjects = {\n values: createSubject(),\n array: createSubject(),\n state: createSubject(),\n };\n const validationModeBeforeSubmit = getValidationModes(_options.mode);\n const validationModeAfterSubmit = getValidationModes(_options.reValidateMode);\n const shouldDisplayAllAssociatedErrors = _options.criteriaMode === VALIDATION_MODE.all;\n const debounce = (callback) => (wait) => {\n clearTimeout(timer);\n timer = setTimeout(callback, wait);\n };\n const _updateValid = async (shouldUpdateValid) => {\n if (_proxyFormState.isValid || shouldUpdateValid) {\n const isValid = _options.resolver\n ? isEmptyObject((await _executeSchema()).errors)\n : await executeBuiltInValidation(_fields, true);\n if (isValid !== _formState.isValid) {\n _subjects.state.next({\n isValid,\n });\n }\n }\n };\n const _updateIsValidating = (names, isValidating) => {\n if (_proxyFormState.isValidating || _proxyFormState.validatingFields) {\n (names || Array.from(_names.mount)).forEach((name) => {\n if (name) {\n isValidating\n ? set(_formState.validatingFields, name, isValidating)\n : unset(_formState.validatingFields, name);\n }\n });\n _subjects.state.next({\n validatingFields: _formState.validatingFields,\n isValidating: !isEmptyObject(_formState.validatingFields),\n });\n }\n };\n const _updateFieldArray = (name, values = [], method, args, shouldSetValues = true, shouldUpdateFieldsAndState = true) => {\n if (args && method) {\n _state.action = true;\n if (shouldUpdateFieldsAndState && Array.isArray(get(_fields, name))) {\n const fieldValues = method(get(_fields, name), args.argA, args.argB);\n shouldSetValues && set(_fields, name, fieldValues);\n }\n if (shouldUpdateFieldsAndState &&\n Array.isArray(get(_formState.errors, name))) {\n const errors = method(get(_formState.errors, name), args.argA, args.argB);\n shouldSetValues && set(_formState.errors, name, errors);\n unsetEmptyArray(_formState.errors, name);\n }\n if (_proxyFormState.touchedFields &&\n shouldUpdateFieldsAndState &&\n Array.isArray(get(_formState.touchedFields, name))) {\n const touchedFields = method(get(_formState.touchedFields, name), args.argA, args.argB);\n shouldSetValues && set(_formState.touchedFields, name, touchedFields);\n }\n if (_proxyFormState.dirtyFields) {\n _formState.dirtyFields = getDirtyFields(_defaultValues, _formValues);\n }\n _subjects.state.next({\n name,\n isDirty: _getDirty(name, values),\n dirtyFields: _formState.dirtyFields,\n errors: _formState.errors,\n isValid: _formState.isValid,\n });\n }\n else {\n set(_formValues, name, values);\n }\n };\n const updateErrors = (name, error) => {\n set(_formState.errors, name, error);\n _subjects.state.next({\n errors: _formState.errors,\n });\n };\n const _setErrors = (errors) => {\n _formState.errors = errors;\n _subjects.state.next({\n errors: _formState.errors,\n isValid: false,\n });\n };\n const updateValidAndValue = (name, shouldSkipSetValueAs, value, ref) => {\n const field = get(_fields, name);\n if (field) {\n const defaultValue = get(_formValues, name, isUndefined(value) ? get(_defaultValues, name) : value);\n isUndefined(defaultValue) ||\n (ref && ref.defaultChecked) ||\n shouldSkipSetValueAs\n ? set(_formValues, name, shouldSkipSetValueAs ? defaultValue : getFieldValue(field._f))\n : setFieldValue(name, defaultValue);\n _state.mount && _updateValid();\n }\n };\n const updateTouchAndDirty = (name, fieldValue, isBlurEvent, shouldDirty, shouldRender) => {\n let shouldUpdateField = false;\n let isPreviousDirty = false;\n const output = {\n name,\n };\n const disabledField = !!(get(_fields, name) && get(_fields, name)._f.disabled);\n if (!isBlurEvent || shouldDirty) {\n if (_proxyFormState.isDirty) {\n isPreviousDirty = _formState.isDirty;\n _formState.isDirty = output.isDirty = _getDirty();\n shouldUpdateField = isPreviousDirty !== output.isDirty;\n }\n const isCurrentFieldPristine = disabledField || deepEqual(get(_defaultValues, name), fieldValue);\n isPreviousDirty = !!(!disabledField && get(_formState.dirtyFields, name));\n isCurrentFieldPristine || disabledField\n ? unset(_formState.dirtyFields, name)\n : set(_formState.dirtyFields, name, true);\n output.dirtyFields = _formState.dirtyFields;\n shouldUpdateField =\n shouldUpdateField ||\n (_proxyFormState.dirtyFields &&\n isPreviousDirty !== !isCurrentFieldPristine);\n }\n if (isBlurEvent) {\n const isPreviousFieldTouched = get(_formState.touchedFields, name);\n if (!isPreviousFieldTouched) {\n set(_formState.touchedFields, name, isBlurEvent);\n output.touchedFields = _formState.touchedFields;\n shouldUpdateField =\n shouldUpdateField ||\n (_proxyFormState.touchedFields &&\n isPreviousFieldTouched !== isBlurEvent);\n }\n }\n shouldUpdateField && shouldRender && _subjects.state.next(output);\n return shouldUpdateField ? output : {};\n };\n const shouldRenderByError = (name, isValid, error, fieldState) => {\n const previousFieldError = get(_formState.errors, name);\n const shouldUpdateValid = _proxyFormState.isValid &&\n isBoolean(isValid) &&\n _formState.isValid !== isValid;\n if (props.delayError && error) {\n delayErrorCallback = debounce(() => updateErrors(name, error));\n delayErrorCallback(props.delayError);\n }\n else {\n clearTimeout(timer);\n delayErrorCallback = null;\n error\n ? set(_formState.errors, name, error)\n : unset(_formState.errors, name);\n }\n if ((error ? !deepEqual(previousFieldError, error) : previousFieldError) ||\n !isEmptyObject(fieldState) ||\n shouldUpdateValid) {\n const updatedFormState = {\n ...fieldState,\n ...(shouldUpdateValid && isBoolean(isValid) ? { isValid } : {}),\n errors: _formState.errors,\n name,\n };\n _formState = {\n ..._formState,\n ...updatedFormState,\n };\n _subjects.state.next(updatedFormState);\n }\n };\n const _executeSchema = async (name) => {\n _updateIsValidating(name, true);\n const result = await _options.resolver(_formValues, _options.context, getResolverOptions(name || _names.mount, _fields, _options.criteriaMode, _options.shouldUseNativeValidation));\n _updateIsValidating(name);\n return result;\n };\n const executeSchemaAndUpdateState = async (names) => {\n const { errors } = await _executeSchema(names);\n if (names) {\n for (const name of names) {\n const error = get(errors, name);\n error\n ? set(_formState.errors, name, error)\n : unset(_formState.errors, name);\n }\n }\n else {\n _formState.errors = errors;\n }\n return errors;\n };\n const executeBuiltInValidation = async (fields, shouldOnlyCheckValid, context = {\n valid: true,\n }) => {\n for (const name in fields) {\n const field = fields[name];\n if (field) {\n const { _f, ...fieldValue } = field;\n if (_f) {\n const isFieldArrayRoot = _names.array.has(_f.name);\n _updateIsValidating([name], true);\n const fieldError = await validateField(field, _formValues, shouldDisplayAllAssociatedErrors, _options.shouldUseNativeValidation && !shouldOnlyCheckValid, isFieldArrayRoot);\n _updateIsValidating([name]);\n if (fieldError[_f.name]) {\n context.valid = false;\n if (shouldOnlyCheckValid) {\n break;\n }\n }\n !shouldOnlyCheckValid &&\n (get(fieldError, _f.name)\n ? isFieldArrayRoot\n ? updateFieldArrayRootError(_formState.errors, fieldError, _f.name)\n : set(_formState.errors, _f.name, fieldError[_f.name])\n : unset(_formState.errors, _f.name));\n }\n fieldValue &&\n (await executeBuiltInValidation(fieldValue, shouldOnlyCheckValid, context));\n }\n }\n return context.valid;\n };\n const _removeUnmounted = () => {\n for (const name of _names.unMount) {\n const field = get(_fields, name);\n field &&\n (field._f.refs\n ? field._f.refs.every((ref) => !live(ref))\n : !live(field._f.ref)) &&\n unregister(name);\n }\n _names.unMount = new Set();\n };\n const _getDirty = (name, data) => (name && data && set(_formValues, name, data),\n !deepEqual(getValues(), _defaultValues));\n const _getWatch = (names, defaultValue, isGlobal) => generateWatchOutput(names, _names, {\n ...(_state.mount\n ? _formValues\n : isUndefined(defaultValue)\n ? _defaultValues\n : isString(names)\n ? { [names]: defaultValue }\n : defaultValue),\n }, isGlobal, defaultValue);\n const _getFieldArray = (name) => compact(get(_state.mount ? _formValues : _defaultValues, name, props.shouldUnregister ? get(_defaultValues, name, []) : []));\n const setFieldValue = (name, value, options = {}) => {\n const field = get(_fields, name);\n let fieldValue = value;\n if (field) {\n const fieldReference = field._f;\n if (fieldReference) {\n !fieldReference.disabled &&\n set(_formValues, name, getFieldValueAs(value, fieldReference));\n fieldValue =\n isHTMLElement(fieldReference.ref) && isNullOrUndefined(value)\n ? ''\n : value;\n if (isMultipleSelect(fieldReference.ref)) {\n [...fieldReference.ref.options].forEach((optionRef) => (optionRef.selected = fieldValue.includes(optionRef.value)));\n }\n else if (fieldReference.refs) {\n if (isCheckBoxInput(fieldReference.ref)) {\n fieldReference.refs.length > 1\n ? fieldReference.refs.forEach((checkboxRef) => (!checkboxRef.defaultChecked || !checkboxRef.disabled) &&\n (checkboxRef.checked = Array.isArray(fieldValue)\n ? !!fieldValue.find((data) => data === checkboxRef.value)\n : fieldValue === checkboxRef.value))\n : fieldReference.refs[0] &&\n (fieldReference.refs[0].checked = !!fieldValue);\n }\n else {\n fieldReference.refs.forEach((radioRef) => (radioRef.checked = radioRef.value === fieldValue));\n }\n }\n else if (isFileInput(fieldReference.ref)) {\n fieldReference.ref.value = '';\n }\n else {\n fieldReference.ref.value = fieldValue;\n if (!fieldReference.ref.type) {\n _subjects.values.next({\n name,\n values: { ..._formValues },\n });\n }\n }\n }\n }\n (options.shouldDirty || options.shouldTouch) &&\n updateTouchAndDirty(name, fieldValue, options.shouldTouch, options.shouldDirty, true);\n options.shouldValidate && trigger(name);\n };\n const setValues = (name, value, options) => {\n for (const fieldKey in value) {\n const fieldValue = value[fieldKey];\n const fieldName = `${name}.${fieldKey}`;\n const field = get(_fields, fieldName);\n (_names.array.has(name) ||\n !isPrimitive(fieldValue) ||\n (field && !field._f)) &&\n !isDateObject(fieldValue)\n ? setValues(fieldName, fieldValue, options)\n : setFieldValue(fieldName, fieldValue, options);\n }\n };\n const setValue = (name, value, options = {}) => {\n const field = get(_fields, name);\n const isFieldArray = _names.array.has(name);\n const cloneValue = cloneObject(value);\n set(_formValues, name, cloneValue);\n if (isFieldArray) {\n _subjects.array.next({\n name,\n values: { ..._formValues },\n });\n if ((_proxyFormState.isDirty || _proxyFormState.dirtyFields) &&\n options.shouldDirty) {\n _subjects.state.next({\n name,\n dirtyFields: getDirtyFields(_defaultValues, _formValues),\n isDirty: _getDirty(name, cloneValue),\n });\n }\n }\n else {\n field && !field._f && !isNullOrUndefined(cloneValue)\n ? setValues(name, cloneValue, options)\n : setFieldValue(name, cloneValue, options);\n }\n isWatched(name, _names) && _subjects.state.next({ ..._formState });\n _subjects.values.next({\n name: _state.mount ? name : undefined,\n values: { ..._formValues },\n });\n };\n const onChange = async (event) => {\n const target = event.target;\n let name = target.name;\n let isFieldValueUpdated = true;\n const field = get(_fields, name);\n const getCurrentFieldValue = () => target.type ? getFieldValue(field._f) : getEventValue(event);\n const _updateIsFieldValueUpdated = (fieldValue) => {\n isFieldValueUpdated =\n Number.isNaN(fieldValue) ||\n fieldValue === get(_formValues, name, fieldValue);\n };\n if (field) {\n let error;\n let isValid;\n const fieldValue = getCurrentFieldValue();\n const isBlurEvent = event.type === EVENTS.BLUR || event.type === EVENTS.FOCUS_OUT;\n const shouldSkipValidation = (!hasValidation(field._f) &&\n !_options.resolver &&\n !get(_formState.errors, name) &&\n !field._f.deps) ||\n skipValidation(isBlurEvent, get(_formState.touchedFields, name), _formState.isSubmitted, validationModeAfterSubmit, validationModeBeforeSubmit);\n const watched = isWatched(name, _names, isBlurEvent);\n set(_formValues, name, fieldValue);\n if (isBlurEvent) {\n field._f.onBlur && field._f.onBlur(event);\n delayErrorCallback && delayErrorCallback(0);\n }\n else if (field._f.onChange) {\n field._f.onChange(event);\n }\n const fieldState = updateTouchAndDirty(name, fieldValue, isBlurEvent, false);\n const shouldRender = !isEmptyObject(fieldState) || watched;\n !isBlurEvent &&\n _subjects.values.next({\n name,\n type: event.type,\n values: { ..._formValues },\n });\n if (shouldSkipValidation) {\n _proxyFormState.isValid && _updateValid();\n return (shouldRender &&\n _subjects.state.next({ name, ...(watched ? {} : fieldState) }));\n }\n !isBlurEvent && watched && _subjects.state.next({ ..._formState });\n if (_options.resolver) {\n const { errors } = await _executeSchema([name]);\n _updateIsFieldValueUpdated(fieldValue);\n if (isFieldValueUpdated) {\n const previousErrorLookupResult = schemaErrorLookup(_formState.errors, _fields, name);\n const errorLookupResult = schemaErrorLookup(errors, _fields, previousErrorLookupResult.name || name);\n error = errorLookupResult.error;\n name = errorLookupResult.name;\n isValid = isEmptyObject(errors);\n }\n }\n else {\n _updateIsValidating([name], true);\n error = (await validateField(field, _formValues, shouldDisplayAllAssociatedErrors, _options.shouldUseNativeValidation))[name];\n _updateIsValidating([name]);\n _updateIsFieldValueUpdated(fieldValue);\n if (isFieldValueUpdated) {\n if (error) {\n isValid = false;\n }\n else if (_proxyFormState.isValid) {\n isValid = await executeBuiltInValidation(_fields, true);\n }\n }\n }\n if (isFieldValueUpdated) {\n field._f.deps &&\n trigger(field._f.deps);\n shouldRenderByError(name, isValid, error, fieldState);\n }\n }\n };\n const _focusInput = (ref, key) => {\n if (get(_formState.errors, key) && ref.focus) {\n ref.focus();\n return 1;\n }\n return;\n };\n const trigger = async (name, options = {}) => {\n let isValid;\n let validationResult;\n const fieldNames = convertToArrayPayload(name);\n if (_options.resolver) {\n const errors = await executeSchemaAndUpdateState(isUndefined(name) ? name : fieldNames);\n isValid = isEmptyObject(errors);\n validationResult = name\n ? !fieldNames.some((name) => get(errors, name))\n : isValid;\n }\n else if (name) {\n validationResult = (await Promise.all(fieldNames.map(async (fieldName) => {\n const field = get(_fields, fieldName);\n return await executeBuiltInValidation(field && field._f ? { [fieldName]: field } : field);\n }))).every(Boolean);\n !(!validationResult && !_formState.isValid) && _updateValid();\n }\n else {\n validationResult = isValid = await executeBuiltInValidation(_fields);\n }\n _subjects.state.next({\n ...(!isString(name) ||\n (_proxyFormState.isValid && isValid !== _formState.isValid)\n ? {}\n : { name }),\n ...(_options.resolver || !name ? { isValid } : {}),\n errors: _formState.errors,\n });\n options.shouldFocus &&\n !validationResult &&\n iterateFieldsByAction(_fields, _focusInput, name ? fieldNames : _names.mount);\n return validationResult;\n };\n const getValues = (fieldNames) => {\n const values = {\n ..._defaultValues,\n ...(_state.mount ? _formValues : {}),\n };\n return isUndefined(fieldNames)\n ? values\n : isString(fieldNames)\n ? get(values, fieldNames)\n : fieldNames.map((name) => get(values, name));\n };\n const getFieldState = (name, formState) => ({\n invalid: !!get((formState || _formState).errors, name),\n isDirty: !!get((formState || _formState).dirtyFields, name),\n isTouched: !!get((formState || _formState).touchedFields, name),\n isValidating: !!get((formState || _formState).validatingFields, name),\n error: get((formState || _formState).errors, name),\n });\n const clearErrors = (name) => {\n name &&\n convertToArrayPayload(name).forEach((inputName) => unset(_formState.errors, inputName));\n _subjects.state.next({\n errors: name ? _formState.errors : {},\n });\n };\n const setError = (name, error, options) => {\n const ref = (get(_fields, name, { _f: {} })._f || {}).ref;\n set(_formState.errors, name, {\n ...error,\n ref,\n });\n _subjects.state.next({\n name,\n errors: _formState.errors,\n isValid: false,\n });\n options && options.shouldFocus && ref && ref.focus && ref.focus();\n };\n const watch = (name, defaultValue) => isFunction(name)\n ? _subjects.values.subscribe({\n next: (payload) => name(_getWatch(undefined, defaultValue), payload),\n })\n : _getWatch(name, defaultValue, true);\n const unregister = (name, options = {}) => {\n for (const fieldName of name ? convertToArrayPayload(name) : _names.mount) {\n _names.mount.delete(fieldName);\n _names.array.delete(fieldName);\n if (!options.keepValue) {\n unset(_fields, fieldName);\n unset(_formValues, fieldName);\n }\n !options.keepError && unset(_formState.errors, fieldName);\n !options.keepDirty && unset(_formState.dirtyFields, fieldName);\n !options.keepTouched && unset(_formState.touchedFields, fieldName);\n !options.keepIsValidating &&\n unset(_formState.validatingFields, fieldName);\n !_options.shouldUnregister &&\n !options.keepDefaultValue &&\n unset(_defaultValues, fieldName);\n }\n _subjects.values.next({\n values: { ..._formValues },\n });\n _subjects.state.next({\n ..._formState,\n ...(!options.keepDirty ? {} : { isDirty: _getDirty() }),\n });\n !options.keepIsValid && _updateValid();\n };\n const _updateDisabledField = ({ disabled, name, field, fields, value, }) => {\n if (isBoolean(disabled)) {\n const inputValue = disabled\n ? undefined\n : isUndefined(value)\n ? getFieldValue(field ? field._f : get(fields, name)._f)\n : value;\n set(_formValues, name, inputValue);\n updateTouchAndDirty(name, inputValue, false, false, true);\n }\n };\n const register = (name, options = {}) => {\n let field = get(_fields, name);\n const disabledIsDefined = isBoolean(options.disabled);\n set(_fields, name, {\n ...(field || {}),\n _f: {\n ...(field && field._f ? field._f : { ref: { name } }),\n name,\n mount: true,\n ...options,\n },\n });\n _names.mount.add(name);\n if (field) {\n _updateDisabledField({\n field,\n disabled: options.disabled,\n name,\n value: options.value,\n });\n }\n else {\n updateValidAndValue(name, true, options.value);\n }\n return {\n ...(disabledIsDefined ? { disabled: options.disabled } : {}),\n ...(_options.progressive\n ? {\n required: !!options.required,\n min: getRuleValue(options.min),\n max: getRuleValue(options.max),\n minLength: getRuleValue(options.minLength),\n maxLength: getRuleValue(options.maxLength),\n pattern: getRuleValue(options.pattern),\n }\n : {}),\n name,\n onChange,\n onBlur: onChange,\n ref: (ref) => {\n if (ref) {\n register(name, options);\n field = get(_fields, name);\n const fieldRef = isUndefined(ref.value)\n ? ref.querySelectorAll\n ? ref.querySelectorAll('input,select,textarea')[0] || ref\n : ref\n : ref;\n const radioOrCheckbox = isRadioOrCheckbox(fieldRef);\n const refs = field._f.refs || [];\n if (radioOrCheckbox\n ? refs.find((option) => option === fieldRef)\n : fieldRef === field._f.ref) {\n return;\n }\n set(_fields, name, {\n _f: {\n ...field._f,\n ...(radioOrCheckbox\n ? {\n refs: [\n ...refs.filter(live),\n fieldRef,\n ...(Array.isArray(get(_defaultValues, name)) ? [{}] : []),\n ],\n ref: { type: fieldRef.type, name },\n }\n : { ref: fieldRef }),\n },\n });\n updateValidAndValue(name, false, undefined, fieldRef);\n }\n else {\n field = get(_fields, name, {});\n if (field._f) {\n field._f.mount = false;\n }\n (_options.shouldUnregister || options.shouldUnregister) &&\n !(isNameInFieldArray(_names.array, name) && _state.action) &&\n _names.unMount.add(name);\n }\n },\n };\n };\n const _focusError = () => _options.shouldFocusError &&\n iterateFieldsByAction(_fields, _focusInput, _names.mount);\n const _disableForm = (disabled) => {\n if (isBoolean(disabled)) {\n _subjects.state.next({ disabled });\n iterateFieldsByAction(_fields, (ref, name) => {\n let requiredDisabledState = disabled;\n const currentField = get(_fields, name);\n if (currentField && isBoolean(currentField._f.disabled)) {\n requiredDisabledState || (requiredDisabledState = currentField._f.disabled);\n }\n ref.disabled = requiredDisabledState;\n }, 0, false);\n }\n };\n const handleSubmit = (onValid, onInvalid) => async (e) => {\n let onValidError = undefined;\n if (e) {\n e.preventDefault && e.preventDefault();\n e.persist && e.persist();\n }\n let fieldValues = cloneObject(_formValues);\n _subjects.state.next({\n isSubmitting: true,\n });\n if (_options.resolver) {\n const { errors, values } = await _executeSchema();\n _formState.errors = errors;\n fieldValues = values;\n }\n else {\n await executeBuiltInValidation(_fields);\n }\n unset(_formState.errors, 'root');\n if (isEmptyObject(_formState.errors)) {\n _subjects.state.next({\n errors: {},\n });\n try {\n await onValid(fieldValues, e);\n }\n catch (error) {\n onValidError = error;\n }\n }\n else {\n if (onInvalid) {\n await onInvalid({ ..._formState.errors }, e);\n }\n _focusError();\n setTimeout(_focusError);\n }\n _subjects.state.next({\n isSubmitted: true,\n isSubmitting: false,\n isSubmitSuccessful: isEmptyObject(_formState.errors) && !onValidError,\n submitCount: _formState.submitCount + 1,\n errors: _formState.errors,\n });\n if (onValidError) {\n throw onValidError;\n }\n };\n const resetField = (name, options = {}) => {\n if (get(_fields, name)) {\n if (isUndefined(options.defaultValue)) {\n setValue(name, cloneObject(get(_defaultValues, name)));\n }\n else {\n setValue(name, options.defaultValue);\n set(_defaultValues, name, cloneObject(options.defaultValue));\n }\n if (!options.keepTouched) {\n unset(_formState.touchedFields, name);\n }\n if (!options.keepDirty) {\n unset(_formState.dirtyFields, name);\n _formState.isDirty = options.defaultValue\n ? _getDirty(name, cloneObject(get(_defaultValues, name)))\n : _getDirty();\n }\n if (!options.keepError) {\n unset(_formState.errors, name);\n _proxyFormState.isValid && _updateValid();\n }\n _subjects.state.next({ ..._formState });\n }\n };\n const _reset = (formValues, keepStateOptions = {}) => {\n const updatedValues = formValues ? cloneObject(formValues) : _defaultValues;\n const cloneUpdatedValues = cloneObject(updatedValues);\n const isEmptyResetValues = isEmptyObject(formValues);\n const values = isEmptyResetValues ? _defaultValues : cloneUpdatedValues;\n if (!keepStateOptions.keepDefaultValues) {\n _defaultValues = updatedValues;\n }\n if (!keepStateOptions.keepValues) {\n if (keepStateOptions.keepDirtyValues) {\n for (const fieldName of _names.mount) {\n get(_formState.dirtyFields, fieldName)\n ? set(values, fieldName, get(_formValues, fieldName))\n : setValue(fieldName, get(values, fieldName));\n }\n }\n else {\n if (isWeb && isUndefined(formValues)) {\n for (const name of _names.mount) {\n const field = get(_fields, name);\n if (field && field._f) {\n const fieldReference = Array.isArray(field._f.refs)\n ? field._f.refs[0]\n : field._f.ref;\n if (isHTMLElement(fieldReference)) {\n const form = fieldReference.closest('form');\n if (form) {\n form.reset();\n break;\n }\n }\n }\n }\n }\n _fields = {};\n }\n _formValues = props.shouldUnregister\n ? keepStateOptions.keepDefaultValues\n ? cloneObject(_defaultValues)\n : {}\n : cloneObject(values);\n _subjects.array.next({\n values: { ...values },\n });\n _subjects.values.next({\n values: { ...values },\n });\n }\n _names = {\n mount: keepStateOptions.keepDirtyValues ? _names.mount : new Set(),\n unMount: new Set(),\n array: new Set(),\n watch: new Set(),\n watchAll: false,\n focus: '',\n };\n _state.mount =\n !_proxyFormState.isValid ||\n !!keepStateOptions.keepIsValid ||\n !!keepStateOptions.keepDirtyValues;\n _state.watch = !!props.shouldUnregister;\n _subjects.state.next({\n submitCount: keepStateOptions.keepSubmitCount\n ? _formState.submitCount\n : 0,\n isDirty: isEmptyResetValues\n ? false\n : keepStateOptions.keepDirty\n ? _formState.isDirty\n : !!(keepStateOptions.keepDefaultValues &&\n !deepEqual(formValues, _defaultValues)),\n isSubmitted: keepStateOptions.keepIsSubmitted\n ? _formState.isSubmitted\n : false,\n dirtyFields: isEmptyResetValues\n ? []\n : keepStateOptions.keepDirtyValues\n ? keepStateOptions.keepDefaultValues && _formValues\n ? getDirtyFields(_defaultValues, _formValues)\n : _formState.dirtyFields\n : keepStateOptions.keepDefaultValues && formValues\n ? getDirtyFields(_defaultValues, formValues)\n : {},\n touchedFields: keepStateOptions.keepTouched\n ? _formState.touchedFields\n : {},\n errors: keepStateOptions.keepErrors ? _formState.errors : {},\n isSubmitSuccessful: keepStateOptions.keepIsSubmitSuccessful\n ? _formState.isSubmitSuccessful\n : false,\n isSubmitting: false,\n });\n };\n const reset = (formValues, keepStateOptions) => _reset(isFunction(formValues)\n ? formValues(_formValues)\n : formValues, keepStateOptions);\n const setFocus = (name, options = {}) => {\n const field = get(_fields, name);\n const fieldReference = field && field._f;\n if (fieldReference) {\n const fieldRef = fieldReference.refs\n ? fieldReference.refs[0]\n : fieldReference.ref;\n if (fieldRef.focus) {\n fieldRef.focus();\n options.shouldSelect && fieldRef.select();\n }\n }\n };\n const _updateFormState = (updatedFormState) => {\n _formState = {\n ..._formState,\n ...updatedFormState,\n };\n };\n const _resetDefaultValues = () => isFunction(_options.defaultValues) &&\n _options.defaultValues().then((values) => {\n reset(values, _options.resetOptions);\n _subjects.state.next({\n isLoading: false,\n });\n });\n return {\n control: {\n register,\n unregister,\n getFieldState,\n handleSubmit,\n setError,\n _executeSchema,\n _getWatch,\n _getDirty,\n _updateValid,\n _removeUnmounted,\n _updateFieldArray,\n _updateDisabledField,\n _getFieldArray,\n _reset,\n _resetDefaultValues,\n _updateFormState,\n _disableForm,\n _subjects,\n _proxyFormState,\n _setErrors,\n get _fields() {\n return _fields;\n },\n get _formValues() {\n return _formValues;\n },\n get _state() {\n return _state;\n },\n set _state(value) {\n _state = value;\n },\n get _defaultValues() {\n return _defaultValues;\n },\n get _names() {\n return _names;\n },\n set _names(value) {\n _names = value;\n },\n get _formState() {\n return _formState;\n },\n set _formState(value) {\n _formState = value;\n },\n get _options() {\n return _options;\n },\n set _options(value) {\n _options = {\n ..._options,\n ...value,\n };\n },\n },\n trigger,\n register,\n handleSubmit,\n watch,\n setValue,\n getValues,\n reset,\n resetField,\n clearErrors,\n unregister,\n setError,\n setFocus,\n getFieldState,\n };\n}\n\n/**\n * Custom hook to manage the entire form.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/useform) • [Demo](https://codesandbox.io/s/react-hook-form-get-started-ts-5ksmm) • [Video](https://www.youtube.com/watch?v=RkXv4AXXC_4)\n *\n * @param props - form configuration and validation parameters.\n *\n * @returns methods - individual functions to manage the form state. {@link UseFormReturn}\n *\n * @example\n * ```tsx\n * function App() {\n * const { register, handleSubmit, watch, formState: { errors } } = useForm();\n * const onSubmit = data => console.log(data);\n *\n * console.log(watch(\"example\"));\n *\n * return (\n * <form onSubmit={handleSubmit(onSubmit)}>\n * <input defaultValue=\"test\" {...register(\"example\")} />\n * <input {...register(\"exampleRequired\", { required: true })} />\n * {errors.exampleRequired && <span>This field is required</span>}\n * <button>Submit</button>\n * </form>\n * );\n * }\n * ```\n */\nfunction useForm(props = {}) {\n const _formControl = React.useRef();\n const _values = React.useRef();\n const [formState, updateFormState] = React.useState({\n isDirty: false,\n isValidating: false,\n isLoading: isFunction(props.defaultValues),\n isSubmitted: false,\n isSubmitting: false,\n isSubmitSuccessful: false,\n isValid: false,\n submitCount: 0,\n dirtyFields: {},\n touchedFields: {},\n validatingFields: {},\n errors: props.errors || {},\n disabled: props.disabled || false,\n defaultValues: isFunction(props.defaultValues)\n ? undefined\n : props.defaultValues,\n });\n if (!_formControl.current) {\n _formControl.current = {\n ...createFormControl(props),\n formState,\n };\n }\n const control = _formControl.current.control;\n control._options = props;\n useSubscribe({\n subject: control._subjects.state,\n next: (value) => {\n if (shouldRenderFormState(value, control._proxyFormState, control._updateFormState, true)) {\n updateFormState({ ...control._formState });\n }\n },\n });\n React.useEffect(() => control._disableForm(props.disabled), [control, props.disabled]);\n React.useEffect(() => {\n if (control._proxyFormState.isDirty) {\n const isDirty = control._getDirty();\n if (isDirty !== formState.isDirty) {\n control._subjects.state.next({\n isDirty,\n });\n }\n }\n }, [control, formState.isDirty]);\n React.useEffect(() => {\n if (props.values && !deepEqual(props.values, _values.current)) {\n control._reset(props.values, control._options.resetOptions);\n _values.current = props.values;\n updateFormState((state) => ({ ...state }));\n }\n else {\n control._resetDefaultValues();\n }\n }, [props.values, control]);\n React.useEffect(() => {\n if (props.errors) {\n control._setErrors(props.errors);\n }\n }, [props.errors, control]);\n React.useEffect(() => {\n if (!control._state.mount) {\n control._updateValid();\n control._state.mount = true;\n }\n if (control._state.watch) {\n control._state.watch = false;\n control._subjects.state.next({ ...control._formState });\n }\n control._removeUnmounted();\n });\n React.useEffect(() => {\n props.shouldUnregister &&\n control._subjects.values.next({\n values: control._getWatch(),\n });\n }, [props.shouldUnregister, control]);\n _formControl.current.formState = getProxyFormState(formState, control);\n return _formControl.current;\n}\n\nexport { Controller, Form, FormProvider, appendErrors, get, set, useController, useFieldArray, useForm, useFormContext, useFormState, useWatch };\n//# sourceMappingURL=index.esm.mjs.map\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nexport default freeGlobal;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nexport default root;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nexport default Symbol;\n","import Symbol from './_Symbol.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nexport default getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nexport default objectToString;\n","import Symbol from './_Symbol.js';\nimport getRawTag from './_getRawTag.js';\nimport objectToString from './_objectToString.js';\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nexport default baseGetTag;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nexport default isObjectLike;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nexport default isSymbol;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nexport default arrayMap;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nexport default isArray;\n","import Symbol from './_Symbol.js';\nimport arrayMap from './_arrayMap.js';\nimport isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nexport default baseToString;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nexport default isObject;\n","import baseGetTag from './_baseGetTag.js';\nimport isObject from './isObject.js';\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nexport default isFunction;\n","import root from './_root.js';\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nexport default coreJsData;\n","import coreJsData from './_coreJsData.js';\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nexport default isMasked;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nexport default toSource;\n","import isFunction from './isFunction.js';\nimport isMasked from './_isMasked.js';\nimport isObject from './isObject.js';\nimport toSource from './_toSource.js';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nexport default baseIsNative;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nexport default getValue;\n","import baseIsNative from './_baseIsNative.js';\nimport getValue from './_getValue.js';\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nexport default getNative;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nexport default eq;\n","import isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nexport default isKey;\n","import getNative from './_getNative.js';\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nexport default nativeCreate;\n","import nativeCreate from './_nativeCreate.js';\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nexport default hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nexport default hashDelete;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nexport default hashGet;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nexport default hashHas;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nexport default hashSet;\n","import hashClear from './_hashClear.js';\nimport hashDelete from './_hashDelete.js';\nimport hashGet from './_hashGet.js';\nimport hashHas from './_hashHas.js';\nimport hashSet from './_hashSet.js';\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nexport default Hash;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nexport default listCacheClear;\n","import eq from './eq.js';\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nexport default assocIndexOf;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nexport default listCacheDelete;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nexport default listCacheGet;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nexport default listCacheHas;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nexport default listCacheSet;\n","import listCacheClear from './_listCacheClear.js';\nimport listCacheDelete from './_listCacheDelete.js';\nimport listCacheGet from './_listCacheGet.js';\nimport listCacheHas from './_listCacheHas.js';\nimport listCacheSet from './_listCacheSet.js';\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nexport default ListCache;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nexport default Map;\n","import Hash from './_Hash.js';\nimport ListCache from './_ListCache.js';\nimport Map from './_Map.js';\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nexport default mapCacheClear;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nexport default isKeyable;\n","import isKeyable from './_isKeyable.js';\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nexport default getMapData;\n","import getMapData from './_getMapData.js';\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nexport default mapCacheDelete;\n","import getMapData from './_getMapData.js';\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nexport default mapCacheGet;\n","import getMapData from './_getMapData.js';\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nexport default mapCacheHas;\n","import getMapData from './_getMapData.js';\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nexport default mapCacheSet;\n","import mapCacheClear from './_mapCacheClear.js';\nimport mapCacheDelete from './_mapCacheDelete.js';\nimport mapCacheGet from './_mapCacheGet.js';\nimport mapCacheHas from './_mapCacheHas.js';\nimport mapCacheSet from './_mapCacheSet.js';\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nexport default MapCache;\n","import MapCache from './_MapCache.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nexport default memoize;\n","import memoize from './memoize.js';\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nexport default memoizeCapped;\n","import memoizeCapped from './_memoizeCapped.js';\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nexport default stringToPath;\n","import baseToString from './_baseToString.js';\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nexport default toString;\n","import isArray from './isArray.js';\nimport isKey from './_isKey.js';\nimport stringToPath from './_stringToPath.js';\nimport toString from './toString.js';\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nexport default castPath;\n","import isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nexport default toKey;\n","import castPath from './_castPath.js';\nimport toKey from './_toKey.js';\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nexport default baseGet;\n","import baseGet from './_baseGet.js';\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nexport default get;\n","import './main.css';\nimport { jsxs as p, jsx as r, Fragment as R } from \"react/jsx-runtime\";\nimport { AlertGroup as ke, Alert as xe, AlertVariant as F, AlertActionCloseButton as we, Modal as Ae, Button as x, FormHelperText as $, HelperText as B, HelperTextItem as G, Popover as Ve, Icon as D, FormGroup as le, NumberInput as qe, ValidatedOptions as S, InputGroup as j, InputGroupItem as E, TextInput as _, Switch as Oe, TextArea as ae, Title as Ne, Card as Le, CardHeader as Pe, CardTitle as Re, CardBody as _e, Grid as Fe, GridItem as z, PageSection as De, JumpLinks as Ee, JumpLinksItem as He, ButtonVariant as K, Checkbox as Me, Radio as $e, Text as Be } from \"@patternfly/react-core\";\nimport { createContext as se, useContext as ie, useState as A, useCallback as oe, useEffect as ce, useMemo as w, forwardRef as Ge, useId as je, Fragment as ue } from \"react\";\nimport { ExclamationCircleIcon as Ue, HelpIcon as Y, EyeIcon as We, EyeSlashIcon as Je, CubeIcon as ze, PaypalIcon as Ke, InstagramIcon as Ye, BitbucketIcon as Qe, MicrosoftIcon as Xe, TwitterIcon as Ze, StackOverflowIcon as et, OpenshiftIcon as tt, LinkedinIcon as nt, GoogleIcon as rt, GitlabIcon as lt, FacebookSquareIcon as at, GithubIcon as st, MinusCircleIcon as it, PlusCircleIcon as ot } from \"@patternfly/react-icons\";\nimport { useFormContext as U, Controller as N, useController as W, FormProvider as ct, useWatch as ut } from \"react-hook-form\";\nimport { useTranslation as dt } from \"react-i18next\";\nimport { Select as de, SelectVariant as Q, SelectOption as me } from \"@patternfly/react-core/deprecated\";\nimport { get as mt } from \"lodash-es\";\nconst he = se(void 0), Qt = () => ie(he), Xt = ({ children: e }) => {\n const [t, n] = A([]), l = (i) => {\n n((o) => o.filter((c) => c.id !== i));\n }, a = (i, o = F.success, c) => {\n n([\n {\n id: Math.random() * 100,\n message: i,\n variant: o,\n description: c\n },\n ...t\n ]);\n }, s = (i) => {\n a(i, F.danger);\n };\n return /* @__PURE__ */ p(he.Provider, { value: { addAlert: a, addError: s }, children: [\n /* @__PURE__ */ r(ke, { isToast: !0, \"data-testid\": \"alerts\", children: t.map(({ id: i, variant: o, message: c, description: u }) => /* @__PURE__ */ r(\n xe,\n {\n isLiveRegion: !0,\n variant: F[o],\n variantLabel: \"\",\n title: c,\n actionClose: /* @__PURE__ */ r(\n we,\n {\n title: c,\n onClose: () => l(i)\n }\n ),\n timeout: !0,\n onTimeout: () => l(i),\n children: u && /* @__PURE__ */ r(\"p\", { children: u })\n },\n i\n )) }),\n e\n ] });\n};\nfunction ht(e, t) {\n const n = se(t);\n return n.displayName = e, n;\n}\nfunction ft(e) {\n return e != null;\n}\nfunction gt(e) {\n const t = ie(e);\n if (ft(t))\n return t;\n throw new Error(\n `No provider found for ${e.displayName ? `the '${e.displayName}'` : \"an unknown\"} context, make sure it is included in your component hierarchy.`\n );\n}\nfunction bt(e, t, n) {\n const [l, a] = A(\n () => e.getItem(t) ?? n\n ), s = oe((i) => {\n a(i), e.setItem(t, i);\n }, []);\n return ce(() => {\n a(e.getItem(t) ?? n), window.addEventListener(\"storage\", i);\n function i(o) {\n o.storageArea === e && (o.key === null || o.key === t) && a(o.newValue ?? n);\n }\n return () => window.removeEventListener(\"storage\", i);\n }, [e, t]), [l, s];\n}\nfunction pt(e, t, n) {\n const l = w(\n () => JSON.stringify(n),\n [n]\n ), [a, s] = bt(\n e,\n t,\n l\n ), i = w(() => JSON.parse(a), [a]), o = oe(\n (c) => s(JSON.stringify(c)),\n []\n );\n return [i, o];\n}\nconst fe = ht(\n \"HelpContext\",\n void 0\n), yt = () => gt(fe), Zt = ({ children: e }) => {\n const [t, n] = pt(localStorage, \"helpEnabled\", !0);\n function l() {\n n(!t);\n }\n return /* @__PURE__ */ r(fe.Provider, { value: { enabled: t, toggleHelp: l }, children: e });\n}, en = ({\n modalTitle: e,\n continueLabel: t,\n cancelLabel: n,\n buttonTitle: l,\n isDisabled: a,\n buttonVariant: s,\n buttonTestRole: i,\n onContinue: o,\n component: c = x,\n children: u,\n ...h\n}) => {\n const [I, g] = A(!1);\n return /* @__PURE__ */ p(R, { children: [\n /* @__PURE__ */ r(\n c,\n {\n variant: s,\n onClick: () => g(!0),\n isDisabled: a,\n \"data-testrole\": i,\n children: l\n }\n ),\n /* @__PURE__ */ r(\n Ae,\n {\n variant: \"small\",\n ...h,\n title: e,\n isOpen: I,\n onClose: () => g(!1),\n actions: [\n /* @__PURE__ */ r(\n x,\n {\n id: \"modal-confirm\",\n variant: \"primary\",\n onClick: () => {\n g(!1), o();\n },\n children: t\n },\n \"confirm\"\n ),\n /* @__PURE__ */ r(\n x,\n {\n id: \"modal-cancel\",\n variant: \"secondary\",\n onClick: () => g(!1),\n children: n\n },\n \"cancel\"\n )\n ],\n children: u\n }\n )\n ] });\n}, ge = ({ message: e, ...t }) => /* @__PURE__ */ r($, { ...t, children: /* @__PURE__ */ r(B, { children: /* @__PURE__ */ r(G, { icon: /* @__PURE__ */ r(Ue, {}), variant: \"error\", children: e }) }) }), be = ({\n helpText: e,\n fieldLabelId: t,\n noVerticalAlign: n = !0,\n unWrap: l = !1\n}) => {\n const { enabled: a } = yt();\n return a ? /* @__PURE__ */ r(Ve, { bodyContent: e, children: /* @__PURE__ */ p(R, { children: [\n !l && /* @__PURE__ */ r(\n \"button\",\n {\n \"data-testid\": `help-label-${t}`,\n \"aria-label\": t,\n onClick: (s) => s.preventDefault(),\n className: \"pf-v5-c-form__group-label-help\",\n children: /* @__PURE__ */ r(D, { isInline: n, children: /* @__PURE__ */ r(Y, {}) })\n }\n ),\n l && /* @__PURE__ */ r(D, { isInline: n, children: /* @__PURE__ */ r(Y, {}) })\n ] }) }) : null;\n}, V = ({\n name: e,\n label: t,\n labelIcon: n,\n error: l,\n children: a,\n ...s\n}) => /* @__PURE__ */ p(\n le,\n {\n label: t || e,\n fieldId: e,\n labelIcon: n ? /* @__PURE__ */ r(be, { helpText: n, fieldLabelId: e }) : void 0,\n ...s,\n children: [\n a,\n l && /* @__PURE__ */ r(ge, { \"data-testid\": `${e}-helper`, message: l.message })\n ]\n }\n), tn = ({\n name: e,\n label: t,\n controller: n,\n labelIcon: l,\n ...a\n}) => {\n const {\n control: s,\n formState: { errors: i }\n } = U();\n return /* @__PURE__ */ r(\n V,\n {\n name: e,\n label: t,\n isRequired: n.rules?.required === !0,\n error: i[e],\n labelIcon: l,\n children: /* @__PURE__ */ r(\n N,\n {\n ...n,\n name: e,\n control: s,\n render: ({ field: o }) => {\n const c = !!n.rules?.required, u = n.rules?.min, h = o.value === 0 ? n.defaultValue : o.value, I = (g) => o.onChange(u ? Math.max(g, Number(u)) : g);\n return /* @__PURE__ */ r(\n qe,\n {\n ...a,\n id: e,\n value: h,\n validated: i[e] ? S.error : S.default,\n required: c,\n min: Number(u),\n max: Number(n.rules?.max),\n onPlus: () => I(h + 1),\n onMinus: () => I(h - 1),\n onChange: (g) => {\n const d = Number(g.currentTarget.value);\n I(isNaN(d) ? n.defaultValue : d);\n }\n }\n );\n }\n }\n )\n }\n );\n}, It = ({\n hasReveal: e = !0,\n innerRef: t,\n ...n\n}) => {\n const { t: l } = dt(), [a, s] = A(!0);\n return /* @__PURE__ */ p(j, { children: [\n /* @__PURE__ */ r(E, { children: /* @__PURE__ */ r(\n _,\n {\n ...n,\n type: a ? \"password\" : \"text\",\n ref: t\n }\n ) }),\n e && /* @__PURE__ */ r(\n x,\n {\n variant: \"control\",\n \"aria-label\": l(\"showPassword\"),\n onClick: () => s(!a),\n children: a ? /* @__PURE__ */ r(We, {}) : /* @__PURE__ */ r(Je, {})\n }\n )\n ] });\n}, pe = Ge(\n (e, t) => /* @__PURE__ */ r(It, { ...e, innerRef: t })\n);\npe.displayName = \"PasswordInput\";\nconst nn = (e) => {\n const { labelIcon: t, ...n } = e, l = !!e.rules?.required, a = e.defaultValue ?? \"\", { field: s, fieldState: i } = W({\n ...e,\n defaultValue: a\n });\n return /* @__PURE__ */ p(\n V,\n {\n name: e.name,\n label: e.label,\n labelIcon: t,\n isRequired: l,\n error: i.error,\n children: [\n /* @__PURE__ */ r(\n pe,\n {\n isRequired: l,\n id: e.name,\n \"data-testid\": e.name,\n validated: i.error ? S.error : S.default,\n isDisabled: e.isDisabled,\n ...n,\n ...s\n }\n ),\n e.helperText && /* @__PURE__ */ r($, { children: /* @__PURE__ */ r(B, { children: /* @__PURE__ */ r(G, { children: e.helperText }) }) })\n ]\n }\n );\n}, ye = (e) => typeof e == \"string\", X = (e) => ye(e) ? e : e.key, Ct = ({\n name: e,\n label: t,\n options: n,\n controller: l,\n variant: a = Q.single,\n labelIcon: s,\n onFilter: i,\n ...o\n}) => {\n const {\n control: c,\n formState: { errors: u }\n } = U(), [h, I] = A(!1), g = (m = \"\") => {\n const b = m.toLowerCase();\n return n.filter(\n (f) => f.toString().toLowerCase().startsWith(b)\n ).map((f) => /* @__PURE__ */ r(me, { value: X(f), children: ye(f) ? f : f.value }, X(f)));\n }, d = (m) => typeof m[0] != \"string\";\n return /* @__PURE__ */ r(\n V,\n {\n name: e,\n label: t,\n isRequired: !!l.rules?.required,\n error: u[e],\n labelIcon: s,\n children: /* @__PURE__ */ r(\n N,\n {\n ...l,\n name: e,\n control: c,\n render: ({ field: { onChange: m, value: b } }) => /* @__PURE__ */ r(\n de,\n {\n ...o,\n toggleId: e.slice(e.lastIndexOf(\".\") + 1),\n onToggle: (f, v) => I(v),\n selections: d(n) ? n.filter(\n (f) => Array.isArray(b) ? b.includes(f.key) : b === f.key\n ).map((f) => f.value) : b,\n onSelect: (f, v) => {\n if (f.stopPropagation(), Array.isArray(b)) {\n const q = v.toString(), C = d(n) ? n.find((y) => y.value === q)?.key : q;\n b.includes(C) ? m(b.filter((y) => y !== C)) : m([...b, q]);\n } else\n m(v), I(!1);\n },\n onClear: a !== Q.single ? (f) => {\n f.stopPropagation(), m([]);\n } : void 0,\n onFilter: (f, v) => (i?.(v), g(v)),\n isOpen: h,\n variant: a,\n validated: u[e] ? S.error : S.default,\n children: g()\n }\n )\n }\n )\n }\n );\n}, rn = (e) => {\n const t = e.stringify ? \"false\" : !1, n = e.defaultValue ?? t, { control: l } = U();\n return /* @__PURE__ */ r(\n V,\n {\n hasNoPaddingTop: !0,\n name: e.name,\n isRequired: e.rules?.required === !0,\n label: e.label,\n labelIcon: e.labelIcon,\n children: /* @__PURE__ */ r(\n N,\n {\n control: l,\n name: e.name,\n defaultValue: n,\n render: ({ field: { onChange: a, value: s } }) => /* @__PURE__ */ r(\n Oe,\n {\n ...e,\n id: e.name,\n \"data-testid\": e.name,\n label: e.labelOn,\n isChecked: e.stringify ? s === \"true\" : s,\n onChange: (i, o) => {\n const c = e.stringify ? o.toString() : o;\n e.onChange?.(i, o), a(c);\n }\n }\n )\n }\n )\n }\n );\n}, ln = (e) => {\n const t = !!e.rules?.required, n = e.defaultValue ?? \"\", { field: l, fieldState: a } = W({\n ...e,\n defaultValue: n\n });\n return /* @__PURE__ */ r(\n V,\n {\n isRequired: t,\n label: e.label,\n labelIcon: e.labelIcon,\n name: e.name,\n error: a.error,\n children: /* @__PURE__ */ r(\n ae,\n {\n isRequired: t,\n id: e.name,\n \"data-testid\": e.name,\n validated: a.error ? S.error : S.default,\n isDisabled: e.isDisabled,\n ...l\n }\n )\n }\n );\n}, an = (e) => {\n const { labelIcon: t, ...n } = e, l = !!e.rules?.required, a = e.defaultValue ?? \"\", { field: s, fieldState: i } = W({\n ...e,\n defaultValue: a\n });\n return /* @__PURE__ */ p(\n V,\n {\n name: e.name,\n label: e.label,\n labelIcon: t,\n isRequired: l,\n error: i.error,\n children: [\n /* @__PURE__ */ r(\n _,\n {\n isRequired: l,\n id: e.name,\n \"data-testid\": e.name,\n validated: i.error ? S.error : S.default,\n isDisabled: e.isDisabled,\n ...n,\n ...s\n }\n ),\n e.helperText && /* @__PURE__ */ r($, { children: /* @__PURE__ */ r(B, { children: /* @__PURE__ */ r(G, { children: e.helperText }) }) })\n ]\n }\n );\n}, vt = ae, sn = ({ icon: e }) => {\n const t = Tt(e);\n return /* @__PURE__ */ r(D, { size: \"lg\", children: /* @__PURE__ */ r(t, { alt: e }) });\n};\nfunction Tt(e) {\n switch (e) {\n case \"github\":\n return st;\n case \"facebook\":\n return at;\n case \"gitlab\":\n return lt;\n case \"google\":\n return rt;\n case \"linkedin\":\n case \"linkedin-openid-connect\":\n return nt;\n case \"openshift-v3\":\n case \"openshift-v4\":\n return tt;\n case \"stackoverflow\":\n return et;\n case \"twitter\":\n return Ze;\n case \"microsoft\":\n return Xe;\n case \"bitbucket\":\n return Qe;\n case \"instagram\":\n return Ye;\n case \"paypal\":\n return Ke;\n default:\n return ze;\n }\n}\nconst St = \"_title_jpdeu_3\", kt = {\n title: St\n}, Ie = ({\n id: e,\n title: t,\n headingLevel: n = \"h1\",\n size: l = \"xl\",\n ...a\n}) => /* @__PURE__ */ r(\n Ne,\n {\n headingLevel: n,\n size: l,\n className: kt.title,\n id: e,\n tabIndex: 0,\n ...a,\n children: t\n }\n), xt = ({\n title: e,\n children: t,\n scrollId: n,\n className: l\n}) => {\n const a = je();\n return /* @__PURE__ */ p(Le, { id: a, className: l, isFlat: !0, children: [\n /* @__PURE__ */ r(Pe, { className: \"kc-form-panel__header\", children: /* @__PURE__ */ r(Re, { tabIndex: 0, children: /* @__PURE__ */ r(Ie, { id: n, title: e }) }) }),\n /* @__PURE__ */ r(_e, { className: \"kc-form-panel__body\", children: t })\n ] });\n}, wt = (e) => {\n const { title: t, children: n, scrollId: l, ...a } = e;\n return /* @__PURE__ */ r(\"section\", { ...a, style: { marginTop: \"var(--pf-v5-global--spacer--lg)\" }, children: /* @__PURE__ */ p(R, { children: [\n /* @__PURE__ */ r(Ie, { id: l, title: t }),\n n\n ] }) });\n}, At = \"_panel_1kfdo_1\", Vt = \"_sticky_1kfdo_9\", Z = {\n panel: At,\n sticky: Vt\n}, qt = \"kc-main-content-page-container\", ee = (e) => e.replace(/\\s+/g, \"-\"), Ot = ({\n label: e,\n sections: t,\n borders: n = !1,\n ...l\n}) => {\n const a = w(\n () => t.filter(({ isHidden: s }) => !s),\n [t]\n );\n return /* @__PURE__ */ p(Fe, { hasGutter: !0, ...l, children: [\n /* @__PURE__ */ r(z, { md: 8, sm: 12, children: a.map(({ title: s, panel: i }) => {\n const o = ee(s.toLowerCase());\n return /* @__PURE__ */ r(ue, { children: n ? /* @__PURE__ */ r(\n xt,\n {\n scrollId: o,\n title: s,\n className: Z.panel,\n children: i\n }\n ) : /* @__PURE__ */ r(wt, { scrollId: o, title: s, children: i }) }, s);\n }) }),\n /* @__PURE__ */ r(z, { md: 4, sm: 12, order: { default: \"-1\", md: \"1\" }, children: /* @__PURE__ */ r(De, { className: Z.sticky, children: /* @__PURE__ */ r(\n Ee,\n {\n isVertical: !0,\n scrollableSelector: `#${qt}`,\n label: e,\n offset: 100,\n children: a.map(({ title: s }) => {\n const i = ee(s.toLowerCase());\n return (\n // note that JumpLinks currently does not work with spaces in the href\n /* @__PURE__ */ r(\n He,\n {\n href: `#${i}`,\n \"data-testid\": `jump-link-${i}`,\n children: s\n },\n s\n )\n );\n })\n }\n ) }) })\n ] });\n}, Nt = (e) => {\n try {\n return new Intl.DisplayNames([e], { type: \"language\" }).of(e);\n } catch {\n return e;\n }\n}, Lt = ({\n t: e,\n form: t,\n supportedLocales: n\n}) => {\n const l = n.map((a) => ({\n key: a,\n value: Nt(a) || \"\"\n }));\n return l.length ? /* @__PURE__ */ r(ct, { ...t, children: /* @__PURE__ */ r(\n Ct,\n {\n \"data-testid\": \"locale-select\",\n name: \"attributes.locale\",\n label: e(\"selectALocale\"),\n controller: { defaultValue: \"\" },\n options: l\n }\n ) }) : null;\n}, Ce = (e) => e?.includes(\"${\"), ve = (e) => e.substring(2, e.length - 1), O = (e, t, n) => (Ce(t) ? e(ve(t)) : t) || n, H = (e, t) => O(e, t.displayName, t.name), Pt = [\"username\", \"firstName\", \"lastName\", \"email\"], Te = (e) => e && Pt.includes(e), k = (e) => `${Te(e) ? \"\" : \"attributes.\"}${e?.replaceAll(\n \".\",\n \"🍺\"\n)}`, on = (e) => e.replaceAll(\".\", \"🍺\"), cn = (e) => e.replaceAll(\"🍺\", \".\");\nfunction un(e, t, n) {\n (e.responseData.errors !== void 0 ? e.responseData.errors : [e.responseData]).forEach((l) => {\n const a = Object.assign(\n {},\n l.params?.map((s) => n(Ce(s.toString()) ? ve(s) : s))\n );\n t(k(l.field), {\n message: n(l.errorMessage, {\n ...a,\n defaultValue: l.errorMessage || l.field\n }),\n type: \"server\"\n });\n });\n}\nfunction L({\n required: e,\n validators: t\n}) {\n return e || Rt(t);\n}\nfunction Rt(e) {\n return e && \"length\" in e && \"min\" in e.length && typeof e.length.min == \"number\" ? e.length.min > 0 : !1;\n}\nfunction dn(e) {\n if (typeof e != \"object\" || e === null || !(\"responseData\" in e))\n return !1;\n const { responseData: t } = e;\n return te(t) ? !0 : typeof t != \"object\" || t === null || !(\"errors\" in t) || !Array.isArray(t.errors) ? !1 : t.errors.every(te);\n}\nfunction te(e) {\n return !(typeof e != \"object\" || e === null || !(\"field\" in e) || typeof e.field != \"string\" || !(\"errorMessage\" in e) || typeof e.errorMessage != \"string\");\n}\nconst P = ({\n t: e,\n form: t,\n attribute: n,\n renderer: l,\n children: a\n}) => {\n const s = n.annotations?.inputHelperTextBefore, {\n formState: { errors: i }\n } = t, o = l?.(n), c = mt(i, k(n.name));\n return /* @__PURE__ */ p(\n le,\n {\n label: H(e, n) || \"\",\n fieldId: n.name,\n isRequired: L(n),\n labelIcon: s ? /* @__PURE__ */ r(be, { helpText: s, fieldLabelId: n.name }) : void 0,\n children: [\n o ? /* @__PURE__ */ p(j, { children: [\n a,\n o\n ] }) : a,\n c && /* @__PURE__ */ r(\n ge,\n {\n \"data-testid\": `${n.name}-helper`,\n message: c.message\n }\n )\n ]\n },\n n.name\n );\n}, _t = ({\n t: e,\n form: t,\n attribute: n,\n renderer: l,\n ...a\n}) => /* @__PURE__ */ r(P, { t: e, form: t, attribute: n, renderer: l, children: /* @__PURE__ */ r(\n Ft,\n {\n t: e,\n form: t,\n \"aria-label\": H(e, n),\n name: k(n.name),\n addButtonLabel: e(\"addMultivaluedLabel\", {\n fieldLabel: H(e, n)\n }),\n ...a\n }\n) }), Ft = ({\n t: e,\n name: t,\n inputType: n,\n form: l,\n addButtonLabel: a,\n isDisabled: s = !1,\n defaultValue: i,\n id: o,\n ...c\n}) => {\n const { register: u, setValue: h, control: I } = l, g = ut({\n name: t,\n control: I,\n defaultValue: i || \"\"\n }), d = w(() => Array.isArray(g) && g.length !== 0 ? g : i || [\"\"], [g]), m = (C) => {\n v([...d.slice(0, C), ...d.slice(C + 1)]);\n }, b = () => {\n v([...d, \"\"]);\n }, f = (C, y) => {\n v([...d.slice(0, C), y, ...d.slice(C + 1)]);\n }, v = (C) => {\n const y = C.flatMap((J) => J);\n h(t, y, {\n shouldDirty: !0\n });\n }, q = n.startsWith(\"html\") ? n.substring(6) : \"text\";\n return ce(() => {\n u(t);\n }, [u]), /* @__PURE__ */ r(\"div\", { id: o, children: d.map((C, y) => /* @__PURE__ */ p(ue, { children: [\n /* @__PURE__ */ p(j, { children: [\n /* @__PURE__ */ r(E, { isFill: !0, children: /* @__PURE__ */ r(\n _,\n {\n \"data-testid\": t + y,\n onChange: (J, Se) => f(y, Se),\n name: `${t}.${y}.value`,\n value: C,\n isDisabled: s,\n type: q,\n ...c\n }\n ) }),\n /* @__PURE__ */ r(E, { children: /* @__PURE__ */ r(\n x,\n {\n \"data-testid\": \"remove\" + y,\n variant: K.link,\n onClick: () => m(y),\n tabIndex: -1,\n \"aria-label\": e(\"remove\"),\n isDisabled: d.length === 1 || s,\n children: /* @__PURE__ */ r(it, {})\n }\n ) })\n ] }),\n y === d.length - 1 && /* @__PURE__ */ p(\n x,\n {\n variant: K.link,\n onClick: b,\n tabIndex: -1,\n \"aria-label\": e(\"add\"),\n \"data-testid\": \"addValue\",\n isDisabled: !C || s,\n children: [\n /* @__PURE__ */ r(ot, {}),\n \" \",\n e(a || \"add\")\n ]\n }\n )\n ] }, y)) });\n}, ne = (e) => {\n const { form: t, inputType: n, attribute: l } = e, a = L(l), s = n.startsWith(\"multiselect\"), i = s ? Me : $e, o = l.validators?.options?.options || [], c = l.annotations?.inputOptionLabels || {};\n return /* @__PURE__ */ r(P, { ...e, children: /* @__PURE__ */ r(\n N,\n {\n name: k(l.name),\n control: t.control,\n defaultValue: \"\",\n render: ({ field: u }) => /* @__PURE__ */ r(R, { children: o.map((h) => /* @__PURE__ */ r(\n i,\n {\n id: h,\n \"data-testid\": h,\n label: O(e.t, c[h], h),\n value: h,\n isChecked: u.value.includes(h),\n onChange: () => {\n s ? u.value.includes(h) ? u.onChange(\n u.value.filter((I) => I !== h)\n ) : u.onChange([...u.value, h]) : u.onChange([h]);\n },\n readOnly: l.readOnly,\n isRequired: a\n },\n h\n )) })\n }\n ) });\n}, re = (e) => {\n const { t, form: n, inputType: l, attribute: a } = e, [s, i] = A(!1), o = L(a), c = l === \"multiselect\", u = (d, m) => {\n c ? m.value.includes(d) ? m.onChange(m.value.filter((b) => b !== d)) : m.onChange([...m.value, d]) : m.onChange(d);\n }, h = a.validators?.options?.options || [], I = a.annotations?.inputOptionLabels || {}, g = (d) => O(e.t, I[d], d);\n return /* @__PURE__ */ r(P, { ...e, children: /* @__PURE__ */ r(\n N,\n {\n name: k(a.name),\n defaultValue: \"\",\n control: n.control,\n render: ({ field: d }) => /* @__PURE__ */ r(\n de,\n {\n toggleId: a.name,\n onToggle: (m, b) => i(b),\n isCreatable: !0,\n onCreateOption: (m) => u(m, d),\n onSelect: (m, b) => {\n const f = b.toString();\n u(f, d), Array.isArray(d.value) || i(!1);\n },\n selections: d.value ? d.value : c ? [] : t(\"choose\"),\n variant: c ? \"typeaheadmulti\" : \"single\",\n \"aria-label\": t(\"selectOne\"),\n isOpen: s,\n isDisabled: a.readOnly,\n required: o,\n children: [\"\", ...h].map((m) => /* @__PURE__ */ r(\n me,\n {\n selected: d.value === m,\n value: m,\n children: m ? g(m) : t(\"choose\")\n },\n m\n ))\n }\n )\n }\n ) });\n}, Dt = (e) => {\n const { form: t, attribute: n } = e, l = L(n);\n return /* @__PURE__ */ r(P, { ...e, children: /* @__PURE__ */ r(\n vt,\n {\n id: n.name,\n \"data-testid\": n.name,\n ...t.register(k(n.name)),\n cols: n.annotations?.inputTypeCols,\n rows: n.annotations?.inputTypeRows,\n readOnly: n.readOnly,\n isRequired: l\n }\n ) });\n}, T = (e) => {\n const { form: t, inputType: n, attribute: l } = e, a = L(l), s = n.startsWith(\"html\") ? n.substring(6) : \"text\";\n return /* @__PURE__ */ r(P, { ...e, children: /* @__PURE__ */ r(\n _,\n {\n id: l.name,\n \"data-testid\": l.name,\n type: s,\n placeholder: l.annotations?.inputTypePlaceholder,\n readOnly: l.readOnly,\n isRequired: a,\n ...t.register(k(l.name))\n }\n ) });\n}, M = {\n text: T,\n textarea: Dt,\n select: re,\n \"select-radiobuttons\": ne,\n multiselect: re,\n \"multiselect-checkboxes\": ne,\n \"html5-email\": T,\n \"html5-tel\": T,\n \"html5-url\": T,\n \"html5-number\": T,\n \"html5-range\": T,\n \"html5-datetime-local\": T,\n \"html5-date\": T,\n \"html5-month\": T,\n \"html5-time\": T,\n \"multi-input\": _t\n}, mn = ({\n t: e,\n form: t,\n userProfileMetadata: n,\n supportedLocales: l,\n hideReadOnly: a = !1,\n renderer: s\n}) => {\n const i = w(() => {\n if (!n.attributes)\n return [];\n const o = a ? n.attributes.filter(({ readOnly: c }) => !c) : n.attributes;\n return [\n // Insert an empty group for attributes without a group.\n { name: void 0 },\n ...n.groups ?? []\n ].map((c) => ({\n group: c,\n attributes: o.filter(\n (u) => u.group === c.name\n )\n }));\n }, [\n a,\n n.groups,\n n.attributes\n ]);\n return i.length === 0 ? null : /* @__PURE__ */ r(\n Ot,\n {\n label: e(\"jumpToSection\"),\n sections: i.filter((o) => o.attributes.length > 0).map(({ group: o, attributes: c }) => ({\n title: O(e, o.displayHeader, o.name) || e(\"general\"),\n panel: /* @__PURE__ */ p(\"div\", { className: \"pf-v5-c-form\", children: [\n o.displayDescription && /* @__PURE__ */ r(Be, { className: \"pf-v5-u-pb-lg\", children: O(e, o.displayDescription, \"\") }),\n c.map((u) => /* @__PURE__ */ r(\n Et,\n {\n t: e,\n form: t,\n supportedLocales: l,\n renderer: s,\n attribute: u\n },\n u.name\n ))\n ] })\n }))\n }\n );\n}, Et = ({\n t: e,\n form: t,\n renderer: n,\n supportedLocales: l,\n attribute: a\n}) => {\n const s = t.watch(\n k(a.name)\n ), i = w(() => Mt(a), [a]), o = a.multivalued || Bt(s) ? M[\"multi-input\"] : M[i];\n return a.name === \"locale\" ? /* @__PURE__ */ r(\n Lt,\n {\n form: t,\n supportedLocales: l,\n t: e,\n attribute: a\n }\n ) : /* @__PURE__ */ r(\n o,\n {\n t: e,\n form: t,\n inputType: i,\n attribute: a,\n renderer: n\n }\n );\n}, Ht = \"text\";\nfunction Mt(e) {\n if (Te(e.name))\n return \"text\";\n const t = e.annotations?.inputType;\n return $t(t) ? t : Ht;\n}\nconst $t = (e) => typeof e == \"string\" && e in M, Bt = (e) => Array.isArray(e) && e.length > 1;\nexport {\n Xt as AlertProvider,\n en as ContinueCancelModal,\n ge as FormErrorText,\n xt as FormPanel,\n Zt as Help,\n be as HelpItem,\n sn as IconMapper,\n vt as KeycloakTextArea,\n tn as NumberControl,\n nn as PasswordControl,\n pe as PasswordInput,\n Ot as ScrollForm,\n Ct as SelectControl,\n rn as SwitchControl,\n ln as TextAreaControl,\n an as TextControl,\n mn as UserProfileFields,\n on as beerify,\n ht as createNamedContext,\n cn as debeerify,\n ft as isDefined,\n dn as isUserProfileError,\n O as label,\n qt as mainPageContentId,\n un as setUserProfileServerError,\n Qt as useAlerts,\n yt as useHelp,\n gt as useRequiredContext,\n pt as useStoredState\n};\n","import { Spinner } from \"@patternfly/react-core\";\r\nimport Keycloak from \"keycloak-js\";\r\nimport {\r\n PropsWithChildren,\r\n createContext,\r\n useContext,\r\n useEffect,\r\n useMemo,\r\n useRef,\r\n useState,\r\n} from \"react\";\r\nimport { AlertProvider, Help } from \"ui-shared\";\r\nimport { Environment } from \"../environment\";\r\nimport { ErrorPage } from \"./ErrorPage\";\r\n\r\nexport type KeycloakContext = KeycloakContextProps & {\r\n keycloak: Keycloak;\r\n};\r\n\r\nconst KeycloakEnvContext = createContext<KeycloakContext | undefined>(\r\n undefined,\r\n);\r\n\r\nexport const useEnvironment = () => {\r\n const context = useContext(KeycloakEnvContext);\r\n if (!context)\r\n throw Error(\r\n \"no environment provider in the hierarchy make sure to add the provider\",\r\n );\r\n return context;\r\n};\r\n\r\ntype KeycloakContextProps = {\r\n environment: Environment;\r\n};\r\n\r\nexport const KeycloakProvider = ({\r\n environment,\r\n children,\r\n}: PropsWithChildren<KeycloakContextProps>) => {\r\n const calledOnce = useRef(false);\r\n const [init, setInit] = useState(false);\r\n const [error, setError] = useState<unknown>();\r\n const keycloak = useMemo(\r\n () =>\r\n new Keycloak({\r\n url: environment.authUrl,\r\n realm: environment.realm,\r\n clientId: environment.clientId,\r\n }),\r\n [environment],\r\n );\r\n\r\n useEffect(() => {\r\n // only needed in dev mode\r\n if (calledOnce.current) {\r\n return;\r\n }\r\n\r\n const init = () => {\r\n return keycloak.init({\r\n onLoad: \"check-sso\",\r\n pkceMethod: \"S256\",\r\n responseMode: \"query\",\r\n });\r\n };\r\n\r\n init()\r\n .then(() => setInit(true))\r\n .catch((error) => setError(error));\r\n\r\n calledOnce.current = true;\r\n }, [keycloak]);\r\n\r\n if (error) {\r\n return <ErrorPage error={error} />;\r\n }\r\n\r\n if (!init) {\r\n return <Spinner />;\r\n }\r\n\r\n return (\r\n <KeycloakEnvContext.Provider value={{ environment, keycloak }}>\r\n <AlertProvider>\r\n <Help>{children}</Help>\r\n </AlertProvider>\r\n </KeycloakEnvContext.Provider>\r\n );\r\n};\r\n","import {\r\n KeycloakMasthead,\r\n KeycloakProvider,\r\n Translations,\r\n TranslationsProvider,\r\n} from \"keycloak-masthead\";\r\nimport { useMemo } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { useHref } from \"react-router-dom\";\r\nimport { useEnvironment } from \"./KeycloakContext\";\r\nimport { joinPath } from \"../utils/joinPath\";\r\nimport { ExternalLinkSquareAltIcon } from \"@patternfly/react-icons\";\r\nimport { Button } from \"@patternfly/react-core\";\r\n\r\nimport style from \"./header.module.css\";\r\nimport { environment } from \"../environment\";\r\n\r\nconst ReferrerLink = () => {\r\n const { t } = useTranslation();\r\n\r\n return environment.referrer_uri ? (\r\n <Button\r\n data-testid=\"referrer-link\"\r\n component=\"a\"\r\n href={environment.referrer_uri!.replace(\"_hash_\", \"#\")}\r\n variant=\"link\"\r\n icon={<ExternalLinkSquareAltIcon />}\r\n iconPosition=\"right\"\r\n isInline\r\n >\r\n {t(\"backTo\", { app: environment.referrer })}\r\n </Button>\r\n ) : null;\r\n};\r\n\r\nexport const Header = () => {\r\n const { environment, keycloak } = useEnvironment();\r\n const { t } = useTranslation();\r\n\r\n const brandImage = environment.logo || \"d4science-logo.png\";\r\n const logoUrl = environment.logoUrl ? environment.logoUrl : \"/\";\r\n const internalLogoHref = useHref(logoUrl);\r\n\r\n // User can indicate that he wants an internal URL by starting it with \"/\"\r\n const indexHref = logoUrl.startsWith(\"/\") ? internalLogoHref : logoUrl;\r\n const translations = useMemo<Translations>(\r\n () => ({\r\n avatar: t(\"avatar\"),\r\n fullName: t(\"fullName\"),\r\n manageAccount: t(\"manageAccount\"),\r\n signOut: t(\"signOut\"),\r\n unknownUser: t(\"unknownUser\"),\r\n }),\r\n [t],\r\n );\r\n\r\n return (\r\n <TranslationsProvider translations={translations}>\r\n <KeycloakProvider keycloak={keycloak}>\r\n <KeycloakMasthead\r\n features={{ hasManageAccount: false }}\r\n showNavToggle\r\n brand={{\r\n href: indexHref,\r\n src: joinPath(environment.resourceUrl, brandImage),\r\n alt: t(\"logo\"),\r\n className: style.brand,\r\n }}\r\n toolbarItems={[<ReferrerLink key=\"link\" />]}\r\n />\r\n </KeycloakProvider>\r\n </TranslationsProvider>\r\n );\r\n};\r\n","import { CallOptions } from \"../api/methods\";\r\nimport { MenuItem } from \"../root/PageNav\";\r\nimport { joinPath } from \"../utils/joinPath\";\r\n\r\nexport default async function fetchContentJson(\r\n opts: CallOptions,\r\n): Promise<MenuItem[]> {\r\n const response = await fetch(\r\n joinPath(opts.context.environment.resourceUrl, \"/content.json\"),\r\n opts,\r\n );\r\n return await response.json();\r\n}\r\n","import type { DependencyList } from \"react\";\r\nimport { useEffect } from \"react\";\r\n\r\n/**\r\n * Function that creates a Promise. Receives an [AbortSignal](https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal)\r\n * which is aborted when the component unmounts, or the dependencies of the hook have changed.\r\n */\r\nexport type PromiseFactoryFn<T> = (signal: AbortSignal) => Promise<T>;\r\n\r\n/**\r\n * Function which is called with the value of the Promise when it resolves.\r\n */\r\nexport type PromiseResolvedFn<T> = (value: T) => void;\r\n\r\n/**\r\n * Takes a function that creates a Promise and returns its resolved result through a callback.\r\n *\r\n * ```ts\r\n * const [products, setProducts] = useState();\r\n *\r\n * function getProducts() {\r\n * return fetch('/api/products').then((res) => res.json());\r\n * }\r\n *\r\n * usePromise(() => getProducts(), setProducts);\r\n * ```\r\n *\r\n * Also takes a list of dependencies, when the dependencies change the Promise is recreated.\r\n *\r\n * ```ts\r\n * usePromise(() => getProduct(id), setProduct, [id]);\r\n * ```\r\n *\r\n * Can abort a fetch request, an [AbortSignal](https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal) is provided from the factory function to do so.\r\n * This signal will be aborted if the component unmounts, or if the dependencies of the hook have changed.\r\n *\r\n * ```ts\r\n * usePromise((signal) => fetch(`/api/products/${id}`, { signal }).then((res) => res.json()), setProduct, [id]);\r\n * ```\r\n *\r\n * @param factory Function that creates the Promise.\r\n * @param callback Function that gets called with the value of the Promise when it resolves.\r\n * @param deps If present, Promise will be recreated if the values in the list change.\r\n */\r\nexport function usePromise<T>(\r\n factory: PromiseFactoryFn<T>,\r\n callback: PromiseResolvedFn<T>,\r\n deps: DependencyList = [],\r\n) {\r\n useEffect(() => {\r\n const controller = new AbortController();\r\n const { signal } = controller;\r\n\r\n async function handlePromise() {\r\n // Try to resolve the Promise, if it fails, check if it was aborted.\r\n try {\r\n callback(await factory(signal));\r\n } catch (error) {\r\n // Ignore errors caused by aborting the Promise.\r\n if (error instanceof Error && error.name === \"AbortError\") {\r\n return;\r\n }\r\n\r\n // Rethrow other errors.\r\n throw error;\r\n }\r\n }\r\n\r\n handlePromise();\r\n\r\n // Abort the Promise when the component unmounts, or the dependencies change.\r\n return () => controller.abort();\r\n }, deps);\r\n}\r\n","import {\r\n Nav,\r\n NavExpandable,\r\n NavItem,\r\n NavList,\r\n PageSidebar,\r\n Spinner,\r\n PageSidebarBody,\r\n} from \"@patternfly/react-core\";\r\nimport {\r\n PropsWithChildren,\r\n MouseEvent as ReactMouseEvent,\r\n Suspense,\r\n useMemo,\r\n useState,\r\n} from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport {\r\n To,\r\n matchPath,\r\n useHref,\r\n useLinkClickHandler,\r\n useLocation,\r\n} from \"react-router-dom\";\r\nimport fetchContentJson from \"../content/fetchContent\";\r\nimport { environment, type Feature } from \"../environment\";\r\nimport { TFuncKey } from \"../i18n\";\r\nimport { usePromise } from \"../utils/usePromise\";\r\nimport { useEnvironment } from \"./KeycloakContext\";\r\n\r\ntype RootMenuItem = {\r\n label: TFuncKey;\r\n path: string;\r\n isVisible?: keyof Feature;\r\n modulePath?: string;\r\n};\r\n\r\ntype MenuItemWithChildren = {\r\n label: TFuncKey;\r\n children: MenuItem[];\r\n isVisible?: keyof Feature;\r\n};\r\n\r\nexport type MenuItem = RootMenuItem | MenuItemWithChildren;\r\n\r\nexport const PageNav = () => {\r\n const [menuItems, setMenuItems] = useState<MenuItem[]>();\r\n const context = useEnvironment();\r\n\r\n usePromise((signal) => fetchContentJson({ signal, context }), setMenuItems);\r\n return (\r\n <PageSidebar>\r\n <PageSidebarBody>\r\n <Nav>\r\n <NavList>\r\n <Suspense fallback={<Spinner />}>\r\n {menuItems\r\n ?.filter((menuItem) =>\r\n menuItem.isVisible\r\n ? context.environment.features[menuItem.isVisible]\r\n : true,\r\n )\r\n .map((menuItem) => (\r\n <NavMenuItem\r\n key={menuItem.label as string}\r\n menuItem={menuItem}\r\n />\r\n ))}\r\n </Suspense>\r\n </NavList>\r\n </Nav>\r\n </PageSidebarBody>\r\n </PageSidebar>\r\n );\r\n};\r\n\r\ntype NavMenuItemProps = {\r\n menuItem: MenuItem;\r\n};\r\n\r\nfunction NavMenuItem({ menuItem }: NavMenuItemProps) {\r\n const { t } = useTranslation();\r\n const {\r\n environment: { features },\r\n } = useEnvironment();\r\n const { pathname } = useLocation();\r\n const isActive = useMemo(\r\n () => matchMenuItem(pathname, menuItem),\r\n [pathname, menuItem],\r\n );\r\n\r\n if (\"path\" in menuItem) {\r\n return (\r\n <NavLink to={menuItem.path} isActive={isActive}>\r\n {t(menuItem.label)}\r\n </NavLink>\r\n );\r\n }\r\n\r\n return (\r\n <NavExpandable\r\n data-testid={menuItem.label}\r\n title={t(menuItem.label)}\r\n isActive={isActive}\r\n isExpanded={isActive}\r\n >\r\n {menuItem.children\r\n .filter((menuItem) =>\r\n menuItem.isVisible ? features[menuItem.isVisible] : true,\r\n )\r\n .map((child) => (\r\n <NavMenuItem key={child.label as string} menuItem={child} />\r\n ))}\r\n </NavExpandable>\r\n );\r\n}\r\n\r\nfunction matchMenuItem(currentPath: string, menuItem: MenuItem): boolean {\r\n if (\"path\" in menuItem) {\r\n return !!matchPath(menuItem.path, currentPath);\r\n }\r\n\r\n return menuItem.children.some((child) => matchMenuItem(currentPath, child));\r\n}\r\n\r\ntype NavLinkProps = {\r\n to: To;\r\n isActive: boolean;\r\n};\r\n\r\nexport const NavLink = ({\r\n to,\r\n isActive,\r\n children,\r\n}: PropsWithChildren<NavLinkProps>) => {\r\n const menuItemPath = `${new URL(environment.baseUrl).pathname}${to}`;\r\n const href = useHref(menuItemPath);\r\n const handleClick = useLinkClickHandler(menuItemPath);\r\n\r\n return (\r\n <NavItem\r\n data-testid={to}\r\n to={href}\r\n isActive={isActive}\r\n onClick={(event) =>\r\n // PatternFly does not have the correct type for this event, so we need to cast it.\r\n handleClick(event as unknown as ReactMouseEvent<HTMLAnchorElement>)\r\n }\r\n >\r\n {children}\r\n </NavItem>\r\n );\r\n};\r\n","import { Page, Spinner } from \"@patternfly/react-core\";\r\nimport { Suspense } from \"react\";\r\nimport { Outlet } from \"react-router-dom\";\r\nimport { environment } from \"../environment\";\r\nimport { Header } from \"./Header\";\r\nimport { KeycloakProvider } from \"./KeycloakContext\";\r\nimport { PageNav } from \"./PageNav\";\r\n\r\nexport const Root = () => {\r\n return (\r\n <KeycloakProvider environment={environment}>\r\n <Page header={<Header />} sidebar={<PageNav />} isManagedSidebar>\r\n <Suspense fallback={<Spinner />}>\r\n <Outlet />\r\n </Suspense>\r\n </Page>\r\n </KeycloakProvider>\r\n );\r\n};\r\n","import { lazy } from \"react\";\r\nimport type { IndexRouteObject, RouteObject } from \"react-router-dom\";\r\n\r\nimport { ErrorPage } from \"./root/ErrorPage\";\r\nimport { Root } from \"./root/Root\";\r\nimport { environment } from \"./environment\";\r\n\r\nconst DeviceActivity = lazy(() => import(\"./account-security/DeviceActivity\"));\r\nconst LinkedAccounts = lazy(() => import(\"./account-security/LinkedAccounts\"));\r\nconst SigningIn = lazy(() => import(\"./account-security/SigningIn\"));\r\nconst Applications = lazy(() => import(\"./applications/Applications\"));\r\nconst Groups = lazy(() => import(\"./groups/Groups\"));\r\nconst PersonalInfo = lazy(() => import(\"./personal-info/PersonalInfo\"));\r\nconst Resources = lazy(() => import(\"./resources/Resources\"));\r\nconst ContentComponent = lazy(() => import(\"./content/ContentComponent\"));\r\nconst AccountExtraPage = lazy(() => import(\"./d4science-page/AccountExtraPage\"));\r\n\r\nexport const DeviceActivityRoute: RouteObject = {\r\n path: \"account-security/device-activity\",\r\n element: <DeviceActivity />,\r\n};\r\n\r\nexport const LinkedAccountsRoute: RouteObject = {\r\n path: \"account-security/linked-accounts\",\r\n element: <LinkedAccounts />,\r\n};\r\n\r\nexport const SigningInRoute: RouteObject = {\r\n path: \"account-security/signing-in\",\r\n element: <SigningIn />,\r\n};\r\n\r\nexport const ApplicationsRoute: RouteObject = {\r\n path: \"applications\",\r\n element: <Applications />,\r\n};\r\n\r\nexport const GroupsRoute: RouteObject = {\r\n path: \"groups\",\r\n element: <Groups />,\r\n};\r\n\r\nexport const ResourcesRoute: RouteObject = {\r\n path: \"resources\",\r\n element: <Resources />,\r\n};\r\n\r\nexport type ContentComponentParams = {\r\n componentId: string;\r\n};\r\n\r\nexport const ContentRoute: RouteObject = {\r\n path: \"content/:componentId\",\r\n element: <ContentComponent />,\r\n};\r\n\r\nexport const PersonalInfoRoute: IndexRouteObject = {\r\n index: true,\r\n element: <PersonalInfo />,\r\n};\r\n\r\nexport const AccountExtraPageRoute: RouteObject = {\r\n path: \"d4science-page/account-extra-page\",\r\n element: <AccountExtraPage />,\r\n};\r\n\r\nexport const RootRoute: RouteObject = {\r\n path: new URL(environment.baseUrl).pathname,\r\n element: <Root />,\r\n errorElement: <ErrorPage />,\r\n children: [\r\n PersonalInfoRoute,\r\n DeviceActivityRoute,\r\n LinkedAccountsRoute,\r\n SigningInRoute,\r\n ApplicationsRoute,\r\n GroupsRoute,\r\n PersonalInfoRoute,\r\n ResourcesRoute,\r\n ContentRoute,\r\n AccountExtraPageRoute\r\n ],\r\n};\r\n\r\nexport const routes: RouteObject[] = [RootRoute];\r\n","import \"@patternfly/react-core/dist/styles/base.css\";\r\nimport \"@patternfly/patternfly/patternfly-addons.css\";\r\n\r\nimport { StrictMode } from \"react\";\r\nimport { createRoot } from \"react-dom/client\";\r\nimport { createBrowserRouter, RouterProvider } from \"react-router-dom\";\r\n\r\nimport { i18n } from \"./i18n\";\r\nimport { routes } from \"./routes\";\r\n\r\n// Initialize required components before rendering app.\r\nawait i18n.init();\r\n\r\nconst container = document.getElementById(\"app\");\r\nconst root = createRoot(container!);\r\n\r\nconst router = createBrowserRouter(routes);\r\n\r\nroot.render(\r\n <StrictMode>\r\n <RouterProvider router={router} />\r\n </StrictMode>,\r\n);\r\n"],"file":"assets/index-Bw6oJPms.js"}