@cleavelandprice/ngx-lib 3.8.0 → 3.9.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/gui/components/user-form-field/user-form-field.component.d.ts +0 -1
- package/active-directory/model/cache-object.d.ts +2 -1
- package/esm2022/active-directory/active-directory.module.mjs +4 -4
- package/esm2022/active-directory/gui/components/user-chooser/user-chooser.component.mjs +3 -3
- package/esm2022/active-directory/gui/components/user-form-field/user-form-field.component.mjs +8 -8
- package/esm2022/active-directory/gui/gui.module.mjs +4 -4
- package/esm2022/active-directory/model/cache-object.mjs +1 -1
- package/esm2022/active-directory/services/active-directory.service.mjs +8 -9
- package/esm2022/authentication/authentication.base.module.mjs +4 -4
- package/esm2022/authentication/object/object.module.mjs +4 -4
- package/esm2022/authentication/object/services/authentication.service.mjs +3 -3
- package/esm2022/authentication/token/gui/components/login/login.component.mjs +3 -3
- package/esm2022/authentication/token/gui/components/login-form/login-form.component.mjs +3 -3
- package/esm2022/authentication/token/gui/services/authentication.service.mjs +3 -3
- package/esm2022/authentication/token/gui/token-gui.module.mjs +4 -4
- package/esm2022/authentication/token/services/authentication.service.mjs +3 -3
- package/esm2022/authentication/token/token.module.mjs +4 -4
- package/esm2022/dialog/components/base/base.component.mjs +3 -3
- package/esm2022/dialog/components/choice/choice.component.mjs +3 -3
- package/esm2022/dialog/components/confirmation/confirmation.component.mjs +3 -3
- package/esm2022/dialog/components/input/input.component.mjs +3 -3
- package/esm2022/dialog/components/message/message.component.mjs +3 -3
- package/esm2022/dialog/dialog.module.mjs +4 -4
- package/esm2022/lib/ngx-lib.module.mjs +4 -4
- package/esm2022/lib/services/app-path-config.service.mjs +3 -3
- package/esm2022/msgraph/msgraph.module.mjs +4 -4
- package/esm2022/quill/components/editor/editor.component.mjs +3 -3
- package/esm2022/quill/components/raw/raw.component.mjs +3 -3
- package/esm2022/quill/mention/components/editor/editor.component.mjs +3 -3
- package/esm2022/quill/mention/quill-mention.module.mjs +4 -4
- package/esm2022/quill/quill.module.mjs +4 -4
- package/esm2022/sharepoint/components/employee-photo/employee-photo.component.mjs +3 -3
- package/esm2022/sharepoint/model/cache-object.mjs +1 -1
- package/esm2022/sharepoint/pipes/employee-photo-url.pipe.mjs +3 -3
- package/esm2022/sharepoint/services/sharepoint.service.mjs +9 -10
- package/esm2022/sharepoint/sharepoint.module.mjs +4 -4
- package/esm2022/upload/components/upload/upload.component.mjs +3 -3
- package/esm2022/upload/components/upload-dialog/upload-dialog.component.mjs +3 -3
- package/esm2022/upload/services/upload.service.mjs +3 -3
- package/esm2022/upload/upload.module.mjs +4 -4
- package/esm2022/url-utilities/pipes/safe-resource-url.pipe.mjs +3 -3
- package/esm2022/url-utilities/pipes/safe-url.pipe.mjs +3 -3
- package/esm2022/url-utilities/pipes/uri-scheme.pipe.mjs +3 -3
- package/esm2022/url-utilities/url-utilities.module.mjs +4 -4
- package/fesm2022/cleavelandprice-ngx-lib-active-directory-gui.mjs +14 -14
- package/fesm2022/cleavelandprice-ngx-lib-active-directory-gui.mjs.map +1 -1
- package/fesm2022/cleavelandprice-ngx-lib-active-directory.mjs +11 -12
- package/fesm2022/cleavelandprice-ngx-lib-active-directory.mjs.map +1 -1
- package/fesm2022/cleavelandprice-ngx-lib-authentication-object.mjs +7 -7
- package/fesm2022/cleavelandprice-ngx-lib-authentication-token-gui.mjs +13 -13
- package/fesm2022/cleavelandprice-ngx-lib-authentication-token.mjs +7 -7
- package/fesm2022/cleavelandprice-ngx-lib-authentication.mjs +4 -4
- package/fesm2022/cleavelandprice-ngx-lib-dialog.mjs +19 -19
- package/fesm2022/cleavelandprice-ngx-lib-msgraph.mjs +4 -4
- package/fesm2022/cleavelandprice-ngx-lib-quill-mention.mjs +7 -7
- package/fesm2022/cleavelandprice-ngx-lib-quill.mjs +10 -10
- package/fesm2022/cleavelandprice-ngx-lib-sharepoint.mjs +18 -19
- package/fesm2022/cleavelandprice-ngx-lib-sharepoint.mjs.map +1 -1
- package/fesm2022/cleavelandprice-ngx-lib-upload.mjs +13 -13
- package/fesm2022/cleavelandprice-ngx-lib-url-utilities.mjs +13 -13
- package/fesm2022/cleavelandprice-ngx-lib.mjs +7 -7
- package/package.json +1 -1
- package/sharepoint/model/cache-object.d.ts +2 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Injectable, Optional } from '@angular/core';
|
|
2
2
|
import { of } from 'rxjs';
|
|
3
|
-
import
|
|
3
|
+
import { DateTime } from 'luxon';
|
|
4
4
|
import { ServiceConfig } from '../model/service-config';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
import * as i1 from "../model/service-config";
|
|
@@ -12,9 +12,8 @@ class SharePointService {
|
|
|
12
12
|
return true;
|
|
13
13
|
}
|
|
14
14
|
const lifeMinutes = this.config.caching?.lifeMinutes ?? this.defaultCacheLifeMinutes;
|
|
15
|
-
const expiration =
|
|
16
|
-
|
|
17
|
-
return moment().isAfter(expiration);
|
|
15
|
+
const expiration = cache.lastUpdate.plus({ minutes: lifeMinutes });
|
|
16
|
+
return DateTime.now() > expiration;
|
|
18
17
|
}
|
|
19
18
|
//#endregion
|
|
20
19
|
//#region Initialization
|
|
@@ -67,7 +66,7 @@ class SharePointService {
|
|
|
67
66
|
observable$.subscribe(data => {
|
|
68
67
|
this.cache.photos = {
|
|
69
68
|
data,
|
|
70
|
-
lastUpdate:
|
|
69
|
+
lastUpdate: DateTime.now()
|
|
71
70
|
};
|
|
72
71
|
if (this.config.logging?.dataCached) {
|
|
73
72
|
const lifeMinutes = this.config.caching?.lifeMinutes ?? this.defaultCacheLifeMinutes;
|
|
@@ -105,7 +104,7 @@ class SharePointService {
|
|
|
105
104
|
observable$.subscribe(data => {
|
|
106
105
|
this.cache.users = {
|
|
107
106
|
data: data,
|
|
108
|
-
lastUpdate:
|
|
107
|
+
lastUpdate: DateTime.now()
|
|
109
108
|
};
|
|
110
109
|
if (this.config.logging?.dataCached) {
|
|
111
110
|
const lifeMinutes = this.config.caching?.lifeMinutes ?? this.defaultCacheLifeMinutes;
|
|
@@ -134,11 +133,11 @@ class SharePointService {
|
|
|
134
133
|
console.log('Cache cleared');
|
|
135
134
|
}
|
|
136
135
|
}
|
|
137
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.
|
|
138
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.
|
|
136
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: SharePointService, deps: [{ token: i1.ServiceConfig, optional: true }, { token: i2.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
137
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: SharePointService, providedIn: 'root' }); }
|
|
139
138
|
}
|
|
140
139
|
export { SharePointService };
|
|
141
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.
|
|
140
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: SharePointService, decorators: [{
|
|
142
141
|
type: Injectable,
|
|
143
142
|
args: [{
|
|
144
143
|
providedIn: 'root'
|
|
@@ -146,4 +145,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImpor
|
|
|
146
145
|
}], ctorParameters: function () { return [{ type: i1.ServiceConfig, decorators: [{
|
|
147
146
|
type: Optional
|
|
148
147
|
}] }, { type: i2.HttpClient }]; } });
|
|
149
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVwb2ludC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xlYXZlbGFuZHByaWNlL25neC1saWIvc2hhcmVwb2ludC9zcmMvc2VydmljZXMvc2hhcmVwb2ludC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXJELE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBTTVCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7OztBQUl4RCxNQUdhLGlCQUFpQjtJQVE1QixtQkFBbUI7SUFDWCxZQUFZLENBQUksS0FBcUI7UUFDM0MsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNWLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFFRCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxXQUFXLElBQUksSUFBSSxDQUFDLHVCQUF1QixDQUFDO1FBQ3JGLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDO2FBQ3hDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFFL0IsT0FBTyxNQUFNLEVBQUUsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUNELFlBQVk7SUFFWix3QkFBd0I7SUFDdEIsWUFBZ0MsTUFBcUIsRUFDbkMsSUFBZ0I7UUFERixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQ25DLFNBQUksR0FBSixJQUFJLENBQVk7UUFsQjVCLDRCQUF1QixHQUFHLEdBQUcsQ0FBQztRQW9CeEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksYUFBYSxFQUFFLENBQUM7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QUMsQ0FBQztxQkFDeEQ7Z0JBQ0gsQ0FBQyxDQUFDLENBQUM7YUFDSjtpQkFBTTtnQkFDTCxzQ0FBc0M7Z0JBQ3RDLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUU7b0JBQzNDLE9BQU8sQ0FBQyxHQUFHLENBQUMsd0JBQXdCLENBQUMsQ0FBQztpQkFDdkM7Z0JBRUQsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQU0sQ0FBQyxLQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDcEM7U0FDRjtRQUVELDREQUE0RDtRQUM1RCxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFO1lBQzFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsdUJBQXVCLENBQUMsQ0FBQztTQUN0QztRQUVELE9BQU8sV0FBVyxDQUFDO1FBQ25CLFlBQVk7SUFDZCxDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUksQ0FBQyxLQUFLLEdBQUcsU0FBUyxDQUFDO1FBRXZCLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsWUFBWSxFQUFFO1lBQ3JDLE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUM7U0FDOUI7SUFDSCxDQUFDOzhHQTlKVSxpQkFBaUI7a0hBQWpCLGlCQUFpQixjQUZoQixNQUFNOztTQUVQLGlCQUFpQjsyRkFBakIsaUJBQWlCO2tCQUg3QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBd0JnQixRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnO1xyXG5cclxuaW1wb3J0IHsgQ2FjaGVPYmplY3QgfSBmcm9tICcuLi9tb2RlbC9jYWNoZS1vYmplY3QnO1xyXG5pbXBvcnQgeyBMaXN0SXRlbSB9IGZyb20gJy4uL21vZGVsL2xpc3QtaXRlbSc7XHJcbmltcG9ydCB7IExpc3RJdGVtc1JlcXVlc3QgfSBmcm9tICcuLi9tb2RlbC9saXN0LWl0ZW1zLXJlcXVlc3QnO1xyXG5pbXBvcnQgeyBQaG90b0l0ZW0gfSBmcm9tICcuLi9tb2RlbC9waG90by1pdGVtJztcclxuaW1wb3J0IHsgU2VydmljZUNvbmZpZyB9IGZyb20gJy4uL21vZGVsL3NlcnZpY2UtY29uZmlnJztcclxuaW1wb3J0IHsgVXNlclJlcXVlc3QgfSBmcm9tICcuLi9tb2RlbC91c2VyLXJlcXVlc3QnO1xyXG5pbXBvcnQgeyBVc2VyIH0gZnJvbSAnLi4vbW9kZWwvdXNlcic7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTaGFyZVBvaW50U2VydmljZSB7XHJcbiAgcHJpdmF0ZSBjYWNoZToge1xyXG4gICAgdXNlcnM6IENhY2hlT2JqZWN0PFVzZXI+IHwgdW5kZWZpbmVkLFxyXG4gICAgcGhvdG9zOiBDYWNoZU9iamVjdDxQaG90b0l0ZW0+IHwgdW5kZWZpbmVkXHJcbiAgfSB8IHVuZGVmaW5lZDtcclxuXHJcbiAgcHJpdmF0ZSBkZWZhdWx0Q2FjaGVMaWZlTWludXRlcyA9IDcyMDtcclxuXHJcbiAgLy8jcmVnaW9uIFV0aWxpdGllc1xyXG4gIHByaXZhdGUgY2FjaGVFeHBpcmVkPFQ+KGNhY2hlOiBDYWNoZU9iamVjdDxUPik6IGJvb2xlYW4ge1xyXG4gICAgaWYgKCFjYWNoZSkge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBsaWZlTWludXRlcyA9IHRoaXMuY29uZmlnLmNhY2hpbmc/LmxpZmVNaW51dGVzID8/IHRoaXMuZGVmYXVsdENhY2hlTGlmZU1pbnV0ZXM7XHJcbiAgICBjb25zdCBleHBpcmF0aW9uID0gbW9tZW50KGNhY2hlLmxhc3RVcGRhdGUpXHJcbiAgICAgIC5hZGQobGlmZU1pbnV0ZXMsICdtaW51dGVzJyk7XHJcblxyXG4gICAgcmV0dXJuIG1vbWVudCgpLmlzQWZ0ZXIoZXhwaXJhdGlvbik7XHJcbiAgfVxyXG4gIC8vI2VuZHJlZ2lvblxyXG5cclxuICAvLyNyZWdpb24gSW5pdGlhbGl6YXRpb25cclxuICAgIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIHByaXZhdGUgY29uZmlnOiBTZXJ2aWNlQ29uZmlnLFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCkge1xyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnID0gdGhpcy5jb25maWcgPz8gbmV3IFNlcnZpY2VDb25maWcoKTtcclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgdGhpcy5jb25maWd1cmVDYWNoaW5nKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZ3VyZUxvZ2dpbmcoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY29uZmlndXJlQ2FjaGluZygpOiB2b2lkIHtcclxuICAgIC8vIElmIGNhY2hpbmcgY29uZmlnIGlzIG1pc3NpbmcgZW50aXJlbHksIGdpdmUgaXQgYSBkZWZhdWx0XHJcbiAgICB0aGlzLmNvbmZpZy5jYWNoaW5nID0gdGhpcy5jb25maWcuY2FjaGluZyA/PyB7XHJcbiAgICAgIGVuYWJsZWQ6IGZhbHNlLFxyXG4gICAgICBsaWZlTWludXRlczogdGhpcy5kZWZhdWx0Q2FjaGVMaWZlTWludXRlc1xyXG4gICAgfTtcclxuXHJcbiAgICB0aGlzLmNhY2hlID0ge1xyXG4gICAgICBwaG90b3M6IHVuZGVmaW5lZCxcclxuICAgICAgdXNlcnM6IHVuZGVmaW5lZFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY29uZmlndXJlTG9nZ2luZygpOiB2b2lkIHtcclxuICAgIC8vIElmIGxvZ2dpbmcgY29uZmlnIGlzIG1pc3NpbmcgZW50aXJlbHksIGdpdmUgaXQgYSBkZWZhdWx0XHJcbiAgICB0aGlzLmNvbmZpZy5sb2dnaW5nID0gdGhpcy5jb25maWcubG9nZ2luZyA/PyB7XHJcbiAgICAgIGRhdGFDYWNoZWQ6IGZhbHNlLFxyXG4gICAgICBjYWNoZWREYXRhUmV0dXJuZWQ6IGZhbHNlLFxyXG4gICAgICBmcmVzaERhdGFSZXR1cm5lZDogZmFsc2UsXHJcbiAgICAgIGNhY2hlQ2xlYXJlZDogZmFsc2VcclxuICAgIH1cclxuICB9XHJcbiAgLy8jZW5kcmVnaW9uXHJcblxyXG4gIGdldExpc3RJdGVtcyhyZXF1ZXN0OiBMaXN0SXRlbXNSZXF1ZXN0KTogT2JzZXJ2YWJsZTxMaXN0SXRlbVtdPiB7XHJcbiAgICBjb25zdCBhcGlVcmwgPSB0aGlzLmNvbmZpZy5hcGlVcmw7XHJcbiAgICBjb25zdCBlbmRwb2ludCA9IHRoaXMuY29uZmlnLmxpc3RJdGVtc0VuZHBvaW50O1xyXG5cclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxMaXN0SXRlbVtdPihgJHthcGlVcmx9JHtlbmRwb2ludH1gLCByZXF1ZXN0KTtcclxuICB9XHJcblxyXG4gIGdldFBob3RvcygpOiBPYnNlcnZhYmxlPFBob3RvSXRlbVtdPiB7XHJcbiAgICBjb25zdCByZXF1ZXN0OiBMaXN0SXRlbXNSZXF1ZXN0ID0ge1xyXG4gICAgICB1c2VybmFtZTogdGhpcy5jb25maWcudXNlcm5hbWUsXHJcbiAgICAgIHBhc3N3b3JkOiB0aGlzLmNvbmZpZy5wYXNzd29yZCxcclxuICAgICAgc2l0ZTogdGhpcy5jb25maWcucGhvdG9zLnNpdGUsXHJcbiAgICAgIGxpc3Q6IHRoaXMuY29uZmlnLnBob3Rvcy5saXN0LFxyXG4gICAgICBhZGRpdGlvbmFsUHJvcGVydGllc1RvUmV0cmlldmU6IHRoaXMuY29uZmlnLnBob3Rvcy5hZGRpdGlvbmFsUHJvcGVydGllc1RvUmV0cmlldmVcclxuICAgIH07XHJcblxyXG4gICAgY29uc3Qgb2JzZXJ2YWJsZSQgPSB0aGlzLmdldExpc3RJdGVtcyhyZXF1ZXN0KSBhcyBPYnNlcnZhYmxlPFBob3RvSXRlbVtdPjtcclxuXHJcbiAgICBpZiAodGhpcy5jb25maWcuY2FjaGluZz8uZW5hYmxlZCkge1xyXG4gICAgICBpZiAodGhpcy5jYWNoZUV4cGlyZWQ8UGhvdG9JdGVtPih0aGlzLmNhY2hlPy5waG90b3MhKSkge1xyXG4gICAgICAgIC8vIEdldCB0aGUgZGF0YSBhbmQgY2FjaGUgaXRcclxuICAgICAgICBvYnNlcnZhYmxlJC5zdWJzY3JpYmUoZGF0YSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmNhY2hlIS5waG90b3MgPSB7XHJcbiAgICAgICAgICAgIGRhdGEsXHJcbiAgICAgICAgICAgIGxhc3RVcGRhdGU6IG1vbWVudCgpXHJcbiAgICAgICAgICB9O1xyXG5cclxuICAgICAgICAgIGlmICh0aGlzLmNvbmZpZy5sb2dnaW5nPy5kYXRhQ2FjaGVkKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGxpZmVNaW51dGVzID0gdGhpcy5jb25maWcuY2FjaGluZz8ubGlmZU1pbnV0ZXMgPz8gdGhpcy5kZWZhdWx0Q2FjaGVMaWZlTWludXRlcztcclxuICAgICAgICAgICAgY29uc29sZS5sb2coYFBob3RvcyBjYWNoZWQgZm9yICR7bGlmZU1pbnV0ZXN9IG1pbnV0ZXNgKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICAvLyBDYWNoZSBleGlzdHMgYW5kIGhhc24ndCBleHBpcmVkIHlldFxyXG4gICAgICAgIGlmICh0aGlzLmNvbmZpZy5sb2dnaW5nPy5jYWNoZWREYXRhUmV0dXJuZWQpIHtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKCdSZXR1cm5pbmcgY2FjaGVkIHBob3RvcycpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIG9mKHRoaXMuY2FjaGUhLnBob3RvcyEuZGF0YSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyBDYWNoZSBpcyBlaXRoZXIgZGlzYWJsZWQgb3IgZXhwaXJlZCwgcmV0dXJuIGRhdGEgZnJvbSBBUElcclxuICAgIGlmICh0aGlzLmNvbmZpZy5sb2dnaW5nPy5mcmVzaERhdGFSZXR1cm5lZCkge1xyXG4gICAgICBjb25zb2xlLmxvZygnUmV0dXJuaW5nIGZyZXNoIHBob3RvcycpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBvYnNlcnZhYmxlJDtcclxuICB9XHJcblxyXG4gIGdldFVzZXJzKHJlcXVlc3Q6IFVzZXJSZXF1ZXN0LCBpZD86IG51bWJlcik6IE9ic2VydmFibGU8VXNlciB8IFVzZXJbXT4ge1xyXG4gICAgY29uc3QgYXBpVXJsID0gdGhpcy5jb25maWcuYXBpVXJsO1xyXG4gICAgY29uc3QgZW5kcG9pbnQgPSB0aGlzLmNvbmZpZy51c2Vyc0VuZHBvaW50O1xyXG4gICAgXHJcbiAgICBjb25zdCBvYnNlcnZhYmxlJCA9IHRoaXMuaHR0cC5wb3N0PFVzZXIgfCBVc2VyW10+KGAke2FwaVVybH0ke2VuZHBvaW50fS8ke2lkID8/ICcnfWAsIHJlcXVlc3QpO1xyXG5cclxuICAgIC8vI3JlZ2lvbiBTaW5nbGUgdXNlclxyXG4gICAgaWYgKGlkKSB7XHJcbiAgICAgIHJldHVybiBvYnNlcnZhYmxlJDtcclxuICAgIH1cclxuICAgIC8vI2VuZHJlZ2lvblxyXG5cclxuICAgIC8vI3JlZ2lvbiBNdWx0aXBsZSB1c2Vyc1xyXG4gICAgaWYgKHRoaXMuY29uZmlnLmNhY2hpbmc/LmVuYWJsZWQpIHtcclxuICAgICAgaWYgKHRoaXMuY2FjaGVFeHBpcmVkPFVzZXI+KHRoaXMuY2FjaGUhLnVzZXJzISkpIHtcclxuICAgICAgICAvLyBHZXQgdGhlIGRhdGEgYW5kIGNhY2hlIGl0XHJcbiAgICAgICAgb2JzZXJ2YWJsZSQuc3Vic2NyaWJlKGRhdGEgPT4ge1xyXG4gICAgICAgICAgdGhpcy5jYWNoZSEudXNlcnMgPSB7XHJcbiAgICAgICAgICAgIGRhdGE6IGRhdGEgYXMgVXNlcltdLFxyXG4gICAgICAgICAgICBsYXN0VXBkYXRlOiBtb21lbnQoKVxyXG4gICAgICAgICAgfTtcclxuXHJcbiAgICAgICAgICBpZiAodGhpcy5jb25maWcubG9nZ2luZz8uZGF0YUNhY2hlZCkge1xyXG4gICAgICAgICAgICBjb25zdCBsaWZlTWludXRlcyA9IHRoaXMuY29uZmlnLmNhY2hpbmc/LmxpZmVNaW51dGVzID8/IHRoaXMuZGVmYXVsdENhY2hlTGlmZU1pbnV0ZXM7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGBVc2VycyBjYWNoZWQgZm9yICR7bGlmZU1pbnV0ZXN9IG1pbnV0ZXNgKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICAvLyBDYWNoZSBleGlzdHMgYW5kIGhhc24ndCBleHBpcmVkIHlldFxyXG4gICAgICAgIGlmICh0aGlzLmNvbmZpZy5sb2dnaW5nPy5jYWNoZWREYXRhUmV0dXJuZWQpIHtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKCdSZXR1cm5pbmcgY2FjaGVkIHVzZXJzJyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gb2YodGhpcy5jYWNoZSEudXNlcnMhLmRhdGEpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gQ2FjaGUgaXMgZWl0aGVyIGRpc2FibGVkIG9yIGV4cGlyZWQsIHJldHVybiBkYXRhIGZyb20gQVBJXHJcbiAgICBpZiAodGhpcy5jb25maWcubG9nZ2luZz8uZnJlc2hEYXRhUmV0dXJuZWQpIHtcclxuICAgICAgY29uc29sZS5sb2coJ1JldHVybmluZyBmcmVzaCB1c2VycycpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBvYnNlcnZhYmxlJDtcclxuICAgIC8vI2VuZHJlZ2lvblxyXG4gIH1cclxuXHJcbiAgY2xlYXJDYWNoZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuY2FjaGUgPSB1bmRlZmluZWQ7XHJcblxyXG4gICAgaWYgKHRoaXMuY29uZmlnLmxvZ2dpbmc/LmNhY2hlQ2xlYXJlZCkge1xyXG4gICAgICBjb25zb2xlLmxvZygnQ2FjaGUgY2xlYXJlZCcpO1xyXG4gICAgfVxyXG4gIH1cclxufSJdfQ==
|
|
148
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVwb2ludC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xlYXZlbGFuZHByaWNlL25neC1saWIvc2hhcmVwb2ludC9zcmMvc2VydmljZXMvc2hhcmVwb2ludC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXJELE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQU1qQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7Ozs7QUFJeEQsTUFHYSxpQkFBaUI7SUFRNUIsbUJBQW1CO0lBQ1gsWUFBWSxDQUFJLEtBQXFCO1FBQzNDLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDVixPQUFPLElBQUksQ0FBQztTQUNiO1FBRUQsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsV0FBVyxJQUFJLElBQUksQ0FBQyx1QkFBdUIsQ0FBQztRQUNyRixNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUMsQ0FBQyxDQUFDO1FBRWxFLE9BQU8sUUFBUSxDQUFDLEdBQUcsRUFBRSxHQUFHLFVBQVUsQ0FBQztJQUNyQyxDQUFDO0lBQ0QsWUFBWTtJQUVaLHdCQUF3QjtJQUN0QixZQUFnQyxNQUFxQixFQUNuQyxJQUFnQjtRQURGLFdBQU0sR0FBTixNQUFNLENBQWU7UUFDbkMsU0FBSSxHQUFKLElBQUksQ0FBWTtRQWpCNUIsNEJBQXVCLEdBQUcsR0FBRyxDQUFDO1FBbUJ4QixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxhQUFhLEVBQUUsQ0FBQztR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b0JBQW9CLFdBQVcsVUFBVSxDQUFDLENBQUM7cUJBQ3hEO2dCQUNILENBQUMsQ0FBQyxDQUFDO2FBQ0o7aUJBQU07Z0JBQ0wsc0NBQXNDO2dCQUN0QyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLGtCQUFrQixFQUFFO29CQUMzQyxPQUFPLENBQUMsR0FBRyxDQUFDLHdCQUF3QixDQUFDLENBQUM7aUJBQ3ZDO2dCQUVELE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFNLENBQUMsS0FBTSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ3BDO1NBQ0Y7UUFFRCw0REFBNEQ7UUFDNUQsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRTtZQUMxQyxPQUFPLENBQUMsR0FBRyxDQUFDLHVCQUF1QixDQUFDLENBQUM7U0FDdEM7UUFFRCxPQUFPLFdBQVcsQ0FBQztRQUNuQixZQUFZO0lBQ2QsQ0FBQztJQUVELFVBQVU7UUFDUixJQUFJLENBQUMsS0FBSyxHQUFHLFNBQVMsQ0FBQztRQUV2QixJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLFlBQVksRUFBRTtZQUNyQyxPQUFPLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1NBQzlCO0lBQ0gsQ0FBQzs4R0E3SlUsaUJBQWlCO2tIQUFqQixpQkFBaUIsY0FGaEIsTUFBTTs7U0FFUCxpQkFBaUI7MkZBQWpCLGlCQUFpQjtrQkFIN0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQXVCZ0IsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IERhdGVUaW1lIH0gZnJvbSAnbHV4b24nO1xyXG5cclxuaW1wb3J0IHsgQ2FjaGVPYmplY3QgfSBmcm9tICcuLi9tb2RlbC9jYWNoZS1vYmplY3QnO1xyXG5pbXBvcnQgeyBMaXN0SXRlbSB9IGZyb20gJy4uL21vZGVsL2xpc3QtaXRlbSc7XHJcbmltcG9ydCB7IExpc3RJdGVtc1JlcXVlc3QgfSBmcm9tICcuLi9tb2RlbC9saXN0LWl0ZW1zLXJlcXVlc3QnO1xyXG5pbXBvcnQgeyBQaG90b0l0ZW0gfSBmcm9tICcuLi9tb2RlbC9waG90by1pdGVtJztcclxuaW1wb3J0IHsgU2VydmljZUNvbmZpZyB9IGZyb20gJy4uL21vZGVsL3NlcnZpY2UtY29uZmlnJztcclxuaW1wb3J0IHsgVXNlclJlcXVlc3QgfSBmcm9tICcuLi9tb2RlbC91c2VyLXJlcXVlc3QnO1xyXG5pbXBvcnQgeyBVc2VyIH0gZnJvbSAnLi4vbW9kZWwvdXNlcic7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTaGFyZVBvaW50U2VydmljZSB7XHJcbiAgcHJpdmF0ZSBjYWNoZToge1xyXG4gICAgdXNlcnM6IENhY2hlT2JqZWN0PFVzZXI+IHwgdW5kZWZpbmVkLFxyXG4gICAgcGhvdG9zOiBDYWNoZU9iamVjdDxQaG90b0l0ZW0+IHwgdW5kZWZpbmVkXHJcbiAgfSB8IHVuZGVmaW5lZDtcclxuXHJcbiAgcHJpdmF0ZSBkZWZhdWx0Q2FjaGVMaWZlTWludXRlcyA9IDcyMDtcclxuXHJcbiAgLy8jcmVnaW9uIFV0aWxpdGllc1xyXG4gIHByaXZhdGUgY2FjaGVFeHBpcmVkPFQ+KGNhY2hlOiBDYWNoZU9iamVjdDxUPik6IGJvb2xlYW4ge1xyXG4gICAgaWYgKCFjYWNoZSkge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBsaWZlTWludXRlcyA9IHRoaXMuY29uZmlnLmNhY2hpbmc/LmxpZmVNaW51dGVzID8/IHRoaXMuZGVmYXVsdENhY2hlTGlmZU1pbnV0ZXM7XHJcbiAgICBjb25zdCBleHBpcmF0aW9uID0gY2FjaGUubGFzdFVwZGF0ZS5wbHVzKHsgbWludXRlczogbGlmZU1pbnV0ZXN9KTtcclxuXHJcbiAgICByZXR1cm4gRGF0ZVRpbWUubm93KCkgPiBleHBpcmF0aW9uO1xyXG4gIH1cclxuICAvLyNlbmRyZWdpb25cclxuXHJcbiAgLy8jcmVnaW9uIEluaXRpYWxpemF0aW9uXHJcbiAgICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBwcml2YXRlIGNvbmZpZzogU2VydmljZUNvbmZpZyxcclxuICAgICAgICAgICAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQpIHtcclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZyA9IHRoaXMuY29uZmlnID8/IG5ldyBTZXJ2aWNlQ29uZmlnKCk7XHJcbiAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIHRoaXMuY29uZmlndXJlQ2FjaGluZygpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jb25maWd1cmVMb2dnaW5nKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNvbmZpZ3VyZUNhY2hpbmcoKTogdm9pZCB7XHJcbiAgICAvLyBJZiBjYWNoaW5nIGNvbmZpZyBpcyBtaXNzaW5nIGVudGlyZWx5LCBnaXZlIGl0IGEgZGVmYXVsdFxyXG4gICAgdGhpcy5jb25maWcuY2FjaGluZyA9IHRoaXMuY29uZmlnLmNhY2hpbmcgPz8ge1xyXG4gICAgICBlbmFibGVkOiBmYWxzZSxcclxuICAgICAgbGlmZU1pbnV0ZXM6IHRoaXMuZGVmYXVsdENhY2hlTGlmZU1pbnV0ZXNcclxuICAgIH07XHJcblxyXG4gICAgdGhpcy5jYWNoZSA9IHtcclxuICAgICAgcGhvdG9zOiB1bmRlZmluZWQsXHJcbiAgICAgIHVzZXJzOiB1bmRlZmluZWRcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNvbmZpZ3VyZUxvZ2dpbmcoKTogdm9pZCB7XHJcbiAgICAvLyBJZiBsb2dnaW5nIGNvbmZpZyBpcyBtaXNzaW5nIGVudGlyZWx5LCBnaXZlIGl0IGEgZGVmYXVsdFxyXG4gICAgdGhpcy5jb25maWcubG9nZ2luZyA9IHRoaXMuY29uZmlnLmxvZ2dpbmcgPz8ge1xyXG4gICAgICBkYXRhQ2FjaGVkOiBmYWxzZSxcclxuICAgICAgY2FjaGVkRGF0YVJldHVybmVkOiBmYWxzZSxcclxuICAgICAgZnJlc2hEYXRhUmV0dXJuZWQ6IGZhbHNlLFxyXG4gICAgICBjYWNoZUNsZWFyZWQ6IGZhbHNlXHJcbiAgICB9XHJcbiAgfVxyXG4gIC8vI2VuZHJlZ2lvblxyXG5cclxuICBnZXRMaXN0SXRlbXMocmVxdWVzdDogTGlzdEl0ZW1zUmVxdWVzdCk6IE9ic2VydmFibGU8TGlzdEl0ZW1bXT4ge1xyXG4gICAgY29uc3QgYXBpVXJsID0gdGhpcy5jb25maWcuYXBpVXJsO1xyXG4gICAgY29uc3QgZW5kcG9pbnQgPSB0aGlzLmNvbmZpZy5saXN0SXRlbXNFbmRwb2ludDtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8TGlzdEl0ZW1bXT4oYCR7YXBpVXJsfSR7ZW5kcG9pbnR9YCwgcmVxdWVzdCk7XHJcbiAgfVxyXG5cclxuICBnZXRQaG90b3MoKTogT2JzZXJ2YWJsZTxQaG90b0l0ZW1bXT4ge1xyXG4gICAgY29uc3QgcmVxdWVzdDogTGlzdEl0ZW1zUmVxdWVzdCA9IHtcclxuICAgICAgdXNlcm5hbWU6IHRoaXMuY29uZmlnLnVzZXJuYW1lLFxyXG4gICAgICBwYXNzd29yZDogdGhpcy5jb25maWcucGFzc3dvcmQsXHJcbiAgICAgIHNpdGU6IHRoaXMuY29uZmlnLnBob3Rvcy5zaXRlLFxyXG4gICAgICBsaXN0OiB0aGlzLmNvbmZpZy5waG90b3MubGlzdCxcclxuICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXNUb1JldHJpZXZlOiB0aGlzLmNvbmZpZy5waG90b3MuYWRkaXRpb25hbFByb3BlcnRpZXNUb1JldHJpZXZlXHJcbiAgICB9O1xyXG5cclxuICAgIGNvbnN0IG9ic2VydmFibGUkID0gdGhpcy5nZXRMaXN0SXRlbXMocmVxdWVzdCkgYXMgT2JzZXJ2YWJsZTxQaG90b0l0ZW1bXT47XHJcblxyXG4gICAgaWYgKHRoaXMuY29uZmlnLmNhY2hpbmc/LmVuYWJsZWQpIHtcclxuICAgICAgaWYgKHRoaXMuY2FjaGVFeHBpcmVkPFBob3RvSXRlbT4odGhpcy5jYWNoZT8ucGhvdG9zISkpIHtcclxuICAgICAgICAvLyBHZXQgdGhlIGRhdGEgYW5kIGNhY2hlIGl0XHJcbiAgICAgICAgb2JzZXJ2YWJsZSQuc3Vic2NyaWJlKGRhdGEgPT4ge1xyXG4gICAgICAgICAgdGhpcy5jYWNoZSEucGhvdG9zID0ge1xyXG4gICAgICAgICAgICBkYXRhLFxyXG4gICAgICAgICAgICBsYXN0VXBkYXRlOiBEYXRlVGltZS5ub3coKVxyXG4gICAgICAgICAgfTtcclxuXHJcbiAgICAgICAgICBpZiAodGhpcy5jb25maWcubG9nZ2luZz8uZGF0YUNhY2hlZCkge1xyXG4gICAgICAgICAgICBjb25zdCBsaWZlTWludXRlcyA9IHRoaXMuY29uZmlnLmNhY2hpbmc/LmxpZmVNaW51dGVzID8/IHRoaXMuZGVmYXVsdENhY2hlTGlmZU1pbnV0ZXM7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGBQaG90b3MgY2FjaGVkIGZvciAke2xpZmVNaW51dGVzfSBtaW51dGVzYCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgLy8gQ2FjaGUgZXhpc3RzIGFuZCBoYXNuJ3QgZXhwaXJlZCB5ZXRcclxuICAgICAgICBpZiAodGhpcy5jb25maWcubG9nZ2luZz8uY2FjaGVkRGF0YVJldHVybmVkKSB7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZygnUmV0dXJuaW5nIGNhY2hlZCBwaG90b3MnKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBvZih0aGlzLmNhY2hlIS5waG90b3MhLmRhdGEpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gQ2FjaGUgaXMgZWl0aGVyIGRpc2FibGVkIG9yIGV4cGlyZWQsIHJldHVybiBkYXRhIGZyb20gQVBJXHJcbiAgICBpZiAodGhpcy5jb25maWcubG9nZ2luZz8uZnJlc2hEYXRhUmV0dXJuZWQpIHtcclxuICAgICAgY29uc29sZS5sb2coJ1JldHVybmluZyBmcmVzaCBwaG90b3MnKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gb2JzZXJ2YWJsZSQ7XHJcbiAgfVxyXG5cclxuICBnZXRVc2VycyhyZXF1ZXN0OiBVc2VyUmVxdWVzdCwgaWQ/OiBudW1iZXIpOiBPYnNlcnZhYmxlPFVzZXIgfCBVc2VyW10+IHtcclxuICAgIGNvbnN0IGFwaVVybCA9IHRoaXMuY29uZmlnLmFwaVVybDtcclxuICAgIGNvbnN0IGVuZHBvaW50ID0gdGhpcy5jb25maWcudXNlcnNFbmRwb2ludDtcclxuICAgIFxyXG4gICAgY29uc3Qgb2JzZXJ2YWJsZSQgPSB0aGlzLmh0dHAucG9zdDxVc2VyIHwgVXNlcltdPihgJHthcGlVcmx9JHtlbmRwb2ludH0vJHtpZCA/PyAnJ31gLCByZXF1ZXN0KTtcclxuXHJcbiAgICAvLyNyZWdpb24gU2luZ2xlIHVzZXJcclxuICAgIGlmIChpZCkge1xyXG4gICAgICByZXR1cm4gb2JzZXJ2YWJsZSQ7XHJcbiAgICB9XHJcbiAgICAvLyNlbmRyZWdpb25cclxuXHJcbiAgICAvLyNyZWdpb24gTXVsdGlwbGUgdXNlcnNcclxuICAgIGlmICh0aGlzLmNvbmZpZy5jYWNoaW5nPy5lbmFibGVkKSB7XHJcbiAgICAgIGlmICh0aGlzLmNhY2hlRXhwaXJlZDxVc2VyPih0aGlzLmNhY2hlIS51c2VycyEpKSB7XHJcbiAgICAgICAgLy8gR2V0IHRoZSBkYXRhIGFuZCBjYWNoZSBpdFxyXG4gICAgICAgIG9ic2VydmFibGUkLnN1YnNjcmliZShkYXRhID0+IHtcclxuICAgICAgICAgIHRoaXMuY2FjaGUhLnVzZXJzID0ge1xyXG4gICAgICAgICAgICBkYXRhOiBkYXRhIGFzIFVzZXJbXSxcclxuICAgICAgICAgICAgbGFzdFVwZGF0ZTogRGF0ZVRpbWUubm93KClcclxuICAgICAgICAgIH07XHJcblxyXG4gICAgICAgICAgaWYgKHRoaXMuY29uZmlnLmxvZ2dpbmc/LmRhdGFDYWNoZWQpIHtcclxuICAgICAgICAgICAgY29uc3QgbGlmZU1pbnV0ZXMgPSB0aGlzLmNvbmZpZy5jYWNoaW5nPy5saWZlTWludXRlcyA/PyB0aGlzLmRlZmF1bHRDYWNoZUxpZmVNaW51dGVzO1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhgVXNlcnMgY2FjaGVkIGZvciAke2xpZmVNaW51dGVzfSBtaW51dGVzYCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgLy8gQ2FjaGUgZXhpc3RzIGFuZCBoYXNuJ3QgZXhwaXJlZCB5ZXRcclxuICAgICAgICBpZiAodGhpcy5jb25maWcubG9nZ2luZz8uY2FjaGVkRGF0YVJldHVybmVkKSB7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZygnUmV0dXJuaW5nIGNhY2hlZCB1c2VycycpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIG9mKHRoaXMuY2FjaGUhLnVzZXJzIS5kYXRhKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIENhY2hlIGlzIGVpdGhlciBkaXNhYmxlZCBvciBleHBpcmVkLCByZXR1cm4gZGF0YSBmcm9tIEFQSVxyXG4gICAgaWYgKHRoaXMuY29uZmlnLmxvZ2dpbmc/LmZyZXNoRGF0YVJldHVybmVkKSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKCdSZXR1cm5pbmcgZnJlc2ggdXNlcnMnKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gb2JzZXJ2YWJsZSQ7XHJcbiAgICAvLyNlbmRyZWdpb25cclxuICB9XHJcblxyXG4gIGNsZWFyQ2FjaGUoKTogdm9pZCB7XHJcbiAgICB0aGlzLmNhY2hlID0gdW5kZWZpbmVkO1xyXG5cclxuICAgIGlmICh0aGlzLmNvbmZpZy5sb2dnaW5nPy5jYWNoZUNsZWFyZWQpIHtcclxuICAgICAgY29uc29sZS5sb2coJ0NhY2hlIGNsZWFyZWQnKTtcclxuICAgIH1cclxuICB9XHJcbn0iXX0=
|
|
@@ -20,14 +20,14 @@ class SharePointModule {
|
|
|
20
20
|
throw new Error('SharePointModule is already loaded. Import it in the AppModule only');
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.
|
|
24
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.
|
|
23
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: SharePointModule, deps: [{ token: SharePointModule, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
24
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.2", ngImport: i0, type: SharePointModule, declarations: [EmployeePhotoUrlPipe,
|
|
25
25
|
EmployeePhotoComponent], imports: [CommonModule], exports: [EmployeePhotoUrlPipe,
|
|
26
26
|
EmployeePhotoComponent] }); }
|
|
27
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.
|
|
27
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: SharePointModule, imports: [CommonModule] }); }
|
|
28
28
|
}
|
|
29
29
|
export { SharePointModule };
|
|
30
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.
|
|
30
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: SharePointModule, decorators: [{
|
|
31
31
|
type: NgModule,
|
|
32
32
|
args: [{
|
|
33
33
|
declarations: [
|
|
@@ -19,11 +19,11 @@ class UploadComponent {
|
|
|
19
19
|
this.dialog.open(UploadDialogComponent, { width: '50%' })
|
|
20
20
|
.afterClosed().subscribe(() => this.dialogClosed.emit());
|
|
21
21
|
}
|
|
22
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.
|
|
23
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.
|
|
22
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: UploadComponent, deps: [{ token: i1.MatDialog }, { token: i2.UploadService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
23
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.2", type: UploadComponent, selector: "cp-upload", outputs: { dialogClosed: "dialogClosed" }, ngImport: i0, template: '<button mat-raised-button (click)="openUploadDialog()">{{ uploadButtonText }}</button>', isInline: true, dependencies: [{ kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }] }); }
|
|
24
24
|
}
|
|
25
25
|
export { UploadComponent };
|
|
26
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.
|
|
26
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: UploadComponent, decorators: [{
|
|
27
27
|
type: Component,
|
|
28
28
|
args: [{
|
|
29
29
|
selector: 'cp-upload',
|
|
@@ -73,11 +73,11 @@ class UploadDialogComponent {
|
|
|
73
73
|
this.uploading = false;
|
|
74
74
|
});
|
|
75
75
|
}
|
|
76
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.
|
|
77
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.
|
|
76
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: UploadDialogComponent, deps: [{ token: i1.MatDialogRef }, { token: i2.UploadService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
77
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.2", type: UploadDialogComponent, selector: "ng-component", viewQueries: [{ propertyName: "file", first: true, predicate: ["file"], descendants: true, static: true }], ngImport: i0, template: "<input type=\"file\" #file style=\"display: none\" (change)=\"onFilesAdded()\" multiple />\n\n<div mat-dialog-title id=\"title\">\n <div>{{ uploadService.config.uploadDialogTitle }}</div>\n <button [disabled]=\"uploading || uploadSuccessful\" mat-raised-button color=\"primary\" class=\"add-files-btn\" (click)=\"addFiles()\">\n {{ uploadService.config.uploadDialogAddFilesButtonText }}\n </button>\n</div>\n\n<div id=\"conflict\" *ngIf=\"existingFileConflict\">\n {{ existingFileConflict }} already exists on the server and cannot be overwritten\n</div>\n\n<mat-dialog-content>\n <mat-list>\n <mat-list-item *ngFor=\"let file of files\">\n <h4 mat-line>{{file.name}}</h4>\n <mat-progress-bar *ngIf=\"progress\" mode=\"determinate\" [value]=\"progress[file.name].progress | async\"></mat-progress-bar>\n </mat-list-item>\n </mat-list>\n</mat-dialog-content>\n\n<mat-dialog-actions id=\"actions\">\n <button *ngIf=\"showCancelButton\" mat-button mat-dialog-close>{{ uploadService.config.uploadDialogCancelButtonText }}</button>\n <button *ngIf=\"files.size > 0\" mat-raised-button color=\"primary\" [disabled]=\"!canBeClosed\" (click)=\"closeDialog()\">{{ primaryButtonText }}</button>\n</mat-dialog-actions>\n", styles: ["#title{display:flex;justify-content:space-between}#actions{display:flex;justify-content:flex-end}#conflict{font-size:.8em;color:red;margin-top:.5em}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "component", type: i5.MatList, selector: "mat-list", exportAs: ["matList"] }, { kind: "component", type: i5.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "component", type: i6.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }] }); }
|
|
78
78
|
}
|
|
79
79
|
export { UploadDialogComponent };
|
|
80
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.
|
|
80
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: UploadDialogComponent, decorators: [{
|
|
81
81
|
type: Component,
|
|
82
82
|
args: [{ template: "<input type=\"file\" #file style=\"display: none\" (change)=\"onFilesAdded()\" multiple />\n\n<div mat-dialog-title id=\"title\">\n <div>{{ uploadService.config.uploadDialogTitle }}</div>\n <button [disabled]=\"uploading || uploadSuccessful\" mat-raised-button color=\"primary\" class=\"add-files-btn\" (click)=\"addFiles()\">\n {{ uploadService.config.uploadDialogAddFilesButtonText }}\n </button>\n</div>\n\n<div id=\"conflict\" *ngIf=\"existingFileConflict\">\n {{ existingFileConflict }} already exists on the server and cannot be overwritten\n</div>\n\n<mat-dialog-content>\n <mat-list>\n <mat-list-item *ngFor=\"let file of files\">\n <h4 mat-line>{{file.name}}</h4>\n <mat-progress-bar *ngIf=\"progress\" mode=\"determinate\" [value]=\"progress[file.name].progress | async\"></mat-progress-bar>\n </mat-list-item>\n </mat-list>\n</mat-dialog-content>\n\n<mat-dialog-actions id=\"actions\">\n <button *ngIf=\"showCancelButton\" mat-button mat-dialog-close>{{ uploadService.config.uploadDialogCancelButtonText }}</button>\n <button *ngIf=\"files.size > 0\" mat-raised-button color=\"primary\" [disabled]=\"!canBeClosed\" (click)=\"closeDialog()\">{{ primaryButtonText }}</button>\n</mat-dialog-actions>\n", styles: ["#title{display:flex;justify-content:space-between}#actions{display:flex;justify-content:flex-end}#conflict{font-size:.8em;color:red;margin-top:.5em}\n"] }]
|
|
83
83
|
}], ctorParameters: function () { return [{ type: i1.MatDialogRef }, { type: i2.UploadService }]; }, propDecorators: { file: [{
|
|
@@ -77,11 +77,11 @@ class UploadService {
|
|
|
77
77
|
getUploadInfo(request) {
|
|
78
78
|
return this.http.post(`${this.config.apiUrl}${this.config.databaseEndpoint}/info`, request);
|
|
79
79
|
}
|
|
80
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.
|
|
81
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.
|
|
80
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: UploadService, deps: [{ token: i1.HttpClient }, { token: i2.ServiceConfig, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
81
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: UploadService, providedIn: 'root' }); }
|
|
82
82
|
}
|
|
83
83
|
export { UploadService };
|
|
84
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.
|
|
84
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: UploadService, decorators: [{
|
|
85
85
|
type: Injectable,
|
|
86
86
|
args: [{
|
|
87
87
|
providedIn: 'root'
|
|
@@ -24,22 +24,22 @@ class UploadModule {
|
|
|
24
24
|
throw new Error('UploadModule is already loaded. Import it in the AppModule only');
|
|
25
25
|
}
|
|
26
26
|
}
|
|
27
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.
|
|
28
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.
|
|
27
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: UploadModule, deps: [{ token: UploadModule, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
28
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.2", ngImport: i0, type: UploadModule, declarations: [UploadComponent,
|
|
29
29
|
UploadDialogComponent], imports: [CommonModule,
|
|
30
30
|
MatButtonModule,
|
|
31
31
|
MatDialogModule,
|
|
32
32
|
MatListModule,
|
|
33
33
|
MatProgressBarModule], exports: [UploadComponent,
|
|
34
34
|
UploadDialogComponent] }); }
|
|
35
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.
|
|
35
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: UploadModule, imports: [CommonModule,
|
|
36
36
|
MatButtonModule,
|
|
37
37
|
MatDialogModule,
|
|
38
38
|
MatListModule,
|
|
39
39
|
MatProgressBarModule] }); }
|
|
40
40
|
}
|
|
41
41
|
export { UploadModule };
|
|
42
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.
|
|
42
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: UploadModule, decorators: [{
|
|
43
43
|
type: NgModule,
|
|
44
44
|
args: [{
|
|
45
45
|
declarations: [
|
|
@@ -8,11 +8,11 @@ class SafeResourceUrlPipe {
|
|
|
8
8
|
transform(value) {
|
|
9
9
|
return this.domSanitizer.bypassSecurityTrustResourceUrl(value);
|
|
10
10
|
}
|
|
11
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.
|
|
12
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.
|
|
11
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: SafeResourceUrlPipe, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
12
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.2.2", ngImport: i0, type: SafeResourceUrlPipe, name: "safeResourceUrl" }); }
|
|
13
13
|
}
|
|
14
14
|
export { SafeResourceUrlPipe };
|
|
15
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.
|
|
15
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: SafeResourceUrlPipe, decorators: [{
|
|
16
16
|
type: Pipe,
|
|
17
17
|
args: [{
|
|
18
18
|
name: 'safeResourceUrl'
|
|
@@ -8,11 +8,11 @@ class SafeUrlPipe {
|
|
|
8
8
|
transform(value) {
|
|
9
9
|
return this.domSanitizer.bypassSecurityTrustUrl(value);
|
|
10
10
|
}
|
|
11
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.
|
|
12
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.
|
|
11
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: SafeUrlPipe, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
12
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.2.2", ngImport: i0, type: SafeUrlPipe, name: "safeUrl" }); }
|
|
13
13
|
}
|
|
14
14
|
export { SafeUrlPipe };
|
|
15
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.
|
|
15
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: SafeUrlPipe, decorators: [{
|
|
16
16
|
type: Pipe,
|
|
17
17
|
args: [{
|
|
18
18
|
name: 'safeUrl'
|
|
@@ -92,11 +92,11 @@ class UriSchemePipe {
|
|
|
92
92
|
return `of${openMode}`; // default: open file as view/edit
|
|
93
93
|
}
|
|
94
94
|
}
|
|
95
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.
|
|
96
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.
|
|
95
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: UriSchemePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
96
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.2.2", ngImport: i0, type: UriSchemePipe, name: "uriScheme", pure: false }); }
|
|
97
97
|
}
|
|
98
98
|
export { UriSchemePipe };
|
|
99
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.
|
|
99
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: UriSchemePipe, decorators: [{
|
|
100
100
|
type: Pipe,
|
|
101
101
|
args: [{
|
|
102
102
|
name: 'uriScheme',
|
|
@@ -5,16 +5,16 @@ import { SafeUrlPipe } from './pipes/safe-url.pipe';
|
|
|
5
5
|
import { UriSchemePipe } from './pipes/uri-scheme.pipe';
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
7
7
|
class UrlUtilitiesModule {
|
|
8
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.
|
|
9
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.
|
|
8
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: UrlUtilitiesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
9
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.2", ngImport: i0, type: UrlUtilitiesModule, declarations: [SafeResourceUrlPipe,
|
|
10
10
|
SafeUrlPipe,
|
|
11
11
|
UriSchemePipe], imports: [CommonModule], exports: [SafeResourceUrlPipe,
|
|
12
12
|
SafeUrlPipe,
|
|
13
13
|
UriSchemePipe] }); }
|
|
14
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.
|
|
14
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: UrlUtilitiesModule, imports: [CommonModule] }); }
|
|
15
15
|
}
|
|
16
16
|
export { UrlUtilitiesModule };
|
|
17
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.
|
|
17
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: UrlUtilitiesModule, decorators: [{
|
|
18
18
|
type: NgModule,
|
|
19
19
|
args: [{
|
|
20
20
|
declarations: [
|
|
@@ -420,10 +420,10 @@ class UserChooserComponent {
|
|
|
420
420
|
.join('\n') :
|
|
421
421
|
'';
|
|
422
422
|
}
|
|
423
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.
|
|
424
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.
|
|
423
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: UserChooserComponent, deps: [{ token: MAT_DIALOG_DATA }, { token: i1.MatDialogRef }, { token: i2.ActiveDirectoryService }, { token: i3.SharePointService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
424
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.2", type: UserChooserComponent, selector: "ng-component", viewQueries: [{ propertyName: "selectionList", first: true, predicate: MatSelectionList, descendants: true }, { propertyName: "filterInput", first: true, predicate: ["filterInput"], descendants: true }], ngImport: i0, template: "<div id=\"dialog-title\">\n <h2 mat-dialog-title>{{ data.title }}</h2>\n\n <div id=\"num-selected\">\n {{ selectedOptions.length }} selected\n </div>\n</div>\n\n<mat-dialog-content>\n <div *ngIf=\"!(dataSource && photos)\">\n <mat-spinner [diameter]=\"50\"></mat-spinner>\n <h2 id=\"spinner-message\">Getting users and photos...</h2>\n </div>\n\n <ng-container *ngIf=\"dataSource && photos\">\n <form [formGroup]=\"filterForm\">\n <mat-form-field *ngIf=\"dataSource\">\n <input matInput placeholder=\"Search\" formControlName=\"filter\" #filterInput>\n\n <button *ngIf=\"filterForm.value.filter\" matSuffix mat-icon-button aria-label=\"Clear\" (click)=\"filterForm.get('filter')?.setValue('')\">\n <mat-icon fontIcon=\"close\"></mat-icon>\n </button>\n </mat-form-field>\n </form>\n\n <mat-selection-list [multiple]=\"isMultiMode\"\n (selectionChange)=\"listSelectionChanged($event.options)\">\n\n <mat-list-option *ngFor=\"let user of dataSource?.filteredData\" [value]=\"user\" [selected]=\"user.selected\"\n (selectedChange)=\"optionSelectionChanged(option)\" #option>\n\n <img *ngIf=\"getPhoto(user)\" matListItemAvatar alt=\"\" [src]=\"getPhoto(user)\">\n\n <mat-icon *ngIf=\"!getPhoto(user)\" matListItemAvatar class=\"no-photo\"\n fontIcon=\"account_circle\">\n </mat-icon>\n \n <div class=\"user\">\n <div [matTooltip]=\"tooltip(user)\" class=\"user-name\">\n {{ user.displayName }}\n <div *ngIf=\"data.showPhone && user.telephoneNumber\">{{ user.telephoneNumber }}</div>\n </div>\n \n <div>{{ user.department }}</div>\n \n <div class=\"title\">{{ user.title }}</div>\n </div>\n </mat-list-option>\n </mat-selection-list>\n </ng-container>\n</mat-dialog-content>\n\n<mat-dialog-actions>\n <ng-container *ngIf=\"dataSource && photos\">\n <mat-slide-toggle *ngIf=\"selectedOptions.length\" (change)=\"hideUnselectedChanged($event.checked)\">\n Hide Unselected\n </mat-slide-toggle>\n\n <button mat-raised-button color=\"primary\" (click)=\"selectAll()\"\n *ngIf=\"isMultiMode\">\n <mat-icon fontIcon=\"select_all\"></mat-icon>\n <span class=\"hide-mobile\">Select All</span>\n </button>\n \n <button mat-raised-button color=\"primary\" (click)=\"deselectAll()\"\n *ngIf=\"isMultiMode && selectedOptions.length\">\n <mat-icon fontIcon=\"clear_all\"></mat-icon>\n <span class=\"hide-mobile\">Clear All</span>\n </button>\n\n <button *ngIf=\"isMultiMode || !data.closeWhenSelectionMade\" mat-raised-button color=\"primary\" (click)=\"close()\" matTooltip=\"Accept your selection\"\n [disabled]=\"!selectedOptions.length\">\n <mat-icon fontIcon=\"check\"></mat-icon>\n <span class=\"hide-mobile\">Ok</span>\n </button>\n </ng-container>\n\n <button mat-raised-button color=\"warn\" mat-dialog-close matTooltip=\"Close this window\">\n <mat-icon fontIcon=\"close\"></mat-icon>\n <span class=\"hide-mobile\">Cancel</span>\n </button>\n</mat-dialog-actions>", styles: ["::ng-deep .mat-tooltip{font-size:1em!important;white-space:pre-line}mat-dialog-content{min-width:50vw}#dialog-title{display:flex;justify-content:space-between}#num-selected{margin:1em 1em 0 0}mat-spinner{margin:0 auto}#spinner-message{text-align:center;padding:.5em}mat-form-field{width:100%}.title{font-style:italic;color:#757575}img,.no-photo{width:2rem;height:2rem;font-size:2.3rem!important;border-radius:100%}.hide-mobile{display:none}mat-dialog-actions{display:grid;grid-auto-flow:column;grid-gap:1em;justify-content:center}.user-name{display:flex;justify-content:space-between}.user-name>div:last-child{margin-right:10rem;font-weight:400;font-style:italic;color:#757575}@media (min-width:801px){.user{display:grid;grid-template-columns:1fr 1fr 1fr}.user>div:first-child{font-weight:700}.hide-mobile{display:initial}}\n", ".material-icons{font-family:Material Icons;font-weight:400;font-style:normal;font-size:24px;display:inline-block;line-height:1;text-transform:none;letter-spacing:normal;word-wrap:normal;white-space:nowrap;direction:ltr;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;font-feature-settings:\"liga\"}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i6.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "component", type: i7.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i9.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: i10.MatSelectionList, selector: "mat-selection-list", inputs: ["color", "compareWith", "multiple", "hideSingleSelectionIndicator", "disabled"], outputs: ["selectionChange"], exportAs: ["matSelectionList"] }, { kind: "component", type: i10.MatListOption, selector: "mat-list-option", inputs: ["togglePosition", "checkboxPosition", "color", "value", "selected"], outputs: ["selectedChange"], exportAs: ["matListOption"] }, { kind: "directive", type: i10.MatListItemAvatar, selector: "[matListItemAvatar]" }, { kind: "component", type: i11.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i12.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["disabled", "disableRipple", "color", "tabIndex"], exportAs: ["matSlideToggle"] }, { kind: "directive", type: i13.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }] }); }
|
|
425
425
|
}
|
|
426
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.
|
|
426
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: UserChooserComponent, decorators: [{
|
|
427
427
|
type: Component,
|
|
428
428
|
args: [{ template: "<div id=\"dialog-title\">\n <h2 mat-dialog-title>{{ data.title }}</h2>\n\n <div id=\"num-selected\">\n {{ selectedOptions.length }} selected\n </div>\n</div>\n\n<mat-dialog-content>\n <div *ngIf=\"!(dataSource && photos)\">\n <mat-spinner [diameter]=\"50\"></mat-spinner>\n <h2 id=\"spinner-message\">Getting users and photos...</h2>\n </div>\n\n <ng-container *ngIf=\"dataSource && photos\">\n <form [formGroup]=\"filterForm\">\n <mat-form-field *ngIf=\"dataSource\">\n <input matInput placeholder=\"Search\" formControlName=\"filter\" #filterInput>\n\n <button *ngIf=\"filterForm.value.filter\" matSuffix mat-icon-button aria-label=\"Clear\" (click)=\"filterForm.get('filter')?.setValue('')\">\n <mat-icon fontIcon=\"close\"></mat-icon>\n </button>\n </mat-form-field>\n </form>\n\n <mat-selection-list [multiple]=\"isMultiMode\"\n (selectionChange)=\"listSelectionChanged($event.options)\">\n\n <mat-list-option *ngFor=\"let user of dataSource?.filteredData\" [value]=\"user\" [selected]=\"user.selected\"\n (selectedChange)=\"optionSelectionChanged(option)\" #option>\n\n <img *ngIf=\"getPhoto(user)\" matListItemAvatar alt=\"\" [src]=\"getPhoto(user)\">\n\n <mat-icon *ngIf=\"!getPhoto(user)\" matListItemAvatar class=\"no-photo\"\n fontIcon=\"account_circle\">\n </mat-icon>\n \n <div class=\"user\">\n <div [matTooltip]=\"tooltip(user)\" class=\"user-name\">\n {{ user.displayName }}\n <div *ngIf=\"data.showPhone && user.telephoneNumber\">{{ user.telephoneNumber }}</div>\n </div>\n \n <div>{{ user.department }}</div>\n \n <div class=\"title\">{{ user.title }}</div>\n </div>\n </mat-list-option>\n </mat-selection-list>\n </ng-container>\n</mat-dialog-content>\n\n<mat-dialog-actions>\n <ng-container *ngIf=\"dataSource && photos\">\n <mat-slide-toggle *ngIf=\"selectedOptions.length\" (change)=\"hideUnselectedChanged($event.checked)\">\n Hide Unselected\n </mat-slide-toggle>\n\n <button mat-raised-button color=\"primary\" (click)=\"selectAll()\"\n *ngIf=\"isMultiMode\">\n <mat-icon fontIcon=\"select_all\"></mat-icon>\n <span class=\"hide-mobile\">Select All</span>\n </button>\n \n <button mat-raised-button color=\"primary\" (click)=\"deselectAll()\"\n *ngIf=\"isMultiMode && selectedOptions.length\">\n <mat-icon fontIcon=\"clear_all\"></mat-icon>\n <span class=\"hide-mobile\">Clear All</span>\n </button>\n\n <button *ngIf=\"isMultiMode || !data.closeWhenSelectionMade\" mat-raised-button color=\"primary\" (click)=\"close()\" matTooltip=\"Accept your selection\"\n [disabled]=\"!selectedOptions.length\">\n <mat-icon fontIcon=\"check\"></mat-icon>\n <span class=\"hide-mobile\">Ok</span>\n </button>\n </ng-container>\n\n <button mat-raised-button color=\"warn\" mat-dialog-close matTooltip=\"Close this window\">\n <mat-icon fontIcon=\"close\"></mat-icon>\n <span class=\"hide-mobile\">Cancel</span>\n </button>\n</mat-dialog-actions>", styles: ["::ng-deep .mat-tooltip{font-size:1em!important;white-space:pre-line}mat-dialog-content{min-width:50vw}#dialog-title{display:flex;justify-content:space-between}#num-selected{margin:1em 1em 0 0}mat-spinner{margin:0 auto}#spinner-message{text-align:center;padding:.5em}mat-form-field{width:100%}.title{font-style:italic;color:#757575}img,.no-photo{width:2rem;height:2rem;font-size:2.3rem!important;border-radius:100%}.hide-mobile{display:none}mat-dialog-actions{display:grid;grid-auto-flow:column;grid-gap:1em;justify-content:center}.user-name{display:flex;justify-content:space-between}.user-name>div:last-child{margin-right:10rem;font-weight:400;font-style:italic;color:#757575}@media (min-width:801px){.user{display:grid;grid-template-columns:1fr 1fr 1fr}.user>div:first-child{font-weight:700}.hide-mobile{display:initial}}\n", ".material-icons{font-family:Material Icons;font-weight:400;font-style:normal;font-size:24px;display:inline-block;line-height:1;text-transform:none;letter-spacing:normal;word-wrap:normal;white-space:nowrap;direction:ltr;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;font-feature-settings:\"liga\"}\n"] }]
|
|
429
429
|
}], ctorParameters: function () { return [{ type: UserChooserData, decorators: [{
|
|
@@ -440,9 +440,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImpor
|
|
|
440
440
|
class UserFormFieldComponent {
|
|
441
441
|
//#endregion
|
|
442
442
|
//#region Properties
|
|
443
|
-
get isEdge() {
|
|
444
|
-
|
|
445
|
-
}
|
|
443
|
+
/*get isEdge(): boolean {
|
|
444
|
+
return window.navigator.userAgent.indexOf('Edge') > -1;
|
|
445
|
+
}*/
|
|
446
446
|
//#endregion
|
|
447
447
|
//#region Lifecycle
|
|
448
448
|
constructor(dialog, activeDirectoryService, sharePointService) {
|
|
@@ -533,12 +533,12 @@ class UserFormFieldComponent {
|
|
|
533
533
|
p.displayName?.toLowerCase() === user.displayName.toLowerCase() ||
|
|
534
534
|
p.title?.toLowerCase() === user.displayName.toLowerCase())?.encodedAbsUrl;
|
|
535
535
|
}
|
|
536
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.
|
|
537
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.
|
|
536
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: UserFormFieldComponent, deps: [{ token: i1.MatDialog }, { token: i2.ActiveDirectoryService }, { token: i3.SharePointService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
537
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.2", type: UserFormFieldComponent, selector: "cp-user-field", inputs: { placeholder: "placeholder", clickable: "clickable", userChooserData: "userChooserData" }, outputs: { usersSelected: "usersSelected", userUnSelected: "userUnSelected" }, ngImport: i0, template: "\n<!-- In Microsoft Edge, selectUser() never gets called if the input fields are disabled\n So... I'm dynamically setting the disabled property based on whether or not the browser is Edge.\n It's definitely a better experience if the field IS disabled.\n Otherwise, it's confusing - especially because Edge is SO SLOW to display the resulting dialog window.\n-->\n<!-- Update 8/24/2023:\n The above problem also exists in Chrome now.\n So instead of dynamically setting [disabled] based on browser type,\n I'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/\n-->\n\n<mat-progress-bar *ngIf=\"!(users && photos)\" mode=\"indeterminate\"></mat-progress-bar>\n\n<div *ngIf=\"users && photos\" (click)=\"selectUser()\" [class.clickable]=\"clickable\">\n <mat-form-field *ngIf=\"!accountNames?.length\">\n <input matInput disabled [placeholder]=\"placeholder\"> <!-- [disabled]=\"!isEdge\" -->\n </mat-form-field>\n \n <div *ngIf=\"accountNames?.length\"\n [class.grid]=\"accountNames.length > 1\"\n [class.three]=\"accountNames.length > 2\"\n [class.four]=\"accountNames.length > 3\"\n [class.five]=\"accountNames.length > 4\">\n\n <div *ngFor=\"let accountName of accountNames; let i=index\" class=\"user\">\n <!--<img *ngIf=\"accountName && empUtils.getEmployee(accountName)\" alt=\"\" [src]=\"empUtils.getEmployee(accountName) | employeePhotoUrl:cacheService.photos\">-->\n <img *ngIf=\"getPhoto(accountName)\" matListItemAvatar alt=\"\" [src]=\"getPhoto(accountName)\">\n \n <mat-form-field>\n\n <!-- [disabled]=\"!isEdge\" -->\n <input matInput disabled [placeholder]=\"i === 0 ? placeholder : ''\"\n [value]=\"accountName ? getUser(accountName)?.displayName : accountName\">\n\n <button matSuffix mat-icon-button aria-label=\"Clear\" (click)=\"$event.stopPropagation(); unSelectUser(accountName)\">\n <mat-icon fontIcon=\"close\"></mat-icon>\n </button>\n </mat-form-field>\n </div>\n </div>\n </div>", 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: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i7.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i9.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: "directive", type: i10.MatListItemAvatar, selector: "[matListItemAvatar]" }, { kind: "component", type: i10$1.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }] }); }
|
|
538
538
|
}
|
|
539
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.
|
|
539
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: UserFormFieldComponent, decorators: [{
|
|
540
540
|
type: Component,
|
|
541
|
-
args: [{ selector: 'cp-user-field', template: "<!-- In Microsoft Edge,
|
|
541
|
+
args: [{ selector: 'cp-user-field', template: "\n<!-- In Microsoft Edge, selectUser() never gets called if the input fields are disabled\n So... I'm dynamically setting the disabled property based on whether or not the browser is Edge.\n It's definitely a better experience if the field IS disabled.\n Otherwise, it's confusing - especially because Edge is SO SLOW to display the resulting dialog window.\n-->\n<!-- Update 8/24/2023:\n The above problem also exists in Chrome now.\n So instead of dynamically setting [disabled] based on browser type,\n I'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/\n-->\n\n<mat-progress-bar *ngIf=\"!(users && photos)\" mode=\"indeterminate\"></mat-progress-bar>\n\n<div *ngIf=\"users && photos\" (click)=\"selectUser()\" [class.clickable]=\"clickable\">\n <mat-form-field *ngIf=\"!accountNames?.length\">\n <input matInput disabled [placeholder]=\"placeholder\"> <!-- [disabled]=\"!isEdge\" -->\n </mat-form-field>\n \n <div *ngIf=\"accountNames?.length\"\n [class.grid]=\"accountNames.length > 1\"\n [class.three]=\"accountNames.length > 2\"\n [class.four]=\"accountNames.length > 3\"\n [class.five]=\"accountNames.length > 4\">\n\n <div *ngFor=\"let accountName of accountNames; let i=index\" class=\"user\">\n <!--<img *ngIf=\"accountName && empUtils.getEmployee(accountName)\" alt=\"\" [src]=\"empUtils.getEmployee(accountName) | employeePhotoUrl:cacheService.photos\">-->\n <img *ngIf=\"getPhoto(accountName)\" matListItemAvatar alt=\"\" [src]=\"getPhoto(accountName)\">\n \n <mat-form-field>\n\n <!-- [disabled]=\"!isEdge\" -->\n <input matInput disabled [placeholder]=\"i === 0 ? placeholder : ''\"\n [value]=\"accountName ? getUser(accountName)?.displayName : accountName\">\n\n <button matSuffix mat-icon-button aria-label=\"Clear\" (click)=\"$event.stopPropagation(); unSelectUser(accountName)\">\n <mat-icon fontIcon=\"close\"></mat-icon>\n </button>\n </mat-form-field>\n </div>\n </div>\n </div>", 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"] }]
|
|
542
542
|
}], ctorParameters: function () { return [{ type: i1.MatDialog }, { type: i2.ActiveDirectoryService }, { type: i3.SharePointService }]; }, propDecorators: { usersSelected: [{
|
|
543
543
|
type: Output
|
|
544
544
|
}], userUnSelected: [{
|
|
@@ -566,8 +566,8 @@ class GuiModule {
|
|
|
566
566
|
throw new Error('ActiveDirectoryGuiModule is already loaded. Import it in the AppModule only');
|
|
567
567
|
}
|
|
568
568
|
}
|
|
569
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.
|
|
570
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.
|
|
569
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: GuiModule, deps: [{ token: GuiModule, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
570
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.2", ngImport: i0, type: GuiModule, declarations: [UserChooserComponent,
|
|
571
571
|
UserFormFieldComponent], imports: [CommonModule,
|
|
572
572
|
ReactiveFormsModule,
|
|
573
573
|
MatButtonModule,
|
|
@@ -582,7 +582,7 @@ class GuiModule {
|
|
|
582
582
|
MatTableModule,
|
|
583
583
|
MatTooltipModule], exports: [UserChooserComponent,
|
|
584
584
|
UserFormFieldComponent] }); }
|
|
585
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.
|
|
585
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: GuiModule, imports: [CommonModule,
|
|
586
586
|
ReactiveFormsModule,
|
|
587
587
|
MatButtonModule,
|
|
588
588
|
MatDialogModule,
|
|
@@ -596,7 +596,7 @@ class GuiModule {
|
|
|
596
596
|
MatTableModule,
|
|
597
597
|
MatTooltipModule] }); }
|
|
598
598
|
}
|
|
599
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.
|
|
599
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: GuiModule, decorators: [{
|
|
600
600
|
type: NgModule,
|
|
601
601
|
args: [{
|
|
602
602
|
declarations: [
|