{"version":3,"sources":["node_modules/oidc-client/lib/oidc-client.min.js","node_modules/@angular/animations/fesm2022/browser.mjs","node_modules/@angular/platform-browser/fesm2022/animations.mjs","node_modules/@azure/msal-browser/dist/event/EventMessage.mjs","node_modules/@azure/msal-angular/fesm2020/azure-msal-angular.mjs","node_modules/@wsbc/ux-lib-security/fesm2022/wsbc-ux-lib-security.mjs","node_modules/jwt-decode/build/jwt-decode.esm.js","node_modules/@ngrx/store-devtools/fesm2022/ngrx-store-devtools.mjs","node_modules/zone.js/fesm2015/zone-error.js","node_modules/outvariant/lib/index.mjs","node_modules/msw/lib/core/utils/internal/devUtils.mjs","node_modules/msw/lib/core/utils/internal/getCallFrame.mjs","node_modules/msw/lib/core/utils/internal/isIterable.mjs","node_modules/msw/lib/core/handlers/RequestHandler.mjs","node_modules/@open-draft/until/lib/index.mjs","node_modules/msw/lib/core/utils/executeHandlers.mjs","node_modules/msw/lib/core/utils/request/toPublicUrl.mjs","node_modules/msw/lib/core/utils/request/onUnhandledRequest.mjs","node_modules/@mswjs/cookies/lib/index.mjs","node_modules/msw/lib/core/utils/request/readResponseCookies.mjs","node_modules/msw/lib/core/utils/handleRequest.mjs","node_modules/msw/lib/core/utils/toResponseInit.mjs","node_modules/msw/lib/core/utils/internal/isObject.mjs","node_modules/msw/lib/core/utils/internal/mergeRight.mjs","node_modules/strict-event-emitter/lib/index.mjs","node_modules/msw/lib/core/utils/internal/pipeEvents.mjs","node_modules/msw/lib/core/utils/internal/toReadonlyArray.mjs","node_modules/msw/lib/core/utils/internal/Disposable.mjs","node_modules/msw/lib/core/SetupApi.mjs","node_modules/msw/lib/browser/index.mjs","node_modules/msw/lib/core/utils/internal/checkGlobals.mjs","node_modules/msw/lib/core/utils/internal/isStringEqual.mjs","node_modules/msw/lib/core/utils/logging/getStatusCodeColor.mjs","node_modules/msw/lib/core/utils/logging/getTimestamp.mjs","node_modules/msw/lib/core/utils/logging/serializeRequest.mjs","node_modules/@bundled-es-modules/statuses/index-esm.js","node_modules/msw/lib/core/utils/logging/serializeResponse.mjs","node_modules/path-to-regexp/dist.es2015/index.js","node_modules/@mswjs/interceptors/lib/browser/chunk-UJZOJSMP.mjs","node_modules/is-node-process/lib/index.mjs","node_modules/@open-draft/logger/lib/index.mjs","node_modules/@mswjs/interceptors/lib/browser/chunk-WZQN3FMY.mjs","node_modules/@mswjs/interceptors/lib/browser/index.mjs","node_modules/msw/lib/core/utils/url/cleanUrl.mjs","node_modules/msw/lib/core/utils/url/isAbsoluteUrl.mjs","node_modules/msw/lib/core/utils/url/getAbsoluteUrl.mjs","node_modules/msw/lib/core/utils/matching/normalizePath.mjs","node_modules/msw/lib/core/utils/matching/matchRequestUrl.mjs","node_modules/@bundled-es-modules/cookie/index-esm.js","node_modules/msw/lib/core/utils/request/getRequestCookies.mjs","node_modules/msw/lib/core/handlers/HttpHandler.mjs","node_modules/msw/lib/core/http.mjs","node_modules/headers-polyfill/lib/index.mjs","node_modules/msw/lib/core/utils/HttpResponse/decorators.mjs","node_modules/msw/lib/core/HttpResponse.mjs","node_modules/msw/lib/core/delay.mjs","node_modules/msw/lib/core/index.mjs","src/mocks/handlers/consts.ts","src/mocks/handlers/submit-case.handlers.ts","src/mocks/handlers/version.handlers.ts","src/mocks/handlers.ts","src/mocks/browser.ts","node_modules/ng-recaptcha/fesm2022/ng-recaptcha.mjs","src/environments/environment.model.ts","src/environments/environment.anonymous.ts","src/environments/environment.development.ts","src/app/app-common/app-common.module.ts","src/app/app-common/guards/app-start.guard.ts","src/app/app-services/query-params-service.ts","src/app/app-services/app-insights-service.ts","src/app/app-services/user-data-service.ts","src/app/pages/assessment/assessment.component.ts","src/app/pages/assessment/assessment.component.html","src/app/pages/before-you-begin/before-you-begin.component.ts","src/app/pages/before-you-begin/before-you-begin.component.html","src/app/strings/urls.json","src/app/pages/eligibility-quiz-channels/continue-online-modal/continue-online-modal.component.ts","src/app/pages/eligibility-quiz-channels/continue-online-modal/continue-online-modal.component.html","src/app/pages/eligibility-quiz-channels/eligibility-quiz-channels.component.ts","src/app/pages/eligibility-quiz-channels/eligibility-quiz-channels.component.html","src/app/pages/eligibility-quiz-injury/eligibility-quiz-injury.component.ts","src/app/pages/eligibility-quiz-injury/eligibility-quiz-injury.component.html","src/app/pages/eligibility-quiz-instructions/eligibility-quiz-instructions.component.ts","src/app/pages/eligibility-quiz-instructions/eligibility-quiz-instructions.component.html","src/app/app-routing.module.ts","src/app/app.component.ts","src/app/app.component.html","node_modules/@ngrx/effects/fesm2022/ngrx-effects.mjs","node_modules/@ngrx/router-store/fesm2022/ngrx-router-store.mjs","src/app/store/app-authorization/app-authorization.effects.ts","src/app/store/app-authorization/app-authorization.actions.ts","src/app/store/app-authorization/permissions.ts","src/app/store/app-authorization/roles.ts","src/app/store/app-authorization/roleToPermissionMap.ts","src/app/store/app-authorization/app-authorization.reducer.ts","src/app/store/app-authorization/app-authorization.module.ts","node_modules/@angular/cdk/fesm2022/coercion.mjs","node_modules/@angular/cdk/fesm2022/platform.mjs","node_modules/@angular/cdk/fesm2022/bidi.mjs","node_modules/@angular/cdk/fesm2022/collections.mjs","node_modules/@angular/cdk/fesm2022/scrolling.mjs","src/app/store/app-session/app-session.effects.ts","src/app/store/app-session/app-session.module.ts","src/app/store/root-store.module.ts","src/app/swagger-api/swagger-api.ts","src/app/app.module.ts","src/main.ts"],"sourcesContent":["!function t(e,r){if(\"object\"==typeof exports&&\"object\"==typeof module)module.exports=r();else if(\"function\"==typeof define&&define.amd)define([],r);else{var n=r();for(var i in n)(\"object\"==typeof exports?exports:e)[i]=n[i]}}(this,(function(){return function(t){var e={};function r(n){if(e[n])return e[n].exports;var i=e[n]={i:n,l:!1,exports:{}};return t[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}return r.m=t,r.c=e,r.d=function(t,e,n){r.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},r.r=function(t){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(t,\"__esModule\",{value:!0})},r.t=function(t,e){if(1&e&&(t=r(t)),8&e)return t;if(4&e&&\"object\"==typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,\"default\",{enumerable:!0,value:t}),2&e&&\"string\"!=typeof t)for(var i in t)r.d(n,i,function(e){return t[e]}.bind(null,i));return n},r.n=function(t){var e=t&&t.__esModule?function e(){return t.default}:function e(){return t};return r.d(e,\"a\",e),e},r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r.p=\"\",r(r.s=22)}([function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var n=function(){function t(t,e){for(var r=0;r=4){for(var e=arguments.length,r=Array(e),n=0;n=3){for(var e=arguments.length,r=Array(e),n=0;n=2){for(var e=arguments.length,r=Array(e),n=0;n=1){for(var e=arguments.length,r=Array(e),n=0;n1&&void 0!==arguments[1]?arguments[1]:o.JsonService;if(s(this,t),!e)throw i.Log.error(\"MetadataService: No settings passed to MetadataService\"),new Error(\"settings\");this._settings=e,this._jsonService=new r([\"application/jwk-set+json\"])}return t.prototype.resetSigningKeys=function t(){this._settings=this._settings||{},this._settings.signingKeys=void 0},t.prototype.getMetadata=function t(){var e=this;return this._settings.metadata?(i.Log.debug(\"MetadataService.getMetadata: Returning metadata from settings\"),Promise.resolve(this._settings.metadata)):this.metadataUrl?(i.Log.debug(\"MetadataService.getMetadata: getting metadata from\",this.metadataUrl),this._jsonService.getJson(this.metadataUrl).then((function(t){i.Log.debug(\"MetadataService.getMetadata: json received\");var r=e._settings.metadataSeed||{};return e._settings.metadata=Object.assign({},r,t),e._settings.metadata}))):(i.Log.error(\"MetadataService.getMetadata: No authority or metadataUrl configured on settings\"),Promise.reject(new Error(\"No authority or metadataUrl configured on settings\")))},t.prototype.getIssuer=function t(){return this._getMetadataProperty(\"issuer\")},t.prototype.getAuthorizationEndpoint=function t(){return this._getMetadataProperty(\"authorization_endpoint\")},t.prototype.getUserInfoEndpoint=function t(){return this._getMetadataProperty(\"userinfo_endpoint\")},t.prototype.getTokenEndpoint=function t(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return this._getMetadataProperty(\"token_endpoint\",e)},t.prototype.getCheckSessionIframe=function t(){return this._getMetadataProperty(\"check_session_iframe\",!0)},t.prototype.getEndSessionEndpoint=function t(){return this._getMetadataProperty(\"end_session_endpoint\",!0)},t.prototype.getRevocationEndpoint=function t(){return this._getMetadataProperty(\"revocation_endpoint\",!0)},t.prototype.getKeysEndpoint=function t(){return this._getMetadataProperty(\"jwks_uri\",!0)},t.prototype._getMetadataProperty=function t(e){var r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return i.Log.debug(\"MetadataService.getMetadataProperty for: \"+e),this.getMetadata().then((function(t){if(i.Log.debug(\"MetadataService.getMetadataProperty: metadata recieved\"),void 0===t[e]){if(!0===r)return void i.Log.warn(\"MetadataService.getMetadataProperty: Metadata does not contain optional property \"+e);throw i.Log.error(\"MetadataService.getMetadataProperty: Metadata does not contain property \"+e),new Error(\"Metadata does not contain property \"+e)}return t[e]}))},t.prototype.getSigningKeys=function t(){var e=this;return this._settings.signingKeys?(i.Log.debug(\"MetadataService.getSigningKeys: Returning signingKeys from settings\"),Promise.resolve(this._settings.signingKeys)):this._getMetadataProperty(\"jwks_uri\").then((function(t){return i.Log.debug(\"MetadataService.getSigningKeys: jwks_uri received\",t),e._jsonService.getJson(t).then((function(t){if(i.Log.debug(\"MetadataService.getSigningKeys: key set received\",t),!t.keys)throw i.Log.error(\"MetadataService.getSigningKeys: Missing keys on keyset\"),new Error(\"Missing keys on keyset\");return e._settings.signingKeys=t.keys,e._settings.signingKeys}))}))},n(t,[{key:\"metadataUrl\",get:function t(){return this._metadataUrl||(this._settings.metadataUrl?this._metadataUrl=this._settings.metadataUrl:(this._metadataUrl=this._settings.authority,this._metadataUrl&&this._metadataUrl.indexOf(a)<0&&(\"/\"!==this._metadataUrl[this._metadataUrl.length-1]&&(this._metadataUrl+=\"/\"),this._metadataUrl+=a))),this._metadataUrl}}]),t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.UrlUtility=void 0;var n=r(0),i=r(1);e.UrlUtility=function(){function t(){!function e(t,r){if(!(t instanceof r))throw new TypeError(\"Cannot call a class as a function\")}(this,t)}return t.addQueryParam=function t(e,r,n){return e.indexOf(\"?\")<0&&(e+=\"?\"),\"?\"!==e[e.length-1]&&(e+=\"&\"),e+=encodeURIComponent(r),e+=\"=\",e+=encodeURIComponent(n)},t.parseUrlFragment=function t(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"#\",o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:i.Global;\"string\"!=typeof e&&(e=o.location.href);var s=e.lastIndexOf(r);s>=0&&(e=e.substr(s+1)),\"?\"===r&&(s=e.indexOf(\"#\"))>=0&&(e=e.substr(0,s));for(var a,u={},c=/([^&=]+)=([^&]*)/g,h=0;a=c.exec(e);)if(u[decodeURIComponent(a[1])]=decodeURIComponent(a[2].replace(/\\+/g,\" \")),h++>50)return n.Log.error(\"UrlUtility.parseUrlFragment: response exceeded expected number of parameters\",e),{error:\"Response exceeded expected number of parameters\"};for(var l in u)return u;return{}},t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.JoseUtil=void 0;var n=r(26),i=function o(t){return t&&t.__esModule?t:{default:t}}(r(33));e.JoseUtil=(0,i.default)({jws:n.jws,KeyUtil:n.KeyUtil,X509:n.X509,crypto:n.crypto,hextob64u:n.hextob64u,b64tohex:n.b64tohex,AllowedSigningAlgs:n.AllowedSigningAlgs})},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.OidcClientSettings=void 0;var n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t},i=function(){function t(t,e){for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:{},r=e.authority,i=e.metadataUrl,o=e.metadata,l=e.signingKeys,p=e.metadataSeed,v=e.client_id,y=e.client_secret,m=e.response_type,_=void 0===m?f:m,S=e.scope,b=void 0===S?g:S,w=e.redirect_uri,F=e.post_logout_redirect_uri,E=e.client_authentication,x=void 0===E?d:E,A=e.prompt,k=e.display,P=e.max_age,C=e.ui_locales,T=e.acr_values,R=e.resource,I=e.response_mode,D=e.filterProtocolClaims,L=void 0===D||D,N=e.loadUserInfo,U=void 0===N||N,B=e.staleStateAge,O=void 0===B?900:B,j=e.clockSkew,M=void 0===j?300:j,H=e.clockService,V=void 0===H?new s.ClockService:H,K=e.userInfoJwtIssuer,q=void 0===K?\"OP\":K,J=e.mergeClaims,W=void 0!==J&&J,z=e.stateStore,Y=void 0===z?new a.WebStorageStateStore:z,G=e.ResponseValidatorCtor,X=void 0===G?u.ResponseValidator:G,$=e.MetadataServiceCtor,Q=void 0===$?c.MetadataService:$,Z=e.extraQueryParams,tt=void 0===Z?{}:Z,et=e.extraTokenParams,rt=void 0===et?{}:et;h(this,t),this._authority=r,this._metadataUrl=i,this._metadata=o,this._metadataSeed=p,this._signingKeys=l,this._client_id=v,this._client_secret=y,this._response_type=_,this._scope=b,this._redirect_uri=w,this._post_logout_redirect_uri=F,this._client_authentication=x,this._prompt=A,this._display=k,this._max_age=P,this._ui_locales=C,this._acr_values=T,this._resource=R,this._response_mode=I,this._filterProtocolClaims=!!L,this._loadUserInfo=!!U,this._staleStateAge=O,this._clockSkew=M,this._clockService=V,this._userInfoJwtIssuer=q,this._mergeClaims=!!W,this._stateStore=Y,this._validator=new X(this),this._metadataService=new Q(this),this._extraQueryParams=\"object\"===(void 0===tt?\"undefined\":n(tt))?tt:{},this._extraTokenParams=\"object\"===(void 0===rt?\"undefined\":n(rt))?rt:{}}return t.prototype.getEpochTime=function t(){return this._clockService.getEpochTime()},i(t,[{key:\"client_id\",get:function t(){return this._client_id},set:function t(e){if(this._client_id)throw o.Log.error(\"OidcClientSettings.set_client_id: client_id has already been assigned.\"),new Error(\"client_id has already been assigned.\");this._client_id=e}},{key:\"client_secret\",get:function t(){return this._client_secret}},{key:\"response_type\",get:function t(){return this._response_type}},{key:\"scope\",get:function t(){return this._scope}},{key:\"redirect_uri\",get:function t(){return this._redirect_uri}},{key:\"post_logout_redirect_uri\",get:function t(){return this._post_logout_redirect_uri}},{key:\"client_authentication\",get:function t(){return this._client_authentication}},{key:\"prompt\",get:function t(){return this._prompt}},{key:\"display\",get:function t(){return this._display}},{key:\"max_age\",get:function t(){return this._max_age}},{key:\"ui_locales\",get:function t(){return this._ui_locales}},{key:\"acr_values\",get:function t(){return this._acr_values}},{key:\"resource\",get:function t(){return this._resource}},{key:\"response_mode\",get:function t(){return this._response_mode}},{key:\"authority\",get:function t(){return this._authority},set:function t(e){if(this._authority)throw o.Log.error(\"OidcClientSettings.set_authority: authority has already been assigned.\"),new Error(\"authority has already been assigned.\");this._authority=e}},{key:\"metadataUrl\",get:function t(){return this._metadataUrl||(this._metadataUrl=this.authority,this._metadataUrl&&this._metadataUrl.indexOf(l)<0&&(\"/\"!==this._metadataUrl[this._metadataUrl.length-1]&&(this._metadataUrl+=\"/\"),this._metadataUrl+=l)),this._metadataUrl}},{key:\"metadata\",get:function t(){return this._metadata},set:function t(e){this._metadata=e}},{key:\"metadataSeed\",get:function t(){return this._metadataSeed},set:function t(e){this._metadataSeed=e}},{key:\"signingKeys\",get:function t(){return this._signingKeys},set:function t(e){this._signingKeys=e}},{key:\"filterProtocolClaims\",get:function t(){return this._filterProtocolClaims}},{key:\"loadUserInfo\",get:function t(){return this._loadUserInfo}},{key:\"staleStateAge\",get:function t(){return this._staleStateAge}},{key:\"clockSkew\",get:function t(){return this._clockSkew}},{key:\"userInfoJwtIssuer\",get:function t(){return this._userInfoJwtIssuer}},{key:\"mergeClaims\",get:function t(){return this._mergeClaims}},{key:\"stateStore\",get:function t(){return this._stateStore}},{key:\"validator\",get:function t(){return this._validator}},{key:\"metadataService\",get:function t(){return this._metadataService}},{key:\"extraQueryParams\",get:function t(){return this._extraQueryParams},set:function t(e){\"object\"===(void 0===e?\"undefined\":n(e))?this._extraQueryParams=e:this._extraQueryParams={}}},{key:\"extraTokenParams\",get:function t(){return this._extraTokenParams},set:function t(e){\"object\"===(void 0===e?\"undefined\":n(e))?this._extraTokenParams=e:this._extraTokenParams={}}}]),t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.WebStorageStateStore=void 0;var n=r(0),i=r(1);function o(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}e.WebStorageStateStore=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=e.prefix,n=void 0===r?\"oidc.\":r,s=e.store,a=void 0===s?i.Global.localStorage:s;o(this,t),this._store=a,this._prefix=n}return t.prototype.set=function t(e,r){return n.Log.debug(\"WebStorageStateStore.set\",e),e=this._prefix+e,this._store.setItem(e,r),Promise.resolve()},t.prototype.get=function t(e){n.Log.debug(\"WebStorageStateStore.get\",e),e=this._prefix+e;var r=this._store.getItem(e);return Promise.resolve(r)},t.prototype.remove=function t(e){n.Log.debug(\"WebStorageStateStore.remove\",e),e=this._prefix+e;var r=this._store.getItem(e);return this._store.removeItem(e),Promise.resolve(r)},t.prototype.getAllKeys=function t(){n.Log.debug(\"WebStorageStateStore.getAllKeys\");for(var e=[],r=0;r0&&void 0!==arguments[0]?arguments[0]:null,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:i.Global.XMLHttpRequest,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;o(this,t),e&&Array.isArray(e)?this._contentTypes=e.slice():this._contentTypes=[],this._contentTypes.push(\"application/json\"),n&&this._contentTypes.push(\"application/jwt\"),this._XMLHttpRequest=r,this._jwtHandler=n}return t.prototype.getJson=function t(e,r){var i=this;if(!e)throw n.Log.error(\"JsonService.getJson: No url passed\"),new Error(\"url\");return n.Log.debug(\"JsonService.getJson, url: \",e),new Promise((function(t,o){var s=new i._XMLHttpRequest;s.open(\"GET\",e);var a=i._contentTypes,u=i._jwtHandler;s.onload=function(){if(n.Log.debug(\"JsonService.getJson: HTTP response received, status\",s.status),200===s.status){var r=s.getResponseHeader(\"Content-Type\");if(r){var i=a.find((function(t){if(r.startsWith(t))return!0}));if(\"application/jwt\"==i)return void u(s).then(t,o);if(i)try{return void t(JSON.parse(s.responseText))}catch(t){return n.Log.error(\"JsonService.getJson: Error parsing JSON response\",t.message),void o(t)}}o(Error(\"Invalid response Content-Type: \"+r+\", from URL: \"+e))}else o(Error(s.statusText+\" (\"+s.status+\")\"))},s.onerror=function(){n.Log.error(\"JsonService.getJson: network error\"),o(Error(\"Network Error\"))},r&&(n.Log.debug(\"JsonService.getJson: token passed, setting Authorization header\"),s.setRequestHeader(\"Authorization\",\"Bearer \"+r)),s.send()}))},t.prototype.postForm=function t(e,r,i){var o=this;if(!e)throw n.Log.error(\"JsonService.postForm: No url passed\"),new Error(\"url\");return n.Log.debug(\"JsonService.postForm, url: \",e),new Promise((function(t,s){var a=new o._XMLHttpRequest;a.open(\"POST\",e);var u=o._contentTypes;a.onload=function(){if(n.Log.debug(\"JsonService.postForm: HTTP response received, status\",a.status),200!==a.status){if(400===a.status)if(i=a.getResponseHeader(\"Content-Type\"))if(u.find((function(t){if(i.startsWith(t))return!0})))try{var r=JSON.parse(a.responseText);if(r&&r.error)return n.Log.error(\"JsonService.postForm: Error from server: \",r.error),void s(new Error(r.error))}catch(t){return n.Log.error(\"JsonService.postForm: Error parsing JSON response\",t.message),void s(t)}s(Error(a.statusText+\" (\"+a.status+\")\"))}else{var i;if((i=a.getResponseHeader(\"Content-Type\"))&&u.find((function(t){if(i.startsWith(t))return!0})))try{return void t(JSON.parse(a.responseText))}catch(t){return n.Log.error(\"JsonService.postForm: Error parsing JSON response\",t.message),void s(t)}s(Error(\"Invalid response Content-Type: \"+i+\", from URL: \"+e))}},a.onerror=function(){n.Log.error(\"JsonService.postForm: network error\"),s(Error(\"Network Error\"))};var c=\"\";for(var h in r){var l=r[h];l&&(c.length>0&&(c+=\"&\"),c+=encodeURIComponent(h),c+=\"=\",c+=encodeURIComponent(l))}a.setRequestHeader(\"Content-Type\",\"application/x-www-form-urlencoded\"),void 0!==i&&a.setRequestHeader(\"Authorization\",\"Basic \"+btoa(i)),a.send(c)}))},t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.SigninRequest=void 0;var n=r(0),i=r(3),o=r(13);e.SigninRequest=function(){function t(e){var r=e.url,s=e.client_id,a=e.redirect_uri,u=e.response_type,c=e.scope,h=e.authority,l=e.data,f=e.prompt,g=e.display,d=e.max_age,p=e.ui_locales,v=e.id_token_hint,y=e.login_hint,m=e.acr_values,_=e.resource,S=e.response_mode,b=e.request,w=e.request_uri,F=e.extraQueryParams,E=e.request_type,x=e.client_secret,A=e.extraTokenParams,k=e.skipUserInfo;if(function P(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,t),!r)throw n.Log.error(\"SigninRequest.ctor: No url passed\"),new Error(\"url\");if(!s)throw n.Log.error(\"SigninRequest.ctor: No client_id passed\"),new Error(\"client_id\");if(!a)throw n.Log.error(\"SigninRequest.ctor: No redirect_uri passed\"),new Error(\"redirect_uri\");if(!u)throw n.Log.error(\"SigninRequest.ctor: No response_type passed\"),new Error(\"response_type\");if(!c)throw n.Log.error(\"SigninRequest.ctor: No scope passed\"),new Error(\"scope\");if(!h)throw n.Log.error(\"SigninRequest.ctor: No authority passed\"),new Error(\"authority\");var C=t.isOidc(u),T=t.isCode(u);S||(S=t.isCode(u)?\"query\":null),this.state=new o.SigninState({nonce:C,data:l,client_id:s,authority:h,redirect_uri:a,code_verifier:T,request_type:E,response_mode:S,client_secret:x,scope:c,extraTokenParams:A,skipUserInfo:k}),r=i.UrlUtility.addQueryParam(r,\"client_id\",s),r=i.UrlUtility.addQueryParam(r,\"redirect_uri\",a),r=i.UrlUtility.addQueryParam(r,\"response_type\",u),r=i.UrlUtility.addQueryParam(r,\"scope\",c),r=i.UrlUtility.addQueryParam(r,\"state\",this.state.id),C&&(r=i.UrlUtility.addQueryParam(r,\"nonce\",this.state.nonce)),T&&(r=i.UrlUtility.addQueryParam(r,\"code_challenge\",this.state.code_challenge),r=i.UrlUtility.addQueryParam(r,\"code_challenge_method\",\"S256\"));var R={prompt:f,display:g,max_age:d,ui_locales:p,id_token_hint:v,login_hint:y,acr_values:m,resource:_,request:b,request_uri:w,response_mode:S};for(var I in R)R[I]&&(r=i.UrlUtility.addQueryParam(r,I,R[I]));for(var D in F)r=i.UrlUtility.addQueryParam(r,D,F[D]);this.url=r}return t.isOidc=function t(e){return!!e.split(/\\s+/g).filter((function(t){return\"id_token\"===t}))[0]},t.isOAuth=function t(e){return!!e.split(/\\s+/g).filter((function(t){return\"token\"===t}))[0]},t.isCode=function t(e){return!!e.split(/\\s+/g).filter((function(t){return\"code\"===t}))[0]},t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.State=void 0;var n=function(){function t(t,e){for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:{},r=e.id,n=e.data,i=e.created,s=e.request_type;a(this,t),this._id=r||(0,o.default)(),this._data=n,this._created=\"number\"==typeof i&&i>0?i:parseInt(Date.now()/1e3),this._request_type=s}return t.prototype.toStorageString=function t(){return i.Log.debug(\"State.toStorageString\"),JSON.stringify({id:this.id,data:this.data,created:this.created,request_type:this.request_type})},t.fromStorageString=function e(r){return i.Log.debug(\"State.fromStorageString\"),new t(JSON.parse(r))},t.clearStaleState=function e(r,n){var o=Date.now()/1e3-n;return r.getAllKeys().then((function(e){i.Log.debug(\"State.clearStaleState: got keys\",e);for(var n=[],s=function s(a){var c=e[a];u=r.get(c).then((function(e){var n=!1;if(e)try{var s=t.fromStorageString(e);i.Log.debug(\"State.clearStaleState: got item from key: \",c,s.created),s.created<=o&&(n=!0)}catch(t){i.Log.error(\"State.clearStaleState: Error parsing state for key\",c,t.message),n=!0}else i.Log.debug(\"State.clearStaleState: no item in storage for key: \",c),n=!0;if(n)return i.Log.debug(\"State.clearStaleState: removed item for key: \",c),r.remove(c)})),n.push(u)},a=0;a0&&void 0!==arguments[0]?arguments[0]:{};g(this,t),e instanceof o.OidcClientSettings?this._settings=e:this._settings=new o.OidcClientSettings(e)}return t.prototype.createSigninRequest=function t(){var e=this,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=r.response_type,o=r.scope,s=r.redirect_uri,u=r.data,c=r.state,h=r.prompt,l=r.display,f=r.max_age,g=r.ui_locales,d=r.id_token_hint,p=r.login_hint,v=r.acr_values,y=r.resource,m=r.request,_=r.request_uri,S=r.response_mode,b=r.extraQueryParams,w=r.extraTokenParams,F=r.request_type,E=r.skipUserInfo,x=arguments[1];i.Log.debug(\"OidcClient.createSigninRequest\");var A=this._settings.client_id;n=n||this._settings.response_type,o=o||this._settings.scope,s=s||this._settings.redirect_uri,h=h||this._settings.prompt,l=l||this._settings.display,f=f||this._settings.max_age,g=g||this._settings.ui_locales,v=v||this._settings.acr_values,y=y||this._settings.resource,S=S||this._settings.response_mode,b=b||this._settings.extraQueryParams,w=w||this._settings.extraTokenParams;var k=this._settings.authority;return a.SigninRequest.isCode(n)&&\"code\"!==n?Promise.reject(new Error(\"OpenID Connect hybrid flow is not supported\")):this._metadataService.getAuthorizationEndpoint().then((function(t){i.Log.debug(\"OidcClient.createSigninRequest: Received authorization endpoint\",t);var r=new a.SigninRequest({url:t,client_id:A,redirect_uri:s,response_type:n,scope:o,data:u||c,authority:k,prompt:h,display:l,max_age:f,ui_locales:g,id_token_hint:d,login_hint:p,acr_values:v,resource:y,request:m,request_uri:_,extraQueryParams:b,extraTokenParams:w,request_type:F,response_mode:S,client_secret:e._settings.client_secret,skipUserInfo:E}),P=r.state;return(x=x||e._stateStore).set(P.id,P.toStorageString()).then((function(){return r}))}))},t.prototype.readSigninResponseState=function t(e,r){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];i.Log.debug(\"OidcClient.readSigninResponseState\");var o=\"query\"===this._settings.response_mode||!this._settings.response_mode&&a.SigninRequest.isCode(this._settings.response_type),s=o?\"?\":\"#\",c=new u.SigninResponse(e,s);if(!c.state)return i.Log.error(\"OidcClient.readSigninResponseState: No state in response\"),Promise.reject(new Error(\"No state in response\"));r=r||this._stateStore;var h=n?r.remove.bind(r):r.get.bind(r);return h(c.state).then((function(t){if(!t)throw i.Log.error(\"OidcClient.readSigninResponseState: No matching state found in storage\"),new Error(\"No matching state found in storage\");return{state:l.SigninState.fromStorageString(t),response:c}}))},t.prototype.processSigninResponse=function t(e,r){var n=this;return i.Log.debug(\"OidcClient.processSigninResponse\"),this.readSigninResponseState(e,r,!0).then((function(t){var e=t.state,r=t.response;return i.Log.debug(\"OidcClient.processSigninResponse: Received state from storage; validating response\"),n._validator.validateSigninResponse(e,r)}))},t.prototype.createSignoutRequest=function t(){var e=this,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=r.id_token_hint,o=r.data,s=r.state,a=r.post_logout_redirect_uri,u=r.extraQueryParams,h=r.request_type,l=arguments[1];return i.Log.debug(\"OidcClient.createSignoutRequest\"),a=a||this._settings.post_logout_redirect_uri,u=u||this._settings.extraQueryParams,this._metadataService.getEndSessionEndpoint().then((function(t){if(!t)throw i.Log.error(\"OidcClient.createSignoutRequest: No end session endpoint url returned\"),new Error(\"no end session endpoint\");i.Log.debug(\"OidcClient.createSignoutRequest: Received end session endpoint\",t);var r=new c.SignoutRequest({url:t,id_token_hint:n,post_logout_redirect_uri:a,data:o||s,extraQueryParams:u,request_type:h}),f=r.state;return f&&(i.Log.debug(\"OidcClient.createSignoutRequest: Signout request has state to persist\"),(l=l||e._stateStore).set(f.id,f.toStorageString())),r}))},t.prototype.readSignoutResponseState=function t(e,r){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];i.Log.debug(\"OidcClient.readSignoutResponseState\");var o=new h.SignoutResponse(e);if(!o.state)return i.Log.debug(\"OidcClient.readSignoutResponseState: No state in response\"),o.error?(i.Log.warn(\"OidcClient.readSignoutResponseState: Response was error: \",o.error),Promise.reject(new s.ErrorResponse(o))):Promise.resolve({state:void 0,response:o});var a=o.state;r=r||this._stateStore;var u=n?r.remove.bind(r):r.get.bind(r);return u(a).then((function(t){if(!t)throw i.Log.error(\"OidcClient.readSignoutResponseState: No matching state found in storage\"),new Error(\"No matching state found in storage\");return{state:f.State.fromStorageString(t),response:o}}))},t.prototype.processSignoutResponse=function t(e,r){var n=this;return i.Log.debug(\"OidcClient.processSignoutResponse\"),this.readSignoutResponseState(e,r,!0).then((function(t){var e=t.state,r=t.response;return e?(i.Log.debug(\"OidcClient.processSignoutResponse: Received state from storage; validating response\"),n._validator.validateSignoutResponse(e,r)):(i.Log.debug(\"OidcClient.processSignoutResponse: No state from storage; skipping validating response\"),r)}))},t.prototype.clearStaleState=function t(e){return i.Log.debug(\"OidcClient.clearStaleState\"),e=e||this._stateStore,f.State.clearStaleState(e,this.settings.staleStateAge)},n(t,[{key:\"_stateStore\",get:function t(){return this.settings.stateStore}},{key:\"_validator\",get:function t(){return this.settings.validator}},{key:\"_metadataService\",get:function t(){return this.settings.metadataService}},{key:\"settings\",get:function t(){return this._settings}},{key:\"metadataService\",get:function t(){return this._metadataService}}]),t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.TokenClient=void 0;var n=r(7),i=r(2),o=r(0);function s(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}e.TokenClient=function(){function t(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:n.JsonService,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:i.MetadataService;if(s(this,t),!e)throw o.Log.error(\"TokenClient.ctor: No settings passed\"),new Error(\"settings\");this._settings=e,this._jsonService=new r,this._metadataService=new a(this._settings)}return t.prototype.exchangeCode=function t(){var e=this,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(r=Object.assign({},r)).grant_type=r.grant_type||\"authorization_code\",r.client_id=r.client_id||this._settings.client_id,r.client_secret=r.client_secret||this._settings.client_secret,r.redirect_uri=r.redirect_uri||this._settings.redirect_uri;var n=void 0,i=r._client_authentication||this._settings._client_authentication;return delete r._client_authentication,r.code?r.redirect_uri?r.code_verifier?r.client_id?r.client_secret||\"client_secret_basic\"!=i?(\"client_secret_basic\"==i&&(n=r.client_id+\":\"+r.client_secret,delete r.client_id,delete r.client_secret),this._metadataService.getTokenEndpoint(!1).then((function(t){return o.Log.debug(\"TokenClient.exchangeCode: Received token endpoint\"),e._jsonService.postForm(t,r,n).then((function(t){return o.Log.debug(\"TokenClient.exchangeCode: response received\"),t}))}))):(o.Log.error(\"TokenClient.exchangeCode: No client_secret passed\"),Promise.reject(new Error(\"A client_secret is required\"))):(o.Log.error(\"TokenClient.exchangeCode: No client_id passed\"),Promise.reject(new Error(\"A client_id is required\"))):(o.Log.error(\"TokenClient.exchangeCode: No code_verifier passed\"),Promise.reject(new Error(\"A code_verifier is required\"))):(o.Log.error(\"TokenClient.exchangeCode: No redirect_uri passed\"),Promise.reject(new Error(\"A redirect_uri is required\"))):(o.Log.error(\"TokenClient.exchangeCode: No code passed\"),Promise.reject(new Error(\"A code is required\")))},t.prototype.exchangeRefreshToken=function t(){var e=this,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(r=Object.assign({},r)).grant_type=r.grant_type||\"refresh_token\",r.client_id=r.client_id||this._settings.client_id,r.client_secret=r.client_secret||this._settings.client_secret;var n=void 0,i=r._client_authentication||this._settings._client_authentication;return delete r._client_authentication,r.refresh_token?r.client_id?(\"client_secret_basic\"==i&&(n=r.client_id+\":\"+r.client_secret,delete r.client_id,delete r.client_secret),this._metadataService.getTokenEndpoint(!1).then((function(t){return o.Log.debug(\"TokenClient.exchangeRefreshToken: Received token endpoint\"),e._jsonService.postForm(t,r,n).then((function(t){return o.Log.debug(\"TokenClient.exchangeRefreshToken: response received\"),t}))}))):(o.Log.error(\"TokenClient.exchangeRefreshToken: No client_id passed\"),Promise.reject(new Error(\"A client_id is required\"))):(o.Log.error(\"TokenClient.exchangeRefreshToken: No refresh_token passed\"),Promise.reject(new Error(\"A refresh_token is required\")))},t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.ErrorResponse=void 0;var n=r(0);function i(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function o(t,e){if(!t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return!e||\"object\"!=typeof e&&\"function\"!=typeof e?t:e}e.ErrorResponse=function(t){function e(){var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},s=r.error,a=r.error_description,u=r.error_uri,c=r.state,h=r.session_state;if(i(this,e),!s)throw n.Log.error(\"No error passed to ErrorResponse\"),new Error(\"error\");var l=o(this,t.call(this,a||s));return l.name=\"ErrorResponse\",l.error=s,l.error_description=a,l.error_uri=u,l.state=c,l.session_state=h,l}return function r(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(e,t),e}(Error)},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.SigninState=void 0;var n=function(){function t(t,e){for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:{},n=r.nonce,i=r.authority,o=r.client_id,u=r.redirect_uri,l=r.code_verifier,f=r.response_mode,g=r.client_secret,d=r.scope,p=r.extraTokenParams,v=r.skipUserInfo;c(this,e);var y=h(this,t.call(this,arguments[0]));if(!0===n?y._nonce=(0,a.default)():n&&(y._nonce=n),!0===l?y._code_verifier=(0,a.default)()+(0,a.default)()+(0,a.default)():l&&(y._code_verifier=l),y.code_verifier){var m=s.JoseUtil.hashString(y.code_verifier,\"SHA256\");y._code_challenge=s.JoseUtil.hexToBase64Url(m)}return y._redirect_uri=u,y._authority=i,y._client_id=o,y._response_mode=f,y._client_secret=g,y._scope=d,y._extraTokenParams=p,y._skipUserInfo=v,y}return function r(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(e,t),e.prototype.toStorageString=function t(){return i.Log.debug(\"SigninState.toStorageString\"),JSON.stringify({id:this.id,data:this.data,created:this.created,request_type:this.request_type,nonce:this.nonce,code_verifier:this.code_verifier,redirect_uri:this.redirect_uri,authority:this.authority,client_id:this.client_id,response_mode:this.response_mode,client_secret:this.client_secret,scope:this.scope,extraTokenParams:this.extraTokenParams,skipUserInfo:this.skipUserInfo})},e.fromStorageString=function t(r){return i.Log.debug(\"SigninState.fromStorageString\"),new e(JSON.parse(r))},n(e,[{key:\"nonce\",get:function t(){return this._nonce}},{key:\"authority\",get:function t(){return this._authority}},{key:\"client_id\",get:function t(){return this._client_id}},{key:\"redirect_uri\",get:function t(){return this._redirect_uri}},{key:\"code_verifier\",get:function t(){return this._code_verifier}},{key:\"code_challenge\",get:function t(){return this._code_challenge}},{key:\"response_mode\",get:function t(){return this._response_mode}},{key:\"client_secret\",get:function t(){return this._client_secret}},{key:\"scope\",get:function t(){return this._scope}},{key:\"extraTokenParams\",get:function t(){return this._extraTokenParams}},{key:\"skipUserInfo\",get:function t(){return this._skipUserInfo}}]),e}(o.State)},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.default=function n(){return(\"undefined\"!=i&&null!==i&&void 0!==i.getRandomValues?o:s)().replace(/-/g,\"\")};var i=\"undefined\"!=typeof window?window.crypto||window.msCrypto:null;function o(){return([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g,(function(t){return(t^i.getRandomValues(new Uint8Array(1))[0]&15>>t/4).toString(16)}))}function s(){return([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g,(function(t){return(t^16*Math.random()>>t/4).toString(16)}))}t.exports=e.default},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.User=void 0;var n=function(){function t(t,e){for(var r=0;r0){var n=parseInt(Date.now()/1e3);this.expires_at=n+r}}},{key:\"expired\",get:function t(){var e=this.expires_in;if(void 0!==e)return e<=0}},{key:\"scopes\",get:function t(){return(this.scope||\"\").split(\" \")}}]),t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.AccessTokenEvents=void 0;var n=r(0),i=r(46);function o(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}e.AccessTokenEvents=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=e.accessTokenExpiringNotificationTime,n=void 0===r?60:r,s=e.accessTokenExpiringTimer,a=void 0===s?new i.Timer(\"Access token expiring\"):s,u=e.accessTokenExpiredTimer,c=void 0===u?new i.Timer(\"Access token expired\"):u;o(this,t),this._accessTokenExpiringNotificationTime=n,this._accessTokenExpiring=a,this._accessTokenExpired=c}return t.prototype.load=function t(e){if(e.access_token&&void 0!==e.expires_in){var r=e.expires_in;if(n.Log.debug(\"AccessTokenEvents.load: access token present, remaining duration:\",r),r>0){var i=r-this._accessTokenExpiringNotificationTime;i<=0&&(i=1),n.Log.debug(\"AccessTokenEvents.load: registering expiring timer in:\",i),this._accessTokenExpiring.init(i)}else n.Log.debug(\"AccessTokenEvents.load: canceling existing expiring timer becase we're past expiration.\"),this._accessTokenExpiring.cancel();var o=r+1;n.Log.debug(\"AccessTokenEvents.load: registering expired timer in:\",o),this._accessTokenExpired.init(o)}else this._accessTokenExpiring.cancel(),this._accessTokenExpired.cancel()},t.prototype.unload=function t(){n.Log.debug(\"AccessTokenEvents.unload: canceling existing access token timers\"),this._accessTokenExpiring.cancel(),this._accessTokenExpired.cancel()},t.prototype.addAccessTokenExpiring=function t(e){this._accessTokenExpiring.addHandler(e)},t.prototype.removeAccessTokenExpiring=function t(e){this._accessTokenExpiring.removeHandler(e)},t.prototype.addAccessTokenExpired=function t(e){this._accessTokenExpired.addHandler(e)},t.prototype.removeAccessTokenExpired=function t(e){this._accessTokenExpired.removeHandler(e)},t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.Event=void 0;var n=r(0);e.Event=function(){function t(e){!function r(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,t),this._name=e,this._callbacks=[]}return t.prototype.addHandler=function t(e){this._callbacks.push(e)},t.prototype.removeHandler=function t(e){var r=this._callbacks.findIndex((function(t){return t===e}));r>=0&&this._callbacks.splice(r,1)},t.prototype.raise=function t(){n.Log.debug(\"Event: Raising event: \"+this._name);for(var e=0;e1&&void 0!==arguments[1]?arguments[1]:o.CheckSessionIFrame,u=arguments.length>2&&void 0!==arguments[2]?arguments[2]:s.Global.timer;if(a(this,t),!e)throw i.Log.error(\"SessionMonitor.ctor: No user manager passed to SessionMonitor\"),new Error(\"userManager\");this._userManager=e,this._CheckSessionIFrameCtor=n,this._timer=u,this._userManager.events.addUserLoaded(this._start.bind(this)),this._userManager.events.addUserUnloaded(this._stop.bind(this)),Promise.resolve(this._userManager.getUser().then((function(t){t?r._start(t):r._settings.monitorAnonymousSession&&r._userManager.querySessionStatus().then((function(t){var e={session_state:t.session_state};t.sub&&t.sid&&(e.profile={sub:t.sub,sid:t.sid}),r._start(e)})).catch((function(t){i.Log.error(\"SessionMonitor ctor: error from querySessionStatus:\",t.message)}))})).catch((function(t){i.Log.error(\"SessionMonitor ctor: error from getUser:\",t.message)})))}return t.prototype._start=function t(e){var r=this,n=e.session_state;n&&(e.profile?(this._sub=e.profile.sub,this._sid=e.profile.sid,i.Log.debug(\"SessionMonitor._start: session_state:\",n,\", sub:\",this._sub)):(this._sub=void 0,this._sid=void 0,i.Log.debug(\"SessionMonitor._start: session_state:\",n,\", anonymous user\")),this._checkSessionIFrame?this._checkSessionIFrame.start(n):this._metadataService.getCheckSessionIframe().then((function(t){if(t){i.Log.debug(\"SessionMonitor._start: Initializing check session iframe\");var e=r._client_id,o=r._checkSessionInterval,s=r._stopCheckSessionOnError;r._checkSessionIFrame=new r._CheckSessionIFrameCtor(r._callback.bind(r),e,t,o,s),r._checkSessionIFrame.load().then((function(){r._checkSessionIFrame.start(n)}))}else i.Log.warn(\"SessionMonitor._start: No check session iframe found in the metadata\")})).catch((function(t){i.Log.error(\"SessionMonitor._start: Error from getCheckSessionIframe:\",t.message)})))},t.prototype._stop=function t(){var e=this;if(this._sub=void 0,this._sid=void 0,this._checkSessionIFrame&&(i.Log.debug(\"SessionMonitor._stop\"),this._checkSessionIFrame.stop()),this._settings.monitorAnonymousSession)var r=this._timer.setInterval((function(){e._timer.clearInterval(r),e._userManager.querySessionStatus().then((function(t){var r={session_state:t.session_state};t.sub&&t.sid&&(r.profile={sub:t.sub,sid:t.sid}),e._start(r)})).catch((function(t){i.Log.error(\"SessionMonitor: error from querySessionStatus:\",t.message)}))}),1e3)},t.prototype._callback=function t(){var e=this;this._userManager.querySessionStatus().then((function(t){var r=!0;t?t.sub===e._sub?(r=!1,e._checkSessionIFrame.start(t.session_state),t.sid===e._sid?i.Log.debug(\"SessionMonitor._callback: Same sub still logged in at OP, restarting check session iframe; session_state:\",t.session_state):(i.Log.debug(\"SessionMonitor._callback: Same sub still logged in at OP, session state has changed, restarting check session iframe; session_state:\",t.session_state),e._userManager.events._raiseUserSessionChanged())):i.Log.debug(\"SessionMonitor._callback: Different subject signed into OP:\",t.sub):i.Log.debug(\"SessionMonitor._callback: Subject no longer signed into OP\"),r&&(e._sub?(i.Log.debug(\"SessionMonitor._callback: SessionMonitor._callback; raising signed out event\"),e._userManager.events._raiseUserSignedOut()):(i.Log.debug(\"SessionMonitor._callback: SessionMonitor._callback; raising signed in event\"),e._userManager.events._raiseUserSignedIn()))})).catch((function(t){e._sub&&(i.Log.debug(\"SessionMonitor._callback: Error calling queryCurrentSigninSession; raising signed out event\",t.message),e._userManager.events._raiseUserSignedOut())}))},n(t,[{key:\"_settings\",get:function t(){return this._userManager.settings}},{key:\"_metadataService\",get:function t(){return this._userManager.metadataService}},{key:\"_client_id\",get:function t(){return this._settings.client_id}},{key:\"_checkSessionInterval\",get:function t(){return this._settings.checkSessionInterval}},{key:\"_stopCheckSessionOnError\",get:function t(){return this._settings.stopCheckSessionOnError}}]),t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.CheckSessionIFrame=void 0;var n=r(0);function i(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}e.CheckSessionIFrame=function(){function t(e,r,n,o){var s=!(arguments.length>4&&void 0!==arguments[4])||arguments[4];i(this,t),this._callback=e,this._client_id=r,this._url=n,this._interval=o||2e3,this._stopOnError=s;var a=n.indexOf(\"/\",n.indexOf(\"//\")+2);this._frame_origin=n.substr(0,a),this._frame=window.document.createElement(\"iframe\"),this._frame.style.visibility=\"hidden\",this._frame.style.position=\"absolute\",this._frame.style.display=\"none\",this._frame.width=0,this._frame.height=0,this._frame.src=n}return t.prototype.load=function t(){var e=this;return new Promise((function(t){e._frame.onload=function(){t()},window.document.body.appendChild(e._frame),e._boundMessageEvent=e._message.bind(e),window.addEventListener(\"message\",e._boundMessageEvent,!1)}))},t.prototype._message=function t(e){e.origin===this._frame_origin&&e.source===this._frame.contentWindow&&(\"error\"===e.data?(n.Log.error(\"CheckSessionIFrame: error message from check session op iframe\"),this._stopOnError&&this.stop()):\"changed\"===e.data?(n.Log.debug(\"CheckSessionIFrame: changed message from check session op iframe\"),this.stop(),this._callback()):n.Log.debug(\"CheckSessionIFrame: \"+e.data+\" message from check session op iframe\"))},t.prototype.start=function t(e){var r=this;if(this._session_state!==e){n.Log.debug(\"CheckSessionIFrame.start\"),this.stop(),this._session_state=e;var i=function t(){r._frame.contentWindow.postMessage(r._client_id+\" \"+r._session_state,r._frame_origin)};i(),this._timer=window.setInterval(i,this._interval)}},t.prototype.stop=function t(){this._session_state=null,this._timer&&(n.Log.debug(\"CheckSessionIFrame.stop\"),window.clearInterval(this._timer),this._timer=null)},t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.TokenRevocationClient=void 0;var n=r(0),i=r(2),o=r(1);function s(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}var a=\"access_token\",u=\"refresh_token\";e.TokenRevocationClient=function(){function t(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:o.Global.XMLHttpRequest,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:i.MetadataService;if(s(this,t),!e)throw n.Log.error(\"TokenRevocationClient.ctor: No settings provided\"),new Error(\"No settings provided.\");this._settings=e,this._XMLHttpRequestCtor=r,this._metadataService=new a(this._settings)}return t.prototype.revoke=function t(e,r){var i=this,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:\"access_token\";if(!e)throw n.Log.error(\"TokenRevocationClient.revoke: No token provided\"),new Error(\"No token provided.\");if(o!==a&&o!=u)throw n.Log.error(\"TokenRevocationClient.revoke: Invalid token type\"),new Error(\"Invalid token type.\");return this._metadataService.getRevocationEndpoint().then((function(t){if(t){n.Log.debug(\"TokenRevocationClient.revoke: Revoking \"+o);var s=i._settings.client_id,a=i._settings.client_secret;return i._revoke(t,s,a,e,o)}if(r)throw n.Log.error(\"TokenRevocationClient.revoke: Revocation not supported\"),new Error(\"Revocation not supported\")}))},t.prototype._revoke=function t(e,r,i,o,s){var a=this;return new Promise((function(t,u){var c=new a._XMLHttpRequestCtor;c.open(\"POST\",e),c.onload=function(){n.Log.debug(\"TokenRevocationClient.revoke: HTTP response received, status\",c.status),200===c.status?t():u(Error(c.statusText+\" (\"+c.status+\")\"))},c.onerror=function(){n.Log.debug(\"TokenRevocationClient.revoke: Network Error.\"),u(\"Network Error\")};var h=\"client_id=\"+encodeURIComponent(r);i&&(h+=\"&client_secret=\"+encodeURIComponent(i)),h+=\"&token_type_hint=\"+encodeURIComponent(s),h+=\"&token=\"+encodeURIComponent(o),c.setRequestHeader(\"Content-Type\",\"application/x-www-form-urlencoded\"),c.send(h)}))},t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.CordovaPopupWindow=void 0;var n=function(){function t(t,e){for(var r=0;r1&&void 0!==arguments[1]?arguments[1]:o.MetadataService,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:s.UserInfoService,u=arguments.length>3&&void 0!==arguments[3]?arguments[3]:c.JoseUtil,l=arguments.length>4&&void 0!==arguments[4]?arguments[4]:a.TokenClient;if(h(this,t),!e)throw i.Log.error(\"ResponseValidator.ctor: No settings passed to ResponseValidator\"),new Error(\"settings\");this._settings=e,this._metadataService=new r(this._settings),this._userInfoService=new n(this._settings),this._joseUtil=u,this._tokenClient=new l(this._settings)}return t.prototype.validateSigninResponse=function t(e,r){var n=this;return i.Log.debug(\"ResponseValidator.validateSigninResponse\"),this._processSigninParams(e,r).then((function(t){return i.Log.debug(\"ResponseValidator.validateSigninResponse: state processed\"),n._validateTokens(e,t).then((function(t){return i.Log.debug(\"ResponseValidator.validateSigninResponse: tokens validated\"),n._processClaims(e,t).then((function(t){return i.Log.debug(\"ResponseValidator.validateSigninResponse: claims processed\"),t}))}))}))},t.prototype.validateSignoutResponse=function t(e,r){return e.id!==r.state?(i.Log.error(\"ResponseValidator.validateSignoutResponse: State does not match\"),Promise.reject(new Error(\"State does not match\"))):(i.Log.debug(\"ResponseValidator.validateSignoutResponse: state validated\"),r.state=e.data,r.error?(i.Log.warn(\"ResponseValidator.validateSignoutResponse: Response was error\",r.error),Promise.reject(new u.ErrorResponse(r))):Promise.resolve(r))},t.prototype._processSigninParams=function t(e,r){if(e.id!==r.state)return i.Log.error(\"ResponseValidator._processSigninParams: State does not match\"),Promise.reject(new Error(\"State does not match\"));if(!e.client_id)return i.Log.error(\"ResponseValidator._processSigninParams: No client_id on state\"),Promise.reject(new Error(\"No client_id on state\"));if(!e.authority)return i.Log.error(\"ResponseValidator._processSigninParams: No authority on state\"),Promise.reject(new Error(\"No authority on state\"));if(this._settings.authority){if(this._settings.authority&&this._settings.authority!==e.authority)return i.Log.error(\"ResponseValidator._processSigninParams: authority mismatch on settings vs. signin state\"),Promise.reject(new Error(\"authority mismatch on settings vs. signin state\"))}else this._settings.authority=e.authority;if(this._settings.client_id){if(this._settings.client_id&&this._settings.client_id!==e.client_id)return i.Log.error(\"ResponseValidator._processSigninParams: client_id mismatch on settings vs. signin state\"),Promise.reject(new Error(\"client_id mismatch on settings vs. signin state\"))}else this._settings.client_id=e.client_id;return i.Log.debug(\"ResponseValidator._processSigninParams: state validated\"),r.state=e.data,r.error?(i.Log.warn(\"ResponseValidator._processSigninParams: Response was error\",r.error),Promise.reject(new u.ErrorResponse(r))):e.nonce&&!r.id_token?(i.Log.error(\"ResponseValidator._processSigninParams: Expecting id_token in response\"),Promise.reject(new Error(\"No id_token in response\"))):!e.nonce&&r.id_token?(i.Log.error(\"ResponseValidator._processSigninParams: Not expecting id_token in response\"),Promise.reject(new Error(\"Unexpected id_token in response\"))):e.code_verifier&&!r.code?(i.Log.error(\"ResponseValidator._processSigninParams: Expecting code in response\"),Promise.reject(new Error(\"No code in response\"))):!e.code_verifier&&r.code?(i.Log.error(\"ResponseValidator._processSigninParams: Not expecting code in response\"),Promise.reject(new Error(\"Unexpected code in response\"))):(r.scope||(r.scope=e.scope),Promise.resolve(r))},t.prototype._processClaims=function t(e,r){var n=this;if(r.isOpenIdConnect){if(i.Log.debug(\"ResponseValidator._processClaims: response is OIDC, processing claims\"),r.profile=this._filterProtocolClaims(r.profile),!0!==e.skipUserInfo&&this._settings.loadUserInfo&&r.access_token)return i.Log.debug(\"ResponseValidator._processClaims: loading user info\"),this._userInfoService.getClaims(r.access_token).then((function(t){return i.Log.debug(\"ResponseValidator._processClaims: user info claims received from user info endpoint\"),t.sub!==r.profile.sub?(i.Log.error(\"ResponseValidator._processClaims: sub from user info endpoint does not match sub in id_token\"),Promise.reject(new Error(\"sub from user info endpoint does not match sub in id_token\"))):(r.profile=n._mergeClaims(r.profile,t),i.Log.debug(\"ResponseValidator._processClaims: user info claims received, updated profile:\",r.profile),r)}));i.Log.debug(\"ResponseValidator._processClaims: not loading user info\")}else i.Log.debug(\"ResponseValidator._processClaims: response is not OIDC, not processing claims\");return Promise.resolve(r)},t.prototype._mergeClaims=function t(e,r){var i=Object.assign({},e);for(var o in r){var s=r[o];Array.isArray(s)||(s=[s]);for(var a=0;a1)return i.Log.error(\"ResponseValidator._validateIdToken: No kid found in id_token and more than one key found in metadata\"),Promise.reject(new Error(\"No kid found in id_token and more than one key found in metadata\"));o=t[0]}return Promise.resolve(o)}))},t.prototype._getSigningKeyForJwtWithSingleRetry=function t(e){var r=this;return this._getSigningKeyForJwt(e).then((function(t){return t?Promise.resolve(t):(r._metadataService.resetSigningKeys(),r._getSigningKeyForJwt(e))}))},t.prototype._validateIdToken=function t(e,r){var n=this;if(!e.nonce)return i.Log.error(\"ResponseValidator._validateIdToken: No nonce on state\"),Promise.reject(new Error(\"No nonce on state\"));var o=this._joseUtil.parseJwt(r.id_token);return o&&o.header&&o.payload?e.nonce!==o.payload.nonce?(i.Log.error(\"ResponseValidator._validateIdToken: Invalid nonce in id_token\"),Promise.reject(new Error(\"Invalid nonce in id_token\"))):this._metadataService.getIssuer().then((function(t){return i.Log.debug(\"ResponseValidator._validateIdToken: Received issuer\"),n._getSigningKeyForJwtWithSingleRetry(o).then((function(s){if(!s)return i.Log.error(\"ResponseValidator._validateIdToken: No key matching kid or alg found in signing keys\"),Promise.reject(new Error(\"No key matching kid or alg found in signing keys\"));var a=e.client_id,u=n._settings.clockSkew;return i.Log.debug(\"ResponseValidator._validateIdToken: Validaing JWT; using clock skew (in seconds) of: \",u),n._joseUtil.validateJwt(r.id_token,s,t,a,u).then((function(){return i.Log.debug(\"ResponseValidator._validateIdToken: JWT validation successful\"),o.payload.sub?(r.profile=o.payload,r):(i.Log.error(\"ResponseValidator._validateIdToken: No sub present in id_token\"),Promise.reject(new Error(\"No sub present in id_token\")))}))}))})):(i.Log.error(\"ResponseValidator._validateIdToken: Failed to parse id_token\",o),Promise.reject(new Error(\"Failed to parse id_token\")))},t.prototype._filterByAlg=function t(e,r){var n=null;if(r.startsWith(\"RS\"))n=\"RSA\";else if(r.startsWith(\"PS\"))n=\"PS\";else{if(!r.startsWith(\"ES\"))return i.Log.debug(\"ResponseValidator._filterByAlg: alg not supported: \",r),[];n=\"EC\"}return i.Log.debug(\"ResponseValidator._filterByAlg: Looking for keys that match kty: \",n),e=e.filter((function(t){return t.kty===n})),i.Log.debug(\"ResponseValidator._filterByAlg: Number of keys that match kty: \",n,e.length),e},t.prototype._validateAccessToken=function t(e){if(!e.profile)return i.Log.error(\"ResponseValidator._validateAccessToken: No profile loaded from id_token\"),Promise.reject(new Error(\"No profile loaded from id_token\"));if(!e.profile.at_hash)return i.Log.error(\"ResponseValidator._validateAccessToken: No at_hash in id_token\"),Promise.reject(new Error(\"No at_hash in id_token\"));if(!e.id_token)return i.Log.error(\"ResponseValidator._validateAccessToken: No id_token\"),Promise.reject(new Error(\"No id_token\"));var r=this._joseUtil.parseJwt(e.id_token);if(!r||!r.header)return i.Log.error(\"ResponseValidator._validateAccessToken: Failed to parse id_token\",r),Promise.reject(new Error(\"Failed to parse id_token\"));var n=r.header.alg;if(!n||5!==n.length)return i.Log.error(\"ResponseValidator._validateAccessToken: Unsupported alg:\",n),Promise.reject(new Error(\"Unsupported alg: \"+n));var o=n.substr(2,3);if(!o)return i.Log.error(\"ResponseValidator._validateAccessToken: Unsupported alg:\",n,o),Promise.reject(new Error(\"Unsupported alg: \"+n));if(256!==(o=parseInt(o))&&384!==o&&512!==o)return i.Log.error(\"ResponseValidator._validateAccessToken: Unsupported alg:\",n,o),Promise.reject(new Error(\"Unsupported alg: \"+n));var s=\"sha\"+o,a=this._joseUtil.hashString(e.access_token,s);if(!a)return i.Log.error(\"ResponseValidator._validateAccessToken: access_token hash failed:\",s),Promise.reject(new Error(\"Failed to validate at_hash\"));var u=a.substr(0,a.length/2),c=this._joseUtil.hexToBase64Url(u);return c!==e.profile.at_hash?(i.Log.error(\"ResponseValidator._validateAccessToken: Failed to validate at_hash\",c,e.profile.at_hash),Promise.reject(new Error(\"Failed to validate at_hash\"))):(i.Log.debug(\"ResponseValidator._validateAccessToken: success\"),Promise.resolve(e))},t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.UserInfoService=void 0;var n=r(7),i=r(2),o=r(0),s=r(4);function a(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}e.UserInfoService=function(){function t(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:n.JsonService,u=arguments.length>2&&void 0!==arguments[2]?arguments[2]:i.MetadataService,c=arguments.length>3&&void 0!==arguments[3]?arguments[3]:s.JoseUtil;if(a(this,t),!e)throw o.Log.error(\"UserInfoService.ctor: No settings passed\"),new Error(\"settings\");this._settings=e,this._jsonService=new r(void 0,void 0,this._getClaimsFromJwt.bind(this)),this._metadataService=new u(this._settings),this._joseUtil=c}return t.prototype.getClaims=function t(e){var r=this;return e?this._metadataService.getUserInfoEndpoint().then((function(t){return o.Log.debug(\"UserInfoService.getClaims: received userinfo url\",t),r._jsonService.getJson(t,e).then((function(t){return o.Log.debug(\"UserInfoService.getClaims: claims received\",t),t}))})):(o.Log.error(\"UserInfoService.getClaims: No token passed\"),Promise.reject(new Error(\"A token is required\")))},t.prototype._getClaimsFromJwt=function t(e){var r=this;try{var n=this._joseUtil.parseJwt(e.responseText);if(!n||!n.header||!n.payload)return o.Log.error(\"UserInfoService._getClaimsFromJwt: Failed to parse JWT\",n),Promise.reject(new Error(\"Failed to parse id_token\"));var i=n.header.kid,s=void 0;switch(this._settings.userInfoJwtIssuer){case\"OP\":s=this._metadataService.getIssuer();break;case\"ANY\":s=Promise.resolve(n.payload.iss);break;default:s=Promise.resolve(this._settings.userInfoJwtIssuer)}return s.then((function(t){return o.Log.debug(\"UserInfoService._getClaimsFromJwt: Received issuer:\"+t),r._metadataService.getSigningKeys().then((function(s){if(!s)return o.Log.error(\"UserInfoService._getClaimsFromJwt: No signing keys from metadata\"),Promise.reject(new Error(\"No signing keys from metadata\"));o.Log.debug(\"UserInfoService._getClaimsFromJwt: Received signing keys\");var a=void 0;if(i)a=s.filter((function(t){return t.kid===i}))[0];else{if((s=r._filterByAlg(s,n.header.alg)).length>1)return o.Log.error(\"UserInfoService._getClaimsFromJwt: No kid found in id_token and more than one key found in metadata\"),Promise.reject(new Error(\"No kid found in id_token and more than one key found in metadata\"));a=s[0]}if(!a)return o.Log.error(\"UserInfoService._getClaimsFromJwt: No key matching kid or alg found in signing keys\"),Promise.reject(new Error(\"No key matching kid or alg found in signing keys\"));var u=r._settings.client_id,c=r._settings.clockSkew;return o.Log.debug(\"UserInfoService._getClaimsFromJwt: Validaing JWT; using clock skew (in seconds) of: \",c),r._joseUtil.validateJwt(e.responseText,a,t,u,c,void 0,!0).then((function(){return o.Log.debug(\"UserInfoService._getClaimsFromJwt: JWT validation successful\"),n.payload}))}))}))}catch(t){return o.Log.error(\"UserInfoService._getClaimsFromJwt: Error parsing JWT response\",t.message),void reject(t)}},t.prototype._filterByAlg=function t(e,r){var n=null;if(r.startsWith(\"RS\"))n=\"RSA\";else if(r.startsWith(\"PS\"))n=\"PS\";else{if(!r.startsWith(\"ES\"))return o.Log.debug(\"UserInfoService._filterByAlg: alg not supported: \",r),[];n=\"EC\"}return o.Log.debug(\"UserInfoService._filterByAlg: Looking for keys that match kty: \",n),e=e.filter((function(t){return t.kty===n})),o.Log.debug(\"UserInfoService._filterByAlg: Number of keys that match kty: \",n,e.length),e},t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.AllowedSigningAlgs=e.b64tohex=e.hextob64u=e.crypto=e.X509=e.KeyUtil=e.jws=void 0;var n=r(27);e.jws=n.jws,e.KeyUtil=n.KEYUTIL,e.X509=n.X509,e.crypto=n.crypto,e.hextob64u=n.hextob64u,e.b64tohex=n.b64tohex,e.AllowedSigningAlgs=[\"RS256\",\"RS384\",\"RS512\",\"PS256\",\"PS384\",\"PS512\",\"ES256\",\"ES384\",\"ES512\"]},function(t,e,r){\"use strict\";(function(t){Object.defineProperty(e,\"__esModule\",{value:!0});var r=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t},n={userAgent:!1},i={};\n/*!\nCopyright (c) 2011, Yahoo! Inc. All rights reserved.\nCode licensed under the BSD License:\nhttp://developer.yahoo.com/yui/license.html\nversion: 2.9.0\n*/\nif(void 0===o)var o={};o.lang={extend:function t(e,r,i){if(!r||!e)throw new Error(\"YAHOO.lang.extend failed, please check that all dependencies are included.\");var o=function t(){};if(o.prototype=r.prototype,e.prototype=new o,e.prototype.constructor=e,e.superclass=r.prototype,r.prototype.constructor==Object.prototype.constructor&&(r.prototype.constructor=r),i){var s;for(s in i)e.prototype[s]=i[s];var a=function t(){},u=[\"toString\",\"valueOf\"];try{/MSIE/.test(n.userAgent)&&(a=function t(e,r){for(s=0;s>>2]>>>24-s%4*8&255;r[i+s>>>2]|=a<<24-(i+s)%4*8}else for(s=0;s>>2]=n[s>>>2];return this.sigBytes+=o,this},clamp:function t(){var e=this.words,r=this.sigBytes;e[r>>>2]&=4294967295<<32-r%4*8,e.length=s.ceil(r/4)},clone:function t(){var e=c.clone.call(this);return e.words=this.words.slice(0),e},random:function t(e){for(var r=[],n=0;n>>2]>>>24-o%4*8&255;i.push((s>>>4).toString(16)),i.push((15&s).toString(16))}return i.join(\"\")},parse:function t(e){for(var r=e.length,n=[],i=0;i>>3]|=parseInt(e.substr(i,2),16)<<24-i%8*4;return new h.init(n,r/2)}},g=l.Latin1={stringify:function t(e){for(var r=e.words,n=e.sigBytes,i=[],o=0;o>>2]>>>24-o%4*8&255;i.push(String.fromCharCode(s))}return i.join(\"\")},parse:function t(e){for(var r=e.length,n=[],i=0;i>>2]|=(255&e.charCodeAt(i))<<24-i%4*8;return new h.init(n,r)}},d=l.Utf8={stringify:function t(e){try{return decodeURIComponent(escape(g.stringify(e)))}catch(t){throw new Error(\"Malformed UTF-8 data\")}},parse:function t(e){return g.parse(unescape(encodeURIComponent(e)))}},p=u.BufferedBlockAlgorithm=c.extend({reset:function t(){this._data=new h.init,this._nDataBytes=0},_append:function t(e){\"string\"==typeof e&&(e=d.parse(e)),this._data.concat(e),this._nDataBytes+=e.sigBytes},_process:function t(e){var r=this._data,n=r.words,i=r.sigBytes,o=this.blockSize,a=i/(4*o),u=(a=e?s.ceil(a):s.max((0|a)-this._minBufferSize,0))*o,c=s.min(4*u,i);if(u){for(var l=0;l>>2]>>>24-o%4*8&255)<<16|(r[o+1>>>2]>>>24-(o+1)%4*8&255)<<8|r[o+2>>>2]>>>24-(o+2)%4*8&255,a=0;4>a&&o+.75*a>>6*(3-a)&63));if(r=i.charAt(64))for(;e.length%4;)e.push(r);return e.join(\"\")},parse:function t(r){var n=r.length,i=this._map;(o=i.charAt(64))&&(-1!=(o=r.indexOf(o))&&(n=o));for(var o=[],s=0,a=0;a>>6-a%4*2;o[s>>>2]|=(u|c)<<24-s%4*8,s++}return e.create(o,s)},_map:\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\"}}(),function(t){for(var e=y,r=(i=e.lib).WordArray,n=i.Hasher,i=e.algo,o=[],s=[],a=function t(e){return 4294967296*(e-(0|e))|0},u=2,c=0;64>c;){var h;t:{h=u;for(var l=t.sqrt(h),f=2;f<=l;f++)if(!(h%f)){h=!1;break t}h=!0}h&&(8>c&&(o[c]=a(t.pow(u,.5))),s[c]=a(t.pow(u,1/3)),c++),u++}var g=[];i=i.SHA256=n.extend({_doReset:function t(){this._hash=new r.init(o.slice(0))},_doProcessBlock:function t(e,r){for(var n=this._hash.words,i=n[0],o=n[1],a=n[2],u=n[3],c=n[4],h=n[5],l=n[6],f=n[7],d=0;64>d;d++){if(16>d)g[d]=0|e[r+d];else{var p=g[d-15],v=g[d-2];g[d]=((p<<25|p>>>7)^(p<<14|p>>>18)^p>>>3)+g[d-7]+((v<<15|v>>>17)^(v<<13|v>>>19)^v>>>10)+g[d-16]}p=f+((c<<26|c>>>6)^(c<<21|c>>>11)^(c<<7|c>>>25))+(c&h^~c&l)+s[d]+g[d],v=((i<<30|i>>>2)^(i<<19|i>>>13)^(i<<10|i>>>22))+(i&o^i&a^o&a),f=l,l=h,h=c,c=u+p|0,u=a,a=o,o=i,i=p+v|0}n[0]=n[0]+i|0,n[1]=n[1]+o|0,n[2]=n[2]+a|0,n[3]=n[3]+u|0,n[4]=n[4]+c|0,n[5]=n[5]+h|0,n[6]=n[6]+l|0,n[7]=n[7]+f|0},_doFinalize:function e(){var r=this._data,n=r.words,i=8*this._nDataBytes,o=8*r.sigBytes;return n[o>>>5]|=128<<24-o%32,n[14+(o+64>>>9<<4)]=t.floor(i/4294967296),n[15+(o+64>>>9<<4)]=i,r.sigBytes=4*n.length,this._process(),this._hash},clone:function t(){var e=n.clone.call(this);return e._hash=this._hash.clone(),e}});e.SHA256=n._createHelper(i),e.HmacSHA256=n._createHmacHelper(i)}(Math),function(){function t(){return n.create.apply(n,arguments)}for(var e=y,r=e.lib.Hasher,n=(o=e.x64).Word,i=o.WordArray,o=e.algo,s=[t(1116352408,3609767458),t(1899447441,602891725),t(3049323471,3964484399),t(3921009573,2173295548),t(961987163,4081628472),t(1508970993,3053834265),t(2453635748,2937671579),t(2870763221,3664609560),t(3624381080,2734883394),t(310598401,1164996542),t(607225278,1323610764),t(1426881987,3590304994),t(1925078388,4068182383),t(2162078206,991336113),t(2614888103,633803317),t(3248222580,3479774868),t(3835390401,2666613458),t(4022224774,944711139),t(264347078,2341262773),t(604807628,2007800933),t(770255983,1495990901),t(1249150122,1856431235),t(1555081692,3175218132),t(1996064986,2198950837),t(2554220882,3999719339),t(2821834349,766784016),t(2952996808,2566594879),t(3210313671,3203337956),t(3336571891,1034457026),t(3584528711,2466948901),t(113926993,3758326383),t(338241895,168717936),t(666307205,1188179964),t(773529912,1546045734),t(1294757372,1522805485),t(1396182291,2643833823),t(1695183700,2343527390),t(1986661051,1014477480),t(2177026350,1206759142),t(2456956037,344077627),t(2730485921,1290863460),t(2820302411,3158454273),t(3259730800,3505952657),t(3345764771,106217008),t(3516065817,3606008344),t(3600352804,1432725776),t(4094571909,1467031594),t(275423344,851169720),t(430227734,3100823752),t(506948616,1363258195),t(659060556,3750685593),t(883997877,3785050280),t(958139571,3318307427),t(1322822218,3812723403),t(1537002063,2003034995),t(1747873779,3602036899),t(1955562222,1575990012),t(2024104815,1125592928),t(2227730452,2716904306),t(2361852424,442776044),t(2428436474,593698344),t(2756734187,3733110249),t(3204031479,2999351573),t(3329325298,3815920427),t(3391569614,3928383900),t(3515267271,566280711),t(3940187606,3454069534),t(4118630271,4000239992),t(116418474,1914138554),t(174292421,2731055270),t(289380356,3203993006),t(460393269,320620315),t(685471733,587496836),t(852142971,1086792851),t(1017036298,365543100),t(1126000580,2618297676),t(1288033470,3409855158),t(1501505948,4234509866),t(1607167915,987167468),t(1816402316,1246189591)],a=[],u=0;80>u;u++)a[u]=t();o=o.SHA512=r.extend({_doReset:function t(){this._hash=new i.init([new n.init(1779033703,4089235720),new n.init(3144134277,2227873595),new n.init(1013904242,4271175723),new n.init(2773480762,1595750129),new n.init(1359893119,2917565137),new n.init(2600822924,725511199),new n.init(528734635,4215389547),new n.init(1541459225,327033209)])},_doProcessBlock:function t(e,r){for(var n=(f=this._hash.words)[0],i=f[1],o=f[2],u=f[3],c=f[4],h=f[5],l=f[6],f=f[7],g=n.high,d=n.low,p=i.high,v=i.low,y=o.high,m=o.low,_=u.high,S=u.low,b=c.high,w=c.low,F=h.high,E=h.low,x=l.high,A=l.low,k=f.high,P=f.low,C=g,T=d,R=p,I=v,D=y,L=m,N=_,U=S,B=b,O=w,j=F,M=E,H=x,V=A,K=k,q=P,J=0;80>J;J++){var W=a[J];if(16>J)var z=W.high=0|e[r+2*J],Y=W.low=0|e[r+2*J+1];else{z=((Y=(z=a[J-15]).high)>>>1|(G=z.low)<<31)^(Y>>>8|G<<24)^Y>>>7;var G=(G>>>1|Y<<31)^(G>>>8|Y<<24)^(G>>>7|Y<<25),X=((Y=(X=a[J-2]).high)>>>19|($=X.low)<<13)^(Y<<3|$>>>29)^Y>>>6,$=($>>>19|Y<<13)^($<<3|Y>>>29)^($>>>6|Y<<26),Q=(Y=a[J-7]).high,Z=(tt=a[J-16]).high,tt=tt.low;z=(z=(z=z+Q+((Y=G+Y.low)>>>0>>0?1:0))+X+((Y=Y+$)>>>0<$>>>0?1:0))+Z+((Y=Y+tt)>>>0>>0?1:0);W.high=z,W.low=Y}Q=B&j^~B&H,tt=O&M^~O&V,W=C&R^C&D^R&D;var et=T&I^T&L^I&L,rt=(G=(C>>>28|T<<4)^(C<<30|T>>>2)^(C<<25|T>>>7),X=(T>>>28|C<<4)^(T<<30|C>>>2)^(T<<25|C>>>7),($=s[J]).high),nt=$.low;Z=K+((B>>>14|O<<18)^(B>>>18|O<<14)^(B<<23|O>>>9))+(($=q+((O>>>14|B<<18)^(O>>>18|B<<14)^(O<<23|B>>>9)))>>>0>>0?1:0),K=H,q=V,H=j,V=M,j=B,M=O,B=N+(Z=(Z=(Z=Z+Q+(($=$+tt)>>>0>>0?1:0))+rt+(($=$+nt)>>>0>>0?1:0))+z+(($=$+Y)>>>0>>0?1:0))+((O=U+$|0)>>>0>>0?1:0)|0,N=D,U=L,D=R,L=I,R=C,I=T,C=Z+(W=G+W+((Y=X+et)>>>0>>0?1:0))+((T=$+Y|0)>>>0<$>>>0?1:0)|0}d=n.low=d+T,n.high=g+C+(d>>>0>>0?1:0),v=i.low=v+I,i.high=p+R+(v>>>0>>0?1:0),m=o.low=m+L,o.high=y+D+(m>>>0>>0?1:0),S=u.low=S+U,u.high=_+N+(S>>>0>>0?1:0),w=c.low=w+O,c.high=b+B+(w>>>0>>0?1:0),E=h.low=E+M,h.high=F+j+(E>>>0>>0?1:0),A=l.low=A+V,l.high=x+H+(A>>>0>>0?1:0),P=f.low=P+q,f.high=k+K+(P>>>0>>0?1:0)},_doFinalize:function t(){var e=this._data,r=e.words,n=8*this._nDataBytes,i=8*e.sigBytes;return r[i>>>5]|=128<<24-i%32,r[30+(i+128>>>10<<5)]=Math.floor(n/4294967296),r[31+(i+128>>>10<<5)]=n,e.sigBytes=4*r.length,this._process(),this._hash.toX32()},clone:function t(){var e=r.clone.call(this);return e._hash=this._hash.clone(),e},blockSize:32}),e.SHA512=r._createHelper(o),e.HmacSHA512=r._createHmacHelper(o)}(),function(){var t=y,e=(i=t.x64).Word,r=i.WordArray,n=(i=t.algo).SHA512,i=i.SHA384=n.extend({_doReset:function t(){this._hash=new r.init([new e.init(3418070365,3238371032),new e.init(1654270250,914150663),new e.init(2438529370,812702999),new e.init(355462360,4144912697),new e.init(1731405415,4290775857),new e.init(2394180231,1750603025),new e.init(3675008525,1694076839),new e.init(1203062813,3204075428)])},_doFinalize:function t(){var e=n._doFinalize.call(this);return e.sigBytes-=16,e}});t.SHA384=n._createHelper(i),t.HmacSHA384=n._createHmacHelper(i)}();\n/*! (c) Tom Wu | http://www-cs-students.stanford.edu/~tjw/jsbn/\n */\nvar m,_=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";function S(t){var e,r,n=\"\";for(e=0;e+3<=t.length;e+=3)r=parseInt(t.substring(e,e+3),16),n+=_.charAt(r>>6)+_.charAt(63&r);for(e+1==t.length?(r=parseInt(t.substring(e,e+1),16),n+=_.charAt(r<<2)):e+2==t.length&&(r=parseInt(t.substring(e,e+2),16),n+=_.charAt(r>>2)+_.charAt((3&r)<<4)),\"=\";(3&n.length)>0;)n+=\"=\";return n}function b(t){var e,r,n,i=\"\",o=0;for(e=0;e>2),r=3&n,o=1):1==o?(i+=R(r<<2|n>>4),r=15&n,o=2):2==o?(i+=R(r),i+=R(n>>2),r=3&n,o=3):(i+=R(r<<2|n>>4),i+=R(15&n),o=0));return 1==o&&(i+=R(r<<2)),i}function w(t){var e,r=b(t),n=new Array;for(e=0;2*e>15;--o>=0;){var u=32767&this[t],c=this[t++]>>15,h=a*u+c*s;i=((u=s*u+((32767&h)<<15)+r[n]+(1073741823&i))>>>30)+(h>>>15)+a*c+(i>>>30),r[n++]=1073741823&u}return i},m=30):\"Netscape\"!=n.appName?(F.prototype.am=function A(t,e,r,n,i,o){for(;--o>=0;){var s=e*this[t++]+r[n]+i;i=Math.floor(s/67108864),r[n++]=67108863&s}return i},m=26):(F.prototype.am=function k(t,e,r,n,i,o){for(var s=16383&e,a=e>>14;--o>=0;){var u=16383&this[t],c=this[t++]>>14,h=a*u+c*s;i=((u=s*u+((16383&h)<<14)+r[n]+i)>>28)+(h>>14)+a*c,r[n++]=268435455&u}return i},m=28),F.prototype.DB=m,F.prototype.DM=(1<>>16)&&(t=e,r+=16),0!=(e=t>>8)&&(t=e,r+=8),0!=(e=t>>4)&&(t=e,r+=4),0!=(e=t>>2)&&(t=e,r+=2),0!=(e=t>>1)&&(t=e,r+=1),r}function N(t){this.m=t}function U(t){this.m=t,this.mp=t.invDigit(),this.mpl=32767&this.mp,this.mph=this.mp>>15,this.um=(1<>=16,e+=16),0==(255&t)&&(t>>=8,e+=8),0==(15&t)&&(t>>=4,e+=4),0==(3&t)&&(t>>=2,e+=2),0==(1&t)&&++e,e}function V(t){for(var e=0;0!=t;)t&=t-1,++e;return e}function K(){}function q(t){return t}function J(t){this.r2=E(),this.q3=E(),F.ONE.dlShiftTo(2*t.t,this.r2),this.mu=this.r2.divide(t),this.m=t}N.prototype.convert=function W(t){return t.s<0||t.compareTo(this.m)>=0?t.mod(this.m):t},N.prototype.revert=function z(t){return t},N.prototype.reduce=function Y(t){t.divRemTo(this.m,null,t)},N.prototype.mulTo=function G(t,e,r){t.multiplyTo(e,r),this.reduce(r)},N.prototype.sqrTo=function X(t,e){t.squareTo(e),this.reduce(e)},U.prototype.convert=function $(t){var e=E();return t.abs().dlShiftTo(this.m.t,e),e.divRemTo(this.m,null,e),t.s<0&&e.compareTo(F.ZERO)>0&&this.m.subTo(e,e),e},U.prototype.revert=function Q(t){var e=E();return t.copyTo(e),this.reduce(e),e},U.prototype.reduce=function Z(t){for(;t.t<=this.mt2;)t[t.t++]=0;for(var e=0;e>15)*this.mpl&this.um)<<15)&t.DM;for(t[r=e+this.m.t]+=this.m.am(0,n,t,e,0,this.m.t);t[r]>=t.DV;)t[r]-=t.DV,t[++r]++}t.clamp(),t.drShiftTo(this.m.t,t),t.compareTo(this.m)>=0&&t.subTo(this.m,t)},U.prototype.mulTo=function tt(t,e,r){t.multiplyTo(e,r),this.reduce(r)},U.prototype.sqrTo=function et(t,e){t.squareTo(e),this.reduce(e)},F.prototype.copyTo=function rt(t){for(var e=this.t-1;e>=0;--e)t[e]=this[e];t.t=this.t,t.s=this.s},F.prototype.fromInt=function nt(t){this.t=1,this.s=t<0?-1:0,t>0?this[0]=t:t<-1?this[0]=t+this.DV:this.t=0},F.prototype.fromString=function it(t,e){var r;if(16==e)r=4;else if(8==e)r=3;else if(256==e)r=8;else if(2==e)r=1;else if(32==e)r=5;else{if(4!=e)return void this.fromRadix(t,e);r=2}this.t=0,this.s=0;for(var n=t.length,i=!1,o=0;--n>=0;){var s=8==r?255&t[n]:I(t,n);s<0?\"-\"==t.charAt(n)&&(i=!0):(i=!1,0==o?this[this.t++]=s:o+r>this.DB?(this[this.t-1]|=(s&(1<>this.DB-o):this[this.t-1]|=s<=this.DB&&(o-=this.DB))}8==r&&0!=(128&t[0])&&(this.s=-1,o>0&&(this[this.t-1]|=(1<0&&this[this.t-1]==t;)--this.t},F.prototype.dlShiftTo=function st(t,e){var r;for(r=this.t-1;r>=0;--r)e[r+t]=this[r];for(r=t-1;r>=0;--r)e[r]=0;e.t=this.t+t,e.s=this.s},F.prototype.drShiftTo=function at(t,e){for(var r=t;r=0;--r)e[r+s+1]=this[r]>>i|a,a=(this[r]&o)<=0;--r)e[r]=0;e[s]=a,e.t=this.t+s+1,e.s=this.s,e.clamp()},F.prototype.rShiftTo=function ct(t,e){e.s=this.s;var r=Math.floor(t/this.DB);if(r>=this.t)e.t=0;else{var n=t%this.DB,i=this.DB-n,o=(1<>n;for(var s=r+1;s>n;n>0&&(e[this.t-r-1]|=(this.s&o)<>=this.DB;if(t.t>=this.DB;n+=this.s}else{for(n+=this.s;r>=this.DB;n-=t.s}e.s=n<0?-1:0,n<-1?e[r++]=this.DV+n:n>0&&(e[r++]=n),e.t=r,e.clamp()},F.prototype.multiplyTo=function lt(t,e){var r=this.abs(),n=t.abs(),i=r.t;for(e.t=i+n.t;--i>=0;)e[i]=0;for(i=0;i=0;)t[r]=0;for(r=0;r=e.DV&&(t[r+e.t]-=e.DV,t[r+e.t+1]=1)}t.t>0&&(t[t.t-1]+=e.am(r,e[r],t,2*r,0,1)),t.s=0,t.clamp()},F.prototype.divRemTo=function gt(t,e,r){var n=t.abs();if(!(n.t<=0)){var i=this.abs();if(i.t0?(n.lShiftTo(u,o),i.lShiftTo(u,r)):(n.copyTo(o),i.copyTo(r));var c=o.t,h=o[c-1];if(0!=h){var l=h*(1<1?o[c-2]>>this.F2:0),f=this.FV/l,g=(1<=0&&(r[r.t++]=1,r.subTo(y,r)),F.ONE.dlShiftTo(c,y),y.subTo(o,o);o.t=0;){var m=r[--p]==h?this.DM:Math.floor(r[p]*f+(r[p-1]+d)*g);if((r[p]+=o.am(0,m,r,v,0,c))0&&r.rShiftTo(u,r),s<0&&F.ZERO.subTo(r,r)}}},F.prototype.invDigit=function dt(){if(this.t<1)return 0;var t=this[0];if(0==(1&t))return 0;var e=3&t;return(e=(e=(e=(e=e*(2-(15&t)*e)&15)*(2-(255&t)*e)&255)*(2-((65535&t)*e&65535))&65535)*(2-t*e%this.DV)%this.DV)>0?this.DV-e:-e},F.prototype.isEven=function pt(){return 0==(this.t>0?1&this[0]:this.s)},F.prototype.exp=function vt(t,e){if(t>4294967295||t<1)return F.ONE;var r=E(),n=E(),i=e.convert(this),o=L(t)-1;for(i.copyTo(r);--o>=0;)if(e.sqrTo(r,n),(t&1<0)e.mulTo(n,i,r);else{var s=r;r=n,n=s}return e.revert(r)},F.prototype.toString=function yt(t){if(this.s<0)return\"-\"+this.negate().toString(t);var e;if(16==t)e=4;else if(8==t)e=3;else if(2==t)e=1;else if(32==t)e=5;else{if(4!=t)return this.toRadix(t);e=2}var r,n=(1<0)for(a>a)>0&&(i=!0,o=R(r));s>=0;)a>(a+=this.DB-e)):(r=this[s]>>(a-=e)&n,a<=0&&(a+=this.DB,--s)),r>0&&(i=!0),i&&(o+=R(r));return i?o:\"0\"},F.prototype.negate=function mt(){var t=E();return F.ZERO.subTo(this,t),t},F.prototype.abs=function _t(){return this.s<0?this.negate():this},F.prototype.compareTo=function St(t){var e=this.s-t.s;if(0!=e)return e;var r=this.t;if(0!=(e=r-t.t))return this.s<0?-e:e;for(;--r>=0;)if(0!=(e=this[r]-t[r]))return e;return 0},F.prototype.bitLength=function bt(){return this.t<=0?0:this.DB*(this.t-1)+L(this[this.t-1]^this.s&this.DM)},F.prototype.mod=function wt(t){var e=E();return this.abs().divRemTo(t,null,e),this.s<0&&e.compareTo(F.ZERO)>0&&t.subTo(e,e),e},F.prototype.modPowInt=function Ft(t,e){var r;return r=t<256||e.isEven()?new N(e):new U(e),this.exp(t,r)},F.ZERO=D(0),F.ONE=D(1),K.prototype.convert=q,K.prototype.revert=q,K.prototype.mulTo=function Et(t,e,r){t.multiplyTo(e,r)},K.prototype.sqrTo=function xt(t,e){t.squareTo(e)},J.prototype.convert=function At(t){if(t.s<0||t.t>2*this.m.t)return t.mod(this.m);if(t.compareTo(this.m)<0)return t;var e=E();return t.copyTo(e),this.reduce(e),e},J.prototype.revert=function kt(t){return t},J.prototype.reduce=function Pt(t){for(t.drShiftTo(this.m.t-1,this.r2),t.t>this.m.t+1&&(t.t=this.m.t+1,t.clamp()),this.mu.multiplyUpperTo(this.r2,this.m.t+1,this.q3),this.m.multiplyLowerTo(this.q3,this.m.t+1,this.r2);t.compareTo(this.r2)<0;)t.dAddOffset(1,this.m.t+1);for(t.subTo(this.r2,t);t.compareTo(this.m)>=0;)t.subTo(this.m,t)},J.prototype.mulTo=function Ct(t,e,r){t.multiplyTo(e,r),this.reduce(r)},J.prototype.sqrTo=function Tt(t,e){t.squareTo(e),this.reduce(e)};var Rt=[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997],It=(1<<26)/Rt[Rt.length-1];\n/*! (c) Tom Wu | http://www-cs-students.stanford.edu/~tjw/jsbn/\n */\nfunction Dt(){this.i=0,this.j=0,this.S=new Array}F.prototype.chunkSize=function Lt(t){return Math.floor(Math.LN2*this.DB/Math.log(t))},F.prototype.toRadix=function Nt(t){if(null==t&&(t=10),0==this.signum()||t<2||t>36)return\"0\";var e=this.chunkSize(t),r=Math.pow(t,e),n=D(r),i=E(),o=E(),s=\"\";for(this.divRemTo(n,i,o);i.signum()>0;)s=(r+o.intValue()).toString(t).substr(1)+s,i.divRemTo(n,i,o);return o.intValue().toString(t)+s},F.prototype.fromRadix=function Ut(t,e){this.fromInt(0),null==e&&(e=10);for(var r=this.chunkSize(e),n=Math.pow(e,r),i=!1,o=0,s=0,a=0;a=r&&(this.dMultiply(n),this.dAddOffset(s,0),o=0,s=0))}o>0&&(this.dMultiply(Math.pow(e,o)),this.dAddOffset(s,0)),i&&F.ZERO.subTo(this,this)},F.prototype.fromNumber=function Bt(t,e,r){if(\"number\"==typeof e)if(t<2)this.fromInt(1);else for(this.fromNumber(t,r),this.testBit(t-1)||this.bitwiseTo(F.ONE.shiftLeft(t-1),O,this),this.isEven()&&this.dAddOffset(1,0);!this.isProbablePrime(e);)this.dAddOffset(2,0),this.bitLength()>t&&this.subTo(F.ONE.shiftLeft(t-1),this);else{var n=new Array,i=7&t;n.length=1+(t>>3),e.nextBytes(n),i>0?n[0]&=(1<>=this.DB;if(t.t>=this.DB;n+=this.s}else{for(n+=this.s;r>=this.DB;n+=t.s}e.s=n<0?-1:0,n>0?e[r++]=n:n<-1&&(e[r++]=this.DV+n),e.t=r,e.clamp()},F.prototype.dMultiply=function Ht(t){this[this.t]=this.am(0,t-1,this,0,0,this.t),++this.t,this.clamp()},F.prototype.dAddOffset=function Vt(t,e){if(0!=t){for(;this.t<=e;)this[this.t++]=0;for(this[e]+=t;this[e]>=this.DV;)this[e]-=this.DV,++e>=this.t&&(this[this.t++]=0),++this[e]}},F.prototype.multiplyLowerTo=function Kt(t,e,r){var n,i=Math.min(this.t+t.t,e);for(r.s=0,r.t=i;i>0;)r[--i]=0;for(n=r.t-this.t;i=0;)r[n]=0;for(n=Math.max(e-this.t,0);n0)if(0==e)r=this[0]%t;else for(var n=this.t-1;n>=0;--n)r=(e*r+this[n])%t;return r},F.prototype.millerRabin=function Wt(t){var e=this.subtract(F.ONE),r=e.getLowestSetBit();if(r<=0)return!1;var n=e.shiftRight(r);(t=t+1>>1)>Rt.length&&(t=Rt.length);for(var i=E(),o=0;o>24},F.prototype.shortValue=function Xt(){return 0==this.t?this.s:this[0]<<16>>16},F.prototype.signum=function $t(){return this.s<0?-1:this.t<=0||1==this.t&&this[0]<=0?0:1},F.prototype.toByteArray=function Qt(){var t=this.t,e=new Array;e[0]=this.s;var r,n=this.DB-t*this.DB%8,i=0;if(t-- >0)for(n>n)!=(this.s&this.DM)>>n&&(e[i++]=r|this.s<=0;)n<8?(r=(this[t]&(1<>(n+=this.DB-8)):(r=this[t]>>(n-=8)&255,n<=0&&(n+=this.DB,--t)),0!=(128&r)&&(r|=-256),0==i&&(128&this.s)!=(128&r)&&++i,(i>0||r!=this.s)&&(e[i++]=r);return e},F.prototype.equals=function Zt(t){return 0==this.compareTo(t)},F.prototype.min=function te(t){return this.compareTo(t)<0?this:t},F.prototype.max=function ee(t){return this.compareTo(t)>0?this:t},F.prototype.and=function re(t){var e=E();return this.bitwiseTo(t,B,e),e},F.prototype.or=function ne(t){var e=E();return this.bitwiseTo(t,O,e),e},F.prototype.xor=function ie(t){var e=E();return this.bitwiseTo(t,j,e),e},F.prototype.andNot=function oe(t){var e=E();return this.bitwiseTo(t,M,e),e},F.prototype.not=function se(){for(var t=E(),e=0;e=this.t?0!=this.s:0!=(this[e]&1<1){var h=E();for(n.sqrTo(s[1],h);a<=c;)s[a]=E(),n.mulTo(h,s[a-2],s[a]),a+=2}var l,f,g=t.t-1,d=!0,p=E();for(i=L(t[g])-1;g>=0;){for(i>=u?l=t[g]>>i-u&c:(l=(t[g]&(1<0&&(l|=t[g-1]>>this.DB+i-u)),a=r;0==(1&l);)l>>=1,--a;if((i-=a)<0&&(i+=this.DB,--g),d)s[l].copyTo(o),d=!1;else{for(;a>1;)n.sqrTo(o,p),n.sqrTo(p,o),a-=2;a>0?n.sqrTo(o,p):(f=o,o=p,p=f),n.mulTo(p,s[l],o)}for(;g>=0&&0==(t[g]&1<=0?(r.subTo(n,r),e&&i.subTo(s,i),o.subTo(a,o)):(n.subTo(r,n),e&&s.subTo(i,s),a.subTo(o,a))}return 0!=n.compareTo(F.ONE)?F.ZERO:a.compareTo(t)>=0?a.subtract(t):a.signum()<0?(a.addTo(t,a),a.signum()<0?a.add(t):a):a},F.prototype.pow=function Fe(t){return this.exp(t,new K)},F.prototype.gcd=function Ee(t){var e=this.s<0?this.negate():this.clone(),r=t.s<0?t.negate():t.clone();if(e.compareTo(r)<0){var n=e;e=r,r=n}var i=e.getLowestSetBit(),o=r.getLowestSetBit();if(o<0)return e;for(i0&&(e.rShiftTo(o,e),r.rShiftTo(o,r));e.signum()>0;)(i=e.getLowestSetBit())>0&&e.rShiftTo(i,e),(i=r.getLowestSetBit())>0&&r.rShiftTo(i,r),e.compareTo(r)>=0?(e.subTo(r,e),e.rShiftTo(1,e)):(r.subTo(e,r),r.rShiftTo(1,r));return o>0&&r.lShiftTo(o,r),r},F.prototype.isProbablePrime=function xe(t){var e,r=this.abs();if(1==r.t&&r[0]<=Rt[Rt.length-1]){for(e=0;e>8&255,Te[Re++]^=e>>16&255,Te[Re++]^=e>>24&255,Re>=256&&(Re-=256)}((new Date).getTime())}if(null==Te){var De;if(Te=new Array,Re=0,void 0!==i&&(void 0!==i.crypto||void 0!==i.msCrypto)){var Le=i.crypto||i.msCrypto;if(Le.getRandomValues){var Ne=new Uint8Array(32);for(Le.getRandomValues(Ne),De=0;De<32;++De)Te[Re++]=Ne[De]}else if(\"Netscape\"==n.appName&&n.appVersion<\"5\"){var Ue=i.crypto.random(32);for(De=0;De>>8,Te[Re++]=255&De;Re=0,Ie()}function Be(){if(null==Ce){for(Ie(),(Ce=function t(){return new Dt}()).init(Te),Re=0;Re>24,(16711680&i)>>16,(65280&i)>>8,255&i]))),i+=1;return n}function He(){this.n=null,this.e=0,this.d=null,this.p=null,this.q=null,this.dmp1=null,this.dmq1=null,this.coeff=null}\n/*! (c) Tom Wu | http://www-cs-students.stanford.edu/~tjw/jsbn/\n */\nfunction Ve(t,e){this.x=e,this.q=t}function Ke(t,e,r,n){this.curve=t,this.x=e,this.y=r,this.z=null==n?F.ONE:n,this.zinv=null}function qe(t,e,r){this.q=t,this.a=this.fromBigInteger(e),this.b=this.fromBigInteger(r),this.infinity=new Ke(this,null,null)}Oe.prototype.nextBytes=function Je(t){var e;for(e=0;e0&&e.length>0))throw\"Invalid RSA public key\";this.n=je(t,16),this.e=parseInt(e,16)}},He.prototype.encrypt=function Ye(t){var e=function r(t,e){if(e=0&&e>0;){var i=t.charCodeAt(n--);i<128?r[--e]=i:i>127&&i<2048?(r[--e]=63&i|128,r[--e]=i>>6|192):(r[--e]=63&i|128,r[--e]=i>>6&63|128,r[--e]=i>>12|224)}r[--e]=0;for(var o=new Oe,s=new Array;e>2;){for(s[0]=0;0==s[0];)o.nextBytes(s);r[--e]=s[0]}return r[--e]=2,r[--e]=0,new F(r)}(t,this.n.bitLength()+7>>3);if(null==e)return null;var n=this.doPublic(e);if(null==n)return null;var i=n.toString(16);return 0==(1&i.length)?i:\"0\"+i},He.prototype.encryptOAEP=function Ge(t,e,r){var n=function i(t,e,r,n){var i=br.crypto.MessageDigest,o=br.crypto.Util,s=null;if(r||(r=\"sha1\"),\"string\"==typeof r&&(s=i.getCanonicalAlgName(r),n=i.getHashLength(s),r=function t(e){return Nr(o.hashHex(Ur(e),s))}),t.length+2*n+2>e)throw\"Message too long for RSA\";var a,u=\"\";for(a=0;a>3,e,r);if(null==n)return null;var o=this.doPublic(n);if(null==o)return null;var s=o.toString(16);return 0==(1&s.length)?s:\"0\"+s},He.prototype.type=\"RSA\",Ve.prototype.equals=function Xe(t){return t==this||this.q.equals(t.q)&&this.x.equals(t.x)},Ve.prototype.toBigInteger=function $e(){return this.x},Ve.prototype.negate=function Qe(){return new Ve(this.q,this.x.negate().mod(this.q))},Ve.prototype.add=function Ze(t){return new Ve(this.q,this.x.add(t.toBigInteger()).mod(this.q))},Ve.prototype.subtract=function tr(t){return new Ve(this.q,this.x.subtract(t.toBigInteger()).mod(this.q))},Ve.prototype.multiply=function er(t){return new Ve(this.q,this.x.multiply(t.toBigInteger()).mod(this.q))},Ve.prototype.square=function rr(){return new Ve(this.q,this.x.square().mod(this.q))},Ve.prototype.divide=function nr(t){return new Ve(this.q,this.x.multiply(t.toBigInteger().modInverse(this.q)).mod(this.q))},Ke.prototype.getX=function ir(){return null==this.zinv&&(this.zinv=this.z.modInverse(this.curve.q)),this.curve.fromBigInteger(this.x.toBigInteger().multiply(this.zinv).mod(this.curve.q))},Ke.prototype.getY=function or(){return null==this.zinv&&(this.zinv=this.z.modInverse(this.curve.q)),this.curve.fromBigInteger(this.y.toBigInteger().multiply(this.zinv).mod(this.curve.q))},Ke.prototype.equals=function sr(t){return t==this||(this.isInfinity()?t.isInfinity():t.isInfinity()?this.isInfinity():!!t.y.toBigInteger().multiply(this.z).subtract(this.y.toBigInteger().multiply(t.z)).mod(this.curve.q).equals(F.ZERO)&&t.x.toBigInteger().multiply(this.z).subtract(this.x.toBigInteger().multiply(t.z)).mod(this.curve.q).equals(F.ZERO))},Ke.prototype.isInfinity=function ar(){return null==this.x&&null==this.y||this.z.equals(F.ZERO)&&!this.y.toBigInteger().equals(F.ZERO)},Ke.prototype.negate=function ur(){return new Ke(this.curve,this.x,this.y.negate(),this.z)},Ke.prototype.add=function cr(t){if(this.isInfinity())return t;if(t.isInfinity())return this;var e=t.y.toBigInteger().multiply(this.z).subtract(this.y.toBigInteger().multiply(t.z)).mod(this.curve.q),r=t.x.toBigInteger().multiply(this.z).subtract(this.x.toBigInteger().multiply(t.z)).mod(this.curve.q);if(F.ZERO.equals(r))return F.ZERO.equals(e)?this.twice():this.curve.getInfinity();var n=new F(\"3\"),i=this.x.toBigInteger(),o=this.y.toBigInteger(),s=(t.x.toBigInteger(),t.y.toBigInteger(),r.square()),a=s.multiply(r),u=i.multiply(s),c=e.square().multiply(this.z),h=c.subtract(u.shiftLeft(1)).multiply(t.z).subtract(a).multiply(r).mod(this.curve.q),l=u.multiply(n).multiply(e).subtract(o.multiply(a)).subtract(c.multiply(e)).multiply(t.z).add(e.multiply(a)).mod(this.curve.q),f=a.multiply(this.z).multiply(t.z).mod(this.curve.q);return new Ke(this.curve,this.curve.fromBigInteger(h),this.curve.fromBigInteger(l),f)},Ke.prototype.twice=function hr(){if(this.isInfinity())return this;if(0==this.y.toBigInteger().signum())return this.curve.getInfinity();var t=new F(\"3\"),e=this.x.toBigInteger(),r=this.y.toBigInteger(),n=r.multiply(this.z),i=n.multiply(r).mod(this.curve.q),o=this.curve.a.toBigInteger(),s=e.square().multiply(t);F.ZERO.equals(o)||(s=s.add(this.z.square().multiply(o)));var a=(s=s.mod(this.curve.q)).square().subtract(e.shiftLeft(3).multiply(i)).shiftLeft(1).multiply(n).mod(this.curve.q),u=s.multiply(t).multiply(e).subtract(i.shiftLeft(1)).shiftLeft(2).multiply(i).subtract(s.square().multiply(s)).mod(this.curve.q),c=n.square().multiply(n).shiftLeft(3).mod(this.curve.q);return new Ke(this.curve,this.curve.fromBigInteger(a),this.curve.fromBigInteger(u),c)},Ke.prototype.multiply=function lr(t){if(this.isInfinity())return this;if(0==t.signum())return this.curve.getInfinity();var e,r=t,n=r.multiply(new F(\"3\")),i=this.negate(),o=this,s=this.curve.q.subtract(t),a=s.multiply(new F(\"3\")),u=new Ke(this.curve,this.x,this.y),c=u.negate();for(e=n.bitLength()-2;e>0;--e){o=o.twice();var h=n.testBit(e);h!=r.testBit(e)&&(o=o.add(h?this:i))}for(e=a.bitLength()-2;e>0;--e){u=u.twice();var l=a.testBit(e);l!=s.testBit(e)&&(u=u.add(l?u:c))}return o},Ke.prototype.multiplyTwo=function fr(t,e,r){var n;n=t.bitLength()>r.bitLength()?t.bitLength()-1:r.bitLength()-1;for(var i=this.curve.getInfinity(),o=this.add(e);n>=0;)i=i.twice(),t.testBit(n)?i=r.testBit(n)?i.add(o):i.add(this):r.testBit(n)&&(i=i.add(e)),--n;return i},qe.prototype.getQ=function gr(){return this.q},qe.prototype.getA=function dr(){return this.a},qe.prototype.getB=function pr(){return this.b},qe.prototype.equals=function vr(t){return t==this||this.q.equals(t.q)&&this.a.equals(t.a)&&this.b.equals(t.b)},qe.prototype.getInfinity=function yr(){return this.infinity},qe.prototype.fromBigInteger=function mr(t){return new Ve(this.q,t)},qe.prototype.decodePointHex=function _r(t){switch(parseInt(t.substr(0,2),16)){case 0:return this.infinity;case 2:case 3:return null;case 4:case 6:case 7:var e=(t.length-2)/2,r=t.substr(2,e),n=t.substr(e+2,e);return new Ke(this,this.fromBigInteger(new F(r,16)),this.fromBigInteger(new F(n,16)));default:return null}},\n/*! (c) Stefan Thomas | https://github.com/bitcoinjs/bitcoinjs-lib\n */\nVe.prototype.getByteLength=function(){return Math.floor((this.toBigInteger().bitLength()+7)/8)},Ke.prototype.getEncoded=function(t){var e=function t(e,r){var n=e.toByteArrayUnsigned();if(rn.length;)n.unshift(0);return n},r=this.getX().toBigInteger(),n=this.getY().toBigInteger(),i=e(r,32);return t?n.isEven()?i.unshift(2):i.unshift(3):(i.unshift(4),i=i.concat(e(n,32))),i},Ke.decodeFrom=function(t,e){e[0];var r=e.length-1,n=e.slice(1,1+r/2),i=e.slice(1+r/2,1+r);n.unshift(0),i.unshift(0);var o=new F(n),s=new F(i);return new Ke(t,t.fromBigInteger(o),t.fromBigInteger(s))},Ke.decodeFromHex=function(t,e){e.substr(0,2);var r=e.length-2,n=e.substr(2,r/2),i=e.substr(2+r/2,r/2),o=new F(n,16),s=new F(i,16);return new Ke(t,t.fromBigInteger(o),t.fromBigInteger(s))},Ke.prototype.add2D=function(t){if(this.isInfinity())return t;if(t.isInfinity())return this;if(this.x.equals(t.x))return this.y.equals(t.y)?this.twice():this.curve.getInfinity();var e=t.x.subtract(this.x),r=t.y.subtract(this.y).divide(e),n=r.square().subtract(this.x).subtract(t.x),i=r.multiply(this.x.subtract(n)).subtract(this.y);return new Ke(this.curve,n,i)},Ke.prototype.twice2D=function(){if(this.isInfinity())return this;if(0==this.y.toBigInteger().signum())return this.curve.getInfinity();var t=this.curve.fromBigInteger(F.valueOf(2)),e=this.curve.fromBigInteger(F.valueOf(3)),r=this.x.square().multiply(e).add(this.curve.a).divide(this.y.multiply(t)),n=r.square().subtract(this.x.multiply(t)),i=r.multiply(this.x.subtract(n)).subtract(this.y);return new Ke(this.curve,n,i)},Ke.prototype.multiply2D=function(t){if(this.isInfinity())return this;if(0==t.signum())return this.curve.getInfinity();var e,r=t,n=r.multiply(new F(\"3\")),i=this.negate(),o=this;for(e=n.bitLength()-2;e>0;--e){o=o.twice();var s=n.testBit(e);s!=r.testBit(e)&&(o=o.add2D(s?this:i))}return o},Ke.prototype.isOnCurve=function(){var t=this.getX().toBigInteger(),e=this.getY().toBigInteger(),r=this.curve.getA().toBigInteger(),n=this.curve.getB().toBigInteger(),i=this.curve.getQ(),o=e.multiply(e).mod(i),s=t.multiply(t).multiply(t).add(r.multiply(t)).add(n).mod(i);return o.equals(s)},Ke.prototype.toString=function(){return\"(\"+this.getX().toBigInteger().toString()+\",\"+this.getY().toBigInteger().toString()+\")\"},Ke.prototype.validate=function(){var t=this.curve.getQ();if(this.isInfinity())throw new Error(\"Point is at infinity.\");var e=this.getX().toBigInteger(),r=this.getY().toBigInteger();if(e.compareTo(F.ONE)<0||e.compareTo(t.subtract(F.ONE))>0)throw new Error(\"x coordinate out of bounds\");if(r.compareTo(F.ONE)<0||r.compareTo(t.subtract(F.ONE))>0)throw new Error(\"y coordinate out of bounds\");if(!this.isOnCurve())throw new Error(\"Point is not on the curve.\");if(this.multiply(t).isInfinity())throw new Error(\"Point is not a scalar multiple of G.\");return!0};\n/*! Mike Samuel (c) 2009 | code.google.com/p/json-sans-eval\n */\nvar Sr=function(){var t=new RegExp('(?:false|true|null|[\\\\{\\\\}\\\\[\\\\]]|(?:-?\\\\b(?:0|[1-9][0-9]*)(?:\\\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?\\\\b)|(?:\"(?:[^\\\\0-\\\\x08\\\\x0a-\\\\x1f\"\\\\\\\\]|\\\\\\\\(?:[\"/\\\\\\\\bfnrt]|u[0-9A-Fa-f]{4}))*\"))',\"g\"),e=new RegExp(\"\\\\\\\\(?:([^u])|u(.{4}))\",\"g\"),n={'\"':'\"',\"/\":\"/\",\"\\\\\":\"\\\\\",b:\"\\b\",f:\"\\f\",n:\"\\n\",r:\"\\r\",t:\"\\t\"};function i(t,e,r){return e?n[e]:String.fromCharCode(parseInt(r,16))}var o=new String(\"\"),s=Object.hasOwnProperty;return function(n,a){var u,c,h=n.match(t),l=h[0],f=!1;\"{\"===l?u={}:\"[\"===l?u=[]:(u=[],f=!0);for(var g=[u],d=1-f,p=h.length;d=0;)delete i[o[h]]}return a.call(e,n,i)}({\"\":u},\"\")}return u}}();void 0!==br&&br||(e.KJUR=br={}),void 0!==br.asn1&&br.asn1||(br.asn1={}),br.asn1.ASN1Util=new function(){this.integerToByteHex=function(t){var e=t.toString(16);return e.length%2==1&&(e=\"0\"+e),e},this.bigIntToMinTwosComplementsHex=function(t){var e=t.toString(16);if(\"-\"!=e.substr(0,1))e.length%2==1?e=\"0\"+e:e.match(/^[0-7]/)||(e=\"00\"+e);else{var r=e.substr(1).length;r%2==1?r+=1:e.match(/^[0-7]/)||(r+=2);for(var n=\"\",i=0;i15)throw\"ASN.1 length too long to represent by 8x: n = \"+t.toString(16);return(128+r).toString(16)+e},this.getEncodedHex=function(){return(null==this.hTLV||this.isModified)&&(this.hV=this.getFreshValueHex(),this.hL=this.getLengthHexFromValue(),this.hTLV=this.hT+this.hL+this.hV,this.isModified=!1),this.hTLV},this.getValueHex=function(){return this.getEncodedHex(),this.hV},this.getFreshValueHex=function(){return\"\"},this.setByParam=function(t){this.params=t},null!=t&&null!=t.tlv&&(this.hTLV=t.tlv,this.isModified=!1)},br.asn1.DERAbstractString=function(t){br.asn1.DERAbstractString.superclass.constructor.call(this);this.getString=function(){return this.s},this.setString=function(t){this.hTLV=null,this.isModified=!0,this.s=t,this.hV=Dr(this.s).toLowerCase()},this.setStringHex=function(t){this.hTLV=null,this.isModified=!0,this.s=null,this.hV=t},this.getFreshValueHex=function(){return this.hV},void 0!==t&&(\"string\"==typeof t?this.setString(t):void 0!==t.str?this.setString(t.str):void 0!==t.hex&&this.setStringHex(t.hex))},o.lang.extend(br.asn1.DERAbstractString,br.asn1.ASN1Object),br.asn1.DERAbstractTime=function(t){br.asn1.DERAbstractTime.superclass.constructor.call(this);this.localDateToUTC=function(t){var e=t.getTime()+6e4*t.getTimezoneOffset();return new Date(e)},this.formatDate=function(t,e,r){var n=this.zeroPadding,i=this.localDateToUTC(t),o=String(i.getFullYear());\"utc\"==e&&(o=o.substr(2,2));var s=o+n(String(i.getMonth()+1),2)+n(String(i.getDate()),2)+n(String(i.getHours()),2)+n(String(i.getMinutes()),2)+n(String(i.getSeconds()),2);if(!0===r){var a=i.getMilliseconds();if(0!=a){var u=n(String(a),3);s=s+\".\"+(u=u.replace(/[0]+$/,\"\"))}}return s+\"Z\"},this.zeroPadding=function(t,e){return t.length>=e?t:new Array(e-t.length+1).join(\"0\")+t},this.getString=function(){return this.s},this.setString=function(t){this.hTLV=null,this.isModified=!0,this.s=t,this.hV=Pr(t)},this.setByDateValue=function(t,e,r,n,i,o){var s=new Date(Date.UTC(t,e-1,r,n,i,o,0));this.setByDate(s)},this.getFreshValueHex=function(){return this.hV}},o.lang.extend(br.asn1.DERAbstractTime,br.asn1.ASN1Object),br.asn1.DERAbstractStructured=function(t){br.asn1.DERAbstractString.superclass.constructor.call(this);this.setByASN1ObjectArray=function(t){this.hTLV=null,this.isModified=!0,this.asn1Array=t},this.appendASN1Object=function(t){this.hTLV=null,this.isModified=!0,this.asn1Array.push(t)},this.asn1Array=new Array,void 0!==t&&void 0!==t.array&&(this.asn1Array=t.array)},o.lang.extend(br.asn1.DERAbstractStructured,br.asn1.ASN1Object),br.asn1.DERBoolean=function(t){br.asn1.DERBoolean.superclass.constructor.call(this),this.hT=\"01\",this.hTLV=0==t?\"010100\":\"0101ff\"},o.lang.extend(br.asn1.DERBoolean,br.asn1.ASN1Object),br.asn1.DERInteger=function(t){br.asn1.DERInteger.superclass.constructor.call(this),this.hT=\"02\",this.setByBigInteger=function(t){this.hTLV=null,this.isModified=!0,this.hV=br.asn1.ASN1Util.bigIntToMinTwosComplementsHex(t)},this.setByInteger=function(t){var e=new F(String(t),10);this.setByBigInteger(e)},this.setValueHex=function(t){this.hV=t},this.getFreshValueHex=function(){return this.hV},void 0!==t&&(void 0!==t.bigint?this.setByBigInteger(t.bigint):void 0!==t.int?this.setByInteger(t.int):\"number\"==typeof t?this.setByInteger(t):void 0!==t.hex&&this.setValueHex(t.hex))},o.lang.extend(br.asn1.DERInteger,br.asn1.ASN1Object),br.asn1.DERBitString=function(t){if(void 0!==t&&void 0!==t.obj){var e=br.asn1.ASN1Util.newObject(t.obj);t.hex=\"00\"+e.getEncodedHex()}br.asn1.DERBitString.superclass.constructor.call(this),this.hT=\"03\",this.setHexValueIncludingUnusedBits=function(t){this.hTLV=null,this.isModified=!0,this.hV=t},this.setUnusedBitsAndHexValue=function(t,e){if(t<0||7i.length&&(i=n[r]);return(t=t.replace(i,\"::\")).slice(1,-1)}function Yr(t){var e=\"malformed hex value\";if(!t.match(/^([0-9A-Fa-f][0-9A-Fa-f]){1,}$/))throw e;if(8!=t.length)return 32==t.length?zr(t):t;try{return parseInt(t.substr(0,2),16)+\".\"+parseInt(t.substr(2,2),16)+\".\"+parseInt(t.substr(4,2),16)+\".\"+parseInt(t.substr(6,2),16)}catch(t){throw e}}function Gr(t){for(var e=encodeURIComponent(t),r=\"\",n=0;n\"7\"?\"00\"+t:t}Er.getLblen=function(t,e){if(\"8\"!=t.substr(e+2,1))return 1;var r=parseInt(t.substr(e+3,1));return 0==r?-1:0=n)break}return s},Er.getNthChildIdx=function(t,e,r){return Er.getChildIdx(t,e)[r]},Er.getIdxbyList=function(t,e,r,n){var i,o,s=Er;return 0==r.length?void 0!==n&&t.substr(e,2)!==n?-1:e:(i=r.shift())>=(o=s.getChildIdx(t,e)).length?-1:s.getIdxbyList(t,o[i],r,n)},Er.getIdxbyListEx=function(t,e,r,n){var i,o,s=Er;if(0==r.length)return void 0!==n&&t.substr(e,2)!==n?-1:e;i=r.shift(),o=s.getChildIdx(t,e);for(var a=0,u=0;u=t.length?null:i.getTLV(t,o)},Er.getTLVbyListEx=function(t,e,r,n){var i=Er,o=i.getIdxbyListEx(t,e,r,n);return-1==o?null:i.getTLV(t,o)},Er.getVbyList=function(t,e,r,n,i){var o,s,a=Er;return-1==(o=a.getIdxbyList(t,e,r,n))||o>=t.length?null:(s=a.getV(t,o),!0===i&&(s=s.substr(2)),s)},Er.getVbyListEx=function(t,e,r,n,i){var o,s,a=Er;return-1==(o=a.getIdxbyListEx(t,e,r,n))?null:(s=a.getV(t,o),\"03\"==t.substr(o,2)&&!1!==i&&(s=s.substr(2)),s)},Er.getInt=function(t,e,r){null==r&&(r=-1);try{var n=t.substr(e,2);if(\"02\"!=n&&\"03\"!=n)return r;var i=Er.getV(t,e);return\"02\"==n?parseInt(i,16):function o(t){try{var e=t.substr(0,2);if(\"00\"==e)return parseInt(t.substr(2),16);var r=parseInt(e,16),n=t.substr(2),i=parseInt(n,16).toString(2);return\"0\"==i&&(i=\"00000000\"),i=i.slice(0,0-r),parseInt(i,2)}catch(t){return-1}}(i)}catch(t){return r}},Er.getOID=function(t,e,r){null==r&&(r=null);try{return\"06\"!=t.substr(e,2)?r:function n(t){if(!Xr(t))return null;try{var e=[],r=t.substr(0,2),n=parseInt(r,16);e[0]=new String(Math.floor(n/40)),e[1]=new String(n%40);for(var i=t.substr(2),o=[],s=0;s0&&(c=c+\".\"+a.join(\".\")),c}catch(t){return null}}(Er.getV(t,e))}catch(t){return r}},Er.getOIDName=function(t,e,r){null==r&&(r=null);try{var n=Er.getOID(t,e,r);if(n==r)return r;var i=br.asn1.x509.OID.oid2name(n);return\"\"==i?n:i}catch(t){return r}},Er.getString=function(t,e,r){null==r&&(r=null);try{return Nr(Er.getV(t,e))}catch(t){return r}},Er.hextooidstr=function(t){var e=function t(e,r){return e.length>=r?e:new Array(r-e.length+1).join(\"0\")+e},r=[],n=t.substr(0,2),i=parseInt(n,16);r[0]=new String(Math.floor(i/40)),r[1]=new String(i%40);for(var o=t.substr(2),s=[],a=0;a0&&(h=h+\".\"+u.join(\".\")),h},Er.dump=function(t,e,r,n){var i=Er,o=i.getV,s=i.dump,a=i.getChildIdx,u=t;t instanceof br.asn1.ASN1Object&&(u=t.getEncodedHex());var c=function t(e,r){return e.length<=2*r?e:e.substr(0,r)+\"..(total \"+e.length/2+\"bytes)..\"+e.substr(e.length-r,r)};void 0===e&&(e={ommit_long_octet:32}),void 0===r&&(r=0),void 0===n&&(n=\"\");var h,l=e.ommit_long_octet;if(\"01\"==(h=u.substr(r,2)))return\"00\"==(f=o(u,r))?n+\"BOOLEAN FALSE\\n\":n+\"BOOLEAN TRUE\\n\";if(\"02\"==h)return n+\"INTEGER \"+c(f=o(u,r),l)+\"\\n\";if(\"03\"==h){var f=o(u,r);if(i.isASN1HEX(f.substr(2))){var g=n+\"BITSTRING, encapsulates\\n\";return g+=s(f.substr(2),e,0,n+\" \")}return n+\"BITSTRING \"+c(f,l)+\"\\n\"}if(\"04\"==h){f=o(u,r);if(i.isASN1HEX(f)){g=n+\"OCTETSTRING, encapsulates\\n\";return g+=s(f,e,0,n+\" \")}return n+\"OCTETSTRING \"+c(f,l)+\"\\n\"}if(\"05\"==h)return n+\"NULL\\n\";if(\"06\"==h){var d=o(u,r),p=br.asn1.ASN1Util.oidHexToInt(d),v=br.asn1.x509.OID.oid2name(p),y=p.replace(/\\./g,\" \");return\"\"!=v?n+\"ObjectIdentifier \"+v+\" (\"+y+\")\\n\":n+\"ObjectIdentifier (\"+y+\")\\n\"}if(\"0a\"==h)return n+\"ENUMERATED \"+parseInt(o(u,r))+\"\\n\";if(\"0c\"==h)return n+\"UTF8String '\"+Lr(o(u,r))+\"'\\n\";if(\"13\"==h)return n+\"PrintableString '\"+Lr(o(u,r))+\"'\\n\";if(\"14\"==h)return n+\"TeletexString '\"+Lr(o(u,r))+\"'\\n\";if(\"16\"==h)return n+\"IA5String '\"+Lr(o(u,r))+\"'\\n\";if(\"17\"==h)return n+\"UTCTime \"+Lr(o(u,r))+\"\\n\";if(\"18\"==h)return n+\"GeneralizedTime \"+Lr(o(u,r))+\"\\n\";if(\"1a\"==h)return n+\"VisualString '\"+Lr(o(u,r))+\"'\\n\";if(\"1e\"==h)return n+\"BMPString '\"+Lr(o(u,r))+\"'\\n\";if(\"30\"==h){if(\"3000\"==u.substr(r,4))return n+\"SEQUENCE {}\\n\";g=n+\"SEQUENCE\\n\";var m=e;if((2==(b=a(u,r)).length||3==b.length)&&\"06\"==u.substr(b[0],2)&&\"04\"==u.substr(b[b.length-1],2)){v=i.oidname(o(u,b[0]));var _=JSON.parse(JSON.stringify(e));_.x509ExtName=v,m=_}for(var S=0;S31)&&(128==(192&r)&&(31&r)==n))}catch(t){return!1}},Er.isASN1HEX=function(t){var e=Er;if(t.length%2==1)return!1;var r=e.getVblen(t,0),n=t.substr(0,2),i=e.getL(t,0);return t.length-n.length-i.length==2*r},Er.checkStrictDER=function(t,e,r,n,i){var o=Er;if(void 0===r){if(\"string\"!=typeof t)throw new Error(\"not hex string\");if(t=t.toLowerCase(),!br.lang.String.isHex(t))throw new Error(\"not hex string\");r=t.length,i=(n=t.length/2)<128?1:Math.ceil(n.toString(16))+1}if(o.getL(t,e).length>2*i)throw new Error(\"L of TLV too long: idx=\"+e);var s=o.getVblen(t,e);if(s>n)throw new Error(\"value of L too long than hex: idx=\"+e);var a=o.getTLV(t,e),u=a.length-2-o.getL(t,e).length;if(u!==2*s)throw new Error(\"V string length and L's value not the same:\"+u+\"/\"+2*s);if(0===e&&t.length!=a.length)throw new Error(\"total length and TLV length unmatch:\"+t.length+\"!=\"+a.length);var c=t.substr(e,2);if(\"02\"===c){var h=o.getVidx(t,e);if(\"00\"==t.substr(h,2)&&t.charCodeAt(h+2)<56)throw new Error(\"not least zeros for DER INTEGER\")}if(32&parseInt(c,16)){for(var l=o.getVblen(t,e),f=0,g=o.getChildIdx(t,e),d=0;d=r?e:new Array(r-e.length+1).join(n)+e};void 0!==br&&br||(e.KJUR=br={}),void 0!==br.crypto&&br.crypto||(br.crypto={}),br.crypto.Util=new function(){this.DIGESTINFOHEAD={sha1:\"3021300906052b0e03021a05000414\",sha224:\"302d300d06096086480165030402040500041c\",sha256:\"3031300d060960864801650304020105000420\",sha384:\"3041300d060960864801650304020205000430\",sha512:\"3051300d060960864801650304020305000440\",md2:\"3020300c06082a864886f70d020205000410\",md5:\"3020300c06082a864886f70d020505000410\",ripemd160:\"3021300906052b2403020105000414\"},this.DEFAULTPROVIDER={md5:\"cryptojs\",sha1:\"cryptojs\",sha224:\"cryptojs\",sha256:\"cryptojs\",sha384:\"cryptojs\",sha512:\"cryptojs\",ripemd160:\"cryptojs\",hmacmd5:\"cryptojs\",hmacsha1:\"cryptojs\",hmacsha224:\"cryptojs\",hmacsha256:\"cryptojs\",hmacsha384:\"cryptojs\",hmacsha512:\"cryptojs\",hmacripemd160:\"cryptojs\",MD5withRSA:\"cryptojs/jsrsa\",SHA1withRSA:\"cryptojs/jsrsa\",SHA224withRSA:\"cryptojs/jsrsa\",SHA256withRSA:\"cryptojs/jsrsa\",SHA384withRSA:\"cryptojs/jsrsa\",SHA512withRSA:\"cryptojs/jsrsa\",RIPEMD160withRSA:\"cryptojs/jsrsa\",MD5withECDSA:\"cryptojs/jsrsa\",SHA1withECDSA:\"cryptojs/jsrsa\",SHA224withECDSA:\"cryptojs/jsrsa\",SHA256withECDSA:\"cryptojs/jsrsa\",SHA384withECDSA:\"cryptojs/jsrsa\",SHA512withECDSA:\"cryptojs/jsrsa\",RIPEMD160withECDSA:\"cryptojs/jsrsa\",SHA1withDSA:\"cryptojs/jsrsa\",SHA224withDSA:\"cryptojs/jsrsa\",SHA256withDSA:\"cryptojs/jsrsa\",MD5withRSAandMGF1:\"cryptojs/jsrsa\",SHAwithRSAandMGF1:\"cryptojs/jsrsa\",SHA1withRSAandMGF1:\"cryptojs/jsrsa\",SHA224withRSAandMGF1:\"cryptojs/jsrsa\",SHA256withRSAandMGF1:\"cryptojs/jsrsa\",SHA384withRSAandMGF1:\"cryptojs/jsrsa\",SHA512withRSAandMGF1:\"cryptojs/jsrsa\",RIPEMD160withRSAandMGF1:\"cryptojs/jsrsa\"},this.CRYPTOJSMESSAGEDIGESTNAME={md5:y.algo.MD5,sha1:y.algo.SHA1,sha224:y.algo.SHA224,sha256:y.algo.SHA256,sha384:y.algo.SHA384,sha512:y.algo.SHA512,ripemd160:y.algo.RIPEMD160},this.getDigestInfoHex=function(t,e){if(void 0===this.DIGESTINFOHEAD[e])throw\"alg not supported in Util.DIGESTINFOHEAD: \"+e;return this.DIGESTINFOHEAD[e]+t},this.getPaddedDigestInfoHex=function(t,e,r){var n=this.getDigestInfoHex(t,e),i=r/4;if(n.length+22>i)throw\"key is too short for SigAlg: keylen=\"+r+\",\"+e;for(var o=\"0001\",s=\"00\"+n,a=\"\",u=i-o.length-s.length,c=0;c=0)return!1;if(r.compareTo(n.ONE)<0||r.compareTo(o)>=0)return!1;var a=r.modInverse(o),u=t.multiply(a).mod(o),c=e.multiply(a).mod(o);return s.multiply(u).add(i.multiply(c)).getX().toBigInteger().mod(o).equals(e)},this.serializeSig=function(t,e){var r=t.toByteArraySigned(),n=e.toByteArraySigned(),i=[];return i.push(2),i.push(r.length),(i=i.concat(r)).push(2),i.push(n.length),(i=i.concat(n)).unshift(i.length),i.unshift(48),i},this.parseSig=function(t){var e;if(48!=t[0])throw new Error(\"Signature not a valid DERSequence\");if(2!=t[e=2])throw new Error(\"First element in signature must be a DERInteger\");var r=t.slice(e+2,e+2+t[e+1]);if(2!=t[e+=2+t[e+1]])throw new Error(\"Second element in signature must be a DERInteger\");var i=t.slice(e+2,e+2+t[e+1]);return e+=2+t[e+1],{r:n.fromByteArrayUnsigned(r),s:n.fromByteArrayUnsigned(i)}},this.parseSigCompact=function(t){if(65!==t.length)throw\"Signature has the wrong length\";var e=t[0]-27;if(e<0||e>7)throw\"Invalid signature type\";var r=this.ecparams.n;return{r:n.fromByteArrayUnsigned(t.slice(1,33)).mod(r),s:n.fromByteArrayUnsigned(t.slice(33,65)).mod(r),i:e}},this.readPKCS5PrvKeyHex=function(t){if(!1===h(t))throw new Error(\"not ASN.1 hex string\");var e,r,n;try{e=c(t,0,[\"[0]\",0],\"06\"),r=c(t,0,[1],\"04\");try{n=c(t,0,[\"[1]\",0],\"03\")}catch(t){}}catch(t){throw new Error(\"malformed PKCS#1/5 plain ECC private key\")}if(this.curveName=a(e),void 0===this.curveName)throw\"unsupported curve name\";this.setNamedCurve(this.curveName),this.setPublicKeyHex(n),this.setPrivateKeyHex(r),this.isPublic=!1},this.readPKCS8PrvKeyHex=function(t){if(!1===h(t))throw new e(\"not ASN.1 hex string\");var r,n,i;try{c(t,0,[1,0],\"06\"),r=c(t,0,[1,1],\"06\"),n=c(t,0,[2,0,1],\"04\");try{i=c(t,0,[2,0,\"[1]\",0],\"03\")}catch(t){}}catch(t){throw new e(\"malformed PKCS#8 plain ECC private key\")}if(this.curveName=a(r),void 0===this.curveName)throw new e(\"unsupported curve name\");this.setNamedCurve(this.curveName),this.setPublicKeyHex(i),this.setPrivateKeyHex(n),this.isPublic=!1},this.readPKCS8PubKeyHex=function(t){if(!1===h(t))throw new e(\"not ASN.1 hex string\");var r,n;try{c(t,0,[0,0],\"06\"),r=c(t,0,[0,1],\"06\"),n=c(t,0,[1],\"03\")}catch(t){throw new e(\"malformed PKCS#8 ECC public key\")}if(this.curveName=a(r),null===this.curveName)throw new e(\"unsupported curve name\");this.setNamedCurve(this.curveName),this.setPublicKeyHex(n)},this.readCertPubKeyHex=function(t,r){if(!1===h(t))throw new e(\"not ASN.1 hex string\");var n,i;try{n=c(t,0,[0,5,0,1],\"06\"),i=c(t,0,[0,5,1],\"03\")}catch(t){throw new e(\"malformed X.509 certificate ECC public key\")}if(this.curveName=a(n),null===this.curveName)throw new e(\"unsupported curve name\");this.setNamedCurve(this.curveName),this.setPublicKeyHex(i)},void 0!==t&&void 0!==t.curve&&(this.curveName=t.curve),void 0===this.curveName&&(this.curveName=\"secp256r1\"),this.setNamedCurve(this.curveName),void 0!==t&&(void 0!==t.prv&&this.setPrivateKeyHex(t.prv),void 0!==t.pub&&this.setPublicKeyHex(t.pub))},br.crypto.ECDSA.parseSigHex=function(t){var e=br.crypto.ECDSA.parseSigHexInHexRS(t);return{r:new F(e.r,16),s:new F(e.s,16)}},br.crypto.ECDSA.parseSigHexInHexRS=function(t){var e=Er,r=e.getChildIdx,n=e.getV;if(e.checkStrictDER(t,0),\"30\"!=t.substr(0,2))throw new Error(\"signature is not a ASN.1 sequence\");var i=r(t,0);if(2!=i.length)throw new Error(\"signature shall have two elements\");var o=i[0],s=i[1];if(\"02\"!=t.substr(o,2))throw new Error(\"1st item not ASN.1 integer\");if(\"02\"!=t.substr(s,2))throw new Error(\"2nd item not ASN.1 integer\");return{r:n(t,o),s:n(t,s)}},br.crypto.ECDSA.asn1SigToConcatSig=function(t){var e=br.crypto.ECDSA.parseSigHexInHexRS(t),r=e.r,n=e.s;if(\"00\"==r.substr(0,2)&&r.length%32==2&&(r=r.substr(2)),\"00\"==n.substr(0,2)&&n.length%32==2&&(n=n.substr(2)),r.length%32==30&&(r=\"00\"+r),n.length%32==30&&(n=\"00\"+n),r.length%32!=0)throw\"unknown ECDSA sig r length error\";if(n.length%32!=0)throw\"unknown ECDSA sig s length error\";return r+n},br.crypto.ECDSA.concatSigToASN1Sig=function(t){if(t.length/2*8%128!=0)throw\"unknown ECDSA concatinated r-s sig length error\";var e=t.substr(0,t.length/2),r=t.substr(t.length/2);return br.crypto.ECDSA.hexRSSigToASN1Sig(e,r)},br.crypto.ECDSA.hexRSSigToASN1Sig=function(t,e){var r=new F(t,16),n=new F(e,16);return br.crypto.ECDSA.biRSSigToASN1Sig(r,n)},br.crypto.ECDSA.biRSSigToASN1Sig=function(t,e){var r=br.asn1,n=new r.DERInteger({bigint:t}),i=new r.DERInteger({bigint:e});return new r.DERSequence({array:[n,i]}).getEncodedHex()},br.crypto.ECDSA.getName=function(t){return\"2b8104001f\"===t?\"secp192k1\":\"2a8648ce3d030107\"===t?\"secp256r1\":\"2b8104000a\"===t?\"secp256k1\":\"2b81040021\"===t?\"secp224r1\":\"2b81040022\"===t?\"secp384r1\":-1!==\"|secp256r1|NIST P-256|P-256|prime256v1|\".indexOf(t)?\"secp256r1\":-1!==\"|secp256k1|\".indexOf(t)?\"secp256k1\":-1!==\"|secp224r1|NIST P-224|P-224|\".indexOf(t)?\"secp224r1\":-1!==\"|secp384r1|NIST P-384|P-384|\".indexOf(t)?\"secp384r1\":null},void 0!==br&&br||(e.KJUR=br={}),void 0!==br.crypto&&br.crypto||(br.crypto={}),br.crypto.ECParameterDB=new function(){var t={},e={};function r(t){return new F(t,16)}this.getByName=function(r){var n=r;if(void 0!==e[n]&&(n=e[r]),void 0!==t[n])return t[n];throw\"unregistered EC curve name: \"+n},this.regist=function(n,i,o,s,a,u,c,h,l,f,g,d){t[n]={};var p=r(o),v=r(s),y=r(a),m=r(u),_=r(c),S=new qe(p,v,y),b=S.decodePointHex(\"04\"+h+l);t[n].name=n,t[n].keylen=i,t[n].curve=S,t[n].G=b,t[n].n=m,t[n].h=_,t[n].oid=g,t[n].info=d;for(var w=0;w=2*u)break}var f={};return f.keyhex=c.substr(0,2*i[e].keylen),f.ivhex=c.substr(2*i[e].keylen,2*i[e].ivlen),f},a=function t(e,r,n,o){var s=y.enc.Base64.parse(e),a=y.enc.Hex.stringify(s);return(0,i[r].proc)(a,n,o)};return{version:\"1.0.0\",parsePKCS5PEM:function t(e){return o(e)},getKeyAndUnusedIvByPasscodeAndIvsalt:function t(e,r,n){return s(e,r,n)},decryptKeyB64:function t(e,r,n,i){return a(e,r,n,i)},getDecryptedKeyHex:function t(e,r){var n=o(e),i=(n.type,n.cipher),u=n.ivsalt,c=n.data,h=s(i,r,u).keyhex;return a(c,i,h,u)},getEncryptedPKCS5PEMFromPrvKeyHex:function t(e,r,n,o,a){var u=\"\";if(void 0!==o&&null!=o||(o=\"AES-256-CBC\"),void 0===i[o])throw\"KEYUTIL unsupported algorithm: \"+o;void 0!==a&&null!=a||(a=function t(e){var r=y.lib.WordArray.random(e);return y.enc.Hex.stringify(r)}(i[o].ivlen).toUpperCase());var c=function t(e,r,n,o){return(0,i[r].eproc)(e,n,o)}(r,o,s(o,n,a).keyhex,a);u=\"-----BEGIN \"+e+\" PRIVATE KEY-----\\r\\n\";return u+=\"Proc-Type: 4,ENCRYPTED\\r\\n\",u+=\"DEK-Info: \"+o+\",\"+a+\"\\r\\n\",u+=\"\\r\\n\",u+=c.replace(/(.{64})/g,\"$1\\r\\n\"),u+=\"\\r\\n-----END \"+e+\" PRIVATE KEY-----\\r\\n\"},parseHexOfEncryptedPKCS8:function t(e){var r=Er,n=r.getChildIdx,i=r.getV,o={},s=n(e,0);if(2!=s.length)throw\"malformed format: SEQUENCE(0).items != 2: \"+s.length;o.ciphertext=i(e,s[1]);var a=n(e,s[0]);if(2!=a.length)throw\"malformed format: SEQUENCE(0.0).items != 2: \"+a.length;if(\"2a864886f70d01050d\"!=i(e,a[0]))throw\"this only supports pkcs5PBES2\";var u=n(e,a[1]);if(2!=a.length)throw\"malformed format: SEQUENCE(0.0.1).items != 2: \"+u.length;var c=n(e,u[1]);if(2!=c.length)throw\"malformed format: SEQUENCE(0.0.1.1).items != 2: \"+c.length;if(\"2a864886f70d0307\"!=i(e,c[0]))throw\"this only supports TripleDES\";o.encryptionSchemeAlg=\"TripleDES\",o.encryptionSchemeIV=i(e,c[1]);var h=n(e,u[0]);if(2!=h.length)throw\"malformed format: SEQUENCE(0.0.1.0).items != 2: \"+h.length;if(\"2a864886f70d01050c\"!=i(e,h[0]))throw\"this only supports pkcs5PBKDF2\";var l=n(e,h[1]);if(l.length<2)throw\"malformed format: SEQUENCE(0.0.1.0.1).items < 2: \"+l.length;o.pbkdf2Salt=i(e,l[0]);var f=i(e,l[1]);try{o.pbkdf2Iter=parseInt(f,16)}catch(t){throw\"malformed format pbkdf2Iter: \"+f}return o},getPBKDF2KeyHexFromParam:function t(e,r){var n=y.enc.Hex.parse(e.pbkdf2Salt),i=e.pbkdf2Iter,o=y.PBKDF2(r,n,{keySize:6,iterations:i});return y.enc.Hex.stringify(o)},_getPlainPKCS8HexFromEncryptedPKCS8PEM:function t(e,r){var n=Hr(e,\"ENCRYPTED PRIVATE KEY\"),i=this.parseHexOfEncryptedPKCS8(n),o=Zr.getPBKDF2KeyHexFromParam(i,r),s={};s.ciphertext=y.enc.Hex.parse(i.ciphertext);var a=y.enc.Hex.parse(o),u=y.enc.Hex.parse(i.encryptionSchemeIV),c=y.TripleDES.decrypt(s,a,{iv:u});return y.enc.Hex.stringify(c)},getKeyFromEncryptedPKCS8PEM:function t(e,r){var n=this._getPlainPKCS8HexFromEncryptedPKCS8PEM(e,r);return this.getKeyFromPlainPrivatePKCS8Hex(n)},parsePlainPrivatePKCS8Hex:function t(e){var r=Er,n=r.getChildIdx,i=r.getV,o={algparam:null};if(\"30\"!=e.substr(0,2))throw\"malformed plain PKCS8 private key(code:001)\";var s=n(e,0);if(3!=s.length)throw\"malformed plain PKCS8 private key(code:002)\";if(\"30\"!=e.substr(s[1],2))throw\"malformed PKCS8 private key(code:003)\";var a=n(e,s[1]);if(2!=a.length)throw\"malformed PKCS8 private key(code:004)\";if(\"06\"!=e.substr(a[0],2))throw\"malformed PKCS8 private key(code:005)\";if(o.algoid=i(e,a[0]),\"06\"==e.substr(a[1],2)&&(o.algparam=i(e,a[1])),\"04\"!=e.substr(s[2],2))throw\"malformed PKCS8 private key(code:006)\";return o.keyidx=r.getVidx(e,s[2]),o},getKeyFromPlainPrivatePKCS8PEM:function t(e){var r=Hr(e,\"PRIVATE KEY\");return this.getKeyFromPlainPrivatePKCS8Hex(r)},getKeyFromPlainPrivatePKCS8Hex:function t(e){var r,n=this.parsePlainPrivatePKCS8Hex(e);if(\"2a864886f70d010101\"==n.algoid)r=new He;else if(\"2a8648ce380401\"==n.algoid)r=new br.crypto.DSA;else{if(\"2a8648ce3d0201\"!=n.algoid)throw\"unsupported private key algorithm\";r=new br.crypto.ECDSA}return r.readPKCS8PrvKeyHex(e),r},_getKeyFromPublicPKCS8Hex:function t(e){var r,n=Er.getVbyList(e,0,[0,0],\"06\");if(\"2a864886f70d010101\"===n)r=new He;else if(\"2a8648ce380401\"===n)r=new br.crypto.DSA;else{if(\"2a8648ce3d0201\"!==n)throw\"unsupported PKCS#8 public key hex\";r=new br.crypto.ECDSA}return r.readPKCS8PubKeyHex(e),r},parsePublicRawRSAKeyHex:function t(e){var r=Er,n=r.getChildIdx,i=r.getV,o={};if(\"30\"!=e.substr(0,2))throw\"malformed RSA key(code:001)\";var s=n(e,0);if(2!=s.length)throw\"malformed RSA key(code:002)\";if(\"02\"!=e.substr(s[0],2))throw\"malformed RSA key(code:003)\";if(o.n=i(e,s[0]),\"02\"!=e.substr(s[1],2))throw\"malformed RSA key(code:004)\";return o.e=i(e,s[1]),o},parsePublicPKCS8Hex:function t(e){var r=Er,n=r.getChildIdx,i=r.getV,o={algparam:null},s=n(e,0);if(2!=s.length)throw\"outer DERSequence shall have 2 elements: \"+s.length;var a=s[0];if(\"30\"!=e.substr(a,2))throw\"malformed PKCS8 public key(code:001)\";var u=n(e,a);if(2!=u.length)throw\"malformed PKCS8 public key(code:002)\";if(\"06\"!=e.substr(u[0],2))throw\"malformed PKCS8 public key(code:003)\";if(o.algoid=i(e,u[0]),\"06\"==e.substr(u[1],2)?o.algparam=i(e,u[1]):\"30\"==e.substr(u[1],2)&&(o.algparam={},o.algparam.p=r.getVbyList(e,u[1],[0],\"02\"),o.algparam.q=r.getVbyList(e,u[1],[1],\"02\"),o.algparam.g=r.getVbyList(e,u[1],[2],\"02\")),\"03\"!=e.substr(s[1],2))throw\"malformed PKCS8 public key(code:004)\";return o.key=i(e,s[1]).substr(2),o}}}();Zr.getKey=function(t,e,r){var n=(v=Er).getChildIdx,i=(v.getV,v.getVbyList),o=br.crypto,s=o.ECDSA,a=o.DSA,u=He,c=Hr,h=Zr;if(void 0!==u&&t instanceof u)return t;if(void 0!==s&&t instanceof s)return t;if(void 0!==a&&t instanceof a)return t;if(void 0!==t.curve&&void 0!==t.xy&&void 0===t.d)return new s({pub:t.xy,curve:t.curve});if(void 0!==t.curve&&void 0!==t.d)return new s({prv:t.d,curve:t.curve});if(void 0===t.kty&&void 0!==t.n&&void 0!==t.e&&void 0===t.d)return(P=new u).setPublic(t.n,t.e),P;if(void 0===t.kty&&void 0!==t.n&&void 0!==t.e&&void 0!==t.d&&void 0!==t.p&&void 0!==t.q&&void 0!==t.dp&&void 0!==t.dq&&void 0!==t.co&&void 0===t.qi)return(P=new u).setPrivateEx(t.n,t.e,t.d,t.p,t.q,t.dp,t.dq,t.co),P;if(void 0===t.kty&&void 0!==t.n&&void 0!==t.e&&void 0!==t.d&&void 0===t.p)return(P=new u).setPrivate(t.n,t.e,t.d),P;if(void 0!==t.p&&void 0!==t.q&&void 0!==t.g&&void 0!==t.y&&void 0===t.x)return(P=new a).setPublic(t.p,t.q,t.g,t.y),P;if(void 0!==t.p&&void 0!==t.q&&void 0!==t.g&&void 0!==t.y&&void 0!==t.x)return(P=new a).setPrivate(t.p,t.q,t.g,t.y,t.x),P;if(\"RSA\"===t.kty&&void 0!==t.n&&void 0!==t.e&&void 0===t.d)return(P=new u).setPublic(Ir(t.n),Ir(t.e)),P;if(\"RSA\"===t.kty&&void 0!==t.n&&void 0!==t.e&&void 0!==t.d&&void 0!==t.p&&void 0!==t.q&&void 0!==t.dp&&void 0!==t.dq&&void 0!==t.qi)return(P=new u).setPrivateEx(Ir(t.n),Ir(t.e),Ir(t.d),Ir(t.p),Ir(t.q),Ir(t.dp),Ir(t.dq),Ir(t.qi)),P;if(\"RSA\"===t.kty&&void 0!==t.n&&void 0!==t.e&&void 0!==t.d)return(P=new u).setPrivate(Ir(t.n),Ir(t.e),Ir(t.d)),P;if(\"EC\"===t.kty&&void 0!==t.crv&&void 0!==t.x&&void 0!==t.y&&void 0===t.d){var l=(k=new s({curve:t.crv})).ecparams.keylen/4,f=\"04\"+(\"0000000000\"+Ir(t.x)).slice(-l)+(\"0000000000\"+Ir(t.y)).slice(-l);return k.setPublicKeyHex(f),k}if(\"EC\"===t.kty&&void 0!==t.crv&&void 0!==t.x&&void 0!==t.y&&void 0!==t.d){l=(k=new s({curve:t.crv})).ecparams.keylen/4,f=\"04\"+(\"0000000000\"+Ir(t.x)).slice(-l)+(\"0000000000\"+Ir(t.y)).slice(-l);var g=(\"0000000000\"+Ir(t.d)).slice(-l);return k.setPublicKeyHex(f),k.setPrivateKeyHex(g),k}if(\"pkcs5prv\"===r){var d,p=t,v=Er;if(9===(d=n(p,0)).length)(P=new u).readPKCS5PrvKeyHex(p);else if(6===d.length)(P=new a).readPKCS5PrvKeyHex(p);else{if(!(d.length>2&&\"04\"===p.substr(d[1],2)))throw\"unsupported PKCS#1/5 hexadecimal key\";(P=new s).readPKCS5PrvKeyHex(p)}return P}if(\"pkcs8prv\"===r)return P=h.getKeyFromPlainPrivatePKCS8Hex(t);if(\"pkcs8pub\"===r)return h._getKeyFromPublicPKCS8Hex(t);if(\"x509pub\"===r)return on.getPublicKeyFromCertHex(t);if(-1!=t.indexOf(\"-END CERTIFICATE-\",0)||-1!=t.indexOf(\"-END X509 CERTIFICATE-\",0)||-1!=t.indexOf(\"-END TRUSTED CERTIFICATE-\",0))return on.getPublicKeyFromCertPEM(t);if(-1!=t.indexOf(\"-END PUBLIC KEY-\")){var y=Hr(t,\"PUBLIC KEY\");return h._getKeyFromPublicPKCS8Hex(y)}if(-1!=t.indexOf(\"-END RSA PRIVATE KEY-\")&&-1==t.indexOf(\"4,ENCRYPTED\")){var m=c(t,\"RSA PRIVATE KEY\");return h.getKey(m,null,\"pkcs5prv\")}if(-1!=t.indexOf(\"-END DSA PRIVATE KEY-\")&&-1==t.indexOf(\"4,ENCRYPTED\")){var _=i(R=c(t,\"DSA PRIVATE KEY\"),0,[1],\"02\"),S=i(R,0,[2],\"02\"),b=i(R,0,[3],\"02\"),w=i(R,0,[4],\"02\"),E=i(R,0,[5],\"02\");return(P=new a).setPrivate(new F(_,16),new F(S,16),new F(b,16),new F(w,16),new F(E,16)),P}if(-1!=t.indexOf(\"-END EC PRIVATE KEY-\")&&-1==t.indexOf(\"4,ENCRYPTED\")){m=c(t,\"EC PRIVATE KEY\");return h.getKey(m,null,\"pkcs5prv\")}if(-1!=t.indexOf(\"-END PRIVATE KEY-\"))return h.getKeyFromPlainPrivatePKCS8PEM(t);if(-1!=t.indexOf(\"-END RSA PRIVATE KEY-\")&&-1!=t.indexOf(\"4,ENCRYPTED\")){var x=h.getDecryptedKeyHex(t,e),A=new He;return A.readPKCS5PrvKeyHex(x),A}if(-1!=t.indexOf(\"-END EC PRIVATE KEY-\")&&-1!=t.indexOf(\"4,ENCRYPTED\")){var k,P=i(R=h.getDecryptedKeyHex(t,e),0,[1],\"04\"),C=i(R,0,[2,0],\"06\"),T=i(R,0,[3,0],\"03\").substr(2);if(void 0===br.crypto.OID.oidhex2name[C])throw\"undefined OID(hex) in KJUR.crypto.OID: \"+C;return(k=new s({curve:br.crypto.OID.oidhex2name[C]})).setPublicKeyHex(T),k.setPrivateKeyHex(P),k.isPublic=!1,k}if(-1!=t.indexOf(\"-END DSA PRIVATE KEY-\")&&-1!=t.indexOf(\"4,ENCRYPTED\")){var R;_=i(R=h.getDecryptedKeyHex(t,e),0,[1],\"02\"),S=i(R,0,[2],\"02\"),b=i(R,0,[3],\"02\"),w=i(R,0,[4],\"02\"),E=i(R,0,[5],\"02\");return(P=new a).setPrivate(new F(_,16),new F(S,16),new F(b,16),new F(w,16),new F(E,16)),P}if(-1!=t.indexOf(\"-END ENCRYPTED PRIVATE KEY-\"))return h.getKeyFromEncryptedPKCS8PEM(t,e);throw new Error(\"not supported argument\")},Zr.generateKeypair=function(t,e){if(\"RSA\"==t){var r=e;(s=new He).generate(r,\"10001\"),s.isPrivate=!0,s.isPublic=!0;var n=new He,i=s.n.toString(16),o=s.e.toString(16);return n.setPublic(i,o),n.isPrivate=!1,n.isPublic=!0,(a={}).prvKeyObj=s,a.pubKeyObj=n,a}if(\"EC\"==t){var s,a,u=e,c=new br.crypto.ECDSA({curve:u}).generateKeyPairHex();return(s=new br.crypto.ECDSA({curve:u})).setPublicKeyHex(c.ecpubhex),s.setPrivateKeyHex(c.ecprvhex),s.isPrivate=!0,s.isPublic=!1,(n=new br.crypto.ECDSA({curve:u})).setPublicKeyHex(c.ecpubhex),n.isPrivate=!1,n.isPublic=!0,(a={}).prvKeyObj=s,a.pubKeyObj=n,a}throw\"unknown algorithm: \"+t},Zr.getPEM=function(t,e,r,n,i,o){var s=br,a=s.asn1,u=a.DERObjectIdentifier,c=a.DERInteger,h=a.ASN1Util.newObject,l=a.x509.SubjectPublicKeyInfo,f=s.crypto,g=f.DSA,d=f.ECDSA,p=He;function v(t){return h({seq:[{int:0},{int:{bigint:t.n}},{int:t.e},{int:{bigint:t.d}},{int:{bigint:t.p}},{int:{bigint:t.q}},{int:{bigint:t.dmp1}},{int:{bigint:t.dmq1}},{int:{bigint:t.coeff}}]})}function m(t){return h({seq:[{int:1},{octstr:{hex:t.prvKeyHex}},{tag:[\"a0\",!0,{oid:{name:t.curveName}}]},{tag:[\"a1\",!0,{bitstr:{hex:\"00\"+t.pubKeyHex}}]}]})}function _(t){return h({seq:[{int:0},{int:{bigint:t.p}},{int:{bigint:t.q}},{int:{bigint:t.g}},{int:{bigint:t.y}},{int:{bigint:t.x}}]})}if((void 0!==p&&t instanceof p||void 0!==g&&t instanceof g||void 0!==d&&t instanceof d)&&1==t.isPublic&&(void 0===e||\"PKCS8PUB\"==e))return Mr(F=new l(t).getEncodedHex(),\"PUBLIC KEY\");if(\"PKCS1PRV\"==e&&void 0!==p&&t instanceof p&&(void 0===r||null==r)&&1==t.isPrivate)return Mr(F=v(t).getEncodedHex(),\"RSA PRIVATE KEY\");if(\"PKCS1PRV\"==e&&void 0!==d&&t instanceof d&&(void 0===r||null==r)&&1==t.isPrivate){var S=new u({name:t.curveName}).getEncodedHex(),b=m(t).getEncodedHex(),w=\"\";return w+=Mr(S,\"EC PARAMETERS\"),w+=Mr(b,\"EC PRIVATE KEY\")}if(\"PKCS1PRV\"==e&&void 0!==g&&t instanceof g&&(void 0===r||null==r)&&1==t.isPrivate)return Mr(F=_(t).getEncodedHex(),\"DSA PRIVATE KEY\");if(\"PKCS5PRV\"==e&&void 0!==p&&t instanceof p&&void 0!==r&&null!=r&&1==t.isPrivate){var F=v(t).getEncodedHex();return void 0===n&&(n=\"DES-EDE3-CBC\"),this.getEncryptedPKCS5PEMFromPrvKeyHex(\"RSA\",F,r,n,o)}if(\"PKCS5PRV\"==e&&void 0!==d&&t instanceof d&&void 0!==r&&null!=r&&1==t.isPrivate){F=m(t).getEncodedHex();return void 0===n&&(n=\"DES-EDE3-CBC\"),this.getEncryptedPKCS5PEMFromPrvKeyHex(\"EC\",F,r,n,o)}if(\"PKCS5PRV\"==e&&void 0!==g&&t instanceof g&&void 0!==r&&null!=r&&1==t.isPrivate){F=_(t).getEncodedHex();return void 0===n&&(n=\"DES-EDE3-CBC\"),this.getEncryptedPKCS5PEMFromPrvKeyHex(\"DSA\",F,r,n,o)}var E=function t(e,r){var n=x(e,r);return new h({seq:[{seq:[{oid:{name:\"pkcs5PBES2\"}},{seq:[{seq:[{oid:{name:\"pkcs5PBKDF2\"}},{seq:[{octstr:{hex:n.pbkdf2Salt}},{int:n.pbkdf2Iter}]}]},{seq:[{oid:{name:\"des-EDE3-CBC\"}},{octstr:{hex:n.encryptionSchemeIV}}]}]}]},{octstr:{hex:n.ciphertext}}]}).getEncodedHex()},x=function t(e,r){var n=y.lib.WordArray.random(8),i=y.lib.WordArray.random(8),o=y.PBKDF2(r,n,{keySize:6,iterations:100}),s=y.enc.Hex.parse(e),a=y.TripleDES.encrypt(s,o,{iv:i})+\"\",u={};return u.ciphertext=a,u.pbkdf2Salt=y.enc.Hex.stringify(n),u.pbkdf2Iter=100,u.encryptionSchemeAlg=\"DES-EDE3-CBC\",u.encryptionSchemeIV=y.enc.Hex.stringify(i),u};if(\"PKCS8PRV\"==e&&null!=p&&t instanceof p&&1==t.isPrivate){var A=v(t).getEncodedHex();F=h({seq:[{int:0},{seq:[{oid:{name:\"rsaEncryption\"}},{null:!0}]},{octstr:{hex:A}}]}).getEncodedHex();return void 0===r||null==r?Mr(F,\"PRIVATE KEY\"):Mr(b=E(F,r),\"ENCRYPTED PRIVATE KEY\")}if(\"PKCS8PRV\"==e&&void 0!==d&&t instanceof d&&1==t.isPrivate){A=new h({seq:[{int:1},{octstr:{hex:t.prvKeyHex}},{tag:[\"a1\",!0,{bitstr:{hex:\"00\"+t.pubKeyHex}}]}]}).getEncodedHex(),F=h({seq:[{int:0},{seq:[{oid:{name:\"ecPublicKey\"}},{oid:{name:t.curveName}}]},{octstr:{hex:A}}]}).getEncodedHex();return void 0===r||null==r?Mr(F,\"PRIVATE KEY\"):Mr(b=E(F,r),\"ENCRYPTED PRIVATE KEY\")}if(\"PKCS8PRV\"==e&&void 0!==g&&t instanceof g&&1==t.isPrivate){A=new c({bigint:t.x}).getEncodedHex(),F=h({seq:[{int:0},{seq:[{oid:{name:\"dsa\"}},{seq:[{int:{bigint:t.p}},{int:{bigint:t.q}},{int:{bigint:t.g}}]}]},{octstr:{hex:A}}]}).getEncodedHex();return void 0===r||null==r?Mr(F,\"PRIVATE KEY\"):Mr(b=E(F,r),\"ENCRYPTED PRIVATE KEY\")}throw new Error(\"unsupported object nor format\")},Zr.getKeyFromCSRPEM=function(t){var e=Hr(t,\"CERTIFICATE REQUEST\");return Zr.getKeyFromCSRHex(e)},Zr.getKeyFromCSRHex=function(t){var e=Zr.parseCSRHex(t);return Zr.getKey(e.p8pubkeyhex,null,\"pkcs8pub\")},Zr.parseCSRHex=function(t){var e=Er,r=e.getChildIdx,n=e.getTLV,i={},o=t;if(\"30\"!=o.substr(0,2))throw\"malformed CSR(code:001)\";var s=r(o,0);if(s.length<1)throw\"malformed CSR(code:002)\";if(\"30\"!=o.substr(s[0],2))throw\"malformed CSR(code:003)\";var a=r(o,s[0]);if(a.length<3)throw\"malformed CSR(code:004)\";return i.p8pubkeyhex=n(o,a[2]),i},Zr.getKeyID=function(t){var e=Zr,r=Er;\"string\"==typeof t&&-1!=t.indexOf(\"BEGIN \")&&(t=e.getKey(t));var n=Hr(e.getPEM(t)),i=r.getIdxbyList(n,0,[1]),o=r.getV(n,i).substring(2);return br.crypto.Util.hashHex(o,\"sha1\")},Zr.getJWKFromKey=function(t){var e={};if(t instanceof He&&t.isPrivate)return e.kty=\"RSA\",e.n=Rr(t.n.toString(16)),e.e=Rr(t.e.toString(16)),e.d=Rr(t.d.toString(16)),e.p=Rr(t.p.toString(16)),e.q=Rr(t.q.toString(16)),e.dp=Rr(t.dmp1.toString(16)),e.dq=Rr(t.dmq1.toString(16)),e.qi=Rr(t.coeff.toString(16)),e;if(t instanceof He&&t.isPublic)return e.kty=\"RSA\",e.n=Rr(t.n.toString(16)),e.e=Rr(t.e.toString(16)),e;if(t instanceof br.crypto.ECDSA&&t.isPrivate){if(\"P-256\"!==(n=t.getShortNISTPCurveName())&&\"P-384\"!==n)throw\"unsupported curve name for JWT: \"+n;var r=t.getPublicKeyXYHex();return e.kty=\"EC\",e.crv=n,e.x=Rr(r.x),e.y=Rr(r.y),e.d=Rr(t.prvKeyHex),e}if(t instanceof br.crypto.ECDSA&&t.isPublic){var n;if(\"P-256\"!==(n=t.getShortNISTPCurveName())&&\"P-384\"!==n)throw\"unsupported curve name for JWT: \"+n;r=t.getPublicKeyXYHex();return e.kty=\"EC\",e.crv=n,e.x=Rr(r.x),e.y=Rr(r.y),e}throw\"not supported key object\"},He.getPosArrayOfChildrenFromHex=function(t){return Er.getChildIdx(t,0)},He.getHexValueArrayOfChildrenFromHex=function(t){var e,r=Er.getV,n=r(t,(e=He.getPosArrayOfChildrenFromHex(t))[0]),i=r(t,e[1]),o=r(t,e[2]),s=r(t,e[3]),a=r(t,e[4]),u=r(t,e[5]),c=r(t,e[6]),h=r(t,e[7]),l=r(t,e[8]);return(e=new Array).push(n,i,o,s,a,u,c,h,l),e},He.prototype.readPrivateKeyFromPEMString=function(t){var e=Hr(t),r=He.getHexValueArrayOfChildrenFromHex(e);this.setPrivateEx(r[1],r[2],r[3],r[4],r[5],r[6],r[7],r[8])},He.prototype.readPKCS5PrvKeyHex=function(t){var e=He.getHexValueArrayOfChildrenFromHex(t);this.setPrivateEx(e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8])},He.prototype.readPKCS8PrvKeyHex=function(t){var e,r,n,i,o,s,a,u,c=Er,h=c.getVbyListEx;if(!1===c.isASN1HEX(t))throw new Error(\"not ASN.1 hex string\");try{e=h(t,0,[2,0,1],\"02\"),r=h(t,0,[2,0,2],\"02\"),n=h(t,0,[2,0,3],\"02\"),i=h(t,0,[2,0,4],\"02\"),o=h(t,0,[2,0,5],\"02\"),s=h(t,0,[2,0,6],\"02\"),a=h(t,0,[2,0,7],\"02\"),u=h(t,0,[2,0,8],\"02\")}catch(t){throw new Error(\"malformed PKCS#8 plain RSA private key\")}this.setPrivateEx(e,r,n,i,o,s,a,u)},He.prototype.readPKCS5PubKeyHex=function(t){var e=Er,r=e.getV;if(!1===e.isASN1HEX(t))throw new Error(\"keyHex is not ASN.1 hex string\");var n=e.getChildIdx(t,0);if(2!==n.length||\"02\"!==t.substr(n[0],2)||\"02\"!==t.substr(n[1],2))throw new Error(\"wrong hex for PKCS#5 public key\");var i=r(t,n[0]),o=r(t,n[1]);this.setPublic(i,o)},He.prototype.readPKCS8PubKeyHex=function(t){var e=Er;if(!1===e.isASN1HEX(t))throw new Error(\"not ASN.1 hex string\");if(\"06092a864886f70d010101\"!==e.getTLVbyListEx(t,0,[0,0]))throw new Error(\"not PKCS8 RSA public key\");var r=e.getTLVbyListEx(t,0,[1,0]);this.readPKCS5PubKeyHex(r)},He.prototype.readCertPubKeyHex=function(t,e){var r,n;(r=new on).readCertHex(t),n=r.getPublicKeyHex(),this.readPKCS8PubKeyHex(n)};var tn=new RegExp(\"[^0-9a-f]\",\"gi\");function en(t,e){for(var r=\"\",n=e/4-t.length,i=0;i>24,(16711680&i)>>16,(65280&i)>>8,255&i])))),i+=1;return n}function nn(t){for(var e in br.crypto.Util.DIGESTINFOHEAD){var r=br.crypto.Util.DIGESTINFOHEAD[e],n=r.length;if(t.substring(0,n)==r)return[e,t.substring(n)]}return[]}function on(t){var e,r=Er,n=r.getChildIdx,i=r.getV,o=r.getTLV,s=r.getVbyList,a=r.getVbyListEx,u=r.getTLVbyList,c=r.getTLVbyListEx,h=r.getIdxbyList,l=r.getIdxbyListEx,f=r.getVidx,g=r.oidname,d=r.hextooidstr,p=on,v=Hr;try{e=br.asn1.x509.AlgorithmIdentifier.PSSNAME2ASN1TLV}catch(t){}this.HEX2STAG={\"0c\":\"utf8\",13:\"prn\",16:\"ia5\",\"1a\":\"vis\",\"1e\":\"bmp\"},this.hex=null,this.version=0,this.foffset=0,this.aExtInfo=null,this.getVersion=function(){return null===this.hex||0!==this.version?this.version:\"a003020102\"!==u(this.hex,0,[0,0])?(this.version=1,this.foffset=-1,1):(this.version=3,3)},this.getSerialNumberHex=function(){return a(this.hex,0,[0,0],\"02\")},this.getSignatureAlgorithmField=function(){var t=c(this.hex,0,[0,1]);return this.getAlgorithmIdentifierName(t)},this.getAlgorithmIdentifierName=function(t){for(var r in e)if(t===e[r])return r;return g(a(t,0,[0],\"06\"))},this.getIssuer=function(){return this.getX500Name(this.getIssuerHex())},this.getIssuerHex=function(){return u(this.hex,0,[0,3+this.foffset],\"30\")},this.getIssuerString=function(){return p.hex2dn(this.getIssuerHex())},this.getSubject=function(){return this.getX500Name(this.getSubjectHex())},this.getSubjectHex=function(){return u(this.hex,0,[0,5+this.foffset],\"30\")},this.getSubjectString=function(){return p.hex2dn(this.getSubjectHex())},this.getNotBefore=function(){var t=s(this.hex,0,[0,4+this.foffset,0]);return t=t.replace(/(..)/g,\"%$1\"),t=decodeURIComponent(t)},this.getNotAfter=function(){var t=s(this.hex,0,[0,4+this.foffset,1]);return t=t.replace(/(..)/g,\"%$1\"),t=decodeURIComponent(t)},this.getPublicKeyHex=function(){return r.getTLVbyList(this.hex,0,[0,6+this.foffset],\"30\")},this.getPublicKeyIdx=function(){return h(this.hex,0,[0,6+this.foffset],\"30\")},this.getPublicKeyContentIdx=function(){var t=this.getPublicKeyIdx();return h(this.hex,t,[1,0],\"30\")},this.getPublicKey=function(){return Zr.getKey(this.getPublicKeyHex(),null,\"pkcs8pub\")},this.getSignatureAlgorithmName=function(){var t=u(this.hex,0,[1],\"30\");return this.getAlgorithmIdentifierName(t)},this.getSignatureValueHex=function(){return s(this.hex,0,[2],\"03\",!0)},this.verifySignature=function(t){var e=this.getSignatureAlgorithmField(),r=this.getSignatureValueHex(),n=u(this.hex,0,[0],\"30\"),i=new br.crypto.Signature({alg:e});return i.init(t),i.updateHex(n),i.verify(r)},this.parseExt=function(t){var e,o,a;if(void 0===t){if(a=this.hex,3!==this.version)return-1;e=h(a,0,[0,7,0],\"30\"),o=n(a,e)}else{a=Hr(t);var u=h(a,0,[0,3,0,0],\"06\");if(\"2a864886f70d01090e\"!=i(a,u))return void(this.aExtInfo=new Array);e=h(a,0,[0,3,0,1,0],\"30\"),o=n(a,e),this.hex=a}this.aExtInfo=new Array;for(var c=0;c1){var a=o(t,s[1]),u=this.getGeneralName(a);null!=u.uri&&(i.uri=u.uri)}if(s.length>2){var c=o(t,s[2]);\"0101ff\"==c&&(i.reqauth=!0),\"010100\"==c&&(i.reqauth=!1)}return i},this.getX500NameRule=function(t){for(var e=null,r=[],n=0;n0&&(t.ext=this.getExtParamArray()),t.sighex=this.getSignatureValueHex(),t},this.getExtParamArray=function(t){null==t&&(-1!=l(this.hex,0,[0,\"[3]\"])&&(t=c(this.hex,0,[0,\"[3]\",0],\"30\")));for(var e=[],r=n(t,0),i=0;i0&&(c=new Array(r),(new Oe).nextBytes(c),c=String.fromCharCode.apply(String,c));var h=Nr(u(Ur(\"\\0\\0\\0\\0\\0\\0\\0\\0\"+i+c))),l=[];for(n=0;n>8*a-s&255;for(d[0]&=~p,n=0;nthis.n.bitLength())return 0;var n=nn(this.doPublic(r).toString(16).replace(/^1f+00/,\"\"));if(0==n.length)return!1;var i=n[0];return n[1]==function t(e){return br.crypto.Util.hashString(e,i)}(t)},He.prototype.verifyWithMessageHash=function(t,e){if(e.length!=Math.ceil(this.n.bitLength()/4))return!1;var r=je(e,16);if(r.bitLength()>this.n.bitLength())return 0;var n=nn(this.doPublic(r).toString(16).replace(/^1f+00/,\"\"));if(0==n.length)return!1;n[0];return n[1]==t},He.prototype.verifyPSS=function(t,e,r,n){var i=function t(e){return br.crypto.Util.hashHex(e,r)}(Ur(t));return void 0===n&&(n=-1),this.verifyWithMessageHashPSS(i,e,r,n)},He.prototype.verifyWithMessageHashPSS=function(t,e,r,n){if(e.length!=Math.ceil(this.n.bitLength()/4))return!1;var i,o=new F(e,16),s=function t(e){return br.crypto.Util.hashHex(e,r)},a=Nr(t),u=a.length,c=this.n.bitLength()-1,h=Math.ceil(c/8);if(-1===n||void 0===n)n=u;else if(-2===n)n=h-u-2;else if(n<-2)throw new Error(\"invalid salt length\");if(h>8*h-c&255;if(0!=(f.charCodeAt(0)&d))throw new Error(\"bits beyond keysize not zero\");var p=rn(g,f.length,s),v=[];for(i=0;i0)&&-1==(\":\"+n.join(\":\")+\":\").indexOf(\":\"+v+\":\"))throw\"algorithm '\"+v+\"' not accepted in the list\";if(\"none\"!=v&&null===e)throw\"key shall be specified to verify.\";if(\"string\"==typeof e&&-1!=e.indexOf(\"-----BEGIN \")&&(e=Zr.getKey(e)),!(\"RS\"!=y&&\"PS\"!=y||e instanceof i))throw\"key shall be a RSAKey obj for RS* and PS* algs\";if(\"ES\"==y&&!(e instanceof c))throw\"key shall be a ECDSA obj for ES* algs\";var m=null;if(void 0===s.jwsalg2sigalg[p.alg])throw\"unsupported alg name: \"+v;if(\"none\"==(m=s.jwsalg2sigalg[v]))throw\"not supported\";if(\"Hmac\"==m.substr(0,4)){if(void 0===e)throw\"hexadecimal key shall be specified for HMAC\";var _=new h({alg:m,pass:e});return _.updateString(g),d==_.doFinal()}if(-1!=m.indexOf(\"withECDSA\")){var S,b=null;try{b=c.concatSigToASN1Sig(d)}catch(t){return!1}return(S=new l({alg:m})).init(e),S.updateString(g),S.verify(b)}return(S=new l({alg:m})).init(e),S.updateString(g),S.verify(d)},br.jws.JWS.parse=function(t){var e,r,n,i=t.split(\".\"),o={};if(2!=i.length&&3!=i.length)throw\"malformed sJWS: wrong number of '.' splitted elements\";return e=i[0],r=i[1],3==i.length&&(n=i[2]),o.headerObj=br.jws.JWS.readSafeJSONString(Fr(e)),o.payloadObj=br.jws.JWS.readSafeJSONString(Fr(r)),o.headerPP=JSON.stringify(o.headerObj,null,\" \"),null==o.payloadObj?o.payloadPP=Fr(r):o.payloadPP=JSON.stringify(o.payloadObj,null,\" \"),void 0!==n&&(o.sigHex=Ir(n)),o},br.jws.JWS.verifyJWT=function(t,e,n){var i=br.jws,o=i.JWS,s=o.readSafeJSONString,a=o.inArray,u=o.includedArray,c=t.split(\".\"),h=c[0],l=c[1],f=(Ir(c[2]),s(Fr(h))),g=s(Fr(l));if(void 0===f.alg)return!1;if(void 0===n.alg)throw\"acceptField.alg shall be specified\";if(!a(f.alg,n.alg))return!1;if(void 0!==g.iss&&\"object\"===r(n.iss)&&!a(g.iss,n.iss))return!1;if(void 0!==g.sub&&\"object\"===r(n.sub)&&!a(g.sub,n.sub))return!1;if(void 0!==g.aud&&\"object\"===r(n.aud))if(\"string\"==typeof g.aud){if(!a(g.aud,n.aud))return!1}else if(\"object\"==r(g.aud)&&!u(g.aud,n.aud))return!1;var d=i.IntDate.getNow();return void 0!==n.verifyAt&&\"number\"==typeof n.verifyAt&&(d=n.verifyAt),void 0!==n.gracePeriod&&\"number\"==typeof n.gracePeriod||(n.gracePeriod=0),!(void 0!==g.exp&&\"number\"==typeof g.exp&&g.exp+n.gracePeriodr.length&&(n=r.length);for(var i=0;i\n * @license MIT\n */\nvar n=r(30),i=r(31),o=r(32);function s(){return u.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function a(t,e){if(s()=s())throw new RangeError(\"Attempt to allocate Buffer larger than maximum size: 0x\"+s().toString(16)+\" bytes\");return 0|t}function d(t,e){if(u.isBuffer(t))return t.length;if(\"undefined\"!=typeof ArrayBuffer&&\"function\"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(t)||t instanceof ArrayBuffer))return t.byteLength;\"string\"!=typeof t&&(t=\"\"+t);var r=t.length;if(0===r)return 0;for(var n=!1;;)switch(e){case\"ascii\":case\"latin1\":case\"binary\":return r;case\"utf8\":case\"utf-8\":case void 0:return K(t).length;case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return 2*r;case\"hex\":return r>>>1;case\"base64\":return q(t).length;default:if(n)return K(t).length;e=(\"\"+e).toLowerCase(),n=!0}}function p(t,e,r){var n=!1;if((void 0===e||e<0)&&(e=0),e>this.length)return\"\";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return\"\";if((r>>>=0)<=(e>>>=0))return\"\";for(t||(t=\"utf8\");;)switch(t){case\"hex\":return I(this,e,r);case\"utf8\":case\"utf-8\":return A(this,e,r);case\"ascii\":return T(this,e,r);case\"latin1\":case\"binary\":return R(this,e,r);case\"base64\":return x(this,e,r);case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return D(this,e,r);default:if(n)throw new TypeError(\"Unknown encoding: \"+t);t=(t+\"\").toLowerCase(),n=!0}}function v(t,e,r){var n=t[e];t[e]=t[r],t[r]=n}function y(t,e,r,n,i){if(0===t.length)return-1;if(\"string\"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,isNaN(r)&&(r=i?0:t.length-1),r<0&&(r=t.length+r),r>=t.length){if(i)return-1;r=t.length-1}else if(r<0){if(!i)return-1;r=0}if(\"string\"==typeof e&&(e=u.from(e,n)),u.isBuffer(e))return 0===e.length?-1:m(t,e,r,n,i);if(\"number\"==typeof e)return e&=255,u.TYPED_ARRAY_SUPPORT&&\"function\"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(t,e,r):Uint8Array.prototype.lastIndexOf.call(t,e,r):m(t,[e],r,n,i);throw new TypeError(\"val must be string, number or Buffer\")}function m(t,e,r,n,i){var o,s=1,a=t.length,u=e.length;if(void 0!==n&&(\"ucs2\"===(n=String(n).toLowerCase())||\"ucs-2\"===n||\"utf16le\"===n||\"utf-16le\"===n)){if(t.length<2||e.length<2)return-1;s=2,a/=2,u/=2,r/=2}function c(t,e){return 1===s?t[e]:t.readUInt16BE(e*s)}if(i){var h=-1;for(o=r;oa&&(r=a-u),o=r;o>=0;o--){for(var l=!0,f=0;fi&&(n=i):n=i;var o=e.length;if(o%2!=0)throw new TypeError(\"Invalid hex string\");n>o/2&&(n=o/2);for(var s=0;s>8,i=r%256,o.push(i),o.push(n);return o}(e,t.length-r),t,r,n)}function x(t,e,r){return 0===e&&r===t.length?n.fromByteArray(t):n.fromByteArray(t.slice(e,r))}function A(t,e,r){r=Math.min(t.length,r);for(var n=[],i=e;i239?4:c>223?3:c>191?2:1;if(i+l<=r)switch(l){case 1:c<128&&(h=c);break;case 2:128==(192&(o=t[i+1]))&&(u=(31&c)<<6|63&o)>127&&(h=u);break;case 3:o=t[i+1],s=t[i+2],128==(192&o)&&128==(192&s)&&(u=(15&c)<<12|(63&o)<<6|63&s)>2047&&(u<55296||u>57343)&&(h=u);break;case 4:o=t[i+1],s=t[i+2],a=t[i+3],128==(192&o)&&128==(192&s)&&128==(192&a)&&(u=(15&c)<<18|(63&o)<<12|(63&s)<<6|63&a)>65535&&u<1114112&&(h=u)}null===h?(h=65533,l=1):h>65535&&(h-=65536,n.push(h>>>10&1023|55296),h=56320|1023&h),n.push(h),i+=l}return function f(t){var e=t.length;if(e<=C)return String.fromCharCode.apply(String,t);var r=\"\",n=0;for(;n0&&(r=this.toString(\"hex\",0,n).match(/.{2}/g).join(\" \"),this.length>n&&(r+=\" ... \")),\"\"},u.prototype.compare=function t(e,r,n,i,o){if(!u.isBuffer(e))throw new TypeError(\"Argument must be a Buffer\");if(void 0===r&&(r=0),void 0===n&&(n=e?e.length:0),void 0===i&&(i=0),void 0===o&&(o=this.length),r<0||n>e.length||i<0||o>this.length)throw new RangeError(\"out of range index\");if(i>=o&&r>=n)return 0;if(i>=o)return-1;if(r>=n)return 1;if(this===e)return 0;for(var s=(o>>>=0)-(i>>>=0),a=(n>>>=0)-(r>>>=0),c=Math.min(s,a),h=this.slice(i,o),l=e.slice(r,n),f=0;fo)&&(n=o),e.length>0&&(n<0||r<0)||r>this.length)throw new RangeError(\"Attempt to write outside buffer bounds\");i||(i=\"utf8\");for(var s=!1;;)switch(i){case\"hex\":return _(this,e,r,n);case\"utf8\":case\"utf-8\":return S(this,e,r,n);case\"ascii\":return b(this,e,r,n);case\"latin1\":case\"binary\":return w(this,e,r,n);case\"base64\":return F(this,e,r,n);case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return E(this,e,r,n);default:if(s)throw new TypeError(\"Unknown encoding: \"+i);i=(\"\"+i).toLowerCase(),s=!0}},u.prototype.toJSON=function t(){return{type:\"Buffer\",data:Array.prototype.slice.call(this._arr||this,0)}};var C=4096;function T(t,e,r){var n=\"\";r=Math.min(t.length,r);for(var i=e;in)&&(r=n);for(var i=\"\",o=e;or)throw new RangeError(\"Trying to access beyond buffer length\")}function N(t,e,r,n,i,o){if(!u.isBuffer(t))throw new TypeError('\"buffer\" argument must be a Buffer instance');if(e>i||et.length)throw new RangeError(\"Index out of range\")}function U(t,e,r,n){e<0&&(e=65535+e+1);for(var i=0,o=Math.min(t.length-r,2);i>>8*(n?i:1-i)}function B(t,e,r,n){e<0&&(e=4294967295+e+1);for(var i=0,o=Math.min(t.length-r,4);i>>8*(n?i:3-i)&255}function O(t,e,r,n,i,o){if(r+n>t.length)throw new RangeError(\"Index out of range\");if(r<0)throw new RangeError(\"Index out of range\")}function j(t,e,r,n,o){return o||O(t,0,r,4),i.write(t,e,r,n,23,4),r+4}function M(t,e,r,n,o){return o||O(t,0,r,8),i.write(t,e,r,n,52,8),r+8}u.prototype.slice=function t(e,r){var n,i=this.length;if((e=~~e)<0?(e+=i)<0&&(e=0):e>i&&(e=i),(r=void 0===r?i:~~r)<0?(r+=i)<0&&(r=0):r>i&&(r=i),r0&&(o*=256);)i+=this[e+--r]*o;return i},u.prototype.readUInt8=function t(e,r){return r||L(e,1,this.length),this[e]},u.prototype.readUInt16LE=function t(e,r){return r||L(e,2,this.length),this[e]|this[e+1]<<8},u.prototype.readUInt16BE=function t(e,r){return r||L(e,2,this.length),this[e]<<8|this[e+1]},u.prototype.readUInt32LE=function t(e,r){return r||L(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},u.prototype.readUInt32BE=function t(e,r){return r||L(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},u.prototype.readIntLE=function t(e,r,n){e|=0,r|=0,n||L(e,r,this.length);for(var i=this[e],o=1,s=0;++s=(o*=128)&&(i-=Math.pow(2,8*r)),i},u.prototype.readIntBE=function t(e,r,n){e|=0,r|=0,n||L(e,r,this.length);for(var i=r,o=1,s=this[e+--i];i>0&&(o*=256);)s+=this[e+--i]*o;return s>=(o*=128)&&(s-=Math.pow(2,8*r)),s},u.prototype.readInt8=function t(e,r){return r||L(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},u.prototype.readInt16LE=function t(e,r){r||L(e,2,this.length);var n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},u.prototype.readInt16BE=function t(e,r){r||L(e,2,this.length);var n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},u.prototype.readInt32LE=function t(e,r){return r||L(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},u.prototype.readInt32BE=function t(e,r){return r||L(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},u.prototype.readFloatLE=function t(e,r){return r||L(e,4,this.length),i.read(this,e,!0,23,4)},u.prototype.readFloatBE=function t(e,r){return r||L(e,4,this.length),i.read(this,e,!1,23,4)},u.prototype.readDoubleLE=function t(e,r){return r||L(e,8,this.length),i.read(this,e,!0,52,8)},u.prototype.readDoubleBE=function t(e,r){return r||L(e,8,this.length),i.read(this,e,!1,52,8)},u.prototype.writeUIntLE=function t(e,r,n,i){(e=+e,r|=0,n|=0,i)||N(this,e,r,n,Math.pow(2,8*n)-1,0);var o=1,s=0;for(this[r]=255&e;++s=0&&(s*=256);)this[r+o]=e/s&255;return r+n},u.prototype.writeUInt8=function t(e,r,n){return e=+e,r|=0,n||N(this,e,r,1,255,0),u.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[r]=255&e,r+1},u.prototype.writeUInt16LE=function t(e,r,n){return e=+e,r|=0,n||N(this,e,r,2,65535,0),u.TYPED_ARRAY_SUPPORT?(this[r]=255&e,this[r+1]=e>>>8):U(this,e,r,!0),r+2},u.prototype.writeUInt16BE=function t(e,r,n){return e=+e,r|=0,n||N(this,e,r,2,65535,0),u.TYPED_ARRAY_SUPPORT?(this[r]=e>>>8,this[r+1]=255&e):U(this,e,r,!1),r+2},u.prototype.writeUInt32LE=function t(e,r,n){return e=+e,r|=0,n||N(this,e,r,4,4294967295,0),u.TYPED_ARRAY_SUPPORT?(this[r+3]=e>>>24,this[r+2]=e>>>16,this[r+1]=e>>>8,this[r]=255&e):B(this,e,r,!0),r+4},u.prototype.writeUInt32BE=function t(e,r,n){return e=+e,r|=0,n||N(this,e,r,4,4294967295,0),u.TYPED_ARRAY_SUPPORT?(this[r]=e>>>24,this[r+1]=e>>>16,this[r+2]=e>>>8,this[r+3]=255&e):B(this,e,r,!1),r+4},u.prototype.writeIntLE=function t(e,r,n,i){if(e=+e,r|=0,!i){var o=Math.pow(2,8*n-1);N(this,e,r,n,o-1,-o)}var s=0,a=1,u=0;for(this[r]=255&e;++s>0)-u&255;return r+n},u.prototype.writeIntBE=function t(e,r,n,i){if(e=+e,r|=0,!i){var o=Math.pow(2,8*n-1);N(this,e,r,n,o-1,-o)}var s=n-1,a=1,u=0;for(this[r+s]=255&e;--s>=0&&(a*=256);)e<0&&0===u&&0!==this[r+s+1]&&(u=1),this[r+s]=(e/a>>0)-u&255;return r+n},u.prototype.writeInt8=function t(e,r,n){return e=+e,r|=0,n||N(this,e,r,1,127,-128),u.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[r]=255&e,r+1},u.prototype.writeInt16LE=function t(e,r,n){return e=+e,r|=0,n||N(this,e,r,2,32767,-32768),u.TYPED_ARRAY_SUPPORT?(this[r]=255&e,this[r+1]=e>>>8):U(this,e,r,!0),r+2},u.prototype.writeInt16BE=function t(e,r,n){return e=+e,r|=0,n||N(this,e,r,2,32767,-32768),u.TYPED_ARRAY_SUPPORT?(this[r]=e>>>8,this[r+1]=255&e):U(this,e,r,!1),r+2},u.prototype.writeInt32LE=function t(e,r,n){return e=+e,r|=0,n||N(this,e,r,4,2147483647,-2147483648),u.TYPED_ARRAY_SUPPORT?(this[r]=255&e,this[r+1]=e>>>8,this[r+2]=e>>>16,this[r+3]=e>>>24):B(this,e,r,!0),r+4},u.prototype.writeInt32BE=function t(e,r,n){return e=+e,r|=0,n||N(this,e,r,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),u.TYPED_ARRAY_SUPPORT?(this[r]=e>>>24,this[r+1]=e>>>16,this[r+2]=e>>>8,this[r+3]=255&e):B(this,e,r,!1),r+4},u.prototype.writeFloatLE=function t(e,r,n){return j(this,e,r,!0,n)},u.prototype.writeFloatBE=function t(e,r,n){return j(this,e,r,!1,n)},u.prototype.writeDoubleLE=function t(e,r,n){return M(this,e,r,!0,n)},u.prototype.writeDoubleBE=function t(e,r,n){return M(this,e,r,!1,n)},u.prototype.copy=function t(e,r,n,i){if(n||(n=0),i||0===i||(i=this.length),r>=e.length&&(r=e.length),r||(r=0),i>0&&i=this.length)throw new RangeError(\"sourceStart out of bounds\");if(i<0)throw new RangeError(\"sourceEnd out of bounds\");i>this.length&&(i=this.length),e.length-r=0;--o)e[o+r]=this[o+n];else if(s<1e3||!u.TYPED_ARRAY_SUPPORT)for(o=0;o>>=0,n=void 0===n?this.length:n>>>0,e||(e=0),\"number\"==typeof e)for(s=r;s55295&&r<57344){if(!i){if(r>56319){(e-=3)>-1&&o.push(239,191,189);continue}if(s+1===n){(e-=3)>-1&&o.push(239,191,189);continue}i=r;continue}if(r<56320){(e-=3)>-1&&o.push(239,191,189),i=r;continue}r=65536+(i-55296<<10|r-56320)}else i&&(e-=3)>-1&&o.push(239,191,189);if(i=null,r<128){if((e-=1)<0)break;o.push(r)}else if(r<2048){if((e-=2)<0)break;o.push(r>>6|192,63&r|128)}else if(r<65536){if((e-=3)<0)break;o.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error(\"Invalid code point\");if((e-=4)<0)break;o.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return o}function q(t){return n.toByteArray(function e(t){if((t=function e(t){return t.trim?t.trim():t.replace(/^\\s+|\\s+$/g,\"\")}(t).replace(H,\"\")).length<2)return\"\";for(;t.length%4!=0;)t+=\"=\";return t}(t))}function J(t,e,r,n){for(var i=0;i=e.length||i>=t.length);++i)e[i+r]=t[i];return i}}).call(this,r(29))},function(t,e){var r;r=function(){return this}();try{r=r||new Function(\"return this\")()}catch(t){\"object\"==typeof window&&(r=window)}t.exports=r},function(t,e,r){\"use strict\";e.byteLength=function n(t){var e=f(t),r=e[0],n=e[1];return 3*(r+n)/4-n},e.toByteArray=function i(t){var e,r,n=f(t),i=n[0],o=n[1],s=new u(function c(t,e,r){return 3*(e+r)/4-r}(0,i,o)),h=0,l=o>0?i-4:i;for(r=0;r>16&255,s[h++]=e>>8&255,s[h++]=255&e;2===o&&(e=a[t.charCodeAt(r)]<<2|a[t.charCodeAt(r+1)]>>4,s[h++]=255&e);1===o&&(e=a[t.charCodeAt(r)]<<10|a[t.charCodeAt(r+1)]<<4|a[t.charCodeAt(r+2)]>>2,s[h++]=e>>8&255,s[h++]=255&e);return s},e.fromByteArray=function o(t){for(var e,r=t.length,n=r%3,i=[],o=16383,a=0,u=r-n;au?u:a+o));1===n?(e=t[r-1],i.push(s[e>>2]+s[e<<4&63]+\"==\")):2===n&&(e=(t[r-2]<<8)+t[r-1],i.push(s[e>>10]+s[e>>4&63]+s[e<<2&63]+\"=\"));return i.join(\"\")};for(var s=[],a=[],u=\"undefined\"!=typeof Uint8Array?Uint8Array:Array,c=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\",h=0,l=c.length;h0)throw new Error(\"Invalid string. Length must be a multiple of 4\");var r=t.indexOf(\"=\");return-1===r&&(r=e),[r,r===e?0:4-r%4]}function g(t,e,r){for(var n,i,o=[],a=e;a>18&63]+s[i>>12&63]+s[i>>6&63]+s[63&i]);return o.join(\"\")}a[\"-\".charCodeAt(0)]=62,a[\"_\".charCodeAt(0)]=63},function(t,e){\n/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\ne.read=function(t,e,r,n,i){var o,s,a=8*i-n-1,u=(1<>1,h=-7,l=r?i-1:0,f=r?-1:1,g=t[e+l];for(l+=f,o=g&(1<<-h)-1,g>>=-h,h+=a;h>0;o=256*o+t[e+l],l+=f,h-=8);for(s=o&(1<<-h)-1,o>>=-h,h+=n;h>0;s=256*s+t[e+l],l+=f,h-=8);if(0===o)o=1-c;else{if(o===u)return s?NaN:1/0*(g?-1:1);s+=Math.pow(2,n),o-=c}return(g?-1:1)*s*Math.pow(2,o-n)},e.write=function(t,e,r,n,i,o){var s,a,u,c=8*o-i-1,h=(1<>1,f=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,g=n?0:o-1,d=n?1:-1,p=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(a=isNaN(e)?1:0,s=h):(s=Math.floor(Math.log(e)/Math.LN2),e*(u=Math.pow(2,-s))<1&&(s--,u*=2),(e+=s+l>=1?f/u:f*Math.pow(2,1-l))*u>=2&&(s++,u/=2),s+l>=h?(a=0,s=h):s+l>=1?(a=(e*u-1)*Math.pow(2,i),s+=l):(a=e*Math.pow(2,l-1)*Math.pow(2,i),s=0));i>=8;t[r+g]=255&a,g+=d,a/=256,i-=8);for(s=s<0;t[r+g]=255&s,g+=d,s/=256,c-=8);t[r+g-d]|=128*p}},function(t,e){var r={}.toString;t.exports=Array.isArray||function(t){return\"[object Array]\"==r.call(t)}},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.default=function n(t){var e=t.jws,r=t.KeyUtil,n=t.X509,o=t.crypto,s=t.hextob64u,a=t.b64tohex,u=t.AllowedSigningAlgs;return function(){function t(){!function e(t,r){if(!(t instanceof r))throw new TypeError(\"Cannot call a class as a function\")}(this,t)}return t.parseJwt=function t(r){i.Log.debug(\"JoseUtil.parseJwt\");try{var n=e.JWS.parse(r);return{header:n.headerObj,payload:n.payloadObj}}catch(t){i.Log.error(t)}},t.validateJwt=function e(o,s,u,c,h,l,f){i.Log.debug(\"JoseUtil.validateJwt\");try{if(\"RSA\"===s.kty)if(s.e&&s.n)s=r.getKey(s);else{if(!s.x5c||!s.x5c.length)return i.Log.error(\"JoseUtil.validateJwt: RSA key missing key material\",s),Promise.reject(new Error(\"RSA key missing key material\"));var g=a(s.x5c[0]);s=n.getPublicKeyFromCertHex(g)}else{if(\"EC\"!==s.kty)return i.Log.error(\"JoseUtil.validateJwt: Unsupported key type\",s&&s.kty),Promise.reject(new Error(s.kty));if(!(s.crv&&s.x&&s.y))return i.Log.error(\"JoseUtil.validateJwt: EC key missing key material\",s),Promise.reject(new Error(\"EC key missing key material\"));s=r.getKey(s)}return t._validateJwt(o,s,u,c,h,l,f)}catch(t){return i.Log.error(t&&t.message||t),Promise.reject(\"JWT validation failed\")}},t.validateJwtAttributes=function e(r,n,o,s,a,u){s||(s=0),a||(a=parseInt(Date.now()/1e3));var c=t.parseJwt(r).payload;if(!c.iss)return i.Log.error(\"JoseUtil._validateJwt: issuer was not provided\"),Promise.reject(new Error(\"issuer was not provided\"));if(c.iss!==n)return i.Log.error(\"JoseUtil._validateJwt: Invalid issuer in token\",c.iss),Promise.reject(new Error(\"Invalid issuer in token: \"+c.iss));if(!c.aud)return i.Log.error(\"JoseUtil._validateJwt: aud was not provided\"),Promise.reject(new Error(\"aud was not provided\"));if(!(c.aud===o||Array.isArray(c.aud)&&c.aud.indexOf(o)>=0))return i.Log.error(\"JoseUtil._validateJwt: Invalid audience in token\",c.aud),Promise.reject(new Error(\"Invalid audience in token: \"+c.aud));if(c.azp&&c.azp!==o)return i.Log.error(\"JoseUtil._validateJwt: Invalid azp in token\",c.azp),Promise.reject(new Error(\"Invalid azp in token: \"+c.azp));if(!u){var h=a+s,l=a-s;if(!c.iat)return i.Log.error(\"JoseUtil._validateJwt: iat was not provided\"),Promise.reject(new Error(\"iat was not provided\"));if(h1&&void 0!==arguments[1]?arguments[1]:\"#\";o(this,t);var n=i.UrlUtility.parseUrlFragment(e,r);this.error=n.error,this.error_description=n.error_description,this.error_uri=n.error_uri,this.code=n.code,this.state=n.state,this.id_token=n.id_token,this.session_state=n.session_state,this.access_token=n.access_token,this.token_type=n.token_type,this.scope=n.scope,this.profile=void 0,this.expires_in=n.expires_in}return n(t,[{key:\"expires_in\",get:function t(){if(this.expires_at){var e=parseInt(Date.now()/1e3);return this.expires_at-e}},set:function t(e){var r=parseInt(e);if(\"number\"==typeof r&&r>0){var n=parseInt(Date.now()/1e3);this.expires_at=n+r}}},{key:\"expired\",get:function t(){var e=this.expires_in;if(void 0!==e)return e<=0}},{key:\"scopes\",get:function t(){return(this.scope||\"\").split(\" \")}},{key:\"isOpenIdConnect\",get:function t(){return this.scopes.indexOf(\"openid\")>=0||!!this.id_token}}]),t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.SignoutRequest=void 0;var n=r(0),i=r(3),o=r(9);e.SignoutRequest=function t(e){var r=e.url,s=e.id_token_hint,a=e.post_logout_redirect_uri,u=e.data,c=e.extraQueryParams,h=e.request_type;if(function l(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,t),!r)throw n.Log.error(\"SignoutRequest.ctor: No url passed\"),new Error(\"url\");for(var f in s&&(r=i.UrlUtility.addQueryParam(r,\"id_token_hint\",s)),a&&(r=i.UrlUtility.addQueryParam(r,\"post_logout_redirect_uri\",a),u&&(this.state=new o.State({data:u,request_type:h}),r=i.UrlUtility.addQueryParam(r,\"state\",this.state.id))),c)r=i.UrlUtility.addQueryParam(r,f,c[f]);this.url=r}},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.SignoutResponse=void 0;var n=r(3);e.SignoutResponse=function t(e){!function r(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,t);var i=n.UrlUtility.parseUrlFragment(e,\"?\");this.error=i.error,this.error_description=i.error_description,this.error_uri=i.error_uri,this.state=i.state}},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.InMemoryWebStorage=void 0;var n=function(){function t(t,e){for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:c.SilentRenewService,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:h.SessionMonitor,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:f.TokenRevocationClient,l=arguments.length>4&&void 0!==arguments[4]?arguments[4]:g.TokenClient,y=arguments.length>5&&void 0!==arguments[5]?arguments[5]:d.JoseUtil;p(this,e),r instanceof s.UserManagerSettings||(r=new s.UserManagerSettings(r));var m=v(this,t.call(this,r));return m._events=new u.UserManagerEvents(r),m._silentRenewService=new n(m),m.settings.automaticSilentRenew&&(i.Log.debug(\"UserManager.ctor: automaticSilentRenew is configured, setting up silent renew\"),m.startSilentRenew()),m.settings.monitorSession&&(i.Log.debug(\"UserManager.ctor: monitorSession is configured, setting up session monitor\"),m._sessionMonitor=new o(m)),m._tokenRevocationClient=new a(m._settings),m._tokenClient=new l(m._settings),m._joseUtil=y,m}return function r(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(e,t),e.prototype.getUser=function t(){var e=this;return this._loadUser().then((function(t){return t?(i.Log.info(\"UserManager.getUser: user loaded\"),e._events.load(t,!1),t):(i.Log.info(\"UserManager.getUser: user not found in storage\"),null)}))},e.prototype.removeUser=function t(){var e=this;return this.storeUser(null).then((function(){i.Log.info(\"UserManager.removeUser: user removed from storage\"),e._events.unload()}))},e.prototype.signinRedirect=function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(e=Object.assign({},e)).request_type=\"si:r\";var r={useReplaceToNavigate:e.useReplaceToNavigate};return this._signinStart(e,this._redirectNavigator,r).then((function(){i.Log.info(\"UserManager.signinRedirect: successful\")}))},e.prototype.signinRedirectCallback=function t(e){return this._signinEnd(e||this._redirectNavigator.url).then((function(t){return t.profile&&t.profile.sub?i.Log.info(\"UserManager.signinRedirectCallback: successful, signed in sub: \",t.profile.sub):i.Log.info(\"UserManager.signinRedirectCallback: no sub\"),t}))},e.prototype.signinPopup=function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(e=Object.assign({},e)).request_type=\"si:p\";var r=e.redirect_uri||this.settings.popup_redirect_uri||this.settings.redirect_uri;return r?(e.redirect_uri=r,e.display=\"popup\",this._signin(e,this._popupNavigator,{startUrl:r,popupWindowFeatures:e.popupWindowFeatures||this.settings.popupWindowFeatures,popupWindowTarget:e.popupWindowTarget||this.settings.popupWindowTarget}).then((function(t){return t&&(t.profile&&t.profile.sub?i.Log.info(\"UserManager.signinPopup: signinPopup successful, signed in sub: \",t.profile.sub):i.Log.info(\"UserManager.signinPopup: no sub\")),t}))):(i.Log.error(\"UserManager.signinPopup: No popup_redirect_uri or redirect_uri configured\"),Promise.reject(new Error(\"No popup_redirect_uri or redirect_uri configured\")))},e.prototype.signinPopupCallback=function t(e){return this._signinCallback(e,this._popupNavigator).then((function(t){return t&&(t.profile&&t.profile.sub?i.Log.info(\"UserManager.signinPopupCallback: successful, signed in sub: \",t.profile.sub):i.Log.info(\"UserManager.signinPopupCallback: no sub\")),t})).catch((function(t){i.Log.error(t.message)}))},e.prototype.signinSilent=function t(){var e=this,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return r=Object.assign({},r),this._loadUser().then((function(t){return t&&t.refresh_token?(r.refresh_token=t.refresh_token,e._useRefreshToken(r)):(r.request_type=\"si:s\",r.id_token_hint=r.id_token_hint||e.settings.includeIdTokenInSilentRenew&&t&&t.id_token,t&&e._settings.validateSubOnSilentRenew&&(i.Log.debug(\"UserManager.signinSilent, subject prior to silent renew: \",t.profile.sub),r.current_sub=t.profile.sub),e._signinSilentIframe(r))}))},e.prototype._useRefreshToken=function t(){var e=this,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this._tokenClient.exchangeRefreshToken(r).then((function(t){return t?t.access_token?e._loadUser().then((function(r){if(r){var n=Promise.resolve();return t.id_token&&(n=e._validateIdTokenFromTokenRefreshToken(r.profile,t.id_token)),n.then((function(){return i.Log.debug(\"UserManager._useRefreshToken: refresh token response success\"),r.id_token=t.id_token||r.id_token,r.access_token=t.access_token,r.refresh_token=t.refresh_token||r.refresh_token,r.expires_in=t.expires_in,e.storeUser(r).then((function(){return e._events.load(r),r}))}))}return null})):(i.Log.error(\"UserManager._useRefreshToken: No access token returned from token endpoint\"),Promise.reject(\"No access token returned from token endpoint\")):(i.Log.error(\"UserManager._useRefreshToken: No response returned from token endpoint\"),Promise.reject(\"No response returned from token endpoint\"))}))},e.prototype._validateIdTokenFromTokenRefreshToken=function t(e,r){var n=this;return this._metadataService.getIssuer().then((function(t){return n.settings.getEpochTime().then((function(o){return n._joseUtil.validateJwtAttributes(r,t,n._settings.client_id,n._settings.clockSkew,o).then((function(t){return t?t.sub!==e.sub?(i.Log.error(\"UserManager._validateIdTokenFromTokenRefreshToken: sub in id_token does not match current sub\"),Promise.reject(new Error(\"sub in id_token does not match current sub\"))):t.auth_time&&t.auth_time!==e.auth_time?(i.Log.error(\"UserManager._validateIdTokenFromTokenRefreshToken: auth_time in id_token does not match original auth_time\"),Promise.reject(new Error(\"auth_time in id_token does not match original auth_time\"))):t.azp&&t.azp!==e.azp?(i.Log.error(\"UserManager._validateIdTokenFromTokenRefreshToken: azp in id_token does not match original azp\"),Promise.reject(new Error(\"azp in id_token does not match original azp\"))):!t.azp&&e.azp?(i.Log.error(\"UserManager._validateIdTokenFromTokenRefreshToken: azp not in id_token, but present in original id_token\"),Promise.reject(new Error(\"azp not in id_token, but present in original id_token\"))):void 0:(i.Log.error(\"UserManager._validateIdTokenFromTokenRefreshToken: Failed to validate id_token\"),Promise.reject(new Error(\"Failed to validate id_token\")))}))}))}))},e.prototype._signinSilentIframe=function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=e.redirect_uri||this.settings.silent_redirect_uri||this.settings.redirect_uri;return r?(e.redirect_uri=r,e.prompt=e.prompt||\"none\",this._signin(e,this._iframeNavigator,{startUrl:r,silentRequestTimeout:e.silentRequestTimeout||this.settings.silentRequestTimeout}).then((function(t){return t&&(t.profile&&t.profile.sub?i.Log.info(\"UserManager.signinSilent: successful, signed in sub: \",t.profile.sub):i.Log.info(\"UserManager.signinSilent: no sub\")),t}))):(i.Log.error(\"UserManager.signinSilent: No silent_redirect_uri configured\"),Promise.reject(new Error(\"No silent_redirect_uri configured\")))},e.prototype.signinSilentCallback=function t(e){return this._signinCallback(e,this._iframeNavigator).then((function(t){return t&&(t.profile&&t.profile.sub?i.Log.info(\"UserManager.signinSilentCallback: successful, signed in sub: \",t.profile.sub):i.Log.info(\"UserManager.signinSilentCallback: no sub\")),t}))},e.prototype.signinCallback=function t(e){var r=this;return this.readSigninResponseState(e).then((function(t){var n=t.state;t.response;return\"si:r\"===n.request_type?r.signinRedirectCallback(e):\"si:p\"===n.request_type?r.signinPopupCallback(e):\"si:s\"===n.request_type?r.signinSilentCallback(e):Promise.reject(new Error(\"invalid response_type in state\"))}))},e.prototype.signoutCallback=function t(e,r){var n=this;return this.readSignoutResponseState(e).then((function(t){var i=t.state,o=t.response;return i?\"so:r\"===i.request_type?n.signoutRedirectCallback(e):\"so:p\"===i.request_type?n.signoutPopupCallback(e,r):Promise.reject(new Error(\"invalid response_type in state\")):o}))},e.prototype.querySessionStatus=function t(){var e=this,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(r=Object.assign({},r)).request_type=\"si:s\";var n=r.redirect_uri||this.settings.silent_redirect_uri||this.settings.redirect_uri;return n?(r.redirect_uri=n,r.prompt=\"none\",r.response_type=r.response_type||this.settings.query_status_response_type,r.scope=r.scope||\"openid\",r.skipUserInfo=!0,this._signinStart(r,this._iframeNavigator,{startUrl:n,silentRequestTimeout:r.silentRequestTimeout||this.settings.silentRequestTimeout}).then((function(t){return e.processSigninResponse(t.url).then((function(t){if(i.Log.debug(\"UserManager.querySessionStatus: got signin response\"),t.session_state&&t.profile.sub)return i.Log.info(\"UserManager.querySessionStatus: querySessionStatus success for sub: \",t.profile.sub),{session_state:t.session_state,sub:t.profile.sub,sid:t.profile.sid};i.Log.info(\"querySessionStatus successful, user not authenticated\")})).catch((function(t){if(t.session_state&&e.settings.monitorAnonymousSession&&(\"login_required\"==t.message||\"consent_required\"==t.message||\"interaction_required\"==t.message||\"account_selection_required\"==t.message))return i.Log.info(\"UserManager.querySessionStatus: querySessionStatus success for anonymous user\"),{session_state:t.session_state};throw t}))}))):(i.Log.error(\"UserManager.querySessionStatus: No silent_redirect_uri configured\"),Promise.reject(new Error(\"No silent_redirect_uri configured\")))},e.prototype._signin=function t(e,r){var n=this,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this._signinStart(e,r,i).then((function(t){return n._signinEnd(t.url,e)}))},e.prototype._signinStart=function t(e,r){var n=this,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return r.prepare(o).then((function(t){return i.Log.debug(\"UserManager._signinStart: got navigator window handle\"),n.createSigninRequest(e).then((function(e){return i.Log.debug(\"UserManager._signinStart: got signin request\"),o.url=e.url,o.id=e.state.id,t.navigate(o)})).catch((function(e){throw t.close&&(i.Log.debug(\"UserManager._signinStart: Error after preparing navigator, closing navigator window\"),t.close()),e}))}))},e.prototype._signinEnd=function t(e){var r=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.processSigninResponse(e).then((function(t){i.Log.debug(\"UserManager._signinEnd: got signin response\");var e=new a.User(t);if(n.current_sub){if(n.current_sub!==e.profile.sub)return i.Log.debug(\"UserManager._signinEnd: current user does not match user returned from signin. sub from signin: \",e.profile.sub),Promise.reject(new Error(\"login_required\"));i.Log.debug(\"UserManager._signinEnd: current user matches user returned from signin\")}return r.storeUser(e).then((function(){return i.Log.debug(\"UserManager._signinEnd: user stored\"),r._events.load(e),e}))}))},e.prototype._signinCallback=function t(e,r){i.Log.debug(\"UserManager._signinCallback\");var n=\"query\"===this._settings.response_mode||!this._settings.response_mode&&l.SigninRequest.isCode(this._settings.response_type)?\"?\":\"#\";return r.callback(e,void 0,n)},e.prototype.signoutRedirect=function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(e=Object.assign({},e)).request_type=\"so:r\";var r=e.post_logout_redirect_uri||this.settings.post_logout_redirect_uri;r&&(e.post_logout_redirect_uri=r);var n={useReplaceToNavigate:e.useReplaceToNavigate};return this._signoutStart(e,this._redirectNavigator,n).then((function(){i.Log.info(\"UserManager.signoutRedirect: successful\")}))},e.prototype.signoutRedirectCallback=function t(e){return this._signoutEnd(e||this._redirectNavigator.url).then((function(t){return i.Log.info(\"UserManager.signoutRedirectCallback: successful\"),t}))},e.prototype.signoutPopup=function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(e=Object.assign({},e)).request_type=\"so:p\";var r=e.post_logout_redirect_uri||this.settings.popup_post_logout_redirect_uri||this.settings.post_logout_redirect_uri;return e.post_logout_redirect_uri=r,e.display=\"popup\",e.post_logout_redirect_uri&&(e.state=e.state||{}),this._signout(e,this._popupNavigator,{startUrl:r,popupWindowFeatures:e.popupWindowFeatures||this.settings.popupWindowFeatures,popupWindowTarget:e.popupWindowTarget||this.settings.popupWindowTarget}).then((function(){i.Log.info(\"UserManager.signoutPopup: successful\")}))},e.prototype.signoutPopupCallback=function t(e,r){void 0===r&&\"boolean\"==typeof e&&(r=e,e=null);return this._popupNavigator.callback(e,r,\"?\").then((function(){i.Log.info(\"UserManager.signoutPopupCallback: successful\")}))},e.prototype._signout=function t(e,r){var n=this,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this._signoutStart(e,r,i).then((function(t){return n._signoutEnd(t.url)}))},e.prototype._signoutStart=function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=this,n=arguments[1],o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return n.prepare(o).then((function(t){return i.Log.debug(\"UserManager._signoutStart: got navigator window handle\"),r._loadUser().then((function(n){return i.Log.debug(\"UserManager._signoutStart: loaded current user from storage\"),(r._settings.revokeAccessTokenOnSignout?r._revokeInternal(n):Promise.resolve()).then((function(){var s=e.id_token_hint||n&&n.id_token;return s&&(i.Log.debug(\"UserManager._signoutStart: Setting id_token into signout request\"),e.id_token_hint=s),r.removeUser().then((function(){return i.Log.debug(\"UserManager._signoutStart: user removed, creating signout request\"),r.createSignoutRequest(e).then((function(e){return i.Log.debug(\"UserManager._signoutStart: got signout request\"),o.url=e.url,e.state&&(o.id=e.state.id),t.navigate(o)}))}))}))})).catch((function(e){throw t.close&&(i.Log.debug(\"UserManager._signoutStart: Error after preparing navigator, closing navigator window\"),t.close()),e}))}))},e.prototype._signoutEnd=function t(e){return this.processSignoutResponse(e).then((function(t){return i.Log.debug(\"UserManager._signoutEnd: got signout response\"),t}))},e.prototype.revokeAccessToken=function t(){var e=this;return this._loadUser().then((function(t){return e._revokeInternal(t,!0).then((function(r){if(r)return i.Log.debug(\"UserManager.revokeAccessToken: removing token properties from user and re-storing\"),t.access_token=null,t.refresh_token=null,t.expires_at=null,t.token_type=null,e.storeUser(t).then((function(){i.Log.debug(\"UserManager.revokeAccessToken: user stored\"),e._events.load(t)}))}))})).then((function(){i.Log.info(\"UserManager.revokeAccessToken: access token revoked successfully\")}))},e.prototype._revokeInternal=function t(e,r){var n=this;if(e){var o=e.access_token,s=e.refresh_token;return this._revokeAccessTokenInternal(o,r).then((function(t){return n._revokeRefreshTokenInternal(s,r).then((function(e){return t||e||i.Log.debug(\"UserManager.revokeAccessToken: no need to revoke due to no token(s), or JWT format\"),t||e}))}))}return Promise.resolve(!1)},e.prototype._revokeAccessTokenInternal=function t(e,r){return!e||e.indexOf(\".\")>=0?Promise.resolve(!1):this._tokenRevocationClient.revoke(e,r).then((function(){return!0}))},e.prototype._revokeRefreshTokenInternal=function t(e,r){return e?this._tokenRevocationClient.revoke(e,r,\"refresh_token\").then((function(){return!0})):Promise.resolve(!1)},e.prototype.startSilentRenew=function t(){this._silentRenewService.start()},e.prototype.stopSilentRenew=function t(){this._silentRenewService.stop()},e.prototype._loadUser=function t(){return this._userStore.get(this._userStoreKey).then((function(t){return t?(i.Log.debug(\"UserManager._loadUser: user storageString loaded\"),a.User.fromStorageString(t)):(i.Log.debug(\"UserManager._loadUser: no user storageString\"),null)}))},e.prototype.storeUser=function t(e){if(e){i.Log.debug(\"UserManager.storeUser: storing user\");var r=e.toStorageString();return this._userStore.set(this._userStoreKey,r)}return i.Log.debug(\"storeUser.storeUser: removing user\"),this._userStore.remove(this._userStoreKey)},n(e,[{key:\"_redirectNavigator\",get:function t(){return this.settings.redirectNavigator}},{key:\"_popupNavigator\",get:function t(){return this.settings.popupNavigator}},{key:\"_iframeNavigator\",get:function t(){return this.settings.iframeNavigator}},{key:\"_userStore\",get:function t(){return this.settings.userStore}},{key:\"events\",get:function t(){return this._events}},{key:\"_userStoreKey\",get:function t(){return\"user:\"+this.settings.authority+\":\"+this.settings.client_id}}]),e}(o.OidcClient)},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.UserManagerSettings=void 0;var n=function(){function t(t,e){for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:{},n=r.popup_redirect_uri,i=r.popup_post_logout_redirect_uri,g=r.popupWindowFeatures,d=r.popupWindowTarget,p=r.silent_redirect_uri,v=r.silentRequestTimeout,y=r.automaticSilentRenew,m=void 0!==y&&y,_=r.validateSubOnSilentRenew,S=void 0!==_&&_,b=r.includeIdTokenInSilentRenew,w=void 0===b||b,F=r.monitorSession,E=void 0===F||F,x=r.monitorAnonymousSession,A=void 0!==x&&x,k=r.checkSessionInterval,P=void 0===k?2e3:k,C=r.stopCheckSessionOnError,T=void 0===C||C,R=r.query_status_response_type,I=r.revokeAccessTokenOnSignout,D=void 0!==I&&I,L=r.accessTokenExpiringNotificationTime,N=void 0===L?60:L,U=r.redirectNavigator,B=void 0===U?new o.RedirectNavigator:U,O=r.popupNavigator,j=void 0===O?new s.PopupNavigator:O,M=r.iframeNavigator,H=void 0===M?new a.IFrameNavigator:M,V=r.userStore,K=void 0===V?new u.WebStorageStateStore({store:c.Global.sessionStorage}):V;l(this,e);var q=f(this,t.call(this,arguments[0]));return q._popup_redirect_uri=n,q._popup_post_logout_redirect_uri=i,q._popupWindowFeatures=g,q._popupWindowTarget=d,q._silent_redirect_uri=p,q._silentRequestTimeout=v,q._automaticSilentRenew=m,q._validateSubOnSilentRenew=S,q._includeIdTokenInSilentRenew=w,q._accessTokenExpiringNotificationTime=N,q._monitorSession=E,q._monitorAnonymousSession=A,q._checkSessionInterval=P,q._stopCheckSessionOnError=T,R?q._query_status_response_type=R:arguments[0]&&arguments[0].response_type?q._query_status_response_type=h.SigninRequest.isOidc(arguments[0].response_type)?\"id_token\":\"code\":q._query_status_response_type=\"id_token\",q._revokeAccessTokenOnSignout=D,q._redirectNavigator=B,q._popupNavigator=j,q._iframeNavigator=H,q._userStore=K,q}return function r(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(e,t),n(e,[{key:\"popup_redirect_uri\",get:function t(){return this._popup_redirect_uri}},{key:\"popup_post_logout_redirect_uri\",get:function t(){return this._popup_post_logout_redirect_uri}},{key:\"popupWindowFeatures\",get:function t(){return this._popupWindowFeatures}},{key:\"popupWindowTarget\",get:function t(){return this._popupWindowTarget}},{key:\"silent_redirect_uri\",get:function t(){return this._silent_redirect_uri}},{key:\"silentRequestTimeout\",get:function t(){return this._silentRequestTimeout}},{key:\"automaticSilentRenew\",get:function t(){return this._automaticSilentRenew}},{key:\"validateSubOnSilentRenew\",get:function t(){return this._validateSubOnSilentRenew}},{key:\"includeIdTokenInSilentRenew\",get:function t(){return this._includeIdTokenInSilentRenew}},{key:\"accessTokenExpiringNotificationTime\",get:function t(){return this._accessTokenExpiringNotificationTime}},{key:\"monitorSession\",get:function t(){return this._monitorSession}},{key:\"monitorAnonymousSession\",get:function t(){return this._monitorAnonymousSession}},{key:\"checkSessionInterval\",get:function t(){return this._checkSessionInterval}},{key:\"stopCheckSessionOnError\",get:function t(){return this._stopCheckSessionOnError}},{key:\"query_status_response_type\",get:function t(){return this._query_status_response_type}},{key:\"revokeAccessTokenOnSignout\",get:function t(){return this._revokeAccessTokenOnSignout}},{key:\"redirectNavigator\",get:function t(){return this._redirectNavigator}},{key:\"popupNavigator\",get:function t(){return this._popupNavigator}},{key:\"iframeNavigator\",get:function t(){return this._iframeNavigator}},{key:\"userStore\",get:function t(){return this._userStore}}]),e}(i.OidcClientSettings)},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.RedirectNavigator=void 0;var n=function(){function t(t,e){for(var r=0;r1&&void 0!==arguments[1])||arguments[1];n.Log.debug(\"UserManagerEvents.load\"),t.prototype.load.call(this,r),i&&this._userLoaded.raise(r)},e.prototype.unload=function e(){n.Log.debug(\"UserManagerEvents.unload\"),t.prototype.unload.call(this),this._userUnloaded.raise()},e.prototype.addUserLoaded=function t(e){this._userLoaded.addHandler(e)},e.prototype.removeUserLoaded=function t(e){this._userLoaded.removeHandler(e)},e.prototype.addUserUnloaded=function t(e){this._userUnloaded.addHandler(e)},e.prototype.removeUserUnloaded=function t(e){this._userUnloaded.removeHandler(e)},e.prototype.addSilentRenewError=function t(e){this._silentRenewError.addHandler(e)},e.prototype.removeSilentRenewError=function t(e){this._silentRenewError.removeHandler(e)},e.prototype._raiseSilentRenewError=function t(e){n.Log.debug(\"UserManagerEvents._raiseSilentRenewError\",e.message),this._silentRenewError.raise(e)},e.prototype.addUserSignedIn=function t(e){this._userSignedIn.addHandler(e)},e.prototype.removeUserSignedIn=function t(e){this._userSignedIn.removeHandler(e)},e.prototype._raiseUserSignedIn=function t(){n.Log.debug(\"UserManagerEvents._raiseUserSignedIn\"),this._userSignedIn.raise()},e.prototype.addUserSignedOut=function t(e){this._userSignedOut.addHandler(e)},e.prototype.removeUserSignedOut=function t(e){this._userSignedOut.removeHandler(e)},e.prototype._raiseUserSignedOut=function t(){n.Log.debug(\"UserManagerEvents._raiseUserSignedOut\"),this._userSignedOut.raise()},e.prototype.addUserSessionChanged=function t(e){this._userSessionChanged.addHandler(e)},e.prototype.removeUserSessionChanged=function t(e){this._userSessionChanged.removeHandler(e)},e.prototype._raiseUserSessionChanged=function t(){n.Log.debug(\"UserManagerEvents._raiseUserSessionChanged\"),this._userSessionChanged.raise()},e}(i.AccessTokenEvents)},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.Timer=void 0;var n=function(){function t(t,e){for(var r=0;r1&&void 0!==arguments[1]?arguments[1]:o.Global.timer,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0;a(this,e);var s=u(this,t.call(this,r));return s._timer=n,s._nowFunc=i||function(){return Date.now()/1e3},s}return function r(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(e,t),e.prototype.init=function t(e){e<=0&&(e=1),e=parseInt(e);var r=this.now+e;if(this.expiration===r&&this._timerHandle)i.Log.debug(\"Timer.init timer \"+this._name+\" skipping initialization since already initialized for expiration:\",this.expiration);else{this.cancel(),i.Log.debug(\"Timer.init timer \"+this._name+\" for duration:\",e),this._expiration=r;var n=5;e err.message).join('\\n')}`);\n}\nfunction buildingFailed(errors) {\n return new ɵRuntimeError(3501 /* RuntimeErrorCode.BUILDING_FAILED */, ngDevMode && `animation building failed:\\n${errors.map(err => err.message).join('\\n')}`);\n}\nfunction triggerBuildFailed(name, errors) {\n return new ɵRuntimeError(3404 /* RuntimeErrorCode.TRIGGER_BUILD_FAILED */, ngDevMode && `The animation trigger \"${name}\" has failed to build due to the following errors:\\n - ${errors.map(err => err.message).join('\\n - ')}`);\n}\nfunction animationFailed(errors) {\n return new ɵRuntimeError(3502 /* RuntimeErrorCode.ANIMATION_FAILED */, ngDevMode && `Unable to animate due to the following errors:${LINE_START}${errors.map(err => err.message).join(LINE_START)}`);\n}\nfunction registerFailed(errors) {\n return new ɵRuntimeError(3503 /* RuntimeErrorCode.REGISTRATION_FAILED */, ngDevMode && `Unable to build the animation due to the following errors: ${errors.map(err => err.message).join('\\n')}`);\n}\nfunction missingOrDestroyedAnimation() {\n return new ɵRuntimeError(3300 /* RuntimeErrorCode.MISSING_OR_DESTROYED_ANIMATION */, ngDevMode && \"The requested animation doesn't exist or has already been destroyed\");\n}\nfunction createAnimationFailed(errors) {\n return new ɵRuntimeError(3504 /* RuntimeErrorCode.CREATE_ANIMATION_FAILED */, ngDevMode && `Unable to create the animation due to the following errors:${errors.map(err => err.message).join('\\n')}`);\n}\nfunction missingPlayer(id) {\n return new ɵRuntimeError(3301 /* RuntimeErrorCode.MISSING_PLAYER */, ngDevMode && `Unable to find the timeline player referenced by ${id}`);\n}\nfunction missingTrigger(phase, name) {\n return new ɵRuntimeError(3302 /* RuntimeErrorCode.MISSING_TRIGGER */, ngDevMode && `Unable to listen on the animation trigger event \"${phase}\" because the animation trigger \"${name}\" doesn\\'t exist!`);\n}\nfunction missingEvent(name) {\n return new ɵRuntimeError(3303 /* RuntimeErrorCode.MISSING_EVENT */, ngDevMode && `Unable to listen on the animation trigger \"${name}\" because the provided event is undefined!`);\n}\nfunction unsupportedTriggerEvent(phase, name) {\n return new ɵRuntimeError(3400 /* RuntimeErrorCode.UNSUPPORTED_TRIGGER_EVENT */, ngDevMode && `The provided animation trigger event \"${phase}\" for the animation trigger \"${name}\" is not supported!`);\n}\nfunction unregisteredTrigger(name) {\n return new ɵRuntimeError(3401 /* RuntimeErrorCode.UNREGISTERED_TRIGGER */, ngDevMode && `The provided animation trigger \"${name}\" has not been registered!`);\n}\nfunction triggerTransitionsFailed(errors) {\n return new ɵRuntimeError(3402 /* RuntimeErrorCode.TRIGGER_TRANSITIONS_FAILED */, ngDevMode && `Unable to process animations due to the following failed trigger transitions\\n ${errors.map(err => err.message).join('\\n')}`);\n}\nfunction triggerParsingFailed(name, errors) {\n return new ɵRuntimeError(3403 /* RuntimeErrorCode.TRIGGER_PARSING_FAILED */, ngDevMode && `Animation parsing for the ${name} trigger have failed:${LINE_START}${errors.map(err => err.message).join(LINE_START)}`);\n}\nfunction transitionFailed(name, errors) {\n return new ɵRuntimeError(3505 /* RuntimeErrorCode.TRANSITION_FAILED */, ngDevMode && `@${name} has failed due to:\\n ${errors.map(err => err.message).join('\\n- ')}`);\n}\n\n/**\n * Set of all animatable CSS properties\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_animated_properties\n */\nconst ANIMATABLE_PROP_SET = new Set(['-moz-outline-radius', '-moz-outline-radius-bottomleft', '-moz-outline-radius-bottomright', '-moz-outline-radius-topleft', '-moz-outline-radius-topright', '-ms-grid-columns', '-ms-grid-rows', '-webkit-line-clamp', '-webkit-text-fill-color', '-webkit-text-stroke', '-webkit-text-stroke-color', 'accent-color', 'all', 'backdrop-filter', 'background', 'background-color', 'background-position', 'background-size', 'block-size', 'border', 'border-block-end', 'border-block-end-color', 'border-block-end-width', 'border-block-start', 'border-block-start-color', 'border-block-start-width', 'border-bottom', 'border-bottom-color', 'border-bottom-left-radius', 'border-bottom-right-radius', 'border-bottom-width', 'border-color', 'border-end-end-radius', 'border-end-start-radius', 'border-image-outset', 'border-image-slice', 'border-image-width', 'border-inline-end', 'border-inline-end-color', 'border-inline-end-width', 'border-inline-start', 'border-inline-start-color', 'border-inline-start-width', 'border-left', 'border-left-color', 'border-left-width', 'border-radius', 'border-right', 'border-right-color', 'border-right-width', 'border-start-end-radius', 'border-start-start-radius', 'border-top', 'border-top-color', 'border-top-left-radius', 'border-top-right-radius', 'border-top-width', 'border-width', 'bottom', 'box-shadow', 'caret-color', 'clip', 'clip-path', 'color', 'column-count', 'column-gap', 'column-rule', 'column-rule-color', 'column-rule-width', 'column-width', 'columns', 'filter', 'flex', 'flex-basis', 'flex-grow', 'flex-shrink', 'font', 'font-size', 'font-size-adjust', 'font-stretch', 'font-variation-settings', 'font-weight', 'gap', 'grid-column-gap', 'grid-gap', 'grid-row-gap', 'grid-template-columns', 'grid-template-rows', 'height', 'inline-size', 'input-security', 'inset', 'inset-block', 'inset-block-end', 'inset-block-start', 'inset-inline', 'inset-inline-end', 'inset-inline-start', 'left', 'letter-spacing', 'line-clamp', 'line-height', 'margin', 'margin-block-end', 'margin-block-start', 'margin-bottom', 'margin-inline-end', 'margin-inline-start', 'margin-left', 'margin-right', 'margin-top', 'mask', 'mask-border', 'mask-position', 'mask-size', 'max-block-size', 'max-height', 'max-inline-size', 'max-lines', 'max-width', 'min-block-size', 'min-height', 'min-inline-size', 'min-width', 'object-position', 'offset', 'offset-anchor', 'offset-distance', 'offset-path', 'offset-position', 'offset-rotate', 'opacity', 'order', 'outline', 'outline-color', 'outline-offset', 'outline-width', 'padding', 'padding-block-end', 'padding-block-start', 'padding-bottom', 'padding-inline-end', 'padding-inline-start', 'padding-left', 'padding-right', 'padding-top', 'perspective', 'perspective-origin', 'right', 'rotate', 'row-gap', 'scale', 'scroll-margin', 'scroll-margin-block', 'scroll-margin-block-end', 'scroll-margin-block-start', 'scroll-margin-bottom', 'scroll-margin-inline', 'scroll-margin-inline-end', 'scroll-margin-inline-start', 'scroll-margin-left', 'scroll-margin-right', 'scroll-margin-top', 'scroll-padding', 'scroll-padding-block', 'scroll-padding-block-end', 'scroll-padding-block-start', 'scroll-padding-bottom', 'scroll-padding-inline', 'scroll-padding-inline-end', 'scroll-padding-inline-start', 'scroll-padding-left', 'scroll-padding-right', 'scroll-padding-top', 'scroll-snap-coordinate', 'scroll-snap-destination', 'scrollbar-color', 'shape-image-threshold', 'shape-margin', 'shape-outside', 'tab-size', 'text-decoration', 'text-decoration-color', 'text-decoration-thickness', 'text-emphasis', 'text-emphasis-color', 'text-indent', 'text-shadow', 'text-underline-offset', 'top', 'transform', 'transform-origin', 'translate', 'vertical-align', 'visibility', 'width', 'word-spacing', 'z-index', 'zoom']);\nfunction optimizeGroupPlayer(players) {\n switch (players.length) {\n case 0:\n return new NoopAnimationPlayer();\n case 1:\n return players[0];\n default:\n return new ɵAnimationGroupPlayer(players);\n }\n}\nfunction normalizeKeyframes$1(normalizer, keyframes, preStyles = new Map(), postStyles = new Map()) {\n const errors = [];\n const normalizedKeyframes = [];\n let previousOffset = -1;\n let previousKeyframe = null;\n keyframes.forEach(kf => {\n const offset = kf.get('offset');\n const isSameOffset = offset == previousOffset;\n const normalizedKeyframe = isSameOffset && previousKeyframe || new Map();\n kf.forEach((val, prop) => {\n let normalizedProp = prop;\n let normalizedValue = val;\n if (prop !== 'offset') {\n normalizedProp = normalizer.normalizePropertyName(normalizedProp, errors);\n switch (normalizedValue) {\n case ɵPRE_STYLE:\n normalizedValue = preStyles.get(prop);\n break;\n case AUTO_STYLE:\n normalizedValue = postStyles.get(prop);\n break;\n default:\n normalizedValue = normalizer.normalizeStyleValue(prop, normalizedProp, normalizedValue, errors);\n break;\n }\n }\n normalizedKeyframe.set(normalizedProp, normalizedValue);\n });\n if (!isSameOffset) {\n normalizedKeyframes.push(normalizedKeyframe);\n }\n previousKeyframe = normalizedKeyframe;\n previousOffset = offset;\n });\n if (errors.length) {\n throw animationFailed(errors);\n }\n return normalizedKeyframes;\n}\nfunction listenOnPlayer(player, eventName, event, callback) {\n switch (eventName) {\n case 'start':\n player.onStart(() => callback(event && copyAnimationEvent(event, 'start', player)));\n break;\n case 'done':\n player.onDone(() => callback(event && copyAnimationEvent(event, 'done', player)));\n break;\n case 'destroy':\n player.onDestroy(() => callback(event && copyAnimationEvent(event, 'destroy', player)));\n break;\n }\n}\nfunction copyAnimationEvent(e, phaseName, player) {\n const totalTime = player.totalTime;\n const disabled = player.disabled ? true : false;\n const event = makeAnimationEvent(e.element, e.triggerName, e.fromState, e.toState, phaseName || e.phaseName, totalTime == undefined ? e.totalTime : totalTime, disabled);\n const data = e['_data'];\n if (data != null) {\n event['_data'] = data;\n }\n return event;\n}\nfunction makeAnimationEvent(element, triggerName, fromState, toState, phaseName = '', totalTime = 0, disabled) {\n return {\n element,\n triggerName,\n fromState,\n toState,\n phaseName,\n totalTime,\n disabled: !!disabled\n };\n}\nfunction getOrSetDefaultValue(map, key, defaultValue) {\n let value = map.get(key);\n if (!value) {\n map.set(key, value = defaultValue);\n }\n return value;\n}\nfunction parseTimelineCommand(command) {\n const separatorPos = command.indexOf(':');\n const id = command.substring(1, separatorPos);\n const action = command.slice(separatorPos + 1);\n return [id, action];\n}\nconst documentElement = /* @__PURE__ */(() => typeof document === 'undefined' ? null : document.documentElement)();\nfunction getParentElement(element) {\n const parent = element.parentNode || element.host || null; // consider host to support shadow DOM\n if (parent === documentElement) {\n return null;\n }\n return parent;\n}\nfunction containsVendorPrefix(prop) {\n // Webkit is the only real popular vendor prefix nowadays\n // cc: http://shouldiprefix.com/\n return prop.substring(1, 6) == 'ebkit'; // webkit or Webkit\n}\nlet _CACHED_BODY = null;\nlet _IS_WEBKIT = false;\nfunction validateStyleProperty(prop) {\n if (!_CACHED_BODY) {\n _CACHED_BODY = getBodyNode() || {};\n _IS_WEBKIT = _CACHED_BODY.style ? 'WebkitAppearance' in _CACHED_BODY.style : false;\n }\n let result = true;\n if (_CACHED_BODY.style && !containsVendorPrefix(prop)) {\n result = prop in _CACHED_BODY.style;\n if (!result && _IS_WEBKIT) {\n const camelProp = 'Webkit' + prop.charAt(0).toUpperCase() + prop.slice(1);\n result = camelProp in _CACHED_BODY.style;\n }\n }\n return result;\n}\nfunction validateWebAnimatableStyleProperty(prop) {\n return ANIMATABLE_PROP_SET.has(prop);\n}\nfunction getBodyNode() {\n if (typeof document != 'undefined') {\n return document.body;\n }\n return null;\n}\nfunction containsElement(elm1, elm2) {\n while (elm2) {\n if (elm2 === elm1) {\n return true;\n }\n elm2 = getParentElement(elm2);\n }\n return false;\n}\nfunction invokeQuery(element, selector, multi) {\n if (multi) {\n return Array.from(element.querySelectorAll(selector));\n }\n const elem = element.querySelector(selector);\n return elem ? [elem] : [];\n}\nfunction hypenatePropsKeys(original) {\n const newMap = new Map();\n original.forEach((val, prop) => {\n const newProp = prop.replace(/([a-z])([A-Z])/g, '$1-$2');\n newMap.set(newProp, val);\n });\n return newMap;\n}\n\n/**\n * @publicApi\n *\n * `AnimationDriver` implentation for Noop animations\n */\nclass NoopAnimationDriver {\n /**\n * @returns Whether `prop` is a valid CSS property\n */\n validateStyleProperty(prop) {\n return validateStyleProperty(prop);\n }\n /**\n * @deprecated unused\n */\n matchesElement(_element, _selector) {\n // This method is deprecated and no longer in use so we return false.\n return false;\n }\n /**\n *\n * @returns Whether elm1 contains elm2.\n */\n containsElement(elm1, elm2) {\n return containsElement(elm1, elm2);\n }\n /**\n * @returns Rhe parent of the given element or `null` if the element is the `document`\n */\n getParentElement(element) {\n return getParentElement(element);\n }\n /**\n * @returns The result of the query selector on the element. The array will contain up to 1 item\n * if `multi` is `false`.\n */\n query(element, selector, multi) {\n return invokeQuery(element, selector, multi);\n }\n /**\n * @returns The `defaultValue` or empty string\n */\n computeStyle(element, prop, defaultValue) {\n return defaultValue || '';\n }\n /**\n * @returns An `NoopAnimationPlayer`\n */\n animate(element, keyframes, duration, delay, easing, previousPlayers = [], scrubberAccessRequested) {\n return new NoopAnimationPlayer(duration, delay);\n }\n static {\n this.ɵfac = function NoopAnimationDriver_Factory(t) {\n return new (t || NoopAnimationDriver)();\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NoopAnimationDriver,\n factory: NoopAnimationDriver.ɵfac\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NoopAnimationDriver, [{\n type: Injectable\n }], null, null);\n})();\n/**\n * @publicApi\n */\nclass AnimationDriver {\n /**\n * @deprecated Use the NoopAnimationDriver class.\n */\n static {\n this.NOOP = new NoopAnimationDriver();\n }\n}\nclass AnimationStyleNormalizer {}\nclass NoopAnimationStyleNormalizer {\n normalizePropertyName(propertyName, errors) {\n return propertyName;\n }\n normalizeStyleValue(userProvidedProperty, normalizedProperty, value, errors) {\n return value;\n }\n}\nconst ONE_SECOND = 1000;\nconst SUBSTITUTION_EXPR_START = '{{';\nconst SUBSTITUTION_EXPR_END = '}}';\nconst ENTER_CLASSNAME = 'ng-enter';\nconst LEAVE_CLASSNAME = 'ng-leave';\nconst NG_TRIGGER_CLASSNAME = 'ng-trigger';\nconst NG_TRIGGER_SELECTOR = '.ng-trigger';\nconst NG_ANIMATING_CLASSNAME = 'ng-animating';\nconst NG_ANIMATING_SELECTOR = '.ng-animating';\nfunction resolveTimingValue(value) {\n if (typeof value == 'number') return value;\n const matches = value.match(/^(-?[\\.\\d]+)(m?s)/);\n if (!matches || matches.length < 2) return 0;\n return _convertTimeValueToMS(parseFloat(matches[1]), matches[2]);\n}\nfunction _convertTimeValueToMS(value, unit) {\n switch (unit) {\n case 's':\n return value * ONE_SECOND;\n default:\n // ms or something else\n return value;\n }\n}\nfunction resolveTiming(timings, errors, allowNegativeValues) {\n return timings.hasOwnProperty('duration') ? timings : parseTimeExpression(timings, errors, allowNegativeValues);\n}\nfunction parseTimeExpression(exp, errors, allowNegativeValues) {\n const regex = /^(-?[\\.\\d]+)(m?s)(?:\\s+(-?[\\.\\d]+)(m?s))?(?:\\s+([-a-z]+(?:\\(.+?\\))?))?$/i;\n let duration;\n let delay = 0;\n let easing = '';\n if (typeof exp === 'string') {\n const matches = exp.match(regex);\n if (matches === null) {\n errors.push(invalidTimingValue(exp));\n return {\n duration: 0,\n delay: 0,\n easing: ''\n };\n }\n duration = _convertTimeValueToMS(parseFloat(matches[1]), matches[2]);\n const delayMatch = matches[3];\n if (delayMatch != null) {\n delay = _convertTimeValueToMS(parseFloat(delayMatch), matches[4]);\n }\n const easingVal = matches[5];\n if (easingVal) {\n easing = easingVal;\n }\n } else {\n duration = exp;\n }\n if (!allowNegativeValues) {\n let containsErrors = false;\n let startIndex = errors.length;\n if (duration < 0) {\n errors.push(negativeStepValue());\n containsErrors = true;\n }\n if (delay < 0) {\n errors.push(negativeDelayValue());\n containsErrors = true;\n }\n if (containsErrors) {\n errors.splice(startIndex, 0, invalidTimingValue(exp));\n }\n }\n return {\n duration,\n delay,\n easing\n };\n}\nfunction normalizeKeyframes(keyframes) {\n if (!keyframes.length) {\n return [];\n }\n if (keyframes[0] instanceof Map) {\n return keyframes;\n }\n return keyframes.map(kf => new Map(Object.entries(kf)));\n}\nfunction normalizeStyles(styles) {\n return Array.isArray(styles) ? new Map(...styles) : new Map(styles);\n}\nfunction setStyles(element, styles, formerStyles) {\n styles.forEach((val, prop) => {\n const camelProp = dashCaseToCamelCase(prop);\n if (formerStyles && !formerStyles.has(prop)) {\n formerStyles.set(prop, element.style[camelProp]);\n }\n element.style[camelProp] = val;\n });\n}\nfunction eraseStyles(element, styles) {\n styles.forEach((_, prop) => {\n const camelProp = dashCaseToCamelCase(prop);\n element.style[camelProp] = '';\n });\n}\nfunction normalizeAnimationEntry(steps) {\n if (Array.isArray(steps)) {\n if (steps.length == 1) return steps[0];\n return sequence(steps);\n }\n return steps;\n}\nfunction validateStyleParams(value, options, errors) {\n const params = options.params || {};\n const matches = extractStyleParams(value);\n if (matches.length) {\n matches.forEach(varName => {\n if (!params.hasOwnProperty(varName)) {\n errors.push(invalidStyleParams(varName));\n }\n });\n }\n}\nconst PARAM_REGEX = new RegExp(`${SUBSTITUTION_EXPR_START}\\\\s*(.+?)\\\\s*${SUBSTITUTION_EXPR_END}`, 'g');\nfunction extractStyleParams(value) {\n let params = [];\n if (typeof value === 'string') {\n let match;\n while (match = PARAM_REGEX.exec(value)) {\n params.push(match[1]);\n }\n PARAM_REGEX.lastIndex = 0;\n }\n return params;\n}\nfunction interpolateParams(value, params, errors) {\n const original = `${value}`;\n const str = original.replace(PARAM_REGEX, (_, varName) => {\n let localVal = params[varName];\n // this means that the value was never overridden by the data passed in by the user\n if (localVal == null) {\n errors.push(invalidParamValue(varName));\n localVal = '';\n }\n return localVal.toString();\n });\n // we do this to assert that numeric values stay as they are\n return str == original ? value : str;\n}\nconst DASH_CASE_REGEXP = /-+([a-z0-9])/g;\nfunction dashCaseToCamelCase(input) {\n return input.replace(DASH_CASE_REGEXP, (...m) => m[1].toUpperCase());\n}\nfunction camelCaseToDashCase(input) {\n return input.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n}\nfunction allowPreviousPlayerStylesMerge(duration, delay) {\n return duration === 0 || delay === 0;\n}\nfunction balancePreviousStylesIntoKeyframes(element, keyframes, previousStyles) {\n if (previousStyles.size && keyframes.length) {\n let startingKeyframe = keyframes[0];\n let missingStyleProps = [];\n previousStyles.forEach((val, prop) => {\n if (!startingKeyframe.has(prop)) {\n missingStyleProps.push(prop);\n }\n startingKeyframe.set(prop, val);\n });\n if (missingStyleProps.length) {\n for (let i = 1; i < keyframes.length; i++) {\n let kf = keyframes[i];\n missingStyleProps.forEach(prop => kf.set(prop, computeStyle(element, prop)));\n }\n }\n }\n return keyframes;\n}\nfunction visitDslNode(visitor, node, context) {\n switch (node.type) {\n case AnimationMetadataType.Trigger:\n return visitor.visitTrigger(node, context);\n case AnimationMetadataType.State:\n return visitor.visitState(node, context);\n case AnimationMetadataType.Transition:\n return visitor.visitTransition(node, context);\n case AnimationMetadataType.Sequence:\n return visitor.visitSequence(node, context);\n case AnimationMetadataType.Group:\n return visitor.visitGroup(node, context);\n case AnimationMetadataType.Animate:\n return visitor.visitAnimate(node, context);\n case AnimationMetadataType.Keyframes:\n return visitor.visitKeyframes(node, context);\n case AnimationMetadataType.Style:\n return visitor.visitStyle(node, context);\n case AnimationMetadataType.Reference:\n return visitor.visitReference(node, context);\n case AnimationMetadataType.AnimateChild:\n return visitor.visitAnimateChild(node, context);\n case AnimationMetadataType.AnimateRef:\n return visitor.visitAnimateRef(node, context);\n case AnimationMetadataType.Query:\n return visitor.visitQuery(node, context);\n case AnimationMetadataType.Stagger:\n return visitor.visitStagger(node, context);\n default:\n throw invalidNodeType(node.type);\n }\n}\nfunction computeStyle(element, prop) {\n return window.getComputedStyle(element)[prop];\n}\nconst DIMENSIONAL_PROP_SET = new Set(['width', 'height', 'minWidth', 'minHeight', 'maxWidth', 'maxHeight', 'left', 'top', 'bottom', 'right', 'fontSize', 'outlineWidth', 'outlineOffset', 'paddingTop', 'paddingLeft', 'paddingBottom', 'paddingRight', 'marginTop', 'marginLeft', 'marginBottom', 'marginRight', 'borderRadius', 'borderWidth', 'borderTopWidth', 'borderLeftWidth', 'borderRightWidth', 'borderBottomWidth', 'textIndent', 'perspective']);\nclass WebAnimationsStyleNormalizer extends AnimationStyleNormalizer {\n normalizePropertyName(propertyName, errors) {\n return dashCaseToCamelCase(propertyName);\n }\n normalizeStyleValue(userProvidedProperty, normalizedProperty, value, errors) {\n let unit = '';\n const strVal = value.toString().trim();\n if (DIMENSIONAL_PROP_SET.has(normalizedProperty) && value !== 0 && value !== '0') {\n if (typeof value === 'number') {\n unit = 'px';\n } else {\n const valAndSuffixMatch = value.match(/^[+-]?[\\d\\.]+([a-z]*)$/);\n if (valAndSuffixMatch && valAndSuffixMatch[1].length == 0) {\n errors.push(invalidCssUnitValue(userProvidedProperty, value));\n }\n }\n }\n return strVal + unit;\n }\n}\nfunction createListOfWarnings(warnings) {\n const LINE_START = '\\n - ';\n return `${LINE_START}${warnings.filter(Boolean).map(warning => warning).join(LINE_START)}`;\n}\nfunction warnValidation(warnings) {\n (typeof ngDevMode === 'undefined' || ngDevMode) && console.warn(`animation validation warnings:${createListOfWarnings(warnings)}`);\n}\nfunction warnTriggerBuild(name, warnings) {\n (typeof ngDevMode === 'undefined' || ngDevMode) && console.warn(`The animation trigger \"${name}\" has built with the following warnings:${createListOfWarnings(warnings)}`);\n}\nfunction warnRegister(warnings) {\n (typeof ngDevMode === 'undefined' || ngDevMode) && console.warn(`Animation built with the following warnings:${createListOfWarnings(warnings)}`);\n}\nfunction triggerParsingWarnings(name, warnings) {\n (typeof ngDevMode === 'undefined' || ngDevMode) && console.warn(`Animation parsing for the ${name} trigger presents the following warnings:${createListOfWarnings(warnings)}`);\n}\nfunction pushUnrecognizedPropertiesWarning(warnings, props) {\n if (props.length) {\n warnings.push(`The following provided properties are not recognized: ${props.join(', ')}`);\n }\n}\nconst ANY_STATE = '*';\nfunction parseTransitionExpr(transitionValue, errors) {\n const expressions = [];\n if (typeof transitionValue == 'string') {\n transitionValue.split(/\\s*,\\s*/).forEach(str => parseInnerTransitionStr(str, expressions, errors));\n } else {\n expressions.push(transitionValue);\n }\n return expressions;\n}\nfunction parseInnerTransitionStr(eventStr, expressions, errors) {\n if (eventStr[0] == ':') {\n const result = parseAnimationAlias(eventStr, errors);\n if (typeof result == 'function') {\n expressions.push(result);\n return;\n }\n eventStr = result;\n }\n const match = eventStr.match(/^(\\*|[-\\w]+)\\s*()\\s*(\\*|[-\\w]+)$/);\n if (match == null || match.length < 4) {\n errors.push(invalidExpression(eventStr));\n return expressions;\n }\n const fromState = match[1];\n const separator = match[2];\n const toState = match[3];\n expressions.push(makeLambdaFromStates(fromState, toState));\n const isFullAnyStateExpr = fromState == ANY_STATE && toState == ANY_STATE;\n if (separator[0] == '<' && !isFullAnyStateExpr) {\n expressions.push(makeLambdaFromStates(toState, fromState));\n }\n return;\n}\nfunction parseAnimationAlias(alias, errors) {\n switch (alias) {\n case ':enter':\n return 'void => *';\n case ':leave':\n return '* => void';\n case ':increment':\n return (fromState, toState) => parseFloat(toState) > parseFloat(fromState);\n case ':decrement':\n return (fromState, toState) => parseFloat(toState) < parseFloat(fromState);\n default:\n errors.push(invalidTransitionAlias(alias));\n return '* => *';\n }\n}\n// DO NOT REFACTOR ... keep the follow set instantiations\n// with the values intact (closure compiler for some reason\n// removes follow-up lines that add the values outside of\n// the constructor...\nconst TRUE_BOOLEAN_VALUES = new Set(['true', '1']);\nconst FALSE_BOOLEAN_VALUES = new Set(['false', '0']);\nfunction makeLambdaFromStates(lhs, rhs) {\n const LHS_MATCH_BOOLEAN = TRUE_BOOLEAN_VALUES.has(lhs) || FALSE_BOOLEAN_VALUES.has(lhs);\n const RHS_MATCH_BOOLEAN = TRUE_BOOLEAN_VALUES.has(rhs) || FALSE_BOOLEAN_VALUES.has(rhs);\n return (fromState, toState) => {\n let lhsMatch = lhs == ANY_STATE || lhs == fromState;\n let rhsMatch = rhs == ANY_STATE || rhs == toState;\n if (!lhsMatch && LHS_MATCH_BOOLEAN && typeof fromState === 'boolean') {\n lhsMatch = fromState ? TRUE_BOOLEAN_VALUES.has(lhs) : FALSE_BOOLEAN_VALUES.has(lhs);\n }\n if (!rhsMatch && RHS_MATCH_BOOLEAN && typeof toState === 'boolean') {\n rhsMatch = toState ? TRUE_BOOLEAN_VALUES.has(rhs) : FALSE_BOOLEAN_VALUES.has(rhs);\n }\n return lhsMatch && rhsMatch;\n };\n}\nconst SELF_TOKEN = ':self';\nconst SELF_TOKEN_REGEX = new RegExp(`s*${SELF_TOKEN}s*,?`, 'g');\n/*\n * [Validation]\n * The visitor code below will traverse the animation AST generated by the animation verb functions\n * (the output is a tree of objects) and attempt to perform a series of validations on the data. The\n * following corner-cases will be validated:\n *\n * 1. Overlap of animations\n * Given that a CSS property cannot be animated in more than one place at the same time, it's\n * important that this behavior is detected and validated. The way in which this occurs is that\n * each time a style property is examined, a string-map containing the property will be updated with\n * the start and end times for when the property is used within an animation step.\n *\n * If there are two or more parallel animations that are currently running (these are invoked by the\n * group()) on the same element then the validator will throw an error. Since the start/end timing\n * values are collected for each property then if the current animation step is animating the same\n * property and its timing values fall anywhere into the window of time that the property is\n * currently being animated within then this is what causes an error.\n *\n * 2. Timing values\n * The validator will validate to see if a timing value of `duration delay easing` or\n * `durationNumber` is valid or not.\n *\n * (note that upon validation the code below will replace the timing data with an object containing\n * {duration,delay,easing}.\n *\n * 3. Offset Validation\n * Each of the style() calls are allowed to have an offset value when placed inside of keyframes().\n * Offsets within keyframes() are considered valid when:\n *\n * - No offsets are used at all\n * - Each style() entry contains an offset value\n * - Each offset is between 0 and 1\n * - Each offset is greater to or equal than the previous one\n *\n * Otherwise an error will be thrown.\n */\nfunction buildAnimationAst(driver, metadata, errors, warnings) {\n return new AnimationAstBuilderVisitor(driver).build(metadata, errors, warnings);\n}\nconst ROOT_SELECTOR = '';\nclass AnimationAstBuilderVisitor {\n constructor(_driver) {\n this._driver = _driver;\n }\n build(metadata, errors, warnings) {\n const context = new AnimationAstBuilderContext(errors);\n this._resetContextStyleTimingState(context);\n const ast = visitDslNode(this, normalizeAnimationEntry(metadata), context);\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (context.unsupportedCSSPropertiesFound.size) {\n pushUnrecognizedPropertiesWarning(warnings, [...context.unsupportedCSSPropertiesFound.keys()]);\n }\n }\n return ast;\n }\n _resetContextStyleTimingState(context) {\n context.currentQuerySelector = ROOT_SELECTOR;\n context.collectedStyles = new Map();\n context.collectedStyles.set(ROOT_SELECTOR, new Map());\n context.currentTime = 0;\n }\n visitTrigger(metadata, context) {\n let queryCount = context.queryCount = 0;\n let depCount = context.depCount = 0;\n const states = [];\n const transitions = [];\n if (metadata.name.charAt(0) == '@') {\n context.errors.push(invalidTrigger());\n }\n metadata.definitions.forEach(def => {\n this._resetContextStyleTimingState(context);\n if (def.type == AnimationMetadataType.State) {\n const stateDef = def;\n const name = stateDef.name;\n name.toString().split(/\\s*,\\s*/).forEach(n => {\n stateDef.name = n;\n states.push(this.visitState(stateDef, context));\n });\n stateDef.name = name;\n } else if (def.type == AnimationMetadataType.Transition) {\n const transition = this.visitTransition(def, context);\n queryCount += transition.queryCount;\n depCount += transition.depCount;\n transitions.push(transition);\n } else {\n context.errors.push(invalidDefinition());\n }\n });\n return {\n type: AnimationMetadataType.Trigger,\n name: metadata.name,\n states,\n transitions,\n queryCount,\n depCount,\n options: null\n };\n }\n visitState(metadata, context) {\n const styleAst = this.visitStyle(metadata.styles, context);\n const astParams = metadata.options && metadata.options.params || null;\n if (styleAst.containsDynamicStyles) {\n const missingSubs = new Set();\n const params = astParams || {};\n styleAst.styles.forEach(style => {\n if (style instanceof Map) {\n style.forEach(value => {\n extractStyleParams(value).forEach(sub => {\n if (!params.hasOwnProperty(sub)) {\n missingSubs.add(sub);\n }\n });\n });\n }\n });\n if (missingSubs.size) {\n context.errors.push(invalidState(metadata.name, [...missingSubs.values()]));\n }\n }\n return {\n type: AnimationMetadataType.State,\n name: metadata.name,\n style: styleAst,\n options: astParams ? {\n params: astParams\n } : null\n };\n }\n visitTransition(metadata, context) {\n context.queryCount = 0;\n context.depCount = 0;\n const animation = visitDslNode(this, normalizeAnimationEntry(metadata.animation), context);\n const matchers = parseTransitionExpr(metadata.expr, context.errors);\n return {\n type: AnimationMetadataType.Transition,\n matchers,\n animation,\n queryCount: context.queryCount,\n depCount: context.depCount,\n options: normalizeAnimationOptions(metadata.options)\n };\n }\n visitSequence(metadata, context) {\n return {\n type: AnimationMetadataType.Sequence,\n steps: metadata.steps.map(s => visitDslNode(this, s, context)),\n options: normalizeAnimationOptions(metadata.options)\n };\n }\n visitGroup(metadata, context) {\n const currentTime = context.currentTime;\n let furthestTime = 0;\n const steps = metadata.steps.map(step => {\n context.currentTime = currentTime;\n const innerAst = visitDslNode(this, step, context);\n furthestTime = Math.max(furthestTime, context.currentTime);\n return innerAst;\n });\n context.currentTime = furthestTime;\n return {\n type: AnimationMetadataType.Group,\n steps,\n options: normalizeAnimationOptions(metadata.options)\n };\n }\n visitAnimate(metadata, context) {\n const timingAst = constructTimingAst(metadata.timings, context.errors);\n context.currentAnimateTimings = timingAst;\n let styleAst;\n let styleMetadata = metadata.styles ? metadata.styles : style({});\n if (styleMetadata.type == AnimationMetadataType.Keyframes) {\n styleAst = this.visitKeyframes(styleMetadata, context);\n } else {\n let styleMetadata = metadata.styles;\n let isEmpty = false;\n if (!styleMetadata) {\n isEmpty = true;\n const newStyleData = {};\n if (timingAst.easing) {\n newStyleData['easing'] = timingAst.easing;\n }\n styleMetadata = style(newStyleData);\n }\n context.currentTime += timingAst.duration + timingAst.delay;\n const _styleAst = this.visitStyle(styleMetadata, context);\n _styleAst.isEmptyStep = isEmpty;\n styleAst = _styleAst;\n }\n context.currentAnimateTimings = null;\n return {\n type: AnimationMetadataType.Animate,\n timings: timingAst,\n style: styleAst,\n options: null\n };\n }\n visitStyle(metadata, context) {\n const ast = this._makeStyleAst(metadata, context);\n this._validateStyleAst(ast, context);\n return ast;\n }\n _makeStyleAst(metadata, context) {\n const styles = [];\n const metadataStyles = Array.isArray(metadata.styles) ? metadata.styles : [metadata.styles];\n for (let styleTuple of metadataStyles) {\n if (typeof styleTuple === 'string') {\n if (styleTuple === AUTO_STYLE) {\n styles.push(styleTuple);\n } else {\n context.errors.push(invalidStyleValue(styleTuple));\n }\n } else {\n styles.push(new Map(Object.entries(styleTuple)));\n }\n }\n let containsDynamicStyles = false;\n let collectedEasing = null;\n styles.forEach(styleData => {\n if (styleData instanceof Map) {\n if (styleData.has('easing')) {\n collectedEasing = styleData.get('easing');\n styleData.delete('easing');\n }\n if (!containsDynamicStyles) {\n for (let value of styleData.values()) {\n if (value.toString().indexOf(SUBSTITUTION_EXPR_START) >= 0) {\n containsDynamicStyles = true;\n break;\n }\n }\n }\n }\n });\n return {\n type: AnimationMetadataType.Style,\n styles,\n easing: collectedEasing,\n offset: metadata.offset,\n containsDynamicStyles,\n options: null\n };\n }\n _validateStyleAst(ast, context) {\n const timings = context.currentAnimateTimings;\n let endTime = context.currentTime;\n let startTime = context.currentTime;\n if (timings && startTime > 0) {\n startTime -= timings.duration + timings.delay;\n }\n ast.styles.forEach(tuple => {\n if (typeof tuple === 'string') return;\n tuple.forEach((value, prop) => {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (!this._driver.validateStyleProperty(prop)) {\n tuple.delete(prop);\n context.unsupportedCSSPropertiesFound.add(prop);\n return;\n }\n }\n // This is guaranteed to have a defined Map at this querySelector location making it\n // safe to add the assertion here. It is set as a default empty map in prior methods.\n const collectedStyles = context.collectedStyles.get(context.currentQuerySelector);\n const collectedEntry = collectedStyles.get(prop);\n let updateCollectedStyle = true;\n if (collectedEntry) {\n if (startTime != endTime && startTime >= collectedEntry.startTime && endTime <= collectedEntry.endTime) {\n context.errors.push(invalidParallelAnimation(prop, collectedEntry.startTime, collectedEntry.endTime, startTime, endTime));\n updateCollectedStyle = false;\n }\n // we always choose the smaller start time value since we\n // want to have a record of the entire animation window where\n // the style property is being animated in between\n startTime = collectedEntry.startTime;\n }\n if (updateCollectedStyle) {\n collectedStyles.set(prop, {\n startTime,\n endTime\n });\n }\n if (context.options) {\n validateStyleParams(value, context.options, context.errors);\n }\n });\n });\n }\n visitKeyframes(metadata, context) {\n const ast = {\n type: AnimationMetadataType.Keyframes,\n styles: [],\n options: null\n };\n if (!context.currentAnimateTimings) {\n context.errors.push(invalidKeyframes());\n return ast;\n }\n const MAX_KEYFRAME_OFFSET = 1;\n let totalKeyframesWithOffsets = 0;\n const offsets = [];\n let offsetsOutOfOrder = false;\n let keyframesOutOfRange = false;\n let previousOffset = 0;\n const keyframes = metadata.steps.map(styles => {\n const style = this._makeStyleAst(styles, context);\n let offsetVal = style.offset != null ? style.offset : consumeOffset(style.styles);\n let offset = 0;\n if (offsetVal != null) {\n totalKeyframesWithOffsets++;\n offset = style.offset = offsetVal;\n }\n keyframesOutOfRange = keyframesOutOfRange || offset < 0 || offset > 1;\n offsetsOutOfOrder = offsetsOutOfOrder || offset < previousOffset;\n previousOffset = offset;\n offsets.push(offset);\n return style;\n });\n if (keyframesOutOfRange) {\n context.errors.push(invalidOffset());\n }\n if (offsetsOutOfOrder) {\n context.errors.push(keyframeOffsetsOutOfOrder());\n }\n const length = metadata.steps.length;\n let generatedOffset = 0;\n if (totalKeyframesWithOffsets > 0 && totalKeyframesWithOffsets < length) {\n context.errors.push(keyframesMissingOffsets());\n } else if (totalKeyframesWithOffsets == 0) {\n generatedOffset = MAX_KEYFRAME_OFFSET / (length - 1);\n }\n const limit = length - 1;\n const currentTime = context.currentTime;\n const currentAnimateTimings = context.currentAnimateTimings;\n const animateDuration = currentAnimateTimings.duration;\n keyframes.forEach((kf, i) => {\n const offset = generatedOffset > 0 ? i == limit ? 1 : generatedOffset * i : offsets[i];\n const durationUpToThisFrame = offset * animateDuration;\n context.currentTime = currentTime + currentAnimateTimings.delay + durationUpToThisFrame;\n currentAnimateTimings.duration = durationUpToThisFrame;\n this._validateStyleAst(kf, context);\n kf.offset = offset;\n ast.styles.push(kf);\n });\n return ast;\n }\n visitReference(metadata, context) {\n return {\n type: AnimationMetadataType.Reference,\n animation: visitDslNode(this, normalizeAnimationEntry(metadata.animation), context),\n options: normalizeAnimationOptions(metadata.options)\n };\n }\n visitAnimateChild(metadata, context) {\n context.depCount++;\n return {\n type: AnimationMetadataType.AnimateChild,\n options: normalizeAnimationOptions(metadata.options)\n };\n }\n visitAnimateRef(metadata, context) {\n return {\n type: AnimationMetadataType.AnimateRef,\n animation: this.visitReference(metadata.animation, context),\n options: normalizeAnimationOptions(metadata.options)\n };\n }\n visitQuery(metadata, context) {\n const parentSelector = context.currentQuerySelector;\n const options = metadata.options || {};\n context.queryCount++;\n context.currentQuery = metadata;\n const [selector, includeSelf] = normalizeSelector(metadata.selector);\n context.currentQuerySelector = parentSelector.length ? parentSelector + ' ' + selector : selector;\n getOrSetDefaultValue(context.collectedStyles, context.currentQuerySelector, new Map());\n const animation = visitDslNode(this, normalizeAnimationEntry(metadata.animation), context);\n context.currentQuery = null;\n context.currentQuerySelector = parentSelector;\n return {\n type: AnimationMetadataType.Query,\n selector,\n limit: options.limit || 0,\n optional: !!options.optional,\n includeSelf,\n animation,\n originalSelector: metadata.selector,\n options: normalizeAnimationOptions(metadata.options)\n };\n }\n visitStagger(metadata, context) {\n if (!context.currentQuery) {\n context.errors.push(invalidStagger());\n }\n const timings = metadata.timings === 'full' ? {\n duration: 0,\n delay: 0,\n easing: 'full'\n } : resolveTiming(metadata.timings, context.errors, true);\n return {\n type: AnimationMetadataType.Stagger,\n animation: visitDslNode(this, normalizeAnimationEntry(metadata.animation), context),\n timings,\n options: null\n };\n }\n}\nfunction normalizeSelector(selector) {\n const hasAmpersand = selector.split(/\\s*,\\s*/).find(token => token == SELF_TOKEN) ? true : false;\n if (hasAmpersand) {\n selector = selector.replace(SELF_TOKEN_REGEX, '');\n }\n // Note: the :enter and :leave aren't normalized here since those\n // selectors are filled in at runtime during timeline building\n selector = selector.replace(/@\\*/g, NG_TRIGGER_SELECTOR).replace(/@\\w+/g, match => NG_TRIGGER_SELECTOR + '-' + match.slice(1)).replace(/:animating/g, NG_ANIMATING_SELECTOR);\n return [selector, hasAmpersand];\n}\nfunction normalizeParams(obj) {\n return obj ? {\n ...obj\n } : null;\n}\nclass AnimationAstBuilderContext {\n constructor(errors) {\n this.errors = errors;\n this.queryCount = 0;\n this.depCount = 0;\n this.currentTransition = null;\n this.currentQuery = null;\n this.currentQuerySelector = null;\n this.currentAnimateTimings = null;\n this.currentTime = 0;\n this.collectedStyles = new Map();\n this.options = null;\n this.unsupportedCSSPropertiesFound = new Set();\n }\n}\nfunction consumeOffset(styles) {\n if (typeof styles == 'string') return null;\n let offset = null;\n if (Array.isArray(styles)) {\n styles.forEach(styleTuple => {\n if (styleTuple instanceof Map && styleTuple.has('offset')) {\n const obj = styleTuple;\n offset = parseFloat(obj.get('offset'));\n obj.delete('offset');\n }\n });\n } else if (styles instanceof Map && styles.has('offset')) {\n const obj = styles;\n offset = parseFloat(obj.get('offset'));\n obj.delete('offset');\n }\n return offset;\n}\nfunction constructTimingAst(value, errors) {\n if (value.hasOwnProperty('duration')) {\n return value;\n }\n if (typeof value == 'number') {\n const duration = resolveTiming(value, errors).duration;\n return makeTimingAst(duration, 0, '');\n }\n const strValue = value;\n const isDynamic = strValue.split(/\\s+/).some(v => v.charAt(0) == '{' && v.charAt(1) == '{');\n if (isDynamic) {\n const ast = makeTimingAst(0, 0, '');\n ast.dynamic = true;\n ast.strValue = strValue;\n return ast;\n }\n const timings = resolveTiming(strValue, errors);\n return makeTimingAst(timings.duration, timings.delay, timings.easing);\n}\nfunction normalizeAnimationOptions(options) {\n if (options) {\n options = {\n ...options\n };\n if (options['params']) {\n options['params'] = normalizeParams(options['params']);\n }\n } else {\n options = {};\n }\n return options;\n}\nfunction makeTimingAst(duration, delay, easing) {\n return {\n duration,\n delay,\n easing\n };\n}\nfunction createTimelineInstruction(element, keyframes, preStyleProps, postStyleProps, duration, delay, easing = null, subTimeline = false) {\n return {\n type: 1 /* AnimationTransitionInstructionType.TimelineAnimation */,\n element,\n keyframes,\n preStyleProps,\n postStyleProps,\n duration,\n delay,\n totalTime: duration + delay,\n easing,\n subTimeline\n };\n}\nclass ElementInstructionMap {\n constructor() {\n this._map = new Map();\n }\n get(element) {\n return this._map.get(element) || [];\n }\n append(element, instructions) {\n let existingInstructions = this._map.get(element);\n if (!existingInstructions) {\n this._map.set(element, existingInstructions = []);\n }\n existingInstructions.push(...instructions);\n }\n has(element) {\n return this._map.has(element);\n }\n clear() {\n this._map.clear();\n }\n}\nconst ONE_FRAME_IN_MILLISECONDS = 1;\nconst ENTER_TOKEN = ':enter';\nconst ENTER_TOKEN_REGEX = new RegExp(ENTER_TOKEN, 'g');\nconst LEAVE_TOKEN = ':leave';\nconst LEAVE_TOKEN_REGEX = new RegExp(LEAVE_TOKEN, 'g');\n/*\n * The code within this file aims to generate web-animations-compatible keyframes from Angular's\n * animation DSL code.\n *\n * The code below will be converted from:\n *\n * ```\n * sequence([\n * style({ opacity: 0 }),\n * animate(1000, style({ opacity: 0 }))\n * ])\n * ```\n *\n * To:\n * ```\n * keyframes = [{ opacity: 0, offset: 0 }, { opacity: 1, offset: 1 }]\n * duration = 1000\n * delay = 0\n * easing = ''\n * ```\n *\n * For this operation to cover the combination of animation verbs (style, animate, group, etc...) a\n * combination of AST traversal and merge-sort-like algorithms are used.\n *\n * [AST Traversal]\n * Each of the animation verbs, when executed, will return an string-map object representing what\n * type of action it is (style, animate, group, etc...) and the data associated with it. This means\n * that when functional composition mix of these functions is evaluated (like in the example above)\n * then it will end up producing a tree of objects representing the animation itself.\n *\n * When this animation object tree is processed by the visitor code below it will visit each of the\n * verb statements within the visitor. And during each visit it will build the context of the\n * animation keyframes by interacting with the `TimelineBuilder`.\n *\n * [TimelineBuilder]\n * This class is responsible for tracking the styles and building a series of keyframe objects for a\n * timeline between a start and end time. The builder starts off with an initial timeline and each\n * time the AST comes across a `group()`, `keyframes()` or a combination of the two within a\n * `sequence()` then it will generate a sub timeline for each step as well as a new one after\n * they are complete.\n *\n * As the AST is traversed, the timing state on each of the timelines will be incremented. If a sub\n * timeline was created (based on one of the cases above) then the parent timeline will attempt to\n * merge the styles used within the sub timelines into itself (only with group() this will happen).\n * This happens with a merge operation (much like how the merge works in mergeSort) and it will only\n * copy the most recently used styles from the sub timelines into the parent timeline. This ensures\n * that if the styles are used later on in another phase of the animation then they will be the most\n * up-to-date values.\n *\n * [How Missing Styles Are Updated]\n * Each timeline has a `backFill` property which is responsible for filling in new styles into\n * already processed keyframes if a new style shows up later within the animation sequence.\n *\n * ```\n * sequence([\n * style({ width: 0 }),\n * animate(1000, style({ width: 100 })),\n * animate(1000, style({ width: 200 })),\n * animate(1000, style({ width: 300 }))\n * animate(1000, style({ width: 400, height: 400 })) // notice how `height` doesn't exist anywhere\n * else\n * ])\n * ```\n *\n * What is happening here is that the `height` value is added later in the sequence, but is missing\n * from all previous animation steps. Therefore when a keyframe is created it would also be missing\n * from all previous keyframes up until where it is first used. For the timeline keyframe generation\n * to properly fill in the style it will place the previous value (the value from the parent\n * timeline) or a default value of `*` into the backFill map.\n *\n * When a sub-timeline is created it will have its own backFill property. This is done so that\n * styles present within the sub-timeline do not accidentally seep into the previous/future timeline\n * keyframes\n *\n * [Validation]\n * The code in this file is not responsible for validation. That functionality happens with within\n * the `AnimationValidatorVisitor` code.\n */\nfunction buildAnimationTimelines(driver, rootElement, ast, enterClassName, leaveClassName, startingStyles = new Map(), finalStyles = new Map(), options, subInstructions, errors = []) {\n return new AnimationTimelineBuilderVisitor().buildKeyframes(driver, rootElement, ast, enterClassName, leaveClassName, startingStyles, finalStyles, options, subInstructions, errors);\n}\nclass AnimationTimelineBuilderVisitor {\n buildKeyframes(driver, rootElement, ast, enterClassName, leaveClassName, startingStyles, finalStyles, options, subInstructions, errors = []) {\n subInstructions = subInstructions || new ElementInstructionMap();\n const context = new AnimationTimelineContext(driver, rootElement, subInstructions, enterClassName, leaveClassName, errors, []);\n context.options = options;\n const delay = options.delay ? resolveTimingValue(options.delay) : 0;\n context.currentTimeline.delayNextStep(delay);\n context.currentTimeline.setStyles([startingStyles], null, context.errors, options);\n visitDslNode(this, ast, context);\n // this checks to see if an actual animation happened\n const timelines = context.timelines.filter(timeline => timeline.containsAnimation());\n // note: we just want to apply the final styles for the rootElement, so we do not\n // just apply the styles to the last timeline but the last timeline which\n // element is the root one (basically `*`-styles are replaced with the actual\n // state style values only for the root element)\n if (timelines.length && finalStyles.size) {\n let lastRootTimeline;\n for (let i = timelines.length - 1; i >= 0; i--) {\n const timeline = timelines[i];\n if (timeline.element === rootElement) {\n lastRootTimeline = timeline;\n break;\n }\n }\n if (lastRootTimeline && !lastRootTimeline.allowOnlyTimelineStyles()) {\n lastRootTimeline.setStyles([finalStyles], null, context.errors, options);\n }\n }\n return timelines.length ? timelines.map(timeline => timeline.buildKeyframes()) : [createTimelineInstruction(rootElement, [], [], [], 0, delay, '', false)];\n }\n visitTrigger(ast, context) {\n // these values are not visited in this AST\n }\n visitState(ast, context) {\n // these values are not visited in this AST\n }\n visitTransition(ast, context) {\n // these values are not visited in this AST\n }\n visitAnimateChild(ast, context) {\n const elementInstructions = context.subInstructions.get(context.element);\n if (elementInstructions) {\n const innerContext = context.createSubContext(ast.options);\n const startTime = context.currentTimeline.currentTime;\n const endTime = this._visitSubInstructions(elementInstructions, innerContext, innerContext.options);\n if (startTime != endTime) {\n // we do this on the upper context because we created a sub context for\n // the sub child animations\n context.transformIntoNewTimeline(endTime);\n }\n }\n context.previousNode = ast;\n }\n visitAnimateRef(ast, context) {\n const innerContext = context.createSubContext(ast.options);\n innerContext.transformIntoNewTimeline();\n this._applyAnimationRefDelays([ast.options, ast.animation.options], context, innerContext);\n this.visitReference(ast.animation, innerContext);\n context.transformIntoNewTimeline(innerContext.currentTimeline.currentTime);\n context.previousNode = ast;\n }\n _applyAnimationRefDelays(animationsRefsOptions, context, innerContext) {\n for (const animationRefOptions of animationsRefsOptions) {\n const animationDelay = animationRefOptions?.delay;\n if (animationDelay) {\n const animationDelayValue = typeof animationDelay === 'number' ? animationDelay : resolveTimingValue(interpolateParams(animationDelay, animationRefOptions?.params ?? {}, context.errors));\n innerContext.delayNextStep(animationDelayValue);\n }\n }\n }\n _visitSubInstructions(instructions, context, options) {\n const startTime = context.currentTimeline.currentTime;\n let furthestTime = startTime;\n // this is a special-case for when a user wants to skip a sub\n // animation from being fired entirely.\n const duration = options.duration != null ? resolveTimingValue(options.duration) : null;\n const delay = options.delay != null ? resolveTimingValue(options.delay) : null;\n if (duration !== 0) {\n instructions.forEach(instruction => {\n const instructionTimings = context.appendInstructionToTimeline(instruction, duration, delay);\n furthestTime = Math.max(furthestTime, instructionTimings.duration + instructionTimings.delay);\n });\n }\n return furthestTime;\n }\n visitReference(ast, context) {\n context.updateOptions(ast.options, true);\n visitDslNode(this, ast.animation, context);\n context.previousNode = ast;\n }\n visitSequence(ast, context) {\n const subContextCount = context.subContextCount;\n let ctx = context;\n const options = ast.options;\n if (options && (options.params || options.delay)) {\n ctx = context.createSubContext(options);\n ctx.transformIntoNewTimeline();\n if (options.delay != null) {\n if (ctx.previousNode.type == AnimationMetadataType.Style) {\n ctx.currentTimeline.snapshotCurrentStyles();\n ctx.previousNode = DEFAULT_NOOP_PREVIOUS_NODE;\n }\n const delay = resolveTimingValue(options.delay);\n ctx.delayNextStep(delay);\n }\n }\n if (ast.steps.length) {\n ast.steps.forEach(s => visitDslNode(this, s, ctx));\n // this is here just in case the inner steps only contain or end with a style() call\n ctx.currentTimeline.applyStylesToKeyframe();\n // this means that some animation function within the sequence\n // ended up creating a sub timeline (which means the current\n // timeline cannot overlap with the contents of the sequence)\n if (ctx.subContextCount > subContextCount) {\n ctx.transformIntoNewTimeline();\n }\n }\n context.previousNode = ast;\n }\n visitGroup(ast, context) {\n const innerTimelines = [];\n let furthestTime = context.currentTimeline.currentTime;\n const delay = ast.options && ast.options.delay ? resolveTimingValue(ast.options.delay) : 0;\n ast.steps.forEach(s => {\n const innerContext = context.createSubContext(ast.options);\n if (delay) {\n innerContext.delayNextStep(delay);\n }\n visitDslNode(this, s, innerContext);\n furthestTime = Math.max(furthestTime, innerContext.currentTimeline.currentTime);\n innerTimelines.push(innerContext.currentTimeline);\n });\n // this operation is run after the AST loop because otherwise\n // if the parent timeline's collected styles were updated then\n // it would pass in invalid data into the new-to-be forked items\n innerTimelines.forEach(timeline => context.currentTimeline.mergeTimelineCollectedStyles(timeline));\n context.transformIntoNewTimeline(furthestTime);\n context.previousNode = ast;\n }\n _visitTiming(ast, context) {\n if (ast.dynamic) {\n const strValue = ast.strValue;\n const timingValue = context.params ? interpolateParams(strValue, context.params, context.errors) : strValue;\n return resolveTiming(timingValue, context.errors);\n } else {\n return {\n duration: ast.duration,\n delay: ast.delay,\n easing: ast.easing\n };\n }\n }\n visitAnimate(ast, context) {\n const timings = context.currentAnimateTimings = this._visitTiming(ast.timings, context);\n const timeline = context.currentTimeline;\n if (timings.delay) {\n context.incrementTime(timings.delay);\n timeline.snapshotCurrentStyles();\n }\n const style = ast.style;\n if (style.type == AnimationMetadataType.Keyframes) {\n this.visitKeyframes(style, context);\n } else {\n context.incrementTime(timings.duration);\n this.visitStyle(style, context);\n timeline.applyStylesToKeyframe();\n }\n context.currentAnimateTimings = null;\n context.previousNode = ast;\n }\n visitStyle(ast, context) {\n const timeline = context.currentTimeline;\n const timings = context.currentAnimateTimings;\n // this is a special case for when a style() call\n // directly follows an animate() call (but not inside of an animate() call)\n if (!timings && timeline.hasCurrentStyleProperties()) {\n timeline.forwardFrame();\n }\n const easing = timings && timings.easing || ast.easing;\n if (ast.isEmptyStep) {\n timeline.applyEmptyStep(easing);\n } else {\n timeline.setStyles(ast.styles, easing, context.errors, context.options);\n }\n context.previousNode = ast;\n }\n visitKeyframes(ast, context) {\n const currentAnimateTimings = context.currentAnimateTimings;\n const startTime = context.currentTimeline.duration;\n const duration = currentAnimateTimings.duration;\n const innerContext = context.createSubContext();\n const innerTimeline = innerContext.currentTimeline;\n innerTimeline.easing = currentAnimateTimings.easing;\n ast.styles.forEach(step => {\n const offset = step.offset || 0;\n innerTimeline.forwardTime(offset * duration);\n innerTimeline.setStyles(step.styles, step.easing, context.errors, context.options);\n innerTimeline.applyStylesToKeyframe();\n });\n // this will ensure that the parent timeline gets all the styles from\n // the child even if the new timeline below is not used\n context.currentTimeline.mergeTimelineCollectedStyles(innerTimeline);\n // we do this because the window between this timeline and the sub timeline\n // should ensure that the styles within are exactly the same as they were before\n context.transformIntoNewTimeline(startTime + duration);\n context.previousNode = ast;\n }\n visitQuery(ast, context) {\n // in the event that the first step before this is a style step we need\n // to ensure the styles are applied before the children are animated\n const startTime = context.currentTimeline.currentTime;\n const options = ast.options || {};\n const delay = options.delay ? resolveTimingValue(options.delay) : 0;\n if (delay && (context.previousNode.type === AnimationMetadataType.Style || startTime == 0 && context.currentTimeline.hasCurrentStyleProperties())) {\n context.currentTimeline.snapshotCurrentStyles();\n context.previousNode = DEFAULT_NOOP_PREVIOUS_NODE;\n }\n let furthestTime = startTime;\n const elms = context.invokeQuery(ast.selector, ast.originalSelector, ast.limit, ast.includeSelf, options.optional ? true : false, context.errors);\n context.currentQueryTotal = elms.length;\n let sameElementTimeline = null;\n elms.forEach((element, i) => {\n context.currentQueryIndex = i;\n const innerContext = context.createSubContext(ast.options, element);\n if (delay) {\n innerContext.delayNextStep(delay);\n }\n if (element === context.element) {\n sameElementTimeline = innerContext.currentTimeline;\n }\n visitDslNode(this, ast.animation, innerContext);\n // this is here just incase the inner steps only contain or end\n // with a style() call (which is here to signal that this is a preparatory\n // call to style an element before it is animated again)\n innerContext.currentTimeline.applyStylesToKeyframe();\n const endTime = innerContext.currentTimeline.currentTime;\n furthestTime = Math.max(furthestTime, endTime);\n });\n context.currentQueryIndex = 0;\n context.currentQueryTotal = 0;\n context.transformIntoNewTimeline(furthestTime);\n if (sameElementTimeline) {\n context.currentTimeline.mergeTimelineCollectedStyles(sameElementTimeline);\n context.currentTimeline.snapshotCurrentStyles();\n }\n context.previousNode = ast;\n }\n visitStagger(ast, context) {\n const parentContext = context.parentContext;\n const tl = context.currentTimeline;\n const timings = ast.timings;\n const duration = Math.abs(timings.duration);\n const maxTime = duration * (context.currentQueryTotal - 1);\n let delay = duration * context.currentQueryIndex;\n let staggerTransformer = timings.duration < 0 ? 'reverse' : timings.easing;\n switch (staggerTransformer) {\n case 'reverse':\n delay = maxTime - delay;\n break;\n case 'full':\n delay = parentContext.currentStaggerTime;\n break;\n }\n const timeline = context.currentTimeline;\n if (delay) {\n timeline.delayNextStep(delay);\n }\n const startingTime = timeline.currentTime;\n visitDslNode(this, ast.animation, context);\n context.previousNode = ast;\n // time = duration + delay\n // the reason why this computation is so complex is because\n // the inner timeline may either have a delay value or a stretched\n // keyframe depending on if a subtimeline is not used or is used.\n parentContext.currentStaggerTime = tl.currentTime - startingTime + (tl.startTime - parentContext.currentTimeline.startTime);\n }\n}\nconst DEFAULT_NOOP_PREVIOUS_NODE = {};\nclass AnimationTimelineContext {\n constructor(_driver, element, subInstructions, _enterClassName, _leaveClassName, errors, timelines, initialTimeline) {\n this._driver = _driver;\n this.element = element;\n this.subInstructions = subInstructions;\n this._enterClassName = _enterClassName;\n this._leaveClassName = _leaveClassName;\n this.errors = errors;\n this.timelines = timelines;\n this.parentContext = null;\n this.currentAnimateTimings = null;\n this.previousNode = DEFAULT_NOOP_PREVIOUS_NODE;\n this.subContextCount = 0;\n this.options = {};\n this.currentQueryIndex = 0;\n this.currentQueryTotal = 0;\n this.currentStaggerTime = 0;\n this.currentTimeline = initialTimeline || new TimelineBuilder(this._driver, element, 0);\n timelines.push(this.currentTimeline);\n }\n get params() {\n return this.options.params;\n }\n updateOptions(options, skipIfExists) {\n if (!options) return;\n const newOptions = options;\n let optionsToUpdate = this.options;\n // NOTE: this will get patched up when other animation methods support duration overrides\n if (newOptions.duration != null) {\n optionsToUpdate.duration = resolveTimingValue(newOptions.duration);\n }\n if (newOptions.delay != null) {\n optionsToUpdate.delay = resolveTimingValue(newOptions.delay);\n }\n const newParams = newOptions.params;\n if (newParams) {\n let paramsToUpdate = optionsToUpdate.params;\n if (!paramsToUpdate) {\n paramsToUpdate = this.options.params = {};\n }\n Object.keys(newParams).forEach(name => {\n if (!skipIfExists || !paramsToUpdate.hasOwnProperty(name)) {\n paramsToUpdate[name] = interpolateParams(newParams[name], paramsToUpdate, this.errors);\n }\n });\n }\n }\n _copyOptions() {\n const options = {};\n if (this.options) {\n const oldParams = this.options.params;\n if (oldParams) {\n const params = options['params'] = {};\n Object.keys(oldParams).forEach(name => {\n params[name] = oldParams[name];\n });\n }\n }\n return options;\n }\n createSubContext(options = null, element, newTime) {\n const target = element || this.element;\n const context = new AnimationTimelineContext(this._driver, target, this.subInstructions, this._enterClassName, this._leaveClassName, this.errors, this.timelines, this.currentTimeline.fork(target, newTime || 0));\n context.previousNode = this.previousNode;\n context.currentAnimateTimings = this.currentAnimateTimings;\n context.options = this._copyOptions();\n context.updateOptions(options);\n context.currentQueryIndex = this.currentQueryIndex;\n context.currentQueryTotal = this.currentQueryTotal;\n context.parentContext = this;\n this.subContextCount++;\n return context;\n }\n transformIntoNewTimeline(newTime) {\n this.previousNode = DEFAULT_NOOP_PREVIOUS_NODE;\n this.currentTimeline = this.currentTimeline.fork(this.element, newTime);\n this.timelines.push(this.currentTimeline);\n return this.currentTimeline;\n }\n appendInstructionToTimeline(instruction, duration, delay) {\n const updatedTimings = {\n duration: duration != null ? duration : instruction.duration,\n delay: this.currentTimeline.currentTime + (delay != null ? delay : 0) + instruction.delay,\n easing: ''\n };\n const builder = new SubTimelineBuilder(this._driver, instruction.element, instruction.keyframes, instruction.preStyleProps, instruction.postStyleProps, updatedTimings, instruction.stretchStartingKeyframe);\n this.timelines.push(builder);\n return updatedTimings;\n }\n incrementTime(time) {\n this.currentTimeline.forwardTime(this.currentTimeline.duration + time);\n }\n delayNextStep(delay) {\n // negative delays are not yet supported\n if (delay > 0) {\n this.currentTimeline.delayNextStep(delay);\n }\n }\n invokeQuery(selector, originalSelector, limit, includeSelf, optional, errors) {\n let results = [];\n if (includeSelf) {\n results.push(this.element);\n }\n if (selector.length > 0) {\n // only if :self is used then the selector can be empty\n selector = selector.replace(ENTER_TOKEN_REGEX, '.' + this._enterClassName);\n selector = selector.replace(LEAVE_TOKEN_REGEX, '.' + this._leaveClassName);\n const multi = limit != 1;\n let elements = this._driver.query(this.element, selector, multi);\n if (limit !== 0) {\n elements = limit < 0 ? elements.slice(elements.length + limit, elements.length) : elements.slice(0, limit);\n }\n results.push(...elements);\n }\n if (!optional && results.length == 0) {\n errors.push(invalidQuery(originalSelector));\n }\n return results;\n }\n}\nclass TimelineBuilder {\n constructor(_driver, element, startTime, _elementTimelineStylesLookup) {\n this._driver = _driver;\n this.element = element;\n this.startTime = startTime;\n this._elementTimelineStylesLookup = _elementTimelineStylesLookup;\n this.duration = 0;\n this.easing = null;\n this._previousKeyframe = new Map();\n this._currentKeyframe = new Map();\n this._keyframes = new Map();\n this._styleSummary = new Map();\n this._localTimelineStyles = new Map();\n this._pendingStyles = new Map();\n this._backFill = new Map();\n this._currentEmptyStepKeyframe = null;\n if (!this._elementTimelineStylesLookup) {\n this._elementTimelineStylesLookup = new Map();\n }\n this._globalTimelineStyles = this._elementTimelineStylesLookup.get(element);\n if (!this._globalTimelineStyles) {\n this._globalTimelineStyles = this._localTimelineStyles;\n this._elementTimelineStylesLookup.set(element, this._localTimelineStyles);\n }\n this._loadKeyframe();\n }\n containsAnimation() {\n switch (this._keyframes.size) {\n case 0:\n return false;\n case 1:\n return this.hasCurrentStyleProperties();\n default:\n return true;\n }\n }\n hasCurrentStyleProperties() {\n return this._currentKeyframe.size > 0;\n }\n get currentTime() {\n return this.startTime + this.duration;\n }\n delayNextStep(delay) {\n // in the event that a style() step is placed right before a stagger()\n // and that style() step is the very first style() value in the animation\n // then we need to make a copy of the keyframe [0, copy, 1] so that the delay\n // properly applies the style() values to work with the stagger...\n const hasPreStyleStep = this._keyframes.size === 1 && this._pendingStyles.size;\n if (this.duration || hasPreStyleStep) {\n this.forwardTime(this.currentTime + delay);\n if (hasPreStyleStep) {\n this.snapshotCurrentStyles();\n }\n } else {\n this.startTime += delay;\n }\n }\n fork(element, currentTime) {\n this.applyStylesToKeyframe();\n return new TimelineBuilder(this._driver, element, currentTime || this.currentTime, this._elementTimelineStylesLookup);\n }\n _loadKeyframe() {\n if (this._currentKeyframe) {\n this._previousKeyframe = this._currentKeyframe;\n }\n this._currentKeyframe = this._keyframes.get(this.duration);\n if (!this._currentKeyframe) {\n this._currentKeyframe = new Map();\n this._keyframes.set(this.duration, this._currentKeyframe);\n }\n }\n forwardFrame() {\n this.duration += ONE_FRAME_IN_MILLISECONDS;\n this._loadKeyframe();\n }\n forwardTime(time) {\n this.applyStylesToKeyframe();\n this.duration = time;\n this._loadKeyframe();\n }\n _updateStyle(prop, value) {\n this._localTimelineStyles.set(prop, value);\n this._globalTimelineStyles.set(prop, value);\n this._styleSummary.set(prop, {\n time: this.currentTime,\n value\n });\n }\n allowOnlyTimelineStyles() {\n return this._currentEmptyStepKeyframe !== this._currentKeyframe;\n }\n applyEmptyStep(easing) {\n if (easing) {\n this._previousKeyframe.set('easing', easing);\n }\n // special case for animate(duration):\n // all missing styles are filled with a `*` value then\n // if any destination styles are filled in later on the same\n // keyframe then they will override the overridden styles\n // We use `_globalTimelineStyles` here because there may be\n // styles in previous keyframes that are not present in this timeline\n for (let [prop, value] of this._globalTimelineStyles) {\n this._backFill.set(prop, value || AUTO_STYLE);\n this._currentKeyframe.set(prop, AUTO_STYLE);\n }\n this._currentEmptyStepKeyframe = this._currentKeyframe;\n }\n setStyles(input, easing, errors, options) {\n if (easing) {\n this._previousKeyframe.set('easing', easing);\n }\n const params = options && options.params || {};\n const styles = flattenStyles(input, this._globalTimelineStyles);\n for (let [prop, value] of styles) {\n const val = interpolateParams(value, params, errors);\n this._pendingStyles.set(prop, val);\n if (!this._localTimelineStyles.has(prop)) {\n this._backFill.set(prop, this._globalTimelineStyles.get(prop) ?? AUTO_STYLE);\n }\n this._updateStyle(prop, val);\n }\n }\n applyStylesToKeyframe() {\n if (this._pendingStyles.size == 0) return;\n this._pendingStyles.forEach((val, prop) => {\n this._currentKeyframe.set(prop, val);\n });\n this._pendingStyles.clear();\n this._localTimelineStyles.forEach((val, prop) => {\n if (!this._currentKeyframe.has(prop)) {\n this._currentKeyframe.set(prop, val);\n }\n });\n }\n snapshotCurrentStyles() {\n for (let [prop, val] of this._localTimelineStyles) {\n this._pendingStyles.set(prop, val);\n this._updateStyle(prop, val);\n }\n }\n getFinalKeyframe() {\n return this._keyframes.get(this.duration);\n }\n get properties() {\n const properties = [];\n for (let prop in this._currentKeyframe) {\n properties.push(prop);\n }\n return properties;\n }\n mergeTimelineCollectedStyles(timeline) {\n timeline._styleSummary.forEach((details1, prop) => {\n const details0 = this._styleSummary.get(prop);\n if (!details0 || details1.time > details0.time) {\n this._updateStyle(prop, details1.value);\n }\n });\n }\n buildKeyframes() {\n this.applyStylesToKeyframe();\n const preStyleProps = new Set();\n const postStyleProps = new Set();\n const isEmpty = this._keyframes.size === 1 && this.duration === 0;\n let finalKeyframes = [];\n this._keyframes.forEach((keyframe, time) => {\n const finalKeyframe = new Map([...this._backFill, ...keyframe]);\n finalKeyframe.forEach((value, prop) => {\n if (value === ɵPRE_STYLE) {\n preStyleProps.add(prop);\n } else if (value === AUTO_STYLE) {\n postStyleProps.add(prop);\n }\n });\n if (!isEmpty) {\n finalKeyframe.set('offset', time / this.duration);\n }\n finalKeyframes.push(finalKeyframe);\n });\n const preProps = [...preStyleProps.values()];\n const postProps = [...postStyleProps.values()];\n // special case for a 0-second animation (which is designed just to place styles onscreen)\n if (isEmpty) {\n const kf0 = finalKeyframes[0];\n const kf1 = new Map(kf0);\n kf0.set('offset', 0);\n kf1.set('offset', 1);\n finalKeyframes = [kf0, kf1];\n }\n return createTimelineInstruction(this.element, finalKeyframes, preProps, postProps, this.duration, this.startTime, this.easing, false);\n }\n}\nclass SubTimelineBuilder extends TimelineBuilder {\n constructor(driver, element, keyframes, preStyleProps, postStyleProps, timings, _stretchStartingKeyframe = false) {\n super(driver, element, timings.delay);\n this.keyframes = keyframes;\n this.preStyleProps = preStyleProps;\n this.postStyleProps = postStyleProps;\n this._stretchStartingKeyframe = _stretchStartingKeyframe;\n this.timings = {\n duration: timings.duration,\n delay: timings.delay,\n easing: timings.easing\n };\n }\n containsAnimation() {\n return this.keyframes.length > 1;\n }\n buildKeyframes() {\n let keyframes = this.keyframes;\n let {\n delay,\n duration,\n easing\n } = this.timings;\n if (this._stretchStartingKeyframe && delay) {\n const newKeyframes = [];\n const totalTime = duration + delay;\n const startingGap = delay / totalTime;\n // the original starting keyframe now starts once the delay is done\n const newFirstKeyframe = new Map(keyframes[0]);\n newFirstKeyframe.set('offset', 0);\n newKeyframes.push(newFirstKeyframe);\n const oldFirstKeyframe = new Map(keyframes[0]);\n oldFirstKeyframe.set('offset', roundOffset(startingGap));\n newKeyframes.push(oldFirstKeyframe);\n /*\n When the keyframe is stretched then it means that the delay before the animation\n starts is gone. Instead the first keyframe is placed at the start of the animation\n and it is then copied to where it starts when the original delay is over. This basically\n means nothing animates during that delay, but the styles are still rendered. For this\n to work the original offset values that exist in the original keyframes must be \"warped\"\n so that they can take the new keyframe + delay into account.\n delay=1000, duration=1000, keyframes = 0 .5 1\n turns into\n delay=0, duration=2000, keyframes = 0 .33 .66 1\n */\n // offsets between 1 ... n -1 are all warped by the keyframe stretch\n const limit = keyframes.length - 1;\n for (let i = 1; i <= limit; i++) {\n let kf = new Map(keyframes[i]);\n const oldOffset = kf.get('offset');\n const timeAtKeyframe = delay + oldOffset * duration;\n kf.set('offset', roundOffset(timeAtKeyframe / totalTime));\n newKeyframes.push(kf);\n }\n // the new starting keyframe should be added at the start\n duration = totalTime;\n delay = 0;\n easing = '';\n keyframes = newKeyframes;\n }\n return createTimelineInstruction(this.element, keyframes, this.preStyleProps, this.postStyleProps, duration, delay, easing, true);\n }\n}\nfunction roundOffset(offset, decimalPoints = 3) {\n const mult = Math.pow(10, decimalPoints - 1);\n return Math.round(offset * mult) / mult;\n}\nfunction flattenStyles(input, allStyles) {\n const styles = new Map();\n let allProperties;\n input.forEach(token => {\n if (token === '*') {\n allProperties ??= allStyles.keys();\n for (let prop of allProperties) {\n styles.set(prop, AUTO_STYLE);\n }\n } else {\n for (let [prop, val] of token) {\n styles.set(prop, val);\n }\n }\n });\n return styles;\n}\nfunction createTransitionInstruction(element, triggerName, fromState, toState, isRemovalTransition, fromStyles, toStyles, timelines, queriedElements, preStyleProps, postStyleProps, totalTime, errors) {\n return {\n type: 0 /* AnimationTransitionInstructionType.TransitionAnimation */,\n element,\n triggerName,\n isRemovalTransition,\n fromState,\n fromStyles,\n toState,\n toStyles,\n timelines,\n queriedElements,\n preStyleProps,\n postStyleProps,\n totalTime,\n errors\n };\n}\nconst EMPTY_OBJECT = {};\nclass AnimationTransitionFactory {\n constructor(_triggerName, ast, _stateStyles) {\n this._triggerName = _triggerName;\n this.ast = ast;\n this._stateStyles = _stateStyles;\n }\n match(currentState, nextState, element, params) {\n return oneOrMoreTransitionsMatch(this.ast.matchers, currentState, nextState, element, params);\n }\n buildStyles(stateName, params, errors) {\n let styler = this._stateStyles.get('*');\n if (stateName !== undefined) {\n styler = this._stateStyles.get(stateName?.toString()) || styler;\n }\n return styler ? styler.buildStyles(params, errors) : new Map();\n }\n build(driver, element, currentState, nextState, enterClassName, leaveClassName, currentOptions, nextOptions, subInstructions, skipAstBuild) {\n const errors = [];\n const transitionAnimationParams = this.ast.options && this.ast.options.params || EMPTY_OBJECT;\n const currentAnimationParams = currentOptions && currentOptions.params || EMPTY_OBJECT;\n const currentStateStyles = this.buildStyles(currentState, currentAnimationParams, errors);\n const nextAnimationParams = nextOptions && nextOptions.params || EMPTY_OBJECT;\n const nextStateStyles = this.buildStyles(nextState, nextAnimationParams, errors);\n const queriedElements = new Set();\n const preStyleMap = new Map();\n const postStyleMap = new Map();\n const isRemoval = nextState === 'void';\n const animationOptions = {\n params: applyParamDefaults(nextAnimationParams, transitionAnimationParams),\n delay: this.ast.options?.delay\n };\n const timelines = skipAstBuild ? [] : buildAnimationTimelines(driver, element, this.ast.animation, enterClassName, leaveClassName, currentStateStyles, nextStateStyles, animationOptions, subInstructions, errors);\n let totalTime = 0;\n timelines.forEach(tl => {\n totalTime = Math.max(tl.duration + tl.delay, totalTime);\n });\n if (errors.length) {\n return createTransitionInstruction(element, this._triggerName, currentState, nextState, isRemoval, currentStateStyles, nextStateStyles, [], [], preStyleMap, postStyleMap, totalTime, errors);\n }\n timelines.forEach(tl => {\n const elm = tl.element;\n const preProps = getOrSetDefaultValue(preStyleMap, elm, new Set());\n tl.preStyleProps.forEach(prop => preProps.add(prop));\n const postProps = getOrSetDefaultValue(postStyleMap, elm, new Set());\n tl.postStyleProps.forEach(prop => postProps.add(prop));\n if (elm !== element) {\n queriedElements.add(elm);\n }\n });\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n checkNonAnimatableInTimelines(timelines, this._triggerName, driver);\n }\n return createTransitionInstruction(element, this._triggerName, currentState, nextState, isRemoval, currentStateStyles, nextStateStyles, timelines, [...queriedElements.values()], preStyleMap, postStyleMap, totalTime);\n }\n}\n/**\n * Checks inside a set of timelines if they try to animate a css property which is not considered\n * animatable, in that case it prints a warning on the console.\n * Besides that the function doesn't have any other effect.\n *\n * Note: this check is done here after the timelines are built instead of doing on a lower level so\n * that we can make sure that the warning appears only once per instruction (we can aggregate here\n * all the issues instead of finding them separately).\n *\n * @param timelines The built timelines for the current instruction.\n * @param triggerName The name of the trigger for the current instruction.\n * @param driver Animation driver used to perform the check.\n *\n */\nfunction checkNonAnimatableInTimelines(timelines, triggerName, driver) {\n if (!driver.validateAnimatableStyleProperty) {\n return;\n }\n const allowedNonAnimatableProps = new Set([\n // 'easing' is a utility/synthetic prop we use to represent\n // easing functions, it represents a property of the animation\n // which is not animatable but different values can be used\n // in different steps\n 'easing']);\n const invalidNonAnimatableProps = new Set();\n timelines.forEach(({\n keyframes\n }) => {\n const nonAnimatablePropsInitialValues = new Map();\n keyframes.forEach(keyframe => {\n const entriesToCheck = Array.from(keyframe.entries()).filter(([prop]) => !allowedNonAnimatableProps.has(prop));\n for (const [prop, value] of entriesToCheck) {\n if (!driver.validateAnimatableStyleProperty(prop)) {\n if (nonAnimatablePropsInitialValues.has(prop) && !invalidNonAnimatableProps.has(prop)) {\n const propInitialValue = nonAnimatablePropsInitialValues.get(prop);\n if (propInitialValue !== value) {\n invalidNonAnimatableProps.add(prop);\n }\n } else {\n nonAnimatablePropsInitialValues.set(prop, value);\n }\n }\n }\n });\n });\n if (invalidNonAnimatableProps.size > 0) {\n console.warn(`Warning: The animation trigger \"${triggerName}\" is attempting to animate the following` + ' not animatable properties: ' + Array.from(invalidNonAnimatableProps).join(', ') + '\\n' + '(to check the list of all animatable properties visit https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_animated_properties)');\n }\n}\nfunction oneOrMoreTransitionsMatch(matchFns, currentState, nextState, element, params) {\n return matchFns.some(fn => fn(currentState, nextState, element, params));\n}\nfunction applyParamDefaults(userParams, defaults) {\n const result = {\n ...defaults\n };\n Object.entries(userParams).forEach(([key, value]) => {\n if (value != null) {\n result[key] = value;\n }\n });\n return result;\n}\nclass AnimationStateStyles {\n constructor(styles, defaultParams, normalizer) {\n this.styles = styles;\n this.defaultParams = defaultParams;\n this.normalizer = normalizer;\n }\n buildStyles(params, errors) {\n const finalStyles = new Map();\n const combinedParams = applyParamDefaults(params, this.defaultParams);\n this.styles.styles.forEach(value => {\n if (typeof value !== 'string') {\n value.forEach((val, prop) => {\n if (val) {\n val = interpolateParams(val, combinedParams, errors);\n }\n const normalizedProp = this.normalizer.normalizePropertyName(prop, errors);\n val = this.normalizer.normalizeStyleValue(prop, normalizedProp, val, errors);\n finalStyles.set(prop, val);\n });\n }\n });\n return finalStyles;\n }\n}\nfunction buildTrigger(name, ast, normalizer) {\n return new AnimationTrigger(name, ast, normalizer);\n}\nclass AnimationTrigger {\n constructor(name, ast, _normalizer) {\n this.name = name;\n this.ast = ast;\n this._normalizer = _normalizer;\n this.transitionFactories = [];\n this.states = new Map();\n ast.states.forEach(ast => {\n const defaultParams = ast.options && ast.options.params || {};\n this.states.set(ast.name, new AnimationStateStyles(ast.style, defaultParams, _normalizer));\n });\n balanceProperties(this.states, 'true', '1');\n balanceProperties(this.states, 'false', '0');\n ast.transitions.forEach(ast => {\n this.transitionFactories.push(new AnimationTransitionFactory(name, ast, this.states));\n });\n this.fallbackTransition = createFallbackTransition(name, this.states, this._normalizer);\n }\n get containsQueries() {\n return this.ast.queryCount > 0;\n }\n matchTransition(currentState, nextState, element, params) {\n const entry = this.transitionFactories.find(f => f.match(currentState, nextState, element, params));\n return entry || null;\n }\n matchStyles(currentState, params, errors) {\n return this.fallbackTransition.buildStyles(currentState, params, errors);\n }\n}\nfunction createFallbackTransition(triggerName, states, normalizer) {\n const matchers = [(fromState, toState) => true];\n const animation = {\n type: AnimationMetadataType.Sequence,\n steps: [],\n options: null\n };\n const transition = {\n type: AnimationMetadataType.Transition,\n animation,\n matchers,\n options: null,\n queryCount: 0,\n depCount: 0\n };\n return new AnimationTransitionFactory(triggerName, transition, states);\n}\nfunction balanceProperties(stateMap, key1, key2) {\n if (stateMap.has(key1)) {\n if (!stateMap.has(key2)) {\n stateMap.set(key2, stateMap.get(key1));\n }\n } else if (stateMap.has(key2)) {\n stateMap.set(key1, stateMap.get(key2));\n }\n}\nconst EMPTY_INSTRUCTION_MAP = new ElementInstructionMap();\nclass TimelineAnimationEngine {\n constructor(bodyNode, _driver, _normalizer) {\n this.bodyNode = bodyNode;\n this._driver = _driver;\n this._normalizer = _normalizer;\n this._animations = new Map();\n this._playersById = new Map();\n this.players = [];\n }\n register(id, metadata) {\n const errors = [];\n const warnings = [];\n const ast = buildAnimationAst(this._driver, metadata, errors, warnings);\n if (errors.length) {\n throw registerFailed(errors);\n } else {\n if (warnings.length) {\n warnRegister(warnings);\n }\n this._animations.set(id, ast);\n }\n }\n _buildPlayer(i, preStyles, postStyles) {\n const element = i.element;\n const keyframes = normalizeKeyframes$1(this._normalizer, i.keyframes, preStyles, postStyles);\n return this._driver.animate(element, keyframes, i.duration, i.delay, i.easing, [], true);\n }\n create(id, element, options = {}) {\n const errors = [];\n const ast = this._animations.get(id);\n let instructions;\n const autoStylesMap = new Map();\n if (ast) {\n instructions = buildAnimationTimelines(this._driver, element, ast, ENTER_CLASSNAME, LEAVE_CLASSNAME, new Map(), new Map(), options, EMPTY_INSTRUCTION_MAP, errors);\n instructions.forEach(inst => {\n const styles = getOrSetDefaultValue(autoStylesMap, inst.element, new Map());\n inst.postStyleProps.forEach(prop => styles.set(prop, null));\n });\n } else {\n errors.push(missingOrDestroyedAnimation());\n instructions = [];\n }\n if (errors.length) {\n throw createAnimationFailed(errors);\n }\n autoStylesMap.forEach((styles, element) => {\n styles.forEach((_, prop) => {\n styles.set(prop, this._driver.computeStyle(element, prop, AUTO_STYLE));\n });\n });\n const players = instructions.map(i => {\n const styles = autoStylesMap.get(i.element);\n return this._buildPlayer(i, new Map(), styles);\n });\n const player = optimizeGroupPlayer(players);\n this._playersById.set(id, player);\n player.onDestroy(() => this.destroy(id));\n this.players.push(player);\n return player;\n }\n destroy(id) {\n const player = this._getPlayer(id);\n player.destroy();\n this._playersById.delete(id);\n const index = this.players.indexOf(player);\n if (index >= 0) {\n this.players.splice(index, 1);\n }\n }\n _getPlayer(id) {\n const player = this._playersById.get(id);\n if (!player) {\n throw missingPlayer(id);\n }\n return player;\n }\n listen(id, element, eventName, callback) {\n // triggerName, fromState, toState are all ignored for timeline animations\n const baseEvent = makeAnimationEvent(element, '', '', '');\n listenOnPlayer(this._getPlayer(id), eventName, baseEvent, callback);\n return () => {};\n }\n command(id, element, command, args) {\n if (command == 'register') {\n this.register(id, args[0]);\n return;\n }\n if (command == 'create') {\n const options = args[0] || {};\n this.create(id, element, options);\n return;\n }\n const player = this._getPlayer(id);\n switch (command) {\n case 'play':\n player.play();\n break;\n case 'pause':\n player.pause();\n break;\n case 'reset':\n player.reset();\n break;\n case 'restart':\n player.restart();\n break;\n case 'finish':\n player.finish();\n break;\n case 'init':\n player.init();\n break;\n case 'setPosition':\n player.setPosition(parseFloat(args[0]));\n break;\n case 'destroy':\n this.destroy(id);\n break;\n }\n }\n}\nconst QUEUED_CLASSNAME = 'ng-animate-queued';\nconst QUEUED_SELECTOR = '.ng-animate-queued';\nconst DISABLED_CLASSNAME = 'ng-animate-disabled';\nconst DISABLED_SELECTOR = '.ng-animate-disabled';\nconst STAR_CLASSNAME = 'ng-star-inserted';\nconst STAR_SELECTOR = '.ng-star-inserted';\nconst EMPTY_PLAYER_ARRAY = [];\nconst NULL_REMOVAL_STATE = {\n namespaceId: '',\n setForRemoval: false,\n setForMove: false,\n hasAnimation: false,\n removedBeforeQueried: false\n};\nconst NULL_REMOVED_QUERIED_STATE = {\n namespaceId: '',\n setForMove: false,\n setForRemoval: false,\n hasAnimation: false,\n removedBeforeQueried: true\n};\nconst REMOVAL_FLAG = '__ng_removed';\nclass StateValue {\n get params() {\n return this.options.params;\n }\n constructor(input, namespaceId = '') {\n this.namespaceId = namespaceId;\n const isObj = input && input.hasOwnProperty('value');\n const value = isObj ? input['value'] : input;\n this.value = normalizeTriggerValue(value);\n if (isObj) {\n // we drop the value property from options.\n const {\n value,\n ...options\n } = input;\n this.options = options;\n } else {\n this.options = {};\n }\n if (!this.options.params) {\n this.options.params = {};\n }\n }\n absorbOptions(options) {\n const newParams = options.params;\n if (newParams) {\n const oldParams = this.options.params;\n Object.keys(newParams).forEach(prop => {\n if (oldParams[prop] == null) {\n oldParams[prop] = newParams[prop];\n }\n });\n }\n }\n}\nconst VOID_VALUE = 'void';\nconst DEFAULT_STATE_VALUE = new StateValue(VOID_VALUE);\nclass AnimationTransitionNamespace {\n constructor(id, hostElement, _engine) {\n this.id = id;\n this.hostElement = hostElement;\n this._engine = _engine;\n this.players = [];\n this._triggers = new Map();\n this._queue = [];\n this._elementListeners = new Map();\n this._hostClassName = 'ng-tns-' + id;\n addClass(hostElement, this._hostClassName);\n }\n listen(element, name, phase, callback) {\n if (!this._triggers.has(name)) {\n throw missingTrigger(phase, name);\n }\n if (phase == null || phase.length == 0) {\n throw missingEvent(name);\n }\n if (!isTriggerEventValid(phase)) {\n throw unsupportedTriggerEvent(phase, name);\n }\n const listeners = getOrSetDefaultValue(this._elementListeners, element, []);\n const data = {\n name,\n phase,\n callback\n };\n listeners.push(data);\n const triggersWithStates = getOrSetDefaultValue(this._engine.statesByElement, element, new Map());\n if (!triggersWithStates.has(name)) {\n addClass(element, NG_TRIGGER_CLASSNAME);\n addClass(element, NG_TRIGGER_CLASSNAME + '-' + name);\n triggersWithStates.set(name, DEFAULT_STATE_VALUE);\n }\n return () => {\n // the event listener is removed AFTER the flush has occurred such\n // that leave animations callbacks can fire (otherwise if the node\n // is removed in between then the listeners would be deregistered)\n this._engine.afterFlush(() => {\n const index = listeners.indexOf(data);\n if (index >= 0) {\n listeners.splice(index, 1);\n }\n if (!this._triggers.has(name)) {\n triggersWithStates.delete(name);\n }\n });\n };\n }\n register(name, ast) {\n if (this._triggers.has(name)) {\n // throw\n return false;\n } else {\n this._triggers.set(name, ast);\n return true;\n }\n }\n _getTrigger(name) {\n const trigger = this._triggers.get(name);\n if (!trigger) {\n throw unregisteredTrigger(name);\n }\n return trigger;\n }\n trigger(element, triggerName, value, defaultToFallback = true) {\n const trigger = this._getTrigger(triggerName);\n const player = new TransitionAnimationPlayer(this.id, triggerName, element);\n let triggersWithStates = this._engine.statesByElement.get(element);\n if (!triggersWithStates) {\n addClass(element, NG_TRIGGER_CLASSNAME);\n addClass(element, NG_TRIGGER_CLASSNAME + '-' + triggerName);\n this._engine.statesByElement.set(element, triggersWithStates = new Map());\n }\n let fromState = triggersWithStates.get(triggerName);\n const toState = new StateValue(value, this.id);\n const isObj = value && value.hasOwnProperty('value');\n if (!isObj && fromState) {\n toState.absorbOptions(fromState.options);\n }\n triggersWithStates.set(triggerName, toState);\n if (!fromState) {\n fromState = DEFAULT_STATE_VALUE;\n }\n const isRemoval = toState.value === VOID_VALUE;\n // normally this isn't reached by here, however, if an object expression\n // is passed in then it may be a new object each time. Comparing the value\n // is important since that will stay the same despite there being a new object.\n // The removal arc here is special cased because the same element is triggered\n // twice in the event that it contains animations on the outer/inner portions\n // of the host container\n if (!isRemoval && fromState.value === toState.value) {\n // this means that despite the value not changing, some inner params\n // have changed which means that the animation final styles need to be applied\n if (!objEquals(fromState.params, toState.params)) {\n const errors = [];\n const fromStyles = trigger.matchStyles(fromState.value, fromState.params, errors);\n const toStyles = trigger.matchStyles(toState.value, toState.params, errors);\n if (errors.length) {\n this._engine.reportError(errors);\n } else {\n this._engine.afterFlush(() => {\n eraseStyles(element, fromStyles);\n setStyles(element, toStyles);\n });\n }\n }\n return;\n }\n const playersOnElement = getOrSetDefaultValue(this._engine.playersByElement, element, []);\n playersOnElement.forEach(player => {\n // only remove the player if it is queued on the EXACT same trigger/namespace\n // we only also deal with queued players here because if the animation has\n // started then we want to keep the player alive until the flush happens\n // (which is where the previousPlayers are passed into the new player)\n if (player.namespaceId == this.id && player.triggerName == triggerName && player.queued) {\n player.destroy();\n }\n });\n let transition = trigger.matchTransition(fromState.value, toState.value, element, toState.params);\n let isFallbackTransition = false;\n if (!transition) {\n if (!defaultToFallback) return;\n transition = trigger.fallbackTransition;\n isFallbackTransition = true;\n }\n this._engine.totalQueuedPlayers++;\n this._queue.push({\n element,\n triggerName,\n transition,\n fromState,\n toState,\n player,\n isFallbackTransition\n });\n if (!isFallbackTransition) {\n addClass(element, QUEUED_CLASSNAME);\n player.onStart(() => {\n removeClass(element, QUEUED_CLASSNAME);\n });\n }\n player.onDone(() => {\n let index = this.players.indexOf(player);\n if (index >= 0) {\n this.players.splice(index, 1);\n }\n const players = this._engine.playersByElement.get(element);\n if (players) {\n let index = players.indexOf(player);\n if (index >= 0) {\n players.splice(index, 1);\n }\n }\n });\n this.players.push(player);\n playersOnElement.push(player);\n return player;\n }\n deregister(name) {\n this._triggers.delete(name);\n this._engine.statesByElement.forEach(stateMap => stateMap.delete(name));\n this._elementListeners.forEach((listeners, element) => {\n this._elementListeners.set(element, listeners.filter(entry => {\n return entry.name != name;\n }));\n });\n }\n clearElementCache(element) {\n this._engine.statesByElement.delete(element);\n this._elementListeners.delete(element);\n const elementPlayers = this._engine.playersByElement.get(element);\n if (elementPlayers) {\n elementPlayers.forEach(player => player.destroy());\n this._engine.playersByElement.delete(element);\n }\n }\n _signalRemovalForInnerTriggers(rootElement, context) {\n const elements = this._engine.driver.query(rootElement, NG_TRIGGER_SELECTOR, true);\n // emulate a leave animation for all inner nodes within this node.\n // If there are no animations found for any of the nodes then clear the cache\n // for the element.\n elements.forEach(elm => {\n // this means that an inner remove() operation has already kicked off\n // the animation on this element...\n if (elm[REMOVAL_FLAG]) return;\n const namespaces = this._engine.fetchNamespacesByElement(elm);\n if (namespaces.size) {\n namespaces.forEach(ns => ns.triggerLeaveAnimation(elm, context, false, true));\n } else {\n this.clearElementCache(elm);\n }\n });\n // If the child elements were removed along with the parent, their animations might not\n // have completed. Clear all the elements from the cache so we don't end up with a memory leak.\n this._engine.afterFlushAnimationsDone(() => elements.forEach(elm => this.clearElementCache(elm)));\n }\n triggerLeaveAnimation(element, context, destroyAfterComplete, defaultToFallback) {\n const triggerStates = this._engine.statesByElement.get(element);\n const previousTriggersValues = new Map();\n if (triggerStates) {\n const players = [];\n triggerStates.forEach((state, triggerName) => {\n previousTriggersValues.set(triggerName, state.value);\n // this check is here in the event that an element is removed\n // twice (both on the host level and the component level)\n if (this._triggers.has(triggerName)) {\n const player = this.trigger(element, triggerName, VOID_VALUE, defaultToFallback);\n if (player) {\n players.push(player);\n }\n }\n });\n if (players.length) {\n this._engine.markElementAsRemoved(this.id, element, true, context, previousTriggersValues);\n if (destroyAfterComplete) {\n optimizeGroupPlayer(players).onDone(() => this._engine.processLeaveNode(element));\n }\n return true;\n }\n }\n return false;\n }\n prepareLeaveAnimationListeners(element) {\n const listeners = this._elementListeners.get(element);\n const elementStates = this._engine.statesByElement.get(element);\n // if this statement fails then it means that the element was picked up\n // by an earlier flush (or there are no listeners at all to track the leave).\n if (listeners && elementStates) {\n const visitedTriggers = new Set();\n listeners.forEach(listener => {\n const triggerName = listener.name;\n if (visitedTriggers.has(triggerName)) return;\n visitedTriggers.add(triggerName);\n const trigger = this._triggers.get(triggerName);\n const transition = trigger.fallbackTransition;\n const fromState = elementStates.get(triggerName) || DEFAULT_STATE_VALUE;\n const toState = new StateValue(VOID_VALUE);\n const player = new TransitionAnimationPlayer(this.id, triggerName, element);\n this._engine.totalQueuedPlayers++;\n this._queue.push({\n element,\n triggerName,\n transition,\n fromState,\n toState,\n player,\n isFallbackTransition: true\n });\n });\n }\n }\n removeNode(element, context) {\n const engine = this._engine;\n if (element.childElementCount) {\n this._signalRemovalForInnerTriggers(element, context);\n }\n // this means that a * => VOID animation was detected and kicked off\n if (this.triggerLeaveAnimation(element, context, true)) return;\n // find the player that is animating and make sure that the\n // removal is delayed until that player has completed\n let containsPotentialParentTransition = false;\n if (engine.totalAnimations) {\n const currentPlayers = engine.players.length ? engine.playersByQueriedElement.get(element) : [];\n // when this `if statement` does not continue forward it means that\n // a previous animation query has selected the current element and\n // is animating it. In this situation want to continue forwards and\n // allow the element to be queued up for animation later.\n if (currentPlayers && currentPlayers.length) {\n containsPotentialParentTransition = true;\n } else {\n let parent = element;\n while (parent = parent.parentNode) {\n const triggers = engine.statesByElement.get(parent);\n if (triggers) {\n containsPotentialParentTransition = true;\n break;\n }\n }\n }\n }\n // at this stage we know that the element will either get removed\n // during flush or will be picked up by a parent query. Either way\n // we need to fire the listeners for this element when it DOES get\n // removed (once the query parent animation is done or after flush)\n this.prepareLeaveAnimationListeners(element);\n // whether or not a parent has an animation we need to delay the deferral of the leave\n // operation until we have more information (which we do after flush() has been called)\n if (containsPotentialParentTransition) {\n engine.markElementAsRemoved(this.id, element, false, context);\n } else {\n const removalFlag = element[REMOVAL_FLAG];\n if (!removalFlag || removalFlag === NULL_REMOVAL_STATE) {\n // we do this after the flush has occurred such\n // that the callbacks can be fired\n engine.afterFlush(() => this.clearElementCache(element));\n engine.destroyInnerAnimations(element);\n engine._onRemovalComplete(element, context);\n }\n }\n }\n insertNode(element, parent) {\n addClass(element, this._hostClassName);\n }\n drainQueuedTransitions(microtaskId) {\n const instructions = [];\n this._queue.forEach(entry => {\n const player = entry.player;\n if (player.destroyed) return;\n const element = entry.element;\n const listeners = this._elementListeners.get(element);\n if (listeners) {\n listeners.forEach(listener => {\n if (listener.name == entry.triggerName) {\n const baseEvent = makeAnimationEvent(element, entry.triggerName, entry.fromState.value, entry.toState.value);\n baseEvent['_data'] = microtaskId;\n listenOnPlayer(entry.player, listener.phase, baseEvent, listener.callback);\n }\n });\n }\n if (player.markedForDestroy) {\n this._engine.afterFlush(() => {\n // now we can destroy the element properly since the event listeners have\n // been bound to the player\n player.destroy();\n });\n } else {\n instructions.push(entry);\n }\n });\n this._queue = [];\n return instructions.sort((a, b) => {\n // if depCount == 0 them move to front\n // otherwise if a contains b then move back\n const d0 = a.transition.ast.depCount;\n const d1 = b.transition.ast.depCount;\n if (d0 == 0 || d1 == 0) {\n return d0 - d1;\n }\n return this._engine.driver.containsElement(a.element, b.element) ? 1 : -1;\n });\n }\n destroy(context) {\n this.players.forEach(p => p.destroy());\n this._signalRemovalForInnerTriggers(this.hostElement, context);\n }\n}\nclass TransitionAnimationEngine {\n /** @internal */\n _onRemovalComplete(element, context) {\n this.onRemovalComplete(element, context);\n }\n constructor(bodyNode, driver, _normalizer, scheduler) {\n this.bodyNode = bodyNode;\n this.driver = driver;\n this._normalizer = _normalizer;\n this.scheduler = scheduler;\n this.players = [];\n this.newHostElements = new Map();\n this.playersByElement = new Map();\n this.playersByQueriedElement = new Map();\n this.statesByElement = new Map();\n this.disabledNodes = new Set();\n this.totalAnimations = 0;\n this.totalQueuedPlayers = 0;\n this._namespaceLookup = {};\n this._namespaceList = [];\n this._flushFns = [];\n this._whenQuietFns = [];\n this.namespacesByHostElement = new Map();\n this.collectedEnterElements = [];\n this.collectedLeaveElements = [];\n // this method is designed to be overridden by the code that uses this engine\n this.onRemovalComplete = (element, context) => {};\n }\n get queuedPlayers() {\n const players = [];\n this._namespaceList.forEach(ns => {\n ns.players.forEach(player => {\n if (player.queued) {\n players.push(player);\n }\n });\n });\n return players;\n }\n createNamespace(namespaceId, hostElement) {\n const ns = new AnimationTransitionNamespace(namespaceId, hostElement, this);\n if (this.bodyNode && this.driver.containsElement(this.bodyNode, hostElement)) {\n this._balanceNamespaceList(ns, hostElement);\n } else {\n // defer this later until flush during when the host element has\n // been inserted so that we know exactly where to place it in\n // the namespace list\n this.newHostElements.set(hostElement, ns);\n // given that this host element is a part of the animation code, it\n // may or may not be inserted by a parent node that is of an\n // animation renderer type. If this happens then we can still have\n // access to this item when we query for :enter nodes. If the parent\n // is a renderer then the set data-structure will normalize the entry\n this.collectEnterElement(hostElement);\n }\n return this._namespaceLookup[namespaceId] = ns;\n }\n _balanceNamespaceList(ns, hostElement) {\n const namespaceList = this._namespaceList;\n const namespacesByHostElement = this.namespacesByHostElement;\n const limit = namespaceList.length - 1;\n if (limit >= 0) {\n let found = false;\n // Find the closest ancestor with an existing namespace so we can then insert `ns` after it,\n // establishing a top-down ordering of namespaces in `this._namespaceList`.\n let ancestor = this.driver.getParentElement(hostElement);\n while (ancestor) {\n const ancestorNs = namespacesByHostElement.get(ancestor);\n if (ancestorNs) {\n // An animation namespace has been registered for this ancestor, so we insert `ns`\n // right after it to establish top-down ordering of animation namespaces.\n const index = namespaceList.indexOf(ancestorNs);\n namespaceList.splice(index + 1, 0, ns);\n found = true;\n break;\n }\n ancestor = this.driver.getParentElement(ancestor);\n }\n if (!found) {\n // No namespace exists that is an ancestor of `ns`, so `ns` is inserted at the front to\n // ensure that any existing descendants are ordered after `ns`, retaining the desired\n // top-down ordering.\n namespaceList.unshift(ns);\n }\n } else {\n namespaceList.push(ns);\n }\n namespacesByHostElement.set(hostElement, ns);\n return ns;\n }\n register(namespaceId, hostElement) {\n let ns = this._namespaceLookup[namespaceId];\n if (!ns) {\n ns = this.createNamespace(namespaceId, hostElement);\n }\n return ns;\n }\n registerTrigger(namespaceId, name, trigger) {\n let ns = this._namespaceLookup[namespaceId];\n if (ns && ns.register(name, trigger)) {\n this.totalAnimations++;\n }\n }\n destroy(namespaceId, context) {\n if (!namespaceId) return;\n this.afterFlush(() => {});\n this.afterFlushAnimationsDone(() => {\n const ns = this._fetchNamespace(namespaceId);\n this.namespacesByHostElement.delete(ns.hostElement);\n const index = this._namespaceList.indexOf(ns);\n if (index >= 0) {\n this._namespaceList.splice(index, 1);\n }\n ns.destroy(context);\n delete this._namespaceLookup[namespaceId];\n });\n }\n _fetchNamespace(id) {\n return this._namespaceLookup[id];\n }\n fetchNamespacesByElement(element) {\n // normally there should only be one namespace per element, however\n // if @triggers are placed on both the component element and then\n // its host element (within the component code) then there will be\n // two namespaces returned. We use a set here to simply deduplicate\n // the namespaces in case (for the reason described above) there are multiple triggers\n const namespaces = new Set();\n const elementStates = this.statesByElement.get(element);\n if (elementStates) {\n for (let stateValue of elementStates.values()) {\n if (stateValue.namespaceId) {\n const ns = this._fetchNamespace(stateValue.namespaceId);\n if (ns) {\n namespaces.add(ns);\n }\n }\n }\n }\n return namespaces;\n }\n trigger(namespaceId, element, name, value) {\n if (isElementNode(element)) {\n const ns = this._fetchNamespace(namespaceId);\n if (ns) {\n ns.trigger(element, name, value);\n return true;\n }\n }\n return false;\n }\n insertNode(namespaceId, element, parent, insertBefore) {\n if (!isElementNode(element)) return;\n // special case for when an element is removed and reinserted (move operation)\n // when this occurs we do not want to use the element for deletion later\n const details = element[REMOVAL_FLAG];\n if (details && details.setForRemoval) {\n details.setForRemoval = false;\n details.setForMove = true;\n const index = this.collectedLeaveElements.indexOf(element);\n if (index >= 0) {\n this.collectedLeaveElements.splice(index, 1);\n }\n }\n // in the event that the namespaceId is blank then the caller\n // code does not contain any animation code in it, but it is\n // just being called so that the node is marked as being inserted\n if (namespaceId) {\n const ns = this._fetchNamespace(namespaceId);\n // This if-statement is a workaround for router issue #21947.\n // The router sometimes hits a race condition where while a route\n // is being instantiated a new navigation arrives, triggering leave\n // animation of DOM that has not been fully initialized, until this\n // is resolved, we need to handle the scenario when DOM is not in a\n // consistent state during the animation.\n if (ns) {\n ns.insertNode(element, parent);\n }\n }\n // only *directives and host elements are inserted before\n if (insertBefore) {\n this.collectEnterElement(element);\n }\n }\n collectEnterElement(element) {\n this.collectedEnterElements.push(element);\n }\n markElementAsDisabled(element, value) {\n if (value) {\n if (!this.disabledNodes.has(element)) {\n this.disabledNodes.add(element);\n addClass(element, DISABLED_CLASSNAME);\n }\n } else if (this.disabledNodes.has(element)) {\n this.disabledNodes.delete(element);\n removeClass(element, DISABLED_CLASSNAME);\n }\n }\n removeNode(namespaceId, element, context) {\n if (isElementNode(element)) {\n this.scheduler?.notify();\n const ns = namespaceId ? this._fetchNamespace(namespaceId) : null;\n if (ns) {\n ns.removeNode(element, context);\n } else {\n this.markElementAsRemoved(namespaceId, element, false, context);\n }\n const hostNS = this.namespacesByHostElement.get(element);\n if (hostNS && hostNS.id !== namespaceId) {\n hostNS.removeNode(element, context);\n }\n } else {\n this._onRemovalComplete(element, context);\n }\n }\n markElementAsRemoved(namespaceId, element, hasAnimation, context, previousTriggersValues) {\n this.collectedLeaveElements.push(element);\n element[REMOVAL_FLAG] = {\n namespaceId,\n setForRemoval: context,\n hasAnimation,\n removedBeforeQueried: false,\n previousTriggersValues\n };\n }\n listen(namespaceId, element, name, phase, callback) {\n if (isElementNode(element)) {\n return this._fetchNamespace(namespaceId).listen(element, name, phase, callback);\n }\n return () => {};\n }\n _buildInstruction(entry, subTimelines, enterClassName, leaveClassName, skipBuildAst) {\n return entry.transition.build(this.driver, entry.element, entry.fromState.value, entry.toState.value, enterClassName, leaveClassName, entry.fromState.options, entry.toState.options, subTimelines, skipBuildAst);\n }\n destroyInnerAnimations(containerElement) {\n let elements = this.driver.query(containerElement, NG_TRIGGER_SELECTOR, true);\n elements.forEach(element => this.destroyActiveAnimationsForElement(element));\n if (this.playersByQueriedElement.size == 0) return;\n elements = this.driver.query(containerElement, NG_ANIMATING_SELECTOR, true);\n elements.forEach(element => this.finishActiveQueriedAnimationOnElement(element));\n }\n destroyActiveAnimationsForElement(element) {\n const players = this.playersByElement.get(element);\n if (players) {\n players.forEach(player => {\n // special case for when an element is set for destruction, but hasn't started.\n // in this situation we want to delay the destruction until the flush occurs\n // so that any event listeners attached to the player are triggered.\n if (player.queued) {\n player.markedForDestroy = true;\n } else {\n player.destroy();\n }\n });\n }\n }\n finishActiveQueriedAnimationOnElement(element) {\n const players = this.playersByQueriedElement.get(element);\n if (players) {\n players.forEach(player => player.finish());\n }\n }\n whenRenderingDone() {\n return new Promise(resolve => {\n if (this.players.length) {\n return optimizeGroupPlayer(this.players).onDone(() => resolve());\n } else {\n resolve();\n }\n });\n }\n processLeaveNode(element) {\n const details = element[REMOVAL_FLAG];\n if (details && details.setForRemoval) {\n // this will prevent it from removing it twice\n element[REMOVAL_FLAG] = NULL_REMOVAL_STATE;\n if (details.namespaceId) {\n this.destroyInnerAnimations(element);\n const ns = this._fetchNamespace(details.namespaceId);\n if (ns) {\n ns.clearElementCache(element);\n }\n }\n this._onRemovalComplete(element, details.setForRemoval);\n }\n if (element.classList?.contains(DISABLED_CLASSNAME)) {\n this.markElementAsDisabled(element, false);\n }\n this.driver.query(element, DISABLED_SELECTOR, true).forEach(node => {\n this.markElementAsDisabled(node, false);\n });\n }\n flush(microtaskId = -1) {\n let players = [];\n if (this.newHostElements.size) {\n this.newHostElements.forEach((ns, element) => this._balanceNamespaceList(ns, element));\n this.newHostElements.clear();\n }\n if (this.totalAnimations && this.collectedEnterElements.length) {\n for (let i = 0; i < this.collectedEnterElements.length; i++) {\n const elm = this.collectedEnterElements[i];\n addClass(elm, STAR_CLASSNAME);\n }\n }\n if (this._namespaceList.length && (this.totalQueuedPlayers || this.collectedLeaveElements.length)) {\n const cleanupFns = [];\n try {\n players = this._flushAnimations(cleanupFns, microtaskId);\n } finally {\n for (let i = 0; i < cleanupFns.length; i++) {\n cleanupFns[i]();\n }\n }\n } else {\n for (let i = 0; i < this.collectedLeaveElements.length; i++) {\n const element = this.collectedLeaveElements[i];\n this.processLeaveNode(element);\n }\n }\n this.totalQueuedPlayers = 0;\n this.collectedEnterElements.length = 0;\n this.collectedLeaveElements.length = 0;\n this._flushFns.forEach(fn => fn());\n this._flushFns = [];\n if (this._whenQuietFns.length) {\n // we move these over to a variable so that\n // if any new callbacks are registered in another\n // flush they do not populate the existing set\n const quietFns = this._whenQuietFns;\n this._whenQuietFns = [];\n if (players.length) {\n optimizeGroupPlayer(players).onDone(() => {\n quietFns.forEach(fn => fn());\n });\n } else {\n quietFns.forEach(fn => fn());\n }\n }\n }\n reportError(errors) {\n throw triggerTransitionsFailed(errors);\n }\n _flushAnimations(cleanupFns, microtaskId) {\n const subTimelines = new ElementInstructionMap();\n const skippedPlayers = [];\n const skippedPlayersMap = new Map();\n const queuedInstructions = [];\n const queriedElements = new Map();\n const allPreStyleElements = new Map();\n const allPostStyleElements = new Map();\n const disabledElementsSet = new Set();\n this.disabledNodes.forEach(node => {\n disabledElementsSet.add(node);\n const nodesThatAreDisabled = this.driver.query(node, QUEUED_SELECTOR, true);\n for (let i = 0; i < nodesThatAreDisabled.length; i++) {\n disabledElementsSet.add(nodesThatAreDisabled[i]);\n }\n });\n const bodyNode = this.bodyNode;\n const allTriggerElements = Array.from(this.statesByElement.keys());\n const enterNodeMap = buildRootMap(allTriggerElements, this.collectedEnterElements);\n // this must occur before the instructions are built below such that\n // the :enter queries match the elements (since the timeline queries\n // are fired during instruction building).\n const enterNodeMapIds = new Map();\n let i = 0;\n enterNodeMap.forEach((nodes, root) => {\n const className = ENTER_CLASSNAME + i++;\n enterNodeMapIds.set(root, className);\n nodes.forEach(node => addClass(node, className));\n });\n const allLeaveNodes = [];\n const mergedLeaveNodes = new Set();\n const leaveNodesWithoutAnimations = new Set();\n for (let i = 0; i < this.collectedLeaveElements.length; i++) {\n const element = this.collectedLeaveElements[i];\n const details = element[REMOVAL_FLAG];\n if (details && details.setForRemoval) {\n allLeaveNodes.push(element);\n mergedLeaveNodes.add(element);\n if (details.hasAnimation) {\n this.driver.query(element, STAR_SELECTOR, true).forEach(elm => mergedLeaveNodes.add(elm));\n } else {\n leaveNodesWithoutAnimations.add(element);\n }\n }\n }\n const leaveNodeMapIds = new Map();\n const leaveNodeMap = buildRootMap(allTriggerElements, Array.from(mergedLeaveNodes));\n leaveNodeMap.forEach((nodes, root) => {\n const className = LEAVE_CLASSNAME + i++;\n leaveNodeMapIds.set(root, className);\n nodes.forEach(node => addClass(node, className));\n });\n cleanupFns.push(() => {\n enterNodeMap.forEach((nodes, root) => {\n const className = enterNodeMapIds.get(root);\n nodes.forEach(node => removeClass(node, className));\n });\n leaveNodeMap.forEach((nodes, root) => {\n const className = leaveNodeMapIds.get(root);\n nodes.forEach(node => removeClass(node, className));\n });\n allLeaveNodes.forEach(element => {\n this.processLeaveNode(element);\n });\n });\n const allPlayers = [];\n const erroneousTransitions = [];\n for (let i = this._namespaceList.length - 1; i >= 0; i--) {\n const ns = this._namespaceList[i];\n ns.drainQueuedTransitions(microtaskId).forEach(entry => {\n const player = entry.player;\n const element = entry.element;\n allPlayers.push(player);\n if (this.collectedEnterElements.length) {\n const details = element[REMOVAL_FLAG];\n // animations for move operations (elements being removed and reinserted,\n // e.g. when the order of an *ngFor list changes) are currently not supported\n if (details && details.setForMove) {\n if (details.previousTriggersValues && details.previousTriggersValues.has(entry.triggerName)) {\n const previousValue = details.previousTriggersValues.get(entry.triggerName);\n // we need to restore the previous trigger value since the element has\n // only been moved and hasn't actually left the DOM\n const triggersWithStates = this.statesByElement.get(entry.element);\n if (triggersWithStates && triggersWithStates.has(entry.triggerName)) {\n const state = triggersWithStates.get(entry.triggerName);\n state.value = previousValue;\n triggersWithStates.set(entry.triggerName, state);\n }\n }\n player.destroy();\n return;\n }\n }\n const nodeIsOrphaned = !bodyNode || !this.driver.containsElement(bodyNode, element);\n const leaveClassName = leaveNodeMapIds.get(element);\n const enterClassName = enterNodeMapIds.get(element);\n const instruction = this._buildInstruction(entry, subTimelines, enterClassName, leaveClassName, nodeIsOrphaned);\n if (instruction.errors && instruction.errors.length) {\n erroneousTransitions.push(instruction);\n return;\n }\n // even though the element may not be in the DOM, it may still\n // be added at a later point (due to the mechanics of content\n // projection and/or dynamic component insertion) therefore it's\n // important to still style the element.\n if (nodeIsOrphaned) {\n player.onStart(() => eraseStyles(element, instruction.fromStyles));\n player.onDestroy(() => setStyles(element, instruction.toStyles));\n skippedPlayers.push(player);\n return;\n }\n // if an unmatched transition is queued and ready to go\n // then it SHOULD NOT render an animation and cancel the\n // previously running animations.\n if (entry.isFallbackTransition) {\n player.onStart(() => eraseStyles(element, instruction.fromStyles));\n player.onDestroy(() => setStyles(element, instruction.toStyles));\n skippedPlayers.push(player);\n return;\n }\n // this means that if a parent animation uses this animation as a sub-trigger\n // then it will instruct the timeline builder not to add a player delay, but\n // instead stretch the first keyframe gap until the animation starts. This is\n // important in order to prevent extra initialization styles from being\n // required by the user for the animation.\n const timelines = [];\n instruction.timelines.forEach(tl => {\n tl.stretchStartingKeyframe = true;\n if (!this.disabledNodes.has(tl.element)) {\n timelines.push(tl);\n }\n });\n instruction.timelines = timelines;\n subTimelines.append(element, instruction.timelines);\n const tuple = {\n instruction,\n player,\n element\n };\n queuedInstructions.push(tuple);\n instruction.queriedElements.forEach(element => getOrSetDefaultValue(queriedElements, element, []).push(player));\n instruction.preStyleProps.forEach((stringMap, element) => {\n if (stringMap.size) {\n let setVal = allPreStyleElements.get(element);\n if (!setVal) {\n allPreStyleElements.set(element, setVal = new Set());\n }\n stringMap.forEach((_, prop) => setVal.add(prop));\n }\n });\n instruction.postStyleProps.forEach((stringMap, element) => {\n let setVal = allPostStyleElements.get(element);\n if (!setVal) {\n allPostStyleElements.set(element, setVal = new Set());\n }\n stringMap.forEach((_, prop) => setVal.add(prop));\n });\n });\n }\n if (erroneousTransitions.length) {\n const errors = [];\n erroneousTransitions.forEach(instruction => {\n errors.push(transitionFailed(instruction.triggerName, instruction.errors));\n });\n allPlayers.forEach(player => player.destroy());\n this.reportError(errors);\n }\n const allPreviousPlayersMap = new Map();\n // this map tells us which element in the DOM tree is contained by\n // which animation. Further down this map will get populated once\n // the players are built and in doing so we can use it to efficiently\n // figure out if a sub player is skipped due to a parent player having priority.\n const animationElementMap = new Map();\n queuedInstructions.forEach(entry => {\n const element = entry.element;\n if (subTimelines.has(element)) {\n animationElementMap.set(element, element);\n this._beforeAnimationBuild(entry.player.namespaceId, entry.instruction, allPreviousPlayersMap);\n }\n });\n skippedPlayers.forEach(player => {\n const element = player.element;\n const previousPlayers = this._getPreviousPlayers(element, false, player.namespaceId, player.triggerName, null);\n previousPlayers.forEach(prevPlayer => {\n getOrSetDefaultValue(allPreviousPlayersMap, element, []).push(prevPlayer);\n prevPlayer.destroy();\n });\n });\n // this is a special case for nodes that will be removed either by\n // having their own leave animations or by being queried in a container\n // that will be removed once a parent animation is complete. The idea\n // here is that * styles must be identical to ! styles because of\n // backwards compatibility (* is also filled in by default in many places).\n // Otherwise * styles will return an empty value or \"auto\" since the element\n // passed to getComputedStyle will not be visible (since * === destination)\n const replaceNodes = allLeaveNodes.filter(node => {\n return replacePostStylesAsPre(node, allPreStyleElements, allPostStyleElements);\n });\n // POST STAGE: fill the * styles\n const postStylesMap = new Map();\n const allLeaveQueriedNodes = cloakAndComputeStyles(postStylesMap, this.driver, leaveNodesWithoutAnimations, allPostStyleElements, AUTO_STYLE);\n allLeaveQueriedNodes.forEach(node => {\n if (replacePostStylesAsPre(node, allPreStyleElements, allPostStyleElements)) {\n replaceNodes.push(node);\n }\n });\n // PRE STAGE: fill the ! styles\n const preStylesMap = new Map();\n enterNodeMap.forEach((nodes, root) => {\n cloakAndComputeStyles(preStylesMap, this.driver, new Set(nodes), allPreStyleElements, ɵPRE_STYLE);\n });\n replaceNodes.forEach(node => {\n const post = postStylesMap.get(node);\n const pre = preStylesMap.get(node);\n postStylesMap.set(node, new Map([...(post?.entries() ?? []), ...(pre?.entries() ?? [])]));\n });\n const rootPlayers = [];\n const subPlayers = [];\n const NO_PARENT_ANIMATION_ELEMENT_DETECTED = {};\n queuedInstructions.forEach(entry => {\n const {\n element,\n player,\n instruction\n } = entry;\n // this means that it was never consumed by a parent animation which\n // means that it is independent and therefore should be set for animation\n if (subTimelines.has(element)) {\n if (disabledElementsSet.has(element)) {\n player.onDestroy(() => setStyles(element, instruction.toStyles));\n player.disabled = true;\n player.overrideTotalTime(instruction.totalTime);\n skippedPlayers.push(player);\n return;\n }\n // this will flow up the DOM and query the map to figure out\n // if a parent animation has priority over it. In the situation\n // that a parent is detected then it will cancel the loop. If\n // nothing is detected, or it takes a few hops to find a parent,\n // then it will fill in the missing nodes and signal them as having\n // a detected parent (or a NO_PARENT value via a special constant).\n let parentWithAnimation = NO_PARENT_ANIMATION_ELEMENT_DETECTED;\n if (animationElementMap.size > 1) {\n let elm = element;\n const parentsToAdd = [];\n while (elm = elm.parentNode) {\n const detectedParent = animationElementMap.get(elm);\n if (detectedParent) {\n parentWithAnimation = detectedParent;\n break;\n }\n parentsToAdd.push(elm);\n }\n parentsToAdd.forEach(parent => animationElementMap.set(parent, parentWithAnimation));\n }\n const innerPlayer = this._buildAnimation(player.namespaceId, instruction, allPreviousPlayersMap, skippedPlayersMap, preStylesMap, postStylesMap);\n player.setRealPlayer(innerPlayer);\n if (parentWithAnimation === NO_PARENT_ANIMATION_ELEMENT_DETECTED) {\n rootPlayers.push(player);\n } else {\n const parentPlayers = this.playersByElement.get(parentWithAnimation);\n if (parentPlayers && parentPlayers.length) {\n player.parentPlayer = optimizeGroupPlayer(parentPlayers);\n }\n skippedPlayers.push(player);\n }\n } else {\n eraseStyles(element, instruction.fromStyles);\n player.onDestroy(() => setStyles(element, instruction.toStyles));\n // there still might be a ancestor player animating this\n // element therefore we will still add it as a sub player\n // even if its animation may be disabled\n subPlayers.push(player);\n if (disabledElementsSet.has(element)) {\n skippedPlayers.push(player);\n }\n }\n });\n // find all of the sub players' corresponding inner animation players\n subPlayers.forEach(player => {\n // even if no players are found for a sub animation it\n // will still complete itself after the next tick since it's Noop\n const playersForElement = skippedPlayersMap.get(player.element);\n if (playersForElement && playersForElement.length) {\n const innerPlayer = optimizeGroupPlayer(playersForElement);\n player.setRealPlayer(innerPlayer);\n }\n });\n // the reason why we don't actually play the animation is\n // because all that a skipped player is designed to do is to\n // fire the start/done transition callback events\n skippedPlayers.forEach(player => {\n if (player.parentPlayer) {\n player.syncPlayerEvents(player.parentPlayer);\n } else {\n player.destroy();\n }\n });\n // run through all of the queued removals and see if they\n // were picked up by a query. If not then perform the removal\n // operation right away unless a parent animation is ongoing.\n for (let i = 0; i < allLeaveNodes.length; i++) {\n const element = allLeaveNodes[i];\n const details = element[REMOVAL_FLAG];\n removeClass(element, LEAVE_CLASSNAME);\n // this means the element has a removal animation that is being\n // taken care of and therefore the inner elements will hang around\n // until that animation is over (or the parent queried animation)\n if (details && details.hasAnimation) continue;\n let players = [];\n // if this element is queried or if it contains queried children\n // then we want for the element not to be removed from the page\n // until the queried animations have finished\n if (queriedElements.size) {\n let queriedPlayerResults = queriedElements.get(element);\n if (queriedPlayerResults && queriedPlayerResults.length) {\n players.push(...queriedPlayerResults);\n }\n let queriedInnerElements = this.driver.query(element, NG_ANIMATING_SELECTOR, true);\n for (let j = 0; j < queriedInnerElements.length; j++) {\n let queriedPlayers = queriedElements.get(queriedInnerElements[j]);\n if (queriedPlayers && queriedPlayers.length) {\n players.push(...queriedPlayers);\n }\n }\n }\n const activePlayers = players.filter(p => !p.destroyed);\n if (activePlayers.length) {\n removeNodesAfterAnimationDone(this, element, activePlayers);\n } else {\n this.processLeaveNode(element);\n }\n }\n // this is required so the cleanup method doesn't remove them\n allLeaveNodes.length = 0;\n rootPlayers.forEach(player => {\n this.players.push(player);\n player.onDone(() => {\n player.destroy();\n const index = this.players.indexOf(player);\n this.players.splice(index, 1);\n });\n player.play();\n });\n return rootPlayers;\n }\n afterFlush(callback) {\n this._flushFns.push(callback);\n }\n afterFlushAnimationsDone(callback) {\n this._whenQuietFns.push(callback);\n }\n _getPreviousPlayers(element, isQueriedElement, namespaceId, triggerName, toStateValue) {\n let players = [];\n if (isQueriedElement) {\n const queriedElementPlayers = this.playersByQueriedElement.get(element);\n if (queriedElementPlayers) {\n players = queriedElementPlayers;\n }\n } else {\n const elementPlayers = this.playersByElement.get(element);\n if (elementPlayers) {\n const isRemovalAnimation = !toStateValue || toStateValue == VOID_VALUE;\n elementPlayers.forEach(player => {\n if (player.queued) return;\n if (!isRemovalAnimation && player.triggerName != triggerName) return;\n players.push(player);\n });\n }\n }\n if (namespaceId || triggerName) {\n players = players.filter(player => {\n if (namespaceId && namespaceId != player.namespaceId) return false;\n if (triggerName && triggerName != player.triggerName) return false;\n return true;\n });\n }\n return players;\n }\n _beforeAnimationBuild(namespaceId, instruction, allPreviousPlayersMap) {\n const triggerName = instruction.triggerName;\n const rootElement = instruction.element;\n // when a removal animation occurs, ALL previous players are collected\n // and destroyed (even if they are outside of the current namespace)\n const targetNameSpaceId = instruction.isRemovalTransition ? undefined : namespaceId;\n const targetTriggerName = instruction.isRemovalTransition ? undefined : triggerName;\n for (const timelineInstruction of instruction.timelines) {\n const element = timelineInstruction.element;\n const isQueriedElement = element !== rootElement;\n const players = getOrSetDefaultValue(allPreviousPlayersMap, element, []);\n const previousPlayers = this._getPreviousPlayers(element, isQueriedElement, targetNameSpaceId, targetTriggerName, instruction.toState);\n previousPlayers.forEach(player => {\n const realPlayer = player.getRealPlayer();\n if (realPlayer.beforeDestroy) {\n realPlayer.beforeDestroy();\n }\n player.destroy();\n players.push(player);\n });\n }\n // this needs to be done so that the PRE/POST styles can be\n // computed properly without interfering with the previous animation\n eraseStyles(rootElement, instruction.fromStyles);\n }\n _buildAnimation(namespaceId, instruction, allPreviousPlayersMap, skippedPlayersMap, preStylesMap, postStylesMap) {\n const triggerName = instruction.triggerName;\n const rootElement = instruction.element;\n // we first run this so that the previous animation player\n // data can be passed into the successive animation players\n const allQueriedPlayers = [];\n const allConsumedElements = new Set();\n const allSubElements = new Set();\n const allNewPlayers = instruction.timelines.map(timelineInstruction => {\n const element = timelineInstruction.element;\n allConsumedElements.add(element);\n // FIXME (matsko): make sure to-be-removed animations are removed properly\n const details = element[REMOVAL_FLAG];\n if (details && details.removedBeforeQueried) return new NoopAnimationPlayer(timelineInstruction.duration, timelineInstruction.delay);\n const isQueriedElement = element !== rootElement;\n const previousPlayers = flattenGroupPlayers((allPreviousPlayersMap.get(element) || EMPTY_PLAYER_ARRAY).map(p => p.getRealPlayer())).filter(p => {\n // the `element` is not apart of the AnimationPlayer definition, but\n // Mock/WebAnimations\n // use the element within their implementation. This will be added in Angular5 to\n // AnimationPlayer\n const pp = p;\n return pp.element ? pp.element === element : false;\n });\n const preStyles = preStylesMap.get(element);\n const postStyles = postStylesMap.get(element);\n const keyframes = normalizeKeyframes$1(this._normalizer, timelineInstruction.keyframes, preStyles, postStyles);\n const player = this._buildPlayer(timelineInstruction, keyframes, previousPlayers);\n // this means that this particular player belongs to a sub trigger. It is\n // important that we match this player up with the corresponding (@trigger.listener)\n if (timelineInstruction.subTimeline && skippedPlayersMap) {\n allSubElements.add(element);\n }\n if (isQueriedElement) {\n const wrappedPlayer = new TransitionAnimationPlayer(namespaceId, triggerName, element);\n wrappedPlayer.setRealPlayer(player);\n allQueriedPlayers.push(wrappedPlayer);\n }\n return player;\n });\n allQueriedPlayers.forEach(player => {\n getOrSetDefaultValue(this.playersByQueriedElement, player.element, []).push(player);\n player.onDone(() => deleteOrUnsetInMap(this.playersByQueriedElement, player.element, player));\n });\n allConsumedElements.forEach(element => addClass(element, NG_ANIMATING_CLASSNAME));\n const player = optimizeGroupPlayer(allNewPlayers);\n player.onDestroy(() => {\n allConsumedElements.forEach(element => removeClass(element, NG_ANIMATING_CLASSNAME));\n setStyles(rootElement, instruction.toStyles);\n });\n // this basically makes all of the callbacks for sub element animations\n // be dependent on the upper players for when they finish\n allSubElements.forEach(element => {\n getOrSetDefaultValue(skippedPlayersMap, element, []).push(player);\n });\n return player;\n }\n _buildPlayer(instruction, keyframes, previousPlayers) {\n if (keyframes.length > 0) {\n return this.driver.animate(instruction.element, keyframes, instruction.duration, instruction.delay, instruction.easing, previousPlayers);\n }\n // special case for when an empty transition|definition is provided\n // ... there is no point in rendering an empty animation\n return new NoopAnimationPlayer(instruction.duration, instruction.delay);\n }\n}\nclass TransitionAnimationPlayer {\n constructor(namespaceId, triggerName, element) {\n this.namespaceId = namespaceId;\n this.triggerName = triggerName;\n this.element = element;\n this._player = new NoopAnimationPlayer();\n this._containsRealPlayer = false;\n this._queuedCallbacks = new Map();\n this.destroyed = false;\n this.parentPlayer = null;\n this.markedForDestroy = false;\n this.disabled = false;\n this.queued = true;\n this.totalTime = 0;\n }\n setRealPlayer(player) {\n if (this._containsRealPlayer) return;\n this._player = player;\n this._queuedCallbacks.forEach((callbacks, phase) => {\n callbacks.forEach(callback => listenOnPlayer(player, phase, undefined, callback));\n });\n this._queuedCallbacks.clear();\n this._containsRealPlayer = true;\n this.overrideTotalTime(player.totalTime);\n this.queued = false;\n }\n getRealPlayer() {\n return this._player;\n }\n overrideTotalTime(totalTime) {\n this.totalTime = totalTime;\n }\n syncPlayerEvents(player) {\n const p = this._player;\n if (p.triggerCallback) {\n player.onStart(() => p.triggerCallback('start'));\n }\n player.onDone(() => this.finish());\n player.onDestroy(() => this.destroy());\n }\n _queueEvent(name, callback) {\n getOrSetDefaultValue(this._queuedCallbacks, name, []).push(callback);\n }\n onDone(fn) {\n if (this.queued) {\n this._queueEvent('done', fn);\n }\n this._player.onDone(fn);\n }\n onStart(fn) {\n if (this.queued) {\n this._queueEvent('start', fn);\n }\n this._player.onStart(fn);\n }\n onDestroy(fn) {\n if (this.queued) {\n this._queueEvent('destroy', fn);\n }\n this._player.onDestroy(fn);\n }\n init() {\n this._player.init();\n }\n hasStarted() {\n return this.queued ? false : this._player.hasStarted();\n }\n play() {\n !this.queued && this._player.play();\n }\n pause() {\n !this.queued && this._player.pause();\n }\n restart() {\n !this.queued && this._player.restart();\n }\n finish() {\n this._player.finish();\n }\n destroy() {\n this.destroyed = true;\n this._player.destroy();\n }\n reset() {\n !this.queued && this._player.reset();\n }\n setPosition(p) {\n if (!this.queued) {\n this._player.setPosition(p);\n }\n }\n getPosition() {\n return this.queued ? 0 : this._player.getPosition();\n }\n /** @internal */\n triggerCallback(phaseName) {\n const p = this._player;\n if (p.triggerCallback) {\n p.triggerCallback(phaseName);\n }\n }\n}\nfunction deleteOrUnsetInMap(map, key, value) {\n let currentValues = map.get(key);\n if (currentValues) {\n if (currentValues.length) {\n const index = currentValues.indexOf(value);\n currentValues.splice(index, 1);\n }\n if (currentValues.length == 0) {\n map.delete(key);\n }\n }\n return currentValues;\n}\nfunction normalizeTriggerValue(value) {\n // we use `!= null` here because it's the most simple\n // way to test against a \"falsy\" value without mixing\n // in empty strings or a zero value. DO NOT OPTIMIZE.\n return value != null ? value : null;\n}\nfunction isElementNode(node) {\n return node && node['nodeType'] === 1;\n}\nfunction isTriggerEventValid(eventName) {\n return eventName == 'start' || eventName == 'done';\n}\nfunction cloakElement(element, value) {\n const oldValue = element.style.display;\n element.style.display = value != null ? value : 'none';\n return oldValue;\n}\nfunction cloakAndComputeStyles(valuesMap, driver, elements, elementPropsMap, defaultStyle) {\n const cloakVals = [];\n elements.forEach(element => cloakVals.push(cloakElement(element)));\n const failedElements = [];\n elementPropsMap.forEach((props, element) => {\n const styles = new Map();\n props.forEach(prop => {\n const value = driver.computeStyle(element, prop, defaultStyle);\n styles.set(prop, value);\n // there is no easy way to detect this because a sub element could be removed\n // by a parent animation element being detached.\n if (!value || value.length == 0) {\n element[REMOVAL_FLAG] = NULL_REMOVED_QUERIED_STATE;\n failedElements.push(element);\n }\n });\n valuesMap.set(element, styles);\n });\n // we use a index variable here since Set.forEach(a, i) does not return\n // an index value for the closure (but instead just the value)\n let i = 0;\n elements.forEach(element => cloakElement(element, cloakVals[i++]));\n return failedElements;\n}\n/*\nSince the Angular renderer code will return a collection of inserted\nnodes in all areas of a DOM tree, it's up to this algorithm to figure\nout which nodes are roots for each animation @trigger.\n\nBy placing each inserted node into a Set and traversing upwards, it\nis possible to find the @trigger elements and well any direct *star\ninsertion nodes, if a @trigger root is found then the enter element\nis placed into the Map[@trigger] spot.\n */\nfunction buildRootMap(roots, nodes) {\n const rootMap = new Map();\n roots.forEach(root => rootMap.set(root, []));\n if (nodes.length == 0) return rootMap;\n const NULL_NODE = 1;\n const nodeSet = new Set(nodes);\n const localRootMap = new Map();\n function getRoot(node) {\n if (!node) return NULL_NODE;\n let root = localRootMap.get(node);\n if (root) return root;\n const parent = node.parentNode;\n if (rootMap.has(parent)) {\n // ngIf inside @trigger\n root = parent;\n } else if (nodeSet.has(parent)) {\n // ngIf inside ngIf\n root = NULL_NODE;\n } else {\n // recurse upwards\n root = getRoot(parent);\n }\n localRootMap.set(node, root);\n return root;\n }\n nodes.forEach(node => {\n const root = getRoot(node);\n if (root !== NULL_NODE) {\n rootMap.get(root).push(node);\n }\n });\n return rootMap;\n}\nfunction addClass(element, className) {\n element.classList?.add(className);\n}\nfunction removeClass(element, className) {\n element.classList?.remove(className);\n}\nfunction removeNodesAfterAnimationDone(engine, element, players) {\n optimizeGroupPlayer(players).onDone(() => engine.processLeaveNode(element));\n}\nfunction flattenGroupPlayers(players) {\n const finalPlayers = [];\n _flattenGroupPlayersRecur(players, finalPlayers);\n return finalPlayers;\n}\nfunction _flattenGroupPlayersRecur(players, finalPlayers) {\n for (let i = 0; i < players.length; i++) {\n const player = players[i];\n if (player instanceof ɵAnimationGroupPlayer) {\n _flattenGroupPlayersRecur(player.players, finalPlayers);\n } else {\n finalPlayers.push(player);\n }\n }\n}\nfunction objEquals(a, b) {\n const k1 = Object.keys(a);\n const k2 = Object.keys(b);\n if (k1.length != k2.length) return false;\n for (let i = 0; i < k1.length; i++) {\n const prop = k1[i];\n if (!b.hasOwnProperty(prop) || a[prop] !== b[prop]) return false;\n }\n return true;\n}\nfunction replacePostStylesAsPre(element, allPreStyleElements, allPostStyleElements) {\n const postEntry = allPostStyleElements.get(element);\n if (!postEntry) return false;\n let preEntry = allPreStyleElements.get(element);\n if (preEntry) {\n postEntry.forEach(data => preEntry.add(data));\n } else {\n allPreStyleElements.set(element, postEntry);\n }\n allPostStyleElements.delete(element);\n return true;\n}\nclass AnimationEngine {\n constructor(doc, _driver, _normalizer, scheduler) {\n this._driver = _driver;\n this._normalizer = _normalizer;\n this._triggerCache = {};\n // this method is designed to be overridden by the code that uses this engine\n this.onRemovalComplete = (element, context) => {};\n this._transitionEngine = new TransitionAnimationEngine(doc.body, _driver, _normalizer, scheduler);\n this._timelineEngine = new TimelineAnimationEngine(doc.body, _driver, _normalizer);\n this._transitionEngine.onRemovalComplete = (element, context) => this.onRemovalComplete(element, context);\n }\n registerTrigger(componentId, namespaceId, hostElement, name, metadata) {\n const cacheKey = componentId + '-' + name;\n let trigger = this._triggerCache[cacheKey];\n if (!trigger) {\n const errors = [];\n const warnings = [];\n const ast = buildAnimationAst(this._driver, metadata, errors, warnings);\n if (errors.length) {\n throw triggerBuildFailed(name, errors);\n }\n if (warnings.length) {\n warnTriggerBuild(name, warnings);\n }\n trigger = buildTrigger(name, ast, this._normalizer);\n this._triggerCache[cacheKey] = trigger;\n }\n this._transitionEngine.registerTrigger(namespaceId, name, trigger);\n }\n register(namespaceId, hostElement) {\n this._transitionEngine.register(namespaceId, hostElement);\n }\n destroy(namespaceId, context) {\n this._transitionEngine.destroy(namespaceId, context);\n }\n onInsert(namespaceId, element, parent, insertBefore) {\n this._transitionEngine.insertNode(namespaceId, element, parent, insertBefore);\n }\n onRemove(namespaceId, element, context) {\n this._transitionEngine.removeNode(namespaceId, element, context);\n }\n disableAnimations(element, disable) {\n this._transitionEngine.markElementAsDisabled(element, disable);\n }\n process(namespaceId, element, property, value) {\n if (property.charAt(0) == '@') {\n const [id, action] = parseTimelineCommand(property);\n const args = value;\n this._timelineEngine.command(id, element, action, args);\n } else {\n this._transitionEngine.trigger(namespaceId, element, property, value);\n }\n }\n listen(namespaceId, element, eventName, eventPhase, callback) {\n // @@listen\n if (eventName.charAt(0) == '@') {\n const [id, action] = parseTimelineCommand(eventName);\n return this._timelineEngine.listen(id, element, action, callback);\n }\n return this._transitionEngine.listen(namespaceId, element, eventName, eventPhase, callback);\n }\n flush(microtaskId = -1) {\n this._transitionEngine.flush(microtaskId);\n }\n get players() {\n return [...this._transitionEngine.players, ...this._timelineEngine.players];\n }\n whenRenderingDone() {\n return this._transitionEngine.whenRenderingDone();\n }\n afterFlushAnimationsDone(cb) {\n this._transitionEngine.afterFlushAnimationsDone(cb);\n }\n}\n\n/**\n * Returns an instance of `SpecialCasedStyles` if and when any special (non animateable) styles are\n * detected.\n *\n * In CSS there exist properties that cannot be animated within a keyframe animation\n * (whether it be via CSS keyframes or web-animations) and the animation implementation\n * will ignore them. This function is designed to detect those special cased styles and\n * return a container that will be executed at the start and end of the animation.\n *\n * @returns an instance of `SpecialCasedStyles` if any special styles are detected otherwise `null`\n */\nfunction packageNonAnimatableStyles(element, styles) {\n let startStyles = null;\n let endStyles = null;\n if (Array.isArray(styles) && styles.length) {\n startStyles = filterNonAnimatableStyles(styles[0]);\n if (styles.length > 1) {\n endStyles = filterNonAnimatableStyles(styles[styles.length - 1]);\n }\n } else if (styles instanceof Map) {\n startStyles = filterNonAnimatableStyles(styles);\n }\n return startStyles || endStyles ? new SpecialCasedStyles(element, startStyles, endStyles) : null;\n}\n/**\n * Designed to be executed during a keyframe-based animation to apply any special-cased styles.\n *\n * When started (when the `start()` method is run) then the provided `startStyles`\n * will be applied. When finished (when the `finish()` method is called) the\n * `endStyles` will be applied as well any any starting styles. Finally when\n * `destroy()` is called then all styles will be removed.\n */\nclass SpecialCasedStyles {\n static {\n this.initialStylesByElement = new WeakMap();\n }\n constructor(_element, _startStyles, _endStyles) {\n this._element = _element;\n this._startStyles = _startStyles;\n this._endStyles = _endStyles;\n this._state = 0 /* SpecialCasedStylesState.Pending */;\n let initialStyles = SpecialCasedStyles.initialStylesByElement.get(_element);\n if (!initialStyles) {\n SpecialCasedStyles.initialStylesByElement.set(_element, initialStyles = new Map());\n }\n this._initialStyles = initialStyles;\n }\n start() {\n if (this._state < 1 /* SpecialCasedStylesState.Started */) {\n if (this._startStyles) {\n setStyles(this._element, this._startStyles, this._initialStyles);\n }\n this._state = 1 /* SpecialCasedStylesState.Started */;\n }\n }\n finish() {\n this.start();\n if (this._state < 2 /* SpecialCasedStylesState.Finished */) {\n setStyles(this._element, this._initialStyles);\n if (this._endStyles) {\n setStyles(this._element, this._endStyles);\n this._endStyles = null;\n }\n this._state = 1 /* SpecialCasedStylesState.Started */;\n }\n }\n destroy() {\n this.finish();\n if (this._state < 3 /* SpecialCasedStylesState.Destroyed */) {\n SpecialCasedStyles.initialStylesByElement.delete(this._element);\n if (this._startStyles) {\n eraseStyles(this._element, this._startStyles);\n this._endStyles = null;\n }\n if (this._endStyles) {\n eraseStyles(this._element, this._endStyles);\n this._endStyles = null;\n }\n setStyles(this._element, this._initialStyles);\n this._state = 3 /* SpecialCasedStylesState.Destroyed */;\n }\n }\n}\nfunction filterNonAnimatableStyles(styles) {\n let result = null;\n styles.forEach((val, prop) => {\n if (isNonAnimatableStyle(prop)) {\n result = result || new Map();\n result.set(prop, val);\n }\n });\n return result;\n}\nfunction isNonAnimatableStyle(prop) {\n return prop === 'display' || prop === 'position';\n}\nclass WebAnimationsPlayer {\n constructor(element, keyframes, options, _specialStyles) {\n this.element = element;\n this.keyframes = keyframes;\n this.options = options;\n this._specialStyles = _specialStyles;\n this._onDoneFns = [];\n this._onStartFns = [];\n this._onDestroyFns = [];\n this._initialized = false;\n this._finished = false;\n this._started = false;\n this._destroyed = false;\n // the following original fns are persistent copies of the _onStartFns and _onDoneFns\n // and are used to reset the fns to their original values upon reset()\n // (since the _onStartFns and _onDoneFns get deleted after they are called)\n this._originalOnDoneFns = [];\n this._originalOnStartFns = [];\n this.time = 0;\n this.parentPlayer = null;\n this.currentSnapshot = new Map();\n this._duration = options['duration'];\n this._delay = options['delay'] || 0;\n this.time = this._duration + this._delay;\n }\n _onFinish() {\n if (!this._finished) {\n this._finished = true;\n this._onDoneFns.forEach(fn => fn());\n this._onDoneFns = [];\n }\n }\n init() {\n this._buildPlayer();\n this._preparePlayerBeforeStart();\n }\n _buildPlayer() {\n if (this._initialized) return;\n this._initialized = true;\n const keyframes = this.keyframes;\n // @ts-expect-error overwriting a readonly property\n this.domPlayer = this._triggerWebAnimation(this.element, keyframes, this.options);\n this._finalKeyframe = keyframes.length ? keyframes[keyframes.length - 1] : new Map();\n const onFinish = () => this._onFinish();\n this.domPlayer.addEventListener('finish', onFinish);\n this.onDestroy(() => {\n // We must remove the `finish` event listener once an animation has completed all its\n // iterations. This action is necessary to prevent a memory leak since the listener captures\n // `this`, creating a closure that prevents `this` from being garbage collected.\n this.domPlayer.removeEventListener('finish', onFinish);\n });\n }\n _preparePlayerBeforeStart() {\n // this is required so that the player doesn't start to animate right away\n if (this._delay) {\n this._resetDomPlayerState();\n } else {\n this.domPlayer.pause();\n }\n }\n _convertKeyframesToObject(keyframes) {\n const kfs = [];\n keyframes.forEach(frame => {\n kfs.push(Object.fromEntries(frame));\n });\n return kfs;\n }\n /** @internal */\n _triggerWebAnimation(element, keyframes, options) {\n return element.animate(this._convertKeyframesToObject(keyframes), options);\n }\n onStart(fn) {\n this._originalOnStartFns.push(fn);\n this._onStartFns.push(fn);\n }\n onDone(fn) {\n this._originalOnDoneFns.push(fn);\n this._onDoneFns.push(fn);\n }\n onDestroy(fn) {\n this._onDestroyFns.push(fn);\n }\n play() {\n this._buildPlayer();\n if (!this.hasStarted()) {\n this._onStartFns.forEach(fn => fn());\n this._onStartFns = [];\n this._started = true;\n if (this._specialStyles) {\n this._specialStyles.start();\n }\n }\n this.domPlayer.play();\n }\n pause() {\n this.init();\n this.domPlayer.pause();\n }\n finish() {\n this.init();\n if (this._specialStyles) {\n this._specialStyles.finish();\n }\n this._onFinish();\n this.domPlayer.finish();\n }\n reset() {\n this._resetDomPlayerState();\n this._destroyed = false;\n this._finished = false;\n this._started = false;\n this._onStartFns = this._originalOnStartFns;\n this._onDoneFns = this._originalOnDoneFns;\n }\n _resetDomPlayerState() {\n if (this.domPlayer) {\n this.domPlayer.cancel();\n }\n }\n restart() {\n this.reset();\n this.play();\n }\n hasStarted() {\n return this._started;\n }\n destroy() {\n if (!this._destroyed) {\n this._destroyed = true;\n this._resetDomPlayerState();\n this._onFinish();\n if (this._specialStyles) {\n this._specialStyles.destroy();\n }\n this._onDestroyFns.forEach(fn => fn());\n this._onDestroyFns = [];\n }\n }\n setPosition(p) {\n if (this.domPlayer === undefined) {\n this.init();\n }\n this.domPlayer.currentTime = p * this.time;\n }\n getPosition() {\n // tsc is complaining with TS2362 without the conversion to number\n return +(this.domPlayer.currentTime ?? 0) / this.time;\n }\n get totalTime() {\n return this._delay + this._duration;\n }\n beforeDestroy() {\n const styles = new Map();\n if (this.hasStarted()) {\n // note: this code is invoked only when the `play` function was called prior to this\n // (thus `hasStarted` returns true), this implies that the code that initializes\n // `_finalKeyframe` has also been executed and the non-null assertion can be safely used here\n const finalKeyframe = this._finalKeyframe;\n finalKeyframe.forEach((val, prop) => {\n if (prop !== 'offset') {\n styles.set(prop, this._finished ? val : computeStyle(this.element, prop));\n }\n });\n }\n this.currentSnapshot = styles;\n }\n /** @internal */\n triggerCallback(phaseName) {\n const methods = phaseName === 'start' ? this._onStartFns : this._onDoneFns;\n methods.forEach(fn => fn());\n methods.length = 0;\n }\n}\nclass WebAnimationsDriver {\n validateStyleProperty(prop) {\n // Perform actual validation in dev mode only, in prod mode this check is a noop.\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n return validateStyleProperty(prop);\n }\n return true;\n }\n validateAnimatableStyleProperty(prop) {\n // Perform actual validation in dev mode only, in prod mode this check is a noop.\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n const cssProp = camelCaseToDashCase(prop);\n return validateWebAnimatableStyleProperty(cssProp);\n }\n return true;\n }\n matchesElement(_element, _selector) {\n // This method is deprecated and no longer in use so we return false.\n return false;\n }\n containsElement(elm1, elm2) {\n return containsElement(elm1, elm2);\n }\n getParentElement(element) {\n return getParentElement(element);\n }\n query(element, selector, multi) {\n return invokeQuery(element, selector, multi);\n }\n computeStyle(element, prop, defaultValue) {\n return computeStyle(element, prop);\n }\n animate(element, keyframes, duration, delay, easing, previousPlayers = []) {\n const fill = delay == 0 ? 'both' : 'forwards';\n const playerOptions = {\n duration,\n delay,\n fill\n };\n // we check for this to avoid having a null|undefined value be present\n // for the easing (which results in an error for certain browsers #9752)\n if (easing) {\n playerOptions['easing'] = easing;\n }\n const previousStyles = new Map();\n const previousWebAnimationPlayers = previousPlayers.filter(player => player instanceof WebAnimationsPlayer);\n if (allowPreviousPlayerStylesMerge(duration, delay)) {\n previousWebAnimationPlayers.forEach(player => {\n player.currentSnapshot.forEach((val, prop) => previousStyles.set(prop, val));\n });\n }\n let _keyframes = normalizeKeyframes(keyframes).map(styles => new Map(styles));\n _keyframes = balancePreviousStylesIntoKeyframes(element, _keyframes, previousStyles);\n const specialStyles = packageNonAnimatableStyles(element, _keyframes);\n return new WebAnimationsPlayer(element, _keyframes, playerOptions, specialStyles);\n }\n}\nfunction createEngine(type, doc, scheduler) {\n // TODO: find a way to make this tree shakable.\n if (type === 'noop') {\n return new AnimationEngine(doc, new NoopAnimationDriver(), new NoopAnimationStyleNormalizer(), scheduler);\n }\n return new AnimationEngine(doc, new WebAnimationsDriver(), new WebAnimationsStyleNormalizer(), scheduler);\n}\nclass Animation {\n constructor(_driver, input) {\n this._driver = _driver;\n const errors = [];\n const warnings = [];\n const ast = buildAnimationAst(_driver, input, errors, warnings);\n if (errors.length) {\n throw validationFailed(errors);\n }\n if (warnings.length) {\n warnValidation(warnings);\n }\n this._animationAst = ast;\n }\n buildTimelines(element, startingStyles, destinationStyles, options, subInstructions) {\n const start = Array.isArray(startingStyles) ? normalizeStyles(startingStyles) : startingStyles;\n const dest = Array.isArray(destinationStyles) ? normalizeStyles(destinationStyles) : destinationStyles;\n const errors = [];\n subInstructions = subInstructions || new ElementInstructionMap();\n const result = buildAnimationTimelines(this._driver, element, this._animationAst, ENTER_CLASSNAME, LEAVE_CLASSNAME, start, dest, options, subInstructions, errors);\n if (errors.length) {\n throw buildingFailed(errors);\n }\n return result;\n }\n}\nconst ANIMATION_PREFIX = '@';\nconst DISABLE_ANIMATIONS_FLAG = '@.disabled';\nclass BaseAnimationRenderer {\n constructor(namespaceId, delegate, engine, _onDestroy) {\n this.namespaceId = namespaceId;\n this.delegate = delegate;\n this.engine = engine;\n this._onDestroy = _onDestroy;\n // We need to explicitly type this property because of an api-extractor bug\n // See https://github.com/microsoft/rushstack/issues/4390\n this.ɵtype = 0 /* AnimationRendererType.Regular */;\n }\n get data() {\n return this.delegate.data;\n }\n destroyNode(node) {\n this.delegate.destroyNode?.(node);\n }\n destroy() {\n this.engine.destroy(this.namespaceId, this.delegate);\n this.engine.afterFlushAnimationsDone(() => {\n // Call the renderer destroy method after the animations has finished as otherwise\n // styles will be removed too early which will cause an unstyled animation.\n queueMicrotask(() => {\n this.delegate.destroy();\n });\n });\n this._onDestroy?.();\n }\n createElement(name, namespace) {\n return this.delegate.createElement(name, namespace);\n }\n createComment(value) {\n return this.delegate.createComment(value);\n }\n createText(value) {\n return this.delegate.createText(value);\n }\n appendChild(parent, newChild) {\n this.delegate.appendChild(parent, newChild);\n this.engine.onInsert(this.namespaceId, newChild, parent, false);\n }\n insertBefore(parent, newChild, refChild, isMove = true) {\n this.delegate.insertBefore(parent, newChild, refChild);\n // If `isMove` true than we should animate this insert.\n this.engine.onInsert(this.namespaceId, newChild, parent, isMove);\n }\n removeChild(parent, oldChild, isHostElement) {\n this.engine.onRemove(this.namespaceId, oldChild, this.delegate);\n }\n selectRootElement(selectorOrNode, preserveContent) {\n return this.delegate.selectRootElement(selectorOrNode, preserveContent);\n }\n parentNode(node) {\n return this.delegate.parentNode(node);\n }\n nextSibling(node) {\n return this.delegate.nextSibling(node);\n }\n setAttribute(el, name, value, namespace) {\n this.delegate.setAttribute(el, name, value, namespace);\n }\n removeAttribute(el, name, namespace) {\n this.delegate.removeAttribute(el, name, namespace);\n }\n addClass(el, name) {\n this.delegate.addClass(el, name);\n }\n removeClass(el, name) {\n this.delegate.removeClass(el, name);\n }\n setStyle(el, style, value, flags) {\n this.delegate.setStyle(el, style, value, flags);\n }\n removeStyle(el, style, flags) {\n this.delegate.removeStyle(el, style, flags);\n }\n setProperty(el, name, value) {\n if (name.charAt(0) == ANIMATION_PREFIX && name == DISABLE_ANIMATIONS_FLAG) {\n this.disableAnimations(el, !!value);\n } else {\n this.delegate.setProperty(el, name, value);\n }\n }\n setValue(node, value) {\n this.delegate.setValue(node, value);\n }\n listen(target, eventName, callback) {\n return this.delegate.listen(target, eventName, callback);\n }\n disableAnimations(element, value) {\n this.engine.disableAnimations(element, value);\n }\n}\nclass AnimationRenderer extends BaseAnimationRenderer {\n constructor(factory, namespaceId, delegate, engine, onDestroy) {\n super(namespaceId, delegate, engine, onDestroy);\n this.factory = factory;\n this.namespaceId = namespaceId;\n }\n setProperty(el, name, value) {\n if (name.charAt(0) == ANIMATION_PREFIX) {\n if (name.charAt(1) == '.' && name == DISABLE_ANIMATIONS_FLAG) {\n value = value === undefined ? true : !!value;\n this.disableAnimations(el, value);\n } else {\n this.engine.process(this.namespaceId, el, name.slice(1), value);\n }\n } else {\n this.delegate.setProperty(el, name, value);\n }\n }\n listen(target, eventName, callback) {\n if (eventName.charAt(0) == ANIMATION_PREFIX) {\n const element = resolveElementFromTarget(target);\n let name = eventName.slice(1);\n let phase = '';\n // @listener.phase is for trigger animation callbacks\n // @@listener is for animation builder callbacks\n if (name.charAt(0) != ANIMATION_PREFIX) {\n [name, phase] = parseTriggerCallbackName(name);\n }\n return this.engine.listen(this.namespaceId, element, name, phase, event => {\n const countId = event['_data'] || -1;\n this.factory.scheduleListenerCallback(countId, callback, event);\n });\n }\n return this.delegate.listen(target, eventName, callback);\n }\n}\nfunction resolveElementFromTarget(target) {\n switch (target) {\n case 'body':\n return document.body;\n case 'document':\n return document;\n case 'window':\n return window;\n default:\n return target;\n }\n}\nfunction parseTriggerCallbackName(triggerName) {\n const dotIndex = triggerName.indexOf('.');\n const trigger = triggerName.substring(0, dotIndex);\n const phase = triggerName.slice(dotIndex + 1);\n return [trigger, phase];\n}\nclass AnimationRendererFactory {\n constructor(delegate, engine, _zone) {\n this.delegate = delegate;\n this.engine = engine;\n this._zone = _zone;\n this._currentId = 0;\n this._microtaskId = 1;\n this._animationCallbacksBuffer = [];\n this._rendererCache = new Map();\n this._cdRecurDepth = 0;\n engine.onRemovalComplete = (element, delegate) => {\n // Note: if a component element has a leave animation, and a host leave animation,\n // the view engine will call `removeChild` for the parent\n // component renderer as well as for the child component renderer.\n // Therefore, we need to check if we already removed the element.\n const parentNode = delegate?.parentNode(element);\n if (parentNode) {\n delegate.removeChild(parentNode, element);\n }\n };\n }\n createRenderer(hostElement, type) {\n const EMPTY_NAMESPACE_ID = '';\n // cache the delegates to find out which cached delegate can\n // be used by which cached renderer\n const delegate = this.delegate.createRenderer(hostElement, type);\n if (!hostElement || !type?.data?.['animation']) {\n const cache = this._rendererCache;\n let renderer = cache.get(delegate);\n if (!renderer) {\n // Ensure that the renderer is removed from the cache on destroy\n // since it may contain references to detached DOM nodes.\n const onRendererDestroy = () => cache.delete(delegate);\n renderer = new BaseAnimationRenderer(EMPTY_NAMESPACE_ID, delegate, this.engine, onRendererDestroy);\n // only cache this result when the base renderer is used\n cache.set(delegate, renderer);\n }\n return renderer;\n }\n const componentId = type.id;\n const namespaceId = type.id + '-' + this._currentId;\n this._currentId++;\n this.engine.register(namespaceId, hostElement);\n const registerTrigger = trigger => {\n if (Array.isArray(trigger)) {\n trigger.forEach(registerTrigger);\n } else {\n this.engine.registerTrigger(componentId, namespaceId, hostElement, trigger.name, trigger);\n }\n };\n const animationTriggers = type.data['animation'];\n animationTriggers.forEach(registerTrigger);\n return new AnimationRenderer(this, namespaceId, delegate, this.engine);\n }\n begin() {\n this._cdRecurDepth++;\n if (this.delegate.begin) {\n this.delegate.begin();\n }\n }\n _scheduleCountTask() {\n queueMicrotask(() => {\n this._microtaskId++;\n });\n }\n /** @internal */\n scheduleListenerCallback(count, fn, data) {\n if (count >= 0 && count < this._microtaskId) {\n this._zone.run(() => fn(data));\n return;\n }\n const animationCallbacksBuffer = this._animationCallbacksBuffer;\n if (animationCallbacksBuffer.length == 0) {\n queueMicrotask(() => {\n this._zone.run(() => {\n animationCallbacksBuffer.forEach(tuple => {\n const [fn, data] = tuple;\n fn(data);\n });\n this._animationCallbacksBuffer = [];\n });\n });\n }\n animationCallbacksBuffer.push([fn, data]);\n }\n end() {\n this._cdRecurDepth--;\n // this is to prevent animations from running twice when an inner\n // component does CD when a parent component instead has inserted it\n if (this._cdRecurDepth == 0) {\n this._zone.runOutsideAngular(() => {\n this._scheduleCountTask();\n this.engine.flush(this._microtaskId);\n });\n }\n if (this.delegate.end) {\n this.delegate.end();\n }\n }\n whenRenderingDone() {\n return this.engine.whenRenderingDone();\n }\n}\n\n/**\n * @module\n * @description\n * Entry point for all animation APIs of the animation browser package.\n */\n\n/**\n * @module\n * @description\n * Entry point for all public APIs of this package.\n */\n\n// This file is not used to build this module. It is only used during editing\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { AnimationDriver, NoopAnimationDriver, Animation as ɵAnimation, AnimationEngine as ɵAnimationEngine, AnimationRenderer as ɵAnimationRenderer, AnimationRendererFactory as ɵAnimationRendererFactory, AnimationStyleNormalizer as ɵAnimationStyleNormalizer, BaseAnimationRenderer as ɵBaseAnimationRenderer, NoopAnimationStyleNormalizer as ɵNoopAnimationStyleNormalizer, WebAnimationsDriver as ɵWebAnimationsDriver, WebAnimationsPlayer as ɵWebAnimationsPlayer, WebAnimationsStyleNormalizer as ɵWebAnimationsStyleNormalizer, allowPreviousPlayerStylesMerge as ɵallowPreviousPlayerStylesMerge, camelCaseToDashCase as ɵcamelCaseToDashCase, containsElement as ɵcontainsElement, createEngine as ɵcreateEngine, getParentElement as ɵgetParentElement, invokeQuery as ɵinvokeQuery, normalizeKeyframes as ɵnormalizeKeyframes, validateStyleProperty as ɵvalidateStyleProperty, validateWebAnimatableStyleProperty as ɵvalidateWebAnimatableStyleProperty };\n","/**\n * @license Angular v17.3.0\n * (c) 2010-2022 Google LLC. https://angular.io/\n * License: MIT\n */\n\nimport * as i0 from '@angular/core';\nimport { inject, ɵChangeDetectionScheduler, Injectable, Inject, RendererFactory2, NgZone, ANIMATION_MODULE_TYPE, NgModule, ɵperformanceMarkFeature } from '@angular/core';\nexport { ANIMATION_MODULE_TYPE } from '@angular/core';\nimport { ɵDomRendererFactory2, BrowserModule } from '@angular/platform-browser';\nimport * as i1 from '@angular/animations/browser';\nimport { ɵAnimationEngine, ɵWebAnimationsStyleNormalizer, ɵAnimationRendererFactory, ɵAnimationStyleNormalizer, AnimationDriver, ɵWebAnimationsDriver, NoopAnimationDriver } from '@angular/animations/browser';\nimport { DOCUMENT } from '@angular/common';\nclass InjectableAnimationEngine extends ɵAnimationEngine {\n // The `ApplicationRef` is injected here explicitly to force the dependency ordering.\n // Since the `ApplicationRef` should be created earlier before the `AnimationEngine`, they\n // both have `ngOnDestroy` hooks and `flush()` must be called after all views are destroyed.\n constructor(doc, driver, normalizer) {\n super(doc, driver, normalizer, inject(ɵChangeDetectionScheduler, {\n optional: true\n }));\n }\n ngOnDestroy() {\n this.flush();\n }\n static {\n this.ɵfac = function InjectableAnimationEngine_Factory(t) {\n return new (t || InjectableAnimationEngine)(i0.ɵɵinject(DOCUMENT), i0.ɵɵinject(i1.AnimationDriver), i0.ɵɵinject(i1.ɵAnimationStyleNormalizer));\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: InjectableAnimationEngine,\n factory: InjectableAnimationEngine.ɵfac\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(InjectableAnimationEngine, [{\n type: Injectable\n }], () => [{\n type: Document,\n decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }]\n }, {\n type: i1.AnimationDriver\n }, {\n type: i1.ɵAnimationStyleNormalizer\n }], null);\n})();\nfunction instantiateDefaultStyleNormalizer() {\n return new ɵWebAnimationsStyleNormalizer();\n}\nfunction instantiateRendererFactory(renderer, engine, zone) {\n return new ɵAnimationRendererFactory(renderer, engine, zone);\n}\nconst SHARED_ANIMATION_PROVIDERS = [{\n provide: ɵAnimationStyleNormalizer,\n useFactory: instantiateDefaultStyleNormalizer\n}, {\n provide: ɵAnimationEngine,\n useClass: InjectableAnimationEngine\n}, {\n provide: RendererFactory2,\n useFactory: instantiateRendererFactory,\n deps: [ɵDomRendererFactory2, ɵAnimationEngine, NgZone]\n}];\n/**\n * Separate providers from the actual module so that we can do a local modification in Google3 to\n * include them in the BrowserModule.\n */\nconst BROWSER_ANIMATIONS_PROVIDERS = [{\n provide: AnimationDriver,\n useFactory: () => new ɵWebAnimationsDriver()\n}, {\n provide: ANIMATION_MODULE_TYPE,\n useValue: 'BrowserAnimations'\n}, ...SHARED_ANIMATION_PROVIDERS];\n/**\n * Separate providers from the actual module so that we can do a local modification in Google3 to\n * include them in the BrowserTestingModule.\n */\nconst BROWSER_NOOP_ANIMATIONS_PROVIDERS = [{\n provide: AnimationDriver,\n useClass: NoopAnimationDriver\n}, {\n provide: ANIMATION_MODULE_TYPE,\n useValue: 'NoopAnimations'\n}, ...SHARED_ANIMATION_PROVIDERS];\n\n/**\n * Exports `BrowserModule` with additional [dependency-injection providers](guide/glossary#provider)\n * for use with animations. See [Animations](guide/animations).\n * @publicApi\n */\nclass BrowserAnimationsModule {\n /**\n * Configures the module based on the specified object.\n *\n * @param config Object used to configure the behavior of the `BrowserAnimationsModule`.\n * @see {@link BrowserAnimationsModuleConfig}\n *\n * @usageNotes\n * When registering the `BrowserAnimationsModule`, you can use the `withConfig`\n * function as follows:\n * ```\n * @NgModule({\n * imports: [BrowserAnimationsModule.withConfig(config)]\n * })\n * class MyNgModule {}\n * ```\n */\n static withConfig(config) {\n return {\n ngModule: BrowserAnimationsModule,\n providers: config.disableAnimations ? BROWSER_NOOP_ANIMATIONS_PROVIDERS : BROWSER_ANIMATIONS_PROVIDERS\n };\n }\n static {\n this.ɵfac = function BrowserAnimationsModule_Factory(t) {\n return new (t || BrowserAnimationsModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: BrowserAnimationsModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n providers: BROWSER_ANIMATIONS_PROVIDERS,\n imports: [BrowserModule]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(BrowserAnimationsModule, [{\n type: NgModule,\n args: [{\n exports: [BrowserModule],\n providers: BROWSER_ANIMATIONS_PROVIDERS\n }]\n }], null, null);\n})();\n/**\n * Returns the set of [dependency-injection providers](guide/glossary#provider)\n * to enable animations in an application. See [animations guide](guide/animations)\n * to learn more about animations in Angular.\n *\n * @usageNotes\n *\n * The function is useful when you want to enable animations in an application\n * bootstrapped using the `bootstrapApplication` function. In this scenario there\n * is no need to import the `BrowserAnimationsModule` NgModule at all, just add\n * providers returned by this function to the `providers` list as show below.\n *\n * ```typescript\n * bootstrapApplication(RootComponent, {\n * providers: [\n * provideAnimations()\n * ]\n * });\n * ```\n *\n * @publicApi\n */\nfunction provideAnimations() {\n ɵperformanceMarkFeature('NgEagerAnimations');\n // Return a copy to prevent changes to the original array in case any in-place\n // alterations are performed to the `provideAnimations` call results in app code.\n return [...BROWSER_ANIMATIONS_PROVIDERS];\n}\n/**\n * A null player that must be imported to allow disabling of animations.\n * @publicApi\n */\nclass NoopAnimationsModule {\n static {\n this.ɵfac = function NoopAnimationsModule_Factory(t) {\n return new (t || NoopAnimationsModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: NoopAnimationsModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n providers: BROWSER_NOOP_ANIMATIONS_PROVIDERS,\n imports: [BrowserModule]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NoopAnimationsModule, [{\n type: NgModule,\n args: [{\n exports: [BrowserModule],\n providers: BROWSER_NOOP_ANIMATIONS_PROVIDERS\n }]\n }], null, null);\n})();\n/**\n * Returns the set of [dependency-injection providers](guide/glossary#provider)\n * to disable animations in an application. See [animations guide](guide/animations)\n * to learn more about animations in Angular.\n *\n * @usageNotes\n *\n * The function is useful when you want to bootstrap an application using\n * the `bootstrapApplication` function, but you need to disable animations\n * (for example, when running tests).\n *\n * ```typescript\n * bootstrapApplication(RootComponent, {\n * providers: [\n * provideNoopAnimations()\n * ]\n * });\n * ```\n *\n * @publicApi\n */\nfunction provideNoopAnimations() {\n // Return a copy to prevent changes to the original array in case any in-place\n // alterations are performed to the `provideNoopAnimations` call results in app code.\n return [...BROWSER_NOOP_ANIMATIONS_PROVIDERS];\n}\n\n/**\n * @module\n * @description\n * Entry point for all animation APIs of the animation browser package.\n */\n\n/**\n * @module\n * @description\n * Entry point for all public APIs of this package.\n */\n\n// This file is not used to build this module. It is only used during editing\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { BrowserAnimationsModule, NoopAnimationsModule, provideAnimations, provideNoopAnimations, InjectableAnimationEngine as ɵInjectableAnimationEngine };\n","/*! @azure/msal-browser v3.10.0 2024-02-17 */\n'use strict';\nimport { EventType } from './EventType.mjs';\nimport { InteractionType, InteractionStatus } from '../utils/BrowserConstants.mjs';\n\n/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\nclass EventMessageUtils {\n /**\n * Gets interaction status from event message\n * @param message\n * @param currentStatus\n */\n static getInteractionStatusFromEvent(message, currentStatus) {\n switch (message.eventType) {\n case EventType.LOGIN_START:\n return InteractionStatus.Login;\n case EventType.SSO_SILENT_START:\n return InteractionStatus.SsoSilent;\n case EventType.ACQUIRE_TOKEN_START:\n if (message.interactionType === InteractionType.Redirect ||\n message.interactionType === InteractionType.Popup) {\n return InteractionStatus.AcquireToken;\n }\n break;\n case EventType.HANDLE_REDIRECT_START:\n return InteractionStatus.HandleRedirect;\n case EventType.LOGOUT_START:\n return InteractionStatus.Logout;\n case EventType.SSO_SILENT_SUCCESS:\n case EventType.SSO_SILENT_FAILURE:\n if (currentStatus &&\n currentStatus !== InteractionStatus.SsoSilent) {\n // Prevent this event from clearing any status other than ssoSilent\n break;\n }\n return InteractionStatus.None;\n case EventType.LOGOUT_END:\n if (currentStatus &&\n currentStatus !== InteractionStatus.Logout) {\n // Prevent this event from clearing any status other than logout\n break;\n }\n return InteractionStatus.None;\n case EventType.HANDLE_REDIRECT_END:\n if (currentStatus &&\n currentStatus !== InteractionStatus.HandleRedirect) {\n // Prevent this event from clearing any status other than handleRedirect\n break;\n }\n return InteractionStatus.None;\n case EventType.LOGIN_SUCCESS:\n case EventType.LOGIN_FAILURE:\n case EventType.ACQUIRE_TOKEN_SUCCESS:\n case EventType.ACQUIRE_TOKEN_FAILURE:\n case EventType.RESTORE_FROM_BFCACHE:\n if (message.interactionType === InteractionType.Redirect ||\n message.interactionType === InteractionType.Popup) {\n if (currentStatus &&\n currentStatus !== InteractionStatus.Login &&\n currentStatus !== InteractionStatus.AcquireToken) {\n // Prevent this event from clearing any status other than login or acquireToken\n break;\n }\n return InteractionStatus.None;\n }\n break;\n }\n return null;\n }\n}\n\nexport { EventMessageUtils };\n\n","import * as i0 from '@angular/core';\nimport { InjectionToken, Injectable, Inject, Optional, Component, NgModule } from '@angular/core';\nimport { WrapperSKU, InteractionStatus, EventMessageUtils, InteractionType, BrowserConfigurationAuthError, UrlString, BrowserUtils, StringUtils, NavigationClient } from '@azure/msal-browser';\nimport { from, ReplaySubject, Subject, BehaviorSubject, of, EMPTY } from 'rxjs';\nimport * as i3 from '@angular/common';\nimport { DOCUMENT, CommonModule } from '@angular/common';\nimport { map, concatMap, catchError, switchMap, take, filter } from 'rxjs/operators';\nimport * as i4 from '@angular/router';\n\n/* eslint-disable header/header */\nconst name = \"@azure/msal-angular\";\nconst version = \"3.0.13\";\n\n/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\nconst MSAL_INSTANCE = new InjectionToken(\"MSAL_INSTANCE\");\nconst MSAL_GUARD_CONFIG = new InjectionToken(\"MSAL_GUARD_CONFIG\");\nconst MSAL_INTERCEPTOR_CONFIG = new InjectionToken(\"MSAL_INTERCEPTOR_CONFIG\");\nconst MSAL_BROADCAST_CONFIG = new InjectionToken(\"MSAL_BROADCAST_CONFIG\");\n\n/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\nclass MsalService {\n constructor(instance, location) {\n this.instance = instance;\n this.location = location;\n const hash = this.location.path(true).split(\"#\").pop();\n if (hash) {\n this.redirectHash = `#${hash}`;\n }\n this.instance.initializeWrapperLibrary(WrapperSKU.Angular, version);\n }\n initialize() {\n return from(this.instance.initialize());\n }\n acquireTokenPopup(request) {\n return from(this.instance.acquireTokenPopup(request));\n }\n acquireTokenRedirect(request) {\n return from(this.instance.acquireTokenRedirect(request));\n }\n acquireTokenSilent(silentRequest) {\n return from(this.instance.acquireTokenSilent(silentRequest));\n }\n handleRedirectObservable(hash) {\n return from(this.instance.initialize().then(() => this.instance.handleRedirectPromise(hash || this.redirectHash)));\n }\n loginPopup(request) {\n return from(this.instance.loginPopup(request));\n }\n loginRedirect(request) {\n return from(this.instance.loginRedirect(request));\n }\n logout(logoutRequest) {\n return from(this.instance.logout(logoutRequest));\n }\n logoutRedirect(logoutRequest) {\n return from(this.instance.logoutRedirect(logoutRequest));\n }\n logoutPopup(logoutRequest) {\n return from(this.instance.logoutPopup(logoutRequest));\n }\n ssoSilent(request) {\n return from(this.instance.ssoSilent(request));\n }\n /**\n * Gets logger for msal-angular.\n * If no logger set, returns logger instance created with same options as msal-browser\n */\n getLogger() {\n if (!this.logger) {\n this.logger = this.instance.getLogger().clone(name, version);\n }\n return this.logger;\n }\n // Create a logger instance for msal-angular with the same options as msal-browser\n setLogger(logger) {\n this.logger = logger.clone(name, version);\n this.instance.setLogger(logger);\n }\n}\nMsalService.ɵfac = function MsalService_Factory(t) {\n return new (t || MsalService)(i0.ɵɵinject(MSAL_INSTANCE), i0.ɵɵinject(i3.Location));\n};\nMsalService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: MsalService,\n factory: MsalService.ɵfac\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MsalService, [{\n type: Injectable\n }], function () {\n return [{\n type: undefined,\n decorators: [{\n type: Inject,\n args: [MSAL_INSTANCE]\n }]\n }, {\n type: i3.Location\n }];\n }, null);\n})();\n\n/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\nclass MsalBroadcastService {\n constructor(msalInstance, authService, msalBroadcastConfig) {\n this.msalInstance = msalInstance;\n this.authService = authService;\n this.msalBroadcastConfig = msalBroadcastConfig;\n // Make _msalSubject a ReplaySubject if configured to replay past events\n if (this.msalBroadcastConfig && this.msalBroadcastConfig.eventsToReplay > 0) {\n this.authService.getLogger().verbose(`BroadcastService - eventsToReplay set on BroadcastConfig, replaying the last ${this.msalBroadcastConfig.eventsToReplay} events`);\n this._msalSubject = new ReplaySubject(this.msalBroadcastConfig.eventsToReplay);\n } else {\n // Defaults to _msalSubject being a Subject\n this._msalSubject = new Subject();\n }\n this.msalSubject$ = this._msalSubject.asObservable();\n // InProgress as BehaviorSubject so most recent inProgress state will be available upon subscription\n this._inProgress = new BehaviorSubject(InteractionStatus.Startup);\n this.inProgress$ = this._inProgress.asObservable();\n this.msalInstance.addEventCallback(message => {\n this._msalSubject.next(message);\n const status = EventMessageUtils.getInteractionStatusFromEvent(message, this._inProgress.value);\n if (status !== null) {\n this.authService.getLogger().verbose(`BroadcastService - ${message.eventType} results in setting inProgress from ${this._inProgress.value} to ${status}`);\n this._inProgress.next(status);\n }\n });\n }\n}\nMsalBroadcastService.ɵfac = function MsalBroadcastService_Factory(t) {\n return new (t || MsalBroadcastService)(i0.ɵɵinject(MSAL_INSTANCE), i0.ɵɵinject(MsalService), i0.ɵɵinject(MSAL_BROADCAST_CONFIG, 8));\n};\nMsalBroadcastService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: MsalBroadcastService,\n factory: MsalBroadcastService.ɵfac\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MsalBroadcastService, [{\n type: Injectable\n }], function () {\n return [{\n type: undefined,\n decorators: [{\n type: Inject,\n args: [MSAL_INSTANCE]\n }]\n }, {\n type: MsalService\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [MSAL_BROADCAST_CONFIG]\n }]\n }];\n }, null);\n})();\n\n/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\nclass MsalGuard {\n constructor(msalGuardConfig, msalBroadcastService, authService, location, router) {\n this.msalGuardConfig = msalGuardConfig;\n this.msalBroadcastService = msalBroadcastService;\n this.authService = authService;\n this.location = location;\n this.router = router;\n // Subscribing so events in MsalGuard will set inProgress$ observable\n this.msalBroadcastService.inProgress$.subscribe();\n }\n /**\n * Parses url string to UrlTree\n * @param url\n */\n parseUrl(url) {\n return this.router.parseUrl(url);\n }\n /**\n * Builds the absolute url for the destination page\n * @param path Relative path of requested page\n * @returns Full destination url\n */\n getDestinationUrl(path) {\n this.authService.getLogger().verbose(\"Guard - getting destination url\");\n // Absolute base url for the application (default to origin if base element not present)\n const baseElements = document.getElementsByTagName(\"base\");\n const baseUrl = this.location.normalize(baseElements.length ? baseElements[0].href : window.location.origin);\n // Path of page (including hash, if using hash routing)\n const pathUrl = this.location.prepareExternalUrl(path);\n // Hash location strategy\n if (pathUrl.startsWith(\"#\")) {\n this.authService.getLogger().verbose(\"Guard - destination by hash routing\");\n return `${baseUrl}/${pathUrl}`;\n }\n /*\n * If using path location strategy, pathUrl will include the relative portion of the base path (e.g. /base/page).\n * Since baseUrl also includes /base, can just concatentate baseUrl + path\n */\n return `${baseUrl}${path}`;\n }\n /**\n * Interactively prompt the user to login\n * @param url Path of the requested page\n */\n loginInteractively(state) {\n const authRequest = typeof this.msalGuardConfig.authRequest === \"function\" ? this.msalGuardConfig.authRequest(this.authService, state) : {\n ...this.msalGuardConfig.authRequest\n };\n if (this.msalGuardConfig.interactionType === InteractionType.Popup) {\n this.authService.getLogger().verbose(\"Guard - logging in by popup\");\n return this.authService.loginPopup(authRequest).pipe(map(response => {\n this.authService.getLogger().verbose(\"Guard - login by popup successful, can activate, setting active account\");\n this.authService.instance.setActiveAccount(response.account);\n return true;\n }));\n }\n this.authService.getLogger().verbose(\"Guard - logging in by redirect\");\n const redirectStartPage = this.getDestinationUrl(state.url);\n return this.authService.loginRedirect({\n redirectStartPage,\n ...authRequest\n }).pipe(map(() => false));\n }\n /**\n * Helper which checks for the correct interaction type, prevents page with Guard to be set as redirect, and calls handleRedirectObservable\n * @param state\n */\n activateHelper(state) {\n if (this.msalGuardConfig.interactionType !== InteractionType.Popup && this.msalGuardConfig.interactionType !== InteractionType.Redirect) {\n throw new BrowserConfigurationAuthError(\"invalid_interaction_type\", \"Invalid interaction type provided to MSAL Guard. InteractionType.Popup or InteractionType.Redirect must be provided in the MsalGuardConfiguration\");\n }\n this.authService.getLogger().verbose(\"MSAL Guard activated\");\n /*\n * If a page with MSAL Guard is set as the redirect for acquireTokenSilent,\n * short-circuit to prevent redirecting or popups.\n */\n if (typeof window !== \"undefined\") {\n if (UrlString.hashContainsKnownProperties(window.location.hash) && BrowserUtils.isInIframe() && !this.authService.instance.getConfiguration().system.allowRedirectInIframe) {\n this.authService.getLogger().warning(\"Guard - redirectUri set to page with MSAL Guard. It is recommended to not set redirectUri to a page that requires authentication.\");\n return of(false);\n }\n } else {\n this.authService.getLogger().info(\"Guard - window is undefined, MSAL does not support server-side token acquisition\");\n return of(true);\n }\n /**\n * If a loginFailedRoute is set in the config, set this as the loginFailedRoute\n */\n if (this.msalGuardConfig.loginFailedRoute) {\n this.loginFailedRoute = this.parseUrl(this.msalGuardConfig.loginFailedRoute);\n }\n // Capture current path before it gets changed by handleRedirectObservable\n const currentPath = this.location.path(true);\n return this.authService.initialize().pipe(concatMap(() => {\n return this.authService.handleRedirectObservable();\n }), concatMap(() => {\n if (!this.authService.instance.getAllAccounts().length) {\n if (state) {\n this.authService.getLogger().verbose(\"Guard - no accounts retrieved, log in required to activate\");\n return this.loginInteractively(state);\n }\n this.authService.getLogger().verbose(\"Guard - no accounts retrieved, no state, cannot load\");\n return of(false);\n }\n this.authService.getLogger().verbose(\"Guard - at least 1 account exists, can activate or load\");\n // Prevent navigating the app to /#code= or /code=\n if (state) {\n /*\n * Path routing:\n * state.url: /#code=...\n * state.root.fragment: code=...\n */\n /*\n * Hash routing:\n * state.url: /code\n * state.root.fragment: null\n */\n const urlContainsCode = this.includesCode(state.url);\n const fragmentContainsCode = !!state.root && !!state.root.fragment && this.includesCode(`#${state.root.fragment}`);\n const hashRouting = this.location.prepareExternalUrl(state.url).indexOf(\"#\") === 0;\n // Ensure code parameter is in fragment (and not in query parameter), or that hash hash routing is used\n if (urlContainsCode && (fragmentContainsCode || hashRouting)) {\n this.authService.getLogger().info(\"Guard - Hash contains known code response, stopping navigation.\");\n // Path routing (navigate to current path without hash)\n if (currentPath.indexOf(\"#\") > -1) {\n return of(this.parseUrl(this.location.path()));\n }\n // Hash routing (navigate to root path)\n return of(this.parseUrl(\"\"));\n }\n }\n return of(true);\n }), catchError(error => {\n this.authService.getLogger().error(\"Guard - error while logging in, unable to activate\");\n this.authService.getLogger().errorPii(`Guard - error: ${error.message}`);\n /**\n * If a loginFailedRoute is set, checks to see if state is passed before returning route\n */\n if (this.loginFailedRoute && state) {\n this.authService.getLogger().verbose(\"Guard - loginFailedRoute set, redirecting\");\n return of(this.loginFailedRoute);\n }\n return of(false);\n }));\n }\n includesCode(path) {\n return path.lastIndexOf(\"/code\") > -1 && path.lastIndexOf(\"/code\") === path.length - \"/code\".length ||\n // path.endsWith(\"/code\")\n path.indexOf(\"#code=\") > -1 || path.indexOf(\"&code=\") > -1;\n }\n canActivate(route, state) {\n this.authService.getLogger().verbose(\"Guard - canActivate\");\n return this.activateHelper(state);\n }\n canActivateChild(route, state) {\n this.authService.getLogger().verbose(\"Guard - canActivateChild\");\n return this.activateHelper(state);\n }\n canMatch() {\n this.authService.getLogger().verbose(\"Guard - canLoad\");\n return this.activateHelper();\n }\n}\nMsalGuard.ɵfac = function MsalGuard_Factory(t) {\n return new (t || MsalGuard)(i0.ɵɵinject(MSAL_GUARD_CONFIG), i0.ɵɵinject(MsalBroadcastService), i0.ɵɵinject(MsalService), i0.ɵɵinject(i3.Location), i0.ɵɵinject(i4.Router));\n};\nMsalGuard.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: MsalGuard,\n factory: MsalGuard.ɵfac\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MsalGuard, [{\n type: Injectable\n }], function () {\n return [{\n type: undefined,\n decorators: [{\n type: Inject,\n args: [MSAL_GUARD_CONFIG]\n }]\n }, {\n type: MsalBroadcastService\n }, {\n type: MsalService\n }, {\n type: i3.Location\n }, {\n type: i4.Router\n }];\n }, null);\n})();\n\n/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\nclass MsalInterceptor {\n constructor(msalInterceptorConfig, authService, location, msalBroadcastService,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n document) {\n this.msalInterceptorConfig = msalInterceptorConfig;\n this.authService = authService;\n this.location = location;\n this.msalBroadcastService = msalBroadcastService;\n this._document = document;\n }\n intercept(req,\n // eslint-disable-line @typescript-eslint/no-explicit-any\n next\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ) {\n if (this.msalInterceptorConfig.interactionType !== InteractionType.Popup && this.msalInterceptorConfig.interactionType !== InteractionType.Redirect) {\n throw new BrowserConfigurationAuthError(\"invalid_interaction_type\", \"Invalid interaction type provided to MSAL Interceptor. InteractionType.Popup, InteractionType.Redirect must be provided in the msalInterceptorConfiguration\");\n }\n this.authService.getLogger().verbose(\"MSAL Interceptor activated\");\n const scopes = this.getScopesForEndpoint(req.url, req.method);\n // If no scopes for endpoint, does not acquire token\n if (!scopes || scopes.length === 0) {\n this.authService.getLogger().verbose(\"Interceptor - no scopes for endpoint\");\n return next.handle(req);\n }\n // Sets account as active account or first account\n let account;\n if (!!this.authService.instance.getActiveAccount()) {\n this.authService.getLogger().verbose(\"Interceptor - active account selected\");\n account = this.authService.instance.getActiveAccount();\n } else {\n this.authService.getLogger().verbose(\"Interceptor - no active account, fallback to first account\");\n account = this.authService.instance.getAllAccounts()[0];\n }\n const authRequest = typeof this.msalInterceptorConfig.authRequest === \"function\" ? this.msalInterceptorConfig.authRequest(this.authService, req, {\n account: account\n }) : {\n ...this.msalInterceptorConfig.authRequest,\n account\n };\n this.authService.getLogger().info(`Interceptor - ${scopes.length} scopes found for endpoint`);\n this.authService.getLogger().infoPii(`Interceptor - [${scopes}] scopes found for ${req.url}`);\n return this.acquireToken(authRequest, scopes, account).pipe(switchMap(result => {\n this.authService.getLogger().verbose(\"Interceptor - setting authorization headers\");\n const headers = req.headers.set(\"Authorization\", `Bearer ${result.accessToken}`);\n const requestClone = req.clone({\n headers\n });\n return next.handle(requestClone);\n }));\n }\n /**\n * Try to acquire token silently. Invoke interaction if acquireTokenSilent rejected with error or resolved with null access token\n * @param authRequest Request\n * @param scopes Array of scopes for the request\n * @param account Account\n * @returns Authentication result\n */\n acquireToken(authRequest, scopes, account) {\n // Note: For MSA accounts, include openid scope when calling acquireTokenSilent to return idToken\n return this.authService.acquireTokenSilent({\n ...authRequest,\n scopes,\n account\n }).pipe(catchError(() => {\n this.authService.getLogger().error(\"Interceptor - acquireTokenSilent rejected with error. Invoking interaction to resolve.\");\n return this.msalBroadcastService.inProgress$.pipe(take(1), switchMap(status => {\n if (status === InteractionStatus.None) {\n return this.acquireTokenInteractively(authRequest, scopes);\n }\n return this.msalBroadcastService.inProgress$.pipe(filter(status => status === InteractionStatus.None), take(1), switchMap(() => this.acquireToken(authRequest, scopes, account)));\n }));\n }), switchMap(result => {\n if (!result.accessToken) {\n this.authService.getLogger().error(\"Interceptor - acquireTokenSilent resolved with null access token. Known issue with B2C tenants, invoking interaction to resolve.\");\n return this.msalBroadcastService.inProgress$.pipe(filter(status => status === InteractionStatus.None), take(1), switchMap(() => this.acquireTokenInteractively(authRequest, scopes)));\n }\n return of(result);\n }));\n }\n /**\n * Invoke interaction for the given set of scopes\n * @param authRequest Request\n * @param scopes Array of scopes for the request\n * @returns Result from the interactive request\n */\n acquireTokenInteractively(authRequest, scopes) {\n if (this.msalInterceptorConfig.interactionType === InteractionType.Popup) {\n this.authService.getLogger().verbose(\"Interceptor - error acquiring token silently, acquiring by popup\");\n return this.authService.acquireTokenPopup({\n ...authRequest,\n scopes\n });\n }\n this.authService.getLogger().verbose(\"Interceptor - error acquiring token silently, acquiring by redirect\");\n const redirectStartPage = window.location.href;\n this.authService.acquireTokenRedirect({\n ...authRequest,\n scopes,\n redirectStartPage\n });\n return EMPTY;\n }\n /**\n * Looks up the scopes for the given endpoint from the protectedResourceMap\n * @param endpoint Url of the request\n * @param httpMethod Http method of the request\n * @returns Array of scopes, or null if not found\n *\n */\n getScopesForEndpoint(endpoint, httpMethod) {\n this.authService.getLogger().verbose(\"Interceptor - getting scopes for endpoint\");\n // Ensures endpoints and protected resources compared are normalized\n const normalizedEndpoint = this.location.normalize(endpoint);\n const protectedResourcesArray = Array.from(this.msalInterceptorConfig.protectedResourceMap.keys());\n const matchingProtectedResources = this.matchResourcesToEndpoint(protectedResourcesArray, normalizedEndpoint);\n // Check absolute urls of resources first before checking relative to prevent incorrect matching where multiple resources have similar relative urls\n if (matchingProtectedResources.absoluteResources.length > 0) {\n return this.matchScopesToEndpoint(this.msalInterceptorConfig.protectedResourceMap, matchingProtectedResources.absoluteResources, httpMethod);\n } else if (matchingProtectedResources.relativeResources.length > 0) {\n return this.matchScopesToEndpoint(this.msalInterceptorConfig.protectedResourceMap, matchingProtectedResources.relativeResources, httpMethod);\n }\n return null;\n }\n /**\n * Finds resource endpoints that match request endpoint\n * @param protectedResourcesEndpoints\n * @param endpoint\n * @returns\n */\n matchResourcesToEndpoint(protectedResourcesEndpoints, endpoint) {\n const matchingResources = {\n absoluteResources: [],\n relativeResources: []\n };\n protectedResourcesEndpoints.forEach(key => {\n // Normalizes and adds resource to matchingResources.absoluteResources if key matches endpoint. StringUtils.matchPattern accounts for wildcards\n const normalizedKey = this.location.normalize(key);\n if (StringUtils.matchPattern(normalizedKey, endpoint)) {\n matchingResources.absoluteResources.push(key);\n }\n // Get url components for relative urls\n const absoluteKey = this.getAbsoluteUrl(key);\n const keyComponents = new UrlString(absoluteKey).getUrlComponents();\n const absoluteEndpoint = this.getAbsoluteUrl(endpoint);\n const endpointComponents = new UrlString(absoluteEndpoint).getUrlComponents();\n // Normalized key should include query strings if applicable\n const relativeNormalizedKey = keyComponents.QueryString ? `${keyComponents.AbsolutePath}?${keyComponents.QueryString}` : this.location.normalize(keyComponents.AbsolutePath);\n // Add resource to matchingResources.relativeResources if same origin, relativeKey matches endpoint, and is not empty\n if (keyComponents.HostNameAndPort === endpointComponents.HostNameAndPort && StringUtils.matchPattern(relativeNormalizedKey, absoluteEndpoint) && relativeNormalizedKey !== \"\" && relativeNormalizedKey !== \"/*\") {\n matchingResources.relativeResources.push(key);\n }\n });\n return matchingResources;\n }\n /**\n * Transforms relative urls to absolute urls\n * @param url\n * @returns\n */\n getAbsoluteUrl(url) {\n const link = this._document.createElement(\"a\");\n link.href = url;\n return link.href;\n }\n /**\n * Finds scopes from first matching endpoint with HTTP method that matches request\n * @param protectedResourceMap Protected resource map\n * @param endpointArray Array of resources that match request endpoint\n * @param httpMethod Http method of the request\n * @returns\n */\n matchScopesToEndpoint(protectedResourceMap, endpointArray, httpMethod) {\n const allMatchedScopes = [];\n // Check each matched endpoint for matching HttpMethod and scopes\n endpointArray.forEach(matchedEndpoint => {\n const scopesForEndpoint = [];\n const methodAndScopesArray = protectedResourceMap.get(matchedEndpoint);\n // Return if resource is unprotected\n if (methodAndScopesArray === null) {\n allMatchedScopes.push(null);\n return;\n }\n methodAndScopesArray.forEach(entry => {\n // Entry is either array of scopes or ProtectedResourceScopes object\n if (typeof entry === \"string\") {\n scopesForEndpoint.push(entry);\n } else {\n // Ensure methods being compared are normalized\n const normalizedRequestMethod = httpMethod.toLowerCase();\n const normalizedResourceMethod = entry.httpMethod.toLowerCase();\n // Method in protectedResourceMap matches request http method\n if (normalizedResourceMethod === normalizedRequestMethod) {\n // Validate if scopes comes null to unprotect the resource in a certain http method\n if (entry.scopes === null) {\n allMatchedScopes.push(null);\n } else {\n entry.scopes.forEach(scope => {\n scopesForEndpoint.push(scope);\n });\n }\n }\n }\n });\n // Only add to all scopes if scopes for endpoint and method is found\n if (scopesForEndpoint.length > 0) {\n allMatchedScopes.push(scopesForEndpoint);\n }\n });\n if (allMatchedScopes.length > 0) {\n if (allMatchedScopes.length > 1) {\n this.authService.getLogger().warning(\"Interceptor - More than 1 matching scopes for endpoint found.\");\n }\n // Returns scopes for first matching endpoint\n return allMatchedScopes[0];\n }\n return null;\n }\n}\nMsalInterceptor.ɵfac = function MsalInterceptor_Factory(t) {\n return new (t || MsalInterceptor)(i0.ɵɵinject(MSAL_INTERCEPTOR_CONFIG), i0.ɵɵinject(MsalService), i0.ɵɵinject(i3.Location), i0.ɵɵinject(MsalBroadcastService), i0.ɵɵinject(DOCUMENT));\n};\nMsalInterceptor.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: MsalInterceptor,\n factory: MsalInterceptor.ɵfac\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MsalInterceptor, [{\n type: Injectable\n }], function () {\n return [{\n type: undefined,\n decorators: [{\n type: Inject,\n args: [MSAL_INTERCEPTOR_CONFIG]\n }]\n }, {\n type: MsalService\n }, {\n type: i3.Location\n }, {\n type: MsalBroadcastService\n }, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }]\n }];\n }, null);\n})();\n\n/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n/**\n * This is a dedicated redirect component to be added to Angular apps to\n * handle redirects when using @azure/msal-angular.\n * Import this component to use redirects in your app.\n */\nclass MsalRedirectComponent {\n constructor(authService) {\n this.authService = authService;\n }\n ngOnInit() {\n this.authService.getLogger().verbose(\"MsalRedirectComponent activated\");\n this.authService.handleRedirectObservable().subscribe();\n }\n}\nMsalRedirectComponent.ɵfac = function MsalRedirectComponent_Factory(t) {\n return new (t || MsalRedirectComponent)(i0.ɵɵdirectiveInject(MsalService));\n};\nMsalRedirectComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MsalRedirectComponent,\n selectors: [[\"app-redirect\"]],\n decls: 0,\n vars: 0,\n template: function MsalRedirectComponent_Template(rf, ctx) {},\n encapsulation: 2\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MsalRedirectComponent, [{\n type: Component,\n args: [{\n selector: \"app-redirect\",\n template: \"\"\n }]\n }], function () {\n return [{\n type: MsalService\n }];\n }, null);\n})();\n\n/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\nclass MsalModule {\n static forRoot(msalInstance, guardConfig, interceptorConfig) {\n return {\n ngModule: MsalModule,\n providers: [{\n provide: MSAL_INSTANCE,\n useValue: msalInstance\n }, {\n provide: MSAL_GUARD_CONFIG,\n useValue: guardConfig\n }, {\n provide: MSAL_INTERCEPTOR_CONFIG,\n useValue: interceptorConfig\n }, MsalService]\n };\n }\n}\nMsalModule.ɵfac = function MsalModule_Factory(t) {\n return new (t || MsalModule)();\n};\nMsalModule.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: MsalModule\n});\nMsalModule.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n providers: [MsalGuard, MsalBroadcastService],\n imports: [CommonModule]\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MsalModule, [{\n type: NgModule,\n args: [{\n declarations: [MsalRedirectComponent],\n imports: [CommonModule],\n providers: [MsalGuard, MsalBroadcastService]\n }]\n }], null, null);\n})();\n\n/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n/**\n * Custom navigation used for Angular client-side navigation.\n * See performance doc for details:\n * https://github.com/AzureAD/microsoft-authentication-library-for-js/tree/dev/lib/msal-angular/docs/performance.md\n */\nclass MsalCustomNavigationClient extends NavigationClient {\n constructor(authService, router, location) {\n super();\n this.authService = authService;\n this.router = router;\n this.location = location;\n }\n async navigateInternal(url, options) {\n this.authService.getLogger().trace(\"MsalCustomNavigationClient called\");\n this.authService.getLogger().verbose(\"MsalCustomNavigationClient - navigating\");\n this.authService.getLogger().verbosePii(`MsalCustomNavigationClient - navigating to url: ${url}`);\n // Prevent hash clearing from causing an issue with Client-side navigation after redirect is handled\n if (options.noHistory) {\n return super.navigateInternal(url, options);\n } else {\n // Normalizing newUrl if no query string\n const urlComponents = new UrlString(url).getUrlComponents();\n const newUrl = urlComponents.QueryString ? `${urlComponents.AbsolutePath}?${urlComponents.QueryString}` : this.location.normalize(urlComponents.AbsolutePath);\n await this.router.navigateByUrl(newUrl, {\n replaceUrl: options.noHistory\n });\n }\n return Promise.resolve(options.noHistory);\n }\n}\nMsalCustomNavigationClient.ɵfac = function MsalCustomNavigationClient_Factory(t) {\n return new (t || MsalCustomNavigationClient)(i0.ɵɵinject(MsalService), i0.ɵɵinject(i4.Router), i0.ɵɵinject(i3.Location));\n};\nMsalCustomNavigationClient.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: MsalCustomNavigationClient,\n factory: MsalCustomNavigationClient.ɵfac\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MsalCustomNavigationClient, [{\n type: Injectable\n }], function () {\n return [{\n type: MsalService\n }, {\n type: i4.Router\n }, {\n type: i3.Location\n }];\n }, null);\n})();\n\n/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n/**\n * @packageDocumentation\n * @module @azure/msal-angular\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { MSAL_BROADCAST_CONFIG, MSAL_GUARD_CONFIG, MSAL_INSTANCE, MSAL_INTERCEPTOR_CONFIG, MsalBroadcastService, MsalCustomNavigationClient, MsalGuard, MsalInterceptor, MsalModule, MsalRedirectComponent, MsalService, version };\n","import * as i0 from '@angular/core';\nimport { Injectable, InjectionToken, RendererFactory2, Inject } from '@angular/core';\nimport { ReplaySubject, BehaviorSubject, of, EMPTY } from 'rxjs';\nimport { MSAL_GUARD_CONFIG, MsalService } from '@azure/msal-angular';\nimport { UserManager } from 'oidc-client';\nimport * as i2 from '@angular/router';\nimport { Router, ActivatedRoute } from '@angular/router';\nimport { debounceTime, take, switchMap, tap } from 'rxjs/operators';\nimport jwt_decode from 'jwt-decode';\nclass MsalAuthService {\n constructor(\n // NOTE: dependence injection via constructor is not working as expected due to timing issue\n // use injector as shown below\n injector) {\n this.injector = injector;\n this._isAuthenticated = new ReplaySubject(1);\n this.isAuthenticated = this._isAuthenticated.asObservable();\n this._user = new ReplaySubject(1);\n this.user = this._user.asObservable();\n this._idToken = new ReplaySubject(1);\n this.idToken = this._idToken.asObservable();\n this._exitUrl = new ReplaySubject();\n this.exitUrl = this._exitUrl.asObservable();\n }\n initialize(options) {\n const usePopup = options?.usePopup ?? false;\n this.guardConfig = this.injector.get(MSAL_GUARD_CONFIG);\n this.msalService = this.injector.get(MsalService);\n const setAuthenticationResult = result => {\n this._isAuthenticated.next(true);\n const token = result.idToken;\n this.roles = result.idTokenClaims.roles;\n this._idToken.next(token);\n this._exitUrl.next('https://www.worksafebc.com/en');\n };\n return this.msalService.instance.initialize().then(() => {\n const accounts = this.msalService.instance.getAllAccounts();\n const scopes = this.guardConfig.authRequest.scopes;\n if (accounts.length > 0) {\n return new Promise((resolve, reject) => {\n const account = accounts[0];\n this._user.next(account);\n this.msalService.instance.acquireTokenSilent({\n account,\n scopes\n }).then(result => {\n setAuthenticationResult(result);\n console.log('initialized - account is', account);\n resolve();\n }, err => reject(err));\n });\n } else if (usePopup) {\n return new Promise((resolve, reject) => {\n this.msalService.instance.loginPopup({\n scopes,\n prompt: 'select_account'\n }).then(result => {\n setAuthenticationResult(result);\n const account = this.msalService.instance.getAllAccounts()[0];\n this._user.next(account);\n console.log('initialized - account is', account);\n resolve();\n }, err => {\n reject(err);\n });\n });\n } else {\n return this.msalService.instance.handleRedirectPromise().then(() => this.msalService.instance.loginRedirect());\n }\n });\n }\n redirectToSignInPage() {\n this.msalService.loginRedirect();\n }\n signOut() {\n this.msalService.logout();\n }\n /** @nocollapse */\n static {\n this.ɵfac = function MsalAuthService_Factory(t) {\n return new (t || MsalAuthService)(i0.ɵɵinject(i0.Injector));\n };\n }\n /** @nocollapse */\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: MsalAuthService,\n factory: MsalAuthService.ɵfac,\n providedIn: 'root'\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MsalAuthService, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], () => [{\n type: i0.Injector\n }], null);\n})();\nconst SECURITY_SETTINGS = new InjectionToken('SECURITY_SETTINGS');\nvar SecurityRoutesEnum;\n(function (SecurityRoutesEnum) {\n SecurityRoutesEnum[\"SignInCallback\"] = \"signin-callback\";\n})(SecurityRoutesEnum || (SecurityRoutesEnum = {}));\nclass IdamAuthService {\n constructor(securitySettings, injector) {\n this.injector = injector;\n this.REDIRECT_PATH_KEY = 'redirectPath';\n this._user = new BehaviorSubject(null);\n this.user = this._user.asObservable();\n this._idToken = new BehaviorSubject(null);\n this.idToken = this._idToken.asObservable();\n this._isAuthenticated = new BehaviorSubject(false);\n this.isAuthenticated = this._isAuthenticated.asObservable();\n this._exitUrl = new ReplaySubject();\n this.exitUrl = this._exitUrl.asObservable();\n this.roles = [];\n const rendererFactory = this.injector.get(RendererFactory2);\n this._renderer = rendererFactory.createRenderer(null, null);\n this._securitySettings = securitySettings;\n const scopes = securitySettings.scopes && securitySettings.scopes.length ? securitySettings.scopes : ['wsbcprofile'];\n this._userManager = new UserManager({\n authority: securitySettings.stsAuthority,\n client_id: securitySettings.clientId,\n redirect_uri: `${securitySettings.clientRoot}/${SecurityRoutesEnum.SignInCallback}`,\n scope: `openid ${scopes.join(' ')}`,\n response_type: 'code'\n });\n this.user.subscribe(user => {\n const isAuthenticated = !!user && user.expired !== null && user.expired !== undefined && !user.expired;\n this._isAuthenticated.next(isAuthenticated);\n const idToken = !!user && !user.expired && user.id_token ? user.id_token : null;\n this._idToken.next(idToken);\n const exitUrl = user?.profile?.exiturl ?? \"\";\n this._exitUrl.next(exitUrl);\n });\n this._userManager.events.addUserLoaded(user => {\n this._user.next(user);\n });\n this._userManager.events.removeUserLoaded(user => {\n this._user.next(user);\n });\n this._userManager.startSilentRenew();\n }\n initialize() {\n return new Promise((resolve, reject) => {\n if (window.location.pathname === '/' + SecurityRoutesEnum.SignInCallback) {\n if (this.inIframe()) {\n this.completeSilentSignIn();\n } else {\n this.completeSignIn().then(() => resolve()).catch(() => reject());\n }\n } else {\n this.subscribeToQueryParams().then(() => resolve()).catch(() => reject());\n }\n });\n }\n redirectToSignInPage(redirectPath) {\n if (redirectPath) {\n // Before redirecting to the sign in page, store the path so the application can return to this path after signing in\n sessionStorage.setItem(this.REDIRECT_PATH_KEY, redirectPath);\n }\n this._userManager.signinRedirect();\n }\n signOut() {\n const token = this._idToken.getValue();\n if (token) {\n const decoded_token = jwt_decode(token);\n if (decoded_token.exiturl) {\n setTimeout(() => {\n window.open(decoded_token.exiturl, '_self');\n });\n }\n }\n }\n completeSignIn() {\n return new Promise((resolve, reject) => {\n this._userManager.signinRedirectCallback().then(user => {\n this._user.next(user);\n this.handleSigninRedirectCallback();\n resolve();\n }).catch(error => {\n if (error.message === 'Internal Server Error (500)') {\n window.open(this._securitySettings.errorUrl, '_self');\n } else {\n // When there is an error, redirect to the signin page will either fix it or request the login credentials again\n this.redirectToSignInPage();\n }\n reject();\n });\n });\n }\n handleSigninRedirectCallback() {\n // Once login is successful, we want to start listening for beforeunload to clear the user\n // Also listen for session storage changes - for when user manually clears the session storage\n this.startListeningToWindowEvents();\n this.navigateToRedirectPathFromSignInCallback();\n }\n navigateToRedirectPathFromSignInCallback() {\n const redirectPath = sessionStorage.getItem(this.REDIRECT_PATH_KEY) ? sessionStorage.getItem(this.REDIRECT_PATH_KEY) : '/';\n // After retrieving the redirectUrl, clear it so that it can't be used again.\n sessionStorage.removeItem(this.REDIRECT_PATH_KEY);\n // Replace the signin-callback so when the user clicks back it will not go back to signin-callback (FF)\n history.replaceState(null, '', '/');\n this.injector.get(Router).navigateByUrl(redirectPath);\n }\n completeSilentSignIn() {\n return this._userManager.signinSilentCallback();\n }\n subscribeToQueryParams() {\n return new Promise((resolve, reject) => {\n const activatedRoute = this.injector.get(ActivatedRoute);\n const sub = activatedRoute.queryParams.pipe(debounceTime(200)).subscribe(async params => {\n // If no code in url check for authenticated user\n // if no user found, redirect to sign in page\n // else if user found, complete promise\n if (!params['code']) {\n let user = this._user.getValue();\n if (!user || user && user.expired) {\n user = await this._userManager.getUser();\n this._user.next(user);\n }\n if (!user || user && user.expired) {\n sub.unsubscribe();\n if (!this._securitySettings.allowAnonymous) {\n this.redirectToSignInPage(window.location.pathname + window.location.search);\n reject();\n }\n resolve();\n } else {\n sub.unsubscribe();\n // Once login is successful, we want to start listening for pagehide to clear the user\n // Also listen for session storage changes - for when user manually clears the session storage\n this.startListeningToWindowEvents();\n resolve();\n }\n }\n });\n });\n }\n startListeningToWindowEvents() {\n this.listenToUnloadAndClearSession();\n this.listenToSessionStorage();\n }\n listenToUnloadAndClearSession() {\n // On Chrome console logs, breakpoints, etc. don't show up, but this event does fire\n this._renderer.listen(window, 'pagehide', () => {\n // Only clear session if not in iframe. Iframe is doing silent token renewals.\n if (!this.inIframe()) {\n this.clearSession();\n }\n });\n }\n listenToSessionStorage() {\n this.storageEventListener = this._renderer.listen(window, 'storage', () => {\n // Attempt to update the user when there is storage change - This is important for when a user manually clears storage through browser\n this._userManager.getUser().then(user => {\n this._user.next(user);\n }).catch(() => {\n this._user.next(null);\n });\n });\n }\n clearSession() {\n // Unlisten to storage event listener before clearing to avoid infinite loop\n if (this.storageEventListener) {\n this.storageEventListener();\n }\n // Session clearing\n this._user.next(null);\n this._userManager.removeUser();\n }\n inIframe() {\n try {\n return window.self !== window.top;\n } catch (e) {\n return true;\n }\n }\n /** @nocollapse */\n static {\n this.ɵfac = function IdamAuthService_Factory(t) {\n return new (t || IdamAuthService)(i0.ɵɵinject(SECURITY_SETTINGS), i0.ɵɵinject(i0.Injector));\n };\n }\n /** @nocollapse */\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: IdamAuthService,\n factory: IdamAuthService.ɵfac\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(IdamAuthService, [{\n type: Injectable\n }], () => [{\n type: undefined,\n decorators: [{\n type: Inject,\n args: [SECURITY_SETTINGS]\n }]\n }, {\n type: i0.Injector\n }], null);\n})();\n\n// the purpose of this class is to provide uniform handling for any application with/without\n// authentication.\nclass AnonymousAuthService {\n constructor() {\n this.initialize = () => Promise.resolve();\n this.isAuthenticated = of(true);\n this.user = of({\n userName: 'anonymous',\n isAnonymous: true\n });\n this.idToken = of('');\n this.exitUrl = of('https://www.worksafebc.com');\n this.redirectToSignInPage = () => {};\n this.signOut = () => {};\n this.roles = ['anonymous'];\n }\n}\nclass IdamAuthenticationGuard {\n constructor(authService) {\n this.authService = authService;\n }\n canLoad(route) {\n this.authService.isAuthenticated.pipe(take(1)).subscribe(signedIn => {\n if (!signedIn) {\n this.authService.redirectToSignInPage();\n }\n });\n return true;\n }\n canActivate(route, state) {\n this.authService.isAuthenticated.pipe(take(1)).subscribe(signedIn => {\n if (!signedIn) {\n this.authService.redirectToSignInPage();\n }\n });\n return true;\n }\n /** @nocollapse */\n static {\n this.ɵfac = function IdamAuthenticationGuard_Factory(t) {\n return new (t || IdamAuthenticationGuard)(i0.ɵɵinject(IdamAuthService));\n };\n }\n /** @nocollapse */\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: IdamAuthenticationGuard,\n factory: IdamAuthenticationGuard.ɵfac\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(IdamAuthenticationGuard, [{\n type: Injectable\n }], () => [{\n type: IdamAuthService\n }], null);\n})();\nclass AuthService {}\nvar SecurityTypeEnum;\n(function (SecurityTypeEnum) {\n SecurityTypeEnum[\"MSAL\"] = \"msal\";\n SecurityTypeEnum[\"ADAL\"] = \"adal\";\n SecurityTypeEnum[\"IDAM\"] = \"idam\";\n})(SecurityTypeEnum || (SecurityTypeEnum = {}));\nclass TokenInterceptor {\n constructor(_authService, _router) {\n this._authService = _authService;\n this._router = _router;\n }\n intercept(request, next) {\n return this._authService.idToken.pipe(take(1), switchMap(token => {\n if (token) {\n return this.bindTokenAndSubmitRequest(request, token, next);\n } else {\n this._authService.redirectToSignInPage();\n return EMPTY;\n }\n }));\n }\n handleError(error) {\n if (error && error.status === 401) {\n // Try refreshing user/token and making request again. If null, redirect to sign in page.\n this._authService.redirectToSignInPage();\n }\n }\n bindTokenAndSubmitRequest(request, token, next) {\n request = request.clone({\n setHeaders: {\n Authorization: `Bearer ${token}`\n }\n });\n return next.handle(request).pipe(tap(() => null, error => {\n this.handleError(error);\n }));\n }\n /** @nocollapse */\n static {\n this.ɵfac = function TokenInterceptor_Factory(t) {\n return new (t || TokenInterceptor)(i0.ɵɵinject(AuthService), i0.ɵɵinject(i2.Router));\n };\n }\n /** @nocollapse */\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: TokenInterceptor,\n factory: TokenInterceptor.ɵfac\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(TokenInterceptor, [{\n type: Injectable\n }], () => [{\n type: AuthService\n }, {\n type: i2.Router\n }], null);\n})();\n\n/*\n* Public API Surface of ux-lib-security\n*/\n// security\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { AnonymousAuthService, AuthService, IdamAuthService, IdamAuthenticationGuard, MsalAuthService, SECURITY_SETTINGS, SecurityRoutesEnum, SecurityTypeEnum, TokenInterceptor };\n","function e(e){this.message=e}e.prototype=new Error,e.prototype.name=\"InvalidCharacterError\";var r=\"undefined\"!=typeof window&&window.atob&&window.atob.bind(window)||function(r){var t=String(r).replace(/=+$/,\"\");if(t.length%4==1)throw new e(\"'atob' failed: The string to be decoded is not correctly encoded.\");for(var n,o,a=0,i=0,c=\"\";o=t.charAt(i++);~o&&(n=a%4?64*n+o:o,a++%4)?c+=String.fromCharCode(255&n>>(-2*a&6)):0)o=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\".indexOf(o);return c};function t(e){var t=e.replace(/-/g,\"+\").replace(/_/g,\"/\");switch(t.length%4){case 0:break;case 2:t+=\"==\";break;case 3:t+=\"=\";break;default:throw\"Illegal base64url string!\"}try{return function(e){return decodeURIComponent(r(e).replace(/(.)/g,(function(e,r){var t=r.charCodeAt(0).toString(16).toUpperCase();return t.length<2&&(t=\"0\"+t),\"%\"+t})))}(t)}catch(e){return r(t)}}function n(e){this.message=e}function o(e,r){if(\"string\"!=typeof e)throw new n(\"Invalid token specified\");var o=!0===(r=r||{}).header?0:1;try{return JSON.parse(t(e.split(\".\")[o]))}catch(e){throw new n(\"Invalid token specified: \"+e.message)}}n.prototype=new Error,n.prototype.name=\"InvalidTokenError\";export default o;export{n as InvalidTokenError};\n\n","import * as i0 from '@angular/core';\nimport { InjectionToken, NgZone, inject, Injectable, Inject, makeEnvironmentProviders, NgModule } from '@angular/core';\nimport * as i2 from '@ngrx/store';\nimport { ActionsSubject, UPDATE, INIT, INITIAL_STATE, StateObservable, ReducerManagerDispatcher } from '@ngrx/store';\nimport { EMPTY, Observable, of, queueScheduler, merge, ReplaySubject } from 'rxjs';\nimport { share, filter, map, timeout, debounceTime, catchError, take, concatMap, takeUntil, switchMap, observeOn, skip, withLatestFrom, scan } from 'rxjs/operators';\nimport { toSignal } from '@angular/core/rxjs-interop';\nconst PERFORM_ACTION = 'PERFORM_ACTION';\nconst REFRESH = 'REFRESH';\nconst RESET = 'RESET';\nconst ROLLBACK = 'ROLLBACK';\nconst COMMIT = 'COMMIT';\nconst SWEEP = 'SWEEP';\nconst TOGGLE_ACTION = 'TOGGLE_ACTION';\nconst SET_ACTIONS_ACTIVE = 'SET_ACTIONS_ACTIVE';\nconst JUMP_TO_STATE = 'JUMP_TO_STATE';\nconst JUMP_TO_ACTION = 'JUMP_TO_ACTION';\nconst IMPORT_STATE = 'IMPORT_STATE';\nconst LOCK_CHANGES = 'LOCK_CHANGES';\nconst PAUSE_RECORDING = 'PAUSE_RECORDING';\nclass PerformAction {\n constructor(action, timestamp) {\n this.action = action;\n this.timestamp = timestamp;\n this.type = PERFORM_ACTION;\n if (typeof action.type === 'undefined') {\n throw new Error('Actions may not have an undefined \"type\" property. ' + 'Have you misspelled a constant?');\n }\n }\n}\nclass Refresh {\n constructor() {\n this.type = REFRESH;\n }\n}\nclass Reset {\n constructor(timestamp) {\n this.timestamp = timestamp;\n this.type = RESET;\n }\n}\nclass Rollback {\n constructor(timestamp) {\n this.timestamp = timestamp;\n this.type = ROLLBACK;\n }\n}\nclass Commit {\n constructor(timestamp) {\n this.timestamp = timestamp;\n this.type = COMMIT;\n }\n}\nclass Sweep {\n constructor() {\n this.type = SWEEP;\n }\n}\nclass ToggleAction {\n constructor(id) {\n this.id = id;\n this.type = TOGGLE_ACTION;\n }\n}\nclass SetActionsActive {\n constructor(start, end, active = true) {\n this.start = start;\n this.end = end;\n this.active = active;\n this.type = SET_ACTIONS_ACTIVE;\n }\n}\nclass JumpToState {\n constructor(index) {\n this.index = index;\n this.type = JUMP_TO_STATE;\n }\n}\nclass JumpToAction {\n constructor(actionId) {\n this.actionId = actionId;\n this.type = JUMP_TO_ACTION;\n }\n}\nclass ImportState {\n constructor(nextLiftedState) {\n this.nextLiftedState = nextLiftedState;\n this.type = IMPORT_STATE;\n }\n}\nclass LockChanges {\n constructor(status) {\n this.status = status;\n this.type = LOCK_CHANGES;\n }\n}\nclass PauseRecording {\n constructor(status) {\n this.status = status;\n this.type = PAUSE_RECORDING;\n }\n}\n\n/**\n * Chrome extension documentation\n * @see https://github.com/reduxjs/redux-devtools/blob/main/extension/docs/API/Arguments.md\n * Firefox extension documentation\n * @see https://github.com/zalmoxisus/redux-devtools-extension/blob/master/docs/API/Arguments.md\n */\nclass StoreDevtoolsConfig {\n constructor() {\n /**\n * Maximum allowed actions to be stored in the history tree (default: `false`)\n */\n this.maxAge = false;\n }\n}\nconst STORE_DEVTOOLS_CONFIG = new InjectionToken('@ngrx/store-devtools Options');\n/**\n * Used to provide a `StoreDevtoolsConfig` for the store-devtools.\n */\nconst INITIAL_OPTIONS = new InjectionToken('@ngrx/store-devtools Initial Config');\nfunction noMonitor() {\n return null;\n}\nconst DEFAULT_NAME = 'NgRx Store DevTools';\nfunction createConfig(optionsInput) {\n const DEFAULT_OPTIONS = {\n maxAge: false,\n monitor: noMonitor,\n actionSanitizer: undefined,\n stateSanitizer: undefined,\n name: DEFAULT_NAME,\n serialize: false,\n logOnly: false,\n autoPause: false,\n trace: false,\n traceLimit: 75,\n // Add all features explicitly. This prevent buggy behavior for\n // options like \"lock\" which might otherwise not show up.\n features: {\n pause: true,\n lock: true,\n persist: true,\n export: true,\n import: 'custom',\n jump: true,\n skip: true,\n reorder: true,\n dispatch: true,\n test: true // Generate tests for the selected actions\n },\n connectInZone: false\n };\n const options = typeof optionsInput === 'function' ? optionsInput() : optionsInput;\n const logOnly = options.logOnly ? {\n pause: true,\n export: true,\n test: true\n } : false;\n const features = options.features || logOnly || DEFAULT_OPTIONS.features;\n if (features.import === true) {\n features.import = 'custom';\n }\n const config = Object.assign({}, DEFAULT_OPTIONS, {\n features\n }, options);\n if (config.maxAge && config.maxAge < 2) {\n throw new Error(`Devtools 'maxAge' cannot be less than 2, got ${config.maxAge}`);\n }\n return config;\n}\nfunction difference(first, second) {\n return first.filter(item => second.indexOf(item) < 0);\n}\n/**\n * Provides an app's view into the state of the lifted store.\n */\nfunction unliftState(liftedState) {\n const {\n computedStates,\n currentStateIndex\n } = liftedState;\n // At start up NgRx dispatches init actions,\n // When these init actions are being filtered out by the predicate or safe/block list options\n // we don't have a complete computed states yet.\n // At this point it could happen that we're out of bounds, when this happens we fall back to the last known state\n if (currentStateIndex >= computedStates.length) {\n const {\n state\n } = computedStates[computedStates.length - 1];\n return state;\n }\n const {\n state\n } = computedStates[currentStateIndex];\n return state;\n}\nfunction unliftAction(liftedState) {\n return liftedState.actionsById[liftedState.nextActionId - 1];\n}\n/**\n * Lifts an app's action into an action on the lifted store.\n */\nfunction liftAction(action) {\n return new PerformAction(action, +Date.now());\n}\n/**\n * Sanitizes given actions with given function.\n */\nfunction sanitizeActions(actionSanitizer, actions) {\n return Object.keys(actions).reduce((sanitizedActions, actionIdx) => {\n const idx = Number(actionIdx);\n sanitizedActions[idx] = sanitizeAction(actionSanitizer, actions[idx], idx);\n return sanitizedActions;\n }, {});\n}\n/**\n * Sanitizes given action with given function.\n */\nfunction sanitizeAction(actionSanitizer, action, actionIdx) {\n return {\n ...action,\n action: actionSanitizer(action.action, actionIdx)\n };\n}\n/**\n * Sanitizes given states with given function.\n */\nfunction sanitizeStates(stateSanitizer, states) {\n return states.map((computedState, idx) => ({\n state: sanitizeState(stateSanitizer, computedState.state, idx),\n error: computedState.error\n }));\n}\n/**\n * Sanitizes given state with given function.\n */\nfunction sanitizeState(stateSanitizer, state, stateIdx) {\n return stateSanitizer(state, stateIdx);\n}\n/**\n * Read the config and tell if actions should be filtered\n */\nfunction shouldFilterActions(config) {\n return config.predicate || config.actionsSafelist || config.actionsBlocklist;\n}\n/**\n * Return a full filtered lifted state\n */\nfunction filterLiftedState(liftedState, predicate, safelist, blocklist) {\n const filteredStagedActionIds = [];\n const filteredActionsById = {};\n const filteredComputedStates = [];\n liftedState.stagedActionIds.forEach((id, idx) => {\n const liftedAction = liftedState.actionsById[id];\n if (!liftedAction) return;\n if (idx && isActionFiltered(liftedState.computedStates[idx], liftedAction, predicate, safelist, blocklist)) {\n return;\n }\n filteredActionsById[id] = liftedAction;\n filteredStagedActionIds.push(id);\n filteredComputedStates.push(liftedState.computedStates[idx]);\n });\n return {\n ...liftedState,\n stagedActionIds: filteredStagedActionIds,\n actionsById: filteredActionsById,\n computedStates: filteredComputedStates\n };\n}\n/**\n * Return true is the action should be ignored\n */\nfunction isActionFiltered(state, action, predicate, safelist, blockedlist) {\n const predicateMatch = predicate && !predicate(state, action.action);\n const safelistMatch = safelist && !action.action.type.match(safelist.map(s => escapeRegExp(s)).join('|'));\n const blocklistMatch = blockedlist && action.action.type.match(blockedlist.map(s => escapeRegExp(s)).join('|'));\n return predicateMatch || safelistMatch || blocklistMatch;\n}\n/**\n * Return string with escaped RegExp special characters\n * https://stackoverflow.com/a/6969486/1337347\n */\nfunction escapeRegExp(s) {\n return s.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n}\nfunction injectZoneConfig(connectInZone) {\n const ngZone = connectInZone ? inject(NgZone) : null;\n return {\n ngZone,\n connectInZone\n };\n}\nclass DevtoolsDispatcher extends ActionsSubject {\n /** @nocollapse */static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵDevtoolsDispatcher_BaseFactory;\n return function DevtoolsDispatcher_Factory(t) {\n return (ɵDevtoolsDispatcher_BaseFactory || (ɵDevtoolsDispatcher_BaseFactory = i0.ɵɵgetInheritedFactory(DevtoolsDispatcher)))(t || DevtoolsDispatcher);\n };\n })();\n }\n /** @nocollapse */\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: DevtoolsDispatcher,\n factory: DevtoolsDispatcher.ɵfac\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DevtoolsDispatcher, [{\n type: Injectable\n }], null, null);\n})();\nconst ExtensionActionTypes = {\n START: 'START',\n DISPATCH: 'DISPATCH',\n STOP: 'STOP',\n ACTION: 'ACTION'\n};\nconst REDUX_DEVTOOLS_EXTENSION = new InjectionToken('@ngrx/store-devtools Redux Devtools Extension');\nclass DevtoolsExtension {\n constructor(devtoolsExtension, config, dispatcher) {\n this.config = config;\n this.dispatcher = dispatcher;\n this.zoneConfig = injectZoneConfig(this.config.connectInZone);\n this.devtoolsExtension = devtoolsExtension;\n this.createActionStreams();\n }\n notify(action, state) {\n if (!this.devtoolsExtension) {\n return;\n }\n // Check to see if the action requires a full update of the liftedState.\n // If it is a simple action generated by the user's app and the recording\n // is not locked/paused, only send the action and the current state (fast).\n //\n // A full liftedState update (slow: serializes the entire liftedState) is\n // only required when:\n // a) redux-devtools-extension fires the @@Init action (ignored by\n // @ngrx/store-devtools)\n // b) an action is generated by an @ngrx module (e.g. @ngrx/effects/init\n // or @ngrx/store/update-reducers)\n // c) the state has been recomputed due to time-traveling\n // d) any action that is not a PerformAction to err on the side of\n // caution.\n if (action.type === PERFORM_ACTION) {\n if (state.isLocked || state.isPaused) {\n return;\n }\n const currentState = unliftState(state);\n if (shouldFilterActions(this.config) && isActionFiltered(currentState, action, this.config.predicate, this.config.actionsSafelist, this.config.actionsBlocklist)) {\n return;\n }\n const sanitizedState = this.config.stateSanitizer ? sanitizeState(this.config.stateSanitizer, currentState, state.currentStateIndex) : currentState;\n const sanitizedAction = this.config.actionSanitizer ? sanitizeAction(this.config.actionSanitizer, action, state.nextActionId) : action;\n this.sendToReduxDevtools(() => this.extensionConnection.send(sanitizedAction, sanitizedState));\n } else {\n // Requires full state update\n const sanitizedLiftedState = {\n ...state,\n stagedActionIds: state.stagedActionIds,\n actionsById: this.config.actionSanitizer ? sanitizeActions(this.config.actionSanitizer, state.actionsById) : state.actionsById,\n computedStates: this.config.stateSanitizer ? sanitizeStates(this.config.stateSanitizer, state.computedStates) : state.computedStates\n };\n this.sendToReduxDevtools(() => this.devtoolsExtension.send(null, sanitizedLiftedState, this.getExtensionConfig(this.config)));\n }\n }\n createChangesObservable() {\n if (!this.devtoolsExtension) {\n return EMPTY;\n }\n return new Observable(subscriber => {\n const connection = this.zoneConfig.connectInZone ?\n // To reduce change detection cycles, we need to run the `connect` method\n // outside of the Angular zone. The `connect` method adds a `message`\n // event listener to communicate with an extension using `window.postMessage`\n // and handle message events.\n this.zoneConfig.ngZone.runOutsideAngular(() => this.devtoolsExtension.connect(this.getExtensionConfig(this.config))) : this.devtoolsExtension.connect(this.getExtensionConfig(this.config));\n this.extensionConnection = connection;\n connection.init();\n connection.subscribe(change => subscriber.next(change));\n return connection.unsubscribe;\n });\n }\n createActionStreams() {\n // Listens to all changes\n const changes$ = this.createChangesObservable().pipe(share());\n // Listen for the start action\n const start$ = changes$.pipe(filter(change => change.type === ExtensionActionTypes.START));\n // Listen for the stop action\n const stop$ = changes$.pipe(filter(change => change.type === ExtensionActionTypes.STOP));\n // Listen for lifted actions\n const liftedActions$ = changes$.pipe(filter(change => change.type === ExtensionActionTypes.DISPATCH), map(change => this.unwrapAction(change.payload)), concatMap(action => {\n if (action.type === IMPORT_STATE) {\n // State imports may happen in two situations:\n // 1. Explicitly by user\n // 2. User activated the \"persist state accross reloads\" option\n // and now the state is imported during reload.\n // Because of option 2, we need to give possible\n // lazy loaded reducers time to instantiate.\n // As soon as there is no UPDATE action within 1 second,\n // it is assumed that all reducers are loaded.\n return this.dispatcher.pipe(filter(action => action.type === UPDATE), timeout(1000), debounceTime(1000), map(() => action), catchError(() => of(action)), take(1));\n } else {\n return of(action);\n }\n }));\n // Listen for unlifted actions\n const actions$ = changes$.pipe(filter(change => change.type === ExtensionActionTypes.ACTION), map(change => this.unwrapAction(change.payload)));\n const actionsUntilStop$ = actions$.pipe(takeUntil(stop$));\n const liftedUntilStop$ = liftedActions$.pipe(takeUntil(stop$));\n this.start$ = start$.pipe(takeUntil(stop$));\n // Only take the action sources between the start/stop events\n this.actions$ = this.start$.pipe(switchMap(() => actionsUntilStop$));\n this.liftedActions$ = this.start$.pipe(switchMap(() => liftedUntilStop$));\n }\n unwrapAction(action) {\n // indirect eval according to https://esbuild.github.io/content-types/#direct-eval\n return typeof action === 'string' ? (0, eval)(`(${action})`) : action;\n }\n getExtensionConfig(config) {\n const extensionOptions = {\n name: config.name,\n features: config.features,\n serialize: config.serialize,\n autoPause: config.autoPause ?? false,\n trace: config.trace ?? false,\n traceLimit: config.traceLimit ?? 75\n // The action/state sanitizers are not added to the config\n // because sanitation is done in this class already.\n // It is done before sending it to the devtools extension for consistency:\n // - If we call extensionConnection.send(...),\n // the extension would call the sanitizers.\n // - If we call devtoolsExtension.send(...) (aka full state update),\n // the extension would NOT call the sanitizers, so we have to do it ourselves.\n };\n if (config.maxAge !== false /* support === 0 */) {\n extensionOptions.maxAge = config.maxAge;\n }\n return extensionOptions;\n }\n sendToReduxDevtools(send) {\n try {\n send();\n } catch (err) {\n console.warn('@ngrx/store-devtools: something went wrong inside the redux devtools', err);\n }\n }\n /** @nocollapse */\n static {\n this.ɵfac = function DevtoolsExtension_Factory(t) {\n return new (t || DevtoolsExtension)(i0.ɵɵinject(REDUX_DEVTOOLS_EXTENSION), i0.ɵɵinject(STORE_DEVTOOLS_CONFIG), i0.ɵɵinject(DevtoolsDispatcher));\n };\n }\n /** @nocollapse */\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: DevtoolsExtension,\n factory: DevtoolsExtension.ɵfac\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DevtoolsExtension, [{\n type: Injectable\n }], () => [{\n type: undefined,\n decorators: [{\n type: Inject,\n args: [REDUX_DEVTOOLS_EXTENSION]\n }]\n }, {\n type: StoreDevtoolsConfig,\n decorators: [{\n type: Inject,\n args: [STORE_DEVTOOLS_CONFIG]\n }]\n }, {\n type: DevtoolsDispatcher\n }], null);\n})();\nconst INIT_ACTION = {\n type: INIT\n};\nconst RECOMPUTE = '@ngrx/store-devtools/recompute';\nconst RECOMPUTE_ACTION = {\n type: RECOMPUTE\n};\n/**\n * Computes the next entry in the log by applying an action.\n */\nfunction computeNextEntry(reducer, action, state, error, errorHandler) {\n if (error) {\n return {\n state,\n error: 'Interrupted by an error up the chain'\n };\n }\n let nextState = state;\n let nextError;\n try {\n nextState = reducer(state, action);\n } catch (err) {\n nextError = err.toString();\n errorHandler.handleError(err);\n }\n return {\n state: nextState,\n error: nextError\n };\n}\n/**\n * Runs the reducer on invalidated actions to get a fresh computation log.\n */\nfunction recomputeStates(computedStates, minInvalidatedStateIndex, reducer, committedState, actionsById, stagedActionIds, skippedActionIds, errorHandler, isPaused) {\n // Optimization: exit early and return the same reference\n // if we know nothing could have changed.\n if (minInvalidatedStateIndex >= computedStates.length && computedStates.length === stagedActionIds.length) {\n return computedStates;\n }\n const nextComputedStates = computedStates.slice(0, minInvalidatedStateIndex);\n // If the recording is paused, recompute all states up until the pause state,\n // else recompute all states.\n const lastIncludedActionId = stagedActionIds.length - (isPaused ? 1 : 0);\n for (let i = minInvalidatedStateIndex; i < lastIncludedActionId; i++) {\n const actionId = stagedActionIds[i];\n const action = actionsById[actionId].action;\n const previousEntry = nextComputedStates[i - 1];\n const previousState = previousEntry ? previousEntry.state : committedState;\n const previousError = previousEntry ? previousEntry.error : undefined;\n const shouldSkip = skippedActionIds.indexOf(actionId) > -1;\n const entry = shouldSkip ? previousEntry : computeNextEntry(reducer, action, previousState, previousError, errorHandler);\n nextComputedStates.push(entry);\n }\n // If the recording is paused, the last state will not be recomputed,\n // because it's essentially not part of the state history.\n if (isPaused) {\n nextComputedStates.push(computedStates[computedStates.length - 1]);\n }\n return nextComputedStates;\n}\nfunction liftInitialState(initialCommittedState, monitorReducer) {\n return {\n monitorState: monitorReducer(undefined, {}),\n nextActionId: 1,\n actionsById: {\n 0: liftAction(INIT_ACTION)\n },\n stagedActionIds: [0],\n skippedActionIds: [],\n committedState: initialCommittedState,\n currentStateIndex: 0,\n computedStates: [],\n isLocked: false,\n isPaused: false\n };\n}\n/**\n * Creates a history state reducer from an app's reducer.\n */\nfunction liftReducerWith(initialCommittedState, initialLiftedState, errorHandler, monitorReducer, options = {}) {\n /**\n * Manages how the history actions modify the history state.\n */\n return reducer => (liftedState, liftedAction) => {\n let {\n monitorState,\n actionsById,\n nextActionId,\n stagedActionIds,\n skippedActionIds,\n committedState,\n currentStateIndex,\n computedStates,\n isLocked,\n isPaused\n } = liftedState || initialLiftedState;\n if (!liftedState) {\n // Prevent mutating initialLiftedState\n actionsById = Object.create(actionsById);\n }\n function commitExcessActions(n) {\n // Auto-commits n-number of excess actions.\n let excess = n;\n let idsToDelete = stagedActionIds.slice(1, excess + 1);\n for (let i = 0; i < idsToDelete.length; i++) {\n if (computedStates[i + 1].error) {\n // Stop if error is found. Commit actions up to error.\n excess = i;\n idsToDelete = stagedActionIds.slice(1, excess + 1);\n break;\n } else {\n delete actionsById[idsToDelete[i]];\n }\n }\n skippedActionIds = skippedActionIds.filter(id => idsToDelete.indexOf(id) === -1);\n stagedActionIds = [0, ...stagedActionIds.slice(excess + 1)];\n committedState = computedStates[excess].state;\n computedStates = computedStates.slice(excess);\n currentStateIndex = currentStateIndex > excess ? currentStateIndex - excess : 0;\n }\n function commitChanges() {\n // Consider the last committed state the new starting point.\n // Squash any staged actions into a single committed state.\n actionsById = {\n 0: liftAction(INIT_ACTION)\n };\n nextActionId = 1;\n stagedActionIds = [0];\n skippedActionIds = [];\n committedState = computedStates[currentStateIndex].state;\n currentStateIndex = 0;\n computedStates = [];\n }\n // By default, aggressively recompute every state whatever happens.\n // This has O(n) performance, so we'll override this to a sensible\n // value whenever we feel like we don't have to recompute the states.\n let minInvalidatedStateIndex = 0;\n switch (liftedAction.type) {\n case LOCK_CHANGES:\n {\n isLocked = liftedAction.status;\n minInvalidatedStateIndex = Infinity;\n break;\n }\n case PAUSE_RECORDING:\n {\n isPaused = liftedAction.status;\n if (isPaused) {\n // Add a pause action to signal the devtools-user the recording is paused.\n // The corresponding state will be overwritten on each update to always contain\n // the latest state (see Actions.PERFORM_ACTION).\n stagedActionIds = [...stagedActionIds, nextActionId];\n actionsById[nextActionId] = new PerformAction({\n type: '@ngrx/devtools/pause'\n }, +Date.now());\n nextActionId++;\n minInvalidatedStateIndex = stagedActionIds.length - 1;\n computedStates = computedStates.concat(computedStates[computedStates.length - 1]);\n if (currentStateIndex === stagedActionIds.length - 2) {\n currentStateIndex++;\n }\n minInvalidatedStateIndex = Infinity;\n } else {\n commitChanges();\n }\n break;\n }\n case RESET:\n {\n // Get back to the state the store was created with.\n actionsById = {\n 0: liftAction(INIT_ACTION)\n };\n nextActionId = 1;\n stagedActionIds = [0];\n skippedActionIds = [];\n committedState = initialCommittedState;\n currentStateIndex = 0;\n computedStates = [];\n break;\n }\n case COMMIT:\n {\n commitChanges();\n break;\n }\n case ROLLBACK:\n {\n // Forget about any staged actions.\n // Start again from the last committed state.\n actionsById = {\n 0: liftAction(INIT_ACTION)\n };\n nextActionId = 1;\n stagedActionIds = [0];\n skippedActionIds = [];\n currentStateIndex = 0;\n computedStates = [];\n break;\n }\n case TOGGLE_ACTION:\n {\n // Toggle whether an action with given ID is skipped.\n // Being skipped means it is a no-op during the computation.\n const {\n id: actionId\n } = liftedAction;\n const index = skippedActionIds.indexOf(actionId);\n if (index === -1) {\n skippedActionIds = [actionId, ...skippedActionIds];\n } else {\n skippedActionIds = skippedActionIds.filter(id => id !== actionId);\n }\n // Optimization: we know history before this action hasn't changed\n minInvalidatedStateIndex = stagedActionIds.indexOf(actionId);\n break;\n }\n case SET_ACTIONS_ACTIVE:\n {\n // Toggle whether an action with given ID is skipped.\n // Being skipped means it is a no-op during the computation.\n const {\n start,\n end,\n active\n } = liftedAction;\n const actionIds = [];\n for (let i = start; i < end; i++) actionIds.push(i);\n if (active) {\n skippedActionIds = difference(skippedActionIds, actionIds);\n } else {\n skippedActionIds = [...skippedActionIds, ...actionIds];\n }\n // Optimization: we know history before this action hasn't changed\n minInvalidatedStateIndex = stagedActionIds.indexOf(start);\n break;\n }\n case JUMP_TO_STATE:\n {\n // Without recomputing anything, move the pointer that tell us\n // which state is considered the current one. Useful for sliders.\n currentStateIndex = liftedAction.index;\n // Optimization: we know the history has not changed.\n minInvalidatedStateIndex = Infinity;\n break;\n }\n case JUMP_TO_ACTION:\n {\n // Jumps to a corresponding state to a specific action.\n // Useful when filtering actions.\n const index = stagedActionIds.indexOf(liftedAction.actionId);\n if (index !== -1) currentStateIndex = index;\n minInvalidatedStateIndex = Infinity;\n break;\n }\n case SWEEP:\n {\n // Forget any actions that are currently being skipped.\n stagedActionIds = difference(stagedActionIds, skippedActionIds);\n skippedActionIds = [];\n currentStateIndex = Math.min(currentStateIndex, stagedActionIds.length - 1);\n break;\n }\n case PERFORM_ACTION:\n {\n // Ignore action and return state as is if recording is locked\n if (isLocked) {\n return liftedState || initialLiftedState;\n }\n if (isPaused || liftedState && isActionFiltered(liftedState.computedStates[currentStateIndex], liftedAction, options.predicate, options.actionsSafelist, options.actionsBlocklist)) {\n // If recording is paused or if the action should be ignored, overwrite the last state\n // (corresponds to the pause action) and keep everything else as is.\n // This way, the app gets the new current state while the devtools\n // do not record another action.\n const lastState = computedStates[computedStates.length - 1];\n computedStates = [...computedStates.slice(0, -1), computeNextEntry(reducer, liftedAction.action, lastState.state, lastState.error, errorHandler)];\n minInvalidatedStateIndex = Infinity;\n break;\n }\n // Auto-commit as new actions come in.\n if (options.maxAge && stagedActionIds.length === options.maxAge) {\n commitExcessActions(1);\n }\n if (currentStateIndex === stagedActionIds.length - 1) {\n currentStateIndex++;\n }\n const actionId = nextActionId++;\n // Mutation! This is the hottest path, and we optimize on purpose.\n // It is safe because we set a new key in a cache dictionary.\n actionsById[actionId] = liftedAction;\n stagedActionIds = [...stagedActionIds, actionId];\n // Optimization: we know that only the new action needs computing.\n minInvalidatedStateIndex = stagedActionIds.length - 1;\n break;\n }\n case IMPORT_STATE:\n {\n // Completely replace everything.\n ({\n monitorState,\n actionsById,\n nextActionId,\n stagedActionIds,\n skippedActionIds,\n committedState,\n currentStateIndex,\n computedStates,\n isLocked,\n isPaused\n } = liftedAction.nextLiftedState);\n break;\n }\n case INIT:\n {\n // Always recompute states on hot reload and init.\n minInvalidatedStateIndex = 0;\n if (options.maxAge && stagedActionIds.length > options.maxAge) {\n // States must be recomputed before committing excess.\n computedStates = recomputeStates(computedStates, minInvalidatedStateIndex, reducer, committedState, actionsById, stagedActionIds, skippedActionIds, errorHandler, isPaused);\n commitExcessActions(stagedActionIds.length - options.maxAge);\n // Avoid double computation.\n minInvalidatedStateIndex = Infinity;\n }\n break;\n }\n case UPDATE:\n {\n const stateHasErrors = computedStates.filter(state => state.error).length > 0;\n if (stateHasErrors) {\n // Recompute all states\n minInvalidatedStateIndex = 0;\n if (options.maxAge && stagedActionIds.length > options.maxAge) {\n // States must be recomputed before committing excess.\n computedStates = recomputeStates(computedStates, minInvalidatedStateIndex, reducer, committedState, actionsById, stagedActionIds, skippedActionIds, errorHandler, isPaused);\n commitExcessActions(stagedActionIds.length - options.maxAge);\n // Avoid double computation.\n minInvalidatedStateIndex = Infinity;\n }\n } else {\n // If not paused/locked, add a new action to signal devtools-user\n // that there was a reducer update.\n if (!isPaused && !isLocked) {\n if (currentStateIndex === stagedActionIds.length - 1) {\n currentStateIndex++;\n }\n // Add a new action to only recompute state\n const actionId = nextActionId++;\n actionsById[actionId] = new PerformAction(liftedAction, +Date.now());\n stagedActionIds = [...stagedActionIds, actionId];\n minInvalidatedStateIndex = stagedActionIds.length - 1;\n computedStates = recomputeStates(computedStates, minInvalidatedStateIndex, reducer, committedState, actionsById, stagedActionIds, skippedActionIds, errorHandler, isPaused);\n }\n // Recompute state history with latest reducer and update action\n computedStates = computedStates.map(cmp => ({\n ...cmp,\n state: reducer(cmp.state, RECOMPUTE_ACTION)\n }));\n currentStateIndex = stagedActionIds.length - 1;\n if (options.maxAge && stagedActionIds.length > options.maxAge) {\n commitExcessActions(stagedActionIds.length - options.maxAge);\n }\n // Avoid double computation.\n minInvalidatedStateIndex = Infinity;\n }\n break;\n }\n default:\n {\n // If the action is not recognized, it's a monitor action.\n // Optimization: a monitor action can't change history.\n minInvalidatedStateIndex = Infinity;\n break;\n }\n }\n computedStates = recomputeStates(computedStates, minInvalidatedStateIndex, reducer, committedState, actionsById, stagedActionIds, skippedActionIds, errorHandler, isPaused);\n monitorState = monitorReducer(monitorState, liftedAction);\n return {\n monitorState,\n actionsById,\n nextActionId,\n stagedActionIds,\n skippedActionIds,\n committedState,\n currentStateIndex,\n computedStates,\n isLocked,\n isPaused\n };\n };\n}\nclass StoreDevtools {\n constructor(dispatcher, actions$, reducers$, extension, scannedActions, errorHandler, initialState, config) {\n const liftedInitialState = liftInitialState(initialState, config.monitor);\n const liftReducer = liftReducerWith(initialState, liftedInitialState, errorHandler, config.monitor, config);\n const liftedAction$ = merge(merge(actions$.asObservable().pipe(skip(1)), extension.actions$).pipe(map(liftAction)), dispatcher, extension.liftedActions$).pipe(observeOn(queueScheduler));\n const liftedReducer$ = reducers$.pipe(map(liftReducer));\n const zoneConfig = injectZoneConfig(config.connectInZone);\n const liftedStateSubject = new ReplaySubject(1);\n this.liftedStateSubscription = liftedAction$.pipe(withLatestFrom(liftedReducer$),\n // The extension would post messages back outside of the Angular zone\n // because we call `connect()` wrapped with `runOutsideAngular`. We run change\n // detection only once at the end after all the required asynchronous tasks have\n // been processed (for instance, `setInterval` scheduled by the `timeout` operator).\n // We have to re-enter the Angular zone before the `scan` since it runs the reducer\n // which must be run within the Angular zone.\n emitInZone(zoneConfig), scan(({\n state: liftedState\n }, [action, reducer]) => {\n let reducedLiftedState = reducer(liftedState, action);\n // On full state update\n // If we have actions filters, we must filter completely our lifted state to be sync with the extension\n if (action.type !== PERFORM_ACTION && shouldFilterActions(config)) {\n reducedLiftedState = filterLiftedState(reducedLiftedState, config.predicate, config.actionsSafelist, config.actionsBlocklist);\n }\n // Extension should be sent the sanitized lifted state\n extension.notify(action, reducedLiftedState);\n return {\n state: reducedLiftedState,\n action\n };\n }, {\n state: liftedInitialState,\n action: null\n })).subscribe(({\n state,\n action\n }) => {\n liftedStateSubject.next(state);\n if (action.type === PERFORM_ACTION) {\n const unliftedAction = action.action;\n scannedActions.next(unliftedAction);\n }\n });\n this.extensionStartSubscription = extension.start$.pipe(emitInZone(zoneConfig)).subscribe(() => {\n this.refresh();\n });\n const liftedState$ = liftedStateSubject.asObservable();\n const state$ = liftedState$.pipe(map(unliftState));\n Object.defineProperty(state$, 'state', {\n value: toSignal(state$, {\n manualCleanup: true,\n requireSync: true\n })\n });\n this.dispatcher = dispatcher;\n this.liftedState = liftedState$;\n this.state = state$;\n }\n ngOnDestroy() {\n // Even though the store devtools plugin is recommended to be\n // used only in development mode, it can still cause a memory leak\n // in microfrontend applications that are being created and destroyed\n // multiple times during development. This results in excessive memory\n // consumption, as it prevents entire apps from being garbage collected.\n this.liftedStateSubscription.unsubscribe();\n this.extensionStartSubscription.unsubscribe();\n }\n dispatch(action) {\n this.dispatcher.next(action);\n }\n next(action) {\n this.dispatcher.next(action);\n }\n error(error) {}\n complete() {}\n performAction(action) {\n this.dispatch(new PerformAction(action, +Date.now()));\n }\n refresh() {\n this.dispatch(new Refresh());\n }\n reset() {\n this.dispatch(new Reset(+Date.now()));\n }\n rollback() {\n this.dispatch(new Rollback(+Date.now()));\n }\n commit() {\n this.dispatch(new Commit(+Date.now()));\n }\n sweep() {\n this.dispatch(new Sweep());\n }\n toggleAction(id) {\n this.dispatch(new ToggleAction(id));\n }\n jumpToAction(actionId) {\n this.dispatch(new JumpToAction(actionId));\n }\n jumpToState(index) {\n this.dispatch(new JumpToState(index));\n }\n importState(nextLiftedState) {\n this.dispatch(new ImportState(nextLiftedState));\n }\n lockChanges(status) {\n this.dispatch(new LockChanges(status));\n }\n pauseRecording(status) {\n this.dispatch(new PauseRecording(status));\n }\n /** @nocollapse */\n static {\n this.ɵfac = function StoreDevtools_Factory(t) {\n return new (t || StoreDevtools)(i0.ɵɵinject(DevtoolsDispatcher), i0.ɵɵinject(i2.ActionsSubject), i0.ɵɵinject(i2.ReducerObservable), i0.ɵɵinject(DevtoolsExtension), i0.ɵɵinject(i2.ScannedActionsSubject), i0.ɵɵinject(i0.ErrorHandler), i0.ɵɵinject(INITIAL_STATE), i0.ɵɵinject(STORE_DEVTOOLS_CONFIG));\n };\n }\n /** @nocollapse */\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: StoreDevtools,\n factory: StoreDevtools.ɵfac\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(StoreDevtools, [{\n type: Injectable\n }], () => [{\n type: DevtoolsDispatcher\n }, {\n type: i2.ActionsSubject\n }, {\n type: i2.ReducerObservable\n }, {\n type: DevtoolsExtension\n }, {\n type: i2.ScannedActionsSubject\n }, {\n type: i0.ErrorHandler\n }, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [INITIAL_STATE]\n }]\n }, {\n type: StoreDevtoolsConfig,\n decorators: [{\n type: Inject,\n args: [STORE_DEVTOOLS_CONFIG]\n }]\n }], null);\n})();\n/**\n * If the devtools extension is connected out of the Angular zone,\n * this operator will emit all events within the zone.\n */\nfunction emitInZone({\n ngZone,\n connectInZone\n}) {\n return source => connectInZone ? new Observable(subscriber => source.subscribe({\n next: value => ngZone.run(() => subscriber.next(value)),\n error: error => ngZone.run(() => subscriber.error(error)),\n complete: () => ngZone.run(() => subscriber.complete())\n })) : source;\n}\nconst IS_EXTENSION_OR_MONITOR_PRESENT = new InjectionToken('@ngrx/store-devtools Is Devtools Extension or Monitor Present');\nfunction createIsExtensionOrMonitorPresent(extension, config) {\n return Boolean(extension) || config.monitor !== noMonitor;\n}\nfunction createReduxDevtoolsExtension() {\n const extensionKey = '__REDUX_DEVTOOLS_EXTENSION__';\n if (typeof window === 'object' && typeof window[extensionKey] !== 'undefined') {\n return window[extensionKey];\n } else {\n return null;\n }\n}\n/**\n * Provides developer tools and instrumentation for `Store`.\n *\n * @usageNotes\n *\n * ```ts\n * bootstrapApplication(AppComponent, {\n * providers: [\n * provideStoreDevtools({\n * maxAge: 25,\n * logOnly: !isDevMode(),\n * }),\n * ],\n * });\n * ```\n */\nfunction provideStoreDevtools(options = {}) {\n return makeEnvironmentProviders([DevtoolsExtension, DevtoolsDispatcher, StoreDevtools, {\n provide: INITIAL_OPTIONS,\n useValue: options\n }, {\n provide: IS_EXTENSION_OR_MONITOR_PRESENT,\n deps: [REDUX_DEVTOOLS_EXTENSION, STORE_DEVTOOLS_CONFIG],\n useFactory: createIsExtensionOrMonitorPresent\n }, {\n provide: REDUX_DEVTOOLS_EXTENSION,\n useFactory: createReduxDevtoolsExtension\n }, {\n provide: STORE_DEVTOOLS_CONFIG,\n deps: [INITIAL_OPTIONS],\n useFactory: createConfig\n }, {\n provide: StateObservable,\n deps: [StoreDevtools],\n useFactory: createStateObservable\n }, {\n provide: ReducerManagerDispatcher,\n useExisting: DevtoolsDispatcher\n }]);\n}\nfunction createStateObservable(devtools) {\n return devtools.state;\n}\nclass StoreDevtoolsModule {\n static instrument(options = {}) {\n return {\n ngModule: StoreDevtoolsModule,\n providers: [provideStoreDevtools(options)]\n };\n }\n /** @nocollapse */\n static {\n this.ɵfac = function StoreDevtoolsModule_Factory(t) {\n return new (t || StoreDevtoolsModule)();\n };\n }\n /** @nocollapse */\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: StoreDevtoolsModule\n });\n }\n /** @nocollapse */\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(StoreDevtoolsModule, [{\n type: NgModule,\n args: [{}]\n }], null, null);\n})();\n\n/**\n * DO NOT EDIT\n *\n * This file is automatically generated at build\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { INITIAL_OPTIONS, RECOMPUTE, REDUX_DEVTOOLS_EXTENSION, StoreDevtools, StoreDevtoolsConfig, StoreDevtoolsModule, provideStoreDevtools };\n","'use strict';\n/**\n * @license Angular v\n * (c) 2010-2022 Google LLC. https://angular.io/\n * License: MIT\n */\n/**\n * @fileoverview\n * @suppress {globalThis,undefinedVars}\n */\nZone.__load_patch('Error', (global, Zone, api) => {\n /*\n * This code patches Error so that:\n * - It ignores un-needed stack frames.\n * - It Shows the associated Zone for reach frame.\n */\n const zoneJsInternalStackFramesSymbol = api.symbol('zoneJsInternalStackFrames');\n const NativeError = global[api.symbol('Error')] = global['Error'];\n // Store the frames which should be removed from the stack frames\n const zoneJsInternalStackFrames = {};\n // We must find the frame where Error was created, otherwise we assume we don't understand stack\n let zoneAwareFrame1;\n let zoneAwareFrame2;\n let zoneAwareFrame1WithoutNew;\n let zoneAwareFrame2WithoutNew;\n let zoneAwareFrame3WithoutNew;\n global['Error'] = ZoneAwareError;\n const stackRewrite = 'stackRewrite';\n const zoneJsInternalStackFramesPolicy = global['__Zone_Error_BlacklistedStackFrames_policy'] ||\n global['__Zone_Error_ZoneJsInternalStackFrames_policy'] || 'default';\n function buildZoneFrameNames(zoneFrame) {\n let zoneFrameName = { zoneName: zoneFrame.zone.name };\n let result = zoneFrameName;\n while (zoneFrame.parent) {\n zoneFrame = zoneFrame.parent;\n const parentZoneFrameName = { zoneName: zoneFrame.zone.name };\n zoneFrameName.parent = parentZoneFrameName;\n zoneFrameName = parentZoneFrameName;\n }\n return result;\n }\n function buildZoneAwareStackFrames(originalStack, zoneFrame, isZoneFrame = true) {\n let frames = originalStack.split('\\n');\n let i = 0;\n // Find the first frame\n while (!(frames[i] === zoneAwareFrame1 || frames[i] === zoneAwareFrame2 ||\n frames[i] === zoneAwareFrame1WithoutNew || frames[i] === zoneAwareFrame2WithoutNew ||\n frames[i] === zoneAwareFrame3WithoutNew) &&\n i < frames.length) {\n i++;\n }\n for (; i < frames.length && zoneFrame; i++) {\n let frame = frames[i];\n if (frame.trim()) {\n switch (zoneJsInternalStackFrames[frame]) {\n case 0 /* FrameType.zoneJsInternal */:\n frames.splice(i, 1);\n i--;\n break;\n case 1 /* FrameType.transition */:\n if (zoneFrame.parent) {\n // This is the special frame where zone changed. Print and process it accordingly\n zoneFrame = zoneFrame.parent;\n }\n else {\n zoneFrame = null;\n }\n frames.splice(i, 1);\n i--;\n break;\n default:\n frames[i] += isZoneFrame ? ` [${zoneFrame.zone.name}]` :\n ` [${zoneFrame.zoneName}]`;\n }\n }\n }\n return frames.join('\\n');\n }\n /**\n * This is ZoneAwareError which processes the stack frame and cleans up extra frames as well as\n * adds zone information to it.\n */\n function ZoneAwareError() {\n // We always have to return native error otherwise the browser console will not work.\n let error = NativeError.apply(this, arguments);\n // Save original stack trace\n const originalStack = error['originalStack'] = error.stack;\n // Process the stack trace and rewrite the frames.\n if (ZoneAwareError[stackRewrite] && originalStack) {\n let zoneFrame = api.currentZoneFrame();\n if (zoneJsInternalStackFramesPolicy === 'lazy') {\n // don't handle stack trace now\n error[api.symbol('zoneFrameNames')] = buildZoneFrameNames(zoneFrame);\n }\n else if (zoneJsInternalStackFramesPolicy === 'default') {\n try {\n error.stack = error.zoneAwareStack = buildZoneAwareStackFrames(originalStack, zoneFrame);\n }\n catch (e) {\n // ignore as some browsers don't allow overriding of stack\n }\n }\n }\n if (this instanceof NativeError && this.constructor != NativeError) {\n // We got called with a `new` operator AND we are subclass of ZoneAwareError\n // in that case we have to copy all of our properties to `this`.\n Object.keys(error).concat('stack', 'message').forEach((key) => {\n const value = error[key];\n if (value !== undefined) {\n try {\n this[key] = value;\n }\n catch (e) {\n // ignore the assignment in case it is a setter and it throws.\n }\n }\n });\n return this;\n }\n return error;\n }\n // Copy the prototype so that instanceof operator works as expected\n ZoneAwareError.prototype = NativeError.prototype;\n ZoneAwareError[zoneJsInternalStackFramesSymbol] = zoneJsInternalStackFrames;\n ZoneAwareError[stackRewrite] = false;\n const zoneAwareStackSymbol = api.symbol('zoneAwareStack');\n // try to define zoneAwareStack property when zoneJsInternal frames policy is delay\n if (zoneJsInternalStackFramesPolicy === 'lazy') {\n Object.defineProperty(ZoneAwareError.prototype, 'zoneAwareStack', {\n configurable: true,\n enumerable: true,\n get: function () {\n if (!this[zoneAwareStackSymbol]) {\n this[zoneAwareStackSymbol] = buildZoneAwareStackFrames(this.originalStack, this[api.symbol('zoneFrameNames')], false);\n }\n return this[zoneAwareStackSymbol];\n },\n set: function (newStack) {\n this.originalStack = newStack;\n this[zoneAwareStackSymbol] = buildZoneAwareStackFrames(this.originalStack, this[api.symbol('zoneFrameNames')], false);\n }\n });\n }\n // those properties need special handling\n const specialPropertyNames = ['stackTraceLimit', 'captureStackTrace', 'prepareStackTrace'];\n // those properties of NativeError should be set to ZoneAwareError\n const nativeErrorProperties = Object.keys(NativeError);\n if (nativeErrorProperties) {\n nativeErrorProperties.forEach(prop => {\n if (specialPropertyNames.filter(sp => sp === prop).length === 0) {\n Object.defineProperty(ZoneAwareError, prop, {\n get: function () {\n return NativeError[prop];\n },\n set: function (value) {\n NativeError[prop] = value;\n }\n });\n }\n });\n }\n if (NativeError.hasOwnProperty('stackTraceLimit')) {\n // Extend default stack limit as we will be removing few frames.\n NativeError.stackTraceLimit = Math.max(NativeError.stackTraceLimit, 15);\n // make sure that ZoneAwareError has the same property which forwards to NativeError.\n Object.defineProperty(ZoneAwareError, 'stackTraceLimit', {\n get: function () {\n return NativeError.stackTraceLimit;\n },\n set: function (value) {\n return NativeError.stackTraceLimit = value;\n }\n });\n }\n if (NativeError.hasOwnProperty('captureStackTrace')) {\n Object.defineProperty(ZoneAwareError, 'captureStackTrace', {\n // add named function here because we need to remove this\n // stack frame when prepareStackTrace below\n value: function zoneCaptureStackTrace(targetObject, constructorOpt) {\n NativeError.captureStackTrace(targetObject, constructorOpt);\n }\n });\n }\n const ZONE_CAPTURESTACKTRACE = 'zoneCaptureStackTrace';\n Object.defineProperty(ZoneAwareError, 'prepareStackTrace', {\n get: function () {\n return NativeError.prepareStackTrace;\n },\n set: function (value) {\n if (!value || typeof value !== 'function') {\n return NativeError.prepareStackTrace = value;\n }\n return NativeError.prepareStackTrace = function (error, structuredStackTrace) {\n // remove additional stack information from ZoneAwareError.captureStackTrace\n if (structuredStackTrace) {\n for (let i = 0; i < structuredStackTrace.length; i++) {\n const st = structuredStackTrace[i];\n // remove the first function which name is zoneCaptureStackTrace\n if (st.getFunctionName() === ZONE_CAPTURESTACKTRACE) {\n structuredStackTrace.splice(i, 1);\n break;\n }\n }\n }\n return value.call(this, error, structuredStackTrace);\n };\n }\n });\n if (zoneJsInternalStackFramesPolicy === 'disable') {\n // don't need to run detectZone to populate zoneJs internal stack frames\n return;\n }\n // Now we need to populate the `zoneJsInternalStackFrames` as well as find the\n // run/runGuarded/runTask frames. This is done by creating a detect zone and then threading\n // the execution through all of the above methods so that we can look at the stack trace and\n // find the frames of interest.\n let detectZone = Zone.current.fork({\n name: 'detect',\n onHandleError: function (parentZD, current, target, error) {\n if (error.originalStack && Error === ZoneAwareError) {\n let frames = error.originalStack.split(/\\n/);\n let runFrame = false, runGuardedFrame = false, runTaskFrame = false;\n while (frames.length) {\n let frame = frames.shift();\n // On safari it is possible to have stack frame with no line number.\n // This check makes sure that we don't filter frames on name only (must have\n // line number or exact equals to `ZoneAwareError`)\n if (/:\\d+:\\d+/.test(frame) || frame === 'ZoneAwareError') {\n // Get rid of the path so that we don't accidentally find function name in path.\n // In chrome the separator is `(` and `@` in FF and safari\n // Chrome: at Zone.run (zone.js:100)\n // Chrome: at Zone.run (http://localhost:9876/base/build/lib/zone.js:100:24)\n // FireFox: Zone.prototype.run@http://localhost:9876/base/build/lib/zone.js:101:24\n // Safari: run@http://localhost:9876/base/build/lib/zone.js:101:24\n let fnName = frame.split('(')[0].split('@')[0];\n let frameType = 1 /* FrameType.transition */;\n if (fnName.indexOf('ZoneAwareError') !== -1) {\n if (fnName.indexOf('new ZoneAwareError') !== -1) {\n zoneAwareFrame1 = frame;\n zoneAwareFrame2 = frame.replace('new ZoneAwareError', 'new Error.ZoneAwareError');\n }\n else {\n zoneAwareFrame1WithoutNew = frame;\n zoneAwareFrame2WithoutNew = frame.replace('Error.', '');\n if (frame.indexOf('Error.ZoneAwareError') === -1) {\n zoneAwareFrame3WithoutNew =\n frame.replace('ZoneAwareError', 'Error.ZoneAwareError');\n }\n }\n zoneJsInternalStackFrames[zoneAwareFrame2] = 0 /* FrameType.zoneJsInternal */;\n }\n if (fnName.indexOf('runGuarded') !== -1) {\n runGuardedFrame = true;\n }\n else if (fnName.indexOf('runTask') !== -1) {\n runTaskFrame = true;\n }\n else if (fnName.indexOf('run') !== -1) {\n runFrame = true;\n }\n else {\n frameType = 0 /* FrameType.zoneJsInternal */;\n }\n zoneJsInternalStackFrames[frame] = frameType;\n // Once we find all of the frames we can stop looking.\n if (runFrame && runGuardedFrame && runTaskFrame) {\n ZoneAwareError[stackRewrite] = true;\n break;\n }\n }\n }\n }\n return false;\n }\n });\n // carefully constructor a stack frame which contains all of the frames of interest which\n // need to be detected and marked as an internal zoneJs frame.\n const childDetectZone = detectZone.fork({\n name: 'child',\n onScheduleTask: function (delegate, curr, target, task) {\n return delegate.scheduleTask(target, task);\n },\n onInvokeTask: function (delegate, curr, target, task, applyThis, applyArgs) {\n return delegate.invokeTask(target, task, applyThis, applyArgs);\n },\n onCancelTask: function (delegate, curr, target, task) {\n return delegate.cancelTask(target, task);\n },\n onInvoke: function (delegate, curr, target, callback, applyThis, applyArgs, source) {\n return delegate.invoke(target, callback, applyThis, applyArgs, source);\n }\n });\n // we need to detect all zone related frames, it will\n // exceed default stackTraceLimit, so we set it to\n // larger number here, and restore it after detect finish.\n // We cast through any so we don't need to depend on nodejs typings.\n const originalStackTraceLimit = Error.stackTraceLimit;\n Error.stackTraceLimit = 100;\n // we schedule event/micro/macro task, and invoke them\n // when onSchedule, so we can get all stack traces for\n // all kinds of tasks with one error thrown.\n childDetectZone.run(() => {\n childDetectZone.runGuarded(() => {\n const fakeTransitionTo = () => { };\n childDetectZone.scheduleEventTask(zoneJsInternalStackFramesSymbol, () => {\n childDetectZone.scheduleMacroTask(zoneJsInternalStackFramesSymbol, () => {\n childDetectZone.scheduleMicroTask(zoneJsInternalStackFramesSymbol, () => {\n throw new Error();\n }, undefined, (t) => {\n t._transitionTo = fakeTransitionTo;\n t.invoke();\n });\n childDetectZone.scheduleMicroTask(zoneJsInternalStackFramesSymbol, () => {\n throw Error();\n }, undefined, (t) => {\n t._transitionTo = fakeTransitionTo;\n t.invoke();\n });\n }, undefined, (t) => {\n t._transitionTo = fakeTransitionTo;\n t.invoke();\n }, () => { });\n }, undefined, (t) => {\n t._transitionTo = fakeTransitionTo;\n t.invoke();\n }, () => { });\n });\n });\n Error.stackTraceLimit = originalStackTraceLimit;\n});\n","// src/format.ts\nvar POSITIONALS_EXP = /(%?)(%([sdijo]))/g;\nfunction serializePositional(positional, flag) {\n switch (flag) {\n case \"s\":\n return positional;\n case \"d\":\n case \"i\":\n return Number(positional);\n case \"j\":\n return JSON.stringify(positional);\n case \"o\": {\n if (typeof positional === \"string\") {\n return positional;\n }\n const json = JSON.stringify(positional);\n if (json === \"{}\" || json === \"[]\" || /^\\[object .+?\\]$/.test(json)) {\n return positional;\n }\n return json;\n }\n }\n}\nfunction format(message, ...positionals) {\n if (positionals.length === 0) {\n return message;\n }\n let positionalIndex = 0;\n let formattedMessage = message.replace(\n POSITIONALS_EXP,\n (match, isEscaped, _, flag) => {\n const positional = positionals[positionalIndex];\n const value = serializePositional(positional, flag);\n if (!isEscaped) {\n positionalIndex++;\n return value;\n }\n return match;\n }\n );\n if (positionalIndex < positionals.length) {\n formattedMessage += ` ${positionals.slice(positionalIndex).join(\" \")}`;\n }\n formattedMessage = formattedMessage.replace(/%{2,2}/g, \"%\");\n return formattedMessage;\n}\n\n// src/invariant.ts\nvar STACK_FRAMES_TO_IGNORE = 2;\nfunction cleanErrorStack(error) {\n if (!error.stack) {\n return;\n }\n const nextStack = error.stack.split(\"\\n\");\n nextStack.splice(1, STACK_FRAMES_TO_IGNORE);\n error.stack = nextStack.join(\"\\n\");\n}\nvar InvariantError = class extends Error {\n constructor(message, ...positionals) {\n super(message);\n this.message = message;\n this.name = \"Invariant Violation\";\n this.message = format(message, ...positionals);\n cleanErrorStack(this);\n }\n};\nvar invariant = (predicate, message, ...positionals) => {\n if (!predicate) {\n throw new InvariantError(message, ...positionals);\n }\n};\ninvariant.as = (ErrorConstructor, predicate, message, ...positionals) => {\n if (!predicate) {\n const formatMessage = positionals.length === 0 ? message : format(message, positionals);\n let error;\n try {\n error = Reflect.construct(ErrorConstructor, [formatMessage]);\n } catch (err) {\n error = ErrorConstructor(formatMessage);\n }\n throw error;\n }\n};\nexport {\n InvariantError,\n format,\n invariant\n};\n","import { format } from \"outvariant\";\nconst LIBRARY_PREFIX = \"[MSW]\";\nfunction formatMessage(message, ...positionals) {\n const interpolatedMessage = format(message, ...positionals);\n return `${LIBRARY_PREFIX} ${interpolatedMessage}`;\n}\nfunction warn(message, ...positionals) {\n console.warn(formatMessage(message, ...positionals));\n}\nfunction error(message, ...positionals) {\n console.error(formatMessage(message, ...positionals));\n}\nconst devUtils = {\n formatMessage,\n warn,\n error\n};\nexport {\n devUtils\n};\n","const SOURCE_FRAME = /[\\/\\\\]msw[\\/\\\\]src[\\/\\\\](.+)/;\nconst BUILD_FRAME = /(node_modules)?[\\/\\\\]lib[\\/\\\\](core|browser|node|native|iife)[\\/\\\\]|^[^\\/\\\\]*$/;\nfunction getCallFrame(error) {\n const stack = error.stack;\n if (!stack) {\n return;\n }\n const frames = stack.split(\"\\n\").slice(1);\n const declarationFrame = frames.find((frame) => {\n return !(SOURCE_FRAME.test(frame) || BUILD_FRAME.test(frame));\n });\n if (!declarationFrame) {\n return;\n }\n const declarationPath = declarationFrame.replace(/\\s*at [^()]*\\(([^)]+)\\)/, \"$1\").replace(/^@/, \"\");\n return declarationPath;\n}\nexport {\n getCallFrame\n};\n","function isIterable(fn) {\n if (!fn) {\n return false;\n }\n return typeof fn[Symbol.iterator] == \"function\";\n}\nexport {\n isIterable\n};\n","import { invariant } from \"outvariant\";\nimport { getCallFrame } from '../utils/internal/getCallFrame.mjs';\nimport { isIterable } from '../utils/internal/isIterable.mjs';\nclass RequestHandler {\n static cache = /* @__PURE__ */ new WeakMap();\n info;\n /**\n * Indicates whether this request handler has been used\n * (its resolver has successfully executed).\n */\n isUsed;\n resolver;\n resolverGenerator;\n resolverGeneratorResult;\n options;\n constructor(args) {\n this.resolver = args.resolver;\n this.options = args.options;\n const callFrame = getCallFrame(new Error());\n this.info = {\n ...args.info,\n callFrame\n };\n this.isUsed = false;\n }\n /**\n * Parse the intercepted request to extract additional information from it.\n * Parsed result is then exposed to other methods of this request handler.\n */\n async parse(_args) {\n return {};\n }\n /**\n * Test if this handler matches the given request.\n *\n * This method is not used internally but is exposed\n * as a convenience method for consumers writing custom\n * handlers.\n */\n async test(args) {\n const parsedResult = await this.parse({\n request: args.request,\n resolutionContext: args.resolutionContext\n });\n return this.predicate({\n request: args.request,\n parsedResult,\n resolutionContext: args.resolutionContext\n });\n }\n extendResolverArgs(_args) {\n return {};\n }\n // Clone the request instance before it's passed to the handler phases\n // and the response resolver so we can always read it for logging.\n // We only clone it once per request to avoid unnecessary overhead.\n cloneRequestOrGetFromCache(request) {\n const existingClone = RequestHandler.cache.get(request);\n if (typeof existingClone !== \"undefined\") {\n return existingClone;\n }\n const clonedRequest = request.clone();\n RequestHandler.cache.set(request, clonedRequest);\n return clonedRequest;\n }\n /**\n * Execute this request handler and produce a mocked response\n * using the given resolver function.\n */\n async run(args) {\n if (this.isUsed && this.options?.once) {\n return null;\n }\n const requestClone = this.cloneRequestOrGetFromCache(args.request);\n const parsedResult = await this.parse({\n request: args.request,\n resolutionContext: args.resolutionContext\n });\n const shouldInterceptRequest = this.predicate({\n request: args.request,\n parsedResult,\n resolutionContext: args.resolutionContext\n });\n if (!shouldInterceptRequest) {\n return null;\n }\n if (this.isUsed && this.options?.once) {\n return null;\n }\n this.isUsed = true;\n const executeResolver = this.wrapResolver(this.resolver);\n const resolverExtras = this.extendResolverArgs({\n request: args.request,\n parsedResult\n });\n const mockedResponsePromise = executeResolver({\n ...resolverExtras,\n requestId: args.requestId,\n request: args.request\n }).catch((errorOrResponse) => {\n if (errorOrResponse instanceof Response) {\n return errorOrResponse;\n }\n throw errorOrResponse;\n });\n const mockedResponse = await mockedResponsePromise;\n const executionResult = this.createExecutionResult({\n // Pass the cloned request to the result so that logging\n // and other consumers could read its body once more.\n request: requestClone,\n requestId: args.requestId,\n response: mockedResponse,\n parsedResult\n });\n return executionResult;\n }\n wrapResolver(resolver) {\n return async (info) => {\n const result = this.resolverGenerator || await resolver(info);\n if (isIterable(result)) {\n this.isUsed = false;\n const { value, done } = result[Symbol.iterator]().next();\n const nextResponse = await value;\n if (done) {\n this.isUsed = true;\n }\n if (!nextResponse && done) {\n invariant(\n this.resolverGeneratorResult,\n \"Failed to returned a previously stored generator response: the value is not a valid Response.\"\n );\n return this.resolverGeneratorResult.clone();\n }\n if (!this.resolverGenerator) {\n this.resolverGenerator = result;\n }\n if (nextResponse) {\n this.resolverGeneratorResult = nextResponse?.clone();\n }\n return nextResponse;\n }\n return result;\n };\n }\n createExecutionResult(args) {\n return {\n handler: this,\n request: args.request,\n requestId: args.requestId,\n response: args.response,\n parsedResult: args.parsedResult\n };\n }\n}\nexport {\n RequestHandler\n};\n","// src/until.ts\nvar until = async (promise) => {\n try {\n const data = await promise().catch((error) => {\n throw error;\n });\n return { error: null, data };\n } catch (error) {\n return { error, data: null };\n }\n};\nexport {\n until\n};\n","const executeHandlers = async ({\n request,\n requestId,\n handlers,\n resolutionContext\n}) => {\n let matchingHandler = null;\n let result = null;\n for (const handler of handlers) {\n result = await handler.run({ request, requestId, resolutionContext });\n if (result !== null) {\n matchingHandler = handler;\n }\n if (result?.response) {\n break;\n }\n }\n if (matchingHandler) {\n return {\n handler: matchingHandler,\n parsedResult: result?.parsedResult,\n response: result?.response\n };\n }\n return null;\n};\nexport {\n executeHandlers\n};\n","function toPublicUrl(url) {\n if (typeof location === \"undefined\") {\n return url.toString();\n }\n const urlInstance = url instanceof URL ? url : new URL(url);\n return urlInstance.origin === location.origin ? urlInstance.pathname : urlInstance.origin + urlInstance.pathname;\n}\nexport {\n toPublicUrl\n};\n","import { toPublicUrl } from './toPublicUrl.mjs';\nimport { devUtils } from '../internal/devUtils.mjs';\nasync function onUnhandledRequest(request, strategy = \"warn\") {\n const url = new URL(request.url);\n const publicUrl = toPublicUrl(url);\n const unhandledRequestMessage = `intercepted a request without a matching request handler:\n\n \\u2022 ${request.method} ${publicUrl}\n\nIf you still wish to intercept this unhandled request, please create a request handler for it.\nRead more: https://mswjs.io/docs/getting-started/mocks`;\n function applyStrategy(strategy2) {\n switch (strategy2) {\n case \"error\": {\n devUtils.error(\"Error: %s\", unhandledRequestMessage);\n throw new Error(\n devUtils.formatMessage(\n 'Cannot bypass a request when using the \"error\" strategy for the \"onUnhandledRequest\" option.'\n )\n );\n }\n case \"warn\": {\n devUtils.warn(\"Warning: %s\", unhandledRequestMessage);\n break;\n }\n case \"bypass\":\n break;\n default:\n throw new Error(\n devUtils.formatMessage(\n 'Failed to react to an unhandled request: unknown strategy \"%s\". Please provide one of the supported strategies (\"bypass\", \"warn\", \"error\") or a custom callback function as the value of the \"onUnhandledRequest\" option.',\n strategy2\n )\n );\n }\n }\n if (typeof strategy === \"function\") {\n strategy(request, {\n warning: applyStrategy.bind(null, \"warn\"),\n error: applyStrategy.bind(null, \"error\")\n });\n return;\n }\n if (url.protocol === \"file:\") {\n return;\n }\n applyStrategy(strategy);\n}\nexport {\n onUnhandledRequest\n};\n","var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __commonJS = (cb, mod) => function __require() {\n return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\n\n// node_modules/set-cookie-parser/lib/set-cookie.js\nvar require_set_cookie = __commonJS({\n \"node_modules/set-cookie-parser/lib/set-cookie.js\"(exports, module) {\n \"use strict\";\n var defaultParseOptions = {\n decodeValues: true,\n map: false,\n silent: false\n };\n function isNonEmptyString(str) {\n return typeof str === \"string\" && !!str.trim();\n }\n function parseString(setCookieValue, options) {\n var parts = setCookieValue.split(\";\").filter(isNonEmptyString);\n var nameValuePairStr = parts.shift();\n var parsed = parseNameValuePair(nameValuePairStr);\n var name = parsed.name;\n var value = parsed.value;\n options = options ? Object.assign({}, defaultParseOptions, options) : defaultParseOptions;\n try {\n value = options.decodeValues ? decodeURIComponent(value) : value;\n } catch (e) {\n console.error(\n \"set-cookie-parser encountered an error while decoding a cookie with value '\" + value + \"'. Set options.decodeValues to false to disable this feature.\",\n e\n );\n }\n var cookie = {\n name,\n value\n };\n parts.forEach(function(part) {\n var sides = part.split(\"=\");\n var key = sides.shift().trimLeft().toLowerCase();\n var value2 = sides.join(\"=\");\n if (key === \"expires\") {\n cookie.expires = new Date(value2);\n } else if (key === \"max-age\") {\n cookie.maxAge = parseInt(value2, 10);\n } else if (key === \"secure\") {\n cookie.secure = true;\n } else if (key === \"httponly\") {\n cookie.httpOnly = true;\n } else if (key === \"samesite\") {\n cookie.sameSite = value2;\n } else {\n cookie[key] = value2;\n }\n });\n return cookie;\n }\n function parseNameValuePair(nameValuePairStr) {\n var name = \"\";\n var value = \"\";\n var nameValueArr = nameValuePairStr.split(\"=\");\n if (nameValueArr.length > 1) {\n name = nameValueArr.shift();\n value = nameValueArr.join(\"=\");\n } else {\n value = nameValuePairStr;\n }\n return { name, value };\n }\n function parse(input, options) {\n options = options ? Object.assign({}, defaultParseOptions, options) : defaultParseOptions;\n if (!input) {\n if (!options.map) {\n return [];\n } else {\n return {};\n }\n }\n if (input.headers) {\n if (typeof input.headers.getSetCookie === \"function\") {\n input = input.headers.getSetCookie();\n } else if (input.headers[\"set-cookie\"]) {\n input = input.headers[\"set-cookie\"];\n } else {\n var sch = input.headers[Object.keys(input.headers).find(function(key) {\n return key.toLowerCase() === \"set-cookie\";\n })];\n if (!sch && input.headers.cookie && !options.silent) {\n console.warn(\n \"Warning: set-cookie-parser appears to have been called on a request object. It is designed to parse Set-Cookie headers from responses, not Cookie headers from requests. Set the option {silent: true} to suppress this warning.\"\n );\n }\n input = sch;\n }\n }\n if (!Array.isArray(input)) {\n input = [input];\n }\n options = options ? Object.assign({}, defaultParseOptions, options) : defaultParseOptions;\n if (!options.map) {\n return input.filter(isNonEmptyString).map(function(str) {\n return parseString(str, options);\n });\n } else {\n var cookies = {};\n return input.filter(isNonEmptyString).reduce(function(cookies2, str) {\n var cookie = parseString(str, options);\n cookies2[cookie.name] = cookie;\n return cookies2;\n }, cookies);\n }\n }\n function splitCookiesString(cookiesString) {\n if (Array.isArray(cookiesString)) {\n return cookiesString;\n }\n if (typeof cookiesString !== \"string\") {\n return [];\n }\n var cookiesStrings = [];\n var pos = 0;\n var start;\n var ch;\n var lastComma;\n var nextStart;\n var cookiesSeparatorFound;\n function skipWhitespace() {\n while (pos < cookiesString.length && /\\s/.test(cookiesString.charAt(pos))) {\n pos += 1;\n }\n return pos < cookiesString.length;\n }\n function notSpecialChar() {\n ch = cookiesString.charAt(pos);\n return ch !== \"=\" && ch !== \";\" && ch !== \",\";\n }\n while (pos < cookiesString.length) {\n start = pos;\n cookiesSeparatorFound = false;\n while (skipWhitespace()) {\n ch = cookiesString.charAt(pos);\n if (ch === \",\") {\n lastComma = pos;\n pos += 1;\n skipWhitespace();\n nextStart = pos;\n while (pos < cookiesString.length && notSpecialChar()) {\n pos += 1;\n }\n if (pos < cookiesString.length && cookiesString.charAt(pos) === \"=\") {\n cookiesSeparatorFound = true;\n pos = nextStart;\n cookiesStrings.push(cookiesString.substring(start, lastComma));\n start = pos;\n } else {\n pos = lastComma + 1;\n }\n } else {\n pos += 1;\n }\n }\n if (!cookiesSeparatorFound || pos >= cookiesString.length) {\n cookiesStrings.push(cookiesString.substring(start, cookiesString.length));\n }\n }\n return cookiesStrings;\n }\n module.exports = parse;\n module.exports.parse = parse;\n module.exports.parseString = parseString;\n module.exports.splitCookiesString = splitCookiesString;\n }\n});\n\n// src/store.ts\nvar import_set_cookie_parser = __toESM(require_set_cookie());\nvar PERSISTENCY_KEY = \"MSW_COOKIE_STORE\";\nfunction supportsLocalStorage() {\n try {\n if (localStorage == null) {\n return false;\n }\n const testKey = PERSISTENCY_KEY + \"_test\";\n localStorage.setItem(testKey, \"test\");\n localStorage.getItem(testKey);\n localStorage.removeItem(testKey);\n return true;\n } catch (error) {\n return false;\n }\n}\nfunction isPropertyAccessible(object, method) {\n try {\n object[method];\n return true;\n } catch {\n return false;\n }\n}\nvar CookieStore = class {\n constructor() {\n this.store = /* @__PURE__ */ new Map();\n }\n add(request, response) {\n if (isPropertyAccessible(request, \"credentials\") && request.credentials === \"omit\") {\n return;\n }\n const requestUrl = new URL(request.url);\n const responseCookies = response.headers.get(\"set-cookie\");\n if (!responseCookies) {\n return;\n }\n const now = Date.now();\n const parsedResponseCookies = (0, import_set_cookie_parser.parse)(responseCookies).map(\n ({ maxAge, ...cookie }) => ({\n ...cookie,\n expires: maxAge === void 0 ? cookie.expires : new Date(now + maxAge * 1e3),\n maxAge\n })\n );\n const prevCookies = this.store.get(requestUrl.origin) || /* @__PURE__ */ new Map();\n parsedResponseCookies.forEach((cookie) => {\n this.store.set(requestUrl.origin, prevCookies.set(cookie.name, cookie));\n });\n }\n get(request) {\n this.deleteExpiredCookies();\n const requestUrl = new URL(request.url);\n const originCookies = this.store.get(requestUrl.origin) || /* @__PURE__ */ new Map();\n if (!isPropertyAccessible(request, \"credentials\")) {\n return originCookies;\n }\n switch (request.credentials) {\n case \"include\": {\n if (typeof document === \"undefined\") {\n return originCookies;\n }\n const documentCookies = (0, import_set_cookie_parser.parse)(document.cookie);\n documentCookies.forEach((cookie) => {\n originCookies.set(cookie.name, cookie);\n });\n return originCookies;\n }\n case \"same-origin\": {\n return originCookies;\n }\n default:\n return /* @__PURE__ */ new Map();\n }\n }\n getAll() {\n this.deleteExpiredCookies();\n return this.store;\n }\n deleteAll(request) {\n const requestUrl = new URL(request.url);\n this.store.delete(requestUrl.origin);\n }\n clear() {\n this.store.clear();\n }\n hydrate() {\n if (!supportsLocalStorage()) {\n return;\n }\n const persistedCookies = localStorage.getItem(PERSISTENCY_KEY);\n if (!persistedCookies) {\n return;\n }\n try {\n const parsedCookies = JSON.parse(persistedCookies);\n parsedCookies.forEach(([origin, cookies]) => {\n this.store.set(\n origin,\n new Map(\n cookies.map(([token, { expires, ...cookie }]) => [\n token,\n expires === void 0 ? cookie : { ...cookie, expires: new Date(expires) }\n ])\n )\n );\n });\n } catch (error) {\n console.warn(`\n[virtual-cookie] Failed to parse a stored cookie from the localStorage (key \"${PERSISTENCY_KEY}\").\n\nStored value:\n${localStorage.getItem(PERSISTENCY_KEY)}\n\nThrown exception:\n${error}\n\nInvalid value has been removed from localStorage to prevent subsequent failed parsing attempts.`);\n localStorage.removeItem(PERSISTENCY_KEY);\n }\n }\n persist() {\n if (!supportsLocalStorage()) {\n return;\n }\n const serializedCookies = Array.from(this.store.entries()).map(\n ([origin, cookies]) => {\n return [origin, Array.from(cookies.entries())];\n }\n );\n localStorage.setItem(PERSISTENCY_KEY, JSON.stringify(serializedCookies));\n }\n deleteExpiredCookies() {\n const now = Date.now();\n this.store.forEach((originCookies, origin) => {\n originCookies.forEach(({ expires, name }) => {\n if (expires !== void 0 && expires.getTime() <= now) {\n originCookies.delete(name);\n }\n });\n if (originCookies.size === 0) {\n this.store.delete(origin);\n }\n });\n }\n};\nvar store = new CookieStore();\nexport {\n PERSISTENCY_KEY,\n store\n};\n","import { store } from \"@mswjs/cookies\";\nfunction readResponseCookies(request, response) {\n store.add({ ...request, url: request.url.toString() }, response);\n store.persist();\n}\nexport {\n readResponseCookies\n};\n","import { until } from \"@open-draft/until\";\nimport { executeHandlers } from './executeHandlers.mjs';\nimport { onUnhandledRequest } from './request/onUnhandledRequest.mjs';\nimport { readResponseCookies } from './request/readResponseCookies.mjs';\nasync function handleRequest(request, requestId, handlers, options, emitter, handleRequestOptions) {\n emitter.emit(\"request:start\", { request, requestId });\n if (request.headers.get(\"x-msw-intention\") === \"bypass\") {\n emitter.emit(\"request:end\", { request, requestId });\n handleRequestOptions?.onPassthroughResponse?.(request);\n return;\n }\n const lookupResult = await until(() => {\n return executeHandlers({\n request,\n requestId,\n handlers,\n resolutionContext: handleRequestOptions?.resolutionContext\n });\n });\n if (lookupResult.error) {\n emitter.emit(\"unhandledException\", {\n error: lookupResult.error,\n request,\n requestId\n });\n throw lookupResult.error;\n }\n if (!lookupResult.data) {\n await onUnhandledRequest(request, options.onUnhandledRequest);\n emitter.emit(\"request:unhandled\", { request, requestId });\n emitter.emit(\"request:end\", { request, requestId });\n handleRequestOptions?.onPassthroughResponse?.(request);\n return;\n }\n const { response } = lookupResult.data;\n if (!response) {\n emitter.emit(\"request:end\", { request, requestId });\n handleRequestOptions?.onPassthroughResponse?.(request);\n return;\n }\n if (response.status === 302 && response.headers.get(\"x-msw-intention\") === \"passthrough\") {\n emitter.emit(\"request:end\", { request, requestId });\n handleRequestOptions?.onPassthroughResponse?.(request);\n return;\n }\n readResponseCookies(request, response);\n emitter.emit(\"request:match\", { request, requestId });\n const requiredLookupResult = lookupResult.data;\n const transformedResponse = handleRequestOptions?.transformResponse?.(response) || response;\n handleRequestOptions?.onMockedResponse?.(\n transformedResponse,\n requiredLookupResult\n );\n emitter.emit(\"request:end\", { request, requestId });\n return transformedResponse;\n}\nexport {\n handleRequest\n};\n","function toResponseInit(response) {\n return {\n status: response.status,\n statusText: response.statusText,\n headers: Object.fromEntries(response.headers.entries())\n };\n}\nexport {\n toResponseInit\n};\n","function isObject(value) {\n return value != null && typeof value === \"object\" && !Array.isArray(value);\n}\nexport {\n isObject\n};\n","import { isObject } from './isObject.mjs';\nfunction mergeRight(left, right) {\n return Object.entries(right).reduce((result, [key, rightValue]) => {\n const leftValue = result[key];\n if (Array.isArray(leftValue) && Array.isArray(rightValue)) {\n result[key] = leftValue.concat(rightValue);\n return result;\n }\n if (isObject(leftValue) && isObject(rightValue)) {\n result[key] = mergeRight(leftValue, rightValue);\n return result;\n }\n result[key] = rightValue;\n return result;\n }, Object.assign({}, left));\n}\nexport {\n mergeRight\n};\n","// src/MemoryLeakError.ts\nvar MemoryLeakError = class extends Error {\n constructor(emitter, type, count) {\n super(\n `Possible EventEmitter memory leak detected. ${count} ${type.toString()} listeners added. Use emitter.setMaxListeners() to increase limit`\n );\n this.emitter = emitter;\n this.type = type;\n this.count = count;\n this.name = \"MaxListenersExceededWarning\";\n }\n};\n\n// src/Emitter.ts\nvar _Emitter = class {\n static listenerCount(emitter, eventName) {\n return emitter.listenerCount(eventName);\n }\n constructor() {\n this.events = /* @__PURE__ */ new Map();\n this.maxListeners = _Emitter.defaultMaxListeners;\n this.hasWarnedAboutPotentialMemoryLeak = false;\n }\n _emitInternalEvent(internalEventName, eventName, listener) {\n this.emit(\n internalEventName,\n ...[eventName, listener]\n );\n }\n _getListeners(eventName) {\n return Array.prototype.concat.apply([], this.events.get(eventName)) || [];\n }\n _removeListener(listeners, listener) {\n const index = listeners.indexOf(listener);\n if (index > -1) {\n listeners.splice(index, 1);\n }\n return [];\n }\n _wrapOnceListener(eventName, listener) {\n const onceListener = (...data) => {\n this.removeListener(eventName, onceListener);\n return listener.apply(this, data);\n };\n Object.defineProperty(onceListener, \"name\", { value: listener.name });\n return onceListener;\n }\n setMaxListeners(maxListeners) {\n this.maxListeners = maxListeners;\n return this;\n }\n /**\n * Returns the current max listener value for the `Emitter` which is\n * either set by `emitter.setMaxListeners(n)` or defaults to\n * `Emitter.defaultMaxListeners`.\n */\n getMaxListeners() {\n return this.maxListeners;\n }\n /**\n * Returns an array listing the events for which the emitter has registered listeners.\n * The values in the array will be strings or Symbols.\n */\n eventNames() {\n return Array.from(this.events.keys());\n }\n /**\n * Synchronously calls each of the listeners registered for the event named `eventName`,\n * in the order they were registered, passing the supplied arguments to each.\n * Returns `true` if the event has listeners, `false` otherwise.\n *\n * @example\n * const emitter = new Emitter<{ hello: [string] }>()\n * emitter.emit('hello', 'John')\n */\n emit(eventName, ...data) {\n const listeners = this._getListeners(eventName);\n listeners.forEach((listener) => {\n listener.apply(this, data);\n });\n return listeners.length > 0;\n }\n addListener(eventName, listener) {\n this._emitInternalEvent(\"newListener\", eventName, listener);\n const nextListeners = this._getListeners(eventName).concat(listener);\n this.events.set(eventName, nextListeners);\n if (this.maxListeners > 0 && this.listenerCount(eventName) > this.maxListeners && !this.hasWarnedAboutPotentialMemoryLeak) {\n this.hasWarnedAboutPotentialMemoryLeak = true;\n const memoryLeakWarning = new MemoryLeakError(\n this,\n eventName,\n this.listenerCount(eventName)\n );\n console.warn(memoryLeakWarning);\n }\n return this;\n }\n on(eventName, listener) {\n return this.addListener(eventName, listener);\n }\n once(eventName, listener) {\n return this.addListener(\n eventName,\n this._wrapOnceListener(eventName, listener)\n );\n }\n prependListener(eventName, listener) {\n const listeners = this._getListeners(eventName);\n if (listeners.length > 0) {\n const nextListeners = [listener].concat(listeners);\n this.events.set(eventName, nextListeners);\n } else {\n this.events.set(eventName, listeners.concat(listener));\n }\n return this;\n }\n prependOnceListener(eventName, listener) {\n return this.prependListener(\n eventName,\n this._wrapOnceListener(eventName, listener)\n );\n }\n removeListener(eventName, listener) {\n const listeners = this._getListeners(eventName);\n if (listeners.length > 0) {\n this._removeListener(listeners, listener);\n this.events.set(eventName, listeners);\n this._emitInternalEvent(\"removeListener\", eventName, listener);\n }\n return this;\n }\n /**\n * Alias for `emitter.removeListener()`.\n *\n * @example\n * emitter.off('hello', listener)\n */\n off(eventName, listener) {\n return this.removeListener(eventName, listener);\n }\n removeAllListeners(eventName) {\n if (eventName) {\n this.events.delete(eventName);\n } else {\n this.events.clear();\n }\n return this;\n }\n /**\n * Returns a copy of the array of listeners for the event named `eventName`.\n */\n listeners(eventName) {\n return Array.from(this._getListeners(eventName));\n }\n /**\n * Returns the number of listeners listening to the event named `eventName`.\n */\n listenerCount(eventName) {\n return this._getListeners(eventName).length;\n }\n rawListeners(eventName) {\n return this.listeners(eventName);\n }\n};\nvar Emitter = _Emitter;\nEmitter.defaultMaxListeners = 10;\nexport {\n Emitter,\n MemoryLeakError\n};\n","function pipeEvents(source, destination) {\n const rawEmit = source.emit;\n if (rawEmit._isPiped) {\n return;\n }\n const sourceEmit = function sourceEmit2(event, ...data) {\n destination.emit(event, ...data);\n return rawEmit.call(this, event, ...data);\n };\n sourceEmit._isPiped = true;\n source.emit = sourceEmit;\n}\nexport {\n pipeEvents\n};\n","function toReadonlyArray(source) {\n const clone = [...source];\n Object.freeze(clone);\n return clone;\n}\nexport {\n toReadonlyArray\n};\n","class Disposable {\n subscriptions = [];\n async dispose() {\n await Promise.all(this.subscriptions.map((subscription) => subscription()));\n }\n}\nexport {\n Disposable\n};\n","import { invariant } from \"outvariant\";\nimport { Emitter } from \"strict-event-emitter\";\nimport { devUtils } from './utils/internal/devUtils.mjs';\nimport { pipeEvents } from './utils/internal/pipeEvents.mjs';\nimport { toReadonlyArray } from './utils/internal/toReadonlyArray.mjs';\nimport { Disposable } from './utils/internal/Disposable.mjs';\nclass HandlersController {\n}\nclass InMemoryHandlersController {\n constructor(initialHandlers) {\n this.initialHandlers = initialHandlers;\n this.handlers = [...initialHandlers];\n }\n handlers;\n prepend(runtimeHandles) {\n this.handlers.unshift(...runtimeHandles);\n }\n reset(nextHandlers) {\n this.handlers = nextHandlers.length > 0 ? [...nextHandlers] : [...this.initialHandlers];\n }\n currentHandlers() {\n return this.handlers;\n }\n}\nclass SetupApi extends Disposable {\n handlersController;\n emitter;\n publicEmitter;\n events;\n constructor(...initialHandlers) {\n super();\n invariant(\n this.validateHandlers(initialHandlers),\n devUtils.formatMessage(\n `Failed to apply given request handlers: invalid input. Did you forget to spread the request handlers Array?`\n )\n );\n this.handlersController = new InMemoryHandlersController(initialHandlers);\n this.emitter = new Emitter();\n this.publicEmitter = new Emitter();\n pipeEvents(this.emitter, this.publicEmitter);\n this.events = this.createLifeCycleEvents();\n this.subscriptions.push(() => {\n this.emitter.removeAllListeners();\n this.publicEmitter.removeAllListeners();\n });\n }\n validateHandlers(handlers) {\n return handlers.every((handler) => !Array.isArray(handler));\n }\n use(...runtimeHandlers) {\n invariant(\n this.validateHandlers(runtimeHandlers),\n devUtils.formatMessage(\n `Failed to call \"use()\" with the given request handlers: invalid input. Did you forget to spread the array of request handlers?`\n )\n );\n this.handlersController.prepend(runtimeHandlers);\n }\n restoreHandlers() {\n this.handlersController.currentHandlers().forEach((handler) => {\n handler.isUsed = false;\n });\n }\n resetHandlers(...nextHandlers) {\n this.handlersController.reset(nextHandlers);\n }\n listHandlers() {\n return toReadonlyArray(this.handlersController.currentHandlers());\n }\n createLifeCycleEvents() {\n return {\n on: (...args) => {\n return this.publicEmitter.on(...args);\n },\n removeListener: (...args) => {\n return this.publicEmitter.removeListener(...args);\n },\n removeAllListeners: (...args) => {\n return this.publicEmitter.removeAllListeners(...args);\n }\n };\n }\n}\nexport {\n HandlersController,\n InMemoryHandlersController,\n SetupApi\n};\n","// node_modules/.pnpm/outvariant@1.4.2/node_modules/outvariant/lib/index.mjs\nvar POSITIONALS_EXP = /(%?)(%([sdijo]))/g;\nfunction serializePositional(positional, flag) {\n switch (flag) {\n case \"s\":\n return positional;\n case \"d\":\n case \"i\":\n return Number(positional);\n case \"j\":\n return JSON.stringify(positional);\n case \"o\": {\n if (typeof positional === \"string\") {\n return positional;\n }\n const json = JSON.stringify(positional);\n if (json === \"{}\" || json === \"[]\" || /^\\[object .+?\\]$/.test(json)) {\n return positional;\n }\n return json;\n }\n }\n}\nfunction format(message, ...positionals) {\n if (positionals.length === 0) {\n return message;\n }\n let positionalIndex = 0;\n let formattedMessage = message.replace(\n POSITIONALS_EXP,\n (match, isEscaped, _, flag) => {\n const positional = positionals[positionalIndex];\n const value = serializePositional(positional, flag);\n if (!isEscaped) {\n positionalIndex++;\n return value;\n }\n return match;\n }\n );\n if (positionalIndex < positionals.length) {\n formattedMessage += ` ${positionals.slice(positionalIndex).join(\" \")}`;\n }\n formattedMessage = formattedMessage.replace(/%{2,2}/g, \"%\");\n return formattedMessage;\n}\nvar STACK_FRAMES_TO_IGNORE = 2;\nfunction cleanErrorStack(error2) {\n if (!error2.stack) {\n return;\n }\n const nextStack = error2.stack.split(\"\\n\");\n nextStack.splice(1, STACK_FRAMES_TO_IGNORE);\n error2.stack = nextStack.join(\"\\n\");\n}\nvar InvariantError = class extends Error {\n constructor(message, ...positionals) {\n super(message);\n this.message = message;\n this.name = \"Invariant Violation\";\n this.message = format(message, ...positionals);\n cleanErrorStack(this);\n }\n};\nvar invariant = (predicate, message, ...positionals) => {\n if (!predicate) {\n throw new InvariantError(message, ...positionals);\n }\n};\ninvariant.as = (ErrorConstructor, predicate, message, ...positionals) => {\n if (!predicate) {\n const formatMessage = positionals.length === 0 ? message : format(message, positionals);\n let error2;\n try {\n error2 = Reflect.construct(ErrorConstructor, [formatMessage]);\n } catch (err) {\n error2 = ErrorConstructor(formatMessage);\n }\n throw error2;\n }\n};\n\n// node_modules/.pnpm/is-node-process@1.2.0/node_modules/is-node-process/lib/index.mjs\nfunction isNodeProcess() {\n if (typeof navigator !== \"undefined\" && navigator.product === \"ReactNative\") {\n return true;\n }\n if (typeof process !== \"undefined\") {\n const type = process.type;\n if (type === \"renderer\" || type === \"worker\") {\n return false;\n }\n return !!(process.versions && process.versions.node);\n }\n return false;\n}\n\n// src/browser/setupWorker/start/createStartHandler.ts\nimport { devUtils as devUtils7 } from '../core/utils/internal/devUtils.mjs';\n\n// node_modules/.pnpm/@open-draft+until@2.1.0/node_modules/@open-draft/until/lib/index.mjs\nvar until = async (promise) => {\n try {\n const data = await promise().catch((error2) => {\n throw error2;\n });\n return { error: null, data };\n } catch (error2) {\n return { error: error2, data: null };\n }\n};\n\n// src/browser/setupWorker/start/utils/getWorkerInstance.ts\nimport { devUtils } from '../core/utils/internal/devUtils.mjs';\n\n// src/browser/utils/getAbsoluteWorkerUrl.ts\nfunction getAbsoluteWorkerUrl(workerUrl) {\n return new URL(workerUrl, location.href).href;\n}\n\n// src/browser/setupWorker/start/utils/getWorkerByRegistration.ts\nfunction getWorkerByRegistration(registration, absoluteWorkerUrl, findWorker) {\n const allStates = [\n registration.active,\n registration.installing,\n registration.waiting\n ];\n const relevantStates = allStates.filter((state) => {\n return state != null;\n });\n const worker = relevantStates.find((worker2) => {\n return findWorker(worker2.scriptURL, absoluteWorkerUrl);\n });\n return worker || null;\n}\n\n// src/browser/setupWorker/start/utils/getWorkerInstance.ts\nvar getWorkerInstance = async (url, options = {}, findWorker) => {\n const absoluteWorkerUrl = getAbsoluteWorkerUrl(url);\n const mockRegistrations = await navigator.serviceWorker.getRegistrations().then(\n (registrations) => registrations.filter(\n (registration) => getWorkerByRegistration(registration, absoluteWorkerUrl, findWorker)\n )\n );\n if (!navigator.serviceWorker.controller && mockRegistrations.length > 0) {\n location.reload();\n }\n const [existingRegistration] = mockRegistrations;\n if (existingRegistration) {\n return existingRegistration.update().then(() => {\n return [\n getWorkerByRegistration(\n existingRegistration,\n absoluteWorkerUrl,\n findWorker\n ),\n existingRegistration\n ];\n });\n }\n const registrationResult = await until(\n async () => {\n const registration = await navigator.serviceWorker.register(url, options);\n return [\n // Compare existing worker registration by its worker URL,\n // to prevent irrelevant workers to resolve here (such as Codesandbox worker).\n getWorkerByRegistration(registration, absoluteWorkerUrl, findWorker),\n registration\n ];\n }\n );\n if (registrationResult.error) {\n const isWorkerMissing = registrationResult.error.message.includes(\"(404)\");\n if (isWorkerMissing) {\n const scopeUrl = new URL(options?.scope || \"/\", location.href);\n throw new Error(\n devUtils.formatMessage(`Failed to register a Service Worker for scope ('${scopeUrl.href}') with script ('${absoluteWorkerUrl}'): Service Worker script does not exist at the given path.\n\nDid you forget to run \"npx msw init \"?\n\nLearn more about creating the Service Worker script: https://mswjs.io/docs/cli/init`)\n );\n }\n throw new Error(\n devUtils.formatMessage(\n \"Failed to register the Service Worker:\\n\\n%s\",\n registrationResult.error.message\n )\n );\n }\n return registrationResult.data;\n};\n\n// src/browser/setupWorker/start/utils/enableMocking.ts\nimport { devUtils as devUtils3 } from '../core/utils/internal/devUtils.mjs';\n\n// src/browser/setupWorker/start/utils/printStartMessage.ts\nimport { devUtils as devUtils2 } from '../core/utils/internal/devUtils.mjs';\nfunction printStartMessage(args = {}) {\n if (args.quiet) {\n return;\n }\n const message = args.message || \"Mocking enabled.\";\n console.groupCollapsed(\n `%c${devUtils2.formatMessage(message)}`,\n \"color:orangered;font-weight:bold;\"\n );\n console.log(\n \"%cDocumentation: %chttps://mswjs.io/docs\",\n \"font-weight:bold\",\n \"font-weight:normal\"\n );\n console.log(\"Found an issue? https://github.com/mswjs/msw/issues\");\n if (args.workerUrl) {\n console.log(\"Worker script URL:\", args.workerUrl);\n }\n if (args.workerScope) {\n console.log(\"Worker scope:\", args.workerScope);\n }\n console.groupEnd();\n}\n\n// src/browser/setupWorker/start/utils/enableMocking.ts\nasync function enableMocking(context, options) {\n context.workerChannel.send(\"MOCK_ACTIVATE\");\n await context.events.once(\"MOCKING_ENABLED\");\n if (context.isMockingEnabled) {\n devUtils3.warn(\n `Found a redundant \"worker.start()\" call. Note that starting the worker while mocking is already enabled will have no effect. Consider removing this \"worker.start()\" call.`\n );\n return;\n }\n context.isMockingEnabled = true;\n printStartMessage({\n quiet: options.quiet,\n workerScope: context.registration?.scope,\n workerUrl: context.worker?.scriptURL\n });\n}\n\n// src/browser/setupWorker/start/utils/createMessageChannel.ts\nvar WorkerChannel = class {\n constructor(port) {\n this.port = port;\n }\n postMessage(event, ...rest) {\n const [data, transfer] = rest;\n this.port.postMessage({ type: event, data }, { transfer });\n }\n};\n\n// src/browser/utils/pruneGetRequestBody.ts\nfunction pruneGetRequestBody(request) {\n if ([\"HEAD\", \"GET\"].includes(request.method)) {\n return void 0;\n }\n return request.body;\n}\n\n// src/browser/utils/parseWorkerRequest.ts\nfunction parseWorkerRequest(incomingRequest) {\n return new Request(incomingRequest.url, {\n ...incomingRequest,\n body: pruneGetRequestBody(incomingRequest)\n });\n}\n\n// src/browser/setupWorker/start/createRequestListener.ts\nimport { RequestHandler } from '../core/handlers/RequestHandler.mjs';\nimport { handleRequest } from '../core/utils/handleRequest.mjs';\nimport { devUtils as devUtils4 } from '../core/utils/internal/devUtils.mjs';\nimport { toResponseInit } from '../core/utils/toResponseInit.mjs';\nvar createRequestListener = (context, options) => {\n return async (event, message) => {\n const messageChannel = new WorkerChannel(event.ports[0]);\n const requestId = message.payload.id;\n const request = parseWorkerRequest(message.payload);\n const requestCloneForLogs = request.clone();\n const requestClone = request.clone();\n RequestHandler.cache.set(request, requestClone);\n context.requests.set(requestId, requestClone);\n try {\n await handleRequest(\n request,\n requestId,\n context.getRequestHandlers(),\n options,\n context.emitter,\n {\n onPassthroughResponse() {\n messageChannel.postMessage(\"PASSTHROUGH\");\n },\n async onMockedResponse(response, { handler, parsedResult }) {\n const responseClone = response.clone();\n const responseCloneForLogs = response.clone();\n const responseInit = toResponseInit(response);\n if (context.supports.readableStreamTransfer) {\n const responseStreamOrNull = response.body;\n messageChannel.postMessage(\n \"MOCK_RESPONSE\",\n {\n ...responseInit,\n body: responseStreamOrNull\n },\n responseStreamOrNull ? [responseStreamOrNull] : void 0\n );\n } else {\n const responseBufferOrNull = response.body === null ? null : await responseClone.arrayBuffer();\n messageChannel.postMessage(\"MOCK_RESPONSE\", {\n ...responseInit,\n body: responseBufferOrNull\n });\n }\n if (!options.quiet) {\n context.emitter.once(\"response:mocked\", () => {\n handler.log({\n request: requestCloneForLogs,\n response: responseCloneForLogs,\n parsedResult\n });\n });\n }\n }\n }\n );\n } catch (error2) {\n if (error2 instanceof Error) {\n devUtils4.error(\n `Uncaught exception in the request handler for \"%s %s\":\n\n%s\n\nThis exception has been gracefully handled as a 500 response, however, it's strongly recommended to resolve this error, as it indicates a mistake in your code. If you wish to mock an error response, please see this guide: https://mswjs.io/docs/recipes/mocking-error-responses`,\n request.method,\n request.url,\n error2.stack ?? error2\n );\n messageChannel.postMessage(\"MOCK_RESPONSE\", {\n status: 500,\n statusText: \"Request Handler Error\",\n headers: {\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({\n name: error2.name,\n message: error2.message,\n stack: error2.stack\n })\n });\n }\n }\n };\n};\n\n// src/browser/utils/checkWorkerIntegrity.ts\nimport { devUtils as devUtils5 } from '../core/utils/internal/devUtils.mjs';\nasync function checkWorkerIntegrity(context) {\n context.workerChannel.send(\"INTEGRITY_CHECK_REQUEST\");\n const { payload } = await context.events.once(\"INTEGRITY_CHECK_RESPONSE\");\n if (payload.checksum !== \"26357c79639bfa20d64c0efca2a87423\") {\n devUtils5.warn(\n `The currently registered Service Worker has been generated by a different version of MSW (${payload.packageVersion}) and may not be fully compatible with the installed version.\n\nIt's recommended you update your worker script by running this command:\n\n \\u2022 npx msw init \n\nYou can also automate this process and make the worker script update automatically upon the library installations. Read more: https://mswjs.io/docs/cli/init.`\n );\n }\n}\n\n// node_modules/.pnpm/@mswjs+interceptors@0.25.16/node_modules/@mswjs/interceptors/lib/browser/chunk-UJZOJSMP.mjs\nvar encoder = new TextEncoder();\nfunction encodeBuffer(text) {\n return encoder.encode(text);\n}\nfunction decodeBuffer(buffer, encoding) {\n const decoder = new TextDecoder(encoding);\n return decoder.decode(buffer);\n}\nfunction toArrayBuffer(array) {\n return array.buffer.slice(\n array.byteOffset,\n array.byteOffset + array.byteLength\n );\n}\nvar RESPONSE_STATUS_CODES_WITHOUT_BODY = /* @__PURE__ */ new Set([\n 101,\n 103,\n 204,\n 205,\n 304\n]);\nfunction isResponseWithoutBody(status) {\n return RESPONSE_STATUS_CODES_WITHOUT_BODY.has(status);\n}\n\n// node_modules/.pnpm/@open-draft+logger@0.3.0/node_modules/@open-draft/logger/lib/index.mjs\nvar __defProp = Object.defineProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar colors_exports = {};\n__export(colors_exports, {\n blue: () => blue,\n gray: () => gray,\n green: () => green,\n red: () => red,\n yellow: () => yellow\n});\nfunction yellow(text) {\n return `\\x1B[33m${text}\\x1B[0m`;\n}\nfunction blue(text) {\n return `\\x1B[34m${text}\\x1B[0m`;\n}\nfunction gray(text) {\n return `\\x1B[90m${text}\\x1B[0m`;\n}\nfunction red(text) {\n return `\\x1B[31m${text}\\x1B[0m`;\n}\nfunction green(text) {\n return `\\x1B[32m${text}\\x1B[0m`;\n}\nvar IS_NODE = isNodeProcess();\nvar Logger = class {\n constructor(name) {\n this.name = name;\n this.prefix = `[${this.name}]`;\n const LOGGER_NAME = getVariable(\"DEBUG\");\n const LOGGER_LEVEL = getVariable(\"LOG_LEVEL\");\n const isLoggingEnabled = LOGGER_NAME === \"1\" || LOGGER_NAME === \"true\" || typeof LOGGER_NAME !== \"undefined\" && this.name.startsWith(LOGGER_NAME);\n if (isLoggingEnabled) {\n this.debug = isDefinedAndNotEquals(LOGGER_LEVEL, \"debug\") ? noop : this.debug;\n this.info = isDefinedAndNotEquals(LOGGER_LEVEL, \"info\") ? noop : this.info;\n this.success = isDefinedAndNotEquals(LOGGER_LEVEL, \"success\") ? noop : this.success;\n this.warning = isDefinedAndNotEquals(LOGGER_LEVEL, \"warning\") ? noop : this.warning;\n this.error = isDefinedAndNotEquals(LOGGER_LEVEL, \"error\") ? noop : this.error;\n } else {\n this.info = noop;\n this.success = noop;\n this.warning = noop;\n this.error = noop;\n this.only = noop;\n }\n }\n prefix;\n extend(domain) {\n return new Logger(`${this.name}:${domain}`);\n }\n /**\n * Print a debug message.\n * @example\n * logger.debug('no duplicates found, creating a document...')\n */\n debug(message, ...positionals) {\n this.logEntry({\n level: \"debug\",\n message: gray(message),\n positionals,\n prefix: this.prefix,\n colors: {\n prefix: \"gray\"\n }\n });\n }\n /**\n * Print an info message.\n * @example\n * logger.info('start parsing...')\n */\n info(message, ...positionals) {\n this.logEntry({\n level: \"info\",\n message,\n positionals,\n prefix: this.prefix,\n colors: {\n prefix: \"blue\"\n }\n });\n const performance2 = new PerformanceEntry();\n return (message2, ...positionals2) => {\n performance2.measure();\n this.logEntry({\n level: \"info\",\n message: `${message2} ${gray(`${performance2.deltaTime}ms`)}`,\n positionals: positionals2,\n prefix: this.prefix,\n colors: {\n prefix: \"blue\"\n }\n });\n };\n }\n /**\n * Print a success message.\n * @example\n * logger.success('successfully created document')\n */\n success(message, ...positionals) {\n this.logEntry({\n level: \"info\",\n message,\n positionals,\n prefix: `\\u2714 ${this.prefix}`,\n colors: {\n timestamp: \"green\",\n prefix: \"green\"\n }\n });\n }\n /**\n * Print a warning.\n * @example\n * logger.warning('found legacy document format')\n */\n warning(message, ...positionals) {\n this.logEntry({\n level: \"warning\",\n message,\n positionals,\n prefix: `\\u26A0 ${this.prefix}`,\n colors: {\n timestamp: \"yellow\",\n prefix: \"yellow\"\n }\n });\n }\n /**\n * Print an error message.\n * @example\n * logger.error('something went wrong')\n */\n error(message, ...positionals) {\n this.logEntry({\n level: \"error\",\n message,\n positionals,\n prefix: `\\u2716 ${this.prefix}`,\n colors: {\n timestamp: \"red\",\n prefix: \"red\"\n }\n });\n }\n /**\n * Execute the given callback only when the logging is enabled.\n * This is skipped in its entirety and has no runtime cost otherwise.\n * This executes regardless of the log level.\n * @example\n * logger.only(() => {\n * logger.info('additional info')\n * })\n */\n only(callback) {\n callback();\n }\n createEntry(level, message) {\n return {\n timestamp: /* @__PURE__ */ new Date(),\n level,\n message\n };\n }\n logEntry(args) {\n const {\n level,\n message,\n prefix,\n colors: customColors,\n positionals = []\n } = args;\n const entry = this.createEntry(level, message);\n const timestampColor = customColors?.timestamp || \"gray\";\n const prefixColor = customColors?.prefix || \"gray\";\n const colorize = {\n timestamp: colors_exports[timestampColor],\n prefix: colors_exports[prefixColor]\n };\n const write = this.getWriter(level);\n write(\n [colorize.timestamp(this.formatTimestamp(entry.timestamp))].concat(prefix != null ? colorize.prefix(prefix) : []).concat(serializeInput(message)).join(\" \"),\n ...positionals.map(serializeInput)\n );\n }\n formatTimestamp(timestamp) {\n return `${timestamp.toLocaleTimeString(\n \"en-GB\"\n )}:${timestamp.getMilliseconds()}`;\n }\n getWriter(level) {\n switch (level) {\n case \"debug\":\n case \"success\":\n case \"info\": {\n return log;\n }\n case \"warning\": {\n return warn;\n }\n case \"error\": {\n return error;\n }\n }\n }\n};\nvar PerformanceEntry = class {\n startTime;\n endTime;\n deltaTime;\n constructor() {\n this.startTime = performance.now();\n }\n measure() {\n this.endTime = performance.now();\n const deltaTime = this.endTime - this.startTime;\n this.deltaTime = deltaTime.toFixed(2);\n }\n};\nvar noop = () => void 0;\nfunction log(message, ...positionals) {\n if (IS_NODE) {\n process.stdout.write(format(message, ...positionals) + \"\\n\");\n return;\n }\n console.log(message, ...positionals);\n}\nfunction warn(message, ...positionals) {\n if (IS_NODE) {\n process.stderr.write(format(message, ...positionals) + \"\\n\");\n return;\n }\n console.warn(message, ...positionals);\n}\nfunction error(message, ...positionals) {\n if (IS_NODE) {\n process.stderr.write(format(message, ...positionals) + \"\\n\");\n return;\n }\n console.error(message, ...positionals);\n}\nfunction getVariable(variableName) {\n if (IS_NODE) {\n return process.env[variableName];\n }\n return globalThis[variableName]?.toString();\n}\nfunction isDefinedAndNotEquals(value, expected) {\n return value !== void 0 && value !== expected;\n}\nfunction serializeInput(message) {\n if (typeof message === \"undefined\") {\n return \"undefined\";\n }\n if (message === null) {\n return \"null\";\n }\n if (typeof message === \"string\") {\n return message;\n }\n if (typeof message === \"object\") {\n return JSON.stringify(message);\n }\n return message.toString();\n}\n\n// node_modules/.pnpm/strict-event-emitter@0.5.1/node_modules/strict-event-emitter/lib/index.mjs\nvar MemoryLeakError = class extends Error {\n constructor(emitter, type, count) {\n super(\n `Possible EventEmitter memory leak detected. ${count} ${type.toString()} listeners added. Use emitter.setMaxListeners() to increase limit`\n );\n this.emitter = emitter;\n this.type = type;\n this.count = count;\n this.name = \"MaxListenersExceededWarning\";\n }\n};\nvar _Emitter = class {\n static listenerCount(emitter, eventName) {\n return emitter.listenerCount(eventName);\n }\n constructor() {\n this.events = /* @__PURE__ */ new Map();\n this.maxListeners = _Emitter.defaultMaxListeners;\n this.hasWarnedAboutPotentialMemoryLeak = false;\n }\n _emitInternalEvent(internalEventName, eventName, listener) {\n this.emit(\n internalEventName,\n ...[eventName, listener]\n );\n }\n _getListeners(eventName) {\n return Array.prototype.concat.apply([], this.events.get(eventName)) || [];\n }\n _removeListener(listeners, listener) {\n const index = listeners.indexOf(listener);\n if (index > -1) {\n listeners.splice(index, 1);\n }\n return [];\n }\n _wrapOnceListener(eventName, listener) {\n const onceListener = (...data) => {\n this.removeListener(eventName, onceListener);\n return listener.apply(this, data);\n };\n Object.defineProperty(onceListener, \"name\", { value: listener.name });\n return onceListener;\n }\n setMaxListeners(maxListeners) {\n this.maxListeners = maxListeners;\n return this;\n }\n /**\n * Returns the current max listener value for the `Emitter` which is\n * either set by `emitter.setMaxListeners(n)` or defaults to\n * `Emitter.defaultMaxListeners`.\n */\n getMaxListeners() {\n return this.maxListeners;\n }\n /**\n * Returns an array listing the events for which the emitter has registered listeners.\n * The values in the array will be strings or Symbols.\n */\n eventNames() {\n return Array.from(this.events.keys());\n }\n /**\n * Synchronously calls each of the listeners registered for the event named `eventName`,\n * in the order they were registered, passing the supplied arguments to each.\n * Returns `true` if the event has listeners, `false` otherwise.\n *\n * @example\n * const emitter = new Emitter<{ hello: [string] }>()\n * emitter.emit('hello', 'John')\n */\n emit(eventName, ...data) {\n const listeners = this._getListeners(eventName);\n listeners.forEach((listener) => {\n listener.apply(this, data);\n });\n return listeners.length > 0;\n }\n addListener(eventName, listener) {\n this._emitInternalEvent(\"newListener\", eventName, listener);\n const nextListeners = this._getListeners(eventName).concat(listener);\n this.events.set(eventName, nextListeners);\n if (this.maxListeners > 0 && this.listenerCount(eventName) > this.maxListeners && !this.hasWarnedAboutPotentialMemoryLeak) {\n this.hasWarnedAboutPotentialMemoryLeak = true;\n const memoryLeakWarning = new MemoryLeakError(\n this,\n eventName,\n this.listenerCount(eventName)\n );\n console.warn(memoryLeakWarning);\n }\n return this;\n }\n on(eventName, listener) {\n return this.addListener(eventName, listener);\n }\n once(eventName, listener) {\n return this.addListener(\n eventName,\n this._wrapOnceListener(eventName, listener)\n );\n }\n prependListener(eventName, listener) {\n const listeners = this._getListeners(eventName);\n if (listeners.length > 0) {\n const nextListeners = [listener].concat(listeners);\n this.events.set(eventName, nextListeners);\n } else {\n this.events.set(eventName, listeners.concat(listener));\n }\n return this;\n }\n prependOnceListener(eventName, listener) {\n return this.prependListener(\n eventName,\n this._wrapOnceListener(eventName, listener)\n );\n }\n removeListener(eventName, listener) {\n const listeners = this._getListeners(eventName);\n if (listeners.length > 0) {\n this._removeListener(listeners, listener);\n this.events.set(eventName, listeners);\n this._emitInternalEvent(\"removeListener\", eventName, listener);\n }\n return this;\n }\n /**\n * Alias for `emitter.removeListener()`.\n *\n * @example\n * emitter.off('hello', listener)\n */\n off(eventName, listener) {\n return this.removeListener(eventName, listener);\n }\n removeAllListeners(eventName) {\n if (eventName) {\n this.events.delete(eventName);\n } else {\n this.events.clear();\n }\n return this;\n }\n /**\n * Returns a copy of the array of listeners for the event named `eventName`.\n */\n listeners(eventName) {\n return Array.from(this._getListeners(eventName));\n }\n /**\n * Returns the number of listeners listening to the event named `eventName`.\n */\n listenerCount(eventName) {\n return this._getListeners(eventName).length;\n }\n rawListeners(eventName) {\n return this.listeners(eventName);\n }\n};\nvar Emitter = _Emitter;\nEmitter.defaultMaxListeners = 10;\n\n// node_modules/.pnpm/@mswjs+interceptors@0.25.16/node_modules/@mswjs/interceptors/lib/browser/chunk-WZQN3FMY.mjs\nvar IS_PATCHED_MODULE = Symbol(\"isPatchedModule\");\nfunction getGlobalSymbol(symbol) {\n return (\n // @ts-ignore https://github.com/Microsoft/TypeScript/issues/24587\n globalThis[symbol] || void 0\n );\n}\nfunction setGlobalSymbol(symbol, value) {\n globalThis[symbol] = value;\n}\nfunction deleteGlobalSymbol(symbol) {\n delete globalThis[symbol];\n}\nvar Interceptor = class {\n constructor(symbol) {\n this.symbol = symbol;\n this.readyState = \"INACTIVE\";\n this.emitter = new Emitter();\n this.subscriptions = [];\n this.logger = new Logger(symbol.description);\n this.emitter.setMaxListeners(0);\n this.logger.info(\"constructing the interceptor...\");\n }\n /**\n * Determine if this interceptor can be applied\n * in the current environment.\n */\n checkEnvironment() {\n return true;\n }\n /**\n * Apply this interceptor to the current process.\n * Returns an already running interceptor instance if it's present.\n */\n apply() {\n const logger = this.logger.extend(\"apply\");\n logger.info(\"applying the interceptor...\");\n if (this.readyState === \"APPLIED\") {\n logger.info(\"intercepted already applied!\");\n return;\n }\n const shouldApply = this.checkEnvironment();\n if (!shouldApply) {\n logger.info(\"the interceptor cannot be applied in this environment!\");\n return;\n }\n this.readyState = \"APPLYING\";\n const runningInstance = this.getInstance();\n if (runningInstance) {\n logger.info(\"found a running instance, reusing...\");\n this.on = (event, listener) => {\n logger.info('proxying the \"%s\" listener', event);\n runningInstance.emitter.addListener(event, listener);\n this.subscriptions.push(() => {\n runningInstance.emitter.removeListener(event, listener);\n logger.info('removed proxied \"%s\" listener!', event);\n });\n return this;\n };\n this.readyState = \"APPLIED\";\n return;\n }\n logger.info(\"no running instance found, setting up a new instance...\");\n this.setup();\n this.setInstance();\n this.readyState = \"APPLIED\";\n }\n /**\n * Setup the module augments and stubs necessary for this interceptor.\n * This method is not run if there's a running interceptor instance\n * to prevent instantiating an interceptor multiple times.\n */\n setup() {\n }\n /**\n * Listen to the interceptor's public events.\n */\n on(event, listener) {\n const logger = this.logger.extend(\"on\");\n if (this.readyState === \"DISPOSING\" || this.readyState === \"DISPOSED\") {\n logger.info(\"cannot listen to events, already disposed!\");\n return this;\n }\n logger.info('adding \"%s\" event listener:', event, listener);\n this.emitter.on(event, listener);\n return this;\n }\n once(event, listener) {\n this.emitter.once(event, listener);\n return this;\n }\n off(event, listener) {\n this.emitter.off(event, listener);\n return this;\n }\n removeAllListeners(event) {\n this.emitter.removeAllListeners(event);\n return this;\n }\n /**\n * Disposes of any side-effects this interceptor has introduced.\n */\n dispose() {\n const logger = this.logger.extend(\"dispose\");\n if (this.readyState === \"DISPOSED\") {\n logger.info(\"cannot dispose, already disposed!\");\n return;\n }\n logger.info(\"disposing the interceptor...\");\n this.readyState = \"DISPOSING\";\n if (!this.getInstance()) {\n logger.info(\"no interceptors running, skipping dispose...\");\n return;\n }\n this.clearInstance();\n logger.info(\"global symbol deleted:\", getGlobalSymbol(this.symbol));\n if (this.subscriptions.length > 0) {\n logger.info(\"disposing of %d subscriptions...\", this.subscriptions.length);\n for (const dispose of this.subscriptions) {\n dispose();\n }\n this.subscriptions = [];\n logger.info(\"disposed of all subscriptions!\", this.subscriptions.length);\n }\n this.emitter.removeAllListeners();\n logger.info(\"destroyed the listener!\");\n this.readyState = \"DISPOSED\";\n }\n getInstance() {\n var _a;\n const instance = getGlobalSymbol(this.symbol);\n this.logger.info(\"retrieved global instance:\", (_a = instance == null ? void 0 : instance.constructor) == null ? void 0 : _a.name);\n return instance;\n }\n setInstance() {\n setGlobalSymbol(this.symbol, this);\n this.logger.info(\"set global instance!\", this.symbol.description);\n }\n clearInstance() {\n deleteGlobalSymbol(this.symbol);\n this.logger.info(\"cleared global instance!\", this.symbol.description);\n }\n};\n\n// node_modules/.pnpm/@mswjs+interceptors@0.25.16/node_modules/@mswjs/interceptors/lib/browser/index.mjs\nvar BatchInterceptor = class extends Interceptor {\n constructor(options) {\n BatchInterceptor.symbol = Symbol(options.name);\n super(BatchInterceptor.symbol);\n this.interceptors = options.interceptors;\n }\n setup() {\n const logger = this.logger.extend(\"setup\");\n logger.info(\"applying all %d interceptors...\", this.interceptors.length);\n for (const interceptor of this.interceptors) {\n logger.info('applying \"%s\" interceptor...', interceptor.constructor.name);\n interceptor.apply();\n logger.info(\"adding interceptor dispose subscription\");\n this.subscriptions.push(() => interceptor.dispose());\n }\n }\n on(event, listener) {\n for (const interceptor of this.interceptors) {\n interceptor.on(event, listener);\n }\n return this;\n }\n once(event, listener) {\n for (const interceptor of this.interceptors) {\n interceptor.once(event, listener);\n }\n return this;\n }\n off(event, listener) {\n for (const interceptor of this.interceptors) {\n interceptor.off(event, listener);\n }\n return this;\n }\n removeAllListeners(event) {\n for (const interceptors of this.interceptors) {\n interceptors.removeAllListeners(event);\n }\n return this;\n }\n};\n\n// src/browser/setupWorker/start/createResponseListener.ts\nfunction createResponseListener(context) {\n return (_, message) => {\n const { payload: responseJson } = message;\n const { requestId } = responseJson;\n const request = context.requests.get(requestId);\n context.requests.delete(requestId);\n console.log(\"RESPONSE LISTENER\", responseJson, context.requests);\n if (responseJson.type?.includes(\"opaque\")) {\n return;\n }\n const response = responseJson.status === 0 ? Response.error() : new Response(\n /**\n * Responses may be streams here, but when we create a response object\n * with null-body status codes, like 204, 205, 304 Response will\n * throw when passed a non-null body, so ensure it's null here\n * for those codes\n */\n isResponseWithoutBody(responseJson.status) ? null : responseJson.body,\n responseJson\n );\n if (!response.url) {\n Object.defineProperty(response, \"url\", {\n value: request.url,\n enumerable: true,\n writable: false\n });\n }\n context.emitter.emit(\n responseJson.isMockedResponse ? \"response:mocked\" : \"response:bypass\",\n {\n response,\n request,\n requestId: responseJson.requestId\n }\n );\n };\n}\n\n// src/browser/setupWorker/start/utils/validateWorkerScope.ts\nimport { devUtils as devUtils6 } from '../core/utils/internal/devUtils.mjs';\nfunction validateWorkerScope(registration, options) {\n if (!options?.quiet && !location.href.startsWith(registration.scope)) {\n devUtils6.warn(\n `Cannot intercept requests on this page because it's outside of the worker's scope (\"${registration.scope}\"). If you wish to mock API requests on this page, you must resolve this scope issue.\n\n- (Recommended) Register the worker at the root level (\"/\") of your application.\n- Set the \"Service-Worker-Allowed\" response header to allow out-of-scope workers.`\n );\n }\n}\n\n// src/browser/setupWorker/start/createStartHandler.ts\nvar createStartHandler = (context) => {\n return function start(options, customOptions) {\n const startWorkerInstance = async () => {\n context.events.removeAllListeners();\n context.workerChannel.on(\n \"REQUEST\",\n createRequestListener(context, options)\n );\n context.workerChannel.on(\"RESPONSE\", createResponseListener(context));\n const instance = await getWorkerInstance(\n options.serviceWorker.url,\n options.serviceWorker.options,\n options.findWorker\n );\n const [worker, registration] = instance;\n if (!worker) {\n const missingWorkerMessage = customOptions?.findWorker ? devUtils7.formatMessage(\n `Failed to locate the Service Worker registration using a custom \"findWorker\" predicate.\n\nPlease ensure that the custom predicate properly locates the Service Worker registration at \"%s\".\nMore details: https://mswjs.io/docs/api/setup-worker/start#findworker\n`,\n options.serviceWorker.url\n ) : devUtils7.formatMessage(\n `Failed to locate the Service Worker registration.\n\nThis most likely means that the worker script URL \"%s\" cannot resolve against the actual public hostname (%s). This may happen if your application runs behind a proxy, or has a dynamic hostname.\n\nPlease consider using a custom \"serviceWorker.url\" option to point to the actual worker script location, or a custom \"findWorker\" option to resolve the Service Worker registration manually. More details: https://mswjs.io/docs/api/setup-worker/start`,\n options.serviceWorker.url,\n location.host\n );\n throw new Error(missingWorkerMessage);\n }\n context.worker = worker;\n context.registration = registration;\n context.events.addListener(window, \"beforeunload\", () => {\n if (worker.state !== \"redundant\") {\n context.workerChannel.send(\"CLIENT_CLOSED\");\n }\n window.clearInterval(context.keepAliveInterval);\n });\n await checkWorkerIntegrity(context).catch((error2) => {\n devUtils7.error(\n \"Error while checking the worker script integrity. Please report this on GitHub (https://github.com/mswjs/msw/issues), including the original error below.\"\n );\n console.error(error2);\n });\n context.keepAliveInterval = window.setInterval(\n () => context.workerChannel.send(\"KEEPALIVE_REQUEST\"),\n 5e3\n );\n validateWorkerScope(registration, context.startOptions);\n return registration;\n };\n const workerRegistration = startWorkerInstance().then(\n async (registration) => {\n const pendingInstance = registration.installing || registration.waiting;\n if (pendingInstance) {\n await new Promise((resolve) => {\n pendingInstance.addEventListener(\"statechange\", () => {\n if (pendingInstance.state === \"activated\") {\n return resolve();\n }\n });\n });\n }\n await enableMocking(context, options).catch((error2) => {\n throw new Error(`Failed to enable mocking: ${error2?.message}`);\n });\n return registration;\n }\n );\n return workerRegistration;\n };\n};\n\n// src/browser/setupWorker/stop/createStop.ts\nimport { devUtils as devUtils9 } from '../core/utils/internal/devUtils.mjs';\n\n// src/browser/setupWorker/stop/utils/printStopMessage.ts\nimport { devUtils as devUtils8 } from '../core/utils/internal/devUtils.mjs';\nfunction printStopMessage(args = {}) {\n if (args.quiet) {\n return;\n }\n console.log(\n `%c${devUtils8.formatMessage(\"Mocking disabled.\")}`,\n \"color:orangered;font-weight:bold;\"\n );\n}\n\n// src/browser/setupWorker/stop/createStop.ts\nvar createStop = (context) => {\n return function stop() {\n if (!context.isMockingEnabled) {\n devUtils9.warn(\n 'Found a redundant \"worker.stop()\" call. Note that stopping the worker while mocking already stopped has no effect. Consider removing this \"worker.stop()\" call.'\n );\n return;\n }\n context.workerChannel.send(\"MOCK_DEACTIVATE\");\n context.isMockingEnabled = false;\n window.clearInterval(context.keepAliveInterval);\n printStopMessage({ quiet: context.startOptions?.quiet });\n };\n};\n\n// src/browser/setupWorker/start/utils/prepareStartHandler.ts\nimport { mergeRight } from '../core/utils/internal/mergeRight.mjs';\nvar DEFAULT_START_OPTIONS = {\n serviceWorker: {\n url: \"/mockServiceWorker.js\",\n options: null\n },\n quiet: false,\n waitUntilReady: true,\n onUnhandledRequest: \"warn\",\n findWorker(scriptURL, mockServiceWorkerUrl) {\n return scriptURL === mockServiceWorkerUrl;\n }\n};\n\n// node_modules/.pnpm/@open-draft+deferred-promise@2.2.0/node_modules/@open-draft/deferred-promise/build/index.mjs\nfunction createDeferredExecutor() {\n const executor = (resolve, reject) => {\n executor.state = \"pending\";\n executor.resolve = (data) => {\n if (executor.state !== \"pending\") {\n return;\n }\n executor.result = data;\n const onFulfilled = (value) => {\n executor.state = \"fulfilled\";\n return value;\n };\n return resolve(\n data instanceof Promise ? data : Promise.resolve(data).then(onFulfilled)\n );\n };\n executor.reject = (reason) => {\n if (executor.state !== \"pending\") {\n return;\n }\n queueMicrotask(() => {\n executor.state = \"rejected\";\n });\n return reject(executor.rejectionReason = reason);\n };\n };\n return executor;\n}\nvar DeferredPromise = class extends Promise {\n #executor;\n resolve;\n reject;\n constructor(executor = null) {\n const deferredExecutor = createDeferredExecutor();\n super((originalResolve, originalReject) => {\n deferredExecutor(originalResolve, originalReject);\n executor?.(deferredExecutor.resolve, deferredExecutor.reject);\n });\n this.#executor = deferredExecutor;\n this.resolve = this.#executor.resolve;\n this.reject = this.#executor.reject;\n }\n get state() {\n return this.#executor.state;\n }\n get rejectionReason() {\n return this.#executor.rejectionReason;\n }\n then(onFulfilled, onRejected) {\n return this.#decorate(super.then(onFulfilled, onRejected));\n }\n catch(onRejected) {\n return this.#decorate(super.catch(onRejected));\n }\n finally(onfinally) {\n return this.#decorate(super.finally(onfinally));\n }\n #decorate(promise) {\n return Object.defineProperties(promise, {\n resolve: { configurable: true, value: this.resolve },\n reject: { configurable: true, value: this.reject }\n });\n }\n};\n\n// node_modules/.pnpm/@mswjs+interceptors@0.25.16/node_modules/@mswjs/interceptors/lib/browser/chunk-72HT65NX.mjs\nfunction uuidv4() {\n return \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g, function(c) {\n const r = Math.random() * 16 | 0;\n const v = c == \"x\" ? r : r & 3 | 8;\n return v.toString(16);\n });\n}\nvar RequestController = class {\n constructor(request) {\n this.request = request;\n this.responsePromise = new DeferredPromise();\n }\n respondWith(response) {\n invariant(\n this.responsePromise.state === \"pending\",\n 'Failed to respond to \"%s %s\" request: the \"request\" event has already been responded to.',\n this.request.method,\n this.request.url\n );\n this.responsePromise.resolve(response);\n }\n};\nfunction toInteractiveRequest(request) {\n const requestController = new RequestController(request);\n Reflect.set(\n request,\n \"respondWith\",\n requestController.respondWith.bind(requestController)\n );\n return {\n interactiveRequest: request,\n requestController\n };\n}\nasync function emitAsync(emitter, eventName, ...data) {\n const listners = emitter.listeners(eventName);\n if (listners.length === 0) {\n return;\n }\n for (const listener of listners) {\n await listener.apply(emitter, data);\n }\n}\n\n// node_modules/.pnpm/@mswjs+interceptors@0.25.16/node_modules/@mswjs/interceptors/lib/browser/chunk-XQZ6GVNB.mjs\nfunction isPropertyAccessible(obj, key) {\n try {\n obj[key];\n return true;\n } catch (e) {\n return false;\n }\n}\nfunction canParseUrl(url) {\n try {\n new URL(url);\n return true;\n } catch (_error) {\n return false;\n }\n}\nvar _FetchInterceptor = class extends Interceptor {\n constructor() {\n super(_FetchInterceptor.symbol);\n }\n checkEnvironment() {\n return typeof globalThis !== \"undefined\" && typeof globalThis.fetch !== \"undefined\";\n }\n setup() {\n const pureFetch = globalThis.fetch;\n invariant(\n !pureFetch[IS_PATCHED_MODULE],\n 'Failed to patch the \"fetch\" module: already patched.'\n );\n globalThis.fetch = async (input, init) => {\n var _a;\n const requestId = uuidv4();\n const resolvedInput = typeof input === \"string\" && typeof location !== \"undefined\" && !canParseUrl(input) ? new URL(input, location.origin) : input;\n const request = new Request(resolvedInput, init);\n this.logger.info(\"[%s] %s\", request.method, request.url);\n const { interactiveRequest, requestController } = toInteractiveRequest(request);\n this.logger.info(\n 'emitting the \"request\" event for %d listener(s)...',\n this.emitter.listenerCount(\"request\")\n );\n this.emitter.once(\"request\", ({ requestId: pendingRequestId }) => {\n if (pendingRequestId !== requestId) {\n return;\n }\n if (requestController.responsePromise.state === \"pending\") {\n requestController.responsePromise.resolve(void 0);\n }\n });\n this.logger.info(\"awaiting for the mocked response...\");\n const signal = interactiveRequest.signal;\n const requestAborted = new DeferredPromise();\n if (signal) {\n signal.addEventListener(\n \"abort\",\n () => {\n requestAborted.reject(signal.reason);\n },\n { once: true }\n );\n }\n const resolverResult = await until(async () => {\n const listenersFinished = emitAsync(this.emitter, \"request\", {\n request: interactiveRequest,\n requestId\n });\n await Promise.race([\n requestAborted,\n // Put the listeners invocation Promise in the same race condition\n // with the request abort Promise because otherwise awaiting the listeners\n // would always yield some response (or undefined).\n listenersFinished,\n requestController.responsePromise\n ]);\n this.logger.info(\"all request listeners have been resolved!\");\n const mockedResponse2 = await requestController.responsePromise;\n this.logger.info(\"event.respondWith called with:\", mockedResponse2);\n return mockedResponse2;\n });\n if (requestAborted.state === \"rejected\") {\n return Promise.reject(requestAborted.rejectionReason);\n }\n if (resolverResult.error) {\n return Promise.reject(createNetworkError(resolverResult.error));\n }\n const mockedResponse = resolverResult.data;\n if (mockedResponse && !((_a = request.signal) == null ? void 0 : _a.aborted)) {\n this.logger.info(\"received mocked response:\", mockedResponse);\n if (isPropertyAccessible(mockedResponse, \"type\") && mockedResponse.type === \"error\") {\n this.logger.info(\n \"received a network error response, rejecting the request promise...\"\n );\n return Promise.reject(createNetworkError(mockedResponse));\n }\n const responseClone = mockedResponse.clone();\n this.emitter.emit(\"response\", {\n response: responseClone,\n isMockedResponse: true,\n request: interactiveRequest,\n requestId\n });\n Object.defineProperty(mockedResponse, \"url\", {\n writable: false,\n enumerable: true,\n configurable: false,\n value: request.url\n });\n return mockedResponse;\n }\n this.logger.info(\"no mocked response received!\");\n return pureFetch(request).then((response) => {\n const responseClone = response.clone();\n this.logger.info(\"original fetch performed\", responseClone);\n this.emitter.emit(\"response\", {\n response: responseClone,\n isMockedResponse: false,\n request: interactiveRequest,\n requestId\n });\n return response;\n });\n };\n Object.defineProperty(globalThis.fetch, IS_PATCHED_MODULE, {\n enumerable: true,\n configurable: true,\n value: true\n });\n this.subscriptions.push(() => {\n Object.defineProperty(globalThis.fetch, IS_PATCHED_MODULE, {\n value: void 0\n });\n globalThis.fetch = pureFetch;\n this.logger.info(\n 'restored native \"globalThis.fetch\"!',\n globalThis.fetch.name\n );\n });\n }\n};\nvar FetchInterceptor = _FetchInterceptor;\nFetchInterceptor.symbol = Symbol(\"fetch\");\nfunction createNetworkError(cause) {\n return Object.assign(new TypeError(\"Failed to fetch\"), {\n cause\n });\n}\n\n// node_modules/.pnpm/@mswjs+interceptors@0.25.16/node_modules/@mswjs/interceptors/lib/browser/chunk-DZVB7JEV.mjs\nfunction concatArrayBuffer(left, right) {\n const result = new Uint8Array(left.byteLength + right.byteLength);\n result.set(left, 0);\n result.set(right, left.byteLength);\n return result;\n}\nvar EventPolyfill = class {\n constructor(type, options) {\n this.AT_TARGET = 0;\n this.BUBBLING_PHASE = 0;\n this.CAPTURING_PHASE = 0;\n this.NONE = 0;\n this.type = \"\";\n this.srcElement = null;\n this.currentTarget = null;\n this.eventPhase = 0;\n this.isTrusted = true;\n this.composed = false;\n this.cancelable = true;\n this.defaultPrevented = false;\n this.bubbles = true;\n this.lengthComputable = true;\n this.loaded = 0;\n this.total = 0;\n this.cancelBubble = false;\n this.returnValue = true;\n this.type = type;\n this.target = (options == null ? void 0 : options.target) || null;\n this.currentTarget = (options == null ? void 0 : options.currentTarget) || null;\n this.timeStamp = Date.now();\n }\n composedPath() {\n return [];\n }\n initEvent(type, bubbles, cancelable) {\n this.type = type;\n this.bubbles = !!bubbles;\n this.cancelable = !!cancelable;\n }\n preventDefault() {\n this.defaultPrevented = true;\n }\n stopPropagation() {\n }\n stopImmediatePropagation() {\n }\n};\nvar ProgressEventPolyfill = class extends EventPolyfill {\n constructor(type, init) {\n super(type);\n this.lengthComputable = (init == null ? void 0 : init.lengthComputable) || false;\n this.composed = (init == null ? void 0 : init.composed) || false;\n this.loaded = (init == null ? void 0 : init.loaded) || 0;\n this.total = (init == null ? void 0 : init.total) || 0;\n }\n};\nvar SUPPORTS_PROGRESS_EVENT = typeof ProgressEvent !== \"undefined\";\nfunction createEvent(target, type, init) {\n const progressEvents = [\n \"error\",\n \"progress\",\n \"loadstart\",\n \"loadend\",\n \"load\",\n \"timeout\",\n \"abort\"\n ];\n const ProgressEventClass = SUPPORTS_PROGRESS_EVENT ? ProgressEvent : ProgressEventPolyfill;\n const event = progressEvents.includes(type) ? new ProgressEventClass(type, {\n lengthComputable: true,\n loaded: (init == null ? void 0 : init.loaded) || 0,\n total: (init == null ? void 0 : init.total) || 0\n }) : new EventPolyfill(type, {\n target,\n currentTarget: target\n });\n return event;\n}\nfunction findPropertySource(target, propertyName) {\n if (!(propertyName in target)) {\n return null;\n }\n const hasProperty = Object.prototype.hasOwnProperty.call(target, propertyName);\n if (hasProperty) {\n return target;\n }\n const prototype = Reflect.getPrototypeOf(target);\n return prototype ? findPropertySource(prototype, propertyName) : null;\n}\nfunction createProxy(target, options) {\n const proxy = new Proxy(target, optionsToProxyHandler(options));\n return proxy;\n}\nfunction optionsToProxyHandler(options) {\n const { constructorCall, methodCall, getProperty, setProperty } = options;\n const handler = {};\n if (typeof constructorCall !== \"undefined\") {\n handler.construct = function(target, args, newTarget) {\n const next = Reflect.construct.bind(null, target, args, newTarget);\n return constructorCall.call(newTarget, args, next);\n };\n }\n handler.set = function(target, propertyName, nextValue) {\n const next = () => {\n const propertySource = findPropertySource(target, propertyName) || target;\n const ownDescriptors = Reflect.getOwnPropertyDescriptor(\n propertySource,\n propertyName\n );\n if (typeof (ownDescriptors == null ? void 0 : ownDescriptors.set) !== \"undefined\") {\n ownDescriptors.set.apply(target, [nextValue]);\n return true;\n }\n return Reflect.defineProperty(propertySource, propertyName, {\n writable: true,\n enumerable: true,\n configurable: true,\n value: nextValue\n });\n };\n if (typeof setProperty !== \"undefined\") {\n return setProperty.call(target, [propertyName, nextValue], next);\n }\n return next();\n };\n handler.get = function(target, propertyName, receiver) {\n const next = () => target[propertyName];\n const value = typeof getProperty !== \"undefined\" ? getProperty.call(target, [propertyName, receiver], next) : next();\n if (typeof value === \"function\") {\n return (...args) => {\n const next2 = value.bind(target, ...args);\n if (typeof methodCall !== \"undefined\") {\n return methodCall.call(target, [propertyName, args], next2);\n }\n return next2();\n };\n }\n return value;\n };\n return handler;\n}\nfunction isDomParserSupportedType(type) {\n const supportedTypes = [\n \"application/xhtml+xml\",\n \"application/xml\",\n \"image/svg+xml\",\n \"text/html\",\n \"text/xml\"\n ];\n return supportedTypes.some((supportedType) => {\n return type.startsWith(supportedType);\n });\n}\nfunction parseJson(data) {\n try {\n const json = JSON.parse(data);\n return json;\n } catch (_) {\n return null;\n }\n}\nfunction createResponse(request, body) {\n const responseBodyOrNull = isResponseWithoutBody(request.status) ? null : body;\n return new Response(responseBodyOrNull, {\n status: request.status,\n statusText: request.statusText,\n headers: createHeadersFromXMLHttpReqestHeaders(\n request.getAllResponseHeaders()\n )\n });\n}\nfunction createHeadersFromXMLHttpReqestHeaders(headersString) {\n const headers = new Headers();\n const lines = headersString.split(/[\\r\\n]+/);\n for (const line of lines) {\n if (line.trim() === \"\") {\n continue;\n }\n const [name, ...parts] = line.split(\": \");\n const value = parts.join(\": \");\n headers.append(name, value);\n }\n return headers;\n}\nvar IS_MOCKED_RESPONSE = Symbol(\"isMockedResponse\");\nvar IS_NODE2 = isNodeProcess();\nvar XMLHttpRequestController = class {\n constructor(initialRequest, logger) {\n this.initialRequest = initialRequest;\n this.logger = logger;\n this.method = \"GET\";\n this.url = null;\n this.events = /* @__PURE__ */ new Map();\n this.requestId = uuidv4();\n this.requestHeaders = new Headers();\n this.responseBuffer = new Uint8Array();\n this.request = createProxy(initialRequest, {\n setProperty: ([propertyName, nextValue], invoke) => {\n switch (propertyName) {\n case \"ontimeout\": {\n const eventName = propertyName.slice(\n 2\n );\n this.request.addEventListener(eventName, nextValue);\n return invoke();\n }\n default: {\n return invoke();\n }\n }\n },\n methodCall: ([methodName, args], invoke) => {\n var _a;\n switch (methodName) {\n case \"open\": {\n const [method, url] = args;\n if (typeof url === \"undefined\") {\n this.method = \"GET\";\n this.url = toAbsoluteUrl(method);\n } else {\n this.method = method;\n this.url = toAbsoluteUrl(url);\n }\n this.logger = this.logger.extend(`${this.method} ${this.url.href}`);\n this.logger.info(\"open\", this.method, this.url.href);\n return invoke();\n }\n case \"addEventListener\": {\n const [eventName, listener] = args;\n this.registerEvent(eventName, listener);\n this.logger.info(\"addEventListener\", eventName, listener);\n return invoke();\n }\n case \"setRequestHeader\": {\n const [name, value] = args;\n this.requestHeaders.set(name, value);\n this.logger.info(\"setRequestHeader\", name, value);\n return invoke();\n }\n case \"send\": {\n const [body] = args;\n if (body != null) {\n this.requestBody = typeof body === \"string\" ? encodeBuffer(body) : body;\n }\n this.request.addEventListener(\"load\", () => {\n if (typeof this.onResponse !== \"undefined\") {\n const fetchResponse = createResponse(\n this.request,\n /**\n * The `response` property is the right way to read\n * the ambiguous response body, as the request's \"responseType\" may differ.\n * @see https://xhr.spec.whatwg.org/#the-response-attribute\n */\n this.request.response\n );\n this.onResponse.call(this, {\n response: fetchResponse,\n isMockedResponse: IS_MOCKED_RESPONSE in this.request,\n request: fetchRequest,\n requestId: this.requestId\n });\n }\n });\n const fetchRequest = this.toFetchApiRequest();\n const onceRequestSettled = ((_a = this.onRequest) == null ? void 0 : _a.call(this, {\n request: fetchRequest,\n requestId: this.requestId\n })) || Promise.resolve();\n onceRequestSettled.finally(() => {\n if (this.request.readyState < this.request.LOADING) {\n this.logger.info(\n \"request callback settled but request has not been handled (readystate %d), performing as-is...\",\n this.request.readyState\n );\n if (IS_NODE2) {\n this.request.setRequestHeader(\"X-Request-Id\", this.requestId);\n }\n return invoke();\n }\n });\n break;\n }\n default: {\n return invoke();\n }\n }\n }\n });\n }\n registerEvent(eventName, listener) {\n const prevEvents = this.events.get(eventName) || [];\n const nextEvents = prevEvents.concat(listener);\n this.events.set(eventName, nextEvents);\n this.logger.info('registered event \"%s\"', eventName, listener);\n }\n /**\n * Responds to the current request with the given\n * Fetch API `Response` instance.\n */\n respondWith(response) {\n this.logger.info(\n \"responding with a mocked response: %d %s\",\n response.status,\n response.statusText\n );\n define(this.request, IS_MOCKED_RESPONSE, true);\n define(this.request, \"status\", response.status);\n define(this.request, \"statusText\", response.statusText);\n define(this.request, \"responseURL\", this.url.href);\n this.request.getResponseHeader = new Proxy(this.request.getResponseHeader, {\n apply: (_, __, args) => {\n this.logger.info(\"getResponseHeader\", args[0]);\n if (this.request.readyState < this.request.HEADERS_RECEIVED) {\n this.logger.info(\"headers not received yet, returning null\");\n return null;\n }\n const headerValue = response.headers.get(args[0]);\n this.logger.info(\n 'resolved response header \"%s\" to',\n args[0],\n headerValue\n );\n return headerValue;\n }\n });\n this.request.getAllResponseHeaders = new Proxy(\n this.request.getAllResponseHeaders,\n {\n apply: () => {\n this.logger.info(\"getAllResponseHeaders\");\n if (this.request.readyState < this.request.HEADERS_RECEIVED) {\n this.logger.info(\"headers not received yet, returning empty string\");\n return \"\";\n }\n const headersList = Array.from(response.headers.entries());\n const allHeaders = headersList.map(([headerName, headerValue]) => {\n return `${headerName}: ${headerValue}`;\n }).join(\"\\r\\n\");\n this.logger.info(\"resolved all response headers to\", allHeaders);\n return allHeaders;\n }\n }\n );\n Object.defineProperties(this.request, {\n response: {\n enumerable: true,\n configurable: false,\n get: () => this.response\n },\n responseText: {\n enumerable: true,\n configurable: false,\n get: () => this.responseText\n },\n responseXML: {\n enumerable: true,\n configurable: false,\n get: () => this.responseXML\n }\n });\n const totalResponseBodyLength = response.headers.has(\"Content-Length\") ? Number(response.headers.get(\"Content-Length\")) : (\n /**\n * @todo Infer the response body length from the response body.\n */\n void 0\n );\n this.logger.info(\"calculated response body length\", totalResponseBodyLength);\n this.trigger(\"loadstart\", {\n loaded: 0,\n total: totalResponseBodyLength\n });\n this.setReadyState(this.request.HEADERS_RECEIVED);\n this.setReadyState(this.request.LOADING);\n const finalizeResponse = () => {\n this.logger.info(\"finalizing the mocked response...\");\n this.setReadyState(this.request.DONE);\n this.trigger(\"load\", {\n loaded: this.responseBuffer.byteLength,\n total: totalResponseBodyLength\n });\n this.trigger(\"loadend\", {\n loaded: this.responseBuffer.byteLength,\n total: totalResponseBodyLength\n });\n };\n if (response.body) {\n this.logger.info(\"mocked response has body, streaming...\");\n const reader = response.body.getReader();\n const readNextResponseBodyChunk = async () => {\n const { value, done } = await reader.read();\n if (done) {\n this.logger.info(\"response body stream done!\");\n finalizeResponse();\n return;\n }\n if (value) {\n this.logger.info(\"read response body chunk:\", value);\n this.responseBuffer = concatArrayBuffer(this.responseBuffer, value);\n this.trigger(\"progress\", {\n loaded: this.responseBuffer.byteLength,\n total: totalResponseBodyLength\n });\n }\n readNextResponseBodyChunk();\n };\n readNextResponseBodyChunk();\n } else {\n finalizeResponse();\n }\n }\n responseBufferToText() {\n return decodeBuffer(this.responseBuffer);\n }\n get response() {\n this.logger.info(\n \"getResponse (responseType: %s)\",\n this.request.responseType\n );\n if (this.request.readyState !== this.request.DONE) {\n return null;\n }\n switch (this.request.responseType) {\n case \"json\": {\n const responseJson = parseJson(this.responseBufferToText());\n this.logger.info(\"resolved response JSON\", responseJson);\n return responseJson;\n }\n case \"arraybuffer\": {\n const arrayBuffer = toArrayBuffer(this.responseBuffer);\n this.logger.info(\"resolved response ArrayBuffer\", arrayBuffer);\n return arrayBuffer;\n }\n case \"blob\": {\n const mimeType = this.request.getResponseHeader(\"Content-Type\") || \"text/plain\";\n const responseBlob = new Blob([this.responseBufferToText()], {\n type: mimeType\n });\n this.logger.info(\n \"resolved response Blob (mime type: %s)\",\n responseBlob,\n mimeType\n );\n return responseBlob;\n }\n default: {\n const responseText = this.responseBufferToText();\n this.logger.info(\n 'resolving \"%s\" response type as text',\n this.request.responseType,\n responseText\n );\n return responseText;\n }\n }\n }\n get responseText() {\n invariant(\n this.request.responseType === \"\" || this.request.responseType === \"text\",\n \"InvalidStateError: The object is in invalid state.\"\n );\n if (this.request.readyState !== this.request.LOADING && this.request.readyState !== this.request.DONE) {\n return \"\";\n }\n const responseText = this.responseBufferToText();\n this.logger.info('getResponseText: \"%s\"', responseText);\n return responseText;\n }\n get responseXML() {\n invariant(\n this.request.responseType === \"\" || this.request.responseType === \"document\",\n \"InvalidStateError: The object is in invalid state.\"\n );\n if (this.request.readyState !== this.request.DONE) {\n return null;\n }\n const contentType = this.request.getResponseHeader(\"Content-Type\") || \"\";\n if (typeof DOMParser === \"undefined\") {\n console.warn(\n \"Cannot retrieve XMLHttpRequest response body as XML: DOMParser is not defined. You are likely using an environment that is not browser or does not polyfill browser globals correctly.\"\n );\n return null;\n }\n if (isDomParserSupportedType(contentType)) {\n return new DOMParser().parseFromString(\n this.responseBufferToText(),\n contentType\n );\n }\n return null;\n }\n errorWith(error2) {\n this.logger.info(\"responding with an error\");\n this.setReadyState(this.request.DONE);\n this.trigger(\"error\");\n this.trigger(\"loadend\");\n }\n /**\n * Transitions this request's `readyState` to the given one.\n */\n setReadyState(nextReadyState) {\n this.logger.info(\n \"setReadyState: %d -> %d\",\n this.request.readyState,\n nextReadyState\n );\n if (this.request.readyState === nextReadyState) {\n this.logger.info(\"ready state identical, skipping transition...\");\n return;\n }\n define(this.request, \"readyState\", nextReadyState);\n this.logger.info(\"set readyState to: %d\", nextReadyState);\n if (nextReadyState !== this.request.UNSENT) {\n this.logger.info('triggerring \"readystatechange\" event...');\n this.trigger(\"readystatechange\");\n }\n }\n /**\n * Triggers given event on the `XMLHttpRequest` instance.\n */\n trigger(eventName, options) {\n const callback = this.request[`on${eventName}`];\n const event = createEvent(this.request, eventName, options);\n this.logger.info('trigger \"%s\"', eventName, options || \"\");\n if (typeof callback === \"function\") {\n this.logger.info('found a direct \"%s\" callback, calling...', eventName);\n callback.call(this.request, event);\n }\n for (const [registeredEventName, listeners] of this.events) {\n if (registeredEventName === eventName) {\n this.logger.info(\n 'found %d listener(s) for \"%s\" event, calling...',\n listeners.length,\n eventName\n );\n listeners.forEach((listener) => listener.call(this.request, event));\n }\n }\n }\n /**\n * Converts this `XMLHttpRequest` instance into a Fetch API `Request` instance.\n */\n toFetchApiRequest() {\n this.logger.info(\"converting request to a Fetch API Request...\");\n const fetchRequest = new Request(this.url.href, {\n method: this.method,\n headers: this.requestHeaders,\n /**\n * @see https://xhr.spec.whatwg.org/#cross-origin-credentials\n */\n credentials: this.request.withCredentials ? \"include\" : \"same-origin\",\n body: [\"GET\", \"HEAD\"].includes(this.method) ? null : this.requestBody\n });\n const proxyHeaders = createProxy(fetchRequest.headers, {\n methodCall: ([methodName, args], invoke) => {\n switch (methodName) {\n case \"append\":\n case \"set\": {\n const [headerName, headerValue] = args;\n this.request.setRequestHeader(headerName, headerValue);\n break;\n }\n case \"delete\": {\n const [headerName] = args;\n console.warn(\n `XMLHttpRequest: Cannot remove a \"${headerName}\" header from the Fetch API representation of the \"${fetchRequest.method} ${fetchRequest.url}\" request. XMLHttpRequest headers cannot be removed.`\n );\n break;\n }\n }\n return invoke();\n }\n });\n define(fetchRequest, \"headers\", proxyHeaders);\n this.logger.info(\"converted request to a Fetch API Request!\", fetchRequest);\n return fetchRequest;\n }\n};\nfunction toAbsoluteUrl(url) {\n if (typeof location === \"undefined\") {\n return new URL(url);\n }\n return new URL(url.toString(), location.href);\n}\nfunction define(target, property, value) {\n Reflect.defineProperty(target, property, {\n // Ensure writable properties to allow redefining readonly properties.\n writable: true,\n enumerable: true,\n value\n });\n}\nfunction createXMLHttpRequestProxy({\n emitter,\n logger\n}) {\n const XMLHttpRequestProxy = new Proxy(globalThis.XMLHttpRequest, {\n construct(target, args, newTarget) {\n logger.info(\"constructed new XMLHttpRequest\");\n const originalRequest = Reflect.construct(target, args, newTarget);\n const prototypeDescriptors = Object.getOwnPropertyDescriptors(\n target.prototype\n );\n for (const propertyName in prototypeDescriptors) {\n Reflect.defineProperty(\n originalRequest,\n propertyName,\n prototypeDescriptors[propertyName]\n );\n }\n const xhrRequestController = new XMLHttpRequestController(\n originalRequest,\n logger\n );\n xhrRequestController.onRequest = async function({ request, requestId }) {\n const { interactiveRequest, requestController } = toInteractiveRequest(request);\n this.logger.info(\"awaiting mocked response...\");\n emitter.once(\"request\", ({ requestId: pendingRequestId }) => {\n if (pendingRequestId !== requestId) {\n return;\n }\n if (requestController.responsePromise.state === \"pending\") {\n requestController.respondWith(void 0);\n }\n });\n const resolverResult = await until(async () => {\n this.logger.info(\n 'emitting the \"request\" event for %s listener(s)...',\n emitter.listenerCount(\"request\")\n );\n await emitAsync(emitter, \"request\", {\n request: interactiveRequest,\n requestId\n });\n this.logger.info('all \"request\" listeners settled!');\n const mockedResponse2 = await requestController.responsePromise;\n this.logger.info(\"event.respondWith called with:\", mockedResponse2);\n return mockedResponse2;\n });\n if (resolverResult.error) {\n this.logger.info(\n \"request listener threw an exception, aborting request...\",\n resolverResult.error\n );\n xhrRequestController.errorWith(resolverResult.error);\n return;\n }\n const mockedResponse = resolverResult.data;\n if (typeof mockedResponse !== \"undefined\") {\n this.logger.info(\n \"received mocked response: %d %s\",\n mockedResponse.status,\n mockedResponse.statusText\n );\n if (mockedResponse.type === \"error\") {\n this.logger.info(\n \"received a network error response, rejecting the request promise...\"\n );\n xhrRequestController.errorWith(new TypeError(\"Network error\"));\n return;\n }\n return xhrRequestController.respondWith(mockedResponse);\n }\n this.logger.info(\n \"no mocked response received, performing request as-is...\"\n );\n };\n xhrRequestController.onResponse = async function({\n response,\n isMockedResponse,\n request,\n requestId\n }) {\n this.logger.info(\n 'emitting the \"response\" event for %s listener(s)...',\n emitter.listenerCount(\"response\")\n );\n emitter.emit(\"response\", {\n response,\n isMockedResponse,\n request,\n requestId\n });\n };\n return xhrRequestController.request;\n }\n });\n return XMLHttpRequestProxy;\n}\nvar _XMLHttpRequestInterceptor = class extends Interceptor {\n constructor() {\n super(_XMLHttpRequestInterceptor.interceptorSymbol);\n }\n checkEnvironment() {\n return typeof globalThis.XMLHttpRequest !== \"undefined\";\n }\n setup() {\n const logger = this.logger.extend(\"setup\");\n logger.info('patching \"XMLHttpRequest\" module...');\n const PureXMLHttpRequest = globalThis.XMLHttpRequest;\n invariant(\n !PureXMLHttpRequest[IS_PATCHED_MODULE],\n 'Failed to patch the \"XMLHttpRequest\" module: already patched.'\n );\n globalThis.XMLHttpRequest = createXMLHttpRequestProxy({\n emitter: this.emitter,\n logger: this.logger\n });\n logger.info(\n 'native \"XMLHttpRequest\" module patched!',\n globalThis.XMLHttpRequest.name\n );\n Object.defineProperty(globalThis.XMLHttpRequest, IS_PATCHED_MODULE, {\n enumerable: true,\n configurable: true,\n value: true\n });\n this.subscriptions.push(() => {\n Object.defineProperty(globalThis.XMLHttpRequest, IS_PATCHED_MODULE, {\n value: void 0\n });\n globalThis.XMLHttpRequest = PureXMLHttpRequest;\n logger.info(\n 'native \"XMLHttpRequest\" module restored!',\n globalThis.XMLHttpRequest.name\n );\n });\n }\n};\nvar XMLHttpRequestInterceptor = _XMLHttpRequestInterceptor;\nXMLHttpRequestInterceptor.interceptorSymbol = Symbol(\"xhr\");\n\n// src/browser/setupWorker/start/createFallbackRequestListener.ts\nimport { handleRequest as handleRequest2 } from '../core/utils/handleRequest.mjs';\nfunction createFallbackRequestListener(context, options) {\n const interceptor = new BatchInterceptor({\n name: \"fallback\",\n interceptors: [new FetchInterceptor(), new XMLHttpRequestInterceptor()]\n });\n interceptor.on(\"request\", async ({ request, requestId }) => {\n const requestCloneForLogs = request.clone();\n const response = await handleRequest2(\n request,\n requestId,\n context.getRequestHandlers(),\n options,\n context.emitter,\n {\n onMockedResponse(_, { handler, parsedResult }) {\n if (!options.quiet) {\n context.emitter.once(\"response:mocked\", ({ response: response2 }) => {\n handler.log({\n request: requestCloneForLogs,\n response: response2,\n parsedResult\n });\n });\n }\n }\n }\n );\n if (response) {\n request.respondWith(response);\n }\n });\n interceptor.on(\n \"response\",\n ({ response, isMockedResponse, request, requestId }) => {\n context.emitter.emit(\n isMockedResponse ? \"response:mocked\" : \"response:bypass\",\n {\n response,\n request,\n requestId\n }\n );\n }\n );\n interceptor.apply();\n return interceptor;\n}\n\n// src/browser/setupWorker/start/createFallbackStart.ts\nfunction createFallbackStart(context) {\n return async function start(options) {\n context.fallbackInterceptor = createFallbackRequestListener(\n context,\n options\n );\n printStartMessage({\n message: \"Mocking enabled (fallback mode).\",\n quiet: options.quiet\n });\n return void 0;\n };\n}\n\n// src/browser/setupWorker/stop/createFallbackStop.ts\nfunction createFallbackStop(context) {\n return function stop() {\n context.fallbackInterceptor?.dispose();\n printStopMessage({ quiet: context.startOptions?.quiet });\n };\n}\n\n// src/browser/setupWorker/setupWorker.ts\nimport { devUtils as devUtils10 } from '../core/utils/internal/devUtils.mjs';\nimport { SetupApi } from '../core/SetupApi.mjs';\nimport { mergeRight as mergeRight2 } from '../core/utils/internal/mergeRight.mjs';\n\n// src/browser/utils/supportsReadableStreamTransfer.ts\nfunction supportsReadableStreamTransfer() {\n try {\n const stream = new ReadableStream({\n start: (controller) => controller.close()\n });\n const message = new MessageChannel();\n message.port1.postMessage(stream, [stream]);\n return true;\n } catch (error2) {\n return false;\n }\n}\n\n// src/browser/setupWorker/setupWorker.ts\nvar SetupWorkerApi = class extends SetupApi {\n context;\n startHandler = null;\n stopHandler = null;\n listeners;\n constructor(...handlers) {\n super(...handlers);\n invariant(\n !isNodeProcess(),\n devUtils10.formatMessage(\n \"Failed to execute `setupWorker` in a non-browser environment. Consider using `setupServer` for Node.js environment instead.\"\n )\n );\n this.listeners = [];\n this.context = this.createWorkerContext();\n }\n createWorkerContext() {\n const context = {\n // Mocking is not considered enabled until the worker\n // signals back the successful activation event.\n isMockingEnabled: false,\n startOptions: null,\n worker: null,\n getRequestHandlers: () => {\n return this.handlersController.currentHandlers();\n },\n registration: null,\n requests: /* @__PURE__ */ new Map(),\n emitter: this.emitter,\n workerChannel: {\n on: (eventType, callback) => {\n this.context.events.addListener(navigator.serviceWorker, \"message\", (event) => {\n if (event.source !== this.context.worker) {\n return;\n }\n const message = event.data;\n if (!message) {\n return;\n }\n if (message.type === eventType) {\n callback(event, message);\n }\n });\n },\n send: (type) => {\n this.context.worker?.postMessage(type);\n }\n },\n events: {\n addListener: (target, eventType, callback) => {\n target.addEventListener(eventType, callback);\n this.listeners.push({\n eventType,\n target,\n callback\n });\n return () => {\n target.removeEventListener(eventType, callback);\n };\n },\n removeAllListeners: () => {\n for (const { target, eventType, callback } of this.listeners) {\n target.removeEventListener(eventType, callback);\n }\n this.listeners = [];\n },\n once: (eventType) => {\n const bindings = [];\n return new Promise((resolve, reject) => {\n const handleIncomingMessage = (event) => {\n try {\n const message = event.data;\n if (message.type === eventType) {\n resolve(message);\n }\n } catch (error2) {\n reject(error2);\n }\n };\n bindings.push(\n this.context.events.addListener(\n navigator.serviceWorker,\n \"message\",\n handleIncomingMessage\n ),\n this.context.events.addListener(\n navigator.serviceWorker,\n \"messageerror\",\n reject\n )\n );\n }).finally(() => {\n bindings.forEach((unbind) => unbind());\n });\n }\n },\n supports: {\n serviceWorkerApi: !(\"serviceWorker\" in navigator) || location.protocol === \"file:\",\n readableStreamTransfer: supportsReadableStreamTransfer()\n }\n };\n this.startHandler = context.supports.serviceWorkerApi ? createFallbackStart(context) : createStartHandler(context);\n this.stopHandler = context.supports.serviceWorkerApi ? createFallbackStop(context) : createStop(context);\n return context;\n }\n async start(options = {}) {\n if (options.waitUntilReady === true) {\n devUtils10.warn(\n 'The \"waitUntilReady\" option has been deprecated. Please remove it from this \"worker.start()\" call. Follow the recommended Browser integration (https://mswjs.io/docs/integrations/browser) to eliminate any race conditions between the Service Worker registration and any requests made by your application on initial render.'\n );\n }\n this.context.startOptions = mergeRight2(\n DEFAULT_START_OPTIONS,\n options\n );\n return await this.startHandler(this.context.startOptions, options);\n }\n stop() {\n super.dispose();\n this.context.events.removeAllListeners();\n this.context.emitter.removeAllListeners();\n this.stopHandler();\n }\n};\nfunction setupWorker(...handlers) {\n return new SetupWorkerApi(...handlers);\n}\nexport {\n SetupWorkerApi,\n setupWorker\n};\n","import { invariant } from \"outvariant\";\nimport { devUtils } from './devUtils.mjs';\nfunction checkGlobals() {\n invariant(\n typeof URL !== \"undefined\",\n devUtils.formatMessage(\n `Global \"URL\" class is not defined. This likely means that you're running MSW in an environment that doesn't support all Node.js standard API (e.g. React Native). If that's the case, please use an appropriate polyfill for the \"URL\" class, like \"react-native-url-polyfill\".`\n )\n );\n}\nexport {\n checkGlobals\n};\n","function isStringEqual(actual, expected) {\n return actual.toLowerCase() === expected.toLowerCase();\n}\nexport {\n isStringEqual\n};\n","var StatusCodeColor = /* @__PURE__ */ ((StatusCodeColor2) => {\n StatusCodeColor2[\"Success\"] = \"#69AB32\";\n StatusCodeColor2[\"Warning\"] = \"#F0BB4B\";\n StatusCodeColor2[\"Danger\"] = \"#E95F5D\";\n return StatusCodeColor2;\n})(StatusCodeColor || {});\nfunction getStatusCodeColor(status) {\n if (status < 300) {\n return \"#69AB32\" /* Success */;\n }\n if (status < 400) {\n return \"#F0BB4B\" /* Warning */;\n }\n return \"#E95F5D\" /* Danger */;\n}\nexport {\n StatusCodeColor,\n getStatusCodeColor\n};\n","function getTimestamp() {\n const now = /* @__PURE__ */ new Date();\n return [now.getHours(), now.getMinutes(), now.getSeconds()].map(String).map((chunk) => chunk.slice(0, 2)).map((chunk) => chunk.padStart(2, \"0\")).join(\":\");\n}\nexport {\n getTimestamp\n};\n","async function serializeRequest(request) {\n const requestClone = request.clone();\n const requestText = await requestClone.text();\n return {\n url: new URL(request.url),\n method: request.method,\n headers: Object.fromEntries(request.headers.entries()),\n body: requestText\n };\n}\nexport {\n serializeRequest\n};\n","var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __commonJS = (cb, mod) => function __require() {\n return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\n\n// node_modules/statuses/codes.json\nvar require_codes = __commonJS({\n \"node_modules/statuses/codes.json\"(exports, module) {\n module.exports = {\n \"100\": \"Continue\",\n \"101\": \"Switching Protocols\",\n \"102\": \"Processing\",\n \"103\": \"Early Hints\",\n \"200\": \"OK\",\n \"201\": \"Created\",\n \"202\": \"Accepted\",\n \"203\": \"Non-Authoritative Information\",\n \"204\": \"No Content\",\n \"205\": \"Reset Content\",\n \"206\": \"Partial Content\",\n \"207\": \"Multi-Status\",\n \"208\": \"Already Reported\",\n \"226\": \"IM Used\",\n \"300\": \"Multiple Choices\",\n \"301\": \"Moved Permanently\",\n \"302\": \"Found\",\n \"303\": \"See Other\",\n \"304\": \"Not Modified\",\n \"305\": \"Use Proxy\",\n \"307\": \"Temporary Redirect\",\n \"308\": \"Permanent Redirect\",\n \"400\": \"Bad Request\",\n \"401\": \"Unauthorized\",\n \"402\": \"Payment Required\",\n \"403\": \"Forbidden\",\n \"404\": \"Not Found\",\n \"405\": \"Method Not Allowed\",\n \"406\": \"Not Acceptable\",\n \"407\": \"Proxy Authentication Required\",\n \"408\": \"Request Timeout\",\n \"409\": \"Conflict\",\n \"410\": \"Gone\",\n \"411\": \"Length Required\",\n \"412\": \"Precondition Failed\",\n \"413\": \"Payload Too Large\",\n \"414\": \"URI Too Long\",\n \"415\": \"Unsupported Media Type\",\n \"416\": \"Range Not Satisfiable\",\n \"417\": \"Expectation Failed\",\n \"418\": \"I'm a Teapot\",\n \"421\": \"Misdirected Request\",\n \"422\": \"Unprocessable Entity\",\n \"423\": \"Locked\",\n \"424\": \"Failed Dependency\",\n \"425\": \"Too Early\",\n \"426\": \"Upgrade Required\",\n \"428\": \"Precondition Required\",\n \"429\": \"Too Many Requests\",\n \"431\": \"Request Header Fields Too Large\",\n \"451\": \"Unavailable For Legal Reasons\",\n \"500\": \"Internal Server Error\",\n \"501\": \"Not Implemented\",\n \"502\": \"Bad Gateway\",\n \"503\": \"Service Unavailable\",\n \"504\": \"Gateway Timeout\",\n \"505\": \"HTTP Version Not Supported\",\n \"506\": \"Variant Also Negotiates\",\n \"507\": \"Insufficient Storage\",\n \"508\": \"Loop Detected\",\n \"509\": \"Bandwidth Limit Exceeded\",\n \"510\": \"Not Extended\",\n \"511\": \"Network Authentication Required\"\n };\n }\n});\n\n// node_modules/statuses/index.js\nvar require_statuses = __commonJS({\n \"node_modules/statuses/index.js\"(exports, module) {\n \"use strict\";\n var codes = require_codes();\n module.exports = status2;\n status2.message = codes;\n status2.code = createMessageToStatusCodeMap(codes);\n status2.codes = createStatusCodeList(codes);\n status2.redirect = {\n 300: true,\n 301: true,\n 302: true,\n 303: true,\n 305: true,\n 307: true,\n 308: true\n };\n status2.empty = {\n 204: true,\n 205: true,\n 304: true\n };\n status2.retry = {\n 502: true,\n 503: true,\n 504: true\n };\n function createMessageToStatusCodeMap(codes2) {\n var map = {};\n Object.keys(codes2).forEach(function forEachCode(code) {\n var message = codes2[code];\n var status3 = Number(code);\n map[message.toLowerCase()] = status3;\n });\n return map;\n }\n function createStatusCodeList(codes2) {\n return Object.keys(codes2).map(function mapCode(code) {\n return Number(code);\n });\n }\n function getStatusCode(message) {\n var msg = message.toLowerCase();\n if (!Object.prototype.hasOwnProperty.call(status2.code, msg)) {\n throw new Error('invalid status message: \"' + message + '\"');\n }\n return status2.code[msg];\n }\n function getStatusMessage(code) {\n if (!Object.prototype.hasOwnProperty.call(status2.message, code)) {\n throw new Error(\"invalid status code: \" + code);\n }\n return status2.message[code];\n }\n function status2(code) {\n if (typeof code === \"number\") {\n return getStatusMessage(code);\n }\n if (typeof code !== \"string\") {\n throw new TypeError(\"code must be a number or string\");\n }\n var n = parseInt(code, 10);\n if (!isNaN(n)) {\n return getStatusMessage(n);\n }\n return getStatusCode(code);\n }\n }\n});\n\n// source.js\nvar import_statuses = __toESM(require_statuses(), 1);\nvar source_default = import_statuses.default;\nexport {\n source_default as default\n};\n/*! Bundled license information:\n\nstatuses/index.js:\n (*!\n * statuses\n * Copyright(c) 2014 Jonathan Ong\n * Copyright(c) 2016 Douglas Christopher Wilson\n * MIT Licensed\n *)\n*/\n","import statuses from \"@bundled-es-modules/statuses\";\nconst { message } = statuses;\nasync function serializeResponse(response) {\n const responseClone = response.clone();\n const responseText = await responseClone.text();\n const responseStatus = responseClone.status || 200;\n const responseStatusText = responseClone.statusText || message[responseStatus] || \"OK\";\n return {\n status: responseStatus,\n statusText: responseStatusText,\n headers: Object.fromEntries(responseClone.headers.entries()),\n body: responseText\n };\n}\nexport {\n serializeResponse\n};\n","/**\n * Tokenize input string.\n */\nfunction lexer(str) {\n var tokens = [];\n var i = 0;\n while (i < str.length) {\n var char = str[i];\n if (char === \"*\" || char === \"+\" || char === \"?\") {\n tokens.push({ type: \"MODIFIER\", index: i, value: str[i++] });\n continue;\n }\n if (char === \"\\\\\") {\n tokens.push({ type: \"ESCAPED_CHAR\", index: i++, value: str[i++] });\n continue;\n }\n if (char === \"{\") {\n tokens.push({ type: \"OPEN\", index: i, value: str[i++] });\n continue;\n }\n if (char === \"}\") {\n tokens.push({ type: \"CLOSE\", index: i, value: str[i++] });\n continue;\n }\n if (char === \":\") {\n var name = \"\";\n var j = i + 1;\n while (j < str.length) {\n var code = str.charCodeAt(j);\n if (\n // `0-9`\n (code >= 48 && code <= 57) ||\n // `A-Z`\n (code >= 65 && code <= 90) ||\n // `a-z`\n (code >= 97 && code <= 122) ||\n // `_`\n code === 95) {\n name += str[j++];\n continue;\n }\n break;\n }\n if (!name)\n throw new TypeError(\"Missing parameter name at \".concat(i));\n tokens.push({ type: \"NAME\", index: i, value: name });\n i = j;\n continue;\n }\n if (char === \"(\") {\n var count = 1;\n var pattern = \"\";\n var j = i + 1;\n if (str[j] === \"?\") {\n throw new TypeError(\"Pattern cannot start with \\\"?\\\" at \".concat(j));\n }\n while (j < str.length) {\n if (str[j] === \"\\\\\") {\n pattern += str[j++] + str[j++];\n continue;\n }\n if (str[j] === \")\") {\n count--;\n if (count === 0) {\n j++;\n break;\n }\n }\n else if (str[j] === \"(\") {\n count++;\n if (str[j + 1] !== \"?\") {\n throw new TypeError(\"Capturing groups are not allowed at \".concat(j));\n }\n }\n pattern += str[j++];\n }\n if (count)\n throw new TypeError(\"Unbalanced pattern at \".concat(i));\n if (!pattern)\n throw new TypeError(\"Missing pattern at \".concat(i));\n tokens.push({ type: \"PATTERN\", index: i, value: pattern });\n i = j;\n continue;\n }\n tokens.push({ type: \"CHAR\", index: i, value: str[i++] });\n }\n tokens.push({ type: \"END\", index: i, value: \"\" });\n return tokens;\n}\n/**\n * Parse a string for the raw tokens.\n */\nexport function parse(str, options) {\n if (options === void 0) { options = {}; }\n var tokens = lexer(str);\n var _a = options.prefixes, prefixes = _a === void 0 ? \"./\" : _a;\n var defaultPattern = \"[^\".concat(escapeString(options.delimiter || \"/#?\"), \"]+?\");\n var result = [];\n var key = 0;\n var i = 0;\n var path = \"\";\n var tryConsume = function (type) {\n if (i < tokens.length && tokens[i].type === type)\n return tokens[i++].value;\n };\n var mustConsume = function (type) {\n var value = tryConsume(type);\n if (value !== undefined)\n return value;\n var _a = tokens[i], nextType = _a.type, index = _a.index;\n throw new TypeError(\"Unexpected \".concat(nextType, \" at \").concat(index, \", expected \").concat(type));\n };\n var consumeText = function () {\n var result = \"\";\n var value;\n while ((value = tryConsume(\"CHAR\") || tryConsume(\"ESCAPED_CHAR\"))) {\n result += value;\n }\n return result;\n };\n while (i < tokens.length) {\n var char = tryConsume(\"CHAR\");\n var name = tryConsume(\"NAME\");\n var pattern = tryConsume(\"PATTERN\");\n if (name || pattern) {\n var prefix = char || \"\";\n if (prefixes.indexOf(prefix) === -1) {\n path += prefix;\n prefix = \"\";\n }\n if (path) {\n result.push(path);\n path = \"\";\n }\n result.push({\n name: name || key++,\n prefix: prefix,\n suffix: \"\",\n pattern: pattern || defaultPattern,\n modifier: tryConsume(\"MODIFIER\") || \"\",\n });\n continue;\n }\n var value = char || tryConsume(\"ESCAPED_CHAR\");\n if (value) {\n path += value;\n continue;\n }\n if (path) {\n result.push(path);\n path = \"\";\n }\n var open = tryConsume(\"OPEN\");\n if (open) {\n var prefix = consumeText();\n var name_1 = tryConsume(\"NAME\") || \"\";\n var pattern_1 = tryConsume(\"PATTERN\") || \"\";\n var suffix = consumeText();\n mustConsume(\"CLOSE\");\n result.push({\n name: name_1 || (pattern_1 ? key++ : \"\"),\n pattern: name_1 && !pattern_1 ? defaultPattern : pattern_1,\n prefix: prefix,\n suffix: suffix,\n modifier: tryConsume(\"MODIFIER\") || \"\",\n });\n continue;\n }\n mustConsume(\"END\");\n }\n return result;\n}\n/**\n * Compile a string to a template function for the path.\n */\nexport function compile(str, options) {\n return tokensToFunction(parse(str, options), options);\n}\n/**\n * Expose a method for transforming tokens into the path function.\n */\nexport function tokensToFunction(tokens, options) {\n if (options === void 0) { options = {}; }\n var reFlags = flags(options);\n var _a = options.encode, encode = _a === void 0 ? function (x) { return x; } : _a, _b = options.validate, validate = _b === void 0 ? true : _b;\n // Compile all the tokens into regexps.\n var matches = tokens.map(function (token) {\n if (typeof token === \"object\") {\n return new RegExp(\"^(?:\".concat(token.pattern, \")$\"), reFlags);\n }\n });\n return function (data) {\n var path = \"\";\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n if (typeof token === \"string\") {\n path += token;\n continue;\n }\n var value = data ? data[token.name] : undefined;\n var optional = token.modifier === \"?\" || token.modifier === \"*\";\n var repeat = token.modifier === \"*\" || token.modifier === \"+\";\n if (Array.isArray(value)) {\n if (!repeat) {\n throw new TypeError(\"Expected \\\"\".concat(token.name, \"\\\" to not repeat, but got an array\"));\n }\n if (value.length === 0) {\n if (optional)\n continue;\n throw new TypeError(\"Expected \\\"\".concat(token.name, \"\\\" to not be empty\"));\n }\n for (var j = 0; j < value.length; j++) {\n var segment = encode(value[j], token);\n if (validate && !matches[i].test(segment)) {\n throw new TypeError(\"Expected all \\\"\".concat(token.name, \"\\\" to match \\\"\").concat(token.pattern, \"\\\", but got \\\"\").concat(segment, \"\\\"\"));\n }\n path += token.prefix + segment + token.suffix;\n }\n continue;\n }\n if (typeof value === \"string\" || typeof value === \"number\") {\n var segment = encode(String(value), token);\n if (validate && !matches[i].test(segment)) {\n throw new TypeError(\"Expected \\\"\".concat(token.name, \"\\\" to match \\\"\").concat(token.pattern, \"\\\", but got \\\"\").concat(segment, \"\\\"\"));\n }\n path += token.prefix + segment + token.suffix;\n continue;\n }\n if (optional)\n continue;\n var typeOfMessage = repeat ? \"an array\" : \"a string\";\n throw new TypeError(\"Expected \\\"\".concat(token.name, \"\\\" to be \").concat(typeOfMessage));\n }\n return path;\n };\n}\n/**\n * Create path match function from `path-to-regexp` spec.\n */\nexport function match(str, options) {\n var keys = [];\n var re = pathToRegexp(str, keys, options);\n return regexpToFunction(re, keys, options);\n}\n/**\n * Create a path match function from `path-to-regexp` output.\n */\nexport function regexpToFunction(re, keys, options) {\n if (options === void 0) { options = {}; }\n var _a = options.decode, decode = _a === void 0 ? function (x) { return x; } : _a;\n return function (pathname) {\n var m = re.exec(pathname);\n if (!m)\n return false;\n var path = m[0], index = m.index;\n var params = Object.create(null);\n var _loop_1 = function (i) {\n if (m[i] === undefined)\n return \"continue\";\n var key = keys[i - 1];\n if (key.modifier === \"*\" || key.modifier === \"+\") {\n params[key.name] = m[i].split(key.prefix + key.suffix).map(function (value) {\n return decode(value, key);\n });\n }\n else {\n params[key.name] = decode(m[i], key);\n }\n };\n for (var i = 1; i < m.length; i++) {\n _loop_1(i);\n }\n return { path: path, index: index, params: params };\n };\n}\n/**\n * Escape a regular expression string.\n */\nfunction escapeString(str) {\n return str.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, \"\\\\$1\");\n}\n/**\n * Get the flags for a regexp from the options.\n */\nfunction flags(options) {\n return options && options.sensitive ? \"\" : \"i\";\n}\n/**\n * Pull out keys from a regexp.\n */\nfunction regexpToRegexp(path, keys) {\n if (!keys)\n return path;\n var groupsRegex = /\\((?:\\?<(.*?)>)?(?!\\?)/g;\n var index = 0;\n var execResult = groupsRegex.exec(path.source);\n while (execResult) {\n keys.push({\n // Use parenthesized substring match if available, index otherwise\n name: execResult[1] || index++,\n prefix: \"\",\n suffix: \"\",\n modifier: \"\",\n pattern: \"\",\n });\n execResult = groupsRegex.exec(path.source);\n }\n return path;\n}\n/**\n * Transform an array into a regexp.\n */\nfunction arrayToRegexp(paths, keys, options) {\n var parts = paths.map(function (path) { return pathToRegexp(path, keys, options).source; });\n return new RegExp(\"(?:\".concat(parts.join(\"|\"), \")\"), flags(options));\n}\n/**\n * Create a path regexp from string input.\n */\nfunction stringToRegexp(path, keys, options) {\n return tokensToRegexp(parse(path, options), keys, options);\n}\n/**\n * Expose a function for taking tokens and returning a RegExp.\n */\nexport function tokensToRegexp(tokens, keys, options) {\n if (options === void 0) { options = {}; }\n var _a = options.strict, strict = _a === void 0 ? false : _a, _b = options.start, start = _b === void 0 ? true : _b, _c = options.end, end = _c === void 0 ? true : _c, _d = options.encode, encode = _d === void 0 ? function (x) { return x; } : _d, _e = options.delimiter, delimiter = _e === void 0 ? \"/#?\" : _e, _f = options.endsWith, endsWith = _f === void 0 ? \"\" : _f;\n var endsWithRe = \"[\".concat(escapeString(endsWith), \"]|$\");\n var delimiterRe = \"[\".concat(escapeString(delimiter), \"]\");\n var route = start ? \"^\" : \"\";\n // Iterate over the tokens and create our regexp string.\n for (var _i = 0, tokens_1 = tokens; _i < tokens_1.length; _i++) {\n var token = tokens_1[_i];\n if (typeof token === \"string\") {\n route += escapeString(encode(token));\n }\n else {\n var prefix = escapeString(encode(token.prefix));\n var suffix = escapeString(encode(token.suffix));\n if (token.pattern) {\n if (keys)\n keys.push(token);\n if (prefix || suffix) {\n if (token.modifier === \"+\" || token.modifier === \"*\") {\n var mod = token.modifier === \"*\" ? \"?\" : \"\";\n route += \"(?:\".concat(prefix, \"((?:\").concat(token.pattern, \")(?:\").concat(suffix).concat(prefix, \"(?:\").concat(token.pattern, \"))*)\").concat(suffix, \")\").concat(mod);\n }\n else {\n route += \"(?:\".concat(prefix, \"(\").concat(token.pattern, \")\").concat(suffix, \")\").concat(token.modifier);\n }\n }\n else {\n if (token.modifier === \"+\" || token.modifier === \"*\") {\n route += \"((?:\".concat(token.pattern, \")\").concat(token.modifier, \")\");\n }\n else {\n route += \"(\".concat(token.pattern, \")\").concat(token.modifier);\n }\n }\n }\n else {\n route += \"(?:\".concat(prefix).concat(suffix, \")\").concat(token.modifier);\n }\n }\n }\n if (end) {\n if (!strict)\n route += \"\".concat(delimiterRe, \"?\");\n route += !options.endsWith ? \"$\" : \"(?=\".concat(endsWithRe, \")\");\n }\n else {\n var endToken = tokens[tokens.length - 1];\n var isEndDelimited = typeof endToken === \"string\"\n ? delimiterRe.indexOf(endToken[endToken.length - 1]) > -1\n : endToken === undefined;\n if (!strict) {\n route += \"(?:\".concat(delimiterRe, \"(?=\").concat(endsWithRe, \"))?\");\n }\n if (!isEndDelimited) {\n route += \"(?=\".concat(delimiterRe, \"|\").concat(endsWithRe, \")\");\n }\n }\n return new RegExp(route, flags(options));\n}\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n */\nexport function pathToRegexp(path, keys, options) {\n if (path instanceof RegExp)\n return regexpToRegexp(path, keys);\n if (Array.isArray(path))\n return arrayToRegexp(path, keys, options);\n return stringToRegexp(path, keys, options);\n}\n","// src/utils/bufferUtils.ts\nvar encoder = new TextEncoder();\nfunction encodeBuffer(text) {\n return encoder.encode(text);\n}\nfunction decodeBuffer(buffer, encoding) {\n const decoder = new TextDecoder(encoding);\n return decoder.decode(buffer);\n}\nfunction toArrayBuffer(array) {\n return array.buffer.slice(\n array.byteOffset,\n array.byteOffset + array.byteLength\n );\n}\n\n// src/utils/responseUtils.ts\nvar RESPONSE_STATUS_CODES_WITHOUT_BODY = /* @__PURE__ */ new Set([\n 101,\n 103,\n 204,\n 205,\n 304\n]);\nfunction isResponseWithoutBody(status) {\n return RESPONSE_STATUS_CODES_WITHOUT_BODY.has(status);\n}\n\nexport {\n encodeBuffer,\n decodeBuffer,\n toArrayBuffer,\n isResponseWithoutBody\n};\n","// src/index.ts\nfunction isNodeProcess() {\n if (typeof navigator !== \"undefined\" && navigator.product === \"ReactNative\") {\n return true;\n }\n if (typeof process !== \"undefined\") {\n const type = process.type;\n if (type === \"renderer\" || type === \"worker\") {\n return false;\n }\n return !!(process.versions && process.versions.node);\n }\n return false;\n}\nexport {\n isNodeProcess\n};\n","var __defProp = Object.defineProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\n\n// src/index.ts\nimport { isNodeProcess } from \"is-node-process\";\nimport { format } from \"outvariant\";\n\n// src/colors.ts\nvar colors_exports = {};\n__export(colors_exports, {\n blue: () => blue,\n gray: () => gray,\n green: () => green,\n red: () => red,\n yellow: () => yellow\n});\nfunction yellow(text) {\n return `\\x1B[33m${text}\\x1B[0m`;\n}\nfunction blue(text) {\n return `\\x1B[34m${text}\\x1B[0m`;\n}\nfunction gray(text) {\n return `\\x1B[90m${text}\\x1B[0m`;\n}\nfunction red(text) {\n return `\\x1B[31m${text}\\x1B[0m`;\n}\nfunction green(text) {\n return `\\x1B[32m${text}\\x1B[0m`;\n}\n\n// src/index.ts\nvar IS_NODE = isNodeProcess();\nvar Logger = class {\n constructor(name) {\n this.name = name;\n this.prefix = `[${this.name}]`;\n const LOGGER_NAME = getVariable(\"DEBUG\");\n const LOGGER_LEVEL = getVariable(\"LOG_LEVEL\");\n const isLoggingEnabled = LOGGER_NAME === \"1\" || LOGGER_NAME === \"true\" || typeof LOGGER_NAME !== \"undefined\" && this.name.startsWith(LOGGER_NAME);\n if (isLoggingEnabled) {\n this.debug = isDefinedAndNotEquals(LOGGER_LEVEL, \"debug\") ? noop : this.debug;\n this.info = isDefinedAndNotEquals(LOGGER_LEVEL, \"info\") ? noop : this.info;\n this.success = isDefinedAndNotEquals(LOGGER_LEVEL, \"success\") ? noop : this.success;\n this.warning = isDefinedAndNotEquals(LOGGER_LEVEL, \"warning\") ? noop : this.warning;\n this.error = isDefinedAndNotEquals(LOGGER_LEVEL, \"error\") ? noop : this.error;\n } else {\n this.info = noop;\n this.success = noop;\n this.warning = noop;\n this.error = noop;\n this.only = noop;\n }\n }\n prefix;\n extend(domain) {\n return new Logger(`${this.name}:${domain}`);\n }\n /**\n * Print a debug message.\n * @example\n * logger.debug('no duplicates found, creating a document...')\n */\n debug(message, ...positionals) {\n this.logEntry({\n level: \"debug\",\n message: gray(message),\n positionals,\n prefix: this.prefix,\n colors: {\n prefix: \"gray\"\n }\n });\n }\n /**\n * Print an info message.\n * @example\n * logger.info('start parsing...')\n */\n info(message, ...positionals) {\n this.logEntry({\n level: \"info\",\n message,\n positionals,\n prefix: this.prefix,\n colors: {\n prefix: \"blue\"\n }\n });\n const performance2 = new PerformanceEntry();\n return (message2, ...positionals2) => {\n performance2.measure();\n this.logEntry({\n level: \"info\",\n message: `${message2} ${gray(`${performance2.deltaTime}ms`)}`,\n positionals: positionals2,\n prefix: this.prefix,\n colors: {\n prefix: \"blue\"\n }\n });\n };\n }\n /**\n * Print a success message.\n * @example\n * logger.success('successfully created document')\n */\n success(message, ...positionals) {\n this.logEntry({\n level: \"info\",\n message,\n positionals,\n prefix: `\\u2714 ${this.prefix}`,\n colors: {\n timestamp: \"green\",\n prefix: \"green\"\n }\n });\n }\n /**\n * Print a warning.\n * @example\n * logger.warning('found legacy document format')\n */\n warning(message, ...positionals) {\n this.logEntry({\n level: \"warning\",\n message,\n positionals,\n prefix: `\\u26A0 ${this.prefix}`,\n colors: {\n timestamp: \"yellow\",\n prefix: \"yellow\"\n }\n });\n }\n /**\n * Print an error message.\n * @example\n * logger.error('something went wrong')\n */\n error(message, ...positionals) {\n this.logEntry({\n level: \"error\",\n message,\n positionals,\n prefix: `\\u2716 ${this.prefix}`,\n colors: {\n timestamp: \"red\",\n prefix: \"red\"\n }\n });\n }\n /**\n * Execute the given callback only when the logging is enabled.\n * This is skipped in its entirety and has no runtime cost otherwise.\n * This executes regardless of the log level.\n * @example\n * logger.only(() => {\n * logger.info('additional info')\n * })\n */\n only(callback) {\n callback();\n }\n createEntry(level, message) {\n return {\n timestamp: /* @__PURE__ */ new Date(),\n level,\n message\n };\n }\n logEntry(args) {\n const {\n level,\n message,\n prefix,\n colors: customColors,\n positionals = []\n } = args;\n const entry = this.createEntry(level, message);\n const timestampColor = customColors?.timestamp || \"gray\";\n const prefixColor = customColors?.prefix || \"gray\";\n const colorize = {\n timestamp: colors_exports[timestampColor],\n prefix: colors_exports[prefixColor]\n };\n const write = this.getWriter(level);\n write(\n [colorize.timestamp(this.formatTimestamp(entry.timestamp))].concat(prefix != null ? colorize.prefix(prefix) : []).concat(serializeInput(message)).join(\" \"),\n ...positionals.map(serializeInput)\n );\n }\n formatTimestamp(timestamp) {\n return `${timestamp.toLocaleTimeString(\n \"en-GB\"\n )}:${timestamp.getMilliseconds()}`;\n }\n getWriter(level) {\n switch (level) {\n case \"debug\":\n case \"success\":\n case \"info\": {\n return log;\n }\n case \"warning\": {\n return warn;\n }\n case \"error\": {\n return error;\n }\n }\n }\n};\nvar PerformanceEntry = class {\n startTime;\n endTime;\n deltaTime;\n constructor() {\n this.startTime = performance.now();\n }\n measure() {\n this.endTime = performance.now();\n const deltaTime = this.endTime - this.startTime;\n this.deltaTime = deltaTime.toFixed(2);\n }\n};\nvar noop = () => void 0;\nfunction log(message, ...positionals) {\n if (IS_NODE) {\n process.stdout.write(format(message, ...positionals) + \"\\n\");\n return;\n }\n console.log(message, ...positionals);\n}\nfunction warn(message, ...positionals) {\n if (IS_NODE) {\n process.stderr.write(format(message, ...positionals) + \"\\n\");\n return;\n }\n console.warn(message, ...positionals);\n}\nfunction error(message, ...positionals) {\n if (IS_NODE) {\n process.stderr.write(format(message, ...positionals) + \"\\n\");\n return;\n }\n console.error(message, ...positionals);\n}\nfunction getVariable(variableName) {\n if (IS_NODE) {\n return process.env[variableName];\n }\n return globalThis[variableName]?.toString();\n}\nfunction isDefinedAndNotEquals(value, expected) {\n return value !== void 0 && value !== expected;\n}\nfunction serializeInput(message) {\n if (typeof message === \"undefined\") {\n return \"undefined\";\n }\n if (message === null) {\n return \"null\";\n }\n if (typeof message === \"string\") {\n return message;\n }\n if (typeof message === \"object\") {\n return JSON.stringify(message);\n }\n return message.toString();\n}\nexport {\n Logger\n};\n","// src/glossary.ts\nvar IS_PATCHED_MODULE = Symbol(\"isPatchedModule\");\n\n// src/Interceptor.ts\nimport { Logger } from \"@open-draft/logger\";\nimport { Emitter } from \"strict-event-emitter\";\nfunction getGlobalSymbol(symbol) {\n return (\n // @ts-ignore https://github.com/Microsoft/TypeScript/issues/24587\n globalThis[symbol] || void 0\n );\n}\nfunction setGlobalSymbol(symbol, value) {\n globalThis[symbol] = value;\n}\nfunction deleteGlobalSymbol(symbol) {\n delete globalThis[symbol];\n}\nvar InterceptorReadyState = /* @__PURE__ */ ((InterceptorReadyState2) => {\n InterceptorReadyState2[\"INACTIVE\"] = \"INACTIVE\";\n InterceptorReadyState2[\"APPLYING\"] = \"APPLYING\";\n InterceptorReadyState2[\"APPLIED\"] = \"APPLIED\";\n InterceptorReadyState2[\"DISPOSING\"] = \"DISPOSING\";\n InterceptorReadyState2[\"DISPOSED\"] = \"DISPOSED\";\n return InterceptorReadyState2;\n})(InterceptorReadyState || {});\nvar Interceptor = class {\n constructor(symbol) {\n this.symbol = symbol;\n this.readyState = \"INACTIVE\" /* INACTIVE */;\n this.emitter = new Emitter();\n this.subscriptions = [];\n this.logger = new Logger(symbol.description);\n this.emitter.setMaxListeners(0);\n this.logger.info(\"constructing the interceptor...\");\n }\n /**\n * Determine if this interceptor can be applied\n * in the current environment.\n */\n checkEnvironment() {\n return true;\n }\n /**\n * Apply this interceptor to the current process.\n * Returns an already running interceptor instance if it's present.\n */\n apply() {\n const logger = this.logger.extend(\"apply\");\n logger.info(\"applying the interceptor...\");\n if (this.readyState === \"APPLIED\" /* APPLIED */) {\n logger.info(\"intercepted already applied!\");\n return;\n }\n const shouldApply = this.checkEnvironment();\n if (!shouldApply) {\n logger.info(\"the interceptor cannot be applied in this environment!\");\n return;\n }\n this.readyState = \"APPLYING\" /* APPLYING */;\n const runningInstance = this.getInstance();\n if (runningInstance) {\n logger.info(\"found a running instance, reusing...\");\n this.on = (event, listener) => {\n logger.info('proxying the \"%s\" listener', event);\n runningInstance.emitter.addListener(event, listener);\n this.subscriptions.push(() => {\n runningInstance.emitter.removeListener(event, listener);\n logger.info('removed proxied \"%s\" listener!', event);\n });\n return this;\n };\n this.readyState = \"APPLIED\" /* APPLIED */;\n return;\n }\n logger.info(\"no running instance found, setting up a new instance...\");\n this.setup();\n this.setInstance();\n this.readyState = \"APPLIED\" /* APPLIED */;\n }\n /**\n * Setup the module augments and stubs necessary for this interceptor.\n * This method is not run if there's a running interceptor instance\n * to prevent instantiating an interceptor multiple times.\n */\n setup() {\n }\n /**\n * Listen to the interceptor's public events.\n */\n on(event, listener) {\n const logger = this.logger.extend(\"on\");\n if (this.readyState === \"DISPOSING\" /* DISPOSING */ || this.readyState === \"DISPOSED\" /* DISPOSED */) {\n logger.info(\"cannot listen to events, already disposed!\");\n return this;\n }\n logger.info('adding \"%s\" event listener:', event, listener);\n this.emitter.on(event, listener);\n return this;\n }\n once(event, listener) {\n this.emitter.once(event, listener);\n return this;\n }\n off(event, listener) {\n this.emitter.off(event, listener);\n return this;\n }\n removeAllListeners(event) {\n this.emitter.removeAllListeners(event);\n return this;\n }\n /**\n * Disposes of any side-effects this interceptor has introduced.\n */\n dispose() {\n const logger = this.logger.extend(\"dispose\");\n if (this.readyState === \"DISPOSED\" /* DISPOSED */) {\n logger.info(\"cannot dispose, already disposed!\");\n return;\n }\n logger.info(\"disposing the interceptor...\");\n this.readyState = \"DISPOSING\" /* DISPOSING */;\n if (!this.getInstance()) {\n logger.info(\"no interceptors running, skipping dispose...\");\n return;\n }\n this.clearInstance();\n logger.info(\"global symbol deleted:\", getGlobalSymbol(this.symbol));\n if (this.subscriptions.length > 0) {\n logger.info(\"disposing of %d subscriptions...\", this.subscriptions.length);\n for (const dispose of this.subscriptions) {\n dispose();\n }\n this.subscriptions = [];\n logger.info(\"disposed of all subscriptions!\", this.subscriptions.length);\n }\n this.emitter.removeAllListeners();\n logger.info(\"destroyed the listener!\");\n this.readyState = \"DISPOSED\" /* DISPOSED */;\n }\n getInstance() {\n var _a;\n const instance = getGlobalSymbol(this.symbol);\n this.logger.info(\"retrieved global instance:\", (_a = instance == null ? void 0 : instance.constructor) == null ? void 0 : _a.name);\n return instance;\n }\n setInstance() {\n setGlobalSymbol(this.symbol, this);\n this.logger.info(\"set global instance!\", this.symbol.description);\n }\n clearInstance() {\n deleteGlobalSymbol(this.symbol);\n this.logger.info(\"cleared global instance!\", this.symbol.description);\n }\n};\n\nexport {\n IS_PATCHED_MODULE,\n getGlobalSymbol,\n deleteGlobalSymbol,\n InterceptorReadyState,\n Interceptor\n};\n","import {\n decodeBuffer,\n encodeBuffer,\n isResponseWithoutBody\n} from \"./chunk-UJZOJSMP.mjs\";\nimport {\n IS_PATCHED_MODULE,\n Interceptor,\n InterceptorReadyState,\n deleteGlobalSymbol,\n getGlobalSymbol\n} from \"./chunk-WZQN3FMY.mjs\";\n\n// src/BatchInterceptor.ts\nvar BatchInterceptor = class extends Interceptor {\n constructor(options) {\n BatchInterceptor.symbol = Symbol(options.name);\n super(BatchInterceptor.symbol);\n this.interceptors = options.interceptors;\n }\n setup() {\n const logger = this.logger.extend(\"setup\");\n logger.info(\"applying all %d interceptors...\", this.interceptors.length);\n for (const interceptor of this.interceptors) {\n logger.info('applying \"%s\" interceptor...', interceptor.constructor.name);\n interceptor.apply();\n logger.info(\"adding interceptor dispose subscription\");\n this.subscriptions.push(() => interceptor.dispose());\n }\n }\n on(event, listener) {\n for (const interceptor of this.interceptors) {\n interceptor.on(event, listener);\n }\n return this;\n }\n once(event, listener) {\n for (const interceptor of this.interceptors) {\n interceptor.once(event, listener);\n }\n return this;\n }\n off(event, listener) {\n for (const interceptor of this.interceptors) {\n interceptor.off(event, listener);\n }\n return this;\n }\n removeAllListeners(event) {\n for (const interceptors of this.interceptors) {\n interceptors.removeAllListeners(event);\n }\n return this;\n }\n};\n\n// src/utils/getCleanUrl.ts\nfunction getCleanUrl(url, isAbsolute = true) {\n return [isAbsolute && url.origin, url.pathname].filter(Boolean).join(\"\");\n}\nexport {\n BatchInterceptor,\n IS_PATCHED_MODULE,\n Interceptor,\n InterceptorReadyState,\n decodeBuffer,\n deleteGlobalSymbol,\n encodeBuffer,\n getCleanUrl,\n getGlobalSymbol,\n isResponseWithoutBody\n};\n","const REDUNDANT_CHARACTERS_EXP = /[\\?|#].*$/g;\nfunction getSearchParams(path) {\n return new URL(`/${path}`, \"http://localhost\").searchParams;\n}\nfunction cleanUrl(path) {\n return path.replace(REDUNDANT_CHARACTERS_EXP, \"\");\n}\nexport {\n cleanUrl,\n getSearchParams\n};\n","function isAbsoluteUrl(url) {\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n}\nexport {\n isAbsoluteUrl\n};\n","import { isAbsoluteUrl } from './isAbsoluteUrl.mjs';\nfunction getAbsoluteUrl(path, baseUrl) {\n if (isAbsoluteUrl(path)) {\n return path;\n }\n if (path.startsWith(\"*\")) {\n return path;\n }\n const origin = baseUrl || typeof document !== \"undefined\" && document.baseURI;\n return origin ? (\n // Encode and decode the path to preserve escaped characters.\n decodeURI(new URL(encodeURI(path), origin).href)\n ) : path;\n}\nexport {\n getAbsoluteUrl\n};\n","import { cleanUrl } from '../url/cleanUrl.mjs';\nimport { getAbsoluteUrl } from '../url/getAbsoluteUrl.mjs';\nfunction normalizePath(path, baseUrl) {\n if (path instanceof RegExp) {\n return path;\n }\n const maybeAbsoluteUrl = getAbsoluteUrl(path, baseUrl);\n return cleanUrl(maybeAbsoluteUrl);\n}\nexport {\n normalizePath\n};\n","import { match } from \"path-to-regexp\";\nimport { getCleanUrl } from \"@mswjs/interceptors\";\nimport { normalizePath } from './normalizePath.mjs';\nfunction coercePath(path) {\n return path.replace(\n /([:a-zA-Z_-]*)(\\*{1,2})+/g,\n (_, parameterName, wildcard) => {\n const expression = \"(.*)\";\n if (!parameterName) {\n return expression;\n }\n return parameterName.startsWith(\":\") ? `${parameterName}${wildcard}` : `${parameterName}${expression}`;\n }\n ).replace(/([^\\/])(:)(?=\\d+)/, \"$1\\\\$2\").replace(/^([^\\/]+)(:)(?=\\/\\/)/, \"$1\\\\$2\");\n}\nfunction matchRequestUrl(url, path, baseUrl) {\n const normalizedPath = normalizePath(path, baseUrl);\n const cleanPath = typeof normalizedPath === \"string\" ? coercePath(normalizedPath) : normalizedPath;\n const cleanUrl = getCleanUrl(url);\n const result = match(cleanPath, { decode: decodeURIComponent })(cleanUrl);\n const params = result && result.params || {};\n return {\n matches: result !== false,\n params\n };\n}\nexport {\n coercePath,\n matchRequestUrl\n};\n","var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __commonJS = (cb, mod) => function __require() {\n return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\n\n// node_modules/cookie/index.js\nvar require_cookie = __commonJS({\n \"node_modules/cookie/index.js\"(exports) {\n \"use strict\";\n exports.parse = parse;\n exports.serialize = serialize;\n var __toString = Object.prototype.toString;\n var fieldContentRegExp = /^[\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+$/;\n function parse(str, options) {\n if (typeof str !== \"string\") {\n throw new TypeError(\"argument str must be a string\");\n }\n var obj = {};\n var opt = options || {};\n var dec = opt.decode || decode;\n var index = 0;\n while (index < str.length) {\n var eqIdx = str.indexOf(\"=\", index);\n if (eqIdx === -1) {\n break;\n }\n var endIdx = str.indexOf(\";\", index);\n if (endIdx === -1) {\n endIdx = str.length;\n } else if (endIdx < eqIdx) {\n index = str.lastIndexOf(\";\", eqIdx - 1) + 1;\n continue;\n }\n var key = str.slice(index, eqIdx).trim();\n if (void 0 === obj[key]) {\n var val = str.slice(eqIdx + 1, endIdx).trim();\n if (val.charCodeAt(0) === 34) {\n val = val.slice(1, -1);\n }\n obj[key] = tryDecode(val, dec);\n }\n index = endIdx + 1;\n }\n return obj;\n }\n function serialize(name, val, options) {\n var opt = options || {};\n var enc = opt.encode || encode;\n if (typeof enc !== \"function\") {\n throw new TypeError(\"option encode is invalid\");\n }\n if (!fieldContentRegExp.test(name)) {\n throw new TypeError(\"argument name is invalid\");\n }\n var value = enc(val);\n if (value && !fieldContentRegExp.test(value)) {\n throw new TypeError(\"argument val is invalid\");\n }\n var str = name + \"=\" + value;\n if (null != opt.maxAge) {\n var maxAge = opt.maxAge - 0;\n if (isNaN(maxAge) || !isFinite(maxAge)) {\n throw new TypeError(\"option maxAge is invalid\");\n }\n str += \"; Max-Age=\" + Math.floor(maxAge);\n }\n if (opt.domain) {\n if (!fieldContentRegExp.test(opt.domain)) {\n throw new TypeError(\"option domain is invalid\");\n }\n str += \"; Domain=\" + opt.domain;\n }\n if (opt.path) {\n if (!fieldContentRegExp.test(opt.path)) {\n throw new TypeError(\"option path is invalid\");\n }\n str += \"; Path=\" + opt.path;\n }\n if (opt.expires) {\n var expires = opt.expires;\n if (!isDate(expires) || isNaN(expires.valueOf())) {\n throw new TypeError(\"option expires is invalid\");\n }\n str += \"; Expires=\" + expires.toUTCString();\n }\n if (opt.httpOnly) {\n str += \"; HttpOnly\";\n }\n if (opt.secure) {\n str += \"; Secure\";\n }\n if (opt.priority) {\n var priority = typeof opt.priority === \"string\" ? opt.priority.toLowerCase() : opt.priority;\n switch (priority) {\n case \"low\":\n str += \"; Priority=Low\";\n break;\n case \"medium\":\n str += \"; Priority=Medium\";\n break;\n case \"high\":\n str += \"; Priority=High\";\n break;\n default:\n throw new TypeError(\"option priority is invalid\");\n }\n }\n if (opt.sameSite) {\n var sameSite = typeof opt.sameSite === \"string\" ? opt.sameSite.toLowerCase() : opt.sameSite;\n switch (sameSite) {\n case true:\n str += \"; SameSite=Strict\";\n break;\n case \"lax\":\n str += \"; SameSite=Lax\";\n break;\n case \"strict\":\n str += \"; SameSite=Strict\";\n break;\n case \"none\":\n str += \"; SameSite=None\";\n break;\n default:\n throw new TypeError(\"option sameSite is invalid\");\n }\n }\n return str;\n }\n function decode(str) {\n return str.indexOf(\"%\") !== -1 ? decodeURIComponent(str) : str;\n }\n function encode(val) {\n return encodeURIComponent(val);\n }\n function isDate(val) {\n return __toString.call(val) === \"[object Date]\" || val instanceof Date;\n }\n function tryDecode(str, decode2) {\n try {\n return decode2(str);\n } catch (e) {\n return str;\n }\n }\n }\n});\n\n// source.js\nvar import_cookie = __toESM(require_cookie(), 1);\nvar source_default = import_cookie.default;\nexport {\n source_default as default\n};\n/*! Bundled license information:\n\ncookie/index.js:\n (*!\n * cookie\n * Copyright(c) 2012-2014 Roman Shtylman\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n *)\n*/\n","import cookieUtils from \"@bundled-es-modules/cookie\";\nimport { store } from \"@mswjs/cookies\";\nfunction getAllDocumentCookies() {\n return cookieUtils.parse(document.cookie);\n}\nfunction getRequestCookies(request) {\n if (typeof document === \"undefined\" || typeof location === \"undefined\") {\n return {};\n }\n switch (request.credentials) {\n case \"same-origin\": {\n const url = new URL(request.url);\n return location.origin === url.origin ? getAllDocumentCookies() : {};\n }\n case \"include\": {\n return getAllDocumentCookies();\n }\n default: {\n return {};\n }\n }\n}\nfunction getAllRequestCookies(request) {\n const requestCookiesString = request.headers.get(\"cookie\");\n const cookiesFromHeaders = requestCookiesString ? cookieUtils.parse(requestCookiesString) : {};\n store.hydrate();\n const cookiesFromStore = Array.from(store.get(request)?.entries()).reduce((cookies, [name, { value }]) => {\n return Object.assign(cookies, { [name.trim()]: value });\n }, {});\n const cookiesFromDocument = getRequestCookies(request);\n const forwardedCookies = {\n ...cookiesFromDocument,\n ...cookiesFromStore\n };\n for (const [name, value] of Object.entries(forwardedCookies)) {\n request.headers.append(\"cookie\", cookieUtils.serialize(name, value));\n }\n return {\n ...forwardedCookies,\n ...cookiesFromHeaders\n };\n}\nexport {\n getAllRequestCookies,\n getRequestCookies\n};\n","import { devUtils } from '../utils/internal/devUtils.mjs';\nimport { isStringEqual } from '../utils/internal/isStringEqual.mjs';\nimport { getStatusCodeColor } from '../utils/logging/getStatusCodeColor.mjs';\nimport { getTimestamp } from '../utils/logging/getTimestamp.mjs';\nimport { serializeRequest } from '../utils/logging/serializeRequest.mjs';\nimport { serializeResponse } from '../utils/logging/serializeResponse.mjs';\nimport {\n matchRequestUrl\n} from '../utils/matching/matchRequestUrl.mjs';\nimport { toPublicUrl } from '../utils/request/toPublicUrl.mjs';\nimport { getAllRequestCookies } from '../utils/request/getRequestCookies.mjs';\nimport { cleanUrl, getSearchParams } from '../utils/url/cleanUrl.mjs';\nimport {\n RequestHandler\n} from './RequestHandler.mjs';\nvar HttpMethods = /* @__PURE__ */ ((HttpMethods2) => {\n HttpMethods2[\"HEAD\"] = \"HEAD\";\n HttpMethods2[\"GET\"] = \"GET\";\n HttpMethods2[\"POST\"] = \"POST\";\n HttpMethods2[\"PUT\"] = \"PUT\";\n HttpMethods2[\"PATCH\"] = \"PATCH\";\n HttpMethods2[\"OPTIONS\"] = \"OPTIONS\";\n HttpMethods2[\"DELETE\"] = \"DELETE\";\n return HttpMethods2;\n})(HttpMethods || {});\nclass HttpHandler extends RequestHandler {\n constructor(method, path, resolver, options) {\n super({\n info: {\n header: `${method} ${path}`,\n path,\n method\n },\n resolver,\n options\n });\n this.checkRedundantQueryParameters();\n }\n checkRedundantQueryParameters() {\n const { method, path } = this.info;\n if (path instanceof RegExp) {\n return;\n }\n const url = cleanUrl(path);\n if (url === path) {\n return;\n }\n const searchParams = getSearchParams(path);\n const queryParams = [];\n searchParams.forEach((_, paramName) => {\n queryParams.push(paramName);\n });\n devUtils.warn(\n `Found a redundant usage of query parameters in the request handler URL for \"${method} ${path}\". Please match against a path instead and access query parameters in the response resolver function using \"req.url.searchParams\".`\n );\n }\n async parse(args) {\n const url = new URL(args.request.url);\n const match = matchRequestUrl(\n url,\n this.info.path,\n args.resolutionContext?.baseUrl\n );\n const cookies = getAllRequestCookies(args.request);\n return {\n match,\n cookies\n };\n }\n predicate(args) {\n const hasMatchingMethod = this.matchMethod(args.request.method);\n const hasMatchingUrl = args.parsedResult.match.matches;\n return hasMatchingMethod && hasMatchingUrl;\n }\n matchMethod(actualMethod) {\n return this.info.method instanceof RegExp ? this.info.method.test(actualMethod) : isStringEqual(this.info.method, actualMethod);\n }\n extendResolverArgs(args) {\n return {\n params: args.parsedResult.match?.params || {},\n cookies: args.parsedResult.cookies\n };\n }\n async log(args) {\n const publicUrl = toPublicUrl(args.request.url);\n const loggedRequest = await serializeRequest(args.request);\n const loggedResponse = await serializeResponse(args.response);\n const statusColor = getStatusCodeColor(loggedResponse.status);\n console.groupCollapsed(\n devUtils.formatMessage(\n `${getTimestamp()} ${args.request.method} ${publicUrl} (%c${loggedResponse.status} ${loggedResponse.statusText}%c)`\n ),\n `color:${statusColor}`,\n \"color:inherit\"\n );\n console.log(\"Request\", loggedRequest);\n console.log(\"Handler:\", this);\n console.log(\"Response\", loggedResponse);\n console.groupEnd();\n }\n}\nexport {\n HttpHandler,\n HttpMethods\n};\n","import {\n HttpMethods,\n HttpHandler\n} from './handlers/HttpHandler.mjs';\nfunction createHttpHandler(method) {\n return (path, resolver, options = {}) => {\n return new HttpHandler(method, path, resolver, options);\n };\n}\nconst http = {\n all: createHttpHandler(/.+/),\n head: createHttpHandler(HttpMethods.HEAD),\n get: createHttpHandler(HttpMethods.GET),\n post: createHttpHandler(HttpMethods.POST),\n put: createHttpHandler(HttpMethods.PUT),\n delete: createHttpHandler(HttpMethods.DELETE),\n patch: createHttpHandler(HttpMethods.PATCH),\n options: createHttpHandler(HttpMethods.OPTIONS)\n};\nexport {\n http\n};\n","var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __commonJS = (cb, mod) => function __require() {\n return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\n\n// node_modules/set-cookie-parser/lib/set-cookie.js\nvar require_set_cookie = __commonJS({\n \"node_modules/set-cookie-parser/lib/set-cookie.js\"(exports, module) {\n \"use strict\";\n var defaultParseOptions = {\n decodeValues: true,\n map: false,\n silent: false\n };\n function isNonEmptyString(str) {\n return typeof str === \"string\" && !!str.trim();\n }\n function parseString(setCookieValue, options) {\n var parts = setCookieValue.split(\";\").filter(isNonEmptyString);\n var nameValuePairStr = parts.shift();\n var parsed = parseNameValuePair(nameValuePairStr);\n var name = parsed.name;\n var value = parsed.value;\n options = options ? Object.assign({}, defaultParseOptions, options) : defaultParseOptions;\n try {\n value = options.decodeValues ? decodeURIComponent(value) : value;\n } catch (e) {\n console.error(\n \"set-cookie-parser encountered an error while decoding a cookie with value '\" + value + \"'. Set options.decodeValues to false to disable this feature.\",\n e\n );\n }\n var cookie = {\n name,\n value\n };\n parts.forEach(function(part) {\n var sides = part.split(\"=\");\n var key = sides.shift().trimLeft().toLowerCase();\n var value2 = sides.join(\"=\");\n if (key === \"expires\") {\n cookie.expires = new Date(value2);\n } else if (key === \"max-age\") {\n cookie.maxAge = parseInt(value2, 10);\n } else if (key === \"secure\") {\n cookie.secure = true;\n } else if (key === \"httponly\") {\n cookie.httpOnly = true;\n } else if (key === \"samesite\") {\n cookie.sameSite = value2;\n } else {\n cookie[key] = value2;\n }\n });\n return cookie;\n }\n function parseNameValuePair(nameValuePairStr) {\n var name = \"\";\n var value = \"\";\n var nameValueArr = nameValuePairStr.split(\"=\");\n if (nameValueArr.length > 1) {\n name = nameValueArr.shift();\n value = nameValueArr.join(\"=\");\n } else {\n value = nameValuePairStr;\n }\n return { name, value };\n }\n function parse(input, options) {\n options = options ? Object.assign({}, defaultParseOptions, options) : defaultParseOptions;\n if (!input) {\n if (!options.map) {\n return [];\n } else {\n return {};\n }\n }\n if (input.headers) {\n if (typeof input.headers.getSetCookie === \"function\") {\n input = input.headers.getSetCookie();\n } else if (input.headers[\"set-cookie\"]) {\n input = input.headers[\"set-cookie\"];\n } else {\n var sch = input.headers[Object.keys(input.headers).find(function(key) {\n return key.toLowerCase() === \"set-cookie\";\n })];\n if (!sch && input.headers.cookie && !options.silent) {\n console.warn(\n \"Warning: set-cookie-parser appears to have been called on a request object. It is designed to parse Set-Cookie headers from responses, not Cookie headers from requests. Set the option {silent: true} to suppress this warning.\"\n );\n }\n input = sch;\n }\n }\n if (!Array.isArray(input)) {\n input = [input];\n }\n options = options ? Object.assign({}, defaultParseOptions, options) : defaultParseOptions;\n if (!options.map) {\n return input.filter(isNonEmptyString).map(function(str) {\n return parseString(str, options);\n });\n } else {\n var cookies = {};\n return input.filter(isNonEmptyString).reduce(function(cookies2, str) {\n var cookie = parseString(str, options);\n cookies2[cookie.name] = cookie;\n return cookies2;\n }, cookies);\n }\n }\n function splitCookiesString2(cookiesString) {\n if (Array.isArray(cookiesString)) {\n return cookiesString;\n }\n if (typeof cookiesString !== \"string\") {\n return [];\n }\n var cookiesStrings = [];\n var pos = 0;\n var start;\n var ch;\n var lastComma;\n var nextStart;\n var cookiesSeparatorFound;\n function skipWhitespace() {\n while (pos < cookiesString.length && /\\s/.test(cookiesString.charAt(pos))) {\n pos += 1;\n }\n return pos < cookiesString.length;\n }\n function notSpecialChar() {\n ch = cookiesString.charAt(pos);\n return ch !== \"=\" && ch !== \";\" && ch !== \",\";\n }\n while (pos < cookiesString.length) {\n start = pos;\n cookiesSeparatorFound = false;\n while (skipWhitespace()) {\n ch = cookiesString.charAt(pos);\n if (ch === \",\") {\n lastComma = pos;\n pos += 1;\n skipWhitespace();\n nextStart = pos;\n while (pos < cookiesString.length && notSpecialChar()) {\n pos += 1;\n }\n if (pos < cookiesString.length && cookiesString.charAt(pos) === \"=\") {\n cookiesSeparatorFound = true;\n pos = nextStart;\n cookiesStrings.push(cookiesString.substring(start, lastComma));\n start = pos;\n } else {\n pos = lastComma + 1;\n }\n } else {\n pos += 1;\n }\n }\n if (!cookiesSeparatorFound || pos >= cookiesString.length) {\n cookiesStrings.push(cookiesString.substring(start, cookiesString.length));\n }\n }\n return cookiesStrings;\n }\n module.exports = parse;\n module.exports.parse = parse;\n module.exports.parseString = parseString;\n module.exports.splitCookiesString = splitCookiesString2;\n }\n});\n\n// src/Headers.ts\nvar import_set_cookie_parser = __toESM(require_set_cookie());\n\n// src/utils/normalizeHeaderName.ts\nvar HEADERS_INVALID_CHARACTERS = /[^a-z0-9\\-#$%&'*+.^_`|~]/i;\nfunction normalizeHeaderName(name) {\n if (HEADERS_INVALID_CHARACTERS.test(name) || name.trim() === \"\") {\n throw new TypeError(\"Invalid character in header field name\");\n }\n return name.trim().toLowerCase();\n}\n\n// src/utils/normalizeHeaderValue.ts\nvar charCodesToRemove = [\n String.fromCharCode(10),\n String.fromCharCode(13),\n String.fromCharCode(9),\n String.fromCharCode(32)\n];\nvar HEADER_VALUE_REMOVE_REGEXP = new RegExp(\n `(^[${charCodesToRemove.join(\"\")}]|$[${charCodesToRemove.join(\"\")}])`,\n \"g\"\n);\nfunction normalizeHeaderValue(value) {\n const nextValue = value.replace(HEADER_VALUE_REMOVE_REGEXP, \"\");\n return nextValue;\n}\n\n// src/utils/isValidHeaderName.ts\nfunction isValidHeaderName(value) {\n if (typeof value !== \"string\") {\n return false;\n }\n if (value.length === 0) {\n return false;\n }\n for (let i = 0; i < value.length; i++) {\n const character = value.charCodeAt(i);\n if (character > 127 || !isToken(character)) {\n return false;\n }\n }\n return true;\n}\nfunction isToken(value) {\n return ![\n 127,\n 32,\n \"(\",\n \")\",\n \"<\",\n \">\",\n \"@\",\n \",\",\n \";\",\n \":\",\n \"\\\\\",\n '\"',\n \"/\",\n \"[\",\n \"]\",\n \"?\",\n \"=\",\n \"{\",\n \"}\"\n ].includes(value);\n}\n\n// src/utils/isValidHeaderValue.ts\nfunction isValidHeaderValue(value) {\n if (typeof value !== \"string\") {\n return false;\n }\n if (value.trim() !== value) {\n return false;\n }\n for (let i = 0; i < value.length; i++) {\n const character = value.charCodeAt(i);\n if (\n // NUL.\n character === 0 || // HTTP newline bytes.\n character === 10 || character === 13\n ) {\n return false;\n }\n }\n return true;\n}\n\n// src/Headers.ts\nvar NORMALIZED_HEADERS = Symbol(\"normalizedHeaders\");\nvar RAW_HEADER_NAMES = Symbol(\"rawHeaderNames\");\nvar HEADER_VALUE_DELIMITER = \", \";\nvar _a, _b, _c;\nvar Headers = class _Headers {\n constructor(init) {\n // Normalized header {\"name\":\"a, b\"} storage.\n this[_a] = {};\n // Keeps the mapping between the raw header name\n // and the normalized header name to ease the lookup.\n this[_b] = /* @__PURE__ */ new Map();\n this[_c] = \"Headers\";\n if ([\"Headers\", \"HeadersPolyfill\"].includes(init?.constructor.name) || init instanceof _Headers || typeof globalThis.Headers !== \"undefined\" && init instanceof globalThis.Headers) {\n const initialHeaders = init;\n initialHeaders.forEach((value, name) => {\n this.append(name, value);\n }, this);\n } else if (Array.isArray(init)) {\n init.forEach(([name, value]) => {\n this.append(\n name,\n Array.isArray(value) ? value.join(HEADER_VALUE_DELIMITER) : value\n );\n });\n } else if (init) {\n Object.getOwnPropertyNames(init).forEach((name) => {\n const value = init[name];\n this.append(\n name,\n Array.isArray(value) ? value.join(HEADER_VALUE_DELIMITER) : value\n );\n });\n }\n }\n [(_a = NORMALIZED_HEADERS, _b = RAW_HEADER_NAMES, _c = Symbol.toStringTag, Symbol.iterator)]() {\n return this.entries();\n }\n *keys() {\n for (const [name] of this.entries()) {\n yield name;\n }\n }\n *values() {\n for (const [, value] of this.entries()) {\n yield value;\n }\n }\n *entries() {\n let sortedKeys = Object.keys(this[NORMALIZED_HEADERS]).sort(\n (a, b) => a.localeCompare(b)\n );\n for (const name of sortedKeys) {\n if (name === \"set-cookie\") {\n for (const value of this.getSetCookie()) {\n yield [name, value];\n }\n } else {\n yield [name, this.get(name)];\n }\n }\n }\n /**\n * Returns a boolean stating whether a `Headers` object contains a certain header.\n */\n has(name) {\n if (!isValidHeaderName(name)) {\n throw new TypeError(`Invalid header name \"${name}\"`);\n }\n return this[NORMALIZED_HEADERS].hasOwnProperty(normalizeHeaderName(name));\n }\n /**\n * Returns a `ByteString` sequence of all the values of a header with a given name.\n */\n get(name) {\n if (!isValidHeaderName(name)) {\n throw TypeError(`Invalid header name \"${name}\"`);\n }\n return this[NORMALIZED_HEADERS][normalizeHeaderName(name)] ?? null;\n }\n /**\n * Sets a new value for an existing header inside a `Headers` object, or adds the header if it does not already exist.\n */\n set(name, value) {\n if (!isValidHeaderName(name) || !isValidHeaderValue(value)) {\n return;\n }\n const normalizedName = normalizeHeaderName(name);\n const normalizedValue = normalizeHeaderValue(value);\n this[NORMALIZED_HEADERS][normalizedName] = normalizeHeaderValue(normalizedValue);\n this[RAW_HEADER_NAMES].set(normalizedName, name);\n }\n /**\n * Appends a new value onto an existing header inside a `Headers` object, or adds the header if it does not already exist.\n */\n append(name, value) {\n if (!isValidHeaderName(name) || !isValidHeaderValue(value)) {\n return;\n }\n const normalizedName = normalizeHeaderName(name);\n const normalizedValue = normalizeHeaderValue(value);\n let resolvedValue = this.has(normalizedName) ? `${this.get(normalizedName)}, ${normalizedValue}` : normalizedValue;\n this.set(name, resolvedValue);\n }\n /**\n * Deletes a header from the `Headers` object.\n */\n delete(name) {\n if (!isValidHeaderName(name)) {\n return;\n }\n if (!this.has(name)) {\n return;\n }\n const normalizedName = normalizeHeaderName(name);\n delete this[NORMALIZED_HEADERS][normalizedName];\n this[RAW_HEADER_NAMES].delete(normalizedName);\n }\n /**\n * Traverses the `Headers` object,\n * calling the given callback for each header.\n */\n forEach(callback, thisArg) {\n for (const [name, value] of this.entries()) {\n callback.call(thisArg, value, name, this);\n }\n }\n /**\n * Returns an array containing the values\n * of all Set-Cookie headers associated\n * with a response\n */\n getSetCookie() {\n const setCookieHeader = this.get(\"set-cookie\");\n if (setCookieHeader === null) {\n return [];\n }\n if (setCookieHeader === \"\") {\n return [\"\"];\n }\n return (0, import_set_cookie_parser.splitCookiesString)(setCookieHeader);\n }\n};\n\n// src/getRawHeaders.ts\nfunction getRawHeaders(headers) {\n const rawHeaders = {};\n for (const [name, value] of headers.entries()) {\n rawHeaders[headers[RAW_HEADER_NAMES].get(name)] = value;\n }\n return rawHeaders;\n}\n\n// src/transformers/headersToList.ts\nfunction headersToList(headers) {\n const headersList = [];\n headers.forEach((value, name) => {\n const resolvedValue = value.includes(\",\") ? value.split(\",\").map((value2) => value2.trim()) : value;\n headersList.push([name, resolvedValue]);\n });\n return headersList;\n}\n\n// src/transformers/headersToString.ts\nfunction headersToString(headers) {\n const list = headersToList(headers);\n const lines = list.map(([name, value]) => {\n const values = [].concat(value);\n return `${name}: ${values.join(\", \")}`;\n });\n return lines.join(\"\\r\\n\");\n}\n\n// src/transformers/headersToObject.ts\nvar singleValueHeaders = [\"user-agent\"];\nfunction headersToObject(headers) {\n const headersObject = {};\n headers.forEach((value, name) => {\n const isMultiValue = !singleValueHeaders.includes(name.toLowerCase()) && value.includes(\",\");\n headersObject[name] = isMultiValue ? value.split(\",\").map((s) => s.trim()) : value;\n });\n return headersObject;\n}\n\n// src/transformers/stringToHeaders.ts\nfunction stringToHeaders(str) {\n const lines = str.trim().split(/[\\r\\n]+/);\n return lines.reduce((headers, line) => {\n if (line.trim() === \"\") {\n return headers;\n }\n const parts = line.split(\": \");\n const name = parts.shift();\n const value = parts.join(\": \");\n headers.append(name, value);\n return headers;\n }, new Headers());\n}\n\n// src/transformers/listToHeaders.ts\nfunction listToHeaders(list) {\n const headers = new Headers();\n list.forEach(([name, value]) => {\n const values = [].concat(value);\n values.forEach((value2) => {\n headers.append(name, value2);\n });\n });\n return headers;\n}\n\n// src/transformers/reduceHeadersObject.ts\nfunction reduceHeadersObject(headers, reducer, initialState) {\n return Object.keys(headers).reduce((nextHeaders, name) => {\n return reducer(nextHeaders, name, headers[name]);\n }, initialState);\n}\n\n// src/transformers/objectToHeaders.ts\nfunction objectToHeaders(headersObject) {\n return reduceHeadersObject(\n headersObject,\n (headers, name, value) => {\n const values = [].concat(value).filter(Boolean);\n values.forEach((value2) => {\n headers.append(name, value2);\n });\n return headers;\n },\n new Headers()\n );\n}\n\n// src/transformers/flattenHeadersList.ts\nfunction flattenHeadersList(list) {\n return list.map(([name, values]) => {\n return [name, [].concat(values).join(\", \")];\n });\n}\n\n// src/transformers/flattenHeadersObject.ts\nfunction flattenHeadersObject(headersObject) {\n return reduceHeadersObject(\n headersObject,\n (headers, name, value) => {\n headers[name] = [].concat(value).join(\", \");\n return headers;\n },\n {}\n );\n}\nexport {\n Headers,\n flattenHeadersList,\n flattenHeadersObject,\n getRawHeaders,\n headersToList,\n headersToObject,\n headersToString,\n listToHeaders,\n objectToHeaders,\n reduceHeadersObject,\n stringToHeaders\n};\n","import statuses from \"@bundled-es-modules/statuses\";\nimport { Headers as HeadersPolyfill } from \"headers-polyfill\";\nconst { message } = statuses;\nfunction normalizeResponseInit(init = {}) {\n const status = init?.status || 200;\n const statusText = init?.statusText || message[status] || \"\";\n const headers = new Headers(init?.headers);\n return {\n ...init,\n headers,\n status,\n statusText\n };\n}\nfunction decorateResponse(response, init) {\n if (init.type) {\n Object.defineProperty(response, \"type\", {\n value: init.type,\n enumerable: true,\n writable: false\n });\n }\n if (typeof document !== \"undefined\") {\n const responseCookies = HeadersPolyfill.prototype.getSetCookie.call(\n init.headers\n );\n for (const cookieString of responseCookies) {\n document.cookie = cookieString;\n }\n }\n return response;\n}\nexport {\n decorateResponse,\n normalizeResponseInit\n};\n","import {\n decorateResponse,\n normalizeResponseInit\n} from './utils/HttpResponse/decorators.mjs';\nclass HttpResponse extends Response {\n constructor(body, init) {\n const responseInit = normalizeResponseInit(init);\n super(body, responseInit);\n decorateResponse(this, responseInit);\n }\n /**\n * Create a `Response` with a `Content-Type: \"text/plain\"` body.\n * @example\n * HttpResponse.text('hello world')\n * HttpResponse.text('Error', { status: 500 })\n */\n static text(body, init) {\n const responseInit = normalizeResponseInit(init);\n if (!responseInit.headers.has(\"Content-Type\")) {\n responseInit.headers.set(\"Content-Type\", \"text/plain\");\n }\n if (!responseInit.headers.has(\"Content-Length\")) {\n responseInit.headers.set(\n \"Content-Length\",\n body ? new Blob([body]).size.toString() : \"0\"\n );\n }\n return new HttpResponse(body, responseInit);\n }\n /**\n * Create a `Response` with a `Content-Type: \"application/json\"` body.\n * @example\n * HttpResponse.json({ firstName: 'John' })\n * HttpResponse.json({ error: 'Not Authorized' }, { status: 401 })\n */\n static json(body, init) {\n const responseInit = normalizeResponseInit(init);\n if (!responseInit.headers.has(\"Content-Type\")) {\n responseInit.headers.set(\"Content-Type\", \"application/json\");\n }\n const responseText = JSON.stringify(body);\n if (!responseInit.headers.has(\"Content-Length\")) {\n responseInit.headers.set(\n \"Content-Length\",\n responseText ? new Blob([responseText]).size.toString() : \"0\"\n );\n }\n return new HttpResponse(\n responseText,\n responseInit\n );\n }\n /**\n * Create a `Response` with a `Content-Type: \"application/xml\"` body.\n * @example\n * HttpResponse.xml(``)\n * HttpResponse.xml(`
`, { status: 201 })\n */\n static xml(body, init) {\n const responseInit = normalizeResponseInit(init);\n if (!responseInit.headers.has(\"Content-Type\")) {\n responseInit.headers.set(\"Content-Type\", \"text/xml\");\n }\n return new HttpResponse(body, responseInit);\n }\n /**\n * Create a `Response` with an `ArrayBuffer` body.\n * @example\n * const buffer = new ArrayBuffer(3)\n * const view = new Uint8Array(buffer)\n * view.set([1, 2, 3])\n *\n * HttpResponse.arrayBuffer(buffer)\n */\n static arrayBuffer(body, init) {\n const responseInit = normalizeResponseInit(init);\n if (body) {\n responseInit.headers.set(\"Content-Length\", body.byteLength.toString());\n }\n return new HttpResponse(body, responseInit);\n }\n /**\n * Create a `Response` with a `FormData` body.\n * @example\n * const data = new FormData()\n * data.set('name', 'Alice')\n *\n * HttpResponse.formData(data)\n */\n static formData(body, init) {\n return new HttpResponse(body, normalizeResponseInit(init));\n }\n}\nexport {\n HttpResponse\n};\n","import { isNodeProcess } from \"is-node-process\";\nconst SET_TIMEOUT_MAX_ALLOWED_INT = 2147483647;\nconst MIN_SERVER_RESPONSE_TIME = 100;\nconst MAX_SERVER_RESPONSE_TIME = 400;\nconst NODE_SERVER_RESPONSE_TIME = 5;\nfunction getRealisticResponseTime() {\n if (isNodeProcess()) {\n return NODE_SERVER_RESPONSE_TIME;\n }\n return Math.floor(\n Math.random() * (MAX_SERVER_RESPONSE_TIME - MIN_SERVER_RESPONSE_TIME) + MIN_SERVER_RESPONSE_TIME\n );\n}\nasync function delay(durationOrMode) {\n let delayTime;\n if (typeof durationOrMode === \"string\") {\n switch (durationOrMode) {\n case \"infinite\": {\n delayTime = SET_TIMEOUT_MAX_ALLOWED_INT;\n break;\n }\n case \"real\": {\n delayTime = getRealisticResponseTime();\n break;\n }\n default: {\n throw new Error(\n `Failed to delay a response: unknown delay mode \"${durationOrMode}\". Please make sure you provide one of the supported modes (\"real\", \"infinite\") or a number.`\n );\n }\n }\n } else if (typeof durationOrMode === \"undefined\") {\n delayTime = getRealisticResponseTime();\n } else {\n if (durationOrMode > SET_TIMEOUT_MAX_ALLOWED_INT) {\n throw new Error(\n `Failed to delay a response: provided delay duration (${durationOrMode}) exceeds the maximum allowed duration for \"setTimeout\" (${SET_TIMEOUT_MAX_ALLOWED_INT}). This will cause the response to be returned immediately. Please use a number within the allowed range to delay the response by exact duration, or consider the \"infinite\" delay mode to delay the response indefinitely.`\n );\n }\n delayTime = durationOrMode;\n }\n return new Promise((resolve) => setTimeout(resolve, delayTime));\n}\nexport {\n MAX_SERVER_RESPONSE_TIME,\n MIN_SERVER_RESPONSE_TIME,\n NODE_SERVER_RESPONSE_TIME,\n SET_TIMEOUT_MAX_ALLOWED_INT,\n delay\n};\n","import { checkGlobals } from './utils/internal/checkGlobals.mjs';\nimport { SetupApi } from './SetupApi.mjs';\nimport { RequestHandler } from './handlers/RequestHandler.mjs';\nimport { http } from './http.mjs';\nimport { HttpHandler, HttpMethods } from './handlers/HttpHandler.mjs';\nimport { graphql } from './graphql.mjs';\nimport { GraphQLHandler } from './handlers/GraphQLHandler.mjs';\nimport { matchRequestUrl } from './utils/matching/matchRequestUrl.mjs';\nexport * from './utils/handleRequest.mjs';\nimport { getResponse } from './getResponse.mjs';\nimport { cleanUrl } from './utils/url/cleanUrl.mjs';\nexport * from './HttpResponse.mjs';\nexport * from './delay.mjs';\nimport { bypass } from './bypass.mjs';\nimport { passthrough } from './passthrough.mjs';\ncheckGlobals();\nexport {\n GraphQLHandler,\n HttpHandler,\n HttpMethods,\n RequestHandler,\n SetupApi,\n bypass,\n cleanUrl,\n getResponse,\n graphql,\n http,\n matchRequestUrl,\n passthrough\n};\n","export const baseUrl = `/api/v1`;\n","import { HttpResponse, delay, http } from 'msw';\nimport { RuwMessage, SubmitRuwMessageResponse } from 'src/app/swagger-api/swagger-api';\n\nimport { baseUrl } from './consts';\n\nexport default [\n http.post(`${baseUrl}/Ruw/SubmitCase1`, () => {\n return new HttpResponse(null, { status: 500, statusText: 'Internal Server Error' });\n }),\n\n http.post(`${baseUrl}/Ruw/SubmitCase`, async (reqResolver) => {\n delay(1000);\n const ruwMessage = (await reqResolver.request.json()) as RuwMessage;\n ruwMessage.contactInfo.firstName = ruwMessage.contactInfo.firstName ?? 'John';\n ruwMessage.contactInfo.lastName = ruwMessage.contactInfo.lastName ?? 'Doe';\n ruwMessage.incidentDetails.description = 'This is a test description.';\n\n return HttpResponse.json({\n data: ruwMessage,\n referenceId: '20040923001234',\n } as SubmitRuwMessageResponse);\n }),\n];\n","import { HttpResponse, delay, http } from 'msw';\nimport { VersionDto } from 'src/app/swagger-api/swagger-api';\n\nimport { baseUrl } from './consts';\n\nexport default [\n http.get(`${baseUrl}/Version`, async () => {\n await delay(1000);\n\n return HttpResponse.json({ version: '1.0.0' } as VersionDto);\n }),\n];\n","import { default as submitCaseHandlers } from './handlers/submit-case.handlers';\nimport { default as versionHandlers } from './handlers/version.handlers';\n\nexport const handlers = [...versionHandlers, ...submitCaseHandlers];\n","import { setupWorker } from 'msw/browser';\n\nimport { handlers } from './handlers';\n\nexport const worker = setupWorker(...handlers);\nworker.start({\n onUnhandledRequest(req, print) {\n const urlParts = new URL(req.url);\n\n // specify routes to exclude\n const excludedRoutes = ['/favicon.ico', '/manifest.json', '/logo192.png'];\n const isExcluded = excludedRoutes.some((route) => urlParts.pathname.includes(route));\n if (isExcluded) {\n return;\n }\n\n // specify host to exclude\n const excludedHosts = [\n 'www.googletagmanager.com',\n 'dc.services.visualstudio.com',\n 'www.google-analytics.com',\n ];\n const isHostExcluded = excludedHosts.some((host) => urlParts.host.includes(host));\n if (isHostExcluded) {\n return;\n }\n\n // specify exclude extensions\n const excludeExtensions = ['.js', '.woff', '.woff2'];\n const isExtensionExcluded = excludeExtensions.some((ext) => urlParts.pathname.endsWith(ext));\n if (isExtensionExcluded) {\n return;\n }\n\n print.warning();\n },\n});\n","import * as i0 from '@angular/core';\nimport { InjectionToken, PLATFORM_ID, Injectable, Inject, Optional, EventEmitter, Component, Input, HostBinding, Output, NgModule, forwardRef, Directive, HostListener } from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\nimport { of, BehaviorSubject, Subject } from 'rxjs';\nimport { filter } from 'rxjs/operators';\nimport { NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';\n\n/** @deprecated Use `LOADER_OPTIONS` instead. See `RecaptchaLoaderOptions.onBeforeLoad` */\nconst RECAPTCHA_LANGUAGE = new InjectionToken(\"recaptcha-language\");\n/** @deprecated Use `LOADER_OPTIONS` instead. See `RecaptchaLoaderOptions.onBeforeLoad` */\nconst RECAPTCHA_BASE_URL = new InjectionToken(\"recaptcha-base-url\");\n/** @deprecated Use `LOADER_OPTIONS` instead. See `RecaptchaLoaderOptions.onBeforeLoad` */\nconst RECAPTCHA_NONCE = new InjectionToken(\"recaptcha-nonce-tag\");\nconst RECAPTCHA_SETTINGS = new InjectionToken(\"recaptcha-settings\");\nconst RECAPTCHA_V3_SITE_KEY = new InjectionToken(\"recaptcha-v3-site-key\");\n/**\n * See the documentation for `RecaptchaLoaderOptions`.\n */\nconst RECAPTCHA_LOADER_OPTIONS = new InjectionToken(\"recaptcha-loader-options\");\nfunction loadScript(renderMode, onBeforeLoad, onLoaded, {\n url,\n lang,\n nonce\n} = {}) {\n window.ng2recaptchaloaded = () => {\n onLoaded(grecaptcha);\n };\n const script = document.createElement(\"script\");\n script.innerHTML = \"\";\n const {\n url: baseUrl,\n nonce: onBeforeLoadNonce\n } = onBeforeLoad(new URL(url || \"https://www.google.com/recaptcha/api.js\"));\n baseUrl.searchParams.set(\"render\", renderMode === \"explicit\" ? renderMode : renderMode.key);\n baseUrl.searchParams.set(\"onload\", \"ng2recaptchaloaded\");\n baseUrl.searchParams.set(\"trustedtypes\", \"true\");\n if (lang) {\n baseUrl.searchParams.set(\"hl\", lang);\n }\n script.src = baseUrl.href;\n const nonceValue = onBeforeLoadNonce || nonce;\n if (nonceValue) {\n script.setAttribute(\"nonce\", nonceValue);\n }\n script.async = true;\n script.defer = true;\n document.head.appendChild(script);\n}\nfunction newLoadScript({\n v3SiteKey,\n onBeforeLoad,\n onLoaded\n}) {\n const renderMode = v3SiteKey ? {\n key: v3SiteKey\n } : \"explicit\";\n loader.loadScript(renderMode, onBeforeLoad, onLoaded);\n}\nconst loader = {\n loadScript,\n newLoadScript\n};\nfunction toNonNullObservable(subject) {\n return subject.asObservable().pipe(filter(value => value !== null));\n}\nclass RecaptchaLoaderService {\n /**\n * @internal\n * @nocollapse\n */\n static {\n this.ready = null;\n }\n constructor(\n // eslint-disable-next-line @typescript-eslint/ban-types\n platformId,\n // eslint-disable-next-line deprecation/deprecation\n language,\n // eslint-disable-next-line deprecation/deprecation\n baseUrl,\n // eslint-disable-next-line deprecation/deprecation\n nonce, v3SiteKey, options) {\n this.platformId = platformId;\n this.language = language;\n this.baseUrl = baseUrl;\n this.nonce = nonce;\n this.v3SiteKey = v3SiteKey;\n this.options = options;\n const subject = this.init();\n this.ready = subject ? toNonNullObservable(subject) : of();\n }\n /** @internal */\n init() {\n if (RecaptchaLoaderService.ready) {\n return RecaptchaLoaderService.ready;\n }\n if (!isPlatformBrowser(this.platformId)) {\n return undefined;\n }\n const subject = new BehaviorSubject(null);\n RecaptchaLoaderService.ready = subject;\n loader.newLoadScript({\n v3SiteKey: this.v3SiteKey,\n onBeforeLoad: url => {\n if (this.options?.onBeforeLoad) {\n return this.options.onBeforeLoad(url);\n }\n const newUrl = new URL(this.baseUrl ?? url);\n if (this.language) {\n newUrl.searchParams.set(\"hl\", this.language);\n }\n return {\n url: newUrl,\n nonce: this.nonce\n };\n },\n onLoaded: recaptcha => {\n let value = recaptcha;\n if (this.options?.onLoaded) {\n value = this.options.onLoaded(recaptcha);\n }\n subject.next(value);\n }\n });\n return subject;\n }\n static {\n this.ɵfac = function RecaptchaLoaderService_Factory(t) {\n return new (t || RecaptchaLoaderService)(i0.ɵɵinject(PLATFORM_ID), i0.ɵɵinject(RECAPTCHA_LANGUAGE, 8), i0.ɵɵinject(RECAPTCHA_BASE_URL, 8), i0.ɵɵinject(RECAPTCHA_NONCE, 8), i0.ɵɵinject(RECAPTCHA_V3_SITE_KEY, 8), i0.ɵɵinject(RECAPTCHA_LOADER_OPTIONS, 8));\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: RecaptchaLoaderService,\n factory: RecaptchaLoaderService.ɵfac\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(RecaptchaLoaderService, [{\n type: Injectable\n }], () => [{\n type: Object,\n decorators: [{\n type: Inject,\n args: [PLATFORM_ID]\n }]\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [RECAPTCHA_LANGUAGE]\n }]\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [RECAPTCHA_BASE_URL]\n }]\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [RECAPTCHA_NONCE]\n }]\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [RECAPTCHA_V3_SITE_KEY]\n }]\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [RECAPTCHA_LOADER_OPTIONS]\n }]\n }], null);\n})();\nlet nextId = 0;\nclass RecaptchaComponent {\n constructor(elementRef, loader, zone, settings) {\n this.elementRef = elementRef;\n this.loader = loader;\n this.zone = zone;\n this.id = `ngrecaptcha-${nextId++}`;\n this.errorMode = \"default\";\n this.resolved = new EventEmitter();\n /**\n * @deprecated `(error) output will be removed in the next major version. Use (errored) instead\n */\n // eslint-disable-next-line @angular-eslint/no-output-native\n this.error = new EventEmitter();\n this.errored = new EventEmitter();\n if (settings) {\n this.siteKey = settings.siteKey;\n this.theme = settings.theme;\n this.type = settings.type;\n this.size = settings.size;\n this.badge = settings.badge;\n }\n }\n ngAfterViewInit() {\n this.subscription = this.loader.ready.subscribe(grecaptcha => {\n if (grecaptcha != null && grecaptcha.render instanceof Function) {\n this.grecaptcha = grecaptcha;\n this.renderRecaptcha();\n }\n });\n }\n ngOnDestroy() {\n // reset the captcha to ensure it does not leave anything behind\n // after the component is no longer needed\n this.grecaptchaReset();\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n /**\n * Executes the invisible recaptcha.\n * Does nothing if component's size is not set to \"invisible\".\n */\n execute() {\n if (this.size !== \"invisible\") {\n return;\n }\n if (this.widget != null) {\n void this.grecaptcha.execute(this.widget);\n } else {\n // delay execution of recaptcha until it actually renders\n this.executeRequested = true;\n }\n }\n reset() {\n if (this.widget != null) {\n if (this.grecaptcha.getResponse(this.widget)) {\n // Only emit an event in case if something would actually change.\n // That way we do not trigger \"touching\" of the control if someone does a \"reset\"\n // on a non-resolved captcha.\n this.resolved.emit(null);\n }\n this.grecaptchaReset();\n }\n }\n /**\n * ⚠️ Warning! Use this property at your own risk!\n *\n * While this member is `public`, it is not a part of the component's public API.\n * The semantic versioning guarantees _will not be honored_! Thus, you might find that this property behavior changes in incompatible ways in minor or even patch releases.\n * You are **strongly advised** against using this property.\n * Instead, use more idiomatic ways to get reCAPTCHA value, such as `resolved` EventEmitter, or form-bound methods (ngModel, formControl, and the likes).å\n */\n get __unsafe_widgetValue() {\n return this.widget != null ? this.grecaptcha.getResponse(this.widget) : null;\n }\n /** @internal */\n expired() {\n this.resolved.emit(null);\n }\n /** @internal */\n onError(args) {\n // eslint-disable-next-line deprecation/deprecation\n this.error.emit(args);\n this.errored.emit(args);\n }\n /** @internal */\n captchaResponseCallback(response) {\n this.resolved.emit(response);\n }\n /** @internal */\n grecaptchaReset() {\n if (this.widget != null) {\n this.zone.runOutsideAngular(() => this.grecaptcha.reset(this.widget));\n }\n }\n /** @internal */\n renderRecaptcha() {\n // This `any` can be removed after @types/grecaptcha get updated\n const renderOptions = {\n badge: this.badge,\n callback: response => {\n this.zone.run(() => this.captchaResponseCallback(response));\n },\n \"expired-callback\": () => {\n this.zone.run(() => this.expired());\n },\n sitekey: this.siteKey,\n size: this.size,\n tabindex: this.tabIndex,\n theme: this.theme,\n type: this.type\n };\n if (this.errorMode === \"handled\") {\n renderOptions[\"error-callback\"] = (...args) => {\n this.zone.run(() => this.onError(args));\n };\n }\n this.widget = this.grecaptcha.render(this.elementRef.nativeElement, renderOptions);\n if (this.executeRequested === true) {\n this.executeRequested = false;\n this.execute();\n }\n }\n static {\n this.ɵfac = function RecaptchaComponent_Factory(t) {\n return new (t || RecaptchaComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(RecaptchaLoaderService), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(RECAPTCHA_SETTINGS, 8));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: RecaptchaComponent,\n selectors: [[\"re-captcha\"]],\n hostVars: 1,\n hostBindings: function RecaptchaComponent_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"id\", ctx.id);\n }\n },\n inputs: {\n id: \"id\",\n siteKey: \"siteKey\",\n theme: \"theme\",\n type: \"type\",\n size: \"size\",\n tabIndex: \"tabIndex\",\n badge: \"badge\",\n errorMode: \"errorMode\"\n },\n outputs: {\n resolved: \"resolved\",\n error: \"error\",\n errored: \"errored\"\n },\n exportAs: [\"reCaptcha\"],\n decls: 0,\n vars: 0,\n template: function RecaptchaComponent_Template(rf, ctx) {},\n encapsulation: 2\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(RecaptchaComponent, [{\n type: Component,\n args: [{\n exportAs: \"reCaptcha\",\n selector: \"re-captcha\",\n template: ``\n }]\n }], () => [{\n type: i0.ElementRef\n }, {\n type: RecaptchaLoaderService\n }, {\n type: i0.NgZone\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [RECAPTCHA_SETTINGS]\n }]\n }], {\n id: [{\n type: Input\n }, {\n type: HostBinding,\n args: [\"attr.id\"]\n }],\n siteKey: [{\n type: Input\n }],\n theme: [{\n type: Input\n }],\n type: [{\n type: Input\n }],\n size: [{\n type: Input\n }],\n tabIndex: [{\n type: Input\n }],\n badge: [{\n type: Input\n }],\n errorMode: [{\n type: Input\n }],\n resolved: [{\n type: Output\n }],\n error: [{\n type: Output\n }],\n errored: [{\n type: Output\n }]\n });\n})();\nclass RecaptchaCommonModule {\n static {\n this.ɵfac = function RecaptchaCommonModule_Factory(t) {\n return new (t || RecaptchaCommonModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: RecaptchaCommonModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(RecaptchaCommonModule, [{\n type: NgModule,\n args: [{\n declarations: [RecaptchaComponent],\n exports: [RecaptchaComponent]\n }]\n }], null, null);\n})();\nclass RecaptchaModule {\n static {\n this.ɵfac = function RecaptchaModule_Factory(t) {\n return new (t || RecaptchaModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: RecaptchaModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n providers: [RecaptchaLoaderService],\n imports: [RecaptchaCommonModule]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(RecaptchaModule, [{\n type: NgModule,\n args: [{\n exports: [RecaptchaComponent],\n imports: [RecaptchaCommonModule],\n providers: [RecaptchaLoaderService]\n }]\n }], null, null);\n})();\n\n/**\n * The main service for working with reCAPTCHA v3 APIs.\n *\n * Use the `execute` method for executing a single action, and\n * `onExecute` observable for listening to all actions at once.\n */\nclass ReCaptchaV3Service {\n constructor(zone, recaptchaLoader, siteKey) {\n this.recaptchaLoader = recaptchaLoader;\n this.zone = zone;\n this.siteKey = siteKey;\n this.init();\n }\n get onExecute() {\n if (!this.onExecuteSubject) {\n this.onExecuteSubject = new Subject();\n this.onExecuteObservable = this.onExecuteSubject.asObservable();\n }\n return this.onExecuteObservable;\n }\n get onExecuteError() {\n if (!this.onExecuteErrorSubject) {\n this.onExecuteErrorSubject = new Subject();\n this.onExecuteErrorObservable = this.onExecuteErrorSubject.asObservable();\n }\n return this.onExecuteErrorObservable;\n }\n /**\n * Executes the provided `action` with reCAPTCHA v3 API.\n * Use the emitted token value for verification purposes on the backend.\n *\n * For more information about reCAPTCHA v3 actions and tokens refer to the official documentation at\n * https://developers.google.com/recaptcha/docs/v3.\n *\n * @param {string} action the action to execute\n * @returns {Observable} an `Observable` that will emit the reCAPTCHA v3 string `token` value whenever ready.\n * The returned `Observable` completes immediately after emitting a value.\n */\n execute(action) {\n const subject = new Subject();\n if (!this.grecaptcha) {\n if (!this.actionBacklog) {\n this.actionBacklog = [];\n }\n this.actionBacklog.push([action, subject]);\n } else {\n this.executeActionWithSubject(action, subject);\n }\n return subject.asObservable();\n }\n /** @internal */\n executeActionWithSubject(action, subject) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const onError = error => {\n this.zone.run(() => {\n subject.error(error);\n if (this.onExecuteErrorSubject) {\n // We don't know any better at this point, unfortunately, so have to resort to `any`\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n this.onExecuteErrorSubject.next({\n action,\n error\n });\n }\n });\n };\n this.zone.runOutsideAngular(() => {\n try {\n this.grecaptcha.execute(this.siteKey, {\n action\n }).then(token => {\n this.zone.run(() => {\n subject.next(token);\n subject.complete();\n if (this.onExecuteSubject) {\n this.onExecuteSubject.next({\n action,\n token\n });\n }\n });\n }, onError);\n } catch (e) {\n onError(e);\n }\n });\n }\n /** @internal */\n init() {\n this.recaptchaLoader.ready.subscribe(value => {\n this.grecaptcha = value;\n if (this.actionBacklog && this.actionBacklog.length > 0) {\n this.actionBacklog.forEach(([action, subject]) => this.executeActionWithSubject(action, subject));\n this.actionBacklog = undefined;\n }\n });\n }\n static {\n this.ɵfac = function ReCaptchaV3Service_Factory(t) {\n return new (t || ReCaptchaV3Service)(i0.ɵɵinject(i0.NgZone), i0.ɵɵinject(RecaptchaLoaderService), i0.ɵɵinject(RECAPTCHA_V3_SITE_KEY));\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: ReCaptchaV3Service,\n factory: ReCaptchaV3Service.ɵfac\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(ReCaptchaV3Service, [{\n type: Injectable\n }], () => [{\n type: i0.NgZone\n }, {\n type: RecaptchaLoaderService\n }, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [RECAPTCHA_V3_SITE_KEY]\n }]\n }], null);\n})();\nclass RecaptchaV3Module {\n static {\n this.ɵfac = function RecaptchaV3Module_Factory(t) {\n return new (t || RecaptchaV3Module)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: RecaptchaV3Module\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n providers: [ReCaptchaV3Service, RecaptchaLoaderService]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(RecaptchaV3Module, [{\n type: NgModule,\n args: [{\n providers: [ReCaptchaV3Service, RecaptchaLoaderService]\n }]\n }], null, null);\n})();\nclass RecaptchaValueAccessorDirective {\n constructor(host) {\n this.host = host;\n this.requiresControllerReset = false;\n }\n writeValue(value) {\n if (!value) {\n this.host.reset();\n } else {\n // In this case, it is most likely that a form controller has requested to write a specific value into the component.\n // This isn't really a supported case - reCAPTCHA values are single-use, and, in a sense, readonly.\n // What this means is that the form controller has recaptcha control state of X, while reCAPTCHA itself can't \"restore\"\n // to that state. In order to make form controller aware of this discrepancy, and to fix the said misalignment,\n // we'll be telling the controller to \"reset\" the value back to null.\n if (this.host.__unsafe_widgetValue !== value && Boolean(this.host.__unsafe_widgetValue) === false) {\n this.requiresControllerReset = true;\n }\n }\n }\n registerOnChange(fn) {\n this.onChange = fn;\n if (this.requiresControllerReset) {\n this.requiresControllerReset = false;\n this.onChange(null);\n }\n }\n registerOnTouched(fn) {\n this.onTouched = fn;\n }\n onResolve($event) {\n if (this.onChange) {\n this.onChange($event);\n }\n if (this.onTouched) {\n this.onTouched();\n }\n }\n static {\n this.ɵfac = function RecaptchaValueAccessorDirective_Factory(t) {\n return new (t || RecaptchaValueAccessorDirective)(i0.ɵɵdirectiveInject(RecaptchaComponent));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: RecaptchaValueAccessorDirective,\n selectors: [[\"re-captcha\", \"formControlName\", \"\"], [\"re-captcha\", \"formControl\", \"\"], [\"re-captcha\", \"ngModel\", \"\"]],\n hostBindings: function RecaptchaValueAccessorDirective_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"resolved\", function RecaptchaValueAccessorDirective_resolved_HostBindingHandler($event) {\n return ctx.onResolve($event);\n });\n }\n },\n features: [i0.ɵɵProvidersFeature([{\n multi: true,\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RecaptchaValueAccessorDirective)\n }])]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(RecaptchaValueAccessorDirective, [{\n type: Directive,\n args: [{\n providers: [{\n multi: true,\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RecaptchaValueAccessorDirective)\n }],\n selector: \"re-captcha[formControlName],re-captcha[formControl],re-captcha[ngModel]\"\n }]\n }], () => [{\n type: RecaptchaComponent\n }], {\n onResolve: [{\n type: HostListener,\n args: [\"resolved\", [\"$event\"]]\n }]\n });\n})();\nclass RecaptchaFormsModule {\n static {\n this.ɵfac = function RecaptchaFormsModule_Factory(t) {\n return new (t || RecaptchaFormsModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: RecaptchaFormsModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [FormsModule, RecaptchaCommonModule]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(RecaptchaFormsModule, [{\n type: NgModule,\n args: [{\n declarations: [RecaptchaValueAccessorDirective],\n exports: [RecaptchaValueAccessorDirective],\n imports: [FormsModule, RecaptchaCommonModule]\n }]\n }], null, null);\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { RECAPTCHA_BASE_URL, RECAPTCHA_LANGUAGE, RECAPTCHA_LOADER_OPTIONS, RECAPTCHA_NONCE, RECAPTCHA_SETTINGS, RECAPTCHA_V3_SITE_KEY, ReCaptchaV3Service, RecaptchaComponent, RecaptchaFormsModule, RecaptchaLoaderService, RecaptchaModule, RecaptchaV3Module, RecaptchaValueAccessorDirective };\n","import { InjectionToken, ModuleWithProviders, Provider, Type } from '@angular/core';\nimport { Routes } from '@angular/router';\nimport { RuntimeChecks, Store } from '@ngrx/store';\n\nexport const EnvironmentJson = new InjectionToken('EnvironmentJson');\nexport const FeatureFlagsJson = new InjectionToken('featureFlagsJson');\n\nexport interface IEnvironment {\n production: boolean;\n // hook for environment specific transformation of the `environment.json` file\n wiirAnonUrl: string;\n wiirUrl: string;\n wrioUrl: string;\n workerDashboardUrl: string;\n workerBcOnlineUrl: string;\n fixConfiguration: (\n envJson: IEnvironmentJson,\n option?: IFixConfigurationOption,\n ) => IEnvironmentJson;\n //list of providers for app modules\n additionalProviders: Provider[];\n //list of module for app modules\n additionalModules: Type | ModuleWithProviders<{}> | any[];\n //add route guards to list of routes.\n addGuards: (routes: Routes) => Routes;\n ngrxRuntimeChecks?: Partial;\n // hooks for handling user login event\n onAuthenticationSuccess: (\n user: any,\n appTxt: any,\n featureFlags: IFeatureFlags,\n store: Store,\n ) => void;\n onAuthenticationFail: (err: any, appTxt: any, store: Store) => void;\n}\n\nexport interface IEnvironmentJsonForAppInsights {\n applicationInsights: any;\n}\n\nexport interface IEnvironmentJsonForApi {\n apiUrl: string;\n}\n\nexport interface IEnvironmentForFeatureFlags {\n featureFlags: IFeatureFlags;\n}\n\nexport interface IFeatureFlags {\n disableRecaptcha?: boolean;\n}\n\nexport interface IEnvironmentJson\n extends IEnvironmentJsonForAppInsights,\n IEnvironmentForFeatureFlags,\n IEnvironmentJsonForApi {}\n\nexport interface IFixConfigurationOption {}\n\ndeclare global {\n interface Window {\n __wsbc_username: string;\n }\n}\n","import { Store } from '@ngrx/store';\nimport { AuthService, AnonymousAuthService } from '@wsbc/ux-lib-security';\nimport { RECAPTCHA_SETTINGS, RecaptchaComponent, RecaptchaSettings } from 'ng-recaptcha';\nimport { applicationStarts } from 'src/app/store/app-session/app-session.actions';\n\nimport {\n EnvironmentJson,\n IEnvironment,\n IEnvironmentJson,\n IFeatureFlags,\n} from './environment.model';\n\n// https://github.com/DethAriel/ng-recaptcha/issues/123\nRecaptchaComponent.prototype.ngOnDestroy = function () {};\n\nexport const environment: IEnvironment = {\n production: true,\n wiirAnonUrl: 'https://wiiranon.online.worksafebc.com/createreport.aspx',\n wiirUrl: 'https://wiir.online.worksafebc.com/createreport.aspx',\n wrioUrl: 'https://workerinjuryreport.online.worksafebc.com',\n workerDashboardUrl: 'https://op.online.worksafebc.com',\n workerBcOnlineUrl: 'https://www.worksafebc.com',\n fixConfiguration: (environmentJson: IEnvironmentJson) => {\n return environmentJson;\n },\n addGuards: (routes) => routes,\n additionalModules: [],\n additionalProviders: [\n AnonymousAuthService,\n {\n provide: AuthService,\n useExisting: AnonymousAuthService,\n },\n {\n provide: RECAPTCHA_SETTINGS,\n useFactory: (envJson: any) =>\n ({ siteKey: envJson.google_recaptcha_site_key } as RecaptchaSettings),\n deps: [EnvironmentJson],\n },\n ],\n onAuthenticationSuccess: function (\n user: any,\n appTxt: any,\n featureFlags: IFeatureFlags,\n store: Store,\n ): void {\n window.__wsbc_username = 'AnonymousUser';\n store.dispatch(\n applicationStarts({ user: { ...user, roles: ['AnonymousUser'] }, appTxt, featureFlags }),\n );\n },\n\n // eslint-disable-next-line no-unused-vars\n onAuthenticationFail: function (err: any, appTxt: any, store: Store): void {\n // noop\n },\n};\n","// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build` replaces `environment.ts` with `environment.(aad|idam|anonymous).ts`.\n// The list of file replacements can be found in `angular.json`.\nimport { StoreDevtoolsModule } from '@ngrx/store-devtools';\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\nimport 'zone.js/plugins/zone-error';\n\n// comment it out for real ajax call\nimport '../mocks/browser';\n// update this line to switch between different authentication method for local developing\nimport { environment as current } from './environment.anonymous';\nimport { IEnvironment } from './environment.model';\n\nexport const environment: IEnvironment = {\n production: false,\n wiirAnonUrl: 'https://wiiranon.online.dv.worksafebc.com/createreport.aspx',\n wiirUrl: 'https://wiir.online.dv.worksafebc.com/createreport.aspx',\n wrioUrl: 'https://workerinjuryreport.online.dv.worksafebc.com',\n workerDashboardUrl: 'https://op.online.dv.worksafebc.com',\n workerBcOnlineUrl: 'https://www.worksafebc.com',\n fixConfiguration: (environmentJson) =>\n current.fixConfiguration(environmentJson, { idamIndexOverwrite: 0 }),\n addGuards: current.addGuards,\n ngrxRuntimeChecks: {\n strictStateImmutability: true,\n strictActionImmutability: true,\n strictStateSerializability: true,\n strictActionSerializability: false,\n strictActionWithinNgZone: true,\n strictActionTypeUniqueness: true,\n },\n additionalModules: [StoreDevtoolsModule.instrument(), current.additionalModules],\n additionalProviders: current.additionalProviders,\n onAuthenticationSuccess: current.onAuthenticationSuccess,\n onAuthenticationFail: current.onAuthenticationFail,\n};\n\n// Included with Angular CLI.\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\n/**\n * This is application wide common module.\n * If the components/directive is specific to your feature,\n * please create feature common module and organize it that way instead.\n */\n\n@NgModule({\n declarations: [],\n exports: [],\n imports: [CommonModule],\n})\nexport class AppCommonModule {}\n","import { inject } from '@angular/core';\nimport { CanMatchFn, Route, UrlSegment } from '@angular/router';\nimport { Store } from '@ngrx/store';\nimport { filter } from 'rxjs/operators';\nimport { isAppInitialized } from 'src/app/store/app-session/app-session.selectors';\n\nexport const appStartGuard: CanMatchFn = (_: Route, segments: UrlSegment[]) => {\n if (segments[0]?.path === 'error') {\n return true;\n }\n return inject(Store)\n .select(isAppInitialized)\n .pipe(filter((isAppInitialized) => isAppInitialized));\n};\n","import { Injectable } from '@angular/core';\n\nexport enum ValidFromQueryParams {\n wd = 'wd', // Worker portal\n osd = 'osd', // online service dashboard\n public = 'public', // Worker online services\n}\nexport enum ValidQueryParams {\n from = 'from',\n fromDrafts = 'fromDrafts',\n}\n\nexport enum ValidFromDraftsQueryParams {\n true = 'true',\n false = 'false',\n}\n\n@Injectable({\n providedIn: 'root',\n})\n/**\n * Manages query parameters for the application.\n *\n * This service captures and persists query parameters from the URL into sessionStorage\n * during app initialization. This ensures that important query parameters are retained\n * even if the user refreshes the page without query parameters in the URL.\n *\n * The service is particularly useful for maintaining the context of where the user came from\n * (e.g., worker dashboard, online service dashboard) and whether they're accessing drafts.\n *\n * Key features:\n * - Captures query parameters at app initialization (called in app.module.ts)\n * - Stores only valid query parameters as defined in ValidQueryParams enum\n * - Provides methods to retrieve stored query parameters\n * - Helps determine the exit URL based on the 'from' and 'fromDrafts' parameters\n *\n * Usage:\n * - The `setQueryParams` method is called during app initialization in app.module.ts\n * - The `getQueryParam` method is used in app.component.ts to determine the exit URL\n */\nexport class QueryParamsService {\n setParams(params: any): void {\n const sessionParams = JSON.parse(sessionStorage.getItem('queryParams') || '{}');\n Object.entries(params).forEach(([key, value]) => {\n sessionParams[key] = value;\n });\n sessionStorage.setItem('queryParams', JSON.stringify(sessionParams));\n }\n\n setQueryParams(): void {\n const urlParams = new URLSearchParams(window.location.search);\n const sessionParams: { [key: string]: any } = {};\n\n // Update session storage with current query parameters\n urlParams.forEach((value, key) => {\n if (ValidQueryParams[key as keyof typeof ValidQueryParams]) {\n sessionParams[key] = value;\n }\n });\n\n if (Object.keys(sessionParams).length) {\n sessionStorage.setItem('queryParams', JSON.stringify(sessionParams));\n }\n }\n\n getQueryParamsString(): string | null {\n const queryParams = JSON.parse(sessionStorage.getItem('queryParams') || '{}');\n const params: string[] = [];\n\n for (const [key, value] of Object.entries(queryParams)) {\n if (value !== null && value !== undefined) {\n params.push(`${encodeURIComponent(key)}=${encodeURIComponent(String(value))}`);\n }\n }\n\n return params.length > 0 ? params.join('&') : null;\n }\n\n getQueryParam(key: string): string | null {\n const sessionParams = JSON.parse(sessionStorage.getItem('queryParams') || '{}');\n return sessionParams[key] || null;\n }\n}\n","import { Inject, Injectable, InjectionToken } from '@angular/core';\nimport { ApplicationInsights, IConfig, IConfiguration } from '@microsoft/applicationinsights-web';\nimport { IAppInsightsService } from '@wsbc/ux-lib';\n\nexport const APP_INSIGHT_CONFIG = new InjectionToken(\n 'APP_INSIGHT_CONFIG',\n);\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AppInsightsService extends IAppInsightsService {\n private appInsights: ApplicationInsights;\n\n constructor(\n @Inject(APP_INSIGHT_CONFIG)\n appInsightsConfig: IConfiguration & IConfig,\n ) {\n appInsightsConfig.disableCorrelationHeaders = false;\n console.log('app-insight config', appInsightsConfig);\n const appInsights = new ApplicationInsights({ config: appInsightsConfig });\n\n super(appInsights);\n this.appInsights = appInsights;\n appInsights.loadAppInsights();\n\n // This allows us to customize the duration used in TrackPageView\n appInsights.config.overridePageViewDuration = true;\n\n appInsights.trackPageView();\n }\n\n /**\n * Log a user action or other occurrence.\n * @param name A string to identify this event in the portal.\n * @param properties map[string, string] - additional data used to filter events and metrics in the portal. Defaults to empty.\n */\n public TrackEvent(name: string, properties?: { [name: string]: string }): void {\n this.appInsights.trackEvent({ name: name }, properties);\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class UserDataService {\n private data: any = {};\n\n setData(key: string, value: any) {\n this.data[key] = value;\n }\n\n getData(key: string): any {\n return this.data[key];\n }\n\n clearData() {\n this.data = {};\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { RouterModule } from '@angular/router';\nimport { Router } from '@angular/router';\nimport { ModalDialogSizeEnum, ModalDialogTypeEnum } from '@wsbc/ux-lib';\nimport { WsbcModalDialogModule } from '@wsbc/ux-lib';\nimport { ModalModule } from 'ngx-bootstrap/modal';\nimport { environment } from 'src/environments/environment';\n\nimport { AppInsightsService } from '../../app-services/app-insights-service';\nimport {\n QueryParamsService,\n ValidFromQueryParams,\n ValidQueryParams,\n} from '../../app-services/query-params-service';\nimport { UserDataService } from '../../app-services/user-data-service';\n\n@Component({\n selector: 'app-assessment',\n standalone: true,\n imports: [RouterModule, CommonModule, FormsModule, WsbcModalDialogModule, ModalModule],\n templateUrl: './assessment.component.html',\n styleUrls: ['./assessment.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AssessmentComponent {\n constructor(\n private router: Router,\n private queryParamsService: QueryParamsService,\n private logger: AppInsightsService,\n private userDataService: UserDataService,\n ) {}\n\n selectedOption: string | undefined;\n missedTimeAfterInjury: boolean = false;\n\n continueButtonEnabled: boolean = true;\n notMissedAnyTime: boolean = false;\n missedTimeDuringtheDay: boolean = false;\n\n showAssessment = false;\n showButton: boolean = false;\n size: ModalDialogSizeEnum = ModalDialogSizeEnum.MEDIUM;\n title = 'Log in to continue';\n visible = false;\n isPrimaryBtnDisabled = false;\n isSecondaryBtnDisabled = false;\n\n isLeft = true;\n get mode(): ModalDialogTypeEnum {\n return this.isLeft ? ModalDialogTypeEnum.LeftBlade : ModalDialogTypeEnum.RightBlade;\n }\n\n onCloseBtnClicked() {\n this.visible = false;\n }\n\n onContinueWrapperClicked() {\n if (this.continueButtonEnabled) {\n const sectionToScroll = document.getElementById('selectionToggle');\n if (sectionToScroll) {\n sectionToScroll.scrollIntoView({ behavior: 'smooth' });\n }\n } else {\n this.openDialogBox();\n }\n }\n\n openDialogBox() {\n if (\n this.missedTimeAfterInjury ||\n ((this.notMissedAnyTime || this.missedTimeDuringtheDay) &&\n this.selectedOption == 'yes-anticipate')\n ) {\n this.router.navigate(['eligibilityQuizChannels']);\n return;\n }\n\n if (this.isUserLoggedIn()) {\n // skip showing the modal:\n this.onContinueBtnClicked();\n } else {\n this.size = ModalDialogSizeEnum.MEDIUM;\n this.visible = true;\n }\n }\n\n onContinueBtnClicked() {\n this.logger.TrackEvent('EligibilityQuiz-Solved');\n\n const injuryType = this.userDataService.getData('injuryType');\n const missedTimeFromWork = {\n notMissed: this.userDataService.getData('missedTimeFromWorkNM'),\n missedDayShift: this.userDataService.getData('missedTimeFromWorkMSD'),\n };\n const anticipatedMissingTime = this.userDataService.getData('anticipatedMissingTime');\n\n const EQQAObj = {\n injuryType: injuryType,\n missedTimeFromWork: missedTimeFromWork,\n anticipatedMissingTime: anticipatedMissingTime,\n };\n\n const EQQAString = JSON.stringify(EQQAObj);\n const EQQAbase64 = btoa(EQQAString);\n this.queryParamsService.setParams({ EQQA: EQQAbase64 });\n\n const queryString = this.queryParamsService.getQueryParamsString();\n\n const wrioRedirectUrl = queryString\n ? `${environment.wrioUrl}?${queryString}`\n : environment.wrioUrl;\n\n window.location.href = wrioRedirectUrl;\n }\n\n onSelectionChange(option: string) {\n let anticipatedMissingTime: string = '';\n switch (option) {\n case 'yes-anticipate':\n anticipatedMissingTime = 'Yes';\n break;\n case 'no-anticipate':\n anticipatedMissingTime = 'No';\n break;\n case 'notsure-anticipate':\n anticipatedMissingTime = 'NotSure';\n break;\n }\n this.userDataService.setData('anticipatedMissingTime', anticipatedMissingTime);\n\n this.selectedOption = option;\n this.isContinueButtonEnabled();\n }\n\n isContinueButtonEnabled() {\n this.continueButtonEnabled = !this.isAnyCheckboxChecked() || this.selectedOption === undefined;\n }\n\n onCheckBoxChecked() {\n this.userDataService.setData('missedTimeFromWorkNM', this.notMissedAnyTime ? 'Yes' : 'No');\n this.userDataService.setData(\n 'missedTimeFromWorkMSD',\n this.missedTimeDuringtheDay ? 'Yes' : 'No',\n );\n\n this.isContinueButtonEnabled();\n if (this.missedTimeAfterInjury) {\n this.selectedOption = undefined;\n this.continueButtonEnabled = false;\n }\n }\n\n isAnyCheckboxChecked(): boolean {\n return (this.notMissedAnyTime || this.missedTimeDuringtheDay) && !this.missedTimeAfterInjury;\n }\n\n isUserLoggedIn(): boolean {\n const fromQueryParam = this.queryParamsService.getQueryParam(ValidQueryParams.from);\n // if user is originating from either wd or osd flows consider them authenticated:\n return [ValidFromQueryParams.osd, ValidFromQueryParams.wd].includes(\n fromQueryParam as ValidFromQueryParams,\n );\n }\n\n showAnticipateBlock(): boolean {\n if ((this.notMissedAnyTime || this.missedTimeDuringtheDay) && !this.missedTimeAfterInjury) {\n return true;\n }\n return false;\n }\n\n showPleaseNoteBlock(): boolean {\n return (\n this.selectedOption !== 'yes-anticipate' &&\n this.selectedOption !== undefined &&\n this.showAnticipateBlock()\n );\n }\n}\n","
\n
\n
\n
\n
\n
\n
\n \n
\n \n As of today, have you missed any time from work as a result of your injury or\n condition?\n \n (check all that apply)\n
\n
\n If you have multiple employers, please consider if you’ve missed time from any of\n them.\n
\n
\n
\n
\n
\n
\n
\n
\n \n \n \n
\n
\n\n
\n
\n Do you anticipate missing any time from work as a result of your injury or\n condition?\n
\n
\n If you have multiple employers, please consider if you will miss time from any\n of them.\n
\n
\n
\n
\n \n Yes\n \n \n No\n \n \n Not sure\n \n
\n
\n
\n
\n
\n
\n

Please note

\n
\n If you do miss time from in the future, please let us know by calling our\n Claims Call Centre at\n 604.231.8888 (toll-free at 1.888.967.5377).\n

\n You may continue with your report.\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n Back\n
\n \n Continue\n \n
\n
\n
\n
\n
\n
\n\n\n
\n

\n You need an online services account to continue your report online. This will allow you to\n save your report as you go along.\n

\n\n

Don't have an account?

\n

Click \"Sign up\" on the next page, follow the prompts, and log in.

\n\n

Already have an account?

\n

Log in on the next page.

\n
\n\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { RouterModule } from '@angular/router';\n\nimport { AssessmentComponent } from '../assessment/assessment.component';\n\n@Component({\n selector: 'app-before-you-begin',\n standalone: true,\n imports: [RouterModule, AssessmentComponent, CommonModule],\n templateUrl: './before-you-begin.component.html',\n styles: ``,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BeforeYouBeginComponent {\n showAssessment = false;\n showButton: boolean = false;\n\n handleInjuryType(type: string) {\n this.showButton = true;\n console.log('type', type);\n\n if (type === 'single') {\n this.showAssessment = true;\n } else {\n this.showAssessment = false;\n }\n }\n}\n","
\n
\n
\n
\n

Report an injury

\n
\n
\n
\n
\n\n\n
\n
\n
\n
\n

Before you begin

\n

\n We’re here to help people who are injured at work get the medical care and services they\n need to support their recovery. This tool will guide you through reporting a workplace\n injury or disease to our Claims and Rehabilitation Services team.\n

\n
\n
\n
\n
\n\n
\n
\n
\n
\n \n
\n
\n
\n Did your injury or condition occur from a single incident or shift, or did it\n develop over time?\n
\n
\n Injuries that develop over time can take years, months, weeks, or days to manifest.\n
\n\n \n \n
\n
\n
\n
\n
\n
\n\n\n\n
\n
\n
\n
\n \n
\n Back\n Continue\n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n
\n
\n Have a question about reporting your injury? Please call our Teleclaim team at\n 604.231.8888 (or toll-free at\n 1.888.967.5377).\n
\n
\n
\n
\n
\n","{\n \"reportWorkplaceInjuryIllnessUrl\": \"https://www.worksafebc.com/en/claims/report-workplace-injury-illness/how-workers-report-workplace-injury-illness\",\n \"relatedClaimUrl\": \"https://www.worksafebc.com/en/contact-us/departments-and-services/claims\",\n \"form6PdfUrl\": \"https://www.worksafebc.com/en/resources/claims/forms/application-for-compensation-and-report-of-injury-or-occupational-disease-form-6?lang=en&origin=s&returnurl=https:%2f%2fwww.worksafebc.com%2fen%2fsearch%23sort%3DRelevancy%26q%3Dform%25206%26f:language-facet%3D%5bEnglish%5d&highlight=form%206\"\n}\n","import { NgIf } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ViewChild } from '@angular/core';\nimport {\n WsbcLoadingBouncerModule,\n WsbcModalDialogComponent,\n WsbcModalDialogModule,\n} from '@wsbc/ux-lib';\nimport { BsModalRef, BsModalService, ModalModule } from 'ngx-bootstrap/modal';\nimport { environment } from 'src/environments/environment';\n\n@Component({\n selector: 'app-continue-online-modal',\n standalone: true,\n imports: [NgIf, WsbcModalDialogModule, ModalModule, WsbcLoadingBouncerModule],\n templateUrl: './continue-online-modal.component.html',\n styleUrls: ['./continue-online-modal.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ContinueOnlineModalComponent {\n constructor(private modalService: BsModalService) {}\n @ViewChild(WsbcModalDialogComponent) modalComponent!: WsbcModalDialogComponent;\n modalRef!: BsModalRef;\n wiirAnonUrl = environment.wiirAnonUrl;\n wiirUrl = environment.wiirUrl;\n wait = false;\n title = 'Continue online';\n\n private addMediumModalClass() {\n // Note: since the modal is created using modal is created using modalService.show\n // the wsbc modal size parameter does not work\n // so we need to add the class to the modal when it is created\n\n const modal = document.querySelector('.modal');\n if (modal && !modal.classList.contains('medium-modal')) {\n modal.classList.add('medium-modal');\n }\n }\n\n closeBtnClicked() {\n this.modalService.hide(this.modalRef.id);\n }\n\n show() {\n this.modalRef = this.modalService.show(this.modalComponent.template, {\n backdrop: true,\n ignoreBackdropClick: false,\n });\n this.addMediumModalClass();\n }\n}\n","\n \n
\n
\n
\n\n","import { CommonModule, Location } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ViewChild } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport {\n QueryParamsService,\n ValidFromQueryParams,\n ValidQueryParams,\n} from 'src/app/app-services/query-params-service';\nimport urls from 'src/app/strings/urls.json';\nimport { environment } from 'src/environments/environment';\n\nimport { AppInsightsService } from '../../app-services/app-insights-service';\nimport { ContinueOnlineModalComponent } from './continue-online-modal/continue-online-modal.component';\n\n@Component({\n selector: 'app-eligibility-quiz-channels',\n standalone: true,\n imports: [RouterModule, CommonModule, ContinueOnlineModalComponent],\n templateUrl: './eligibility-quiz-channels.component.html',\n styleUrls: ['./eligibility-quiz-channels.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class EligibilityQuizChannelsComponent {\n constructor(\n private location: Location,\n private logger: AppInsightsService,\n private queryParamService: QueryParamsService,\n ) {}\n\n @ViewChild(ContinueOnlineModalComponent) continueOnlineModal!: ContinueOnlineModalComponent;\n\n public urls = urls;\n wiirAnonUrl = environment.wiirAnonUrl;\n wiirUrl = environment.wiirUrl;\n\n onCreateReportLinkClick(event: MouseEvent): void {\n event.preventDefault();\n this.logger.TrackEvent('EligibilityQuiz-Solved');\n switch (this.queryParamService.getQueryParam(ValidQueryParams.from)) {\n case ValidFromQueryParams.wd:\n window.location.href = this.wiirUrl;\n break;\n case ValidFromQueryParams.osd:\n window.location.href = this.wiirAnonUrl;\n break;\n default:\n this.continueOnlineModal.show();\n break;\n }\n }\n\n public goBack(): void {\n this.location.back();\n }\n}\n","\n
\n
\n
\n
\n

Report your injury

\n
\n
\n
\n
\n\n\n
\n
\n
\n
\n

We're currently updating our tools for reporting injuries online

\n

\n During this transition period, some sections of the online form will look differently than\n others. If you prefer to report your claim over the phone, our Teleclaim team would be\n happy to assist you.\n

\n
\n
\n
\n \n
\n
\n
\n

Call our Teleclaim team

\n
Monday to Friday 8 a.m. to 6 p.m.
\n 604.231.8888
\n 1.888.967.5377 (toll-free)
\n
\n
\n
\n\n \n
\n
\n
\n

Report online

\n

You can report your injury using the older version of our online form.

\n Continue online\n
\n
\n
\n\n \n \n\n \n
\n

What you'll need

\n\n
\n \n
\n \"\"\n
\n Personal Health Number (PHN)\n
From your BC’s Services Card and/or driver’s licence
\n
\n
\n \n
\n \"\"\n
\n First medical visit\n
Details of who you saw and what treatment you received
\n
\n
\n \n
\n \"\"\n
\n Employer contact\n
Employer’s name, address, and phone number
\n
\n
\n
\n\n
\n If you've experienced a loss in income due to your injury, you'll also need:\n
\n \n
\n
\n \"\"\n
\n Latest pay stub\n
A summary of your gross pay, taxes, and deductions
\n
\n
\n \n
\n \"\"\n
\n Earnings \n
Earnings from the last 12 months
\n
\n
\n \n
\n \"\"\n
\n Social Insurance Number (SIN)\n
Used for creating a T5 slip that is sent to you at the end of year
\n
\n
\n
\n
\n
\n
\n
\n\n\n
\n
\n
\n
\n Back\n
\n
\n
\n
\n\n\n","import { Location } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\nimport { Router, RouterModule } from '@angular/router';\n\nimport { AppInsightsService } from '../../app-services/app-insights-service';\nimport { QueryParamsService, ValidQueryParams } from '../../app-services/query-params-service';\nimport { UserDataService } from '../../app-services/user-data-service';\n\n@Component({\n selector: 'app-eligibility-quiz-injury',\n standalone: true,\n imports: [RouterModule],\n templateUrl: './eligibility-quiz-injury.component.html',\n styleUrls: ['./eligibility-quiz-injury.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class EligibilityQuizInjuryComponent implements OnInit {\n constructor(\n private router: Router,\n private location: Location,\n private logger: AppInsightsService,\n private userDataService: UserDataService,\n private queryParamsService: QueryParamsService,\n ) {}\n\n queryString: string = '';\n\n ngOnInit() {\n this.logger.TrackEvent('EligibilityQuiz-Entered');\n this.queryString = this.queryParamsService.getQueryParam(ValidQueryParams.from) ?? '';\n }\n\n onTileClick(eventName: string, target: string, setData: any = null) {\n this.logger.TrackEvent(eventName, { from: this.queryString });\n if (setData) {\n this.userDataService.setData(setData.key, setData.value);\n }\n this.router.navigate([target]);\n }\n\n public goBack(): void {\n this.location.back();\n }\n}\n","\n
\n
\n
\n
\n

Report your injury or illness

\n
\n
\n
\n
\n\n
\n
\n
\n
\n

Getting started

\n Which best describes the type of injury you are reporting?\n
\n
\n

\n If you have multiple injuries, you will have an opportunity to describe your injuries in\n more detail later.\n

\n
\n
\n
\n
\n\n
\n
\n
\n \n
\n \n
\n

A physical injury

\n
\n Such as a sprain, cut, fracture, smoke inhalation, concussion, bruise, burn (chemical\n or fire), hernia, or needlestick\n
\n
\n \n
\n \n
\n \n
\n

An occupational disease

\n
\n Including exposure to a virus, such as HIV, a harmful substance, such as asbestos, or\n an irritant that causes a rash\n
\n
\n \n
\n \n
\n \n
\n

Hearing loss

\n
Including long-term hearing damage and damage from a single incident
\n
\n \n
\n \n
\n \n
\n

Mental health condition

\n
Due to a traumatic event or bullying and harassment at work
\n
\n \n
\n \n
\n \n
\n

Sexual harassment or sexual assault

\n
\n Whether by an employer, co-worker, or a non-worker, such as a client or customer\n
\n
\n \n
\n \n
\n \n
\n

Not sure

\n
\n Because the other categories don’t apply or you’re unsure which is the best fit\n
\n
\n \n
\n
\n
\n
\n\n\n
\n \n
\n\n\n
\n
\n
\n
\n Back\n
\n
\n
\n
\n\n\n
\n
\n
\n
\n
\n
\n \n Have a question about reporting your injury? Please call our Teleclaim team at\n 604.231.8888 (or toll-free at\n 1.888.967.5377).\n \n
\n
\n
\n
\n
\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport urls from 'src/app/strings/urls.json';\n\n@Component({\n selector: 'app-eligibility-quiz-instructions',\n standalone: true,\n imports: [RouterModule],\n templateUrl: './eligibility-quiz-instructions.component.html',\n styleUrls: ['./eligibility-quiz-instructions.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class EligibilityQuizInstructionsComponent {\n public urls = urls;\n constructor() {}\n}\n","\n
\n
\n
\n
\n

Report your injury or illness

\n
\n
\n
\n
\n\n\n
\n
\n
\n
\n

Before you begin

\n

\n We’re here to help people who are injured at work get the medical care and services they\n need to support their recovery and return to work. This tool will guide you through\n reporting a workplace injury or disease to WorkSafeBC.\n

\n
\n
\n\n
\n \n
\n
\n \n
\n

How long will it take?

\n
\n You’ll need approximately 20 minutes to complete your report. To protect your\n information, your report will close if you do not click or type anything for 20\n minutes.\n
\n
\n
\n
\n\n \n
\n
\n \n
\n

Prefer to speak with someone?

\n
\n Call our Teleclaim team\n if you'd like to speak with someone in your preferred language.\n
\n
\n
\n
\n\n \n
\n
\n \"Reimbursements\"\n
\n

Have a related claim?

\n
\n If you’re looking to report an injury or illness related to a previous WorkSafeBC\n claim, please\n call our Teleclaim team.\n
\n
\n
\n
\n\n \n
\n
\n \n
\n

Need support?

\n
\n Call our Crisis Support Line toll-free at\n 1.800.624.2928 if you or your family are in emotional\n crisis.\n
\n
\n
\n
\n
\n\n \n
\n
\n
\n

What you’ll need

\n\n
\n \n
\n \n
\n Personal Health Number (PHN)\n
From your BC’s Services Card and/or driver’s licence
\n
\n
\n \n
\n \n
\n First medical visit\n
Details of who you saw and what treatment you received
\n
\n
\n \n
\n \n
\n Employer contact\n
Employer’s name, address, and phone number
\n
\n
\n
\n
\n
\n
\n
\n
\n\n\n
\n \n
\n","import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { appStartGuard } from 'src/app/app-common/guards/app-start.guard';\n\nimport { BeforeYouBeginComponent } from './pages/before-you-begin/before-you-begin.component';\nimport { EligibilityQuizChannelsComponent } from './pages/eligibility-quiz-channels/eligibility-quiz-channels.component';\nimport { EligibilityQuizInjuryComponent } from './pages/eligibility-quiz-injury/eligibility-quiz-injury.component';\nimport { EligibilityQuizInstructionsComponent } from './pages/eligibility-quiz-instructions/eligibility-quiz-instructions.component';\n\nconst routes: Routes = [\n {\n path: '',\n redirectTo: 'eligibilityQuizInjury',\n pathMatch: 'full',\n canMatch: [appStartGuard],\n },\n {\n path: 'eligibilityQuizInjury',\n component: EligibilityQuizInjuryComponent,\n canLoad: [appStartGuard],\n },\n {\n path: 'eligibilityQuizInstructions',\n component: EligibilityQuizInstructionsComponent,\n canLoad: [appStartGuard],\n },\n {\n path: 'eligibilityQuizChannels',\n component: EligibilityQuizChannelsComponent,\n canLoad: [appStartGuard],\n },\n {\n path: 'eligibilityQuizBeforeYouBegin',\n component: BeforeYouBeginComponent,\n canLoad: [appStartGuard],\n },\n {\n path: 'error',\n loadChildren: () => import('./pages/error/error-page.module').then((m) => m.ErrorPageModule),\n },\n];\n\n@NgModule({\n imports: [RouterModule.forRoot(routes, { scrollPositionRestoration: 'enabled' })],\n exports: [RouterModule],\n})\nexport class AppRoutingModule {}\n","import { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { Store } from '@ngrx/store';\nimport { INavMenuItem } from '@wsbc/ux-lib';\nimport { environment } from 'src/environments/environment';\n\nimport {\n QueryParamsService,\n ValidFromDraftsQueryParams,\n ValidFromQueryParams,\n ValidQueryParams,\n} from './app-services/query-params-service';\nimport { TopMenuClassChanged } from './store/app-session/app-session.actions';\nimport { isAppInitialized } from './store/app-session/app-session.selectors';\nimport urls from './strings/urls.json';\n\n@Component({\n selector: 'app-root',\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.scss'],\n})\nexport class AppComponent implements OnInit {\n title = 'app';\n readonly urls = urls;\n exitUrl = '';\n\n menuItems: INavMenuItem[] = [];\n\n isAppInitialized$ = this.store.select(isAppInitialized);\n\n constructor(\n private store: Store,\n private route: ActivatedRoute,\n private queryParamsService: QueryParamsService,\n ) {}\n\n ngOnInit(): void {\n const fromQueryParam = this.queryParamsService.getQueryParam(ValidQueryParams.from) || '';\n const fromDraftsQueryParam =\n this.queryParamsService.getQueryParam(ValidQueryParams.fromDrafts) || '';\n if (\n [ValidFromQueryParams.wd, ValidFromQueryParams.osd].includes(\n fromQueryParam as ValidFromQueryParams,\n ) ||\n fromDraftsQueryParam === ValidFromDraftsQueryParams.true\n ) {\n this.exitUrl = environment.workerDashboardUrl;\n } else {\n this.exitUrl = environment.workerBcOnlineUrl;\n }\n }\n\n onHeaderClassChanged(className: any) {\n this.store.dispatch(TopMenuClassChanged({ className }));\n }\n}\n","\n \n \n \n \n \n
\n \n \n
\n
\n\n","import * as i1 from 'rxjs';\nimport { merge, Observable, Subject, defer } from 'rxjs';\nimport { ignoreElements, materialize, map, catchError, filter, groupBy, mergeMap, exhaustMap, dematerialize, take, concatMap, finalize } from 'rxjs/operators';\nimport * as i0 from '@angular/core';\nimport { InjectionToken, Injectable, Inject, NgModule, Optional, inject, ENVIRONMENT_INITIALIZER, makeEnvironmentProviders } from '@angular/core';\nimport * as i3 from '@ngrx/store';\nimport { ScannedActionsSubject, createAction, ROOT_STORE_PROVIDER, FEATURE_STATE_PROVIDER, Store } from '@ngrx/store';\nexport { concatLatestFrom } from '@ngrx/operators';\nconst DEFAULT_EFFECT_CONFIG = {\n dispatch: true,\n functional: false,\n useEffectsErrorHandler: true\n};\nconst CREATE_EFFECT_METADATA_KEY = '__@ngrx/effects_create__';\n\n/**\n * @description\n *\n * Creates an effect from a source and an `EffectConfig`.\n *\n * @param source A function which returns an observable or observable factory.\n * @param config A `EffectConfig` to configure the effect. By default,\n * `dispatch` is true, `functional` is false, and `useEffectsErrorHandler` is\n * true.\n * @returns If `EffectConfig`#`functional` is true, returns the source function.\n * Else, returns the source function result. When `EffectConfig`#`dispatch` is\n * true, the source function result needs to be `Observable`.\n *\n * @usageNotes\n *\n * ### Class Effects\n *\n * ```ts\n * @Injectable()\n * export class FeatureEffects {\n * // mapping to a different action\n * readonly effect1$ = createEffect(\n * () => this.actions$.pipe(\n * ofType(FeatureActions.actionOne),\n * map(() => FeatureActions.actionTwo())\n * )\n * );\n *\n * // non-dispatching effect\n * readonly effect2$ = createEffect(\n * () => this.actions$.pipe(\n * ofType(FeatureActions.actionTwo),\n * tap(() => console.log('Action Two Dispatched'))\n * ),\n * { dispatch: false } // FeatureActions.actionTwo is not dispatched\n * );\n *\n * constructor(private readonly actions$: Actions) {}\n * }\n * ```\n *\n * ### Functional Effects\n *\n * ```ts\n * // mapping to a different action\n * export const loadUsers = createEffect(\n * (actions$ = inject(Actions), usersService = inject(UsersService)) => {\n * return actions$.pipe(\n * ofType(UsersPageActions.opened),\n * exhaustMap(() => {\n * return usersService.getAll().pipe(\n * map((users) => UsersApiActions.usersLoadedSuccess({ users })),\n * catchError((error) =>\n * of(UsersApiActions.usersLoadedFailure({ error }))\n * )\n * );\n * })\n * );\n * },\n * { functional: true }\n * );\n *\n * // non-dispatching functional effect\n * export const logDispatchedActions = createEffect(\n * () => inject(Actions).pipe(tap(console.log)),\n * { functional: true, dispatch: false }\n * );\n * ```\n */\nfunction createEffect(source, config = {}) {\n const effect = config.functional ? source : source();\n const value = {\n ...DEFAULT_EFFECT_CONFIG,\n ...config // Overrides any defaults if values are provided\n };\n Object.defineProperty(effect, CREATE_EFFECT_METADATA_KEY, {\n value\n });\n return effect;\n}\nfunction getCreateEffectMetadata(instance) {\n const propertyNames = Object.getOwnPropertyNames(instance);\n const metadata = propertyNames.filter(propertyName => {\n if (instance[propertyName] && instance[propertyName].hasOwnProperty(CREATE_EFFECT_METADATA_KEY)) {\n // If the property type has overridden `hasOwnProperty` we need to ensure\n // that the metadata is valid (containing a `dispatch` property)\n // https://github.com/ngrx/platform/issues/2975\n const property = instance[propertyName];\n return property[CREATE_EFFECT_METADATA_KEY].hasOwnProperty('dispatch');\n }\n return false;\n }).map(propertyName => {\n const metaData = instance[propertyName][CREATE_EFFECT_METADATA_KEY];\n return {\n propertyName,\n ...metaData\n };\n });\n return metadata;\n}\nfunction getEffectsMetadata(instance) {\n return getSourceMetadata(instance).reduce((acc, {\n propertyName,\n dispatch,\n useEffectsErrorHandler\n }) => {\n acc[propertyName] = {\n dispatch,\n useEffectsErrorHandler\n };\n return acc;\n }, {});\n}\nfunction getSourceMetadata(instance) {\n return getCreateEffectMetadata(instance);\n}\nfunction getSourceForInstance(instance) {\n return Object.getPrototypeOf(instance);\n}\nfunction isClassInstance(obj) {\n return !!obj.constructor && obj.constructor.name !== 'Object' && obj.constructor.name !== 'Function';\n}\nfunction isClass(classOrRecord) {\n return typeof classOrRecord === 'function';\n}\nfunction getClasses(classesAndRecords) {\n return classesAndRecords.filter(isClass);\n}\nfunction isToken(tokenOrRecord) {\n return tokenOrRecord instanceof InjectionToken || isClass(tokenOrRecord);\n}\nfunction mergeEffects(sourceInstance, globalErrorHandler, effectsErrorHandler) {\n const source = getSourceForInstance(sourceInstance);\n const isClassBasedEffect = !!source && source.constructor.name !== 'Object';\n const sourceName = isClassBasedEffect ? source.constructor.name : null;\n const observables$ = getSourceMetadata(sourceInstance).map(({\n propertyName,\n dispatch,\n useEffectsErrorHandler\n }) => {\n const observable$ = typeof sourceInstance[propertyName] === 'function' ? sourceInstance[propertyName]() : sourceInstance[propertyName];\n const effectAction$ = useEffectsErrorHandler ? effectsErrorHandler(observable$, globalErrorHandler) : observable$;\n if (dispatch === false) {\n return effectAction$.pipe(ignoreElements());\n }\n const materialized$ = effectAction$.pipe(materialize());\n return materialized$.pipe(map(notification => ({\n effect: sourceInstance[propertyName],\n notification,\n propertyName,\n sourceName,\n sourceInstance\n })));\n });\n return merge(...observables$);\n}\nconst MAX_NUMBER_OF_RETRY_ATTEMPTS = 10;\nfunction defaultEffectsErrorHandler(observable$, errorHandler, retryAttemptLeft = MAX_NUMBER_OF_RETRY_ATTEMPTS) {\n return observable$.pipe(catchError(error => {\n if (errorHandler) errorHandler.handleError(error);\n if (retryAttemptLeft <= 1) {\n return observable$; // last attempt\n }\n // Return observable that produces this particular effect\n return defaultEffectsErrorHandler(observable$, errorHandler, retryAttemptLeft - 1);\n }));\n}\nclass Actions extends Observable {\n constructor(source) {\n super();\n if (source) {\n this.source = source;\n }\n }\n lift(operator) {\n const observable = new Actions();\n observable.source = this;\n observable.operator = operator;\n return observable;\n }\n /** @nocollapse */\n static {\n this.ɵfac = function Actions_Factory(t) {\n return new (t || Actions)(i0.ɵɵinject(ScannedActionsSubject));\n };\n }\n /** @nocollapse */\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: Actions,\n factory: Actions.ɵfac,\n providedIn: 'root'\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(Actions, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], () => [{\n type: i1.Observable,\n decorators: [{\n type: Inject,\n args: [ScannedActionsSubject]\n }]\n }], null);\n})();\n/**\n * `ofType` filters an Observable of `Actions` into an Observable of the actions\n * whose type strings are passed to it.\n *\n * For example, if `actions` has type `Actions`, and\n * the type of the `Addition` action is `add`, then\n * `actions.pipe(ofType('add'))` returns an `Observable`.\n *\n * Properly typing this function is hard and requires some advanced TS tricks\n * below.\n *\n * Type narrowing automatically works, as long as your `actions` object\n * starts with a `Actions` instead of generic `Actions`.\n *\n * For backwards compatibility, when one passes a single type argument\n * `ofType('something')` the result is an `Observable`. Note, that `T`\n * completely overrides any possible inference from 'something'.\n *\n * Unfortunately, for unknown 'actions: Actions' these types will produce\n * 'Observable'. In such cases one has to manually set the generic type\n * like `actions.ofType('add')`.\n *\n * @usageNotes\n *\n * Filter the Actions stream on the \"customers page loaded\" action\n *\n * ```ts\n * import { ofType } from '@ngrx/effects';\n * import * fromCustomers from '../customers';\n *\n * this.actions$.pipe(\n * ofType(fromCustomers.pageLoaded)\n * )\n * ```\n */\nfunction ofType(...allowedTypes) {\n return filter(action => allowedTypes.some(typeOrActionCreator => {\n if (typeof typeOrActionCreator === 'string') {\n // Comparing the string to type\n return typeOrActionCreator === action.type;\n }\n // We are filtering by ActionCreator\n return typeOrActionCreator.type === action.type;\n }));\n}\nconst _ROOT_EFFECTS_GUARD = new InjectionToken('@ngrx/effects Internal Root Guard');\nconst USER_PROVIDED_EFFECTS = new InjectionToken('@ngrx/effects User Provided Effects');\nconst _ROOT_EFFECTS = new InjectionToken('@ngrx/effects Internal Root Effects');\nconst _ROOT_EFFECTS_INSTANCES = new InjectionToken('@ngrx/effects Internal Root Effects Instances');\nconst _FEATURE_EFFECTS = new InjectionToken('@ngrx/effects Internal Feature Effects');\nconst _FEATURE_EFFECTS_INSTANCE_GROUPS = new InjectionToken('@ngrx/effects Internal Feature Effects Instance Groups');\nconst EFFECTS_ERROR_HANDLER = new InjectionToken('@ngrx/effects Effects Error Handler', {\n providedIn: 'root',\n factory: () => defaultEffectsErrorHandler\n});\nconst ROOT_EFFECTS_INIT = '@ngrx/effects/init';\nconst rootEffectsInit = createAction(ROOT_EFFECTS_INIT);\nfunction reportInvalidActions(output, reporter) {\n if (output.notification.kind === 'N') {\n const action = output.notification.value;\n const isInvalidAction = !isAction(action);\n if (isInvalidAction) {\n reporter.handleError(new Error(`Effect ${getEffectName(output)} dispatched an invalid action: ${stringify(action)}`));\n }\n }\n}\nfunction isAction(action) {\n return typeof action !== 'function' && action && action.type && typeof action.type === 'string';\n}\nfunction getEffectName({\n propertyName,\n sourceInstance,\n sourceName\n}) {\n const isMethod = typeof sourceInstance[propertyName] === 'function';\n const isClassBasedEffect = !!sourceName;\n return isClassBasedEffect ? `\"${sourceName}.${String(propertyName)}${isMethod ? '()' : ''}\"` : `\"${String(propertyName)}()\"`;\n}\nfunction stringify(action) {\n try {\n return JSON.stringify(action);\n } catch {\n return action;\n }\n}\nconst onIdentifyEffectsKey = 'ngrxOnIdentifyEffects';\nfunction isOnIdentifyEffects(instance) {\n return isFunction(instance, onIdentifyEffectsKey);\n}\nconst onRunEffectsKey = 'ngrxOnRunEffects';\nfunction isOnRunEffects(instance) {\n return isFunction(instance, onRunEffectsKey);\n}\nconst onInitEffects = 'ngrxOnInitEffects';\nfunction isOnInitEffects(instance) {\n return isFunction(instance, onInitEffects);\n}\nfunction isFunction(instance, functionName) {\n return instance && functionName in instance && typeof instance[functionName] === 'function';\n}\nclass EffectSources extends Subject {\n constructor(errorHandler, effectsErrorHandler) {\n super();\n this.errorHandler = errorHandler;\n this.effectsErrorHandler = effectsErrorHandler;\n }\n addEffects(effectSourceInstance) {\n this.next(effectSourceInstance);\n }\n /**\n * @internal\n */\n toActions() {\n return this.pipe(groupBy(effectsInstance => isClassInstance(effectsInstance) ? getSourceForInstance(effectsInstance) : effectsInstance), mergeMap(source$ => {\n return source$.pipe(groupBy(effectsInstance));\n }), mergeMap(source$ => {\n const effect$ = source$.pipe(exhaustMap(sourceInstance => {\n return resolveEffectSource(this.errorHandler, this.effectsErrorHandler)(sourceInstance);\n }), map(output => {\n reportInvalidActions(output, this.errorHandler);\n return output.notification;\n }), filter(notification => notification.kind === 'N' && notification.value != null), dematerialize());\n // start the stream with an INIT action\n // do this only for the first Effect instance\n const init$ = source$.pipe(take(1), filter(isOnInitEffects), map(instance => instance.ngrxOnInitEffects()));\n return merge(effect$, init$);\n }));\n }\n /** @nocollapse */\n static {\n this.ɵfac = function EffectSources_Factory(t) {\n return new (t || EffectSources)(i0.ɵɵinject(i0.ErrorHandler), i0.ɵɵinject(EFFECTS_ERROR_HANDLER));\n };\n }\n /** @nocollapse */\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: EffectSources,\n factory: EffectSources.ɵfac,\n providedIn: 'root'\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(EffectSources, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], () => [{\n type: i0.ErrorHandler\n }, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [EFFECTS_ERROR_HANDLER]\n }]\n }], null);\n})();\nfunction effectsInstance(sourceInstance) {\n if (isOnIdentifyEffects(sourceInstance)) {\n return sourceInstance.ngrxOnIdentifyEffects();\n }\n return '';\n}\nfunction resolveEffectSource(errorHandler, effectsErrorHandler) {\n return sourceInstance => {\n const mergedEffects$ = mergeEffects(sourceInstance, errorHandler, effectsErrorHandler);\n if (isOnRunEffects(sourceInstance)) {\n return sourceInstance.ngrxOnRunEffects(mergedEffects$);\n }\n return mergedEffects$;\n };\n}\nclass EffectsRunner {\n get isStarted() {\n return !!this.effectsSubscription;\n }\n constructor(effectSources, store) {\n this.effectSources = effectSources;\n this.store = store;\n this.effectsSubscription = null;\n }\n start() {\n if (!this.effectsSubscription) {\n this.effectsSubscription = this.effectSources.toActions().subscribe(this.store);\n }\n }\n ngOnDestroy() {\n if (this.effectsSubscription) {\n this.effectsSubscription.unsubscribe();\n this.effectsSubscription = null;\n }\n }\n /** @nocollapse */\n static {\n this.ɵfac = function EffectsRunner_Factory(t) {\n return new (t || EffectsRunner)(i0.ɵɵinject(EffectSources), i0.ɵɵinject(i3.Store));\n };\n }\n /** @nocollapse */\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: EffectsRunner,\n factory: EffectsRunner.ɵfac,\n providedIn: 'root'\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(EffectsRunner, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], () => [{\n type: EffectSources\n }, {\n type: i3.Store\n }], null);\n})();\nclass EffectsRootModule {\n constructor(sources, runner, store, rootEffectsInstances, storeRootModule, storeFeatureModule, guard) {\n this.sources = sources;\n runner.start();\n for (const effectsInstance of rootEffectsInstances) {\n sources.addEffects(effectsInstance);\n }\n store.dispatch({\n type: ROOT_EFFECTS_INIT\n });\n }\n addEffects(effectsInstance) {\n this.sources.addEffects(effectsInstance);\n }\n /** @nocollapse */\n static {\n this.ɵfac = function EffectsRootModule_Factory(t) {\n return new (t || EffectsRootModule)(i0.ɵɵinject(EffectSources), i0.ɵɵinject(EffectsRunner), i0.ɵɵinject(i3.Store), i0.ɵɵinject(_ROOT_EFFECTS_INSTANCES), i0.ɵɵinject(i3.StoreRootModule, 8), i0.ɵɵinject(i3.StoreFeatureModule, 8), i0.ɵɵinject(_ROOT_EFFECTS_GUARD, 8));\n };\n }\n /** @nocollapse */\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: EffectsRootModule\n });\n }\n /** @nocollapse */\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(EffectsRootModule, [{\n type: NgModule,\n args: [{}]\n }], () => [{\n type: EffectSources\n }, {\n type: EffectsRunner\n }, {\n type: i3.Store\n }, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [_ROOT_EFFECTS_INSTANCES]\n }]\n }, {\n type: i3.StoreRootModule,\n decorators: [{\n type: Optional\n }]\n }, {\n type: i3.StoreFeatureModule,\n decorators: [{\n type: Optional\n }]\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [_ROOT_EFFECTS_GUARD]\n }]\n }], null);\n})();\nclass EffectsFeatureModule {\n constructor(effectsRootModule, effectsInstanceGroups, storeRootModule, storeFeatureModule) {\n const effectsInstances = effectsInstanceGroups.flat();\n for (const effectsInstance of effectsInstances) {\n effectsRootModule.addEffects(effectsInstance);\n }\n }\n /** @nocollapse */\n static {\n this.ɵfac = function EffectsFeatureModule_Factory(t) {\n return new (t || EffectsFeatureModule)(i0.ɵɵinject(EffectsRootModule), i0.ɵɵinject(_FEATURE_EFFECTS_INSTANCE_GROUPS), i0.ɵɵinject(i3.StoreRootModule, 8), i0.ɵɵinject(i3.StoreFeatureModule, 8));\n };\n }\n /** @nocollapse */\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: EffectsFeatureModule\n });\n }\n /** @nocollapse */\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(EffectsFeatureModule, [{\n type: NgModule,\n args: [{}]\n }], () => [{\n type: EffectsRootModule\n }, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [_FEATURE_EFFECTS_INSTANCE_GROUPS]\n }]\n }, {\n type: i3.StoreRootModule,\n decorators: [{\n type: Optional\n }]\n }, {\n type: i3.StoreFeatureModule,\n decorators: [{\n type: Optional\n }]\n }], null);\n})();\nclass EffectsModule {\n static forFeature(...featureEffects) {\n const effects = featureEffects.flat();\n const effectsClasses = getClasses(effects);\n return {\n ngModule: EffectsFeatureModule,\n providers: [effectsClasses, {\n provide: _FEATURE_EFFECTS,\n multi: true,\n useValue: effects\n }, {\n provide: USER_PROVIDED_EFFECTS,\n multi: true,\n useValue: []\n }, {\n provide: _FEATURE_EFFECTS_INSTANCE_GROUPS,\n multi: true,\n useFactory: createEffectsInstances,\n deps: [_FEATURE_EFFECTS, USER_PROVIDED_EFFECTS]\n }]\n };\n }\n static forRoot(...rootEffects) {\n const effects = rootEffects.flat();\n const effectsClasses = getClasses(effects);\n return {\n ngModule: EffectsRootModule,\n providers: [effectsClasses, {\n provide: _ROOT_EFFECTS,\n useValue: [effects]\n }, {\n provide: _ROOT_EFFECTS_GUARD,\n useFactory: _provideForRootGuard\n }, {\n provide: USER_PROVIDED_EFFECTS,\n multi: true,\n useValue: []\n }, {\n provide: _ROOT_EFFECTS_INSTANCES,\n useFactory: createEffectsInstances,\n deps: [_ROOT_EFFECTS, USER_PROVIDED_EFFECTS]\n }]\n };\n }\n /** @nocollapse */\n static {\n this.ɵfac = function EffectsModule_Factory(t) {\n return new (t || EffectsModule)();\n };\n }\n /** @nocollapse */\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: EffectsModule\n });\n }\n /** @nocollapse */\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(EffectsModule, [{\n type: NgModule,\n args: [{}]\n }], null, null);\n})();\nfunction createEffectsInstances(effectsGroups, userProvidedEffectsGroups) {\n const effects = [];\n for (const effectsGroup of effectsGroups) {\n effects.push(...effectsGroup);\n }\n for (const userProvidedEffectsGroup of userProvidedEffectsGroups) {\n effects.push(...userProvidedEffectsGroup);\n }\n return effects.map(effectsTokenOrRecord => isToken(effectsTokenOrRecord) ? inject(effectsTokenOrRecord) : effectsTokenOrRecord);\n}\nfunction _provideForRootGuard() {\n const runner = inject(EffectsRunner, {\n optional: true,\n skipSelf: true\n });\n const rootEffects = inject(_ROOT_EFFECTS, {\n self: true\n });\n // check whether any effects are actually passed\n const hasEffects = !(rootEffects.length === 1 && rootEffects[0].length === 0);\n if (hasEffects && runner) {\n throw new TypeError(`EffectsModule.forRoot() called twice. Feature modules should use EffectsModule.forFeature() instead.`);\n }\n return 'guarded';\n}\n\n/**\n * Wraps project fn with error handling making it safe to use in Effects.\n * Takes either a config with named properties that represent different possible\n * callbacks or project/error callbacks that are required.\n */\nfunction act( /** Allow to take either config object or project/error functions */\nconfigOrProject, errorFn) {\n const {\n project,\n error,\n complete,\n operator,\n unsubscribe\n } = typeof configOrProject === 'function' ? {\n project: configOrProject,\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n error: errorFn,\n operator: concatMap,\n complete: undefined,\n unsubscribe: undefined\n } : {\n ...configOrProject,\n operator: configOrProject.operator || concatMap\n };\n return source => defer(() => {\n const subject = new Subject();\n return merge(source.pipe(operator((input, index) => defer(() => {\n let completed = false;\n let errored = false;\n let projectedCount = 0;\n return project(input, index).pipe(materialize(), map(notification => {\n switch (notification.kind) {\n case 'E':\n errored = true;\n return {\n kind: 'N',\n value: error(notification.error, input)\n };\n case 'C':\n completed = true;\n return complete ? {\n kind: 'N',\n value: complete(projectedCount, input)\n } : undefined;\n default:\n ++projectedCount;\n return notification;\n }\n }), filter(n => n != null), dematerialize(), finalize(() => {\n if (!completed && !errored && unsubscribe) {\n subject.next(unsubscribe(projectedCount, input));\n }\n }));\n }))), subject);\n });\n}\n\n/**\n * @usageNotes\n *\n * ### Providing effects at the root level\n *\n * ```ts\n * bootstrapApplication(AppComponent, {\n * providers: [provideEffects(RouterEffects)],\n * });\n * ```\n *\n * ### Providing effects at the feature level\n *\n * ```ts\n * const booksRoutes: Route[] = [\n * {\n * path: '',\n * providers: [provideEffects(BooksApiEffects)],\n * children: [\n * { path: '', component: BookListComponent },\n * { path: ':id', component: BookDetailsComponent },\n * ],\n * },\n * ];\n * ```\n */\nfunction provideEffects(...effects) {\n const effectsClassesAndRecords = effects.flat();\n const effectsClasses = getClasses(effectsClassesAndRecords);\n return makeEnvironmentProviders([effectsClasses, {\n provide: ENVIRONMENT_INITIALIZER,\n multi: true,\n useValue: () => {\n inject(ROOT_STORE_PROVIDER);\n inject(FEATURE_STATE_PROVIDER, {\n optional: true\n });\n const effectsRunner = inject(EffectsRunner);\n const effectSources = inject(EffectSources);\n const shouldInitEffects = !effectsRunner.isStarted;\n if (shouldInitEffects) {\n effectsRunner.start();\n }\n for (const effectsClassOrRecord of effectsClassesAndRecords) {\n const effectsInstance = isClass(effectsClassOrRecord) ? inject(effectsClassOrRecord) : effectsClassOrRecord;\n effectSources.addEffects(effectsInstance);\n }\n if (shouldInitEffects) {\n const store = inject(Store);\n store.dispatch(rootEffectsInit());\n }\n }\n }]);\n}\n\n/**\n * DO NOT EDIT\n *\n * This file is automatically generated at build\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { Actions, EFFECTS_ERROR_HANDLER, EffectSources, EffectsFeatureModule, EffectsModule, EffectsRootModule, EffectsRunner, ROOT_EFFECTS_INIT, USER_PROVIDED_EFFECTS, act, createEffect, defaultEffectsErrorHandler, getEffectsMetadata, mergeEffects, ofType, provideEffects, rootEffectsInit };\n","import * as i1 from '@ngrx/store';\nimport { props, createAction, isNgrxMockEnvironment, select, ACTIVE_RUNTIME_CHECKS, createFeatureSelector, createSelector } from '@ngrx/store';\nimport * as i0 from '@angular/core';\nimport { InjectionToken, isDevMode, Injectable, Inject, ENVIRONMENT_INITIALIZER, inject, makeEnvironmentProviders, NgModule } from '@angular/core';\nimport * as i2 from '@angular/router';\nimport { NavigationStart, RoutesRecognized, NavigationCancel, NavigationError, NavigationEnd } from '@angular/router';\nimport { withLatestFrom } from 'rxjs/operators';\n\n/**\n * An action dispatched when a router navigation request is fired.\n */\nconst ROUTER_REQUEST = '@ngrx/router-store/request';\nconst routerRequestAction = createAction(ROUTER_REQUEST, props());\n/**\n * An action dispatched when the router navigates.\n */\nconst ROUTER_NAVIGATION = '@ngrx/router-store/navigation';\nconst routerNavigationAction = createAction(ROUTER_NAVIGATION, props());\n/**\n * An action dispatched when the router cancels navigation.\n */\nconst ROUTER_CANCEL = '@ngrx/router-store/cancel';\nconst routerCancelAction = createAction(ROUTER_CANCEL, props());\n/**\n * An action dispatched when the router errors.\n */\nconst ROUTER_ERROR = '@ngrx/router-store/error';\nconst routerErrorAction = createAction(ROUTER_ERROR, props());\n/**\n * An action dispatched after navigation has ended and new route is active.\n */\nconst ROUTER_NAVIGATED = '@ngrx/router-store/navigated';\nconst routerNavigatedAction = createAction(ROUTER_NAVIGATED, props());\nfunction routerReducer(state, action) {\n // Allow compilation with strictFunctionTypes - ref: #1344\n const routerAction = action;\n switch (routerAction.type) {\n case ROUTER_NAVIGATION:\n case ROUTER_ERROR:\n case ROUTER_CANCEL:\n return {\n state: routerAction.payload.routerState,\n navigationId: routerAction.payload.event.id\n };\n default:\n return state;\n }\n}\nclass MinimalRouterStateSerializer {\n serialize(routerState) {\n return {\n root: this.serializeRoute(routerState.root),\n url: routerState.url\n };\n }\n serializeRoute(route) {\n const children = route.children.map(c => this.serializeRoute(c));\n return {\n params: route.params,\n data: route.data,\n url: route.url,\n outlet: route.outlet,\n title: route.title,\n routeConfig: route.routeConfig ? {\n path: route.routeConfig.path,\n pathMatch: route.routeConfig.pathMatch,\n redirectTo: route.routeConfig.redirectTo,\n outlet: route.routeConfig.outlet,\n title: typeof route.routeConfig.title === 'string' ? route.routeConfig.title : undefined\n } : null,\n queryParams: route.queryParams,\n fragment: route.fragment,\n firstChild: children[0],\n children\n };\n }\n}\nvar NavigationActionTiming;\n(function (NavigationActionTiming) {\n NavigationActionTiming[NavigationActionTiming[\"PreActivation\"] = 1] = \"PreActivation\";\n NavigationActionTiming[NavigationActionTiming[\"PostActivation\"] = 2] = \"PostActivation\";\n})(NavigationActionTiming || (NavigationActionTiming = {}));\nconst DEFAULT_ROUTER_FEATURENAME = 'router';\nconst _ROUTER_CONFIG = new InjectionToken('@ngrx/router-store Internal Configuration');\nconst ROUTER_CONFIG = new InjectionToken('@ngrx/router-store Configuration');\nfunction _createRouterConfig(config) {\n return {\n stateKey: DEFAULT_ROUTER_FEATURENAME,\n serializer: MinimalRouterStateSerializer,\n navigationActionTiming: NavigationActionTiming.PreActivation,\n ...config\n };\n}\nclass FullRouterStateSerializer {\n serialize(routerState) {\n return {\n root: this.serializeRoute(routerState.root),\n url: routerState.url\n };\n }\n serializeRoute(route) {\n const children = route.children.map(c => this.serializeRoute(c));\n return {\n params: route.params,\n paramMap: route.paramMap,\n data: route.data,\n url: route.url,\n outlet: route.outlet,\n title: route.title,\n routeConfig: route.routeConfig ? {\n component: route.routeConfig.component,\n path: route.routeConfig.path,\n pathMatch: route.routeConfig.pathMatch,\n redirectTo: route.routeConfig.redirectTo,\n outlet: route.routeConfig.outlet,\n title: route.routeConfig.title\n } : null,\n queryParams: route.queryParams,\n queryParamMap: route.queryParamMap,\n fragment: route.fragment,\n component: route.routeConfig ? route.routeConfig.component : undefined,\n root: undefined,\n parent: undefined,\n firstChild: children[0],\n pathFromRoot: undefined,\n children\n };\n }\n}\nclass RouterStateSerializer {}\nvar RouterTrigger;\n(function (RouterTrigger) {\n RouterTrigger[RouterTrigger[\"NONE\"] = 1] = \"NONE\";\n RouterTrigger[RouterTrigger[\"ROUTER\"] = 2] = \"ROUTER\";\n RouterTrigger[RouterTrigger[\"STORE\"] = 3] = \"STORE\";\n})(RouterTrigger || (RouterTrigger = {}));\n/**\n * Shared router initialization logic used alongside both the StoreRouterConnectingModule and the provideRouterStore\n * function\n */\nclass StoreRouterConnectingService {\n constructor(store, router, serializer, errorHandler, config, activeRuntimeChecks) {\n this.store = store;\n this.router = router;\n this.serializer = serializer;\n this.errorHandler = errorHandler;\n this.config = config;\n this.activeRuntimeChecks = activeRuntimeChecks;\n this.lastEvent = null;\n this.routerState = null;\n this.trigger = RouterTrigger.NONE;\n this.stateKey = this.config.stateKey;\n if (!isNgrxMockEnvironment() && isDevMode() && (activeRuntimeChecks?.strictActionSerializability || activeRuntimeChecks?.strictStateSerializability) && this.serializer instanceof FullRouterStateSerializer) {\n console.warn('@ngrx/router-store: The serializability runtime checks cannot be enabled ' + 'with the FullRouterStateSerializer. The FullRouterStateSerializer ' + 'has an unserializable router state and actions that are not serializable. ' + 'To use the serializability runtime checks either use ' + 'the MinimalRouterStateSerializer or implement a custom router state serializer.');\n }\n this.setUpStoreStateListener();\n this.setUpRouterEventsListener();\n }\n setUpStoreStateListener() {\n this.store.pipe(select(this.stateKey), withLatestFrom(this.store)).subscribe(([routerStoreState, storeState]) => {\n this.navigateIfNeeded(routerStoreState, storeState);\n });\n }\n navigateIfNeeded(routerStoreState, storeState) {\n if (!routerStoreState || !routerStoreState.state) {\n return;\n }\n if (this.trigger === RouterTrigger.ROUTER) {\n return;\n }\n if (this.lastEvent instanceof NavigationStart) {\n return;\n }\n const url = routerStoreState.state.url;\n if (!isSameUrl(this.router.url, url)) {\n this.storeState = storeState;\n this.trigger = RouterTrigger.STORE;\n this.router.navigateByUrl(url).catch(error => {\n this.errorHandler.handleError(error);\n });\n }\n }\n setUpRouterEventsListener() {\n const dispatchNavLate = this.config.navigationActionTiming === NavigationActionTiming.PostActivation;\n let routesRecognized;\n this.router.events.pipe(withLatestFrom(this.store)).subscribe(([event, storeState]) => {\n this.lastEvent = event;\n if (event instanceof NavigationStart) {\n this.routerState = this.serializer.serialize(this.router.routerState.snapshot);\n if (this.trigger !== RouterTrigger.STORE) {\n this.storeState = storeState;\n this.dispatchRouterRequest(event);\n }\n } else if (event instanceof RoutesRecognized) {\n routesRecognized = event;\n if (!dispatchNavLate && this.trigger !== RouterTrigger.STORE) {\n this.dispatchRouterNavigation(event);\n }\n } else if (event instanceof NavigationCancel) {\n this.dispatchRouterCancel(event);\n this.reset();\n } else if (event instanceof NavigationError) {\n this.dispatchRouterError(event);\n this.reset();\n } else if (event instanceof NavigationEnd) {\n if (this.trigger !== RouterTrigger.STORE) {\n if (dispatchNavLate) {\n this.dispatchRouterNavigation(routesRecognized);\n }\n this.dispatchRouterNavigated(event);\n }\n this.reset();\n }\n });\n }\n dispatchRouterRequest(event) {\n this.dispatchRouterAction(ROUTER_REQUEST, {\n event\n });\n }\n dispatchRouterNavigation(lastRoutesRecognized) {\n const nextRouterState = this.serializer.serialize(lastRoutesRecognized.state);\n this.dispatchRouterAction(ROUTER_NAVIGATION, {\n routerState: nextRouterState,\n event: new RoutesRecognized(lastRoutesRecognized.id, lastRoutesRecognized.url, lastRoutesRecognized.urlAfterRedirects, nextRouterState)\n });\n }\n dispatchRouterCancel(event) {\n this.dispatchRouterAction(ROUTER_CANCEL, {\n storeState: this.storeState,\n event\n });\n }\n dispatchRouterError(event) {\n this.dispatchRouterAction(ROUTER_ERROR, {\n storeState: this.storeState,\n event: new NavigationError(event.id, event.url, `${event}`)\n });\n }\n dispatchRouterNavigated(event) {\n const routerState = this.serializer.serialize(this.router.routerState.snapshot);\n this.dispatchRouterAction(ROUTER_NAVIGATED, {\n event,\n routerState\n });\n }\n dispatchRouterAction(type, payload) {\n this.trigger = RouterTrigger.ROUTER;\n try {\n this.store.dispatch({\n type,\n payload: {\n routerState: this.routerState,\n ...payload,\n event: this.config.routerState === 0 /* RouterState.Full */ ? payload.event : {\n id: payload.event.id,\n url: payload.event.url,\n // safe, as it will just be `undefined` for non-NavigationEnd router events\n urlAfterRedirects: payload.event.urlAfterRedirects\n }\n }\n });\n } finally {\n this.trigger = RouterTrigger.NONE;\n }\n }\n reset() {\n this.trigger = RouterTrigger.NONE;\n this.storeState = null;\n this.routerState = null;\n }\n /** @nocollapse */\n static {\n this.ɵfac = function StoreRouterConnectingService_Factory(t) {\n return new (t || StoreRouterConnectingService)(i0.ɵɵinject(i1.Store), i0.ɵɵinject(i2.Router), i0.ɵɵinject(RouterStateSerializer), i0.ɵɵinject(i0.ErrorHandler), i0.ɵɵinject(ROUTER_CONFIG), i0.ɵɵinject(ACTIVE_RUNTIME_CHECKS));\n };\n }\n /** @nocollapse */\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: StoreRouterConnectingService,\n factory: StoreRouterConnectingService.ɵfac\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(StoreRouterConnectingService, [{\n type: Injectable\n }], () => [{\n type: i1.Store\n }, {\n type: i2.Router\n }, {\n type: RouterStateSerializer\n }, {\n type: i0.ErrorHandler\n }, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [ROUTER_CONFIG]\n }]\n }, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [ACTIVE_RUNTIME_CHECKS]\n }]\n }], null);\n})();\n/**\n * Check if the URLs are matching. Accounts for the possibility of trailing \"/\" in url.\n */\nfunction isSameUrl(first, second) {\n return stripTrailingSlash(first) === stripTrailingSlash(second);\n}\nfunction stripTrailingSlash(text) {\n if (text?.length > 0 && text[text.length - 1] === '/') {\n return text.substring(0, text.length - 1);\n }\n return text;\n}\n\n/**\n * Connects the Angular Router to the Store.\n *\n * @usageNotes\n *\n * ```ts\n * bootstrapApplication(AppComponent, {\n * providers: [\n * provideStore({ router: routerReducer }),\n * provideRouterStore(),\n * ],\n * });\n * ```\n */\nfunction provideRouterStore(config = {}) {\n return makeEnvironmentProviders([{\n provide: _ROUTER_CONFIG,\n useValue: config\n }, {\n provide: ROUTER_CONFIG,\n useFactory: _createRouterConfig,\n deps: [_ROUTER_CONFIG]\n }, {\n provide: RouterStateSerializer,\n useClass: config.serializer ? config.serializer : config.routerState === 0 /* RouterState.Full */ ? FullRouterStateSerializer : MinimalRouterStateSerializer\n }, {\n provide: ENVIRONMENT_INITIALIZER,\n multi: true,\n useFactory() {\n return () => inject(StoreRouterConnectingService);\n }\n }, StoreRouterConnectingService]);\n}\n\n/**\n * Connects RouterModule with StoreModule.\n *\n * During the navigation, before any guards or resolvers run, the router will dispatch\n * a ROUTER_NAVIGATION action, which has the following signature:\n *\n * ```\n * export type RouterNavigationPayload = {\n * routerState: SerializedRouterStateSnapshot,\n * event: RoutesRecognized\n * }\n * ```\n *\n * Either a reducer or an effect can be invoked in response to this action.\n * If the invoked reducer throws, the navigation will be canceled.\n *\n * If navigation gets canceled because of a guard, a ROUTER_CANCEL action will be\n * dispatched. If navigation results in an error, a ROUTER_ERROR action will be dispatched.\n *\n * Both ROUTER_CANCEL and ROUTER_ERROR contain the store state before the navigation\n * which can be used to restore the consistency of the store.\n *\n * Usage:\n *\n * ```typescript\n * @NgModule({\n * declarations: [AppCmp, SimpleCmp],\n * imports: [\n * BrowserModule,\n * StoreModule.forRoot(mapOfReducers),\n * RouterModule.forRoot([\n * { path: '', component: SimpleCmp },\n * { path: 'next', component: SimpleCmp }\n * ]),\n * StoreRouterConnectingModule.forRoot()\n * ],\n * bootstrap: [AppCmp]\n * })\n * export class AppModule {\n * }\n * ```\n */\nclass StoreRouterConnectingModule {\n static forRoot(config = {}) {\n return {\n ngModule: StoreRouterConnectingModule,\n providers: [provideRouterStore(config)]\n };\n }\n /** @nocollapse */\n static {\n this.ɵfac = function StoreRouterConnectingModule_Factory(t) {\n return new (t || StoreRouterConnectingModule)();\n };\n }\n /** @nocollapse */\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: StoreRouterConnectingModule\n });\n }\n /** @nocollapse */\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(StoreRouterConnectingModule, [{\n type: NgModule,\n args: [{}]\n }], null, null);\n})();\nfunction createRouterSelector() {\n return createFeatureSelector(DEFAULT_ROUTER_FEATURENAME);\n}\nfunction getRouterSelectors(selectState = createRouterSelector()) {\n const selectRouterState = createSelector(selectState, router => router && router.state);\n const selectRootRoute = createSelector(selectRouterState, routerState => routerState && routerState.root);\n const selectCurrentRoute = createSelector(selectRootRoute, rootRoute => {\n if (!rootRoute) {\n return undefined;\n }\n let route = rootRoute;\n while (route.firstChild) {\n route = route.firstChild;\n }\n return route;\n });\n const selectFragment = createSelector(selectRootRoute, route => route && route.fragment);\n const selectQueryParams = createSelector(selectRootRoute, route => route && route.queryParams);\n const selectQueryParam = param => createSelector(selectQueryParams, params => params && params[param]);\n const selectRouteParams = createSelector(selectCurrentRoute, route => route && route.params);\n const selectRouteParam = param => createSelector(selectRouteParams, params => params && params[param]);\n const selectRouteData = createSelector(selectCurrentRoute, route => route && route.data);\n const selectRouteDataParam = param => createSelector(selectRouteData, data => data && data[param]);\n const selectUrl = createSelector(selectRouterState, routerState => routerState && routerState.url);\n const selectTitle = createSelector(selectCurrentRoute, route => {\n if (!route?.routeConfig) {\n return undefined;\n }\n return typeof route.routeConfig.title === 'string' ? route.routeConfig.title // static title\n : route.title; // resolved title\n });\n return {\n selectCurrentRoute,\n selectFragment,\n selectQueryParams,\n selectQueryParam,\n selectRouteParams,\n selectRouteParam,\n selectRouteData,\n selectRouteDataParam,\n selectUrl,\n selectTitle\n };\n}\n\n/**\n * DO NOT EDIT\n *\n * This file is automatically generated at build\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { DEFAULT_ROUTER_FEATURENAME, FullRouterStateSerializer, MinimalRouterStateSerializer, NavigationActionTiming, ROUTER_CANCEL, ROUTER_CONFIG, ROUTER_ERROR, ROUTER_NAVIGATED, ROUTER_NAVIGATION, ROUTER_REQUEST, RouterStateSerializer, StoreRouterConnectingModule, createRouterSelector, getRouterSelectors, provideRouterStore, routerCancelAction, routerErrorAction, routerNavigatedAction, routerNavigationAction, routerReducer, routerRequestAction };\n","import { Injectable } from '@angular/core';\n\n@Injectable()\nexport class AppAuthorizationEffects {}\n","import { createAction, props } from '@ngrx/store';\n\nimport { IUser } from './app-authorization.reducer';\n\nexport const loadAppAuthorizationPermissions = createAction(\n '[AppAuthorization] Load AppAuthorizations Permissions',\n props<{ user: IUser }>(),\n);\n","export enum Permission {\n // list of application permissions\n canManageTest,\n canSelectIab,\n canUseMiscellaneousWebFrontEndFunctions,\n canEditWorker,\n canManageWorker,\n canViewEmployerReports,\n canViewInternalReport,\n canEditSubmittedTest,\n canManageInternalComments,\n canViewInternalComments,\n canDeleteOwnedTest,\n canDeleteAllTest,\n canViewAllHearingTest,\n}\n","export enum Role {\n // define the roles this way will allow the compiler check in mappings\n InternalAdmin = 'Admin',\n InternalUser = 'User',\n ExternalEmployer = 'ExternalEmployer',\n ExternalEmployee = 'ExternalEmployee',\n AnonymousUser = 'Anonymous',\n}\n","import { Permission } from './permissions';\nimport { Role } from './roles';\n\nexport type IRoleToPermissionMap = {\n [key in Role]: Permission[];\n};\n\nexport const roleToPermissionMap: IRoleToPermissionMap = {\n [Role.InternalAdmin]: [\n Permission.canManageTest,\n Permission.canSelectIab,\n Permission.canUseMiscellaneousWebFrontEndFunctions,\n Permission.canEditWorker,\n Permission.canManageWorker,\n Permission.canViewInternalReport,\n Permission.canEditSubmittedTest,\n Permission.canManageInternalComments,\n Permission.canViewInternalComments,\n Permission.canDeleteOwnedTest,\n Permission.canDeleteAllTest,\n Permission.canViewAllHearingTest,\n ],\n [Role.InternalUser]: [Permission.canViewEmployerReports],\n [Role.ExternalEmployer]: [Permission.canViewEmployerReports],\n [Role.ExternalEmployee]: [Permission.canViewEmployerReports],\n [Role.AnonymousUser]: [Permission.canViewAllHearingTest],\n};\n","import { createReducer, on } from '@ngrx/store';\n\nimport * as AppAuthorizationActions from './app-authorization.actions';\nimport { Permission } from './permissions';\nimport { roleToPermissionMap } from './roleToPermissionMap';\nimport { Role } from './roles';\n\nexport const appAuthorizationFeatureKey = '[awesomeForm]appAuthorization';\n\nexport interface IUser {\n userName: string;\n email?: string;\n isAnonymous: boolean;\n roles: string[];\n}\n\nexport interface State {\n user: IUser | null;\n permissions: Permission[];\n}\n\nexport const initialState: State = {\n user: null,\n permissions: [],\n};\n\nexport const reducer = createReducer(\n initialState,\n\n on(AppAuthorizationActions.loadAppAuthorizationPermissions, (_, { user }) => ({\n ...initialState,\n user,\n permissions: user.roles\n .map((strRole) => (Role as any)[strRole] as Role)\n .reduce((acc, role) => [...acc, ...roleToPermissionMap[role]], [] as Permission[]),\n })),\n);\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { EffectsModule } from '@ngrx/effects';\nimport { StoreModule } from '@ngrx/store';\n\nimport { AppAuthorizationEffects } from './app-authorization.effects';\nimport * as fromAppAuthorization from './app-authorization.reducer';\n\n@NgModule({\n imports: [\n CommonModule,\n StoreModule.forFeature(\n fromAppAuthorization.appAuthorizationFeatureKey,\n fromAppAuthorization.reducer,\n ),\n EffectsModule.forFeature([AppAuthorizationEffects]),\n ],\n})\nexport class AppAuthorizationModule {}\n","import { ElementRef } from '@angular/core';\n\n/** Coerces a data-bound value (typically a string) to a boolean. */\nfunction coerceBooleanProperty(value) {\n return value != null && `${value}` !== 'false';\n}\n\nfunction coerceNumberProperty(value, fallbackValue = 0) {\n return _isNumberValue(value) ? Number(value) : fallbackValue;\n}\n/**\n * Whether the provided value is considered a number.\n * @docs-private\n */\nfunction _isNumberValue(value) {\n // parseFloat(value) handles most of the cases we're interested in (it treats null, empty string,\n // and other non-number values as NaN, where Number just uses 0) but it considers the string\n // '123hello' to be a valid number. Therefore we also check if Number(value) is NaN.\n return !isNaN(parseFloat(value)) && !isNaN(Number(value));\n}\n\nfunction coerceArray(value) {\n return Array.isArray(value) ? value : [value];\n}\n\n/** Coerces a value to a CSS pixel value. */\nfunction coerceCssPixelValue(value) {\n if (value == null) {\n return '';\n }\n return typeof value === 'string' ? value : `${value}px`;\n}\n\n/**\n * Coerces an ElementRef or an Element into an element.\n * Useful for APIs that can accept either a ref or the native element itself.\n */\nfunction coerceElement(elementOrRef) {\n return elementOrRef instanceof ElementRef ? elementOrRef.nativeElement : elementOrRef;\n}\n\n/**\n * Coerces a value to an array of trimmed non-empty strings.\n * Any input that is not an array, `null` or `undefined` will be turned into a string\n * via `toString()` and subsequently split with the given separator.\n * `null` and `undefined` will result in an empty array.\n * This results in the following outcomes:\n * - `null` -> `[]`\n * - `[null]` -> `[\"null\"]`\n * - `[\"a\", \"b \", \" \"]` -> `[\"a\", \"b\"]`\n * - `[1, [2, 3]]` -> `[\"1\", \"2,3\"]`\n * - `[{ a: 0 }]` -> `[\"[object Object]\"]`\n * - `{ a: 0 }` -> `[\"[object\", \"Object]\"]`\n *\n * Useful for defining CSS classes or table columns.\n * @param value the value to coerce into an array of strings\n * @param separator split-separator if value isn't an array\n */\nfunction coerceStringArray(value, separator = /\\s+/) {\n const result = [];\n if (value != null) {\n const sourceValues = Array.isArray(value) ? value : `${value}`.split(separator);\n for (const sourceValue of sourceValues) {\n const trimmedString = `${sourceValue}`.trim();\n if (trimmedString) {\n result.push(trimmedString);\n }\n }\n }\n return result;\n}\n\nexport { _isNumberValue, coerceArray, coerceBooleanProperty, coerceCssPixelValue, coerceElement, coerceNumberProperty, coerceStringArray };\n\n","import * as i0 from '@angular/core';\nimport { PLATFORM_ID, Injectable, Inject, NgModule } from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\n\n// Whether the current platform supports the V8 Break Iterator. The V8 check\n// is necessary to detect all Blink based browsers.\nlet hasV8BreakIterator;\n// We need a try/catch around the reference to `Intl`, because accessing it in some cases can\n// cause IE to throw. These cases are tied to particular versions of Windows and can happen if\n// the consumer is providing a polyfilled `Map`. See:\n// https://github.com/Microsoft/ChakraCore/issues/3189\n// https://github.com/angular/components/issues/15687\ntry {\n hasV8BreakIterator = typeof Intl !== 'undefined' && Intl.v8BreakIterator;\n} catch {\n hasV8BreakIterator = false;\n}\n/**\n * Service to detect the current platform by comparing the userAgent strings and\n * checking browser-specific global properties.\n */\nclass Platform {\n constructor(_platformId) {\n this._platformId = _platformId;\n // We want to use the Angular platform check because if the Document is shimmed\n // without the navigator, the following checks will fail. This is preferred because\n // sometimes the Document may be shimmed without the user's knowledge or intention\n /** Whether the Angular application is being rendered in the browser. */\n this.isBrowser = this._platformId ? isPlatformBrowser(this._platformId) : typeof document === 'object' && !!document;\n /** Whether the current browser is Microsoft Edge. */\n this.EDGE = this.isBrowser && /(edge)/i.test(navigator.userAgent);\n /** Whether the current rendering engine is Microsoft Trident. */\n this.TRIDENT = this.isBrowser && /(msie|trident)/i.test(navigator.userAgent);\n // EdgeHTML and Trident mock Blink specific things and need to be excluded from this check.\n /** Whether the current rendering engine is Blink. */\n this.BLINK = this.isBrowser && !!(window.chrome || hasV8BreakIterator) && typeof CSS !== 'undefined' && !this.EDGE && !this.TRIDENT;\n // Webkit is part of the userAgent in EdgeHTML, Blink and Trident. Therefore we need to\n // ensure that Webkit runs standalone and is not used as another engine's base.\n /** Whether the current rendering engine is WebKit. */\n this.WEBKIT = this.isBrowser && /AppleWebKit/i.test(navigator.userAgent) && !this.BLINK && !this.EDGE && !this.TRIDENT;\n /** Whether the current platform is Apple iOS. */\n this.IOS = this.isBrowser && /iPad|iPhone|iPod/.test(navigator.userAgent) && !('MSStream' in window);\n // It's difficult to detect the plain Gecko engine, because most of the browsers identify\n // them self as Gecko-like browsers and modify the userAgent's according to that.\n // Since we only cover one explicit Firefox case, we can simply check for Firefox\n // instead of having an unstable check for Gecko.\n /** Whether the current browser is Firefox. */\n this.FIREFOX = this.isBrowser && /(firefox|minefield)/i.test(navigator.userAgent);\n /** Whether the current platform is Android. */\n // Trident on mobile adds the android platform to the userAgent to trick detections.\n this.ANDROID = this.isBrowser && /android/i.test(navigator.userAgent) && !this.TRIDENT;\n // Safari browsers will include the Safari keyword in their userAgent. Some browsers may fake\n // this and just place the Safari keyword in the userAgent. To be more safe about Safari every\n // Safari browser should also use Webkit as its layout engine.\n /** Whether the current browser is Safari. */\n this.SAFARI = this.isBrowser && /safari/i.test(navigator.userAgent) && this.WEBKIT;\n }\n static {\n this.ɵfac = function Platform_Factory(t) {\n return new (t || Platform)(i0.ɵɵinject(PLATFORM_ID));\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: Platform,\n factory: Platform.ɵfac,\n providedIn: 'root'\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(Platform, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], () => [{\n type: Object,\n decorators: [{\n type: Inject,\n args: [PLATFORM_ID]\n }]\n }], null);\n})();\nclass PlatformModule {\n static {\n this.ɵfac = function PlatformModule_Factory(t) {\n return new (t || PlatformModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: PlatformModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(PlatformModule, [{\n type: NgModule,\n args: [{}]\n }], null, null);\n})();\n\n/** Cached result Set of input types support by the current browser. */\nlet supportedInputTypes;\n/** Types of `` that *might* be supported. */\nconst candidateInputTypes = [\n// `color` must come first. Chrome 56 shows a warning if we change the type to `color` after\n// first changing it to something else:\n// The specified value \"\" does not conform to the required format.\n// The format is \"#rrggbb\" where rr, gg, bb are two-digit hexadecimal numbers.\n'color', 'button', 'checkbox', 'date', 'datetime-local', 'email', 'file', 'hidden', 'image', 'month', 'number', 'password', 'radio', 'range', 'reset', 'search', 'submit', 'tel', 'text', 'time', 'url', 'week'];\n/** @returns The input types supported by this browser. */\nfunction getSupportedInputTypes() {\n // Result is cached.\n if (supportedInputTypes) {\n return supportedInputTypes;\n }\n // We can't check if an input type is not supported until we're on the browser, so say that\n // everything is supported when not on the browser. We don't use `Platform` here since it's\n // just a helper function and can't inject it.\n if (typeof document !== 'object' || !document) {\n supportedInputTypes = new Set(candidateInputTypes);\n return supportedInputTypes;\n }\n let featureTestInput = document.createElement('input');\n supportedInputTypes = new Set(candidateInputTypes.filter(value => {\n featureTestInput.setAttribute('type', value);\n return featureTestInput.type === value;\n }));\n return supportedInputTypes;\n}\n\n/** Cached result of whether the user's browser supports passive event listeners. */\nlet supportsPassiveEvents;\n/**\n * Checks whether the user's browser supports passive event listeners.\n * See: https://github.com/WICG/EventListenerOptions/blob/gh-pages/explainer.md\n */\nfunction supportsPassiveEventListeners() {\n if (supportsPassiveEvents == null && typeof window !== 'undefined') {\n try {\n window.addEventListener('test', null, Object.defineProperty({}, 'passive', {\n get: () => supportsPassiveEvents = true\n }));\n } finally {\n supportsPassiveEvents = supportsPassiveEvents || false;\n }\n }\n return supportsPassiveEvents;\n}\n/**\n * Normalizes an `AddEventListener` object to something that can be passed\n * to `addEventListener` on any browser, no matter whether it supports the\n * `options` parameter.\n * @param options Object to be normalized.\n */\nfunction normalizePassiveListenerOptions(options) {\n return supportsPassiveEventListeners() ? options : !!options.capture;\n}\n\n/** Cached result of the way the browser handles the horizontal scroll axis in RTL mode. */\nlet rtlScrollAxisType;\n/** Cached result of the check that indicates whether the browser supports scroll behaviors. */\nlet scrollBehaviorSupported;\n/** Check whether the browser supports scroll behaviors. */\nfunction supportsScrollBehavior() {\n if (scrollBehaviorSupported == null) {\n // If we're not in the browser, it can't be supported. Also check for `Element`, because\n // some projects stub out the global `document` during SSR which can throw us off.\n if (typeof document !== 'object' || !document || typeof Element !== 'function' || !Element) {\n scrollBehaviorSupported = false;\n return scrollBehaviorSupported;\n }\n // If the element can have a `scrollBehavior` style, we can be sure that it's supported.\n if ('scrollBehavior' in document.documentElement.style) {\n scrollBehaviorSupported = true;\n } else {\n // At this point we have 3 possibilities: `scrollTo` isn't supported at all, it's\n // supported but it doesn't handle scroll behavior, or it has been polyfilled.\n const scrollToFunction = Element.prototype.scrollTo;\n if (scrollToFunction) {\n // We can detect if the function has been polyfilled by calling `toString` on it. Native\n // functions are obfuscated using `[native code]`, whereas if it was overwritten we'd get\n // the actual function source. Via https://davidwalsh.name/detect-native-function. Consider\n // polyfilled functions as supporting scroll behavior.\n scrollBehaviorSupported = !/\\{\\s*\\[native code\\]\\s*\\}/.test(scrollToFunction.toString());\n } else {\n scrollBehaviorSupported = false;\n }\n }\n }\n return scrollBehaviorSupported;\n}\n/**\n * Checks the type of RTL scroll axis used by this browser. As of time of writing, Chrome is NORMAL,\n * Firefox & Safari are NEGATED, and IE & Edge are INVERTED.\n */\nfunction getRtlScrollAxisType() {\n // We can't check unless we're on the browser. Just assume 'normal' if we're not.\n if (typeof document !== 'object' || !document) {\n return 0 /* RtlScrollAxisType.NORMAL */;\n }\n if (rtlScrollAxisType == null) {\n // Create a 1px wide scrolling container and a 2px wide content element.\n const scrollContainer = document.createElement('div');\n const containerStyle = scrollContainer.style;\n scrollContainer.dir = 'rtl';\n containerStyle.width = '1px';\n containerStyle.overflow = 'auto';\n containerStyle.visibility = 'hidden';\n containerStyle.pointerEvents = 'none';\n containerStyle.position = 'absolute';\n const content = document.createElement('div');\n const contentStyle = content.style;\n contentStyle.width = '2px';\n contentStyle.height = '1px';\n scrollContainer.appendChild(content);\n document.body.appendChild(scrollContainer);\n rtlScrollAxisType = 0 /* RtlScrollAxisType.NORMAL */;\n // The viewport starts scrolled all the way to the right in RTL mode. If we are in a NORMAL\n // browser this would mean that the scrollLeft should be 1. If it's zero instead we know we're\n // dealing with one of the other two types of browsers.\n if (scrollContainer.scrollLeft === 0) {\n // In a NEGATED browser the scrollLeft is always somewhere in [-maxScrollAmount, 0]. For an\n // INVERTED browser it is always somewhere in [0, maxScrollAmount]. We can determine which by\n // setting to the scrollLeft to 1. This is past the max for a NEGATED browser, so it will\n // return 0 when we read it again.\n scrollContainer.scrollLeft = 1;\n rtlScrollAxisType = scrollContainer.scrollLeft === 0 ? 1 /* RtlScrollAxisType.NEGATED */ : 2 /* RtlScrollAxisType.INVERTED */;\n }\n scrollContainer.remove();\n }\n return rtlScrollAxisType;\n}\nlet shadowDomIsSupported;\n/** Checks whether the user's browser support Shadow DOM. */\nfunction _supportsShadowDom() {\n if (shadowDomIsSupported == null) {\n const head = typeof document !== 'undefined' ? document.head : null;\n shadowDomIsSupported = !!(head && (head.createShadowRoot || head.attachShadow));\n }\n return shadowDomIsSupported;\n}\n/** Gets the shadow root of an element, if supported and the element is inside the Shadow DOM. */\nfunction _getShadowRoot(element) {\n if (_supportsShadowDom()) {\n const rootNode = element.getRootNode ? element.getRootNode() : null;\n // Note that this should be caught by `_supportsShadowDom`, but some\n // teams have been able to hit this code path on unsupported browsers.\n if (typeof ShadowRoot !== 'undefined' && ShadowRoot && rootNode instanceof ShadowRoot) {\n return rootNode;\n }\n }\n return null;\n}\n/**\n * Gets the currently-focused element on the page while\n * also piercing through Shadow DOM boundaries.\n */\nfunction _getFocusedElementPierceShadowDom() {\n let activeElement = typeof document !== 'undefined' && document ? document.activeElement : null;\n while (activeElement && activeElement.shadowRoot) {\n const newActiveElement = activeElement.shadowRoot.activeElement;\n if (newActiveElement === activeElement) {\n break;\n } else {\n activeElement = newActiveElement;\n }\n }\n return activeElement;\n}\n/** Gets the target of an event while accounting for Shadow DOM. */\nfunction _getEventTarget(event) {\n // If an event is bound outside the Shadow DOM, the `event.target` will\n // point to the shadow root so we have to use `composedPath` instead.\n return event.composedPath ? event.composedPath()[0] : event.target;\n}\n\n/** Gets whether the code is currently running in a test environment. */\nfunction _isTestEnvironment() {\n // We can't use `declare const` because it causes conflicts inside Google with the real typings\n // for these symbols and we can't read them off the global object, because they don't appear to\n // be attached there for some runners like Jest.\n // (see: https://github.com/angular/components/issues/23365#issuecomment-938146643)\n return (\n // @ts-ignore\n typeof __karma__ !== 'undefined' && !!__karma__ ||\n // @ts-ignore\n typeof jasmine !== 'undefined' && !!jasmine ||\n // @ts-ignore\n typeof jest !== 'undefined' && !!jest ||\n // @ts-ignore\n typeof Mocha !== 'undefined' && !!Mocha\n );\n}\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { Platform, PlatformModule, _getEventTarget, _getFocusedElementPierceShadowDom, _getShadowRoot, _isTestEnvironment, _supportsShadowDom, getRtlScrollAxisType, getSupportedInputTypes, normalizePassiveListenerOptions, supportsPassiveEventListeners, supportsScrollBehavior };\n","import * as i0 from '@angular/core';\nimport { InjectionToken, inject, EventEmitter, Injectable, Optional, Inject, Directive, Output, Input, NgModule } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\n\n/**\n * Injection token used to inject the document into Directionality.\n * This is used so that the value can be faked in tests.\n *\n * We can't use the real document in tests because changing the real `dir` causes geometry-based\n * tests in Safari to fail.\n *\n * We also can't re-provide the DOCUMENT token from platform-browser because the unit tests\n * themselves use things like `querySelector` in test code.\n *\n * This token is defined in a separate file from Directionality as a workaround for\n * https://github.com/angular/angular/issues/22559\n *\n * @docs-private\n */\nconst DIR_DOCUMENT = new InjectionToken('cdk-dir-doc', {\n providedIn: 'root',\n factory: DIR_DOCUMENT_FACTORY\n});\n/** @docs-private */\nfunction DIR_DOCUMENT_FACTORY() {\n return inject(DOCUMENT);\n}\n\n/** Regex that matches locales with an RTL script. Taken from `goog.i18n.bidi.isRtlLanguage`. */\nconst RTL_LOCALE_PATTERN = /^(ar|ckb|dv|he|iw|fa|nqo|ps|sd|ug|ur|yi|.*[-_](Adlm|Arab|Hebr|Nkoo|Rohg|Thaa))(?!.*[-_](Latn|Cyrl)($|-|_))($|-|_)/i;\n/** Resolves a string value to a specific direction. */\nfunction _resolveDirectionality(rawValue) {\n const value = rawValue?.toLowerCase() || '';\n if (value === 'auto' && typeof navigator !== 'undefined' && navigator?.language) {\n return RTL_LOCALE_PATTERN.test(navigator.language) ? 'rtl' : 'ltr';\n }\n return value === 'rtl' ? 'rtl' : 'ltr';\n}\n/**\n * The directionality (LTR / RTL) context for the application (or a subtree of it).\n * Exposes the current direction and a stream of direction changes.\n */\nclass Directionality {\n constructor(_document) {\n /** The current 'ltr' or 'rtl' value. */\n this.value = 'ltr';\n /** Stream that emits whenever the 'ltr' / 'rtl' state changes. */\n this.change = new EventEmitter();\n if (_document) {\n const bodyDir = _document.body ? _document.body.dir : null;\n const htmlDir = _document.documentElement ? _document.documentElement.dir : null;\n this.value = _resolveDirectionality(bodyDir || htmlDir || 'ltr');\n }\n }\n ngOnDestroy() {\n this.change.complete();\n }\n static {\n this.ɵfac = function Directionality_Factory(t) {\n return new (t || Directionality)(i0.ɵɵinject(DIR_DOCUMENT, 8));\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: Directionality,\n factory: Directionality.ɵfac,\n providedIn: 'root'\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(Directionality, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], () => [{\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [DIR_DOCUMENT]\n }]\n }], null);\n})();\n\n/**\n * Directive to listen for changes of direction of part of the DOM.\n *\n * Provides itself as Directionality such that descendant directives only need to ever inject\n * Directionality to get the closest direction.\n */\nclass Dir {\n constructor() {\n /** Normalized direction that accounts for invalid/unsupported values. */\n this._dir = 'ltr';\n /** Whether the `value` has been set to its initial value. */\n this._isInitialized = false;\n /** Event emitted when the direction changes. */\n this.change = new EventEmitter();\n }\n /** @docs-private */\n get dir() {\n return this._dir;\n }\n set dir(value) {\n const previousValue = this._dir;\n // Note: `_resolveDirectionality` resolves the language based on the browser's language,\n // whereas the browser does it based on the content of the element. Since doing so based\n // on the content can be expensive, for now we're doing the simpler matching.\n this._dir = _resolveDirectionality(value);\n this._rawDir = value;\n if (previousValue !== this._dir && this._isInitialized) {\n this.change.emit(this._dir);\n }\n }\n /** Current layout direction of the element. */\n get value() {\n return this.dir;\n }\n /** Initialize once default value has been set. */\n ngAfterContentInit() {\n this._isInitialized = true;\n }\n ngOnDestroy() {\n this.change.complete();\n }\n static {\n this.ɵfac = function Dir_Factory(t) {\n return new (t || Dir)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: Dir,\n selectors: [[\"\", \"dir\", \"\"]],\n hostVars: 1,\n hostBindings: function Dir_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"dir\", ctx._rawDir);\n }\n },\n inputs: {\n dir: \"dir\"\n },\n outputs: {\n change: \"dirChange\"\n },\n exportAs: [\"dir\"],\n features: [i0.ɵɵProvidersFeature([{\n provide: Directionality,\n useExisting: Dir\n }])]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(Dir, [{\n type: Directive,\n args: [{\n selector: '[dir]',\n providers: [{\n provide: Directionality,\n useExisting: Dir\n }],\n host: {\n '[attr.dir]': '_rawDir'\n },\n exportAs: 'dir'\n }]\n }], null, {\n change: [{\n type: Output,\n args: ['dirChange']\n }],\n dir: [{\n type: Input\n }]\n });\n})();\nclass BidiModule {\n static {\n this.ɵfac = function BidiModule_Factory(t) {\n return new (t || BidiModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: BidiModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(BidiModule, [{\n type: NgModule,\n args: [{\n exports: [Dir],\n declarations: [Dir]\n }]\n }], null, null);\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { BidiModule, DIR_DOCUMENT, Dir, Directionality };\n","import { ConnectableObservable, isObservable, of, Subject } from 'rxjs';\nimport * as i0 from '@angular/core';\nimport { Injectable, InjectionToken } from '@angular/core';\nclass DataSource {}\n/** Checks whether an object is a data source. */\nfunction isDataSource(value) {\n // Check if the value is a DataSource by observing if it has a connect function. Cannot\n // be checked as an `instanceof DataSource` since people could create their own sources\n // that match the interface, but don't extend DataSource. We also can't use `isObservable`\n // here, because of some internal apps.\n return value && typeof value.connect === 'function' && !(value instanceof ConnectableObservable);\n}\n\n/** DataSource wrapper for a native array. */\nclass ArrayDataSource extends DataSource {\n constructor(_data) {\n super();\n this._data = _data;\n }\n connect() {\n return isObservable(this._data) ? this._data : of(this._data);\n }\n disconnect() {}\n}\n\n/**\n * A repeater that destroys views when they are removed from a\n * {@link ViewContainerRef}. When new items are inserted into the container,\n * the repeater will always construct a new embedded view for each item.\n *\n * @template T The type for the embedded view's $implicit property.\n * @template R The type for the item in each IterableDiffer change record.\n * @template C The type for the context passed to each embedded view.\n */\nclass _DisposeViewRepeaterStrategy {\n applyChanges(changes, viewContainerRef, itemContextFactory, itemValueResolver, itemViewChanged) {\n changes.forEachOperation((record, adjustedPreviousIndex, currentIndex) => {\n let view;\n let operation;\n if (record.previousIndex == null) {\n const insertContext = itemContextFactory(record, adjustedPreviousIndex, currentIndex);\n view = viewContainerRef.createEmbeddedView(insertContext.templateRef, insertContext.context, insertContext.index);\n operation = 1 /* _ViewRepeaterOperation.INSERTED */;\n } else if (currentIndex == null) {\n viewContainerRef.remove(adjustedPreviousIndex);\n operation = 3 /* _ViewRepeaterOperation.REMOVED */;\n } else {\n view = viewContainerRef.get(adjustedPreviousIndex);\n viewContainerRef.move(view, currentIndex);\n operation = 2 /* _ViewRepeaterOperation.MOVED */;\n }\n if (itemViewChanged) {\n itemViewChanged({\n context: view?.context,\n operation,\n record\n });\n }\n });\n }\n detach() {}\n}\n\n/**\n * A repeater that caches views when they are removed from a\n * {@link ViewContainerRef}. When new items are inserted into the container,\n * the repeater will reuse one of the cached views instead of creating a new\n * embedded view. Recycling cached views reduces the quantity of expensive DOM\n * inserts.\n *\n * @template T The type for the embedded view's $implicit property.\n * @template R The type for the item in each IterableDiffer change record.\n * @template C The type for the context passed to each embedded view.\n */\nclass _RecycleViewRepeaterStrategy {\n constructor() {\n /**\n * The size of the cache used to store unused views.\n * Setting the cache size to `0` will disable caching. Defaults to 20 views.\n */\n this.viewCacheSize = 20;\n /**\n * View cache that stores embedded view instances that have been previously stamped out,\n * but don't are not currently rendered. The view repeater will reuse these views rather than\n * creating brand new ones.\n *\n * TODO(michaeljamesparsons) Investigate whether using a linked list would improve performance.\n */\n this._viewCache = [];\n }\n /** Apply changes to the DOM. */\n applyChanges(changes, viewContainerRef, itemContextFactory, itemValueResolver, itemViewChanged) {\n // Rearrange the views to put them in the right location.\n changes.forEachOperation((record, adjustedPreviousIndex, currentIndex) => {\n let view;\n let operation;\n if (record.previousIndex == null) {\n // Item added.\n const viewArgsFactory = () => itemContextFactory(record, adjustedPreviousIndex, currentIndex);\n view = this._insertView(viewArgsFactory, currentIndex, viewContainerRef, itemValueResolver(record));\n operation = view ? 1 /* _ViewRepeaterOperation.INSERTED */ : 0 /* _ViewRepeaterOperation.REPLACED */;\n } else if (currentIndex == null) {\n // Item removed.\n this._detachAndCacheView(adjustedPreviousIndex, viewContainerRef);\n operation = 3 /* _ViewRepeaterOperation.REMOVED */;\n } else {\n // Item moved.\n view = this._moveView(adjustedPreviousIndex, currentIndex, viewContainerRef, itemValueResolver(record));\n operation = 2 /* _ViewRepeaterOperation.MOVED */;\n }\n if (itemViewChanged) {\n itemViewChanged({\n context: view?.context,\n operation,\n record\n });\n }\n });\n }\n detach() {\n for (const view of this._viewCache) {\n view.destroy();\n }\n this._viewCache = [];\n }\n /**\n * Inserts a view for a new item, either from the cache or by creating a new\n * one. Returns `undefined` if the item was inserted into a cached view.\n */\n _insertView(viewArgsFactory, currentIndex, viewContainerRef, value) {\n const cachedView = this._insertViewFromCache(currentIndex, viewContainerRef);\n if (cachedView) {\n cachedView.context.$implicit = value;\n return undefined;\n }\n const viewArgs = viewArgsFactory();\n return viewContainerRef.createEmbeddedView(viewArgs.templateRef, viewArgs.context, viewArgs.index);\n }\n /** Detaches the view at the given index and inserts into the view cache. */\n _detachAndCacheView(index, viewContainerRef) {\n const detachedView = viewContainerRef.detach(index);\n this._maybeCacheView(detachedView, viewContainerRef);\n }\n /** Moves view at the previous index to the current index. */\n _moveView(adjustedPreviousIndex, currentIndex, viewContainerRef, value) {\n const view = viewContainerRef.get(adjustedPreviousIndex);\n viewContainerRef.move(view, currentIndex);\n view.context.$implicit = value;\n return view;\n }\n /**\n * Cache the given detached view. If the cache is full, the view will be\n * destroyed.\n */\n _maybeCacheView(view, viewContainerRef) {\n if (this._viewCache.length < this.viewCacheSize) {\n this._viewCache.push(view);\n } else {\n const index = viewContainerRef.indexOf(view);\n // The host component could remove views from the container outside of\n // the view repeater. It's unlikely this will occur, but just in case,\n // destroy the view on its own, otherwise destroy it through the\n // container to ensure that all the references are removed.\n if (index === -1) {\n view.destroy();\n } else {\n viewContainerRef.remove(index);\n }\n }\n }\n /** Inserts a recycled view from the cache at the given index. */\n _insertViewFromCache(index, viewContainerRef) {\n const cachedView = this._viewCache.pop();\n if (cachedView) {\n viewContainerRef.insert(cachedView, index);\n }\n return cachedView || null;\n }\n}\n\n/**\n * Class to be used to power selecting one or more options from a list.\n */\nclass SelectionModel {\n /** Selected values. */\n get selected() {\n if (!this._selected) {\n this._selected = Array.from(this._selection.values());\n }\n return this._selected;\n }\n constructor(_multiple = false, initiallySelectedValues, _emitChanges = true, compareWith) {\n this._multiple = _multiple;\n this._emitChanges = _emitChanges;\n this.compareWith = compareWith;\n /** Currently-selected values. */\n this._selection = new Set();\n /** Keeps track of the deselected options that haven't been emitted by the change event. */\n this._deselectedToEmit = [];\n /** Keeps track of the selected options that haven't been emitted by the change event. */\n this._selectedToEmit = [];\n /** Event emitted when the value has changed. */\n this.changed = new Subject();\n if (initiallySelectedValues && initiallySelectedValues.length) {\n if (_multiple) {\n initiallySelectedValues.forEach(value => this._markSelected(value));\n } else {\n this._markSelected(initiallySelectedValues[0]);\n }\n // Clear the array in order to avoid firing the change event for preselected values.\n this._selectedToEmit.length = 0;\n }\n }\n /**\n * Selects a value or an array of values.\n * @param values The values to select\n * @return Whether the selection changed as a result of this call\n * @breaking-change 16.0.0 make return type boolean\n */\n select(...values) {\n this._verifyValueAssignment(values);\n values.forEach(value => this._markSelected(value));\n const changed = this._hasQueuedChanges();\n this._emitChangeEvent();\n return changed;\n }\n /**\n * Deselects a value or an array of values.\n * @param values The values to deselect\n * @return Whether the selection changed as a result of this call\n * @breaking-change 16.0.0 make return type boolean\n */\n deselect(...values) {\n this._verifyValueAssignment(values);\n values.forEach(value => this._unmarkSelected(value));\n const changed = this._hasQueuedChanges();\n this._emitChangeEvent();\n return changed;\n }\n /**\n * Sets the selected values\n * @param values The new selected values\n * @return Whether the selection changed as a result of this call\n * @breaking-change 16.0.0 make return type boolean\n */\n setSelection(...values) {\n this._verifyValueAssignment(values);\n const oldValues = this.selected;\n const newSelectedSet = new Set(values);\n values.forEach(value => this._markSelected(value));\n oldValues.filter(value => !newSelectedSet.has(value)).forEach(value => this._unmarkSelected(value));\n const changed = this._hasQueuedChanges();\n this._emitChangeEvent();\n return changed;\n }\n /**\n * Toggles a value between selected and deselected.\n * @param value The value to toggle\n * @return Whether the selection changed as a result of this call\n * @breaking-change 16.0.0 make return type boolean\n */\n toggle(value) {\n return this.isSelected(value) ? this.deselect(value) : this.select(value);\n }\n /**\n * Clears all of the selected values.\n * @param flushEvent Whether to flush the changes in an event.\n * If false, the changes to the selection will be flushed along with the next event.\n * @return Whether the selection changed as a result of this call\n * @breaking-change 16.0.0 make return type boolean\n */\n clear(flushEvent = true) {\n this._unmarkAll();\n const changed = this._hasQueuedChanges();\n if (flushEvent) {\n this._emitChangeEvent();\n }\n return changed;\n }\n /**\n * Determines whether a value is selected.\n */\n isSelected(value) {\n return this._selection.has(this._getConcreteValue(value));\n }\n /**\n * Determines whether the model does not have a value.\n */\n isEmpty() {\n return this._selection.size === 0;\n }\n /**\n * Determines whether the model has a value.\n */\n hasValue() {\n return !this.isEmpty();\n }\n /**\n * Sorts the selected values based on a predicate function.\n */\n sort(predicate) {\n if (this._multiple && this.selected) {\n this._selected.sort(predicate);\n }\n }\n /**\n * Gets whether multiple values can be selected.\n */\n isMultipleSelection() {\n return this._multiple;\n }\n /** Emits a change event and clears the records of selected and deselected values. */\n _emitChangeEvent() {\n // Clear the selected values so they can be re-cached.\n this._selected = null;\n if (this._selectedToEmit.length || this._deselectedToEmit.length) {\n this.changed.next({\n source: this,\n added: this._selectedToEmit,\n removed: this._deselectedToEmit\n });\n this._deselectedToEmit = [];\n this._selectedToEmit = [];\n }\n }\n /** Selects a value. */\n _markSelected(value) {\n value = this._getConcreteValue(value);\n if (!this.isSelected(value)) {\n if (!this._multiple) {\n this._unmarkAll();\n }\n if (!this.isSelected(value)) {\n this._selection.add(value);\n }\n if (this._emitChanges) {\n this._selectedToEmit.push(value);\n }\n }\n }\n /** Deselects a value. */\n _unmarkSelected(value) {\n value = this._getConcreteValue(value);\n if (this.isSelected(value)) {\n this._selection.delete(value);\n if (this._emitChanges) {\n this._deselectedToEmit.push(value);\n }\n }\n }\n /** Clears out the selected values. */\n _unmarkAll() {\n if (!this.isEmpty()) {\n this._selection.forEach(value => this._unmarkSelected(value));\n }\n }\n /**\n * Verifies the value assignment and throws an error if the specified value array is\n * including multiple values while the selection model is not supporting multiple values.\n */\n _verifyValueAssignment(values) {\n if (values.length > 1 && !this._multiple && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw getMultipleValuesInSingleSelectionError();\n }\n }\n /** Whether there are queued up change to be emitted. */\n _hasQueuedChanges() {\n return !!(this._deselectedToEmit.length || this._selectedToEmit.length);\n }\n /** Returns a value that is comparable to inputValue by applying compareWith function, returns the same inputValue otherwise. */\n _getConcreteValue(inputValue) {\n if (!this.compareWith) {\n return inputValue;\n } else {\n for (let selectedValue of this._selection) {\n if (this.compareWith(inputValue, selectedValue)) {\n return selectedValue;\n }\n }\n return inputValue;\n }\n }\n}\n/**\n * Returns an error that reports that multiple values are passed into a selection model\n * with a single value.\n * @docs-private\n */\nfunction getMultipleValuesInSingleSelectionError() {\n return Error('Cannot pass multiple values into SelectionModel with single-value mode.');\n}\n\n/**\n * Class to coordinate unique selection based on name.\n * Intended to be consumed as an Angular service.\n * This service is needed because native radio change events are only fired on the item currently\n * being selected, and we still need to uncheck the previous selection.\n *\n * This service does not *store* any IDs and names because they may change at any time, so it is\n * less error-prone if they are simply passed through when the events occur.\n */\nclass UniqueSelectionDispatcher {\n constructor() {\n this._listeners = [];\n }\n /**\n * Notify other items that selection for the given name has been set.\n * @param id ID of the item.\n * @param name Name of the item.\n */\n notify(id, name) {\n for (let listener of this._listeners) {\n listener(id, name);\n }\n }\n /**\n * Listen for future changes to item selection.\n * @return Function used to deregister listener\n */\n listen(listener) {\n this._listeners.push(listener);\n return () => {\n this._listeners = this._listeners.filter(registered => {\n return listener !== registered;\n });\n };\n }\n ngOnDestroy() {\n this._listeners = [];\n }\n static {\n this.ɵfac = function UniqueSelectionDispatcher_Factory(t) {\n return new (t || UniqueSelectionDispatcher)();\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: UniqueSelectionDispatcher,\n factory: UniqueSelectionDispatcher.ɵfac,\n providedIn: 'root'\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(UniqueSelectionDispatcher, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], null, null);\n})();\n\n/**\n * Injection token for {@link _ViewRepeater}. This token is for use by Angular Material only.\n * @docs-private\n */\nconst _VIEW_REPEATER_STRATEGY = new InjectionToken('_ViewRepeater');\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { ArrayDataSource, DataSource, SelectionModel, UniqueSelectionDispatcher, _DisposeViewRepeaterStrategy, _RecycleViewRepeaterStrategy, _VIEW_REPEATER_STRATEGY, getMultipleValuesInSingleSelectionError, isDataSource };\n","import { coerceNumberProperty, coerceElement } from '@angular/cdk/coercion';\nimport * as i0 from '@angular/core';\nimport { InjectionToken, forwardRef, Directive, Input, Injectable, Optional, Inject, inject, booleanAttribute, Component, ViewEncapsulation, ChangeDetectionStrategy, Output, ViewChild, SkipSelf, ElementRef, NgModule } from '@angular/core';\nimport { Subject, of, Observable, fromEvent, animationFrameScheduler, asapScheduler, Subscription, isObservable } from 'rxjs';\nimport { distinctUntilChanged, auditTime, filter, takeUntil, startWith, pairwise, switchMap, shareReplay } from 'rxjs/operators';\nimport * as i1 from '@angular/cdk/platform';\nimport { getRtlScrollAxisType, supportsScrollBehavior, Platform } from '@angular/cdk/platform';\nimport { DOCUMENT } from '@angular/common';\nimport * as i2 from '@angular/cdk/bidi';\nimport { BidiModule } from '@angular/cdk/bidi';\nimport * as i2$1 from '@angular/cdk/collections';\nimport { isDataSource, ArrayDataSource, _VIEW_REPEATER_STRATEGY, _RecycleViewRepeaterStrategy } from '@angular/cdk/collections';\n\n/** The injection token used to specify the virtual scrolling strategy. */\nconst _c0 = [\"contentWrapper\"];\nconst _c1 = [\"*\"];\nconst VIRTUAL_SCROLL_STRATEGY = new InjectionToken('VIRTUAL_SCROLL_STRATEGY');\n\n/** Virtual scrolling strategy for lists with items of known fixed size. */\nclass FixedSizeVirtualScrollStrategy {\n /**\n * @param itemSize The size of the items in the virtually scrolling list.\n * @param minBufferPx The minimum amount of buffer (in pixels) before needing to render more\n * @param maxBufferPx The amount of buffer (in pixels) to render when rendering more.\n */\n constructor(itemSize, minBufferPx, maxBufferPx) {\n this._scrolledIndexChange = new Subject();\n /** @docs-private Implemented as part of VirtualScrollStrategy. */\n this.scrolledIndexChange = this._scrolledIndexChange.pipe(distinctUntilChanged());\n /** The attached viewport. */\n this._viewport = null;\n this._itemSize = itemSize;\n this._minBufferPx = minBufferPx;\n this._maxBufferPx = maxBufferPx;\n }\n /**\n * Attaches this scroll strategy to a viewport.\n * @param viewport The viewport to attach this strategy to.\n */\n attach(viewport) {\n this._viewport = viewport;\n this._updateTotalContentSize();\n this._updateRenderedRange();\n }\n /** Detaches this scroll strategy from the currently attached viewport. */\n detach() {\n this._scrolledIndexChange.complete();\n this._viewport = null;\n }\n /**\n * Update the item size and buffer size.\n * @param itemSize The size of the items in the virtually scrolling list.\n * @param minBufferPx The minimum amount of buffer (in pixels) before needing to render more\n * @param maxBufferPx The amount of buffer (in pixels) to render when rendering more.\n */\n updateItemAndBufferSize(itemSize, minBufferPx, maxBufferPx) {\n if (maxBufferPx < minBufferPx && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('CDK virtual scroll: maxBufferPx must be greater than or equal to minBufferPx');\n }\n this._itemSize = itemSize;\n this._minBufferPx = minBufferPx;\n this._maxBufferPx = maxBufferPx;\n this._updateTotalContentSize();\n this._updateRenderedRange();\n }\n /** @docs-private Implemented as part of VirtualScrollStrategy. */\n onContentScrolled() {\n this._updateRenderedRange();\n }\n /** @docs-private Implemented as part of VirtualScrollStrategy. */\n onDataLengthChanged() {\n this._updateTotalContentSize();\n this._updateRenderedRange();\n }\n /** @docs-private Implemented as part of VirtualScrollStrategy. */\n onContentRendered() {\n /* no-op */\n }\n /** @docs-private Implemented as part of VirtualScrollStrategy. */\n onRenderedOffsetChanged() {\n /* no-op */\n }\n /**\n * Scroll to the offset for the given index.\n * @param index The index of the element to scroll to.\n * @param behavior The ScrollBehavior to use when scrolling.\n */\n scrollToIndex(index, behavior) {\n if (this._viewport) {\n this._viewport.scrollToOffset(index * this._itemSize, behavior);\n }\n }\n /** Update the viewport's total content size. */\n _updateTotalContentSize() {\n if (!this._viewport) {\n return;\n }\n this._viewport.setTotalContentSize(this._viewport.getDataLength() * this._itemSize);\n }\n /** Update the viewport's rendered range. */\n _updateRenderedRange() {\n if (!this._viewport) {\n return;\n }\n const renderedRange = this._viewport.getRenderedRange();\n const newRange = {\n start: renderedRange.start,\n end: renderedRange.end\n };\n const viewportSize = this._viewport.getViewportSize();\n const dataLength = this._viewport.getDataLength();\n let scrollOffset = this._viewport.measureScrollOffset();\n // Prevent NaN as result when dividing by zero.\n let firstVisibleIndex = this._itemSize > 0 ? scrollOffset / this._itemSize : 0;\n // If user scrolls to the bottom of the list and data changes to a smaller list\n if (newRange.end > dataLength) {\n // We have to recalculate the first visible index based on new data length and viewport size.\n const maxVisibleItems = Math.ceil(viewportSize / this._itemSize);\n const newVisibleIndex = Math.max(0, Math.min(firstVisibleIndex, dataLength - maxVisibleItems));\n // If first visible index changed we must update scroll offset to handle start/end buffers\n // Current range must also be adjusted to cover the new position (bottom of new list).\n if (firstVisibleIndex != newVisibleIndex) {\n firstVisibleIndex = newVisibleIndex;\n scrollOffset = newVisibleIndex * this._itemSize;\n newRange.start = Math.floor(firstVisibleIndex);\n }\n newRange.end = Math.max(0, Math.min(dataLength, newRange.start + maxVisibleItems));\n }\n const startBuffer = scrollOffset - newRange.start * this._itemSize;\n if (startBuffer < this._minBufferPx && newRange.start != 0) {\n const expandStart = Math.ceil((this._maxBufferPx - startBuffer) / this._itemSize);\n newRange.start = Math.max(0, newRange.start - expandStart);\n newRange.end = Math.min(dataLength, Math.ceil(firstVisibleIndex + (viewportSize + this._minBufferPx) / this._itemSize));\n } else {\n const endBuffer = newRange.end * this._itemSize - (scrollOffset + viewportSize);\n if (endBuffer < this._minBufferPx && newRange.end != dataLength) {\n const expandEnd = Math.ceil((this._maxBufferPx - endBuffer) / this._itemSize);\n if (expandEnd > 0) {\n newRange.end = Math.min(dataLength, newRange.end + expandEnd);\n newRange.start = Math.max(0, Math.floor(firstVisibleIndex - this._minBufferPx / this._itemSize));\n }\n }\n }\n this._viewport.setRenderedRange(newRange);\n this._viewport.setRenderedContentOffset(this._itemSize * newRange.start);\n this._scrolledIndexChange.next(Math.floor(firstVisibleIndex));\n }\n}\n/**\n * Provider factory for `FixedSizeVirtualScrollStrategy` that simply extracts the already created\n * `FixedSizeVirtualScrollStrategy` from the given directive.\n * @param fixedSizeDir The instance of `CdkFixedSizeVirtualScroll` to extract the\n * `FixedSizeVirtualScrollStrategy` from.\n */\nfunction _fixedSizeVirtualScrollStrategyFactory(fixedSizeDir) {\n return fixedSizeDir._scrollStrategy;\n}\n/** A virtual scroll strategy that supports fixed-size items. */\nclass CdkFixedSizeVirtualScroll {\n constructor() {\n this._itemSize = 20;\n this._minBufferPx = 100;\n this._maxBufferPx = 200;\n /** The scroll strategy used by this directive. */\n this._scrollStrategy = new FixedSizeVirtualScrollStrategy(this.itemSize, this.minBufferPx, this.maxBufferPx);\n }\n /** The size of the items in the list (in pixels). */\n get itemSize() {\n return this._itemSize;\n }\n set itemSize(value) {\n this._itemSize = coerceNumberProperty(value);\n }\n /**\n * The minimum amount of buffer rendered beyond the viewport (in pixels).\n * If the amount of buffer dips below this number, more items will be rendered. Defaults to 100px.\n */\n get minBufferPx() {\n return this._minBufferPx;\n }\n set minBufferPx(value) {\n this._minBufferPx = coerceNumberProperty(value);\n }\n /**\n * The number of pixels worth of buffer to render for when rendering new items. Defaults to 200px.\n */\n get maxBufferPx() {\n return this._maxBufferPx;\n }\n set maxBufferPx(value) {\n this._maxBufferPx = coerceNumberProperty(value);\n }\n ngOnChanges() {\n this._scrollStrategy.updateItemAndBufferSize(this.itemSize, this.minBufferPx, this.maxBufferPx);\n }\n static {\n this.ɵfac = function CdkFixedSizeVirtualScroll_Factory(t) {\n return new (t || CdkFixedSizeVirtualScroll)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: CdkFixedSizeVirtualScroll,\n selectors: [[\"cdk-virtual-scroll-viewport\", \"itemSize\", \"\"]],\n inputs: {\n itemSize: \"itemSize\",\n minBufferPx: \"minBufferPx\",\n maxBufferPx: \"maxBufferPx\"\n },\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: VIRTUAL_SCROLL_STRATEGY,\n useFactory: _fixedSizeVirtualScrollStrategyFactory,\n deps: [forwardRef(() => CdkFixedSizeVirtualScroll)]\n }]), i0.ɵɵNgOnChangesFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(CdkFixedSizeVirtualScroll, [{\n type: Directive,\n args: [{\n selector: 'cdk-virtual-scroll-viewport[itemSize]',\n standalone: true,\n providers: [{\n provide: VIRTUAL_SCROLL_STRATEGY,\n useFactory: _fixedSizeVirtualScrollStrategyFactory,\n deps: [forwardRef(() => CdkFixedSizeVirtualScroll)]\n }]\n }]\n }], null, {\n itemSize: [{\n type: Input\n }],\n minBufferPx: [{\n type: Input\n }],\n maxBufferPx: [{\n type: Input\n }]\n });\n})();\n\n/** Time in ms to throttle the scrolling events by default. */\nconst DEFAULT_SCROLL_TIME = 20;\n/**\n * Service contained all registered Scrollable references and emits an event when any one of the\n * Scrollable references emit a scrolled event.\n */\nclass ScrollDispatcher {\n constructor(_ngZone, _platform, document) {\n this._ngZone = _ngZone;\n this._platform = _platform;\n /** Subject for notifying that a registered scrollable reference element has been scrolled. */\n this._scrolled = new Subject();\n /** Keeps track of the global `scroll` and `resize` subscriptions. */\n this._globalSubscription = null;\n /** Keeps track of the amount of subscriptions to `scrolled`. Used for cleaning up afterwards. */\n this._scrolledCount = 0;\n /**\n * Map of all the scrollable references that are registered with the service and their\n * scroll event subscriptions.\n */\n this.scrollContainers = new Map();\n this._document = document;\n }\n /**\n * Registers a scrollable instance with the service and listens for its scrolled events. When the\n * scrollable is scrolled, the service emits the event to its scrolled observable.\n * @param scrollable Scrollable instance to be registered.\n */\n register(scrollable) {\n if (!this.scrollContainers.has(scrollable)) {\n this.scrollContainers.set(scrollable, scrollable.elementScrolled().subscribe(() => this._scrolled.next(scrollable)));\n }\n }\n /**\n * De-registers a Scrollable reference and unsubscribes from its scroll event observable.\n * @param scrollable Scrollable instance to be deregistered.\n */\n deregister(scrollable) {\n const scrollableReference = this.scrollContainers.get(scrollable);\n if (scrollableReference) {\n scrollableReference.unsubscribe();\n this.scrollContainers.delete(scrollable);\n }\n }\n /**\n * Returns an observable that emits an event whenever any of the registered Scrollable\n * references (or window, document, or body) fire a scrolled event. Can provide a time in ms\n * to override the default \"throttle\" time.\n *\n * **Note:** in order to avoid hitting change detection for every scroll event,\n * all of the events emitted from this stream will be run outside the Angular zone.\n * If you need to update any data bindings as a result of a scroll event, you have\n * to run the callback using `NgZone.run`.\n */\n scrolled(auditTimeInMs = DEFAULT_SCROLL_TIME) {\n if (!this._platform.isBrowser) {\n return of();\n }\n return new Observable(observer => {\n if (!this._globalSubscription) {\n this._addGlobalListener();\n }\n // In the case of a 0ms delay, use an observable without auditTime\n // since it does add a perceptible delay in processing overhead.\n const subscription = auditTimeInMs > 0 ? this._scrolled.pipe(auditTime(auditTimeInMs)).subscribe(observer) : this._scrolled.subscribe(observer);\n this._scrolledCount++;\n return () => {\n subscription.unsubscribe();\n this._scrolledCount--;\n if (!this._scrolledCount) {\n this._removeGlobalListener();\n }\n };\n });\n }\n ngOnDestroy() {\n this._removeGlobalListener();\n this.scrollContainers.forEach((_, container) => this.deregister(container));\n this._scrolled.complete();\n }\n /**\n * Returns an observable that emits whenever any of the\n * scrollable ancestors of an element are scrolled.\n * @param elementOrElementRef Element whose ancestors to listen for.\n * @param auditTimeInMs Time to throttle the scroll events.\n */\n ancestorScrolled(elementOrElementRef, auditTimeInMs) {\n const ancestors = this.getAncestorScrollContainers(elementOrElementRef);\n return this.scrolled(auditTimeInMs).pipe(filter(target => {\n return !target || ancestors.indexOf(target) > -1;\n }));\n }\n /** Returns all registered Scrollables that contain the provided element. */\n getAncestorScrollContainers(elementOrElementRef) {\n const scrollingContainers = [];\n this.scrollContainers.forEach((_subscription, scrollable) => {\n if (this._scrollableContainsElement(scrollable, elementOrElementRef)) {\n scrollingContainers.push(scrollable);\n }\n });\n return scrollingContainers;\n }\n /** Use defaultView of injected document if available or fallback to global window reference */\n _getWindow() {\n return this._document.defaultView || window;\n }\n /** Returns true if the element is contained within the provided Scrollable. */\n _scrollableContainsElement(scrollable, elementOrElementRef) {\n let element = coerceElement(elementOrElementRef);\n let scrollableElement = scrollable.getElementRef().nativeElement;\n // Traverse through the element parents until we reach null, checking if any of the elements\n // are the scrollable's element.\n do {\n if (element == scrollableElement) {\n return true;\n }\n } while (element = element.parentElement);\n return false;\n }\n /** Sets up the global scroll listeners. */\n _addGlobalListener() {\n this._globalSubscription = this._ngZone.runOutsideAngular(() => {\n const window = this._getWindow();\n return fromEvent(window.document, 'scroll').subscribe(() => this._scrolled.next());\n });\n }\n /** Cleans up the global scroll listener. */\n _removeGlobalListener() {\n if (this._globalSubscription) {\n this._globalSubscription.unsubscribe();\n this._globalSubscription = null;\n }\n }\n static {\n this.ɵfac = function ScrollDispatcher_Factory(t) {\n return new (t || ScrollDispatcher)(i0.ɵɵinject(i0.NgZone), i0.ɵɵinject(i1.Platform), i0.ɵɵinject(DOCUMENT, 8));\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: ScrollDispatcher,\n factory: ScrollDispatcher.ɵfac,\n providedIn: 'root'\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(ScrollDispatcher, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], () => [{\n type: i0.NgZone\n }, {\n type: i1.Platform\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [DOCUMENT]\n }]\n }], null);\n})();\n\n/**\n * Sends an event when the directive's element is scrolled. Registers itself with the\n * ScrollDispatcher service to include itself as part of its collection of scrolling events that it\n * can be listened to through the service.\n */\nclass CdkScrollable {\n constructor(elementRef, scrollDispatcher, ngZone, dir) {\n this.elementRef = elementRef;\n this.scrollDispatcher = scrollDispatcher;\n this.ngZone = ngZone;\n this.dir = dir;\n this._destroyed = new Subject();\n this._elementScrolled = new Observable(observer => this.ngZone.runOutsideAngular(() => fromEvent(this.elementRef.nativeElement, 'scroll').pipe(takeUntil(this._destroyed)).subscribe(observer)));\n }\n ngOnInit() {\n this.scrollDispatcher.register(this);\n }\n ngOnDestroy() {\n this.scrollDispatcher.deregister(this);\n this._destroyed.next();\n this._destroyed.complete();\n }\n /** Returns observable that emits when a scroll event is fired on the host element. */\n elementScrolled() {\n return this._elementScrolled;\n }\n /** Gets the ElementRef for the viewport. */\n getElementRef() {\n return this.elementRef;\n }\n /**\n * Scrolls to the specified offsets. This is a normalized version of the browser's native scrollTo\n * method, since browsers are not consistent about what scrollLeft means in RTL. For this method\n * left and right always refer to the left and right side of the scrolling container irrespective\n * of the layout direction. start and end refer to left and right in an LTR context and vice-versa\n * in an RTL context.\n * @param options specified the offsets to scroll to.\n */\n scrollTo(options) {\n const el = this.elementRef.nativeElement;\n const isRtl = this.dir && this.dir.value == 'rtl';\n // Rewrite start & end offsets as right or left offsets.\n if (options.left == null) {\n options.left = isRtl ? options.end : options.start;\n }\n if (options.right == null) {\n options.right = isRtl ? options.start : options.end;\n }\n // Rewrite the bottom offset as a top offset.\n if (options.bottom != null) {\n options.top = el.scrollHeight - el.clientHeight - options.bottom;\n }\n // Rewrite the right offset as a left offset.\n if (isRtl && getRtlScrollAxisType() != 0 /* RtlScrollAxisType.NORMAL */) {\n if (options.left != null) {\n options.right = el.scrollWidth - el.clientWidth - options.left;\n }\n if (getRtlScrollAxisType() == 2 /* RtlScrollAxisType.INVERTED */) {\n options.left = options.right;\n } else if (getRtlScrollAxisType() == 1 /* RtlScrollAxisType.NEGATED */) {\n options.left = options.right ? -options.right : options.right;\n }\n } else {\n if (options.right != null) {\n options.left = el.scrollWidth - el.clientWidth - options.right;\n }\n }\n this._applyScrollToOptions(options);\n }\n _applyScrollToOptions(options) {\n const el = this.elementRef.nativeElement;\n if (supportsScrollBehavior()) {\n el.scrollTo(options);\n } else {\n if (options.top != null) {\n el.scrollTop = options.top;\n }\n if (options.left != null) {\n el.scrollLeft = options.left;\n }\n }\n }\n /**\n * Measures the scroll offset relative to the specified edge of the viewport. This method can be\n * used instead of directly checking scrollLeft or scrollTop, since browsers are not consistent\n * about what scrollLeft means in RTL. The values returned by this method are normalized such that\n * left and right always refer to the left and right side of the scrolling container irrespective\n * of the layout direction. start and end refer to left and right in an LTR context and vice-versa\n * in an RTL context.\n * @param from The edge to measure from.\n */\n measureScrollOffset(from) {\n const LEFT = 'left';\n const RIGHT = 'right';\n const el = this.elementRef.nativeElement;\n if (from == 'top') {\n return el.scrollTop;\n }\n if (from == 'bottom') {\n return el.scrollHeight - el.clientHeight - el.scrollTop;\n }\n // Rewrite start & end as left or right offsets.\n const isRtl = this.dir && this.dir.value == 'rtl';\n if (from == 'start') {\n from = isRtl ? RIGHT : LEFT;\n } else if (from == 'end') {\n from = isRtl ? LEFT : RIGHT;\n }\n if (isRtl && getRtlScrollAxisType() == 2 /* RtlScrollAxisType.INVERTED */) {\n // For INVERTED, scrollLeft is (scrollWidth - clientWidth) when scrolled all the way left and\n // 0 when scrolled all the way right.\n if (from == LEFT) {\n return el.scrollWidth - el.clientWidth - el.scrollLeft;\n } else {\n return el.scrollLeft;\n }\n } else if (isRtl && getRtlScrollAxisType() == 1 /* RtlScrollAxisType.NEGATED */) {\n // For NEGATED, scrollLeft is -(scrollWidth - clientWidth) when scrolled all the way left and\n // 0 when scrolled all the way right.\n if (from == LEFT) {\n return el.scrollLeft + el.scrollWidth - el.clientWidth;\n } else {\n return -el.scrollLeft;\n }\n } else {\n // For NORMAL, as well as non-RTL contexts, scrollLeft is 0 when scrolled all the way left and\n // (scrollWidth - clientWidth) when scrolled all the way right.\n if (from == LEFT) {\n return el.scrollLeft;\n } else {\n return el.scrollWidth - el.clientWidth - el.scrollLeft;\n }\n }\n }\n static {\n this.ɵfac = function CdkScrollable_Factory(t) {\n return new (t || CdkScrollable)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(ScrollDispatcher), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i2.Directionality, 8));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: CdkScrollable,\n selectors: [[\"\", \"cdk-scrollable\", \"\"], [\"\", \"cdkScrollable\", \"\"]],\n standalone: true\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(CdkScrollable, [{\n type: Directive,\n args: [{\n selector: '[cdk-scrollable], [cdkScrollable]',\n standalone: true\n }]\n }], () => [{\n type: i0.ElementRef\n }, {\n type: ScrollDispatcher\n }, {\n type: i0.NgZone\n }, {\n type: i2.Directionality,\n decorators: [{\n type: Optional\n }]\n }], null);\n})();\n\n/** Time in ms to throttle the resize events by default. */\nconst DEFAULT_RESIZE_TIME = 20;\n/**\n * Simple utility for getting the bounds of the browser viewport.\n * @docs-private\n */\nclass ViewportRuler {\n constructor(_platform, ngZone, document) {\n this._platform = _platform;\n /** Stream of viewport change events. */\n this._change = new Subject();\n /** Event listener that will be used to handle the viewport change events. */\n this._changeListener = event => {\n this._change.next(event);\n };\n this._document = document;\n ngZone.runOutsideAngular(() => {\n if (_platform.isBrowser) {\n const window = this._getWindow();\n // Note that bind the events ourselves, rather than going through something like RxJS's\n // `fromEvent` so that we can ensure that they're bound outside of the NgZone.\n window.addEventListener('resize', this._changeListener);\n window.addEventListener('orientationchange', this._changeListener);\n }\n // Clear the cached position so that the viewport is re-measured next time it is required.\n // We don't need to keep track of the subscription, because it is completed on destroy.\n this.change().subscribe(() => this._viewportSize = null);\n });\n }\n ngOnDestroy() {\n if (this._platform.isBrowser) {\n const window = this._getWindow();\n window.removeEventListener('resize', this._changeListener);\n window.removeEventListener('orientationchange', this._changeListener);\n }\n this._change.complete();\n }\n /** Returns the viewport's width and height. */\n getViewportSize() {\n if (!this._viewportSize) {\n this._updateViewportSize();\n }\n const output = {\n width: this._viewportSize.width,\n height: this._viewportSize.height\n };\n // If we're not on a browser, don't cache the size since it'll be mocked out anyway.\n if (!this._platform.isBrowser) {\n this._viewportSize = null;\n }\n return output;\n }\n /** Gets a ClientRect for the viewport's bounds. */\n getViewportRect() {\n // Use the document element's bounding rect rather than the window scroll properties\n // (e.g. pageYOffset, scrollY) due to in issue in Chrome and IE where window scroll\n // properties and client coordinates (boundingClientRect, clientX/Y, etc.) are in different\n // conceptual viewports. Under most circumstances these viewports are equivalent, but they\n // can disagree when the page is pinch-zoomed (on devices that support touch).\n // See https://bugs.chromium.org/p/chromium/issues/detail?id=489206#c4\n // We use the documentElement instead of the body because, by default (without a css reset)\n // browsers typically give the document body an 8px margin, which is not included in\n // getBoundingClientRect().\n const scrollPosition = this.getViewportScrollPosition();\n const {\n width,\n height\n } = this.getViewportSize();\n return {\n top: scrollPosition.top,\n left: scrollPosition.left,\n bottom: scrollPosition.top + height,\n right: scrollPosition.left + width,\n height,\n width\n };\n }\n /** Gets the (top, left) scroll position of the viewport. */\n getViewportScrollPosition() {\n // While we can get a reference to the fake document\n // during SSR, it doesn't have getBoundingClientRect.\n if (!this._platform.isBrowser) {\n return {\n top: 0,\n left: 0\n };\n }\n // The top-left-corner of the viewport is determined by the scroll position of the document\n // body, normally just (scrollLeft, scrollTop). However, Chrome and Firefox disagree about\n // whether `document.body` or `document.documentElement` is the scrolled element, so reading\n // `scrollTop` and `scrollLeft` is inconsistent. However, using the bounding rect of\n // `document.documentElement` works consistently, where the `top` and `left` values will\n // equal negative the scroll position.\n const document = this._document;\n const window = this._getWindow();\n const documentElement = document.documentElement;\n const documentRect = documentElement.getBoundingClientRect();\n const top = -documentRect.top || document.body.scrollTop || window.scrollY || documentElement.scrollTop || 0;\n const left = -documentRect.left || document.body.scrollLeft || window.scrollX || documentElement.scrollLeft || 0;\n return {\n top,\n left\n };\n }\n /**\n * Returns a stream that emits whenever the size of the viewport changes.\n * This stream emits outside of the Angular zone.\n * @param throttleTime Time in milliseconds to throttle the stream.\n */\n change(throttleTime = DEFAULT_RESIZE_TIME) {\n return throttleTime > 0 ? this._change.pipe(auditTime(throttleTime)) : this._change;\n }\n /** Use defaultView of injected document if available or fallback to global window reference */\n _getWindow() {\n return this._document.defaultView || window;\n }\n /** Updates the cached viewport size. */\n _updateViewportSize() {\n const window = this._getWindow();\n this._viewportSize = this._platform.isBrowser ? {\n width: window.innerWidth,\n height: window.innerHeight\n } : {\n width: 0,\n height: 0\n };\n }\n static {\n this.ɵfac = function ViewportRuler_Factory(t) {\n return new (t || ViewportRuler)(i0.ɵɵinject(i1.Platform), i0.ɵɵinject(i0.NgZone), i0.ɵɵinject(DOCUMENT, 8));\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: ViewportRuler,\n factory: ViewportRuler.ɵfac,\n providedIn: 'root'\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(ViewportRuler, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], () => [{\n type: i1.Platform\n }, {\n type: i0.NgZone\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [DOCUMENT]\n }]\n }], null);\n})();\nconst VIRTUAL_SCROLLABLE = new InjectionToken('VIRTUAL_SCROLLABLE');\n/**\n * Extending the {@link CdkScrollable} to be used as scrolling container for virtual scrolling.\n */\nclass CdkVirtualScrollable extends CdkScrollable {\n constructor(elementRef, scrollDispatcher, ngZone, dir) {\n super(elementRef, scrollDispatcher, ngZone, dir);\n }\n /**\n * Measure the viewport size for the provided orientation.\n *\n * @param orientation The orientation to measure the size from.\n */\n measureViewportSize(orientation) {\n const viewportEl = this.elementRef.nativeElement;\n return orientation === 'horizontal' ? viewportEl.clientWidth : viewportEl.clientHeight;\n }\n static {\n this.ɵfac = function CdkVirtualScrollable_Factory(t) {\n return new (t || CdkVirtualScrollable)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(ScrollDispatcher), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i2.Directionality, 8));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: CdkVirtualScrollable,\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(CdkVirtualScrollable, [{\n type: Directive\n }], () => [{\n type: i0.ElementRef\n }, {\n type: ScrollDispatcher\n }, {\n type: i0.NgZone\n }, {\n type: i2.Directionality,\n decorators: [{\n type: Optional\n }]\n }], null);\n})();\n\n/** Checks if the given ranges are equal. */\nfunction rangesEqual(r1, r2) {\n return r1.start == r2.start && r1.end == r2.end;\n}\n/**\n * Scheduler to be used for scroll events. Needs to fall back to\n * something that doesn't rely on requestAnimationFrame on environments\n * that don't support it (e.g. server-side rendering).\n */\nconst SCROLL_SCHEDULER = typeof requestAnimationFrame !== 'undefined' ? animationFrameScheduler : asapScheduler;\n/** A viewport that virtualizes its scrolling with the help of `CdkVirtualForOf`. */\nclass CdkVirtualScrollViewport extends CdkVirtualScrollable {\n /** The direction the viewport scrolls. */\n get orientation() {\n return this._orientation;\n }\n set orientation(orientation) {\n if (this._orientation !== orientation) {\n this._orientation = orientation;\n this._calculateSpacerSize();\n }\n }\n constructor(elementRef, _changeDetectorRef, ngZone, _scrollStrategy, dir, scrollDispatcher, viewportRuler, scrollable) {\n super(elementRef, scrollDispatcher, ngZone, dir);\n this.elementRef = elementRef;\n this._changeDetectorRef = _changeDetectorRef;\n this._scrollStrategy = _scrollStrategy;\n this.scrollable = scrollable;\n this._platform = inject(Platform);\n /** Emits when the viewport is detached from a CdkVirtualForOf. */\n this._detachedSubject = new Subject();\n /** Emits when the rendered range changes. */\n this._renderedRangeSubject = new Subject();\n this._orientation = 'vertical';\n /**\n * Whether rendered items should persist in the DOM after scrolling out of view. By default, items\n * will be removed.\n */\n this.appendOnly = false;\n // Note: we don't use the typical EventEmitter here because we need to subscribe to the scroll\n // strategy lazily (i.e. only if the user is actually listening to the events). We do this because\n // depending on how the strategy calculates the scrolled index, it may come at a cost to\n // performance.\n /** Emits when the index of the first element visible in the viewport changes. */\n this.scrolledIndexChange = new Observable(observer => this._scrollStrategy.scrolledIndexChange.subscribe(index => Promise.resolve().then(() => this.ngZone.run(() => observer.next(index)))));\n /** A stream that emits whenever the rendered range changes. */\n this.renderedRangeStream = this._renderedRangeSubject;\n /**\n * The total size of all content (in pixels), including content that is not currently rendered.\n */\n this._totalContentSize = 0;\n /** A string representing the `style.width` property value to be used for the spacer element. */\n this._totalContentWidth = '';\n /** A string representing the `style.height` property value to be used for the spacer element. */\n this._totalContentHeight = '';\n /** The currently rendered range of indices. */\n this._renderedRange = {\n start: 0,\n end: 0\n };\n /** The length of the data bound to this viewport (in number of items). */\n this._dataLength = 0;\n /** The size of the viewport (in pixels). */\n this._viewportSize = 0;\n /** The last rendered content offset that was set. */\n this._renderedContentOffset = 0;\n /**\n * Whether the last rendered content offset was to the end of the content (and therefore needs to\n * be rewritten as an offset to the start of the content).\n */\n this._renderedContentOffsetNeedsRewrite = false;\n /** Whether there is a pending change detection cycle. */\n this._isChangeDetectionPending = false;\n /** A list of functions to run after the next change detection cycle. */\n this._runAfterChangeDetection = [];\n /** Subscription to changes in the viewport size. */\n this._viewportChanges = Subscription.EMPTY;\n if (!_scrollStrategy && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('Error: cdk-virtual-scroll-viewport requires the \"itemSize\" property to be set.');\n }\n this._viewportChanges = viewportRuler.change().subscribe(() => {\n this.checkViewportSize();\n });\n if (!this.scrollable) {\n // No scrollable is provided, so the virtual-scroll-viewport needs to become a scrollable\n this.elementRef.nativeElement.classList.add('cdk-virtual-scrollable');\n this.scrollable = this;\n }\n }\n ngOnInit() {\n // Scrolling depends on the element dimensions which we can't get during SSR.\n if (!this._platform.isBrowser) {\n return;\n }\n if (this.scrollable === this) {\n super.ngOnInit();\n }\n // It's still too early to measure the viewport at this point. Deferring with a promise allows\n // the Viewport to be rendered with the correct size before we measure. We run this outside the\n // zone to avoid causing more change detection cycles. We handle the change detection loop\n // ourselves instead.\n this.ngZone.runOutsideAngular(() => Promise.resolve().then(() => {\n this._measureViewportSize();\n this._scrollStrategy.attach(this);\n this.scrollable.elementScrolled().pipe(\n // Start off with a fake scroll event so we properly detect our initial position.\n startWith(null),\n // Collect multiple events into one until the next animation frame. This way if\n // there are multiple scroll events in the same frame we only need to recheck\n // our layout once.\n auditTime(0, SCROLL_SCHEDULER),\n // Usually `elementScrolled` is completed when the scrollable is destroyed, but\n // that may not be the case if a `CdkVirtualScrollableElement` is used so we have\n // to unsubscribe here just in case.\n takeUntil(this._destroyed)).subscribe(() => this._scrollStrategy.onContentScrolled());\n this._markChangeDetectionNeeded();\n }));\n }\n ngOnDestroy() {\n this.detach();\n this._scrollStrategy.detach();\n // Complete all subjects\n this._renderedRangeSubject.complete();\n this._detachedSubject.complete();\n this._viewportChanges.unsubscribe();\n super.ngOnDestroy();\n }\n /** Attaches a `CdkVirtualScrollRepeater` to this viewport. */\n attach(forOf) {\n if (this._forOf && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('CdkVirtualScrollViewport is already attached.');\n }\n // Subscribe to the data stream of the CdkVirtualForOf to keep track of when the data length\n // changes. Run outside the zone to avoid triggering change detection, since we're managing the\n // change detection loop ourselves.\n this.ngZone.runOutsideAngular(() => {\n this._forOf = forOf;\n this._forOf.dataStream.pipe(takeUntil(this._detachedSubject)).subscribe(data => {\n const newLength = data.length;\n if (newLength !== this._dataLength) {\n this._dataLength = newLength;\n this._scrollStrategy.onDataLengthChanged();\n }\n this._doChangeDetection();\n });\n });\n }\n /** Detaches the current `CdkVirtualForOf`. */\n detach() {\n this._forOf = null;\n this._detachedSubject.next();\n }\n /** Gets the length of the data bound to this viewport (in number of items). */\n getDataLength() {\n return this._dataLength;\n }\n /** Gets the size of the viewport (in pixels). */\n getViewportSize() {\n return this._viewportSize;\n }\n // TODO(mmalerba): This is technically out of sync with what's really rendered until a render\n // cycle happens. I'm being careful to only call it after the render cycle is complete and before\n // setting it to something else, but its error prone and should probably be split into\n // `pendingRange` and `renderedRange`, the latter reflecting whats actually in the DOM.\n /** Get the current rendered range of items. */\n getRenderedRange() {\n return this._renderedRange;\n }\n measureBoundingClientRectWithScrollOffset(from) {\n return this.getElementRef().nativeElement.getBoundingClientRect()[from];\n }\n /**\n * Sets the total size of all content (in pixels), including content that is not currently\n * rendered.\n */\n setTotalContentSize(size) {\n if (this._totalContentSize !== size) {\n this._totalContentSize = size;\n this._calculateSpacerSize();\n this._markChangeDetectionNeeded();\n }\n }\n /** Sets the currently rendered range of indices. */\n setRenderedRange(range) {\n if (!rangesEqual(this._renderedRange, range)) {\n if (this.appendOnly) {\n range = {\n start: 0,\n end: Math.max(this._renderedRange.end, range.end)\n };\n }\n this._renderedRangeSubject.next(this._renderedRange = range);\n this._markChangeDetectionNeeded(() => this._scrollStrategy.onContentRendered());\n }\n }\n /**\n * Gets the offset from the start of the viewport to the start of the rendered data (in pixels).\n */\n getOffsetToRenderedContentStart() {\n return this._renderedContentOffsetNeedsRewrite ? null : this._renderedContentOffset;\n }\n /**\n * Sets the offset from the start of the viewport to either the start or end of the rendered data\n * (in pixels).\n */\n setRenderedContentOffset(offset, to = 'to-start') {\n // In appendOnly, we always start from the top\n offset = this.appendOnly && to === 'to-start' ? 0 : offset;\n // For a horizontal viewport in a right-to-left language we need to translate along the x-axis\n // in the negative direction.\n const isRtl = this.dir && this.dir.value == 'rtl';\n const isHorizontal = this.orientation == 'horizontal';\n const axis = isHorizontal ? 'X' : 'Y';\n const axisDirection = isHorizontal && isRtl ? -1 : 1;\n let transform = `translate${axis}(${Number(axisDirection * offset)}px)`;\n this._renderedContentOffset = offset;\n if (to === 'to-end') {\n transform += ` translate${axis}(-100%)`;\n // The viewport should rewrite this as a `to-start` offset on the next render cycle. Otherwise\n // elements will appear to expand in the wrong direction (e.g. `mat-expansion-panel` would\n // expand upward).\n this._renderedContentOffsetNeedsRewrite = true;\n }\n if (this._renderedContentTransform != transform) {\n // We know this value is safe because we parse `offset` with `Number()` before passing it\n // into the string.\n this._renderedContentTransform = transform;\n this._markChangeDetectionNeeded(() => {\n if (this._renderedContentOffsetNeedsRewrite) {\n this._renderedContentOffset -= this.measureRenderedContentSize();\n this._renderedContentOffsetNeedsRewrite = false;\n this.setRenderedContentOffset(this._renderedContentOffset);\n } else {\n this._scrollStrategy.onRenderedOffsetChanged();\n }\n });\n }\n }\n /**\n * Scrolls to the given offset from the start of the viewport. Please note that this is not always\n * the same as setting `scrollTop` or `scrollLeft`. In a horizontal viewport with right-to-left\n * direction, this would be the equivalent of setting a fictional `scrollRight` property.\n * @param offset The offset to scroll to.\n * @param behavior The ScrollBehavior to use when scrolling. Default is behavior is `auto`.\n */\n scrollToOffset(offset, behavior = 'auto') {\n const options = {\n behavior\n };\n if (this.orientation === 'horizontal') {\n options.start = offset;\n } else {\n options.top = offset;\n }\n this.scrollable.scrollTo(options);\n }\n /**\n * Scrolls to the offset for the given index.\n * @param index The index of the element to scroll to.\n * @param behavior The ScrollBehavior to use when scrolling. Default is behavior is `auto`.\n */\n scrollToIndex(index, behavior = 'auto') {\n this._scrollStrategy.scrollToIndex(index, behavior);\n }\n /**\n * Gets the current scroll offset from the start of the scrollable (in pixels).\n * @param from The edge to measure the offset from. Defaults to 'top' in vertical mode and 'start'\n * in horizontal mode.\n */\n measureScrollOffset(from) {\n // This is to break the call cycle\n let measureScrollOffset;\n if (this.scrollable == this) {\n measureScrollOffset = _from => super.measureScrollOffset(_from);\n } else {\n measureScrollOffset = _from => this.scrollable.measureScrollOffset(_from);\n }\n return Math.max(0, measureScrollOffset(from ?? (this.orientation === 'horizontal' ? 'start' : 'top')) - this.measureViewportOffset());\n }\n /**\n * Measures the offset of the viewport from the scrolling container\n * @param from The edge to measure from.\n */\n measureViewportOffset(from) {\n let fromRect;\n const LEFT = 'left';\n const RIGHT = 'right';\n const isRtl = this.dir?.value == 'rtl';\n if (from == 'start') {\n fromRect = isRtl ? RIGHT : LEFT;\n } else if (from == 'end') {\n fromRect = isRtl ? LEFT : RIGHT;\n } else if (from) {\n fromRect = from;\n } else {\n fromRect = this.orientation === 'horizontal' ? 'left' : 'top';\n }\n const scrollerClientRect = this.scrollable.measureBoundingClientRectWithScrollOffset(fromRect);\n const viewportClientRect = this.elementRef.nativeElement.getBoundingClientRect()[fromRect];\n return viewportClientRect - scrollerClientRect;\n }\n /** Measure the combined size of all of the rendered items. */\n measureRenderedContentSize() {\n const contentEl = this._contentWrapper.nativeElement;\n return this.orientation === 'horizontal' ? contentEl.offsetWidth : contentEl.offsetHeight;\n }\n /**\n * Measure the total combined size of the given range. Throws if the range includes items that are\n * not rendered.\n */\n measureRangeSize(range) {\n if (!this._forOf) {\n return 0;\n }\n return this._forOf.measureRangeSize(range, this.orientation);\n }\n /** Update the viewport dimensions and re-render. */\n checkViewportSize() {\n // TODO: Cleanup later when add logic for handling content resize\n this._measureViewportSize();\n this._scrollStrategy.onDataLengthChanged();\n }\n /** Measure the viewport size. */\n _measureViewportSize() {\n this._viewportSize = this.scrollable.measureViewportSize(this.orientation);\n }\n /** Queue up change detection to run. */\n _markChangeDetectionNeeded(runAfter) {\n if (runAfter) {\n this._runAfterChangeDetection.push(runAfter);\n }\n // Use a Promise to batch together calls to `_doChangeDetection`. This way if we set a bunch of\n // properties sequentially we only have to run `_doChangeDetection` once at the end.\n if (!this._isChangeDetectionPending) {\n this._isChangeDetectionPending = true;\n this.ngZone.runOutsideAngular(() => Promise.resolve().then(() => {\n this._doChangeDetection();\n }));\n }\n }\n /** Run change detection. */\n _doChangeDetection() {\n this._isChangeDetectionPending = false;\n // Apply the content transform. The transform can't be set via an Angular binding because\n // bypassSecurityTrustStyle is banned in Google. However the value is safe, it's composed of\n // string literals, a variable that can only be 'X' or 'Y', and user input that is run through\n // the `Number` function first to coerce it to a numeric value.\n this._contentWrapper.nativeElement.style.transform = this._renderedContentTransform;\n // Apply changes to Angular bindings. Note: We must call `markForCheck` to run change detection\n // from the root, since the repeated items are content projected in. Calling `detectChanges`\n // instead does not properly check the projected content.\n this.ngZone.run(() => this._changeDetectorRef.markForCheck());\n const runAfterChangeDetection = this._runAfterChangeDetection;\n this._runAfterChangeDetection = [];\n for (const fn of runAfterChangeDetection) {\n fn();\n }\n }\n /** Calculates the `style.width` and `style.height` for the spacer element. */\n _calculateSpacerSize() {\n this._totalContentHeight = this.orientation === 'horizontal' ? '' : `${this._totalContentSize}px`;\n this._totalContentWidth = this.orientation === 'horizontal' ? `${this._totalContentSize}px` : '';\n }\n static {\n this.ɵfac = function CdkVirtualScrollViewport_Factory(t) {\n return new (t || CdkVirtualScrollViewport)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(VIRTUAL_SCROLL_STRATEGY, 8), i0.ɵɵdirectiveInject(i2.Directionality, 8), i0.ɵɵdirectiveInject(ScrollDispatcher), i0.ɵɵdirectiveInject(ViewportRuler), i0.ɵɵdirectiveInject(VIRTUAL_SCROLLABLE, 8));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: CdkVirtualScrollViewport,\n selectors: [[\"cdk-virtual-scroll-viewport\"]],\n viewQuery: function CdkVirtualScrollViewport_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c0, 7);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._contentWrapper = _t.first);\n }\n },\n hostAttrs: [1, \"cdk-virtual-scroll-viewport\"],\n hostVars: 4,\n hostBindings: function CdkVirtualScrollViewport_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"cdk-virtual-scroll-orientation-horizontal\", ctx.orientation === \"horizontal\")(\"cdk-virtual-scroll-orientation-vertical\", ctx.orientation !== \"horizontal\");\n }\n },\n inputs: {\n orientation: \"orientation\",\n appendOnly: [i0.ɵɵInputFlags.HasDecoratorInputTransform, \"appendOnly\", \"appendOnly\", booleanAttribute]\n },\n outputs: {\n scrolledIndexChange: \"scrolledIndexChange\"\n },\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: CdkScrollable,\n useFactory: (virtualScrollable, viewport) => virtualScrollable || viewport,\n deps: [[new Optional(), new Inject(VIRTUAL_SCROLLABLE)], CdkVirtualScrollViewport]\n }]), i0.ɵɵInputTransformsFeature, i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n ngContentSelectors: _c1,\n decls: 4,\n vars: 4,\n consts: [[\"contentWrapper\", \"\"], [1, \"cdk-virtual-scroll-content-wrapper\"], [1, \"cdk-virtual-scroll-spacer\"]],\n template: function CdkVirtualScrollViewport_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵelementStart(0, \"div\", 1, 0);\n i0.ɵɵprojection(2);\n i0.ɵɵelementEnd();\n i0.ɵɵelement(3, \"div\", 2);\n }\n if (rf & 2) {\n i0.ɵɵadvance(3);\n i0.ɵɵstyleProp(\"width\", ctx._totalContentWidth)(\"height\", ctx._totalContentHeight);\n }\n },\n styles: [\"cdk-virtual-scroll-viewport{display:block;position:relative;transform:translateZ(0)}.cdk-virtual-scrollable{overflow:auto;will-change:scroll-position;contain:strict;-webkit-overflow-scrolling:touch}.cdk-virtual-scroll-content-wrapper{position:absolute;top:0;left:0;contain:content}[dir=rtl] .cdk-virtual-scroll-content-wrapper{right:0;left:auto}.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper{min-height:100%}.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>dl:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>ol:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>table:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>ul:not([cdkVirtualFor]){padding-left:0;padding-right:0;margin-left:0;margin-right:0;border-left-width:0;border-right-width:0;outline:none}.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper{min-width:100%}.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>dl:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>ol:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>table:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>ul:not([cdkVirtualFor]){padding-top:0;padding-bottom:0;margin-top:0;margin-bottom:0;border-top-width:0;border-bottom-width:0;outline:none}.cdk-virtual-scroll-spacer{height:1px;transform-origin:0 0;flex:0 0 auto}[dir=rtl] .cdk-virtual-scroll-spacer{transform-origin:100% 0}\"],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(CdkVirtualScrollViewport, [{\n type: Component,\n args: [{\n selector: 'cdk-virtual-scroll-viewport',\n host: {\n 'class': 'cdk-virtual-scroll-viewport',\n '[class.cdk-virtual-scroll-orientation-horizontal]': 'orientation === \"horizontal\"',\n '[class.cdk-virtual-scroll-orientation-vertical]': 'orientation !== \"horizontal\"'\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n providers: [{\n provide: CdkScrollable,\n useFactory: (virtualScrollable, viewport) => virtualScrollable || viewport,\n deps: [[new Optional(), new Inject(VIRTUAL_SCROLLABLE)], CdkVirtualScrollViewport]\n }],\n template: \"\\n
\\n \\n
\\n\\n
\\n\",\n styles: [\"cdk-virtual-scroll-viewport{display:block;position:relative;transform:translateZ(0)}.cdk-virtual-scrollable{overflow:auto;will-change:scroll-position;contain:strict;-webkit-overflow-scrolling:touch}.cdk-virtual-scroll-content-wrapper{position:absolute;top:0;left:0;contain:content}[dir=rtl] .cdk-virtual-scroll-content-wrapper{right:0;left:auto}.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper{min-height:100%}.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>dl:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>ol:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>table:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>ul:not([cdkVirtualFor]){padding-left:0;padding-right:0;margin-left:0;margin-right:0;border-left-width:0;border-right-width:0;outline:none}.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper{min-width:100%}.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>dl:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>ol:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>table:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>ul:not([cdkVirtualFor]){padding-top:0;padding-bottom:0;margin-top:0;margin-bottom:0;border-top-width:0;border-bottom-width:0;outline:none}.cdk-virtual-scroll-spacer{height:1px;transform-origin:0 0;flex:0 0 auto}[dir=rtl] .cdk-virtual-scroll-spacer{transform-origin:100% 0}\"]\n }]\n }], () => [{\n type: i0.ElementRef\n }, {\n type: i0.ChangeDetectorRef\n }, {\n type: i0.NgZone\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [VIRTUAL_SCROLL_STRATEGY]\n }]\n }, {\n type: i2.Directionality,\n decorators: [{\n type: Optional\n }]\n }, {\n type: ScrollDispatcher\n }, {\n type: ViewportRuler\n }, {\n type: CdkVirtualScrollable,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [VIRTUAL_SCROLLABLE]\n }]\n }], {\n orientation: [{\n type: Input\n }],\n appendOnly: [{\n type: Input,\n args: [{\n transform: booleanAttribute\n }]\n }],\n scrolledIndexChange: [{\n type: Output\n }],\n _contentWrapper: [{\n type: ViewChild,\n args: ['contentWrapper', {\n static: true\n }]\n }]\n });\n})();\n\n/** Helper to extract the offset of a DOM Node in a certain direction. */\nfunction getOffset(orientation, direction, node) {\n const el = node;\n if (!el.getBoundingClientRect) {\n return 0;\n }\n const rect = el.getBoundingClientRect();\n if (orientation === 'horizontal') {\n return direction === 'start' ? rect.left : rect.right;\n }\n return direction === 'start' ? rect.top : rect.bottom;\n}\n/**\n * A directive similar to `ngForOf` to be used for rendering data inside a virtual scrolling\n * container.\n */\nclass CdkVirtualForOf {\n /** The DataSource to display. */\n get cdkVirtualForOf() {\n return this._cdkVirtualForOf;\n }\n set cdkVirtualForOf(value) {\n this._cdkVirtualForOf = value;\n if (isDataSource(value)) {\n this._dataSourceChanges.next(value);\n } else {\n // If value is an an NgIterable, convert it to an array.\n this._dataSourceChanges.next(new ArrayDataSource(isObservable(value) ? value : Array.from(value || [])));\n }\n }\n /**\n * The `TrackByFunction` to use for tracking changes. The `TrackByFunction` takes the index and\n * the item and produces a value to be used as the item's identity when tracking changes.\n */\n get cdkVirtualForTrackBy() {\n return this._cdkVirtualForTrackBy;\n }\n set cdkVirtualForTrackBy(fn) {\n this._needsUpdate = true;\n this._cdkVirtualForTrackBy = fn ? (index, item) => fn(index + (this._renderedRange ? this._renderedRange.start : 0), item) : undefined;\n }\n /** The template used to stamp out new elements. */\n set cdkVirtualForTemplate(value) {\n if (value) {\n this._needsUpdate = true;\n this._template = value;\n }\n }\n /**\n * The size of the cache used to store templates that are not being used for re-use later.\n * Setting the cache size to `0` will disable caching. Defaults to 20 templates.\n */\n get cdkVirtualForTemplateCacheSize() {\n return this._viewRepeater.viewCacheSize;\n }\n set cdkVirtualForTemplateCacheSize(size) {\n this._viewRepeater.viewCacheSize = coerceNumberProperty(size);\n }\n constructor( /** The view container to add items to. */\n _viewContainerRef, /** The template to use when stamping out new items. */\n _template, /** The set of available differs. */\n _differs, /** The strategy used to render items in the virtual scroll viewport. */\n _viewRepeater, /** The virtual scrolling viewport that these items are being rendered in. */\n _viewport, ngZone) {\n this._viewContainerRef = _viewContainerRef;\n this._template = _template;\n this._differs = _differs;\n this._viewRepeater = _viewRepeater;\n this._viewport = _viewport;\n /** Emits when the rendered view of the data changes. */\n this.viewChange = new Subject();\n /** Subject that emits when a new DataSource instance is given. */\n this._dataSourceChanges = new Subject();\n /** Emits whenever the data in the current DataSource changes. */\n this.dataStream = this._dataSourceChanges.pipe(\n // Start off with null `DataSource`.\n startWith(null),\n // Bundle up the previous and current data sources so we can work with both.\n pairwise(),\n // Use `_changeDataSource` to disconnect from the previous data source and connect to the\n // new one, passing back a stream of data changes which we run through `switchMap` to give\n // us a data stream that emits the latest data from whatever the current `DataSource` is.\n switchMap(([prev, cur]) => this._changeDataSource(prev, cur)),\n // Replay the last emitted data when someone subscribes.\n shareReplay(1));\n /** The differ used to calculate changes to the data. */\n this._differ = null;\n /** Whether the rendered data should be updated during the next ngDoCheck cycle. */\n this._needsUpdate = false;\n this._destroyed = new Subject();\n this.dataStream.subscribe(data => {\n this._data = data;\n this._onRenderedDataChange();\n });\n this._viewport.renderedRangeStream.pipe(takeUntil(this._destroyed)).subscribe(range => {\n this._renderedRange = range;\n if (this.viewChange.observers.length) {\n ngZone.run(() => this.viewChange.next(this._renderedRange));\n }\n this._onRenderedDataChange();\n });\n this._viewport.attach(this);\n }\n /**\n * Measures the combined size (width for horizontal orientation, height for vertical) of all items\n * in the specified range. Throws an error if the range includes items that are not currently\n * rendered.\n */\n measureRangeSize(range, orientation) {\n if (range.start >= range.end) {\n return 0;\n }\n if ((range.start < this._renderedRange.start || range.end > this._renderedRange.end) && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error(`Error: attempted to measure an item that isn't rendered.`);\n }\n // The index into the list of rendered views for the first item in the range.\n const renderedStartIndex = range.start - this._renderedRange.start;\n // The length of the range we're measuring.\n const rangeLen = range.end - range.start;\n // Loop over all the views, find the first and land node and compute the size by subtracting\n // the top of the first node from the bottom of the last one.\n let firstNode;\n let lastNode;\n // Find the first node by starting from the beginning and going forwards.\n for (let i = 0; i < rangeLen; i++) {\n const view = this._viewContainerRef.get(i + renderedStartIndex);\n if (view && view.rootNodes.length) {\n firstNode = lastNode = view.rootNodes[0];\n break;\n }\n }\n // Find the last node by starting from the end and going backwards.\n for (let i = rangeLen - 1; i > -1; i--) {\n const view = this._viewContainerRef.get(i + renderedStartIndex);\n if (view && view.rootNodes.length) {\n lastNode = view.rootNodes[view.rootNodes.length - 1];\n break;\n }\n }\n return firstNode && lastNode ? getOffset(orientation, 'end', lastNode) - getOffset(orientation, 'start', firstNode) : 0;\n }\n ngDoCheck() {\n if (this._differ && this._needsUpdate) {\n // TODO(mmalerba): We should differentiate needs update due to scrolling and a new portion of\n // this list being rendered (can use simpler algorithm) vs needs update due to data actually\n // changing (need to do this diff).\n const changes = this._differ.diff(this._renderedItems);\n if (!changes) {\n this._updateContext();\n } else {\n this._applyChanges(changes);\n }\n this._needsUpdate = false;\n }\n }\n ngOnDestroy() {\n this._viewport.detach();\n this._dataSourceChanges.next(undefined);\n this._dataSourceChanges.complete();\n this.viewChange.complete();\n this._destroyed.next();\n this._destroyed.complete();\n this._viewRepeater.detach();\n }\n /** React to scroll state changes in the viewport. */\n _onRenderedDataChange() {\n if (!this._renderedRange) {\n return;\n }\n this._renderedItems = this._data.slice(this._renderedRange.start, this._renderedRange.end);\n if (!this._differ) {\n // Use a wrapper function for the `trackBy` so any new values are\n // picked up automatically without having to recreate the differ.\n this._differ = this._differs.find(this._renderedItems).create((index, item) => {\n return this.cdkVirtualForTrackBy ? this.cdkVirtualForTrackBy(index, item) : item;\n });\n }\n this._needsUpdate = true;\n }\n /** Swap out one `DataSource` for another. */\n _changeDataSource(oldDs, newDs) {\n if (oldDs) {\n oldDs.disconnect(this);\n }\n this._needsUpdate = true;\n return newDs ? newDs.connect(this) : of();\n }\n /** Update the `CdkVirtualForOfContext` for all views. */\n _updateContext() {\n const count = this._data.length;\n let i = this._viewContainerRef.length;\n while (i--) {\n const view = this._viewContainerRef.get(i);\n view.context.index = this._renderedRange.start + i;\n view.context.count = count;\n this._updateComputedContextProperties(view.context);\n view.detectChanges();\n }\n }\n /** Apply changes to the DOM. */\n _applyChanges(changes) {\n this._viewRepeater.applyChanges(changes, this._viewContainerRef, (record, _adjustedPreviousIndex, currentIndex) => this._getEmbeddedViewArgs(record, currentIndex), record => record.item);\n // Update $implicit for any items that had an identity change.\n changes.forEachIdentityChange(record => {\n const view = this._viewContainerRef.get(record.currentIndex);\n view.context.$implicit = record.item;\n });\n // Update the context variables on all items.\n const count = this._data.length;\n let i = this._viewContainerRef.length;\n while (i--) {\n const view = this._viewContainerRef.get(i);\n view.context.index = this._renderedRange.start + i;\n view.context.count = count;\n this._updateComputedContextProperties(view.context);\n }\n }\n /** Update the computed properties on the `CdkVirtualForOfContext`. */\n _updateComputedContextProperties(context) {\n context.first = context.index === 0;\n context.last = context.index === context.count - 1;\n context.even = context.index % 2 === 0;\n context.odd = !context.even;\n }\n _getEmbeddedViewArgs(record, index) {\n // Note that it's important that we insert the item directly at the proper index,\n // rather than inserting it and the moving it in place, because if there's a directive\n // on the same node that injects the `ViewContainerRef`, Angular will insert another\n // comment node which can throw off the move when it's being repeated for all items.\n return {\n templateRef: this._template,\n context: {\n $implicit: record.item,\n // It's guaranteed that the iterable is not \"undefined\" or \"null\" because we only\n // generate views for elements if the \"cdkVirtualForOf\" iterable has elements.\n cdkVirtualForOf: this._cdkVirtualForOf,\n index: -1,\n count: -1,\n first: false,\n last: false,\n odd: false,\n even: false\n },\n index\n };\n }\n static {\n this.ɵfac = function CdkVirtualForOf_Factory(t) {\n return new (t || CdkVirtualForOf)(i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(i0.TemplateRef), i0.ɵɵdirectiveInject(i0.IterableDiffers), i0.ɵɵdirectiveInject(_VIEW_REPEATER_STRATEGY), i0.ɵɵdirectiveInject(CdkVirtualScrollViewport, 4), i0.ɵɵdirectiveInject(i0.NgZone));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: CdkVirtualForOf,\n selectors: [[\"\", \"cdkVirtualFor\", \"\", \"cdkVirtualForOf\", \"\"]],\n inputs: {\n cdkVirtualForOf: \"cdkVirtualForOf\",\n cdkVirtualForTrackBy: \"cdkVirtualForTrackBy\",\n cdkVirtualForTemplate: \"cdkVirtualForTemplate\",\n cdkVirtualForTemplateCacheSize: \"cdkVirtualForTemplateCacheSize\"\n },\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: _VIEW_REPEATER_STRATEGY,\n useClass: _RecycleViewRepeaterStrategy\n }])]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(CdkVirtualForOf, [{\n type: Directive,\n args: [{\n selector: '[cdkVirtualFor][cdkVirtualForOf]',\n providers: [{\n provide: _VIEW_REPEATER_STRATEGY,\n useClass: _RecycleViewRepeaterStrategy\n }],\n standalone: true\n }]\n }], () => [{\n type: i0.ViewContainerRef\n }, {\n type: i0.TemplateRef\n }, {\n type: i0.IterableDiffers\n }, {\n type: i2$1._RecycleViewRepeaterStrategy,\n decorators: [{\n type: Inject,\n args: [_VIEW_REPEATER_STRATEGY]\n }]\n }, {\n type: CdkVirtualScrollViewport,\n decorators: [{\n type: SkipSelf\n }]\n }, {\n type: i0.NgZone\n }], {\n cdkVirtualForOf: [{\n type: Input\n }],\n cdkVirtualForTrackBy: [{\n type: Input\n }],\n cdkVirtualForTemplate: [{\n type: Input\n }],\n cdkVirtualForTemplateCacheSize: [{\n type: Input\n }]\n });\n})();\n\n/**\n * Provides a virtual scrollable for the element it is attached to.\n */\nclass CdkVirtualScrollableElement extends CdkVirtualScrollable {\n constructor(elementRef, scrollDispatcher, ngZone, dir) {\n super(elementRef, scrollDispatcher, ngZone, dir);\n }\n measureBoundingClientRectWithScrollOffset(from) {\n return this.getElementRef().nativeElement.getBoundingClientRect()[from] - this.measureScrollOffset(from);\n }\n static {\n this.ɵfac = function CdkVirtualScrollableElement_Factory(t) {\n return new (t || CdkVirtualScrollableElement)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(ScrollDispatcher), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i2.Directionality, 8));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: CdkVirtualScrollableElement,\n selectors: [[\"\", \"cdkVirtualScrollingElement\", \"\"]],\n hostAttrs: [1, \"cdk-virtual-scrollable\"],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: VIRTUAL_SCROLLABLE,\n useExisting: CdkVirtualScrollableElement\n }]), i0.ɵɵInheritDefinitionFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(CdkVirtualScrollableElement, [{\n type: Directive,\n args: [{\n selector: '[cdkVirtualScrollingElement]',\n providers: [{\n provide: VIRTUAL_SCROLLABLE,\n useExisting: CdkVirtualScrollableElement\n }],\n standalone: true,\n host: {\n 'class': 'cdk-virtual-scrollable'\n }\n }]\n }], () => [{\n type: i0.ElementRef\n }, {\n type: ScrollDispatcher\n }, {\n type: i0.NgZone\n }, {\n type: i2.Directionality,\n decorators: [{\n type: Optional\n }]\n }], null);\n})();\n\n/**\n * Provides as virtual scrollable for the global / window scrollbar.\n */\nclass CdkVirtualScrollableWindow extends CdkVirtualScrollable {\n constructor(scrollDispatcher, ngZone, dir) {\n super(new ElementRef(document.documentElement), scrollDispatcher, ngZone, dir);\n this._elementScrolled = new Observable(observer => this.ngZone.runOutsideAngular(() => fromEvent(document, 'scroll').pipe(takeUntil(this._destroyed)).subscribe(observer)));\n }\n measureBoundingClientRectWithScrollOffset(from) {\n return this.getElementRef().nativeElement.getBoundingClientRect()[from];\n }\n static {\n this.ɵfac = function CdkVirtualScrollableWindow_Factory(t) {\n return new (t || CdkVirtualScrollableWindow)(i0.ɵɵdirectiveInject(ScrollDispatcher), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i2.Directionality, 8));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: CdkVirtualScrollableWindow,\n selectors: [[\"cdk-virtual-scroll-viewport\", \"scrollWindow\", \"\"]],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: VIRTUAL_SCROLLABLE,\n useExisting: CdkVirtualScrollableWindow\n }]), i0.ɵɵInheritDefinitionFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(CdkVirtualScrollableWindow, [{\n type: Directive,\n args: [{\n selector: 'cdk-virtual-scroll-viewport[scrollWindow]',\n providers: [{\n provide: VIRTUAL_SCROLLABLE,\n useExisting: CdkVirtualScrollableWindow\n }],\n standalone: true\n }]\n }], () => [{\n type: ScrollDispatcher\n }, {\n type: i0.NgZone\n }, {\n type: i2.Directionality,\n decorators: [{\n type: Optional\n }]\n }], null);\n})();\nclass CdkScrollableModule {\n static {\n this.ɵfac = function CdkScrollableModule_Factory(t) {\n return new (t || CdkScrollableModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: CdkScrollableModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(CdkScrollableModule, [{\n type: NgModule,\n args: [{\n exports: [CdkScrollable],\n imports: [CdkScrollable]\n }]\n }], null, null);\n})();\n/**\n * @docs-primary-export\n */\nclass ScrollingModule {\n static {\n this.ɵfac = function ScrollingModule_Factory(t) {\n return new (t || ScrollingModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: ScrollingModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [BidiModule, CdkScrollableModule, BidiModule, CdkScrollableModule]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(ScrollingModule, [{\n type: NgModule,\n args: [{\n imports: [BidiModule, CdkScrollableModule, CdkVirtualScrollViewport, CdkFixedSizeVirtualScroll, CdkVirtualForOf, CdkVirtualScrollableWindow, CdkVirtualScrollableElement],\n exports: [BidiModule, CdkScrollableModule, CdkFixedSizeVirtualScroll, CdkVirtualForOf, CdkVirtualScrollViewport, CdkVirtualScrollableWindow, CdkVirtualScrollableElement]\n }]\n }], null, null);\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { CdkFixedSizeVirtualScroll, CdkScrollable, CdkScrollableModule, CdkVirtualForOf, CdkVirtualScrollViewport, CdkVirtualScrollable, CdkVirtualScrollableElement, CdkVirtualScrollableWindow, DEFAULT_RESIZE_TIME, DEFAULT_SCROLL_TIME, FixedSizeVirtualScrollStrategy, ScrollDispatcher, ScrollingModule, VIRTUAL_SCROLLABLE, VIRTUAL_SCROLL_STRATEGY, ViewportRuler, _fixedSizeVirtualScrollStrategyFactory };\n","import { ViewportRuler } from '@angular/cdk/scrolling';\nimport { Injectable, NgZone } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { Store } from '@ngrx/store';\nimport { SnackBarService } from '@wsbc/ux-lib';\nimport { EMPTY, Observable, of } from 'rxjs';\nimport { catchError, concatMap, delay, map, startWith, switchMap, tap } from 'rxjs/operators';\n\nimport { loadAppAuthorizationPermissions } from '../app-authorization/app-authorization.actions';\nimport * as AppSessionActions from './app-session.actions';\n\n@Injectable()\nexport class AppSessionEffects {\n snackbarMessage$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(AppSessionActions.contextMenuClicked),\n concatMap((action) => {\n this.snackBarService.showSnackbar(action.message);\n return EMPTY as Observable<{ type: string }>;\n }),\n );\n });\n\n applicationStarted$ = createEffect(() =>\n this.actions$.pipe(\n ofType(AppSessionActions.applicationStarts),\n concatMap(({ user, appTxt, featureFlags }) =>\n of(\n loadAppAuthorizationPermissions({ user }),\n AppSessionActions.loadLookupsStart(),\n AppSessionActions.loadAppTxt({ appTxt }),\n AppSessionActions.loadFeatureFlags({ featureFlags }),\n ),\n ),\n ),\n );\n\n loadData$ = createEffect(() =>\n this.actions$.pipe(\n ofType(AppSessionActions.loadLookupsStart),\n // TODO: load your application-wide data here\n switchMap(() =>\n of('').pipe(\n tap(() => console.log('loading app-wide data')),\n delay(1000),\n ),\n ),\n concatMap(() =>\n of(\n AppSessionActions.LoadLookupsSuccess({} as any),\n AppSessionActions.applicationStartSuccess(),\n ),\n ),\n catchError(() =>\n of(\n AppSessionActions.applicationStartFailed({\n error: {\n errorCode: '',\n errorMessage: 'There is error occurred while loading app data.',\n },\n }),\n ),\n ),\n ),\n );\n\n applicationStartFailed$ = createEffect(\n () =>\n this.actions$.pipe(\n ofType(AppSessionActions.applicationStartFailed),\n tap(() => this.router.navigate(['error'])),\n ),\n { dispatch: false },\n );\n\n applicationAuthenticationFailed$ = createEffect(\n () =>\n this.actions$.pipe(\n ofType(AppSessionActions.applicationAuthenticationFailed),\n tap(() => this.router.navigate(['error', 'not-authorized'])),\n ),\n { dispatch: false },\n );\n\n constructor(\n viewportRuler: ViewportRuler,\n private actions$: Actions,\n private readonly snackBarService: SnackBarService,\n store: Store,\n ngZone: NgZone,\n private router: Router,\n ) {\n // action has to be dispatched in the ngZone,\n // it seems that we can't do it in the effects.\n viewportRuler\n .change(200)\n .pipe(\n startWith(() => AppSessionActions.ViewPortChanged({ ...viewportRuler.getViewportSize() })),\n map(() => AppSessionActions.ViewPortChanged({ ...viewportRuler.getViewportSize() })),\n )\n .subscribe((action) =>\n ngZone.run(() => {\n store.dispatch(action);\n }),\n );\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { EffectsModule } from '@ngrx/effects';\nimport { StoreModule } from '@ngrx/store';\n\nimport { AppSessionEffects } from './app-session.effects';\nimport * as fromAppSession from './app-session.reducer';\n\n@NgModule({\n declarations: [],\n imports: [\n CommonModule,\n StoreModule.forFeature(fromAppSession.appSessionFeatureKey, fromAppSession.reducer),\n EffectsModule.forFeature([AppSessionEffects]),\n ],\n})\nexport class AppSessionModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { EffectsModule } from '@ngrx/effects';\nimport { routerReducer, StoreRouterConnectingModule } from '@ngrx/router-store';\nimport { StoreModule } from '@ngrx/store';\nimport { environment } from 'src/environments/environment';\n\nimport { AppAuthorizationModule } from './app-authorization/app-authorization.module';\nimport { AppSessionModule } from './app-session/app-session.module';\n\n@NgModule({\n imports: [\n CommonModule,\n StoreModule.forRoot(\n {\n router: routerReducer,\n },\n {\n runtimeChecks: environment.ngrxRuntimeChecks ?? {},\n },\n ),\n StoreRouterConnectingModule.forRoot(),\n EffectsModule.forRoot(),\n AppSessionModule,\n\n AppAuthorizationModule,\n ],\n})\nexport class RootStoreModule {}\n","import { loggable } from '@wsbc/ux-lib';\n/* tslint:disable */\n/* eslint-disable */\n//----------------------\n// \n// Generated using the NSwag toolchain v13.14.4.0 (NJsonSchema v10.5.2.0 (Newtonsoft.Json v13.0.0.0)) (http://NSwag.org)\n// \n//----------------------\n// ReSharper disable InconsistentNaming\n\nimport { HttpEvent, HttpRequest } from '@angular/common/http';\nimport { mergeMap as _observableMergeMap, catchError as _observableCatch } from 'rxjs/operators';\nimport { Observable, from as _observableFrom, throwError as _observableThrow, of as _observableOf } from 'rxjs';\nimport { Injectable, Inject, Optional, InjectionToken } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpResponse, HttpResponseBase } from '@angular/common/http';\n\nexport const API_BASE_URL = new InjectionToken('API_BASE_URL');\n\nexport class WorkerEligibilityQuizApiClientBase {\n // The base class is used for customization\n activeOrg = null;\n\n protected http: any = null;\n protected baseUrl: string = '';\n\n // reference implementation about file upload API,\n //since swagger code gen is working correctly\n public uploadFile(\n eiiReportId: number,\n file: File,\n ): Observable> {\n const formData = new FormData();\n formData.append('file', file, file.name);\n formData.append('eiirReportId', eiiReportId.toString());\n\n const options = {\n reportProgress: true,\n };\n\n const req = new HttpRequest(\n 'PUT',\n `${this.baseUrl}/api/v1/Attachments/upload`,\n formData,\n options,\n );\n\n // break the line to prevent unintended update by codegen\n const http = this.http;\n return http.request(req);\n }\n\n // demo code how to hook into generated code\n transformOptions(option: any): Promise {\n const { body } = option;\n\n if (body instanceof File) {\n const formData = new FormData();\n formData.append('uploadedFile', body, body.name);\n return Promise.resolve(formData);\n }\n\n return Promise.resolve(option);\n }\n\n // demo code how to hook into generated code\n transformRequest(\n httpClient: HttpClient,\n op: string,\n url: string,\n options: any,\n ) {\n if (options instanceof FormData) {\n //const headers = new HttpHeaders({ 'iab': `${this.activeOrg}` });\n return httpClient.post(url, options, {\n observe: 'response',\n responseType: 'blob' /*, headers*/,\n });\n }\n return httpClient.request(op, url, options);\n }\n}\n\nexport interface IWorkerEligibilityQuizApiClient {\n /**\n * @param file (optional) \n * @return Success\n */\n uploadAttachment(file: FileParameter | undefined): Observable;\n /**\n * @param body (optional) \n * @return Success\n */\n submitCase(version: string, body: RuwMessage | undefined): Observable;\n /**\n * @return Success\n */\n version(version: string): Observable;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class WorkerEligibilityQuizApiClient extends WorkerEligibilityQuizApiClientBase implements IWorkerEligibilityQuizApiClient {\n \n \n protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\n\n constructor(@Inject(HttpClient) http: HttpClient, @Optional() @Inject(API_BASE_URL) baseUrl?: string) {\n super();\n this.http = http;\n this.baseUrl = baseUrl !== undefined && baseUrl !== null ? baseUrl : \"\";\n }\n\n /**\n * @param file (optional) \n * @return Success\n */\n @loggable('WorkerEligibilityQuiz', 'api', 'WorkerEligibilityQuiz.uploadAttachment') uploadAttachment(file: FileParameter | undefined) : Observable {\n let url_ = this.baseUrl + \"/api/v1/Attachment/upload\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = new FormData();\n if (file === null || file === undefined)\n throw new Error(\"The parameter 'file' cannot be null.\");\n else\n content_.append(\"file\", file.data, file.fileName ? file.fileName : \"file\");\n\n let options_ : any = {\n body: content_,\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"text/plain\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.transformRequest(this.http,\"put\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.processUploadAttachment(response_);\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.processUploadAttachment(response_);\n } catch (e) {\n return >_observableThrow(e);\n }\n } else\n return >_observableThrow(response_);\n }));\n }\n\n protected processUploadAttachment(response: HttpResponseBase): Observable {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (response).error instanceof Blob ? (response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 500) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Server Error\", status, _responseText, _headers);\n }));\n } else if (status === 400) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result400: any = null;\n result400 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Bad Request\", status, _responseText, _headers, result400);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf(null);\n }\n\n /**\n * @param body (optional) \n * @return Success\n */\n @loggable('WorkerEligibilityQuiz', 'api', 'WorkerEligibilityQuiz.submitCase') submitCase(version: string, body: RuwMessage | undefined) : Observable {\n let url_ = this.baseUrl + \"/api/v{version}/Ruw/SubmitCase\";\n if (version === undefined || version === null)\n throw new Error(\"The parameter 'version' must be defined.\");\n url_ = url_.replace(\"{version}\", encodeURIComponent(\"\" + version));\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ : any = {\n body: content_,\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Content-Type\": \"application/json\",\n \"Accept\": \"text/plain\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.transformRequest(this.http,\"post\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.processSubmitCase(response_);\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.processSubmitCase(response_);\n } catch (e) {\n return >_observableThrow(e);\n }\n } else\n return >_observableThrow(response_);\n }));\n }\n\n protected processSubmitCase(response: HttpResponseBase): Observable {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (response).error instanceof Blob ? (response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 400) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result400: any = null;\n result400 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Bad Request\", status, _responseText, _headers, result400);\n }));\n } else if (status === 500) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Server Error\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf(null);\n }\n\n /**\n * @return Success\n */\n @loggable('WorkerEligibilityQuiz', 'api', 'WorkerEligibilityQuiz.version') version(version: string) : Observable {\n let url_ = this.baseUrl + \"/api/v{version}/Version\";\n if (version === undefined || version === null)\n throw new Error(\"The parameter 'version' must be defined.\");\n url_ = url_.replace(\"{version}\", encodeURIComponent(\"\" + version));\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"text/plain\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.transformRequest(this.http,\"get\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.processVersion(response_);\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.processVersion(response_);\n } catch (e) {\n return >_observableThrow(e);\n }\n } else\n return >_observableThrow(response_);\n }));\n }\n\n protected processVersion(response: HttpResponseBase): Observable {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (response).error instanceof Blob ? (response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 500) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Server Error\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf(null);\n }\n}\n\nexport interface ContactInfo {\n firstName: string;\n lastName: string;\n phone: string;\n email: string;\n}\n\nexport interface DocumentUploadResponse {\n id: string;\n}\n\nexport interface EmployerInformation {\n industry: string;\n employerName: string;\n}\n\nexport interface GpsAddress {\n addressAdditionalInstructions: string;\n}\n\nexport interface IncidentDetails {\n description: string;\n locationType: string;\n streetAddress: StreetAddress;\n notSureAddress: NotSureAddress;\n gpsAddress: GpsAddress;\n date: string;\n time: string;\n isIssueOngoing: string;\n}\n\nexport interface NotSureAddress {\n addressAdditionalInstructions: string;\n}\n\nexport interface ProblemDetails {\n type: string;\n title: string;\n status: number | null;\n detail: string;\n instance: string;\n}\n\nexport interface RuwMessage {\n caseTitle: string;\n businessReference: string;\n contactInfo: ContactInfo;\n incidentDetails: IncidentDetails;\n employerInformation: EmployerInformation;\n files: { [key: string]: string; } | null;\n recaptureResponse: string;\n}\n\nexport interface StreetAddress {\n address: string;\n city: string;\n province: string;\n postalCode: string;\n addressAdditionalInstructions: string;\n}\n\nexport interface SubmitRuwMessageResponse {\n data: RuwMessage;\n referenceId: string;\n}\n\nexport interface VersionDto {\n version: string;\n}\n\nexport interface FileParameter {\n data: any;\n fileName: string;\n}\n\nexport class ApiException extends Error {\n override message: string;\n status: number;\n response: string;\n headers: { [key: string]: any; };\n result: any;\n\n constructor(message: string, status: number, response: string, headers: { [key: string]: any; }, result: any) {\n super();\n\n this.message = message;\n this.status = status;\n this.response = response;\n this.headers = headers;\n this.result = result;\n }\n\n protected isApiException = true;\n\n static isApiException(obj: any): obj is ApiException {\n return obj.isApiException === true;\n }\n}\n\nfunction throwException(message: string, status: number, response: string, headers: { [key: string]: any; }, result?: any): Observable {\n if (result !== null && result !== undefined)\n return _observableThrow(result);\n else\n return _observableThrow(new ApiException(message, status, response, headers, null));\n}\n\nfunction blobToText(blob: any): Observable {\n return new Observable((observer: any) => {\n if (!blob) {\n observer.next(\"\");\n observer.complete();\n } else {\n let reader = new FileReader();\n reader.onload = event => {\n observer.next((event.target).result);\n observer.complete();\n };\n reader.readAsText(blob);\n }\n });\n}\n","import { CommonModule } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\nimport { APP_INITIALIZER, Injector, NgModule } from '@angular/core';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { NavigationEnd, NavigationStart, Router } from '@angular/router';\nimport { LetDirective, PushPipe } from '@ngrx/component';\nimport { Store } from '@ngrx/store';\nimport {\n AppTxtJson,\n IAppInsightsService,\n ServiceLocator,\n WsbcAllModule,\n WsbcGoogleTagManagerModule,\n} from '@wsbc/ux-lib';\nimport { AuthService } from '@wsbc/ux-lib-security';\nimport { BsDatepickerModule } from 'ngx-bootstrap/datepicker';\nimport { take } from 'rxjs/operators';\nimport { environment } from 'src/environments/environment';\nimport {\n EnvironmentJson,\n FeatureFlagsJson,\n IFeatureFlags,\n} from 'src/environments/environment.model';\n\nimport { AppCommonModule } from './app-common/app-common.module';\nimport { AppRoutingModule } from './app-routing.module';\nimport { AppInsightsService, APP_INSIGHT_CONFIG } from './app-services/app-insights-service';\nimport { QueryParamsService } from './app-services/query-params-service';\nimport { AppComponent } from './app.component';\nimport { RootStoreModule } from './store/root-store.module';\nimport { API_BASE_URL } from './swagger-api/swagger-api';\n\nfunction initAuthService(\n featureFlagsJson: IFeatureFlags,\n appTxtJson: any,\n authService: AuthService,\n store: Store,\n) {\n return () =>\n new Promise((resolve) => {\n authService.initialize().then(\n () => {\n authService.user.pipe(take(1)).subscribe((user: any) => {\n console.log('authenticated as', user);\n environment.onAuthenticationSuccess(user, appTxtJson, featureFlagsJson, store);\n resolve(void 0);\n });\n },\n (err) => {\n environment.onAuthenticationFail(err, appTxtJson, store);\n resolve(void 0);\n },\n );\n });\n}\n\n@NgModule({\n declarations: [AppComponent],\n imports: [\n BrowserModule,\n BrowserAnimationsModule,\n HttpClientModule,\n\n AppRoutingModule,\n RootStoreModule,\n PushPipe,\n LetDirective,\n BsDatepickerModule.forRoot(),\n WsbcAllModule,\n WsbcGoogleTagManagerModule,\n\n environment.additionalModules,\n AppCommonModule,\n CommonModule,\n ],\n providers: [\n {\n provide: APP_INITIALIZER,\n useFactory: (queryParamsService: QueryParamsService) => () =>\n queryParamsService.setQueryParams(),\n deps: [QueryParamsService],\n multi: true,\n },\n {\n provide: APP_INITIALIZER,\n useFactory: initAuthService,\n multi: true,\n deps: [FeatureFlagsJson, AppTxtJson, AuthService, Store],\n },\n environment.additionalProviders,\n\n {\n provide: API_BASE_URL,\n useFactory: (envJson: any) => envJson.apiUrl,\n deps: [EnvironmentJson],\n },\n { provide: IAppInsightsService, useClass: AppInsightsService },\n {\n provide: APP_INSIGHT_CONFIG,\n useFactory: (envJson: any) => envJson.applicationInsights,\n deps: [EnvironmentJson],\n },\n ],\n bootstrap: [AppComponent],\n})\nexport class AppModule {\n constructor(private injector: Injector, router: Router, appInsightService: IAppInsightsService) {\n // Create global Service Injector for app-insights-decorator.\n ServiceLocator.injector = this.injector;\n\n router.events.subscribe((event) => {\n if (event instanceof NavigationStart) {\n appInsightService.startNavigationEvent(event.url);\n } else if (event instanceof NavigationEnd) {\n appInsightService.endNavigationEvent(event.url);\n appInsightService.logPageView(`${event.url}`, event.urlAfterRedirects.toString());\n }\n });\n }\n}\n","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\nimport { AppTxtJson } from '@wsbc/ux-lib';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\nimport {\n EnvironmentJson,\n FeatureFlagsJson,\n IEnvironmentJson,\n} from './environments/environment.model';\n\nif (environment.production) {\n enableProdMode();\n}\n\n// global variable for eager loading\ndeclare const __environmentJsonResponse: Promise<{\n environmentJson: IEnvironmentJson;\n appTxtJson: any;\n}>;\n\n__environmentJsonResponse\n .then(({ environmentJson, appTxtJson }) => {\n platformBrowserDynamic([\n {\n provide: EnvironmentJson,\n useValue: environment.fixConfiguration\n ? environment.fixConfiguration(environmentJson)\n : environmentJson,\n },\n {\n provide: AppTxtJson,\n useValue: appTxtJson,\n },\n {\n provide: FeatureFlagsJson,\n useValue: environmentJson.featureFlags ?? {},\n },\n ])\n .bootstrapModule(AppModule)\n .catch((err) => console.error(err));\n })\n .catch((err) => console.error(err));\n"],"mappings":"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","names":["t","e","r","n","o","i","l","s","a","u","c","h","f","g","d","p","v","y","m","_","S","b","w","F","E","P","C","T","R","I","D","L","N","U","B","O","j","M","H","V","K","q","J","on","name","name","e","map","delay","t","delay","match","delay","LINE_START","name","props","match","name","n","style","styleMetadata","delay","ast","element","_a","value","player","index","i","map","name","style","flags","delegate","fn","data","t","t","message","location","t","message","baseUrl","error","document","status","e","r","t","n","o","reject","t","SecurityRoutesEnum","error","e","SecurityTypeEnum","state","t","action","reducer","error","n","initialState","Zone","error","e","t","message","match","error","formatMessage","message","error","error","handlers","__commonJS","from","__toESM","name","e","parse","error","_a","_b","_c","handlers","handlers","POSITIONALS_EXP","serializePositional","format","message","match","STACK_FRAMES_TO_IGNORE","cleanErrorStack","error2","InvariantError","invariant","formatMessage","until","worker","worker2","_a","__defProp","name","Logger","message2","warn","error","MemoryLeakError","_Emitter","Emitter","reject","r","isPropertyAccessible","e","define","handlers","__create","__defProp","__getOwnPropDesc","__getOwnPropNames","__getProtoOf","__hasOwnProp","__commonJS","__copyProps","from","__toESM","map","message","n","name","_a","value","result","_a","i","_b","_c","encoder","isNodeProcess","__defProp","__export","name","colors_exports","blue","gray","green","red","yellow","IS_NODE","isNodeProcess","IS_PATCHED_MODULE","baseUrl","baseUrl","baseUrl","cleanUrl","__create","__defProp","__getOwnPropDesc","__getOwnPropNames","__getProtoOf","__hasOwnProp","__commonJS","__copyProps","from","__toESM","parse","name","e","source_default","source_default","name","match","__create","__defProp","__getOwnPropDesc","__getOwnPropNames","__getProtoOf","__hasOwnProp","__commonJS","__copyProps","from","__toESM","require_set_cookie","name","e","parse","import_set_cookie_parser","Headers","message","Headers","HttpResponse","isNodeProcess","delay","HttpResponse","delay","delay","HttpResponse","baseUrl","t","loader","grecaptcha","error","e","routes","store","environment","isAppInitialized","ValidFromQueryParams","ValidQueryParams","ValidFromDraftsQueryParams","name","environment","_c0","environment","location","environment","location","_c0","_c1","store","environment","isToken","error","t","effectsInstance","store","NavigationActionTiming","RouterTrigger","store","error","t","Permission","Role","reducer","reducer","t","t","name","t","_c0","_c1","t","document","window","from","documentElement","store","environment","http","baseUrl","e","version","message","store","environment","environment"],"x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,62,87,88,96,97,98,99,100]}