@odx/auth 1.0.0-alpha.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.
Files changed (39) hide show
  1. package/README.md +38 -0
  2. package/esm2020/index.mjs +10 -0
  3. package/esm2020/lib/auth.component.mjs +50 -0
  4. package/esm2020/lib/auth.config.mjs +8 -0
  5. package/esm2020/lib/auth.interceptor.mjs +25 -0
  6. package/esm2020/lib/auth.module.mjs +28 -0
  7. package/esm2020/lib/auth.providers.mjs +50 -0
  8. package/esm2020/lib/auth.service.mjs +37 -0
  9. package/esm2020/lib/directives/index.mjs +3 -0
  10. package/esm2020/lib/directives/sign-in.directive.mjs +38 -0
  11. package/esm2020/lib/directives/sign-out.directive.mjs +38 -0
  12. package/esm2020/lib/helpers/get-user-initials.mjs +12 -0
  13. package/esm2020/lib/helpers/index.mjs +3 -0
  14. package/esm2020/lib/helpers/resolve-issuer.mjs +13 -0
  15. package/esm2020/lib/models/auth-environment.mjs +2 -0
  16. package/esm2020/lib/models/index.mjs +3 -0
  17. package/esm2020/lib/models/user.mjs +2 -0
  18. package/esm2020/odx-auth.mjs +5 -0
  19. package/fesm2015/odx-auth.mjs +283 -0
  20. package/fesm2015/odx-auth.mjs.map +1 -0
  21. package/fesm2020/odx-auth.mjs +273 -0
  22. package/fesm2020/odx-auth.mjs.map +1 -0
  23. package/index.d.ts +9 -0
  24. package/lib/auth.component.d.ts +12 -0
  25. package/lib/auth.config.d.ts +12 -0
  26. package/lib/auth.interceptor.d.ts +11 -0
  27. package/lib/auth.module.d.ts +14 -0
  28. package/lib/auth.providers.d.ts +6 -0
  29. package/lib/auth.service.d.ts +19 -0
  30. package/lib/directives/index.d.ts +2 -0
  31. package/lib/directives/sign-in.directive.d.ts +12 -0
  32. package/lib/directives/sign-out.directive.d.ts +12 -0
  33. package/lib/helpers/get-user-initials.d.ts +2 -0
  34. package/lib/helpers/index.d.ts +2 -0
  35. package/lib/helpers/resolve-issuer.d.ts +2 -0
  36. package/lib/models/auth-environment.d.ts +1 -0
  37. package/lib/models/index.d.ts +2 -0
  38. package/lib/models/user.d.ts +4 -0
  39. package/package.json +37 -0
package/README.md ADDED
@@ -0,0 +1,38 @@
1
+ # @odx/auth
2
+
3
+ [<img src="https://img.shields.io/npm/v/@odx/angular" />](https://npmjs.org/package/@odx/auth)
4
+ [<img src="https://img.shields.io/npm/dependency-version/@odx/auth/peer/@odx/angular" />](https://npmjs.org/package/@odx/angular)
5
+
6
+ ### Install 🚀
7
+
8
+ ```sh
9
+ npm install @odx/auth
10
+ ```
11
+
12
+ ### Usage
13
+
14
+ Import the `AuthModule` from `@odx/auth` and add it to the application imports with configuration:
15
+
16
+ ```TS
17
+ @NgModule({
18
+ imports: [
19
+ AuthModule.forRoot({
20
+ environment: 'dev',
21
+ clientId: '<oktaClientId>',
22
+ scopes: ['offline_access'],
23
+ })
24
+ ]
25
+ })
26
+ export class AppModule {
27
+ }
28
+ ```
29
+
30
+ In order to add the UI for signing in and out, add the `odx-auth` component to the `odx-header`:
31
+
32
+ ```HTML
33
+ <odx-header>
34
+ <odx-auth>
35
+ <!-- custom content -->
36
+ </odx-auth>
37
+ </odx-header>
38
+ ```
@@ -0,0 +1,10 @@
1
+ export { OktaAuthGuard as AuthGuard } from '@okta/okta-angular';
2
+ export * from './lib/auth.component';
3
+ export * from './lib/auth.config';
4
+ export * from './lib/auth.interceptor';
5
+ export * from './lib/auth.module';
6
+ export * from './lib/auth.providers';
7
+ export * from './lib/auth.service';
8
+ export * from './lib/directives';
9
+ export * from './lib/helpers';
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL2F1dGgvc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLElBQUksU0FBUyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDaEUsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLGVBQWUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IE9rdGFBdXRoR3VhcmQgYXMgQXV0aEd1YXJkIH0gZnJvbSAnQG9rdGEvb2t0YS1hbmd1bGFyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2F1dGguY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2F1dGguY29uZmlnJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2F1dGguaW50ZXJjZXB0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXV0aC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXV0aC5wcm92aWRlcnMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXV0aC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RpcmVjdGl2ZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaGVscGVycyc7XG4iXX0=
@@ -0,0 +1,50 @@
1
+ import { __decorate, __metadata } from "tslib";
2
+ import { ChangeDetectionStrategy, Component, inject, Input, ViewEncapsulation } from '@angular/core';
3
+ import { CoreModule } from '@odx/angular';
4
+ import { AreaHeaderModule } from '@odx/angular/components/area-header';
5
+ import { DropdownModule } from '@odx/angular/components/dropdown';
6
+ import { HeaderModule } from '@odx/angular/components/header';
7
+ import { LogoDirective } from '@odx/angular/components/logo';
8
+ import { Pure } from '@odx/angular/utils';
9
+ import { injectAuthModuleConfig } from './auth.config';
10
+ import { AuthService } from './auth.service';
11
+ import { SignInDirective, SignOutDirective } from './directives';
12
+ import { getUserInitials } from './helpers';
13
+ import * as i0 from "@angular/core";
14
+ import * as i1 from "@angular/common";
15
+ import * as i2 from "@odx/angular";
16
+ import * as i3 from "@odx/angular/components/area-header";
17
+ import * as i4 from "@odx/angular/components/avatar";
18
+ import * as i5 from "@odx/angular/components/action-group";
19
+ import * as i6 from "@odx/angular/components/button";
20
+ import * as i7 from "@odx/angular/components/icon";
21
+ import * as i8 from "@odx/angular/components/dropdown";
22
+ import * as i9 from "@odx/angular/components/header";
23
+ export class AuthComponent {
24
+ constructor() {
25
+ this.config = injectAuthModuleConfig();
26
+ this.authService = inject(AuthService);
27
+ this.signInButtonText = 'Sign in';
28
+ this.signOutButtonText = 'Sign out';
29
+ }
30
+ getInitials(user) {
31
+ return getUserInitials(user);
32
+ }
33
+ }
34
+ AuthComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: AuthComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
35
+ AuthComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.0", type: AuthComponent, isStandalone: true, selector: "odx-auth", inputs: { signInButtonText: "signInButtonText", signOutButtonText: "signOutButtonText" }, ngImport: i0, template: "<odx-action-group *odxLet=\"authService.user$ | async as user\">\n <ng-template [ngIf]=\"authService.isAuthenticated$ | async\" [ngIfElse]=\"notAuthenticated\">\n <button odxButton odxHeaderAvatar [odxDropdown]=\"userProfileMenu\">\n <odx-avatar>\n {{ getInitials(user) }}\n </odx-avatar>\n </button>\n </ng-template>\n <ng-template #notAuthenticated>\n <button class=\"odx-auth-sign-in\" odxButton odxAuthSignIn variant=\"primary\">\n <odx-icon name=\"user\" alignLeft></odx-icon>\n {{ signInButtonText }}\n </button>\n </ng-template>\n <ng-template #userProfileMenu>\n <odx-area-header class=\"odx-padding-x-12\" size=\"small\">\n <odx-avatar>\n {{ getInitials(user) }}\n </odx-avatar>\n <h2 class=\"odx-title\">{{ user?.name }}</h2>\n <h5 class=\"odx-subtitle\">{{ user?.email_address }}</h5>\n </odx-area-header>\n <ng-content></ng-content>\n <div class=\"odx-margin-top-12\" odxLayout=\"flex vertical-center\">\n <odx-logo odxLayout=\"auto\" class=\"odx-margin-left-12 odx-margin-right-auto\"></odx-logo>\n <button odxButton odxAuthSignOut variant=\"ghost\">\n {{ signOutButtonText }}\n <odx-icon name=\"arrow-right\" alignRight></odx-icon>\n </button>\n </div>\n </ng-template>\n</odx-action-group>\n", dependencies: [{ kind: "ngmodule", type: CoreModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "directive", type: i2.LetDirective, selector: "ng-template[odxLet]", inputs: ["odxLet"] }, { kind: "ngmodule", type: AreaHeaderModule }, { kind: "component", type: i3.AreaHeaderComponent, selector: "odx-area-header", inputs: ["size"] }, { kind: "component", type: i4.AvatarComponent, selector: "odx-avatar", inputs: ["size", "variant"] }, { kind: "component", type: i5.ActionGroupComponent, selector: "odx-action-group", inputs: ["reverse"] }, { kind: "component", type: i6.ButtonComponent, selector: "button[odxButton], a[odxButton]", inputs: ["variant", "size"] }, { kind: "component", type: i7.IconComponent, selector: "odx-icon", inputs: ["inline", "size", "name"] }, { kind: "ngmodule", type: DropdownModule }, { kind: "directive", type: i8.DropdownDirective, selector: "[odxDropdown]", inputs: ["odxDropdown", "odxDropdownDisabled", "odxDropdownShowLoader", "odxDropdownOptions", "odxDropdownReferenceElement", "odxDropdownTriggerElement", "odxDropdownHost", "odxDropdownOpenTrigger", "odxDropdownCloseTrigger"], outputs: ["odxDropdownBeforeOpen", "odxDropdownAfterOpen", "odxDropdownBeforeClose", "odxDropdownAfterClose"], exportAs: ["odxDropdown"] }, { kind: "ngmodule", type: HeaderModule }, { kind: "directive", type: i9.HeaderAvatarDirective, selector: "button[odxButton][odxHeaderAvatar]" }, { kind: "directive", type: LogoDirective, selector: "odx-logo", inputs: ["size", "variant"] }, { kind: "directive", type: SignInDirective, selector: "[odxButton][odxAuthSignIn]", outputs: ["odxAuthSignIn"] }, { kind: "directive", type: SignOutDirective, selector: "[odxButton][odxAuthSignOut]", outputs: ["odxAuthSignOut"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
36
+ __decorate([
37
+ Pure,
38
+ __metadata("design:type", Function),
39
+ __metadata("design:paramtypes", [Object]),
40
+ __metadata("design:returntype", String)
41
+ ], AuthComponent.prototype, "getInitials", null);
42
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: AuthComponent, decorators: [{
43
+ type: Component,
44
+ args: [{ standalone: true, selector: 'odx-auth', imports: [CoreModule, AreaHeaderModule, DropdownModule, HeaderModule, LogoDirective, SignInDirective, SignOutDirective], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<odx-action-group *odxLet=\"authService.user$ | async as user\">\n <ng-template [ngIf]=\"authService.isAuthenticated$ | async\" [ngIfElse]=\"notAuthenticated\">\n <button odxButton odxHeaderAvatar [odxDropdown]=\"userProfileMenu\">\n <odx-avatar>\n {{ getInitials(user) }}\n </odx-avatar>\n </button>\n </ng-template>\n <ng-template #notAuthenticated>\n <button class=\"odx-auth-sign-in\" odxButton odxAuthSignIn variant=\"primary\">\n <odx-icon name=\"user\" alignLeft></odx-icon>\n {{ signInButtonText }}\n </button>\n </ng-template>\n <ng-template #userProfileMenu>\n <odx-area-header class=\"odx-padding-x-12\" size=\"small\">\n <odx-avatar>\n {{ getInitials(user) }}\n </odx-avatar>\n <h2 class=\"odx-title\">{{ user?.name }}</h2>\n <h5 class=\"odx-subtitle\">{{ user?.email_address }}</h5>\n </odx-area-header>\n <ng-content></ng-content>\n <div class=\"odx-margin-top-12\" odxLayout=\"flex vertical-center\">\n <odx-logo odxLayout=\"auto\" class=\"odx-margin-left-12 odx-margin-right-auto\"></odx-logo>\n <button odxButton odxAuthSignOut variant=\"ghost\">\n {{ signOutButtonText }}\n <odx-icon name=\"arrow-right\" alignRight></odx-icon>\n </button>\n </div>\n </ng-template>\n</odx-action-group>\n" }]
45
+ }], propDecorators: { signInButtonText: [{
46
+ type: Input
47
+ }], signOutButtonText: [{
48
+ type: Input
49
+ }], getInitials: [] } });
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2F1dGgvc3JjL2xpYi9hdXRoLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2xpYnMvYXV0aC9zcmMvbGliL2F1dGguY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzFDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDOUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzdELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMxQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDakUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7Ozs7Ozs7Ozs7QUFXNUMsTUFBTSxPQUFPLGFBQWE7SUFSMUI7UUFTcUIsV0FBTSxHQUFHLHNCQUFzQixFQUFFLENBQUM7UUFDbEMsZ0JBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFHOUMscUJBQWdCLEdBQUcsU0FBUyxDQUFDO1FBRzdCLHNCQUFpQixHQUFHLFVBQVUsQ0FBQztLQU12QztJQUhRLFdBQVcsQ0FBQyxJQUFrQjtRQUNuQyxPQUFPLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMvQixDQUFDOzswR0FiVSxhQUFhOzhGQUFiLGFBQWEsOEpDckIxQiw0eUNBZ0NBLDJDRGhCWSxVQUFVLDBSQUFFLGdCQUFnQixxakJBQUUsY0FBYyx5ZEFBRSxZQUFZLHNJQUFFLGFBQWEsa0ZBQUUsZUFBZSxtR0FBRSxnQkFBZ0I7QUFldEg7SUFBQyxJQUFJOzs7O2dEQUdKOzJGQWJVLGFBQWE7a0JBUnpCLFNBQVM7aUNBQ0ksSUFBSSxZQUNOLFVBQVUsV0FDWCxDQUFDLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLENBQUMsbUJBRXRHLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUk7OEJBTzlCLGdCQUFnQjtzQkFEdEIsS0FBSztnQkFJQyxpQkFBaUI7c0JBRHZCLEtBQUs7Z0JBSUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGluamVjdCwgSW5wdXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb3JlTW9kdWxlIH0gZnJvbSAnQG9keC9hbmd1bGFyJztcbmltcG9ydCB7IEFyZWFIZWFkZXJNb2R1bGUgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY29tcG9uZW50cy9hcmVhLWhlYWRlcic7XG5pbXBvcnQgeyBEcm9wZG93bk1vZHVsZSB9IGZyb20gJ0BvZHgvYW5ndWxhci9jb21wb25lbnRzL2Ryb3Bkb3duJztcbmltcG9ydCB7IEhlYWRlck1vZHVsZSB9IGZyb20gJ0BvZHgvYW5ndWxhci9jb21wb25lbnRzL2hlYWRlcic7XG5pbXBvcnQgeyBMb2dvRGlyZWN0aXZlIH0gZnJvbSAnQG9keC9hbmd1bGFyL2NvbXBvbmVudHMvbG9nbyc7XG5pbXBvcnQgeyBQdXJlIH0gZnJvbSAnQG9keC9hbmd1bGFyL3V0aWxzJztcbmltcG9ydCB7IGluamVjdEF1dGhNb2R1bGVDb25maWcgfSBmcm9tICcuL2F1dGguY29uZmlnJztcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi9hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2lnbkluRGlyZWN0aXZlLCBTaWduT3V0RGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzJztcbmltcG9ydCB7IGdldFVzZXJJbml0aWFscyB9IGZyb20gJy4vaGVscGVycyc7XG5pbXBvcnQgeyBVc2VyIH0gZnJvbSAnLi9tb2RlbHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICdvZHgtYXV0aCcsXG4gIGltcG9ydHM6IFtDb3JlTW9kdWxlLCBBcmVhSGVhZGVyTW9kdWxlLCBEcm9wZG93bk1vZHVsZSwgSGVhZGVyTW9kdWxlLCBMb2dvRGlyZWN0aXZlLCBTaWduSW5EaXJlY3RpdmUsIFNpZ25PdXREaXJlY3RpdmVdLFxuICB0ZW1wbGF0ZVVybDogJy4vYXV0aC5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBBdXRoQ29tcG9uZW50IHtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGNvbmZpZyA9IGluamVjdEF1dGhNb2R1bGVDb25maWcoKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGF1dGhTZXJ2aWNlID0gaW5qZWN0KEF1dGhTZXJ2aWNlKTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2lnbkluQnV0dG9uVGV4dCA9ICdTaWduIGluJztcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2lnbk91dEJ1dHRvblRleHQgPSAnU2lnbiBvdXQnO1xuXG4gIEBQdXJlXG4gIHB1YmxpYyBnZXRJbml0aWFscyh1c2VyPzogVXNlciB8IG51bGwpOiBzdHJpbmcge1xuICAgIHJldHVybiBnZXRVc2VySW5pdGlhbHModXNlcik7XG4gIH1cbn1cbiIsIjxvZHgtYWN0aW9uLWdyb3VwICpvZHhMZXQ9XCJhdXRoU2VydmljZS51c2VyJCB8IGFzeW5jIGFzIHVzZXJcIj5cbiAgPG5nLXRlbXBsYXRlIFtuZ0lmXT1cImF1dGhTZXJ2aWNlLmlzQXV0aGVudGljYXRlZCQgfCBhc3luY1wiIFtuZ0lmRWxzZV09XCJub3RBdXRoZW50aWNhdGVkXCI+XG4gICAgPGJ1dHRvbiBvZHhCdXR0b24gb2R4SGVhZGVyQXZhdGFyIFtvZHhEcm9wZG93bl09XCJ1c2VyUHJvZmlsZU1lbnVcIj5cbiAgICAgIDxvZHgtYXZhdGFyPlxuICAgICAgICB7eyBnZXRJbml0aWFscyh1c2VyKSB9fVxuICAgICAgPC9vZHgtYXZhdGFyPlxuICAgIDwvYnV0dG9uPlxuICA8L25nLXRlbXBsYXRlPlxuICA8bmctdGVtcGxhdGUgI25vdEF1dGhlbnRpY2F0ZWQ+XG4gICAgPGJ1dHRvbiBjbGFzcz1cIm9keC1hdXRoLXNpZ24taW5cIiBvZHhCdXR0b24gb2R4QXV0aFNpZ25JbiB2YXJpYW50PVwicHJpbWFyeVwiPlxuICAgICAgPG9keC1pY29uIG5hbWU9XCJ1c2VyXCIgYWxpZ25MZWZ0Pjwvb2R4LWljb24+XG4gICAgICB7eyBzaWduSW5CdXR0b25UZXh0IH19XG4gICAgPC9idXR0b24+XG4gIDwvbmctdGVtcGxhdGU+XG4gIDxuZy10ZW1wbGF0ZSAjdXNlclByb2ZpbGVNZW51PlxuICAgIDxvZHgtYXJlYS1oZWFkZXIgY2xhc3M9XCJvZHgtcGFkZGluZy14LTEyXCIgc2l6ZT1cInNtYWxsXCI+XG4gICAgICA8b2R4LWF2YXRhcj5cbiAgICAgICAge3sgZ2V0SW5pdGlhbHModXNlcikgfX1cbiAgICAgIDwvb2R4LWF2YXRhcj5cbiAgICAgIDxoMiBjbGFzcz1cIm9keC10aXRsZVwiPnt7IHVzZXI/Lm5hbWUgfX08L2gyPlxuICAgICAgPGg1IGNsYXNzPVwib2R4LXN1YnRpdGxlXCI+e3sgdXNlcj8uZW1haWxfYWRkcmVzcyB9fTwvaDU+XG4gICAgPC9vZHgtYXJlYS1oZWFkZXI+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDxkaXYgY2xhc3M9XCJvZHgtbWFyZ2luLXRvcC0xMlwiIG9keExheW91dD1cImZsZXggdmVydGljYWwtY2VudGVyXCI+XG4gICAgICA8b2R4LWxvZ28gb2R4TGF5b3V0PVwiYXV0b1wiIGNsYXNzPVwib2R4LW1hcmdpbi1sZWZ0LTEyIG9keC1tYXJnaW4tcmlnaHQtYXV0b1wiPjwvb2R4LWxvZ28+XG4gICAgICA8YnV0dG9uIG9keEJ1dHRvbiBvZHhBdXRoU2lnbk91dCB2YXJpYW50PVwiZ2hvc3RcIj5cbiAgICAgICAge3sgc2lnbk91dEJ1dHRvblRleHQgfX1cbiAgICAgICAgPG9keC1pY29uIG5hbWU9XCJhcnJvdy1yaWdodFwiIGFsaWduUmlnaHQ+PC9vZHgtaWNvbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L25nLXRlbXBsYXRlPlxuPC9vZHgtYWN0aW9uLWdyb3VwPlxuIl19
@@ -0,0 +1,8 @@
1
+ import { createModuleConfigTokens } from '@odx/angular/utils';
2
+ export const DEFAULT_AUTH_SCOPES = ['openid', 'profile'];
3
+ export const { AuthDefaultModuleConfig, AuthModuleConfig, injectAuthModuleConfig } = createModuleConfigTokens('Auth', '@odx/auth', {
4
+ environment: 'prod',
5
+ redirectPath: 'login/callback',
6
+ disallowedOrigins: [],
7
+ });
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2F1dGgvc3JjL2xpYi9hdXRoLmNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUs5RCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsQ0FBQztBQVd6RCxNQUFNLENBQUMsTUFBTSxFQUFFLHVCQUF1QixFQUFFLGdCQUFnQixFQUFFLHNCQUFzQixFQUFFLEdBQUcsd0JBQXdCLENBQUMsTUFBTSxFQUFFLFdBQVcsRUFBRTtJQUNqSSxXQUFXLEVBQUUsTUFBTTtJQUNuQixZQUFZLEVBQUUsZ0JBQWdCO0lBQzlCLGlCQUFpQixFQUFFLEVBQUU7Q0FDRixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVNb2R1bGVDb25maWdUb2tlbnMgfSBmcm9tICdAb2R4L2FuZ3VsYXIvdXRpbHMnO1xuXG5pbXBvcnQgeyBPa3RhQXV0aE9wdGlvbnMgfSBmcm9tICdAb2t0YS9va3RhLWF1dGgtanMnO1xuaW1wb3J0IHsgQXV0aEVudmlyb25tZW50IH0gZnJvbSAnLi9tb2RlbHMnO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9BVVRIX1NDT1BFUyA9IFsnb3BlbmlkJywgJ3Byb2ZpbGUnXTtcblxuZXhwb3J0IGludGVyZmFjZSBBdXRoTW9kdWxlQ29uZmlnIGV4dGVuZHMgUGljazxPa3RhQXV0aE9wdGlvbnMsICdjbGllbnRJZCcgfCAnc2NvcGVzJz4ge1xuICBlbnZpcm9ubWVudDogQXV0aEVudmlyb25tZW50O1xuICByZWRpcmVjdFBhdGg6IHN0cmluZztcbiAgc2lnblVwVXJsPzogc3RyaW5nO1xuICBkaXNhbGxvd2VkT3JpZ2luczogc3RyaW5nW107XG4gIHBvc3RMb2dvdXRSZWRpcmVjdFBhdGg/OiBzdHJpbmc7XG4gIGlzc3Vlck92ZXJyaWRlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgY29uc3QgeyBBdXRoRGVmYXVsdE1vZHVsZUNvbmZpZywgQXV0aE1vZHVsZUNvbmZpZywgaW5qZWN0QXV0aE1vZHVsZUNvbmZpZyB9ID0gY3JlYXRlTW9kdWxlQ29uZmlnVG9rZW5zKCdBdXRoJywgJ0BvZHgvYXV0aCcsIHtcbiAgZW52aXJvbm1lbnQ6ICdwcm9kJyxcbiAgcmVkaXJlY3RQYXRoOiAnbG9naW4vY2FsbGJhY2snLFxuICBkaXNhbGxvd2VkT3JpZ2luczogW10sXG59IGFzIEF1dGhNb2R1bGVDb25maWcpO1xuIl19
@@ -0,0 +1,25 @@
1
+ import { inject, Injectable } from '@angular/core';
2
+ import { injectAuthModuleConfig } from './auth.config';
3
+ import { AuthService } from './auth.service';
4
+ import * as i0 from "@angular/core";
5
+ export class AuthInterceptor {
6
+ constructor() {
7
+ this.config = injectAuthModuleConfig();
8
+ this.authService = inject(AuthService);
9
+ }
10
+ intercept(request, next) {
11
+ return next.handle(this.addAuthHeader(request));
12
+ }
13
+ addAuthHeader(request) {
14
+ if (!this.config.disallowedOrigins.find((origin) => !!request.url.match(origin))) {
15
+ return request.clone({ setHeaders: this.authService.getAuthHeader() });
16
+ }
17
+ return request;
18
+ }
19
+ }
20
+ AuthInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: AuthInterceptor, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
21
+ AuthInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: AuthInterceptor });
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: AuthInterceptor, decorators: [{
23
+ type: Injectable
24
+ }] });
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5pbnRlcmNlcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvYXV0aC9zcmMvbGliL2F1dGguaW50ZXJjZXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFHN0MsTUFBTSxPQUFPLGVBQWU7SUFENUI7UUFFbUIsV0FBTSxHQUFHLHNCQUFzQixFQUFFLENBQUM7UUFDbEMsZ0JBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7S0FZcEQ7SUFWUSxTQUFTLENBQUMsT0FBNkIsRUFBRSxJQUFpQjtRQUMvRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFTyxhQUFhLENBQUMsT0FBNkI7UUFDakQsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRTtZQUNoRixPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDLENBQUM7U0FDeEU7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDOzs0R0FiVSxlQUFlO2dIQUFmLGVBQWU7MkZBQWYsZUFBZTtrQkFEM0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBFdmVudCwgSHR0cEhhbmRsZXIsIEh0dHBJbnRlcmNlcHRvciwgSHR0cFJlcXVlc3QgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGluamVjdEF1dGhNb2R1bGVDb25maWcgfSBmcm9tICcuL2F1dGguY29uZmlnJztcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi9hdXRoLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQXV0aEludGVyY2VwdG9yIGltcGxlbWVudHMgSHR0cEludGVyY2VwdG9yIHtcbiAgcHJpdmF0ZSByZWFkb25seSBjb25maWcgPSBpbmplY3RBdXRoTW9kdWxlQ29uZmlnKCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgYXV0aFNlcnZpY2UgPSBpbmplY3QoQXV0aFNlcnZpY2UpO1xuXG4gIHB1YmxpYyBpbnRlcmNlcHQocmVxdWVzdDogSHR0cFJlcXVlc3Q8dW5rbm93bj4sIG5leHQ6IEh0dHBIYW5kbGVyKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8dW5rbm93bj4+IHtcbiAgICByZXR1cm4gbmV4dC5oYW5kbGUodGhpcy5hZGRBdXRoSGVhZGVyKHJlcXVlc3QpKTtcbiAgfVxuXG4gIHByaXZhdGUgYWRkQXV0aEhlYWRlcihyZXF1ZXN0OiBIdHRwUmVxdWVzdDx1bmtub3duPik6IEh0dHBSZXF1ZXN0PHVua25vd24+IHtcbiAgICBpZiAoIXRoaXMuY29uZmlnLmRpc2FsbG93ZWRPcmlnaW5zLmZpbmQoKG9yaWdpbikgPT4gISFyZXF1ZXN0LnVybC5tYXRjaChvcmlnaW4pKSkge1xuICAgICAgcmV0dXJuIHJlcXVlc3QuY2xvbmUoeyBzZXRIZWFkZXJzOiB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhIZWFkZXIoKSB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHJlcXVlc3Q7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,28 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { provideModuleConfig } from '@odx/angular/utils';
3
+ import { OktaAuthModule } from '@okta/okta-angular';
4
+ import { AuthComponent } from './auth.component';
5
+ import { AuthModuleConfig } from './auth.config';
6
+ import authProviders from './auth.providers';
7
+ import { SignInDirective, SignOutDirective } from './directives';
8
+ import * as i0 from "@angular/core";
9
+ const modules = [AuthComponent, SignInDirective, SignOutDirective];
10
+ export class AuthModule {
11
+ static forRoot(config) {
12
+ return {
13
+ ngModule: AuthModule,
14
+ providers: [provideModuleConfig(AuthModuleConfig, config), ...authProviders],
15
+ };
16
+ }
17
+ }
18
+ AuthModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: AuthModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
19
+ AuthModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.0", ngImport: i0, type: AuthModule, imports: [AuthComponent, SignInDirective, SignOutDirective], exports: [OktaAuthModule, AuthComponent, SignInDirective, SignOutDirective] });
20
+ AuthModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: AuthModule, imports: [AuthComponent, OktaAuthModule] });
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: AuthModule, decorators: [{
22
+ type: NgModule,
23
+ args: [{
24
+ imports: [...modules],
25
+ exports: [OktaAuthModule, ...modules],
26
+ }]
27
+ }] });
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2F1dGgvc3JjL2xpYi9hdXRoLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXVCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQWtELG1CQUFtQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDekcsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxhQUFhLE1BQU0sa0JBQWtCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7QUFFakUsTUFBTSxPQUFPLEdBQUcsQ0FBQyxhQUFhLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixDQUFDLENBQUM7QUFNbkUsTUFBTSxPQUFPLFVBQVU7SUFDZCxNQUFNLENBQUMsT0FBTyxDQUFxQyxNQUEwRDtRQUNsSCxPQUFPO1lBQ0wsUUFBUSxFQUFFLFVBQVU7WUFDcEIsU0FBUyxFQUFFLENBQUMsbUJBQW1CLENBQUMsZ0JBQWdCLEVBQUUsTUFBTSxDQUFDLEVBQUUsR0FBRyxhQUFhLENBQUM7U0FDN0UsQ0FBQztJQUNKLENBQUM7O3VHQU5VLFVBQVU7d0dBQVYsVUFBVSxZQU5OLGFBQWEsRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLGFBSXJELGNBQWMsRUFKVCxhQUFhLEVBQUUsZUFBZSxFQUFFLGdCQUFnQjt3R0FNcEQsVUFBVSxZQU5OLGFBQWEsRUFJbEIsY0FBYzsyRkFFYixVQUFVO2tCQUp0QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDO29CQUNyQixPQUFPLEVBQUUsQ0FBQyxjQUFjLEVBQUUsR0FBRyxPQUFPLENBQUM7aUJBQ3RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1vZHVsZUNvbmZpZ0RlcGVuZGVuY2llcywgTW9kdWxlQ29uZmlnUHJvdmlkZXIsIHByb3ZpZGVNb2R1bGVDb25maWcgfSBmcm9tICdAb2R4L2FuZ3VsYXIvdXRpbHMnO1xuaW1wb3J0IHsgT2t0YUF1dGhNb2R1bGUgfSBmcm9tICdAb2t0YS9va3RhLWFuZ3VsYXInO1xuaW1wb3J0IHsgQXV0aENvbXBvbmVudCB9IGZyb20gJy4vYXV0aC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXV0aE1vZHVsZUNvbmZpZyB9IGZyb20gJy4vYXV0aC5jb25maWcnO1xuaW1wb3J0IGF1dGhQcm92aWRlcnMgZnJvbSAnLi9hdXRoLnByb3ZpZGVycyc7XG5pbXBvcnQgeyBTaWduSW5EaXJlY3RpdmUsIFNpZ25PdXREaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMnO1xuXG5jb25zdCBtb2R1bGVzID0gW0F1dGhDb21wb25lbnQsIFNpZ25JbkRpcmVjdGl2ZSwgU2lnbk91dERpcmVjdGl2ZV07XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFsuLi5tb2R1bGVzXSxcbiAgZXhwb3J0czogW09rdGFBdXRoTW9kdWxlLCAuLi5tb2R1bGVzXSxcbn0pXG5leHBvcnQgY2xhc3MgQXV0aE1vZHVsZSB7XG4gIHB1YmxpYyBzdGF0aWMgZm9yUm9vdDxEIGV4dGVuZHMgTW9kdWxlQ29uZmlnRGVwZW5kZW5jaWVzPihjb25maWc6IE1vZHVsZUNvbmZpZ1Byb3ZpZGVyPFBhcnRpYWw8QXV0aE1vZHVsZUNvbmZpZz4sIEQ+KTogTW9kdWxlV2l0aFByb3ZpZGVyczxBdXRoTW9kdWxlPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBBdXRoTW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOiBbcHJvdmlkZU1vZHVsZUNvbmZpZyhBdXRoTW9kdWxlQ29uZmlnLCBjb25maWcpLCAuLi5hdXRoUHJvdmlkZXJzXSxcbiAgICB9O1xuICB9XG59XG4iXX0=
@@ -0,0 +1,50 @@
1
+ import { HTTP_INTERCEPTORS } from '@angular/common/http';
2
+ import { APP_INITIALIZER, inject } from '@angular/core';
3
+ import { Router } from '@angular/router';
4
+ import { WindowRef } from '@odx/angular';
5
+ import { buildUrl } from '@odx/angular/utils';
6
+ import { OktaCallbackComponent, OKTA_CONFIG } from '@okta/okta-angular';
7
+ import { OktaAuth } from '@okta/okta-auth-js';
8
+ import { DEFAULT_AUTH_SCOPES, injectAuthModuleConfig } from './auth.config';
9
+ import { AuthInterceptor } from './auth.interceptor';
10
+ import { resolveIssuer } from './helpers';
11
+ export function registerAuthCallbackRoute() {
12
+ const { redirectPath } = injectAuthModuleConfig();
13
+ const router = inject(Router);
14
+ return () => {
15
+ router.config.unshift({ path: redirectPath, component: OktaCallbackComponent });
16
+ };
17
+ }
18
+ export function initalizeAuthConfig() {
19
+ const { clientId, scopes, redirectPath, environment, postLogoutRedirectPath, issuerOverride } = injectAuthModuleConfig();
20
+ const origin = inject(WindowRef).getOrigin();
21
+ const postLogoutRedirectUri = postLogoutRedirectPath ? buildUrl(origin, postLogoutRedirectPath) : undefined;
22
+ return {
23
+ oktaAuth: new OktaAuth({
24
+ issuer: resolveIssuer(environment, issuerOverride),
25
+ clientId,
26
+ redirectUri: buildUrl(origin, redirectPath),
27
+ scopes: Array.from(new Set(DEFAULT_AUTH_SCOPES.concat(scopes ?? []))),
28
+ pkce: true,
29
+ devMode: environment === 'dev',
30
+ postLogoutRedirectUri,
31
+ }),
32
+ };
33
+ }
34
+ export default [
35
+ {
36
+ provide: APP_INITIALIZER,
37
+ useFactory: registerAuthCallbackRoute,
38
+ multi: true,
39
+ },
40
+ {
41
+ provide: OKTA_CONFIG,
42
+ useFactory: initalizeAuthConfig,
43
+ },
44
+ {
45
+ provide: HTTP_INTERCEPTORS,
46
+ useClass: AuthInterceptor,
47
+ multi: true,
48
+ },
49
+ ];
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5wcm92aWRlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2F1dGgvc3JjL2xpYi9hdXRoLnByb3ZpZGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUVsRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN6QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDOUMsT0FBTyxFQUFFLHFCQUFxQixFQUFjLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFMUMsTUFBTSxVQUFVLHlCQUF5QjtJQUN2QyxNQUFNLEVBQUUsWUFBWSxFQUFFLEdBQUcsc0JBQXNCLEVBQUUsQ0FBQztJQUNsRCxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFOUIsT0FBTyxHQUFHLEVBQUU7UUFDVixNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLHFCQUFxQixFQUFFLENBQUMsQ0FBQztJQUNsRixDQUFDLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLG1CQUFtQjtJQUNqQyxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLHNCQUFzQixFQUFFLGNBQWMsRUFBRSxHQUFHLHNCQUFzQixFQUFFLENBQUM7SUFDekgsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQzdDLE1BQU0scUJBQXFCLEdBQUcsc0JBQXNCLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsc0JBQXNCLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBRTVHLE9BQU87UUFDTCxRQUFRLEVBQUUsSUFBSSxRQUFRLENBQUM7WUFDckIsTUFBTSxFQUFFLGFBQWEsQ0FBQyxXQUFXLEVBQUUsY0FBYyxDQUFDO1lBQ2xELFFBQVE7WUFDUixXQUFXLEVBQUUsUUFBUSxDQUFDLE1BQU0sRUFBRSxZQUFZLENBQUM7WUFDM0MsTUFBTSxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsbUJBQW1CLENBQUMsTUFBTSxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3JFLElBQUksRUFBRSxJQUFJO1lBQ1YsT0FBTyxFQUFFLFdBQVcsS0FBSyxLQUFLO1lBQzlCLHFCQUFxQjtTQUN0QixDQUFDO0tBQ0gsQ0FBQztBQUNKLENBQUM7QUFFRCxlQUFlO0lBQ2I7UUFDRSxPQUFPLEVBQUUsZUFBZTtRQUN4QixVQUFVLEVBQUUseUJBQXlCO1FBQ3JDLEtBQUssRUFBRSxJQUFJO0tBQ1o7SUFDRDtRQUNFLE9BQU8sRUFBRSxXQUFXO1FBQ3BCLFVBQVUsRUFBRSxtQkFBbUI7S0FDaEM7SUFDRDtRQUNFLE9BQU8sRUFBRSxpQkFBaUI7UUFDMUIsUUFBUSxFQUFFLGVBQWU7UUFDekIsS0FBSyxFQUFFLElBQUk7S0FDWjtDQUNZLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIVFRQX0lOVEVSQ0VQVE9SUyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEFQUF9JTklUSUFMSVpFUiwgaW5qZWN0LCBQcm92aWRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHt9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFdpbmRvd1JlZiB9IGZyb20gJ0BvZHgvYW5ndWxhcic7XG5pbXBvcnQgeyBidWlsZFVybCB9IGZyb20gJ0BvZHgvYW5ndWxhci91dGlscyc7XG5pbXBvcnQgeyBPa3RhQ2FsbGJhY2tDb21wb25lbnQsIE9rdGFDb25maWcsIE9LVEFfQ09ORklHIH0gZnJvbSAnQG9rdGEvb2t0YS1hbmd1bGFyJztcbmltcG9ydCB7IE9rdGFBdXRoIH0gZnJvbSAnQG9rdGEvb2t0YS1hdXRoLWpzJztcbmltcG9ydCB7IERFRkFVTFRfQVVUSF9TQ09QRVMsIGluamVjdEF1dGhNb2R1bGVDb25maWcgfSBmcm9tICcuL2F1dGguY29uZmlnJztcbmltcG9ydCB7IEF1dGhJbnRlcmNlcHRvciB9IGZyb20gJy4vYXV0aC5pbnRlcmNlcHRvcic7XG5pbXBvcnQgeyByZXNvbHZlSXNzdWVyIH0gZnJvbSAnLi9oZWxwZXJzJztcblxuZXhwb3J0IGZ1bmN0aW9uIHJlZ2lzdGVyQXV0aENhbGxiYWNrUm91dGUoKTogKCkgPT4gdm9pZCB7XG4gIGNvbnN0IHsgcmVkaXJlY3RQYXRoIH0gPSBpbmplY3RBdXRoTW9kdWxlQ29uZmlnKCk7XG4gIGNvbnN0IHJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xuXG4gIHJldHVybiAoKSA9PiB7XG4gICAgcm91dGVyLmNvbmZpZy51bnNoaWZ0KHsgcGF0aDogcmVkaXJlY3RQYXRoLCBjb21wb25lbnQ6IE9rdGFDYWxsYmFja0NvbXBvbmVudCB9KTtcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluaXRhbGl6ZUF1dGhDb25maWcoKTogT2t0YUNvbmZpZyB7XG4gIGNvbnN0IHsgY2xpZW50SWQsIHNjb3BlcywgcmVkaXJlY3RQYXRoLCBlbnZpcm9ubWVudCwgcG9zdExvZ291dFJlZGlyZWN0UGF0aCwgaXNzdWVyT3ZlcnJpZGUgfSA9IGluamVjdEF1dGhNb2R1bGVDb25maWcoKTtcbiAgY29uc3Qgb3JpZ2luID0gaW5qZWN0KFdpbmRvd1JlZikuZ2V0T3JpZ2luKCk7XG4gIGNvbnN0IHBvc3RMb2dvdXRSZWRpcmVjdFVyaSA9IHBvc3RMb2dvdXRSZWRpcmVjdFBhdGggPyBidWlsZFVybChvcmlnaW4sIHBvc3RMb2dvdXRSZWRpcmVjdFBhdGgpIDogdW5kZWZpbmVkO1xuXG4gIHJldHVybiB7XG4gICAgb2t0YUF1dGg6IG5ldyBPa3RhQXV0aCh7XG4gICAgICBpc3N1ZXI6IHJlc29sdmVJc3N1ZXIoZW52aXJvbm1lbnQsIGlzc3Vlck92ZXJyaWRlKSxcbiAgICAgIGNsaWVudElkLFxuICAgICAgcmVkaXJlY3RVcmk6IGJ1aWxkVXJsKG9yaWdpbiwgcmVkaXJlY3RQYXRoKSxcbiAgICAgIHNjb3BlczogQXJyYXkuZnJvbShuZXcgU2V0KERFRkFVTFRfQVVUSF9TQ09QRVMuY29uY2F0KHNjb3BlcyA/PyBbXSkpKSxcbiAgICAgIHBrY2U6IHRydWUsXG4gICAgICBkZXZNb2RlOiBlbnZpcm9ubWVudCA9PT0gJ2RldicsXG4gICAgICBwb3N0TG9nb3V0UmVkaXJlY3RVcmksXG4gICAgfSksXG4gIH07XG59XG5cbmV4cG9ydCBkZWZhdWx0IFtcbiAge1xuICAgIHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUixcbiAgICB1c2VGYWN0b3J5OiByZWdpc3RlckF1dGhDYWxsYmFja1JvdXRlLFxuICAgIG11bHRpOiB0cnVlLFxuICB9LFxuICB7XG4gICAgcHJvdmlkZTogT0tUQV9DT05GSUcsXG4gICAgdXNlRmFjdG9yeTogaW5pdGFsaXplQXV0aENvbmZpZyxcbiAgfSxcbiAge1xuICAgIHByb3ZpZGU6IEhUVFBfSU5URVJDRVBUT1JTLFxuICAgIHVzZUNsYXNzOiBBdXRoSW50ZXJjZXB0b3IsXG4gICAgbXVsdGk6IHRydWUsXG4gIH0sXG5dIGFzIFByb3ZpZGVyW107XG4iXX0=
@@ -0,0 +1,37 @@
1
+ import { inject, Injectable } from '@angular/core';
2
+ import { OktaAuthStateService, OKTA_AUTH } from '@okta/okta-angular';
3
+ import { map, shareReplay } from 'rxjs';
4
+ import * as i0 from "@angular/core";
5
+ export class AuthService {
6
+ constructor() {
7
+ this.auth = inject(OKTA_AUTH);
8
+ this.authState = inject(OktaAuthStateService);
9
+ this.isAuthenticated$ = this.authState.authState$.pipe(map(({ isAuthenticated }) => !!isAuthenticated), shareReplay({ refCount: true }));
10
+ this.user$ = this.authState.authState$.pipe(map(({ idToken }) => idToken?.claims ?? null), shareReplay({ refCount: true }));
11
+ }
12
+ async signIn() {
13
+ await this.auth.signInWithRedirect();
14
+ }
15
+ async signOut() {
16
+ await this.auth.signOut();
17
+ }
18
+ getAccessToken() {
19
+ return this.auth.getAccessToken() ?? null;
20
+ }
21
+ getRefreshToken() {
22
+ return this.auth.getRefreshToken() ?? null;
23
+ }
24
+ getAuthHeader() {
25
+ return { Authorization: `Bearer ${this.getAccessToken()}` };
26
+ }
27
+ hasAnyGroups$(groups) {
28
+ return this.authState.hasAnyGroups(groups);
29
+ }
30
+ }
31
+ AuthService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: AuthService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
32
+ AuthService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: AuthService, providedIn: 'root' });
33
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: AuthService, decorators: [{
34
+ type: Injectable,
35
+ args: [{ providedIn: 'root' }]
36
+ }] });
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9hdXRoL3NyYy9saWIvYXV0aC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxTQUFTLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNyRSxPQUFPLEVBQUUsR0FBRyxFQUFjLFdBQVcsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFJcEQsTUFBTSxPQUFPLFdBQVc7SUFEeEI7UUFFbUIsU0FBSSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN6QixjQUFTLEdBQUcsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFFMUMscUJBQWdCLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUMvRCxHQUFHLENBQUMsQ0FBQyxFQUFFLGVBQWUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLEVBQy9DLFdBQVcsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUNoQyxDQUFDO1FBQ2MsVUFBSyxHQUE0QixJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQzdFLEdBQUcsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxDQUFDLE9BQU8sRUFBRSxNQUFNLElBQUksSUFBSSxDQUFDLEVBQzdDLFdBQVcsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUNoQyxDQUFDO0tBeUJIO0lBdkJRLEtBQUssQ0FBQyxNQUFNO1FBQ2pCLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQ3ZDLENBQUM7SUFFTSxLQUFLLENBQUMsT0FBTztRQUNsQixNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVNLGNBQWM7UUFDbkIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxJQUFJLElBQUksQ0FBQztJQUM1QyxDQUFDO0lBRU0sZUFBZTtRQUNwQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLElBQUksSUFBSSxDQUFDO0lBQzdDLENBQUM7SUFFTSxhQUFhO1FBQ2xCLE9BQU8sRUFBRSxhQUFhLEVBQUUsVUFBVSxJQUFJLENBQUMsY0FBYyxFQUFFLEVBQUUsRUFBRSxDQUFDO0lBQzlELENBQUM7SUFFTSxhQUFhLENBQUMsTUFBb0Q7UUFDdkUsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM3QyxDQUFDOzt3R0FuQ1UsV0FBVzs0R0FBWCxXQUFXLGNBREUsTUFBTTsyRkFDbkIsV0FBVztrQkFEdkIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9rdGFBdXRoU3RhdGVTZXJ2aWNlLCBPS1RBX0FVVEggfSBmcm9tICdAb2t0YS9va3RhLWFuZ3VsYXInO1xuaW1wb3J0IHsgbWFwLCBPYnNlcnZhYmxlLCBzaGFyZVJlcGxheSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVXNlciB9IGZyb20gJy4vbW9kZWxzJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBBdXRoU2VydmljZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgYXV0aCA9IGluamVjdChPS1RBX0FVVEgpO1xuICBwcml2YXRlIHJlYWRvbmx5IGF1dGhTdGF0ZSA9IGluamVjdChPa3RhQXV0aFN0YXRlU2VydmljZSk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGlzQXV0aGVudGljYXRlZCQgPSB0aGlzLmF1dGhTdGF0ZS5hdXRoU3RhdGUkLnBpcGUoXG4gICAgbWFwKCh7IGlzQXV0aGVudGljYXRlZCB9KSA9PiAhIWlzQXV0aGVudGljYXRlZCksXG4gICAgc2hhcmVSZXBsYXkoeyByZWZDb3VudDogdHJ1ZSB9KVxuICApO1xuICBwdWJsaWMgcmVhZG9ubHkgdXNlciQ6IE9ic2VydmFibGU8VXNlciB8IG51bGw+ID0gdGhpcy5hdXRoU3RhdGUuYXV0aFN0YXRlJC5waXBlKFxuICAgIG1hcCgoeyBpZFRva2VuIH0pID0+IGlkVG9rZW4/LmNsYWltcyA/PyBudWxsKSxcbiAgICBzaGFyZVJlcGxheSh7IHJlZkNvdW50OiB0cnVlIH0pXG4gICk7XG5cbiAgcHVibGljIGFzeW5jIHNpZ25JbigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLmF1dGguc2lnbkluV2l0aFJlZGlyZWN0KCk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgc2lnbk91dCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLmF1dGguc2lnbk91dCgpO1xuICB9XG5cbiAgcHVibGljIGdldEFjY2Vzc1Rva2VuKCk6IHN0cmluZyB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLmF1dGguZ2V0QWNjZXNzVG9rZW4oKSA/PyBudWxsO1xuICB9XG5cbiAgcHVibGljIGdldFJlZnJlc2hUb2tlbigpOiBzdHJpbmcgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5hdXRoLmdldFJlZnJlc2hUb2tlbigpID8/IG51bGw7XG4gIH1cblxuICBwdWJsaWMgZ2V0QXV0aEhlYWRlcigpOiB7IEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHtzdHJpbmd9YCB9IHtcbiAgICByZXR1cm4geyBBdXRob3JpemF0aW9uOiBgQmVhcmVyICR7dGhpcy5nZXRBY2Nlc3NUb2tlbigpfWAgfTtcbiAgfVxuXG4gIHB1YmxpYyBoYXNBbnlHcm91cHMkKGdyb3Vwczogc3RyaW5nIHwgc3RyaW5nW10gfCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT4pOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5hdXRoU3RhdGUuaGFzQW55R3JvdXBzKGdyb3Vwcyk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,3 @@
1
+ export * from './sign-in.directive';
2
+ export * from './sign-out.directive';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2F1dGgvc3JjL2xpYi9kaXJlY3RpdmVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxzQkFBc0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc2lnbi1pbi5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9zaWduLW91dC5kaXJlY3RpdmUnO1xuIl19
@@ -0,0 +1,38 @@
1
+ import { Directive, EventEmitter, HostListener, inject, Output } from '@angular/core';
2
+ import { LoadingSpinnerDirective } from '@odx/angular/components/loading-spinner';
3
+ import { AuthService } from '../auth.service';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@odx/angular/components/loading-spinner";
6
+ export class SignInDirective {
7
+ constructor() {
8
+ this.authService = inject(AuthService);
9
+ this.loadingSpinnerDirective = inject(LoadingSpinnerDirective, { self: true });
10
+ // eslint-disable-next-line @angular-eslint/no-output-rename
11
+ this.afterSignIn = new EventEmitter();
12
+ }
13
+ ngOnInit() {
14
+ this.loadingSpinnerDirective.autoColor = true;
15
+ }
16
+ async signIn() {
17
+ this.loadingSpinnerDirective.isLoading = true;
18
+ await this.authService.signIn();
19
+ this.afterSignIn.emit();
20
+ }
21
+ }
22
+ SignInDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: SignInDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
23
+ SignInDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.0", type: SignInDirective, isStandalone: true, selector: "[odxButton][odxAuthSignIn]", outputs: { afterSignIn: "odxAuthSignIn" }, host: { listeners: { "click": "signIn()" } }, hostDirectives: [{ directive: i1.LoadingSpinnerDirective }], ngImport: i0 });
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: SignInDirective, decorators: [{
25
+ type: Directive,
26
+ args: [{
27
+ standalone: true,
28
+ selector: '[odxButton][odxAuthSignIn]',
29
+ hostDirectives: [LoadingSpinnerDirective],
30
+ }]
31
+ }], propDecorators: { afterSignIn: [{
32
+ type: Output,
33
+ args: ['odxAuthSignIn']
34
+ }], signIn: [{
35
+ type: HostListener,
36
+ args: ['click']
37
+ }] } });
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbi1pbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2F1dGgvc3JjL2xpYi9kaXJlY3RpdmVzL3NpZ24taW4uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBTzlDLE1BQU0sT0FBTyxlQUFlO0lBTDVCO1FBTW1CLGdCQUFXLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ2xDLDRCQUF1QixHQUFHLE1BQU0sQ0FBQyx1QkFBdUIsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRTNGLDREQUE0RDtRQUVyRCxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7S0FZL0M7SUFWUSxRQUFRO1FBQ2IsSUFBSSxDQUFDLHVCQUF1QixDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7SUFDaEQsQ0FBQztJQUdTLEtBQUssQ0FBQyxNQUFNO1FBQ3BCLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQzlDLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNoQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzFCLENBQUM7OzRHQWpCVSxlQUFlO2dHQUFmLGVBQWU7MkZBQWYsZUFBZTtrQkFMM0IsU0FBUzttQkFBQztvQkFDVCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLDRCQUE0QjtvQkFDdEMsY0FBYyxFQUFFLENBQUMsdUJBQXVCLENBQUM7aUJBQzFDOzhCQU9RLFdBQVc7c0JBRGpCLE1BQU07dUJBQUMsZUFBZTtnQkFRUCxNQUFNO3NCQURyQixZQUFZO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEV2ZW50RW1pdHRlciwgSG9zdExpc3RlbmVyLCBpbmplY3QsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBMb2FkaW5nU3Bpbm5lckRpcmVjdGl2ZSB9IGZyb20gJ0BvZHgvYW5ndWxhci9jb21wb25lbnRzL2xvYWRpbmctc3Bpbm5lcic7XG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uL2F1dGguc2VydmljZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ1tvZHhCdXR0b25dW29keEF1dGhTaWduSW5dJyxcbiAgaG9zdERpcmVjdGl2ZXM6IFtMb2FkaW5nU3Bpbm5lckRpcmVjdGl2ZV0sXG59KVxuZXhwb3J0IGNsYXNzIFNpZ25JbkRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgYXV0aFNlcnZpY2UgPSBpbmplY3QoQXV0aFNlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IGxvYWRpbmdTcGlubmVyRGlyZWN0aXZlID0gaW5qZWN0KExvYWRpbmdTcGlubmVyRGlyZWN0aXZlLCB7IHNlbGY6IHRydWUgfSk7XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtcmVuYW1lXG4gIEBPdXRwdXQoJ29keEF1dGhTaWduSW4nKVxuICBwdWJsaWMgYWZ0ZXJTaWduSW4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMubG9hZGluZ1NwaW5uZXJEaXJlY3RpdmUuYXV0b0NvbG9yID0gdHJ1ZTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJylcbiAgcHJvdGVjdGVkIGFzeW5jIHNpZ25JbigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLmxvYWRpbmdTcGlubmVyRGlyZWN0aXZlLmlzTG9hZGluZyA9IHRydWU7XG4gICAgYXdhaXQgdGhpcy5hdXRoU2VydmljZS5zaWduSW4oKTtcbiAgICB0aGlzLmFmdGVyU2lnbkluLmVtaXQoKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,38 @@
1
+ import { Directive, EventEmitter, HostListener, inject, Output } from '@angular/core';
2
+ import { LoadingSpinnerDirective } from '@odx/angular/components/loading-spinner';
3
+ import { AuthService } from '../auth.service';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@odx/angular/components/loading-spinner";
6
+ export class SignOutDirective {
7
+ constructor() {
8
+ this.authService = inject(AuthService);
9
+ this.loadingSpinnerDirective = inject(LoadingSpinnerDirective, { self: true });
10
+ // eslint-disable-next-line @angular-eslint/no-output-rename
11
+ this.afterSignOut = new EventEmitter();
12
+ }
13
+ ngOnInit() {
14
+ this.loadingSpinnerDirective.autoColor = true;
15
+ }
16
+ async signIn() {
17
+ this.loadingSpinnerDirective.isLoading = true;
18
+ await this.authService.signOut();
19
+ this.afterSignOut.emit();
20
+ }
21
+ }
22
+ SignOutDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: SignOutDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
23
+ SignOutDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.0", type: SignOutDirective, isStandalone: true, selector: "[odxButton][odxAuthSignOut]", outputs: { afterSignOut: "odxAuthSignOut" }, host: { listeners: { "click": "signIn()" } }, hostDirectives: [{ directive: i1.LoadingSpinnerDirective }], ngImport: i0 });
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: SignOutDirective, decorators: [{
25
+ type: Directive,
26
+ args: [{
27
+ standalone: true,
28
+ selector: '[odxButton][odxAuthSignOut]',
29
+ hostDirectives: [LoadingSpinnerDirective],
30
+ }]
31
+ }], propDecorators: { afterSignOut: [{
32
+ type: Output,
33
+ args: ['odxAuthSignOut']
34
+ }], signIn: [{
35
+ type: HostListener,
36
+ args: ['click']
37
+ }] } });
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbi1vdXQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hdXRoL3NyYy9saWIvZGlyZWN0aXZlcy9zaWduLW91dC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDbEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7QUFPOUMsTUFBTSxPQUFPLGdCQUFnQjtJQUw3QjtRQU1tQixnQkFBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNsQyw0QkFBdUIsR0FBRyxNQUFNLENBQUMsdUJBQXVCLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUUzRiw0REFBNEQ7UUFFckQsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO0tBWWhEO0lBVlEsUUFBUTtRQUNiLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO0lBQ2hELENBQUM7SUFHUyxLQUFLLENBQUMsTUFBTTtRQUNwQixJQUFJLENBQUMsdUJBQXVCLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUM5QyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDakMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMzQixDQUFDOzs2R0FqQlUsZ0JBQWdCO2lHQUFoQixnQkFBZ0I7MkZBQWhCLGdCQUFnQjtrQkFMNUIsU0FBUzttQkFBQztvQkFDVCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLDZCQUE2QjtvQkFDdkMsY0FBYyxFQUFFLENBQUMsdUJBQXVCLENBQUM7aUJBQzFDOzhCQU9RLFlBQVk7c0JBRGxCLE1BQU07dUJBQUMsZ0JBQWdCO2dCQVFSLE1BQU07c0JBRHJCLFlBQVk7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRXZlbnRFbWl0dGVyLCBIb3N0TGlzdGVuZXIsIGluamVjdCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExvYWRpbmdTcGlubmVyRGlyZWN0aXZlIH0gZnJvbSAnQG9keC9hbmd1bGFyL2NvbXBvbmVudHMvbG9hZGluZy1zcGlubmVyJztcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vYXV0aC5zZXJ2aWNlJztcblxuQERpcmVjdGl2ZSh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnW29keEJ1dHRvbl1bb2R4QXV0aFNpZ25PdXRdJyxcbiAgaG9zdERpcmVjdGl2ZXM6IFtMb2FkaW5nU3Bpbm5lckRpcmVjdGl2ZV0sXG59KVxuZXhwb3J0IGNsYXNzIFNpZ25PdXREaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQge1xuICBwcml2YXRlIHJlYWRvbmx5IGF1dGhTZXJ2aWNlID0gaW5qZWN0KEF1dGhTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBsb2FkaW5nU3Bpbm5lckRpcmVjdGl2ZSA9IGluamVjdChMb2FkaW5nU3Bpbm5lckRpcmVjdGl2ZSwgeyBzZWxmOiB0cnVlIH0pO1xuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8tb3V0cHV0LXJlbmFtZVxuICBAT3V0cHV0KCdvZHhBdXRoU2lnbk91dCcpXG4gIHB1YmxpYyBhZnRlclNpZ25PdXQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMubG9hZGluZ1NwaW5uZXJEaXJlY3RpdmUuYXV0b0NvbG9yID0gdHJ1ZTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJylcbiAgcHJvdGVjdGVkIGFzeW5jIHNpZ25JbigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLmxvYWRpbmdTcGlubmVyRGlyZWN0aXZlLmlzTG9hZGluZyA9IHRydWU7XG4gICAgYXdhaXQgdGhpcy5hdXRoU2VydmljZS5zaWduT3V0KCk7XG4gICAgdGhpcy5hZnRlclNpZ25PdXQuZW1pdCgpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,12 @@
1
+ export function getUserInitials(user) {
2
+ if (!user?.name)
3
+ return '';
4
+ const names = user.name.trim().split(' ');
5
+ return names.reduce((initials, curr, index) => {
6
+ if (index === 0 || index === names.length - 1) {
7
+ initials = `${initials}${curr.charAt(0).toUpperCase()}`;
8
+ }
9
+ return initials;
10
+ }, '');
11
+ }
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LXVzZXItaW5pdGlhbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2F1dGgvc3JjL2xpYi9oZWxwZXJzL2dldC11c2VyLWluaXRpYWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sVUFBVSxlQUFlLENBQUMsSUFBa0I7SUFDaEQsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJO1FBQUUsT0FBTyxFQUFFLENBQUM7SUFDM0IsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFMUMsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRTtRQUM1QyxJQUFJLEtBQUssS0FBSyxDQUFDLElBQUksS0FBSyxLQUFLLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQzdDLFFBQVEsR0FBRyxHQUFHLFFBQVEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7U0FDekQ7UUFDRCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDVCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVXNlciB9IGZyb20gJy4uL21vZGVscyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRVc2VySW5pdGlhbHModXNlcj86IFVzZXIgfCBudWxsKTogc3RyaW5nIHtcbiAgaWYgKCF1c2VyPy5uYW1lKSByZXR1cm4gJyc7XG4gIGNvbnN0IG5hbWVzID0gdXNlci5uYW1lLnRyaW0oKS5zcGxpdCgnICcpO1xuXG4gIHJldHVybiBuYW1lcy5yZWR1Y2UoKGluaXRpYWxzLCBjdXJyLCBpbmRleCkgPT4ge1xuICAgIGlmIChpbmRleCA9PT0gMCB8fCBpbmRleCA9PT0gbmFtZXMubGVuZ3RoIC0gMSkge1xuICAgICAgaW5pdGlhbHMgPSBgJHtpbml0aWFsc30ke2N1cnIuY2hhckF0KDApLnRvVXBwZXJDYXNlKCl9YDtcbiAgICB9XG4gICAgcmV0dXJuIGluaXRpYWxzO1xuICB9LCAnJyk7XG59XG4iXX0=
@@ -0,0 +1,3 @@
1
+ export * from './get-user-initials';
2
+ export * from './resolve-issuer';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2F1dGgvc3JjL2xpYi9oZWxwZXJzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxrQkFBa0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZ2V0LXVzZXItaW5pdGlhbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9yZXNvbHZlLWlzc3Vlcic7XG4iXX0=
@@ -0,0 +1,13 @@
1
+ export function resolveIssuer(environment, issuerOverride) {
2
+ if (issuerOverride)
3
+ return issuerOverride;
4
+ switch (environment) {
5
+ case 'dev':
6
+ return 'https://dev.login.draeger.com/oauth2/default';
7
+ case 'stage':
8
+ return 'https://test.login.draeger.com/oauth2/default';
9
+ default:
10
+ return 'https://login.draeger.com/oauth2/default';
11
+ }
12
+ }
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x2ZS1pc3N1ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2F1dGgvc3JjL2xpYi9oZWxwZXJzL3Jlc29sdmUtaXNzdWVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sVUFBVSxhQUFhLENBQUMsV0FBNEIsRUFBRSxjQUE4QjtJQUN4RixJQUFJLGNBQWM7UUFBRSxPQUFPLGNBQWMsQ0FBQztJQUMxQyxRQUFRLFdBQVcsRUFBRTtRQUNuQixLQUFLLEtBQUs7WUFDUixPQUFPLDhDQUE4QyxDQUFDO1FBQ3hELEtBQUssT0FBTztZQUNWLE9BQU8sK0NBQStDLENBQUM7UUFDekQ7WUFDRSxPQUFPLDBDQUEwQyxDQUFDO0tBQ3JEO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEF1dGhFbnZpcm9ubWVudCB9IGZyb20gJy4uL21vZGVscyc7XG5cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlSXNzdWVyKGVudmlyb25tZW50OiBBdXRoRW52aXJvbm1lbnQsIGlzc3Vlck92ZXJyaWRlPzogc3RyaW5nIHwgbnVsbCk6IHN0cmluZyB7XG4gIGlmIChpc3N1ZXJPdmVycmlkZSkgcmV0dXJuIGlzc3Vlck92ZXJyaWRlO1xuICBzd2l0Y2ggKGVudmlyb25tZW50KSB7XG4gICAgY2FzZSAnZGV2JzpcbiAgICAgIHJldHVybiAnaHR0cHM6Ly9kZXYubG9naW4uZHJhZWdlci5jb20vb2F1dGgyL2RlZmF1bHQnO1xuICAgIGNhc2UgJ3N0YWdlJzpcbiAgICAgIHJldHVybiAnaHR0cHM6Ly90ZXN0LmxvZ2luLmRyYWVnZXIuY29tL29hdXRoMi9kZWZhdWx0JztcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuICdodHRwczovL2xvZ2luLmRyYWVnZXIuY29tL29hdXRoMi9kZWZhdWx0JztcbiAgfVxufVxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1lbnZpcm9ubWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXV0aC9zcmMvbGliL21vZGVscy9hdXRoLWVudmlyb25tZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBBdXRoRW52aXJvbm1lbnQgPSAnZGV2JyB8ICdzdGFnZScgfCAncHJvZCc7XG4iXX0=
@@ -0,0 +1,3 @@
1
+ export * from './auth-environment';
2
+ export * from './user';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2F1dGgvc3JjL2xpYi9tb2RlbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYXV0aC1lbnZpcm9ubWVudCc7XG5leHBvcnQgKiBmcm9tICcuL3VzZXInO1xuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXV0aC9zcmMvbGliL21vZGVscy91c2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBVc2VyQ2xhaW1zIH0gZnJvbSAnQG9rdGEvb2t0YS1hdXRoLWpzJztcblxuZXhwb3J0IHR5cGUgVXNlciA9IFVzZXJDbGFpbXM8eyBlbWFpbF9hZGRyZXNzPzogc3RyaW5nIH0+O1xuIl19
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2R4LWF1dGguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL2F1dGgvc3JjL29keC1hdXRoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19