monkey-front-components 0.0.665 → 0.0.667

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.
@@ -2,7 +2,7 @@ import { Directive, EventEmitter, Input, Output } from '@angular/core';
2
2
  import { Validators } from '@angular/forms';
3
3
  import { MonkeyUtils } from 'monkey-style-guide';
4
4
  import { Subject } from 'rxjs';
5
- import { takeUntil } from 'rxjs/operators';
5
+ import { debounceTime, takeUntil } from 'rxjs/operators';
6
6
  import { BaseComponent } from './base-component';
7
7
  import { validators } from './base-validators';
8
8
  import * as i0 from "@angular/core";
@@ -17,6 +17,8 @@ export class BaseDynamicArray extends BaseComponent {
17
17
  this.fields = [];
18
18
  this.qtd = 1;
19
19
  this.disabled = false;
20
+ this.enableListenerFormChange = false;
21
+ this.onFormChange = new EventEmitter();
20
22
  this._form = null;
21
23
  // eslint-disable-next-line object-curly-newline
22
24
  this._plusValidations = [];
@@ -186,6 +188,14 @@ export class BaseDynamicArray extends BaseComponent {
186
188
  this.onHandleUpdateForm.subscribe(() => {
187
189
  this.fillValues();
188
190
  });
191
+ if (this.enableListenerFormChange) {
192
+ this._form.markAsUntouched();
193
+ this._form.valueChanges
194
+ .pipe(debounceTime(800), takeUntil(this.__unsubscribeAll))
195
+ .subscribe(() => {
196
+ this.onFormChange.next(this._form);
197
+ });
198
+ }
189
199
  }
190
200
  ngOnChanges() {
191
201
  if (!this._form) {
@@ -195,7 +205,7 @@ export class BaseDynamicArray extends BaseComponent {
195
205
  }
196
206
  }
197
207
  BaseDynamicArray.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BaseDynamicArray, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Directive });
198
- BaseDynamicArray.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.1", type: BaseDynamicArray, selector: "[baseDynamicArray]", inputs: { onHandleSubmit: "onHandleSubmit", onHandleUpdateForm: "onHandleUpdateForm", self: "self", fields: "fields", data: "data", qtd: "qtd", disabled: "disabled" }, outputs: { onHandleSubmitFormReady: "onHandleSubmitFormReady" }, usesInheritance: true, usesOnChanges: true, ngImport: i0 });
208
+ BaseDynamicArray.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.1", type: BaseDynamicArray, selector: "[baseDynamicArray]", inputs: { onHandleSubmit: "onHandleSubmit", onHandleUpdateForm: "onHandleUpdateForm", self: "self", fields: "fields", data: "data", qtd: "qtd", disabled: "disabled", enableListenerFormChange: "enableListenerFormChange" }, outputs: { onHandleSubmitFormReady: "onHandleSubmitFormReady", onFormChange: "onFormChange" }, usesInheritance: true, usesOnChanges: true, ngImport: i0 });
199
209
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BaseDynamicArray, decorators: [{
200
210
  type: Directive,
201
211
  args: [{
@@ -217,5 +227,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
217
227
  type: Input
218
228
  }], disabled: [{
219
229
  type: Input
230
+ }], enableListenerFormChange: [{
231
+ type: Input
232
+ }], onFormChange: [{
233
+ type: Output
220
234
  }] } });
221
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1keW5hbWljLWFycmF5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW9ua2V5LWZyb250LWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2Jhc2UvYmFzZS1keW5hbWljLWFycmF5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBcUMsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0UsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7OztBQUsvQyxNQUFNLE9BQWdCLGdCQUFpQixTQUFRLGFBQWE7SUF3QjFELFlBQW9CLEVBQWU7UUFDakMsS0FBSyxFQUFFLENBQUM7UUFEVSxPQUFFLEdBQUYsRUFBRSxDQUFhO1FBdkIxQixtQkFBYyxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFFekMsdUJBQWtCLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUU1Qyw0QkFBdUIsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUl0RSxXQUFNLEdBQXNCLEVBQUUsQ0FBQztRQUkvQixRQUFHLEdBQVcsQ0FBQyxDQUFDO1FBRWhCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFFbkMsVUFBSyxHQUFxQixJQUFJLENBQUM7UUFFL0IsZ0RBQWdEO1FBQ2hELHFCQUFnQixHQUFVLEVBQUUsQ0FBQztRQUVyQix1QkFBa0IsR0FB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QUFVLEVBQUUsSUFBSSxDQUFDLElBQVcsQ0FBQyxDQUFDO2dCQUVuQyxPQUFPLElBQUksQ0FBQztZQUNkLENBQUMsQ0FBQyxDQUFDO1NBQ047SUFDSCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQzlCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUVsQixJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNyQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDcEIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ2YsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7U0FDL0I7UUFDRCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDcEIsQ0FBQzs7NkdBM05tQixnQkFBZ0I7aUdBQWhCLGdCQUFnQjsyRkFBaEIsZ0JBQWdCO2tCQUhyQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxvQkFBb0I7aUJBQy9CO2tHQUVVLGNBQWM7c0JBQXRCLEtBQUs7Z0JBRUcsa0JBQWtCO3NCQUExQixLQUFLO2dCQUVJLHVCQUF1QjtzQkFBaEMsTUFBTTtnQkFFRSxJQUFJO3NCQUFaLEtBQUs7Z0JBRUcsTUFBTTtzQkFBZCxLQUFLO2dCQUVHLElBQUk7c0JBQVosS0FBSztnQkFFRyxHQUFHO3NCQUFYLEtBQUs7Z0JBRUcsUUFBUTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPbkNoYW5nZXMsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQXJyYXksIEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1vbmtleVV0aWxzIH0gZnJvbSAnbW9ua2V5LXN0eWxlLWd1aWRlJztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IE1FQ1hGaWVsZENvbmZpZywgTUVDWEZpZWxkQ29uZmlnVmFsaWRhdG9yIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7IEJhc2VDb21wb25lbnQgfSBmcm9tICcuL2Jhc2UtY29tcG9uZW50JztcclxuaW1wb3J0IHsgdmFsaWRhdG9ycyB9IGZyb20gJy4vYmFzZS12YWxpZGF0b3JzJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW2Jhc2VEeW5hbWljQXJyYXldJ1xyXG59KVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZUR5bmFtaWNBcnJheSBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XHJcbiAgQElucHV0KCkgb25IYW5kbGVTdWJtaXQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgQElucHV0KCkgb25IYW5kbGVVcGRhdGVGb3JtID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gIEBPdXRwdXQoKSBvbkhhbmRsZVN1Ym1pdEZvcm1SZWFkeTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgQElucHV0KCkgc2VsZjogYW55O1xyXG5cclxuICBASW5wdXQoKSBmaWVsZHM6IE1FQ1hGaWVsZENvbmZpZ1tdID0gW107XHJcblxyXG4gIEBJbnB1dCgpIGRhdGE6IGFueTtcclxuXHJcbiAgQElucHV0KCkgcXRkOiBudW1iZXIgPSAxO1xyXG5cclxuICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBfZm9ybTogRm9ybUdyb3VwIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBvYmplY3QtY3VybHktbmV3bGluZVxyXG4gIF9wbHVzVmFsaWRhdGlvbnM6IGFueVtdID0gW107XHJcblxyXG4gIHByaXZhdGUgY2hhbmdlc1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3QoKTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIpIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhbmRsZUludGVybmFsUGx1c1ZhbGlkYXRpb24oXHJcbiAgICBtYWluRmllbGQ6IGFueSxcclxuICAgIGRhdGE6IGFueVxyXG4gICkge1xyXG4gICAgY29uc3QgeyBvcGVyYXRvciwgZmllbGQsIHZhbHVlIH0gPSBtYWluRmllbGQ7XHJcbiAgICBjb25zdCB2YWxpZGF0b3JzOiBhbnkgPSB7XHJcbiAgICAgIGU6ICh2YWwxOiBhbnksIHZhbDI6IHN0cmluZykgPT4geyByZXR1cm4gdmFsMSA9PT0gdmFsMjsgfSxcclxuICAgICAgbHQ6ICh2YWwxOiBhbnksIHZhbDI6IHN0cmluZykgPT4geyByZXR1cm4gdmFsMSA8IHZhbDI7IH0sXHJcbiAgICAgIGd0OiAodmFsMTogYW55LCB2YWwyOiBzdHJpbmcpID0+IHsgcmV0dXJuIHZhbDEgPiB2YWwyOyB9XHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiB2YWxpZGF0b3JzW29wZXJhdG9yXShkYXRhPy5bZmllbGRdIHx8IGRhdGEsIHZhbHVlKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgbWFrZUludGVybmFsUGx1c1ZhbGlkYXRpb24oXHJcbiAgICBkYXRhOiBhbnksXHJcbiAgICBzb3VyY2VGaWVsZDogc3RyaW5nLFxyXG4gICAgc2V0dGluZ3M6IGFueSxcclxuICAgIHJvd0luZGV4OiBudW1iZXJcclxuICApIHtcclxuICAgIGNvbnN0IGNoYW5nZUZpZWxkcyA9IChzaG93OiBib29sZWFuKSA9PiB7XHJcbiAgICAgIGNvbnN0IHNhdmVkID0gWy4uLnRoaXMuZmllbGRzXTtcclxuXHJcbiAgICAgIHNhdmVkLm1hcCgodmFsKSA9PiB7XHJcbiAgICAgICAgY29uc3QgdmFsU2F2ZWQgPSB7XHJcbiAgICAgICAgICAuLi52YWxcclxuICAgICAgICB9O1xyXG4gICAgICAgIGlmICh2YWwubmFtZSA9PT0gc291cmNlRmllbGQpIHtcclxuICAgICAgICAgIHRoaXMuX3BsdXNWYWxpZGF0aW9uc1tyb3dJbmRleF0gPSB7XHJcbiAgICAgICAgICAgIFtzb3VyY2VGaWVsZF06IHtcclxuICAgICAgICAgICAgICAuLi52YWxTYXZlZCxcclxuICAgICAgICAgICAgICBhbHdheXNTaG93OiBzaG93XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH07XHJcbiAgICAgICAgICB0aGlzLmNyZWF0ZU9uZUNvbnRyb2wodmFsLm5hbWUsIHRoaXMuZm9ybVZhbHVlcz8uY29udHJvbHNbcm93SW5kZXhdLCBzaG93KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5fcGx1c1ZhbGlkYXRpb25zW3Jvd0luZGV4XSA9IHtcclxuICAgICAgICAgICAgLi4udmFsU2F2ZWRcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICB9KTtcclxuICAgIH07XHJcblxyXG4gICAgY29uc3QgdmFsaWRhdGVkID0gdGhpcy5oYW5kbGVJbnRlcm5hbFBsdXNWYWxpZGF0aW9uKHNldHRpbmdzLCBkYXRhKTtcclxuICAgIGNoYW5nZUZpZWxkcyh2YWxpZGF0ZWQpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVPbmVDb250cm9sKGZpZWxkTmFtZTogc3RyaW5nLCBjdHJsOiBhbnksIGNyZWF0ZSA9IHRydWUpIHtcclxuICAgIGNvbnN0IHsgZmllbGRzIH0gPSB0aGlzO1xyXG4gICAgaWYgKCFmaWVsZHMpIHJldHVybjtcclxuXHJcbiAgICBmaWVsZHMuZm9yRWFjaCgoZmllbGQ6IE1FQ1hGaWVsZENvbmZpZykgPT4ge1xyXG4gICAgICBjb25zdCB7IGZpZWxkVHlwZSwgdmFsaWRhdGlvbnMsIG5hbWUsIGRpc2FibGVkIH0gPSBmaWVsZDtcclxuICAgICAgaWYgKG5hbWUgIT09IGZpZWxkTmFtZSkgcmV0dXJuO1xyXG4gICAgICBsZXQgeyB2YWx1ZSB9ID0gZmllbGQ7XHJcbiAgICAgIGlmIChmaWVsZFR5cGUgPT09ICdidXR0b24nKSByZXR1cm47XHJcbiAgICAgIGlmIChmaWVsZFR5cGUgPT09ICdyYWRpb2J1dHRvbicgfHwgZmllbGRUeXBlID09PSAnY2hlY2tib3gnIHx8IGZpZWxkVHlwZSA9PT0gJ3NlbGVjdCcpIHtcclxuICAgICAgICB2YWx1ZSA9ICcnO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChjcmVhdGUpIHtcclxuICAgICAgICBjb25zdCBjb250cm9sID0gdGhpcy5mYi5jb250cm9sKHZhbHVlLCB0aGlzLmJpbmRWYWxpZGF0aW9ucyh2YWxpZGF0aW9ucyB8fCBbXSkpO1xyXG4gICAgICAgIGlmIChkaXNhYmxlZCB8fCB0aGlzLmRpc2FibGVkKSBjb250cm9sLmRpc2FibGUoKTtcclxuICAgICAgICBjdHJsLmFkZENvbnRyb2wobmFtZSwgY29udHJvbCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY3RybC5yZW1vdmVDb250cm9sKG5hbWUpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlQ29udHJvbChkYXRhPzogYW55KSB7XHJcbiAgICBjb25zdCB7IGZpZWxkcyB9ID0gdGhpcztcclxuICAgIGlmICghZmllbGRzKSByZXR1cm4gbnVsbDtcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBvYmplY3QtY3VybHktbmV3bGluZVxyXG4gICAgY29uc3QgZ3JvdXAgPSB0aGlzLmZiLmdyb3VwKHt9KTtcclxuICAgIGZpZWxkcy5mb3JFYWNoKChmaWVsZDogTUVDWEZpZWxkQ29uZmlnKSA9PiB7XHJcbiAgICAgIGNvbnN0IHsgZmllbGRUeXBlLCB2YWxpZGF0aW9ucywgbmFtZSwgZGlzYWJsZWQsIGFsd2F5c1Nob3cgfSA9IGZpZWxkO1xyXG4gICAgICBsZXQgeyB2YWx1ZSB9ID0gZmllbGQ7XHJcbiAgICAgIGlmIChmaWVsZC5hbHdheXNTaG93UGx1c1ZhbGlkYXRpb24pIHtcclxuICAgICAgICBpZiAoIXRoaXMuaGFuZGxlSW50ZXJuYWxQbHVzVmFsaWRhdGlvbihmaWVsZC5hbHdheXNTaG93UGx1c1ZhbGlkYXRpb24sIGRhdGEpKSByZXR1cm47XHJcbiAgICAgIH0gZWxzZSBpZiAoIWFsd2F5c1Nob3cpIHJldHVybjtcclxuICAgICAgaWYgKGZpZWxkVHlwZSA9PT0gJ2J1dHRvbicpIHJldHVybjtcclxuICAgICAgaWYgKGZpZWxkVHlwZSA9PT0gJ3JhZGlvYnV0dG9uJyB8fCBmaWVsZFR5cGUgPT09ICdjaGVja2JveCcgfHwgZmllbGRUeXBlID09PSAnc2VsZWN0Jykge1xyXG4gICAgICAgIHZhbHVlID0gJyc7XHJcbiAgICAgIH1cclxuICAgICAgY29uc3QgY29udHJvbCA9IHRoaXMuZmIuY29udHJvbCh2YWx1ZSwgdGhpcy5iaW5kVmFsaWRhdGlvbnModmFsaWRhdGlvbnMgfHwgW10pKTtcclxuICAgICAgaWYgKGRpc2FibGVkIHx8IHRoaXMuZGlzYWJsZWQpIGNvbnRyb2wuZGlzYWJsZSgpO1xyXG4gICAgICBncm91cC5hZGRDb250cm9sKG5hbWUgYXMgc3RyaW5nLCBjb250cm9sKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiBncm91cDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYmluZFZhbGlkYXRpb25zKHZhbGlkYXRpb25zOiBNRUNYRmllbGRDb25maWdWYWxpZGF0b3JbXSkge1xyXG4gICAgaWYgKHZhbGlkYXRpb25zLmxlbmd0aCA+IDApIHtcclxuICAgICAgY29uc3QgdmFsaWRMaXN0OiBhbnlbXSA9IFtdO1xyXG4gICAgICB2YWxpZGF0aW9ucy5mb3JFYWNoKCh2YWxpZDogTUVDWEZpZWxkQ29uZmlnVmFsaWRhdG9yKSA9PiB7XHJcbiAgICAgICAgY29uc3QgdmFsaWRhdGVkID0gdmFsaWQucGFyYW1cclxuICAgICAgICAgID8gdmFsaWRhdG9yc1t2YWxpZC5uYW1lXSh2YWxpZC5wYXJhbSlcclxuICAgICAgICAgIDogdmFsaWRhdG9yc1t2YWxpZC5uYW1lXTtcclxuICAgICAgICB2YWxpZExpc3QucHVzaCh2YWxpZGF0ZWQpO1xyXG4gICAgICB9KTtcclxuICAgICAgcmV0dXJuIFZhbGlkYXRvcnMuY29tcG9zZSh2YWxpZExpc3QpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGJ1aWxkRm9ybSgpOiBGb3JtR3JvdXAge1xyXG4gICAgY29uc3QgZm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICBmaWVsZHM6IHRoaXMuZmIuYXJyYXkoW10pXHJcbiAgICB9KTtcclxuXHJcbiAgICBmb3JtPy5jb250cm9scy5maWVsZHM/LnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKF8pID0+IHtcclxuICAgICAgdGhpcy53YXRjaEZvckNoYW5nZXMoKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiBmb3JtO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB3YXRjaEZvckNoYW5nZXMoKSB7XHJcbiAgICBjb25zdCB7IGZpZWxkcywgY2hhbmdlc1Vuc3Vic2NyaWJlIH0gPSB0aGlzO1xyXG4gICAgY2hhbmdlc1Vuc3Vic2NyaWJlLm5leHQoKTtcclxuXHJcbiAgICB0aGlzLmZvcm1WYWx1ZXM/LmNvbnRyb2xzPy5tYXAoKGNvbnRyb2w6IGFueSwgaW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgICBmaWVsZHMuZm9yRWFjaCgoZmllbGRDb25maWc6IE1FQ1hGaWVsZENvbmZpZykgPT4ge1xyXG4gICAgICAgIGNvbnN0IHsgbmFtZSwgYWx3YXlzU2hvd1BsdXNWYWxpZGF0aW9uIH0gPSBmaWVsZENvbmZpZztcclxuICAgICAgICBpZiAoIWFsd2F5c1Nob3dQbHVzVmFsaWRhdGlvbikgcmV0dXJuO1xyXG4gICAgICAgIGNvbnN0IHsgZmllbGQgfSA9IGFsd2F5c1Nob3dQbHVzVmFsaWRhdGlvbjtcclxuICAgICAgICBpZiAoZmllbGQpIHtcclxuICAgICAgICAgIGNvbnRyb2wuY29udHJvbHNbZmllbGRdPy52YWx1ZUNoYW5nZXMucGlwZShcclxuICAgICAgICAgICAgdGFrZVVudGlsKGNoYW5nZXNVbnN1YnNjcmliZSkpLnN1YnNjcmliZSgoXzogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMubWFrZUludGVybmFsUGx1c1ZhbGlkYXRpb24oXHJcbiAgICAgICAgICAgICAgXyxcclxuICAgICAgICAgICAgICBuYW1lIGFzIHN0cmluZyxcclxuICAgICAgICAgICAgICBhbHdheXNTaG93UGx1c1ZhbGlkYXRpb24sXHJcbiAgICAgICAgICAgICAgaW5kZXhcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZm9ybUJhc2UgPSAoKSA9PiB7XHJcbiAgICAvLyByZXR1cm4gdGhpcy5mYi5ncm91cCh0aGlzLmNyZWF0ZUNvbnRyb2woKSk7XHJcbiAgICByZXR1cm4gdGhpcy5jcmVhdGVDb250cm9sKCk7XHJcbiAgfTtcclxuXHJcbiAgcHVibGljIGdldCBmb3JtVmFsdWVzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2Zvcm0gPyAodGhpcy5fZm9ybS5nZXQoJ2ZpZWxkcycpIGFzIEZvcm1BcnJheSkgOiBudWxsO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGZpbGxWYWx1ZXMoKSB7XHJcbiAgICBjb25zdCB7IGRhdGEsIHF0ZCB9ID0gdGhpcztcclxuICAgIGlmICgoIXRoaXMuX2Zvcm0pICYmIHF0ZCkgcmV0dXJuO1xyXG4gICAgaWYgKHF0ZCA+IDApIHtcclxuICAgICAgQXJyYXk8YW55PihxdGQpXHJcbiAgICAgICAgLmZpbGwobnVsbClcclxuICAgICAgICAubWFwKChfLCBpbmRleCkgPT4ge1xyXG4gICAgICAgICAgbGV0IGZvcm0gPSB0aGlzLmNyZWF0ZUNvbnRyb2woKTtcclxuICAgICAgICAgIGlmIChkYXRhICYmIGRhdGFbaW5kZXhdKSB7XHJcbiAgICAgICAgICAgIGZvcm0gPSB0aGlzLmNyZWF0ZUNvbnRyb2woZGF0YVtpbmRleF0pO1xyXG4gICAgICAgICAgICBjb25zdCBoYW5kbGVkRGF0YSA9IGRhdGFbaW5kZXhdO1xyXG4gICAgICAgICAgICBPYmplY3QuZW50cmllcyhoYW5kbGVkRGF0YSkuZm9yRWFjaCgoW2tleSwgdmFsdWVdKSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKE1vbmtleVV0aWxzLnBlcnNpc3ROdWxsRW1wdHlVbmRlZmluZWQodmFsdWUpICYmIGZvcm0/LmNvbnRyb2xzW2tleV0pIHtcclxuICAgICAgICAgICAgICAgIGZvcm0/LmNvbnRyb2xzW2tleV0uc2V0VmFsdWUodmFsdWUpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLmZvcm1WYWx1ZXM/LnB1c2goZm9ybSBhcyBhbnkpO1xyXG5cclxuICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLl9mb3JtID0gdGhpcy5idWlsZEZvcm0oKTtcclxuICAgIHRoaXMuZmlsbFZhbHVlcygpO1xyXG5cclxuICAgIHRoaXMub25IYW5kbGVVcGRhdGVGb3JtLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIHRoaXMuZmlsbFZhbHVlcygpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcygpIHtcclxuICAgIGlmICghdGhpcy5fZm9ybSkge1xyXG4gICAgICB0aGlzLl9mb3JtID0gdGhpcy5idWlsZEZvcm0oKTtcclxuICAgIH1cclxuICAgIHRoaXMuZmlsbFZhbHVlcygpO1xyXG4gIH1cclxufVxyXG4iXX0=
235
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1keW5hbWljLWFycmF5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW9ua2V5LWZyb250LWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2Jhc2UvYmFzZS1keW5hbWljLWFycmF5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBcUMsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0UsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7QUFLL0MsTUFBTSxPQUFnQixnQkFBaUIsU0FBUSxhQUFhO0lBNEIxRCxZQUFvQixFQUFlO1FBQ2pDLEtBQUssRUFBRSxDQUFDO1FBRFUsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQTNCMUIsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBRXpDLHVCQUFrQixHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFFNUMsNEJBQXVCLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7UUFJdEUsV0FBTSxHQUFzQixFQUFFLENBQUM7UUFJL0IsUUFBRyxHQUFXLENBQUMsQ0FBQztRQUVoQixhQUFRLEdBQVksS0FBSyxDQUFDO1FBRTFCLDZCQUF3QixHQUFHLEtBQUssQ0FBQztRQUVoQyxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFFakQsVUFB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R0FFVSxjQUFjO3NCQUF0QixLQUFLO2dCQUVHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFFSSx1QkFBdUI7c0JBQWhDLE1BQU07Z0JBRUUsSUFBSTtzQkFBWixLQUFLO2dCQUVHLE1BQU07c0JBQWQsS0FBSztnQkFFRyxJQUFJO3NCQUFaLEtBQUs7Z0JBRUcsR0FBRztzQkFBWCxLQUFLO2dCQUVHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUcsd0JBQXdCO3NCQUFoQyxLQUFLO2dCQUVJLFlBQVk7c0JBQXJCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUFycmF5LCBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBNb25rZXlVdGlscyB9IGZyb20gJ21vbmtleS1zdHlsZS1ndWlkZSc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IE1FQ1hGaWVsZENvbmZpZywgTUVDWEZpZWxkQ29uZmlnVmFsaWRhdG9yIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7IEJhc2VDb21wb25lbnQgfSBmcm9tICcuL2Jhc2UtY29tcG9uZW50JztcclxuaW1wb3J0IHsgdmFsaWRhdG9ycyB9IGZyb20gJy4vYmFzZS12YWxpZGF0b3JzJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW2Jhc2VEeW5hbWljQXJyYXldJ1xyXG59KVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZUR5bmFtaWNBcnJheSBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XHJcbiAgQElucHV0KCkgb25IYW5kbGVTdWJtaXQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgQElucHV0KCkgb25IYW5kbGVVcGRhdGVGb3JtID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gIEBPdXRwdXQoKSBvbkhhbmRsZVN1Ym1pdEZvcm1SZWFkeTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgQElucHV0KCkgc2VsZjogYW55O1xyXG5cclxuICBASW5wdXQoKSBmaWVsZHM6IE1FQ1hGaWVsZENvbmZpZ1tdID0gW107XHJcblxyXG4gIEBJbnB1dCgpIGRhdGE6IGFueTtcclxuXHJcbiAgQElucHV0KCkgcXRkOiBudW1iZXIgPSAxO1xyXG5cclxuICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKSBlbmFibGVMaXN0ZW5lckZvcm1DaGFuZ2UgPSBmYWxzZTtcclxuXHJcbiAgQE91dHB1dCgpIG9uRm9ybUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICBfZm9ybTogRm9ybUdyb3VwIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBvYmplY3QtY3VybHktbmV3bGluZVxyXG4gIF9wbHVzVmFsaWRhdGlvbnM6IGFueVtdID0gW107XHJcblxyXG4gIHByaXZhdGUgY2hhbmdlc1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3QoKTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIpIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhbmRsZUludGVybmFsUGx1c1ZhbGlkYXRpb24oXHJcbiAgICBtYWluRmllbGQ6IGFueSxcclxuICAgIGRhdGE6IGFueVxyXG4gICkge1xyXG4gICAgY29uc3QgeyBvcGVyYXRvciwgZmllbGQsIHZhbHVlIH0gPSBtYWluRmllbGQ7XHJcbiAgICBjb25zdCB2YWxpZGF0b3JzOiBhbnkgPSB7XHJcbiAgICAgIGU6ICh2YWwxOiBhbnksIHZhbDI6IHN0cmluZykgPT4geyByZXR1cm4gdmFsMSA9PT0gdmFsMjsgfSxcclxuICAgICAgbHQ6ICh2YWwxOiBhbnksIHZhbDI6IHN0cmluZykgPT4geyByZXR1cm4gdmFsMSA8IHZhbDI7IH0sXHJcbiAgICAgIGd0OiAodmFsMTogYW55LCB2YWwyOiBzdHJpbmcpID0+IHsgcmV0dXJuIHZhbDEgPiB2YWwyOyB9XHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiB2YWxpZGF0b3JzW29wZXJhdG9yXShkYXRhPy5bZmllbGRdIHx8IGRhdGEsIHZhbHVlKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgbWFrZUludGVybmFsUGx1c1ZhbGlkYXRpb24oXHJcbiAgICBkYXRhOiBhbnksXHJcbiAgICBzb3VyY2VGaWVsZDogc3RyaW5nLFxyXG4gICAgc2V0dGluZ3M6IGFueSxcclxuICAgIHJvd0luZGV4OiBudW1iZXJcclxuICApIHtcclxuICAgIGNvbnN0IGNoYW5nZUZpZWxkcyA9IChzaG93OiBib29sZWFuKSA9PiB7XHJcbiAgICAgIGNvbnN0IHNhdmVkID0gWy4uLnRoaXMuZmllbGRzXTtcclxuXHJcbiAgICAgIHNhdmVkLm1hcCgodmFsKSA9PiB7XHJcbiAgICAgICAgY29uc3QgdmFsU2F2ZWQgPSB7XHJcbiAgICAgICAgICAuLi52YWxcclxuICAgICAgICB9O1xyXG4gICAgICAgIGlmICh2YWwubmFtZSA9PT0gc291cmNlRmllbGQpIHtcclxuICAgICAgICAgIHRoaXMuX3BsdXNWYWxpZGF0aW9uc1tyb3dJbmRleF0gPSB7XHJcbiAgICAgICAgICAgIFtzb3VyY2VGaWVsZF06IHtcclxuICAgICAgICAgICAgICAuLi52YWxTYXZlZCxcclxuICAgICAgICAgICAgICBhbHdheXNTaG93OiBzaG93XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH07XHJcbiAgICAgICAgICB0aGlzLmNyZWF0ZU9uZUNvbnRyb2wodmFsLm5hbWUsIHRoaXMuZm9ybVZhbHVlcz8uY29udHJvbHNbcm93SW5kZXhdLCBzaG93KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5fcGx1c1ZhbGlkYXRpb25zW3Jvd0luZGV4XSA9IHtcclxuICAgICAgICAgICAgLi4udmFsU2F2ZWRcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICB9KTtcclxuICAgIH07XHJcblxyXG4gICAgY29uc3QgdmFsaWRhdGVkID0gdGhpcy5oYW5kbGVJbnRlcm5hbFBsdXNWYWxpZGF0aW9uKHNldHRpbmdzLCBkYXRhKTtcclxuICAgIGNoYW5nZUZpZWxkcyh2YWxpZGF0ZWQpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVPbmVDb250cm9sKGZpZWxkTmFtZTogc3RyaW5nLCBjdHJsOiBhbnksIGNyZWF0ZSA9IHRydWUpIHtcclxuICAgIGNvbnN0IHsgZmllbGRzIH0gPSB0aGlzO1xyXG4gICAgaWYgKCFmaWVsZHMpIHJldHVybjtcclxuXHJcbiAgICBmaWVsZHMuZm9yRWFjaCgoZmllbGQ6IE1FQ1hGaWVsZENvbmZpZykgPT4ge1xyXG4gICAgICBjb25zdCB7IGZpZWxkVHlwZSwgdmFsaWRhdGlvbnMsIG5hbWUsIGRpc2FibGVkIH0gPSBmaWVsZDtcclxuICAgICAgaWYgKG5hbWUgIT09IGZpZWxkTmFtZSkgcmV0dXJuO1xyXG4gICAgICBsZXQgeyB2YWx1ZSB9ID0gZmllbGQ7XHJcbiAgICAgIGlmIChmaWVsZFR5cGUgPT09ICdidXR0b24nKSByZXR1cm47XHJcbiAgICAgIGlmIChmaWVsZFR5cGUgPT09ICdyYWRpb2J1dHRvbicgfHwgZmllbGRUeXBlID09PSAnY2hlY2tib3gnIHx8IGZpZWxkVHlwZSA9PT0gJ3NlbGVjdCcpIHtcclxuICAgICAgICB2YWx1ZSA9ICcnO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChjcmVhdGUpIHtcclxuICAgICAgICBjb25zdCBjb250cm9sID0gdGhpcy5mYi5jb250cm9sKHZhbHVlLCB0aGlzLmJpbmRWYWxpZGF0aW9ucyh2YWxpZGF0aW9ucyB8fCBbXSkpO1xyXG4gICAgICAgIGlmIChkaXNhYmxlZCB8fCB0aGlzLmRpc2FibGVkKSBjb250cm9sLmRpc2FibGUoKTtcclxuICAgICAgICBjdHJsLmFkZENvbnRyb2wobmFtZSwgY29udHJvbCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY3RybC5yZW1vdmVDb250cm9sKG5hbWUpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlQ29udHJvbChkYXRhPzogYW55KSB7XHJcbiAgICBjb25zdCB7IGZpZWxkcyB9ID0gdGhpcztcclxuICAgIGlmICghZmllbGRzKSByZXR1cm4gbnVsbDtcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBvYmplY3QtY3VybHktbmV3bGluZVxyXG4gICAgY29uc3QgZ3JvdXAgPSB0aGlzLmZiLmdyb3VwKHt9KTtcclxuICAgIGZpZWxkcy5mb3JFYWNoKChmaWVsZDogTUVDWEZpZWxkQ29uZmlnKSA9PiB7XHJcbiAgICAgIGNvbnN0IHsgZmllbGRUeXBlLCB2YWxpZGF0aW9ucywgbmFtZSwgZGlzYWJsZWQsIGFsd2F5c1Nob3cgfSA9IGZpZWxkO1xyXG4gICAgICBsZXQgeyB2YWx1ZSB9ID0gZmllbGQ7XHJcbiAgICAgIGlmIChmaWVsZC5hbHdheXNTaG93UGx1c1ZhbGlkYXRpb24pIHtcclxuICAgICAgICBpZiAoIXRoaXMuaGFuZGxlSW50ZXJuYWxQbHVzVmFsaWRhdGlvbihmaWVsZC5hbHdheXNTaG93UGx1c1ZhbGlkYXRpb24sIGRhdGEpKSByZXR1cm47XHJcbiAgICAgIH0gZWxzZSBpZiAoIWFsd2F5c1Nob3cpIHJldHVybjtcclxuICAgICAgaWYgKGZpZWxkVHlwZSA9PT0gJ2J1dHRvbicpIHJldHVybjtcclxuICAgICAgaWYgKGZpZWxkVHlwZSA9PT0gJ3JhZGlvYnV0dG9uJyB8fCBmaWVsZFR5cGUgPT09ICdjaGVja2JveCcgfHwgZmllbGRUeXBlID09PSAnc2VsZWN0Jykge1xyXG4gICAgICAgIHZhbHVlID0gJyc7XHJcbiAgICAgIH1cclxuICAgICAgY29uc3QgY29udHJvbCA9IHRoaXMuZmIuY29udHJvbCh2YWx1ZSwgdGhpcy5iaW5kVmFsaWRhdGlvbnModmFsaWRhdGlvbnMgfHwgW10pKTtcclxuICAgICAgaWYgKGRpc2FibGVkIHx8IHRoaXMuZGlzYWJsZWQpIGNvbnRyb2wuZGlzYWJsZSgpO1xyXG4gICAgICBncm91cC5hZGRDb250cm9sKG5hbWUgYXMgc3RyaW5nLCBjb250cm9sKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiBncm91cDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYmluZFZhbGlkYXRpb25zKHZhbGlkYXRpb25zOiBNRUNYRmllbGRDb25maWdWYWxpZGF0b3JbXSkge1xyXG4gICAgaWYgKHZhbGlkYXRpb25zLmxlbmd0aCA+IDApIHtcclxuICAgICAgY29uc3QgdmFsaWRMaXN0OiBhbnlbXSA9IFtdO1xyXG4gICAgICB2YWxpZGF0aW9ucy5mb3JFYWNoKCh2YWxpZDogTUVDWEZpZWxkQ29uZmlnVmFsaWRhdG9yKSA9PiB7XHJcbiAgICAgICAgY29uc3QgdmFsaWRhdGVkID0gdmFsaWQucGFyYW1cclxuICAgICAgICAgID8gdmFsaWRhdG9yc1t2YWxpZC5uYW1lXSh2YWxpZC5wYXJhbSlcclxuICAgICAgICAgIDogdmFsaWRhdG9yc1t2YWxpZC5uYW1lXTtcclxuICAgICAgICB2YWxpZExpc3QucHVzaCh2YWxpZGF0ZWQpO1xyXG4gICAgICB9KTtcclxuICAgICAgcmV0dXJuIFZhbGlkYXRvcnMuY29tcG9zZSh2YWxpZExpc3QpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGJ1aWxkRm9ybSgpOiBGb3JtR3JvdXAge1xyXG4gICAgY29uc3QgZm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICBmaWVsZHM6IHRoaXMuZmIuYXJyYXkoW10pXHJcbiAgICB9KTtcclxuXHJcbiAgICBmb3JtPy5jb250cm9scy5maWVsZHM/LnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKF8pID0+IHtcclxuICAgICAgdGhpcy53YXRjaEZvckNoYW5nZXMoKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiBmb3JtO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB3YXRjaEZvckNoYW5nZXMoKSB7XHJcbiAgICBjb25zdCB7IGZpZWxkcywgY2hhbmdlc1Vuc3Vic2NyaWJlIH0gPSB0aGlzO1xyXG4gICAgY2hhbmdlc1Vuc3Vic2NyaWJlLm5leHQoKTtcclxuXHJcbiAgICB0aGlzLmZvcm1WYWx1ZXM/LmNvbnRyb2xzPy5tYXAoKGNvbnRyb2w6IGFueSwgaW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgICBmaWVsZHMuZm9yRWFjaCgoZmllbGRDb25maWc6IE1FQ1hGaWVsZENvbmZpZykgPT4ge1xyXG4gICAgICAgIGNvbnN0IHsgbmFtZSwgYWx3YXlzU2hvd1BsdXNWYWxpZGF0aW9uIH0gPSBmaWVsZENvbmZpZztcclxuICAgICAgICBpZiAoIWFsd2F5c1Nob3dQbHVzVmFsaWRhdGlvbikgcmV0dXJuO1xyXG4gICAgICAgIGNvbnN0IHsgZmllbGQgfSA9IGFsd2F5c1Nob3dQbHVzVmFsaWRhdGlvbjtcclxuICAgICAgICBpZiAoZmllbGQpIHtcclxuICAgICAgICAgIGNvbnRyb2wuY29udHJvbHNbZmllbGRdPy52YWx1ZUNoYW5nZXMucGlwZShcclxuICAgICAgICAgICAgdGFrZVVudGlsKGNoYW5nZXNVbnN1YnNjcmliZSkpLnN1YnNjcmliZSgoXzogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMubWFrZUludGVybmFsUGx1c1ZhbGlkYXRpb24oXHJcbiAgICAgICAgICAgICAgXyxcclxuICAgICAgICAgICAgICBuYW1lIGFzIHN0cmluZyxcclxuICAgICAgICAgICAgICBhbHdheXNTaG93UGx1c1ZhbGlkYXRpb24sXHJcbiAgICAgICAgICAgICAgaW5kZXhcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZm9ybUJhc2UgPSAoKSA9PiB7XHJcbiAgICAvLyByZXR1cm4gdGhpcy5mYi5ncm91cCh0aGlzLmNyZWF0ZUNvbnRyb2woKSk7XHJcbiAgICByZXR1cm4gdGhpcy5jcmVhdGVDb250cm9sKCk7XHJcbiAgfTtcclxuXHJcbiAgcHVibGljIGdldCBmb3JtVmFsdWVzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2Zvcm0gPyAodGhpcy5fZm9ybS5nZXQoJ2ZpZWxkcycpIGFzIEZvcm1BcnJheSkgOiBudWxsO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGZpbGxWYWx1ZXMoKSB7XHJcbiAgICBjb25zdCB7IGRhdGEsIHF0ZCB9ID0gdGhpcztcclxuICAgIGlmICgoIXRoaXMuX2Zvcm0pICYmIHF0ZCkgcmV0dXJuO1xyXG4gICAgaWYgKHF0ZCA+IDApIHtcclxuICAgICAgQXJyYXk8YW55PihxdGQpXHJcbiAgICAgICAgLmZpbGwobnVsbClcclxuICAgICAgICAubWFwKChfLCBpbmRleCkgPT4ge1xyXG4gICAgICAgICAgbGV0IGZvcm0gPSB0aGlzLmNyZWF0ZUNvbnRyb2woKTtcclxuICAgICAgICAgIGlmIChkYXRhICYmIGRhdGFbaW5kZXhdKSB7XHJcbiAgICAgICAgICAgIGZvcm0gPSB0aGlzLmNyZWF0ZUNvbnRyb2woZGF0YVtpbmRleF0pO1xyXG4gICAgICAgICAgICBjb25zdCBoYW5kbGVkRGF0YSA9IGRhdGFbaW5kZXhdO1xyXG4gICAgICAgICAgICBPYmplY3QuZW50cmllcyhoYW5kbGVkRGF0YSkuZm9yRWFjaCgoW2tleSwgdmFsdWVdKSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKE1vbmtleVV0aWxzLnBlcnNpc3ROdWxsRW1wdHlVbmRlZmluZWQodmFsdWUpICYmIGZvcm0/LmNvbnRyb2xzW2tleV0pIHtcclxuICAgICAgICAgICAgICAgIGZvcm0/LmNvbnRyb2xzW2tleV0uc2V0VmFsdWUodmFsdWUpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLmZvcm1WYWx1ZXM/LnB1c2goZm9ybSBhcyBhbnkpO1xyXG5cclxuICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLl9mb3JtID0gdGhpcy5idWlsZEZvcm0oKTtcclxuICAgIHRoaXMuZmlsbFZhbHVlcygpO1xyXG5cclxuICAgIHRoaXMub25IYW5kbGVVcGRhdGVGb3JtLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIHRoaXMuZmlsbFZhbHVlcygpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgaWYgKHRoaXMuZW5hYmxlTGlzdGVuZXJGb3JtQ2hhbmdlKSB7XHJcbiAgICAgIHRoaXMuX2Zvcm0ubWFya0FzVW50b3VjaGVkKCk7XHJcbiAgICAgIHRoaXMuX2Zvcm0udmFsdWVDaGFuZ2VzXHJcbiAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICBkZWJvdW5jZVRpbWUoODAwKSxcclxuICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9fdW5zdWJzY3JpYmVBbGwpXHJcbiAgICAgICAgKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5vbkZvcm1DaGFuZ2UubmV4dCh0aGlzLl9mb3JtKVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoKSB7XHJcbiAgICBpZiAoIXRoaXMuX2Zvcm0pIHtcclxuICAgICAgdGhpcy5fZm9ybSA9IHRoaXMuYnVpbGRGb3JtKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmZpbGxWYWx1ZXMoKTtcclxuICB9XHJcbn1cclxuIl19
@@ -1,6 +1,7 @@
1
1
  import { Directive, EventEmitter, Input, Output } from '@angular/core';
2
2
  import { Validators } from '@angular/forms';
3
3
  import { MonkeyUtils } from 'monkey-style-guide';
4
+ import { debounceTime, takeUntil } from 'rxjs/operators';
4
5
  import { BaseComponent } from './base-component';
5
6
  import { validators } from './base-validators';
6
7
  import * as i0 from "@angular/core";
@@ -15,6 +16,8 @@ export class BaseDynamic extends BaseComponent {
15
16
  this.fields = [];
16
17
  this.disabled = false;
17
18
  this.isLoading = false;
19
+ this.enableListenerFormChange = false;
20
+ this.onFormChange = new EventEmitter();
18
21
  this._form = null;
19
22
  }
20
23
  createControl() {
@@ -67,6 +70,14 @@ export class BaseDynamic extends BaseComponent {
67
70
  this.onHandleUpdateForm.subscribe(() => {
68
71
  this.fillValues();
69
72
  });
73
+ if (this.enableListenerFormChange) {
74
+ this._form.markAsUntouched();
75
+ this._form.valueChanges
76
+ .pipe(debounceTime(800), takeUntil(this.__unsubscribeAll))
77
+ .subscribe(() => {
78
+ this.onFormChange.next(this._form);
79
+ });
80
+ }
70
81
  }
71
82
  ngOnChanges() {
72
83
  if (!this._form) {
@@ -76,7 +87,7 @@ export class BaseDynamic extends BaseComponent {
76
87
  }
77
88
  }
78
89
  BaseDynamic.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BaseDynamic, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Directive });
79
- BaseDynamic.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.1", type: BaseDynamic, selector: "[baseDynamic]", inputs: { onHandleSubmit: "onHandleSubmit", onHandleUpdateForm: "onHandleUpdateForm", self: "self", fields: "fields", data: "data", disabled: "disabled", isLoading: "isLoading" }, outputs: { onHandleSubmitFormReady: "onHandleSubmitFormReady" }, usesInheritance: true, usesOnChanges: true, ngImport: i0 });
90
+ BaseDynamic.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.1", type: BaseDynamic, selector: "[baseDynamic]", inputs: { onHandleSubmit: "onHandleSubmit", onHandleUpdateForm: "onHandleUpdateForm", self: "self", fields: "fields", data: "data", disabled: "disabled", isLoading: "isLoading", enableListenerFormChange: "enableListenerFormChange" }, outputs: { onHandleSubmitFormReady: "onHandleSubmitFormReady", onFormChange: "onFormChange" }, usesInheritance: true, usesOnChanges: true, ngImport: i0 });
80
91
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BaseDynamic, decorators: [{
81
92
  type: Directive,
82
93
  args: [{
@@ -98,5 +109,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
98
109
  type: Input
99
110
  }], isLoading: [{
100
111
  type: Input
112
+ }], enableListenerFormChange: [{
113
+ type: Input
114
+ }], onFormChange: [{
115
+ type: Output
101
116
  }] } });
102
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1keW5hbWljLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW9ua2V5LWZyb250LWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2Jhc2UvYmFzZS1keW5hbWljLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBMEIsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRWpELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7OztBQUsvQyxNQUFNLE9BQWdCLFdBQVksU0FBUSxhQUFhO0lBbUJyRCxZQUFvQixFQUFlO1FBQ2pDLEtBQUssRUFBRSxDQUFDO1FBRFUsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQWxCMUIsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBRXpDLHVCQUFrQixHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFFNUMsNEJBQXVCLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7UUFJdEUsV0FBTSxHQUFzQixFQUFFLENBQUM7UUFJL0IsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUUxQixjQUFTLEdBQVksS0FBSyxDQUFDO1FBRXBDLFVBQUssR0FBcUIsSUFBSSxDQUFDO0lBSS9CLENBQUM7SUFFTyxhQUFhO1FBQ25CLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUM7UUFDeEIsSUFBSSxDQUFDLE1BQU07WUFBRSxPQUFPLElBQUksQ0FBQztRQUN6QixnREFBZ0Q7UUFDaEQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FB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aEZtQixXQUFXOzRGQUFYLFdBQVc7MkZBQVgsV0FBVztrQkFIaEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZUFBZTtpQkFDMUI7a0dBRVUsY0FBYztzQkFBdEIsS0FBSztnQkFFRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBRUksdUJBQXVCO3NCQUFoQyxNQUFNO2dCQUVFLElBQUk7c0JBQVosS0FBSztnQkFFRyxNQUFNO3NCQUFkLEtBQUs7Z0JBRUcsSUFBSTtzQkFBWixLQUFLO2dCQUVHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUcsU0FBUztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPbkNoYW5nZXMsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBNb25rZXlVdGlscyB9IGZyb20gJ21vbmtleS1zdHlsZS1ndWlkZSc7XHJcbmltcG9ydCB7IE1FQ1hGaWVsZENvbmZpZywgTUVDWEZpZWxkQ29uZmlnVmFsaWRhdG9yIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7IEJhc2VDb21wb25lbnQgfSBmcm9tICcuL2Jhc2UtY29tcG9uZW50JztcclxuaW1wb3J0IHsgdmFsaWRhdG9ycyB9IGZyb20gJy4vYmFzZS12YWxpZGF0b3JzJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW2Jhc2VEeW5hbWljXSdcclxufSlcclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VEeW5hbWljIGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcclxuICBASW5wdXQoKSBvbkhhbmRsZVN1Ym1pdCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICBASW5wdXQoKSBvbkhhbmRsZVVwZGF0ZUZvcm0gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgQE91dHB1dCgpIG9uSGFuZGxlU3VibWl0Rm9ybVJlYWR5OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICBASW5wdXQoKSBzZWxmOiBhbnk7XHJcblxyXG4gIEBJbnB1dCgpIGZpZWxkczogTUVDWEZpZWxkQ29uZmlnW10gPSBbXTtcclxuXHJcbiAgQElucHV0KCkgZGF0YTogYW55O1xyXG5cclxuICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKSBpc0xvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgX2Zvcm06IEZvcm1Hcm91cCB8IG51bGwgPSBudWxsO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZiOiBGb3JtQnVpbGRlcikge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlQ29udHJvbCgpIHtcclxuICAgIGNvbnN0IHsgZmllbGRzIH0gPSB0aGlzO1xyXG4gICAgaWYgKCFmaWVsZHMpIHJldHVybiBudWxsO1xyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG9iamVjdC1jdXJseS1uZXdsaW5lXHJcbiAgICBjb25zdCBncm91cCA9IHRoaXMuZmIuZ3JvdXAoe30pO1xyXG4gICAgZmllbGRzLmZvckVhY2goKGZpZWxkOiBNRUNYRmllbGRDb25maWcpID0+IHtcclxuICAgICAgY29uc3QgeyBmaWVsZFR5cGUsIHZhbGlkYXRpb25zLCBuYW1lLCBkaXNhYmxlZCB9ID0gZmllbGQ7XHJcbiAgICAgIGxldCB7IHZhbHVlIH0gPSBmaWVsZDtcclxuICAgICAgaWYgKGZpZWxkVHlwZSA9PT0gJ2J1dHRvbicpIHJldHVybjtcclxuICAgICAgaWYgKGZpZWxkVHlwZSA9PT0gJ3JhZGlvYnV0dG9uJyB8fCBmaWVsZFR5cGUgPT09ICdjaGVja2JveCcgfHwgZmllbGRUeXBlID09PSAnc2VsZWN0Jykge1xyXG4gICAgICAgIHZhbHVlID0gJyc7XHJcbiAgICAgIH1cclxuICAgICAgY29uc3QgY29udHJvbCA9IHRoaXMuZmIuY29udHJvbCh2YWx1ZSwgdGhpcy5iaW5kVmFsaWRhdGlvbnModmFsaWRhdGlvbnMgfHwgW10pKTtcclxuICAgICAgaWYgKGRpc2FibGVkIHx8IHRoaXMuZGlzYWJsZWQpIGNvbnRyb2wuZGlzYWJsZSgpO1xyXG4gICAgICBncm91cC5hZGRDb250cm9sKG5hbWUgYXMgc3RyaW5nLCBjb250cm9sKTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBiaW5kVmFsaWRhdGlvbnModmFsaWRhdGlvbnM6IE1FQ1hGaWVsZENvbmZpZ1ZhbGlkYXRvcltdKSB7XHJcbiAgICBpZiAodmFsaWRhdGlvbnMubGVuZ3RoID4gMCkge1xyXG4gICAgICBjb25zdCB2YWxpZExpc3Q6IGFueVtdID0gW107XHJcbiAgICAgIHZhbGlkYXRpb25zLmZvckVhY2goKHZhbGlkOiBNRUNYRmllbGRDb25maWdWYWxpZGF0b3IpID0+IHtcclxuICAgICAgICBjb25zdCB2YWxpZGF0ZWQgPSB2YWxpZC5wYXJhbVxyXG4gICAgICAgICAgPyB2YWxpZGF0b3JzW3ZhbGlkLm5hbWVdKHZhbGlkLnBhcmFtKVxyXG4gICAgICAgICAgOiB2YWxpZGF0b3JzW3ZhbGlkLm5hbWVdO1xyXG4gICAgICAgIHZhbGlkTGlzdC5wdXNoKHZhbGlkYXRlZCk7XHJcbiAgICAgIH0pO1xyXG4gICAgICByZXR1cm4gVmFsaWRhdG9ycy5jb21wb3NlKHZhbGlkTGlzdCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBmaWxsVmFsdWVzKCkge1xyXG4gICAgY29uc3QgeyBkYXRhIH0gPSB0aGlzO1xyXG4gICAgaWYgKCFkYXRhIHx8ICF0aGlzLl9mb3JtKSByZXR1cm47XHJcbiAgICBPYmplY3QuZW50cmllcyhkYXRhKS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pID0+IHtcclxuICAgICAgaWYgKE1vbmtleVV0aWxzLnBlcnNpc3ROdWxsRW1wdHlVbmRlZmluZWQodmFsdWUpICYmIHRoaXMuX2Zvcm0/LmNvbnRyb2xzW2tleV0pIHtcclxuICAgICAgICB0aGlzLl9mb3JtPy5jb250cm9sc1trZXldPy5zZXRWYWx1ZSh2YWx1ZSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLl9mb3JtID0gdGhpcy5jcmVhdGVDb250cm9sKCk7XHJcbiAgICB0aGlzLmZpbGxWYWx1ZXMoKTtcclxuXHJcbiAgICB0aGlzLm9uSGFuZGxlVXBkYXRlRm9ybS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICB0aGlzLmZpbGxWYWx1ZXMoKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoKSB7XHJcbiAgICBpZiAoIXRoaXMuX2Zvcm0pIHtcclxuICAgICAgdGhpcy5fZm9ybSA9IHRoaXMuY3JlYXRlQ29udHJvbCgpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5maWxsVmFsdWVzKCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
117
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1keW5hbWljLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW9ua2V5LWZyb250LWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2Jhc2UvYmFzZS1keW5hbWljLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBMEIsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFekQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7O0FBSy9DLE1BQU0sT0FBZ0IsV0FBWSxTQUFRLGFBQWE7SUF1QnJELFlBQW9CLEVBQWU7UUFDakMsS0FBSyxFQUFFLENBQUM7UUFEVSxPQUFFLEdBQUYsRUFBRSxDQUFhO1FBdEIxQixtQkFBYyxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFFekMsdUJBQWtCLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUU1Qyw0QkFBdUIsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUl0RSxXQUFNLEdBQXNCLEVBQUUsQ0FBQztRQUkvQixhQUFRLEdBQVksS0FBSyxDQUFDO1FBRTFCLGNBQVMsR0FBWSxLQUFLLENBQUM7UUFFM0IsNkJBQXdCLEdBQUcsS0FBSyxDQUFDO1FBRWhDLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUVqRCxVQUFLLEdBQXFCLElBQUksQ0FBQztJQUkvQixDQUFDO0lBRU8sYUFBYTtRQUNuQixNQUFNLEVBQUUs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SUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUM3QixJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVk7aUJBQ3BCLElBQUksQ0FDSCxZQUFZLENBQUMsR0FBRyxDQUFDLEVBQ2pCLFNBQVMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FDakM7aUJBQ0EsU0FBUyxDQUFDLEdBQUcsRUFBRTtnQkFDZCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7WUFDcEMsQ0FBQyxDQUFDLENBQUM7U0FDTjtJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDZixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztTQUNuQztRQUNELElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNwQixDQUFDOzt3R0FoR21CLFdBQVc7NEZBQVgsV0FBVzsyRkFBWCxXQUFXO2tCQUhoQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxlQUFlO2lCQUMxQjtrR0FFVSxjQUFjO3NCQUF0QixLQUFLO2dCQUVHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFFSSx1QkFBdUI7c0JBQWhDLE1BQU07Z0JBRUUsSUFBSTtzQkFBWixLQUFLO2dCQUVHLE1BQU07c0JBQWQsS0FBSztnQkFFRyxJQUFJO3NCQUFaLEtBQUs7Z0JBRUcsUUFBUTtzQkFBaEIsS0FBSztnQkFFRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVHLHdCQUF3QjtzQkFBaEMsS0FBSztnQkFFSSxZQUFZO3NCQUFyQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1vbmtleVV0aWxzIH0gZnJvbSAnbW9ua2V5LXN0eWxlLWd1aWRlJztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IE1FQ1hGaWVsZENvbmZpZywgTUVDWEZpZWxkQ29uZmlnVmFsaWRhdG9yIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7IEJhc2VDb21wb25lbnQgfSBmcm9tICcuL2Jhc2UtY29tcG9uZW50JztcclxuaW1wb3J0IHsgdmFsaWRhdG9ycyB9IGZyb20gJy4vYmFzZS12YWxpZGF0b3JzJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW2Jhc2VEeW5hbWljXSdcclxufSlcclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VEeW5hbWljIGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcclxuICBASW5wdXQoKSBvbkhhbmRsZVN1Ym1pdCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICBASW5wdXQoKSBvbkhhbmRsZVVwZGF0ZUZvcm0gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgQE91dHB1dCgpIG9uSGFuZGxlU3VibWl0Rm9ybVJlYWR5OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICBASW5wdXQoKSBzZWxmOiBhbnk7XHJcblxyXG4gIEBJbnB1dCgpIGZpZWxkczogTUVDWEZpZWxkQ29uZmlnW10gPSBbXTtcclxuXHJcbiAgQElucHV0KCkgZGF0YTogYW55O1xyXG5cclxuICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKSBpc0xvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KCkgZW5hYmxlTGlzdGVuZXJGb3JtQ2hhbmdlID0gZmFsc2U7XHJcblxyXG4gIEBPdXRwdXQoKSBvbkZvcm1DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgX2Zvcm06IEZvcm1Hcm91cCB8IG51bGwgPSBudWxsO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZiOiBGb3JtQnVpbGRlcikge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlQ29udHJvbCgpIHtcclxuICAgIGNvbnN0IHsgZmllbGRzIH0gPSB0aGlzO1xyXG4gICAgaWYgKCFmaWVsZHMpIHJldHVybiBudWxsO1xyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG9iamVjdC1jdXJseS1uZXdsaW5lXHJcbiAgICBjb25zdCBncm91cCA9IHRoaXMuZmIuZ3JvdXAoe30pO1xyXG4gICAgZmllbGRzLmZvckVhY2goKGZpZWxkOiBNRUNYRmllbGRDb25maWcpID0+IHtcclxuICAgICAgY29uc3QgeyBmaWVsZFR5cGUsIHZhbGlkYXRpb25zLCBuYW1lLCBkaXNhYmxlZCB9ID0gZmllbGQ7XHJcbiAgICAgIGxldCB7IHZhbHVlIH0gPSBmaWVsZDtcclxuICAgICAgaWYgKGZpZWxkVHlwZSA9PT0gJ2J1dHRvbicpIHJldHVybjtcclxuICAgICAgaWYgKGZpZWxkVHlwZSA9PT0gJ3JhZGlvYnV0dG9uJyB8fCBmaWVsZFR5cGUgPT09ICdjaGVja2JveCcgfHwgZmllbGRUeXBlID09PSAnc2VsZWN0Jykge1xyXG4gICAgICAgIHZhbHVlID0gJyc7XHJcbiAgICAgIH1cclxuICAgICAgY29uc3QgY29udHJvbCA9IHRoaXMuZmIuY29udHJvbCh2YWx1ZSwgdGhpcy5iaW5kVmFsaWRhdGlvbnModmFsaWRhdGlvbnMgfHwgW10pKTtcclxuICAgICAgaWYgKGRpc2FibGVkIHx8IHRoaXMuZGlzYWJsZWQpIGNvbnRyb2wuZGlzYWJsZSgpO1xyXG4gICAgICBncm91cC5hZGRDb250cm9sKG5hbWUgYXMgc3RyaW5nLCBjb250cm9sKTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBiaW5kVmFsaWRhdGlvbnModmFsaWRhdGlvbnM6IE1FQ1hGaWVsZENvbmZpZ1ZhbGlkYXRvcltdKSB7XHJcbiAgICBpZiAodmFsaWRhdGlvbnMubGVuZ3RoID4gMCkge1xyXG4gICAgICBjb25zdCB2YWxpZExpc3Q6IGFueVtdID0gW107XHJcbiAgICAgIHZhbGlkYXRpb25zLmZvckVhY2goKHZhbGlkOiBNRUNYRmllbGRDb25maWdWYWxpZGF0b3IpID0+IHtcclxuICAgICAgICBjb25zdCB2YWxpZGF0ZWQgPSB2YWxpZC5wYXJhbVxyXG4gICAgICAgICAgPyB2YWxpZGF0b3JzW3ZhbGlkLm5hbWVdKHZhbGlkLnBhcmFtKVxyXG4gICAgICAgICAgOiB2YWxpZGF0b3JzW3ZhbGlkLm5hbWVdO1xyXG4gICAgICAgIHZhbGlkTGlzdC5wdXNoKHZhbGlkYXRlZCk7XHJcbiAgICAgIH0pO1xyXG4gICAgICByZXR1cm4gVmFsaWRhdG9ycy5jb21wb3NlKHZhbGlkTGlzdCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBmaWxsVmFsdWVzKCkge1xyXG4gICAgY29uc3QgeyBkYXRhIH0gPSB0aGlzO1xyXG4gICAgaWYgKCFkYXRhIHx8ICF0aGlzLl9mb3JtKSByZXR1cm47XHJcbiAgICBPYmplY3QuZW50cmllcyhkYXRhKS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pID0+IHtcclxuICAgICAgaWYgKE1vbmtleVV0aWxzLnBlcnNpc3ROdWxsRW1wdHlVbmRlZmluZWQodmFsdWUpICYmIHRoaXMuX2Zvcm0/LmNvbnRyb2xzW2tleV0pIHtcclxuICAgICAgICB0aGlzLl9mb3JtPy5jb250cm9sc1trZXldPy5zZXRWYWx1ZSh2YWx1ZSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLl9mb3JtID0gdGhpcy5jcmVhdGVDb250cm9sKCk7XHJcbiAgICB0aGlzLmZpbGxWYWx1ZXMoKTtcclxuXHJcbiAgICB0aGlzLm9uSGFuZGxlVXBkYXRlRm9ybS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICB0aGlzLmZpbGxWYWx1ZXMoKTtcclxuICAgIH0pO1xyXG5cclxuICAgIGlmICh0aGlzLmVuYWJsZUxpc3RlbmVyRm9ybUNoYW5nZSkge1xyXG4gICAgICB0aGlzLl9mb3JtLm1hcmtBc1VudG91Y2hlZCgpO1xyXG4gICAgICB0aGlzLl9mb3JtLnZhbHVlQ2hhbmdlc1xyXG4gICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgZGVib3VuY2VUaW1lKDgwMCksXHJcbiAgICAgICAgICB0YWtlVW50aWwodGhpcy5fX3Vuc3Vic2NyaWJlQWxsKVxyXG4gICAgICAgIClcclxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgIHRoaXMub25Gb3JtQ2hhbmdlLm5leHQodGhpcy5fZm9ybSlcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKCkge1xyXG4gICAgaWYgKCF0aGlzLl9mb3JtKSB7XHJcbiAgICAgIHRoaXMuX2Zvcm0gPSB0aGlzLmNyZWF0ZUNvbnRyb2woKTtcclxuICAgIH1cclxuICAgIHRoaXMuZmlsbFZhbHVlcygpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -110,10 +110,10 @@ export class MECXFilterComponent {
110
110
  }
111
111
  }
112
112
  MECXFilterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: MECXFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
113
- MECXFilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: MECXFilterComponent, selector: "mecx-filter", inputs: { searchPlaceholder: "searchPlaceholder", orderPlaceholder: "orderPlaceholder", menus: "menus", orders: "orders", enableSearch: "enableSearch", enableAddFilter: "enableAddFilter", enableOrder: "enableOrder", complementTemplate: "complementTemplate", search: "search", order: "order", ordersList: "ordersList", isLoading: "isLoading" }, outputs: { onFilter: "onFilter" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"d-flex full-width flex-column d-flex-gap-2 filter-content\">\r\n <div class=\"d-flex flex-column flex-md-row justify-content-between full-width\">\r\n <div class=\"d-flex full-width d-flex-gap-2 filter-input\">\r\n <ng-container *ngIf=\"enableSearch\">\r\n <monkey-input-filter\r\n [placeholder]=\"searchPlaceholder | translate\"\r\n (onChange)=\"onSearchFilter($event)\"\r\n icon=\"search-16\"\r\n iconPosition=\"left\"\r\n [(value)]=\"_search\"\r\n >\r\n </monkey-input-filter>\r\n </ng-container>\r\n <ng-container *ngIf=\"!_hasFilterByMenu\">\r\n <div *ngIf=\"enableAddFilter\" class=\"d-flex actions\" id=\"mecx-filters-add-filter\">\r\n <monkey-button\r\n type=\"filter\"\r\n color=\"border\"\r\n (click)=\"onHandleShowMenu()\"\r\n icon=\"more-16\"\r\n iconPosition=\"right\"\r\n >\r\n {{ 'BUTTONS.ADD-FILTER' | translate }}\r\n </monkey-button>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div class=\"order hidden-sm hidden-xs\">\r\n <div class=\"d-flex align-items-center flex-column flex-sm-row\">\r\n <ng-container *ngIf=\"!!complementTemplate\">\r\n <ng-container *ngTemplateOutlet=\"complementTemplate\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"enableOrder\">\r\n <ng-container *ngTemplateOutlet=\"orderBy\"></ng-container>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n <ng-container *ngIf=\"_hasFilterByMenu\">\r\n <div class=\"separator\"></div>\r\n <div class=\"d-flex full-width d-flex-gap-2 align-items-end\">\r\n <mecx-filter-selected\r\n class=\"d-flex-gap-2\"\r\n (onSubmit)=\"onHandleSubmit($event)\"\r\n (onClose)=\"onHandleClose()\"\r\n [model]=\"menus\"\r\n ></mecx-filter-selected>\r\n <div class=\"more-filters\">\r\n <monkey-button\r\n type=\"filter\"\r\n color=\"border\"\r\n icon=\"more-16\"\r\n id=\"mecx-filters-add-filter\"\r\n (click)=\"onHandleShowMenu()\"\r\n >\r\n </monkey-button>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <div class=\"order hidden-md hidden-lg\">\r\n <div class=\"d-flex align-items-center flex-column flex-sm-row\">\r\n <ng-container *ngIf=\"!!complementTemplate\">\r\n <ng-container *ngTemplateOutlet=\"complementTemplate\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"enableOrder\">\r\n <ng-container *ngTemplateOutlet=\"orderBy\"></ng-container>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<mecx-filter-menu\r\n *monkeyecxPopover=\"_showMenu; target: $any(_actionElement); closed: closeMenu; dir: 'ltr'\"\r\n (onSubmit)=\"onHandleSubmit($event)\"\r\n (onClose)=\"onHandleClose()\"\r\n [model]=\"menus\"\r\n>\r\n</mecx-filter-menu>\r\n\r\n<ng-template #orderBy>\r\n <ng-container *ngIf=\"!(_ordersList?.length > 0); else orderByList\">\r\n <div class=\"d-flex align-items-center flex-column flex-sm-row\">\r\n <monkey-select-filter\r\n (onChange)=\"onHandleOrder($event)\"\r\n [placeholder]=\"orderPlaceholder | translate\"\r\n type=\"none\"\r\n [(value)]=\"_order\"\r\n >\r\n <monkey-option\r\n *ngFor=\"let ordBy of orders\"\r\n [label]=\"ordBy?.label | translate\"\r\n [value]=\"ordBy?.value\"\r\n >x\r\n </monkey-option>\r\n </monkey-select-filter>\r\n </div>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #orderByList>\r\n <div class=\"d-flex full-width justify-content-end\">\r\n <div #ordersFilterMenu (click)=\"onHandleShowOrders(ordersFilterMenu)\">\r\n <monkey-button type=\"filter\" color=\"border\" icon=\"arrow-down-16\" iconPosition=\"right\">\r\n {{ 'BUTTONS.ORDINATION' | translate }}\r\n </monkey-button>\r\n </div>\r\n </div>\r\n <div\r\n class=\"ml-1\"\r\n *monkeyecxPopover=\"\r\n _showOrder;\r\n target: $any(_actionElementOrder);\r\n closed: closeOrder;\r\n dir: 'rtl'\r\n \"\r\n >\r\n <div class=\"drop-down-orders-filter pt-4\">\r\n <ng-container *ngFor=\"let item of _ordersList\">\r\n <div class=\"px-4\">\r\n <span>{{ item.label | translate }}</span>\r\n <monkey-radiobutton [value]=\"item.value\" (onChange)=\"onHandleOrder($event, item.field)\">\r\n <monkey-option\r\n *ngFor=\"let ordBy of item.values\"\r\n [label]=\"ordBy?.label | translate\"\r\n [value]=\"ordBy?.value\"\r\n >\r\n </monkey-option>\r\n </monkey-radiobutton>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</ng-template>\r\n", styles: [".drop-down-orders-filter{display:flex;flex-direction:column;background:#fafafa;border:1px solid #e9eaec;box-shadow:1px 17px 31px 5px #1d1d1d15;border-radius:16px!important}.drop-down-orders-filter ::ng-deep .mecx-radio-container{margin-top:16px}:host{display:flex;width:100%;align-items:center}@media screen and (max-width: 599px){:host .filter-content,:host .filter-input{flex-direction:column}}:host .filter-input .actions ::ng-deep monkey-button button{justify-content:center;white-space:nowrap}:host .filter-input .actions ::ng-deep monkey-button button monkey-icon{margin-right:0;margin-left:10px}@media screen and (max-width: 599px){:host .filter-input{flex-wrap:wrap}:host .filter-input .actions{flex:1 1}}:host .filter-input .mecx-button-filter{white-space:nowrap;justify-content:center}@media screen and (max-width: 959px){:host{flex-direction:column;max-width:100%}:host ::ng-deep monkey-input-filter{width:100%}:host ::ng-deep monkey-select-filter{width:100%}:host ::ng-deep monkey-button{width:100%}:host ::ng-deep monkey-button button{width:100%}}@media screen and (min-width: 960px){:host .actions ::ng-deep monkey-button button{width:170px}}:host .more-filters ::ng-deep monkey-button monkey-icon{margin-right:unset!important}:host .order{white-space:nowrap;align-self:flex-start}@media screen and (max-width: 599px){:host .order{align-self:unset}}@media screen and (min-width: 960px){:host .order ::ng-deep monkey-select-filter{width:unset}:host .order ::ng-deep monkey-button monkey-icon{margin-left:10px;margin-right:unset}}:host ::ng-deep monkey-button{margin-bottom:0}:host ::ng-deep mecx-form-field-filter mecx-form-field-body{height:40px;margin:0}:host ::ng-deep monkey-button-dropdown{color:#fff}:host ::ng-deep monkey-button-dropdown mecx-button-dropdown.trigger{background:#fff;border-radius:.5rem;border:1px solid #d6d6d6;height:40px;justify-content:center;width:40px}:host ::ng-deep monkey-button-dropdown mecx-button-dropdown.trigger mecx-button-dropdown__trigger{justify-content:center}:host ::ng-deep monkey-button-dropdown mecx-button-dropdown.trigger mecx-button-dropdown__trigger monkey-icon{margin-left:0}:host .separator{border-bottom:1px solid #ebebeb;margin-top:16px;margin-bottom:16px}\n"], components: [{ type: i1.MonkeyInputFilterComponent, selector: "monkey-input-filter", inputs: ["name", "label", "helperMessage", "placeholder", "icon", "type", "infoMessage", "errorMessage", "mask", "prefix", "onlyNumber", "onlyAlphaNumeric", "upperCase", "lowerCase", "capitalize", "currency", "iconPosition", "value"], outputs: ["onChange"] }, { type: i1.MonkeyButtonComponent, selector: "monkey-button", inputs: ["label", "icon", "iconPosition", "type", "color", "disabled", "size"] }, { type: i2.MECXFilterSelectedComponent, selector: "mecx-filter-selected", inputs: ["model"], outputs: ["onOpenFilters", "onClose", "onSubmit"] }, { type: i3.MECXFilterMenuComponent, selector: "mecx-filter-menu", inputs: ["model"], outputs: ["onClose", "onSubmit"] }, { type: i1.MonkeySelectFilterComponent, selector: "monkey-select-filter", inputs: ["placeholder", "icon", "type", "value"], outputs: ["onChange"] }, { type: i1.MonkeyOptionComponent, selector: "monkey-option", inputs: ["type", "label", "value", "selectAll", "selected", "enableClick"], outputs: ["onSelectOption"] }, { type: i1.MonkeyRadioButtonComponent, selector: "monkey-radiobutton", inputs: ["label", "helperMessage", "placeholder", "icon", "infoMessage", "errorMessage", "value"], outputs: ["onChange"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i5.MonkeyEcxPopoverDirective, selector: "[monkeyecxPopover]", inputs: ["monkeyecxPopover", "monkeyecxPopoverClosed", "monkeyecxPopoverTarget", "monkeyecxPopoverMinwidth", "monkeyecxPopoverBackdrop", "monkeyecxPopoverWatch", "monkeyecxPopoverDir", "monkeyecxPopoverContextmenu", "monkeyecxPopoverHeight"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "translate": i6.TranslatePipe } });
113
+ MECXFilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: MECXFilterComponent, selector: "mecx-filter", inputs: { searchPlaceholder: "searchPlaceholder", orderPlaceholder: "orderPlaceholder", menus: "menus", orders: "orders", enableSearch: "enableSearch", enableAddFilter: "enableAddFilter", enableOrder: "enableOrder", complementTemplate: "complementTemplate", search: "search", order: "order", ordersList: "ordersList", isLoading: "isLoading" }, outputs: { onFilter: "onFilter" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"d-flex full-width flex-column d-flex-gap-2 filter-content\">\r\n <div class=\"d-flex flex-column flex-md-row justify-content-between full-width\">\r\n <div class=\"d-flex full-width d-flex-gap-2 filter-input\">\r\n <ng-container *ngIf=\"enableSearch\">\r\n <monkey-input-filter\r\n [placeholder]=\"searchPlaceholder | translate\"\r\n (onChange)=\"onSearchFilter($event)\"\r\n icon=\"search-16\"\r\n iconPosition=\"left\"\r\n [(value)]=\"_search\"\r\n data-testid=\"mecx-filter-input\"\r\n >\r\n </monkey-input-filter>\r\n </ng-container>\r\n <ng-container *ngIf=\"!_hasFilterByMenu\">\r\n <div *ngIf=\"enableAddFilter\" class=\"d-flex actions\" id=\"mecx-filters-add-filter\">\r\n <monkey-button\r\n type=\"filter\"\r\n color=\"border\"\r\n (click)=\"onHandleShowMenu()\"\r\n icon=\"more-16\"\r\n iconPosition=\"right\"\r\n data-testid=\"mecx-filter-btn-add-filter\"\r\n >\r\n {{ 'BUTTONS.ADD-FILTER' | translate }}\r\n </monkey-button>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div class=\"order hidden-sm hidden-xs\">\r\n <div class=\"d-flex align-items-center flex-column flex-sm-row\">\r\n <ng-container *ngIf=\"!!complementTemplate\">\r\n <ng-container *ngTemplateOutlet=\"complementTemplate\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"enableOrder\">\r\n <ng-container *ngTemplateOutlet=\"orderBy\"></ng-container>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n <ng-container *ngIf=\"_hasFilterByMenu\">\r\n <div class=\"separator\"></div>\r\n <div class=\"d-flex full-width d-flex-gap-2 align-items-end\">\r\n <mecx-filter-selected\r\n class=\"d-flex-gap-2\"\r\n (onSubmit)=\"onHandleSubmit($event)\"\r\n (onClose)=\"onHandleClose()\"\r\n [model]=\"menus\"\r\n ></mecx-filter-selected>\r\n <div class=\"more-filters\">\r\n <monkey-button\r\n type=\"filter\"\r\n color=\"border\"\r\n icon=\"more-16\"\r\n id=\"mecx-filters-add-filter\"\r\n (click)=\"onHandleShowMenu()\"\r\n >\r\n </monkey-button>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <div class=\"order hidden-md hidden-lg\">\r\n <div class=\"d-flex align-items-center flex-column flex-sm-row\">\r\n <ng-container *ngIf=\"!!complementTemplate\">\r\n <ng-container *ngTemplateOutlet=\"complementTemplate\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"enableOrder\">\r\n <ng-container *ngTemplateOutlet=\"orderBy\"></ng-container>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<mecx-filter-menu\r\n *monkeyecxPopover=\"_showMenu; target: $any(_actionElement); closed: closeMenu; dir: 'ltr'\"\r\n (onSubmit)=\"onHandleSubmit($event)\"\r\n (onClose)=\"onHandleClose()\"\r\n [model]=\"menus\"\r\n>\r\n</mecx-filter-menu>\r\n\r\n<ng-template #orderBy>\r\n <ng-container *ngIf=\"!(_ordersList?.length > 0); else orderByList\">\r\n <div class=\"d-flex align-items-center flex-column flex-sm-row\">\r\n <monkey-select-filter\r\n (onChange)=\"onHandleOrder($event)\"\r\n [placeholder]=\"orderPlaceholder | translate\"\r\n type=\"none\"\r\n [(value)]=\"_order\"\r\n data-testid=\"mecx-filter-btn-order\"\r\n >\r\n <monkey-option\r\n *ngFor=\"let ordBy of orders\"\r\n [label]=\"ordBy?.label | translate\"\r\n [value]=\"ordBy?.value\"\r\n [attr.data-testid]=\"'mecx-filter-btn-order-' + ordBy?.value?.toLowerCase()\"\r\n >x\r\n </monkey-option>\r\n </monkey-select-filter>\r\n </div>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #orderByList>\r\n <div class=\"d-flex full-width justify-content-end\">\r\n <div #ordersFilterMenu (click)=\"onHandleShowOrders(ordersFilterMenu)\">\r\n <monkey-button\r\n type=\"filter\"\r\n color=\"border\"\r\n icon=\"arrow-down-16\"\r\n iconPosition=\"right\"\r\n data-testid=\"mecx-filter-btn-ordination\"\r\n >\r\n {{ 'BUTTONS.ORDINATION' | translate }}\r\n </monkey-button>\r\n </div>\r\n </div>\r\n <div\r\n class=\"ml-1\"\r\n *monkeyecxPopover=\"\r\n _showOrder;\r\n target: $any(_actionElementOrder);\r\n closed: closeOrder;\r\n dir: 'rtl'\r\n \"\r\n >\r\n <div class=\"drop-down-orders-filter pt-4\">\r\n <ng-container *ngFor=\"let item of _ordersList\">\r\n <div class=\"px-4\">\r\n <span>{{ item.label | translate }}</span>\r\n <monkey-radiobutton [value]=\"item.value\" (onChange)=\"onHandleOrder($event, item.field)\">\r\n <monkey-option\r\n *ngFor=\"let ordBy of item.values\"\r\n [label]=\"ordBy?.label | translate\"\r\n [value]=\"ordBy?.value\"\r\n [attr.data-testid]=\"'mecx-filter-btn-ordination-' + ordBy?.value?.toLowerCase()\"\r\n >\r\n </monkey-option>\r\n </monkey-radiobutton>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</ng-template>\r\n", styles: [".drop-down-orders-filter{display:flex;flex-direction:column;background:#fafafa;border:1px solid #e9eaec;box-shadow:1px 17px 31px 5px #1d1d1d15;border-radius:16px!important}.drop-down-orders-filter ::ng-deep .mecx-radio-container{margin-top:16px}:host{display:flex;width:100%;align-items:center}@media screen and (max-width: 599px){:host .filter-content,:host .filter-input{flex-direction:column}}:host .filter-input .actions ::ng-deep monkey-button button{justify-content:center;white-space:nowrap}:host .filter-input .actions ::ng-deep monkey-button button monkey-icon{margin-right:0;margin-left:10px}@media screen and (max-width: 599px){:host .filter-input{flex-wrap:wrap}:host .filter-input .actions{flex:1 1}}:host .filter-input .mecx-button-filter{white-space:nowrap;justify-content:center}@media screen and (max-width: 959px){:host{flex-direction:column;max-width:100%}:host ::ng-deep monkey-input-filter{width:100%}:host ::ng-deep monkey-select-filter{width:100%}:host ::ng-deep monkey-button{width:100%}:host ::ng-deep monkey-button button{width:100%}}@media screen and (min-width: 960px){:host .actions ::ng-deep monkey-button button{width:170px}}:host .more-filters ::ng-deep monkey-button monkey-icon{margin-right:unset!important}:host .order{white-space:nowrap;align-self:flex-start}@media screen and (max-width: 599px){:host .order{align-self:unset}}@media screen and (min-width: 960px){:host .order ::ng-deep monkey-select-filter{width:unset}:host .order ::ng-deep monkey-button monkey-icon{margin-left:10px;margin-right:unset}}:host ::ng-deep monkey-button{margin-bottom:0}:host ::ng-deep mecx-form-field-filter mecx-form-field-body{height:40px;margin:0}:host ::ng-deep monkey-button-dropdown{color:#fff}:host ::ng-deep monkey-button-dropdown mecx-button-dropdown.trigger{background:#fff;border-radius:.5rem;border:1px solid #d6d6d6;height:40px;justify-content:center;width:40px}:host ::ng-deep monkey-button-dropdown mecx-button-dropdown.trigger mecx-button-dropdown__trigger{justify-content:center}:host ::ng-deep monkey-button-dropdown mecx-button-dropdown.trigger mecx-button-dropdown__trigger monkey-icon{margin-left:0}:host .separator{border-bottom:1px solid #ebebeb;margin-top:16px;margin-bottom:16px}\n"], components: [{ type: i1.MonkeyInputFilterComponent, selector: "monkey-input-filter", inputs: ["name", "label", "helperMessage", "placeholder", "icon", "type", "infoMessage", "errorMessage", "mask", "prefix", "onlyNumber", "onlyAlphaNumeric", "upperCase", "lowerCase", "capitalize", "currency", "iconPosition", "value"], outputs: ["onChange"] }, { type: i1.MonkeyButtonComponent, selector: "monkey-button", inputs: ["label", "icon", "iconPosition", "type", "color", "disabled", "size"] }, { type: i2.MECXFilterSelectedComponent, selector: "mecx-filter-selected", inputs: ["model"], outputs: ["onOpenFilters", "onClose", "onSubmit"] }, { type: i3.MECXFilterMenuComponent, selector: "mecx-filter-menu", inputs: ["model"], outputs: ["onClose", "onSubmit"] }, { type: i1.MonkeySelectFilterComponent, selector: "monkey-select-filter", inputs: ["placeholder", "icon", "type", "value"], outputs: ["onChange"] }, { type: i1.MonkeyOptionComponent, selector: "monkey-option", inputs: ["type", "label", "value", "selectAll", "selected", "enableClick"], outputs: ["onSelectOption"] }, { type: i1.MonkeyRadioButtonComponent, selector: "monkey-radiobutton", inputs: ["label", "helperMessage", "placeholder", "icon", "infoMessage", "errorMessage", "value"], outputs: ["onChange"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i5.MonkeyEcxPopoverDirective, selector: "[monkeyecxPopover]", inputs: ["monkeyecxPopover", "monkeyecxPopoverClosed", "monkeyecxPopoverTarget", "monkeyecxPopoverMinwidth", "monkeyecxPopoverBackdrop", "monkeyecxPopoverWatch", "monkeyecxPopoverDir", "monkeyecxPopoverContextmenu", "monkeyecxPopoverHeight"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "translate": i6.TranslatePipe } });
114
114
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: MECXFilterComponent, decorators: [{
115
115
  type: Component,
116
- args: [{ selector: 'mecx-filter', template: "<div class=\"d-flex full-width flex-column d-flex-gap-2 filter-content\">\r\n <div class=\"d-flex flex-column flex-md-row justify-content-between full-width\">\r\n <div class=\"d-flex full-width d-flex-gap-2 filter-input\">\r\n <ng-container *ngIf=\"enableSearch\">\r\n <monkey-input-filter\r\n [placeholder]=\"searchPlaceholder | translate\"\r\n (onChange)=\"onSearchFilter($event)\"\r\n icon=\"search-16\"\r\n iconPosition=\"left\"\r\n [(value)]=\"_search\"\r\n >\r\n </monkey-input-filter>\r\n </ng-container>\r\n <ng-container *ngIf=\"!_hasFilterByMenu\">\r\n <div *ngIf=\"enableAddFilter\" class=\"d-flex actions\" id=\"mecx-filters-add-filter\">\r\n <monkey-button\r\n type=\"filter\"\r\n color=\"border\"\r\n (click)=\"onHandleShowMenu()\"\r\n icon=\"more-16\"\r\n iconPosition=\"right\"\r\n >\r\n {{ 'BUTTONS.ADD-FILTER' | translate }}\r\n </monkey-button>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div class=\"order hidden-sm hidden-xs\">\r\n <div class=\"d-flex align-items-center flex-column flex-sm-row\">\r\n <ng-container *ngIf=\"!!complementTemplate\">\r\n <ng-container *ngTemplateOutlet=\"complementTemplate\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"enableOrder\">\r\n <ng-container *ngTemplateOutlet=\"orderBy\"></ng-container>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n <ng-container *ngIf=\"_hasFilterByMenu\">\r\n <div class=\"separator\"></div>\r\n <div class=\"d-flex full-width d-flex-gap-2 align-items-end\">\r\n <mecx-filter-selected\r\n class=\"d-flex-gap-2\"\r\n (onSubmit)=\"onHandleSubmit($event)\"\r\n (onClose)=\"onHandleClose()\"\r\n [model]=\"menus\"\r\n ></mecx-filter-selected>\r\n <div class=\"more-filters\">\r\n <monkey-button\r\n type=\"filter\"\r\n color=\"border\"\r\n icon=\"more-16\"\r\n id=\"mecx-filters-add-filter\"\r\n (click)=\"onHandleShowMenu()\"\r\n >\r\n </monkey-button>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <div class=\"order hidden-md hidden-lg\">\r\n <div class=\"d-flex align-items-center flex-column flex-sm-row\">\r\n <ng-container *ngIf=\"!!complementTemplate\">\r\n <ng-container *ngTemplateOutlet=\"complementTemplate\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"enableOrder\">\r\n <ng-container *ngTemplateOutlet=\"orderBy\"></ng-container>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<mecx-filter-menu\r\n *monkeyecxPopover=\"_showMenu; target: $any(_actionElement); closed: closeMenu; dir: 'ltr'\"\r\n (onSubmit)=\"onHandleSubmit($event)\"\r\n (onClose)=\"onHandleClose()\"\r\n [model]=\"menus\"\r\n>\r\n</mecx-filter-menu>\r\n\r\n<ng-template #orderBy>\r\n <ng-container *ngIf=\"!(_ordersList?.length > 0); else orderByList\">\r\n <div class=\"d-flex align-items-center flex-column flex-sm-row\">\r\n <monkey-select-filter\r\n (onChange)=\"onHandleOrder($event)\"\r\n [placeholder]=\"orderPlaceholder | translate\"\r\n type=\"none\"\r\n [(value)]=\"_order\"\r\n >\r\n <monkey-option\r\n *ngFor=\"let ordBy of orders\"\r\n [label]=\"ordBy?.label | translate\"\r\n [value]=\"ordBy?.value\"\r\n >x\r\n </monkey-option>\r\n </monkey-select-filter>\r\n </div>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #orderByList>\r\n <div class=\"d-flex full-width justify-content-end\">\r\n <div #ordersFilterMenu (click)=\"onHandleShowOrders(ordersFilterMenu)\">\r\n <monkey-button type=\"filter\" color=\"border\" icon=\"arrow-down-16\" iconPosition=\"right\">\r\n {{ 'BUTTONS.ORDINATION' | translate }}\r\n </monkey-button>\r\n </div>\r\n </div>\r\n <div\r\n class=\"ml-1\"\r\n *monkeyecxPopover=\"\r\n _showOrder;\r\n target: $any(_actionElementOrder);\r\n closed: closeOrder;\r\n dir: 'rtl'\r\n \"\r\n >\r\n <div class=\"drop-down-orders-filter pt-4\">\r\n <ng-container *ngFor=\"let item of _ordersList\">\r\n <div class=\"px-4\">\r\n <span>{{ item.label | translate }}</span>\r\n <monkey-radiobutton [value]=\"item.value\" (onChange)=\"onHandleOrder($event, item.field)\">\r\n <monkey-option\r\n *ngFor=\"let ordBy of item.values\"\r\n [label]=\"ordBy?.label | translate\"\r\n [value]=\"ordBy?.value\"\r\n >\r\n </monkey-option>\r\n </monkey-radiobutton>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</ng-template>\r\n", styles: [".drop-down-orders-filter{display:flex;flex-direction:column;background:#fafafa;border:1px solid #e9eaec;box-shadow:1px 17px 31px 5px #1d1d1d15;border-radius:16px!important}.drop-down-orders-filter ::ng-deep .mecx-radio-container{margin-top:16px}:host{display:flex;width:100%;align-items:center}@media screen and (max-width: 599px){:host .filter-content,:host .filter-input{flex-direction:column}}:host .filter-input .actions ::ng-deep monkey-button button{justify-content:center;white-space:nowrap}:host .filter-input .actions ::ng-deep monkey-button button monkey-icon{margin-right:0;margin-left:10px}@media screen and (max-width: 599px){:host .filter-input{flex-wrap:wrap}:host .filter-input .actions{flex:1 1}}:host .filter-input .mecx-button-filter{white-space:nowrap;justify-content:center}@media screen and (max-width: 959px){:host{flex-direction:column;max-width:100%}:host ::ng-deep monkey-input-filter{width:100%}:host ::ng-deep monkey-select-filter{width:100%}:host ::ng-deep monkey-button{width:100%}:host ::ng-deep monkey-button button{width:100%}}@media screen and (min-width: 960px){:host .actions ::ng-deep monkey-button button{width:170px}}:host .more-filters ::ng-deep monkey-button monkey-icon{margin-right:unset!important}:host .order{white-space:nowrap;align-self:flex-start}@media screen and (max-width: 599px){:host .order{align-self:unset}}@media screen and (min-width: 960px){:host .order ::ng-deep monkey-select-filter{width:unset}:host .order ::ng-deep monkey-button monkey-icon{margin-left:10px;margin-right:unset}}:host ::ng-deep monkey-button{margin-bottom:0}:host ::ng-deep mecx-form-field-filter mecx-form-field-body{height:40px;margin:0}:host ::ng-deep monkey-button-dropdown{color:#fff}:host ::ng-deep monkey-button-dropdown mecx-button-dropdown.trigger{background:#fff;border-radius:.5rem;border:1px solid #d6d6d6;height:40px;justify-content:center;width:40px}:host ::ng-deep monkey-button-dropdown mecx-button-dropdown.trigger mecx-button-dropdown__trigger{justify-content:center}:host ::ng-deep monkey-button-dropdown mecx-button-dropdown.trigger mecx-button-dropdown__trigger monkey-icon{margin-left:0}:host .separator{border-bottom:1px solid #ebebeb;margin-top:16px;margin-bottom:16px}\n"] }]
116
+ args: [{ selector: 'mecx-filter', template: "<div class=\"d-flex full-width flex-column d-flex-gap-2 filter-content\">\r\n <div class=\"d-flex flex-column flex-md-row justify-content-between full-width\">\r\n <div class=\"d-flex full-width d-flex-gap-2 filter-input\">\r\n <ng-container *ngIf=\"enableSearch\">\r\n <monkey-input-filter\r\n [placeholder]=\"searchPlaceholder | translate\"\r\n (onChange)=\"onSearchFilter($event)\"\r\n icon=\"search-16\"\r\n iconPosition=\"left\"\r\n [(value)]=\"_search\"\r\n data-testid=\"mecx-filter-input\"\r\n >\r\n </monkey-input-filter>\r\n </ng-container>\r\n <ng-container *ngIf=\"!_hasFilterByMenu\">\r\n <div *ngIf=\"enableAddFilter\" class=\"d-flex actions\" id=\"mecx-filters-add-filter\">\r\n <monkey-button\r\n type=\"filter\"\r\n color=\"border\"\r\n (click)=\"onHandleShowMenu()\"\r\n icon=\"more-16\"\r\n iconPosition=\"right\"\r\n data-testid=\"mecx-filter-btn-add-filter\"\r\n >\r\n {{ 'BUTTONS.ADD-FILTER' | translate }}\r\n </monkey-button>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div class=\"order hidden-sm hidden-xs\">\r\n <div class=\"d-flex align-items-center flex-column flex-sm-row\">\r\n <ng-container *ngIf=\"!!complementTemplate\">\r\n <ng-container *ngTemplateOutlet=\"complementTemplate\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"enableOrder\">\r\n <ng-container *ngTemplateOutlet=\"orderBy\"></ng-container>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n <ng-container *ngIf=\"_hasFilterByMenu\">\r\n <div class=\"separator\"></div>\r\n <div class=\"d-flex full-width d-flex-gap-2 align-items-end\">\r\n <mecx-filter-selected\r\n class=\"d-flex-gap-2\"\r\n (onSubmit)=\"onHandleSubmit($event)\"\r\n (onClose)=\"onHandleClose()\"\r\n [model]=\"menus\"\r\n ></mecx-filter-selected>\r\n <div class=\"more-filters\">\r\n <monkey-button\r\n type=\"filter\"\r\n color=\"border\"\r\n icon=\"more-16\"\r\n id=\"mecx-filters-add-filter\"\r\n (click)=\"onHandleShowMenu()\"\r\n >\r\n </monkey-button>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <div class=\"order hidden-md hidden-lg\">\r\n <div class=\"d-flex align-items-center flex-column flex-sm-row\">\r\n <ng-container *ngIf=\"!!complementTemplate\">\r\n <ng-container *ngTemplateOutlet=\"complementTemplate\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"enableOrder\">\r\n <ng-container *ngTemplateOutlet=\"orderBy\"></ng-container>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<mecx-filter-menu\r\n *monkeyecxPopover=\"_showMenu; target: $any(_actionElement); closed: closeMenu; dir: 'ltr'\"\r\n (onSubmit)=\"onHandleSubmit($event)\"\r\n (onClose)=\"onHandleClose()\"\r\n [model]=\"menus\"\r\n>\r\n</mecx-filter-menu>\r\n\r\n<ng-template #orderBy>\r\n <ng-container *ngIf=\"!(_ordersList?.length > 0); else orderByList\">\r\n <div class=\"d-flex align-items-center flex-column flex-sm-row\">\r\n <monkey-select-filter\r\n (onChange)=\"onHandleOrder($event)\"\r\n [placeholder]=\"orderPlaceholder | translate\"\r\n type=\"none\"\r\n [(value)]=\"_order\"\r\n data-testid=\"mecx-filter-btn-order\"\r\n >\r\n <monkey-option\r\n *ngFor=\"let ordBy of orders\"\r\n [label]=\"ordBy?.label | translate\"\r\n [value]=\"ordBy?.value\"\r\n [attr.data-testid]=\"'mecx-filter-btn-order-' + ordBy?.value?.toLowerCase()\"\r\n >x\r\n </monkey-option>\r\n </monkey-select-filter>\r\n </div>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #orderByList>\r\n <div class=\"d-flex full-width justify-content-end\">\r\n <div #ordersFilterMenu (click)=\"onHandleShowOrders(ordersFilterMenu)\">\r\n <monkey-button\r\n type=\"filter\"\r\n color=\"border\"\r\n icon=\"arrow-down-16\"\r\n iconPosition=\"right\"\r\n data-testid=\"mecx-filter-btn-ordination\"\r\n >\r\n {{ 'BUTTONS.ORDINATION' | translate }}\r\n </monkey-button>\r\n </div>\r\n </div>\r\n <div\r\n class=\"ml-1\"\r\n *monkeyecxPopover=\"\r\n _showOrder;\r\n target: $any(_actionElementOrder);\r\n closed: closeOrder;\r\n dir: 'rtl'\r\n \"\r\n >\r\n <div class=\"drop-down-orders-filter pt-4\">\r\n <ng-container *ngFor=\"let item of _ordersList\">\r\n <div class=\"px-4\">\r\n <span>{{ item.label | translate }}</span>\r\n <monkey-radiobutton [value]=\"item.value\" (onChange)=\"onHandleOrder($event, item.field)\">\r\n <monkey-option\r\n *ngFor=\"let ordBy of item.values\"\r\n [label]=\"ordBy?.label | translate\"\r\n [value]=\"ordBy?.value\"\r\n [attr.data-testid]=\"'mecx-filter-btn-ordination-' + ordBy?.value?.toLowerCase()\"\r\n >\r\n </monkey-option>\r\n </monkey-radiobutton>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</ng-template>\r\n", styles: [".drop-down-orders-filter{display:flex;flex-direction:column;background:#fafafa;border:1px solid #e9eaec;box-shadow:1px 17px 31px 5px #1d1d1d15;border-radius:16px!important}.drop-down-orders-filter ::ng-deep .mecx-radio-container{margin-top:16px}:host{display:flex;width:100%;align-items:center}@media screen and (max-width: 599px){:host .filter-content,:host .filter-input{flex-direction:column}}:host .filter-input .actions ::ng-deep monkey-button button{justify-content:center;white-space:nowrap}:host .filter-input .actions ::ng-deep monkey-button button monkey-icon{margin-right:0;margin-left:10px}@media screen and (max-width: 599px){:host .filter-input{flex-wrap:wrap}:host .filter-input .actions{flex:1 1}}:host .filter-input .mecx-button-filter{white-space:nowrap;justify-content:center}@media screen and (max-width: 959px){:host{flex-direction:column;max-width:100%}:host ::ng-deep monkey-input-filter{width:100%}:host ::ng-deep monkey-select-filter{width:100%}:host ::ng-deep monkey-button{width:100%}:host ::ng-deep monkey-button button{width:100%}}@media screen and (min-width: 960px){:host .actions ::ng-deep monkey-button button{width:170px}}:host .more-filters ::ng-deep monkey-button monkey-icon{margin-right:unset!important}:host .order{white-space:nowrap;align-self:flex-start}@media screen and (max-width: 599px){:host .order{align-self:unset}}@media screen and (min-width: 960px){:host .order ::ng-deep monkey-select-filter{width:unset}:host .order ::ng-deep monkey-button monkey-icon{margin-left:10px;margin-right:unset}}:host ::ng-deep monkey-button{margin-bottom:0}:host ::ng-deep mecx-form-field-filter mecx-form-field-body{height:40px;margin:0}:host ::ng-deep monkey-button-dropdown{color:#fff}:host ::ng-deep monkey-button-dropdown mecx-button-dropdown.trigger{background:#fff;border-radius:.5rem;border:1px solid #d6d6d6;height:40px;justify-content:center;width:40px}:host ::ng-deep monkey-button-dropdown mecx-button-dropdown.trigger mecx-button-dropdown__trigger{justify-content:center}:host ::ng-deep monkey-button-dropdown mecx-button-dropdown.trigger mecx-button-dropdown__trigger monkey-icon{margin-left:0}:host .separator{border-bottom:1px solid #ebebeb;margin-top:16px;margin-bottom:16px}\n"] }]
117
117
  }], ctorParameters: function () { return []; }, propDecorators: { searchPlaceholder: [{
118
118
  type: Input
119
119
  }], orderPlaceholder: [{
@@ -141,4 +141,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
141
141
  }], onFilter: [{
142
142
  type: Output
143
143
  }] } });
144
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21vbmtleS1mcm9udC1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9zaGFyZWQvZmlsdGVyL2ZpbHRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tb25rZXktZnJvbnQtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvc2hhcmVkL2ZpbHRlci9maWx0ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFHUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBSUwsY0FBYyxFQUNmLE1BQU0sbUJBQW1CLENBQUM7Ozs7Ozs7O0FBTzNCLE1BQU0sT0FBTyxtQkFBbUI7SUE0RDlCO1FBM0RTLHNCQUFpQixHQUFHLEVBQUUsQ0FBQztRQUV2QixxQkFBZ0IsR0FBRyxFQUFFLENBQUM7UUFFdEIsVUFBSyxHQUEwQixFQUFFLENBQUM7UUFFbEMsV0FBTSxHQUEyQixFQUFFLENBQUM7UUFFcEMsaUJBQVksR0FBRyxJQUFJLENBQUM7UUFFcEIsb0JBQWUsR0FBRyxJQUFJLENBQUM7UUFFdkIsZ0JBQVcsR0FBRyxJQUFJLENBQUM7UUFtQm5CLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFFakIsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFFN0MsV0FBTSxHQUF5QixJQUFJLENBQUM7UUFFcEMsWUFBTyxHQUFHLEVBQUUsQ0FBQztRQUViLGdCQUFXLEdBQW9DLElBQUksQ0FBQztRQUVwRCxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBRWxCLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFFbkIscUJBQWdCLEdBQUcsS0FBSyxDQUFDO1FBRXpCLG1CQUFjLEdBQWdCLElBQUks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Z0JBS0csU0FBUztzQkFBakIsS0FBSztnQkFFSSxRQUFRO3NCQUFqQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE9uQ2hhbmdlcyxcclxuICBPdXRwdXQsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBUZW1wbGF0ZVJlZlxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gIE1vbmtleUVjeEZpbHRlck1lbnUsXHJcbiAgTW9ua2V5RWN4RmlsdGVyT3JkZXIsXHJcbiAgTW9ua2V5RWN4RmlsdGVyT3JkZXJzTGlzdCxcclxuICBNb25rZXlFY3hVdGlsc1xyXG59IGZyb20gJ21vbmtleS1mcm9udC1jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbWVjeC1maWx0ZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9maWx0ZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2ZpbHRlci5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNRUNYRmlsdGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcclxuICBASW5wdXQoKSBzZWFyY2hQbGFjZWhvbGRlciA9ICcnO1xyXG5cclxuICBASW5wdXQoKSBvcmRlclBsYWNlaG9sZGVyID0gJyc7XHJcblxyXG4gIEBJbnB1dCgpIG1lbnVzOiBNb25rZXlFY3hGaWx0ZXJNZW51W10gPSBbXTtcclxuXHJcbiAgQElucHV0KCkgb3JkZXJzOiBNb25rZXlFY3hGaWx0ZXJPcmRlcltdID0gW107XHJcblxyXG4gIEBJbnB1dCgpIGVuYWJsZVNlYXJjaCA9IHRydWU7XHJcblxyXG4gIEBJbnB1dCgpIGVuYWJsZUFkZEZpbHRlciA9IHRydWU7XHJcblxyXG4gIEBJbnB1dCgpIGVuYWJsZU9yZGVyID0gdHJ1ZTtcclxuXHJcbiAgQElucHV0KCkgY29tcGxlbWVudFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHNldCBzZWFyY2godmFsdWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5fc2VhcmNoID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHNldCBvcmRlcih2YWx1ZTogYW55KSB7XHJcbiAgICB0aGlzLl9vcmRlciA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgb3JkZXJzTGlzdCh2YWx1ZTogYW55W10pIHtcclxuICAgIHRoaXMuX29yZGVyc0xpc3QgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpIGlzTG9hZGluZyA9IGZhbHNlO1xyXG5cclxuICBAT3V0cHV0KCkgb25GaWx0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgX29yZGVyOiBNb25rZXlFY3hGaWx0ZXJPcmRlciA9IG51bGw7XHJcblxyXG4gIF9zZWFyY2ggPSAnJztcclxuXHJcbiAgX29yZGVyc0xpc3Q6IE1vbmtleUVjeEZpbHRlck9yZGVyc0xpc3QgfCBhbnkgPSBudWxsO1xyXG5cclxuICBfc2hvd01lbnUgPSBmYWxzZTtcclxuXHJcbiAgX3Nob3dPcmRlciA9IGZhbHNlO1xyXG5cclxuICBfaGFzRmlsdGVyQnlNZW51ID0gZmFsc2U7XHJcblxyXG4gIF9hY3Rpb25FbGVtZW50OiBIVE1MRWxlbWVudCA9IG51bGw7XHJcblxyXG4gIF9hY3Rpb25FbGVtZW50T3JkZXI6IEhUTUxFbGVtZW50ID0gbnVsbDtcclxuXHJcbiAgY2xvc2VNZW51ID0gKCkgPT4ge1xyXG4gICAgdGhpcy5fc2hvd01lbnUgPSBmYWxzZTtcclxuICB9O1xyXG5cclxuICBjbG9zZU9yZGVyID0gKCkgPT4ge1xyXG4gICAgdGhpcy5fc2hvd09yZGVyID0gZmFsc2U7XHJcbiAgfTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAvLyBub3QgdG8gZG9cclxuICB9XHJcblxyXG4gIHByaXZhdGUgdmFsaWRhdGVWYWx1ZSh7IGZpZWxkLCB2YWx1ZSwgZ2V0VmFsdWUgfTogYW55KSB7XHJcbiAgICB0cnkge1xyXG4gICAgICB2YWx1ZSA9IHZhbHVlIHx8IGdldFZhbHVlKCk/LltmaWVsZF07XHJcbiAgICAgIGlmICghdmFsdWUpIHJldHVybiBmYWxzZTtcclxuICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcpIHtcclxuICAgICAgICByZXR1cm4gdmFsdWUgJiYgSlNPTi5zdHJpbmdpZnkodmFsdWUpICE9PSAne30nO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBNb25rZXlFY3hVdGlscy5wZXJzaXN0TnVsbEVtcHR5VW5kZWZpbmVkKHZhbHVlKTtcclxuICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgLy8gbm90IHRvIGRvXHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhbmRsZUZpbHRlcnMoKSB7XHJcbiAgICBjb25zdCB7IG1lbnVzIH0gPSB0aGlzO1xyXG4gICAgbGV0IGZvdW5kID0gbWVudXMuZmluZCgoXzogYW55KSA9PiB7XHJcbiAgICAgIHJldHVybiB0aGlzLnZhbGlkYXRlVmFsdWUoXyk7XHJcbiAgICB9KTtcclxuICAgIGlmICghZm91bmQpIHtcclxuICAgICAgZm91bmQgPSBtZW51cy5maW5kKCh7IGNoaWxkcmVuIH0pID0+IHtcclxuICAgICAgICByZXR1cm4gKGNoaWxkcmVuIHx8IFtdKT8uZmluZCgoXzogYW55KSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy52YWxpZGF0ZVZhbHVlKF8pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIHRoaXMuX2hhc0ZpbHRlckJ5TWVudSA9ICEhZm91bmQ7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICBpZiAoY2hhbmdlcy5tZW51cykge1xyXG4gICAgICBjb25zdCB7IGN1cnJlbnRWYWx1ZSB9ID0gY2hhbmdlcy5tZW51cztcclxuICAgICAgaWYgKGN1cnJlbnRWYWx1ZSAmJiBKU09OLnN0cmluZ2lmeShjdXJyZW50VmFsdWUpICE9PSAne30nKSB7XHJcbiAgICAgICAgdGhpcy5oYW5kbGVGaWx0ZXJzKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uU2VhcmNoRmlsdGVyKGV2ZW50OiBzdHJpbmcpIHtcclxuICAgIHRoaXMub25GaWx0ZXIubmV4dCh7IHNlYXJjaDogZXZlbnQgfSk7XHJcbiAgfVxyXG5cclxuICBvbkNsZWFyRmlsdGVyKCkge1xyXG4gICAgdGhpcy5fc2VhcmNoID0gJyc7XHJcbiAgICB0aGlzLm9uRmlsdGVyLm5leHQoeyBzZWFyY2g6IG51bGwgfSk7XHJcbiAgfVxyXG5cclxuICBvbkhhbmRsZVN1Ym1pdChldmVudDogYW55KSB7XHJcbiAgICB0aGlzLm9uRmlsdGVyLm5leHQoZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgb25IYW5kbGVTaG93TWVudSgpIHtcclxuICAgIHRoaXMuX2FjdGlvbkVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbWVjeC1maWx0ZXJzLWFkZC1maWx0ZXInKTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLl9zaG93TWVudSA9IHRydWU7XHJcbiAgICB9LCAwKTtcclxuICB9XHJcblxyXG4gIG9uSGFuZGxlQ2xvc2UoKSB7XHJcbiAgICB0aGlzLl9zaG93TWVudSA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgb25IYW5kbGVTaG93T3JkZXJzKGVsOiBIVE1MRWxlbWVudCkge1xyXG4gICAgdGhpcy5fYWN0aW9uRWxlbWVudE9yZGVyID0gZWw7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5fc2hvd09yZGVyID0gdHJ1ZTtcclxuICAgIH0sIDEwKTtcclxuICB9XHJcblxyXG4gIG9uSGFuZGxlT3JkZXIoZXZlbnQ6IGFueSwgZmllbGQ6IHN0cmluZyA9ICdzb3J0Jykge1xyXG4gICAgdGhpcy5vbkZpbHRlci5uZXh0KHsgW2ZpZWxkXTogZXZlbnQgfSk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJkLWZsZXggZnVsbC13aWR0aCBmbGV4LWNvbHVtbiBkLWZsZXgtZ2FwLTIgZmlsdGVyLWNvbnRlbnRcIj5cclxuICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGZsZXgtbWQtcm93IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGZ1bGwtd2lkdGhcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZnVsbC13aWR0aCBkLWZsZXgtZ2FwLTIgZmlsdGVyLWlucHV0XCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJlbmFibGVTZWFyY2hcIj5cclxuICAgICAgICA8bW9ua2V5LWlucHV0LWZpbHRlclxyXG4gICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInNlYXJjaFBsYWNlaG9sZGVyIHwgdHJhbnNsYXRlXCJcclxuICAgICAgICAgIChvbkNoYW5nZSk9XCJvblNlYXJjaEZpbHRlcigkZXZlbnQpXCJcclxuICAgICAgICAgIGljb249XCJzZWFyY2gtMTZcIlxyXG4gICAgICAgICAgaWNvblBvc2l0aW9uPVwibGVmdFwiXHJcbiAgICAgICAgICBbKHZhbHVlKV09XCJfc2VhcmNoXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgPC9tb25rZXktaW5wdXQtZmlsdGVyPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFfaGFzRmlsdGVyQnlNZW51XCI+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cImVuYWJsZUFkZEZpbHRlclwiIGNsYXNzPVwiZC1mbGV4IGFjdGlvbnNcIiBpZD1cIm1lY3gtZmlsdGVycy1hZGQtZmlsdGVyXCI+XHJcbiAgICAgICAgICA8bW9ua2V5LWJ1dHRvblxyXG4gICAgICAgICAgICB0eXBlPVwiZmlsdGVyXCJcclxuICAgICAgICAgICAgY29sb3I9XCJib3JkZXJcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwib25IYW5kbGVTaG93TWVudSgpXCJcclxuICAgICAgICAgICAgaWNvbj1cIm1vcmUtMTZcIlxyXG4gICAgICAgICAgICBpY29uUG9zaXRpb249XCJyaWdodFwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIHt7ICdCVVRUT05TLkFERC1GSUxURVInIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICA8L21vbmtleS1idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwib3JkZXIgaGlkZGVuLXNtIGhpZGRlbi14c1wiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBmbGV4LWNvbHVtbiBmbGV4LXNtLXJvd1wiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhIWNvbXBsZW1lbnRUZW1wbGF0ZVwiPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbXBsZW1lbnRUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJlbmFibGVPcmRlclwiPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIm9yZGVyQnlcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiX2hhc0ZpbHRlckJ5TWVudVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInNlcGFyYXRvclwiPjwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBmdWxsLXdpZHRoIGQtZmxleC1nYXAtMiBhbGlnbi1pdGVtcy1lbmRcIj5cclxuICAgICAgPG1lY3gtZmlsdGVyLXNlbGVjdGVkXHJcbiAgICAgICAgY2xhc3M9XCJkLWZsZXgtZ2FwLTJcIlxyXG4gICAgICAgIChvblN1Ym1pdCk9XCJvbkhhbmRsZVN1Ym1pdCgkZXZlbnQpXCJcclxuICAgICAgICAob25DbG9zZSk9XCJvbkhhbmRsZUNsb3NlKClcIlxyXG4gICAgICAgIFttb2RlbF09XCJtZW51c1wiXHJcbiAgICAgID48L21lY3gtZmlsdGVyLXNlbGVjdGVkPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibW9yZS1maWx0ZXJzXCI+XHJcbiAgICAgICAgPG1vbmtleS1idXR0b25cclxuICAgICAgICAgIHR5cGU9XCJmaWx0ZXJcIlxyXG4gICAgICAgICAgY29sb3I9XCJib3JkZXJcIlxyXG4gICAgICAgICAgaWNvbj1cIm1vcmUtMTZcIlxyXG4gICAgICAgICAgaWQ9XCJtZWN4LWZpbHRlcnMtYWRkLWZpbHRlclwiXHJcbiAgICAgICAgICAoY2xpY2spPVwib25IYW5kbGVTaG93TWVudSgpXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgPC9tb25rZXktYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG4gIDxkaXYgY2xhc3M9XCJvcmRlciBoaWRkZW4tbWQgaGlkZGVuLWxnXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBmbGV4LWNvbHVtbiBmbGV4LXNtLXJvd1wiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiISFjb21wbGVtZW50VGVtcGxhdGVcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29tcGxlbWVudFRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZW5hYmxlT3JkZXJcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwib3JkZXJCeVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjxtZWN4LWZpbHRlci1tZW51XHJcbiAgKm1vbmtleWVjeFBvcG92ZXI9XCJfc2hvd01lbnU7IHRhcmdldDogJGFueShfYWN0aW9uRWxlbWVudCk7IGNsb3NlZDogY2xvc2VNZW51OyBkaXI6ICdsdHInXCJcclxuICAob25TdWJtaXQpPVwib25IYW5kbGVTdWJtaXQoJGV2ZW50KVwiXHJcbiAgKG9uQ2xvc2UpPVwib25IYW5kbGVDbG9zZSgpXCJcclxuICBbbW9kZWxdPVwibWVudXNcIlxyXG4+XHJcbjwvbWVjeC1maWx0ZXItbWVudT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjb3JkZXJCeT5cclxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiIShfb3JkZXJzTGlzdD8ubGVuZ3RoID4gMCk7IGVsc2Ugb3JkZXJCeUxpc3RcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGZsZXgtY29sdW1uIGZsZXgtc20tcm93XCI+XHJcbiAgICAgIDxtb25rZXktc2VsZWN0LWZpbHRlclxyXG4gICAgICAgIChvbkNoYW5nZSk9XCJvbkhhbmRsZU9yZGVyKCRldmVudClcIlxyXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCJvcmRlclBsYWNlaG9sZGVyIHwgdHJhbnNsYXRlXCJcclxuICAgICAgICB0eXBlPVwibm9uZVwiXHJcbiAgICAgICAgWyh2YWx1ZSldPVwiX29yZGVyXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxtb25rZXktb3B0aW9uXHJcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgb3JkQnkgb2Ygb3JkZXJzXCJcclxuICAgICAgICAgIFtsYWJlbF09XCJvcmRCeT8ubGFiZWwgfCB0cmFuc2xhdGVcIlxyXG4gICAgICAgICAgW3ZhbHVlXT1cIm9yZEJ5Py52YWx1ZVwiXHJcbiAgICAgICAgICA+eFxyXG4gICAgICAgIDwvbW9ua2V5LW9wdGlvbj5cclxuICAgICAgPC9tb25rZXktc2VsZWN0LWZpbHRlcj5cclxuICAgIDwvZGl2PlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNvcmRlckJ5TGlzdD5cclxuICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZ1bGwtd2lkdGgganVzdGlmeS1jb250ZW50LWVuZFwiPlxyXG4gICAgPGRpdiAjb3JkZXJzRmlsdGVyTWVudSAoY2xpY2spPVwib25IYW5kbGVTaG93T3JkZXJzKG9yZGVyc0ZpbHRlck1lbnUpXCI+XHJcbiAgICAgIDxtb25rZXktYnV0dG9uIHR5cGU9XCJmaWx0ZXJcIiBjb2xvcj1cImJvcmRlclwiIGljb249XCJhcnJvdy1kb3duLTE2XCIgaWNvblBvc2l0aW9uPVwicmlnaHRcIj5cclxuICAgICAgICB7eyAnQlVUVE9OUy5PUkRJTkFUSU9OJyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICA8L21vbmtleS1idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuICA8ZGl2XHJcbiAgICBjbGFzcz1cIm1sLTFcIlxyXG4gICAgKm1vbmtleWVjeFBvcG92ZXI9XCJcclxuICAgICAgX3Nob3dPcmRlcjtcclxuICAgICAgdGFyZ2V0OiAkYW55KF9hY3Rpb25FbGVtZW50T3JkZXIpO1xyXG4gICAgICBjbG9zZWQ6IGNsb3NlT3JkZXI7XHJcbiAgICAgIGRpcjogJ3J0bCdcclxuICAgIFwiXHJcbiAgPlxyXG4gICAgPGRpdiBjbGFzcz1cImRyb3AtZG93bi1vcmRlcnMtZmlsdGVyIHB0LTRcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBfb3JkZXJzTGlzdFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJweC00XCI+XHJcbiAgICAgICAgICA8c3Bhbj57eyBpdGVtLmxhYmVsIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxyXG4gICAgICAgICAgPG1vbmtleS1yYWRpb2J1dHRvbiBbdmFsdWVdPVwiaXRlbS52YWx1ZVwiIChvbkNoYW5nZSk9XCJvbkhhbmRsZU9yZGVyKCRldmVudCwgaXRlbS5maWVsZClcIj5cclxuICAgICAgICAgICAgPG1vbmtleS1vcHRpb25cclxuICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgb3JkQnkgb2YgaXRlbS52YWx1ZXNcIlxyXG4gICAgICAgICAgICAgIFtsYWJlbF09XCJvcmRCeT8ubGFiZWwgfCB0cmFuc2xhdGVcIlxyXG4gICAgICAgICAgICAgIFt2YWx1ZV09XCJvcmRCeT8udmFsdWVcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDwvbW9ua2V5LW9wdGlvbj5cclxuICAgICAgICAgIDwvbW9ua2V5LXJhZGlvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
144
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21vbmtleS1mcm9udC1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9zaGFyZWQvZmlsdGVyL2ZpbHRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tb25rZXktZnJvbnQtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvc2hhcmVkL2ZpbHRlci9maWx0ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFHUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBSUwsY0FBYyxFQUNmLE1BQU0sbUJBQW1CLENBQUM7Ozs7Ozs7O0FBTzNCLE1BQU0sT0FBTyxtQkFBbUI7SUE0RDlCO1FBM0RTLHNCQUFpQixHQUFHLEVBQUUsQ0FBQztRQUV2QixxQkFBZ0IsR0FBRyxFQUFFLENBQUM7UUFFdEIsVUFBSyxHQUEwQixFQUFFLENBQUM7UUFFbEMsV0FBTSxHQUEyQixFQUFFLENBQUM7UUFFcEMsaUJBQVksR0FBRyxJQUFJLENBQUM7UUFFcEIsb0JBQWUsR0FBRyxJQUFJLENBQUM7UUFFdkIsZ0JBQVcsR0FBRyxJQUFJLENBQUM7UUFtQm5CLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFFakIsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFFN0MsV0FBTSxHQUF5QixJQUFJLENBQUM7UUFFcEMsWUFBTyxHQUFHLEVBQUUsQ0FBQztRQUViLGdCQUFXLEdBQW9DLElBQUksQ0FBQztRQUVwRCxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBRWxCLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFFbkIscUJBQWdCLEdBQUcsS0FBSyxDQUFDO1FBRXpCLG1CQUFjLEdBQWdCLElBQUks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Z0JBS0csU0FBUztzQkFBakIsS0FBSztnQkFFSSxRQUFRO3NCQUFqQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE9uQ2hhbmdlcyxcclxuICBPdXRwdXQsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBUZW1wbGF0ZVJlZlxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gIE1vbmtleUVjeEZpbHRlck1lbnUsXHJcbiAgTW9ua2V5RWN4RmlsdGVyT3JkZXIsXHJcbiAgTW9ua2V5RWN4RmlsdGVyT3JkZXJzTGlzdCxcclxuICBNb25rZXlFY3hVdGlsc1xyXG59IGZyb20gJ21vbmtleS1mcm9udC1jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbWVjeC1maWx0ZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9maWx0ZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2ZpbHRlci5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNRUNYRmlsdGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcclxuICBASW5wdXQoKSBzZWFyY2hQbGFjZWhvbGRlciA9ICcnO1xyXG5cclxuICBASW5wdXQoKSBvcmRlclBsYWNlaG9sZGVyID0gJyc7XHJcblxyXG4gIEBJbnB1dCgpIG1lbnVzOiBNb25rZXlFY3hGaWx0ZXJNZW51W10gPSBbXTtcclxuXHJcbiAgQElucHV0KCkgb3JkZXJzOiBNb25rZXlFY3hGaWx0ZXJPcmRlcltdID0gW107XHJcblxyXG4gIEBJbnB1dCgpIGVuYWJsZVNlYXJjaCA9IHRydWU7XHJcblxyXG4gIEBJbnB1dCgpIGVuYWJsZUFkZEZpbHRlciA9IHRydWU7XHJcblxyXG4gIEBJbnB1dCgpIGVuYWJsZU9yZGVyID0gdHJ1ZTtcclxuXHJcbiAgQElucHV0KCkgY29tcGxlbWVudFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHNldCBzZWFyY2godmFsdWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5fc2VhcmNoID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHNldCBvcmRlcih2YWx1ZTogYW55KSB7XHJcbiAgICB0aGlzLl9vcmRlciA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgb3JkZXJzTGlzdCh2YWx1ZTogYW55W10pIHtcclxuICAgIHRoaXMuX29yZGVyc0xpc3QgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpIGlzTG9hZGluZyA9IGZhbHNlO1xyXG5cclxuICBAT3V0cHV0KCkgb25GaWx0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgX29yZGVyOiBNb25rZXlFY3hGaWx0ZXJPcmRlciA9IG51bGw7XHJcblxyXG4gIF9zZWFyY2ggPSAnJztcclxuXHJcbiAgX29yZGVyc0xpc3Q6IE1vbmtleUVjeEZpbHRlck9yZGVyc0xpc3QgfCBhbnkgPSBudWxsO1xyXG5cclxuICBfc2hvd01lbnUgPSBmYWxzZTtcclxuXHJcbiAgX3Nob3dPcmRlciA9IGZhbHNlO1xyXG5cclxuICBfaGFzRmlsdGVyQnlNZW51ID0gZmFsc2U7XHJcblxyXG4gIF9hY3Rpb25FbGVtZW50OiBIVE1MRWxlbWVudCA9IG51bGw7XHJcblxyXG4gIF9hY3Rpb25FbGVtZW50T3JkZXI6IEhUTUxFbGVtZW50ID0gbnVsbDtcclxuXHJcbiAgY2xvc2VNZW51ID0gKCkgPT4ge1xyXG4gICAgdGhpcy5fc2hvd01lbnUgPSBmYWxzZTtcclxuICB9O1xyXG5cclxuICBjbG9zZU9yZGVyID0gKCkgPT4ge1xyXG4gICAgdGhpcy5fc2hvd09yZGVyID0gZmFsc2U7XHJcbiAgfTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAvLyBub3QgdG8gZG9cclxuICB9XHJcblxyXG4gIHByaXZhdGUgdmFsaWRhdGVWYWx1ZSh7IGZpZWxkLCB2YWx1ZSwgZ2V0VmFsdWUgfTogYW55KSB7XHJcbiAgICB0cnkge1xyXG4gICAgICB2YWx1ZSA9IHZhbHVlIHx8IGdldFZhbHVlKCk/LltmaWVsZF07XHJcbiAgICAgIGlmICghdmFsdWUpIHJldHVybiBmYWxzZTtcclxuICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcpIHtcclxuICAgICAgICByZXR1cm4gdmFsdWUgJiYgSlNPTi5zdHJpbmdpZnkodmFsdWUpICE9PSAne30nO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBNb25rZXlFY3hVdGlscy5wZXJzaXN0TnVsbEVtcHR5VW5kZWZpbmVkKHZhbHVlKTtcclxuICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgLy8gbm90IHRvIGRvXHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhbmRsZUZpbHRlcnMoKSB7XHJcbiAgICBjb25zdCB7IG1lbnVzIH0gPSB0aGlzO1xyXG4gICAgbGV0IGZvdW5kID0gbWVudXMuZmluZCgoXzogYW55KSA9PiB7XHJcbiAgICAgIHJldHVybiB0aGlzLnZhbGlkYXRlVmFsdWUoXyk7XHJcbiAgICB9KTtcclxuICAgIGlmICghZm91bmQpIHtcclxuICAgICAgZm91bmQgPSBtZW51cy5maW5kKCh7IGNoaWxkcmVuIH0pID0+IHtcclxuICAgICAgICByZXR1cm4gKGNoaWxkcmVuIHx8IFtdKT8uZmluZCgoXzogYW55KSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy52YWxpZGF0ZVZhbHVlKF8pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIHRoaXMuX2hhc0ZpbHRlckJ5TWVudSA9ICEhZm91bmQ7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICBpZiAoY2hhbmdlcy5tZW51cykge1xyXG4gICAgICBjb25zdCB7IGN1cnJlbnRWYWx1ZSB9ID0gY2hhbmdlcy5tZW51cztcclxuICAgICAgaWYgKGN1cnJlbnRWYWx1ZSAmJiBKU09OLnN0cmluZ2lmeShjdXJyZW50VmFsdWUpICE9PSAne30nKSB7XHJcbiAgICAgICAgdGhpcy5oYW5kbGVGaWx0ZXJzKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uU2VhcmNoRmlsdGVyKGV2ZW50OiBzdHJpbmcpIHtcclxuICAgIHRoaXMub25GaWx0ZXIubmV4dCh7IHNlYXJjaDogZXZlbnQgfSk7XHJcbiAgfVxyXG5cclxuICBvbkNsZWFyRmlsdGVyKCkge1xyXG4gICAgdGhpcy5fc2VhcmNoID0gJyc7XHJcbiAgICB0aGlzLm9uRmlsdGVyLm5leHQoeyBzZWFyY2g6IG51bGwgfSk7XHJcbiAgfVxyXG5cclxuICBvbkhhbmRsZVN1Ym1pdChldmVudDogYW55KSB7XHJcbiAgICB0aGlzLm9uRmlsdGVyLm5leHQoZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgb25IYW5kbGVTaG93TWVudSgpIHtcclxuICAgIHRoaXMuX2FjdGlvbkVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbWVjeC1maWx0ZXJzLWFkZC1maWx0ZXInKTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLl9zaG93TWVudSA9IHRydWU7XHJcbiAgICB9LCAwKTtcclxuICB9XHJcblxyXG4gIG9uSGFuZGxlQ2xvc2UoKSB7XHJcbiAgICB0aGlzLl9zaG93TWVudSA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgb25IYW5kbGVTaG93T3JkZXJzKGVsOiBIVE1MRWxlbWVudCkge1xyXG4gICAgdGhpcy5fYWN0aW9uRWxlbWVudE9yZGVyID0gZWw7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5fc2hvd09yZGVyID0gdHJ1ZTtcclxuICAgIH0sIDEwKTtcclxuICB9XHJcblxyXG4gIG9uSGFuZGxlT3JkZXIoZXZlbnQ6IGFueSwgZmllbGQ6IHN0cmluZyA9ICdzb3J0Jykge1xyXG4gICAgdGhpcy5vbkZpbHRlci5uZXh0KHsgW2ZpZWxkXTogZXZlbnQgfSk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJkLWZsZXggZnVsbC13aWR0aCBmbGV4LWNvbHVtbiBkLWZsZXgtZ2FwLTIgZmlsdGVyLWNvbnRlbnRcIj5cclxuICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGZsZXgtbWQtcm93IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGZ1bGwtd2lkdGhcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZnVsbC13aWR0aCBkLWZsZXgtZ2FwLTIgZmlsdGVyLWlucHV0XCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJlbmFibGVTZWFyY2hcIj5cclxuICAgICAgICA8bW9ua2V5LWlucHV0LWZpbHRlclxyXG4gICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInNlYXJjaFBsYWNlaG9sZGVyIHwgdHJhbnNsYXRlXCJcclxuICAgICAgICAgIChvbkNoYW5nZSk9XCJvblNlYXJjaEZpbHRlcigkZXZlbnQpXCJcclxuICAgICAgICAgIGljb249XCJzZWFyY2gtMTZcIlxyXG4gICAgICAgICAgaWNvblBvc2l0aW9uPVwibGVmdFwiXHJcbiAgICAgICAgICBbKHZhbHVlKV09XCJfc2VhcmNoXCJcclxuICAgICAgICAgIGRhdGEtdGVzdGlkPVwibWVjeC1maWx0ZXItaW5wdXRcIlxyXG4gICAgICAgID5cclxuICAgICAgICA8L21vbmtleS1pbnB1dC1maWx0ZXI+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIV9oYXNGaWx0ZXJCeU1lbnVcIj5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwiZW5hYmxlQWRkRmlsdGVyXCIgY2xhc3M9XCJkLWZsZXggYWN0aW9uc1wiIGlkPVwibWVjeC1maWx0ZXJzLWFkZC1maWx0ZXJcIj5cclxuICAgICAgICAgIDxtb25rZXktYnV0dG9uXHJcbiAgICAgICAgICAgIHR5cGU9XCJmaWx0ZXJcIlxyXG4gICAgICAgICAgICBjb2xvcj1cImJvcmRlclwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJvbkhhbmRsZVNob3dNZW51KClcIlxyXG4gICAgICAgICAgICBpY29uPVwibW9yZS0xNlwiXHJcbiAgICAgICAgICAgIGljb25Qb3NpdGlvbj1cInJpZ2h0XCJcclxuICAgICAgICAgICAgZGF0YS10ZXN0aWQ9XCJtZWN4LWZpbHRlci1idG4tYWRkLWZpbHRlclwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIHt7ICdCVVRUT05TLkFERC1GSUxURVInIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICA8L21vbmtleS1idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwib3JkZXIgaGlkZGVuLXNtIGhpZGRlbi14c1wiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBmbGV4LWNvbHVtbiBmbGV4LXNtLXJvd1wiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhIWNvbXBsZW1lbnRUZW1wbGF0ZVwiPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbXBsZW1lbnRUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJlbmFibGVPcmRlclwiPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIm9yZGVyQnlcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiX2hhc0ZpbHRlckJ5TWVudVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInNlcGFyYXRvclwiPjwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBmdWxsLXdpZHRoIGQtZmxleC1nYXAtMiBhbGlnbi1pdGVtcy1lbmRcIj5cclxuICAgICAgPG1lY3gtZmlsdGVyLXNlbGVjdGVkXHJcbiAgICAgICAgY2xhc3M9XCJkLWZsZXgtZ2FwLTJcIlxyXG4gICAgICAgIChvblN1Ym1pdCk9XCJvbkhhbmRsZVN1Ym1pdCgkZXZlbnQpXCJcclxuICAgICAgICAob25DbG9zZSk9XCJvbkhhbmRsZUNsb3NlKClcIlxyXG4gICAgICAgIFttb2RlbF09XCJtZW51c1wiXHJcbiAgICAgID48L21lY3gtZmlsdGVyLXNlbGVjdGVkPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibW9yZS1maWx0ZXJzXCI+XHJcbiAgICAgICAgPG1vbmtleS1idXR0b25cclxuICAgICAgICAgIHR5cGU9XCJmaWx0ZXJcIlxyXG4gICAgICAgICAgY29sb3I9XCJib3JkZXJcIlxyXG4gICAgICAgICAgaWNvbj1cIm1vcmUtMTZcIlxyXG4gICAgICAgICAgaWQ9XCJtZWN4LWZpbHRlcnMtYWRkLWZpbHRlclwiXHJcbiAgICAgICAgICAoY2xpY2spPVwib25IYW5kbGVTaG93TWVudSgpXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgPC9tb25rZXktYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG4gIDxkaXYgY2xhc3M9XCJvcmRlciBoaWRkZW4tbWQgaGlkZGVuLWxnXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBmbGV4LWNvbHVtbiBmbGV4LXNtLXJvd1wiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiISFjb21wbGVtZW50VGVtcGxhdGVcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29tcGxlbWVudFRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZW5hYmxlT3JkZXJcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwib3JkZXJCeVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjxtZWN4LWZpbHRlci1tZW51XHJcbiAgKm1vbmtleWVjeFBvcG92ZXI9XCJfc2hvd01lbnU7IHRhcmdldDogJGFueShfYWN0aW9uRWxlbWVudCk7IGNsb3NlZDogY2xvc2VNZW51OyBkaXI6ICdsdHInXCJcclxuICAob25TdWJtaXQpPVwib25IYW5kbGVTdWJtaXQoJGV2ZW50KVwiXHJcbiAgKG9uQ2xvc2UpPVwib25IYW5kbGVDbG9zZSgpXCJcclxuICBbbW9kZWxdPVwibWVudXNcIlxyXG4+XHJcbjwvbWVjeC1maWx0ZXItbWVudT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjb3JkZXJCeT5cclxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiIShfb3JkZXJzTGlzdD8ubGVuZ3RoID4gMCk7IGVsc2Ugb3JkZXJCeUxpc3RcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGZsZXgtY29sdW1uIGZsZXgtc20tcm93XCI+XHJcbiAgICAgIDxtb25rZXktc2VsZWN0LWZpbHRlclxyXG4gICAgICAgIChvbkNoYW5nZSk9XCJvbkhhbmRsZU9yZGVyKCRldmVudClcIlxyXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCJvcmRlclBsYWNlaG9sZGVyIHwgdHJhbnNsYXRlXCJcclxuICAgICAgICB0eXBlPVwibm9uZVwiXHJcbiAgICAgICAgWyh2YWx1ZSldPVwiX29yZGVyXCJcclxuICAgICAgICBkYXRhLXRlc3RpZD1cIm1lY3gtZmlsdGVyLWJ0bi1vcmRlclwiXHJcbiAgICAgID5cclxuICAgICAgICA8bW9ua2V5LW9wdGlvblxyXG4gICAgICAgICAgKm5nRm9yPVwibGV0IG9yZEJ5IG9mIG9yZGVyc1wiXHJcbiAgICAgICAgICBbbGFiZWxdPVwib3JkQnk/LmxhYmVsIHwgdHJhbnNsYXRlXCJcclxuICAgICAgICAgIFt2YWx1ZV09XCJvcmRCeT8udmFsdWVcIlxyXG4gICAgICAgICAgW2F0dHIuZGF0YS10ZXN0aWRdPVwiJ21lY3gtZmlsdGVyLWJ0bi1vcmRlci0nICsgb3JkQnk/LnZhbHVlPy50b0xvd2VyQ2FzZSgpXCJcclxuICAgICAgICAgID54XHJcbiAgICAgICAgPC9tb25rZXktb3B0aW9uPlxyXG4gICAgICA8L21vbmtleS1zZWxlY3QtZmlsdGVyPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI29yZGVyQnlMaXN0PlxyXG4gIDxkaXYgY2xhc3M9XCJkLWZsZXggZnVsbC13aWR0aCBqdXN0aWZ5LWNvbnRlbnQtZW5kXCI+XHJcbiAgICA8ZGl2ICNvcmRlcnNGaWx0ZXJNZW51IChjbGljayk9XCJvbkhhbmRsZVNob3dPcmRlcnMob3JkZXJzRmlsdGVyTWVudSlcIj5cclxuICAgICAgPG1vbmtleS1idXR0b25cclxuICAgICAgICB0eXBlPVwiZmlsdGVyXCJcclxuICAgICAgICBjb2xvcj1cImJvcmRlclwiXHJcbiAgICAgICAgaWNvbj1cImFycm93LWRvd24tMTZcIlxyXG4gICAgICAgIGljb25Qb3NpdGlvbj1cInJpZ2h0XCJcclxuICAgICAgICBkYXRhLXRlc3RpZD1cIm1lY3gtZmlsdGVyLWJ0bi1vcmRpbmF0aW9uXCJcclxuICAgICAgPlxyXG4gICAgICAgIHt7ICdCVVRUT05TLk9SRElOQVRJT04nIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgIDwvbW9ua2V5LWJ1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwibWwtMVwiXHJcbiAgICAqbW9ua2V5ZWN4UG9wb3Zlcj1cIlxyXG4gICAgICBfc2hvd09yZGVyO1xyXG4gICAgICB0YXJnZXQ6ICRhbnkoX2FjdGlvbkVsZW1lbnRPcmRlcik7XHJcbiAgICAgIGNsb3NlZDogY2xvc2VPcmRlcjtcclxuICAgICAgZGlyOiAncnRsJ1xyXG4gICAgXCJcclxuICA+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZHJvcC1kb3duLW9yZGVycy1maWx0ZXIgcHQtNFwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIF9vcmRlcnNMaXN0XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInB4LTRcIj5cclxuICAgICAgICAgIDxzcGFuPnt7IGl0ZW0ubGFiZWwgfCB0cmFuc2xhdGUgfX08L3NwYW4+XHJcbiAgICAgICAgICA8bW9ua2V5LXJhZGlvYnV0dG9uIFt2YWx1ZV09XCJpdGVtLnZhbHVlXCIgKG9uQ2hhbmdlKT1cIm9uSGFuZGxlT3JkZXIoJGV2ZW50LCBpdGVtLmZpZWxkKVwiPlxyXG4gICAgICAgICAgICA8bW9ua2V5LW9wdGlvblxyXG4gICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBvcmRCeSBvZiBpdGVtLnZhbHVlc1wiXHJcbiAgICAgICAgICAgICAgW2xhYmVsXT1cIm9yZEJ5Py5sYWJlbCB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgICAgW3ZhbHVlXT1cIm9yZEJ5Py52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgW2F0dHIuZGF0YS10ZXN0aWRdPVwiJ21lY3gtZmlsdGVyLWJ0bi1vcmRpbmF0aW9uLScgKyBvcmRCeT8udmFsdWU/LnRvTG93ZXJDYXNlKClcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDwvbW9ua2V5LW9wdGlvbj5cclxuICAgICAgICAgIDwvbW9ua2V5LXJhZGlvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
@@ -106,10 +106,10 @@ export class MECXFilterMenuComponent {
106
106
  }
107
107
  }
108
108
  MECXFilterMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: MECXFilterMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
109
- MECXFilterMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: MECXFilterMenuComponent, selector: "mecx-filter-menu", inputs: { model: "model" }, outputs: { onClose: "onClose", onSubmit: "onSubmit" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"d-flex flex-column\" #actionElement>\r\n <ng-container *ngFor=\"let menu of _model; let index = index\">\r\n <ng-container *ngIf=\"menu?.children; else withoutChildren\">\r\n <div class=\"item no-action\">\r\n {{ menu.label | translate }}\r\n </div>\r\n <div class=\"separator\"></div>\r\n <ng-container *ngFor=\"let child of menu?.children\">\r\n <div class=\"item children\" (click)=\"onHandleChildrenAction(menu, child)\">\r\n {{ child.label | translate }}\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n <ng-template #withoutChildren>\r\n <div class=\"item\" (click)=\"onHandleShowMenu(menu)\">\r\n {{ menu.label | translate }}\r\n </div>\r\n </ng-template>\r\n <ng-container *ngIf=\"_model[index+1]?.group as next; _model[index]?.group as current\">\r\n <div class=\"separator\" *ngIf=\"next !== current\"></div>\r\n </ng-container>\r\n </ng-container>\r\n</div>\r\n<ng-container\r\n *monkeyecxPopover=\"_showMenu; target: $any(actionElement); closed: closeMenu; dir: 'rt'\">\r\n <mecx-filter-options [option]=\"_menuOption\" (onClose)=\"onHandleClose()\"\r\n (onSubmit)=\"onHandleSubmit($event)\" [closeDirectly]=\"true\"></mecx-filter-options>\r\n</ng-container>", styles: [":host{display:flex;flex-direction:column;background:#fafafa;border:1px solid #d6d6d6;box-sizing:border-box;box-shadow:0 4px 36px -8px #6d6d6d3a;border-radius:16px!important;min-width:192px;margin:4px 8px;overflow:auto;max-height:500px}:host ::ng-deep monkey-button{width:100%}:host ::ng-deep monkey-button button{justify-content:flex-start!important;width:100%}:host .item{font-style:normal;font-weight:400;font-size:16px;line-height:24px;color:#72717e;padding:8px 24px}:host .item.no-action{cursor:not-allowed;padding:8px;margin:0!important;font-weight:500}:host .item:first-child{margin:12px 0 0}:host .item:last-child{margin:0 0 12px}:host .item:not(.no-action){cursor:pointer}:host .item:not(.no-action):hover{background-color:var(--mecx-color-theme-200)!important;color:var(--mecx-color-theme-main)!important;font-weight:400}:host .separator{border-bottom:1px solid #ebebeb}\n"], components: [{ type: i1.MECXFilterOptionsComponent, selector: "mecx-filter-options", inputs: ["option", "closeDirectly"], outputs: ["onClose", "onRemove", "onSubmit", "onShowFromChildren"] }], directives: [{ type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.MonkeyEcxPopoverDirective, selector: "[monkeyecxPopover]", inputs: ["monkeyecxPopover", "monkeyecxPopoverClosed", "monkeyecxPopoverTarget", "monkeyecxPopoverMinwidth", "monkeyecxPopoverBackdrop", "monkeyecxPopoverWatch", "monkeyecxPopoverDir", "monkeyecxPopoverContextmenu", "monkeyecxPopoverHeight"] }], pipes: { "translate": i4.TranslatePipe } });
109
+ MECXFilterMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: MECXFilterMenuComponent, selector: "mecx-filter-menu", inputs: { model: "model" }, outputs: { onClose: "onClose", onSubmit: "onSubmit" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"d-flex flex-column\" #actionElement>\r\n <ng-container *ngFor=\"let menu of _model; let index = index\">\r\n <ng-container *ngIf=\"menu?.children; else withoutChildren\">\r\n <div class=\"item no-action\">\r\n {{ menu.label | translate }}\r\n </div>\r\n <div class=\"separator\"></div>\r\n <ng-container *ngFor=\"let child of menu?.children\">\r\n <div\r\n class=\"item children\"\r\n (click)=\"onHandleChildrenAction(menu, child)\"\r\n [attr.data-testid]=\"'mecx-filter-item-children-btn-' + child?.field?.toLowerCase()\"\r\n >\r\n {{ child.label | translate }}\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n <ng-template #withoutChildren>\r\n <div\r\n class=\"item\"\r\n (click)=\"onHandleShowMenu(menu)\"\r\n [attr.data-testid]=\"'mecx-filter-menu-btn-' + menu?.label?.toLowerCase()\"\r\n >\r\n {{ menu.label | translate }}\r\n </div>\r\n </ng-template>\r\n <ng-container *ngIf=\"_model[index + 1]?.group as next; _model: [index]?.group as current\">\r\n <div class=\"separator\" *ngIf=\"next !== current\"></div>\r\n </ng-container>\r\n </ng-container>\r\n</div>\r\n<ng-container\r\n *monkeyecxPopover=\"_showMenu; target: $any(actionElement); closed: closeMenu; dir: 'rt'\"\r\n>\r\n <mecx-filter-options\r\n [option]=\"_menuOption\"\r\n (onClose)=\"onHandleClose()\"\r\n (onSubmit)=\"onHandleSubmit($event)\"\r\n [closeDirectly]=\"true\"\r\n ></mecx-filter-options>\r\n</ng-container>\r\n", styles: [":host{display:flex;flex-direction:column;background:#fafafa;border:1px solid #d6d6d6;box-sizing:border-box;box-shadow:0 4px 36px -8px #6d6d6d3a;border-radius:16px!important;min-width:192px;margin:4px 8px;overflow:auto;max-height:500px}:host ::ng-deep monkey-button{width:100%}:host ::ng-deep monkey-button button{justify-content:flex-start!important;width:100%}:host .item{font-style:normal;font-weight:400;font-size:16px;line-height:24px;color:#72717e;padding:8px 24px}:host .item.no-action{cursor:not-allowed;padding:8px;margin:0!important;font-weight:500}:host .item:first-child{margin:12px 0 0}:host .item:last-child{margin:0 0 12px}:host .item:not(.no-action){cursor:pointer}:host .item:not(.no-action):hover{background-color:var(--mecx-color-theme-200)!important;color:var(--mecx-color-theme-main)!important;font-weight:400}:host .separator{border-bottom:1px solid #ebebeb}\n"], components: [{ type: i1.MECXFilterOptionsComponent, selector: "mecx-filter-options", inputs: ["option", "closeDirectly"], outputs: ["onClose", "onRemove", "onSubmit", "onShowFromChildren"] }], directives: [{ type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.MonkeyEcxPopoverDirective, selector: "[monkeyecxPopover]", inputs: ["monkeyecxPopover", "monkeyecxPopoverClosed", "monkeyecxPopoverTarget", "monkeyecxPopoverMinwidth", "monkeyecxPopoverBackdrop", "monkeyecxPopoverWatch", "monkeyecxPopoverDir", "monkeyecxPopoverContextmenu", "monkeyecxPopoverHeight"] }], pipes: { "translate": i4.TranslatePipe } });
110
110
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: MECXFilterMenuComponent, decorators: [{
111
111
  type: Component,
112
- args: [{ selector: 'mecx-filter-menu', template: "<div class=\"d-flex flex-column\" #actionElement>\r\n <ng-container *ngFor=\"let menu of _model; let index = index\">\r\n <ng-container *ngIf=\"menu?.children; else withoutChildren\">\r\n <div class=\"item no-action\">\r\n {{ menu.label | translate }}\r\n </div>\r\n <div class=\"separator\"></div>\r\n <ng-container *ngFor=\"let child of menu?.children\">\r\n <div class=\"item children\" (click)=\"onHandleChildrenAction(menu, child)\">\r\n {{ child.label | translate }}\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n <ng-template #withoutChildren>\r\n <div class=\"item\" (click)=\"onHandleShowMenu(menu)\">\r\n {{ menu.label | translate }}\r\n </div>\r\n </ng-template>\r\n <ng-container *ngIf=\"_model[index+1]?.group as next; _model[index]?.group as current\">\r\n <div class=\"separator\" *ngIf=\"next !== current\"></div>\r\n </ng-container>\r\n </ng-container>\r\n</div>\r\n<ng-container\r\n *monkeyecxPopover=\"_showMenu; target: $any(actionElement); closed: closeMenu; dir: 'rt'\">\r\n <mecx-filter-options [option]=\"_menuOption\" (onClose)=\"onHandleClose()\"\r\n (onSubmit)=\"onHandleSubmit($event)\" [closeDirectly]=\"true\"></mecx-filter-options>\r\n</ng-container>", styles: [":host{display:flex;flex-direction:column;background:#fafafa;border:1px solid #d6d6d6;box-sizing:border-box;box-shadow:0 4px 36px -8px #6d6d6d3a;border-radius:16px!important;min-width:192px;margin:4px 8px;overflow:auto;max-height:500px}:host ::ng-deep monkey-button{width:100%}:host ::ng-deep monkey-button button{justify-content:flex-start!important;width:100%}:host .item{font-style:normal;font-weight:400;font-size:16px;line-height:24px;color:#72717e;padding:8px 24px}:host .item.no-action{cursor:not-allowed;padding:8px;margin:0!important;font-weight:500}:host .item:first-child{margin:12px 0 0}:host .item:last-child{margin:0 0 12px}:host .item:not(.no-action){cursor:pointer}:host .item:not(.no-action):hover{background-color:var(--mecx-color-theme-200)!important;color:var(--mecx-color-theme-main)!important;font-weight:400}:host .separator{border-bottom:1px solid #ebebeb}\n"] }]
112
+ args: [{ selector: 'mecx-filter-menu', template: "<div class=\"d-flex flex-column\" #actionElement>\r\n <ng-container *ngFor=\"let menu of _model; let index = index\">\r\n <ng-container *ngIf=\"menu?.children; else withoutChildren\">\r\n <div class=\"item no-action\">\r\n {{ menu.label | translate }}\r\n </div>\r\n <div class=\"separator\"></div>\r\n <ng-container *ngFor=\"let child of menu?.children\">\r\n <div\r\n class=\"item children\"\r\n (click)=\"onHandleChildrenAction(menu, child)\"\r\n [attr.data-testid]=\"'mecx-filter-item-children-btn-' + child?.field?.toLowerCase()\"\r\n >\r\n {{ child.label | translate }}\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n <ng-template #withoutChildren>\r\n <div\r\n class=\"item\"\r\n (click)=\"onHandleShowMenu(menu)\"\r\n [attr.data-testid]=\"'mecx-filter-menu-btn-' + menu?.label?.toLowerCase()\"\r\n >\r\n {{ menu.label | translate }}\r\n </div>\r\n </ng-template>\r\n <ng-container *ngIf=\"_model[index + 1]?.group as next; _model: [index]?.group as current\">\r\n <div class=\"separator\" *ngIf=\"next !== current\"></div>\r\n </ng-container>\r\n </ng-container>\r\n</div>\r\n<ng-container\r\n *monkeyecxPopover=\"_showMenu; target: $any(actionElement); closed: closeMenu; dir: 'rt'\"\r\n>\r\n <mecx-filter-options\r\n [option]=\"_menuOption\"\r\n (onClose)=\"onHandleClose()\"\r\n (onSubmit)=\"onHandleSubmit($event)\"\r\n [closeDirectly]=\"true\"\r\n ></mecx-filter-options>\r\n</ng-container>\r\n", styles: [":host{display:flex;flex-direction:column;background:#fafafa;border:1px solid #d6d6d6;box-sizing:border-box;box-shadow:0 4px 36px -8px #6d6d6d3a;border-radius:16px!important;min-width:192px;margin:4px 8px;overflow:auto;max-height:500px}:host ::ng-deep monkey-button{width:100%}:host ::ng-deep monkey-button button{justify-content:flex-start!important;width:100%}:host .item{font-style:normal;font-weight:400;font-size:16px;line-height:24px;color:#72717e;padding:8px 24px}:host .item.no-action{cursor:not-allowed;padding:8px;margin:0!important;font-weight:500}:host .item:first-child{margin:12px 0 0}:host .item:last-child{margin:0 0 12px}:host .item:not(.no-action){cursor:pointer}:host .item:not(.no-action):hover{background-color:var(--mecx-color-theme-200)!important;color:var(--mecx-color-theme-main)!important;font-weight:400}:host .separator{border-bottom:1px solid #ebebeb}\n"] }]
113
113
  }], ctorParameters: function () { return []; }, propDecorators: { model: [{
114
114
  type: Input
115
115
  }], onClose: [{
@@ -117,4 +117,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
117
117
  }], onSubmit: [{
118
118
  type: Output
119
119
  }] } });
120
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tb25rZXktZnJvbnQtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvc2hhcmVkL2ZpbHRlci9tZW51L21lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW9ua2V5LWZyb250LWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3NoYXJlZC9maWx0ZXIvbWVudS9tZW51LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ2pHLE9BQU8sRUFBb0QsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7Ozs7OztBQU9yRyxNQUFNLE9BQU8sdUJBQXVCO0lBbUJsQztRQWxCUyxVQUFLLEdBQTBCLEVBQUUsQ0FBQztRQUVqQyxZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUVsQyxhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUU3QyxvQkFBZSxHQUFhLElBQUksQ0FBQztRQUVqQyxXQUFNLEdBQTBCLEVBQUUsQ0FBQztRQUVuQyxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBRWxCLGdCQUFXLEdBQXNELElBQUksQ0FBQztRQUV0RSxjQUFTLEdBQUcsR0FBRyxFQUFFO1lBQ2YsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDekIsQ0FBQyxDQUFDO1FBR0EsWUFBWTtJQUNkLENBQUM7SUFFTyxhQUFhLENBQUMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBTztRQUNuRCxJQUFJO1lBQ0YsS0FBSyxHQUFHLEtBQUssSUFBSSxRQUFRLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lB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U0FDSjthQUFNO1lBQ0wsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7WUFDdEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7WUFDekIsSUFBSSxDQUFDLGNBQWMsR0FBRyxDQUFDLEtBQVUsRUFBRSxFQUFFO2dCQUNuQyxJQUFJLENBQUMsbUJBQW1CLENBQUM7b0JBQ3ZCLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDO2lCQUN0QyxDQUFDLENBQUM7WUFDTCxDQUFDLENBQUM7U0FDSDtJQUNILENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxNQUEyQjtRQUMxQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUN0QixJQUFJLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQztJQUM1QixDQUFDO0lBRUQsYUFBYTtRQUNYLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELGNBQWMsQ0FBQyxLQUFVO1FBQ3ZCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNsQyxDQUFDOztvSEFoSFUsdUJBQXVCO3dHQUF2Qix1QkFBdUIsZ0tDUnBDLDZ3Q0EyQmU7MkZEbkJGLHVCQUF1QjtrQkFMbkMsU0FBUzsrQkFDRSxrQkFBa0I7MEVBS25CLEtBQUs7c0JBQWIsS0FBSztnQkFFSSxPQUFPO3NCQUFoQixNQUFNO2dCQUVHLFFBQVE7c0JBQWpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNb25rZXlFY3hGaWx0ZXJNZW51LCBNb25rZXlFY3hGaWx0ZXJNZW51Q2hpbGRyZW4sIE1vbmtleUVjeFV0aWxzIH0gZnJvbSAnbW9ua2V5LWZyb250LWNvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZWN4LWZpbHRlci1tZW51JyxcbiAgdGVtcGxhdGVVcmw6ICcuL21lbnUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tZW51LmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgTUVDWEZpbHRlck1lbnVDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBtb2RlbDogTW9ua2V5RWN4RmlsdGVyTWVudVtdID0gW107XG5cbiAgQE91dHB1dCgpIG9uQ2xvc2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBAT3V0cHV0KCkgb25TdWJtaXQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBfb25IYW5kbGVTdWJtaXQ6IEZ1bmN0aW9uID0gbnVsbDtcblxuICBfbW9kZWw6IE1vbmtleUVjeEZpbHRlck1lbnVbXSA9IFtdO1xuXG4gIF9zaG93TWVudSA9IGZhbHNlO1xuXG4gIF9tZW51T3B0aW9uOiBNb25rZXlFY3hGaWx0ZXJNZW51IHwgTW9ua2V5RWN4RmlsdGVyTWVudUNoaWxkcmVuID0gbnVsbDtcblxuICBjbG9zZU1lbnUgPSAoKSA9PiB7XG4gICAgdGhpcy5fc2hvd01lbnUgPSBmYWxzZTtcbiAgfTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICAvLyBub3QgdG8gZG9cbiAgfVxuXG4gIHByaXZhdGUgdmFsaWRhdGVWYWx1ZSh7IGZpZWxkLCB2YWx1ZSwgZ2V0VmFsdWUgfTogYW55KSB7XG4gICAgdHJ5IHtcbiAgICAgIHZhbHVlID0gdmFsdWUgfHwgZ2V0VmFsdWUoKT8uW2ZpZWxkXTtcbiAgICAgIGlmICghdmFsdWUpIHJldHVybiBmYWxzZTtcbiAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZSAmJiBKU09OLnN0cmluZ2lmeSh2YWx1ZSkgIT09ICd7fSc7XG4gICAgICB9XG4gICAgICByZXR1cm4gTW9ua2V5RWN4VXRpbHMucGVyc2lzdE51bGxFbXB0eVVuZGVmaW5lZCh2YWx1ZSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgLy8gbm90IHRvIGRvXG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgb25IYW5kbGVTdWJtaXRWYWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgdGhpcy5vblN1Ym1pdC5uZXh0KHZhbHVlKTtcbiAgICB0aGlzLm9uSGFuZGxlQ2xvc2UoKTtcbiAgfVxuXG4gIHByaXZhdGUgb25IYW5kbGVNZW51cyh2YWx1ZTogYW55W10pIHtcbiAgICB0aGlzLl9tb2RlbCA9IHZhbHVlPy5tYXAoKF86IGFueSkgPT4ge1xuICAgICAgY29uc3QgeyBjaGlsZHJlbiB9ID0gXztcbiAgICAgIGxldCBvYmogPSBudWxsO1xuICAgICAgaWYgKGNoaWxkcmVuKSB7XG4gICAgICAgIG9iaiA9IHtcbiAgICAgICAgICAuLi5fLFxuICAgICAgICAgIGNoaWxkcmVuOiBjaGlsZHJlbj8uZmlsdGVyKChfOiBhbnkpID0+IHtcbiAgICAgICAgICAgIHJldHVybiAhdGhpcy52YWxpZGF0ZVZhbHVlKF8pO1xuICAgICAgICAgIH0pXG4gICAgICAgIH07XG4gICAgICB9IGVsc2UgaWYgKCF0aGlzLnZhbGlkYXRlVmFsdWUoXykpIHtcbiAgICAgICAgb2JqID0ge1xuICAgICAgICAgIC4uLl8sXG4gICAgICAgICAgLi4ub2JqIHx8IHt9XG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBvYmo7XG4gICAgfSk/LmZpbHRlcigoXykgPT4ge1xuICAgICAgcmV0dXJuIF87XG4gICAgfSk7XG5cbiAgICB0aGlzLl9tb2RlbCA9IHRoaXMuX21vZGVsPy5zb3J0KChhLCBiKSA9PiB7XG4gICAgICBjb25zdCBncm91cEEgPSBgJHthPy5ncm91cH1gLnRvTG93ZXJDYXNlKCk7XG4gICAgICBjb25zdCBncm91cEIgPSBgJHtiPy5ncm91cH1gLnRvTG93ZXJDYXNlKCk7XG4gICAgICByZXR1cm4gZ3JvdXBBICE9PSBncm91cEIgPyAxIDogLTE7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKGNoYW5nZXMubW9kZWwpIHtcbiAgICAgIGNvbnN0IHsgY3VycmVudFZhbHVlIH0gPSBjaGFuZ2VzLm1vZGVsO1xuICAgICAgaWYgKGN1cnJlbnRWYWx1ZSAmJiBKU09OLnN0cmluZ2lmeShjdXJyZW50VmFsdWUpICE9PSAne30nKSB7XG4gICAgICAgIHRoaXMub25IYW5kbGVNZW51cyhjdXJyZW50VmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG9uSGFuZGxlQ2hpbGRyZW5BY3Rpb24ob3B0aW9uOiBNb25rZXlFY3hGaWx0ZXJNZW51LCBjaGlsZDogTW9ua2V5RWN4RmlsdGVyTWVudUNoaWxkcmVuKSB7XG4gICAgY29uc3QgeyBmaWVsZCwgdHlwZSwgYWN0aW9uIH0gPSBjaGlsZDtcbiAgICBpZiAodHlwZSA9PT0gJ3dpdGgtYWN0aW9uJykge1xuICAgICAgdGhpcy5vbkhhbmRsZVN1Ym1pdFZhbHVlKHtcbiAgICAgICAgW29wdGlvbi5maWVsZF06IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICBbZmllbGRdOiBhY3Rpb24oKVxuICAgICAgICB9KVxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX3Nob3dNZW51ID0gdHJ1ZTtcbiAgICAgIHRoaXMuX21lbnVPcHRpb24gPSBjaGlsZDtcbiAgICAgIHRoaXMub25IYW5kbGVTdWJtaXQgPSAoZXZlbnQ6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLm9uSGFuZGxlU3VibWl0VmFsdWUoe1xuICAgICAgICAgIFtvcHRpb24uZmllbGRdOiBKU09OLnN0cmluZ2lmeShldmVudClcbiAgICAgICAgfSk7XG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIG9uSGFuZGxlU2hvd01lbnUob3B0aW9uOiBNb25rZXlFY3hGaWx0ZXJNZW51KSB7XG4gICAgdGhpcy5fc2hvd01lbnUgPSB0cnVlO1xuICAgIHRoaXMuX21lbnVPcHRpb24gPSBvcHRpb247XG4gIH1cblxuICBvbkhhbmRsZUNsb3NlKCkge1xuICAgIHRoaXMuX3Nob3dNZW51ID0gZmFsc2U7XG4gICAgdGhpcy5vbkNsb3NlLm5leHQoKTtcbiAgfVxuXG4gIG9uSGFuZGxlU3VibWl0KGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLm9uSGFuZGxlU3VibWl0VmFsdWUoZXZlbnQpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uXCIgI2FjdGlvbkVsZW1lbnQ+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgbWVudSBvZiBfbW9kZWw7IGxldCBpbmRleCA9IGluZGV4XCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibWVudT8uY2hpbGRyZW47IGVsc2Ugd2l0aG91dENoaWxkcmVuXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJpdGVtIG5vLWFjdGlvblwiPlxyXG4gICAgICAgIHt7IG1lbnUubGFiZWwgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJzZXBhcmF0b3JcIj48L2Rpdj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY2hpbGQgb2YgbWVudT8uY2hpbGRyZW5cIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaXRlbSBjaGlsZHJlblwiIChjbGljayk9XCJvbkhhbmRsZUNoaWxkcmVuQWN0aW9uKG1lbnUsIGNoaWxkKVwiPlxyXG4gICAgICAgICAge3sgY2hpbGQubGFiZWwgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDxuZy10ZW1wbGF0ZSAjd2l0aG91dENoaWxkcmVuPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiaXRlbVwiIChjbGljayk9XCJvbkhhbmRsZVNob3dNZW51KG1lbnUpXCI+XHJcbiAgICAgICAge3sgbWVudS5sYWJlbCB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiX21vZGVsW2luZGV4KzFdPy5ncm91cCBhcyBuZXh0OyBfbW9kZWxbaW5kZXhdPy5ncm91cCBhcyBjdXJyZW50XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJzZXBhcmF0b3JcIiAqbmdJZj1cIm5leHQgIT09IGN1cnJlbnRcIj48L2Rpdj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG48L2Rpdj5cclxuPG5nLWNvbnRhaW5lclxyXG4gICptb25rZXllY3hQb3BvdmVyPVwiX3Nob3dNZW51OyB0YXJnZXQ6ICRhbnkoYWN0aW9uRWxlbWVudCk7IGNsb3NlZDogY2xvc2VNZW51OyBkaXI6ICdydCdcIj5cclxuICA8bWVjeC1maWx0ZXItb3B0aW9ucyBbb3B0aW9uXT1cIl9tZW51T3B0aW9uXCIgKG9uQ2xvc2UpPVwib25IYW5kbGVDbG9zZSgpXCJcclxuICAgIChvblN1Ym1pdCk9XCJvbkhhbmRsZVN1Ym1pdCgkZXZlbnQpXCIgW2Nsb3NlRGlyZWN0bHldPVwidHJ1ZVwiPjwvbWVjeC1maWx0ZXItb3B0aW9ucz5cclxuPC9uZy1jb250YWluZXI+Il19
120
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tb25rZXktZnJvbnQtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvc2hhcmVkL2ZpbHRlci9tZW51L21lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW9ua2V5LWZyb250LWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3NoYXJlZC9maWx0ZXIvbWVudS9tZW51LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ2pHLE9BQU8sRUFBb0QsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7Ozs7OztBQU9yRyxNQUFNLE9BQU8sdUJBQXVCO0lBbUJsQztRQWxCUyxVQUFLLEdBQTBCLEVBQUUsQ0FBQztRQUVqQyxZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUVsQyxhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUU3QyxvQkFBZSxHQUFhLElBQUksQ0FBQztRQUVqQyxXQUFNLEdBQTBCLEVBQUUsQ0FBQztRQUVuQyxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBRWxCLGdCQUFXLEdBQXNELElBQUksQ0FBQztRQUV0RSxjQUFTLEdBQUcsR0FBRyxFQUFFO1lBQ2YsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDekIsQ0FBQyxDQUFDO1FBR0EsWUFBWTtJQUNkLENBQUM7SUFFTyxhQUFhLENBQUMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBTztRQUNuRCxJQUFJO1lBQ0YsS0FBSyxHQUFHLEtBQUssSUFBSSxRQUFRLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lB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U0FDSjthQUFNO1lBQ0wsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7WUFDdEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7WUFDekIsSUFBSSxDQUFDLGNBQWMsR0FBRyxDQUFDLEtBQVUsRUFBRSxFQUFFO2dCQUNuQyxJQUFJLENBQUMsbUJBQW1CLENBQUM7b0JBQ3ZCLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDO2lCQUN0QyxDQUFDLENBQUM7WUFDTCxDQUFDLENBQUM7U0FDSDtJQUNILENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxNQUEyQjtRQUMxQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUN0QixJQUFJLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQztJQUM1QixDQUFDO0lBRUQsYUFBYTtRQUNYLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELGNBQWMsQ0FBQyxLQUFVO1FBQ3ZCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNsQyxDQUFDOztvSEFoSFUsdUJBQXVCO3dHQUF2Qix1QkFBdUIsZ0tDUnBDLG9qREF5Q0E7MkZEakNhLHVCQUF1QjtrQkFMbkMsU0FBUzsrQkFDRSxrQkFBa0I7MEVBS25CLEtBQUs7c0JBQWIsS0FBSztnQkFFSSxPQUFPO3NCQUFoQixNQUFNO2dCQUVHLFFBQVE7c0JBQWpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNb25rZXlFY3hGaWx0ZXJNZW51LCBNb25rZXlFY3hGaWx0ZXJNZW51Q2hpbGRyZW4sIE1vbmtleUVjeFV0aWxzIH0gZnJvbSAnbW9ua2V5LWZyb250LWNvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZWN4LWZpbHRlci1tZW51JyxcbiAgdGVtcGxhdGVVcmw6ICcuL21lbnUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tZW51LmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgTUVDWEZpbHRlck1lbnVDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBtb2RlbDogTW9ua2V5RWN4RmlsdGVyTWVudVtdID0gW107XG5cbiAgQE91dHB1dCgpIG9uQ2xvc2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBAT3V0cHV0KCkgb25TdWJtaXQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBfb25IYW5kbGVTdWJtaXQ6IEZ1bmN0aW9uID0gbnVsbDtcblxuICBfbW9kZWw6IE1vbmtleUVjeEZpbHRlck1lbnVbXSA9IFtdO1xuXG4gIF9zaG93TWVudSA9IGZhbHNlO1xuXG4gIF9tZW51T3B0aW9uOiBNb25rZXlFY3hGaWx0ZXJNZW51IHwgTW9ua2V5RWN4RmlsdGVyTWVudUNoaWxkcmVuID0gbnVsbDtcblxuICBjbG9zZU1lbnUgPSAoKSA9PiB7XG4gICAgdGhpcy5fc2hvd01lbnUgPSBmYWxzZTtcbiAgfTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICAvLyBub3QgdG8gZG9cbiAgfVxuXG4gIHByaXZhdGUgdmFsaWRhdGVWYWx1ZSh7IGZpZWxkLCB2YWx1ZSwgZ2V0VmFsdWUgfTogYW55KSB7XG4gICAgdHJ5IHtcbiAgICAgIHZhbHVlID0gdmFsdWUgfHwgZ2V0VmFsdWUoKT8uW2ZpZWxkXTtcbiAgICAgIGlmICghdmFsdWUpIHJldHVybiBmYWxzZTtcbiAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZSAmJiBKU09OLnN0cmluZ2lmeSh2YWx1ZSkgIT09ICd7fSc7XG4gICAgICB9XG4gICAgICByZXR1cm4gTW9ua2V5RWN4VXRpbHMucGVyc2lzdE51bGxFbXB0eVVuZGVmaW5lZCh2YWx1ZSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgLy8gbm90IHRvIGRvXG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgb25IYW5kbGVTdWJtaXRWYWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgdGhpcy5vblN1Ym1pdC5uZXh0KHZhbHVlKTtcbiAgICB0aGlzLm9uSGFuZGxlQ2xvc2UoKTtcbiAgfVxuXG4gIHByaXZhdGUgb25IYW5kbGVNZW51cyh2YWx1ZTogYW55W10pIHtcbiAgICB0aGlzLl9tb2RlbCA9IHZhbHVlPy5tYXAoKF86IGFueSkgPT4ge1xuICAgICAgY29uc3QgeyBjaGlsZHJlbiB9ID0gXztcbiAgICAgIGxldCBvYmogPSBudWxsO1xuICAgICAgaWYgKGNoaWxkcmVuKSB7XG4gICAgICAgIG9iaiA9IHtcbiAgICAgICAgICAuLi5fLFxuICAgICAgICAgIGNoaWxkcmVuOiBjaGlsZHJlbj8uZmlsdGVyKChfOiBhbnkpID0+IHtcbiAgICAgICAgICAgIHJldHVybiAhdGhpcy52YWxpZGF0ZVZhbHVlKF8pO1xuICAgICAgICAgIH0pXG4gICAgICAgIH07XG4gICAgICB9IGVsc2UgaWYgKCF0aGlzLnZhbGlkYXRlVmFsdWUoXykpIHtcbiAgICAgICAgb2JqID0ge1xuICAgICAgICAgIC4uLl8sXG4gICAgICAgICAgLi4ub2JqIHx8IHt9XG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBvYmo7XG4gICAgfSk/LmZpbHRlcigoXykgPT4ge1xuICAgICAgcmV0dXJuIF87XG4gICAgfSk7XG5cbiAgICB0aGlzLl9tb2RlbCA9IHRoaXMuX21vZGVsPy5zb3J0KChhLCBiKSA9PiB7XG4gICAgICBjb25zdCBncm91cEEgPSBgJHthPy5ncm91cH1gLnRvTG93ZXJDYXNlKCk7XG4gICAgICBjb25zdCBncm91cEIgPSBgJHtiPy5ncm91cH1gLnRvTG93ZXJDYXNlKCk7XG4gICAgICByZXR1cm4gZ3JvdXBBICE9PSBncm91cEIgPyAxIDogLTE7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKGNoYW5nZXMubW9kZWwpIHtcbiAgICAgIGNvbnN0IHsgY3VycmVudFZhbHVlIH0gPSBjaGFuZ2VzLm1vZGVsO1xuICAgICAgaWYgKGN1cnJlbnRWYWx1ZSAmJiBKU09OLnN0cmluZ2lmeShjdXJyZW50VmFsdWUpICE9PSAne30nKSB7XG4gICAgICAgIHRoaXMub25IYW5kbGVNZW51cyhjdXJyZW50VmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG9uSGFuZGxlQ2hpbGRyZW5BY3Rpb24ob3B0aW9uOiBNb25rZXlFY3hGaWx0ZXJNZW51LCBjaGlsZDogTW9ua2V5RWN4RmlsdGVyTWVudUNoaWxkcmVuKSB7XG4gICAgY29uc3QgeyBmaWVsZCwgdHlwZSwgYWN0aW9uIH0gPSBjaGlsZDtcbiAgICBpZiAodHlwZSA9PT0gJ3dpdGgtYWN0aW9uJykge1xuICAgICAgdGhpcy5vbkhhbmRsZVN1Ym1pdFZhbHVlKHtcbiAgICAgICAgW29wdGlvbi5maWVsZF06IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICBbZmllbGRdOiBhY3Rpb24oKVxuICAgICAgICB9KVxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX3Nob3dNZW51ID0gdHJ1ZTtcbiAgICAgIHRoaXMuX21lbnVPcHRpb24gPSBjaGlsZDtcbiAgICAgIHRoaXMub25IYW5kbGVTdWJtaXQgPSAoZXZlbnQ6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLm9uSGFuZGxlU3VibWl0VmFsdWUoe1xuICAgICAgICAgIFtvcHRpb24uZmllbGRdOiBKU09OLnN0cmluZ2lmeShldmVudClcbiAgICAgICAgfSk7XG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIG9uSGFuZGxlU2hvd01lbnUob3B0aW9uOiBNb25rZXlFY3hGaWx0ZXJNZW51KSB7XG4gICAgdGhpcy5fc2hvd01lbnUgPSB0cnVlO1xuICAgIHRoaXMuX21lbnVPcHRpb24gPSBvcHRpb247XG4gIH1cblxuICBvbkhhbmRsZUNsb3NlKCkge1xuICAgIHRoaXMuX3Nob3dNZW51ID0gZmFsc2U7XG4gICAgdGhpcy5vbkNsb3NlLm5leHQoKTtcbiAgfVxuXG4gIG9uSGFuZGxlU3VibWl0KGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLm9uSGFuZGxlU3VibWl0VmFsdWUoZXZlbnQpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uXCIgI2FjdGlvbkVsZW1lbnQ+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgbWVudSBvZiBfbW9kZWw7IGxldCBpbmRleCA9IGluZGV4XCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibWVudT8uY2hpbGRyZW47IGVsc2Ugd2l0aG91dENoaWxkcmVuXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJpdGVtIG5vLWFjdGlvblwiPlxyXG4gICAgICAgIHt7IG1lbnUubGFiZWwgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJzZXBhcmF0b3JcIj48L2Rpdj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY2hpbGQgb2YgbWVudT8uY2hpbGRyZW5cIj5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICBjbGFzcz1cIml0ZW0gY2hpbGRyZW5cIlxyXG4gICAgICAgICAgKGNsaWNrKT1cIm9uSGFuZGxlQ2hpbGRyZW5BY3Rpb24obWVudSwgY2hpbGQpXCJcclxuICAgICAgICAgIFthdHRyLmRhdGEtdGVzdGlkXT1cIidtZWN4LWZpbHRlci1pdGVtLWNoaWxkcmVuLWJ0bi0nICsgY2hpbGQ/LmZpZWxkPy50b0xvd2VyQ2FzZSgpXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICB7eyBjaGlsZC5sYWJlbCB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPG5nLXRlbXBsYXRlICN3aXRob3V0Q2hpbGRyZW4+XHJcbiAgICAgIDxkaXZcclxuICAgICAgICBjbGFzcz1cIml0ZW1cIlxyXG4gICAgICAgIChjbGljayk9XCJvbkhhbmRsZVNob3dNZW51KG1lbnUpXCJcclxuICAgICAgICBbYXR0ci5kYXRhLXRlc3RpZF09XCInbWVjeC1maWx0ZXItbWVudS1idG4tJyArIG1lbnU/LmxhYmVsPy50b0xvd2VyQ2FzZSgpXCJcclxuICAgICAgPlxyXG4gICAgICAgIHt7IG1lbnUubGFiZWwgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIl9tb2RlbFtpbmRleCArIDFdPy5ncm91cCBhcyBuZXh0OyBfbW9kZWw6IFtpbmRleF0/Lmdyb3VwIGFzIGN1cnJlbnRcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInNlcGFyYXRvclwiICpuZ0lmPVwibmV4dCAhPT0gY3VycmVudFwiPjwvZGl2PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbjwvZGl2PlxyXG48bmctY29udGFpbmVyXHJcbiAgKm1vbmtleWVjeFBvcG92ZXI9XCJfc2hvd01lbnU7IHRhcmdldDogJGFueShhY3Rpb25FbGVtZW50KTsgY2xvc2VkOiBjbG9zZU1lbnU7IGRpcjogJ3J0J1wiXHJcbj5cclxuICA8bWVjeC1maWx0ZXItb3B0aW9uc1xyXG4gICAgW29wdGlvbl09XCJfbWVudU9wdGlvblwiXHJcbiAgICAob25DbG9zZSk9XCJvbkhhbmRsZUNsb3NlKClcIlxyXG4gICAgKG9uU3VibWl0KT1cIm9uSGFuZGxlU3VibWl0KCRldmVudClcIlxyXG4gICAgW2Nsb3NlRGlyZWN0bHldPVwidHJ1ZVwiXHJcbiAgPjwvbWVjeC1maWx0ZXItb3B0aW9ucz5cclxuPC9uZy1jb250YWluZXI+XHJcbiJdfQ==