@eqproject/eqp-dynamic-module 2.11.5 → 2.11.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -0
- package/esm2020/lib/components/exported/eqp-dynamic-module-configurator/eqp-dynamic-module-configurator.component.mjs +3 -3
- package/esm2020/lib/components/private/dynamic-module-field-extra-fix/dynamic-module-field-extra-fix.component.mjs +3 -3
- package/esm2020/lib/components/private/field-graphics-editor/field-graphics-editor.component.mjs +115 -27
- package/esm2020/lib/components/private/field-templates/date-field-template/date-field-template.component.mjs +28 -6
- package/esm2020/lib/components/private/field-templates/image-field-selector-template/image-field-selector-template.component.mjs +25 -5
- package/esm2020/lib/components/private/field-templates/list-value-field-template/list-value-field-template.component.mjs +12 -3
- package/esm2020/lib/components/private/field-templates/numeric-field-template/numeric-field-template.component.mjs +26 -4
- package/esm2020/lib/components/private/field-templates/text-field-template/text-field-template.component.mjs +28 -6
- package/esm2020/lib/components/private/field-templates/textarea-field-template/textarea-field-template.component.mjs +27 -5
- package/esm2020/lib/components/private/form-records/list-form-record/list-form-record.component.mjs +1 -1
- package/esm2020/lib/components/private/form-records/list-view-form-record/list-view-form-record.component.mjs +1 -1
- package/esm2020/lib/components/private/form-statistics/filter-form-statistic/filter-form-statistic.component.mjs +1 -1
- package/esm2020/lib/components/private/form-statistics/filter-templates/text-filter-template/text-filter-template.component.mjs +3 -3
- package/esm2020/lib/components/private/form-statistics/filter-templates/textarea-filter-template/textarea-filter-template.component.mjs +3 -3
- package/esm2020/lib/components/private/trigger-creator/trigger-templates/text-trigger-template/text-trigger-template.component.mjs +3 -3
- package/esm2020/lib/components/private/trigger-creator/trigger-templates/textarea-trigger-template/textarea-trigger-template.component.mjs +3 -3
- package/esm2020/lib/directives/speech-to-text/speech-to-text.directive.mjs +7 -2
- package/esm2020/lib/utils/css-property-catalog.mjs +45 -2
- package/esm2020/lib/utils/field-style-catalog.mjs +45 -19
- package/esm2020/lib/utils/floating-label-styles.mjs +155 -0
- package/esm2020/lib/utils/refresh-outline-notch.mjs +38 -0
- package/fesm2015/eqproject-eqp-dynamic-module.mjs +799 -339
- package/fesm2015/eqproject-eqp-dynamic-module.mjs.map +1 -1
- package/fesm2020/eqproject-eqp-dynamic-module.mjs +779 -325
- package/fesm2020/eqproject-eqp-dynamic-module.mjs.map +1 -1
- package/lib/components/private/field-graphics-editor/field-graphics-editor.component.d.ts +19 -1
- package/lib/components/private/field-templates/image-field-selector-template/image-field-selector-template.component.d.ts +6 -2
- package/lib/components/private/field-templates/numeric-field-template/numeric-field-template.component.d.ts +6 -2
- package/lib/components/private/field-templates/text-field-template/text-field-template.component.d.ts +6 -2
- package/lib/components/private/field-templates/textarea-field-template/textarea-field-template.component.d.ts +6 -2
- package/lib/directives/speech-to-text/speech-to-text.directive.d.ts +3 -1
- package/lib/utils/css-property-catalog.d.ts +25 -0
- package/lib/utils/field-style-catalog.d.ts +5 -0
- package/lib/utils/floating-label-styles.d.ts +73 -0
- package/lib/utils/refresh-outline-notch.d.ts +15 -0
- package/package.json +1 -1
|
@@ -44,10 +44,10 @@ export class DynamicModuleFieldExtraFixComponent {
|
|
|
44
44
|
}
|
|
45
45
|
}
|
|
46
46
|
DynamicModuleFieldExtraFixComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DynamicModuleFieldExtraFixComponent, deps: [{ token: i1.UntypedFormBuilder }], target: i0.ɵɵFactoryTarget.Component });
|
|
47
|
-
DynamicModuleFieldExtraFixComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: DynamicModuleFieldExtraFixComponent, selector: "dynamic-module-field-extra-fix", inputs: { fieldExtraConfig: "fieldExtraConfig", form: "form", field: "field", endPointConfiguration: "endPointConfiguration" }, outputs: { configValueChange: "configValueChange" }, ngImport: i0, template: "\r\n\r\n<div [formGroup]=\"formExtraGroup\">\r\n\r\n <mat-form-field appearance=\"outline\" *ngIf=\"fieldExtraConfig.FieldConfigType == FieldTypeEnum['Campo di testo'] && loaded\">\r\n <mat-label class=\"pt-1\">\r\n {{ fieldExtraConfig.FieldConfigLabel }}\r\n </mat-label>\r\n <input\r\n matInput\r\n [formControlName]=\"'element'\"\r\n [(ngModel)]=\"FieldExtraValues.FieldConfigValue\"\r\n />\r\n\r\n <tmw-icon class=\"mat-icon\"\r\n matSuffix\r\n SpeechToText\r\n [(bindedText)]=\"FieldExtraValues.FieldConfigValue\"\r\n style=\"cursor: pointer\" name=\"microphone\"></tmw-icon>\r\n </mat-form-field>\r\n\r\n <mat-slide-toggle color=\"primary\" *ngIf=\"fieldExtraConfig.FieldConfigType == FieldTypeEnum['Booleano'] && loaded\"\r\n [formControlName]=\"'element'\"\r\n [(ngModel)]=\"FieldExtraValues.FieldConfigValue\">\r\n {{ fieldExtraConfig.FieldConfigLabel }}\r\n </mat-slide-toggle>\r\n\r\n</div>", styles: [""], dependencies: [{ kind: "directive", type: i2.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: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i4.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["disabled", "disableRipple", "color", "tabIndex"], exportAs: ["matSlideToggle"] }, { 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: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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"] }, { kind: "component", type: i6.TmwIconComponent, selector: "tmw-icon", inputs: ["name", "size", "ariaLabel", "variant", "strokeWidth"] }, { kind: "directive", type: i7.SpeechToTextDirective, selector: "[SpeechToText]", inputs: ["bindedText"], outputs: ["bindedTextChange"] }] });
|
|
47
|
+
DynamicModuleFieldExtraFixComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: DynamicModuleFieldExtraFixComponent, selector: "dynamic-module-field-extra-fix", inputs: { fieldExtraConfig: "fieldExtraConfig", form: "form", field: "field", endPointConfiguration: "endPointConfiguration" }, outputs: { configValueChange: "configValueChange" }, ngImport: i0, template: "\r\n\r\n<div [formGroup]=\"formExtraGroup\">\r\n\r\n <mat-form-field appearance=\"outline\" *ngIf=\"fieldExtraConfig.FieldConfigType == FieldTypeEnum['Campo di testo'] && loaded\">\r\n <mat-label class=\"pt-1\">\r\n {{ fieldExtraConfig.FieldConfigLabel }}\r\n </mat-label>\r\n <input\r\n matInput\r\n [formControlName]=\"'element'\"\r\n [(ngModel)]=\"FieldExtraValues.FieldConfigValue\"\r\n />\r\n\r\n <tmw-icon class=\"mat-icon\"\r\n matSuffix\r\n SpeechToText\r\n #micSpeech=\"speechToText\"\r\n [(bindedText)]=\"FieldExtraValues.FieldConfigValue\"\r\n [variant]=\"micSpeech.isListening ? 'filled' : 'outline'\"\r\n style=\"cursor: pointer\" name=\"microphone\"></tmw-icon>\r\n </mat-form-field>\r\n\r\n <mat-slide-toggle color=\"primary\" *ngIf=\"fieldExtraConfig.FieldConfigType == FieldTypeEnum['Booleano'] && loaded\"\r\n [formControlName]=\"'element'\"\r\n [(ngModel)]=\"FieldExtraValues.FieldConfigValue\">\r\n {{ fieldExtraConfig.FieldConfigLabel }}\r\n </mat-slide-toggle>\r\n\r\n</div>", styles: [""], dependencies: [{ kind: "directive", type: i2.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: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i4.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["disabled", "disableRipple", "color", "tabIndex"], exportAs: ["matSlideToggle"] }, { 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: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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"] }, { kind: "component", type: i6.TmwIconComponent, selector: "tmw-icon", inputs: ["name", "size", "ariaLabel", "variant", "strokeWidth"] }, { kind: "directive", type: i7.SpeechToTextDirective, selector: "[SpeechToText]", inputs: ["bindedText"], outputs: ["bindedTextChange"], exportAs: ["speechToText"] }] });
|
|
48
48
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DynamicModuleFieldExtraFixComponent, decorators: [{
|
|
49
49
|
type: Component,
|
|
50
|
-
args: [{ selector: 'dynamic-module-field-extra-fix', template: "\r\n\r\n<div [formGroup]=\"formExtraGroup\">\r\n\r\n <mat-form-field appearance=\"outline\" *ngIf=\"fieldExtraConfig.FieldConfigType == FieldTypeEnum['Campo di testo'] && loaded\">\r\n <mat-label class=\"pt-1\">\r\n {{ fieldExtraConfig.FieldConfigLabel }}\r\n </mat-label>\r\n <input\r\n matInput\r\n [formControlName]=\"'element'\"\r\n [(ngModel)]=\"FieldExtraValues.FieldConfigValue\"\r\n />\r\n\r\n <tmw-icon class=\"mat-icon\"\r\n matSuffix\r\n SpeechToText\r\n [(bindedText)]=\"FieldExtraValues.FieldConfigValue\"\r\n style=\"cursor: pointer\" name=\"microphone\"></tmw-icon>\r\n </mat-form-field>\r\n\r\n <mat-slide-toggle color=\"primary\" *ngIf=\"fieldExtraConfig.FieldConfigType == FieldTypeEnum['Booleano'] && loaded\"\r\n [formControlName]=\"'element'\"\r\n [(ngModel)]=\"FieldExtraValues.FieldConfigValue\">\r\n {{ fieldExtraConfig.FieldConfigLabel }}\r\n </mat-slide-toggle>\r\n\r\n</div>" }]
|
|
50
|
+
args: [{ selector: 'dynamic-module-field-extra-fix', template: "\r\n\r\n<div [formGroup]=\"formExtraGroup\">\r\n\r\n <mat-form-field appearance=\"outline\" *ngIf=\"fieldExtraConfig.FieldConfigType == FieldTypeEnum['Campo di testo'] && loaded\">\r\n <mat-label class=\"pt-1\">\r\n {{ fieldExtraConfig.FieldConfigLabel }}\r\n </mat-label>\r\n <input\r\n matInput\r\n [formControlName]=\"'element'\"\r\n [(ngModel)]=\"FieldExtraValues.FieldConfigValue\"\r\n />\r\n\r\n <tmw-icon class=\"mat-icon\"\r\n matSuffix\r\n SpeechToText\r\n #micSpeech=\"speechToText\"\r\n [(bindedText)]=\"FieldExtraValues.FieldConfigValue\"\r\n [variant]=\"micSpeech.isListening ? 'filled' : 'outline'\"\r\n style=\"cursor: pointer\" name=\"microphone\"></tmw-icon>\r\n </mat-form-field>\r\n\r\n <mat-slide-toggle color=\"primary\" *ngIf=\"fieldExtraConfig.FieldConfigType == FieldTypeEnum['Booleano'] && loaded\"\r\n [formControlName]=\"'element'\"\r\n [(ngModel)]=\"FieldExtraValues.FieldConfigValue\">\r\n {{ fieldExtraConfig.FieldConfigLabel }}\r\n </mat-slide-toggle>\r\n\r\n</div>" }]
|
|
51
51
|
}], ctorParameters: function () { return [{ type: i1.UntypedFormBuilder }]; }, propDecorators: { fieldExtraConfig: [{
|
|
52
52
|
type: Input
|
|
53
53
|
}], form: [{
|
|
@@ -59,4 +59,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
59
59
|
}], configValueChange: [{
|
|
60
60
|
type: Output
|
|
61
61
|
}] } });
|
|
62
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1tb2R1bGUtZmllbGQtZXh0cmEtZml4LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VxcC1keW5hbWljLW1vZHVsZS9zcmMvbGliL2NvbXBvbmVudHMvcHJpdmF0ZS9keW5hbWljLW1vZHVsZS1maWVsZC1leHRyYS1maXgvZHluYW1pYy1tb2R1bGUtZmllbGQtZXh0cmEtZml4LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VxcC1keW5hbWljLW1vZHVsZS9zcmMvbGliL2NvbXBvbmVudHMvcHJpdmF0ZS9keW5hbWljLW1vZHVsZS1maWVsZC1leHRyYS1maXgvZHluYW1pYy1tb2R1bGUtZmllbGQtZXh0cmEtZml4LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkUsT0FBTyxFQUFvQixnQkFBZ0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBRzVGLE9BQU8sRUFBYSxhQUFhLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7Ozs7Ozs7O0FBUTNFLE1BQU0sT0FBTyxtQ0FBbUM7SUFjOUMsWUFDVSxXQUErQjtRQUEvQixnQkFBVyxHQUFYLFdBQVcsQ0FBb0I7UUFSL0Isc0JBQWlCLEdBQW1DLElBQUksWUFBWSxFQUFvQixDQUFDO1FBRW5HLGtCQUFhLEdBQUcsYUFBYSxDQUFDO1FBQzlCLHFCQUFnQixHQUFxQixJQUFJLGdCQUFnQixFQUFFLENBQUM7UUFDNUQsV0FBTSxHQUFZLEtBQUssQ0FBQztJQUtyQixDQUFDO0lBRUosUUFBUTtRQUVOLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGVBQWUsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxJQUFJLENBQUMsQ0FBQyxDQUFDLDBCQUEwQixJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQywwQkFBMEIsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDO1FBRXhPLHlGQUF5RjtRQUN6RixvRkFBb0Y7UUFDcEYsNEZBQTRGO1FBQzVGLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7WUFDMUIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztZQUMvQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUM7WUFDOUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLDBCQUEwQixHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDO1lBQ3BFLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsSUFBSSxJQUFJLEVBQUU7Z0JBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLEtBQUssRUFBb0IsQ0FBQzthQUFFO1lBQy9HLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1NBQzVEO1FBRUQsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxJQUFJLGFBQWEsQ0FBQyxVQUFVLENBQUMsRUFBQztZQUNyRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGdCQUFnQixJQUFJLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7U0FDdEo7UUFFRCxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7SUFDckIsQ0FBQztJQUVELGFBQWE7UUFDVCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDO1lBQzNDLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FBQztTQUNsRCxDQUFDLENBQUM7SUFDUCxDQUFDOztpSUE3Q1UsbUNBQW1DO3FIQUFuQyxtQ0FBbUMsMlBDWmhELDRrQ0E2Qk07NEZEakJPLG1DQUFtQztrQkFML0MsU0FBUzsrQkFDRSxnQ0FBZ0M7eUdBTWpDLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLHFCQUFxQjtzQkFBN0IsS0FBSztnQkFFSSxpQkFBaUI7c0JBQTFCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGaWVsZEV4dHJhQ29uZmlnLCBGaWVsZEV4dHJhVmFsdWVzIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2ZpZWxkRXh0cmFDb25maWcubW9kZWwnO1xyXG5pbXBvcnQgeyBGb3JtIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2Zvcm0ubW9kZWwnO1xyXG5pbXBvcnQgeyBFbmRQb2ludENvbmZpZ3VyYXRpb24gfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZW5kUG9pbnRDb25maWd1cmF0aW9uLm1vZGVsJztcclxuaW1wb3J0IHsgQmFzZUZpZWxkLCBGaWVsZFR5cGVFbnVtIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2Jhc2VGaWVsZC5tb2RlbCc7XHJcbmltcG9ydCB7IFVudHlwZWRGb3JtQnVpbGRlciwgVW50eXBlZEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZHluYW1pYy1tb2R1bGUtZmllbGQtZXh0cmEtZml4JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZHluYW1pYy1tb2R1bGUtZmllbGQtZXh0cmEtZml4LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9keW5hbWljLW1vZHVsZS1maWVsZC1leHRyYS1maXguY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRHluYW1pY01vZHVsZUZpZWxkRXh0cmFGaXhDb21wb25lbnQge1xyXG5cclxuICBASW5wdXQoKSBmaWVsZEV4dHJhQ29uZmlnOiBGaWVsZEV4dHJhQ29uZmlnO1xyXG4gIEBJbnB1dCgpIGZvcm06IEZvcm07XHJcbiAgQElucHV0KCkgZmllbGQ6IEJhc2VGaWVsZDtcclxuICBASW5wdXQoKSBlbmRQb2ludENvbmZpZ3VyYXRpb246IEVuZFBvaW50Q29uZmlndXJhdGlvbjtcclxuXHJcbiAgQE91dHB1dCgpIGNvbmZpZ1ZhbHVlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8RmllbGRFeHRyYVZhbHVlcz4gPSBuZXcgRXZlbnRFbWl0dGVyPEZpZWxkRXh0cmFWYWx1ZXM+KCk7XHJcblxyXG4gIEZpZWxkVHlwZUVudW0gPSBGaWVsZFR5cGVFbnVtO1xyXG4gIEZpZWxkRXh0cmFWYWx1ZXM6IEZpZWxkRXh0cmFWYWx1ZXMgPSBuZXcgRmllbGRFeHRyYVZhbHVlcygpO1xyXG4gIGxvYWRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGZvcm1FeHRyYUdyb3VwOiBVbnR5cGVkRm9ybUdyb3VwO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgZm9ybUJ1aWxkZXI6IFVudHlwZWRGb3JtQnVpbGRlclxyXG4gICkge30gIFxyXG5cclxuICBuZ09uSW5pdCgpe1xyXG5cclxuICAgIHRoaXMuRmllbGRFeHRyYVZhbHVlcyA9ICh0aGlzLmZvcm0uRmxkRXh0cmFDb25maWdWYWx1ZXMgPz8gW10pLmZpbmQoeCA9PiB4LkZpZWxkQ29uZmlnQ29kZSA9PSB0aGlzLmZpZWxkRXh0cmFDb25maWcuRmllbGRDb25maWdDb2RlICYmICh4LkZpZWxkQ29uZmlnUGFyZW50RmllbGRDb2RlID09IHRoaXMuZmllbGQuTmFtZSB8fCB4LkZpZWxkQ29uZmlnUGFyZW50RmllbGRDb2RlID09PSB1bmRlZmluZWQpKTtcclxuXHJcbiAgICAvLyBTdSB1biBjYW1wbyBhcHBlbmEgYWdnaXVudG8gbGEgdm9jZSBwdcOyIG5vbiBlc2lzdGVyZSBhbmNvcmEgKGNvbmZpZ3VyZUZpZWxkc0V4dHJhIGdpcmFcclxuICAgIC8vIGluIG5nT25Jbml0IGRlbGxhIGRpYWxvZywgcXVhbmRvIGlsIHRpcG8gbm9uIMOoIGFuY29yYSBzdGF0byBzY2VsdG8pOiBzZW56YSBxdWVzdGFcclxuICAgIC8vIGNyZWF6aW9uZSBsZSByaWdoZSBzb3R0byBhbmRhdmFubyBpbiBlcnJvcmUgZSBpbCByZXN0byBkZWxsYSBkaWFsb2cgbm9uIHZlbml2YSBkaXNlZ25hdG8uXHJcbiAgICBpZiAoIXRoaXMuRmllbGRFeHRyYVZhbHVlcykge1xyXG4gICAgICB0aGlzLkZpZWxkRXh0cmFWYWx1ZXMgPSBuZXcgRmllbGRFeHRyYVZhbHVlcygpO1xyXG4gICAgICB0aGlzLkZpZWxkRXh0cmFWYWx1ZXMuRmllbGRDb25maWdDb2RlID0gdGhpcy5maWVsZEV4dHJhQ29uZmlnLkZpZWxkQ29uZmlnQ29kZTtcclxuICAgICAgdGhpcy5GaWVsZEV4dHJhVmFsdWVzLkZpZWxkQ29uZmlnUGFyZW50RmllbGRDb2RlID0gdGhpcy5maWVsZD8uTmFtZTtcclxuICAgICAgaWYgKHRoaXMuZm9ybS5GbGRFeHRyYUNvbmZpZ1ZhbHVlcyA9PSBudWxsKSB7IHRoaXMuZm9ybS5GbGRFeHRyYUNvbmZpZ1ZhbHVlcyA9IG5ldyBBcnJheTxGaWVsZEV4dHJhVmFsdWVzPigpOyB9XHJcbiAgICAgIHRoaXMuZm9ybS5GbGRFeHRyYUNvbmZpZ1ZhbHVlcy5wdXNoKHRoaXMuRmllbGRFeHRyYVZhbHVlcyk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuZmllbGRFeHRyYUNvbmZpZy5GaWVsZENvbmZpZ1R5cGUgPT0gRmllbGRUeXBlRW51bVsnQm9vbGVhbm8nXSl7XHJcbiAgICAgIHRoaXMuRmllbGRFeHRyYVZhbHVlcy5GaWVsZENvbmZpZ1ZhbHVlID0gdGhpcy5GaWVsZEV4dHJhVmFsdWVzLkZpZWxkQ29uZmlnVmFsdWUgPT0gXCJmYWxzZVwiIHx8ICF0aGlzLkZpZWxkRXh0cmFWYWx1ZXMuRmllbGRDb25maWdWYWx1ZSA/IGZhbHNlIDogdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmNvbmZpZ3VyZUZvcm0oKTtcclxuICAgIHRoaXMubG9hZGVkID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGNvbmZpZ3VyZUZvcm0oKXtcclxuICAgICAgdGhpcy5mb3JtRXh0cmFHcm91cCA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xyXG4gICAgICAgIGVsZW1lbnQ6IFt0aGlzLkZpZWxkRXh0cmFWYWx1ZXMuRmllbGRDb25maWdWYWx1ZV1cclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxufVxyXG4iLCJcclxuXHJcbjxkaXYgW2Zvcm1Hcm91cF09XCJmb3JtRXh0cmFHcm91cFwiPlxyXG5cclxuICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIiAqbmdJZj1cImZpZWxkRXh0cmFDb25maWcuRmllbGRDb25maWdUeXBlID09IEZpZWxkVHlwZUVudW1bJ0NhbXBvIGRpIHRlc3RvJ10gJiYgbG9hZGVkXCI+XHJcbiAgICAgIDxtYXQtbGFiZWwgY2xhc3M9XCJwdC0xXCI+XHJcbiAgICAgICAge3sgZmllbGRFeHRyYUNvbmZpZy5GaWVsZENvbmZpZ0xhYmVsIH19XHJcbiAgICAgIDwvbWF0LWxhYmVsPlxyXG4gICAgICA8aW5wdXRcclxuICAgICAgICBtYXRJbnB1dFxyXG4gICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiJ2VsZW1lbnQnXCJcclxuICAgICAgICBbKG5nTW9kZWwpXT1cIkZpZWxkRXh0cmFWYWx1ZXMuRmllbGRDb25maWdWYWx1ZVwiXHJcbiAgICAgIC8+XHJcblxyXG4gICAgICA8dG13LWljb24gY2xhc3M9XCJtYXQtaWNvblwiXHJcbiAgICAgICAgbWF0U3VmZml4XHJcbiAgICAgICAgU3BlZWNoVG9UZXh0XHJcbiAgICAgICAgI21pY1NwZWVjaD1cInNwZWVjaFRvVGV4dFwiXHJcbiAgICAgICAgWyhiaW5kZWRUZXh0KV09XCJGaWVsZEV4dHJhVmFsdWVzLkZpZWxkQ29uZmlnVmFsdWVcIlxyXG4gICAgICAgIFt2YXJpYW50XT1cIm1pY1NwZWVjaC5pc0xpc3RlbmluZyA/ICdmaWxsZWQnIDogJ291dGxpbmUnXCJcclxuICAgICAgICBzdHlsZT1cImN1cnNvcjogcG9pbnRlclwiIG5hbWU9XCJtaWNyb3Bob25lXCI+PC90bXctaWNvbj5cclxuICA8L21hdC1mb3JtLWZpZWxkPlxyXG5cclxuICA8bWF0LXNsaWRlLXRvZ2dsZSBjb2xvcj1cInByaW1hcnlcIiAqbmdJZj1cImZpZWxkRXh0cmFDb25maWcuRmllbGRDb25maWdUeXBlID09IEZpZWxkVHlwZUVudW1bJ0Jvb2xlYW5vJ10gJiYgbG9hZGVkXCJcclxuICBbZm9ybUNvbnRyb2xOYW1lXT1cIidlbGVtZW50J1wiXHJcbiAgWyhuZ01vZGVsKV09XCJGaWVsZEV4dHJhVmFsdWVzLkZpZWxkQ29uZmlnVmFsdWVcIj5cclxuICB7eyBmaWVsZEV4dHJhQ29uZmlnLkZpZWxkQ29uZmlnTGFiZWwgfX1cclxuICA8L21hdC1zbGlkZS10b2dnbGU+XHJcblxyXG48L2Rpdj4iXX0=
|