@cleavelandprice/ngx-lib 4.1.18 → 4.2.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/material/components/user-chooser/user-chooser.component.d.ts +1 -0
- package/active-directory/material/model/user-chooser-data.d.ts +1 -0
- package/active-directory/model/ad-object.d.ts +1 -1
- package/esm2022/active-directory/material/components/user-chooser/user-chooser.component.mjs +27 -17
- package/esm2022/active-directory/material/components/user-form-field/user-form-field.component.mjs +3 -3
- package/esm2022/active-directory/material/model/default-user-chooser-data.mjs +2 -1
- package/esm2022/active-directory/material/model/user-chooser-data.mjs +1 -1
- package/esm2022/active-directory/model/ad-object.mjs +1 -1
- package/esm2022/authentication/object/services/authentication-object.service.mjs +2 -2
- package/esm2022/quill/mention/components/editor/editor.component.mjs +14 -2
- package/esm2022/sharepoint/pipes/user-photo-url.pipe.mjs +2 -2
- package/fesm2022/cleavelandprice-ngx-lib-active-directory-material.mjs +29 -18
- package/fesm2022/cleavelandprice-ngx-lib-active-directory-material.mjs.map +1 -1
- package/fesm2022/cleavelandprice-ngx-lib-authentication-object.mjs +1 -1
- package/fesm2022/cleavelandprice-ngx-lib-authentication-object.mjs.map +1 -1
- package/fesm2022/cleavelandprice-ngx-lib-quill-mention.mjs +13 -1
- package/fesm2022/cleavelandprice-ngx-lib-quill-mention.mjs.map +1 -1
- package/fesm2022/cleavelandprice-ngx-lib-sharepoint.mjs +1 -1
- package/fesm2022/cleavelandprice-ngx-lib-sharepoint.mjs.map +1 -1
- package/package.json +7 -7
- package/quill/mention/components/editor/editor.component.d.ts +4 -0
|
@@ -80,7 +80,7 @@ export class AuthenticationObjectService extends NgxLibServiceBase {
|
|
|
80
80
|
validateUser(token) {
|
|
81
81
|
this.authenticatedUser = {
|
|
82
82
|
admin: false, // This type of authentication has no concept of Admin
|
|
83
|
-
displayName: token.displayName,
|
|
83
|
+
displayName: token.displayName ?? token.name,
|
|
84
84
|
accountName: token.sAMAccountName,
|
|
85
85
|
distinguishedName: token.distinguishedName,
|
|
86
86
|
employeeNumber: token.employeeNumber,
|
|
@@ -116,4 +116,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImpor
|
|
|
116
116
|
type: Inject,
|
|
117
117
|
args: [AuthenticationServiceOptionsToken]
|
|
118
118
|
}] }] });
|
|
119
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aGVudGljYXRpb24tb2JqZWN0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGVhdmVsYW5kcHJpY2Uvbmd4LWxpYi9hdXRoZW50aWNhdGlvbi9vYmplY3Qvc3JjL3NlcnZpY2VzL2F1dGhlbnRpY2F0aW9uLW9iamVjdC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUk3RSxPQUFPLEVBQXlHLGlDQUFpQyxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFFbk0sT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7O0FBSzdELE1BQU0sT0FBTywyQkFBNEIsU0FBUSxpQkFBaUI7SUFDaEUsZ0JBQWdCO0lBQ2hCLFNBQVMsQ0FHUDtJQU9GLFlBQVk7SUFFWixvQkFBb0I7SUFDcEIsSUFBSSxpQkFBaUI7UUFDbkIsT0FBTyxDQUFDLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFRCxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1lBQzdCLGNBQWMsQ0FBQSxDQUFDO1lBQ2YsWUFBWSxDQUFDO0lBQ2pCLENBQUM7SUFDRCxZQUFZO0lBRVosbUJBQW1CO0lBQ25CLFlBQTJFLE9BQXFDO1FBQzlHLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUQwRCxZQUFPLEdBQVAsT0FBTyxDQUE4QjtRQTFCaEgsZ0JBQWdCO1FBQ2hCLGNBQVMsR0FBRztZQUNWLDJFQUEyRTtZQUMzRSxJQUFJLEVBQUUsTUFBTSxDQUFDLFVBQVUsQ0FBQztTQUN6QixD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O1lBQzNCLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUN0RSxDQUFDO1FBRUQsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7UUFDMUIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFFbkQsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7UUFDNUIsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVELHFCQUFxQjtRQUNuQixJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDM0IsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUUzRCxJQUFJLEtBQUssRUFBRSxDQUFDO2dCQUNWLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQVMsQ0FBQyxDQUFDO1lBQy9DLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQzs4R0FoSFUsMkJBQTJCLGtCQTJCTixpQ0FBaUM7a0hBM0J0RCwyQkFBMkIsY0FGMUIsTUFBTTs7MkZBRVAsMkJBQTJCO2tCQUh2QyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBNEJjLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsaUNBQWlDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgSW5qZWN0LCBpbmplY3QsIEluamVjdGFibGUsIE9wdGlvbmFsLCBvdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IFVzZXIgfSBmcm9tICdAY2xlYXZlbGFuZHByaWNlL25neC1saWIvYWN0aXZlLWRpcmVjdG9yeSc7XHJcblxyXG5pbXBvcnQgeyBBYnN0cmFjdEF1dGhlbnRpY2F0aW9uU2VydmljZSwgQXV0aGVudGljYXRlZFVzZXIsIEF1dGhlbnRpY2F0aW9uUmVxdWVzdCwgQXV0aGVudGljYXRpb25TZXJ2aWNlT3B0aW9ucywgQXV0aGVudGljYXRpb25TZXJ2aWNlT3B0aW9uc1Rva2VuIH0gZnJvbSAnQGNsZWF2ZWxhbmRwcmljZS9uZ3gtbGliL2F1dGhlbnRpY2F0aW9uJztcclxuXHJcbmltcG9ydCB7IE5neExpYlNlcnZpY2VCYXNlIH0gZnJvbSAnQGNsZWF2ZWxhbmRwcmljZS9uZ3gtbGliJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEF1dGhlbnRpY2F0aW9uT2JqZWN0U2VydmljZSBleHRlbmRzIE5neExpYlNlcnZpY2VCYXNlIGltcGxlbWVudHMgQWJzdHJhY3RBdXRoZW50aWNhdGlvblNlcnZpY2Uge1xyXG4gIC8vI3JlZ2lvbiBGaWVsZHNcclxuICAjc2VydmljZXMgPSB7XHJcbiAgICAvL2NvbmZpZzogaW5qZWN0KFNlcnZpY2VDb25maWcsIHsgb3B0aW9uYWw6IHRydWUgfSkgPz8gbmV3IFNlcnZpY2VDb25maWcoKSxcclxuICAgIGh0dHA6IGluamVjdChIdHRwQ2xpZW50KVxyXG4gIH07XHJcbiAgYXV0aGVudGljYXRlZENoYW5nZWQgPSBvdXRwdXQ8Ym9vbGVhbj4oKTtcclxuICBhdXRoZW50aWNhdGluZ0NoYW5nZWQgPSBvdXRwdXQ8Ym9vbGVhbj4oKTtcclxuICBhdXRoZW50aWNhdGlvbkVycm9yID0gb3V0cHV0KCk7XHJcbiAgYXV0aGVudGljYXRpbmcgPSBmYWxzZTsgLy8gRmxhZyBzZXQgdG8gdHJ1ZSB3aGlsZSB0aGUgc2VydmljZSBpcyBhdHRlbXB0aW5nIHRvIGF1dGhlbnRpY2F0ZSB0aGUgdXNlclxyXG4gIGF1dGhlbnRpY2F0ZWQgPSBmYWxzZTsgLy8gRmxhZyBzZXQgdG8gdHJ1ZSB3aGVuIHRoZSB1c2VyIGlzIHN1Y2Nlc3NmdWxseSBhdXRoZW50aWNhdGVkXHJcbiAgYXV0aGVudGljYXRlZFVzZXI/OiBBdXRoZW50aWNhdGVkVXNlcjsgLy8gT2JqZWN0IHJlcHJlc2VudGluZyB0aGUgYXV0aGVudGljYXRlZCB1c2VyXHJcbiAgLy8jZW5kcmVnaW9uXHJcblxyXG4gIC8vI3JlZ2lvbiBQcm9wZXJ0aWVzXHJcbiAgZ2V0IHVzZVNlc3Npb25TdG9yYWdlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuICEhbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3N0b3JlVG9rZW5JblNlc3Npb24nKTtcclxuICB9XHJcblxyXG4gIGdldCBzdG9yYWdlKCk6IFN0b3JhZ2Uge1xyXG4gICAgcmV0dXJuIHRoaXMudXNlU2Vzc2lvblN0b3JhZ2UgP1xyXG4gICAgICBzZXNzaW9uU3RvcmFnZTpcclxuICAgICAgbG9jYWxTdG9yYWdlO1xyXG4gIH1cclxuICAvLyNlbmRyZWdpb25cclxuXHJcbiAgLy8jcmVnaW9uIExpZmVjeWNsZVxyXG4gIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIEBJbmplY3QoQXV0aGVudGljYXRpb25TZXJ2aWNlT3B0aW9uc1Rva2VuKSBwcml2YXRlIG9wdGlvbnM6IEF1dGhlbnRpY2F0aW9uU2VydmljZU9wdGlvbnMpIHtcclxuICAgIHN1cGVyKG9wdGlvbnMpO1xyXG5cclxuICAgIHRoaXMub3B0aW9ucyA9IHtcclxuICAgICAgLi4ub3B0aW9ucyxcclxuXHJcbiAgICAgIHRva2VuTmFtZTogJ3VzZXJPYmplY3QnLFxyXG4gICAgICBhdXRoZW50aWNhdGlvbkVuZHBvaW50OiAnL2F1dGhlbnRpY2F0ZSdcclxuICAgIH07XHJcblxyXG4gICAgdGhpcy5jaGVja0ZvckV4aXN0aW5nVG9rZW4oKTtcclxuICB9XHJcbiAgLy8jZW5kcmVnaW9uXHJcblxyXG4gIC8vI3JlZ2lvbiBVdGlsaXRpZXNcclxuICAvL0F1dGhlbnRpY2F0ZSB0aGUgdXNlciBhbmQgc3RvcmUgdGhlIHRva2VuIGluIExvY2FsIFN0b3JhZ2VcclxuICBsb2dpbih1c2VybmFtZTogc3RyaW5nLCBwYXNzd29yZDogc3RyaW5nLCBhZG1pbkdyb3VwPzogc3RyaW5nLCBhZGRpdGlvbmFsSW5mbz86IHN0cmluZyk6IHZvaWQge1xyXG4gICAgY29uc3QgcmVxdWVzdDogQXV0aGVudGljYXRpb25SZXF1ZXN0ID0ge1xyXG4gICAgICB1c2VybmFtZSxcclxuICAgICAgcGFzc3dvcmQsXHJcbiAgICAgIGFkbWluR3JvdXAsXHJcbiAgICAgIGFkZGl0aW9uYWxJbmZvLFxyXG4gICAgICBhcHBOYW1lOiB0aGlzLm9wdGlvbnMuYXBwTmFtZVxyXG4gICAgfTtcclxuXHJcbiAgICB0aGlzLmF1dGhlbnRpY2F0aW5nID0gdHJ1ZTtcclxuICAgIHRoaXMuYXV0aGVudGljYXRpbmdDaGFuZ2VkLmVtaXQodGhpcy5hdXRoZW50aWNhdGluZyk7XHJcblxyXG4gICAgdGhpcy4jc2VydmljZXMuaHR0cC5wb3N0KGAke3RoaXMuYXBpVXJsfSR7dGhpcy5vcHRpb25zLmF1dGhlbnRpY2F0aW9uRW5kcG9pbnR9YCwgcmVxdWVzdClcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHVzZXIpID0+IHtcclxuICAgICAgICAgIGlmICh1c2VyKSB7XHJcbiAgICAgICAgICAgIHRoaXMudmFsaWRhdGVVc2VyKHVzZXIgYXMgVXNlcik7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmxvZ291dCgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6IChlcnIpID0+IHtcclxuICAgICAgICAgIHRoaXMuYXV0aGVudGljYXRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuYXV0aGVudGljYXRpbmdDaGFuZ2VkLmVtaXQodGhpcy5hdXRoZW50aWNhdGluZyk7XHJcbiAgICAgICAgICB0aGlzLmF1dGhlbnRpY2F0aW9uRXJyb3IuZW1pdChlcnIpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG4gXHJcbiAgLy9Mb2dvdXQgdGhlIHVzZXIgYW5kIGRlbGV0ZSB0aGUgdG9rZW4gZnJvbSBMb2NhbCBTdG9yYWdlXHJcbiAgbG9nb3V0KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuc3RvcmFnZS5nZXRJdGVtKHRoaXMub3B0aW9ucy50b2tlbk5hbWUhKSkge1xyXG4gICAgICB0aGlzLnN0b3JhZ2UucmVtb3ZlSXRlbSh0aGlzLm9wdGlvbnMudG9rZW5OYW1lISk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5hdXRoZW50aWNhdGVkVXNlciA9IHVuZGVmaW5lZDtcclxuICAgIHRoaXMuYXV0aGVudGljYXRlZCA9IGZhbHNlO1xyXG4gICAgdGhpcy5hdXRoZW50aWNhdGVkQ2hhbmdlZC5lbWl0KGZhbHNlKTtcclxuICB9XHJcbiBcclxuICB2YWxpZGF0ZVVzZXIodG9rZW46IFVzZXIpOiB2b2lkIHtcclxuICAgIHRoaXMuYXV0aGVudGljYXRlZFVzZXIgPSB7XHJcbiAgICAgIGFkbWluOiBmYWxzZSwgLy8gVGhpcyB0eXBlIG9mIGF1dGhlbnRpY2F0aW9uIGhhcyBubyBjb25jZXB0IG9mIEFkbWluXHJcbiAgICAgIGRpc3BsYXlOYW1lOiB0b2tlbi5kaXNwbGF5TmFtZSxcclxuICAgICAgYWNjb3VudE5hbWU6IHRva2VuLnNBTUFjY291bnROYW1lLFxyXG4gICAgICBkaXN0aW5ndWlzaGVkTmFtZTogdG9rZW4uZGlzdGluZ3Vpc2hlZE5hbWUsXHJcbiAgICAgIGVtcGxveWVlTnVtYmVyOiB0b2tlbi5lbXBsb3llZU51bWJlcixcclxuICAgICAgbWVtYmVyT2Y6IHRva2VuLm1lbWJlck9mLmpvaW4oJywnKVxyXG4gICAgfTtcclxuXHJcbiAgICBpZiAodGhpcy5vcHRpb25zLnRva2VuTmFtZSkge1xyXG4gICAgICB0aGlzLnN0b3JhZ2Uuc2V0SXRlbSh0aGlzLm9wdGlvbnMudG9rZW5OYW1lLCBKU09OLnN0cmluZ2lmeSh0b2tlbikpO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICB0aGlzLmF1dGhlbnRpY2F0ZWQgPSB0cnVlO1xyXG4gICAgdGhpcy5hdXRoZW50aWNhdGVkQ2hhbmdlZC5lbWl0KHRoaXMuYXV0aGVudGljYXRlZCk7XHJcblxyXG4gICAgdGhpcy5hdXRoZW50aWNhdGluZyA9IGZhbHNlO1xyXG4gICAgdGhpcy5hdXRoZW50aWNhdGluZ0NoYW5nZWQuZW1pdCh0aGlzLmF1dGhlbnRpY2F0aW5nKTtcclxuICB9XHJcblxyXG4gIGNoZWNrRm9yRXhpc3RpbmdUb2tlbigpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLm9wdGlvbnMudG9rZW5OYW1lKSB7XHJcbiAgICAgIGNvbnN0IHRva2VuID0gdGhpcy5zdG9yYWdlLmdldEl0ZW0odGhpcy5vcHRpb25zLnRva2VuTmFtZSk7XHJcblxyXG4gICAgICBpZiAodG9rZW4pIHtcclxuICAgICAgICB0aGlzLnZhbGlkYXRlVXNlcihKU09OLnBhcnNlKHRva2VuKSBhcyBVc2VyKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICAvLyNlbmRyZWdpb25cclxufVxyXG4gIl19
|
|
119
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aGVudGljYXRpb24tb2JqZWN0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGVhdmVsYW5kcHJpY2Uvbmd4LWxpYi9hdXRoZW50aWNhdGlvbi9vYmplY3Qvc3JjL3NlcnZpY2VzL2F1dGhlbnRpY2F0aW9uLW9iamVjdC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUk3RSxPQUFPLEVBQXlHLGlDQUFpQyxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFFbk0sT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7O0FBSzdELE1BQU0sT0FBTywyQkFBNEIsU0FBUSxpQkFBaUI7SUFDaEUsZ0JBQWdCO0lBQ2hCLFNBQVMsQ0FHUDtJQU9GLFlBQVk7SUFFWixvQkFBb0I7SUFDcEIsSUFBSSxpQkFBaUI7UUFDbkIsT0FBTyxDQUFDLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFRCxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1lBQzdCLGNBQWMsQ0FBQSxDQUFDO1lBQ2YsWUFBWSxDQUFDO0lBQ2pCLENBQUM7SUFDRCxZQUFZO0lBRVosbUJBQW1CO0lBQ25CLFlBQTJFLE9BQXFDO1FBQzlHLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUQwRCxZQUFPLEdBQVAsT0FBTyxDQUE4QjtRQTFCaEgsZ0JBQWdCO1FBQ2hCLGNBQVMsR0FBRztZQUNWLDJFQUEyRTtZQUMzRSxJQUFJLEVBQUUsTUFBTSxDQUFDLFVBQVUsQ0FBQztTQUN6QixD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LENBQUMsU0FBUyxFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3RFLENBQUM7UUFFRCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztRQUMxQixJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUVuRCxJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztRQUM1QixJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQscUJBQXFCO1FBQ25CLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUMzQixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBRTNELElBQUksS0FBSyxFQUFFLENBQUM7Z0JBQ1YsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBUyxDQUFDLENBQUM7WUFDL0MsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDOzhHQWhIVSwyQkFBMkIsa0JBMkJOLGlDQUFpQztrSEEzQnRELDJCQUEyQixjQUYxQixNQUFNOzsyRkFFUCwyQkFBMkI7a0JBSHZDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkE0QmMsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxpQ0FBaUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBJbmplY3QsIGluamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWwsIG91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgVXNlciB9IGZyb20gJ0BjbGVhdmVsYW5kcHJpY2Uvbmd4LWxpYi9hY3RpdmUtZGlyZWN0b3J5JztcclxuXHJcbmltcG9ydCB7IEFic3RyYWN0QXV0aGVudGljYXRpb25TZXJ2aWNlLCBBdXRoZW50aWNhdGVkVXNlciwgQXV0aGVudGljYXRpb25SZXF1ZXN0LCBBdXRoZW50aWNhdGlvblNlcnZpY2VPcHRpb25zLCBBdXRoZW50aWNhdGlvblNlcnZpY2VPcHRpb25zVG9rZW4gfSBmcm9tICdAY2xlYXZlbGFuZHByaWNlL25neC1saWIvYXV0aGVudGljYXRpb24nO1xyXG5cclxuaW1wb3J0IHsgTmd4TGliU2VydmljZUJhc2UgfSBmcm9tICdAY2xlYXZlbGFuZHByaWNlL25neC1saWInO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQXV0aGVudGljYXRpb25PYmplY3RTZXJ2aWNlIGV4dGVuZHMgTmd4TGliU2VydmljZUJhc2UgaW1wbGVtZW50cyBBYnN0cmFjdEF1dGhlbnRpY2F0aW9uU2VydmljZSB7XHJcbiAgLy8jcmVnaW9uIEZpZWxkc1xyXG4gICNzZXJ2aWNlcyA9IHtcclxuICAgIC8vY29uZmlnOiBpbmplY3QoU2VydmljZUNvbmZpZywgeyBvcHRpb25hbDogdHJ1ZSB9KSA/PyBuZXcgU2VydmljZUNvbmZpZygpLFxyXG4gICAgaHR0cDogaW5qZWN0KEh0dHBDbGllbnQpXHJcbiAgfTtcclxuICBhdXRoZW50aWNhdGVkQ2hhbmdlZCA9IG91dHB1dDxib29sZWFuPigpO1xyXG4gIGF1dGhlbnRpY2F0aW5nQ2hhbmdlZCA9IG91dHB1dDxib29sZWFuPigpO1xyXG4gIGF1dGhlbnRpY2F0aW9uRXJyb3IgPSBvdXRwdXQoKTtcclxuICBhdXRoZW50aWNhdGluZyA9IGZhbHNlOyAvLyBGbGFnIHNldCB0byB0cnVlIHdoaWxlIHRoZSBzZXJ2aWNlIGlzIGF0dGVtcHRpbmcgdG8gYXV0aGVudGljYXRlIHRoZSB1c2VyXHJcbiAgYXV0aGVudGljYXRlZCA9IGZhbHNlOyAvLyBGbGFnIHNldCB0byB0cnVlIHdoZW4gdGhlIHVzZXIgaXMgc3VjY2Vzc2Z1bGx5IGF1dGhlbnRpY2F0ZWRcclxuICBhdXRoZW50aWNhdGVkVXNlcj86IEF1dGhlbnRpY2F0ZWRVc2VyOyAvLyBPYmplY3QgcmVwcmVzZW50aW5nIHRoZSBhdXRoZW50aWNhdGVkIHVzZXJcclxuICAvLyNlbmRyZWdpb25cclxuXHJcbiAgLy8jcmVnaW9uIFByb3BlcnRpZXNcclxuICBnZXQgdXNlU2Vzc2lvblN0b3JhZ2UoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gISFsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnc3RvcmVUb2tlbkluU2Vzc2lvbicpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHN0b3JhZ2UoKTogU3RvcmFnZSB7XHJcbiAgICByZXR1cm4gdGhpcy51c2VTZXNzaW9uU3RvcmFnZSA/XHJcbiAgICAgIHNlc3Npb25TdG9yYWdlOlxyXG4gICAgICBsb2NhbFN0b3JhZ2U7XHJcbiAgfVxyXG4gIC8vI2VuZHJlZ2lvblxyXG5cclxuICAvLyNyZWdpb24gTGlmZWN5Y2xlXHJcbiAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgQEluamVjdChBdXRoZW50aWNhdGlvblNlcnZpY2VPcHRpb25zVG9rZW4pIHByaXZhdGUgb3B0aW9uczogQXV0aGVudGljYXRpb25TZXJ2aWNlT3B0aW9ucykge1xyXG4gICAgc3VwZXIob3B0aW9ucyk7XHJcblxyXG4gICAgdGhpcy5vcHRpb25zID0ge1xyXG4gICAgICAuLi5vcHRpb25zLFxyXG5cclxuICAgICAgdG9rZW5OYW1lOiAndXNlck9iamVjdCcsXHJcbiAgICAgIGF1dGhlbnRpY2F0aW9uRW5kcG9pbnQ6ICcvYXV0aGVudGljYXRlJ1xyXG4gICAgfTtcclxuXHJcbiAgICB0aGlzLmNoZWNrRm9yRXhpc3RpbmdUb2tlbigpO1xyXG4gIH1cclxuICAvLyNlbmRyZWdpb25cclxuXHJcbiAgLy8jcmVnaW9uIFV0aWxpdGllc1xyXG4gIC8vQXV0aGVudGljYXRlIHRoZSB1c2VyIGFuZCBzdG9yZSB0aGUgdG9rZW4gaW4gTG9jYWwgU3RvcmFnZVxyXG4gIGxvZ2luKHVzZXJuYW1lOiBzdHJpbmcsIHBhc3N3b3JkOiBzdHJpbmcsIGFkbWluR3JvdXA/OiBzdHJpbmcsIGFkZGl0aW9uYWxJbmZvPzogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBjb25zdCByZXF1ZXN0OiBBdXRoZW50aWNhdGlvblJlcXVlc3QgPSB7XHJcbiAgICAgIHVzZXJuYW1lLFxyXG4gICAgICBwYXNzd29yZCxcclxuICAgICAgYWRtaW5Hcm91cCxcclxuICAgICAgYWRkaXRpb25hbEluZm8sXHJcbiAgICAgIGFwcE5hbWU6IHRoaXMub3B0aW9ucy5hcHBOYW1lXHJcbiAgICB9O1xyXG5cclxuICAgIHRoaXMuYXV0aGVudGljYXRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5hdXRoZW50aWNhdGluZ0NoYW5nZWQuZW1pdCh0aGlzLmF1dGhlbnRpY2F0aW5nKTtcclxuXHJcbiAgICB0aGlzLiNzZXJ2aWNlcy5odHRwLnBvc3QoYCR7dGhpcy5hcGlVcmx9JHt0aGlzLm9wdGlvbnMuYXV0aGVudGljYXRpb25FbmRwb2ludH1gLCByZXF1ZXN0KVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAodXNlcikgPT4ge1xyXG4gICAgICAgICAgaWYgKHVzZXIpIHtcclxuICAgICAgICAgICAgdGhpcy52YWxpZGF0ZVVzZXIodXNlciBhcyBVc2VyKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMubG9nb3V0KCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKGVycikgPT4ge1xyXG4gICAgICAgICAgdGhpcy5hdXRoZW50aWNhdGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5hdXRoZW50aWNhdGluZ0NoYW5nZWQuZW1pdCh0aGlzLmF1dGhlbnRpY2F0aW5nKTtcclxuICAgICAgICAgIHRoaXMuYXV0aGVudGljYXRpb25FcnJvci5lbWl0KGVycik7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICB9XHJcbiBcclxuICAvL0xvZ291dCB0aGUgdXNlciBhbmQgZGVsZXRlIHRoZSB0b2tlbiBmcm9tIExvY2FsIFN0b3JhZ2VcclxuICBsb2dvdXQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5zdG9yYWdlLmdldEl0ZW0odGhpcy5vcHRpb25zLnRva2VuTmFtZSEpKSB7XHJcbiAgICAgIHRoaXMuc3RvcmFnZS5yZW1vdmVJdGVtKHRoaXMub3B0aW9ucy50b2tlbk5hbWUhKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmF1dGhlbnRpY2F0ZWRVc2VyID0gdW5kZWZpbmVkO1xyXG4gICAgdGhpcy5hdXRoZW50aWNhdGVkID0gZmFsc2U7XHJcbiAgICB0aGlzLmF1dGhlbnRpY2F0ZWRDaGFuZ2VkLmVtaXQoZmFsc2UpO1xyXG4gIH1cclxuIFxyXG4gIHZhbGlkYXRlVXNlcih0b2tlbjogVXNlcik6IHZvaWQge1xyXG4gICAgdGhpcy5hdXRoZW50aWNhdGVkVXNlciA9IHtcclxuICAgICAgYWRtaW46IGZhbHNlLCAvLyBUaGlzIHR5cGUgb2YgYXV0aGVudGljYXRpb24gaGFzIG5vIGNvbmNlcHQgb2YgQWRtaW5cclxuICAgICAgZGlzcGxheU5hbWU6IHRva2VuLmRpc3BsYXlOYW1lID8/IHRva2VuLm5hbWUsXHJcbiAgICAgIGFjY291bnROYW1lOiB0b2tlbi5zQU1BY2NvdW50TmFtZSxcclxuICAgICAgZGlzdGluZ3Vpc2hlZE5hbWU6IHRva2VuLmRpc3Rpbmd1aXNoZWROYW1lLFxyXG4gICAgICBlbXBsb3llZU51bWJlcjogdG9rZW4uZW1wbG95ZWVOdW1iZXIsXHJcbiAgICAgIG1lbWJlck9mOiB0b2tlbi5tZW1iZXJPZi5qb2luKCcsJylcclxuICAgIH07XHJcblxyXG4gICAgaWYgKHRoaXMub3B0aW9ucy50b2tlbk5hbWUpIHtcclxuICAgICAgdGhpcy5zdG9yYWdlLnNldEl0ZW0odGhpcy5vcHRpb25zLnRva2VuTmFtZSwgSlNPTi5zdHJpbmdpZnkodG9rZW4pKTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgdGhpcy5hdXRoZW50aWNhdGVkID0gdHJ1ZTtcclxuICAgIHRoaXMuYXV0aGVudGljYXRlZENoYW5nZWQuZW1pdCh0aGlzLmF1dGhlbnRpY2F0ZWQpO1xyXG5cclxuICAgIHRoaXMuYXV0aGVudGljYXRpbmcgPSBmYWxzZTtcclxuICAgIHRoaXMuYXV0aGVudGljYXRpbmdDaGFuZ2VkLmVtaXQodGhpcy5hdXRoZW50aWNhdGluZyk7XHJcbiAgfVxyXG5cclxuICBjaGVja0ZvckV4aXN0aW5nVG9rZW4oKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5vcHRpb25zLnRva2VuTmFtZSkge1xyXG4gICAgICBjb25zdCB0b2tlbiA9IHRoaXMuc3RvcmFnZS5nZXRJdGVtKHRoaXMub3B0aW9ucy50b2tlbk5hbWUpO1xyXG5cclxuICAgICAgaWYgKHRva2VuKSB7XHJcbiAgICAgICAgdGhpcy52YWxpZGF0ZVVzZXIoSlNPTi5wYXJzZSh0b2tlbikgYXMgVXNlcik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgLy8jZW5kcmVnaW9uXHJcbn1cclxuICJdfQ==
|
|
@@ -27,6 +27,18 @@ export class EditorComponent extends EditorComponentBase {
|
|
|
27
27
|
this.#dlg = inject(MatDialog);
|
|
28
28
|
this.#activeDirectoryService = inject(ActiveDirectoryService);
|
|
29
29
|
}
|
|
30
|
+
writeValue(obj) {
|
|
31
|
+
throw new Error('Method not implemented.');
|
|
32
|
+
}
|
|
33
|
+
registerOnChange(fn) {
|
|
34
|
+
throw new Error('Method not implemented.');
|
|
35
|
+
}
|
|
36
|
+
registerOnTouched(fn) {
|
|
37
|
+
throw new Error('Method not implemented.');
|
|
38
|
+
}
|
|
39
|
+
setDisabledState(isDisabled) {
|
|
40
|
+
throw new Error('Method not implemented.');
|
|
41
|
+
}
|
|
30
42
|
#dlgRef;
|
|
31
43
|
#dlg;
|
|
32
44
|
#activeDirectoryService;
|
|
@@ -103,7 +115,7 @@ export class EditorComponent extends EditorComponentBase {
|
|
|
103
115
|
else {
|
|
104
116
|
const matches = [];
|
|
105
117
|
this.users().forEach((entry) => {
|
|
106
|
-
if (entry.displayName.toLowerCase().indexOf(searchTerm.toLowerCase()) !== -1 ||
|
|
118
|
+
if ((entry.displayName ?? entry.name).toLowerCase().indexOf(searchTerm.toLowerCase()) !== -1 ||
|
|
107
119
|
entry.sAMAccountName.toLowerCase().indexOf(searchTerm.toLowerCase()) !== -1) {
|
|
108
120
|
matches.push({ value: `${entry.displayName} (${entry.sAMAccountName.toLowerCase()})` });
|
|
109
121
|
}
|
|
@@ -148,4 +160,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImpor
|
|
|
148
160
|
multi: true
|
|
149
161
|
}], template: "@if (users()) {\n <form>\n <quill-editor name=\"editor\"\n [(ngModel)]=\"value\"\n (ngModelChange)=\"updateChanges()\"\n [placeholder]=\"placeholder() ?? ''\"\n [format]=\"format()\"\n [style.height]=\"fullscreen() ? fullscreenHeight() : height()\"\n [style.width]=\"fullscreen() ? fullscreenWidth() : width()\"\n [readOnly]=\"readonly() ?? false\"\n [class.readonly]=\"readonly() && applyReadonlyStyle()\"\n [class.no-toolbar]=\"!showToolbar()\"\n [class.no-border]=\"!showBorder()\"\n [modules]=\"modules\"\n (onBlur)=\"onBlur.emit($event)\"\n (onContentChanged)=\"onContentChanged.emit($event)\"\n (onEditorChanged)=\"onEditorChanged.emit($event)\"\n (onEditorCreated)=\"onEditorCreated.emit()\"\n (onFocus)=\"onFocus.emit($event)\"\n (onSelectionChanged)=\"onSelectionChanged.emit($event)\">\n @if (showToolbar()) {\n <div quill-editor-toolbar>\n <ng-container [ngTemplateOutlet]=\"toolbar\"/>\n <ng-container [ngTemplateOutlet]=\"editorSize\"/>\n </div>\n }\n </quill-editor>\n </form>\n}\n\n<ng-template #toolbar>\n <div>\n <ng-container [ngTemplateOutlet]=\"fontStyle\"/>\n <ng-container [ngTemplateOutlet]=\"blockStyle\"/>\n <ng-container [ngTemplateOutlet]=\"headingStyle\"/>\n <ng-container [ngTemplateOutlet]=\"listStyle\"/>\n <ng-container [ngTemplateOutlet]=\"scriptStyle\"/>\n <ng-container [ngTemplateOutlet]=\"indentStyle\"/>\n <ng-container [ngTemplateOutlet]=\"rtl\"/>\n <ng-container [ngTemplateOutlet]=\"fontSize\"/>\n <ng-container [ngTemplateOutlet]=\"heading\"/>\n <ng-container [ngTemplateOutlet]=\"color\"/>\n <ng-container [ngTemplateOutlet]=\"font\"/>\n <ng-container [ngTemplateOutlet]=\"align\"/>\n <ng-container [ngTemplateOutlet]=\"clean\"/>\n <ng-container [ngTemplateOutlet]=\"formula\"/>\n <ng-container [ngTemplateOutlet]=\"media\"/>\n </div>\n</ng-template>\n\n<ng-template #fontStyle>\n @if (showFontStyle) {\n <span class=\"ql-formats\">\n @if (config()!.buttons!.bold!) {\n <button class=\"ql-bold\" [matTooltip]=\"tooltip(config()!.tooltips!.bold!)\"></button>\n }\n @if (config()!.buttons!.italic!) {\n <button class=\"ql-italic\" [matTooltip]=\"tooltip(config()!.tooltips!.italic!)\"></button>\n }\n @if (config()!.buttons!.underline!) {\n <button class=\"ql-underline\" [matTooltip]=\"tooltip(config()!.tooltips!.underline!)\"></button>\n }\n @if (config()!.buttons!.strike!) {\n <button class=\"ql-strike\" [matTooltip]=\"tooltip(config()!.tooltips!.strike!)\"></button>\n }\n </span>\n }\n</ng-template>\n\n<ng-template #blockStyle>\n @if (showBlockStyle) {\n <span class=\"ql-formats\">\n @if (config()!.buttons!.blockquote!) {\n <button class=\"ql-blockquote\" [matTooltip]=\"tooltip(config()!.tooltips!.blockquote!)\"></button>\n }\n @if (config()!.buttons!.codeblock!) {\n <button class=\"ql-code-block\" [matTooltip]=\"tooltip(config()!.tooltips!.codeblock!)\"></button>\n }\n </span>\n }\n</ng-template>\n\n<ng-template #headingStyle>\n @if (showQuickHeadingStyle) {\n <span class=\"ql-formats\">\n @if (config()!.buttons!.h1!) {\n <button class=\"ql-header\" value=\"1\" [matTooltip]=\"tooltip(config()!.tooltips!.h1!)\"></button>\n }\n @if (config()!.buttons!.h2!) {\n <button class=\"ql-header\" value=\"2\" [matTooltip]=\"tooltip(config()!.tooltips!.h2!)\"></button>\n }\n </span>\n }\n</ng-template>\n\n<ng-template #listStyle>\n @if (showListStyle) {\n <span class=\"ql-formats\">\n @if (config()!.buttons!.ordered!) {\n <button class=\"ql-list\" value=\"ordered\" [matTooltip]=\"tooltip(config()!.tooltips!.ordered!)\"></button>\n }\n @if (config()!.buttons!.bulleted!) {\n <button class=\"ql-list\" value=\"bullet\" [matTooltip]=\"tooltip(config()!.tooltips!.bulleted!)\"></button>\n }\n </span>\n }\n</ng-template>\n\n<ng-template #scriptStyle>\n @if (showScriptStyle) {\n <span class=\"ql-formats\">\n @if (config()!.buttons!.subScript!) {\n <button class=\"ql-script\" value=\"sub\" [matTooltip]=\"tooltip(config()!.tooltips!.subScript!)\"></button>\n }\n @if (config()!.buttons!.superScript!) {\n <button class=\"ql-script\" value=\"super\" [matTooltip]=\"tooltip(config()!.tooltips!.superScript!)\"></button>\n }\n </span>\n }\n</ng-template>\n\n<ng-template #indentStyle>\n @if (showIndentStyle) {\n <span class=\"ql-formats\">\n @if (config()!.buttons!.decreaseIndent!) {\n <button class=\"ql-indent\" value=\"-1\" [matTooltip]=\"tooltip(config()!.tooltips!.decreaseIndent!)\"></button>\n }\n @if (config()!.buttons!.increaseIndent!) {\n <button class=\"ql-indent\" value=\"+1\" [matTooltip]=\"tooltip(config()!.tooltips!.increaseIndent!)\"></button>\n }\n </span>\n }\n</ng-template>\n\n<ng-template #rtl>\n @if (config()!.buttons!.rtl!) {\n <span class=\"ql-formats\">\n <button class=\"ql-direction\" value=\"rtl\" [matTooltip]=\"tooltip(config()!.tooltips!.rtl!)\"></button>\n </span>\n }\n</ng-template>\n\n<ng-template #fontSize>\n @if (config()!.buttons!.fontSize!) {\n <span class=\"ql-formats\" [matTooltip]=\"tooltip(config()!.tooltips!.fontSize!)\">\n <select class=\"ql-size\">\n <option value=\"small\"></option>\n <option selected></option>\n <option value=\"large\"></option>\n <option value=\"huge\"></option>\n </select>\n </span>\n }\n</ng-template>\n\n<ng-template #heading>\n @if (config()!.buttons!.headingStyle!) {\n <span class=\"ql-formats\" [matTooltip]=\"tooltip(config()!.tooltips!.headingStyle!)\">\n <select class=\"ql-header\">\n <option value=\"1\"></option>\n <option value=\"2\"></option>\n <option value=\"3\"></option>\n <option value=\"4\"></option>\n <option value=\"5\"></option>\n <option value=\"6\"></option>\n <option selected=\"selected\"></option>\n </select>\n </span>\n }\n</ng-template>\n\n<ng-template #color>\n @if (config()!.buttons!.color!) {\n <span class=\"ql-formats\" [matTooltip]=\"tooltip(config()!.tooltips!.color!)\">\n <select class=\"ql-color\"></select>\n <select class=\"ql-background\"></select>\n </span>\n }\n</ng-template>\n\n<ng-template #font>\n @if (config()!.buttons!.font!) {\n <span class=\"ql-formats\" [matTooltip]=\"tooltip(config()!.tooltips!.font!)\">\n <select class=\"ql-font\">\n <option selected></option>\n <option value=\"serif\"></option>\n <option value=\"monospace\"></option>\n </select>\n </span>\n }\n</ng-template>\n\n<ng-template #align>\n @if (config()!.buttons!.align!) {\n <span class=\"ql-formats\" [matTooltip]=\"tooltip(config()!.tooltips!.align!)\">\n <select class=\"ql-align\">\n <option selected></option>\n <option value=\"center\"></option>\n <option value=\"right\"></option>\n <option value=\"justify\"></option>\n </select>\n </span>\n }\n</ng-template>\n\n<ng-template #clean>\n @if (config()!.buttons!.clean!) {\n <span class=\"ql-formats\" [matTooltip]=\"tooltip(config()!.tooltips!.clean!)\">\n <button class=\"ql-clean\"></button>\n </span>\n }\n</ng-template>\n\n<ng-template #media>\n @if (showMedia) {\n <span class=\"ql-formats\">\n @if (config()!.buttons!.link!) {\n <button class=\"ql-link\" [matTooltip]=\"tooltip(config()!.tooltips!.link!)\"></button>\n }\n @if (config()!.buttons!.image!) {\n <button class=\"ql-image\" [matTooltip]=\"tooltip(config()!.tooltips!.image!)\"></button>\n }\n @if (config()!.buttons!.video!) {\n <button class=\"ql-video\" [matTooltip]=\"tooltip(config()!.tooltips!.video!)\"></button>\n }\n </span>\n }\n</ng-template>\n\n<ng-template #editorSize>\n <div>\n @if (config()!.buttons!.rawEditor!) {\n <span class=\"ql-formats\">\n <button id=\"rawdog\"\n [matTooltip]=\"tooltip(config()!.tooltips!.rawEditor!)\">\n <mat-icon (click)=\"rawEdit()\">\n code\n </mat-icon>\n </button>\n </span>\n }\n\n @if (config()!.buttons!.editorSize!) {\n <span class=\"ql-formats\">\n <button id=\"fullscreen\"\n [matTooltip]=\"tooltip(fullscreen() ?\n (fullscreenMode() === 'expand' ? config()!.tooltips!.minimize! : config()!.tooltips!.popin!) :\n (fullscreenMode() === 'expand' ? config()!.tooltips!.maximize! : config()!.tooltips!.popout!))\">\n <mat-icon (click)=\"toggleFullscreen()\">\n {{ fullscreen() ?\n (fullscreenMode() === 'expand' ? config()!.icons!.minimize! : config()!.icons!.popin!) :\n (fullscreenMode() === 'expand' ? config()!.icons!.maximize! : config()!.icons!.popout!)\n }}\n </mat-icon>\n </button>\n </span>\n }\n </div>\n</ng-template>\n\n<ng-template #formula>\n @if (config()!.buttons!.formula!) {\n <span class=\"ql-formats\" [matTooltip]=\"tooltip(config()!.tooltips!.formula!)\">\n <button class=\"ql-formula\"></button>\n </span>\n }\n</ng-template>", styles: [".ql-toolbar{display:grid;grid-template-columns:1fr auto}mat-icon{color:#ff4500}quill-editor.readonly .ql-toolbar{opacity:.5}::ng-deep quill-editor.no-toolbar .ql-toolbar{height:0;padding:0;visibility:hidden}::ng-deep quill-editor.no-border .ql-container{border:none}::ng-deep quill-editor.readonly .ql-container{background-color:#f5f5f5!important}\n"] }]
|
|
150
162
|
}] });
|
|
151
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsZWF2ZWxhbmRwcmljZS9uZ3gtbGliL3F1aWxsL21lbnRpb24vc3JjL2NvbXBvbmVudHMvZWRpdG9yL2VkaXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGVhdmVsYW5kcHJpY2Uvbmd4LWxpYi9xdWlsbC9tZW50aW9uL3NyYy9jb21wb25lbnRzL2VkaXRvci9lZGl0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RSxPQUFPLEVBQXdCLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RGLDZDQUE2QztBQUM3QyxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxzQkFBc0IsRUFBUSxNQUFNLDJDQUEyQyxDQUFDO0FBRXpGLE9BQU8sZUFBZSxDQUFDO0FBRXZCLHdDQUF3QztBQUN4Qyw0QkFBNEI7QUFFNUIscUZBQXFGO0FBQ3JGLHNEQUFzRDtBQUN0RCxxREFBcUQ7QUFFckQsK0dBQStHO0FBQy9HLHNEQUFzRDtBQUV0RCxZQUFZO0FBRVosT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxJQUFJLG1CQUFtQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1B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UUFBUSxDQUFDLEdBQUcsSUFBSSxDQUFDO1FBQzNCLENBQUM7UUFFRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDOzhHQXZIVSxlQUFlO2tHQUFmLGVBQWUsaVBBTmYsQ0FBQztnQkFDVixPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGVBQWUsQ0FBQztnQkFDOUMsS0FBSyxFQUFFLElBQUk7YUFDWixDQUFDLGlEQzNDSixnc1NBMFFjLHNaRHpPVixXQUFXLHErQkFDWCxPQUFPLDJJQUNQLFVBQVUsaVJBQ1YsZ0JBQWdCLG9KQUNoQixvQkFBb0I7OzJGQVFYLGVBQWU7a0JBbEIzQixTQUFTOytCQUNFLDZCQUE2QixjQUczQixJQUFJLFdBQ1A7d0JBQ1AsV0FBVzt3QkFDWCxPQUFPO3dCQUNQLFVBQVU7d0JBQ1YsZ0JBQWdCO3dCQUNoQixvQkFBb0I7cUJBQ3JCLGFBQ1UsQ0FBQzs0QkFDVixPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxnQkFBZ0IsQ0FBQzs0QkFDOUMsS0FBSyxFQUFFLElBQUk7eUJBQ1osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBmb3J3YXJkUmVmLCBpbmplY3QsIG1vZGVsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgRm9ybXNNb2R1bGUsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG4vL2ltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdERpYWxvZywgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IEFjdGl2ZURpcmVjdG9yeVNlcnZpY2UsIFVzZXIgfSBmcm9tICdAY2xlYXZlbGFuZHByaWNlL25neC1saWIvYWN0aXZlLWRpcmVjdG9yeSc7XG5cbmltcG9ydCAncXVpbGwtbWVudGlvbic7XG5cbi8vI3JlZ2lvbiBNb3ZlZCB0byBjbGllbnQgcmVzcG9uc2liaWxpdHlcbi8vaW1wb3J0IFF1aWxsIGZyb20gJ3F1aWxsJztcblxuLy8gVGhpcyBkb2Vzbid0IHdvcmsgd2hlbiBkb25lIGZyb20gdGhlIGxpYnJhcnkgLSBpdCBtdXN0IGJlIGRvbmUgZnJvbSB0aGUgY2xpZW50IGFwcFxuLy9pbXBvcnQgSW1hZ2VSZXNpemUgZnJvbSAncXVpbGwtaW1hZ2UtcmVzaXplLW1vZHVsZSc7XG4vL1F1aWxsLnJlZ2lzdGVyKCdtb2R1bGVzL2ltYWdlUmVzaXplJywgSW1hZ2VSZXNpemUpO1xuXG4vLyBUcmVhdGluZyBJbWFnZURyb3AgdGhlIHNhbWUgd2F5IGFzIEltYWdlUmVzaXplLCBldmVuIHRob3VnaCBpdCBkb2Vzbid0IGhhdmUgdGhlIHNhbWUgcHJvYmxlbSBkZXNjcmliZWQgYWJvdmVcbi8vaW1wb3J0IHsgSW1hZ2VEcm9wIH0gZnJvbSAncXVpbGwtaW1hZ2UtZHJvcC1tb2R1bGUnO1xuXG4vLyNlbmRyZWdpb25cblxuaW1wb3J0IHsgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBNYXRJY29uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBNYXRUb29sdGlwIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XG5pbXBvcnQgeyBFZGl0b3JDb21wb25lbnQgYXMgRWRpdG9yQ29tcG9uZW50QmFzZSB9IGZyb20gJ0BjbGVhdmVsYW5kcHJpY2Uvbmd4LWxpYi9xdWlsbCc7XG5pbXBvcnQgeyBRdWlsbEVkaXRvckNvbXBvbmVudCB9IGZyb20gJ25neC1xdWlsbCc7XG5pbXBvcnQgeyBEaWFsb2dEYXRhIH0gZnJvbSAnLi4vLi4vbW9kZWwvZGlhbG9nLWRhdGEnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjcHF1aWxsLWVkaXRvci13aXRoLW1lbnRpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vZWRpdG9yLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2VkaXRvci5jb21wb25lbnQuc2NzcycsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBNYXRJY29uLFxuICAgIE1hdFRvb2x0aXAsXG4gICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgICBRdWlsbEVkaXRvckNvbXBvbmVudCxcbiAgXSxcbiAgcHJvdmlkZXJzOiBbe1xuICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEVkaXRvckNvbXBvbmVudCksXG4gICAgbXVsdGk6IHRydWVcbiAgfV1cbn0pXG5leHBvcnQgY2xhc3MgRWRpdG9yQ29tcG9uZW50IGV4dGVuZHMgRWRpdG9yQ29tcG9uZW50QmFzZSBpbXBsZW1lbnRzIE9uSW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICB1c2VycyA9IG1vZGVsPFVzZXJbXT4oKTtcblxuICAjZGxnUmVmID0gaW5qZWN0KE1hdERpYWxvZ1JlZjxFZGl0b3JDb21wb25lbnQ+LCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuICAjZGxnID0gaW5qZWN0KE1hdERpYWxvZyk7XG4gICNhY3RpdmVEaXJlY3RvcnlTZXJ2aWNlID0gaW5qZWN0KEFjdGl2ZURpcmVjdG9yeVNlcnZpY2UpO1xuICBcbiAgb3ZlcnJpZGUgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pbml0aWFsaXplKCk7XG4gICAgXG4gICAgaWYgKCF0aGlzLnVzZXJzKCkpIHtcbiAgICAgIHRoaXMuI2FjdGl2ZURpcmVjdG9yeVNlcnZpY2UuZ2V0VXNlcnMoKS5zdWJzY3JpYmUodXNlcnMgPT5cbiAgICAgICAgdGhpcy51c2Vycy5zZXQodXNlcnMpXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIG92ZXJyaWRlIHRvZ2dsZUZ1bGxzY3JlZW4oKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZnVsbHNjcmVlbk1vZGUoKSA9PT0gJ2V4cGFuZCcpIHtcbiAgICAgICAgdGhpcy5mdWxsc2NyZWVuLnNldCghdGhpcy5mdWxsc2NyZWVuKCkpO1xuICAgICAgICB0aGlzLmZ1bGxzY3JlZW5DaGFuZ2VkLmVtaXQodGhpcy5mdWxsc2NyZWVuKCkhKTtcbiAgICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIGlmICh0aGlzLmZ1bGxzY3JlZW4oKSkge1xuICAgICAgICB0aGlzLiNkbGdSZWY/LmNsb3NlKHRoaXMudmFsdWUpO1xuICAgICAgICAgIHRoaXMuZnVsbHNjcmVlbkNoYW5nZWQuZW1pdChmYWxzZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBkYXRhOiBEaWFsb2dEYXRhID0ge1xuXG4gICAgICAgICAgdmFsdWU6IHRoaXMudmFsdWUsXG4gICAgICAgICAgY29uZmlnOiB0aGlzLmNvbmZpZygpLFxuICAgICAgICAgIHBsYWNlaG9sZGVyOiB0aGlzLnBsYWNlaG9sZGVyKCksXG4gICAgICAgICAgZm9ybWF0OiB0aGlzLmZvcm1hdCgpISxcbiAgICAgICAgICBoZWlnaHQ6IHRoaXMuZnVsbHNjcmVlbkhlaWdodCgpISxcbiAgICAgICAgICB3aWR0aDogJzEwMCUnLFxuICAgICAgICAgIG1heEhlaWdodDogdGhpcy5mdWxsc2NyZWVuSGVpZ2h0KCkhLFxuICAgICAgICAgIG1heFdpZHRoOiAnMTAwJScsXG4gICAgICAgICAgZW5hYmxlVG9vbHRpcHM6IHRoaXMuZW5hYmxlVG9vbHRpcHMoKSEsXG4gICAgICAgICAgZnVsbHNjcmVlbjogdHJ1ZSxcbiAgICAgICAgICBmdWxsc2NyZWVuTW9kZTogdGhpcy5mdWxsc2NyZWVuTW9kZSgpISxcbiAgICAgICAgICByZWFkb25seTogdGhpcy5yZWFkb25seSgpISxcbiAgICAgICAgICBhcHBseVJlYWRvbmx5U3R5bGU6IHRoaXMuYXBwbHlSZWFkb25seVN0eWxlKCkhLFxuICAgICAgICAgIHNob3dUb29sYmFyOiB0aGlzLnNob3dUb29sYmFyKCkhLFxuICAgICAgICAgIHNob3dCb3JkZXI6IHRoaXMuc2hvd0JvcmRlcigpISxcbiAgICAgICAgICBpbWFnZVJlc2l6ZU1vZHVsZTogdGhpcy5pbWFnZVJlc2l6ZU1vZHVsZSgpISxcbiAgICAgICAgICBpbWFnZURyb3BNb2R1bGU6IHRoaXMuaW1hZ2VEcm9wTW9kdWxlKCkhLFxuICAgICAgICAgIHN5bnRheE1vZHVsZTogdGhpcy5zeW50YXhNb2R1bGUoKSEsXG4gICAgICAgICAgdXNlcnM6IHRoaXMudXNlcnMoKVxuICAgICAgICB9O1xuXG4gICAgICAgIHRoaXMuI2RsZy5vcGVuKEVkaXRvckNvbXBvbmVudCwge1xuICAgICAgICAgIGRpc2FibGVDbG9zZTogdHJ1ZSxcbiAgICAgICAgICB3aWR0aDogdGhpcy5mdWxsc2NyZWVuV2lkdGgoKSxcbiAgICAgICAgICBoZWlnaHQ6IHRoaXMuZnVsbHNjcmVlbkhlaWdodCgpLFxuICAgICAgICAgIGRhdGFcbiAgICAgICAgfSlcbiAgICAgICAgLmFmdGVyQ2xvc2VkKClcbiAgICAgICAgLnN1YnNjcmliZSh2YWx1ZSA9PiB7XG4gICAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgICAgICAgIHRoaXMudXBkYXRlQ2hhbmdlcygpO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmZ1bGxzY3JlZW5DaGFuZ2VkLmVtaXQodHJ1ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgb3ZlcnJpZGUgZ2V0IG1vZHVsZXMoKSB7XG4gICAgaWYgKCF0aGlzLnVzZXJzKCkpIHsgcmV0dXJuIHt9OyB9XG5cbiAgICBjb25zdCBtb2R1bGVzID0ge1xuICAgICAgbWVudGlvbjoge1xuICAgICAgICBhbGxvd2VkQ2hhcnM6IC9eW0EtWmEtelxcc8OFw4TDlsOlw6TDtl0qJC8sXG5cbiAgICAgICAgb25TZWxlY3Q6IChpdGVtOiBET01TdHJpbmdNYXAsIGluc2VydEl0ZW06IGFueSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGVkaXRvciA9IHRoaXMuZWRpdG9yKCkhLnF1aWxsRWRpdG9yXG4gICAgICAgICAgaW5zZXJ0SXRlbShpdGVtKVxuICAgICAgICAgIC8vIG5lY2Vzc2FyeSBiZWNhdXNlIHF1aWxsLW1lbnRpb24gdHJpZ2dlcnMgY2hhbmdlcyBhcyAnYXBpJyBpbnN0ZWFkIG9mICd1c2VyJ1xuICAgICAgICAgIGVkaXRvci5pbnNlcnRUZXh0KGVkaXRvci5nZXRMZW5ndGgoKSAtIDEsICcnLCAndXNlcicpXG4gICAgICAgIH0sXG5cbiAgICAgICAgc291cmNlOiAoc2VhcmNoVGVybTogc3RyaW5nLCByZW5kZXJMaXN0OiBhbnkpID0+IHtcbiAgICAgICAgICBpZiAoc2VhcmNoVGVybS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJlbmRlckxpc3QodGhpcy51c2VycygpPy5tYXAodSA9PiAoeyB2YWx1ZTogYCR7dS5kaXNwbGF5TmFtZX0gKCR7dS5zQU1BY2NvdW50TmFtZS50b0xvd2VyQ2FzZSgpfSlgIH0pKSwgc2VhcmNoVGVybSlcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgbWF0Y2hlczogYW55W10gPSBbXVxuXG4gICAgICAgICAgICB0aGlzLnVzZXJzKCkhLmZvckVhY2goKGVudHJ5KSA9PiB7XG4gICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICBlbnRyeS5kaXNwbGF5TmFtZS50b0xvd2VyQ2FzZSgpLmluZGV4T2Yoc2VhcmNoVGVybS50b0xvd2VyQ2FzZSgpKSAhPT0gLTEgfHxcbiAgICAgICAgICAgICAgICBlbnRyeS5zQU1BY2NvdW50TmFtZS50b0xvd2VyQ2FzZSgpLmluZGV4T2Yoc2VhcmNoVGVybS50b0xvd2VyQ2FzZSgpKSAhPT0gLTFcbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICBtYXRjaGVzLnB1c2goeyB2YWx1ZTogYCR7ZW50cnkuZGlzcGxheU5hbWV9ICgke2VudHJ5LnNBTUFjY291bnROYW1lLnRvTG93ZXJDYXNlKCl9KWAgfSlcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcblxuICAgICAgICAgICAgcmVuZGVyTGlzdChtYXRjaGVzLCBzZWFyY2hUZXJtKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG5cbiAgICBpZiAoIXRoaXMuc2hvd1Rvb2xiYXIoKSkge1xuICAgICAgbW9kdWxlc1sndG9vbGJhciddID0gW107XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaW1hZ2VSZXNpemVNb2R1bGUoKSkge1xuICAgICAgbW9kdWxlc1snaW1hZ2VSZXNpemUnXSA9IHt9O1xuICAgIH1cblxuICAgIGlmICh0aGlzLmltYWdlRHJvcE1vZHVsZSgpKSB7XG4gICAgICBtb2R1bGVzWydpbWFnZURyb3AnXSA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc3ludGF4TW9kdWxlKCkpIHtcbiAgICAgIG1vZHVsZXNbJ3N5bnRheCddID0gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gbW9kdWxlcztcbiAgfVxufSIsIkBpZiAodXNlcnMoKSkge1xuICA8Zm9ybT5cbiAgICA8cXVpbGwtZWRpdG9yIG5hbWU9XCJlZGl0b3JcIlxuICAgICAgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiXG4gICAgICAobmdNb2RlbENoYW5nZSk9XCJ1cGRhdGVDaGFuZ2VzKClcIlxuICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyKCkgPz8gJydcIlxuICAgICAgW2Zvcm1hdF09XCJmb3JtYXQoKVwiXG4gICAgICBbc3R5bGUuaGVpZ2h0XT1cImZ1bGxzY3JlZW4oKSA/IGZ1bGxzY3JlZW5IZWlnaHQoKSA6IGhlaWdodCgpXCJcbiAgICAgIFtzdHlsZS53aWR0aF09XCJmdWxsc2NyZWVuKCkgPyBmdWxsc2NyZWVuV2lkdGgoKSA6IHdpZHRoKClcIlxuICAgICAgW3JlYWRPbmx5XT1cInJlYWRvbmx5KCkgPz8gZmFsc2VcIlxuICAgICAgW2NsYXNzLnJlYWRvbmx5XT1cInJlYWRvbmx5KCkgJiYgYXBwbHlSZWFkb25seVN0eWxlKClcIlxuICAgICAgW2NsYXNzLm5vLXRvb2xiYXJdPVwiIXNob3dUb29sYmFyKClcIlxuICAgICAgW2NsYXNzLm5vLWJvcmRlcl09XCIhc2hvd0JvcmRlcigpXCJcbiAgICAgIFttb2R1bGVzXT1cIm1vZHVsZXNcIlxuICAgICAgKG9uQmx1cik9XCJvbkJsdXIuZW1pdCgkZXZlbnQpXCJcbiAgICAgIChvbkNvbnRlbnRDaGFuZ2VkKT1cIm9uQ29udGVudENoYW5nZWQuZW1pdCgkZXZlbnQpXCJcbiAgICAgIChvbkVkaXRvckNoYW5nZWQpPVwib25FZGl0b3JDaGFuZ2VkLmVtaXQoJGV2ZW50KVwiXG4gICAgICAob25FZGl0b3JDcmVhdGVkKT1cIm9uRWRpdG9yQ3JlYXRlZC5lbWl0KClcIlxuICAgICAgKG9uRm9jdXMpPVwib25Gb2N1cy5lbWl0KCRldmVudClcIlxuICAgICAgKG9uU2VsZWN0aW9uQ2hhbmdlZCk9XCJvblNlbGVjdGlvbkNoYW5nZWQuZW1pdCgkZXZlbnQpXCI+XG4gICAgICBAaWYgKHNob3dUb29sYmFyKCkpIHtcbiAgICAgICAgPGRpdiBxdWlsbC1lZGl0b3ItdG9vbGJhcj5cbiAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRvb2xiYXJcIi8+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJlZGl0b3JTaXplXCIvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICA8L3F1aWxsLWVkaXRvcj5cbiAgPC9mb3JtPlxufVxuXG48bmctdGVtcGxhdGUgI3Rvb2xiYXI+XG4gIDxkaXY+XG4gICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJmb250U3R5bGVcIi8+XG4gICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJibG9ja1N0eWxlXCIvPlxuICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiaGVhZGluZ1N0eWxlXCIvPlxuICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwibGlzdFN0eWxlXCIvPlxuICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwic2NyaXB0U3R5bGVcIi8+XG4gICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJpbmRlbnRTdHlsZVwiLz5cbiAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInJ0bFwiLz5cbiAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImZvbnRTaXplXCIvPlxuICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiaGVhZGluZ1wiLz5cbiAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImNvbG9yXCIvPlxuICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiZm9udFwiLz5cbiAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImFsaWduXCIvPlxuICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiY2xlYW5cIi8+XG4gICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJmb3JtdWxhXCIvPlxuICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwibWVkaWFcIi8+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNmb250U3R5bGU+XG4gIEBpZiAoc2hvd0ZvbnRTdHlsZSkge1xuICAgIDxzcGFuIGNsYXNzPVwicWwtZm9ybWF0c1wiPlxuICAgICAgQGlmIChjb25maWcoKSEuYnV0dG9ucyEuYm9sZCEpIHtcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInFsLWJvbGRcIiAgICAgICAgICAgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWcoKSEudG9vbHRpcHMhLmJvbGQhKVwiPjwvYnV0dG9uPlxuICAgICAgfVxuICAgICAgQGlmIChjb25maWcoKSEuYnV0dG9ucyEuaXRhbGljISkge1xuICAgICAgICA8YnV0dG9uIGNsYXNzPVwicWwtaXRhbGljXCIgICAgICAgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWcoKSEudG9vbHRpcHMhLml0YWxpYyEpXCI+PC9idXR0b24+XG4gICAgICB9XG4gICAgICBAaWYgKGNvbmZpZygpIS5idXR0b25zIS51bmRlcmxpbmUhKSB7XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJxbC11bmRlcmxpbmVcIiBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZygpIS50b29sdGlwcyEudW5kZXJsaW5lISlcIj48L2J1dHRvbj5cbiAgICAgIH1cbiAgICAgIEBpZiAoY29uZmlnKCkhLmJ1dHRvbnMhLnN0cmlrZSEpIHtcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInFsLXN0cmlrZVwiICAgICAgIFttYXRUb29sdGlwXT1cInRvb2x0aXAoY29uZmlnKCkhLnRvb2x0aXBzIS5zdHJpa2UhKVwiPjwvYnV0dG9uPlxuICAgICAgfVxuICAgIDwvc3Bhbj5cbiAgfVxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNibG9ja1N0eWxlPlxuICBAaWYgKHNob3dCbG9ja1N0eWxlKSB7XG4gICAgPHNwYW4gY2xhc3M9XCJxbC1mb3JtYXRzXCI+XG4gICAgICBAaWYgKGNvbmZpZygpIS5idXR0b25zIS5ibG9ja3F1b3RlISkge1xuICAgICAgICA8YnV0dG9uIGNsYXNzPVwicWwtYmxvY2txdW90ZVwiIFttYXRUb29sdGlwXT1cInRvb2x0aXAoY29uZmlnKCkhLnRvb2x0aXBzIS5ibG9ja3F1b3RlISlcIj48L2J1dHRvbj5cbiAgICAgIH1cbiAgICAgIEBpZiAoY29uZmlnKCkhLmJ1dHRvbnMhLmNvZGVibG9jayEpIHtcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInFsLWNvZGUtYmxvY2tcIiAgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWcoKSEudG9vbHRpcHMhLmNvZGVibG9jayEpXCI+PC9idXR0b24+XG4gICAgICB9XG4gICAgPC9zcGFuPlxuICB9XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2hlYWRpbmdTdHlsZT5cbiAgQGlmIChzaG93UXVpY2tIZWFkaW5nU3R5bGUpIHtcbiAgICA8c3BhbiBjbGFzcz1cInFsLWZvcm1hdHNcIj5cbiAgICAgIEBpZiAoY29uZmlnKCkhLmJ1dHRvbnMhLmgxISkge1xuICAgICAgICA8YnV0dG9uIGNsYXNzPVwicWwtaGVhZGVyXCIgdmFsdWU9XCIxXCIgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWcoKSEudG9vbHRpcHMhLmgxISlcIj48L2J1dHRvbj5cbiAgICAgIH1cbiAgICAgIEBpZiAoY29uZmlnKCkhLmJ1dHRvbnMhLmgyISkge1xuICAgICAgICA8YnV0dG9uIGNsYXNzPVwicWwtaGVhZGVyXCIgdmFsdWU9XCIyXCIgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWcoKSEudG9vbHRpcHMhLmgyISlcIj48L2J1dHRvbj5cbiAgICAgIH1cbiAgICA8L3NwYW4+XG4gIH1cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjbGlzdFN0eWxlPlxuICBAaWYgKHNob3dMaXN0U3R5bGUpIHtcbiAgICA8c3BhbiBjbGFzcz1cInFsLWZvcm1hdHNcIj5cbiAgICAgIEBpZiAoY29uZmlnKCkhLmJ1dHRvbnMhLm9yZGVyZWQhKSB7XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJxbC1saXN0XCIgdmFsdWU9XCJvcmRlcmVkXCIgIFttYXRUb29sdGlwXT1cInRvb2x0aXAoY29uZmlnKCkhLnRvb2x0aXBzIS5vcmRlcmVkISlcIj48L2J1dHRvbj5cbiAgICAgIH1cbiAgICAgIEBpZiAoY29uZmlnKCkhLmJ1dHRvbnMhLmJ1bGxldGVkISkge1xuICAgICAgICA8YnV0dG9uIGNsYXNzPVwicWwtbGlzdFwiIHZhbHVlPVwiYnVsbGV0XCIgIFttYXRUb29sdGlwXT1cInRvb2x0aXAoY29uZmlnKCkhLnRvb2x0aXBzIS5idWxsZXRlZCEpXCI+PC9idXR0b24+XG4gICAgICB9XG4gICAgPC9zcGFuPlxuICB9XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3NjcmlwdFN0eWxlPlxuICBAaWYgKHNob3dTY3JpcHRTdHlsZSkge1xuICAgIDxzcGFuIGNsYXNzPVwicWwtZm9ybWF0c1wiPlxuICAgICAgQGlmIChjb25maWcoKSEuYnV0dG9ucyEuc3ViU2NyaXB0ISkge1xuICAgICAgICA8YnV0dG9uIGNsYXNzPVwicWwtc2NyaXB0XCIgdmFsdWU9XCJzdWJcIiAgIFttYXRUb29sdGlwXT1cInRvb2x0aXAoY29uZmlnKCkhLnRvb2x0aXBzIS5zdWJTY3JpcHQhKVwiPjwvYnV0dG9uPlxuICAgICAgfVxuICAgICAgQGlmIChjb25maWcoKSEuYnV0dG9ucyEuc3VwZXJTY3JpcHQhKSB7XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJxbC1zY3JpcHRcIiB2YWx1ZT1cInN1cGVyXCIgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWcoKSEudG9vbHRpcHMhLnN1cGVyU2NyaXB0ISlcIj48L2J1dHRvbj5cbiAgICAgIH1cbiAgICA8L3NwYW4+XG4gIH1cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjaW5kZW50U3R5bGU+XG4gIEBpZiAoc2hvd0luZGVudFN0eWxlKSB7XG4gICAgPHNwYW4gY2xhc3M9XCJxbC1mb3JtYXRzXCI+XG4gICAgICBAaWYgKGNvbmZpZygpIS5idXR0b25zIS5kZWNyZWFzZUluZGVudCEpIHtcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInFsLWluZGVudFwiIHZhbHVlPVwiLTFcIiBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZygpIS50b29sdGlwcyEuZGVjcmVhc2VJbmRlbnQhKVwiPjwvYnV0dG9uPlxuICAgICAgfVxuICAgICAgQGlmIChjb25maWcoKSEuYnV0dG9ucyEuaW5jcmVhc2VJbmRlbnQhKSB7XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJxbC1pbmRlbnRcIiB2YWx1ZT1cIisxXCIgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWcoKSEudG9vbHRpcHMhLmluY3JlYXNlSW5kZW50ISlcIj48L2J1dHRvbj5cbiAgICAgIH1cbiAgICA8L3NwYW4+XG4gIH1cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjcnRsPlxuICBAaWYgKGNvbmZpZygpIS5idXR0b25zIS5ydGwhKSB7XG4gICAgPHNwYW4gY2xhc3M9XCJxbC1mb3JtYXRzXCI+XG4gICAgICA8YnV0dG9uIGNsYXNzPVwicWwtZGlyZWN0aW9uXCIgdmFsdWU9XCJydGxcIiBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZygpIS50b29sdGlwcyEucnRsISlcIj48L2J1dHRvbj5cbiAgICA8L3NwYW4+XG4gIH1cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZm9udFNpemU+XG4gIEBpZiAoY29uZmlnKCkhLmJ1dHRvbnMhLmZvbnRTaXplISkge1xuICAgIDxzcGFuIGNsYXNzPVwicWwtZm9ybWF0c1wiIFttYXRUb29sdGlwXT1cInRvb2x0aXAoY29uZmlnKCkhLnRvb2x0aXBzIS5mb250U2l6ZSEpXCI+XG4gICAgICA8c2VsZWN0IGNsYXNzPVwicWwtc2l6ZVwiPlxuICAgICAgICA8b3B0aW9uIHZhbHVlPVwic21hbGxcIj48L29wdGlvbj5cbiAgICAgICAgPG9wdGlvbiBzZWxlY3RlZD48L29wdGlvbj5cbiAgICAgICAgPG9wdGlvbiB2YWx1ZT1cImxhcmdlXCI+PC9vcHRpb24+XG4gICAgICAgIDxvcHRpb24gdmFsdWU9XCJodWdlXCI+PC9vcHRpb24+XG4gICAgICA8L3NlbGVjdD5cbiAgICA8L3NwYW4+XG4gIH1cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjaGVhZGluZz5cbiAgQGlmIChjb25maWcoKSEuYnV0dG9ucyEuaGVhZGluZ1N0eWxlISkge1xuICAgIDxzcGFuIGNsYXNzPVwicWwtZm9ybWF0c1wiIFttYXRUb29sdGlwXT1cInRvb2x0aXAoY29uZmlnKCkhLnRvb2x0aXBzIS5oZWFkaW5nU3R5bGUhKVwiPlxuICAgICAgPHNlbGVjdCBjbGFzcz1cInFsLWhlYWRlclwiPlxuICAgICAgICA8b3B0aW9uIHZhbHVlPVwiMVwiPjwvb3B0aW9uPlxuICAgICAgICA8b3B0aW9uIHZhbHVlPVwiMlwiPjwvb3B0aW9uPlxuICAgICAgICA8b3B0aW9uIHZhbHVlPVwiM1wiPjwvb3B0aW9uPlxuICAgICAgICA8b3B0aW9uIHZhbHVlPVwiNFwiPjwvb3B0aW9uPlxuICAgICAgICA8b3B0aW9uIHZhbHVlPVwiNVwiPjwvb3B0aW9uPlxuICAgICAgICA8b3B0aW9uIHZhbHVlPVwiNlwiPjwvb3B0aW9uPlxuICAgICAgICA8b3B0aW9uIHNlbGVjdGVkPVwic2VsZWN0ZWRcIj48L29wdGlvbj5cbiAgICAgIDwvc2VsZWN0PlxuICAgIDwvc3Bhbj5cbiAgfVxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNjb2xvcj5cbiAgQGlmIChjb25maWcoKSEuYnV0dG9ucyEuY29sb3IhKSB7XG4gICAgPHNwYW4gY2xhc3M9XCJxbC1mb3JtYXRzXCIgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWcoKSEudG9vbHRpcHMhLmNvbG9yISlcIj5cbiAgICAgIDxzZWxlY3QgY2xhc3M9XCJxbC1jb2xvclwiPjwvc2VsZWN0PlxuICAgICAgPHNlbGVjdCBjbGFzcz1cInFsLWJhY2tncm91bmRcIj48L3NlbGVjdD5cbiAgICA8L3NwYW4+XG4gIH1cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZm9udD5cbiAgQGlmIChjb25maWcoKSEuYnV0dG9ucyEuZm9udCEpIHtcbiAgICA8c3BhbiBjbGFzcz1cInFsLWZvcm1hdHNcIiBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZygpIS50b29sdGlwcyEuZm9udCEpXCI+XG4gICAgICA8c2VsZWN0IGNsYXNzPVwicWwtZm9udFwiPlxuICAgICAgICA8b3B0aW9uIHNlbGVjdGVkPjwvb3B0aW9uPlxuICAgICAgICA8b3B0aW9uIHZhbHVlPVwic2VyaWZcIj48L29wdGlvbj5cbiAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIm1vbm9zcGFjZVwiPjwvb3B0aW9uPlxuICAgICAgPC9zZWxlY3Q+XG4gICAgPC9zcGFuPlxuICB9XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2FsaWduPlxuICBAaWYgKGNvbmZpZygpIS5idXR0b25zIS5hbGlnbiEpIHtcbiAgICA8c3BhbiBjbGFzcz1cInFsLWZvcm1hdHNcIiBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZygpIS50b29sdGlwcyEuYWxpZ24hKVwiPlxuICAgICAgPHNlbGVjdCBjbGFzcz1cInFsLWFsaWduXCI+XG4gICAgICAgIDxvcHRpb24gc2VsZWN0ZWQ+PC9vcHRpb24+XG4gICAgICAgIDxvcHRpb24gdmFsdWU9XCJjZW50ZXJcIj48L29wdGlvbj5cbiAgICAgICAgPG9wdGlvbiB2YWx1ZT1cInJpZ2h0XCI+PC9vcHRpb24+XG4gICAgICAgIDxvcHRpb24gdmFsdWU9XCJqdXN0aWZ5XCI+PC9vcHRpb24+XG4gICAgICA8L3NlbGVjdD5cbiAgICA8L3NwYW4+XG4gIH1cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjY2xlYW4+XG4gIEBpZiAoY29uZmlnKCkhLmJ1dHRvbnMhLmNsZWFuISkge1xuICAgIDxzcGFuIGNsYXNzPVwicWwtZm9ybWF0c1wiIFttYXRUb29sdGlwXT1cInRvb2x0aXAoY29uZmlnKCkhLnRvb2x0aXBzIS5jbGVhbiEpXCI+XG4gICAgICA8YnV0dG9uIGNsYXNzPVwicWwtY2xlYW5cIj48L2J1dHRvbj5cbiAgICA8L3NwYW4+XG4gIH1cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjbWVkaWE+XG4gIEBpZiAoc2hvd01lZGlhKSB7XG4gICAgPHNwYW4gY2xhc3M9XCJxbC1mb3JtYXRzXCI+XG4gICAgICBAaWYgKGNvbmZpZygpIS5idXR0b25zIS5saW5rISkge1xuICAgICAgICA8YnV0dG9uIGNsYXNzPVwicWwtbGlua1wiICBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZygpIS50b29sdGlwcyEubGluayEpXCI+PC9idXR0b24+XG4gICAgICB9XG4gICAgICBAaWYgKGNvbmZpZygpIS5idXR0b25zIS5pbWFnZSEpIHtcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInFsLWltYWdlXCIgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWcoKSEudG9vbHRpcHMhLmltYWdlISlcIj48L2J1dHRvbj5cbiAgICAgIH1cbiAgICAgIEBpZiAoY29uZmlnKCkhLmJ1dHRvbnMhLnZpZGVvISkge1xuICAgICAgICA8YnV0dG9uIGNsYXNzPVwicWwtdmlkZW9cIiBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZygpIS50b29sdGlwcyEudmlkZW8hKVwiPjwvYnV0dG9uPlxuICAgICAgfVxuICAgIDwvc3Bhbj5cbiAgfVxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNlZGl0b3JTaXplPlxuICA8ZGl2PlxuICAgIEBpZiAoY29uZmlnKCkhLmJ1dHRvbnMhLnJhd0VkaXRvciEpIHtcbiAgICAgIDxzcGFuIGNsYXNzPVwicWwtZm9ybWF0c1wiPlxuICAgICAgICA8YnV0dG9uIGlkPVwicmF3ZG9nXCJcbiAgICAgICAgICBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZygpIS50b29sdGlwcyEucmF3RWRpdG9yISlcIj5cbiAgICAgICAgICA8bWF0LWljb24gKGNsaWNrKT1cInJhd0VkaXQoKVwiPlxuICAgICAgICAgICAgY29kZVxuICAgICAgICAgIDwvbWF0LWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9zcGFuPlxuICAgIH1cblxuICAgIEBpZiAoY29uZmlnKCkhLmJ1dHRvbnMhLmVkaXRvclNpemUhKSB7XG4gICAgICA8c3BhbiBjbGFzcz1cInFsLWZvcm1hdHNcIj5cbiAgICAgICAgPGJ1dHRvbiBpZD1cImZ1bGxzY3JlZW5cIlxuICAgICAgICAgICAgICAgIFttYXRUb29sdGlwXT1cInRvb2x0aXAoZnVsbHNjcmVlbigpID9cbiAgICAgICAgICAgICAgICAgICAgKGZ1bGxzY3JlZW5Nb2RlKCkgPT09ICdleHBhbmQnID8gY29uZmlnKCkhLnRvb2x0aXBzIS5taW5pbWl6ZSEgOiBjb25maWcoKSEudG9vbHRpcHMhLnBvcGluISkgOlxuICAgICAgICAgICAgICAgICAgICAoZnVsbHNjcmVlbk1vZGUoKSA9PT0gJ2V4cGFuZCcgPyBjb25maWcoKSEudG9vbHRpcHMhLm1heGltaXplISA6IGNvbmZpZygpIS50b29sdGlwcyEucG9wb3V0ISkpXCI+XG4gICAgICAgICAgPG1hdC1pY29uIChjbGljayk9XCJ0b2dnbGVGdWxsc2NyZWVuKClcIj5cbiAgICAgICAgICAgIHt7IGZ1bGxzY3JlZW4oKSA/XG4gICAgICAgICAgICAoZnVsbHNjcmVlbk1vZGUoKSA9PT0gJ2V4cGFuZCcgPyBjb25maWcoKSEuaWNvbnMhLm1pbmltaXplISA6IGNvbmZpZygpIS5pY29ucyEucG9waW4hKSA6XG4gICAgICAgICAgICAoZnVsbHNjcmVlbk1vZGUoKSA9PT0gJ2V4cGFuZCcgPyBjb25maWcoKSEuaWNvbnMhLm1heGltaXplISA6IGNvbmZpZygpIS5pY29ucyEucG9wb3V0ISlcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L3NwYW4+XG4gICAgfVxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZm9ybXVsYT5cbiAgQGlmIChjb25maWcoKSEuYnV0dG9ucyEuZm9ybXVsYSEpIHtcbiAgICA8c3BhbiBjbGFzcz1cInFsLWZvcm1hdHNcIiBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZygpIS50b29sdGlwcyEuZm9ybXVsYSEpXCI+XG4gICAgICA8YnV0dG9uIGNsYXNzPVwicWwtZm9ybXVsYVwiPjwvYnV0dG9uPlxuICAgIDwvc3Bhbj5cbiAgfVxuPC9uZy10ZW1wbGF0ZT4iXX0=
|
|
163
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsZWF2ZWxhbmRwcmljZS9uZ3gtbGliL3F1aWxsL21lbnRpb24vc3JjL2NvbXBvbmVudHMvZWRpdG9yL2VkaXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGVhdmVsYW5kcHJpY2Uvbmd4LWxpYi9xdWlsbC9tZW50aW9uL3NyYy9jb21wb25lbnRzL2VkaXRvci9lZGl0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RSxPQUFPLEVBQXdCLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RGLDZDQUE2QztBQUM3QyxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxzQkFBc0IsRUFBUSxNQUFNLDJDQUEyQyxDQUFDO0FBRXpGLE9BQU8sZUFBZSxDQUFDO0FBRXZCLHdDQUF3QztBQUN4Qyw0QkFBNEI7QUFFNUIscUZBQXFGO0FBQ3JGLHNEQUFzRDtBQUN0RCxxREFBcUQ7QUFFckQsK0dBQStHO0FBQy9HLHNEQUFzRDtBQUV0RCxZQUFZO0FBRVosT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxJQUFJLG1CQUFtQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1B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LCBmb3J3YXJkUmVmLCBpbmplY3QsIG1vZGVsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgRm9ybXNNb2R1bGUsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG4vL2ltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdERpYWxvZywgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IEFjdGl2ZURpcmVjdG9yeVNlcnZpY2UsIFVzZXIgfSBmcm9tICdAY2xlYXZlbGFuZHByaWNlL25neC1saWIvYWN0aXZlLWRpcmVjdG9yeSc7XG5cbmltcG9ydCAncXVpbGwtbWVudGlvbic7XG5cbi8vI3JlZ2lvbiBNb3ZlZCB0byBjbGllbnQgcmVzcG9uc2liaWxpdHlcbi8vaW1wb3J0IFF1aWxsIGZyb20gJ3F1aWxsJztcblxuLy8gVGhpcyBkb2Vzbid0IHdvcmsgd2hlbiBkb25lIGZyb20gdGhlIGxpYnJhcnkgLSBpdCBtdXN0IGJlIGRvbmUgZnJvbSB0aGUgY2xpZW50IGFwcFxuLy9pbXBvcnQgSW1hZ2VSZXNpemUgZnJvbSAncXVpbGwtaW1hZ2UtcmVzaXplLW1vZHVsZSc7XG4vL1F1aWxsLnJlZ2lzdGVyKCdtb2R1bGVzL2ltYWdlUmVzaXplJywgSW1hZ2VSZXNpemUpO1xuXG4vLyBUcmVhdGluZyBJbWFnZURyb3AgdGhlIHNhbWUgd2F5IGFzIEltYWdlUmVzaXplLCBldmVuIHRob3VnaCBpdCBkb2Vzbid0IGhhdmUgdGhlIHNhbWUgcHJvYmxlbSBkZXNjcmliZWQgYWJvdmVcbi8vaW1wb3J0IHsgSW1hZ2VEcm9wIH0gZnJvbSAncXVpbGwtaW1hZ2UtZHJvcC1tb2R1bGUnO1xuXG4vLyNlbmRyZWdpb25cblxuaW1wb3J0IHsgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBNYXRJY29uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBNYXRUb29sdGlwIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XG5pbXBvcnQgeyBFZGl0b3JDb21wb25lbnQgYXMgRWRpdG9yQ29tcG9uZW50QmFzZSB9IGZyb20gJ0BjbGVhdmVsYW5kcHJpY2Uvbmd4LWxpYi9xdWlsbCc7XG5pbXBvcnQgeyBRdWlsbEVkaXRvckNvbXBvbmVudCB9IGZyb20gJ25neC1xdWlsbCc7XG5pbXBvcnQgeyBEaWFsb2dEYXRhIH0gZnJvbSAnLi4vLi4vbW9kZWwvZGlhbG9nLWRhdGEnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjcHF1aWxsLWVkaXRvci13aXRoLW1lbnRpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vZWRpdG9yLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2VkaXRvci5jb21wb25lbnQuc2NzcycsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBNYXRJY29uLFxuICAgIE1hdFRvb2x0aXAsXG4gICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgICBRdWlsbEVkaXRvckNvbXBvbmVudCxcbiAgXSxcbiAgcHJvdmlkZXJzOiBbe1xuICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEVkaXRvckNvbXBvbmVudCksXG4gICAgbXVsdGk6IHRydWVcbiAgfV1cbn0pXG5leHBvcnQgY2xhc3MgRWRpdG9yQ29tcG9uZW50IGV4dGVuZHMgRWRpdG9yQ29tcG9uZW50QmFzZSBpbXBsZW1lbnRzIE9uSW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICBvdmVycmlkZSB3cml0ZVZhbHVlKG9iajogYW55KTogdm9pZCB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNZXRob2Qgbm90IGltcGxlbWVudGVkLicpO1xuICB9XG4gIG92ZXJyaWRlIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfVxuICBvdmVycmlkZSByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNZXRob2Qgbm90IGltcGxlbWVudGVkLicpO1xuICB9XG4gIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgaW1wbGVtZW50ZWQuJyk7XG4gIH1cbiAgdXNlcnMgPSBtb2RlbDxVc2VyW10+KCk7XG5cbiAgI2RsZ1JlZiA9IGluamVjdChNYXREaWFsb2dSZWY8RWRpdG9yQ29tcG9uZW50PiwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcbiAgI2RsZyA9IGluamVjdChNYXREaWFsb2cpO1xuICAjYWN0aXZlRGlyZWN0b3J5U2VydmljZSA9IGluamVjdChBY3RpdmVEaXJlY3RvcnlTZXJ2aWNlKTtcbiAgXG4gIG92ZXJyaWRlIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaW5pdGlhbGl6ZSgpO1xuICAgIFxuICAgIGlmICghdGhpcy51c2VycygpKSB7XG4gICAgICB0aGlzLiNhY3RpdmVEaXJlY3RvcnlTZXJ2aWNlLmdldFVzZXJzKCkuc3Vic2NyaWJlKHVzZXJzID0+XG4gICAgICAgIHRoaXMudXNlcnMuc2V0KHVzZXJzKVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBvdmVycmlkZSB0b2dnbGVGdWxsc2NyZWVuKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmZ1bGxzY3JlZW5Nb2RlKCkgPT09ICdleHBhbmQnKSB7XG4gICAgICAgIHRoaXMuZnVsbHNjcmVlbi5zZXQoIXRoaXMuZnVsbHNjcmVlbigpKTtcbiAgICAgICAgdGhpcy5mdWxsc2NyZWVuQ2hhbmdlZC5lbWl0KHRoaXMuZnVsbHNjcmVlbigpISk7XG4gICAgICB9XG4gICAgZWxzZSB7XG4gICAgICBpZiAodGhpcy5mdWxsc2NyZWVuKCkpIHtcbiAgICAgICAgdGhpcy4jZGxnUmVmPy5jbG9zZSh0aGlzLnZhbHVlKTtcbiAgICAgICAgICB0aGlzLmZ1bGxzY3JlZW5DaGFuZ2VkLmVtaXQoZmFsc2UpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgZGF0YTogRGlhbG9nRGF0YSA9IHtcblxuICAgICAgICAgIHZhbHVlOiB0aGlzLnZhbHVlLFxuICAgICAgICAgIGNvbmZpZzogdGhpcy5jb25maWcoKSxcbiAgICAgICAgICBwbGFjZWhvbGRlcjogdGhpcy5wbGFjZWhvbGRlcigpLFxuICAgICAgICAgIGZvcm1hdDogdGhpcy5mb3JtYXQoKSEsXG4gICAgICAgICAgaGVpZ2h0OiB0aGlzLmZ1bGxzY3JlZW5IZWlnaHQoKSEsXG4gICAgICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgICAgICBtYXhIZWlnaHQ6IHRoaXMuZnVsbHNjcmVlbkhlaWdodCgpISxcbiAgICAgICAgICBtYXhXaWR0aDogJzEwMCUnLFxuICAgICAgICAgIGVuYWJsZVRvb2x0aXBzOiB0aGlzLmVuYWJsZVRvb2x0aXBzKCkhLFxuICAgICAgICAgIGZ1bGxzY3JlZW46IHRydWUsXG4gICAgICAgICAgZnVsbHNjcmVlbk1vZGU6IHRoaXMuZnVsbHNjcmVlbk1vZGUoKSEsXG4gICAgICAgICAgcmVhZG9ubHk6IHRoaXMucmVhZG9ubHkoKSEsXG4gICAgICAgICAgYXBwbHlSZWFkb25seVN0eWxlOiB0aGlzLmFwcGx5UmVhZG9ubHlTdHlsZSgpISxcbiAgICAgICAgICBzaG93VG9vbGJhcjogdGhpcy5zaG93VG9vbGJhcigpISxcbiAgICAgICAgICBzaG93Qm9yZGVyOiB0aGlzLnNob3dCb3JkZXIoKSEsXG4gICAgICAgICAgaW1hZ2VSZXNpemVNb2R1bGU6IHRoaXMuaW1hZ2VSZXNpemVNb2R1bGUoKSEsXG4gICAgICAgICAgaW1hZ2VEcm9wTW9kdWxlOiB0aGlzLmltYWdlRHJvcE1vZHVsZSgpISxcbiAgICAgICAgICBzeW50YXhNb2R1bGU6IHRoaXMuc3ludGF4TW9kdWxlKCkhLFxuICAgICAgICAgIHVzZXJzOiB0aGlzLnVzZXJzKClcbiAgICAgICAgfTtcblxuICAgICAgICB0aGlzLiNkbGcub3BlbihFZGl0b3JDb21wb25lbnQsIHtcbiAgICAgICAgICBkaXNhYmxlQ2xvc2U6IHRydWUsXG4gICAgICAgICAgd2lkdGg6IHRoaXMuZnVsbHNjcmVlbldpZHRoKCksXG4gICAgICAgICAgaGVpZ2h0OiB0aGlzLmZ1bGxzY3JlZW5IZWlnaHQoKSxcbiAgICAgICAgICBkYXRhXG4gICAgICAgIH0pXG4gICAgICAgIC5hZnRlckNsb3NlZCgpXG4gICAgICAgIC5zdWJzY3JpYmUodmFsdWUgPT4ge1xuICAgICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgICB0aGlzLnVwZGF0ZUNoYW5nZXMoKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5mdWxsc2NyZWVuQ2hhbmdlZC5lbWl0KHRydWUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG92ZXJyaWRlIGdldCBtb2R1bGVzKCkge1xuICAgIGlmICghdGhpcy51c2VycygpKSB7IHJldHVybiB7fTsgfVxuXG4gICAgY29uc3QgbW9kdWxlcyA9IHtcbiAgICAgIG1lbnRpb246IHtcbiAgICAgICAgYWxsb3dlZENoYXJzOiAvXltBLVphLXpcXHPDhcOEw5bDpcOkw7ZdKiQvLFxuXG4gICAgICAgIG9uU2VsZWN0OiAoaXRlbTogRE9NU3RyaW5nTWFwLCBpbnNlcnRJdGVtOiBhbnkpID0+IHtcbiAgICAgICAgICBjb25zdCBlZGl0b3IgPSB0aGlzLmVkaXRvcigpIS5xdWlsbEVkaXRvclxuICAgICAgICAgIGluc2VydEl0ZW0oaXRlbSlcbiAgICAgICAgICAvLyBuZWNlc3NhcnkgYmVjYXVzZSBxdWlsbC1tZW50aW9uIHRyaWdnZXJzIGNoYW5nZXMgYXMgJ2FwaScgaW5zdGVhZCBvZiAndXNlcidcbiAgICAgICAgICBlZGl0b3IuaW5zZXJ0VGV4dChlZGl0b3IuZ2V0TGVuZ3RoKCkgLSAxLCAnJywgJ3VzZXInKVxuICAgICAgICB9LFxuXG4gICAgICAgIHNvdXJjZTogKHNlYXJjaFRlcm06IHN0cmluZywgcmVuZGVyTGlzdDogYW55KSA9PiB7XG4gICAgICAgICAgaWYgKHNlYXJjaFRlcm0ubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZW5kZXJMaXN0KHRoaXMudXNlcnMoKT8ubWFwKHUgPT4gKHsgdmFsdWU6IGAke3UuZGlzcGxheU5hbWV9ICgke3Uuc0FNQWNjb3VudE5hbWUudG9Mb3dlckNhc2UoKX0pYCB9KSksIHNlYXJjaFRlcm0pXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IG1hdGNoZXM6IGFueVtdID0gW11cblxuICAgICAgICAgICAgdGhpcy51c2VycygpIS5mb3JFYWNoKChlbnRyeSkgPT4ge1xuICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgKGVudHJ5LmRpc3BsYXlOYW1lID8/IGVudHJ5Lm5hbWUpLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihzZWFyY2hUZXJtLnRvTG93ZXJDYXNlKCkpICE9PSAtMSB8fFxuICAgICAgICAgICAgICAgIGVudHJ5LnNBTUFjY291bnROYW1lLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihzZWFyY2hUZXJtLnRvTG93ZXJDYXNlKCkpICE9PSAtMVxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIG1hdGNoZXMucHVzaCh7IHZhbHVlOiBgJHtlbnRyeS5kaXNwbGF5TmFtZX0gKCR7ZW50cnkuc0FNQWNjb3VudE5hbWUudG9Mb3dlckNhc2UoKX0pYCB9KVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuXG4gICAgICAgICAgICByZW5kZXJMaXN0KG1hdGNoZXMsIHNlYXJjaFRlcm0pXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcblxuICAgIGlmICghdGhpcy5zaG93VG9vbGJhcigpKSB7XG4gICAgICBtb2R1bGVzWyd0b29sYmFyJ10gPSBbXTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5pbWFnZVJlc2l6ZU1vZHVsZSgpKSB7XG4gICAgICBtb2R1bGVzWydpbWFnZVJlc2l6ZSddID0ge307XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaW1hZ2VEcm9wTW9kdWxlKCkpIHtcbiAgICAgIG1vZHVsZXNbJ2ltYWdlRHJvcCddID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5zeW50YXhNb2R1bGUoKSkge1xuICAgICAgbW9kdWxlc1snc3ludGF4J10gPSB0cnVlO1xuICAgIH1cblxuICAgIHJldHVybiBtb2R1bGVzO1xuICB9XG59IiwiQGlmICh1c2VycygpKSB7XG4gIDxmb3JtPlxuICAgIDxxdWlsbC1lZGl0b3IgbmFtZT1cImVkaXRvclwiXG4gICAgICBbKG5nTW9kZWwpXT1cInZhbHVlXCJcbiAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInVwZGF0ZUNoYW5nZXMoKVwiXG4gICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXIoKSA/PyAnJ1wiXG4gICAgICBbZm9ybWF0XT1cImZvcm1hdCgpXCJcbiAgICAgIFtzdHlsZS5oZWlnaHRdPVwiZnVsbHNjcmVlbigpID8gZnVsbHNjcmVlbkhlaWdodCgpIDogaGVpZ2h0KClcIlxuICAgICAgW3N0eWxlLndpZHRoXT1cImZ1bGxzY3JlZW4oKSA/IGZ1bGxzY3JlZW5XaWR0aCgpIDogd2lkdGgoKVwiXG4gICAgICBbcmVhZE9ubHldPVwicmVhZG9ubHkoKSA/PyBmYWxzZVwiXG4gICAgICBbY2xhc3MucmVhZG9ubHldPVwicmVhZG9ubHkoKSAmJiBhcHBseVJlYWRvbmx5U3R5bGUoKVwiXG4gICAgICBbY2xhc3Mubm8tdG9vbGJhcl09XCIhc2hvd1Rvb2xiYXIoKVwiXG4gICAgICBbY2xhc3Mubm8tYm9yZGVyXT1cIiFzaG93Qm9yZGVyKClcIlxuICAgICAgW21vZHVsZXNdPVwibW9kdWxlc1wiXG4gICAgICAob25CbHVyKT1cIm9uQmx1ci5lbWl0KCRldmVudClcIlxuICAgICAgKG9uQ29udGVudENoYW5nZWQpPVwib25Db250ZW50Q2hhbmdlZC5lbWl0KCRldmVudClcIlxuICAgICAgKG9uRWRpdG9yQ2hhbmdlZCk9XCJvbkVkaXRvckNoYW5nZWQuZW1pdCgkZXZlbnQpXCJcbiAgICAgIChvbkVkaXRvckNyZWF0ZWQpPVwib25FZGl0b3JDcmVhdGVkLmVtaXQoKVwiXG4gICAgICAob25Gb2N1cyk9XCJvbkZvY3VzLmVtaXQoJGV2ZW50KVwiXG4gICAgICAob25TZWxlY3Rpb25DaGFuZ2VkKT1cIm9uU2VsZWN0aW9uQ2hhbmdlZC5lbWl0KCRldmVudClcIj5cbiAgICAgIEBpZiAoc2hvd1Rvb2xiYXIoKSkge1xuICAgICAgICA8ZGl2IHF1aWxsLWVkaXRvci10b29sYmFyPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwidG9vbGJhclwiLz5cbiAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImVkaXRvclNpemVcIi8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgIDwvcXVpbGwtZWRpdG9yPlxuICA8L2Zvcm0+XG59XG5cbjxuZy10ZW1wbGF0ZSAjdG9vbGJhcj5cbiAgPGRpdj5cbiAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImZvbnRTdHlsZVwiLz5cbiAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImJsb2NrU3R5bGVcIi8+XG4gICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJoZWFkaW5nU3R5bGVcIi8+XG4gICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJsaXN0U3R5bGVcIi8+XG4gICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJzY3JpcHRTdHlsZVwiLz5cbiAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImluZGVudFN0eWxlXCIvPlxuICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwicnRsXCIvPlxuICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiZm9udFNpemVcIi8+XG4gICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJoZWFkaW5nXCIvPlxuICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiY29sb3JcIi8+XG4gICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJmb250XCIvPlxuICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiYWxpZ25cIi8+XG4gICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJjbGVhblwiLz5cbiAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImZvcm11bGFcIi8+XG4gICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJtZWRpYVwiLz5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2ZvbnRTdHlsZT5cbiAgQGlmIChzaG93Rm9udFN0eWxlKSB7XG4gICAgPHNwYW4gY2xhc3M9XCJxbC1mb3JtYXRzXCI+XG4gICAgICBAaWYgKGNvbmZpZygpIS5idXR0b25zIS5ib2xkISkge1xuICAgICAgICA8YnV0dG9uIGNsYXNzPVwicWwtYm9sZFwiICAgICAgICAgICBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZygpIS50b29sdGlwcyEuYm9sZCEpXCI+PC9idXR0b24+XG4gICAgICB9XG4gICAgICBAaWYgKGNvbmZpZygpIS5idXR0b25zIS5pdGFsaWMhKSB7XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJxbC1pdGFsaWNcIiAgICAgICBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZygpIS50b29sdGlwcyEuaXRhbGljISlcIj48L2J1dHRvbj5cbiAgICAgIH1cbiAgICAgIEBpZiAoY29uZmlnKCkhLmJ1dHRvbnMhLnVuZGVybGluZSEpIHtcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInFsLXVuZGVybGluZVwiIFttYXRUb29sdGlwXT1cInRvb2x0aXAoY29uZmlnKCkhLnRvb2x0aXBzIS51bmRlcmxpbmUhKVwiPjwvYnV0dG9uPlxuICAgICAgfVxuICAgICAgQGlmIChjb25maWcoKSEuYnV0dG9ucyEuc3RyaWtlISkge1xuICAgICAgICA8YnV0dG9uIGNsYXNzPVwicWwtc3RyaWtlXCIgICAgICAgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWcoKSEudG9vbHRpcHMhLnN0cmlrZSEpXCI+PC9idXR0b24+XG4gICAgICB9XG4gICAgPC9zcGFuPlxuICB9XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2Jsb2NrU3R5bGU+XG4gIEBpZiAoc2hvd0Jsb2NrU3R5bGUpIHtcbiAgICA8c3BhbiBjbGFzcz1cInFsLWZvcm1hdHNcIj5cbiAgICAgIEBpZiAoY29uZmlnKCkhLmJ1dHRvbnMhLmJsb2NrcXVvdGUhKSB7XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJxbC1ibG9ja3F1b3RlXCIgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWcoKSEudG9vbHRpcHMhLmJsb2NrcXVvdGUhKVwiPjwvYnV0dG9uPlxuICAgICAgfVxuICAgICAgQGlmIChjb25maWcoKSEuYnV0dG9ucyEuY29kZWJsb2NrISkge1xuICAgICAgICA8YnV0dG9uIGNsYXNzPVwicWwtY29kZS1ibG9ja1wiICBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZygpIS50b29sdGlwcyEuY29kZWJsb2NrISlcIj48L2J1dHRvbj5cbiAgICAgIH1cbiAgICA8L3NwYW4+XG4gIH1cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjaGVhZGluZ1N0eWxlPlxuICBAaWYgKHNob3dRdWlja0hlYWRpbmdTdHlsZSkge1xuICAgIDxzcGFuIGNsYXNzPVwicWwtZm9ybWF0c1wiPlxuICAgICAgQGlmIChjb25maWcoKSEuYnV0dG9ucyEuaDEhKSB7XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJxbC1oZWFkZXJcIiB2YWx1ZT1cIjFcIiBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZygpIS50b29sdGlwcyEuaDEhKVwiPjwvYnV0dG9uPlxuICAgICAgfVxuICAgICAgQGlmIChjb25maWcoKSEuYnV0dG9ucyEuaDIhKSB7XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJxbC1oZWFkZXJcIiB2YWx1ZT1cIjJcIiBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZygpIS50b29sdGlwcyEuaDIhKVwiPjwvYnV0dG9uPlxuICAgICAgfVxuICAgIDwvc3Bhbj5cbiAgfVxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNsaXN0U3R5bGU+XG4gIEBpZiAoc2hvd0xpc3RTdHlsZSkge1xuICAgIDxzcGFuIGNsYXNzPVwicWwtZm9ybWF0c1wiPlxuICAgICAgQGlmIChjb25maWcoKSEuYnV0dG9ucyEub3JkZXJlZCEpIHtcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInFsLWxpc3RcIiB2YWx1ZT1cIm9yZGVyZWRcIiAgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWcoKSEudG9vbHRpcHMhLm9yZGVyZWQhKVwiPjwvYnV0dG9uPlxuICAgICAgfVxuICAgICAgQGlmIChjb25maWcoKSEuYnV0dG9ucyEuYnVsbGV0ZWQhKSB7XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJxbC1saXN0XCIgdmFsdWU9XCJidWxsZXRcIiAgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWcoKSEudG9vbHRpcHMhLmJ1bGxldGVkISlcIj48L2J1dHRvbj5cbiAgICAgIH1cbiAgICA8L3NwYW4+XG4gIH1cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjc2NyaXB0U3R5bGU+XG4gIEBpZiAoc2hvd1NjcmlwdFN0eWxlKSB7XG4gICAgPHNwYW4gY2xhc3M9XCJxbC1mb3JtYXRzXCI+XG4gICAgICBAaWYgKGNvbmZpZygpIS5idXR0b25zIS5zdWJTY3JpcHQhKSB7XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJxbC1zY3JpcHRcIiB2YWx1ZT1cInN1YlwiICAgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWcoKSEudG9vbHRpcHMhLnN1YlNjcmlwdCEpXCI+PC9idXR0b24+XG4gICAgICB9XG4gICAgICBAaWYgKGNvbmZpZygpIS5idXR0b25zIS5zdXBlclNjcmlwdCEpIHtcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInFsLXNjcmlwdFwiIHZhbHVlPVwic3VwZXJcIiBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZygpIS50b29sdGlwcyEuc3VwZXJTY3JpcHQhKVwiPjwvYnV0dG9uPlxuICAgICAgfVxuICAgIDwvc3Bhbj5cbiAgfVxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNpbmRlbnRTdHlsZT5cbiAgQGlmIChzaG93SW5kZW50U3R5bGUpIHtcbiAgICA8c3BhbiBjbGFzcz1cInFsLWZvcm1hdHNcIj5cbiAgICAgIEBpZiAoY29uZmlnKCkhLmJ1dHRvbnMhLmRlY3JlYXNlSW5kZW50ISkge1xuICAgICAgICA8YnV0dG9uIGNsYXNzPVwicWwtaW5kZW50XCIgdmFsdWU9XCItMVwiIFttYXRUb29sdGlwXT1cInRvb2x0aXAoY29uZmlnKCkhLnRvb2x0aXBzIS5kZWNyZWFzZUluZGVudCEpXCI+PC9idXR0b24+XG4gICAgICB9XG4gICAgICBAaWYgKGNvbmZpZygpIS5idXR0b25zIS5pbmNyZWFzZUluZGVudCEpIHtcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInFsLWluZGVudFwiIHZhbHVlPVwiKzFcIiBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZygpIS50b29sdGlwcyEuaW5jcmVhc2VJbmRlbnQhKVwiPjwvYnV0dG9uPlxuICAgICAgfVxuICAgIDwvc3Bhbj5cbiAgfVxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNydGw+XG4gIEBpZiAoY29uZmlnKCkhLmJ1dHRvbnMhLnJ0bCEpIHtcbiAgICA8c3BhbiBjbGFzcz1cInFsLWZvcm1hdHNcIj5cbiAgICAgIDxidXR0b24gY2xhc3M9XCJxbC1kaXJlY3Rpb25cIiB2YWx1ZT1cInJ0bFwiIFttYXRUb29sdGlwXT1cInRvb2x0aXAoY29uZmlnKCkhLnRvb2x0aXBzIS5ydGwhKVwiPjwvYnV0dG9uPlxuICAgIDwvc3Bhbj5cbiAgfVxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNmb250U2l6ZT5cbiAgQGlmIChjb25maWcoKSEuYnV0dG9ucyEuZm9udFNpemUhKSB7XG4gICAgPHNwYW4gY2xhc3M9XCJxbC1mb3JtYXRzXCIgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWcoKSEudG9vbHRpcHMhLmZvbnRTaXplISlcIj5cbiAgICAgIDxzZWxlY3QgY2xhc3M9XCJxbC1zaXplXCI+XG4gICAgICAgIDxvcHRpb24gdmFsdWU9XCJzbWFsbFwiPjwvb3B0aW9uPlxuICAgICAgICA8b3B0aW9uIHNlbGVjdGVkPjwvb3B0aW9uPlxuICAgICAgICA8b3B0aW9uIHZhbHVlPVwibGFyZ2VcIj48L29wdGlvbj5cbiAgICAgICAgPG9wdGlvbiB2YWx1ZT1cImh1Z2VcIj48L29wdGlvbj5cbiAgICAgIDwvc2VsZWN0PlxuICAgIDwvc3Bhbj5cbiAgfVxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNoZWFkaW5nPlxuICBAaWYgKGNvbmZpZygpIS5idXR0b25zIS5oZWFkaW5nU3R5bGUhKSB7XG4gICAgPHNwYW4gY2xhc3M9XCJxbC1mb3JtYXRzXCIgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWcoKSEudG9vbHRpcHMhLmhlYWRpbmdTdHlsZSEpXCI+XG4gICAgICA8c2VsZWN0IGNsYXNzPVwicWwtaGVhZGVyXCI+XG4gICAgICAgIDxvcHRpb24gdmFsdWU9XCIxXCI+PC9vcHRpb24+XG4gICAgICAgIDxvcHRpb24gdmFsdWU9XCIyXCI+PC9vcHRpb24+XG4gICAgICAgIDxvcHRpb24gdmFsdWU9XCIzXCI+PC9vcHRpb24+XG4gICAgICAgIDxvcHRpb24gdmFsdWU9XCI0XCI+PC9vcHRpb24+XG4gICAgICAgIDxvcHRpb24gdmFsdWU9XCI1XCI+PC9vcHRpb24+XG4gICAgICAgIDxvcHRpb24gdmFsdWU9XCI2XCI+PC9vcHRpb24+XG4gICAgICAgIDxvcHRpb24gc2VsZWN0ZWQ9XCJzZWxlY3RlZFwiPjwvb3B0aW9uPlxuICAgICAgPC9zZWxlY3Q+XG4gICAgPC9zcGFuPlxuICB9XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2NvbG9yPlxuICBAaWYgKGNvbmZpZygpIS5idXR0b25zIS5jb2xvciEpIHtcbiAgICA8c3BhbiBjbGFzcz1cInFsLWZvcm1hdHNcIiBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZygpIS50b29sdGlwcyEuY29sb3IhKVwiPlxuICAgICAgPHNlbGVjdCBjbGFzcz1cInFsLWNvbG9yXCI+PC9zZWxlY3Q+XG4gICAgICA8c2VsZWN0IGNsYXNzPVwicWwtYmFja2dyb3VuZFwiPjwvc2VsZWN0PlxuICAgIDwvc3Bhbj5cbiAgfVxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNmb250PlxuICBAaWYgKGNvbmZpZygpIS5idXR0b25zIS5mb250ISkge1xuICAgIDxzcGFuIGNsYXNzPVwicWwtZm9ybWF0c1wiIFttYXRUb29sdGlwXT1cInRvb2x0aXAoY29uZmlnKCkhLnRvb2x0aXBzIS5mb250ISlcIj5cbiAgICAgIDxzZWxlY3QgY2xhc3M9XCJxbC1mb250XCI+XG4gICAgICAgIDxvcHRpb24gc2VsZWN0ZWQ+PC9vcHRpb24+XG4gICAgICAgIDxvcHRpb24gdmFsdWU9XCJzZXJpZlwiPjwvb3B0aW9uPlxuICAgICAgICA8b3B0aW9uIHZhbHVlPVwibW9ub3NwYWNlXCI+PC9vcHRpb24+XG4gICAgICA8L3NlbGVjdD5cbiAgICA8L3NwYW4+XG4gIH1cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjYWxpZ24+XG4gIEBpZiAoY29uZmlnKCkhLmJ1dHRvbnMhLmFsaWduISkge1xuICAgIDxzcGFuIGNsYXNzPVwicWwtZm9ybWF0c1wiIFttYXRUb29sdGlwXT1cInRvb2x0aXAoY29uZmlnKCkhLnRvb2x0aXBzIS5hbGlnbiEpXCI+XG4gICAgICA8c2VsZWN0IGNsYXNzPVwicWwtYWxpZ25cIj5cbiAgICAgICAgPG9wdGlvbiBzZWxlY3RlZD48L29wdGlvbj5cbiAgICAgICAgPG9wdGlvbiB2YWx1ZT1cImNlbnRlclwiPjwvb3B0aW9uPlxuICAgICAgICA8b3B0aW9uIHZhbHVlPVwicmlnaHRcIj48L29wdGlvbj5cbiAgICAgICAgPG9wdGlvbiB2YWx1ZT1cImp1c3RpZnlcIj48L29wdGlvbj5cbiAgICAgIDwvc2VsZWN0PlxuICAgIDwvc3Bhbj5cbiAgfVxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNjbGVhbj5cbiAgQGlmIChjb25maWcoKSEuYnV0dG9ucyEuY2xlYW4hKSB7XG4gICAgPHNwYW4gY2xhc3M9XCJxbC1mb3JtYXRzXCIgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWcoKSEudG9vbHRpcHMhLmNsZWFuISlcIj5cbiAgICAgIDxidXR0b24gY2xhc3M9XCJxbC1jbGVhblwiPjwvYnV0dG9uPlxuICAgIDwvc3Bhbj5cbiAgfVxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNtZWRpYT5cbiAgQGlmIChzaG93TWVkaWEpIHtcbiAgICA8c3BhbiBjbGFzcz1cInFsLWZvcm1hdHNcIj5cbiAgICAgIEBpZiAoY29uZmlnKCkhLmJ1dHRvbnMhLmxpbmshKSB7XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJxbC1saW5rXCIgIFttYXRUb29sdGlwXT1cInRvb2x0aXAoY29uZmlnKCkhLnRvb2x0aXBzIS5saW5rISlcIj48L2J1dHRvbj5cbiAgICAgIH1cbiAgICAgIEBpZiAoY29uZmlnKCkhLmJ1dHRvbnMhLmltYWdlISkge1xuICAgICAgICA8YnV0dG9uIGNsYXNzPVwicWwtaW1hZ2VcIiBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZygpIS50b29sdGlwcyEuaW1hZ2UhKVwiPjwvYnV0dG9uPlxuICAgICAgfVxuICAgICAgQGlmIChjb25maWcoKSEuYnV0dG9ucyEudmlkZW8hKSB7XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJxbC12aWRlb1wiIFttYXRUb29sdGlwXT1cInRvb2x0aXAoY29uZmlnKCkhLnRvb2x0aXBzIS52aWRlbyEpXCI+PC9idXR0b24+XG4gICAgICB9XG4gICAgPC9zcGFuPlxuICB9XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2VkaXRvclNpemU+XG4gIDxkaXY+XG4gICAgQGlmIChjb25maWcoKSEuYnV0dG9ucyEucmF3RWRpdG9yISkge1xuICAgICAgPHNwYW4gY2xhc3M9XCJxbC1mb3JtYXRzXCI+XG4gICAgICAgIDxidXR0b24gaWQ9XCJyYXdkb2dcIlxuICAgICAgICAgIFttYXRUb29sdGlwXT1cInRvb2x0aXAoY29uZmlnKCkhLnRvb2x0aXBzIS5yYXdFZGl0b3IhKVwiPlxuICAgICAgICAgIDxtYXQtaWNvbiAoY2xpY2spPVwicmF3RWRpdCgpXCI+XG4gICAgICAgICAgICBjb2RlXG4gICAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L3NwYW4+XG4gICAgfVxuXG4gICAgQGlmIChjb25maWcoKSEuYnV0dG9ucyEuZWRpdG9yU2l6ZSEpIHtcbiAgICAgIDxzcGFuIGNsYXNzPVwicWwtZm9ybWF0c1wiPlxuICAgICAgICA8YnV0dG9uIGlkPVwiZnVsbHNjcmVlblwiXG4gICAgICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwidG9vbHRpcChmdWxsc2NyZWVuKCkgP1xuICAgICAgICAgICAgICAgICAgICAoZnVsbHNjcmVlbk1vZGUoKSA9PT0gJ2V4cGFuZCcgPyBjb25maWcoKSEudG9vbHRpcHMhLm1pbmltaXplISA6IGNvbmZpZygpIS50b29sdGlwcyEucG9waW4hKSA6XG4gICAgICAgICAgICAgICAgICAgIChmdWxsc2NyZWVuTW9kZSgpID09PSAnZXhwYW5kJyA/IGNvbmZpZygpIS50b29sdGlwcyEubWF4aW1pemUhIDogY29uZmlnKCkhLnRvb2x0aXBzIS5wb3BvdXQhKSlcIj5cbiAgICAgICAgICA8bWF0LWljb24gKGNsaWNrKT1cInRvZ2dsZUZ1bGxzY3JlZW4oKVwiPlxuICAgICAgICAgICAge3sgZnVsbHNjcmVlbigpID9cbiAgICAgICAgICAgIChmdWxsc2NyZWVuTW9kZSgpID09PSAnZXhwYW5kJyA/IGNvbmZpZygpIS5pY29ucyEubWluaW1pemUhIDogY29uZmlnKCkhLmljb25zIS5wb3BpbiEpIDpcbiAgICAgICAgICAgIChmdWxsc2NyZWVuTW9kZSgpID09PSAnZXhwYW5kJyA/IGNvbmZpZygpIS5pY29ucyEubWF4aW1pemUhIDogY29uZmlnKCkhLmljb25zIS5wb3BvdXQhKVxuICAgICAgICAgICAgfX1cbiAgICAgICAgICA8L21hdC1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvc3Bhbj5cbiAgICB9XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNmb3JtdWxhPlxuICBAaWYgKGNvbmZpZygpIS5idXR0b25zIS5mb3JtdWxhISkge1xuICAgIDxzcGFuIGNsYXNzPVwicWwtZm9ybWF0c1wiIFttYXRUb29sdGlwXT1cInRvb2x0aXAoY29uZmlnKCkhLnRvb2x0aXBzIS5mb3JtdWxhISlcIj5cbiAgICAgIDxidXR0b24gY2xhc3M9XCJxbC1mb3JtdWxhXCI+PC9idXR0b24+XG4gICAgPC9zcGFuPlxuICB9XG48L25nLXRlbXBsYXRlPiJdfQ==
|
|
@@ -11,7 +11,7 @@ export class UserPhotoUrlPipe {
|
|
|
11
11
|
// Try to match by employeeNumber, accountName, or title
|
|
12
12
|
(pic.employeeNumber && user.employeeNumber && +pic.employeeNumber === +user.employeeNumber) ||
|
|
13
13
|
(pic.accountName && pic.accountName.toLowerCase() === user.sAMAccountName.toLowerCase()) ||
|
|
14
|
-
(pic.title && pic.title.toLowerCase() === user.displayName.toLowerCase()))?.encodedAbsUrl));
|
|
14
|
+
(pic.title && pic.title.toLowerCase() === (user.displayName ?? user.name).toLowerCase()))?.encodedAbsUrl));
|
|
15
15
|
/*const photo = photos
|
|
16
16
|
.find(pic =>
|
|
17
17
|
(pic.employeeNumber && user.employeeNumber && +pic.employeeNumber === +user.employeeNumber) ||
|
|
@@ -34,4 +34,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImpor
|
|
|
34
34
|
standalone: true
|
|
35
35
|
}]
|
|
36
36
|
}] });
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1waG90by11cmwucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsZWF2ZWxhbmRwcmljZS9uZ3gtbGliL3NoYXJlcG9pbnQvc3JjL3BpcGVzL3VzZXItcGhvdG8tdXJsLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBRTVELE9BQU8sRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRS9CLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOztBQU1uRSxNQUFNLE9BQU8sZ0JBQWdCO0lBQzNCLGtCQUFrQixHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBRS9DLFNBQVMsQ0FBQyxJQUF5QixFQUFFLFVBQXdCO1FBQzNELE1BQU0sV0FBVyxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxFQUFFLENBQUM7UUFFdEYsT0FBTyxXQUFXO2FBQ2YsSUFBSSxDQUNILEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUNYLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUU7UUFDaEIsd0RBQXdEO1FBQ3hELENBQUMsR0FBRyxDQUFDLGNBQWMsSUFBSSxJQUFJLENBQUMsY0FBYyxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQWMsS0FBSyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUM7WUFDM0YsQ0FBQyxHQUFHLENBQUMsV0FBVyxJQUFJLEdBQUcsQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLEtBQUssSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUN4RixDQUFDLEdBQUcsQ0FBQyxLQUFLLElBQUksR0FBRyxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQ3pGLEVBQUUsYUFBYSxDQUNqQixDQUNGLENBQUM7UUFFSjs7Ozs7Ozs7OztvREFVNEM7SUFDOUMsQ0FBQzs4R0E3QlUsZ0JBQWdCOzRHQUFoQixnQkFBZ0I7OzJGQUFoQixnQkFBZ0I7a0JBSjVCLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLGNBQWM7b0JBQ3BCLFVBQVUsRUFBRSxJQUFJO2lCQUNqQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2xlYXZlbGFuZFByaWNlVXNlciB9IGZyb20gJ0BjbGVhdmVsYW5kcHJpY2Uvbmd4LWxpYi9hY3RpdmUtZGlyZWN0b3J5JztcbmltcG9ydCB7IG1hcCwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFBob3RvSXRlbSB9IGZyb20gJy4uL21vZGVsL3Bob3RvLWl0ZW0nO1xuaW1wb3J0IHsgU2hhcmVQb2ludFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9zaGFyZXBvaW50LnNlcnZpY2UnO1xuXG5AUGlwZSh7XG4gIG5hbWU6ICd1c2VyUGhvdG9VcmwnLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIFVzZXJQaG90b1VybFBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgI3NoYXJlUG9pbnRTZXJ2aWNlID0gaW5qZWN0KFNoYXJlUG9pbnRTZXJ2aWNlKTtcblxuICB0cmFuc2Zvcm0odXNlcjogQ2xlYXZlbGFuZFByaWNlVXNlciwgdXNlclBob3Rvcz86IFBob3RvSXRlbVtdKTogYW55IHtcbiAgICBjb25zdCBvYnNlcnZhYmxlJCA9IHVzZXJQaG90b3MgPyBvZih1c2VyUGhvdG9zKSA6IHRoaXMuI3NoYXJlUG9pbnRTZXJ2aWNlLmdldFBob3RvcygpO1xuXG4gICAgcmV0dXJuIG9ic2VydmFibGUkXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKHBob3RvcyA9PlxuICAgICAgICAgIHBob3Rvcy5maW5kKHBpYyA9PlxuICAgICAgICAgICAgLy8gVHJ5IHRvIG1hdGNoIGJ5IGVtcGxveWVlTnVtYmVyLCBhY2NvdW50TmFtZSwgb3IgdGl0bGVcbiAgICAgICAgICAgIChwaWMuZW1wbG95ZWVOdW1iZXIgJiYgdXNlci5lbXBsb3llZU51bWJlciAmJiArcGljLmVtcGxveWVlTnVtYmVyID09PSArdXNlci5lbXBsb3llZU51bWJlcikgfHxcbiAgICAgICAgICAgIChwaWMuYWNjb3VudE5hbWUgJiYgcGljLmFjY291bnROYW1lLnRvTG93ZXJDYXNlKCkgPT09IHVzZXIuc0FNQWNjb3VudE5hbWUudG9Mb3dlckNhc2UoKSkgfHxcbiAgICAgICAgICAgIChwaWMudGl0bGUgJiYgcGljLnRpdGxlLnRvTG93ZXJDYXNlKCkgPT09ICh1c2VyLmRpc3BsYXlOYW1lID8/IHVzZXIubmFtZSkudG9Mb3dlckNhc2UoKSlcbiAgICAgICAgICApPy5lbmNvZGVkQWJzVXJsXG4gICAgICAgIClcbiAgICAgICk7XG5cbiAgICAvKmNvbnN0IHBob3RvID0gcGhvdG9zXG4gICAgICAuZmluZChwaWMgPT5cbiAgICAgICAgKHBpYy5lbXBsb3llZU51bWJlciAmJiB1c2VyLmVtcGxveWVlTnVtYmVyICYmICtwaWMuZW1wbG95ZWVOdW1iZXIgPT09ICt1c2VyLmVtcGxveWVlTnVtYmVyKSB8fFxuICAgICAgICAocGljLmFjY291bnROYW1lICYmIHBpYy5hY2NvdW50TmFtZS50b0xvd2VyQ2FzZSgpID09PSB1c2VyLnNBTUFjY291bnROYW1lLnRvTG93ZXJDYXNlKCkpIHx8XG4gICAgICAgIChwaWMudGl0bGUgJiYgcGljLnRpdGxlLnRvTG93ZXJDYXNlKCkgPT09IHVzZXIuZGlzcGxheU5hbWUudG9Mb3dlckNhc2UoKSkpO1xuXG4gICAgaWYgKCFwaG90bykge1xuICAgICAgY29uc29sZS5sb2coYE5vIHBob3RvIG1hdGNoIGZvciAke3VzZXIuZGlzcGxheU5hbWV9YCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHBob3RvID8gcGhvdG8uZW5jb2RlZEFic1VybCA6IG51bGw7Ki9cbiAgfVxufSJdfQ==
|
|
@@ -42,6 +42,7 @@ const DefaultUserChooserData = {
|
|
|
42
42
|
showPhone: true,
|
|
43
43
|
title: 'Select User(s)',
|
|
44
44
|
mode: UserChooserMode.Single,
|
|
45
|
+
objectTypes: '*',
|
|
45
46
|
filterOptions: DefaultUserChooserFilterOptions
|
|
46
47
|
};
|
|
47
48
|
|
|
@@ -188,20 +189,30 @@ class UserChooserComponent {
|
|
|
188
189
|
users = this.#preSelectUsersByDepartment(users);
|
|
189
190
|
users = this.#preSelectUsersByTitle(users);
|
|
190
191
|
this.#preSelectGroupsByAccountName();
|
|
191
|
-
const usersAndGroups = [
|
|
192
|
-
|
|
193
|
-
]
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
192
|
+
const usersAndGroups = [];
|
|
193
|
+
// Should we allow users to be selected?
|
|
194
|
+
if (['users', '*'].includes(this._data.objectTypes)) {
|
|
195
|
+
usersAndGroups.push(...users);
|
|
196
|
+
}
|
|
197
|
+
// Should we allow groups to be selected
|
|
198
|
+
if (['groups', '*'].includes(this._data.objectTypes)) {
|
|
199
|
+
if (this._data.selectableGroupNames?.length) {
|
|
200
|
+
if (this._data.selectableGroupNames.includes('*')) {
|
|
201
|
+
usersAndGroups.push(...this.groups);
|
|
202
|
+
}
|
|
203
|
+
else {
|
|
204
|
+
this._data.selectableGroupNames
|
|
205
|
+
.forEach(groupName => {
|
|
206
|
+
const group = this.groups.find(g => g.displayName === groupName);
|
|
207
|
+
if (group) {
|
|
208
|
+
usersAndGroups.push({
|
|
209
|
+
...group,
|
|
210
|
+
selected: group.selected
|
|
211
|
+
});
|
|
212
|
+
}
|
|
202
213
|
});
|
|
203
214
|
}
|
|
204
|
-
}
|
|
215
|
+
}
|
|
205
216
|
}
|
|
206
217
|
this.dataSource = new MatTableDataSource(usersAndGroups);
|
|
207
218
|
this.photos = data[1];
|
|
@@ -225,8 +236,8 @@ class UserChooserComponent {
|
|
|
225
236
|
}
|
|
226
237
|
return this.photos?.find(p => (p.employeeNumber && p.employeeNumber.toString() === user.employeeNumber) ||
|
|
227
238
|
p.accountName?.toLowerCase() === user.sAMAccountName.toLowerCase() ||
|
|
228
|
-
p.displayName?.toLowerCase() === user.displayName.toLowerCase() ||
|
|
229
|
-
p.title?.toLowerCase() === user.displayName.toLowerCase())?.encodedAbsUrl;
|
|
239
|
+
p.displayName?.toLowerCase() === (user.displayName ?? user.name).toLowerCase() ||
|
|
240
|
+
p.title?.toLowerCase() === (user.displayName ?? user.name).toLowerCase())?.encodedAbsUrl;
|
|
230
241
|
}
|
|
231
242
|
//#region Exclusions - won't be included in the dataSource at all
|
|
232
243
|
#excludeUsersByAccountName(users) {
|
|
@@ -431,7 +442,7 @@ class UserChooserComponent {
|
|
|
431
442
|
'';
|
|
432
443
|
}
|
|
433
444
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: UserChooserComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
434
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: UserChooserComponent, isStandalone: true, selector: "ng-component", viewQueries: [{ propertyName: "selectionList", first: true, predicate: MatSelectionList, descendants: true, isSignal: 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 @if (dataSource && photos) {\n <form [formGroup]=\"filterForm\">\n @if (dataSource) {\n <mat-form-field>\n <input matInput placeholder=\"Search\" formControlName=\"filter\" #filterInput>\n @if (filterForm.value.filter) {\n <button matSuffix mat-icon-button aria-label=\"Clear\" (click)=\"filterForm.get('filter')?.setValue('')\">\n <mat-icon fontIcon=\"close\"/>\n </button>\n }\n </mat-form-field>\n }\n </form>\n <mat-selection-list [multiple]=\"isMultiMode\"\n (selectionChange)=\"listSelectionChanged($event.options)\">\n @for (user of dataSource.filteredData; track user) {\n <mat-list-option [value]=\"user\" [selected]=\"user.selected\"\n (selectedChange)=\"optionSelectionChanged(option)\" #option>\n @if (getPhoto(user)) {\n <img matListItemAvatar alt=\"\" [src]=\"getPhoto(user)\">\n } @else {\n <mat-icon matListItemAvatar class=\"no-photo\"\n [fontIcon]=\"isUser(user) ? 'account_circle' : 'group'\"/>\n }\n <div class=\"user\">\n <div [matTooltip]=\"tooltip(user)\" class=\"user-name\">\n {{ user.displayName }}\n @if (isUser(user) && _data.showPhone && castUser(user).telephoneNumber) {\n <div>{{ castUser(user).telephoneNumber }}</div>\n }\n </div>\n @if (isUser(user)) {\n <div>{{ castUser(user).department }}</div>\n <div class=\"title\">{{ castUser(user).title }}</div>\n }\n </div>\n </mat-list-option>\n }\n </mat-selection-list>\n } @else {\n <div>\n <mat-spinner [diameter]=\"50\"/>\n <h2 id=\"spinner-message\">Getting users and photos...</h2>\n </div>\n }\n</mat-dialog-content>\n\n<mat-dialog-actions>\n @if (dataSource && photos) {\n @if (selectedOptions.length) {\n <mat-slide-toggle (change)=\"hideUnselectedChanged($event.checked)\">\n Hide Unselected\n </mat-slide-toggle>\n }\n @if (isMultiMode) {\n <button mat-raised-button color=\"primary\" (click)=\"selectAll()\"\n >\n <mat-icon fontIcon=\"select_all\"/>\n <span class=\"hide-mobile\">Select All</span>\n </button>\n }\n @if (isMultiMode && selectedOptions.length) {\n <button mat-raised-button color=\"primary\" (click)=\"deselectAll()\"\n >\n <mat-icon fontIcon=\"clear_all\"/>\n <span class=\"hide-mobile\">Clear All</span>\n </button>\n }\n @if (isMultiMode || !_data.closeWhenSelectionMade) {\n <button mat-raised-button color=\"primary\" (click)=\"close()\" matTooltip=\"Accept your selection\"\n [disabled]=\"!_data.allowCloseWithoutSelections && !selectedOptions.length\">\n <mat-icon fontIcon=\"check\"/>\n <span class=\"hide-mobile\">Ok</span>\n </button>\n }\n }\n\n <button mat-raised-button color=\"warn\" mat-dialog-close matTooltip=\"Close this window\">\n <mat-icon fontIcon=\"close\"/>\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: "component", type: MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type: MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { 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: "directive", type: MatListItemAvatar, selector: "[matListItemAvatar]" }, { kind: "component", type: MatListOption, selector: "mat-list-option", inputs: ["togglePosition", "checkboxPosition", "color", "value", "selected"], outputs: ["selectedChange"], exportAs: ["matListOption"] }, { kind: "component", type: MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: MatSelectionList, selector: "mat-selection-list", inputs: ["color", "compareWith", "multiple", "hideSingleSelectionIndicator", "disabled"], outputs: ["selectionChange"], exportAs: ["matSelectionList"] }, { kind: "component", type: MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "directive", type: MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.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: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] }); }
|
|
445
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: UserChooserComponent, isStandalone: true, selector: "ng-component", viewQueries: [{ propertyName: "selectionList", first: true, predicate: MatSelectionList, descendants: true, isSignal: 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 @if (dataSource && photos) {\n <form [formGroup]=\"filterForm\">\n @if (dataSource) {\n <mat-form-field>\n <input matInput placeholder=\"Search\" formControlName=\"filter\" #filterInput>\n @if (filterForm.value.filter) {\n <button matSuffix mat-icon-button aria-label=\"Clear\" (click)=\"filterForm.get('filter')?.setValue('')\">\n <mat-icon fontIcon=\"close\"/>\n </button>\n }\n </mat-form-field>\n }\n </form>\n <mat-selection-list [multiple]=\"isMultiMode\"\n (selectionChange)=\"listSelectionChanged($event.options)\">\n @for (user of dataSource.filteredData; track user) {\n <mat-list-option [value]=\"user\" [selected]=\"user.selected\"\n (selectedChange)=\"optionSelectionChanged(option)\" #option>\n @if (getPhoto(user)) {\n <img matListItemAvatar alt=\"\" [src]=\"getPhoto(user)\">\n } @else {\n <mat-icon matListItemAvatar class=\"no-photo\"\n [fontIcon]=\"isUser(user) ? 'account_circle' : 'group'\"/>\n }\n <div class=\"user\">\n <div [matTooltip]=\"tooltip(user)\" class=\"user-name\">\n {{ user.displayName ?? user.name }}\n @if (isUser(user) && _data.showPhone && castUser(user).telephoneNumber) {\n <div>{{ castUser(user).telephoneNumber }}</div>\n }\n </div>\n @if (isUser(user)) {\n <div>{{ castUser(user).department }}</div>\n <div class=\"title\">{{ castUser(user).title }}</div>\n }\n </div>\n </mat-list-option>\n }\n </mat-selection-list>\n } @else {\n <div>\n <mat-spinner [diameter]=\"50\"/>\n <h2 id=\"spinner-message\">Getting users and photos...</h2>\n </div>\n }\n</mat-dialog-content>\n\n<mat-dialog-actions>\n @if (dataSource && photos) {\n @if (selectedOptions.length) {\n <mat-slide-toggle (change)=\"hideUnselectedChanged($event.checked)\">\n Hide Unselected\n </mat-slide-toggle>\n }\n @if (isMultiMode) {\n <button mat-raised-button color=\"primary\" (click)=\"selectAll()\"\n >\n <mat-icon fontIcon=\"select_all\"/>\n <span class=\"hide-mobile\">Select All</span>\n </button>\n }\n @if (isMultiMode && selectedOptions.length) {\n <button mat-raised-button color=\"primary\" (click)=\"deselectAll()\"\n >\n <mat-icon fontIcon=\"clear_all\"/>\n <span class=\"hide-mobile\">Clear All</span>\n </button>\n }\n @if (isMultiMode || !_data.closeWhenSelectionMade) {\n <button mat-raised-button color=\"primary\" (click)=\"close()\" matTooltip=\"Accept your selection\"\n [disabled]=\"!_data.allowCloseWithoutSelections && !selectedOptions.length\">\n <mat-icon fontIcon=\"check\"/>\n <span class=\"hide-mobile\">Ok</span>\n </button>\n }\n }\n\n <button mat-raised-button color=\"warn\" mat-dialog-close matTooltip=\"Close this window\">\n <mat-icon fontIcon=\"close\"/>\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: "component", type: MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type: MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { 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: "directive", type: MatListItemAvatar, selector: "[matListItemAvatar]" }, { kind: "component", type: MatListOption, selector: "mat-list-option", inputs: ["togglePosition", "checkboxPosition", "color", "value", "selected"], outputs: ["selectedChange"], exportAs: ["matListOption"] }, { kind: "component", type: MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: MatSelectionList, selector: "mat-selection-list", inputs: ["color", "compareWith", "multiple", "hideSingleSelectionIndicator", "disabled"], outputs: ["selectionChange"], exportAs: ["matSelectionList"] }, { kind: "component", type: MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "directive", type: MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.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: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] }); }
|
|
435
446
|
}
|
|
436
447
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: UserChooserComponent, decorators: [{
|
|
437
448
|
type: Component,
|
|
@@ -451,7 +462,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImpor
|
|
|
451
462
|
MatSlideToggle,
|
|
452
463
|
MatTooltip,
|
|
453
464
|
ReactiveFormsModule,
|
|
454
|
-
], 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 @if (dataSource && photos) {\n <form [formGroup]=\"filterForm\">\n @if (dataSource) {\n <mat-form-field>\n <input matInput placeholder=\"Search\" formControlName=\"filter\" #filterInput>\n @if (filterForm.value.filter) {\n <button matSuffix mat-icon-button aria-label=\"Clear\" (click)=\"filterForm.get('filter')?.setValue('')\">\n <mat-icon fontIcon=\"close\"/>\n </button>\n }\n </mat-form-field>\n }\n </form>\n <mat-selection-list [multiple]=\"isMultiMode\"\n (selectionChange)=\"listSelectionChanged($event.options)\">\n @for (user of dataSource.filteredData; track user) {\n <mat-list-option [value]=\"user\" [selected]=\"user.selected\"\n (selectedChange)=\"optionSelectionChanged(option)\" #option>\n @if (getPhoto(user)) {\n <img matListItemAvatar alt=\"\" [src]=\"getPhoto(user)\">\n } @else {\n <mat-icon matListItemAvatar class=\"no-photo\"\n [fontIcon]=\"isUser(user) ? 'account_circle' : 'group'\"/>\n }\n <div class=\"user\">\n <div [matTooltip]=\"tooltip(user)\" class=\"user-name\">\n {{ user.displayName }}\n @if (isUser(user) && _data.showPhone && castUser(user).telephoneNumber) {\n <div>{{ castUser(user).telephoneNumber }}</div>\n }\n </div>\n @if (isUser(user)) {\n <div>{{ castUser(user).department }}</div>\n <div class=\"title\">{{ castUser(user).title }}</div>\n }\n </div>\n </mat-list-option>\n }\n </mat-selection-list>\n } @else {\n <div>\n <mat-spinner [diameter]=\"50\"/>\n <h2 id=\"spinner-message\">Getting users and photos...</h2>\n </div>\n }\n</mat-dialog-content>\n\n<mat-dialog-actions>\n @if (dataSource && photos) {\n @if (selectedOptions.length) {\n <mat-slide-toggle (change)=\"hideUnselectedChanged($event.checked)\">\n Hide Unselected\n </mat-slide-toggle>\n }\n @if (isMultiMode) {\n <button mat-raised-button color=\"primary\" (click)=\"selectAll()\"\n >\n <mat-icon fontIcon=\"select_all\"/>\n <span class=\"hide-mobile\">Select All</span>\n </button>\n }\n @if (isMultiMode && selectedOptions.length) {\n <button mat-raised-button color=\"primary\" (click)=\"deselectAll()\"\n >\n <mat-icon fontIcon=\"clear_all\"/>\n <span class=\"hide-mobile\">Clear All</span>\n </button>\n }\n @if (isMultiMode || !_data.closeWhenSelectionMade) {\n <button mat-raised-button color=\"primary\" (click)=\"close()\" matTooltip=\"Accept your selection\"\n [disabled]=\"!_data.allowCloseWithoutSelections && !selectedOptions.length\">\n <mat-icon fontIcon=\"check\"/>\n <span class=\"hide-mobile\">Ok</span>\n </button>\n }\n }\n\n <button mat-raised-button color=\"warn\" mat-dialog-close matTooltip=\"Close this window\">\n <mat-icon fontIcon=\"close\"/>\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"] }]
|
|
465
|
+
], 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 @if (dataSource && photos) {\n <form [formGroup]=\"filterForm\">\n @if (dataSource) {\n <mat-form-field>\n <input matInput placeholder=\"Search\" formControlName=\"filter\" #filterInput>\n @if (filterForm.value.filter) {\n <button matSuffix mat-icon-button aria-label=\"Clear\" (click)=\"filterForm.get('filter')?.setValue('')\">\n <mat-icon fontIcon=\"close\"/>\n </button>\n }\n </mat-form-field>\n }\n </form>\n <mat-selection-list [multiple]=\"isMultiMode\"\n (selectionChange)=\"listSelectionChanged($event.options)\">\n @for (user of dataSource.filteredData; track user) {\n <mat-list-option [value]=\"user\" [selected]=\"user.selected\"\n (selectedChange)=\"optionSelectionChanged(option)\" #option>\n @if (getPhoto(user)) {\n <img matListItemAvatar alt=\"\" [src]=\"getPhoto(user)\">\n } @else {\n <mat-icon matListItemAvatar class=\"no-photo\"\n [fontIcon]=\"isUser(user) ? 'account_circle' : 'group'\"/>\n }\n <div class=\"user\">\n <div [matTooltip]=\"tooltip(user)\" class=\"user-name\">\n {{ user.displayName ?? user.name }}\n @if (isUser(user) && _data.showPhone && castUser(user).telephoneNumber) {\n <div>{{ castUser(user).telephoneNumber }}</div>\n }\n </div>\n @if (isUser(user)) {\n <div>{{ castUser(user).department }}</div>\n <div class=\"title\">{{ castUser(user).title }}</div>\n }\n </div>\n </mat-list-option>\n }\n </mat-selection-list>\n } @else {\n <div>\n <mat-spinner [diameter]=\"50\"/>\n <h2 id=\"spinner-message\">Getting users and photos...</h2>\n </div>\n }\n</mat-dialog-content>\n\n<mat-dialog-actions>\n @if (dataSource && photos) {\n @if (selectedOptions.length) {\n <mat-slide-toggle (change)=\"hideUnselectedChanged($event.checked)\">\n Hide Unselected\n </mat-slide-toggle>\n }\n @if (isMultiMode) {\n <button mat-raised-button color=\"primary\" (click)=\"selectAll()\"\n >\n <mat-icon fontIcon=\"select_all\"/>\n <span class=\"hide-mobile\">Select All</span>\n </button>\n }\n @if (isMultiMode && selectedOptions.length) {\n <button mat-raised-button color=\"primary\" (click)=\"deselectAll()\"\n >\n <mat-icon fontIcon=\"clear_all\"/>\n <span class=\"hide-mobile\">Clear All</span>\n </button>\n }\n @if (isMultiMode || !_data.closeWhenSelectionMade) {\n <button mat-raised-button color=\"primary\" (click)=\"close()\" matTooltip=\"Accept your selection\"\n [disabled]=\"!_data.allowCloseWithoutSelections && !selectedOptions.length\">\n <mat-icon fontIcon=\"check\"/>\n <span class=\"hide-mobile\">Ok</span>\n </button>\n }\n }\n\n <button mat-raised-button color=\"warn\" mat-dialog-close matTooltip=\"Close this window\">\n <mat-icon fontIcon=\"close\"/>\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"] }]
|
|
455
466
|
}], propDecorators: { filterInput: [{
|
|
456
467
|
type: ViewChild,
|
|
457
468
|
args: ['filterInput']
|
|
@@ -581,8 +592,8 @@ class UserFormFieldComponent {
|
|
|
581
592
|
}
|
|
582
593
|
return this.photos?.find(p => (p.employeeNumber && p.employeeNumber.toString() === user.employeeNumber) ||
|
|
583
594
|
p.accountName?.toLowerCase() === user.sAMAccountName.toLowerCase() ||
|
|
584
|
-
p.displayName?.toLowerCase() === user.displayName.toLowerCase() ||
|
|
585
|
-
p.title?.toLowerCase() === user.displayName.toLowerCase())?.encodedAbsUrl;
|
|
595
|
+
p.displayName?.toLowerCase() === (user.displayName ?? user.name).toLowerCase() ||
|
|
596
|
+
p.title?.toLowerCase() === (user.displayName ?? user.name).toLowerCase())?.encodedAbsUrl;
|
|
586
597
|
}
|
|
587
598
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: UserFormFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
588
599
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", 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: "\n<!-- In Microsoft Edge, selectUser() never gets called if the input fields are disabled\nSo... I'm dynamically setting the disabled property based on whether or not the browser is Edge.\nIt's definitely a better experience if the field IS disabled.\nOtherwise, it's confusing - especially because Edge is SO SLOW to display the resulting dialog window.\n-->\n<!-- Update 8/24/2023:\nThe above problem also exists in Chrome now.\nSo instead of dynamically setting [disabled] based on browser type,\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/\n-->\n\n@if (users && photos) {\n <div (click)=\"selectUser()\" [class.clickable]=\"clickable()\">\n @if (accountNames?.length) {\n <div [ngClass]=\"class\">\n @for (accountName of accountNames; track accountName; let i = $index) {\n <div class=\"user\">\n <!--<img *ngIf=\"accountName && empUtils.getEmployee(accountName)\" alt=\"\" [src]=\"empUtils.getEmployee(accountName) | employeePhotoUrl:cacheService.photos\">-->\n @if (getPhoto(accountName)) {\n <img matListItemAvatar alt=\"\" [src]=\"getPhoto(accountName)\">\n }\n @if (getGroup(accountName)) {\n <mat-icon>group</mat-icon>\n }\n <mat-form-field>\n <!-- [disabled]=\"!isEdge\" -->\n <input matInput disabled [placeholder]=\"i === 0 ? placeholder() : ''\"\n [value]=\"getUser(accountName)?.displayName ?? getGroup(accountName)?.displayName ?? accountName\">\n <button matSuffix mat-icon-button aria-label=\"Clear\" (click)=\"$event.stopPropagation(); unSelectUser(accountName)\">\n <mat-icon fontIcon=\"close\"/>\n </button>\n </mat-form-field>\n </div>\n }\n </div>\n } @else {\n <mat-form-field>\n <input matInput disabled [placeholder]=\"placeholder()\"> <!-- [disabled]=\"!isEdge\" -->\n </mat-form-field>\n }\n </div>\n} @else {\n <mat-progress-bar mode=\"indeterminate\"/>\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"] }] }); }
|