@dsivd/prestations-ng 15.3.1-beta3 → 15.3.1-beta4
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/CHANGELOG.md +16 -7
- package/dsivd-prestations-ng-v15.3.1-beta4.tgz +0 -0
- package/esm2020/foehn-boolean/foehn-boolean-checkbox.component.mjs +3 -3
- package/esm2020/foehn-input/foehn-input-textarea.component.mjs +15 -10
- package/fesm2015/dsivd-prestations-ng.mjs +16 -11
- package/fesm2015/dsivd-prestations-ng.mjs.map +1 -1
- package/fesm2020/dsivd-prestations-ng.mjs +16 -11
- package/fesm2020/dsivd-prestations-ng.mjs.map +1 -1
- package/package.json +1 -1
- package/dsivd-prestations-ng-v15.3.1-beta3.tgz +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -26,7 +26,6 @@ A change is considered **breaking** if you have to change your code or update yo
|
|
|
26
26
|
|
|
27
27
|
---
|
|
28
28
|
|
|
29
|
-
|
|
30
29
|
## [15.3.1]
|
|
31
30
|
|
|
32
31
|
### Updated
|
|
@@ -36,14 +35,24 @@ A change is considered **breaking** if you have to change your code or update yo
|
|
|
36
35
|
- removed `@Input() helpModalTitle: string` The title of the modal
|
|
37
36
|
- removed `@Input() helpModalContent: string` The content of the modal
|
|
38
37
|
- replaced by `@Input() helpModal: HelpModal`
|
|
39
|
-
|
|
38
|
+
|
|
40
39
|
- [HelpModal](projects/prestations-ng/src/foehn-help-modal/foehn-help-modal.type.ts)
|
|
41
|
-
|
|
40
|
+
- add value `modalSize?: string` to configure the size of the foehn-help-modal (defaults to `modal-lg`)
|
|
42
41
|
|
|
43
42
|
- [Image](projects/prestations-ng/src/foehn-help-modal/foehn-help-modal.type.ts)
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
43
|
+
- add value `width?: string` to configure the size of the picture (defaults to `100%`)
|
|
44
|
+
- add value `height?: string` to configure the size of the picture (defaults to `auto`)
|
|
45
|
+
|
|
46
|
+
### Fixed
|
|
47
|
+
|
|
48
|
+
- [foehn-input-textarea.component.ts](projects/prestations-ng/src/foehn-input/foehn-input-textarea.component.ts)
|
|
49
|
+
- CSS color of remaining chars not being changed when input is reset
|
|
50
|
+
|
|
51
|
+
- [foehn-boolean-checkbox.component.html](projects/prestations-ng/src/foehn-boolean/foehn-boolean-checkbox.component.html)
|
|
52
|
+
- handle `isLabelSrOnly` input
|
|
53
|
+
|
|
54
|
+
## [15.3.0]
|
|
55
|
+
|
|
47
56
|
### Added
|
|
48
57
|
|
|
49
58
|
- [foehn-multiselect-autocomplete.component.ts](projects/prestations-ng/src/foehn-multiselect-autocomplete/foehn-multiselect-autocomplete.component.ts)
|
|
@@ -72,7 +81,7 @@ A change is considered **breaking** if you have to change your code or update yo
|
|
|
72
81
|
|
|
73
82
|
### Fixed
|
|
74
83
|
|
|
75
|
-
- [foehn-input-textarea.component.ts](projects/prestations-ng/
|
|
84
|
+
- [foehn-input-textarea.component.ts](projects/prestations-ng/src/foehn-input/foehn-input-textarea.component.ts)
|
|
76
85
|
- add function `getCharCountLabel` that return the plural or singular form of the label accordingly (one dictionary key for plural and another one for singular)
|
|
77
86
|
- add default label for remaining characters in [default-dictionary.ts](projects/prestations-ng/src/sdk-dictionary/default-dictionary.ts)
|
|
78
87
|
- `'foehn-textarea.chars-remaining.plural': '{charCountLeft} caractères restants'`
|
|
Binary file
|
|
@@ -14,7 +14,7 @@ FoehnBooleanCheckboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "1
|
|
|
14
14
|
useExisting: forwardRef(() => FoehnBooleanCheckboxComponent),
|
|
15
15
|
multi: true
|
|
16
16
|
}
|
|
17
|
-
], usesInheritance: true, ngImport: i0, template: "<div\n [class.vd-form-group-danger]=\"hasErrorsToDisplay()\"\n class=\"form-group\"\n [attr.id]=\"buildId('Container')\"\n tabindex=\"-1\"\n>\n <foehn-validation-alerts [component]=\"this\"></foehn-validation-alerts>\n\n <small\n *ngIf=\"helpText\"\n [attr.id]=\"buildChildId() + 'Help'\"\n class=\"form-text text-secondary\"\n [innerHTML]=\"helpText\"\n ></small>\n\n <ng-content></ng-content>\n\n <div class=\"form-check\">\n <input\n type=\"checkbox\"\n class=\"form-check-input\"\n [ngModel]=\"model\"\n (ngModelChange)=\"updateNgModel($event)\"\n [name]=\"buildChildName()\"\n [attr.name]=\"buildChildName()\"\n [attr.id]=\"buildChildId()\"\n [attr.aria-invalid]=\"hasErrorsToDisplay() || null\"\n [attr.disabled]=\"disabled ? 'disabled' : null\"\n [attr.aria-describedby]=\"getDescribedBy()\"\n (change)=\"handleChange(model)\"\n #entryComponent\n />\n <label
|
|
17
|
+
], usesInheritance: true, ngImport: i0, template: "<div\n [class.vd-form-group-danger]=\"hasErrorsToDisplay()\"\n class=\"form-group\"\n [attr.id]=\"buildId('Container')\"\n tabindex=\"-1\"\n>\n <foehn-validation-alerts [component]=\"this\"></foehn-validation-alerts>\n\n <small\n *ngIf=\"helpText\"\n [attr.id]=\"buildChildId() + 'Help'\"\n class=\"form-text text-secondary\"\n [innerHTML]=\"helpText\"\n ></small>\n\n <ng-content></ng-content>\n\n <div class=\"form-check\">\n <input\n type=\"checkbox\"\n class=\"form-check-input\"\n [ngModel]=\"model\"\n (ngModelChange)=\"updateNgModel($event)\"\n [name]=\"buildChildName()\"\n [attr.name]=\"buildChildName()\"\n [attr.id]=\"buildChildId()\"\n [attr.aria-invalid]=\"hasErrorsToDisplay() || null\"\n [attr.disabled]=\"disabled ? 'disabled' : null\"\n [attr.aria-describedby]=\"getDescribedBy()\"\n (change)=\"handleChange(model)\"\n #entryComponent\n />\n <label\n [ngClass]=\"\n isLabelSrOnly\n ? 'form-check-label sr-only'\n : 'form-check-label vd-p'\n \"\n [for]=\"buildChildId()\"\n >\n <span [innerHTML]=\"label\"></span>\n <span\n *ngIf=\"!required && !hideNotRequiredExtraLabel\"\n aria-hidden=\"true\"\n >\n {{ 'foehn-input.optional' | fromDictionary }}\n </span>\n </label>\n </div>\n</div>\n", components: [{ type: i1.FoehnValidationAlertsComponent, selector: "foehn-validation-alerts", inputs: ["component", "shouldErrorsBeLive"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], pipes: { "fromDictionary": i4.SdkDictionaryPipe } });
|
|
18
18
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FoehnBooleanCheckboxComponent, decorators: [{
|
|
19
19
|
type: Component,
|
|
20
20
|
args: [{ selector: 'foehn-boolean-checkbox', providers: [
|
|
@@ -23,6 +23,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
|
|
|
23
23
|
useExisting: forwardRef(() => FoehnBooleanCheckboxComponent),
|
|
24
24
|
multi: true
|
|
25
25
|
}
|
|
26
|
-
], template: "<div\n [class.vd-form-group-danger]=\"hasErrorsToDisplay()\"\n class=\"form-group\"\n [attr.id]=\"buildId('Container')\"\n tabindex=\"-1\"\n>\n <foehn-validation-alerts [component]=\"this\"></foehn-validation-alerts>\n\n <small\n *ngIf=\"helpText\"\n [attr.id]=\"buildChildId() + 'Help'\"\n class=\"form-text text-secondary\"\n [innerHTML]=\"helpText\"\n ></small>\n\n <ng-content></ng-content>\n\n <div class=\"form-check\">\n <input\n type=\"checkbox\"\n class=\"form-check-input\"\n [ngModel]=\"model\"\n (ngModelChange)=\"updateNgModel($event)\"\n [name]=\"buildChildName()\"\n [attr.name]=\"buildChildName()\"\n [attr.id]=\"buildChildId()\"\n [attr.aria-invalid]=\"hasErrorsToDisplay() || null\"\n [attr.disabled]=\"disabled ? 'disabled' : null\"\n [attr.aria-describedby]=\"getDescribedBy()\"\n (change)=\"handleChange(model)\"\n #entryComponent\n />\n <label
|
|
26
|
+
], template: "<div\n [class.vd-form-group-danger]=\"hasErrorsToDisplay()\"\n class=\"form-group\"\n [attr.id]=\"buildId('Container')\"\n tabindex=\"-1\"\n>\n <foehn-validation-alerts [component]=\"this\"></foehn-validation-alerts>\n\n <small\n *ngIf=\"helpText\"\n [attr.id]=\"buildChildId() + 'Help'\"\n class=\"form-text text-secondary\"\n [innerHTML]=\"helpText\"\n ></small>\n\n <ng-content></ng-content>\n\n <div class=\"form-check\">\n <input\n type=\"checkbox\"\n class=\"form-check-input\"\n [ngModel]=\"model\"\n (ngModelChange)=\"updateNgModel($event)\"\n [name]=\"buildChildName()\"\n [attr.name]=\"buildChildName()\"\n [attr.id]=\"buildChildId()\"\n [attr.aria-invalid]=\"hasErrorsToDisplay() || null\"\n [attr.disabled]=\"disabled ? 'disabled' : null\"\n [attr.aria-describedby]=\"getDescribedBy()\"\n (change)=\"handleChange(model)\"\n #entryComponent\n />\n <label\n [ngClass]=\"\n isLabelSrOnly\n ? 'form-check-label sr-only'\n : 'form-check-label vd-p'\n \"\n [for]=\"buildChildId()\"\n >\n <span [innerHTML]=\"label\"></span>\n <span\n *ngIf=\"!required && !hideNotRequiredExtraLabel\"\n aria-hidden=\"true\"\n >\n {{ 'foehn-input.optional' | fromDictionary }}\n </span>\n </label>\n </div>\n</div>\n" }]
|
|
27
27
|
}] });
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4tYm9vbGVhbi1jaGVja2JveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzdGF0aW9ucy1uZy9zcmMvZm9laG4tYm9vbGVhbi9mb2Vobi1ib29sZWFuLWNoZWNrYm94LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9mb2Vobi1ib29sZWFuL2ZvZWhuLWJvb2xlYW4tY2hlY2tib3guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7Ozs7OztBQWEzRSxNQUFNLE9BQU8sNkJBQThCLFNBQVEsbUJBQTRCOzsySEFBbEUsNkJBQTZCOytHQUE3Qiw2QkFBNkIsaURBUjNCO1FBQ1A7WUFDSSxPQUFPLEVBQUUsbUJBQW1CO1lBQzVCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsNkJBQTZCLENBQUM7WUFDNUQsS0FBSyxFQUFFLElBQUk7U0FDZDtLQUNKLGlEQ1pMLHNrREFrREE7NEZEcENhLDZCQUE2QjtrQkFYekMsU0FBUzsrQkFDSSx3QkFBd0IsYUFFdkI7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLG1CQUFtQjs0QkFDNUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsOEJBQThCLENBQUM7NEJBQzVELEtBQUssRUFBRSxJQUFJO3lCQUNkO3FCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBmb3J3YXJkUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb2VobklucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vZm9laG4taW5wdXQvZm9laG4taW5wdXQuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmb2Vobi1ib29sZWFuLWNoZWNrYm94JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZm9laG4tYm9vbGVhbi1jaGVja2JveC5jb21wb25lbnQuaHRtbCcsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEZvZWhuSW5wdXRDb21wb25lbnQsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBGb2VobkJvb2xlYW5DaGVja2JveENvbXBvbmVudCksXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZVxuICAgICAgICB9XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBGb2VobkJvb2xlYW5DaGVja2JveENvbXBvbmVudCBleHRlbmRzIEZvZWhuSW5wdXRDb21wb25lbnQ8Ym9vbGVhbj4ge31cbiIsIjxkaXZcbiAgICBbY2xhc3MudmQtZm9ybS1ncm91cC1kYW5nZXJdPVwiaGFzRXJyb3JzVG9EaXNwbGF5KClcIlxuICAgIGNsYXNzPVwiZm9ybS1ncm91cFwiXG4gICAgW2F0dHIuaWRdPVwiYnVpbGRJZCgnQ29udGFpbmVyJylcIlxuICAgIHRhYmluZGV4PVwiLTFcIlxuPlxuICAgIDxmb2Vobi12YWxpZGF0aW9uLWFsZXJ0cyBbY29tcG9uZW50XT1cInRoaXNcIj48L2ZvZWhuLXZhbGlkYXRpb24tYWxlcnRzPlxuXG4gICAgPHNtYWxsXG4gICAgICAgICpuZ0lmPVwiaGVscFRleHRcIlxuICAgICAgICBbYXR0ci5pZF09XCJidWlsZENoaWxkSWQoKSArICdIZWxwJ1wiXG4gICAgICAgIGNsYXNzPVwiZm9ybS10ZXh0IHRleHQtc2Vjb25kYXJ5XCJcbiAgICAgICAgW2lubmVySFRNTF09XCJoZWxwVGV4dFwiXG4gICAgPjwvc21hbGw+XG5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG5cbiAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVja1wiPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgICBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIlxuICAgICAgICAgICAgW25nTW9kZWxdPVwibW9kZWxcIlxuICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidXBkYXRlTmdNb2RlbCgkZXZlbnQpXCJcbiAgICAgICAgICAgIFtuYW1lXT1cImJ1aWxkQ2hpbGROYW1lKClcIlxuICAgICAgICAgICAgW2F0dHIubmFtZV09XCJidWlsZENoaWxkTmFtZSgpXCJcbiAgICAgICAgICAgIFthdHRyLmlkXT1cImJ1aWxkQ2hpbGRJZCgpXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtaW52YWxpZF09XCJoYXNFcnJvcnNUb0Rpc3BsYXkoKSB8fCBudWxsXCJcbiAgICAgICAgICAgIFthdHRyLmRpc2FibGVkXT1cImRpc2FibGVkID8gJ2Rpc2FibGVkJyA6IG51bGxcIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCJnZXREZXNjcmliZWRCeSgpXCJcbiAgICAgICAgICAgIChjaGFuZ2UpPVwiaGFuZGxlQ2hhbmdlKG1vZGVsKVwiXG4gICAgICAgICAgICAjZW50cnlDb21wb25lbnRcbiAgICAgICAgLz5cbiAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICBbbmdDbGFzc109XCJcbiAgICAgICAgICAgICAgICBpc0xhYmVsU3JPbmx5XG4gICAgICAgICAgICAgICAgICAgID8gJ2Zvcm0tY2hlY2stbGFiZWwgc3Itb25seSdcbiAgICAgICAgICAgICAgICAgICAgOiAnZm9ybS1jaGVjay1sYWJlbCB2ZC1wJ1xuICAgICAgICAgICAgXCJcbiAgICAgICAgICAgIFtmb3JdPVwiYnVpbGRDaGlsZElkKClcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8c3BhbiBbaW5uZXJIVE1MXT1cImxhYmVsXCI+PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAqbmdJZj1cIiFyZXF1aXJlZCAmJiAhaGlkZU5vdFJlcXVpcmVkRXh0cmFMYWJlbFwiXG4gICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7eyAnZm9laG4taW5wdXQub3B0aW9uYWwnIHwgZnJvbURpY3Rpb25hcnkgfX1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9sYWJlbD5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -26,16 +26,19 @@ export class FoehnInputTextareaComponent extends FoehnInputStringComponent {
|
|
|
26
26
|
onModelChange(value) {
|
|
27
27
|
if (value === undefined || !!value) {
|
|
28
28
|
this.updateNgModel(value);
|
|
29
|
+
if (this.displayCharCount) {
|
|
30
|
+
this.checkCharCountExceeded();
|
|
31
|
+
this.countCharLeft();
|
|
32
|
+
}
|
|
33
|
+
return;
|
|
29
34
|
}
|
|
30
|
-
|
|
31
|
-
this.
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
this.countCharLeft();
|
|
38
|
-
}
|
|
35
|
+
this.ngZone.onMicrotaskEmpty.pipe(first()).subscribe(() => {
|
|
36
|
+
this.updateNgModel(null);
|
|
37
|
+
if (this.displayCharCount) {
|
|
38
|
+
this.checkCharCountExceeded();
|
|
39
|
+
this.countCharLeft();
|
|
40
|
+
}
|
|
41
|
+
});
|
|
39
42
|
}
|
|
40
43
|
countCharLeft() {
|
|
41
44
|
if (!this.max) {
|
|
@@ -70,7 +73,9 @@ export class FoehnInputTextareaComponent extends FoehnInputStringComponent {
|
|
|
70
73
|
checkCharCountExceeded() {
|
|
71
74
|
if (this.model && this.max) {
|
|
72
75
|
this.isCharCountExceeded = this.model.length > this.max;
|
|
76
|
+
return;
|
|
73
77
|
}
|
|
78
|
+
this.isCharCountExceeded = false;
|
|
74
79
|
}
|
|
75
80
|
getCharCountLabel(nbRemaining) {
|
|
76
81
|
return this.charCountLeft === 1
|
|
@@ -100,4 +105,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
|
|
|
100
105
|
}], displayCharCount: [{
|
|
101
106
|
type: Input
|
|
102
107
|
}] } });
|
|
103
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4taW5wdXQtdGV4dGFyZWEuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlc3RhdGlvbnMtbmcvc3JjL2ZvZWhuLWlucHV0L2ZvZWhuLWlucHV0LXRleHRhcmVhLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9mb2Vobi1pbnB1dC9mb2Vobi1pbnB1dC10ZXh0YXJlYS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQWtCLE1BQU0sZUFBZSxDQUFDO0FBQzdFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7OztBQWV2QyxNQUFNLE9BQU8sMkJBQ1QsU0FBUSx5QkFBeUI7SUFhakMsWUFDWSxNQUFjLEVBQ2QsVUFBZ0M7UUFFeEMsS0FBSyxFQUFFLENBQUM7UUFIQSxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsZUFBVSxHQUFWLFVBQVUsQ0FBc0I7UUFaNUMsU0FBSSxHQUFHLENBQUMsQ0FBQztRQUtULHdCQUFtQixHQUFHLEtBQUssQ0FBQztRQUc1QixtQkFBYyxHQUFHLEtBQUssQ0FBQztJQU92QixDQUFDO0lBRUQsUUFBUTtRQUNKLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUVqQixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUN2QixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7U0FDeEI7SUFDTCxDQUFDO0lBRUQsYUFBYSxDQUFDLEtBQWE7UUFDdkIsSUFBSSxLQUFLLEtBQUssU0FBUyxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUU7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LENBQUM7SUFDWixDQUFDOzt5SEEvRlEsMkJBQTJCOzZHQUEzQiwyQkFBMkIsK0dBUnpCO1FBQ1A7WUFDSSxPQUFPLEVBQUUsbUJBQW1CO1lBQzVCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsMkJBQTJCLENBQUM7WUFDMUQsS0FBSyxFQUFFLElBQUk7U0FDZDtLQUNKLGlEQ2hCTCw2cUVBcUVBOzRGRG5EYSwyQkFBMkI7a0JBWnZDLFNBQVM7K0JBQ0ksc0JBQXNCLGFBR3JCO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSxtQkFBbUI7NEJBQzVCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLDRCQUE0QixDQUFDOzRCQUMxRCxLQUFLLEVBQUUsSUFBSTt5QkFDZDtxQkFDSjtnSUFNRCxJQUFJO3NCQURILEtBQUs7Z0JBSU4sZ0JBQWdCO3NCQURmLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGZvcndhcmRSZWYsIElucHV0LCBOZ1pvbmUsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9laG5JbnB1dFN0cmluZ0NvbXBvbmVudCB9IGZyb20gJy4vZm9laG4taW5wdXQtc3RyaW5nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb2VobklucHV0Q29tcG9uZW50IH0gZnJvbSAnLi9mb2Vobi1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgZmlyc3QgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBTZGtEaWN0aW9uYXJ5U2VydmljZSB9IGZyb20gJy4uL3Nkay1kaWN0aW9uYXJ5L3Nkay1kaWN0aW9uYXJ5LnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZvZWhuLWlucHV0LXRleHRhcmVhJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZm9laG4taW5wdXQtdGV4dGFyZWEuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2ZvZWhuLWlucHV0LmNvbXBvbmVudC5jc3MnXSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogRm9laG5JbnB1dENvbXBvbmVudCxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEZvZWhuSW5wdXRUZXh0YXJlYUNvbXBvbmVudCksXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZVxuICAgICAgICB9XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBGb2VobklucHV0VGV4dGFyZWFDb21wb25lbnRcbiAgICBleHRlbmRzIEZvZWhuSW5wdXRTdHJpbmdDb21wb25lbnRcbiAgICBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQElucHV0KClcbiAgICByb3dzID0gMztcblxuICAgIEBJbnB1dCgpXG4gICAgZGlzcGxheUNoYXJDb3VudDogYm9vbGVhbjtcblxuICAgIGlzQ2hhckNvdW50RXhjZWVkZWQgPSBmYWxzZTtcbiAgICBjaGFyQ291bnRMZWZ0OiBudW1iZXI7XG4gICAgY2hhckNvdW50TGFiZWw6IHN0cmluZztcbiAgICBhcmlhTGl2ZVN0YXR1cyA9ICdvZmYnO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmUsXG4gICAgICAgIHByaXZhdGUgZGljdGlvbmFyeTogU2RrRGljdGlvbmFyeVNlcnZpY2VcbiAgICApIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcblxuICAgICAgICBpZiAodGhpcy5kaXNwbGF5Q2hhckNvdW50KSB7XG4gICAgICAgICAgICB0aGlzLmNvdW50Q2hhckxlZnQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uTW9kZWxDaGFuZ2UodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCB8fCAhIXZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZU5nTW9kZWwodmFsdWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5uZ1pvbmUub25NaWNyb3Rhc2tFbXB0eS5waXBlKGZpcnN0KCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVOZ01vZGVsKG51bGwpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5kaXNwbGF5Q2hhckNvdW50KSB7XG4gICAgICAgICAgICB0aGlzLmNoZWNrQ2hhckNvdW50RXhjZWVkZWQoKTtcbiAgICAgICAgICAgIHRoaXMuY291bnRDaGFyTGVmdCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY291bnRDaGFyTGVmdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLm1heCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMubW9kZWwgIT09IG51bGwgJiYgdGhpcy5tb2RlbCAhPT0gdW5kZWZpbmVkICYmIHRoaXMubWF4KSB7XG4gICAgICAgICAgICB0aGlzLmNoYXJDb3VudExlZnQgPSB0aGlzLm1heCAtIHRoaXMubW9kZWwubGVuZ3RoO1xuICAgICAgICAgICAgaWYgKHRoaXMuY2hhckNvdW50TGVmdCA+IDApIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNoYXJDb3VudExhYmVsID0gdGhpcy5nZXRDaGFyQ291bnRMYWJlbChcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jaGFyQ291bnRMZWZ0XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5jaGFyQ291bnRMZWZ0IDw9IDEwICYmIHRoaXMuY2hhckNvdW50TGVmdCA+PSAxKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYXJpYUxpdmVTdGF0dXMgPSAnYXNzZXJ0aXZlJztcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFyaWFMaXZlU3RhdHVzID0gJ29mZic7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmNoYXJDb3VudExlZnQgPT09IDApIHtcbiAgICAgICAgICAgICAgICB0aGlzLmFyaWFMaXZlU3RhdHVzID0gJ2Fzc2VydGl2ZSc7XG4gICAgICAgICAgICAgICAgdGhpcy5jaGFyQ291bnRMYWJlbCA9IHRoaXMuZGljdGlvbmFyeS5nZXRLZXlTeW5jKFxuICAgICAgICAgICAgICAgICAgICAnZm9laG4tdGV4dGFyZWEuY2hhcnMtcmVtYWluaW5nLnplcm8nXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5hcmlhTGl2ZVN0YXR1cyA9ICdhc3NlcnRpdmUnO1xuICAgICAgICAgICAgICAgIHRoaXMuY2hhckNvdW50TGFiZWwgPSB0aGlzLmRpY3Rpb25hcnkuZ2V0S2V5U3luYyhcbiAgICAgICAgICAgICAgICAgICAgJ2ZvZWhuLXRleHRhcmVhLmNoYXJzLXJlbWFpbmluZy5leGNlZWRlZCcsXG4gICAgICAgICAgICAgICAgICAgIHsgY2hhckNvdW50TGVmdDogKHRoaXMuY2hhckNvdW50TGVmdCAqIC0xKS50b1N0cmluZygpIH1cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5jaGFyQ291bnRMZWZ0ID0gdGhpcy5tYXg7XG4gICAgICAgICAgICB0aGlzLmNoYXJDb3VudExhYmVsID0gdGhpcy5nZXRDaGFyQ291bnRMYWJlbCh0aGlzLmNoYXJDb3VudExlZnQpO1xuICAgICAgICAgICAgdGhpcy5hcmlhTGl2ZVN0YXR1cyA9ICdvZmYnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY2hlY2tDaGFyQ291bnRFeGNlZWRlZCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMubW9kZWwgJiYgdGhpcy5tYXgpIHtcbiAgICAgICAgICAgIHRoaXMuaXNDaGFyQ291bnRFeGNlZWRlZCA9IHRoaXMubW9kZWwubGVuZ3RoID4gdGhpcy5tYXg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGdldENoYXJDb3VudExhYmVsKG5iUmVtYWluaW5nOiBudW1iZXIpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5jaGFyQ291bnRMZWZ0ID09PSAxXG4gICAgICAgICAgICA/IHRoaXMuZGljdGlvbmFyeS5nZXRLZXlTeW5jKFxuICAgICAgICAgICAgICAgICAgJ2ZvZWhuLXRleHRhcmVhLmNoYXJzLXJlbWFpbmluZy5zaW5ndWxhcicsXG4gICAgICAgICAgICAgICAgICB7IGNoYXJDb3VudExlZnQ6IG5iUmVtYWluaW5nLnRvU3RyaW5nKCkgfVxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICA6IHRoaXMuZGljdGlvbmFyeS5nZXRLZXlTeW5jKFxuICAgICAgICAgICAgICAgICAgJ2ZvZWhuLXRleHRhcmVhLmNoYXJzLXJlbWFpbmluZy5wbHVyYWwnLFxuICAgICAgICAgICAgICAgICAgeyBjaGFyQ291bnRMZWZ0OiBuYlJlbWFpbmluZy50b1N0cmluZygpIH1cbiAgICAgICAgICAgICAgKTtcbiAgICB9XG59XG4iLCI8ZGl2XG4gICAgY2xhc3M9XCJmb3JtLWdyb3VwXCJcbiAgICBbY2xhc3MuaGFzLWRhbmdlcl09XCJoYXNFcnJvcnNUb0Rpc3BsYXkoKVwiXG4gICAgW2NsYXNzLnZkLWZvcm0tZ3JvdXAtZGFuZ2VyXT1cImhhc0Vycm9yc1RvRGlzcGxheSgpXCJcbiAgICBbYXR0ci5pZF09XCJidWlsZElkKCdDb250YWluZXInKVwiXG4gICAgdGFiaW5kZXg9XCItMVwiXG4+XG4gICAgPGxhYmVsXG4gICAgICAgIFthdHRyLmZvcl09XCJidWlsZENoaWxkSWQoKVwiXG4gICAgICAgICpuZ0lmPVwiISFsYWJlbFwiXG4gICAgICAgIFtuZ0NsYXNzXT1cImlzTGFiZWxTck9ubHkgPyAnc3Itb25seScgOiBsYWJlbFN0eWxlTW9kaWZpZXJcIlxuICAgID5cbiAgICAgICAgPHNwYW4gW2lubmVySFRNTF09XCJsYWJlbFwiPjwvc3Bhbj5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICpuZ0lmPVwiIXJlcXVpcmVkICYmICFoaWRlTm90UmVxdWlyZWRFeHRyYUxhYmVsXCJcbiAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIHt7ICdmb2Vobi1pbnB1dC5vcHRpb25hbCcgfCBmcm9tRGljdGlvbmFyeSB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgPC9sYWJlbD5cblxuICAgIDxmb2Vobi12YWxpZGF0aW9uLWFsZXJ0cyBbY29tcG9uZW50XT1cInRoaXNcIj48L2ZvZWhuLXZhbGlkYXRpb24tYWxlcnRzPlxuXG4gICAgPHNtYWxsXG4gICAgICAgICpuZ0lmPVwiaGVscFRleHRcIlxuICAgICAgICBbYXR0ci5pZF09XCJidWlsZENoaWxkSWQoKSArICdIZWxwJ1wiXG4gICAgICAgIGNsYXNzPVwiZm9ybS10ZXh0IHRleHQtc2Vjb25kYXJ5XCJcbiAgICAgICAgW2lubmVySFRNTF09XCJoZWxwVGV4dFwiXG4gICAgPjwvc21hbGw+XG5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG5cbiAgICA8dGV4dGFyZWFcbiAgICAgICAgW2NsYXNzLmlzLWludmFsaWRdPVwiaGFzRXJyb3JzVG9EaXNwbGF5KClcIlxuICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgIFtuYW1lXT1cIm5hbWUgfHwgbGFiZWxcIlxuICAgICAgICBbYXR0ci5tYXhsZW5ndGhdPVwiZ2V0TWF4TGVuZ3RoKClcIlxuICAgICAgICBbYXR0ci5hdXRvY29tcGxldGVdPVwiZ2V0QXV0b0NvbXBsZXRlKClcIlxuICAgICAgICBbYXR0ci5kaXNhYmxlZF09XCJkaXNhYmxlZCA/ICdkaXNhYmxlZCcgOiBudWxsXCJcbiAgICAgICAgW2F0dHIudHlwZV09XCJ0eXBlXCJcbiAgICAgICAgW2F0dHIucGF0dGVybl09XCJwYXR0ZXJuXCJcbiAgICAgICAgW2F0dHIubWluXT1cIm1pblwiXG4gICAgICAgIFthdHRyLm1heF09XCJtYXhcIlxuICAgICAgICBbYXR0ci5pZF09XCJidWlsZENoaWxkSWQoKVwiXG4gICAgICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiZ2V0RGVzY3JpYmVkQnkoKVwiXG4gICAgICAgIFthdHRyLmFyaWEtaW52YWxpZF09XCJcbiAgICAgICAgICAgIGhhc0Vycm9yc1RvRGlzcGxheSgpIHx8IG51bGwgfHwgaXNDaGFyQ291bnRFeGNlZWRlZFxuICAgICAgICBcIlxuICAgICAgICBbYXR0ci5hcmlhLXJlcXVpcmVkXT1cInJlcXVpcmVkIHx8IG51bGxcIlxuICAgICAgICBbbmdNb2RlbF09XCJtb2RlbFwiXG4gICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInVwZGF0ZU5nTW9kZWwoJGV2ZW50KVwiXG4gICAgICAgIFtyb3dzXT1cInJvd3NcIlxuICAgICAgICAocGFzdGUpPVwib25QYXN0ZSgkZXZlbnQpXCJcbiAgICAgICAgKGlucHV0KT1cImhhbmRsZUNoYW5nZShlbnRyeUNvbXBvbmVudC52YWx1ZSlcIlxuICAgICAgICAoa2V5ZG93bik9XCJvbktleWRvd24oJGV2ZW50KVwiXG4gICAgICAgIChibHVyKT1cIm9uQmx1cigkZXZlbnQpXCJcbiAgICAgICAgKGZvY3VzKT1cIm9uRm9jdXMoJGV2ZW50KVwiXG4gICAgICAgICNlbnRyeUNvbXBvbmVudFxuICAgID48L3RleHRhcmVhPlxuXG4gICAgPGRpdlxuICAgICAgICAqbmdJZj1cImRpc3BsYXlDaGFyQ291bnQgJiYgbWF4XCJcbiAgICAgICAgW2lubmVySFRNTF09XCJjaGFyQ291bnRMYWJlbFwiXG4gICAgICAgIGlkPVwiY2hhcnMtcmVtYWluaW5nXCJcbiAgICAgICAgY2xhc3M9XCJjaGFycy1yZW1haW5pbmdcIlxuICAgICAgICBbY2xhc3MuY2hhci1jb3VudC1leGNlZWRlZF09XCJpc0NoYXJDb3VudEV4Y2VlZGVkXCJcbiAgICAgICAgW2F0dHIuYXJpYS1saXZlXT1cImFyaWFMaXZlU3RhdHVzXCJcbiAgICA+PC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
108
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4taW5wdXQtdGV4dGFyZWEuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlc3RhdGlvbnMtbmcvc3JjL2ZvZWhuLWlucHV0L2ZvZWhuLWlucHV0LXRleHRhcmVhLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9mb2Vobi1pbnB1dC9mb2Vobi1pbnB1dC10ZXh0YXJlYS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQWtCLE1BQU0sZUFBZSxDQUFDO0FBQzdFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7OztBQWV2QyxNQUFNLE9BQU8sMkJBQ1QsU0FBUSx5QkFBeUI7SUFhakMsWUFDWSxNQUFjLEVBQ2QsVUFBZ0M7UUFFeEMsS0FBSyxFQUFFLENBQUM7UUFIQSxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsZUFBVSxHQUFWLFVBQVUsQ0FBc0I7UUFaNUMsU0FBSSxHQUFHLENBQUMsQ0FBQztRQUtULHdCQUFtQixHQUFHLEtBQUssQ0FBQztRQUc1QixtQkFBYyxHQUFHLEtBQUssQ0FBQztJQU92QixDQUFDO0lBRUQsUUFBUTtRQUNKLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUVqQixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUN2QixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7U0FDeEI7SUFDTCxDQUFDO0lBRUQsYUFBYSxDQUFDLEtBQWE7UUFDdkIsSUFBSSxLQUFLLEtBQUssU0FBUyxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUU7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ekMsRUFBRSxhQUFhLEVBQUUsV0FBVyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQzVDO1lBQ0gsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUN0Qix1Q0FBdUMsRUFDdkMsRUFBRSxhQUFhLEVBQUUsV0FBVyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQzVDLENBQUM7SUFDWixDQUFDOzt5SEFyR1EsMkJBQTJCOzZHQUEzQiwyQkFBMkIsK0dBUnpCO1FBQ1A7WUFDSSxPQUFPLEVBQUUsbUJBQW1CO1lBQzVCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsMkJBQTJCLENBQUM7WUFDMUQsS0FBSyxFQUFFLElBQUk7U0FDZDtLQUNKLGlEQ2hCTCw2cUVBcUVBOzRGRG5EYSwyQkFBMkI7a0JBWnZDLFNBQVM7K0JBQ0ksc0JBQXNCLGFBR3JCO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSxtQkFBbUI7NEJBQzVCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLDRCQUE0QixDQUFDOzRCQUMxRCxLQUFLLEVBQUUsSUFBSTt5QkFDZDtxQkFDSjtnSUFNRCxJQUFJO3NCQURILEtBQUs7Z0JBSU4sZ0JBQWdCO3NCQURmLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGZvcndhcmRSZWYsIElucHV0LCBOZ1pvbmUsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9laG5JbnB1dFN0cmluZ0NvbXBvbmVudCB9IGZyb20gJy4vZm9laG4taW5wdXQtc3RyaW5nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb2VobklucHV0Q29tcG9uZW50IH0gZnJvbSAnLi9mb2Vobi1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgZmlyc3QgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBTZGtEaWN0aW9uYXJ5U2VydmljZSB9IGZyb20gJy4uL3Nkay1kaWN0aW9uYXJ5L3Nkay1kaWN0aW9uYXJ5LnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZvZWhuLWlucHV0LXRleHRhcmVhJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZm9laG4taW5wdXQtdGV4dGFyZWEuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2ZvZWhuLWlucHV0LmNvbXBvbmVudC5jc3MnXSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogRm9laG5JbnB1dENvbXBvbmVudCxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEZvZWhuSW5wdXRUZXh0YXJlYUNvbXBvbmVudCksXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZVxuICAgICAgICB9XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBGb2VobklucHV0VGV4dGFyZWFDb21wb25lbnRcbiAgICBleHRlbmRzIEZvZWhuSW5wdXRTdHJpbmdDb21wb25lbnRcbiAgICBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQElucHV0KClcbiAgICByb3dzID0gMztcblxuICAgIEBJbnB1dCgpXG4gICAgZGlzcGxheUNoYXJDb3VudDogYm9vbGVhbjtcblxuICAgIGlzQ2hhckNvdW50RXhjZWVkZWQgPSBmYWxzZTtcbiAgICBjaGFyQ291bnRMZWZ0OiBudW1iZXI7XG4gICAgY2hhckNvdW50TGFiZWw6IHN0cmluZztcbiAgICBhcmlhTGl2ZVN0YXR1cyA9ICdvZmYnO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmUsXG4gICAgICAgIHByaXZhdGUgZGljdGlvbmFyeTogU2RrRGljdGlvbmFyeVNlcnZpY2VcbiAgICApIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcblxuICAgICAgICBpZiAodGhpcy5kaXNwbGF5Q2hhckNvdW50KSB7XG4gICAgICAgICAgICB0aGlzLmNvdW50Q2hhckxlZnQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uTW9kZWxDaGFuZ2UodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCB8fCAhIXZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZU5nTW9kZWwodmFsdWUpO1xuICAgICAgICAgICAgaWYgKHRoaXMuZGlzcGxheUNoYXJDb3VudCkge1xuICAgICAgICAgICAgICAgIHRoaXMuY2hlY2tDaGFyQ291bnRFeGNlZWRlZCgpO1xuICAgICAgICAgICAgICAgIHRoaXMuY291bnRDaGFyTGVmdCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5uZ1pvbmUub25NaWNyb3Rhc2tFbXB0eS5waXBlKGZpcnN0KCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZU5nTW9kZWwobnVsbCk7XG4gICAgICAgICAgICBpZiAodGhpcy5kaXNwbGF5Q2hhckNvdW50KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jaGVja0NoYXJDb3VudEV4Y2VlZGVkKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5jb3VudENoYXJMZWZ0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGNvdW50Q2hhckxlZnQoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5tYXgpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLm1vZGVsICE9PSBudWxsICYmIHRoaXMubW9kZWwgIT09IHVuZGVmaW5lZCAmJiB0aGlzLm1heCkge1xuICAgICAgICAgICAgdGhpcy5jaGFyQ291bnRMZWZ0ID0gdGhpcy5tYXggLSB0aGlzLm1vZGVsLmxlbmd0aDtcbiAgICAgICAgICAgIGlmICh0aGlzLmNoYXJDb3VudExlZnQgPiAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jaGFyQ291bnRMYWJlbCA9IHRoaXMuZ2V0Q2hhckNvdW50TGFiZWwoXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2hhckNvdW50TGVmdFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuY2hhckNvdW50TGVmdCA8PSAxMCAmJiB0aGlzLmNoYXJDb3VudExlZnQgPj0gMSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFyaWFMaXZlU3RhdHVzID0gJ2Fzc2VydGl2ZSc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hcmlhTGl2ZVN0YXR1cyA9ICdvZmYnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5jaGFyQ291bnRMZWZ0ID09PSAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5hcmlhTGl2ZVN0YXR1cyA9ICdhc3NlcnRpdmUnO1xuICAgICAgICAgICAgICAgIHRoaXMuY2hhckNvdW50TGFiZWwgPSB0aGlzLmRpY3Rpb25hcnkuZ2V0S2V5U3luYyhcbiAgICAgICAgICAgICAgICAgICAgJ2ZvZWhuLXRleHRhcmVhLmNoYXJzLXJlbWFpbmluZy56ZXJvJ1xuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuYXJpYUxpdmVTdGF0dXMgPSAnYXNzZXJ0aXZlJztcbiAgICAgICAgICAgICAgICB0aGlzLmNoYXJDb3VudExhYmVsID0gdGhpcy5kaWN0aW9uYXJ5LmdldEtleVN5bmMoXG4gICAgICAgICAgICAgICAgICAgICdmb2Vobi10ZXh0YXJlYS5jaGFycy1yZW1haW5pbmcuZXhjZWVkZWQnLFxuICAgICAgICAgICAgICAgICAgICB7IGNoYXJDb3VudExlZnQ6ICh0aGlzLmNoYXJDb3VudExlZnQgKiAtMSkudG9TdHJpbmcoKSB9XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuY2hhckNvdW50TGVmdCA9IHRoaXMubWF4O1xuICAgICAgICAgICAgdGhpcy5jaGFyQ291bnRMYWJlbCA9IHRoaXMuZ2V0Q2hhckNvdW50TGFiZWwodGhpcy5jaGFyQ291bnRMZWZ0KTtcbiAgICAgICAgICAgIHRoaXMuYXJpYUxpdmVTdGF0dXMgPSAnb2ZmJztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNoZWNrQ2hhckNvdW50RXhjZWVkZWQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLm1vZGVsICYmIHRoaXMubWF4KSB7XG4gICAgICAgICAgICB0aGlzLmlzQ2hhckNvdW50RXhjZWVkZWQgPSB0aGlzLm1vZGVsLmxlbmd0aCA+IHRoaXMubWF4O1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaXNDaGFyQ291bnRFeGNlZWRlZCA9IGZhbHNlO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0Q2hhckNvdW50TGFiZWwobmJSZW1haW5pbmc6IG51bWJlcik6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmNoYXJDb3VudExlZnQgPT09IDFcbiAgICAgICAgICAgID8gdGhpcy5kaWN0aW9uYXJ5LmdldEtleVN5bmMoXG4gICAgICAgICAgICAgICAgICAnZm9laG4tdGV4dGFyZWEuY2hhcnMtcmVtYWluaW5nLnNpbmd1bGFyJyxcbiAgICAgICAgICAgICAgICAgIHsgY2hhckNvdW50TGVmdDogbmJSZW1haW5pbmcudG9TdHJpbmcoKSB9XG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIDogdGhpcy5kaWN0aW9uYXJ5LmdldEtleVN5bmMoXG4gICAgICAgICAgICAgICAgICAnZm9laG4tdGV4dGFyZWEuY2hhcnMtcmVtYWluaW5nLnBsdXJhbCcsXG4gICAgICAgICAgICAgICAgICB7IGNoYXJDb3VudExlZnQ6IG5iUmVtYWluaW5nLnRvU3RyaW5nKCkgfVxuICAgICAgICAgICAgICApO1xuICAgIH1cbn1cbiIsIjxkaXZcbiAgICBjbGFzcz1cImZvcm0tZ3JvdXBcIlxuICAgIFtjbGFzcy5oYXMtZGFuZ2VyXT1cImhhc0Vycm9yc1RvRGlzcGxheSgpXCJcbiAgICBbY2xhc3MudmQtZm9ybS1ncm91cC1kYW5nZXJdPVwiaGFzRXJyb3JzVG9EaXNwbGF5KClcIlxuICAgIFthdHRyLmlkXT1cImJ1aWxkSWQoJ0NvbnRhaW5lcicpXCJcbiAgICB0YWJpbmRleD1cIi0xXCJcbj5cbiAgICA8bGFiZWxcbiAgICAgICAgW2F0dHIuZm9yXT1cImJ1aWxkQ2hpbGRJZCgpXCJcbiAgICAgICAgKm5nSWY9XCIhIWxhYmVsXCJcbiAgICAgICAgW25nQ2xhc3NdPVwiaXNMYWJlbFNyT25seSA/ICdzci1vbmx5JyA6IGxhYmVsU3R5bGVNb2RpZmllclwiXG4gICAgPlxuICAgICAgICA8c3BhbiBbaW5uZXJIVE1MXT1cImxhYmVsXCI+PC9zcGFuPlxuICAgICAgICA8c3BhblxuICAgICAgICAgICAgKm5nSWY9XCIhcmVxdWlyZWQgJiYgIWhpZGVOb3RSZXF1aXJlZEV4dHJhTGFiZWxcIlxuICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgPlxuICAgICAgICAgICAge3sgJ2ZvZWhuLWlucHV0Lm9wdGlvbmFsJyB8IGZyb21EaWN0aW9uYXJ5IH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICA8L2xhYmVsPlxuXG4gICAgPGZvZWhuLXZhbGlkYXRpb24tYWxlcnRzIFtjb21wb25lbnRdPVwidGhpc1wiPjwvZm9laG4tdmFsaWRhdGlvbi1hbGVydHM+XG5cbiAgICA8c21hbGxcbiAgICAgICAgKm5nSWY9XCJoZWxwVGV4dFwiXG4gICAgICAgIFthdHRyLmlkXT1cImJ1aWxkQ2hpbGRJZCgpICsgJ0hlbHAnXCJcbiAgICAgICAgY2xhc3M9XCJmb3JtLXRleHQgdGV4dC1zZWNvbmRhcnlcIlxuICAgICAgICBbaW5uZXJIVE1MXT1cImhlbHBUZXh0XCJcbiAgICA+PC9zbWFsbD5cblxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cblxuICAgIDx0ZXh0YXJlYVxuICAgICAgICBbY2xhc3MuaXMtaW52YWxpZF09XCJoYXNFcnJvcnNUb0Rpc3BsYXkoKVwiXG4gICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgW25hbWVdPVwibmFtZSB8fCBsYWJlbFwiXG4gICAgICAgIFthdHRyLm1heGxlbmd0aF09XCJnZXRNYXhMZW5ndGgoKVwiXG4gICAgICAgIFthdHRyLmF1dG9jb21wbGV0ZV09XCJnZXRBdXRvQ29tcGxldGUoKVwiXG4gICAgICAgIFthdHRyLmRpc2FibGVkXT1cImRpc2FibGVkID8gJ2Rpc2FibGVkJyA6IG51bGxcIlxuICAgICAgICBbYXR0ci50eXBlXT1cInR5cGVcIlxuICAgICAgICBbYXR0ci5wYXR0ZXJuXT1cInBhdHRlcm5cIlxuICAgICAgICBbYXR0ci5taW5dPVwibWluXCJcbiAgICAgICAgW2F0dHIubWF4XT1cIm1heFwiXG4gICAgICAgIFthdHRyLmlkXT1cImJ1aWxkQ2hpbGRJZCgpXCJcbiAgICAgICAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCJnZXREZXNjcmliZWRCeSgpXCJcbiAgICAgICAgW2F0dHIuYXJpYS1pbnZhbGlkXT1cIlxuICAgICAgICAgICAgaGFzRXJyb3JzVG9EaXNwbGF5KCkgfHwgbnVsbCB8fCBpc0NoYXJDb3VudEV4Y2VlZGVkXG4gICAgICAgIFwiXG4gICAgICAgIFthdHRyLmFyaWEtcmVxdWlyZWRdPVwicmVxdWlyZWQgfHwgbnVsbFwiXG4gICAgICAgIFtuZ01vZGVsXT1cIm1vZGVsXCJcbiAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidXBkYXRlTmdNb2RlbCgkZXZlbnQpXCJcbiAgICAgICAgW3Jvd3NdPVwicm93c1wiXG4gICAgICAgIChwYXN0ZSk9XCJvblBhc3RlKCRldmVudClcIlxuICAgICAgICAoaW5wdXQpPVwiaGFuZGxlQ2hhbmdlKGVudHJ5Q29tcG9uZW50LnZhbHVlKVwiXG4gICAgICAgIChrZXlkb3duKT1cIm9uS2V5ZG93bigkZXZlbnQpXCJcbiAgICAgICAgKGJsdXIpPVwib25CbHVyKCRldmVudClcIlxuICAgICAgICAoZm9jdXMpPVwib25Gb2N1cygkZXZlbnQpXCJcbiAgICAgICAgI2VudHJ5Q29tcG9uZW50XG4gICAgPjwvdGV4dGFyZWE+XG5cbiAgICA8ZGl2XG4gICAgICAgICpuZ0lmPVwiZGlzcGxheUNoYXJDb3VudCAmJiBtYXhcIlxuICAgICAgICBbaW5uZXJIVE1MXT1cImNoYXJDb3VudExhYmVsXCJcbiAgICAgICAgaWQ9XCJjaGFycy1yZW1haW5pbmdcIlxuICAgICAgICBjbGFzcz1cImNoYXJzLXJlbWFpbmluZ1wiXG4gICAgICAgIFtjbGFzcy5jaGFyLWNvdW50LWV4Y2VlZGVkXT1cImlzQ2hhckNvdW50RXhjZWVkZWRcIlxuICAgICAgICBbYXR0ci5hcmlhLWxpdmVdPVwiYXJpYUxpdmVTdGF0dXNcIlxuICAgID48L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -7301,16 +7301,19 @@ class FoehnInputTextareaComponent extends FoehnInputStringComponent {
|
|
|
7301
7301
|
onModelChange(value) {
|
|
7302
7302
|
if (value === undefined || !!value) {
|
|
7303
7303
|
this.updateNgModel(value);
|
|
7304
|
+
if (this.displayCharCount) {
|
|
7305
|
+
this.checkCharCountExceeded();
|
|
7306
|
+
this.countCharLeft();
|
|
7307
|
+
}
|
|
7308
|
+
return;
|
|
7304
7309
|
}
|
|
7305
|
-
|
|
7306
|
-
this.
|
|
7307
|
-
|
|
7308
|
-
|
|
7309
|
-
|
|
7310
|
-
|
|
7311
|
-
|
|
7312
|
-
this.countCharLeft();
|
|
7313
|
-
}
|
|
7310
|
+
this.ngZone.onMicrotaskEmpty.pipe(first()).subscribe(() => {
|
|
7311
|
+
this.updateNgModel(null);
|
|
7312
|
+
if (this.displayCharCount) {
|
|
7313
|
+
this.checkCharCountExceeded();
|
|
7314
|
+
this.countCharLeft();
|
|
7315
|
+
}
|
|
7316
|
+
});
|
|
7314
7317
|
}
|
|
7315
7318
|
countCharLeft() {
|
|
7316
7319
|
if (!this.max) {
|
|
@@ -7345,7 +7348,9 @@ class FoehnInputTextareaComponent extends FoehnInputStringComponent {
|
|
|
7345
7348
|
checkCharCountExceeded() {
|
|
7346
7349
|
if (this.model && this.max) {
|
|
7347
7350
|
this.isCharCountExceeded = this.model.length > this.max;
|
|
7351
|
+
return;
|
|
7348
7352
|
}
|
|
7353
|
+
this.isCharCountExceeded = false;
|
|
7349
7354
|
}
|
|
7350
7355
|
getCharCountLabel(nbRemaining) {
|
|
7351
7356
|
return this.charCountLeft === 1
|
|
@@ -9524,7 +9529,7 @@ FoehnBooleanCheckboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "1
|
|
|
9524
9529
|
useExisting: forwardRef(() => FoehnBooleanCheckboxComponent),
|
|
9525
9530
|
multi: true
|
|
9526
9531
|
}
|
|
9527
|
-
], usesInheritance: true, ngImport: i0, template: "<div\n [class.vd-form-group-danger]=\"hasErrorsToDisplay()\"\n class=\"form-group\"\n [attr.id]=\"buildId('Container')\"\n tabindex=\"-1\"\n>\n <foehn-validation-alerts [component]=\"this\"></foehn-validation-alerts>\n\n <small\n *ngIf=\"helpText\"\n [attr.id]=\"buildChildId() + 'Help'\"\n class=\"form-text text-secondary\"\n [innerHTML]=\"helpText\"\n ></small>\n\n <ng-content></ng-content>\n\n <div class=\"form-check\">\n <input\n type=\"checkbox\"\n class=\"form-check-input\"\n [ngModel]=\"model\"\n (ngModelChange)=\"updateNgModel($event)\"\n [name]=\"buildChildName()\"\n [attr.name]=\"buildChildName()\"\n [attr.id]=\"buildChildId()\"\n [attr.aria-invalid]=\"hasErrorsToDisplay() || null\"\n [attr.disabled]=\"disabled ? 'disabled' : null\"\n [attr.aria-describedby]=\"getDescribedBy()\"\n (change)=\"handleChange(model)\"\n #entryComponent\n />\n <label
|
|
9532
|
+
], usesInheritance: true, ngImport: i0, template: "<div\n [class.vd-form-group-danger]=\"hasErrorsToDisplay()\"\n class=\"form-group\"\n [attr.id]=\"buildId('Container')\"\n tabindex=\"-1\"\n>\n <foehn-validation-alerts [component]=\"this\"></foehn-validation-alerts>\n\n <small\n *ngIf=\"helpText\"\n [attr.id]=\"buildChildId() + 'Help'\"\n class=\"form-text text-secondary\"\n [innerHTML]=\"helpText\"\n ></small>\n\n <ng-content></ng-content>\n\n <div class=\"form-check\">\n <input\n type=\"checkbox\"\n class=\"form-check-input\"\n [ngModel]=\"model\"\n (ngModelChange)=\"updateNgModel($event)\"\n [name]=\"buildChildName()\"\n [attr.name]=\"buildChildName()\"\n [attr.id]=\"buildChildId()\"\n [attr.aria-invalid]=\"hasErrorsToDisplay() || null\"\n [attr.disabled]=\"disabled ? 'disabled' : null\"\n [attr.aria-describedby]=\"getDescribedBy()\"\n (change)=\"handleChange(model)\"\n #entryComponent\n />\n <label\n [ngClass]=\"\n isLabelSrOnly\n ? 'form-check-label sr-only'\n : 'form-check-label vd-p'\n \"\n [for]=\"buildChildId()\"\n >\n <span [innerHTML]=\"label\"></span>\n <span\n *ngIf=\"!required && !hideNotRequiredExtraLabel\"\n aria-hidden=\"true\"\n >\n {{ 'foehn-input.optional' | fromDictionary }}\n </span>\n </label>\n </div>\n</div>\n", components: [{ type: FoehnValidationAlertsComponent, selector: "foehn-validation-alerts", inputs: ["component", "shouldErrorsBeLive"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], pipes: { "fromDictionary": SdkDictionaryPipe } });
|
|
9528
9533
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FoehnBooleanCheckboxComponent, decorators: [{
|
|
9529
9534
|
type: Component,
|
|
9530
9535
|
args: [{ selector: 'foehn-boolean-checkbox', providers: [
|
|
@@ -9533,7 +9538,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
|
|
|
9533
9538
|
useExisting: forwardRef(() => FoehnBooleanCheckboxComponent),
|
|
9534
9539
|
multi: true
|
|
9535
9540
|
}
|
|
9536
|
-
], template: "<div\n [class.vd-form-group-danger]=\"hasErrorsToDisplay()\"\n class=\"form-group\"\n [attr.id]=\"buildId('Container')\"\n tabindex=\"-1\"\n>\n <foehn-validation-alerts [component]=\"this\"></foehn-validation-alerts>\n\n <small\n *ngIf=\"helpText\"\n [attr.id]=\"buildChildId() + 'Help'\"\n class=\"form-text text-secondary\"\n [innerHTML]=\"helpText\"\n ></small>\n\n <ng-content></ng-content>\n\n <div class=\"form-check\">\n <input\n type=\"checkbox\"\n class=\"form-check-input\"\n [ngModel]=\"model\"\n (ngModelChange)=\"updateNgModel($event)\"\n [name]=\"buildChildName()\"\n [attr.name]=\"buildChildName()\"\n [attr.id]=\"buildChildId()\"\n [attr.aria-invalid]=\"hasErrorsToDisplay() || null\"\n [attr.disabled]=\"disabled ? 'disabled' : null\"\n [attr.aria-describedby]=\"getDescribedBy()\"\n (change)=\"handleChange(model)\"\n #entryComponent\n />\n <label
|
|
9541
|
+
], template: "<div\n [class.vd-form-group-danger]=\"hasErrorsToDisplay()\"\n class=\"form-group\"\n [attr.id]=\"buildId('Container')\"\n tabindex=\"-1\"\n>\n <foehn-validation-alerts [component]=\"this\"></foehn-validation-alerts>\n\n <small\n *ngIf=\"helpText\"\n [attr.id]=\"buildChildId() + 'Help'\"\n class=\"form-text text-secondary\"\n [innerHTML]=\"helpText\"\n ></small>\n\n <ng-content></ng-content>\n\n <div class=\"form-check\">\n <input\n type=\"checkbox\"\n class=\"form-check-input\"\n [ngModel]=\"model\"\n (ngModelChange)=\"updateNgModel($event)\"\n [name]=\"buildChildName()\"\n [attr.name]=\"buildChildName()\"\n [attr.id]=\"buildChildId()\"\n [attr.aria-invalid]=\"hasErrorsToDisplay() || null\"\n [attr.disabled]=\"disabled ? 'disabled' : null\"\n [attr.aria-describedby]=\"getDescribedBy()\"\n (change)=\"handleChange(model)\"\n #entryComponent\n />\n <label\n [ngClass]=\"\n isLabelSrOnly\n ? 'form-check-label sr-only'\n : 'form-check-label vd-p'\n \"\n [for]=\"buildChildId()\"\n >\n <span [innerHTML]=\"label\"></span>\n <span\n *ngIf=\"!required && !hideNotRequiredExtraLabel\"\n aria-hidden=\"true\"\n >\n {{ 'foehn-input.optional' | fromDictionary }}\n </span>\n </label>\n </div>\n</div>\n" }]
|
|
9537
9542
|
}] });
|
|
9538
9543
|
|
|
9539
9544
|
class FoehnBooleanRadioComponent extends FoehnInputComponent {
|