@ng-nest/ui 18.0.2 → 18.0.4
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/form/control.component.mjs +2 -1
- package/esm2022/input/input.component.mjs +15 -7
- package/fesm2022/ng-nest-ui-form.mjs +1 -0
- package/fesm2022/ng-nest-ui-form.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-input.mjs +14 -6
- package/fesm2022/ng-nest-ui-input.mjs.map +1 -1
- package/package.json +112 -112
|
@@ -60,6 +60,7 @@ export class XControlComponent extends XControlProperty {
|
|
|
60
60
|
.valueChanges.pipe(takeUntil(this._unSubject))
|
|
61
61
|
.subscribe((x) => {
|
|
62
62
|
this.value.set(x);
|
|
63
|
+
this.componentRef?.instance.writeValue(x);
|
|
63
64
|
});
|
|
64
65
|
this.option().setValidators = () => this.setValidators();
|
|
65
66
|
this.form.formGroup().addControl(this.option().id, this.formControl());
|
|
@@ -243,4 +244,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImpor
|
|
|
243
244
|
XAutoCompleteComponent
|
|
244
245
|
], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"x-control\" [formGroup]=\"form.formGroup()\">\r\n <ng-template cdkPortalOutlet></ng-template>\r\n</div>\r\n", styles: [".x-control{margin:0;padding:0}.x-control x-input,.x-control x-select,.x-control x-date-picker,.x-control x-time-picker,.x-control x-input-number,.x-control x-slider-select,.x-control x-cascade,.x-control x-color-picker,.x-control x-textarea,.x-control x-auto-complete{width:100%}\n"] }]
|
|
245
246
|
}], ctorParameters: () => [] });
|
|
246
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS9mb3JtL2NvbnRyb2wuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvZm9ybS9jb250cm9sLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLHVCQUF1QixFQUl2QixNQUFNLEVBQ04sU0FBUyxFQUNULE1BQU0sRUFDTixnQkFBZ0IsRUFFaEIsZ0JBQWdCLEVBQ2hCLE1BQU0sRUFDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZ0JBQWdCLEVBQTJELE1BQU0saUJBQWlCLENBQUM7QUFDNUcsT0FBTyxFQUNMLFVBQVUsRUFDVixrQkFBa0IsRUFHbEIsV0FBVyxFQUNYLG1CQUFtQixFQUNwQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDekQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hELE9BQU8sRUFBYSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZUFBZSxFQUFFLGVBQWUsRUFBVSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM3RixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1C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c0I7cUJBQ3ZCLGlCQUdjLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBPbkluaXQsXHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgaW5qZWN0LFxyXG4gIHZpZXdDaGlsZCxcclxuICBzaWduYWwsXHJcbiAgVmlld0NvbnRhaW5lclJlZixcclxuICBDb21wb25lbnRSZWYsXHJcbiAgT3V0cHV0RW1pdHRlclJlZixcclxuICBlZmZlY3RcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgWENvbnRyb2xQcm9wZXJ0eSwgWEZvcm1Db250cm9sT3B0aW9uLCBYRm9ybUNvbnRyb2xDb21wb25lbnQsIFhGb3JtQ29udHJvbCB9IGZyb20gJy4vZm9ybS5wcm9wZXJ0eSc7XHJcbmltcG9ydCB7XHJcbiAgVmFsaWRhdG9ycyxcclxuICBVbnR5cGVkRm9ybUNvbnRyb2wsXHJcbiAgVmFsaWRhdG9yRm4sXHJcbiAgRm9ybUNvbnRyb2xTdGF0dXMsXHJcbiAgRm9ybXNNb2R1bGUsXHJcbiAgUmVhY3RpdmVGb3Jtc01vZHVsZVxyXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgWElzRW1wdHksIFhJc0Z1bmN0aW9uIH0gZnJvbSAnQG5nLW5lc3QvdWkvY29yZSc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWFwLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFhJMThuRm9ybSwgWEkxOG5TZXJ2aWNlLCB6aF9DTiB9IGZyb20gJ0BuZy1uZXN0L3VpL2kxOG4nO1xyXG5pbXBvcnQgeyBYRm9ybUlucHV0VmFsaWRhdG9yIH0gZnJvbSAnQG5nLW5lc3QvdWkvYmFzZS1mb3JtJztcclxuaW1wb3J0IHsgWEZvcm1Db21wb25lbnQgfSBmcm9tICcuL2Zvcm0uY29tcG9uZW50JztcclxuaW1wb3J0IHsgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XHJcbmltcG9ydCB7IENka1BvcnRhbE91dGxldCwgQ29tcG9uZW50UG9ydGFsLCBQb3J0YWwsIFBvcnRhbE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xyXG5pbXBvcnQgeyBYSW5wdXRDb21wb25lbnQgfSBmcm9tICdAbmctbmVzdC91aS9pbnB1dCc7XHJcbmltcG9ydCB7IFhBdXRvQ29tcGxldGVDb21wb25lbnQgfSBmcm9tICdAbmctbmVzdC91aS9hdXRvLWNvbXBsZXRlJztcclxuaW1wb3J0IHsgWENhc2NhZGVDb21wb25lbnQgfSBmcm9tICdAbmctbmVzdC91aS9jYXNjYWRlJztcclxuaW1wb3J0IHsgWENoZWNrYm94Q29tcG9uZW50IH0gZnJvbSAnQG5nLW5lc3QvdWkvY2hlY2tib3gnO1xyXG5pbXBvcnQgeyBYQ29sb3JQaWNrZXJDb21wb25lbnQgfSBmcm9tICdAbmctbmVzdC91aS9jb2xvci1waWNrZXInO1xyXG5pbXBvcnQgeyBYRGF0ZVBpY2tlckNvbXBvbmVudCB9IGZyb20gJ0BuZy1uZXN0L3VpL2RhdGUtcGlja2VyJztcclxuaW1wb3J0IHsgWEZpbmRDb21wb25lbnQgfSBmcm9tICdAbmctbmVzdC91aS9maW5kJztcclxuaW1wb3J0IHsgWElucHV0TnVtYmVyQ29tcG9uZW50IH0gZnJvbSAnQG5nLW5lc3QvdWkvaW5wdXQtbnVtYmVyJztcclxuaW1wb3J0IHsgWFJhZGlvQ29tcG9uZW50IH0gZnJvbSAnQG5nLW5lc3QvdWkvcmFkaW8nO1xyXG5pbXBvcnQgeyBYUmF0ZUNvbXBvbmVudCB9IGZyb20gJ0BuZy1uZXN0L3VpL3JhdGUnO1xyXG5pbXBvcnQgeyBYU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnQG5nLW5lc3QvdWkvc2VsZWN0JztcclxuaW1wb3J0IHsgWFNsaWRlclNlbGVjdENvbXBvbmVudCB9IGZyb20gJ0BuZy1uZXN0L3VpL3NsaWRlci1zZWxlY3QnO1xyXG5pbXBvcnQgeyBYU3dpdGNoQ29tcG9uZW50IH0gZnJvbSAnQG5nLW5lc3QvdWkvc3dpdGNoJztcclxuaW1wb3J0IHsgWFRleHRhcmVhQ29tcG9uZW50IH0gZnJvbSAnQG5nLW5lc3QvdWkvdGV4dGFyZWEnO1xyXG5pbXBvcnQgeyBYVGltZVBpY2tlckNvbXBvbmVudCwgWFRpbWVQaWNrZXJNb2R1bGUgfSBmcm9tICdAbmctbmVzdC91aS90aW1lLXBpY2tlcic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3gtY29udHJvbCcsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBQb3J0YWxNb2R1bGUsXHJcblxyXG4gICAgWElucHV0Q29tcG9uZW50LFxyXG4gICAgWFNlbGVjdENvbXBvbmVudCxcclxuICAgIFhDYXNjYWRlQ29tcG9uZW50LFxyXG4gICAgWENoZWNrYm94Q29tcG9uZW50LFxyXG4gICAgWENvbG9yUGlja2VyQ29tcG9uZW50LFxyXG4gICAgWERhdGVQaWNrZXJDb21wb25lbnQsXHJcbiAgICBYSW5wdXROdW1iZXJDb21wb25lbnQsXHJcbiAgICBYUmFkaW9Db21wb25lbnQsXHJcbiAgICBYUmF0ZUNvbXBvbmVudCxcclxuICAgIFhTbGlkZXJTZWxlY3RDb21wb25lbnQsXHJcbiAgICBYU3dpdGNoQ29tcG9uZW50LFxyXG4gICAgWFRpbWVQaWNrZXJNb2R1bGUsXHJcbiAgICBYVGV4dGFyZWFDb21wb25lbnQsXHJcbiAgICBYRmluZENvbXBvbmVudCxcclxuICAgIFhBdXRvQ29tcGxldGVDb21wb25lbnRcclxuICBdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jb250cm9sLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jb250cm9sLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgWENvbnRyb2xDb21wb25lbnQgZXh0ZW5kcyBYQ29udHJvbFByb3BlcnR5IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xyXG4gIHByaXZhdGUgaTE4biA9IGluamVjdChYSTE4blNlcnZpY2UpO1xyXG4gIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZiA9IGluamVjdChWaWV3Q29udGFpbmVyUmVmKTtcclxuICBwcml2YXRlIF9zaGFyZWRQcm9wcyA9IHNpZ25hbChbJ3NwYW4nLCAnZGlyZWN0aW9uJywgJ2p1c3RpZnknLCAnYWxpZ24nLCAnbGFiZWxXaWR0aCcsICdsYWJlbEFsaWduJ10pO1xyXG4gIHByaXZhdGUgdmFsaWRhdG9yRm5zID0gc2lnbmFsPFZhbGlkYXRvckZuW10+KFtdKTtcclxuICBwcml2YXRlIGZvcm1Db250cm9sID0gc2lnbmFsPFVudHlwZWRGb3JtQ29udHJvbCB8IG51bGw+KG51bGwpO1xyXG4gIHByaXZhdGUgX3VuU3ViamVjdCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgdmFsdWUgPSBzaWduYWw8YW55PihudWxsKTtcclxuXHJcbiAgZm9ybSA9IGluamVjdChYRm9ybUNvbXBvbmVudCwgeyBvcHRpb25hbDogdHJ1ZSB9KSE7XHJcbiAgbG9jYWxlID0gdG9TaWduYWwodGhpcy5pMThuLmxvY2FsZUNoYW5nZS5waXBlKG1hcCgoeCkgPT4geC5mb3JtIGFzIFhJMThuRm9ybSkpLCB7IGluaXRpYWxWYWx1ZTogemhfQ04uZm9ybSB9KTtcclxuICBwb3J0YWwgPSBzaWduYWw8UG9ydGFsPGFueT4gfCBudWxsPihudWxsKTtcclxuICBjb21wb25lbnRQb3J0YWwhOiBDb21wb25lbnRQb3J0YWw8WEZvcm1Db250cm9sQ29tcG9uZW50PjtcclxuICBjb21wb25lbnRSZWYhOiBDb21wb25lbnRSZWY8WEZvcm1Db250cm9sQ29tcG9uZW50PjtcclxuICBwb3J0YWxPdXRsZXQgPSB2aWV3Q2hpbGQucmVxdWlyZWQoQ2RrUG9ydGFsT3V0bGV0KTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gICAgZWZmZWN0KFxyXG4gICAgICAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5mb3JtQ29udHJvbCgpPy5zZXRWYWx1ZSh0aGlzLnZhbHVlKCkpO1xyXG4gICAgICB9LFxyXG4gICAgICB7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuc2V0T3B0aW9uKCk7XHJcblxyXG4gICAgdGhpcy5mb3JtQ29udHJvbC5zZXQoXHJcbiAgICAgIG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wodGhpcy5vcHRpb24oKS52YWx1ZSwge1xyXG4gICAgICAgIG5vbk51bGxhYmxlOiB0aGlzLm9wdGlvbigpLm5vbk51bGxhYmxlXHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gICAgdGhpcy5zZXRWYWxpZGF0b3JzKCk7XHJcbiAgICB0aGlzLmZvcm1Db250cm9sKCkhXHJcbiAgICAgIC5zdGF0dXNDaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuX3VuU3ViamVjdCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHgpID0+IHtcclxuICAgICAgICB0aGlzLnNldE1lc3NhZ2VzKHgpO1xyXG4gICAgICB9KTtcclxuICAgIHRoaXMuZm9ybUNvbnRyb2woKSFcclxuICAgICAgLnZhbHVlQ2hhbmdlcy5waXBlKHRha2VVbnRpbCh0aGlzLl91blN1YmplY3QpKVxyXG4gICAgICAuc3Vic2NyaWJlKCh4KSA9PiB7XHJcbiAgICAgICAgdGhpcy52YWx1ZS5zZXQoeCk7XHJcbiAgICAgIH0pO1xyXG4gICAgdGhpcy5vcHRpb24oKS5zZXRWYWxpZGF0b3JzID0gKCkgPT4gdGhpcy5zZXRWYWxpZGF0b3JzKCk7XHJcbiAgICB0aGlzLmZvcm0uZm9ybUdyb3VwKCkuYWRkQ29udHJvbCh0aGlzLm9wdGlvbigpLmlkLCB0aGlzLmZvcm1Db250cm9sKCkpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5jb21wb25lbnRQb3J0YWwgPSB0aGlzLmNyZWF0ZUNvbXBvbmVudFBvcnRhbCh0aGlzLm9wdGlvbigpKTtcclxuICAgIHRoaXMuY29tcG9uZW50UmVmID0gdGhpcy5wb3J0YWxPdXRsZXQoKS5hdHRhY2hDb21wb25lbnRQb3J0YWwodGhpcy5jb21wb25lbnRQb3J0YWwpO1xyXG5cclxuICAgIGZvciAobGV0IGtleSBpbiB0aGlzLm9wdGlvbigpKSB7XHJcbiAgICAgIGlmIChrZXkgaW4gdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UpIHtcclxuICAgICAgICBjb25zdCB2YWwgPSAodGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UgYXMgYW55KVtrZXldO1xyXG4gICAgICAgIGlmIChYSXNGdW5jdGlvbih2YWwpKSB7XHJcbiAgICAgICAgICBjb25zdCB2YWxTeW1ib2xzID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh2YWwpO1xyXG4gICAgICAgICAgaWYgKHZhbFN5bWJvbHMubGVuZ3RoICE9PSAxKSBicmVhaztcclxuICAgICAgICAgIGNvbnN0IHZhbFN5bWJvbCA9IHZhbFt2YWxTeW1ib2xzWzBdXTtcclxuICAgICAgICAgIGlmICh2YWxTeW1ib2wuaGFzT3duUHJvcGVydHkoJ3RyYW5zZm9ybUZuJykpIHtcclxuICAgICAgICAgICAgLy8gaW5wdXRcclxuICAgICAgICAgICAgdGhpcy5jb21wb25lbnRSZWYuc2V0SW5wdXQoa2V5LCB0aGlzLm9wdGlvbigpW2tleV0pO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgLy8gc2lnbmFsXHJcbiAgICAgICAgICAgIHZhbC5zZXQodGhpcy5vcHRpb24oKVtrZXldKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2UgaWYgKHZhbCBpbnN0YW5jZW9mIE91dHB1dEVtaXR0ZXJSZWYpIHtcclxuICAgICAgICAgIC8vIG91dHB1dFxyXG4gICAgICAgICAgdmFsLnN1YnNjcmliZSgoeCkgPT4gdGhpcy5vcHRpb24oKVtrZXldKHgpKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyB2YWx1ZVxyXG4gICAgdGhpcy52YWx1ZSA9IHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlWyd2YWx1ZSddO1xyXG5cclxuICAgIHRoaXMuZm9ybS5jb250cm9sVHlwZXNbdGhpcy5vcHRpb24oKS5pZF0gPSB0aGlzLm9wdGlvbigpO1xyXG4gICAgdGhpcy5mb3JtLmNvbnRyb2xDb21wb25lbnRzW3RoaXMub3B0aW9uKCkuaWRdID0gdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2U7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuX3VuU3ViamVjdC5uZXh0KCk7XHJcbiAgICB0aGlzLl91blN1YmplY3QudW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIHNldFZhbGlkYXRvcnMoKSB7XHJcbiAgICB0aGlzLnZhbGlkYXRvckZucy5zZXQoW10pO1xyXG4gICAgaWYgKHRoaXMub3B0aW9uKCkuZGlzYWJsZWQgfHwgdGhpcy5mb3JtLmRpc2FibGVkKCkpIHtcclxuICAgICAgdGhpcy5mb3JtQ29udHJvbCgpIS5kaXNhYmxlKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmZvcm1Db250cm9sKCkhLmVuYWJsZSgpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMub3B0aW9uKCkucmVxdWlyZWQgJiYgIXRoaXMuZm9ybS5kaXNhYmxlZCgpKSB7XHJcbiAgICAgIHRoaXMudmFsaWRhdG9yRm5zLnVwZGF0ZSgoeCkgPT4gWy4uLngsIFZhbGlkYXRvcnMucmVxdWlyZWRdKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLm9wdGlvbigpLnBhdHRlcm4pIHtcclxuICAgICAgdGhpcy5zZXRQYXR0ZXJuKCk7XHJcbiAgICB9XHJcbiAgICBpZiAoWElzRnVuY3Rpb24odGhpcy5vcHRpb24oKS5pbnB1dFZhbGlkYXRvcikpIHtcclxuICAgICAgdGhpcy52YWxpZGF0b3JGbnMudXBkYXRlKCh4KSA9PiBbLi4ueCwgWEZvcm1JbnB1dFZhbGlkYXRvcih0aGlzLm9wdGlvbigpLmlucHV0VmFsaWRhdG9yISldKTtcclxuICAgIH1cclxuICAgIHRoaXMuZm9ybUNvbnRyb2woKSEuc2V0VmFsaWRhdG9ycyh0aGlzLnZhbGlkYXRvckZucygpKTtcclxuICAgIHRoaXMuZm9ybUNvbnRyb2woKSEudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gIH1cclxuXHJcbiAgc2V0T3B0aW9uKCkge1xyXG4gICAgZm9yIChsZXQgcHJvcCBvZiB0aGlzLl9zaGFyZWRQcm9wcygpKSB7XHJcbiAgICAgIGlmIChYSXNFbXB0eSh0aGlzLm9wdGlvbigpW3Byb3BdKSkge1xyXG4gICAgICAgIHRoaXMub3B0aW9uLnVwZGF0ZSgoeCkgPT4ge1xyXG4gICAgICAgICAgeFtwcm9wXSA9ICh0aGlzLmZvcm0gYXMgYW55KVtwcm9wXSgpO1xyXG4gICAgICAgICAgcmV0dXJuIHg7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmIChYSXNFbXB0eSh0aGlzLm9wdGlvbigpLmxhYmVsKSkge1xyXG4gICAgICB0aGlzLm9wdGlvbi51cGRhdGUoKHgpID0+IHtcclxuICAgICAgICB4LmxhYmVsID0gJyc7XHJcbiAgICAgICAgcmV0dXJuIHg7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgdGhpcy5vcHRpb24udXBkYXRlKCh4KSA9PiB7XHJcbiAgICAgIHgubGFiZWwgPSBgJHt0aGlzLm9wdGlvbigpLmxhYmVsfSR7dGhpcy5mb3JtLmxhYmVsU3VmZml4KCl9YDtcclxuICAgICAgcmV0dXJuIHg7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHNldFBhdHRlcm4oKSB7XHJcbiAgICBjb25zdCBwYXR0ZXJuID0gdGhpcy5vcHRpb24oKS5wYXR0ZXJuO1xyXG4gICAgaWYgKEFycmF5LmlzQXJyYXkocGF0dGVybikpIHtcclxuICAgICAgZm9yIChjb25zdCBwdCBvZiBwYXR0ZXJuKSB7XHJcbiAgICAgICAgdGhpcy52YWxpZGF0b3JGbnMudXBkYXRlKCh4KSA9PiBbLi4ueCwgVmFsaWRhdG9ycy5wYXR0ZXJuKHB0KV0pO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnZhbGlkYXRvckZucy51cGRhdGUoKHgpID0+IFsuLi54LCBWYWxpZGF0b3JzLnBhdHRlcm4ocGF0dGVybiBhcyBSZWdFeHApXSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRQYXR0ZXJuTXNnKHBhdHRlcm46IHN0cmluZykge1xyXG4gICAgY29uc3QgY29udHJvbFBhdHRlcm4gPSB0aGlzLm9wdGlvbigpLnBhdHRlcm47XHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheShjb250cm9sUGF0dGVybikpIHtcclxuICAgICAgcmV0dXJuICh0aGlzLm9wdGlvbigpLm1lc3NhZ2UgYXMgQXJyYXk8YW55PilbY29udHJvbFBhdHRlcm4uZmluZEluZGV4KCh4KSA9PiBTdHJpbmcoeCkgPT09IHBhdHRlcm4pXTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiB0aGlzLm9wdGlvbigpLm1lc3NhZ2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRNZXNzYWdlcyhzdGF0ZTogRm9ybUNvbnRyb2xTdGF0dXMpIHtcclxuICAgIGxldCBjb250cm9sID0gdGhpcy5mb3JtQ29udHJvbCgpISBhcyBYRm9ybUNvbnRyb2w7XHJcbiAgICBpZiAoc3RhdGUgPT09ICdJTlZBTElEJyAmJiB0aGlzLmZvcm1Db250cm9sKCkhLmVycm9ycyAhPT0gbnVsbCkge1xyXG4gICAgICBsZXQgbWVzc2FnZXM6IHN0cmluZ1tdID0gW107XHJcbiAgICAgIGZvciAoY29uc3Qga2V5IGluIGNvbnRyb2wuZXJyb3JzKSB7XHJcbiAgICAgICAgY29uc3QgbGFiZWwgPSB0aGlzLm9wdGlvbigpLmxhYmVsIHx8IHRoaXMub3B0aW9uKCkuaWQ7XHJcbiAgICAgICAgaWYgKGtleSA9PT0gJ3JlcXVpcmVkJykge1xyXG4gICAgICAgICAgbWVzc2FnZXMgPSBbLi4ubWVzc2FnZXMsIGAke2xhYmVsfSAke3RoaXMubG9jYWxlKCkucmVxdWlyZWQgfHwgJ3JlcXVpcmVkJ31gXTtcclxuICAgICAgICB9IGVsc2UgaWYgKGtleSA9PT0gJ3BhdHRlcm4nKSB7XHJcbiAgICAgICAgICBtZXNzYWdlcyA9IFsuLi5tZXNzYWdlcywgYCR7bGFiZWx9ICR7dGhpcy5nZXRQYXR0ZXJuTXNnKGNvbnRyb2wuZXJyb3JzW2tleV0ucmVxdWlyZWRQYXR0ZXJuKX1gXTtcclxuICAgICAgICB9IGVsc2UgaWYgKGtleSA9PT0gJ2lucHV0VmFsaWRhdG9yJykge1xyXG4gICAgICAgICAgbWVzc2FnZXMgPSBbLi4ubWVzc2FnZXMsIGAke2xhYmVsfSAke3RoaXMub3B0aW9uKCkubWVzc2FnZX1gXTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgY29udHJvbC5tZXNzYWdlcyA9IG1lc3NhZ2VzO1xyXG4gICAgfSBlbHNlIGlmIChzdGF0ZSA9PT0gJ1ZBTElEJykge1xyXG4gICAgICBjb250cm9sLm1lc3NhZ2VzID0gW107XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjcmVhdGVDb21wb25lbnRQb3J0YWwob3B0aW9uOiBYRm9ybUNvbnRyb2xPcHRpb24pIHtcclxuICAgIHN3aXRjaCAob3B0aW9uLmNvbnRyb2wpIHtcclxuICAgICAgY2FzZSAnaW5wdXQnOlxyXG4gICAgICAgIHJldHVybiBuZXcgQ29tcG9uZW50UG9ydGFsKFhJbnB1dENvbXBvbmVudCwgdGhpcy52aWV3Q29udGFpbmVyUmVmKTtcclxuICAgICAgY2FzZSAnc2VsZWN0JzpcclxuICAgICAgICByZXR1cm4gbmV3IENvbXBvbmVudFBvcnRhbChYU2VsZWN0Q29tcG9uZW50LCB0aGlzLnZpZXdDb250YWluZXJSZWYpO1xyXG4gICAgICBjYXNlICdjaGVja2JveCc6XHJcbiAgICAgICAgcmV0dXJuIG5ldyBDb21wb25lbnRQb3J0YWwoWENoZWNrYm94Q29tcG9uZW50LCB0aGlzLnZpZXdDb250YWluZXJSZWYpO1xyXG4gICAgICBjYXNlICdyYWRpbyc6XHJcbiAgICAgICAgcmV0dXJuIG5ldyBDb21wb25lbnRQb3J0YWwoWFJhZGlvQ29tcG9uZW50LCB0aGlzLnZpZXdDb250YWluZXJSZWYpO1xyXG4gICAgICBjYXNlICdzd2l0Y2gnOlxyXG4gICAgICAgIHJldHVybiBuZXcgQ29tcG9uZW50UG9ydGFsKFhTd2l0Y2hDb21wb25lbnQsIHRoaXMudmlld0NvbnRhaW5lclJlZik7XHJcbiAgICAgIGNhc2UgJ3JhdGUnOlxyXG4gICAgICAgIHJldHVybiBuZXcgQ29tcG9uZW50UG9ydGFsKFhSYXRlQ29tcG9uZW50LCB0aGlzLnZpZXdDb250YWluZXJSZWYpO1xyXG4gICAgICBjYXNlICdkYXRlLXBpY2tlcic6XHJcbiAgICAgICAgcmV0dXJuIG5ldyBDb21wb25lbnRQb3J0YWwoWERhdGVQaWNrZXJDb21wb25lbnQsIHRoaXMudmlld0NvbnRhaW5lclJlZik7XHJcbiAgICAgIGNhc2UgJ3RpbWUtcGlja2VyJzpcclxuICAgICAgICByZXR1cm4gbmV3IENvbXBvbmVudFBvcnRhbChYVGltZVBpY2tlckNvbXBvbmVudCwgdGhpcy52aWV3Q29udGFpbmVyUmVmKTtcclxuICAgICAgY2FzZSAnaW5wdXQtbnVtYmVyJzpcclxuICAgICAgICByZXR1cm4gbmV3IENvbXBvbmVudFBvcnRhbChYSW5wdXROdW1iZXJDb21wb25lbnQsIHRoaXMudmlld0NvbnRhaW5lclJlZik7XHJcbiAgICAgIGNhc2UgJ3NsaWRlci1zZWxlY3QnOlxyXG4gICAgICAgIHJldHVybiBuZXcgQ29tcG9uZW50UG9ydGFsKFhTbGlkZXJTZWxlY3RDb21wb25lbnQsIHRoaXMudmlld0NvbnRhaW5lclJlZik7XHJcbiAgICAgIGNhc2UgJ2Nhc2NhZGUnOlxyXG4gICAgICAgIHJldHVybiBuZXcgQ29tcG9uZW50UG9ydGFsKFhDYXNjYWRlQ29tcG9uZW50LCB0aGlzLnZpZXdDb250YWluZXJSZWYpO1xyXG4gICAgICBjYXNlICdjb2xvci1waWNrZXInOlxyXG4gICAgICAgIHJldHVybiBuZXcgQ29tcG9uZW50UG9ydGFsKFhDb2xvclBpY2tlckNvbXBvbmVudCwgdGhpcy52aWV3Q29udGFpbmVyUmVmKTtcclxuICAgICAgY2FzZSAndGV4dGFyZWEnOlxyXG4gICAgICAgIHJldHVybiBuZXcgQ29tcG9uZW50UG9ydGFsKFhUZXh0YXJlYUNvbXBvbmVudCwgdGhpcy52aWV3Q29udGFpbmVyUmVmKTtcclxuICAgICAgY2FzZSAnZmluZCc6XHJcbiAgICAgICAgcmV0dXJuIG5ldyBDb21wb25lbnRQb3J0YWwoWEZpbmRDb21wb25lbnQsIHRoaXMudmlld0NvbnRhaW5lclJlZik7XHJcbiAgICAgIGNhc2UgJ2F1dG8tY29tcGxldGUnOlxyXG4gICAgICAgIHJldHVybiBuZXcgQ29tcG9uZW50UG9ydGFsKFhBdXRvQ29tcGxldGVDb21wb25lbnQsIHRoaXMudmlld0NvbnRhaW5lclJlZik7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmV0dXJuIG5ldyBDb21wb25lbnRQb3J0YWwoWElucHV0Q29tcG9uZW50LCB0aGlzLnZpZXdDb250YWluZXJSZWYpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwieC1jb250cm9sXCIgW2Zvcm1Hcm91cF09XCJmb3JtLmZvcm1Hcm91cCgpXCI+XHJcbiAgPG5nLXRlbXBsYXRlIGNka1BvcnRhbE91dGxldD48L25nLXRlbXBsYXRlPlxyXG48L2Rpdj5cclxuIl19
|
|
247
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS9mb3JtL2NvbnRyb2wuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvZm9ybS9jb250cm9sLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLHVCQUF1QixFQUl2QixNQUFNLEVBQ04sU0FBUyxFQUNULE1BQU0sRUFDTixnQkFBZ0IsRUFFaEIsZ0JBQWdCLEVBQ2hCLE1BQU0sRUFDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZ0JBQWdCLEVBQTJELE1BQU0saUJBQWlCLENBQUM7QUFDNUcsT0FBTyxFQUNMLFVBQVUsRUFDVixrQkFBa0IsRUFHbEIsV0FBVyxFQUNYLG1CQUFtQixFQUNwQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDekQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hELE9BQU8sRUFBYSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZUFBZSxFQUFFLGVBQWUsRUFBVSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM3RixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1C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Q3RCLGdCQUFnQjt3QkFDaEIsaUJBQWlCO3dCQUNqQixrQkFBa0I7d0JBQ2xCLGNBQWM7d0JBQ2Qsc0JBQXNCO3FCQUN2QixpQkFHYyxpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgT25Jbml0LFxyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgT25EZXN0cm95LFxyXG4gIGluamVjdCxcclxuICB2aWV3Q2hpbGQsXHJcbiAgc2lnbmFsLFxyXG4gIFZpZXdDb250YWluZXJSZWYsXHJcbiAgQ29tcG9uZW50UmVmLFxyXG4gIE91dHB1dEVtaXR0ZXJSZWYsXHJcbiAgZWZmZWN0XHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFhDb250cm9sUHJvcGVydHksIFhGb3JtQ29udHJvbE9wdGlvbiwgWEZvcm1Db250cm9sQ29tcG9uZW50LCBYRm9ybUNvbnRyb2wgfSBmcm9tICcuL2Zvcm0ucHJvcGVydHknO1xyXG5pbXBvcnQge1xyXG4gIFZhbGlkYXRvcnMsXHJcbiAgVW50eXBlZEZvcm1Db250cm9sLFxyXG4gIFZhbGlkYXRvckZuLFxyXG4gIEZvcm1Db250cm9sU3RhdHVzLFxyXG4gIEZvcm1zTW9kdWxlLFxyXG4gIFJlYWN0aXZlRm9ybXNNb2R1bGVcclxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFhJc0VtcHR5LCBYSXNGdW5jdGlvbiB9IGZyb20gJ0BuZy1uZXN0L3VpL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IG1hcCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBYSTE4bkZvcm0sIFhJMThuU2VydmljZSwgemhfQ04gfSBmcm9tICdAbmctbmVzdC91aS9pMThuJztcclxuaW1wb3J0IHsgWEZvcm1JbnB1dFZhbGlkYXRvciB9IGZyb20gJ0BuZy1uZXN0L3VpL2Jhc2UtZm9ybSc7XHJcbmltcG9ydCB7IFhGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi9mb3JtLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IHRvU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xyXG5pbXBvcnQgeyBDZGtQb3J0YWxPdXRsZXQsIENvbXBvbmVudFBvcnRhbCwgUG9ydGFsLCBQb3J0YWxNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcclxuaW1wb3J0IHsgWElucHV0Q29tcG9uZW50IH0gZnJvbSAnQG5nLW5lc3QvdWkvaW5wdXQnO1xyXG5pbXBvcnQgeyBYQXV0b0NvbXBsZXRlQ29tcG9uZW50IH0gZnJvbSAnQG5nLW5lc3QvdWkvYXV0by1jb21wbGV0ZSc7XHJcbmltcG9ydCB7IFhDYXNjYWRlQ29tcG9uZW50IH0gZnJvbSAnQG5nLW5lc3QvdWkvY2FzY2FkZSc7XHJcbmltcG9ydCB7IFhDaGVja2JveENvbXBvbmVudCB9IGZyb20gJ0BuZy1uZXN0L3VpL2NoZWNrYm94JztcclxuaW1wb3J0IHsgWENvbG9yUGlja2VyQ29tcG9uZW50IH0gZnJvbSAnQG5nLW5lc3QvdWkvY29sb3ItcGlja2VyJztcclxuaW1wb3J0IHsgWERhdGVQaWNrZXJDb21wb25lbnQgfSBmcm9tICdAbmctbmVzdC91aS9kYXRlLXBpY2tlcic7XHJcbmltcG9ydCB7IFhGaW5kQ29tcG9uZW50IH0gZnJvbSAnQG5nLW5lc3QvdWkvZmluZCc7XHJcbmltcG9ydCB7IFhJbnB1dE51bWJlckNvbXBvbmVudCB9IGZyb20gJ0BuZy1uZXN0L3VpL2lucHV0LW51bWJlcic7XHJcbmltcG9ydCB7IFhSYWRpb0NvbXBvbmVudCB9IGZyb20gJ0BuZy1uZXN0L3VpL3JhZGlvJztcclxuaW1wb3J0IHsgWFJhdGVDb21wb25lbnQgfSBmcm9tICdAbmctbmVzdC91aS9yYXRlJztcclxuaW1wb3J0IHsgWFNlbGVjdENvbXBvbmVudCB9IGZyb20gJ0BuZy1uZXN0L3VpL3NlbGVjdCc7XHJcbmltcG9ydCB7IFhTbGlkZXJTZWxlY3RDb21wb25lbnQgfSBmcm9tICdAbmctbmVzdC91aS9zbGlkZXItc2VsZWN0JztcclxuaW1wb3J0IHsgWFN3aXRjaENvbXBvbmVudCB9IGZyb20gJ0BuZy1uZXN0L3VpL3N3aXRjaCc7XHJcbmltcG9ydCB7IFhUZXh0YXJlYUNvbXBvbmVudCB9IGZyb20gJ0BuZy1uZXN0L3VpL3RleHRhcmVhJztcclxuaW1wb3J0IHsgWFRpbWVQaWNrZXJDb21wb25lbnQsIFhUaW1lUGlja2VyTW9kdWxlIH0gZnJvbSAnQG5nLW5lc3QvdWkvdGltZS1waWNrZXInO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd4LWNvbnRyb2wnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgUG9ydGFsTW9kdWxlLFxyXG5cclxuICAgIFhJbnB1dENvbXBvbmVudCxcclxuICAgIFhTZWxlY3RDb21wb25lbnQsXHJcbiAgICBYQ2FzY2FkZUNvbXBvbmVudCxcclxuICAgIFhDaGVja2JveENvbXBvbmVudCxcclxuICAgIFhDb2xvclBpY2tlckNvbXBvbmVudCxcclxuICAgIFhEYXRlUGlja2VyQ29tcG9uZW50LFxyXG4gICAgWElucHV0TnVtYmVyQ29tcG9uZW50LFxyXG4gICAgWFJhZGlvQ29tcG9uZW50LFxyXG4gICAgWFJhdGVDb21wb25lbnQsXHJcbiAgICBYU2xpZGVyU2VsZWN0Q29tcG9uZW50LFxyXG4gICAgWFN3aXRjaENvbXBvbmVudCxcclxuICAgIFhUaW1lUGlja2VyTW9kdWxlLFxyXG4gICAgWFRleHRhcmVhQ29tcG9uZW50LFxyXG4gICAgWEZpbmRDb21wb25lbnQsXHJcbiAgICBYQXV0b0NvbXBsZXRlQ29tcG9uZW50XHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vY29udHJvbC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY29udHJvbC5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIFhDb250cm9sQ29tcG9uZW50IGV4dGVuZHMgWENvbnRyb2xQcm9wZXJ0eSBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcclxuICBwcml2YXRlIGkxOG4gPSBpbmplY3QoWEkxOG5TZXJ2aWNlKTtcclxuICBwcml2YXRlIHZpZXdDb250YWluZXJSZWYgPSBpbmplY3QoVmlld0NvbnRhaW5lclJlZik7XHJcbiAgcHJpdmF0ZSBfc2hhcmVkUHJvcHMgPSBzaWduYWwoWydzcGFuJywgJ2RpcmVjdGlvbicsICdqdXN0aWZ5JywgJ2FsaWduJywgJ2xhYmVsV2lkdGgnLCAnbGFiZWxBbGlnbiddKTtcclxuICBwcml2YXRlIHZhbGlkYXRvckZucyA9IHNpZ25hbDxWYWxpZGF0b3JGbltdPihbXSk7XHJcbiAgcHJpdmF0ZSBmb3JtQ29udHJvbCA9IHNpZ25hbDxVbnR5cGVkRm9ybUNvbnRyb2wgfCBudWxsPihudWxsKTtcclxuICBwcml2YXRlIF91blN1YmplY3QgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIHZhbHVlID0gc2lnbmFsPGFueT4obnVsbCk7XHJcblxyXG4gIGZvcm0gPSBpbmplY3QoWEZvcm1Db21wb25lbnQsIHsgb3B0aW9uYWw6IHRydWUgfSkhO1xyXG4gIGxvY2FsZSA9IHRvU2lnbmFsKHRoaXMuaTE4bi5sb2NhbGVDaGFuZ2UucGlwZShtYXAoKHgpID0+IHguZm9ybSBhcyBYSTE4bkZvcm0pKSwgeyBpbml0aWFsVmFsdWU6IHpoX0NOLmZvcm0gfSk7XHJcbiAgcG9ydGFsID0gc2lnbmFsPFBvcnRhbDxhbnk+IHwgbnVsbD4obnVsbCk7XHJcbiAgY29tcG9uZW50UG9ydGFsITogQ29tcG9uZW50UG9ydGFsPFhGb3JtQ29udHJvbENvbXBvbmVudD47XHJcbiAgY29tcG9uZW50UmVmITogQ29tcG9uZW50UmVmPFhGb3JtQ29udHJvbENvbXBvbmVudD47XHJcbiAgcG9ydGFsT3V0bGV0ID0gdmlld0NoaWxkLnJlcXVpcmVkKENka1BvcnRhbE91dGxldCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgc3VwZXIoKTtcclxuICAgIGVmZmVjdChcclxuICAgICAgKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuZm9ybUNvbnRyb2woKT8uc2V0VmFsdWUodGhpcy52YWx1ZSgpKTtcclxuICAgICAgfSxcclxuICAgICAgeyBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLnNldE9wdGlvbigpO1xyXG5cclxuICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0KFxyXG4gICAgICBuZXcgVW50eXBlZEZvcm1Db250cm9sKHRoaXMub3B0aW9uKCkudmFsdWUsIHtcclxuICAgICAgICBub25OdWxsYWJsZTogdGhpcy5vcHRpb24oKS5ub25OdWxsYWJsZVxyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICAgIHRoaXMuc2V0VmFsaWRhdG9ycygpO1xyXG4gICAgdGhpcy5mb3JtQ29udHJvbCgpIVxyXG4gICAgICAuc3RhdHVzQ2hhbmdlcy5waXBlKHRha2VVbnRpbCh0aGlzLl91blN1YmplY3QpKVxyXG4gICAgICAuc3Vic2NyaWJlKCh4KSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXRNZXNzYWdlcyh4KTtcclxuICAgICAgfSk7XHJcbiAgICB0aGlzLmZvcm1Db250cm9sKCkhXHJcbiAgICAgIC52YWx1ZUNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5fdW5TdWJqZWN0KSlcclxuICAgICAgLnN1YnNjcmliZSgoeCkgPT4ge1xyXG4gICAgICAgIHRoaXMudmFsdWUuc2V0KHgpO1xyXG4gICAgICAgIHRoaXMuY29tcG9uZW50UmVmPy5pbnN0YW5jZS53cml0ZVZhbHVlKHgpO1xyXG4gICAgICB9KTtcclxuICAgIHRoaXMub3B0aW9uKCkuc2V0VmFsaWRhdG9ycyA9ICgpID0+IHRoaXMuc2V0VmFsaWRhdG9ycygpO1xyXG4gICAgdGhpcy5mb3JtLmZvcm1Hcm91cCgpLmFkZENvbnRyb2wodGhpcy5vcHRpb24oKS5pZCwgdGhpcy5mb3JtQ29udHJvbCgpKTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMuY29tcG9uZW50UG9ydGFsID0gdGhpcy5jcmVhdGVDb21wb25lbnRQb3J0YWwodGhpcy5vcHRpb24oKSk7XHJcbiAgICB0aGlzLmNvbXBvbmVudFJlZiA9IHRoaXMucG9ydGFsT3V0bGV0KCkuYXR0YWNoQ29tcG9uZW50UG9ydGFsKHRoaXMuY29tcG9uZW50UG9ydGFsKTtcclxuXHJcbiAgICBmb3IgKGxldCBrZXkgaW4gdGhpcy5vcHRpb24oKSkge1xyXG4gICAgICBpZiAoa2V5IGluIHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlKSB7XHJcbiAgICAgICAgY29uc3QgdmFsID0gKHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlIGFzIGFueSlba2V5XTtcclxuICAgICAgICBpZiAoWElzRnVuY3Rpb24odmFsKSkge1xyXG4gICAgICAgICAgY29uc3QgdmFsU3ltYm9scyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHModmFsKTtcclxuICAgICAgICAgIGlmICh2YWxTeW1ib2xzLmxlbmd0aCAhPT0gMSkgYnJlYWs7XHJcbiAgICAgICAgICBjb25zdCB2YWxTeW1ib2wgPSB2YWxbdmFsU3ltYm9sc1swXV07XHJcbiAgICAgICAgICBpZiAodmFsU3ltYm9sLmhhc093blByb3BlcnR5KCd0cmFuc2Zvcm1GbicpKSB7XHJcbiAgICAgICAgICAgIC8vIGlucHV0XHJcbiAgICAgICAgICAgIHRoaXMuY29tcG9uZW50UmVmLnNldElucHV0KGtleSwgdGhpcy5vcHRpb24oKVtrZXldKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIC8vIHNpZ25hbFxyXG4gICAgICAgICAgICB2YWwuc2V0KHRoaXMub3B0aW9uKClba2V5XSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIGlmICh2YWwgaW5zdGFuY2VvZiBPdXRwdXRFbWl0dGVyUmVmKSB7XHJcbiAgICAgICAgICAvLyBvdXRwdXRcclxuICAgICAgICAgIHZhbC5zdWJzY3JpYmUoKHgpID0+IHRoaXMub3B0aW9uKClba2V5XSh4KSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gdmFsdWVcclxuICAgIHRoaXMudmFsdWUgPSB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZVsndmFsdWUnXTtcclxuXHJcbiAgICB0aGlzLmZvcm0uY29udHJvbFR5cGVzW3RoaXMub3B0aW9uKCkuaWRdID0gdGhpcy5vcHRpb24oKTtcclxuICAgIHRoaXMuZm9ybS5jb250cm9sQ29tcG9uZW50c1t0aGlzLm9wdGlvbigpLmlkXSA9IHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLl91blN1YmplY3QubmV4dCgpO1xyXG4gICAgdGhpcy5fdW5TdWJqZWN0LnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICBzZXRWYWxpZGF0b3JzKCkge1xyXG4gICAgdGhpcy52YWxpZGF0b3JGbnMuc2V0KFtdKTtcclxuICAgIGlmICh0aGlzLm9wdGlvbigpLmRpc2FibGVkIHx8IHRoaXMuZm9ybS5kaXNhYmxlZCgpKSB7XHJcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2woKSEuZGlzYWJsZSgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5mb3JtQ29udHJvbCgpIS5lbmFibGUoKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLm9wdGlvbigpLnJlcXVpcmVkICYmICF0aGlzLmZvcm0uZGlzYWJsZWQoKSkge1xyXG4gICAgICB0aGlzLnZhbGlkYXRvckZucy51cGRhdGUoKHgpID0+IFsuLi54LCBWYWxpZGF0b3JzLnJlcXVpcmVkXSk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5vcHRpb24oKS5wYXR0ZXJuKSB7XHJcbiAgICAgIHRoaXMuc2V0UGF0dGVybigpO1xyXG4gICAgfVxyXG4gICAgaWYgKFhJc0Z1bmN0aW9uKHRoaXMub3B0aW9uKCkuaW5wdXRWYWxpZGF0b3IpKSB7XHJcbiAgICAgIHRoaXMudmFsaWRhdG9yRm5zLnVwZGF0ZSgoeCkgPT4gWy4uLngsIFhGb3JtSW5wdXRWYWxpZGF0b3IodGhpcy5vcHRpb24oKS5pbnB1dFZhbGlkYXRvciEpXSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmZvcm1Db250cm9sKCkhLnNldFZhbGlkYXRvcnModGhpcy52YWxpZGF0b3JGbnMoKSk7XHJcbiAgICB0aGlzLmZvcm1Db250cm9sKCkhLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICB9XHJcblxyXG4gIHNldE9wdGlvbigpIHtcclxuICAgIGZvciAobGV0IHByb3Agb2YgdGhpcy5fc2hhcmVkUHJvcHMoKSkge1xyXG4gICAgICBpZiAoWElzRW1wdHkodGhpcy5vcHRpb24oKVtwcm9wXSkpIHtcclxuICAgICAgICB0aGlzLm9wdGlvbi51cGRhdGUoKHgpID0+IHtcclxuICAgICAgICAgIHhbcHJvcF0gPSAodGhpcy5mb3JtIGFzIGFueSlbcHJvcF0oKTtcclxuICAgICAgICAgIHJldHVybiB4O1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAoWElzRW1wdHkodGhpcy5vcHRpb24oKS5sYWJlbCkpIHtcclxuICAgICAgdGhpcy5vcHRpb24udXBkYXRlKCh4KSA9PiB7XHJcbiAgICAgICAgeC5sYWJlbCA9ICcnO1xyXG4gICAgICAgIHJldHVybiB4O1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIHRoaXMub3B0aW9uLnVwZGF0ZSgoeCkgPT4ge1xyXG4gICAgICB4LmxhYmVsID0gYCR7dGhpcy5vcHRpb24oKS5sYWJlbH0ke3RoaXMuZm9ybS5sYWJlbFN1ZmZpeCgpfWA7XHJcbiAgICAgIHJldHVybiB4O1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzZXRQYXR0ZXJuKCkge1xyXG4gICAgY29uc3QgcGF0dGVybiA9IHRoaXMub3B0aW9uKCkucGF0dGVybjtcclxuICAgIGlmIChBcnJheS5pc0FycmF5KHBhdHRlcm4pKSB7XHJcbiAgICAgIGZvciAoY29uc3QgcHQgb2YgcGF0dGVybikge1xyXG4gICAgICAgIHRoaXMudmFsaWRhdG9yRm5zLnVwZGF0ZSgoeCkgPT4gWy4uLngsIFZhbGlkYXRvcnMucGF0dGVybihwdCldKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy52YWxpZGF0b3JGbnMudXBkYXRlKCh4KSA9PiBbLi4ueCwgVmFsaWRhdG9ycy5wYXR0ZXJuKHBhdHRlcm4gYXMgUmVnRXhwKV0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0UGF0dGVybk1zZyhwYXR0ZXJuOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IGNvbnRyb2xQYXR0ZXJuID0gdGhpcy5vcHRpb24oKS5wYXR0ZXJuO1xyXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoY29udHJvbFBhdHRlcm4pKSB7XHJcbiAgICAgIHJldHVybiAodGhpcy5vcHRpb24oKS5tZXNzYWdlIGFzIEFycmF5PGFueT4pW2NvbnRyb2xQYXR0ZXJuLmZpbmRJbmRleCgoeCkgPT4gU3RyaW5nKHgpID09PSBwYXR0ZXJuKV07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gdGhpcy5vcHRpb24oKS5tZXNzYWdlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0TWVzc2FnZXMoc3RhdGU6IEZvcm1Db250cm9sU3RhdHVzKSB7XHJcbiAgICBsZXQgY29udHJvbCA9IHRoaXMuZm9ybUNvbnRyb2woKSEgYXMgWEZvcm1Db250cm9sO1xyXG4gICAgaWYgKHN0YXRlID09PSAnSU5WQUxJRCcgJiYgdGhpcy5mb3JtQ29udHJvbCgpIS5lcnJvcnMgIT09IG51bGwpIHtcclxuICAgICAgbGV0IG1lc3NhZ2VzOiBzdHJpbmdbXSA9IFtdO1xyXG4gICAgICBmb3IgKGNvbnN0IGtleSBpbiBjb250cm9sLmVycm9ycykge1xyXG4gICAgICAgIGNvbnN0IGxhYmVsID0gdGhpcy5vcHRpb24oKS5sYWJlbCB8fCB0aGlzLm9wdGlvbigpLmlkO1xyXG4gICAgICAgIGlmIChrZXkgPT09ICdyZXF1aXJlZCcpIHtcclxuICAgICAgICAgIG1lc3NhZ2VzID0gWy4uLm1lc3NhZ2VzLCBgJHtsYWJlbH0gJHt0aGlzLmxvY2FsZSgpLnJlcXVpcmVkIHx8ICdyZXF1aXJlZCd9YF07XHJcbiAgICAgICAgfSBlbHNlIGlmIChrZXkgPT09ICdwYXR0ZXJuJykge1xyXG4gICAgICAgICAgbWVzc2FnZXMgPSBbLi4ubWVzc2FnZXMsIGAke2xhYmVsfSAke3RoaXMuZ2V0UGF0dGVybk1zZyhjb250cm9sLmVycm9yc1trZXldLnJlcXVpcmVkUGF0dGVybil9YF07XHJcbiAgICAgICAgfSBlbHNlIGlmIChrZXkgPT09ICdpbnB1dFZhbGlkYXRvcicpIHtcclxuICAgICAgICAgIG1lc3NhZ2VzID0gWy4uLm1lc3NhZ2VzLCBgJHtsYWJlbH0gJHt0aGlzLm9wdGlvbigpLm1lc3NhZ2V9YF07XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGNvbnRyb2wubWVzc2FnZXMgPSBtZXNzYWdlcztcclxuICAgIH0gZWxzZSBpZiAoc3RhdGUgPT09ICdWQUxJRCcpIHtcclxuICAgICAgY29udHJvbC5tZXNzYWdlcyA9IFtdO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY3JlYXRlQ29tcG9uZW50UG9ydGFsKG9wdGlvbjogWEZvcm1Db250cm9sT3B0aW9uKSB7XHJcbiAgICBzd2l0Y2ggKG9wdGlvbi5jb250cm9sKSB7XHJcbiAgICAgIGNhc2UgJ2lucHV0JzpcclxuICAgICAgICByZXR1cm4gbmV3IENvbXBvbmVudFBvcnRhbChYSW5wdXRDb21wb25lbnQsIHRoaXMudmlld0NvbnRhaW5lclJlZik7XHJcbiAgICAgIGNhc2UgJ3NlbGVjdCc6XHJcbiAgICAgICAgcmV0dXJuIG5ldyBDb21wb25lbnRQb3J0YWwoWFNlbGVjdENvbXBvbmVudCwgdGhpcy52aWV3Q29udGFpbmVyUmVmKTtcclxuICAgICAgY2FzZSAnY2hlY2tib3gnOlxyXG4gICAgICAgIHJldHVybiBuZXcgQ29tcG9uZW50UG9ydGFsKFhDaGVja2JveENvbXBvbmVudCwgdGhpcy52aWV3Q29udGFpbmVyUmVmKTtcclxuICAgICAgY2FzZSAncmFkaW8nOlxyXG4gICAgICAgIHJldHVybiBuZXcgQ29tcG9uZW50UG9ydGFsKFhSYWRpb0NvbXBvbmVudCwgdGhpcy52aWV3Q29udGFpbmVyUmVmKTtcclxuICAgICAgY2FzZSAnc3dpdGNoJzpcclxuICAgICAgICByZXR1cm4gbmV3IENvbXBvbmVudFBvcnRhbChYU3dpdGNoQ29tcG9uZW50LCB0aGlzLnZpZXdDb250YWluZXJSZWYpO1xyXG4gICAgICBjYXNlICdyYXRlJzpcclxuICAgICAgICByZXR1cm4gbmV3IENvbXBvbmVudFBvcnRhbChYUmF0ZUNvbXBvbmVudCwgdGhpcy52aWV3Q29udGFpbmVyUmVmKTtcclxuICAgICAgY2FzZSAnZGF0ZS1waWNrZXInOlxyXG4gICAgICAgIHJldHVybiBuZXcgQ29tcG9uZW50UG9ydGFsKFhEYXRlUGlja2VyQ29tcG9uZW50LCB0aGlzLnZpZXdDb250YWluZXJSZWYpO1xyXG4gICAgICBjYXNlICd0aW1lLXBpY2tlcic6XHJcbiAgICAgICAgcmV0dXJuIG5ldyBDb21wb25lbnRQb3J0YWwoWFRpbWVQaWNrZXJDb21wb25lbnQsIHRoaXMudmlld0NvbnRhaW5lclJlZik7XHJcbiAgICAgIGNhc2UgJ2lucHV0LW51bWJlcic6XHJcbiAgICAgICAgcmV0dXJuIG5ldyBDb21wb25lbnRQb3J0YWwoWElucHV0TnVtYmVyQ29tcG9uZW50LCB0aGlzLnZpZXdDb250YWluZXJSZWYpO1xyXG4gICAgICBjYXNlICdzbGlkZXItc2VsZWN0JzpcclxuICAgICAgICByZXR1cm4gbmV3IENvbXBvbmVudFBvcnRhbChYU2xpZGVyU2VsZWN0Q29tcG9uZW50LCB0aGlzLnZpZXdDb250YWluZXJSZWYpO1xyXG4gICAgICBjYXNlICdjYXNjYWRlJzpcclxuICAgICAgICByZXR1cm4gbmV3IENvbXBvbmVudFBvcnRhbChYQ2FzY2FkZUNvbXBvbmVudCwgdGhpcy52aWV3Q29udGFpbmVyUmVmKTtcclxuICAgICAgY2FzZSAnY29sb3ItcGlja2VyJzpcclxuICAgICAgICByZXR1cm4gbmV3IENvbXBvbmVudFBvcnRhbChYQ29sb3JQaWNrZXJDb21wb25lbnQsIHRoaXMudmlld0NvbnRhaW5lclJlZik7XHJcbiAgICAgIGNhc2UgJ3RleHRhcmVhJzpcclxuICAgICAgICByZXR1cm4gbmV3IENvbXBvbmVudFBvcnRhbChYVGV4dGFyZWFDb21wb25lbnQsIHRoaXMudmlld0NvbnRhaW5lclJlZik7XHJcbiAgICAgIGNhc2UgJ2ZpbmQnOlxyXG4gICAgICAgIHJldHVybiBuZXcgQ29tcG9uZW50UG9ydGFsKFhGaW5kQ29tcG9uZW50LCB0aGlzLnZpZXdDb250YWluZXJSZWYpO1xyXG4gICAgICBjYXNlICdhdXRvLWNvbXBsZXRlJzpcclxuICAgICAgICByZXR1cm4gbmV3IENvbXBvbmVudFBvcnRhbChYQXV0b0NvbXBsZXRlQ29tcG9uZW50LCB0aGlzLnZpZXdDb250YWluZXJSZWYpO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiBuZXcgQ29tcG9uZW50UG9ydGFsKFhJbnB1dENvbXBvbmVudCwgdGhpcy52aWV3Q29udGFpbmVyUmVmKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cIngtY29udHJvbFwiIFtmb3JtR3JvdXBdPVwiZm9ybS5mb3JtR3JvdXAoKVwiPlxyXG4gIDxuZy10ZW1wbGF0ZSBjZGtQb3J0YWxPdXRsZXQ+PC9uZy10ZW1wbGF0ZT5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
@@ -143,16 +143,24 @@ export class XInputComponent extends XInputProperty {
|
|
|
143
143
|
const input = x.target;
|
|
144
144
|
let value = input.value;
|
|
145
145
|
if (this.type() === 'number') {
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
146
|
+
if (!XIsEmpty(value)) {
|
|
147
|
+
const len = XIsEmpty(value) ? 0 : `${value}`.length;
|
|
148
|
+
if (this.maxlength() && len > Number(this.maxlength())) {
|
|
149
|
+
input.value = value.slice(0, this.maxlength());
|
|
150
|
+
}
|
|
151
|
+
if (!XIsEmpty(this.min()) && Number(value) <= this.min()) {
|
|
152
|
+
input.value = `${this.min()}`;
|
|
153
|
+
}
|
|
154
|
+
if (!XIsEmpty(this.max()) && Number(value) >= this.max()) {
|
|
155
|
+
input.value = `${this.max()}`;
|
|
156
|
+
}
|
|
149
157
|
}
|
|
150
158
|
}
|
|
151
159
|
this.xInput.emit(x);
|
|
152
160
|
this.valueChange.next(input.value);
|
|
153
161
|
}
|
|
154
162
|
change(value) {
|
|
155
|
-
if (this.maxlength) {
|
|
163
|
+
if (this.maxlength()) {
|
|
156
164
|
this.valueLength.set(XIsEmpty(value) ? 0 : `${value}`.length);
|
|
157
165
|
this.lengthTotal.set(`${this.valueLength()}/${this.maxlength()}`);
|
|
158
166
|
}
|
|
@@ -204,13 +212,13 @@ export class XInputComponent extends XInputProperty {
|
|
|
204
212
|
}
|
|
205
213
|
formControlChanges() { }
|
|
206
214
|
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: XInputComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
207
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.6", type: XInputComponent, isStandalone: true, selector: "x-input", host: { properties: { "style.width": "this.getWidth" } }, providers: [XValueAccessor(XInputComponent)], viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["inputElement"], descendants: true, read: ElementRef, isSignal: true }, { propertyName: "inputRef", first: true, predicate: ["inputRef"], descendants: true, read: ElementRef, isSignal: true }, { propertyName: "inputValueRef", first: true, predicate: ["inputValueRef"], descendants: true, read: ElementRef, isSignal: true }, { propertyName: "maxLengthRef", first: true, predicate: ["maxLengthRef"], descendants: true, read: ElementRef, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div\r\n #inputElement\r\n class=\"x-input\"\r\n [class.x-flex]=\"justify() || align() || direction()\"\r\n [class.x-disabled]=\"disabledComputed()\"\r\n [class.x-required]=\"requiredIsEmpty()\"\r\n [class.x-invalid]=\"invalid()\"\r\n [class.x-clearable]=\"clearable()\"\r\n [class.x-clear-show]=\"clearShow()\"\r\n [class.x-input-icon]=\"getIcon()\"\r\n [class.x-input-active]=\"active()\"\r\n [class.x-input-focus]=\"focused()\"\r\n [class.x-input-pointer]=\"pointer()\"\r\n [class.x-input-bordered]=\"bordered()\"\r\n [class.x-input-icon-left]=\"getIconLayoutLeft()\"\r\n [class.x-input-icon-right]=\"getIconLayoutRight()\"\r\n [class.x-input-after]=\"after()\"\r\n [class.x-input-before]=\"before()\"\r\n [class.x-input-after-template]=\"afterIsTemplate()\"\r\n [class.x-input-before-template]=\"beforeIsTemplate()\"\r\n [class.x-input-value-template]=\"valueTpl()\"\r\n [ngClass]=\"classMap()\"\r\n>\r\n @if (label()) {\r\n <label\r\n [class.x-input-label-required]=\"requiredComputed()\"\r\n [style.width]=\"labelWidth()\"\r\n [ngClass]=\"labelMapSignal()\"\r\n >{{ label() }}</label\r\n >\r\n }\r\n <div class=\"x-input-row\">\r\n @if (before()) {\r\n <div class=\"x-input-row-before\" [class.x-input-row-before-template]=\"beforeIsTemplate()\">\r\n <ng-container *xOutlet=\"before()\">{{ before() }}</ng-container>\r\n </div>\r\n }\r\n <div class=\"x-input-input\" (mouseenter)=\"xMouseenter.emit($event)\" (mouseleave)=\"xMouseleave.emit($event)\">\r\n @if (valueTpl()) {\r\n <div\r\n #inputValueRef\r\n class=\"x-input-value-template-value\"\r\n [style.left]=\"paddingLeft()\"\r\n [style.padding-left]=\"0\"\r\n [style.padding-right]=\"0\"\r\n [style.width]=\"getTemplateWidth()\"\r\n (click)=\"xClick.emit($event)\"\r\n >\r\n <ng-container\r\n *ngTemplateOutlet=\"valueTpl()!; context: valueTplContext() ? valueTplContext() : { $value: value() }\"\r\n ></ng-container>\r\n </div>\r\n }\r\n <input\r\n #inputRef\r\n autocomplete=\"off\"\r\n [class.x-input-has-value-template]=\"valueTpl()\"\r\n [ngStyle]=\"inputStyle()\"\r\n [type]=\"type()\"\r\n [placeholder]=\"placeholder()\"\r\n [required]=\"requiredComputed()\"\r\n [disabled]=\"disabledComputed()\"\r\n [readonly]=\"readonly()\"\r\n [maxlength]=\"maxlength()\"\r\n [min]=\"min()\"\r\n [min]=\"max()\"\r\n [(ngModel)]=\"value\"\r\n (ngModelChange)=\"valueChange.next($event)\"\r\n [style.padding-left]=\"paddingLeft()\"\r\n [style.padding-right]=\"paddingRight()\"\r\n (focus)=\"xFocus.emit($event)\"\r\n (blur)=\"xBlur.emit($event)\"\r\n (keydown)=\"formControlValidator(); xKeydown.emit($event)\"\r\n (click)=\"xClick.emit($event)\"\r\n (compositionstart)=\"xComposition.emit($event)\"\r\n (compositionend)=\"xComposition.emit($event)\"\r\n />\r\n @if (clearShow() && !iconSpin()) {\r\n <x-icon class=\"x-input-clear\" type=\"fto-x\" (click)=\"onClear()\"></x-icon>\r\n }\r\n @if (icon() && ((!clearShow() && getIconLayoutRight()) || getIconLayoutLeft() || iconSpin())) {\r\n <x-icon [type]=\"icon()\" [spin]=\"iconSpin()\" (click)=\"xClick.emit($event)\"></x-icon>\r\n }\r\n @if (maxlength() && lengthTotal()) {\r\n <span class=\"x-input-max-length\" [style.width]=\"getMaxLengthWidth()\">{{ lengthTotal() }}</span>\r\n }\r\n @if (invalid()) {\r\n <span class=\"x-input-error-message\">{{ invalidMessage() }}</span>\r\n }\r\n @if (requiredIsEmpty() || invalid()) {\r\n <div class=\"x-border-error x-top-left\"></div>\r\n <div class=\"x-border-error x-top-right\"></div>\r\n <div class=\"x-border-error x-bottom-left\"></div>\r\n <div class=\"x-border-error x-bottom-right\"></div>\r\n }\r\n </div>\r\n @if (after()) {\r\n <div class=\"x-input-row-after\" [class.x-input-row-after-template]=\"afterIsTemplate()\">\r\n <ng-container *xOutlet=\"after()\">{{ after() }}</ng-container>\r\n </div>\r\n }\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";x-input{display:inline-block;width:12rem}.x-input{width:100%;margin:0;padding:0}.x-input.x-flex{display:flex}.x-input.x-justify-start{justify-content:flex-start}.x-input.x-justify-center{justify-content:center}.x-input.x-justify-end{justify-content:flex-end}.x-input.x-justify-space-between{justify-content:space-between}.x-input.x-justify-space-around{justify-content:space-around}.x-input.x-align-start{align-items:flex-start}.x-input.x-align-center{align-items:center}.x-input.x-align-end{align-items:flex-end}.x-input.x-direction-column{flex-direction:column}.x-input.x-direction-column-reverse{flex-direction:column-reverse}.x-input.x-direction-row{flex-direction:row}.x-input.x-direction-row-reverse{flex-direction:row-reverse}.x-input>label{display:inline-block;white-space:nowrap;position:relative;color:var(--x-text-300);font-weight:600}.x-input>label.x-text-align-start{text-align:start}.x-input>label.x-text-align-center{text-align:center}.x-input>label.x-text-align-end{text-align:end}.x-input-row{flex:1;display:flex;align-items:center}.x-input-row .x-input-row-before:not(.x-input-row-before-template),.x-input-row .x-input-row-after:not(.x-input-row-after-template){border:var(--x-border-width) var(--x-border-style) var(--x-border);background-color:var(--x-background-a100);border-width:0}.x-input-row .x-input-row-before:not(.x-input-row-before-template){border-top-left-radius:var(--x-border-radius);border-bottom-left-radius:var(--x-border-radius)}.x-input-row .x-input-row-after:not(.x-input-row-before-template){border-top-right-radius:var(--x-border-radius);border-bottom-right-radius:var(--x-border-radius)}.x-input-row .x-input-row-before-template{display:contents}.x-input-row .x-input-row-before-template input,.x-input-row .x-input-row-before-template .x-button{border-top-right-radius:0!important;border-bottom-right-radius:0!important}.x-input-row .x-input-row-before-template input{margin-right:calc(var(--x-border-width) * -1)}.x-input-row .x-input-row-after-template{display:contents}.x-input-row .x-input-row-after-template input,.x-input-row .x-input-row-after-template .x-button{border-top-left-radius:0!important;border-bottom-left-radius:0!important}.x-input-row .x-input-row-after-template input{margin-left:calc(var(--x-border-width) * -1)}.x-input-row .x-input-row-before-template:hover,.x-input-row .x-input-row-before-template:focus{z-index:1}.x-input-row .x-input-row-before-template input:hover,.x-input-row .x-input-row-before-template input:focus,.x-input-row .x-input-row-after-template input:hover,.x-input-row .x-input-row-after-template input:focus{z-index:1}.x-input-row>.x-input-input{position:relative;width:100%;display:inline-flex;align-items:center}.x-input-row>.x-input-input>input{flex:1;width:100%;font-size:var(--x-font-size);background-color:var(--x-background-a200);background-image:none;border:var(--x-border-width) var(--x-border-style) var(--x-border);border-radius:var(--x-border-radius);border-width:0;box-shadow:var(--x-box-shadow) transparent;transition-property:background-color,border-color;transition-duration:var(--x-animation-duration-slow)}.x-input-row>.x-input-input>input::-moz-placeholder{color:var(--x-text-700);opacity:1}.x-input-row>.x-input-input>input:-ms-input-placeholder{color:var(--x-text-700)}.x-input-row>.x-input-input>input::-webkit-input-placeholder{color:var(--x-text-700)}.x-input-row>.x-input-input>input[disabled]{color:var(--x-text-500)}.x-input-row>.x-input-input>input:focus{border-color:var(--x-primary);outline:0}.x-input-row>.x-input-input>x-icon{color:var(--x-text-400);transition:all var(--x-animation-duration-base);z-index:2}.x-input-row>.x-input-input:hover>input{border-color:var(--x-primary-300)}.x-input-row>.x-input-input:focus>input{border-color:var(--x-primary);outline:0}.x-input-label-required:before{display:inline-block;margin-right:.25rem;color:var(--x-danger);line-height:1;font-size:var(--x-font-size-small);content:\"*\"}.x-input-value-template .x-input-input>input.x-input-has-value-template{color:transparent!important}.x-input-value-template-value{position:absolute;display:inline-block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;width:100%}.x-input-value-template-value:hover+input{border-color:var(--x-primary-300)}.x-input-error-message{position:absolute;bottom:0;left:0;font-size:var(--x-font-size)-.125rem;color:var(--x-danger);margin-bottom:calc((var(--x-font-size)) * -2);width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.x-input.x-invalid>label,.x-input.x-required>label{color:var(--x-danger)}.x-input.x-invalid .x-input-input>x-icon,.x-input.x-required .x-input-input>x-icon{color:var(--x-danger)}.x-input.x-invalid .x-input-input .x-border-error,.x-input.x-required .x-input-input .x-border-error{position:absolute;height:.75rem;width:.75rem;z-index:10}.x-input.x-invalid .x-input-input .x-border-error.x-top-left,.x-input.x-required .x-input-input .x-border-error.x-top-left{border-top-left-radius:var(--x-border-radius);top:0;left:0;border-top:var(--x-border-width) solid var(--x-danger);border-left:var(--x-border-width) solid var(--x-danger)}.x-input.x-invalid .x-input-input .x-border-error.x-top-right,.x-input.x-required .x-input-input .x-border-error.x-top-right{border-top-right-radius:var(--x-border-radius);top:0;right:0;border-top:var(--x-border-width) solid var(--x-danger);border-right:var(--x-border-width) solid var(--x-danger)}.x-input.x-invalid .x-input-input .x-border-error.x-bottom-left,.x-input.x-required .x-input-input .x-border-error.x-bottom-left{border-bottom-left-radius:var(--x-border-radius);bottom:0;left:0;border-bottom:var(--x-border-width) solid var(--x-danger);border-left:var(--x-border-width) solid var(--x-danger)}.x-input.x-invalid .x-input-input .x-border-error.x-bottom-right,.x-input.x-required .x-input-input .x-border-error.x-bottom-right{border-bottom-right-radius:var(--x-border-radius);bottom:0;right:0;border-bottom:var(--x-border-width) solid var(--x-danger);border-right:var(--x-border-width) solid var(--x-danger)}.x-input.x-disabled>.x-input-row>.x-input-input>x-icon{color:var(--x-text-400);cursor:not-allowed}.x-input.x-disabled>.x-input-row>.x-input-input>input{color:var(--x-text-400);cursor:not-allowed;border-color:var(--x-border-100);background-color:var(--x-background-a100)}.x-input.x-disabled>.x-input-row>.x-input-input>.x-input-value-template-value{color:var(--x-text-400);cursor:not-allowed}.x-input.x-clearable>.x-input-row>.x-input-input>.x-input-clear{position:absolute;color:var(--x-text-400);font-size:var(--x-font-size-medium);right:0;left:inherit;opacity:0;cursor:pointer;z-index:2;display:inline-flex;align-items:center;justify-content:center}.x-input.x-clearable>.x-input-row>.x-input-input>.x-input-clear:hover{color:var(--x-text-300)}.x-input.x-clearable>.x-input-row>.x-input-input:hover>input .x-input-clear,.x-input.x-clearable>.x-input-row>.x-input-input:hover>.x-input-value-template-value .x-input-clear{opacity:1}.x-input.x-clearable.x-clear-show>.x-input-row>.x-input-input>.x-input-clear{opacity:1}.x-input-max-length{position:absolute;font-size:var(--x-font-size-small);color:var(--x-text-400);padding:0 .4rem;right:0;width:3rem;display:inline-flex;text-align:center;justify-content:center}.x-input.x-direction-row>label{padding:0 .5rem 0 0}.x-input.x-direction-row-reverse>label{padding:0 0 0 .5rem}.x-input.x-direction-column,.x-input.x-direction-column-reverse{align-items:inherit}.x-input-icon>.x-input-row>.x-input-input>x-icon{position:absolute;font-size:var(--x-font-size-medium);display:inline-flex;align-items:center;justify-content:center}.x-input-icon-left>.x-input-row>.x-input-input>input,.x-input-icon-left>.x-input-row>.x-input-input>.x-input-value-template-value{padding-left:calc(var(--x-font-size-medium) + .8rem)}.x-input-icon-left>.x-input-row>.x-input-input>x-icon{left:0}.x-input-icon-right>.x-input-row>.x-input-input>input,.x-input-icon-right>.x-input-row>.x-input-input>.x-input-value-template-value{padding-right:calc(var(--x-font-size-medium) + .8rem)}.x-input-icon-right>.x-input-row>.x-input-input>x-icon{right:0}.x-input-icon-right>.x-input-row>.x-input-input>.x-input-max-length{right:inherit;left:0}.x-input-bordered>.x-input-row>.x-input-input>input{border-width:var(--x-border-width);background-color:var(--x-background)}.x-input-bordered .x-input-row .x-input-row-before:not(.x-input-row-before-template){border-width:var(--x-border-width);border-right-width:0}.x-input-bordered .x-input-row .x-input-row-after:not(.x-input-row-after-template){border-width:var(--x-border-width);border-left-width:0}.x-input-before>.x-input-row>.x-input-input>input{border-top-left-radius:0;border-bottom-left-radius:0}.x-input-before-template .x-input-input>input:hover,.x-input-before-template .x-input-input>input:focus{z-index:1}.x-input-after>.x-input-row>.x-input-input>input{border-top-right-radius:0;border-bottom-right-radius:0}.x-input-after-template>.x-input-row>.x-input-input>input:hover,.x-input-after-template>.x-input-row>.x-input-input>input:focus{z-index:1}.x-input-active .x-input-row>.x-input-input>input{border-color:var(--x-primary)}.x-input-pointer .x-input-row>.x-input-input>input,.x-input-pointer .x-input-row>.x-input-input>x-icon,.x-input-pointer .x-input-row>.x-input-input>.x-input-value-template-value{cursor:pointer}.x-input-big>.x-input-row>.x-input-input>input,.x-input-big>.x-input-row>.x-input-input>.x-input-row-before:not(.x-input-row-before-template),.x-input-big>.x-input-row>.x-input-input>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-big);line-height:var(--x-height-big);padding:0 var(--x-padding-big)}.x-input-big>.x-input-row>.x-input-input>.x-input-value-template-value{min-height:var(--x-height-big);line-height:var(--x-height-big);padding:0 var(--x-padding-big)}.x-input-big>.x-input-row>.x-input-input>.x-input-max-length{height:var(--x-height-big);line-height:var(--x-height-big)}.x-input-big>.x-input-row>.x-input-input>x-icon{height:var(--x-height-big);width:var(--x-height-big)}.x-input-big>.x-input-row>.x-input-row-before:not(.x-input-row-before-template),.x-input-big>.x-input-row>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-big);line-height:var(--x-height-big);padding:0 var(--x-padding-big)}.x-input-big>label{height:var(--x-height-big);line-height:var(--x-height-big)}.x-input-large>.x-input-row>.x-input-input>input,.x-input-large>.x-input-row>.x-input-input>.x-input-row-before:not(.x-input-row-before-template),.x-input-large>.x-input-row>.x-input-input>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-large);line-height:var(--x-height-large);padding:0 var(--x-padding-large)}.x-input-large>.x-input-row>.x-input-input>.x-input-value-template-value{min-height:var(--x-height-large);line-height:var(--x-height-large);padding:0 var(--x-padding-large)}.x-input-large>.x-input-row>.x-input-input>.x-input-max-length{height:var(--x-height-large);line-height:var(--x-height-large)}.x-input-large>.x-input-row>.x-input-input>x-icon{height:var(--x-height-large);width:var(--x-height-large)}.x-input-large>.x-input-row>.x-input-row-before:not(.x-input-row-before-template),.x-input-large>.x-input-row>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-large);line-height:var(--x-height-large);padding:0 var(--x-padding-large)}.x-input-large>label{height:var(--x-height-large);line-height:var(--x-height-large)}.x-input-medium>.x-input-row>.x-input-input>input,.x-input-medium>.x-input-row>.x-input-input>.x-input-row-before:not(.x-input-row-before-template),.x-input-medium>.x-input-row>.x-input-input>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-medium);line-height:var(--x-height-medium);padding:0 var(--x-padding-medium)}.x-input-medium>.x-input-row>.x-input-input>.x-input-value-template-value{min-height:var(--x-height-medium);line-height:var(--x-height-medium);padding:0 var(--x-padding-medium)}.x-input-medium>.x-input-row>.x-input-input>.x-input-max-length{height:var(--x-height-medium);line-height:var(--x-height-medium)}.x-input-medium>.x-input-row>.x-input-input>x-icon{height:var(--x-height-medium);width:var(--x-height-medium)}.x-input-medium>.x-input-row>.x-input-row-before:not(.x-input-row-before-template),.x-input-medium>.x-input-row>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-medium);line-height:var(--x-height-medium);padding:0 var(--x-padding-medium)}.x-input-medium>label{height:var(--x-height-medium);line-height:var(--x-height-medium)}.x-input-small>.x-input-row>.x-input-input>input,.x-input-small>.x-input-row>.x-input-input>.x-input-row-before:not(.x-input-row-before-template),.x-input-small>.x-input-row>.x-input-input>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-small);line-height:var(--x-height-small);padding:0 var(--x-padding-small)}.x-input-small>.x-input-row>.x-input-input>.x-input-value-template-value{min-height:var(--x-height-small);line-height:var(--x-height-small);padding:0 var(--x-padding-small)}.x-input-small>.x-input-row>.x-input-input>.x-input-max-length{height:var(--x-height-small);line-height:var(--x-height-small)}.x-input-small>.x-input-row>.x-input-input>x-icon{height:var(--x-height-small);width:var(--x-height-small)}.x-input-small>.x-input-row>.x-input-row-before:not(.x-input-row-before-template),.x-input-small>.x-input-row>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-small);line-height:var(--x-height-small);padding:0 var(--x-padding-small)}.x-input-small>label{height:var(--x-height-small);line-height:var(--x-height-small)}.x-input-mini>.x-input-row>.x-input-input>input,.x-input-mini>.x-input-row>.x-input-input>.x-input-row-before:not(.x-input-row-before-template),.x-input-mini>.x-input-row>.x-input-input>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-mini);line-height:var(--x-height-mini);padding:0 var(--x-padding-mini)}.x-input-mini>.x-input-row>.x-input-input>.x-input-value-template-value{min-height:var(--x-height-mini);line-height:var(--x-height-mini);padding:0 var(--x-padding-mini)}.x-input-mini>.x-input-row>.x-input-input>.x-input-max-length{height:var(--x-height-mini);line-height:var(--x-height-mini)}.x-input-mini>.x-input-row>.x-input-input>x-icon{height:var(--x-height-mini);width:var(--x-height-mini)}.x-input-mini>.x-input-row>.x-input-row-before:not(.x-input-row-before-template),.x-input-mini>.x-input-row>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-mini);line-height:var(--x-height-mini);padding:0 var(--x-padding-mini)}.x-input-mini>label{height:var(--x-height-mini);line-height:var(--x-height-mini)}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "component", type: XIconComponent, selector: "x-icon" }, { kind: "directive", type: XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
215
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.6", type: XInputComponent, isStandalone: true, selector: "x-input", host: { properties: { "style.width": "this.getWidth" } }, providers: [XValueAccessor(XInputComponent)], viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["inputElement"], descendants: true, read: ElementRef, isSignal: true }, { propertyName: "inputRef", first: true, predicate: ["inputRef"], descendants: true, read: ElementRef, isSignal: true }, { propertyName: "inputValueRef", first: true, predicate: ["inputValueRef"], descendants: true, read: ElementRef, isSignal: true }, { propertyName: "maxLengthRef", first: true, predicate: ["maxLengthRef"], descendants: true, read: ElementRef, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div\r\n #inputElement\r\n class=\"x-input\"\r\n [class.x-flex]=\"justify() || align() || direction()\"\r\n [class.x-disabled]=\"disabledComputed()\"\r\n [class.x-required]=\"requiredIsEmpty()\"\r\n [class.x-invalid]=\"invalid()\"\r\n [class.x-clearable]=\"clearable()\"\r\n [class.x-clear-show]=\"clearShow()\"\r\n [class.x-input-icon]=\"getIcon()\"\r\n [class.x-input-active]=\"active()\"\r\n [class.x-input-focus]=\"focused()\"\r\n [class.x-input-pointer]=\"pointer()\"\r\n [class.x-input-bordered]=\"bordered()\"\r\n [class.x-input-icon-left]=\"getIconLayoutLeft()\"\r\n [class.x-input-icon-right]=\"getIconLayoutRight()\"\r\n [class.x-input-after]=\"after()\"\r\n [class.x-input-before]=\"before()\"\r\n [class.x-input-after-template]=\"afterIsTemplate()\"\r\n [class.x-input-before-template]=\"beforeIsTemplate()\"\r\n [class.x-input-value-template]=\"valueTpl()\"\r\n [ngClass]=\"classMap()\"\r\n>\r\n @if (label()) {\r\n <label\r\n [class.x-input-label-required]=\"requiredComputed()\"\r\n [style.width]=\"labelWidth()\"\r\n [ngClass]=\"labelMapSignal()\"\r\n >{{ label() }}</label\r\n >\r\n }\r\n <div class=\"x-input-row\">\r\n @if (before()) {\r\n <div class=\"x-input-row-before\" [class.x-input-row-before-template]=\"beforeIsTemplate()\">\r\n <ng-container *xOutlet=\"before()\">{{ before() }}</ng-container>\r\n </div>\r\n }\r\n <div class=\"x-input-input\" (mouseenter)=\"xMouseenter.emit($event)\" (mouseleave)=\"xMouseleave.emit($event)\">\r\n @if (valueTpl()) {\r\n <div\r\n #inputValueRef\r\n class=\"x-input-value-template-value\"\r\n [style.left]=\"paddingLeft()\"\r\n [style.padding-left]=\"0\"\r\n [style.padding-right]=\"0\"\r\n [style.width]=\"getTemplateWidth()\"\r\n (click)=\"xClick.emit($event)\"\r\n >\r\n <ng-container\r\n *ngTemplateOutlet=\"valueTpl()!; context: valueTplContext() ? valueTplContext() : { $value: value() }\"\r\n ></ng-container>\r\n </div>\r\n }\r\n <input\r\n #inputRef\r\n autocomplete=\"off\"\r\n [class.x-input-has-value-template]=\"valueTpl()\"\r\n [ngStyle]=\"inputStyle()\"\r\n [type]=\"type()\"\r\n [placeholder]=\"placeholder()\"\r\n [required]=\"requiredComputed()\"\r\n [disabled]=\"disabledComputed()\"\r\n [readonly]=\"readonly()\"\r\n [maxlength]=\"maxlength()\"\r\n [min]=\"min()\"\r\n [max]=\"max()\"\r\n [(ngModel)]=\"value\"\r\n (ngModelChange)=\"valueChange.next($event)\"\r\n [style.padding-left]=\"paddingLeft()\"\r\n [style.padding-right]=\"paddingRight()\"\r\n (focus)=\"xFocus.emit($event)\"\r\n (blur)=\"xBlur.emit($event)\"\r\n (keydown)=\"formControlValidator(); xKeydown.emit($event)\"\r\n (click)=\"xClick.emit($event)\"\r\n (compositionstart)=\"xComposition.emit($event)\"\r\n (compositionend)=\"xComposition.emit($event)\"\r\n />\r\n @if (clearShow() && !iconSpin()) {\r\n <x-icon class=\"x-input-clear\" type=\"fto-x\" (click)=\"onClear()\"></x-icon>\r\n }\r\n @if (icon() && ((!clearShow() && getIconLayoutRight()) || getIconLayoutLeft() || iconSpin())) {\r\n <x-icon [type]=\"icon()\" [spin]=\"iconSpin()\" (click)=\"xClick.emit($event)\"></x-icon>\r\n }\r\n @if (maxlength() && lengthTotal()) {\r\n <span class=\"x-input-max-length\" [style.width]=\"getMaxLengthWidth()\">{{ lengthTotal() }}</span>\r\n }\r\n @if (invalid()) {\r\n <span class=\"x-input-error-message\">{{ invalidMessage() }}</span>\r\n }\r\n @if (requiredIsEmpty() || invalid()) {\r\n <div class=\"x-border-error x-top-left\"></div>\r\n <div class=\"x-border-error x-top-right\"></div>\r\n <div class=\"x-border-error x-bottom-left\"></div>\r\n <div class=\"x-border-error x-bottom-right\"></div>\r\n }\r\n </div>\r\n @if (after()) {\r\n <div class=\"x-input-row-after\" [class.x-input-row-after-template]=\"afterIsTemplate()\">\r\n <ng-container *xOutlet=\"after()\">{{ after() }}</ng-container>\r\n </div>\r\n }\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";x-input{display:inline-block;width:12rem}.x-input{width:100%;margin:0;padding:0}.x-input.x-flex{display:flex}.x-input.x-justify-start{justify-content:flex-start}.x-input.x-justify-center{justify-content:center}.x-input.x-justify-end{justify-content:flex-end}.x-input.x-justify-space-between{justify-content:space-between}.x-input.x-justify-space-around{justify-content:space-around}.x-input.x-align-start{align-items:flex-start}.x-input.x-align-center{align-items:center}.x-input.x-align-end{align-items:flex-end}.x-input.x-direction-column{flex-direction:column}.x-input.x-direction-column-reverse{flex-direction:column-reverse}.x-input.x-direction-row{flex-direction:row}.x-input.x-direction-row-reverse{flex-direction:row-reverse}.x-input>label{display:inline-block;white-space:nowrap;position:relative;color:var(--x-text-300);font-weight:600}.x-input>label.x-text-align-start{text-align:start}.x-input>label.x-text-align-center{text-align:center}.x-input>label.x-text-align-end{text-align:end}.x-input-row{flex:1;display:flex;align-items:center}.x-input-row .x-input-row-before:not(.x-input-row-before-template),.x-input-row .x-input-row-after:not(.x-input-row-after-template){border:var(--x-border-width) var(--x-border-style) var(--x-border);background-color:var(--x-background-a100);border-width:0}.x-input-row .x-input-row-before:not(.x-input-row-before-template){border-top-left-radius:var(--x-border-radius);border-bottom-left-radius:var(--x-border-radius)}.x-input-row .x-input-row-after:not(.x-input-row-before-template){border-top-right-radius:var(--x-border-radius);border-bottom-right-radius:var(--x-border-radius)}.x-input-row .x-input-row-before-template{display:contents}.x-input-row .x-input-row-before-template input,.x-input-row .x-input-row-before-template .x-button{border-top-right-radius:0!important;border-bottom-right-radius:0!important}.x-input-row .x-input-row-before-template input{margin-right:calc(var(--x-border-width) * -1)}.x-input-row .x-input-row-after-template{display:contents}.x-input-row .x-input-row-after-template input,.x-input-row .x-input-row-after-template .x-button{border-top-left-radius:0!important;border-bottom-left-radius:0!important}.x-input-row .x-input-row-after-template input{margin-left:calc(var(--x-border-width) * -1)}.x-input-row .x-input-row-before-template:hover,.x-input-row .x-input-row-before-template:focus{z-index:1}.x-input-row .x-input-row-before-template input:hover,.x-input-row .x-input-row-before-template input:focus,.x-input-row .x-input-row-after-template input:hover,.x-input-row .x-input-row-after-template input:focus{z-index:1}.x-input-row>.x-input-input{position:relative;width:100%;display:inline-flex;align-items:center}.x-input-row>.x-input-input>input{flex:1;width:100%;font-size:var(--x-font-size);background-color:var(--x-background-a200);background-image:none;border:var(--x-border-width) var(--x-border-style) var(--x-border);border-radius:var(--x-border-radius);border-width:0;box-shadow:var(--x-box-shadow) transparent;transition-property:background-color,border-color;transition-duration:var(--x-animation-duration-slow)}.x-input-row>.x-input-input>input::-moz-placeholder{color:var(--x-text-700);opacity:1}.x-input-row>.x-input-input>input:-ms-input-placeholder{color:var(--x-text-700)}.x-input-row>.x-input-input>input::-webkit-input-placeholder{color:var(--x-text-700)}.x-input-row>.x-input-input>input[disabled]{color:var(--x-text-500)}.x-input-row>.x-input-input>input:focus{border-color:var(--x-primary);outline:0}.x-input-row>.x-input-input>x-icon{color:var(--x-text-400);transition:all var(--x-animation-duration-base);z-index:2}.x-input-row>.x-input-input:hover>input{border-color:var(--x-primary-300)}.x-input-row>.x-input-input:focus>input{border-color:var(--x-primary);outline:0}.x-input-label-required:before{display:inline-block;margin-right:.25rem;color:var(--x-danger);line-height:1;font-size:var(--x-font-size-small);content:\"*\"}.x-input-value-template .x-input-input>input.x-input-has-value-template{color:transparent!important}.x-input-value-template-value{position:absolute;display:inline-block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;width:100%}.x-input-value-template-value:hover+input{border-color:var(--x-primary-300)}.x-input-error-message{position:absolute;bottom:0;left:0;font-size:var(--x-font-size)-.125rem;color:var(--x-danger);margin-bottom:calc((var(--x-font-size)) * -2);width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.x-input.x-invalid>label,.x-input.x-required>label{color:var(--x-danger)}.x-input.x-invalid .x-input-input>x-icon,.x-input.x-required .x-input-input>x-icon{color:var(--x-danger)}.x-input.x-invalid .x-input-input .x-border-error,.x-input.x-required .x-input-input .x-border-error{position:absolute;height:.75rem;width:.75rem;z-index:10}.x-input.x-invalid .x-input-input .x-border-error.x-top-left,.x-input.x-required .x-input-input .x-border-error.x-top-left{border-top-left-radius:var(--x-border-radius);top:0;left:0;border-top:var(--x-border-width) solid var(--x-danger);border-left:var(--x-border-width) solid var(--x-danger)}.x-input.x-invalid .x-input-input .x-border-error.x-top-right,.x-input.x-required .x-input-input .x-border-error.x-top-right{border-top-right-radius:var(--x-border-radius);top:0;right:0;border-top:var(--x-border-width) solid var(--x-danger);border-right:var(--x-border-width) solid var(--x-danger)}.x-input.x-invalid .x-input-input .x-border-error.x-bottom-left,.x-input.x-required .x-input-input .x-border-error.x-bottom-left{border-bottom-left-radius:var(--x-border-radius);bottom:0;left:0;border-bottom:var(--x-border-width) solid var(--x-danger);border-left:var(--x-border-width) solid var(--x-danger)}.x-input.x-invalid .x-input-input .x-border-error.x-bottom-right,.x-input.x-required .x-input-input .x-border-error.x-bottom-right{border-bottom-right-radius:var(--x-border-radius);bottom:0;right:0;border-bottom:var(--x-border-width) solid var(--x-danger);border-right:var(--x-border-width) solid var(--x-danger)}.x-input.x-disabled>.x-input-row>.x-input-input>x-icon{color:var(--x-text-400);cursor:not-allowed}.x-input.x-disabled>.x-input-row>.x-input-input>input{color:var(--x-text-400);cursor:not-allowed;border-color:var(--x-border-100);background-color:var(--x-background-a100)}.x-input.x-disabled>.x-input-row>.x-input-input>.x-input-value-template-value{color:var(--x-text-400);cursor:not-allowed}.x-input.x-clearable>.x-input-row>.x-input-input>.x-input-clear{position:absolute;color:var(--x-text-400);font-size:var(--x-font-size-medium);right:0;left:inherit;opacity:0;cursor:pointer;z-index:2;display:inline-flex;align-items:center;justify-content:center}.x-input.x-clearable>.x-input-row>.x-input-input>.x-input-clear:hover{color:var(--x-text-300)}.x-input.x-clearable>.x-input-row>.x-input-input:hover>input .x-input-clear,.x-input.x-clearable>.x-input-row>.x-input-input:hover>.x-input-value-template-value .x-input-clear{opacity:1}.x-input.x-clearable.x-clear-show>.x-input-row>.x-input-input>.x-input-clear{opacity:1}.x-input-max-length{position:absolute;font-size:var(--x-font-size-small);color:var(--x-text-400);padding:0 .4rem;right:0;width:3rem;display:inline-flex;text-align:center;justify-content:center}.x-input.x-direction-row>label{padding:0 .5rem 0 0}.x-input.x-direction-row-reverse>label{padding:0 0 0 .5rem}.x-input.x-direction-column,.x-input.x-direction-column-reverse{align-items:inherit}.x-input-icon>.x-input-row>.x-input-input>x-icon{position:absolute;font-size:var(--x-font-size-medium);display:inline-flex;align-items:center;justify-content:center}.x-input-icon-left>.x-input-row>.x-input-input>input,.x-input-icon-left>.x-input-row>.x-input-input>.x-input-value-template-value{padding-left:calc(var(--x-font-size-medium) + .8rem)}.x-input-icon-left>.x-input-row>.x-input-input>x-icon{left:0}.x-input-icon-right>.x-input-row>.x-input-input>input,.x-input-icon-right>.x-input-row>.x-input-input>.x-input-value-template-value{padding-right:calc(var(--x-font-size-medium) + .8rem)}.x-input-icon-right>.x-input-row>.x-input-input>x-icon{right:0}.x-input-icon-right>.x-input-row>.x-input-input>.x-input-max-length{right:inherit;left:0}.x-input-bordered>.x-input-row>.x-input-input>input{border-width:var(--x-border-width);background-color:var(--x-background)}.x-input-bordered .x-input-row .x-input-row-before:not(.x-input-row-before-template){border-width:var(--x-border-width);border-right-width:0}.x-input-bordered .x-input-row .x-input-row-after:not(.x-input-row-after-template){border-width:var(--x-border-width);border-left-width:0}.x-input-before>.x-input-row>.x-input-input>input{border-top-left-radius:0;border-bottom-left-radius:0}.x-input-before-template .x-input-input>input:hover,.x-input-before-template .x-input-input>input:focus{z-index:1}.x-input-after>.x-input-row>.x-input-input>input{border-top-right-radius:0;border-bottom-right-radius:0}.x-input-after-template>.x-input-row>.x-input-input>input:hover,.x-input-after-template>.x-input-row>.x-input-input>input:focus{z-index:1}.x-input-active .x-input-row>.x-input-input>input{border-color:var(--x-primary)}.x-input-pointer .x-input-row>.x-input-input>input,.x-input-pointer .x-input-row>.x-input-input>x-icon,.x-input-pointer .x-input-row>.x-input-input>.x-input-value-template-value{cursor:pointer}.x-input-big>.x-input-row>.x-input-input>input,.x-input-big>.x-input-row>.x-input-input>.x-input-row-before:not(.x-input-row-before-template),.x-input-big>.x-input-row>.x-input-input>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-big);line-height:var(--x-height-big);padding:0 var(--x-padding-big)}.x-input-big>.x-input-row>.x-input-input>.x-input-value-template-value{min-height:var(--x-height-big);line-height:var(--x-height-big);padding:0 var(--x-padding-big)}.x-input-big>.x-input-row>.x-input-input>.x-input-max-length{height:var(--x-height-big);line-height:var(--x-height-big)}.x-input-big>.x-input-row>.x-input-input>x-icon{height:var(--x-height-big);width:var(--x-height-big)}.x-input-big>.x-input-row>.x-input-row-before:not(.x-input-row-before-template),.x-input-big>.x-input-row>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-big);line-height:var(--x-height-big);padding:0 var(--x-padding-big)}.x-input-big>label{height:var(--x-height-big);line-height:var(--x-height-big)}.x-input-large>.x-input-row>.x-input-input>input,.x-input-large>.x-input-row>.x-input-input>.x-input-row-before:not(.x-input-row-before-template),.x-input-large>.x-input-row>.x-input-input>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-large);line-height:var(--x-height-large);padding:0 var(--x-padding-large)}.x-input-large>.x-input-row>.x-input-input>.x-input-value-template-value{min-height:var(--x-height-large);line-height:var(--x-height-large);padding:0 var(--x-padding-large)}.x-input-large>.x-input-row>.x-input-input>.x-input-max-length{height:var(--x-height-large);line-height:var(--x-height-large)}.x-input-large>.x-input-row>.x-input-input>x-icon{height:var(--x-height-large);width:var(--x-height-large)}.x-input-large>.x-input-row>.x-input-row-before:not(.x-input-row-before-template),.x-input-large>.x-input-row>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-large);line-height:var(--x-height-large);padding:0 var(--x-padding-large)}.x-input-large>label{height:var(--x-height-large);line-height:var(--x-height-large)}.x-input-medium>.x-input-row>.x-input-input>input,.x-input-medium>.x-input-row>.x-input-input>.x-input-row-before:not(.x-input-row-before-template),.x-input-medium>.x-input-row>.x-input-input>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-medium);line-height:var(--x-height-medium);padding:0 var(--x-padding-medium)}.x-input-medium>.x-input-row>.x-input-input>.x-input-value-template-value{min-height:var(--x-height-medium);line-height:var(--x-height-medium);padding:0 var(--x-padding-medium)}.x-input-medium>.x-input-row>.x-input-input>.x-input-max-length{height:var(--x-height-medium);line-height:var(--x-height-medium)}.x-input-medium>.x-input-row>.x-input-input>x-icon{height:var(--x-height-medium);width:var(--x-height-medium)}.x-input-medium>.x-input-row>.x-input-row-before:not(.x-input-row-before-template),.x-input-medium>.x-input-row>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-medium);line-height:var(--x-height-medium);padding:0 var(--x-padding-medium)}.x-input-medium>label{height:var(--x-height-medium);line-height:var(--x-height-medium)}.x-input-small>.x-input-row>.x-input-input>input,.x-input-small>.x-input-row>.x-input-input>.x-input-row-before:not(.x-input-row-before-template),.x-input-small>.x-input-row>.x-input-input>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-small);line-height:var(--x-height-small);padding:0 var(--x-padding-small)}.x-input-small>.x-input-row>.x-input-input>.x-input-value-template-value{min-height:var(--x-height-small);line-height:var(--x-height-small);padding:0 var(--x-padding-small)}.x-input-small>.x-input-row>.x-input-input>.x-input-max-length{height:var(--x-height-small);line-height:var(--x-height-small)}.x-input-small>.x-input-row>.x-input-input>x-icon{height:var(--x-height-small);width:var(--x-height-small)}.x-input-small>.x-input-row>.x-input-row-before:not(.x-input-row-before-template),.x-input-small>.x-input-row>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-small);line-height:var(--x-height-small);padding:0 var(--x-padding-small)}.x-input-small>label{height:var(--x-height-small);line-height:var(--x-height-small)}.x-input-mini>.x-input-row>.x-input-input>input,.x-input-mini>.x-input-row>.x-input-input>.x-input-row-before:not(.x-input-row-before-template),.x-input-mini>.x-input-row>.x-input-input>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-mini);line-height:var(--x-height-mini);padding:0 var(--x-padding-mini)}.x-input-mini>.x-input-row>.x-input-input>.x-input-value-template-value{min-height:var(--x-height-mini);line-height:var(--x-height-mini);padding:0 var(--x-padding-mini)}.x-input-mini>.x-input-row>.x-input-input>.x-input-max-length{height:var(--x-height-mini);line-height:var(--x-height-mini)}.x-input-mini>.x-input-row>.x-input-input>x-icon{height:var(--x-height-mini);width:var(--x-height-mini)}.x-input-mini>.x-input-row>.x-input-row-before:not(.x-input-row-before-template),.x-input-mini>.x-input-row>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-mini);line-height:var(--x-height-mini);padding:0 var(--x-padding-mini)}.x-input-mini>label{height:var(--x-height-mini);line-height:var(--x-height-mini)}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "component", type: XIconComponent, selector: "x-icon" }, { kind: "directive", type: XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
208
216
|
}
|
|
209
217
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: XInputComponent, decorators: [{
|
|
210
218
|
type: Component,
|
|
211
|
-
args: [{ selector: `${XInputPrefix}`, standalone: true, imports: [NgClass, NgStyle, NgTemplateOutlet, FormsModule, ReactiveFormsModule, XIconComponent, XOutletDirective], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [XValueAccessor(XInputComponent)], template: "<div\r\n #inputElement\r\n class=\"x-input\"\r\n [class.x-flex]=\"justify() || align() || direction()\"\r\n [class.x-disabled]=\"disabledComputed()\"\r\n [class.x-required]=\"requiredIsEmpty()\"\r\n [class.x-invalid]=\"invalid()\"\r\n [class.x-clearable]=\"clearable()\"\r\n [class.x-clear-show]=\"clearShow()\"\r\n [class.x-input-icon]=\"getIcon()\"\r\n [class.x-input-active]=\"active()\"\r\n [class.x-input-focus]=\"focused()\"\r\n [class.x-input-pointer]=\"pointer()\"\r\n [class.x-input-bordered]=\"bordered()\"\r\n [class.x-input-icon-left]=\"getIconLayoutLeft()\"\r\n [class.x-input-icon-right]=\"getIconLayoutRight()\"\r\n [class.x-input-after]=\"after()\"\r\n [class.x-input-before]=\"before()\"\r\n [class.x-input-after-template]=\"afterIsTemplate()\"\r\n [class.x-input-before-template]=\"beforeIsTemplate()\"\r\n [class.x-input-value-template]=\"valueTpl()\"\r\n [ngClass]=\"classMap()\"\r\n>\r\n @if (label()) {\r\n <label\r\n [class.x-input-label-required]=\"requiredComputed()\"\r\n [style.width]=\"labelWidth()\"\r\n [ngClass]=\"labelMapSignal()\"\r\n >{{ label() }}</label\r\n >\r\n }\r\n <div class=\"x-input-row\">\r\n @if (before()) {\r\n <div class=\"x-input-row-before\" [class.x-input-row-before-template]=\"beforeIsTemplate()\">\r\n <ng-container *xOutlet=\"before()\">{{ before() }}</ng-container>\r\n </div>\r\n }\r\n <div class=\"x-input-input\" (mouseenter)=\"xMouseenter.emit($event)\" (mouseleave)=\"xMouseleave.emit($event)\">\r\n @if (valueTpl()) {\r\n <div\r\n #inputValueRef\r\n class=\"x-input-value-template-value\"\r\n [style.left]=\"paddingLeft()\"\r\n [style.padding-left]=\"0\"\r\n [style.padding-right]=\"0\"\r\n [style.width]=\"getTemplateWidth()\"\r\n (click)=\"xClick.emit($event)\"\r\n >\r\n <ng-container\r\n *ngTemplateOutlet=\"valueTpl()!; context: valueTplContext() ? valueTplContext() : { $value: value() }\"\r\n ></ng-container>\r\n </div>\r\n }\r\n <input\r\n #inputRef\r\n autocomplete=\"off\"\r\n [class.x-input-has-value-template]=\"valueTpl()\"\r\n [ngStyle]=\"inputStyle()\"\r\n [type]=\"type()\"\r\n [placeholder]=\"placeholder()\"\r\n [required]=\"requiredComputed()\"\r\n [disabled]=\"disabledComputed()\"\r\n [readonly]=\"readonly()\"\r\n [maxlength]=\"maxlength()\"\r\n [min]=\"min()\"\r\n [min]=\"max()\"\r\n [(ngModel)]=\"value\"\r\n (ngModelChange)=\"valueChange.next($event)\"\r\n [style.padding-left]=\"paddingLeft()\"\r\n [style.padding-right]=\"paddingRight()\"\r\n (focus)=\"xFocus.emit($event)\"\r\n (blur)=\"xBlur.emit($event)\"\r\n (keydown)=\"formControlValidator(); xKeydown.emit($event)\"\r\n (click)=\"xClick.emit($event)\"\r\n (compositionstart)=\"xComposition.emit($event)\"\r\n (compositionend)=\"xComposition.emit($event)\"\r\n />\r\n @if (clearShow() && !iconSpin()) {\r\n <x-icon class=\"x-input-clear\" type=\"fto-x\" (click)=\"onClear()\"></x-icon>\r\n }\r\n @if (icon() && ((!clearShow() && getIconLayoutRight()) || getIconLayoutLeft() || iconSpin())) {\r\n <x-icon [type]=\"icon()\" [spin]=\"iconSpin()\" (click)=\"xClick.emit($event)\"></x-icon>\r\n }\r\n @if (maxlength() && lengthTotal()) {\r\n <span class=\"x-input-max-length\" [style.width]=\"getMaxLengthWidth()\">{{ lengthTotal() }}</span>\r\n }\r\n @if (invalid()) {\r\n <span class=\"x-input-error-message\">{{ invalidMessage() }}</span>\r\n }\r\n @if (requiredIsEmpty() || invalid()) {\r\n <div class=\"x-border-error x-top-left\"></div>\r\n <div class=\"x-border-error x-top-right\"></div>\r\n <div class=\"x-border-error x-bottom-left\"></div>\r\n <div class=\"x-border-error x-bottom-right\"></div>\r\n }\r\n </div>\r\n @if (after()) {\r\n <div class=\"x-input-row-after\" [class.x-input-row-after-template]=\"afterIsTemplate()\">\r\n <ng-container *xOutlet=\"after()\">{{ after() }}</ng-container>\r\n </div>\r\n }\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";x-input{display:inline-block;width:12rem}.x-input{width:100%;margin:0;padding:0}.x-input.x-flex{display:flex}.x-input.x-justify-start{justify-content:flex-start}.x-input.x-justify-center{justify-content:center}.x-input.x-justify-end{justify-content:flex-end}.x-input.x-justify-space-between{justify-content:space-between}.x-input.x-justify-space-around{justify-content:space-around}.x-input.x-align-start{align-items:flex-start}.x-input.x-align-center{align-items:center}.x-input.x-align-end{align-items:flex-end}.x-input.x-direction-column{flex-direction:column}.x-input.x-direction-column-reverse{flex-direction:column-reverse}.x-input.x-direction-row{flex-direction:row}.x-input.x-direction-row-reverse{flex-direction:row-reverse}.x-input>label{display:inline-block;white-space:nowrap;position:relative;color:var(--x-text-300);font-weight:600}.x-input>label.x-text-align-start{text-align:start}.x-input>label.x-text-align-center{text-align:center}.x-input>label.x-text-align-end{text-align:end}.x-input-row{flex:1;display:flex;align-items:center}.x-input-row .x-input-row-before:not(.x-input-row-before-template),.x-input-row .x-input-row-after:not(.x-input-row-after-template){border:var(--x-border-width) var(--x-border-style) var(--x-border);background-color:var(--x-background-a100);border-width:0}.x-input-row .x-input-row-before:not(.x-input-row-before-template){border-top-left-radius:var(--x-border-radius);border-bottom-left-radius:var(--x-border-radius)}.x-input-row .x-input-row-after:not(.x-input-row-before-template){border-top-right-radius:var(--x-border-radius);border-bottom-right-radius:var(--x-border-radius)}.x-input-row .x-input-row-before-template{display:contents}.x-input-row .x-input-row-before-template input,.x-input-row .x-input-row-before-template .x-button{border-top-right-radius:0!important;border-bottom-right-radius:0!important}.x-input-row .x-input-row-before-template input{margin-right:calc(var(--x-border-width) * -1)}.x-input-row .x-input-row-after-template{display:contents}.x-input-row .x-input-row-after-template input,.x-input-row .x-input-row-after-template .x-button{border-top-left-radius:0!important;border-bottom-left-radius:0!important}.x-input-row .x-input-row-after-template input{margin-left:calc(var(--x-border-width) * -1)}.x-input-row .x-input-row-before-template:hover,.x-input-row .x-input-row-before-template:focus{z-index:1}.x-input-row .x-input-row-before-template input:hover,.x-input-row .x-input-row-before-template input:focus,.x-input-row .x-input-row-after-template input:hover,.x-input-row .x-input-row-after-template input:focus{z-index:1}.x-input-row>.x-input-input{position:relative;width:100%;display:inline-flex;align-items:center}.x-input-row>.x-input-input>input{flex:1;width:100%;font-size:var(--x-font-size);background-color:var(--x-background-a200);background-image:none;border:var(--x-border-width) var(--x-border-style) var(--x-border);border-radius:var(--x-border-radius);border-width:0;box-shadow:var(--x-box-shadow) transparent;transition-property:background-color,border-color;transition-duration:var(--x-animation-duration-slow)}.x-input-row>.x-input-input>input::-moz-placeholder{color:var(--x-text-700);opacity:1}.x-input-row>.x-input-input>input:-ms-input-placeholder{color:var(--x-text-700)}.x-input-row>.x-input-input>input::-webkit-input-placeholder{color:var(--x-text-700)}.x-input-row>.x-input-input>input[disabled]{color:var(--x-text-500)}.x-input-row>.x-input-input>input:focus{border-color:var(--x-primary);outline:0}.x-input-row>.x-input-input>x-icon{color:var(--x-text-400);transition:all var(--x-animation-duration-base);z-index:2}.x-input-row>.x-input-input:hover>input{border-color:var(--x-primary-300)}.x-input-row>.x-input-input:focus>input{border-color:var(--x-primary);outline:0}.x-input-label-required:before{display:inline-block;margin-right:.25rem;color:var(--x-danger);line-height:1;font-size:var(--x-font-size-small);content:\"*\"}.x-input-value-template .x-input-input>input.x-input-has-value-template{color:transparent!important}.x-input-value-template-value{position:absolute;display:inline-block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;width:100%}.x-input-value-template-value:hover+input{border-color:var(--x-primary-300)}.x-input-error-message{position:absolute;bottom:0;left:0;font-size:var(--x-font-size)-.125rem;color:var(--x-danger);margin-bottom:calc((var(--x-font-size)) * -2);width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.x-input.x-invalid>label,.x-input.x-required>label{color:var(--x-danger)}.x-input.x-invalid .x-input-input>x-icon,.x-input.x-required .x-input-input>x-icon{color:var(--x-danger)}.x-input.x-invalid .x-input-input .x-border-error,.x-input.x-required .x-input-input .x-border-error{position:absolute;height:.75rem;width:.75rem;z-index:10}.x-input.x-invalid .x-input-input .x-border-error.x-top-left,.x-input.x-required .x-input-input .x-border-error.x-top-left{border-top-left-radius:var(--x-border-radius);top:0;left:0;border-top:var(--x-border-width) solid var(--x-danger);border-left:var(--x-border-width) solid var(--x-danger)}.x-input.x-invalid .x-input-input .x-border-error.x-top-right,.x-input.x-required .x-input-input .x-border-error.x-top-right{border-top-right-radius:var(--x-border-radius);top:0;right:0;border-top:var(--x-border-width) solid var(--x-danger);border-right:var(--x-border-width) solid var(--x-danger)}.x-input.x-invalid .x-input-input .x-border-error.x-bottom-left,.x-input.x-required .x-input-input .x-border-error.x-bottom-left{border-bottom-left-radius:var(--x-border-radius);bottom:0;left:0;border-bottom:var(--x-border-width) solid var(--x-danger);border-left:var(--x-border-width) solid var(--x-danger)}.x-input.x-invalid .x-input-input .x-border-error.x-bottom-right,.x-input.x-required .x-input-input .x-border-error.x-bottom-right{border-bottom-right-radius:var(--x-border-radius);bottom:0;right:0;border-bottom:var(--x-border-width) solid var(--x-danger);border-right:var(--x-border-width) solid var(--x-danger)}.x-input.x-disabled>.x-input-row>.x-input-input>x-icon{color:var(--x-text-400);cursor:not-allowed}.x-input.x-disabled>.x-input-row>.x-input-input>input{color:var(--x-text-400);cursor:not-allowed;border-color:var(--x-border-100);background-color:var(--x-background-a100)}.x-input.x-disabled>.x-input-row>.x-input-input>.x-input-value-template-value{color:var(--x-text-400);cursor:not-allowed}.x-input.x-clearable>.x-input-row>.x-input-input>.x-input-clear{position:absolute;color:var(--x-text-400);font-size:var(--x-font-size-medium);right:0;left:inherit;opacity:0;cursor:pointer;z-index:2;display:inline-flex;align-items:center;justify-content:center}.x-input.x-clearable>.x-input-row>.x-input-input>.x-input-clear:hover{color:var(--x-text-300)}.x-input.x-clearable>.x-input-row>.x-input-input:hover>input .x-input-clear,.x-input.x-clearable>.x-input-row>.x-input-input:hover>.x-input-value-template-value .x-input-clear{opacity:1}.x-input.x-clearable.x-clear-show>.x-input-row>.x-input-input>.x-input-clear{opacity:1}.x-input-max-length{position:absolute;font-size:var(--x-font-size-small);color:var(--x-text-400);padding:0 .4rem;right:0;width:3rem;display:inline-flex;text-align:center;justify-content:center}.x-input.x-direction-row>label{padding:0 .5rem 0 0}.x-input.x-direction-row-reverse>label{padding:0 0 0 .5rem}.x-input.x-direction-column,.x-input.x-direction-column-reverse{align-items:inherit}.x-input-icon>.x-input-row>.x-input-input>x-icon{position:absolute;font-size:var(--x-font-size-medium);display:inline-flex;align-items:center;justify-content:center}.x-input-icon-left>.x-input-row>.x-input-input>input,.x-input-icon-left>.x-input-row>.x-input-input>.x-input-value-template-value{padding-left:calc(var(--x-font-size-medium) + .8rem)}.x-input-icon-left>.x-input-row>.x-input-input>x-icon{left:0}.x-input-icon-right>.x-input-row>.x-input-input>input,.x-input-icon-right>.x-input-row>.x-input-input>.x-input-value-template-value{padding-right:calc(var(--x-font-size-medium) + .8rem)}.x-input-icon-right>.x-input-row>.x-input-input>x-icon{right:0}.x-input-icon-right>.x-input-row>.x-input-input>.x-input-max-length{right:inherit;left:0}.x-input-bordered>.x-input-row>.x-input-input>input{border-width:var(--x-border-width);background-color:var(--x-background)}.x-input-bordered .x-input-row .x-input-row-before:not(.x-input-row-before-template){border-width:var(--x-border-width);border-right-width:0}.x-input-bordered .x-input-row .x-input-row-after:not(.x-input-row-after-template){border-width:var(--x-border-width);border-left-width:0}.x-input-before>.x-input-row>.x-input-input>input{border-top-left-radius:0;border-bottom-left-radius:0}.x-input-before-template .x-input-input>input:hover,.x-input-before-template .x-input-input>input:focus{z-index:1}.x-input-after>.x-input-row>.x-input-input>input{border-top-right-radius:0;border-bottom-right-radius:0}.x-input-after-template>.x-input-row>.x-input-input>input:hover,.x-input-after-template>.x-input-row>.x-input-input>input:focus{z-index:1}.x-input-active .x-input-row>.x-input-input>input{border-color:var(--x-primary)}.x-input-pointer .x-input-row>.x-input-input>input,.x-input-pointer .x-input-row>.x-input-input>x-icon,.x-input-pointer .x-input-row>.x-input-input>.x-input-value-template-value{cursor:pointer}.x-input-big>.x-input-row>.x-input-input>input,.x-input-big>.x-input-row>.x-input-input>.x-input-row-before:not(.x-input-row-before-template),.x-input-big>.x-input-row>.x-input-input>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-big);line-height:var(--x-height-big);padding:0 var(--x-padding-big)}.x-input-big>.x-input-row>.x-input-input>.x-input-value-template-value{min-height:var(--x-height-big);line-height:var(--x-height-big);padding:0 var(--x-padding-big)}.x-input-big>.x-input-row>.x-input-input>.x-input-max-length{height:var(--x-height-big);line-height:var(--x-height-big)}.x-input-big>.x-input-row>.x-input-input>x-icon{height:var(--x-height-big);width:var(--x-height-big)}.x-input-big>.x-input-row>.x-input-row-before:not(.x-input-row-before-template),.x-input-big>.x-input-row>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-big);line-height:var(--x-height-big);padding:0 var(--x-padding-big)}.x-input-big>label{height:var(--x-height-big);line-height:var(--x-height-big)}.x-input-large>.x-input-row>.x-input-input>input,.x-input-large>.x-input-row>.x-input-input>.x-input-row-before:not(.x-input-row-before-template),.x-input-large>.x-input-row>.x-input-input>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-large);line-height:var(--x-height-large);padding:0 var(--x-padding-large)}.x-input-large>.x-input-row>.x-input-input>.x-input-value-template-value{min-height:var(--x-height-large);line-height:var(--x-height-large);padding:0 var(--x-padding-large)}.x-input-large>.x-input-row>.x-input-input>.x-input-max-length{height:var(--x-height-large);line-height:var(--x-height-large)}.x-input-large>.x-input-row>.x-input-input>x-icon{height:var(--x-height-large);width:var(--x-height-large)}.x-input-large>.x-input-row>.x-input-row-before:not(.x-input-row-before-template),.x-input-large>.x-input-row>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-large);line-height:var(--x-height-large);padding:0 var(--x-padding-large)}.x-input-large>label{height:var(--x-height-large);line-height:var(--x-height-large)}.x-input-medium>.x-input-row>.x-input-input>input,.x-input-medium>.x-input-row>.x-input-input>.x-input-row-before:not(.x-input-row-before-template),.x-input-medium>.x-input-row>.x-input-input>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-medium);line-height:var(--x-height-medium);padding:0 var(--x-padding-medium)}.x-input-medium>.x-input-row>.x-input-input>.x-input-value-template-value{min-height:var(--x-height-medium);line-height:var(--x-height-medium);padding:0 var(--x-padding-medium)}.x-input-medium>.x-input-row>.x-input-input>.x-input-max-length{height:var(--x-height-medium);line-height:var(--x-height-medium)}.x-input-medium>.x-input-row>.x-input-input>x-icon{height:var(--x-height-medium);width:var(--x-height-medium)}.x-input-medium>.x-input-row>.x-input-row-before:not(.x-input-row-before-template),.x-input-medium>.x-input-row>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-medium);line-height:var(--x-height-medium);padding:0 var(--x-padding-medium)}.x-input-medium>label{height:var(--x-height-medium);line-height:var(--x-height-medium)}.x-input-small>.x-input-row>.x-input-input>input,.x-input-small>.x-input-row>.x-input-input>.x-input-row-before:not(.x-input-row-before-template),.x-input-small>.x-input-row>.x-input-input>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-small);line-height:var(--x-height-small);padding:0 var(--x-padding-small)}.x-input-small>.x-input-row>.x-input-input>.x-input-value-template-value{min-height:var(--x-height-small);line-height:var(--x-height-small);padding:0 var(--x-padding-small)}.x-input-small>.x-input-row>.x-input-input>.x-input-max-length{height:var(--x-height-small);line-height:var(--x-height-small)}.x-input-small>.x-input-row>.x-input-input>x-icon{height:var(--x-height-small);width:var(--x-height-small)}.x-input-small>.x-input-row>.x-input-row-before:not(.x-input-row-before-template),.x-input-small>.x-input-row>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-small);line-height:var(--x-height-small);padding:0 var(--x-padding-small)}.x-input-small>label{height:var(--x-height-small);line-height:var(--x-height-small)}.x-input-mini>.x-input-row>.x-input-input>input,.x-input-mini>.x-input-row>.x-input-input>.x-input-row-before:not(.x-input-row-before-template),.x-input-mini>.x-input-row>.x-input-input>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-mini);line-height:var(--x-height-mini);padding:0 var(--x-padding-mini)}.x-input-mini>.x-input-row>.x-input-input>.x-input-value-template-value{min-height:var(--x-height-mini);line-height:var(--x-height-mini);padding:0 var(--x-padding-mini)}.x-input-mini>.x-input-row>.x-input-input>.x-input-max-length{height:var(--x-height-mini);line-height:var(--x-height-mini)}.x-input-mini>.x-input-row>.x-input-input>x-icon{height:var(--x-height-mini);width:var(--x-height-mini)}.x-input-mini>.x-input-row>.x-input-row-before:not(.x-input-row-before-template),.x-input-mini>.x-input-row>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-mini);line-height:var(--x-height-mini);padding:0 var(--x-padding-mini)}.x-input-mini>label{height:var(--x-height-mini);line-height:var(--x-height-mini)}\n"] }]
|
|
219
|
+
args: [{ selector: `${XInputPrefix}`, standalone: true, imports: [NgClass, NgStyle, NgTemplateOutlet, FormsModule, ReactiveFormsModule, XIconComponent, XOutletDirective], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [XValueAccessor(XInputComponent)], template: "<div\r\n #inputElement\r\n class=\"x-input\"\r\n [class.x-flex]=\"justify() || align() || direction()\"\r\n [class.x-disabled]=\"disabledComputed()\"\r\n [class.x-required]=\"requiredIsEmpty()\"\r\n [class.x-invalid]=\"invalid()\"\r\n [class.x-clearable]=\"clearable()\"\r\n [class.x-clear-show]=\"clearShow()\"\r\n [class.x-input-icon]=\"getIcon()\"\r\n [class.x-input-active]=\"active()\"\r\n [class.x-input-focus]=\"focused()\"\r\n [class.x-input-pointer]=\"pointer()\"\r\n [class.x-input-bordered]=\"bordered()\"\r\n [class.x-input-icon-left]=\"getIconLayoutLeft()\"\r\n [class.x-input-icon-right]=\"getIconLayoutRight()\"\r\n [class.x-input-after]=\"after()\"\r\n [class.x-input-before]=\"before()\"\r\n [class.x-input-after-template]=\"afterIsTemplate()\"\r\n [class.x-input-before-template]=\"beforeIsTemplate()\"\r\n [class.x-input-value-template]=\"valueTpl()\"\r\n [ngClass]=\"classMap()\"\r\n>\r\n @if (label()) {\r\n <label\r\n [class.x-input-label-required]=\"requiredComputed()\"\r\n [style.width]=\"labelWidth()\"\r\n [ngClass]=\"labelMapSignal()\"\r\n >{{ label() }}</label\r\n >\r\n }\r\n <div class=\"x-input-row\">\r\n @if (before()) {\r\n <div class=\"x-input-row-before\" [class.x-input-row-before-template]=\"beforeIsTemplate()\">\r\n <ng-container *xOutlet=\"before()\">{{ before() }}</ng-container>\r\n </div>\r\n }\r\n <div class=\"x-input-input\" (mouseenter)=\"xMouseenter.emit($event)\" (mouseleave)=\"xMouseleave.emit($event)\">\r\n @if (valueTpl()) {\r\n <div\r\n #inputValueRef\r\n class=\"x-input-value-template-value\"\r\n [style.left]=\"paddingLeft()\"\r\n [style.padding-left]=\"0\"\r\n [style.padding-right]=\"0\"\r\n [style.width]=\"getTemplateWidth()\"\r\n (click)=\"xClick.emit($event)\"\r\n >\r\n <ng-container\r\n *ngTemplateOutlet=\"valueTpl()!; context: valueTplContext() ? valueTplContext() : { $value: value() }\"\r\n ></ng-container>\r\n </div>\r\n }\r\n <input\r\n #inputRef\r\n autocomplete=\"off\"\r\n [class.x-input-has-value-template]=\"valueTpl()\"\r\n [ngStyle]=\"inputStyle()\"\r\n [type]=\"type()\"\r\n [placeholder]=\"placeholder()\"\r\n [required]=\"requiredComputed()\"\r\n [disabled]=\"disabledComputed()\"\r\n [readonly]=\"readonly()\"\r\n [maxlength]=\"maxlength()\"\r\n [min]=\"min()\"\r\n [max]=\"max()\"\r\n [(ngModel)]=\"value\"\r\n (ngModelChange)=\"valueChange.next($event)\"\r\n [style.padding-left]=\"paddingLeft()\"\r\n [style.padding-right]=\"paddingRight()\"\r\n (focus)=\"xFocus.emit($event)\"\r\n (blur)=\"xBlur.emit($event)\"\r\n (keydown)=\"formControlValidator(); xKeydown.emit($event)\"\r\n (click)=\"xClick.emit($event)\"\r\n (compositionstart)=\"xComposition.emit($event)\"\r\n (compositionend)=\"xComposition.emit($event)\"\r\n />\r\n @if (clearShow() && !iconSpin()) {\r\n <x-icon class=\"x-input-clear\" type=\"fto-x\" (click)=\"onClear()\"></x-icon>\r\n }\r\n @if (icon() && ((!clearShow() && getIconLayoutRight()) || getIconLayoutLeft() || iconSpin())) {\r\n <x-icon [type]=\"icon()\" [spin]=\"iconSpin()\" (click)=\"xClick.emit($event)\"></x-icon>\r\n }\r\n @if (maxlength() && lengthTotal()) {\r\n <span class=\"x-input-max-length\" [style.width]=\"getMaxLengthWidth()\">{{ lengthTotal() }}</span>\r\n }\r\n @if (invalid()) {\r\n <span class=\"x-input-error-message\">{{ invalidMessage() }}</span>\r\n }\r\n @if (requiredIsEmpty() || invalid()) {\r\n <div class=\"x-border-error x-top-left\"></div>\r\n <div class=\"x-border-error x-top-right\"></div>\r\n <div class=\"x-border-error x-bottom-left\"></div>\r\n <div class=\"x-border-error x-bottom-right\"></div>\r\n }\r\n </div>\r\n @if (after()) {\r\n <div class=\"x-input-row-after\" [class.x-input-row-after-template]=\"afterIsTemplate()\">\r\n <ng-container *xOutlet=\"after()\">{{ after() }}</ng-container>\r\n </div>\r\n }\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";x-input{display:inline-block;width:12rem}.x-input{width:100%;margin:0;padding:0}.x-input.x-flex{display:flex}.x-input.x-justify-start{justify-content:flex-start}.x-input.x-justify-center{justify-content:center}.x-input.x-justify-end{justify-content:flex-end}.x-input.x-justify-space-between{justify-content:space-between}.x-input.x-justify-space-around{justify-content:space-around}.x-input.x-align-start{align-items:flex-start}.x-input.x-align-center{align-items:center}.x-input.x-align-end{align-items:flex-end}.x-input.x-direction-column{flex-direction:column}.x-input.x-direction-column-reverse{flex-direction:column-reverse}.x-input.x-direction-row{flex-direction:row}.x-input.x-direction-row-reverse{flex-direction:row-reverse}.x-input>label{display:inline-block;white-space:nowrap;position:relative;color:var(--x-text-300);font-weight:600}.x-input>label.x-text-align-start{text-align:start}.x-input>label.x-text-align-center{text-align:center}.x-input>label.x-text-align-end{text-align:end}.x-input-row{flex:1;display:flex;align-items:center}.x-input-row .x-input-row-before:not(.x-input-row-before-template),.x-input-row .x-input-row-after:not(.x-input-row-after-template){border:var(--x-border-width) var(--x-border-style) var(--x-border);background-color:var(--x-background-a100);border-width:0}.x-input-row .x-input-row-before:not(.x-input-row-before-template){border-top-left-radius:var(--x-border-radius);border-bottom-left-radius:var(--x-border-radius)}.x-input-row .x-input-row-after:not(.x-input-row-before-template){border-top-right-radius:var(--x-border-radius);border-bottom-right-radius:var(--x-border-radius)}.x-input-row .x-input-row-before-template{display:contents}.x-input-row .x-input-row-before-template input,.x-input-row .x-input-row-before-template .x-button{border-top-right-radius:0!important;border-bottom-right-radius:0!important}.x-input-row .x-input-row-before-template input{margin-right:calc(var(--x-border-width) * -1)}.x-input-row .x-input-row-after-template{display:contents}.x-input-row .x-input-row-after-template input,.x-input-row .x-input-row-after-template .x-button{border-top-left-radius:0!important;border-bottom-left-radius:0!important}.x-input-row .x-input-row-after-template input{margin-left:calc(var(--x-border-width) * -1)}.x-input-row .x-input-row-before-template:hover,.x-input-row .x-input-row-before-template:focus{z-index:1}.x-input-row .x-input-row-before-template input:hover,.x-input-row .x-input-row-before-template input:focus,.x-input-row .x-input-row-after-template input:hover,.x-input-row .x-input-row-after-template input:focus{z-index:1}.x-input-row>.x-input-input{position:relative;width:100%;display:inline-flex;align-items:center}.x-input-row>.x-input-input>input{flex:1;width:100%;font-size:var(--x-font-size);background-color:var(--x-background-a200);background-image:none;border:var(--x-border-width) var(--x-border-style) var(--x-border);border-radius:var(--x-border-radius);border-width:0;box-shadow:var(--x-box-shadow) transparent;transition-property:background-color,border-color;transition-duration:var(--x-animation-duration-slow)}.x-input-row>.x-input-input>input::-moz-placeholder{color:var(--x-text-700);opacity:1}.x-input-row>.x-input-input>input:-ms-input-placeholder{color:var(--x-text-700)}.x-input-row>.x-input-input>input::-webkit-input-placeholder{color:var(--x-text-700)}.x-input-row>.x-input-input>input[disabled]{color:var(--x-text-500)}.x-input-row>.x-input-input>input:focus{border-color:var(--x-primary);outline:0}.x-input-row>.x-input-input>x-icon{color:var(--x-text-400);transition:all var(--x-animation-duration-base);z-index:2}.x-input-row>.x-input-input:hover>input{border-color:var(--x-primary-300)}.x-input-row>.x-input-input:focus>input{border-color:var(--x-primary);outline:0}.x-input-label-required:before{display:inline-block;margin-right:.25rem;color:var(--x-danger);line-height:1;font-size:var(--x-font-size-small);content:\"*\"}.x-input-value-template .x-input-input>input.x-input-has-value-template{color:transparent!important}.x-input-value-template-value{position:absolute;display:inline-block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;width:100%}.x-input-value-template-value:hover+input{border-color:var(--x-primary-300)}.x-input-error-message{position:absolute;bottom:0;left:0;font-size:var(--x-font-size)-.125rem;color:var(--x-danger);margin-bottom:calc((var(--x-font-size)) * -2);width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.x-input.x-invalid>label,.x-input.x-required>label{color:var(--x-danger)}.x-input.x-invalid .x-input-input>x-icon,.x-input.x-required .x-input-input>x-icon{color:var(--x-danger)}.x-input.x-invalid .x-input-input .x-border-error,.x-input.x-required .x-input-input .x-border-error{position:absolute;height:.75rem;width:.75rem;z-index:10}.x-input.x-invalid .x-input-input .x-border-error.x-top-left,.x-input.x-required .x-input-input .x-border-error.x-top-left{border-top-left-radius:var(--x-border-radius);top:0;left:0;border-top:var(--x-border-width) solid var(--x-danger);border-left:var(--x-border-width) solid var(--x-danger)}.x-input.x-invalid .x-input-input .x-border-error.x-top-right,.x-input.x-required .x-input-input .x-border-error.x-top-right{border-top-right-radius:var(--x-border-radius);top:0;right:0;border-top:var(--x-border-width) solid var(--x-danger);border-right:var(--x-border-width) solid var(--x-danger)}.x-input.x-invalid .x-input-input .x-border-error.x-bottom-left,.x-input.x-required .x-input-input .x-border-error.x-bottom-left{border-bottom-left-radius:var(--x-border-radius);bottom:0;left:0;border-bottom:var(--x-border-width) solid var(--x-danger);border-left:var(--x-border-width) solid var(--x-danger)}.x-input.x-invalid .x-input-input .x-border-error.x-bottom-right,.x-input.x-required .x-input-input .x-border-error.x-bottom-right{border-bottom-right-radius:var(--x-border-radius);bottom:0;right:0;border-bottom:var(--x-border-width) solid var(--x-danger);border-right:var(--x-border-width) solid var(--x-danger)}.x-input.x-disabled>.x-input-row>.x-input-input>x-icon{color:var(--x-text-400);cursor:not-allowed}.x-input.x-disabled>.x-input-row>.x-input-input>input{color:var(--x-text-400);cursor:not-allowed;border-color:var(--x-border-100);background-color:var(--x-background-a100)}.x-input.x-disabled>.x-input-row>.x-input-input>.x-input-value-template-value{color:var(--x-text-400);cursor:not-allowed}.x-input.x-clearable>.x-input-row>.x-input-input>.x-input-clear{position:absolute;color:var(--x-text-400);font-size:var(--x-font-size-medium);right:0;left:inherit;opacity:0;cursor:pointer;z-index:2;display:inline-flex;align-items:center;justify-content:center}.x-input.x-clearable>.x-input-row>.x-input-input>.x-input-clear:hover{color:var(--x-text-300)}.x-input.x-clearable>.x-input-row>.x-input-input:hover>input .x-input-clear,.x-input.x-clearable>.x-input-row>.x-input-input:hover>.x-input-value-template-value .x-input-clear{opacity:1}.x-input.x-clearable.x-clear-show>.x-input-row>.x-input-input>.x-input-clear{opacity:1}.x-input-max-length{position:absolute;font-size:var(--x-font-size-small);color:var(--x-text-400);padding:0 .4rem;right:0;width:3rem;display:inline-flex;text-align:center;justify-content:center}.x-input.x-direction-row>label{padding:0 .5rem 0 0}.x-input.x-direction-row-reverse>label{padding:0 0 0 .5rem}.x-input.x-direction-column,.x-input.x-direction-column-reverse{align-items:inherit}.x-input-icon>.x-input-row>.x-input-input>x-icon{position:absolute;font-size:var(--x-font-size-medium);display:inline-flex;align-items:center;justify-content:center}.x-input-icon-left>.x-input-row>.x-input-input>input,.x-input-icon-left>.x-input-row>.x-input-input>.x-input-value-template-value{padding-left:calc(var(--x-font-size-medium) + .8rem)}.x-input-icon-left>.x-input-row>.x-input-input>x-icon{left:0}.x-input-icon-right>.x-input-row>.x-input-input>input,.x-input-icon-right>.x-input-row>.x-input-input>.x-input-value-template-value{padding-right:calc(var(--x-font-size-medium) + .8rem)}.x-input-icon-right>.x-input-row>.x-input-input>x-icon{right:0}.x-input-icon-right>.x-input-row>.x-input-input>.x-input-max-length{right:inherit;left:0}.x-input-bordered>.x-input-row>.x-input-input>input{border-width:var(--x-border-width);background-color:var(--x-background)}.x-input-bordered .x-input-row .x-input-row-before:not(.x-input-row-before-template){border-width:var(--x-border-width);border-right-width:0}.x-input-bordered .x-input-row .x-input-row-after:not(.x-input-row-after-template){border-width:var(--x-border-width);border-left-width:0}.x-input-before>.x-input-row>.x-input-input>input{border-top-left-radius:0;border-bottom-left-radius:0}.x-input-before-template .x-input-input>input:hover,.x-input-before-template .x-input-input>input:focus{z-index:1}.x-input-after>.x-input-row>.x-input-input>input{border-top-right-radius:0;border-bottom-right-radius:0}.x-input-after-template>.x-input-row>.x-input-input>input:hover,.x-input-after-template>.x-input-row>.x-input-input>input:focus{z-index:1}.x-input-active .x-input-row>.x-input-input>input{border-color:var(--x-primary)}.x-input-pointer .x-input-row>.x-input-input>input,.x-input-pointer .x-input-row>.x-input-input>x-icon,.x-input-pointer .x-input-row>.x-input-input>.x-input-value-template-value{cursor:pointer}.x-input-big>.x-input-row>.x-input-input>input,.x-input-big>.x-input-row>.x-input-input>.x-input-row-before:not(.x-input-row-before-template),.x-input-big>.x-input-row>.x-input-input>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-big);line-height:var(--x-height-big);padding:0 var(--x-padding-big)}.x-input-big>.x-input-row>.x-input-input>.x-input-value-template-value{min-height:var(--x-height-big);line-height:var(--x-height-big);padding:0 var(--x-padding-big)}.x-input-big>.x-input-row>.x-input-input>.x-input-max-length{height:var(--x-height-big);line-height:var(--x-height-big)}.x-input-big>.x-input-row>.x-input-input>x-icon{height:var(--x-height-big);width:var(--x-height-big)}.x-input-big>.x-input-row>.x-input-row-before:not(.x-input-row-before-template),.x-input-big>.x-input-row>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-big);line-height:var(--x-height-big);padding:0 var(--x-padding-big)}.x-input-big>label{height:var(--x-height-big);line-height:var(--x-height-big)}.x-input-large>.x-input-row>.x-input-input>input,.x-input-large>.x-input-row>.x-input-input>.x-input-row-before:not(.x-input-row-before-template),.x-input-large>.x-input-row>.x-input-input>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-large);line-height:var(--x-height-large);padding:0 var(--x-padding-large)}.x-input-large>.x-input-row>.x-input-input>.x-input-value-template-value{min-height:var(--x-height-large);line-height:var(--x-height-large);padding:0 var(--x-padding-large)}.x-input-large>.x-input-row>.x-input-input>.x-input-max-length{height:var(--x-height-large);line-height:var(--x-height-large)}.x-input-large>.x-input-row>.x-input-input>x-icon{height:var(--x-height-large);width:var(--x-height-large)}.x-input-large>.x-input-row>.x-input-row-before:not(.x-input-row-before-template),.x-input-large>.x-input-row>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-large);line-height:var(--x-height-large);padding:0 var(--x-padding-large)}.x-input-large>label{height:var(--x-height-large);line-height:var(--x-height-large)}.x-input-medium>.x-input-row>.x-input-input>input,.x-input-medium>.x-input-row>.x-input-input>.x-input-row-before:not(.x-input-row-before-template),.x-input-medium>.x-input-row>.x-input-input>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-medium);line-height:var(--x-height-medium);padding:0 var(--x-padding-medium)}.x-input-medium>.x-input-row>.x-input-input>.x-input-value-template-value{min-height:var(--x-height-medium);line-height:var(--x-height-medium);padding:0 var(--x-padding-medium)}.x-input-medium>.x-input-row>.x-input-input>.x-input-max-length{height:var(--x-height-medium);line-height:var(--x-height-medium)}.x-input-medium>.x-input-row>.x-input-input>x-icon{height:var(--x-height-medium);width:var(--x-height-medium)}.x-input-medium>.x-input-row>.x-input-row-before:not(.x-input-row-before-template),.x-input-medium>.x-input-row>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-medium);line-height:var(--x-height-medium);padding:0 var(--x-padding-medium)}.x-input-medium>label{height:var(--x-height-medium);line-height:var(--x-height-medium)}.x-input-small>.x-input-row>.x-input-input>input,.x-input-small>.x-input-row>.x-input-input>.x-input-row-before:not(.x-input-row-before-template),.x-input-small>.x-input-row>.x-input-input>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-small);line-height:var(--x-height-small);padding:0 var(--x-padding-small)}.x-input-small>.x-input-row>.x-input-input>.x-input-value-template-value{min-height:var(--x-height-small);line-height:var(--x-height-small);padding:0 var(--x-padding-small)}.x-input-small>.x-input-row>.x-input-input>.x-input-max-length{height:var(--x-height-small);line-height:var(--x-height-small)}.x-input-small>.x-input-row>.x-input-input>x-icon{height:var(--x-height-small);width:var(--x-height-small)}.x-input-small>.x-input-row>.x-input-row-before:not(.x-input-row-before-template),.x-input-small>.x-input-row>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-small);line-height:var(--x-height-small);padding:0 var(--x-padding-small)}.x-input-small>label{height:var(--x-height-small);line-height:var(--x-height-small)}.x-input-mini>.x-input-row>.x-input-input>input,.x-input-mini>.x-input-row>.x-input-input>.x-input-row-before:not(.x-input-row-before-template),.x-input-mini>.x-input-row>.x-input-input>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-mini);line-height:var(--x-height-mini);padding:0 var(--x-padding-mini)}.x-input-mini>.x-input-row>.x-input-input>.x-input-value-template-value{min-height:var(--x-height-mini);line-height:var(--x-height-mini);padding:0 var(--x-padding-mini)}.x-input-mini>.x-input-row>.x-input-input>.x-input-max-length{height:var(--x-height-mini);line-height:var(--x-height-mini)}.x-input-mini>.x-input-row>.x-input-input>x-icon{height:var(--x-height-mini);width:var(--x-height-mini)}.x-input-mini>.x-input-row>.x-input-row-before:not(.x-input-row-before-template),.x-input-mini>.x-input-row>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-mini);line-height:var(--x-height-mini);padding:0 var(--x-padding-mini)}.x-input-mini>label{height:var(--x-height-mini);line-height:var(--x-height-mini)}\n"] }]
|
|
212
220
|
}], propDecorators: { getWidth: [{
|
|
213
221
|
type: HostBinding,
|
|
214
222
|
args: ['style.width']
|
|
215
223
|
}] } });
|
|
216
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvaW5wdXQvaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvaW5wdXQvaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxpQkFBaUIsRUFDakIsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixVQUFVLEVBQ1YsV0FBVyxFQUNYLFdBQVcsRUFDWCxNQUFNLEVBQ04sU0FBUyxFQUNULE1BQU0sRUFDTixRQUFRLEVBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQVMsTUFBTSxrQkFBa0IsQ0FBQztBQUM5RSxPQUFPLEVBQUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0UsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDckUsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7O0FBWXRELE1BQU0sT0FBTyxlQUFnQixTQUFRLGNBQWM7SUFWbkQ7O1FBV0UsaUJBQVksR0FBRyxT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UUFBUSxFQUFFLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDMUUsQ0FBQztJQUNILENBQUM7SUFFRCxrQkFBa0IsS0FBSSxDQUFDO2lJQTlNWixlQUFlO3FIQUFmLGVBQWUsZ0hBRmYsQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUFDLENBQUMsbUhBR2MsVUFBVSwrR0FDbEIsVUFBVSx5SEFDVCxVQUFVLHVIQUNaLFVBQVUsb0VDdEM3RCxpc0lBdUdBLHk3Y0Q1RVksT0FBTyxvRkFBRSxPQUFPLDJFQUFFLGdCQUFnQixtSkFBRSxXQUFXLDgrQkFBRSxtQkFBbUIsK0JBQUUsY0FBYyxtREFBRSxnQkFBZ0I7OzJGQU9yRyxlQUFlO2tCQVYzQixTQUFTOytCQUNFLEdBQUcsWUFBWSxFQUFFLGNBQ2YsSUFBSSxXQUNQLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsY0FBYyxFQUFFLGdCQUFnQixDQUFDLGlCQUdsRyxpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDLENBQUMsY0FBYyxpQkFBaUIsQ0FBQzs4QkFRWixRQUFRO3NCQUF2QyxXQUFXO3VCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBPbkluaXQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgRWxlbWVudFJlZixcclxuICBUZW1wbGF0ZVJlZixcclxuICBIb3N0QmluZGluZyxcclxuICBpbmplY3QsXHJcbiAgdmlld0NoaWxkLFxyXG4gIHNpZ25hbCxcclxuICBjb21wdXRlZFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBYSW5wdXRQcmVmaXgsIFhJbnB1dFByb3BlcnR5IH0gZnJvbSAnLi9pbnB1dC5wcm9wZXJ0eSc7XHJcbmltcG9ydCB7IFhJc0VtcHR5LCBYSXNVbmRlZmluZWQsIFhJc0Z1bmN0aW9uLCBYU2l6ZSB9IGZyb20gJ0BuZy1uZXN0L3VpL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZnJvbUV2ZW50LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgWFZhbHVlQWNjZXNzb3IgfSBmcm9tICdAbmctbmVzdC91aS9iYXNlLWZvcm0nO1xyXG5pbXBvcnQgeyBYSW5wdXRHcm91cENvbXBvbmVudCB9IGZyb20gJy4vaW5wdXQtZ3JvdXAuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTmdDbGFzcywgTmdTdHlsZSwgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBYSWNvbkNvbXBvbmVudCB9IGZyb20gJ0BuZy1uZXN0L3VpL2ljb24nO1xyXG5pbXBvcnQgeyBYT3V0bGV0RGlyZWN0aXZlIH0gZnJvbSAnQG5nLW5lc3QvdWkvb3V0bGV0JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBgJHtYSW5wdXRQcmVmaXh9YCxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtOZ0NsYXNzLCBOZ1N0eWxlLCBOZ1RlbXBsYXRlT3V0bGV0LCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgWEljb25Db21wb25lbnQsIFhPdXRsZXREaXJlY3RpdmVdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9pbnB1dC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vaW5wdXQuY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIHByb3ZpZGVyczogW1hWYWx1ZUFjY2Vzc29yKFhJbnB1dENvbXBvbmVudCldXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBYSW5wdXRDb21wb25lbnQgZXh0ZW5kcyBYSW5wdXRQcm9wZXJ0eSBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgaW5wdXRFbGVtZW50ID0gdmlld0NoaWxkLnJlcXVpcmVkKCdpbnB1dEVsZW1lbnQnLCB7IHJlYWQ6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+IH0pO1xyXG4gIGlucHV0UmVmID0gdmlld0NoaWxkLnJlcXVpcmVkKCdpbnB1dFJlZicsIHsgcmVhZDogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PiB9KTtcclxuICBpbnB1dFZhbHVlUmVmID0gdmlld0NoaWxkKCdpbnB1dFZhbHVlUmVmJywgeyByZWFkOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PiB9KTtcclxuICBtYXhMZW5ndGhSZWYgPSB2aWV3Q2hpbGQoJ21heExlbmd0aFJlZicsIHsgcmVhZDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4gfSk7XHJcblxyXG4gIEBIb3N0QmluZGluZygnc3R5bGUud2lkdGgnKSBnZXQgZ2V0V2lkdGgoKSB7XHJcbiAgICByZXR1cm4gdGhpcy53aWR0aCgpO1xyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XHJcbiAgICB0aGlzLnZhbHVlLnNldCh2YWx1ZSk7XHJcbiAgICB0aGlzLmlzV3JpdGVWYWx1ZS5zZXQodHJ1ZSk7XHJcbiAgICB0aGlzLnZhbHVlQ2hhbmdlLm5leHQodmFsdWUpO1xyXG4gICAgdGhpcy5pc1dyaXRlVmFsdWUuc2V0KGZhbHNlKTtcclxuICB9XHJcblxyXG4gIGNsYXNzTWFwID0gY29tcHV0ZWQoKCkgPT4gKHtcclxuICAgIFtgJHtYSW5wdXRQcmVmaXh9LSR7dGhpcy5zaXplKCl9YF06ICEhdGhpcy5zaXplKCksXHJcbiAgICBbYHgtanVzdGlmeS0ke3RoaXMuanVzdGlmeSgpfWBdOiAhIXRoaXMuanVzdGlmeSgpLFxyXG4gICAgW2B4LWFsaWduLSR7dGhpcy5hbGlnbigpfWBdOiAhIXRoaXMuYWxpZ24oKSxcclxuICAgIFtgeC1kaXJlY3Rpb24tJHt0aGlzLmRpcmVjdGlvbigpfWBdOiAhIXRoaXMuZGlyZWN0aW9uKClcclxuICB9KSk7XHJcbiAgbGFiZWxNYXBTaWduYWwgPSBjb21wdXRlZCgoKSA9PiAoe1xyXG4gICAgW2B4LXRleHQtYWxpZ24tJHt0aGlzLmxhYmVsQWxpZ24oKX1gXTogISF0aGlzLmxhYmVsQWxpZ24oKVxyXG4gIH0pKTtcclxuXHJcbiAgdmFsdWVMZW5ndGggPSBzaWduYWwoMCk7XHJcbiAgbGVuZ3RoVG90YWwgPSBzaWduYWwoJycpO1xyXG4gIHBhZGRpbmdMZWZ0ID0gY29tcHV0ZWQoKCkgPT4ge1xyXG4gICAgcmV0dXJuIHRoaXMubWF4bGVuZ3RoKCkgJiYgdGhpcy5pY29uKCkgJiYgdGhpcy5pY29uTGF5b3V0KCkgPT09ICdyaWdodCdcclxuICAgICAgPyAodGhpcy5sZW5ndGhUb3RhbCgpLmxlbmd0aCArIDIpICogMC41ICsgJ3JlbSdcclxuICAgICAgOiB0aGlzLmljb24oKSAmJiB0aGlzLmljb25MYXlvdXQoKSA9PT0gJ2xlZnQnXHJcbiAgICAgICAgPyB0aGlzLmlucHV0SWNvblBhZGRpbmcoKVxyXG4gICAgICAgIDogdGhpcy5pbnB1dFBhZGRpbmcoKTtcclxuICB9KTtcclxuICBwYWRkaW5nUmlnaHQgPSBjb21wdXRlZCgoKSA9PiB7XHJcbiAgICByZXR1cm4gdGhpcy5tYXhsZW5ndGgoKSAmJiB0aGlzLmljb24oKSAmJiB0aGlzLmljb25MYXlvdXQoKSA9PT0gJ2xlZnQnXHJcbiAgICAgID8gKHRoaXMubGVuZ3RoVG90YWwoKS5sZW5ndGggKyAyKSAqIDAuNSArICdyZW0nXHJcbiAgICAgIDogKCh0aGlzLmljb24oKSB8fCB0aGlzLmNsZWFyU2hvdygpKSAmJiB0aGlzLmljb25MYXlvdXQoKSA9PT0gJ3JpZ2h0JykgfHxcclxuICAgICAgICAgICh0aGlzLmNsZWFyU2hvdygpICYmIHRoaXMuaWNvbkxheW91dCgpID09PSAnbGVmdCcpXHJcbiAgICAgICAgPyB0aGlzLmlucHV0SWNvblBhZGRpbmcoKVxyXG4gICAgICAgIDogdGhpcy5tYXhsZW5ndGgoKSAmJiAhdGhpcy5pY29uKClcclxuICAgICAgICAgID8gKHRoaXMubGVuZ3RoVG90YWwoKS5sZW5ndGggKyAyKSAqIDAuNSArICdyZW0nXHJcbiAgICAgICAgICA6IHRoaXMuaW5wdXRQYWRkaW5nKCk7XHJcbiAgfSk7XHJcbiAgY2xlYXJTaG93ID0gY29tcHV0ZWQoKCkgPT4ge1xyXG4gICAgaWYgKHRoaXMuY2xlYXJhYmxlKCkgJiYgIXRoaXMuZGlzYWJsZWRDb21wdXRlZCgpKSB7XHJcbiAgICAgIHJldHVybiAhWElzRW1wdHkodGhpcy52YWx1ZSgpKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICB9KTtcclxuICB2YWx1ZUNoYW5nZSA9IG5ldyBTdWJqZWN0PGFueT4oKTtcclxuICBpc0NvbXBvc2l0aW9uID0gc2lnbmFsKGZhbHNlKTtcclxuICBpc1dyaXRlVmFsdWUgPSBzaWduYWwoZmFsc2UpO1xyXG4gIHByaXZhdGUgdW5TdWJqZWN0ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuXHJcbiAgZ2V0SWNvbiA9IGNvbXB1dGVkKCgpID0+IHtcclxuICAgIHJldHVybiAhWElzRW1wdHkodGhpcy5pY29uKCkpO1xyXG4gIH0pO1xyXG5cclxuICBnZXRJY29uTGF5b3V0TGVmdCA9IGNvbXB1dGVkKCgpID0+IHtcclxuICAgIHJldHVybiAhWElzRW1wdHkodGhpcy5pY29uKCkpICYmIHRoaXMuaWNvbkxheW91dCgpID09PSAnbGVmdCc7XHJcbiAgfSk7XHJcblxyXG4gIGdldEljb25MYXlvdXRSaWdodCA9IGNvbXB1dGVkKCgpID0+IHtcclxuICAgIHJldHVybiAhWElzRW1wdHkodGhpcy5pY29uKCkpICYmIHRoaXMuaWNvbkxheW91dCgpID09PSAncmlnaHQnO1xyXG4gIH0pO1xyXG5cclxuICBnZXRNYXhMZW5ndGhXaWR0aCA9IGNvbXB1dGVkKCgpID0+IHtcclxuICAgIGlmICh0aGlzLmdldEljb25MYXlvdXRSaWdodCgpKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnBhZGRpbmdMZWZ0KCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gdGhpcy5wYWRkaW5nUmlnaHQoKTtcclxuICAgIH1cclxuICB9KTtcclxuXHJcbiAgYmVmb3JlSXNUZW1wbGF0ZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMuYmVmb3JlKCkgaW5zdGFuY2VvZiBUZW1wbGF0ZVJlZik7XHJcbiAgYWZ0ZXJJc1RlbXBsYXRlID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5hZnRlcigpIGluc3RhbmNlb2YgVGVtcGxhdGVSZWYpO1xyXG5cclxuICBnZXRUZW1wbGF0ZVdpZHRoID0gY29tcHV0ZWQoKCkgPT4ge1xyXG4gICAgcmV0dXJuIGBjYWxjKDEwMCUgLSAke3RoaXMucGFkZGluZ0xlZnQoKX0gLSAke3RoaXMucGFkZGluZ1JpZ2h0KCl9KWA7XHJcbiAgfSk7XHJcblxyXG4gIGZvY3VzZWQgPSBzaWduYWwoZmFsc2UpO1xyXG4gIGdyb3VwU2l6ZSA9IHNpZ25hbDxYU2l6ZSB8IG51bGw+KG51bGwpO1xyXG4gIGdyb3VwQm9yZGVyZWQgPSBzaWduYWw8Ym9vbGVhbiB8IG51bGw+KG51bGwpO1xyXG5cclxuICBvdmVycmlkZSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gIHByaXZhdGUgaW5wdXRHcm91cCA9IGluamVjdChYSW5wdXRHcm91cENvbXBvbmVudCwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcclxuICBlbGVtZW50UmVmID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuc2V0SW5oZXJpdGVkVmFsdWUoKTtcclxuICAgIHRoaXMuc2V0RXZlbnQoKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy51blN1YmplY3QubmV4dCgpO1xyXG4gICAgdGhpcy51blN1YmplY3QuY29tcGxldGUoKTtcclxuICB9XHJcblxyXG4gIHNldEV2ZW50KCkge1xyXG4gICAgY29uc3QgaW5wdXRSZWYgPSB0aGlzLmlucHV0UmVmKCkubmF0aXZlRWxlbWVudDtcclxuICAgIGZyb21FdmVudChpbnB1dFJlZiwgJ2NvbXBvc2l0aW9uc3RhcnQnKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy51blN1YmplY3QpKVxyXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICB0aGlzLmlzQ29tcG9zaXRpb24uc2V0KHRydWUpO1xyXG4gICAgICB9KTtcclxuICAgIGZyb21FdmVudChpbnB1dFJlZiwgJ2NvbXBvc2l0aW9uZW5kJylcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMudW5TdWJqZWN0KSlcclxuICAgICAgLnN1YnNjcmliZSgoeDogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5pc0NvbXBvc2l0aW9uLnNldChmYWxzZSk7XHJcbiAgICAgICAgdGhpcy5pbnB1dENoZWNrVmFsdWUoeCk7XHJcbiAgICAgIH0pO1xyXG4gICAgZnJvbUV2ZW50KGlucHV0UmVmLCAnZm9jdXMnKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy51blN1YmplY3QpKVxyXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICB0aGlzLmZvY3VzZWQuc2V0KHRydWUpO1xyXG4gICAgICB9KTtcclxuICAgIGZyb21FdmVudChpbnB1dFJlZiwgJ2JsdXInKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy51blN1YmplY3QpKVxyXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICB0aGlzLmZvY3VzZWQuc2V0KGZhbHNlKTtcclxuICAgICAgfSk7XHJcbiAgICBmcm9tRXZlbnQ8SW5wdXRFdmVudD4oaW5wdXRSZWYsICdpbnB1dCcpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLnVuU3ViamVjdCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHg6IElucHV0RXZlbnQpID0+IHtcclxuICAgICAgICBpZiAoIXRoaXMuaXNDb21wb3NpdGlvbigpKSB7XHJcbiAgICAgICAgICB0aGlzLmlucHV0Q2hlY2tWYWx1ZSh4KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgdGhpcy52YWx1ZUNoYW5nZVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgoYSwgYikgPT4gYSA9PT0gYiB8fCAoISF0aGlzLm1heGxlbmd0aCgpICYmIGAke2J9YC5sZW5ndGggPiBOdW1iZXIodGhpcy5tYXhsZW5ndGgoKSkpKSxcclxuICAgICAgICB0YWtlVW50aWwodGhpcy51blN1YmplY3QpXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZSgoeCkgPT4ge1xyXG4gICAgICAgIHRoaXMuY2hhbmdlKHgpO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIGlucHV0Q2hlY2tWYWx1ZSh4OiBFdmVudCkge1xyXG4gICAgY29uc3QgaW5wdXQgPSB4LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50O1xyXG4gICAgbGV0IHZhbHVlID0gaW5wdXQudmFsdWU7XHJcbiAgICBpZiAodGhpcy50eXBlKCkgPT09ICdudW1iZXInKSB7XHJcbiAgICAgIGNvbnN0IGxlbiA9IFhJc0VtcHR5KHZhbHVlKSA/IDAgOiBgJHt2YWx1ZX1gLmxlbmd0aDtcclxuICAgICAgaWYgKGxlbiA+IE51bWJlcih0aGlzLm1heGxlbmd0aCgpKSkge1xyXG4gICAgICAgIGlucHV0LnZhbHVlID0gdmFsdWUuc2xpY2UoMCwgdGhpcy5tYXhsZW5ndGgoKSEpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLnhJbnB1dC5lbWl0KHgpO1xyXG4gICAgdGhpcy52YWx1ZUNoYW5nZS5uZXh0KGlucHV0LnZhbHVlKTtcclxuICB9XHJcblxyXG4gIGNoYW5nZSh2YWx1ZTogYW55KSB7XHJcbiAgICBpZiAodGhpcy5tYXhsZW5ndGgpIHtcclxuICAgICAgdGhpcy52YWx1ZUxlbmd0aC5zZXQoWElzRW1wdHkodmFsdWUpID8gMCA6IGAke3ZhbHVlfWAubGVuZ3RoKTtcclxuICAgICAgdGhpcy5sZW5ndGhUb3RhbC5zZXQoYCR7dGhpcy52YWx1ZUxlbmd0aCgpfS8ke3RoaXMubWF4bGVuZ3RoKCl9YCk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5vbkNoYW5nZSAmJiAhdGhpcy5pc1dyaXRlVmFsdWUoKSkge1xyXG4gICAgICBpZiAodGhpcy50eXBlKCkgPT09ICdudW1iZXInKSB7XHJcbiAgICAgICAgaWYgKFsnJywgdW5kZWZpbmVkLCBudWxsXS5pbmNsdWRlcyh2YWx1ZSkpIHtcclxuICAgICAgICAgIHZhbHVlID0gbnVsbDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdmFsdWUgPSBOdW1iZXIodmFsdWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICB0aGlzLm9uQ2hhbmdlKHZhbHVlKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnZhbGlkYXRvckNvbXB1dGVkKCkgJiYgWElzRnVuY3Rpb24odGhpcy5pbnB1dFZhbGlkYXRvcigpKSkge1xyXG4gICAgICB0aGlzLmludmFsaWRJbnB1dFZhbGlkYXRvci5zZXQoIXRoaXMuaW5wdXRWYWxpZGF0b3IoKSEodmFsdWUpKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uQ2xlYXIoKSB7XHJcbiAgICBjb25zdCBjbGVhclZhbHVlID0gdGhpcy52YWx1ZSgpO1xyXG4gICAgdGhpcy52YWx1ZS5zZXQoJycpO1xyXG4gICAgdGhpcy52YWx1ZUNoYW5nZS5uZXh0KHRoaXMudmFsdWUoKSk7XHJcbiAgICB0aGlzLmlucHV0UmVmKCkubmF0aXZlRWxlbWVudC5mb2N1cygpO1xyXG4gICAgdGhpcy5jbGVhckVtaXQuZW1pdChjbGVhclZhbHVlKTtcclxuICB9XHJcblxyXG4gIHNldEluaGVyaXRlZFZhbHVlKCkge1xyXG4gICAgaWYgKCF0aGlzLmlucHV0R3JvdXApIHJldHVybjtcclxuICAgIGlmICghWElzVW5kZWZpbmVkKHRoaXMuaW5wdXRHcm91cC5zaXplKCkpKSB7XHJcbiAgICAgIHRoaXMuZ3JvdXBTaXplLnNldCh0aGlzLmlucHV0R3JvdXAuc2l6ZSgpISk7XHJcbiAgICB9XHJcbiAgICBpZiAoIVhJc1VuZGVmaW5lZCh0aGlzLmlucHV0R3JvdXAuYm9yZGVyZWQoKSkpIHtcclxuICAgICAgdGhpcy5ncm91cEJvcmRlcmVkLnNldCh0aGlzLmlucHV0R3JvdXAuYm9yZGVyZWQoKSEpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaW5wdXRGb2N1cyh0eXBlOiAnZm9jdXMnIHwgJ3NlbGVjdCcgfCAnYmVmb3JlJyB8ICdhZnRlcicgPSAnYWZ0ZXInKSB7XHJcbiAgICB0aGlzLmlucHV0UmVmKCkubmF0aXZlRWxlbWVudC5mb2N1cygpO1xyXG4gICAgaWYgKCF0aGlzLnZhbHVlKCkpIHJldHVybjtcclxuICAgIGlmICh0eXBlID09PSAnYWZ0ZXInKSB7XHJcbiAgICAgIHRoaXMuaW5wdXRSZWYoKS5uYXRpdmVFbGVtZW50LnNldFNlbGVjdGlvblJhbmdlKHRoaXMudmFsdWUoKS5sZW5ndGgsIHRoaXMudmFsdWUoKS5sZW5ndGgpO1xyXG4gICAgfSBlbHNlIGlmICh0eXBlID09PSAnYmVmb3JlJykge1xyXG4gICAgICB0aGlzLmlucHV0UmVmKCkubmF0aXZlRWxlbWVudC5zZXRTZWxlY3Rpb25SYW5nZSgwLCAwKTtcclxuICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ3NlbGVjdCcpIHtcclxuICAgICAgdGhpcy5pbnB1dFJlZigpLm5hdGl2ZUVsZW1lbnQuc2V0U2VsZWN0aW9uUmFuZ2UoMCwgdGhpcy52YWx1ZSgpLmxlbmd0aCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBmb3JtQ29udHJvbENoYW5nZXMoKSB7fVxyXG59XHJcbiIsIjxkaXZcclxuICAjaW5wdXRFbGVtZW50XHJcbiAgY2xhc3M9XCJ4LWlucHV0XCJcclxuICBbY2xhc3MueC1mbGV4XT1cImp1c3RpZnkoKSB8fCBhbGlnbigpIHx8IGRpcmVjdGlvbigpXCJcclxuICBbY2xhc3MueC1kaXNhYmxlZF09XCJkaXNhYmxlZENvbXB1dGVkKClcIlxyXG4gIFtjbGFzcy54LXJlcXVpcmVkXT1cInJlcXVpcmVkSXNFbXB0eSgpXCJcclxuICBbY2xhc3MueC1pbnZhbGlkXT1cImludmFsaWQoKVwiXHJcbiAgW2NsYXNzLngtY2xlYXJhYmxlXT1cImNsZWFyYWJsZSgpXCJcclxuICBbY2xhc3MueC1jbGVhci1zaG93XT1cImNsZWFyU2hvdygpXCJcclxuICBbY2xhc3MueC1pbnB1dC1pY29uXT1cImdldEljb24oKVwiXHJcbiAgW2NsYXNzLngtaW5wdXQtYWN0aXZlXT1cImFjdGl2ZSgpXCJcclxuICBbY2xhc3MueC1pbnB1dC1mb2N1c109XCJmb2N1c2VkKClcIlxyXG4gIFtjbGFzcy54LWlucHV0LXBvaW50ZXJdPVwicG9pbnRlcigpXCJcclxuICBbY2xhc3MueC1pbnB1dC1ib3JkZXJlZF09XCJib3JkZXJlZCgpXCJcclxuICBbY2xhc3MueC1pbnB1dC1pY29uLWxlZnRdPVwiZ2V0SWNvbkxheW91dExlZnQoKVwiXHJcbiAgW2NsYXNzLngtaW5wdXQtaWNvbi1yaWdodF09XCJnZXRJY29uTGF5b3V0UmlnaHQoKVwiXHJcbiAgW2NsYXNzLngtaW5wdXQtYWZ0ZXJdPVwiYWZ0ZXIoKVwiXHJcbiAgW2NsYXNzLngtaW5wdXQtYmVmb3JlXT1cImJlZm9yZSgpXCJcclxuICBbY2xhc3MueC1pbnB1dC1hZnRlci10ZW1wbGF0ZV09XCJhZnRlcklzVGVtcGxhdGUoKVwiXHJcbiAgW2NsYXNzLngtaW5wdXQtYmVmb3JlLXRlbXBsYXRlXT1cImJlZm9yZUlzVGVtcGxhdGUoKVwiXHJcbiAgW2NsYXNzLngtaW5wdXQtdmFsdWUtdGVtcGxhdGVdPVwidmFsdWVUcGwoKVwiXHJcbiAgW25nQ2xhc3NdPVwiY2xhc3NNYXAoKVwiXHJcbj5cclxuICBAaWYgKGxhYmVsKCkpIHtcclxuICAgIDxsYWJlbFxyXG4gICAgICBbY2xhc3MueC1pbnB1dC1sYWJlbC1yZXF1aXJlZF09XCJyZXF1aXJlZENvbXB1dGVkKClcIlxyXG4gICAgICBbc3R5bGUud2lkdGhdPVwibGFiZWxXaWR0aCgpXCJcclxuICAgICAgW25nQ2xhc3NdPVwibGFiZWxNYXBTaWduYWwoKVwiXHJcbiAgICAgID57eyBsYWJlbCgpIH19PC9sYWJlbFxyXG4gICAgPlxyXG4gIH1cclxuICA8ZGl2IGNsYXNzPVwieC1pbnB1dC1yb3dcIj5cclxuICAgIEBpZiAoYmVmb3JlKCkpIHtcclxuICAgICAgPGRpdiBjbGFzcz1cIngtaW5wdXQtcm93LWJlZm9yZVwiIFtjbGFzcy54LWlucHV0LXJvdy1iZWZvcmUtdGVtcGxhdGVdPVwiYmVmb3JlSXNUZW1wbGF0ZSgpXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqeE91dGxldD1cImJlZm9yZSgpXCI+e3sgYmVmb3JlKCkgfX08L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9kaXY+XHJcbiAgICB9XHJcbiAgICA8ZGl2IGNsYXNzPVwieC1pbnB1dC1pbnB1dFwiIChtb3VzZWVudGVyKT1cInhNb3VzZWVudGVyLmVtaXQoJGV2ZW50KVwiIChtb3VzZWxlYXZlKT1cInhNb3VzZWxlYXZlLmVtaXQoJGV2ZW50KVwiPlxyXG4gICAgICBAaWYgKHZhbHVlVHBsKCkpIHtcclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAjaW5wdXRWYWx1ZVJlZlxyXG4gICAgICAgICAgY2xhc3M9XCJ4LWlucHV0LXZhbHVlLXRlbXBsYXRlLXZhbHVlXCJcclxuICAgICAgICAgIFtzdHlsZS5sZWZ0XT1cInBhZGRpbmdMZWZ0KClcIlxyXG4gICAgICAgICAgW3N0eWxlLnBhZGRpbmctbGVmdF09XCIwXCJcclxuICAgICAgICAgIFtzdHlsZS5wYWRkaW5nLXJpZ2h0XT1cIjBcIlxyXG4gICAgICAgICAgW3N0eWxlLndpZHRoXT1cImdldFRlbXBsYXRlV2lkdGgoKVwiXHJcbiAgICAgICAgICAoY2xpY2spPVwieENsaWNrLmVtaXQoJGV2ZW50KVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cInZhbHVlVHBsKCkhOyBjb250ZXh0OiB2YWx1ZVRwbENvbnRleHQoKSA/IHZhbHVlVHBsQ29udGV4dCgpIDogeyAkdmFsdWU6IHZhbHVlKCkgfVwiXHJcbiAgICAgICAgICA+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIH1cclxuICAgICAgPGlucHV0XHJcbiAgICAgICAgI2lucHV0UmVmXHJcbiAgICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCJcclxuICAgICAgICBbY2xhc3MueC1pbnB1dC1oYXMtdmFsdWUtdGVtcGxhdGVdPVwidmFsdWVUcGwoKVwiXHJcbiAgICAgICAgW25nU3R5bGVdPVwiaW5wdXRTdHlsZSgpXCJcclxuICAgICAgICBbdHlwZV09XCJ0eXBlKClcIlxyXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlcigpXCJcclxuICAgICAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRDb21wdXRlZCgpXCJcclxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRDb21wdXRlZCgpXCJcclxuICAgICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHkoKVwiXHJcbiAgICAgICAgW21heGxlbmd0aF09XCJtYXhsZW5ndGgoKVwiXHJcbiAgICAgICAgW21pbl09XCJtaW4oKVwiXHJcbiAgICAgICAgW21pbl09XCJtYXgoKVwiXHJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiXHJcbiAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidmFsdWVDaGFuZ2UubmV4dCgkZXZlbnQpXCJcclxuICAgICAgICBbc3R5bGUucGFkZGluZy1sZWZ0XT1cInBhZGRpbmdMZWZ0KClcIlxyXG4gICAgICAgIFtzdHlsZS5wYWRkaW5nLXJpZ2h0XT1cInBhZGRpbmdSaWdodCgpXCJcclxuICAgICAgICAoZm9jdXMpPVwieEZvY3VzLmVtaXQoJGV2ZW50KVwiXHJcbiAgICAgICAgKGJsdXIpPVwieEJsdXIuZW1pdCgkZXZlbnQpXCJcclxuICAgICAgICAoa2V5ZG93bik9XCJmb3JtQ29udHJvbFZhbGlkYXRvcigpOyB4S2V5ZG93bi5lbWl0KCRldmVudClcIlxyXG4gICAgICAgIChjbGljayk9XCJ4Q2xpY2suZW1pdCgkZXZlbnQpXCJcclxuICAgICAgICAoY29tcG9zaXRpb25zdGFydCk9XCJ4Q29tcG9zaXRpb24uZW1pdCgkZXZlbnQpXCJcclxuICAgICAgICAoY29tcG9zaXRpb25lbmQpPVwieENvbXBvc2l0aW9uLmVtaXQoJGV2ZW50KVwiXHJcbiAgICAgIC8+XHJcbiAgICAgIEBpZiAoY2xlYXJTaG93KCkgJiYgIWljb25TcGluKCkpIHtcclxuICAgICAgICA8eC1pY29uIGNsYXNzPVwieC1pbnB1dC1jbGVhclwiIHR5cGU9XCJmdG8teFwiIChjbGljayk9XCJvbkNsZWFyKClcIj48L3gtaWNvbj5cclxuICAgICAgfVxyXG4gICAgICBAaWYgKGljb24oKSAmJiAoKCFjbGVhclNob3coKSAmJiBnZXRJY29uTGF5b3V0UmlnaHQoKSkgfHwgZ2V0SWNvbkxheW91dExlZnQoKSB8fCBpY29uU3BpbigpKSkge1xyXG4gICAgICAgIDx4LWljb24gW3R5cGVdPVwiaWNvbigpXCIgW3NwaW5dPVwiaWNvblNwaW4oKVwiIChjbGljayk9XCJ4Q2xpY2suZW1pdCgkZXZlbnQpXCI+PC94LWljb24+XHJcbiAgICAgIH1cclxuICAgICAgQGlmIChtYXhsZW5ndGgoKSAmJiBsZW5ndGhUb3RhbCgpKSB7XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ4LWlucHV0LW1heC1sZW5ndGhcIiBbc3R5bGUud2lkdGhdPVwiZ2V0TWF4TGVuZ3RoV2lkdGgoKVwiPnt7IGxlbmd0aFRvdGFsKCkgfX08L3NwYW4+XHJcbiAgICAgIH1cclxuICAgICAgQGlmIChpbnZhbGlkKCkpIHtcclxuICAgICAgICA8c3BhbiBjbGFzcz1cIngtaW5wdXQtZXJyb3ItbWVzc2FnZVwiPnt7IGludmFsaWRNZXNzYWdlKCkgfX08L3NwYW4+XHJcbiAgICAgIH1cclxuICAgICAgQGlmIChyZXF1aXJlZElzRW1wdHkoKSB8fCBpbnZhbGlkKCkpIHtcclxuICAgICAgICA8ZGl2IGNsYXNzPVwieC1ib3JkZXItZXJyb3IgeC10b3AtbGVmdFwiPjwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ4LWJvcmRlci1lcnJvciB4LXRvcC1yaWdodFwiPjwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ4LWJvcmRlci1lcnJvciB4LWJvdHRvbS1sZWZ0XCI+PC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIngtYm9yZGVyLWVycm9yIHgtYm90dG9tLXJpZ2h0XCI+PC9kaXY+XHJcbiAgICAgIH1cclxuICAgIDwvZGl2PlxyXG4gICAgQGlmIChhZnRlcigpKSB7XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ4LWlucHV0LXJvdy1hZnRlclwiIFtjbGFzcy54LWlucHV0LXJvdy1hZnRlci10ZW1wbGF0ZV09XCJhZnRlcklzVGVtcGxhdGUoKVwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKnhPdXRsZXQ9XCJhZnRlcigpXCI+e3sgYWZ0ZXIoKSB9fTwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIH1cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
224
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvaW5wdXQvaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvaW5wdXQvaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxpQkFBaUIsRUFDakIsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixVQUFVLEVBQ1YsV0FBVyxFQUNYLFdBQVcsRUFDWCxNQUFNLEVBQ04sU0FBUyxFQUNULE1BQU0sRUFDTixRQUFRLEVBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQVMsTUFBTSxrQkFBa0IsQ0FBQztBQUM5RSxPQUFPLEVBQUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0UsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDckUsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7O0FBWXRELE1BQU0sT0FBTyxlQUFnQixTQUFRLGNBQWM7SUFWbkQ7O1FBV0UsaUJBQVksR0FBRyxT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QUUsbUJBQW1CLEVBQUUsY0FBYyxFQUFFLGdCQUFnQixDQUFDLGlCQUdsRyxpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDLENBQUMsY0FBYyxpQkFBaUIsQ0FBQzs4QkFRWixRQUFRO3NCQUF2QyxXQUFXO3VCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBPbkluaXQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgRWxlbWVudFJlZixcclxuICBUZW1wbGF0ZVJlZixcclxuICBIb3N0QmluZGluZyxcclxuICBpbmplY3QsXHJcbiAgdmlld0NoaWxkLFxyXG4gIHNpZ25hbCxcclxuICBjb21wdXRlZFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBYSW5wdXRQcmVmaXgsIFhJbnB1dFByb3BlcnR5IH0gZnJvbSAnLi9pbnB1dC5wcm9wZXJ0eSc7XHJcbmltcG9ydCB7IFhJc0VtcHR5LCBYSXNVbmRlZmluZWQsIFhJc0Z1bmN0aW9uLCBYU2l6ZSB9IGZyb20gJ0BuZy1uZXN0L3VpL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZnJvbUV2ZW50LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgWFZhbHVlQWNjZXNzb3IgfSBmcm9tICdAbmctbmVzdC91aS9iYXNlLWZvcm0nO1xyXG5pbXBvcnQgeyBYSW5wdXRHcm91cENvbXBvbmVudCB9IGZyb20gJy4vaW5wdXQtZ3JvdXAuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTmdDbGFzcywgTmdTdHlsZSwgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBYSWNvbkNvbXBvbmVudCB9IGZyb20gJ0BuZy1uZXN0L3VpL2ljb24nO1xyXG5pbXBvcnQgeyBYT3V0bGV0RGlyZWN0aXZlIH0gZnJvbSAnQG5nLW5lc3QvdWkvb3V0bGV0JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBgJHtYSW5wdXRQcmVmaXh9YCxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtOZ0NsYXNzLCBOZ1N0eWxlLCBOZ1RlbXBsYXRlT3V0bGV0LCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgWEljb25Db21wb25lbnQsIFhPdXRsZXREaXJlY3RpdmVdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9pbnB1dC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vaW5wdXQuY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIHByb3ZpZGVyczogW1hWYWx1ZUFjY2Vzc29yKFhJbnB1dENvbXBvbmVudCldXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBYSW5wdXRDb21wb25lbnQgZXh0ZW5kcyBYSW5wdXRQcm9wZXJ0eSBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgaW5wdXRFbGVtZW50ID0gdmlld0NoaWxkLnJlcXVpcmVkKCdpbnB1dEVsZW1lbnQnLCB7IHJlYWQ6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+IH0pO1xyXG4gIGlucHV0UmVmID0gdmlld0NoaWxkLnJlcXVpcmVkKCdpbnB1dFJlZicsIHsgcmVhZDogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PiB9KTtcclxuICBpbnB1dFZhbHVlUmVmID0gdmlld0NoaWxkKCdpbnB1dFZhbHVlUmVmJywgeyByZWFkOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PiB9KTtcclxuICBtYXhMZW5ndGhSZWYgPSB2aWV3Q2hpbGQoJ21heExlbmd0aFJlZicsIHsgcmVhZDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4gfSk7XHJcblxyXG4gIEBIb3N0QmluZGluZygnc3R5bGUud2lkdGgnKSBnZXQgZ2V0V2lkdGgoKSB7XHJcbiAgICByZXR1cm4gdGhpcy53aWR0aCgpO1xyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XHJcbiAgICB0aGlzLnZhbHVlLnNldCh2YWx1ZSk7XHJcbiAgICB0aGlzLmlzV3JpdGVWYWx1ZS5zZXQodHJ1ZSk7XHJcbiAgICB0aGlzLnZhbHVlQ2hhbmdlLm5leHQodmFsdWUpO1xyXG4gICAgdGhpcy5pc1dyaXRlVmFsdWUuc2V0KGZhbHNlKTtcclxuICB9XHJcblxyXG4gIGNsYXNzTWFwID0gY29tcHV0ZWQoKCkgPT4gKHtcclxuICAgIFtgJHtYSW5wdXRQcmVmaXh9LSR7dGhpcy5zaXplKCl9YF06ICEhdGhpcy5zaXplKCksXHJcbiAgICBbYHgtanVzdGlmeS0ke3RoaXMuanVzdGlmeSgpfWBdOiAhIXRoaXMuanVzdGlmeSgpLFxyXG4gICAgW2B4LWFsaWduLSR7dGhpcy5hbGlnbigpfWBdOiAhIXRoaXMuYWxpZ24oKSxcclxuICAgIFtgeC1kaXJlY3Rpb24tJHt0aGlzLmRpcmVjdGlvbigpfWBdOiAhIXRoaXMuZGlyZWN0aW9uKClcclxuICB9KSk7XHJcbiAgbGFiZWxNYXBTaWduYWwgPSBjb21wdXRlZCgoKSA9PiAoe1xyXG4gICAgW2B4LXRleHQtYWxpZ24tJHt0aGlzLmxhYmVsQWxpZ24oKX1gXTogISF0aGlzLmxhYmVsQWxpZ24oKVxyXG4gIH0pKTtcclxuXHJcbiAgdmFsdWVMZW5ndGggPSBzaWduYWwoMCk7XHJcbiAgbGVuZ3RoVG90YWwgPSBzaWduYWwoJycpO1xyXG4gIHBhZGRpbmdMZWZ0ID0gY29tcHV0ZWQoKCkgPT4ge1xyXG4gICAgcmV0dXJuIHRoaXMubWF4bGVuZ3RoKCkgJiYgdGhpcy5pY29uKCkgJiYgdGhpcy5pY29uTGF5b3V0KCkgPT09ICdyaWdodCdcclxuICAgICAgPyAodGhpcy5sZW5ndGhUb3RhbCgpLmxlbmd0aCArIDIpICogMC41ICsgJ3JlbSdcclxuICAgICAgOiB0aGlzLmljb24oKSAmJiB0aGlzLmljb25MYXlvdXQoKSA9PT0gJ2xlZnQnXHJcbiAgICAgICAgPyB0aGlzLmlucHV0SWNvblBhZGRpbmcoKVxyXG4gICAgICAgIDogdGhpcy5pbnB1dFBhZGRpbmcoKTtcclxuICB9KTtcclxuICBwYWRkaW5nUmlnaHQgPSBjb21wdXRlZCgoKSA9PiB7XHJcbiAgICByZXR1cm4gdGhpcy5tYXhsZW5ndGgoKSAmJiB0aGlzLmljb24oKSAmJiB0aGlzLmljb25MYXlvdXQoKSA9PT0gJ2xlZnQnXHJcbiAgICAgID8gKHRoaXMubGVuZ3RoVG90YWwoKS5sZW5ndGggKyAyKSAqIDAuNSArICdyZW0nXHJcbiAgICAgIDogKCh0aGlzLmljb24oKSB8fCB0aGlzLmNsZWFyU2hvdygpKSAmJiB0aGlzLmljb25MYXlvdXQoKSA9PT0gJ3JpZ2h0JykgfHxcclxuICAgICAgICAgICh0aGlzLmNsZWFyU2hvdygpICYmIHRoaXMuaWNvbkxheW91dCgpID09PSAnbGVmdCcpXHJcbiAgICAgICAgPyB0aGlzLmlucHV0SWNvblBhZGRpbmcoKVxyXG4gICAgICAgIDogdGhpcy5tYXhsZW5ndGgoKSAmJiAhdGhpcy5pY29uKClcclxuICAgICAgICAgID8gKHRoaXMubGVuZ3RoVG90YWwoKS5sZW5ndGggKyAyKSAqIDAuNSArICdyZW0nXHJcbiAgICAgICAgICA6IHRoaXMuaW5wdXRQYWRkaW5nKCk7XHJcbiAgfSk7XHJcbiAgY2xlYXJTaG93ID0gY29tcHV0ZWQoKCkgPT4ge1xyXG4gICAgaWYgKHRoaXMuY2xlYXJhYmxlKCkgJiYgIXRoaXMuZGlzYWJsZWRDb21wdXRlZCgpKSB7XHJcbiAgICAgIHJldHVybiAhWElzRW1wdHkodGhpcy52YWx1ZSgpKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICB9KTtcclxuICB2YWx1ZUNoYW5nZSA9IG5ldyBTdWJqZWN0PGFueT4oKTtcclxuICBpc0NvbXBvc2l0aW9uID0gc2lnbmFsKGZhbHNlKTtcclxuICBpc1dyaXRlVmFsdWUgPSBzaWduYWwoZmFsc2UpO1xyXG4gIHByaXZhdGUgdW5TdWJqZWN0ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuXHJcbiAgZ2V0SWNvbiA9IGNvbXB1dGVkKCgpID0+IHtcclxuICAgIHJldHVybiAhWElzRW1wdHkodGhpcy5pY29uKCkpO1xyXG4gIH0pO1xyXG5cclxuICBnZXRJY29uTGF5b3V0TGVmdCA9IGNvbXB1dGVkKCgpID0+IHtcclxuICAgIHJldHVybiAhWElzRW1wdHkodGhpcy5pY29uKCkpICYmIHRoaXMuaWNvbkxheW91dCgpID09PSAnbGVmdCc7XHJcbiAgfSk7XHJcblxyXG4gIGdldEljb25MYXlvdXRSaWdodCA9IGNvbXB1dGVkKCgpID0+IHtcclxuICAgIHJldHVybiAhWElzRW1wdHkodGhpcy5pY29uKCkpICYmIHRoaXMuaWNvbkxheW91dCgpID09PSAncmlnaHQnO1xyXG4gIH0pO1xyXG5cclxuICBnZXRNYXhMZW5ndGhXaWR0aCA9IGNvbXB1dGVkKCgpID0+IHtcclxuICAgIGlmICh0aGlzLmdldEljb25MYXlvdXRSaWdodCgpKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnBhZGRpbmdMZWZ0KCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gdGhpcy5wYWRkaW5nUmlnaHQoKTtcclxuICAgIH1cclxuICB9KTtcclxuXHJcbiAgYmVmb3JlSXNUZW1wbGF0ZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMuYmVmb3JlKCkgaW5zdGFuY2VvZiBUZW1wbGF0ZVJlZik7XHJcbiAgYWZ0ZXJJc1RlbXBsYXRlID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5hZnRlcigpIGluc3RhbmNlb2YgVGVtcGxhdGVSZWYpO1xyXG5cclxuICBnZXRUZW1wbGF0ZVdpZHRoID0gY29tcHV0ZWQoKCkgPT4ge1xyXG4gICAgcmV0dXJuIGBjYWxjKDEwMCUgLSAke3RoaXMucGFkZGluZ0xlZnQoKX0gLSAke3RoaXMucGFkZGluZ1JpZ2h0KCl9KWA7XHJcbiAgfSk7XHJcblxyXG4gIGZvY3VzZWQgPSBzaWduYWwoZmFsc2UpO1xyXG4gIGdyb3VwU2l6ZSA9IHNpZ25hbDxYU2l6ZSB8IG51bGw+KG51bGwpO1xyXG4gIGdyb3VwQm9yZGVyZWQgPSBzaWduYWw8Ym9vbGVhbiB8IG51bGw+KG51bGwpO1xyXG5cclxuICBvdmVycmlkZSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gIHByaXZhdGUgaW5wdXRHcm91cCA9IGluamVjdChYSW5wdXRHcm91cENvbXBvbmVudCwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcclxuICBlbGVtZW50UmVmID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuc2V0SW5oZXJpdGVkVmFsdWUoKTtcclxuICAgIHRoaXMuc2V0RXZlbnQoKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy51blN1YmplY3QubmV4dCgpO1xyXG4gICAgdGhpcy51blN1YmplY3QuY29tcGxldGUoKTtcclxuICB9XHJcblxyXG4gIHNldEV2ZW50KCkge1xyXG4gICAgY29uc3QgaW5wdXRSZWYgPSB0aGlzLmlucHV0UmVmKCkubmF0aXZlRWxlbWVudDtcclxuICAgIGZyb21FdmVudChpbnB1dFJlZiwgJ2NvbXBvc2l0aW9uc3RhcnQnKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy51blN1YmplY3QpKVxyXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICB0aGlzLmlzQ29tcG9zaXRpb24uc2V0KHRydWUpO1xyXG4gICAgICB9KTtcclxuICAgIGZyb21FdmVudChpbnB1dFJlZiwgJ2NvbXBvc2l0aW9uZW5kJylcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMudW5TdWJqZWN0KSlcclxuICAgICAgLnN1YnNjcmliZSgoeDogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5pc0NvbXBvc2l0aW9uLnNldChmYWxzZSk7XHJcbiAgICAgICAgdGhpcy5pbnB1dENoZWNrVmFsdWUoeCk7XHJcbiAgICAgIH0pO1xyXG4gICAgZnJvbUV2ZW50KGlucHV0UmVmLCAnZm9jdXMnKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy51blN1YmplY3QpKVxyXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICB0aGlzLmZvY3VzZWQuc2V0KHRydWUpO1xyXG4gICAgICB9KTtcclxuICAgIGZyb21FdmVudChpbnB1dFJlZiwgJ2JsdXInKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy51blN1YmplY3QpKVxyXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICB0aGlzLmZvY3VzZWQuc2V0KGZhbHNlKTtcclxuICAgICAgfSk7XHJcbiAgICBmcm9tRXZlbnQ8SW5wdXRFdmVudD4oaW5wdXRSZWYsICdpbnB1dCcpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLnVuU3ViamVjdCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHg6IElucHV0RXZlbnQpID0+IHtcclxuICAgICAgICBpZiAoIXRoaXMuaXNDb21wb3NpdGlvbigpKSB7XHJcbiAgICAgICAgICB0aGlzLmlucHV0Q2hlY2tWYWx1ZSh4KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgdGhpcy52YWx1ZUNoYW5nZVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgoYSwgYikgPT4gYSA9PT0gYiB8fCAoISF0aGlzLm1heGxlbmd0aCgpICYmIGAke2J9YC5sZW5ndGggPiBOdW1iZXIodGhpcy5tYXhsZW5ndGgoKSkpKSxcclxuICAgICAgICB0YWtlVW50aWwodGhpcy51blN1YmplY3QpXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZSgoeCkgPT4ge1xyXG4gICAgICAgIHRoaXMuY2hhbmdlKHgpO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIGlucHV0Q2hlY2tWYWx1ZSh4OiBFdmVudCkge1xyXG4gICAgY29uc3QgaW5wdXQgPSB4LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50O1xyXG4gICAgbGV0IHZhbHVlID0gaW5wdXQudmFsdWU7XHJcbiAgICBpZiAodGhpcy50eXBlKCkgPT09ICdudW1iZXInKSB7XHJcbiAgICAgIGlmICghWElzRW1wdHkodmFsdWUpKSB7XHJcbiAgICAgICAgY29uc3QgbGVuID0gWElzRW1wdHkodmFsdWUpID8gMCA6IGAke3ZhbHVlfWAubGVuZ3RoO1xyXG4gICAgICAgIGlmICh0aGlzLm1heGxlbmd0aCgpICYmIGxlbiA+IE51bWJlcih0aGlzLm1heGxlbmd0aCgpKSkge1xyXG4gICAgICAgICAgaW5wdXQudmFsdWUgPSB2YWx1ZS5zbGljZSgwLCB0aGlzLm1heGxlbmd0aCgpISk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICghWElzRW1wdHkodGhpcy5taW4oKSkgJiYgTnVtYmVyKHZhbHVlKSA8PSB0aGlzLm1pbigpISkge1xyXG4gICAgICAgICAgaW5wdXQudmFsdWUgPSBgJHt0aGlzLm1pbigpIX1gO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoIVhJc0VtcHR5KHRoaXMubWF4KCkpICYmIE51bWJlcih2YWx1ZSkgPj0gdGhpcy5tYXgoKSEpIHtcclxuICAgICAgICAgIGlucHV0LnZhbHVlID0gYCR7dGhpcy5tYXgoKSF9YDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMueElucHV0LmVtaXQoeCk7XHJcbiAgICB0aGlzLnZhbHVlQ2hhbmdlLm5leHQoaW5wdXQudmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgY2hhbmdlKHZhbHVlOiBhbnkpIHtcclxuICAgIGlmICh0aGlzLm1heGxlbmd0aCgpKSB7XHJcbiAgICAgIHRoaXMudmFsdWVMZW5ndGguc2V0KFhJc0VtcHR5KHZhbHVlKSA/IDAgOiBgJHt2YWx1ZX1gLmxlbmd0aCk7XHJcbiAgICAgIHRoaXMubGVuZ3RoVG90YWwuc2V0KGAke3RoaXMudmFsdWVMZW5ndGgoKX0vJHt0aGlzLm1heGxlbmd0aCgpfWApO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMub25DaGFuZ2UgJiYgIXRoaXMuaXNXcml0ZVZhbHVlKCkpIHtcclxuICAgICAgaWYgKHRoaXMudHlwZSgpID09PSAnbnVtYmVyJykge1xyXG4gICAgICAgIGlmIChbJycsIHVuZGVmaW5lZCwgbnVsbF0uaW5jbHVkZXModmFsdWUpKSB7XHJcbiAgICAgICAgICB2YWx1ZSA9IG51bGw7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHZhbHVlID0gTnVtYmVyKHZhbHVlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5vbkNoYW5nZSh2YWx1ZSk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy52YWxpZGF0b3JDb21wdXRlZCgpICYmIFhJc0Z1bmN0aW9uKHRoaXMuaW5wdXRWYWxpZGF0b3IoKSkpIHtcclxuICAgICAgdGhpcy5pbnZhbGlkSW5wdXRWYWxpZGF0b3Iuc2V0KCF0aGlzLmlucHV0VmFsaWRhdG9yKCkhKHZhbHVlKSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkNsZWFyKCkge1xyXG4gICAgY29uc3QgY2xlYXJWYWx1ZSA9IHRoaXMudmFsdWUoKTtcclxuICAgIHRoaXMudmFsdWUuc2V0KCcnKTtcclxuICAgIHRoaXMudmFsdWVDaGFuZ2UubmV4dCh0aGlzLnZhbHVlKCkpO1xyXG4gICAgdGhpcy5pbnB1dFJlZigpLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcclxuICAgIHRoaXMuY2xlYXJFbWl0LmVtaXQoY2xlYXJWYWx1ZSk7XHJcbiAgfVxyXG5cclxuICBzZXRJbmhlcml0ZWRWYWx1ZSgpIHtcclxuICAgIGlmICghdGhpcy5pbnB1dEdyb3VwKSByZXR1cm47XHJcbiAgICBpZiAoIVhJc1VuZGVmaW5lZCh0aGlzLmlucHV0R3JvdXAuc2l6ZSgpKSkge1xyXG4gICAgICB0aGlzLmdyb3VwU2l6ZS5zZXQodGhpcy5pbnB1dEdyb3VwLnNpemUoKSEpO1xyXG4gICAgfVxyXG4gICAgaWYgKCFYSXNVbmRlZmluZWQodGhpcy5pbnB1dEdyb3VwLmJvcmRlcmVkKCkpKSB7XHJcbiAgICAgIHRoaXMuZ3JvdXBCb3JkZXJlZC5zZXQodGhpcy5pbnB1dEdyb3VwLmJvcmRlcmVkKCkhKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGlucHV0Rm9jdXModHlwZTogJ2ZvY3VzJyB8ICdzZWxlY3QnIHwgJ2JlZm9yZScgfCAnYWZ0ZXInID0gJ2FmdGVyJykge1xyXG4gICAgdGhpcy5pbnB1dFJlZigpLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcclxuICAgIGlmICghdGhpcy52YWx1ZSgpKSByZXR1cm47XHJcbiAgICBpZiAodHlwZSA9PT0gJ2FmdGVyJykge1xyXG4gICAgICB0aGlzLmlucHV0UmVmKCkubmF0aXZlRWxlbWVudC5zZXRTZWxlY3Rpb25SYW5nZSh0aGlzLnZhbHVlKCkubGVuZ3RoLCB0aGlzLnZhbHVlKCkubGVuZ3RoKTtcclxuICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ2JlZm9yZScpIHtcclxuICAgICAgdGhpcy5pbnB1dFJlZigpLm5hdGl2ZUVsZW1lbnQuc2V0U2VsZWN0aW9uUmFuZ2UoMCwgMCk7XHJcbiAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdzZWxlY3QnKSB7XHJcbiAgICAgIHRoaXMuaW5wdXRSZWYoKS5uYXRpdmVFbGVtZW50LnNldFNlbGVjdGlvblJhbmdlKDAsIHRoaXMudmFsdWUoKS5sZW5ndGgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZm9ybUNvbnRyb2xDaGFuZ2VzKCkge31cclxufVxyXG4iLCI8ZGl2XHJcbiAgI2lucHV0RWxlbWVudFxyXG4gIGNsYXNzPVwieC1pbnB1dFwiXHJcbiAgW2NsYXNzLngtZmxleF09XCJqdXN0aWZ5KCkgfHwgYWxpZ24oKSB8fCBkaXJlY3Rpb24oKVwiXHJcbiAgW2NsYXNzLngtZGlzYWJsZWRdPVwiZGlzYWJsZWRDb21wdXRlZCgpXCJcclxuICBbY2xhc3MueC1yZXF1aXJlZF09XCJyZXF1aXJlZElzRW1wdHkoKVwiXHJcbiAgW2NsYXNzLngtaW52YWxpZF09XCJpbnZhbGlkKClcIlxyXG4gIFtjbGFzcy54LWNsZWFyYWJsZV09XCJjbGVhcmFibGUoKVwiXHJcbiAgW2NsYXNzLngtY2xlYXItc2hvd109XCJjbGVhclNob3coKVwiXHJcbiAgW2NsYXNzLngtaW5wdXQtaWNvbl09XCJnZXRJY29uKClcIlxyXG4gIFtjbGFzcy54LWlucHV0LWFjdGl2ZV09XCJhY3RpdmUoKVwiXHJcbiAgW2NsYXNzLngtaW5wdXQtZm9jdXNdPVwiZm9jdXNlZCgpXCJcclxuICBbY2xhc3MueC1pbnB1dC1wb2ludGVyXT1cInBvaW50ZXIoKVwiXHJcbiAgW2NsYXNzLngtaW5wdXQtYm9yZGVyZWRdPVwiYm9yZGVyZWQoKVwiXHJcbiAgW2NsYXNzLngtaW5wdXQtaWNvbi1sZWZ0XT1cImdldEljb25MYXlvdXRMZWZ0KClcIlxyXG4gIFtjbGFzcy54LWlucHV0LWljb24tcmlnaHRdPVwiZ2V0SWNvbkxheW91dFJpZ2h0KClcIlxyXG4gIFtjbGFzcy54LWlucHV0LWFmdGVyXT1cImFmdGVyKClcIlxyXG4gIFtjbGFzcy54LWlucHV0LWJlZm9yZV09XCJiZWZvcmUoKVwiXHJcbiAgW2NsYXNzLngtaW5wdXQtYWZ0ZXItdGVtcGxhdGVdPVwiYWZ0ZXJJc1RlbXBsYXRlKClcIlxyXG4gIFtjbGFzcy54LWlucHV0LWJlZm9yZS10ZW1wbGF0ZV09XCJiZWZvcmVJc1RlbXBsYXRlKClcIlxyXG4gIFtjbGFzcy54LWlucHV0LXZhbHVlLXRlbXBsYXRlXT1cInZhbHVlVHBsKClcIlxyXG4gIFtuZ0NsYXNzXT1cImNsYXNzTWFwKClcIlxyXG4+XHJcbiAgQGlmIChsYWJlbCgpKSB7XHJcbiAgICA8bGFiZWxcclxuICAgICAgW2NsYXNzLngtaW5wdXQtbGFiZWwtcmVxdWlyZWRdPVwicmVxdWlyZWRDb21wdXRlZCgpXCJcclxuICAgICAgW3N0eWxlLndpZHRoXT1cImxhYmVsV2lkdGgoKVwiXHJcbiAgICAgIFtuZ0NsYXNzXT1cImxhYmVsTWFwU2lnbmFsKClcIlxyXG4gICAgICA+e3sgbGFiZWwoKSB9fTwvbGFiZWxcclxuICAgID5cclxuICB9XHJcbiAgPGRpdiBjbGFzcz1cIngtaW5wdXQtcm93XCI+XHJcbiAgICBAaWYgKGJlZm9yZSgpKSB7XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ4LWlucHV0LXJvdy1iZWZvcmVcIiBbY2xhc3MueC1pbnB1dC1yb3ctYmVmb3JlLXRlbXBsYXRlXT1cImJlZm9yZUlzVGVtcGxhdGUoKVwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKnhPdXRsZXQ9XCJiZWZvcmUoKVwiPnt7IGJlZm9yZSgpIH19PC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgfVxyXG4gICAgPGRpdiBjbGFzcz1cIngtaW5wdXQtaW5wdXRcIiAobW91c2VlbnRlcik9XCJ4TW91c2VlbnRlci5lbWl0KCRldmVudClcIiAobW91c2VsZWF2ZSk9XCJ4TW91c2VsZWF2ZS5lbWl0KCRldmVudClcIj5cclxuICAgICAgQGlmICh2YWx1ZVRwbCgpKSB7XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgI2lucHV0VmFsdWVSZWZcclxuICAgICAgICAgIGNsYXNzPVwieC1pbnB1dC12YWx1ZS10ZW1wbGF0ZS12YWx1ZVwiXHJcbiAgICAgICAgICBbc3R5bGUubGVmdF09XCJwYWRkaW5nTGVmdCgpXCJcclxuICAgICAgICAgIFtzdHlsZS5wYWRkaW5nLWxlZnRdPVwiMFwiXHJcbiAgICAgICAgICBbc3R5bGUucGFkZGluZy1yaWdodF09XCIwXCJcclxuICAgICAgICAgIFtzdHlsZS53aWR0aF09XCJnZXRUZW1wbGF0ZVdpZHRoKClcIlxyXG4gICAgICAgICAgKGNsaWNrKT1cInhDbGljay5lbWl0KCRldmVudClcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ2YWx1ZVRwbCgpITsgY29udGV4dDogdmFsdWVUcGxDb250ZXh0KCkgPyB2YWx1ZVRwbENvbnRleHQoKSA6IHsgJHZhbHVlOiB2YWx1ZSgpIH1cIlxyXG4gICAgICAgICAgPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICB9XHJcbiAgICAgIDxpbnB1dFxyXG4gICAgICAgICNpbnB1dFJlZlxyXG4gICAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiXHJcbiAgICAgICAgW2NsYXNzLngtaW5wdXQtaGFzLXZhbHVlLXRlbXBsYXRlXT1cInZhbHVlVHBsKClcIlxyXG4gICAgICAgIFtuZ1N0eWxlXT1cImlucHV0U3R5bGUoKVwiXHJcbiAgICAgICAgW3R5cGVdPVwidHlwZSgpXCJcclxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXIoKVwiXHJcbiAgICAgICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkQ29tcHV0ZWQoKVwiXHJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkQ29tcHV0ZWQoKVwiXHJcbiAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5KClcIlxyXG4gICAgICAgIFttYXhsZW5ndGhdPVwibWF4bGVuZ3RoKClcIlxyXG4gICAgICAgIFttaW5dPVwibWluKClcIlxyXG4gICAgICAgIFttYXhdPVwibWF4KClcIlxyXG4gICAgICAgIFsobmdNb2RlbCldPVwidmFsdWVcIlxyXG4gICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInZhbHVlQ2hhbmdlLm5leHQoJGV2ZW50KVwiXHJcbiAgICAgICAgW3N0eWxlLnBhZGRpbmctbGVmdF09XCJwYWRkaW5nTGVmdCgpXCJcclxuICAgICAgICBbc3R5bGUucGFkZGluZy1yaWdodF09XCJwYWRkaW5nUmlnaHQoKVwiXHJcbiAgICAgICAgKGZvY3VzKT1cInhGb2N1cy5lbWl0KCRldmVudClcIlxyXG4gICAgICAgIChibHVyKT1cInhCbHVyLmVtaXQoJGV2ZW50KVwiXHJcbiAgICAgICAgKGtleWRvd24pPVwiZm9ybUNvbnRyb2xWYWxpZGF0b3IoKTsgeEtleWRvd24uZW1pdCgkZXZlbnQpXCJcclxuICAgICAgICAoY2xpY2spPVwieENsaWNrLmVtaXQoJGV2ZW50KVwiXHJcbiAgICAgICAgKGNvbXBvc2l0aW9uc3RhcnQpPVwieENvbXBvc2l0aW9uLmVtaXQoJGV2ZW50KVwiXHJcbiAgICAgICAgKGNvbXBvc2l0aW9uZW5kKT1cInhDb21wb3NpdGlvbi5lbWl0KCRldmVudClcIlxyXG4gICAgICAvPlxyXG4gICAgICBAaWYgKGNsZWFyU2hvdygpICYmICFpY29uU3BpbigpKSB7XHJcbiAgICAgICAgPHgtaWNvbiBjbGFzcz1cIngtaW5wdXQtY2xlYXJcIiB0eXBlPVwiZnRvLXhcIiAoY2xpY2spPVwib25DbGVhcigpXCI+PC94LWljb24+XHJcbiAgICAgIH1cclxuICAgICAgQGlmIChpY29uKCkgJiYgKCghY2xlYXJTaG93KCkgJiYgZ2V0SWNvbkxheW91dFJpZ2h0KCkpIHx8IGdldEljb25MYXlvdXRMZWZ0KCkgfHwgaWNvblNwaW4oKSkpIHtcclxuICAgICAgICA8eC1pY29uIFt0eXBlXT1cImljb24oKVwiIFtzcGluXT1cImljb25TcGluKClcIiAoY2xpY2spPVwieENsaWNrLmVtaXQoJGV2ZW50KVwiPjwveC1pY29uPlxyXG4gICAgICB9XHJcbiAgICAgIEBpZiAobWF4bGVuZ3RoKCkgJiYgbGVuZ3RoVG90YWwoKSkge1xyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwieC1pbnB1dC1tYXgtbGVuZ3RoXCIgW3N0eWxlLndpZHRoXT1cImdldE1heExlbmd0aFdpZHRoKClcIj57eyBsZW5ndGhUb3RhbCgpIH19PC9zcGFuPlxyXG4gICAgICB9XHJcbiAgICAgIEBpZiAoaW52YWxpZCgpKSB7XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ4LWlucHV0LWVycm9yLW1lc3NhZ2VcIj57eyBpbnZhbGlkTWVzc2FnZSgpIH19PC9zcGFuPlxyXG4gICAgICB9XHJcbiAgICAgIEBpZiAocmVxdWlyZWRJc0VtcHR5KCkgfHwgaW52YWxpZCgpKSB7XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIngtYm9yZGVyLWVycm9yIHgtdG9wLWxlZnRcIj48L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwieC1ib3JkZXItZXJyb3IgeC10b3AtcmlnaHRcIj48L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwieC1ib3JkZXItZXJyb3IgeC1ib3R0b20tbGVmdFwiPjwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ4LWJvcmRlci1lcnJvciB4LWJvdHRvbS1yaWdodFwiPjwvZGl2PlxyXG4gICAgICB9XHJcbiAgICA8L2Rpdj5cclxuICAgIEBpZiAoYWZ0ZXIoKSkge1xyXG4gICAgICA8ZGl2IGNsYXNzPVwieC1pbnB1dC1yb3ctYWZ0ZXJcIiBbY2xhc3MueC1pbnB1dC1yb3ctYWZ0ZXItdGVtcGxhdGVdPVwiYWZ0ZXJJc1RlbXBsYXRlKClcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICp4T3V0bGV0PVwiYWZ0ZXIoKVwiPnt7IGFmdGVyKCkgfX08L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9kaXY+XHJcbiAgICB9XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
@@ -260,6 +260,7 @@ class XControlComponent extends XControlProperty {
|
|
|
260
260
|
.valueChanges.pipe(takeUntil(this._unSubject))
|
|
261
261
|
.subscribe((x) => {
|
|
262
262
|
this.value.set(x);
|
|
263
|
+
this.componentRef?.instance.writeValue(x);
|
|
263
264
|
});
|
|
264
265
|
this.option().setValidators = () => this.setValidators();
|
|
265
266
|
this.form.formGroup().addControl(this.option().id, this.formControl());
|