@wlcm/angular 17.7.12 → 17.7.13
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.
@@ -54,6 +54,7 @@ let WlcmSelectComponent = class WlcmSelectComponent {
|
|
54
54
|
this.disabled = signal(false);
|
55
55
|
this.WlcmIconName = WlcmIconName;
|
56
56
|
this._paginatedData = null;
|
57
|
+
this._previousValue = null;
|
57
58
|
this.computedOptions = computed(() => {
|
58
59
|
return this.paginated() ? this.paginatedOptions() : this.options();
|
59
60
|
});
|
@@ -91,17 +92,25 @@ let WlcmSelectComponent = class WlcmSelectComponent {
|
|
91
92
|
}
|
92
93
|
select(event) {
|
93
94
|
this.selected$.next();
|
95
|
+
this.matSelect.value = event.value;
|
94
96
|
this.validateSelectedOption(event.value)
|
95
97
|
.pipe(takeUntil(this.selected$))
|
96
98
|
.subscribe((canSelect) => {
|
97
99
|
if (!canSelect)
|
98
100
|
return this.revertPreviousValue();
|
99
|
-
this.
|
101
|
+
this.updateValue(event.value);
|
100
102
|
this._changed?.(event.value);
|
101
103
|
this._validatorChanged?.();
|
102
104
|
this.selectionChange.emit(event);
|
103
105
|
});
|
104
106
|
}
|
107
|
+
revertPreviousValue() {
|
108
|
+
this.matSelect.value = this._previousValue;
|
109
|
+
}
|
110
|
+
updateValue(value) {
|
111
|
+
this.value.set(value);
|
112
|
+
this._previousValue = value;
|
113
|
+
}
|
105
114
|
validateSelectedOption(value) {
|
106
115
|
return new Observable((observer) => {
|
107
116
|
const response = this.canSelect(value);
|
@@ -112,17 +121,6 @@ let WlcmSelectComponent = class WlcmSelectComponent {
|
|
112
121
|
});
|
113
122
|
});
|
114
123
|
}
|
115
|
-
revertPreviousValue() {
|
116
|
-
this.value.update((value) => {
|
117
|
-
if (this.multiple) {
|
118
|
-
if (value instanceof Array) {
|
119
|
-
return [...value];
|
120
|
-
}
|
121
|
-
return [];
|
122
|
-
}
|
123
|
-
return value;
|
124
|
-
});
|
125
|
-
}
|
126
124
|
panelOpened() {
|
127
125
|
this.opened.emit();
|
128
126
|
this.handleScrollDown();
|
@@ -137,7 +135,7 @@ let WlcmSelectComponent = class WlcmSelectComponent {
|
|
137
135
|
});
|
138
136
|
}
|
139
137
|
writeValue(value) {
|
140
|
-
this.
|
138
|
+
this.updateValue(value);
|
141
139
|
}
|
142
140
|
registerOnChange(callback) {
|
143
141
|
this._changed = callback;
|
@@ -250,4 +248,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImpor
|
|
250
248
|
type: HostListener,
|
251
249
|
args: ['click']
|
252
250
|
}] } });
|
253
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL21vZHVsZXMvZm9ybXMvc3JjL2xpYi9mb3Jtcy9jb21wb25lbnRzL3NlbGVjdC9zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9mb3Jtcy9zcmMvbGliL2Zvcm1zL2NvbXBvbmVudHMvc2VsZWN0L3NlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFFVCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFFTCxNQUFNLEVBQ04sUUFBUSxFQUlSLFNBQVMsRUFFVCxRQUFRLEVBQ1IsTUFBTSxFQUNOLFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixNQUFNLEVBQ04sWUFBWSxHQUNiLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFFTCxhQUFhLEVBQ2IsaUJBQWlCLEVBQ2pCLG1CQUFtQixHQUdwQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFtQixlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNySCxPQUFPLEVBQ0wsb0JBQW9CLEVBR3BCLGtCQUFrQixFQUNsQixpQkFBaUIsRUFDakIsWUFBWSxHQUdiLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLDBCQUEwQixFQUFFLGVBQWUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pHLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBRWhHLE9BQU8sRUFBRSxlQUFlLEVBQUUsS0FBSyxF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UztzQkFBOUIsU0FBUzt1QkFBQyxTQUFTO2dCQUVHLFNBQVM7c0JBQS9CLFlBQVk7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSG9zdExpc3RlbmVyLFxuICBJbmplY3QsXG4gIElucHV0LFxuICBJbnB1dFNpZ25hbCxcbiAgTmdab25lLFxuICBPcHRpb25hbCxcbiAgT3V0cHV0RW1pdHRlclJlZixcbiAgU2lnbmFsLFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxuICBXcml0YWJsZVNpZ25hbCxcbiAgY29tcHV0ZWQsXG4gIGVmZmVjdCxcbiAgZm9yd2FyZFJlZixcbiAgaW5qZWN0LFxuICBpbnB1dCxcbiAgb3V0cHV0LFxuICBzaWduYWwsXG4gIHZpZXdDaGlsZHJlbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgTkdfVkFMSURBVE9SUyxcbiAgTkdfVkFMVUVfQUNDRVNTT1IsXG4gIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gIFZhbGlkYXRpb25FcnJvcnMsXG4gIFZhbGlkYXRvcixcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTUFUX1NFTEVDVF9DT05GSUcsIE1hdE9wdGlvbiwgTWF0U2VsZWN0LCBNYXRTZWxlY3RDaGFuZ2UsIE1hdFNlbGVjdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCc7XG5pbXBvcnQge1xuICBERUZBVUxUX1FVRVJZX1BBUkFNUyxcbiAgUGFnaW5hdGVkRGF0YSxcbiAgUXVlcnlQYXJhbXMsXG4gIFNjcm9sbERldGVjdGlvbkFwaSxcbiAgV2xjbUljb25EaXJlY3RpdmUsXG4gIFdsY21JY29uTmFtZSxcbiAgV2xjbU9wdGlvbixcbiAgV2xjbVNlbGVjdE9wdGlvbkZvcm1hdCxcbn0gZnJvbSAnQHdsY20vYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFdMQ01fRk9STV9DT05UUk9MLCBXTENNX0ZPUk1fQ09OVFJPTF9QUk9WSURFUiwgV0xDTV9GT1JNX0ZJRUxEIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IFdsY21TZWxlY3RJbnB1dEJpbmRlckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvc2VsZWN0LWlucHV0LWJpbmRlci5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgV2xjbUZvcm1Db250cm9sLCBXbGNtRm9ybUZpZWxkLCBXbGNtRm9ybUZpZWxkSW5wdXQgfSBmcm9tICcuLi8uLi9tb2RlbHMvX2luZGV4JztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgRU1QVFksIE9ic2VydmFibGUsIFN1YmplY3QsIFN1YnNjcmliZXIsIGZpcnN0LCBvZiwgc3dpdGNoTWFwLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IElzT3B0aW9uRGlzYWJsZWRGbiwgV2xjbUNhblNlbGVjdEZuLCBXbGNtU2VsZWN0Q29uZmlnLCBXbGNtU2VsZWN0VmFsdWUgfSBmcm9tICcuLi8uLi9tb2RlbHMvc2VsZWN0Lm1vZGVscyc7XG5pbXBvcnQgeyBXTENNX1NFTEVDVF9DT05GSUcgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvc2VsZWN0LmNvbnN0YW50cyc7XG5pbXBvcnQgeyBVbnRpbERlc3Ryb3ksIHVudGlsRGVzdHJveWVkIH0gZnJvbSAnQG5nbmVhdC91bnRpbC1kZXN0cm95JztcbmltcG9ydCB7IENka092ZXJsYXlPcmlnaW4gfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBtZXJnZVdpdGggfSBmcm9tICdsb2Rhc2gnO1xuXG50eXBlIE9wdGlvblRlbXBsYXRlQ29udGV4dCA9IFRlbXBsYXRlUmVmPHsgJGltcGxpY2l0OiBXbGNtT3B0aW9uIH0+O1xuXG5jb25zdCBQQU5FTF9DTEFTUzogc3RyaW5nID0gJ3dsY20tc2VsZWN0LXBhbmVsJztcblxuY29uc3QgREVGQVVMVF9DT05GSUc6IFdsY21TZWxlY3RDb25maWcgPSB7IG92ZXJsYXlQYW5lbENsYXNzOiBbUEFORUxfQ0xBU1NdIH07XG5cbmNvbnN0IG1lcmdlQ29uZmlnID0gKGNvbmZpZzogV2xjbVNlbGVjdENvbmZpZyk6IFdsY21TZWxlY3RDb25maWcgPT4ge1xuICBjb25zdCBjdXN0b21pemVyID0gKF9kZWZhdWx0OiBXbGNtU2VsZWN0Q29uZmlnLCBfbmV3OiBXbGNtU2VsZWN0Q29uZmlnKTogQXJyYXk8dW5rbm93bj4gfCB2b2lkID0+IHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShfZGVmYXVsdCkpIHJldHVybiBfZGVmYXVsdC5jb25jYXQoX25ldyk7XG4gIH07XG5cbiAgcmV0dXJuIG1lcmdlV2l0aCh7IC4uLkRFRkFVTFRfQ09ORklHIH0sIGNvbmZpZywgY3VzdG9taXplcik7XG59O1xuXG5AVW50aWxEZXN0cm95KClcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3dsY20tc2VsZWN0JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgTWF0U2VsZWN0TW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBXbGNtSWNvbkRpcmVjdGl2ZSwgV2xjbVNlbGVjdElucHV0QmluZGVyRGlyZWN0aXZlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3NlbGVjdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NlbGVjdC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaG9zdERpcmVjdGl2ZXM6IFtXbGNtU2VsZWN0SW5wdXRCaW5kZXJEaXJlY3RpdmVdLFxuICBwcm92aWRlcnM6IFtcbiAgICBXTENNX0ZPUk1fQ09OVFJPTF9QUk9WSURFUixcbiAgICB7XG4gICAgICBwcm92aWRlOiBNQVRfU0VMRUNUX0NPTkZJRyxcbiAgICAgIHVzZUZhY3Rvcnk6ICgpID0+IHtcbiAgICAgICAgY29uc3Qgd2xjbUNvbmZpZzogV2xjbVNlbGVjdENvbmZpZyA9IGluamVjdChXTENNX1NFTEVDVF9DT05GSUcsIHsgb3B0aW9uYWw6IHRydWUgfSkgPz8ge307XG5cbiAgICAgICAgcmV0dXJuIG1lcmdlQ29uZmlnKHdsY21Db25maWcpO1xuICAgICAgfSxcbiAgICB9LFxuICAgIHsgcHJvdmlkZTogTkdfVkFMSURBVE9SUywgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gV2xjbVNlbGVjdENvbXBvbmVudCksIG11bHRpOiB0cnVlIH0sXG4gICAgeyBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUiwgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gV2xjbVNlbGVjdENvbXBvbmVudCksIG11bHRpOiB0cnVlIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFdsY21TZWxlY3RDb21wb25lbnQgaW1wbGVtZW50cyBXbGNtRm9ybUZpZWxkSW5wdXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBWYWxpZGF0b3Ige1xuICBASW5wdXQoKSBtdWx0aXBsZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmcgPSAnTm90IHNlbGVjdGVkJztcblxuICBASW5wdXQoKSBmZXRjaFBhZ2luYXRlZE9wdGlvbnM/OiAocGFyYW1zOiBRdWVyeVBhcmFtcykgPT4gT2JzZXJ2YWJsZTxQYWdpbmF0ZWREYXRhPFdsY21PcHRpb24+PjtcblxuICBASW5wdXQoKSBjYW5TZWxlY3Q6IFdsY21DYW5TZWxlY3RGbiA9IChfOiBXbGNtU2VsZWN0VmFsdWUpID0+IHRydWU7XG5cbiAgQElucHV0KCkgcXVlcnlQYXJhbXM6IFF1ZXJ5UGFyYW1zID0gREVGQVVMVF9RVUVSWV9QQVJBTVM7XG5cbiAgcGFnaW5hdGVkOiBJbnB1dFNpZ25hbDxib29sZWFuPiA9IGlucHV0KGZhbHNlKTtcblxuICBvcHRpb25zOiBJbnB1dFNpZ25hbDxXbGNtT3B0aW9uW10+ID0gaW5wdXQ8V2xjbU9wdGlvbltdPihbXSk7XG5cbiAgcGFnaW5hdGVkT3B0aW9uczogV3JpdGFibGVTaWduYWw8V2xjbU9wdGlvbltdPiA9IHNpZ25hbChbXSk7XG5cbiAgc2VsZWN0T3B0aW9uRm9ybWF0OiBJbnB1dFNpZ25hbDxXbGNtU2VsZWN0T3B0aW9uRm9ybWF0PiA9IGlucHV0PFdsY21TZWxlY3RPcHRpb25Gb3JtYXQ+KCdWYWx1ZU9ubHknKTtcblxuICBvcHRpb25UZW1wbGF0ZTogSW5wdXRTaWduYWw8VGVtcGxhdGVSZWY8T3B0aW9uVGVtcGxhdGVDb250ZXh0PiB8IG51bGw+ID1cbiAgICBpbnB1dDxUZW1wbGF0ZVJlZjxPcHRpb25UZW1wbGF0ZUNvbnRleHQ+IHwgbnVsbD4obnVsbCk7XG5cbiAgdHJpZ2dlclRlbXBsYXRlOiBJbnB1dFNpZ25hbDxUZW1wbGF0ZVJlZjxNYXRPcHRpb24gfCBNYXRPcHRpb25bXT4gfCB1bmRlZmluZWQ+ID0gaW5wdXQoKTtcblxuICBpc09wdGlvbkRpc2FibGVkOiBJbnB1dFNpZ25hbDxJc09wdGlvbkRpc2FibGVkRm4+ID0gaW5wdXQ8SXNPcHRpb25EaXNhYmxlZEZuPigoKSA9PiBmYWxzZSk7XG5cbiAgc2VsZWN0aW9uQ2hhbmdlOiBPdXRwdXRFbWl0dGVyUmVmPE1hdFNlbGVjdENoYW5nZT4gPSBvdXRwdXQoKTtcblxuICBvcGVuZWQ6IE91dHB1dEVtaXR0ZXJSZWY8dm9pZD4gPSBvdXRwdXQoKTtcblxuICBjbG9zZWQ6IE91dHB1dEVtaXR0ZXJSZWY8dm9pZD4gPSBvdXRwdXQoKTtcblxuICByZWFkb25seSB2YWx1ZTogV3JpdGFibGVTaWduYWw8V2xjbVNlbGVjdFZhbHVlIHwgbnVsbD4gPSBzaWduYWwobnVsbCk7XG5cbiAgcmVhZG9ubHkgZGlzYWJsZWQ6IFdyaXRhYmxlU2lnbmFsPGJvb2xlYW4+ID0gc2lnbmFsKGZhbHNlKTtcblxuICByZWFkb25seSBXbGNtSWNvbk5hbWUgPSBXbGNtSWNvbk5hbWU7XG5cbiAgcHJpdmF0ZSBfY2hhbmdlZD86ICh2YWx1ZTogV2xjbU9wdGlvbikgPT4gdm9pZDtcblxuICBwcml2YXRlIF90b3VjaGVkPzogKCkgPT4gdm9pZDtcblxuICBwcml2YXRlIF92YWxpZGF0b3JDaGFuZ2VkPzogKCkgPT4gdm9pZDtcblxuICBwcml2YXRlIF9wYWdpbmF0ZWREYXRhOiBQYWdpbmF0ZWREYXRhPFdsY21PcHRpb24+IHwgbnVsbCA9IG51bGw7XG5cbiAgY29tcHV0ZWRPcHRpb25zOiBTaWduYWw8V2xjbU9wdGlvbltdPiA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5wYWdpbmF0ZWQoKSA/IHRoaXMucGFnaW5hdGVkT3B0aW9ucygpIDogdGhpcy5vcHRpb25zKCk7XG4gIH0pO1xuXG4gIEBWaWV3Q2hpbGQoTWF0U2VsZWN0KSBtYXRTZWxlY3QhOiBNYXRTZWxlY3Q7XG5cbiAgQEhvc3RMaXN0ZW5lcignY2xpY2snKSBvcGVuUGFuZWwoKTogdm9pZCB7XG4gICAgdGhpcy5tYXRTZWxlY3Qub3BlbigpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG1hdE9wdGlvbnM6IFNpZ25hbDxSZWFkb25seUFycmF5PE1hdE9wdGlvbj4+ID0gdmlld0NoaWxkcmVuKE1hdE9wdGlvbik7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfZm9jdXNTdHJlYW0kOiBCZWhhdmlvclN1YmplY3Q8T2JzZXJ2YWJsZTx2b2lkPj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KEVNUFRZIGFzIE9ic2VydmFibGU8dm9pZD4pO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2JsdXJTdHJlYW0kOiBCZWhhdmlvclN1YmplY3Q8T2JzZXJ2YWJsZTx2b2lkPj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KEVNUFRZIGFzIE9ic2VydmFibGU8dm9pZD4pO1xuXG4gIGZvY3VzJDogT2JzZXJ2YWJsZTx1bmtub3duPiA9IHRoaXMuX2ZvY3VzU3RyZWFtJC5waXBlKHN3aXRjaE1hcCgoc3RyZWFtOiBPYnNlcnZhYmxlPHVua25vd24+KSA9PiBzdHJlYW0pKTtcblxuICBibHVyJDogT2JzZXJ2YWJsZTx1bmtub3duPiA9IHRoaXMuX2JsdXJTdHJlYW0kLnBpcGUoc3dpdGNoTWFwKChzdHJlYW06IE9ic2VydmFibGU8dW5rbm93bj4pID0+IHN0cmVhbSkpO1xuXG4gIHByaXZhdGUgc2VsZWN0ZWQkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3QoKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHpvbmU6IE5nWm9uZSxcbiAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIHNjcm9sbERldGVjdGlvbkFwaTogU2Nyb2xsRGV0ZWN0aW9uQXBpLFxuICAgIEBJbmplY3QoV0xDTV9GT1JNX0ZJRUxEKSBwcml2YXRlIGZvcm1GaWVsZDogV2xjbUZvcm1GaWVsZCxcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KFdMQ01fRk9STV9DT05UUk9MKSBwcml2YXRlIHBhcmVudEZvcm1NZW1iZXI6IFdsY21Gb3JtQ29udHJvbCxcbiAgKSB7XG4gICAgaWYgKHRoaXMucGFyZW50Rm9ybU1lbWJlcikge1xuICAgICAgdGhpcy5oYW5kbGVTdGF0ZUNoYW5nZSgpO1xuICAgIH1cblxuICAgIGVmZmVjdChcbiAgICAgICgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMucGFnaW5hdGVkKCkpIHRoaXMubG9hZFBhZ2luYXRlZE9wdGlvbnMoKTtcbiAgICAgIH0sXG4gICAgICB7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH0sXG4gICAgKTtcblxuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5pc09wdGlvbkRpc2FibGVkKCkgJiYgdGhpcy5jb21wdXRlZE9wdGlvbnMoKS5sZW5ndGggPiAwKSB7XG4gICAgICAgIHRoaXMudXBkYXRlT3B0aW9uc1N0YXR1cygpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGNvbnN0IGZvcm1GaWVsZDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4gPSB0aGlzLmZvcm1GaWVsZC5pbnB1dENvbnRhaW5lcjtcblxuICAgIGlmIChmb3JtRmllbGQpIHtcbiAgICAgIHRoaXMubWF0U2VsZWN0Ll9wcmVmZXJyZWRPdmVybGF5T3JpZ2luID0gbmV3IENka092ZXJsYXlPcmlnaW4odGhpcy5mb3JtRmllbGQuaW5wdXRDb250YWluZXIpO1xuICAgIH1cblxuICAgIHRoaXMuX2ZvY3VzU3RyZWFtJC5uZXh0KHRoaXMubWF0U2VsZWN0Ll9vcGVuZWRTdHJlYW0pO1xuXG4gICAgdGhpcy5fYmx1clN0cmVhbSQubmV4dCh0aGlzLm1hdFNlbGVjdC5fY2xvc2VkU3RyZWFtKTtcbiAgfVxuXG4gIGNvbXBhcmVXaXRoID0gKG9wdGlvbkE6IFdsY21PcHRpb24gfCBzdHJpbmcsIG9wdGlvbkI6IFdsY21PcHRpb24gfCBzdHJpbmcpOiBib29sZWFuID0+IHtcbiAgICByZXR1cm4gKChvcHRpb25BIGFzIFdsY21PcHRpb24pPy52YWx1ZSB8fCBvcHRpb25BKSA9PT0gKChvcHRpb25CIGFzIFdsY21PcHRpb24pPy52YWx1ZSB8fCBvcHRpb25CKTtcbiAgfTtcblxuICBmb2N1cyA9ICgpOiB2b2lkID0+IHRoaXMubWF0U2VsZWN0Lm9wZW4oKTtcblxuICBpc0ZvY3VzZWQgPSAoKTogYm9vbGVhbiA9PiB0aGlzLmlzT3BlbjtcblxuICBzZWxlY3QoZXZlbnQ6IE1hdFNlbGVjdENoYW5nZSk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWQkLm5leHQoKTtcblxuICAgIHRoaXMudmFsaWRhdGVTZWxlY3RlZE9wdGlvbihldmVudC52YWx1ZSlcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLnNlbGVjdGVkJCkpXG4gICAgICAuc3Vic2NyaWJlKChjYW5TZWxlY3Q6IGJvb2xlYW4pID0+IHtcbiAgICAgICAgaWYgKCFjYW5TZWxlY3QpIHJldHVybiB0aGlzLnJldmVydFByZXZpb3VzVmFsdWUoKTtcblxuICAgICAgICB0aGlzLnZhbHVlLnNldChldmVudC52YWx1ZSk7XG5cbiAgICAgICAgdGhpcy5fY2hhbmdlZD8uKGV2ZW50LnZhbHVlKTtcblxuICAgICAgICB0aGlzLl92YWxpZGF0b3JDaGFuZ2VkPy4oKTtcblxuICAgICAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZS5lbWl0KGV2ZW50KTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSB2YWxpZGF0ZVNlbGVjdGVkT3B0aW9uKHZhbHVlOiBXbGNtU2VsZWN0VmFsdWUpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGU8Ym9vbGVhbj4oKG9ic2VydmVyOiBTdWJzY3JpYmVyPGJvb2xlYW4+KSA9PiB7XG4gICAgICBjb25zdCByZXNwb25zZTogT2JzZXJ2YWJsZTxib29sZWFuPiB8IGJvb2xlYW4gPSB0aGlzLmNhblNlbGVjdCh2YWx1ZSk7XG5cbiAgICAgIGNvbnN0IHNvdXJjZTogT2JzZXJ2YWJsZTxib29sZWFuPiA9IHJlc3BvbnNlIGluc3RhbmNlb2YgT2JzZXJ2YWJsZSA/IHJlc3BvbnNlLnBpcGUoZmlyc3QoKSkgOiBvZihyZXNwb25zZSk7XG5cbiAgICAgIHNvdXJjZS5zdWJzY3JpYmUoKHJlc3VsdDogYm9vbGVhbikgPT4ge1xuICAgICAgICBvYnNlcnZlci5uZXh0KHJlc3VsdCk7XG4gICAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgcmV2ZXJ0UHJldmlvdXNWYWx1ZSgpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlLnVwZGF0ZSgodmFsdWU6IFdsY21TZWxlY3RWYWx1ZSB8IG51bGwpID0+IHtcbiAgICAgIGlmICh0aGlzLm11bHRpcGxlKSB7XG4gICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgICAgICAgcmV0dXJuIFsuLi52YWx1ZV0gYXMgV2xjbU9wdGlvbltdIHwgc3RyaW5nW107XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gW107XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBwYW5lbE9wZW5lZCgpOiB2b2lkIHtcbiAgICB0aGlzLm9wZW5lZC5lbWl0KCk7XG5cbiAgICB0aGlzLmhhbmRsZVNjcm9sbERvd24oKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBwYW5lbENsb3NlZCgpOiB2b2lkIHtcbiAgICB0aGlzLmNsb3NlZC5lbWl0KCk7XG5cbiAgICB0aGlzLl90b3VjaGVkPy4oKTtcbiAgfVxuXG4gIHVwZGF0ZU9wdGlvbnNTdGF0dXMoKTogdm9pZCB7XG4gICAgdGhpcy5tYXRPcHRpb25zKCkuZm9yRWFjaCgobWF0T3B0aW9uOiBNYXRPcHRpb24pID0+IHtcbiAgICAgIG1hdE9wdGlvbi5kaXNhYmxlZCA9IHRoaXMuaXNPcHRpb25EaXNhYmxlZCgpKG1hdE9wdGlvbi52YWx1ZSk7XG4gICAgfSk7XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBXbGNtU2VsZWN0VmFsdWUpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlLnNldCh2YWx1ZSk7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGNhbGxiYWNrOiAodmFsdWU6IFdsY21PcHRpb24pID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLl9jaGFuZ2VkID0gY2FsbGJhY2s7XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChjYWxsYmFjazogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMuX3RvdWNoZWQgPSBjYWxsYmFjaztcbiAgfVxuXG4gIHJlZ2lzdGVyT25WYWxpZGF0b3JDaGFuZ2UoY2FsbGJhY2s6ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLl92YWxpZGF0b3JDaGFuZ2VkID0gY2FsbGJhY2s7XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkLnNldChpc0Rpc2FibGVkKTtcbiAgfVxuXG4gIHZhbGlkYXRlKCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGdldCBpc09wZW4oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMubWF0U2VsZWN0Py5wYW5lbE9wZW4gPz8gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIGxvYWRQYWdpbmF0ZWRPcHRpb25zKCk6IHZvaWQge1xuICAgIHRoaXMuZmV0Y2hQYWdpbmF0ZWRPcHRpb25zISh7IC4uLnRoaXMucXVlcnlQYXJhbXMsIHBhZ2U6IDEgfSlcbiAgICAgIC5waXBlKHVudGlsRGVzdHJveWVkKHRoaXMpLCBmaXJzdCgpKVxuICAgICAgLnN1YnNjcmliZSgocGFnaW5hdGVkRGF0YTogUGFnaW5hdGVkRGF0YTxXbGNtT3B0aW9uPikgPT4ge1xuICAgICAgICB0aGlzLl9wYWdpbmF0ZWREYXRhID0gcGFnaW5hdGVkRGF0YTtcblxuICAgICAgICB0aGlzLnBhZ2luYXRlZE9wdGlvbnMuc2V0KHBhZ2luYXRlZERhdGEuZGF0YSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgbG9hZE1vcmVQYWdpbmF0ZWRPcHRpb25zKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5fcGFnaW5hdGVkRGF0YSB8fCB0aGlzLl9wYWdpbmF0ZWREYXRhLmN1cnJQYWdlICsgMSA+IHRoaXMuX3BhZ2luYXRlZERhdGEudG90YWxQYWdlcykgcmV0dXJuO1xuXG4gICAgdGhpcy5xdWVyeVBhcmFtcy5wYWdlKys7XG5cbiAgICB0aGlzLmZldGNoUGFnaW5hdGVkT3B0aW9ucyEoeyAuLi50aGlzLnF1ZXJ5UGFyYW1zIH0pXG4gICAgICAucGlwZSh1bnRpbERlc3Ryb3llZCh0aGlzKSwgZmlyc3QoKSlcbiAgICAgIC5zdWJzY3JpYmUoKHBhZ2luYXRlZERhdGE6IFBhZ2luYXRlZERhdGE8V2xjbU9wdGlvbj4pID0+IHtcbiAgICAgICAgdGhpcy5fcGFnaW5hdGVkRGF0YSA9IHBhZ2luYXRlZERhdGE7XG5cbiAgICAgICAgdGhpcy5wYWdpbmF0ZWRPcHRpb25zLnVwZGF0ZSgob3B0aW9uczogV2xjbU9wdGlvbltdKSA9PiBbLi4ub3B0aW9ucywgLi4ucGFnaW5hdGVkRGF0YS5kYXRhXSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlU2Nyb2xsRG93bigpOiB2b2lkIHtcbiAgICBjb25zdCBlbGVtZW50OiBIVE1MRWxlbWVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5tYXQtbWRjLXNlbGVjdC1wYW5lbCcpITtcblxuICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICB0aGlzLnNjcm9sbERldGVjdGlvbkFwaS5vblNjcm9sbGVkRG93bihlbGVtZW50KS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLnpvbmUucnVuKCgpID0+IHRoaXMubG9hZE1vcmVQYWdpbmF0ZWRPcHRpb25zKCkpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZVN0YXRlQ2hhbmdlKCk6IHZvaWQge1xuICAgIHRoaXMucGFyZW50Rm9ybU1lbWJlci5zdGF0ZUNoYW5nZXMkLnBpcGUodW50aWxEZXN0cm95ZWQodGhpcykpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLl92YWxpZGF0b3JDaGFuZ2VkPy4oKTtcblxuICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICB9KTtcbiAgfVxufVxuIiwiPG1hdC1zZWxlY3RcbiAgI3NlbGVjdENvbXBvbmVudFxuICBbdmFsdWVdPVwidmFsdWUoKVwiXG4gIFtkaXNhYmxlZF09XCJkaXNhYmxlZCgpXCJcbiAgW211bHRpcGxlXT1cIm11bHRpcGxlXCJcbiAgW2Rpc2FibGVSaXBwbGVdPVwidHJ1ZVwiXG4gIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gIFtoaWRlU2luZ2xlU2VsZWN0aW9uSW5kaWNhdG9yXT1cInRydWVcIlxuICBbbmdDbGFzc109XCJ7IGZvY3VzZWQ6IHNlbGVjdENvbXBvbmVudC5mb2N1c2VkIH1cIlxuICAoc2VsZWN0aW9uQ2hhbmdlKT1cInNlbGVjdCgkZXZlbnQpXCJcbiAgW2NvbXBhcmVXaXRoXT1cImNvbXBhcmVXaXRoXCJcbiAgKG9wZW5lZCk9XCJwYW5lbE9wZW5lZCgpXCJcbiAgKGNsb3NlZCk9XCJwYW5lbENsb3NlZCgpXCJcbj5cbiAgQGlmICh0cmlnZ2VyVGVtcGxhdGUoKSkge1xuICAgIDxtYXQtc2VsZWN0LXRyaWdnZXI+XG4gICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgdHJpZ2dlclRlbXBsYXRlKCkhO1xuICAgICAgICAgIGNvbnRleHQ6ICRhbnkoeyAkaW1wbGljaXQ6IHNlbGVjdENvbXBvbmVudC5zZWxlY3RlZCB9KVxuICAgICAgICBcIlxuICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgIDwvbWF0LXNlbGVjdC10cmlnZ2VyPlxuICB9XG5cbiAgPG1hdC1vcHRpb25cbiAgICAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIGNvbXB1dGVkT3B0aW9ucygpXCJcbiAgICBbdmFsdWVdPVwic2VsZWN0T3B0aW9uRm9ybWF0KCkgPT09ICdDb21wbGV0ZU9wdGlvbicgPyBvcHRpb24gOiBvcHRpb24udmFsdWVcIlxuICA+XG4gICAgQGlmIChvcHRpb25UZW1wbGF0ZSgpKSB7XG4gICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgb3B0aW9uVGVtcGxhdGUoKTtcbiAgICAgICAgICBjb250ZXh0OiAkYW55KHsgJGltcGxpY2l0OiBvcHRpb24gfSlcbiAgICAgICAgXCJcbiAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICB9IEBlbHNlIHtcbiAgICAgIHt7IG9wdGlvbi52aWV3VmFsdWUgfX1cbiAgICB9XG4gIDwvbWF0LW9wdGlvbj5cbjwvbWF0LXNlbGVjdD5cblxuPGRpdiBjbGFzcz1cIndsY20tc2VsZWN0LWFycm93XCI+XG4gIDxuZy1jb250YWluZXJcbiAgICBbd2xjbUljb25dPVwiV2xjbUljb25OYW1lLkNIRVZST05fRE9XTlwiXG4gICAgW3dsY21JY29uU3RvcFByb3BhZ2F0aW9uXT1cImZhbHNlXCJcbiAgPjwvbmctY29udGFpbmVyPlxuPC9kaXY+XG4iXX0=
|
251
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL21vZHVsZXMvZm9ybXMvc3JjL2xpYi9mb3Jtcy9jb21wb25lbnRzL3NlbGVjdC9zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9mb3Jtcy9zcmMvbGliL2Zvcm1zL2NvbXBvbmVudHMvc2VsZWN0L3NlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFFVCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFFTCxNQUFNLEVBQ04sUUFBUSxFQUlSLFNBQVMsRUFFVCxRQUFRLEVBQ1IsTUFBTSxFQUNOLFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixNQUFNLEVBQ04sWUFBWSxHQUNiLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFFTCxhQUFhLEVBQ2IsaUJBQWlCLEVBQ2pCLG1CQUFtQixHQUdwQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFtQixlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNySCxPQUFPLEVBQ0wsb0JBQW9CLEVBR3BCLGtCQUFrQixFQUNsQixpQkFBaUIsRUFDakIsWUFBWSxHQUdiLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLDBCQUEwQixFQUFFLGVBQWUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pHLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBRWhHLE9BQU8sRUFBRSxlQUFlLEVBQUUsS0FBSyxF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QVM7dUJBQUMsU0FBUztnQkFFRyxTQUFTO3NCQUEvQixZQUFZO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5qZWN0LFxuICBJbnB1dCxcbiAgSW5wdXRTaWduYWwsXG4gIE5nWm9uZSxcbiAgT3B0aW9uYWwsXG4gIE91dHB1dEVtaXR0ZXJSZWYsXG4gIFNpZ25hbCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbiAgV3JpdGFibGVTaWduYWwsXG4gIGNvbXB1dGVkLFxuICBlZmZlY3QsXG4gIGZvcndhcmRSZWYsXG4gIGluamVjdCxcbiAgaW5wdXQsXG4gIG91dHB1dCxcbiAgc2lnbmFsLFxuICB2aWV3Q2hpbGRyZW4sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXG4gIE5HX1ZBTElEQVRPUlMsXG4gIE5HX1ZBTFVFX0FDQ0VTU09SLFxuICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICBWYWxpZGF0aW9uRXJyb3JzLFxuICBWYWxpZGF0b3IsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1BVF9TRUxFQ1RfQ09ORklHLCBNYXRPcHRpb24sIE1hdFNlbGVjdCwgTWF0U2VsZWN0Q2hhbmdlLCBNYXRTZWxlY3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xuaW1wb3J0IHtcbiAgREVGQVVMVF9RVUVSWV9QQVJBTVMsXG4gIFBhZ2luYXRlZERhdGEsXG4gIFF1ZXJ5UGFyYW1zLFxuICBTY3JvbGxEZXRlY3Rpb25BcGksXG4gIFdsY21JY29uRGlyZWN0aXZlLFxuICBXbGNtSWNvbk5hbWUsXG4gIFdsY21PcHRpb24sXG4gIFdsY21TZWxlY3RPcHRpb25Gb3JtYXQsXG59IGZyb20gJ0B3bGNtL2FuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBXTENNX0ZPUk1fQ09OVFJPTCwgV0xDTV9GT1JNX0NPTlRST0xfUFJPVklERVIsIFdMQ01fRk9STV9GSUVMRCB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBXbGNtU2VsZWN0SW5wdXRCaW5kZXJEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL3NlbGVjdC1pbnB1dC1iaW5kZXIuZGlyZWN0aXZlJztcbmltcG9ydCB7IFdsY21Gb3JtQ29udHJvbCwgV2xjbUZvcm1GaWVsZCwgV2xjbUZvcm1GaWVsZElucHV0IH0gZnJvbSAnLi4vLi4vbW9kZWxzL19pbmRleCc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIEVNUFRZLCBPYnNlcnZhYmxlLCBTdWJqZWN0LCBTdWJzY3JpYmVyLCBmaXJzdCwgb2YsIHN3aXRjaE1hcCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBJc09wdGlvbkRpc2FibGVkRm4sIFdsY21DYW5TZWxlY3RGbiwgV2xjbVNlbGVjdENvbmZpZywgV2xjbVNlbGVjdFZhbHVlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3NlbGVjdC5tb2RlbHMnO1xuaW1wb3J0IHsgV0xDTV9TRUxFQ1RfQ09ORklHIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL3NlbGVjdC5jb25zdGFudHMnO1xuaW1wb3J0IHsgVW50aWxEZXN0cm95LCB1bnRpbERlc3Ryb3llZCB9IGZyb20gJ0BuZ25lYXQvdW50aWwtZGVzdHJveSc7XG5pbXBvcnQgeyBDZGtPdmVybGF5T3JpZ2luIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgbWVyZ2VXaXRoIH0gZnJvbSAnbG9kYXNoJztcblxudHlwZSBPcHRpb25UZW1wbGF0ZUNvbnRleHQgPSBUZW1wbGF0ZVJlZjx7ICRpbXBsaWNpdDogV2xjbU9wdGlvbiB9PjtcblxuY29uc3QgUEFORUxfQ0xBU1M6IHN0cmluZyA9ICd3bGNtLXNlbGVjdC1wYW5lbCc7XG5cbmNvbnN0IERFRkFVTFRfQ09ORklHOiBXbGNtU2VsZWN0Q29uZmlnID0geyBvdmVybGF5UGFuZWxDbGFzczogW1BBTkVMX0NMQVNTXSB9O1xuXG5jb25zdCBtZXJnZUNvbmZpZyA9IChjb25maWc6IFdsY21TZWxlY3RDb25maWcpOiBXbGNtU2VsZWN0Q29uZmlnID0+IHtcbiAgY29uc3QgY3VzdG9taXplciA9IChfZGVmYXVsdDogV2xjbVNlbGVjdENvbmZpZywgX25ldzogV2xjbVNlbGVjdENvbmZpZyk6IEFycmF5PHVua25vd24+IHwgdm9pZCA9PiB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkoX2RlZmF1bHQpKSByZXR1cm4gX2RlZmF1bHQuY29uY2F0KF9uZXcpO1xuICB9O1xuXG4gIHJldHVybiBtZXJnZVdpdGgoeyAuLi5ERUZBVUxUX0NPTkZJRyB9LCBjb25maWcsIGN1c3RvbWl6ZXIpO1xufTtcblxuQFVudGlsRGVzdHJveSgpXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd3bGNtLXNlbGVjdCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIE1hdFNlbGVjdE1vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgV2xjbUljb25EaXJlY3RpdmUsIFdsY21TZWxlY3RJbnB1dEJpbmRlckRpcmVjdGl2ZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWxlY3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zZWxlY3QuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGhvc3REaXJlY3RpdmVzOiBbV2xjbVNlbGVjdElucHV0QmluZGVyRGlyZWN0aXZlXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgV0xDTV9GT1JNX0NPTlRST0xfUFJPVklERVIsXG4gICAge1xuICAgICAgcHJvdmlkZTogTUFUX1NFTEVDVF9DT05GSUcsXG4gICAgICB1c2VGYWN0b3J5OiAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHdsY21Db25maWc6IFdsY21TZWxlY3RDb25maWcgPSBpbmplY3QoV0xDTV9TRUxFQ1RfQ09ORklHLCB7IG9wdGlvbmFsOiB0cnVlIH0pID8/IHt9O1xuXG4gICAgICAgIHJldHVybiBtZXJnZUNvbmZpZyh3bGNtQ29uZmlnKTtcbiAgICAgIH0sXG4gICAgfSxcbiAgICB7IHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFdsY21TZWxlY3RDb21wb25lbnQpLCBtdWx0aTogdHJ1ZSB9LFxuICAgIHsgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFdsY21TZWxlY3RDb21wb25lbnQpLCBtdWx0aTogdHJ1ZSB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBXbGNtU2VsZWN0Q29tcG9uZW50IGltcGxlbWVudHMgV2xjbUZvcm1GaWVsZElucHV0LCBDb250cm9sVmFsdWVBY2Nlc3NvciwgVmFsaWRhdG9yIHtcbiAgQElucHV0KCkgbXVsdGlwbGU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBASW5wdXQoKSBwbGFjZWhvbGRlcjogc3RyaW5nID0gJ05vdCBzZWxlY3RlZCc7XG5cbiAgQElucHV0KCkgZmV0Y2hQYWdpbmF0ZWRPcHRpb25zPzogKHBhcmFtczogUXVlcnlQYXJhbXMpID0+IE9ic2VydmFibGU8UGFnaW5hdGVkRGF0YTxXbGNtT3B0aW9uPj47XG5cbiAgQElucHV0KCkgY2FuU2VsZWN0OiBXbGNtQ2FuU2VsZWN0Rm4gPSAoXzogV2xjbVNlbGVjdFZhbHVlKSA9PiB0cnVlO1xuXG4gIEBJbnB1dCgpIHF1ZXJ5UGFyYW1zOiBRdWVyeVBhcmFtcyA9IERFRkFVTFRfUVVFUllfUEFSQU1TO1xuXG4gIHBhZ2luYXRlZDogSW5wdXRTaWduYWw8Ym9vbGVhbj4gPSBpbnB1dChmYWxzZSk7XG5cbiAgb3B0aW9uczogSW5wdXRTaWduYWw8V2xjbU9wdGlvbltdPiA9IGlucHV0PFdsY21PcHRpb25bXT4oW10pO1xuXG4gIHBhZ2luYXRlZE9wdGlvbnM6IFdyaXRhYmxlU2lnbmFsPFdsY21PcHRpb25bXT4gPSBzaWduYWwoW10pO1xuXG4gIHNlbGVjdE9wdGlvbkZvcm1hdDogSW5wdXRTaWduYWw8V2xjbVNlbGVjdE9wdGlvbkZvcm1hdD4gPSBpbnB1dDxXbGNtU2VsZWN0T3B0aW9uRm9ybWF0PignVmFsdWVPbmx5Jyk7XG5cbiAgb3B0aW9uVGVtcGxhdGU6IElucHV0U2lnbmFsPFRlbXBsYXRlUmVmPE9wdGlvblRlbXBsYXRlQ29udGV4dD4gfCBudWxsPiA9XG4gICAgaW5wdXQ8VGVtcGxhdGVSZWY8T3B0aW9uVGVtcGxhdGVDb250ZXh0PiB8IG51bGw+KG51bGwpO1xuXG4gIHRyaWdnZXJUZW1wbGF0ZTogSW5wdXRTaWduYWw8VGVtcGxhdGVSZWY8TWF0T3B0aW9uIHwgTWF0T3B0aW9uW10+IHwgdW5kZWZpbmVkPiA9IGlucHV0KCk7XG5cbiAgaXNPcHRpb25EaXNhYmxlZDogSW5wdXRTaWduYWw8SXNPcHRpb25EaXNhYmxlZEZuPiA9IGlucHV0PElzT3B0aW9uRGlzYWJsZWRGbj4oKCkgPT4gZmFsc2UpO1xuXG4gIHNlbGVjdGlvbkNoYW5nZTogT3V0cHV0RW1pdHRlclJlZjxNYXRTZWxlY3RDaGFuZ2U+ID0gb3V0cHV0KCk7XG5cbiAgb3BlbmVkOiBPdXRwdXRFbWl0dGVyUmVmPHZvaWQ+ID0gb3V0cHV0KCk7XG5cbiAgY2xvc2VkOiBPdXRwdXRFbWl0dGVyUmVmPHZvaWQ+ID0gb3V0cHV0KCk7XG5cbiAgcmVhZG9ubHkgdmFsdWU6IFdyaXRhYmxlU2lnbmFsPFdsY21TZWxlY3RWYWx1ZSB8IG51bGw+ID0gc2lnbmFsKG51bGwpO1xuXG4gIHJlYWRvbmx5IGRpc2FibGVkOiBXcml0YWJsZVNpZ25hbDxib29sZWFuPiA9IHNpZ25hbChmYWxzZSk7XG5cbiAgcmVhZG9ubHkgV2xjbUljb25OYW1lID0gV2xjbUljb25OYW1lO1xuXG4gIHByaXZhdGUgX2NoYW5nZWQ/OiAodmFsdWU6IFdsY21PcHRpb24pID0+IHZvaWQ7XG5cbiAgcHJpdmF0ZSBfdG91Y2hlZD86ICgpID0+IHZvaWQ7XG5cbiAgcHJpdmF0ZSBfdmFsaWRhdG9yQ2hhbmdlZD86ICgpID0+IHZvaWQ7XG5cbiAgcHJpdmF0ZSBfcGFnaW5hdGVkRGF0YTogUGFnaW5hdGVkRGF0YTxXbGNtT3B0aW9uPiB8IG51bGwgPSBudWxsO1xuXG4gIHByaXZhdGUgX3ByZXZpb3VzVmFsdWU6IFdsY21TZWxlY3RWYWx1ZSB8IG51bGwgPSBudWxsO1xuXG4gIGNvbXB1dGVkT3B0aW9uczogU2lnbmFsPFdsY21PcHRpb25bXT4gPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMucGFnaW5hdGVkKCkgPyB0aGlzLnBhZ2luYXRlZE9wdGlvbnMoKSA6IHRoaXMub3B0aW9ucygpO1xuICB9KTtcblxuICBAVmlld0NoaWxkKE1hdFNlbGVjdCkgbWF0U2VsZWN0ITogTWF0U2VsZWN0O1xuXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJykgb3BlblBhbmVsKCk6IHZvaWQge1xuICAgIHRoaXMubWF0U2VsZWN0Lm9wZW4oKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBtYXRPcHRpb25zOiBTaWduYWw8UmVhZG9ubHlBcnJheTxNYXRPcHRpb24+PiA9IHZpZXdDaGlsZHJlbihNYXRPcHRpb24pO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2ZvY3VzU3RyZWFtJDogQmVoYXZpb3JTdWJqZWN0PE9ic2VydmFibGU8dm9pZD4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChFTVBUWSBhcyBPYnNlcnZhYmxlPHZvaWQ+KTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9ibHVyU3RyZWFtJDogQmVoYXZpb3JTdWJqZWN0PE9ic2VydmFibGU8dm9pZD4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChFTVBUWSBhcyBPYnNlcnZhYmxlPHZvaWQ+KTtcblxuICBmb2N1cyQ6IE9ic2VydmFibGU8dW5rbm93bj4gPSB0aGlzLl9mb2N1c1N0cmVhbSQucGlwZShzd2l0Y2hNYXAoKHN0cmVhbTogT2JzZXJ2YWJsZTx1bmtub3duPikgPT4gc3RyZWFtKSk7XG5cbiAgYmx1ciQ6IE9ic2VydmFibGU8dW5rbm93bj4gPSB0aGlzLl9ibHVyU3RyZWFtJC5waXBlKHN3aXRjaE1hcCgoc3RyZWFtOiBPYnNlcnZhYmxlPHVua25vd24+KSA9PiBzdHJlYW0pKTtcblxuICBwcml2YXRlIHNlbGVjdGVkJDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSB6b25lOiBOZ1pvbmUsXG4gICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSBzY3JvbGxEZXRlY3Rpb25BcGk6IFNjcm9sbERldGVjdGlvbkFwaSxcbiAgICBASW5qZWN0KFdMQ01fRk9STV9GSUVMRCkgcHJpdmF0ZSBmb3JtRmllbGQ6IFdsY21Gb3JtRmllbGQsXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChXTENNX0ZPUk1fQ09OVFJPTCkgcHJpdmF0ZSBwYXJlbnRGb3JtTWVtYmVyOiBXbGNtRm9ybUNvbnRyb2wsXG4gICkge1xuICAgIGlmICh0aGlzLnBhcmVudEZvcm1NZW1iZXIpIHtcbiAgICAgIHRoaXMuaGFuZGxlU3RhdGVDaGFuZ2UoKTtcbiAgICB9XG5cbiAgICBlZmZlY3QoXG4gICAgICAoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLnBhZ2luYXRlZCgpKSB0aGlzLmxvYWRQYWdpbmF0ZWRPcHRpb25zKCk7XG4gICAgICB9LFxuICAgICAgeyBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9LFxuICAgICk7XG5cbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuaXNPcHRpb25EaXNhYmxlZCgpICYmIHRoaXMuY29tcHV0ZWRPcHRpb25zKCkubGVuZ3RoID4gMCkge1xuICAgICAgICB0aGlzLnVwZGF0ZU9wdGlvbnNTdGF0dXMoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBjb25zdCBmb3JtRmllbGQ6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+ID0gdGhpcy5mb3JtRmllbGQuaW5wdXRDb250YWluZXI7XG5cbiAgICBpZiAoZm9ybUZpZWxkKSB7XG4gICAgICB0aGlzLm1hdFNlbGVjdC5fcHJlZmVycmVkT3ZlcmxheU9yaWdpbiA9IG5ldyBDZGtPdmVybGF5T3JpZ2luKHRoaXMuZm9ybUZpZWxkLmlucHV0Q29udGFpbmVyKTtcbiAgICB9XG5cbiAgICB0aGlzLl9mb2N1c1N0cmVhbSQubmV4dCh0aGlzLm1hdFNlbGVjdC5fb3BlbmVkU3RyZWFtKTtcblxuICAgIHRoaXMuX2JsdXJTdHJlYW0kLm5leHQodGhpcy5tYXRTZWxlY3QuX2Nsb3NlZFN0cmVhbSk7XG4gIH1cblxuICBjb21wYXJlV2l0aCA9IChvcHRpb25BOiBXbGNtT3B0aW9uIHwgc3RyaW5nLCBvcHRpb25COiBXbGNtT3B0aW9uIHwgc3RyaW5nKTogYm9vbGVhbiA9PiB7XG4gICAgcmV0dXJuICgob3B0aW9uQSBhcyBXbGNtT3B0aW9uKT8udmFsdWUgfHwgb3B0aW9uQSkgPT09ICgob3B0aW9uQiBhcyBXbGNtT3B0aW9uKT8udmFsdWUgfHwgb3B0aW9uQik7XG4gIH07XG5cbiAgZm9jdXMgPSAoKTogdm9pZCA9PiB0aGlzLm1hdFNlbGVjdC5vcGVuKCk7XG5cbiAgaXNGb2N1c2VkID0gKCk6IGJvb2xlYW4gPT4gdGhpcy5pc09wZW47XG5cbiAgc2VsZWN0KGV2ZW50OiBNYXRTZWxlY3RDaGFuZ2UpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkJC5uZXh0KCk7XG5cbiAgICB0aGlzLm1hdFNlbGVjdC52YWx1ZSA9IGV2ZW50LnZhbHVlO1xuXG4gICAgdGhpcy52YWxpZGF0ZVNlbGVjdGVkT3B0aW9uKGV2ZW50LnZhbHVlKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuc2VsZWN0ZWQkKSlcbiAgICAgIC5zdWJzY3JpYmUoKGNhblNlbGVjdDogYm9vbGVhbikgPT4ge1xuICAgICAgICBpZiAoIWNhblNlbGVjdCkgcmV0dXJuIHRoaXMucmV2ZXJ0UHJldmlvdXNWYWx1ZSgpO1xuXG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWUoZXZlbnQudmFsdWUpO1xuXG4gICAgICAgIHRoaXMuX2NoYW5nZWQ/LihldmVudC52YWx1ZSk7XG5cbiAgICAgICAgdGhpcy5fdmFsaWRhdG9yQ2hhbmdlZD8uKCk7XG5cbiAgICAgICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2UuZW1pdChldmVudCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgcmV2ZXJ0UHJldmlvdXNWYWx1ZSgpOiB2b2lkIHtcbiAgICB0aGlzLm1hdFNlbGVjdC52YWx1ZSA9IHRoaXMuX3ByZXZpb3VzVmFsdWU7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVZhbHVlKHZhbHVlOiBXbGNtU2VsZWN0VmFsdWUpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlLnNldCh2YWx1ZSk7XG5cbiAgICB0aGlzLl9wcmV2aW91c1ZhbHVlID0gdmFsdWU7XG4gIH1cblxuICBwcml2YXRlIHZhbGlkYXRlU2VsZWN0ZWRPcHRpb24odmFsdWU6IFdsY21TZWxlY3RWYWx1ZSk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZTxib29sZWFuPigob2JzZXJ2ZXI6IFN1YnNjcmliZXI8Ym9vbGVhbj4pID0+IHtcbiAgICAgIGNvbnN0IHJlc3BvbnNlOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHwgYm9vbGVhbiA9IHRoaXMuY2FuU2VsZWN0KHZhbHVlKTtcblxuICAgICAgY29uc3Qgc291cmNlOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gcmVzcG9uc2UgaW5zdGFuY2VvZiBPYnNlcnZhYmxlID8gcmVzcG9uc2UucGlwZShmaXJzdCgpKSA6IG9mKHJlc3BvbnNlKTtcblxuICAgICAgc291cmNlLnN1YnNjcmliZSgocmVzdWx0OiBib29sZWFuKSA9PiB7XG4gICAgICAgIG9ic2VydmVyLm5leHQocmVzdWx0KTtcbiAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIHBhbmVsT3BlbmVkKCk6IHZvaWQge1xuICAgIHRoaXMub3BlbmVkLmVtaXQoKTtcblxuICAgIHRoaXMuaGFuZGxlU2Nyb2xsRG93bigpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHBhbmVsQ2xvc2VkKCk6IHZvaWQge1xuICAgIHRoaXMuY2xvc2VkLmVtaXQoKTtcblxuICAgIHRoaXMuX3RvdWNoZWQ/LigpO1xuICB9XG5cbiAgdXBkYXRlT3B0aW9uc1N0YXR1cygpOiB2b2lkIHtcbiAgICB0aGlzLm1hdE9wdGlvbnMoKS5mb3JFYWNoKChtYXRPcHRpb246IE1hdE9wdGlvbikgPT4ge1xuICAgICAgbWF0T3B0aW9uLmRpc2FibGVkID0gdGhpcy5pc09wdGlvbkRpc2FibGVkKCkobWF0T3B0aW9uLnZhbHVlKTtcbiAgICB9KTtcbiAgfVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IFdsY21TZWxlY3RWYWx1ZSk6IHZvaWQge1xuICAgIHRoaXMudXBkYXRlVmFsdWUodmFsdWUpO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShjYWxsYmFjazogKHZhbHVlOiBXbGNtT3B0aW9uKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5fY2hhbmdlZCA9IGNhbGxiYWNrO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoY2FsbGJhY2s6ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLl90b3VjaGVkID0gY2FsbGJhY2s7XG4gIH1cblxuICByZWdpc3Rlck9uVmFsaWRhdG9yQ2hhbmdlKGNhbGxiYWNrOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5fdmFsaWRhdG9yQ2hhbmdlZCA9IGNhbGxiYWNrO1xuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlZC5zZXQoaXNEaXNhYmxlZCk7XG4gIH1cblxuICB2YWxpZGF0ZSgpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBnZXQgaXNPcGVuKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm1hdFNlbGVjdD8ucGFuZWxPcGVuID8/IGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBsb2FkUGFnaW5hdGVkT3B0aW9ucygpOiB2b2lkIHtcbiAgICB0aGlzLmZldGNoUGFnaW5hdGVkT3B0aW9ucyEoeyAuLi50aGlzLnF1ZXJ5UGFyYW1zLCBwYWdlOiAxIH0pXG4gICAgICAucGlwZSh1bnRpbERlc3Ryb3llZCh0aGlzKSwgZmlyc3QoKSlcbiAgICAgIC5zdWJzY3JpYmUoKHBhZ2luYXRlZERhdGE6IFBhZ2luYXRlZERhdGE8V2xjbU9wdGlvbj4pID0+IHtcbiAgICAgICAgdGhpcy5fcGFnaW5hdGVkRGF0YSA9IHBhZ2luYXRlZERhdGE7XG5cbiAgICAgICAgdGhpcy5wYWdpbmF0ZWRPcHRpb25zLnNldChwYWdpbmF0ZWREYXRhLmRhdGEpO1xuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGxvYWRNb3JlUGFnaW5hdGVkT3B0aW9ucygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX3BhZ2luYXRlZERhdGEgfHwgdGhpcy5fcGFnaW5hdGVkRGF0YS5jdXJyUGFnZSArIDEgPiB0aGlzLl9wYWdpbmF0ZWREYXRhLnRvdGFsUGFnZXMpIHJldHVybjtcblxuICAgIHRoaXMucXVlcnlQYXJhbXMucGFnZSsrO1xuXG4gICAgdGhpcy5mZXRjaFBhZ2luYXRlZE9wdGlvbnMhKHsgLi4udGhpcy5xdWVyeVBhcmFtcyB9KVxuICAgICAgLnBpcGUodW50aWxEZXN0cm95ZWQodGhpcyksIGZpcnN0KCkpXG4gICAgICAuc3Vic2NyaWJlKChwYWdpbmF0ZWREYXRhOiBQYWdpbmF0ZWREYXRhPFdsY21PcHRpb24+KSA9PiB7XG4gICAgICAgIHRoaXMuX3BhZ2luYXRlZERhdGEgPSBwYWdpbmF0ZWREYXRhO1xuXG4gICAgICAgIHRoaXMucGFnaW5hdGVkT3B0aW9ucy51cGRhdGUoKG9wdGlvbnM6IFdsY21PcHRpb25bXSkgPT4gWy4uLm9wdGlvbnMsIC4uLnBhZ2luYXRlZERhdGEuZGF0YV0pO1xuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZVNjcm9sbERvd24oKTogdm9pZCB7XG4gICAgY29uc3QgZWxlbWVudDogSFRNTEVsZW1lbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcubWF0LW1kYy1zZWxlY3QtcGFuZWwnKSE7XG5cbiAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgdGhpcy5zY3JvbGxEZXRlY3Rpb25BcGkub25TY3JvbGxlZERvd24oZWxlbWVudCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy56b25lLnJ1bigoKSA9PiB0aGlzLmxvYWRNb3JlUGFnaW5hdGVkT3B0aW9ucygpKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVTdGF0ZUNoYW5nZSgpOiB2b2lkIHtcbiAgICB0aGlzLnBhcmVudEZvcm1NZW1iZXIuc3RhdGVDaGFuZ2VzJC5waXBlKHVudGlsRGVzdHJveWVkKHRoaXMpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5fdmFsaWRhdG9yQ2hhbmdlZD8uKCk7XG5cbiAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgfSk7XG4gIH1cbn1cbiIsIjxtYXQtc2VsZWN0XG4gICNzZWxlY3RDb21wb25lbnRcbiAgW3ZhbHVlXT1cInZhbHVlKClcIlxuICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQoKVwiXG4gIFttdWx0aXBsZV09XCJtdWx0aXBsZVwiXG4gIFtkaXNhYmxlUmlwcGxlXT1cInRydWVcIlxuICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICBbaGlkZVNpbmdsZVNlbGVjdGlvbkluZGljYXRvcl09XCJ0cnVlXCJcbiAgW25nQ2xhc3NdPVwieyBmb2N1c2VkOiBzZWxlY3RDb21wb25lbnQuZm9jdXNlZCB9XCJcbiAgKHNlbGVjdGlvbkNoYW5nZSk9XCJzZWxlY3QoJGV2ZW50KVwiXG4gIFtjb21wYXJlV2l0aF09XCJjb21wYXJlV2l0aFwiXG4gIChvcGVuZWQpPVwicGFuZWxPcGVuZWQoKVwiXG4gIChjbG9zZWQpPVwicGFuZWxDbG9zZWQoKVwiXG4+XG4gIEBpZiAodHJpZ2dlclRlbXBsYXRlKCkpIHtcbiAgICA8bWF0LXNlbGVjdC10cmlnZ2VyPlxuICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgIHRyaWdnZXJUZW1wbGF0ZSgpITtcbiAgICAgICAgICBjb250ZXh0OiAkYW55KHsgJGltcGxpY2l0OiBzZWxlY3RDb21wb25lbnQuc2VsZWN0ZWQgfSlcbiAgICAgICAgXCJcbiAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICA8L21hdC1zZWxlY3QtdHJpZ2dlcj5cbiAgfVxuXG4gIDxtYXQtb3B0aW9uXG4gICAgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBjb21wdXRlZE9wdGlvbnMoKVwiXG4gICAgW3ZhbHVlXT1cInNlbGVjdE9wdGlvbkZvcm1hdCgpID09PSAnQ29tcGxldGVPcHRpb24nID8gb3B0aW9uIDogb3B0aW9uLnZhbHVlXCJcbiAgPlxuICAgIEBpZiAob3B0aW9uVGVtcGxhdGUoKSkge1xuICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgIG9wdGlvblRlbXBsYXRlKCk7XG4gICAgICAgICAgY29udGV4dDogJGFueSh7ICRpbXBsaWNpdDogb3B0aW9uIH0pXG4gICAgICAgIFwiXG4gICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgfSBAZWxzZSB7XG4gICAgICB7eyBvcHRpb24udmlld1ZhbHVlIH19XG4gICAgfVxuICA8L21hdC1vcHRpb24+XG48L21hdC1zZWxlY3Q+XG5cbjxkaXYgY2xhc3M9XCJ3bGNtLXNlbGVjdC1hcnJvd1wiPlxuICA8bmctY29udGFpbmVyXG4gICAgW3dsY21JY29uXT1cIldsY21JY29uTmFtZS5DSEVWUk9OX0RPV05cIlxuICAgIFt3bGNtSWNvblN0b3BQcm9wYWdhdGlvbl09XCJmYWxzZVwiXG4gID48L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuIl19
|
@@ -900,6 +900,7 @@ let WlcmSelectComponent = class WlcmSelectComponent {
|
|
900
900
|
this.disabled = signal(false);
|
901
901
|
this.WlcmIconName = WlcmIconName;
|
902
902
|
this._paginatedData = null;
|
903
|
+
this._previousValue = null;
|
903
904
|
this.computedOptions = computed(() => {
|
904
905
|
return this.paginated() ? this.paginatedOptions() : this.options();
|
905
906
|
});
|
@@ -937,17 +938,25 @@ let WlcmSelectComponent = class WlcmSelectComponent {
|
|
937
938
|
}
|
938
939
|
select(event) {
|
939
940
|
this.selected$.next();
|
941
|
+
this.matSelect.value = event.value;
|
940
942
|
this.validateSelectedOption(event.value)
|
941
943
|
.pipe(takeUntil(this.selected$))
|
942
944
|
.subscribe((canSelect) => {
|
943
945
|
if (!canSelect)
|
944
946
|
return this.revertPreviousValue();
|
945
|
-
this.
|
947
|
+
this.updateValue(event.value);
|
946
948
|
this._changed?.(event.value);
|
947
949
|
this._validatorChanged?.();
|
948
950
|
this.selectionChange.emit(event);
|
949
951
|
});
|
950
952
|
}
|
953
|
+
revertPreviousValue() {
|
954
|
+
this.matSelect.value = this._previousValue;
|
955
|
+
}
|
956
|
+
updateValue(value) {
|
957
|
+
this.value.set(value);
|
958
|
+
this._previousValue = value;
|
959
|
+
}
|
951
960
|
validateSelectedOption(value) {
|
952
961
|
return new Observable((observer) => {
|
953
962
|
const response = this.canSelect(value);
|
@@ -958,17 +967,6 @@ let WlcmSelectComponent = class WlcmSelectComponent {
|
|
958
967
|
});
|
959
968
|
});
|
960
969
|
}
|
961
|
-
revertPreviousValue() {
|
962
|
-
this.value.update((value) => {
|
963
|
-
if (this.multiple) {
|
964
|
-
if (value instanceof Array) {
|
965
|
-
return [...value];
|
966
|
-
}
|
967
|
-
return [];
|
968
|
-
}
|
969
|
-
return value;
|
970
|
-
});
|
971
|
-
}
|
972
970
|
panelOpened() {
|
973
971
|
this.opened.emit();
|
974
972
|
this.handleScrollDown();
|
@@ -983,7 +981,7 @@ let WlcmSelectComponent = class WlcmSelectComponent {
|
|
983
981
|
});
|
984
982
|
}
|
985
983
|
writeValue(value) {
|
986
|
-
this.
|
984
|
+
this.updateValue(value);
|
987
985
|
}
|
988
986
|
registerOnChange(callback) {
|
989
987
|
this._changed = callback;
|
@@ -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/checkbox-group/checkbox-group.component.ts","../../../../modules/forms/src/lib/forms/components/checkbox-group/checkbox-group.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 _scrollHeight: number = 0;\n\n private _scrollHeightChanged: boolean = false;\n\n constructor(\n private zone: NgZone,\n @Host() @Optional() private autocomplete: MatAutocomplete,\n ) {\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.setScrollHscrollHeight(panel.scrollHeight);\n\n fromEvent(panel, 'scroll')\n .pipe(takeUntil(this.autocomplete.closed))\n .subscribe(() => {\n if (this._scrollHeight !== panel.scrollHeight) {\n this.setScrollHscrollHeight(panel.scrollHeight);\n }\n\n if (panel.scrollHeight * 0.8 <= panel.scrollTop + panel.clientHeight && this._scrollHeightChanged) {\n this.zone.run(() => this.panelScrolled.emit());\n\n this._scrollHeightChanged = false;\n }\n });\n }\n\n private setScrollHscrollHeight(height: number): void {\n this._scrollHeight = height;\n\n this._scrollHeightChanged = 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 private _reloadOptions$: Subject<void> = new Subject();\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 reloadOptions(): void {\n this.queryParams.page = 1;\n\n this._reloadOptions$.next();\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 merge(this.control.valueChanges, this._reloadOptions$.pipe(map(() => this.control.value)))\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 {\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Inject,\n InputSignal,\n Optional,\n Output,\n forwardRef,\n input,\n} 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 value: InputSignal<string | undefined> = input();\n\n @Output() changed: EventEmitter<boolean> = new EventEmitter();\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 get checked(): boolean {\n return this.control.value;\n }\n\n set checked(value: boolean) {\n this.control.setValue(value);\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 {\n AfterContentInit,\n Component,\n Signal,\n WritableSignal,\n computed,\n contentChildren,\n effect,\n forwardRef,\n signal,\n} from '@angular/core';\nimport { WlcmCheckboxComponent } from '../checkbox/checkbox.component';\nimport { ControlValueAccessor, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors, Validator } from '@angular/forms';\nimport { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';\nimport { Observable, Subject, merge, takeUntil, tap } from 'rxjs';\n\n@UntilDestroy()\n@Component({\n selector: 'wlcm-checkbox-group',\n host: { class: 'wlcm-checkbox-group' },\n standalone: true,\n imports: [CommonModule],\n templateUrl: './checkbox-group.component.html',\n styleUrl: './checkbox-group.component.scss',\n providers: [\n { provide: NG_VALIDATORS, useExisting: forwardRef(() => WlcmCheckboxGroupComponent), multi: true },\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => WlcmCheckboxGroupComponent), multi: true },\n ],\n})\nexport class WlcmCheckboxGroupComponent implements AfterContentInit, ControlValueAccessor, Validator {\n checkboxes: Signal<readonly WlcmCheckboxComponent[]> = contentChildren(WlcmCheckboxComponent);\n\n private checkboxesMap: Signal<Map<string, WlcmCheckboxComponent>> = computed(() => {\n return new Map(this.checkboxes().map((checkbox: WlcmCheckboxComponent) => [checkbox.value()!, checkbox]));\n });\n\n private values: WritableSignal<Set<string>> = signal(new Set());\n\n private checkboxesListUpdated: Subject<void> = new Subject();\n\n private _changed?: (value: string[]) => void;\n\n private _touched?: () => void;\n\n private _validatorChanged?: () => void;\n\n constructor() {\n effect(() => this.handleCheckboxesToggle(this.checkboxes()));\n }\n\n ngAfterContentInit(): void {\n this.updateCheckboxes(this.values());\n }\n\n writeValue(value: string[]): void {\n this.values.set(new Set(value));\n\n if (this.checkboxes()) this.updateCheckboxes(this.values());\n }\n\n validate = (): ValidationErrors | null => null;\n\n registerOnChange(callback: (value: string[]) => 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 private updateControl(values: Set<string>): void {\n this._changed?.(Array.from(values.values()));\n\n this._touched?.();\n }\n\n private updateCheckboxes(values: Set<string>): void {\n const checkboxesMap: Map<string, WlcmCheckboxComponent> = this.checkboxesMap();\n\n for (const checkbox of checkboxesMap.values()) {\n checkbox.checked = values.has(checkbox.value()!);\n }\n }\n\n private handleCheckboxesToggle(checkboxes: readonly WlcmCheckboxComponent[]): void {\n this.checkboxesListUpdated.next();\n\n const handleCheck = (checkbox: WlcmCheckboxComponent) => {\n this.values.update((values: Set<string>) => {\n if (checkbox.checked) {\n values.add(checkbox.value()!);\n } else {\n values.delete(checkbox.value()!);\n }\n\n this.updateControl(values);\n\n return values;\n });\n };\n\n const changeHandlers: Observable<unknown>[] = Array.from(checkboxes.values()).map(\n (checkbox: WlcmCheckboxComponent) => {\n return checkbox.changed.asObservable().pipe(tap(() => handleCheck(checkbox)));\n },\n );\n\n merge(...changeHandlers)\n .pipe(untilDestroyed(this))\n .pipe(takeUntil(this.checkboxesListUpdated))\n .subscribe();\n }\n}\n","<ng-content select=\"wlcm-checkbox\"></ng-content>\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 NgZone,\n Optional,\n OutputEmitterRef,\n Signal,\n TemplateRef,\n ViewChild,\n WritableSignal,\n computed,\n effect,\n forwardRef,\n inject,\n input,\n output,\n signal,\n viewChildren,\n} from '@angular/core';\nimport {\n ControlValueAccessor,\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 {\n DEFAULT_QUERY_PARAMS,\n PaginatedData,\n QueryParams,\n ScrollDetectionApi,\n WlcmIconDirective,\n WlcmIconName,\n WlcmOption,\n WlcmSelectOptionFormat,\n} 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, Subject, Subscriber, first, of, switchMap, takeUntil } from 'rxjs';\nimport { IsOptionDisabledFn, WlcmCanSelectFn, WlcmSelectConfig, WlcmSelectValue } 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 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 @Input() fetchPaginatedOptions?: (params: QueryParams) => Observable<PaginatedData<WlcmOption>>;\n\n @Input() canSelect: WlcmCanSelectFn = (_: WlcmSelectValue) => true;\n\n @Input() queryParams: QueryParams = DEFAULT_QUERY_PARAMS;\n\n paginated: InputSignal<boolean> = input(false);\n\n options: InputSignal<WlcmOption[]> = input<WlcmOption[]>([]);\n\n paginatedOptions: WritableSignal<WlcmOption[]> = signal([]);\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 | MatOption[]> | undefined> = input();\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 value: WritableSignal<WlcmSelectValue | null> = signal(null);\n\n readonly disabled: WritableSignal<boolean> = signal(false);\n\n readonly WlcmIconName = WlcmIconName;\n\n private _changed?: (value: WlcmOption) => void;\n\n private _touched?: () => void;\n\n private _validatorChanged?: () => void;\n\n private _paginatedData: PaginatedData<WlcmOption> | null = null;\n\n computedOptions: Signal<WlcmOption[]> = computed(() => {\n return this.paginated() ? this.paginatedOptions() : this.options();\n });\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 private selected$: Subject<void> = new Subject();\n\n constructor(\n private zone: NgZone,\n private changeDetectorRef: ChangeDetectorRef,\n private scrollDetectionApi: ScrollDetectionApi,\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 () => {\n if (this.paginated()) this.loadPaginatedOptions();\n },\n { allowSignalWrites: true },\n );\n\n effect(() => {\n if (this.isOptionDisabled() && this.computedOptions().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 compareWith = (optionA: WlcmOption | string, optionB: WlcmOption | string): boolean => {\n return ((optionA as WlcmOption)?.value || optionA) === ((optionB as WlcmOption)?.value || optionB);\n };\n\n focus = (): void => this.matSelect.open();\n\n isFocused = (): boolean => this.isOpen;\n\n select(event: MatSelectChange): void {\n this.selected$.next();\n\n this.validateSelectedOption(event.value)\n .pipe(takeUntil(this.selected$))\n .subscribe((canSelect: boolean) => {\n if (!canSelect) return this.revertPreviousValue();\n\n this.value.set(event.value);\n\n this._changed?.(event.value);\n\n this._validatorChanged?.();\n\n this.selectionChange.emit(event);\n });\n }\n\n private validateSelectedOption(value: WlcmSelectValue): Observable<boolean> {\n return new Observable<boolean>((observer: Subscriber<boolean>) => {\n const response: Observable<boolean> | boolean = this.canSelect(value);\n\n const source: Observable<boolean> = response instanceof Observable ? response.pipe(first()) : of(response);\n\n source.subscribe((result: boolean) => {\n observer.next(result);\n observer.complete();\n });\n });\n }\n\n private revertPreviousValue(): void {\n this.value.update((value: WlcmSelectValue | null) => {\n if (this.multiple) {\n if (value instanceof Array) {\n return [...value] as WlcmOption[] | string[];\n }\n\n return [];\n }\n\n return value;\n });\n }\n\n protected panelOpened(): void {\n this.opened.emit();\n\n this.handleScrollDown();\n }\n\n protected panelClosed(): void {\n this.closed.emit();\n\n this._touched?.();\n }\n\n updateOptionsStatus(): void {\n this.matOptions().forEach((matOption: MatOption) => {\n matOption.disabled = this.isOptionDisabled()(matOption.value);\n });\n }\n\n writeValue(value: WlcmSelectValue): void {\n this.value.set(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 this.disabled.set(isDisabled);\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 loadPaginatedOptions(): void {\n this.fetchPaginatedOptions!({ ...this.queryParams, page: 1 })\n .pipe(untilDestroyed(this), first())\n .subscribe((paginatedData: PaginatedData<WlcmOption>) => {\n this._paginatedData = paginatedData;\n\n this.paginatedOptions.set(paginatedData.data);\n });\n }\n\n private loadMorePaginatedOptions(): void {\n if (!this._paginatedData || this._paginatedData.currPage + 1 > this._paginatedData.totalPages) return;\n\n this.queryParams.page++;\n\n this.fetchPaginatedOptions!({ ...this.queryParams })\n .pipe(untilDestroyed(this), first())\n .subscribe((paginatedData: PaginatedData<WlcmOption>) => {\n this._paginatedData = paginatedData;\n\n this.paginatedOptions.update((options: WlcmOption[]) => [...options, ...paginatedData.data]);\n });\n }\n\n private handleScrollDown(): void {\n const element: HTMLElement = document.querySelector('.mat-mdc-select-panel')!;\n\n this.zone.runOutsideAngular(() => {\n this.scrollDetectionApi.onScrolledDown(element).subscribe(() => {\n this.zone.run(() => this.loadMorePaginatedOptions());\n });\n });\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-select\n #selectComponent\n [value]=\"value()\"\n [disabled]=\"disabled()\"\n [multiple]=\"multiple\"\n [disableRipple]=\"true\"\n [placeholder]=\"placeholder\"\n [hideSingleSelectionIndicator]=\"true\"\n [ngClass]=\"{ focused: selectComponent.focused }\"\n (selectionChange)=\"select($event)\"\n [compareWith]=\"compareWith\"\n (opened)=\"panelOpened()\"\n (closed)=\"panelClosed()\"\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 computedOptions()\"\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 { WlcmCheckboxComponent, WlcmCheckboxGroupComponent } from './components';\nimport { WlcmAutocompleteSuffixComponent } from './components/partials';\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 WlcmCheckboxGroupComponent,\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","i2.WlcmSelectInputBinderDirective","i3","i4","i5"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;MAYa,kBAAkB,CAAA;8GAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAlB,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,YAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECZ/B,6BACA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDKY,YAAY,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;2FAMX,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAT9B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,EACV,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,CAAC,EAAA,IAAA,EACjB,EAAE,KAAK,EAAE,YAAY,EAAE,EAGZ,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,6BAAA,EAAA,CAAA;;;MELpC,uBAAuB,CAAA;AADpC,IAAA,WAAA,GAAA;AAEmB,QAAA,IAAA,CAAA,cAAc,GAAkB,IAAI,OAAO,EAAE,CAAC;AAEtD,QAAA,IAAA,CAAA,aAAa,GAAqB,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;AAK/E,KAAA;IAHC,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;KAC5B;8GAPU,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,cADV,MAAM,EAAA,CAAA,CAAA,EAAA;;2FACnB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBADnC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAA;;;MCDrB,WAAW,GAAmC,IAAI,cAAc,CAAC,aAAa,EAAE;MAEhF,oBAAoB,GAAgC,IAAI,cAAc,CAAC,sBAAsB,EAAE;AAC1G,IAAA,UAAU,EAAE,MAAM;AAClB,IAAA,OAAO,EAAE,MAAM,IAAI,GAAG,EAAE;AACzB,CAAA;;MCJY,UAAU,GAAoC,IAAI,cAAc,CAAC,YAAY,EAAE;MAE/E,iBAAiB,GAAoC,IAAI,cAAc,CAAC,mBAAmB,EAAE;MAE7F,eAAe,GAAkC,IAAI,cAAc,CAAC,iBAAiB;;MCLrF,kBAAkB,GAAqC,IAAI,cAAc,CAAC,oBAAoB;;ACEpG,MAAM,mBAAmB,GAAW;;ACA3C,MAAM,sBAAsB,GAA0C;AACpE,IAAA,UAAU,EAAE,CAAC;AACb,IAAA,UAAU,EAAE,CAAC;AACb,IAAA,QAAQ,EAAE,CAAC;AACX,IAAA,IAAI,EAAE,EAAE;CACT,CAAC;AAEF,MACM,oBAAoB,CAAA;AAKxB,IAAA,WAAA,GAAA;QAJQ,IAAoB,CAAA,oBAAA,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC;AAEpE,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;AAG3F,QAAA,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;AACjC,YAAA,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;SACtC;KACF;AAED,IAAA,kBAAkB,CAAC,KAAa,EAAA;AAC9B,QAAA,OAAO,IAAI,UAAU,CAAC,CAAC,UAA6D,KAAI;AACtF,YAAA,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;gBACtB,UAAU,CAAC,IAAI,CAAC,EAAE,GAAG,sBAAsB,EAAE,CAAC,CAAC;AAE/C,gBAAA,OAAO,UAAU,CAAC,QAAQ,EAAE,CAAC;aAC9B;AAED,YAAA,MAAM,OAAO,GAA6C,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AAE3E,YAAA,IAAI,CAAC,oBAAoB,CAAC,mBAAmB,CAAC,OAAO,EAAE,CAAC,WAAW,EAAE,MAAM,KAAI;AAC7E,gBAAA,MAAM,MAAM,GAA0C,EAAE,GAAG,sBAAsB,EAAE,CAAC;AAEpF,gBAAA,IAAI,MAAM,KAAK,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,EAAE,EAAE;oBACxD,MAAM,CAAC,IAAI,GAAG,WAAY,CAAC,GAAG,CAAC,CAAC,UAAqD,KAAI;AACvF,wBAAA,OAAO,IAAI,sBAAsB,CAC/B,UAAU,CAAC,QAAQ,EACnB,UAAU,CAAC,WAAW,EACtB,UAAU,CAAC,WAAW,EACtB,UAAU,CACX,CAAC;AACJ,qBAAC,CAAC,CAAC;iBACJ;AAED,gBAAA,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAExB,UAAU,CAAC,QAAQ,EAAE,CAAC;AACxB,aAAC,CAAC,CAAC;AACL,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,IAAI,aAAa,GAAA;QACf,OAAO,IAAI,CAAC,cAAc,CAAC;KAC5B;AAED,IAAA,IAAI,mBAAmB,GAAA;QACrB,OAAO,IAAI,CAAC,oBAAoB,CAAC;KAClC;8GAhDG,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;kHAApB,oBAAoB,EAAA,CAAA,CAAA,EAAA;;2FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBADzB,UAAU;;MAwDW,aAAa,CAAA;8GAAb,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;kHAAb,aAAa,EAAA,UAAA,EAHrB,MAAM,EAAA,QAAA,EACR,oBAAoB,EAAA,CAAA,CAAA,EAAA;;2FAEV,aAAa,EAAA,UAAA,EAAA,CAAA;kBAJlC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AAClB,oBAAA,QAAQ,EAAE,oBAAoB;AAC/B,iBAAA,CAAA;;;MC/DY,SAAS,GAA6B,IAAI,cAAc,CACnE,WAAW,EACX;AAEW,MAAA,kBAAkB,GAAa;AAC1C,IAAA,OAAO,EAAE,SAAS;AAClB,IAAA,QAAQ,EAAE,uBAAuB;EACjC;MAEW,iBAAiB,GAC5B,IAAI,cAAc,CAAC,mBAAmB,EAAE;AAE7B,MAAA,0BAA0B,GAAa;AAClD,IAAA,OAAO,EAAE,iBAAiB;AAC1B,IAAA,UAAU,EAAE,MAAM,MAAM,CAAC,SAAS,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;;MCZ5D,qCAAqC,CAAA;AAChD,IAAA,WAAA,CAAmB,UAAmC,EAAA;QAAnC,IAAU,CAAA,UAAA,GAAV,UAAU,CAAyB;KAAI;8GAD/C,qCAAqC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAArC,qCAAqC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gCAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAArC,qCAAqC,EAAA,UAAA,EAAA,CAAA;kBAJjD,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,gCAAgC;AAC1C,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA,CAAA;;;MCSY,gBAAgB,CAAA;AAK3B,IAAA,WAAA,CACU,iBAAoC,EACf,MAAsB,EACb,cAA2B,EAAA;QAFzD,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;QACf,IAAM,CAAA,MAAA,GAAN,MAAM,CAAgB;QACb,IAAc,CAAA,cAAA,GAAd,cAAc,CAAa;AAP3D,QAAA,IAAA,CAAA,QAAQ,GAAkB,IAAI,OAAO,EAAE,CAAC;QAEhD,IAAY,CAAA,YAAA,GAAkB,IAAI,CAAC;KAM/B;AAEJ,IAAA,SAAS,CAAC,OAAoB,EAAA;AAC5B,QAAA,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;AAElC,QAAA,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAExC,OAAO,IAAI,CAAC,YAAY,CAAC;KAC1B;AAEO,IAAA,kBAAkB,CAAC,MAA+B,EAAA;AACxD,QAAA,IAAI,CAAC,MAAM;YAAE,OAAO;QAEpB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CACzB,CAAC,GAAW,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,OAAO,MAAM,CAAC,GAAG,CAAC,CACpD,CAAC;QAEF,MAAM,WAAW,GAAa,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAEjE,MAAM,YAAY,GAAuB,WAAW,CAAC,IAAI,CAAC,CAAC,IAAY,KACrE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAC9B,CAAC;QAEF,MAAM,WAAW,GAAW,YAAY,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC;QAE3D,IAAI,WAAW,EAAE;AACf,YAAA,IAAI,CAAC,YAAY,GAAI,IAAI,CAAC,MAAM,CAAC,WAAW,CAAqB,GAC/D,MAAM,CAAC,WAAW,CAAC,CACpB,CAAC;SACH;KACF;AAEO,IAAA,mBAAmB,CAAC,OAAoB,EAAA;AAC9C,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;AAErB,QAAA,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;AAClE,YAAA,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AAExC,YAAA,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC;AACxC,SAAC,CAAC,CAAC;KACJ;8GAjDU,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAOjB,WAAW,EAAA,EAAA,EAAA,KAAA,EACX,oBAAoB,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;4GARnB,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,cAAA,EAAA,IAAA,EAAA,KAAA,EAAA,CAAA,CAAA,EAAA;;2FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAL5B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,cAAc;AACpB,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE,KAAK;AACZ,iBAAA,CAAA;;0BAQI,MAAM;2BAAC,WAAW,CAAA;;0BAClB,MAAM;2BAAC,oBAAoB,CAAA;;;MChBnB,4BAA4B,CAAA;AAJzC,IAAA,WAAA,GAAA;AAKqC,QAAA,IAAA,CAAA,YAAY,GAAG,CAAC,KAAiB,KAAI;YACtE,KAAK,CAAC,eAAe,EAAE,CAAC;AAC1B,SAAC,CAAC;AACH,KAAA;8GAJY,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAA5B,4BAA4B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAA5B,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAJxC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,uBAAuB;AACjC,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA,CAAA;8BAEoC,YAAY,EAAA,CAAA;sBAA9C,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAA;;;MCDtB,4BAA4B,CAAA;8GAA5B,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAA5B,4BAA4B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAA5B,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAJxC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,uBAAuB;AACjC,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA,CAAA;;;ACqCY,IAAA,sBAAsB,GAA5B,MAAM,sBAAsB,CAAA;AAmBjC,IAAA,IAA6C,SAAS,GAAA;QACpD,OAAO,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,KAAK,CAAC;KAC5C;AAED,IAAA,IAA8C,UAAU,GAAA;QACtD,OAAO,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;KACxD;AAED,IAAA,IAA6C,SAAS,GAAA;AACpD,QAAA,OAAO,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC;KAC9B;AAED,IAAA,IAA6C,SAAS,GAAA;AACpD,QAAA,OAAO,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC;KAC9B;AAED,IAAA,IAA8C,UAAU,GAAA;AACtD,QAAA,OAAO,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC;KAC/B;IAED,WAGU,CAAA,gBAAiC,EACjC,iBAAoC,EAAA;QADpC,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAiB;QACjC,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;QA1CrC,IAAoB,CAAA,oBAAA,GAAY,IAAI,CAAC;KA2C1C;IAEJ,eAAe,GAAA;QACb,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;AAC3C,YAAA,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;SAC9E;QAED,IAAI,CAAC,kBAAkB,EAAE,CAAC;KAC3B;IAED,KAAK,GAAA;AACH,QAAA,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,UAAU;YAAE,OAAO;AAE9C,QAAA,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC;KACxB;AAED,IAAA,IAAI,OAAO,GAAA;AACT,QAAA,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,OAAO,IAAI,IAAI,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;KAC5E;AAED,IAAA,IAAI,cAAc,GAAA;QAChB,OAAO,IAAI,CAAC,eAAe,EAAE,UAAU,IAAK,IAAI,CAAC,gBAA4C,CAAC;KAC/F;IAEO,kBAAkB,GAAA;AACxB,QAAA,MAAM,MAAM,GAA0B,IAAI,CAAC,aAAa,CAAC;AAEzD,QAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACzB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;SAClD;QAED,KAAK,CAAC,GAAG,MAAM,CAAC;AACb,aAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;aAC1B,SAAS,CAAC,MAAM,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC,CAAC;KAC3D;AAED,IAAA,IAAY,QAAQ,GAAA;AAClB,QAAA,OAAO,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC;KAC9B;AAED,IAAA,IAAY,aAAa,GAAA;QACvB,MAAM,MAAM,GAA0B,EAAE,CAAC;AAEzC,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;SACxD;AAED,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;SACzC;AAED,QAAA,OAAO,MAAM,CAAC;KACf;AAhGU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,kBAyCvB,iBAAiB,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAzChB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,EALtB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,0BAAA,EAAA,gBAAA,EAAA,2BAAA,EAAA,iBAAA,EAAA,0BAAA,EAAA,gBAAA,EAAA,0BAAA,EAAA,gBAAA,EAAA,2BAAA,EAAA,iBAAA,EAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,EAAA,SAAA,EAAA;YACT,0BAA0B;AAC1B,YAAA,EAAE,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,UAAU,CAAC,MAAM,sBAAsB,CAAC,EAAE;AACpF,SAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAKa,SAAS,EAET,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,gBAAgB,4EAEhB,UAAU,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAEV,4BAA4B,EAE5B,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,4BAA4B,EAE5B,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,qCAAqC,sKCvDrD,ozBA0BA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDMY,YAAY,EAAE,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,kBAAkB,kDAAE,gBAAgB,EAAA,IAAA,EAAA,cAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;AAUjD,sBAAsB,GAAA,UAAA,CAAA;AAdlC,IAAA,YAAY,EAAE;6CAyDgB,iBAAiB,CAAA,CAAA;AA3CnC,CAAA,EAAA,sBAAsB,CAiGlC,CAAA;2FAjGY,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAblC,SAAS;+BACE,iBAAiB,EAAA,UAAA,EACf,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,EAAE,kBAAkB,EAAE,gBAAgB,CAAC,QACvD,EAAE,KAAK,EAAE,iBAAiB,EAAE,mBAGjB,uBAAuB,CAAC,MAAM,EACpC,SAAA,EAAA;wBACT,0BAA0B;AAC1B,wBAAA,EAAE,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,UAAU,CAAC,MAA4B,sBAAA,CAAC,EAAE;AACpF,qBAAA,EAAA,QAAA,EAAA,ozBAAA,EAAA,CAAA;;0BA0CE,QAAQ;;0BACR,MAAM;2BAAC,iBAAiB,CAAA;yEAxClB,oBAAoB,EAAA,CAAA;sBAA5B,KAAK;gBAEkD,SAAS,EAAA,CAAA;sBAAhE,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,SAAS,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAA;gBAEiB,gBAAgB,EAAA,CAAA;sBAA9E,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,gBAAgB,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAA;gBAEnB,SAAS,EAAA,CAAA;sBAA1C,YAAY;uBAAC,UAAU,CAAA;gBAE8B,MAAM,EAAA,CAAA;sBAA3D,YAAY;uBAAC,4BAA4B,CAAA;gBAEY,MAAM,EAAA,CAAA;sBAA3D,YAAY;uBAAC,4BAA4B,CAAA;gBAGhC,eAAe,EAAA,CAAA;sBADxB,YAAY;uBAAC,qCAAqC,CAAA;gBAIzC,gBAAgB,EAAA,CAAA;sBADzB,SAAS;uBAAC,kBAAkB,CAAA;gBAGgB,SAAS,EAAA,CAAA;sBAArD,WAAW;uBAAC,0BAA0B,CAAA;gBAIO,UAAU,EAAA,CAAA;sBAAvD,WAAW;uBAAC,2BAA2B,CAAA;gBAIK,SAAS,EAAA,CAAA;sBAArD,WAAW;uBAAC,0BAA0B,CAAA;gBAIM,SAAS,EAAA,CAAA;sBAArD,WAAW;uBAAC,0BAA0B,CAAA;gBAIO,UAAU,EAAA,CAAA;sBAAvD,WAAW;uBAAC,2BAA2B,CAAA;;;AE7EnC,MAAM,2BAA2B,GAAW;;MCsBtC,kBAAkB,CAAA;AAC7B,IAAA,WAAA,CAAoB,WAAoC,EAAA;QAApC,IAAW,CAAA,WAAA,GAAX,WAAW,CAAyB;AAQxD,QAAA,IAAA,CAAA,KAAK,GAAG,MAAY,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;AAE3D,QAAA,IAAA,CAAA,SAAS,GAAG,MAAe,IAAI,CAAC,WAAW,CAAC,aAAa,KAAK,QAAQ,CAAC,aAAa,CAAC;QAErF,IAAM,CAAA,MAAA,GAAwB,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QAEjF,IAAK,CAAA,KAAA,GAAwB,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;AAb7E,QAAA,MAAM,OAAO,GAAgB,WAAW,CAAC,aAAa,CAAC;AAEvD,QAAA,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,IAAI,OAAO,CAAC,QAAQ,KAAK,UAAU,EAAE;AACnE,YAAA,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;SACpD;KACF;8GAPU,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kBAAkB,EAdlB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,aAAA,EAAA,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,UAAU;gBACnB,UAAU,EAAE,MAAK;AACf,oBAAA,MAAM,KAAK,GAAuB,MAAM,CAAC,kBAAkB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AAE7E,oBAAA,MAAM,MAAM,GAA2B,MAAM,CAAC,iBAAiB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;oBAEjG,OAAO,EAAE,GAAG,EAAE,OAAO,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;iBACxD;AACF,aAAA;AACF,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAGU,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAhB9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,aAAa;AACvB,oBAAA,SAAS,EAAE;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,UAAU;4BACnB,UAAU,EAAE,MAAK;gCACf,MAAM,KAAK,GAAuB,MAAM,CAAqB,kBAAA,EAAA,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AAE7E,gCAAA,MAAM,MAAM,GAA2B,MAAM,CAAC,iBAAiB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;gCAEjG,OAAO,EAAE,GAAG,EAAE,OAAO,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;6BACxD;AACF,yBAAA;AACF,qBAAA;AACD,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA,CAAA;;;MCTY,kBAAkB,CAAA;AAT/B,IAAA,WAAA,GAAA;QAUW,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;AAKpC,KAAA;AAHC,IAAA,IAAmC,UAAU,GAAA;QAC3C,OAAO,IAAI,CAAC,QAAQ,CAAC;KACtB;8GALU,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAlB,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,EAAA,cAAA,EAAA,YAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECZ/B,6EAGA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDGY,YAAY,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;2FAMX,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAT9B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,EACV,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,CAAC,EAAA,IAAA,EACjB,EAAE,KAAK,EAAE,YAAY,EAAE,EAGZ,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,6EAAA,EAAA,CAAA;8BAGtC,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAE6B,UAAU,EAAA,CAAA;sBAA5C,WAAW;uBAAC,gBAAgB,CAAA;;;AELxB,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB,CAAA;IAOhC,WACU,CAAA,IAAY,EACQ,YAA6B,EAAA;QADjD,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAQ;QACQ,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAiB;AARjD,QAAA,IAAA,CAAA,aAAa,GAAuB,IAAI,YAAY,EAAE,CAAC;QAEzD,IAAa,CAAA,aAAA,GAAW,CAAC,CAAC;QAE1B,IAAoB,CAAA,oBAAA,GAAY,KAAK,CAAC;QAM5C,IAAI,CAAC,eAAe,EAAE,CAAC;KACxB;IAEO,eAAe,GAAA;QACrB,IAAI,CAAC,YAAY,CAAC,MAAM;AACrB,aAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;AAC1B,aAAA,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;AAC/B,aAAA,SAAS,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;KAC/E;IAEO,eAAe,GAAA;QACrB,MAAM,KAAK,GAAgB,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,aAAa,CAAC;AAEjE,QAAA,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;AAEhD,QAAA,SAAS,CAAC,KAAK,EAAE,QAAQ,CAAC;aACvB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;aACzC,SAAS,CAAC,MAAK;YACd,IAAI,IAAI,CAAC,aAAa,KAAK,KAAK,CAAC,YAAY,EAAE;AAC7C,gBAAA,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;aACjD;AAED,YAAA,IAAI,KAAK,CAAC,YAAY,GAAG,GAAG,IAAI,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,YAAY,IAAI,IAAI,CAAC,oBAAoB,EAAE;AACjG,gBAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC;AAE/C,gBAAA,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;aACnC;AACH,SAAC,CAAC,CAAC;KACN;AAEO,IAAA,sBAAsB,CAAC,MAAc,EAAA;AAC3C,QAAA,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC;AAE5B,QAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;KAClC;8GA7CU,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,IAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,OAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;AAArB,qBAAqB,GAAA,UAAA,CAAA;AALjC,IAAA,YAAY,EAAE;qCAaG,MAAM;QACsB,eAAe,CAAA,CAAA;AAThD,CAAA,EAAA,qBAAqB,CA8CjC,CAAA;2FA9CY,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAJjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,oBAAoB;AAC9B,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA,CAAA;;0BAUI,IAAI;;0BAAI,QAAQ;yCART,aAAa,EAAA,CAAA;sBAAtB,MAAM;;;MCJa,gBAAgB,CAAA;8GAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAhB,gBAAgB,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBADrC,SAAS;;;ACiEV,MAAMC,aAAW,GAAW,yBAAyB,CAAC;AAmC/C,IAAM,yBAAyB,GAA/B,MAAM,yBACX,SAAQ,gBAAgB,CAAA;AAyDxB,IAAA,WAAA,CAA6C,SAAwB,EAAA;AACnE,QAAA,KAAK,EAAE,CAAC;QADmC,IAAS,CAAA,SAAA,GAAT,SAAS,CAAe;QAlD5D,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;QAE1B,IAAW,CAAA,WAAA,GAAW,EAAE,CAAC;AAElC,QAAA,IAAA,CAAA,kBAAkB,GAAwC,KAAK,CAAyB,WAAW,CAAC,CAAC;QAErG,IAAiB,CAAA,iBAAA,GAA+E,KAAK,EAAE,CAAC;QAExG,IAAQ,CAAA,QAAA,GAA4C,MAAM,EAAE,CAAC;AAEpD,QAAA,IAAA,CAAA,OAAO,GAAuC,IAAI,WAAW,CAAC,EAAE,CAAC,CAAC;AAE1D,QAAA,IAAA,CAAA,UAAU,GAAkB,IAAI,OAAO,EAAE,CAAC;AAE1C,QAAA,IAAA,CAAA,SAAS,GAA8B,IAAI,eAAe,CAAW,EAAE,CAAC,CAAC;AAEvE,QAAA,IAAA,CAAA,QAAQ,GAAyB,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;AAE/D,QAAA,IAAA,CAAA,OAAO,GAAkB,IAAI,OAAO,EAAE,CAAC;AAEzC,QAAA,IAAA,CAAA,aAAa,GAAsC,IAAI,eAAe,CAAC,KAAyB,CAAC,CAAC;AAElG,QAAA,IAAA,CAAA,YAAY,GAAsC,IAAI,eAAe,CAAC,KAAyB,CAAC,CAAC;AAEjG,QAAA,IAAA,CAAA,SAAS,GAA6B,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC;AAElF,QAAA,IAAA,CAAA,MAAM,GAAwB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAA2B,KAAK,MAAM,CAAC,CAAC,CAAC;AAE1G,QAAA,IAAA,CAAA,KAAK,GAAwB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAA2B,KAAK,MAAM,CAAC,CAAC,CAAC;AAExG,QAAA,IAAA,CAAA,QAAQ,GAAwB,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;QAEtD,IAAW,CAAA,WAAA,GAAgB,EAAE,GAAG,oBAAoB,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;QAQlE,IAAc,CAAA,cAAA,GAAiC,IAAI,CAAC;AAEpD,QAAA,IAAA,CAAA,eAAe,GAAkB,IAAI,OAAO,EAAE,CAAC;QAWrD,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAE3B,IAAI,CAAC,yBAAyB,EAAE,CAAC;KAClC;IAED,QAAQ,GAAA;QACN,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,SAAS,EAAE,CAAC;KAChD;IAED,eAAe,GAAA;AACb,QAAA,MAAM,SAAS,GAAe,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC;AAE5D,QAAA,MAAM,MAAM,GAA0B,IAAI,qBAAqB,CAAC,SAAS,CAAC,CAAC;AAE3E,QAAA,IAAI,CAAC,mBAAmB,CAAC,WAAW,GAAG,MAAM,CAAC;QAE9C,IAAI,CAAC,wBAAwB,EAAE,CAAC;KACjC;AAED,IAAA,WAAW,CAAC,KAAsB,EAAA;AAChC,QAAA,IAAI,KAAK,YAAY,MAAM,EAAE;YAC3B,OAAO,KAAK,CAAC,SAAS,CAAC;SACxB;AAED,QAAA,OAAO,KAAK,CAAC;KACd;IAED,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;KACzC;IAED,SAAS,GAAA;AACP,QAAA,OAAO,IAAI,CAAC,YAAY,EAAE,aAAa,KAAK,QAAQ,CAAC,aAAa,IAAI,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC;KACjG;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;KACxB;AAED,IAAA,UAAU,CAAC,KAA4B,EAAA;AACrC,QAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;KAC9B;AAED,IAAA,gBAAgB,CAAC,QAA0D,EAAA;AACzE,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;KAC1B;AAED,IAAA,iBAAiB,CAAC,QAAoB,EAAA;AACpC,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;KAC1B;AAED,IAAA,gBAAgB,CAAC,UAAmB,EAAA;QAClC,IAAI,UAAU,EAAE;AACd,YAAA,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;SAC/B;AAED,QAAA,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;KACvB;IAED,aAAa,GAAA;AACX,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC,CAAC;AAE1B,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;KAC7B;IAED,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM;AAAE,YAAA,IAAI,CAAC,QAAQ,IAAI,CAAC;QAEjD,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC;KAC3E;AAED,IAAA,QAAQ,CAAC,OAAwB,EAAA;QAC/B,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;AACxB,YAAA,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,YAAY,MAAM;AAAE,gBAAA,OAAO,IAAI,CAAC;AAEtD,YAAA,OAAO,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;SACjE;AAED,QAAA,OAAO,IAAI,CAAC;KACb;AAED,IAAA,yBAAyB,CAAC,EAAc,EAAA;AACtC,QAAA,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC;KAC9B;AAEO,IAAA,WAAW,CAAC,MAAmB,EAAA;AACrC,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE1B,OAAO,IAAI,CAAC,cAAc,CAAC,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CACrD,GAAG,CAAC,CAAC,aAAoC,KAAI;AAC3C,YAAA,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;YAEpC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;AAExC,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC5B,CAAC,CACH,CAAC;KACH;IAEO,mBAAmB,GAAA;AACzB,QAAA,IAAI,CAAC,UAAU;AACZ,aAAA,IAAI,CACH,SAAS,CAAC,MAAK;AACb,YAAA,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,GAAG,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE;AAC7F,gBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;AAExB,gBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAE1B,gBAAA,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAC/C,GAAG,CAAC,CAAC,aAAoC,KAAI;AAC3C,oBAAA,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;AAEpC,oBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;AAEtE,oBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;iBAC5B,CAAC,CACH,CAAC;aACH;AAED,YAAA,OAAO,KAAK,CAAC;AACf,SAAC,CAAC,CACH;AACA,aAAA,SAAS,EAAE,CAAC;KAChB;IAEO,yBAAyB,GAAA;QAC/B,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;AACvF,aAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;AAC1B,aAAA,IAAI,CACH,MAAM,CAAC,CAAC,KAA4B,KAAI;AACtC,YAAA,IAAI,MAAM,GAA0B,KAAK,IAAI,EAAE,CAAC;YAEhD,IAAI,KAAK,YAAY,MAAM,IAAI,IAAI,CAAC,kBAAkB,EAAE,KAAK,WAAW;AAAE,gBAAA,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC;AAE/F,YAAA,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,CAAC;AAExB,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAE3B,YAAA,OAAO,EAAE,KAAK,YAAY,MAAM,CAAC,CAAC;AACpC,SAAC,CAAC,CACH;AACA,aAAA,IAAI,CACH,SAAS,CAAC,CAAC,KAA4B,KACrC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,KAAe,EAAE,CAAC,CAAC,CAAC,CACpG,CACF;AACA,aAAA,SAAS,EAAE,CAAC;KAChB;IAEO,wBAAwB,GAAA;AAC9B,QAAA,MAAM,MAAM,GAAG,MAAK,GAAG,CAAC;AAExB,QAAA,MAAM,UAAU,GAAsB,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;AAE1F,QAAA,MAAM,SAAS,GAAsB,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;QAExF,MAAM,gBAAgB,GAA0B,CAAC,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAEvF,MAAM,eAAe,GAA0B,CAAC,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;AAErF,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,gBAAgB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAEtE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,eAAe,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC;KAClG;AAhOU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,yBAAyB,kBA0DhB,eAAe,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AA1DxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,yBAAyB,EAdzB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,kBAAA,EAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,mBAAA,EAAA,EAAA,SAAA,EAAA;YACT,EAAE,OAAO,EAAE,gCAAgC,EAAE,QAAQ,EAAE,EAAE,iBAAiB,EAAEA,aAAW,EAAE,EAAE;AAC3F,YAAA,EAAE,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,UAAU,CAAC,MAAM,yBAAyB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE;AACrG,YAAA,EAAE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,CAAC,MAAM,yBAAyB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE;AACjG,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;gBAC1B,UAAU,EAAE,MAAK;AACf,oBAAA,MAAM,YAAY,GAAG,MAAM,CAAC,yBAAyB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;oBAEvE,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,EAAE,CAAC;iBACrC;AACF,aAAA;SACF,EAsDU,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,UAAU,2BAAU,UAAU,EAAA,EAAA,EAAA,YAAA,EAAA,qBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAE9B,sBAAsB,EAEtB,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,eAAe,uGClK5B,w8BAoCA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,ED4CI,YAAY,EACZ,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,qBAAqB,61BACrB,qBAAqB,EAAA,QAAA,EAAA,oBAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACrB,mBAAmB,EAGnB,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,kBAAkB,wDAClB,KAAK,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,eAAA,EAAA,eAAA,EAAA,YAAA,EAAA,eAAA,EAAA,qBAAA,EAAA,sBAAA,EAAA,mBAAA,EAAA,sBAAA,EAAA,kBAAA,EAAA,qBAAA,EAAA,aAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;AAmBI,yBAAyB,GAAA,UAAA,CAAA;AAjCrC,IAAA,YAAY,EAAE;;AAiCF,CAAA,EAAA,yBAAyB,CAiOrC,CAAA;2FAjOY,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAhCrC,SAAS;+BACE,mBAAmB,EAAA,QAAA,EACnB,kBAAkB,EAAA,IAAA,EACtB,EAAE,KAAK,EAAE,mBAAmB,EAAE,EACxB,UAAA,EAAA,IAAI,EACP,OAAA,EAAA;wBACP,YAAY;wBACZ,qBAAqB;wBACrB,qBAAqB;wBACrB,mBAAmB;wBACnB,sBAAsB;wBACtB,kBAAkB;wBAClB,kBAAkB;wBAClB,KAAK;qBACN,EAGgB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACpC,SAAA,EAAA;wBACT,EAAE,OAAO,EAAE,gCAAgC,EAAE,QAAQ,EAAE,EAAE,iBAAiB,EAAEA,aAAW,EAAE,EAAE;AAC3F,wBAAA,EAAE,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,UAAU,CAAC,+BAA+B,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE;AACrG,wBAAA,EAAE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,CAAC,+BAA+B,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE;AACjG,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;4BAC1B,UAAU,EAAE,MAAK;gCACf,MAAM,YAAY,GAAG,MAAM,CAA4B,yBAAA,EAAA,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;gCAEvE,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,EAAE,CAAC;6BACrC;AACF,yBAAA;AACF,qBAAA,EAAA,QAAA,EAAA,w8BAAA,EAAA,CAAA;;0BA4DY,MAAM;2BAAC,eAAe,CAAA;yCAtD1B,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBAEG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBAEG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAEG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBA0C8C,YAAY,EAAA,CAAA;sBAA/D,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,UAAU,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAA;gBAEA,mBAAmB,EAAA,CAAA;sBAA7D,SAAS;uBAAC,sBAAsB,CAAA;gBAEG,YAAY,EAAA,CAAA;sBAA/C,SAAS;uBAAC,eAAe,CAAA;;;AE1Hf,IAAA,qBAAqB,GAA3B,MAAM,qBAAqB,CAAA;IAahC,WACU,CAAA,iBAAoC,EACG,gBAAiC,EAAA;QADxE,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;QACG,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAiB;QAdlF,IAAK,CAAA,KAAA,GAAoC,KAAK,EAAE,CAAC;AAEvC,QAAA,IAAA,CAAA,OAAO,GAA0B,IAAI,YAAY,EAAE,CAAC;AAQpD,QAAA,IAAA,CAAA,OAAO,GAAgB,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC;AAuBxD,QAAA,IAAA,CAAA,QAAQ,GAAG,MAA+B,IAAI,CAAC;AAjB7C,QAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACzB,IAAI,CAAC,iBAAiB,EAAE,CAAC;SAC1B;KACF;AAED,IAAA,YAAY,CAAC,KAAwB,EAAA;QACnC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAEjC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;AAE/B,QAAA,IAAI,CAAC,QAAQ,IAAI,CAAC;KACnB;AAED,IAAA,UAAU,CAAC,KAAc,EAAA;AACvB,QAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;KAC9B;AAID,IAAA,gBAAgB,CAAC,QAAkC,EAAA;AACjD,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;KAC1B;AAED,IAAA,iBAAiB,CAAC,QAAoB,EAAA;AACpC,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;KAC1B;AAED,IAAA,yBAAyB,CAAC,QAAoB,EAAA;AAC5C,QAAA,IAAI,CAAC,iBAAiB,GAAG,QAAQ,CAAC;KACnC;AAED,IAAA,gBAAgB,CAAC,UAAmB,EAAA;QAClC,IAAI,UAAU,EAAE;AACd,YAAA,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;SAC/B;AAED,QAAA,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;KACvB;AAED,IAAA,IAAI,OAAO,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;KAC3B;IAED,IAAI,OAAO,CAAC,KAAc,EAAA;AACxB,QAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;KAC9B;IAEO,iBAAiB,GAAA;AACvB,QAAA,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;AAC5E,YAAA,IAAI,CAAC,iBAAiB,IAAI,CAAC;AAE3B,YAAA,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC;AACxC,SAAC,CAAC,CAAC;KACJ;AAtEU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,mDAeV,iBAAiB,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAf5B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,EANrB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,eAAA,EAAA,EAAA,SAAA,EAAA;YACT,0BAA0B;AAC1B,YAAA,EAAE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,CAAC,MAAM,qBAAqB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE;AAC7F,YAAA,EAAE,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,UAAU,CAAC,MAAM,qBAAqB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE;AAClG,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECtCH,4HAGA,ED4BY,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,EAAE,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAiB,+WAAE,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;AASnD,qBAAqB,GAAA,UAAA,CAAA;AAdjC,IAAA,YAAY,EAAE;qCA4BgB,iBAAiB,EAAA,MAAA,CAAA,CAAA;AAdnC,CAAA,EAAA,qBAAqB,CAuEjC,CAAA;2FAvEY,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAbjC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,eAAe,QACnB,EAAE,KAAK,EAAE,eAAe,EAAE,EACpB,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,EAAE,iBAAiB,EAAE,mBAAmB,CAAC,EAGpD,SAAA,EAAA;wBACT,0BAA0B;AAC1B,wBAAA,EAAE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,CAAC,2BAA2B,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE;AAC7F,wBAAA,EAAE,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,UAAU,CAAC,2BAA2B,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE;AAClG,qBAAA,EAAA,QAAA,EAAA,4HAAA,EAAA,CAAA;;0BAiBE,QAAQ;;0BAAI,MAAM;2BAAC,iBAAiB,CAAA;yCAZ7B,OAAO,EAAA,CAAA;sBAAhB,MAAM;;;AEbI,IAAA,0BAA0B,GAAhC,MAAM,0BAA0B,CAAA;AAiBrC,IAAA,WAAA,GAAA;AAhBA,QAAA,IAAA,CAAA,UAAU,GAA6C,eAAe,CAAC,qBAAqB,CAAC,CAAC;AAEtF,QAAA,IAAA,CAAA,aAAa,GAA+C,QAAQ,CAAC,MAAK;YAChF,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,CAAC,QAA+B,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;AAC5G,SAAC,CAAC,CAAC;AAEK,QAAA,IAAA,CAAA,MAAM,GAAgC,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;AAExD,QAAA,IAAA,CAAA,qBAAqB,GAAkB,IAAI,OAAO,EAAE,CAAC;AAsB7D,QAAA,IAAA,CAAA,QAAQ,GAAG,MAA+B,IAAI,CAAC;AAb7C,QAAA,MAAM,CAAC,MAAM,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;KAC9D;IAED,kBAAkB,GAAA;QAChB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;KACtC;AAED,IAAA,UAAU,CAAC,KAAe,EAAA;QACxB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;QAEhC,IAAI,IAAI,CAAC,UAAU,EAAE;YAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;KAC7D;AAID,IAAA,gBAAgB,CAAC,QAAmC,EAAA;AAClD,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;KAC1B;AAED,IAAA,iBAAiB,CAAC,QAAoB,EAAA;AACpC,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;KAC1B;AAED,IAAA,yBAAyB,CAAC,QAAoB,EAAA;AAC5C,QAAA,IAAI,CAAC,iBAAiB,GAAG,QAAQ,CAAC;KACnC;AAEO,IAAA,aAAa,CAAC,MAAmB,EAAA;AACvC,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AAE7C,QAAA,IAAI,CAAC,QAAQ,IAAI,CAAC;KACnB;AAEO,IAAA,gBAAgB,CAAC,MAAmB,EAAA;AAC1C,QAAA,MAAM,aAAa,GAAuC,IAAI,CAAC,aAAa,EAAE,CAAC;QAE/E,KAAK,MAAM,QAAQ,IAAI,aAAa,CAAC,MAAM,EAAE,EAAE;AAC7C,YAAA,QAAQ,CAAC,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAG,CAAC,CAAC;SAClD;KACF;AAEO,IAAA,sBAAsB,CAAC,UAA4C,EAAA;AACzE,QAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,CAAC;AAElC,QAAA,MAAM,WAAW,GAAG,CAAC,QAA+B,KAAI;YACtD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAmB,KAAI;AACzC,gBAAA,IAAI,QAAQ,CAAC,OAAO,EAAE;oBACpB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAG,CAAC,CAAC;iBAC/B;qBAAM;oBACL,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAG,CAAC,CAAC;iBAClC;AAED,gBAAA,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;AAE3B,gBAAA,OAAO,MAAM,CAAC;AAChB,aAAC,CAAC,CAAC;AACL,SAAC,CAAC;AAEF,QAAA,MAAM,cAAc,GAA0B,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAC/E,CAAC,QAA+B,KAAI;YAClC,OAAO,QAAQ,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AAChF,SAAC,CACF,CAAC;QAEF,KAAK,CAAC,GAAG,cAAc,CAAC;AACrB,aAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;AAC1B,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;AAC3C,aAAA,SAAS,EAAE,CAAC;KAChB;8GAtFU,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,0BAA0B,EAL1B,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,qBAAA,EAAA,EAAA,SAAA,EAAA;AACT,YAAA,EAAE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,CAAC,MAAM,0BAA0B,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE;AAClG,YAAA,EAAE,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,UAAU,CAAC,MAAM,0BAA0B,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE;AACvG,SAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,YAAA,EAAA,SAAA,EAGsE,qBAAqB,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC/B9F,sDACA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDqBY,YAAY,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;AAQX,0BAA0B,GAAA,UAAA,CAAA;AAbtC,IAAA,YAAY,EAAE;;AAaF,CAAA,EAAA,0BAA0B,CAuFtC,CAAA;2FAvFY,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAZtC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,qBAAqB,EACzB,IAAA,EAAA,EAAE,KAAK,EAAE,qBAAqB,EAAE,EAC1B,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,CAAC,EAGZ,SAAA,EAAA;AACT,wBAAA,EAAE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,CAAC,gCAAgC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE;AAClG,wBAAA,EAAE,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,UAAU,CAAC,gCAAgC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE;AACvG,qBAAA,EAAA,QAAA,EAAA,sDAAA,EAAA,CAAA;;;MEdU,+BAA+B,CAAA;AAR5C,IAAA,WAAA,GAAA;AASE,QAAA,IAAA,CAAA,YAAY,GAAkC,KAAK,CAAC,QAAQ,EAAE,CAAC;QAEtD,IAAY,CAAA,YAAA,GAAG,YAAY,CAAC;AACtC,KAAA;8GAJY,+BAA+B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAA/B,+BAA+B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,0BAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECd5C,uPAOA,EDGY,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,oFAAE,iBAAiB,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,yBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,mBAAmB,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,KAAK,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,eAAA,EAAA,eAAA,EAAA,YAAA,EAAA,eAAA,EAAA,qBAAA,EAAA,sBAAA,EAAA,mBAAA,EAAA,sBAAA,EAAA,kBAAA,EAAA,qBAAA,EAAA,aAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAI1D,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAR3C,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,0BAA0B,QAC9B,EAAE,KAAK,EAAE,0BAA0B,EAAE,EAC/B,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,KAAK,CAAC,EAAA,QAAA,EAAA,uPAAA,EAAA,CAAA;;;MEQ3D,8BAA8B,CAAA;8GAA9B,8BAA8B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA9B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,8BAA8B,EAX9B,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;gBAC1B,UAAU,EAAE,MAAK;AACf,oBAAA,MAAM,MAAM,GAAwB,MAAM,CAAC,mBAAmB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;oBAEhF,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,EAAE,CAAC;iBAC/B;AACF,aAAA;AACF,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAEU,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAd1C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,yBAAyB;AACnC,oBAAA,SAAS,EAAE;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;4BAC1B,UAAU,EAAE,MAAK;AACf,gCAAA,MAAM,MAAM,GAAwB,MAAM,CAAC,mBAAmB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;gCAEhF,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,EAAE,CAAC;6BAC/B;AACF,yBAAA;AACF,qBAAA;AACF,iBAAA,CAAA;;;ACwCD,MAAM,WAAW,GAAW,mBAAmB,CAAC;AAEhD,MAAM,cAAc,GAAqB,EAAE,iBAAiB,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC;AAE9E,MAAM,WAAW,GAAG,CAAC,MAAwB,KAAsB;AACjE,IAAA,MAAM,UAAU,GAAG,CAAC,QAA0B,EAAE,IAAsB,KAA2B;AAC/F,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;AAAE,YAAA,OAAO,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAC5D,KAAC,CAAC;IAEF,OAAO,SAAS,CAAC,EAAE,GAAG,cAAc,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;AAC9D,CAAC,CAAC;AAyBW,IAAA,mBAAmB,GAAzB,MAAM,mBAAmB,CAAA;IAoDP,SAAS,GAAA;AAC9B,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;KACvB;IAcD,WACU,CAAA,IAAY,EACZ,iBAAoC,EACpC,kBAAsC,EACb,SAAwB,EACV,gBAAiC,EAAA;QAJxE,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAQ;QACZ,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;QACpC,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAoB;QACb,IAAS,CAAA,SAAA,GAAT,SAAS,CAAe;QACV,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAiB;QAxEzE,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;QAE1B,IAAW,CAAA,WAAA,GAAW,cAAc,CAAC;AAIrC,QAAA,IAAA,CAAA,SAAS,GAAoB,CAAC,CAAkB,KAAK,IAAI,CAAC;QAE1D,IAAW,CAAA,WAAA,GAAgB,oBAAoB,CAAC;AAEzD,QAAA,IAAA,CAAA,SAAS,GAAyB,KAAK,CAAC,KAAK,CAAC,CAAC;AAE/C,QAAA,IAAA,CAAA,OAAO,GAA8B,KAAK,CAAe,EAAE,CAAC,CAAC;AAE7D,QAAA,IAAA,CAAA,gBAAgB,GAAiC,MAAM,CAAC,EAAE,CAAC,CAAC;AAE5D,QAAA,IAAA,CAAA,kBAAkB,GAAwC,KAAK,CAAyB,WAAW,CAAC,CAAC;AAErG,QAAA,IAAA,CAAA,cAAc,GACZ,KAAK,CAA4C,IAAI,CAAC,CAAC;QAEzD,IAAe,CAAA,eAAA,GAAkE,KAAK,EAAE,CAAC;QAEzF,IAAgB,CAAA,gBAAA,GAAoC,KAAK,CAAqB,MAAM,KAAK,CAAC,CAAC;QAE3F,IAAe,CAAA,eAAA,GAAsC,MAAM,EAAE,CAAC;QAE9D,IAAM,CAAA,MAAA,GAA2B,MAAM,EAAE,CAAC;QAE1C,IAAM,CAAA,MAAA,GAA2B,MAAM,EAAE,CAAC;AAEjC,QAAA,IAAA,CAAA,KAAK,GAA2C,MAAM,CAAC,IAAI,CAAC,CAAC;AAE7D,QAAA,IAAA,CAAA,QAAQ,GAA4B,MAAM,CAAC,KAAK,CAAC,CAAC;QAElD,IAAY,CAAA,YAAA,GAAG,YAAY,CAAC;QAQ7B,IAAc,CAAA,cAAA,GAAqC,IAAI,CAAC;AAEhE,QAAA,IAAA,CAAA,eAAe,GAAyB,QAAQ,CAAC,MAAK;AACpD,YAAA,OAAO,IAAI,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,gBAAgB,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;AACrE,SAAC,CAAC,CAAC;AAQO,QAAA,IAAA,CAAA,UAAU,GAAqC,YAAY,CAAC,SAAS,CAAC,CAAC;AAEhE,QAAA,IAAA,CAAA,aAAa,GAAsC,IAAI,eAAe,CAAC,KAAyB,CAAC,CAAC;AAElG,QAAA,IAAA,CAAA,YAAY,GAAsC,IAAI,eAAe,CAAC,KAAyB,CAAC,CAAC;AAElH,QAAA,IAAA,CAAA,MAAM,GAAwB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAA2B,KAAK,MAAM,CAAC,CAAC,CAAC;AAE1G,QAAA,IAAA,CAAA,KAAK,GAAwB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAA2B,KAAK,MAAM,CAAC,CAAC,CAAC;AAEhG,QAAA,IAAA,CAAA,SAAS,GAAkB,IAAI,OAAO,EAAE,CAAC;AAuCjD,QAAA,IAAA,CAAA,WAAW,GAAG,CAAC,OAA4B,EAAE,OAA4B,KAAa;AACpF,YAAA,OAAO,CAAE,OAAsB,EAAE,KAAK,IAAI,OAAO,OAAQ,OAAsB,EAAE,KAAK,IAAI,OAAO,CAAC,CAAC;AACrG,SAAC,CAAC;QAEF,IAAK,CAAA,KAAA,GAAG,MAAY,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;AAE1C,QAAA,IAAA,CAAA,SAAS,GAAG,MAAe,IAAI,CAAC,MAAM,CAAC;AApCrC,QAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACzB,IAAI,CAAC,iBAAiB,EAAE,CAAC;SAC1B;QAED,MAAM,CACJ,MAAK;YACH,IAAI,IAAI,CAAC,SAAS,EAAE;gBAAE,IAAI,CAAC,oBAAoB,EAAE,CAAC;AACpD,SAAC,EACD,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAC5B,CAAC;QAEF,MAAM,CAAC,MAAK;AACV,YAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE;gBAChE,IAAI,CAAC,mBAAmB,EAAE,CAAC;aAC5B;AACH,SAAC,CAAC,CAAC;KACJ;IAED,eAAe,GAAA;AACb,QAAA,MAAM,SAAS,GAA4B,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC;QAEzE,IAAI,SAAS,EAAE;AACb,YAAA,IAAI,CAAC,SAAS,CAAC,uBAAuB,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;SAC9F;QAED,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;QAEtD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;KACtD;AAUD,IAAA,MAAM,CAAC,KAAsB,EAAA;AAC3B,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;AAEtB,QAAA,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,KAAK,CAAC;AACrC,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAC/B,aAAA,SAAS,CAAC,CAAC,SAAkB,KAAI;AAChC,YAAA,IAAI,CAAC,SAAS;AAAE,gBAAA,OAAO,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAElD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAE5B,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;AAE7B,YAAA,IAAI,CAAC,iBAAiB,IAAI,CAAC;AAE3B,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACnC,SAAC,CAAC,CAAC;KACN;AAEO,IAAA,sBAAsB,CAAC,KAAsB,EAAA;AACnD,QAAA,OAAO,IAAI,UAAU,CAAU,CAAC,QAA6B,KAAI;YAC/D,MAAM,QAAQ,GAAkC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YAEtE,MAAM,MAAM,GAAwB,QAAQ,YAAY,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC;AAE3G,YAAA,MAAM,CAAC,SAAS,CAAC,CAAC,MAAe,KAAI;AACnC,gBAAA,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACtB,QAAQ,CAAC,QAAQ,EAAE,CAAC;AACtB,aAAC,CAAC,CAAC;AACL,SAAC,CAAC,CAAC;KACJ;IAEO,mBAAmB,GAAA;QACzB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,KAA6B,KAAI;AAClD,YAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,gBAAA,IAAI,KAAK,YAAY,KAAK,EAAE;AAC1B,oBAAA,OAAO,CAAC,GAAG,KAAK,CAA4B,CAAC;iBAC9C;AAED,gBAAA,OAAO,EAAE,CAAC;aACX;AAED,YAAA,OAAO,KAAK,CAAC;AACf,SAAC,CAAC,CAAC;KACJ;IAES,WAAW,GAAA;AACnB,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAEnB,IAAI,CAAC,gBAAgB,EAAE,CAAC;KACzB;IAES,WAAW,GAAA;AACnB,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;AAEnB,QAAA,IAAI,CAAC,QAAQ,IAAI,CAAC;KACnB;IAED,mBAAmB,GAAA;QACjB,IAAI,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,CAAC,SAAoB,KAAI;AACjD,YAAA,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAChE,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,UAAU,CAAC,KAAsB,EAAA;AAC/B,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;KACvB;AAED,IAAA,gBAAgB,CAAC,QAAqC,EAAA;AACpD,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;KAC1B;AAED,IAAA,iBAAiB,CAAC,QAAoB,EAAA;AACpC,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;KAC1B;AAED,IAAA,yBAAyB,CAAC,QAAoB,EAAA;AAC5C,QAAA,IAAI,CAAC,iBAAiB,GAAG,QAAQ,CAAC;KACnC;AAED,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AAClC,QAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KAC/B;IAED,QAAQ,GAAA;AACN,QAAA,OAAO,IAAI,CAAC;KACb;AAED,IAAA,IAAI,MAAM,GAAA;AACR,QAAA,OAAO,IAAI,CAAC,SAAS,EAAE,SAAS,IAAI,KAAK,CAAC;KAC3C;IAEO,oBAAoB,GAAA;AAC1B,QAAA,IAAI,CAAC,qBAAsB,CAAC,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;aAC1D,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC;AACnC,aAAA,SAAS,CAAC,CAAC,aAAwC,KAAI;AACtD,YAAA,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;YAEpC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;AAChD,SAAC,CAAC,CAAC;KACN;IAEO,wBAAwB,GAAA;AAC9B,QAAA,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU;YAAE,OAAO;AAEtG,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QAExB,IAAI,CAAC,qBAAsB,CAAC,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;aACjD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC;AACnC,aAAA,SAAS,CAAC,CAAC,aAAwC,KAAI;AACtD,YAAA,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;YAEpC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,OAAqB,KAAK,CAAC,GAAG,OAAO,EAAE,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;AAC/F,SAAC,CAAC,CAAC;KACN;IAEO,gBAAgB,GAAA;QACtB,MAAM,OAAO,GAAgB,QAAQ,CAAC,aAAa,CAAC,uBAAuB,CAAE,CAAC;AAE9E,QAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAK;YAC/B,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,MAAK;AAC7D,gBAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,wBAAwB,EAAE,CAAC,CAAC;AACvD,aAAC,CAAC,CAAC;AACL,SAAC,CAAC,CAAC;KACJ;IAEO,iBAAiB,GAAA;AACvB,QAAA,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;AAC5E,YAAA,IAAI,CAAC,iBAAiB,IAAI,CAAC;AAE3B,YAAA,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC;AACxC,SAAC,CAAC,CAAC;KACJ;8GApPU,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAF,IAAA,CAAA,kBAAA,EAAA,EAAA,EAAA,KAAA,EAwEpB,eAAe,EAAA,EAAA,EAAA,KAAA,EACH,iBAAiB,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAzE5B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,EAdnB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,qBAAA,EAAA,EAAA,iBAAA,EAAA,uBAAA,EAAA,UAAA,EAAA,uBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,kBAAA,EAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,gBAAA,EAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,QAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,aAAA,EAAA,EAAA,EAAA,SAAA,EAAA;YACT,0BAA0B;AAC1B,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;gBAC1B,UAAU,EAAE,MAAK;AACf,oBAAA,MAAM,UAAU,GAAqB,MAAM,CAAC,kBAAkB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;AAE1F,oBAAA,OAAO,WAAW,CAAC,UAAU,CAAC,CAAC;iBAChC;AACF,aAAA;AACD,YAAA,EAAE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,CAAC,MAAM,mBAAmB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE;AAC3F,YAAA,EAAE,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,UAAU,CAAC,MAAM,mBAAmB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE;AAChG,SAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,YAAA,EAAA,SAAA,EA0DqE,SAAS,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EANpE,SAAS,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAAG,8BAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC9ItB,+vCAgDA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDyBY,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,eAAA,EAAA,UAAA,EAAA,8BAAA,EAAA,aAAA,EAAA,UAAA,EAAA,UAAA,EAAA,wBAAA,EAAA,aAAA,EAAA,OAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,2BAAA,EAAA,gBAAA,EAAA,IAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,IAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,iBAAiB,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,yBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;AAmBpE,mBAAmB,GAAA,UAAA,CAAA;AAvB/B,IAAA,YAAY,EAAE;qCA4FG,MAAM;QACO,iBAAiB;QAChB,kBAAkB,EAAA,MAAA,EAAA,MAAA,CAAA,CAAA;AAvErC,CAAA,EAAA,mBAAmB,CAqP/B,CAAA;2FArPY,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAtB/B,SAAS;+BACE,aAAa,EAAA,UAAA,EACX,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,EAAE,eAAe,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,8BAA8B,CAAC,mBAG/F,uBAAuB,CAAC,MAAM,EAC/B,cAAA,EAAA,CAAC,8BAA8B,CAAC,EACrC,SAAA,EAAA;wBACT,0BAA0B;AAC1B,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;4BAC1B,UAAU,EAAE,MAAK;AACf,gCAAA,MAAM,UAAU,GAAqB,MAAM,CAAC,kBAAkB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;AAE1F,gCAAA,OAAO,WAAW,CAAC,UAAU,CAAC,CAAC;6BAChC;AACF,yBAAA;AACD,wBAAA,EAAE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,CAAC,yBAAyB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE;AAC3F,wBAAA,EAAE,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,UAAU,CAAC,yBAAyB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE;AAChG,qBAAA,EAAA,QAAA,EAAA,+vCAAA,EAAA,CAAA;;0BA0EE,MAAM;2BAAC,eAAe,CAAA;;0BACtB,QAAQ;;0BAAI,MAAM;2BAAC,iBAAiB,CAAA;yCAxE9B,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAEG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBAEG,qBAAqB,EAAA,CAAA;sBAA7B,KAAK;gBAEG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAEG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBAyCgB,SAAS,EAAA,CAAA;sBAA9B,SAAS;uBAAC,SAAS,CAAA;gBAEG,SAAS,EAAA,CAAA;sBAA/B,YAAY;uBAAC,OAAO,CAAA;;;MEzIV,0BAA0B,CAAA;8GAA1B,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAA1B,0BAA0B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,WAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAA1B,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBALtC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,qBAAqB;AAC/B,oBAAA,IAAI,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE;AAC5B,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA,CAAA;;;ACQD,MAAM,UAAU,GAAoB;IAClC,kBAAkB;IAClB,qCAAqC;IACrC,4BAA4B;IAC5B,4BAA4B;IAC5B,0BAA0B;CAC3B,CAAC;AAEF,MAAM,UAAU,GAAoB;IAClC,sBAAsB;IACtB,yBAAyB;IACzB,+BAA+B;IAC/B,0BAA0B;IAC1B,qBAAqB;IACrB,mBAAmB;IACnB,kBAAkB;CACnB,CAAC;MAOW,eAAe,CAAA;8GAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,YAd1B,sBAAsB;YACtB,yBAAyB;YACzB,+BAA+B;YAC/B,0BAA0B;YAC1B,qBAAqB;YACrB,mBAAmB;AACnB,YAAA,kBAAkB,EAdlB,kBAAkB;YAClB,qCAAqC;YACrC,4BAA4B;YAC5B,4BAA4B;YAC5B,0BAA0B,EAcc,cAAc,CAAA,EAAA,OAAA,EAAA,CAVtD,sBAAsB;YACtB,yBAAyB;YACzB,+BAA+B;YAC/B,0BAA0B;YAC1B,qBAAqB;YACrB,mBAAmB;AACnB,YAAA,kBAAkB,EAdlB,kBAAkB;YAClB,qCAAqC;YACrC,4BAA4B;YAC5B,4BAA4B;AAC5B,YAAA,0BAA0B,EAec,cAAc,CAAA,EAAA,CAAA,CAAA,EAAA;+GAG3C,eAAe,EAAA,SAAA,EAFf,CAAC,EAAE,OAAO,EAAE,yBAAyB,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC,YAFtE,UAAU,EAAiB,cAAc,EACd,cAAc,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAG3C,eAAe,EAAA,UAAA,EAAA,CAAA;kBAL3B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,GAAG,UAAU,EAAE,GAAG,UAAU,EAAE,cAAc,CAAC;oBACvD,OAAO,EAAE,CAAC,GAAG,UAAU,EAAE,GAAG,UAAU,EAAE,cAAc,CAAC;AACvD,oBAAA,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,yBAAyB,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC;AACpF,iBAAA,CAAA;;;ACpCD;;AAEG;;;;"}
|
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/checkbox-group/checkbox-group.component.ts","../../../../modules/forms/src/lib/forms/components/checkbox-group/checkbox-group.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 _scrollHeight: number = 0;\n\n private _scrollHeightChanged: boolean = false;\n\n constructor(\n private zone: NgZone,\n @Host() @Optional() private autocomplete: MatAutocomplete,\n ) {\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.setScrollHscrollHeight(panel.scrollHeight);\n\n fromEvent(panel, 'scroll')\n .pipe(takeUntil(this.autocomplete.closed))\n .subscribe(() => {\n if (this._scrollHeight !== panel.scrollHeight) {\n this.setScrollHscrollHeight(panel.scrollHeight);\n }\n\n if (panel.scrollHeight * 0.8 <= panel.scrollTop + panel.clientHeight && this._scrollHeightChanged) {\n this.zone.run(() => this.panelScrolled.emit());\n\n this._scrollHeightChanged = false;\n }\n });\n }\n\n private setScrollHscrollHeight(height: number): void {\n this._scrollHeight = height;\n\n this._scrollHeightChanged = 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 private _reloadOptions$: Subject<void> = new Subject();\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 reloadOptions(): void {\n this.queryParams.page = 1;\n\n this._reloadOptions$.next();\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 merge(this.control.valueChanges, this._reloadOptions$.pipe(map(() => this.control.value)))\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 {\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Inject,\n InputSignal,\n Optional,\n Output,\n forwardRef,\n input,\n} 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 value: InputSignal<string | undefined> = input();\n\n @Output() changed: EventEmitter<boolean> = new EventEmitter();\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 get checked(): boolean {\n return this.control.value;\n }\n\n set checked(value: boolean) {\n this.control.setValue(value);\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 {\n AfterContentInit,\n Component,\n Signal,\n WritableSignal,\n computed,\n contentChildren,\n effect,\n forwardRef,\n signal,\n} from '@angular/core';\nimport { WlcmCheckboxComponent } from '../checkbox/checkbox.component';\nimport { ControlValueAccessor, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors, Validator } from '@angular/forms';\nimport { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';\nimport { Observable, Subject, merge, takeUntil, tap } from 'rxjs';\n\n@UntilDestroy()\n@Component({\n selector: 'wlcm-checkbox-group',\n host: { class: 'wlcm-checkbox-group' },\n standalone: true,\n imports: [CommonModule],\n templateUrl: './checkbox-group.component.html',\n styleUrl: './checkbox-group.component.scss',\n providers: [\n { provide: NG_VALIDATORS, useExisting: forwardRef(() => WlcmCheckboxGroupComponent), multi: true },\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => WlcmCheckboxGroupComponent), multi: true },\n ],\n})\nexport class WlcmCheckboxGroupComponent implements AfterContentInit, ControlValueAccessor, Validator {\n checkboxes: Signal<readonly WlcmCheckboxComponent[]> = contentChildren(WlcmCheckboxComponent);\n\n private checkboxesMap: Signal<Map<string, WlcmCheckboxComponent>> = computed(() => {\n return new Map(this.checkboxes().map((checkbox: WlcmCheckboxComponent) => [checkbox.value()!, checkbox]));\n });\n\n private values: WritableSignal<Set<string>> = signal(new Set());\n\n private checkboxesListUpdated: Subject<void> = new Subject();\n\n private _changed?: (value: string[]) => void;\n\n private _touched?: () => void;\n\n private _validatorChanged?: () => void;\n\n constructor() {\n effect(() => this.handleCheckboxesToggle(this.checkboxes()));\n }\n\n ngAfterContentInit(): void {\n this.updateCheckboxes(this.values());\n }\n\n writeValue(value: string[]): void {\n this.values.set(new Set(value));\n\n if (this.checkboxes()) this.updateCheckboxes(this.values());\n }\n\n validate = (): ValidationErrors | null => null;\n\n registerOnChange(callback: (value: string[]) => 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 private updateControl(values: Set<string>): void {\n this._changed?.(Array.from(values.values()));\n\n this._touched?.();\n }\n\n private updateCheckboxes(values: Set<string>): void {\n const checkboxesMap: Map<string, WlcmCheckboxComponent> = this.checkboxesMap();\n\n for (const checkbox of checkboxesMap.values()) {\n checkbox.checked = values.has(checkbox.value()!);\n }\n }\n\n private handleCheckboxesToggle(checkboxes: readonly WlcmCheckboxComponent[]): void {\n this.checkboxesListUpdated.next();\n\n const handleCheck = (checkbox: WlcmCheckboxComponent) => {\n this.values.update((values: Set<string>) => {\n if (checkbox.checked) {\n values.add(checkbox.value()!);\n } else {\n values.delete(checkbox.value()!);\n }\n\n this.updateControl(values);\n\n return values;\n });\n };\n\n const changeHandlers: Observable<unknown>[] = Array.from(checkboxes.values()).map(\n (checkbox: WlcmCheckboxComponent) => {\n return checkbox.changed.asObservable().pipe(tap(() => handleCheck(checkbox)));\n },\n );\n\n merge(...changeHandlers)\n .pipe(untilDestroyed(this))\n .pipe(takeUntil(this.checkboxesListUpdated))\n .subscribe();\n }\n}\n","<ng-content select=\"wlcm-checkbox\"></ng-content>\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 NgZone,\n Optional,\n OutputEmitterRef,\n Signal,\n TemplateRef,\n ViewChild,\n WritableSignal,\n computed,\n effect,\n forwardRef,\n inject,\n input,\n output,\n signal,\n viewChildren,\n} from '@angular/core';\nimport {\n ControlValueAccessor,\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 {\n DEFAULT_QUERY_PARAMS,\n PaginatedData,\n QueryParams,\n ScrollDetectionApi,\n WlcmIconDirective,\n WlcmIconName,\n WlcmOption,\n WlcmSelectOptionFormat,\n} 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, Subject, Subscriber, first, of, switchMap, takeUntil } from 'rxjs';\nimport { IsOptionDisabledFn, WlcmCanSelectFn, WlcmSelectConfig, WlcmSelectValue } 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 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 @Input() fetchPaginatedOptions?: (params: QueryParams) => Observable<PaginatedData<WlcmOption>>;\n\n @Input() canSelect: WlcmCanSelectFn = (_: WlcmSelectValue) => true;\n\n @Input() queryParams: QueryParams = DEFAULT_QUERY_PARAMS;\n\n paginated: InputSignal<boolean> = input(false);\n\n options: InputSignal<WlcmOption[]> = input<WlcmOption[]>([]);\n\n paginatedOptions: WritableSignal<WlcmOption[]> = signal([]);\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 | MatOption[]> | undefined> = input();\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 value: WritableSignal<WlcmSelectValue | null> = signal(null);\n\n readonly disabled: WritableSignal<boolean> = signal(false);\n\n readonly WlcmIconName = WlcmIconName;\n\n private _changed?: (value: WlcmOption) => void;\n\n private _touched?: () => void;\n\n private _validatorChanged?: () => void;\n\n private _paginatedData: PaginatedData<WlcmOption> | null = null;\n\n private _previousValue: WlcmSelectValue | null = null;\n\n computedOptions: Signal<WlcmOption[]> = computed(() => {\n return this.paginated() ? this.paginatedOptions() : this.options();\n });\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 private selected$: Subject<void> = new Subject();\n\n constructor(\n private zone: NgZone,\n private changeDetectorRef: ChangeDetectorRef,\n private scrollDetectionApi: ScrollDetectionApi,\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 () => {\n if (this.paginated()) this.loadPaginatedOptions();\n },\n { allowSignalWrites: true },\n );\n\n effect(() => {\n if (this.isOptionDisabled() && this.computedOptions().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 compareWith = (optionA: WlcmOption | string, optionB: WlcmOption | string): boolean => {\n return ((optionA as WlcmOption)?.value || optionA) === ((optionB as WlcmOption)?.value || optionB);\n };\n\n focus = (): void => this.matSelect.open();\n\n isFocused = (): boolean => this.isOpen;\n\n select(event: MatSelectChange): void {\n this.selected$.next();\n\n this.matSelect.value = event.value;\n\n this.validateSelectedOption(event.value)\n .pipe(takeUntil(this.selected$))\n .subscribe((canSelect: boolean) => {\n if (!canSelect) return this.revertPreviousValue();\n\n this.updateValue(event.value);\n\n this._changed?.(event.value);\n\n this._validatorChanged?.();\n\n this.selectionChange.emit(event);\n });\n }\n\n private revertPreviousValue(): void {\n this.matSelect.value = this._previousValue;\n }\n\n private updateValue(value: WlcmSelectValue): void {\n this.value.set(value);\n\n this._previousValue = value;\n }\n\n private validateSelectedOption(value: WlcmSelectValue): Observable<boolean> {\n return new Observable<boolean>((observer: Subscriber<boolean>) => {\n const response: Observable<boolean> | boolean = this.canSelect(value);\n\n const source: Observable<boolean> = response instanceof Observable ? response.pipe(first()) : of(response);\n\n source.subscribe((result: boolean) => {\n observer.next(result);\n observer.complete();\n });\n });\n }\n\n protected panelOpened(): void {\n this.opened.emit();\n\n this.handleScrollDown();\n }\n\n protected panelClosed(): void {\n this.closed.emit();\n\n this._touched?.();\n }\n\n updateOptionsStatus(): void {\n this.matOptions().forEach((matOption: MatOption) => {\n matOption.disabled = this.isOptionDisabled()(matOption.value);\n });\n }\n\n writeValue(value: WlcmSelectValue): void {\n this.updateValue(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 this.disabled.set(isDisabled);\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 loadPaginatedOptions(): void {\n this.fetchPaginatedOptions!({ ...this.queryParams, page: 1 })\n .pipe(untilDestroyed(this), first())\n .subscribe((paginatedData: PaginatedData<WlcmOption>) => {\n this._paginatedData = paginatedData;\n\n this.paginatedOptions.set(paginatedData.data);\n });\n }\n\n private loadMorePaginatedOptions(): void {\n if (!this._paginatedData || this._paginatedData.currPage + 1 > this._paginatedData.totalPages) return;\n\n this.queryParams.page++;\n\n this.fetchPaginatedOptions!({ ...this.queryParams })\n .pipe(untilDestroyed(this), first())\n .subscribe((paginatedData: PaginatedData<WlcmOption>) => {\n this._paginatedData = paginatedData;\n\n this.paginatedOptions.update((options: WlcmOption[]) => [...options, ...paginatedData.data]);\n });\n }\n\n private handleScrollDown(): void {\n const element: HTMLElement = document.querySelector('.mat-mdc-select-panel')!;\n\n this.zone.runOutsideAngular(() => {\n this.scrollDetectionApi.onScrolledDown(element).subscribe(() => {\n this.zone.run(() => this.loadMorePaginatedOptions());\n });\n });\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-select\n #selectComponent\n [value]=\"value()\"\n [disabled]=\"disabled()\"\n [multiple]=\"multiple\"\n [disableRipple]=\"true\"\n [placeholder]=\"placeholder\"\n [hideSingleSelectionIndicator]=\"true\"\n [ngClass]=\"{ focused: selectComponent.focused }\"\n (selectionChange)=\"select($event)\"\n [compareWith]=\"compareWith\"\n (opened)=\"panelOpened()\"\n (closed)=\"panelClosed()\"\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 computedOptions()\"\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 { WlcmCheckboxComponent, WlcmCheckboxGroupComponent } from './components';\nimport { WlcmAutocompleteSuffixComponent } from './components/partials';\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 WlcmCheckboxGroupComponent,\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","i2.WlcmSelectInputBinderDirective","i3","i4","i5"],"mappings":"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"}
|
@@ -38,6 +38,7 @@ export declare class WlcmSelectComponent implements WlcmFormFieldInput, ControlV
|
|
38
38
|
private _touched?;
|
39
39
|
private _validatorChanged?;
|
40
40
|
private _paginatedData;
|
41
|
+
private _previousValue;
|
41
42
|
computedOptions: Signal<WlcmOption[]>;
|
42
43
|
matSelect: MatSelect;
|
43
44
|
openPanel(): void;
|
@@ -53,8 +54,9 @@ export declare class WlcmSelectComponent implements WlcmFormFieldInput, ControlV
|
|
53
54
|
focus: () => void;
|
54
55
|
isFocused: () => boolean;
|
55
56
|
select(event: MatSelectChange): void;
|
56
|
-
private validateSelectedOption;
|
57
57
|
private revertPreviousValue;
|
58
|
+
private updateValue;
|
59
|
+
private validateSelectedOption;
|
58
60
|
protected panelOpened(): void;
|
59
61
|
protected panelClosed(): void;
|
60
62
|
updateOptionsStatus(): void;
|