@acorex/data-grid 16.18.40 → 16.18.42

Sign up to get free protection for your applications and to get access to all the features.
@@ -51,6 +51,7 @@ export class AXLOVComponent extends AXValidatableComponent {
51
51
  rtl = AXConfig.get('layout.rtl');
52
52
  multiLine = false;
53
53
  paginationPageSizeSelector = [10, 20];
54
+ remoteOperation = true;
54
55
  focus() {
55
56
  this.selectBox.focus();
56
57
  }
@@ -90,6 +91,7 @@ export class AXLOVComponent extends AXValidatableComponent {
90
91
  size: this.popupSize,
91
92
  // closable: false,
92
93
  data: {
94
+ remoteOperation: this.remoteOperation,
93
95
  suppressRowClickSelection: this.mode === 'multiple' ? true : false,
94
96
  dataSource: this.dataSource,
95
97
  selectionMode: this.mode,
@@ -138,11 +140,11 @@ export class AXLOVComponent extends AXValidatableComponent {
138
140
  });
139
141
  }
140
142
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: AXLOVComponent, deps: [{ token: i1.AXPopupService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
141
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: AXLOVComponent, selector: "ax-lov", inputs: { validation: "validation", textField: "textField", allowSearch: "allowSearch", valueField: "valueField", hasChildField: "hasChildField", allowNull: "allowNull", popupSize: "popupSize", pagination: "pagination", selectedItems: "selectedItems", paginationAutoPageSize: "paginationAutoPageSize", paginationPageSize: "paginationPageSize", maxConcurrentDatasourceRequests: "maxConcurrentDatasourceRequests", blockLoadDebounceMillis: "blockLoadDebounceMillis", readonly: "readonly", disabled: "disabled", chipsWidth: "chipsWidth", size: "size", caption: "caption", mode: "mode", placeholder: "placeholder", rtl: "rtl", multiLine: "multiLine", paginationPageSizeSelector: "paginationPageSizeSelector" }, outputs: { onSelectionChange: "onSelectionChange" }, host: { styleAttribute: "width: 100%" }, providers: [{ provide: AXValidatableComponent, useExisting: AXLOVComponent }], queries: [{ propertyName: "_contentValidation", first: true, predicate: AXValidation, descendants: true, static: true }, { propertyName: "dataSource", first: true, predicate: AXDataSourceComponent, descendants: true, static: true }, { propertyName: "rowTemplate", first: true, predicate: ["itemTemplate"], descendants: true, static: true }, { propertyName: "columns", predicate: AXGridDataColumn }], viewQueries: [{ propertyName: "selectBox", first: true, predicate: ["selectBox"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<ax-select-box\n [rowInputTemplate]=\"rowTemplate\"\n [multiLine]=\"multiLine\"\n [rtl]=\"rtl\"\n [allowSearch]=\"allowSearch\"\n #selectBox\n [showDropDownButton]=\"false\"\n [allowNull]=\"allowNull\"\n [remoteOperation]=\"true\"\n [placeholder]=\"placeholder\"\n [size]=\"size\"\n [textField]=\"textField\"\n [valueField]=\"valueField\"\n [disabled]=\"disabled\"\n [mode]=\"mode\"\n [(selectedItems)]=\"selectedItems\"\n (selectionChanged)=\"handleSelectChange($event)\"\n [dataSource]=\"dataSource\"\n>\n <ng-container start>\n <ng-content select=\"[start]\"> </ng-content>\n </ng-container>\n <ng-container end>\n <ax-button\n icon=\"far fa-bars icon\"\n [disabled]=\"disabled\"\n type=\"light blank\"\n (click)=\"handleButtonClick()\"\n end\n [tabIndex]=\"-1\"\n >\n </ax-button>\n <ng-content select=\"[end]\"> </ng-content>\n </ng-container>\n</ax-select-box>\n\n<!-- <ax-select-box2 [rtl]=\"rtl\" [allowSearch]=\"allowSearch\" #selectBox [showDropDownButton]=\"false\" [allowNull]=\"allowNull\"\n [remoteOperation]=\"true\" [placeholder]=\"placeholder\" [size]=\"size\" [textField]=\"textField\" [valueField]=\"valueField\"\n [disabled]=\"disabled\" [selectionMode]=\"mode\" (onValueChanged)=\"handleSelectChange($event)\" [dataSource]=\"dataSource\"\n [(value)]=\"selectedItems\" selectionDataMode=\"item\">\n <ng-container start>\n <ng-content select=\"[start]\">\n </ng-content>\n </ng-container>\n <ng-container end>\n <ax-button icon=\"far fa-bars icon\" [disabled]=\"disabled\" type=\"primary blank\" (click)=\"handleButtonClick()\" end\n [tabIndex]=\"-1\">\n </ax-button>\n <ng-content select=\"[end]\">\n </ng-content>\n </ng-container>\n</ax-select-box2> -->\n\n<!-- <div class=\"ax-lov-box\" [style.display]=\"mode=='hidden' ? 'none':'unset'\">\n <div class=\"ax-field-set\">\n <div class=\"ax-field-set-wrapper\" [ngClass]=\"{ 'no-label': !label }\">\n <fieldset [ngClass]=\"{ 'input-focused': isFocused, 'input-error': errorText }\">\n <legend *ngIf=\"label\">\n {{ label }}\n </legend>\n </fieldset>\n <input type=\"text\" [(ngModel)]=\"text\" [placeholder]=\"placeholder\" (keyup)=\"handleKeyEvent($event)\"\n (blur)=\"handleBlurEvent($event)\" (focus)=\"handleFocusEvent($event)\" class=\"ax-text-box\" disabled />\n <div class=\"ax-field-set-button\">\n <button *ngIf=\"text && allowClear\" type=\"button\" class=\"btn btn-light\" (click)=\"clearText()\">\n <i class=\"far fa-times\"></i>\n </button>\n <button type=\"button\" class=\" btn btn-primary\" (click)=\"handleButtonClick($event)\">\n <i class=\"far fa-check-circle\"></i>\n </button>\n </div>\n </div>\n </div>\n <div class=\"validation-text\" *ngIf=\"errorText\">\n {{ errorText }}\n </div>\n\n</div> -->\n", dependencies: [{ kind: "component", type: i1.AXButtonComponent, selector: "ax-button", inputs: ["type", "icon", "submitBehavior", "cancelBehavior", "block", "loading", "selected"] }, { kind: "component", type: i1.AXSelectBoxComponent, selector: "ax-select-box", inputs: ["showDropDownButton", "rowInputTemplate", "showCheckBox", "readonly", "rtl", "disabled", "placeholder", "size", "allowNull", "textAlign", "bufferSize", "remoteOperation", "fitParent", "dropdownWidth", "multiLine", "onDemandTranslate", "dataSource", "validation", "disabledCallback", "allowSearch", "textField", "valueField", "disabledField", "mode", "items", "selectedItems", "selectedValues"], outputs: ["dropdownToggle", "itemsChange", "onBlur", "onFocus", "selectionChanged", "selectedItemsChange", "selectedValuesChange"] }], encapsulation: i0.ViewEncapsulation.None });
143
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: AXLOVComponent, selector: "ax-lov", inputs: { validation: "validation", textField: "textField", allowSearch: "allowSearch", valueField: "valueField", hasChildField: "hasChildField", allowNull: "allowNull", popupSize: "popupSize", pagination: "pagination", selectedItems: "selectedItems", paginationAutoPageSize: "paginationAutoPageSize", paginationPageSize: "paginationPageSize", maxConcurrentDatasourceRequests: "maxConcurrentDatasourceRequests", blockLoadDebounceMillis: "blockLoadDebounceMillis", readonly: "readonly", disabled: "disabled", chipsWidth: "chipsWidth", size: "size", caption: "caption", mode: "mode", placeholder: "placeholder", rtl: "rtl", multiLine: "multiLine", paginationPageSizeSelector: "paginationPageSizeSelector", remoteOperation: "remoteOperation" }, outputs: { onSelectionChange: "onSelectionChange" }, host: { styleAttribute: "width: 100%" }, providers: [{ provide: AXValidatableComponent, useExisting: AXLOVComponent }], queries: [{ propertyName: "_contentValidation", first: true, predicate: AXValidation, descendants: true, static: true }, { propertyName: "dataSource", first: true, predicate: AXDataSourceComponent, descendants: true, static: true }, { propertyName: "rowTemplate", first: true, predicate: ["itemTemplate"], descendants: true, static: true }, { propertyName: "columns", predicate: AXGridDataColumn }], viewQueries: [{ propertyName: "selectBox", first: true, predicate: ["selectBox"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<ax-select-box\n [rowInputTemplate]=\"rowTemplate\"\n [multiLine]=\"multiLine\"\n [rtl]=\"rtl\"\n [allowSearch]=\"allowSearch\"\n #selectBox\n [showDropDownButton]=\"false\"\n [allowNull]=\"allowNull\"\n [remoteOperation]=\"remoteOperation\"\n [placeholder]=\"placeholder\"\n [size]=\"size\"\n [textField]=\"textField\"\n [valueField]=\"valueField\"\n [disabled]=\"disabled\"\n [mode]=\"mode\"\n [(selectedItems)]=\"selectedItems\"\n (selectionChanged)=\"handleSelectChange($event)\"\n [dataSource]=\"dataSource\"\n>\n <ng-container start>\n <ng-content select=\"[start]\"> </ng-content>\n </ng-container>\n <ng-container end>\n <ax-button\n icon=\"far fa-bars icon\"\n [disabled]=\"disabled\"\n type=\"light blank\"\n (click)=\"handleButtonClick()\"\n end\n [tabIndex]=\"-1\"\n >\n </ax-button>\n <ng-content select=\"[end]\"> </ng-content>\n </ng-container>\n</ax-select-box>\n\n<!-- <ax-select-box2 [rtl]=\"rtl\" [allowSearch]=\"allowSearch\" #selectBox [showDropDownButton]=\"false\" [allowNull]=\"allowNull\"\n [remoteOperation]=\"true\" [placeholder]=\"placeholder\" [size]=\"size\" [textField]=\"textField\" [valueField]=\"valueField\"\n [disabled]=\"disabled\" [selectionMode]=\"mode\" (onValueChanged)=\"handleSelectChange($event)\" [dataSource]=\"dataSource\"\n [(value)]=\"selectedItems\" selectionDataMode=\"item\">\n <ng-container start>\n <ng-content select=\"[start]\">\n </ng-content>\n </ng-container>\n <ng-container end>\n <ax-button icon=\"far fa-bars icon\" [disabled]=\"disabled\" type=\"primary blank\" (click)=\"handleButtonClick()\" end\n [tabIndex]=\"-1\">\n </ax-button>\n <ng-content select=\"[end]\">\n </ng-content>\n </ng-container>\n</ax-select-box2> -->\n\n<!-- <div class=\"ax-lov-box\" [style.display]=\"mode=='hidden' ? 'none':'unset'\">\n <div class=\"ax-field-set\">\n <div class=\"ax-field-set-wrapper\" [ngClass]=\"{ 'no-label': !label }\">\n <fieldset [ngClass]=\"{ 'input-focused': isFocused, 'input-error': errorText }\">\n <legend *ngIf=\"label\">\n {{ label }}\n </legend>\n </fieldset>\n <input type=\"text\" [(ngModel)]=\"text\" [placeholder]=\"placeholder\" (keyup)=\"handleKeyEvent($event)\"\n (blur)=\"handleBlurEvent($event)\" (focus)=\"handleFocusEvent($event)\" class=\"ax-text-box\" disabled />\n <div class=\"ax-field-set-button\">\n <button *ngIf=\"text && allowClear\" type=\"button\" class=\"btn btn-light\" (click)=\"clearText()\">\n <i class=\"far fa-times\"></i>\n </button>\n <button type=\"button\" class=\" btn btn-primary\" (click)=\"handleButtonClick($event)\">\n <i class=\"far fa-check-circle\"></i>\n </button>\n </div>\n </div>\n </div>\n <div class=\"validation-text\" *ngIf=\"errorText\">\n {{ errorText }}\n </div>\n\n</div> -->\n", dependencies: [{ kind: "component", type: i1.AXButtonComponent, selector: "ax-button", inputs: ["type", "icon", "submitBehavior", "cancelBehavior", "block", "loading", "selected"] }, { kind: "component", type: i1.AXSelectBoxComponent, selector: "ax-select-box", inputs: ["showDropDownButton", "rowInputTemplate", "showCheckBox", "readonly", "rtl", "disabled", "placeholder", "size", "allowNull", "textAlign", "bufferSize", "remoteOperation", "fitParent", "dropdownWidth", "multiLine", "onDemandTranslate", "dataSource", "validation", "disabledCallback", "allowSearch", "textField", "valueField", "disabledField", "mode", "items", "selectedItems", "selectedValues"], outputs: ["dropdownToggle", "itemsChange", "onBlur", "onFocus", "selectionChanged", "selectedItemsChange", "selectedValuesChange"] }], encapsulation: i0.ViewEncapsulation.None });
142
144
  }
143
145
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: AXLOVComponent, decorators: [{
144
146
  type: Component,
145
- args: [{ selector: 'ax-lov', encapsulation: ViewEncapsulation.None, host: { style: 'width: 100%' }, providers: [{ provide: AXValidatableComponent, useExisting: AXLOVComponent }], template: "<ax-select-box\n [rowInputTemplate]=\"rowTemplate\"\n [multiLine]=\"multiLine\"\n [rtl]=\"rtl\"\n [allowSearch]=\"allowSearch\"\n #selectBox\n [showDropDownButton]=\"false\"\n [allowNull]=\"allowNull\"\n [remoteOperation]=\"true\"\n [placeholder]=\"placeholder\"\n [size]=\"size\"\n [textField]=\"textField\"\n [valueField]=\"valueField\"\n [disabled]=\"disabled\"\n [mode]=\"mode\"\n [(selectedItems)]=\"selectedItems\"\n (selectionChanged)=\"handleSelectChange($event)\"\n [dataSource]=\"dataSource\"\n>\n <ng-container start>\n <ng-content select=\"[start]\"> </ng-content>\n </ng-container>\n <ng-container end>\n <ax-button\n icon=\"far fa-bars icon\"\n [disabled]=\"disabled\"\n type=\"light blank\"\n (click)=\"handleButtonClick()\"\n end\n [tabIndex]=\"-1\"\n >\n </ax-button>\n <ng-content select=\"[end]\"> </ng-content>\n </ng-container>\n</ax-select-box>\n\n<!-- <ax-select-box2 [rtl]=\"rtl\" [allowSearch]=\"allowSearch\" #selectBox [showDropDownButton]=\"false\" [allowNull]=\"allowNull\"\n [remoteOperation]=\"true\" [placeholder]=\"placeholder\" [size]=\"size\" [textField]=\"textField\" [valueField]=\"valueField\"\n [disabled]=\"disabled\" [selectionMode]=\"mode\" (onValueChanged)=\"handleSelectChange($event)\" [dataSource]=\"dataSource\"\n [(value)]=\"selectedItems\" selectionDataMode=\"item\">\n <ng-container start>\n <ng-content select=\"[start]\">\n </ng-content>\n </ng-container>\n <ng-container end>\n <ax-button icon=\"far fa-bars icon\" [disabled]=\"disabled\" type=\"primary blank\" (click)=\"handleButtonClick()\" end\n [tabIndex]=\"-1\">\n </ax-button>\n <ng-content select=\"[end]\">\n </ng-content>\n </ng-container>\n</ax-select-box2> -->\n\n<!-- <div class=\"ax-lov-box\" [style.display]=\"mode=='hidden' ? 'none':'unset'\">\n <div class=\"ax-field-set\">\n <div class=\"ax-field-set-wrapper\" [ngClass]=\"{ 'no-label': !label }\">\n <fieldset [ngClass]=\"{ 'input-focused': isFocused, 'input-error': errorText }\">\n <legend *ngIf=\"label\">\n {{ label }}\n </legend>\n </fieldset>\n <input type=\"text\" [(ngModel)]=\"text\" [placeholder]=\"placeholder\" (keyup)=\"handleKeyEvent($event)\"\n (blur)=\"handleBlurEvent($event)\" (focus)=\"handleFocusEvent($event)\" class=\"ax-text-box\" disabled />\n <div class=\"ax-field-set-button\">\n <button *ngIf=\"text && allowClear\" type=\"button\" class=\"btn btn-light\" (click)=\"clearText()\">\n <i class=\"far fa-times\"></i>\n </button>\n <button type=\"button\" class=\" btn btn-primary\" (click)=\"handleButtonClick($event)\">\n <i class=\"far fa-check-circle\"></i>\n </button>\n </div>\n </div>\n </div>\n <div class=\"validation-text\" *ngIf=\"errorText\">\n {{ errorText }}\n </div>\n\n</div> -->\n" }]
147
+ args: [{ selector: 'ax-lov', encapsulation: ViewEncapsulation.None, host: { style: 'width: 100%' }, providers: [{ provide: AXValidatableComponent, useExisting: AXLOVComponent }], template: "<ax-select-box\n [rowInputTemplate]=\"rowTemplate\"\n [multiLine]=\"multiLine\"\n [rtl]=\"rtl\"\n [allowSearch]=\"allowSearch\"\n #selectBox\n [showDropDownButton]=\"false\"\n [allowNull]=\"allowNull\"\n [remoteOperation]=\"remoteOperation\"\n [placeholder]=\"placeholder\"\n [size]=\"size\"\n [textField]=\"textField\"\n [valueField]=\"valueField\"\n [disabled]=\"disabled\"\n [mode]=\"mode\"\n [(selectedItems)]=\"selectedItems\"\n (selectionChanged)=\"handleSelectChange($event)\"\n [dataSource]=\"dataSource\"\n>\n <ng-container start>\n <ng-content select=\"[start]\"> </ng-content>\n </ng-container>\n <ng-container end>\n <ax-button\n icon=\"far fa-bars icon\"\n [disabled]=\"disabled\"\n type=\"light blank\"\n (click)=\"handleButtonClick()\"\n end\n [tabIndex]=\"-1\"\n >\n </ax-button>\n <ng-content select=\"[end]\"> </ng-content>\n </ng-container>\n</ax-select-box>\n\n<!-- <ax-select-box2 [rtl]=\"rtl\" [allowSearch]=\"allowSearch\" #selectBox [showDropDownButton]=\"false\" [allowNull]=\"allowNull\"\n [remoteOperation]=\"true\" [placeholder]=\"placeholder\" [size]=\"size\" [textField]=\"textField\" [valueField]=\"valueField\"\n [disabled]=\"disabled\" [selectionMode]=\"mode\" (onValueChanged)=\"handleSelectChange($event)\" [dataSource]=\"dataSource\"\n [(value)]=\"selectedItems\" selectionDataMode=\"item\">\n <ng-container start>\n <ng-content select=\"[start]\">\n </ng-content>\n </ng-container>\n <ng-container end>\n <ax-button icon=\"far fa-bars icon\" [disabled]=\"disabled\" type=\"primary blank\" (click)=\"handleButtonClick()\" end\n [tabIndex]=\"-1\">\n </ax-button>\n <ng-content select=\"[end]\">\n </ng-content>\n </ng-container>\n</ax-select-box2> -->\n\n<!-- <div class=\"ax-lov-box\" [style.display]=\"mode=='hidden' ? 'none':'unset'\">\n <div class=\"ax-field-set\">\n <div class=\"ax-field-set-wrapper\" [ngClass]=\"{ 'no-label': !label }\">\n <fieldset [ngClass]=\"{ 'input-focused': isFocused, 'input-error': errorText }\">\n <legend *ngIf=\"label\">\n {{ label }}\n </legend>\n </fieldset>\n <input type=\"text\" [(ngModel)]=\"text\" [placeholder]=\"placeholder\" (keyup)=\"handleKeyEvent($event)\"\n (blur)=\"handleBlurEvent($event)\" (focus)=\"handleFocusEvent($event)\" class=\"ax-text-box\" disabled />\n <div class=\"ax-field-set-button\">\n <button *ngIf=\"text && allowClear\" type=\"button\" class=\"btn btn-light\" (click)=\"clearText()\">\n <i class=\"far fa-times\"></i>\n </button>\n <button type=\"button\" class=\" btn btn-primary\" (click)=\"handleButtonClick($event)\">\n <i class=\"far fa-check-circle\"></i>\n </button>\n </div>\n </div>\n </div>\n <div class=\"validation-text\" *ngIf=\"errorText\">\n {{ errorText }}\n </div>\n\n</div> -->\n" }]
146
148
  }], ctorParameters: () => [{ type: i1.AXPopupService }, { type: i0.ElementRef }], propDecorators: { _contentValidation: [{
147
149
  type: ContentChild,
148
150
  args: [AXValidation, { static: true }]
@@ -206,5 +208,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImpor
206
208
  type: Input
207
209
  }], paginationPageSizeSelector: [{
208
210
  type: Input
211
+ }], remoteOperation: [{
212
+ type: Input
209
213
  }] } });
210
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1sb3YuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9kYXRhLWdyaWQvc3JjL2xpYi9kYXRhLWxvdi9kYXRhLWxvdi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2RhdGEtZ3JpZC9zcmMvbGliL2RhdGEtbG92L2RhdGEtbG92LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFJTCxxQkFBcUIsRUFFckIsY0FBYyxFQUNkLG9CQUFvQixFQUNwQixzQkFBc0IsRUFDdEIsWUFBWSxHQUNiLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN4QyxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixlQUFlLEVBQ2YsVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLFNBQVMsRUFDVCxXQUFXLEVBQ1gsU0FBUyxFQUNULGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQzs7O0FBU3BGLE1BQU0sT0FBTyxjQUNYLFNBQVEsc0JBQXNCO0lBaUJWO0lBQStCO0lBYjNDLGtCQUFrQixDQUFlO0lBQ2pDLFdBQVcsQ0FBZTtJQUVsQyxJQUNXLFVBQVU7UUFDbkIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUM7SUFDdkUsQ0FBQztJQUNELElBQVcsVUFBVSxDQUFDLENBQWU7UUFDbkMsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVELGFBQWEsR0FBRyxL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akMsVUFBVTtzQkFEcEIsS0FBSztnQkFlTixTQUFTO3NCQURSLFNBQVM7dUJBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFJeEMsVUFBVTtzQkFEVCxZQUFZO3VCQUFDLHFCQUFxQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFJN0MsT0FBTztzQkFEZCxlQUFlO3VCQUFDLGdCQUFnQjtnQkFJakMsV0FBVztzQkFEVixZQUFZO3VCQUFDLGNBQWMsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBSTlDLFNBQVM7c0JBRFIsS0FBSztnQkFJTixXQUFXO3NCQURWLEtBQUs7Z0JBSU4sVUFBVTtzQkFEVCxLQUFLO2dCQUlOLGFBQWE7c0JBRFosS0FBSztnQkFJTixTQUFTO3NCQURSLEtBQUs7Z0JBSU4sU0FBUztzQkFEUixLQUFLO2dCQUlOLFVBQVU7c0JBRFQsS0FBSztnQkFHTixhQUFhO3NCQURaLEtBQUs7Z0JBSU4sc0JBQXNCO3NCQURyQixLQUFLO2dCQUlOLGtCQUFrQjtzQkFEakIsS0FBSztnQkFPTiwrQkFBK0I7c0JBRDlCLEtBQUs7Z0JBSU4sdUJBQXVCO3NCQUR0QixLQUFLO2dCQUlOLFFBQVE7c0JBRFAsS0FBSztnQkFJTixRQUFRO3NCQURQLEtBQUs7Z0JBSU4sVUFBVTtzQkFEVCxLQUFLO2dCQUlOLElBQUk7c0JBREgsS0FBSztnQkFJTixPQUFPO3NCQUROLEtBQUs7Z0JBSU4sSUFBSTtzQkFESCxLQUFLO2dCQUlOLFdBQVc7c0JBRFYsS0FBSztnQkFJTixpQkFBaUI7c0JBRGhCLE1BQU07Z0JBTVAsR0FBRztzQkFERixLQUFLO2dCQUdHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBR04sMEJBQTBCO3NCQUR6QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQVhCYXNlSW5wdXRDb21wb25lbnQsXG4gIEFYQmFzZVNpemFibGVDb21wb25lbnQsXG4gIEFYRGF0YUV2ZW50LFxuICBBWERhdGFTb3VyY2VDb21wb25lbnQsXG4gIEFYRWxlbWVudFNpemUsXG4gIEFYUG9wdXBTZXJ2aWNlLFxuICBBWFNlbGVjdEJveENvbXBvbmVudCxcbiAgQVhWYWxpZGF0YWJsZUNvbXBvbmVudCxcbiAgQVhWYWxpZGF0aW9uLFxufSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgQVhDb25maWcgfSBmcm9tICdAYWNvcmV4L2NvcmUnO1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBRdWVyeUxpc3QsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYR3JpZERhdGFDb2x1bW4gfSBmcm9tICcuLi9kYXRhLWdyaWQvY29sdW1ucy9jb2x1bW4uY29tcG9uZW50JztcbmltcG9ydCB7IEFYRGF0YUxvdlBvcHVwQ29tcG9uZW50IH0gZnJvbSAnLi9kYXRhLWxvdi1wb3B1cC9kYXRhLWxvdi1wb3B1cC5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC1sb3YnLFxuICB0ZW1wbGF0ZVVybDogJy4vZGF0YS1sb3YuY29tcG9uZW50Lmh0bWwnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBob3N0OiB7IHN0eWxlOiAnd2lkdGg6IDEwMCUnIH0sXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogQVhWYWxpZGF0YWJsZUNvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IEFYTE9WQ29tcG9uZW50IH1dLFxufSlcbmV4cG9ydCBjbGFzcyBBWExPVkNvbXBvbmVudFxuICBleHRlbmRzIEFYVmFsaWRhdGFibGVDb21wb25lbnRcbiAgaW1wbGVtZW50cyBBWEJhc2VTaXphYmxlQ29tcG9uZW50LCBBWEJhc2VJbnB1dENvbXBvbmVudFxue1xuICBAQ29udGVudENoaWxkKEFYVmFsaWRhdGlvbiwgeyBzdGF0aWM6IHRydWUgfSlcbiAgcHJpdmF0ZSBfY29udGVudFZhbGlkYXRpb246IEFYVmFsaWRhdGlvbjtcbiAgcHJpdmF0ZSBfdmFsaWRhdGlvbjogQVhWYWxpZGF0aW9uO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBnZXQgdmFsaWRhdGlvbigpOiBBWFZhbGlkYXRpb24ge1xuICAgIHJldHVybiB0aGlzLl92YWxpZGF0aW9uID8gdGhpcy5fdmFsaWRhdGlvbiA6IHRoaXMuX2NvbnRlbnRWYWxpZGF0aW9uO1xuICB9XG4gIHB1YmxpYyBzZXQgdmFsaWRhdGlvbih2OiBBWFZhbGlkYXRpb24pIHtcbiAgICB0aGlzLl92YWxpZGF0aW9uID0gdjtcbiAgfVxuXG4gIGNvbXBvbmVudE5hbWUgPSAnbG92JztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHBvcHVwOiBBWFBvcHVwU2VydmljZSwgcHJpdmF0ZSByZWY6IEVsZW1lbnRSZWYpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgQFZpZXdDaGlsZCgnc2VsZWN0Qm94JywgeyBzdGF0aWM6IHRydWUgfSlcbiAgc2VsZWN0Qm94OiBBWFNlbGVjdEJveENvbXBvbmVudDtcblxuICBAQ29udGVudENoaWxkKEFYRGF0YVNvdXJjZUNvbXBvbmVudCwgeyBzdGF0aWM6IHRydWUgfSlcbiAgZGF0YVNvdXJjZTogQVhEYXRhU291cmNlQ29tcG9uZW50O1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oQVhHcmlkRGF0YUNvbHVtbilcbiAgcHJpdmF0ZSBjb2x1bW5zOiBRdWVyeUxpc3Q8QVhHcmlkRGF0YUNvbHVtbj47XG5cbiAgQENvbnRlbnRDaGlsZCgnaXRlbVRlbXBsYXRlJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgcm93VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgQElucHV0KClcbiAgdGV4dEZpZWxkOiBzdHJpbmcgPSAnJztcblxuICBASW5wdXQoKVxuICBhbGxvd1NlYXJjaDogYm9vbGVhbiA9IHRydWU7XG5cbiAgQElucHV0KClcbiAgdmFsdWVGaWVsZDogc3RyaW5nID0gJyc7XG5cbiAgQElucHV0KClcbiAgaGFzQ2hpbGRGaWVsZDogc3RyaW5nID0gJ251bGwnO1xuXG4gIEBJbnB1dCgpXG4gIGFsbG93TnVsbDogYm9vbGVhbiA9IHRydWU7XG5cbiAgQElucHV0KClcbiAgcG9wdXBTaXplOiAnc20nIHwgJ21kJyB8ICdsZycgfCAnZnVsbCcgPSAnbWQnO1xuXG4gIEBJbnB1dCgpXG4gIHBhZ2luYXRpb246IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKVxuICBzZWxlY3RlZEl0ZW1zOiBhbnlbXSA9IFtdO1xuXG4gIEBJbnB1dCgpXG4gIHBhZ2luYXRpb25BdXRvUGFnZVNpemUgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBwYWdpbmF0aW9uUGFnZVNpemU6IG51bWJlciA9IDIwO1xuXG4gIC8vIEBJbnB1dCgpXG4gIC8vIHNlbGVjdGVkVmFsdWVzOiBhbnlbXSA9IFtdO1xuXG4gIEBJbnB1dCgpXG4gIG1heENvbmN1cnJlbnREYXRhc291cmNlUmVxdWVzdHM6IG51bWJlcjtcblxuICBASW5wdXQoKVxuICBibG9ja0xvYWREZWJvdW5jZU1pbGxpczogbnVtYmVyO1xuXG4gIEBJbnB1dCgpXG4gIHJlYWRvbmx5OiBib29sZWFuID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBjaGlwc1dpZHRoOiBzdHJpbmcgPSAnJztcblxuICBASW5wdXQoKVxuICBzaXplOiBBWEVsZW1lbnRTaXplID0gJ21kJztcblxuICBASW5wdXQoKVxuICBjYXB0aW9uOiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgbW9kZTogJ3NpbmdsZScgfCAnbXVsdGlwbGUnID0gJ3NpbmdsZSc7XG5cbiAgQElucHV0KClcbiAgcGxhY2Vob2xkZXI6IHN0cmluZztcblxuICBAT3V0cHV0KClcbiAgb25TZWxlY3Rpb25DaGFuZ2U6IEV2ZW50RW1pdHRlcjxBWERhdGFFdmVudDxhbnk+PiA9IG5ldyBFdmVudEVtaXR0ZXI8XG4gICAgQVhEYXRhRXZlbnQ8YW55PlxuICA+KCk7XG5cbiAgQElucHV0KClcbiAgcnRsOiBib29sZWFuID0gQVhDb25maWcuZ2V0KCdsYXlvdXQucnRsJyk7XG5cbiAgQElucHV0KCkgbXVsdGlMaW5lID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgcGFnaW5hdGlvblBhZ2VTaXplU2VsZWN0b3I6IG51bWJlcltdIHwgYm9vbGVhbiA9IFsxMCwgMjBdO1xuXG4gIGZvY3VzKCk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0Qm94LmZvY3VzKCk7XG4gIH1cblxuICByZWZyZXNoKCkge1xuICAgIHRoaXMuc2VsZWN0Qm94LnJlZnJlc2goKTtcbiAgfVxuXG4gIGhhbmRsZUJ1dHRvbkNsaWNrKCkge1xuICAgIHRoaXMub3BlbigpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucnRsID09IG51bGwpIHtcbiAgICAgIHRoaXMucnRsID1cbiAgICAgICAgd2luZG93XG4gICAgICAgICAgLmdldENvbXB1dGVkU3R5bGUodGhpcy5yZWYubmF0aXZlRWxlbWVudCwgbnVsbClcbiAgICAgICAgICAuZ2V0UHJvcGVydHlWYWx1ZSgnZGlyZWN0aW9uJykgPT09ICdydGwnO1xuICAgIH1cbiAgICAvLyAgdGhpcy5zZWxlY3RWYWwgPSB0aGlzLnNlbGVjdGVkVmFsdWVzO1xuICAgIHRoaXMub25TZWxlY3Rpb25DaGFuZ2Uuc3Vic2NyaWJlKChjKSA9PiB7XG4gICAgICB0aGlzLmNsZWFyVmFsaWRhdGlvblN0eWxlKHRoaXMucmVmLm5hdGl2ZUVsZW1lbnQpO1xuICAgIH0pO1xuICB9XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaW5pdFZhbGlkYXRpb24odGhpcy5yZWYsICdzZWxlY3RlZEl0ZW1zJywgdGhpcy52YWxpZGF0aW9uKTtcbiAgfVxuXG4gIGhhbmRsZVNlbGVjdENoYW5nZShlKSB7XG4gICAgdGhpcy5vblNlbGVjdGlvbkNoYW5nZS5lbWl0KHtcbiAgICAgIGRhdGE6IHRoaXMuc2VsZWN0ZWRJdGVtcyxcbiAgICAgIGNvbXBvbmVudDogdGhpcyxcbiAgICAgIGh0bWxFbGVtZW50OiB0aGlzLnJlZi5uYXRpdmVFbGVtZW50LFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG9wZW4oKTogUHJvbWlzZTxhbnk+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgIHRoaXMuc2VsZWN0Qm94LmRyb3Bkb3duLmNsb3NlKCk7XG4gICAgICB0aGlzLnBvcHVwXG4gICAgICAgIC5vcGVuKEFYRGF0YUxvdlBvcHVwQ29tcG9uZW50LCB7XG4gICAgICAgICAgc2l6ZTogdGhpcy5wb3B1cFNpemUsXG4gICAgICAgICAgLy8gICBjbG9zYWJsZTogZmFsc2UsXG4gICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgc3VwcHJlc3NSb3dDbGlja1NlbGVjdGlvbjogdGhpcy5tb2RlID09PSAnbXVsdGlwbGUnID8gdHJ1ZSA6IGZhbHNlLFxuICAgICAgICAgICAgZGF0YVNvdXJjZTogdGhpcy5kYXRhU291cmNlLFxuICAgICAgICAgICAgc2VsZWN0aW9uTW9kZTogdGhpcy5tb2RlLFxuICAgICAgICAgICAgY29sdW1uczogdGhpcy5jb2x1bW5zLnRvQXJyYXkoKSxcbiAgICAgICAgICAgIC8vICBzZWxlY3RlZEl0ZW1zOiB0aGlzLnNlbGVjdGVkVmFsdWVzLFxuICAgICAgICAgICAgc2VsZWN0ZWRJdGVtczogdGhpcy5zZWxlY3RlZEl0ZW1zLFxuICAgICAgICAgICAga2V5RmllbGQ6IHRoaXMudmFsdWVGaWVsZCxcbiAgICAgICAgICAgIGFsbG93TnVsbDogdGhpcy5hbGxvd051bGwsXG4gICAgICAgICAgICBoYXNDaGlsZEZpZWxkOiB0aGlzLmhhc0NoaWxkRmllbGQsXG4gICAgICAgICAgICBydGw6IHRoaXMucnRsLFxuICAgICAgICAgICAgcGFnaW5hdGlvbjogdGhpcy5wYWdpbmF0aW9uLFxuICAgICAgICAgICAgcGFnaW5hdGlvbkF1dG9QYWdlU2l6ZTogdGhpcy5wYWdpbmF0aW9uQXV0b1BhZ2VTaXplLFxuICAgICAgICAgICAgcGFnaW5hdGlvblBhZ2VTaXplOiB0aGlzLnBhZ2luYXRpb25QYWdlU2l6ZSxcbiAgICAgICAgICAgIG1heENvbmN1cnJlbnREYXRhc291cmNlUmVxdWVzdHM6XG4gICAgICAgICAgICAgIHRoaXMubWF4Q29uY3VycmVudERhdGFzb3VyY2VSZXF1ZXN0cyxcbiAgICAgICAgICAgIGJsb2NrTG9hZERlYm91bmNlTWlsbGlzOiB0aGlzLmJsb2NrTG9hZERlYm91bmNlTWlsbGlzLFxuICAgICAgICAgICAgcGFnaW5hdGlvblBhZ2VTaXplU2VsZWN0b3I6IHRoaXMucGFnaW5hdGlvblBhZ2VTaXplU2VsZWN0b3IsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB0aXRsZTogdGhpcy5jYXB0aW9uLFxuICAgICAgICAgIC8vIHNpemU6IHRoaXMuc2l6ZSxcbiAgICAgICAgfSlcbiAgICAgICAgLnRoZW4oKGMpID0+IHtcbiAgICAgICAgICBpZiAoYy5kYXRhKSB7XG4gICAgICAgICAgICAvLyB0aGlzLnNlbGVjdGVkVmFsdWVzID0gW107XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSBbXTtcbiAgICAgICAgICAgIGMuZGF0YS5mb3JFYWNoKChlbG0pID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zLnB1c2goZWxtKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgLy8gIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IGMuZGF0YTtcbiAgICAgICAgICAgIC8vICB0aGlzLnNlbGVjdEJveC5yZWZyZXNoKCk7XG4gICAgICAgICAgICB0aGlzLm9uU2VsZWN0aW9uQ2hhbmdlLmVtaXQoe1xuICAgICAgICAgICAgICBkYXRhOiB0aGlzLnNlbGVjdGVkSXRlbXMsXG4gICAgICAgICAgICAgIGNvbXBvbmVudDogdGhpcyxcbiAgICAgICAgICAgICAgaHRtbEVsZW1lbnQ6IHRoaXMucmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGlmIChyZXNvbHZlKSB7XG4gICAgICAgICAgICAgIHJlc29sdmUoYy5kYXRhKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHJlc29sdmUpIHtcbiAgICAgICAgICAgICAgcmVzb2x2ZSh0aGlzLnNlbGVjdGVkSXRlbXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIHRoaXMuc2VsZWN0Qm94LnJlZnJlc2goKTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG4gIH1cbn1cbiIsIjxheC1zZWxlY3QtYm94XG4gIFtyb3dJbnB1dFRlbXBsYXRlXT1cInJvd1RlbXBsYXRlXCJcbiAgW211bHRpTGluZV09XCJtdWx0aUxpbmVcIlxuICBbcnRsXT1cInJ0bFwiXG4gIFthbGxvd1NlYXJjaF09XCJhbGxvd1NlYXJjaFwiXG4gICNzZWxlY3RCb3hcbiAgW3Nob3dEcm9wRG93bkJ1dHRvbl09XCJmYWxzZVwiXG4gIFthbGxvd051bGxdPVwiYWxsb3dOdWxsXCJcbiAgW3JlbW90ZU9wZXJhdGlvbl09XCJ0cnVlXCJcbiAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgW3NpemVdPVwic2l6ZVwiXG4gIFt0ZXh0RmllbGRdPVwidGV4dEZpZWxkXCJcbiAgW3ZhbHVlRmllbGRdPVwidmFsdWVGaWVsZFwiXG4gIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gIFttb2RlXT1cIm1vZGVcIlxuICBbKHNlbGVjdGVkSXRlbXMpXT1cInNlbGVjdGVkSXRlbXNcIlxuICAoc2VsZWN0aW9uQ2hhbmdlZCk9XCJoYW5kbGVTZWxlY3RDaGFuZ2UoJGV2ZW50KVwiXG4gIFtkYXRhU291cmNlXT1cImRhdGFTb3VyY2VcIlxuPlxuICA8bmctY29udGFpbmVyIHN0YXJ0PlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltzdGFydF1cIj4gPC9uZy1jb250ZW50PlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPG5nLWNvbnRhaW5lciBlbmQ+XG4gICAgPGF4LWJ1dHRvblxuICAgICAgaWNvbj1cImZhciBmYS1iYXJzIGljb25cIlxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgIHR5cGU9XCJsaWdodCBibGFua1wiXG4gICAgICAoY2xpY2spPVwiaGFuZGxlQnV0dG9uQ2xpY2soKVwiXG4gICAgICBlbmRcbiAgICAgIFt0YWJJbmRleF09XCItMVwiXG4gICAgPlxuICAgIDwvYXgtYnV0dG9uPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltlbmRdXCI+IDwvbmctY29udGVudD5cbiAgPC9uZy1jb250YWluZXI+XG48L2F4LXNlbGVjdC1ib3g+XG5cbjwhLS0gPGF4LXNlbGVjdC1ib3gyIFtydGxdPVwicnRsXCIgW2FsbG93U2VhcmNoXT1cImFsbG93U2VhcmNoXCIgI3NlbGVjdEJveCBbc2hvd0Ryb3BEb3duQnV0dG9uXT1cImZhbHNlXCIgW2FsbG93TnVsbF09XCJhbGxvd051bGxcIlxuICAgIFtyZW1vdGVPcGVyYXRpb25dPVwidHJ1ZVwiIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiIFtzaXplXT1cInNpemVcIiBbdGV4dEZpZWxkXT1cInRleHRGaWVsZFwiIFt2YWx1ZUZpZWxkXT1cInZhbHVlRmllbGRcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiIFtzZWxlY3Rpb25Nb2RlXT1cIm1vZGVcIiAob25WYWx1ZUNoYW5nZWQpPVwiaGFuZGxlU2VsZWN0Q2hhbmdlKCRldmVudClcIiBbZGF0YVNvdXJjZV09XCJkYXRhU291cmNlXCJcbiAgICBbKHZhbHVlKV09XCJzZWxlY3RlZEl0ZW1zXCIgc2VsZWN0aW9uRGF0YU1vZGU9XCJpdGVtXCI+XG4gICAgPG5nLWNvbnRhaW5lciBzdGFydD5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3N0YXJ0XVwiPlxuICAgICAgICA8L25nLWNvbnRlbnQ+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciBlbmQ+XG4gICAgICAgIDxheC1idXR0b24gaWNvbj1cImZhciBmYS1iYXJzIGljb25cIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiB0eXBlPVwicHJpbWFyeSBibGFua1wiIChjbGljayk9XCJoYW5kbGVCdXR0b25DbGljaygpXCIgZW5kXG4gICAgICAgICAgICBbdGFiSW5kZXhdPVwiLTFcIj5cbiAgICAgICAgPC9heC1idXR0b24+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltlbmRdXCI+XG4gICAgICAgIDwvbmctY29udGVudD5cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwvYXgtc2VsZWN0LWJveDI+IC0tPlxuXG48IS0tIDxkaXYgY2xhc3M9XCJheC1sb3YtYm94XCIgW3N0eWxlLmRpc3BsYXldPVwibW9kZT09J2hpZGRlbicgPyAnbm9uZSc6J3Vuc2V0J1wiPlxuICAgIDxkaXYgY2xhc3M9XCJheC1maWVsZC1zZXRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZpZWxkLXNldC13cmFwcGVyXCIgW25nQ2xhc3NdPVwieyAnbm8tbGFiZWwnOiAhbGFiZWwgfVwiPlxuICAgICAgICAgICAgPGZpZWxkc2V0IFtuZ0NsYXNzXT1cInsgJ2lucHV0LWZvY3VzZWQnOiBpc0ZvY3VzZWQsICdpbnB1dC1lcnJvcic6IGVycm9yVGV4dCB9XCI+XG4gICAgICAgICAgICAgICAgPGxlZ2VuZCAqbmdJZj1cImxhYmVsXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IGxhYmVsIH19XG4gICAgICAgICAgICAgICAgPC9sZWdlbmQ+XG4gICAgICAgICAgICA8L2ZpZWxkc2V0PlxuICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgWyhuZ01vZGVsKV09XCJ0ZXh0XCIgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCIgKGtleXVwKT1cImhhbmRsZUtleUV2ZW50KCRldmVudClcIlxuICAgICAgICAgICAgICAgIChibHVyKT1cImhhbmRsZUJsdXJFdmVudCgkZXZlbnQpXCIgKGZvY3VzKT1cImhhbmRsZUZvY3VzRXZlbnQoJGV2ZW50KVwiIGNsYXNzPVwiYXgtdGV4dC1ib3hcIiBkaXNhYmxlZCAvPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZpZWxkLXNldC1idXR0b25cIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwidGV4dCAmJiBhbGxvd0NsZWFyXCIgdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1saWdodFwiIChjbGljayk9XCJjbGVhclRleHQoKVwiPlxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhciBmYS10aW1lc1wiPjwvaT5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cIiBidG4gYnRuLXByaW1hcnlcIiAoY2xpY2spPVwiaGFuZGxlQnV0dG9uQ2xpY2soJGV2ZW50KVwiPlxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhciBmYS1jaGVjay1jaXJjbGVcIj48L2k+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInZhbGlkYXRpb24tdGV4dFwiICpuZ0lmPVwiZXJyb3JUZXh0XCI+XG4gICAgICAgIHt7IGVycm9yVGV4dCB9fVxuICAgIDwvZGl2PlxuXG48L2Rpdj4gLS0+XG4iXX0=
214
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1sb3YuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9kYXRhLWdyaWQvc3JjL2xpYi9kYXRhLWxvdi9kYXRhLWxvdi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2RhdGEtZ3JpZC9zcmMvbGliL2RhdGEtbG92L2RhdGEtbG92LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFJTCxxQkFBcUIsRUFFckIsY0FBYyxFQUNkLG9CQUFvQixFQUNwQixzQkFBc0IsRUFDdEIsWUFBWSxHQUNiLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN4QyxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixlQUFlLEVBQ2YsVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLFNBQVMsRUFDVCxXQUFXLEVBQ1gsU0FBUyxFQUNULGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQzs7O0FBU3BGLE1BQU0sT0FBTyxjQUNYLFNBQVEsc0JBQXNCO0lBaUJWO0lBQStCO0lBYjNDLGtCQUFrQixDQUFlO0lBQ2pDLFdBQVcsQ0FBZTtJQUVsQyxJQUNXLFVBQVU7UUFDbkIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUM7SUFDdkUsQ0FBQztJQUNELElBQVcsVUFBVSxDQUFDLENBQWU7UUFDbkMsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVELGFBQWEsR0FBRyxL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bXBvbmVudCxcbiAgQVhCYXNlU2l6YWJsZUNvbXBvbmVudCxcbiAgQVhEYXRhRXZlbnQsXG4gIEFYRGF0YVNvdXJjZUNvbXBvbmVudCxcbiAgQVhFbGVtZW50U2l6ZSxcbiAgQVhQb3B1cFNlcnZpY2UsXG4gIEFYU2VsZWN0Qm94Q29tcG9uZW50LFxuICBBWFZhbGlkYXRhYmxlQ29tcG9uZW50LFxuICBBWFZhbGlkYXRpb24sXG59IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cyc7XG5pbXBvcnQgeyBBWENvbmZpZyB9IGZyb20gJ0BhY29yZXgvY29yZSc7XG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFF1ZXJ5TGlzdCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhHcmlkRGF0YUNvbHVtbiB9IGZyb20gJy4uL2RhdGEtZ3JpZC9jb2x1bW5zL2NvbHVtbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhEYXRhTG92UG9wdXBDb21wb25lbnQgfSBmcm9tICcuL2RhdGEtbG92LXBvcHVwL2RhdGEtbG92LXBvcHVwLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LWxvdicsXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXRhLWxvdi5jb21wb25lbnQuaHRtbCcsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGhvc3Q6IHsgc3R5bGU6ICd3aWR0aDogMTAwJScgfSxcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBBWFZhbGlkYXRhYmxlQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhMT1ZDb21wb25lbnQgfV0sXG59KVxuZXhwb3J0IGNsYXNzIEFYTE9WQ29tcG9uZW50XG4gIGV4dGVuZHMgQVhWYWxpZGF0YWJsZUNvbXBvbmVudFxuICBpbXBsZW1lbnRzIEFYQmFzZVNpemFibGVDb21wb25lbnQsIEFYQmFzZUlucHV0Q29tcG9uZW50XG57XG4gIEBDb250ZW50Q2hpbGQoQVhWYWxpZGF0aW9uLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBwcml2YXRlIF9jb250ZW50VmFsaWRhdGlvbjogQVhWYWxpZGF0aW9uO1xuICBwcml2YXRlIF92YWxpZGF0aW9uOiBBWFZhbGlkYXRpb247XG5cbiAgQElucHV0KClcbiAgcHVibGljIGdldCB2YWxpZGF0aW9uKCk6IEFYVmFsaWRhdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhbGlkYXRpb24gPyB0aGlzLl92YWxpZGF0aW9uIDogdGhpcy5fY29udGVudFZhbGlkYXRpb247XG4gIH1cbiAgcHVibGljIHNldCB2YWxpZGF0aW9uKHY6IEFYVmFsaWRhdGlvbikge1xuICAgIHRoaXMuX3ZhbGlkYXRpb24gPSB2O1xuICB9XG5cbiAgY29tcG9uZW50TmFtZSA9ICdsb3YnO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcG9wdXA6IEFYUG9wdXBTZXJ2aWNlLCBwcml2YXRlIHJlZjogRWxlbWVudFJlZikge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBAVmlld0NoaWxkKCdzZWxlY3RCb3gnLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBzZWxlY3RCb3g6IEFYU2VsZWN0Qm94Q29tcG9uZW50O1xuXG4gIEBDb250ZW50Q2hpbGQoQVhEYXRhU291cmNlQ29tcG9uZW50LCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBkYXRhU291cmNlOiBBWERhdGFTb3VyY2VDb21wb25lbnQ7XG5cbiAgQENvbnRlbnRDaGlsZHJlbihBWEdyaWREYXRhQ29sdW1uKVxuICBwcml2YXRlIGNvbHVtbnM6IFF1ZXJ5TGlzdDxBWEdyaWREYXRhQ29sdW1uPjtcblxuICBAQ29udGVudENoaWxkKCdpdGVtVGVtcGxhdGUnLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICByb3dUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICBASW5wdXQoKVxuICB0ZXh0RmllbGQ6IHN0cmluZyA9ICcnO1xuXG4gIEBJbnB1dCgpXG4gIGFsbG93U2VhcmNoOiBib29sZWFuID0gdHJ1ZTtcblxuICBASW5wdXQoKVxuICB2YWx1ZUZpZWxkOiBzdHJpbmcgPSAnJztcblxuICBASW5wdXQoKVxuICBoYXNDaGlsZEZpZWxkOiBzdHJpbmcgPSAnbnVsbCc7XG5cbiAgQElucHV0KClcbiAgYWxsb3dOdWxsOiBib29sZWFuID0gdHJ1ZTtcblxuICBASW5wdXQoKVxuICBwb3B1cFNpemU6ICdzbScgfCAnbWQnIHwgJ2xnJyB8ICdmdWxsJyA9ICdtZCc7XG5cbiAgQElucHV0KClcbiAgcGFnaW5hdGlvbjogYm9vbGVhbiA9IHRydWU7XG4gIEBJbnB1dCgpXG4gIHNlbGVjdGVkSXRlbXM6IGFueVtdID0gW107XG5cbiAgQElucHV0KClcbiAgcGFnaW5hdGlvbkF1dG9QYWdlU2l6ZSA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHBhZ2luYXRpb25QYWdlU2l6ZTogbnVtYmVyID0gMjA7XG5cbiAgLy8gQElucHV0KClcbiAgLy8gc2VsZWN0ZWRWYWx1ZXM6IGFueVtdID0gW107XG5cbiAgQElucHV0KClcbiAgbWF4Q29uY3VycmVudERhdGFzb3VyY2VSZXF1ZXN0czogbnVtYmVyO1xuXG4gIEBJbnB1dCgpXG4gIGJsb2NrTG9hZERlYm91bmNlTWlsbGlzOiBudW1iZXI7XG5cbiAgQElucHV0KClcbiAgcmVhZG9ubHk6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIGNoaXBzV2lkdGg6IHN0cmluZyA9ICcnO1xuXG4gIEBJbnB1dCgpXG4gIHNpemU6IEFYRWxlbWVudFNpemUgPSAnbWQnO1xuXG4gIEBJbnB1dCgpXG4gIGNhcHRpb246IHN0cmluZztcblxuICBASW5wdXQoKVxuICBtb2RlOiAnc2luZ2xlJyB8ICdtdWx0aXBsZScgPSAnc2luZ2xlJztcblxuICBASW5wdXQoKVxuICBwbGFjZWhvbGRlcjogc3RyaW5nO1xuXG4gIEBPdXRwdXQoKVxuICBvblNlbGVjdGlvbkNoYW5nZTogRXZlbnRFbWl0dGVyPEFYRGF0YUV2ZW50PGFueT4+ID0gbmV3IEV2ZW50RW1pdHRlcjxcbiAgICBBWERhdGFFdmVudDxhbnk+XG4gID4oKTtcblxuICBASW5wdXQoKVxuICBydGw6IGJvb2xlYW4gPSBBWENvbmZpZy5nZXQoJ2xheW91dC5ydGwnKTtcblxuICBASW5wdXQoKSBtdWx0aUxpbmUgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBwYWdpbmF0aW9uUGFnZVNpemVTZWxlY3RvcjogbnVtYmVyW10gfCBib29sZWFuID0gWzEwLCAyMF07XG5cbiAgQElucHV0KClcbiAgcmVtb3RlT3BlcmF0aW9uID0gdHJ1ZTtcblxuICBmb2N1cygpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdEJveC5mb2N1cygpO1xuICB9XG5cbiAgcmVmcmVzaCgpIHtcbiAgICB0aGlzLnNlbGVjdEJveC5yZWZyZXNoKCk7XG4gIH1cblxuICBoYW5kbGVCdXR0b25DbGljaygpIHtcbiAgICB0aGlzLm9wZW4oKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnJ0bCA9PSBudWxsKSB7XG4gICAgICB0aGlzLnJ0bCA9XG4gICAgICAgIHdpbmRvd1xuICAgICAgICAgIC5nZXRDb21wdXRlZFN0eWxlKHRoaXMucmVmLm5hdGl2ZUVsZW1lbnQsIG51bGwpXG4gICAgICAgICAgLmdldFByb3BlcnR5VmFsdWUoJ2RpcmVjdGlvbicpID09PSAncnRsJztcbiAgICB9XG4gICAgLy8gIHRoaXMuc2VsZWN0VmFsID0gdGhpcy5zZWxlY3RlZFZhbHVlcztcbiAgICB0aGlzLm9uU2VsZWN0aW9uQ2hhbmdlLnN1YnNjcmliZSgoYykgPT4ge1xuICAgICAgdGhpcy5jbGVhclZhbGlkYXRpb25TdHlsZSh0aGlzLnJlZi5uYXRpdmVFbGVtZW50KTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmluaXRWYWxpZGF0aW9uKHRoaXMucmVmLCAnc2VsZWN0ZWRJdGVtcycsIHRoaXMudmFsaWRhdGlvbik7XG4gIH1cblxuICBoYW5kbGVTZWxlY3RDaGFuZ2UoZSkge1xuICAgIHRoaXMub25TZWxlY3Rpb25DaGFuZ2UuZW1pdCh7XG4gICAgICBkYXRhOiB0aGlzLnNlbGVjdGVkSXRlbXMsXG4gICAgICBjb21wb25lbnQ6IHRoaXMsXG4gICAgICBodG1sRWxlbWVudDogdGhpcy5yZWYubmF0aXZlRWxlbWVudCxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBvcGVuKCk6IFByb21pc2U8YW55PiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgICB0aGlzLnNlbGVjdEJveC5kcm9wZG93bi5jbG9zZSgpO1xuICAgICAgdGhpcy5wb3B1cFxuICAgICAgICAub3BlbihBWERhdGFMb3ZQb3B1cENvbXBvbmVudCwge1xuICAgICAgICAgIHNpemU6IHRoaXMucG9wdXBTaXplLFxuICAgICAgICAgIC8vICAgY2xvc2FibGU6IGZhbHNlLFxuICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIHJlbW90ZU9wZXJhdGlvbjogdGhpcy5yZW1vdGVPcGVyYXRpb24sXG4gICAgICAgICAgICBzdXBwcmVzc1Jvd0NsaWNrU2VsZWN0aW9uOiB0aGlzLm1vZGUgPT09ICdtdWx0aXBsZScgPyB0cnVlIDogZmFsc2UsXG4gICAgICAgICAgICBkYXRhU291cmNlOiB0aGlzLmRhdGFTb3VyY2UsXG4gICAgICAgICAgICBzZWxlY3Rpb25Nb2RlOiB0aGlzLm1vZGUsXG4gICAgICAgICAgICBjb2x1bW5zOiB0aGlzLmNvbHVtbnMudG9BcnJheSgpLFxuICAgICAgICAgICAgLy8gIHNlbGVjdGVkSXRlbXM6IHRoaXMuc2VsZWN0ZWRWYWx1ZXMsXG4gICAgICAgICAgICBzZWxlY3RlZEl0ZW1zOiB0aGlzLnNlbGVjdGVkSXRlbXMsXG4gICAgICAgICAgICBrZXlGaWVsZDogdGhpcy52YWx1ZUZpZWxkLFxuICAgICAgICAgICAgYWxsb3dOdWxsOiB0aGlzLmFsbG93TnVsbCxcbiAgICAgICAgICAgIGhhc0NoaWxkRmllbGQ6IHRoaXMuaGFzQ2hpbGRGaWVsZCxcbiAgICAgICAgICAgIHJ0bDogdGhpcy5ydGwsXG4gICAgICAgICAgICBwYWdpbmF0aW9uOiB0aGlzLnBhZ2luYXRpb24sXG4gICAgICAgICAgICBwYWdpbmF0aW9uQXV0b1BhZ2VTaXplOiB0aGlzLnBhZ2luYXRpb25BdXRvUGFnZVNpemUsXG4gICAgICAgICAgICBwYWdpbmF0aW9uUGFnZVNpemU6IHRoaXMucGFnaW5hdGlvblBhZ2VTaXplLFxuICAgICAgICAgICAgbWF4Q29uY3VycmVudERhdGFzb3VyY2VSZXF1ZXN0czpcbiAgICAgICAgICAgICAgdGhpcy5tYXhDb25jdXJyZW50RGF0YXNvdXJjZVJlcXVlc3RzLFxuICAgICAgICAgICAgYmxvY2tMb2FkRGVib3VuY2VNaWxsaXM6IHRoaXMuYmxvY2tMb2FkRGVib3VuY2VNaWxsaXMsXG4gICAgICAgICAgICBwYWdpbmF0aW9uUGFnZVNpemVTZWxlY3RvcjogdGhpcy5wYWdpbmF0aW9uUGFnZVNpemVTZWxlY3RvcixcbiAgICAgICAgICB9LFxuICAgICAgICAgIHRpdGxlOiB0aGlzLmNhcHRpb24sXG4gICAgICAgICAgLy8gc2l6ZTogdGhpcy5zaXplLFxuICAgICAgICB9KVxuICAgICAgICAudGhlbigoYykgPT4ge1xuICAgICAgICAgIGlmIChjLmRhdGEpIHtcbiAgICAgICAgICAgIC8vIHRoaXMuc2VsZWN0ZWRWYWx1ZXMgPSBbXTtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IFtdO1xuICAgICAgICAgICAgYy5kYXRhLmZvckVhY2goKGVsbSkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMucHVzaChlbG0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAvLyAgdGhpcy5zZWxlY3RlZEl0ZW1zID0gYy5kYXRhO1xuICAgICAgICAgICAgLy8gIHRoaXMuc2VsZWN0Qm94LnJlZnJlc2goKTtcbiAgICAgICAgICAgIHRoaXMub25TZWxlY3Rpb25DaGFuZ2UuZW1pdCh7XG4gICAgICAgICAgICAgIGRhdGE6IHRoaXMuc2VsZWN0ZWRJdGVtcyxcbiAgICAgICAgICAgICAgY29tcG9uZW50OiB0aGlzLFxuICAgICAgICAgICAgICBodG1sRWxlbWVudDogdGhpcy5yZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgaWYgKHJlc29sdmUpIHtcbiAgICAgICAgICAgICAgcmVzb2x2ZShjLmRhdGEpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAocmVzb2x2ZSkge1xuICAgICAgICAgICAgICByZXNvbHZlKHRoaXMuc2VsZWN0ZWRJdGVtcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdGhpcy5zZWxlY3RCb3gucmVmcmVzaCgpO1xuICAgICAgICB9KTtcbiAgICB9KTtcbiAgfVxufVxuIiwiPGF4LXNlbGVjdC1ib3hcbiAgW3Jvd0lucHV0VGVtcGxhdGVdPVwicm93VGVtcGxhdGVcIlxuICBbbXVsdGlMaW5lXT1cIm11bHRpTGluZVwiXG4gIFtydGxdPVwicnRsXCJcbiAgW2FsbG93U2VhcmNoXT1cImFsbG93U2VhcmNoXCJcbiAgI3NlbGVjdEJveFxuICBbc2hvd0Ryb3BEb3duQnV0dG9uXT1cImZhbHNlXCJcbiAgW2FsbG93TnVsbF09XCJhbGxvd051bGxcIlxuICBbcmVtb3RlT3BlcmF0aW9uXT1cInJlbW90ZU9wZXJhdGlvblwiXG4gIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gIFtzaXplXT1cInNpemVcIlxuICBbdGV4dEZpZWxkXT1cInRleHRGaWVsZFwiXG4gIFt2YWx1ZUZpZWxkXT1cInZhbHVlRmllbGRcIlxuICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICBbbW9kZV09XCJtb2RlXCJcbiAgWyhzZWxlY3RlZEl0ZW1zKV09XCJzZWxlY3RlZEl0ZW1zXCJcbiAgKHNlbGVjdGlvbkNoYW5nZWQpPVwiaGFuZGxlU2VsZWN0Q2hhbmdlKCRldmVudClcIlxuICBbZGF0YVNvdXJjZV09XCJkYXRhU291cmNlXCJcbj5cbiAgPG5nLWNvbnRhaW5lciBzdGFydD5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbc3RhcnRdXCI+IDwvbmctY29udGVudD5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxuZy1jb250YWluZXIgZW5kPlxuICAgIDxheC1idXR0b25cbiAgICAgIGljb249XCJmYXIgZmEtYmFycyBpY29uXCJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICB0eXBlPVwibGlnaHQgYmxhbmtcIlxuICAgICAgKGNsaWNrKT1cImhhbmRsZUJ1dHRvbkNsaWNrKClcIlxuICAgICAgZW5kXG4gICAgICBbdGFiSW5kZXhdPVwiLTFcIlxuICAgID5cbiAgICA8L2F4LWJ1dHRvbj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbZW5kXVwiPiA8L25nLWNvbnRlbnQ+XG4gIDwvbmctY29udGFpbmVyPlxuPC9heC1zZWxlY3QtYm94PlxuXG48IS0tIDxheC1zZWxlY3QtYm94MiBbcnRsXT1cInJ0bFwiIFthbGxvd1NlYXJjaF09XCJhbGxvd1NlYXJjaFwiICNzZWxlY3RCb3ggW3Nob3dEcm9wRG93bkJ1dHRvbl09XCJmYWxzZVwiIFthbGxvd051bGxdPVwiYWxsb3dOdWxsXCJcbiAgICBbcmVtb3RlT3BlcmF0aW9uXT1cInRydWVcIiBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIiBbc2l6ZV09XCJzaXplXCIgW3RleHRGaWVsZF09XCJ0ZXh0RmllbGRcIiBbdmFsdWVGaWVsZF09XCJ2YWx1ZUZpZWxkXCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBbc2VsZWN0aW9uTW9kZV09XCJtb2RlXCIgKG9uVmFsdWVDaGFuZ2VkKT1cImhhbmRsZVNlbGVjdENoYW5nZSgkZXZlbnQpXCIgW2RhdGFTb3VyY2VdPVwiZGF0YVNvdXJjZVwiXG4gICAgWyh2YWx1ZSldPVwic2VsZWN0ZWRJdGVtc1wiIHNlbGVjdGlvbkRhdGFNb2RlPVwiaXRlbVwiPlxuICAgIDxuZy1jb250YWluZXIgc3RhcnQ+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltzdGFydF1cIj5cbiAgICAgICAgPC9uZy1jb250ZW50PlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgZW5kPlxuICAgICAgICA8YXgtYnV0dG9uIGljb249XCJmYXIgZmEtYmFycyBpY29uXCIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCIgdHlwZT1cInByaW1hcnkgYmxhbmtcIiAoY2xpY2spPVwiaGFuZGxlQnV0dG9uQ2xpY2soKVwiIGVuZFxuICAgICAgICAgICAgW3RhYkluZGV4XT1cIi0xXCI+XG4gICAgICAgIDwvYXgtYnV0dG9uPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbZW5kXVwiPlxuICAgICAgICA8L25nLWNvbnRlbnQ+XG4gICAgPC9uZy1jb250YWluZXI+XG48L2F4LXNlbGVjdC1ib3gyPiAtLT5cblxuPCEtLSA8ZGl2IGNsYXNzPVwiYXgtbG92LWJveFwiIFtzdHlsZS5kaXNwbGF5XT1cIm1vZGU9PSdoaWRkZW4nID8gJ25vbmUnOid1bnNldCdcIj5cbiAgICA8ZGl2IGNsYXNzPVwiYXgtZmllbGQtc2V0XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJheC1maWVsZC1zZXQtd3JhcHBlclwiIFtuZ0NsYXNzXT1cInsgJ25vLWxhYmVsJzogIWxhYmVsIH1cIj5cbiAgICAgICAgICAgIDxmaWVsZHNldCBbbmdDbGFzc109XCJ7ICdpbnB1dC1mb2N1c2VkJzogaXNGb2N1c2VkLCAnaW5wdXQtZXJyb3InOiBlcnJvclRleHQgfVwiPlxuICAgICAgICAgICAgICAgIDxsZWdlbmQgKm5nSWY9XCJsYWJlbFwiPlxuICAgICAgICAgICAgICAgICAgICB7eyBsYWJlbCB9fVxuICAgICAgICAgICAgICAgIDwvbGVnZW5kPlxuICAgICAgICAgICAgPC9maWVsZHNldD5cbiAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIFsobmdNb2RlbCldPVwidGV4dFwiIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiIChrZXl1cCk9XCJoYW5kbGVLZXlFdmVudCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAoYmx1cik9XCJoYW5kbGVCbHVyRXZlbnQoJGV2ZW50KVwiIChmb2N1cyk9XCJoYW5kbGVGb2N1c0V2ZW50KCRldmVudClcIiBjbGFzcz1cImF4LXRleHQtYm94XCIgZGlzYWJsZWQgLz5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1maWVsZC1zZXQtYnV0dG9uXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cInRleHQgJiYgYWxsb3dDbGVhclwiIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tbGlnaHRcIiAoY2xpY2spPVwiY2xlYXJUZXh0KClcIj5cbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXIgZmEtdGltZXNcIj48L2k+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCIgYnRuIGJ0bi1wcmltYXJ5XCIgKGNsaWNrKT1cImhhbmRsZUJ1dHRvbkNsaWNrKCRldmVudClcIj5cbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXIgZmEtY2hlY2stY2lyY2xlXCI+PC9pPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJ2YWxpZGF0aW9uLXRleHRcIiAqbmdJZj1cImVycm9yVGV4dFwiPlxuICAgICAgICB7eyBlcnJvclRleHQgfX1cbiAgICA8L2Rpdj5cblxuPC9kaXY+IC0tPlxuIl19
@@ -1477,17 +1477,13 @@ class AXDataGridComponent {
1477
1477
  }
1478
1478
  });
1479
1479
  }
1480
- }
1481
- nodes.forEach((i) => {
1482
- if (this.autoExpand) {
1483
- i.setExpanded(true);
1480
+ else {
1481
+ args.items = this.handleNodeSelected(nodes);
1484
1482
  }
1485
- args.items.push({
1486
- rowLevel: i.level,
1487
- rowIndex: i.rowIndex,
1488
- data: i.data,
1489
- });
1490
- });
1483
+ }
1484
+ else {
1485
+ args.items = this.handleNodeSelected(nodes);
1486
+ }
1491
1487
  this.selectionChanged.emit({
1492
1488
  data: args,
1493
1489
  component: this,
@@ -1624,6 +1620,18 @@ class AXDataGridComponent {
1624
1620
  this.currentPage = this.getCurrentPageNumber().current;
1625
1621
  });
1626
1622
  }
1623
+ handleNodeSelected(nodes) {
1624
+ return nodes.map((i) => {
1625
+ if (this.autoExpand) {
1626
+ i.setExpanded(true);
1627
+ }
1628
+ return {
1629
+ rowLevel: i.level,
1630
+ rowIndex: i.rowIndex,
1631
+ data: i.data,
1632
+ };
1633
+ });
1634
+ }
1627
1635
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: AXDataGridComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
1628
1636
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: AXDataGridComponent, selector: "ax-data-grid", inputs: { paginationPageSizeSelector: "paginationPageSizeSelector", paginationAutoPageSize: "paginationAutoPageSize", paginationPageSize: "paginationPageSize", remoteOperation: "remoteOperation", rowMultiSelectWithClick: "rowMultiSelectWithClick", suppressRowClickSelection: "suppressRowClickSelection", suppressCellSelection: "suppressCellSelection", sizeColumnsToFit: "sizeColumnsToFit", showCheckBox: "showCheckBox", floatingFilter: "floatingFilter", autoExpand: "autoExpand", rowSelectableConditionField: "rowSelectableConditionField", selectionMode: "selectionMode", pagination: "pagination", selectRow: "selectRow", rowGroupPanelShow: "rowGroupPanelShow", loadOnInit: "loadOnInit", enableRangeSelection: "enableRangeSelection", keyField: "keyField", hasChildField: "hasChildField", rowHeight: "rowHeight", groupHideOpenParents: "groupHideOpenParents", maxConcurrentDatasourceRequests: "maxConcurrentDatasourceRequests", blockLoadDebounceMillis: "blockLoadDebounceMillis", showRefreshButton: "showRefreshButton", autoNavigatePage: "autoNavigatePage", rowClass: "rowClass", rtl: "rtl", searchText: "searchText", filter: "filter", columns: "columns", dataSource: "dataSource" }, outputs: { columnsChange: "columnsChange", cellClick: "cellClick", cellDbClick: "cellDbClick", cellFocuse: "cellFocuse", rowClick: "rowClick", rowDbClick: "rowDbClick", selectionChanged: "selectionChanged", rowSelectionChange: "rowSelectionChange", onRowSelectionChanged: "onRowSelectionChanged" }, queries: [{ propertyName: "searchInput", first: true, predicate: AXToolbarSearchComponent, descendants: true, static: true }, { propertyName: "toolbar", first: true, predicate: AXToolbarComponent, descendants: true, static: true }, { propertyName: "rowTemplate", first: true, predicate: AXDataGridRowTemplateComponent, descendants: true, static: true }, { propertyName: "gridDetailTemplate", first: true, predicate: AXDataGridDetailTemplateComponent, descendants: true, static: true }, { propertyName: "_contentDataSource", first: true, predicate: AXDataSourceComponent, descendants: true, static: true }, { propertyName: "_inlineColumns", predicate: AXGridDataColumn }], ngImport: i0, template: "<div class=\"ax-grid-toolbar\" *ngIf=\"toolbar\">\n <ng-content select=\"ax-toolbar\"></ng-content>\n</div>\n<!-- [enableSorting]=\"true\" [enableColResize]=\"true\" [enableFilter]=\"allowFiltering\" -->\n\n<ag-grid-angular\n *ngIf=\"gridView\"\n class=\"ag-theme-balham\"\n [getRowClass]=\"internalGetRowClass\"\n [suppressCopyRowsToClipboard]=\"true\"\n [enableRangeSelection]=\"enableRangeSelection\"\n [serverSideStoreType]=\"'partial'\"\n [style.height]=\"internalHeight\"\n [columnDefs]=\"columnDefs\"\n [enableRtl]=\"rtl\"\n [pagination]=\"pagination\"\n [rowGroupPanelShow]=\"rowGroupPanelShow\"\n [rowModelType]=\"rowModelType\"\n [detailRowHeight]=\"detailRowHeight\"\n [rowHeight]=\"rowHeight\"\n [paginationAutoPageSize]=\"paginationAutoPageSize\"\n [paginationPageSize]=\"paginationPageSize\"\n [paginationPageSizeSelector]=\"paginationPageSizeSelector\"\n [suppressMenuHide]=\"true\"\n [maxConcurrentDatasourceRequests]=\"maxConcurrentDatasourceRequests\"\n [blockLoadDebounceMillis]=\"blockLoadDebounceMillis\"\n [frameworkComponents]=\"frameworkComponents\"\n [isFullWidthCell]=\"isFullWidthCell\"\n [rowSelection]=\"selectionMode\"\n [rowMultiSelectWithClick]=\"rowMultiSelectWithClick\"\n [fullWidthCellRendererFramework]=\"fullWidthCellRendererFramework\"\n [cacheBlockSize]=\"cacheBlockSize\"\n [fullWidthCellRendererParams]=\"fullWidthCellRendererParams\"\n (columnResized)=\"handleColumnResized($event)\"\n (cellClicked)=\"internalGridCellClicked($event)\"\n (cellDoubleClicked)=\"internalGridCellDoubleClicked($event)\"\n (cellFocused)=\"internalGridCellFocused($event)\"\n (rowClicked)=\"internalGridRowClicked($event)\"\n (selectionChanged)=\"internalGridSelectionChanged($event)\"\n (rowSelected)=\"rowSelectionChanged($event)\"\n (rowDoubleClicked)=\"internalGridRowDoubleClicked($event)\"\n (gridReady)=\"internalGridReady($event)\"\n [groupSelectsChildren]=\"groupSelectsChildren\"\n [suppressRowClickSelection]=\"suppressRowClickSelection\"\n [groupSelectsFiltered]=\"true\"\n [suppressCellSelection]=\"suppressCellSelection\"\n [autoGroupColumnDef]=\"autoGroupColumnDef\"\n [suppressAggFuncInHeader]=\"true\"\n [treeData]=\"treeData\"\n [animateRows]=\"true\"\n [isServerSideGroup]=\"isServerSideGroup\"\n [getServerSideGroupKey]=\"getServerSideGroupKey\"\n [masterDetail]=\"masterDetail\"\n [detailCellRendererParams]=\"detailCellRendererParams\"\n [detailCellRenderer]=\"detailCellRenderer\"\n (gridSizeChanged)=\"internalGridSizeChanged($event)\"\n (firstDataRendered)=\"internalGridFirstDataRendered($event)\"\n [localeText]=\"localeText\"\n [groupHideOpenParents]=\"groupHideOpenParents\"\n [allowContextMenuWithControlKey]=\"false\"\n [getMainMenuItems]=\"getMainMenuItems\"\n>\n</ag-grid-angular>\n\n<!-- (displayedColumnsChanged)=\"displayedColumnsChanged($event)\" -->\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.AgGridAngular, selector: "ag-grid-angular", inputs: ["gridOptions", "modules", "statusBar", "sideBar", "suppressContextMenu", "preventDefaultOnContextMenu", "allowContextMenuWithControlKey", "columnMenu", "suppressMenuHide", "enableBrowserTooltips", "tooltipTrigger", "tooltipShowDelay", "tooltipHideDelay", "tooltipMouseTrack", "tooltipShowMode", "tooltipInteraction", "popupParent", "copyHeadersToClipboard", "copyGroupHeadersToClipboard", "clipboardDelimiter", "suppressCopyRowsToClipboard", "suppressCopySingleCellRanges", "suppressLastEmptyLineOnPaste", "suppressClipboardPaste", "suppressClipboardApi", "suppressCutToClipboard", "columnDefs", "defaultColDef", "defaultColGroupDef", "columnTypes", "dataTypeDefinitions", "maintainColumnOrder", "suppressFieldDotNotation", "headerHeight", "groupHeaderHeight", "floatingFiltersHeight", "pivotHeaderHeight", "pivotGroupHeaderHeight", "allowDragFromColumnsToolPanel", "suppressMovableColumns", "suppressColumnMoveAnimation", "suppressDragLeaveHidesColumns", "suppressRowGroupHidesColumns", "colResizeDefault", "suppressAutoSize", "autoSizePadding", "skipHeaderOnAutoSize", "autoSizeStrategy", "components", "editType", "singleClickEdit", "suppressClickEdit", "readOnlyEdit", "stopEditingWhenCellsLoseFocus", "enterMovesDown", "enterMovesDownAfterEdit", "enterNavigatesVertically", "enterNavigatesVerticallyAfterEdit", "enableCellEditingOnBackspace", "undoRedoCellEditing", "undoRedoCellEditingLimit", "defaultCsvExportParams", "suppressCsvExport", "defaultExcelExportParams", "suppressExcelExport", "excelStyles", "quickFilterText", "cacheQuickFilter", "excludeHiddenColumnsFromQuickFilter", "includeHiddenColumnsInQuickFilter", "quickFilterParser", "quickFilterMatcher", "applyQuickFilterBeforePivotOrAgg", "excludeChildrenWhenTreeDataFiltering", "enableAdvancedFilter", "advancedFilterModel", "includeHiddenColumnsInAdvancedFilter", "advancedFilterParent", "advancedFilterBuilderParams", "suppressAdvancedFilterEval", "enableCharts", "chartThemes", "customChartThemes", "chartThemeOverrides", "enableChartToolPanelsButton", "suppressChartToolPanelsButton", "chartToolPanelsDef", "chartMenuItems", "loadingCellRenderer", "loadingCellRendererParams", "loadingCellRendererSelector", "localeText", "masterDetail", "keepDetailRows", "keepDetailRowsCount", "detailCellRenderer", "detailCellRendererParams", "detailRowHeight", "detailRowAutoHeight", "context", "alignedGrids", "tabIndex", "rowBuffer", "valueCache", "valueCacheNeverExpires", "enableCellExpressions", "suppressParentsInRowNodes", "suppressTouch", "suppressFocusAfterRefresh", "suppressAsyncEvents", "suppressBrowserResizeObserver", "suppressPropertyNamesCheck", "suppressChangeDetection", "debug", "overlayLoadingTemplate", "loadingOverlayComponent", "loadingOverlayComponentParams", "suppressLoadingOverlay", "overlayNoRowsTemplate", "noRowsOverlayComponent", "noRowsOverlayComponentParams", "suppressNoRowsOverlay", "pagination", "paginationPageSize", "paginationPageSizeSelector", "paginationAutoPageSize", "paginateChildRows", "suppressPaginationPanel", "pivotMode", "pivotPanelShow", "pivotMaxGeneratedColumns", "pivotDefaultExpanded", "pivotColumnGroupTotals", "pivotRowTotals", "pivotSuppressAutoColumn", "suppressExpandablePivotGroups", "functionsReadOnly", "aggFuncs", "suppressAggFuncInHeader", "alwaysAggregateAtRootLevel", "suppressAggAtRootLevel", "aggregateOnlyChangedColumns", "suppressAggFilteredOnly", "removePivotHeaderRowWhenSingleValueColumn", "animateRows", "enableCellChangeFlash", "cellFlashDuration", "cellFlashDelay", "cellFadeDuration", "cellFadeDelay", "allowShowChangeAfterFilter", "domLayout", "ensureDomOrder", "enableRtl", "suppressColumnVirtualisation", "suppressMaxRenderedRowRestriction", "suppressRowVirtualisation", "rowDragManaged", "suppressRowDrag", "suppressMoveWhenRowDragging", "rowDragEntireRow", "rowDragMultiRow", "rowDragText", "fullWidthCellRenderer", "fullWidthCellRendererParams", "embedFullWidthRows", "suppressGroupMaintainValueType", "groupDisplayType", "groupDefaultExpanded", "autoGroupColumnDef", "groupMaintainOrder", "groupSelectsChildren", "groupLockGroupColumns", "groupAggFiltering", "groupIncludeFooter", "groupIncludeTotalFooter", "groupTotalRow", "grandTotalRow", "suppressStickyTotalRow", "groupSuppressBlankHeader", "groupSelectsFiltered", "showOpenedGroup", "groupRemoveSingleChildren", "groupRemoveLowestSingleChildren", "groupHideOpenParents", "groupAllowUnbalanced", "rowGroupPanelShow", "groupRowRenderer", "groupRowRendererParams", "suppressMakeColumnVisibleAfterUnGroup", "treeData", "rowGroupPanelSuppressSort", "suppressGroupRowsSticky", "pinnedTopRowData", "pinnedBottomRowData", "rowModelType", "rowData", "asyncTransactionWaitMillis", "suppressModelUpdateAfterUpdateTransaction", "datasource", "cacheOverflowSize", "infiniteInitialRowCount", "serverSideInitialRowCount", "suppressServerSideInfiniteScroll", "suppressServerSideFullWidthLoadingRow", "cacheBlockSize", "maxBlocksInCache", "maxConcurrentDatasourceRequests", "blockLoadDebounceMillis", "purgeClosedRowNodes", "serverSideDatasource", "serverSideSortAllLevels", "serverSideEnableClientSideSort", "serverSideOnlyRefreshFilteredGroups", "serverSideFilterAllLevels", "serverSideSortOnServer", "serverSideFilterOnServer", "serverSidePivotResultFieldSeparator", "viewportDatasource", "viewportRowModelPageSize", "viewportRowModelBufferSize", "alwaysShowHorizontalScroll", "alwaysShowVerticalScroll", "debounceVerticalScrollbar", "suppressHorizontalScroll", "suppressScrollOnNewData", "suppressScrollWhenPopupsAreOpen", "suppressAnimationFrame", "suppressMiddleClickScrolls", "suppressPreventDefaultOnMouseWheel", "scrollbarWidth", "rowSelection", "rowMultiSelectWithClick", "suppressRowDeselection", "suppressRowClickSelection", "suppressCellFocus", "suppressHeaderFocus", "suppressMultiRangeSelection", "enableCellTextSelection", "enableRangeSelection", "enableRangeHandle", "enableFillHandle", "fillHandleDirection", "suppressClearOnFillReduction", "sortingOrder", "accentedSort", "unSortIcon", "suppressMultiSort", "alwaysMultiSort", "multiSortKey", "suppressMaintainUnsortedOrder", "icons", "rowHeight", "rowStyle", "rowClass", "rowClassRules", "suppressRowHoverHighlight", "suppressRowTransform", "columnHoverHighlight", "gridId", "deltaSort", "treeDataDisplayType", "functionsPassive", "enableGroupEdit", "initialState", "getContextMenuItems", "getMainMenuItems", "postProcessPopup", "processUnpinnedColumns", "processCellForClipboard", "processHeaderForClipboard", "processGroupHeaderForClipboard", "processCellFromClipboard", "sendToClipboard", "processDataFromClipboard", "isExternalFilterPresent", "doesExternalFilterPass", "getChartToolbarItems", "createChartContainer", "navigateToNextHeader", "tabToNextHeader", "navigateToNextCell", "tabToNextCell", "getLocaleText", "getDocument", "paginationNumberFormatter", "getGroupRowAgg", "isGroupOpenByDefault", "initialGroupOrderComparator", "processPivotResultColDef", "processPivotResultColGroupDef", "getDataPath", "getChildCount", "getServerSideGroupLevelParams", "isServerSideGroupOpenByDefault", "isApplyServerSideTransaction", "isServerSideGroup", "getServerSideGroupKey", "getBusinessKeyForNode", "getRowId", "resetRowDataOnUpdate", "processRowPostCreate", "isRowSelectable", "isRowMaster", "fillOperation", "postSortRows", "getRowStyle", "getRowClass", "getRowHeight", "isFullWidthRow"], outputs: ["toolPanelVisibleChanged", "toolPanelSizeChanged", "columnMenuVisibleChanged", "contextMenuVisibleChanged", "cutStart", "cutEnd", "pasteStart", "pasteEnd", "columnVisible", "columnPinned", "columnResized", "columnMoved", "columnValueChanged", "columnPivotModeChanged", "columnPivotChanged", "columnGroupOpened", "newColumnsLoaded", "gridColumnsChanged", "displayedColumnsChanged", "virtualColumnsChanged", "columnEverythingChanged", "columnHeaderMouseOver", "columnHeaderMouseLeave", "columnHeaderClicked", "columnHeaderContextMenu", "componentStateChanged", "cellValueChanged", "cellEditRequest", "rowValueChanged", "cellEditingStarted", "cellEditingStopped", "rowEditingStarted", "rowEditingStopped", "undoStarted", "undoEnded", "redoStarted", "redoEnded", "rangeDeleteStart", "rangeDeleteEnd", "fillStart", "fillEnd", "filterOpened", "filterChanged", "filterModified", "advancedFilterBuilderVisibleChanged", "chartCreated", "chartRangeSelectionChanged", "chartOptionsChanged", "chartDestroyed", "cellKeyDown", "gridReady", "gridPreDestroyed", "firstDataRendered", "gridSizeChanged", "modelUpdated", "virtualRowRemoved", "viewportChanged", "bodyScroll", "bodyScrollEnd", "dragStarted", "dragStopped", "stateUpdated", "paginationChanged", "rowDragEnter", "rowDragMove", "rowDragLeave", "rowDragEnd", "columnRowGroupChanged", "rowGroupOpened", "expandOrCollapseAll", "pivotMaxColumnsExceeded", "pinnedRowDataChanged", "rowDataUpdated", "asyncTransactionsFlushed", "storeRefreshed", "cellClicked", "cellDoubleClicked", "cellFocused", "cellMouseOver", "cellMouseOut", "cellMouseDown", "rowClicked", "rowDoubleClicked", "rowSelected", "selectionChanged", "cellContextMenu", "rangeSelectionChanged", "tooltipShow", "tooltipHide", "sortChanged", "columnRowGroupChangeRequest", "columnPivotChangeRequest", "columnValueChangeRequest", "columnAggFuncChangeRequest"] }], encapsulation: i0.ViewEncapsulation.None });
1629
1637
  }
@@ -1874,6 +1882,7 @@ class AXDataLovPopupComponent extends AXBasePopupPageComponent {
1874
1882
  blockLoadDebounceMillis;
1875
1883
  paginationPageSizeSelector = [10, 20];
1876
1884
  suppressRowClickSelection;
1885
+ remoteOperation;
1877
1886
  constructor(cdr, ref) {
1878
1887
  super();
1879
1888
  this.cdr = cdr;
@@ -1964,11 +1973,11 @@ class AXDataLovPopupComponent extends AXBasePopupPageComponent {
1964
1973
  }
1965
1974
  }
1966
1975
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: AXDataLovPopupComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
1967
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: AXDataLovPopupComponent, selector: "ng-component", viewQueries: [{ propertyName: "grid", first: true, predicate: ["grid"], descendants: true, static: true }, { propertyName: "searchBox", first: true, predicate: ["searchBox"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div style=\"height: 70vh; padding: 0.5em\">\n <div style=\"height: calc(98%)\">\n <ax-data-grid\n [showRefreshButton]=\"false\"\n [paginationPageSizeSelector]=\"paginationPageSizeSelector\"\n [pagination]=\"pagination\"\n [suppressRowClickSelection]=\"suppressRowClickSelection\"\n [paginationAutoPageSize]=\"paginationAutoPageSize\"\n [paginationPageSize]=\"paginationPageSize\"\n [rtl]=\"rtl\"\n [maxConcurrentDatasourceRequests]=\"maxConcurrentDatasourceRequests\"\n [blockLoadDebounceMillis]=\"blockLoadDebounceMillis\"\n [keyField]=\"keyField\"\n [hasChildField]=\"hasChildField\"\n [selectRow]=\"selectedItems\"\n #grid\n [columns]=\"columns\"\n [remoteOperation]=\"true\"\n [selectionMode]=\"selectionMode\"\n (rowDbClick)=\"rowDoubleClicked($event)\"\n (rowSelectionChange)=\"rowSelectionChange($event)\"\n [dataSource]=\"dataSource\"\n >\n <ax-toolbar>\n <ax-toolbar-search #searchBox style=\"width: 100%\"></ax-toolbar-search>\n </ax-toolbar>\n <ax-selection-column\n *ngIf=\"selectionMode == 'single' ? false : true\"\n ></ax-selection-column>\n <!-- <ax-data-source [provideData]=\"dataSource.provideData\">\n </ax-data-source> -->\n </ax-data-grid>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: AXDataGridComponent, selector: "ax-data-grid", inputs: ["paginationPageSizeSelector", "paginationAutoPageSize", "paginationPageSize", "remoteOperation", "rowMultiSelectWithClick", "suppressRowClickSelection", "suppressCellSelection", "sizeColumnsToFit", "showCheckBox", "floatingFilter", "autoExpand", "rowSelectableConditionField", "selectionMode", "pagination", "selectRow", "rowGroupPanelShow", "loadOnInit", "enableRangeSelection", "keyField", "hasChildField", "rowHeight", "groupHideOpenParents", "maxConcurrentDatasourceRequests", "blockLoadDebounceMillis", "showRefreshButton", "autoNavigatePage", "rowClass", "rtl", "searchText", "filter", "columns", "dataSource"], outputs: ["columnsChange", "cellClick", "cellDbClick", "cellFocuse", "rowClick", "rowDbClick", "selectionChanged", "rowSelectionChange", "onRowSelectionChanged"] }, { kind: "component", type: AXGridSelectionColumn, selector: "ax-selection-column", inputs: ["condition", "pinned", "width"] }, { kind: "component", type: i1$1.AXToolbarComponent, selector: "ax-toolbar" }, { kind: "component", type: i1$1.AXToolbarSearchComponent, selector: "ax-toolbar-search", inputs: ["text"], outputs: ["onValueChanged"] }] });
1976
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: AXDataLovPopupComponent, selector: "ng-component", viewQueries: [{ propertyName: "grid", first: true, predicate: ["grid"], descendants: true, static: true }, { propertyName: "searchBox", first: true, predicate: ["searchBox"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div style=\"height: 70vh; padding: 0.5em\">\n <div style=\"height: calc(98%)\">\n <ax-data-grid\n [remoteOperation]=\"remoteOperation\"\n [showRefreshButton]=\"false\"\n [paginationPageSizeSelector]=\"paginationPageSizeSelector\"\n [pagination]=\"pagination\"\n [suppressRowClickSelection]=\"suppressRowClickSelection\"\n [paginationAutoPageSize]=\"paginationAutoPageSize\"\n [paginationPageSize]=\"paginationPageSize\"\n [rtl]=\"rtl\"\n [maxConcurrentDatasourceRequests]=\"maxConcurrentDatasourceRequests\"\n [blockLoadDebounceMillis]=\"blockLoadDebounceMillis\"\n [keyField]=\"keyField\"\n [hasChildField]=\"hasChildField\"\n [selectRow]=\"selectedItems\"\n #grid\n [columns]=\"columns\"\n [selectionMode]=\"selectionMode\"\n (rowDbClick)=\"rowDoubleClicked($event)\"\n (rowSelectionChange)=\"rowSelectionChange($event)\"\n [dataSource]=\"dataSource\"\n >\n <ax-toolbar>\n <ax-toolbar-search #searchBox style=\"width: 100%\"></ax-toolbar-search>\n </ax-toolbar>\n <ax-selection-column\n *ngIf=\"selectionMode == 'single' ? false : true\"\n ></ax-selection-column>\n <!-- <ax-data-source [provideData]=\"dataSource.provideData\">\n </ax-data-source> -->\n </ax-data-grid>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: AXDataGridComponent, selector: "ax-data-grid", inputs: ["paginationPageSizeSelector", "paginationAutoPageSize", "paginationPageSize", "remoteOperation", "rowMultiSelectWithClick", "suppressRowClickSelection", "suppressCellSelection", "sizeColumnsToFit", "showCheckBox", "floatingFilter", "autoExpand", "rowSelectableConditionField", "selectionMode", "pagination", "selectRow", "rowGroupPanelShow", "loadOnInit", "enableRangeSelection", "keyField", "hasChildField", "rowHeight", "groupHideOpenParents", "maxConcurrentDatasourceRequests", "blockLoadDebounceMillis", "showRefreshButton", "autoNavigatePage", "rowClass", "rtl", "searchText", "filter", "columns", "dataSource"], outputs: ["columnsChange", "cellClick", "cellDbClick", "cellFocuse", "rowClick", "rowDbClick", "selectionChanged", "rowSelectionChange", "onRowSelectionChanged"] }, { kind: "component", type: AXGridSelectionColumn, selector: "ax-selection-column", inputs: ["condition", "pinned", "width"] }, { kind: "component", type: i1$1.AXToolbarComponent, selector: "ax-toolbar" }, { kind: "component", type: i1$1.AXToolbarSearchComponent, selector: "ax-toolbar-search", inputs: ["text"], outputs: ["onValueChanged"] }] });
1968
1977
  }
1969
1978
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: AXDataLovPopupComponent, decorators: [{
1970
1979
  type: Component,
1971
- args: [{ template: "<div style=\"height: 70vh; padding: 0.5em\">\n <div style=\"height: calc(98%)\">\n <ax-data-grid\n [showRefreshButton]=\"false\"\n [paginationPageSizeSelector]=\"paginationPageSizeSelector\"\n [pagination]=\"pagination\"\n [suppressRowClickSelection]=\"suppressRowClickSelection\"\n [paginationAutoPageSize]=\"paginationAutoPageSize\"\n [paginationPageSize]=\"paginationPageSize\"\n [rtl]=\"rtl\"\n [maxConcurrentDatasourceRequests]=\"maxConcurrentDatasourceRequests\"\n [blockLoadDebounceMillis]=\"blockLoadDebounceMillis\"\n [keyField]=\"keyField\"\n [hasChildField]=\"hasChildField\"\n [selectRow]=\"selectedItems\"\n #grid\n [columns]=\"columns\"\n [remoteOperation]=\"true\"\n [selectionMode]=\"selectionMode\"\n (rowDbClick)=\"rowDoubleClicked($event)\"\n (rowSelectionChange)=\"rowSelectionChange($event)\"\n [dataSource]=\"dataSource\"\n >\n <ax-toolbar>\n <ax-toolbar-search #searchBox style=\"width: 100%\"></ax-toolbar-search>\n </ax-toolbar>\n <ax-selection-column\n *ngIf=\"selectionMode == 'single' ? false : true\"\n ></ax-selection-column>\n <!-- <ax-data-source [provideData]=\"dataSource.provideData\">\n </ax-data-source> -->\n </ax-data-grid>\n </div>\n</div>\n" }]
1980
+ args: [{ template: "<div style=\"height: 70vh; padding: 0.5em\">\n <div style=\"height: calc(98%)\">\n <ax-data-grid\n [remoteOperation]=\"remoteOperation\"\n [showRefreshButton]=\"false\"\n [paginationPageSizeSelector]=\"paginationPageSizeSelector\"\n [pagination]=\"pagination\"\n [suppressRowClickSelection]=\"suppressRowClickSelection\"\n [paginationAutoPageSize]=\"paginationAutoPageSize\"\n [paginationPageSize]=\"paginationPageSize\"\n [rtl]=\"rtl\"\n [maxConcurrentDatasourceRequests]=\"maxConcurrentDatasourceRequests\"\n [blockLoadDebounceMillis]=\"blockLoadDebounceMillis\"\n [keyField]=\"keyField\"\n [hasChildField]=\"hasChildField\"\n [selectRow]=\"selectedItems\"\n #grid\n [columns]=\"columns\"\n [selectionMode]=\"selectionMode\"\n (rowDbClick)=\"rowDoubleClicked($event)\"\n (rowSelectionChange)=\"rowSelectionChange($event)\"\n [dataSource]=\"dataSource\"\n >\n <ax-toolbar>\n <ax-toolbar-search #searchBox style=\"width: 100%\"></ax-toolbar-search>\n </ax-toolbar>\n <ax-selection-column\n *ngIf=\"selectionMode == 'single' ? false : true\"\n ></ax-selection-column>\n <!-- <ax-data-source [provideData]=\"dataSource.provideData\">\n </ax-data-source> -->\n </ax-data-grid>\n </div>\n</div>\n" }]
1972
1981
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }], propDecorators: { grid: [{
1973
1982
  type: ViewChild,
1974
1983
  args: ['grid', { static: true }]
@@ -2023,6 +2032,7 @@ class AXLOVComponent extends AXValidatableComponent {
2023
2032
  rtl = AXConfig.get('layout.rtl');
2024
2033
  multiLine = false;
2025
2034
  paginationPageSizeSelector = [10, 20];
2035
+ remoteOperation = true;
2026
2036
  focus() {
2027
2037
  this.selectBox.focus();
2028
2038
  }
@@ -2062,6 +2072,7 @@ class AXLOVComponent extends AXValidatableComponent {
2062
2072
  size: this.popupSize,
2063
2073
  // closable: false,
2064
2074
  data: {
2075
+ remoteOperation: this.remoteOperation,
2065
2076
  suppressRowClickSelection: this.mode === 'multiple' ? true : false,
2066
2077
  dataSource: this.dataSource,
2067
2078
  selectionMode: this.mode,
@@ -2110,11 +2121,11 @@ class AXLOVComponent extends AXValidatableComponent {
2110
2121
  });
2111
2122
  }
2112
2123
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: AXLOVComponent, deps: [{ token: i1$1.AXPopupService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
2113
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: AXLOVComponent, selector: "ax-lov", inputs: { validation: "validation", textField: "textField", allowSearch: "allowSearch", valueField: "valueField", hasChildField: "hasChildField", allowNull: "allowNull", popupSize: "popupSize", pagination: "pagination", selectedItems: "selectedItems", paginationAutoPageSize: "paginationAutoPageSize", paginationPageSize: "paginationPageSize", maxConcurrentDatasourceRequests: "maxConcurrentDatasourceRequests", blockLoadDebounceMillis: "blockLoadDebounceMillis", readonly: "readonly", disabled: "disabled", chipsWidth: "chipsWidth", size: "size", caption: "caption", mode: "mode", placeholder: "placeholder", rtl: "rtl", multiLine: "multiLine", paginationPageSizeSelector: "paginationPageSizeSelector" }, outputs: { onSelectionChange: "onSelectionChange" }, host: { styleAttribute: "width: 100%" }, providers: [{ provide: AXValidatableComponent, useExisting: AXLOVComponent }], queries: [{ propertyName: "_contentValidation", first: true, predicate: AXValidation, descendants: true, static: true }, { propertyName: "dataSource", first: true, predicate: AXDataSourceComponent, descendants: true, static: true }, { propertyName: "rowTemplate", first: true, predicate: ["itemTemplate"], descendants: true, static: true }, { propertyName: "columns", predicate: AXGridDataColumn }], viewQueries: [{ propertyName: "selectBox", first: true, predicate: ["selectBox"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<ax-select-box\n [rowInputTemplate]=\"rowTemplate\"\n [multiLine]=\"multiLine\"\n [rtl]=\"rtl\"\n [allowSearch]=\"allowSearch\"\n #selectBox\n [showDropDownButton]=\"false\"\n [allowNull]=\"allowNull\"\n [remoteOperation]=\"true\"\n [placeholder]=\"placeholder\"\n [size]=\"size\"\n [textField]=\"textField\"\n [valueField]=\"valueField\"\n [disabled]=\"disabled\"\n [mode]=\"mode\"\n [(selectedItems)]=\"selectedItems\"\n (selectionChanged)=\"handleSelectChange($event)\"\n [dataSource]=\"dataSource\"\n>\n <ng-container start>\n <ng-content select=\"[start]\"> </ng-content>\n </ng-container>\n <ng-container end>\n <ax-button\n icon=\"far fa-bars icon\"\n [disabled]=\"disabled\"\n type=\"light blank\"\n (click)=\"handleButtonClick()\"\n end\n [tabIndex]=\"-1\"\n >\n </ax-button>\n <ng-content select=\"[end]\"> </ng-content>\n </ng-container>\n</ax-select-box>\n\n<!-- <ax-select-box2 [rtl]=\"rtl\" [allowSearch]=\"allowSearch\" #selectBox [showDropDownButton]=\"false\" [allowNull]=\"allowNull\"\n [remoteOperation]=\"true\" [placeholder]=\"placeholder\" [size]=\"size\" [textField]=\"textField\" [valueField]=\"valueField\"\n [disabled]=\"disabled\" [selectionMode]=\"mode\" (onValueChanged)=\"handleSelectChange($event)\" [dataSource]=\"dataSource\"\n [(value)]=\"selectedItems\" selectionDataMode=\"item\">\n <ng-container start>\n <ng-content select=\"[start]\">\n </ng-content>\n </ng-container>\n <ng-container end>\n <ax-button icon=\"far fa-bars icon\" [disabled]=\"disabled\" type=\"primary blank\" (click)=\"handleButtonClick()\" end\n [tabIndex]=\"-1\">\n </ax-button>\n <ng-content select=\"[end]\">\n </ng-content>\n </ng-container>\n</ax-select-box2> -->\n\n<!-- <div class=\"ax-lov-box\" [style.display]=\"mode=='hidden' ? 'none':'unset'\">\n <div class=\"ax-field-set\">\n <div class=\"ax-field-set-wrapper\" [ngClass]=\"{ 'no-label': !label }\">\n <fieldset [ngClass]=\"{ 'input-focused': isFocused, 'input-error': errorText }\">\n <legend *ngIf=\"label\">\n {{ label }}\n </legend>\n </fieldset>\n <input type=\"text\" [(ngModel)]=\"text\" [placeholder]=\"placeholder\" (keyup)=\"handleKeyEvent($event)\"\n (blur)=\"handleBlurEvent($event)\" (focus)=\"handleFocusEvent($event)\" class=\"ax-text-box\" disabled />\n <div class=\"ax-field-set-button\">\n <button *ngIf=\"text && allowClear\" type=\"button\" class=\"btn btn-light\" (click)=\"clearText()\">\n <i class=\"far fa-times\"></i>\n </button>\n <button type=\"button\" class=\" btn btn-primary\" (click)=\"handleButtonClick($event)\">\n <i class=\"far fa-check-circle\"></i>\n </button>\n </div>\n </div>\n </div>\n <div class=\"validation-text\" *ngIf=\"errorText\">\n {{ errorText }}\n </div>\n\n</div> -->\n", dependencies: [{ kind: "component", type: i1$1.AXButtonComponent, selector: "ax-button", inputs: ["type", "icon", "submitBehavior", "cancelBehavior", "block", "loading", "selected"] }, { kind: "component", type: i1$1.AXSelectBoxComponent, selector: "ax-select-box", inputs: ["showDropDownButton", "rowInputTemplate", "showCheckBox", "readonly", "rtl", "disabled", "placeholder", "size", "allowNull", "textAlign", "bufferSize", "remoteOperation", "fitParent", "dropdownWidth", "multiLine", "onDemandTranslate", "dataSource", "validation", "disabledCallback", "allowSearch", "textField", "valueField", "disabledField", "mode", "items", "selectedItems", "selectedValues"], outputs: ["dropdownToggle", "itemsChange", "onBlur", "onFocus", "selectionChanged", "selectedItemsChange", "selectedValuesChange"] }], encapsulation: i0.ViewEncapsulation.None });
2124
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: AXLOVComponent, selector: "ax-lov", inputs: { validation: "validation", textField: "textField", allowSearch: "allowSearch", valueField: "valueField", hasChildField: "hasChildField", allowNull: "allowNull", popupSize: "popupSize", pagination: "pagination", selectedItems: "selectedItems", paginationAutoPageSize: "paginationAutoPageSize", paginationPageSize: "paginationPageSize", maxConcurrentDatasourceRequests: "maxConcurrentDatasourceRequests", blockLoadDebounceMillis: "blockLoadDebounceMillis", readonly: "readonly", disabled: "disabled", chipsWidth: "chipsWidth", size: "size", caption: "caption", mode: "mode", placeholder: "placeholder", rtl: "rtl", multiLine: "multiLine", paginationPageSizeSelector: "paginationPageSizeSelector", remoteOperation: "remoteOperation" }, outputs: { onSelectionChange: "onSelectionChange" }, host: { styleAttribute: "width: 100%" }, providers: [{ provide: AXValidatableComponent, useExisting: AXLOVComponent }], queries: [{ propertyName: "_contentValidation", first: true, predicate: AXValidation, descendants: true, static: true }, { propertyName: "dataSource", first: true, predicate: AXDataSourceComponent, descendants: true, static: true }, { propertyName: "rowTemplate", first: true, predicate: ["itemTemplate"], descendants: true, static: true }, { propertyName: "columns", predicate: AXGridDataColumn }], viewQueries: [{ propertyName: "selectBox", first: true, predicate: ["selectBox"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<ax-select-box\n [rowInputTemplate]=\"rowTemplate\"\n [multiLine]=\"multiLine\"\n [rtl]=\"rtl\"\n [allowSearch]=\"allowSearch\"\n #selectBox\n [showDropDownButton]=\"false\"\n [allowNull]=\"allowNull\"\n [remoteOperation]=\"remoteOperation\"\n [placeholder]=\"placeholder\"\n [size]=\"size\"\n [textField]=\"textField\"\n [valueField]=\"valueField\"\n [disabled]=\"disabled\"\n [mode]=\"mode\"\n [(selectedItems)]=\"selectedItems\"\n (selectionChanged)=\"handleSelectChange($event)\"\n [dataSource]=\"dataSource\"\n>\n <ng-container start>\n <ng-content select=\"[start]\"> </ng-content>\n </ng-container>\n <ng-container end>\n <ax-button\n icon=\"far fa-bars icon\"\n [disabled]=\"disabled\"\n type=\"light blank\"\n (click)=\"handleButtonClick()\"\n end\n [tabIndex]=\"-1\"\n >\n </ax-button>\n <ng-content select=\"[end]\"> </ng-content>\n </ng-container>\n</ax-select-box>\n\n<!-- <ax-select-box2 [rtl]=\"rtl\" [allowSearch]=\"allowSearch\" #selectBox [showDropDownButton]=\"false\" [allowNull]=\"allowNull\"\n [remoteOperation]=\"true\" [placeholder]=\"placeholder\" [size]=\"size\" [textField]=\"textField\" [valueField]=\"valueField\"\n [disabled]=\"disabled\" [selectionMode]=\"mode\" (onValueChanged)=\"handleSelectChange($event)\" [dataSource]=\"dataSource\"\n [(value)]=\"selectedItems\" selectionDataMode=\"item\">\n <ng-container start>\n <ng-content select=\"[start]\">\n </ng-content>\n </ng-container>\n <ng-container end>\n <ax-button icon=\"far fa-bars icon\" [disabled]=\"disabled\" type=\"primary blank\" (click)=\"handleButtonClick()\" end\n [tabIndex]=\"-1\">\n </ax-button>\n <ng-content select=\"[end]\">\n </ng-content>\n </ng-container>\n</ax-select-box2> -->\n\n<!-- <div class=\"ax-lov-box\" [style.display]=\"mode=='hidden' ? 'none':'unset'\">\n <div class=\"ax-field-set\">\n <div class=\"ax-field-set-wrapper\" [ngClass]=\"{ 'no-label': !label }\">\n <fieldset [ngClass]=\"{ 'input-focused': isFocused, 'input-error': errorText }\">\n <legend *ngIf=\"label\">\n {{ label }}\n </legend>\n </fieldset>\n <input type=\"text\" [(ngModel)]=\"text\" [placeholder]=\"placeholder\" (keyup)=\"handleKeyEvent($event)\"\n (blur)=\"handleBlurEvent($event)\" (focus)=\"handleFocusEvent($event)\" class=\"ax-text-box\" disabled />\n <div class=\"ax-field-set-button\">\n <button *ngIf=\"text && allowClear\" type=\"button\" class=\"btn btn-light\" (click)=\"clearText()\">\n <i class=\"far fa-times\"></i>\n </button>\n <button type=\"button\" class=\" btn btn-primary\" (click)=\"handleButtonClick($event)\">\n <i class=\"far fa-check-circle\"></i>\n </button>\n </div>\n </div>\n </div>\n <div class=\"validation-text\" *ngIf=\"errorText\">\n {{ errorText }}\n </div>\n\n</div> -->\n", dependencies: [{ kind: "component", type: i1$1.AXButtonComponent, selector: "ax-button", inputs: ["type", "icon", "submitBehavior", "cancelBehavior", "block", "loading", "selected"] }, { kind: "component", type: i1$1.AXSelectBoxComponent, selector: "ax-select-box", inputs: ["showDropDownButton", "rowInputTemplate", "showCheckBox", "readonly", "rtl", "disabled", "placeholder", "size", "allowNull", "textAlign", "bufferSize", "remoteOperation", "fitParent", "dropdownWidth", "multiLine", "onDemandTranslate", "dataSource", "validation", "disabledCallback", "allowSearch", "textField", "valueField", "disabledField", "mode", "items", "selectedItems", "selectedValues"], outputs: ["dropdownToggle", "itemsChange", "onBlur", "onFocus", "selectionChanged", "selectedItemsChange", "selectedValuesChange"] }], encapsulation: i0.ViewEncapsulation.None });
2114
2125
  }
2115
2126
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: AXLOVComponent, decorators: [{
2116
2127
  type: Component,
2117
- args: [{ selector: 'ax-lov', encapsulation: ViewEncapsulation.None, host: { style: 'width: 100%' }, providers: [{ provide: AXValidatableComponent, useExisting: AXLOVComponent }], template: "<ax-select-box\n [rowInputTemplate]=\"rowTemplate\"\n [multiLine]=\"multiLine\"\n [rtl]=\"rtl\"\n [allowSearch]=\"allowSearch\"\n #selectBox\n [showDropDownButton]=\"false\"\n [allowNull]=\"allowNull\"\n [remoteOperation]=\"true\"\n [placeholder]=\"placeholder\"\n [size]=\"size\"\n [textField]=\"textField\"\n [valueField]=\"valueField\"\n [disabled]=\"disabled\"\n [mode]=\"mode\"\n [(selectedItems)]=\"selectedItems\"\n (selectionChanged)=\"handleSelectChange($event)\"\n [dataSource]=\"dataSource\"\n>\n <ng-container start>\n <ng-content select=\"[start]\"> </ng-content>\n </ng-container>\n <ng-container end>\n <ax-button\n icon=\"far fa-bars icon\"\n [disabled]=\"disabled\"\n type=\"light blank\"\n (click)=\"handleButtonClick()\"\n end\n [tabIndex]=\"-1\"\n >\n </ax-button>\n <ng-content select=\"[end]\"> </ng-content>\n </ng-container>\n</ax-select-box>\n\n<!-- <ax-select-box2 [rtl]=\"rtl\" [allowSearch]=\"allowSearch\" #selectBox [showDropDownButton]=\"false\" [allowNull]=\"allowNull\"\n [remoteOperation]=\"true\" [placeholder]=\"placeholder\" [size]=\"size\" [textField]=\"textField\" [valueField]=\"valueField\"\n [disabled]=\"disabled\" [selectionMode]=\"mode\" (onValueChanged)=\"handleSelectChange($event)\" [dataSource]=\"dataSource\"\n [(value)]=\"selectedItems\" selectionDataMode=\"item\">\n <ng-container start>\n <ng-content select=\"[start]\">\n </ng-content>\n </ng-container>\n <ng-container end>\n <ax-button icon=\"far fa-bars icon\" [disabled]=\"disabled\" type=\"primary blank\" (click)=\"handleButtonClick()\" end\n [tabIndex]=\"-1\">\n </ax-button>\n <ng-content select=\"[end]\">\n </ng-content>\n </ng-container>\n</ax-select-box2> -->\n\n<!-- <div class=\"ax-lov-box\" [style.display]=\"mode=='hidden' ? 'none':'unset'\">\n <div class=\"ax-field-set\">\n <div class=\"ax-field-set-wrapper\" [ngClass]=\"{ 'no-label': !label }\">\n <fieldset [ngClass]=\"{ 'input-focused': isFocused, 'input-error': errorText }\">\n <legend *ngIf=\"label\">\n {{ label }}\n </legend>\n </fieldset>\n <input type=\"text\" [(ngModel)]=\"text\" [placeholder]=\"placeholder\" (keyup)=\"handleKeyEvent($event)\"\n (blur)=\"handleBlurEvent($event)\" (focus)=\"handleFocusEvent($event)\" class=\"ax-text-box\" disabled />\n <div class=\"ax-field-set-button\">\n <button *ngIf=\"text && allowClear\" type=\"button\" class=\"btn btn-light\" (click)=\"clearText()\">\n <i class=\"far fa-times\"></i>\n </button>\n <button type=\"button\" class=\" btn btn-primary\" (click)=\"handleButtonClick($event)\">\n <i class=\"far fa-check-circle\"></i>\n </button>\n </div>\n </div>\n </div>\n <div class=\"validation-text\" *ngIf=\"errorText\">\n {{ errorText }}\n </div>\n\n</div> -->\n" }]
2128
+ args: [{ selector: 'ax-lov', encapsulation: ViewEncapsulation.None, host: { style: 'width: 100%' }, providers: [{ provide: AXValidatableComponent, useExisting: AXLOVComponent }], template: "<ax-select-box\n [rowInputTemplate]=\"rowTemplate\"\n [multiLine]=\"multiLine\"\n [rtl]=\"rtl\"\n [allowSearch]=\"allowSearch\"\n #selectBox\n [showDropDownButton]=\"false\"\n [allowNull]=\"allowNull\"\n [remoteOperation]=\"remoteOperation\"\n [placeholder]=\"placeholder\"\n [size]=\"size\"\n [textField]=\"textField\"\n [valueField]=\"valueField\"\n [disabled]=\"disabled\"\n [mode]=\"mode\"\n [(selectedItems)]=\"selectedItems\"\n (selectionChanged)=\"handleSelectChange($event)\"\n [dataSource]=\"dataSource\"\n>\n <ng-container start>\n <ng-content select=\"[start]\"> </ng-content>\n </ng-container>\n <ng-container end>\n <ax-button\n icon=\"far fa-bars icon\"\n [disabled]=\"disabled\"\n type=\"light blank\"\n (click)=\"handleButtonClick()\"\n end\n [tabIndex]=\"-1\"\n >\n </ax-button>\n <ng-content select=\"[end]\"> </ng-content>\n </ng-container>\n</ax-select-box>\n\n<!-- <ax-select-box2 [rtl]=\"rtl\" [allowSearch]=\"allowSearch\" #selectBox [showDropDownButton]=\"false\" [allowNull]=\"allowNull\"\n [remoteOperation]=\"true\" [placeholder]=\"placeholder\" [size]=\"size\" [textField]=\"textField\" [valueField]=\"valueField\"\n [disabled]=\"disabled\" [selectionMode]=\"mode\" (onValueChanged)=\"handleSelectChange($event)\" [dataSource]=\"dataSource\"\n [(value)]=\"selectedItems\" selectionDataMode=\"item\">\n <ng-container start>\n <ng-content select=\"[start]\">\n </ng-content>\n </ng-container>\n <ng-container end>\n <ax-button icon=\"far fa-bars icon\" [disabled]=\"disabled\" type=\"primary blank\" (click)=\"handleButtonClick()\" end\n [tabIndex]=\"-1\">\n </ax-button>\n <ng-content select=\"[end]\">\n </ng-content>\n </ng-container>\n</ax-select-box2> -->\n\n<!-- <div class=\"ax-lov-box\" [style.display]=\"mode=='hidden' ? 'none':'unset'\">\n <div class=\"ax-field-set\">\n <div class=\"ax-field-set-wrapper\" [ngClass]=\"{ 'no-label': !label }\">\n <fieldset [ngClass]=\"{ 'input-focused': isFocused, 'input-error': errorText }\">\n <legend *ngIf=\"label\">\n {{ label }}\n </legend>\n </fieldset>\n <input type=\"text\" [(ngModel)]=\"text\" [placeholder]=\"placeholder\" (keyup)=\"handleKeyEvent($event)\"\n (blur)=\"handleBlurEvent($event)\" (focus)=\"handleFocusEvent($event)\" class=\"ax-text-box\" disabled />\n <div class=\"ax-field-set-button\">\n <button *ngIf=\"text && allowClear\" type=\"button\" class=\"btn btn-light\" (click)=\"clearText()\">\n <i class=\"far fa-times\"></i>\n </button>\n <button type=\"button\" class=\" btn btn-primary\" (click)=\"handleButtonClick($event)\">\n <i class=\"far fa-check-circle\"></i>\n </button>\n </div>\n </div>\n </div>\n <div class=\"validation-text\" *ngIf=\"errorText\">\n {{ errorText }}\n </div>\n\n</div> -->\n" }]
2118
2129
  }], ctorParameters: () => [{ type: i1$1.AXPopupService }, { type: i0.ElementRef }], propDecorators: { _contentValidation: [{
2119
2130
  type: ContentChild,
2120
2131
  args: [AXValidation, { static: true }]
@@ -2178,6 +2189,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImpor
2178
2189
  type: Input
2179
2190
  }], paginationPageSizeSelector: [{
2180
2191
  type: Input
2192
+ }], remoteOperation: [{
2193
+ type: Input
2181
2194
  }] } });
2182
2195
 
2183
2196
  class AXLOVModule {