@sebgroup/green-angular 5.12.1 → 5.13.1

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.
Files changed (33) hide show
  1. package/esm2022/src/v-angular/checkbox/checkbox.component.mjs +24 -4
  2. package/esm2022/src/v-angular/datepicker/components/date-input/date-input.component.mjs +21 -3
  3. package/esm2022/src/v-angular/drag-drop/drag-drop.component.mjs +2 -2
  4. package/esm2022/src/v-angular/dropdown/dropdown.component.mjs +33 -4
  5. package/esm2022/src/v-angular/dropdown/typeahead/typeahead.directive.mjs +2 -1
  6. package/esm2022/src/v-angular/textarea/textarea.component.mjs +27 -3
  7. package/esm2022/v-angular/checkbox/checkbox.component.mjs +24 -4
  8. package/esm2022/v-angular/datepicker/components/date-input/date-input.component.mjs +21 -3
  9. package/esm2022/v-angular/drag-drop/drag-drop.component.mjs +2 -2
  10. package/esm2022/v-angular/dropdown/dropdown.component.mjs +33 -4
  11. package/esm2022/v-angular/dropdown/typeahead/typeahead.directive.mjs +2 -1
  12. package/esm2022/v-angular/textarea/textarea.component.mjs +27 -3
  13. package/fesm2022/sebgroup-green-angular-src-v-angular-checkbox.mjs +23 -3
  14. package/fesm2022/sebgroup-green-angular-src-v-angular-checkbox.mjs.map +1 -1
  15. package/fesm2022/sebgroup-green-angular-src-v-angular-datepicker.mjs +20 -2
  16. package/fesm2022/sebgroup-green-angular-src-v-angular-datepicker.mjs.map +1 -1
  17. package/fesm2022/sebgroup-green-angular-src-v-angular-drag-drop.mjs +2 -2
  18. package/fesm2022/sebgroup-green-angular-src-v-angular-drag-drop.mjs.map +1 -1
  19. package/fesm2022/sebgroup-green-angular-src-v-angular-dropdown.mjs +33 -3
  20. package/fesm2022/sebgroup-green-angular-src-v-angular-dropdown.mjs.map +1 -1
  21. package/fesm2022/sebgroup-green-angular-src-v-angular-textarea.mjs +26 -2
  22. package/fesm2022/sebgroup-green-angular-src-v-angular-textarea.mjs.map +1 -1
  23. package/fesm2022/sebgroup-green-angular-v-angular.mjs +104 -12
  24. package/fesm2022/sebgroup-green-angular-v-angular.mjs.map +1 -1
  25. package/package.json +12 -12
  26. package/src/v-angular/checkbox/checkbox.component.d.ts +10 -2
  27. package/src/v-angular/datepicker/components/date-input/date-input.component.d.ts +7 -1
  28. package/src/v-angular/dropdown/dropdown.component.d.ts +17 -2
  29. package/src/v-angular/textarea/textarea.component.d.ts +13 -1
  30. package/v-angular/checkbox/checkbox.component.d.ts +10 -2
  31. package/v-angular/datepicker/components/date-input/date-input.component.d.ts +7 -1
  32. package/v-angular/dropdown/dropdown.component.d.ts +17 -2
  33. package/v-angular/textarea/textarea.component.d.ts +13 -1
@@ -126,6 +126,7 @@ export class NggvTypeaheadDirective {
126
126
  this.hostDropdown.allowControlNullishOption = false;
127
127
  this.hostDropdown.options = this.formatOptions(filteredValues);
128
128
  this.hostDropdown.textToHighlight = `${input || ''}`;
129
+ this.hostDropdown.onlyHandleDistinctChanges = false;
129
130
  this.hostDropdown.detectChanges();
130
131
  return;
131
132
  }
@@ -181,4 +182,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
181
182
  type: HostListener,
182
183
  args: ['nggvInput', ['$event']]
183
184
  }] } });
184
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZWFoZWFkLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9zcmMvdi1hbmd1bGFyL2Ryb3Bkb3duL3R5cGVhaGVhZC90eXBlYWhlYWQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixJQUFJLEVBQ0osWUFBWSxFQUNaLEtBQUssRUFHTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLGdCQUFnQixHQUNqQixNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLElBQUksRUFFSixPQUFPLEVBRVAsU0FBUyxFQUNULEdBQUcsRUFDSCxjQUFjLEdBQ2YsTUFBTSxNQUFNLENBQUE7QUFHYixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQTtBQUNoRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQUM3RCxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSx3RUFBd0UsQ0FBQTtBQUMzSCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQTs7OztBQU16RixNQUFNLE9BQU8sc0JBQXNCO0lBT2pDLDBDQUEwQztJQUMxQyxJQUFhLGFBQWEsQ0FBQyxLQUFnRDtRQUN6RSxJQUFJLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFBO1FBRTlCLHVFQUF1RTtRQUN2RSxJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQzVCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxXQUFXLEVBQUUsQ0FBQTtZQUN0QyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsU0FBUyxDQUFBO1lBQ25DLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFBO1FBQzNCLENBQUM7SUFDSCxDQUFDO0lBb0JELHNEQUFzRDtJQUNmLFdBQVcs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LEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUNyRCxDQUFBO0lBQ0gsQ0FBQzsrR0FwTVUsc0JBQXNCO21HQUF0QixzQkFBc0I7OzRGQUF0QixzQkFBc0I7a0JBSmxDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHlEQUF5RDtvQkFDbkUsVUFBVSxFQUFFLElBQUk7aUJBQ2pCOzswQkE2RUksUUFBUTs7MEJBQUksSUFBSTs7MEJBQ2hCLFFBQVE7OzBCQUFJLElBQUk7eUNBckVOLGFBQWE7c0JBQXpCLEtBQUs7Z0JBWUcsZUFBZTtzQkFBdkIsS0FBSztnQkFHRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBR0csYUFBYTtzQkFBckIsS0FBSztnQkFHRyxhQUFhO3NCQUFyQixLQUFLO2dCQUdHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFHSSxrQkFBa0I7c0JBQTNCLE1BQU07Z0JBR2dDLFdBQVc7c0JBQWpELFlBQVk7dUJBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50UmVmLFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdCxcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE9wdGlvbmFsLFxuICBPdXRwdXQsXG4gIFZpZXdDb250YWluZXJSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQge1xuICBkaXN0aW5jdFVudGlsQ2hhbmdlZCxcbiAgZnJvbSxcbiAgT3BlcmF0b3JGdW5jdGlvbixcbiAgU3ViamVjdCxcbiAgU3Vic2NyaXB0aW9uLFxuICB0YWtlVW50aWwsXG4gIHRhcCxcbiAgd2l0aExhdGVzdEZyb20sXG59IGZyb20gJ3J4anMnXG5cbmltcG9ydCB7IE9wdGlvbiwgT3B0aW9uQmFzZSB9IGZyb20gJ0BzZWJncm91cC9ncmVlbi1hbmd1bGFyL3NyYy92LWFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IE5nZ3ZJbnB1dENvbXBvbmVudCB9IGZyb20gJ0BzZWJncm91cC9ncmVlbi1hbmd1bGFyL3NyYy92LWFuZ3VsYXIvaW5wdXQnXG5pbXBvcnQgeyBOZ2d2RHJvcGRvd25Db21wb25lbnQgfSBmcm9tICcuLi9kcm9wZG93bi5jb21wb25lbnQnXG5pbXBvcnQgeyBOZ2d2VHlwZWFoZWFkRHJvcGRvd25MaXN0Q29tcG9uZW50IH0gZnJvbSAnLi4vdHlwZWFoZWFkL3R5cGVhaGVhZC1kcm9wZG93bi1saXN0L3R5cGVhaGVhZC1kcm9wZG93bi1saXN0LmNvbXBvbmVudCdcbmltcG9ydCB7IE5nZ3ZUeXBlYWhlYWRJbnB1dENvbXBvbmVudCB9IGZyb20gJy4vdHlwZWFoZWFkLWlucHV0L3R5cGVhaGVhZC1pbnB1dC5jb21wb25lbnQnXG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ25nZ3YtaW5wdXRbbmdndlR5cGVhaGVhZF0sIG5nZ3YtZHJvcGRvd25bbmdndlR5cGVhaGVhZF0nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBOZ2d2VHlwZWFoZWFkRGlyZWN0aXZlPFxuICAgIEsgPSBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkLFxuICAgIFYgPSBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkLFxuICAgIFQgZXh0ZW5kcyBPcHRpb248SywgVj4gPSBPcHRpb248SywgVj4sXG4gID5cbiAgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveVxue1xuICAvKiogRnVuY3Rpb24gdGhhdCBmaWx0ZXIgdGhlIGlucHV0dmFsdWUgKi9cbiAgQElucHV0KCkgc2V0IG5nZ3ZUeXBlYWhlYWQodmFsdWU6IE9wZXJhdG9yRnVuY3Rpb248c3RyaW5nLCBUW10+IHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy50eXBlYWhlYWRGdW5jdGlvbiA9IHZhbHVlXG5cbiAgICAvLyBJZiBpbnB1dHN1YnNjcmlwdGlvbiBhbHJlYWR5IGV4aXN0cywgdW5zdWJzY3JpYmUgYW5kIHN1YnNjcmliZSBhZ2FpblxuICAgIGlmICh0aGlzLmlucHV0U3Vic2NyaXB0aW9uJCkge1xuICAgICAgdGhpcy5pbnB1dFN1YnNjcmlwdGlvbiQ/LnVuc3Vic2NyaWJlKClcbiAgICAgIHRoaXMuaW5wdXRTdWJzY3JpcHRpb24kID0gdW5kZWZpbmVkXG4gICAgICB0aGlzLmhhbmRsZUlucHV0Q2hhbmdlcygpXG4gICAgfVxuICB9XG5cbiAgLyoqIEZvcm1hdHMgZWFjaCBpdGVtIHRoYXQgaXMgZGlzcGxheWVkIGFzIGFuIG9wdGlvbi4gT25seSBhcHBsaWVzIGZvcm1hdCBpZiB0aGUgb3B0aW9uIGlmIGl0IGltcGxlbWVudCBPcHRpb24gaW50ZXJmYWNlLiAqL1xuICBASW5wdXQoKSByZXN1bHRGb3JtYXR0ZXI/OiAob3B0aW9uOiBPcHRpb25CYXNlPGFueT4pID0+IHN0cmluZ1xuXG4gIC8qKiBGb3JtYXRzIHRoZSBzZWxlY3RlZCBpdGVtIGluIHRoZSBpbnB1dCB3aGVuIGRyb3Bkb3duIGlzIG9wZW5lZC4gSWYgbm8gZnVuY3Rpb24gaXMgcHJvdmlkZWQsIGl0IHdpbGwgZGlzcGxheSB0aGUgdmFsdWUgb2YgdGhlIHNlbGVjdGVkIG9iamVjdHMgbGFiZWwgcHJvcGVydHkgKi9cbiAgQElucHV0KCkgc2VsZWN0ZWRGb3JtYXR0ZXI/OiAoc2VsZWN0ZWQ6IE9wdGlvbkJhc2U8YW55PikgPT4gc3RyaW5nXG5cbiAgLyoqIEFsbG93IG9wdGlvbiB0byBiZSB1bnNlbGVjdGVkIGluIHRoZSBkcm9wZG93biBldmVuIGlmIGl0IGlzIHJlcXVpcmVkLiBEZWZhdWx0cyB0byB0cnVlICovXG4gIEBJbnB1dCgpIGFsbG93VW5zZWxlY3QgPSB0cnVlXG5cbiAgLyoqIEN1c3RvbSBsYWJlbCBmb3IgdGhlIHVuc2VsZWN0IG9wdGlvbiAqL1xuICBASW5wdXQoKSB1bnNlbGVjdExhYmVsPzogc3RyaW5nXG5cbiAgLyoqIEN1c3RvbSBsYWJlbCBmb3IgdGhlIGVtcHR5IG9wdGlvbiAqL1xuICBASW5wdXQoKSBlbXB0eU9wdGlvbkxhYmVsPzogc3RyaW5nXG5cbiAgLyoqIEVtaXRzIHRoZSBlbnRlcmVkIHN0cmluZyB0aGUgdXNlciBoYXMgd3JpdHRlbiBpbiB0aGUgaW5wdXQgKi9cbiAgQE91dHB1dCgpIGZpbHRlclBocmFzZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpXG5cbiAgLyoqIEZvcndhcmQgdGV4dCBpbnB1dHMgdG8gYXBwbHkgdGhlIGZpbHRlciBmdW5jdGlvbiovXG4gIEBIb3N0TGlzdGVuZXIoJ25nZ3ZJbnB1dCcsIFsnJGV2ZW50J10pIG9uTmdndklucHV0KGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLmlucHV0VmFsdWUkLm5leHQoZXZlbnQpXG4gIH1cblxuICAvKiogSGVscGVyIHRvIHRoZSBkZXRlcm1pbmUgaWYgdGhlIGhvc3QgaXMgbmdndi1kcm9kcG93biBvciBuZ2d2LWlucHV0Ki9cbiAgZ2V0IGhvc3RJc0Ryb3Bkb3duKCkge1xuICAgIHJldHVybiAhIXRoaXMuaG9zdERyb3Bkb3duXG4gIH1cblxuICAvKiogUHJlZGVmaW5lZCBvcHRpb25zICovXG4gIGdldCBkZWZhdWx0TnVsbGlzaE9wdGlvbigpOiBPcHRpb25CYXNlPGFueT4ge1xuICAgIHJldHVybiB7IGtleTogbnVsbCwgbGFiZWw6IHRoaXMudW5zZWxlY3RMYWJlbCB8fCAnXFx1MDBBMCcgfVxuICB9XG5cbiAgZ2V0IGVtcHR5T3B0aW9uKCk6IE9wdGlvbkJhc2U8YW55PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGtleTogbnVsbCxcbiAgICAgIGxhYmVsOiB0aGlzLmVtcHR5T3B0aW9uTGFiZWwgfHwgJ2xhYmVsLm5vbWF0Y2hpbmdvcHRpb25zJyxcbiAgICAgIGRpc2FibGVkOiB0cnVlLFxuICAgIH1cbiAgfVxuXG4gIC8qKiBOYW1lIG9mIHRoZSBjb21wb25lbnQuIG5nZ3YtZHJvcGRvd24gaWYgTmdndkRyb3Bkb3duQ29tcG9uZW50IG9yIG5nZ3YtaW5wdXQgaWYgTmdndklucHV0Q29tcG9uZW50ICovXG4gIGdldCBsb2NhbE5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LmxvY2FsTmFtZVxuICB9XG5cbiAgZHJvcGRvd25MaXN0Q29tcG9uZW50ITogQ29tcG9uZW50UmVmPE5nZ3ZUeXBlYWhlYWREcm9wZG93bkxpc3RDb21wb25lbnQ+XG4gIGlucHV0Q29tcG9uZW50ITogQ29tcG9uZW50UmVmPE5nZ3ZUeXBlYWhlYWRJbnB1dENvbXBvbmVudD5cblxuICBwcml2YXRlIHR5cGVhaGVhZEZ1bmN0aW9uPzogT3BlcmF0b3JGdW5jdGlvbjxzdHJpbmcsIFRbXT5cbiAgcHJpdmF0ZSBpbnB1dFZhbHVlJCA9IG5ldyBTdWJqZWN0PGFueT4oKVxuICBwcml2YXRlIGlucHV0U3Vic2NyaXB0aW9uJD86IFN1YnNjcmlwdGlvblxuICBwcml2YXRlIG9uRGVzdHJveSQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgIHByaXZhdGUgZWxlbWVudDogRWxlbWVudFJlZixcbiAgICBAT3B0aW9uYWwoKSBASG9zdCgpIHByaXZhdGUgaG9zdERyb3Bkb3duOiBOZ2d2RHJvcGRvd25Db21wb25lbnQsXG4gICAgQE9wdGlvbmFsKCkgQEhvc3QoKSBwcml2YXRlIGhvc3RJbnB1dDogTmdndklucHV0Q29tcG9uZW50LFxuICApIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5oYW5kbGVJbnB1dENoYW5nZXMoKVxuXG4gICAgaWYgKHRoaXMuaG9zdElzRHJvcGRvd24pIHRoaXMuY3JlYXRlSW5wdXQoKVxuICAgIGVsc2UgdGhpcy5jcmVhdGVEcm9wZG93bkxpc3QoKVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5vbkRlc3Ryb3kkLm5leHQodHJ1ZSlcbiAgICB0aGlzLm9uRGVzdHJveSQuY29tcGxldGUoKVxuICB9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKiBDb3JlIGZ1bmN0aW9uYWxpdHkgb2YgdHlwZWFoZWFkLiBFbWl0cyBpbnB1dCwgdGhlbiBmaWx0ZXJzIHRoZSByZXN1bHQgYmFzZWQgb24gdGhlIHN1cHBsaWVkIGZ1bmN0aW9uXG4gICAqIElmIGRpcmVjdGl2ZSBpcyBhcHBsaWVkIG9uIG5nZ3YtaW5wdXQsIG1hbnVhbGx5IHNob3cgb3IgaGlkZSBvcHRpb25zIGluIHRoZSBsaXN0LlxuICAgKiBJZiBkaXJlY3RpdmUgaXMgYXBwbGllZCBvbiBuZ2d2LWRyb3Bkb3duLCBsZXQgdGhlIGRyb3Bkb3duIGl0c2VsZiBjaG9vc2Ugd2hlbiB0byBvcGVuIG9yIGNsb3NlXG4gICAqL1xuICBwcml2YXRlIGhhbmRsZUlucHV0Q2hhbmdlcygpIHtcbiAgICB0aGlzLmlucHV0U3Vic2NyaXB0aW9uJCA9IHRoaXMuaW5wdXRWYWx1ZSRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5vbkRlc3Ryb3kkKSxcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgICAgdGFwKChpbnB1dFZhbHVlKSA9PiB0aGlzLmZpbHRlclBocmFzZUNoYW5nZS5lbWl0KGlucHV0VmFsdWUpKSxcbiAgICAgICAgdGhpcy50eXBlYWhlYWRGdW5jdGlvbiA/IHRoaXMudHlwZWFoZWFkRnVuY3Rpb24gOiAoKSA9PiBmcm9tKFtdKSxcbiAgICAgICAgd2l0aExhdGVzdEZyb20odGhpcy5pbnB1dFZhbHVlJCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChbZmlsdGVyZWRWYWx1ZXMsIGlucHV0XSkgPT5cbiAgICAgICAgdGhpcy5zZXRPcHRpb25zKGZpbHRlcmVkVmFsdWVzLCBpbnB1dCksXG4gICAgICApXG5cbiAgICAvLyBUcmlnZ2VyIHRoZSBwaXBlIHdoZW4gdGhpcyBmdW5jdGlvbiBoYXZlIGJlZW4gY2FsbGVkXG4gICAgdGhpcy5pbnB1dFZhbHVlJC5uZXh0KCcnKVxuICB9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKiBDcmVhdGVzIGEgbmdndi1pbnB1dCBpZiB0aGUgaG9zdCBpdHNlbGYgaXMgbm90IGEgdGV4dC1pbnB1dFxuICAgKiBTZXQgc3R5bGVzIHRvIG5vdCBkaXNwbGF5IHRoZSBpbnB1dCB3aGVuIGNsb3NlZFxuICAgKiBUcmlnZ2VyIGZpbHRlcmluZyB3aGVuIGNoYW5nZXMgb2NjdXIgaW4gdGhlIGZpZWxkXG4gICAqICovXG4gIHByaXZhdGUgY3JlYXRlSW5wdXQoKSB7XG4gICAgLy8gQ3JlYXRlIHRoZSBpbnB1dCBjb21wb25lbnRcbiAgICB0aGlzLmlucHV0Q29tcG9uZW50ID0gdGhpcy52aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudChcbiAgICAgIE5nZ3ZUeXBlYWhlYWRJbnB1dENvbXBvbmVudCxcbiAgICApXG4gICAgLy8gRm9yd2FyZCBuZWNlc3NhcnkgaW5mbyB0byBjb21wb25lbnRcbiAgICB0aGlzLmlucHV0Q29tcG9uZW50LnNldElucHV0KCdob3N0Q29tcG9uZW50JywgdGhpcy5ob3N0RHJvcGRvd24pXG4gICAgdGhpcy5pbnB1dENvbXBvbmVudC5zZXRJbnB1dCgnc2VsZWN0ZWRGb3JtYXR0ZXInLCB0aGlzLnNlbGVjdGVkRm9ybWF0dGVyKVxuICAgIHRoaXMuaW5wdXRDb21wb25lbnQuc2V0SW5wdXQoJ3Jlc3VsdEZvcm1hdHRlcicsIHRoaXMucmVzdWx0Rm9ybWF0dGVyKVxuICAgIC8vIExpc3RlbiB0byB2YWx1ZSBjaGFuZ2VzXG4gICAgdGhpcy5pbnB1dENvbXBvbmVudC5pbnN0YW5jZS5uZ2d2SW5wdXRcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm9uRGVzdHJveSQpKVxuICAgICAgLnN1YnNjcmliZSgoaW5wdXRWYWx1ZSkgPT4gdGhpcy5pbnB1dFZhbHVlJC5uZXh0KGlucHV0VmFsdWUpKVxuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCBDcmVhdGVzIGEgbmdndi1kcm9wZG93bi1saXN0IGlmIHRoZSBob3N0IGl0c2VsZiBpcyBhIG5nZ3YtaW5wdXQgKi9cbiAgcHJpdmF0ZSBjcmVhdGVEcm9wZG93bkxpc3QoKSB7XG4gICAgdGhpcy5kcm9wZG93bkxpc3RDb21wb25lbnQgPSB0aGlzLnZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KFxuICAgICAgTmdndlR5cGVhaGVhZERyb3Bkb3duTGlzdENvbXBvbmVudCxcbiAgICApXG4gICAgdGhpcy5kcm9wZG93bkxpc3RDb21wb25lbnQuc2V0SW5wdXQoJ2hvc3RDb21wb25lbnQnLCB0aGlzLmhvc3RJbnB1dClcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWwgU2V0cyB0aGUgb3B0aW9ucyB0aGUgdXNlciBjYW4gc2VsZWN0LlxuICAgKiBJZiB0aGUgaG9zdCBpcyBhIG5nZ3YtZHJvcGRvd24sIHV0aWxpemUgdGhlIGRyb3Bkb3duIGl0c2VsZiB0byBkaXNwbGF5IHRoZSBvcHRpb25zXG4gICAqIElmIHRoZSBob3N0IGlzIGEgbmdndi1pbnB1dCwgdXNlIHRoZSBjcmVhdGVkIG5nZ3YtZHJvcGRvd24tbGlzdCB0byBkaXNwbGF5ZSB0aGUgb3B0aW9uc1xuICAgKiBAcGFyYW0gZmlsdGVyZWRWYWx1ZXMgVGhlIG9wdGlvbnMgdG8gZGlzcGxheSBpbiB0aGUgZHJvcGRvd25cbiAgICogQHBhcmFtIGVtcHR5SW5wdXQgSWYgdGhlIGlucHV0IGlzIGVtcHR5XG4gICAqL1xuICBwcml2YXRlIHNldE9wdGlvbnMoZmlsdGVyZWRWYWx1ZXM6IFRbXSwgaW5wdXQ6IHN0cmluZykge1xuICAgIGlmICghZmlsdGVyZWRWYWx1ZXMpIHJldHVyblxuICAgIC8vIENvbmRpdGlvbmFsbHkgYWRkIGVtcHR5IG9yIG51bGxpc2ggb3B0aW9uIGlmIGl0J3MgYWxsb3dlZCwgdGhlIGlucHV0IGlzIGVtcHR5IGFuZCBkb2VzIG5vdCBhbHJlYWR5IGNvbnRhaW4gbnVsbGlzaFxuICAgIGNvbnN0IGFsbG93TnVsbGlzaCA9XG4gICAgICB0aGlzLmFsbG93VW5zZWxlY3QgJiZcbiAgICAgICFpbnB1dCAmJlxuICAgICAgIShcbiAgICAgICAgT2JqZWN0LmtleXMoZmlsdGVyZWRWYWx1ZXNbMF0gPz8ge30pLmluY2x1ZGVzKCdrZXknKSAmJlxuICAgICAgICBmaWx0ZXJlZFZhbHVlc1swXT8ua2V5ID09IG51bGxcbiAgICAgIClcbiAgICBpZiAoZmlsdGVyZWRWYWx1ZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICBmaWx0ZXJlZFZhbHVlcyA9IFt0aGlzLmVtcHR5T3B0aW9uXVxuICAgIH0gZWxzZSBpZiAoYWxsb3dOdWxsaXNoKSB7XG4gICAgICBmaWx0ZXJlZFZhbHVlcyA9IFt0aGlzLmRlZmF1bHROdWxsaXNoT3B0aW9uXS5jb25jYXQoZmlsdGVyZWRWYWx1ZXMpXG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaG9zdElzRHJvcGRvd24pIHtcbiAgICAgIC8vIEFkZCBudWxsaXNoIG9wdGlvbiB3aGVuIG5vIGlucHV0IGlzIHdyaXR0ZW4gKG9yIHdoZW4gZHJvcGRvd24gaXMgZXBhbmRlZCBhbmQgaGFzIGEgc2VsZWN0aW9uKVxuICAgICAgdGhpcy5ob3N0RHJvcGRvd24uYWxsb3dDb250cm9sTnVsbGlzaE9wdGlvbiA9IGZhbHNlXG4gICAgICB0aGlzLmhvc3REcm9wZG93bi5vcHRpb25zID0gdGhpcy5mb3JtYXRPcHRpb25zKGZpbHRlcmVkVmFsdWVzKVxuICAgICAgdGhpcy5ob3N0RHJvcGRvd24udGV4dFRvSGlnaGxpZ2h0ID0gYCR7aW5wdXQgfHwgJyd9YFxuICAgICAgdGhpcy5ob3N0RHJvcGRvd24uZGV0ZWN0Q2hhbmdlcygpXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuaG9zdElzRHJvcGRvd24pIHtcbiAgICAgIHRoaXMuZHJvcGRvd25MaXN0Q29tcG9uZW50LnNldElucHV0KFxuICAgICAgICAnb3B0aW9ucycsXG4gICAgICAgIHRoaXMuZm9ybWF0T3B0aW9ucyhmaWx0ZXJlZFZhbHVlcyksXG4gICAgICApXG4gICAgICB0aGlzLmRyb3Bkb3duTGlzdENvbXBvbmVudC5zZXRJbnB1dCgndGV4dFRvSGlnaGxpZ2h0JywgYCR7aW5wdXQgfHwgJyd9YClcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsIEZvcm1hdHMgdGhlIGF2YWlsYWJsZSBvcHRpb25zIHRvIGRpc3BsYXkgaW4gdGhlIGRyb3Bkb3duIGxpc3RcbiAgICogQHBhcmFtIG9wdGlvbnMgVGhlIHNlbGVjdGVkIHZhbHVlXG4gICAqIEByZXR1cm5zIFRoZSBmb3JtYXR0ZWQgdmFsdWVcbiAgICovXG4gIHByaXZhdGUgZm9ybWF0T3B0aW9ucyhvcHRpb25zOiBUW10pOiBPcHRpb25CYXNlPGFueT5bXSB7XG4gICAgaWYgKCFvcHRpb25zKSByZXR1cm4gW11cbiAgICBpZiAoIXRoaXMucmVzdWx0Rm9ybWF0dGVyKSByZXR1cm4gb3B0aW9uc1xuICAgIHJldHVybiBvcHRpb25zLm1hcCgodmFsdWUpID0+XG4gICAgICB2YWx1ZT8ubGFiZWwgPyB0aGlzLnJlc3VsdEZvcm1hdHRlcj8uKHZhbHVlKSA6IHZhbHVlLFxuICAgIClcbiAgfVxufVxuIl19
185
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZWFoZWFkLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9zcmMvdi1hbmd1bGFyL2Ryb3Bkb3duL3R5cGVhaGVhZC90eXBlYWhlYWQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixJQUFJLEVBQ0osWUFBWSxFQUNaLEtBQUssRUFHTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLGdCQUFnQixHQUNqQixNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLElBQUksRUFFSixPQUFPLEVBRVAsU0FBUyxFQUNULEdBQUcsRUFDSCxjQUFjLEdBQ2YsTUFBTSxNQUFNLENBQUE7QUFHYixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQTtBQUNoRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQUM3RCxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSx3RUFBd0UsQ0FBQTtBQUMzSCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQTs7OztBQU16RixNQUFNLE9BQU8sc0JBQXNCO0lBT2pDLDBDQUEwQztJQUMxQyxJQUFhLGFBQWEsQ0FBQyxLQUFnRDtRQUN6RSxJQUFJLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFBO1FBRTlCLHVFQUF1RTtRQUN2RSxJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQzVCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxXQUFXLEVBQUUsQ0FBQTtZQUN0QyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsU0FBUyxDQUFBO1lBQ25DLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFBO1FBQzNCLENBQUM7SUFDSCxDQUFDO0lBb0JELHNEQUFzRDtJQUNmLFdBQVcs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QU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQzNCLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUNyRCxDQUFBO0lBQ0gsQ0FBQzsrR0FyTVUsc0JBQXNCO21HQUF0QixzQkFBc0I7OzRGQUF0QixzQkFBc0I7a0JBSmxDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHlEQUF5RDtvQkFDbkUsVUFBVSxFQUFFLElBQUk7aUJBQ2pCOzswQkE2RUksUUFBUTs7MEJBQUksSUFBSTs7MEJBQ2hCLFFBQVE7OzBCQUFJLElBQUk7eUNBckVOLGFBQWE7c0JBQXpCLEtBQUs7Z0JBWUcsZUFBZTtzQkFBdkIsS0FBSztnQkFHRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBR0csYUFBYTtzQkFBckIsS0FBSztnQkFHRyxhQUFhO3NCQUFyQixLQUFLO2dCQUdHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFHSSxrQkFBa0I7c0JBQTNCLE1BQU07Z0JBR2dDLFdBQVc7c0JBQWpELFlBQVk7dUJBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50UmVmLFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdCxcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE9wdGlvbmFsLFxuICBPdXRwdXQsXG4gIFZpZXdDb250YWluZXJSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQge1xuICBkaXN0aW5jdFVudGlsQ2hhbmdlZCxcbiAgZnJvbSxcbiAgT3BlcmF0b3JGdW5jdGlvbixcbiAgU3ViamVjdCxcbiAgU3Vic2NyaXB0aW9uLFxuICB0YWtlVW50aWwsXG4gIHRhcCxcbiAgd2l0aExhdGVzdEZyb20sXG59IGZyb20gJ3J4anMnXG5cbmltcG9ydCB7IE9wdGlvbiwgT3B0aW9uQmFzZSB9IGZyb20gJ0BzZWJncm91cC9ncmVlbi1hbmd1bGFyL3NyYy92LWFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IE5nZ3ZJbnB1dENvbXBvbmVudCB9IGZyb20gJ0BzZWJncm91cC9ncmVlbi1hbmd1bGFyL3NyYy92LWFuZ3VsYXIvaW5wdXQnXG5pbXBvcnQgeyBOZ2d2RHJvcGRvd25Db21wb25lbnQgfSBmcm9tICcuLi9kcm9wZG93bi5jb21wb25lbnQnXG5pbXBvcnQgeyBOZ2d2VHlwZWFoZWFkRHJvcGRvd25MaXN0Q29tcG9uZW50IH0gZnJvbSAnLi4vdHlwZWFoZWFkL3R5cGVhaGVhZC1kcm9wZG93bi1saXN0L3R5cGVhaGVhZC1kcm9wZG93bi1saXN0LmNvbXBvbmVudCdcbmltcG9ydCB7IE5nZ3ZUeXBlYWhlYWRJbnB1dENvbXBvbmVudCB9IGZyb20gJy4vdHlwZWFoZWFkLWlucHV0L3R5cGVhaGVhZC1pbnB1dC5jb21wb25lbnQnXG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ25nZ3YtaW5wdXRbbmdndlR5cGVhaGVhZF0sIG5nZ3YtZHJvcGRvd25bbmdndlR5cGVhaGVhZF0nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBOZ2d2VHlwZWFoZWFkRGlyZWN0aXZlPFxuICAgIEsgPSBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkLFxuICAgIFYgPSBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkLFxuICAgIFQgZXh0ZW5kcyBPcHRpb248SywgVj4gPSBPcHRpb248SywgVj4sXG4gID5cbiAgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveVxue1xuICAvKiogRnVuY3Rpb24gdGhhdCBmaWx0ZXIgdGhlIGlucHV0dmFsdWUgKi9cbiAgQElucHV0KCkgc2V0IG5nZ3ZUeXBlYWhlYWQodmFsdWU6IE9wZXJhdG9yRnVuY3Rpb248c3RyaW5nLCBUW10+IHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy50eXBlYWhlYWRGdW5jdGlvbiA9IHZhbHVlXG5cbiAgICAvLyBJZiBpbnB1dHN1YnNjcmlwdGlvbiBhbHJlYWR5IGV4aXN0cywgdW5zdWJzY3JpYmUgYW5kIHN1YnNjcmliZSBhZ2FpblxuICAgIGlmICh0aGlzLmlucHV0U3Vic2NyaXB0aW9uJCkge1xuICAgICAgdGhpcy5pbnB1dFN1YnNjcmlwdGlvbiQ/LnVuc3Vic2NyaWJlKClcbiAgICAgIHRoaXMuaW5wdXRTdWJzY3JpcHRpb24kID0gdW5kZWZpbmVkXG4gICAgICB0aGlzLmhhbmRsZUlucHV0Q2hhbmdlcygpXG4gICAgfVxuICB9XG5cbiAgLyoqIEZvcm1hdHMgZWFjaCBpdGVtIHRoYXQgaXMgZGlzcGxheWVkIGFzIGFuIG9wdGlvbi4gT25seSBhcHBsaWVzIGZvcm1hdCBpZiB0aGUgb3B0aW9uIGlmIGl0IGltcGxlbWVudCBPcHRpb24gaW50ZXJmYWNlLiAqL1xuICBASW5wdXQoKSByZXN1bHRGb3JtYXR0ZXI/OiAob3B0aW9uOiBPcHRpb25CYXNlPGFueT4pID0+IHN0cmluZ1xuXG4gIC8qKiBGb3JtYXRzIHRoZSBzZWxlY3RlZCBpdGVtIGluIHRoZSBpbnB1dCB3aGVuIGRyb3Bkb3duIGlzIG9wZW5lZC4gSWYgbm8gZnVuY3Rpb24gaXMgcHJvdmlkZWQsIGl0IHdpbGwgZGlzcGxheSB0aGUgdmFsdWUgb2YgdGhlIHNlbGVjdGVkIG9iamVjdHMgbGFiZWwgcHJvcGVydHkgKi9cbiAgQElucHV0KCkgc2VsZWN0ZWRGb3JtYXR0ZXI/OiAoc2VsZWN0ZWQ6IE9wdGlvbkJhc2U8YW55PikgPT4gc3RyaW5nXG5cbiAgLyoqIEFsbG93IG9wdGlvbiB0byBiZSB1bnNlbGVjdGVkIGluIHRoZSBkcm9wZG93biBldmVuIGlmIGl0IGlzIHJlcXVpcmVkLiBEZWZhdWx0cyB0byB0cnVlICovXG4gIEBJbnB1dCgpIGFsbG93VW5zZWxlY3QgPSB0cnVlXG5cbiAgLyoqIEN1c3RvbSBsYWJlbCBmb3IgdGhlIHVuc2VsZWN0IG9wdGlvbiAqL1xuICBASW5wdXQoKSB1bnNlbGVjdExhYmVsPzogc3RyaW5nXG5cbiAgLyoqIEN1c3RvbSBsYWJlbCBmb3IgdGhlIGVtcHR5IG9wdGlvbiAqL1xuICBASW5wdXQoKSBlbXB0eU9wdGlvbkxhYmVsPzogc3RyaW5nXG5cbiAgLyoqIEVtaXRzIHRoZSBlbnRlcmVkIHN0cmluZyB0aGUgdXNlciBoYXMgd3JpdHRlbiBpbiB0aGUgaW5wdXQgKi9cbiAgQE91dHB1dCgpIGZpbHRlclBocmFzZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpXG5cbiAgLyoqIEZvcndhcmQgdGV4dCBpbnB1dHMgdG8gYXBwbHkgdGhlIGZpbHRlciBmdW5jdGlvbiovXG4gIEBIb3N0TGlzdGVuZXIoJ25nZ3ZJbnB1dCcsIFsnJGV2ZW50J10pIG9uTmdndklucHV0KGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLmlucHV0VmFsdWUkLm5leHQoZXZlbnQpXG4gIH1cblxuICAvKiogSGVscGVyIHRvIHRoZSBkZXRlcm1pbmUgaWYgdGhlIGhvc3QgaXMgbmdndi1kcm9kcG93biBvciBuZ2d2LWlucHV0Ki9cbiAgZ2V0IGhvc3RJc0Ryb3Bkb3duKCkge1xuICAgIHJldHVybiAhIXRoaXMuaG9zdERyb3Bkb3duXG4gIH1cblxuICAvKiogUHJlZGVmaW5lZCBvcHRpb25zICovXG4gIGdldCBkZWZhdWx0TnVsbGlzaE9wdGlvbigpOiBPcHRpb25CYXNlPGFueT4ge1xuICAgIHJldHVybiB7IGtleTogbnVsbCwgbGFiZWw6IHRoaXMudW5zZWxlY3RMYWJlbCB8fCAnXFx1MDBBMCcgfVxuICB9XG5cbiAgZ2V0IGVtcHR5T3B0aW9uKCk6IE9wdGlvbkJhc2U8YW55PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGtleTogbnVsbCxcbiAgICAgIGxhYmVsOiB0aGlzLmVtcHR5T3B0aW9uTGFiZWwgfHwgJ2xhYmVsLm5vbWF0Y2hpbmdvcHRpb25zJyxcbiAgICAgIGRpc2FibGVkOiB0cnVlLFxuICAgIH1cbiAgfVxuXG4gIC8qKiBOYW1lIG9mIHRoZSBjb21wb25lbnQuIG5nZ3YtZHJvcGRvd24gaWYgTmdndkRyb3Bkb3duQ29tcG9uZW50IG9yIG5nZ3YtaW5wdXQgaWYgTmdndklucHV0Q29tcG9uZW50ICovXG4gIGdldCBsb2NhbE5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LmxvY2FsTmFtZVxuICB9XG5cbiAgZHJvcGRvd25MaXN0Q29tcG9uZW50ITogQ29tcG9uZW50UmVmPE5nZ3ZUeXBlYWhlYWREcm9wZG93bkxpc3RDb21wb25lbnQ+XG4gIGlucHV0Q29tcG9uZW50ITogQ29tcG9uZW50UmVmPE5nZ3ZUeXBlYWhlYWRJbnB1dENvbXBvbmVudD5cblxuICBwcml2YXRlIHR5cGVhaGVhZEZ1bmN0aW9uPzogT3BlcmF0b3JGdW5jdGlvbjxzdHJpbmcsIFRbXT5cbiAgcHJpdmF0ZSBpbnB1dFZhbHVlJCA9IG5ldyBTdWJqZWN0PGFueT4oKVxuICBwcml2YXRlIGlucHV0U3Vic2NyaXB0aW9uJD86IFN1YnNjcmlwdGlvblxuICBwcml2YXRlIG9uRGVzdHJveSQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgIHByaXZhdGUgZWxlbWVudDogRWxlbWVudFJlZixcbiAgICBAT3B0aW9uYWwoKSBASG9zdCgpIHByaXZhdGUgaG9zdERyb3Bkb3duOiBOZ2d2RHJvcGRvd25Db21wb25lbnQsXG4gICAgQE9wdGlvbmFsKCkgQEhvc3QoKSBwcml2YXRlIGhvc3RJbnB1dDogTmdndklucHV0Q29tcG9uZW50LFxuICApIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5oYW5kbGVJbnB1dENoYW5nZXMoKVxuXG4gICAgaWYgKHRoaXMuaG9zdElzRHJvcGRvd24pIHRoaXMuY3JlYXRlSW5wdXQoKVxuICAgIGVsc2UgdGhpcy5jcmVhdGVEcm9wZG93bkxpc3QoKVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5vbkRlc3Ryb3kkLm5leHQodHJ1ZSlcbiAgICB0aGlzLm9uRGVzdHJveSQuY29tcGxldGUoKVxuICB9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKiBDb3JlIGZ1bmN0aW9uYWxpdHkgb2YgdHlwZWFoZWFkLiBFbWl0cyBpbnB1dCwgdGhlbiBmaWx0ZXJzIHRoZSByZXN1bHQgYmFzZWQgb24gdGhlIHN1cHBsaWVkIGZ1bmN0aW9uXG4gICAqIElmIGRpcmVjdGl2ZSBpcyBhcHBsaWVkIG9uIG5nZ3YtaW5wdXQsIG1hbnVhbGx5IHNob3cgb3IgaGlkZSBvcHRpb25zIGluIHRoZSBsaXN0LlxuICAgKiBJZiBkaXJlY3RpdmUgaXMgYXBwbGllZCBvbiBuZ2d2LWRyb3Bkb3duLCBsZXQgdGhlIGRyb3Bkb3duIGl0c2VsZiBjaG9vc2Ugd2hlbiB0byBvcGVuIG9yIGNsb3NlXG4gICAqL1xuICBwcml2YXRlIGhhbmRsZUlucHV0Q2hhbmdlcygpIHtcbiAgICB0aGlzLmlucHV0U3Vic2NyaXB0aW9uJCA9IHRoaXMuaW5wdXRWYWx1ZSRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5vbkRlc3Ryb3kkKSxcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgICAgdGFwKChpbnB1dFZhbHVlKSA9PiB0aGlzLmZpbHRlclBocmFzZUNoYW5nZS5lbWl0KGlucHV0VmFsdWUpKSxcbiAgICAgICAgdGhpcy50eXBlYWhlYWRGdW5jdGlvbiA/IHRoaXMudHlwZWFoZWFkRnVuY3Rpb24gOiAoKSA9PiBmcm9tKFtdKSxcbiAgICAgICAgd2l0aExhdGVzdEZyb20odGhpcy5pbnB1dFZhbHVlJCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChbZmlsdGVyZWRWYWx1ZXMsIGlucHV0XSkgPT5cbiAgICAgICAgdGhpcy5zZXRPcHRpb25zKGZpbHRlcmVkVmFsdWVzLCBpbnB1dCksXG4gICAgICApXG5cbiAgICAvLyBUcmlnZ2VyIHRoZSBwaXBlIHdoZW4gdGhpcyBmdW5jdGlvbiBoYXZlIGJlZW4gY2FsbGVkXG4gICAgdGhpcy5pbnB1dFZhbHVlJC5uZXh0KCcnKVxuICB9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKiBDcmVhdGVzIGEgbmdndi1pbnB1dCBpZiB0aGUgaG9zdCBpdHNlbGYgaXMgbm90IGEgdGV4dC1pbnB1dFxuICAgKiBTZXQgc3R5bGVzIHRvIG5vdCBkaXNwbGF5IHRoZSBpbnB1dCB3aGVuIGNsb3NlZFxuICAgKiBUcmlnZ2VyIGZpbHRlcmluZyB3aGVuIGNoYW5nZXMgb2NjdXIgaW4gdGhlIGZpZWxkXG4gICAqICovXG4gIHByaXZhdGUgY3JlYXRlSW5wdXQoKSB7XG4gICAgLy8gQ3JlYXRlIHRoZSBpbnB1dCBjb21wb25lbnRcbiAgICB0aGlzLmlucHV0Q29tcG9uZW50ID0gdGhpcy52aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudChcbiAgICAgIE5nZ3ZUeXBlYWhlYWRJbnB1dENvbXBvbmVudCxcbiAgICApXG4gICAgLy8gRm9yd2FyZCBuZWNlc3NhcnkgaW5mbyB0byBjb21wb25lbnRcbiAgICB0aGlzLmlucHV0Q29tcG9uZW50LnNldElucHV0KCdob3N0Q29tcG9uZW50JywgdGhpcy5ob3N0RHJvcGRvd24pXG4gICAgdGhpcy5pbnB1dENvbXBvbmVudC5zZXRJbnB1dCgnc2VsZWN0ZWRGb3JtYXR0ZXInLCB0aGlzLnNlbGVjdGVkRm9ybWF0dGVyKVxuICAgIHRoaXMuaW5wdXRDb21wb25lbnQuc2V0SW5wdXQoJ3Jlc3VsdEZvcm1hdHRlcicsIHRoaXMucmVzdWx0Rm9ybWF0dGVyKVxuICAgIC8vIExpc3RlbiB0byB2YWx1ZSBjaGFuZ2VzXG4gICAgdGhpcy5pbnB1dENvbXBvbmVudC5pbnN0YW5jZS5uZ2d2SW5wdXRcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm9uRGVzdHJveSQpKVxuICAgICAgLnN1YnNjcmliZSgoaW5wdXRWYWx1ZSkgPT4gdGhpcy5pbnB1dFZhbHVlJC5uZXh0KGlucHV0VmFsdWUpKVxuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCBDcmVhdGVzIGEgbmdndi1kcm9wZG93bi1saXN0IGlmIHRoZSBob3N0IGl0c2VsZiBpcyBhIG5nZ3YtaW5wdXQgKi9cbiAgcHJpdmF0ZSBjcmVhdGVEcm9wZG93bkxpc3QoKSB7XG4gICAgdGhpcy5kcm9wZG93bkxpc3RDb21wb25lbnQgPSB0aGlzLnZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KFxuICAgICAgTmdndlR5cGVhaGVhZERyb3Bkb3duTGlzdENvbXBvbmVudCxcbiAgICApXG4gICAgdGhpcy5kcm9wZG93bkxpc3RDb21wb25lbnQuc2V0SW5wdXQoJ2hvc3RDb21wb25lbnQnLCB0aGlzLmhvc3RJbnB1dClcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWwgU2V0cyB0aGUgb3B0aW9ucyB0aGUgdXNlciBjYW4gc2VsZWN0LlxuICAgKiBJZiB0aGUgaG9zdCBpcyBhIG5nZ3YtZHJvcGRvd24sIHV0aWxpemUgdGhlIGRyb3Bkb3duIGl0c2VsZiB0byBkaXNwbGF5IHRoZSBvcHRpb25zXG4gICAqIElmIHRoZSBob3N0IGlzIGEgbmdndi1pbnB1dCwgdXNlIHRoZSBjcmVhdGVkIG5nZ3YtZHJvcGRvd24tbGlzdCB0byBkaXNwbGF5ZSB0aGUgb3B0aW9uc1xuICAgKiBAcGFyYW0gZmlsdGVyZWRWYWx1ZXMgVGhlIG9wdGlvbnMgdG8gZGlzcGxheSBpbiB0aGUgZHJvcGRvd25cbiAgICogQHBhcmFtIGVtcHR5SW5wdXQgSWYgdGhlIGlucHV0IGlzIGVtcHR5XG4gICAqL1xuICBwcml2YXRlIHNldE9wdGlvbnMoZmlsdGVyZWRWYWx1ZXM6IFRbXSwgaW5wdXQ6IHN0cmluZykge1xuICAgIGlmICghZmlsdGVyZWRWYWx1ZXMpIHJldHVyblxuICAgIC8vIENvbmRpdGlvbmFsbHkgYWRkIGVtcHR5IG9yIG51bGxpc2ggb3B0aW9uIGlmIGl0J3MgYWxsb3dlZCwgdGhlIGlucHV0IGlzIGVtcHR5IGFuZCBkb2VzIG5vdCBhbHJlYWR5IGNvbnRhaW4gbnVsbGlzaFxuICAgIGNvbnN0IGFsbG93TnVsbGlzaCA9XG4gICAgICB0aGlzLmFsbG93VW5zZWxlY3QgJiZcbiAgICAgICFpbnB1dCAmJlxuICAgICAgIShcbiAgICAgICAgT2JqZWN0LmtleXMoZmlsdGVyZWRWYWx1ZXNbMF0gPz8ge30pLmluY2x1ZGVzKCdrZXknKSAmJlxuICAgICAgICBmaWx0ZXJlZFZhbHVlc1swXT8ua2V5ID09IG51bGxcbiAgICAgIClcbiAgICBpZiAoZmlsdGVyZWRWYWx1ZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICBmaWx0ZXJlZFZhbHVlcyA9IFt0aGlzLmVtcHR5T3B0aW9uXVxuICAgIH0gZWxzZSBpZiAoYWxsb3dOdWxsaXNoKSB7XG4gICAgICBmaWx0ZXJlZFZhbHVlcyA9IFt0aGlzLmRlZmF1bHROdWxsaXNoT3B0aW9uXS5jb25jYXQoZmlsdGVyZWRWYWx1ZXMpXG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaG9zdElzRHJvcGRvd24pIHtcbiAgICAgIC8vIEFkZCBudWxsaXNoIG9wdGlvbiB3aGVuIG5vIGlucHV0IGlzIHdyaXR0ZW4gKG9yIHdoZW4gZHJvcGRvd24gaXMgZXBhbmRlZCBhbmQgaGFzIGEgc2VsZWN0aW9uKVxuICAgICAgdGhpcy5ob3N0RHJvcGRvd24uYWxsb3dDb250cm9sTnVsbGlzaE9wdGlvbiA9IGZhbHNlXG4gICAgICB0aGlzLmhvc3REcm9wZG93bi5vcHRpb25zID0gdGhpcy5mb3JtYXRPcHRpb25zKGZpbHRlcmVkVmFsdWVzKVxuICAgICAgdGhpcy5ob3N0RHJvcGRvd24udGV4dFRvSGlnaGxpZ2h0ID0gYCR7aW5wdXQgfHwgJyd9YFxuICAgICAgdGhpcy5ob3N0RHJvcGRvd24ub25seUhhbmRsZURpc3RpbmN0Q2hhbmdlcyA9IGZhbHNlXG4gICAgICB0aGlzLmhvc3REcm9wZG93bi5kZXRlY3RDaGFuZ2VzKClcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGlmICghdGhpcy5ob3N0SXNEcm9wZG93bikge1xuICAgICAgdGhpcy5kcm9wZG93bkxpc3RDb21wb25lbnQuc2V0SW5wdXQoXG4gICAgICAgICdvcHRpb25zJyxcbiAgICAgICAgdGhpcy5mb3JtYXRPcHRpb25zKGZpbHRlcmVkVmFsdWVzKSxcbiAgICAgIClcbiAgICAgIHRoaXMuZHJvcGRvd25MaXN0Q29tcG9uZW50LnNldElucHV0KCd0ZXh0VG9IaWdobGlnaHQnLCBgJHtpbnB1dCB8fCAnJ31gKVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWwgRm9ybWF0cyB0aGUgYXZhaWxhYmxlIG9wdGlvbnMgdG8gZGlzcGxheSBpbiB0aGUgZHJvcGRvd24gbGlzdFxuICAgKiBAcGFyYW0gb3B0aW9ucyBUaGUgc2VsZWN0ZWQgdmFsdWVcbiAgICogQHJldHVybnMgVGhlIGZvcm1hdHRlZCB2YWx1ZVxuICAgKi9cbiAgcHJpdmF0ZSBmb3JtYXRPcHRpb25zKG9wdGlvbnM6IFRbXSk6IE9wdGlvbkJhc2U8YW55PltdIHtcbiAgICBpZiAoIW9wdGlvbnMpIHJldHVybiBbXVxuICAgIGlmICghdGhpcy5yZXN1bHRGb3JtYXR0ZXIpIHJldHVybiBvcHRpb25zXG4gICAgcmV0dXJuIG9wdGlvbnMubWFwKCh2YWx1ZSkgPT5cbiAgICAgIHZhbHVlPy5sYWJlbCA/IHRoaXMucmVzdWx0Rm9ybWF0dGVyPy4odmFsdWUpIDogdmFsdWUsXG4gICAgKVxuICB9XG59XG4iXX0=
@@ -11,6 +11,18 @@ import * as i4 from "@sebgroup/green-angular/src/v-angular/character-countdown";
11
11
  import * as i5 from "@sebgroup/green-angular/src/lib/shared";
12
12
  /** Textarea fields allow users to add and edit longer or multiple line text. */
13
13
  export class NggvTextareaComponent extends NggvBaseControlValueAccessorComponent {
14
+ /**
15
+ * Sets the small class based on the size input.
16
+ */
17
+ get isSmall() {
18
+ return this.size === 'small';
19
+ }
20
+ /**
21
+ * Sets the large class based on the size input.
22
+ */
23
+ get isLarge() {
24
+ return this.size === 'large';
25
+ }
14
26
  /** Minimum length (number of characters) of value. */
15
27
  set minLength(length) {
16
28
  this._minlength = length;
@@ -58,6 +70,10 @@ export class NggvTextareaComponent extends NggvBaseControlValueAccessorComponent
58
70
  this.readonly = false;
59
71
  this._maxlength = Number.MAX_SAFE_INTEGER;
60
72
  this._minlength = 0;
73
+ /**
74
+ * Sets the displayed size of the textarea.
75
+ */
76
+ this.size = 'large';
61
77
  }
62
78
  /** @internal */
63
79
  onInput(event) {
@@ -68,11 +84,11 @@ export class NggvTextareaComponent extends NggvBaseControlValueAccessorComponent
68
84
  this.onChange(this.state);
69
85
  }
70
86
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NggvTextareaComponent, deps: [{ token: i1.NgControl, optional: true, self: true }, { token: TRANSLOCO_SCOPE, optional: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
71
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: NggvTextareaComponent, selector: "nggv-textarea", inputs: { thook: "thook", placeholder: "placeholder", readonly: "readonly", minLength: "minLength", minlength: "minlength", maxLength: "maxLength", maxlength: "maxlength", rows: "rows" }, host: { properties: { "attr.data-thook": "this.thook" } }, usesInheritance: true, ngImport: i0, template: "<!-- LABEL -->\n<label\n [id]=\"id + '-label'\"\n class=\"gds-field-label hide-if-empty\"\n [attr.for]=\"id + '-textarea'\"\n *transloco=\"let t; read: scope\"\n>\n <ng-template\n *ngTemplateOutlet=\"labelContentTpl || basicLabelContentTpl\"\n ></ng-template>\n <ng-template #basicLabelContentTpl>\n <!-- to trigger css:empty if no label was added -->\n <ng-container *ngIf=\"label\">\n {{ label }}\n <span\n *ngIf=\"optional === true || (required !== true && optional !== false)\"\n class=\"gds-field-label--optional\"\n >\n ({{ t('label.optional') }})\n </span>\n </ng-container>\n </ng-template>\n</label>\n\n<!-- DESCRIPTION -->\n<div class=\"form-info description hide-if-empty\" *ngIf=\"description\">\n {{ description }}\n</div>\n\n<!-- LOCKED INPUT -->\n<ng-container *ngIf=\"locked\">\n <ng-template\n *ngTemplateOutlet=\"\n lockedTpl || defaultLockedTpl;\n context: { $implicit: state }\n \"\n ></ng-template>\n <ng-template #defaultLockedTpl>\n <div\n [id]=\"id + '-textarea'\"\n class=\"nggv-field--locked\"\n [attr.name]=\"name\"\n [attr.value]=\"state\"\n [attr.role]=\"role\"\n >\n <span *ngIf=\"!state\" class=\"unset-state\">-</span>\n <ng-container *ngIf=\"state\">\n {{ state }}\n </ng-container>\n </div>\n </ng-template>\n</ng-container>\n\n<!-- INPUT FIELD -->\n<ng-container *ngIf=\"!locked\">\n <textarea\n #input\n [id]=\"id + '-textarea'\"\n class=\"gds-field\"\n [ngClass]=\"{ 'no-resize': !!rows }\"\n [class.nggv-field--error]=\"invalid\"\n [attr.name]=\"name\"\n [attr.required]=\"required\"\n [disabled]=\"disabled\"\n [autofocus]=\"autofocus\"\n [readOnly]=\"readonly\"\n [attr.maxlength]=\"maxlength\"\n [attr.minlength]=\"minlength\"\n [attr.role]=\"role\"\n [attr.rows]=\"rows\"\n [attr.placeholder]=\"placeholder\"\n [attr.aria-label]=\"description\"\n [value]=\"state\"\n title=\"\"\n (input)=\"onInput($event)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"\n ></textarea>\n\n <!-- ERRORS -->\n <div\n class=\"gds-form-item__footer error-wrapper\"\n *transloco=\"let t; read: scope\"\n >\n <span\n class=\"form-info form-info--error\"\n [attr.for]=\"id + '-textarea'\"\n *ngIf=\"invalid && (error || ngControl?.invalid)\"\n >\n <span class=\"error-icon\">\n <gds-icon-triangle-exclamation\n width=\"16\"\n height=\"16\"\n solid=\"true\"\n *nggCoreElement\n ></gds-icon-triangle-exclamation>\n </span>\n\n <span\n *ngIf=\"error; else errorsRef\"\n [attr.data-thook]=\"thook + '-errorlabel'\"\n >{{ error }}</span\n >\n <ng-template #errorsRef>\n <span\n *ngIf=\"firstError as error\"\n [attr.data-thook]=\"thook + '-errorlabel'\"\n >\n {{ t('error.field' + error?.code, error?.params) }}\n </span>\n </ng-template>\n </span>\n\n <ng-container *ngIf=\"hasMaxLength\">\n <span\n *nggvCharacterCountdown=\"\n maxlength;\n currentLength: (inputRef?.nativeElement?.value ?? '').length;\n charactersLeft as charactersLeft\n \"\n class=\"form-info form-info--countdown\"\n style=\"text-align: right\"\n >\n {{ charactersLeft }} {{ t('label.maxlength') }}\n </span>\n </ng-container>\n </div>\n\n <!-- CHILDREN -->\n <ng-content></ng-content>\n</ng-container>\n", styles: [":host{--sg-text-primary: #333;--sg-form-control-bg: #fff;--gds-ref-pallet-base100: hsl(0, 0%, 97%);--sg-border-radius: 4px;--sg-border-width: 1px;--sg-border-color: #868686}:host textarea{padding:.75rem 1rem;border-radius:var(--sg-border-radius);border:solid var(--sg-border-width) var(--sg-border-color);--border-color: var(--sg-border-color);align-items:center;background-color:var(--sg-form-control-bg);color:var(--text-primary-color);display:flex;justify-content:center;resize:vertical}:host textarea:focus:not(:focus-visible){box-shadow:none;outline:0}:host textarea:focus,:host textarea:focus-visible{outline-color:var(--gds-sys-color-focus-outline);outline-style:solid;outline-width:.125rem;outline-offset:.125rem}@media screen and (-ms-high-contrast: active){:host textarea{border:2px solid currentcolor}}:host textarea:hover{background-color:var(--gds-ref-pallet-base100)}:host textarea:disabled,:host textarea.disabled,:host textarea[aria-disabled=true]{background:var(--sg-form-control-bg-disabled)!important;color:var(--text-disabled-color)!important;border-color:var(--border-disabled-color)!important;cursor:not-allowed}:host textarea:disabled::placeholder,:host textarea.disabled::placeholder,:host textarea[aria-disabled=true]::placeholder{color:var(--text-disabled-color)}:host label:not(.gds-field-notice):is(label){margin-bottom:0}:host label:not(.gds-field-notice).form-control{width:fit-content}@supports (-moz-appearance: none){:host label:not(.gds-field-notice).form-control:focus:not(:focus-visible){box-shadow:none;outline:0}:host label:not(.gds-field-notice).form-control:focus,:host label:not(.gds-field-notice).form-control:focus-within{outline-color:var(--gds-sys-color-focus-outline);outline-style:solid;outline-width:.125rem;outline-offset:.125rem}}:host label:not(.gds-field-notice):not(.form-control){font-weight:500;width:100%;line-height:1.25rem}:host label:not(.gds-field-notice)+input,:host label:not(.gds-field-notice)+textarea,fieldset :host label:not(.gds-field-notice)+div,:host label:not(.gds-field-notice)+button,:host label:not(.gds-field-notice)+.group-stepper,:host label:not(.gds-field-notice)+.stepper-wrapper,:host label:not(.gds-field-notice)+.group{margin-top:.5rem}:host label:not(.gds-field-notice)+.form-info{margin-bottom:.5rem}:host label+.gds-field,:host label+.nggv-field--locked{margin-top:.5rem}:host .hide-if-empty:empty{display:none}:host .unset-state{padding-left:.5rem}:host .gds-field-label--optional{font-weight:400}:host textarea{width:100%;max-width:100%;box-sizing:border-box;font-family:inherit;font-size:1rem}:host textarea.nggv-field--error{border-bottom:.125rem solid #9f000a!important}:host .description{margin-bottom:.5rem}:host .error-wrapper{margin-top:.5rem;display:flex}:host .form-info{font-size:.875rem;line-height:1.25rem;width:100%}:host .gds-form-item__footer .form-info{font-weight:500}:host .gds-form-item__footer .form-info--error{display:flex;align-items:flex-start;gap:.5em;color:#9f000a}:host .gds-form-item__footer .form-info--error .error-icon{margin-top:.128rem;align-items:center}:host .gds-form-item__footer>.form-info--countdown{font-weight:400}:host .no-resize{resize:none}:host .no-resize::-webkit-scrollbar{-webkit-appearance:none}:host .no-resize::-webkit-scrollbar-thumb{border-radius:.5rem}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }, { kind: "directive", type: i4.CharacterCountdownDirective, selector: "[nggvCharacterCountdown]", inputs: ["nggvCharacterCountdown", "nggvCharacterCountdownCurrentLength"] }, { kind: "directive", type: i5.NggCoreElementDirective, selector: "[nggCoreElement]" }] }); }
87
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: NggvTextareaComponent, selector: "nggv-textarea", inputs: { thook: "thook", placeholder: "placeholder", readonly: "readonly", minLength: "minLength", minlength: "minlength", maxLength: "maxLength", maxlength: "maxlength", rows: "rows", size: "size" }, host: { properties: { "attr.data-thook": "this.thook", "class.small": "this.isSmall", "class.large": "this.isLarge" } }, usesInheritance: true, ngImport: i0, template: "<!-- LABEL -->\n<label\n [id]=\"id + '-label'\"\n class=\"gds-field-label hide-if-empty\"\n [attr.for]=\"id + '-textarea'\"\n *transloco=\"let t; read: scope\"\n>\n <ng-template\n *ngTemplateOutlet=\"labelContentTpl || basicLabelContentTpl\"\n ></ng-template>\n <ng-template #basicLabelContentTpl>\n <!-- to trigger css:empty if no label was added -->\n <ng-container *ngIf=\"label\">\n {{ label }}\n <span\n *ngIf=\"optional === true || (required !== true && optional !== false)\"\n class=\"gds-field-label--optional\"\n >\n ({{ t('label.optional') }})\n </span>\n </ng-container>\n </ng-template>\n</label>\n\n<!-- DESCRIPTION -->\n<div class=\"form-info description hide-if-empty\" *ngIf=\"description\">\n {{ description }}\n</div>\n\n<!-- LOCKED INPUT -->\n<ng-container *ngIf=\"locked\">\n <ng-template\n *ngTemplateOutlet=\"\n lockedTpl || defaultLockedTpl;\n context: { $implicit: state }\n \"\n ></ng-template>\n <ng-template #defaultLockedTpl>\n <div\n [id]=\"id + '-textarea'\"\n class=\"nggv-field--locked\"\n [attr.name]=\"name\"\n [attr.value]=\"state\"\n [attr.role]=\"role\"\n >\n <span *ngIf=\"!state\" class=\"unset-state\">-</span>\n <ng-container *ngIf=\"state\">\n {{ state }}\n </ng-container>\n </div>\n </ng-template>\n</ng-container>\n\n<!-- INPUT FIELD -->\n<ng-container *ngIf=\"!locked\">\n <textarea\n #input\n [id]=\"id + '-textarea'\"\n class=\"gds-field\"\n [ngClass]=\"{ 'no-resize': !!rows }\"\n [class.nggv-field--error]=\"invalid\"\n [attr.name]=\"name\"\n [attr.required]=\"required\"\n [disabled]=\"disabled\"\n [autofocus]=\"autofocus\"\n [readOnly]=\"readonly\"\n [attr.maxlength]=\"maxlength\"\n [attr.minlength]=\"minlength\"\n [attr.role]=\"role\"\n [attr.rows]=\"rows\"\n [attr.placeholder]=\"placeholder\"\n [attr.aria-label]=\"description\"\n [value]=\"state\"\n title=\"\"\n (input)=\"onInput($event)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"\n ></textarea>\n\n <!-- ERRORS -->\n <div\n class=\"gds-form-item__footer error-wrapper\"\n *transloco=\"let t; read: scope\"\n >\n <span\n class=\"form-info form-info--error\"\n [attr.for]=\"id + '-textarea'\"\n *ngIf=\"invalid && (error || ngControl?.invalid)\"\n >\n <span class=\"error-icon\">\n <gds-icon-triangle-exclamation\n width=\"16\"\n height=\"16\"\n solid=\"true\"\n *nggCoreElement\n ></gds-icon-triangle-exclamation>\n </span>\n\n <span\n *ngIf=\"error; else errorsRef\"\n [attr.data-thook]=\"thook + '-errorlabel'\"\n >{{ error }}</span\n >\n <ng-template #errorsRef>\n <span\n *ngIf=\"firstError as error\"\n [attr.data-thook]=\"thook + '-errorlabel'\"\n >\n {{ t('error.field' + error?.code, error?.params) }}\n </span>\n </ng-template>\n </span>\n\n <ng-container *ngIf=\"hasMaxLength\">\n <span\n *nggvCharacterCountdown=\"\n maxlength;\n currentLength: (inputRef?.nativeElement?.value ?? '').length;\n charactersLeft as charactersLeft\n \"\n class=\"form-info form-info--countdown\"\n style=\"text-align: right\"\n >\n {{ charactersLeft }} {{ t('label.maxlength') }}\n </span>\n </ng-container>\n </div>\n\n <!-- CHILDREN -->\n <ng-content></ng-content>\n</ng-container>\n", styles: [":host{--sg-text-primary: #333;--sg-form-control-bg: #fff;--gds-ref-pallet-base100: hsl(0, 0%, 97%);--sg-border-radius: 4px;--sg-border-width: 1px;--sg-border-color: #868686}:host textarea{padding:.75rem 1rem;border-radius:var(--sg-border-radius);border:solid var(--sg-border-width) var(--sg-border-color);--border-color: var(--sg-border-color);align-items:center;background-color:var(--sg-form-control-bg);color:var(--text-primary-color);display:flex;justify-content:center;resize:vertical}:host textarea:focus:not(:focus-visible){box-shadow:none;outline:0}:host textarea:focus,:host textarea:focus-visible{outline-color:var(--gds-sys-color-focus-outline);outline-style:solid;outline-width:.125rem;outline-offset:.125rem}@media screen and (-ms-high-contrast: active){:host textarea{border:2px solid currentcolor}}:host textarea:hover{background-color:var(--gds-ref-pallet-base100)}:host textarea:disabled,:host textarea.disabled,:host textarea[aria-disabled=true]{background:var(--sg-form-control-bg-disabled)!important;color:var(--text-disabled-color)!important;border-color:var(--border-disabled-color)!important;cursor:not-allowed}:host textarea:disabled::placeholder,:host textarea.disabled::placeholder,:host textarea[aria-disabled=true]::placeholder{color:var(--text-disabled-color)}:host label:not(.gds-field-notice):is(label){margin-bottom:0}:host label:not(.gds-field-notice).form-control{width:fit-content}@supports (-moz-appearance: none){:host label:not(.gds-field-notice).form-control:focus:not(:focus-visible){box-shadow:none;outline:0}:host label:not(.gds-field-notice).form-control:focus,:host label:not(.gds-field-notice).form-control:focus-within{outline-color:var(--gds-sys-color-focus-outline);outline-style:solid;outline-width:.125rem;outline-offset:.125rem}}:host label:not(.gds-field-notice):not(.form-control){font-weight:500;width:100%;line-height:1.25rem}:host label:not(.gds-field-notice)+input,:host label:not(.gds-field-notice)+textarea,fieldset :host label:not(.gds-field-notice)+div,:host label:not(.gds-field-notice)+button,:host label:not(.gds-field-notice)+.group-stepper,:host label:not(.gds-field-notice)+.stepper-wrapper,:host label:not(.gds-field-notice)+.group{margin-top:.5rem}:host label:not(.gds-field-notice)+.form-info{margin-bottom:.5rem}:host label+.gds-field,:host label+.nggv-field--locked{margin-top:.5rem}:host .hide-if-empty:empty{display:none}:host .unset-state{padding-left:.5rem}:host .gds-field-label--optional{font-weight:400}:host textarea{width:100%;max-width:100%;box-sizing:border-box;font-family:inherit;font-size:1rem}:host textarea.nggv-field--error{border-bottom:.125rem solid #9f000a!important}:host .description{margin-bottom:.5rem}:host .error-wrapper{margin-top:.5rem;display:flex}:host .form-info{font-size:.875rem;line-height:1.25rem;width:100%}:host .gds-form-item__footer .form-info{font-weight:500}:host .gds-form-item__footer .form-info--error{display:flex;align-items:flex-start;gap:.5em;color:#9f000a}:host .gds-form-item__footer .form-info--error .error-icon{margin-top:.128rem;align-items:center}:host .gds-form-item__footer>.form-info--countdown{font-weight:400}:host .no-resize{resize:none}:host .no-resize::-webkit-scrollbar{-webkit-appearance:none}:host .no-resize::-webkit-scrollbar-thumb{border-radius:.5rem}:host.small label:not(.gds-field-notice):not(.form-control){font-size:.875rem;line-height:1rem}:host.small label+textarea{margin-top:.25rem}:host.small textarea{padding:.38rem .5rem;font-size:.875rem}:host.small .error-wrapper,:host.small .form-info{margin-top:.25rem;font-size:.875rem;line-height:1rem}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }, { kind: "directive", type: i4.CharacterCountdownDirective, selector: "[nggvCharacterCountdown]", inputs: ["nggvCharacterCountdown", "nggvCharacterCountdownCurrentLength"] }, { kind: "directive", type: i5.NggCoreElementDirective, selector: "[nggCoreElement]" }] }); }
72
88
  }
73
89
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NggvTextareaComponent, decorators: [{
74
90
  type: Component,
75
- args: [{ selector: 'nggv-textarea', template: "<!-- LABEL -->\n<label\n [id]=\"id + '-label'\"\n class=\"gds-field-label hide-if-empty\"\n [attr.for]=\"id + '-textarea'\"\n *transloco=\"let t; read: scope\"\n>\n <ng-template\n *ngTemplateOutlet=\"labelContentTpl || basicLabelContentTpl\"\n ></ng-template>\n <ng-template #basicLabelContentTpl>\n <!-- to trigger css:empty if no label was added -->\n <ng-container *ngIf=\"label\">\n {{ label }}\n <span\n *ngIf=\"optional === true || (required !== true && optional !== false)\"\n class=\"gds-field-label--optional\"\n >\n ({{ t('label.optional') }})\n </span>\n </ng-container>\n </ng-template>\n</label>\n\n<!-- DESCRIPTION -->\n<div class=\"form-info description hide-if-empty\" *ngIf=\"description\">\n {{ description }}\n</div>\n\n<!-- LOCKED INPUT -->\n<ng-container *ngIf=\"locked\">\n <ng-template\n *ngTemplateOutlet=\"\n lockedTpl || defaultLockedTpl;\n context: { $implicit: state }\n \"\n ></ng-template>\n <ng-template #defaultLockedTpl>\n <div\n [id]=\"id + '-textarea'\"\n class=\"nggv-field--locked\"\n [attr.name]=\"name\"\n [attr.value]=\"state\"\n [attr.role]=\"role\"\n >\n <span *ngIf=\"!state\" class=\"unset-state\">-</span>\n <ng-container *ngIf=\"state\">\n {{ state }}\n </ng-container>\n </div>\n </ng-template>\n</ng-container>\n\n<!-- INPUT FIELD -->\n<ng-container *ngIf=\"!locked\">\n <textarea\n #input\n [id]=\"id + '-textarea'\"\n class=\"gds-field\"\n [ngClass]=\"{ 'no-resize': !!rows }\"\n [class.nggv-field--error]=\"invalid\"\n [attr.name]=\"name\"\n [attr.required]=\"required\"\n [disabled]=\"disabled\"\n [autofocus]=\"autofocus\"\n [readOnly]=\"readonly\"\n [attr.maxlength]=\"maxlength\"\n [attr.minlength]=\"minlength\"\n [attr.role]=\"role\"\n [attr.rows]=\"rows\"\n [attr.placeholder]=\"placeholder\"\n [attr.aria-label]=\"description\"\n [value]=\"state\"\n title=\"\"\n (input)=\"onInput($event)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"\n ></textarea>\n\n <!-- ERRORS -->\n <div\n class=\"gds-form-item__footer error-wrapper\"\n *transloco=\"let t; read: scope\"\n >\n <span\n class=\"form-info form-info--error\"\n [attr.for]=\"id + '-textarea'\"\n *ngIf=\"invalid && (error || ngControl?.invalid)\"\n >\n <span class=\"error-icon\">\n <gds-icon-triangle-exclamation\n width=\"16\"\n height=\"16\"\n solid=\"true\"\n *nggCoreElement\n ></gds-icon-triangle-exclamation>\n </span>\n\n <span\n *ngIf=\"error; else errorsRef\"\n [attr.data-thook]=\"thook + '-errorlabel'\"\n >{{ error }}</span\n >\n <ng-template #errorsRef>\n <span\n *ngIf=\"firstError as error\"\n [attr.data-thook]=\"thook + '-errorlabel'\"\n >\n {{ t('error.field' + error?.code, error?.params) }}\n </span>\n </ng-template>\n </span>\n\n <ng-container *ngIf=\"hasMaxLength\">\n <span\n *nggvCharacterCountdown=\"\n maxlength;\n currentLength: (inputRef?.nativeElement?.value ?? '').length;\n charactersLeft as charactersLeft\n \"\n class=\"form-info form-info--countdown\"\n style=\"text-align: right\"\n >\n {{ charactersLeft }} {{ t('label.maxlength') }}\n </span>\n </ng-container>\n </div>\n\n <!-- CHILDREN -->\n <ng-content></ng-content>\n</ng-container>\n", styles: [":host{--sg-text-primary: #333;--sg-form-control-bg: #fff;--gds-ref-pallet-base100: hsl(0, 0%, 97%);--sg-border-radius: 4px;--sg-border-width: 1px;--sg-border-color: #868686}:host textarea{padding:.75rem 1rem;border-radius:var(--sg-border-radius);border:solid var(--sg-border-width) var(--sg-border-color);--border-color: var(--sg-border-color);align-items:center;background-color:var(--sg-form-control-bg);color:var(--text-primary-color);display:flex;justify-content:center;resize:vertical}:host textarea:focus:not(:focus-visible){box-shadow:none;outline:0}:host textarea:focus,:host textarea:focus-visible{outline-color:var(--gds-sys-color-focus-outline);outline-style:solid;outline-width:.125rem;outline-offset:.125rem}@media screen and (-ms-high-contrast: active){:host textarea{border:2px solid currentcolor}}:host textarea:hover{background-color:var(--gds-ref-pallet-base100)}:host textarea:disabled,:host textarea.disabled,:host textarea[aria-disabled=true]{background:var(--sg-form-control-bg-disabled)!important;color:var(--text-disabled-color)!important;border-color:var(--border-disabled-color)!important;cursor:not-allowed}:host textarea:disabled::placeholder,:host textarea.disabled::placeholder,:host textarea[aria-disabled=true]::placeholder{color:var(--text-disabled-color)}:host label:not(.gds-field-notice):is(label){margin-bottom:0}:host label:not(.gds-field-notice).form-control{width:fit-content}@supports (-moz-appearance: none){:host label:not(.gds-field-notice).form-control:focus:not(:focus-visible){box-shadow:none;outline:0}:host label:not(.gds-field-notice).form-control:focus,:host label:not(.gds-field-notice).form-control:focus-within{outline-color:var(--gds-sys-color-focus-outline);outline-style:solid;outline-width:.125rem;outline-offset:.125rem}}:host label:not(.gds-field-notice):not(.form-control){font-weight:500;width:100%;line-height:1.25rem}:host label:not(.gds-field-notice)+input,:host label:not(.gds-field-notice)+textarea,fieldset :host label:not(.gds-field-notice)+div,:host label:not(.gds-field-notice)+button,:host label:not(.gds-field-notice)+.group-stepper,:host label:not(.gds-field-notice)+.stepper-wrapper,:host label:not(.gds-field-notice)+.group{margin-top:.5rem}:host label:not(.gds-field-notice)+.form-info{margin-bottom:.5rem}:host label+.gds-field,:host label+.nggv-field--locked{margin-top:.5rem}:host .hide-if-empty:empty{display:none}:host .unset-state{padding-left:.5rem}:host .gds-field-label--optional{font-weight:400}:host textarea{width:100%;max-width:100%;box-sizing:border-box;font-family:inherit;font-size:1rem}:host textarea.nggv-field--error{border-bottom:.125rem solid #9f000a!important}:host .description{margin-bottom:.5rem}:host .error-wrapper{margin-top:.5rem;display:flex}:host .form-info{font-size:.875rem;line-height:1.25rem;width:100%}:host .gds-form-item__footer .form-info{font-weight:500}:host .gds-form-item__footer .form-info--error{display:flex;align-items:flex-start;gap:.5em;color:#9f000a}:host .gds-form-item__footer .form-info--error .error-icon{margin-top:.128rem;align-items:center}:host .gds-form-item__footer>.form-info--countdown{font-weight:400}:host .no-resize{resize:none}:host .no-resize::-webkit-scrollbar{-webkit-appearance:none}:host .no-resize::-webkit-scrollbar-thumb{border-radius:.5rem}\n"] }]
91
+ args: [{ selector: 'nggv-textarea', template: "<!-- LABEL -->\n<label\n [id]=\"id + '-label'\"\n class=\"gds-field-label hide-if-empty\"\n [attr.for]=\"id + '-textarea'\"\n *transloco=\"let t; read: scope\"\n>\n <ng-template\n *ngTemplateOutlet=\"labelContentTpl || basicLabelContentTpl\"\n ></ng-template>\n <ng-template #basicLabelContentTpl>\n <!-- to trigger css:empty if no label was added -->\n <ng-container *ngIf=\"label\">\n {{ label }}\n <span\n *ngIf=\"optional === true || (required !== true && optional !== false)\"\n class=\"gds-field-label--optional\"\n >\n ({{ t('label.optional') }})\n </span>\n </ng-container>\n </ng-template>\n</label>\n\n<!-- DESCRIPTION -->\n<div class=\"form-info description hide-if-empty\" *ngIf=\"description\">\n {{ description }}\n</div>\n\n<!-- LOCKED INPUT -->\n<ng-container *ngIf=\"locked\">\n <ng-template\n *ngTemplateOutlet=\"\n lockedTpl || defaultLockedTpl;\n context: { $implicit: state }\n \"\n ></ng-template>\n <ng-template #defaultLockedTpl>\n <div\n [id]=\"id + '-textarea'\"\n class=\"nggv-field--locked\"\n [attr.name]=\"name\"\n [attr.value]=\"state\"\n [attr.role]=\"role\"\n >\n <span *ngIf=\"!state\" class=\"unset-state\">-</span>\n <ng-container *ngIf=\"state\">\n {{ state }}\n </ng-container>\n </div>\n </ng-template>\n</ng-container>\n\n<!-- INPUT FIELD -->\n<ng-container *ngIf=\"!locked\">\n <textarea\n #input\n [id]=\"id + '-textarea'\"\n class=\"gds-field\"\n [ngClass]=\"{ 'no-resize': !!rows }\"\n [class.nggv-field--error]=\"invalid\"\n [attr.name]=\"name\"\n [attr.required]=\"required\"\n [disabled]=\"disabled\"\n [autofocus]=\"autofocus\"\n [readOnly]=\"readonly\"\n [attr.maxlength]=\"maxlength\"\n [attr.minlength]=\"minlength\"\n [attr.role]=\"role\"\n [attr.rows]=\"rows\"\n [attr.placeholder]=\"placeholder\"\n [attr.aria-label]=\"description\"\n [value]=\"state\"\n title=\"\"\n (input)=\"onInput($event)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"\n ></textarea>\n\n <!-- ERRORS -->\n <div\n class=\"gds-form-item__footer error-wrapper\"\n *transloco=\"let t; read: scope\"\n >\n <span\n class=\"form-info form-info--error\"\n [attr.for]=\"id + '-textarea'\"\n *ngIf=\"invalid && (error || ngControl?.invalid)\"\n >\n <span class=\"error-icon\">\n <gds-icon-triangle-exclamation\n width=\"16\"\n height=\"16\"\n solid=\"true\"\n *nggCoreElement\n ></gds-icon-triangle-exclamation>\n </span>\n\n <span\n *ngIf=\"error; else errorsRef\"\n [attr.data-thook]=\"thook + '-errorlabel'\"\n >{{ error }}</span\n >\n <ng-template #errorsRef>\n <span\n *ngIf=\"firstError as error\"\n [attr.data-thook]=\"thook + '-errorlabel'\"\n >\n {{ t('error.field' + error?.code, error?.params) }}\n </span>\n </ng-template>\n </span>\n\n <ng-container *ngIf=\"hasMaxLength\">\n <span\n *nggvCharacterCountdown=\"\n maxlength;\n currentLength: (inputRef?.nativeElement?.value ?? '').length;\n charactersLeft as charactersLeft\n \"\n class=\"form-info form-info--countdown\"\n style=\"text-align: right\"\n >\n {{ charactersLeft }} {{ t('label.maxlength') }}\n </span>\n </ng-container>\n </div>\n\n <!-- CHILDREN -->\n <ng-content></ng-content>\n</ng-container>\n", styles: [":host{--sg-text-primary: #333;--sg-form-control-bg: #fff;--gds-ref-pallet-base100: hsl(0, 0%, 97%);--sg-border-radius: 4px;--sg-border-width: 1px;--sg-border-color: #868686}:host textarea{padding:.75rem 1rem;border-radius:var(--sg-border-radius);border:solid var(--sg-border-width) var(--sg-border-color);--border-color: var(--sg-border-color);align-items:center;background-color:var(--sg-form-control-bg);color:var(--text-primary-color);display:flex;justify-content:center;resize:vertical}:host textarea:focus:not(:focus-visible){box-shadow:none;outline:0}:host textarea:focus,:host textarea:focus-visible{outline-color:var(--gds-sys-color-focus-outline);outline-style:solid;outline-width:.125rem;outline-offset:.125rem}@media screen and (-ms-high-contrast: active){:host textarea{border:2px solid currentcolor}}:host textarea:hover{background-color:var(--gds-ref-pallet-base100)}:host textarea:disabled,:host textarea.disabled,:host textarea[aria-disabled=true]{background:var(--sg-form-control-bg-disabled)!important;color:var(--text-disabled-color)!important;border-color:var(--border-disabled-color)!important;cursor:not-allowed}:host textarea:disabled::placeholder,:host textarea.disabled::placeholder,:host textarea[aria-disabled=true]::placeholder{color:var(--text-disabled-color)}:host label:not(.gds-field-notice):is(label){margin-bottom:0}:host label:not(.gds-field-notice).form-control{width:fit-content}@supports (-moz-appearance: none){:host label:not(.gds-field-notice).form-control:focus:not(:focus-visible){box-shadow:none;outline:0}:host label:not(.gds-field-notice).form-control:focus,:host label:not(.gds-field-notice).form-control:focus-within{outline-color:var(--gds-sys-color-focus-outline);outline-style:solid;outline-width:.125rem;outline-offset:.125rem}}:host label:not(.gds-field-notice):not(.form-control){font-weight:500;width:100%;line-height:1.25rem}:host label:not(.gds-field-notice)+input,:host label:not(.gds-field-notice)+textarea,fieldset :host label:not(.gds-field-notice)+div,:host label:not(.gds-field-notice)+button,:host label:not(.gds-field-notice)+.group-stepper,:host label:not(.gds-field-notice)+.stepper-wrapper,:host label:not(.gds-field-notice)+.group{margin-top:.5rem}:host label:not(.gds-field-notice)+.form-info{margin-bottom:.5rem}:host label+.gds-field,:host label+.nggv-field--locked{margin-top:.5rem}:host .hide-if-empty:empty{display:none}:host .unset-state{padding-left:.5rem}:host .gds-field-label--optional{font-weight:400}:host textarea{width:100%;max-width:100%;box-sizing:border-box;font-family:inherit;font-size:1rem}:host textarea.nggv-field--error{border-bottom:.125rem solid #9f000a!important}:host .description{margin-bottom:.5rem}:host .error-wrapper{margin-top:.5rem;display:flex}:host .form-info{font-size:.875rem;line-height:1.25rem;width:100%}:host .gds-form-item__footer .form-info{font-weight:500}:host .gds-form-item__footer .form-info--error{display:flex;align-items:flex-start;gap:.5em;color:#9f000a}:host .gds-form-item__footer .form-info--error .error-icon{margin-top:.128rem;align-items:center}:host .gds-form-item__footer>.form-info--countdown{font-weight:400}:host .no-resize{resize:none}:host .no-resize::-webkit-scrollbar{-webkit-appearance:none}:host .no-resize::-webkit-scrollbar-thumb{border-radius:.5rem}:host.small label:not(.gds-field-notice):not(.form-control){font-size:.875rem;line-height:1rem}:host.small label+textarea{margin-top:.25rem}:host.small textarea{padding:.38rem .5rem;font-size:.875rem}:host.small .error-wrapper,:host.small .form-info{margin-top:.25rem;font-size:.875rem;line-height:1rem}\n"] }]
76
92
  }], ctorParameters: () => [{ type: i1.NgControl, decorators: [{
77
93
  type: Self
78
94
  }, {
@@ -87,6 +103,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
87
103
  args: ['attr.data-thook']
88
104
  }, {
89
105
  type: Input
106
+ }], isSmall: [{
107
+ type: HostBinding,
108
+ args: ['class.small']
109
+ }], isLarge: [{
110
+ type: HostBinding,
111
+ args: ['class.large']
90
112
  }], placeholder: [{
91
113
  type: Input
92
114
  }], readonly: [{
@@ -101,5 +123,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
101
123
  type: Input
102
124
  }], rows: [{
103
125
  type: Input
126
+ }], size: [{
127
+ type: Input
104
128
  }] } });
105
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dGFyZWEuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy92LWFuZ3VsYXIvdGV4dGFyZWEvdGV4dGFyZWEuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy92LWFuZ3VsYXIvdGV4dGFyZWEvdGV4dGFyZWEuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxvRUFBb0UsQ0FBQTtBQUUzRSxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxXQUFXLEVBQ1gsTUFBTSxFQUNOLEtBQUssRUFDTCxRQUFRLEVBQ1IsSUFBSSxHQUNMLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUMxQyxPQUFPLEVBQUUsZUFBZSxFQUFrQixNQUFNLG9CQUFvQixDQUFBO0FBRXBFLE9BQU8sRUFBRSxxQ0FBcUMsRUFBRSxNQUFNLG1FQUFtRSxDQUFBOzs7Ozs7O0FBRXpILGdGQUFnRjtBQU1oRixNQUFNLE9BQU8scUJBQXNCLFNBQVEscUNBQXFDO0lBUTlFLHNEQUFzRDtJQUN0RCxJQUFhLFNBQVMsQ0FBQyxNQUFjO1FBQ25DLElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFBO1FBQ3hCLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUE7SUFDMUIsQ0FBQztJQUNELElBQUksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQTtJQUN4QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsSUFBYSxTQUFTLENBQUMsTUFBYztRQUNuQyxJQUFJLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQTtRQUN4QixJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFBO0lBQzFCLENBQUM7SUFDRCxzREFBc0Q7SUFDdEQsSUFBYSxTQUFTLENBQUMsTUFBYztRQUNuQyxJQUFJLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQTtRQUN4QixJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFBO0lBQzFCLENBQUM7SUFDRCxJQUFJLFNBQVM7UUFDWCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUE7SUFDeEIsQ0FBQztJQUNEOzs7T0FHRztJQUNILElBQWEsU0FBUyxDQUFDLE1BQWM7UUFDbkMsSUFBSSxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUE7UUFDeEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQTtJQUMxQixDQUFDO0lBRUQsbUNBQW1DO0lBQ25DLElBQUksWUFBWTtRQUNkLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxNQUFNLENBQUMsZ0JBQWdCLENBQUE7SUFDdkUsQ0FBQztJQVNELFlBQzZCLFNBQW9CLEVBR3JDLGNBQThCLEVBQzlCLEdBQXNCO1FBRWhDLEtBQUssQ0FBQyxTQUFTLEVBQUUsY0FBYyxFQUFFLEdBQUcsQ0FBQyxDQUFBO1FBTlYsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUdyQyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUExRGxDLG9GQUFvRjtRQUMzQyxVQUFLLEdBQzVDLFVBQVUsQ0FBQTtRQUdaLHNEQUFzRDtRQUM3QyxhQUFRLEdBQUcsS0FBSyxDQUFBO1FBd0NqQixlQUFVLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFBO1FBRXBDLGVBQVUsR0FBRyxDQUFDLENBQUE7SUFhdEIsQ0FBQztJQUVELGdCQUFnQjtJQUNoQixPQUFPLENBQUMsS0FBWTtRQUNsQixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUE7UUFDdkIsSUFBSSxJQUFJLENBQUMsUUFBUTtZQUFFLE9BQU07UUFDekIsSUFBSSxDQUFDLEtBQUssR0FBSSxLQUFLLENBQUMsTUFBOEIsQ0FBQyxLQUFLLENBQUE7UUFDeEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDM0IsQ0FBQzsrR0F0RVUscUJBQXFCLHVFQXlEdEIsZUFBZTttR0F6RGQscUJBQXFCLG1VQ3RCbEMsdS9HQW1JQTs7NEZEN0dhLHFCQUFxQjtrQkFMakMsU0FBUzsrQkFDRSxlQUFlOzswQkEyRHRCLElBQUk7OzBCQUFJLFFBQVE7OzBCQUNoQixRQUFROzswQkFDUixNQUFNOzJCQUFDLGVBQWU7eUVBdkRnQixLQUFLO3NCQUE3QyxXQUFXO3VCQUFDLGlCQUFpQjs7c0JBQUcsS0FBSztnQkFHN0IsV0FBVztzQkFBbkIsS0FBSztnQkFFRyxRQUFRO3NCQUFoQixLQUFLO2dCQUVPLFNBQVM7c0JBQXJCLEtBQUs7Z0JBWU8sU0FBUztzQkFBckIsS0FBSztnQkFLTyxTQUFTO3NCQUFyQixLQUFLO2dCQVdPLFNBQVM7c0JBQXJCLEtBQUs7Z0JBZUcsSUFBSTtzQkFBWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICdAc2ViZ3JvdXAvZ3JlZW4tY29yZS9jb21wb25lbnRzL2ljb24vaWNvbnMvdHJpYW5nbGUtZXhjbGFtYXRpb24uanMnXG5cbmltcG9ydCB7XG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEhvc3RCaW5kaW5nLFxuICBJbmplY3QsXG4gIElucHV0LFxuICBPcHRpb25hbCxcbiAgU2VsZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IE5nQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJ1xuaW1wb3J0IHsgVFJBTlNMT0NPX1NDT1BFLCBUcmFuc2xvY29TY29wZSB9IGZyb20gJ0Bqc3ZlcnNlL3RyYW5zbG9jbydcblxuaW1wb3J0IHsgTmdndkJhc2VDb250cm9sVmFsdWVBY2Nlc3NvckNvbXBvbmVudCB9IGZyb20gJ0BzZWJncm91cC9ncmVlbi1hbmd1bGFyL3NyYy92LWFuZ3VsYXIvYmFzZS1jb250cm9sLXZhbHVlLWFjY2Vzc29yJ1xuXG4vKiogVGV4dGFyZWEgZmllbGRzIGFsbG93IHVzZXJzIHRvIGFkZCBhbmQgZWRpdCBsb25nZXIgb3IgbXVsdGlwbGUgbGluZSB0ZXh0LiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmdndi10ZXh0YXJlYScsXG4gIHRlbXBsYXRlVXJsOiAnLi90ZXh0YXJlYS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3RleHRhcmVhLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIE5nZ3ZUZXh0YXJlYUNvbXBvbmVudCBleHRlbmRzIE5nZ3ZCYXNlQ29udHJvbFZhbHVlQWNjZXNzb3JDb21wb25lbnQge1xuICAvKiogU3BlY2lhbCBwcm9wZXJ0eSB1c2VkIGZvciBzZWxlY3RpbmcgRE9NIGVsZW1lbnRzIGR1cmluZyBhdXRvbWF0ZWQgVUkgdGVzdGluZy4gKi9cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmRhdGEtdGhvb2snKSBASW5wdXQoKSB0aG9vazogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCA9XG4gICAgJ3RleHRhcmVhJ1xuICAvKiogVGV4dCBzaG93biBiZWZvcmUgaW5wdXQgaGFzIGEgd3JpdHRlbiB2YWx1ZS4gKi9cbiAgQElucHV0KCkgcGxhY2Vob2xkZXI/OiBzdHJpbmdcbiAgLyoqIElmIHNldCB0byB0cnVlLCB0aGUgdmFsdWUgd2lsbCBub3QgYmUgZWRpdGFibGUuICovXG4gIEBJbnB1dCgpIHJlYWRvbmx5ID0gZmFsc2VcbiAgLyoqIE1pbmltdW0gbGVuZ3RoIChudW1iZXIgb2YgY2hhcmFjdGVycykgb2YgdmFsdWUuICovXG4gIEBJbnB1dCgpIHNldCBtaW5MZW5ndGgobGVuZ3RoOiBudW1iZXIpIHtcbiAgICB0aGlzLl9taW5sZW5ndGggPSBsZW5ndGhcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKClcbiAgfVxuICBnZXQgbWlubGVuZ3RoKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX21pbmxlbmd0aFxuICB9XG5cbiAgLyoqXG4gICAqIE1pbmltdW0gbGVuZ3RoIChudW1iZXIgb2YgY2hhcmFjdGVycykgb2YgdmFsdWUuXG4gICAqIEBkZXByZWNhdGVkIG1pbmxlbmd0aCB0cmlnZ2VycyBhbmd1bGFyLXRlbXBsYXRlLXZhbGlkYXRpb24uIFVzZSBASW5wdXQoKSBtaW5MZW5ndGggaW5zdGVhZC5cbiAgICovXG4gIEBJbnB1dCgpIHNldCBtaW5sZW5ndGgobGVuZ3RoOiBudW1iZXIpIHtcbiAgICB0aGlzLl9taW5sZW5ndGggPSBsZW5ndGhcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKClcbiAgfVxuICAvKiogTWF4aW11bSBsZW5ndGggKG51bWJlciBvZiBjaGFyYWN0ZXJzKSBvZiB2YWx1ZS4gKi9cbiAgQElucHV0KCkgc2V0IG1heExlbmd0aChsZW5ndGg6IG51bWJlcikge1xuICAgIHRoaXMuX21heGxlbmd0aCA9IGxlbmd0aFxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKVxuICB9XG4gIGdldCBtYXhsZW5ndGgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fbWF4bGVuZ3RoXG4gIH1cbiAgLyoqXG4gICAqIE1heGltdW0gbGVuZ3RoIChudW1iZXIgb2YgY2hhcmFjdGVycykgb2YgdmFsdWUuXG4gICAqIEBkZXByZWNhdGVkIG1heGxlbmd0aCB0cmlnZ2VycyBhbmd1bGFyLXRlbXBsYXRlLXZhbGlkYXRpb24uIFVzZSBASW5wdXQoKSBtYXhMZW5ndGggaW5zdGVhZC5cbiAgICovXG4gIEBJbnB1dCgpIHNldCBtYXhsZW5ndGgobGVuZ3RoOiBudW1iZXIpIHtcbiAgICB0aGlzLl9tYXhsZW5ndGggPSBsZW5ndGhcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKClcbiAgfVxuXG4gIC8qKiBSZXR1cm5zIGlmIG1heGxlbmd0aCBpcyB1c2VkICovXG4gIGdldCBoYXNNYXhMZW5ndGgoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5tYXhsZW5ndGggJiYgdGhpcy5tYXhsZW5ndGggIT09IE51bWJlci5NQVhfU0FGRV9JTlRFR0VSXG4gIH1cblxuICBwcml2YXRlIF9tYXhsZW5ndGggPSBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUlxuXG4gIHByaXZhdGUgX21pbmxlbmd0aCA9IDBcblxuICAvKiogU2V0cyB0aGUgaGVpZ2h0IG9mIHRoZSB0ZXh0YXJlYSBhbmQgZGlzYWJsZXMgcmVzaXplLiBBIHNjcm9sbGJhciB3aWxsIGFwcGVhciBpZiBuZWNlc3NhcnkuICovXG4gIEBJbnB1dCgpIHJvd3M/OiBudW1iZXJcblxuICBjb25zdHJ1Y3RvcihcbiAgICBAU2VsZigpIEBPcHRpb25hbCgpIHB1YmxpYyBuZ0NvbnRyb2w6IE5nQ29udHJvbCxcbiAgICBAT3B0aW9uYWwoKVxuICAgIEBJbmplY3QoVFJBTlNMT0NPX1NDT1BFKVxuICAgIHByb3RlY3RlZCB0cmFuc2xvY29TY29wZTogVHJhbnNsb2NvU2NvcGUsXG4gICAgcHJvdGVjdGVkIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICkge1xuICAgIHN1cGVyKG5nQ29udHJvbCwgdHJhbnNsb2NvU2NvcGUsIGNkcilcbiAgfVxuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgb25JbnB1dChldmVudDogRXZlbnQpIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKVxuICAgIGlmICh0aGlzLmRpc2FibGVkKSByZXR1cm5cbiAgICB0aGlzLnN0YXRlID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MVGV4dEFyZWFFbGVtZW50KS52YWx1ZVxuICAgIHRoaXMub25DaGFuZ2UodGhpcy5zdGF0ZSlcbiAgfVxufVxuIiwiPCEtLSBMQUJFTCAtLT5cbjxsYWJlbFxuICBbaWRdPVwiaWQgKyAnLWxhYmVsJ1wiXG4gIGNsYXNzPVwiZ2RzLWZpZWxkLWxhYmVsIGhpZGUtaWYtZW1wdHlcIlxuICBbYXR0ci5mb3JdPVwiaWQgKyAnLXRleHRhcmVhJ1wiXG4gICp0cmFuc2xvY289XCJsZXQgdDsgcmVhZDogc2NvcGVcIlxuPlxuICA8bmctdGVtcGxhdGVcbiAgICAqbmdUZW1wbGF0ZU91dGxldD1cImxhYmVsQ29udGVudFRwbCB8fCBiYXNpY0xhYmVsQ29udGVudFRwbFwiXG4gID48L25nLXRlbXBsYXRlPlxuICA8bmctdGVtcGxhdGUgI2Jhc2ljTGFiZWxDb250ZW50VHBsPlxuICAgIDwhLS0gdG8gdHJpZ2dlciBjc3M6ZW1wdHkgaWYgbm8gbGFiZWwgd2FzIGFkZGVkIC0tPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJsYWJlbFwiPlxuICAgICAge3sgbGFiZWwgfX1cbiAgICAgIDxzcGFuXG4gICAgICAgICpuZ0lmPVwib3B0aW9uYWwgPT09IHRydWUgfHwgKHJlcXVpcmVkICE9PSB0cnVlICYmIG9wdGlvbmFsICE9PSBmYWxzZSlcIlxuICAgICAgICBjbGFzcz1cImdkcy1maWVsZC1sYWJlbC0tb3B0aW9uYWxcIlxuICAgICAgPlxuICAgICAgICAoe3sgdCgnbGFiZWwub3B0aW9uYWwnKSB9fSlcbiAgICAgIDwvc3Bhbj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvbGFiZWw+XG5cbjwhLS0gREVTQ1JJUFRJT04gLS0+XG48ZGl2IGNsYXNzPVwiZm9ybS1pbmZvIGRlc2NyaXB0aW9uIGhpZGUtaWYtZW1wdHlcIiAqbmdJZj1cImRlc2NyaXB0aW9uXCI+XG4gIHt7IGRlc2NyaXB0aW9uIH19XG48L2Rpdj5cblxuPCEtLSBMT0NLRUQgSU5QVVQgLS0+XG48bmctY29udGFpbmVyICpuZ0lmPVwibG9ja2VkXCI+XG4gIDxuZy10ZW1wbGF0ZVxuICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICBsb2NrZWRUcGwgfHwgZGVmYXVsdExvY2tlZFRwbDtcbiAgICAgIGNvbnRleHQ6IHsgJGltcGxpY2l0OiBzdGF0ZSB9XG4gICAgXCJcbiAgPjwvbmctdGVtcGxhdGU+XG4gIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdExvY2tlZFRwbD5cbiAgICA8ZGl2XG4gICAgICBbaWRdPVwiaWQgKyAnLXRleHRhcmVhJ1wiXG4gICAgICBjbGFzcz1cIm5nZ3YtZmllbGQtLWxvY2tlZFwiXG4gICAgICBbYXR0ci5uYW1lXT1cIm5hbWVcIlxuICAgICAgW2F0dHIudmFsdWVdPVwic3RhdGVcIlxuICAgICAgW2F0dHIucm9sZV09XCJyb2xlXCJcbiAgICA+XG4gICAgICA8c3BhbiAqbmdJZj1cIiFzdGF0ZVwiIGNsYXNzPVwidW5zZXQtc3RhdGVcIj4tPC9zcGFuPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInN0YXRlXCI+XG4gICAgICAgIHt7IHN0YXRlIH19XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvbmctY29udGFpbmVyPlxuXG48IS0tIElOUFVUIEZJRUxEIC0tPlxuPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFsb2NrZWRcIj5cbiAgPHRleHRhcmVhXG4gICAgI2lucHV0XG4gICAgW2lkXT1cImlkICsgJy10ZXh0YXJlYSdcIlxuICAgIGNsYXNzPVwiZ2RzLWZpZWxkXCJcbiAgICBbbmdDbGFzc109XCJ7ICduby1yZXNpemUnOiAhIXJvd3MgfVwiXG4gICAgW2NsYXNzLm5nZ3YtZmllbGQtLWVycm9yXT1cImludmFsaWRcIlxuICAgIFthdHRyLm5hbWVdPVwibmFtZVwiXG4gICAgW2F0dHIucmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgW2F1dG9mb2N1c109XCJhdXRvZm9jdXNcIlxuICAgIFtyZWFkT25seV09XCJyZWFkb25seVwiXG4gICAgW2F0dHIubWF4bGVuZ3RoXT1cIm1heGxlbmd0aFwiXG4gICAgW2F0dHIubWlubGVuZ3RoXT1cIm1pbmxlbmd0aFwiXG4gICAgW2F0dHIucm9sZV09XCJyb2xlXCJcbiAgICBbYXR0ci5yb3dzXT1cInJvd3NcIlxuICAgIFthdHRyLnBsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImRlc2NyaXB0aW9uXCJcbiAgICBbdmFsdWVdPVwic3RhdGVcIlxuICAgIHRpdGxlPVwiXCJcbiAgICAoaW5wdXQpPVwib25JbnB1dCgkZXZlbnQpXCJcbiAgICAoZm9jdXMpPVwib25Gb2N1cygkZXZlbnQpXCJcbiAgICAoYmx1cik9XCJvbkJsdXIoJGV2ZW50KVwiXG4gID48L3RleHRhcmVhPlxuXG4gIDwhLS0gRVJST1JTIC0tPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJnZHMtZm9ybS1pdGVtX19mb290ZXIgZXJyb3Itd3JhcHBlclwiXG4gICAgKnRyYW5zbG9jbz1cImxldCB0OyByZWFkOiBzY29wZVwiXG4gID5cbiAgICA8c3BhblxuICAgICAgY2xhc3M9XCJmb3JtLWluZm8gZm9ybS1pbmZvLS1lcnJvclwiXG4gICAgICBbYXR0ci5mb3JdPVwiaWQgKyAnLXRleHRhcmVhJ1wiXG4gICAgICAqbmdJZj1cImludmFsaWQgJiYgKGVycm9yIHx8IG5nQ29udHJvbD8uaW52YWxpZClcIlxuICAgID5cbiAgICAgIDxzcGFuIGNsYXNzPVwiZXJyb3ItaWNvblwiPlxuICAgICAgICA8Z2RzLWljb24tdHJpYW5nbGUtZXhjbGFtYXRpb25cbiAgICAgICAgICB3aWR0aD1cIjE2XCJcbiAgICAgICAgICBoZWlnaHQ9XCIxNlwiXG4gICAgICAgICAgc29saWQ9XCJ0cnVlXCJcbiAgICAgICAgICAqbmdnQ29yZUVsZW1lbnRcbiAgICAgICAgPjwvZ2RzLWljb24tdHJpYW5nbGUtZXhjbGFtYXRpb24+XG4gICAgICA8L3NwYW4+XG5cbiAgICAgIDxzcGFuXG4gICAgICAgICpuZ0lmPVwiZXJyb3I7IGVsc2UgZXJyb3JzUmVmXCJcbiAgICAgICAgW2F0dHIuZGF0YS10aG9va109XCJ0aG9vayArICctZXJyb3JsYWJlbCdcIlxuICAgICAgICA+e3sgZXJyb3IgfX08L3NwYW5cbiAgICAgID5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjZXJyb3JzUmVmPlxuICAgICAgICA8c3BhblxuICAgICAgICAgICpuZ0lmPVwiZmlyc3RFcnJvciBhcyBlcnJvclwiXG4gICAgICAgICAgW2F0dHIuZGF0YS10aG9va109XCJ0aG9vayArICctZXJyb3JsYWJlbCdcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgdCgnZXJyb3IuZmllbGQnICsgZXJyb3I/LmNvZGUsIGVycm9yPy5wYXJhbXMpIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9zcGFuPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImhhc01heExlbmd0aFwiPlxuICAgICAgPHNwYW5cbiAgICAgICAgKm5nZ3ZDaGFyYWN0ZXJDb3VudGRvd249XCJcbiAgICAgICAgICBtYXhsZW5ndGg7XG4gICAgICAgICAgY3VycmVudExlbmd0aDogKGlucHV0UmVmPy5uYXRpdmVFbGVtZW50Py52YWx1ZSA/PyAnJykubGVuZ3RoO1xuICAgICAgICAgIGNoYXJhY3RlcnNMZWZ0IGFzIGNoYXJhY3RlcnNMZWZ0XG4gICAgICAgIFwiXG4gICAgICAgIGNsYXNzPVwiZm9ybS1pbmZvIGZvcm0taW5mby0tY291bnRkb3duXCJcbiAgICAgICAgc3R5bGU9XCJ0ZXh0LWFsaWduOiByaWdodFwiXG4gICAgICA+XG4gICAgICAgIHt7IGNoYXJhY3RlcnNMZWZ0IH19IHt7IHQoJ2xhYmVsLm1heGxlbmd0aCcpIH19XG4gICAgICA8L3NwYW4+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuXG4gIDwhLS0gQ0hJTERSRU4gLS0+XG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvbmctY29udGFpbmVyPlxuIl19
129
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dGFyZWEuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy92LWFuZ3VsYXIvdGV4dGFyZWEvdGV4dGFyZWEuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy92LWFuZ3VsYXIvdGV4dGFyZWEvdGV4dGFyZWEuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxvRUFBb0UsQ0FBQTtBQUUzRSxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxXQUFXLEVBQ1gsTUFBTSxFQUNOLEtBQUssRUFDTCxRQUFRLEVBQ1IsSUFBSSxHQUNMLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUMxQyxPQUFPLEVBQUUsZUFBZSxFQUFrQixNQUFNLG9CQUFvQixDQUFBO0FBRXBFLE9BQU8sRUFBRSxxQ0FBcUMsRUFBRSxNQUFNLG1FQUFtRSxDQUFBOzs7Ozs7O0FBRXpILGdGQUFnRjtBQU1oRixNQUFNLE9BQU8scUJBQXNCLFNBQVEscUNBQXFDO0lBSzlFOztPQUVHO0lBQ0gsSUFBZ0MsT0FBTztRQUNyQyxPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssT0FBTyxDQUFBO0lBQzlCLENBQUM7SUFFRDs7T0FFRztJQUNILElBQWdDLE9BQU87UUFDckMsT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLE9BQU8sQ0FBQTtJQUM5QixDQUFDO0lBTUQsc0RBQXNEO0lBQ3RELElBQWEsU0FBUyxDQUFDLE1BQWM7UUFDbkMsSUFBSSxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUE7UUFDeEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQTtJQUMxQixDQUFDO0lBQ0QsSUFBSSxTQUFTO1FBQ1gsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFBO0lBQ3hCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUFhLFNBQVMsQ0FBQyxNQUFjO1FBQ25DLElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFBO1FBQ3hCLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUE7SUFDMUIsQ0FBQztJQUNELHNEQUFzRDtJQUN0RCxJQUFhLFNBQVMsQ0FBQyxNQUFjO1FBQ25DLElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFBO1FBQ3hCLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUE7SUFDMUIsQ0FBQztJQUNELElBQUksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQTtJQUN4QixDQUFDO0lBQ0Q7OztPQUdHO0lBQ0gsSUFBYSxTQUFTLENBQUMsTUFBYztRQUNuQyxJQUFJLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQTtRQUN4QixJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFBO0lBQzFCLENBQUM7SUFFRCxtQ0FBbUM7SUFDbkMsSUFBSSxZQUFZO1FBQ2QsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQTtJQUN2RSxDQUFDO0lBY0QsWUFDNkIsU0FBb0IsRUFHckMsY0FBOEIsRUFDOUIsR0FBc0I7UUFFaEMsS0FBSyxDQUFDLFNBQVMsRUFBRSxjQUFjLEVBQUUsR0FBRyxDQUFDLENBQUE7UUFOVixjQUFTLEdBQVQsU0FBUyxDQUFXO1FBR3JDLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQTlFbEMsb0ZBQW9GO1FBQzNDLFVBQUssR0FDNUMsVUFBVSxDQUFBO1FBa0JaLHNEQUFzRDtRQUM3QyxhQUFRLEdBQUcsS0FBSyxDQUFBO1FBd0NqQixlQUFVLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFBO1FBRXBDLGVBQVUsR0FBRyxDQUFDLENBQUE7UUFLdEI7O1dBRUc7UUFDTSxTQUFJLEdBQXNCLE9BQU8sQ0FBQTtJQVUxQyxDQUFDO0lBRUQsZ0JBQWdCO0lBQ2hCLE9BQU8sQ0FBQyxLQUFZO1FBQ2xCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQTtRQUN2QixJQUFJLElBQUksQ0FBQyxRQUFRO1lBQUUsT0FBTTtRQUN6QixJQUFJLENBQUMsS0FBSyxHQUFJLEtBQUssQ0FBQyxNQUE4QixDQUFDLEtBQUssQ0FBQTtRQUN4RCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUMzQixDQUFDOytHQTFGVSxxQkFBcUIsdUVBNkV0QixlQUFlO21HQTdFZCxxQkFBcUIsK1lDdEJsQyx1L0dBbUlBOzs0RkQ3R2EscUJBQXFCO2tCQUxqQyxTQUFTOytCQUNFLGVBQWU7OzBCQStFdEIsSUFBSTs7MEJBQUksUUFBUTs7MEJBQ2hCLFFBQVE7OzBCQUNSLE1BQU07MkJBQUMsZUFBZTt5RUEzRWdCLEtBQUs7c0JBQTdDLFdBQVc7dUJBQUMsaUJBQWlCOztzQkFBRyxLQUFLO2dCQU1OLE9BQU87c0JBQXRDLFdBQVc7dUJBQUMsYUFBYTtnQkFPTSxPQUFPO3NCQUF0QyxXQUFXO3VCQUFDLGFBQWE7Z0JBS2pCLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRUcsUUFBUTtzQkFBaEIsS0FBSztnQkFFTyxTQUFTO3NCQUFyQixLQUFLO2dCQVlPLFNBQVM7c0JBQXJCLEtBQUs7Z0JBS08sU0FBUztzQkFBckIsS0FBSztnQkFXTyxTQUFTO3NCQUFyQixLQUFLO2dCQWVHLElBQUk7c0JBQVosS0FBSztnQkFLRyxJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJ0BzZWJncm91cC9ncmVlbi1jb3JlL2NvbXBvbmVudHMvaWNvbi9pY29ucy90cmlhbmdsZS1leGNsYW1hdGlvbi5qcydcblxuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgSG9zdEJpbmRpbmcsXG4gIEluamVjdCxcbiAgSW5wdXQsXG4gIE9wdGlvbmFsLFxuICBTZWxmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnXG5pbXBvcnQgeyBUUkFOU0xPQ09fU0NPUEUsIFRyYW5zbG9jb1Njb3BlIH0gZnJvbSAnQGpzdmVyc2UvdHJhbnNsb2NvJ1xuXG5pbXBvcnQgeyBOZ2d2QmFzZUNvbnRyb2xWYWx1ZUFjY2Vzc29yQ29tcG9uZW50IH0gZnJvbSAnQHNlYmdyb3VwL2dyZWVuLWFuZ3VsYXIvc3JjL3YtYW5ndWxhci9iYXNlLWNvbnRyb2wtdmFsdWUtYWNjZXNzb3InXG5cbi8qKiBUZXh0YXJlYSBmaWVsZHMgYWxsb3cgdXNlcnMgdG8gYWRkIGFuZCBlZGl0IGxvbmdlciBvciBtdWx0aXBsZSBsaW5lIHRleHQuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICduZ2d2LXRleHRhcmVhJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RleHRhcmVhLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGV4dGFyZWEuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgTmdndlRleHRhcmVhQ29tcG9uZW50IGV4dGVuZHMgTmdndkJhc2VDb250cm9sVmFsdWVBY2Nlc3NvckNvbXBvbmVudCB7XG4gIC8qKiBTcGVjaWFsIHByb3BlcnR5IHVzZWQgZm9yIHNlbGVjdGluZyBET00gZWxlbWVudHMgZHVyaW5nIGF1dG9tYXRlZCBVSSB0ZXN0aW5nLiAqL1xuICBASG9zdEJpbmRpbmcoJ2F0dHIuZGF0YS10aG9vaycpIEBJbnB1dCgpIHRob29rOiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkID1cbiAgICAndGV4dGFyZWEnXG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIHNtYWxsIGNsYXNzIGJhc2VkIG9uIHRoZSBzaXplIGlucHV0LlxuICAgKi9cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5zbWFsbCcpIGdldCBpc1NtYWxsKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnNpemUgPT09ICdzbWFsbCdcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBsYXJnZSBjbGFzcyBiYXNlZCBvbiB0aGUgc2l6ZSBpbnB1dC5cbiAgICovXG4gIEBIb3N0QmluZGluZygnY2xhc3MubGFyZ2UnKSBnZXQgaXNMYXJnZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zaXplID09PSAnbGFyZ2UnXG4gIH1cblxuICAvKiogVGV4dCBzaG93biBiZWZvcmUgaW5wdXQgaGFzIGEgd3JpdHRlbiB2YWx1ZS4gKi9cbiAgQElucHV0KCkgcGxhY2Vob2xkZXI/OiBzdHJpbmdcbiAgLyoqIElmIHNldCB0byB0cnVlLCB0aGUgdmFsdWUgd2lsbCBub3QgYmUgZWRpdGFibGUuICovXG4gIEBJbnB1dCgpIHJlYWRvbmx5ID0gZmFsc2VcbiAgLyoqIE1pbmltdW0gbGVuZ3RoIChudW1iZXIgb2YgY2hhcmFjdGVycykgb2YgdmFsdWUuICovXG4gIEBJbnB1dCgpIHNldCBtaW5MZW5ndGgobGVuZ3RoOiBudW1iZXIpIHtcbiAgICB0aGlzLl9taW5sZW5ndGggPSBsZW5ndGhcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKClcbiAgfVxuICBnZXQgbWlubGVuZ3RoKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX21pbmxlbmd0aFxuICB9XG5cbiAgLyoqXG4gICAqIE1pbmltdW0gbGVuZ3RoIChudW1iZXIgb2YgY2hhcmFjdGVycykgb2YgdmFsdWUuXG4gICAqIEBkZXByZWNhdGVkIG1pbmxlbmd0aCB0cmlnZ2VycyBhbmd1bGFyLXRlbXBsYXRlLXZhbGlkYXRpb24uIFVzZSBASW5wdXQoKSBtaW5MZW5ndGggaW5zdGVhZC5cbiAgICovXG4gIEBJbnB1dCgpIHNldCBtaW5sZW5ndGgobGVuZ3RoOiBudW1iZXIpIHtcbiAgICB0aGlzLl9taW5sZW5ndGggPSBsZW5ndGhcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKClcbiAgfVxuICAvKiogTWF4aW11bSBsZW5ndGggKG51bWJlciBvZiBjaGFyYWN0ZXJzKSBvZiB2YWx1ZS4gKi9cbiAgQElucHV0KCkgc2V0IG1heExlbmd0aChsZW5ndGg6IG51bWJlcikge1xuICAgIHRoaXMuX21heGxlbmd0aCA9IGxlbmd0aFxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKVxuICB9XG4gIGdldCBtYXhsZW5ndGgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fbWF4bGVuZ3RoXG4gIH1cbiAgLyoqXG4gICAqIE1heGltdW0gbGVuZ3RoIChudW1iZXIgb2YgY2hhcmFjdGVycykgb2YgdmFsdWUuXG4gICAqIEBkZXByZWNhdGVkIG1heGxlbmd0aCB0cmlnZ2VycyBhbmd1bGFyLXRlbXBsYXRlLXZhbGlkYXRpb24uIFVzZSBASW5wdXQoKSBtYXhMZW5ndGggaW5zdGVhZC5cbiAgICovXG4gIEBJbnB1dCgpIHNldCBtYXhsZW5ndGgobGVuZ3RoOiBudW1iZXIpIHtcbiAgICB0aGlzLl9tYXhsZW5ndGggPSBsZW5ndGhcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKClcbiAgfVxuXG4gIC8qKiBSZXR1cm5zIGlmIG1heGxlbmd0aCBpcyB1c2VkICovXG4gIGdldCBoYXNNYXhMZW5ndGgoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5tYXhsZW5ndGggJiYgdGhpcy5tYXhsZW5ndGggIT09IE51bWJlci5NQVhfU0FGRV9JTlRFR0VSXG4gIH1cblxuICBwcml2YXRlIF9tYXhsZW5ndGggPSBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUlxuXG4gIHByaXZhdGUgX21pbmxlbmd0aCA9IDBcblxuICAvKiogU2V0cyB0aGUgaGVpZ2h0IG9mIHRoZSB0ZXh0YXJlYSBhbmQgZGlzYWJsZXMgcmVzaXplLiBBIHNjcm9sbGJhciB3aWxsIGFwcGVhciBpZiBuZWNlc3NhcnkuICovXG4gIEBJbnB1dCgpIHJvd3M/OiBudW1iZXJcblxuICAvKipcbiAgICogU2V0cyB0aGUgZGlzcGxheWVkIHNpemUgb2YgdGhlIHRleHRhcmVhLlxuICAgKi9cbiAgQElucHV0KCkgc2l6ZTogJ3NtYWxsJyB8ICdsYXJnZScgPSAnbGFyZ2UnXG5cbiAgY29uc3RydWN0b3IoXG4gICAgQFNlbGYoKSBAT3B0aW9uYWwoKSBwdWJsaWMgbmdDb250cm9sOiBOZ0NvbnRyb2wsXG4gICAgQE9wdGlvbmFsKClcbiAgICBASW5qZWN0KFRSQU5TTE9DT19TQ09QRSlcbiAgICBwcm90ZWN0ZWQgdHJhbnNsb2NvU2NvcGU6IFRyYW5zbG9jb1Njb3BlLFxuICAgIHByb3RlY3RlZCBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICApIHtcbiAgICBzdXBlcihuZ0NvbnRyb2wsIHRyYW5zbG9jb1Njb3BlLCBjZHIpXG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIG9uSW5wdXQoZXZlbnQ6IEV2ZW50KSB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkgcmV0dXJuXG4gICAgdGhpcy5zdGF0ZSA9IChldmVudC50YXJnZXQgYXMgSFRNTFRleHRBcmVhRWxlbWVudCkudmFsdWVcbiAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuc3RhdGUpXG4gIH1cbn1cbiIsIjwhLS0gTEFCRUwgLS0+XG48bGFiZWxcbiAgW2lkXT1cImlkICsgJy1sYWJlbCdcIlxuICBjbGFzcz1cImdkcy1maWVsZC1sYWJlbCBoaWRlLWlmLWVtcHR5XCJcbiAgW2F0dHIuZm9yXT1cImlkICsgJy10ZXh0YXJlYSdcIlxuICAqdHJhbnNsb2NvPVwibGV0IHQ7IHJlYWQ6IHNjb3BlXCJcbj5cbiAgPG5nLXRlbXBsYXRlXG4gICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJsYWJlbENvbnRlbnRUcGwgfHwgYmFzaWNMYWJlbENvbnRlbnRUcGxcIlxuICA+PC9uZy10ZW1wbGF0ZT5cbiAgPG5nLXRlbXBsYXRlICNiYXNpY0xhYmVsQ29udGVudFRwbD5cbiAgICA8IS0tIHRvIHRyaWdnZXIgY3NzOmVtcHR5IGlmIG5vIGxhYmVsIHdhcyBhZGRlZCAtLT5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibGFiZWxcIj5cbiAgICAgIHt7IGxhYmVsIH19XG4gICAgICA8c3BhblxuICAgICAgICAqbmdJZj1cIm9wdGlvbmFsID09PSB0cnVlIHx8IChyZXF1aXJlZCAhPT0gdHJ1ZSAmJiBvcHRpb25hbCAhPT0gZmFsc2UpXCJcbiAgICAgICAgY2xhc3M9XCJnZHMtZmllbGQtbGFiZWwtLW9wdGlvbmFsXCJcbiAgICAgID5cbiAgICAgICAgKHt7IHQoJ2xhYmVsLm9wdGlvbmFsJykgfX0pXG4gICAgICA8L3NwYW4+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvbmctdGVtcGxhdGU+XG48L2xhYmVsPlxuXG48IS0tIERFU0NSSVBUSU9OIC0tPlxuPGRpdiBjbGFzcz1cImZvcm0taW5mbyBkZXNjcmlwdGlvbiBoaWRlLWlmLWVtcHR5XCIgKm5nSWY9XCJkZXNjcmlwdGlvblwiPlxuICB7eyBkZXNjcmlwdGlvbiB9fVxuPC9kaXY+XG5cbjwhLS0gTE9DS0VEIElOUFVUIC0tPlxuPG5nLWNvbnRhaW5lciAqbmdJZj1cImxvY2tlZFwiPlxuICA8bmctdGVtcGxhdGVcbiAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgbG9ja2VkVHBsIHx8IGRlZmF1bHRMb2NrZWRUcGw7XG4gICAgICBjb250ZXh0OiB7ICRpbXBsaWNpdDogc3RhdGUgfVxuICAgIFwiXG4gID48L25nLXRlbXBsYXRlPlxuICA8bmctdGVtcGxhdGUgI2RlZmF1bHRMb2NrZWRUcGw+XG4gICAgPGRpdlxuICAgICAgW2lkXT1cImlkICsgJy10ZXh0YXJlYSdcIlxuICAgICAgY2xhc3M9XCJuZ2d2LWZpZWxkLS1sb2NrZWRcIlxuICAgICAgW2F0dHIubmFtZV09XCJuYW1lXCJcbiAgICAgIFthdHRyLnZhbHVlXT1cInN0YXRlXCJcbiAgICAgIFthdHRyLnJvbGVdPVwicm9sZVwiXG4gICAgPlxuICAgICAgPHNwYW4gKm5nSWY9XCIhc3RhdGVcIiBjbGFzcz1cInVuc2V0LXN0YXRlXCI+LTwvc3Bhbj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzdGF0ZVwiPlxuICAgICAgICB7eyBzdGF0ZSB9fVxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gIDwvbmctdGVtcGxhdGU+XG48L25nLWNvbnRhaW5lcj5cblxuPCEtLSBJTlBVVCBGSUVMRCAtLT5cbjxuZy1jb250YWluZXIgKm5nSWY9XCIhbG9ja2VkXCI+XG4gIDx0ZXh0YXJlYVxuICAgICNpbnB1dFxuICAgIFtpZF09XCJpZCArICctdGV4dGFyZWEnXCJcbiAgICBjbGFzcz1cImdkcy1maWVsZFwiXG4gICAgW25nQ2xhc3NdPVwieyAnbm8tcmVzaXplJzogISFyb3dzIH1cIlxuICAgIFtjbGFzcy5uZ2d2LWZpZWxkLS1lcnJvcl09XCJpbnZhbGlkXCJcbiAgICBbYXR0ci5uYW1lXT1cIm5hbWVcIlxuICAgIFthdHRyLnJlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgIFthdXRvZm9jdXNdPVwiYXV0b2ZvY3VzXCJcbiAgICBbcmVhZE9ubHldPVwicmVhZG9ubHlcIlxuICAgIFthdHRyLm1heGxlbmd0aF09XCJtYXhsZW5ndGhcIlxuICAgIFthdHRyLm1pbmxlbmd0aF09XCJtaW5sZW5ndGhcIlxuICAgIFthdHRyLnJvbGVdPVwicm9sZVwiXG4gICAgW2F0dHIucm93c109XCJyb3dzXCJcbiAgICBbYXR0ci5wbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCJkZXNjcmlwdGlvblwiXG4gICAgW3ZhbHVlXT1cInN0YXRlXCJcbiAgICB0aXRsZT1cIlwiXG4gICAgKGlucHV0KT1cIm9uSW5wdXQoJGV2ZW50KVwiXG4gICAgKGZvY3VzKT1cIm9uRm9jdXMoJGV2ZW50KVwiXG4gICAgKGJsdXIpPVwib25CbHVyKCRldmVudClcIlxuICA+PC90ZXh0YXJlYT5cblxuICA8IS0tIEVSUk9SUyAtLT5cbiAgPGRpdlxuICAgIGNsYXNzPVwiZ2RzLWZvcm0taXRlbV9fZm9vdGVyIGVycm9yLXdyYXBwZXJcIlxuICAgICp0cmFuc2xvY289XCJsZXQgdDsgcmVhZDogc2NvcGVcIlxuICA+XG4gICAgPHNwYW5cbiAgICAgIGNsYXNzPVwiZm9ybS1pbmZvIGZvcm0taW5mby0tZXJyb3JcIlxuICAgICAgW2F0dHIuZm9yXT1cImlkICsgJy10ZXh0YXJlYSdcIlxuICAgICAgKm5nSWY9XCJpbnZhbGlkICYmIChlcnJvciB8fCBuZ0NvbnRyb2w/LmludmFsaWQpXCJcbiAgICA+XG4gICAgICA8c3BhbiBjbGFzcz1cImVycm9yLWljb25cIj5cbiAgICAgICAgPGdkcy1pY29uLXRyaWFuZ2xlLWV4Y2xhbWF0aW9uXG4gICAgICAgICAgd2lkdGg9XCIxNlwiXG4gICAgICAgICAgaGVpZ2h0PVwiMTZcIlxuICAgICAgICAgIHNvbGlkPVwidHJ1ZVwiXG4gICAgICAgICAgKm5nZ0NvcmVFbGVtZW50XG4gICAgICAgID48L2dkcy1pY29uLXRyaWFuZ2xlLWV4Y2xhbWF0aW9uPlxuICAgICAgPC9zcGFuPlxuXG4gICAgICA8c3BhblxuICAgICAgICAqbmdJZj1cImVycm9yOyBlbHNlIGVycm9yc1JlZlwiXG4gICAgICAgIFthdHRyLmRhdGEtdGhvb2tdPVwidGhvb2sgKyAnLWVycm9ybGFiZWwnXCJcbiAgICAgICAgPnt7IGVycm9yIH19PC9zcGFuXG4gICAgICA+XG4gICAgICA8bmctdGVtcGxhdGUgI2Vycm9yc1JlZj5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICAqbmdJZj1cImZpcnN0RXJyb3IgYXMgZXJyb3JcIlxuICAgICAgICAgIFthdHRyLmRhdGEtdGhvb2tdPVwidGhvb2sgKyAnLWVycm9ybGFiZWwnXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IHQoJ2Vycm9yLmZpZWxkJyArIGVycm9yPy5jb2RlLCBlcnJvcj8ucGFyYW1zKSB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvc3Bhbj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJoYXNNYXhMZW5ndGhcIj5cbiAgICAgIDxzcGFuXG4gICAgICAgICpuZ2d2Q2hhcmFjdGVyQ291bnRkb3duPVwiXG4gICAgICAgICAgbWF4bGVuZ3RoO1xuICAgICAgICAgIGN1cnJlbnRMZW5ndGg6IChpbnB1dFJlZj8ubmF0aXZlRWxlbWVudD8udmFsdWUgPz8gJycpLmxlbmd0aDtcbiAgICAgICAgICBjaGFyYWN0ZXJzTGVmdCBhcyBjaGFyYWN0ZXJzTGVmdFxuICAgICAgICBcIlxuICAgICAgICBjbGFzcz1cImZvcm0taW5mbyBmb3JtLWluZm8tLWNvdW50ZG93blwiXG4gICAgICAgIHN0eWxlPVwidGV4dC1hbGlnbjogcmlnaHRcIlxuICAgICAgPlxuICAgICAgICB7eyBjaGFyYWN0ZXJzTGVmdCB9fSB7eyB0KCdsYWJlbC5tYXhsZW5ndGgnKSB9fVxuICAgICAgPC9zcGFuPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cblxuICA8IS0tIENISUxEUkVOIC0tPlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
@@ -13,13 +13,25 @@ import * as i4 from "@sebgroup/green-angular/src/lib/shared";
13
13
  * https://designlibrary.sebgroup.com/components/component-checkbox
14
14
  */
15
15
  export class NggvCheckboxComponent extends NggvBaseControlValueAccessorComponent {
16
+ get isSmall() {
17
+ return this.size === 'small';
18
+ }
19
+ get isLarge() {
20
+ return this.size === 'large';
21
+ }
16
22
  constructor(ngControl, translocoScope, cdr) {
17
23
  super(ngControl, translocoScope, cdr);
18
24
  this.ngControl = ngControl;
19
25
  this.translocoScope = translocoScope;
20
26
  this.cdr = cdr;
21
- /** Special property used for selecting DOM elements during automated UI testing. */
27
+ /**
28
+ * Special property used for selecting DOM elements during automated UI testing.
29
+ */
22
30
  this.thook = 'checkbox';
31
+ /**
32
+ * Sets the displayed size of the checkbox
33
+ */
34
+ this.size = 'large';
23
35
  this.optionalLabel = 'Optional';
24
36
  this.valueChange = new EventEmitter();
25
37
  }
@@ -47,11 +59,11 @@ export class NggvCheckboxComponent extends NggvBaseControlValueAccessorComponent
47
59
  };
48
60
  }
49
61
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NggvCheckboxComponent, deps: [{ token: i1.NgControl, optional: true, self: true }, { token: TRANSLOCO_SCOPE, optional: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
50
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: NggvCheckboxComponent, selector: "nggv-checkbox", inputs: { thook: "thook", optionalLabel: "optionalLabel" }, outputs: { valueChange: "valueChange" }, host: { properties: { "attr.data-thook": "this.thook" } }, usesInheritance: true, ngImport: i0, template: "<!-- LOCKED INPUT -->\n<div *ngIf=\"locked && state\">\n <div\n [id]=\"id + '-checkbox'\"\n class=\"nggv-field--locked\"\n [attr.name]=\"name\"\n [attr.value]=\"value\"\n >\n <ng-container *ngIf=\"!labelContentTpl\">\n {{ label }}\n </ng-container>\n <ng-template\n *ngTemplateOutlet=\"labelContentTpl ?? null; context: { $implicit: value }\"\n ></ng-template>\n </div>\n</div>\n\n<!-- INPUT WRAPPER -->\n<ng-container *ngIf=\"!locked\">\n <div>\n <!-- CHECKBOX FIELD -->\n <label\n [id]=\"id + '-label'\"\n [attr.for]=\"id + '-checkbox'\"\n class=\"form-control\"\n *transloco=\"let t; read: scope\"\n >\n <input\n #input\n type=\"checkbox\"\n [id]=\"id + '-checkbox'\"\n [attr.name]=\"name\"\n [attr.value]=\"value\"\n [attr.required]=\"required\"\n [disabled]=\"disabled\"\n [autofocus]=\"autofocus\"\n [attr.aria-label]=\"description\"\n [checked]=\"state\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"onInputChange($event)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"\n />\n <!-- LABEL -->\n <ng-template\n *ngTemplateOutlet=\"labelContentTpl || basicLabelContentTpl\"\n ></ng-template>\n <ng-template #basicLabelContentTpl>\n <!-- to trigger css:empty if no label was added -->\n <ng-container *ngIf=\"label\">\n <span\n *ngIf=\"\n optional === true || (required !== true && optional !== false)\n \"\n class=\"gds-field-label--optional\"\n >\n ({{ t('label.optional') }})\n </span>\n <span>{{ label }}</span>\n </ng-container>\n </ng-template>\n <i></i>\n </label>\n </div>\n\n <!-- ERRORS -->\n <ng-container *transloco=\"let t; read: scope\">\n <div\n class=\"form-info form-info--error\"\n [attr.for]=\"id + '-checkbox'\"\n *ngIf=\"invalid && (error || ngControl?.invalid)\"\n >\n <span class=\"error-icon\">\n <gds-icon-triangle-exclamation\n width=\"16\"\n height=\"16\"\n [solid]=\"true\"\n *nggCoreElement\n ></gds-icon-triangle-exclamation>\n </span>\n <span\n *ngIf=\"error; else errorsRef\"\n [attr.data-thook]=\"thook + '-errorlabel'\"\n >\n {{ error }}\n </span>\n <ng-template #errorsRef>\n <span\n *ngIf=\"firstError as error\"\n [attr.data-thook]=\"thook + '-errorlabel'\"\n >\n {{ t('error.field' + error?.code, error?.params) }}\n </span>\n </ng-template>\n </div>\n </ng-container>\n\n <!-- CHILDREN -->\n <ng-content></ng-content>\n</ng-container>\n", styles: [":host{--gds-sys-color-surface: #fff;--gds-ref-pallet-base200: #e8e8e8;--gds-sys-color-base: #333;--gds-sys-shape-corner-small: .125rem;--gds-ref-pallet-base600: hsl(0, 0%, 53%);--gds-sys-color-blue-dark-2: #007ac7;--gds-sys-shape-corner-medium: .25rem;--gds-comp-checkbox-container-height: 1rem;--gds-comp-checkbox-container-width: 1rem;--gds-comp-checkbox-container-color: var(--gds-sys-color-background-primary);--gds-comp-checkbox-container-color-disabled: var(--gds-ref-pallet-base300);--gds-comp-checkbox-border-color: var(--gds-ref-pallet-base900);--gds-comp-checkbox-border-radius: var(--gds-sys-shape-corner-small);--gds-comp-checkbox-hover-border-color: var(--gds-ref-pallet-base600);--gds-comp-checkbox-container-color-selected: var(--gds-ref-pallet-base900);--gds-comp-checkbox-border-color-selected: var(--gds-sys-color-text-inverted);--gds-comp-checkbox-border-color-focus: var(--gds-sys-color-dark-blue-2)}:host label.form-control input[type=checkbox]{cursor:pointer;height:0;opacity:0;position:absolute;width:0;z-index:-1}:host label.form-control{align-items:flex-start}:host label.form-control:has(input[type=checkbox]){padding:.6875rem 1rem .5625rem}:host label.form-control:has(input[type=checkbox]:focus-visible):focus:not(:focus-visible){box-shadow:none;outline:0}:host label.form-control:has(input[type=checkbox]:focus-visible):focus,:host label.form-control:has(input[type=checkbox]:focus-visible):focus-within{outline-color:var(--gds-sys-color-focus-outline);outline-style:solid;outline-width:.125rem;outline-offset:.125rem}:host label.form-control input[type=checkbox]~i{margin-right:.75rem;margin-top:.0625rem;flex-shrink:0;box-shadow:inset 0 0 0 1px var(--gds-sys-color-text-primary);position:relative;border-radius:var(--gds-sys-shape-corner-small);background-color:transparent;flex:0 0 auto;height:1rem;width:1rem}:host label.form-control input[type=checkbox]:not(:checked):focus-visible~i{box-shadow:inset 0 0 0 1px var(--gds-sys-color-base-900)}:host label.form-control:hover input[type=checkbox]:not(.disabled,:disabled,:checked,:indeterminate)~i{background-color:var(--gds-sys-color-base-200)}:host label.form-control input[type=checkbox]:checked~i{background-color:var(--gds-sys-color-base-900)}:host label.form-control input[type=checkbox]:indeterminate~i{background-color:var(--gds-sys-color-base-900)}:host label.form-control input[type=checkbox]:indeterminate~i:after{border-bottom:2px solid var(--gds-sys-color-background-primary);border-left:none;transform:scale(1) rotate(0);opacity:1}:host label.form-control:has(input[type=checkbox].is-invalid){border:.0625rem solid var(--gds-sys-color-text-error);margin-bottom:.5rem}:host .is-invalid label.form-control:has(input[type=checkbox].is-invalid){border:none;margin:0}@supports (-moz-appearance: none){:host label.form-control.is-invalid{border:.0625rem solid var(--gds-sys-color-text-error);margin-bottom:.5rem}:host .is-invalid label.form-control.is-invalid{border:none;margin:0}}:host label.form-control input[type=checkbox]:disabled~i,:host label.form-control input[type=checkbox].disabled~i{background:var(--sg-form-control-bg-disabled)!important;border-color:var(--border-disabled-color)!important;cursor:not-allowed;box-shadow:inset 0 0 0 1px var(--border-disabled-color)}:host label.form-control input[type=checkbox]:disabled~i::placeholder,:host label.form-control input[type=checkbox].disabled~i::placeholder{color:var(--text-disabled-color)}:host label.form-control input[type=checkbox]:disabled:checked~i,:host label.form-control input[type=checkbox].disabled:checked~i{background:var(--sg-form-control-bg-disabled)!important;border-color:var(--border-disabled-color)!important;cursor:not-allowed;box-shadow:inset 0 0 0 1px var(--border-disabled-color)}:host label.form-control input[type=checkbox]:disabled:checked~i::placeholder,:host label.form-control input[type=checkbox].disabled:checked~i::placeholder{color:var(--text-disabled-color)}:host label.form-control input[type=checkbox]:disabled:checked~i:after,:host label.form-control input[type=checkbox].disabled:checked~i:after{border-color:var(--border-disabled-color)}:host label.form-control input[type=checkbox]:disabled~span,:host label.form-control input[type=checkbox].disabled~span{color:var(--text-disabled-color)!important;cursor:not-allowed}:host label.form-control input[type=checkbox]:disabled~span::placeholder,:host label.form-control input[type=checkbox].disabled~span::placeholder{color:var(--text-disabled-color)}:host label.form-control input[type=checkbox]~i:after{content:\"\";opacity:0;position:absolute}:host label.form-control input[type=checkbox]~i:after{border-bottom:3px solid var(--gds-sys-color-text-inverted);border-left:3px solid var(--gds-sys-color-text-inverted);height:.5rem;width:1rem;left:0;top:.1875rem;transform:scale(.601) rotate(-45deg);transform-origin:center}:host label.form-control input[type=checkbox]:checked~i:after{opacity:1}:host .form-control{padding:.75rem 1rem;border:1px solid transparent;border-radius:var(--gds-sys-shape-corner-medium);align-items:center;cursor:pointer;display:flex;flex-direction:row-reverse;font:inherit;justify-content:flex-end;position:relative;user-select:none;-webkit-user-select:none;line-height:1.125rem}:host .form-control:has(input:disabled){cursor:not-allowed}:host .form-info{font-weight:500;padding-left:1rem;margin-top:-.25rem}:host .form-info--error{display:flex;align-items:flex-start;gap:.5em;color:#9f000a}:host .form-info--error .error-icon{margin-top:.128rem;align-items:center}:host i:after{box-sizing:border-box}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }, { kind: "directive", type: i4.NggCoreElementDirective, selector: "[nggCoreElement]" }] }); }
62
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: NggvCheckboxComponent, selector: "nggv-checkbox", inputs: { thook: "thook", size: "size", optionalLabel: "optionalLabel" }, outputs: { valueChange: "valueChange" }, host: { properties: { "attr.data-thook": "this.thook", "class.small": "this.isSmall", "class.large": "this.isLarge" } }, usesInheritance: true, ngImport: i0, template: "<!-- LOCKED INPUT -->\n<div *ngIf=\"locked && state\">\n <div\n [id]=\"id + '-checkbox'\"\n class=\"nggv-field--locked\"\n [attr.name]=\"name\"\n [attr.value]=\"value\"\n >\n <ng-container *ngIf=\"!labelContentTpl\">\n {{ label }}\n </ng-container>\n <ng-template\n *ngTemplateOutlet=\"labelContentTpl ?? null; context: { $implicit: value }\"\n ></ng-template>\n </div>\n</div>\n\n<!-- INPUT WRAPPER -->\n<ng-container *ngIf=\"!locked\">\n <div>\n <!-- CHECKBOX FIELD -->\n <label\n [id]=\"id + '-label'\"\n [attr.for]=\"id + '-checkbox'\"\n class=\"form-control\"\n *transloco=\"let t; read: scope\"\n >\n <input\n #input\n type=\"checkbox\"\n [id]=\"id + '-checkbox'\"\n [attr.name]=\"name\"\n [attr.value]=\"value\"\n [attr.required]=\"required\"\n [disabled]=\"disabled\"\n [autofocus]=\"autofocus\"\n [attr.aria-label]=\"description\"\n [checked]=\"state\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"onInputChange($event)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"\n />\n <!-- LABEL -->\n <ng-template\n *ngTemplateOutlet=\"labelContentTpl || basicLabelContentTpl\"\n ></ng-template>\n <ng-template #basicLabelContentTpl>\n <!-- to trigger css:empty if no label was added -->\n <ng-container *ngIf=\"label\">\n <span\n *ngIf=\"\n optional === true || (required !== true && optional !== false)\n \"\n class=\"gds-field-label--optional\"\n >\n ({{ t('label.optional') }})\n </span>\n <span>{{ label }}</span>\n </ng-container>\n </ng-template>\n <i></i>\n </label>\n </div>\n\n <!-- ERRORS -->\n <ng-container *transloco=\"let t; read: scope\">\n <div\n class=\"form-info form-info--error\"\n [attr.for]=\"id + '-checkbox'\"\n *ngIf=\"invalid && (error || ngControl?.invalid)\"\n >\n <span class=\"error-icon\">\n <gds-icon-triangle-exclamation\n width=\"16\"\n height=\"16\"\n [solid]=\"true\"\n *nggCoreElement\n ></gds-icon-triangle-exclamation>\n </span>\n <span\n *ngIf=\"error; else errorsRef\"\n [attr.data-thook]=\"thook + '-errorlabel'\"\n >\n {{ error }}\n </span>\n <ng-template #errorsRef>\n <span\n *ngIf=\"firstError as error\"\n [attr.data-thook]=\"thook + '-errorlabel'\"\n >\n {{ t('error.field' + error?.code, error?.params) }}\n </span>\n </ng-template>\n </div>\n </ng-container>\n\n <!-- CHILDREN -->\n <ng-content></ng-content>\n</ng-container>\n", styles: [":host{--gds-sys-color-surface: #fff;--gds-ref-pallet-base200: #e8e8e8;--gds-sys-color-base: #333;--gds-sys-shape-corner-small: .125rem;--gds-ref-pallet-base600: hsl(0, 0%, 53%);--gds-sys-color-blue-dark-2: #007ac7;--gds-sys-shape-corner-medium: .25rem;--gds-comp-checkbox-container-height: 1rem;--gds-comp-checkbox-container-width: 1rem;--gds-comp-checkbox-container-color: var(--gds-sys-color-background-primary);--gds-comp-checkbox-container-color-disabled: var(--gds-ref-pallet-base300);--gds-comp-checkbox-border-color: var(--gds-ref-pallet-base900);--gds-comp-checkbox-border-radius: var(--gds-sys-shape-corner-small);--gds-comp-checkbox-hover-border-color: var(--gds-ref-pallet-base600);--gds-comp-checkbox-container-color-selected: var(--gds-ref-pallet-base900);--gds-comp-checkbox-border-color-selected: var(--gds-sys-color-text-inverted);--gds-comp-checkbox-border-color-focus: var(--gds-sys-color-dark-blue-2)}:host label.form-control input[type=checkbox]{cursor:pointer;height:0;opacity:0;position:absolute;width:0;z-index:-1}:host label.form-control{align-items:flex-start}:host label.form-control:has(input[type=checkbox]){padding:.6875rem 1rem .5625rem}:host label.form-control:has(input[type=checkbox]:focus-visible):focus:not(:focus-visible){box-shadow:none;outline:0}:host label.form-control:has(input[type=checkbox]:focus-visible):focus,:host label.form-control:has(input[type=checkbox]:focus-visible):focus-within{outline-color:var(--gds-sys-color-focus-outline);outline-style:solid;outline-width:.125rem;outline-offset:.125rem}:host label.form-control input[type=checkbox]~i{margin-right:.75rem;margin-top:.0625rem;flex-shrink:0;box-shadow:inset 0 0 0 1px var(--gds-sys-color-text-primary);position:relative;border-radius:var(--gds-sys-shape-corner-small);background-color:transparent;flex:0 0 auto;height:1rem;width:1rem}:host label.form-control input[type=checkbox]:not(:checked):focus-visible~i{box-shadow:inset 0 0 0 1px var(--gds-sys-color-base-900)}:host label.form-control:hover input[type=checkbox]:not(.disabled,:disabled,:checked,:indeterminate)~i{background-color:var(--gds-sys-color-base-200)}:host label.form-control input[type=checkbox]:checked~i{background-color:var(--gds-sys-color-base-900)}:host label.form-control input[type=checkbox]:indeterminate~i{background-color:var(--gds-sys-color-base-900)}:host label.form-control input[type=checkbox]:indeterminate~i:after{border-bottom:2px solid var(--gds-sys-color-background-primary);border-left:none;transform:scale(1) rotate(0);opacity:1}:host label.form-control:has(input[type=checkbox].is-invalid){border:.0625rem solid var(--gds-sys-color-text-error);margin-bottom:.5rem}:host .is-invalid label.form-control:has(input[type=checkbox].is-invalid){border:none;margin:0}@supports (-moz-appearance: none){:host label.form-control.is-invalid{border:.0625rem solid var(--gds-sys-color-text-error);margin-bottom:.5rem}:host .is-invalid label.form-control.is-invalid{border:none;margin:0}}:host label.form-control input[type=checkbox]:disabled~i,:host label.form-control input[type=checkbox].disabled~i{background:var(--sg-form-control-bg-disabled)!important;border-color:var(--border-disabled-color)!important;cursor:not-allowed;box-shadow:inset 0 0 0 1px var(--border-disabled-color)}:host label.form-control input[type=checkbox]:disabled~i::placeholder,:host label.form-control input[type=checkbox].disabled~i::placeholder{color:var(--text-disabled-color)}:host label.form-control input[type=checkbox]:disabled:checked~i,:host label.form-control input[type=checkbox].disabled:checked~i{background:var(--sg-form-control-bg-disabled)!important;border-color:var(--border-disabled-color)!important;cursor:not-allowed;box-shadow:inset 0 0 0 1px var(--border-disabled-color)}:host label.form-control input[type=checkbox]:disabled:checked~i::placeholder,:host label.form-control input[type=checkbox].disabled:checked~i::placeholder{color:var(--text-disabled-color)}:host label.form-control input[type=checkbox]:disabled:checked~i:after,:host label.form-control input[type=checkbox].disabled:checked~i:after{border-color:var(--border-disabled-color)}:host label.form-control input[type=checkbox]:disabled~span,:host label.form-control input[type=checkbox].disabled~span{color:var(--text-disabled-color)!important;cursor:not-allowed}:host label.form-control input[type=checkbox]:disabled~span::placeholder,:host label.form-control input[type=checkbox].disabled~span::placeholder{color:var(--text-disabled-color)}:host label.form-control input[type=checkbox]~i:after{content:\"\";opacity:0;position:absolute}:host label.form-control input[type=checkbox]~i:after{border-bottom:3px solid var(--gds-sys-color-text-inverted);border-left:3px solid var(--gds-sys-color-text-inverted);height:.5rem;width:1rem;left:0;top:.1875rem;transform:scale(.601) rotate(-45deg);transform-origin:center}:host label.form-control input[type=checkbox]:checked~i:after{opacity:1}:host .form-control{padding:.75rem 1rem;border:1px solid transparent;border-radius:var(--gds-sys-shape-corner-medium);align-items:center;cursor:pointer;display:flex;flex-direction:row-reverse;font:inherit;justify-content:flex-end;position:relative;user-select:none;-webkit-user-select:none;line-height:1.125rem}:host .form-control:has(input:disabled){cursor:not-allowed}:host .form-info{font-weight:500;padding-left:1rem;margin-top:-.25rem}:host .form-info--error{display:flex;align-items:flex-start;gap:.5em;color:#9f000a}:host .form-info--error .error-icon{margin-top:.128rem;align-items:center}:host i:after{box-sizing:border-box}:host.small label.form-control:has(input[type=checkbox]){line-height:1rem;font-size:.875rem;padding:.38rem .5rem}:host.small label.form-control:has(input[type=checkbox]) span{margin-top:.125rem}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }, { kind: "directive", type: i4.NggCoreElementDirective, selector: "[nggCoreElement]" }] }); }
51
63
  }
52
64
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NggvCheckboxComponent, decorators: [{
53
65
  type: Component,
54
- args: [{ selector: 'nggv-checkbox', template: "<!-- LOCKED INPUT -->\n<div *ngIf=\"locked && state\">\n <div\n [id]=\"id + '-checkbox'\"\n class=\"nggv-field--locked\"\n [attr.name]=\"name\"\n [attr.value]=\"value\"\n >\n <ng-container *ngIf=\"!labelContentTpl\">\n {{ label }}\n </ng-container>\n <ng-template\n *ngTemplateOutlet=\"labelContentTpl ?? null; context: { $implicit: value }\"\n ></ng-template>\n </div>\n</div>\n\n<!-- INPUT WRAPPER -->\n<ng-container *ngIf=\"!locked\">\n <div>\n <!-- CHECKBOX FIELD -->\n <label\n [id]=\"id + '-label'\"\n [attr.for]=\"id + '-checkbox'\"\n class=\"form-control\"\n *transloco=\"let t; read: scope\"\n >\n <input\n #input\n type=\"checkbox\"\n [id]=\"id + '-checkbox'\"\n [attr.name]=\"name\"\n [attr.value]=\"value\"\n [attr.required]=\"required\"\n [disabled]=\"disabled\"\n [autofocus]=\"autofocus\"\n [attr.aria-label]=\"description\"\n [checked]=\"state\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"onInputChange($event)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"\n />\n <!-- LABEL -->\n <ng-template\n *ngTemplateOutlet=\"labelContentTpl || basicLabelContentTpl\"\n ></ng-template>\n <ng-template #basicLabelContentTpl>\n <!-- to trigger css:empty if no label was added -->\n <ng-container *ngIf=\"label\">\n <span\n *ngIf=\"\n optional === true || (required !== true && optional !== false)\n \"\n class=\"gds-field-label--optional\"\n >\n ({{ t('label.optional') }})\n </span>\n <span>{{ label }}</span>\n </ng-container>\n </ng-template>\n <i></i>\n </label>\n </div>\n\n <!-- ERRORS -->\n <ng-container *transloco=\"let t; read: scope\">\n <div\n class=\"form-info form-info--error\"\n [attr.for]=\"id + '-checkbox'\"\n *ngIf=\"invalid && (error || ngControl?.invalid)\"\n >\n <span class=\"error-icon\">\n <gds-icon-triangle-exclamation\n width=\"16\"\n height=\"16\"\n [solid]=\"true\"\n *nggCoreElement\n ></gds-icon-triangle-exclamation>\n </span>\n <span\n *ngIf=\"error; else errorsRef\"\n [attr.data-thook]=\"thook + '-errorlabel'\"\n >\n {{ error }}\n </span>\n <ng-template #errorsRef>\n <span\n *ngIf=\"firstError as error\"\n [attr.data-thook]=\"thook + '-errorlabel'\"\n >\n {{ t('error.field' + error?.code, error?.params) }}\n </span>\n </ng-template>\n </div>\n </ng-container>\n\n <!-- CHILDREN -->\n <ng-content></ng-content>\n</ng-container>\n", styles: [":host{--gds-sys-color-surface: #fff;--gds-ref-pallet-base200: #e8e8e8;--gds-sys-color-base: #333;--gds-sys-shape-corner-small: .125rem;--gds-ref-pallet-base600: hsl(0, 0%, 53%);--gds-sys-color-blue-dark-2: #007ac7;--gds-sys-shape-corner-medium: .25rem;--gds-comp-checkbox-container-height: 1rem;--gds-comp-checkbox-container-width: 1rem;--gds-comp-checkbox-container-color: var(--gds-sys-color-background-primary);--gds-comp-checkbox-container-color-disabled: var(--gds-ref-pallet-base300);--gds-comp-checkbox-border-color: var(--gds-ref-pallet-base900);--gds-comp-checkbox-border-radius: var(--gds-sys-shape-corner-small);--gds-comp-checkbox-hover-border-color: var(--gds-ref-pallet-base600);--gds-comp-checkbox-container-color-selected: var(--gds-ref-pallet-base900);--gds-comp-checkbox-border-color-selected: var(--gds-sys-color-text-inverted);--gds-comp-checkbox-border-color-focus: var(--gds-sys-color-dark-blue-2)}:host label.form-control input[type=checkbox]{cursor:pointer;height:0;opacity:0;position:absolute;width:0;z-index:-1}:host label.form-control{align-items:flex-start}:host label.form-control:has(input[type=checkbox]){padding:.6875rem 1rem .5625rem}:host label.form-control:has(input[type=checkbox]:focus-visible):focus:not(:focus-visible){box-shadow:none;outline:0}:host label.form-control:has(input[type=checkbox]:focus-visible):focus,:host label.form-control:has(input[type=checkbox]:focus-visible):focus-within{outline-color:var(--gds-sys-color-focus-outline);outline-style:solid;outline-width:.125rem;outline-offset:.125rem}:host label.form-control input[type=checkbox]~i{margin-right:.75rem;margin-top:.0625rem;flex-shrink:0;box-shadow:inset 0 0 0 1px var(--gds-sys-color-text-primary);position:relative;border-radius:var(--gds-sys-shape-corner-small);background-color:transparent;flex:0 0 auto;height:1rem;width:1rem}:host label.form-control input[type=checkbox]:not(:checked):focus-visible~i{box-shadow:inset 0 0 0 1px var(--gds-sys-color-base-900)}:host label.form-control:hover input[type=checkbox]:not(.disabled,:disabled,:checked,:indeterminate)~i{background-color:var(--gds-sys-color-base-200)}:host label.form-control input[type=checkbox]:checked~i{background-color:var(--gds-sys-color-base-900)}:host label.form-control input[type=checkbox]:indeterminate~i{background-color:var(--gds-sys-color-base-900)}:host label.form-control input[type=checkbox]:indeterminate~i:after{border-bottom:2px solid var(--gds-sys-color-background-primary);border-left:none;transform:scale(1) rotate(0);opacity:1}:host label.form-control:has(input[type=checkbox].is-invalid){border:.0625rem solid var(--gds-sys-color-text-error);margin-bottom:.5rem}:host .is-invalid label.form-control:has(input[type=checkbox].is-invalid){border:none;margin:0}@supports (-moz-appearance: none){:host label.form-control.is-invalid{border:.0625rem solid var(--gds-sys-color-text-error);margin-bottom:.5rem}:host .is-invalid label.form-control.is-invalid{border:none;margin:0}}:host label.form-control input[type=checkbox]:disabled~i,:host label.form-control input[type=checkbox].disabled~i{background:var(--sg-form-control-bg-disabled)!important;border-color:var(--border-disabled-color)!important;cursor:not-allowed;box-shadow:inset 0 0 0 1px var(--border-disabled-color)}:host label.form-control input[type=checkbox]:disabled~i::placeholder,:host label.form-control input[type=checkbox].disabled~i::placeholder{color:var(--text-disabled-color)}:host label.form-control input[type=checkbox]:disabled:checked~i,:host label.form-control input[type=checkbox].disabled:checked~i{background:var(--sg-form-control-bg-disabled)!important;border-color:var(--border-disabled-color)!important;cursor:not-allowed;box-shadow:inset 0 0 0 1px var(--border-disabled-color)}:host label.form-control input[type=checkbox]:disabled:checked~i::placeholder,:host label.form-control input[type=checkbox].disabled:checked~i::placeholder{color:var(--text-disabled-color)}:host label.form-control input[type=checkbox]:disabled:checked~i:after,:host label.form-control input[type=checkbox].disabled:checked~i:after{border-color:var(--border-disabled-color)}:host label.form-control input[type=checkbox]:disabled~span,:host label.form-control input[type=checkbox].disabled~span{color:var(--text-disabled-color)!important;cursor:not-allowed}:host label.form-control input[type=checkbox]:disabled~span::placeholder,:host label.form-control input[type=checkbox].disabled~span::placeholder{color:var(--text-disabled-color)}:host label.form-control input[type=checkbox]~i:after{content:\"\";opacity:0;position:absolute}:host label.form-control input[type=checkbox]~i:after{border-bottom:3px solid var(--gds-sys-color-text-inverted);border-left:3px solid var(--gds-sys-color-text-inverted);height:.5rem;width:1rem;left:0;top:.1875rem;transform:scale(.601) rotate(-45deg);transform-origin:center}:host label.form-control input[type=checkbox]:checked~i:after{opacity:1}:host .form-control{padding:.75rem 1rem;border:1px solid transparent;border-radius:var(--gds-sys-shape-corner-medium);align-items:center;cursor:pointer;display:flex;flex-direction:row-reverse;font:inherit;justify-content:flex-end;position:relative;user-select:none;-webkit-user-select:none;line-height:1.125rem}:host .form-control:has(input:disabled){cursor:not-allowed}:host .form-info{font-weight:500;padding-left:1rem;margin-top:-.25rem}:host .form-info--error{display:flex;align-items:flex-start;gap:.5em;color:#9f000a}:host .form-info--error .error-icon{margin-top:.128rem;align-items:center}:host i:after{box-sizing:border-box}\n"] }]
66
+ args: [{ selector: 'nggv-checkbox', template: "<!-- LOCKED INPUT -->\n<div *ngIf=\"locked && state\">\n <div\n [id]=\"id + '-checkbox'\"\n class=\"nggv-field--locked\"\n [attr.name]=\"name\"\n [attr.value]=\"value\"\n >\n <ng-container *ngIf=\"!labelContentTpl\">\n {{ label }}\n </ng-container>\n <ng-template\n *ngTemplateOutlet=\"labelContentTpl ?? null; context: { $implicit: value }\"\n ></ng-template>\n </div>\n</div>\n\n<!-- INPUT WRAPPER -->\n<ng-container *ngIf=\"!locked\">\n <div>\n <!-- CHECKBOX FIELD -->\n <label\n [id]=\"id + '-label'\"\n [attr.for]=\"id + '-checkbox'\"\n class=\"form-control\"\n *transloco=\"let t; read: scope\"\n >\n <input\n #input\n type=\"checkbox\"\n [id]=\"id + '-checkbox'\"\n [attr.name]=\"name\"\n [attr.value]=\"value\"\n [attr.required]=\"required\"\n [disabled]=\"disabled\"\n [autofocus]=\"autofocus\"\n [attr.aria-label]=\"description\"\n [checked]=\"state\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"onInputChange($event)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"\n />\n <!-- LABEL -->\n <ng-template\n *ngTemplateOutlet=\"labelContentTpl || basicLabelContentTpl\"\n ></ng-template>\n <ng-template #basicLabelContentTpl>\n <!-- to trigger css:empty if no label was added -->\n <ng-container *ngIf=\"label\">\n <span\n *ngIf=\"\n optional === true || (required !== true && optional !== false)\n \"\n class=\"gds-field-label--optional\"\n >\n ({{ t('label.optional') }})\n </span>\n <span>{{ label }}</span>\n </ng-container>\n </ng-template>\n <i></i>\n </label>\n </div>\n\n <!-- ERRORS -->\n <ng-container *transloco=\"let t; read: scope\">\n <div\n class=\"form-info form-info--error\"\n [attr.for]=\"id + '-checkbox'\"\n *ngIf=\"invalid && (error || ngControl?.invalid)\"\n >\n <span class=\"error-icon\">\n <gds-icon-triangle-exclamation\n width=\"16\"\n height=\"16\"\n [solid]=\"true\"\n *nggCoreElement\n ></gds-icon-triangle-exclamation>\n </span>\n <span\n *ngIf=\"error; else errorsRef\"\n [attr.data-thook]=\"thook + '-errorlabel'\"\n >\n {{ error }}\n </span>\n <ng-template #errorsRef>\n <span\n *ngIf=\"firstError as error\"\n [attr.data-thook]=\"thook + '-errorlabel'\"\n >\n {{ t('error.field' + error?.code, error?.params) }}\n </span>\n </ng-template>\n </div>\n </ng-container>\n\n <!-- CHILDREN -->\n <ng-content></ng-content>\n</ng-container>\n", styles: [":host{--gds-sys-color-surface: #fff;--gds-ref-pallet-base200: #e8e8e8;--gds-sys-color-base: #333;--gds-sys-shape-corner-small: .125rem;--gds-ref-pallet-base600: hsl(0, 0%, 53%);--gds-sys-color-blue-dark-2: #007ac7;--gds-sys-shape-corner-medium: .25rem;--gds-comp-checkbox-container-height: 1rem;--gds-comp-checkbox-container-width: 1rem;--gds-comp-checkbox-container-color: var(--gds-sys-color-background-primary);--gds-comp-checkbox-container-color-disabled: var(--gds-ref-pallet-base300);--gds-comp-checkbox-border-color: var(--gds-ref-pallet-base900);--gds-comp-checkbox-border-radius: var(--gds-sys-shape-corner-small);--gds-comp-checkbox-hover-border-color: var(--gds-ref-pallet-base600);--gds-comp-checkbox-container-color-selected: var(--gds-ref-pallet-base900);--gds-comp-checkbox-border-color-selected: var(--gds-sys-color-text-inverted);--gds-comp-checkbox-border-color-focus: var(--gds-sys-color-dark-blue-2)}:host label.form-control input[type=checkbox]{cursor:pointer;height:0;opacity:0;position:absolute;width:0;z-index:-1}:host label.form-control{align-items:flex-start}:host label.form-control:has(input[type=checkbox]){padding:.6875rem 1rem .5625rem}:host label.form-control:has(input[type=checkbox]:focus-visible):focus:not(:focus-visible){box-shadow:none;outline:0}:host label.form-control:has(input[type=checkbox]:focus-visible):focus,:host label.form-control:has(input[type=checkbox]:focus-visible):focus-within{outline-color:var(--gds-sys-color-focus-outline);outline-style:solid;outline-width:.125rem;outline-offset:.125rem}:host label.form-control input[type=checkbox]~i{margin-right:.75rem;margin-top:.0625rem;flex-shrink:0;box-shadow:inset 0 0 0 1px var(--gds-sys-color-text-primary);position:relative;border-radius:var(--gds-sys-shape-corner-small);background-color:transparent;flex:0 0 auto;height:1rem;width:1rem}:host label.form-control input[type=checkbox]:not(:checked):focus-visible~i{box-shadow:inset 0 0 0 1px var(--gds-sys-color-base-900)}:host label.form-control:hover input[type=checkbox]:not(.disabled,:disabled,:checked,:indeterminate)~i{background-color:var(--gds-sys-color-base-200)}:host label.form-control input[type=checkbox]:checked~i{background-color:var(--gds-sys-color-base-900)}:host label.form-control input[type=checkbox]:indeterminate~i{background-color:var(--gds-sys-color-base-900)}:host label.form-control input[type=checkbox]:indeterminate~i:after{border-bottom:2px solid var(--gds-sys-color-background-primary);border-left:none;transform:scale(1) rotate(0);opacity:1}:host label.form-control:has(input[type=checkbox].is-invalid){border:.0625rem solid var(--gds-sys-color-text-error);margin-bottom:.5rem}:host .is-invalid label.form-control:has(input[type=checkbox].is-invalid){border:none;margin:0}@supports (-moz-appearance: none){:host label.form-control.is-invalid{border:.0625rem solid var(--gds-sys-color-text-error);margin-bottom:.5rem}:host .is-invalid label.form-control.is-invalid{border:none;margin:0}}:host label.form-control input[type=checkbox]:disabled~i,:host label.form-control input[type=checkbox].disabled~i{background:var(--sg-form-control-bg-disabled)!important;border-color:var(--border-disabled-color)!important;cursor:not-allowed;box-shadow:inset 0 0 0 1px var(--border-disabled-color)}:host label.form-control input[type=checkbox]:disabled~i::placeholder,:host label.form-control input[type=checkbox].disabled~i::placeholder{color:var(--text-disabled-color)}:host label.form-control input[type=checkbox]:disabled:checked~i,:host label.form-control input[type=checkbox].disabled:checked~i{background:var(--sg-form-control-bg-disabled)!important;border-color:var(--border-disabled-color)!important;cursor:not-allowed;box-shadow:inset 0 0 0 1px var(--border-disabled-color)}:host label.form-control input[type=checkbox]:disabled:checked~i::placeholder,:host label.form-control input[type=checkbox].disabled:checked~i::placeholder{color:var(--text-disabled-color)}:host label.form-control input[type=checkbox]:disabled:checked~i:after,:host label.form-control input[type=checkbox].disabled:checked~i:after{border-color:var(--border-disabled-color)}:host label.form-control input[type=checkbox]:disabled~span,:host label.form-control input[type=checkbox].disabled~span{color:var(--text-disabled-color)!important;cursor:not-allowed}:host label.form-control input[type=checkbox]:disabled~span::placeholder,:host label.form-control input[type=checkbox].disabled~span::placeholder{color:var(--text-disabled-color)}:host label.form-control input[type=checkbox]~i:after{content:\"\";opacity:0;position:absolute}:host label.form-control input[type=checkbox]~i:after{border-bottom:3px solid var(--gds-sys-color-text-inverted);border-left:3px solid var(--gds-sys-color-text-inverted);height:.5rem;width:1rem;left:0;top:.1875rem;transform:scale(.601) rotate(-45deg);transform-origin:center}:host label.form-control input[type=checkbox]:checked~i:after{opacity:1}:host .form-control{padding:.75rem 1rem;border:1px solid transparent;border-radius:var(--gds-sys-shape-corner-medium);align-items:center;cursor:pointer;display:flex;flex-direction:row-reverse;font:inherit;justify-content:flex-end;position:relative;user-select:none;-webkit-user-select:none;line-height:1.125rem}:host .form-control:has(input:disabled){cursor:not-allowed}:host .form-info{font-weight:500;padding-left:1rem;margin-top:-.25rem}:host .form-info--error{display:flex;align-items:flex-start;gap:.5em;color:#9f000a}:host .form-info--error .error-icon{margin-top:.128rem;align-items:center}:host i:after{box-sizing:border-box}:host.small label.form-control:has(input[type=checkbox]){line-height:1rem;font-size:.875rem;padding:.38rem .5rem}:host.small label.form-control:has(input[type=checkbox]) span{margin-top:.125rem}\n"] }]
55
67
  }], ctorParameters: () => [{ type: i1.NgControl, decorators: [{
56
68
  type: Self
57
69
  }, {
@@ -66,9 +78,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
66
78
  args: ['attr.data-thook']
67
79
  }, {
68
80
  type: Input
81
+ }], isSmall: [{
82
+ type: HostBinding,
83
+ args: ['class.small']
84
+ }], isLarge: [{
85
+ type: HostBinding,
86
+ args: ['class.large']
87
+ }], size: [{
88
+ type: Input
69
89
  }], optionalLabel: [{
70
90
  type: Input
71
91
  }], valueChange: [{
72
92
  type: Output
73
93
  }] } });
74
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy92LWFuZ3VsYXIvY2hlY2tib3gvY2hlY2tib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy92LWFuZ3VsYXIvY2hlY2tib3gvY2hlY2tib3guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxvRUFBb0UsQ0FBQTtBQUUzRSxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osV0FBVyxFQUNYLE1BQU0sRUFDTixLQUFLLEVBQ0wsUUFBUSxFQUNSLE1BQU0sRUFDTixJQUFJLEdBQ0wsTUFBTSxlQUFlLENBQUE7QUFDdEIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQzFDLE9BQU8sRUFBRSxlQUFlLEVBQWtCLE1BQU0sb0JBQW9CLENBQUE7QUFFcEUsT0FBTyxFQUFFLHFDQUFxQyxFQUFFLE1BQU0sbUVBQW1FLENBQUE7Ozs7OztBQUV6SDs7O0dBR0c7QUFNSCxNQUFNLE9BQU8scUJBQXNCLFNBQVEscUNBQXFDO0lBUzlFLFlBR1MsU0FBb0IsRUFHakIsY0FBOEIsRUFDOUIsR0FBc0I7UUFFaEMsS0FBSyxDQUFDLFNBQVMsRUFBRSxjQUFjLEVBQUUsR0FBRyxDQUFDLENBQUE7UUFOOUIsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUdqQixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFmbEMsb0ZBQW9GO1FBQzNDLFVBQUssR0FDNUMsVUFBVSxDQUFBO1FBQ0gsa0JBQWEsR0FBRyxVQUFVLENBQUE7UUFFaEIsZ0JBQVcsR0FDNUIsSUFBSSxZQUFZLEVBQVUsQ0FBQTtJQVk1QixDQUFDO0lBRUQsZ0JBQWdCO0lBQ2hCLGFBQWEsQ0FBQyxLQUFZO1FBQ3hCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQTtRQUN2QixJQUFJLElBQUksQ0FBQyxRQUFRO1lBQUUsT0FBTTtRQUN6QixJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQTtRQUN4QixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUE7UUFDaEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDM0IsQ0FBQztJQUVELHVHQUF1RztJQUN2RyxVQUFVLENBQUMsS0FBVTtRQUNuQixpRkFBaUY7UUFDakYsS0FBSyxDQUFDLFVBQVUsQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ3hDLENBQUM7SUFFRCxpR0FBaUc7SUFDakcsZ0JBQWdCLENBQUMsRUFBeUI7UUFDeEMsc0NBQXNDO1FBQ3RDLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUMxQixNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQTtZQUMxQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUE7WUFDVixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUMvQixDQUFDLENBQUE7SUFDSCxDQUFDOytHQTVDVSxxQkFBcUIsdUVBY3RCLGVBQWU7bUdBZGQscUJBQXFCLDRPQzNCbEMsNHZGQW9HQTs7NEZEekVhLHFCQUFxQjtrQkFMakMsU0FBUzsrQkFDRSxlQUFlOzswQkFjdEIsSUFBSTs7MEJBQ0osUUFBUTs7MEJBRVIsUUFBUTs7MEJBQ1IsTUFBTTsyQkFBQyxlQUFlO3lFQVpnQixLQUFLO3NCQUE3QyxXQUFXO3VCQUFDLGlCQUFpQjs7c0JBQUcsS0FBSztnQkFFN0IsYUFBYTtzQkFBckIsS0FBSztnQkFFYSxXQUFXO3NCQUE3QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICdAc2ViZ3JvdXAvZ3JlZW4tY29yZS9jb21wb25lbnRzL2ljb24vaWNvbnMvdHJpYW5nbGUtZXhjbGFtYXRpb24uanMnXG5cbmltcG9ydCB7XG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdEJpbmRpbmcsXG4gIEluamVjdCxcbiAgSW5wdXQsXG4gIE9wdGlvbmFsLFxuICBPdXRwdXQsXG4gIFNlbGYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBOZ0NvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3JtcydcbmltcG9ydCB7IFRSQU5TTE9DT19TQ09QRSwgVHJhbnNsb2NvU2NvcGUgfSBmcm9tICdAanN2ZXJzZS90cmFuc2xvY28nXG5cbmltcG9ydCB7IE5nZ3ZCYXNlQ29udHJvbFZhbHVlQWNjZXNzb3JDb21wb25lbnQgfSBmcm9tICdAc2ViZ3JvdXAvZ3JlZW4tYW5ndWxhci9zcmMvdi1hbmd1bGFyL2Jhc2UtY29udHJvbC12YWx1ZS1hY2Nlc3NvcidcblxuLyoqXG4gKiBDaGVja2JveGVzIGFsbG93IGEgdXNlciB0byB0b2dnbGUgYW4gb3B0aW9uIG9uIG9yIG9mZiwgb3IgbWFrZSBtdWx0aXBsZSBjaG9pY2VzIGluIGEgc2V0IG9mIGF2YWlsYWJsZSBvcHRpb25zLlxuICogaHR0cHM6Ly9kZXNpZ25saWJyYXJ5LnNlYmdyb3VwLmNvbS9jb21wb25lbnRzL2NvbXBvbmVudC1jaGVja2JveFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICduZ2d2LWNoZWNrYm94JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NoZWNrYm94LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2hlY2tib3guY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgTmdndkNoZWNrYm94Q29tcG9uZW50IGV4dGVuZHMgTmdndkJhc2VDb250cm9sVmFsdWVBY2Nlc3NvckNvbXBvbmVudCB7XG4gIC8qKiBTcGVjaWFsIHByb3BlcnR5IHVzZWQgZm9yIHNlbGVjdGluZyBET00gZWxlbWVudHMgZHVyaW5nIGF1dG9tYXRlZCBVSSB0ZXN0aW5nLiAqL1xuICBASG9zdEJpbmRpbmcoJ2F0dHIuZGF0YS10aG9vaycpIEBJbnB1dCgpIHRob29rOiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkID1cbiAgICAnY2hlY2tib3gnXG4gIEBJbnB1dCgpIG9wdGlvbmFsTGFiZWwgPSAnT3B0aW9uYWwnXG5cbiAgQE91dHB1dCgpIHJlYWRvbmx5IHZhbHVlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9XG4gICAgbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KClcblxuICBjb25zdHJ1Y3RvcihcbiAgICBAU2VsZigpXG4gICAgQE9wdGlvbmFsKClcbiAgICBwdWJsaWMgbmdDb250cm9sOiBOZ0NvbnRyb2wsXG4gICAgQE9wdGlvbmFsKClcbiAgICBASW5qZWN0KFRSQU5TTE9DT19TQ09QRSlcbiAgICBwcm90ZWN0ZWQgdHJhbnNsb2NvU2NvcGU6IFRyYW5zbG9jb1Njb3BlLFxuICAgIHByb3RlY3RlZCBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICApIHtcbiAgICBzdXBlcihuZ0NvbnRyb2wsIHRyYW5zbG9jb1Njb3BlLCBjZHIpXG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIG9uSW5wdXRDaGFuZ2UoZXZlbnQ6IEV2ZW50KSB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkgcmV0dXJuXG4gICAgdGhpcy5zdGF0ZSA9ICF0aGlzLnN0YXRlXG4gICAgdGhpcy5vblRvdWNoZWQoKVxuICAgIHRoaXMub25DaGFuZ2UodGhpcy5zdGF0ZSlcbiAgfVxuXG4gIC8qKiBXcml0ZXMgYSBuZXcgdmFsdWUgb2YgdHJ1ZSBvciBmYWxzZSBiYXNlZCBvbiBpZiBhcmd1bWVudCBtYXRjaGVzIHRoaXMgY29tcG9uZW50cyB2YWx1ZSBwcm9wZXJ0eS4gKi9cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgLy8gUGhhbnRvbSBudWxsIHZhbHVlIG9uIGZpcnN0IGxvYWQgaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9wdWxsLzM4MTQwXG4gICAgc3VwZXIud3JpdGVWYWx1ZSh2YWx1ZSA9PT0gdGhpcy52YWx1ZSlcbiAgfVxuXG4gIC8qKiBSZWdpc3RlcnMgYSBjYWxsYmFjayBmdW5jdGlvbiB0aGF0IGlzIGNhbGxlZCB3aGVuIHRoZSBjaGlsZCBpbnB1dCBlbGVtZW50J3MgdmFsdWUgY2hhbmdlcy4gKi9cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKGNoZWNrZWQ6IGFueSkgPT4gYW55KSB7XG4gICAgLy8gT3ZlcnJpZGUgZGVmYXVsdCB0byB1cGRhdGUgcmVnaXN0cnlcbiAgICB0aGlzLm9uQ2hhbmdlID0gKGNoZWNrZWQpID0+IHtcbiAgICAgIGNvbnN0IG91dHB1dCA9IGNoZWNrZWQgPyB0aGlzLnZhbHVlIDogbnVsbFxuICAgICAgZm4ob3V0cHV0KVxuICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KG91dHB1dClcbiAgICB9XG4gIH1cbn1cbiIsIjwhLS0gTE9DS0VEIElOUFVUIC0tPlxuPGRpdiAqbmdJZj1cImxvY2tlZCAmJiBzdGF0ZVwiPlxuICA8ZGl2XG4gICAgW2lkXT1cImlkICsgJy1jaGVja2JveCdcIlxuICAgIGNsYXNzPVwibmdndi1maWVsZC0tbG9ja2VkXCJcbiAgICBbYXR0ci5uYW1lXT1cIm5hbWVcIlxuICAgIFthdHRyLnZhbHVlXT1cInZhbHVlXCJcbiAgPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhbGFiZWxDb250ZW50VHBsXCI+XG4gICAgICB7eyBsYWJlbCB9fVxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJsYWJlbENvbnRlbnRUcGwgPz8gbnVsbDsgY29udGV4dDogeyAkaW1wbGljaXQ6IHZhbHVlIH1cIlxuICAgID48L25nLXRlbXBsYXRlPlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48IS0tIElOUFVUIFdSQVBQRVIgLS0+XG48bmctY29udGFpbmVyICpuZ0lmPVwiIWxvY2tlZFwiPlxuICA8ZGl2PlxuICAgIDwhLS0gQ0hFQ0tCT1ggRklFTEQgLS0+XG4gICAgPGxhYmVsXG4gICAgICBbaWRdPVwiaWQgKyAnLWxhYmVsJ1wiXG4gICAgICBbYXR0ci5mb3JdPVwiaWQgKyAnLWNoZWNrYm94J1wiXG4gICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAqdHJhbnNsb2NvPVwibGV0IHQ7IHJlYWQ6IHNjb3BlXCJcbiAgICA+XG4gICAgICA8aW5wdXRcbiAgICAgICAgI2lucHV0XG4gICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgIFtpZF09XCJpZCArICctY2hlY2tib3gnXCJcbiAgICAgICAgW2F0dHIubmFtZV09XCJuYW1lXCJcbiAgICAgICAgW2F0dHIudmFsdWVdPVwidmFsdWVcIlxuICAgICAgICBbYXR0ci5yZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgIFthdXRvZm9jdXNdPVwiYXV0b2ZvY3VzXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJkZXNjcmlwdGlvblwiXG4gICAgICAgIFtjaGVja2VkXT1cInN0YXRlXCJcbiAgICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICAgIChjaGFuZ2UpPVwib25JbnB1dENoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgKGZvY3VzKT1cIm9uRm9jdXMoJGV2ZW50KVwiXG4gICAgICAgIChibHVyKT1cIm9uQmx1cigkZXZlbnQpXCJcbiAgICAgIC8+XG4gICAgICA8IS0tIExBQkVMIC0tPlxuICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwibGFiZWxDb250ZW50VHBsIHx8IGJhc2ljTGFiZWxDb250ZW50VHBsXCJcbiAgICAgID48L25nLXRlbXBsYXRlPlxuICAgICAgPG5nLXRlbXBsYXRlICNiYXNpY0xhYmVsQ29udGVudFRwbD5cbiAgICAgICAgPCEtLSB0byB0cmlnZ2VyIGNzczplbXB0eSBpZiBubyBsYWJlbCB3YXMgYWRkZWQgLS0+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJsYWJlbFwiPlxuICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICBvcHRpb25hbCA9PT0gdHJ1ZSB8fCAocmVxdWlyZWQgIT09IHRydWUgJiYgb3B0aW9uYWwgIT09IGZhbHNlKVxuICAgICAgICAgICAgXCJcbiAgICAgICAgICAgIGNsYXNzPVwiZ2RzLWZpZWxkLWxhYmVsLS1vcHRpb25hbFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgKHt7IHQoJ2xhYmVsLm9wdGlvbmFsJykgfX0pXG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDxzcGFuPnt7IGxhYmVsIH19PC9zcGFuPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8aT48L2k+XG4gICAgPC9sYWJlbD5cbiAgPC9kaXY+XG5cbiAgPCEtLSBFUlJPUlMgLS0+XG4gIDxuZy1jb250YWluZXIgKnRyYW5zbG9jbz1cImxldCB0OyByZWFkOiBzY29wZVwiPlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwiZm9ybS1pbmZvIGZvcm0taW5mby0tZXJyb3JcIlxuICAgICAgW2F0dHIuZm9yXT1cImlkICsgJy1jaGVja2JveCdcIlxuICAgICAgKm5nSWY9XCJpbnZhbGlkICYmIChlcnJvciB8fCBuZ0NvbnRyb2w/LmludmFsaWQpXCJcbiAgICA+XG4gICAgICA8c3BhbiBjbGFzcz1cImVycm9yLWljb25cIj5cbiAgICAgICAgPGdkcy1pY29uLXRyaWFuZ2xlLWV4Y2xhbWF0aW9uXG4gICAgICAgICAgd2lkdGg9XCIxNlwiXG4gICAgICAgICAgaGVpZ2h0PVwiMTZcIlxuICAgICAgICAgIFtzb2xpZF09XCJ0cnVlXCJcbiAgICAgICAgICAqbmdnQ29yZUVsZW1lbnRcbiAgICAgICAgPjwvZ2RzLWljb24tdHJpYW5nbGUtZXhjbGFtYXRpb24+XG4gICAgICA8L3NwYW4+XG4gICAgICA8c3BhblxuICAgICAgICAqbmdJZj1cImVycm9yOyBlbHNlIGVycm9yc1JlZlwiXG4gICAgICAgIFthdHRyLmRhdGEtdGhvb2tdPVwidGhvb2sgKyAnLWVycm9ybGFiZWwnXCJcbiAgICAgID5cbiAgICAgICAge3sgZXJyb3IgfX1cbiAgICAgIDwvc3Bhbj5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjZXJyb3JzUmVmPlxuICAgICAgICA8c3BhblxuICAgICAgICAgICpuZ0lmPVwiZmlyc3RFcnJvciBhcyBlcnJvclwiXG4gICAgICAgICAgW2F0dHIuZGF0YS10aG9va109XCJ0aG9vayArICctZXJyb3JsYWJlbCdcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgdCgnZXJyb3IuZmllbGQnICsgZXJyb3I/LmNvZGUsIGVycm9yPy5wYXJhbXMpIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDwhLS0gQ0hJTERSRU4gLS0+XG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvbmctY29udGFpbmVyPlxuIl19
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy92LWFuZ3VsYXIvY2hlY2tib3gvY2hlY2tib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy92LWFuZ3VsYXIvY2hlY2tib3gvY2hlY2tib3guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxvRUFBb0UsQ0FBQTtBQUUzRSxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osV0FBVyxFQUNYLE1BQU0sRUFDTixLQUFLLEVBQ0wsUUFBUSxFQUNSLE1BQU0sRUFDTixJQUFJLEdBQ0wsTUFBTSxlQUFlLENBQUE7QUFDdEIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQzFDLE9BQU8sRUFBRSxlQUFlLEVBQWtCLE1BQU0sb0JBQW9CLENBQUE7QUFFcEUsT0FBTyxFQUFFLHFDQUFxQyxFQUFFLE1BQU0sbUVBQW1FLENBQUE7Ozs7OztBQUV6SDs7O0dBR0c7QUFNSCxNQUFNLE9BQU8scUJBQXNCLFNBQVEscUNBQXFDO0lBTzlFLElBQWdDLE9BQU87UUFDckMsT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLE9BQU8sQ0FBQTtJQUM5QixDQUFDO0lBRUQsSUFBZ0MsT0FBTztRQUNyQyxPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssT0FBTyxDQUFBO0lBQzlCLENBQUM7SUFZRCxZQUdTLFNBQW9CLEVBR2pCLGNBQThCLEVBQzlCLEdBQXNCO1FBRWhDLEtBQUssQ0FBQyxTQUFTLEVBQUUsY0FBYyxFQUFFLEdBQUcsQ0FBQyxDQUFBO1FBTjlCLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFHakIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBL0JsQzs7V0FFRztRQUNzQyxVQUFLLEdBQzVDLFVBQVUsQ0FBQTtRQVVaOztXQUVHO1FBQ00sU0FBSSxHQUFzQixPQUFPLENBQUE7UUFFakMsa0JBQWEsR0FBRyxVQUFVLENBQUE7UUFFaEIsZ0JBQVcsR0FDNUIsSUFBSSxZQUFZLEVBQVUsQ0FBQTtJQVk1QixDQUFDO0lBRUQsZ0JBQWdCO0lBQ2hCLGFBQWEsQ0FBQyxLQUFZO1FBQ3hCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQTtRQUN2QixJQUFJLElBQUksQ0FBQyxRQUFRO1lBQUUsT0FBTTtRQUN6QixJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQTtRQUN4QixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUE7UUFDaEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDM0IsQ0FBQztJQUVELHVHQUF1RztJQUN2RyxVQUFVLENBQUMsS0FBVTtRQUNuQixpRkFBaUY7UUFDakYsS0FBSyxDQUFDLFVBQVUsQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ3hDLENBQUM7SUFFRCxpR0FBaUc7SUFDakcsZ0JBQWdCLENBQUMsRUFBeUI7UUFDeEMsc0NBQXNDO1FBQ3RDLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUMxQixNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQTtZQUMxQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUE7WUFDVixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUMvQixDQUFDLENBQUE7SUFDSCxDQUFDOytHQTVEVSxxQkFBcUIsdUVBOEJ0QixlQUFlO21HQTlCZCxxQkFBcUIsd1RDM0JsQyw0dkZBb0dBOzs0RkR6RWEscUJBQXFCO2tCQUxqQyxTQUFTOytCQUNFLGVBQWU7OzBCQThCdEIsSUFBSTs7MEJBQ0osUUFBUTs7MEJBRVIsUUFBUTs7MEJBQ1IsTUFBTTsyQkFBQyxlQUFlO3lFQTFCZ0IsS0FBSztzQkFBN0MsV0FBVzt1QkFBQyxpQkFBaUI7O3NCQUFHLEtBQUs7Z0JBR04sT0FBTztzQkFBdEMsV0FBVzt1QkFBQyxhQUFhO2dCQUlNLE9BQU87c0JBQXRDLFdBQVc7dUJBQUMsYUFBYTtnQkFPakIsSUFBSTtzQkFBWixLQUFLO2dCQUVHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBRWEsV0FBVztzQkFBN0IsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAnQHNlYmdyb3VwL2dyZWVuLWNvcmUvY29tcG9uZW50cy9pY29uL2ljb25zL3RyaWFuZ2xlLWV4Y2xhbWF0aW9uLmpzJ1xuXG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RCaW5kaW5nLFxuICBJbmplY3QsXG4gIElucHV0LFxuICBPcHRpb25hbCxcbiAgT3V0cHV0LFxuICBTZWxmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnXG5pbXBvcnQgeyBUUkFOU0xPQ09fU0NPUEUsIFRyYW5zbG9jb1Njb3BlIH0gZnJvbSAnQGpzdmVyc2UvdHJhbnNsb2NvJ1xuXG5pbXBvcnQgeyBOZ2d2QmFzZUNvbnRyb2xWYWx1ZUFjY2Vzc29yQ29tcG9uZW50IH0gZnJvbSAnQHNlYmdyb3VwL2dyZWVuLWFuZ3VsYXIvc3JjL3YtYW5ndWxhci9iYXNlLWNvbnRyb2wtdmFsdWUtYWNjZXNzb3InXG5cbi8qKlxuICogQ2hlY2tib3hlcyBhbGxvdyBhIHVzZXIgdG8gdG9nZ2xlIGFuIG9wdGlvbiBvbiBvciBvZmYsIG9yIG1ha2UgbXVsdGlwbGUgY2hvaWNlcyBpbiBhIHNldCBvZiBhdmFpbGFibGUgb3B0aW9ucy5cbiAqIGh0dHBzOi8vZGVzaWdubGlicmFyeS5zZWJncm91cC5jb20vY29tcG9uZW50cy9jb21wb25lbnQtY2hlY2tib3hcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmdndi1jaGVja2JveCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jaGVja2JveC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NoZWNrYm94LmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIE5nZ3ZDaGVja2JveENvbXBvbmVudCBleHRlbmRzIE5nZ3ZCYXNlQ29udHJvbFZhbHVlQWNjZXNzb3JDb21wb25lbnQge1xuICAvKipcbiAgICogU3BlY2lhbCBwcm9wZXJ0eSB1c2VkIGZvciBzZWxlY3RpbmcgRE9NIGVsZW1lbnRzIGR1cmluZyBhdXRvbWF0ZWQgVUkgdGVzdGluZy5cbiAgICovXG4gIEBIb3N0QmluZGluZygnYXR0ci5kYXRhLXRob29rJykgQElucHV0KCkgdGhvb2s6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQgPVxuICAgICdjaGVja2JveCdcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnNtYWxsJykgZ2V0IGlzU21hbGwoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc2l6ZSA9PT0gJ3NtYWxsJ1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5sYXJnZScpIGdldCBpc0xhcmdlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnNpemUgPT09ICdsYXJnZSdcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBkaXNwbGF5ZWQgc2l6ZSBvZiB0aGUgY2hlY2tib3hcbiAgICovXG4gIEBJbnB1dCgpIHNpemU6ICdzbWFsbCcgfCAnbGFyZ2UnID0gJ2xhcmdlJ1xuXG4gIEBJbnB1dCgpIG9wdGlvbmFsTGFiZWwgPSAnT3B0aW9uYWwnXG5cbiAgQE91dHB1dCgpIHJlYWRvbmx5IHZhbHVlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9XG4gICAgbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KClcblxuICBjb25zdHJ1Y3RvcihcbiAgICBAU2VsZigpXG4gICAgQE9wdGlvbmFsKClcbiAgICBwdWJsaWMgbmdDb250cm9sOiBOZ0NvbnRyb2wsXG4gICAgQE9wdGlvbmFsKClcbiAgICBASW5qZWN0KFRSQU5TTE9DT19TQ09QRSlcbiAgICBwcm90ZWN0ZWQgdHJhbnNsb2NvU2NvcGU6IFRyYW5zbG9jb1Njb3BlLFxuICAgIHByb3RlY3RlZCBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICApIHtcbiAgICBzdXBlcihuZ0NvbnRyb2wsIHRyYW5zbG9jb1Njb3BlLCBjZHIpXG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIG9uSW5wdXRDaGFuZ2UoZXZlbnQ6IEV2ZW50KSB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkgcmV0dXJuXG4gICAgdGhpcy5zdGF0ZSA9ICF0aGlzLnN0YXRlXG4gICAgdGhpcy5vblRvdWNoZWQoKVxuICAgIHRoaXMub25DaGFuZ2UodGhpcy5zdGF0ZSlcbiAgfVxuXG4gIC8qKiBXcml0ZXMgYSBuZXcgdmFsdWUgb2YgdHJ1ZSBvciBmYWxzZSBiYXNlZCBvbiBpZiBhcmd1bWVudCBtYXRjaGVzIHRoaXMgY29tcG9uZW50cyB2YWx1ZSBwcm9wZXJ0eS4gKi9cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgLy8gUGhhbnRvbSBudWxsIHZhbHVlIG9uIGZpcnN0IGxvYWQgaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9wdWxsLzM4MTQwXG4gICAgc3VwZXIud3JpdGVWYWx1ZSh2YWx1ZSA9PT0gdGhpcy52YWx1ZSlcbiAgfVxuXG4gIC8qKiBSZWdpc3RlcnMgYSBjYWxsYmFjayBmdW5jdGlvbiB0aGF0IGlzIGNhbGxlZCB3aGVuIHRoZSBjaGlsZCBpbnB1dCBlbGVtZW50J3MgdmFsdWUgY2hhbmdlcy4gKi9cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKGNoZWNrZWQ6IGFueSkgPT4gYW55KSB7XG4gICAgLy8gT3ZlcnJpZGUgZGVmYXVsdCB0byB1cGRhdGUgcmVnaXN0cnlcbiAgICB0aGlzLm9uQ2hhbmdlID0gKGNoZWNrZWQpID0+IHtcbiAgICAgIGNvbnN0IG91dHB1dCA9IGNoZWNrZWQgPyB0aGlzLnZhbHVlIDogbnVsbFxuICAgICAgZm4ob3V0cHV0KVxuICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KG91dHB1dClcbiAgICB9XG4gIH1cbn1cbiIsIjwhLS0gTE9DS0VEIElOUFVUIC0tPlxuPGRpdiAqbmdJZj1cImxvY2tlZCAmJiBzdGF0ZVwiPlxuICA8ZGl2XG4gICAgW2lkXT1cImlkICsgJy1jaGVja2JveCdcIlxuICAgIGNsYXNzPVwibmdndi1maWVsZC0tbG9ja2VkXCJcbiAgICBbYXR0ci5uYW1lXT1cIm5hbWVcIlxuICAgIFthdHRyLnZhbHVlXT1cInZhbHVlXCJcbiAgPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhbGFiZWxDb250ZW50VHBsXCI+XG4gICAgICB7eyBsYWJlbCB9fVxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJsYWJlbENvbnRlbnRUcGwgPz8gbnVsbDsgY29udGV4dDogeyAkaW1wbGljaXQ6IHZhbHVlIH1cIlxuICAgID48L25nLXRlbXBsYXRlPlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48IS0tIElOUFVUIFdSQVBQRVIgLS0+XG48bmctY29udGFpbmVyICpuZ0lmPVwiIWxvY2tlZFwiPlxuICA8ZGl2PlxuICAgIDwhLS0gQ0hFQ0tCT1ggRklFTEQgLS0+XG4gICAgPGxhYmVsXG4gICAgICBbaWRdPVwiaWQgKyAnLWxhYmVsJ1wiXG4gICAgICBbYXR0ci5mb3JdPVwiaWQgKyAnLWNoZWNrYm94J1wiXG4gICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAqdHJhbnNsb2NvPVwibGV0IHQ7IHJlYWQ6IHNjb3BlXCJcbiAgICA+XG4gICAgICA8aW5wdXRcbiAgICAgICAgI2lucHV0XG4gICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgIFtpZF09XCJpZCArICctY2hlY2tib3gnXCJcbiAgICAgICAgW2F0dHIubmFtZV09XCJuYW1lXCJcbiAgICAgICAgW2F0dHIudmFsdWVdPVwidmFsdWVcIlxuICAgICAgICBbYXR0ci5yZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgIFthdXRvZm9jdXNdPVwiYXV0b2ZvY3VzXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJkZXNjcmlwdGlvblwiXG4gICAgICAgIFtjaGVja2VkXT1cInN0YXRlXCJcbiAgICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICAgIChjaGFuZ2UpPVwib25JbnB1dENoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgKGZvY3VzKT1cIm9uRm9jdXMoJGV2ZW50KVwiXG4gICAgICAgIChibHVyKT1cIm9uQmx1cigkZXZlbnQpXCJcbiAgICAgIC8+XG4gICAgICA8IS0tIExBQkVMIC0tPlxuICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwibGFiZWxDb250ZW50VHBsIHx8IGJhc2ljTGFiZWxDb250ZW50VHBsXCJcbiAgICAgID48L25nLXRlbXBsYXRlPlxuICAgICAgPG5nLXRlbXBsYXRlICNiYXNpY0xhYmVsQ29udGVudFRwbD5cbiAgICAgICAgPCEtLSB0byB0cmlnZ2VyIGNzczplbXB0eSBpZiBubyBsYWJlbCB3YXMgYWRkZWQgLS0+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJsYWJlbFwiPlxuICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICBvcHRpb25hbCA9PT0gdHJ1ZSB8fCAocmVxdWlyZWQgIT09IHRydWUgJiYgb3B0aW9uYWwgIT09IGZhbHNlKVxuICAgICAgICAgICAgXCJcbiAgICAgICAgICAgIGNsYXNzPVwiZ2RzLWZpZWxkLWxhYmVsLS1vcHRpb25hbFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgKHt7IHQoJ2xhYmVsLm9wdGlvbmFsJykgfX0pXG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDxzcGFuPnt7IGxhYmVsIH19PC9zcGFuPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8aT48L2k+XG4gICAgPC9sYWJlbD5cbiAgPC9kaXY+XG5cbiAgPCEtLSBFUlJPUlMgLS0+XG4gIDxuZy1jb250YWluZXIgKnRyYW5zbG9jbz1cImxldCB0OyByZWFkOiBzY29wZVwiPlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwiZm9ybS1pbmZvIGZvcm0taW5mby0tZXJyb3JcIlxuICAgICAgW2F0dHIuZm9yXT1cImlkICsgJy1jaGVja2JveCdcIlxuICAgICAgKm5nSWY9XCJpbnZhbGlkICYmIChlcnJvciB8fCBuZ0NvbnRyb2w/LmludmFsaWQpXCJcbiAgICA+XG4gICAgICA8c3BhbiBjbGFzcz1cImVycm9yLWljb25cIj5cbiAgICAgICAgPGdkcy1pY29uLXRyaWFuZ2xlLWV4Y2xhbWF0aW9uXG4gICAgICAgICAgd2lkdGg9XCIxNlwiXG4gICAgICAgICAgaGVpZ2h0PVwiMTZcIlxuICAgICAgICAgIFtzb2xpZF09XCJ0cnVlXCJcbiAgICAgICAgICAqbmdnQ29yZUVsZW1lbnRcbiAgICAgICAgPjwvZ2RzLWljb24tdHJpYW5nbGUtZXhjbGFtYXRpb24+XG4gICAgICA8L3NwYW4+XG4gICAgICA8c3BhblxuICAgICAgICAqbmdJZj1cImVycm9yOyBlbHNlIGVycm9yc1JlZlwiXG4gICAgICAgIFthdHRyLmRhdGEtdGhvb2tdPVwidGhvb2sgKyAnLWVycm9ybGFiZWwnXCJcbiAgICAgID5cbiAgICAgICAge3sgZXJyb3IgfX1cbiAgICAgIDwvc3Bhbj5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjZXJyb3JzUmVmPlxuICAgICAgICA8c3BhblxuICAgICAgICAgICpuZ0lmPVwiZmlyc3RFcnJvciBhcyBlcnJvclwiXG4gICAgICAgICAgW2F0dHIuZGF0YS10aG9va109XCJ0aG9vayArICctZXJyb3JsYWJlbCdcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgdCgnZXJyb3IuZmllbGQnICsgZXJyb3I/LmNvZGUsIGVycm9yPy5wYXJhbXMpIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDwhLS0gQ0hJTERSRU4gLS0+XG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvbmctY29udGFpbmVyPlxuIl19