@cleavelandprice/ngx-lib 4.4.2 → 4.4.4
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/README.md +5 -5
- package/active-directory/material/components/user-chooser/user-chooser.component.d.ts +18 -18
- package/esm2022/active-directory/active-directory.api.mjs +11 -0
- package/esm2022/active-directory/active-directory.module.mjs +40 -0
- package/esm2022/active-directory/cleavelandprice-ngx-lib-active-directory.mjs +5 -0
- package/esm2022/active-directory/material/cleavelandprice-ngx-lib-active-directory-material.mjs +5 -0
- package/esm2022/active-directory/material/components/user-chooser/user-chooser.component.mjs +437 -0
- package/esm2022/active-directory/material/components/user-form-field/user-form-field.component.mjs +159 -0
- package/esm2022/active-directory/material/mat-active-directory.api.mjs +11 -0
- package/esm2022/active-directory/material/mat-active-directory.module.mjs +100 -0
- package/esm2022/active-directory/material/model/default-user-chooser-data.mjs +15 -0
- package/esm2022/active-directory/material/model/default-user-chooser-filter-options.mjs +8 -0
- package/esm2022/active-directory/material/model/selectable-group.mjs +2 -0
- package/esm2022/active-directory/material/model/selectable-user.mjs +2 -0
- package/esm2022/active-directory/material/model/user-chooser-data.mjs +2 -0
- package/esm2022/active-directory/material/model/user-chooser-filter-options.mjs +3 -0
- package/esm2022/active-directory/material/model/user-chooser-mode.mjs +6 -0
- package/esm2022/active-directory/material/model/user-chooser-pre-processing-group.mjs +3 -0
- package/esm2022/active-directory/model/active-directory-service-options-token.mjs +3 -0
- package/esm2022/active-directory/model/active-directory-service-options.mjs +2 -0
- package/esm2022/active-directory/model/ad-object-with-children.mjs +2 -0
- package/esm2022/active-directory/model/ad-object.mjs +2 -0
- package/esm2022/active-directory/model/cache-object.mjs +3 -0
- package/esm2022/active-directory/model/cleaveland-price-user.mjs +2 -0
- package/esm2022/active-directory/model/group.mjs +2 -0
- package/esm2022/active-directory/model/user-or-group.mjs +2 -0
- package/esm2022/active-directory/model/user.mjs +2 -0
- package/esm2022/active-directory/services/active-directory.service.mjs +125 -0
- package/esm2022/authentication/authentication.api.mjs +7 -0
- package/esm2022/authentication/authentication.base.module.mjs +40 -0
- package/esm2022/authentication/cleavelandprice-ngx-lib-authentication.mjs +5 -0
- package/esm2022/authentication/material/cleavelandprice-ngx-lib-authentication-material.mjs +5 -0
- package/esm2022/authentication/material/components/login/login.component.mjs +49 -0
- package/esm2022/authentication/material/components/login-form/login-form.component.mjs +82 -0
- package/esm2022/authentication/material/mat-authentication.api.mjs +8 -0
- package/esm2022/authentication/material/mat-authentication.module.mjs +84 -0
- package/esm2022/authentication/material/model/login-form-data.mjs +2 -0
- package/esm2022/authentication/material/model/mat-authentication-service-options-token.mjs +3 -0
- package/esm2022/authentication/material/model/mat-authentication-service-options.mjs +2 -0
- package/esm2022/authentication/material/services/mat-authentication.service.mjs +67 -0
- package/esm2022/authentication/model/abstract-authentication-service.mjs +2 -0
- package/esm2022/authentication/model/authenticated-user.mjs +2 -0
- package/esm2022/authentication/model/authentication-request.mjs +2 -0
- package/esm2022/authentication/model/authentication-service-options-token.mjs +3 -0
- package/esm2022/authentication/model/authentication-service-options.mjs +2 -0
- package/esm2022/authentication/object/authentication-object.api.mjs +6 -0
- package/esm2022/authentication/object/authentication-object.module.mjs +40 -0
- package/esm2022/authentication/object/cleavelandprice-ngx-lib-authentication-object.mjs +5 -0
- package/esm2022/authentication/object/services/authentication-object.service.mjs +129 -0
- package/esm2022/authentication/token/authentication-token.api.mjs +6 -0
- package/esm2022/authentication/token/authetiction-token.module.mjs +40 -0
- package/esm2022/authentication/token/cleavelandprice-ngx-lib-authentication-token.mjs +5 -0
- package/esm2022/authentication/token/model/authentication-token-service-options-token.mjs +3 -0
- package/esm2022/authentication/token/model/authentication-token-service-options.mjs +2 -0
- package/esm2022/authentication/token/model/authentication-token.mjs +2 -0
- package/esm2022/authentication/token/services/authentication-token.service.mjs +138 -0
- package/esm2022/cleavelandprice-ngx-lib.mjs +5 -0
- package/esm2022/dialog/cleavelandprice-ngx-lib-dialog.mjs +5 -0
- package/esm2022/dialog/components/base/base.component.mjs +102 -0
- package/esm2022/dialog/components/choice/choice.component.mjs +21 -0
- package/esm2022/dialog/components/confirmation/confirmation.component.mjs +21 -0
- package/esm2022/dialog/components/input/input.component.mjs +21 -0
- package/esm2022/dialog/components/message/message.component.mjs +21 -0
- package/esm2022/dialog/dialog.api.mjs +20 -0
- package/esm2022/dialog/dialog.module.mjs +73 -0
- package/esm2022/dialog/model/confirmation-dialog-mode.mjs +8 -0
- package/esm2022/dialog/model/dialog-base-data.mjs +2 -0
- package/esm2022/dialog/model/dialog-choice-data.mjs +2 -0
- package/esm2022/dialog/model/dialog-type.mjs +8 -0
- package/esm2022/lib/model/app-path-config.mjs +2 -0
- package/esm2022/lib/model/app-type.mjs +2 -0
- package/esm2022/lib/model/app.mjs +2 -0
- package/esm2022/lib/model/caching-config.mjs +2 -0
- package/esm2022/lib/model/credentials.mjs +2 -0
- package/esm2022/lib/model/logging-config.mjs +2 -0
- package/esm2022/lib/model/service-options-token.mjs +3 -0
- package/esm2022/lib/model/service-options.mjs +2 -0
- package/esm2022/lib/ngx-lib.module.mjs +37 -0
- package/esm2022/lib/services/app-path-config.service.mjs +50 -0
- package/esm2022/lib/services/service-base.mjs +26 -0
- package/esm2022/msgraph/cleavelandprice-ngx-lib-msgraph.mjs +5 -0
- package/esm2022/msgraph/model/address.mjs +2 -0
- package/esm2022/msgraph/model/attendee.mjs +2 -0
- package/esm2022/msgraph/model/bulk-calendar-events.mjs +2 -0
- package/esm2022/msgraph/model/bulk-calendar-request.mjs +2 -0
- package/esm2022/msgraph/model/calendar-event.mjs +2 -0
- package/esm2022/msgraph/model/coordinates.mjs +2 -0
- package/esm2022/msgraph/model/email-address.mjs +2 -0
- package/esm2022/msgraph/model/location.mjs +2 -0
- package/esm2022/msgraph/model/online-meeting-info.mjs +2 -0
- package/esm2022/msgraph/model/patterned-recurrence.mjs +2 -0
- package/esm2022/msgraph/model/phone.mjs +2 -0
- package/esm2022/msgraph/model/recipient.mjs +2 -0
- package/esm2022/msgraph/model/recurrence-pattern.mjs +2 -0
- package/esm2022/msgraph/model/recurrence-range.mjs +2 -0
- package/esm2022/msgraph/model/response-status.mjs +2 -0
- package/esm2022/msgraph/model/room.mjs +6 -0
- package/esm2022/msgraph/model/user.mjs +132 -0
- package/esm2022/msgraph/msgraph.api.mjs +19 -0
- package/esm2022/msgraph/msgraph.module.mjs +27 -0
- package/esm2022/public_api.mjs +15 -0
- package/esm2022/quill/cleavelandprice-ngx-lib-quill.mjs +5 -0
- package/esm2022/quill/components/editor/editor.component.mjs +282 -0
- package/esm2022/quill/components/raw/raw.component.mjs +30 -0
- package/esm2022/quill/mention/cleavelandprice-ngx-lib-quill-mention.mjs +5 -0
- package/esm2022/quill/mention/components/editor/editor.component.mjs +151 -0
- package/esm2022/quill/mention/model/dialog-data.mjs +2 -0
- package/esm2022/quill/mention/quill-mention.api.mjs +9 -0
- package/esm2022/quill/mention/quill-mention.module.mjs +65 -0
- package/esm2022/quill/model/buttons.mjs +3 -0
- package/esm2022/quill/model/config.mjs +3 -0
- package/esm2022/quill/model/default-buttons.mjs +50 -0
- package/esm2022/quill/model/default-config.mjs +28 -0
- package/esm2022/quill/model/default-icons.mjs +7 -0
- package/esm2022/quill/model/default-tooltips.mjs +53 -0
- package/esm2022/quill/model/dialog-data.mjs +2 -0
- package/esm2022/quill/model/icons.mjs +3 -0
- package/esm2022/quill/model/tooltips.mjs +3 -0
- package/esm2022/quill/quill.api.mjs +13 -0
- package/esm2022/quill/quill.module.mjs +75 -0
- package/esm2022/sharepoint/cleavelandprice-ngx-lib-sharepoint.mjs +5 -0
- package/esm2022/sharepoint/components/user-photo/user-photo.component.mjs +40 -0
- package/esm2022/sharepoint/default-credentials.mjs +6 -0
- package/esm2022/sharepoint/model/base-item.mjs +2 -0
- package/esm2022/sharepoint/model/base-request-credential.mjs +2 -0
- package/esm2022/sharepoint/model/base-request.mjs +2 -0
- package/esm2022/sharepoint/model/cache-object.mjs +3 -0
- package/esm2022/sharepoint/model/file-request.mjs +2 -0
- package/esm2022/sharepoint/model/folder-request.mjs +2 -0
- package/esm2022/sharepoint/model/list-item.mjs +2 -0
- package/esm2022/sharepoint/model/list-items-request.mjs +2 -0
- package/esm2022/sharepoint/model/photo-item.mjs +2 -0
- package/esm2022/sharepoint/model/sharepoint-service-options.mjs +3 -0
- package/esm2022/sharepoint/model/uri-request.mjs +2 -0
- package/esm2022/sharepoint/model/user-request.mjs +2 -0
- package/esm2022/sharepoint/model/user.mjs +2 -0
- package/esm2022/sharepoint/pipes/user-photo-url.pipe.mjs +37 -0
- package/esm2022/sharepoint/services/sharepoint.service.mjs +155 -0
- package/esm2022/sharepoint/sharepoint.api.mjs +17 -0
- package/esm2022/sharepoint/sharepoint.module.mjs +50 -0
- package/esm2022/table/cleavelandprice-ngx-lib-table.mjs +5 -0
- package/esm2022/table/components/table/table.component.mjs +134 -0
- package/esm2022/table/model/table-column.mjs +2 -0
- package/esm2022/table/pipes/decimalPoints.mjs +14 -0
- package/esm2022/table/pipes/roundNumber.mjs +14 -0
- package/esm2022/table/table.api.mjs +6 -0
- package/esm2022/table/table.module.mjs +78 -0
- package/esm2022/upload/cleavelandprice-ngx-lib-upload.mjs +5 -0
- package/esm2022/upload/components/upload/upload.component.mjs +32 -0
- package/esm2022/upload/components/upload-dialog/upload-dialog.component.mjs +98 -0
- package/esm2022/upload/model/database-file-info.mjs +2 -0
- package/esm2022/upload/model/file-upload-request.mjs +2 -0
- package/esm2022/upload/model/filesystem-file-info.mjs +2 -0
- package/esm2022/upload/model/msg-file-content.mjs +5 -0
- package/esm2022/upload/model/upload-service-options-token.mjs +3 -0
- package/esm2022/upload/model/upload-service-options.mjs +3 -0
- package/esm2022/upload/model/upload-status.mjs +2 -0
- package/esm2022/upload/services/upload.service.mjs +106 -0
- package/esm2022/upload/upload.api.mjs +11 -0
- package/esm2022/upload/upload.module.mjs +68 -0
- package/esm2022/url-utilities/cleavelandprice-ngx-lib-url-utilities.mjs +5 -0
- package/esm2022/url-utilities/pipes/safe-resource-url.pipe.mjs +19 -0
- package/esm2022/url-utilities/pipes/safe-url.pipe.mjs +19 -0
- package/esm2022/url-utilities/pipes/uri-scheme.pipe.mjs +106 -0
- package/esm2022/url-utilities/url-utilities.api.mjs +13 -0
- package/esm2022/url-utilities/url-utilities.module.mjs +34 -0
- package/fesm2022/cleavelandprice-ngx-lib-active-directory-material.mjs +12 -12
- package/fesm2022/cleavelandprice-ngx-lib-active-directory-material.mjs.map +1 -1
- package/fesm2022/cleavelandprice-ngx-lib-active-directory.mjs +7 -7
- package/fesm2022/cleavelandprice-ngx-lib-active-directory.mjs.map +1 -1
- package/fesm2022/cleavelandprice-ngx-lib-authentication-material.mjs +15 -15
- package/fesm2022/cleavelandprice-ngx-lib-authentication-material.mjs.map +1 -1
- package/fesm2022/cleavelandprice-ngx-lib-authentication-object.mjs +7 -7
- package/fesm2022/cleavelandprice-ngx-lib-authentication-object.mjs.map +1 -1
- package/fesm2022/cleavelandprice-ngx-lib-authentication-token.mjs +7 -7
- package/fesm2022/cleavelandprice-ngx-lib-authentication-token.mjs.map +1 -1
- package/fesm2022/cleavelandprice-ngx-lib-authentication.mjs +4 -4
- package/fesm2022/cleavelandprice-ngx-lib-authentication.mjs.map +1 -1
- package/fesm2022/cleavelandprice-ngx-lib-dialog.mjs +24 -24
- package/fesm2022/cleavelandprice-ngx-lib-dialog.mjs.map +1 -1
- package/fesm2022/cleavelandprice-ngx-lib-msgraph.mjs +4 -4
- package/fesm2022/cleavelandprice-ngx-lib-msgraph.mjs.map +1 -1
- package/fesm2022/cleavelandprice-ngx-lib-quill-mention.mjs +10 -10
- package/fesm2022/cleavelandprice-ngx-lib-quill-mention.mjs.map +1 -1
- package/fesm2022/cleavelandprice-ngx-lib-quill.mjs +14 -14
- package/fesm2022/cleavelandprice-ngx-lib-quill.mjs.map +1 -1
- package/fesm2022/cleavelandprice-ngx-lib-sharepoint.mjs +14 -14
- package/fesm2022/cleavelandprice-ngx-lib-sharepoint.mjs.map +1 -1
- package/fesm2022/cleavelandprice-ngx-lib-table.mjs +28 -14
- package/fesm2022/cleavelandprice-ngx-lib-table.mjs.map +1 -1
- package/fesm2022/cleavelandprice-ngx-lib-upload.mjs +15 -14
- package/fesm2022/cleavelandprice-ngx-lib-upload.mjs.map +1 -1
- package/fesm2022/cleavelandprice-ngx-lib-url-utilities.mjs +13 -13
- package/fesm2022/cleavelandprice-ngx-lib-url-utilities.mjs.map +1 -1
- package/fesm2022/cleavelandprice-ngx-lib.mjs +7 -7
- package/fesm2022/cleavelandprice-ngx-lib.mjs.map +1 -1
- package/package.json +35 -5
- package/table/components/table/table.component.d.ts +5 -1
- package/table/model/table-column.d.ts +24 -1
package/esm2022/active-directory/material/components/user-form-field/user-form-field.component.mjs
ADDED
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
import { Component, inject, input, output } from '@angular/core';
|
|
2
|
+
import { MatDialog } from '@angular/material/dialog';
|
|
3
|
+
import { forkJoin, of } from 'rxjs';
|
|
4
|
+
import { ActiveDirectoryService } from '@cleavelandprice/ngx-lib/active-directory';
|
|
5
|
+
import { SharePointService } from '@cleavelandprice/ngx-lib/sharepoint';
|
|
6
|
+
import { DefaultUserChooserData } from '../../model/default-user-chooser-data';
|
|
7
|
+
import { NgClass } from '@angular/common';
|
|
8
|
+
import { MatButton, MatIconButton } from '@angular/material/button';
|
|
9
|
+
import { MatFormField, MatSuffix } from '@angular/material/form-field';
|
|
10
|
+
import { MatIcon } from '@angular/material/icon';
|
|
11
|
+
import { MatInput } from '@angular/material/input';
|
|
12
|
+
import { MatProgressBar } from '@angular/material/progress-bar';
|
|
13
|
+
import { UserChooserMode } from '../../mat-active-directory.api';
|
|
14
|
+
import { UserChooserComponent } from '../user-chooser/user-chooser.component';
|
|
15
|
+
import * as i0 from "@angular/core";
|
|
16
|
+
export class UserFormFieldComponent {
|
|
17
|
+
constructor() {
|
|
18
|
+
//#region Fields
|
|
19
|
+
this.#services = {
|
|
20
|
+
dialog: inject(MatDialog),
|
|
21
|
+
activeDirectory: inject(ActiveDirectoryService),
|
|
22
|
+
sharePoint: inject(SharePointService)
|
|
23
|
+
};
|
|
24
|
+
this.usersSelected = output(); // string for Single mode, string[] for multi
|
|
25
|
+
this.userUnSelected = output();
|
|
26
|
+
this.placeholder = input('Select User(s)');
|
|
27
|
+
this.clickable = input(true);
|
|
28
|
+
this.userChooserData = input.required();
|
|
29
|
+
}
|
|
30
|
+
//#region Fields
|
|
31
|
+
#services;
|
|
32
|
+
//#endregion
|
|
33
|
+
//#region Properties
|
|
34
|
+
/*get isEdge(): boolean {
|
|
35
|
+
return window.navigator.userAgent.indexOf('Edge') > -1;
|
|
36
|
+
}*/
|
|
37
|
+
get class() {
|
|
38
|
+
return this._userChooserData?.mode === UserChooserMode.Single ? '' :
|
|
39
|
+
(this.accountNames?.length ?? 0) > 4 ? 'grid five' :
|
|
40
|
+
(this.accountNames?.length ?? 0) > 3 ? 'grid four' :
|
|
41
|
+
(this.accountNames?.length ?? 0) > 2 ? 'grid three' :
|
|
42
|
+
(this.accountNames?.length ?? 0) > 1 ? 'grid two' :
|
|
43
|
+
'';
|
|
44
|
+
}
|
|
45
|
+
//#endregion
|
|
46
|
+
//#region Lifecycle
|
|
47
|
+
ngOnInit() {
|
|
48
|
+
this._userChooserData = {
|
|
49
|
+
...DefaultUserChooserData,
|
|
50
|
+
...this.userChooserData()
|
|
51
|
+
};
|
|
52
|
+
// If users have been pre-selected in the config, store those in accountNames, which drives the UI of this component
|
|
53
|
+
this.accountNames = this._userChooserData.preSelections?.accountNames;
|
|
54
|
+
this.#getData();
|
|
55
|
+
}
|
|
56
|
+
//#endregion
|
|
57
|
+
//#region Events
|
|
58
|
+
selectUser() {
|
|
59
|
+
if (!this.clickable()) {
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
const data = {
|
|
63
|
+
...this._userChooserData,
|
|
64
|
+
users: this.users,
|
|
65
|
+
photos: this.photos,
|
|
66
|
+
};
|
|
67
|
+
this.#services.dialog.open(UserChooserComponent, {
|
|
68
|
+
data: data
|
|
69
|
+
})
|
|
70
|
+
.afterClosed()
|
|
71
|
+
.subscribe((selected) => {
|
|
72
|
+
if (!selected) {
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
this.accountNames = Array.isArray(selected) ?
|
|
76
|
+
selected.map(s => typeof (s) === 'string' ? s : s.sAMAccountName) :
|
|
77
|
+
[selected].map(s => typeof (s) === 'string' ? s : s.sAMAccountName);
|
|
78
|
+
// Overwrite what may have been passed in, for subsequent launches of UserChooserComponent - otherwise it just keeps getting fed stale data
|
|
79
|
+
if (this._userChooserData.preSelections) {
|
|
80
|
+
this._userChooserData.preSelections.accountNames = this.accountNames;
|
|
81
|
+
}
|
|
82
|
+
this.usersSelected.emit(selected);
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
unSelectUser(accountName) {
|
|
86
|
+
const index = this.accountNames?.findIndex(a => a === accountName);
|
|
87
|
+
this.accountNames?.splice(index ?? -1, 1);
|
|
88
|
+
if (this._userChooserData.preSelections) {
|
|
89
|
+
this._userChooserData.preSelections.accountNames = this.accountNames;
|
|
90
|
+
}
|
|
91
|
+
this.userUnSelected.emit(accountName);
|
|
92
|
+
}
|
|
93
|
+
//#endregion
|
|
94
|
+
//#region Utilities
|
|
95
|
+
#getData() {
|
|
96
|
+
forkJoin([
|
|
97
|
+
this._userChooserData.users ?
|
|
98
|
+
// Users were passed in
|
|
99
|
+
of(this._userChooserData.users) :
|
|
100
|
+
// Users need to be retrieved
|
|
101
|
+
this.#services.activeDirectory.getUsers(false, this._userChooserData.includeDisabledUsers, this._userChooserData.parentOu),
|
|
102
|
+
this._userChooserData.groups ?
|
|
103
|
+
// Groups were passed in
|
|
104
|
+
of(this._userChooserData.groups) :
|
|
105
|
+
// Groups need to be retrieved
|
|
106
|
+
this.#services.activeDirectory.getGroups(this._userChooserData.parentOu),
|
|
107
|
+
this._userChooserData.photos ?
|
|
108
|
+
// Photos were passed in
|
|
109
|
+
of(this._userChooserData.photos) :
|
|
110
|
+
// Photos need to be retrieved
|
|
111
|
+
this.#services.sharePoint.getPhotos()
|
|
112
|
+
])
|
|
113
|
+
.subscribe(([users, groups, photos]) => {
|
|
114
|
+
this.users = users;
|
|
115
|
+
this.groups = groups;
|
|
116
|
+
this.photos = photos;
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
getUser(user) {
|
|
120
|
+
user = typeof (user) === 'string' ?
|
|
121
|
+
this.users?.find(u => u.sAMAccountName.toLowerCase() === user?.toString().toLowerCase()) :
|
|
122
|
+
user;
|
|
123
|
+
return !user ? undefined :
|
|
124
|
+
'groupType' in user ? undefined : user;
|
|
125
|
+
}
|
|
126
|
+
getGroup(group) {
|
|
127
|
+
group = typeof (group) === 'string' ?
|
|
128
|
+
this.groups?.find(g => g.sAMAccountName.toLowerCase() === group?.toString().toLowerCase()) :
|
|
129
|
+
group;
|
|
130
|
+
return !group ? undefined :
|
|
131
|
+
'groupType' in group ? group : undefined;
|
|
132
|
+
}
|
|
133
|
+
getPhoto(accountName) {
|
|
134
|
+
const user = this.getUser(accountName);
|
|
135
|
+
if (!user) {
|
|
136
|
+
return undefined;
|
|
137
|
+
}
|
|
138
|
+
return this.photos?.find(p => (p.employeeNumber && p.employeeNumber.toString() === user.employeeNumber) ||
|
|
139
|
+
p.accountName?.toLowerCase() === user.sAMAccountName.toLowerCase() ||
|
|
140
|
+
p.displayName?.toLowerCase() === (user.displayName ?? user.name).toLowerCase() ||
|
|
141
|
+
p.title?.toLowerCase() === (user.displayName ?? user.name).toLowerCase())?.encodedAbsUrl;
|
|
142
|
+
}
|
|
143
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: UserFormFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
144
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.0", type: UserFormFieldComponent, isStandalone: true, selector: "cp-user-field", inputs: { placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, clickable: { classPropertyName: "clickable", publicName: "clickable", isSignal: true, isRequired: false, transformFunction: null }, userChooserData: { classPropertyName: "userChooserData", publicName: "userChooserData", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { usersSelected: "usersSelected", userUnSelected: "userUnSelected" }, ngImport: i0, template: "\r\n<!-- In Microsoft Edge, selectUser() never gets called if the input fields are disabled\r\nSo... I'm dynamically setting the disabled property based on whether or not the browser is Edge.\r\nIt's definitely a better experience if the field IS disabled.\r\nOtherwise, it's confusing - especially because Edge is SO SLOW to display the resulting dialog window.\r\n-->\r\n<!-- Update 8/24/2023:\r\nThe above problem also exists in Chrome now.\r\nSo instead of dynamically setting [disabled] based on browser type,\r\nI'm applying CSS to suppress mouse events on the input - thus making it bubble up to the parent control, which responds the way we want/\r\n-->\r\n\r\n@if (users && photos) {\r\n <div (click)=\"selectUser()\" [class.clickable]=\"clickable()\">\r\n @if (accountNames?.length) {\r\n <div [ngClass]=\"class\">\r\n @for (accountName of accountNames; track accountName; let i = $index) {\r\n <div class=\"user\">\r\n <!--<img *ngIf=\"accountName && empUtils.getEmployee(accountName)\" alt=\"\" [src]=\"empUtils.getEmployee(accountName) | employeePhotoUrl:cacheService.photos\">-->\r\n @if (getPhoto(accountName)) {\r\n <img matListItemAvatar alt=\"\" [src]=\"getPhoto(accountName)\">\r\n }\r\n @if (getGroup(accountName)) {\r\n <mat-icon>group</mat-icon>\r\n }\r\n <mat-form-field>\r\n <!-- [disabled]=\"!isEdge\" -->\r\n <input matInput disabled [placeholder]=\"i === 0 ? placeholder() : ''\"\r\n [value]=\"getUser(accountName)?.displayName ?? getGroup(accountName)?.displayName ?? accountName\">\r\n <button matSuffix mat-icon-button aria-label=\"Clear\" (click)=\"$event.stopPropagation(); unSelectUser(accountName)\">\r\n <mat-icon fontIcon=\"close\"/>\r\n </button>\r\n </mat-form-field>\r\n </div>\r\n }\r\n </div>\r\n } @else {\r\n <mat-form-field>\r\n <input matInput disabled [placeholder]=\"placeholder()\"> <!-- [disabled]=\"!isEdge\" -->\r\n </mat-form-field>\r\n }\r\n </div>\r\n} @else {\r\n <mat-progress-bar mode=\"indeterminate\"/>\r\n}", styles: [".user{display:grid;grid-template-columns:auto 1fr;grid-gap:.5em;align-items:center}.clickable,.clickable input{cursor:pointer!important}img{width:2em;height:2em;border-radius:100%}@media (min-width:801px){.grid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:1em}.three{grid-template-columns:repeat(3,1fr)}.four{grid-template-columns:repeat(4,1fr)}.five{grid-template-columns:repeat(5,1fr)}::ng-deep .grid mat-form-field{width:15vw}}input[disabled]{pointer-events:none}\n"], dependencies: [{ kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "directive", type: MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
|
|
145
|
+
}
|
|
146
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: UserFormFieldComponent, decorators: [{
|
|
147
|
+
type: Component,
|
|
148
|
+
args: [{ selector: 'cp-user-field', imports: [
|
|
149
|
+
MatButton,
|
|
150
|
+
MatFormField,
|
|
151
|
+
MatIcon,
|
|
152
|
+
MatIconButton,
|
|
153
|
+
MatInput,
|
|
154
|
+
MatProgressBar,
|
|
155
|
+
MatSuffix,
|
|
156
|
+
NgClass
|
|
157
|
+
], standalone: true, template: "\r\n<!-- In Microsoft Edge, selectUser() never gets called if the input fields are disabled\r\nSo... I'm dynamically setting the disabled property based on whether or not the browser is Edge.\r\nIt's definitely a better experience if the field IS disabled.\r\nOtherwise, it's confusing - especially because Edge is SO SLOW to display the resulting dialog window.\r\n-->\r\n<!-- Update 8/24/2023:\r\nThe above problem also exists in Chrome now.\r\nSo instead of dynamically setting [disabled] based on browser type,\r\nI'm applying CSS to suppress mouse events on the input - thus making it bubble up to the parent control, which responds the way we want/\r\n-->\r\n\r\n@if (users && photos) {\r\n <div (click)=\"selectUser()\" [class.clickable]=\"clickable()\">\r\n @if (accountNames?.length) {\r\n <div [ngClass]=\"class\">\r\n @for (accountName of accountNames; track accountName; let i = $index) {\r\n <div class=\"user\">\r\n <!--<img *ngIf=\"accountName && empUtils.getEmployee(accountName)\" alt=\"\" [src]=\"empUtils.getEmployee(accountName) | employeePhotoUrl:cacheService.photos\">-->\r\n @if (getPhoto(accountName)) {\r\n <img matListItemAvatar alt=\"\" [src]=\"getPhoto(accountName)\">\r\n }\r\n @if (getGroup(accountName)) {\r\n <mat-icon>group</mat-icon>\r\n }\r\n <mat-form-field>\r\n <!-- [disabled]=\"!isEdge\" -->\r\n <input matInput disabled [placeholder]=\"i === 0 ? placeholder() : ''\"\r\n [value]=\"getUser(accountName)?.displayName ?? getGroup(accountName)?.displayName ?? accountName\">\r\n <button matSuffix mat-icon-button aria-label=\"Clear\" (click)=\"$event.stopPropagation(); unSelectUser(accountName)\">\r\n <mat-icon fontIcon=\"close\"/>\r\n </button>\r\n </mat-form-field>\r\n </div>\r\n }\r\n </div>\r\n } @else {\r\n <mat-form-field>\r\n <input matInput disabled [placeholder]=\"placeholder()\"> <!-- [disabled]=\"!isEdge\" -->\r\n </mat-form-field>\r\n }\r\n </div>\r\n} @else {\r\n <mat-progress-bar mode=\"indeterminate\"/>\r\n}", styles: [".user{display:grid;grid-template-columns:auto 1fr;grid-gap:.5em;align-items:center}.clickable,.clickable input{cursor:pointer!important}img{width:2em;height:2em;border-radius:100%}@media (min-width:801px){.grid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:1em}.three{grid-template-columns:repeat(3,1fr)}.four{grid-template-columns:repeat(4,1fr)}.five{grid-template-columns:repeat(5,1fr)}::ng-deep .grid mat-form-field{width:15vw}}input[disabled]{pointer-events:none}\n"] }]
|
|
158
|
+
}] });
|
|
159
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1mb3JtLWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsZWF2ZWxhbmRwcmljZS9uZ3gtbGliL2FjdGl2ZS1kaXJlY3RvcnkvbWF0ZXJpYWwvc3JjL2NvbXBvbmVudHMvdXNlci1mb3JtLWZpZWxkL3VzZXItZm9ybS1maWVsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGVhdmVsYW5kcHJpY2Uvbmd4LWxpYi9hY3RpdmUtZGlyZWN0b3J5L21hdGVyaWFsL3NyYy9jb21wb25lbnRzL3VzZXItZm9ybS1maWVsZC91c2VyLWZvcm0tZmllbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDckQsT0FBTyxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFcEMsT0FBTyxFQUFFLHNCQUFzQixFQUFxQixNQUFNLDJDQUEyQyxDQUFDO0FBQ3RHLE9BQU8sRUFBYSxpQkFBaUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRW5GLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBRy9FLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDdkUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pELE9BQU8sRUFB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SSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FDM0IsQ0FBQyxDQUFDLENBQUMsY0FBYyxJQUFJLENBQUMsQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLEtBQUssSUFBSSxDQUFDLGNBQWMsQ0FBQztZQUN6RSxDQUFDLENBQUMsV0FBVyxFQUFFLFdBQVcsRUFBRSxLQUFLLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxFQUFFO1lBQ2xFLENBQUMsQ0FBQyxXQUFXLEVBQUUsV0FBVyxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxXQUFXLEVBQUU7WUFDOUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUN6RSxFQUFFLGFBQWEsQ0FBQztJQUNuQixDQUFDOzhHQXBKVSxzQkFBc0I7a0dBQXRCLHNCQUFzQix1a0JDbkNuQyxnckVBNENDLDJoQkRyQk8sWUFBWSw0TEFDWixPQUFPLDJJQUNQLGFBQWEsNkZBQ2IsUUFBUSxpVUFDUixjQUFjLHlLQUNkLFNBQVMscUhBQ1QsT0FBTzs7MkZBTUYsc0JBQXNCO2tCQWhCbEMsU0FBUzsrQkFDSSxlQUFlLFdBQ2hCO3dCQUNMLFNBQVM7d0JBQ1QsWUFBWTt3QkFDWixPQUFPO3dCQUNQLGFBQWE7d0JBQ2IsUUFBUTt3QkFDUixjQUFjO3dCQUNkLFNBQVM7d0JBQ1QsT0FBTztxQkFDVixjQUNXLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGluamVjdCwgaW5wdXQsIE9uSW5pdCwgb3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IGZvcmtKb2luLCBvZiB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgQWN0aXZlRGlyZWN0b3J5U2VydmljZSwgVXNlciwgVXNlck9yR3JvdXAgfSBmcm9tICdAY2xlYXZlbGFuZHByaWNlL25neC1saWIvYWN0aXZlLWRpcmVjdG9yeSc7XHJcbmltcG9ydCB7IFBob3RvSXRlbSwgU2hhcmVQb2ludFNlcnZpY2UgfSBmcm9tICdAY2xlYXZlbGFuZHByaWNlL25neC1saWIvc2hhcmVwb2ludCc7XHJcblxyXG5pbXBvcnQgeyBEZWZhdWx0VXNlckNob29zZXJEYXRhIH0gZnJvbSAnLi4vLi4vbW9kZWwvZGVmYXVsdC11c2VyLWNob29zZXItZGF0YSc7XHJcbmltcG9ydCB7IFVzZXJDaG9vc2VyRGF0YSB9IGZyb20gJy4uLy4uL21vZGVsL3VzZXItY2hvb3Nlci1kYXRhJztcclxuXHJcbmltcG9ydCB7IE5nQ2xhc3MgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBNYXRCdXR0b24sIE1hdEljb25CdXR0b24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xyXG5pbXBvcnQgeyBNYXRGb3JtRmllbGQsIE1hdFN1ZmZpeCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xyXG5pbXBvcnQgeyBNYXRJY29uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IE1hdElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xyXG5pbXBvcnQgeyBNYXRQcm9ncmVzc0JhciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLWJhcic7XHJcbmltcG9ydCB7IFVzZXJDaG9vc2VyTW9kZSB9IGZyb20gJy4uLy4uL21hdC1hY3RpdmUtZGlyZWN0b3J5LmFwaSc7XHJcbmltcG9ydCB7IFVzZXJDaG9vc2VyQ29tcG9uZW50IH0gZnJvbSAnLi4vdXNlci1jaG9vc2VyL3VzZXItY2hvb3Nlci5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2NwLXVzZXItZmllbGQnLFxyXG4gICAgaW1wb3J0czogW1xyXG4gICAgICAgIE1hdEJ1dHRvbixcclxuICAgICAgICBNYXRGb3JtRmllbGQsXHJcbiAgICAgICAgTWF0SWNvbixcclxuICAgICAgICBNYXRJY29uQnV0dG9uLFxyXG4gICAgICAgIE1hdElucHV0LFxyXG4gICAgICAgIE1hdFByb2dyZXNzQmFyLFxyXG4gICAgICAgIE1hdFN1ZmZpeCxcclxuICAgICAgICBOZ0NsYXNzXHJcbiAgICBdLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi91c2VyLWZvcm0tZmllbGQuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmw6ICcuL3VzZXItZm9ybS1maWVsZC5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIFVzZXJGb3JtRmllbGRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIC8vI3JlZ2lvbiBGaWVsZHNcclxuICAjc2VydmljZXMgPSB7XHJcbiAgICBkaWFsb2c6IGluamVjdChNYXREaWFsb2cpLFxyXG4gICAgYWN0aXZlRGlyZWN0b3J5OiBpbmplY3QoQWN0aXZlRGlyZWN0b3J5U2VydmljZSksXHJcbiAgICBzaGFyZVBvaW50OiBpbmplY3QoU2hhcmVQb2ludFNlcnZpY2UpXHJcbiAgfTtcclxuICB1c2Vyc1NlbGVjdGVkID0gb3V0cHV0PHN0cmluZyB8IHN0cmluZ1tdIHwgVXNlck9yR3JvdXAgfCBVc2VyT3JHcm91cFtdPigpOyAvLyBzdHJpbmcgZm9yIFNpbmdsZSBtb2RlLCBzdHJpbmdbXSBmb3IgbXVsdGlcclxuICB1c2VyVW5TZWxlY3RlZCA9IG91dHB1dDxzdHJpbmc+KCk7XHJcbiAgcGxhY2Vob2xkZXIgPSBpbnB1dCgnU2VsZWN0IFVzZXIocyknKTtcclxuICBjbGlja2FibGUgPSBpbnB1dCh0cnVlKTtcclxuICB1c2VyQ2hvb3NlckRhdGEgPSBpbnB1dC5yZXF1aXJlZDxVc2VyQ2hvb3NlckRhdGE+KCk7XHJcbiAgX3VzZXJDaG9vc2VyRGF0YSE6IFVzZXJDaG9vc2VyRGF0YTtcclxuXHJcbiAgYWNjb3VudE5hbWVzPzogc3RyaW5nW107XHJcblxyXG4gIHVzZXJzPzogVXNlcltdO1xyXG4gIGdyb3Vwcz86IFVzZXJPckdyb3VwW107XHJcbiAgcGhvdG9zPzogUGhvdG9JdGVtW107XHJcbiAgLy8jZW5kcmVnaW9uXHJcblxyXG4gIC8vI3JlZ2lvbiBQcm9wZXJ0aWVzXHJcbiAgLypnZXQgaXNFZGdlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoJ0VkZ2UnKSA+IC0xO1xyXG4gIH0qL1xyXG4gIGdldCBjbGFzcygpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX3VzZXJDaG9vc2VyRGF0YT8ubW9kZSA9PT0gVXNlckNob29zZXJNb2RlLlNpbmdsZSA/ICcnIDpcclxuICAgICAgKHRoaXMuYWNjb3VudE5hbWVzPy5sZW5ndGggPz8gMCkgPiA0ID8gJ2dyaWQgZml2ZScgOlxyXG4gICAgICAodGhpcy5hY2NvdW50TmFtZXM/Lmxlbmd0aCA/PyAwKSA+IDMgPyAnZ3JpZCBmb3VyJyA6XHJcbiAgICAgICh0aGlzLmFjY291bnROYW1lcz8ubGVuZ3RoID8/IDApID4gMiA/ICdncmlkIHRocmVlJyA6XHJcbiAgICAgICh0aGlzLmFjY291bnROYW1lcz8ubGVuZ3RoID8/IDApID4gMSA/ICdncmlkIHR3bycgOlxyXG4gICAgICAnJztcclxuICB9XHJcbiAgLy8jZW5kcmVnaW9uXHJcblxyXG4gIC8vI3JlZ2lvbiBMaWZlY3ljbGVcclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3VzZXJDaG9vc2VyRGF0YSA9IHtcclxuICAgICAgLi4uRGVmYXVsdFVzZXJDaG9vc2VyRGF0YSxcclxuICAgICAgLi4udGhpcy51c2VyQ2hvb3NlckRhdGEoKVxyXG4gICAgfVxyXG5cclxuICAgIC8vIElmIHVzZXJzIGhhdmUgYmVlbiBwcmUtc2VsZWN0ZWQgaW4gdGhlIGNvbmZpZywgc3RvcmUgdGhvc2UgaW4gYWNjb3VudE5hbWVzLCB3aGljaCBkcml2ZXMgdGhlIFVJIG9mIHRoaXMgY29tcG9uZW50XHJcbiAgICB0aGlzLmFjY291bnROYW1lcyA9IHRoaXMuX3VzZXJDaG9vc2VyRGF0YS5wcmVTZWxlY3Rpb25zPy5hY2NvdW50TmFtZXM7XHJcblxyXG4gICAgdGhpcy4jZ2V0RGF0YSgpO1xyXG4gIH1cclxuICAvLyNlbmRyZWdpb25cclxuXHJcbiAgLy8jcmVnaW9uIEV2ZW50c1xyXG4gIHNlbGVjdFVzZXIoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuY2xpY2thYmxlKCkpIHsgcmV0dXJuOyB9XHJcblxyXG4gICAgY29uc3QgZGF0YTogVXNlckNob29zZXJEYXRhID0ge1xyXG4gICAgICAuLi50aGlzLl91c2VyQ2hvb3NlckRhdGEsXHJcblxyXG4gICAgICB1c2VyczogdGhpcy51c2VycyxcclxuICAgICAgcGhvdG9zOiB0aGlzLnBob3RvcyxcclxuICAgIH07XHJcblxyXG4gICAgdGhpcy4jc2VydmljZXMuZGlhbG9nLm9wZW4oVXNlckNob29zZXJDb21wb25lbnQsIHtcclxuICAgICAgZGF0YTogZGF0YVxyXG4gICAgfSlcclxuICAgIC5hZnRlckNsb3NlZCgpXHJcbiAgICAuc3Vic2NyaWJlKChzZWxlY3RlZDogc3RyaW5nIHwgc3RyaW5nW10gfCBVc2VyT3JHcm91cCB8IFVzZXJPckdyb3VwW10pID0+IHtcclxuICAgICAgaWYgKCFzZWxlY3RlZCkgeyByZXR1cm47IH1cclxuXHJcbiAgICAgIHRoaXMuYWNjb3VudE5hbWVzID0gQXJyYXkuaXNBcnJheShzZWxlY3RlZCkgP1xyXG4gICAgICAgIHNlbGVjdGVkLm1hcChzID0+IHR5cGVvZihzKSA9PT0gJ3N0cmluZycgPyBzIDogcy5zQU1BY2NvdW50TmFtZSkgOlxyXG4gICAgICAgIFsgc2VsZWN0ZWQgXS5tYXAocyA9PiB0eXBlb2YocykgPT09ICdzdHJpbmcnID8gcyA6IHMuc0FNQWNjb3VudE5hbWUpO1xyXG5cclxuICAgICAgLy8gT3ZlcndyaXRlIHdoYXQgbWF5IGhhdmUgYmVlbiBwYXNzZWQgaW4sIGZvciBzdWJzZXF1ZW50IGxhdW5jaGVzIG9mIFVzZXJDaG9vc2VyQ29tcG9uZW50IC0gb3RoZXJ3aXNlIGl0IGp1c3Qga2VlcHMgZ2V0dGluZyBmZWQgc3RhbGUgZGF0YVxyXG4gICAgICBpZiAodGhpcy5fdXNlckNob29zZXJEYXRhLnByZVNlbGVjdGlvbnMpIHtcclxuICAgICAgICB0aGlzLl91c2VyQ2hvb3NlckRhdGEucHJlU2VsZWN0aW9ucy5hY2NvdW50TmFtZXMgPSB0aGlzLmFjY291bnROYW1lcztcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy51c2Vyc1NlbGVjdGVkLmVtaXQoc2VsZWN0ZWQpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICB1blNlbGVjdFVzZXIoYWNjb3VudE5hbWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgY29uc3QgaW5kZXggPSB0aGlzLmFjY291bnROYW1lcz8uZmluZEluZGV4KGEgPT4gYSA9PT0gYWNjb3VudE5hbWUpO1xyXG4gICAgdGhpcy5hY2NvdW50TmFtZXM/LnNwbGljZShpbmRleCA/PyAtMSwgMSk7XHJcblxyXG4gICAgaWYgKHRoaXMuX3VzZXJDaG9vc2VyRGF0YS5wcmVTZWxlY3Rpb25zKSB7XHJcbiAgICAgIHRoaXMuX3VzZXJDaG9vc2VyRGF0YS5wcmVTZWxlY3Rpb25zLmFjY291bnROYW1lcyA9IHRoaXMuYWNjb3VudE5hbWVzO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMudXNlclVuU2VsZWN0ZWQuZW1pdChhY2NvdW50TmFtZSk7XHJcbiAgfVxyXG4gIC8vI2VuZHJlZ2lvblxyXG5cclxuICAvLyNyZWdpb24gVXRpbGl0aWVzXHJcbiAgI2dldERhdGEoKTogdm9pZCB7XHJcbiAgICBmb3JrSm9pbihbXHJcbiAgICAgIHRoaXMuX3VzZXJDaG9vc2VyRGF0YSEudXNlcnMgP1xyXG4gICAgICAgIC8vIFVzZXJzIHdlcmUgcGFzc2VkIGluXHJcbiAgICAgICAgb2YodGhpcy5fdXNlckNob29zZXJEYXRhIS51c2VycykgOlxyXG4gICAgICAgIC8vIFVzZXJzIG5lZWQgdG8gYmUgcmV0cmlldmVkXHJcbiAgICAgICAgdGhpcy4jc2VydmljZXMuYWN0aXZlRGlyZWN0b3J5LmdldFVzZXJzKGZhbHNlLCB0aGlzLl91c2VyQ2hvb3NlckRhdGEhLmluY2x1ZGVEaXNhYmxlZFVzZXJzLCB0aGlzLl91c2VyQ2hvb3NlckRhdGEhLnBhcmVudE91KSxcclxuXHJcbiAgICAgIHRoaXMuX3VzZXJDaG9vc2VyRGF0YSEuZ3JvdXBzID9cclxuICAgICAgICAvLyBHcm91cHMgd2VyZSBwYXNzZWQgaW5cclxuICAgICAgICBvZih0aGlzLl91c2VyQ2hvb3NlckRhdGEhLmdyb3VwcykgOlxyXG4gICAgICAgIC8vIEdyb3VwcyBuZWVkIHRvIGJlIHJldHJpZXZlZFxyXG4gICAgICAgIHRoaXMuI3NlcnZpY2VzLmFjdGl2ZURpcmVjdG9yeS5nZXRHcm91cHModGhpcy5fdXNlckNob29zZXJEYXRhIS5wYXJlbnRPdSksXHJcblxyXG4gICAgICB0aGlzLl91c2VyQ2hvb3NlckRhdGEhLnBob3RvcyA/XHJcbiAgICAgICAgLy8gUGhvdG9zIHdlcmUgcGFzc2VkIGluXHJcbiAgICAgICAgb2YodGhpcy5fdXNlckNob29zZXJEYXRhIS5waG90b3MpIDpcclxuICAgICAgICAvLyBQaG90b3MgbmVlZCB0byBiZSByZXRyaWV2ZWRcclxuICAgICAgICB0aGlzLiNzZXJ2aWNlcy5zaGFyZVBvaW50LmdldFBob3RvcygpXHJcbiAgICBdKVxyXG4gICAgICAuc3Vic2NyaWJlKChbdXNlcnMsIGdyb3VwcywgcGhvdG9zXSkgPT4ge1xyXG4gICAgICAgIHRoaXMudXNlcnMgPSB1c2VycztcclxuICAgICAgICB0aGlzLmdyb3VwcyA9IGdyb3VwcztcclxuICAgICAgICB0aGlzLnBob3RvcyA9IHBob3RvcztcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBnZXRVc2VyKHVzZXI6IHN0cmluZyB8IFVzZXIgfCB1bmRlZmluZWQpOiBVc2VyIHwgdW5kZWZpbmVkIHtcclxuICAgIHVzZXIgPSB0eXBlb2YodXNlcikgPT09ICdzdHJpbmcnID9cclxuICAgICAgdGhpcy51c2Vycz8uZmluZCh1ID0+IHUuc0FNQWNjb3VudE5hbWUudG9Mb3dlckNhc2UoKSA9PT0gdXNlcj8udG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpKSA6XHJcbiAgICAgIHVzZXI7XHJcblxyXG4gICAgcmV0dXJuICF1c2VyID8gdW5kZWZpbmVkIDpcclxuICAgICAgJ2dyb3VwVHlwZScgaW4gdXNlciA/IHVuZGVmaW5lZCA6IHVzZXI7XHJcbiAgfVxyXG5cclxuICBnZXRHcm91cChncm91cDogc3RyaW5nIHwgVXNlck9yR3JvdXAgfCB1bmRlZmluZWQpOiBVc2VyT3JHcm91cCB8IHVuZGVmaW5lZCB7XHJcbiAgICBncm91cCA9IHR5cGVvZihncm91cCkgPT09ICdzdHJpbmcnID9cclxuICAgICAgdGhpcy5ncm91cHM/LmZpbmQoZyA9PiBnLnNBTUFjY291bnROYW1lLnRvTG93ZXJDYXNlKCkgPT09IGdyb3VwPy50b1N0cmluZygpLnRvTG93ZXJDYXNlKCkpIDpcclxuICAgICAgZ3JvdXA7XHJcblxyXG4gICAgcmV0dXJuICFncm91cCA/IHVuZGVmaW5lZCA6XHJcbiAgICAgICdncm91cFR5cGUnIGluIGdyb3VwID8gZ3JvdXAgOiB1bmRlZmluZWQ7XHJcbiAgfVxyXG5cclxuICBnZXRQaG90byhhY2NvdW50TmFtZTogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcclxuICAgIGNvbnN0IHVzZXIgPSB0aGlzLmdldFVzZXIoYWNjb3VudE5hbWUpO1xyXG4gICAgaWYgKCF1c2VyKSB7IHJldHVybiB1bmRlZmluZWQ7IH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5waG90b3M/LmZpbmQocCA9PlxyXG4gICAgICAocC5lbXBsb3llZU51bWJlciAmJiBwLmVtcGxveWVlTnVtYmVyLnRvU3RyaW5nKCkgPT09IHVzZXIuZW1wbG95ZWVOdW1iZXIpIHx8XHJcbiAgICAgIHAuYWNjb3VudE5hbWU/LnRvTG93ZXJDYXNlKCkgPT09IHVzZXIuc0FNQWNjb3VudE5hbWUudG9Mb3dlckNhc2UoKSB8fFxyXG4gICAgICBwLmRpc3BsYXlOYW1lPy50b0xvd2VyQ2FzZSgpID09PSAodXNlci5kaXNwbGF5TmFtZSA/PyB1c2VyLm5hbWUpLnRvTG93ZXJDYXNlKCkgfHxcclxuICAgICAgcC50aXRsZT8udG9Mb3dlckNhc2UoKSA9PT0gKHVzZXIuZGlzcGxheU5hbWUgPz8gdXNlci5uYW1lKS50b0xvd2VyQ2FzZSgpXHJcbiAgICApPy5lbmNvZGVkQWJzVXJsO1xyXG4gIH1cclxuICAvLyNlbmRyZWdpb25cclxufVxyXG4iLCJcclxuPCEtLSBJbiBNaWNyb3NvZnQgRWRnZSwgc2VsZWN0VXNlcigpIG5ldmVyIGdldHMgY2FsbGVkIGlmIHRoZSBpbnB1dCBmaWVsZHMgYXJlIGRpc2FibGVkXHJcblNvLi4uIEknbSBkeW5hbWljYWxseSBzZXR0aW5nIHRoZSBkaXNhYmxlZCBwcm9wZXJ0eSBiYXNlZCBvbiB3aGV0aGVyIG9yIG5vdCB0aGUgYnJvd3NlciBpcyBFZGdlLlxyXG5JdCdzIGRlZmluaXRlbHkgYSBiZXR0ZXIgZXhwZXJpZW5jZSBpZiB0aGUgZmllbGQgSVMgZGlzYWJsZWQuXHJcbk90aGVyd2lzZSwgaXQncyBjb25mdXNpbmcgLSBlc3BlY2lhbGx5IGJlY2F1c2UgRWRnZSBpcyBTTyBTTE9XIHRvIGRpc3BsYXkgdGhlIHJlc3VsdGluZyBkaWFsb2cgd2luZG93LlxyXG4tLT5cclxuPCEtLSBVcGRhdGUgOC8yNC8yMDIzOlxyXG5UaGUgYWJvdmUgcHJvYmxlbSBhbHNvIGV4aXN0cyBpbiBDaHJvbWUgbm93LlxyXG5TbyBpbnN0ZWFkIG9mIGR5bmFtaWNhbGx5IHNldHRpbmcgW2Rpc2FibGVkXSBiYXNlZCBvbiBicm93c2VyIHR5cGUsXHJcbkknbSBhcHBseWluZyBDU1MgdG8gc3VwcHJlc3MgbW91c2UgZXZlbnRzIG9uIHRoZSBpbnB1dCAtIHRodXMgbWFraW5nIGl0IGJ1YmJsZSB1cCB0byB0aGUgcGFyZW50IGNvbnRyb2wsIHdoaWNoIHJlc3BvbmRzIHRoZSB3YXkgd2Ugd2FudC9cclxuLS0+XHJcblxyXG5AaWYgKHVzZXJzICYmIHBob3Rvcykge1xyXG4gIDxkaXYgKGNsaWNrKT1cInNlbGVjdFVzZXIoKVwiIFtjbGFzcy5jbGlja2FibGVdPVwiY2xpY2thYmxlKClcIj5cclxuICAgIEBpZiAoYWNjb3VudE5hbWVzPy5sZW5ndGgpIHtcclxuICAgICAgPGRpdiBbbmdDbGFzc109XCJjbGFzc1wiPlxyXG4gICAgICAgIEBmb3IgKGFjY291bnROYW1lIG9mIGFjY291bnROYW1lczsgdHJhY2sgYWNjb3VudE5hbWU7IGxldCBpID0gJGluZGV4KSB7XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidXNlclwiPlxyXG4gICAgICAgICAgICA8IS0tPGltZyAqbmdJZj1cImFjY291bnROYW1lICYmIGVtcFV0aWxzLmdldEVtcGxveWVlKGFjY291bnROYW1lKVwiIGFsdD1cIlwiIFtzcmNdPVwiZW1wVXRpbHMuZ2V0RW1wbG95ZWUoYWNjb3VudE5hbWUpIHwgZW1wbG95ZWVQaG90b1VybDpjYWNoZVNlcnZpY2UucGhvdG9zXCI+LS0+XHJcbiAgICAgICAgICAgIEBpZiAoZ2V0UGhvdG8oYWNjb3VudE5hbWUpKSB7XHJcbiAgICAgICAgICAgICAgPGltZyBtYXRMaXN0SXRlbUF2YXRhciBhbHQ9XCJcIiBbc3JjXT1cImdldFBob3RvKGFjY291bnROYW1lKVwiPlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIEBpZiAoZ2V0R3JvdXAoYWNjb3VudE5hbWUpKSB7XHJcbiAgICAgICAgICAgICAgPG1hdC1pY29uPmdyb3VwPC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgPCEtLSBbZGlzYWJsZWRdPVwiIWlzRWRnZVwiIC0tPlxyXG4gICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBkaXNhYmxlZCBbcGxhY2Vob2xkZXJdPVwiaSA9PT0gMCA/IHBsYWNlaG9sZGVyKCkgOiAnJ1wiXHJcbiAgICAgICAgICAgICAgICBbdmFsdWVdPVwiZ2V0VXNlcihhY2NvdW50TmFtZSk/LmRpc3BsYXlOYW1lID8/IGdldEdyb3VwKGFjY291bnROYW1lKT8uZGlzcGxheU5hbWUgPz8gYWNjb3VudE5hbWVcIj5cclxuICAgICAgICAgICAgICA8YnV0dG9uIG1hdFN1ZmZpeCBtYXQtaWNvbi1idXR0b24gYXJpYS1sYWJlbD1cIkNsZWFyXCIgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKTsgdW5TZWxlY3RVc2VyKGFjY291bnROYW1lKVwiPlxyXG4gICAgICAgICAgICAgICAgPG1hdC1pY29uIGZvbnRJY29uPVwiY2xvc2VcIi8+XHJcbiAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICB9XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgfSBAZWxzZSB7XHJcbiAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICA8aW5wdXQgbWF0SW5wdXQgZGlzYWJsZWQgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyKClcIj4gPCEtLSBbZGlzYWJsZWRdPVwiIWlzRWRnZVwiIC0tPlxyXG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgfVxyXG4gIDwvZGl2PlxyXG59IEBlbHNlIHtcclxuICA8bWF0LXByb2dyZXNzLWJhciBtb2RlPVwiaW5kZXRlcm1pbmF0ZVwiLz5cclxufSJdfQ==
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export * from '@cleavelandprice/ngx-lib/active-directory';
|
|
2
|
+
export * from './model/default-user-chooser-data';
|
|
3
|
+
export * from './model/default-user-chooser-filter-options';
|
|
4
|
+
export * from './model/user-chooser-data';
|
|
5
|
+
export * from './model/user-chooser-filter-options';
|
|
6
|
+
export * from './model/user-chooser-mode';
|
|
7
|
+
export * from './model/user-chooser-pre-processing-group';
|
|
8
|
+
export * from './components/user-chooser/user-chooser.component';
|
|
9
|
+
export * from './components/user-form-field/user-form-field.component';
|
|
10
|
+
export * from './mat-active-directory.module';
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0LWFjdGl2ZS1kaXJlY3RvcnkuYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xlYXZlbGFuZHByaWNlL25neC1saWIvYWN0aXZlLWRpcmVjdG9yeS9tYXRlcmlhbC9zcmMvbWF0LWFjdGl2ZS1kaXJlY3RvcnkuYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsMkNBQTJDLENBQUM7QUFFMUQsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLDZDQUE2QyxDQUFDO0FBQzVELGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsMkNBQTJDLENBQUM7QUFFMUQsY0FBYyxrREFBa0QsQ0FBQztBQUNqRSxjQUFjLHdEQUF3RCxDQUFDO0FBRXZFLGNBQWMsK0JBQStCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICdAY2xlYXZlbGFuZHByaWNlL25neC1saWIvYWN0aXZlLWRpcmVjdG9yeSc7XHJcblxyXG5leHBvcnQgKiBmcm9tICcuL21vZGVsL2RlZmF1bHQtdXNlci1jaG9vc2VyLWRhdGEnO1xyXG5leHBvcnQgKiBmcm9tICcuL21vZGVsL2RlZmF1bHQtdXNlci1jaG9vc2VyLWZpbHRlci1vcHRpb25zJztcclxuZXhwb3J0ICogZnJvbSAnLi9tb2RlbC91c2VyLWNob29zZXItZGF0YSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWwvdXNlci1jaG9vc2VyLWZpbHRlci1vcHRpb25zJztcclxuZXhwb3J0ICogZnJvbSAnLi9tb2RlbC91c2VyLWNob29zZXItbW9kZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWwvdXNlci1jaG9vc2VyLXByZS1wcm9jZXNzaW5nLWdyb3VwJztcclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy91c2VyLWNob29zZXIvdXNlci1jaG9vc2VyLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy91c2VyLWZvcm0tZmllbGQvdXNlci1mb3JtLWZpZWxkLmNvbXBvbmVudCc7XHJcblxyXG5leHBvcnQgKiBmcm9tICcuL21hdC1hY3RpdmUtZGlyZWN0b3J5Lm1vZHVsZSc7XHJcblxyXG4iXX0=
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { NgModule, Optional, SkipSelf } from '@angular/core';
|
|
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 { MatListModule } from '@angular/material/list';
|
|
10
|
+
import { MatProgressBarModule } from '@angular/material/progress-bar';
|
|
11
|
+
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
|
|
12
|
+
import { MatSlideToggleModule } from '@angular/material/slide-toggle';
|
|
13
|
+
import { MatTableModule } from '@angular/material/table';
|
|
14
|
+
import { MatTooltipModule } from '@angular/material/tooltip';
|
|
15
|
+
import { ActiveDirectoryServiceOptionsToken } from '@cleavelandprice/ngx-lib/active-directory';
|
|
16
|
+
import { UserChooserComponent } from './components/user-chooser/user-chooser.component';
|
|
17
|
+
import { UserFormFieldComponent } from './components/user-form-field/user-form-field.component';
|
|
18
|
+
import * as i0 from "@angular/core";
|
|
19
|
+
export class MatActiveDirectoryModule {
|
|
20
|
+
static forRoot(config) {
|
|
21
|
+
return {
|
|
22
|
+
ngModule: MatActiveDirectoryModule,
|
|
23
|
+
providers: [
|
|
24
|
+
{
|
|
25
|
+
provide: ActiveDirectoryServiceOptionsToken,
|
|
26
|
+
useValue: config
|
|
27
|
+
}
|
|
28
|
+
]
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
constructor(parentModule) {
|
|
32
|
+
if (parentModule) {
|
|
33
|
+
throw new Error('MatActiveDirectoryModule is already loaded. Import it in the AppModule only');
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: MatActiveDirectoryModule, deps: [{ token: MatActiveDirectoryModule, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
37
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.0", ngImport: i0, type: MatActiveDirectoryModule, imports: [CommonModule,
|
|
38
|
+
ReactiveFormsModule,
|
|
39
|
+
MatButtonModule,
|
|
40
|
+
MatDialogModule,
|
|
41
|
+
MatFormFieldModule,
|
|
42
|
+
MatIconModule,
|
|
43
|
+
MatInputModule,
|
|
44
|
+
MatListModule,
|
|
45
|
+
MatProgressBarModule,
|
|
46
|
+
MatProgressSpinnerModule,
|
|
47
|
+
MatSlideToggleModule,
|
|
48
|
+
MatTableModule,
|
|
49
|
+
MatTooltipModule,
|
|
50
|
+
UserChooserComponent,
|
|
51
|
+
UserFormFieldComponent], exports: [UserChooserComponent,
|
|
52
|
+
UserFormFieldComponent] }); }
|
|
53
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: MatActiveDirectoryModule, imports: [CommonModule,
|
|
54
|
+
ReactiveFormsModule,
|
|
55
|
+
MatButtonModule,
|
|
56
|
+
MatDialogModule,
|
|
57
|
+
MatFormFieldModule,
|
|
58
|
+
MatIconModule,
|
|
59
|
+
MatInputModule,
|
|
60
|
+
MatListModule,
|
|
61
|
+
MatProgressBarModule,
|
|
62
|
+
MatProgressSpinnerModule,
|
|
63
|
+
MatSlideToggleModule,
|
|
64
|
+
MatTableModule,
|
|
65
|
+
MatTooltipModule,
|
|
66
|
+
UserChooserComponent,
|
|
67
|
+
UserFormFieldComponent] }); }
|
|
68
|
+
}
|
|
69
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: MatActiveDirectoryModule, decorators: [{
|
|
70
|
+
type: NgModule,
|
|
71
|
+
args: [{
|
|
72
|
+
declarations: [],
|
|
73
|
+
imports: [
|
|
74
|
+
CommonModule,
|
|
75
|
+
ReactiveFormsModule,
|
|
76
|
+
MatButtonModule,
|
|
77
|
+
MatDialogModule,
|
|
78
|
+
MatFormFieldModule,
|
|
79
|
+
MatIconModule,
|
|
80
|
+
MatInputModule,
|
|
81
|
+
MatListModule,
|
|
82
|
+
MatProgressBarModule,
|
|
83
|
+
MatProgressSpinnerModule,
|
|
84
|
+
MatSlideToggleModule,
|
|
85
|
+
MatTableModule,
|
|
86
|
+
MatTooltipModule,
|
|
87
|
+
UserChooserComponent,
|
|
88
|
+
UserFormFieldComponent
|
|
89
|
+
],
|
|
90
|
+
exports: [
|
|
91
|
+
UserChooserComponent,
|
|
92
|
+
UserFormFieldComponent
|
|
93
|
+
]
|
|
94
|
+
}]
|
|
95
|
+
}], ctorParameters: () => [{ type: MatActiveDirectoryModule, decorators: [{
|
|
96
|
+
type: Optional
|
|
97
|
+
}, {
|
|
98
|
+
type: SkipSelf
|
|
99
|
+
}] }] });
|
|
100
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0LWFjdGl2ZS1kaXJlY3RvcnkubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xlYXZlbGFuZHByaWNlL25neC1saWIvYWN0aXZlLWRpcmVjdG9yeS9tYXRlcmlhbC9zcmMvbWF0LWFjdGl2ZS1kaXJlY3RvcnkubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQXVCLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdEUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDOUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTdELE9BQU8sRUFBaUMsa0NBQWtDLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUU5SCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUN4RixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQzs7QUE0QmhHLE1BQU0sT0FBTyx3QkFBd0I7SUFDbkMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFxQztRQUNsRCxPQUFPO1lBQ0wsUUFBUSxFQUFFLHdCQUF3QjtZQUNsQyxTQUFTLEVBQUU7Z0JBQ1Q7b0JBQ0UsT0FBTyxFQUFFLGtDQUFrQztvQkFDM0MsUUFBUSxFQUFFLE1BQU07aUJBQ2pCO2FBQ0Y7U0FDRixDQUFDO0lBQ0osQ0FBQztJQUVELFlBQW9DLFlBQXNDO1FBQ3hFLElBQUksWUFBWSxFQUFFLENBQUM7WUFDakIsTUFBTSxJQUFJLEtBQUssQ0FDYiw2RUFBNkUsQ0FBQyxDQUFDO1FBQ25GLENBQUM7SUFDSCxDQUFDOzhHQWxCVSx3QkFBd0I7K0dBQXhCLHdCQUF3QixZQXZCakMsWUFBWTtZQUNaLG1CQUFtQjtZQUVuQixlQUFlO1lBQ2YsZUFBZTtZQUNmLGtCQUFrQjtZQUNsQixhQUFhO1lBQ2IsY0FBYztZQUNkLGFBQWE7WUFDYixvQkFBb0I7WUFDcEIsd0JBQXdCO1lBQ3hCLG9CQUFvQjtZQUNwQixjQUFjO1lBQ2QsZ0JBQWdCO1lBRWhCLG9CQUFvQjtZQUNwQixzQkFBc0IsYUFHdEIsb0JBQW9CO1lBQ3BCLHNCQUFzQjsrR0FHYix3QkFBd0IsWUF2QmpDLFlBQVk7WUFDWixtQkFBbUI7WUFFbkIsZUFBZTtZQUNmLGVBQWU7WUFDZixrQkFBa0I7WUFDbEIsYUFBYTtZQUNiLGNBQWM7WUFDZCxhQUFhO1lBQ2Isb0JBQW9CO1lBQ3BCLHdCQUF3QjtZQUN4QixvQkFBb0I7WUFDcEIsY0FBYztZQUNkLGdCQUFnQjtZQUVoQixvQkFBb0I7WUFDcEIsc0JBQXNCOzsyRkFPYix3QkFBd0I7a0JBMUJwQyxRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxFQUFFO29CQUNoQixPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixtQkFBbUI7d0JBRW5CLGVBQWU7d0JBQ2YsZUFBZTt3QkFDZixrQkFBa0I7d0JBQ2xCLGFBQWE7d0JBQ2IsY0FBYzt3QkFDZCxhQUFhO3dCQUNiLG9CQUFvQjt3QkFDcEIsd0JBQXdCO3dCQUN4QixvQkFBb0I7d0JBQ3BCLGNBQWM7d0JBQ2QsZ0JBQWdCO3dCQUVoQixvQkFBb0I7d0JBQ3BCLHNCQUFzQjtxQkFDdkI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLG9CQUFvQjt3QkFDcEIsc0JBQXNCO3FCQUN2QjtpQkFDRjs7MEJBY2MsUUFBUTs7MEJBQUksUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlLCBPcHRpb25hbCwgU2tpcFNlbGYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XHJcbmltcG9ydCB7IE1hdERpYWxvZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xyXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xyXG5pbXBvcnQgeyBNYXRMaXN0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbGlzdCc7XHJcbmltcG9ydCB7IE1hdFByb2dyZXNzQmFyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3MtYmFyJztcclxuaW1wb3J0IHsgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3Mtc3Bpbm5lcic7XHJcbmltcG9ydCB7IE1hdFNsaWRlVG9nZ2xlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2xpZGUtdG9nZ2xlJztcclxuaW1wb3J0IHsgTWF0VGFibGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJsZSc7XHJcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcclxuXHJcbmltcG9ydCB7IEFjdGl2ZURpcmVjdG9yeVNlcnZpY2VPcHRpb25zLCBBY3RpdmVEaXJlY3RvcnlTZXJ2aWNlT3B0aW9uc1Rva2VuIH0gZnJvbSAnQGNsZWF2ZWxhbmRwcmljZS9uZ3gtbGliL2FjdGl2ZS1kaXJlY3RvcnknO1xyXG5cclxuaW1wb3J0IHsgVXNlckNob29zZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdXNlci1jaG9vc2VyL3VzZXItY2hvb3Nlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBVc2VyRm9ybUZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3VzZXItZm9ybS1maWVsZC91c2VyLWZvcm0tZmllbGQuY29tcG9uZW50JztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbXSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG5cclxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcclxuICAgIE1hdERpYWxvZ01vZHVsZSxcclxuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcclxuICAgIE1hdEljb25Nb2R1bGUsXHJcbiAgICBNYXRJbnB1dE1vZHVsZSxcclxuICAgIE1hdExpc3RNb2R1bGUsXHJcbiAgICBNYXRQcm9ncmVzc0Jhck1vZHVsZSxcclxuICAgIE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSxcclxuICAgIE1hdFNsaWRlVG9nZ2xlTW9kdWxlLFxyXG4gICAgTWF0VGFibGVNb2R1bGUsXHJcbiAgICBNYXRUb29sdGlwTW9kdWxlLFxyXG5cclxuICAgIFVzZXJDaG9vc2VyQ29tcG9uZW50LFxyXG4gICAgVXNlckZvcm1GaWVsZENvbXBvbmVudFxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgVXNlckNob29zZXJDb21wb25lbnQsXHJcbiAgICBVc2VyRm9ybUZpZWxkQ29tcG9uZW50XHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTWF0QWN0aXZlRGlyZWN0b3J5TW9kdWxlIHtcclxuICBzdGF0aWMgZm9yUm9vdChjb25maWc6IEFjdGl2ZURpcmVjdG9yeVNlcnZpY2VPcHRpb25zKTogTW9kdWxlV2l0aFByb3ZpZGVyczxNYXRBY3RpdmVEaXJlY3RvcnlNb2R1bGU+IHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIG5nTW9kdWxlOiBNYXRBY3RpdmVEaXJlY3RvcnlNb2R1bGUsXHJcbiAgICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgIHByb3ZpZGU6IEFjdGl2ZURpcmVjdG9yeVNlcnZpY2VPcHRpb25zVG9rZW4sXHJcbiAgICAgICAgICB1c2VWYWx1ZTogY29uZmlnXHJcbiAgICAgICAgfVxyXG4gICAgICBdXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgQFNraXBTZWxmKCkgcGFyZW50TW9kdWxlOiBNYXRBY3RpdmVEaXJlY3RvcnlNb2R1bGUpIHtcclxuICAgIGlmIChwYXJlbnRNb2R1bGUpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKFxyXG4gICAgICAgICdNYXRBY3RpdmVEaXJlY3RvcnlNb2R1bGUgaXMgYWxyZWFkeSBsb2FkZWQuIEltcG9ydCBpdCBpbiB0aGUgQXBwTW9kdWxlIG9ubHknKTtcclxuICAgIH1cclxuICB9XHJcbn0iXX0=
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { DefaultUserChooserFilterOptions } from "./default-user-chooser-filter-options";
|
|
2
|
+
import { UserChooserMode } from "./user-chooser-mode";
|
|
3
|
+
export const DefaultUserChooserData = {
|
|
4
|
+
closeWhenSelectionMade: false,
|
|
5
|
+
allowCloseWithoutSelections: false,
|
|
6
|
+
includeDisabledUsers: false,
|
|
7
|
+
returnUserObjects: false,
|
|
8
|
+
showGroupMembershipTooltips: false,
|
|
9
|
+
showPhone: true,
|
|
10
|
+
title: 'Select User(s)',
|
|
11
|
+
mode: UserChooserMode.Single,
|
|
12
|
+
objectTypes: '*',
|
|
13
|
+
filterOptions: DefaultUserChooserFilterOptions
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC11c2VyLWNob29zZXItZGF0YS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsZWF2ZWxhbmRwcmljZS9uZ3gtbGliL2FjdGl2ZS1kaXJlY3RvcnkvbWF0ZXJpYWwvc3JjL21vZGVsL2RlZmF1bHQtdXNlci1jaG9vc2VyLWRhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFFeEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXRELE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFvQjtJQUNuRCxzQkFBc0IsRUFBRSxLQUFLO0lBQzdCLDJCQUEyQixFQUFFLEtBQUs7SUFDbEMsb0JBQW9CLEVBQUUsS0FBSztJQUMzQixpQkFBaUIsRUFBRSxLQUFLO0lBQ3hCLDJCQUEyQixFQUFFLEtBQUs7SUFDbEMsU0FBUyxFQUFFLElBQUk7SUFDZixLQUFLLEVBQUUsZ0JBQWdCO0lBQ3ZCLElBQUksRUFBRSxlQUFlLENBQUMsTUFBTTtJQUM1QixXQUFXLEVBQUUsR0FBRztJQUNoQixhQUFhLEVBQUUsK0JBQStCO0NBQ2pELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEZWZhdWx0VXNlckNob29zZXJGaWx0ZXJPcHRpb25zIH0gZnJvbSBcIi4vZGVmYXVsdC11c2VyLWNob29zZXItZmlsdGVyLW9wdGlvbnNcIjtcclxuaW1wb3J0IHsgVXNlckNob29zZXJEYXRhIH0gZnJvbSBcIi4vdXNlci1jaG9vc2VyLWRhdGFcIjtcclxuaW1wb3J0IHsgVXNlckNob29zZXJNb2RlIH0gZnJvbSBcIi4vdXNlci1jaG9vc2VyLW1vZGVcIjtcclxuXHJcbmV4cG9ydCBjb25zdCBEZWZhdWx0VXNlckNob29zZXJEYXRhOiBVc2VyQ2hvb3NlckRhdGEgPSB7XHJcbiAgICBjbG9zZVdoZW5TZWxlY3Rpb25NYWRlOiBmYWxzZSxcclxuICAgIGFsbG93Q2xvc2VXaXRob3V0U2VsZWN0aW9uczogZmFsc2UsXHJcbiAgICBpbmNsdWRlRGlzYWJsZWRVc2VyczogZmFsc2UsXHJcbiAgICByZXR1cm5Vc2VyT2JqZWN0czogZmFsc2UsXHJcbiAgICBzaG93R3JvdXBNZW1iZXJzaGlwVG9vbHRpcHM6IGZhbHNlLFxyXG4gICAgc2hvd1Bob25lOiB0cnVlLFxyXG4gICAgdGl0bGU6ICdTZWxlY3QgVXNlcihzKScsXHJcbiAgICBtb2RlOiBVc2VyQ2hvb3Nlck1vZGUuU2luZ2xlLFxyXG4gICAgb2JqZWN0VHlwZXM6ICcqJyxcclxuICAgIGZpbHRlck9wdGlvbnM6IERlZmF1bHRVc2VyQ2hvb3NlckZpbHRlck9wdGlvbnNcclxufTsiXX0=
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export const DefaultUserChooserFilterOptions = {
|
|
2
|
+
accountName: true,
|
|
3
|
+
department: true,
|
|
4
|
+
groupMembership: false,
|
|
5
|
+
phoneNumber: true,
|
|
6
|
+
title: true
|
|
7
|
+
};
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC11c2VyLWNob29zZXItZmlsdGVyLW9wdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGVhdmVsYW5kcHJpY2Uvbmd4LWxpYi9hY3RpdmUtZGlyZWN0b3J5L21hdGVyaWFsL3NyYy9tb2RlbC9kZWZhdWx0LXVzZXItY2hvb3Nlci1maWx0ZXItb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLENBQUMsTUFBTSwrQkFBK0IsR0FBNkI7SUFDckUsV0FBVyxFQUFFLElBQUk7SUFDakIsVUFBVSxFQUFFLElBQUk7SUFDaEIsZUFBZSxFQUFFLEtBQUs7SUFDdEIsV0FBVyxFQUFFLElBQUk7SUFDakIsS0FBSyxFQUFFLElBQUk7Q0FDZCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVXNlckNob29zZXJGaWx0ZXJPcHRpb25zIH0gZnJvbSBcIi4vdXNlci1jaG9vc2VyLWZpbHRlci1vcHRpb25zXCI7XHJcblxyXG5leHBvcnQgY29uc3QgRGVmYXVsdFVzZXJDaG9vc2VyRmlsdGVyT3B0aW9uczogVXNlckNob29zZXJGaWx0ZXJPcHRpb25zID0ge1xyXG4gICAgYWNjb3VudE5hbWU6IHRydWUsXHJcbiAgICBkZXBhcnRtZW50OiB0cnVlLFxyXG4gICAgZ3JvdXBNZW1iZXJzaGlwOiBmYWxzZSxcclxuICAgIHBob25lTnVtYmVyOiB0cnVlLFxyXG4gICAgdGl0bGU6IHRydWVcclxufTsiXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0YWJsZS1ncm91cC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsZWF2ZWxhbmRwcmljZS9uZ3gtbGliL2FjdGl2ZS1kaXJlY3RvcnkvbWF0ZXJpYWwvc3JjL21vZGVsL3NlbGVjdGFibGUtZ3JvdXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEdyb3VwIH0gZnJvbSBcIkBjbGVhdmVsYW5kcHJpY2Uvbmd4LWxpYi9hY3RpdmUtZGlyZWN0b3J5XCI7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNlbGVjdGFibGVHcm91cCBleHRlbmRzIEdyb3VwIHtcclxuICAgIHNlbGVjdGVkOiBib29sZWFuO1xyXG59Il19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0YWJsZS11c2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xlYXZlbGFuZHByaWNlL25neC1saWIvYWN0aXZlLWRpcmVjdG9yeS9tYXRlcmlhbC9zcmMvbW9kZWwvc2VsZWN0YWJsZS11c2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBVc2VyIH0gZnJvbSBcIkBjbGVhdmVsYW5kcHJpY2Uvbmd4LWxpYi9hY3RpdmUtZGlyZWN0b3J5XCI7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNlbGVjdGFibGVVc2VyIGV4dGVuZHMgVXNlciB7XHJcbiAgICBzZWxlY3RlZDogYm9vbGVhbjtcclxuICAgIHBob3RvVXJsOiBzdHJpbmc7XHJcbn0iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1jaG9vc2VyLWRhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGVhdmVsYW5kcHJpY2Uvbmd4LWxpYi9hY3RpdmUtZGlyZWN0b3J5L21hdGVyaWFsL3NyYy9tb2RlbC91c2VyLWNob29zZXItZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgR3JvdXAsIFVzZXIgfSBmcm9tIFwiQGNsZWF2ZWxhbmRwcmljZS9uZ3gtbGliL2FjdGl2ZS1kaXJlY3RvcnlcIjtcclxuaW1wb3J0IHsgUGhvdG9JdGVtIH0gZnJvbSBcIkBjbGVhdmVsYW5kcHJpY2Uvbmd4LWxpYi9zaGFyZXBvaW50XCI7XHJcblxyXG5pbXBvcnQgeyBVc2VyQ2hvb3NlckZpbHRlck9wdGlvbnMgfSBmcm9tIFwiLi91c2VyLWNob29zZXItZmlsdGVyLW9wdGlvbnNcIjtcclxuaW1wb3J0IHsgVXNlckNob29zZXJNb2RlIH0gZnJvbSBcIi4vdXNlci1jaG9vc2VyLW1vZGVcIjtcclxuaW1wb3J0IHsgVXNlckNob29zZXJQcmVQcm9jZXNzaW5nR3JvdXAgfSBmcm9tIFwiLi91c2VyLWNob29zZXItcHJlLXByb2Nlc3NpbmctZ3JvdXBcIjtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVXNlckNob29zZXJEYXRhIHtcclxuICAgIC8vIFNob3VsZCB0aGUgZGlhbG9nIGNsb3NlIGF1dG9tYXRpY2FsbHkgd2hlbiB0aGUgdXNlciBjaG9vc2VzIGFuIGl0ZW0/XHJcbiAgICAvLyBBcHBsaWVzIHRvIHNpbmdsZS11c2VyIG1vZGUgb25seVxyXG4gICAgY2xvc2VXaGVuU2VsZWN0aW9uTWFkZT86IGJvb2xlYW47XHJcblxyXG4gICAgYWxsb3dDbG9zZVdpdGhvdXRTZWxlY3Rpb25zPzogYm9vbGVhbjtcclxuXHJcbiAgICAvLyBJZiB0aGUgY29tcG9uZW50IGlzIHRhc2tlZCB3aXRoIHB1bGxpbmcgQWN0aXZlIERpcmVjdG9yeSB1c2VycyAoZGVmYXVsdCBzZXR0aW5nKSxcclxuICAgIC8vICAgc2hvdWxkIHRoYXQgaW5jbHVkZSBkaXNhYmxlZCB1c2Vycz9cclxuICAgIGluY2x1ZGVEaXNhYmxlZFVzZXJzPzogYm9vbGVhbjtcclxuXHJcbiAgICAvLyBJZiB0aGUgY29tcG9uZW50IGlzIHRhc2tlZCB3aXRoIHB1bGxpbmcgQWN0aXZlIERpcmVjdG9yeSB1c2VycyAoZGVmYXVsdCBzZXR0aW5nKSxcclxuICAgIC8vICAgc2hvdWxkIHRoYXQgc2VhcmNoIGJlZ2luIGF0IGEgcGFydGljdWxhciBPcmdhbml6YXRpb24gVW5pdD9cclxuICAgIHBhcmVudE91Pzogc3RyaW5nO1xyXG5cclxuICAgIC8vIElmIHRydWUsIHRoZSBjb21wb25lbnQgd2lsbCByZXR1cm4gYW4gYXJyYXkgb2YgQWN0aXZlIERpcmVjdG9yeSBVc2VyIG9iamVjdHMuXHJcbiAgICAvLyBJZiBmYWxzZSAoZGVmYXVsdCksIHRoZSBjb21wb25lbnQgd2lsbCByZXR1cm4gYW4gYXJyYXkgb2YgdXNlciBhY2NvdW50IG5hbWVzLlxyXG4gICAgcmV0dXJuVXNlck9iamVjdHM/OiBib29sZWFuO1xyXG5cclxuICAgIC8vIFNob3VsZCB0aGUgZGlhbG9nIGluY2x1ZGUgaG92ZXIgdG9vcHRpcHMgZm9yIGVhY2ggdXNlciB0aGF0IGRpc3BsYXlzIHRoZWlyIGdyb3VwIG1lbWJlcnNoaXBcclxuICAgIC8vIFlvdSBwcm9iYWJseSBkb24ndCB3YW50IHRoaXMsIHdoaWNoIGlzIHdoeSB0aGUgZGVmYXVsdCBpcyBmYWxzZVxyXG4gICAgc2hvd0dyb3VwTWVtYmVyc2hpcFRvb2x0aXBzPzogYm9vbGVhbjtcclxuXHJcbiAgICAvLyBTaG91bGQgdGhlIHVzZXIgcGhvbmUgbnVtYmVyIGJlIGRpc3BsYXllZCBuZXh0IHRvIHRoZWlyIG5hbWUgaW4gdGhlIGRpYWxvZ1xyXG4gICAgc2hvd1Bob25lPzogYm9vbGVhbjtcclxuXHJcbiAgICAvLyBUaXRsZSBkaXNwbGF5ZWQgaW4gdGhlIGRpYWxvZ1xyXG4gICAgdGl0bGU/OiBzdHJpbmc7XHJcblxyXG4gICAgLy8gU2luZ2xlIG9yIE11bHRpIG1vZGVcclxuICAgIG1vZGU/OiBVc2VyQ2hvb3Nlck1vZGU7XHJcblxyXG4gICAgLy8gQWxsb3cgVXNlcnMvR3JvdXBzXHJcbiAgICBvYmplY3RUeXBlcz86ICd1c2Vycyd8J2dyb3Vwcyd8JyonO1xyXG4gICAgXHJcbiAgICAvLyBBcyB0aGUgdXNlciB0eXBlcyBpbnRvIHRoZSBmaWx0ZXIgZmllbGQsIHRoZSBsaXN0IG9mIHVzZXJzIGlzIGZpbHRlcmVkLlxyXG4gICAgLy8gVGhlIGZpbHRlck9wdGlvbnMgZGV0ZXJtaW5lIHdoaWNoIHVzZXIgcHJvcGVydGllcyBhcmUgdGFrZW4gaW50byBjb25zaWRlcmF0aW9uIGZvciB0aGF0IGZpbHRlci5cclxuICAgIC8vIE5vdGUsIGRpc3BsYXlOYW1lIGlzIGFsd2F5cyBpbmNsdWRlZCAoaGFyZC1jb2RlZCksIGFuZCBpcyB0aGVyZWZvcmUgbm90IGEgZmlsdGVyIG9wdGlvbi5cclxuICAgIGZpbHRlck9wdGlvbnM/OiBVc2VyQ2hvb3NlckZpbHRlck9wdGlvbnM7XHJcblxyXG4gICAgZXhjbHVzaW9ucz86IFVzZXJDaG9vc2VyUHJlUHJvY2Vzc2luZ0dyb3VwO1xyXG4gICAgaW5jbHVzaW9ucz86IFVzZXJDaG9vc2VyUHJlUHJvY2Vzc2luZ0dyb3VwO1xyXG4gICAgcHJlU2VsZWN0aW9ucz86IFVzZXJDaG9vc2VyUHJlUHJvY2Vzc2luZ0dyb3VwO1xyXG5cclxuICAgIC8vIEJ5IGRlZmF1bHQsIHRoZSBjb21wb25lbnQgd2lsbCBwdWxsIGEgZnJlc2ggbGlzdCBvZiBBY3RpdmUgRGlyZWN0b3J5IHVzZXJzL2dyb3VwcyBhbmQgU2hhcmVQb2ludCBwaG90b3MuXHJcbiAgICAvLyBCdXQgaWYgdGhlIHBhcmVudCBjb21wb25lbnQgYWxyZWFkeSBoYXMgdGhlbSwgeW91IGNhbiBwYXNzIHRoZW0gaW4gdmlhIHRoZXNlIHByb3BlcnRpZXMuXHJcbiAgICB1c2Vycz86IFVzZXJbXTtcclxuICAgIGdyb3Vwcz86IEdyb3VwW107XHJcbiAgICBwaG90b3M/OiBQaG90b0l0ZW1bXTtcclxuXHJcbiAgICBzZWxlY3RhYmxlR3JvdXBOYW1lcz86IHN0cmluZ1tdO1xyXG59Il19
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
;
|
|
2
|
+
export {};
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1jaG9vc2VyLWZpbHRlci1vcHRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xlYXZlbGFuZHByaWNlL25neC1saWIvYWN0aXZlLWRpcmVjdG9yeS9tYXRlcmlhbC9zcmMvbW9kZWwvdXNlci1jaG9vc2VyLWZpbHRlci1vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU1DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIFVzZXJDaG9vc2VyRmlsdGVyT3B0aW9ucyB7XHJcbiAgICBhY2NvdW50TmFtZT86IGJvb2xlYW47XHJcbiAgICBkZXBhcnRtZW50PzogYm9vbGVhbjtcclxuICAgIGdyb3VwTWVtYmVyc2hpcD86IGJvb2xlYW47XHJcbiAgICBwaG9uZU51bWJlcj86IGJvb2xlYW47XHJcbiAgICB0aXRsZT86IGJvb2xlYW47XHJcbn07Il19
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export var UserChooserMode;
|
|
2
|
+
(function (UserChooserMode) {
|
|
3
|
+
UserChooserMode[UserChooserMode["Single"] = 0] = "Single";
|
|
4
|
+
UserChooserMode[UserChooserMode["Multiple"] = 1] = "Multiple";
|
|
5
|
+
})(UserChooserMode || (UserChooserMode = {}));
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1jaG9vc2VyLW1vZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGVhdmVsYW5kcHJpY2Uvbmd4LWxpYi9hY3RpdmUtZGlyZWN0b3J5L21hdGVyaWFsL3NyYy9tb2RlbC91c2VyLWNob29zZXItbW9kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxlQUdYO0FBSEQsV0FBWSxlQUFlO0lBQ3ZCLHlEQUFNLENBQUE7SUFDTiw2REFBUSxDQUFBO0FBQ1osQ0FBQyxFQUhXLGVBQWUsS0FBZixlQUFlLFFBRzFCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gVXNlckNob29zZXJNb2RlIHtcclxuICAgIFNpbmdsZSxcclxuICAgIE11bHRpcGxlXHJcbn0iXX0=
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
;
|
|
2
|
+
export {};
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1jaG9vc2VyLXByZS1wcm9jZXNzaW5nLWdyb3VwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xlYXZlbGFuZHByaWNlL25neC1saWIvYWN0aXZlLWRpcmVjdG9yeS9tYXRlcmlhbC9zcmMvbW9kZWwvdXNlci1jaG9vc2VyLXByZS1wcm9jZXNzaW5nLWdyb3VwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIFVzZXJDaG9vc2VyUHJlUHJvY2Vzc2luZ0dyb3VwIHtcclxuICAgIGFjY291bnROYW1lcz86IHN0cmluZ1tdO1xyXG4gICAgZGVwYXJ0bWVudHM/OiBzdHJpbmdbXTtcclxuICAgIGdyb3Vwcz86IHN0cmluZ1tdO1xyXG4gICAgdGl0bGVzPzogc3RyaW5nW107XHJcbn07Il19
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { InjectionToken } from "@angular/core";
|
|
2
|
+
export const ActiveDirectoryServiceOptionsToken = new InjectionToken('');
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZlLWRpcmVjdG9yeS1zZXJ2aWNlLW9wdGlvbnMtdG9rZW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGVhdmVsYW5kcHJpY2Uvbmd4LWxpYi9hY3RpdmUtZGlyZWN0b3J5L3NyYy9tb2RlbC9hY3RpdmUtZGlyZWN0b3J5LXNlcnZpY2Utb3B0aW9ucy10b2tlbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRy9DLE1BQU0sQ0FBQyxNQUFNLGtDQUFrQyxHQUFHLElBQUksY0FBYyxDQUFnQyxFQUFFLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgQWN0aXZlRGlyZWN0b3J5U2VydmljZU9wdGlvbnMgfSBmcm9tIFwiLi9hY3RpdmUtZGlyZWN0b3J5LXNlcnZpY2Utb3B0aW9uc1wiO1xyXG5cclxuZXhwb3J0IGNvbnN0IEFjdGl2ZURpcmVjdG9yeVNlcnZpY2VPcHRpb25zVG9rZW4gPSBuZXcgSW5qZWN0aW9uVG9rZW48QWN0aXZlRGlyZWN0b3J5U2VydmljZU9wdGlvbnM+KCcnKTsiXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZlLWRpcmVjdG9yeS1zZXJ2aWNlLW9wdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGVhdmVsYW5kcHJpY2Uvbmd4LWxpYi9hY3RpdmUtZGlyZWN0b3J5L3NyYy9tb2RlbC9hY3RpdmUtZGlyZWN0b3J5LXNlcnZpY2Utb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2FjaGluZ0NvbmZpZywgTG9nZ2luZ0NvbmZpZywgTmd4TGliU2VydmljZU9wdGlvbnMgfSBmcm9tIFwiQGNsZWF2ZWxhbmRwcmljZS9uZ3gtbGliXCI7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEFjdGl2ZURpcmVjdG9yeVNlcnZpY2VPcHRpb25zIGV4dGVuZHMgTmd4TGliU2VydmljZU9wdGlvbnMge1xyXG4gIGNhY2hpbmc/OiBDYWNoaW5nQ29uZmlnO1xyXG4gIGxvZ2dpbmc/OiBMb2dnaW5nQ29uZmlnO1xyXG59Il19
|
|
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWQtb2JqZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xlYXZlbGFuZHByaWNlL25neC1saWIvYWN0aXZlLWRpcmVjdG9yeS9zcmMvbW9kZWwvYWQtb2JqZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIEFET2JqZWN0IHtcclxuICAgIGNhbm9uaWNhbE5hbWU6IHN0cmluZztcclxuICAgIGNuOiBzdHJpbmc7XHJcbiAgICBkZXNjcmlwdGlvbjogc3RyaW5nO1xyXG4gICAgZGlzcGxheU5hbWU/OiBzdHJpbmc7XHJcbiAgICBkaXN0aW5ndWlzaGVkTmFtZTogc3RyaW5nO1xyXG4gICAgbmFtZTogc3RyaW5nO1xyXG4gICAgb2JqZWN0Q2F0ZWdvcnk6IHN0cmluZztcclxuICAgIG9iamVjdENsYXNzOiBzdHJpbmdbXTtcclxuICAgIG9iamVjdEdVSUQ6IHN0cmluZztcclxuICAgIHdoZW5DaGFuZ2VkOiBzdHJpbmc7IC8vRGF0ZTtcclxuICAgIHdoZW5DcmVhdGVkOiBzdHJpbmc7IC8vRGF0ZTtcclxuICB9Il19
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
// This interface is internal only, no need to export in public-api.ts
|
|
2
|
+
export {};
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGUtb2JqZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xlYXZlbGFuZHByaWNlL25neC1saWIvYWN0aXZlLWRpcmVjdG9yeS9zcmMvbW9kZWwvY2FjaGUtb2JqZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHNFQUFzRSIsInNvdXJjZXNDb250ZW50IjpbIi8vIFRoaXMgaW50ZXJmYWNlIGlzIGludGVybmFsIG9ubHksIG5vIG5lZWQgdG8gZXhwb3J0IGluIHB1YmxpYy1hcGkudHNcclxuXHJcbmltcG9ydCB7IERhdGVUaW1lIH0gZnJvbSBcImx1eG9uXCI7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENhY2hlT2JqZWN0PFQ+IHtcclxuICBkYXRhOiBUW10sXHJcbiAgbGFzdFVwZGF0ZTogRGF0ZVRpbWVcclxufSJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xlYXZlbGFuZC1wcmljZS11c2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xlYXZlbGFuZHByaWNlL25neC1saWIvYWN0aXZlLWRpcmVjdG9yeS9zcmMvbW9kZWwvY2xlYXZlbGFuZC1wcmljZS11c2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBVc2VyIH0gZnJvbSBcIi4vdXNlclwiO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDbGVhdmVsYW5kUHJpY2VVc2VyIGV4dGVuZHMgVXNlciB7XHJcbiAgICBjaXR5OiBzdHJpbmc7XHJcbiAgICBleHRlbnNpb25BdHRyaWJ1dGUxOiBzdHJpbmc7XHJcbiAgICBleHRlbnNpb25BdHRyaWJ1dGUyOiBzdHJpbmc7XHJcbiAgICBleHRlbnNpb25BdHRyaWJ1dGUzOiBzdHJpbmc7XHJcbiAgICBleHRlbnNpb25BdHRyaWJ1dGU0OiBzdHJpbmc7XHJcbiAgICBleHRlbnNpb25BdHRyaWJ1dGU1OiBzdHJpbmc7XHJcbiAgICBleHRlbnNpb25BdHRyaWJ1dGU2OiBzdHJpbmc7XHJcbiAgICBmaXJzdE5hbWU6IHN0cmluZztcclxuICAgIGhpcmVEYXRlOiBzdHJpbmc7IC8vRGF0ZTtcclxuICAgIGxhc3ROYW1lOiBzdHJpbmc7XHJcbiAgICBtYXJrZXRUaXRsZTogc3RyaW5nO1xyXG4gICAgc3RhdGU6IHN0cmluZztcclxuICAgIHRpdGxlMjogc3RyaW5nO1xyXG4gICAgd29ya1NoaWZ0OiBzdHJpbmc7XHJcbn0iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGVhdmVsYW5kcHJpY2Uvbmd4LWxpYi9hY3RpdmUtZGlyZWN0b3J5L3NyYy9tb2RlbC9ncm91cC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVXNlck9yR3JvdXAgfSBmcm9tIFwiLi91c2VyLW9yLWdyb3VwXCI7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEdyb3VwIGV4dGVuZHMgVXNlck9yR3JvdXAge1xyXG4gICAgbWVtYmVyOiBzdHJpbmdbXTtcclxuICAgIGdyb3VwVHlwZTogbnVtYmVyO1xyXG4gICAgc2NvcGU6IHN0cmluZztcclxuICAgIHR5cGU6IHN0cmluZztcclxufSJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1vci1ncm91cC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsZWF2ZWxhbmRwcmljZS9uZ3gtbGliL2FjdGl2ZS1kaXJlY3Rvcnkvc3JjL21vZGVsL3VzZXItb3ItZ3JvdXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFET2JqZWN0IH0gZnJvbSAnLi9hZC1vYmplY3QnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBVc2VyT3JHcm91cCBleHRlbmRzIEFET2JqZWN0IHtcclxuICBtYWlsOiBzdHJpbmc7XHJcbiAgbWVtYmVyT2Y6IHN0cmluZ1tdO1xyXG4gIG9iamVjdFNpZDogc3RyaW5nO1xyXG4gIHNBTUFjY291bnROYW1lOiBzdHJpbmc7XHJcbn0iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsZWF2ZWxhbmRwcmljZS9uZ3gtbGliL2FjdGl2ZS1kaXJlY3Rvcnkvc3JjL21vZGVsL3VzZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFVzZXJPckdyb3VwIH0gZnJvbSAnLi91c2VyLW9yLWdyb3VwJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVXNlciBleHRlbmRzIFVzZXJPckdyb3VwIHtcclxuICBiaXJ0aERhdGU6IHN0cmluZzsgLy9EYXRlO1xyXG4gIGRlcGFydG1lbnQ6IHN0cmluZztcclxuICBlbXBsb3llZU51bWJlcjogc3RyaW5nO1xyXG4gIGZhY3NpbWlsZVRlbGVwaG9uZU51bWJlcjogc3RyaW5nO1xyXG4gIGdpdmVuTmFtZTogc3RyaW5nOyAvLyBGaXJzdCBuYW1lXHJcbiAgaW5pdGlhbHM6IHN0cmluZztcclxuICBsOiBzdHJpbmc7IC8vIENpdHlcclxuICBsYXN0QmFkUGFzc3dvcmRBdHRlbXB0OiBzdHJpbmc7IC8vRGF0ZTtcclxuICBsYXN0TG9nb25EYXRlOiBzdHJpbmc7IC8vRGF0ZTtcclxuICBtYW5hZ2VyOiBzdHJpbmc7XHJcbiAgbW9iaWxlOiBzdHJpbmc7XHJcbiAgc2NyaXB0UGF0aDogc3RyaW5nO1xyXG4gIHNuOiBzdHJpbmc7IC8vIFN1cm5hbWUgKExhc3QgbmFtZSlcclxuICBzdDogc3RyaW5nOyAvLyBTdGF0ZVxyXG4gIHRlbGVwaG9uZU51bWJlcjogc3RyaW5nO1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgdGh1bWJuYWlsUGhvdG86IG51bWJlcltdO1xyXG4gIHVzZXJBY2NvdW50Q29udHJvbDogbnVtYmVyO1xyXG4gIHVzZXJQcmluY2lwYWxOYW1lOiBzdHJpbmc7XHJcblxyXG4gIGVuYWJsZWQ6IGJvb2xlYW47IC8vIE5vdCBhIHJlYWwgQUQgcHJvcGVydHkgLSBjYWxjdWxhdGVkIGJ5IEFQSVxyXG59Il19
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import { HttpClient } from '@angular/common/http';
|
|
2
|
+
import { Inject, inject, Injectable, Optional } from '@angular/core';
|
|
3
|
+
import { DateTime } from 'luxon';
|
|
4
|
+
import { of } from 'rxjs';
|
|
5
|
+
import { NgxLibServiceBase } from '@cleavelandprice/ngx-lib';
|
|
6
|
+
import { ActiveDirectoryServiceOptionsToken } from '../model/active-directory-service-options-token';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
export class ActiveDirectoryService extends NgxLibServiceBase {
|
|
9
|
+
#services = {
|
|
10
|
+
http: inject(HttpClient)
|
|
11
|
+
};
|
|
12
|
+
#cache;
|
|
13
|
+
#defaultCacheLifeMinutes = 720;
|
|
14
|
+
//#region Properties
|
|
15
|
+
get #cacheExpired() {
|
|
16
|
+
if (!this.#cache) {
|
|
17
|
+
return true;
|
|
18
|
+
}
|
|
19
|
+
const expiration = this.#cache.lastUpdate.plus({ minutes: this.options.caching.lifeMinutes });
|
|
20
|
+
return DateTime.now() > expiration;
|
|
21
|
+
}
|
|
22
|
+
//#endregion
|
|
23
|
+
constructor(options) {
|
|
24
|
+
super(options);
|
|
25
|
+
this.options = options;
|
|
26
|
+
this.options = {
|
|
27
|
+
...options,
|
|
28
|
+
caching: options?.caching ?? {
|
|
29
|
+
enabled: false,
|
|
30
|
+
lifeMinutes: this.#defaultCacheLifeMinutes
|
|
31
|
+
},
|
|
32
|
+
logging: options?.logging ?? {
|
|
33
|
+
dataCached: false,
|
|
34
|
+
cachedDataReturned: false,
|
|
35
|
+
freshDataReturned: false,
|
|
36
|
+
cacheCleared: false
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
getUsers(includePhoto = false, includeDisabled = false, parentOU = '') {
|
|
41
|
+
// If caching is enabled, there will be two calls to the API if the cache is null/expired
|
|
42
|
+
// One call is to update the cache and the other is to return the data that the user requested
|
|
43
|
+
// Subsequent calls will bypass the API and returned cached data until it expires
|
|
44
|
+
const observable$ = this.#services.http.get(`${this.apiUrl}/users/${includePhoto}/${includeDisabled}/${parentOU}`);
|
|
45
|
+
if (this.options.caching.enabled) {
|
|
46
|
+
if (this.#cacheExpired) {
|
|
47
|
+
// Get the data and cache it
|
|
48
|
+
observable$.subscribe(data => {
|
|
49
|
+
this.#cache = {
|
|
50
|
+
data,
|
|
51
|
+
lastUpdate: DateTime.now()
|
|
52
|
+
};
|
|
53
|
+
if (this.options.logging.dataCached) {
|
|
54
|
+
console.log(`Data cached for ${this.options.caching.lifeMinutes} minutes`);
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
// Cache exists and hasn't expired yet
|
|
60
|
+
if (this.options.logging.cachedDataReturned) {
|
|
61
|
+
console.log('Returning cached users');
|
|
62
|
+
}
|
|
63
|
+
return of(this.#cache.data);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
// Cache is either disabled or expired, return data from API
|
|
67
|
+
if (this.options.logging.freshDataReturned) {
|
|
68
|
+
console.log('Returning fresh users');
|
|
69
|
+
}
|
|
70
|
+
return observable$;
|
|
71
|
+
}
|
|
72
|
+
getUser(accountName, includePhoto = false) {
|
|
73
|
+
return this.#services.http.get(`${this.apiUrl}/users/name/${accountName}/${includePhoto}`);
|
|
74
|
+
}
|
|
75
|
+
clearCache() {
|
|
76
|
+
this.#cache = undefined;
|
|
77
|
+
if (this.options.logging.cacheCleared) {
|
|
78
|
+
console.log('Cache cleared');
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
getDomains() {
|
|
82
|
+
return this.#services.http.get(`${this.apiUrl}/activedirectory/domains`);
|
|
83
|
+
}
|
|
84
|
+
getOUs(parentOU = '') {
|
|
85
|
+
return this.#services.http.get(`${this.apiUrl}/activedirectory/ous/${parentOU}`);
|
|
86
|
+
}
|
|
87
|
+
getContainers(parentOU = '') {
|
|
88
|
+
return this.#services.http.get(`${this.apiUrl}/activedirectory/containers/${parentOU}`);
|
|
89
|
+
}
|
|
90
|
+
getGroups(parentOU = '') {
|
|
91
|
+
return this.#services.http.get(`${this.apiUrl}/activedirectory/groups/${parentOU}`);
|
|
92
|
+
}
|
|
93
|
+
getDistinctUserAttributeValues(attributeName) {
|
|
94
|
+
return this.#services.http.get(`${this.apiUrl}/activedirectory/distinct/${attributeName}`);
|
|
95
|
+
}
|
|
96
|
+
getDepartments() {
|
|
97
|
+
return this.#services.http.get(`${this.apiUrl}/activedirectory/departments`);
|
|
98
|
+
}
|
|
99
|
+
getTitles() {
|
|
100
|
+
return this.#services.http.get(`${this.apiUrl}/activedirectory/titles`);
|
|
101
|
+
}
|
|
102
|
+
getComputers(includeDisabled = false, parentOU = '') {
|
|
103
|
+
return this.#services.http.get(`${this.apiUrl}/activedirectory/computers/${includeDisabled}/${parentOU}`);
|
|
104
|
+
}
|
|
105
|
+
getServers(includeDisabled = false, parentOU = '') {
|
|
106
|
+
return this.#services.http.get(`${this.apiUrl}/activedirectory/servers/${includeDisabled}/${parentOU}`);
|
|
107
|
+
}
|
|
108
|
+
getWorkstations(includeDisabled = false, parentOU = '') {
|
|
109
|
+
return this.#services.http.get(`${this.apiUrl}/activedirectory/workstations/${includeDisabled}/${parentOU}`);
|
|
110
|
+
}
|
|
111
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: ActiveDirectoryService, deps: [{ token: ActiveDirectoryServiceOptionsToken, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
112
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: ActiveDirectoryService, providedIn: 'root' }); }
|
|
113
|
+
}
|
|
114
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: ActiveDirectoryService, decorators: [{
|
|
115
|
+
type: Injectable,
|
|
116
|
+
args: [{
|
|
117
|
+
providedIn: 'root'
|
|
118
|
+
}]
|
|
119
|
+
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
120
|
+
type: Optional
|
|
121
|
+
}, {
|
|
122
|
+
type: Inject,
|
|
123
|
+
args: [ActiveDirectoryServiceOptionsToken]
|
|
124
|
+
}] }] });
|
|
125
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZlLWRpcmVjdG9yeS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xlYXZlbGFuZHByaWNlL25neC1saWIvYWN0aXZlLWRpcmVjdG9yeS9zcmMvc2VydmljZXMvYWN0aXZlLWRpcmVjdG9yeS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDakMsT0FBTyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUV0QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUU3RCxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSxpREFBaUQsQ0FBQzs7QUFXckcsTUFBTSxPQUFPLHNCQUF1QixTQUFRLGlCQUFpQjtJQUMzRCxTQUFTLEdBQUc7UUFDVixJQUFJLEVBQUUsTUFBTSxDQUFDLFVBQVUsQ0FBQztLQUN6QixDQUFDO0lBQ0YsTUFBTSxDQUFvQztJQUMxQyx3QkFBd0IsR0FBRyxHQUFHLENBQUM7SUFFL0Isb0JBQW9CO0lBQ3BCLElBQUksYUFBYTtRQUNmLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDakIsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBRUQsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBUSxDQUFDLFdBQVcsRUFBQyxDQUFDLENBQUM7UUFFOUYsT0FBTyxRQUFRLENBQUMsR0FBRyxFQUFFLEdBQUcs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QUksQ0FBQyxHQUFHLENBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSw4QkFBOEIsZUFBZSxJQUFJLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDcEgsQ0FBQztJQUVELFVBQVUsQ0FBQyxlQUFlLEdBQUcsS0FBSyxFQUFFLFFBQVEsR0FBRyxFQUFFO1FBQy9DLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sNEJBQTRCLGVBQWUsSUFBSSxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQ2xILENBQUM7SUFFRCxlQUFlLENBQUMsZUFBZSxHQUFHLEtBQUssRUFBRSxRQUFRLEdBQUcsRUFBRTtRQUNwRCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLGlDQUFpQyxlQUFlLElBQUksUUFBUSxFQUFFLENBQUMsQ0FBQztJQUN2SCxDQUFDOzhHQS9IVSxzQkFBc0Isa0JBbUJELGtDQUFrQztrSEFuQnZELHNCQUFzQixjQUZyQixNQUFNOzsyRkFFUCxzQkFBc0I7a0JBSGxDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFvQmMsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxrQ0FBa0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBJbmplY3QsIGluamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRGF0ZVRpbWUgfSBmcm9tICdsdXhvbic7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQgeyBOZ3hMaWJTZXJ2aWNlQmFzZSB9IGZyb20gJ0BjbGVhdmVsYW5kcHJpY2Uvbmd4LWxpYic7XHJcbmltcG9ydCB7IEFjdGl2ZURpcmVjdG9yeVNlcnZpY2VPcHRpb25zIH0gZnJvbSAnLi4vbW9kZWwvYWN0aXZlLWRpcmVjdG9yeS1zZXJ2aWNlLW9wdGlvbnMnO1xyXG5pbXBvcnQgeyBBY3RpdmVEaXJlY3RvcnlTZXJ2aWNlT3B0aW9uc1Rva2VuIH0gZnJvbSAnLi4vbW9kZWwvYWN0aXZlLWRpcmVjdG9yeS1zZXJ2aWNlLW9wdGlvbnMtdG9rZW4nO1xyXG5pbXBvcnQgeyBBRE9iamVjdCB9IGZyb20gJy4uL21vZGVsL2FkLW9iamVjdCc7XHJcbmltcG9ydCB7IEFET2JqZWN0V2l0aENoaWxkcmVuIH0gZnJvbSAnLi4vbW9kZWwvYWQtb2JqZWN0LXdpdGgtY2hpbGRyZW4nO1xyXG5pbXBvcnQgeyBDYWNoZU9iamVjdCB9IGZyb20gJy4uL21vZGVsL2NhY2hlLW9iamVjdCc7XHJcbmltcG9ydCB7IENsZWF2ZWxhbmRQcmljZVVzZXIgfSBmcm9tICcuLi9tb2RlbC9jbGVhdmVsYW5kLXByaWNlLXVzZXInO1xyXG5pbXBvcnQgeyBHcm91cCB9IGZyb20gJy4uL21vZGVsL2dyb3VwJztcclxuaW1wb3J0IHsgVXNlciB9IGZyb20gJy4uL21vZGVsL3VzZXInO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQWN0aXZlRGlyZWN0b3J5U2VydmljZSBleHRlbmRzIE5neExpYlNlcnZpY2VCYXNlIHtcclxuICAjc2VydmljZXMgPSB7XHJcbiAgICBodHRwOiBpbmplY3QoSHR0cENsaWVudClcclxuICB9O1xyXG4gICNjYWNoZT86IENhY2hlT2JqZWN0PENsZWF2ZWxhbmRQcmljZVVzZXI+O1xyXG4gICNkZWZhdWx0Q2FjaGVMaWZlTWludXRlcyA9IDcyMDtcclxuXHJcbiAgLy8jcmVnaW9uIFByb3BlcnRpZXNcclxuICBnZXQgI2NhY2hlRXhwaXJlZCgpOiBib29sZWFuIHtcclxuICAgIGlmICghdGhpcy4jY2FjaGUpIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgZXhwaXJhdGlvbiA9IHRoaXMuI2NhY2hlLmxhc3RVcGRhdGUucGx1cyh7IG1pbnV0ZXM6IHRoaXMub3B0aW9ucy5jYWNoaW5nIS5saWZlTWludXRlc30pO1xyXG5cclxuICAgIHJldHVybiBEYXRlVGltZS5ub3coKSA+IGV4cGlyYXRpb247XHJcbiAgfVxyXG4gIC8vI2VuZHJlZ2lvblxyXG5cclxuICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBASW5qZWN0KEFjdGl2ZURpcmVjdG9yeVNlcnZpY2VPcHRpb25zVG9rZW4pIHByaXZhdGUgb3B0aW9uczogQWN0aXZlRGlyZWN0b3J5U2VydmljZU9wdGlvbnMpIHtcclxuICAgIHN1cGVyKG9wdGlvbnMpO1xyXG5cclxuICAgIHRoaXMub3B0aW9ucyA9IHtcclxuICAgICAgLi4ub3B0aW9ucyxcclxuXHJcbiAgICAgIGNhY2hpbmc6IG9wdGlvbnM/LmNhY2hpbmcgPz8ge1xyXG4gICAgICAgIGVuYWJsZWQ6IGZhbHNlLFxyXG4gICAgICAgIGxpZmVNaW51dGVzOiB0aGlzLiNkZWZhdWx0Q2FjaGVMaWZlTWludXRlc1xyXG4gICAgICB9LFxyXG5cclxuICAgICAgbG9nZ2luZzogb3B0aW9ucz8ubG9nZ2luZyA/PyB7XHJcbiAgICAgICAgZGF0YUNhY2hlZDogZmFsc2UsXHJcbiAgICAgICAgY2FjaGVkRGF0YVJldHVybmVkOiBmYWxzZSxcclxuICAgICAgICBmcmVzaERhdGFSZXR1cm5lZDogZmFsc2UsXHJcbiAgICAgICAgY2FjaGVDbGVhcmVkOiBmYWxzZVxyXG4gICAgICB9XHJcbiAgICB9O1xyXG4gIH1cclxuICBcclxuICBnZXRVc2VycyhpbmNsdWRlUGhvdG8gPSBmYWxzZSwgaW5jbHVkZURpc2FibGVkID0gZmFsc2UsIHBhcmVudE9VID0gJycpOiBPYnNlcnZhYmxlPENsZWF2ZWxhbmRQcmljZVVzZXJbXT4ge1xyXG4gICAgLy8gSWYgY2FjaGluZyBpcyBlbmFibGVkLCB0aGVyZSB3aWxsIGJlIHR3byBjYWxscyB0byB0aGUgQVBJIGlmIHRoZSBjYWNoZSBpcyBudWxsL2V4cGlyZWRcclxuICAgIC8vIE9uZSBjYWxsIGlzIHRvIHVwZGF0ZSB0aGUgY2FjaGUgYW5kIHRoZSBvdGhlciBpcyB0byByZXR1cm4gdGhlIGRhdGEgdGhhdCB0aGUgdXNlciByZXF1ZXN0ZWRcclxuICAgIC8vIFN1YnNlcXVlbnQgY2FsbHMgd2lsbCBieXBhc3MgdGhlIEFQSSBhbmQgcmV0dXJuZWQgY2FjaGVkIGRhdGEgdW50aWwgaXQgZXhwaXJlc1xyXG5cclxuICAgIGNvbnN0IG9ic2VydmFibGUkID0gdGhpcy4jc2VydmljZXMuaHR0cC5nZXQ8Q2xlYXZlbGFuZFByaWNlVXNlcltdPihgJHt0aGlzLmFwaVVybH0vdXNlcnMvJHtpbmNsdWRlUGhvdG99LyR7aW5jbHVkZURpc2FibGVkfS8ke3BhcmVudE9VfWApO1xyXG5cclxuICAgIGlmICh0aGlzLm9wdGlvbnMuY2FjaGluZyEuZW5hYmxlZCkge1xyXG4gICAgICBpZiAodGhpcy4jY2FjaGVFeHBpcmVkKSB7XHJcbiAgICAgICAgLy8gR2V0IHRoZSBkYXRhIGFuZCBjYWNoZSBpdFxyXG4gICAgICAgIG9ic2VydmFibGUkLnN1YnNjcmliZShkYXRhID0+IHtcclxuICAgICAgICAgIHRoaXMuI2NhY2hlID0ge1xyXG4gICAgICAgICAgICBkYXRhLFxyXG4gICAgICAgICAgICBsYXN0VXBkYXRlOiBEYXRlVGltZS5ub3coKVxyXG4gICAgICAgICAgfTtcclxuXHJcbiAgICAgICAgICBpZiAodGhpcy5vcHRpb25zLmxvZ2dpbmchLmRhdGFDYWNoZWQpIHtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coYERhdGEgY2FjaGVkIGZvciAke3RoaXMub3B0aW9ucy5jYWNoaW5nIS5saWZlTWludXRlc30gbWludXRlc2ApO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIC8vIENhY2hlIGV4aXN0cyBhbmQgaGFzbid0IGV4cGlyZWQgeWV0XHJcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5sb2dnaW5nIS5jYWNoZWREYXRhUmV0dXJuZWQpIHtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKCdSZXR1cm5pbmcgY2FjaGVkIHVzZXJzJyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gb2YodGhpcy4jY2FjaGUhLmRhdGEpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gQ2FjaGUgaXMgZWl0aGVyIGRpc2FibGVkIG9yIGV4cGlyZWQsIHJldHVybiBkYXRhIGZyb20gQVBJXHJcbiAgICBpZiAodGhpcy5vcHRpb25zLmxvZ2dpbmchLmZyZXNoRGF0YVJldHVybmVkKSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKCdSZXR1cm5pbmcgZnJlc2ggdXNlcnMnKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gb2JzZXJ2YWJsZSQ7XHJcbiAgfVxyXG5cclxuICBnZXRVc2VyKGFjY291bnROYW1lOiBzdHJpbmcsIGluY2x1ZGVQaG90byA9IGZhbHNlKTogT2JzZXJ2YWJsZTxDbGVhdmVsYW5kUHJpY2VVc2VyPiB7XHJcbiAgICByZXR1cm4gdGhpcy4jc2VydmljZXMuaHR0cC5nZXQ8Q2xlYXZlbGFuZFByaWNlVXNlcj4oYCR7dGhpcy5hcGlVcmx9L3VzZXJzL25hbWUvJHthY2NvdW50TmFtZX0vJHtpbmNsdWRlUGhvdG99YCk7XHJcbiAgfVxyXG5cclxuICBjbGVhckNhY2hlKCk6IHZvaWQge1xyXG4gICAgdGhpcy4jY2FjaGUgPSB1bmRlZmluZWQ7XHJcblxyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5sb2dnaW5nIS5jYWNoZUNsZWFyZWQpIHtcclxuICAgICAgY29uc29sZS5sb2coJ0NhY2hlIGNsZWFyZWQnKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldERvbWFpbnMoKTogT2JzZXJ2YWJsZTxBRE9iamVjdFtdPiB7XHJcbiAgICByZXR1cm4gdGhpcy4jc2VydmljZXMuaHR0cC5nZXQ8QURPYmplY3RbXT4oYCR7dGhpcy5hcGlVcmx9L2FjdGl2ZWRpcmVjdG9yeS9kb21haW5zYCk7XHJcbiAgfVxyXG5cclxuICBnZXRPVXMocGFyZW50T1UgPSAnJyk6IE9ic2VydmFibGU8QURPYmplY3RXaXRoQ2hpbGRyZW5bXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuI3NlcnZpY2VzLmh0dHAuZ2V0PEFET2JqZWN0V2l0aENoaWxkcmVuW10+KGAke3RoaXMuYXBpVXJsfS9hY3RpdmVkaXJlY3Rvcnkvb3VzLyR7cGFyZW50T1V9YCk7XHJcbiAgfVxyXG5cclxuICBnZXRDb250YWluZXJzKHBhcmVudE9VID0gJycpOiBPYnNlcnZhYmxlPEFET2JqZWN0V2l0aENoaWxkcmVuW10+IHtcclxuICAgIHJldHVybiB0aGlzLiNzZXJ2aWNlcy5odHRwLmdldDxBRE9iamVjdFdpdGhDaGlsZHJlbltdPihgJHt0aGlzLmFwaVVybH0vYWN0aXZlZGlyZWN0b3J5L2NvbnRhaW5lcnMvJHtwYXJlbnRPVX1gKTtcclxuICB9XHJcblxyXG4gIGdldEdyb3VwcyhwYXJlbnRPVSA9ICcnKTogT2JzZXJ2YWJsZTxHcm91cFtdPiB7XHJcbiAgICByZXR1cm4gdGhpcy4jc2VydmljZXMuaHR0cC5nZXQ8R3JvdXBbXT4oYCR7dGhpcy5hcGlVcmx9L2FjdGl2ZWRpcmVjdG9yeS9ncm91cHMvJHtwYXJlbnRPVX1gKTtcclxuICB9XHJcblxyXG4gIGdldERpc3RpbmN0VXNlckF0dHJpYnV0ZVZhbHVlcyhhdHRyaWJ1dGVOYW1lOiBzdHJpbmcpIDogT2JzZXJ2YWJsZTxhbnlbXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuI3NlcnZpY2VzLmh0dHAuZ2V0PGFueVtdPihgJHt0aGlzLmFwaVVybH0vYWN0aXZlZGlyZWN0b3J5L2Rpc3RpbmN0LyR7YXR0cmlidXRlTmFtZX1gKTtcclxuICB9XHJcblxyXG4gIGdldERlcGFydG1lbnRzKCkgOiBPYnNlcnZhYmxlPHN0cmluZ1tdPiB7XHJcbiAgICByZXR1cm4gdGhpcy4jc2VydmljZXMuaHR0cC5nZXQ8c3RyaW5nW10+KGAke3RoaXMuYXBpVXJsfS9hY3RpdmVkaXJlY3RvcnkvZGVwYXJ0bWVudHNgKTtcclxuICB9XHJcblxyXG4gIGdldFRpdGxlcygpIDogT2JzZXJ2YWJsZTxzdHJpbmdbXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuI3NlcnZpY2VzLmh0dHAuZ2V0PHN0cmluZ1tdPihgJHt0aGlzLmFwaVVybH0vYWN0aXZlZGlyZWN0b3J5L3RpdGxlc2ApO1xyXG4gIH1cclxuXHJcbiAgZ2V0Q29tcHV0ZXJzKGluY2x1ZGVEaXNhYmxlZCA9IGZhbHNlLCBwYXJlbnRPVSA9ICcnKTogT2JzZXJ2YWJsZTxVc2VyW10+IHtcclxuICAgIHJldHVybiB0aGlzLiNzZXJ2aWNlcy5odHRwLmdldDxVc2VyW10+KGAke3RoaXMuYXBpVXJsfS9hY3RpdmVkaXJlY3RvcnkvY29tcHV0ZXJzLyR7aW5jbHVkZURpc2FibGVkfS8ke3BhcmVudE9VfWApO1xyXG4gIH1cclxuXHJcbiAgZ2V0U2VydmVycyhpbmNsdWRlRGlzYWJsZWQgPSBmYWxzZSwgcGFyZW50T1UgPSAnJyk6IE9ic2VydmFibGU8VXNlcltdPiB7XHJcbiAgICByZXR1cm4gdGhpcy4jc2VydmljZXMuaHR0cC5nZXQ8VXNlcltdPihgJHt0aGlzLmFwaVVybH0vYWN0aXZlZGlyZWN0b3J5L3NlcnZlcnMvJHtpbmNsdWRlRGlzYWJsZWR9LyR7cGFyZW50T1V9YCk7XHJcbiAgfVxyXG5cclxuICBnZXRXb3Jrc3RhdGlvbnMoaW5jbHVkZURpc2FibGVkID0gZmFsc2UsIHBhcmVudE9VID0gJycpOiBPYnNlcnZhYmxlPFVzZXJbXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuI3NlcnZpY2VzLmh0dHAuZ2V0PFVzZXJbXT4oYCR7dGhpcy5hcGlVcmx9L2FjdGl2ZWRpcmVjdG9yeS93b3Jrc3RhdGlvbnMvJHtpbmNsdWRlRGlzYWJsZWR9LyR7cGFyZW50T1V9YCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|