@wlcm/angular 17.5.32 → 17.5.33
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/forms/esm2022/lib/forms/components/form-field/form-field.component.mjs +4 -3
- package/forms/esm2022/lib/forms/components/select/select.component.mjs +9 -1
- package/forms/fesm2022/wlcm-angular-forms.mjs +11 -2
- package/forms/fesm2022/wlcm-angular-forms.mjs.map +1 -1
- package/forms/lib/forms/components/select/select.component.d.ts +1 -0
- package/package.json +1 -1
- package/styles/components/datepicker/date-range-picker/_date-range-picker-input.scss +6 -0
- package/styles/components/forms/_form-field.scss +1 -0
- package/styles/components/forms/_select.scss +6 -0
@@ -41,8 +41,9 @@ let WlcmFormFieldComponent = class WlcmFormFieldComponent {
|
|
41
41
|
this.handleStateChanges();
|
42
42
|
}
|
43
43
|
focus() {
|
44
|
-
if (
|
45
|
-
|
44
|
+
if (this.isFocused || this.isDisabled)
|
45
|
+
return;
|
46
|
+
this.inputRef?.focus();
|
46
47
|
}
|
47
48
|
get control() {
|
48
49
|
return (this.controlContainer?.control || this.ngControl?.control) ?? null;
|
@@ -133,4 +134,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImpor
|
|
133
134
|
type: HostBinding,
|
134
135
|
args: ['class.wlcm-field-disabled']
|
135
136
|
}] } });
|
136
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9tb2R1bGVzL2Zvcm1zL3NyYy9saWIvZm9ybXMvY29tcG9uZW50cy9mb3JtLWZpZWxkL2Zvcm0tZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9mb3Jtcy9zcmMvbGliL2Zvcm1zL2NvbXBvbmVudHMvZm9ybS1maWVsZC9mb3JtLWZpZWxkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixXQUFXLEVBQ1gsTUFBTSxFQUNOLEtBQUssRUFDTCxRQUFRLEVBQ1IsU0FBUyxFQUNULFVBQVUsR0FDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsVUFBVSxFQUFtQixnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMxRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLDBCQUEwQixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDOUcsT0FBTyxFQUFFLHFDQUFxQyxFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFDL0csT0FBTyxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FB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Z0JBRVksTUFBTTtzQkFBM0QsWUFBWTt1QkFBQyw0QkFBNEI7Z0JBR2hDLGVBQWU7c0JBRHhCLFlBQVk7dUJBQUMscUNBQXFDO2dCQUl6QyxnQkFBZ0I7c0JBRHpCLFNBQVM7dUJBQUMsa0JBQWtCO2dCQUdnQixTQUFTO3NCQUFyRCxXQUFXO3VCQUFDLDBCQUEwQjtnQkFJTyxVQUFVO3NCQUF2RCxXQUFXO3VCQUFDLDJCQUEyQjtnQkFJSyxTQUFTO3NCQUFyRCxXQUFXO3VCQUFDLDBCQUEwQjtnQkFJTSxTQUFTO3NCQUFyRCxXQUFXO3VCQUFDLDBCQUEwQjtnQkFJTyxVQUFVO3NCQUF2RCxXQUFXO3VCQUFDLDJCQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3RCaW5kaW5nLFxuICBJbmplY3QsXG4gIElucHV0LFxuICBPcHRpb25hbCxcbiAgVmlld0NoaWxkLFxuICBmb3J3YXJkUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFZhbGlkYXRvcnMsIEFic3RyYWN0Q29udHJvbCwgQ29udHJvbENvbnRhaW5lciwgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFdsY21FcnJvckNvbXBvbmVudCB9IGZyb20gJy4uL2Vycm9yL2Vycm9yLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBXTENNX0ZPUk1fQ09OVFJPTCwgV0xDTV9GT1JNX0NPTlRST0xfUFJPVklERVIgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvZm9ybS1zdGF0ZS1oYW5kbGVycy5jb25zdGFudHMnO1xuaW1wb3J0IHsgV2xjbUZvcm1GaWVsZEN1c3RvbUNvbnRhaW5lckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvZm9ybS1maWVsZC1jdXN0b20tY29udGFpbmVyLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBVbnRpbERlc3Ryb3ksIHVudGlsRGVzdHJveWVkIH0gZnJvbSAnQG5nbmVhdC91bnRpbC1kZXN0cm95JztcbmltcG9ydCB7IEVycm9yc01hcHBlclBpcGUgfSBmcm9tICcuLi8uLi9waXBlcy9lcnJvcnMtbWFwcGVyLnBpcGUnO1xuaW1wb3J0IHsgV0xDTV9GT1JNX0ZJRUxELCBXTENNX0lOUFVUIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL2Zvcm0tZWxlbWVudHMuY29uc3RhbnRzJztcbmltcG9ydCB7IFdsY21Gb3JtRmllbGRQcmVmaXhEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL2Zvcm0tZmllbGQtcHJlZml4LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBXbGNtRm9ybUZpZWxkSW5wdXQsIFdsY21JbnB1dEdldHRlciB9IGZyb20gJy4uLy4uL21vZGVscy9pbnB1dC5tb2RlbHMnO1xuaW1wb3J0IHsgV2xjbUZvcm1Db250cm9sIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2Zvcm0ubW9kZWxzJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG1lcmdlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBXbGNtRm9ybUZpZWxkU3VmZml4RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9mb3JtLWZpZWxkLXN1ZmZpeC5kaXJlY3RpdmUnO1xuXG5AVW50aWxEZXN0cm95KClcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3dsY20tZm9ybS1maWVsZCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFdsY21FcnJvckNvbXBvbmVudCwgRXJyb3JzTWFwcGVyUGlwZV0sXG4gIGhvc3Q6IHsgY2xhc3M6ICd3bGNtLWZvcm0tZmllbGQnIH0sXG4gIHRlbXBsYXRlVXJsOiAnLi9mb3JtLWZpZWxkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZm9ybS1maWVsZC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJvdmlkZXJzOiBbXG4gICAgV0xDTV9GT1JNX0NPTlRST0xfUFJPVklERVIsXG4gICAgeyBwcm92aWRlOiBXTENNX0ZPUk1fRklFTEQsIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFdsY21Gb3JtRmllbGRDb21wb25lbnQpIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFdsY21Gb3JtRmllbGRDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgQElucHV0KCkgZGlzcGxheUVycm9yTWVzc2FnZXM6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIEBDb250ZW50Q2hpbGQoTmdDb250cm9sLCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pIHByaXZhdGUgbmdDb250cm9sPzogTmdDb250cm9sO1xuXG4gIEBDb250ZW50Q2hpbGQoQ29udHJvbENvbnRhaW5lciwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KSBwcml2YXRlIGNvbnRyb2xDb250YWluZXI/OiBDb250cm9sQ29udGFpbmVyO1xuXG4gIEBDb250ZW50Q2hpbGQoV0xDTV9JTlBVVCkgcHJpdmF0ZSBfaW5wdXRSZWY/OiBXbGNtSW5wdXRHZXR0ZXI7XG5cbiAgQENvbnRlbnRDaGlsZChXbGNtRm9ybUZpZWxkUHJlZml4RGlyZWN0aXZlKSBwcm90ZWN0ZWQgcHJlZml4PzogV2xjbUZvcm1GaWVsZFByZWZpeERpcmVjdGl2ZTtcblxuICBAQ29udGVudENoaWxkKFdsY21Gb3JtRmllbGRTdWZmaXhEaXJlY3RpdmUpIHByb3RlY3RlZCBzdWZmaXg/OiBXbGNtRm9ybUZpZWxkU3VmZml4RGlyZWN0aXZlO1xuXG4gIEBDb250ZW50Q2hpbGQoV2xjbUZvcm1GaWVsZEN1c3RvbUNvbnRhaW5lckRpcmVjdGl2ZSlcbiAgcHJvdGVjdGVkIGN1c3RvbUNvbnRhaW5lcj86IFdsY21Gb3JtRmllbGRDdXN0b21Db250YWluZXJEaXJlY3RpdmU7XG5cbiAgQFZpZXdDaGlsZCgnZGVmYXVsdENvbnRhaW5lcicpXG4gIHByb3RlY3RlZCBkZWZhdWx0Q29udGFpbmVyPzogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy53bGNtLWZpZWxkLWZvY3VzZWQnKSBnZXQgaXNGb2N1c2VkKCkge1xuICAgIHJldHVybiB0aGlzLmlucHV0UmVmPy5pc0ZvY3VzZWQoKSA/PyBmYWxzZTtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3Mud2xjbS1maWVsZC1yZXF1aXJlZCcpIGdldCBpc1JlcXVpcmVkKCkge1xuICAgIHJldHVybiB0aGlzLmNvbnRyb2w/Lmhhc1ZhbGlkYXRvcihWYWxpZGF0b3JzLnJlcXVpcmVkKTtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3Mud2xjbS1maWVsZC1pbnZhbGlkJykgZ2V0IGlzSW52YWxpZCgpIHtcbiAgICByZXR1cm4gdGhpcy5jb250cm9sPy5pbnZhbGlkO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy53bGNtLWZpZWxkLXRvdWNoZWQnKSBnZXQgaXNUb3VjaGVkKCkge1xuICAgIHJldHVybiB0aGlzLmNvbnRyb2w/LnRvdWNoZWQ7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLndsY20tZmllbGQtZGlzYWJsZWQnKSBnZXQgaXNEaXNhYmxlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5jb250cm9sPy5kaXNhYmxlZDtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBPcHRpb25hbCgpXG4gICAgQEluamVjdChXTENNX0ZPUk1fQ09OVFJPTClcbiAgICBwcml2YXRlIHBhcmVudEZvcm1NZW1iZXI6IFdsY21Gb3JtQ29udHJvbCxcbiAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgKSB7fVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaW5wdXRSZWYgJiYgIXRoaXMuY3VzdG9tQ29udGFpbmVyKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0lucHV0IGVsZW1lbnQgc2hvdWxkIGJlIGJvdW5kIHRvIHRoZSB3bGNtSW5wdXQgZGlyZWN0aXZlLicpO1xuICAgIH1cblxuICAgIHRoaXMuaGFuZGxlU3RhdGVDaGFuZ2VzKCk7XG4gIH1cblxuICBmb2N1cygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaXNGb2N1c2VkKSB0aGlzLmlucHV0UmVmPy5mb2N1cygpO1xuICB9XG5cbiAgZ2V0IGNvbnRyb2woKTogQWJzdHJhY3RDb250cm9sIHwgbnVsbCB7XG4gICAgcmV0dXJuICh0aGlzLmNvbnRyb2xDb250YWluZXI/LmNvbnRyb2wgfHwgdGhpcy5uZ0NvbnRyb2w/LmNvbnRyb2wpID8/IG51bGw7XG4gIH1cblxuICBnZXQgaW5wdXRDb250YWluZXIoKTogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4ge1xuICAgIHJldHVybiB0aGlzLmN1c3RvbUNvbnRhaW5lcj8uZWxlbWVudFJlZiB8fCAodGhpcy5kZWZhdWx0Q29udGFpbmVyIGFzIEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+KTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlU3RhdGVDaGFuZ2VzKCk6IHZvaWQge1xuICAgIGNvbnN0IGV2ZW50czogT2JzZXJ2YWJsZTx1bmtub3duPltdID0gdGhpcy5jb250cm9sRXZlbnRzO1xuXG4gICAgaWYgKHRoaXMucGFyZW50Rm9ybU1lbWJlcikge1xuICAgICAgZXZlbnRzLnB1c2godGhpcy5wYXJlbnRGb3JtTWVtYmVyLnN0YXRlQ2hhbmdlcyQpO1xuICAgIH1cblxuICAgIG1lcmdlKC4uLmV2ZW50cylcbiAgICAgIC5waXBlKHVudGlsRGVzdHJveWVkKHRoaXMpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IGlucHV0UmVmKCk6IFdsY21Gb3JtRmllbGRJbnB1dCB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX2lucHV0UmVmPy5nZXQoKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IGNvbnRyb2xFdmVudHMoKTogT2JzZXJ2YWJsZTx1bmtub3duPltdIHtcbiAgICBjb25zdCBldmVudHM6IE9ic2VydmFibGU8dW5rbm93bj5bXSA9IFtdO1xuXG4gICAgaWYgKHRoaXMuaW5wdXRSZWYpIHtcbiAgICAgIGV2ZW50cy5wdXNoKHRoaXMuaW5wdXRSZWYuZm9jdXMkLCB0aGlzLmlucHV0UmVmLmJsdXIkKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5jb250cm9sKSB7XG4gICAgICBldmVudHMucHVzaCh0aGlzLmNvbnRyb2wuc3RhdHVzQ2hhbmdlcyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGV2ZW50cztcbiAgfVxufVxuIiwiPG5nLWNvbnRlbnQgc2VsZWN0PVwid2xjbS1sYWJlbFwiPjwvbmctY29udGVudD5cblxuPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3dsY21Gb3JtRmllbGRDdXN0b21Db250YWluZXJdXCI+PC9uZy1jb250ZW50PlxuXG48ZGl2XG4gIGNsYXNzPVwid2xjbS1maWVsZC1jb250YWluZXJcIlxuICAoY2xpY2spPVwiZm9jdXMoKVwiXG4gICNkZWZhdWx0Q29udGFpbmVyXG4gICpuZ0lmPVwiIWN1c3RvbUNvbnRhaW5lclwiXG4+XG4gIDxkaXYgY2xhc3M9XCJ3bGNtLWZpZWxkLXByZWZpeFwiIFtjbGFzcy5jb250YWlucy1jaGlsZHJlbl09XCJwcmVmaXhcIj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbd2xjbUZvcm1GaWVsZFByZWZpeF1cIj48L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxuXG4gIDxuZy1jb250ZW50IHNlbGVjdD1cIlt3bGNtSW5wdXRdXCI+PC9uZy1jb250ZW50PlxuXG4gIDxkaXYgY2xhc3M9XCJ3bGNtLWZpZWxkLXN1ZmZpeFwiIFtjbGFzcy5jb250YWlucy1jaGlsZHJlbl09XCJzdWZmaXhcIj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbd2xjbUZvcm1GaWVsZFN1ZmZpeF1cIj48L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxuZy1jb250ZW50IHNlbGVjdD1cIlt3bGNtRm9ybUZpZWxkSGludF1cIj48L25nLWNvbnRlbnQ+XG5cbjxkaXYgY2xhc3M9XCJ3bGNtLWZpZWxkLWVycm9yLWNvbnRhaW5lclwiICpuZ0lmPVwiY29udHJvbCAmJiBkaXNwbGF5RXJyb3JNZXNzYWdlc1wiPlxuICA8d2xjbS1lcnJvcj57eyAkYW55KGNvbnRyb2wpIHwgZXJyb3JzTWFwcGVyIH19PC93bGNtLWVycm9yPlxuPC9kaXY+XG4iXX0=
|
137
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9tb2R1bGVzL2Zvcm1zL3NyYy9saWIvZm9ybXMvY29tcG9uZW50cy9mb3JtLWZpZWxkL2Zvcm0tZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9mb3Jtcy9zcmMvbGliL2Zvcm1zL2NvbXBvbmVudHMvZm9ybS1maWVsZC9mb3JtLWZpZWxkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixXQUFXLEVBQ1gsTUFBTSxFQUNOLEtBQUssRUFDTCxRQUFRLEVBQ1IsU0FBUyxFQUNULFVBQVUsR0FDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsVUFBVSxFQUFtQixnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMxRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLDBCQUEwQixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDOUcsT0FBTyxFQUFFLHFDQUFxQyxFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFDL0csT0FBTyxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FB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O3NCQUEzRCxZQUFZO3VCQUFDLDRCQUE0QjtnQkFFWSxNQUFNO3NCQUEzRCxZQUFZO3VCQUFDLDRCQUE0QjtnQkFHaEMsZUFBZTtzQkFEeEIsWUFBWTt1QkFBQyxxQ0FBcUM7Z0JBSXpDLGdCQUFnQjtzQkFEekIsU0FBUzt1QkFBQyxrQkFBa0I7Z0JBR2dCLFNBQVM7c0JBQXJELFdBQVc7dUJBQUMsMEJBQTBCO2dCQUlPLFVBQVU7c0JBQXZELFdBQVc7dUJBQUMsMkJBQTJCO2dCQUlLLFNBQVM7c0JBQXJELFdBQVc7dUJBQUMsMEJBQTBCO2dCQUlNLFNBQVM7c0JBQXJELFdBQVc7dUJBQUMsMEJBQTBCO2dCQUlPLFVBQVU7c0JBQXZELFdBQVc7dUJBQUMsMkJBQTJCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgRWxlbWVudFJlZixcbiAgSG9zdEJpbmRpbmcsXG4gIEluamVjdCxcbiAgSW5wdXQsXG4gIE9wdGlvbmFsLFxuICBWaWV3Q2hpbGQsXG4gIGZvcndhcmRSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVmFsaWRhdG9ycywgQWJzdHJhY3RDb250cm9sLCBDb250cm9sQ29udGFpbmVyLCBOZ0NvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgV2xjbUVycm9yQ29tcG9uZW50IH0gZnJvbSAnLi4vZXJyb3IvZXJyb3IuY29tcG9uZW50JztcbmltcG9ydCB7IFdMQ01fRk9STV9DT05UUk9MLCBXTENNX0ZPUk1fQ09OVFJPTF9QUk9WSURFUiB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9mb3JtLXN0YXRlLWhhbmRsZXJzLmNvbnN0YW50cyc7XG5pbXBvcnQgeyBXbGNtRm9ybUZpZWxkQ3VzdG9tQ29udGFpbmVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9mb3JtLWZpZWxkLWN1c3RvbS1jb250YWluZXIuZGlyZWN0aXZlJztcbmltcG9ydCB7IFVudGlsRGVzdHJveSwgdW50aWxEZXN0cm95ZWQgfSBmcm9tICdAbmduZWF0L3VudGlsLWRlc3Ryb3knO1xuaW1wb3J0IHsgRXJyb3JzTWFwcGVyUGlwZSB9IGZyb20gJy4uLy4uL3BpcGVzL2Vycm9ycy1tYXBwZXIucGlwZSc7XG5pbXBvcnQgeyBXTENNX0ZPUk1fRklFTEQsIFdMQ01fSU5QVVQgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvZm9ybS1lbGVtZW50cy5jb25zdGFudHMnO1xuaW1wb3J0IHsgV2xjbUZvcm1GaWVsZFByZWZpeERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvZm9ybS1maWVsZC1wcmVmaXguZGlyZWN0aXZlJztcbmltcG9ydCB7IFdsY21Gb3JtRmllbGRJbnB1dCwgV2xjbUlucHV0R2V0dGVyIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2lucHV0Lm1vZGVscyc7XG5pbXBvcnQgeyBXbGNtRm9ybUNvbnRyb2wgfSBmcm9tICcuLi8uLi9tb2RlbHMvZm9ybS5tb2RlbHMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgbWVyZ2UgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFdsY21Gb3JtRmllbGRTdWZmaXhEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL2Zvcm0tZmllbGQtc3VmZml4LmRpcmVjdGl2ZSc7XG5cbkBVbnRpbERlc3Ryb3koKVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnd2xjbS1mb3JtLWZpZWxkJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgV2xjbUVycm9yQ29tcG9uZW50LCBFcnJvcnNNYXBwZXJQaXBlXSxcbiAgaG9zdDogeyBjbGFzczogJ3dsY20tZm9ybS1maWVsZCcgfSxcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0tZmllbGQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9mb3JtLWZpZWxkLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcm92aWRlcnM6IFtcbiAgICBXTENNX0ZPUk1fQ09OVFJPTF9QUk9WSURFUixcbiAgICB7IHByb3ZpZGU6IFdMQ01fRk9STV9GSUVMRCwgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gV2xjbUZvcm1GaWVsZENvbXBvbmVudCkgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgV2xjbUZvcm1GaWVsZENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICBASW5wdXQoKSBkaXNwbGF5RXJyb3JNZXNzYWdlczogYm9vbGVhbiA9IHRydWU7XG5cbiAgQENvbnRlbnRDaGlsZChOZ0NvbnRyb2wsIHsgZGVzY2VuZGFudHM6IHRydWUgfSkgcHJpdmF0ZSBuZ0NvbnRyb2w/OiBOZ0NvbnRyb2w7XG5cbiAgQENvbnRlbnRDaGlsZChDb250cm9sQ29udGFpbmVyLCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pIHByaXZhdGUgY29udHJvbENvbnRhaW5lcj86IENvbnRyb2xDb250YWluZXI7XG5cbiAgQENvbnRlbnRDaGlsZChXTENNX0lOUFVUKSBwcml2YXRlIF9pbnB1dFJlZj86IFdsY21JbnB1dEdldHRlcjtcblxuICBAQ29udGVudENoaWxkKFdsY21Gb3JtRmllbGRQcmVmaXhEaXJlY3RpdmUpIHByb3RlY3RlZCBwcmVmaXg/OiBXbGNtRm9ybUZpZWxkUHJlZml4RGlyZWN0aXZlO1xuXG4gIEBDb250ZW50Q2hpbGQoV2xjbUZvcm1GaWVsZFN1ZmZpeERpcmVjdGl2ZSkgcHJvdGVjdGVkIHN1ZmZpeD86IFdsY21Gb3JtRmllbGRTdWZmaXhEaXJlY3RpdmU7XG5cbiAgQENvbnRlbnRDaGlsZChXbGNtRm9ybUZpZWxkQ3VzdG9tQ29udGFpbmVyRGlyZWN0aXZlKVxuICBwcm90ZWN0ZWQgY3VzdG9tQ29udGFpbmVyPzogV2xjbUZvcm1GaWVsZEN1c3RvbUNvbnRhaW5lckRpcmVjdGl2ZTtcblxuICBAVmlld0NoaWxkKCdkZWZhdWx0Q29udGFpbmVyJylcbiAgcHJvdGVjdGVkIGRlZmF1bHRDb250YWluZXI/OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLndsY20tZmllbGQtZm9jdXNlZCcpIGdldCBpc0ZvY3VzZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuaW5wdXRSZWY/LmlzRm9jdXNlZCgpID8/IGZhbHNlO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy53bGNtLWZpZWxkLXJlcXVpcmVkJykgZ2V0IGlzUmVxdWlyZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29udHJvbD8uaGFzVmFsaWRhdG9yKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy53bGNtLWZpZWxkLWludmFsaWQnKSBnZXQgaXNJbnZhbGlkKCkge1xuICAgIHJldHVybiB0aGlzLmNvbnRyb2w/LmludmFsaWQ7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLndsY20tZmllbGQtdG91Y2hlZCcpIGdldCBpc1RvdWNoZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29udHJvbD8udG91Y2hlZDtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3Mud2xjbS1maWVsZC1kaXNhYmxlZCcpIGdldCBpc0Rpc2FibGVkKCkge1xuICAgIHJldHVybiB0aGlzLmNvbnRyb2w/LmRpc2FibGVkO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQE9wdGlvbmFsKClcbiAgICBASW5qZWN0KFdMQ01fRk9STV9DT05UUk9MKVxuICAgIHByaXZhdGUgcGFyZW50Rm9ybU1lbWJlcjogV2xjbUZvcm1Db250cm9sLFxuICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICApIHt9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5pbnB1dFJlZiAmJiAhdGhpcy5jdXN0b21Db250YWluZXIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignSW5wdXQgZWxlbWVudCBzaG91bGQgYmUgYm91bmQgdG8gdGhlIHdsY21JbnB1dCBkaXJlY3RpdmUuJyk7XG4gICAgfVxuXG4gICAgdGhpcy5oYW5kbGVTdGF0ZUNoYW5nZXMoKTtcbiAgfVxuXG4gIGZvY3VzKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzRm9jdXNlZCB8fCB0aGlzLmlzRGlzYWJsZWQpIHJldHVybjtcblxuICAgIHRoaXMuaW5wdXRSZWY/LmZvY3VzKCk7XG4gIH1cblxuICBnZXQgY29udHJvbCgpOiBBYnN0cmFjdENvbnRyb2wgfCBudWxsIHtcbiAgICByZXR1cm4gKHRoaXMuY29udHJvbENvbnRhaW5lcj8uY29udHJvbCB8fCB0aGlzLm5nQ29udHJvbD8uY29udHJvbCkgPz8gbnVsbDtcbiAgfVxuXG4gIGdldCBpbnB1dENvbnRhaW5lcigpOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PiB7XG4gICAgcmV0dXJuIHRoaXMuY3VzdG9tQ29udGFpbmVyPy5lbGVtZW50UmVmIHx8ICh0aGlzLmRlZmF1bHRDb250YWluZXIgYXMgRWxlbWVudFJlZjxIVE1MRWxlbWVudD4pO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVTdGF0ZUNoYW5nZXMoKTogdm9pZCB7XG4gICAgY29uc3QgZXZlbnRzOiBPYnNlcnZhYmxlPHVua25vd24+W10gPSB0aGlzLmNvbnRyb2xFdmVudHM7XG5cbiAgICBpZiAodGhpcy5wYXJlbnRGb3JtTWVtYmVyKSB7XG4gICAgICBldmVudHMucHVzaCh0aGlzLnBhcmVudEZvcm1NZW1iZXIuc3RhdGVDaGFuZ2VzJCk7XG4gICAgfVxuXG4gICAgbWVyZ2UoLi4uZXZlbnRzKVxuICAgICAgLnBpcGUodW50aWxEZXN0cm95ZWQodGhpcykpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgaW5wdXRSZWYoKTogV2xjbUZvcm1GaWVsZElucHV0IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5faW5wdXRSZWY/LmdldCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgY29udHJvbEV2ZW50cygpOiBPYnNlcnZhYmxlPHVua25vd24+W10ge1xuICAgIGNvbnN0IGV2ZW50czogT2JzZXJ2YWJsZTx1bmtub3duPltdID0gW107XG5cbiAgICBpZiAodGhpcy5pbnB1dFJlZikge1xuICAgICAgZXZlbnRzLnB1c2godGhpcy5pbnB1dFJlZi5mb2N1cyQsIHRoaXMuaW5wdXRSZWYuYmx1ciQpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmNvbnRyb2wpIHtcbiAgICAgIGV2ZW50cy5wdXNoKHRoaXMuY29udHJvbC5zdGF0dXNDaGFuZ2VzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZXZlbnRzO1xuICB9XG59XG4iLCI8bmctY29udGVudCBzZWxlY3Q9XCJ3bGNtLWxhYmVsXCI+PC9uZy1jb250ZW50PlxuXG48bmctY29udGVudCBzZWxlY3Q9XCJbd2xjbUZvcm1GaWVsZEN1c3RvbUNvbnRhaW5lcl1cIj48L25nLWNvbnRlbnQ+XG5cbjxkaXZcbiAgY2xhc3M9XCJ3bGNtLWZpZWxkLWNvbnRhaW5lclwiXG4gIChjbGljayk9XCJmb2N1cygpXCJcbiAgI2RlZmF1bHRDb250YWluZXJcbiAgKm5nSWY9XCIhY3VzdG9tQ29udGFpbmVyXCJcbj5cbiAgPGRpdiBjbGFzcz1cIndsY20tZmllbGQtcHJlZml4XCIgW2NsYXNzLmNvbnRhaW5zLWNoaWxkcmVuXT1cInByZWZpeFwiPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIlt3bGNtRm9ybUZpZWxkUHJlZml4XVwiPjwvbmctY29udGVudD5cbiAgPC9kaXY+XG5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3dsY21JbnB1dF1cIj48L25nLWNvbnRlbnQ+XG5cbiAgPGRpdiBjbGFzcz1cIndsY20tZmllbGQtc3VmZml4XCIgW2NsYXNzLmNvbnRhaW5zLWNoaWxkcmVuXT1cInN1ZmZpeFwiPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIlt3bGNtRm9ybUZpZWxkU3VmZml4XVwiPjwvbmctY29udGVudD5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3dsY21Gb3JtRmllbGRIaW50XVwiPjwvbmctY29udGVudD5cblxuPGRpdiBjbGFzcz1cIndsY20tZmllbGQtZXJyb3ItY29udGFpbmVyXCIgKm5nSWY9XCJjb250cm9sICYmIGRpc3BsYXlFcnJvck1lc3NhZ2VzXCI+XG4gIDx3bGNtLWVycm9yPnt7ICRhbnkoY29udHJvbCkgfCBlcnJvcnNNYXBwZXIgfX08L3dsY20tZXJyb3I+XG48L2Rpdj5cbiJdfQ==
|
@@ -96,6 +96,14 @@ let WlcmSelectComponent = class WlcmSelectComponent {
|
|
96
96
|
registerOnValidatorChange(callback) {
|
97
97
|
this._validatorChanged = callback;
|
98
98
|
}
|
99
|
+
setDisabledState(isDisabled) {
|
100
|
+
if (isDisabled) {
|
101
|
+
this.control.disable();
|
102
|
+
}
|
103
|
+
else {
|
104
|
+
this.control.enable();
|
105
|
+
}
|
106
|
+
}
|
99
107
|
validate() {
|
100
108
|
return null;
|
101
109
|
}
|
@@ -173,4 +181,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImpor
|
|
173
181
|
type: HostListener,
|
174
182
|
args: ['click']
|
175
183
|
}] } });
|
176
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL21vZHVsZXMvZm9ybXMvc3JjL2xpYi9mb3Jtcy9jb21wb25lbnRzL3NlbGVjdC9zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9mb3Jtcy9zcmMvbGliL2Zvcm1zL2NvbXBvbmVudHMvc2VsZWN0L3NlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFFVCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFFTCxRQUFRLEVBSVIsU0FBUyxFQUNULE1BQU0sRUFDTixVQUFVLEVBQ1YsTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ04sWUFBWSxHQUNiLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFFTCxXQUFXLEVBQ1gsYUFBYSxFQUNiLGlCQUFpQixFQUNqQixtQkFBbUIsR0FHcEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBbUIsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDckgsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFlBQVksRUFBc0MsTUFBTSxvQkFBb0IsQ0FBQztBQUN6RyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsMEJBQTBCLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakcsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFFaEcsT0FBTyxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQWMsS0FBSyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENB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QkFBbUI7a0JBdEIvQixTQUFTOytCQUNFLGFBQWEsY0FDWCxJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsZUFBZSxFQUFFLG1CQUFtQixFQUFFLGlCQUFpQixFQUFFLDhCQUE4QixDQUFDLG1CQUcvRix1QkFBdUIsQ0FBQyxNQUFNLGtCQUMvQixDQUFDLDhCQUE4QixDQUFDLGFBQ3JDO3dCQUNULDBCQUEwQjt3QkFDMUI7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsVUFBVSxFQUFFLEdBQUcsRUFBRTtnQ0FDZixNQUFNLFVBQVUsR0FBcUIsTUFBTSxDQUFDLGtCQUFrQixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO2dDQUUxRixPQUFPLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQzs0QkFDakMsQ0FBQzt5QkFDRjt3QkFDRCxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsb0JBQW9CLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO3dCQUMzRixFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7cUJBQ2hHOzswQkFzREUsTUFBTTsyQkFBQyxlQUFlOzswQkFDdEIsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxpQkFBaUI7eUNBcEQ5QixRQUFRO3NCQUFoQixLQUFLO2dCQUVHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBK0JnQixTQUFTO3NCQUE5QixTQUFTO3VCQUFDLFNBQVM7Z0JBRUcsU0FBUztzQkFBL0IsWUFBWTt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBIb3N0TGlzdGVuZXIsXG4gIEluamVjdCxcbiAgSW5wdXQsXG4gIElucHV0U2lnbmFsLFxuICBPcHRpb25hbCxcbiAgT3V0cHV0RW1pdHRlclJlZixcbiAgU2lnbmFsLFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxuICBlZmZlY3QsXG4gIGZvcndhcmRSZWYsXG4gIGluamVjdCxcbiAgaW5wdXQsXG4gIG91dHB1dCxcbiAgdmlld0NoaWxkcmVuLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxuICBGb3JtQ29udHJvbCxcbiAgTkdfVkFMSURBVE9SUyxcbiAgTkdfVkFMVUVfQUNDRVNTT1IsXG4gIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gIFZhbGlkYXRpb25FcnJvcnMsXG4gIFZhbGlkYXRvcixcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTUFUX1NFTEVDVF9DT05GSUcsIE1hdE9wdGlvbiwgTWF0U2VsZWN0LCBNYXRTZWxlY3RDaGFuZ2UsIE1hdFNlbGVjdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCc7XG5pbXBvcnQgeyBXbGNtSWNvbkRpcmVjdGl2ZSwgV2xjbUljb25OYW1lLCBXbGNtT3B0aW9uLCBXbGNtU2VsZWN0T3B0aW9uRm9ybWF0IH0gZnJvbSAnQHdsY20vYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFdMQ01fRk9STV9DT05UUk9MLCBXTENNX0ZPUk1fQ09OVFJPTF9QUk9WSURFUiwgV0xDTV9GT1JNX0ZJRUxEIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IFdsY21TZWxlY3RJbnB1dEJpbmRlckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvc2VsZWN0LWlucHV0LWJpbmRlci5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgV2xjbUZvcm1Db250cm9sLCBXbGNtRm9ybUZpZWxkLCBXbGNtRm9ybUZpZWxkSW5wdXQgfSBmcm9tICcuLi8uLi9tb2RlbHMvX2luZGV4JztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgRU1QVFksIE9ic2VydmFibGUsIGZpcnN0LCBmcm9tRXZlbnQsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgSXNPcHRpb25EaXNhYmxlZEZuLCBXbGNtU2VsZWN0Q29uZmlnIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3NlbGVjdC5tb2RlbHMnO1xuaW1wb3J0IHsgV0xDTV9TRUxFQ1RfQ09ORklHIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL3NlbGVjdC5jb25zdGFudHMnO1xuaW1wb3J0IHsgVW50aWxEZXN0cm95LCB1bnRpbERlc3Ryb3llZCB9IGZyb20gJ0BuZ25lYXQvdW50aWwtZGVzdHJveSc7XG5pbXBvcnQgeyBDZGtPdmVybGF5T3JpZ2luIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgbWVyZ2VXaXRoIH0gZnJvbSAnbG9kYXNoJztcblxudHlwZSBTZWxlY3RWYWx1ZSA9IHN0cmluZ1tdIHwgc3RyaW5nO1xuXG50eXBlIE9wdGlvblRlbXBsYXRlQ29udGV4dCA9IFRlbXBsYXRlUmVmPHsgJGltcGxpY2l0OiBXbGNtT3B0aW9uIH0+O1xuXG5jb25zdCBQQU5FTF9DTEFTUzogc3RyaW5nID0gJ3dsY20tc2VsZWN0LXBhbmVsJztcblxuY29uc3QgREVGQVVMVF9DT05GSUc6IFdsY21TZWxlY3RDb25maWcgPSB7IG92ZXJsYXlQYW5lbENsYXNzOiBbUEFORUxfQ0xBU1NdIH07XG5cbmNvbnN0IG1lcmdlQ29uZmlnID0gKGNvbmZpZzogV2xjbVNlbGVjdENvbmZpZyk6IFdsY21TZWxlY3RDb25maWcgPT4ge1xuICBjb25zdCBjdXN0b21pemVyID0gKF9kZWZhdWx0OiBXbGNtU2VsZWN0Q29uZmlnLCBfbmV3OiBXbGNtU2VsZWN0Q29uZmlnKTogQXJyYXk8dW5rbm93bj4gfCB2b2lkID0+IHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShfZGVmYXVsdCkpIHJldHVybiBfZGVmYXVsdC5jb25jYXQoX25ldyk7XG4gIH07XG5cbiAgcmV0dXJuIG1lcmdlV2l0aCh7IC4uLkRFRkFVTFRfQ09ORklHIH0sIGNvbmZpZywgY3VzdG9taXplcik7XG59O1xuXG5AVW50aWxEZXN0cm95KClcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3dsY20tc2VsZWN0JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgTWF0U2VsZWN0TW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBXbGNtSWNvbkRpcmVjdGl2ZSwgV2xjbVNlbGVjdElucHV0QmluZGVyRGlyZWN0aXZlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3NlbGVjdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NlbGVjdC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaG9zdERpcmVjdGl2ZXM6IFtXbGNtU2VsZWN0SW5wdXRCaW5kZXJEaXJlY3RpdmVdLFxuICBwcm92aWRlcnM6IFtcbiAgICBXTENNX0ZPUk1fQ09OVFJPTF9QUk9WSURFUixcbiAgICB7XG4gICAgICBwcm92aWRlOiBNQVRfU0VMRUNUX0NPTkZJRyxcbiAgICAgIHVzZUZhY3Rvcnk6ICgpID0+IHtcbiAgICAgICAgY29uc3Qgd2xjbUNvbmZpZzogV2xjbVNlbGVjdENvbmZpZyA9IGluamVjdChXTENNX1NFTEVDVF9DT05GSUcsIHsgb3B0aW9uYWw6IHRydWUgfSkgPz8ge307XG5cbiAgICAgICAgcmV0dXJuIG1lcmdlQ29uZmlnKHdsY21Db25maWcpO1xuICAgICAgfSxcbiAgICB9LFxuICAgIHsgcHJvdmlkZTogTkdfVkFMSURBVE9SUywgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gV2xjbVNlbGVjdENvbXBvbmVudCksIG11bHRpOiB0cnVlIH0sXG4gICAgeyBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUiwgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gV2xjbVNlbGVjdENvbXBvbmVudCksIG11bHRpOiB0cnVlIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFdsY21TZWxlY3RDb21wb25lbnQgaW1wbGVtZW50cyBXbGNtRm9ybUZpZWxkSW5wdXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBWYWxpZGF0b3Ige1xuICBASW5wdXQoKSBtdWx0aXBsZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmcgPSAnTm90IHNlbGVjdGVkJztcblxuICBvcHRpb25zOiBJbnB1dFNpZ25hbDxXbGNtT3B0aW9uW10+ID0gaW5wdXQucmVxdWlyZWQoKTtcblxuICBzZWxlY3RPcHRpb25Gb3JtYXQ6IElucHV0U2lnbmFsPFdsY21TZWxlY3RPcHRpb25Gb3JtYXQ+ID0gaW5wdXQ8V2xjbVNlbGVjdE9wdGlvbkZvcm1hdD4oJ1ZhbHVlT25seScpO1xuXG4gIG9wdGlvblRlbXBsYXRlOiBJbnB1dFNpZ25hbDxUZW1wbGF0ZVJlZjxPcHRpb25UZW1wbGF0ZUNvbnRleHQ+IHwgbnVsbD4gPVxuICAgIGlucHV0PFRlbXBsYXRlUmVmPE9wdGlvblRlbXBsYXRlQ29udGV4dD4gfCBudWxsPihudWxsKTtcblxuICB0cmlnZ2VyVGVtcGxhdGU6IElucHV0U2lnbmFsPFRlbXBsYXRlUmVmPE1hdE9wdGlvbjxhbnk+IHwgTWF0T3B0aW9uPGFueT5bXT4gfCBudWxsPiA9IGlucHV0PFRlbXBsYXRlUmVmPFxuICAgIE1hdE9wdGlvbjxXbGNtT3B0aW9uPiB8IE1hdE9wdGlvbjxXbGNtT3B0aW9uPltdXG4gID4gfCBudWxsPihudWxsKTtcblxuICBpc09wdGlvbkRpc2FibGVkOiBJbnB1dFNpZ25hbDxJc09wdGlvbkRpc2FibGVkRm4+ID0gaW5wdXQ8SXNPcHRpb25EaXNhYmxlZEZuPigoKSA9PiBmYWxzZSk7XG5cbiAgc2VsZWN0aW9uQ2hhbmdlOiBPdXRwdXRFbWl0dGVyUmVmPE1hdFNlbGVjdENoYW5nZT4gPSBvdXRwdXQoKTtcblxuICBvcGVuZWQ6IE91dHB1dEVtaXR0ZXJSZWY8dm9pZD4gPSBvdXRwdXQoKTtcblxuICBjbG9zZWQ6IE91dHB1dEVtaXR0ZXJSZWY8dm9pZD4gPSBvdXRwdXQoKTtcblxuICByZWFkb25seSBjb250cm9sOiBGb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgpO1xuXG4gIHJlYWRvbmx5IFdsY21JY29uTmFtZSA9IFdsY21JY29uTmFtZTtcblxuICBwcml2YXRlIF9jaGFuZ2VkPzogKHZhbHVlOiBXbGNtT3B0aW9uKSA9PiB2b2lkO1xuXG4gIHByaXZhdGUgX3RvdWNoZWQ/OiAoKSA9PiB2b2lkO1xuXG4gIHByaXZhdGUgX3ZhbGlkYXRvckNoYW5nZWQ/OiAoKSA9PiB2b2lkO1xuXG4gIEBWaWV3Q2hpbGQoTWF0U2VsZWN0KSBtYXRTZWxlY3QhOiBNYXRTZWxlY3Q7XG5cbiAgQEhvc3RMaXN0ZW5lcignY2xpY2snKSBvcGVuUGFuZWwoKTogdm9pZCB7XG4gICAgdGhpcy5tYXRTZWxlY3Qub3BlbigpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG1hdE9wdGlvbnM6IFNpZ25hbDxSZWFkb25seUFycmF5PE1hdE9wdGlvbj4+ID0gdmlld0NoaWxkcmVuKE1hdE9wdGlvbik7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfZm9jdXNTdHJlYW0kOiBCZWhhdmlvclN1YmplY3Q8T2JzZXJ2YWJsZTx2b2lkPj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KEVNUFRZIGFzIE9ic2VydmFibGU8dm9pZD4pO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2JsdXJTdHJlYW0kOiBCZWhhdmlvclN1YmplY3Q8T2JzZXJ2YWJsZTx2b2lkPj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KEVNUFRZIGFzIE9ic2VydmFibGU8dm9pZD4pO1xuXG4gIGZvY3VzJDogT2JzZXJ2YWJsZTx1bmtub3duPiA9IHRoaXMuX2ZvY3VzU3RyZWFtJC5waXBlKHN3aXRjaE1hcCgoc3RyZWFtOiBPYnNlcnZhYmxlPHVua25vd24+KSA9PiBzdHJlYW0pKTtcblxuICBibHVyJDogT2JzZXJ2YWJsZTx1bmtub3duPiA9IHRoaXMuX2JsdXJTdHJlYW0kLnBpcGUoc3dpdGNoTWFwKChzdHJlYW06IE9ic2VydmFibGU8dW5rbm93bj4pID0+IHN0cmVhbSkpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIEBJbmplY3QoV0xDTV9GT1JNX0ZJRUxEKSBwcml2YXRlIGZvcm1GaWVsZDogV2xjbUZvcm1GaWVsZCxcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KFdMQ01fRk9STV9DT05UUk9MKSBwcml2YXRlIHBhcmVudEZvcm1NZW1iZXI6IFdsY21Gb3JtQ29udHJvbCxcbiAgKSB7XG4gICAgaWYgKHRoaXMucGFyZW50Rm9ybU1lbWJlcikge1xuICAgICAgdGhpcy5oYW5kbGVTdGF0ZUNoYW5nZSgpO1xuICAgIH1cblxuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5pc09wdGlvbkRpc2FibGVkKCkgJiYgdGhpcy5vcHRpb25zKCkubGVuZ3RoID4gMCkge1xuICAgICAgICB0aGlzLnVwZGF0ZU9wdGlvbnNTdGF0dXMoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBjb25zdCBmb3JtRmllbGQ6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+ID0gdGhpcy5mb3JtRmllbGQuaW5wdXRDb250YWluZXI7XG5cbiAgICBpZiAoZm9ybUZpZWxkKSB7XG4gICAgICB0aGlzLm1hdFNlbGVjdC5fcHJlZmVycmVkT3ZlcmxheU9yaWdpbiA9IG5ldyBDZGtPdmVybGF5T3JpZ2luKHRoaXMuZm9ybUZpZWxkLmlucHV0Q29udGFpbmVyKTtcbiAgICB9XG5cbiAgICB0aGlzLl9mb2N1c1N0cmVhbSQubmV4dCh0aGlzLm1hdFNlbGVjdC5fb3BlbmVkU3RyZWFtKTtcblxuICAgIHRoaXMuX2JsdXJTdHJlYW0kLm5leHQodGhpcy5tYXRTZWxlY3QuX2Nsb3NlZFN0cmVhbSk7XG4gIH1cblxuICBmb2N1cyA9ICgpOiB2b2lkID0+IHRoaXMubWF0U2VsZWN0Lm9wZW4oKTtcblxuICBpc0ZvY3VzZWQgPSAoKTogYm9vbGVhbiA9PiB0aGlzLmlzT3BlbjtcblxuICBzZWxlY3QoZXZlbnQ6IE1hdFNlbGVjdENoYW5nZSk6IHZvaWQge1xuICAgIHRoaXMuX2NoYW5nZWQ/LihldmVudC52YWx1ZSk7XG5cbiAgICB0aGlzLl92YWxpZGF0b3JDaGFuZ2VkPy4oKTtcblxuICAgIHRoaXMuc2VsZWN0aW9uQ2hhbmdlLmVtaXQoZXZlbnQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHBhbmVsT3BlbmVkKCk6IHZvaWQge1xuICAgIHRoaXMub3BlbmVkLmVtaXQoKTtcblxuICAgIHRoaXMuaGFuZGxlQ2xpY2tPdXRzaWRlKCk7XG4gIH1cblxuICB1cGRhdGVPcHRpb25zU3RhdHVzKCk6IHZvaWQge1xuICAgIHRoaXMubWF0T3B0aW9ucygpLmZvckVhY2goKG1hdE9wdGlvbjogTWF0T3B0aW9uKSA9PiB7XG4gICAgICBtYXRPcHRpb24uZGlzYWJsZWQgPSB0aGlzLmlzT3B0aW9uRGlzYWJsZWQoKShtYXRPcHRpb24udmFsdWUpO1xuICAgIH0pO1xuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogU2VsZWN0VmFsdWUpOiB2b2lkIHtcbiAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUodmFsdWUpO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShjYWxsYmFjazogKHZhbHVlOiBXbGNtT3B0aW9uKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5fY2hhbmdlZCA9IGNhbGxiYWNrO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoY2FsbGJhY2s6ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLl90b3VjaGVkID0gY2FsbGJhY2s7XG4gIH1cblxuICByZWdpc3Rlck9uVmFsaWRhdG9yQ2hhbmdlKGNhbGxiYWNrOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5fdmFsaWRhdG9yQ2hhbmdlZCA9IGNhbGxiYWNrO1xuICB9XG5cbiAgdmFsaWRhdGUoKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgZ2V0IGlzT3BlbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5tYXRTZWxlY3Q/LnBhbmVsT3BlbiA/PyBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlU3RhdGVDaGFuZ2UoKTogdm9pZCB7XG4gICAgdGhpcy5wYXJlbnRGb3JtTWVtYmVyLnN0YXRlQ2hhbmdlcyQucGlwZSh1bnRpbERlc3Ryb3llZCh0aGlzKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuX3ZhbGlkYXRvckNoYW5nZWQ/LigpO1xuXG4gICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVDbGlja091dHNpZGUoKTogdm9pZCB7XG4gICAgY29uc3Qgb3ZlcmxheUNvbnRhaW5lcjogSFRNTEVsZW1lbnQgfCBudWxsID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihgLmNkay1vdmVybGF5LWNvbnRhaW5lcjpoYXMoLiR7UEFORUxfQ0xBU1N9KWApO1xuXG4gICAgY29uc3QgYmFja2Ryb3A6IEhUTUxFbGVtZW50IHwgbnVsbCB8IHVuZGVmaW5lZCA9IG92ZXJsYXlDb250YWluZXI/LnF1ZXJ5U2VsZWN0b3IoYC5jZGstb3ZlcmxheS1iYWNrZHJvcGApO1xuXG4gICAgaWYgKGJhY2tkcm9wIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpIHtcbiAgICAgIGZyb21FdmVudChiYWNrZHJvcCwgJ2NsaWNrJylcbiAgICAgICAgLnBpcGUoZmlyc3QoKSlcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5fdG91Y2hlZD8uKCk7XG5cbiAgICAgICAgICB0aGlzLl92YWxpZGF0b3JDaGFuZ2VkPy4oKTtcblxuICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIiwiPG1hdC1zZWxlY3RcbiAgI3NlbGVjdENvbXBvbmVudFxuICBbbXVsdGlwbGVdPVwibXVsdGlwbGVcIlxuICBbZGlzYWJsZVJpcHBsZV09XCJ0cnVlXCJcbiAgW2Zvcm1Db250cm9sXT1cImNvbnRyb2xcIlxuICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICBbaGlkZVNpbmdsZVNlbGVjdGlvbkluZGljYXRvcl09XCJ0cnVlXCJcbiAgW25nQ2xhc3NdPVwieyBmb2N1c2VkOiBzZWxlY3RDb21wb25lbnQuZm9jdXNlZCB9XCJcbiAgKHNlbGVjdGlvbkNoYW5nZSk9XCJzZWxlY3QoJGV2ZW50KVwiXG4gIChvcGVuZWQpPVwicGFuZWxPcGVuZWQoKVwiXG4gIChjbG9zZWQpPVwiY2xvc2VkLmVtaXQoKVwiXG4+XG4gIEBpZiAodHJpZ2dlclRlbXBsYXRlKCkpIHtcbiAgICA8bWF0LXNlbGVjdC10cmlnZ2VyPlxuICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgIHRyaWdnZXJUZW1wbGF0ZSgpO1xuICAgICAgICAgIGNvbnRleHQ6ICRhbnkoeyAkaW1wbGljaXQ6IHNlbGVjdENvbXBvbmVudC5zZWxlY3RlZCB9KVxuICAgICAgICBcIlxuICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgIDwvbWF0LXNlbGVjdC10cmlnZ2VyPlxuICB9XG5cbiAgPG1hdC1vcHRpb25cbiAgICAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIG9wdGlvbnMoKVwiXG4gICAgW3ZhbHVlXT1cInNlbGVjdE9wdGlvbkZvcm1hdCgpID09PSAnQ29tcGxldGVPcHRpb24nID8gb3B0aW9uIDogb3B0aW9uLnZhbHVlXCJcbiAgPlxuICAgIEBpZiAob3B0aW9uVGVtcGxhdGUoKSkge1xuICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgIG9wdGlvblRlbXBsYXRlKCk7XG4gICAgICAgICAgY29udGV4dDogJGFueSh7ICRpbXBsaWNpdDogb3B0aW9uIH0pXG4gICAgICAgIFwiXG4gICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgfSBAZWxzZSB7XG4gICAgICB7eyBvcHRpb24udmlld1ZhbHVlIH19XG4gICAgfVxuICA8L21hdC1vcHRpb24+XG48L21hdC1zZWxlY3Q+XG5cbjxkaXYgY2xhc3M9XCJ3bGNtLXNlbGVjdC1hcnJvd1wiPlxuICA8bmctY29udGFpbmVyXG4gICAgW3dsY21JY29uXT1cIldsY21JY29uTmFtZS5DSEVWUk9OX0RPV05cIlxuICAgIFt3bGNtSWNvblN0b3BQcm9wYWdhdGlvbl09XCJmYWxzZVwiXG4gID48L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuIl19
|
184
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL21vZHVsZXMvZm9ybXMvc3JjL2xpYi9mb3Jtcy9jb21wb25lbnRzL3NlbGVjdC9zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9mb3Jtcy9zcmMvbGliL2Zvcm1zL2NvbXBvbmVudHMvc2VsZWN0L3NlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFFVCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFFTCxRQUFRLEVBSVIsU0FBUyxFQUNULE1BQU0sRUFDTixVQUFVLEVBQ1YsTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ04sWUFBWSxHQUNiLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFFTCxXQUFXLEVBQ1gsYUFBYSxFQUNiLGlCQUFpQixFQUNqQixtQkFBbUIsR0FHcEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBbUIsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDckgsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFlBQVksRUFBc0MsTUFBTSxvQkFBb0IsQ0FBQztBQUN6RyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsMEJBQTBCLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakcsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFFaEcsT0FBTyxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQWMsS0FBSyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFdkYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDdEUsT0FBTyxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sUUFBUSxDQUFDOzs7Ozs7O0FBTW5DLE1BQU0sV0FBVyxHQUFXLG1CQUFtQixDQUFDO0FBRWhELE1BQU0sY0FBYyxHQUFxQixFQUFFLGlCQUFpQixFQUFFLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQztBQUU5RSxNQUFNLFdBQVcsR0FBRyxDQUFDLE1BQXdCLEVBQW9CLEVBQUU7SUFDakUsTUFBTSxVQUFVLEdBQUcsQ0FBQyxRQUEwQixFQUFFLElBQXNCLEVBQXlCLEVBQUU7UUFDL0YsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQztZQUFFLE9BQU8sUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1RCxDQUFDLENBQUM7SUFFRixPQUFPLFNBQVMsQ0FBQyxFQUFFLEdBQUcsY0FBYyxFQUFFLEVBQUUsTUFBTSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0FBQzlELENBQUMsQ0FBQztBQXlCSyxJQUFNLG1CQUFtQixHQUF6QixNQUFNLG1CQUFtQjtJQW9DUCxTQUFTO1FBQzlCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQVlELFlBQ1UsaUJBQW9DLEVBQ1gsU0FBd0IsRUFDVixnQkFBaUM7UUFGeEUsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNYLGNBQVMsR0FBVCxTQUFTLENBQWU7UUFDVixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWlCO1FBcER6RSxhQUFRLEdBQVksS0FBSyxDQUFDO1FBRTFCLGdCQUFXLEdBQVcsY0FBYyxDQUFDO1FBRTlDLFlBQU8sR0FBOEIsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRXRELHVCQUFrQixHQUF3QyxLQUFLLENBQXlCLFdBQVcsQ0FBQyxDQUFDO1FBRXJHLG1CQUFjLEdBQ1osS0FBSyxDQUE0QyxJQUFJLENBQUMsQ0FBQztRQUV6RCxvQkFBZSxHQUF1RSxLQUFLLENBRWpGLElBQUksQ0FBQyxDQUFDO1FBRWhCLHFCQUFnQixHQUFvQyxLQUFLLENBQXFCLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTNGLG9CQUFlLEdBQXNDLE1BQU0sRUFBRSxDQUFDO1FBRTlELFdBQU0sR0FBMkIsTUFBTSxFQUFFLENBQUM7UUFFMUMsV0FBTSxHQUEyQixNQUFNLEVBQUUsQ0FBQztRQUVqQyxZQUFPLEdBQWdCLElBQUksV0FBVyxFQUFFLENBQUM7UUFFekMsaUJBQVksR0FBRyxZQUFZLENBQUM7UUFjM0IsZUFBVSxHQUFxQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFaEUsa0JBQWEsR0FBc0MsSUFBSSxlQUFlLENBQUMsS0FBeUIsQ0FBQyxDQUFDO1FBRWxHLGlCQUFZLEdBQXNDLElBQUksZUFBZSxDQUFDLEtBQXlCLENBQUMsQ0FBQztRQUVsSCxXQUFNLEdBQXdCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQTJCLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFFMUcsVUFBSyxHQUF3QixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUEyQixFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBOEJ4RyxVQUFLLEdBQUcsR0FBUyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUUxQyxjQUFTLEdBQUcsR0FBWSxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQXpCckMsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUMzQixDQUFDO1FBRUQsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNWLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDekQsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7WUFDN0IsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGVBQWU7UUFDYixNQUFNLFNBQVMsR0FBNEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUM7UUFFekUsSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUNkLElBQUksQ0FBQyxTQUFTLENBQUMsdUJBQXVCLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQy9GLENBQUM7UUFFRCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRXRELElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQU1ELE1BQU0sQ0FBQyxLQUFzQjtRQUMzQixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTdCLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLENBQUM7UUFFM0IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVTLFdBQVc7UUFDbkIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUVuQixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsbUJBQW1CO1FBQ2pCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFvQixFQUFFLEVBQUU7WUFDakQsU0FBUyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEUsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQWtCO1FBQzNCLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxRQUFxQztRQUNwRCxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztJQUMzQixDQUFDO0lBRUQsaUJBQWlCLENBQUMsUUFBb0I7UUFDcEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7SUFDM0IsQ0FBQztJQUVELHlCQUF5QixDQUFDLFFBQW9CO1FBQzVDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxRQUFRLENBQUM7SUFDcEMsQ0FBQztJQUVELGdCQUFnQixDQUFDLFVBQW1CO1FBQ2xDLElBQUksVUFBVSxFQUFFLENBQUM7WUFDZixJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3pCLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUN4QixDQUFDO0lBQ0gsQ0FBQztJQUVELFFBQVE7UUFDTixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxTQUFTLEVBQUUsU0FBUyxJQUFJLEtBQUssQ0FBQztJQUM1QyxDQUFDO0lBRU8saUJBQWlCO1FBQ3ZCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDNUUsSUFBSSxDQUFDLGlCQUFpQixFQUFFLEVBQUUsQ0FBQztZQUUzQixJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDeEMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sa0JBQWtCO1FBQ3hCLE1BQU0sZ0JBQWdCLEdBQXVCLFFBQVEsQ0FBQyxhQUFhLENBQUMsK0JBQStCLFdBQVcsR0FBRyxDQUFDLENBQUM7UUFFbkgsTUFBTSxRQUFRLEdBQW1DLGdCQUFnQixFQUFFLGFBQWEsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1FBRTFHLElBQUksUUFBUSxZQUFZLFdBQVcsRUFBRSxDQUFDO1lBQ3BDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDO2lCQUN6QixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7aUJBQ2IsU0FBUyxDQUFDLEdBQUcsRUFBRTtnQkFDZCxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQztnQkFFbEIsSUFBSSxDQUFDLGlCQUFpQixFQUFFLEVBQUUsQ0FBQztnQkFFM0IsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3hDLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQztJQUNILENBQUM7OEdBOUpVLG1CQUFtQixtREFvRHBCLGVBQWUsYUFDSCxpQkFBaUI7a0dBckQ1QixtQkFBbUIsdXJDQWRuQjtZQUNULDBCQUEwQjtZQUMxQjtnQkFDRSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixVQUFVLEVBQUUsR0FBRyxFQUFFO29CQUNmLE1BQU0sVUFBVSxHQUFxQixNQUFNLENBQUMsa0JBQWtCLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUM7b0JBRTFGLE9BQU8sV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUNqQyxDQUFDO2FBQ0Y7WUFDRCxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7WUFDM0YsRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7U0FDaEcseURBMENxRSxTQUFTLDRGQU5wRSxTQUFTLG9IQ3BIdEIsOHJDQThDQSx5RERpQlksWUFBWSxnYUFBRSxlQUFlLHF3QkFBRSxtQkFBbUIsMFRBQUUsaUJBQWlCOztBQW1CcEUsbUJBQW1CO0lBdkIvQixZQUFZLEVBQUU7cUNBMEVnQixpQkFBaUI7R0FuRG5DLG1CQUFtQixDQStKL0I7OzJGQS9KWSxtQkFBbUI7a0JBdEIvQixTQUFTOytCQUNFLGFBQWEsY0FDWCxJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsZUFBZSxFQUFFLG1CQUFtQixFQUFFLGlCQUFpQixFQUFFLDhCQUE4QixDQUFDLG1CQUcvRix1QkFBdUIsQ0FBQyxNQUFNLGtCQUMvQixDQUFDLDhCQUE4QixDQUFDLGFBQ3JDO3dCQUNULDBCQUEwQjt3QkFDMUI7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsVUFBVSxFQUFFLEdBQUcsRUFBRTtnQ0FDZixNQUFNLFVBQVUsR0FBcUIsTUFBTSxDQUFDLGtCQUFrQixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO2dDQUUxRixPQUFPLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQzs0QkFDakMsQ0FBQzt5QkFDRjt3QkFDRCxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsb0JBQW9CLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO3dCQUMzRixFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7cUJBQ2hHOzswQkFzREUsTUFBTTsyQkFBQyxlQUFlOzswQkFDdEIsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxpQkFBaUI7eUNBcEQ5QixRQUFRO3NCQUFoQixLQUFLO2dCQUVHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBK0JnQixTQUFTO3NCQUE5QixTQUFTO3VCQUFDLFNBQVM7Z0JBRUcsU0FBUztzQkFBL0IsWUFBWTt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBIb3N0TGlzdGVuZXIsXG4gIEluamVjdCxcbiAgSW5wdXQsXG4gIElucHV0U2lnbmFsLFxuICBPcHRpb25hbCxcbiAgT3V0cHV0RW1pdHRlclJlZixcbiAgU2lnbmFsLFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxuICBlZmZlY3QsXG4gIGZvcndhcmRSZWYsXG4gIGluamVjdCxcbiAgaW5wdXQsXG4gIG91dHB1dCxcbiAgdmlld0NoaWxkcmVuLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxuICBGb3JtQ29udHJvbCxcbiAgTkdfVkFMSURBVE9SUyxcbiAgTkdfVkFMVUVfQUNDRVNTT1IsXG4gIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gIFZhbGlkYXRpb25FcnJvcnMsXG4gIFZhbGlkYXRvcixcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTUFUX1NFTEVDVF9DT05GSUcsIE1hdE9wdGlvbiwgTWF0U2VsZWN0LCBNYXRTZWxlY3RDaGFuZ2UsIE1hdFNlbGVjdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCc7XG5pbXBvcnQgeyBXbGNtSWNvbkRpcmVjdGl2ZSwgV2xjbUljb25OYW1lLCBXbGNtT3B0aW9uLCBXbGNtU2VsZWN0T3B0aW9uRm9ybWF0IH0gZnJvbSAnQHdsY20vYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFdMQ01fRk9STV9DT05UUk9MLCBXTENNX0ZPUk1fQ09OVFJPTF9QUk9WSURFUiwgV0xDTV9GT1JNX0ZJRUxEIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IFdsY21TZWxlY3RJbnB1dEJpbmRlckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvc2VsZWN0LWlucHV0LWJpbmRlci5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgV2xjbUZvcm1Db250cm9sLCBXbGNtRm9ybUZpZWxkLCBXbGNtRm9ybUZpZWxkSW5wdXQgfSBmcm9tICcuLi8uLi9tb2RlbHMvX2luZGV4JztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgRU1QVFksIE9ic2VydmFibGUsIGZpcnN0LCBmcm9tRXZlbnQsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgSXNPcHRpb25EaXNhYmxlZEZuLCBXbGNtU2VsZWN0Q29uZmlnIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3NlbGVjdC5tb2RlbHMnO1xuaW1wb3J0IHsgV0xDTV9TRUxFQ1RfQ09ORklHIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL3NlbGVjdC5jb25zdGFudHMnO1xuaW1wb3J0IHsgVW50aWxEZXN0cm95LCB1bnRpbERlc3Ryb3llZCB9IGZyb20gJ0BuZ25lYXQvdW50aWwtZGVzdHJveSc7XG5pbXBvcnQgeyBDZGtPdmVybGF5T3JpZ2luIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgbWVyZ2VXaXRoIH0gZnJvbSAnbG9kYXNoJztcblxudHlwZSBTZWxlY3RWYWx1ZSA9IHN0cmluZ1tdIHwgc3RyaW5nO1xuXG50eXBlIE9wdGlvblRlbXBsYXRlQ29udGV4dCA9IFRlbXBsYXRlUmVmPHsgJGltcGxpY2l0OiBXbGNtT3B0aW9uIH0+O1xuXG5jb25zdCBQQU5FTF9DTEFTUzogc3RyaW5nID0gJ3dsY20tc2VsZWN0LXBhbmVsJztcblxuY29uc3QgREVGQVVMVF9DT05GSUc6IFdsY21TZWxlY3RDb25maWcgPSB7IG92ZXJsYXlQYW5lbENsYXNzOiBbUEFORUxfQ0xBU1NdIH07XG5cbmNvbnN0IG1lcmdlQ29uZmlnID0gKGNvbmZpZzogV2xjbVNlbGVjdENvbmZpZyk6IFdsY21TZWxlY3RDb25maWcgPT4ge1xuICBjb25zdCBjdXN0b21pemVyID0gKF9kZWZhdWx0OiBXbGNtU2VsZWN0Q29uZmlnLCBfbmV3OiBXbGNtU2VsZWN0Q29uZmlnKTogQXJyYXk8dW5rbm93bj4gfCB2b2lkID0+IHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShfZGVmYXVsdCkpIHJldHVybiBfZGVmYXVsdC5jb25jYXQoX25ldyk7XG4gIH07XG5cbiAgcmV0dXJuIG1lcmdlV2l0aCh7IC4uLkRFRkFVTFRfQ09ORklHIH0sIGNvbmZpZywgY3VzdG9taXplcik7XG59O1xuXG5AVW50aWxEZXN0cm95KClcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3dsY20tc2VsZWN0JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgTWF0U2VsZWN0TW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBXbGNtSWNvbkRpcmVjdGl2ZSwgV2xjbVNlbGVjdElucHV0QmluZGVyRGlyZWN0aXZlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3NlbGVjdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NlbGVjdC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaG9zdERpcmVjdGl2ZXM6IFtXbGNtU2VsZWN0SW5wdXRCaW5kZXJEaXJlY3RpdmVdLFxuICBwcm92aWRlcnM6IFtcbiAgICBXTENNX0ZPUk1fQ09OVFJPTF9QUk9WSURFUixcbiAgICB7XG4gICAgICBwcm92aWRlOiBNQVRfU0VMRUNUX0NPTkZJRyxcbiAgICAgIHVzZUZhY3Rvcnk6ICgpID0+IHtcbiAgICAgICAgY29uc3Qgd2xjbUNvbmZpZzogV2xjbVNlbGVjdENvbmZpZyA9IGluamVjdChXTENNX1NFTEVDVF9DT05GSUcsIHsgb3B0aW9uYWw6IHRydWUgfSkgPz8ge307XG5cbiAgICAgICAgcmV0dXJuIG1lcmdlQ29uZmlnKHdsY21Db25maWcpO1xuICAgICAgfSxcbiAgICB9LFxuICAgIHsgcHJvdmlkZTogTkdfVkFMSURBVE9SUywgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gV2xjbVNlbGVjdENvbXBvbmVudCksIG11bHRpOiB0cnVlIH0sXG4gICAgeyBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUiwgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gV2xjbVNlbGVjdENvbXBvbmVudCksIG11bHRpOiB0cnVlIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFdsY21TZWxlY3RDb21wb25lbnQgaW1wbGVtZW50cyBXbGNtRm9ybUZpZWxkSW5wdXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBWYWxpZGF0b3Ige1xuICBASW5wdXQoKSBtdWx0aXBsZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmcgPSAnTm90IHNlbGVjdGVkJztcblxuICBvcHRpb25zOiBJbnB1dFNpZ25hbDxXbGNtT3B0aW9uW10+ID0gaW5wdXQucmVxdWlyZWQoKTtcblxuICBzZWxlY3RPcHRpb25Gb3JtYXQ6IElucHV0U2lnbmFsPFdsY21TZWxlY3RPcHRpb25Gb3JtYXQ+ID0gaW5wdXQ8V2xjbVNlbGVjdE9wdGlvbkZvcm1hdD4oJ1ZhbHVlT25seScpO1xuXG4gIG9wdGlvblRlbXBsYXRlOiBJbnB1dFNpZ25hbDxUZW1wbGF0ZVJlZjxPcHRpb25UZW1wbGF0ZUNvbnRleHQ+IHwgbnVsbD4gPVxuICAgIGlucHV0PFRlbXBsYXRlUmVmPE9wdGlvblRlbXBsYXRlQ29udGV4dD4gfCBudWxsPihudWxsKTtcblxuICB0cmlnZ2VyVGVtcGxhdGU6IElucHV0U2lnbmFsPFRlbXBsYXRlUmVmPE1hdE9wdGlvbjxhbnk+IHwgTWF0T3B0aW9uPGFueT5bXT4gfCBudWxsPiA9IGlucHV0PFRlbXBsYXRlUmVmPFxuICAgIE1hdE9wdGlvbjxXbGNtT3B0aW9uPiB8IE1hdE9wdGlvbjxXbGNtT3B0aW9uPltdXG4gID4gfCBudWxsPihudWxsKTtcblxuICBpc09wdGlvbkRpc2FibGVkOiBJbnB1dFNpZ25hbDxJc09wdGlvbkRpc2FibGVkRm4+ID0gaW5wdXQ8SXNPcHRpb25EaXNhYmxlZEZuPigoKSA9PiBmYWxzZSk7XG5cbiAgc2VsZWN0aW9uQ2hhbmdlOiBPdXRwdXRFbWl0dGVyUmVmPE1hdFNlbGVjdENoYW5nZT4gPSBvdXRwdXQoKTtcblxuICBvcGVuZWQ6IE91dHB1dEVtaXR0ZXJSZWY8dm9pZD4gPSBvdXRwdXQoKTtcblxuICBjbG9zZWQ6IE91dHB1dEVtaXR0ZXJSZWY8dm9pZD4gPSBvdXRwdXQoKTtcblxuICByZWFkb25seSBjb250cm9sOiBGb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgpO1xuXG4gIHJlYWRvbmx5IFdsY21JY29uTmFtZSA9IFdsY21JY29uTmFtZTtcblxuICBwcml2YXRlIF9jaGFuZ2VkPzogKHZhbHVlOiBXbGNtT3B0aW9uKSA9PiB2b2lkO1xuXG4gIHByaXZhdGUgX3RvdWNoZWQ/OiAoKSA9PiB2b2lkO1xuXG4gIHByaXZhdGUgX3ZhbGlkYXRvckNoYW5nZWQ/OiAoKSA9PiB2b2lkO1xuXG4gIEBWaWV3Q2hpbGQoTWF0U2VsZWN0KSBtYXRTZWxlY3QhOiBNYXRTZWxlY3Q7XG5cbiAgQEhvc3RMaXN0ZW5lcignY2xpY2snKSBvcGVuUGFuZWwoKTogdm9pZCB7XG4gICAgdGhpcy5tYXRTZWxlY3Qub3BlbigpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG1hdE9wdGlvbnM6IFNpZ25hbDxSZWFkb25seUFycmF5PE1hdE9wdGlvbj4+ID0gdmlld0NoaWxkcmVuKE1hdE9wdGlvbik7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfZm9jdXNTdHJlYW0kOiBCZWhhdmlvclN1YmplY3Q8T2JzZXJ2YWJsZTx2b2lkPj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KEVNUFRZIGFzIE9ic2VydmFibGU8dm9pZD4pO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2JsdXJTdHJlYW0kOiBCZWhhdmlvclN1YmplY3Q8T2JzZXJ2YWJsZTx2b2lkPj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KEVNUFRZIGFzIE9ic2VydmFibGU8dm9pZD4pO1xuXG4gIGZvY3VzJDogT2JzZXJ2YWJsZTx1bmtub3duPiA9IHRoaXMuX2ZvY3VzU3RyZWFtJC5waXBlKHN3aXRjaE1hcCgoc3RyZWFtOiBPYnNlcnZhYmxlPHVua25vd24+KSA9PiBzdHJlYW0pKTtcblxuICBibHVyJDogT2JzZXJ2YWJsZTx1bmtub3duPiA9IHRoaXMuX2JsdXJTdHJlYW0kLnBpcGUoc3dpdGNoTWFwKChzdHJlYW06IE9ic2VydmFibGU8dW5rbm93bj4pID0+IHN0cmVhbSkpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIEBJbmplY3QoV0xDTV9GT1JNX0ZJRUxEKSBwcml2YXRlIGZvcm1GaWVsZDogV2xjbUZvcm1GaWVsZCxcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KFdMQ01fRk9STV9DT05UUk9MKSBwcml2YXRlIHBhcmVudEZvcm1NZW1iZXI6IFdsY21Gb3JtQ29udHJvbCxcbiAgKSB7XG4gICAgaWYgKHRoaXMucGFyZW50Rm9ybU1lbWJlcikge1xuICAgICAgdGhpcy5oYW5kbGVTdGF0ZUNoYW5nZSgpO1xuICAgIH1cblxuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5pc09wdGlvbkRpc2FibGVkKCkgJiYgdGhpcy5vcHRpb25zKCkubGVuZ3RoID4gMCkge1xuICAgICAgICB0aGlzLnVwZGF0ZU9wdGlvbnNTdGF0dXMoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBjb25zdCBmb3JtRmllbGQ6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+ID0gdGhpcy5mb3JtRmllbGQuaW5wdXRDb250YWluZXI7XG5cbiAgICBpZiAoZm9ybUZpZWxkKSB7XG4gICAgICB0aGlzLm1hdFNlbGVjdC5fcHJlZmVycmVkT3ZlcmxheU9yaWdpbiA9IG5ldyBDZGtPdmVybGF5T3JpZ2luKHRoaXMuZm9ybUZpZWxkLmlucHV0Q29udGFpbmVyKTtcbiAgICB9XG5cbiAgICB0aGlzLl9mb2N1c1N0cmVhbSQubmV4dCh0aGlzLm1hdFNlbGVjdC5fb3BlbmVkU3RyZWFtKTtcblxuICAgIHRoaXMuX2JsdXJTdHJlYW0kLm5leHQodGhpcy5tYXRTZWxlY3QuX2Nsb3NlZFN0cmVhbSk7XG4gIH1cblxuICBmb2N1cyA9ICgpOiB2b2lkID0+IHRoaXMubWF0U2VsZWN0Lm9wZW4oKTtcblxuICBpc0ZvY3VzZWQgPSAoKTogYm9vbGVhbiA9PiB0aGlzLmlzT3BlbjtcblxuICBzZWxlY3QoZXZlbnQ6IE1hdFNlbGVjdENoYW5nZSk6IHZvaWQge1xuICAgIHRoaXMuX2NoYW5nZWQ/LihldmVudC52YWx1ZSk7XG5cbiAgICB0aGlzLl92YWxpZGF0b3JDaGFuZ2VkPy4oKTtcblxuICAgIHRoaXMuc2VsZWN0aW9uQ2hhbmdlLmVtaXQoZXZlbnQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHBhbmVsT3BlbmVkKCk6IHZvaWQge1xuICAgIHRoaXMub3BlbmVkLmVtaXQoKTtcblxuICAgIHRoaXMuaGFuZGxlQ2xpY2tPdXRzaWRlKCk7XG4gIH1cblxuICB1cGRhdGVPcHRpb25zU3RhdHVzKCk6IHZvaWQge1xuICAgIHRoaXMubWF0T3B0aW9ucygpLmZvckVhY2goKG1hdE9wdGlvbjogTWF0T3B0aW9uKSA9PiB7XG4gICAgICBtYXRPcHRpb24uZGlzYWJsZWQgPSB0aGlzLmlzT3B0aW9uRGlzYWJsZWQoKShtYXRPcHRpb24udmFsdWUpO1xuICAgIH0pO1xuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogU2VsZWN0VmFsdWUpOiB2b2lkIHtcbiAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUodmFsdWUpO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShjYWxsYmFjazogKHZhbHVlOiBXbGNtT3B0aW9uKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5fY2hhbmdlZCA9IGNhbGxiYWNrO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoY2FsbGJhY2s6ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLl90b3VjaGVkID0gY2FsbGJhY2s7XG4gIH1cblxuICByZWdpc3Rlck9uVmFsaWRhdG9yQ2hhbmdlKGNhbGxiYWNrOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5fdmFsaWRhdG9yQ2hhbmdlZCA9IGNhbGxiYWNrO1xuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgaWYgKGlzRGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuY29udHJvbC5kaXNhYmxlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY29udHJvbC5lbmFibGUoKTtcbiAgICB9XG4gIH1cblxuICB2YWxpZGF0ZSgpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBnZXQgaXNPcGVuKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm1hdFNlbGVjdD8ucGFuZWxPcGVuID8/IGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVTdGF0ZUNoYW5nZSgpOiB2b2lkIHtcbiAgICB0aGlzLnBhcmVudEZvcm1NZW1iZXIuc3RhdGVDaGFuZ2VzJC5waXBlKHVudGlsRGVzdHJveWVkKHRoaXMpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5fdmFsaWRhdG9yQ2hhbmdlZD8uKCk7XG5cbiAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUNsaWNrT3V0c2lkZSgpOiB2b2lkIHtcbiAgICBjb25zdCBvdmVybGF5Q29udGFpbmVyOiBIVE1MRWxlbWVudCB8IG51bGwgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGAuY2RrLW92ZXJsYXktY29udGFpbmVyOmhhcyguJHtQQU5FTF9DTEFTU30pYCk7XG5cbiAgICBjb25zdCBiYWNrZHJvcDogSFRNTEVsZW1lbnQgfCBudWxsIHwgdW5kZWZpbmVkID0gb3ZlcmxheUNvbnRhaW5lcj8ucXVlcnlTZWxlY3RvcihgLmNkay1vdmVybGF5LWJhY2tkcm9wYCk7XG5cbiAgICBpZiAoYmFja2Ryb3AgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCkge1xuICAgICAgZnJvbUV2ZW50KGJhY2tkcm9wLCAnY2xpY2snKVxuICAgICAgICAucGlwZShmaXJzdCgpKVxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICB0aGlzLl90b3VjaGVkPy4oKTtcblxuICAgICAgICAgIHRoaXMuX3ZhbGlkYXRvckNoYW5nZWQ/LigpO1xuXG4gICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG59XG4iLCI8bWF0LXNlbGVjdFxuICAjc2VsZWN0Q29tcG9uZW50XG4gIFttdWx0aXBsZV09XCJtdWx0aXBsZVwiXG4gIFtkaXNhYmxlUmlwcGxlXT1cInRydWVcIlxuICBbZm9ybUNvbnRyb2xdPVwiY29udHJvbFwiXG4gIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gIFtoaWRlU2luZ2xlU2VsZWN0aW9uSW5kaWNhdG9yXT1cInRydWVcIlxuICBbbmdDbGFzc109XCJ7IGZvY3VzZWQ6IHNlbGVjdENvbXBvbmVudC5mb2N1c2VkIH1cIlxuICAoc2VsZWN0aW9uQ2hhbmdlKT1cInNlbGVjdCgkZXZlbnQpXCJcbiAgKG9wZW5lZCk9XCJwYW5lbE9wZW5lZCgpXCJcbiAgKGNsb3NlZCk9XCJjbG9zZWQuZW1pdCgpXCJcbj5cbiAgQGlmICh0cmlnZ2VyVGVtcGxhdGUoKSkge1xuICAgIDxtYXQtc2VsZWN0LXRyaWdnZXI+XG4gICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgdHJpZ2dlclRlbXBsYXRlKCk7XG4gICAgICAgICAgY29udGV4dDogJGFueSh7ICRpbXBsaWNpdDogc2VsZWN0Q29tcG9uZW50LnNlbGVjdGVkIH0pXG4gICAgICAgIFwiXG4gICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgPC9tYXQtc2VsZWN0LXRyaWdnZXI+XG4gIH1cblxuICA8bWF0LW9wdGlvblxuICAgICpuZ0Zvcj1cImxldCBvcHRpb24gb2Ygb3B0aW9ucygpXCJcbiAgICBbdmFsdWVdPVwic2VsZWN0T3B0aW9uRm9ybWF0KCkgPT09ICdDb21wbGV0ZU9wdGlvbicgPyBvcHRpb24gOiBvcHRpb24udmFsdWVcIlxuICA+XG4gICAgQGlmIChvcHRpb25UZW1wbGF0ZSgpKSB7XG4gICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgb3B0aW9uVGVtcGxhdGUoKTtcbiAgICAgICAgICBjb250ZXh0OiAkYW55KHsgJGltcGxpY2l0OiBvcHRpb24gfSlcbiAgICAgICAgXCJcbiAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICB9IEBlbHNlIHtcbiAgICAgIHt7IG9wdGlvbi52aWV3VmFsdWUgfX1cbiAgICB9XG4gIDwvbWF0LW9wdGlvbj5cbjwvbWF0LXNlbGVjdD5cblxuPGRpdiBjbGFzcz1cIndsY20tc2VsZWN0LWFycm93XCI+XG4gIDxuZy1jb250YWluZXJcbiAgICBbd2xjbUljb25dPVwiV2xjbUljb25OYW1lLkNIRVZST05fRE9XTlwiXG4gICAgW3dsY21JY29uU3RvcFByb3BhZ2F0aW9uXT1cImZhbHNlXCJcbiAgPjwvbmctY29udGFpbmVyPlxuPC9kaXY+XG4iXX0=
|
@@ -251,8 +251,9 @@ let WlcmFormFieldComponent = class WlcmFormFieldComponent {
|
|
251
251
|
this.handleStateChanges();
|
252
252
|
}
|
253
253
|
focus() {
|
254
|
-
if (
|
255
|
-
|
254
|
+
if (this.isFocused || this.isDisabled)
|
255
|
+
return;
|
256
|
+
this.inputRef?.focus();
|
256
257
|
}
|
257
258
|
get control() {
|
258
259
|
return (this.controlContainer?.control || this.ngControl?.control) ?? null;
|
@@ -847,6 +848,14 @@ let WlcmSelectComponent = class WlcmSelectComponent {
|
|
847
848
|
registerOnValidatorChange(callback) {
|
848
849
|
this._validatorChanged = callback;
|
849
850
|
}
|
851
|
+
setDisabledState(isDisabled) {
|
852
|
+
if (isDisabled) {
|
853
|
+
this.control.disable();
|
854
|
+
}
|
855
|
+
else {
|
856
|
+
this.control.enable();
|
857
|
+
}
|
858
|
+
}
|
850
859
|
validate() {
|
851
860
|
return null;
|
852
861
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"wlcm-angular-forms.mjs","sources":["../../../../modules/forms/src/lib/forms/components/error/error.component.ts","../../../../modules/forms/src/lib/forms/components/error/error.component.html","../../../../modules/forms/src/lib/forms/services/form-state-handler.service.ts","../../../../modules/forms/src/lib/forms/constants/form-errors.constants.ts","../../../../modules/forms/src/lib/forms/constants/form-elements.constants.ts","../../../../modules/forms/src/lib/forms/constants/select.constants.ts","../../../../modules/forms/src/lib/forms/constants/index.ts","../../../../modules/forms/src/lib/forms/services/places.api.ts","../../../../modules/forms/src/lib/forms/constants/form-state-handlers.constants.ts","../../../../modules/forms/src/lib/forms/directives/form-field-custom-container.directive.ts","../../../../modules/forms/src/lib/forms/pipes/errors-mapper.pipe.ts","../../../../modules/forms/src/lib/forms/directives/form-field-prefix.directive.ts","../../../../modules/forms/src/lib/forms/directives/form-field-suffix.directive.ts","../../../../modules/forms/src/lib/forms/components/form-field/form-field.component.ts","../../../../modules/forms/src/lib/forms/components/form-field/form-field.component.html","../../../../modules/forms/src/lib/forms/constants/form-field.constants.ts","../../../../modules/forms/src/lib/forms/directives/input.directive.ts","../../../../modules/forms/src/lib/forms/components/label/label.component.ts","../../../../modules/forms/src/lib/forms/components/label/label.component.html","../../../../modules/forms/src/lib/forms/directives/autocomplete.directive.ts","../../../../modules/forms/src/lib/forms/models/autocomplete.models.ts","../../../../modules/forms/src/lib/forms/components/autocomplete/autocomplete.component.ts","../../../../modules/forms/src/lib/forms/components/autocomplete/autocomplete.component.html","../../../../modules/forms/src/lib/forms/components/checkbox/checkbox.component.ts","../../../../modules/forms/src/lib/forms/components/checkbox/checkbox.component.html","../../../../modules/forms/src/lib/forms/components/partials/autocomplete-suffix/autocomplete-suffix.component.ts","../../../../modules/forms/src/lib/forms/components/partials/autocomplete-suffix/autocomplete-suffix.component.html","../../../../modules/forms/src/lib/forms/directives/select-input-binder.directive.ts","../../../../modules/forms/src/lib/forms/components/select/select.component.ts","../../../../modules/forms/src/lib/forms/components/select/select.component.html","../../../../modules/forms/src/lib/forms/directives/form-field-hint.directive.ts","../../../../modules/forms/src/lib/forms/forms.module.ts","../../../../modules/forms/src/wlcm-angular-forms.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'wlcm-error',\n standalone: true,\n imports: [CommonModule],\n host: { class: 'wlcm-error' },\n templateUrl: './error.component.html',\n styleUrls: ['./error.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class WlcmErrorComponent {}\n","<ng-content></ng-content>\n","import { Injectable } from '@angular/core';\nimport { WlcmForm, WlcmFormControl } from '../models/form.models';\nimport { Observable, Subject } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class FormStateHandlerService implements WlcmForm, WlcmFormControl {\n private readonly _stateChanges$: Subject<void> = new Subject();\n\n readonly stateChanges$: Observable<void> = this._stateChanges$.asObservable();\n\n updateFormState(): void {\n this._stateChanges$.next();\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { WlcmFormErrors } from '../models/form-errors.models';\n\nexport const WLCM_ERRORS: InjectionToken<WlcmFormErrors> = new InjectionToken('WLCM_ERRORS');\n\nexport const WLCM_PRIORITY_ERRORS: InjectionToken<Set<string>> = new InjectionToken('WLCM_PRIORITY_ERRORS', {\n providedIn: 'root',\n factory: () => new Set(),\n});\n","import { InjectionToken } from '@angular/core';\nimport { WlcmInputBinder, WlcmInputGetter } from '../models/input.models';\nimport { WlcmFormField } from '../models/form.models';\n\nexport const WLCM_INPUT: InjectionToken<WlcmInputGetter> = new InjectionToken('WLCM_INPUT');\n\nexport const WLCM_INPUT_BINDER: InjectionToken<WlcmInputBinder> = new InjectionToken('WLCM_INPUT_BINDER');\n\nexport const WLCM_FORM_FIELD: InjectionToken<WlcmFormField> = new InjectionToken('WLCM_FORM_FIELD');\n","import { InjectionToken } from '@angular/core';\nimport { WlcmSelectConfig } from '../models/select.models';\n\nexport const WLCM_SELECT_CONFIG: InjectionToken<WlcmSelectConfig> = new InjectionToken('WLCM_SELECT_CONFIG');\n","export * from './form-errors.constants';\nexport * from './form-elements.constants';\nexport * from './form-state-handlers.constants';\nexport * from './select.constants';\n\nexport const WLCM_MAPS_API_ERROR: string = `Google Maps JavaScript API not loaded. Please ensure the following script is included in your HTML: <script src=\"https://maps.googleapis.com/maps/api/js?key=[apiKey]&libraries=places\"></script>`;\n","import { Injectable } from '@angular/core';\nimport { PaginatedData, WlcmAutocompleteOption } from '@wlcm/angular/core';\nimport { WLCM_MAPS_API_ERROR } from '../constants';\nimport { Observable, Subscriber } from 'rxjs';\n\nconst DEFAULT_PAGINATED_DATA: PaginatedData<WlcmAutocompleteOption> = {\n totalPages: 1,\n totalItems: 1,\n currPage: 1,\n data: [],\n};\n\n@Injectable()\nclass WlcmDefaultPlacesApi implements WlcmPlacesApi {\n private _autocompleteService = new google.maps.places.AutocompleteService();\n\n private _placesService = new google.maps.places.PlacesService(document.createElement('div'));\n\n constructor() {\n if (typeof google === 'undefined') {\n throw new Error(WLCM_MAPS_API_ERROR);\n }\n }\n\n getPlacesPaginated(query: string): Observable<PaginatedData<WlcmAutocompleteOption>> {\n return new Observable((subscriber: Subscriber<PaginatedData<WlcmAutocompleteOption>>) => {\n if (query.length === 0) {\n subscriber.next({ ...DEFAULT_PAGINATED_DATA });\n\n return subscriber.complete();\n }\n\n const request: google.maps.places.AutocompletionRequest = { input: query };\n\n this._autocompleteService.getPlacePredictions(request, (predictions, status) => {\n const result: PaginatedData<WlcmAutocompleteOption> = { ...DEFAULT_PAGINATED_DATA };\n\n if (status === google.maps.places.PlacesServiceStatus.OK) {\n result.data = predictions!.map((prediction: google.maps.places.AutocompletePrediction) => {\n return new WlcmAutocompleteOption(\n prediction.place_id,\n prediction.description,\n prediction.description,\n prediction,\n );\n });\n }\n\n subscriber.next(result);\n\n subscriber.complete();\n });\n });\n }\n\n get placesService(): google.maps.places.PlacesService {\n return this._placesService;\n }\n\n get autocompleteService(): google.maps.places.AutocompleteService {\n return this._autocompleteService;\n }\n}\n\n@Injectable({\n providedIn: 'root',\n useClass: WlcmDefaultPlacesApi,\n})\nexport abstract class WlcmPlacesApi {\n abstract getPlacesPaginated(query: string): Observable<PaginatedData<WlcmAutocompleteOption>>;\n\n abstract get placesService(): google.maps.places.PlacesService;\n\n abstract get autocompleteService(): google.maps.places.AutocompleteService;\n}\n","import { InjectionToken, Provider, inject } from '@angular/core';\nimport { WlcmForm, WlcmFormControl } from '../models/form.models';\nimport { FormStateHandlerService } from '../services';\n\nexport const WLCM_FORM: InjectionToken<WlcmForm> = new InjectionToken(\n 'WLCM_FORM'\n);\n\nexport const WLCM_FORM_PROVIDER: Provider = {\n provide: WLCM_FORM,\n useClass: FormStateHandlerService,\n};\n\nexport const WLCM_FORM_CONTROL: InjectionToken<WlcmFormControl> =\n new InjectionToken('WLCM_FORM_CONTROL');\n\nexport const WLCM_FORM_CONTROL_PROVIDER: Provider = {\n provide: WLCM_FORM_CONTROL,\n useFactory: () => inject(WLCM_FORM, { optional: true, skipSelf: true }),\n};\n","import { Directive, ElementRef } from '@angular/core';\n\n@Directive({\n selector: '[wlcmFormFieldCustomContainer]',\n standalone: true,\n})\nexport class WlcmFormFieldCustomContainerDirective {\n constructor(public elementRef: ElementRef<HTMLElement>) {}\n}\n","import { ChangeDetectorRef, Inject, Pipe, PipeTransform } from '@angular/core';\nimport { FormControl, ValidationErrors } from '@angular/forms';\nimport { WlcmFormErrorFn, WlcmFormErrors } from '../models/form-errors.models';\nimport {\n WLCM_ERRORS,\n WLCM_PRIORITY_ERRORS,\n} from '../constants/form-errors.constants';\nimport { Subject, takeUntil } from 'rxjs';\n\n@Pipe({\n name: 'errorsMapper',\n standalone: true,\n pure: false,\n})\nexport class ErrorsMapperPipe implements PipeTransform {\n private destroy$: Subject<void> = new Subject();\n\n currentError: string | null = null;\n\n constructor(\n private changeDetectorRef: ChangeDetectorRef,\n @Inject(WLCM_ERRORS) private errors: WlcmFormErrors,\n @Inject(WLCM_PRIORITY_ERRORS) private priorityErrors: Set<string>\n ) {}\n\n transform(control: FormControl): string | null {\n this.handleStatusChanges(control);\n\n this.retrieveFirstError(control.errors);\n\n return this.currentError;\n }\n\n private retrieveFirstError(errors: ValidationErrors | null): void {\n if (!errors) return;\n\n Object.keys(errors).forEach(\n (key: string) => !errors[key] && delete errors[key]\n );\n\n const errorsTypes: string[] = Object.getOwnPropertyNames(errors);\n\n const priorityType: string | undefined = errorsTypes.find((type: string) =>\n this.priorityErrors.has(type)\n );\n\n const outputError: string = priorityType || errorsTypes[0];\n\n if (outputError) {\n this.currentError = (this.errors[outputError] as WlcmFormErrorFn)?.(\n errors[outputError]\n );\n }\n }\n\n private handleStatusChanges(control: FormControl): void {\n this.destroy$.next();\n\n control.statusChanges.pipe(takeUntil(this.destroy$)).subscribe(() => {\n this.retrieveFirstError(control.errors);\n\n this.changeDetectorRef.markForCheck();\n });\n }\n}\n","import { Directive, HostListener } from '@angular/core';\n\n@Directive({\n selector: '[wlcmFormFieldPrefix]',\n standalone: true,\n})\nexport class WlcmFormFieldPrefixDirective {\n @HostListener('click', ['$event']) handlerClick = (event: MouseEvent) => {\n event.stopPropagation();\n };\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[wlcmFormFieldSuffix]',\n standalone: true,\n})\nexport class WlcmFormFieldSuffixDirective {}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n HostBinding,\n Inject,\n Input,\n Optional,\n ViewChild,\n forwardRef,\n} from '@angular/core';\nimport { Validators, AbstractControl, ControlContainer, NgControl } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { WlcmErrorComponent } from '../error/error.component';\nimport { WLCM_FORM_CONTROL, WLCM_FORM_CONTROL_PROVIDER } from '../../constants/form-state-handlers.constants';\nimport { WlcmFormFieldCustomContainerDirective } from '../../directives/form-field-custom-container.directive';\nimport { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';\nimport { ErrorsMapperPipe } from '../../pipes/errors-mapper.pipe';\nimport { WLCM_FORM_FIELD, WLCM_INPUT } from '../../constants/form-elements.constants';\nimport { WlcmFormFieldPrefixDirective } from '../../directives/form-field-prefix.directive';\nimport { WlcmFormFieldInput, WlcmInputGetter } from '../../models/input.models';\nimport { WlcmFormControl } from '../../models/form.models';\nimport { Observable, merge } from 'rxjs';\nimport { WlcmFormFieldSuffixDirective } from '../../directives/form-field-suffix.directive';\n\n@UntilDestroy()\n@Component({\n selector: 'wlcm-form-field',\n standalone: true,\n imports: [CommonModule, WlcmErrorComponent, ErrorsMapperPipe],\n host: { class: 'wlcm-form-field' },\n templateUrl: './form-field.component.html',\n styleUrls: ['./form-field.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n WLCM_FORM_CONTROL_PROVIDER,\n { provide: WLCM_FORM_FIELD, useExisting: forwardRef(() => WlcmFormFieldComponent) },\n ],\n})\nexport class WlcmFormFieldComponent implements AfterViewInit {\n @Input() displayErrorMessages: boolean = true;\n\n @ContentChild(NgControl, { descendants: true }) private ngControl?: NgControl;\n\n @ContentChild(ControlContainer, { descendants: true }) private controlContainer?: ControlContainer;\n\n @ContentChild(WLCM_INPUT) private _inputRef?: WlcmInputGetter;\n\n @ContentChild(WlcmFormFieldPrefixDirective) protected prefix?: WlcmFormFieldPrefixDirective;\n\n @ContentChild(WlcmFormFieldSuffixDirective) protected suffix?: WlcmFormFieldSuffixDirective;\n\n @ContentChild(WlcmFormFieldCustomContainerDirective)\n protected customContainer?: WlcmFormFieldCustomContainerDirective;\n\n @ViewChild('defaultContainer')\n protected defaultContainer?: ElementRef<HTMLElement>;\n\n @HostBinding('class.wlcm-field-focused') get isFocused() {\n return this.inputRef?.isFocused() ?? false;\n }\n\n @HostBinding('class.wlcm-field-required') get isRequired() {\n return this.control?.hasValidator(Validators.required);\n }\n\n @HostBinding('class.wlcm-field-invalid') get isInvalid() {\n return this.control?.invalid;\n }\n\n @HostBinding('class.wlcm-field-touched') get isTouched() {\n return this.control?.touched;\n }\n\n @HostBinding('class.wlcm-field-disabled') get isDisabled() {\n return this.control?.disabled;\n }\n\n constructor(\n @Optional()\n @Inject(WLCM_FORM_CONTROL)\n private parentFormMember: WlcmFormControl,\n private changeDetectorRef: ChangeDetectorRef,\n ) {}\n\n ngAfterViewInit(): void {\n if (!this.inputRef && !this.customContainer) {\n throw new Error('Input element should be bound to the wlcmInput directive.');\n }\n\n this.handleStateChanges();\n }\n\n focus(): void {\n if (!this.isFocused) this.inputRef?.focus();\n }\n\n get control(): AbstractControl | null {\n return (this.controlContainer?.control || this.ngControl?.control) ?? null;\n }\n\n get inputContainer(): ElementRef<HTMLElement> {\n return this.customContainer?.elementRef || (this.defaultContainer as ElementRef<HTMLElement>);\n }\n\n private handleStateChanges(): void {\n const events: Observable<unknown>[] = this.controlEvents;\n\n if (this.parentFormMember) {\n events.push(this.parentFormMember.stateChanges$);\n }\n\n merge(...events)\n .pipe(untilDestroyed(this))\n .subscribe(() => this.changeDetectorRef.markForCheck());\n }\n\n private get inputRef(): WlcmFormFieldInput | undefined {\n return this._inputRef?.get();\n }\n\n private get controlEvents(): Observable<unknown>[] {\n const events: Observable<unknown>[] = [];\n\n if (this.inputRef) {\n events.push(this.inputRef.focus$, this.inputRef.blur$);\n }\n\n if (this.control) {\n events.push(this.control.statusChanges);\n }\n\n return events;\n }\n}\n","<ng-content select=\"wlcm-label\"></ng-content>\n\n<ng-content select=\"[wlcmFormFieldCustomContainer]\"></ng-content>\n\n<div\n class=\"wlcm-field-container\"\n (click)=\"focus()\"\n #defaultContainer\n *ngIf=\"!customContainer\"\n>\n <div class=\"wlcm-field-prefix\" [class.contains-children]=\"prefix\">\n <ng-content select=\"[wlcmFormFieldPrefix]\"></ng-content>\n </div>\n\n <ng-content select=\"[wlcmInput]\"></ng-content>\n\n <div class=\"wlcm-field-suffix\" [class.contains-children]=\"suffix\">\n <ng-content select=\"[wlcmFormFieldSuffix]\"></ng-content>\n </div>\n</div>\n\n<ng-content select=\"[wlcmFormFieldHint]\"></ng-content>\n\n<div class=\"wlcm-field-error-container\" *ngIf=\"control && displayErrorMessages\">\n <wlcm-error>{{ $any(control) | errorsMapper }}</wlcm-error>\n</div>\n","export const WLCM_FORM_FIELD_INPUT_CLASS: string = 'wlcm-form-field-input';\n","import { Directive, ElementRef, inject } from '@angular/core';\nimport { WLCM_INPUT, WLCM_INPUT_BINDER } from '../constants/form-elements.constants';\nimport { WlcmFormFieldInput, WlcmInputBinder } from '../models/input.models';\nimport { WLCM_FORM_FIELD_INPUT_CLASS } from '../constants/form-field.constants';\nimport { Observable, fromEvent } from 'rxjs';\n\n@Directive({\n selector: '[wlcmInput]',\n providers: [\n {\n provide: WLCM_INPUT,\n useFactory: () => {\n const input: WlcmInputDirective = inject(WlcmInputDirective, { self: true });\n\n const binder: WlcmInputBinder | null = inject(WLCM_INPUT_BINDER, { self: true, optional: true });\n\n return { get: () => (binder ? binder.bind() : input) };\n },\n },\n ],\n standalone: true,\n})\nexport class WlcmInputDirective implements WlcmFormFieldInput {\n constructor(private _elementRef: ElementRef<HTMLElement>) {\n const element: HTMLElement = _elementRef.nativeElement;\n\n if (element.nodeName === 'INPUT' || element.nodeName === 'TEXTAREA') {\n element.classList.add(WLCM_FORM_FIELD_INPUT_CLASS);\n }\n }\n\n focus = (): void => this._elementRef.nativeElement.focus();\n\n isFocused = (): boolean => this._elementRef.nativeElement === document.activeElement;\n\n focus$: Observable<unknown> = fromEvent(this._elementRef.nativeElement, 'focus');\n\n blur$: Observable<unknown> = fromEvent(this._elementRef.nativeElement, 'blur');\n}\n","import { ChangeDetectionStrategy, Component, HostBinding, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'wlcm-label',\n standalone: true,\n imports: [CommonModule],\n host: { class: 'wlcm-label' },\n templateUrl: './label.component.html',\n styleUrls: ['./label.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class WlcmLabelComponent {\n @Input() required: boolean = false;\n\n @HostBinding('class.required') get isRequired(): boolean {\n return this.required;\n }\n}\n","<span class=\"wlcm-label-asterisk\">*</span>\n\n<ng-content></ng-content>\n","import { Directive, EventEmitter, Host, NgZone, Optional, Output } from '@angular/core';\nimport { asyncScheduler, fromEvent, observeOn, takeUntil } from 'rxjs';\nimport { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';\nimport { MatAutocomplete } from '@angular/material/autocomplete';\n\n@UntilDestroy()\n@Directive({\n selector: '[wlcmAutocomplete]',\n standalone: true,\n})\nexport class AutocompleteDirective {\n @Output() panelScrolled: EventEmitter<void> = new EventEmitter();\n\n private _scrollWidth: number = 0;\n\n private _scrollWidthChanged: boolean = false;\n\n constructor(private zone: NgZone, @Host() @Optional() private autocomplete: MatAutocomplete) {\n this.handleOpenEvent();\n }\n\n private handleOpenEvent(): void {\n this.autocomplete.opened\n .pipe(untilDestroyed(this))\n .pipe(observeOn(asyncScheduler))\n .subscribe(() => this.zone.runOutsideAngular(() => this.handleScrolling()));\n }\n\n private handleScrolling(): void {\n const panel: HTMLElement = this.autocomplete.panel.nativeElement;\n\n this.setScrollWidth(panel.scrollWidth);\n\n fromEvent(panel, 'scroll')\n .pipe(takeUntil(this.autocomplete.closed))\n .subscribe(() => {\n if (this._scrollWidth !== panel.scrollWidth) {\n this.setScrollWidth(panel.scrollWidth);\n }\n\n if (panel.scrollWidth * 0.6 <= panel.scrollTop && this._scrollWidthChanged) {\n this.zone.run(() => this.panelScrolled.emit());\n\n this._scrollWidthChanged = false;\n }\n });\n }\n\n private setScrollWidth(width: number): void {\n this._scrollWidth = width;\n\n this._scrollWidthChanged = true;\n }\n}\n","import { Directive } from '@angular/core';\nimport { WlcmAutocompleteOption } from '@wlcm/angular/core';\nimport { Observable } from 'rxjs';\n\nexport type WlcmAutocompleteValue = WlcmAutocompleteOption | string | null;\n\n@Directive()\nexport abstract class WlcmAutocomplete {\n abstract loading$: Observable<boolean>;\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Inject,\n Input,\n InputSignal,\n OnInit,\n OutputEmitterRef,\n TemplateRef,\n ViewChild,\n forwardRef,\n inject,\n input,\n output,\n} from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n FormControl,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule,\n ValidationErrors,\n Validator,\n} from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { WlcmFormFieldComponent } from '../form-field/form-field.component';\nimport { WlcmLabelComponent } from '../label/label.component';\nimport { WlcmInputDirective } from '../../directives/input.directive';\nimport {\n MAT_AUTOCOMPLETE_DEFAULT_OPTIONS,\n MatAutocomplete,\n MatAutocompleteModule,\n MatAutocompleteOrigin,\n MatAutocompleteTrigger,\n} from '@angular/material/autocomplete';\nimport {\n BehaviorSubject,\n EMPTY,\n Observable,\n Subject,\n concatMap,\n filter,\n finalize,\n fromEvent,\n map,\n merge,\n switchMap,\n take,\n tap,\n timer,\n} from 'rxjs';\nimport { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';\nimport { AutocompleteDirective } from '../../directives/autocomplete.directive';\nimport {\n DEFAULT_QUERY_PARAMS,\n PaginatedData,\n QueryParams,\n WlcmAutocompleteOption,\n WlcmSelectOptionFormat,\n} from '@wlcm/angular/core';\nimport { WLCM_FORM_FIELD, WLCM_INPUT, WLCM_INPUT_BINDER } from '../../constants';\nimport { WlcmAutocomplete, WlcmAutocompleteValue } from '../../models/autocomplete.models';\nimport { WlcmFormFieldInput } from '../../models/input.models';\nimport { WlcmFormField } from '../../models/form.models';\nimport { RxLet } from '@rx-angular/template/let';\n\ntype Option = WlcmAutocompleteOption;\n\nconst PANEL_CLASS: string = 'wlcm-autocomplete-panel';\n\n@UntilDestroy()\n@Component({\n selector: 'wlcm-autocomplete',\n exportAs: 'wlcmAutocomplete',\n host: { class: 'wlcm-autocomplete' },\n standalone: true,\n imports: [\n CommonModule,\n MatAutocompleteModule,\n AutocompleteDirective,\n ReactiveFormsModule,\n WlcmFormFieldComponent,\n WlcmLabelComponent,\n WlcmInputDirective,\n RxLet,\n ],\n templateUrl: './autocomplete.component.html',\n styleUrls: ['./autocomplete.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n { provide: MAT_AUTOCOMPLETE_DEFAULT_OPTIONS, useValue: { overlayPanelClass: PANEL_CLASS } },\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => WlcmAutocompleteComponent), multi: true },\n { provide: NG_VALIDATORS, useExisting: forwardRef(() => WlcmAutocompleteComponent), multi: true },\n {\n provide: WLCM_INPUT_BINDER,\n useFactory: () => {\n const autocomplete = inject(WlcmAutocompleteComponent, { self: true });\n\n return { bind: () => autocomplete };\n },\n },\n ],\n})\nexport class WlcmAutocompleteComponent\n extends WlcmAutocomplete\n implements OnInit, ControlValueAccessor, Validator, AfterViewInit, WlcmFormFieldInput\n{\n @Input() pullDataMethod!: (params: QueryParams) => Observable<PaginatedData<Option>>;\n\n @Input() label!: string;\n\n @Input() required: boolean = false;\n\n @Input() placeholder: string = '';\n\n selectOptionFormat: InputSignal<WlcmSelectOptionFormat> = input<WlcmSelectOptionFormat>('ValueOnly');\n\n noResultsTemplate: InputSignal<TemplateRef<{ $implicit: WlcmAutocompleteValue }> | undefined> = input();\n\n selected: OutputEmitterRef<WlcmAutocompleteValue> = output();\n\n readonly control: FormControl<WlcmAutocompleteValue> = new FormControl('');\n\n private readonly _loadMore$: Subject<void> = new Subject();\n\n private readonly _options$: BehaviorSubject<Option[]> = new BehaviorSubject<Option[]>([]);\n\n protected readonly options$: Observable<Option[]> = this._options$.asObservable();\n\n protected readonly closed$: Subject<void> = new Subject();\n\n private readonly _focusStream$: BehaviorSubject<Observable<void>> = new BehaviorSubject(EMPTY as Observable<void>);\n\n private readonly _blurStream$: BehaviorSubject<Observable<void>> = new BehaviorSubject(EMPTY as Observable<void>);\n\n private readonly _loading$: BehaviorSubject<boolean> = new BehaviorSubject(false);\n\n focus$: Observable<unknown> = this._focusStream$.pipe(switchMap((stream: Observable<unknown>) => stream));\n\n blur$: Observable<unknown> = this._blurStream$.pipe(switchMap((stream: Observable<unknown>) => stream));\n\n loading$: Observable<boolean> = this._loading$.asObservable();\n\n private queryParams: QueryParams = { ...DEFAULT_QUERY_PARAMS, limit: 15 };\n\n private _changed?: (value: WlcmAutocompleteOption | string) => void;\n\n private _touched?: () => void;\n\n private _onValidatorChange?: () => void;\n\n private _paginatedData: PaginatedData<Option> | null = null;\n\n @ViewChild(WLCM_INPUT, { read: ElementRef }) public inputElement!: ElementRef<HTMLInputElement>;\n\n @ViewChild(MatAutocompleteTrigger) private autocompleteTrigger!: MatAutocompleteTrigger;\n\n @ViewChild(MatAutocomplete) private autocomplete!: MatAutocomplete;\n\n constructor(@Inject(WLCM_FORM_FIELD) private formField: WlcmFormField) {\n super();\n\n this.handleLoadMoreEvent();\n\n this.handleControlValueChanges();\n }\n\n ngOnInit(): void {\n this.loadOptions(this.queryParams).subscribe();\n }\n\n ngAfterViewInit(): void {\n const container: ElementRef = this.formField.inputContainer;\n\n const origin: MatAutocompleteOrigin = new MatAutocompleteOrigin(container);\n\n this.autocompleteTrigger.connectedTo = origin;\n\n this.attachFocusBlurListeners();\n }\n\n displayWith(value: Option | string): string {\n if (value instanceof Object) {\n return value.viewValue;\n }\n\n return value;\n }\n\n focus(): void {\n this.inputElement.nativeElement.focus();\n }\n\n isFocused(): boolean {\n return this.inputElement?.nativeElement === document.activeElement || this.autocomplete?.isOpen;\n }\n\n loadMore(): void {\n this._loadMore$.next();\n }\n\n writeValue(value: WlcmAutocompleteValue): void {\n this.control.setValue(value);\n }\n\n registerOnChange(callback: (value: WlcmAutocompleteOption | string) => void): void {\n this._changed = callback;\n }\n\n registerOnTouched(callback: () => void): void {\n this._touched = callback;\n }\n\n setDisabledState(isDisabled: boolean): void {\n if (isDisabled) {\n return this.control.disable();\n }\n\n this.control.enable();\n }\n\n blured(): void {\n if (!this.autocomplete.isOpen) this._touched?.();\n\n this.autocomplete.closed.pipe(take(1)).subscribe(() => this._touched?.());\n }\n\n validate(control: AbstractControl): ValidationErrors | null {\n if (!!this.control.value) {\n if (this.control.value instanceof Object) return null;\n\n return { ...control.errors, unselected: true, required: false };\n }\n\n return null;\n }\n\n registerOnValidatorChange(fn: () => void): void {\n this._onValidatorChange = fn;\n }\n\n private loadOptions(params: QueryParams): Observable<PaginatedData<Option>> {\n this._loading$.next(true);\n\n return this.pullDataMethod({ ...params, page: 1 }).pipe(\n tap((paginatedData: PaginatedData<Option>) => {\n this._paginatedData = paginatedData;\n\n this._options$.next(paginatedData.data);\n\n this._loading$.next(false);\n }),\n );\n }\n\n private handleLoadMoreEvent(): void {\n this._loadMore$\n .pipe(\n concatMap(() => {\n if (this._paginatedData && this._paginatedData.currPage + 1 <= this._paginatedData.totalPages) {\n this.queryParams.page++;\n\n this._loading$.next(true);\n\n return this.pullDataMethod(this.queryParams).pipe(\n tap((paginatedData: PaginatedData<Option>) => {\n this._paginatedData = paginatedData;\n\n this._options$.next([...this._options$.value, ...paginatedData.data]);\n\n this._loading$.next(false);\n }),\n );\n }\n\n return EMPTY;\n }),\n )\n .subscribe();\n }\n\n private handleControlValueChanges(): void {\n this.control.valueChanges\n .pipe(untilDestroyed(this))\n .pipe(\n filter((value: WlcmAutocompleteValue) => {\n let _value: WlcmAutocompleteValue = value ?? '';\n\n if (value instanceof Object && this.selectOptionFormat() === 'ValueOnly') _value = value.value;\n\n this._changed?.(_value);\n\n this.selected.emit(_value);\n\n return !(value instanceof Object);\n }),\n )\n .pipe(\n switchMap((value: WlcmAutocompleteValue) =>\n timer(200).pipe(switchMap(() => this.loadOptions({ ...this.queryParams, query: value as string }))),\n ),\n )\n .subscribe();\n }\n\n private attachFocusBlurListeners(): void {\n const voidFn = () => {};\n\n const inputFocus: Observable<Event> = fromEvent(this.inputElement.nativeElement, 'focus');\n\n const inputBlur: Observable<Event> = fromEvent(this.inputElement.nativeElement, 'blur');\n\n const focusObservables: Observable<unknown>[] = [inputFocus, this.autocomplete.opened];\n\n const blurObservables: Observable<unknown>[] = [inputBlur, this.autocomplete.closed];\n\n this._focusStream$.next(merge(...focusObservables).pipe(map(voidFn)));\n\n this._blurStream$.next(merge(...blurObservables).pipe(map(() => this.control?.markAsTouched())));\n }\n}\n","<input\n wlcmInput\n type=\"text\"\n [matAutocomplete]=\"autocomplete\"\n [placeholder]=\"placeholder\"\n [formControl]=\"control\"\n (blur)=\"blured()\"\n/>\n\n<mat-autocomplete\n #autocomplete=\"matAutocomplete\"\n wlcmAutocomplete\n [disableRipple]=\"true\"\n [displayWith]=\"displayWith\"\n [hideSingleSelectionIndicator]=\"true\"\n (panelScrolled)=\"loadMore()\"\n>\n <ng-container *rxLet=\"$any(options$ | async); let options\">\n <mat-option *ngFor=\"let option of options\" [value]=\"option\">\n {{ option.viewValue }}\n </mat-option>\n\n <mat-option [disabled]=\"true\" *ngIf=\"options.length === 0\">\n @if (noResultsTemplate()) {\n <ng-container\n *ngTemplateOutlet=\"\n noResultsTemplate()!;\n context: { $implicit: control.value }\n \"\n ></ng-container>\n } @else {\n No results found\n }\n </mat-option>\n </ng-container>\n</mat-autocomplete>\n","import { ChangeDetectorRef, Component, Inject, Optional, OutputEmitterRef, forwardRef, output } from '@angular/core';\nimport { WLCM_FORM_CONTROL, WLCM_FORM_CONTROL_PROVIDER } from '../../constants';\nimport { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';\nimport {\n ControlValueAccessor,\n FormControl,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule,\n ValidationErrors,\n Validator,\n} from '@angular/forms';\nimport { MatCheckboxChange, MatCheckboxModule } from '@angular/material/checkbox';\nimport { WlcmFormControl } from '../../models/form.models';\nimport { CommonModule } from '@angular/common';\n\n@UntilDestroy()\n@Component({\n selector: 'wlcm-checkbox',\n host: { class: 'wlcm-checkbox' },\n standalone: true,\n imports: [CommonModule, MatCheckboxModule, ReactiveFormsModule],\n templateUrl: './checkbox.component.html',\n styleUrl: './checkbox.component.scss',\n providers: [\n WLCM_FORM_CONTROL_PROVIDER,\n { provide: NG_VALIDATORS, useExisting: forwardRef(() => WlcmCheckboxComponent), multi: true },\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => WlcmCheckboxComponent), multi: true },\n ],\n})\nexport class WlcmCheckboxComponent implements ControlValueAccessor, Validator {\n changed: OutputEmitterRef<boolean> = output();\n\n private _changed?: (value: boolean) => void;\n\n private _touched?: () => void;\n\n private _validatorChanged?: () => void;\n\n protected control: FormControl = new FormControl(false);\n\n constructor(\n private changeDetectorRef: ChangeDetectorRef,\n @Optional() @Inject(WLCM_FORM_CONTROL) private parentFormMember: WlcmFormControl\n ) {\n if (this.parentFormMember) {\n this.handleStateChange();\n }\n }\n\n handleChange(value: MatCheckboxChange): void {\n this.changed.emit(value.checked);\n\n this._changed?.(value.checked);\n\n this._touched?.();\n }\n\n writeValue(value: boolean): void {\n this.control.setValue(value);\n }\n\n validate = (): ValidationErrors | null => null;\n\n registerOnChange(callback: (value: boolean) => void): void {\n this._changed = callback;\n }\n\n registerOnTouched(callback: () => void): void {\n this._touched = callback;\n }\n\n registerOnValidatorChange(callback: () => void): void {\n this._validatorChanged = callback;\n }\n\n setDisabledState(isDisabled: boolean): void {\n if (isDisabled) {\n return this.control.disable();\n }\n\n this.control.enable();\n }\n\n private handleStateChange(): void {\n this.parentFormMember.stateChanges$.pipe(untilDestroyed(this)).subscribe(() => {\n this._validatorChanged?.();\n\n this.changeDetectorRef.markForCheck();\n });\n }\n}\n","<mat-checkbox [formControl]=\"control\" (change)=\"handleChange($event)\">\n <ng-content></ng-content>\n</mat-checkbox>\n","import { CommonModule } from '@angular/common';\nimport { Component, InputSignal, input } from '@angular/core';\nimport { WlcmIconDirective, WlcmIconName, WlcmLoaderComponent } from '@wlcm/angular/core';\nimport { WlcmAutocomplete } from '../../../models/autocomplete.models';\nimport { RxLet } from '@rx-angular/template/let';\n\n@Component({\n selector: 'wlcm-autocomplete-suffix',\n host: { class: 'wlcm-autocomplete-suffix' },\n standalone: true,\n imports: [CommonModule, WlcmIconDirective, WlcmLoaderComponent, RxLet],\n templateUrl: './autocomplete-suffix.component.html',\n styleUrl: './autocomplete-suffix.component.scss',\n})\nexport class WlcmAutocompleteSuffixComponent {\n autocomplete: InputSignal<WlcmAutocomplete> = input.required();\n\n readonly WlcmIconName = WlcmIconName;\n}\n","<ng-container *rxLet=\"autocomplete().loading$ | async; let loading\">\n @if (!loading) {\n <ng-container [wlcmIcon]=\"WlcmIconName.CHEVRON_DOWN\"></ng-container>\n }\n\n <wlcm-loader [hidden]=\"!loading\"></wlcm-loader>\n</ng-container>\n","import { Directive, inject } from '@angular/core';\nimport { WLCM_INPUT_BINDER } from '../constants';\nimport { WlcmSelectComponent } from '../components';\n\n@Directive({\n standalone: true,\n selector: '[wlcmSelectInputBinder]',\n providers: [\n {\n provide: WLCM_INPUT_BINDER,\n useFactory: () => {\n const select: WlcmSelectComponent = inject(WlcmSelectComponent, { self: true });\n\n return { bind: () => select };\n },\n },\n ],\n})\nexport class WlcmSelectInputBinderDirective {}\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n HostListener,\n Inject,\n Input,\n InputSignal,\n Optional,\n OutputEmitterRef,\n Signal,\n TemplateRef,\n ViewChild,\n effect,\n forwardRef,\n inject,\n input,\n output,\n viewChildren,\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n FormControl,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule,\n ValidationErrors,\n Validator,\n} from '@angular/forms';\nimport { MAT_SELECT_CONFIG, MatOption, MatSelect, MatSelectChange, MatSelectModule } from '@angular/material/select';\nimport { WlcmIconDirective, WlcmIconName, WlcmOption, WlcmSelectOptionFormat } from '@wlcm/angular/core';\nimport { WLCM_FORM_CONTROL, WLCM_FORM_CONTROL_PROVIDER, WLCM_FORM_FIELD } from '../../constants';\nimport { WlcmSelectInputBinderDirective } from '../../directives/select-input-binder.directive';\nimport { WlcmFormControl, WlcmFormField, WlcmFormFieldInput } from '../../models/_index';\nimport { BehaviorSubject, EMPTY, Observable, first, fromEvent, switchMap } from 'rxjs';\nimport { IsOptionDisabledFn, WlcmSelectConfig } from '../../models/select.models';\nimport { WLCM_SELECT_CONFIG } from '../../constants/select.constants';\nimport { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';\nimport { CdkOverlayOrigin } from '@angular/cdk/overlay';\nimport { mergeWith } from 'lodash';\n\ntype SelectValue = string[] | string;\n\ntype OptionTemplateContext = TemplateRef<{ $implicit: WlcmOption }>;\n\nconst PANEL_CLASS: string = 'wlcm-select-panel';\n\nconst DEFAULT_CONFIG: WlcmSelectConfig = { overlayPanelClass: [PANEL_CLASS] };\n\nconst mergeConfig = (config: WlcmSelectConfig): WlcmSelectConfig => {\n const customizer = (_default: WlcmSelectConfig, _new: WlcmSelectConfig): Array<unknown> | void => {\n if (Array.isArray(_default)) return _default.concat(_new);\n };\n\n return mergeWith({ ...DEFAULT_CONFIG }, config, customizer);\n};\n\n@UntilDestroy()\n@Component({\n selector: 'wlcm-select',\n standalone: true,\n imports: [CommonModule, MatSelectModule, ReactiveFormsModule, WlcmIconDirective, WlcmSelectInputBinderDirective],\n templateUrl: './select.component.html',\n styleUrls: ['./select.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [WlcmSelectInputBinderDirective],\n providers: [\n WLCM_FORM_CONTROL_PROVIDER,\n {\n provide: MAT_SELECT_CONFIG,\n useFactory: () => {\n const wlcmConfig: WlcmSelectConfig = inject(WLCM_SELECT_CONFIG, { optional: true }) ?? {};\n\n return mergeConfig(wlcmConfig);\n },\n },\n { provide: NG_VALIDATORS, useExisting: forwardRef(() => WlcmSelectComponent), multi: true },\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => WlcmSelectComponent), multi: true },\n ],\n})\nexport class WlcmSelectComponent implements WlcmFormFieldInput, ControlValueAccessor, Validator {\n @Input() multiple: boolean = false;\n\n @Input() placeholder: string = 'Not selected';\n\n options: InputSignal<WlcmOption[]> = input.required();\n\n selectOptionFormat: InputSignal<WlcmSelectOptionFormat> = input<WlcmSelectOptionFormat>('ValueOnly');\n\n optionTemplate: InputSignal<TemplateRef<OptionTemplateContext> | null> =\n input<TemplateRef<OptionTemplateContext> | null>(null);\n\n triggerTemplate: InputSignal<TemplateRef<MatOption<any> | MatOption<any>[]> | null> = input<TemplateRef<\n MatOption<WlcmOption> | MatOption<WlcmOption>[]\n > | null>(null);\n\n isOptionDisabled: InputSignal<IsOptionDisabledFn> = input<IsOptionDisabledFn>(() => false);\n\n selectionChange: OutputEmitterRef<MatSelectChange> = output();\n\n opened: OutputEmitterRef<void> = output();\n\n closed: OutputEmitterRef<void> = output();\n\n readonly control: FormControl = new FormControl();\n\n readonly WlcmIconName = WlcmIconName;\n\n private _changed?: (value: WlcmOption) => void;\n\n private _touched?: () => void;\n\n private _validatorChanged?: () => void;\n\n @ViewChild(MatSelect) matSelect!: MatSelect;\n\n @HostListener('click') openPanel(): void {\n this.matSelect.open();\n }\n\n protected matOptions: Signal<ReadonlyArray<MatOption>> = viewChildren(MatOption);\n\n private readonly _focusStream$: BehaviorSubject<Observable<void>> = new BehaviorSubject(EMPTY as Observable<void>);\n\n private readonly _blurStream$: BehaviorSubject<Observable<void>> = new BehaviorSubject(EMPTY as Observable<void>);\n\n focus$: Observable<unknown> = this._focusStream$.pipe(switchMap((stream: Observable<unknown>) => stream));\n\n blur$: Observable<unknown> = this._blurStream$.pipe(switchMap((stream: Observable<unknown>) => stream));\n\n constructor(\n private changeDetectorRef: ChangeDetectorRef,\n @Inject(WLCM_FORM_FIELD) private formField: WlcmFormField,\n @Optional() @Inject(WLCM_FORM_CONTROL) private parentFormMember: WlcmFormControl,\n ) {\n if (this.parentFormMember) {\n this.handleStateChange();\n }\n\n effect(() => {\n if (this.isOptionDisabled() && this.options().length > 0) {\n this.updateOptionsStatus();\n }\n });\n }\n\n ngAfterViewInit(): void {\n const formField: ElementRef<HTMLElement> = this.formField.inputContainer;\n\n if (formField) {\n this.matSelect._preferredOverlayOrigin = new CdkOverlayOrigin(this.formField.inputContainer);\n }\n\n this._focusStream$.next(this.matSelect._openedStream);\n\n this._blurStream$.next(this.matSelect._closedStream);\n }\n\n focus = (): void => this.matSelect.open();\n\n isFocused = (): boolean => this.isOpen;\n\n select(event: MatSelectChange): void {\n this._changed?.(event.value);\n\n this._validatorChanged?.();\n\n this.selectionChange.emit(event);\n }\n\n protected panelOpened(): void {\n this.opened.emit();\n\n this.handleClickOutside();\n }\n\n updateOptionsStatus(): void {\n this.matOptions().forEach((matOption: MatOption) => {\n matOption.disabled = this.isOptionDisabled()(matOption.value);\n });\n }\n\n writeValue(value: SelectValue): void {\n this.control.setValue(value);\n }\n\n registerOnChange(callback: (value: WlcmOption) => void): void {\n this._changed = callback;\n }\n\n registerOnTouched(callback: () => void): void {\n this._touched = callback;\n }\n\n registerOnValidatorChange(callback: () => void): void {\n this._validatorChanged = callback;\n }\n\n validate(): ValidationErrors | null {\n return null;\n }\n\n get isOpen(): boolean {\n return this.matSelect?.panelOpen ?? false;\n }\n\n private handleStateChange(): void {\n this.parentFormMember.stateChanges$.pipe(untilDestroyed(this)).subscribe(() => {\n this._validatorChanged?.();\n\n this.changeDetectorRef.markForCheck();\n });\n }\n\n private handleClickOutside(): void {\n const overlayContainer: HTMLElement | null = document.querySelector(`.cdk-overlay-container:has(.${PANEL_CLASS})`);\n\n const backdrop: HTMLElement | null | undefined = overlayContainer?.querySelector(`.cdk-overlay-backdrop`);\n\n if (backdrop instanceof HTMLElement) {\n fromEvent(backdrop, 'click')\n .pipe(first())\n .subscribe(() => {\n this._touched?.();\n\n this._validatorChanged?.();\n\n this.changeDetectorRef.markForCheck();\n });\n }\n }\n}\n","<mat-select\n #selectComponent\n [multiple]=\"multiple\"\n [disableRipple]=\"true\"\n [formControl]=\"control\"\n [placeholder]=\"placeholder\"\n [hideSingleSelectionIndicator]=\"true\"\n [ngClass]=\"{ focused: selectComponent.focused }\"\n (selectionChange)=\"select($event)\"\n (opened)=\"panelOpened()\"\n (closed)=\"closed.emit()\"\n>\n @if (triggerTemplate()) {\n <mat-select-trigger>\n <ng-container\n *ngTemplateOutlet=\"\n triggerTemplate();\n context: $any({ $implicit: selectComponent.selected })\n \"\n ></ng-container>\n </mat-select-trigger>\n }\n\n <mat-option\n *ngFor=\"let option of options()\"\n [value]=\"selectOptionFormat() === 'CompleteOption' ? option : option.value\"\n >\n @if (optionTemplate()) {\n <ng-container\n *ngTemplateOutlet=\"\n optionTemplate();\n context: $any({ $implicit: option })\n \"\n ></ng-container>\n } @else {\n {{ option.viewValue }}\n }\n </mat-option>\n</mat-select>\n\n<div class=\"wlcm-select-arrow\">\n <ng-container\n [wlcmIcon]=\"WlcmIconName.CHEVRON_DOWN\"\n [wlcmIconStopPropagation]=\"false\"\n ></ng-container>\n</div>\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[wlcmFormFieldHint]',\n host: { class: 'wlcm-hint' },\n standalone: true,\n})\nexport class WlcmFormFieldHintDirective {}\n","import { NgModule, Type } from '@angular/core';\nimport { WlcmFormFieldComponent } from './components/form-field/form-field.component';\nimport { WlcmInputDirective } from './directives/input.directive';\nimport { WlcmLabelComponent } from './components/label/label.component';\nimport { WlcmSelectComponent } from './components/select/select.component';\nimport { WlcmFormFieldCustomContainerDirective } from './directives/form-field-custom-container.directive';\nimport { WlcmAutocompleteComponent } from './components/autocomplete/autocomplete.component';\nimport { WlcmFormFieldSuffixDirective } from './directives/form-field-suffix.directive';\nimport { WlcmFormFieldHintDirective } from './directives/form-field-hint.directive';\nimport { WlcmFormFieldPrefixDirective } from './directives/form-field-prefix.directive';\nimport { MAT_RADIO_DEFAULT_OPTIONS, MatRadioModule } from '@angular/material/radio';\nimport { WlcmAutocompleteSuffixComponent } from './components/partials';\nimport { WlcmCheckboxComponent } from './components';\n\nconst directives: Type<unknown>[] = [\n WlcmInputDirective,\n WlcmFormFieldCustomContainerDirective,\n WlcmFormFieldSuffixDirective,\n WlcmFormFieldPrefixDirective,\n WlcmFormFieldHintDirective,\n];\n\nconst components: Type<unknown>[] = [\n WlcmFormFieldComponent,\n WlcmAutocompleteComponent,\n WlcmAutocompleteSuffixComponent,\n WlcmCheckboxComponent,\n WlcmSelectComponent,\n WlcmLabelComponent,\n];\n\n@NgModule({\n imports: [...components, ...directives, MatRadioModule],\n exports: [...components, ...directives, MatRadioModule],\n providers: [{ provide: MAT_RADIO_DEFAULT_OPTIONS, useValue: { color: 'primary' } }],\n})\nexport class WlcmFormsModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","PANEL_CLASS","i2","i1.WlcmSelectInputBinderDirective","i3","i4","i5"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"wlcm-angular-forms.mjs","sources":["../../../../modules/forms/src/lib/forms/components/error/error.component.ts","../../../../modules/forms/src/lib/forms/components/error/error.component.html","../../../../modules/forms/src/lib/forms/services/form-state-handler.service.ts","../../../../modules/forms/src/lib/forms/constants/form-errors.constants.ts","../../../../modules/forms/src/lib/forms/constants/form-elements.constants.ts","../../../../modules/forms/src/lib/forms/constants/select.constants.ts","../../../../modules/forms/src/lib/forms/constants/index.ts","../../../../modules/forms/src/lib/forms/services/places.api.ts","../../../../modules/forms/src/lib/forms/constants/form-state-handlers.constants.ts","../../../../modules/forms/src/lib/forms/directives/form-field-custom-container.directive.ts","../../../../modules/forms/src/lib/forms/pipes/errors-mapper.pipe.ts","../../../../modules/forms/src/lib/forms/directives/form-field-prefix.directive.ts","../../../../modules/forms/src/lib/forms/directives/form-field-suffix.directive.ts","../../../../modules/forms/src/lib/forms/components/form-field/form-field.component.ts","../../../../modules/forms/src/lib/forms/components/form-field/form-field.component.html","../../../../modules/forms/src/lib/forms/constants/form-field.constants.ts","../../../../modules/forms/src/lib/forms/directives/input.directive.ts","../../../../modules/forms/src/lib/forms/components/label/label.component.ts","../../../../modules/forms/src/lib/forms/components/label/label.component.html","../../../../modules/forms/src/lib/forms/directives/autocomplete.directive.ts","../../../../modules/forms/src/lib/forms/models/autocomplete.models.ts","../../../../modules/forms/src/lib/forms/components/autocomplete/autocomplete.component.ts","../../../../modules/forms/src/lib/forms/components/autocomplete/autocomplete.component.html","../../../../modules/forms/src/lib/forms/components/checkbox/checkbox.component.ts","../../../../modules/forms/src/lib/forms/components/checkbox/checkbox.component.html","../../../../modules/forms/src/lib/forms/components/partials/autocomplete-suffix/autocomplete-suffix.component.ts","../../../../modules/forms/src/lib/forms/components/partials/autocomplete-suffix/autocomplete-suffix.component.html","../../../../modules/forms/src/lib/forms/directives/select-input-binder.directive.ts","../../../../modules/forms/src/lib/forms/components/select/select.component.ts","../../../../modules/forms/src/lib/forms/components/select/select.component.html","../../../../modules/forms/src/lib/forms/directives/form-field-hint.directive.ts","../../../../modules/forms/src/lib/forms/forms.module.ts","../../../../modules/forms/src/wlcm-angular-forms.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'wlcm-error',\n standalone: true,\n imports: [CommonModule],\n host: { class: 'wlcm-error' },\n templateUrl: './error.component.html',\n styleUrls: ['./error.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class WlcmErrorComponent {}\n","<ng-content></ng-content>\n","import { Injectable } from '@angular/core';\nimport { WlcmForm, WlcmFormControl } from '../models/form.models';\nimport { Observable, Subject } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class FormStateHandlerService implements WlcmForm, WlcmFormControl {\n private readonly _stateChanges$: Subject<void> = new Subject();\n\n readonly stateChanges$: Observable<void> = this._stateChanges$.asObservable();\n\n updateFormState(): void {\n this._stateChanges$.next();\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { WlcmFormErrors } from '../models/form-errors.models';\n\nexport const WLCM_ERRORS: InjectionToken<WlcmFormErrors> = new InjectionToken('WLCM_ERRORS');\n\nexport const WLCM_PRIORITY_ERRORS: InjectionToken<Set<string>> = new InjectionToken('WLCM_PRIORITY_ERRORS', {\n providedIn: 'root',\n factory: () => new Set(),\n});\n","import { InjectionToken } from '@angular/core';\nimport { WlcmInputBinder, WlcmInputGetter } from '../models/input.models';\nimport { WlcmFormField } from '../models/form.models';\n\nexport const WLCM_INPUT: InjectionToken<WlcmInputGetter> = new InjectionToken('WLCM_INPUT');\n\nexport const WLCM_INPUT_BINDER: InjectionToken<WlcmInputBinder> = new InjectionToken('WLCM_INPUT_BINDER');\n\nexport const WLCM_FORM_FIELD: InjectionToken<WlcmFormField> = new InjectionToken('WLCM_FORM_FIELD');\n","import { InjectionToken } from '@angular/core';\nimport { WlcmSelectConfig } from '../models/select.models';\n\nexport const WLCM_SELECT_CONFIG: InjectionToken<WlcmSelectConfig> = new InjectionToken('WLCM_SELECT_CONFIG');\n","export * from './form-errors.constants';\nexport * from './form-elements.constants';\nexport * from './form-state-handlers.constants';\nexport * from './select.constants';\n\nexport const WLCM_MAPS_API_ERROR: string = `Google Maps JavaScript API not loaded. Please ensure the following script is included in your HTML: <script src=\"https://maps.googleapis.com/maps/api/js?key=[apiKey]&libraries=places\"></script>`;\n","import { Injectable } from '@angular/core';\nimport { PaginatedData, WlcmAutocompleteOption } from '@wlcm/angular/core';\nimport { WLCM_MAPS_API_ERROR } from '../constants';\nimport { Observable, Subscriber } from 'rxjs';\n\nconst DEFAULT_PAGINATED_DATA: PaginatedData<WlcmAutocompleteOption> = {\n totalPages: 1,\n totalItems: 1,\n currPage: 1,\n data: [],\n};\n\n@Injectable()\nclass WlcmDefaultPlacesApi implements WlcmPlacesApi {\n private _autocompleteService = new google.maps.places.AutocompleteService();\n\n private _placesService = new google.maps.places.PlacesService(document.createElement('div'));\n\n constructor() {\n if (typeof google === 'undefined') {\n throw new Error(WLCM_MAPS_API_ERROR);\n }\n }\n\n getPlacesPaginated(query: string): Observable<PaginatedData<WlcmAutocompleteOption>> {\n return new Observable((subscriber: Subscriber<PaginatedData<WlcmAutocompleteOption>>) => {\n if (query.length === 0) {\n subscriber.next({ ...DEFAULT_PAGINATED_DATA });\n\n return subscriber.complete();\n }\n\n const request: google.maps.places.AutocompletionRequest = { input: query };\n\n this._autocompleteService.getPlacePredictions(request, (predictions, status) => {\n const result: PaginatedData<WlcmAutocompleteOption> = { ...DEFAULT_PAGINATED_DATA };\n\n if (status === google.maps.places.PlacesServiceStatus.OK) {\n result.data = predictions!.map((prediction: google.maps.places.AutocompletePrediction) => {\n return new WlcmAutocompleteOption(\n prediction.place_id,\n prediction.description,\n prediction.description,\n prediction,\n );\n });\n }\n\n subscriber.next(result);\n\n subscriber.complete();\n });\n });\n }\n\n get placesService(): google.maps.places.PlacesService {\n return this._placesService;\n }\n\n get autocompleteService(): google.maps.places.AutocompleteService {\n return this._autocompleteService;\n }\n}\n\n@Injectable({\n providedIn: 'root',\n useClass: WlcmDefaultPlacesApi,\n})\nexport abstract class WlcmPlacesApi {\n abstract getPlacesPaginated(query: string): Observable<PaginatedData<WlcmAutocompleteOption>>;\n\n abstract get placesService(): google.maps.places.PlacesService;\n\n abstract get autocompleteService(): google.maps.places.AutocompleteService;\n}\n","import { InjectionToken, Provider, inject } from '@angular/core';\nimport { WlcmForm, WlcmFormControl } from '../models/form.models';\nimport { FormStateHandlerService } from '../services';\n\nexport const WLCM_FORM: InjectionToken<WlcmForm> = new InjectionToken(\n 'WLCM_FORM'\n);\n\nexport const WLCM_FORM_PROVIDER: Provider = {\n provide: WLCM_FORM,\n useClass: FormStateHandlerService,\n};\n\nexport const WLCM_FORM_CONTROL: InjectionToken<WlcmFormControl> =\n new InjectionToken('WLCM_FORM_CONTROL');\n\nexport const WLCM_FORM_CONTROL_PROVIDER: Provider = {\n provide: WLCM_FORM_CONTROL,\n useFactory: () => inject(WLCM_FORM, { optional: true, skipSelf: true }),\n};\n","import { Directive, ElementRef } from '@angular/core';\n\n@Directive({\n selector: '[wlcmFormFieldCustomContainer]',\n standalone: true,\n})\nexport class WlcmFormFieldCustomContainerDirective {\n constructor(public elementRef: ElementRef<HTMLElement>) {}\n}\n","import { ChangeDetectorRef, Inject, Pipe, PipeTransform } from '@angular/core';\nimport { FormControl, ValidationErrors } from '@angular/forms';\nimport { WlcmFormErrorFn, WlcmFormErrors } from '../models/form-errors.models';\nimport {\n WLCM_ERRORS,\n WLCM_PRIORITY_ERRORS,\n} from '../constants/form-errors.constants';\nimport { Subject, takeUntil } from 'rxjs';\n\n@Pipe({\n name: 'errorsMapper',\n standalone: true,\n pure: false,\n})\nexport class ErrorsMapperPipe implements PipeTransform {\n private destroy$: Subject<void> = new Subject();\n\n currentError: string | null = null;\n\n constructor(\n private changeDetectorRef: ChangeDetectorRef,\n @Inject(WLCM_ERRORS) private errors: WlcmFormErrors,\n @Inject(WLCM_PRIORITY_ERRORS) private priorityErrors: Set<string>\n ) {}\n\n transform(control: FormControl): string | null {\n this.handleStatusChanges(control);\n\n this.retrieveFirstError(control.errors);\n\n return this.currentError;\n }\n\n private retrieveFirstError(errors: ValidationErrors | null): void {\n if (!errors) return;\n\n Object.keys(errors).forEach(\n (key: string) => !errors[key] && delete errors[key]\n );\n\n const errorsTypes: string[] = Object.getOwnPropertyNames(errors);\n\n const priorityType: string | undefined = errorsTypes.find((type: string) =>\n this.priorityErrors.has(type)\n );\n\n const outputError: string = priorityType || errorsTypes[0];\n\n if (outputError) {\n this.currentError = (this.errors[outputError] as WlcmFormErrorFn)?.(\n errors[outputError]\n );\n }\n }\n\n private handleStatusChanges(control: FormControl): void {\n this.destroy$.next();\n\n control.statusChanges.pipe(takeUntil(this.destroy$)).subscribe(() => {\n this.retrieveFirstError(control.errors);\n\n this.changeDetectorRef.markForCheck();\n });\n }\n}\n","import { Directive, HostListener } from '@angular/core';\n\n@Directive({\n selector: '[wlcmFormFieldPrefix]',\n standalone: true,\n})\nexport class WlcmFormFieldPrefixDirective {\n @HostListener('click', ['$event']) handlerClick = (event: MouseEvent) => {\n event.stopPropagation();\n };\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[wlcmFormFieldSuffix]',\n standalone: true,\n})\nexport class WlcmFormFieldSuffixDirective {}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n HostBinding,\n Inject,\n Input,\n Optional,\n ViewChild,\n forwardRef,\n} from '@angular/core';\nimport { Validators, AbstractControl, ControlContainer, NgControl } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { WlcmErrorComponent } from '../error/error.component';\nimport { WLCM_FORM_CONTROL, WLCM_FORM_CONTROL_PROVIDER } from '../../constants/form-state-handlers.constants';\nimport { WlcmFormFieldCustomContainerDirective } from '../../directives/form-field-custom-container.directive';\nimport { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';\nimport { ErrorsMapperPipe } from '../../pipes/errors-mapper.pipe';\nimport { WLCM_FORM_FIELD, WLCM_INPUT } from '../../constants/form-elements.constants';\nimport { WlcmFormFieldPrefixDirective } from '../../directives/form-field-prefix.directive';\nimport { WlcmFormFieldInput, WlcmInputGetter } from '../../models/input.models';\nimport { WlcmFormControl } from '../../models/form.models';\nimport { Observable, merge } from 'rxjs';\nimport { WlcmFormFieldSuffixDirective } from '../../directives/form-field-suffix.directive';\n\n@UntilDestroy()\n@Component({\n selector: 'wlcm-form-field',\n standalone: true,\n imports: [CommonModule, WlcmErrorComponent, ErrorsMapperPipe],\n host: { class: 'wlcm-form-field' },\n templateUrl: './form-field.component.html',\n styleUrls: ['./form-field.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n WLCM_FORM_CONTROL_PROVIDER,\n { provide: WLCM_FORM_FIELD, useExisting: forwardRef(() => WlcmFormFieldComponent) },\n ],\n})\nexport class WlcmFormFieldComponent implements AfterViewInit {\n @Input() displayErrorMessages: boolean = true;\n\n @ContentChild(NgControl, { descendants: true }) private ngControl?: NgControl;\n\n @ContentChild(ControlContainer, { descendants: true }) private controlContainer?: ControlContainer;\n\n @ContentChild(WLCM_INPUT) private _inputRef?: WlcmInputGetter;\n\n @ContentChild(WlcmFormFieldPrefixDirective) protected prefix?: WlcmFormFieldPrefixDirective;\n\n @ContentChild(WlcmFormFieldSuffixDirective) protected suffix?: WlcmFormFieldSuffixDirective;\n\n @ContentChild(WlcmFormFieldCustomContainerDirective)\n protected customContainer?: WlcmFormFieldCustomContainerDirective;\n\n @ViewChild('defaultContainer')\n protected defaultContainer?: ElementRef<HTMLElement>;\n\n @HostBinding('class.wlcm-field-focused') get isFocused() {\n return this.inputRef?.isFocused() ?? false;\n }\n\n @HostBinding('class.wlcm-field-required') get isRequired() {\n return this.control?.hasValidator(Validators.required);\n }\n\n @HostBinding('class.wlcm-field-invalid') get isInvalid() {\n return this.control?.invalid;\n }\n\n @HostBinding('class.wlcm-field-touched') get isTouched() {\n return this.control?.touched;\n }\n\n @HostBinding('class.wlcm-field-disabled') get isDisabled() {\n return this.control?.disabled;\n }\n\n constructor(\n @Optional()\n @Inject(WLCM_FORM_CONTROL)\n private parentFormMember: WlcmFormControl,\n private changeDetectorRef: ChangeDetectorRef,\n ) {}\n\n ngAfterViewInit(): void {\n if (!this.inputRef && !this.customContainer) {\n throw new Error('Input element should be bound to the wlcmInput directive.');\n }\n\n this.handleStateChanges();\n }\n\n focus(): void {\n if (this.isFocused || this.isDisabled) return;\n\n this.inputRef?.focus();\n }\n\n get control(): AbstractControl | null {\n return (this.controlContainer?.control || this.ngControl?.control) ?? null;\n }\n\n get inputContainer(): ElementRef<HTMLElement> {\n return this.customContainer?.elementRef || (this.defaultContainer as ElementRef<HTMLElement>);\n }\n\n private handleStateChanges(): void {\n const events: Observable<unknown>[] = this.controlEvents;\n\n if (this.parentFormMember) {\n events.push(this.parentFormMember.stateChanges$);\n }\n\n merge(...events)\n .pipe(untilDestroyed(this))\n .subscribe(() => this.changeDetectorRef.markForCheck());\n }\n\n private get inputRef(): WlcmFormFieldInput | undefined {\n return this._inputRef?.get();\n }\n\n private get controlEvents(): Observable<unknown>[] {\n const events: Observable<unknown>[] = [];\n\n if (this.inputRef) {\n events.push(this.inputRef.focus$, this.inputRef.blur$);\n }\n\n if (this.control) {\n events.push(this.control.statusChanges);\n }\n\n return events;\n }\n}\n","<ng-content select=\"wlcm-label\"></ng-content>\n\n<ng-content select=\"[wlcmFormFieldCustomContainer]\"></ng-content>\n\n<div\n class=\"wlcm-field-container\"\n (click)=\"focus()\"\n #defaultContainer\n *ngIf=\"!customContainer\"\n>\n <div class=\"wlcm-field-prefix\" [class.contains-children]=\"prefix\">\n <ng-content select=\"[wlcmFormFieldPrefix]\"></ng-content>\n </div>\n\n <ng-content select=\"[wlcmInput]\"></ng-content>\n\n <div class=\"wlcm-field-suffix\" [class.contains-children]=\"suffix\">\n <ng-content select=\"[wlcmFormFieldSuffix]\"></ng-content>\n </div>\n</div>\n\n<ng-content select=\"[wlcmFormFieldHint]\"></ng-content>\n\n<div class=\"wlcm-field-error-container\" *ngIf=\"control && displayErrorMessages\">\n <wlcm-error>{{ $any(control) | errorsMapper }}</wlcm-error>\n</div>\n","export const WLCM_FORM_FIELD_INPUT_CLASS: string = 'wlcm-form-field-input';\n","import { Directive, ElementRef, inject } from '@angular/core';\nimport { WLCM_INPUT, WLCM_INPUT_BINDER } from '../constants/form-elements.constants';\nimport { WlcmFormFieldInput, WlcmInputBinder } from '../models/input.models';\nimport { WLCM_FORM_FIELD_INPUT_CLASS } from '../constants/form-field.constants';\nimport { Observable, fromEvent } from 'rxjs';\n\n@Directive({\n selector: '[wlcmInput]',\n providers: [\n {\n provide: WLCM_INPUT,\n useFactory: () => {\n const input: WlcmInputDirective = inject(WlcmInputDirective, { self: true });\n\n const binder: WlcmInputBinder | null = inject(WLCM_INPUT_BINDER, { self: true, optional: true });\n\n return { get: () => (binder ? binder.bind() : input) };\n },\n },\n ],\n standalone: true,\n})\nexport class WlcmInputDirective implements WlcmFormFieldInput {\n constructor(private _elementRef: ElementRef<HTMLElement>) {\n const element: HTMLElement = _elementRef.nativeElement;\n\n if (element.nodeName === 'INPUT' || element.nodeName === 'TEXTAREA') {\n element.classList.add(WLCM_FORM_FIELD_INPUT_CLASS);\n }\n }\n\n focus = (): void => this._elementRef.nativeElement.focus();\n\n isFocused = (): boolean => this._elementRef.nativeElement === document.activeElement;\n\n focus$: Observable<unknown> = fromEvent(this._elementRef.nativeElement, 'focus');\n\n blur$: Observable<unknown> = fromEvent(this._elementRef.nativeElement, 'blur');\n}\n","import { ChangeDetectionStrategy, Component, HostBinding, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'wlcm-label',\n standalone: true,\n imports: [CommonModule],\n host: { class: 'wlcm-label' },\n templateUrl: './label.component.html',\n styleUrls: ['./label.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class WlcmLabelComponent {\n @Input() required: boolean = false;\n\n @HostBinding('class.required') get isRequired(): boolean {\n return this.required;\n }\n}\n","<span class=\"wlcm-label-asterisk\">*</span>\n\n<ng-content></ng-content>\n","import { Directive, EventEmitter, Host, NgZone, Optional, Output } from '@angular/core';\nimport { asyncScheduler, fromEvent, observeOn, takeUntil } from 'rxjs';\nimport { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';\nimport { MatAutocomplete } from '@angular/material/autocomplete';\n\n@UntilDestroy()\n@Directive({\n selector: '[wlcmAutocomplete]',\n standalone: true,\n})\nexport class AutocompleteDirective {\n @Output() panelScrolled: EventEmitter<void> = new EventEmitter();\n\n private _scrollWidth: number = 0;\n\n private _scrollWidthChanged: boolean = false;\n\n constructor(private zone: NgZone, @Host() @Optional() private autocomplete: MatAutocomplete) {\n this.handleOpenEvent();\n }\n\n private handleOpenEvent(): void {\n this.autocomplete.opened\n .pipe(untilDestroyed(this))\n .pipe(observeOn(asyncScheduler))\n .subscribe(() => this.zone.runOutsideAngular(() => this.handleScrolling()));\n }\n\n private handleScrolling(): void {\n const panel: HTMLElement = this.autocomplete.panel.nativeElement;\n\n this.setScrollWidth(panel.scrollWidth);\n\n fromEvent(panel, 'scroll')\n .pipe(takeUntil(this.autocomplete.closed))\n .subscribe(() => {\n if (this._scrollWidth !== panel.scrollWidth) {\n this.setScrollWidth(panel.scrollWidth);\n }\n\n if (panel.scrollWidth * 0.6 <= panel.scrollTop && this._scrollWidthChanged) {\n this.zone.run(() => this.panelScrolled.emit());\n\n this._scrollWidthChanged = false;\n }\n });\n }\n\n private setScrollWidth(width: number): void {\n this._scrollWidth = width;\n\n this._scrollWidthChanged = true;\n }\n}\n","import { Directive } from '@angular/core';\nimport { WlcmAutocompleteOption } from '@wlcm/angular/core';\nimport { Observable } from 'rxjs';\n\nexport type WlcmAutocompleteValue = WlcmAutocompleteOption | string | null;\n\n@Directive()\nexport abstract class WlcmAutocomplete {\n abstract loading$: Observable<boolean>;\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Inject,\n Input,\n InputSignal,\n OnInit,\n OutputEmitterRef,\n TemplateRef,\n ViewChild,\n forwardRef,\n inject,\n input,\n output,\n} from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n FormControl,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule,\n ValidationErrors,\n Validator,\n} from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { WlcmFormFieldComponent } from '../form-field/form-field.component';\nimport { WlcmLabelComponent } from '../label/label.component';\nimport { WlcmInputDirective } from '../../directives/input.directive';\nimport {\n MAT_AUTOCOMPLETE_DEFAULT_OPTIONS,\n MatAutocomplete,\n MatAutocompleteModule,\n MatAutocompleteOrigin,\n MatAutocompleteTrigger,\n} from '@angular/material/autocomplete';\nimport {\n BehaviorSubject,\n EMPTY,\n Observable,\n Subject,\n concatMap,\n filter,\n finalize,\n fromEvent,\n map,\n merge,\n switchMap,\n take,\n tap,\n timer,\n} from 'rxjs';\nimport { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';\nimport { AutocompleteDirective } from '../../directives/autocomplete.directive';\nimport {\n DEFAULT_QUERY_PARAMS,\n PaginatedData,\n QueryParams,\n WlcmAutocompleteOption,\n WlcmSelectOptionFormat,\n} from '@wlcm/angular/core';\nimport { WLCM_FORM_FIELD, WLCM_INPUT, WLCM_INPUT_BINDER } from '../../constants';\nimport { WlcmAutocomplete, WlcmAutocompleteValue } from '../../models/autocomplete.models';\nimport { WlcmFormFieldInput } from '../../models/input.models';\nimport { WlcmFormField } from '../../models/form.models';\nimport { RxLet } from '@rx-angular/template/let';\n\ntype Option = WlcmAutocompleteOption;\n\nconst PANEL_CLASS: string = 'wlcm-autocomplete-panel';\n\n@UntilDestroy()\n@Component({\n selector: 'wlcm-autocomplete',\n exportAs: 'wlcmAutocomplete',\n host: { class: 'wlcm-autocomplete' },\n standalone: true,\n imports: [\n CommonModule,\n MatAutocompleteModule,\n AutocompleteDirective,\n ReactiveFormsModule,\n WlcmFormFieldComponent,\n WlcmLabelComponent,\n WlcmInputDirective,\n RxLet,\n ],\n templateUrl: './autocomplete.component.html',\n styleUrls: ['./autocomplete.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n { provide: MAT_AUTOCOMPLETE_DEFAULT_OPTIONS, useValue: { overlayPanelClass: PANEL_CLASS } },\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => WlcmAutocompleteComponent), multi: true },\n { provide: NG_VALIDATORS, useExisting: forwardRef(() => WlcmAutocompleteComponent), multi: true },\n {\n provide: WLCM_INPUT_BINDER,\n useFactory: () => {\n const autocomplete = inject(WlcmAutocompleteComponent, { self: true });\n\n return { bind: () => autocomplete };\n },\n },\n ],\n})\nexport class WlcmAutocompleteComponent\n extends WlcmAutocomplete\n implements OnInit, ControlValueAccessor, Validator, AfterViewInit, WlcmFormFieldInput\n{\n @Input() pullDataMethod!: (params: QueryParams) => Observable<PaginatedData<Option>>;\n\n @Input() label!: string;\n\n @Input() required: boolean = false;\n\n @Input() placeholder: string = '';\n\n selectOptionFormat: InputSignal<WlcmSelectOptionFormat> = input<WlcmSelectOptionFormat>('ValueOnly');\n\n noResultsTemplate: InputSignal<TemplateRef<{ $implicit: WlcmAutocompleteValue }> | undefined> = input();\n\n selected: OutputEmitterRef<WlcmAutocompleteValue> = output();\n\n readonly control: FormControl<WlcmAutocompleteValue> = new FormControl('');\n\n private readonly _loadMore$: Subject<void> = new Subject();\n\n private readonly _options$: BehaviorSubject<Option[]> = new BehaviorSubject<Option[]>([]);\n\n protected readonly options$: Observable<Option[]> = this._options$.asObservable();\n\n protected readonly closed$: Subject<void> = new Subject();\n\n private readonly _focusStream$: BehaviorSubject<Observable<void>> = new BehaviorSubject(EMPTY as Observable<void>);\n\n private readonly _blurStream$: BehaviorSubject<Observable<void>> = new BehaviorSubject(EMPTY as Observable<void>);\n\n private readonly _loading$: BehaviorSubject<boolean> = new BehaviorSubject(false);\n\n focus$: Observable<unknown> = this._focusStream$.pipe(switchMap((stream: Observable<unknown>) => stream));\n\n blur$: Observable<unknown> = this._blurStream$.pipe(switchMap((stream: Observable<unknown>) => stream));\n\n loading$: Observable<boolean> = this._loading$.asObservable();\n\n private queryParams: QueryParams = { ...DEFAULT_QUERY_PARAMS, limit: 15 };\n\n private _changed?: (value: WlcmAutocompleteOption | string) => void;\n\n private _touched?: () => void;\n\n private _onValidatorChange?: () => void;\n\n private _paginatedData: PaginatedData<Option> | null = null;\n\n @ViewChild(WLCM_INPUT, { read: ElementRef }) public inputElement!: ElementRef<HTMLInputElement>;\n\n @ViewChild(MatAutocompleteTrigger) private autocompleteTrigger!: MatAutocompleteTrigger;\n\n @ViewChild(MatAutocomplete) private autocomplete!: MatAutocomplete;\n\n constructor(@Inject(WLCM_FORM_FIELD) private formField: WlcmFormField) {\n super();\n\n this.handleLoadMoreEvent();\n\n this.handleControlValueChanges();\n }\n\n ngOnInit(): void {\n this.loadOptions(this.queryParams).subscribe();\n }\n\n ngAfterViewInit(): void {\n const container: ElementRef = this.formField.inputContainer;\n\n const origin: MatAutocompleteOrigin = new MatAutocompleteOrigin(container);\n\n this.autocompleteTrigger.connectedTo = origin;\n\n this.attachFocusBlurListeners();\n }\n\n displayWith(value: Option | string): string {\n if (value instanceof Object) {\n return value.viewValue;\n }\n\n return value;\n }\n\n focus(): void {\n this.inputElement.nativeElement.focus();\n }\n\n isFocused(): boolean {\n return this.inputElement?.nativeElement === document.activeElement || this.autocomplete?.isOpen;\n }\n\n loadMore(): void {\n this._loadMore$.next();\n }\n\n writeValue(value: WlcmAutocompleteValue): void {\n this.control.setValue(value);\n }\n\n registerOnChange(callback: (value: WlcmAutocompleteOption | string) => void): void {\n this._changed = callback;\n }\n\n registerOnTouched(callback: () => void): void {\n this._touched = callback;\n }\n\n setDisabledState(isDisabled: boolean): void {\n if (isDisabled) {\n return this.control.disable();\n }\n\n this.control.enable();\n }\n\n blured(): void {\n if (!this.autocomplete.isOpen) this._touched?.();\n\n this.autocomplete.closed.pipe(take(1)).subscribe(() => this._touched?.());\n }\n\n validate(control: AbstractControl): ValidationErrors | null {\n if (!!this.control.value) {\n if (this.control.value instanceof Object) return null;\n\n return { ...control.errors, unselected: true, required: false };\n }\n\n return null;\n }\n\n registerOnValidatorChange(fn: () => void): void {\n this._onValidatorChange = fn;\n }\n\n private loadOptions(params: QueryParams): Observable<PaginatedData<Option>> {\n this._loading$.next(true);\n\n return this.pullDataMethod({ ...params, page: 1 }).pipe(\n tap((paginatedData: PaginatedData<Option>) => {\n this._paginatedData = paginatedData;\n\n this._options$.next(paginatedData.data);\n\n this._loading$.next(false);\n }),\n );\n }\n\n private handleLoadMoreEvent(): void {\n this._loadMore$\n .pipe(\n concatMap(() => {\n if (this._paginatedData && this._paginatedData.currPage + 1 <= this._paginatedData.totalPages) {\n this.queryParams.page++;\n\n this._loading$.next(true);\n\n return this.pullDataMethod(this.queryParams).pipe(\n tap((paginatedData: PaginatedData<Option>) => {\n this._paginatedData = paginatedData;\n\n this._options$.next([...this._options$.value, ...paginatedData.data]);\n\n this._loading$.next(false);\n }),\n );\n }\n\n return EMPTY;\n }),\n )\n .subscribe();\n }\n\n private handleControlValueChanges(): void {\n this.control.valueChanges\n .pipe(untilDestroyed(this))\n .pipe(\n filter((value: WlcmAutocompleteValue) => {\n let _value: WlcmAutocompleteValue = value ?? '';\n\n if (value instanceof Object && this.selectOptionFormat() === 'ValueOnly') _value = value.value;\n\n this._changed?.(_value);\n\n this.selected.emit(_value);\n\n return !(value instanceof Object);\n }),\n )\n .pipe(\n switchMap((value: WlcmAutocompleteValue) =>\n timer(200).pipe(switchMap(() => this.loadOptions({ ...this.queryParams, query: value as string }))),\n ),\n )\n .subscribe();\n }\n\n private attachFocusBlurListeners(): void {\n const voidFn = () => {};\n\n const inputFocus: Observable<Event> = fromEvent(this.inputElement.nativeElement, 'focus');\n\n const inputBlur: Observable<Event> = fromEvent(this.inputElement.nativeElement, 'blur');\n\n const focusObservables: Observable<unknown>[] = [inputFocus, this.autocomplete.opened];\n\n const blurObservables: Observable<unknown>[] = [inputBlur, this.autocomplete.closed];\n\n this._focusStream$.next(merge(...focusObservables).pipe(map(voidFn)));\n\n this._blurStream$.next(merge(...blurObservables).pipe(map(() => this.control?.markAsTouched())));\n }\n}\n","<input\n wlcmInput\n type=\"text\"\n [matAutocomplete]=\"autocomplete\"\n [placeholder]=\"placeholder\"\n [formControl]=\"control\"\n (blur)=\"blured()\"\n/>\n\n<mat-autocomplete\n #autocomplete=\"matAutocomplete\"\n wlcmAutocomplete\n [disableRipple]=\"true\"\n [displayWith]=\"displayWith\"\n [hideSingleSelectionIndicator]=\"true\"\n (panelScrolled)=\"loadMore()\"\n>\n <ng-container *rxLet=\"$any(options$ | async); let options\">\n <mat-option *ngFor=\"let option of options\" [value]=\"option\">\n {{ option.viewValue }}\n </mat-option>\n\n <mat-option [disabled]=\"true\" *ngIf=\"options.length === 0\">\n @if (noResultsTemplate()) {\n <ng-container\n *ngTemplateOutlet=\"\n noResultsTemplate()!;\n context: { $implicit: control.value }\n \"\n ></ng-container>\n } @else {\n No results found\n }\n </mat-option>\n </ng-container>\n</mat-autocomplete>\n","import { ChangeDetectorRef, Component, Inject, Optional, OutputEmitterRef, forwardRef, output } from '@angular/core';\nimport { WLCM_FORM_CONTROL, WLCM_FORM_CONTROL_PROVIDER } from '../../constants';\nimport { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';\nimport {\n ControlValueAccessor,\n FormControl,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule,\n ValidationErrors,\n Validator,\n} from '@angular/forms';\nimport { MatCheckboxChange, MatCheckboxModule } from '@angular/material/checkbox';\nimport { WlcmFormControl } from '../../models/form.models';\nimport { CommonModule } from '@angular/common';\n\n@UntilDestroy()\n@Component({\n selector: 'wlcm-checkbox',\n host: { class: 'wlcm-checkbox' },\n standalone: true,\n imports: [CommonModule, MatCheckboxModule, ReactiveFormsModule],\n templateUrl: './checkbox.component.html',\n styleUrl: './checkbox.component.scss',\n providers: [\n WLCM_FORM_CONTROL_PROVIDER,\n { provide: NG_VALIDATORS, useExisting: forwardRef(() => WlcmCheckboxComponent), multi: true },\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => WlcmCheckboxComponent), multi: true },\n ],\n})\nexport class WlcmCheckboxComponent implements ControlValueAccessor, Validator {\n changed: OutputEmitterRef<boolean> = output();\n\n private _changed?: (value: boolean) => void;\n\n private _touched?: () => void;\n\n private _validatorChanged?: () => void;\n\n protected control: FormControl = new FormControl(false);\n\n constructor(\n private changeDetectorRef: ChangeDetectorRef,\n @Optional() @Inject(WLCM_FORM_CONTROL) private parentFormMember: WlcmFormControl\n ) {\n if (this.parentFormMember) {\n this.handleStateChange();\n }\n }\n\n handleChange(value: MatCheckboxChange): void {\n this.changed.emit(value.checked);\n\n this._changed?.(value.checked);\n\n this._touched?.();\n }\n\n writeValue(value: boolean): void {\n this.control.setValue(value);\n }\n\n validate = (): ValidationErrors | null => null;\n\n registerOnChange(callback: (value: boolean) => void): void {\n this._changed = callback;\n }\n\n registerOnTouched(callback: () => void): void {\n this._touched = callback;\n }\n\n registerOnValidatorChange(callback: () => void): void {\n this._validatorChanged = callback;\n }\n\n setDisabledState(isDisabled: boolean): void {\n if (isDisabled) {\n return this.control.disable();\n }\n\n this.control.enable();\n }\n\n private handleStateChange(): void {\n this.parentFormMember.stateChanges$.pipe(untilDestroyed(this)).subscribe(() => {\n this._validatorChanged?.();\n\n this.changeDetectorRef.markForCheck();\n });\n }\n}\n","<mat-checkbox [formControl]=\"control\" (change)=\"handleChange($event)\">\n <ng-content></ng-content>\n</mat-checkbox>\n","import { CommonModule } from '@angular/common';\nimport { Component, InputSignal, input } from '@angular/core';\nimport { WlcmIconDirective, WlcmIconName, WlcmLoaderComponent } from '@wlcm/angular/core';\nimport { WlcmAutocomplete } from '../../../models/autocomplete.models';\nimport { RxLet } from '@rx-angular/template/let';\n\n@Component({\n selector: 'wlcm-autocomplete-suffix',\n host: { class: 'wlcm-autocomplete-suffix' },\n standalone: true,\n imports: [CommonModule, WlcmIconDirective, WlcmLoaderComponent, RxLet],\n templateUrl: './autocomplete-suffix.component.html',\n styleUrl: './autocomplete-suffix.component.scss',\n})\nexport class WlcmAutocompleteSuffixComponent {\n autocomplete: InputSignal<WlcmAutocomplete> = input.required();\n\n readonly WlcmIconName = WlcmIconName;\n}\n","<ng-container *rxLet=\"autocomplete().loading$ | async; let loading\">\n @if (!loading) {\n <ng-container [wlcmIcon]=\"WlcmIconName.CHEVRON_DOWN\"></ng-container>\n }\n\n <wlcm-loader [hidden]=\"!loading\"></wlcm-loader>\n</ng-container>\n","import { Directive, inject } from '@angular/core';\nimport { WLCM_INPUT_BINDER } from '../constants';\nimport { WlcmSelectComponent } from '../components';\n\n@Directive({\n standalone: true,\n selector: '[wlcmSelectInputBinder]',\n providers: [\n {\n provide: WLCM_INPUT_BINDER,\n useFactory: () => {\n const select: WlcmSelectComponent = inject(WlcmSelectComponent, { self: true });\n\n return { bind: () => select };\n },\n },\n ],\n})\nexport class WlcmSelectInputBinderDirective {}\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n HostListener,\n Inject,\n Input,\n InputSignal,\n Optional,\n OutputEmitterRef,\n Signal,\n TemplateRef,\n ViewChild,\n effect,\n forwardRef,\n inject,\n input,\n output,\n viewChildren,\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n FormControl,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule,\n ValidationErrors,\n Validator,\n} from '@angular/forms';\nimport { MAT_SELECT_CONFIG, MatOption, MatSelect, MatSelectChange, MatSelectModule } from '@angular/material/select';\nimport { WlcmIconDirective, WlcmIconName, WlcmOption, WlcmSelectOptionFormat } from '@wlcm/angular/core';\nimport { WLCM_FORM_CONTROL, WLCM_FORM_CONTROL_PROVIDER, WLCM_FORM_FIELD } from '../../constants';\nimport { WlcmSelectInputBinderDirective } from '../../directives/select-input-binder.directive';\nimport { WlcmFormControl, WlcmFormField, WlcmFormFieldInput } from '../../models/_index';\nimport { BehaviorSubject, EMPTY, Observable, first, fromEvent, switchMap } from 'rxjs';\nimport { IsOptionDisabledFn, WlcmSelectConfig } from '../../models/select.models';\nimport { WLCM_SELECT_CONFIG } from '../../constants/select.constants';\nimport { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';\nimport { CdkOverlayOrigin } from '@angular/cdk/overlay';\nimport { mergeWith } from 'lodash';\n\ntype SelectValue = string[] | string;\n\ntype OptionTemplateContext = TemplateRef<{ $implicit: WlcmOption }>;\n\nconst PANEL_CLASS: string = 'wlcm-select-panel';\n\nconst DEFAULT_CONFIG: WlcmSelectConfig = { overlayPanelClass: [PANEL_CLASS] };\n\nconst mergeConfig = (config: WlcmSelectConfig): WlcmSelectConfig => {\n const customizer = (_default: WlcmSelectConfig, _new: WlcmSelectConfig): Array<unknown> | void => {\n if (Array.isArray(_default)) return _default.concat(_new);\n };\n\n return mergeWith({ ...DEFAULT_CONFIG }, config, customizer);\n};\n\n@UntilDestroy()\n@Component({\n selector: 'wlcm-select',\n standalone: true,\n imports: [CommonModule, MatSelectModule, ReactiveFormsModule, WlcmIconDirective, WlcmSelectInputBinderDirective],\n templateUrl: './select.component.html',\n styleUrls: ['./select.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [WlcmSelectInputBinderDirective],\n providers: [\n WLCM_FORM_CONTROL_PROVIDER,\n {\n provide: MAT_SELECT_CONFIG,\n useFactory: () => {\n const wlcmConfig: WlcmSelectConfig = inject(WLCM_SELECT_CONFIG, { optional: true }) ?? {};\n\n return mergeConfig(wlcmConfig);\n },\n },\n { provide: NG_VALIDATORS, useExisting: forwardRef(() => WlcmSelectComponent), multi: true },\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => WlcmSelectComponent), multi: true },\n ],\n})\nexport class WlcmSelectComponent implements WlcmFormFieldInput, ControlValueAccessor, Validator {\n @Input() multiple: boolean = false;\n\n @Input() placeholder: string = 'Not selected';\n\n options: InputSignal<WlcmOption[]> = input.required();\n\n selectOptionFormat: InputSignal<WlcmSelectOptionFormat> = input<WlcmSelectOptionFormat>('ValueOnly');\n\n optionTemplate: InputSignal<TemplateRef<OptionTemplateContext> | null> =\n input<TemplateRef<OptionTemplateContext> | null>(null);\n\n triggerTemplate: InputSignal<TemplateRef<MatOption<any> | MatOption<any>[]> | null> = input<TemplateRef<\n MatOption<WlcmOption> | MatOption<WlcmOption>[]\n > | null>(null);\n\n isOptionDisabled: InputSignal<IsOptionDisabledFn> = input<IsOptionDisabledFn>(() => false);\n\n selectionChange: OutputEmitterRef<MatSelectChange> = output();\n\n opened: OutputEmitterRef<void> = output();\n\n closed: OutputEmitterRef<void> = output();\n\n readonly control: FormControl = new FormControl();\n\n readonly WlcmIconName = WlcmIconName;\n\n private _changed?: (value: WlcmOption) => void;\n\n private _touched?: () => void;\n\n private _validatorChanged?: () => void;\n\n @ViewChild(MatSelect) matSelect!: MatSelect;\n\n @HostListener('click') openPanel(): void {\n this.matSelect.open();\n }\n\n protected matOptions: Signal<ReadonlyArray<MatOption>> = viewChildren(MatOption);\n\n private readonly _focusStream$: BehaviorSubject<Observable<void>> = new BehaviorSubject(EMPTY as Observable<void>);\n\n private readonly _blurStream$: BehaviorSubject<Observable<void>> = new BehaviorSubject(EMPTY as Observable<void>);\n\n focus$: Observable<unknown> = this._focusStream$.pipe(switchMap((stream: Observable<unknown>) => stream));\n\n blur$: Observable<unknown> = this._blurStream$.pipe(switchMap((stream: Observable<unknown>) => stream));\n\n constructor(\n private changeDetectorRef: ChangeDetectorRef,\n @Inject(WLCM_FORM_FIELD) private formField: WlcmFormField,\n @Optional() @Inject(WLCM_FORM_CONTROL) private parentFormMember: WlcmFormControl,\n ) {\n if (this.parentFormMember) {\n this.handleStateChange();\n }\n\n effect(() => {\n if (this.isOptionDisabled() && this.options().length > 0) {\n this.updateOptionsStatus();\n }\n });\n }\n\n ngAfterViewInit(): void {\n const formField: ElementRef<HTMLElement> = this.formField.inputContainer;\n\n if (formField) {\n this.matSelect._preferredOverlayOrigin = new CdkOverlayOrigin(this.formField.inputContainer);\n }\n\n this._focusStream$.next(this.matSelect._openedStream);\n\n this._blurStream$.next(this.matSelect._closedStream);\n }\n\n focus = (): void => this.matSelect.open();\n\n isFocused = (): boolean => this.isOpen;\n\n select(event: MatSelectChange): void {\n this._changed?.(event.value);\n\n this._validatorChanged?.();\n\n this.selectionChange.emit(event);\n }\n\n protected panelOpened(): void {\n this.opened.emit();\n\n this.handleClickOutside();\n }\n\n updateOptionsStatus(): void {\n this.matOptions().forEach((matOption: MatOption) => {\n matOption.disabled = this.isOptionDisabled()(matOption.value);\n });\n }\n\n writeValue(value: SelectValue): void {\n this.control.setValue(value);\n }\n\n registerOnChange(callback: (value: WlcmOption) => void): void {\n this._changed = callback;\n }\n\n registerOnTouched(callback: () => void): void {\n this._touched = callback;\n }\n\n registerOnValidatorChange(callback: () => void): void {\n this._validatorChanged = callback;\n }\n\n setDisabledState(isDisabled: boolean): void {\n if (isDisabled) {\n this.control.disable();\n } else {\n this.control.enable();\n }\n }\n\n validate(): ValidationErrors | null {\n return null;\n }\n\n get isOpen(): boolean {\n return this.matSelect?.panelOpen ?? false;\n }\n\n private handleStateChange(): void {\n this.parentFormMember.stateChanges$.pipe(untilDestroyed(this)).subscribe(() => {\n this._validatorChanged?.();\n\n this.changeDetectorRef.markForCheck();\n });\n }\n\n private handleClickOutside(): void {\n const overlayContainer: HTMLElement | null = document.querySelector(`.cdk-overlay-container:has(.${PANEL_CLASS})`);\n\n const backdrop: HTMLElement | null | undefined = overlayContainer?.querySelector(`.cdk-overlay-backdrop`);\n\n if (backdrop instanceof HTMLElement) {\n fromEvent(backdrop, 'click')\n .pipe(first())\n .subscribe(() => {\n this._touched?.();\n\n this._validatorChanged?.();\n\n this.changeDetectorRef.markForCheck();\n });\n }\n }\n}\n","<mat-select\n #selectComponent\n [multiple]=\"multiple\"\n [disableRipple]=\"true\"\n [formControl]=\"control\"\n [placeholder]=\"placeholder\"\n [hideSingleSelectionIndicator]=\"true\"\n [ngClass]=\"{ focused: selectComponent.focused }\"\n (selectionChange)=\"select($event)\"\n (opened)=\"panelOpened()\"\n (closed)=\"closed.emit()\"\n>\n @if (triggerTemplate()) {\n <mat-select-trigger>\n <ng-container\n *ngTemplateOutlet=\"\n triggerTemplate();\n context: $any({ $implicit: selectComponent.selected })\n \"\n ></ng-container>\n </mat-select-trigger>\n }\n\n <mat-option\n *ngFor=\"let option of options()\"\n [value]=\"selectOptionFormat() === 'CompleteOption' ? option : option.value\"\n >\n @if (optionTemplate()) {\n <ng-container\n *ngTemplateOutlet=\"\n optionTemplate();\n context: $any({ $implicit: option })\n \"\n ></ng-container>\n } @else {\n {{ option.viewValue }}\n }\n </mat-option>\n</mat-select>\n\n<div class=\"wlcm-select-arrow\">\n <ng-container\n [wlcmIcon]=\"WlcmIconName.CHEVRON_DOWN\"\n [wlcmIconStopPropagation]=\"false\"\n ></ng-container>\n</div>\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[wlcmFormFieldHint]',\n host: { class: 'wlcm-hint' },\n standalone: true,\n})\nexport class WlcmFormFieldHintDirective {}\n","import { NgModule, Type } from '@angular/core';\nimport { WlcmFormFieldComponent } from './components/form-field/form-field.component';\nimport { WlcmInputDirective } from './directives/input.directive';\nimport { WlcmLabelComponent } from './components/label/label.component';\nimport { WlcmSelectComponent } from './components/select/select.component';\nimport { WlcmFormFieldCustomContainerDirective } from './directives/form-field-custom-container.directive';\nimport { WlcmAutocompleteComponent } from './components/autocomplete/autocomplete.component';\nimport { WlcmFormFieldSuffixDirective } from './directives/form-field-suffix.directive';\nimport { WlcmFormFieldHintDirective } from './directives/form-field-hint.directive';\nimport { WlcmFormFieldPrefixDirective } from './directives/form-field-prefix.directive';\nimport { MAT_RADIO_DEFAULT_OPTIONS, MatRadioModule } from '@angular/material/radio';\nimport { WlcmAutocompleteSuffixComponent } from './components/partials';\nimport { WlcmCheckboxComponent } from './components';\n\nconst directives: Type<unknown>[] = [\n WlcmInputDirective,\n WlcmFormFieldCustomContainerDirective,\n WlcmFormFieldSuffixDirective,\n WlcmFormFieldPrefixDirective,\n WlcmFormFieldHintDirective,\n];\n\nconst components: Type<unknown>[] = [\n WlcmFormFieldComponent,\n WlcmAutocompleteComponent,\n WlcmAutocompleteSuffixComponent,\n WlcmCheckboxComponent,\n WlcmSelectComponent,\n WlcmLabelComponent,\n];\n\n@NgModule({\n imports: [...components, ...directives, MatRadioModule],\n exports: [...components, ...directives, MatRadioModule],\n providers: [{ provide: MAT_RADIO_DEFAULT_OPTIONS, useValue: { color: 'primary' } }],\n})\nexport class WlcmFormsModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","PANEL_CLASS","i2","i1.WlcmSelectInputBinderDirective","i3","i4","i5"],"mappings":"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"}
|
@@ -48,6 +48,7 @@ export declare class WlcmSelectComponent implements WlcmFormFieldInput, ControlV
|
|
48
48
|
registerOnChange(callback: (value: WlcmOption) => void): void;
|
49
49
|
registerOnTouched(callback: () => void): void;
|
50
50
|
registerOnValidatorChange(callback: () => void): void;
|
51
|
+
setDisabledState(isDisabled: boolean): void;
|
51
52
|
validate(): ValidationErrors | null;
|
52
53
|
get isOpen(): boolean;
|
53
54
|
private handleStateChange;
|
package/package.json
CHANGED
@@ -4,6 +4,12 @@
|
|
4
4
|
@mixin theme($theme-config) {
|
5
5
|
$theme: utils.using-theme($theme_config);
|
6
6
|
|
7
|
+
.wlcm-form-field.wlcm-field-disabled {
|
8
|
+
.wlcm-date-range-picker-input {
|
9
|
+
pointer-events: none;
|
10
|
+
}
|
11
|
+
}
|
12
|
+
|
7
13
|
.wlcm-date-range-picker-input {
|
8
14
|
width: 100%;
|
9
15
|
display: block;
|