@evotor-dev/ui-kit 8.20.0 → 8.21.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/evo-autocomplete/components/evo-autocomplete/evo-autocomplete.component.mjs +3 -4
- package/esm2022/lib/components/evo-chip/evo-chip.component.mjs +15 -21
- package/esm2022/lib/components/evo-input/evo-input.component.mjs +15 -8
- package/fesm2022/evotor-dev-ui-kit.mjs +29 -28
- package/fesm2022/evotor-dev-ui-kit.mjs.map +1 -1
- package/lib/components/evo-chip/evo-chip.component.d.ts +4 -7
- package/lib/components/evo-input/evo-input.component.d.ts +4 -4
- package/package.json +1 -1
|
@@ -242,7 +242,14 @@ export class EvoInputComponent extends EvoBaseControl {
|
|
|
242
242
|
event.stopPropagation();
|
|
243
243
|
}
|
|
244
244
|
onClear() {
|
|
245
|
-
this.
|
|
245
|
+
if (this.mask) {
|
|
246
|
+
this.maskValue = '';
|
|
247
|
+
}
|
|
248
|
+
else {
|
|
249
|
+
this.writeToElement('');
|
|
250
|
+
}
|
|
251
|
+
this.onChange('');
|
|
252
|
+
this.changeDetector.markForCheck();
|
|
246
253
|
}
|
|
247
254
|
hideTooltip() {
|
|
248
255
|
this.tooltipVisibilityTimeout = true;
|
|
@@ -268,6 +275,12 @@ export class EvoInputComponent extends EvoBaseControl {
|
|
|
268
275
|
this.value = value;
|
|
269
276
|
}
|
|
270
277
|
}
|
|
278
|
+
validate() {
|
|
279
|
+
if (this.maskValidation && this.mask && !this.iMask.masked.isComplete) {
|
|
280
|
+
return { mask: true };
|
|
281
|
+
}
|
|
282
|
+
return null;
|
|
283
|
+
}
|
|
271
284
|
// eslint-disable-next-line
|
|
272
285
|
removePrefix(value) {
|
|
273
286
|
if (typeof value === 'string' && value.indexOf(this.prefix) === 0) {
|
|
@@ -291,12 +304,6 @@ export class EvoInputComponent extends EvoBaseControl {
|
|
|
291
304
|
this.customTooltipChecked = true;
|
|
292
305
|
this.changeDetector.detectChanges();
|
|
293
306
|
}
|
|
294
|
-
validate() {
|
|
295
|
-
if (this.maskValidation && this.mask && !this.iMask.masked.isComplete) {
|
|
296
|
-
return { mask: true };
|
|
297
|
-
}
|
|
298
|
-
return null;
|
|
299
|
-
}
|
|
300
307
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: EvoInputComponent, deps: [{ token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }, { token: COMPOSITION_BUFFER_MODE, optional: true }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
301
308
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.10", type: EvoInputComponent, isStandalone: true, selector: "evo-input", inputs: { autoFocus: "autoFocus", dataCp: ["data-cp", "dataCp"], icon: "icon", mask: "mask", placeholder: "placeholder", tooltip: "tooltip", type: "type", disabled: "disabled", loading: "loading", prefix: "prefix", autocomplete: "autocomplete", inputDebounce: "inputDebounce", unmask: "unmask", clearable: "clearable", maskValidation: "maskValidation", setValue: ["value", "setValue"], setSize: ["size", "setSize"], setTheme: ["theme", "setTheme"] }, outputs: { blur: "blur", onFocus: "onFocus" }, providers: [
|
|
302
309
|
{
|
|
@@ -377,4 +384,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImpo
|
|
|
377
384
|
type: Input,
|
|
378
385
|
args: ['theme']
|
|
379
386
|
}] } });
|
|
380
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZvLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V2by11aS1raXQvc3JjL2xpYi9jb21wb25lbnRzL2V2by1pbnB1dC9ldm8taW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXZvLXVpLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvZXZvLWlucHV0L2V2by1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0gsU0FBUyxFQUVULFVBQVUsRUFDVixNQUFNLEVBRU4sS0FBSyxFQUtMLFFBQVEsRUFDUixNQUFNLEVBR04sU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDSCx1QkFBdUIsRUFFdkIsYUFBYSxFQUNiLGlCQUFpQixHQUVwQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLGdFQUFnRSxDQUFDO0FBQ2hHLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUM3RCxPQUFPLEVBQUMsU0FBUyxFQUFFLE9BQU8sRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUN4QyxPQUFPLEVBQUMsWUFBWSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDakUsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sS0FBSyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQy9CLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLGtEQUFrRCxDQUFDO0FBQzFGLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN4QyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNoRSxPQUFPLEVBQUMsbUJBQW1CLEVB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QUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBSzhCLFlBQVk7c0JBQS9DLFNBQVM7dUJBQUMsT0FBTyxFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQztnQkFDYSxjQUFjO3NCQUE1RCxTQUFTO3VCQUFDLGtCQUFrQixFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQztnQkFnQ3pCLFFBQVE7c0JBQTNCLEtBQUs7dUJBQUMsT0FBTztnQkFJSyxPQUFPO3NCQUF6QixLQUFLO3VCQUFDLE1BQU07Z0JBTU8sUUFBUTtzQkFBM0IsS0FBSzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIGZvcndhcmRSZWYsXG4gICAgSW5qZWN0LFxuICAgIEluamVjdG9yLFxuICAgIElucHV0LFxuICAgIE5nWm9uZSxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPcHRpb25hbCxcbiAgICBvdXRwdXQsXG4gICAgUmVuZGVyZXIyLFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgQ09NUE9TSVRJT05fQlVGRkVSX01PREUsXG4gICAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXG4gICAgTkdfVkFMSURBVE9SUyxcbiAgICBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICBWYWxpZGF0b3IsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7RXZvQ29udHJvbFN0YXRlc30gZnJvbSAnLi4vLi4vY29tbW9uL2V2by1jb250cm9sLXN0YXRlLW1hbmFnZXIvZXZvLWNvbnRyb2wtc3RhdGVzLmVudW0nO1xuaW1wb3J0IHtFdm9CYXNlQ29udHJvbH0gZnJvbSAnLi4vLi4vY29tbW9uL2V2by1iYXNlLWNvbnRyb2wnO1xuaW1wb3J0IHtmcm9tRXZlbnQsIFN1YmplY3R9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtkZWJvdW5jZVRpbWUsIG1hcCwgdGFrZVVudGlsLCB0YXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7ZW50ZXJab25lfSBmcm9tICcuLi8uLi9vcGVyYXRvcnMnO1xuaW1wb3J0ICogYXMgSU1hc2sgZnJvbSAnaW1hc2snO1xuaW1wb3J0IHtFdm9Db250cm9sRXJyb3JDb21wb25lbnR9IGZyb20gJy4uL2V2by1jb250cm9sLWVycm9yL2V2by1jb250cm9sLWVycm9yLmNvbXBvbmVudCc7XG5pbXBvcnQge05nQ2xhc3N9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0V2b0ljb25Db21wb25lbnR9IGZyb20gJy4uL2V2by1pY29uL2V2by1pY29uLmNvbXBvbmVudCc7XG5pbXBvcnQge0V2b1VpQ2xhc3NEaXJlY3RpdmV9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvZXZvLXVpLWNsYXNzLmRpcmVjdGl2ZSc7XG5pbXBvcnQge0V2b0NpcmN1bGFyTG9hZGVyQ29tcG9uZW50fSBmcm9tICcuLi9ldm8tbG9hZGVyJztcblxuZXhwb3J0IGVudW0gRXZvSW5wdXRTaXplcyB7XG4gICAgc21hbGwgPSAnc21hbGwnLFxuICAgIG5vcm1hbCA9ICdub3JtYWwnLFxufVxuXG5leHBvcnQgZW51bSBFdm9JbnB1dFRoZW1lIHtcbiAgICBkZWZhdWx0ID0gJ2RlZmF1bHQnLFxuICAgIHJvdW5kZWQgPSAncm91bmRlZCcsXG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZXZvLWlucHV0JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZXZvLWlucHV0LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9ldm8taW5wdXQuY29tcG9uZW50LnNjc3MnXSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBFdm9JbnB1dENvbXBvbmVudCksXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEV2b0lucHV0Q29tcG9uZW50KSxcbiAgICAgICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICB9LFxuICAgIF0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbRXZvVWlDbGFzc0RpcmVjdGl2ZSwgRXZvSWNvbkNvbXBvbmVudCwgTmdDbGFzcywgRXZvQ29udHJvbEVycm9yQ29tcG9uZW50LCBFdm9DaXJjdWxhckxvYWRlckNvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIEV2b0lucHV0Q29tcG9uZW50XG4gICAgZXh0ZW5kcyBFdm9CYXNlQ29udHJvbFxuICAgIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIFZhbGlkYXRvclxue1xuICAgIEBJbnB1dCgpIGF1dG9Gb2N1czogYm9vbGVhbjtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICBASW5wdXQoJ2RhdGEtY3AnKSBkYXRhQ3A6IHN0cmluZztcbiAgICBASW5wdXQoKSBpY29uOiBzdHJpbmc7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gICAgQElucHV0KCkgbWFzazogYW55O1xuICAgIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmc7XG4gICAgQElucHV0KCkgdG9vbHRpcDogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHR5cGUgPSAndGV4dCc7XG4gICAgQElucHV0KCkgZGlzYWJsZWQgPSBmYWxzZTtcbiAgICBASW5wdXQoKSBsb2FkaW5nID0gZmFsc2U7XG4gICAgQElucHV0KCkgcHJlZml4ID0gJyc7XG4gICAgQElucHV0KCkgYXV0b2NvbXBsZXRlOiBzdHJpbmc7XG4gICAgQElucHV0KCkgaW5wdXREZWJvdW5jZSA9IDUwO1xuICAgIEBJbnB1dCgpIHVubWFzazogYm9vbGVhbiB8ICd0eXBlZCcgPSBmYWxzZTtcbiAgICBASW5wdXQoKSBjbGVhcmFibGUgPSBmYWxzZTtcbiAgICBASW5wdXQoKSBtYXNrVmFsaWRhdGlvbiA9IGZhbHNlO1xuXG4gICAgcmVhZG9ubHkgYmx1ciA9IG91dHB1dDxFdmVudD4oKTtcbiAgICByZWFkb25seSBvbkZvY3VzID0gb3V0cHV0PEV2ZW50PigpO1xuXG4gICAgQFZpZXdDaGlsZCgnaW5wdXQnLCB7c3RhdGljOiB0cnVlfSkgaW5wdXRFbGVtZW50OiBFbGVtZW50UmVmO1xuICAgIEBWaWV3Q2hpbGQoJ3Rvb2x0aXBDb250YWluZXInLCB7c3RhdGljOiB0cnVlfSkgdG9vbHRpcEVsZW1lbnQ6IEVsZW1lbnRSZWY7XG5cbiAgICBzaXplOiBFdm9JbnB1dFNpemVzID0gRXZvSW5wdXRTaXplcy5ub3JtYWw7XG4gICAgdGhlbWU6IEV2b0lucHV0VGhlbWUgPSBFdm9JbnB1dFRoZW1lLmRlZmF1bHQ7XG4gICAgX3ZhbHVlOiBzdHJpbmc7XG4gICAgY3VzdG9tVG9vbHRpcENoZWNrZWQgPSBmYWxzZTtcbiAgICB1aVN0YXRlcyA9IHtcbiAgICAgICAgaGFzQ3VzdG9tVG9vbHRpcDogZmFsc2UsXG4gICAgICAgIGlzVG9vbHRpcFZpc2libGU6IGZhbHNlLFxuICAgICAgICBpc0ZvY3VzZWQ6IGZhbHNlLFxuICAgIH07XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICBwcml2YXRlIGlNYXNrOiBJTWFzay5JbnB1dE1hc2s8YW55PjtcblxuICAgIHByaXZhdGUgdG9vbHRpcFZpc2liaWxpdHlUaW1lb3V0ID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIC8qKiBXaGV0aGVyIHRoZSB1c2VyIGlzIGNyZWF0aW5nIGEgY29tcG9zaXRpb24gc3RyaW5nIChJTUUgZXZlbnRzKS4gKi9cbiAgICBwcml2YXRlIF9jb21wb3NpbmcgPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHpvbmU6IE5nWm9uZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX3JlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoQ09NUE9TSVRJT05fQlVGRkVSX01PREUpIHByaXZhdGUgcmVhZG9ubHkgX2NvbXBvc2l0aW9uTW9kZTogYm9vbGVhbixcbiAgICAgICAgcHJvdGVjdGVkIGluamVjdG9yOiBJbmplY3RvcixcbiAgICApIHtcbiAgICAgICAgc3VwZXIoaW5qZWN0b3IpO1xuICAgIH1cblxuICAgIEBJbnB1dCgndmFsdWUnKSBzZXQgc2V0VmFsdWUodmFsdWUpIHtcbiAgICAgICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBASW5wdXQoJ3NpemUnKSBzZXQgc2V0U2l6ZShzaXplOiBFdm9JbnB1dFNpemVzIHwgc3RyaW5nKSB7XG4gICAgICAgIGlmIChFdm9JbnB1dFNpemVzW3NpemVdKSB7XG4gICAgICAgICAgICB0aGlzLnNpemUgPSBFdm9JbnB1dFNpemVzW3NpemVdO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQElucHV0KCd0aGVtZScpIHNldCBzZXRUaGVtZSh0aGVtZTogc3RyaW5nIHwgRXZvSW5wdXRUaGVtZSkge1xuICAgICAgICBpZiAoRXZvSW5wdXRUaGVtZVt0aGVtZV0pIHtcbiAgICAgICAgICAgIHRoaXMudGhlbWUgPSBFdm9JbnB1dFRoZW1lW3RoZW1lXTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldCBpc0Rpc2FibGVkKCkge1xuICAgICAgICBpZiAodGhpcy5sb2FkaW5nKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5kaXNhYmxlZDtcbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICBnZXQgdmFsdWUoKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICAgIHNldCB2YWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgICAgIGlmICh2YWx1ZSB8fCB0aGlzLl92YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5fdmFsdWUgPSB0aGlzLnJlbW92ZVByZWZpeCh2YWx1ZSk7XG4gICAgICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0IGlucHV0Q2xhc3MoKToge1tjc3NDbGFzczogc3RyaW5nXTogYm9vbGVhbn0ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZm9jdXNlZDogdGhpcy51aVN0YXRlcy5pc0ZvY3VzZWQsXG4gICAgICAgICAgICBkaXNhYmxlZDogdGhpcy5pc0Rpc2FibGVkLFxuICAgICAgICAgICAgdmFsaWQ6IHRoaXMuY3VycmVudFN0YXRlW0V2b0NvbnRyb2xTdGF0ZXMudmFsaWRdLFxuICAgICAgICAgICAgaW52YWxpZDogdGhpcy5jdXJyZW50U3RhdGVbRXZvQ29udHJvbFN0YXRlcy5pbnZhbGlkXSxcbiAgICAgICAgICAgIFtgc2l6ZS0ke3RoaXMuc2l6ZX1gXTogdGhpcy5zaXplICE9PSBFdm9JbnB1dFNpemVzLm5vcm1hbCxcbiAgICAgICAgICAgIFtgdGhlbWUtJHt0aGlzLnRoZW1lfWBdOiB0cnVlLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGdldCBoYXNBZGRpdGlvbmFsKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLnRvb2x0aXAgfHwgdGhpcy51aVN0YXRlcy5oYXNDdXN0b21Ub29sdGlwIHx8ICEhdGhpcy5pY29uO1xuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICAgIHNldCBtYXNrVmFsdWUodmFsdWU6IGFueSkge1xuICAgICAgICBjb25zdCBub3JtYWxpemVkVmFsdWUgPSB2YWx1ZSA/PyAnJztcbiAgICAgICAgaWYgKHRoaXMuaU1hc2spIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnVubWFzayA9PT0gJ3R5cGVkJykge1xuICAgICAgICAgICAgICAgIHRoaXMuaU1hc2sudHlwZWRWYWx1ZSA9IG5vcm1hbGl6ZWRWYWx1ZTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy51bm1hc2spIHtcbiAgICAgICAgICAgICAgICB0aGlzLmlNYXNrLnVubWFza2VkVmFsdWUgPSBub3JtYWxpemVkVmFsdWU7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuaU1hc2sudmFsdWUgPSBub3JtYWxpemVkVmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLndyaXRlVG9FbGVtZW50KG5vcm1hbGl6ZWRWYWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICBnZXQgbWFza1ZhbHVlKCk6IGFueSB7XG4gICAgICAgIGlmICghdGhpcy5pTWFzaykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQudmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMudW5tYXNrID09PSAndHlwZWQnKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5pTWFzay50eXBlZFZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnVubWFzaykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaU1hc2sudW5tYXNrZWRWYWx1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5pTWFzay52YWx1ZTtcbiAgICB9XG5cbiAgICBnZXQgaXNDbGVhcmFibGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNsZWFyYWJsZSAmJiAhdGhpcy5kaXNhYmxlZDtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgY29uc3QgaW5wdXRFbCA9IHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICAgICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLm1hc2spIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZU1hc2tJbnN0YW5jZSh0aGlzLm1hc2spO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBmcm9tRXZlbnQoaW5wdXRFbCwgJ2lucHV0JylcbiAgICAgICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICAgICAgZGVib3VuY2VUaW1lKHRoaXMuaW5wdXREZWJvdW5jZSksXG4gICAgICAgICAgICAgICAgICAgIG1hcCgoZTogSW5wdXRFdmVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaU1hc2spIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5tYXNrVmFsdWU7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKGUudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLnZhbHVlO1xuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgZW50ZXJab25lKHRoaXMuem9uZSksXG4gICAgICAgICAgICAgICAgICAgIHRhcCgodmFsdWU6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vbklucHV0Q2hhbmdlKHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG4gICAgICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgICAgICAgaWYgKHRoaXMuaU1hc2spIHtcbiAgICAgICAgICAgIHRoaXMuZGVzdHJveU1hc2soKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICAgICAgaWYgKCFjaGFuZ2VzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB7bWFza30gPSBjaGFuZ2VzO1xuXG4gICAgICAgIGlmIChtYXNrICYmICFtYXNrLmZpcnN0Q2hhbmdlKSB7XG4gICAgICAgICAgICBjb25zdCBuZXdNYXNrT3B0aW9ucyA9IG1hc2suY3VycmVudFZhbHVlO1xuICAgICAgICAgICAgaWYgKG5ld01hc2tPcHRpb25zKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaU1hc2spIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pTWFzay51cGRhdGVPcHRpb25zKG5ld01hc2tPcHRpb25zKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZU1hc2tJbnN0YW5jZShuZXdNYXNrT3B0aW9ucyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRlc3Ryb3lNYXNrKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICBvbkNoYW5nZSA9IChfdmFsdWU6IGFueSk6IHZvaWQgPT4ge31cbiAgICBvblRvdWNoZWQgPSAoKTogdm9pZD0+IHt9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIGlmICh0aGlzLmF1dG9Gb2N1cykge1xuICAgICAgICAgICAgdGhpcy5mb2N1cygpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY2hlY2tDdXN0b21Ub29sdGlwKCk7XG4gICAgfVxuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gICAgd3JpdGVUb0VsZW1lbnQodmFsdWU6IGFueSkge1xuICAgICAgICB0aGlzLl9yZW5kZXJlci5zZXRQcm9wZXJ0eSh0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LCAndmFsdWUnLCB2YWx1ZSk7XG4gICAgfVxuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gICAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gdGhpcy5fdmFsdWUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcblxuICAgICAgICBpZiAodGhpcy5tYXNrKSB7XG4gICAgICAgICAgICB0aGlzLm1hc2tWYWx1ZSA9IHZhbHVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy53cml0ZVRvRWxlbWVudCh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICAgIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgICB9XG5cbiAgICBzZXREaXNhYmxlZFN0YXRlKHN0YXRlOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGlzYWJsZWQgPSBzdGF0ZTtcbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgZm9jdXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9XG5cbiAgICBvbklucHV0Q2hhbmdlKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgaWYgKHZhbHVlIHx8IHRoaXMuX3ZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLl92YWx1ZSA9IHRoaXMucmVtb3ZlUHJlZml4KHZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMub25DaGFuZ2UodGhpcy5wcmVmaXggKyAodGhpcy5fdmFsdWUgfHwgJycpKTtcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbklucHV0Rm9jdXMoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnVpU3RhdGVzLmlzRm9jdXNlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy51aVN0YXRlcy5pc0ZvY3VzZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgICAgICB0aGlzLm9uRm9jdXMuZW1pdChldmVudCk7XG4gICAgfVxuXG4gICAgb25JbnB1dEJsdXIoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMudWlTdGF0ZXMuaXNGb2N1c2VkID0gZmFsc2U7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgICAgIHRoaXMuYmx1ci5lbWl0KGV2ZW50KTtcbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICBvblRvb2x0aXBDbGljayhldmVudDogYW55KTogdm9pZCB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH1cblxuICAgIG9uQ2xlYXIoKTogdm9pZCB7XG4gICAgICAgIHRoaXMud3JpdGVWYWx1ZSgnJyk7XG4gICAgfVxuXG4gICAgaGlkZVRvb2x0aXAoKSB7XG4gICAgICAgIHRoaXMudG9vbHRpcFZpc2liaWxpdHlUaW1lb3V0ID0gdHJ1ZTtcblxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLnRvb2x0aXBWaXNpYmlsaXR5VGltZW91dCkge1xuICAgICAgICAgICAgICAgIHRoaXMudWlTdGF0ZXMuaXNUb29sdGlwVmlzaWJsZSA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LCAyNSk7XG4gICAgfVxuXG4gICAgc2hvd1Rvb2x0aXAoKSB7XG4gICAgICAgIHRoaXMudWlTdGF0ZXMuaXNUb29sdGlwVmlzaWJsZSA9IHRydWU7XG4gICAgICAgIHRoaXMudG9vbHRpcFZpc2liaWxpdHlUaW1lb3V0ID0gZmFsc2U7XG4gICAgfVxuXG4gICAgLy8gQ29tcG9zaXRpb24gaGFuZGxpbmcgaXMgdGFrZW4gZnJvbTpcbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2Jsb2IvMTEuMC4zL3BhY2thZ2VzL2Zvcm1zL3NyYy9kaXJlY3RpdmVzL2RlZmF1bHRfdmFsdWVfYWNjZXNzb3IudHMjTDE1MlxuICAgIF9jb21wb3NpdGlvblN0YXJ0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9jb21wb3NpbmcgPSB0cnVlO1xuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICAgIF9jb21wb3NpdGlvbkVuZCh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2NvbXBvc2luZyA9IGZhbHNlO1xuICAgICAgICBpZiAodGhpcy5fY29tcG9zaXRpb25Nb2RlKSB7XG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICBwcml2YXRlIHJlbW92ZVByZWZpeCh2YWx1ZTogYW55KTogYW55IHtcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgJiYgdmFsdWUuaW5kZXhPZih0aGlzLnByZWZpeCkgPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZS5yZXBsYWNlKHRoaXMucHJlZml4LCAnJyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICAgIHByaXZhdGUgY3JlYXRlTWFza0luc3RhbmNlKG9wdHM6IGFueSkge1xuICAgICAgICB0aGlzLmlNYXNrID0gbmV3IElNYXNrLklucHV0TWFzayh0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LCBvcHRzKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGRlc3Ryb3lNYXNrKCkge1xuICAgICAgICB0aGlzLmlNYXNrPy5kZXN0cm95KCk7XG4gICAgICAgIHRoaXMuaU1hc2sgPSBudWxsO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2hlY2tDdXN0b21Ub29sdGlwKCkge1xuICAgICAgICB0aGlzLnVpU3RhdGVzLmhhc0N1c3RvbVRvb2x0aXAgPVxuICAgICAgICAgICAgdGhpcy50b29sdGlwRWxlbWVudCAmJlxuICAgICAgICAgICAgdGhpcy50b29sdGlwRWxlbWVudC5uYXRpdmVFbGVtZW50ICYmXG4gICAgICAgICAgICB0aGlzLnRvb2x0aXBFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW4ubGVuZ3RoID4gMDtcbiAgICAgICAgdGhpcy5jdXN0b21Ub29sdGlwQ2hlY2tlZCA9IHRydWU7XG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIHZhbGlkYXRlKCkge1xuICAgICAgICBpZiAodGhpcy5tYXNrVmFsaWRhdGlvbiAmJiB0aGlzLm1hc2sgJiYgIXRoaXMuaU1hc2subWFza2VkLmlzQ29tcGxldGUpIHtcbiAgICAgICAgICAgIHJldHVybiB7bWFzazogdHJ1ZX07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxufVxuIiwiPGxhYmVsIGNsYXNzPVwiZXZvLWlucHV0XCIgW2V2b1VpQ2xhc3NdPVwiaW5wdXRDbGFzc1wiPlxuICAgIDxkaXYgY2xhc3M9XCJldm8taW5wdXRfX3ByZWZpeC1jb250ZW50XCI+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltldm9JbnB1dFByZWZpeENvbnRlbnRdXCIgLz5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZXZvLWlucHV0X19wcmVmaXgtaWNvblwiPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbZXZvSW5wdXRJY29uXVwiIC8+XG4gICAgPC9kaXY+XG5cbiAgICBAaWYgKHByZWZpeCkge1xuICAgICAgICA8c3BhbiBjbGFzcz1cImV2by1pbnB1dF9fcHJlZml4XCIgW2V2b1VpQ2xhc3NdPVwie2ZvY3VzZWQ6ICghaXNEaXNhYmxlZCAmJiAhIXZhbHVlKSB8fCB1aVN0YXRlcy5pc0ZvY3VzZWR9XCI+XG4gICAgICAgICAgICB7eyBwcmVmaXggfX1cbiAgICAgICAgPC9zcGFuPlxuICAgIH1cblxuICAgIDxpbnB1dFxuICAgICAgICAjaW5wdXRcbiAgICAgICAgdHlwZT1cInt7IHR5cGUgfX1cIlxuICAgICAgICBwbGFjZWhvbGRlcj1cInt7IHBsYWNlaG9sZGVyIH19XCJcbiAgICAgICAgY2xhc3M9XCJldm8taW5wdXRfX2ZpZWxkXCJcbiAgICAgICAgW2F0dHIuYXV0b2NvbXBsZXRlXT1cImF1dG9jb21wbGV0ZVwiXG4gICAgICAgIFthdHRyLmRhdGEtY3BdPVwiZGF0YUNwXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImlzRGlzYWJsZWRcIlxuICAgICAgICAoZm9jdXMpPVwib25JbnB1dEZvY3VzKCRldmVudClcIlxuICAgICAgICAoYmx1cik9XCJvbklucHV0Qmx1cigkZXZlbnQpXCJcbiAgICAgICAgKGNvbXBvc2l0aW9uc3RhcnQpPVwiX2NvbXBvc2l0aW9uU3RhcnQoKVwiXG4gICAgICAgIChjb21wb3NpdGlvbmVuZCk9XCJfY29tcG9zaXRpb25FbmQoJGV2ZW50LnRhcmdldC52YWx1ZSlcIlxuICAgIC8+XG5cbiAgICBAaWYgKGxvYWRpbmcpIHtcbiAgICAgICAgPGV2by1jaXJjdWxhci1sb2FkZXIgY2xhc3M9XCJldm8taW5wdXRfX2xvYWRpbmctc3Bpbm5lclwiIC8+XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIEBpZiAoaXNDbGVhcmFibGUpIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJldm8taW5wdXRfX2NsZWFyYWJsZVwiIChjbGljayk9XCJvbkNsZWFyKClcIj5cbiAgICAgICAgICAgICAgICA8ZXZvLWljb24gc2hhcGU9XCJkZWNsaW5lXCIgY2xhc3M9XCJldm8taW5wdXRfX2ljb24tY2xlYXJcIiAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgICAgQGlmIChoYXNBZGRpdGlvbmFsKSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXZvLWlucHV0X19hZGRpdGlvbmFsXCI+XG4gICAgICAgICAgICAgICAgQGlmICh0b29sdGlwIHx8IHVpU3RhdGVzLmhhc0N1c3RvbVRvb2x0aXApIHtcbiAgICAgICAgICAgICAgICAgICAgPGV2by1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICBzaGFwZT1cImhlbHBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJldm8taW5wdXRfX3Rvb2x0aXBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKG1vdXNlZW50ZXIpPVwic2hvd1Rvb2x0aXAoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAobW91c2VsZWF2ZSk9XCJoaWRlVG9vbHRpcCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvblRvb2x0aXBDbGljaygkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQGlmIChpY29uKSB7XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJldm8taW5wdXRfX2ljb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgW2F0dHIuc3JjXT1cImljb25cIiAvPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpZiAoIWN1c3RvbVRvb2x0aXBDaGVja2VkIHx8IHVpU3RhdGVzLmlzVG9vbHRpcFZpc2libGUpIHtcbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgI3Rvb2x0aXBDb250YWluZXJcbiAgICAgICAgICAgIFtoaWRkZW5dPVwiIWN1c3RvbVRvb2x0aXBDaGVja2VkXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsnZXZvLWlucHV0X190b29sdGlwLWNvbnRhaW5lcic6IHRvb2x0aXB9XCJcbiAgICAgICAgICAgIChjbGljayk9XCJvblRvb2x0aXBDbGljaygkZXZlbnQpXCJcbiAgICAgICAgICAgIChtb3VzZWVudGVyKT1cInNob3dUb29sdGlwKClcIlxuICAgICAgICAgICAgKG1vdXNlbGVhdmUpPVwiaGlkZVRvb2x0aXAoKVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIHt7IHRvb2x0aXAgfX1cbiAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIlt0b29sdGlwXVwiIC8+XG4gICAgICAgIDwvZGl2PlxuICAgIH1cbjwvbGFiZWw+XG5cbkBpZiAoc2hvd0Vycm9ycykge1xuICAgIDxldm8tY29udHJvbC1lcnJvciBbZXJyb3JzXT1cImNvbnRyb2wuZXJyb3JzXCIgW2Vycm9yc01lc3NhZ2VzXT1cImVycm9yc01lc3NhZ2VzXCIgLz5cbn1cbiJdfQ==
|
|
387
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZvLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V2by11aS1raXQvc3JjL2xpYi9jb21wb25lbnRzL2V2by1pbnB1dC9ldm8taW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXZvLXVpLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvZXZvLWlucHV0L2V2by1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0gsU0FBUyxFQUVULFVBQVUsRUFDVixNQUFNLEVBRU4sS0FBSyxFQUtMLFFBQVEsRUFDUixNQUFNLEVBR04sU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDSCx1QkFBdUIsRUFFdkIsYUFBYSxFQUNiLGlCQUFpQixHQUVwQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLGdFQUFnRSxDQUFDO0FBQ2hHLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUM3RCxPQUFPLEVBQUMsU0FBUyxFQUFFLE9BQU8sRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUN4QyxPQUFPLEVBQUMsWUFBWSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDakUsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sS0FBSyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQy9CLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLGtEQUFrRCxDQUFDO0FBQzFGLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN4QyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNoRSxPQUFPLEVBQUMsbUJBQW1CLEVB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ZixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBSzhCLFlBQVk7c0JBQS9DLFNBQVM7dUJBQUMsT0FBTyxFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQztnQkFDYSxjQUFjO3NCQUE1RCxTQUFTO3VCQUFDLGtCQUFrQixFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQztnQkFnQ3pCLFFBQVE7c0JBQTNCLEtBQUs7dUJBQUMsT0FBTztnQkFJSyxPQUFPO3NCQUF6QixLQUFLO3VCQUFDLE1BQU07Z0JBTU8sUUFBUTtzQkFBM0IsS0FBSzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIGZvcndhcmRSZWYsXG4gICAgSW5qZWN0LFxuICAgIEluamVjdG9yLFxuICAgIElucHV0LFxuICAgIE5nWm9uZSxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPcHRpb25hbCxcbiAgICBvdXRwdXQsXG4gICAgUmVuZGVyZXIyLFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgQ09NUE9TSVRJT05fQlVGRkVSX01PREUsXG4gICAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXG4gICAgTkdfVkFMSURBVE9SUyxcbiAgICBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICBWYWxpZGF0b3IsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7RXZvQ29udHJvbFN0YXRlc30gZnJvbSAnLi4vLi4vY29tbW9uL2V2by1jb250cm9sLXN0YXRlLW1hbmFnZXIvZXZvLWNvbnRyb2wtc3RhdGVzLmVudW0nO1xuaW1wb3J0IHtFdm9CYXNlQ29udHJvbH0gZnJvbSAnLi4vLi4vY29tbW9uL2V2by1iYXNlLWNvbnRyb2wnO1xuaW1wb3J0IHtmcm9tRXZlbnQsIFN1YmplY3R9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtkZWJvdW5jZVRpbWUsIG1hcCwgdGFrZVVudGlsLCB0YXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7ZW50ZXJab25lfSBmcm9tICcuLi8uLi9vcGVyYXRvcnMnO1xuaW1wb3J0ICogYXMgSU1hc2sgZnJvbSAnaW1hc2snO1xuaW1wb3J0IHtFdm9Db250cm9sRXJyb3JDb21wb25lbnR9IGZyb20gJy4uL2V2by1jb250cm9sLWVycm9yL2V2by1jb250cm9sLWVycm9yLmNvbXBvbmVudCc7XG5pbXBvcnQge05nQ2xhc3N9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0V2b0ljb25Db21wb25lbnR9IGZyb20gJy4uL2V2by1pY29uL2V2by1pY29uLmNvbXBvbmVudCc7XG5pbXBvcnQge0V2b1VpQ2xhc3NEaXJlY3RpdmV9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvZXZvLXVpLWNsYXNzLmRpcmVjdGl2ZSc7XG5pbXBvcnQge0V2b0NpcmN1bGFyTG9hZGVyQ29tcG9uZW50fSBmcm9tICcuLi9ldm8tbG9hZGVyJztcblxuZXhwb3J0IGVudW0gRXZvSW5wdXRTaXplcyB7XG4gICAgc21hbGwgPSAnc21hbGwnLFxuICAgIG5vcm1hbCA9ICdub3JtYWwnLFxufVxuXG5leHBvcnQgZW51bSBFdm9JbnB1dFRoZW1lIHtcbiAgICBkZWZhdWx0ID0gJ2RlZmF1bHQnLFxuICAgIHJvdW5kZWQgPSAncm91bmRlZCcsXG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZXZvLWlucHV0JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZXZvLWlucHV0LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9ldm8taW5wdXQuY29tcG9uZW50LnNjc3MnXSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBFdm9JbnB1dENvbXBvbmVudCksXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEV2b0lucHV0Q29tcG9uZW50KSxcbiAgICAgICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICB9LFxuICAgIF0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbRXZvVWlDbGFzc0RpcmVjdGl2ZSwgRXZvSWNvbkNvbXBvbmVudCwgTmdDbGFzcywgRXZvQ29udHJvbEVycm9yQ29tcG9uZW50LCBFdm9DaXJjdWxhckxvYWRlckNvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIEV2b0lucHV0Q29tcG9uZW50XG4gICAgZXh0ZW5kcyBFdm9CYXNlQ29udHJvbFxuICAgIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIFZhbGlkYXRvclxue1xuICAgIEBJbnB1dCgpIGF1dG9Gb2N1czogYm9vbGVhbjtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICBASW5wdXQoJ2RhdGEtY3AnKSBkYXRhQ3A6IHN0cmluZztcbiAgICBASW5wdXQoKSBpY29uOiBzdHJpbmc7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gICAgQElucHV0KCkgbWFzazogYW55O1xuICAgIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmc7XG4gICAgQElucHV0KCkgdG9vbHRpcDogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHR5cGUgPSAndGV4dCc7XG4gICAgQElucHV0KCkgZGlzYWJsZWQgPSBmYWxzZTtcbiAgICBASW5wdXQoKSBsb2FkaW5nID0gZmFsc2U7XG4gICAgQElucHV0KCkgcHJlZml4ID0gJyc7XG4gICAgQElucHV0KCkgYXV0b2NvbXBsZXRlOiBzdHJpbmc7XG4gICAgQElucHV0KCkgaW5wdXREZWJvdW5jZSA9IDUwO1xuICAgIEBJbnB1dCgpIHVubWFzazogYm9vbGVhbiB8ICd0eXBlZCcgPSBmYWxzZTtcbiAgICBASW5wdXQoKSBjbGVhcmFibGUgPSBmYWxzZTtcbiAgICBASW5wdXQoKSBtYXNrVmFsaWRhdGlvbiA9IGZhbHNlO1xuXG4gICAgcmVhZG9ubHkgYmx1ciA9IG91dHB1dDxFdmVudD4oKTtcbiAgICByZWFkb25seSBvbkZvY3VzID0gb3V0cHV0PEV2ZW50PigpO1xuXG4gICAgQFZpZXdDaGlsZCgnaW5wdXQnLCB7c3RhdGljOiB0cnVlfSkgaW5wdXRFbGVtZW50OiBFbGVtZW50UmVmO1xuICAgIEBWaWV3Q2hpbGQoJ3Rvb2x0aXBDb250YWluZXInLCB7c3RhdGljOiB0cnVlfSkgdG9vbHRpcEVsZW1lbnQ6IEVsZW1lbnRSZWY7XG5cbiAgICBzaXplOiBFdm9JbnB1dFNpemVzID0gRXZvSW5wdXRTaXplcy5ub3JtYWw7XG4gICAgdGhlbWU6IEV2b0lucHV0VGhlbWUgPSBFdm9JbnB1dFRoZW1lLmRlZmF1bHQ7XG4gICAgX3ZhbHVlOiBzdHJpbmc7XG4gICAgY3VzdG9tVG9vbHRpcENoZWNrZWQgPSBmYWxzZTtcbiAgICB1aVN0YXRlcyA9IHtcbiAgICAgICAgaGFzQ3VzdG9tVG9vbHRpcDogZmFsc2UsXG4gICAgICAgIGlzVG9vbHRpcFZpc2libGU6IGZhbHNlLFxuICAgICAgICBpc0ZvY3VzZWQ6IGZhbHNlLFxuICAgIH07XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICBwcml2YXRlIGlNYXNrOiBJTWFzay5JbnB1dE1hc2s8YW55PjtcblxuICAgIHByaXZhdGUgdG9vbHRpcFZpc2liaWxpdHlUaW1lb3V0ID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIC8qKiBXaGV0aGVyIHRoZSB1c2VyIGlzIGNyZWF0aW5nIGEgY29tcG9zaXRpb24gc3RyaW5nIChJTUUgZXZlbnRzKS4gKi9cbiAgICBwcml2YXRlIF9jb21wb3NpbmcgPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHpvbmU6IE5nWm9uZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX3JlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoQ09NUE9TSVRJT05fQlVGRkVSX01PREUpIHByaXZhdGUgcmVhZG9ubHkgX2NvbXBvc2l0aW9uTW9kZTogYm9vbGVhbixcbiAgICAgICAgcHJvdGVjdGVkIGluamVjdG9yOiBJbmplY3RvcixcbiAgICApIHtcbiAgICAgICAgc3VwZXIoaW5qZWN0b3IpO1xuICAgIH1cblxuICAgIEBJbnB1dCgndmFsdWUnKSBzZXQgc2V0VmFsdWUodmFsdWU6IHN0cmluZykge1xuICAgICAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xuICAgIH1cblxuICAgIEBJbnB1dCgnc2l6ZScpIHNldCBzZXRTaXplKHNpemU6IEV2b0lucHV0U2l6ZXMgfCBzdHJpbmcpIHtcbiAgICAgICAgaWYgKEV2b0lucHV0U2l6ZXNbc2l6ZV0pIHtcbiAgICAgICAgICAgIHRoaXMuc2l6ZSA9IEV2b0lucHV0U2l6ZXNbc2l6ZV07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBASW5wdXQoJ3RoZW1lJykgc2V0IHNldFRoZW1lKHRoZW1lOiBzdHJpbmcgfCBFdm9JbnB1dFRoZW1lKSB7XG4gICAgICAgIGlmIChFdm9JbnB1dFRoZW1lW3RoZW1lXSkge1xuICAgICAgICAgICAgdGhpcy50aGVtZSA9IEV2b0lucHV0VGhlbWVbdGhlbWVdO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0IGlzRGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICh0aGlzLmxvYWRpbmcpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmRpc2FibGVkO1xuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICAgIGdldCB2YWx1ZSgpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5fdmFsdWU7XG4gICAgfVxuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gICAgc2V0IHZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICAgICAgaWYgKHZhbHVlIHx8IHRoaXMuX3ZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLl92YWx1ZSA9IHRoaXMucmVtb3ZlUHJlZml4KHZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXQgaW5wdXRDbGFzcygpOiB7W2Nzc0NsYXNzOiBzdHJpbmddOiBib29sZWFufSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBmb2N1c2VkOiB0aGlzLnVpU3RhdGVzLmlzRm9jdXNlZCxcbiAgICAgICAgICAgIGRpc2FibGVkOiB0aGlzLmlzRGlzYWJsZWQsXG4gICAgICAgICAgICB2YWxpZDogdGhpcy5jdXJyZW50U3RhdGVbRXZvQ29udHJvbFN0YXRlcy52YWxpZF0sXG4gICAgICAgICAgICBpbnZhbGlkOiB0aGlzLmN1cnJlbnRTdGF0ZVtFdm9Db250cm9sU3RhdGVzLmludmFsaWRdLFxuICAgICAgICAgICAgW2BzaXplLSR7dGhpcy5zaXplfWBdOiB0aGlzLnNpemUgIT09IEV2b0lucHV0U2l6ZXMubm9ybWFsLFxuICAgICAgICAgICAgW2B0aGVtZS0ke3RoaXMudGhlbWV9YF06IHRydWUsXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgZ2V0IGhhc0FkZGl0aW9uYWwoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMudG9vbHRpcCB8fCB0aGlzLnVpU3RhdGVzLmhhc0N1c3RvbVRvb2x0aXAgfHwgISF0aGlzLmljb247XG4gICAgfVxuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gICAgc2V0IG1hc2tWYWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgICAgIGNvbnN0IG5vcm1hbGl6ZWRWYWx1ZSA9IHZhbHVlID8/ICcnO1xuICAgICAgICBpZiAodGhpcy5pTWFzaykge1xuICAgICAgICAgICAgaWYgKHRoaXMudW5tYXNrID09PSAndHlwZWQnKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pTWFzay50eXBlZFZhbHVlID0gbm9ybWFsaXplZFZhbHVlO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLnVubWFzaykge1xuICAgICAgICAgICAgICAgIHRoaXMuaU1hc2sudW5tYXNrZWRWYWx1ZSA9IG5vcm1hbGl6ZWRWYWx1ZTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pTWFzay52YWx1ZSA9IG5vcm1hbGl6ZWRWYWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMud3JpdGVUb0VsZW1lbnQobm9ybWFsaXplZFZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICAgIGdldCBtYXNrVmFsdWUoKTogYW55IHtcbiAgICAgICAgaWYgKCF0aGlzLmlNYXNrKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC52YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy51bm1hc2sgPT09ICd0eXBlZCcpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmlNYXNrLnR5cGVkVmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMudW5tYXNrKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5pTWFzay51bm1hc2tlZFZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmlNYXNrLnZhbHVlO1xuICAgIH1cblxuICAgIGdldCBpc0NsZWFyYWJsZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2xlYXJhYmxlICYmICF0aGlzLmRpc2FibGVkO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBjb25zdCBpbnB1dEVsID0gdGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudDtcblxuICAgICAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMubWFzaykge1xuICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlTWFza0luc3RhbmNlKHRoaXMubWFzayk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGZyb21FdmVudChpbnB1dEVsLCAnaW5wdXQnKVxuICAgICAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgICAgICBkZWJvdW5jZVRpbWUodGhpcy5pbnB1dERlYm91bmNlKSxcbiAgICAgICAgICAgICAgICAgICAgbWFwKChlOiBJbnB1dEV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5pTWFzaykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLm1hc2tWYWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoZS50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWU7XG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICBlbnRlclpvbmUodGhpcy56b25lKSxcbiAgICAgICAgICAgICAgICAgICAgdGFwKCh2YWx1ZTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9uSW5wdXRDaGFuZ2UodmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpLFxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgICAgICBpZiAodGhpcy5pTWFzaykge1xuICAgICAgICAgICAgdGhpcy5kZXN0cm95TWFzaygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAoIWNoYW5nZXMpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHttYXNrfSA9IGNoYW5nZXM7XG5cbiAgICAgICAgaWYgKG1hc2sgJiYgIW1hc2suZmlyc3RDaGFuZ2UpIHtcbiAgICAgICAgICAgIGNvbnN0IG5ld01hc2tPcHRpb25zID0gbWFzay5jdXJyZW50VmFsdWU7XG4gICAgICAgICAgICBpZiAobmV3TWFza09wdGlvbnMpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pTWFzaykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmlNYXNrLnVwZGF0ZU9wdGlvbnMobmV3TWFza09wdGlvbnMpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlTWFza0luc3RhbmNlKG5ld01hc2tPcHRpb25zKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuZGVzdHJveU1hc2soKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICAgIG9uQ2hhbmdlID0gKF92YWx1ZTogYW55KTogdm9pZCA9PiB7fTtcbiAgICBvblRvdWNoZWQgPSAoKTogdm9pZCA9PiB7fTtcblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuYXV0b0ZvY3VzKSB7XG4gICAgICAgICAgICB0aGlzLmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jaGVja0N1c3RvbVRvb2x0aXAoKTtcbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICB3cml0ZVRvRWxlbWVudCh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3JlbmRlcmVyLnNldFByb3BlcnR5KHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQsICd2YWx1ZScsIHZhbHVlKTtcbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgaWYgKHZhbHVlID09PSB0aGlzLl92YWx1ZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuXG4gICAgICAgIGlmICh0aGlzLm1hc2spIHtcbiAgICAgICAgICAgIHRoaXMubWFza1ZhbHVlID0gdmFsdWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLndyaXRlVG9FbGVtZW50KHZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICAgIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gICAgfVxuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gICAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICAgIH1cblxuICAgIHNldERpc2FibGVkU3RhdGUoc3RhdGU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kaXNhYmxlZCA9IHN0YXRlO1xuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICBmb2N1cygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgIH1cblxuICAgIG9uSW5wdXRDaGFuZ2UodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBpZiAodmFsdWUgfHwgdGhpcy5fdmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuX3ZhbHVlID0gdGhpcy5yZW1vdmVQcmVmaXgodmFsdWUpO1xuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLnByZWZpeCArICh0aGlzLl92YWx1ZSB8fCAnJykpO1xuICAgICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uSW5wdXRGb2N1cyhldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMudWlTdGF0ZXMuaXNGb2N1c2VkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnVpU3RhdGVzLmlzRm9jdXNlZCA9IHRydWU7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgICAgIHRoaXMub25Gb2N1cy5lbWl0KGV2ZW50KTtcbiAgICB9XG5cbiAgICBvbklucHV0Qmx1cihldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51aVN0YXRlcy5pc0ZvY3VzZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgICAgICAgdGhpcy5ibHVyLmVtaXQoZXZlbnQpO1xuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICAgIG9uVG9vbHRpcENsaWNrKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfVxuXG4gICAgb25DbGVhcigpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMubWFzaykge1xuICAgICAgICAgICAgdGhpcy5tYXNrVmFsdWUgPSAnJztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMud3JpdGVUb0VsZW1lbnQoJycpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMub25DaGFuZ2UoJycpO1xuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIGhpZGVUb29sdGlwKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnRvb2x0aXBWaXNpYmlsaXR5VGltZW91dCA9IHRydWU7XG5cbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy50b29sdGlwVmlzaWJpbGl0eVRpbWVvdXQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnVpU3RhdGVzLmlzVG9vbHRpcFZpc2libGUgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSwgMjUpO1xuICAgIH1cblxuICAgIHNob3dUb29sdGlwKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnVpU3RhdGVzLmlzVG9vbHRpcFZpc2libGUgPSB0cnVlO1xuICAgICAgICB0aGlzLnRvb2x0aXBWaXNpYmlsaXR5VGltZW91dCA9IGZhbHNlO1xuICAgIH1cblxuICAgIC8vIENvbXBvc2l0aW9uIGhhbmRsaW5nIGlzIHRha2VuIGZyb206XG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9ibG9iLzExLjAuMy9wYWNrYWdlcy9mb3Jtcy9zcmMvZGlyZWN0aXZlcy9kZWZhdWx0X3ZhbHVlX2FjY2Vzc29yLnRzI0wxNTJcbiAgICBfY29tcG9zaXRpb25TdGFydCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fY29tcG9zaW5nID0gdHJ1ZTtcbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICBfY29tcG9zaXRpb25FbmQodmFsdWU6IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLl9jb21wb3NpbmcgPSBmYWxzZTtcbiAgICAgICAgaWYgKHRoaXMuX2NvbXBvc2l0aW9uTW9kZSkge1xuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdmFsaWRhdGUoKToge21hc2s6IHRydWV9IHwgbnVsbCB7XG4gICAgICAgIGlmICh0aGlzLm1hc2tWYWxpZGF0aW9uICYmIHRoaXMubWFzayAmJiAhdGhpcy5pTWFzay5tYXNrZWQuaXNDb21wbGV0ZSkge1xuICAgICAgICAgICAgcmV0dXJuIHttYXNrOiB0cnVlfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICBwcml2YXRlIHJlbW92ZVByZWZpeCh2YWx1ZTogYW55KTogYW55IHtcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgJiYgdmFsdWUuaW5kZXhPZih0aGlzLnByZWZpeCkgPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZS5yZXBsYWNlKHRoaXMucHJlZml4LCAnJyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICAgIHByaXZhdGUgY3JlYXRlTWFza0luc3RhbmNlKG9wdHM6IGFueSkge1xuICAgICAgICB0aGlzLmlNYXNrID0gbmV3IElNYXNrLklucHV0TWFzayh0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LCBvcHRzKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGRlc3Ryb3lNYXNrKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlNYXNrPy5kZXN0cm95KCk7XG4gICAgICAgIHRoaXMuaU1hc2sgPSBudWxsO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2hlY2tDdXN0b21Ub29sdGlwKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnVpU3RhdGVzLmhhc0N1c3RvbVRvb2x0aXAgPVxuICAgICAgICAgICAgdGhpcy50b29sdGlwRWxlbWVudCAmJlxuICAgICAgICAgICAgdGhpcy50b29sdGlwRWxlbWVudC5uYXRpdmVFbGVtZW50ICYmXG4gICAgICAgICAgICB0aGlzLnRvb2x0aXBFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW4ubGVuZ3RoID4gMDtcbiAgICAgICAgdGhpcy5jdXN0b21Ub29sdGlwQ2hlY2tlZCA9IHRydWU7XG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cbn1cbiIsIjxsYWJlbCBjbGFzcz1cImV2by1pbnB1dFwiIFtldm9VaUNsYXNzXT1cImlucHV0Q2xhc3NcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZXZvLWlucHV0X19wcmVmaXgtY29udGVudFwiPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbZXZvSW5wdXRQcmVmaXhDb250ZW50XVwiIC8+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImV2by1pbnB1dF9fcHJlZml4LWljb25cIj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2V2b0lucHV0SWNvbl1cIiAvPlxuICAgIDwvZGl2PlxuXG4gICAgQGlmIChwcmVmaXgpIHtcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJldm8taW5wdXRfX3ByZWZpeFwiIFtldm9VaUNsYXNzXT1cIntmb2N1c2VkOiAoIWlzRGlzYWJsZWQgJiYgISF2YWx1ZSkgfHwgdWlTdGF0ZXMuaXNGb2N1c2VkfVwiPlxuICAgICAgICAgICAge3sgcHJlZml4IH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICB9XG5cbiAgICA8aW5wdXRcbiAgICAgICAgI2lucHV0XG4gICAgICAgIHR5cGU9XCJ7eyB0eXBlIH19XCJcbiAgICAgICAgcGxhY2Vob2xkZXI9XCJ7eyBwbGFjZWhvbGRlciB9fVwiXG4gICAgICAgIGNsYXNzPVwiZXZvLWlucHV0X19maWVsZFwiXG4gICAgICAgIFthdHRyLmF1dG9jb21wbGV0ZV09XCJhdXRvY29tcGxldGVcIlxuICAgICAgICBbYXR0ci5kYXRhLWNwXT1cImRhdGFDcFwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJpc0Rpc2FibGVkXCJcbiAgICAgICAgKGZvY3VzKT1cIm9uSW5wdXRGb2N1cygkZXZlbnQpXCJcbiAgICAgICAgKGJsdXIpPVwib25JbnB1dEJsdXIoJGV2ZW50KVwiXG4gICAgICAgIChjb21wb3NpdGlvbnN0YXJ0KT1cIl9jb21wb3NpdGlvblN0YXJ0KClcIlxuICAgICAgICAoY29tcG9zaXRpb25lbmQpPVwiX2NvbXBvc2l0aW9uRW5kKCRldmVudC50YXJnZXQudmFsdWUpXCJcbiAgICAvPlxuXG4gICAgQGlmIChsb2FkaW5nKSB7XG4gICAgICAgIDxldm8tY2lyY3VsYXItbG9hZGVyIGNsYXNzPVwiZXZvLWlucHV0X19sb2FkaW5nLXNwaW5uZXJcIiAvPlxuICAgIH0gQGVsc2Uge1xuICAgICAgICBAaWYgKGlzQ2xlYXJhYmxlKSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXZvLWlucHV0X19jbGVhcmFibGVcIiAoY2xpY2spPVwib25DbGVhcigpXCI+XG4gICAgICAgICAgICAgICAgPGV2by1pY29uIHNoYXBlPVwiZGVjbGluZVwiIGNsYXNzPVwiZXZvLWlucHV0X19pY29uLWNsZWFyXCIgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICAgIEBpZiAoaGFzQWRkaXRpb25hbCkge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV2by1pbnB1dF9fYWRkaXRpb25hbFwiPlxuICAgICAgICAgICAgICAgIEBpZiAodG9vbHRpcCB8fCB1aVN0YXRlcy5oYXNDdXN0b21Ub29sdGlwKSB7XG4gICAgICAgICAgICAgICAgICAgIDxldm8taWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgc2hhcGU9XCJoZWxwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZXZvLWlucHV0X190b29sdGlwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChtb3VzZWVudGVyKT1cInNob3dUb29sdGlwKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKG1vdXNlbGVhdmUpPVwiaGlkZVRvb2x0aXAoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25Ub29sdGlwQ2xpY2soJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIEBpZiAoaWNvbikge1xuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXZvLWlucHV0X19pY29uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW1nIFthdHRyLnNyY109XCJpY29uXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgKCFjdXN0b21Ub29sdGlwQ2hlY2tlZCB8fCB1aVN0YXRlcy5pc1Rvb2x0aXBWaXNpYmxlKSB7XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgICN0b29sdGlwQ29udGFpbmVyXG4gICAgICAgICAgICBbaGlkZGVuXT1cIiFjdXN0b21Ub29sdGlwQ2hlY2tlZFwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7J2V2by1pbnB1dF9fdG9vbHRpcC1jb250YWluZXInOiB0b29sdGlwfVwiXG4gICAgICAgICAgICAoY2xpY2spPVwib25Ub29sdGlwQ2xpY2soJGV2ZW50KVwiXG4gICAgICAgICAgICAobW91c2VlbnRlcik9XCJzaG93VG9vbHRpcCgpXCJcbiAgICAgICAgICAgIChtb3VzZWxlYXZlKT1cImhpZGVUb29sdGlwKClcIlxuICAgICAgICA+XG4gICAgICAgICAgICB7eyB0b29sdGlwIH19XG4gICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbdG9vbHRpcF1cIiAvPlxuICAgICAgICA8L2Rpdj5cbiAgICB9XG48L2xhYmVsPlxuXG5AaWYgKHNob3dFcnJvcnMpIHtcbiAgICA8ZXZvLWNvbnRyb2wtZXJyb3IgW2Vycm9yc109XCJjb250cm9sLmVycm9yc1wiIFtlcnJvcnNNZXNzYWdlc109XCJlcnJvcnNNZXNzYWdlc1wiIC8+XG59XG4iXX0=
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { InjectionToken, Injectable, PLATFORM_ID, ɵstringify as _stringify, Directive, Input, EventEmitter, Output, HostListener, Optional, ViewContainerRef, TemplateRef, Inject, NgModule, CUSTOM_ELEMENTS_SCHEMA, inject, SecurityContext, Component, ChangeDetectionStrategy, HostBinding, Pipe, output, forwardRef, ViewChild, ViewEncapsulation, ContentChild, ElementRef, ComponentRef, input, model, viewChild, signal, computed,
|
|
2
|
+
import { InjectionToken, Injectable, PLATFORM_ID, ɵstringify as _stringify, Directive, Input, EventEmitter, Output, HostListener, Optional, ViewContainerRef, TemplateRef, Inject, NgModule, CUSTOM_ELEMENTS_SCHEMA, inject, SecurityContext, Component, ChangeDetectionStrategy, HostBinding, Pipe, output, forwardRef, ViewChild, ViewEncapsulation, ContentChild, DestroyRef, ChangeDetectorRef, ElementRef, ComponentRef, input, model, viewChild, signal, computed, EnvironmentInjector, createComponent, Injector, makeEnvironmentProviders, booleanAttribute, NgZone, ApplicationRef, ComponentFactoryResolver, Host, ContentChildren, ViewChildren } from '@angular/core';
|
|
3
3
|
import * as i2 from '@angular/common';
|
|
4
4
|
import { isPlatformBrowser, CommonModule, AsyncPipe, NgClass, NgTemplateOutlet, NgIf, NgStyle, Location, NgFor } from '@angular/common';
|
|
5
5
|
import * as i1$1 from '@angular/forms';
|
|
@@ -19,9 +19,9 @@ import * as i4 from '@ng-select/ng-select';
|
|
|
19
19
|
import { NgSelectComponent, NgSelectModule } from '@ng-select/ng-select';
|
|
20
20
|
import { isNull, cloneDeep, isEqual, merge as merge$1, isUndefined } from 'lodash-es';
|
|
21
21
|
import * as IMask from 'imask';
|
|
22
|
+
import { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';
|
|
22
23
|
import flatpickr from 'flatpickr';
|
|
23
24
|
import { IMaskDirective } from 'angular-imask';
|
|
24
|
-
import { toObservable, takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
25
25
|
import { createPopper } from '@popperjs/core';
|
|
26
26
|
import { __decorate } from 'tslib';
|
|
27
27
|
import autobind from 'autobind-decorator';
|
|
@@ -1245,7 +1245,14 @@ class EvoInputComponent extends EvoBaseControl {
|
|
|
1245
1245
|
event.stopPropagation();
|
|
1246
1246
|
}
|
|
1247
1247
|
onClear() {
|
|
1248
|
-
this.
|
|
1248
|
+
if (this.mask) {
|
|
1249
|
+
this.maskValue = '';
|
|
1250
|
+
}
|
|
1251
|
+
else {
|
|
1252
|
+
this.writeToElement('');
|
|
1253
|
+
}
|
|
1254
|
+
this.onChange('');
|
|
1255
|
+
this.changeDetector.markForCheck();
|
|
1249
1256
|
}
|
|
1250
1257
|
hideTooltip() {
|
|
1251
1258
|
this.tooltipVisibilityTimeout = true;
|
|
@@ -1271,6 +1278,12 @@ class EvoInputComponent extends EvoBaseControl {
|
|
|
1271
1278
|
this.value = value;
|
|
1272
1279
|
}
|
|
1273
1280
|
}
|
|
1281
|
+
validate() {
|
|
1282
|
+
if (this.maskValidation && this.mask && !this.iMask.masked.isComplete) {
|
|
1283
|
+
return { mask: true };
|
|
1284
|
+
}
|
|
1285
|
+
return null;
|
|
1286
|
+
}
|
|
1274
1287
|
// eslint-disable-next-line
|
|
1275
1288
|
removePrefix(value) {
|
|
1276
1289
|
if (typeof value === 'string' && value.indexOf(this.prefix) === 0) {
|
|
@@ -1294,12 +1307,6 @@ class EvoInputComponent extends EvoBaseControl {
|
|
|
1294
1307
|
this.customTooltipChecked = true;
|
|
1295
1308
|
this.changeDetector.detectChanges();
|
|
1296
1309
|
}
|
|
1297
|
-
validate() {
|
|
1298
|
-
if (this.maskValidation && this.mask && !this.iMask.masked.isComplete) {
|
|
1299
|
-
return { mask: true };
|
|
1300
|
-
}
|
|
1301
|
-
return null;
|
|
1302
|
-
}
|
|
1303
1310
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: EvoInputComponent, deps: [{ token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }, { token: COMPOSITION_BUFFER_MODE, optional: true }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1304
1311
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.10", type: EvoInputComponent, isStandalone: true, selector: "evo-input", inputs: { autoFocus: "autoFocus", dataCp: ["data-cp", "dataCp"], icon: "icon", mask: "mask", placeholder: "placeholder", tooltip: "tooltip", type: "type", disabled: "disabled", loading: "loading", prefix: "prefix", autocomplete: "autocomplete", inputDebounce: "inputDebounce", unmask: "unmask", clearable: "clearable", maskValidation: "maskValidation", setValue: ["value", "setValue"], setSize: ["size", "setSize"], setTheme: ["theme", "setTheme"] }, outputs: { blur: "blur", onFocus: "onFocus" }, providers: [
|
|
1305
1312
|
{
|
|
@@ -1629,7 +1636,6 @@ class EvoAutocompleteComponent {
|
|
|
1629
1636
|
}
|
|
1630
1637
|
// eslint-disable-next-line
|
|
1631
1638
|
handleChange(value) {
|
|
1632
|
-
this.onChange(value);
|
|
1633
1639
|
this.changeEvent.emit(value);
|
|
1634
1640
|
}
|
|
1635
1641
|
onClearClick() {
|
|
@@ -1661,11 +1667,11 @@ class EvoAutocompleteComponent {
|
|
|
1661
1667
|
};
|
|
1662
1668
|
}
|
|
1663
1669
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: EvoAutocompleteComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1$1.NgControl }, { token: EvoIconService }, { token: i1.DomSanitizer }, { token: EVO_ICON_RESOLVER }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1664
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.10", type: EvoAutocompleteComponent, isStandalone: true, selector: "evo-autocomplete", inputs: { size: "size", isOpen: "isOpen", items: "items", bindLabel: "bindLabel", bindValue: "bindValue", markFirst: "markFirst", placeholder: "placeholder", typeToSearchText: "typeToSearchText", addTagText: "addTagText", loadingText: "loadingText", clearAllText: "clearAllText", dropdownPosition: "dropdownPosition", appendTo: "appendTo", loading: "loading", closeOnSelect: "closeOnSelect", hideSelected: "hideSelected", selectOnTab: "selectOnTab", openOnEnter: "openOnEnter", maxSelectedItems: "maxSelectedItems", groupBy: "groupBy", groupValue: "groupValue", bufferAmount: "bufferAmount", virtualScroll: "virtualScroll", selectableGroup: "selectableGroup", selectableGroupAsModel: "selectableGroupAsModel", searchFn: "searchFn", clearOnBackspace: "clearOnBackspace", typeahead: "typeahead", multiple: "multiple", multipleInline: "multipleInline", addTag: "addTag", clearable: "clearable", errorsMessages: "errorsMessages", compareWith: "compareWith", _notFoundText: ["notFoundText", "_notFoundText"], editQuery: "editQuery", searchable: "searchable", setSelectbox: ["isSelectbox", "setSelectbox"], setTheme: ["theme", "setTheme"] }, outputs: { blurEvent: "blur", focusEvent: "focus", changeEvent: "change", openEvent: "open", closeEvent: "close", searchEvent: "search", clearEvent: "clear", addEvent: "add", removeEvent: "remove", scrollEvent: "scroll", scrollToEndEvent: "scrollToEnd" }, queries: [{ propertyName: "labelTemp", first: true, predicate: ["labelTemp"], descendants: true, read: TemplateRef }, { propertyName: "multiLabelTemp", first: true, predicate: ["multiLabelTemp"], descendants: true, read: TemplateRef }, { propertyName: "optionTemp", first: true, predicate: ["optionTemp"], descendants: true, read: TemplateRef }, { propertyName: "optgroupTemp", first: true, predicate: ["optgroupTemp"], descendants: true, read: TemplateRef }, { propertyName: "headerTemp", first: true, predicate: ["headerTemp"], descendants: true, read: TemplateRef }, { propertyName: "footerTemp", first: true, predicate: ["footerTemp"], descendants: true, read: TemplateRef }, { propertyName: "notFoundTemp", first: true, predicate: ["notFoundTemp"], descendants: true, read: TemplateRef }], viewQueries: [{ propertyName: "ngSelectComponent", first: true, predicate: NgSelectComponent, descendants: true }], ngImport: i0, template: "<div class=\"evo-autocomplete\" [evoUiClass]=\"classes\">\n <ng-select\n [items]=\"items\"\n [bindLabel]=\"bindLabel\"\n [bindValue]=\"bindValue\"\n [markFirst]=\"markFirst\"\n [placeholder]=\"placeholder\"\n [notFoundText]=\"notFoundText\"\n [typeToSearchText]=\"typeToSearchText\"\n [addTagText]=\"addTagText\"\n [loadingText]=\"loadingText\"\n [clearAllText]=\"clearAllText\"\n [dropdownPosition]=\"dropdownPosition\"\n [appendTo]=\"appendTo\"\n [loading]=\"loading\"\n [closeOnSelect]=\"closeOnSelect\"\n [hideSelected]=\"hideSelected\"\n [selectOnTab]=\"selectOnTab\"\n [openOnEnter]=\"openOnEnter\"\n [maxSelectedItems]=\"maxSelectedItems\"\n [groupBy]=\"groupBy\"\n [groupValue]=\"groupValue\"\n [bufferAmount]=\"bufferAmount\"\n [virtualScroll]=\"virtualScroll\"\n [selectableGroup]=\"selectableGroup\"\n [selectableGroupAsModel]=\"selectableGroupAsModel\"\n [searchFn]=\"searchFn\"\n [clearOnBackspace]=\"clearOnBackspace\"\n [typeahead]=\"typeahead\"\n [multiple]=\"multiple || multipleInline\"\n [addTag]=\"addTag\"\n [searchable]=\"searchable\"\n [clearable]=\"clearable\"\n [isOpen]=\"isOpen\"\n [editableSearchTerm]=\"editQuery\"\n [disabled]=\"control.disabled\"\n [compareWith]=\"compareWith\"\n [(ngModel)]=\"value\"\n (blur)=\"onBlur($event)\"\n (focus)=\"onFocus($event)\"\n (change)=\"handleChange($event)\"\n (open)=\"openEvent.emit($event)\"\n (close)=\"closeEvent.emit($event)\"\n (search)=\"searchEvent.emit($event)\"\n (clear)=\"clearEvent.emit($event)\"\n (add)=\"addEvent.emit($event)\"\n (remove)=\"removeEvent.emit($event)\"\n (scroll)=\"scrollEvent.emit($event)\"\n (scrollToEnd)=\"scrollToEndEvent.emit($event)\"\n >\n <!-- Selected Item Template -->\n @if (labelTemp) {\n <ng-template ng-label-tmp let-item=\"item\">\n <ng-template *ngTemplateOutlet=\"labelTemp; context: {item: item}\" />\n </ng-template>\n }\n\n <!-- Overall Label For All Selected Items Template -->\n @if (multiLabelTemp) {\n <ng-template ng-multi-label-tmp let-items=\"items\" let-clear=\"clear\">\n <div class=\"evo-autocomplete__label\">\n <ng-template *ngTemplateOutlet=\"multiLabelTemp; context: {items: items, clear: clear}\" />\n </div>\n </ng-template>\n }\n @if (headerTemp) {\n <!-- Options header template -->\n <ng-template ng-header-tmp>\n <ng-template *ngTemplateOutlet=\"headerTemp; context: {items: items}\" />\n </ng-template>\n }\n\n <!-- Option Template -->\n @if (optionTemp) {\n <ng-template ng-option-tmp let-item=\"item\" let-index=\"index\" let-search=\"searchTerm\" let-item$=\"item$\">\n <ng-template\n *ngTemplateOutlet=\"\n optionTemp;\n context: {item: item, index: index, searchTerm: search, item$: item$}\n \"\n />\n </ng-template>\n }\n\n @if (multipleInline && !multiLabelTemp) {\n <ng-template ng-multi-label-tmp let-items=\"items\">\n <div class=\"ng-value evo-autocomplete__label\">{{ getMultipleInlineItemsLabels(items) }}</div>\n </ng-template>\n }\n\n @if (optgroupTemp) {\n <!-- Options group template -->\n <ng-template ng-optgroup-tmp let-item=\"item\" let-index=\"index\">\n <ng-template *ngTemplateOutlet=\"optgroupTemp; context: {item: item, index: index}\" />\n </ng-template>\n }\n\n <!-- Search Text Templates -->\n <ng-template ng-typetosearch-tmp>\n @if (typeToSearchText) {\n <div class=\"ng-option disabled\">{{ typeToSearchText }}</div>\n }\n </ng-template>\n <ng-template ng-loadingtext-tmp let-searchTerm=\"searchTerm\">\n <div class=\"ng-option disabled\">{{ loadingText }}</div>\n </ng-template>\n\n @if (notFoundTemp) {\n <ng-template ng-notfound-tmp let-searchTerm=\"searchTerm\">\n <ng-template *ngTemplateOutlet=\"notFoundTemp; context: {searchTerm: searchTerm}\" />\n </ng-template>\n } @else {\n <ng-template ng-notfound-tmp>\n <div class=\"ng-option disabled\">{{ notFoundText }}</div>\n </ng-template>\n }\n\n @if (footerTemp) {\n <!-- Options footer template -->\n <ng-template ng-footer-tmp>\n <ng-template *ngTemplateOutlet=\"footerTemp; context: {items: items}\" />\n </ng-template>\n }\n </ng-select>\n\n @if (hasErrors && errorsMessages) {\n <evo-control-error [errors]=\"control.errors\" [errorsMessages]=\"errorsMessages\" />\n }\n</div>\n", styles: ["@keyframes evo-fx-blink{50%{transform:scale(1);opacity:1}to{opacity:0}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes gradient{0%{background-position:0 50%}50%{background-position:50vw 50%}to{background-position:100vw 50%}}@keyframes evo-ellipsis-animation{0%{content:\"\"}25%{content:\".\"}50%{content:\"..\"}75%{content:\"...\"}to{content:\"\"}}evo-autocomplete{--evo-dropdown-max-height: 310px;--evo-autocomplete-option-overflow: hidden;--evo-autocomplete-option-text-overflow: ellipsis;--evo-autocomplete-option-white-space: normal;--evo-autocomplete-optgroup-overflow: hidden;--evo-autocomplete-optgroup-text-overflow: ellipsis;--evo-autocomplete-optgroup-white-space: nowrap;--evo-autocomplete-arrow-icon-color: #91B1B8;--evo-autocomplete-option-v-padding: 12px;--evo-autocomplete-option-h-padding: 16px;--evo-autocomplete-panel-border-radius: 8px;--evo-autocomplete-panel-shadow: 0px 8px 10px rgba(0, 0, 0, .14), 0px 3px 14px rgba(0, 0, 0, .12)}evo-autocomplete .evo-autocomplete{--inner-input-padding-right: 12px;position:relative;display:block}evo-autocomplete .evo-autocomplete__icon{display:block;flex:0 0 24px;width:24px;height:24px}evo-autocomplete .evo-autocomplete__icon_clear{position:absolute;top:12px;right:12px;z-index:1001;cursor:pointer;transition:fill .3s;fill:#91b1b8}evo-autocomplete .evo-autocomplete__icon_clear:hover{fill:#a7c1c6}evo-autocomplete .evo-autocomplete__icon_clear:active{fill:#829fa6}evo-autocomplete .evo-autocomplete__icon_dropdown{fill:#212121}evo-autocomplete .evo-autocomplete .ng-input{padding:0 var(--inner-input-padding-right) 0 12px}evo-autocomplete .evo-autocomplete .ng-placeholder{color:#9b9b9b}evo-autocomplete .evo-autocomplete .ng-value-container{align-items:center;min-width:0;overflow:hidden}evo-autocomplete .evo-autocomplete__label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}evo-autocomplete .evo-autocomplete .ng-select-container{--evo-input-height: 40px;--evo-input-border-radius: 4px;--evo-input-font-size: 14px;--evo-input-line-height: 24px;display:flex;height:var(--evo-input-height);color:#212121;font-weight:400;font-size:var(--evo-input-font-size);font-family:var(--evo-font);line-height:var(--evo-input-line-height);white-space:nowrap;background-color:#fff;border:1px solid #C6C6C6;border-radius:var(--evo-input-border-radius);outline:none;transition:color .3s,box-shadow .3s,background .3s,border .3s;position:relative;align-items:center;margin:0;padding:8px var(--inner-input-padding-right) 8px 12px;line-height:var(--evo-input-height)}evo-autocomplete .evo-autocomplete .ng-select-container:hover{border:1px solid #9B9B9B}evo-autocomplete .evo-autocomplete .ng-select-container:has(.ng-clear:not(:empty)){--inner-input-padding-right: 0}evo-autocomplete .evo-autocomplete .ng-select-container.ng-has-value .ng-placeholder{display:none}evo-autocomplete .evo-autocomplete .ng-select .ng-clear-wrapper{display:inline-flex;align-items:center;width:24px;height:100%;margin:0 8px;padding:0;text-align:center;color:#91b1b8;transition:color .3s}evo-autocomplete .evo-autocomplete .ng-select .ng-clear-wrapper:hover{color:#a7c1c6}evo-autocomplete .evo-autocomplete .ng-select .ng-clear-wrapper:active{color:#829fa6}evo-autocomplete .evo-autocomplete .ng-select .ng-clear-wrapper .ng-clear{display:none}evo-autocomplete .evo-autocomplete .ng-select .ng-clear-wrapper .ng-clear_patched{display:block;cursor:pointer}evo-autocomplete .evo-autocomplete .ng-select .ng-clear-wrapper .ng-clear_patched svg{display:block;fill:currentColor}evo-autocomplete .evo-autocomplete .ng-select .ng-spinner-loader{display:flex;justify-content:center;align-items:center;width:16px;height:100%;margin:0 0 0 8px;border:none;transform:none;animation:none}evo-autocomplete .evo-autocomplete .ng-select .ng-spinner-loader:before{content:\"\";display:block;flex:0 0 16px;width:16px;height:16px;border:2px solid #C6C6C6;border-top-color:#21c68b;border-radius:50%;animation:spin .8s linear infinite}evo-autocomplete .evo-autocomplete .ng-optgroup{font-weight:400;--inner-option-text-color: #212121;--inner-option-description-color: #9B9B9B;--inner-option-background: #FFFFFF;display:flex;align-items:center;min-height:48px;white-space:normal;color:var(--inner-option-text-color);background-color:var(--inner-option-background);padding:var(--evo-autocomplete-option-v-padding) var(--evo-autocomplete-option-h-padding);cursor:pointer;font-family:var(--evo-font);font-style:normal;font-size:14px;line-height:24px;font-weight:600}evo-autocomplete .evo-autocomplete .ng-optgroup evo-autocomplete-default-option{--evo-autocomplete-default-option-background: var(--inner-option-background);--evo-autocomplete-default-option-text-color: var(--inner-option-text-color);--evo-autocomplete-default-option-description-color: var(--inner-option-description-color)}evo-autocomplete .evo-autocomplete .ng-optgroup.ng-option-marked{--inner-option-text-color: #212121;--inner-option-description-color: #9B9B9B;--inner-option-background: #F4F6F8}evo-autocomplete .evo-autocomplete .ng-optgroup.ng-option-disabled{--inner-option-text-color: #C6C6C6;--inner-option-description-color: #C6C6C6;--inner-option-background: #FFFFFF;cursor:default}evo-autocomplete .evo-autocomplete .ng-optgroup.ng-option-selected{--inner-option-text-color: #212121;--inner-option-description-color: #9B9B9B;--inner-option-background: #E1ECEF}evo-autocomplete .evo-autocomplete .ng-option{font-family:var(--evo-font);font-style:normal;font-size:14px;line-height:24px;font-weight:400;--inner-option-text-color: #212121;--inner-option-description-color: #9B9B9B;--inner-option-background: #FFFFFF;display:flex;align-items:center;min-height:48px;white-space:normal;color:var(--inner-option-text-color);background-color:var(--inner-option-background);padding:var(--evo-autocomplete-option-v-padding) var(--evo-autocomplete-option-h-padding);cursor:pointer}evo-autocomplete .evo-autocomplete .ng-option evo-autocomplete-default-option{--evo-autocomplete-default-option-background: var(--inner-option-background);--evo-autocomplete-default-option-text-color: var(--inner-option-text-color);--evo-autocomplete-default-option-description-color: var(--inner-option-description-color)}evo-autocomplete .evo-autocomplete .ng-option.ng-option-marked{--inner-option-text-color: #212121;--inner-option-description-color: #9B9B9B;--inner-option-background: #F4F6F8}evo-autocomplete .evo-autocomplete .ng-option.ng-option-disabled{--inner-option-text-color: #C6C6C6;--inner-option-description-color: #C6C6C6;--inner-option-background: #FFFFFF;cursor:default}evo-autocomplete .evo-autocomplete .ng-option.ng-option-selected{--inner-option-text-color: #212121;--inner-option-description-color: #9B9B9B;--inner-option-background: #E1ECEF}evo-autocomplete .evo-autocomplete_is-edit-query .ng-select.ng-select-single:not(.ng-select-focused) .ng-select-container .ng-value-container .ng-value{visibility:visible}evo-autocomplete .evo-autocomplete_is-edit-query .ng-select.ng-select-single.ng-select-focused .ng-select-container .ng-value-container .ng-value{visibility:var(--evo-autocomplete-option-overflow)}evo-autocomplete .evo-autocomplete .ng-dropdown-panel{z-index:3001;display:block;margin:4px 0;background-color:#fff;border-radius:var(--evo-autocomplete-panel-border-radius);box-shadow:var(--evo-autocomplete-panel-shadow);overflow:hidden}evo-autocomplete .evo-autocomplete .ng-dropdown-panel.ng-select-top{bottom:100%}evo-autocomplete .evo-autocomplete .ng-dropdown-panel .ng-dropdown-panel-items{max-height:var(--evo-dropdown-max-height, 310px)}evo-autocomplete .evo-autocomplete .ng-dropdown-panel .ng-dropdown-panel-items .ng-option{overflow:var(--evo-autocomplete-option-overflow);white-space:var(--evo-autocomplete-option-white-space);text-overflow:var(--evo-autocomplete-option-text-overflow)}evo-autocomplete .evo-autocomplete .ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup{overflow:var(--evo-autocomplete-optgroup-overflow);white-space:var(--evo-autocomplete-optgroup-white-space);text-overflow:var(--evo-autocomplete-optgroup-text-overflow)}evo-autocomplete .evo-autocomplete .ng-dropdown-panel .ng-dropdown-panel-items::-webkit-scrollbar{width:16px;background-color:transparent}evo-autocomplete .evo-autocomplete .ng-dropdown-panel .ng-dropdown-panel-items::-webkit-scrollbar-track{background-color:transparent}evo-autocomplete .evo-autocomplete .ng-dropdown-panel .ng-dropdown-panel-items::-webkit-scrollbar-thumb{background-color:#c6c6c6;border:6px solid #FFFFFF;border-radius:16px}evo-autocomplete .evo-autocomplete .ng-dropdown-panel .ng-dropdown-panel-items::-webkit-scrollbar-button{display:none}evo-autocomplete .evo-autocomplete_is-selectbox{--inner-input-padding-right: 0}evo-autocomplete .evo-autocomplete_is-selectbox .ng-select .ng-arrow-wrapper{display:inline-flex;align-items:center;width:24px;height:100%;margin:0 8px;padding:0;text-align:center}evo-autocomplete .evo-autocomplete_is-selectbox .ng-select .ng-arrow-wrapper .ng-arrow{display:block;width:24px;height:24px;background-color:var(--evo-autocomplete-arrow-icon-color);-webkit-mask-image:url('data:image/svg+xml,<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">%0A <path d=\"M8.81066 10C8.14248 10 7.80786 10.8079 8.28033 11.2803L11.4697 14.4697C11.7626 14.7626 12.2374 14.7626 12.5303 14.4697L15.7197 11.2803C16.1921 10.8079 15.8575 10 15.1893 10H8.81066Z\" />%0A</svg>%0A');mask-image:url('data:image/svg+xml,<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">%0A <path d=\"M8.81066 10C8.14248 10 7.80786 10.8079 8.28033 11.2803L11.4697 14.4697C11.7626 14.7626 12.2374 14.7626 12.5303 14.4697L15.7197 11.2803C16.1921 10.8079 15.8575 10 15.1893 10H8.81066Z\" />%0A</svg>%0A');background-position:center;transition:transform .25s}evo-autocomplete .evo-autocomplete_is-selectbox .ng-select.ng-select-opened .ng-arrow{transform:rotate(180deg);transform-origin:center center}evo-autocomplete .evo-autocomplete_is-selectbox.ng-select-focused{z-index:11}evo-autocomplete .evo-autocomplete_is-selectbox.ng-select-focused .ng-placeholder{display:none}evo-autocomplete .evo-autocomplete_is-selectbox.ng-select-focused .ng-select-container{box-shadow:0 0 2px #91b1b8}evo-autocomplete .evo-autocomplete_theme-default.evo-autocomplete_size-normal .ng-select-container{--evo-input-height: 40px;--evo-input-border-radius: 4px;--evo-input-font-size: 14px;--evo-input-line-height: 24px;display:flex;align-items:center;height:var(--evo-input-height);color:#212121;font-weight:400;font-size:var(--evo-input-font-size);font-family:var(--evo-font);line-height:var(--evo-input-line-height);white-space:nowrap;background-color:#fff;border:1px solid #C6C6C6;border-radius:var(--evo-input-border-radius);outline:none;transition:color .3s,box-shadow .3s,background .3s,border .3s}evo-autocomplete .evo-autocomplete_theme-default.evo-autocomplete_size-normal .ng-select-container:hover{border:1px solid #9B9B9B}evo-autocomplete .evo-autocomplete_theme-default.evo-autocomplete_size-small .ng-select-container{--evo-input-height: 40px;--evo-input-border-radius: 4px;--evo-input-font-size: 14px;--evo-input-line-height: 24px;--evo-input-height: 32px;display:flex;align-items:center;height:var(--evo-input-height);color:#212121;font-weight:400;font-size:var(--evo-input-font-size);font-family:var(--evo-font);line-height:var(--evo-input-line-height);white-space:nowrap;background-color:#fff;border:1px solid #C6C6C6;border-radius:var(--evo-input-border-radius);outline:none;transition:color .3s,box-shadow .3s,background .3s,border .3s;padding:4px var(--inner-input-padding-right) 4px 12px}evo-autocomplete .evo-autocomplete_theme-default.evo-autocomplete_size-small .ng-select-container:hover{border:1px solid #9B9B9B}evo-autocomplete .evo-autocomplete_theme-rounded.evo-autocomplete_size-normal .ng-select-container{--evo-input-height: 40px;--evo-input-border-radius: 4px;--evo-input-font-size: 14px;--evo-input-line-height: 24px;--evo-input-border-radius: 256px;display:flex;align-items:center;height:var(--evo-input-height);color:#212121;font-weight:400;font-size:var(--evo-input-font-size);font-family:var(--evo-font);line-height:var(--evo-input-line-height);white-space:nowrap;background-color:#fff;border:1px solid #C6C6C6;border-radius:var(--evo-input-border-radius);outline:none;transition:color .3s,box-shadow .3s,background .3s,border .3s}evo-autocomplete .evo-autocomplete_theme-rounded.evo-autocomplete_size-normal .ng-select-container:hover{border:1px solid #9B9B9B}evo-autocomplete .evo-autocomplete_theme-rounded.evo-autocomplete_size-small .ng-select-container{--evo-input-border-radius: 4px;--evo-input-line-height: 24px;--evo-input-font-size: 14px;--evo-input-height: 40px;--evo-input-border-radius: 256px;display:flex;align-items:center;height:var(--evo-input-height);color:#212121;font-weight:400;font-size:var(--evo-input-font-size);font-family:var(--evo-font);line-height:var(--evo-input-line-height);white-space:nowrap;background-color:#fff;border:1px solid #C6C6C6;border-radius:var(--evo-input-border-radius);outline:none;transition:color .3s,box-shadow .3s,background .3s,border .3s}evo-autocomplete .evo-autocomplete_theme-rounded.evo-autocomplete_size-small .ng-select-container:hover{border:1px solid #9B9B9B}evo-autocomplete .evo-autocomplete_is-multiple-inline .ng-select .ng-select-container .ng-value-icon{display:none}evo-autocomplete .evo-autocomplete_is-multiple-inline .ng-select .ng-select-container .ng-input{display:none}evo-autocomplete .evo-autocomplete .ng-select-multiple .ng-option-selected{--inner-option-background: #FFFFFF}evo-autocomplete .evo-autocomplete .ng-select-multiple .ng-option-selected.ng-option-marked{--inner-option-background: #F4F6F8}evo-autocomplete .evo-autocomplete .ng-select.ng-select-focused .ng-select-container,evo-autocomplete .evo-autocomplete .ng-select.ng-select-opened .ng-select-container{border:solid 1px #74706F}evo-autocomplete .evo-autocomplete.evo-autocomplete_touched.evo-autocomplete_invalid .ng-select:not(.ng-select-opened) .ng-select-container{border-color:#ff1817!important}evo-autocomplete .evo-autocomplete.evo-autocomplete_disabled .ng-select-container{color:#b0b0b0!important;background-color:#f9fafb!important;border:1px solid #E3E3E3!important;cursor:default;pointer-events:none}evo-autocomplete .evo-autocomplete.evo-autocomplete_disabled .ng-select-container .ng-arrow{opacity:.3}evo-autocomplete .evo-autocomplete .ng-input>input[readonly]{-webkit-user-select:auto!important;user-select:auto!important}\n"], dependencies: [{ kind: "directive", type: EvoUiClassDirective, selector: "[evoUiClass]", inputs: ["class", "evoUiClass"] }, { kind: "ngmodule", type: NgSelectModule }, { kind: "component", type: i4.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "deselectOnClick"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "directive", type: i4.NgOptgroupTemplateDirective, selector: "[ng-optgroup-tmp]" }, { kind: "directive", type: i4.NgOptionTemplateDirective, selector: "[ng-option-tmp]" }, { kind: "directive", type: i4.NgLabelTemplateDirective, selector: "[ng-label-tmp]" }, { kind: "directive", type: i4.NgMultiLabelTemplateDirective, selector: "[ng-multi-label-tmp]" }, { kind: "directive", type: i4.NgHeaderTemplateDirective, selector: "[ng-header-tmp]" }, { kind: "directive", type: i4.NgFooterTemplateDirective, selector: "[ng-footer-tmp]" }, { kind: "directive", type: i4.NgNotFoundTemplateDirective, selector: "[ng-notfound-tmp]" }, { kind: "directive", type: i4.NgTypeToSearchTemplateDirective, selector: "[ng-typetosearch-tmp]" }, { kind: "directive", type: i4.NgLoadingTextTemplateDirective, selector: "[ng-loadingtext-tmp]" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: EvoControlErrorModule }, { kind: "component", type: EvoControlErrorComponent, selector: "evo-control-error", inputs: ["errors", "errorsMessages", "showCount"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
1670
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.10", type: EvoAutocompleteComponent, isStandalone: true, selector: "evo-autocomplete", inputs: { size: "size", isOpen: "isOpen", items: "items", bindLabel: "bindLabel", bindValue: "bindValue", markFirst: "markFirst", placeholder: "placeholder", typeToSearchText: "typeToSearchText", addTagText: "addTagText", loadingText: "loadingText", clearAllText: "clearAllText", dropdownPosition: "dropdownPosition", appendTo: "appendTo", loading: "loading", closeOnSelect: "closeOnSelect", hideSelected: "hideSelected", selectOnTab: "selectOnTab", openOnEnter: "openOnEnter", maxSelectedItems: "maxSelectedItems", groupBy: "groupBy", groupValue: "groupValue", bufferAmount: "bufferAmount", virtualScroll: "virtualScroll", selectableGroup: "selectableGroup", selectableGroupAsModel: "selectableGroupAsModel", searchFn: "searchFn", clearOnBackspace: "clearOnBackspace", typeahead: "typeahead", multiple: "multiple", multipleInline: "multipleInline", addTag: "addTag", clearable: "clearable", errorsMessages: "errorsMessages", compareWith: "compareWith", _notFoundText: ["notFoundText", "_notFoundText"], editQuery: "editQuery", searchable: "searchable", setSelectbox: ["isSelectbox", "setSelectbox"], setTheme: ["theme", "setTheme"] }, outputs: { blurEvent: "blur", focusEvent: "focus", changeEvent: "change", openEvent: "open", closeEvent: "close", searchEvent: "search", clearEvent: "clear", addEvent: "add", removeEvent: "remove", scrollEvent: "scroll", scrollToEndEvent: "scrollToEnd" }, queries: [{ propertyName: "labelTemp", first: true, predicate: ["labelTemp"], descendants: true, read: TemplateRef }, { propertyName: "multiLabelTemp", first: true, predicate: ["multiLabelTemp"], descendants: true, read: TemplateRef }, { propertyName: "optionTemp", first: true, predicate: ["optionTemp"], descendants: true, read: TemplateRef }, { propertyName: "optgroupTemp", first: true, predicate: ["optgroupTemp"], descendants: true, read: TemplateRef }, { propertyName: "headerTemp", first: true, predicate: ["headerTemp"], descendants: true, read: TemplateRef }, { propertyName: "footerTemp", first: true, predicate: ["footerTemp"], descendants: true, read: TemplateRef }, { propertyName: "notFoundTemp", first: true, predicate: ["notFoundTemp"], descendants: true, read: TemplateRef }], viewQueries: [{ propertyName: "ngSelectComponent", first: true, predicate: NgSelectComponent, descendants: true }], ngImport: i0, template: "<div class=\"evo-autocomplete\" [evoUiClass]=\"classes\">\n <ng-select\n [items]=\"items\"\n [bindLabel]=\"bindLabel\"\n [bindValue]=\"bindValue\"\n [markFirst]=\"markFirst\"\n [placeholder]=\"placeholder\"\n [notFoundText]=\"notFoundText\"\n [typeToSearchText]=\"typeToSearchText\"\n [addTagText]=\"addTagText\"\n [loadingText]=\"loadingText\"\n [clearAllText]=\"clearAllText\"\n [dropdownPosition]=\"dropdownPosition\"\n [appendTo]=\"appendTo\"\n [loading]=\"loading\"\n [closeOnSelect]=\"closeOnSelect\"\n [hideSelected]=\"hideSelected\"\n [selectOnTab]=\"selectOnTab\"\n [openOnEnter]=\"openOnEnter\"\n [maxSelectedItems]=\"maxSelectedItems\"\n [groupBy]=\"groupBy\"\n [groupValue]=\"groupValue\"\n [bufferAmount]=\"bufferAmount\"\n [virtualScroll]=\"virtualScroll\"\n [selectableGroup]=\"selectableGroup\"\n [selectableGroupAsModel]=\"selectableGroupAsModel\"\n [searchFn]=\"searchFn\"\n [clearOnBackspace]=\"clearOnBackspace\"\n [typeahead]=\"typeahead\"\n [multiple]=\"multiple || multipleInline\"\n [addTag]=\"addTag\"\n [searchable]=\"searchable\"\n [clearable]=\"clearable\"\n [isOpen]=\"isOpen\"\n [editableSearchTerm]=\"editQuery\"\n [disabled]=\"control.disabled\"\n [compareWith]=\"compareWith\"\n [(ngModel)]=\"value\"\n (ngModelChange)=\"onChange($event)\"\n (blur)=\"onBlur($event)\"\n (focus)=\"onFocus($event)\"\n (change)=\"handleChange($event)\"\n (open)=\"openEvent.emit($event)\"\n (close)=\"closeEvent.emit($event)\"\n (search)=\"searchEvent.emit($event)\"\n (clear)=\"clearEvent.emit($event)\"\n (add)=\"addEvent.emit($event)\"\n (remove)=\"removeEvent.emit($event)\"\n (scroll)=\"scrollEvent.emit($event)\"\n (scrollToEnd)=\"scrollToEndEvent.emit($event)\"\n >\n <!-- Selected Item Template -->\n @if (labelTemp) {\n <ng-template ng-label-tmp let-item=\"item\">\n <ng-template *ngTemplateOutlet=\"labelTemp; context: {item: item}\" />\n </ng-template>\n }\n\n <!-- Overall Label For All Selected Items Template -->\n @if (multiLabelTemp) {\n <ng-template ng-multi-label-tmp let-items=\"items\" let-clear=\"clear\">\n <div class=\"evo-autocomplete__label\">\n <ng-template *ngTemplateOutlet=\"multiLabelTemp; context: {items: items, clear: clear}\" />\n </div>\n </ng-template>\n }\n @if (headerTemp) {\n <!-- Options header template -->\n <ng-template ng-header-tmp>\n <ng-template *ngTemplateOutlet=\"headerTemp; context: {items: items}\" />\n </ng-template>\n }\n\n <!-- Option Template -->\n @if (optionTemp) {\n <ng-template ng-option-tmp let-item=\"item\" let-index=\"index\" let-search=\"searchTerm\" let-item$=\"item$\">\n <ng-template\n *ngTemplateOutlet=\"\n optionTemp;\n context: {item: item, index: index, searchTerm: search, item$: item$}\n \"\n />\n </ng-template>\n }\n\n @if (multipleInline && !multiLabelTemp) {\n <ng-template ng-multi-label-tmp let-items=\"items\">\n <div class=\"ng-value evo-autocomplete__label\">{{ getMultipleInlineItemsLabels(items) }}</div>\n </ng-template>\n }\n\n @if (optgroupTemp) {\n <!-- Options group template -->\n <ng-template ng-optgroup-tmp let-item=\"item\" let-index=\"index\">\n <ng-template *ngTemplateOutlet=\"optgroupTemp; context: {item: item, index: index}\" />\n </ng-template>\n }\n\n <!-- Search Text Templates -->\n <ng-template ng-typetosearch-tmp>\n @if (typeToSearchText) {\n <div class=\"ng-option disabled\">{{ typeToSearchText }}</div>\n }\n </ng-template>\n <ng-template ng-loadingtext-tmp let-searchTerm=\"searchTerm\">\n <div class=\"ng-option disabled\">{{ loadingText }}</div>\n </ng-template>\n\n @if (notFoundTemp) {\n <ng-template ng-notfound-tmp let-searchTerm=\"searchTerm\">\n <ng-template *ngTemplateOutlet=\"notFoundTemp; context: {searchTerm: searchTerm}\" />\n </ng-template>\n } @else {\n <ng-template ng-notfound-tmp>\n <div class=\"ng-option disabled\">{{ notFoundText }}</div>\n </ng-template>\n }\n\n @if (footerTemp) {\n <!-- Options footer template -->\n <ng-template ng-footer-tmp>\n <ng-template *ngTemplateOutlet=\"footerTemp; context: {items: items}\" />\n </ng-template>\n }\n </ng-select>\n\n @if (hasErrors && errorsMessages) {\n <evo-control-error [errors]=\"control.errors\" [errorsMessages]=\"errorsMessages\" />\n }\n</div>\n", styles: ["@keyframes evo-fx-blink{50%{transform:scale(1);opacity:1}to{opacity:0}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes gradient{0%{background-position:0 50%}50%{background-position:50vw 50%}to{background-position:100vw 50%}}@keyframes evo-ellipsis-animation{0%{content:\"\"}25%{content:\".\"}50%{content:\"..\"}75%{content:\"...\"}to{content:\"\"}}evo-autocomplete{--evo-dropdown-max-height: 310px;--evo-autocomplete-option-overflow: hidden;--evo-autocomplete-option-text-overflow: ellipsis;--evo-autocomplete-option-white-space: normal;--evo-autocomplete-optgroup-overflow: hidden;--evo-autocomplete-optgroup-text-overflow: ellipsis;--evo-autocomplete-optgroup-white-space: nowrap;--evo-autocomplete-arrow-icon-color: #91B1B8;--evo-autocomplete-option-v-padding: 12px;--evo-autocomplete-option-h-padding: 16px;--evo-autocomplete-panel-border-radius: 8px;--evo-autocomplete-panel-shadow: 0px 8px 10px rgba(0, 0, 0, .14), 0px 3px 14px rgba(0, 0, 0, .12)}evo-autocomplete .evo-autocomplete{--inner-input-padding-right: 12px;position:relative;display:block}evo-autocomplete .evo-autocomplete__icon{display:block;flex:0 0 24px;width:24px;height:24px}evo-autocomplete .evo-autocomplete__icon_clear{position:absolute;top:12px;right:12px;z-index:1001;cursor:pointer;transition:fill .3s;fill:#91b1b8}evo-autocomplete .evo-autocomplete__icon_clear:hover{fill:#a7c1c6}evo-autocomplete .evo-autocomplete__icon_clear:active{fill:#829fa6}evo-autocomplete .evo-autocomplete__icon_dropdown{fill:#212121}evo-autocomplete .evo-autocomplete .ng-input{padding:0 var(--inner-input-padding-right) 0 12px}evo-autocomplete .evo-autocomplete .ng-placeholder{color:#9b9b9b}evo-autocomplete .evo-autocomplete .ng-value-container{align-items:center;min-width:0;overflow:hidden}evo-autocomplete .evo-autocomplete__label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}evo-autocomplete .evo-autocomplete .ng-select-container{--evo-input-height: 40px;--evo-input-border-radius: 4px;--evo-input-font-size: 14px;--evo-input-line-height: 24px;display:flex;height:var(--evo-input-height);color:#212121;font-weight:400;font-size:var(--evo-input-font-size);font-family:var(--evo-font);line-height:var(--evo-input-line-height);white-space:nowrap;background-color:#fff;border:1px solid #C6C6C6;border-radius:var(--evo-input-border-radius);outline:none;transition:color .3s,box-shadow .3s,background .3s,border .3s;position:relative;align-items:center;margin:0;padding:8px var(--inner-input-padding-right) 8px 12px;line-height:var(--evo-input-height)}evo-autocomplete .evo-autocomplete .ng-select-container:hover{border:1px solid #9B9B9B}evo-autocomplete .evo-autocomplete .ng-select-container:has(.ng-clear:not(:empty)){--inner-input-padding-right: 0}evo-autocomplete .evo-autocomplete .ng-select-container.ng-has-value .ng-placeholder{display:none}evo-autocomplete .evo-autocomplete .ng-select .ng-clear-wrapper{display:inline-flex;align-items:center;width:24px;height:100%;margin:0 8px;padding:0;text-align:center;color:#91b1b8;transition:color .3s}evo-autocomplete .evo-autocomplete .ng-select .ng-clear-wrapper:hover{color:#a7c1c6}evo-autocomplete .evo-autocomplete .ng-select .ng-clear-wrapper:active{color:#829fa6}evo-autocomplete .evo-autocomplete .ng-select .ng-clear-wrapper .ng-clear{display:none}evo-autocomplete .evo-autocomplete .ng-select .ng-clear-wrapper .ng-clear_patched{display:block;cursor:pointer}evo-autocomplete .evo-autocomplete .ng-select .ng-clear-wrapper .ng-clear_patched svg{display:block;fill:currentColor}evo-autocomplete .evo-autocomplete .ng-select .ng-spinner-loader{display:flex;justify-content:center;align-items:center;width:16px;height:100%;margin:0 0 0 8px;border:none;transform:none;animation:none}evo-autocomplete .evo-autocomplete .ng-select .ng-spinner-loader:before{content:\"\";display:block;flex:0 0 16px;width:16px;height:16px;border:2px solid #C6C6C6;border-top-color:#21c68b;border-radius:50%;animation:spin .8s linear infinite}evo-autocomplete .evo-autocomplete .ng-optgroup{font-weight:400;--inner-option-text-color: #212121;--inner-option-description-color: #9B9B9B;--inner-option-background: #FFFFFF;display:flex;align-items:center;min-height:48px;white-space:normal;color:var(--inner-option-text-color);background-color:var(--inner-option-background);padding:var(--evo-autocomplete-option-v-padding) var(--evo-autocomplete-option-h-padding);cursor:pointer;font-family:var(--evo-font);font-style:normal;font-size:14px;line-height:24px;font-weight:600}evo-autocomplete .evo-autocomplete .ng-optgroup evo-autocomplete-default-option{--evo-autocomplete-default-option-background: var(--inner-option-background);--evo-autocomplete-default-option-text-color: var(--inner-option-text-color);--evo-autocomplete-default-option-description-color: var(--inner-option-description-color)}evo-autocomplete .evo-autocomplete .ng-optgroup.ng-option-marked{--inner-option-text-color: #212121;--inner-option-description-color: #9B9B9B;--inner-option-background: #F4F6F8}evo-autocomplete .evo-autocomplete .ng-optgroup.ng-option-disabled{--inner-option-text-color: #C6C6C6;--inner-option-description-color: #C6C6C6;--inner-option-background: #FFFFFF;cursor:default}evo-autocomplete .evo-autocomplete .ng-optgroup.ng-option-selected{--inner-option-text-color: #212121;--inner-option-description-color: #9B9B9B;--inner-option-background: #E1ECEF}evo-autocomplete .evo-autocomplete .ng-option{font-family:var(--evo-font);font-style:normal;font-size:14px;line-height:24px;font-weight:400;--inner-option-text-color: #212121;--inner-option-description-color: #9B9B9B;--inner-option-background: #FFFFFF;display:flex;align-items:center;min-height:48px;white-space:normal;color:var(--inner-option-text-color);background-color:var(--inner-option-background);padding:var(--evo-autocomplete-option-v-padding) var(--evo-autocomplete-option-h-padding);cursor:pointer}evo-autocomplete .evo-autocomplete .ng-option evo-autocomplete-default-option{--evo-autocomplete-default-option-background: var(--inner-option-background);--evo-autocomplete-default-option-text-color: var(--inner-option-text-color);--evo-autocomplete-default-option-description-color: var(--inner-option-description-color)}evo-autocomplete .evo-autocomplete .ng-option.ng-option-marked{--inner-option-text-color: #212121;--inner-option-description-color: #9B9B9B;--inner-option-background: #F4F6F8}evo-autocomplete .evo-autocomplete .ng-option.ng-option-disabled{--inner-option-text-color: #C6C6C6;--inner-option-description-color: #C6C6C6;--inner-option-background: #FFFFFF;cursor:default}evo-autocomplete .evo-autocomplete .ng-option.ng-option-selected{--inner-option-text-color: #212121;--inner-option-description-color: #9B9B9B;--inner-option-background: #E1ECEF}evo-autocomplete .evo-autocomplete_is-edit-query .ng-select.ng-select-single:not(.ng-select-focused) .ng-select-container .ng-value-container .ng-value{visibility:visible}evo-autocomplete .evo-autocomplete_is-edit-query .ng-select.ng-select-single.ng-select-focused .ng-select-container .ng-value-container .ng-value{visibility:var(--evo-autocomplete-option-overflow)}evo-autocomplete .evo-autocomplete .ng-dropdown-panel{z-index:3001;display:block;margin:4px 0;background-color:#fff;border-radius:var(--evo-autocomplete-panel-border-radius);box-shadow:var(--evo-autocomplete-panel-shadow);overflow:hidden}evo-autocomplete .evo-autocomplete .ng-dropdown-panel.ng-select-top{bottom:100%}evo-autocomplete .evo-autocomplete .ng-dropdown-panel .ng-dropdown-panel-items{max-height:var(--evo-dropdown-max-height, 310px)}evo-autocomplete .evo-autocomplete .ng-dropdown-panel .ng-dropdown-panel-items .ng-option{overflow:var(--evo-autocomplete-option-overflow);white-space:var(--evo-autocomplete-option-white-space);text-overflow:var(--evo-autocomplete-option-text-overflow)}evo-autocomplete .evo-autocomplete .ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup{overflow:var(--evo-autocomplete-optgroup-overflow);white-space:var(--evo-autocomplete-optgroup-white-space);text-overflow:var(--evo-autocomplete-optgroup-text-overflow)}evo-autocomplete .evo-autocomplete .ng-dropdown-panel .ng-dropdown-panel-items::-webkit-scrollbar{width:16px;background-color:transparent}evo-autocomplete .evo-autocomplete .ng-dropdown-panel .ng-dropdown-panel-items::-webkit-scrollbar-track{background-color:transparent}evo-autocomplete .evo-autocomplete .ng-dropdown-panel .ng-dropdown-panel-items::-webkit-scrollbar-thumb{background-color:#c6c6c6;border:6px solid #FFFFFF;border-radius:16px}evo-autocomplete .evo-autocomplete .ng-dropdown-panel .ng-dropdown-panel-items::-webkit-scrollbar-button{display:none}evo-autocomplete .evo-autocomplete_is-selectbox{--inner-input-padding-right: 0}evo-autocomplete .evo-autocomplete_is-selectbox .ng-select .ng-arrow-wrapper{display:inline-flex;align-items:center;width:24px;height:100%;margin:0 8px;padding:0;text-align:center}evo-autocomplete .evo-autocomplete_is-selectbox .ng-select .ng-arrow-wrapper .ng-arrow{display:block;width:24px;height:24px;background-color:var(--evo-autocomplete-arrow-icon-color);-webkit-mask-image:url('data:image/svg+xml,<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">%0A <path d=\"M8.81066 10C8.14248 10 7.80786 10.8079 8.28033 11.2803L11.4697 14.4697C11.7626 14.7626 12.2374 14.7626 12.5303 14.4697L15.7197 11.2803C16.1921 10.8079 15.8575 10 15.1893 10H8.81066Z\" />%0A</svg>%0A');mask-image:url('data:image/svg+xml,<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">%0A <path d=\"M8.81066 10C8.14248 10 7.80786 10.8079 8.28033 11.2803L11.4697 14.4697C11.7626 14.7626 12.2374 14.7626 12.5303 14.4697L15.7197 11.2803C16.1921 10.8079 15.8575 10 15.1893 10H8.81066Z\" />%0A</svg>%0A');background-position:center;transition:transform .25s}evo-autocomplete .evo-autocomplete_is-selectbox .ng-select.ng-select-opened .ng-arrow{transform:rotate(180deg);transform-origin:center center}evo-autocomplete .evo-autocomplete_is-selectbox.ng-select-focused{z-index:11}evo-autocomplete .evo-autocomplete_is-selectbox.ng-select-focused .ng-placeholder{display:none}evo-autocomplete .evo-autocomplete_is-selectbox.ng-select-focused .ng-select-container{box-shadow:0 0 2px #91b1b8}evo-autocomplete .evo-autocomplete_theme-default.evo-autocomplete_size-normal .ng-select-container{--evo-input-height: 40px;--evo-input-border-radius: 4px;--evo-input-font-size: 14px;--evo-input-line-height: 24px;display:flex;align-items:center;height:var(--evo-input-height);color:#212121;font-weight:400;font-size:var(--evo-input-font-size);font-family:var(--evo-font);line-height:var(--evo-input-line-height);white-space:nowrap;background-color:#fff;border:1px solid #C6C6C6;border-radius:var(--evo-input-border-radius);outline:none;transition:color .3s,box-shadow .3s,background .3s,border .3s}evo-autocomplete .evo-autocomplete_theme-default.evo-autocomplete_size-normal .ng-select-container:hover{border:1px solid #9B9B9B}evo-autocomplete .evo-autocomplete_theme-default.evo-autocomplete_size-small .ng-select-container{--evo-input-height: 40px;--evo-input-border-radius: 4px;--evo-input-font-size: 14px;--evo-input-line-height: 24px;--evo-input-height: 32px;display:flex;align-items:center;height:var(--evo-input-height);color:#212121;font-weight:400;font-size:var(--evo-input-font-size);font-family:var(--evo-font);line-height:var(--evo-input-line-height);white-space:nowrap;background-color:#fff;border:1px solid #C6C6C6;border-radius:var(--evo-input-border-radius);outline:none;transition:color .3s,box-shadow .3s,background .3s,border .3s;padding:4px var(--inner-input-padding-right) 4px 12px}evo-autocomplete .evo-autocomplete_theme-default.evo-autocomplete_size-small .ng-select-container:hover{border:1px solid #9B9B9B}evo-autocomplete .evo-autocomplete_theme-rounded.evo-autocomplete_size-normal .ng-select-container{--evo-input-height: 40px;--evo-input-border-radius: 4px;--evo-input-font-size: 14px;--evo-input-line-height: 24px;--evo-input-border-radius: 256px;display:flex;align-items:center;height:var(--evo-input-height);color:#212121;font-weight:400;font-size:var(--evo-input-font-size);font-family:var(--evo-font);line-height:var(--evo-input-line-height);white-space:nowrap;background-color:#fff;border:1px solid #C6C6C6;border-radius:var(--evo-input-border-radius);outline:none;transition:color .3s,box-shadow .3s,background .3s,border .3s}evo-autocomplete .evo-autocomplete_theme-rounded.evo-autocomplete_size-normal .ng-select-container:hover{border:1px solid #9B9B9B}evo-autocomplete .evo-autocomplete_theme-rounded.evo-autocomplete_size-small .ng-select-container{--evo-input-border-radius: 4px;--evo-input-line-height: 24px;--evo-input-font-size: 14px;--evo-input-height: 40px;--evo-input-border-radius: 256px;display:flex;align-items:center;height:var(--evo-input-height);color:#212121;font-weight:400;font-size:var(--evo-input-font-size);font-family:var(--evo-font);line-height:var(--evo-input-line-height);white-space:nowrap;background-color:#fff;border:1px solid #C6C6C6;border-radius:var(--evo-input-border-radius);outline:none;transition:color .3s,box-shadow .3s,background .3s,border .3s}evo-autocomplete .evo-autocomplete_theme-rounded.evo-autocomplete_size-small .ng-select-container:hover{border:1px solid #9B9B9B}evo-autocomplete .evo-autocomplete_is-multiple-inline .ng-select .ng-select-container .ng-value-icon{display:none}evo-autocomplete .evo-autocomplete_is-multiple-inline .ng-select .ng-select-container .ng-input{display:none}evo-autocomplete .evo-autocomplete .ng-select-multiple .ng-option-selected{--inner-option-background: #FFFFFF}evo-autocomplete .evo-autocomplete .ng-select-multiple .ng-option-selected.ng-option-marked{--inner-option-background: #F4F6F8}evo-autocomplete .evo-autocomplete .ng-select.ng-select-focused .ng-select-container,evo-autocomplete .evo-autocomplete .ng-select.ng-select-opened .ng-select-container{border:solid 1px #74706F}evo-autocomplete .evo-autocomplete.evo-autocomplete_touched.evo-autocomplete_invalid .ng-select:not(.ng-select-opened) .ng-select-container{border-color:#ff1817!important}evo-autocomplete .evo-autocomplete.evo-autocomplete_disabled .ng-select-container{color:#b0b0b0!important;background-color:#f9fafb!important;border:1px solid #E3E3E3!important;cursor:default;pointer-events:none}evo-autocomplete .evo-autocomplete.evo-autocomplete_disabled .ng-select-container .ng-arrow{opacity:.3}evo-autocomplete .evo-autocomplete .ng-input>input[readonly]{-webkit-user-select:auto!important;user-select:auto!important}\n"], dependencies: [{ kind: "directive", type: EvoUiClassDirective, selector: "[evoUiClass]", inputs: ["class", "evoUiClass"] }, { kind: "ngmodule", type: NgSelectModule }, { kind: "component", type: i4.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "deselectOnClick"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "directive", type: i4.NgOptgroupTemplateDirective, selector: "[ng-optgroup-tmp]" }, { kind: "directive", type: i4.NgOptionTemplateDirective, selector: "[ng-option-tmp]" }, { kind: "directive", type: i4.NgLabelTemplateDirective, selector: "[ng-label-tmp]" }, { kind: "directive", type: i4.NgMultiLabelTemplateDirective, selector: "[ng-multi-label-tmp]" }, { kind: "directive", type: i4.NgHeaderTemplateDirective, selector: "[ng-header-tmp]" }, { kind: "directive", type: i4.NgFooterTemplateDirective, selector: "[ng-footer-tmp]" }, { kind: "directive", type: i4.NgNotFoundTemplateDirective, selector: "[ng-notfound-tmp]" }, { kind: "directive", type: i4.NgTypeToSearchTemplateDirective, selector: "[ng-typetosearch-tmp]" }, { kind: "directive", type: i4.NgLoadingTextTemplateDirective, selector: "[ng-loadingtext-tmp]" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: EvoControlErrorModule }, { kind: "component", type: EvoControlErrorComponent, selector: "evo-control-error", inputs: ["errors", "errorsMessages", "showCount"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
1665
1671
|
}
|
|
1666
1672
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: EvoAutocompleteComponent, decorators: [{
|
|
1667
1673
|
type: Component,
|
|
1668
|
-
args: [{ selector: 'evo-autocomplete', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, standalone: true, imports: [EvoUiClassDirective, NgSelectModule, FormsModule, NgTemplateOutlet, NgIf, EvoControlErrorModule], template: "<div class=\"evo-autocomplete\" [evoUiClass]=\"classes\">\n <ng-select\n [items]=\"items\"\n [bindLabel]=\"bindLabel\"\n [bindValue]=\"bindValue\"\n [markFirst]=\"markFirst\"\n [placeholder]=\"placeholder\"\n [notFoundText]=\"notFoundText\"\n [typeToSearchText]=\"typeToSearchText\"\n [addTagText]=\"addTagText\"\n [loadingText]=\"loadingText\"\n [clearAllText]=\"clearAllText\"\n [dropdownPosition]=\"dropdownPosition\"\n [appendTo]=\"appendTo\"\n [loading]=\"loading\"\n [closeOnSelect]=\"closeOnSelect\"\n [hideSelected]=\"hideSelected\"\n [selectOnTab]=\"selectOnTab\"\n [openOnEnter]=\"openOnEnter\"\n [maxSelectedItems]=\"maxSelectedItems\"\n [groupBy]=\"groupBy\"\n [groupValue]=\"groupValue\"\n [bufferAmount]=\"bufferAmount\"\n [virtualScroll]=\"virtualScroll\"\n [selectableGroup]=\"selectableGroup\"\n [selectableGroupAsModel]=\"selectableGroupAsModel\"\n [searchFn]=\"searchFn\"\n [clearOnBackspace]=\"clearOnBackspace\"\n [typeahead]=\"typeahead\"\n [multiple]=\"multiple || multipleInline\"\n [addTag]=\"addTag\"\n [searchable]=\"searchable\"\n [clearable]=\"clearable\"\n [isOpen]=\"isOpen\"\n [editableSearchTerm]=\"editQuery\"\n [disabled]=\"control.disabled\"\n [compareWith]=\"compareWith\"\n [(ngModel)]=\"value\"\n (blur)=\"onBlur($event)\"\n (focus)=\"onFocus($event)\"\n (change)=\"handleChange($event)\"\n (open)=\"openEvent.emit($event)\"\n (close)=\"closeEvent.emit($event)\"\n (search)=\"searchEvent.emit($event)\"\n (clear)=\"clearEvent.emit($event)\"\n (add)=\"addEvent.emit($event)\"\n (remove)=\"removeEvent.emit($event)\"\n (scroll)=\"scrollEvent.emit($event)\"\n (scrollToEnd)=\"scrollToEndEvent.emit($event)\"\n >\n <!-- Selected Item Template -->\n @if (labelTemp) {\n <ng-template ng-label-tmp let-item=\"item\">\n <ng-template *ngTemplateOutlet=\"labelTemp; context: {item: item}\" />\n </ng-template>\n }\n\n <!-- Overall Label For All Selected Items Template -->\n @if (multiLabelTemp) {\n <ng-template ng-multi-label-tmp let-items=\"items\" let-clear=\"clear\">\n <div class=\"evo-autocomplete__label\">\n <ng-template *ngTemplateOutlet=\"multiLabelTemp; context: {items: items, clear: clear}\" />\n </div>\n </ng-template>\n }\n @if (headerTemp) {\n <!-- Options header template -->\n <ng-template ng-header-tmp>\n <ng-template *ngTemplateOutlet=\"headerTemp; context: {items: items}\" />\n </ng-template>\n }\n\n <!-- Option Template -->\n @if (optionTemp) {\n <ng-template ng-option-tmp let-item=\"item\" let-index=\"index\" let-search=\"searchTerm\" let-item$=\"item$\">\n <ng-template\n *ngTemplateOutlet=\"\n optionTemp;\n context: {item: item, index: index, searchTerm: search, item$: item$}\n \"\n />\n </ng-template>\n }\n\n @if (multipleInline && !multiLabelTemp) {\n <ng-template ng-multi-label-tmp let-items=\"items\">\n <div class=\"ng-value evo-autocomplete__label\">{{ getMultipleInlineItemsLabels(items) }}</div>\n </ng-template>\n }\n\n @if (optgroupTemp) {\n <!-- Options group template -->\n <ng-template ng-optgroup-tmp let-item=\"item\" let-index=\"index\">\n <ng-template *ngTemplateOutlet=\"optgroupTemp; context: {item: item, index: index}\" />\n </ng-template>\n }\n\n <!-- Search Text Templates -->\n <ng-template ng-typetosearch-tmp>\n @if (typeToSearchText) {\n <div class=\"ng-option disabled\">{{ typeToSearchText }}</div>\n }\n </ng-template>\n <ng-template ng-loadingtext-tmp let-searchTerm=\"searchTerm\">\n <div class=\"ng-option disabled\">{{ loadingText }}</div>\n </ng-template>\n\n @if (notFoundTemp) {\n <ng-template ng-notfound-tmp let-searchTerm=\"searchTerm\">\n <ng-template *ngTemplateOutlet=\"notFoundTemp; context: {searchTerm: searchTerm}\" />\n </ng-template>\n } @else {\n <ng-template ng-notfound-tmp>\n <div class=\"ng-option disabled\">{{ notFoundText }}</div>\n </ng-template>\n }\n\n @if (footerTemp) {\n <!-- Options footer template -->\n <ng-template ng-footer-tmp>\n <ng-template *ngTemplateOutlet=\"footerTemp; context: {items: items}\" />\n </ng-template>\n }\n </ng-select>\n\n @if (hasErrors && errorsMessages) {\n <evo-control-error [errors]=\"control.errors\" [errorsMessages]=\"errorsMessages\" />\n }\n</div>\n", styles: ["@keyframes evo-fx-blink{50%{transform:scale(1);opacity:1}to{opacity:0}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes gradient{0%{background-position:0 50%}50%{background-position:50vw 50%}to{background-position:100vw 50%}}@keyframes evo-ellipsis-animation{0%{content:\"\"}25%{content:\".\"}50%{content:\"..\"}75%{content:\"...\"}to{content:\"\"}}evo-autocomplete{--evo-dropdown-max-height: 310px;--evo-autocomplete-option-overflow: hidden;--evo-autocomplete-option-text-overflow: ellipsis;--evo-autocomplete-option-white-space: normal;--evo-autocomplete-optgroup-overflow: hidden;--evo-autocomplete-optgroup-text-overflow: ellipsis;--evo-autocomplete-optgroup-white-space: nowrap;--evo-autocomplete-arrow-icon-color: #91B1B8;--evo-autocomplete-option-v-padding: 12px;--evo-autocomplete-option-h-padding: 16px;--evo-autocomplete-panel-border-radius: 8px;--evo-autocomplete-panel-shadow: 0px 8px 10px rgba(0, 0, 0, .14), 0px 3px 14px rgba(0, 0, 0, .12)}evo-autocomplete .evo-autocomplete{--inner-input-padding-right: 12px;position:relative;display:block}evo-autocomplete .evo-autocomplete__icon{display:block;flex:0 0 24px;width:24px;height:24px}evo-autocomplete .evo-autocomplete__icon_clear{position:absolute;top:12px;right:12px;z-index:1001;cursor:pointer;transition:fill .3s;fill:#91b1b8}evo-autocomplete .evo-autocomplete__icon_clear:hover{fill:#a7c1c6}evo-autocomplete .evo-autocomplete__icon_clear:active{fill:#829fa6}evo-autocomplete .evo-autocomplete__icon_dropdown{fill:#212121}evo-autocomplete .evo-autocomplete .ng-input{padding:0 var(--inner-input-padding-right) 0 12px}evo-autocomplete .evo-autocomplete .ng-placeholder{color:#9b9b9b}evo-autocomplete .evo-autocomplete .ng-value-container{align-items:center;min-width:0;overflow:hidden}evo-autocomplete .evo-autocomplete__label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}evo-autocomplete .evo-autocomplete .ng-select-container{--evo-input-height: 40px;--evo-input-border-radius: 4px;--evo-input-font-size: 14px;--evo-input-line-height: 24px;display:flex;height:var(--evo-input-height);color:#212121;font-weight:400;font-size:var(--evo-input-font-size);font-family:var(--evo-font);line-height:var(--evo-input-line-height);white-space:nowrap;background-color:#fff;border:1px solid #C6C6C6;border-radius:var(--evo-input-border-radius);outline:none;transition:color .3s,box-shadow .3s,background .3s,border .3s;position:relative;align-items:center;margin:0;padding:8px var(--inner-input-padding-right) 8px 12px;line-height:var(--evo-input-height)}evo-autocomplete .evo-autocomplete .ng-select-container:hover{border:1px solid #9B9B9B}evo-autocomplete .evo-autocomplete .ng-select-container:has(.ng-clear:not(:empty)){--inner-input-padding-right: 0}evo-autocomplete .evo-autocomplete .ng-select-container.ng-has-value .ng-placeholder{display:none}evo-autocomplete .evo-autocomplete .ng-select .ng-clear-wrapper{display:inline-flex;align-items:center;width:24px;height:100%;margin:0 8px;padding:0;text-align:center;color:#91b1b8;transition:color .3s}evo-autocomplete .evo-autocomplete .ng-select .ng-clear-wrapper:hover{color:#a7c1c6}evo-autocomplete .evo-autocomplete .ng-select .ng-clear-wrapper:active{color:#829fa6}evo-autocomplete .evo-autocomplete .ng-select .ng-clear-wrapper .ng-clear{display:none}evo-autocomplete .evo-autocomplete .ng-select .ng-clear-wrapper .ng-clear_patched{display:block;cursor:pointer}evo-autocomplete .evo-autocomplete .ng-select .ng-clear-wrapper .ng-clear_patched svg{display:block;fill:currentColor}evo-autocomplete .evo-autocomplete .ng-select .ng-spinner-loader{display:flex;justify-content:center;align-items:center;width:16px;height:100%;margin:0 0 0 8px;border:none;transform:none;animation:none}evo-autocomplete .evo-autocomplete .ng-select .ng-spinner-loader:before{content:\"\";display:block;flex:0 0 16px;width:16px;height:16px;border:2px solid #C6C6C6;border-top-color:#21c68b;border-radius:50%;animation:spin .8s linear infinite}evo-autocomplete .evo-autocomplete .ng-optgroup{font-weight:400;--inner-option-text-color: #212121;--inner-option-description-color: #9B9B9B;--inner-option-background: #FFFFFF;display:flex;align-items:center;min-height:48px;white-space:normal;color:var(--inner-option-text-color);background-color:var(--inner-option-background);padding:var(--evo-autocomplete-option-v-padding) var(--evo-autocomplete-option-h-padding);cursor:pointer;font-family:var(--evo-font);font-style:normal;font-size:14px;line-height:24px;font-weight:600}evo-autocomplete .evo-autocomplete .ng-optgroup evo-autocomplete-default-option{--evo-autocomplete-default-option-background: var(--inner-option-background);--evo-autocomplete-default-option-text-color: var(--inner-option-text-color);--evo-autocomplete-default-option-description-color: var(--inner-option-description-color)}evo-autocomplete .evo-autocomplete .ng-optgroup.ng-option-marked{--inner-option-text-color: #212121;--inner-option-description-color: #9B9B9B;--inner-option-background: #F4F6F8}evo-autocomplete .evo-autocomplete .ng-optgroup.ng-option-disabled{--inner-option-text-color: #C6C6C6;--inner-option-description-color: #C6C6C6;--inner-option-background: #FFFFFF;cursor:default}evo-autocomplete .evo-autocomplete .ng-optgroup.ng-option-selected{--inner-option-text-color: #212121;--inner-option-description-color: #9B9B9B;--inner-option-background: #E1ECEF}evo-autocomplete .evo-autocomplete .ng-option{font-family:var(--evo-font);font-style:normal;font-size:14px;line-height:24px;font-weight:400;--inner-option-text-color: #212121;--inner-option-description-color: #9B9B9B;--inner-option-background: #FFFFFF;display:flex;align-items:center;min-height:48px;white-space:normal;color:var(--inner-option-text-color);background-color:var(--inner-option-background);padding:var(--evo-autocomplete-option-v-padding) var(--evo-autocomplete-option-h-padding);cursor:pointer}evo-autocomplete .evo-autocomplete .ng-option evo-autocomplete-default-option{--evo-autocomplete-default-option-background: var(--inner-option-background);--evo-autocomplete-default-option-text-color: var(--inner-option-text-color);--evo-autocomplete-default-option-description-color: var(--inner-option-description-color)}evo-autocomplete .evo-autocomplete .ng-option.ng-option-marked{--inner-option-text-color: #212121;--inner-option-description-color: #9B9B9B;--inner-option-background: #F4F6F8}evo-autocomplete .evo-autocomplete .ng-option.ng-option-disabled{--inner-option-text-color: #C6C6C6;--inner-option-description-color: #C6C6C6;--inner-option-background: #FFFFFF;cursor:default}evo-autocomplete .evo-autocomplete .ng-option.ng-option-selected{--inner-option-text-color: #212121;--inner-option-description-color: #9B9B9B;--inner-option-background: #E1ECEF}evo-autocomplete .evo-autocomplete_is-edit-query .ng-select.ng-select-single:not(.ng-select-focused) .ng-select-container .ng-value-container .ng-value{visibility:visible}evo-autocomplete .evo-autocomplete_is-edit-query .ng-select.ng-select-single.ng-select-focused .ng-select-container .ng-value-container .ng-value{visibility:var(--evo-autocomplete-option-overflow)}evo-autocomplete .evo-autocomplete .ng-dropdown-panel{z-index:3001;display:block;margin:4px 0;background-color:#fff;border-radius:var(--evo-autocomplete-panel-border-radius);box-shadow:var(--evo-autocomplete-panel-shadow);overflow:hidden}evo-autocomplete .evo-autocomplete .ng-dropdown-panel.ng-select-top{bottom:100%}evo-autocomplete .evo-autocomplete .ng-dropdown-panel .ng-dropdown-panel-items{max-height:var(--evo-dropdown-max-height, 310px)}evo-autocomplete .evo-autocomplete .ng-dropdown-panel .ng-dropdown-panel-items .ng-option{overflow:var(--evo-autocomplete-option-overflow);white-space:var(--evo-autocomplete-option-white-space);text-overflow:var(--evo-autocomplete-option-text-overflow)}evo-autocomplete .evo-autocomplete .ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup{overflow:var(--evo-autocomplete-optgroup-overflow);white-space:var(--evo-autocomplete-optgroup-white-space);text-overflow:var(--evo-autocomplete-optgroup-text-overflow)}evo-autocomplete .evo-autocomplete .ng-dropdown-panel .ng-dropdown-panel-items::-webkit-scrollbar{width:16px;background-color:transparent}evo-autocomplete .evo-autocomplete .ng-dropdown-panel .ng-dropdown-panel-items::-webkit-scrollbar-track{background-color:transparent}evo-autocomplete .evo-autocomplete .ng-dropdown-panel .ng-dropdown-panel-items::-webkit-scrollbar-thumb{background-color:#c6c6c6;border:6px solid #FFFFFF;border-radius:16px}evo-autocomplete .evo-autocomplete .ng-dropdown-panel .ng-dropdown-panel-items::-webkit-scrollbar-button{display:none}evo-autocomplete .evo-autocomplete_is-selectbox{--inner-input-padding-right: 0}evo-autocomplete .evo-autocomplete_is-selectbox .ng-select .ng-arrow-wrapper{display:inline-flex;align-items:center;width:24px;height:100%;margin:0 8px;padding:0;text-align:center}evo-autocomplete .evo-autocomplete_is-selectbox .ng-select .ng-arrow-wrapper .ng-arrow{display:block;width:24px;height:24px;background-color:var(--evo-autocomplete-arrow-icon-color);-webkit-mask-image:url('data:image/svg+xml,<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">%0A <path d=\"M8.81066 10C8.14248 10 7.80786 10.8079 8.28033 11.2803L11.4697 14.4697C11.7626 14.7626 12.2374 14.7626 12.5303 14.4697L15.7197 11.2803C16.1921 10.8079 15.8575 10 15.1893 10H8.81066Z\" />%0A</svg>%0A');mask-image:url('data:image/svg+xml,<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">%0A <path d=\"M8.81066 10C8.14248 10 7.80786 10.8079 8.28033 11.2803L11.4697 14.4697C11.7626 14.7626 12.2374 14.7626 12.5303 14.4697L15.7197 11.2803C16.1921 10.8079 15.8575 10 15.1893 10H8.81066Z\" />%0A</svg>%0A');background-position:center;transition:transform .25s}evo-autocomplete .evo-autocomplete_is-selectbox .ng-select.ng-select-opened .ng-arrow{transform:rotate(180deg);transform-origin:center center}evo-autocomplete .evo-autocomplete_is-selectbox.ng-select-focused{z-index:11}evo-autocomplete .evo-autocomplete_is-selectbox.ng-select-focused .ng-placeholder{display:none}evo-autocomplete .evo-autocomplete_is-selectbox.ng-select-focused .ng-select-container{box-shadow:0 0 2px #91b1b8}evo-autocomplete .evo-autocomplete_theme-default.evo-autocomplete_size-normal .ng-select-container{--evo-input-height: 40px;--evo-input-border-radius: 4px;--evo-input-font-size: 14px;--evo-input-line-height: 24px;display:flex;align-items:center;height:var(--evo-input-height);color:#212121;font-weight:400;font-size:var(--evo-input-font-size);font-family:var(--evo-font);line-height:var(--evo-input-line-height);white-space:nowrap;background-color:#fff;border:1px solid #C6C6C6;border-radius:var(--evo-input-border-radius);outline:none;transition:color .3s,box-shadow .3s,background .3s,border .3s}evo-autocomplete .evo-autocomplete_theme-default.evo-autocomplete_size-normal .ng-select-container:hover{border:1px solid #9B9B9B}evo-autocomplete .evo-autocomplete_theme-default.evo-autocomplete_size-small .ng-select-container{--evo-input-height: 40px;--evo-input-border-radius: 4px;--evo-input-font-size: 14px;--evo-input-line-height: 24px;--evo-input-height: 32px;display:flex;align-items:center;height:var(--evo-input-height);color:#212121;font-weight:400;font-size:var(--evo-input-font-size);font-family:var(--evo-font);line-height:var(--evo-input-line-height);white-space:nowrap;background-color:#fff;border:1px solid #C6C6C6;border-radius:var(--evo-input-border-radius);outline:none;transition:color .3s,box-shadow .3s,background .3s,border .3s;padding:4px var(--inner-input-padding-right) 4px 12px}evo-autocomplete .evo-autocomplete_theme-default.evo-autocomplete_size-small .ng-select-container:hover{border:1px solid #9B9B9B}evo-autocomplete .evo-autocomplete_theme-rounded.evo-autocomplete_size-normal .ng-select-container{--evo-input-height: 40px;--evo-input-border-radius: 4px;--evo-input-font-size: 14px;--evo-input-line-height: 24px;--evo-input-border-radius: 256px;display:flex;align-items:center;height:var(--evo-input-height);color:#212121;font-weight:400;font-size:var(--evo-input-font-size);font-family:var(--evo-font);line-height:var(--evo-input-line-height);white-space:nowrap;background-color:#fff;border:1px solid #C6C6C6;border-radius:var(--evo-input-border-radius);outline:none;transition:color .3s,box-shadow .3s,background .3s,border .3s}evo-autocomplete .evo-autocomplete_theme-rounded.evo-autocomplete_size-normal .ng-select-container:hover{border:1px solid #9B9B9B}evo-autocomplete .evo-autocomplete_theme-rounded.evo-autocomplete_size-small .ng-select-container{--evo-input-border-radius: 4px;--evo-input-line-height: 24px;--evo-input-font-size: 14px;--evo-input-height: 40px;--evo-input-border-radius: 256px;display:flex;align-items:center;height:var(--evo-input-height);color:#212121;font-weight:400;font-size:var(--evo-input-font-size);font-family:var(--evo-font);line-height:var(--evo-input-line-height);white-space:nowrap;background-color:#fff;border:1px solid #C6C6C6;border-radius:var(--evo-input-border-radius);outline:none;transition:color .3s,box-shadow .3s,background .3s,border .3s}evo-autocomplete .evo-autocomplete_theme-rounded.evo-autocomplete_size-small .ng-select-container:hover{border:1px solid #9B9B9B}evo-autocomplete .evo-autocomplete_is-multiple-inline .ng-select .ng-select-container .ng-value-icon{display:none}evo-autocomplete .evo-autocomplete_is-multiple-inline .ng-select .ng-select-container .ng-input{display:none}evo-autocomplete .evo-autocomplete .ng-select-multiple .ng-option-selected{--inner-option-background: #FFFFFF}evo-autocomplete .evo-autocomplete .ng-select-multiple .ng-option-selected.ng-option-marked{--inner-option-background: #F4F6F8}evo-autocomplete .evo-autocomplete .ng-select.ng-select-focused .ng-select-container,evo-autocomplete .evo-autocomplete .ng-select.ng-select-opened .ng-select-container{border:solid 1px #74706F}evo-autocomplete .evo-autocomplete.evo-autocomplete_touched.evo-autocomplete_invalid .ng-select:not(.ng-select-opened) .ng-select-container{border-color:#ff1817!important}evo-autocomplete .evo-autocomplete.evo-autocomplete_disabled .ng-select-container{color:#b0b0b0!important;background-color:#f9fafb!important;border:1px solid #E3E3E3!important;cursor:default;pointer-events:none}evo-autocomplete .evo-autocomplete.evo-autocomplete_disabled .ng-select-container .ng-arrow{opacity:.3}evo-autocomplete .evo-autocomplete .ng-input>input[readonly]{-webkit-user-select:auto!important;user-select:auto!important}\n"] }]
|
|
1674
|
+
args: [{ selector: 'evo-autocomplete', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, standalone: true, imports: [EvoUiClassDirective, NgSelectModule, FormsModule, NgTemplateOutlet, NgIf, EvoControlErrorModule], template: "<div class=\"evo-autocomplete\" [evoUiClass]=\"classes\">\n <ng-select\n [items]=\"items\"\n [bindLabel]=\"bindLabel\"\n [bindValue]=\"bindValue\"\n [markFirst]=\"markFirst\"\n [placeholder]=\"placeholder\"\n [notFoundText]=\"notFoundText\"\n [typeToSearchText]=\"typeToSearchText\"\n [addTagText]=\"addTagText\"\n [loadingText]=\"loadingText\"\n [clearAllText]=\"clearAllText\"\n [dropdownPosition]=\"dropdownPosition\"\n [appendTo]=\"appendTo\"\n [loading]=\"loading\"\n [closeOnSelect]=\"closeOnSelect\"\n [hideSelected]=\"hideSelected\"\n [selectOnTab]=\"selectOnTab\"\n [openOnEnter]=\"openOnEnter\"\n [maxSelectedItems]=\"maxSelectedItems\"\n [groupBy]=\"groupBy\"\n [groupValue]=\"groupValue\"\n [bufferAmount]=\"bufferAmount\"\n [virtualScroll]=\"virtualScroll\"\n [selectableGroup]=\"selectableGroup\"\n [selectableGroupAsModel]=\"selectableGroupAsModel\"\n [searchFn]=\"searchFn\"\n [clearOnBackspace]=\"clearOnBackspace\"\n [typeahead]=\"typeahead\"\n [multiple]=\"multiple || multipleInline\"\n [addTag]=\"addTag\"\n [searchable]=\"searchable\"\n [clearable]=\"clearable\"\n [isOpen]=\"isOpen\"\n [editableSearchTerm]=\"editQuery\"\n [disabled]=\"control.disabled\"\n [compareWith]=\"compareWith\"\n [(ngModel)]=\"value\"\n (ngModelChange)=\"onChange($event)\"\n (blur)=\"onBlur($event)\"\n (focus)=\"onFocus($event)\"\n (change)=\"handleChange($event)\"\n (open)=\"openEvent.emit($event)\"\n (close)=\"closeEvent.emit($event)\"\n (search)=\"searchEvent.emit($event)\"\n (clear)=\"clearEvent.emit($event)\"\n (add)=\"addEvent.emit($event)\"\n (remove)=\"removeEvent.emit($event)\"\n (scroll)=\"scrollEvent.emit($event)\"\n (scrollToEnd)=\"scrollToEndEvent.emit($event)\"\n >\n <!-- Selected Item Template -->\n @if (labelTemp) {\n <ng-template ng-label-tmp let-item=\"item\">\n <ng-template *ngTemplateOutlet=\"labelTemp; context: {item: item}\" />\n </ng-template>\n }\n\n <!-- Overall Label For All Selected Items Template -->\n @if (multiLabelTemp) {\n <ng-template ng-multi-label-tmp let-items=\"items\" let-clear=\"clear\">\n <div class=\"evo-autocomplete__label\">\n <ng-template *ngTemplateOutlet=\"multiLabelTemp; context: {items: items, clear: clear}\" />\n </div>\n </ng-template>\n }\n @if (headerTemp) {\n <!-- Options header template -->\n <ng-template ng-header-tmp>\n <ng-template *ngTemplateOutlet=\"headerTemp; context: {items: items}\" />\n </ng-template>\n }\n\n <!-- Option Template -->\n @if (optionTemp) {\n <ng-template ng-option-tmp let-item=\"item\" let-index=\"index\" let-search=\"searchTerm\" let-item$=\"item$\">\n <ng-template\n *ngTemplateOutlet=\"\n optionTemp;\n context: {item: item, index: index, searchTerm: search, item$: item$}\n \"\n />\n </ng-template>\n }\n\n @if (multipleInline && !multiLabelTemp) {\n <ng-template ng-multi-label-tmp let-items=\"items\">\n <div class=\"ng-value evo-autocomplete__label\">{{ getMultipleInlineItemsLabels(items) }}</div>\n </ng-template>\n }\n\n @if (optgroupTemp) {\n <!-- Options group template -->\n <ng-template ng-optgroup-tmp let-item=\"item\" let-index=\"index\">\n <ng-template *ngTemplateOutlet=\"optgroupTemp; context: {item: item, index: index}\" />\n </ng-template>\n }\n\n <!-- Search Text Templates -->\n <ng-template ng-typetosearch-tmp>\n @if (typeToSearchText) {\n <div class=\"ng-option disabled\">{{ typeToSearchText }}</div>\n }\n </ng-template>\n <ng-template ng-loadingtext-tmp let-searchTerm=\"searchTerm\">\n <div class=\"ng-option disabled\">{{ loadingText }}</div>\n </ng-template>\n\n @if (notFoundTemp) {\n <ng-template ng-notfound-tmp let-searchTerm=\"searchTerm\">\n <ng-template *ngTemplateOutlet=\"notFoundTemp; context: {searchTerm: searchTerm}\" />\n </ng-template>\n } @else {\n <ng-template ng-notfound-tmp>\n <div class=\"ng-option disabled\">{{ notFoundText }}</div>\n </ng-template>\n }\n\n @if (footerTemp) {\n <!-- Options footer template -->\n <ng-template ng-footer-tmp>\n <ng-template *ngTemplateOutlet=\"footerTemp; context: {items: items}\" />\n </ng-template>\n }\n </ng-select>\n\n @if (hasErrors && errorsMessages) {\n <evo-control-error [errors]=\"control.errors\" [errorsMessages]=\"errorsMessages\" />\n }\n</div>\n", styles: ["@keyframes evo-fx-blink{50%{transform:scale(1);opacity:1}to{opacity:0}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes gradient{0%{background-position:0 50%}50%{background-position:50vw 50%}to{background-position:100vw 50%}}@keyframes evo-ellipsis-animation{0%{content:\"\"}25%{content:\".\"}50%{content:\"..\"}75%{content:\"...\"}to{content:\"\"}}evo-autocomplete{--evo-dropdown-max-height: 310px;--evo-autocomplete-option-overflow: hidden;--evo-autocomplete-option-text-overflow: ellipsis;--evo-autocomplete-option-white-space: normal;--evo-autocomplete-optgroup-overflow: hidden;--evo-autocomplete-optgroup-text-overflow: ellipsis;--evo-autocomplete-optgroup-white-space: nowrap;--evo-autocomplete-arrow-icon-color: #91B1B8;--evo-autocomplete-option-v-padding: 12px;--evo-autocomplete-option-h-padding: 16px;--evo-autocomplete-panel-border-radius: 8px;--evo-autocomplete-panel-shadow: 0px 8px 10px rgba(0, 0, 0, .14), 0px 3px 14px rgba(0, 0, 0, .12)}evo-autocomplete .evo-autocomplete{--inner-input-padding-right: 12px;position:relative;display:block}evo-autocomplete .evo-autocomplete__icon{display:block;flex:0 0 24px;width:24px;height:24px}evo-autocomplete .evo-autocomplete__icon_clear{position:absolute;top:12px;right:12px;z-index:1001;cursor:pointer;transition:fill .3s;fill:#91b1b8}evo-autocomplete .evo-autocomplete__icon_clear:hover{fill:#a7c1c6}evo-autocomplete .evo-autocomplete__icon_clear:active{fill:#829fa6}evo-autocomplete .evo-autocomplete__icon_dropdown{fill:#212121}evo-autocomplete .evo-autocomplete .ng-input{padding:0 var(--inner-input-padding-right) 0 12px}evo-autocomplete .evo-autocomplete .ng-placeholder{color:#9b9b9b}evo-autocomplete .evo-autocomplete .ng-value-container{align-items:center;min-width:0;overflow:hidden}evo-autocomplete .evo-autocomplete__label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}evo-autocomplete .evo-autocomplete .ng-select-container{--evo-input-height: 40px;--evo-input-border-radius: 4px;--evo-input-font-size: 14px;--evo-input-line-height: 24px;display:flex;height:var(--evo-input-height);color:#212121;font-weight:400;font-size:var(--evo-input-font-size);font-family:var(--evo-font);line-height:var(--evo-input-line-height);white-space:nowrap;background-color:#fff;border:1px solid #C6C6C6;border-radius:var(--evo-input-border-radius);outline:none;transition:color .3s,box-shadow .3s,background .3s,border .3s;position:relative;align-items:center;margin:0;padding:8px var(--inner-input-padding-right) 8px 12px;line-height:var(--evo-input-height)}evo-autocomplete .evo-autocomplete .ng-select-container:hover{border:1px solid #9B9B9B}evo-autocomplete .evo-autocomplete .ng-select-container:has(.ng-clear:not(:empty)){--inner-input-padding-right: 0}evo-autocomplete .evo-autocomplete .ng-select-container.ng-has-value .ng-placeholder{display:none}evo-autocomplete .evo-autocomplete .ng-select .ng-clear-wrapper{display:inline-flex;align-items:center;width:24px;height:100%;margin:0 8px;padding:0;text-align:center;color:#91b1b8;transition:color .3s}evo-autocomplete .evo-autocomplete .ng-select .ng-clear-wrapper:hover{color:#a7c1c6}evo-autocomplete .evo-autocomplete .ng-select .ng-clear-wrapper:active{color:#829fa6}evo-autocomplete .evo-autocomplete .ng-select .ng-clear-wrapper .ng-clear{display:none}evo-autocomplete .evo-autocomplete .ng-select .ng-clear-wrapper .ng-clear_patched{display:block;cursor:pointer}evo-autocomplete .evo-autocomplete .ng-select .ng-clear-wrapper .ng-clear_patched svg{display:block;fill:currentColor}evo-autocomplete .evo-autocomplete .ng-select .ng-spinner-loader{display:flex;justify-content:center;align-items:center;width:16px;height:100%;margin:0 0 0 8px;border:none;transform:none;animation:none}evo-autocomplete .evo-autocomplete .ng-select .ng-spinner-loader:before{content:\"\";display:block;flex:0 0 16px;width:16px;height:16px;border:2px solid #C6C6C6;border-top-color:#21c68b;border-radius:50%;animation:spin .8s linear infinite}evo-autocomplete .evo-autocomplete .ng-optgroup{font-weight:400;--inner-option-text-color: #212121;--inner-option-description-color: #9B9B9B;--inner-option-background: #FFFFFF;display:flex;align-items:center;min-height:48px;white-space:normal;color:var(--inner-option-text-color);background-color:var(--inner-option-background);padding:var(--evo-autocomplete-option-v-padding) var(--evo-autocomplete-option-h-padding);cursor:pointer;font-family:var(--evo-font);font-style:normal;font-size:14px;line-height:24px;font-weight:600}evo-autocomplete .evo-autocomplete .ng-optgroup evo-autocomplete-default-option{--evo-autocomplete-default-option-background: var(--inner-option-background);--evo-autocomplete-default-option-text-color: var(--inner-option-text-color);--evo-autocomplete-default-option-description-color: var(--inner-option-description-color)}evo-autocomplete .evo-autocomplete .ng-optgroup.ng-option-marked{--inner-option-text-color: #212121;--inner-option-description-color: #9B9B9B;--inner-option-background: #F4F6F8}evo-autocomplete .evo-autocomplete .ng-optgroup.ng-option-disabled{--inner-option-text-color: #C6C6C6;--inner-option-description-color: #C6C6C6;--inner-option-background: #FFFFFF;cursor:default}evo-autocomplete .evo-autocomplete .ng-optgroup.ng-option-selected{--inner-option-text-color: #212121;--inner-option-description-color: #9B9B9B;--inner-option-background: #E1ECEF}evo-autocomplete .evo-autocomplete .ng-option{font-family:var(--evo-font);font-style:normal;font-size:14px;line-height:24px;font-weight:400;--inner-option-text-color: #212121;--inner-option-description-color: #9B9B9B;--inner-option-background: #FFFFFF;display:flex;align-items:center;min-height:48px;white-space:normal;color:var(--inner-option-text-color);background-color:var(--inner-option-background);padding:var(--evo-autocomplete-option-v-padding) var(--evo-autocomplete-option-h-padding);cursor:pointer}evo-autocomplete .evo-autocomplete .ng-option evo-autocomplete-default-option{--evo-autocomplete-default-option-background: var(--inner-option-background);--evo-autocomplete-default-option-text-color: var(--inner-option-text-color);--evo-autocomplete-default-option-description-color: var(--inner-option-description-color)}evo-autocomplete .evo-autocomplete .ng-option.ng-option-marked{--inner-option-text-color: #212121;--inner-option-description-color: #9B9B9B;--inner-option-background: #F4F6F8}evo-autocomplete .evo-autocomplete .ng-option.ng-option-disabled{--inner-option-text-color: #C6C6C6;--inner-option-description-color: #C6C6C6;--inner-option-background: #FFFFFF;cursor:default}evo-autocomplete .evo-autocomplete .ng-option.ng-option-selected{--inner-option-text-color: #212121;--inner-option-description-color: #9B9B9B;--inner-option-background: #E1ECEF}evo-autocomplete .evo-autocomplete_is-edit-query .ng-select.ng-select-single:not(.ng-select-focused) .ng-select-container .ng-value-container .ng-value{visibility:visible}evo-autocomplete .evo-autocomplete_is-edit-query .ng-select.ng-select-single.ng-select-focused .ng-select-container .ng-value-container .ng-value{visibility:var(--evo-autocomplete-option-overflow)}evo-autocomplete .evo-autocomplete .ng-dropdown-panel{z-index:3001;display:block;margin:4px 0;background-color:#fff;border-radius:var(--evo-autocomplete-panel-border-radius);box-shadow:var(--evo-autocomplete-panel-shadow);overflow:hidden}evo-autocomplete .evo-autocomplete .ng-dropdown-panel.ng-select-top{bottom:100%}evo-autocomplete .evo-autocomplete .ng-dropdown-panel .ng-dropdown-panel-items{max-height:var(--evo-dropdown-max-height, 310px)}evo-autocomplete .evo-autocomplete .ng-dropdown-panel .ng-dropdown-panel-items .ng-option{overflow:var(--evo-autocomplete-option-overflow);white-space:var(--evo-autocomplete-option-white-space);text-overflow:var(--evo-autocomplete-option-text-overflow)}evo-autocomplete .evo-autocomplete .ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup{overflow:var(--evo-autocomplete-optgroup-overflow);white-space:var(--evo-autocomplete-optgroup-white-space);text-overflow:var(--evo-autocomplete-optgroup-text-overflow)}evo-autocomplete .evo-autocomplete .ng-dropdown-panel .ng-dropdown-panel-items::-webkit-scrollbar{width:16px;background-color:transparent}evo-autocomplete .evo-autocomplete .ng-dropdown-panel .ng-dropdown-panel-items::-webkit-scrollbar-track{background-color:transparent}evo-autocomplete .evo-autocomplete .ng-dropdown-panel .ng-dropdown-panel-items::-webkit-scrollbar-thumb{background-color:#c6c6c6;border:6px solid #FFFFFF;border-radius:16px}evo-autocomplete .evo-autocomplete .ng-dropdown-panel .ng-dropdown-panel-items::-webkit-scrollbar-button{display:none}evo-autocomplete .evo-autocomplete_is-selectbox{--inner-input-padding-right: 0}evo-autocomplete .evo-autocomplete_is-selectbox .ng-select .ng-arrow-wrapper{display:inline-flex;align-items:center;width:24px;height:100%;margin:0 8px;padding:0;text-align:center}evo-autocomplete .evo-autocomplete_is-selectbox .ng-select .ng-arrow-wrapper .ng-arrow{display:block;width:24px;height:24px;background-color:var(--evo-autocomplete-arrow-icon-color);-webkit-mask-image:url('data:image/svg+xml,<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">%0A <path d=\"M8.81066 10C8.14248 10 7.80786 10.8079 8.28033 11.2803L11.4697 14.4697C11.7626 14.7626 12.2374 14.7626 12.5303 14.4697L15.7197 11.2803C16.1921 10.8079 15.8575 10 15.1893 10H8.81066Z\" />%0A</svg>%0A');mask-image:url('data:image/svg+xml,<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">%0A <path d=\"M8.81066 10C8.14248 10 7.80786 10.8079 8.28033 11.2803L11.4697 14.4697C11.7626 14.7626 12.2374 14.7626 12.5303 14.4697L15.7197 11.2803C16.1921 10.8079 15.8575 10 15.1893 10H8.81066Z\" />%0A</svg>%0A');background-position:center;transition:transform .25s}evo-autocomplete .evo-autocomplete_is-selectbox .ng-select.ng-select-opened .ng-arrow{transform:rotate(180deg);transform-origin:center center}evo-autocomplete .evo-autocomplete_is-selectbox.ng-select-focused{z-index:11}evo-autocomplete .evo-autocomplete_is-selectbox.ng-select-focused .ng-placeholder{display:none}evo-autocomplete .evo-autocomplete_is-selectbox.ng-select-focused .ng-select-container{box-shadow:0 0 2px #91b1b8}evo-autocomplete .evo-autocomplete_theme-default.evo-autocomplete_size-normal .ng-select-container{--evo-input-height: 40px;--evo-input-border-radius: 4px;--evo-input-font-size: 14px;--evo-input-line-height: 24px;display:flex;align-items:center;height:var(--evo-input-height);color:#212121;font-weight:400;font-size:var(--evo-input-font-size);font-family:var(--evo-font);line-height:var(--evo-input-line-height);white-space:nowrap;background-color:#fff;border:1px solid #C6C6C6;border-radius:var(--evo-input-border-radius);outline:none;transition:color .3s,box-shadow .3s,background .3s,border .3s}evo-autocomplete .evo-autocomplete_theme-default.evo-autocomplete_size-normal .ng-select-container:hover{border:1px solid #9B9B9B}evo-autocomplete .evo-autocomplete_theme-default.evo-autocomplete_size-small .ng-select-container{--evo-input-height: 40px;--evo-input-border-radius: 4px;--evo-input-font-size: 14px;--evo-input-line-height: 24px;--evo-input-height: 32px;display:flex;align-items:center;height:var(--evo-input-height);color:#212121;font-weight:400;font-size:var(--evo-input-font-size);font-family:var(--evo-font);line-height:var(--evo-input-line-height);white-space:nowrap;background-color:#fff;border:1px solid #C6C6C6;border-radius:var(--evo-input-border-radius);outline:none;transition:color .3s,box-shadow .3s,background .3s,border .3s;padding:4px var(--inner-input-padding-right) 4px 12px}evo-autocomplete .evo-autocomplete_theme-default.evo-autocomplete_size-small .ng-select-container:hover{border:1px solid #9B9B9B}evo-autocomplete .evo-autocomplete_theme-rounded.evo-autocomplete_size-normal .ng-select-container{--evo-input-height: 40px;--evo-input-border-radius: 4px;--evo-input-font-size: 14px;--evo-input-line-height: 24px;--evo-input-border-radius: 256px;display:flex;align-items:center;height:var(--evo-input-height);color:#212121;font-weight:400;font-size:var(--evo-input-font-size);font-family:var(--evo-font);line-height:var(--evo-input-line-height);white-space:nowrap;background-color:#fff;border:1px solid #C6C6C6;border-radius:var(--evo-input-border-radius);outline:none;transition:color .3s,box-shadow .3s,background .3s,border .3s}evo-autocomplete .evo-autocomplete_theme-rounded.evo-autocomplete_size-normal .ng-select-container:hover{border:1px solid #9B9B9B}evo-autocomplete .evo-autocomplete_theme-rounded.evo-autocomplete_size-small .ng-select-container{--evo-input-border-radius: 4px;--evo-input-line-height: 24px;--evo-input-font-size: 14px;--evo-input-height: 40px;--evo-input-border-radius: 256px;display:flex;align-items:center;height:var(--evo-input-height);color:#212121;font-weight:400;font-size:var(--evo-input-font-size);font-family:var(--evo-font);line-height:var(--evo-input-line-height);white-space:nowrap;background-color:#fff;border:1px solid #C6C6C6;border-radius:var(--evo-input-border-radius);outline:none;transition:color .3s,box-shadow .3s,background .3s,border .3s}evo-autocomplete .evo-autocomplete_theme-rounded.evo-autocomplete_size-small .ng-select-container:hover{border:1px solid #9B9B9B}evo-autocomplete .evo-autocomplete_is-multiple-inline .ng-select .ng-select-container .ng-value-icon{display:none}evo-autocomplete .evo-autocomplete_is-multiple-inline .ng-select .ng-select-container .ng-input{display:none}evo-autocomplete .evo-autocomplete .ng-select-multiple .ng-option-selected{--inner-option-background: #FFFFFF}evo-autocomplete .evo-autocomplete .ng-select-multiple .ng-option-selected.ng-option-marked{--inner-option-background: #F4F6F8}evo-autocomplete .evo-autocomplete .ng-select.ng-select-focused .ng-select-container,evo-autocomplete .evo-autocomplete .ng-select.ng-select-opened .ng-select-container{border:solid 1px #74706F}evo-autocomplete .evo-autocomplete.evo-autocomplete_touched.evo-autocomplete_invalid .ng-select:not(.ng-select-opened) .ng-select-container{border-color:#ff1817!important}evo-autocomplete .evo-autocomplete.evo-autocomplete_disabled .ng-select-container{color:#b0b0b0!important;background-color:#f9fafb!important;border:1px solid #E3E3E3!important;cursor:default;pointer-events:none}evo-autocomplete .evo-autocomplete.evo-autocomplete_disabled .ng-select-container .ng-arrow{opacity:.3}evo-autocomplete .evo-autocomplete .ng-input>input[readonly]{-webkit-user-select:auto!important;user-select:auto!important}\n"] }]
|
|
1669
1675
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1$1.NgControl }, { type: EvoIconService }, { type: i1.DomSanitizer }, { type: undefined, decorators: [{
|
|
1670
1676
|
type: Inject,
|
|
1671
1677
|
args: [EVO_ICON_RESOLVER]
|
|
@@ -2238,25 +2244,24 @@ var EvoChipTheme;
|
|
|
2238
2244
|
EvoChipTheme["custom"] = "custom";
|
|
2239
2245
|
})(EvoChipTheme || (EvoChipTheme = {}));
|
|
2240
2246
|
class EvoChipComponent extends EvoBaseControl {
|
|
2241
|
-
|
|
2242
|
-
|
|
2243
|
-
this.inheritedValue = value;
|
|
2244
|
-
}
|
|
2245
|
-
constructor(injector, cdr) {
|
|
2246
|
-
super(injector);
|
|
2247
|
-
this.injector = injector;
|
|
2248
|
-
this.cdr = cdr;
|
|
2247
|
+
constructor() {
|
|
2248
|
+
super(...arguments);
|
|
2249
2249
|
this.closeTitle = '';
|
|
2250
2250
|
this.close = new EventEmitter();
|
|
2251
2251
|
this.templateVariables = {
|
|
2252
2252
|
chipTypes: EvoChipType,
|
|
2253
2253
|
chipThemes: EvoChipTheme,
|
|
2254
2254
|
};
|
|
2255
|
-
this.
|
|
2255
|
+
this.destroyRef = inject(DestroyRef);
|
|
2256
|
+
this.cdr = inject(ChangeDetectorRef);
|
|
2256
2257
|
// eslint-disable-next-line
|
|
2257
2258
|
this.onChange = (_value) => { };
|
|
2258
2259
|
this.onTouched = () => { };
|
|
2259
2260
|
}
|
|
2261
|
+
// eslint-disable-next-line
|
|
2262
|
+
set setInitialValue(value) {
|
|
2263
|
+
this.inheritedValue = value;
|
|
2264
|
+
}
|
|
2260
2265
|
get classes() {
|
|
2261
2266
|
const states = {
|
|
2262
2267
|
touched: this.control?.touched,
|
|
@@ -2274,15 +2279,11 @@ class EvoChipComponent extends EvoBaseControl {
|
|
|
2274
2279
|
}
|
|
2275
2280
|
ngAfterViewInit() {
|
|
2276
2281
|
if (this.control) {
|
|
2277
|
-
this.control.valueChanges.pipe(
|
|
2282
|
+
this.control.valueChanges.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {
|
|
2278
2283
|
this.writeValue(this.control.value);
|
|
2279
2284
|
});
|
|
2280
2285
|
}
|
|
2281
2286
|
}
|
|
2282
|
-
ngOnDestroy() {
|
|
2283
|
-
this.destroy$.next();
|
|
2284
|
-
this.destroy$.complete();
|
|
2285
|
-
}
|
|
2286
2287
|
// eslint-disable-next-line
|
|
2287
2288
|
writeValue(value) {
|
|
2288
2289
|
this.value = value;
|
|
@@ -2318,7 +2319,7 @@ class EvoChipComponent extends EvoBaseControl {
|
|
|
2318
2319
|
this.theme = EvoChipTheme.grey;
|
|
2319
2320
|
}
|
|
2320
2321
|
}
|
|
2321
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: EvoChipComponent, deps:
|
|
2322
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: EvoChipComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
2322
2323
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.10", type: EvoChipComponent, isStandalone: true, selector: "evo-chip", inputs: { type: "type", theme: "theme", counter: "counter", disabled: "disabled", name: "name", closable: "closable", closeTitle: "closeTitle", setInitialValue: ["value", "setInitialValue"] }, outputs: { close: "close" }, providers: [
|
|
2323
2324
|
{
|
|
2324
2325
|
provide: NG_VALUE_ACCESSOR,
|
|
@@ -2336,7 +2337,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImpo
|
|
|
2336
2337
|
multi: true,
|
|
2337
2338
|
},
|
|
2338
2339
|
], standalone: true, imports: [EvoUiClassDirective, FormsModule, EvoIconComponent], template: "<label class=\"chip\" [evoUiClass]=\"classes\">\n @switch (type) {\n @case (templateVariables?.chipTypes.checkbox) {\n <input\n type=\"checkbox\"\n [disabled]=\"disabled\"\n [ngModel]=\"value\"\n [value]=\"inheritedValue\"\n [name]=\"name\"\n (ngModelChange)=\"onInputChange($event)\"\n />\n }\n @case (templateVariables?.chipTypes.radio) {\n <input\n type=\"radio\"\n [disabled]=\"disabled\"\n [ngModel]=\"value\"\n [value]=\"inheritedValue\"\n [name]=\"name\"\n (ngModelChange)=\"onInputChange($event)\"\n />\n }\n }\n\n <div class=\"chip__label\" [evoUiClass]=\"{disabled: disabled}\">\n <span class=\"chip__text\">\n <ng-content />\n </span>\n\n @if ((type !== templateVariables?.chipTypes.label || !closable) && counter !== undefined) {\n <div class=\"chip__counter\">\n <span class=\"chip__counter-value\">\n {{ counter }}\n </span>\n </div>\n }\n\n @if (closable) {\n <button\n type=\"button\"\n class=\"chip__close\"\n [disabled]=\"disabled\"\n [title]=\"closeTitle\"\n (click)=\"onCloseClick($event)\"\n >\n <evo-icon shape=\"decline\" />\n </button>\n }\n </div>\n</label>\n", styles: [".chip{position:relative;display:inline-flex;max-width:100%}.chip__label{display:flex;align-items:center;max-width:inherit;height:32px;margin:0;padding:3px 12px;overflow:hidden;color:#0986e2;font-family:var(--evo-font);font-style:normal;font-size:14px;line-height:24px;font-weight:600;background-color:#f4f6f8;border-radius:16px;cursor:pointer;transition:color .3s,background-color .3s;-webkit-user-select:none;user-select:none}.chip input{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.chip input:disabled+.chip__label,.chip .chip__label_disabled{color:#fff!important;background-color:#c6c6c6!important}.chip input:checked+.chip__label{color:#fff;background-color:#0986e2}.chip input:checked+.chip__label:focus,.chip input:checked+.chip__label:hover{background-color:#3a9ee8}.chip input:checked+.chip__label:active{background-color:#0879cb}.chip input:not(:checked)+.chip__label{color:#0986e2}.chip_theme-white:not(.chip_type-label) input:not(:checked)+.chip__label{background-color:#fff}.chip_theme-white:not(.chip_type-label) input:not(:checked):focus+.chip__label,.chip_theme-white:not(.chip_type-label) input:not(:checked):hover+.chip__label{background-color:#fdfdfe}.chip_theme-white:not(.chip_type-label) input:not(:checked):active+.chip__label{background-color:#dcdddf}.chip_theme-grey:not(.chip_type-label) input:not(:checked)+.chip__label{background-color:#f4f6f8}.chip_theme-grey:not(.chip_type-label) input:not(:checked):focus+.chip__label,.chip_theme-grey:not(.chip_type-label) input:not(:checked):hover+.chip__label{background-color:#f6f8f9}.chip_theme-grey:not(.chip_type-label) input:not(:checked):active+.chip__label{background-color:#dcdddf}.chip_theme-custom:not(.chip_type-label) input:not(:checked)+.chip__label{color:var(--evo-chip-color, #0986E2);background-color:var(--evo-chip-background-color, #F4F6F8)}.chip_theme-custom:not(.chip_type-label) input:not(:checked):focus+.chip__label,.chip_theme-custom:not(.chip_type-label) input:not(:checked):hover+.chip__label{color:var(--evo-chip-color-hover, #0986E2);background-color:var(--evo-chip-background-color-hover, #F6F8F9)}.chip_theme-custom:not(.chip_type-label) input:not(:checked):active+.chip__label{color:var(--evo-chip-color-active, #0986E2);background-color:var(--evo-chip-background-color-active, #DCDDDF)}.chip_theme-custom:not(.chip_type-label) input:checked+.chip__label{color:var(--evo-chip-checked-color, #FFFFFF)!important;background-color:var(--evo-chip-checked-background-color, #0986E2)!important}.chip_theme-custom:not(.chip_type-label) input:checked:focus+.chip__label,.chip_theme-custom:not(.chip_type-label) input:checked:hover+.chip__label{color:var(--evo-chip-color-hover, #0986E2)!important;background-color:var(--evo-chip-checked-background-color-hover, #3A9EE8)!important}.chip_theme-custom:not(.chip_type-label) input:checked:active+.chip__label{color:var(--evo-chip-color-active, #0986E2)!important;background-color:var(--evo-chip-checked-background-color-active, #0879CB)!important}.chip_type-label .chip__label{color:#fff;background-color:#0986e2;cursor:default}.chip__text{display:inline-block;align-items:center;max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.chip__counter{display:flex;justify-content:center;align-items:center;min-width:18px;min-height:18px;margin-right:-5px;margin-left:8px;overflow:hidden;color:#fff;font-weight:700;font-size:12px;background-color:#f05023;border-radius:9px}.chip__counter-value{margin:0 3px;line-height:16px}.chip__close{position:relative;display:block;width:24px;height:24px;margin:0 -9px 0 8px;padding:0;color:#fff;background:none;border:none;cursor:pointer;transition:opacity .3s}.chip__close:not(:disabled):hover{opacity:.8}.chip__close:not(:disabled):active{opacity:.9}.chip__close evo-icon{z-index:1;display:block;width:100%;height:100%;fill:currentColor}:host{display:inline-block;max-width:100%}\n"] }]
|
|
2339
|
-
}],
|
|
2340
|
+
}], propDecorators: { type: [{
|
|
2340
2341
|
type: Input
|
|
2341
2342
|
}], theme: [{
|
|
2342
2343
|
type: Input
|