@rlucan/ui 14.2.4 → 14.2.6
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/esm2022/lib/action-button/action-button.component.mjs +99 -0
- package/esm2022/lib/action-icon/action-icon.component.mjs +37 -0
- package/esm2022/lib/autocomplete/autocomplete.component.mjs +391 -0
- package/esm2022/lib/avatar/avatar.component.mjs +34 -0
- package/esm2022/lib/button/button.component.mjs +57 -0
- package/esm2022/lib/checkbox/checkbox.component.mjs +39 -0
- package/{esm2020 → esm2022}/lib/checkbox-group/checkbox-group.component.mjs +91 -91
- package/esm2022/lib/currency/currency.component.mjs +151 -0
- package/esm2022/lib/date/date.component.mjs +68 -0
- package/{esm2020 → esm2022}/lib/dialog/dialog.component.mjs +37 -37
- package/esm2022/lib/directives/force-visibility/force-visibility.directive.mjs +104 -0
- package/esm2022/lib/editor/editor.component.mjs +119 -0
- package/{esm2020 → esm2022}/lib/elements/burger/burger.component.mjs +21 -21
- package/{esm2020 → esm2022}/lib/elements/expander/expander.component.mjs +28 -28
- package/{esm2020 → esm2022}/lib/elements/validation-message/validation-message.component.mjs +47 -47
- package/esm2022/lib/file/file.component.mjs +145 -0
- package/esm2022/lib/file-uploader/ui-file-uploader.component.mjs +405 -0
- package/esm2022/lib/input/input.component.mjs +265 -0
- package/esm2022/lib/input-autocomplete/input-autocomplete.component.mjs +277 -0
- package/esm2022/lib/layouts/base/ui-base-layout.component.mjs +22 -0
- package/esm2022/lib/layouts/base/ui-base.component.mjs +74 -0
- package/esm2022/lib/layouts/simple/ui-simple-layout.component.mjs +18 -0
- package/esm2022/lib/layouts/simple/ui-simple.component.mjs +166 -0
- package/{esm2020 → esm2022}/lib/radio/radio.component.mjs +21 -21
- package/esm2022/lib/radio-group/radio-group.component.mjs +53 -0
- package/esm2022/lib/select/select.component.mjs +115 -0
- package/esm2022/lib/services/message-box.service.mjs +149 -0
- package/{esm2020 → esm2022}/lib/services/toast.service.mjs +23 -23
- package/{esm2020 → esm2022}/lib/services/ui-file.service.mjs +71 -71
- package/{esm2020 → esm2022}/lib/services/ui-translate.service.mjs +32 -32
- package/{esm2020 → esm2022}/lib/submit-button/submit-button.component.mjs +72 -72
- package/esm2022/lib/table/table.component.mjs +97 -0
- package/esm2022/lib/text-area/text-area.component.mjs +46 -0
- package/{esm2020 → esm2022}/lib/ui.model.mjs +1 -1
- package/esm2022/lib/ui.module.mjs +269 -0
- package/esm2022/public-api.mjs +35 -0
- package/{esm2020 → esm2022}/rlucan-ui.mjs +4 -4
- package/fesm2022/rlucan-ui.mjs +3442 -0
- package/fesm2022/rlucan-ui.mjs.map +1 -0
- package/index.d.ts +5 -5
- package/lib/action-button/action-button.component.d.ts +32 -33
- package/lib/action-icon/action-icon.component.d.ts +15 -15
- package/lib/autocomplete/autocomplete.component.d.ts +57 -57
- package/lib/avatar/avatar.component.d.ts +14 -14
- package/lib/button/button.component.d.ts +18 -18
- package/lib/checkbox/checkbox.component.d.ts +15 -15
- package/lib/checkbox-group/checkbox-group.component.d.ts +18 -18
- package/lib/currency/currency.component.d.ts +31 -30
- package/lib/date/date.component.d.ts +24 -23
- package/lib/dialog/dialog.component.d.ts +13 -13
- package/lib/directives/force-visibility/force-visibility.directive.d.ts +22 -20
- package/lib/editor/editor.component.d.ts +24 -0
- package/lib/elements/burger/burger.component.d.ts +9 -9
- package/lib/elements/expander/expander.component.d.ts +10 -10
- package/lib/elements/validation-message/validation-message.component.d.ts +12 -12
- package/lib/file/file.component.d.ts +35 -29
- package/lib/file-uploader/ui-file-uploader.component.d.ts +102 -102
- package/lib/input/input.component.d.ts +42 -29
- package/lib/input-autocomplete/input-autocomplete.component.d.ts +44 -0
- package/lib/{base → layouts/base}/ui-base-layout.component.d.ts +8 -8
- package/lib/{base → layouts/base}/ui-base.component.d.ts +23 -23
- package/lib/{simple → layouts/simple}/ui-simple-layout.component.d.ts +8 -7
- package/lib/{simple → layouts/simple}/ui-simple.component.d.ts +40 -39
- package/lib/radio/radio.component.d.ts +8 -8
- package/lib/radio-group/radio-group.component.d.ts +18 -18
- package/lib/select/select.component.d.ts +35 -33
- package/lib/services/message-box.service.d.ts +58 -42
- package/lib/services/toast.service.d.ts +13 -13
- package/lib/services/ui-file.service.d.ts +33 -33
- package/lib/services/ui-translate.service.d.ts +11 -11
- package/lib/submit-button/submit-button.component.d.ts +21 -21
- package/lib/table/table.component.d.ts +36 -36
- package/lib/text-area/text-area.component.d.ts +18 -18
- package/lib/ui.model.d.ts +2 -2
- package/lib/ui.module.d.ts +59 -56
- package/package.json +22 -24
- package/public-api.d.ts +29 -27
- package/scss/ui-defaults.scss +19 -4
- package/src/js/editorjs.mjs +9634 -0
- package/ui.scss +70 -20
- package/esm2020/lib/action-button/action-button.component.mjs +0 -96
- package/esm2020/lib/action-icon/action-icon.component.mjs +0 -37
- package/esm2020/lib/autocomplete/autocomplete.component.mjs +0 -391
- package/esm2020/lib/avatar/avatar.component.mjs +0 -34
- package/esm2020/lib/base/ui-base-layout.component.mjs +0 -22
- package/esm2020/lib/base/ui-base.component.mjs +0 -74
- package/esm2020/lib/button/button.component.mjs +0 -57
- package/esm2020/lib/checkbox/checkbox.component.mjs +0 -39
- package/esm2020/lib/currency/currency.component.mjs +0 -148
- package/esm2020/lib/date/date.component.mjs +0 -64
- package/esm2020/lib/directives/force-visibility/force-visibility.directive.mjs +0 -96
- package/esm2020/lib/file/file.component.mjs +0 -88
- package/esm2020/lib/file-uploader/ui-file-uploader.component.mjs +0 -394
- package/esm2020/lib/input/input.component.mjs +0 -258
- package/esm2020/lib/radio-group/radio-group.component.mjs +0 -53
- package/esm2020/lib/select/select.component.mjs +0 -91
- package/esm2020/lib/services/message-box.service.mjs +0 -113
- package/esm2020/lib/simple/ui-simple-layout.component.mjs +0 -15
- package/esm2020/lib/simple/ui-simple.component.mjs +0 -154
- package/esm2020/lib/table/table.component.mjs +0 -97
- package/esm2020/lib/text-area/text-area.component.mjs +0 -46
- package/esm2020/lib/ui.module.mjs +0 -255
- package/esm2020/public-api.mjs +0 -33
- package/fesm2015/rlucan-ui.mjs +0 -2918
- package/fesm2015/rlucan-ui.mjs.map +0 -1
- package/fesm2020/rlucan-ui.mjs +0 -2886
- package/fesm2020/rlucan-ui.mjs.map +0 -1
package/{esm2020 → esm2022}/lib/elements/validation-message/validation-message.component.mjs
RENAMED
|
@@ -1,47 +1,47 @@
|
|
|
1
|
-
import { Component, Inject, Input } from '@angular/core';
|
|
2
|
-
import { UI_TRANSLATESERVICE } from '../../services/ui-translate.service';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export class ValidationMessageComponent {
|
|
5
|
-
constructor(translateService) {
|
|
6
|
-
this.translateService = translateService;
|
|
7
|
-
}
|
|
8
|
-
ngOnInit() {
|
|
9
|
-
}
|
|
10
|
-
get errorMessage() {
|
|
11
|
-
let e = { code: 'Neznámá chyba' };
|
|
12
|
-
const errors = this.validationErrors;
|
|
13
|
-
if (errors) {
|
|
14
|
-
Object.keys(errors).find(a => {
|
|
15
|
-
e = { code: a, data: errors[a] };
|
|
16
|
-
return true;
|
|
17
|
-
});
|
|
18
|
-
switch (e.code) {
|
|
19
|
-
case 'required':
|
|
20
|
-
case 'cbGroupRequired':
|
|
21
|
-
case 'email':
|
|
22
|
-
case 'matDatepickerParse':
|
|
23
|
-
case 'maxlength':
|
|
24
|
-
case 'minlength':
|
|
25
|
-
return this.translateService.instant('ui.controls.validation.' + e.code, e.data);
|
|
26
|
-
case 'positive':
|
|
27
|
-
return this.translateService.instant(isNaN(Number(e.data)) ? 'ui.controls.validation.invalidNumber' : 'ui.controls.validation.positive');
|
|
28
|
-
case 'custom':
|
|
29
|
-
return this.translateService.instant(e.data);
|
|
30
|
-
default:
|
|
31
|
-
return this.translateService.instant(e.code);
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
39
|
-
type: Component,
|
|
40
|
-
args: [{ selector: 'ui-validation-message', template: "{{ errorMessage }}\r\n" }]
|
|
41
|
-
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
42
|
-
type: Inject,
|
|
43
|
-
args: [UI_TRANSLATESERVICE]
|
|
44
|
-
}] }]; }, propDecorators: { validationErrors: [{
|
|
45
|
-
type: Input
|
|
46
|
-
}] } });
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { Component, Inject, Input } from '@angular/core';
|
|
2
|
+
import { UI_TRANSLATESERVICE } from '../../services/ui-translate.service';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class ValidationMessageComponent {
|
|
5
|
+
constructor(translateService) {
|
|
6
|
+
this.translateService = translateService;
|
|
7
|
+
}
|
|
8
|
+
ngOnInit() {
|
|
9
|
+
}
|
|
10
|
+
get errorMessage() {
|
|
11
|
+
let e = { code: 'Neznámá chyba' };
|
|
12
|
+
const errors = this.validationErrors;
|
|
13
|
+
if (errors) {
|
|
14
|
+
Object.keys(errors).find(a => {
|
|
15
|
+
e = { code: a, data: errors[a] };
|
|
16
|
+
return true;
|
|
17
|
+
});
|
|
18
|
+
switch (e.code) {
|
|
19
|
+
case 'required':
|
|
20
|
+
case 'cbGroupRequired':
|
|
21
|
+
case 'email':
|
|
22
|
+
case 'matDatepickerParse':
|
|
23
|
+
case 'maxlength':
|
|
24
|
+
case 'minlength':
|
|
25
|
+
return this.translateService.instant('ui.controls.validation.' + e.code, e.data);
|
|
26
|
+
case 'positive':
|
|
27
|
+
return this.translateService.instant(isNaN(Number(e.data)) ? 'ui.controls.validation.invalidNumber' : 'ui.controls.validation.positive');
|
|
28
|
+
case 'custom':
|
|
29
|
+
return this.translateService.instant(e.data);
|
|
30
|
+
default:
|
|
31
|
+
return this.translateService.instant(e.code);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: ValidationMessageComponent, deps: [{ token: UI_TRANSLATESERVICE }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
36
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.11", type: ValidationMessageComponent, selector: "ui-validation-message", inputs: { validationErrors: "validationErrors" }, ngImport: i0, template: "{{ errorMessage }}\r\n" }); }
|
|
37
|
+
}
|
|
38
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: ValidationMessageComponent, decorators: [{
|
|
39
|
+
type: Component,
|
|
40
|
+
args: [{ selector: 'ui-validation-message', template: "{{ errorMessage }}\r\n" }]
|
|
41
|
+
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
42
|
+
type: Inject,
|
|
43
|
+
args: [UI_TRANSLATESERVICE]
|
|
44
|
+
}] }]; }, propDecorators: { validationErrors: [{
|
|
45
|
+
type: Input
|
|
46
|
+
}] } });
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi1tZXNzYWdlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvZWxlbWVudHMvdmFsaWRhdGlvbi1tZXNzYWdlL3ZhbGlkYXRpb24tbWVzc2FnZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2VsZW1lbnRzL3ZhbGlkYXRpb24tbWVzc2FnZS92YWxpZGF0aW9uLW1lc3NhZ2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2pFLE9BQU8sRUFBdUIsbUJBQW1CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7QUFNL0YsTUFBTSxPQUFPLDBCQUEwQjtJQUlyQyxZQUFtRCxnQkFBcUM7UUFBckMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFxQjtJQUFJLENBQUM7SUFFN0YsUUFBUTtJQUNSLENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDZCxJQUFJLENBQUMsR0FBUSxFQUFDLElBQUksRUFBRSxlQUFlLEVBQUMsQ0FBQztRQUNyQyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7UUFDckMsSUFBSSxNQUFNLEVBQUU7WUFDVixNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDM0IsQ0FBQyxHQUFHLEVBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUM7Z0JBQy9CLE9BQU8sSUFBSSxDQUFDO1lBQ2QsQ0FBQyxDQUFDLENBQUM7WUFDSCxRQUFRLENBQUMsQ0FBQyxJQUFJLEVBQUU7Z0JBQ2QsS0FBSyxVQUFVLENBQUM7Z0JBQ2hCLEtBQUssaUJBQWlCLENBQUM7Z0JBQ3ZCLEtBQUssT0FBTyxDQUFDO2dCQUNiLEtBQUssb0JBQW9CLENBQUM7Z0JBQzFCLEtBQUssV0FBVyxDQUFDO2dCQUNqQixLQUFLLFdBQVc7b0JBQ2QsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLHlCQUF5QixHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNuRixLQUFLLFVBQVU7b0JBQ2IsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLHNDQUFzQyxDQUFDLENBQUMsQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO2dCQUMzSSxLQUFLLFFBQVE7b0JBQ1gsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDL0M7b0JBQ0UsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUNoRDtTQUNGO0lBQ0gsQ0FBQzsrR0FqQ1UsMEJBQTBCLGtCQUlqQixtQkFBbUI7bUdBSjVCLDBCQUEwQiwrR0NQdkMsd0JBQ0E7OzRGRE1hLDBCQUEwQjtrQkFKdEMsU0FBUzsrQkFDRSx1QkFBdUI7OzBCQU9wQixNQUFNOzJCQUFDLG1CQUFtQjs0Q0FGOUIsZ0JBQWdCO3NCQUF4QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSVVpVHJhbnNsYXRlU2VydmljZSwgVUlfVFJBTlNMQVRFU0VSVklDRSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3VpLXRyYW5zbGF0ZS5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndWktdmFsaWRhdGlvbi1tZXNzYWdlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdmFsaWRhdGlvbi1tZXNzYWdlLmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVmFsaWRhdGlvbk1lc3NhZ2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBASW5wdXQoKSB2YWxpZGF0aW9uRXJyb3JzO1xyXG5cclxuICBjb25zdHJ1Y3RvcihASW5qZWN0KFVJX1RSQU5TTEFURVNFUlZJQ0UpIHByb3RlY3RlZCB0cmFuc2xhdGVTZXJ2aWNlOiBJVWlUcmFuc2xhdGVTZXJ2aWNlKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgfVxyXG5cclxuICBnZXQgZXJyb3JNZXNzYWdlKCk6IHN0cmluZyB7XHJcbiAgICBsZXQgZTogYW55ID0ge2NvZGU6ICdOZXpuw6Ftw6EgY2h5YmEnfTtcclxuICAgIGNvbnN0IGVycm9ycyA9IHRoaXMudmFsaWRhdGlvbkVycm9ycztcclxuICAgIGlmIChlcnJvcnMpIHtcclxuICAgICAgT2JqZWN0LmtleXMoZXJyb3JzKS5maW5kKGEgPT4ge1xyXG4gICAgICAgIGUgPSB7Y29kZTogYSwgZGF0YTogZXJyb3JzW2FdfTtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgfSk7XHJcbiAgICAgIHN3aXRjaCAoZS5jb2RlKSB7XHJcbiAgICAgICAgY2FzZSAncmVxdWlyZWQnOlxyXG4gICAgICAgIGNhc2UgJ2NiR3JvdXBSZXF1aXJlZCc6XHJcbiAgICAgICAgY2FzZSAnZW1haWwnOlxyXG4gICAgICAgIGNhc2UgJ21hdERhdGVwaWNrZXJQYXJzZSc6XHJcbiAgICAgICAgY2FzZSAnbWF4bGVuZ3RoJzpcclxuICAgICAgICBjYXNlICdtaW5sZW5ndGgnOlxyXG4gICAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCd1aS5jb250cm9scy52YWxpZGF0aW9uLicgKyBlLmNvZGUsIGUuZGF0YSk7XHJcbiAgICAgICAgY2FzZSAncG9zaXRpdmUnOlxyXG4gICAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KGlzTmFOKE51bWJlcihlLmRhdGEpKSA/ICd1aS5jb250cm9scy52YWxpZGF0aW9uLmludmFsaWROdW1iZXInIDogJ3VpLmNvbnRyb2xzLnZhbGlkYXRpb24ucG9zaXRpdmUnKTtcclxuICAgICAgICBjYXNlICdjdXN0b20nOlxyXG4gICAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KGUuZGF0YSk7XHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChlLmNvZGUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsInt7IGVycm9yTWVzc2FnZSB9fVxyXG4iXX0=
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
import { Component, HostBinding, Inject, Input, Optional } from '@angular/core';
|
|
2
|
+
import { UI_FILESERVICE } from '../services/ui-file.service';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/platform-browser";
|
|
5
|
+
import * as i2 from "../services/ui-file.service";
|
|
6
|
+
import * as i3 from "@angular/common";
|
|
7
|
+
import * as i4 from "@angular/material/progress-spinner";
|
|
8
|
+
export class FileComponent {
|
|
9
|
+
get fitImageFileSize() {
|
|
10
|
+
if (!this.fileServiceConfig.imageSizes[this.fileSize]) {
|
|
11
|
+
console.error('Missing filesize for ' + this.fileSize);
|
|
12
|
+
}
|
|
13
|
+
return this.fileServiceConfig.imageSizes[this.fileSize][0] < 0 || this.fileServiceConfig.imageSizes[this.fileSize][1] < 0;
|
|
14
|
+
}
|
|
15
|
+
get width() {
|
|
16
|
+
if (this.fitImageFileSize) {
|
|
17
|
+
if (this.nativeFileSizeRatio === -1) {
|
|
18
|
+
return '100%';
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
return this.nativeFileWidth + 'px';
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
return this.fileServiceConfig.imageSizes[this.fileSize] ? this.fileServiceConfig.imageSizes[this.fileSize][0] + 'px' : undefined;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
get maxWidth() {
|
|
29
|
+
if (this.fileServiceConfig.imageSizes[this.fileSize][0] < 0) {
|
|
30
|
+
return this.width;
|
|
31
|
+
}
|
|
32
|
+
return this.fileServiceConfig.imageSizes[this.fileSize] ? this.fileServiceConfig.imageSizes[this.fileSize][0] + 'px' : undefined;
|
|
33
|
+
}
|
|
34
|
+
get height() {
|
|
35
|
+
if (this.fitImageFileSize) {
|
|
36
|
+
if (this.nativeFileSizeRatio === -1) {
|
|
37
|
+
return '100%';
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
return this.nativeFileHeight + 'px';
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
return this.fileServiceConfig.imageSizes[this.fileSize] ? this.fileServiceConfig.imageSizes[this.fileSize][1] + 'px' : undefined;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
get maxHeight() {
|
|
48
|
+
if (this.fileServiceConfig.imageSizes[this.fileSize][1] < 0) {
|
|
49
|
+
return this.height;
|
|
50
|
+
}
|
|
51
|
+
return this.fileServiceConfig.imageSizes[this.fileSize] ? this.fileServiceConfig.imageSizes[this.fileSize][1] + 'px' : undefined;
|
|
52
|
+
}
|
|
53
|
+
get isVideo() {
|
|
54
|
+
return this.mime.startsWith('video/');
|
|
55
|
+
}
|
|
56
|
+
get mime() {
|
|
57
|
+
if (this.srcUrlMimeType) {
|
|
58
|
+
return this.srcUrlMimeType;
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
if (this.srcData.nativeFile) {
|
|
62
|
+
return this.srcData.nativeFile.type;
|
|
63
|
+
}
|
|
64
|
+
return this.fileServiceConfig.getMimeType(this.srcData);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
get useRetinaSrc() {
|
|
68
|
+
return this.fileServiceConfig.useRetinaSrc;
|
|
69
|
+
}
|
|
70
|
+
constructor(fileServiceConfig, domSanitizer, fileService) {
|
|
71
|
+
this.fileServiceConfig = fileServiceConfig;
|
|
72
|
+
this.domSanitizer = domSanitizer;
|
|
73
|
+
this.fileService = fileService;
|
|
74
|
+
this.fileSize = 'default';
|
|
75
|
+
this.visible = false;
|
|
76
|
+
this.nativeFileSizeRatio = -1;
|
|
77
|
+
}
|
|
78
|
+
ngOnInit() {
|
|
79
|
+
}
|
|
80
|
+
ngOnChanges(changes) {
|
|
81
|
+
if (changes.srcData) {
|
|
82
|
+
this.nativeFileSizeRatio = -1;
|
|
83
|
+
if (changes.srcData.currentValue.nativeFile) {
|
|
84
|
+
this.src = this.domSanitizer.bypassSecurityTrustUrl(URL.createObjectURL(changes.srcData.currentValue.nativeFile));
|
|
85
|
+
const img = new Image();
|
|
86
|
+
img.onload = () => {
|
|
87
|
+
if (this.fitImageFileSize) {
|
|
88
|
+
this.nativeFileSizeRatio = Math.max(img.width / this.fileServiceConfig.imageSizes[this.fileSize][0], img.height / this.fileServiceConfig.imageSizes[this.fileSize][1], 1);
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
this.nativeFileSizeRatio = 1;
|
|
92
|
+
}
|
|
93
|
+
this.nativeFileWidth = img.width / this.nativeFileSizeRatio;
|
|
94
|
+
this.nativeFileHeight = img.height / this.nativeFileSizeRatio;
|
|
95
|
+
URL.revokeObjectURL(img.src);
|
|
96
|
+
};
|
|
97
|
+
img.src = URL.createObjectURL(changes.srcData.currentValue.nativeFile);
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
this.src = this.fileServiceConfig.getMediaSrc(this.fileSize, changes.srcData.currentValue, this.srcOptions);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
if (changes.srcUrl) {
|
|
104
|
+
this.src = changes.srcUrl.currentValue?.src;
|
|
105
|
+
if (this.src) {
|
|
106
|
+
this.srcUrlMimeType = changes.srcUrl.currentValue?.mimeType || 'image/png';
|
|
107
|
+
}
|
|
108
|
+
else {
|
|
109
|
+
this.srcUrlMimeType = undefined;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: FileComponent, deps: [{ token: UI_FILESERVICE, optional: true }, { token: i1.DomSanitizer }, { token: i2.UiFileService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
114
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.11", type: FileComponent, selector: "ui-file", inputs: { fileSize: "fileSize", srcOptions: "srcOptions", srcData: "srcData", srcUrl: "srcUrl" }, host: { properties: { "style.width": "this.width", "style.maxWidth": "this.maxWidth", "style.height": "this.height", "style.maxHeight": "this.maxHeight" } }, usesOnChanges: true, ngImport: i0, template: "<mat-spinner *ngIf=\"visible\"></mat-spinner>\r\n<img *ngIf=\"!isVideo && useRetinaSrc\" [src]=\"src\" [srcset]=\"src + ' 2x'\"/>\r\n<img *ngIf=\"!isVideo && !useRetinaSrc\" [src]=\"src\"/>\r\n<video *ngIf=\"isVideo\" muted controls [src]=\"src\"></video>\r\n\r\n", styles: [":host{display:flex;align-items:center;justify-content:center;position:relative}:host img,:host video{max-width:100%;max-height:100%}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }] }); }
|
|
115
|
+
}
|
|
116
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: FileComponent, decorators: [{
|
|
117
|
+
type: Component,
|
|
118
|
+
args: [{ selector: 'ui-file', template: "<mat-spinner *ngIf=\"visible\"></mat-spinner>\r\n<img *ngIf=\"!isVideo && useRetinaSrc\" [src]=\"src\" [srcset]=\"src + ' 2x'\"/>\r\n<img *ngIf=\"!isVideo && !useRetinaSrc\" [src]=\"src\"/>\r\n<video *ngIf=\"isVideo\" muted controls [src]=\"src\"></video>\r\n\r\n", styles: [":host{display:flex;align-items:center;justify-content:center;position:relative}:host img,:host video{max-width:100%;max-height:100%}\n"] }]
|
|
119
|
+
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
120
|
+
type: Optional
|
|
121
|
+
}, {
|
|
122
|
+
type: Inject,
|
|
123
|
+
args: [UI_FILESERVICE]
|
|
124
|
+
}] }, { type: i1.DomSanitizer }, { type: i2.UiFileService }]; }, propDecorators: { fileSize: [{
|
|
125
|
+
type: Input
|
|
126
|
+
}], srcOptions: [{
|
|
127
|
+
type: Input
|
|
128
|
+
}], srcData: [{
|
|
129
|
+
type: Input
|
|
130
|
+
}], srcUrl: [{
|
|
131
|
+
type: Input
|
|
132
|
+
}], width: [{
|
|
133
|
+
type: HostBinding,
|
|
134
|
+
args: ['style.width']
|
|
135
|
+
}], maxWidth: [{
|
|
136
|
+
type: HostBinding,
|
|
137
|
+
args: ['style.maxWidth']
|
|
138
|
+
}], height: [{
|
|
139
|
+
type: HostBinding,
|
|
140
|
+
args: ['style.height']
|
|
141
|
+
}], maxHeight: [{
|
|
142
|
+
type: HostBinding,
|
|
143
|
+
args: ['style.maxHeight']
|
|
144
|
+
}] } });
|
|
145
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2ZpbGUvZmlsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2ZpbGUvZmlsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFxQixRQUFRLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ2xILE9BQU8sRUFBa0IsY0FBYyxFQUFpQixNQUFNLDZCQUE2QixDQUFDOzs7Ozs7QUFRNUYsTUFBTSxPQUFPLGFBQWE7SUFNeEIsSUFBSSxnQkFBZ0I7UUFDbEIsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ3JELE9BQU8sQ0FBQyxLQUFLLENBQUMsdUJBQXVCLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQ3hEO1FBQ0QsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQzNILENBQUM7SUFTRCxJQUNJLEtBQUs7UUFDUCxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUN6QixJQUFJLElBQUksQ0FBQyxtQkFBbUIsS0FBSyxDQUFDLENBQUMsRUFBRTtnQkFDbkMsT0FBTyxNQUFNLENBQUM7YUFDZjtpQkFBTTtnQkFDTCxPQUFPLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFBO2FBQ25DO1NBQ0Y7YUFBTTtZQUNM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QyxnQkFBZ0I7Z0JBU3pCLE1BQU07c0JBRFQsV0FBVzt1QkFBQyxjQUFjO2dCQWN2QixTQUFTO3NCQURaLFdBQVc7dUJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBIb3N0QmluZGluZywgSW5qZWN0LCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIE9wdGlvbmFsLCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IElVaUZpbGVTZXJ2aWNlLCBVSV9GSUxFU0VSVklDRSwgVWlGaWxlU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3VpLWZpbGUuc2VydmljZSc7XHJcbmltcG9ydCB7IERvbVNhbml0aXplciB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd1aS1maWxlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZmlsZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZmlsZS5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGaWxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xyXG5cclxuICBASW5wdXQoKSBmaWxlU2l6ZSA9ICdkZWZhdWx0JztcclxuICBASW5wdXQoKSBzcmNPcHRpb25zO1xyXG4gIEBJbnB1dCgpIHNyY0RhdGE6IGFueTtcclxuICBASW5wdXQoKSBzcmNVcmw6IHsgc3JjOiBzdHJpbmcsIG1pbWVUeXBlPzogc3RyaW5nIH07XHJcbiAgZ2V0IGZpdEltYWdlRmlsZVNpemUoKSB7XHJcbiAgICBpZiAoIXRoaXMuZmlsZVNlcnZpY2VDb25maWcuaW1hZ2VTaXplc1t0aGlzLmZpbGVTaXplXSkge1xyXG4gICAgICBjb25zb2xlLmVycm9yKCdNaXNzaW5nIGZpbGVzaXplIGZvciAnICsgdGhpcy5maWxlU2l6ZSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5maWxlU2VydmljZUNvbmZpZy5pbWFnZVNpemVzW3RoaXMuZmlsZVNpemVdWzBdIDwgMCB8fCB0aGlzLmZpbGVTZXJ2aWNlQ29uZmlnLmltYWdlU2l6ZXNbdGhpcy5maWxlU2l6ZV1bMV0gPCAwXHJcbiAgfVxyXG5cclxuICB2aXNpYmxlID0gZmFsc2U7XHJcbiAgc3JjO1xyXG4gIHNyY1VybE1pbWVUeXBlO1xyXG4gIG5hdGl2ZUZpbGVTaXplUmF0aW8gPSAtMTtcclxuICBuYXRpdmVGaWxlV2lkdGg7XHJcbiAgbmF0aXZlRmlsZUhlaWdodDtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS53aWR0aCcpXHJcbiAgZ2V0IHdpZHRoKCk6IHN0cmluZyB7XHJcbiAgICBpZiAodGhpcy5maXRJbWFnZUZpbGVTaXplKSB7XHJcbiAgICAgIGlmICh0aGlzLm5hdGl2ZUZpbGVTaXplUmF0aW8gPT09IC0xKSB7XHJcbiAgICAgICAgcmV0dXJuICcxMDAlJztcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5uYXRpdmVGaWxlV2lkdGggKyAncHgnXHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmZpbGVTZXJ2aWNlQ29uZmlnLmltYWdlU2l6ZXNbdGhpcy5maWxlU2l6ZV0gPyB0aGlzLmZpbGVTZXJ2aWNlQ29uZmlnLmltYWdlU2l6ZXNbdGhpcy5maWxlU2l6ZV1bMF0gKyAncHgnIDogdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS5tYXhXaWR0aCcpXHJcbiAgZ2V0IG1heFdpZHRoKCk6IHN0cmluZyB7XHJcbiAgICBpZiAodGhpcy5maWxlU2VydmljZUNvbmZpZy5pbWFnZVNpemVzW3RoaXMuZmlsZVNpemVdWzBdIDwgMCkge1xyXG4gICAgICByZXR1cm4gdGhpcy53aWR0aDtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLmZpbGVTZXJ2aWNlQ29uZmlnLmltYWdlU2l6ZXNbdGhpcy5maWxlU2l6ZV0gPyB0aGlzLmZpbGVTZXJ2aWNlQ29uZmlnLmltYWdlU2l6ZXNbdGhpcy5maWxlU2l6ZV1bMF0gKyAncHgnIDogdW5kZWZpbmVkO1xyXG4gIH1cclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS5oZWlnaHQnKVxyXG4gIGdldCBoZWlnaHQoKTogc3RyaW5nIHtcclxuICAgIGlmICh0aGlzLmZpdEltYWdlRmlsZVNpemUpIHtcclxuICAgICAgaWYgKHRoaXMubmF0aXZlRmlsZVNpemVSYXRpbyA9PT0gLTEpIHtcclxuICAgICAgICByZXR1cm4gJzEwMCUnO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiB0aGlzLm5hdGl2ZUZpbGVIZWlnaHQgKyAncHgnO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gdGhpcy5maWxlU2VydmljZUNvbmZpZy5pbWFnZVNpemVzW3RoaXMuZmlsZVNpemVdID8gdGhpcy5maWxlU2VydmljZUNvbmZpZy5pbWFnZVNpemVzW3RoaXMuZmlsZVNpemVdWzFdICsgJ3B4JyA6IHVuZGVmaW5lZDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBIb3N0QmluZGluZygnc3R5bGUubWF4SGVpZ2h0JylcclxuICBnZXQgbWF4SGVpZ2h0KCk6IHN0cmluZyB7XHJcbiAgICBpZiAodGhpcy5maWxlU2VydmljZUNvbmZpZy5pbWFnZVNpemVzW3RoaXMuZmlsZVNpemVdWzFdIDwgMCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5oZWlnaHQ7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5maWxlU2VydmljZUNvbmZpZy5pbWFnZVNpemVzW3RoaXMuZmlsZVNpemVdID8gdGhpcy5maWxlU2VydmljZUNvbmZpZy5pbWFnZVNpemVzW3RoaXMuZmlsZVNpemVdWzFdICsgJ3B4JyA6IHVuZGVmaW5lZDtcclxuICB9XHJcblxyXG4gIGdldCBpc1ZpZGVvKCkge1xyXG4gICAgcmV0dXJuIHRoaXMubWltZS5zdGFydHNXaXRoKCd2aWRlby8nKTtcclxuICB9XHJcblxyXG4gIGdldCBtaW1lKCkge1xyXG4gICAgaWYgKHRoaXMuc3JjVXJsTWltZVR5cGUpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuc3JjVXJsTWltZVR5cGVcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmICh0aGlzLnNyY0RhdGEubmF0aXZlRmlsZSkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnNyY0RhdGEubmF0aXZlRmlsZS50eXBlO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB0aGlzLmZpbGVTZXJ2aWNlQ29uZmlnLmdldE1pbWVUeXBlKHRoaXMuc3JjRGF0YSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXQgdXNlUmV0aW5hU3JjKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZmlsZVNlcnZpY2VDb25maWcudXNlUmV0aW5hU3JjXHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBASW5qZWN0KFVJX0ZJTEVTRVJWSUNFKSBwcml2YXRlIGZpbGVTZXJ2aWNlQ29uZmlnOiBJVWlGaWxlU2VydmljZSxcclxuICAgICAgICAgICAgICBwcml2YXRlIGRvbVNhbml0aXplcjogRG9tU2FuaXRpemVyLFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgZmlsZVNlcnZpY2U6IFVpRmlsZVNlcnZpY2UpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmIChjaGFuZ2VzLnNyY0RhdGEpIHtcclxuICAgICAgdGhpcy5uYXRpdmVGaWxlU2l6ZVJhdGlvID0gLTE7XHJcbiAgICAgIGlmIChjaGFuZ2VzLnNyY0RhdGEuY3VycmVudFZhbHVlLm5hdGl2ZUZpbGUpIHtcclxuICAgICAgICB0aGlzLnNyYyA9IHRoaXMuZG9tU2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RVcmwoVVJMLmNyZWF0ZU9iamVjdFVSTChjaGFuZ2VzLnNyY0RhdGEuY3VycmVudFZhbHVlLm5hdGl2ZUZpbGUpKTtcclxuXHJcbiAgICAgICAgY29uc3QgaW1nID0gbmV3IEltYWdlKCk7XHJcblxyXG4gICAgICAgIGltZy5vbmxvYWQgPSAoKSA9PiB7XHJcbiAgICAgICAgICBpZiAodGhpcy5maXRJbWFnZUZpbGVTaXplKSB7XHJcbiAgICAgICAgICAgIHRoaXMubmF0aXZlRmlsZVNpemVSYXRpbyA9IE1hdGgubWF4KGltZy53aWR0aCAvIHRoaXMuZmlsZVNlcnZpY2VDb25maWcuaW1hZ2VTaXplc1t0aGlzLmZpbGVTaXplXVswXSxcclxuICAgICAgICAgICAgICAgIGltZy5oZWlnaHQgLyB0aGlzLmZpbGVTZXJ2aWNlQ29uZmlnLmltYWdlU2l6ZXNbdGhpcy5maWxlU2l6ZV1bMV0sIDEpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5uYXRpdmVGaWxlU2l6ZVJhdGlvID0gMTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMubmF0aXZlRmlsZVdpZHRoID0gaW1nLndpZHRoIC8gdGhpcy5uYXRpdmVGaWxlU2l6ZVJhdGlvO1xyXG4gICAgICAgICAgdGhpcy5uYXRpdmVGaWxlSGVpZ2h0ID0gaW1nLmhlaWdodCAvIHRoaXMubmF0aXZlRmlsZVNpemVSYXRpbztcclxuICAgICAgICAgIFVSTC5yZXZva2VPYmplY3RVUkwoaW1nLnNyYyk7XHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgaW1nLnNyYyA9IFVSTC5jcmVhdGVPYmplY3RVUkwoY2hhbmdlcy5zcmNEYXRhLmN1cnJlbnRWYWx1ZS5uYXRpdmVGaWxlKTtcclxuXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5zcmMgPSB0aGlzLmZpbGVTZXJ2aWNlQ29uZmlnLmdldE1lZGlhU3JjKHRoaXMuZmlsZVNpemUsIGNoYW5nZXMuc3JjRGF0YS5jdXJyZW50VmFsdWUsIHRoaXMuc3JjT3B0aW9ucyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmIChjaGFuZ2VzLnNyY1VybCkge1xyXG4gICAgICB0aGlzLnNyYyA9IGNoYW5nZXMuc3JjVXJsLmN1cnJlbnRWYWx1ZT8uc3JjO1xyXG4gICAgICBpZiAodGhpcy5zcmMpIHtcclxuICAgICAgICB0aGlzLnNyY1VybE1pbWVUeXBlID0gY2hhbmdlcy5zcmNVcmwuY3VycmVudFZhbHVlPy5taW1lVHlwZSB8fCAnaW1hZ2UvcG5nJztcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnNyY1VybE1pbWVUeXBlID0gdW5kZWZpbmVkO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxtYXQtc3Bpbm5lciAqbmdJZj1cInZpc2libGVcIj48L21hdC1zcGlubmVyPlxyXG48aW1nICpuZ0lmPVwiIWlzVmlkZW8gJiYgdXNlUmV0aW5hU3JjXCIgW3NyY109XCJzcmNcIiBbc3Jjc2V0XT1cInNyYyArICcgMngnXCIvPlxyXG48aW1nICpuZ0lmPVwiIWlzVmlkZW8gJiYgIXVzZVJldGluYVNyY1wiIFtzcmNdPVwic3JjXCIvPlxyXG48dmlkZW8gKm5nSWY9XCJpc1ZpZGVvXCIgbXV0ZWQgY29udHJvbHMgW3NyY109XCJzcmNcIj48L3ZpZGVvPlxyXG5cclxuIl19
|