@odx/auth 17.2.1 → 18.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +91 -0
- package/fesm2022/odx-auth-plugins-service-connect.mjs +3 -3
- package/fesm2022/odx-auth-plugins-service-connect.mjs.map +1 -1
- package/fesm2022/odx-auth.mjs +41 -41
- package/fesm2022/odx-auth.mjs.map +1 -1
- package/index.d.ts +744 -15
- package/package.json +4 -8
- package/plugins/service-connect/index.d.ts +186 -8
- package/esm2022/index.mjs +0 -16
- package/esm2022/lib/auth.component.mjs +0 -50
- package/esm2022/lib/auth.config.mjs +0 -71
- package/esm2022/lib/auth.directive.mjs +0 -51
- package/esm2022/lib/auth.guard.mjs +0 -44
- package/esm2022/lib/auth.i18n.mjs +0 -13
- package/esm2022/lib/auth.interceptor.mjs +0 -23
- package/esm2022/lib/auth.logger.mjs +0 -3
- package/esm2022/lib/auth.module.mjs +0 -19
- package/esm2022/lib/auth.providers.mjs +0 -136
- package/esm2022/lib/auth.service.mjs +0 -317
- package/esm2022/lib/auth.typings.mjs +0 -2
- package/esm2022/lib/components/auth-actions/auth-actions.component.mjs +0 -40
- package/esm2022/lib/components/auth-loading-screen/auth-loading-screen.component.mjs +0 -53
- package/esm2022/lib/components/index.mjs +0 -3
- package/esm2022/lib/directives/auth-action.directive.mjs +0 -30
- package/esm2022/lib/directives/index.mjs +0 -4
- package/esm2022/lib/directives/sign-in.directive.mjs +0 -52
- package/esm2022/lib/directives/sign-out.directive.mjs +0 -50
- package/esm2022/lib/helpers/create-auth-host-url.mjs +0 -18
- package/esm2022/lib/helpers/create-inititals.mjs +0 -32
- package/esm2022/lib/helpers/handle-auth-error.mjs +0 -31
- package/esm2022/lib/helpers/handle-oauth-event.mjs +0 -13
- package/esm2022/lib/helpers/index.mjs +0 -9
- package/esm2022/lib/helpers/resolve-email.mjs +0 -34
- package/esm2022/lib/helpers/resolve-username.mjs +0 -38
- package/esm2022/lib/helpers/set-http-auth-header.mjs +0 -22
- package/esm2022/lib/helpers/user-language-loader.mjs +0 -17
- package/esm2022/lib/models/auth-environment.mjs +0 -3
- package/esm2022/lib/models/auth-plugin-manager.mjs +0 -49
- package/esm2022/lib/models/authorized-handler.mjs +0 -2
- package/esm2022/lib/models/index.mjs +0 -5
- package/esm2022/lib/models/offline-auth-error-handler.mjs +0 -7
- package/esm2022/lib/plugins/core-debug.plugin.mjs +0 -29
- package/esm2022/lib/plugins/core-identity.plugin.mjs +0 -20
- package/esm2022/lib/plugins/index.mjs +0 -4
- package/esm2022/lib/plugins/user-profile-link.plugin.mjs +0 -18
- package/esm2022/lib/unauth.guard.mjs +0 -38
- package/esm2022/odx-auth.mjs +0 -5
- package/esm2022/plugins/service-connect/index.mjs +0 -9
- package/esm2022/plugins/service-connect/lib/dtos/get-service-connect-rights-response.dto.mjs +0 -2
- package/esm2022/plugins/service-connect/lib/dtos/get-service-connect-user-response.dto.mjs +0 -2
- package/esm2022/plugins/service-connect/lib/dtos/index.mjs +0 -3
- package/esm2022/plugins/service-connect/lib/helpers/build-service-connect-url.mjs +0 -16
- package/esm2022/plugins/service-connect/lib/helpers/has-roles-or-rights-handler.mjs +0 -12
- package/esm2022/plugins/service-connect/lib/helpers/has-roles-or-rights.mjs +0 -11
- package/esm2022/plugins/service-connect/lib/helpers/index.mjs +0 -5
- package/esm2022/plugins/service-connect/lib/helpers/service-connect-plugin-factory.mjs +0 -25
- package/esm2022/plugins/service-connect/lib/service-connect-rights.directive.mjs +0 -44
- package/esm2022/plugins/service-connect/lib/service-connect-rights.guard.mjs +0 -15
- package/esm2022/plugins/service-connect/lib/service-connect-rights.plugin.mjs +0 -16
- package/esm2022/plugins/service-connect/lib/service-connect-user-language.plugin.mjs +0 -34
- package/esm2022/plugins/service-connect/lib/service-connect-user-profile.plugin.mjs +0 -28
- package/esm2022/plugins/service-connect/lib/service-connect.config.mjs +0 -17
- package/esm2022/plugins/service-connect/odx-auth-plugins-service-connect.mjs +0 -5
- package/lib/auth.component.d.ts +0 -20
- package/lib/auth.config.d.ts +0 -84
- package/lib/auth.directive.d.ts +0 -25
- package/lib/auth.guard.d.ts +0 -11
- package/lib/auth.i18n.d.ts +0 -3
- package/lib/auth.interceptor.d.ts +0 -10
- package/lib/auth.logger.d.ts +0 -3
- package/lib/auth.module.d.ts +0 -10
- package/lib/auth.providers.d.ts +0 -46
- package/lib/auth.service.d.ts +0 -206
- package/lib/auth.typings.d.ts +0 -27
- package/lib/components/auth-actions/auth-actions.component.d.ts +0 -16
- package/lib/components/auth-loading-screen/auth-loading-screen.component.d.ts +0 -24
- package/lib/components/index.d.ts +0 -2
- package/lib/directives/auth-action.directive.d.ts +0 -18
- package/lib/directives/index.d.ts +0 -3
- package/lib/directives/sign-in.directive.d.ts +0 -29
- package/lib/directives/sign-out.directive.d.ts +0 -28
- package/lib/helpers/create-auth-host-url.d.ts +0 -14
- package/lib/helpers/create-inititals.d.ts +0 -18
- package/lib/helpers/handle-auth-error.d.ts +0 -13
- package/lib/helpers/handle-oauth-event.d.ts +0 -11
- package/lib/helpers/index.d.ts +0 -8
- package/lib/helpers/resolve-email.d.ts +0 -21
- package/lib/helpers/resolve-username.d.ts +0 -22
- package/lib/helpers/set-http-auth-header.d.ts +0 -11
- package/lib/helpers/user-language-loader.d.ts +0 -11
- package/lib/models/auth-environment.d.ts +0 -6
- package/lib/models/auth-plugin-manager.d.ts +0 -21
- package/lib/models/authorized-handler.d.ts +0 -3
- package/lib/models/index.d.ts +0 -4
- package/lib/models/offline-auth-error-handler.d.ts +0 -2
- package/lib/plugins/core-debug.plugin.d.ts +0 -11
- package/lib/plugins/core-identity.plugin.d.ts +0 -18
- package/lib/plugins/index.d.ts +0 -3
- package/lib/plugins/user-profile-link.plugin.d.ts +0 -18
- package/lib/unauth.guard.d.ts +0 -11
- package/plugins/service-connect/lib/dtos/get-service-connect-rights-response.dto.d.ts +0 -3
- package/plugins/service-connect/lib/dtos/get-service-connect-user-response.dto.d.ts +0 -14
- package/plugins/service-connect/lib/dtos/index.d.ts +0 -2
- package/plugins/service-connect/lib/helpers/build-service-connect-url.d.ts +0 -10
- package/plugins/service-connect/lib/helpers/has-roles-or-rights-handler.d.ts +0 -10
- package/plugins/service-connect/lib/helpers/has-roles-or-rights.d.ts +0 -11
- package/plugins/service-connect/lib/helpers/index.d.ts +0 -4
- package/plugins/service-connect/lib/helpers/service-connect-plugin-factory.d.ts +0 -20
- package/plugins/service-connect/lib/service-connect-rights.directive.d.ts +0 -21
- package/plugins/service-connect/lib/service-connect-rights.guard.d.ts +0 -11
- package/plugins/service-connect/lib/service-connect-rights.plugin.d.ts +0 -18
- package/plugins/service-connect/lib/service-connect-user-language.plugin.d.ts +0 -24
- package/plugins/service-connect/lib/service-connect-user-profile.plugin.d.ts +0 -23
- package/plugins/service-connect/lib/service-connect.config.d.ts +0 -15
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
import { transition, trigger, useAnimation } from '@angular/animations';
|
|
2
|
-
import { CommonModule } from '@angular/common';
|
|
3
|
-
import { ChangeDetectionStrategy, Component, ViewEncapsulation, inject } from '@angular/core';
|
|
4
|
-
import { fadeOut } from '@odx/angular/animations';
|
|
5
|
-
import { DynamicViewDirective } from '@odx/angular/cdk/dynamic-view';
|
|
6
|
-
import { CircularProgressComponent } from '@odx/angular/components/circular-progress';
|
|
7
|
-
import { IconComponent } from '@odx/angular/components/icon';
|
|
8
|
-
import { LogoDirective } from '@odx/angular/components/logo';
|
|
9
|
-
import { map } from 'rxjs';
|
|
10
|
-
import { injectAuthConfig } from '../../auth.config';
|
|
11
|
-
import { AuthService } from '../../auth.service';
|
|
12
|
-
import * as i0 from "@angular/core";
|
|
13
|
-
import * as i1 from "@angular/common";
|
|
14
|
-
/**
|
|
15
|
-
* Authentication loading screen.
|
|
16
|
-
*
|
|
17
|
-
* This component displays a loading screen with animations and dynamic content
|
|
18
|
-
* based on the authentication state.
|
|
19
|
-
*/
|
|
20
|
-
export class AuthLoadingScreenComponent {
|
|
21
|
-
constructor() {
|
|
22
|
-
this.authConfig = injectAuthConfig();
|
|
23
|
-
this.icon$ = inject(AuthService).isRedirecting$.pipe(map((isRedirecting) => (isRedirecting ? 'link-external' : 'user')));
|
|
24
|
-
}
|
|
25
|
-
static { this.instance = null; }
|
|
26
|
-
/**
|
|
27
|
-
* Initializes the authentication loading screen.
|
|
28
|
-
*
|
|
29
|
-
* @param {AuthService} authService - The authentication service.
|
|
30
|
-
* @param {DynamicViewService} dynamicViewService - The dynamic view service used to create the loading screen.
|
|
31
|
-
* @static
|
|
32
|
-
*/
|
|
33
|
-
static initialize(authService, dynamicViewService) {
|
|
34
|
-
authService.isLoading$.subscribe((isLoading) => {
|
|
35
|
-
if (isLoading) {
|
|
36
|
-
AuthLoadingScreenComponent.instance ??= dynamicViewService.createView(AuthLoadingScreenComponent);
|
|
37
|
-
}
|
|
38
|
-
else {
|
|
39
|
-
AuthLoadingScreenComponent.instance?.destroy();
|
|
40
|
-
AuthLoadingScreenComponent.instance = null;
|
|
41
|
-
}
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuthLoadingScreenComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
45
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: AuthLoadingScreenComponent, isStandalone: true, selector: "div.odx-auth-loading-screen", host: { properties: { "@hostAnimation": "true" } }, ngImport: i0, template: "<div class=\"odx-auth-loading-screen__content\" odxLayout=\"grid 12 horizontal-center vertical-center gap-small\">\n <odx-logo size=\"large\" />\n <odx-circular-progress class=\"odx-auth-loading-screen__spinner\" value=\"-1\" size=\"medium\" stroke=\"3\">\n <odx-icon [name]=\"icon$ | async\" iconSet=\"core\" />\n </odx-circular-progress>\n @if (authConfig.loadingScreenMessage; as content) {\n <p class=\"odx-auth-loading-screen__message\">\n <ng-template [odxDynamicView]=\"content\" />\n </p>\n }\n</div>\n", styles: ["@keyframes odx-auth-loading-screen-animation{0%{opacity:0;transform:translate(-50%,-50%) scale(.9)}to{opacity:1;transform:translate(-50%,-50%)}}.odx-auth-loading-screen{--odx-c-highlight: var(--odx-c-primary);background-color:var(--odx-c-background-content);inset:0;position:fixed;z-index:var(--odx-z-level-topmost)}.odx-auth-loading-screen__content{animation:odx-auth-loading-screen-animation .75s ease;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.odx-auth-loading-screen__message{text-align:center}.odx-auth-loading-screen__spinner{position:relative}.odx-auth-loading-screen__spinner .odx-icon{left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "component", type: IconComponent, selector: "odx-icon", inputs: ["inline", "size", "name", "iconSet", "identifier"] }, { kind: "directive", type: LogoDirective, selector: "odx-logo", inputs: ["size", "variant"] }, { kind: "component", type: CircularProgressComponent, selector: "odx-circular-progress", inputs: ["stroke", "size", "value"] }, { kind: "directive", type: DynamicViewDirective, selector: "ng-template[odxDynamicView]", inputs: ["odxDynamicView", "odxDynamicViewInjector", "odxDynamicViewContext"] }], animations: [trigger('hostAnimation', [transition(':leave', useAnimation(fadeOut()))])], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
46
|
-
}
|
|
47
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuthLoadingScreenComponent, decorators: [{
|
|
48
|
-
type: Component,
|
|
49
|
-
args: [{ standalone: true, selector: 'div.odx-auth-loading-screen', imports: [CommonModule, IconComponent, LogoDirective, CircularProgressComponent, DynamicViewDirective], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
|
50
|
-
'[@hostAnimation]': 'true',
|
|
51
|
-
}, animations: [trigger('hostAnimation', [transition(':leave', useAnimation(fadeOut()))])], template: "<div class=\"odx-auth-loading-screen__content\" odxLayout=\"grid 12 horizontal-center vertical-center gap-small\">\n <odx-logo size=\"large\" />\n <odx-circular-progress class=\"odx-auth-loading-screen__spinner\" value=\"-1\" size=\"medium\" stroke=\"3\">\n <odx-icon [name]=\"icon$ | async\" iconSet=\"core\" />\n </odx-circular-progress>\n @if (authConfig.loadingScreenMessage; as content) {\n <p class=\"odx-auth-loading-screen__message\">\n <ng-template [odxDynamicView]=\"content\" />\n </p>\n }\n</div>\n", styles: ["@keyframes odx-auth-loading-screen-animation{0%{opacity:0;transform:translate(-50%,-50%) scale(.9)}to{opacity:1;transform:translate(-50%,-50%)}}.odx-auth-loading-screen{--odx-c-highlight: var(--odx-c-primary);background-color:var(--odx-c-background-content);inset:0;position:fixed;z-index:var(--odx-z-level-topmost)}.odx-auth-loading-screen__content{animation:odx-auth-loading-screen-animation .75s ease;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.odx-auth-loading-screen__message{text-align:center}.odx-auth-loading-screen__spinner{position:relative}.odx-auth-loading-screen__spinner .odx-icon{left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}\n"] }]
|
|
52
|
-
}] });
|
|
53
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1sb2FkaW5nLXNjcmVlbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2F1dGgvc3JjL2xpYi9jb21wb25lbnRzL2F1dGgtbG9hZGluZy1zY3JlZW4vYXV0aC1sb2FkaW5nLXNjcmVlbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2F1dGgvc3JjL2xpYi9jb21wb25lbnRzL2F1dGgtbG9hZGluZy1zY3JlZW4vYXV0aC1sb2FkaW5nLXNjcmVlbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2xELE9BQU8sRUFBRSxvQkFBb0IsRUFBc0MsTUFBTSwrQkFBK0IsQ0FBQztBQUN6RyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUN0RixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzdELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0IsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDckQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7QUFFakQ7Ozs7O0dBS0c7QUFlSCxNQUFNLE9BQU8sMEJBQTBCO0lBZHZDO1FBaUJxQixlQUFVLEdBQUcsZ0JBQWdCLEVBQUUsQ0FBQztRQUNoQyxVQUFLLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FtQnhJO2FBdEJnQixhQUFRLEdBQTZELElBQUksQUFBakUsQ0FBa0U7SUFLekY7Ozs7OztPQU1HO0lBQ0ksTUFBTSxDQUFDLFVBQVUsQ0FBQyxXQUF3QixFQUFFLGtCQUFzQztRQUN2RixXQUFXLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFO1lBQzdDLElBQUksU0FBUyxFQUFFLENBQUM7Z0JBQ2QsMEJBQTBCLENBQUMsUUFBUSxLQUFLLGtCQUFrQixDQUFDLFVBQVUsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1lBQ3BHLENBQUM7aUJBQU0sQ0FBQztnQkFDTiwwQkFBMEIsQ0FBQyxRQUFRLEVBQUUsT0FBTyxFQUFFLENBQUM7Z0JBQy9DLDBCQUEwQixDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7WUFDN0MsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzsrR0F0QlUsMEJBQTBCO21HQUExQiwwQkFBMEIsMklDaEN2QyxtaEJBV0EsdXVCRFdZLFlBQVksb0ZBQUUsYUFBYSxrSEFBRSxhQUFhLGtGQUFFLHlCQUF5Qix1R0FBRSxvQkFBb0IseUlBUXpGLENBQUMsT0FBTyxDQUFDLGVBQWUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsWUFBWSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7OzRGQUU1RSwwQkFBMEI7a0JBZHRDLFNBQVM7aUNBQ0ksSUFBSSxZQUVOLDZCQUE2QixXQUM5QixDQUFDLFlBQVksRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLHlCQUF5QixFQUFFLG9CQUFvQixDQUFDLG1CQUdyRix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLFFBQy9CO3dCQUNKLGtCQUFrQixFQUFFLE1BQU07cUJBQzNCLGNBQ1csQ0FBQyxPQUFPLENBQUMsZUFBZSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxZQUFZLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHRyYW5zaXRpb24sIHRyaWdnZXIsIHVzZUFuaW1hdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIFZpZXdFbmNhcHN1bGF0aW9uLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGZhZGVPdXQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBEeW5hbWljVmlld0RpcmVjdGl2ZSwgRHluYW1pY1ZpZXdSZWYsIER5bmFtaWNWaWV3U2VydmljZSB9IGZyb20gJ0BvZHgvYW5ndWxhci9jZGsvZHluYW1pYy12aWV3JztcbmltcG9ydCB7IENpcmN1bGFyUHJvZ3Jlc3NDb21wb25lbnQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY29tcG9uZW50cy9jaXJjdWxhci1wcm9ncmVzcyc7XG5pbXBvcnQgeyBJY29uQ29tcG9uZW50IH0gZnJvbSAnQG9keC9hbmd1bGFyL2NvbXBvbmVudHMvaWNvbic7XG5pbXBvcnQgeyBMb2dvRGlyZWN0aXZlIH0gZnJvbSAnQG9keC9hbmd1bGFyL2NvbXBvbmVudHMvbG9nbyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGluamVjdEF1dGhDb25maWcgfSBmcm9tICcuLi8uLi9hdXRoLmNvbmZpZyc7XG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uL2F1dGguc2VydmljZSc7XG5cbi8qKlxuICogQXV0aGVudGljYXRpb24gbG9hZGluZyBzY3JlZW4uXG4gKlxuICogVGhpcyBjb21wb25lbnQgZGlzcGxheXMgYSBsb2FkaW5nIHNjcmVlbiB3aXRoIGFuaW1hdGlvbnMgYW5kIGR5bmFtaWMgY29udGVudFxuICogYmFzZWQgb24gdGhlIGF1dGhlbnRpY2F0aW9uIHN0YXRlLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICdkaXYub2R4LWF1dGgtbG9hZGluZy1zY3JlZW4nLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBJY29uQ29tcG9uZW50LCBMb2dvRGlyZWN0aXZlLCBDaXJjdWxhclByb2dyZXNzQ29tcG9uZW50LCBEeW5hbWljVmlld0RpcmVjdGl2ZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9hdXRoLWxvYWRpbmctc2NyZWVuLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYXV0aC1sb2FkaW5nLXNjcmVlbi5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgaG9zdDoge1xuICAgICdbQGhvc3RBbmltYXRpb25dJzogJ3RydWUnLFxuICB9LFxuICBhbmltYXRpb25zOiBbdHJpZ2dlcignaG9zdEFuaW1hdGlvbicsIFt0cmFuc2l0aW9uKCc6bGVhdmUnLCB1c2VBbmltYXRpb24oZmFkZU91dCgpKSldKV0sXG59KVxuZXhwb3J0IGNsYXNzIEF1dGhMb2FkaW5nU2NyZWVuQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSBzdGF0aWMgaW5zdGFuY2U6IER5bmFtaWNWaWV3UmVmPHR5cGVvZiBBdXRoTG9hZGluZ1NjcmVlbkNvbXBvbmVudD4gfCBudWxsID0gbnVsbDtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgYXV0aENvbmZpZyA9IGluamVjdEF1dGhDb25maWcoKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGljb24kID0gaW5qZWN0KEF1dGhTZXJ2aWNlKS5pc1JlZGlyZWN0aW5nJC5waXBlKG1hcCgoaXNSZWRpcmVjdGluZykgPT4gKGlzUmVkaXJlY3RpbmcgPyAnbGluay1leHRlcm5hbCcgOiAndXNlcicpKSk7XG5cbiAgLyoqXG4gICAqIEluaXRpYWxpemVzIHRoZSBhdXRoZW50aWNhdGlvbiBsb2FkaW5nIHNjcmVlbi5cbiAgICpcbiAgICogQHBhcmFtIHtBdXRoU2VydmljZX0gYXV0aFNlcnZpY2UgLSBUaGUgYXV0aGVudGljYXRpb24gc2VydmljZS5cbiAgICogQHBhcmFtIHtEeW5hbWljVmlld1NlcnZpY2V9IGR5bmFtaWNWaWV3U2VydmljZSAtIFRoZSBkeW5hbWljIHZpZXcgc2VydmljZSB1c2VkIHRvIGNyZWF0ZSB0aGUgbG9hZGluZyBzY3JlZW4uXG4gICAqIEBzdGF0aWNcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgaW5pdGlhbGl6ZShhdXRoU2VydmljZTogQXV0aFNlcnZpY2UsIGR5bmFtaWNWaWV3U2VydmljZTogRHluYW1pY1ZpZXdTZXJ2aWNlKTogdm9pZCB7XG4gICAgYXV0aFNlcnZpY2UuaXNMb2FkaW5nJC5zdWJzY3JpYmUoKGlzTG9hZGluZykgPT4ge1xuICAgICAgaWYgKGlzTG9hZGluZykge1xuICAgICAgICBBdXRoTG9hZGluZ1NjcmVlbkNvbXBvbmVudC5pbnN0YW5jZSA/Pz0gZHluYW1pY1ZpZXdTZXJ2aWNlLmNyZWF0ZVZpZXcoQXV0aExvYWRpbmdTY3JlZW5Db21wb25lbnQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgQXV0aExvYWRpbmdTY3JlZW5Db21wb25lbnQuaW5zdGFuY2U/LmRlc3Ryb3koKTtcbiAgICAgICAgQXV0aExvYWRpbmdTY3JlZW5Db21wb25lbnQuaW5zdGFuY2UgPSBudWxsO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwib2R4LWF1dGgtbG9hZGluZy1zY3JlZW5fX2NvbnRlbnRcIiBvZHhMYXlvdXQ9XCJncmlkIDEyIGhvcml6b250YWwtY2VudGVyIHZlcnRpY2FsLWNlbnRlciBnYXAtc21hbGxcIj5cbiAgPG9keC1sb2dvIHNpemU9XCJsYXJnZVwiIC8+XG4gIDxvZHgtY2lyY3VsYXItcHJvZ3Jlc3MgY2xhc3M9XCJvZHgtYXV0aC1sb2FkaW5nLXNjcmVlbl9fc3Bpbm5lclwiIHZhbHVlPVwiLTFcIiBzaXplPVwibWVkaXVtXCIgc3Ryb2tlPVwiM1wiPlxuICAgIDxvZHgtaWNvbiBbbmFtZV09XCJpY29uJCB8IGFzeW5jXCIgaWNvblNldD1cImNvcmVcIiAvPlxuICA8L29keC1jaXJjdWxhci1wcm9ncmVzcz5cbiAgQGlmIChhdXRoQ29uZmlnLmxvYWRpbmdTY3JlZW5NZXNzYWdlOyBhcyBjb250ZW50KSB7XG4gICAgPHAgY2xhc3M9XCJvZHgtYXV0aC1sb2FkaW5nLXNjcmVlbl9fbWVzc2FnZVwiPlxuICAgICAgPG5nLXRlbXBsYXRlIFtvZHhEeW5hbWljVmlld109XCJjb250ZW50XCIgLz5cbiAgICA8L3A+XG4gIH1cbjwvZGl2PlxuIl19
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
export * from './auth-actions/auth-actions.component';
|
|
2
|
-
export * from './auth-loading-screen/auth-loading-screen.component';
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2F1dGgvc3JjL2xpYi9jb21wb25lbnRzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyxxREFBcUQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYXV0aC1hY3Rpb25zL2F1dGgtYWN0aW9ucy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9hdXRoLWxvYWRpbmctc2NyZWVuL2F1dGgtbG9hZGluZy1zY3JlZW4uY29tcG9uZW50JztcbiJdfQ==
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { Directive, inject } from '@angular/core';
|
|
2
|
-
import { LoadingSpinnerDirective } from '@odx/angular/components/loading-spinner';
|
|
3
|
-
import { untilDestroyed } from '@odx/angular/utils';
|
|
4
|
-
import { AuthService } from '../auth.service';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
/**
|
|
7
|
-
* An abstract directive that integrates with the `LoadingSpinnerDirective` and `AuthService` to manage loading states based on authentication redirection.
|
|
8
|
-
*
|
|
9
|
-
* This directive automatically sets the `autoColor` property of the `LoadingSpinnerDirective` to `true` and subscribes to the `isRedirecting$` observable from the `AuthService`.
|
|
10
|
-
* When `isRedirecting$` emits a value, it updates the `isLoading` property of the `LoadingSpinnerDirective`.
|
|
11
|
-
*/
|
|
12
|
-
export class AuthActionDirective {
|
|
13
|
-
constructor() {
|
|
14
|
-
this.takeUntilDestroyed = untilDestroyed();
|
|
15
|
-
this.loadingSpinnerDirective = inject(LoadingSpinnerDirective, { self: true });
|
|
16
|
-
this.authService = inject(AuthService);
|
|
17
|
-
}
|
|
18
|
-
ngAfterViewInit() {
|
|
19
|
-
this.loadingSpinnerDirective.autoColor = true;
|
|
20
|
-
this.authService.isRedirecting$.pipe(this.takeUntilDestroyed()).subscribe((isRedirecting) => {
|
|
21
|
-
this.loadingSpinnerDirective.isLoading = isRedirecting;
|
|
22
|
-
});
|
|
23
|
-
}
|
|
24
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuthActionDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
25
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: AuthActionDirective, ngImport: i0 }); }
|
|
26
|
-
}
|
|
27
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuthActionDirective, decorators: [{
|
|
28
|
-
type: Directive
|
|
29
|
-
}] });
|
|
30
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1hY3Rpb24uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hdXRoL3NyYy9saWIvZGlyZWN0aXZlcy9hdXRoLWFjdGlvbi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBRTlDOzs7OztHQUtHO0FBRUgsTUFBTSxPQUFnQixtQkFBbUI7SUFEekM7UUFFbUIsdUJBQWtCLEdBQUcsY0FBYyxFQUFFLENBQUM7UUFDdEMsNEJBQXVCLEdBQUcsTUFBTSxDQUFDLHVCQUF1QixFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDeEUsZ0JBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7S0FVdEQ7SUFSUSxlQUFlO1FBQ3BCLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQzlDLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLGFBQWEsRUFBRSxFQUFFO1lBQzFGLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxTQUFTLEdBQUcsYUFBYSxDQUFDO1FBQ3pELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzsrR0FWbUIsbUJBQW1CO21HQUFuQixtQkFBbUI7OzRGQUFuQixtQkFBbUI7a0JBRHhDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBEaXJlY3RpdmUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTG9hZGluZ1NwaW5uZXJEaXJlY3RpdmUgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY29tcG9uZW50cy9sb2FkaW5nLXNwaW5uZXInO1xuaW1wb3J0IHsgdW50aWxEZXN0cm95ZWQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvdXRpbHMnO1xuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi9hdXRoLnNlcnZpY2UnO1xuXG4vKipcbiAqIEFuIGFic3RyYWN0IGRpcmVjdGl2ZSB0aGF0IGludGVncmF0ZXMgd2l0aCB0aGUgYExvYWRpbmdTcGlubmVyRGlyZWN0aXZlYCBhbmQgYEF1dGhTZXJ2aWNlYCB0byBtYW5hZ2UgbG9hZGluZyBzdGF0ZXMgYmFzZWQgb24gYXV0aGVudGljYXRpb24gcmVkaXJlY3Rpb24uXG4gKlxuICogVGhpcyBkaXJlY3RpdmUgYXV0b21hdGljYWxseSBzZXRzIHRoZSBgYXV0b0NvbG9yYCBwcm9wZXJ0eSBvZiB0aGUgYExvYWRpbmdTcGlubmVyRGlyZWN0aXZlYCB0byBgdHJ1ZWAgYW5kIHN1YnNjcmliZXMgdG8gdGhlIGBpc1JlZGlyZWN0aW5nJGAgb2JzZXJ2YWJsZSBmcm9tIHRoZSBgQXV0aFNlcnZpY2VgLlxuICogV2hlbiBgaXNSZWRpcmVjdGluZyRgIGVtaXRzIGEgdmFsdWUsIGl0IHVwZGF0ZXMgdGhlIGBpc0xvYWRpbmdgIHByb3BlcnR5IG9mIHRoZSBgTG9hZGluZ1NwaW5uZXJEaXJlY3RpdmVgLlxuICovXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBdXRoQWN0aW9uRGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgdGFrZVVudGlsRGVzdHJveWVkID0gdW50aWxEZXN0cm95ZWQoKTtcbiAgcHJpdmF0ZSByZWFkb25seSBsb2FkaW5nU3Bpbm5lckRpcmVjdGl2ZSA9IGluamVjdChMb2FkaW5nU3Bpbm5lckRpcmVjdGl2ZSwgeyBzZWxmOiB0cnVlIH0pO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgYXV0aFNlcnZpY2UgPSBpbmplY3QoQXV0aFNlcnZpY2UpO1xuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5sb2FkaW5nU3Bpbm5lckRpcmVjdGl2ZS5hdXRvQ29sb3IgPSB0cnVlO1xuICAgIHRoaXMuYXV0aFNlcnZpY2UuaXNSZWRpcmVjdGluZyQucGlwZSh0aGlzLnRha2VVbnRpbERlc3Ryb3llZCgpKS5zdWJzY3JpYmUoKGlzUmVkaXJlY3RpbmcpID0+IHtcbiAgICAgIHRoaXMubG9hZGluZ1NwaW5uZXJEaXJlY3RpdmUuaXNMb2FkaW5nID0gaXNSZWRpcmVjdGluZztcbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBoYW5kbGVDbGljaygpOiB2b2lkO1xufVxuIl19
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
export * from './auth-action.directive';
|
|
2
|
-
export * from './sign-in.directive';
|
|
3
|
-
export * from './sign-out.directive';
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2F1dGgvc3JjL2xpYi9kaXJlY3RpdmVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLHNCQUFzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hdXRoLWFjdGlvbi5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9zaWduLWluLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL3NpZ24tb3V0LmRpcmVjdGl2ZSc7XG4iXX0=
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* A directive that handles the sign-in action for a button element.
|
|
3
|
-
*
|
|
4
|
-
* This directive extends the `AuthActionDirective` and uses the `LoadingSpinnerDirective`
|
|
5
|
-
* to show a loading spinner during the sign-in process.
|
|
6
|
-
*
|
|
7
|
-
* @see {AuthActionDirective}
|
|
8
|
-
* @see {LoadingSpinnerDirective}
|
|
9
|
-
*
|
|
10
|
-
* @example
|
|
11
|
-
* ```html
|
|
12
|
-
* <button odxButton odxAuthSignIn (odxAuthSignIn)="onSignIn()">Sign In</button>
|
|
13
|
-
* ```
|
|
14
|
-
*/
|
|
15
|
-
import { Directive, EventEmitter, HostListener, Output } from '@angular/core';
|
|
16
|
-
import { LoadingSpinnerDirective } from '@odx/angular/components/loading-spinner';
|
|
17
|
-
import { AuthActionDirective } from './auth-action.directive';
|
|
18
|
-
import * as i0 from "@angular/core";
|
|
19
|
-
import * as i1 from "@odx/angular/components/loading-spinner";
|
|
20
|
-
export class SignInDirective extends AuthActionDirective {
|
|
21
|
-
constructor() {
|
|
22
|
-
super(...arguments);
|
|
23
|
-
/**
|
|
24
|
-
* Emits an event after the sign-in action is completed.
|
|
25
|
-
*
|
|
26
|
-
* @type {EventEmitter<void>}
|
|
27
|
-
*/
|
|
28
|
-
// eslint-disable-next-line @angular-eslint/no-output-rename
|
|
29
|
-
this.afterSignIn = new EventEmitter();
|
|
30
|
-
}
|
|
31
|
-
handleClick() {
|
|
32
|
-
this.authService.signIn();
|
|
33
|
-
this.afterSignIn.next();
|
|
34
|
-
}
|
|
35
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SignInDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
|
|
36
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: SignInDirective, isStandalone: true, selector: "[odxButton][odxAuthSignIn]", outputs: { afterSignIn: "odxAuthSignIn" }, host: { listeners: { "click": "handleClick()" } }, usesInheritance: true, hostDirectives: [{ directive: i1.LoadingSpinnerDirective }], ngImport: i0 }); }
|
|
37
|
-
}
|
|
38
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SignInDirective, decorators: [{
|
|
39
|
-
type: Directive,
|
|
40
|
-
args: [{
|
|
41
|
-
standalone: true,
|
|
42
|
-
selector: '[odxButton][odxAuthSignIn]',
|
|
43
|
-
hostDirectives: [LoadingSpinnerDirective],
|
|
44
|
-
}]
|
|
45
|
-
}], propDecorators: { afterSignIn: [{
|
|
46
|
-
type: Output,
|
|
47
|
-
args: ['odxAuthSignIn']
|
|
48
|
-
}], handleClick: [{
|
|
49
|
-
type: HostListener,
|
|
50
|
-
args: ['click']
|
|
51
|
-
}] } });
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbi1pbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2F1dGgvc3JjL2xpYi9kaXJlY3RpdmVzL3NpZ24taW4uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFDSCxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7QUFPOUQsTUFBTSxPQUFPLGVBQWdCLFNBQVEsbUJBQW1CO0lBTHhEOztRQU1FOzs7O1dBSUc7UUFDSCw0REFBNEQ7UUFFckQsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO0tBTy9DO0lBSm9CLFdBQVc7UUFDNUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUMxQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzFCLENBQUM7K0dBZFUsZUFBZTttR0FBZixlQUFlOzs0RkFBZixlQUFlO2tCQUwzQixTQUFTO21CQUFDO29CQUNULFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsNEJBQTRCO29CQUN0QyxjQUFjLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQztpQkFDMUM7OEJBU1EsV0FBVztzQkFEakIsTUFBTTt1QkFBQyxlQUFlO2dCQUlKLFdBQVc7c0JBRDdCLFlBQVk7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQSBkaXJlY3RpdmUgdGhhdCBoYW5kbGVzIHRoZSBzaWduLWluIGFjdGlvbiBmb3IgYSBidXR0b24gZWxlbWVudC5cbiAqXG4gKiBUaGlzIGRpcmVjdGl2ZSBleHRlbmRzIHRoZSBgQXV0aEFjdGlvbkRpcmVjdGl2ZWAgYW5kIHVzZXMgdGhlIGBMb2FkaW5nU3Bpbm5lckRpcmVjdGl2ZWBcbiAqIHRvIHNob3cgYSBsb2FkaW5nIHNwaW5uZXIgZHVyaW5nIHRoZSBzaWduLWluIHByb2Nlc3MuXG4gKlxuICogQHNlZSB7QXV0aEFjdGlvbkRpcmVjdGl2ZX1cbiAqIEBzZWUge0xvYWRpbmdTcGlubmVyRGlyZWN0aXZlfVxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGBodG1sXG4gKiA8YnV0dG9uIG9keEJ1dHRvbiBvZHhBdXRoU2lnbkluIChvZHhBdXRoU2lnbkluKT1cIm9uU2lnbkluKClcIj5TaWduIEluPC9idXR0b24+XG4gKiBgYGBcbiAqL1xuaW1wb3J0IHsgRGlyZWN0aXZlLCBFdmVudEVtaXR0ZXIsIEhvc3RMaXN0ZW5lciwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBMb2FkaW5nU3Bpbm5lckRpcmVjdGl2ZSB9IGZyb20gJ0BvZHgvYW5ndWxhci9jb21wb25lbnRzL2xvYWRpbmctc3Bpbm5lcic7XG5pbXBvcnQgeyBBdXRoQWN0aW9uRGlyZWN0aXZlIH0gZnJvbSAnLi9hdXRoLWFjdGlvbi5kaXJlY3RpdmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICdbb2R4QnV0dG9uXVtvZHhBdXRoU2lnbkluXScsXG4gIGhvc3REaXJlY3RpdmVzOiBbTG9hZGluZ1NwaW5uZXJEaXJlY3RpdmVdLFxufSlcbmV4cG9ydCBjbGFzcyBTaWduSW5EaXJlY3RpdmUgZXh0ZW5kcyBBdXRoQWN0aW9uRGlyZWN0aXZlIHtcbiAgLyoqXG4gICAqIEVtaXRzIGFuIGV2ZW50IGFmdGVyIHRoZSBzaWduLWluIGFjdGlvbiBpcyBjb21wbGV0ZWQuXG4gICAqXG4gICAqIEB0eXBlIHtFdmVudEVtaXR0ZXI8dm9pZD59XG4gICAqL1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLW91dHB1dC1yZW5hbWVcbiAgQE91dHB1dCgnb2R4QXV0aFNpZ25JbicpXG4gIHB1YmxpYyBhZnRlclNpZ25JbiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBASG9zdExpc3RlbmVyKCdjbGljaycpXG4gIHByb3RlY3RlZCBvdmVycmlkZSBoYW5kbGVDbGljaygpOiB2b2lkIHtcbiAgICB0aGlzLmF1dGhTZXJ2aWNlLnNpZ25JbigpO1xuICAgIHRoaXMuYWZ0ZXJTaWduSW4ubmV4dCgpO1xuICB9XG59XG4iXX0=
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import { Directive, EventEmitter, HostListener, Output } from '@angular/core';
|
|
2
|
-
import { LoadingSpinnerDirective } from '@odx/angular/components/loading-spinner';
|
|
3
|
-
import { AuthActionDirective } from './auth-action.directive';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "@odx/angular/components/loading-spinner";
|
|
6
|
-
/**
|
|
7
|
-
* A directive that handles the sign-out action for a button element.
|
|
8
|
-
*
|
|
9
|
-
* This directive extends the `AuthActionDirective` and uses the `LoadingSpinnerDirective`
|
|
10
|
-
* to show a loading spinner during the sign-out process.
|
|
11
|
-
*
|
|
12
|
-
* @see {AuthActionDirective}
|
|
13
|
-
* @see {LoadingSpinnerDirective}
|
|
14
|
-
*
|
|
15
|
-
* @example
|
|
16
|
-
* ```html
|
|
17
|
-
* <button odxButton odxAuthSignOut (odxAuthSignOut)="onSignOut()">Sign Out</button>
|
|
18
|
-
* ```
|
|
19
|
-
*/
|
|
20
|
-
export class SignOutDirective extends AuthActionDirective {
|
|
21
|
-
constructor() {
|
|
22
|
-
super(...arguments);
|
|
23
|
-
/**
|
|
24
|
-
* Emits an event after the sign-out action is completed.
|
|
25
|
-
*
|
|
26
|
-
*/
|
|
27
|
-
this.afterSignOut = new EventEmitter();
|
|
28
|
-
}
|
|
29
|
-
handleClick() {
|
|
30
|
-
this.authService.signOut();
|
|
31
|
-
this.afterSignOut.next();
|
|
32
|
-
}
|
|
33
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SignOutDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
|
|
34
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: SignOutDirective, isStandalone: true, selector: "[odxAuthSignOut]", outputs: { afterSignOut: "odxAuthSignOut" }, host: { listeners: { "click": "handleClick()" } }, usesInheritance: true, hostDirectives: [{ directive: i1.LoadingSpinnerDirective }], ngImport: i0 }); }
|
|
35
|
-
}
|
|
36
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SignOutDirective, decorators: [{
|
|
37
|
-
type: Directive,
|
|
38
|
-
args: [{
|
|
39
|
-
standalone: true,
|
|
40
|
-
selector: '[odxAuthSignOut]',
|
|
41
|
-
hostDirectives: [LoadingSpinnerDirective],
|
|
42
|
-
}]
|
|
43
|
-
}], propDecorators: { afterSignOut: [{
|
|
44
|
-
type: Output,
|
|
45
|
-
args: ['odxAuthSignOut']
|
|
46
|
-
}], handleClick: [{
|
|
47
|
-
type: HostListener,
|
|
48
|
-
args: ['click']
|
|
49
|
-
}] } });
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbi1vdXQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hdXRoL3NyYy9saWIvZGlyZWN0aXZlcy9zaWduLW91dC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNsRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7O0FBRTlEOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFNSCxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsbUJBQW1CO0lBTHpEOztRQU1FOzs7V0FHRztRQUVJLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztLQU9oRDtJQUpvQixXQUFXO1FBQzVCLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDM0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMzQixDQUFDOytHQVpVLGdCQUFnQjttR0FBaEIsZ0JBQWdCOzs0RkFBaEIsZ0JBQWdCO2tCQUw1QixTQUFTO21CQUFDO29CQUNULFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsa0JBQWtCO29CQUM1QixjQUFjLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQztpQkFDMUM7OEJBT1EsWUFBWTtzQkFEbEIsTUFBTTt1QkFBQyxnQkFBZ0I7Z0JBSUwsV0FBVztzQkFEN0IsWUFBWTt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFdmVudEVtaXR0ZXIsIEhvc3RMaXN0ZW5lciwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBMb2FkaW5nU3Bpbm5lckRpcmVjdGl2ZSB9IGZyb20gJ0BvZHgvYW5ndWxhci9jb21wb25lbnRzL2xvYWRpbmctc3Bpbm5lcic7XG5pbXBvcnQgeyBBdXRoQWN0aW9uRGlyZWN0aXZlIH0gZnJvbSAnLi9hdXRoLWFjdGlvbi5kaXJlY3RpdmUnO1xuXG4vKipcbiAqIEEgZGlyZWN0aXZlIHRoYXQgaGFuZGxlcyB0aGUgc2lnbi1vdXQgYWN0aW9uIGZvciBhIGJ1dHRvbiBlbGVtZW50LlxuICpcbiAqIFRoaXMgZGlyZWN0aXZlIGV4dGVuZHMgdGhlIGBBdXRoQWN0aW9uRGlyZWN0aXZlYCBhbmQgdXNlcyB0aGUgYExvYWRpbmdTcGlubmVyRGlyZWN0aXZlYFxuICogdG8gc2hvdyBhIGxvYWRpbmcgc3Bpbm5lciBkdXJpbmcgdGhlIHNpZ24tb3V0IHByb2Nlc3MuXG4gKlxuICogQHNlZSB7QXV0aEFjdGlvbkRpcmVjdGl2ZX1cbiAqIEBzZWUge0xvYWRpbmdTcGlubmVyRGlyZWN0aXZlfVxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGBodG1sXG4gKiA8YnV0dG9uIG9keEJ1dHRvbiBvZHhBdXRoU2lnbk91dCAob2R4QXV0aFNpZ25PdXQpPVwib25TaWduT3V0KClcIj5TaWduIE91dDwvYnV0dG9uPlxuICogYGBgXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ1tvZHhBdXRoU2lnbk91dF0nLFxuICBob3N0RGlyZWN0aXZlczogW0xvYWRpbmdTcGlubmVyRGlyZWN0aXZlXSxcbn0pXG5leHBvcnQgY2xhc3MgU2lnbk91dERpcmVjdGl2ZSBleHRlbmRzIEF1dGhBY3Rpb25EaXJlY3RpdmUge1xuICAvKipcbiAgICogRW1pdHMgYW4gZXZlbnQgYWZ0ZXIgdGhlIHNpZ24tb3V0IGFjdGlvbiBpcyBjb21wbGV0ZWQuXG4gICAqXG4gICAqL1xuICBAT3V0cHV0KCdvZHhBdXRoU2lnbk91dCcpXG4gIHB1YmxpYyBhZnRlclNpZ25PdXQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgQEhvc3RMaXN0ZW5lcignY2xpY2snKVxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgaGFuZGxlQ2xpY2soKTogdm9pZCB7XG4gICAgdGhpcy5hdXRoU2VydmljZS5zaWduT3V0KCk7XG4gICAgdGhpcy5hZnRlclNpZ25PdXQubmV4dCgpO1xuICB9XG59XG4iXX0=
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { buildUrl } from '@odx/angular/utils';
|
|
2
|
-
import { ODX_AUTH_HOSTS } from '../auth.config';
|
|
3
|
-
/**
|
|
4
|
-
* Creates an authentication host URL based on the provided environment and URL segments.
|
|
5
|
-
*
|
|
6
|
-
* @param {AuthEnvironment} environment - The authentication environment (e.g., 'development', 'production').
|
|
7
|
-
* @param {string[]} segments - Additional URL segments to append to the base URL.
|
|
8
|
-
* @returns {string} The constructed authentication host URL.
|
|
9
|
-
*
|
|
10
|
-
* @example
|
|
11
|
-
* ```ts
|
|
12
|
-
* createAuthHostUrl('dev', 'api', 'v1', 'users'); // returns 'https://dev-auth.odx.com/api/v1/users'
|
|
13
|
-
* ```
|
|
14
|
-
*/
|
|
15
|
-
export function createAuthHostUrl(environment, ...segments) {
|
|
16
|
-
return buildUrl(ODX_AUTH_HOSTS[environment], ...segments);
|
|
17
|
-
}
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWF1dGgtaG9zdC11cmwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2F1dGgvc3JjL2xpYi9oZWxwZXJzL2NyZWF0ZS1hdXRoLWhvc3QtdXJsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHaEQ7Ozs7Ozs7Ozs7O0dBV0c7QUFDSCxNQUFNLFVBQVUsaUJBQWlCLENBQUMsV0FBNEIsRUFBRSxHQUFHLFFBQWtCO0lBQ25GLE9BQU8sUUFBUSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsRUFBRSxHQUFHLFFBQVEsQ0FBQyxDQUFDO0FBQzVELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBidWlsZFVybCB9IGZyb20gJ0BvZHgvYW5ndWxhci91dGlscyc7XG5pbXBvcnQgeyBPRFhfQVVUSF9IT1NUUyB9IGZyb20gJy4uL2F1dGguY29uZmlnJztcbmltcG9ydCB7IEF1dGhFbnZpcm9ubWVudCB9IGZyb20gJy4uL21vZGVscyc7XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBhdXRoZW50aWNhdGlvbiBob3N0IFVSTCBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgZW52aXJvbm1lbnQgYW5kIFVSTCBzZWdtZW50cy5cbiAqXG4gKiBAcGFyYW0ge0F1dGhFbnZpcm9ubWVudH0gZW52aXJvbm1lbnQgLSBUaGUgYXV0aGVudGljYXRpb24gZW52aXJvbm1lbnQgKGUuZy4sICdkZXZlbG9wbWVudCcsICdwcm9kdWN0aW9uJykuXG4gKiBAcGFyYW0ge3N0cmluZ1tdfSBzZWdtZW50cyAtIEFkZGl0aW9uYWwgVVJMIHNlZ21lbnRzIHRvIGFwcGVuZCB0byB0aGUgYmFzZSBVUkwuXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBUaGUgY29uc3RydWN0ZWQgYXV0aGVudGljYXRpb24gaG9zdCBVUkwuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzXG4gKiBjcmVhdGVBdXRoSG9zdFVybCgnZGV2JywgJ2FwaScsICd2MScsICd1c2VycycpOyAvLyByZXR1cm5zICdodHRwczovL2Rldi1hdXRoLm9keC5jb20vYXBpL3YxL3VzZXJzJ1xuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVBdXRoSG9zdFVybChlbnZpcm9ubWVudDogQXV0aEVudmlyb25tZW50LCAuLi5zZWdtZW50czogc3RyaW5nW10pOiBzdHJpbmcge1xuICByZXR1cm4gYnVpbGRVcmwoT0RYX0FVVEhfSE9TVFNbZW52aXJvbm1lbnRdLCAuLi5zZWdtZW50cyk7XG59XG4iXX0=
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Creates initials from a given string.
|
|
3
|
-
*
|
|
4
|
-
* This function takes a string input, removes any text within parentheses,
|
|
5
|
-
* trims any leading or trailing whitespace, and then splits the string into
|
|
6
|
-
* parts based on spaces. It then constructs initials using the first letter
|
|
7
|
-
* of the first and last parts of the string, converting them to uppercase.
|
|
8
|
-
*
|
|
9
|
-
* @param {string | null} value - The input string from which to create initials. It can be
|
|
10
|
-
* undefined or null, in which case an empty string is returned.
|
|
11
|
-
* @returns {string} - A string containing the initials derived from the input string.
|
|
12
|
-
*
|
|
13
|
-
* @example
|
|
14
|
-
* ```ts
|
|
15
|
-
* createInitials('John Smith'); // returns 'JS'
|
|
16
|
-
* ```
|
|
17
|
-
*/
|
|
18
|
-
export function createInitials(value) {
|
|
19
|
-
if (!value)
|
|
20
|
-
return '';
|
|
21
|
-
const parts = value
|
|
22
|
-
.replace(/\([^()]*\)/, '')
|
|
23
|
-
.trim()
|
|
24
|
-
.split(' ');
|
|
25
|
-
return parts.reduce((initials, curr, index) => {
|
|
26
|
-
if (index === 0 || index === parts.length - 1) {
|
|
27
|
-
initials += curr[0].toUpperCase();
|
|
28
|
-
}
|
|
29
|
-
return initials;
|
|
30
|
-
}, '');
|
|
31
|
-
}
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWluaXRpdGFscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXV0aC9zcmMvbGliL2hlbHBlcnMvY3JlYXRlLWluaXRpdGFscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7OztHQWdCRztBQUNILE1BQU0sVUFBVSxjQUFjLENBQUMsS0FBcUI7SUFDbEQsSUFBSSxDQUFDLEtBQUs7UUFBRSxPQUFPLEVBQUUsQ0FBQztJQUN0QixNQUFNLEtBQUssR0FBRyxLQUFLO1NBQ2hCLE9BQU8sQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDO1NBQ3pCLElBQUksRUFBRTtTQUNOLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUVkLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUU7UUFDNUMsSUFBSSxLQUFLLEtBQUssQ0FBQyxJQUFJLEtBQUssS0FBSyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzlDLFFBQVEsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDcEMsQ0FBQztRQUNELE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUNULENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENyZWF0ZXMgaW5pdGlhbHMgZnJvbSBhIGdpdmVuIHN0cmluZy5cbiAqXG4gKiBUaGlzIGZ1bmN0aW9uIHRha2VzIGEgc3RyaW5nIGlucHV0LCByZW1vdmVzIGFueSB0ZXh0IHdpdGhpbiBwYXJlbnRoZXNlcyxcbiAqIHRyaW1zIGFueSBsZWFkaW5nIG9yIHRyYWlsaW5nIHdoaXRlc3BhY2UsIGFuZCB0aGVuIHNwbGl0cyB0aGUgc3RyaW5nIGludG9cbiAqIHBhcnRzIGJhc2VkIG9uIHNwYWNlcy4gSXQgdGhlbiBjb25zdHJ1Y3RzIGluaXRpYWxzIHVzaW5nIHRoZSBmaXJzdCBsZXR0ZXJcbiAqIG9mIHRoZSBmaXJzdCBhbmQgbGFzdCBwYXJ0cyBvZiB0aGUgc3RyaW5nLCBjb252ZXJ0aW5nIHRoZW0gdG8gdXBwZXJjYXNlLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbH0gdmFsdWUgLSBUaGUgaW5wdXQgc3RyaW5nIGZyb20gd2hpY2ggdG8gY3JlYXRlIGluaXRpYWxzLiBJdCBjYW4gYmVcbiAqICAgICAgICAgICAgICAgIHVuZGVmaW5lZCBvciBudWxsLCBpbiB3aGljaCBjYXNlIGFuIGVtcHR5IHN0cmluZyBpcyByZXR1cm5lZC5cbiAqIEByZXR1cm5zIHtzdHJpbmd9IC0gQSBzdHJpbmcgY29udGFpbmluZyB0aGUgaW5pdGlhbHMgZGVyaXZlZCBmcm9tIHRoZSBpbnB1dCBzdHJpbmcuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzXG4gKiBjcmVhdGVJbml0aWFscygnSm9obiBTbWl0aCcpOyAvLyByZXR1cm5zICdKUydcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlSW5pdGlhbHModmFsdWU/OiBzdHJpbmcgfCBudWxsKTogc3RyaW5nIHtcbiAgaWYgKCF2YWx1ZSkgcmV0dXJuICcnO1xuICBjb25zdCBwYXJ0cyA9IHZhbHVlXG4gICAgLnJlcGxhY2UoL1xcKFteKCldKlxcKS8sICcnKVxuICAgIC50cmltKClcbiAgICAuc3BsaXQoJyAnKTtcblxuICByZXR1cm4gcGFydHMucmVkdWNlKChpbml0aWFscywgY3VyciwgaW5kZXgpID0+IHtcbiAgICBpZiAoaW5kZXggPT09IDAgfHwgaW5kZXggPT09IHBhcnRzLmxlbmd0aCAtIDEpIHtcbiAgICAgIGluaXRpYWxzICs9IGN1cnJbMF0udG9VcHBlckNhc2UoKTtcbiAgICB9XG4gICAgcmV0dXJuIGluaXRpYWxzO1xuICB9LCAnJyk7XG59XG4iXX0=
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { EnvironmentInjector, inject, runInInjectionContext } from '@angular/core';
|
|
2
|
-
import { OAuthErrorEvent } from 'angular-oauth2-oidc';
|
|
3
|
-
/**
|
|
4
|
-
* Handles authentication errors by executing a series of error handler functions.
|
|
5
|
-
*
|
|
6
|
-
* @param {AuthErrorHandlerFn[]} handlers - An array of functions that handle authentication errors.
|
|
7
|
-
* Each function is expected to take an `OAuthErrorEvent` as an argument.
|
|
8
|
-
*
|
|
9
|
-
* @returns A function that takes an `OAuthErrorEvent` and processes it using the provided handlers.
|
|
10
|
-
* The function will stop processing once a handler successfully handles the error without throwing.
|
|
11
|
-
* If a handler throws an error that is not an instance of `OAuthErrorEvent`, the original error is re-thrown.
|
|
12
|
-
*/
|
|
13
|
-
export function handleAuthError(handlers) {
|
|
14
|
-
const injector = inject(EnvironmentInjector);
|
|
15
|
-
return (error) => {
|
|
16
|
-
runInInjectionContext(injector, () => {
|
|
17
|
-
for (const handler of handlers) {
|
|
18
|
-
try {
|
|
19
|
-
handler(error);
|
|
20
|
-
break;
|
|
21
|
-
}
|
|
22
|
-
catch (unhandledError) {
|
|
23
|
-
if (!(unhandledError instanceof OAuthErrorEvent))
|
|
24
|
-
throw error;
|
|
25
|
-
continue;
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
});
|
|
29
|
-
};
|
|
30
|
-
}
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFuZGxlLWF1dGgtZXJyb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2F1dGgvc3JjL2xpYi9oZWxwZXJzL2hhbmRsZS1hdXRoLWVycm9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBR3REOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0sVUFBVSxlQUFlLENBQUMsUUFBOEI7SUFDNUQsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFFN0MsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFO1FBQ2YscUJBQXFCLENBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRTtZQUNuQyxLQUFLLE1BQU0sT0FBTyxJQUFJLFFBQVEsRUFBRSxDQUFDO2dCQUMvQixJQUFJLENBQUM7b0JBQ0gsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUNmLE1BQU07Z0JBQ1IsQ0FBQztnQkFBQyxPQUFPLGNBQWMsRUFBRSxDQUFDO29CQUN4QixJQUFJLENBQUMsQ0FBQyxjQUFjLFlBQVksZUFBZSxDQUFDO3dCQUFFLE1BQU0sS0FBSyxDQUFDO29CQUM5RCxTQUFTO2dCQUNYLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW52aXJvbm1lbnRJbmplY3RvciwgaW5qZWN0LCBydW5JbkluamVjdGlvbkNvbnRleHQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9BdXRoRXJyb3JFdmVudCB9IGZyb20gJ2FuZ3VsYXItb2F1dGgyLW9pZGMnO1xuaW1wb3J0IHsgQXV0aEVycm9ySGFuZGxlckZuIH0gZnJvbSAnLi4vYXV0aC5jb25maWcnO1xuXG4vKipcbiAqIEhhbmRsZXMgYXV0aGVudGljYXRpb24gZXJyb3JzIGJ5IGV4ZWN1dGluZyBhIHNlcmllcyBvZiBlcnJvciBoYW5kbGVyIGZ1bmN0aW9ucy5cbiAqXG4gKiBAcGFyYW0ge0F1dGhFcnJvckhhbmRsZXJGbltdfSBoYW5kbGVycyAtIEFuIGFycmF5IG9mIGZ1bmN0aW9ucyB0aGF0IGhhbmRsZSBhdXRoZW50aWNhdGlvbiBlcnJvcnMuXG4gKiBFYWNoIGZ1bmN0aW9uIGlzIGV4cGVjdGVkIHRvIHRha2UgYW4gYE9BdXRoRXJyb3JFdmVudGAgYXMgYW4gYXJndW1lbnQuXG4gKlxuICogQHJldHVybnMgQSBmdW5jdGlvbiB0aGF0IHRha2VzIGFuIGBPQXV0aEVycm9yRXZlbnRgIGFuZCBwcm9jZXNzZXMgaXQgdXNpbmcgdGhlIHByb3ZpZGVkIGhhbmRsZXJzLlxuICogVGhlIGZ1bmN0aW9uIHdpbGwgc3RvcCBwcm9jZXNzaW5nIG9uY2UgYSBoYW5kbGVyIHN1Y2Nlc3NmdWxseSBoYW5kbGVzIHRoZSBlcnJvciB3aXRob3V0IHRocm93aW5nLlxuICogSWYgYSBoYW5kbGVyIHRocm93cyBhbiBlcnJvciB0aGF0IGlzIG5vdCBhbiBpbnN0YW5jZSBvZiBgT0F1dGhFcnJvckV2ZW50YCwgdGhlIG9yaWdpbmFsIGVycm9yIGlzIHJlLXRocm93bi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhhbmRsZUF1dGhFcnJvcihoYW5kbGVyczogQXV0aEVycm9ySGFuZGxlckZuW10pOiAoZXJyb3I6IE9BdXRoRXJyb3JFdmVudCkgPT4gdm9pZCB7XG4gIGNvbnN0IGluamVjdG9yID0gaW5qZWN0KEVudmlyb25tZW50SW5qZWN0b3IpO1xuXG4gIHJldHVybiAoZXJyb3IpID0+IHtcbiAgICBydW5JbkluamVjdGlvbkNvbnRleHQoaW5qZWN0b3IsICgpID0+IHtcbiAgICAgIGZvciAoY29uc3QgaGFuZGxlciBvZiBoYW5kbGVycykge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGhhbmRsZXIoZXJyb3IpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9IGNhdGNoICh1bmhhbmRsZWRFcnJvcikge1xuICAgICAgICAgIGlmICghKHVuaGFuZGxlZEVycm9yIGluc3RhbmNlb2YgT0F1dGhFcnJvckV2ZW50KSkgdGhyb3cgZXJyb3I7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfTtcbn1cbiJdfQ==
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { filter, switchMap } from 'rxjs';
|
|
2
|
-
/**
|
|
3
|
-
* Handles OAuth events of a specific type by applying a provided handler function.
|
|
4
|
-
*
|
|
5
|
-
* @template {T} - The type of OAuth event.
|
|
6
|
-
* @param {T['type']} type - The type of the OAuth event to handle.
|
|
7
|
-
* @param {(event: T) => Promise<void>} handler - A function that takes an event of type T and returns a Promise that resolves to void.
|
|
8
|
-
* @returns {OperatorFunction<T, void>} - An OperatorFunction that filters events of the specified type and applies the handler function.
|
|
9
|
-
*/
|
|
10
|
-
export function handleOAuthEvent(type, handler) {
|
|
11
|
-
return (source$) => source$.pipe(filter((event) => event.type === type), switchMap((event) => handler(event)));
|
|
12
|
-
}
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFuZGxlLW9hdXRoLWV2ZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hdXRoL3NyYy9saWIvaGVscGVycy9oYW5kbGUtb2F1dGgtZXZlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLE1BQU0sRUFBZ0MsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXZFOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLFVBQVUsZ0JBQWdCLENBQXVCLElBQWUsRUFBRSxPQUFvQztJQUMxRyxPQUFPLENBQUMsT0FBc0IsRUFBRSxFQUFFLENBQ2hDLE9BQU8sQ0FBQyxJQUFJLENBQ1YsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxFQUN0QyxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUNyQyxDQUFDO0FBQ04sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9BdXRoRXZlbnQgfSBmcm9tICdhbmd1bGFyLW9hdXRoMi1vaWRjJztcbmltcG9ydCB7IGZpbHRlciwgT2JzZXJ2YWJsZSwgT3BlcmF0b3JGdW5jdGlvbiwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcyc7XG5cbi8qKlxuICogSGFuZGxlcyBPQXV0aCBldmVudHMgb2YgYSBzcGVjaWZpYyB0eXBlIGJ5IGFwcGx5aW5nIGEgcHJvdmlkZWQgaGFuZGxlciBmdW5jdGlvbi5cbiAqXG4gKiBAdGVtcGxhdGUge1R9IC0gVGhlIHR5cGUgb2YgT0F1dGggZXZlbnQuXG4gKiBAcGFyYW0ge1RbJ3R5cGUnXX0gdHlwZSAtIFRoZSB0eXBlIG9mIHRoZSBPQXV0aCBldmVudCB0byBoYW5kbGUuXG4gKiBAcGFyYW0geyhldmVudDogVCkgPT4gUHJvbWlzZTx2b2lkPn0gaGFuZGxlciAtIEEgZnVuY3Rpb24gdGhhdCB0YWtlcyBhbiBldmVudCBvZiB0eXBlIFQgYW5kIHJldHVybnMgYSBQcm9taXNlIHRoYXQgcmVzb2x2ZXMgdG8gdm9pZC5cbiAqIEByZXR1cm5zIHtPcGVyYXRvckZ1bmN0aW9uPFQsIHZvaWQ+fSAtIEFuIE9wZXJhdG9yRnVuY3Rpb24gdGhhdCBmaWx0ZXJzIGV2ZW50cyBvZiB0aGUgc3BlY2lmaWVkIHR5cGUgYW5kIGFwcGxpZXMgdGhlIGhhbmRsZXIgZnVuY3Rpb24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBoYW5kbGVPQXV0aEV2ZW50PFQgZXh0ZW5kcyBPQXV0aEV2ZW50Pih0eXBlOiBUWyd0eXBlJ10sIGhhbmRsZXI6IChldmVudDogVCkgPT4gUHJvbWlzZTx2b2lkPik6IE9wZXJhdG9yRnVuY3Rpb248VCwgdm9pZD4ge1xuICByZXR1cm4gKHNvdXJjZSQ6IE9ic2VydmFibGU8VD4pID0+XG4gICAgc291cmNlJC5waXBlKFxuICAgICAgZmlsdGVyKChldmVudCkgPT4gZXZlbnQudHlwZSA9PT0gdHlwZSksXG4gICAgICBzd2l0Y2hNYXAoKGV2ZW50KSA9PiBoYW5kbGVyKGV2ZW50KSksXG4gICAgKTtcbn1cbiJdfQ==
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
export * from './create-auth-host-url';
|
|
2
|
-
export * from './create-inititals';
|
|
3
|
-
export * from './handle-auth-error';
|
|
4
|
-
export * from './handle-oauth-event';
|
|
5
|
-
export * from './resolve-email';
|
|
6
|
-
export * from './resolve-username';
|
|
7
|
-
export * from './set-http-auth-header';
|
|
8
|
-
export * from './user-language-loader';
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2F1dGgvc3JjL2xpYi9oZWxwZXJzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyx3QkFBd0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY3JlYXRlLWF1dGgtaG9zdC11cmwnO1xuZXhwb3J0ICogZnJvbSAnLi9jcmVhdGUtaW5pdGl0YWxzJztcbmV4cG9ydCAqIGZyb20gJy4vaGFuZGxlLWF1dGgtZXJyb3InO1xuZXhwb3J0ICogZnJvbSAnLi9oYW5kbGUtb2F1dGgtZXZlbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9yZXNvbHZlLWVtYWlsJztcbmV4cG9ydCAqIGZyb20gJy4vcmVzb2x2ZS11c2VybmFtZSc7XG5leHBvcnQgKiBmcm9tICcuL3NldC1odHRwLWF1dGgtaGVhZGVyJztcbmV4cG9ydCAqIGZyb20gJy4vdXNlci1sYW5ndWFnZS1sb2FkZXInO1xuIl19
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { isString } from '@odx/angular/utils';
|
|
2
|
-
/**
|
|
3
|
-
* Resolves the email address from the given identity claims.
|
|
4
|
-
*
|
|
5
|
-
* This function attempts to extract an email address from the provided
|
|
6
|
-
* `OdxAuth.RawIdentityClaims` object by checking the following properties
|
|
7
|
-
* in order:
|
|
8
|
-
* 1. `email` - if it is a string, it is returned.
|
|
9
|
-
* 2. `email_address` - if it is a string, it is returned.
|
|
10
|
-
* 3. `emails` - if it is an array and the first element is a string, the first element is returned.
|
|
11
|
-
*
|
|
12
|
-
* If none of these properties contain a valid string email address, an empty string is returned.
|
|
13
|
-
*
|
|
14
|
-
* @param {OdxAuth.RawIdentityClaims} claims - The identity claims object from which to resolve the email address.
|
|
15
|
-
* @returns {string} - The resolved email address as a string, or an empty string if no valid email address is found.
|
|
16
|
-
*
|
|
17
|
-
* @example
|
|
18
|
-
* ```ts
|
|
19
|
-
* resolveEmail({ email_address: 'email.address@mdn.com' }) // returns 'email.address@mdn.com';
|
|
20
|
-
* ```
|
|
21
|
-
*/
|
|
22
|
-
export function resolveEmail(claims) {
|
|
23
|
-
if (isString(claims['email'])) {
|
|
24
|
-
return claims['email'];
|
|
25
|
-
}
|
|
26
|
-
if (isString(claims['email_address'])) {
|
|
27
|
-
return claims['email_address'];
|
|
28
|
-
}
|
|
29
|
-
if (Array.isArray(claims['emails']) && isString(claims['emails'][0])) {
|
|
30
|
-
return claims['emails'][0];
|
|
31
|
-
}
|
|
32
|
-
return '';
|
|
33
|
-
}
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x2ZS1lbWFpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXV0aC9zcmMvbGliL2hlbHBlcnMvcmVzb2x2ZS1lbWFpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFOUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtQkc7QUFDSCxNQUFNLFVBQVUsWUFBWSxDQUFDLE1BQWlDO0lBQzVELElBQUksUUFBUSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDOUIsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUNELElBQUksUUFBUSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDdEMsT0FBTyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUNELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxRQUFRLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNyRSxPQUFPLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBQ0QsT0FBTyxFQUFFLENBQUM7QUFDWixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNTdHJpbmcgfSBmcm9tICdAb2R4L2FuZ3VsYXIvdXRpbHMnO1xuXG4vKipcbiAqIFJlc29sdmVzIHRoZSBlbWFpbCBhZGRyZXNzIGZyb20gdGhlIGdpdmVuIGlkZW50aXR5IGNsYWltcy5cbiAqXG4gKiBUaGlzIGZ1bmN0aW9uIGF0dGVtcHRzIHRvIGV4dHJhY3QgYW4gZW1haWwgYWRkcmVzcyBmcm9tIHRoZSBwcm92aWRlZFxuICogYE9keEF1dGguUmF3SWRlbnRpdHlDbGFpbXNgIG9iamVjdCBieSBjaGVja2luZyB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXNcbiAqIGluIG9yZGVyOlxuICogMS4gYGVtYWlsYCAtIGlmIGl0IGlzIGEgc3RyaW5nLCBpdCBpcyByZXR1cm5lZC5cbiAqIDIuIGBlbWFpbF9hZGRyZXNzYCAtIGlmIGl0IGlzIGEgc3RyaW5nLCBpdCBpcyByZXR1cm5lZC5cbiAqIDMuIGBlbWFpbHNgIC0gaWYgaXQgaXMgYW4gYXJyYXkgYW5kIHRoZSBmaXJzdCBlbGVtZW50IGlzIGEgc3RyaW5nLCB0aGUgZmlyc3QgZWxlbWVudCBpcyByZXR1cm5lZC5cbiAqXG4gKiBJZiBub25lIG9mIHRoZXNlIHByb3BlcnRpZXMgY29udGFpbiBhIHZhbGlkIHN0cmluZyBlbWFpbCBhZGRyZXNzLCBhbiBlbXB0eSBzdHJpbmcgaXMgcmV0dXJuZWQuXG4gKlxuICogQHBhcmFtIHtPZHhBdXRoLlJhd0lkZW50aXR5Q2xhaW1zfSBjbGFpbXMgLSBUaGUgaWRlbnRpdHkgY2xhaW1zIG9iamVjdCBmcm9tIHdoaWNoIHRvIHJlc29sdmUgdGhlIGVtYWlsIGFkZHJlc3MuXG4gKiBAcmV0dXJucyB7c3RyaW5nfSAtIFRoZSByZXNvbHZlZCBlbWFpbCBhZGRyZXNzIGFzIGEgc3RyaW5nLCBvciBhbiBlbXB0eSBzdHJpbmcgaWYgbm8gdmFsaWQgZW1haWwgYWRkcmVzcyBpcyBmb3VuZC5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqIHJlc29sdmVFbWFpbCh7IGVtYWlsX2FkZHJlc3M6ICdlbWFpbC5hZGRyZXNzQG1kbi5jb20nIH0pIC8vIHJldHVybnMgJ2VtYWlsLmFkZHJlc3NAbWRuLmNvbSc7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVFbWFpbChjbGFpbXM6IE9keEF1dGguUmF3SWRlbnRpdHlDbGFpbXMpOiBzdHJpbmcge1xuICBpZiAoaXNTdHJpbmcoY2xhaW1zWydlbWFpbCddKSkge1xuICAgIHJldHVybiBjbGFpbXNbJ2VtYWlsJ107XG4gIH1cbiAgaWYgKGlzU3RyaW5nKGNsYWltc1snZW1haWxfYWRkcmVzcyddKSkge1xuICAgIHJldHVybiBjbGFpbXNbJ2VtYWlsX2FkZHJlc3MnXTtcbiAgfVxuICBpZiAoQXJyYXkuaXNBcnJheShjbGFpbXNbJ2VtYWlscyddKSAmJiBpc1N0cmluZyhjbGFpbXNbJ2VtYWlscyddWzBdKSkge1xuICAgIHJldHVybiBjbGFpbXNbJ2VtYWlscyddWzBdO1xuICB9XG4gIHJldHVybiAnJztcbn1cbiJdfQ==
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { isString } from '@odx/angular/utils';
|
|
2
|
-
/**
|
|
3
|
-
* Resolves the username from the provided identity claims.
|
|
4
|
-
*
|
|
5
|
-
* The function attempts to construct a username from the claims in the following order:
|
|
6
|
-
* 1. If both 'firstname' and 'lastname' are strings, it returns them concatenated with a space.
|
|
7
|
-
* 2. If both 'given_name' and 'family_name' are strings, it returns them concatenated with a space.
|
|
8
|
-
* 3. If 'name' is a string, it returns the 'name'.
|
|
9
|
-
* 4. If 'displayname' is a string, it returns the 'displayname'.
|
|
10
|
-
* 5. If none of the above conditions are met, it returns an empty string.
|
|
11
|
-
*
|
|
12
|
-
* @param {OdxAuth.RawIdentityClaims} claims - The raw identity claims from which to resolve the username.
|
|
13
|
-
* @returns {string} - The resolved username as a string.
|
|
14
|
-
*
|
|
15
|
-
* @example
|
|
16
|
-
* ```ts
|
|
17
|
-
* resolveUsername({ firstname: 'John', lastname: 'Doe' }) // returns 'John Doe';
|
|
18
|
-
* resolveUsername({ given_name: 'John', family_name: 'Doe' }) // returns 'John Doe';
|
|
19
|
-
* resolveUsername({ name: 'John Doe' }) // returns 'John Doe';
|
|
20
|
-
* resolveUsername({ displayname: 'John Doe' }) // returns 'John Doe';
|
|
21
|
-
* ```
|
|
22
|
-
*/
|
|
23
|
-
export function resolveUsername(claims) {
|
|
24
|
-
if (isString(claims['firstname']) && isString(claims['lastname'])) {
|
|
25
|
-
return `${claims['firstname']} ${claims['lastname']}`;
|
|
26
|
-
}
|
|
27
|
-
if (isString(claims['given_name']) && isString(claims['family_name'])) {
|
|
28
|
-
return `${claims['given_name']} ${claims['family_name']}`;
|
|
29
|
-
}
|
|
30
|
-
if (isString(claims['name'])) {
|
|
31
|
-
return claims['name'];
|
|
32
|
-
}
|
|
33
|
-
if (isString(claims['displayname'])) {
|
|
34
|
-
return claims['displayname'];
|
|
35
|
-
}
|
|
36
|
-
return '';
|
|
37
|
-
}
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x2ZS11c2VybmFtZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXV0aC9zcmMvbGliL2hlbHBlcnMvcmVzb2x2ZS11c2VybmFtZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFOUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0JHO0FBQ0gsTUFBTSxVQUFVLGVBQWUsQ0FBQyxNQUFpQztJQUMvRCxJQUFJLFFBQVEsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxRQUFRLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNsRSxPQUFPLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO0lBQ3hELENBQUM7SUFDRCxJQUFJLFFBQVEsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxRQUFRLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUN0RSxPQUFPLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFJLE1BQU0sQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDO0lBQzVELENBQUM7SUFDRCxJQUFJLFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQzdCLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFDRCxJQUFJLFFBQVEsQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3BDLE9BQU8sTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCxPQUFPLEVBQUUsQ0FBQztBQUNaLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1N0cmluZyB9IGZyb20gJ0BvZHgvYW5ndWxhci91dGlscyc7XG5cbi8qKlxuICogUmVzb2x2ZXMgdGhlIHVzZXJuYW1lIGZyb20gdGhlIHByb3ZpZGVkIGlkZW50aXR5IGNsYWltcy5cbiAqXG4gKiBUaGUgZnVuY3Rpb24gYXR0ZW1wdHMgdG8gY29uc3RydWN0IGEgdXNlcm5hbWUgZnJvbSB0aGUgY2xhaW1zIGluIHRoZSBmb2xsb3dpbmcgb3JkZXI6XG4gKiAxLiBJZiBib3RoICdmaXJzdG5hbWUnIGFuZCAnbGFzdG5hbWUnIGFyZSBzdHJpbmdzLCBpdCByZXR1cm5zIHRoZW0gY29uY2F0ZW5hdGVkIHdpdGggYSBzcGFjZS5cbiAqIDIuIElmIGJvdGggJ2dpdmVuX25hbWUnIGFuZCAnZmFtaWx5X25hbWUnIGFyZSBzdHJpbmdzLCBpdCByZXR1cm5zIHRoZW0gY29uY2F0ZW5hdGVkIHdpdGggYSBzcGFjZS5cbiAqIDMuIElmICduYW1lJyBpcyBhIHN0cmluZywgaXQgcmV0dXJucyB0aGUgJ25hbWUnLlxuICogNC4gSWYgJ2Rpc3BsYXluYW1lJyBpcyBhIHN0cmluZywgaXQgcmV0dXJucyB0aGUgJ2Rpc3BsYXluYW1lJy5cbiAqIDUuIElmIG5vbmUgb2YgdGhlIGFib3ZlIGNvbmRpdGlvbnMgYXJlIG1ldCwgaXQgcmV0dXJucyBhbiBlbXB0eSBzdHJpbmcuXG4gKlxuICogQHBhcmFtIHtPZHhBdXRoLlJhd0lkZW50aXR5Q2xhaW1zfSBjbGFpbXMgLSBUaGUgcmF3IGlkZW50aXR5IGNsYWltcyBmcm9tIHdoaWNoIHRvIHJlc29sdmUgdGhlIHVzZXJuYW1lLlxuICogQHJldHVybnMge3N0cmluZ30gLSBUaGUgcmVzb2x2ZWQgdXNlcm5hbWUgYXMgYSBzdHJpbmcuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzXG4gKiByZXNvbHZlVXNlcm5hbWUoeyBmaXJzdG5hbWU6ICdKb2huJywgbGFzdG5hbWU6ICdEb2UnIH0pIC8vIHJldHVybnMgJ0pvaG4gRG9lJztcbiAqIHJlc29sdmVVc2VybmFtZSh7IGdpdmVuX25hbWU6ICdKb2huJywgZmFtaWx5X25hbWU6ICdEb2UnIH0pIC8vIHJldHVybnMgJ0pvaG4gRG9lJztcbiAqIHJlc29sdmVVc2VybmFtZSh7IG5hbWU6ICdKb2huIERvZScgfSkgLy8gcmV0dXJucyAnSm9obiBEb2UnO1xuICogcmVzb2x2ZVVzZXJuYW1lKHsgZGlzcGxheW5hbWU6ICdKb2huIERvZScgfSkgLy8gcmV0dXJucyAnSm9obiBEb2UnO1xuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlVXNlcm5hbWUoY2xhaW1zOiBPZHhBdXRoLlJhd0lkZW50aXR5Q2xhaW1zKTogc3RyaW5nIHtcbiAgaWYgKGlzU3RyaW5nKGNsYWltc1snZmlyc3RuYW1lJ10pICYmIGlzU3RyaW5nKGNsYWltc1snbGFzdG5hbWUnXSkpIHtcbiAgICByZXR1cm4gYCR7Y2xhaW1zWydmaXJzdG5hbWUnXX0gJHtjbGFpbXNbJ2xhc3RuYW1lJ119YDtcbiAgfVxuICBpZiAoaXNTdHJpbmcoY2xhaW1zWydnaXZlbl9uYW1lJ10pICYmIGlzU3RyaW5nKGNsYWltc1snZmFtaWx5X25hbWUnXSkpIHtcbiAgICByZXR1cm4gYCR7Y2xhaW1zWydnaXZlbl9uYW1lJ119ICR7Y2xhaW1zWydmYW1pbHlfbmFtZSddfWA7XG4gIH1cbiAgaWYgKGlzU3RyaW5nKGNsYWltc1snbmFtZSddKSkge1xuICAgIHJldHVybiBjbGFpbXNbJ25hbWUnXTtcbiAgfVxuICBpZiAoaXNTdHJpbmcoY2xhaW1zWydkaXNwbGF5bmFtZSddKSkge1xuICAgIHJldHVybiBjbGFpbXNbJ2Rpc3BsYXluYW1lJ107XG4gIH1cblxuICByZXR1cm4gJyc7XG59XG4iXX0=
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { HttpRequest } from '@angular/common/http';
|
|
2
|
-
import { AUTH_HTTP_HEADER } from '../auth.config';
|
|
3
|
-
/**
|
|
4
|
-
* Sets the HTTP Authorization header for a given request.
|
|
5
|
-
*
|
|
6
|
-
* @template R - The type of the request, which extends HttpRequest<T> or Request.
|
|
7
|
-
* @template T - The type of the request body.
|
|
8
|
-
* @param {R} req - The HTTP request to which the Authorization header will be added.
|
|
9
|
-
* @param {string | null} [token] - The token to be used in the Authorization header. If no token is provided, the request is returned unchanged.
|
|
10
|
-
* @returns {R} - The modified HTTP request with the Authorization header set, or the original request if no token is provided.
|
|
11
|
-
*/
|
|
12
|
-
export function setHttpAuthHeader(req, token) {
|
|
13
|
-
if (!token)
|
|
14
|
-
return req;
|
|
15
|
-
const header = `Bearer ${token}`;
|
|
16
|
-
if (req instanceof HttpRequest) {
|
|
17
|
-
return req.clone({ headers: req.headers.set(AUTH_HTTP_HEADER, header) });
|
|
18
|
-
}
|
|
19
|
-
req.headers.set(AUTH_HTTP_HEADER, header);
|
|
20
|
-
return req;
|
|
21
|
-
}
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0LWh0dHAtYXV0aC1oZWFkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2F1dGgvc3JjL2xpYi9oZWxwZXJzL3NldC1odHRwLWF1dGgtaGVhZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVsRDs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sVUFBVSxpQkFBaUIsQ0FBd0MsR0FBTSxFQUFFLEtBQXFCO0lBQ3BHLElBQUksQ0FBQyxLQUFLO1FBQUUsT0FBTyxHQUFHLENBQUM7SUFDdkIsTUFBTSxNQUFNLEdBQUcsVUFBVSxLQUFLLEVBQUUsQ0FBQztJQUNqQyxJQUFJLEdBQUcsWUFBWSxXQUFXLEVBQUUsQ0FBQztRQUMvQixPQUFPLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBTSxDQUFDO0lBQ2hGLENBQUM7SUFDRCxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUUxQyxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwUmVxdWVzdCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEFVVEhfSFRUUF9IRUFERVIgfSBmcm9tICcuLi9hdXRoLmNvbmZpZyc7XG5cbi8qKlxuICogU2V0cyB0aGUgSFRUUCBBdXRob3JpemF0aW9uIGhlYWRlciBmb3IgYSBnaXZlbiByZXF1ZXN0LlxuICpcbiAqIEB0ZW1wbGF0ZSBSIC0gVGhlIHR5cGUgb2YgdGhlIHJlcXVlc3QsIHdoaWNoIGV4dGVuZHMgSHR0cFJlcXVlc3Q8VD4gb3IgUmVxdWVzdC5cbiAqIEB0ZW1wbGF0ZSBUIC0gVGhlIHR5cGUgb2YgdGhlIHJlcXVlc3QgYm9keS5cbiAqIEBwYXJhbSB7Un0gcmVxIC0gVGhlIEhUVFAgcmVxdWVzdCB0byB3aGljaCB0aGUgQXV0aG9yaXphdGlvbiBoZWFkZXIgd2lsbCBiZSBhZGRlZC5cbiAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbH0gW3Rva2VuXSAtIFRoZSB0b2tlbiB0byBiZSB1c2VkIGluIHRoZSBBdXRob3JpemF0aW9uIGhlYWRlci4gSWYgbm8gdG9rZW4gaXMgcHJvdmlkZWQsIHRoZSByZXF1ZXN0IGlzIHJldHVybmVkIHVuY2hhbmdlZC5cbiAqIEByZXR1cm5zIHtSfSAtIFRoZSBtb2RpZmllZCBIVFRQIHJlcXVlc3Qgd2l0aCB0aGUgQXV0aG9yaXphdGlvbiBoZWFkZXIgc2V0LCBvciB0aGUgb3JpZ2luYWwgcmVxdWVzdCBpZiBubyB0b2tlbiBpcyBwcm92aWRlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNldEh0dHBBdXRoSGVhZGVyPFIgZXh0ZW5kcyBIdHRwUmVxdWVzdDxUPiB8IFJlcXVlc3QsIFQ+KHJlcTogUiwgdG9rZW4/OiBzdHJpbmcgfCBudWxsKTogUiB7XG4gIGlmICghdG9rZW4pIHJldHVybiByZXE7XG4gIGNvbnN0IGhlYWRlciA9IGBCZWFyZXIgJHt0b2tlbn1gO1xuICBpZiAocmVxIGluc3RhbmNlb2YgSHR0cFJlcXVlc3QpIHtcbiAgICByZXR1cm4gcmVxLmNsb25lKHsgaGVhZGVyczogcmVxLmhlYWRlcnMuc2V0KEFVVEhfSFRUUF9IRUFERVIsIGhlYWRlcikgfSkgYXMgUjtcbiAgfVxuICByZXEuaGVhZGVycy5zZXQoQVVUSF9IVFRQX0hFQURFUiwgaGVhZGVyKTtcblxuICByZXR1cm4gcmVxO1xufVxuIl19
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { inject } from '@angular/core';
|
|
2
|
-
import { isNonEmptyString } from '@odx/angular/utils';
|
|
3
|
-
import { map } from 'rxjs';
|
|
4
|
-
import { AuthService } from '../auth.service';
|
|
5
|
-
/**
|
|
6
|
-
* A function that creates a language loader function for user authentication.
|
|
7
|
-
*
|
|
8
|
-
* @param {LanguageSelector} languageSelector - A function that takes optional identity claims and returns a language string, null, or undefined.
|
|
9
|
-
* Defaults to a function that returns the preferred language from the claims.
|
|
10
|
-
* @returns {LanguageLoaderFn} - A function that retrieves the user's preferred language from the identity claims.
|
|
11
|
-
*/
|
|
12
|
-
export function userLanguageLoader(languageSelector = (claims) => claims?.preferredLanguage) {
|
|
13
|
-
return () => {
|
|
14
|
-
return inject(AuthService).identityClaims$.pipe(map(languageSelector), map((value) => (isNonEmptyString(value) ? value : undefined)));
|
|
15
|
-
};
|
|
16
|
-
}
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1sYW5ndWFnZS1sb2FkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2F1dGgvc3JjL2xpYi9oZWxwZXJzL3VzZXItbGFuZ3VhZ2UtbG9hZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdEQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzQixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFJOUM7Ozs7OztHQU1HO0FBQ0gsTUFBTSxVQUFVLGtCQUFrQixDQUFDLG1CQUFxQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxFQUFFLGlCQUFpQjtJQUMzRyxPQUFPLEdBQUcsRUFBRTtRQUNWLE9BQU8sTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQzdDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUNyQixHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FDOUQsQ0FBQztJQUNKLENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExhbmd1YWdlTG9hZGVyRm4gfSBmcm9tICdAb2R4L2FuZ3VsYXIvbG9jYWxpemF0aW9uJztcbmltcG9ydCB7IGlzTm9uRW1wdHlTdHJpbmcgfSBmcm9tICdAb2R4L2FuZ3VsYXIvdXRpbHMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uL2F1dGguc2VydmljZSc7XG5cbnR5cGUgTGFuZ3VhZ2VTZWxlY3RvciA9IChjbGFpbXM/OiBPZHhBdXRoLklkZW50aXR5Q2xhaW1zIHwgbnVsbCkgPT4gc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZDtcblxuLyoqXG4gKiBBIGZ1bmN0aW9uIHRoYXQgY3JlYXRlcyBhIGxhbmd1YWdlIGxvYWRlciBmdW5jdGlvbiBmb3IgdXNlciBhdXRoZW50aWNhdGlvbi5cbiAqXG4gKiBAcGFyYW0ge0xhbmd1YWdlU2VsZWN0b3J9IGxhbmd1YWdlU2VsZWN0b3IgLSBBIGZ1bmN0aW9uIHRoYXQgdGFrZXMgb3B0aW9uYWwgaWRlbnRpdHkgY2xhaW1zIGFuZCByZXR1cm5zIGEgbGFuZ3VhZ2Ugc3RyaW5nLCBudWxsLCBvciB1bmRlZmluZWQuXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgIERlZmF1bHRzIHRvIGEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIHRoZSBwcmVmZXJyZWQgbGFuZ3VhZ2UgZnJvbSB0aGUgY2xhaW1zLlxuICogQHJldHVybnMge0xhbmd1YWdlTG9hZGVyRm59IC0gQSBmdW5jdGlvbiB0aGF0IHJldHJpZXZlcyB0aGUgdXNlcidzIHByZWZlcnJlZCBsYW5ndWFnZSBmcm9tIHRoZSBpZGVudGl0eSBjbGFpbXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VyTGFuZ3VhZ2VMb2FkZXIobGFuZ3VhZ2VTZWxlY3RvcjogTGFuZ3VhZ2VTZWxlY3RvciA9IChjbGFpbXMpID0+IGNsYWltcz8ucHJlZmVycmVkTGFuZ3VhZ2UpOiBMYW5ndWFnZUxvYWRlckZuIHtcbiAgcmV0dXJuICgpID0+IHtcbiAgICByZXR1cm4gaW5qZWN0KEF1dGhTZXJ2aWNlKS5pZGVudGl0eUNsYWltcyQucGlwZShcbiAgICAgIG1hcChsYW5ndWFnZVNlbGVjdG9yKSxcbiAgICAgIG1hcCgodmFsdWUpID0+IChpc05vbkVtcHR5U3RyaW5nKHZhbHVlKSA/IHZhbHVlIDogdW5kZWZpbmVkKSksXG4gICAgKTtcbiAgfTtcbn1cbiJdfQ==
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import { Environment } from '@odx/angular';
|
|
2
|
-
export const AuthEnvironment = Environment;
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1lbnZpcm9ubWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXV0aC9zcmMvbGliL21vZGVscy9hdXRoLWVudmlyb25tZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFHM0MsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLFdBQVcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVudmlyb25tZW50IH0gZnJvbSAnQG9keC9hbmd1bGFyJztcblxuZXhwb3J0IHR5cGUgQXV0aEVudmlyb25tZW50ID0gKHR5cGVvZiBBdXRoRW52aXJvbm1lbnQpW2tleW9mIHR5cGVvZiBBdXRoRW52aXJvbm1lbnRdO1xuZXhwb3J0IGNvbnN0IEF1dGhFbnZpcm9ubWVudCA9IEVudmlyb25tZW50O1xuIl19
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import { inject, Injectable } from '@angular/core';
|
|
2
|
-
import { isNumber } from '@odx/angular/utils';
|
|
3
|
-
import { deepmerge } from 'deepmerge-ts';
|
|
4
|
-
import { BehaviorSubject, catchError, combineLatest, distinctUntilChanged, filter, map, of, share, switchMap, take, tap, timeout } from 'rxjs';
|
|
5
|
-
import { injectAuthConfig } from '../auth.config';
|
|
6
|
-
import { ODX_AUTH_PLUGINS, ODX_AUTH_PLUGINS_ERROR_HANDLER } from '../auth.providers';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
export class AuthPluginManager {
|
|
9
|
-
constructor() {
|
|
10
|
-
this.authConfig = injectAuthConfig();
|
|
11
|
-
this.pluginsErrorHandler = inject(ODX_AUTH_PLUGINS_ERROR_HANDLER, { optional: true });
|
|
12
|
-
this.plugins = inject(ODX_AUTH_PLUGINS);
|
|
13
|
-
this.result$$ = new BehaviorSubject(null);
|
|
14
|
-
this.pluginsReady$ = this.result$$.pipe(filter(Boolean), map(Boolean), distinctUntilChanged(), share());
|
|
15
|
-
this.pluginsLoading$ = this.result$$.pipe(map((result) => !result), distinctUntilChanged(), share());
|
|
16
|
-
}
|
|
17
|
-
runPlugins(authService) {
|
|
18
|
-
if (this.plugins.length < 1) {
|
|
19
|
-
return of({});
|
|
20
|
-
}
|
|
21
|
-
return authService.waitForAccessToken$(false).pipe(switchMap((token) => {
|
|
22
|
-
if (!token)
|
|
23
|
-
return of([{}]);
|
|
24
|
-
return combineLatest(this.plugins.map((plugin) => this.runPlugin(authService, plugin)));
|
|
25
|
-
}), map((results) => deepmerge(...results)), tap((result) => this.result$$.next(result)), take(1));
|
|
26
|
-
}
|
|
27
|
-
getResult() {
|
|
28
|
-
return this.result$$.getValue() ?? {};
|
|
29
|
-
}
|
|
30
|
-
handlePluginError(error) {
|
|
31
|
-
try {
|
|
32
|
-
this.pluginsErrorHandler?.(error);
|
|
33
|
-
}
|
|
34
|
-
catch {
|
|
35
|
-
//
|
|
36
|
-
}
|
|
37
|
-
return of({});
|
|
38
|
-
}
|
|
39
|
-
runPlugin(authService, plugin) {
|
|
40
|
-
return plugin(authService).pipe(isNumber(this.authConfig.pluginTimeout) ? timeout(Math.max(0, this.authConfig.pluginTimeout)) : tap(), catchError((error) => this.handlePluginError(error)));
|
|
41
|
-
}
|
|
42
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuthPluginManager, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
43
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuthPluginManager, providedIn: 'root' }); }
|
|
44
|
-
}
|
|
45
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuthPluginManager, decorators: [{
|
|
46
|
-
type: Injectable,
|
|
47
|
-
args: [{ providedIn: 'root' }]
|
|
48
|
-
}] });
|
|
49
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1wbHVnaW4tbWFuYWdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXV0aC9zcmMvbGliL21vZGVscy9hdXRoLXBsdWdpbi1tYW5hZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFjLEVBQUUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNKLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSw4QkFBOEIsRUFBRSxNQUFNLG1CQUFtQixDQUFDOztBQVNyRixNQUFNLE9BQU8saUJBQWlCO0lBRDlCO1FBRW1CLGVBQVUsR0FBRyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ2hDLHdCQUFtQixHQUFHLE1BQU0sQ0FBQyw4QkFBOEIsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ2pGLFlBQU8sR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUNuQyxhQUFRLEdBQUcsSUFBSSxlQUFlLENBQWtDLElBQUksQ0FBQyxDQUFDO1FBRXZFLGtCQUFhLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxvQkFBb0IsRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDbkcsb0JBQWUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FDbEQsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUN4QixvQkFBb0IsRUFBRSxFQUN0QixLQUFLLEVBQUUsQ0FDUixDQUFDO0tBcUNIO0lBbkNRLFVBQVUsQ0FBQyxXQUF3QjtRQUN4QyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzVCLE9BQU8sRUFBRSxDQUFDLEVBQThCLENBQUMsQ0FBQztRQUM1QyxDQUFDO1FBQ0QsT0FBTyxXQUFXLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUNoRCxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNsQixJQUFJLENBQUMsS0FBSztnQkFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDNUIsT0FBTyxhQUFhLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMxRixDQUFDLENBQUMsRUFDRixHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxHQUFHLE9BQU8sQ0FBNkIsQ0FBQyxFQUNuRSxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQzNDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FDUixDQUFDO0lBQ0osQ0FBQztJQUVNLFNBQVM7UUFDZCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLElBQUssRUFBK0IsQ0FBQztJQUN0RSxDQUFDO0lBRU8saUJBQWlCLENBQUMsS0FBZTtRQUN2QyxJQUFJLENBQUM7WUFDSCxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNwQyxDQUFDO1FBQUMsTUFBTSxDQUFDO1lBQ1AsRUFBRTtRQUNKLENBQUM7UUFFRCxPQUFPLEVBQUUsQ0FBQyxFQUE4QixDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVPLFNBQVMsQ0FBQyxXQUF3QixFQUFFLE1BQWtCO1FBQzVELE9BQU8sTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FDN0IsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUNyRyxVQUFVLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUNyRCxDQUFDO0lBQ0osQ0FBQzsrR0EvQ1UsaUJBQWlCO21IQUFqQixpQkFBaUIsY0FESixNQUFNOzs0RkFDbkIsaUJBQWlCO2tCQUQ3QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaXNOdW1iZXIgfSBmcm9tICdAb2R4L2FuZ3VsYXIvdXRpbHMnO1xuaW1wb3J0IHsgZGVlcG1lcmdlIH0gZnJvbSAnZGVlcG1lcmdlLXRzJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY2F0Y2hFcnJvciwgY29tYmluZUxhdGVzdCwgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlciwgbWFwLCBPYnNlcnZhYmxlLCBvZiwgc2hhcmUsIHN3aXRjaE1hcCwgdGFrZSwgdGFwLCB0aW1lb3V0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBpbmplY3RBdXRoQ29uZmlnIH0gZnJvbSAnLi4vYXV0aC5jb25maWcnO1xuaW1wb3J0IHsgT0RYX0FVVEhfUExVR0lOUywgT0RYX0FVVEhfUExVR0lOU19FUlJPUl9IQU5ETEVSIH0gZnJvbSAnLi4vYXV0aC5wcm92aWRlcnMnO1xuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi9hdXRoLnNlcnZpY2UnO1xuXG5leHBvcnQgdHlwZSBBdXRoUGx1Z2luID0gKGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSkgPT4gT2JzZXJ2YWJsZTxQYXJ0aWFsPE9keEF1dGguQXV0aFBsdWdpblJlc3VsdD4+O1xuZXhwb3J0IHR5cGUgQXV0aFBsdWdpbkZhY3RvcnkgPSAoKSA9PiBBdXRoUGx1Z2luO1xuZXhwb3J0IHR5cGUgQXV0aFBsdWdpbkVycm9yID0gdW5rbm93bjtcbmV4cG9ydCB0eXBlIEF1dGhQbHVnaW5FcnJvckhhbmRsZXIgPSAoZXJyb3I6IEF1dGhQbHVnaW5FcnJvcikgPT4gdm9pZDtcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBBdXRoUGx1Z2luTWFuYWdlciB7XG4gIHByaXZhdGUgcmVhZG9ubHkgYXV0aENvbmZpZyA9IGluamVjdEF1dGhDb25maWcoKTtcbiAgcHJpdmF0ZSByZWFkb25seSBwbHVnaW5zRXJyb3JIYW5kbGVyID0gaW5qZWN0KE9EWF9BVVRIX1BMVUdJTlNfRVJST1JfSEFORExFUiwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcbiAgcHJpdmF0ZSByZWFkb25seSBwbHVnaW5zID0gaW5qZWN0KE9EWF9BVVRIX1BMVUdJTlMpO1xuICBwcml2YXRlIHJlYWRvbmx5IHJlc3VsdCQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxPZHhBdXRoLkF1dGhQbHVnaW5SZXN1bHQgfCBudWxsPihudWxsKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgcGx1Z2luc1JlYWR5JCA9IHRoaXMucmVzdWx0JCQucGlwZShmaWx0ZXIoQm9vbGVhbiksIG1hcChCb29sZWFuKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSwgc2hhcmUoKSk7XG4gIHB1YmxpYyByZWFkb25seSBwbHVnaW5zTG9hZGluZyQgPSB0aGlzLnJlc3VsdCQkLnBpcGUoXG4gICAgbWFwKChyZXN1bHQpID0+ICFyZXN1bHQpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmUoKSxcbiAgKTtcblxuICBwdWJsaWMgcnVuUGx1Z2lucyhhdXRoU2VydmljZTogQXV0aFNlcnZpY2UpOiBPYnNlcnZhYmxlPE9keEF1dGguQXV0aFBsdWdpblJlc3VsdD4ge1xuICAgIGlmICh0aGlzLnBsdWdpbnMubGVuZ3RoIDwgMSkge1xuICAgICAgcmV0dXJuIG9mKHt9IGFzIE9keEF1dGguQXV0aFBsdWdpblJlc3VsdCk7XG4gICAgfVxuICAgIHJldHVybiBhdXRoU2VydmljZS53YWl0Rm9yQWNjZXNzVG9rZW4kKGZhbHNlKS5waXBlKFxuICAgICAgc3dpdGNoTWFwKCh0b2tlbikgPT4ge1xuICAgICAgICBpZiAoIXRva2VuKSByZXR1cm4gb2YoW3t9XSk7XG4gICAgICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KHRoaXMucGx1Z2lucy5tYXAoKHBsdWdpbikgPT4gdGhpcy5ydW5QbHVnaW4oYXV0aFNlcnZpY2UsIHBsdWdpbikpKTtcbiAgICAgIH0pLFxuICAgICAgbWFwKChyZXN1bHRzKSA9PiBkZWVwbWVyZ2UoLi4ucmVzdWx0cykgYXMgT2R4QXV0aC5BdXRoUGx1Z2luUmVzdWx0KSxcbiAgICAgIHRhcCgocmVzdWx0KSA9PiB0aGlzLnJlc3VsdCQkLm5leHQocmVzdWx0KSksXG4gICAgICB0YWtlKDEpLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZ2V0UmVzdWx0KCk6IE9keEF1dGguQXV0aFBsdWdpblJlc3VsdCB7XG4gICAgcmV0dXJuIHRoaXMucmVzdWx0JCQuZ2V0VmFsdWUoKSA/PyAoe30gYXMgT2R4QXV0aC5BdXRoUGx1Z2luUmVzdWx0KTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlUGx1Z2luRXJyb3IoZXJyb3I/OiB1bmtub3duKTogT2JzZXJ2YWJsZTxPZHhBdXRoLkF1dGhQbHVnaW5SZXN1bHQ+IHtcbiAgICB0cnkge1xuICAgICAgdGhpcy5wbHVnaW5zRXJyb3JIYW5kbGVyPy4oZXJyb3IpO1xuICAgIH0gY2F0Y2gge1xuICAgICAgLy9cbiAgICB9XG5cbiAgICByZXR1cm4gb2Yoe30gYXMgT2R4QXV0aC5BdXRoUGx1Z2luUmVzdWx0KTtcbiAgfVxuXG4gIHByaXZhdGUgcnVuUGx1Z2luKGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSwgcGx1Z2luOiBBdXRoUGx1Z2luKTogUmV0dXJuVHlwZTxBdXRoUGx1Z2luPiB7XG4gICAgcmV0dXJuIHBsdWdpbihhdXRoU2VydmljZSkucGlwZShcbiAgICAgIGlzTnVtYmVyKHRoaXMuYXV0aENvbmZpZy5wbHVnaW5UaW1lb3V0KSA/IHRpbWVvdXQoTWF0aC5tYXgoMCwgdGhpcy5hdXRoQ29uZmlnLnBsdWdpblRpbWVvdXQpKSA6IHRhcCgpLFxuICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHRoaXMuaGFuZGxlUGx1Z2luRXJyb3IoZXJyb3IpKSxcbiAgICApO1xuICB9XG59XG4iXX0=
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aG9yaXplZC1oYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hdXRoL3NyYy9saWIvbW9kZWxzL2F1dGhvcml6ZWQtaGFuZGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vYXV0aC5zZXJ2aWNlJztcblxuZXhwb3J0IHR5cGUgQXV0aG9yaXplZEhhbmRsZXIgPSAoaWRlbnRpdHlDbGFpbXM6IE9keEF1dGguSWRlbnRpdHlDbGFpbXMgfCBudWxsLCBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UsIHJvdXRlcj86IFJvdXRlciB8IG51bGwpID0+IGJvb2xlYW47XG4iXX0=
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
export * from './auth-environment';
|
|
2
|
-
export * from './auth-plugin-manager';
|
|
3
|
-
export * from './authorized-handler';
|
|
4
|
-
export * from './offline-auth-error-handler';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2F1dGgvc3JjL2xpYi9tb2RlbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyw4QkFBOEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYXV0aC1lbnZpcm9ubWVudCc7XG5leHBvcnQgKiBmcm9tICcuL2F1dGgtcGx1Z2luLW1hbmFnZXInO1xuZXhwb3J0ICogZnJvbSAnLi9hdXRob3JpemVkLWhhbmRsZXInO1xuZXhwb3J0ICogZnJvbSAnLi9vZmZsaW5lLWF1dGgtZXJyb3ItaGFuZGxlcic7XG4iXX0=
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
export const offlineAuthErrorHandler = (error) => {
|
|
2
|
-
if (error.type === 'discovery_document_load_error' && error.reason?.status === 504) {
|
|
3
|
-
return;
|
|
4
|
-
}
|
|
5
|
-
throw error;
|
|
6
|
-
};
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2ZmbGluZS1hdXRoLWVycm9yLWhhbmRsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2F1dGgvc3JjL2xpYi9tb2RlbHMvb2ZmbGluZS1hdXRoLWVycm9yLWhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQXVCLENBQUMsS0FBSyxFQUFFLEVBQUU7SUFDbkUsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLCtCQUErQixJQUFLLEtBQUssQ0FBQyxNQUE0QixFQUFFLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUMxRyxPQUFPO0lBQ1QsQ0FBQztJQUNELE1BQU0sS0FBSyxDQUFDO0FBQ2QsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBBdXRoRXJyb3JIYW5kbGVyRm4gfSBmcm9tICcuLi9hdXRoLmNvbmZpZyc7XG5cbmV4cG9ydCBjb25zdCBvZmZsaW5lQXV0aEVycm9ySGFuZGxlcjogQXV0aEVycm9ySGFuZGxlckZuID0gKGVycm9yKSA9PiB7XG4gIGlmIChlcnJvci50eXBlID09PSAnZGlzY292ZXJ5X2RvY3VtZW50X2xvYWRfZXJyb3InICYmIChlcnJvci5yZWFzb24gYXMgSHR0cEVycm9yUmVzcG9uc2UpPy5zdGF0dXMgPT09IDUwNCkge1xuICAgIHJldHVybjtcbiAgfVxuICB0aHJvdyBlcnJvcjtcbn07XG4iXX0=
|