@seniorsistemas/components-ai 1.3.0 → 2.0.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/esm2022/lib/components/dynamic-form/dynamic-form.component.mjs +263 -368
- package/esm2022/lib/components/dynamic-form/fields/dynamic-field-checkbox.component.mjs +53 -0
- package/esm2022/lib/components/dynamic-form/fields/dynamic-field-date.component.mjs +5 -3
- package/esm2022/lib/components/dynamic-form/fields/dynamic-field-datetime.component.mjs +5 -3
- package/esm2022/lib/components/dynamic-form/fields/dynamic-field-dropdown.component.mjs +5 -3
- package/esm2022/lib/components/dynamic-form/fields/dynamic-field-image.component.mjs +162 -0
- package/esm2022/lib/components/dynamic-form/fields/dynamic-field-lookup.component.mjs +203 -49
- package/esm2022/lib/components/dynamic-form/fields/dynamic-field-multiselect.component.mjs +90 -0
- package/esm2022/lib/components/dynamic-form/fields/dynamic-field-number.component.mjs +3 -3
- package/esm2022/lib/components/dynamic-form/fields/dynamic-field-text.component.mjs +7 -7
- package/esm2022/lib/components/dynamic-form/fields/dynamic-field-time.component.mjs +66 -0
- package/esm2022/lib/components/dynamic-form/fields/index.mjs +5 -1
- package/esm2022/lib/components/dynamic-form/models/dynamic-form.models.mjs +1 -1
- package/esm2022/lib/components/loading/iassist-icon.component.mjs +14 -0
- package/esm2022/lib/components/loading/loading.component.mjs +47 -4
- package/esm2022/lib/i18n/en-US.json +4 -1
- package/esm2022/lib/i18n/es-ES.json +4 -1
- package/esm2022/lib/i18n/pt-BR.json +4 -1
- package/esm2022/lib/models/entity-list.config.mjs +1 -1
- package/esm2022/lib/services/websocket.service.mjs +184 -0
- package/esm2022/public-api.mjs +3 -1
- package/fesm2022/seniorsistemas-components-ai.mjs +1283 -661
- package/fesm2022/seniorsistemas-components-ai.mjs.map +1 -1
- package/lib/components/dynamic-form/dynamic-form.component.d.ts +8 -17
- package/lib/components/dynamic-form/fields/dynamic-field-checkbox.component.d.ts +8 -0
- package/lib/components/dynamic-form/fields/dynamic-field-image.component.d.ts +21 -0
- package/lib/components/dynamic-form/fields/dynamic-field-lookup.component.d.ts +19 -6
- package/lib/components/dynamic-form/fields/dynamic-field-multiselect.component.d.ts +10 -0
- package/lib/components/dynamic-form/fields/dynamic-field-time.component.d.ts +9 -0
- package/lib/components/dynamic-form/fields/index.d.ts +4 -0
- package/lib/components/dynamic-form/models/dynamic-form.models.d.ts +30 -84
- package/lib/components/loading/iassist-icon.component.d.ts +6 -0
- package/lib/components/loading/loading.component.d.ts +1 -1
- package/lib/models/entity-list.config.d.ts +12 -132
- package/lib/services/websocket.service.d.ts +63 -0
- package/package.json +3 -2
- package/public-api.d.ts +2 -0
- package/src/lib/i18n/en-US.json +4 -1
- package/src/lib/i18n/es-ES.json +4 -1
- package/src/lib/i18n/pt-BR.json +4 -1
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { ReactiveFormsModule } from '@angular/forms';
|
|
4
|
+
import { CheckboxModule } from 'primeng/checkbox';
|
|
5
|
+
import { TranslatePipe } from '../../../pipes/translate.pipe';
|
|
6
|
+
import { DynamicFieldBaseComponent } from './dynamic-field-base.component';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "../../../services/translation.service";
|
|
9
|
+
import * as i2 from "@angular/forms";
|
|
10
|
+
import * as i3 from "primeng/checkbox";
|
|
11
|
+
export class DynamicFieldCheckboxComponent extends DynamicFieldBaseComponent {
|
|
12
|
+
constructor(translationService) {
|
|
13
|
+
super(translationService);
|
|
14
|
+
}
|
|
15
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DynamicFieldCheckboxComponent, deps: [{ token: i1.TranslationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
16
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: DynamicFieldCheckboxComponent, isStandalone: true, selector: "sia-dynamic-field-checkbox", usesInheritance: true, ngImport: i0, template: `
|
|
17
|
+
<div class="field checkbox-field" [formGroup]="form">
|
|
18
|
+
<div class="checkbox-container">
|
|
19
|
+
<p-checkbox
|
|
20
|
+
[inputId]="field.field"
|
|
21
|
+
[formControlName]="field.field"
|
|
22
|
+
[binary]="true">
|
|
23
|
+
</p-checkbox>
|
|
24
|
+
<label [for]="field.field" class="checkbox-label">
|
|
25
|
+
{{ field.label | translate }}
|
|
26
|
+
</label>
|
|
27
|
+
</div>
|
|
28
|
+
</div>
|
|
29
|
+
`, isInline: true, styles: [".checkbox-field{display:flex;align-items:center;min-height:2.5rem;padding-top:1.625rem}.checkbox-container{display:flex;align-items:center;gap:.5rem}.checkbox-label{font-weight:500;color:var(--text-color);cursor:pointer;-webkit-user-select:none;user-select:none}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: CheckboxModule }, { kind: "component", type: i3.Checkbox, selector: "p-checkbox, p-checkBox, p-check-box", inputs: ["value", "name", "disabled", "binary", "ariaLabelledBy", "ariaLabel", "tabindex", "inputId", "style", "inputStyle", "styleClass", "inputClass", "indeterminate", "size", "formControl", "checkboxIcon", "readonly", "required", "autofocus", "trueValue", "falseValue", "variant"], outputs: ["onChange", "onFocus", "onBlur"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] });
|
|
30
|
+
}
|
|
31
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DynamicFieldCheckboxComponent, decorators: [{
|
|
32
|
+
type: Component,
|
|
33
|
+
args: [{ selector: 'sia-dynamic-field-checkbox', standalone: true, imports: [
|
|
34
|
+
CommonModule,
|
|
35
|
+
ReactiveFormsModule,
|
|
36
|
+
CheckboxModule,
|
|
37
|
+
TranslatePipe
|
|
38
|
+
], template: `
|
|
39
|
+
<div class="field checkbox-field" [formGroup]="form">
|
|
40
|
+
<div class="checkbox-container">
|
|
41
|
+
<p-checkbox
|
|
42
|
+
[inputId]="field.field"
|
|
43
|
+
[formControlName]="field.field"
|
|
44
|
+
[binary]="true">
|
|
45
|
+
</p-checkbox>
|
|
46
|
+
<label [for]="field.field" class="checkbox-label">
|
|
47
|
+
{{ field.label | translate }}
|
|
48
|
+
</label>
|
|
49
|
+
</div>
|
|
50
|
+
</div>
|
|
51
|
+
`, styles: [".checkbox-field{display:flex;align-items:center;min-height:2.5rem;padding-top:1.625rem}.checkbox-container{display:flex;align-items:center;gap:.5rem}.checkbox-label{font-weight:500;color:var(--text-color);cursor:pointer;-webkit-user-select:none;user-select:none}\n"] }]
|
|
52
|
+
}], ctorParameters: () => [{ type: i1.TranslationService }] });
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1maWVsZC1jaGVja2JveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzLWFpL3NyYy9saWIvY29tcG9uZW50cy9keW5hbWljLWZvcm0vZmllbGRzL2R5bmFtaWMtZmllbGQtY2hlY2tib3guY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVsRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDOUQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7Ozs7O0FBK0MzRSxNQUFNLE9BQU8sNkJBQThCLFNBQVEseUJBQXlCO0lBQzFFLFlBQVksa0JBQXNDO1FBQ2hELEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQzVCLENBQUM7d0dBSFUsNkJBQTZCOzRGQUE3Qiw2QkFBNkIsNkdBcEM5Qjs7Ozs7Ozs7Ozs7OztHQWFULGlWQWxCQyxZQUFZLDhCQUNaLG1CQUFtQixtbEJBQ25CLGNBQWMsOGJBQ2QsYUFBYTs7NEZBc0NKLDZCQUE2QjtrQkE3Q3pDLFNBQVM7K0JBQ0UsNEJBQTRCLGNBQzFCLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLG1CQUFtQjt3QkFDbkIsY0FBYzt3QkFDZCxhQUFhO3FCQUNkLFlBQ1M7Ozs7Ozs7Ozs7Ozs7R0FhVCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDaGVja2JveE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvY2hlY2tib3gnO1xuaW1wb3J0IHsgVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvdHJhbnNsYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVQaXBlIH0gZnJvbSAnLi4vLi4vLi4vcGlwZXMvdHJhbnNsYXRlLnBpcGUnO1xuaW1wb3J0IHsgRHluYW1pY0ZpZWxkQmFzZUNvbXBvbmVudCB9IGZyb20gJy4vZHluYW1pYy1maWVsZC1iYXNlLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpYS1keW5hbWljLWZpZWxkLWNoZWNrYm94JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIENoZWNrYm94TW9kdWxlLFxuICAgIFRyYW5zbGF0ZVBpcGVcbiAgXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwiZmllbGQgY2hlY2tib3gtZmllbGRcIiBbZm9ybUdyb3VwXT1cImZvcm1cIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjaGVja2JveC1jb250YWluZXJcIj5cbiAgICAgICAgPHAtY2hlY2tib3hcbiAgICAgICAgICBbaW5wdXRJZF09XCJmaWVsZC5maWVsZFwiXG4gICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJmaWVsZC5maWVsZFwiXG4gICAgICAgICAgW2JpbmFyeV09XCJ0cnVlXCI+XG4gICAgICAgIDwvcC1jaGVja2JveD5cbiAgICAgICAgPGxhYmVsIFtmb3JdPVwiZmllbGQuZmllbGRcIiBjbGFzcz1cImNoZWNrYm94LWxhYmVsXCI+XG4gICAgICAgICAge3sgZmllbGQubGFiZWwgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPC9sYWJlbD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICBgLFxuICBzdHlsZXM6IFtgXG4gICAgLmNoZWNrYm94LWZpZWxkIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgbWluLWhlaWdodDogMi41cmVtO1xuICAgICAgcGFkZGluZy10b3A6IDEuNjI1cmVtO1xuICAgIH1cblxuICAgIC5jaGVja2JveC1jb250YWluZXIge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBnYXA6IDAuNXJlbTtcbiAgICB9XG5cbiAgICAuY2hlY2tib3gtbGFiZWwge1xuICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG9yKTtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgIH1cbiAgYF1cbn0pXG5leHBvcnQgY2xhc3MgRHluYW1pY0ZpZWxkQ2hlY2tib3hDb21wb25lbnQgZXh0ZW5kcyBEeW5hbWljRmllbGRCYXNlQ29tcG9uZW50IHtcbiAgY29uc3RydWN0b3IodHJhbnNsYXRpb25TZXJ2aWNlOiBUcmFuc2xhdGlvblNlcnZpY2UpIHtcbiAgICBzdXBlcih0cmFuc2xhdGlvblNlcnZpY2UpO1xuICB9XG59XG4iXX0=
|
|
@@ -61,7 +61,8 @@ export class DynamicFieldDateComponent extends DynamicFieldBaseComponent {
|
|
|
61
61
|
[class.ng-invalid]="isFieldInvalid()"
|
|
62
62
|
[class.ng-dirty]="isFieldDirty()"
|
|
63
63
|
[appendTo]="'body'"
|
|
64
|
-
styleClass="w-full"
|
|
64
|
+
styleClass="w-full"
|
|
65
|
+
[style]="{width: '100%'}">
|
|
65
66
|
</p-calendar>
|
|
66
67
|
</div>
|
|
67
68
|
</sia-dynamic-field-wrapper>
|
|
@@ -88,10 +89,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
88
89
|
[class.ng-invalid]="isFieldInvalid()"
|
|
89
90
|
[class.ng-dirty]="isFieldDirty()"
|
|
90
91
|
[appendTo]="'body'"
|
|
91
|
-
styleClass="w-full"
|
|
92
|
+
styleClass="w-full"
|
|
93
|
+
[style]="{width: '100%'}">
|
|
92
94
|
</p-calendar>
|
|
93
95
|
</div>
|
|
94
96
|
</sia-dynamic-field-wrapper>
|
|
95
97
|
`, styles: ["::ng-deep p-calendar{width:100%;.p-calendar,input{width:100%}}\n"] }]
|
|
96
98
|
}], ctorParameters: () => [{ type: i1.TranslationService }, { type: i2.LocaleService }, { type: i0.ChangeDetectorRef }] });
|
|
97
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
99
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1maWVsZC1kYXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMtYWkvc3JjL2xpYi9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9maWVsZHMvZHluYW1pYy1maWVsZC1kYXRlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUF3QyxNQUFNLGVBQWUsQ0FBQztBQUNoRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBSWxELE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7Ozs7O0FBdUMzRSxNQUFNLE9BQU8seUJBQTBCLFNBQVEseUJBQXlCO0lBTzVEO0lBQ0E7SUFQVixpQkFBaUIsR0FBRyxVQUFVLENBQUM7SUFDL0IsZUFBZSxHQUFHLElBQUksQ0FBQztJQUNmLE9BQU8sQ0FBZ0I7SUFFL0IsWUFDRSxrQkFBc0MsRUFDOUIsYUFBNEIsRUFDNUIsR0FBc0I7UUFFOUIsS0FBSyxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFIbEIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7SUFHaEMsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ3JFLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN6QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLE9BQU8sRUFBRSxXQUFXLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQ7O09BRUc7SUFDSyxlQUFlO1FBQ3JCLElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDO1FBQzdCLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7UUFDNUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRU8sZ0JBQWdCO1FBQ3RCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLFVBQVUsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLG9CQUFvQixFQUFFLENBQUM7SUFDL0YsQ0FBQztJQUVRLGNBQWM7UUFDckIsT0FBTyxLQUFLLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3BDLENBQUM7d0dBekNVLHlCQUF5Qjs0RkFBekIseUJBQXlCLHlHQTVCMUI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtQlQseUlBeEJDLFlBQVksa0lBQ1osbUJBQW1CLG1sQkFDbkIsY0FBYyxrekNBQ2QsNEJBQTRCOzs0RkE4Qm5CLHlCQUF5QjtrQkFyQ3JDLFNBQVM7K0JBQ0Usd0JBQXdCLGNBQ3RCLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLG1CQUFtQjt3QkFDbkIsY0FBYzt3QkFDZCw0QkFBNEI7cUJBQzdCLFlBQ1M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtQlQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgT25EZXN0cm95LCBDaGFuZ2VEZXRlY3RvclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDYWxlbmRhck1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvY2FsZW5kYXInO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBUcmFuc2xhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy90cmFuc2xhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IExvY2FsZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9sb2NhbGUuc2VydmljZSc7XG5pbXBvcnQgeyBEeW5hbWljRmllbGRXcmFwcGVyQ29tcG9uZW50IH0gZnJvbSAnLi9keW5hbWljLWZpZWxkLXdyYXBwZXIuY29tcG9uZW50JztcbmltcG9ydCB7IER5bmFtaWNGaWVsZEJhc2VDb21wb25lbnQgfSBmcm9tICcuL2R5bmFtaWMtZmllbGQtYmFzZS5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzaWEtZHluYW1pYy1maWVsZC1kYXRlJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIENhbGVuZGFyTW9kdWxlLFxuICAgIER5bmFtaWNGaWVsZFdyYXBwZXJDb21wb25lbnRcbiAgXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8c2lhLWR5bmFtaWMtZmllbGQtd3JhcHBlciBbZmllbGRdPVwiZmllbGRcIiBbZm9ybV09XCJmb3JtXCIgW21vZGVdPVwibW9kZVwiPlxuICAgICAgPGRpdiBbZm9ybUdyb3VwXT1cImZvcm1cIj5cbiAgICAgICAgPHAtY2FsZW5kYXJcbiAgICAgICAgICAqbmdJZj1cImNhbGVuZGFyVmlzaWJsZVwiXG4gICAgICAgICAgW2lucHV0SWRdPVwiZmllbGQuZmllbGRcIlxuICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiZmllbGQuZmllbGRcIlxuICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJnZXRQbGFjZWhvbGRlcigpXCJcbiAgICAgICAgICBbZGF0ZUZvcm1hdF09XCJjdXJyZW50RGF0ZUZvcm1hdFwiXG4gICAgICAgICAgW3Nob3dJY29uXT1cInRydWVcIlxuICAgICAgICAgIFtzaG93QnV0dG9uQmFyXT1cInRydWVcIlxuICAgICAgICAgIFtjbGFzcy5uZy1pbnZhbGlkXT1cImlzRmllbGRJbnZhbGlkKClcIlxuICAgICAgICAgIFtjbGFzcy5uZy1kaXJ0eV09XCJpc0ZpZWxkRGlydHkoKVwiXG4gICAgICAgICAgW2FwcGVuZFRvXT1cIidib2R5J1wiXG4gICAgICAgICAgc3R5bGVDbGFzcz1cInctZnVsbFwiXG4gICAgICAgICAgW3N0eWxlXT1cInt3aWR0aDogJzEwMCUnfVwiPlxuICAgICAgICA8L3AtY2FsZW5kYXI+XG4gICAgICA8L2Rpdj5cbiAgICA8L3NpYS1keW5hbWljLWZpZWxkLXdyYXBwZXI+XG4gIGAsXG4gIHN0eWxlczogW2BcbiAgICA6Om5nLWRlZXAgcC1jYWxlbmRhciB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIC5wLWNhbGVuZGFyIHsgd2lkdGg6IDEwMCU7IH1cbiAgICAgIGlucHV0IHsgd2lkdGg6IDEwMCU7IH1cbiAgICB9XG4gIGBdXG59KVxuZXhwb3J0IGNsYXNzIER5bmFtaWNGaWVsZERhdGVDb21wb25lbnQgZXh0ZW5kcyBEeW5hbWljRmllbGRCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBjdXJyZW50RGF0ZUZvcm1hdCA9ICdkZC9tbS95eSc7XG4gIGNhbGVuZGFyVmlzaWJsZSA9IHRydWU7XG4gIHByaXZhdGUgbGFuZ1N1Yj86IFN1YnNjcmlwdGlvbjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICB0cmFuc2xhdGlvblNlcnZpY2U6IFRyYW5zbGF0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIGxvY2FsZVNlcnZpY2U6IExvY2FsZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmXG4gICkge1xuICAgIHN1cGVyKHRyYW5zbGF0aW9uU2VydmljZSk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnVwZGF0ZURhdGVGb3JtYXQoKTtcbiAgICB0aGlzLmxhbmdTdWIgPSB0aGlzLnRyYW5zbGF0aW9uU2VydmljZS5jdXJyZW50TGFuZ3VhZ2UkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLnJlZnJlc2hDYWxlbmRhcigpO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5sYW5nU3ViPy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZvcsOnYSByZS1jcmlhw6fDo28gZG8gcC1jYWxlbmRhciBwYXJhIGFwbGljYXIgbm92byBkYXRlRm9ybWF0IGUgbG9jYWxlXG4gICAqL1xuICBwcml2YXRlIHJlZnJlc2hDYWxlbmRhcigpOiB2b2lkIHtcbiAgICB0aGlzLmNhbGVuZGFyVmlzaWJsZSA9IGZhbHNlO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB0aGlzLnVwZGF0ZURhdGVGb3JtYXQoKTtcbiAgICB0aGlzLmNhbGVuZGFyVmlzaWJsZSA9IHRydWU7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVEYXRlRm9ybWF0KCk6IHZvaWQge1xuICAgIHRoaXMuY3VycmVudERhdGVGb3JtYXQgPSB0aGlzLmZpZWxkPy5kYXRlRm9ybWF0IHx8IHRoaXMubG9jYWxlU2VydmljZS5nZXRQcmltZU5HRGF0ZUZvcm1hdCgpO1xuICB9XG5cbiAgb3ZlcnJpZGUgZ2V0UGxhY2Vob2xkZXIoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gc3VwZXIuZ2V0UGxhY2Vob2xkZXIodHJ1ZSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -61,7 +61,8 @@ export class DynamicFieldDatetimeComponent extends DynamicFieldBaseComponent {
|
|
|
61
61
|
[class.ng-invalid]="isFieldInvalid()"
|
|
62
62
|
[class.ng-dirty]="isFieldDirty()"
|
|
63
63
|
[appendTo]="'body'"
|
|
64
|
-
styleClass="w-full"
|
|
64
|
+
styleClass="w-full"
|
|
65
|
+
[style]="{width: '100%'}">
|
|
65
66
|
</p-calendar>
|
|
66
67
|
</div>
|
|
67
68
|
</sia-dynamic-field-wrapper>
|
|
@@ -91,10 +92,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
91
92
|
[class.ng-invalid]="isFieldInvalid()"
|
|
92
93
|
[class.ng-dirty]="isFieldDirty()"
|
|
93
94
|
[appendTo]="'body'"
|
|
94
|
-
styleClass="w-full"
|
|
95
|
+
styleClass="w-full"
|
|
96
|
+
[style]="{width: '100%'}">
|
|
95
97
|
</p-calendar>
|
|
96
98
|
</div>
|
|
97
99
|
</sia-dynamic-field-wrapper>
|
|
98
100
|
`, styles: ["::ng-deep p-calendar{width:100%;.p-calendar,input{width:100%}}\n"] }]
|
|
99
101
|
}], ctorParameters: () => [{ type: i1.TranslationService }, { type: i2.LocaleService }, { type: i0.ChangeDetectorRef }] });
|
|
100
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
102
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1maWVsZC1kYXRldGltZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzLWFpL3NyYy9saWIvY29tcG9uZW50cy9keW5hbWljLWZvcm0vZmllbGRzL2R5bmFtaWMtZmllbGQtZGF0ZXRpbWUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXdDLE1BQU0sZUFBZSxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFJbEQsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDakYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7Ozs7Ozs7QUEwQzNFLE1BQU0sT0FBTyw2QkFBOEIsU0FBUSx5QkFBeUI7SUFPaEU7SUFDQTtJQVBWLGlCQUFpQixHQUFHLFVBQVUsQ0FBQztJQUMvQixlQUFlLEdBQUcsSUFBSSxDQUFDO0lBQ2YsT0FBTyxDQUFnQjtJQUUvQixZQUNFLGtCQUFzQyxFQUM5QixhQUE0QixFQUM1QixHQUFzQjtRQUU5QixLQUFLLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUhsQixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtJQUdoQyxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDckUsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3pCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFTyxlQUFlO1FBQ3JCLElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDO1FBQzdCLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7UUFDNUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRU8sZ0JBQWdCO1FBQ3RCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLFVBQVUsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLG9CQUFvQixFQUFFLENBQUM7SUFDL0YsQ0FBQztJQUVRLGNBQWM7UUFDckIsT0FBTyxLQUFLLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3BDLENBQUM7d0dBdENVLDZCQUE2Qjs0RkFBN0IsNkJBQTZCLDZHQS9COUI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQlQseUlBM0JDLFlBQVksa0lBQ1osbUJBQW1CLG1sQkFDbkIsY0FBYyxrekNBQ2QsNEJBQTRCOzs0RkFpQ25CLDZCQUE2QjtrQkF4Q3pDLFNBQVM7K0JBQ0UsNEJBQTRCLGNBQzFCLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLG1CQUFtQjt3QkFDbkIsY0FBYzt3QkFDZCw0QkFBNEI7cUJBQzdCLFlBQ1M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQlQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgT25EZXN0cm95LCBDaGFuZ2VEZXRlY3RvclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDYWxlbmRhck1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvY2FsZW5kYXInO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBUcmFuc2xhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy90cmFuc2xhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IExvY2FsZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9sb2NhbGUuc2VydmljZSc7XG5pbXBvcnQgeyBEeW5hbWljRmllbGRXcmFwcGVyQ29tcG9uZW50IH0gZnJvbSAnLi9keW5hbWljLWZpZWxkLXdyYXBwZXIuY29tcG9uZW50JztcbmltcG9ydCB7IER5bmFtaWNGaWVsZEJhc2VDb21wb25lbnQgfSBmcm9tICcuL2R5bmFtaWMtZmllbGQtYmFzZS5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzaWEtZHluYW1pYy1maWVsZC1kYXRldGltZScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBDYWxlbmRhck1vZHVsZSxcbiAgICBEeW5hbWljRmllbGRXcmFwcGVyQ29tcG9uZW50XG4gIF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPHNpYS1keW5hbWljLWZpZWxkLXdyYXBwZXIgW2ZpZWxkXT1cImZpZWxkXCIgW2Zvcm1dPVwiZm9ybVwiIFttb2RlXT1cIm1vZGVcIj5cbiAgICAgIDxkaXYgW2Zvcm1Hcm91cF09XCJmb3JtXCI+XG4gICAgICAgIDxwLWNhbGVuZGFyXG4gICAgICAgICAgKm5nSWY9XCJjYWxlbmRhclZpc2libGVcIlxuICAgICAgICAgIFtpbnB1dElkXT1cImZpZWxkLmZpZWxkXCJcbiAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImZpZWxkLmZpZWxkXCJcbiAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiZ2V0UGxhY2Vob2xkZXIoKVwiXG4gICAgICAgICAgW2RhdGVGb3JtYXRdPVwiY3VycmVudERhdGVGb3JtYXRcIlxuICAgICAgICAgIFtzaG93VGltZV09XCJ0cnVlXCJcbiAgICAgICAgICBbc2hvd1NlY29uZHNdPVwiZmFsc2VcIlxuICAgICAgICAgIFtob3VyRm9ybWF0XT1cIicyNCdcIlxuICAgICAgICAgIFtzaG93SWNvbl09XCJ0cnVlXCJcbiAgICAgICAgICBbc2hvd0J1dHRvbkJhcl09XCJ0cnVlXCJcbiAgICAgICAgICBbY2xhc3MubmctaW52YWxpZF09XCJpc0ZpZWxkSW52YWxpZCgpXCJcbiAgICAgICAgICBbY2xhc3MubmctZGlydHldPVwiaXNGaWVsZERpcnR5KClcIlxuICAgICAgICAgIFthcHBlbmRUb109XCInYm9keSdcIlxuICAgICAgICAgIHN0eWxlQ2xhc3M9XCJ3LWZ1bGxcIlxuICAgICAgICAgIFtzdHlsZV09XCJ7d2lkdGg6ICcxMDAlJ31cIj5cbiAgICAgICAgPC9wLWNhbGVuZGFyPlxuICAgICAgPC9kaXY+XG4gICAgPC9zaWEtZHluYW1pYy1maWVsZC13cmFwcGVyPlxuICBgLFxuICBzdHlsZXM6IFtgXG4gICAgOjpuZy1kZWVwIHAtY2FsZW5kYXIge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAucC1jYWxlbmRhciB7IHdpZHRoOiAxMDAlOyB9XG4gICAgICBpbnB1dCB7IHdpZHRoOiAxMDAlOyB9XG4gICAgfVxuICBgXVxufSlcbmV4cG9ydCBjbGFzcyBEeW5hbWljRmllbGREYXRldGltZUNvbXBvbmVudCBleHRlbmRzIER5bmFtaWNGaWVsZEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIGN1cnJlbnREYXRlRm9ybWF0ID0gJ2RkL21tL3l5JztcbiAgY2FsZW5kYXJWaXNpYmxlID0gdHJ1ZTtcbiAgcHJpdmF0ZSBsYW5nU3ViPzogU3Vic2NyaXB0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHRyYW5zbGF0aW9uU2VydmljZTogVHJhbnNsYXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgbG9jYWxlU2VydmljZTogTG9jYWxlU2VydmljZSxcbiAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgKSB7XG4gICAgc3VwZXIodHJhbnNsYXRpb25TZXJ2aWNlKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMudXBkYXRlRGF0ZUZvcm1hdCgpO1xuICAgIHRoaXMubGFuZ1N1YiA9IHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLmN1cnJlbnRMYW5ndWFnZSQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMucmVmcmVzaENhbGVuZGFyKCk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmxhbmdTdWI/LnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwcml2YXRlIHJlZnJlc2hDYWxlbmRhcigpOiB2b2lkIHtcbiAgICB0aGlzLmNhbGVuZGFyVmlzaWJsZSA9IGZhbHNlO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB0aGlzLnVwZGF0ZURhdGVGb3JtYXQoKTtcbiAgICB0aGlzLmNhbGVuZGFyVmlzaWJsZSA9IHRydWU7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVEYXRlRm9ybWF0KCk6IHZvaWQge1xuICAgIHRoaXMuY3VycmVudERhdGVGb3JtYXQgPSB0aGlzLmZpZWxkPy5kYXRlRm9ybWF0IHx8IHRoaXMubG9jYWxlU2VydmljZS5nZXRQcmltZU5HRGF0ZUZvcm1hdCgpO1xuICB9XG5cbiAgb3ZlcnJpZGUgZ2V0UGxhY2Vob2xkZXIoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gc3VwZXIuZ2V0UGxhY2Vob2xkZXIodHJ1ZSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -50,7 +50,8 @@ export class DynamicFieldDropdownComponent extends DynamicFieldBaseComponent {
|
|
|
50
50
|
[class.ng-dirty]="isFieldDirty()"
|
|
51
51
|
[appendTo]="'body'"
|
|
52
52
|
panelStyleClass="dynamic-form-dropdown-panel"
|
|
53
|
-
styleClass="w-full"
|
|
53
|
+
styleClass="w-full"
|
|
54
|
+
[style]="{width: '100%'}">
|
|
54
55
|
</p-dropdown>
|
|
55
56
|
</div>
|
|
56
57
|
</sia-dynamic-field-wrapper>
|
|
@@ -80,10 +81,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
80
81
|
[class.ng-dirty]="isFieldDirty()"
|
|
81
82
|
[appendTo]="'body'"
|
|
82
83
|
panelStyleClass="dynamic-form-dropdown-panel"
|
|
83
|
-
styleClass="w-full"
|
|
84
|
+
styleClass="w-full"
|
|
85
|
+
[style]="{width: '100%'}">
|
|
84
86
|
</p-dropdown>
|
|
85
87
|
</div>
|
|
86
88
|
</sia-dynamic-field-wrapper>
|
|
87
89
|
`, encapsulation: ViewEncapsulation.None, styles: ["::ng-deep p-dropdown{width:100%;.p-dropdown{width:100%}}.dynamic-form-dropdown-panel{min-width:100%!important}\n"] }]
|
|
88
90
|
}], ctorParameters: () => [{ type: i1.TranslationService }] });
|
|
89
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
91
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1maWVsZC1kcm9wZG93bi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzLWFpL3NyYy9saWIvY29tcG9uZW50cy9keW5hbWljLWZvcm0vZmllbGRzL2R5bmFtaWMtZmllbGQtZHJvcGRvd24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVsRCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNqRixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7Ozs7QUFrRHRFLE1BQU0sT0FBTyw2QkFBOEIsU0FBUSx5QkFBeUI7SUFDMUUsWUFBWSxrQkFBc0M7UUFDaEQsS0FBSyxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVELHFDQUFxQztJQUM1QixjQUFjO1FBQ3JCLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUMzQixPQUFPLGlCQUFpQixDQUFDLFNBQVMsQ0FDaEMsSUFBSSxDQUFDLGtCQUFrQixFQUN2QiwyQkFBMkIsRUFDM0IsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FDMUMsQ0FBQztRQUNKLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxJQUFJLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsZUFBZSxDQUFDLENBQUM7SUFDekcsQ0FBQztJQUVELFVBQVU7UUFDUixJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLE1BQU0sSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3hELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDekMsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSztnQkFDOUMsS0FBSyxFQUFFLEtBQUs7YUFDYixDQUFDLENBQUMsQ0FBQztRQUNOLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLE1BQU0sSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3pELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUM7UUFDaEMsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDO0lBQ2xDLENBQUM7d0dBNUJVLDZCQUE2Qjs0RkFBN0IsNkJBQTZCLDZHQXZDOUI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQlQseUxBM0JDLFlBQVksOEJBQ1osbUJBQW1CLG1sQkFDbkIsY0FBYyxxckNBQ2QsNEJBQTRCOzs0RkF5Q25CLDZCQUE2QjtrQkFoRHpDLFNBQVM7K0JBQ0UsNEJBQTRCLGNBQzFCLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLG1CQUFtQjt3QkFDbkIsY0FBYzt3QkFDZCw0QkFBNEI7cUJBQzdCLFlBQ1M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQlQsaUJBZWMsaUJBQWlCLENBQUMsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRHJvcGRvd25Nb2R1bGUgfSBmcm9tICdwcmltZW5nL2Ryb3Bkb3duJztcbmltcG9ydCB7IFRyYW5zbGF0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3RyYW5zbGF0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgRHluYW1pY0ZpZWxkV3JhcHBlckNvbXBvbmVudCB9IGZyb20gJy4vZHluYW1pYy1maWVsZC13cmFwcGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEeW5hbWljRmllbGRCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi9keW5hbWljLWZpZWxkLWJhc2UuY29tcG9uZW50JztcbmltcG9ydCB7IFRyYW5zbGF0aW9uSGVscGVyIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvdHJhbnNsYXRpb24uaGVscGVyJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2lhLWR5bmFtaWMtZmllbGQtZHJvcGRvd24nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgRHJvcGRvd25Nb2R1bGUsXG4gICAgRHluYW1pY0ZpZWxkV3JhcHBlckNvbXBvbmVudFxuICBdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxzaWEtZHluYW1pYy1maWVsZC13cmFwcGVyIFtmaWVsZF09XCJmaWVsZFwiIFtmb3JtXT1cImZvcm1cIiBbbW9kZV09XCJtb2RlXCI+XG4gICAgICA8ZGl2IFtmb3JtR3JvdXBdPVwiZm9ybVwiPlxuICAgICAgICA8cC1kcm9wZG93blxuICAgICAgICAgIFtpbnB1dElkXT1cImZpZWxkLmZpZWxkXCJcbiAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImZpZWxkLmZpZWxkXCJcbiAgICAgICAgICBbb3B0aW9uc109XCJnZXRPcHRpb25zKClcIlxuICAgICAgICAgIFtvcHRpb25MYWJlbF09XCJmaWVsZC5vcHRpb25MYWJlbCB8fCAnbGFiZWwnXCJcbiAgICAgICAgICBbb3B0aW9uVmFsdWVdPVwiZmllbGQub3B0aW9uVmFsdWUgfHwgJ3ZhbHVlJ1wiXG4gICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImdldFBsYWNlaG9sZGVyKClcIlxuICAgICAgICAgIFtzaG93Q2xlYXJdPVwibW9kZSA9PT0gJ2ZpbHRlcicgfHwgZmllbGQuc2hvd0NsZWFyXCJcbiAgICAgICAgICBbZmlsdGVyXT1cImZpZWxkLmZpbHRlciB8fCBmYWxzZVwiXG4gICAgICAgICAgW2ZpbHRlckJ5XT1cImZpZWxkLmZpbHRlckJ5XCJcbiAgICAgICAgICBbY2xhc3MubmctaW52YWxpZF09XCJpc0ZpZWxkSW52YWxpZCgpXCJcbiAgICAgICAgICBbY2xhc3MubmctZGlydHldPVwiaXNGaWVsZERpcnR5KClcIlxuICAgICAgICAgIFthcHBlbmRUb109XCInYm9keSdcIlxuICAgICAgICAgIHBhbmVsU3R5bGVDbGFzcz1cImR5bmFtaWMtZm9ybS1kcm9wZG93bi1wYW5lbFwiXG4gICAgICAgICAgc3R5bGVDbGFzcz1cInctZnVsbFwiXG4gICAgICAgICAgW3N0eWxlXT1cInt3aWR0aDogJzEwMCUnfVwiPlxuICAgICAgICA8L3AtZHJvcGRvd24+XG4gICAgICA8L2Rpdj5cbiAgICA8L3NpYS1keW5hbWljLWZpZWxkLXdyYXBwZXI+XG4gIGAsXG4gIHN0eWxlczogW2BcbiAgICA6Om5nLWRlZXAgcC1kcm9wZG93biB7XG4gICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgLnAtZHJvcGRvd24ge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuZHluYW1pYy1mb3JtLWRyb3Bkb3duLXBhbmVsIHtcbiAgICAgIG1pbi13aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgIH1cbiAgYF0sXG4gIC8vIEVzdGlsb3MgZ2xvYmFpcyBwYXJhIG8gcGFpbmVsIGRvIGRyb3Bkb3duXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgRHluYW1pY0ZpZWxkRHJvcGRvd25Db21wb25lbnQgZXh0ZW5kcyBEeW5hbWljRmllbGRCYXNlQ29tcG9uZW50IHtcbiAgY29uc3RydWN0b3IodHJhbnNsYXRpb25TZXJ2aWNlOiBUcmFuc2xhdGlvblNlcnZpY2UpIHtcbiAgICBzdXBlcih0cmFuc2xhdGlvblNlcnZpY2UpO1xuICB9XG5cbiAgLy8gT3ZlcnJpZGUgY3VzdG9taXphZG8gcGFyYSBkcm9wZG93blxuICBvdmVycmlkZSBnZXRQbGFjZWhvbGRlcigpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLm1vZGUgPT09ICdmaWx0ZXInKSB7XG4gICAgICByZXR1cm4gVHJhbnNsYXRpb25IZWxwZXIudHJhbnNsYXRlKFxuICAgICAgICB0aGlzLnRyYW5zbGF0aW9uU2VydmljZSxcbiAgICAgICAgJ2ZpbHRlcl9zZWxlY3RfcGxhY2Vob2xkZXInLFxuICAgICAgICB7IGxhYmVsOiB0aGlzLmZpZWxkLmxhYmVsLnRvTG93ZXJDYXNlKCkgfVxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZmllbGQucGxhY2Vob2xkZXIgfHwgVHJhbnNsYXRpb25IZWxwZXIudHJhbnNsYXRlKHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLCAnc2VsZWN0X29wdGlvbicpO1xuICB9XG5cbiAgZ2V0T3B0aW9ucygpOiBhbnlbXSB7XG4gICAgaWYgKHRoaXMuZmllbGQudHlwZSA9PT0gJ2VudW0nICYmIHRoaXMuZmllbGQuZW51bVZhbHVlcykge1xuICAgICAgcmV0dXJuIHRoaXMuZmllbGQuZW51bVZhbHVlcy5tYXAodmFsdWUgPT4gKHtcbiAgICAgICAgbGFiZWw6IHRoaXMuZmllbGQuZW51bUxhYmVscz8uW3ZhbHVlXSB8fCB2YWx1ZSxcbiAgICAgICAgdmFsdWU6IHZhbHVlXG4gICAgICB9KSk7XG4gICAgfVxuICAgIGlmICh0aGlzLmZpZWxkLnR5cGUgPT09ICdlbnVtJyAmJiB0aGlzLmZpZWxkLmVudW1PcHRpb25zKSB7XG4gICAgICByZXR1cm4gdGhpcy5maWVsZC5lbnVtT3B0aW9ucztcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZmllbGQub3B0aW9ucyB8fCBbXTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
import { Component, ViewChild } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { ReactiveFormsModule } from '@angular/forms';
|
|
4
|
+
import { ButtonModule } from 'primeng/button';
|
|
5
|
+
import { DynamicFieldWrapperComponent } from './dynamic-field-wrapper.component';
|
|
6
|
+
import { DynamicFieldBaseComponent } from './dynamic-field-base.component';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "../../../services/translation.service";
|
|
9
|
+
import * as i2 from "@angular/common";
|
|
10
|
+
import * as i3 from "@angular/forms";
|
|
11
|
+
export class DynamicFieldImageComponent extends DynamicFieldBaseComponent {
|
|
12
|
+
fileInput;
|
|
13
|
+
previewUrl = null;
|
|
14
|
+
isDragOver = false;
|
|
15
|
+
constructor(translationService) {
|
|
16
|
+
super(translationService);
|
|
17
|
+
}
|
|
18
|
+
ngOnInit() {
|
|
19
|
+
const currentValue = this.form.get(this.field.field)?.value;
|
|
20
|
+
if (currentValue) {
|
|
21
|
+
this.previewUrl = currentValue.startsWith('data:') ? currentValue : `data:image/png;base64,${currentValue}`;
|
|
22
|
+
// Normalize: ensure form value always has data URI prefix
|
|
23
|
+
if (!currentValue.startsWith('data:')) {
|
|
24
|
+
this.form.get(this.field.field)?.setValue(`data:image/png;base64,${currentValue}`, { emitEvent: false });
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
triggerFileInput() {
|
|
29
|
+
this.fileInput?.nativeElement?.click();
|
|
30
|
+
}
|
|
31
|
+
onFileSelected(event) {
|
|
32
|
+
const input = event.target;
|
|
33
|
+
const file = input.files?.[0];
|
|
34
|
+
if (file)
|
|
35
|
+
this.handleFile(file);
|
|
36
|
+
}
|
|
37
|
+
onDragOver(event) {
|
|
38
|
+
event.preventDefault();
|
|
39
|
+
event.stopPropagation();
|
|
40
|
+
this.isDragOver = true;
|
|
41
|
+
}
|
|
42
|
+
onDragLeave(event) {
|
|
43
|
+
event.preventDefault();
|
|
44
|
+
event.stopPropagation();
|
|
45
|
+
this.isDragOver = false;
|
|
46
|
+
}
|
|
47
|
+
onDrop(event) {
|
|
48
|
+
event.preventDefault();
|
|
49
|
+
event.stopPropagation();
|
|
50
|
+
this.isDragOver = false;
|
|
51
|
+
const file = event.dataTransfer?.files?.[0];
|
|
52
|
+
if (file)
|
|
53
|
+
this.handleFile(file);
|
|
54
|
+
}
|
|
55
|
+
removeImage() {
|
|
56
|
+
this.previewUrl = null;
|
|
57
|
+
this.form.get(this.field.field)?.setValue(null);
|
|
58
|
+
this.form.get(this.field.field)?.markAsDirty();
|
|
59
|
+
}
|
|
60
|
+
getAcceptHint() {
|
|
61
|
+
const maxSize = this.field.imageMaxSize || 5 * 1024 * 1024;
|
|
62
|
+
const sizeMB = Math.round(maxSize / (1024 * 1024));
|
|
63
|
+
return `Máx. ${sizeMB}MB`;
|
|
64
|
+
}
|
|
65
|
+
handleFile(file) {
|
|
66
|
+
if (!file)
|
|
67
|
+
return;
|
|
68
|
+
const maxSize = this.field.imageMaxSize || 5 * 1024 * 1024;
|
|
69
|
+
if (file.size > maxSize) {
|
|
70
|
+
this.form.get(this.field.field)?.setErrors({ maxSize: true });
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
const reader = new FileReader();
|
|
74
|
+
reader.onload = () => {
|
|
75
|
+
const result = reader.result;
|
|
76
|
+
this.previewUrl = result;
|
|
77
|
+
// Store full data URI (e.g. data:image/jpeg;base64,...)
|
|
78
|
+
this.form.get(this.field.field)?.setValue(result);
|
|
79
|
+
this.form.get(this.field.field)?.markAsDirty();
|
|
80
|
+
};
|
|
81
|
+
reader.readAsDataURL(file);
|
|
82
|
+
}
|
|
83
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DynamicFieldImageComponent, deps: [{ token: i1.TranslationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
84
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: DynamicFieldImageComponent, isStandalone: true, selector: "sia-dynamic-field-image", viewQueries: [{ propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true }], usesInheritance: true, ngImport: i0, template: `
|
|
85
|
+
<sia-dynamic-field-wrapper [field]="field" [form]="form" [mode]="mode">
|
|
86
|
+
<div [formGroup]="form" class="image-field">
|
|
87
|
+
|
|
88
|
+
<!-- Preview -->
|
|
89
|
+
<div class="image-preview" *ngIf="previewUrl" [style.height]="field.imagePreviewHeight || '150px'">
|
|
90
|
+
<img [src]="previewUrl" alt="Preview" />
|
|
91
|
+
<button type="button" class="remove-btn" (click)="removeImage()" [title]="'Remover'">
|
|
92
|
+
<i class="pi pi-times"></i>
|
|
93
|
+
</button>
|
|
94
|
+
</div>
|
|
95
|
+
|
|
96
|
+
<!-- Upload area -->
|
|
97
|
+
<div class="image-upload" *ngIf="!previewUrl"
|
|
98
|
+
[style.height]="field.imagePreviewHeight || '150px'"
|
|
99
|
+
[class.invalid]="isFieldInvalid()"
|
|
100
|
+
(click)="triggerFileInput()"
|
|
101
|
+
(dragover)="onDragOver($event)"
|
|
102
|
+
(dragleave)="onDragLeave($event)"
|
|
103
|
+
(drop)="onDrop($event)"
|
|
104
|
+
[class.dragover]="isDragOver">
|
|
105
|
+
<i class="pi pi-image"></i>
|
|
106
|
+
<span class="upload-text">Clique ou arraste uma imagem</span>
|
|
107
|
+
<span class="upload-hint">{{ getAcceptHint() }}</span>
|
|
108
|
+
</div>
|
|
109
|
+
|
|
110
|
+
<input #fileInput type="file"
|
|
111
|
+
[accept]="field.imageAccept || 'image/*'"
|
|
112
|
+
(change)="onFileSelected($event)"
|
|
113
|
+
style="display: none" />
|
|
114
|
+
</div>
|
|
115
|
+
</sia-dynamic-field-wrapper>
|
|
116
|
+
`, isInline: true, styles: [".image-field{width:100%}.image-preview{position:relative;border:1px solid var(--p-surface-200, #e2e8f0);border-radius:var(--p-border-radius, 6px);overflow:hidden;background:var(--p-surface-50, #f8fafc);display:flex;align-items:center;justify-content:center;img{max-width:100%;max-height:100%;object-fit:contain}.remove-btn{position:absolute;top:.5rem;right:.5rem;width:28px;height:28px;border-radius:50%;border:none;background:#00000080;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:.75rem;transition:background .2s;&:hover{background:#dc2626cc}}}.image-upload{border:2px dashed var(--p-surface-300, #cbd5e1);border-radius:var(--p-border-radius, 6px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;cursor:pointer;transition:all .2s;background:var(--p-surface-0, #fff);&:hover,&.dragover{border-color:var(--p-primary-color, #3b82f6);background:var(--p-primary-50, #eff6ff)}&.invalid{border-color:var(--p-red-500, #ef4444)}.pi-image{font-size:2rem;color:var(--p-surface-400, #94a3b8)}.upload-text{font-size:.85rem;color:var(--p-text-muted-color, #64748b);font-weight:500}.upload-hint{font-size:.75rem;color:var(--p-surface-400, #94a3b8)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "component", type: DynamicFieldWrapperComponent, selector: "sia-dynamic-field-wrapper", inputs: ["field", "form", "mode"] }] });
|
|
117
|
+
}
|
|
118
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DynamicFieldImageComponent, decorators: [{
|
|
119
|
+
type: Component,
|
|
120
|
+
args: [{ selector: 'sia-dynamic-field-image', standalone: true, imports: [
|
|
121
|
+
CommonModule,
|
|
122
|
+
ReactiveFormsModule,
|
|
123
|
+
ButtonModule,
|
|
124
|
+
DynamicFieldWrapperComponent
|
|
125
|
+
], template: `
|
|
126
|
+
<sia-dynamic-field-wrapper [field]="field" [form]="form" [mode]="mode">
|
|
127
|
+
<div [formGroup]="form" class="image-field">
|
|
128
|
+
|
|
129
|
+
<!-- Preview -->
|
|
130
|
+
<div class="image-preview" *ngIf="previewUrl" [style.height]="field.imagePreviewHeight || '150px'">
|
|
131
|
+
<img [src]="previewUrl" alt="Preview" />
|
|
132
|
+
<button type="button" class="remove-btn" (click)="removeImage()" [title]="'Remover'">
|
|
133
|
+
<i class="pi pi-times"></i>
|
|
134
|
+
</button>
|
|
135
|
+
</div>
|
|
136
|
+
|
|
137
|
+
<!-- Upload area -->
|
|
138
|
+
<div class="image-upload" *ngIf="!previewUrl"
|
|
139
|
+
[style.height]="field.imagePreviewHeight || '150px'"
|
|
140
|
+
[class.invalid]="isFieldInvalid()"
|
|
141
|
+
(click)="triggerFileInput()"
|
|
142
|
+
(dragover)="onDragOver($event)"
|
|
143
|
+
(dragleave)="onDragLeave($event)"
|
|
144
|
+
(drop)="onDrop($event)"
|
|
145
|
+
[class.dragover]="isDragOver">
|
|
146
|
+
<i class="pi pi-image"></i>
|
|
147
|
+
<span class="upload-text">Clique ou arraste uma imagem</span>
|
|
148
|
+
<span class="upload-hint">{{ getAcceptHint() }}</span>
|
|
149
|
+
</div>
|
|
150
|
+
|
|
151
|
+
<input #fileInput type="file"
|
|
152
|
+
[accept]="field.imageAccept || 'image/*'"
|
|
153
|
+
(change)="onFileSelected($event)"
|
|
154
|
+
style="display: none" />
|
|
155
|
+
</div>
|
|
156
|
+
</sia-dynamic-field-wrapper>
|
|
157
|
+
`, styles: [".image-field{width:100%}.image-preview{position:relative;border:1px solid var(--p-surface-200, #e2e8f0);border-radius:var(--p-border-radius, 6px);overflow:hidden;background:var(--p-surface-50, #f8fafc);display:flex;align-items:center;justify-content:center;img{max-width:100%;max-height:100%;object-fit:contain}.remove-btn{position:absolute;top:.5rem;right:.5rem;width:28px;height:28px;border-radius:50%;border:none;background:#00000080;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:.75rem;transition:background .2s;&:hover{background:#dc2626cc}}}.image-upload{border:2px dashed var(--p-surface-300, #cbd5e1);border-radius:var(--p-border-radius, 6px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;cursor:pointer;transition:all .2s;background:var(--p-surface-0, #fff);&:hover,&.dragover{border-color:var(--p-primary-color, #3b82f6);background:var(--p-primary-50, #eff6ff)}&.invalid{border-color:var(--p-red-500, #ef4444)}.pi-image{font-size:2rem;color:var(--p-surface-400, #94a3b8)}.upload-text{font-size:.85rem;color:var(--p-text-muted-color, #64748b);font-weight:500}.upload-hint{font-size:.75rem;color:var(--p-surface-400, #94a3b8)}}\n"] }]
|
|
158
|
+
}], ctorParameters: () => [{ type: i1.TranslationService }], propDecorators: { fileInput: [{
|
|
159
|
+
type: ViewChild,
|
|
160
|
+
args: ['fileInput']
|
|
161
|
+
}] } });
|
|
162
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1maWVsZC1pbWFnZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzLWFpL3NyYy9saWIvY29tcG9uZW50cy9keW5hbWljLWZvcm0vZmllbGRzL2R5bmFtaWMtZmllbGQtaW1hZ2UuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFjLE1BQU0sZUFBZSxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFOUMsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDakYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7Ozs7O0FBMkgzRSxNQUFNLE9BQU8sMEJBQTJCLFNBQVEseUJBQXlCO0lBQy9DLFNBQVMsQ0FBZ0M7SUFDakUsVUFBVSxHQUFrQixJQUFJLENBQUM7SUFDakMsVUFBVSxHQUFHLEtBQUssQ0FBQztJQUVuQixZQUFZLGtCQUFzQztRQUNoRCxLQUFLLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQsUUFBUTtRQUNOLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsS0FBSyxDQUFDO1FBQzVELElBQUksWUFBWSxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLFVBQVUsR0FBRyxZQUFZLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLHlCQUF5QixZQUFZLEVB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QUVELE1BQU0sTUFBTSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUM7UUFDaEMsTUFBTSxDQUFDLE1BQU0sR0FBRyxHQUFHLEVBQUU7WUFDbkIsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQWdCLENBQUM7WUFDdkMsSUFBSSxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUM7WUFDekIsd0RBQXdEO1lBQ3hELElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ2xELElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsV0FBVyxFQUFFLENBQUM7UUFDakQsQ0FBQyxDQUFDO1FBQ0YsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM3QixDQUFDO3dHQWhGVSwwQkFBMEI7NEZBQTFCLDBCQUEwQixrTkFoSDNCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWdDVCxneENBckNDLFlBQVksa0lBQ1osbUJBQW1CLDJVQUNuQixZQUFZLCtCQUNaLDRCQUE0Qjs7NEZBa0huQiwwQkFBMEI7a0JBekh0QyxTQUFTOytCQUNFLHlCQUF5QixjQUN2QixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixtQkFBbUI7d0JBQ25CLFlBQVk7d0JBQ1osNEJBQTRCO3FCQUM3QixZQUNTOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWdDVDt1RkFpRnVCLFNBQVM7c0JBQWhDLFNBQVM7dUJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgVmlld0NoaWxkLCBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEJ1dHRvbk1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvYnV0dG9uJztcbmltcG9ydCB7IFRyYW5zbGF0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3RyYW5zbGF0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgRHluYW1pY0ZpZWxkV3JhcHBlckNvbXBvbmVudCB9IGZyb20gJy4vZHluYW1pYy1maWVsZC13cmFwcGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEeW5hbWljRmllbGRCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi9keW5hbWljLWZpZWxkLWJhc2UuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2lhLWR5bmFtaWMtZmllbGQtaW1hZ2UnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgQnV0dG9uTW9kdWxlLFxuICAgIER5bmFtaWNGaWVsZFdyYXBwZXJDb21wb25lbnRcbiAgXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8c2lhLWR5bmFtaWMtZmllbGQtd3JhcHBlciBbZmllbGRdPVwiZmllbGRcIiBbZm9ybV09XCJmb3JtXCIgW21vZGVdPVwibW9kZVwiPlxuICAgICAgPGRpdiBbZm9ybUdyb3VwXT1cImZvcm1cIiBjbGFzcz1cImltYWdlLWZpZWxkXCI+XG5cbiAgICAgICAgPCEtLSBQcmV2aWV3IC0tPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaW1hZ2UtcHJldmlld1wiICpuZ0lmPVwicHJldmlld1VybFwiIFtzdHlsZS5oZWlnaHRdPVwiZmllbGQuaW1hZ2VQcmV2aWV3SGVpZ2h0IHx8ICcxNTBweCdcIj5cbiAgICAgICAgICA8aW1nIFtzcmNdPVwicHJldmlld1VybFwiIGFsdD1cIlByZXZpZXdcIiAvPlxuICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwicmVtb3ZlLWJ0blwiIChjbGljayk9XCJyZW1vdmVJbWFnZSgpXCIgW3RpdGxlXT1cIidSZW1vdmVyJ1wiPlxuICAgICAgICAgICAgPGkgY2xhc3M9XCJwaSBwaS10aW1lc1wiPjwvaT5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPCEtLSBVcGxvYWQgYXJlYSAtLT5cbiAgICAgICAgPGRpdiBjbGFzcz1cImltYWdlLXVwbG9hZFwiICpuZ0lmPVwiIXByZXZpZXdVcmxcIlxuICAgICAgICAgICAgIFtzdHlsZS5oZWlnaHRdPVwiZmllbGQuaW1hZ2VQcmV2aWV3SGVpZ2h0IHx8ICcxNTBweCdcIlxuICAgICAgICAgICAgIFtjbGFzcy5pbnZhbGlkXT1cImlzRmllbGRJbnZhbGlkKClcIlxuICAgICAgICAgICAgIChjbGljayk9XCJ0cmlnZ2VyRmlsZUlucHV0KClcIlxuICAgICAgICAgICAgIChkcmFnb3Zlcik9XCJvbkRyYWdPdmVyKCRldmVudClcIlxuICAgICAgICAgICAgIChkcmFnbGVhdmUpPVwib25EcmFnTGVhdmUoJGV2ZW50KVwiXG4gICAgICAgICAgICAgKGRyb3ApPVwib25Ecm9wKCRldmVudClcIlxuICAgICAgICAgICAgIFtjbGFzcy5kcmFnb3Zlcl09XCJpc0RyYWdPdmVyXCI+XG4gICAgICAgICAgPGkgY2xhc3M9XCJwaSBwaS1pbWFnZVwiPjwvaT5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInVwbG9hZC10ZXh0XCI+Q2xpcXVlIG91IGFycmFzdGUgdW1hIGltYWdlbTwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInVwbG9hZC1oaW50XCI+e3sgZ2V0QWNjZXB0SGludCgpIH19PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8aW5wdXQgI2ZpbGVJbnB1dCB0eXBlPVwiZmlsZVwiXG4gICAgICAgICAgICAgICBbYWNjZXB0XT1cImZpZWxkLmltYWdlQWNjZXB0IHx8ICdpbWFnZS8qJ1wiXG4gICAgICAgICAgICAgICAoY2hhbmdlKT1cIm9uRmlsZVNlbGVjdGVkKCRldmVudClcIlxuICAgICAgICAgICAgICAgc3R5bGU9XCJkaXNwbGF5OiBub25lXCIgLz5cbiAgICAgIDwvZGl2PlxuICAgIDwvc2lhLWR5bmFtaWMtZmllbGQtd3JhcHBlcj5cbiAgYCxcbiAgc3R5bGVzOiBbYFxuICAgIC5pbWFnZS1maWVsZCB7IHdpZHRoOiAxMDAlOyB9XG5cbiAgICAuaW1hZ2UtcHJldmlldyB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1wLXN1cmZhY2UtMjAwLCAjZTJlOGYwKTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtYm9yZGVyLXJhZGl1cywgNnB4KTtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXN1cmZhY2UtNTAsICNmOGZhZmMpO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAgICAgaW1nIHtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvYmplY3QtZml0OiBjb250YWluO1xuICAgICAgfVxuXG4gICAgICAucmVtb3ZlLWJ0biB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwLjVyZW07XG4gICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgIHdpZHRoOiAyOHB4O1xuICAgICAgICBoZWlnaHQ6IDI4cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNSk7XG4gICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgZm9udC1zaXplOiAwLjc1cmVtO1xuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMnM7XG5cbiAgICAgICAgJjpob3ZlciB7IGJhY2tncm91bmQ6IHJnYmEoMjIwLCAzOCwgMzgsIDAuOCk7IH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAuaW1hZ2UtdXBsb2FkIHtcbiAgICAgIGJvcmRlcjogMnB4IGRhc2hlZCB2YXIoLS1wLXN1cmZhY2UtMzAwLCAjY2JkNWUxKTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtYm9yZGVyLXJhZGl1cywgNnB4KTtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgZ2FwOiAwLjVyZW07XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycztcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtc3VyZmFjZS0wLCAjZmZmKTtcblxuICAgICAgJjpob3ZlciwgJi5kcmFnb3ZlciB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcC1wcmltYXJ5LWNvbG9yLCAjM2I4MmY2KTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1wcmltYXJ5LTUwLCAjZWZmNmZmKTtcbiAgICAgIH1cblxuICAgICAgJi5pbnZhbGlkIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wLXJlZC01MDAsICNlZjQ0NDQpO1xuICAgICAgfVxuXG4gICAgICAucGktaW1hZ2Uge1xuICAgICAgICBmb250LXNpemU6IDJyZW07XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLXN1cmZhY2UtNDAwLCAjOTRhM2I4KTtcbiAgICAgIH1cblxuICAgICAgLnVwbG9hZC10ZXh0IHtcbiAgICAgICAgZm9udC1zaXplOiAwLjg1cmVtO1xuICAgICAgICBjb2xvcjogdmFyKC0tcC10ZXh0LW11dGVkLWNvbG9yLCAjNjQ3NDhiKTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgIH1cblxuICAgICAgLnVwbG9hZC1oaW50IHtcbiAgICAgICAgZm9udC1zaXplOiAwLjc1cmVtO1xuICAgICAgICBjb2xvcjogdmFyKC0tcC1zdXJmYWNlLTQwMCwgIzk0YTNiOCk7XG4gICAgICB9XG4gICAgfVxuICBgXVxufSlcbmV4cG9ydCBjbGFzcyBEeW5hbWljRmllbGRJbWFnZUNvbXBvbmVudCBleHRlbmRzIER5bmFtaWNGaWVsZEJhc2VDb21wb25lbnQge1xuICBAVmlld0NoaWxkKCdmaWxlSW5wdXQnKSBmaWxlSW5wdXQhOiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuICBwcmV2aWV3VXJsOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgaXNEcmFnT3ZlciA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHRyYW5zbGF0aW9uU2VydmljZTogVHJhbnNsYXRpb25TZXJ2aWNlKSB7XG4gICAgc3VwZXIodHJhbnNsYXRpb25TZXJ2aWNlKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGNvbnN0IGN1cnJlbnRWYWx1ZSA9IHRoaXMuZm9ybS5nZXQodGhpcy5maWVsZC5maWVsZCk/LnZhbHVlO1xuICAgIGlmIChjdXJyZW50VmFsdWUpIHtcbiAgICAgIHRoaXMucHJldmlld1VybCA9IGN1cnJlbnRWYWx1ZS5zdGFydHNXaXRoKCdkYXRhOicpID8gY3VycmVudFZhbHVlIDogYGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCwke2N1cnJlbnRWYWx1ZX1gO1xuICAgICAgLy8gTm9ybWFsaXplOiBlbnN1cmUgZm9ybSB2YWx1ZSBhbHdheXMgaGFzIGRhdGEgVVJJIHByZWZpeFxuICAgICAgaWYgKCFjdXJyZW50VmFsdWUuc3RhcnRzV2l0aCgnZGF0YTonKSkge1xuICAgICAgICB0aGlzLmZvcm0uZ2V0KHRoaXMuZmllbGQuZmllbGQpPy5zZXRWYWx1ZShgZGF0YTppbWFnZS9wbmc7YmFzZTY0LCR7Y3VycmVudFZhbHVlfWAsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB0cmlnZ2VyRmlsZUlucHV0KCk6IHZvaWQge1xuICAgIHRoaXMuZmlsZUlucHV0Py5uYXRpdmVFbGVtZW50Py5jbGljaygpO1xuICB9XG5cbiAgb25GaWxlU2VsZWN0ZWQoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgaW5wdXQgPSBldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcbiAgICBjb25zdCBmaWxlID0gaW5wdXQuZmlsZXM/LlswXTtcbiAgICBpZiAoZmlsZSkgdGhpcy5oYW5kbGVGaWxlKGZpbGUpO1xuICB9XG5cbiAgb25EcmFnT3ZlcihldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLmlzRHJhZ092ZXIgPSB0cnVlO1xuICB9XG5cbiAgb25EcmFnTGVhdmUoZXZlbnQ6IERyYWdFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5pc0RyYWdPdmVyID0gZmFsc2U7XG4gIH1cblxuICBvbkRyb3AoZXZlbnQ6IERyYWdFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5pc0RyYWdPdmVyID0gZmFsc2U7XG4gICAgY29uc3QgZmlsZSA9IGV2ZW50LmRhdGFUcmFuc2Zlcj8uZmlsZXM/LlswXTtcbiAgICBpZiAoZmlsZSkgdGhpcy5oYW5kbGVGaWxlKGZpbGUpO1xuICB9XG5cbiAgcmVtb3ZlSW1hZ2UoKTogdm9pZCB7XG4gICAgdGhpcy5wcmV2aWV3VXJsID0gbnVsbDtcbiAgICB0aGlzLmZvcm0uZ2V0KHRoaXMuZmllbGQuZmllbGQpPy5zZXRWYWx1ZShudWxsKTtcbiAgICB0aGlzLmZvcm0uZ2V0KHRoaXMuZmllbGQuZmllbGQpPy5tYXJrQXNEaXJ0eSgpO1xuICB9XG5cbiAgZ2V0QWNjZXB0SGludCgpOiBzdHJpbmcge1xuICAgIGNvbnN0IG1heFNpemUgPSB0aGlzLmZpZWxkLmltYWdlTWF4U2l6ZSB8fCA1ICogMTAyNCAqIDEwMjQ7XG4gICAgY29uc3Qgc2l6ZU1CID0gTWF0aC5yb3VuZChtYXhTaXplIC8gKDEwMjQgKiAxMDI0KSk7XG4gICAgcmV0dXJuIGBNw6F4LiAke3NpemVNQn1NQmA7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUZpbGUoZmlsZTogRmlsZSB8IHVuZGVmaW5lZCk6IHZvaWQge1xuICAgIGlmICghZmlsZSkgcmV0dXJuO1xuXG4gICAgY29uc3QgbWF4U2l6ZSA9IHRoaXMuZmllbGQuaW1hZ2VNYXhTaXplIHx8IDUgKiAxMDI0ICogMTAyNDtcbiAgICBpZiAoZmlsZS5zaXplID4gbWF4U2l6ZSkge1xuICAgICAgdGhpcy5mb3JtLmdldCh0aGlzLmZpZWxkLmZpZWxkKT8uc2V0RXJyb3JzKHsgbWF4U2l6ZTogdHJ1ZSB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuICAgIHJlYWRlci5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICBjb25zdCByZXN1bHQgPSByZWFkZXIucmVzdWx0IGFzIHN0cmluZztcbiAgICAgIHRoaXMucHJldmlld1VybCA9IHJlc3VsdDtcbiAgICAgIC8vIFN0b3JlIGZ1bGwgZGF0YSBVUkkgKGUuZy4gZGF0YTppbWFnZS9qcGVnO2Jhc2U2NCwuLi4pXG4gICAgICB0aGlzLmZvcm0uZ2V0KHRoaXMuZmllbGQuZmllbGQpPy5zZXRWYWx1ZShyZXN1bHQpO1xuICAgICAgdGhpcy5mb3JtLmdldCh0aGlzLmZpZWxkLmZpZWxkKT8ubWFya0FzRGlydHkoKTtcbiAgICB9O1xuICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpO1xuICB9XG59XG4iXX0=
|