@cleavelandprice/ngx-lib 3.0.10 → 3.1.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 (127) hide show
  1. package/active-directory/services/active-directory.service.d.ts +2 -2
  2. package/authentication/authentication.module.d.ts +3 -16
  3. package/authentication/model/abstract-authentication-service.d.ts +14 -0
  4. package/authentication/model/service-config.d.ts +1 -0
  5. package/authentication/object/authentication-object.module.d.ts +11 -0
  6. package/authentication/object/index.d.ts +5 -0
  7. package/authentication/object/model/default-config.d.ts +2 -0
  8. package/authentication/object/model/service-config.d.ts +3 -0
  9. package/authentication/object/public_api.d.ts +4 -0
  10. package/authentication/object/services/authentication-object.service.d.ts +23 -0
  11. package/authentication/public_api.d.ts +1 -6
  12. package/authentication/token/authentication-token.module.d.ts +11 -0
  13. package/authentication/token/gui/authentication-token-gui.module.d.ts +20 -0
  14. package/authentication/{components → token/gui/components}/login/login.component.d.ts +3 -3
  15. package/authentication/{components → token/gui/components}/login-form/login-form.component.d.ts +3 -3
  16. package/authentication/token/gui/index.d.ts +5 -0
  17. package/authentication/token/gui/model/default-config.d.ts +2 -0
  18. package/authentication/{model → token/gui/model}/login-form-data.d.ts +0 -0
  19. package/authentication/token/gui/model/service-config.d.ts +3 -0
  20. package/authentication/token/gui/public_api.d.ts +7 -0
  21. package/authentication/token/gui/services/authentication-token-gui.service.d.ts +15 -0
  22. package/authentication/token/index.d.ts +5 -0
  23. package/authentication/{model → token/model}/authentication-token.d.ts +0 -0
  24. package/authentication/token/model/default-config.d.ts +2 -0
  25. package/authentication/token/model/service-config.d.ts +4 -0
  26. package/authentication/token/public_api.d.ts +5 -0
  27. package/authentication/token/services/authentication-token.service.d.ts +22 -0
  28. package/esm2020/active-directory/active-directory.module.mjs +5 -5
  29. package/esm2020/active-directory/services/active-directory.service.mjs +5 -7
  30. package/esm2020/authentication/authentication.module.mjs +10 -68
  31. package/esm2020/authentication/model/abstract-authentication-service.mjs +2 -0
  32. package/esm2020/authentication/model/service-config.mjs +1 -1
  33. package/esm2020/authentication/object/authentication-object.module.mjs +39 -0
  34. package/esm2020/authentication/object/cleavelandprice-ngx-lib-authentication-object.mjs +5 -0
  35. package/esm2020/authentication/object/model/default-config.mjs +5 -0
  36. package/esm2020/authentication/object/model/service-config.mjs +4 -0
  37. package/esm2020/authentication/object/public_api.mjs +5 -0
  38. package/esm2020/authentication/object/services/authentication-object.service.mjs +101 -0
  39. package/esm2020/authentication/public_api.mjs +2 -7
  40. package/esm2020/authentication/token/authentication-token.module.mjs +39 -0
  41. package/esm2020/authentication/token/cleavelandprice-ngx-lib-authentication-token.mjs +5 -0
  42. package/esm2020/authentication/token/gui/authentication-token-gui.module.mjs +77 -0
  43. package/esm2020/authentication/token/gui/cleavelandprice-ngx-lib-authentication-token-gui.mjs +5 -0
  44. package/esm2020/authentication/token/gui/components/login/login.component.mjs +39 -0
  45. package/esm2020/authentication/token/gui/components/login-form/login-form.component.mjs +60 -0
  46. package/esm2020/authentication/token/gui/model/default-config.mjs +6 -0
  47. package/esm2020/authentication/token/gui/model/login-form-data.mjs +2 -0
  48. package/esm2020/authentication/token/gui/model/service-config.mjs +4 -0
  49. package/esm2020/authentication/token/gui/public_api.mjs +8 -0
  50. package/esm2020/authentication/token/gui/services/authentication-token-gui.service.mjs +74 -0
  51. package/esm2020/authentication/token/model/authentication-token.mjs +2 -0
  52. package/esm2020/authentication/token/model/default-config.mjs +6 -0
  53. package/esm2020/authentication/token/model/service-config.mjs +4 -0
  54. package/esm2020/authentication/token/public_api.mjs +6 -0
  55. package/esm2020/authentication/token/services/authentication-token.service.mjs +112 -0
  56. package/esm2020/dialog/components/base/base.component.mjs +4 -4
  57. package/esm2020/dialog/components/choice/choice.component.mjs +4 -4
  58. package/esm2020/dialog/components/confirmation/confirmation.component.mjs +4 -4
  59. package/esm2020/dialog/components/input/input.component.mjs +4 -4
  60. package/esm2020/dialog/components/message/message.component.mjs +4 -4
  61. package/esm2020/dialog/dialog.module.mjs +4 -4
  62. package/esm2020/lib/ngx-lib.module.mjs +6 -6
  63. package/esm2020/lib/services/app-path-config.service.mjs +4 -4
  64. package/esm2020/public_api.mjs +2 -1
  65. package/esm2020/sharepoint/services/sharepoint.service.mjs +6 -8
  66. package/esm2020/sharepoint/sharepoint.module.mjs +11 -11
  67. package/esm2020/upload/components/upload/upload.component.mjs +5 -5
  68. package/esm2020/upload/components/upload-dialog/upload-dialog.component.mjs +5 -5
  69. package/esm2020/upload/services/upload.service.mjs +4 -4
  70. package/esm2020/upload/upload.module.mjs +7 -7
  71. package/esm2020/url-utilities/pipes/safe-resource-url.pipe.mjs +3 -3
  72. package/esm2020/url-utilities/pipes/safe-url.pipe.mjs +3 -3
  73. package/esm2020/url-utilities/pipes/uri-scheme.pipe.mjs +3 -3
  74. package/esm2020/url-utilities/url-utilities.module.mjs +4 -4
  75. package/fesm2015/cleavelandprice-ngx-lib-active-directory.mjs +7 -9
  76. package/fesm2015/cleavelandprice-ngx-lib-active-directory.mjs.map +1 -1
  77. package/fesm2015/cleavelandprice-ngx-lib-authentication-object.mjs +151 -0
  78. package/fesm2015/cleavelandprice-ngx-lib-authentication-object.mjs.map +1 -0
  79. package/fesm2015/cleavelandprice-ngx-lib-authentication-token-gui.mjs +251 -0
  80. package/fesm2015/cleavelandprice-ngx-lib-authentication-token-gui.mjs.map +1 -0
  81. package/fesm2015/cleavelandprice-ngx-lib-authentication-token.mjs +163 -0
  82. package/fesm2015/cleavelandprice-ngx-lib-authentication-token.mjs.map +1 -0
  83. package/fesm2015/cleavelandprice-ngx-lib-authentication.mjs +10 -282
  84. package/fesm2015/cleavelandprice-ngx-lib-authentication.mjs.map +1 -1
  85. package/fesm2015/cleavelandprice-ngx-lib-dialog.mjs +19 -19
  86. package/fesm2015/cleavelandprice-ngx-lib-dialog.mjs.map +1 -1
  87. package/fesm2015/cleavelandprice-ngx-lib-sharepoint.mjs +14 -16
  88. package/fesm2015/cleavelandprice-ngx-lib-sharepoint.mjs.map +1 -1
  89. package/fesm2015/cleavelandprice-ngx-lib-upload.mjs +15 -15
  90. package/fesm2015/cleavelandprice-ngx-lib-upload.mjs.map +1 -1
  91. package/fesm2015/cleavelandprice-ngx-lib-url-utilities.mjs +13 -13
  92. package/fesm2015/cleavelandprice-ngx-lib.mjs +11 -11
  93. package/fesm2015/cleavelandprice-ngx-lib.mjs.map +1 -1
  94. package/fesm2020/cleavelandprice-ngx-lib-active-directory.mjs +7 -9
  95. package/fesm2020/cleavelandprice-ngx-lib-active-directory.mjs.map +1 -1
  96. package/fesm2020/cleavelandprice-ngx-lib-authentication-object.mjs +150 -0
  97. package/fesm2020/cleavelandprice-ngx-lib-authentication-object.mjs.map +1 -0
  98. package/fesm2020/cleavelandprice-ngx-lib-authentication-token-gui.mjs +246 -0
  99. package/fesm2020/cleavelandprice-ngx-lib-authentication-token-gui.mjs.map +1 -0
  100. package/fesm2020/cleavelandprice-ngx-lib-authentication-token.mjs +162 -0
  101. package/fesm2020/cleavelandprice-ngx-lib-authentication-token.mjs.map +1 -0
  102. package/fesm2020/cleavelandprice-ngx-lib-authentication.mjs +10 -277
  103. package/fesm2020/cleavelandprice-ngx-lib-authentication.mjs.map +1 -1
  104. package/fesm2020/cleavelandprice-ngx-lib-dialog.mjs +19 -19
  105. package/fesm2020/cleavelandprice-ngx-lib-dialog.mjs.map +1 -1
  106. package/fesm2020/cleavelandprice-ngx-lib-sharepoint.mjs +14 -16
  107. package/fesm2020/cleavelandprice-ngx-lib-sharepoint.mjs.map +1 -1
  108. package/fesm2020/cleavelandprice-ngx-lib-upload.mjs +15 -15
  109. package/fesm2020/cleavelandprice-ngx-lib-upload.mjs.map +1 -1
  110. package/fesm2020/cleavelandprice-ngx-lib-url-utilities.mjs +13 -13
  111. package/fesm2020/cleavelandprice-ngx-lib.mjs +11 -11
  112. package/fesm2020/cleavelandprice-ngx-lib.mjs.map +1 -1
  113. package/package.json +28 -3
  114. package/public_api.d.ts +1 -0
  115. package/sharepoint/services/sharepoint.service.d.ts +3 -3
  116. package/sharepoint/sharepoint.module.d.ts +6 -6
  117. package/upload/components/upload/upload.component.d.ts +1 -1
  118. package/upload/components/upload-dialog/upload-dialog.component.d.ts +1 -1
  119. package/upload/services/upload.service.d.ts +2 -2
  120. package/authentication/model/default-config.d.ts +0 -2
  121. package/authentication/services/authentication.service.d.ts +0 -25
  122. package/esm2020/authentication/components/login/login.component.mjs +0 -39
  123. package/esm2020/authentication/components/login-form/login-form.component.mjs +0 -60
  124. package/esm2020/authentication/model/authentication-token.mjs +0 -2
  125. package/esm2020/authentication/model/default-config.mjs +0 -4
  126. package/esm2020/authentication/model/login-form-data.mjs +0 -2
  127. package/esm2020/authentication/services/authentication.service.mjs +0 -126
@@ -1,10 +1,10 @@
1
1
  import { HttpClient } from '@angular/common/http';
2
2
  import { Observable } from 'rxjs';
3
- import { ServiceConfig } from '../model/service-config';
4
- import { User } from '../model/user';
5
3
  import { ADObject } from '../model/ad-object';
6
4
  import { ADObjectWithChildren } from '../model/ad-object-with-children';
7
5
  import { Group } from '../model/group';
6
+ import { ServiceConfig } from '../model/service-config';
7
+ import { User } from '../model/user';
8
8
  import * as i0 from "@angular/core";
9
9
  export declare class ActiveDirectoryService {
10
10
  private config;
@@ -1,20 +1,7 @@
1
- import { ModuleWithProviders } from '@angular/core';
2
- import { ServiceConfig } from './model/service-config';
3
1
  import * as i0 from "@angular/core";
4
- import * as i1 from "./components/login/login.component";
5
- import * as i2 from "./components/login-form/login-form.component";
6
- import * as i3 from "@angular/common";
7
- import * as i4 from "@angular/forms";
8
- import * as i5 from "@angular/material/button";
9
- import * as i6 from "@angular/material/dialog";
10
- import * as i7 from "@angular/material/form-field";
11
- import * as i8 from "@angular/material/icon";
12
- import * as i9 from "@angular/material/input";
13
- import * as i10 from "@angular/material/progress-spinner";
2
+ import * as i1 from "@angular/common";
14
3
  export declare class AuthenticationModule {
15
- static forRoot(config: ServiceConfig): ModuleWithProviders<AuthenticationModule>;
16
- constructor(parentModule: AuthenticationModule);
17
- static ɵfac: i0.ɵɵFactoryDeclaration<AuthenticationModule, [{ optional: true; skipSelf: true; }]>;
18
- static ɵmod: i0.ɵɵNgModuleDeclaration<AuthenticationModule, [typeof i1.LoginComponent, typeof i2.LoginFormComponent], [typeof i3.CommonModule, typeof i4.ReactiveFormsModule, typeof i5.MatButtonModule, typeof i6.MatDialogModule, typeof i7.MatFormFieldModule, typeof i8.MatIconModule, typeof i9.MatInputModule, typeof i10.MatProgressSpinnerModule], [typeof i1.LoginComponent, typeof i2.LoginFormComponent]>;
4
+ static ɵfac: i0.ɵɵFactoryDeclaration<AuthenticationModule, never>;
5
+ static ɵmod: i0.ɵɵNgModuleDeclaration<AuthenticationModule, never, [typeof i1.CommonModule], never>;
19
6
  static ɵinj: i0.ɵɵInjectorDeclaration<AuthenticationModule>;
20
7
  }
@@ -0,0 +1,14 @@
1
+ import { EventEmitter } from "@angular/core";
2
+ import { AuthenticatedUser } from "./authenticated-user";
3
+ export interface AbstractAuthenticationService {
4
+ authenticatedChanged: EventEmitter<boolean>;
5
+ authenticatingChanged: EventEmitter<boolean>;
6
+ authenticationError: EventEmitter<any>;
7
+ authenticating: boolean;
8
+ authenticated: boolean;
9
+ authenticatedUser: AuthenticatedUser | null;
10
+ login: Function;
11
+ logout: Function;
12
+ validateUser: Function;
13
+ checkForExistingToken: Function;
14
+ }
@@ -1,3 +1,4 @@
1
1
  export declare class ServiceConfig {
2
2
  apiUrl: string;
3
+ tokenName: string;
3
4
  }
@@ -0,0 +1,11 @@
1
+ import { ModuleWithProviders } from '@angular/core';
2
+ import { ServiceConfig } from './model/service-config';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common";
5
+ export declare class AuthenticationObjectModule {
6
+ static forRoot(config: ServiceConfig): ModuleWithProviders<AuthenticationObjectModule>;
7
+ constructor(parentModule: AuthenticationObjectModule);
8
+ static ɵfac: i0.ɵɵFactoryDeclaration<AuthenticationObjectModule, [{ optional: true; skipSelf: true; }]>;
9
+ static ɵmod: i0.ɵɵNgModuleDeclaration<AuthenticationObjectModule, never, [typeof i1.CommonModule], never>;
10
+ static ɵinj: i0.ɵɵInjectorDeclaration<AuthenticationObjectModule>;
11
+ }
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="@cleavelandprice/ngx-lib/authentication/object" />
5
+ export * from './public_api';
@@ -0,0 +1,2 @@
1
+ import { ServiceConfig } from './service-config';
2
+ export declare const defaultConfig: ServiceConfig;
@@ -0,0 +1,3 @@
1
+ import { ServiceConfig as BaseServiceConfig } from '@cleavelandprice/ngx-lib/authentication';
2
+ export declare class ServiceConfig extends BaseServiceConfig {
3
+ }
@@ -0,0 +1,4 @@
1
+ export * from './model/default-config';
2
+ export * from './model/service-config';
3
+ export * from './services/authentication-object.service';
4
+ export * from './authentication-object.module';
@@ -0,0 +1,23 @@
1
+ import { EventEmitter } from '@angular/core';
2
+ import { HttpClient } from '@angular/common/http';
3
+ import { User } from '@cleavelandprice/ngx-lib/active-directory';
4
+ import { AbstractAuthenticationService, AuthenticatedUser } from '@cleavelandprice/ngx-lib/authentication';
5
+ import { ServiceConfig } from '../model/service-config';
6
+ import * as i0 from "@angular/core";
7
+ export declare class AuthenticationObjectService implements AbstractAuthenticationService {
8
+ private config;
9
+ private http;
10
+ authenticatedChanged: EventEmitter<boolean>;
11
+ authenticatingChanged: EventEmitter<boolean>;
12
+ authenticationError: EventEmitter<any>;
13
+ authenticating: boolean;
14
+ authenticated: boolean;
15
+ authenticatedUser: AuthenticatedUser | null;
16
+ constructor(config: ServiceConfig, http: HttpClient);
17
+ login(username: string, password: string, adminGroup?: string): void;
18
+ logout(): void;
19
+ validateUser(token: User): void;
20
+ checkForExistingToken(): void;
21
+ static ɵfac: i0.ɵɵFactoryDeclaration<AuthenticationObjectService, [{ optional: true; }, null]>;
22
+ static ɵprov: i0.ɵɵInjectableDeclaration<AuthenticationObjectService>;
23
+ }
@@ -1,10 +1,5 @@
1
+ export * from './model/abstract-authentication-service';
1
2
  export * from './model/authenticated-user';
2
3
  export * from './model/authentication-request';
3
- export * from './model/authentication-token';
4
- export * from './model/default-config';
5
- export * from './model/login-form-data';
6
4
  export * from './model/service-config';
7
- export * from './components/login/login.component';
8
- export * from './components/login-form/login-form.component';
9
- export * from './services/authentication.service';
10
5
  export * from './authentication.module';
@@ -0,0 +1,11 @@
1
+ import { ModuleWithProviders } from '@angular/core';
2
+ import { ServiceConfig } from './model/service-config';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common";
5
+ export declare class AuthenticationTokenModule {
6
+ static forRoot(config: ServiceConfig): ModuleWithProviders<AuthenticationTokenModule>;
7
+ constructor(parentModule: AuthenticationTokenModule);
8
+ static ɵfac: i0.ɵɵFactoryDeclaration<AuthenticationTokenModule, [{ optional: true; skipSelf: true; }]>;
9
+ static ɵmod: i0.ɵɵNgModuleDeclaration<AuthenticationTokenModule, never, [typeof i1.CommonModule], never>;
10
+ static ɵinj: i0.ɵɵInjectorDeclaration<AuthenticationTokenModule>;
11
+ }
@@ -0,0 +1,20 @@
1
+ import { ModuleWithProviders } from '@angular/core';
2
+ import { ServiceConfig } from './model/service-config';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "./components/login/login.component";
5
+ import * as i2 from "./components/login-form/login-form.component";
6
+ import * as i3 from "@angular/common";
7
+ import * as i4 from "@angular/forms";
8
+ import * as i5 from "@angular/material/button";
9
+ import * as i6 from "@angular/material/dialog";
10
+ import * as i7 from "@angular/material/form-field";
11
+ import * as i8 from "@angular/material/icon";
12
+ import * as i9 from "@angular/material/input";
13
+ import * as i10 from "@angular/material/progress-spinner";
14
+ export declare class AuthenticationTokenGuiModule {
15
+ static forRoot(config: ServiceConfig): ModuleWithProviders<AuthenticationTokenGuiModule>;
16
+ constructor(parentModule: AuthenticationTokenGuiModule);
17
+ static ɵfac: i0.ɵɵFactoryDeclaration<AuthenticationTokenGuiModule, [{ optional: true; skipSelf: true; }]>;
18
+ static ɵmod: i0.ɵɵNgModuleDeclaration<AuthenticationTokenGuiModule, [typeof i1.LoginComponent, typeof i2.LoginFormComponent], [typeof i3.CommonModule, typeof i4.ReactiveFormsModule, typeof i5.MatButtonModule, typeof i6.MatDialogModule, typeof i7.MatFormFieldModule, typeof i8.MatIconModule, typeof i9.MatInputModule, typeof i10.MatProgressSpinnerModule], [typeof i1.LoginComponent, typeof i2.LoginFormComponent]>;
19
+ static ɵinj: i0.ɵɵInjectorDeclaration<AuthenticationTokenGuiModule>;
20
+ }
@@ -1,11 +1,11 @@
1
1
  import { MatDialog } from '@angular/material/dialog';
2
- import { AuthenticationService } from '../../services/authentication.service';
2
+ import { AuthenticationTokenGuiService } from '../../services/authentication-token-gui.service';
3
3
  import * as i0 from "@angular/core";
4
4
  export declare class LoginComponent {
5
5
  private dialog;
6
- authenticationService: AuthenticationService;
6
+ authenticationService: AuthenticationTokenGuiService;
7
7
  adminGroup: string;
8
- constructor(dialog: MatDialog, authenticationService: AuthenticationService);
8
+ constructor(dialog: MatDialog, authenticationService: AuthenticationTokenGuiService);
9
9
  login(): void;
10
10
  confirmLogout(): void;
11
11
  static ɵfac: i0.ɵɵFactoryDeclaration<LoginComponent, never>;
@@ -2,17 +2,17 @@ import { OnInit, OnDestroy } from '@angular/core';
2
2
  import { UntypedFormGroup } from '@angular/forms';
3
3
  import { MatDialogRef } from '@angular/material/dialog';
4
4
  import { Subscription } from 'rxjs';
5
- import { AuthenticationService } from '../../services/authentication.service';
6
5
  import { LoginFormData } from '../../model/login-form-data';
6
+ import { AuthenticationTokenGuiService } from '../../services/authentication-token-gui.service';
7
7
  import * as i0 from "@angular/core";
8
8
  export declare class LoginFormComponent implements OnInit, OnDestroy {
9
9
  dialogRef: MatDialogRef<LoginFormComponent>;
10
- authenticationService: AuthenticationService;
10
+ authenticationService: AuthenticationTokenGuiService;
11
11
  errorMessage: string | null;
12
12
  authenticatedChangedSubscription: Subscription;
13
13
  authenticationErrorSubscription: Subscription;
14
14
  form: UntypedFormGroup;
15
- constructor(data: LoginFormData, dialogRef: MatDialogRef<LoginFormComponent>, authenticationService: AuthenticationService);
15
+ constructor(data: LoginFormData, dialogRef: MatDialogRef<LoginFormComponent>, authenticationService: AuthenticationTokenGuiService);
16
16
  ngOnInit(): void;
17
17
  ngOnDestroy(): void;
18
18
  authenticate(): void;
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="@cleavelandprice/ngx-lib/authentication/token/gui" />
5
+ export * from './public_api';
@@ -0,0 +1,2 @@
1
+ import { ServiceConfig } from '@cleavelandprice/ngx-lib/authentication/token';
2
+ export declare const defaultConfig: ServiceConfig;
@@ -0,0 +1,3 @@
1
+ import { ServiceConfig as BaseServiceConfig } from '@cleavelandprice/ngx-lib/authentication/token';
2
+ export declare class ServiceConfig extends BaseServiceConfig {
3
+ }
@@ -0,0 +1,7 @@
1
+ export * from './model/default-config';
2
+ export * from './model/login-form-data';
3
+ export * from './model/service-config';
4
+ export * from './services/authentication-token-gui.service';
5
+ export * from './components/login/login.component';
6
+ export * from './components/login-form/login-form.component';
7
+ export * from './authentication-token-gui.module';
@@ -0,0 +1,15 @@
1
+ import { HttpClient } from '@angular/common/http';
2
+ import { SharePointService } from '@cleavelandprice/ngx-lib/sharepoint';
3
+ import { AuthenticationTokenService } from '@cleavelandprice/ngx-lib/authentication/token';
4
+ import { ServiceConfig } from '../model/service-config';
5
+ import * as i0 from "@angular/core";
6
+ export declare class AuthenticationTokenGuiService extends AuthenticationTokenService {
7
+ config: ServiceConfig;
8
+ http: HttpClient;
9
+ private sharePointService;
10
+ constructor(config: ServiceConfig, http: HttpClient, sharePointService: SharePointService);
11
+ validateUser(token: string): void;
12
+ private getPhoto;
13
+ static ɵfac: i0.ɵɵFactoryDeclaration<AuthenticationTokenGuiService, [{ optional: true; }, null, null]>;
14
+ static ɵprov: i0.ɵɵInjectableDeclaration<AuthenticationTokenGuiService>;
15
+ }
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="@cleavelandprice/ngx-lib/authentication/token" />
5
+ export * from './public_api';
@@ -0,0 +1,2 @@
1
+ import { ServiceConfig } from './service-config';
2
+ export declare const defaultConfig: ServiceConfig;
@@ -0,0 +1,4 @@
1
+ import { ServiceConfig as BaseServiceConfig } from '@cleavelandprice/ngx-lib/authentication';
2
+ export declare class ServiceConfig extends BaseServiceConfig {
3
+ deferTokenValidation: boolean;
4
+ }
@@ -0,0 +1,5 @@
1
+ export * from './model/authentication-token';
2
+ export * from './model/default-config';
3
+ export * from './model/service-config';
4
+ export * from './services/authentication-token.service';
5
+ export * from './authentication-token.module';
@@ -0,0 +1,22 @@
1
+ import { EventEmitter } from '@angular/core';
2
+ import { HttpClient } from '@angular/common/http';
3
+ import { AbstractAuthenticationService, AuthenticatedUser } from '@cleavelandprice/ngx-lib/authentication';
4
+ import { ServiceConfig } from '../model/service-config';
5
+ import * as i0 from "@angular/core";
6
+ export declare class AuthenticationTokenService implements AbstractAuthenticationService {
7
+ protected config: ServiceConfig;
8
+ protected http: HttpClient;
9
+ authenticatedChanged: EventEmitter<boolean>;
10
+ authenticatingChanged: EventEmitter<boolean>;
11
+ authenticationError: EventEmitter<any>;
12
+ authenticating: boolean;
13
+ authenticated: boolean;
14
+ authenticatedUser: AuthenticatedUser | null;
15
+ constructor(config: ServiceConfig, http: HttpClient);
16
+ login(username: string, password: string, adminGroup?: string): void;
17
+ logout(): void;
18
+ validateUser(token: string): void;
19
+ checkForExistingToken(): void;
20
+ static ɵfac: i0.ɵɵFactoryDeclaration<AuthenticationTokenService, [{ optional: true; }, null]>;
21
+ static ɵprov: i0.ɵɵInjectableDeclaration<AuthenticationTokenService>;
22
+ }
@@ -19,10 +19,10 @@ export class ActiveDirectoryModule {
19
19
  };
20
20
  }
21
21
  }
22
- ActiveDirectoryModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: ActiveDirectoryModule, deps: [{ token: ActiveDirectoryModule, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.NgModule });
23
- ActiveDirectoryModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.0", ngImport: i0, type: ActiveDirectoryModule, imports: [CommonModule] });
24
- ActiveDirectoryModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: ActiveDirectoryModule, imports: [CommonModule] });
25
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: ActiveDirectoryModule, decorators: [{
22
+ ActiveDirectoryModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: ActiveDirectoryModule, deps: [{ token: ActiveDirectoryModule, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.NgModule });
23
+ ActiveDirectoryModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.1", ngImport: i0, type: ActiveDirectoryModule, imports: [CommonModule] });
24
+ ActiveDirectoryModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: ActiveDirectoryModule, imports: [CommonModule] });
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: ActiveDirectoryModule, decorators: [{
26
26
  type: NgModule,
27
27
  args: [{
28
28
  declarations: [],
@@ -35,4 +35,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImpor
35
35
  }, {
36
36
  type: SkipSelf
37
37
  }] }]; } });
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZlLWRpcmVjdG9yeS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGVhdmVsYW5kcHJpY2Uvbmd4LWxpYi9hY3RpdmUtZGlyZWN0b3J5L3NyYy9hY3RpdmUtZGlyZWN0b3J5Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXVCLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0scUNBQXFDLENBQUM7O0FBUTdFLE1BQU0sT0FBTyxxQkFBcUI7SUFXaEMsWUFBcUMsWUFBbUM7UUFDdEUsSUFBSSxZQUFZLEVBQUU7WUFDaEIsTUFBTSxJQUFJLEtBQUssQ0FDYiwwRUFBMEUsQ0FBQyxDQUFDO1NBQy9FO0lBQ0gsQ0FBQztJQWZELE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBcUI7UUFDbEMsT0FBTztZQUNMLFFBQVEsRUFBRSxxQkFBcUI7WUFDL0IsU0FBUyxFQUFFO2dCQUNULHNCQUFzQjtnQkFDdEIsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUU7YUFDN0M7U0FDRixDQUFDO0lBQ0osQ0FBQzs7a0hBVFUscUJBQXFCLGtCQVdtQixxQkFBcUI7bUhBWDdELHFCQUFxQixZQUg5QixZQUFZO21IQUdILHFCQUFxQixZQUg5QixZQUFZOzJGQUdILHFCQUFxQjtrQkFOakMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsRUFBRTtvQkFDaEIsT0FBTyxFQUFFO3dCQUNQLFlBQVk7cUJBQ2I7aUJBQ0Y7MERBWW9ELHFCQUFxQjswQkFBMUQsUUFBUTs7MEJBQUksUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlLCBPcHRpb25hbCwgU2tpcFNlbGYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBTZXJ2aWNlQ29uZmlnIH0gZnJvbSAnLi9tb2RlbC9zZXJ2aWNlLWNvbmZpZyc7XG5pbXBvcnQgeyBBY3RpdmVEaXJlY3RvcnlTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9hY3RpdmUtZGlyZWN0b3J5LnNlcnZpY2UnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgQWN0aXZlRGlyZWN0b3J5TW9kdWxlIHtcbiAgc3RhdGljIGZvclJvb3QoY29uZmlnOiBTZXJ2aWNlQ29uZmlnKTogTW9kdWxlV2l0aFByb3ZpZGVyczxBY3RpdmVEaXJlY3RvcnlNb2R1bGU+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IEFjdGl2ZURpcmVjdG9yeU1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICBBY3RpdmVEaXJlY3RvcnlTZXJ2aWNlLFxuICAgICAgICB7IHByb3ZpZGU6IFNlcnZpY2VDb25maWcsIHVzZVZhbHVlOiBjb25maWcgfVxuICAgICAgXVxuICAgIH07XG4gIH1cblxuICBjb25zdHJ1Y3RvciggQE9wdGlvbmFsKCkgQFNraXBTZWxmKCkgcGFyZW50TW9kdWxlOiBBY3RpdmVEaXJlY3RvcnlNb2R1bGUpIHtcbiAgICBpZiAocGFyZW50TW9kdWxlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdBY3RpdmVEaXJlY3RvcnlNb2R1bGUgaXMgYWxyZWFkeSBsb2FkZWQuIEltcG9ydCBpdCBpbiB0aGUgQXBwTW9kdWxlIG9ubHknKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZlLWRpcmVjdG9yeS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGVhdmVsYW5kcHJpY2Uvbmd4LWxpYi9hY3RpdmUtZGlyZWN0b3J5L3NyYy9hY3RpdmUtZGlyZWN0b3J5Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXVCLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFdkQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0scUNBQXFDLENBQUM7O0FBUTdFLE1BQU0sT0FBTyxxQkFBcUI7SUFXaEMsWUFBb0MsWUFBbUM7UUFDckUsSUFBSSxZQUFZLEVBQUU7WUFDaEIsTUFBTSxJQUFJLEtBQUssQ0FDYiwwRUFBMEUsQ0FBQyxDQUFDO1NBQy9FO0lBQ0gsQ0FBQztJQWZELE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBcUI7UUFDbEMsT0FBTztZQUNMLFFBQVEsRUFBRSxxQkFBcUI7WUFDL0IsU0FBUyxFQUFFO2dCQUNULHNCQUFzQjtnQkFDdEIsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUU7YUFDN0M7U0FDRixDQUFDO0lBQ0osQ0FBQzs7a0hBVFUscUJBQXFCO21IQUFyQixxQkFBcUIsWUFIOUIsWUFBWTttSEFHSCxxQkFBcUIsWUFIOUIsWUFBWTsyRkFHSCxxQkFBcUI7a0JBTmpDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLEVBQUU7b0JBQ2hCLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3FCQUNiO2lCQUNGOzswQkFZYyxRQUFROzswQkFBSSxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUsIE9wdGlvbmFsLCBTa2lwU2VsZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5cclxuaW1wb3J0IHsgU2VydmljZUNvbmZpZyB9IGZyb20gJy4vbW9kZWwvc2VydmljZS1jb25maWcnO1xyXG5cclxuaW1wb3J0IHsgQWN0aXZlRGlyZWN0b3J5U2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvYWN0aXZlLWRpcmVjdG9yeS5zZXJ2aWNlJztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbXSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGVcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBY3RpdmVEaXJlY3RvcnlNb2R1bGUge1xyXG4gIHN0YXRpYyBmb3JSb290KGNvbmZpZzogU2VydmljZUNvbmZpZyk6IE1vZHVsZVdpdGhQcm92aWRlcnM8QWN0aXZlRGlyZWN0b3J5TW9kdWxlPiB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBuZ01vZHVsZTogQWN0aXZlRGlyZWN0b3J5TW9kdWxlLFxyXG4gICAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICBBY3RpdmVEaXJlY3RvcnlTZXJ2aWNlLFxyXG4gICAgICAgIHsgcHJvdmlkZTogU2VydmljZUNvbmZpZywgdXNlVmFsdWU6IGNvbmZpZyB9XHJcbiAgICAgIF1cclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBAU2tpcFNlbGYoKSBwYXJlbnRNb2R1bGU6IEFjdGl2ZURpcmVjdG9yeU1vZHVsZSkge1xyXG4gICAgaWYgKHBhcmVudE1vZHVsZSkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXHJcbiAgICAgICAgJ0FjdGl2ZURpcmVjdG9yeU1vZHVsZSBpcyBhbHJlYWR5IGxvYWRlZC4gSW1wb3J0IGl0IGluIHRoZSBBcHBNb2R1bGUgb25seScpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,14 +1,12 @@
1
- //#region Imports
2
1
  import { Injectable, Optional } from '@angular/core';
3
2
  import { of } from 'rxjs';
3
+ import moment from 'moment';
4
4
  import { defaultConfig } from '../model/default-config';
5
5
  import { defaultCachingConfig } from '../model/default-caching-config';
6
6
  import { defaultLoggingConfig } from '../model/default-logging-config';
7
- import moment from 'moment';
8
7
  import * as i0 from "@angular/core";
9
8
  import * as i1 from "../model/service-config";
10
9
  import * as i2 from "@angular/common/http";
11
- //#endregion
12
10
  export class ActiveDirectoryService {
13
11
  //#endregion
14
12
  //#region Initialization
@@ -115,9 +113,9 @@ export class ActiveDirectoryService {
115
113
  return this.http.get(`${this.config.apiUrl}/activedirectory/workstations/${includeDisabled}/${parentOU}`);
116
114
  }
117
115
  }
118
- ActiveDirectoryService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: ActiveDirectoryService, deps: [{ token: i1.ServiceConfig, optional: true }, { token: i2.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
119
- ActiveDirectoryService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: ActiveDirectoryService, providedIn: 'root' });
120
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: ActiveDirectoryService, decorators: [{
116
+ ActiveDirectoryService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: ActiveDirectoryService, deps: [{ token: i1.ServiceConfig, optional: true }, { token: i2.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
117
+ ActiveDirectoryService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: ActiveDirectoryService, providedIn: 'root' });
118
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: ActiveDirectoryService, decorators: [{
121
119
  type: Injectable,
122
120
  args: [{
123
121
  providedIn: 'root'
@@ -125,4 +123,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImpor
125
123
  }], ctorParameters: function () { return [{ type: i1.ServiceConfig, decorators: [{
126
124
  type: Optional
127
125
  }] }, { type: i2.HttpClient }]; } });
128
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZlLWRpcmVjdG9yeS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xlYXZlbGFuZHByaWNlL25neC1saWIvYWN0aXZlLWRpcmVjdG9yeS9zcmMvc2VydmljZXMvYWN0aXZlLWRpcmVjdG9yeS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGlCQUFpQjtBQUNqQixPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVyRCxPQUFPLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXRDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQU12RSxPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7Ozs7QUFJNUIsWUFBWTtBQUtaLE1BQU0sT0FBTyxzQkFBc0I7SUFnQmpDLFlBQVk7SUFFWix3QkFBd0I7SUFDeEIsbUlBQW1JO0lBQ25JLFlBQWdDLE1BQXFCLEVBQ2pDLElBQWdCO1FBREosV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUNqQyxTQUFJLEdBQUosSUFBSSxDQUFZO1FBcEI1QixVQUFLLEdBQTZCLElBQUksQ0FBQztRQUN2Qyw0QkFBdUIsR0FBRyxHQUFHLENBQUM7UUFxQnhCLElBQUksQ0FBQyxNQUFNLEdBQUc7WUFDWixHQUFHLGFBQWE7WUFDaEIsR0FBRyxJQUFJLENBQUMsTUFBTTtTQUNmLENBQUM7UUFFRixJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRztZQUNwQixHQUFHLG9CQUFvQjtZQUN2QixHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTztTQUN2QixDQUFDO1FBRUYsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEdB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R0FBRyxDQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLDhCQUE4QixlQUFlLElBQUksUUFBUSxFQUFFLENBQUMsQ0FBQztJQUNqSCxDQUFDO0lBRUQsVUFBVSxDQUFDLGVBQWUsR0FBRyxLQUFLLEVBQUUsUUFBUSxHQUFHLEVBQUU7UUFDL0MsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSw0QkFBNEIsZUFBZSxJQUFJLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDL0csQ0FBQztJQUVELGVBQWUsQ0FBQyxlQUFlLEdBQUcsS0FBSyxFQUFFLFFBQVEsR0FBRyxFQUFFO1FBQ3BELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0saUNBQWlDLGVBQWUsSUFBSSxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQ3BILENBQUM7O21IQWpJVSxzQkFBc0I7dUhBQXRCLHNCQUFzQixjQUZyQixNQUFNOzJGQUVQLHNCQUFzQjtrQkFIbEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQXFCYyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiLy8jcmVnaW9uIEltcG9ydHNcbmltcG9ydCB7IEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgZGVmYXVsdENvbmZpZyB9IGZyb20gJy4uL21vZGVsL2RlZmF1bHQtY29uZmlnJztcbmltcG9ydCB7IGRlZmF1bHRDYWNoaW5nQ29uZmlnIH0gZnJvbSAnLi4vbW9kZWwvZGVmYXVsdC1jYWNoaW5nLWNvbmZpZyc7XG5pbXBvcnQgeyBkZWZhdWx0TG9nZ2luZ0NvbmZpZyB9IGZyb20gJy4uL21vZGVsL2RlZmF1bHQtbG9nZ2luZy1jb25maWcnO1xuXG5pbXBvcnQgeyBDYWNoZU9iamVjdCB9IGZyb20gJy4uL21vZGVsL2NhY2hlLW9iamVjdCc7XG5pbXBvcnQgeyBTZXJ2aWNlQ29uZmlnIH0gZnJvbSAnLi4vbW9kZWwvc2VydmljZS1jb25maWcnO1xuaW1wb3J0IHsgVXNlciB9IGZyb20gJy4uL21vZGVsL3VzZXInO1xuXG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XG5pbXBvcnQgeyBBRE9iamVjdCB9IGZyb20gJy4uL21vZGVsL2FkLW9iamVjdCc7XG5pbXBvcnQgeyBBRE9iamVjdFdpdGhDaGlsZHJlbiB9IGZyb20gJy4uL21vZGVsL2FkLW9iamVjdC13aXRoLWNoaWxkcmVuJztcbmltcG9ydCB7IEdyb3VwIH0gZnJvbSAnLi4vbW9kZWwvZ3JvdXAnO1xuLy8jZW5kcmVnaW9uXG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEFjdGl2ZURpcmVjdG9yeVNlcnZpY2Uge1xuICBwcml2YXRlIGNhY2hlOiBDYWNoZU9iamVjdDxVc2VyPiB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIGRlZmF1bHRDYWNoZUxpZmVNaW51dGVzID0gNzIwO1xuXG4gIC8vI3JlZ2lvbiBQcm9wZXJ0aWVzXG4gIHByaXZhdGUgZ2V0IGNhY2hlRXhwaXJlZCgpOiBib29sZWFuIHtcbiAgICBpZiAoIXRoaXMuY2FjaGUpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGNvbnN0IGxpZmVNaW51dGVzID0gdGhpcy5jb25maWcuY2FjaGluZz8ubGlmZU1pbnV0ZXMgPz8gdGhpcy5kZWZhdWx0Q2FjaGVMaWZlTWludXRlcztcbiAgICBjb25zdCBleHBpcmF0aW9uID0gbW9tZW50KHRoaXMuY2FjaGUubGFzdFVwZGF0ZSlcbiAgICAgIC5hZGQobGlmZU1pbnV0ZXMsICdtaW51dGVzJyk7XG5cbiAgICByZXR1cm4gbW9tZW50KCkuaXNBZnRlcihleHBpcmF0aW9uKTtcbiAgfVxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gSW5pdGlhbGl6YXRpb25cbiAgLy8gSWYgYSBTZXJ2aWNlQ29uZmlnIG9iamVjdCBpcyBub3QgcHJvdmlkZWQgd2hlbiB0aGUgbW9kdWxlIGlzIGltcG9ydGVkLCB0aGVuIGRlZmF1bHQgdmFsdWVzIGFyZSBwdWxsZWQgaW4gZnJvbSBkZWZhdWx0LWNvbmZpZy50cy5cbiAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgcHJpdmF0ZSBjb25maWc6IFNlcnZpY2VDb25maWcsXG4gICAgICAgICAgICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCkge1xuXG4gICAgICAgICAgICAgICAgdGhpcy5jb25maWcgPSB7XG4gICAgICAgICAgICAgICAgICAuLi5kZWZhdWx0Q29uZmlnLFxuICAgICAgICAgICAgICAgICAgLi4udGhpcy5jb25maWdcbiAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgdGhpcy5jb25maWcuY2FjaGluZyA9IHtcbiAgICAgICAgICAgICAgICAgIC4uLmRlZmF1bHRDYWNoaW5nQ29uZmlnLFxuICAgICAgICAgICAgICAgICAgLi4udGhpcy5jb25maWcuY2FjaGluZ1xuICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZy5sb2dnaW5nID0ge1xuICAgICAgICAgICAgICAgICAgLi4uZGVmYXVsdExvZ2dpbmdDb25maWcsXG4gICAgICAgICAgICAgICAgICAuLi50aGlzLmNvbmZpZy5sb2dnaW5nXG4gICAgICAgICAgICAgICAgfTtcbiAgfVxuICAvLyNlbmRyZWdpb25cblxuICBnZXRVc2VycyhpbmNsdWRlUGhvdG8gPSBmYWxzZSwgaW5jbHVkZURpc2FibGVkID0gZmFsc2UsIHBhcmVudE9VID0gJycpOiBPYnNlcnZhYmxlPFVzZXJbXT4ge1xuICAgIC8vIElmIGNhY2hpbmcgaXMgZW5hYmxlZCwgdGhlcmUgd2lsbCBiZSB0d28gY2FsbHMgdG8gdGhlIEFQSSBpZiB0aGUgY2FjaGUgaXMgbnVsbC9leHBpcmVkXG4gICAgLy8gT25lIGNhbGwgaXMgdG8gdXBkYXRlIHRoZSBjYWNoZSBhbmQgdGhlIG90aGVyIGlzIHRvIHJldHVybiB0aGUgZGF0YSB0aGF0IHRoZSB1c2VyIHJlcXVlc3RlZFxuICAgIC8vIFN1YnNlcXVlbnQgY2FsbHMgd2lsbCBieXBhc3MgdGhlIEFQSSBhbmQgcmV0dXJuZWQgY2FjaGVkIGRhdGEgdW50aWwgaXQgZXhwaXJlc1xuXG4gICAgY29uc3Qgb2JzZXJ2YWJsZSQgPSB0aGlzLmh0dHAuZ2V0PFVzZXJbXT4oYCR7dGhpcy5jb25maWcuYXBpVXJsfS91c2Vycy8ke2luY2x1ZGVQaG90b30vJHtpbmNsdWRlRGlzYWJsZWR9LyR7cGFyZW50T1V9YCk7XG5cbiAgICBpZiAodGhpcy5jb25maWcuY2FjaGluZz8uZW5hYmxlZCkge1xuICAgICAgaWYgKHRoaXMuY2FjaGVFeHBpcmVkKSB7XG4gICAgICAgIC8vIEdldCB0aGUgZGF0YSBhbmQgY2FjaGUgaXRcbiAgICAgICAgb2JzZXJ2YWJsZSQuc3Vic2NyaWJlKGRhdGEgPT4ge1xuICAgICAgICAgIHRoaXMuY2FjaGUgPSB7XG4gICAgICAgICAgICBkYXRhLFxuICAgICAgICAgICAgbGFzdFVwZGF0ZTogbW9tZW50KClcbiAgICAgICAgICB9O1xuXG4gICAgICAgICAgaWYgKHRoaXMuY29uZmlnLmxvZ2dpbmc/LmRhdGFDYWNoZWQpIHtcbiAgICAgICAgICAgIGNvbnN0IGxpZmVNaW51dGVzID0gdGhpcy5jb25maWcuY2FjaGluZz8ubGlmZU1pbnV0ZXMgPz8gdGhpcy5kZWZhdWx0Q2FjaGVMaWZlTWludXRlcztcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGBEYXRhIGNhY2hlZCBmb3IgJHtsaWZlTWludXRlc30gbWludXRlc2ApO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBDYWNoZSBleGlzdHMgYW5kIGhhc24ndCBleHBpcmVkIHlldFxuICAgICAgICBpZiAodGhpcy5jb25maWcubG9nZ2luZz8uY2FjaGVkRGF0YVJldHVybmVkKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coJ1JldHVybmluZyBjYWNoZWQgdXNlcnMnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBvZih0aGlzLmNhY2hlIS5kYXRhKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBDYWNoZSBpcyBlaXRoZXIgZGlzYWJsZWQgb3IgZXhwaXJlZCwgcmV0dXJuIGRhdGEgZnJvbSBBUElcbiAgICBpZiAodGhpcy5jb25maWcubG9nZ2luZz8uZnJlc2hEYXRhUmV0dXJuZWQpIHtcbiAgICAgIGNvbnNvbGUubG9nKCdSZXR1cm5pbmcgZnJlc2ggdXNlcnMnKTtcbiAgICB9XG5cbiAgICByZXR1cm4gb2JzZXJ2YWJsZSQ7XG4gIH1cblxuICBnZXRVc2VyKGFjY291bnROYW1lOiBzdHJpbmcsIGluY2x1ZGVQaG90byA9IGZhbHNlKTogT2JzZXJ2YWJsZTxVc2VyPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8VXNlcj4oYCR7dGhpcy5jb25maWcuYXBpVXJsfS91c2Vycy9uYW1lLyR7YWNjb3VudE5hbWV9LyR7aW5jbHVkZVBob3RvfWApO1xuICB9XG5cbiAgY2xlYXJDYWNoZSgpOiB2b2lkIHtcbiAgICB0aGlzLmNhY2hlID0gbnVsbDtcblxuICAgIGlmICh0aGlzLmNvbmZpZy5sb2dnaW5nPy5jYWNoZUNsZWFyZWQpIHtcbiAgICAgIGNvbnNvbGUubG9nKCdDYWNoZSBjbGVhcmVkJyk7XG4gICAgfVxuICB9XG5cbiAgZ2V0RG9tYWlucygpOiBPYnNlcnZhYmxlPEFET2JqZWN0W10+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBRE9iamVjdFtdPihgJHt0aGlzLmNvbmZpZy5hcGlVcmx9L2FjdGl2ZWRpcmVjdG9yeS9kb21haW5zYCk7XG4gIH1cblxuICBnZXRPVXMocGFyZW50T1UgPSAnJyk6IE9ic2VydmFibGU8QURPYmplY3RXaXRoQ2hpbGRyZW5bXT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFET2JqZWN0V2l0aENoaWxkcmVuW10+KGAke3RoaXMuY29uZmlnLmFwaVVybH0vYWN0aXZlZGlyZWN0b3J5L291cy8ke3BhcmVudE9VfWApO1xuICB9XG5cbiAgZ2V0Q29udGFpbmVycyhwYXJlbnRPVSA9ICcnKTogT2JzZXJ2YWJsZTxBRE9iamVjdFdpdGhDaGlsZHJlbltdPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QURPYmplY3RXaXRoQ2hpbGRyZW5bXT4oYCR7dGhpcy5jb25maWcuYXBpVXJsfS9hY3RpdmVkaXJlY3RvcnkvY29udGFpbmVycy8ke3BhcmVudE9VfWApO1xuICB9XG5cbiAgZ2V0R3JvdXBzKHBhcmVudE9VID0gJycpOiBPYnNlcnZhYmxlPEdyb3VwW10+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxHcm91cFtdPihgJHt0aGlzLmNvbmZpZy5hcGlVcmx9L2FjdGl2ZWRpcmVjdG9yeS9ncm91cHMvJHtwYXJlbnRPVX1gKTtcbiAgfVxuXG4gIGdldERpc3RpbmN0VXNlckF0dHJpYnV0ZVZhbHVlcyhhdHRyaWJ1dGVOYW1lOiBzdHJpbmcpIDogT2JzZXJ2YWJsZTxhbnlbXT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueVtdPihgJHt0aGlzLmNvbmZpZy5hcGlVcmx9L2FjdGl2ZWRpcmVjdG9yeS9kaXN0aW5jdC8ke2F0dHJpYnV0ZU5hbWV9YCk7XG4gIH1cblxuICBnZXREZXBhcnRtZW50cygpIDogT2JzZXJ2YWJsZTxzdHJpbmdbXT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PHN0cmluZ1tdPihgJHt0aGlzLmNvbmZpZy5hcGlVcmx9L2FjdGl2ZWRpcmVjdG9yeS9kZXBhcnRtZW50c2ApO1xuICB9XG5cbiAgZ2V0VGl0bGVzKCkgOiBPYnNlcnZhYmxlPHN0cmluZ1tdPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8c3RyaW5nW10+KGAke3RoaXMuY29uZmlnLmFwaVVybH0vYWN0aXZlZGlyZWN0b3J5L3RpdGxlc2ApO1xuICB9XG5cbiAgZ2V0Q29tcHV0ZXJzKGluY2x1ZGVEaXNhYmxlZCA9IGZhbHNlLCBwYXJlbnRPVSA9ICcnKTogT2JzZXJ2YWJsZTxVc2VyW10+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxVc2VyW10+KGAke3RoaXMuY29uZmlnLmFwaVVybH0vYWN0aXZlZGlyZWN0b3J5L2NvbXB1dGVycy8ke2luY2x1ZGVEaXNhYmxlZH0vJHtwYXJlbnRPVX1gKTtcbiAgfVxuXG4gIGdldFNlcnZlcnMoaW5jbHVkZURpc2FibGVkID0gZmFsc2UsIHBhcmVudE9VID0gJycpOiBPYnNlcnZhYmxlPFVzZXJbXT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFVzZXJbXT4oYCR7dGhpcy5jb25maWcuYXBpVXJsfS9hY3RpdmVkaXJlY3Rvcnkvc2VydmVycy8ke2luY2x1ZGVEaXNhYmxlZH0vJHtwYXJlbnRPVX1gKTtcbiAgfVxuXG4gIGdldFdvcmtzdGF0aW9ucyhpbmNsdWRlRGlzYWJsZWQgPSBmYWxzZSwgcGFyZW50T1UgPSAnJyk6IE9ic2VydmFibGU8VXNlcltdPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8VXNlcltdPihgJHt0aGlzLmNvbmZpZy5hcGlVcmx9L2FjdGl2ZWRpcmVjdG9yeS93b3Jrc3RhdGlvbnMvJHtpbmNsdWRlRGlzYWJsZWR9LyR7cGFyZW50T1V9YCk7XG4gIH1cbn1cbiJdfQ==
126
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZlLWRpcmVjdG9yeS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xlYXZlbGFuZHByaWNlL25neC1saWIvYWN0aXZlLWRpcmVjdG9yeS9zcmMvc2VydmljZXMvYWN0aXZlLWRpcmVjdG9yeS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXJELE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBRTVCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7OztBQVl2RSxNQUFNLE9BQU8sc0JBQXNCO0lBZ0JqQyxZQUFZO0lBRVosd0JBQXdCO0lBQ3hCLG1JQUFtSTtJQUNuSSxZQUFnQyxNQUFxQixFQUNqQyxJQUFnQjtRQURKLFdBQU0sR0FBTixNQUFNLENBQWU7UUFDakMsU0FBSSxHQUFKLElBQUksQ0FBWTtRQXBCNUIsVUFBSyxHQUE2QixJQUFJLENBQUM7UUFDdkMsNEJBQXVCLEdBQUcsR0FBRyxDQUFDO1FBcUJ4QixJQUFJLENBQUMsTUFBTSxHQUFHO1lBQ1osR0FBRyxhQUFhO1lBQ2hCLEdBQUcsSUFBSSxDQUFDLE1BQU07U0FDZixDQUFDO1FBRUYsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUc7WUFDcEIsR0FBRyxvQkFBb0I7WUFDdkIsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU87U0FDdkIsQ0FBQztRQUVGLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHO1lBQ3BCLEdBQUcsb0JBQW9CO1lB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QyxNQUFNLENBQUMsTUFBTSw4QkFBOEIsZUFBZSxJQUFJLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDakgsQ0FBQztJQUVELFVBQVUsQ0FBQyxlQUFlLEdBQUcsS0FBSyxFQUFFLFFBQVEsR0FBRyxFQUFFO1FBQy9DLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sNEJBQTRCLGVBQWUsSUFBSSxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQy9HLENBQUM7SUFFRCxlQUFlLENBQUMsZUFBZSxHQUFHLEtBQUssRUFBRSxRQUFRLEdBQUcsRUFBRTtRQUNwRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLGlDQUFpQyxlQUFlLElBQUksUUFBUSxFQUFFLENBQUMsQ0FBQztJQUNwSCxDQUFDOzttSEFqSVUsc0JBQXNCO3VIQUF0QixzQkFBc0IsY0FGckIsTUFBTTsyRkFFUCxzQkFBc0I7a0JBSGxDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFxQmMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcclxuXHJcbmltcG9ydCB7IGRlZmF1bHRDb25maWcgfSBmcm9tICcuLi9tb2RlbC9kZWZhdWx0LWNvbmZpZyc7XHJcbmltcG9ydCB7IGRlZmF1bHRDYWNoaW5nQ29uZmlnIH0gZnJvbSAnLi4vbW9kZWwvZGVmYXVsdC1jYWNoaW5nLWNvbmZpZyc7XHJcbmltcG9ydCB7IGRlZmF1bHRMb2dnaW5nQ29uZmlnIH0gZnJvbSAnLi4vbW9kZWwvZGVmYXVsdC1sb2dnaW5nLWNvbmZpZyc7XHJcblxyXG5pbXBvcnQgeyBBRE9iamVjdCB9IGZyb20gJy4uL21vZGVsL2FkLW9iamVjdCc7XHJcbmltcG9ydCB7IEFET2JqZWN0V2l0aENoaWxkcmVuIH0gZnJvbSAnLi4vbW9kZWwvYWQtb2JqZWN0LXdpdGgtY2hpbGRyZW4nO1xyXG5pbXBvcnQgeyBDYWNoZU9iamVjdCB9IGZyb20gJy4uL21vZGVsL2NhY2hlLW9iamVjdCc7XHJcbmltcG9ydCB7IEdyb3VwIH0gZnJvbSAnLi4vbW9kZWwvZ3JvdXAnO1xyXG5pbXBvcnQgeyBTZXJ2aWNlQ29uZmlnIH0gZnJvbSAnLi4vbW9kZWwvc2VydmljZS1jb25maWcnO1xyXG5pbXBvcnQgeyBVc2VyIH0gZnJvbSAnLi4vbW9kZWwvdXNlcic7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBY3RpdmVEaXJlY3RvcnlTZXJ2aWNlIHtcclxuICBwcml2YXRlIGNhY2hlOiBDYWNoZU9iamVjdDxVc2VyPiB8IG51bGwgPSBudWxsO1xyXG4gIHByaXZhdGUgZGVmYXVsdENhY2hlTGlmZU1pbnV0ZXMgPSA3MjA7XHJcblxyXG4gIC8vI3JlZ2lvbiBQcm9wZXJ0aWVzXHJcbiAgcHJpdmF0ZSBnZXQgY2FjaGVFeHBpcmVkKCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKCF0aGlzLmNhY2hlKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGxpZmVNaW51dGVzID0gdGhpcy5jb25maWcuY2FjaGluZz8ubGlmZU1pbnV0ZXMgPz8gdGhpcy5kZWZhdWx0Q2FjaGVMaWZlTWludXRlcztcclxuICAgIGNvbnN0IGV4cGlyYXRpb24gPSBtb21lbnQodGhpcy5jYWNoZS5sYXN0VXBkYXRlKVxyXG4gICAgICAuYWRkKGxpZmVNaW51dGVzLCAnbWludXRlcycpO1xyXG5cclxuICAgIHJldHVybiBtb21lbnQoKS5pc0FmdGVyKGV4cGlyYXRpb24pO1xyXG4gIH1cclxuICAvLyNlbmRyZWdpb25cclxuXHJcbiAgLy8jcmVnaW9uIEluaXRpYWxpemF0aW9uXHJcbiAgLy8gSWYgYSBTZXJ2aWNlQ29uZmlnIG9iamVjdCBpcyBub3QgcHJvdmlkZWQgd2hlbiB0aGUgbW9kdWxlIGlzIGltcG9ydGVkLCB0aGVuIGRlZmF1bHQgdmFsdWVzIGFyZSBwdWxsZWQgaW4gZnJvbSBkZWZhdWx0LWNvbmZpZy50cy5cclxuICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBwcml2YXRlIGNvbmZpZzogU2VydmljZUNvbmZpZyxcclxuICAgICAgICAgICAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQpIHtcclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZyA9IHtcclxuICAgICAgICAgICAgICAgICAgLi4uZGVmYXVsdENvbmZpZyxcclxuICAgICAgICAgICAgICAgICAgLi4udGhpcy5jb25maWdcclxuICAgICAgICAgICAgICAgIH07XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5jb25maWcuY2FjaGluZyA9IHtcclxuICAgICAgICAgICAgICAgICAgLi4uZGVmYXVsdENhY2hpbmdDb25maWcsXHJcbiAgICAgICAgICAgICAgICAgIC4uLnRoaXMuY29uZmlnLmNhY2hpbmdcclxuICAgICAgICAgICAgICAgIH07XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5jb25maWcubG9nZ2luZyA9IHtcclxuICAgICAgICAgICAgICAgICAgLi4uZGVmYXVsdExvZ2dpbmdDb25maWcsXHJcbiAgICAgICAgICAgICAgICAgIC4uLnRoaXMuY29uZmlnLmxvZ2dpbmdcclxuICAgICAgICAgICAgICAgIH07XHJcbiAgfVxyXG4gIC8vI2VuZHJlZ2lvblxyXG5cclxuICBnZXRVc2VycyhpbmNsdWRlUGhvdG8gPSBmYWxzZSwgaW5jbHVkZURpc2FibGVkID0gZmFsc2UsIHBhcmVudE9VID0gJycpOiBPYnNlcnZhYmxlPFVzZXJbXT4ge1xyXG4gICAgLy8gSWYgY2FjaGluZyBpcyBlbmFibGVkLCB0aGVyZSB3aWxsIGJlIHR3byBjYWxscyB0byB0aGUgQVBJIGlmIHRoZSBjYWNoZSBpcyBudWxsL2V4cGlyZWRcclxuICAgIC8vIE9uZSBjYWxsIGlzIHRvIHVwZGF0ZSB0aGUgY2FjaGUgYW5kIHRoZSBvdGhlciBpcyB0byByZXR1cm4gdGhlIGRhdGEgdGhhdCB0aGUgdXNlciByZXF1ZXN0ZWRcclxuICAgIC8vIFN1YnNlcXVlbnQgY2FsbHMgd2lsbCBieXBhc3MgdGhlIEFQSSBhbmQgcmV0dXJuZWQgY2FjaGVkIGRhdGEgdW50aWwgaXQgZXhwaXJlc1xyXG5cclxuICAgIGNvbnN0IG9ic2VydmFibGUkID0gdGhpcy5odHRwLmdldDxVc2VyW10+KGAke3RoaXMuY29uZmlnLmFwaVVybH0vdXNlcnMvJHtpbmNsdWRlUGhvdG99LyR7aW5jbHVkZURpc2FibGVkfS8ke3BhcmVudE9VfWApO1xyXG5cclxuICAgIGlmICh0aGlzLmNvbmZpZy5jYWNoaW5nPy5lbmFibGVkKSB7XHJcbiAgICAgIGlmICh0aGlzLmNhY2hlRXhwaXJlZCkge1xyXG4gICAgICAgIC8vIEdldCB0aGUgZGF0YSBhbmQgY2FjaGUgaXRcclxuICAgICAgICBvYnNlcnZhYmxlJC5zdWJzY3JpYmUoZGF0YSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmNhY2hlID0ge1xyXG4gICAgICAgICAgICBkYXRhLFxyXG4gICAgICAgICAgICBsYXN0VXBkYXRlOiBtb21lbnQoKVxyXG4gICAgICAgICAgfTtcclxuXHJcbiAgICAgICAgICBpZiAodGhpcy5jb25maWcubG9nZ2luZz8uZGF0YUNhY2hlZCkge1xyXG4gICAgICAgICAgICBjb25zdCBsaWZlTWludXRlcyA9IHRoaXMuY29uZmlnLmNhY2hpbmc/LmxpZmVNaW51dGVzID8/IHRoaXMuZGVmYXVsdENhY2hlTGlmZU1pbnV0ZXM7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGBEYXRhIGNhY2hlZCBmb3IgJHtsaWZlTWludXRlc30gbWludXRlc2ApO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIC8vIENhY2hlIGV4aXN0cyBhbmQgaGFzbid0IGV4cGlyZWQgeWV0XHJcbiAgICAgICAgaWYgKHRoaXMuY29uZmlnLmxvZ2dpbmc/LmNhY2hlZERhdGFSZXR1cm5lZCkge1xyXG4gICAgICAgICAgY29uc29sZS5sb2coJ1JldHVybmluZyBjYWNoZWQgdXNlcnMnKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBvZih0aGlzLmNhY2hlIS5kYXRhKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIENhY2hlIGlzIGVpdGhlciBkaXNhYmxlZCBvciBleHBpcmVkLCByZXR1cm4gZGF0YSBmcm9tIEFQSVxyXG4gICAgaWYgKHRoaXMuY29uZmlnLmxvZ2dpbmc/LmZyZXNoRGF0YVJldHVybmVkKSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKCdSZXR1cm5pbmcgZnJlc2ggdXNlcnMnKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gb2JzZXJ2YWJsZSQ7XHJcbiAgfVxyXG5cclxuICBnZXRVc2VyKGFjY291bnROYW1lOiBzdHJpbmcsIGluY2x1ZGVQaG90byA9IGZhbHNlKTogT2JzZXJ2YWJsZTxVc2VyPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxVc2VyPihgJHt0aGlzLmNvbmZpZy5hcGlVcmx9L3VzZXJzL25hbWUvJHthY2NvdW50TmFtZX0vJHtpbmNsdWRlUGhvdG99YCk7XHJcbiAgfVxyXG5cclxuICBjbGVhckNhY2hlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5jYWNoZSA9IG51bGw7XHJcblxyXG4gICAgaWYgKHRoaXMuY29uZmlnLmxvZ2dpbmc/LmNhY2hlQ2xlYXJlZCkge1xyXG4gICAgICBjb25zb2xlLmxvZygnQ2FjaGUgY2xlYXJlZCcpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0RG9tYWlucygpOiBPYnNlcnZhYmxlPEFET2JqZWN0W10+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFET2JqZWN0W10+KGAke3RoaXMuY29uZmlnLmFwaVVybH0vYWN0aXZlZGlyZWN0b3J5L2RvbWFpbnNgKTtcclxuICB9XHJcblxyXG4gIGdldE9VcyhwYXJlbnRPVSA9ICcnKTogT2JzZXJ2YWJsZTxBRE9iamVjdFdpdGhDaGlsZHJlbltdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBRE9iamVjdFdpdGhDaGlsZHJlbltdPihgJHt0aGlzLmNvbmZpZy5hcGlVcmx9L2FjdGl2ZWRpcmVjdG9yeS9vdXMvJHtwYXJlbnRPVX1gKTtcclxuICB9XHJcblxyXG4gIGdldENvbnRhaW5lcnMocGFyZW50T1UgPSAnJyk6IE9ic2VydmFibGU8QURPYmplY3RXaXRoQ2hpbGRyZW5bXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QURPYmplY3RXaXRoQ2hpbGRyZW5bXT4oYCR7dGhpcy5jb25maWcuYXBpVXJsfS9hY3RpdmVkaXJlY3RvcnkvY29udGFpbmVycy8ke3BhcmVudE9VfWApO1xyXG4gIH1cclxuXHJcbiAgZ2V0R3JvdXBzKHBhcmVudE9VID0gJycpOiBPYnNlcnZhYmxlPEdyb3VwW10+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEdyb3VwW10+KGAke3RoaXMuY29uZmlnLmFwaVVybH0vYWN0aXZlZGlyZWN0b3J5L2dyb3Vwcy8ke3BhcmVudE9VfWApO1xyXG4gIH1cclxuXHJcbiAgZ2V0RGlzdGluY3RVc2VyQXR0cmlidXRlVmFsdWVzKGF0dHJpYnV0ZU5hbWU6IHN0cmluZykgOiBPYnNlcnZhYmxlPGFueVtdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnlbXT4oYCR7dGhpcy5jb25maWcuYXBpVXJsfS9hY3RpdmVkaXJlY3RvcnkvZGlzdGluY3QvJHthdHRyaWJ1dGVOYW1lfWApO1xyXG4gIH1cclxuXHJcbiAgZ2V0RGVwYXJ0bWVudHMoKSA6IE9ic2VydmFibGU8c3RyaW5nW10+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PHN0cmluZ1tdPihgJHt0aGlzLmNvbmZpZy5hcGlVcmx9L2FjdGl2ZWRpcmVjdG9yeS9kZXBhcnRtZW50c2ApO1xyXG4gIH1cclxuXHJcbiAgZ2V0VGl0bGVzKCkgOiBPYnNlcnZhYmxlPHN0cmluZ1tdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxzdHJpbmdbXT4oYCR7dGhpcy5jb25maWcuYXBpVXJsfS9hY3RpdmVkaXJlY3RvcnkvdGl0bGVzYCk7XHJcbiAgfVxyXG5cclxuICBnZXRDb21wdXRlcnMoaW5jbHVkZURpc2FibGVkID0gZmFsc2UsIHBhcmVudE9VID0gJycpOiBPYnNlcnZhYmxlPFVzZXJbXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8VXNlcltdPihgJHt0aGlzLmNvbmZpZy5hcGlVcmx9L2FjdGl2ZWRpcmVjdG9yeS9jb21wdXRlcnMvJHtpbmNsdWRlRGlzYWJsZWR9LyR7cGFyZW50T1V9YCk7XHJcbiAgfVxyXG5cclxuICBnZXRTZXJ2ZXJzKGluY2x1ZGVEaXNhYmxlZCA9IGZhbHNlLCBwYXJlbnRPVSA9ICcnKTogT2JzZXJ2YWJsZTxVc2VyW10+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFVzZXJbXT4oYCR7dGhpcy5jb25maWcuYXBpVXJsfS9hY3RpdmVkaXJlY3Rvcnkvc2VydmVycy8ke2luY2x1ZGVEaXNhYmxlZH0vJHtwYXJlbnRPVX1gKTtcclxuICB9XHJcblxyXG4gIGdldFdvcmtzdGF0aW9ucyhpbmNsdWRlRGlzYWJsZWQgPSBmYWxzZSwgcGFyZW50T1UgPSAnJyk6IE9ic2VydmFibGU8VXNlcltdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxVc2VyW10+KGAke3RoaXMuY29uZmlnLmFwaVVybH0vYWN0aXZlZGlyZWN0b3J5L3dvcmtzdGF0aW9ucy8ke2luY2x1ZGVEaXNhYmxlZH0vJHtwYXJlbnRPVX1gKTtcclxuICB9XHJcbn1cclxuIl19
@@ -1,77 +1,19 @@
1
- import { NgModule, Optional, SkipSelf } from '@angular/core';
1
+ import { NgModule } from '@angular/core';
2
2
  import { CommonModule } from '@angular/common';
3
- import { ReactiveFormsModule } from '@angular/forms';
4
- import { MatButtonModule } from '@angular/material/button';
5
- import { MatDialogModule } from '@angular/material/dialog';
6
- import { MatFormFieldModule } from '@angular/material/form-field';
7
- import { MatIconModule } from '@angular/material/icon';
8
- import { MatInputModule } from '@angular/material/input';
9
- import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
10
- import { LoginComponent } from './components/login/login.component';
11
- import { LoginFormComponent } from './components/login-form/login-form.component';
12
- import { ServiceConfig } from './model/service-config';
13
- import { AuthenticationService } from './services/authentication.service';
14
3
  import * as i0 from "@angular/core";
15
4
  export class AuthenticationModule {
16
- constructor(parentModule) {
17
- if (parentModule) {
18
- throw new Error('AuthenticationModule is already loaded. Import it in the AppModule only');
19
- }
20
- }
21
- static forRoot(config) {
22
- return {
23
- ngModule: AuthenticationModule,
24
- providers: [
25
- AuthenticationService,
26
- { provide: ServiceConfig, useValue: config }
27
- ]
28
- };
29
- }
30
5
  }
31
- AuthenticationModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: AuthenticationModule, deps: [{ token: AuthenticationModule, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.NgModule });
32
- AuthenticationModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.0", ngImport: i0, type: AuthenticationModule, declarations: [LoginComponent,
33
- LoginFormComponent], imports: [CommonModule,
34
- ReactiveFormsModule,
35
- MatButtonModule,
36
- MatDialogModule,
37
- MatFormFieldModule,
38
- MatIconModule,
39
- MatInputModule,
40
- MatProgressSpinnerModule], exports: [LoginComponent,
41
- LoginFormComponent] });
42
- AuthenticationModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: AuthenticationModule, imports: [CommonModule,
43
- ReactiveFormsModule,
44
- MatButtonModule,
45
- MatDialogModule,
46
- MatFormFieldModule,
47
- MatIconModule,
48
- MatInputModule,
49
- MatProgressSpinnerModule] });
50
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: AuthenticationModule, decorators: [{
6
+ AuthenticationModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: AuthenticationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
7
+ AuthenticationModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.1", ngImport: i0, type: AuthenticationModule, imports: [CommonModule] });
8
+ AuthenticationModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: AuthenticationModule, imports: [CommonModule] });
9
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: AuthenticationModule, decorators: [{
51
10
  type: NgModule,
52
11
  args: [{
53
- declarations: [
54
- LoginComponent,
55
- LoginFormComponent
56
- ],
12
+ declarations: [],
57
13
  imports: [
58
- CommonModule,
59
- ReactiveFormsModule,
60
- MatButtonModule,
61
- MatDialogModule,
62
- MatFormFieldModule,
63
- MatIconModule,
64
- MatInputModule,
65
- MatProgressSpinnerModule
14
+ CommonModule
66
15
  ],
67
- exports: [
68
- LoginComponent,
69
- LoginFormComponent
70
- ]
16
+ exports: []
71
17
  }]
72
- }], ctorParameters: function () { return [{ type: AuthenticationModule, decorators: [{
73
- type: Optional
74
- }, {
75
- type: SkipSelf
76
- }] }]; } });
77
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aGVudGljYXRpb24ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xlYXZlbGFuZHByaWNlL25neC1saWIvYXV0aGVudGljYXRpb24vc3JjL2F1dGhlbnRpY2F0aW9uLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXVCLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFFOUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7QUF1QjFFLE1BQU0sT0FBTyxvQkFBb0I7SUFXL0IsWUFBcUMsWUFBa0M7UUFDckUsSUFBSSxZQUFZLEVBQUU7WUFDaEIsTUFBTSxJQUFJLEtBQUssQ0FDYix5RUFBeUUsQ0FBQyxDQUFDO1NBQzlFO0lBQ0gsQ0FBQztJQWZELE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBcUI7UUFDbEMsT0FBTztZQUNMLFFBQVEsRUFBRSxvQkFBb0I7WUFDOUIsU0FBUyxFQUFFO2dCQUNULHFCQUFxQjtnQkFDckIsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUU7YUFDN0M7U0FDRixDQUFDO0lBQ0osQ0FBQzs7aUhBVFUsb0JBQW9CLGtCQVdvQixvQkFBb0I7a0hBWDVELG9CQUFvQixpQkFuQjdCLGNBQWM7UUFDZCxrQkFBa0IsYUFHbEIsWUFBWTtRQUNaLG1CQUFtQjtRQUVuQixlQUFlO1FBQ2YsZUFBZTtRQUNmLGtCQUFrQjtRQUNsQixhQUFhO1FBQ2IsY0FBYztRQUNkLHdCQUF3QixhQUd4QixjQUFjO1FBQ2Qsa0JBQWtCO2tIQUdULG9CQUFvQixZQWY3QixZQUFZO1FBQ1osbUJBQW1CO1FBRW5CLGVBQWU7UUFDZixlQUFlO1FBQ2Ysa0JBQWtCO1FBQ2xCLGFBQWE7UUFDYixjQUFjO1FBQ2Qsd0JBQXdCOzJGQU9mLG9CQUFvQjtrQkFyQmhDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLGNBQWM7d0JBQ2Qsa0JBQWtCO3FCQUNuQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixtQkFBbUI7d0JBRW5CLGVBQWU7d0JBQ2YsZUFBZTt3QkFDZixrQkFBa0I7d0JBQ2xCLGFBQWE7d0JBQ2IsY0FBYzt3QkFDZCx3QkFBd0I7cUJBQ3pCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxjQUFjO3dCQUNkLGtCQUFrQjtxQkFDbkI7aUJBQ0Y7MERBWW9ELG9CQUFvQjswQkFBekQsUUFBUTs7MEJBQUksUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlLCBPcHRpb25hbCwgU2tpcFNlbGYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0RGlhbG9nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQgeyBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1zcGlubmVyJztcblxuaW1wb3J0IHsgTG9naW5Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbG9naW4vbG9naW4uY29tcG9uZW50JztcbmltcG9ydCB7IExvZ2luRm9ybUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9sb2dpbi1mb3JtL2xvZ2luLWZvcm0uY29tcG9uZW50JztcbmltcG9ydCB7IFNlcnZpY2VDb25maWcgfSBmcm9tICcuL21vZGVsL3NlcnZpY2UtY29uZmlnJztcbmltcG9ydCB7IEF1dGhlbnRpY2F0aW9uU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvYXV0aGVudGljYXRpb24uc2VydmljZSc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIExvZ2luQ29tcG9uZW50LFxuICAgIExvZ2luRm9ybUNvbXBvbmVudFxuICBdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgIE1hdERpYWxvZ01vZHVsZSxcbiAgICBNYXRGb3JtRmllbGRNb2R1bGUsXG4gICAgTWF0SWNvbk1vZHVsZSxcbiAgICBNYXRJbnB1dE1vZHVsZSxcbiAgICBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGVcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIExvZ2luQ29tcG9uZW50LFxuICAgIExvZ2luRm9ybUNvbXBvbmVudFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEF1dGhlbnRpY2F0aW9uTW9kdWxlIHtcbiAgc3RhdGljIGZvclJvb3QoY29uZmlnOiBTZXJ2aWNlQ29uZmlnKTogTW9kdWxlV2l0aFByb3ZpZGVyczxBdXRoZW50aWNhdGlvbk1vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogQXV0aGVudGljYXRpb25Nb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgQXV0aGVudGljYXRpb25TZXJ2aWNlLFxuICAgICAgICB7IHByb3ZpZGU6IFNlcnZpY2VDb25maWcsIHVzZVZhbHVlOiBjb25maWcgfVxuICAgICAgXVxuICAgIH07XG4gIH1cblxuICBjb25zdHJ1Y3RvciggQE9wdGlvbmFsKCkgQFNraXBTZWxmKCkgcGFyZW50TW9kdWxlOiBBdXRoZW50aWNhdGlvbk1vZHVsZSkge1xuICAgIGlmIChwYXJlbnRNb2R1bGUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ0F1dGhlbnRpY2F0aW9uTW9kdWxlIGlzIGFscmVhZHkgbG9hZGVkLiBJbXBvcnQgaXQgaW4gdGhlIEFwcE1vZHVsZSBvbmx5Jyk7XG4gICAgfVxuICB9XG59XG4iXX0=
18
+ }] });
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aGVudGljYXRpb24ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xlYXZlbGFuZHByaWNlL25neC1saWIvYXV0aGVudGljYXRpb24vc3JjL2F1dGhlbnRpY2F0aW9uLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFTL0MsTUFBTSxPQUFPLG9CQUFvQjs7aUhBQXBCLG9CQUFvQjtrSEFBcEIsb0JBQW9CLFlBSjdCLFlBQVk7a0hBSUgsb0JBQW9CLFlBSjdCLFlBQVk7MkZBSUgsb0JBQW9CO2tCQVBoQyxRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxFQUFFO29CQUNoQixPQUFPLEVBQUU7d0JBQ1AsWUFBWTtxQkFDYjtvQkFDRCxPQUFPLEVBQUUsRUFBRTtpQkFDWiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogW10sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlXHJcbiAgXSxcclxuICBleHBvcnRzOiBbXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQXV0aGVudGljYXRpb25Nb2R1bGUge30iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtYXV0aGVudGljYXRpb24tc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsZWF2ZWxhbmRwcmljZS9uZ3gtbGliL2F1dGhlbnRpY2F0aW9uL3NyYy9tb2RlbC9hYnN0cmFjdC1hdXRoZW50aWNhdGlvbi1zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudEVtaXR0ZXIgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBBdXRoZW50aWNhdGVkVXNlciB9IGZyb20gXCIuL2F1dGhlbnRpY2F0ZWQtdXNlclwiO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBYnN0cmFjdEF1dGhlbnRpY2F0aW9uU2VydmljZSB7XHJcbiAgICAvLyNyZWdpb24gRmllbGRzXHJcbiAgICBhdXRoZW50aWNhdGVkQ2hhbmdlZDogRXZlbnRFbWl0dGVyPGJvb2xlYW4+O1xyXG4gICAgYXV0aGVudGljYXRpbmdDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj47XHJcbiAgICBhdXRoZW50aWNhdGlvbkVycm9yOiBFdmVudEVtaXR0ZXI8YW55PjtcclxuICAgIGF1dGhlbnRpY2F0aW5nOiBib29sZWFuOyAvLyBGbGFnIHNldCB0byB0cnVlIHdoaWxlIHRoZSBzZXJ2aWNlIGlzIGF0dGVtcHRpbmcgdG8gYXV0aGVudGljYXRlIHRoZSB1c2VyXHJcbiAgICBhdXRoZW50aWNhdGVkOiBib29sZWFuOyAvLyBGbGFnIHNldCB0byB0cnVlIHdoZW4gdGhlIHVzZXIgaXMgc3VjY2Vzc2Z1bGx5IGF1dGhlbnRpY2F0ZWRcclxuICAgIGF1dGhlbnRpY2F0ZWRVc2VyOiBBdXRoZW50aWNhdGVkVXNlciB8IG51bGw7IC8vIE9iamVjdCByZXByZXNlbnRpbmcgdGhlIGF1dGhlbnRpY2F0ZWQgdXNlclxyXG4gICAgLy8jZW5kcmVnaW9uXHJcblxyXG4gICAgLy8jcmVnaW9uIFV0aWxpdGllc1xyXG4gICAgbG9naW46IEZ1bmN0aW9uO1xyXG4gICAgbG9nb3V0OiBGdW5jdGlvbjtcclxuICAgIHZhbGlkYXRlVXNlcjogRnVuY3Rpb247XHJcbiAgICBjaGVja0ZvckV4aXN0aW5nVG9rZW46IEZ1bmN0aW9uO1xyXG4gICAgLy8jZW5kcmVnaW9uXHJcbn0iXX0=
@@ -1,3 +1,3 @@
1
1
  export class ServiceConfig {
2
2
  }
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGVhdmVsYW5kcHJpY2Uvbmd4LWxpYi9hdXRoZW50aWNhdGlvbi9zcmMvbW9kZWwvc2VydmljZS1jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLGFBQWE7Q0FFekIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgU2VydmljZUNvbmZpZyB7XHJcbiAgICBhcGlVcmwhOiBzdHJpbmc7XHJcbn1cclxuIl19
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGVhdmVsYW5kcHJpY2Uvbmd4LWxpYi9hdXRoZW50aWNhdGlvbi9zcmMvbW9kZWwvc2VydmljZS1jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLGFBQWE7Q0FHekIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgU2VydmljZUNvbmZpZyB7XHJcbiAgICBhcGlVcmwhOiBzdHJpbmc7XHJcbiAgICB0b2tlbk5hbWUhOiBzdHJpbmc7IC8vIFRoZSBuYW1lIHVzZWQgYXMgdGhlIEtleSBvZiB0aGUgaXRlbSBzYXZlZCBpbiB0aGUgYnJvd3NlcidzIExvY2FsU3RvcmFnZVxyXG59Il19
@@ -0,0 +1,39 @@
1
+ import { NgModule, Optional, SkipSelf } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { ServiceConfig } from './model/service-config';
4
+ import { AuthenticationObjectService } from './services/authentication-object.service';
5
+ import * as i0 from "@angular/core";
6
+ export class AuthenticationObjectModule {
7
+ constructor(parentModule) {
8
+ if (parentModule) {
9
+ throw new Error('AuthenticationObjectModule is already loaded. Import it in the AppModule only');
10
+ }
11
+ }
12
+ static forRoot(config) {
13
+ return {
14
+ ngModule: AuthenticationObjectModule,
15
+ providers: [
16
+ AuthenticationObjectService,
17
+ { provide: ServiceConfig, useValue: config }
18
+ ]
19
+ };
20
+ }
21
+ }
22
+ AuthenticationObjectModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: AuthenticationObjectModule, deps: [{ token: AuthenticationObjectModule, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.NgModule });
23
+ AuthenticationObjectModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.1", ngImport: i0, type: AuthenticationObjectModule, imports: [CommonModule] });
24
+ AuthenticationObjectModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: AuthenticationObjectModule, imports: [CommonModule] });
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: AuthenticationObjectModule, decorators: [{
26
+ type: NgModule,
27
+ args: [{
28
+ declarations: [],
29
+ imports: [
30
+ CommonModule
31
+ ],
32
+ exports: []
33
+ }]
34
+ }], ctorParameters: function () { return [{ type: AuthenticationObjectModule, decorators: [{
35
+ type: Optional
36
+ }, {
37
+ type: SkipSelf
38
+ }] }]; } });
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aGVudGljYXRpb24tb2JqZWN0Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsZWF2ZWxhbmRwcmljZS9uZ3gtbGliL2F1dGhlbnRpY2F0aW9uL29iamVjdC9zcmMvYXV0aGVudGljYXRpb24tb2JqZWN0Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXVCLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFdkQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sMENBQTBDLENBQUM7O0FBU3ZGLE1BQU0sT0FBTywwQkFBMEI7SUFXckMsWUFBb0MsWUFBd0M7UUFDMUUsSUFBSSxZQUFZLEVBQUU7WUFDaEIsTUFBTSxJQUFJLEtBQUssQ0FDYiwrRUFBK0UsQ0FBQyxDQUFDO1NBQ3BGO0lBQ0gsQ0FBQztJQWZELE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBcUI7UUFDbEMsT0FBTztZQUNMLFFBQVEsRUFBRSwwQkFBMEI7WUFDcEMsU0FBUyxFQUFFO2dCQUNULDJCQUEyQjtnQkFDM0IsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUU7YUFDN0M7U0FDRixDQUFDO0lBQ0osQ0FBQzs7dUhBVFUsMEJBQTBCO3dIQUExQiwwQkFBMEIsWUFKbkMsWUFBWTt3SEFJSCwwQkFBMEIsWUFKbkMsWUFBWTsyRkFJSCwwQkFBMEI7a0JBUHRDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLEVBQUU7b0JBQ2hCLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3FCQUNiO29CQUNELE9BQU8sRUFBRSxFQUFFO2lCQUNaOzswQkFZYyxRQUFROzswQkFBSSxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUsIE9wdGlvbmFsLCBTa2lwU2VsZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5cclxuaW1wb3J0IHsgU2VydmljZUNvbmZpZyB9IGZyb20gJy4vbW9kZWwvc2VydmljZS1jb25maWcnO1xyXG5cclxuaW1wb3J0IHsgQXV0aGVudGljYXRpb25PYmplY3RTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9hdXRoZW50aWNhdGlvbi1vYmplY3Quc2VydmljZSc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogW10sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlXHJcbiAgXSxcclxuICBleHBvcnRzOiBbXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQXV0aGVudGljYXRpb25PYmplY3RNb2R1bGUge1xyXG4gIHN0YXRpYyBmb3JSb290KGNvbmZpZzogU2VydmljZUNvbmZpZyk6IE1vZHVsZVdpdGhQcm92aWRlcnM8QXV0aGVudGljYXRpb25PYmplY3RNb2R1bGU+IHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIG5nTW9kdWxlOiBBdXRoZW50aWNhdGlvbk9iamVjdE1vZHVsZSxcclxuICAgICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAgQXV0aGVudGljYXRpb25PYmplY3RTZXJ2aWNlLFxyXG4gICAgICAgIHsgcHJvdmlkZTogU2VydmljZUNvbmZpZywgdXNlVmFsdWU6IGNvbmZpZyB9XHJcbiAgICAgIF1cclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBAU2tpcFNlbGYoKSBwYXJlbnRNb2R1bGU6IEF1dGhlbnRpY2F0aW9uT2JqZWN0TW9kdWxlKSB7XHJcbiAgICBpZiAocGFyZW50TW9kdWxlKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcihcclxuICAgICAgICAnQXV0aGVudGljYXRpb25PYmplY3RNb2R1bGUgaXMgYWxyZWFkeSBsb2FkZWQuIEltcG9ydCBpdCBpbiB0aGUgQXBwTW9kdWxlIG9ubHknKTtcclxuICAgIH1cclxuICB9XHJcbn0iXX0=
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public_api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xlYXZlbGFuZHByaWNlLW5neC1saWItYXV0aGVudGljYXRpb24tb2JqZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xlYXZlbGFuZHByaWNlL25neC1saWIvYXV0aGVudGljYXRpb24vb2JqZWN0L3NyYy9jbGVhdmVsYW5kcHJpY2Utbmd4LWxpYi1hdXRoZW50aWNhdGlvbi1vYmplY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWNfYXBpJztcbiJdfQ==
@@ -0,0 +1,5 @@
1
+ export const defaultConfig = {
2
+ apiUrl: 'http://utilityapi/authenticate',
3
+ tokenName: 'user'
4
+ };
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC1jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGVhdmVsYW5kcHJpY2Uvbmd4LWxpYi9hdXRoZW50aWNhdGlvbi9vYmplY3Qvc3JjL21vZGVsL2RlZmF1bHQtY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBa0I7SUFDeEMsTUFBTSxFQUFFLGdDQUFnQztJQUN4QyxTQUFTLEVBQUUsTUFBTTtDQUNwQixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2VydmljZUNvbmZpZyB9IGZyb20gJy4vc2VydmljZS1jb25maWcnO1xyXG5cclxuZXhwb3J0IGNvbnN0IGRlZmF1bHRDb25maWc6IFNlcnZpY2VDb25maWcgPSB7XHJcbiAgICBhcGlVcmw6ICdodHRwOi8vdXRpbGl0eWFwaS9hdXRoZW50aWNhdGUnLFxyXG4gICAgdG9rZW5OYW1lOiAndXNlcidcclxufSJdfQ==
@@ -0,0 +1,4 @@
1
+ import { ServiceConfig as BaseServiceConfig } from '@cleavelandprice/ngx-lib/authentication';
2
+ export class ServiceConfig extends BaseServiceConfig {
3
+ }
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGVhdmVsYW5kcHJpY2Uvbmd4LWxpYi9hdXRoZW50aWNhdGlvbi9vYmplY3Qvc3JjL21vZGVsL3NlcnZpY2UtY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLElBQUksaUJBQWlCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUU3RixNQUFNLE9BQU8sYUFBYyxTQUFRLGlCQUFpQjtDQUNuRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNlcnZpY2VDb25maWcgYXMgQmFzZVNlcnZpY2VDb25maWcgfSBmcm9tICdAY2xlYXZlbGFuZHByaWNlL25neC1saWIvYXV0aGVudGljYXRpb24nO1xyXG5cclxuZXhwb3J0IGNsYXNzIFNlcnZpY2VDb25maWcgZXh0ZW5kcyBCYXNlU2VydmljZUNvbmZpZyB7XHJcbn0iXX0=