{"version":3,"sources":["webpack:///./node_modules/@arcgis/core/identity/IdentityForm.js","webpack:///./node_modules/tabbable/dist/index.esm.js","webpack:///./node_modules/focus-trap/dist/focus-trap.esm.js","webpack:///./node_modules/@arcgis/core/identity/IdentityModal.js","webpack:///./node_modules/@arcgis/core/identity/OAuthCredential.js","webpack:///./node_modules/@arcgis/core/identity/OAuthInfo.js","webpack:///./node_modules/@arcgis/core/identity/ServerInfo.js","webpack:///./node_modules/@arcgis/core/identity/IdentityManagerBase.js","webpack:///./node_modules/@arcgis/core/identity/IdentityManager.js","webpack:///./node_modules/@arcgis/core/support/themeUtils.js","webpack:///./node_modules/@arcgis/core/widgets/support/widget.js"],"names":["a","p","o","constructor","s","e","super","this","_usernameInputNode","_passwordInputNode","signingIn","server","resource","error","oAuthPrompt","render","t","n","messages","d","u","class","r","oAuthInfo","info","test","lblItem","c","key","lblUser","value","required","autocomplete","spellcheck","type","bind","afterCreate","i","m","lblPwd","h","classes","disabled","lblSigning","lblOk","lblCancel","onclick","_cancel","b","details","httpStatus","invalidUser","noAuthService","onsubmit","_submit","_set","emit","preventDefault","username","password","prototype","candidateSelectors","candidateSelector","join","NoElement","Element","matches","msMatchesSelector","webkitMatchesSelector","getRootNode","element","_element$getRootNode","call","ownerDocument","isInert","node","lookUp","_node$getAttribute","inertAtt","getAttribute","parentNode","getCandidates","el","includeContainer","filter","candidates","Array","slice","apply","querySelectorAll","unshift","getCandidatesIteratively","elements","options","elementsToCheck","from","length","shift","tagName","assigned","assignedElements","nestedCandidates","children","flatten","push","scopeParent","includes","shadowRoot","getShadowRoot","validShadowRoot","shadowRootFilter","_nestedCandidates","getTabindex","isScope","tabIndex","_node$getAttribute2","attValue","isContentEditable","isNaN","parseInt","sortOrderedTabbables","documentOrder","isInput","isNonTabbableRadio","isRadio","name","radioSet","radioScope","form","queryRadios","window","CSS","escape","err","console","message","checked","nodes","getCheckedRadio","isTabbableRadio","isZeroArea","_node$getBoundingClie","getBoundingClientRect","width","height","isHidden","_ref","displayCheck","getComputedStyle","visibility","nodeUnderDetails","parentElement","originalNode","rootNode","assignedSlot","host","_nodeRoot","_nodeRootHost","_nodeRootHost$ownerDo","_node$ownerDocument","nodeRoot","nodeRootHost","attached","contains","_nodeRoot2","_nodeRootHost2","_nodeRootHost2$ownerD","isNodeAttached","getClientRects","isNodeMatchingSelectorFocusable","isHiddenInput","some","child","isDetailsWithSummary","item","isDisabledFromFieldset","isNodeMatchingSelectorTabbable","isValidShadowRootTabbable","shadowHostNode","tabbable","sortByOrder","regularTabbables","orderedTabbables","forEach","candidateTabindex","content","sort","reduce","acc","sortable","concat","isTabbable","Error","focusableCandidateSelector","isFocusable","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","sym","getOwnPropertyDescriptor","enumerable","_objectSpread2","target","arguments","source","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","obj","configurable","writable","trapQueue","activeFocusTraps","activateTrap","trap","activeTrap","pause","trapIndex","indexOf","splice","deactivateTrap","unpause","delay","fn","setTimeout","findIndex","arr","idx","every","valueOrHandler","_len","params","_key","getActualTarget","event","composedPath","userOptions","doc","document","config","returnFocusOnDeactivate","escapeDeactivates","delayInitialFocus","state","containers","containerGroups","tabbableGroups","nodeFocusedBeforeActivation","mostRecentlyFocusedNode","active","paused","delayInitialFocusTimer","undefined","getOption","configOverrideOptions","optionName","configOptionName","findContainerIndex","container","tabbableNodes","find","getNodeForOption","optionValue","_len2","_key2","querySelector","getInitialFocusNode","activeElement","firstTabbableGroup","firstTabbableNode","updateTabbableNodes","map","tabbableOptions","focusableNodes","lastTabbableNode","nextTabbableNode","forward","nodeIdx","reverse","group","tryFocus","focus","preventScroll","toLowerCase","select","isSelectableInput","getReturnFocusNode","previousActiveElement","checkPointerDown","clickOutsideDeactivates","deactivate","returnFocus","allowOutsideClick","checkFocusIn","targetContained","Document","stopImmediatePropagation","checkKey","keyCode","isEscapeEvent","isTabEvent","destinationNode","containerIndex","containerGroup","shiftKey","startOfGroupIndex","_ref2","destinationGroupIndex","lastOfGroupIndex","_ref3","_destinationGroupIndex","checkTab","checkClick","addListeners","addEventListener","capture","passive","removeListeners","removeEventListener","activate","activateOptions","onActivate","onPostActivate","checkCanFocusTrap","finishActivation","then","deactivateOptions","onDeactivate","onPostDeactivate","checkCanReturnFocus","clearTimeout","finishDeactivation","updateContainerElements","containerElements","elementsAsArray","Boolean","l","createElement","open","_focusTrap","_close","body","appendChild","addHandles","_toggleFocusTrap","destroy","_destroyFocusTrap","auth","signIn","id","title","close","role","_createFocusTrap","_renderContent","requestAnimationFrame","initialFocus","cancelAnimationFrame","innerHTML","HTMLElement","_attachToNode","readOnly","storage","appId","codeVerifier","expires","refreshToken","ssl","stateUID","token","userId","_init","isValid","Date","now","minTimeUntilExpiration","save","_load","authNamespace","portalUrl","setItem","JSON","stringify","warn","replace","FormData","append","navigator","sendBeacon","XMLHttpRequest","send","log","_oAuthCred","getItem","parse","declaredClass","expiration","flowType","forceLogin","forceUserId","locale","popup","popupCallbackUrl","popupWindowFeatures","preserveUrlHash","clone","fromJSON","toJSON","json","write","adminTokenServiceUrl","currentVersion","hasPortal","hasServer","owningSystemUrl","owningTenant","shortLivedTokenValidity","tokenServiceUrl","webTierAuth","C","f","D","q","j","localStorage","sessionStorage","E","_portalConfig","globalThis","esriGeowConfig","serverInfos","oAuthInfos","credentials","_soReqs","_xoReqs","_portals","_defaultOAuthInfo","_defaultTokenValidity","dialog","formConstructor","U","tokenValidity","normalizeWebTierAuth","_appOrigin","origin","location","_appUrlObj","href","_busy","_rejectOnPersistedPageShow","_oAuthLocationParams","_gwTokenUrl","_agsRest","_agsPortal","_agsAdmin","_adminSvcs","_gwDomains","regex","customBaseUrl","_legacyFed","_regexSDirUrl","_regexServerType","_gwUser","_gwItem","_gwGroup","_rePortalTokenSvc","_createDefaultOAuthInfo","_hasTestedIfAppIsOnPortal","_getOAuthLocationParams","_pageShowHandler","registerServers","findServerInfo","registerOAuthInfos","findOAuthInfo","registerToken","_sanitizeUrl","_isServerRsrc","P","_getServerInstanceRoot","_getTokenSvcUrl","_findCredential","assign","L","scope","resources","emitTokenChange","refreshServerTokens","initialize","O","_hasSameServerInstance","findCredential","_getIdenticalSvcIdx","getCredential","prompt","AbortController","signal","abort","reject","promise","_isAdminResource","resolve","g","_restInfoPms","_selfReq","_","selfDfd","_getPortalSelf","_enqueue","getResourceName","_isRESTService","generateToken","isAdmin","serverUrl","customParameters","scheme","uri","port","v","query","request","referer","client","method","authMode","useProxy","_useProxy","ioArgs","withCredentials","data","validity","isBusy","checkSignInStatus","checkAppAccess","credential","_doPortalSignIn","force","client_id","valid","viewOnlyUserTypeApp","catch","viewOnly","setOAuthResponseHash","charAt","substring","_processOAuthPopupParams","setOAuthRedirectionHandler","_oAuthRedirectFunc","setProtocolErrorHandler","_protocolFunc","remove","_oAuthDfd","T","on","Number","oAuthSignIn","oAuthWin_","closed","resUrl_","sinfo_","oinfo_","crypto","getRandomValues","Uint8Array","_getCodeChallenge","oAuthPopupConfirmation","_doOAuthSignIn","destroyCredentials","enablePostMessageAuth","_postMessageAuthHandle","endsWith","postMessage","disablePostMessageAuth","hash","access_token","expires_in","hasOwnProperty","error_description","search","code","uid","pathname","history","replaceState","_getOAuthToken","grant_type","redirect_uri","code_verifier","refresh_token","isSecureContext","TextEncoder","encode","subtle","digest","Promise","persisted","_errbackFunc","_addResource","_removeResource","_findOAuthInfo","_isIdProvider","_isPortalDomain","String","_getOrigin","R","substr","_normalizeAGOLorgDomain","proxyUrl","S","path","_isIdenticalService","_getSuffix","restBaseUrl","adminUrl","_processOAuthResponseParams","_getRedirectURI","oAuthState","persist","refresh_token_expires_in","clearInterval","_oAuthIntervalId","_oAuthOnPopupHandle","_setOAuthResponseQueryString","_exchangeToken","_getPlatformSelf","headers","allSSL","portalMode","supportsOAuth","startsWith","_checkProtocol","trim","w","resourceUrl","serverInfo","options_","admin_","refresh_","_doSignIn","creationTime","parent","x","_pendingDfd","user","parseFloat","portalToken","tokenExpiration","_generateOAuthInfo","accountId","I","urlKey","top","response_type","force_login","prepopulatedusername","redirectToUserOrgUrl","code_challenge","code_challenge_method","setInterval","detail","authorizeParams","authorizeUrl","A","EventedAccessor","tokenRefreshBuffer","_enqueued","_refreshTimer","_startRefreshTimer","k","y","getPropertyValue","classList","add","postMixInProperties","buildRendering","postCreate","startup"],"mappings":"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","file":"132.91ad6474da807219bef6.js","sourcesContent":["/*\nAll material copyright ESRI, All Rights Reserved, unless otherwise specified.\nSee https://js.arcgis.com/4.25/esri/copyright.txt for details.\n*/\nimport{_ as s}from\"../chunks/tslib.es6.js\";import{property as e}from\"../core/accessorSupport/decorators/property.js\";import\"../core/arrayUtils.js\";import\"../core/accessorSupport/ensureType.js\";import{subclass as t}from\"../core/accessorSupport/decorators/subclass.js\";import{substitute as r}from\"../intl/substitute.js\";import o from\"../widgets/Widget.js\";import{storeNode as i}from\"../widgets/support/widgetUtils.js\";import{messageBundle as n}from\"../widgets/support/decorators/messageBundle.js\";import{tsx as u}from\"../widgets/support/jsxFactory.js\";const a={base:\"esri-identity-form\",group:\"esri-identity-form__group\",label:\"esri-identity-form__label\",footer:\"esri-identity-form__footer\",esriInput:\"esri-input\",esriButton:\"esri-button\",esriButtonSecondary:\"esri-button--secondary\"},l=\"ArcGIS Online\";let p=class extends o{constructor(s,e){super(s,e),this._usernameInputNode=null,this._passwordInputNode=null,this.signingIn=!1,this.server=null,this.resource=null,this.error=null,this.oAuthPrompt=!1}render(){const{error:s,server:e,resource:t,signingIn:o,oAuthPrompt:n,messages:p}=this,d=u(\"div\",{class:a.group},r(n?p.oAuthInfo:p.info,{server:e&&/\\.arcgis\\.com/i.test(e)?l:e,resource:`(${t||p.lblItem})`})),c=n?null:u(\"div\",{class:a.group,key:\"username\"},u(\"label\",{class:a.label},p.lblUser,u(\"input\",{value:\"\",required:!0,autocomplete:\"off\",spellcheck:!1,type:\"text\",bind:this,afterCreate:i,\"data-node-ref\":\"_usernameInputNode\",class:a.esriInput}))),m=n?null:u(\"div\",{class:a.group,key:\"password\"},u(\"label\",{class:a.label},p.lblPwd,u(\"input\",{value:\"\",required:!0,type:\"password\",bind:this,afterCreate:i,\"data-node-ref\":\"_passwordInputNode\",class:a.esriInput}))),h=u(\"div\",{class:this.classes(a.group,a.footer)},u(\"input\",{type:\"submit\",disabled:!!o,value:o?p.lblSigning:p.lblOk,class:a.esriButton}),u(\"input\",{type:\"button\",value:p.lblCancel,bind:this,onclick:this._cancel,class:this.classes(a.esriButton,a.esriButtonSecondary)})),b=s?u(\"div\",null,s.details&&s.details.httpStatus?p.invalidUser:p.noAuthService):null;return u(\"form\",{class:a.base,bind:this,onsubmit:this._submit},d,b,c,m,h)}_cancel(){this._set(\"signingIn\",!1),this._usernameInputNode&&(this._usernameInputNode.value=\"\"),this._passwordInputNode&&(this._passwordInputNode.value=\"\"),this.emit(\"cancel\")}_submit(s){s.preventDefault(),this._set(\"signingIn\",!0);const e=this.oAuthPrompt?{}:{username:this._usernameInputNode&&this._usernameInputNode.value,password:this._passwordInputNode&&this._passwordInputNode.value};this.emit(\"submit\",e)}};s([e(),n(\"esri/identity/t9n/identity\")],p.prototype,\"messages\",void 0),s([e()],p.prototype,\"signingIn\",void 0),s([e()],p.prototype,\"server\",void 0),s([e()],p.prototype,\"resource\",void 0),s([e()],p.prototype,\"error\",void 0),s([e()],p.prototype,\"oAuthPrompt\",void 0),p=s([t(\"esri.identity.IdentityForm\")],p);const d=p;export{d as default};\n","/*!\n* tabbable 6.1.2\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};\nvar getTabindex = function getTabindex(node, isScope) {\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 //\n // isScope is positive for custom element with shadow root or slot that by default\n // have tabIndex -1, but need to be sorted by document order in order for their\n // content to be inserted in the correct position\n if ((isScope || /^(AUDIO|VIDEO|DETAILS)$/.test(node.tagName) || isContentEditable(node)) && isNaN(parseInt(node.getAttribute('tabindex'), 10))) {\n return 0;\n }\n }\n return node.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 = getTabindex(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(el, options) {\n options = options || {};\n var candidates;\n if (options.getShadowRoot) {\n candidates = getCandidatesIteratively([el], options.includeContainer, {\n filter: isNodeMatchingSelectorTabbable.bind(null, options),\n flatten: false,\n getShadowRoot: options.getShadowRoot,\n shadowRootFilter: isValidShadowRootTabbable\n });\n } else {\n candidates = getCandidates(el, options.includeContainer, isNodeMatchingSelectorTabbable.bind(null, options));\n }\n return sortByOrder(candidates);\n};\nvar focusable = function focusable(el, options) {\n options = options || {};\n var candidates;\n if (options.getShadowRoot) {\n candidates = getCandidatesIteratively([el], options.includeContainer, {\n filter: isNodeMatchingSelectorFocusable.bind(null, options),\n flatten: true,\n getShadowRoot: options.getShadowRoot\n });\n } else {\n candidates = getCandidates(el, 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, isFocusable, isTabbable, tabbable };\n//# sourceMappingURL=index.esm.js.map\n","/*!\n* focus-trap 7.0.0\n* @license MIT, https://github.com/focus-trap/focus-trap/blob/master/LICENSE\n*/\nimport { tabbable, focusable, isTabbable, isFocusable } from 'tabbable';\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar activeFocusTraps = function () {\n var trapQueue = [];\n return {\n activateTrap: function activateTrap(trap) {\n if (trapQueue.length > 0) {\n var activeTrap = trapQueue[trapQueue.length - 1];\n\n if (activeTrap !== trap) {\n activeTrap.pause();\n }\n }\n\n var trapIndex = trapQueue.indexOf(trap);\n\n if (trapIndex === -1) {\n trapQueue.push(trap);\n } else {\n // move this existing trap to the front of the queue\n trapQueue.splice(trapIndex, 1);\n trapQueue.push(trap);\n }\n },\n deactivateTrap: function deactivateTrap(trap) {\n var trapIndex = trapQueue.indexOf(trap);\n\n if (trapIndex !== -1) {\n trapQueue.splice(trapIndex, 1);\n }\n\n if (trapQueue.length > 0) {\n trapQueue[trapQueue.length - 1].unpause();\n }\n }\n };\n}();\n\nvar isSelectableInput = function isSelectableInput(node) {\n return node.tagName && node.tagName.toLowerCase() === 'input' && typeof node.select === 'function';\n};\n\nvar isEscapeEvent = function isEscapeEvent(e) {\n return e.key === 'Escape' || e.key === 'Esc' || e.keyCode === 27;\n};\n\nvar isTabEvent = function isTabEvent(e) {\n return e.key === 'Tab' || e.keyCode === 9;\n};\n\nvar delay = function delay(fn) {\n return setTimeout(fn, 0);\n}; // Array.find/findIndex() are not supported on IE; this replicates enough\n// of Array.findIndex() for our needs\n\n\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 return idx;\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 */\n\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\n return typeof value === 'function' ? value.apply(void 0, params) : value;\n};\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\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\n var config = _objectSpread2({\n returnFocusOnDeactivate: true,\n escapeDeactivates: true,\n delayInitialFocus: true\n }, userOptions);\n\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 // firstTabbableNode: HTMLElement|null,\n // lastTabbableNode: HTMLElement|null,\n // nextTabbableNode: (node: HTMLElement, forward: boolean) => HTMLElement|undefined\n // }>}\n containerGroups: [],\n // same order/length as `containers` list\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 };\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\n var getOption = function getOption(configOverrideOptions, optionName, configOptionName) {\n return configOverrideOptions && configOverrideOptions[optionName] !== undefined ? configOverrideOptions[optionName] : config[configOptionName || optionName];\n };\n /**\n * Finds the index of the container that contains the element.\n * @param {HTMLElement} element\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\n\n var findContainerIndex = function findContainerIndex(element) {\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 tabbableNodes.find(function (node) {\n return node === element;\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\n\n var getNodeForOption = function getNodeForOption(optionName) {\n var optionValue = config[optionName];\n\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\n optionValue = optionValue.apply(void 0, params);\n }\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 } // else, empty string (invalid), null (invalid), 0 (invalid)\n\n\n throw new Error(\"`\".concat(optionName, \"` was specified but was not a node, or did not return a node\"));\n }\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\n if (!node) {\n throw new Error(\"`\".concat(optionName, \"` as selector refers to no known node\"));\n }\n }\n\n return node;\n };\n\n var getInitialFocusNode = function getInitialFocusNode() {\n var node = getNodeForOption('initialFocus'); // false explicitly indicates we want no initialFocus at all\n\n if (node === false) {\n return false;\n }\n\n if (node === undefined) {\n // option not specified: 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; // NOTE: `fallbackFocus` option function cannot return `false` (not supported)\n\n node = firstTabbableNode || getNodeForOption('fallbackFocus');\n }\n }\n\n if (!node) {\n throw new Error('Your focus-trap needs to have at least one focusable element');\n }\n\n return node;\n };\n\n var updateTabbableNodes = function updateTabbableNodes() {\n state.containerGroups = state.containers.map(function (container) {\n var tabbableNodes = tabbable(container, config.tabbableOptions); // NOTE: if we have tabbable nodes, we must have focusable nodes; focusable nodes\n // are a superset of tabbable nodes\n\n var focusableNodes = focusable(container, config.tabbableOptions);\n return {\n container: container,\n tabbableNodes: tabbableNodes,\n focusableNodes: focusableNodes,\n firstTabbableNode: tabbableNodes.length > 0 ? tabbableNodes[0] : null,\n lastTabbableNode: tabbableNodes.length > 0 ? tabbableNodes[tabbableNodes.length - 1] : null,\n\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 // NOTE: If tabindex is positive (in order to manipulate the tab order separate\n // from the DOM order), this __will not work__ because the list of focusableNodes,\n // while it contains tabbable nodes, does not sort its nodes in any order other\n // than DOM order, because it can't: Where would you place focusable (but not\n // tabbable) nodes in that order? They have no order, because they aren't tabbale...\n // Support for positive tabindex is already broken and hard to manage (possibly\n // not supportable, TBD), so this isn't going to make things worse than they\n // already are, and at least makes things better for the majority of cases where\n // tabindex is either 0/unset or negative.\n // FYI, positive tabindex issue: https://github.com/focus-trap/focus-trap/issues/375\n var nodeIdx = focusableNodes.findIndex(function (n) {\n return n === node;\n });\n\n if (nodeIdx < 0) {\n return undefined;\n }\n\n if (forward) {\n return focusableNodes.slice(nodeIdx + 1).find(function (n) {\n return isTabbable(n, config.tabbableOptions);\n });\n }\n\n return focusableNodes.slice(0, nodeIdx).reverse().find(function (n) {\n return isTabbable(n, config.tabbableOptions);\n });\n }\n };\n });\n state.tabbableGroups = state.containerGroups.filter(function (group) {\n return group.tabbableNodes.length > 0;\n }); // throw if no groups have tabbable nodes and we don't have a fallback focus node either\n\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\n var tryFocus = function tryFocus(node) {\n if (node === false) {\n return;\n }\n\n if (node === doc.activeElement) {\n return;\n }\n\n if (!node || !node.focus) {\n tryFocus(getInitialFocusNode());\n return;\n }\n\n node.focus({\n preventScroll: !!config.preventScroll\n });\n state.mostRecentlyFocusedNode = node;\n\n if (isSelectableInput(node)) {\n node.select();\n }\n };\n\n var getReturnFocusNode = function getReturnFocusNode(previousActiveElement) {\n var node = getNodeForOption('setReturnFocus', previousActiveElement);\n return node ? node : node === false ? false : previousActiveElement;\n }; // This needs to be done on mousedown and touchstart instead of click\n // so that it precedes the focus event.\n\n\n var checkPointerDown = function checkPointerDown(e) {\n var target = getActualTarget(e);\n\n if (findContainerIndex(target) >= 0) {\n // allow the click since it ocurred inside the trap\n return;\n }\n\n if (valueOrHandler(config.clickOutsideDeactivates, e)) {\n // immediately deactivate the trap\n trap.deactivate({\n // if, on deactivation, we should return focus to the node originally-focused\n // when the trap was activated (or the configured `setReturnFocus` node),\n // then assume it's also OK to return focus to the outside node that was\n // just clicked, causing deactivation, as long as that node is focusable;\n // if it isn't focusable, then return focus to the original node focused\n // on activation (or the configured `setReturnFocus` node)\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, whether it's focusable or not; by setting\n // `returnFocus: true`, we'll attempt to re-focus the node originally-focused\n // on activation (or the configured `setReturnFocus` node)\n returnFocus: config.returnFocusOnDeactivate && !isFocusable(target, config.tabbableOptions)\n });\n return;\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\n\n if (valueOrHandler(config.allowOutsideClick, e)) {\n // allow the click outside the trap to take place\n return;\n } // otherwise, prevent the click\n\n\n e.preventDefault();\n }; // In case focus escapes the trap for some strange reason, pull it back in.\n\n\n var checkFocusIn = function checkFocusIn(e) {\n var target = getActualTarget(e);\n var targetContained = findContainerIndex(target) >= 0; // In Firefox when you Tab out of an iframe the Document is briefly focused.\n\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 e.stopImmediatePropagation();\n tryFocus(state.mostRecentlyFocusedNode || getInitialFocusNode());\n }\n }; // Hijack Tab 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\n\n var checkTab = function checkTab(e) {\n var target = getActualTarget(e);\n updateTabbableNodes();\n var destinationNode = null;\n\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);\n var containerGroup = containerIndex >= 0 ? state.containerGroups[containerIndex] : undefined;\n\n if (containerIndex < 0) {\n // target not found in any group: quite possible focus has escaped the trap,\n // so bring it back in to...\n if (e.shiftKey) {\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 (e.shiftKey) {\n // REVERSE\n // is the target the first tabbable node in a group?\n var startOfGroupIndex = findIndex(state.tabbableGroups, function (_ref2) {\n var firstTabbableNode = _ref2.firstTabbableNode;\n return target === firstTabbableNode;\n });\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\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 = destinationGroup.lastTabbableNode;\n }\n } else {\n // FORWARD\n // is the target the last tabbable node in a group?\n var lastOfGroupIndex = findIndex(state.tabbableGroups, function (_ref3) {\n var lastTabbableNode = _ref3.lastTabbableNode;\n return target === lastTabbableNode;\n });\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\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\n var _destinationGroup = state.tabbableGroups[_destinationGroupIndex];\n destinationNode = _destinationGroup.firstTabbableNode;\n }\n }\n } else {\n // NOTE: the fallbackFocus option does not support returning false to opt-out\n destinationNode = getNodeForOption('fallbackFocus');\n }\n\n if (destinationNode) {\n e.preventDefault();\n tryFocus(destinationNode);\n } // else, let the browser take care of [shift+]tab and move the focus\n\n };\n\n var checkKey = function checkKey(e) {\n if (isEscapeEvent(e) && valueOrHandler(config.escapeDeactivates, e) !== false) {\n e.preventDefault();\n trap.deactivate();\n return;\n }\n\n if (isTabEvent(e)) {\n checkTab(e);\n return;\n }\n };\n\n var checkClick = function checkClick(e) {\n var target = getActualTarget(e);\n\n if (findContainerIndex(target) >= 0) {\n return;\n }\n\n if (valueOrHandler(config.clickOutsideDeactivates, e)) {\n return;\n }\n\n if (valueOrHandler(config.allowOutsideClick, e)) {\n return;\n }\n\n e.preventDefault();\n e.stopImmediatePropagation();\n }; //\n // EVENT LISTENERS\n //\n\n\n var addListeners = function addListeners() {\n if (!state.active) {\n return;\n } // There can be only one listening focus trap at a time\n\n\n activeFocusTraps.activateTrap(trap); // Delay ensures that the focused element doesn't capture the event\n // that caused the focus trap activation.\n\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\n var removeListeners = function removeListeners() {\n if (!state.active) {\n return;\n }\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 // TRAP DEFINITION\n //\n\n\n trap = {\n get active() {\n return state.active;\n },\n\n get paused() {\n return state.paused;\n },\n\n activate: function activate(activateOptions) {\n if (state.active) {\n return this;\n }\n\n var onActivate = getOption(activateOptions, 'onActivate');\n var onPostActivate = getOption(activateOptions, 'onPostActivate');\n var checkCanFocusTrap = getOption(activateOptions, 'checkCanFocusTrap');\n\n if (!checkCanFocusTrap) {\n updateTabbableNodes();\n }\n\n state.active = true;\n state.paused = false;\n state.nodeFocusedBeforeActivation = doc.activeElement;\n\n if (onActivate) {\n onActivate();\n }\n\n var finishActivation = function finishActivation() {\n if (checkCanFocusTrap) {\n updateTabbableNodes();\n }\n\n addListeners();\n\n if (onPostActivate) {\n onPostActivate();\n }\n };\n\n if (checkCanFocusTrap) {\n checkCanFocusTrap(state.containers.concat()).then(finishActivation, finishActivation);\n return this;\n }\n\n finishActivation();\n return this;\n },\n deactivate: function deactivate(deactivateOptions) {\n if (!state.active) {\n return this;\n }\n\n var options = _objectSpread2({\n onDeactivate: config.onDeactivate,\n onPostDeactivate: config.onPostDeactivate,\n checkCanReturnFocus: config.checkCanReturnFocus\n }, deactivateOptions);\n\n clearTimeout(state.delayInitialFocusTimer); // noop if undefined\n\n state.delayInitialFocusTimer = undefined;\n removeListeners();\n state.active = false;\n state.paused = false;\n activeFocusTraps.deactivateTrap(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\n if (onDeactivate) {\n onDeactivate();\n }\n\n var finishDeactivation = function finishDeactivation() {\n delay(function () {\n if (returnFocus) {\n tryFocus(getReturnFocusNode(state.nodeFocusedBeforeActivation));\n }\n\n if (onPostDeactivate) {\n onPostDeactivate();\n }\n });\n };\n\n if (returnFocus && checkCanReturnFocus) {\n checkCanReturnFocus(getReturnFocusNode(state.nodeFocusedBeforeActivation)).then(finishDeactivation, finishDeactivation);\n return this;\n }\n\n finishDeactivation();\n return this;\n },\n pause: function pause() {\n if (state.paused || !state.active) {\n return this;\n }\n\n state.paused = true;\n removeListeners();\n return this;\n },\n unpause: function unpause() {\n if (!state.paused || !state.active) {\n return this;\n }\n\n state.paused = false;\n updateTabbableNodes();\n addListeners();\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\n if (state.active) {\n updateTabbableNodes();\n }\n\n return this;\n }\n }; // initialize container elements\n\n trap.updateContainerElements(elements);\n return trap;\n};\n\nexport { createFocusTrap };\n//# sourceMappingURL=focus-trap.esm.js.map\n","/*\nAll material copyright ESRI, All Rights Reserved, unless otherwise specified.\nSee https://js.arcgis.com/4.25/esri/copyright.txt for details.\n*/\nimport{_ as t}from\"../chunks/tslib.es6.js\";import{makeHandle as e}from\"../core/handleUtils.js\";import{watch as o}from\"../core/reactiveUtils.js\";import{property as s}from\"../core/accessorSupport/decorators/property.js\";import\"../core/arrayUtils.js\";import\"../core/accessorSupport/ensureType.js\";import{subclass as i}from\"../core/accessorSupport/decorators/subclass.js\";import r from\"../widgets/Widget.js\";import{isWidget as n}from\"../widgets/support/widget.js\";import{createFocusTrap as a}from\"focus-trap\";import{tsx as c}from\"../widgets/support/jsxFactory.js\";import{messageBundle as d}from\"../widgets/support/decorators/messageBundle.js\";const l={base:\"esri-identity-modal\",open:\"esri-identity-modal--open\",closed:\"esri-identity-modal--closed\",title:\"esri-identity-modal__title\",dialog:\"esri-identity-modal__dialog\",content:\"esri-identity-modal__content\",closeButton:\"esri-identity-modal__close-button\",iconClose:\"esri-icon-close\"};let p=class extends r{constructor(t,e){super(t,e),this.container=document.createElement(\"div\"),this.content=null,this.open=!1,this._focusTrap=null,this._close=()=>{this.open=!1},document.body.appendChild(this.container),this.addHandles(o((()=>this.open),(()=>this._toggleFocusTrap())))}destroy(){this._destroyFocusTrap()}get title(){return this.messages?.auth.signIn}render(){const t=this.id,{open:e,content:o,title:s,messages:i}=this,r=e&&!!o,n={[l.open]:r,[l.closed]:!r},a=c(\"button\",{class:l.closeButton,\"aria-label\":i.close,title:i.close,bind:this,onclick:this._close,type:\"button\"},c(\"span\",{\"aria-hidden\":\"true\",class:l.iconClose})),d=`${t}_title`,p=`${t}_content`,u=s?c(\"h1\",{id:d,class:l.title},s):null,m=r?c(\"div\",{bind:this,class:l.dialog,role:\"dialog\",\"aria-labelledby\":d,\"aria-describedby\":p,afterCreate:this._createFocusTrap},a,u,this._renderContent(p)):null;return c(\"div\",{tabIndex:-1,class:this.classes(l.base,n)},m)}_destroyFocusTrap(){this._focusTrap?.deactivate({onDeactivate:()=>{}}),this._focusTrap=null}_toggleFocusTrap(){const{_focusTrap:t,open:e}=this;t&&(e?t.activate():t.deactivate())}_createFocusTrap(t){this._destroyFocusTrap();const o=requestAnimationFrame((()=>{this._focusTrap=a(t,{initialFocus:\"input\",onDeactivate:this._close}),this._toggleFocusTrap()}));this.addHandles(e((()=>cancelAnimationFrame(o))))}_renderContent(t){const e=this.content;return\"string\"==typeof e?c(\"div\",{class:l.content,id:t,innerHTML:e}):n(e)?c(\"div\",{class:l.content,id:t},e.render()):e instanceof HTMLElement?c(\"div\",{class:l.content,id:t,bind:e,afterCreate:this._attachToNode}):null}_attachToNode(t){const e=this;t.appendChild(e)}};t([s({readOnly:!0})],p.prototype,\"container\",void 0),t([s()],p.prototype,\"content\",void 0),t([s()],p.prototype,\"open\",void 0),t([s(),d(\"esri/t9n/common\")],p.prototype,\"messages\",void 0),t([s()],p.prototype,\"title\",null),p=t([i(\"esri.identity.IdentityModal\")],p);const u=p;export{u as default};\n","/*\nAll material copyright ESRI, All Rights Reserved, unless otherwise specified.\nSee https://js.arcgis.com/4.25/esri/copyright.txt for details.\n*/\nconst t=\"esriJSAPIOAuth\";class e{constructor(t,e){this.oAuthInfo=null,this.storage=null,this.appId=null,this.codeVerifier=null,this.expires=null,this.refreshToken=null,this.ssl=null,this.stateUID=null,this.token=null,this.userId=null,this.oAuthInfo=t,this.storage=e,this._init()}isValid(){let t=!1;if(this.oAuthInfo&&this.userId&&(this.refreshToken||this.token))if(null==this.expires&&this.refreshToken)t=!0;else if(this.expires){const e=Date.now();if(this.expires>e){(this.expires-e)/1e3>60*this.oAuthInfo.minTimeUntilExpiration&&(t=!0)}}return t}save(){if(!this.storage)return!1;const e=this._load(),s=this.oAuthInfo;if(s&&s.authNamespace&&s.portalUrl){let r=e[s.authNamespace];r||(r=e[s.authNamespace]={}),this.appId||(this.appId=s.appId),r[s.portalUrl]={appId:this.appId,codeVerifier:this.codeVerifier,expires:this.expires,refreshToken:this.refreshToken,ssl:this.ssl,stateUID:this.stateUID,token:this.token,userId:this.userId};try{this.storage.setItem(t,JSON.stringify(e))}catch(i){return console.warn(i),!1}return!0}return!1}destroy(){const e=this._load(),s=this.oAuthInfo;if(s&&s.appId&&s.portalUrl&&(null==this.expires||this.expires>Date.now())&&(this.refreshToken||this.token)){const t=s.portalUrl.replace(/^http:/i,\"https:\")+\"/sharing/rest/oauth2/revokeToken\",e=new FormData;if(e.append(\"f\",\"json\"),e.append(\"auth_token\",this.refreshToken||this.token),e.append(\"client_id\",s.appId),e.append(\"token_type_hint\",this.refreshToken?\"refresh_token\":\"access_token\"),\"function\"==typeof navigator.sendBeacon)navigator.sendBeacon(t,e);else{const s=new XMLHttpRequest;s.open(\"POST\",t),s.send(e)}}if(s&&s.authNamespace&&s.portalUrl&&this.storage){const r=e[s.authNamespace];if(r){delete r[s.portalUrl];try{this.storage.setItem(t,JSON.stringify(e))}catch(i){console.log(i)}}}s&&(s._oAuthCred=null,this.oAuthInfo=null)}_init(){const t=this._load(),e=this.oAuthInfo;if(e&&e.authNamespace&&e.portalUrl){let s=t[e.authNamespace];s&&(s=s[e.portalUrl],s&&(this.appId=s.appId,this.codeVerifier=s.codeVerifier,this.expires=s.expires,this.refreshToken=s.refreshToken,this.ssl=s.ssl,this.stateUID=s.stateUID,this.token=s.token,this.userId=s.userId))}}_load(){let e={};if(this.storage){const i=this.storage.getItem(t);if(i)try{e=JSON.parse(i)}catch(s){console.warn(s)}}return e}}e.prototype.declaredClass=\"esri.identity.OAuthCredential\";export{e as default};\n","/*\nAll material copyright ESRI, All Rights Reserved, unless otherwise specified.\nSee https://js.arcgis.com/4.25/esri/copyright.txt for details.\n*/\nimport{_ as o}from\"../chunks/tslib.es6.js\";import{JSONSupport as t}from\"../core/JSONSupport.js\";import{property as r}from\"../core/accessorSupport/decorators/property.js\";import\"../core/arrayUtils.js\";import\"../core/accessorSupport/ensureType.js\";import{subclass as e}from\"../core/accessorSupport/decorators/subclass.js\";var p;let s=p=class extends t{constructor(o){super(o),this._oAuthCred=null,this.appId=null,this.authNamespace=\"/\",this.expiration=20160,this.flowType=\"auto\",this.forceLogin=!1,this.forceUserId=!1,this.locale=null,this.minTimeUntilExpiration=30,this.popup=!1,this.popupCallbackUrl=\"oauth-callback.html\",this.popupWindowFeatures=\"height=490,width=800,resizable,scrollbars,status\",this.portalUrl=\"https://www.arcgis.com\",this.preserveUrlHash=!1,this.userId=null}clone(){return p.fromJSON(this.toJSON())}};o([r({json:{write:!0}})],s.prototype,\"appId\",void 0),o([r({json:{write:!0}})],s.prototype,\"authNamespace\",void 0),o([r({json:{write:!0}})],s.prototype,\"expiration\",void 0),o([r({json:{write:!0}})],s.prototype,\"flowType\",void 0),o([r({json:{write:!0}})],s.prototype,\"forceLogin\",void 0),o([r({json:{write:!0}})],s.prototype,\"forceUserId\",void 0),o([r({json:{write:!0}})],s.prototype,\"locale\",void 0),o([r({json:{write:!0}})],s.prototype,\"minTimeUntilExpiration\",void 0),o([r({json:{write:!0}})],s.prototype,\"popup\",void 0),o([r({json:{write:!0}})],s.prototype,\"popupCallbackUrl\",void 0),o([r({json:{write:!0}})],s.prototype,\"popupWindowFeatures\",void 0),o([r({json:{write:!0}})],s.prototype,\"portalUrl\",void 0),o([r({json:{write:!0}})],s.prototype,\"preserveUrlHash\",void 0),o([r({json:{write:!0}})],s.prototype,\"userId\",void 0),s=p=o([e(\"esri.identity.OAuthInfo\")],s);const i=s;export{i as default};\n","/*\nAll material copyright ESRI, All Rights Reserved, unless otherwise specified.\nSee https://js.arcgis.com/4.25/esri/copyright.txt for details.\n*/\nimport{_ as o}from\"../chunks/tslib.es6.js\";import{JSONSupport as r}from\"../core/JSONSupport.js\";import{property as e}from\"../core/accessorSupport/decorators/property.js\";import\"../core/arrayUtils.js\";import\"../core/accessorSupport/ensureType.js\";import{subclass as t}from\"../core/accessorSupport/decorators/subclass.js\";let s=class extends r{constructor(o){super(o),this.adminTokenServiceUrl=null,this.currentVersion=null,this.hasPortal=null,this.hasServer=null,this.owningSystemUrl=null,this.owningTenant=null,this.server=null,this.shortLivedTokenValidity=null,this.tokenServiceUrl=null,this.webTierAuth=null}};o([e({json:{write:!0}})],s.prototype,\"adminTokenServiceUrl\",void 0),o([e({json:{write:!0}})],s.prototype,\"currentVersion\",void 0),o([e({json:{write:!0}})],s.prototype,\"hasPortal\",void 0),o([e({json:{write:!0}})],s.prototype,\"hasServer\",void 0),o([e({json:{write:!0}})],s.prototype,\"owningSystemUrl\",void 0),o([e({json:{write:!0}})],s.prototype,\"owningTenant\",void 0),o([e({json:{write:!0}})],s.prototype,\"server\",void 0),o([e({json:{write:!0}})],s.prototype,\"shortLivedTokenValidity\",void 0),o([e({json:{write:!0}})],s.prototype,\"tokenServiceUrl\",void 0),o([e({json:{write:!0}})],s.prototype,\"webTierAuth\",void 0),s=o([t(\"esri.identity.ServerInfo\")],s);const i=s;export{i as default};\n","/*\nAll material copyright ESRI, All Rights Reserved, unless otherwise specified.\nSee https://js.arcgis.com/4.25/esri/copyright.txt for details.\n*/\nimport{_ as e}from\"../chunks/tslib.es6.js\";import t from\"../config.js\";import{id as r}from\"../kernel.js\";import s from\"../request.js\";import i from\"../core/Error.js\";import o from\"../core/Evented.js\";import{on as n}from\"../core/events.js\";import{fixJson as a}from\"../core/lang.js\";import{getDeepValue as h}from\"../core/object.js\";import{createResolver as l,onAbort as c,isAborted as d}from\"../core/promiseUtils.js\";import{watch as u}from\"../core/reactiveUtils.js\";import{urlToObject as p,hasSameOrigin as _,Url as f,queryToObject as g,base64UrlEncode as m,objectToQuery as v,normalize as S,getProxyRule as w,makeAbsolute as I,addQueryParameters as A}from\"../core/urlUtils.js\";import{property as k}from\"../core/accessorSupport/decorators/property.js\";import\"../core/accessorSupport/ensureType.js\";import{subclass as y}from\"../core/accessorSupport/decorators/subclass.js\";import U from\"./IdentityForm.js\";import T from\"./IdentityModal.js\";import x from\"./OAuthCredential.js\";import O from\"./OAuthInfo.js\";import P from\"./ServerInfo.js\";import{isSecureProxyService as R}from\"../portal/support/urlUtils.js\";const C={},b=e=>{const t=new f(e.owningSystemUrl).host,r=new f(e.server).host,s=/.+\\.arcgis\\.com$/i;return s.test(t)&&s.test(r)},D=(e,t)=>!!(b(e)&&t&&t.some((t=>t.test(e.server))));let q=null,j=null;try{q=window.localStorage,j=window.sessionStorage}catch{}class E extends o{constructor(){super(),this._portalConfig=globalThis.esriGeowConfig,this.serverInfos=[],this.oAuthInfos=[],this.credentials=[],this._soReqs=[],this._xoReqs=[],this._portals=[],this._defaultOAuthInfo=null,this._defaultTokenValidity=60,this.dialog=null,this.formConstructor=U,this.tokenValidity=null,this.normalizeWebTierAuth=!1,this._appOrigin=\"null\"!==window.origin?window.origin:window.location.origin,this._appUrlObj=p(window.location.href),this._busy=null,this._rejectOnPersistedPageShow=!1,this._oAuthLocationParams=null,this._gwTokenUrl=\"/sharing/rest/generateToken\",this._agsRest=\"/rest/services\",this._agsPortal=/\\/sharing(\\/|$)/i,this._agsAdmin=/(https?:\\/\\/[^\\/]+\\/[^\\/]+)\\/admin\\/?(\\/.*)?$/i,this._adminSvcs=/\\/rest\\/admin\\/services(\\/|$)/i,this._gwDomains=[{regex:/^https?:\\/\\/www\\.arcgis\\.com/i,customBaseUrl:\"maps.arcgis.com\",tokenServiceUrl:\"https://www.arcgis.com/sharing/rest/generateToken\"},{regex:/^https?:\\/\\/(?:dev|[a-z\\d-]+\\.mapsdev)\\.arcgis\\.com/i,customBaseUrl:\"mapsdev.arcgis.com\",tokenServiceUrl:\"https://dev.arcgis.com/sharing/rest/generateToken\"},{regex:/^https?:\\/\\/(?:devext|[a-z\\d-]+\\.mapsdevext)\\.arcgis\\.com/i,customBaseUrl:\"mapsdevext.arcgis.com\",tokenServiceUrl:\"https://devext.arcgis.com/sharing/rest/generateToken\"},{regex:/^https?:\\/\\/(?:qaext|[a-z\\d-]+\\.mapsqa)\\.arcgis\\.com/i,customBaseUrl:\"mapsqa.arcgis.com\",tokenServiceUrl:\"https://qaext.arcgis.com/sharing/rest/generateToken\"},{regex:/^https?:\\/\\/[a-z\\d-]+\\.maps\\.arcgis\\.com/i,customBaseUrl:\"maps.arcgis.com\",tokenServiceUrl:\"https://www.arcgis.com/sharing/rest/generateToken\"}],this._legacyFed=[],this._regexSDirUrl=/http.+\\/rest\\/services\\/?/gi,this._regexServerType=/(\\/(FeatureServer|GPServer|GeoDataServer|GeocodeServer|GeoenrichmentServer|GeometryServer|GlobeServer|ImageServer|KnowledgeGraphServer|MapServer|MobileServer|NAServer|NetworkDiagramServer|OGCFeatureServer|ParcelFabricServer|RelationalCatalogServer|SceneServer|StreamServer|UtilityNetworkServer|ValidationServer|VectorTileServer|VersionManagementServer)).*/gi,this._gwUser=/http.+\\/users\\/([^\\/]+)\\/?.*/i,this._gwItem=/http.+\\/items\\/([^\\/]+)\\/?.*/i,this._gwGroup=/http.+\\/groups\\/([^\\/]+)\\/?.*/i,this._rePortalTokenSvc=/\\/sharing(\\/rest)?\\/generatetoken/i,this._createDefaultOAuthInfo=!0,this._hasTestedIfAppIsOnPortal=!1,this._getOAuthLocationParams(),window.addEventListener(\"pageshow\",(e=>{this._pageShowHandler(e)}))}registerServers(e){const t=this.serverInfos;t?(e=e.filter((e=>!this.findServerInfo(e.server))),this.serverInfos=t.concat(e)):this.serverInfos=e,e.forEach((e=>{e.owningSystemUrl&&this._portals.push(e.owningSystemUrl),e.hasPortal&&this._portals.push(e.server)}))}registerOAuthInfos(e){const t=this.oAuthInfos;if(t){for(const r of e){const e=this.findOAuthInfo(r.portalUrl);e&&t.splice(t.indexOf(e),1)}this.oAuthInfos=t.concat(e)}else this.oAuthInfos=e}registerToken(e){e={...e};const t=this._sanitizeUrl(e.server),r=this._isServerRsrc(t);let s,i=this.findServerInfo(t),o=!0;i||(i=new P,i.server=this._getServerInstanceRoot(t),r?i.hasServer=!0:(i.tokenServiceUrl=this._getTokenSvcUrl(t),i.hasPortal=!0),this.registerServers([i])),s=this._findCredential(t),s?(delete e.server,Object.assign(s,e),o=!1):(s=new L({userId:e.userId,server:i.server,token:e.token,expires:e.expires,ssl:e.ssl,scope:r?\"server\":\"portal\"}),s.resources=[t],this.credentials.push(s)),s.emitTokenChange(!1),o||s.refreshServerTokens()}toJSON(){return a({serverInfos:this.serverInfos.map((e=>e.toJSON())),oAuthInfos:this.oAuthInfos.map((e=>e.toJSON())),credentials:this.credentials.map((e=>e.toJSON()))})}initialize(e){if(!e)return;\"string\"==typeof e&&(e=JSON.parse(e));const t=e.serverInfos,r=e.oAuthInfos,s=e.credentials;if(t){const e=[];t.forEach((t=>{t.server&&t.tokenServiceUrl&&e.push(t.declaredClass?t:new P(t))})),e.length&&this.registerServers(e)}if(r){const e=[];r.forEach((t=>{t.appId&&e.push(t.declaredClass?t:new O(t))})),e.length&&this.registerOAuthInfos(e)}s&&s.forEach((e=>{e.server&&e.token&&e.expires&&e.expires>Date.now()&&((e=e.declaredClass?e:new L(e)).emitTokenChange(),this.credentials.push(e))}))}findServerInfo(e){let t;e=this._sanitizeUrl(e);for(const r of this.serverInfos)if(this._hasSameServerInstance(r.server,e)){t=r;break}return t}findOAuthInfo(e){let t;e=this._sanitizeUrl(e);for(const r of this.oAuthInfos)if(this._hasSameServerInstance(r.portalUrl,e)){t=r;break}return t}findCredential(e,t){if(!e)return;let r;e=this._sanitizeUrl(e);const s=this._isServerRsrc(e)?\"server\":\"portal\";if(t){for(const i of this.credentials)if(this._hasSameServerInstance(i.server,e)&&t===i.userId&&i.scope===s){r=i;break}}else for(const i of this.credentials)if(this._hasSameServerInstance(i.server,e)&&-1!==this._getIdenticalSvcIdx(e,i)&&i.scope===s){r=i;break}return r}getCredential(e,t){let r,s,o=!0;t&&(r=!!t.token,s=t.error,o=!1!==t.prompt),t={...t},e=this._sanitizeUrl(e);const n=new AbortController,a=l();if(t.signal&&c(t.signal,(()=>{n.abort()})),c(n,(()=>{a.reject(new i(\"identity-manager:user-aborted\",\"ABORTED\"))})),d(n))return a.promise;t.signal=n.signal;const h=this._isAdminResource(e),u=r?this.findCredential(e):null;let p;if(u&&s&&s.details&&498===s.details.httpStatus)u.destroy();else if(u)return p=new i(\"identity-manager:not-authorized\",\"You are currently signed in as: '\"+u.userId+\"'. You do not have access to this resource: \"+e,{error:s}),a.reject(p),a.promise;const f=this._findCredential(e,t);if(f)return a.resolve(f),a.promise;let g=this.findServerInfo(e);if(g)!g.hasServer&&this._isServerRsrc(e)&&(g._restInfoPms=this._getTokenSvcUrl(e),g.hasServer=!0);else{const t=this._getTokenSvcUrl(e);if(!t)return p=new i(\"identity-manager:unknown-resource\",\"Unknown resource - could not find token service endpoint.\"),a.reject(p),a.promise;g=new P,g.server=this._getServerInstanceRoot(e),\"string\"==typeof t?(g.tokenServiceUrl=t,g.hasPortal=!0):(g._restInfoPms=t,g.hasServer=!0),this.registerServers([g])}return g.hasPortal&&void 0===g._selfReq&&(o||_(g.tokenServiceUrl,this._appOrigin)||this._gwDomains.some((e=>e.tokenServiceUrl===g.tokenServiceUrl)))&&(g._selfReq={owningTenant:t&&t.owningTenant,selfDfd:this._getPortalSelf(g.tokenServiceUrl.replace(this._rePortalTokenSvc,\"/sharing/rest/portals/self\"),e)}),this._enqueue(e,g,t,a,h)}getResourceName(e){return this._isRESTService(e)?e.replace(this._regexSDirUrl,\"\").replace(this._regexServerType,\"\")||\"\":this._gwUser.test(e)&&e.replace(this._gwUser,\"$1\")||this._gwItem.test(e)&&e.replace(this._gwItem,\"$1\")||this._gwGroup.test(e)&&e.replace(this._gwGroup,\"$1\")||\"\"}generateToken(e,t,r){const o=this._rePortalTokenSvc.test(e.tokenServiceUrl),n=new f(this._appOrigin),a=e.shortLivedTokenValidity;let h,l,c,d,u,p,g,m;t&&(m=this.tokenValidity||a||this._defaultTokenValidity,m>a&&a>0&&(m=a)),r&&(h=r.isAdmin,l=r.serverUrl,c=r.token,p=r.signal,g=r.ssl,e.customParameters=r.customParameters),h?d=e.adminTokenServiceUrl:(d=e.tokenServiceUrl,u=new f(d.toLowerCase()),e.webTierAuth&&r?.serverUrl&&!g&&\"http\"===n.scheme&&(_(n.uri,d,!0)||\"https\"===u.scheme&&n.host===u.host&&\"7080\"===n.port&&\"7443\"===u.port)&&(d=d.replace(/^https:/i,\"http:\").replace(/:7443/i,\":7080\")));const v={query:{request:\"getToken\",username:t?.username,password:t?.password,serverUrl:l,token:c,expiration:m,referer:h||o?this._appOrigin:null,client:h?\"referer\":null,f:\"json\",...e.customParameters},method:\"post\",authMode:\"anonymous\",useProxy:this._useProxy(e,r),signal:p,...r?.ioArgs};o||(v.withCredentials=!1);return s(d,v).then((r=>{const s=r.data;if(!s||!s.token)return new i(\"identity-manager:authentication-failed\",\"Unable to generate token\");const o=e.server;return C[o]||(C[o]={}),t&&(C[o][t.username]=t.password),s.validity=m,s}))}isBusy(){return!!this._busy}checkSignInStatus(e){return this.checkAppAccess(e,\"\").then((e=>e.credential))}checkAppAccess(e,t,r){let o=!1;return this.getCredential(e,{prompt:!1}).then((n=>{let a;const h={f:\"json\"};if(\"portal\"===n.scope)if(t&&(this._doPortalSignIn(e)||r&&r.force))a=n.server+\"/sharing/rest/oauth2/validateAppAccess\",h.client_id=t;else{if(!n.token)return{credential:n};a=n.server+\"/sharing/rest\"}else{if(!n.token)return{credential:n};a=n.server+\"/rest/services\"}return n.token&&(h.token=n.token),s(a,{query:h,authMode:\"anonymous\"}).then((e=>{if(!1===e.data.valid)throw new i(\"identity-manager:not-authorized\",`You are currently signed in as: '${n.userId}'.`,e.data);return o=!!e.data.viewOnlyUserTypeApp,{credential:n}})).catch((e=>{if(\"identity-manager:not-authorized\"===e.name)throw e;const t=e.details&&e.details.httpStatus;if(498===t)throw n.destroy(),new i(\"identity-manager:not-authenticated\",\"User is not signed in.\");if(400===t)throw new i(\"identity-manager:invalid-request\");return{credential:n}}))})).then((e=>({credential:e.credential,viewOnly:o})))}setOAuthResponseHash(e){e&&(\"#\"===e.charAt(0)&&(e=e.substring(1)),this._processOAuthPopupParams(g(e)))}setOAuthRedirectionHandler(e){this._oAuthRedirectFunc=e}setProtocolErrorHandler(e){this._protocolFunc=e}signIn(e,t,r={}){const s=l(),o=()=>{h?.remove(),d?.remove(),p?.remove(),a?.destroy(),this.dialog?.destroy(),this.dialog=a=h=d=p=null},n=()=>{o(),this._oAuthDfd=null,s.reject(new i(\"identity-manager:user-aborted\",\"ABORTED\"))};r.signal&&c(r.signal,(()=>{n()}));let a=new this.formConstructor;a.resource=this.getResourceName(e),a.server=t.server,this.dialog=new T,this.dialog.content=a,this.dialog.open=!0,this.emit(\"dialog-create\");let h=a.on(\"cancel\",n),d=u((()=>this.dialog.open),n),p=a.on(\"submit\",(e=>{this.generateToken(t,e,{isAdmin:r.isAdmin,signal:r.signal}).then((i=>{o();const n=new L({userId:e.username,server:t.server,token:i.token,expires:null!=i.expires?Number(i.expires):null,ssl:!!i.ssl,isAdmin:r.isAdmin,validity:i.validity});s.resolve(n)})).catch((e=>{a.error=e,a.signingIn=!1}))}));return s.promise}oAuthSignIn(e,t,r,s){this._oAuthDfd=l();const o=this._oAuthDfd;let n;s?.signal&&c(s.signal,(()=>{const e=this._oAuthDfd&&this._oAuthDfd.oAuthWin_;e&&!e.closed?e.close():this.dialog&&f()})),o.resUrl_=e,o.sinfo_=t,o.oinfo_=r;const a=r._oAuthCred;if(a.storage&&(\"authorization-code\"===r.flowType||\"auto\"===r.flowType&&!r.popup&&t.currentVersion>=8.4)){let e=crypto.getRandomValues(new Uint8Array(32));n=m(e),a.codeVerifier=n,e=crypto.getRandomValues(new Uint8Array(32)),a.stateUID=m(e),a.save()||(a.codeVerifier=n=null)}else a.codeVerifier=null;let h,d,p,_;this._getCodeChallenge(n).then((i=>{const o=!s||!1!==s.oAuthPopupConfirmation;r.popup&&o?(h=new this.formConstructor,h.oAuthPrompt=!0,h.server=t.server,this.dialog=new T,this.dialog.content=h,this.dialog.open=!0,this.emit(\"dialog-create\"),d=h.on(\"cancel\",f),p=u((()=>this.dialog.open),f),_=h.on(\"submit\",(()=>{g(),this._doOAuthSignIn(e,t,r,i)}))):this._doOAuthSignIn(e,t,r,i)}));const f=()=>{g(),this._oAuthDfd=null,o.reject(new i(\"identity-manager:user-aborted\",\"ABORTED\"))},g=()=>{d?.remove(),p?.remove(),_?.remove(),h?.destroy(),this.dialog?.destroy(),this.dialog=null};return o.promise}destroyCredentials(){if(this.credentials){this.credentials.slice().forEach((e=>{e.destroy()}))}this.emit(\"credentials-destroy\")}enablePostMessageAuth(e=\"https://www.arcgis.com/sharing/rest\"){this._postMessageAuthHandle&&this._postMessageAuthHandle.remove(),this._postMessageAuthHandle=n(window,\"message\",(t=>{if((t.origin===this._appOrigin||t.origin.endsWith(\".arcgis.com\"))&&\"arcgis:auth:requestCredential\"===t.data?.type){const r=t.source;this.getCredential(e).then((e=>{r.postMessage({type:\"arcgis:auth:credential\",credential:{expires:e.expires,server:e.server,ssl:e.ssl,token:e.token,userId:e.userId}},t.origin)})).catch((e=>{r.postMessage({type:\"arcgis:auth:error\",error:{name:e.name,message:e.message}},t.origin)}))}}))}disablePostMessageAuth(){this._postMessageAuthHandle&&(this._postMessageAuthHandle.remove(),this._postMessageAuthHandle=null)}_getOAuthLocationParams(){let e=window.location.hash;if(e){\"#\"===e.charAt(0)&&(e=e.substring(1));const t=g(e);let r=!1;if(t.access_token&&t.expires_in&&t.state&&t.hasOwnProperty(\"username\"))try{t.state=JSON.parse(t.state),t.state.portalUrl&&(this._oAuthLocationParams=t,r=!0)}catch{}else if(t.error&&t.error_description&&(console.log(\"IdentityManager OAuth Error: \",t.error,\" - \",t.error_description),\"access_denied\"===t.error&&(r=!0,t.state)))try{t.state=JSON.parse(t.state)}catch{}r&&(window.location.hash=t.state?.hash||\"\")}let t=window.location.search;if(t){\"?\"===t.charAt(0)&&(t=t.substring(1));const e=g(t);let r=!1;if(e.code&&e.state)try{e.state=JSON.parse(e.state),e.state.portalUrl&&e.state.uid&&(this._oAuthLocationParams=e,r=!0)}catch{}else if(e.error&&e.error_description&&(console.log(\"IdentityManager OAuth Error: \",e.error,\" - \",e.error_description),\"access_denied\"===e.error&&(r=!0,e.state)))try{e.state=JSON.parse(e.state)}catch{}if(r){const t={...e};[\"code\",\"error\",\"error_description\",\"message_code\",\"persist\",\"state\"].forEach((e=>{delete t[e]}));const r=v(t),s=window.location.pathname+(r?`?${r}`:\"\")+(e.state?.hash||\"\");window.history.replaceState(window.history.state,\"\",s)}}}_getOAuthToken(e,t,r,i,o){return e=e.replace(/^http:/i,\"https:\"),s(`${e}/sharing/rest/oauth2/token`,{authMode:\"anonymous\",method:\"post\",query:i&&o?{grant_type:\"authorization_code\",code:t,redirect_uri:i,client_id:r,code_verifier:o}:{grant_type:\"refresh_token\",refresh_token:t,client_id:r}}).then((e=>e.data))}_getCodeChallenge(e){if(e&&globalThis.isSecureContext){const t=(new TextEncoder).encode(e);return crypto.subtle.digest(\"SHA-256\",t).then((e=>m(new Uint8Array(e))))}return Promise.resolve(null)}_pageShowHandler(e){if(e.persisted&&this.isBusy()&&this._rejectOnPersistedPageShow){const e=new i(\"identity-manager:user-aborted\",\"ABORTED\");this._errbackFunc(e)}}_findCredential(e,t){let r,s,i,o,n=-1;const a=t&&t.token,h=t&&t.resource,l=this._isServerRsrc(e)?\"server\":\"portal\",c=this.credentials.filter((t=>this._hasSameServerInstance(t.server,e)&&t.scope===l));if(e=h||e,c.length)if(1===c.length){if(r=c[0],i=this.findServerInfo(r.server),s=i&&i.owningSystemUrl,o=s?this.findCredential(s,r.userId):void 0,n=this._getIdenticalSvcIdx(e,r),!a)return-1===n&&r.resources.push(e),this._addResource(e,o),r;-1!==n&&(r.resources.splice(n,1),this._removeResource(e,o))}else{let t,r;if(c.some((a=>(r=this._getIdenticalSvcIdx(e,a),-1!==r&&(t=a,i=this.findServerInfo(t.server),s=i&&i.owningSystemUrl,o=s?this.findCredential(s,t.userId):void 0,n=r,!0)))),a)t&&(t.resources.splice(n,1),this._removeResource(e,o));else if(t)return this._addResource(e,o),t}}_findOAuthInfo(e){let t=this.findOAuthInfo(e);if(!t)for(const r of this.oAuthInfos)if(this._isIdProvider(r.portalUrl,e)){t=r;break}return t}_addResource(e,t){t&&-1===this._getIdenticalSvcIdx(e,t)&&t.resources.push(e)}_removeResource(e,t){let r=-1;t&&(r=this._getIdenticalSvcIdx(e,t),r>-1&&t.resources.splice(r,1))}_useProxy(e,t){return t&&t.isAdmin&&!_(e.adminTokenServiceUrl,this._appOrigin)||!this._isPortalDomain(e.tokenServiceUrl)&&\"10.1\"===String(e.currentVersion)&&!_(e.tokenServiceUrl,this._appOrigin)}_getOrigin(e){const t=new f(e);return t.scheme+\"://\"+t.host+(null!=t.port?\":\"+t.port:\"\")}_getServerInstanceRoot(e){const t=e.toLowerCase();let r=t.indexOf(this._agsRest);return-1===r&&this._isAdminResource(e)&&(r=this._agsAdmin.test(e)?e.replace(this._agsAdmin,\"$1\").length:e.search(this._adminSvcs)),-1!==r||R(t)||(r=t.indexOf(\"/sharing\")),-1===r&&\"/\"===t.substr(-1)&&(r=t.length-1),r>-1?e.substring(0,r):e}_hasSameServerInstance(e,t){return\"/\"===e.substr(-1)&&(e=e.slice(0,-1)),e=e.toLowerCase(),t=this._getServerInstanceRoot(t).toLowerCase(),e=this._normalizeAGOLorgDomain(e),t=this._normalizeAGOLorgDomain(t),(e=e.substr(e.indexOf(\":\")))===(t=t.substr(t.indexOf(\":\")))}_normalizeAGOLorgDomain(e){const t=/^https?:\\/\\/(?:cdn|[a-z\\d-]+\\.maps)\\.arcgis\\.com/i,r=/^https?:\\/\\/(?:cdndev|[a-z\\d-]+\\.mapsdevext)\\.arcgis\\.com/i,s=/^https?:\\/\\/(?:cdnqa|[a-z\\d-]+\\.mapsqa)\\.arcgis\\.com/i;return t.test(e)?e=e.replace(t,\"https://www.arcgis.com\"):r.test(e)?e=e.replace(r,\"https://devext.arcgis.com\"):s.test(e)&&(e=e.replace(s,\"https://qaext.arcgis.com\")),e}_sanitizeUrl(e){const r=(t.request.proxyUrl||\"\").toLowerCase(),s=r?e.toLowerCase().indexOf(r+\"?\"):-1;return-1!==s&&(e=e.substring(s+r.length+1)),e=S(e),p(e).path}_isRESTService(e){return e.includes(this._agsRest)}_isAdminResource(e){return this._agsAdmin.test(e)||this._adminSvcs.test(e)}_isServerRsrc(e){return this._isRESTService(e)||this._isAdminResource(e)}_isIdenticalService(e,t){let r=!1;if(this._isRESTService(e)&&this._isRESTService(t)){const s=this._getSuffix(e).toLowerCase(),i=this._getSuffix(t).toLowerCase();if(r=s===i,!r){const e=/(.*)\\/(MapServer|FeatureServer|UtilityNetworkServer).*/gi;r=s.replace(e,\"$1\")===i.replace(e,\"$1\")}}else this._isAdminResource(e)&&this._isAdminResource(t)?r=!0:this._isServerRsrc(e)||this._isServerRsrc(t)||!this._isPortalDomain(e)||(r=!0);return r}_isPortalDomain(e){const r=new f(e.toLowerCase()),s=this._portalConfig;let i=this._gwDomains.some((e=>e.regex.test(r.uri)));return!i&&s&&(i=this._hasSameServerInstance(this._getServerInstanceRoot(s.restBaseUrl),r.uri)),i||t.portalUrl&&(i=_(r,t.portalUrl,!0)),i||(i=this._portals.some((e=>this._hasSameServerInstance(e,r.uri)))),i=i||this._agsPortal.test(r.path),i}_isIdProvider(e,t){let r=-1,s=-1;this._gwDomains.forEach(((i,o)=>{-1===r&&i.regex.test(e)&&(r=o),-1===s&&i.regex.test(t)&&(s=o)}));let i=!1;if(r>-1&&s>-1&&(0===r||4===r?0!==s&&4!==s||(i=!0):1===r?1!==s&&2!==s||(i=!0):2===r?2===s&&(i=!0):3===r&&3===s&&(i=!0)),!i){const r=this.findServerInfo(t),s=r&&r.owningSystemUrl;s&&b(r)&&this._isPortalDomain(s)&&this._isIdProvider(e,s)&&(i=!0)}return i}_getIdenticalSvcIdx(e,t){let r=-1;for(let s=0;s<t.resources.length;s++){const i=t.resources[s];if(this._isIdenticalService(e,i)){r=s;break}}return r}_getSuffix(e){return e.replace(this._regexSDirUrl,\"\").replace(this._regexServerType,\"$1\")}_getTokenSvcUrl(e){let t,r,i;if(this._isRESTService(e)||this._isAdminResource(e)){const i=this._getServerInstanceRoot(e);return t=i+\"/admin/generateToken\",r=s(e=i+\"/rest/info\",{query:{f:\"json\"}}).then((e=>e.data)),{adminUrl:t,promise:r}}if(this._isPortalDomain(e)){let t=\"\";if(this._gwDomains.some((r=>(r.regex.test(e)&&(t=r.tokenServiceUrl),!!t))),t||this._portals.some((r=>(this._hasSameServerInstance(r,e)&&(t=r+this._gwTokenUrl),!!t))),t||(i=e.toLowerCase().indexOf(\"/sharing\"),-1!==i&&(t=e.substring(0,i)+this._gwTokenUrl)),t||(t=this._getOrigin(e)+this._gwTokenUrl),t){const r=new f(e).port;/^http:\\/\\//i.test(e)&&\"7080\"===r&&(t=t.replace(/:7080/i,\":7443\")),t=t.replace(/http:/i,\"https:\")}return t}if(e.toLowerCase().includes(\"premium.arcgisonline.com\"))return\"https://premium.arcgisonline.com/server/tokens\"}_processOAuthResponseParams(e,t,r){const s=t._oAuthCred;if(e.code){const i=s.codeVerifier;return s.codeVerifier=null,s.stateUID=null,s.save(),this._getOAuthToken(r.server,e.code,t.appId,this._getRedirectURI(t,!0),i).then((i=>{const o=new L({userId:i.username,server:r.server,token:i.access_token,expires:Date.now()+1e3*i.expires_in,ssl:i.ssl,oAuthState:e.state,_oAuthCred:s});return t.userId=o.userId,s.storage=i.persist?q:j,s.refreshToken=i.refresh_token,s.token=null,s.expires=i.refresh_token_expires_in?Date.now()+1e3*i.refresh_token_expires_in:null,s.userId=o.userId,s.ssl=o.ssl,s.save(),o}))}const i=new L({userId:e.username,server:r.server,token:e.access_token,expires:Date.now()+1e3*Number(e.expires_in),ssl:\"true\"===e.ssl,oAuthState:e.state,_oAuthCred:s});return t.userId=i.userId,s.storage=e.persist?q:j,s.refreshToken=null,s.token=i.token,s.expires=i.expires,s.userId=i.userId,s.ssl=i.ssl,s.save(),Promise.resolve(i)}_processOAuthPopupParams(e){const t=this._oAuthDfd;if(this._oAuthDfd=null,t)if(clearInterval(this._oAuthIntervalId),this._oAuthOnPopupHandle?.remove(),e.error){const r=\"access_denied\"===e.error,s=new i(r?\"identity-manager:user-aborted\":\"identity-manager:authentication-failed\",r?\"ABORTED\":\"OAuth: \"+e.error+\" - \"+e.error_description);t.reject(s)}else this._processOAuthResponseParams(e,t.oinfo_,t.sinfo_).then((e=>{t.resolve(e)})).catch((e=>{t.reject(e)}))}_setOAuthResponseQueryString(e){e&&(\"?\"===e.charAt(0)&&(e=e.substring(1)),this._processOAuthPopupParams(g(e)))}_exchangeToken(e,t,r){return s(`${e}/sharing/rest/oauth2/exchangeToken`,{authMode:\"anonymous\",method:\"post\",query:{f:\"json\",client_id:t,token:r}}).then((e=>e.data.token))}_getPlatformSelf(e,t){return e=e.replace(/^http:/i,\"https:\"),s(`${e}/sharing/rest/oauth2/platformSelf`,{authMode:\"anonymous\",headers:{\"X-Esri-Auth-Client-Id\":t,\"X-Esri-Auth-Redirect-Uri\":window.location.href.replace(/#.*$/,\"\")},method:\"post\",query:{f:\"json\",expiration:30},withCredentials:!0}).then((e=>e.data))}_getPortalSelf(e,t){let r;if(this._gwDomains.some((t=>(t.regex.test(e)&&(r=t.customBaseUrl),!!r))),r)return Promise.resolve({allSSL:!0,currentVersion:\"8.4\",customBaseUrl:r,portalMode:\"multitenant\",supportsOAuth:!0});this._appOrigin.startsWith(\"https:\")?e=e.replace(/^http:/i,\"https:\").replace(/:7080/i,\":7443\"):/^http:/i.test(t)&&(e=e.replace(/^https:/i,\"http:\").replace(/:7443/i,\":7080\"));return s(e,{query:{f:\"json\"},authMode:\"anonymous\",withCredentials:!0}).then((e=>e.data))}_doPortalSignIn(e){const t=this._portalConfig,r=window.location.href,s=this.findServerInfo(e);return!(!t&&!this._isPortalDomain(r)||!(s?s.hasPortal||s.owningSystemUrl&&this._isPortalDomain(s.owningSystemUrl):this._isPortalDomain(e))||!(this._isIdProvider(r,e)||t&&(this._hasSameServerInstance(this._getServerInstanceRoot(t.restBaseUrl),e)||this._isIdProvider(t.restBaseUrl,e))||_(r,e,!0)))}_checkProtocol(e,t,r,s){let o=!0;const n=s?t.adminTokenServiceUrl:t.tokenServiceUrl;if(n.trim().toLowerCase().startsWith(\"https:\")&&!this._appOrigin.startsWith(\"https:\")&&w(n)&&(o=!!this._protocolFunc&&!!this._protocolFunc({resourceUrl:e,serverInfo:t}),!o)){r(new i(\"identity-manager:aborted\",\"Aborted the Sign-In process to avoid sending password over insecure connection.\"))}return o}_enqueue(e,t,r,s,i,o){return s||(s=l()),s.resUrl_=e,s.sinfo_=t,s.options_=r,s.admin_=i,s.refresh_=o,this._busy?this._hasSameServerInstance(this._getServerInstanceRoot(e),this._busy.resUrl_)?(this._oAuthDfd&&this._oAuthDfd.oAuthWin_&&this._oAuthDfd.oAuthWin_.focus(),this._soReqs.push(s)):this._xoReqs.push(s):this._doSignIn(s),s.promise}_doSignIn(e){this._busy=e,this._rejectOnPersistedPageShow=!1;const t=t=>{const r=e.options_&&e.options_.resource,s=e.resUrl_,i=e.refresh_;let o=!1;this.credentials.includes(t)||(i&&this.credentials.includes(i)?(i.userId=t.userId,i.token=t.token,i.expires=t.expires,i.validity=t.validity,i.ssl=t.ssl,i.creationTime=t.creationTime,o=!0,t=i):this.credentials.push(t)),t.resources||(t.resources=[]),t.resources.includes(r||s)||t.resources.push(r||s),t.scope=this._isServerRsrc(s)?\"server\":\"portal\",t.emitTokenChange();const n=this._soReqs,a={};this._soReqs=[],n.forEach((e=>{if(!this._isIdenticalService(s,e.resUrl_)){const r=this._getSuffix(e.resUrl_);a[r]||(a[r]=!0,t.resources.push(e.resUrl_))}})),e.resolve(t),n.forEach((e=>{this._hasSameServerInstance(this._getServerInstanceRoot(s),e.resUrl_)?e.resolve(t):this._soReqs.push(e)})),this._busy=e.resUrl_=e.sinfo_=e.refresh_=null,o||this.emit(\"credential-create\",{credential:t}),this._soReqs.length?this._doSignIn(this._soReqs.shift()):this._xoReqs.length&&this._doSignIn(this._xoReqs.shift())},r=t=>{e.reject(t),this._busy=e.resUrl_=e.sinfo_=e.refresh_=null,this._soReqs.length?this._doSignIn(this._soReqs.shift()):this._xoReqs.length&&this._doSignIn(this._xoReqs.shift())},s=(o,a,h,l)=>{const d=e.sinfo_,u=!e.options_||!1!==e.options_.prompt,p=d.hasPortal&&this._findOAuthInfo(e.resUrl_);let f,g;if(o)t(new L({userId:o,server:d.server,token:h||null,expires:null!=l?Number(l):null,ssl:!!a}));else if(window!==window.parent&&this._appUrlObj.query?.[\"arcgis-auth-origin\"]&&this._appUrlObj.query?.[\"arcgis-auth-portal\"]&&this._hasSameServerInstance(this._getServerInstanceRoot(this._appUrlObj.query[\"arcgis-auth-portal\"]),e.resUrl_)){window.parent.postMessage({type:\"arcgis:auth:requestCredential\"},this._appUrlObj.query[\"arcgis-auth-origin\"]);const s=n(window,\"message\",(e=>{e.source===window.parent&&e.data&&(\"arcgis:auth:credential\"===e.data.type?(s.remove(),e.data.credential.expires<Date.now()?r(new i(\"identity-manager:credential-request-failed\",\"Parent application's token has expired.\")):t(new L(e.data.credential))):\"arcgis:auth:error\"===e.data.type&&(s.remove(),\"tokenExpiredError\"===e.data.error.name?r(new i(\"identity-manager:credential-request-failed\",\"Parent application's token has expired.\")):r(i.fromJSON(e.data.error))))}));c(e.options_?.signal,(()=>{s.remove()}))}else if(p){let o=p._oAuthCred;if(!o){const e=new x(p,q),t=new x(p,j);e.isValid()&&t.isValid()?e.expires>t.expires?(o=e,t.destroy()):(o=t,e.destroy()):o=e.isValid()?e:t,p._oAuthCred=o}if(o.isValid()){f=new L({userId:o.userId,server:d.server,token:o.token,expires:o.expires,ssl:o.ssl,_oAuthCred:o});const r=p.appId!==o.appId&&this._doPortalSignIn(e.resUrl_);r||o.refreshToken?(e._pendingDfd=o.refreshToken?this._getOAuthToken(d.server,o.refreshToken,o.appId).then((e=>(f.expires=Date.now()+1e3*e.expires_in,f.token=e.access_token,f))):Promise.resolve(f),e._pendingDfd.then((e=>r?this._exchangeToken(e.server,p.appId,e.token).then((t=>(e.token=t,e))).catch((()=>e)):e)).then((e=>{t(e)})).catch((()=>{o?.destroy(),s()}))):t(f)}else if(this._oAuthLocationParams&&this._hasSameServerInstance(p.portalUrl,this._oAuthLocationParams.state.portalUrl)&&(this._oAuthLocationParams.access_token||this._oAuthLocationParams.code&&this._oAuthLocationParams.state.uid===o.stateUID&&o.codeVerifier)){const s=this._oAuthLocationParams;this._oAuthLocationParams=null,e._pendingDfd=this._processOAuthResponseParams(s,p,d).then((e=>{t(e)})).catch(r)}else{const s=()=>{u?e._pendingDfd=this.oAuthSignIn(e.resUrl_,d,p,e.options_).then(t,r):(g=new i(\"identity-manager:not-authenticated\",\"User is not signed in.\"),r(g))};this._doPortalSignIn(e.resUrl_)?e._pendingDfd=this._getPlatformSelf(d.server,p.appId).then((e=>{_(e.portalUrl,this._appOrigin,!0)?(f=new L({userId:e.username,server:d.server,expires:Date.now()+1e3*e.expires_in,token:e.token}),t(f)):s()})).catch(s):s()}}else if(u){if(this._checkProtocol(e.resUrl_,d,r,e.admin_)){let s=e.options_;e.admin_&&(s=s||{},s.isAdmin=!0),e._pendingDfd=this.signIn(e.resUrl_,d,s).then(t,r)}}else g=new i(\"identity-manager:not-authenticated\",\"User is not signed in.\"),r(g)},o=()=>{const s=e.sinfo_,i=s.owningSystemUrl,o=e.options_;let n,a,h,l;if(o&&(n=o.token,a=o.error,h=o.prompt),l=this._findCredential(i,{token:n,resource:e.resUrl_}),!l)for(const e of this.credentials)if(this._isIdProvider(i,e.server)){l=e;break}if(l){const i=this.findCredential(e.resUrl_,l.userId);if(i)t(i);else if(D(s,this._legacyFed)){const e=l.toJSON();e.server=s.server,e.resources=null,t(new L(e))}else{(e._pendingDfd=this.generateToken(this.findServerInfo(l.server),null,{serverUrl:e.resUrl_,token:l.token,signal:e.options_.signal,ssl:l.ssl})).then((r=>{t(new L({userId:l?.userId,server:s.server,token:r.token,expires:null!=r.expires?Number(r.expires):null,ssl:!!r.ssl,isAdmin:e.admin_,validity:r.validity}))}),r)}}else{this._busy=null,n&&(e.options_.token=null);(e._pendingDfd=this.getCredential(i.replace(/\\/?$/,\"/sharing\"),{resource:e.resUrl_,owningTenant:s.owningTenant,signal:e.options_.signal,token:n,error:a,prompt:h})).then((()=>{this._enqueue(e.resUrl_,e.sinfo_,e.options_,e,e.admin_)}),(t=>{e.resUrl_=e.sinfo_=e.refresh_=null,e.reject(t)}))}};this._errbackFunc=r;const a=e.sinfo_.owningSystemUrl,l=this._isServerRsrc(e.resUrl_),d=e.sinfo_._restInfoPms;d?d.promise.then((t=>{const r=e.sinfo_;if(r._restInfoPms){r.adminTokenServiceUrl=r._restInfoPms.adminUrl,r._restInfoPms=null,r.tokenServiceUrl=(h(\"authInfo.tokenServicesUrl\",t)||h(\"authInfo.tokenServiceUrl\",t)||h(\"tokenServiceUrl\",t))??null,r.shortLivedTokenValidity=h(\"authInfo.shortLivedTokenValidity\",t)??null,r.currentVersion=t.currentVersion,r.owningTenant=t.owningTenant;const e=r.owningSystemUrl=t.owningSystemUrl;e&&this._portals.push(e)}l&&r.owningSystemUrl?o():s()}),(()=>{e.sinfo_._restInfoPms=null;const t=new i(\"identity-manager:server-identification-failed\",\"Unknown resource - could not find token service endpoint.\");r(t)})):l&&a?o():e.sinfo_._selfReq?e.sinfo_._selfReq.selfDfd.then((t=>{const r={};let s,i,o,n;return t&&(s=t.user&&t.user.username,r.username=s,r.allSSL=t.allSSL,i=t.supportsOAuth,n=parseFloat(t.currentVersion),\"multitenant\"===t.portalMode&&(o=t.customBaseUrl),e.sinfo_.currentVersion=n),e.sinfo_.webTierAuth=!!s,s&&this.normalizeWebTierAuth?this.generateToken(e.sinfo_,null,{ssl:r.allSSL}).catch((()=>null)).then((e=>(r.portalToken=e&&e.token,r.tokenExpiration=e&&e.expires,r))):!s&&i&&n>=4.4&&!this._findOAuthInfo(e.resUrl_)?this._generateOAuthInfo({portalUrl:e.sinfo_.server,customBaseUrl:o,owningTenant:e.sinfo_._selfReq.owningTenant}).catch((()=>null)).then((()=>r)):r})).catch((()=>null)).then((t=>{e.sinfo_._selfReq=null,t?s(t.username,t.allSSL,t.portalToken,t.tokenExpiration):s()})):s()}_generateOAuthInfo(e){let t,r=null,i=e.portalUrl;const o=e.customBaseUrl,n=e.owningTenant,a=!this._defaultOAuthInfo&&this._createDefaultOAuthInfo&&!this._hasTestedIfAppIsOnPortal;if(a){r=window.location.href;let e=r.indexOf(\"?\");e>-1&&(r=r.slice(0,e)),e=r.search(/\\/(apps|home)\\//),r=e>-1?r.slice(0,e):null}return a&&r?(this._hasTestedIfAppIsOnPortal=!0,t=s(r+\"/sharing/rest\",{query:{f:\"json\"}}).then((()=>{this._defaultOAuthInfo=new O({appId:\"arcgisonline\",popupCallbackUrl:r+\"/home/oauth-callback.html\"})}))):t=Promise.resolve(),t.then((()=>{if(this._defaultOAuthInfo)return i=i.replace(/^http:/i,\"https:\"),s(i+\"/sharing/rest/oauth2/validateRedirectUri\",{query:{accountId:n,client_id:this._defaultOAuthInfo.appId,redirect_uri:I(this._defaultOAuthInfo.popupCallbackUrl),f:\"json\"}}).then((e=>{if(e.data.valid){const t=this._defaultOAuthInfo.clone();e.data.urlKey&&o?t.portalUrl=\"https://\"+e.data.urlKey.toLowerCase()+\".\"+o:t.portalUrl=i,t.popup=window!==window.top||!(_(i,this._appOrigin)||this._gwDomains.some((e=>e.regex.test(i)&&e.regex.test(this._appOrigin)))),this.oAuthInfos.push(t)}}))}))}_doOAuthSignIn(e,t,r,s){const o=r._oAuthCred,a={portalUrl:r.portalUrl};!r.popup&&r.preserveUrlHash&&window.location.hash&&(a.hash=window.location.hash),o.stateUID&&(a.uid=o.stateUID);const h={client_id:r.appId,response_type:o.codeVerifier?\"code\":\"token\",state:JSON.stringify(a),expiration:r.expiration,locale:r.locale,redirect_uri:this._getRedirectURI(r,!!o.codeVerifier)};r.forceLogin&&(h.force_login=!0),r.forceUserId&&r.userId&&(h.prepopulatedusername=r.userId),!r.popup&&this._doPortalSignIn(e)&&(h.redirectToUserOrgUrl=!0),o.codeVerifier&&(h.code_challenge=s||o.codeVerifier,h.code_challenge_method=s?\"S256\":\"plain\");const l=r.portalUrl.replace(/^http:/i,\"https:\")+\"/sharing/oauth2/authorize\",c=l+\"?\"+v(h);if(r.popup){const e=window.open(c,\"esriJSAPIOAuth\",r.popupWindowFeatures);if(e)e.focus(),this._oAuthDfd.oAuthWin_=e,this._oAuthIntervalId=setInterval((()=>{if(e.closed){clearInterval(this._oAuthIntervalId),this._oAuthOnPopupHandle.remove();const e=this._oAuthDfd;if(e){const t=new i(\"identity-manager:user-aborted\",\"ABORTED\");e.reject(t)}}}),500),this._oAuthOnPopupHandle=n(window,[\"arcgis:auth:hash\",\"arcgis:auth:location:search\"],(e=>{\"arcgis:auth:hash\"===e.type?this.setOAuthResponseHash(e.detail):this._setOAuthResponseQueryString(e.detail)}));else{const e=new i(\"identity-manager:popup-blocked\",\"ABORTED\");this._oAuthDfd.reject(e)}}else this._rejectOnPersistedPageShow=!0,this._oAuthRedirectFunc?this._oAuthRedirectFunc({authorizeParams:h,authorizeUrl:l,resourceUrl:e,serverInfo:t,oAuthInfo:r}):window.location.href=c}_getRedirectURI(e,t){const r=window.location.href.replace(/#.*$/,\"\");if(e.popup)return I(e.popupCallbackUrl);if(t){const e=p(r);return e.query&&[\"code\",\"error\",\"error_description\",\"message_code\",\"persist\",\"state\"].forEach((t=>{delete e.query[t]})),A(e.path,e.query)}return r}}E.prototype.declaredClass=\"esri.identity.IdentityManagerBase\";let L=class extends o.EventedAccessor{constructor(e){super(e),this._oAuthCred=null,this.tokenRefreshBuffer=2,e&&e._oAuthCred&&(this._oAuthCred=e._oAuthCred)}initialize(){this.resources=this.resources||[],null==this.creationTime&&(this.creationTime=Date.now())}refreshToken(){const e=r.findServerInfo(this.server),t=e&&e.owningSystemUrl,s=!!t&&\"server\"===this.scope,i=s&&D(e,r._legacyFed),o=e.webTierAuth,n=o&&r.normalizeWebTierAuth,a=C[this.server],h=a&&a[this.userId];let l,c=this.resources&&this.resources[0],d=s?r.findServerInfo(t):null,u={username:this.userId,password:h};if(o&&!n)return;s&&!d&&r.serverInfos.some((e=>(r._isIdProvider(t,e.server)&&(d=e),!!d)));const p=d?r.findCredential(d.server,this.userId):null;if(!s||p){if(!i){if(s)l={serverUrl:c,token:p&&p.token,ssl:p&&p.ssl};else if(n)u=null,l={ssl:this.ssl};else{if(!h){let t;return c&&(c=r._sanitizeUrl(c),this._enqueued=1,t=r._enqueue(c,e,null,null,this.isAdmin,this),t.then((()=>{this._enqueued=0,this.refreshServerTokens()})).catch((()=>{this._enqueued=0}))),t}this.isAdmin&&(l={isAdmin:!0})}return r.generateToken(s?d:e,s?null:u,l).then((e=>{this.token=e.token,this.expires=null!=e.expires?Number(e.expires):null,this.creationTime=Date.now(),this.validity=e.validity,this.emitTokenChange(),this.refreshServerTokens()})).catch((()=>{}))}p?.refreshToken()}}refreshServerTokens(){\"portal\"===this.scope&&r.credentials.forEach((e=>{const t=r.findServerInfo(e.server),s=t&&t.owningSystemUrl;e!==this&&e.userId===this.userId&&s&&\"server\"===e.scope&&(r._hasSameServerInstance(this.server,s)||r._isIdProvider(s,this.server))&&(D(t,r._legacyFed)?(e.token=this.token,e.expires=this.expires,e.creationTime=this.creationTime,e.validity=this.validity,e.emitTokenChange()):e.refreshToken())}))}emitTokenChange(e){clearTimeout(this._refreshTimer);const t=this.server&&r.findServerInfo(this.server),s=t&&t.owningSystemUrl,i=s&&r.findServerInfo(s);!1===e||s&&\"portal\"!==this.scope&&(!i||!i.webTierAuth||r.normalizeWebTierAuth)||null==this.expires&&null==this.validity||this._startRefreshTimer(),this.emit(\"token-change\")}destroy(){this.userId=this.server=this.token=this.expires=this.validity=this.resources=this.creationTime=null,this._oAuthCred&&(this._oAuthCred.destroy(),this._oAuthCred=null);const e=r.credentials.indexOf(this);e>-1&&r.credentials.splice(e,1),this.emitTokenChange(),this.emit(\"destroy\")}toJSON(){const e=a({userId:this.userId,server:this.server,token:this.token,expires:this.expires,validity:this.validity,ssl:this.ssl,isAdmin:this.isAdmin,creationTime:this.creationTime,scope:this.scope}),t=this.resources;return t&&t.length>0&&(e.resources=t.slice()),e}_startRefreshTimer(){clearTimeout(this._refreshTimer);const e=6e4*this.tokenRefreshBuffer,t=2**31-1;let r=(this.validity?this.creationTime+6e4*this.validity:this.expires)-Date.now();r<0?r=0:r>t&&(r=t),this._refreshTimer=setTimeout(this.refreshToken.bind(this),r>e?r-e:r)}};e([k()],L.prototype,\"creationTime\",void 0),e([k()],L.prototype,\"expires\",void 0),e([k()],L.prototype,\"isAdmin\",void 0),e([k()],L.prototype,\"oAuthState\",void 0),e([k()],L.prototype,\"resources\",void 0),e([k()],L.prototype,\"scope\",void 0),e([k()],L.prototype,\"server\",void 0),e([k()],L.prototype,\"ssl\",void 0),e([k()],L.prototype,\"token\",void 0),e([k()],L.prototype,\"tokenRefreshBuffer\",void 0),e([k()],L.prototype,\"userId\",void 0),e([k()],L.prototype,\"validity\",void 0),L=e([y(\"esri.identity.Credential\")],L);export{L as Credential,E as IdentityManagerBase};\n","/*\nAll material copyright ESRI, All Rights Reserved, unless otherwise specified.\nSee https://js.arcgis.com/4.25/esri/copyright.txt for details.\n*/\nimport{setId as e}from\"../kernel.js\";import{IdentityManagerBase as t}from\"./IdentityManagerBase.js\";class r extends t{}r.prototype.declaredClass=\"esri.identity.IdentityManager\";const s=new r;e(s);export{s as default};\n","/*\nAll material copyright ESRI, All Rights Reserved, unless otherwise specified.\nSee https://js.arcgis.com/4.25/esri/copyright.txt for details.\n*/\nconst t=\"calcite-theme-\";function e(){return getComputedStyle(document.body).getPropertyValue(\"--esri-calcite-theme-name\").replace(/\\s|'|\"/g,\"\")}function r(){return e().startsWith(\"dark\")}function c(){return`${t}${r()?\"dark\":\"light\"}`}function n(t){s(t),t.classList.add(c())}function s(e){Array.from(e.classList).forEach((r=>{r.startsWith(t)&&e.classList.remove(r)}))}export{c as getCalciteThemeClass,r as isDarkTheme,n as setCalciteThemeClass};\n","/*\nAll material copyright ESRI, All Rights Reserved, unless otherwise specified.\nSee https://js.arcgis.com/4.25/esri/copyright.txt for details.\n*/\nexport{accessibleHandler}from\"./decorators/accessibleHandler.js\";export{messageBundle}from\"./decorators/messageBundle.js\";export{vmEvent}from\"./decorators/vmEvent.js\";export{tsx,tsxFragment}from\"./jsxFactory.js\";export{additionalAllowedTags,classes,cssTransition,discardNode,getDir,isActivationKey,isRTL,keepMenuItemWithinView,onResize,renderingSanitizer,safeAttrs,storeNode}from\"./widgetUtils.js\";export{getCalciteThemeClass,isDarkTheme,setCalciteThemeClass}from\"../../support/themeUtils.js\";function e(e){return e&&\"function\"==typeof e.render}function t(e){return e&&\"function\"==typeof e.postMixInProperties&&\"function\"==typeof e.buildRendering&&\"function\"==typeof e.postCreate&&\"function\"==typeof e.startup}export{t as hasDomNode,e as isWidget};\n"],"sourceRoot":""}