@cleavelandprice/ngx-lib 3.0.9 → 3.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/active-directory/model/ad-object-with-children.d.ts +4 -0
- package/active-directory/model/cleaveland-price-user.d.ts +17 -0
- package/active-directory/model/group.d.ts +7 -0
- package/active-directory/model/user.d.ts +0 -9
- package/active-directory/public_api.d.ts +3 -0
- package/active-directory/services/active-directory.service.d.ts +13 -0
- package/authentication/authentication.module.d.ts +3 -16
- package/authentication/model/abstract-authentication-service.d.ts +14 -0
- package/authentication/model/service-config.d.ts +1 -0
- package/authentication/object/authentication-object.module.d.ts +11 -0
- package/authentication/object/index.d.ts +5 -0
- package/authentication/object/model/default-config.d.ts +2 -0
- package/authentication/object/model/service-config.d.ts +3 -0
- package/authentication/object/public_api.d.ts +4 -0
- package/authentication/object/services/authentication-object.service.d.ts +23 -0
- package/authentication/public_api.d.ts +1 -6
- package/authentication/token/authentication-token.module.d.ts +11 -0
- package/authentication/token/gui/authentication-token-gui.module.d.ts +20 -0
- package/authentication/{components → token/gui/components}/login/login.component.d.ts +3 -3
- package/authentication/{components → token/gui/components}/login-form/login-form.component.d.ts +3 -3
- package/authentication/token/gui/index.d.ts +5 -0
- package/authentication/token/gui/model/default-config.d.ts +2 -0
- package/authentication/{model → token/gui/model}/login-form-data.d.ts +0 -0
- package/authentication/token/gui/model/service-config.d.ts +3 -0
- package/authentication/token/gui/public_api.d.ts +7 -0
- package/authentication/token/gui/services/authentication-token-gui.service.d.ts +15 -0
- package/authentication/token/index.d.ts +5 -0
- package/authentication/{model → token/model}/authentication-token.d.ts +0 -0
- package/authentication/token/model/default-config.d.ts +2 -0
- package/authentication/token/model/service-config.d.ts +4 -0
- package/authentication/token/public_api.d.ts +5 -0
- package/authentication/token/services/authentication-token.service.d.ts +22 -0
- package/esm2020/active-directory/active-directory.module.mjs +5 -5
- package/esm2020/active-directory/model/ad-object-with-children.mjs +2 -0
- package/esm2020/active-directory/model/cleaveland-price-user.mjs +2 -0
- package/esm2020/active-directory/model/default-config.mjs +2 -2
- package/esm2020/active-directory/model/group.mjs +2 -0
- package/esm2020/active-directory/model/user.mjs +1 -1
- package/esm2020/active-directory/public_api.mjs +4 -1
- package/esm2020/active-directory/services/active-directory.service.mjs +38 -10
- package/esm2020/authentication/authentication.module.mjs +10 -68
- package/esm2020/authentication/model/abstract-authentication-service.mjs +2 -0
- package/esm2020/authentication/model/service-config.mjs +1 -1
- package/esm2020/authentication/object/authentication-object.module.mjs +39 -0
- package/esm2020/authentication/object/cleavelandprice-ngx-lib-authentication-object.mjs +5 -0
- package/esm2020/authentication/object/model/default-config.mjs +5 -0
- package/esm2020/authentication/object/model/service-config.mjs +4 -0
- package/esm2020/authentication/object/public_api.mjs +5 -0
- package/esm2020/authentication/object/services/authentication-object.service.mjs +101 -0
- package/esm2020/authentication/public_api.mjs +2 -7
- package/esm2020/authentication/token/authentication-token.module.mjs +39 -0
- package/esm2020/authentication/token/cleavelandprice-ngx-lib-authentication-token.mjs +5 -0
- package/esm2020/authentication/token/gui/authentication-token-gui.module.mjs +77 -0
- package/esm2020/authentication/token/gui/cleavelandprice-ngx-lib-authentication-token-gui.mjs +5 -0
- package/esm2020/authentication/token/gui/components/login/login.component.mjs +39 -0
- package/esm2020/authentication/token/gui/components/login-form/login-form.component.mjs +60 -0
- package/esm2020/authentication/token/gui/model/default-config.mjs +6 -0
- package/esm2020/authentication/token/gui/model/login-form-data.mjs +2 -0
- package/esm2020/authentication/token/gui/model/service-config.mjs +4 -0
- package/esm2020/authentication/token/gui/public_api.mjs +8 -0
- package/esm2020/authentication/token/gui/services/authentication-token-gui.service.mjs +74 -0
- package/esm2020/authentication/token/model/authentication-token.mjs +2 -0
- package/esm2020/authentication/token/model/default-config.mjs +6 -0
- package/esm2020/authentication/token/model/service-config.mjs +4 -0
- package/esm2020/authentication/token/public_api.mjs +6 -0
- package/esm2020/authentication/token/services/authentication-token.service.mjs +112 -0
- package/esm2020/dialog/components/base/base.component.mjs +4 -4
- package/esm2020/dialog/components/choice/choice.component.mjs +4 -4
- package/esm2020/dialog/components/confirmation/confirmation.component.mjs +4 -4
- package/esm2020/dialog/components/input/input.component.mjs +4 -4
- package/esm2020/dialog/components/message/message.component.mjs +4 -4
- package/esm2020/dialog/dialog.module.mjs +4 -4
- package/esm2020/lib/ngx-lib.module.mjs +6 -6
- package/esm2020/lib/services/app-path-config.service.mjs +4 -4
- package/esm2020/public_api.mjs +2 -1
- package/esm2020/sharepoint/services/sharepoint.service.mjs +6 -8
- package/esm2020/sharepoint/sharepoint.module.mjs +11 -11
- package/esm2020/upload/components/upload/upload.component.mjs +5 -5
- package/esm2020/upload/components/upload-dialog/upload-dialog.component.mjs +5 -5
- package/esm2020/upload/services/upload.service.mjs +4 -4
- package/esm2020/upload/upload.module.mjs +7 -7
- package/esm2020/url-utilities/pipes/safe-resource-url.pipe.mjs +3 -3
- package/esm2020/url-utilities/pipes/safe-url.pipe.mjs +3 -3
- package/esm2020/url-utilities/pipes/uri-scheme.pipe.mjs +3 -3
- package/esm2020/url-utilities/url-utilities.module.mjs +4 -4
- package/fesm2015/cleavelandprice-ngx-lib-active-directory.mjs +41 -13
- package/fesm2015/cleavelandprice-ngx-lib-active-directory.mjs.map +1 -1
- package/fesm2015/cleavelandprice-ngx-lib-authentication-object.mjs +151 -0
- package/fesm2015/cleavelandprice-ngx-lib-authentication-object.mjs.map +1 -0
- package/fesm2015/cleavelandprice-ngx-lib-authentication-token-gui.mjs +251 -0
- package/fesm2015/cleavelandprice-ngx-lib-authentication-token-gui.mjs.map +1 -0
- package/fesm2015/cleavelandprice-ngx-lib-authentication-token.mjs +163 -0
- package/fesm2015/cleavelandprice-ngx-lib-authentication-token.mjs.map +1 -0
- package/fesm2015/cleavelandprice-ngx-lib-authentication.mjs +10 -282
- package/fesm2015/cleavelandprice-ngx-lib-authentication.mjs.map +1 -1
- package/fesm2015/cleavelandprice-ngx-lib-dialog.mjs +19 -19
- package/fesm2015/cleavelandprice-ngx-lib-dialog.mjs.map +1 -1
- package/fesm2015/cleavelandprice-ngx-lib-sharepoint.mjs +14 -16
- package/fesm2015/cleavelandprice-ngx-lib-sharepoint.mjs.map +1 -1
- package/fesm2015/cleavelandprice-ngx-lib-upload.mjs +15 -15
- package/fesm2015/cleavelandprice-ngx-lib-upload.mjs.map +1 -1
- package/fesm2015/cleavelandprice-ngx-lib-url-utilities.mjs +13 -13
- package/fesm2015/cleavelandprice-ngx-lib.mjs +11 -11
- package/fesm2015/cleavelandprice-ngx-lib.mjs.map +1 -1
- package/fesm2020/cleavelandprice-ngx-lib-active-directory.mjs +41 -13
- package/fesm2020/cleavelandprice-ngx-lib-active-directory.mjs.map +1 -1
- package/fesm2020/cleavelandprice-ngx-lib-authentication-object.mjs +150 -0
- package/fesm2020/cleavelandprice-ngx-lib-authentication-object.mjs.map +1 -0
- package/fesm2020/cleavelandprice-ngx-lib-authentication-token-gui.mjs +246 -0
- package/fesm2020/cleavelandprice-ngx-lib-authentication-token-gui.mjs.map +1 -0
- package/fesm2020/cleavelandprice-ngx-lib-authentication-token.mjs +162 -0
- package/fesm2020/cleavelandprice-ngx-lib-authentication-token.mjs.map +1 -0
- package/fesm2020/cleavelandprice-ngx-lib-authentication.mjs +10 -277
- package/fesm2020/cleavelandprice-ngx-lib-authentication.mjs.map +1 -1
- package/fesm2020/cleavelandprice-ngx-lib-dialog.mjs +19 -19
- package/fesm2020/cleavelandprice-ngx-lib-dialog.mjs.map +1 -1
- package/fesm2020/cleavelandprice-ngx-lib-sharepoint.mjs +14 -16
- package/fesm2020/cleavelandprice-ngx-lib-sharepoint.mjs.map +1 -1
- package/fesm2020/cleavelandprice-ngx-lib-upload.mjs +15 -15
- package/fesm2020/cleavelandprice-ngx-lib-upload.mjs.map +1 -1
- package/fesm2020/cleavelandprice-ngx-lib-url-utilities.mjs +13 -13
- package/fesm2020/cleavelandprice-ngx-lib.mjs +11 -11
- package/fesm2020/cleavelandprice-ngx-lib.mjs.map +1 -1
- package/package.json +28 -3
- package/public_api.d.ts +1 -0
- package/sharepoint/services/sharepoint.service.d.ts +3 -3
- package/sharepoint/sharepoint.module.d.ts +6 -6
- package/upload/components/upload/upload.component.d.ts +1 -1
- package/upload/components/upload-dialog/upload-dialog.component.d.ts +1 -1
- package/upload/services/upload.service.d.ts +2 -2
- package/authentication/model/default-config.d.ts +0 -2
- package/authentication/services/authentication.service.d.ts +0 -25
- package/esm2020/authentication/components/login/login.component.mjs +0 -39
- package/esm2020/authentication/components/login-form/login-form.component.mjs +0 -60
- package/esm2020/authentication/model/authentication-token.mjs +0 -2
- package/esm2020/authentication/model/default-config.mjs +0 -4
- package/esm2020/authentication/model/login-form-data.mjs +0 -2
- package/esm2020/authentication/services/authentication.service.mjs +0 -126
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { User } from "./user";
|
|
2
|
+
export interface CleavelandPriceUser extends User {
|
|
3
|
+
city: string;
|
|
4
|
+
extensionAttribute1: string;
|
|
5
|
+
extensionAttribute2: string;
|
|
6
|
+
extensionAttribute3: string;
|
|
7
|
+
extensionAttribute4: string;
|
|
8
|
+
extensionAttribute5: string;
|
|
9
|
+
extensionAttribute6: string;
|
|
10
|
+
firstName: string;
|
|
11
|
+
hireDate: Date;
|
|
12
|
+
lastName: string;
|
|
13
|
+
marketTitle: string;
|
|
14
|
+
state: string;
|
|
15
|
+
title2: string;
|
|
16
|
+
workShift: string;
|
|
17
|
+
}
|
|
@@ -19,14 +19,5 @@ export interface User extends UserOrGroup {
|
|
|
19
19
|
thumbnailPhoto: number[];
|
|
20
20
|
userAccountControl: number;
|
|
21
21
|
userPrincipalName: string;
|
|
22
|
-
hireDate: Date;
|
|
23
|
-
marketTitle: string;
|
|
24
|
-
workShift: string;
|
|
25
|
-
extensionAttribute1: string;
|
|
26
|
-
extensionAttribute2: string;
|
|
27
|
-
extensionAttribute3: string;
|
|
28
|
-
extensionAttribute4: string;
|
|
29
|
-
extensionAttribute5: string;
|
|
30
|
-
extensionAttribute6: string;
|
|
31
22
|
enabled: boolean;
|
|
32
23
|
}
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
export * from './model/ad-object';
|
|
2
|
+
export * from './model/ad-object-with-children';
|
|
2
3
|
export * from './model/caching-config';
|
|
4
|
+
export * from './model/cleaveland-price-user';
|
|
3
5
|
export * from './model/default-caching-config';
|
|
4
6
|
export * from './model/default-config';
|
|
5
7
|
export * from './model/default-logging-config';
|
|
8
|
+
export * from './model/group';
|
|
6
9
|
export * from './model/logging-config';
|
|
7
10
|
export * from './model/service-config';
|
|
8
11
|
export * from './model/user-or-group';
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import { HttpClient } from '@angular/common/http';
|
|
2
2
|
import { Observable } from 'rxjs';
|
|
3
|
+
import { ADObject } from '../model/ad-object';
|
|
4
|
+
import { ADObjectWithChildren } from '../model/ad-object-with-children';
|
|
5
|
+
import { Group } from '../model/group';
|
|
3
6
|
import { ServiceConfig } from '../model/service-config';
|
|
4
7
|
import { User } from '../model/user';
|
|
5
8
|
import * as i0 from "@angular/core";
|
|
@@ -13,6 +16,16 @@ export declare class ActiveDirectoryService {
|
|
|
13
16
|
getUsers(includePhoto?: boolean, includeDisabled?: boolean, parentOU?: string): Observable<User[]>;
|
|
14
17
|
getUser(accountName: string, includePhoto?: boolean): Observable<User>;
|
|
15
18
|
clearCache(): void;
|
|
19
|
+
getDomains(): Observable<ADObject[]>;
|
|
20
|
+
getOUs(parentOU?: string): Observable<ADObjectWithChildren[]>;
|
|
21
|
+
getContainers(parentOU?: string): Observable<ADObjectWithChildren[]>;
|
|
22
|
+
getGroups(parentOU?: string): Observable<Group[]>;
|
|
23
|
+
getDistinctUserAttributeValues(attributeName: string): Observable<any[]>;
|
|
24
|
+
getDepartments(): Observable<string[]>;
|
|
25
|
+
getTitles(): Observable<string[]>;
|
|
26
|
+
getComputers(includeDisabled?: boolean, parentOU?: string): Observable<User[]>;
|
|
27
|
+
getServers(includeDisabled?: boolean, parentOU?: string): Observable<User[]>;
|
|
28
|
+
getWorkstations(includeDisabled?: boolean, parentOU?: string): Observable<User[]>;
|
|
16
29
|
static ɵfac: i0.ɵɵFactoryDeclaration<ActiveDirectoryService, [{ optional: true; }, null]>;
|
|
17
30
|
static ɵprov: i0.ɵɵInjectableDeclaration<ActiveDirectoryService>;
|
|
18
31
|
}
|
|
@@ -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 "
|
|
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
|
|
16
|
-
|
|
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
|
+
}
|
|
@@ -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,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 {
|
|
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:
|
|
6
|
+
authenticationService: AuthenticationTokenGuiService;
|
|
7
7
|
adminGroup: string;
|
|
8
|
-
constructor(dialog: MatDialog, authenticationService:
|
|
8
|
+
constructor(dialog: MatDialog, authenticationService: AuthenticationTokenGuiService);
|
|
9
9
|
login(): void;
|
|
10
10
|
confirmLogout(): void;
|
|
11
11
|
static ɵfac: i0.ɵɵFactoryDeclaration<LoginComponent, never>;
|
package/authentication/{components → token/gui/components}/login-form/login-form.component.d.ts
RENAMED
|
@@ -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:
|
|
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:
|
|
15
|
+
constructor(data: LoginFormData, dialogRef: MatDialogRef<LoginFormComponent>, authenticationService: AuthenticationTokenGuiService);
|
|
16
16
|
ngOnInit(): void;
|
|
17
17
|
ngOnDestroy(): void;
|
|
18
18
|
authenticate(): void;
|
|
File without changes
|
|
@@ -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
|
+
}
|
|
File without changes
|
|
@@ -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.
|
|
23
|
-
ActiveDirectoryModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.
|
|
24
|
-
ActiveDirectoryModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.
|
|
25
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.
|
|
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,
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZlLWRpcmVjdG9yeS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGVhdmVsYW5kcHJpY2Uvbmd4LWxpYi9hY3RpdmUtZGlyZWN0b3J5L3NyYy9hY3RpdmUtZGlyZWN0b3J5Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXVCLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFdkQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0scUNBQXFDLENBQUM7O0FBUTdFLE1BQU0sT0FBTyxxQkFBcUI7SUFXaEMsWUFBb0MsWUFBbUM7UUFDckUsSUFBSSxZQUFZLEVBQUU7WUFDaEIsTUFBTSxJQUFJLEtBQUssQ0FDYiwwRUFBMEUsQ0FBQyxDQUFDO1NBQy9FO0lBQ0gsQ0FBQztJQWZELE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBcUI7UUFDbEMsT0FBTztZQUNMLFFBQVEsRUFBRSxxQkFBcUI7WUFDL0IsU0FBUyxFQUFFO2dCQUNULHNCQUFzQjtnQkFDdEIsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUU7YUFDN0M7U0FDRixDQUFDO0lBQ0osQ0FBQzs7a0hBVFUscUJBQXFCO21IQUFyQixxQkFBcUIsWUFIOUIsWUFBWTttSEFHSCxxQkFBcUIsWUFIOUIsWUFBWTsyRkFHSCxxQkFBcUI7a0JBTmpDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLEVBQUU7b0JBQ2hCLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3FCQUNiO2lCQUNGOzswQkFZYyxRQUFROzswQkFBSSxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUsIE9wdGlvbmFsLCBTa2lwU2VsZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5cclxuaW1wb3J0IHsgU2VydmljZUNvbmZpZyB9IGZyb20gJy4vbW9kZWwvc2VydmljZS1jb25maWcnO1xyXG5cclxuaW1wb3J0IHsgQWN0aXZlRGlyZWN0b3J5U2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvYWN0aXZlLWRpcmVjdG9yeS5zZXJ2aWNlJztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbXSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGVcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBY3RpdmVEaXJlY3RvcnlNb2R1bGUge1xyXG4gIHN0YXRpYyBmb3JSb290KGNvbmZpZzogU2VydmljZUNvbmZpZyk6IE1vZHVsZVdpdGhQcm92aWRlcnM8QWN0aXZlRGlyZWN0b3J5TW9kdWxlPiB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBuZ01vZHVsZTogQWN0aXZlRGlyZWN0b3J5TW9kdWxlLFxyXG4gICAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICBBY3RpdmVEaXJlY3RvcnlTZXJ2aWNlLFxyXG4gICAgICAgIHsgcHJvdmlkZTogU2VydmljZUNvbmZpZywgdXNlVmFsdWU6IGNvbmZpZyB9XHJcbiAgICAgIF1cclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBAU2tpcFNlbGYoKSBwYXJlbnRNb2R1bGU6IEFjdGl2ZURpcmVjdG9yeU1vZHVsZSkge1xyXG4gICAgaWYgKHBhcmVudE1vZHVsZSkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXHJcbiAgICAgICAgJ0FjdGl2ZURpcmVjdG9yeU1vZHVsZSBpcyBhbHJlYWR5IGxvYWRlZC4gSW1wb3J0IGl0IGluIHRoZSBBcHBNb2R1bGUgb25seScpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWQtb2JqZWN0LXdpdGgtY2hpbGRyZW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGVhdmVsYW5kcHJpY2Uvbmd4LWxpYi9hY3RpdmUtZGlyZWN0b3J5L3NyYy9tb2RlbC9hZC1vYmplY3Qtd2l0aC1jaGlsZHJlbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQURPYmplY3QgfSBmcm9tIFwiLi9hZC1vYmplY3RcIjtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQURPYmplY3RXaXRoQ2hpbGRyZW4gZXh0ZW5kcyBBRE9iamVjdCB7XHJcbiAgICBjaGlsZHJlbjogQURPYmplY3RXaXRoQ2hpbGRyZW5bXTtcclxufSJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xlYXZlbGFuZC1wcmljZS11c2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xlYXZlbGFuZHByaWNlL25neC1saWIvYWN0aXZlLWRpcmVjdG9yeS9zcmMvbW9kZWwvY2xlYXZlbGFuZC1wcmljZS11c2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBVc2VyIH0gZnJvbSBcIi4vdXNlclwiO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDbGVhdmVsYW5kUHJpY2VVc2VyIGV4dGVuZHMgVXNlciB7XHJcbiAgICBjaXR5OiBzdHJpbmc7XHJcbiAgICBleHRlbnNpb25BdHRyaWJ1dGUxOiBzdHJpbmc7XHJcbiAgICBleHRlbnNpb25BdHRyaWJ1dGUyOiBzdHJpbmc7XHJcbiAgICBleHRlbnNpb25BdHRyaWJ1dGUzOiBzdHJpbmc7XHJcbiAgICBleHRlbnNpb25BdHRyaWJ1dGU0OiBzdHJpbmc7XHJcbiAgICBleHRlbnNpb25BdHRyaWJ1dGU1OiBzdHJpbmc7XHJcbiAgICBleHRlbnNpb25BdHRyaWJ1dGU2OiBzdHJpbmc7XHJcbiAgICBmaXJzdE5hbWU6IHN0cmluZztcclxuICAgIGhpcmVEYXRlOiBEYXRlO1xyXG4gICAgbGFzdE5hbWU6IHN0cmluZztcclxuICAgIG1hcmtldFRpdGxlOiBzdHJpbmc7XHJcbiAgICBzdGF0ZTogc3RyaW5nO1xyXG4gICAgdGl0bGUyOiBzdHJpbmc7XHJcbiAgICB3b3JrU2hpZnQ6IHN0cmluZztcclxufSJdfQ==
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { defaultCachingConfig } from './default-caching-config';
|
|
2
2
|
import { defaultLoggingConfig } from "./default-logging-config";
|
|
3
3
|
export const defaultConfig = {
|
|
4
|
-
apiUrl: 'http://utilityapi
|
|
4
|
+
apiUrl: 'http://utilityapi',
|
|
5
5
|
caching: defaultCachingConfig,
|
|
6
6
|
logging: defaultLoggingConfig
|
|
7
7
|
};
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC1jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGVhdmVsYW5kcHJpY2Uvbmd4LWxpYi9hY3RpdmUtZGlyZWN0b3J5L3NyYy9tb2RlbC9kZWZhdWx0LWNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUVoRSxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQWtCO0lBQ3hDLE1BQU0sRUFBRSxtQkFBbUI7SUFDM0IsT0FBTyxFQUFFLG9CQUFvQjtJQUM3QixPQUFPLEVBQUUsb0JBQW9CO0NBQ2hDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTZXJ2aWNlQ29uZmlnIH0gZnJvbSBcIi4vc2VydmljZS1jb25maWdcIjtcclxuaW1wb3J0IHsgZGVmYXVsdENhY2hpbmdDb25maWcgfSBmcm9tICcuL2RlZmF1bHQtY2FjaGluZy1jb25maWcnO1xyXG5pbXBvcnQgeyBkZWZhdWx0TG9nZ2luZ0NvbmZpZyB9IGZyb20gXCIuL2RlZmF1bHQtbG9nZ2luZy1jb25maWdcIjtcclxuXHJcbmV4cG9ydCBjb25zdCBkZWZhdWx0Q29uZmlnOiBTZXJ2aWNlQ29uZmlnID0ge1xyXG4gICAgYXBpVXJsOiAnaHR0cDovL3V0aWxpdHlhcGknLFxyXG4gICAgY2FjaGluZzogZGVmYXVsdENhY2hpbmdDb25maWcsXHJcbiAgICBsb2dnaW5nOiBkZWZhdWx0TG9nZ2luZ0NvbmZpZ1xyXG59Il19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGVhdmVsYW5kcHJpY2Uvbmd4LWxpYi9hY3RpdmUtZGlyZWN0b3J5L3NyYy9tb2RlbC9ncm91cC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVXNlck9yR3JvdXAgfSBmcm9tIFwiLi91c2VyLW9yLWdyb3VwXCI7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEdyb3VwIGV4dGVuZHMgVXNlck9yR3JvdXAge1xyXG4gICAgbWVtYmVyOiBzdHJpbmdbXTtcclxuICAgIGdyb3VwVHlwZTogbnVtYmVyO1xyXG4gICAgc2NvcGU6IHN0cmluZztcclxuICAgIHR5cGU6IHN0cmluZztcclxufSJdfQ==
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsZWF2ZWxhbmRwcmljZS9uZ3gtbGliL2FjdGl2ZS1kaXJlY3Rvcnkvc3JjL21vZGVsL3VzZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFVzZXJPckdyb3VwIH0gZnJvbSAnLi91c2VyLW9yLWdyb3VwJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVXNlciBleHRlbmRzIFVzZXJPckdyb3VwIHtcclxuICBiaXJ0aERhdGU6IERhdGU7XHJcbiAgZGVwYXJ0bWVudDogc3RyaW5nO1xyXG4gIGVtcGxveWVlTnVtYmVyOiBzdHJpbmc7XHJcbiAgZmFjc2ltaWxlVGVsZXBob25lTnVtYmVyOiBzdHJpbmc7XHJcbiAgZ2l2ZW5OYW1lOiBzdHJpbmc7IC8vIEZpcnN0IG5hbWVcclxuICBpbml0aWFsczogc3RyaW5nO1xyXG4gIGw6IHN0cmluZzsgLy8gQ2l0eVxyXG4gIGxhc3RCYWRQYXNzd29yZEF0dGVtcHQ6IERhdGU7XHJcbiAgbGFzdExvZ29uRGF0ZTogRGF0ZTtcclxuICBtYW5hZ2VyOiBzdHJpbmc7XHJcbiAgbW9iaWxlOiBzdHJpbmc7XHJcbiAgc2NyaXB0UGF0aDogc3RyaW5nO1xyXG4gIHNuOiBzdHJpbmc7IC8vIFN1cm5hbWUgKExhc3QgbmFtZSlcclxuICBzdDogc3RyaW5nOyAvLyBTdGF0ZVxyXG4gIHRlbGVwaG9uZU51bWJlcjogc3RyaW5nO1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgdGh1bWJuYWlsUGhvdG86IG51bWJlcltdO1xyXG4gIHVzZXJBY2NvdW50Q29udHJvbDogbnVtYmVyO1xyXG4gIHVzZXJQcmluY2lwYWxOYW1lOiBzdHJpbmc7XHJcblxyXG4gIGVuYWJsZWQ6IGJvb2xlYW47IC8vIE5vdCBhIHJlYWwgQUQgcHJvcGVydHkgLSBjYWxjdWxhdGVkIGJ5IEFQSVxyXG59Il19
|
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
export * from './model/ad-object';
|
|
2
|
+
export * from './model/ad-object-with-children';
|
|
2
3
|
export * from './model/caching-config';
|
|
4
|
+
export * from './model/cleaveland-price-user';
|
|
3
5
|
export * from './model/default-caching-config';
|
|
4
6
|
export * from './model/default-config';
|
|
5
7
|
export * from './model/default-logging-config';
|
|
8
|
+
export * from './model/group';
|
|
6
9
|
export * from './model/logging-config';
|
|
7
10
|
export * from './model/service-config';
|
|
8
11
|
export * from './model/user-or-group';
|
|
9
12
|
export * from './model/user';
|
|
10
13
|
export * from './services/active-directory.service';
|
|
11
14
|
export * from './active-directory.module';
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsZWF2ZWxhbmRwcmljZS9uZ3gtbGliL2FjdGl2ZS1kaXJlY3Rvcnkvc3JjL3B1YmxpY19hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLGNBQWMsQ0FBQztBQUU3QixjQUFjLHFDQUFxQyxDQUFDO0FBRXBELGNBQWMsMkJBQTJCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL21vZGVsL2FkLW9iamVjdCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWwvYWQtb2JqZWN0LXdpdGgtY2hpbGRyZW4nO1xyXG5leHBvcnQgKiBmcm9tICcuL21vZGVsL2NhY2hpbmctY29uZmlnJztcclxuZXhwb3J0ICogZnJvbSAnLi9tb2RlbC9jbGVhdmVsYW5kLXByaWNlLXVzZXInO1xyXG5leHBvcnQgKiBmcm9tICcuL21vZGVsL2RlZmF1bHQtY2FjaGluZy1jb25maWcnO1xyXG5leHBvcnQgKiBmcm9tICcuL21vZGVsL2RlZmF1bHQtY29uZmlnJztcclxuZXhwb3J0ICogZnJvbSAnLi9tb2RlbC9kZWZhdWx0LWxvZ2dpbmctY29uZmlnJztcclxuZXhwb3J0ICogZnJvbSAnLi9tb2RlbC9ncm91cCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWwvbG9nZ2luZy1jb25maWcnO1xyXG5leHBvcnQgKiBmcm9tICcuL21vZGVsL3NlcnZpY2UtY29uZmlnJztcclxuZXhwb3J0ICogZnJvbSAnLi9tb2RlbC91c2VyLW9yLWdyb3VwJztcclxuZXhwb3J0ICogZnJvbSAnLi9tb2RlbC91c2VyJztcclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvYWN0aXZlLWRpcmVjdG9yeS5zZXJ2aWNlJztcclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vYWN0aXZlLWRpcmVjdG9yeS5tb2R1bGUnOyJdfQ==
|
|
@@ -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
|
|
@@ -42,11 +40,11 @@ export class ActiveDirectoryService {
|
|
|
42
40
|
return moment().isAfter(expiration);
|
|
43
41
|
}
|
|
44
42
|
//#endregion
|
|
45
|
-
getUsers(includePhoto = false, includeDisabled = false, parentOU) {
|
|
43
|
+
getUsers(includePhoto = false, includeDisabled = false, parentOU = '') {
|
|
46
44
|
// If caching is enabled, there will be two calls to the API if the cache is null/expired
|
|
47
45
|
// One call is to update the cache and the other is to return the data that the user requested
|
|
48
46
|
// Subsequent calls will bypass the API and returned cached data until it expires
|
|
49
|
-
const observable$ = this.http.get(`${this.config.apiUrl}/${includePhoto}/${includeDisabled}/${parentOU
|
|
47
|
+
const observable$ = this.http.get(`${this.config.apiUrl}/users/${includePhoto}/${includeDisabled}/${parentOU}`);
|
|
50
48
|
if (this.config.caching?.enabled) {
|
|
51
49
|
if (this.cacheExpired) {
|
|
52
50
|
// Get the data and cache it
|
|
@@ -76,7 +74,7 @@ export class ActiveDirectoryService {
|
|
|
76
74
|
return observable$;
|
|
77
75
|
}
|
|
78
76
|
getUser(accountName, includePhoto = false) {
|
|
79
|
-
return this.http.get(`${this.config.apiUrl}/name/${accountName}/${includePhoto}`);
|
|
77
|
+
return this.http.get(`${this.config.apiUrl}/users/name/${accountName}/${includePhoto}`);
|
|
80
78
|
}
|
|
81
79
|
clearCache() {
|
|
82
80
|
this.cache = null;
|
|
@@ -84,10 +82,40 @@ export class ActiveDirectoryService {
|
|
|
84
82
|
console.log('Cache cleared');
|
|
85
83
|
}
|
|
86
84
|
}
|
|
85
|
+
getDomains() {
|
|
86
|
+
return this.http.get(`${this.config.apiUrl}/activedirectory/domains`);
|
|
87
|
+
}
|
|
88
|
+
getOUs(parentOU = '') {
|
|
89
|
+
return this.http.get(`${this.config.apiUrl}/activedirectory/ous/${parentOU}`);
|
|
90
|
+
}
|
|
91
|
+
getContainers(parentOU = '') {
|
|
92
|
+
return this.http.get(`${this.config.apiUrl}/activedirectory/containers/${parentOU}`);
|
|
93
|
+
}
|
|
94
|
+
getGroups(parentOU = '') {
|
|
95
|
+
return this.http.get(`${this.config.apiUrl}/activedirectory/groups/${parentOU}`);
|
|
96
|
+
}
|
|
97
|
+
getDistinctUserAttributeValues(attributeName) {
|
|
98
|
+
return this.http.get(`${this.config.apiUrl}/activedirectory/distinct/${attributeName}`);
|
|
99
|
+
}
|
|
100
|
+
getDepartments() {
|
|
101
|
+
return this.http.get(`${this.config.apiUrl}/activedirectory/departments`);
|
|
102
|
+
}
|
|
103
|
+
getTitles() {
|
|
104
|
+
return this.http.get(`${this.config.apiUrl}/activedirectory/titles`);
|
|
105
|
+
}
|
|
106
|
+
getComputers(includeDisabled = false, parentOU = '') {
|
|
107
|
+
return this.http.get(`${this.config.apiUrl}/activedirectory/computers/${includeDisabled}/${parentOU}`);
|
|
108
|
+
}
|
|
109
|
+
getServers(includeDisabled = false, parentOU = '') {
|
|
110
|
+
return this.http.get(`${this.config.apiUrl}/activedirectory/servers/${includeDisabled}/${parentOU}`);
|
|
111
|
+
}
|
|
112
|
+
getWorkstations(includeDisabled = false, parentOU = '') {
|
|
113
|
+
return this.http.get(`${this.config.apiUrl}/activedirectory/workstations/${includeDisabled}/${parentOU}`);
|
|
114
|
+
}
|
|
87
115
|
}
|
|
88
|
-
ActiveDirectoryService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.
|
|
89
|
-
ActiveDirectoryService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.
|
|
90
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.
|
|
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: [{
|
|
91
119
|
type: Injectable,
|
|
92
120
|
args: [{
|
|
93
121
|
providedIn: 'root'
|
|
@@ -95,4 +123,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImpor
|
|
|
95
123
|
}], ctorParameters: function () { return [{ type: i1.ServiceConfig, decorators: [{
|
|
96
124
|
type: Optional
|
|
97
125
|
}] }, { type: i2.HttpClient }]; } });
|
|
98
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZlLWRpcmVjdG9yeS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xlYXZlbGFuZHByaWNlL25neC1saWIvYWN0aXZlLWRpcmVjdG9yeS9zcmMvc2VydmljZXMvYWN0aXZlLWRpcmVjdG9yeS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGlCQUFpQjtBQUNqQixPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVyRCxPQUFPLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXRDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQU12RSxPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7Ozs7QUFDNUIsWUFBWTtBQUtaLE1BQU0sT0FBTyxzQkFBc0I7SUFnQmpDLFlBQVk7SUFFWix3QkFBd0I7SUFDeEIsbUlBQW1JO0lBQ25JLFlBQWdDLE1BQXFCLEVBQ2pDLElBQWdCO1FBREosV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUNqQyxTQUFJLEdBQUosSUFBSSxDQUFZO1FBcEI1QixVQUFLLEdBQTZCLElBQUksQ0FBQztRQUN2Qyw0QkFBdUIsR0FBRyxHQUFHLENBQUM7UUFxQnhCLElBQUksQ0FBQyxNQUFNLEdBQUc7WUFDWixHQUFHLGFBQWE7WUFDaEIsR0FBRyxJQUFJLENBQUMsTUFBTTtTQUNmLENBQUM7UUFFRixJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRztZQUNwQixHQUFHLG9CQUFvQjtZQUN2QixHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTztTQUN2QixDQUFDO1FBRUYsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEdB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QUhsQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBcUJjLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyIvLyNyZWdpb24gSW1wb3J0c1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBkZWZhdWx0Q29uZmlnIH0gZnJvbSAnLi4vbW9kZWwvZGVmYXVsdC1jb25maWcnO1xuaW1wb3J0IHsgZGVmYXVsdENhY2hpbmdDb25maWcgfSBmcm9tICcuLi9tb2RlbC9kZWZhdWx0LWNhY2hpbmctY29uZmlnJztcbmltcG9ydCB7IGRlZmF1bHRMb2dnaW5nQ29uZmlnIH0gZnJvbSAnLi4vbW9kZWwvZGVmYXVsdC1sb2dnaW5nLWNvbmZpZyc7XG5cbmltcG9ydCB7IENhY2hlT2JqZWN0IH0gZnJvbSAnLi4vbW9kZWwvY2FjaGUtb2JqZWN0JztcbmltcG9ydCB7IFNlcnZpY2VDb25maWcgfSBmcm9tICcuLi9tb2RlbC9zZXJ2aWNlLWNvbmZpZyc7XG5pbXBvcnQgeyBVc2VyIH0gZnJvbSAnLi4vbW9kZWwvdXNlcic7XG5cbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50Jztcbi8vI2VuZHJlZ2lvblxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBBY3RpdmVEaXJlY3RvcnlTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBjYWNoZTogQ2FjaGVPYmplY3Q8VXNlcj4gfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBkZWZhdWx0Q2FjaGVMaWZlTWludXRlcyA9IDcyMDtcblxuICAvLyNyZWdpb24gUHJvcGVydGllc1xuICBwcml2YXRlIGdldCBjYWNoZUV4cGlyZWQoKTogYm9vbGVhbiB7XG4gICAgaWYgKCF0aGlzLmNhY2hlKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBjb25zdCBsaWZlTWludXRlcyA9IHRoaXMuY29uZmlnLmNhY2hpbmc/LmxpZmVNaW51dGVzID8/IHRoaXMuZGVmYXVsdENhY2hlTGlmZU1pbnV0ZXM7XG4gICAgY29uc3QgZXhwaXJhdGlvbiA9IG1vbWVudCh0aGlzLmNhY2hlLmxhc3RVcGRhdGUpXG4gICAgICAuYWRkKGxpZmVNaW51dGVzLCAnbWludXRlcycpO1xuXG4gICAgcmV0dXJuIG1vbWVudCgpLmlzQWZ0ZXIoZXhwaXJhdGlvbik7XG4gIH1cbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIEluaXRpYWxpemF0aW9uXG4gIC8vIElmIGEgU2VydmljZUNvbmZpZyBvYmplY3QgaXMgbm90IHByb3ZpZGVkIHdoZW4gdGhlIG1vZHVsZSBpcyBpbXBvcnRlZCwgdGhlbiBkZWZhdWx0IHZhbHVlcyBhcmUgcHVsbGVkIGluIGZyb20gZGVmYXVsdC1jb25maWcudHMuXG4gIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIHByaXZhdGUgY29uZmlnOiBTZXJ2aWNlQ29uZmlnLFxuICAgICAgICAgICAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQpIHtcblxuICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnID0ge1xuICAgICAgICAgICAgICAgICAgLi4uZGVmYXVsdENvbmZpZyxcbiAgICAgICAgICAgICAgICAgIC4uLnRoaXMuY29uZmlnXG4gICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnLmNhY2hpbmcgPSB7XG4gICAgICAgICAgICAgICAgICAuLi5kZWZhdWx0Q2FjaGluZ0NvbmZpZyxcbiAgICAgICAgICAgICAgICAgIC4uLnRoaXMuY29uZmlnLmNhY2hpbmdcbiAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgdGhpcy5jb25maWcubG9nZ2luZyA9IHtcbiAgICAgICAgICAgICAgICAgIC4uLmRlZmF1bHRMb2dnaW5nQ29uZmlnLFxuICAgICAgICAgICAgICAgICAgLi4udGhpcy5jb25maWcubG9nZ2luZ1xuICAgICAgICAgICAgICAgIH07XG4gIH1cbiAgLy8jZW5kcmVnaW9uXG5cbiAgZ2V0VXNlcnMoaW5jbHVkZVBob3RvID0gZmFsc2UsIGluY2x1ZGVEaXNhYmxlZCA9IGZhbHNlLCBwYXJlbnRPVT86IHN0cmluZyk6IE9ic2VydmFibGU8VXNlcltdPiB7XG4gICAgLy8gSWYgY2FjaGluZyBpcyBlbmFibGVkLCB0aGVyZSB3aWxsIGJlIHR3byBjYWxscyB0byB0aGUgQVBJIGlmIHRoZSBjYWNoZSBpcyBudWxsL2V4cGlyZWRcbiAgICAvLyBPbmUgY2FsbCBpcyB0byB1cGRhdGUgdGhlIGNhY2hlIGFuZCB0aGUgb3RoZXIgaXMgdG8gcmV0dXJuIHRoZSBkYXRhIHRoYXQgdGhlIHVzZXIgcmVxdWVzdGVkXG4gICAgLy8gU3Vic2VxdWVudCBjYWxscyB3aWxsIGJ5cGFzcyB0aGUgQVBJIGFuZCByZXR1cm5lZCBjYWNoZWQgZGF0YSB1bnRpbCBpdCBleHBpcmVzXG5cbiAgICBjb25zdCBvYnNlcnZhYmxlJCA9IHRoaXMuaHR0cC5nZXQ8VXNlcltdPihgJHt0aGlzLmNvbmZpZy5hcGlVcmx9LyR7aW5jbHVkZVBob3RvfS8ke2luY2x1ZGVEaXNhYmxlZH0vJHtwYXJlbnRPVSA/PyAnJ31gKTtcblxuICAgIGlmICh0aGlzLmNvbmZpZy5jYWNoaW5nPy5lbmFibGVkKSB7XG4gICAgICBpZiAodGhpcy5jYWNoZUV4cGlyZWQpIHtcbiAgICAgICAgLy8gR2V0IHRoZSBkYXRhIGFuZCBjYWNoZSBpdFxuICAgICAgICBvYnNlcnZhYmxlJC5zdWJzY3JpYmUoZGF0YSA9PiB7XG4gICAgICAgICAgdGhpcy5jYWNoZSA9IHtcbiAgICAgICAgICAgIGRhdGEsXG4gICAgICAgICAgICBsYXN0VXBkYXRlOiBtb21lbnQoKVxuICAgICAgICAgIH07XG5cbiAgICAgICAgICBpZiAodGhpcy5jb25maWcubG9nZ2luZz8uZGF0YUNhY2hlZCkge1xuICAgICAgICAgICAgY29uc3QgbGlmZU1pbnV0ZXMgPSB0aGlzLmNvbmZpZy5jYWNoaW5nPy5saWZlTWludXRlcyA/PyB0aGlzLmRlZmF1bHRDYWNoZUxpZmVNaW51dGVzO1xuICAgICAgICAgICAgY29uc29sZS5sb2coYERhdGEgY2FjaGVkIGZvciAke2xpZmVNaW51dGVzfSBtaW51dGVzYCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIENhY2hlIGV4aXN0cyBhbmQgaGFzbid0IGV4cGlyZWQgeWV0XG4gICAgICAgIGlmICh0aGlzLmNvbmZpZy5sb2dnaW5nPy5jYWNoZWREYXRhUmV0dXJuZWQpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZygnUmV0dXJuaW5nIGNhY2hlZCB1c2VycycpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG9mKHRoaXMuY2FjaGUhLmRhdGEpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIENhY2hlIGlzIGVpdGhlciBkaXNhYmxlZCBvciBleHBpcmVkLCByZXR1cm4gZGF0YSBmcm9tIEFQSVxuICAgIGlmICh0aGlzLmNvbmZpZy5sb2dnaW5nPy5mcmVzaERhdGFSZXR1cm5lZCkge1xuICAgICAgY29uc29sZS5sb2coJ1JldHVybmluZyBmcmVzaCB1c2VycycpO1xuICAgIH1cblxuICAgIHJldHVybiBvYnNlcnZhYmxlJDtcbiAgfVxuXG4gIGdldFVzZXIoYWNjb3VudE5hbWU6IHN0cmluZywgaW5jbHVkZVBob3RvID0gZmFsc2UpOiBPYnNlcnZhYmxlPFVzZXI+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxVc2VyPihgJHt0aGlzLmNvbmZpZy5hcGlVcmx9L25hbWUvJHthY2NvdW50TmFtZX0vJHtpbmNsdWRlUGhvdG99YCk7XG4gIH1cblxuICBjbGVhckNhY2hlKCk6IHZvaWQge1xuICAgIHRoaXMuY2FjaGUgPSBudWxsO1xuXG4gICAgaWYgKHRoaXMuY29uZmlnLmxvZ2dpbmc/LmNhY2hlQ2xlYXJlZCkge1xuICAgICAgY29uc29sZS5sb2coJ0NhY2hlIGNsZWFyZWQnKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
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
|