basesite-shared-grid-lib 1.2.1 → 1.2.2

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.
@@ -26,16 +26,6 @@ export class GridLibraryComponent {
26
26
  filter: true,
27
27
  tooltipComponent: CustomTooltip,
28
28
  };
29
- // ngAfterViewInit() {
30
- // const gridOptions :any= this.agGrid?.gridOptions;
31
- // gridOptions.api.setColumnDefs(this.columnDefs);
32
- // // Method setServerSideDatasource() resets any filter or sort models so it has to be
33
- // // called first.
34
- // gridOptions.api.setServerSideDatasource(this);
35
- // gridOptions.columnApi.setColumnState(this.gridColumnState);
36
- // gridOptions.api.setFilterModel(gridConfig.defaultGridLayout.filterModel);
37
- // gridOptions.api.setSortModel(gridConfig.defaultGridLayout.sortModel);
38
- // }
39
29
  this.paginationNumberFormatter = (params) => {
40
30
  return '[' + params.value.toLocaleString() + ']';
41
31
  };
@@ -136,7 +126,6 @@ export class GridLibraryComponent {
136
126
  this.columnDefs = coldef;
137
127
  this.agGrid.gridOptions?.api?.setColumnDefs(coldef);
138
128
  this.getGridState();
139
- this.setDataSource(this.agGrid.gridOptions);
140
129
  }
141
130
  else {
142
131
  console.log("ColDef Read Error=>", response.message);
@@ -147,12 +136,12 @@ export class GridLibraryComponent {
147
136
  console.log('Please pass valid GridId and loggedIn user Id');
148
137
  }
149
138
  }
150
- setDataSource(params) {
139
+ onGridReady(params) {
140
+ this.gridPageSize = this.pageSize;
151
141
  if (this.enableServerSidePaging == true) {
152
142
  params.api.setServerSideDatasource(new OdataServerSideProvider({
153
143
  isCaseSensitiveStringFilter: false,
154
- caseSensitiveColumns: ['Customer.Name'],
155
- callApi: (options) => fetch(`${this.serverDataUrl}${options}`, {
144
+ callApi: (options) => fetch(`${this.serverDataUrl}${this.serverDataUrl.indexOf('?') >= 0 ? (options.indexOf('?') >= 0 ? options.replace('?', '&') : options) : options}`, {
156
145
  headers: {
157
146
  'Content-type': 'application/json',
158
147
  Accept: 'application/json',
@@ -161,10 +150,6 @@ export class GridLibraryComponent {
161
150
  }));
162
151
  }
163
152
  }
164
- onGridReady(params) {
165
- this.gridPageSize = this.pageSize;
166
- this.setDataSource(params);
167
- }
168
153
  setGridState() {
169
154
  if (this.gridColumnState) {
170
155
  this.agGrid.columnApi.applyColumnState({
@@ -251,7 +236,7 @@ GridLibraryComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", v
251
236
  [rowModelType]="rowModelType"
252
237
  [cacheBlockSize]="cacheBlockSize"
253
238
  [maxConcurrentDatasourceRequests]="1"
254
- [blockLoadDebounceMillis]="500"
239
+ [blockLoadDebounceMillis]="100"
255
240
  (columnVisible)="onSaveGridColumnState($event)"
256
241
  (columnPinned)="onSaveGridColumnState($event)"
257
242
  (columnResized)="onSaveGridColumnState($event)"
@@ -281,7 +266,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
281
266
  [rowModelType]="rowModelType"
282
267
  [cacheBlockSize]="cacheBlockSize"
283
268
  [maxConcurrentDatasourceRequests]="1"
284
- [blockLoadDebounceMillis]="500"
269
+ [blockLoadDebounceMillis]="100"
285
270
  (columnVisible)="onSaveGridColumnState($event)"
286
271
  (columnPinned)="onSaveGridColumnState($event)"
287
272
  (columnResized)="onSaveGridColumnState($event)"
@@ -314,4 +299,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
314
299
  type: ViewChild,
315
300
  args: [AgGridAngular]
316
301
  }] } });
317
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1saWJyYXJ5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Jhc2VzaXRlLXNoYXJlZC1ncmlkLWxpYi9zcmMvbGliL2dyaWQtbGlicmFyeS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUVMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBV2hELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNwRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUMvRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scURBQXFELENBQUM7Ozs7O0FBa0NwRixNQUFNLE9BQU8sb0JBQW9CO0lBeUIvQixZQUNVLFdBQStCLEVBQy9CLFFBQWtCO1FBRGxCLGdCQUFXLEdBQVgsV0FBVyxDQUFvQjtRQUMvQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBdkJuQixhQUFRLEdBQVcsRUFBRSxDQUFDO1FBQ3RCLGlCQUFZLEdBQVEsVUFBVSxDQUFDO1FBRy9CLDJCQUFzQixHQUFZLEtBQUssQ0FBQztRQUdqRCxnQkFBZ0I7UUFDTixvQkFBZSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFPN0MscUJBQWdCLEdBQUcsQ0FBQyxDQUFDO1FBQ3JCLHFCQUFnQixHQUFHLElBQUksQ0FBQztRQUN4QixpQkFBWSxHQUFpQixZQUFZLENBQUM7UUFDMUMsbUJBQWMsR0FBVyxDQUFDLENBQUM7UUFDM0IsaUJBQVksR0FBVyxDQUFDLENBQUM7UUFZekIsa0JBQWEsR0FBVztZQUM3QixRQUFRLEVBQUUsSUFBSTtZQUNkLE1BQU0sRUFBRSxJQUFJO1lBQ1osZ0JBQWdCLEVBQUUsYUFBYTtTQUNo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RTtZQUN4QixJQUFJLFdBQVcsR0FBRyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDekMsSUFBSSxXQUFXLEdBQUcsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7WUFDaEQsSUFBSSxXQUFXLEVBQUU7Z0JBQ2YsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLFlBQVksQ0FBQyxDQUFDO2FBQzVEO2lCQUFNO2dCQUNMLE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQzthQUNyQjtTQUNGO1FBQ0QsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDO0lBQ3RCLENBQUM7O2lIQTNQVSxvQkFBb0I7cUdBQXBCLG9CQUFvQix5YUFlcEIsYUFBYSxnREE3Q2Q7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTJCVDsyRkFHVSxvQkFBb0I7a0JBaENoQyxTQUFTOytCQUNFLDhCQUE4QixZQUM5Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMkJUO2dJQUtRLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxzQkFBc0I7c0JBQTlCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUVJLGVBQWU7c0JBQXhCLE1BQU07Z0JBR21CLE1BQU07c0JBQS9CLFNBQVM7dUJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGVQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBZ0dyaWRBbmd1bGFyIH0gZnJvbSAnYWctZ3JpZC1hbmd1bGFyJztcbmltcG9ydCB7XG4gIENvbERlZixcbiAgR2V0Um93SWRGdW5jLFxuICBHZXRSb3dJZFBhcmFtcyxcbiAgR3JpZFJlYWR5RXZlbnQsXG4gIFBhZ2luYXRpb25OdW1iZXJGb3JtYXR0ZXJQYXJhbXMsXG4gIFJvd01vZGVsVHlwZSxcbiAgVmFsdWVGb3JtYXR0ZXJQYXJhbXMsXG59IGZyb20gJ2FnLWdyaWQtY29tbXVuaXR5JztcbmltcG9ydCB7IEdyaWRMaWJyYXJ5U2VydmljZSB9IGZyb20gJy4vZ3JpZC1saWJyYXJ5LnNlcnZpY2UnO1xuaW1wb3J0IHsgT2RhdGFTZXJ2ZXJTaWRlUHJvdmlkZXIgfSBmcm9tICcuL2hlbHBlcnMnO1xuaW1wb3J0IHsgQnV0dG9uUmVuZGVyZXJDb21wb25lbnQgfSBmcm9tICcuL3JlbmRlcmVyL2J1dHRvbi1yZW5kZXJlci9idXR0b24tcmVuZGVyZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEN1c3RvbVRvb2x0aXAgfSBmcm9tICcuL3JlbmRlcmVyL3Rvb2x0aXAtcmVuZGVyZXIvY3VzdG9tLXRvb2x0aXAtcmVuZGVyZXInO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItYmFzZXNpdGUtc2hhcmVkLWdyaWQtbGliJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8YWctZ3JpZC1hbmd1bGFyXG4gICAgICBzdHlsZT1cIndpZHRoOiAxMDAlO2hlaWdodDo5OC4ydmhcIlxuICAgICAgY2xhc3M9XCJhZy10aGVtZS1iYWxoYW1cIlxuICAgICAgW2NvbHVtbkRlZnNdPVwiY29sdW1uRGVmc1wiXG4gICAgICBbZGVmYXVsdENvbERlZl09XCJkZWZhdWx0Q29sRGVmXCJcbiAgICAgIFtyb3dEYXRhXT1cInJvd0RhdGFcIlxuICAgICAgW3Jvd1NlbGVjdGlvbl09XCJyb3dTZWxlY3Rpb25cIlxuICAgICAgW2FuaW1hdGVSb3dzXT1cInRydWVcIlxuICAgICAgKGdyaWRSZWFkeSk9XCJvbkdyaWRSZWFkeSgkZXZlbnQpXCJcbiAgICAgIFtwYWdpbmF0aW9uXT1cInRydWVcIlxuICAgICAgW3BhZ2luYXRpb25QYWdlU2l6ZV09XCJncmlkUGFnZVNpemVcIlxuICAgICAgW3BhZ2luYXRpb25OdW1iZXJGb3JtYXR0ZXJdPVwicGFnaW5hdGlvbk51bWJlckZvcm1hdHRlclwiXG4gICAgICAobW9kZWxVcGRhdGVkKT1cIm9uTW9kZWxVcGRhdGVkKClcIlxuICAgICAgW3Rvb2x0aXBTaG93RGVsYXldPVwidG9vbHRpcFNob3dEZWxheVwiXG4gICAgICBbdG9vbHRpcEhpZGVEZWxheV09XCJ0b29sdGlwSGlkZURlbGF5XCJcbiAgICAgIFtyb3dNb2RlbFR5cGVdPVwicm93TW9kZWxUeXBlXCJcbiAgICAgIFtjYWNoZUJsb2NrU2l6ZV09XCJjYWNoZUJsb2NrU2l6ZVwiXG4gICAgICBbbWF4Q29uY3VycmVudERhdGFzb3VyY2VSZXF1ZXN0c109XCIxXCJcbiAgICAgIFtibG9ja0xvYWREZWJvdW5jZU1pbGxpc109XCI1MDBcIlxuICAgICAgKGNvbHVtblZpc2libGUpPVwib25TYXZlR3JpZENvbHVtblN0YXRlKCRldmVudClcIlxuICAgICAgKGNvbHVtblBpbm5lZCk9XCJvblNhdmVHcmlkQ29sdW1uU3RhdGUoJGV2ZW50KVwiXG4gICAgICAoY29sdW1uUmVzaXplZCk9XCJvblNhdmVHcmlkQ29sdW1uU3RhdGUoJGV2ZW50KVwiXG4gICAgICAoY29sdW1uTW92ZWQpPVwib25TYXZlR3JpZENvbHVtblN0YXRlKCRldmVudClcIlxuICAgICAgKHNvcnRDaGFuZ2VkKT1cIm9uU29ydENoYW5nZWRFdmVudCgpXCJcbiAgICA+XG4gICAgPC9hZy1ncmlkLWFuZ3VsYXI+XG4gIGAsXG4gIHN0eWxlczogW10sXG59KVxuZXhwb3J0IGNsYXNzIEdyaWRMaWJyYXJ5Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgLy9pbnB1dCBwYXJhbXNcbiAgQElucHV0KCkgY29sdW1uRGVmczogYW55O1xuICBASW5wdXQoKSByb3dEYXRhOiBhbnk7XG4gIEBJbnB1dCgpIHBhZ2VTaXplOiBudW1iZXIgPSAyMDtcbiAgQElucHV0KCkgcm93U2VsZWN0aW9uOiBhbnkgPSAnbXVsdGlwbGUnO1xuICBASW5wdXQoKSBncmlkSWQ6IGFueTtcbiAgQElucHV0KCkgbG9nZ2VkSW5Vc2VyOiBhbnk7XG4gIEBJbnB1dCgpIGVuYWJsZVNlcnZlclNpZGVQYWdpbmc6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgc2VydmVyRGF0YVVybCE6IHN0cmluZztcbiAgQElucHV0KCkgZW52aXJvbm1lbnQhOnN0cmluZztcbiAgLy9ldmVudCBlbWl0dGVyc1xuICBAT3V0cHV0KCkgYnRuQ2xpY2tIYW5kbGVyID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgLy92aWV3Q2hpbGRzXG4gIEBWaWV3Q2hpbGQoQWdHcmlkQW5ndWxhcikgYWdHcmlkITogQWdHcmlkQW5ndWxhcjtcblxuICAvL3BhcmFtdGVyc1xuICBncmlkQ29sdW1uU3RhdGU6IGFueTtcbiAgcHVibGljIHRvb2x0aXBTaG93RGVsYXkgPSAwO1xuICBwdWJsaWMgdG9vbHRpcEhpZGVEZWxheSA9IDIwMDA7XG4gIHB1YmxpYyByb3dNb2RlbFR5cGU6IFJvd01vZGVsVHlwZSA9ICdjbGllbnRTaWRlJztcbiAgcHVibGljIGNhY2hlQmxvY2tTaXplOiBudW1iZXIgPSAwO1xuICBwdWJsaWMgZ3JpZFBhZ2VTaXplOiBudW1iZXIgPSAwO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZ3JpZFNlcnZpY2U6IEdyaWRMaWJyYXJ5U2VydmljZSxcbiAgICBwcml2YXRlIGRhdGVQaXBlOiBEYXRlUGlwZVxuICApIHtcbiAgICBcbiAgfVxuXG4gIG9uU29ydENoYW5nZWRFdmVudCgpIHtcbiAgICB0aGlzLmdyaWRDb2x1bW5TdGF0ZSA9IHRoaXMuYWdHcmlkLmNvbHVtbkFwaS5nZXRDb2x1bW5TdGF0ZSgpO1xuICB9XG4gIHB1YmxpYyBkZWZhdWx0Q29sRGVmOiBDb2xEZWYgPSB7XG4gICAgc29ydGFibGU6IHRydWUsXG4gICAgZmlsdGVyOiB0cnVlLFxuICAgIHRvb2x0aXBDb21wb25lbnQ6IEN1c3RvbVRvb2x0aXAsXG4gIH07XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5ncmlkUGFnZVNpemUgPSB0aGlzLnBhZ2VTaXplO1xuICAgIHRoaXMuY2FjaGVCbG9ja1NpemUgPSB0aGlzLnBhZ2VTaXplOyAgIFxuICAgIHRoaXMuZ3JpZFNlcnZpY2Uuc2V0QmFzZVVybCh0aGlzLmVudmlyb25tZW50KTtcbiAgICB0aGlzLmdldEdyaWRTdGF0ZSgpO1xuICAgIHRoaXMuZ2V0Q29sRGVmKCk7XG4gICAgaWYgKHRoaXMuZW5hYmxlU2VydmVyU2lkZVBhZ2luZyA9PSB0cnVlKSB7XG4gICAgICB0aGlzLnJvd01vZGVsVHlwZSA9ICdzZXJ2ZXJTaWRlJztcbiAgICAgIHRoaXMucm93RGF0YSA9ICcnO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJvd01vZGVsVHlwZSA9ICdjbGllbnRTaWRlJztcbiAgICB9XG4gIH1cblxuICAvLyBuZ0FmdGVyVmlld0luaXQoKSB7XG4gIC8vICAgICAgIGNvbnN0IGdyaWRPcHRpb25zIDphbnk9IHRoaXMuYWdHcmlkPy5ncmlkT3B0aW9ucztcbiAgLy8gICAgICAgICAgIGdyaWRPcHRpb25zLmFwaS5zZXRDb2x1bW5EZWZzKHRoaXMuY29sdW1uRGVmcyk7XG4gIC8vICAgICAgICAgICAvLyBNZXRob2Qgc2V0U2VydmVyU2lkZURhdGFzb3VyY2UoKSByZXNldHMgYW55IGZpbHRlciBvciBzb3J0IG1vZGVscyBzbyBpdCBoYXMgdG8gYmVcbiAgLy8gICAgICAgICAgIC8vIGNhbGxlZCBmaXJzdC5cbiAgLy8gICAgICAgICAgIGdyaWRPcHRpb25zLmFwaS5zZXRTZXJ2ZXJTaWRlRGF0YXNvdXJjZSh0aGlzKTtcbiAgLy8gICAgICAgICAgIGdyaWRPcHRpb25zLmNvbHVtbkFwaS5zZXRDb2x1bW5TdGF0ZSh0aGlzLmdyaWRDb2x1bW5TdGF0ZSk7XG4gIC8vICAgICAgICAgICBncmlkT3B0aW9ucy5hcGkuc2V0RmlsdGVyTW9kZWwoZ3JpZENvbmZpZy5kZWZhdWx0R3JpZExheW91dC5maWx0ZXJNb2RlbCk7XG4gIC8vICAgICAgICAgICBncmlkT3B0aW9ucy5hcGkuc2V0U29ydE1vZGVsKGdyaWRDb25maWcuZGVmYXVsdEdyaWRMYXlvdXQuc29ydE1vZGVsKTtcbiAgLy8gfVxuICBwdWJsaWMgcGFnaW5hdGlvbk51bWJlckZvcm1hdHRlcjogKFxuICAgIHBhcmFtczogUGFnaW5hdGlvbk51bWJlckZvcm1hdHRlclBhcmFtc1xuICApID0+IHN0cmluZyA9IChwYXJhbXM6IFBhZ2luYXRpb25OdW1iZXJGb3JtYXR0ZXJQYXJhbXMpID0+IHtcbiAgICByZXR1cm4gJ1snICsgcGFyYW1zLnZhbHVlLnRvTG9jYWxlU3RyaW5nKCkgKyAnXSc7XG4gIH07XG5cbiAgb25Nb2RlbFVwZGF0ZWQoKSB7XG4gICAgdGhpcy5zZXRHcmlkU3RhdGUoKTtcbiAgfVxuXG4gIGdldENvbERlZigpIHtcbiAgICBpZiAodGhpcy5ncmlkSWQgJiYgdGhpcy5sb2dnZWRJblVzZXIpIHtcbiAgICAgIHRoaXMuZ3JpZFNlcnZpY2UuZ2V0Q29sRGVmKHRoaXMuZ3JpZElkKS5zdWJzY3JpYmUoKHJlc3BvbnNlOiBhbnkpID0+IHtcbiAgICAgICAgaWYocmVzcG9uc2Uuc3RhdHVzPT0xKXtcbiAgICAgICAgbGV0IGNvbGRlZjogQ29sRGVmW10gPSByZXNwb25zZS5saXN0Lm1hcCgocmVzOiBhbnkpID0+IHtcbiAgICAgICAgICBpZiAocmVzLmlzQnV0dG9uID09PSBmYWxzZSkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgZmllbGQ6IHJlcy5maWVsZCxcbiAgICAgICAgICAgICAgaGVhZGVyTmFtZTogcmVzLnRpdGxlLFxuICAgICAgICAgICAgICByZXNpemFibGU6IHRydWUsXG4gICAgICAgICAgICAgIGhpZGU6ICFyZXMudmlzaWJsZSxcbiAgICAgICAgICAgICAgc29ydGFibGU6IHRydWUsXG4gICAgICAgICAgICAgIHRvb2x0aXBGaWVsZDogcmVzLmZpZWxkLFxuICAgICAgICAgICAgICB2YWx1ZUZvcm1hdHRlcjogdGhpcy5jb2xWYWx1ZUZvcm1hdHRlci5iaW5kKHRoaXMpLFxuICAgICAgICAgICAgICBmaWx0ZXJhYmxlOiByZXMuZmlsdGVyYWJsZSxcbiAgICAgICAgICAgICAgZmlsdGVyOlxuICAgICAgICAgICAgICAgIHJlcy5jb2x1bW5UeXBlID09ICdzdHJpbmcnXG4gICAgICAgICAgICAgICAgICA/ICdhZ1RleHRDb2x1bW5GaWx0ZXInXG4gICAgICAgICAgICAgICAgICA6IHJlcy5jb2x1bW5UeXBlID09ICdudW1iZXInXG4gICAgICAgICAgICAgICAgICA/ICdhZ051bWJlckNvbHVtbkZpbHRlcidcbiAgICAgICAgICAgICAgICAgIDogJ2FnRGF0ZUNvbHVtbkZpbHRlcicsXG4gICAgICAgICAgICAgIGZpbHRlclBhcmFtczoge1xuICAgICAgICAgICAgICAgIGNvbXBhcmF0b3I6IChcbiAgICAgICAgICAgICAgICAgIGZpbHRlckxvY2FsRGF0ZUF0TWlkbmlnaHQ6IGFueSxcbiAgICAgICAgICAgICAgICAgIGNlbGxWYWx1ZTogYW55XG4gICAgICAgICAgICAgICAgKSA9PiB7XG4gICAgICAgICAgICAgICAgICBjb25zdCBkYXRlQXNTdHJpbmcgPSBjZWxsVmFsdWU7XG5cbiAgICAgICAgICAgICAgICAgIGlmIChkYXRlQXNTdHJpbmcgPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIGlmIChyZXMuY29sdW1uVHlwZSA9PSAnZGF0ZScpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY2VsbERhdGUgPSBuZXcgRGF0ZShkYXRlQXNTdHJpbmcpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoY2VsbERhdGUgPCBmaWx0ZXJMb2NhbERhdGVBdE1pZG5pZ2h0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGNlbGxEYXRlID4gZmlsdGVyTG9jYWxEYXRlQXRNaWRuaWdodCkge1xuICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAxO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgZmllbGQ6IHJlcy5maWVsZCxcbiAgICAgICAgICAgICAgaGVhZGVyTmFtZTogcmVzLnRpdGxlLFxuICAgICAgICAgICAgICByZXNpemFibGU6IHRydWUsXG4gICAgICAgICAgICAgIHNvcnRhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgaGlkZTogIXJlcy52aXNpYmxlLFxuICAgICAgICAgICAgICBzdXBwcmVzc0ZpbHRlcjogdHJ1ZSxcbiAgICAgICAgICAgICAgc3VwcHJlc3NTb3J0aW5nOiB0cnVlLFxuICAgICAgICAgICAgICBzdXBwcmVzc01lbnU6IHRydWUsXG4gICAgICAgICAgICAgIHRvb2x0aXBGaWVsZDogcmVzLmZpZWxkLFxuICAgICAgICAgICAgICBjZWxsUmVuZGVyZXI6IEJ1dHRvblJlbmRlcmVyQ29tcG9uZW50LFxuICAgICAgICAgICAgICBjZWxsUmVuZGVyZXJQYXJhbXM6IHtcbiAgICAgICAgICAgICAgICBvbkNsaWNrOiB0aGlzLm9uQnRuQ2xpY2suYmluZCh0aGlzKSxcbiAgICAgICAgICAgICAgICBsYWJlbDogcmVzLmxhYmVsLFxuICAgICAgICAgICAgICAgIGljb246IHJlcy5pY29uLFxuICAgICAgICAgICAgICAgIGJ1dHRvbk5hbWU6IHJlcy5idXR0b25OYW1lLFxuICAgICAgICAgICAgICAgIHRvb2x0aXA6IHJlcy50b29sdGlwLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB2YWx1ZUdldHRlcjogKHBhcmFtczogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlcy50b29sdGlwIHx8IHJlcy50aXRsZTtcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgbWluV2lkdGg6IDQwLFxuICAgICAgICAgICAgICBjZWxsQ2xhc3M6ICdhY3Rpb24tYnV0dG9uJyxcbiAgICAgICAgICAgICAgcGlubmVkOiAnbGVmdCcsXG4gICAgICAgICAgICAgIGxvY2tQaW5uZWQ6IHRydWUgICAgICAgICAgICAgXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH0gICAgICAgICAgXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmNvbHVtbkRlZnM9Y29sZGVmO1xuICAgICAgICB0aGlzLmFnR3JpZC5ncmlkT3B0aW9ucz8uYXBpPy5zZXRDb2x1bW5EZWZzKGNvbGRlZik7XG4gICAgICAgIHRoaXMuZ2V0R3JpZFN0YXRlKCk7XG4gICAgICAgIHRoaXMuc2V0RGF0YVNvdXJjZSh0aGlzLmFnR3JpZC5ncmlkT3B0aW9ucyk7XG4gICAgfWVsc2V7XG4gICAgICAgIGNvbnNvbGUubG9nKFwiQ29sRGVmIFJlYWQgRXJyb3I9PlwiLHJlc3BvbnNlLm1lc3NhZ2UpXG4gICAgfX0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zb2xlLmxvZygnUGxlYXNlIHBhc3MgdmFsaWQgR3JpZElkIGFuZCBsb2dnZWRJbiB1c2VyIElkJyk7XG4gICAgfVxuICB9XG5cbiAgc2V0RGF0YVNvdXJjZShwYXJhbXM6YW55KXtcbiAgICBpZiAodGhpcy5lbmFibGVTZXJ2ZXJTaWRlUGFnaW5nID09IHRydWUpIHtcbiAgICAgIHBhcmFtcy5hcGkuc2V0U2VydmVyU2lkZURhdGFzb3VyY2UoXG4gICAgICAgIG5ldyBPZGF0YVNlcnZlclNpZGVQcm92aWRlcih7XG4gICAgICAgICAgaXNDYXNlU2Vuc2l0aXZlU3RyaW5nRmlsdGVyOiBmYWxzZSxcbiAgICAgICAgICBjYXNlU2Vuc2l0aXZlQ29sdW1uczogWydDdXN0b21lci5OYW1lJ10sXG4gICAgICAgICAgY2FsbEFwaTogKG9wdGlvbnMpID0+XG4gICAgICAgICAgICBmZXRjaChgJHt0aGlzLnNlcnZlckRhdGFVcmx9JHtvcHRpb25zfWAsIHtcbiAgICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgICdDb250ZW50LXR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgICAgICAgICAgQWNjZXB0OiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gcmVzcG9uc2UuanNvbigpKSxcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfVxuICB9XG4gIG9uR3JpZFJlYWR5KHBhcmFtczogR3JpZFJlYWR5RXZlbnQpIHtcbiAgICB0aGlzLmdyaWRQYWdlU2l6ZSA9IHRoaXMucGFnZVNpemU7XG4gICAgdGhpcy5zZXREYXRhU291cmNlKHBhcmFtcyk7XG4gIH1cblxuICBzZXRHcmlkU3RhdGUoKSB7XG4gICAgaWYgKHRoaXMuZ3JpZENvbHVtblN0YXRlKSB7XG4gICAgICB0aGlzLmFnR3JpZC5jb2x1bW5BcGkuYXBwbHlDb2x1bW5TdGF0ZSh7XG4gICAgICAgIHN0YXRlOiB0aGlzLmdyaWRDb2x1bW5TdGF0ZSxcbiAgICAgICAgYXBwbHlPcmRlcjogdHJ1ZSxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgY29sdW1ucyA9IHRoaXMuYWdHcmlkLmNvbHVtbkFwaS5nZXRDb2x1bW5zKCk7XG4gICAgICBpZiAoY29sdW1ucyAmJiBjb2x1bW5zLmxlbmd0aCA+IDEwKSB7XG4gICAgICAgIHRoaXMuYWdHcmlkLmNvbHVtbkFwaS5hdXRvU2l6ZUFsbENvbHVtbnMoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuYWdHcmlkLmFwaS5zaXplQ29sdW1uc1RvRml0KCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZ2V0R3JpZFN0YXRlKCkge1xuICAgIGlmICh0aGlzLmdyaWRJZCAmJiB0aGlzLmxvZ2dlZEluVXNlcikge1xuICAgICAgdGhpcy5ncmlkU2VydmljZVxuICAgICAgICAuZ2V0R3JpZFN0YXRlKHRoaXMuZ3JpZElkLCB0aGlzLmxvZ2dlZEluVXNlcilcbiAgICAgICAgLnN1YnNjcmliZSgocmVzcG9uc2U6IGFueSkgPT4ge1xuICAgICAgICAgIGlmIChyZXNwb25zZS5zdGF0dXM9PTEpIHtcbiAgICAgICAgICAgIHRoaXMuZ3JpZENvbHVtblN0YXRlID0gSlNPTi5wYXJzZShyZXNwb25zZS5vYmplY3QuZ3JpZENvbmZpZyk7XG4gICAgICAgICAgICB0aGlzLnNldEdyaWRTdGF0ZSgpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZygnRXJyb3Igd2hpbGUgbG9hZGluZyBncmlkIHN0YXRlJyk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gIH1cbiBcblxuICBvbkJ0bkNsaWNrKGU6IGFueSkge1xuICAgIHRoaXMuYnRuQ2xpY2tIYW5kbGVyLmVtaXQoZS5yb3dEYXRhKTtcbiAgfVxuXG4gIG9uU2F2ZUdyaWRDb2x1bW5TdGF0ZShldmVudDogYW55KSB7XG4gICAgbGV0IGNvbHVtblN0YXRlID0gdGhpcy5hZ0dyaWQuY29sdW1uQXBpPy5nZXRDb2x1bW5TdGF0ZSgpO1xuICAgIGxldCBjb2x1bW5EYXRhID0ge1xuICAgICAgZ3JpZENvbmZpZzogSlNPTi5zdHJpbmdpZnkoY29sdW1uU3RhdGUpLFxuICAgICAgdWlHcmlkSWQ6IHRoaXMuZ3JpZElkLFxuICAgICAgdXNlcklkOiB0aGlzLmxvZ2dlZEluVXNlcixcbiAgICB9O1xuICAgIGlmIChldmVudC5maW5pc2hlZCA9PSB0cnVlIHx8IGV2ZW50LnR5cGUgPT09ICdjb2x1bW5QaW5uZWQnKSB7XG4gICAgICB0aGlzLmdyaWRDb2x1bW5TdGF0ZSA9IGNvbHVtblN0YXRlO1xuICAgICAgdGhpcy5ncmlkU2VydmljZS5zYXZlQ29sdW1uQ29uZmlnKGNvbHVtbkRhdGEpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHsgICAgICAgIFxuICAgICAgICB0aGlzLnNldEdyaWRTdGF0ZSgpO1xuICAgICAgICBpZiAocmVzLnN0YXR1cz09MCkge1xuICAgICAgICAgIGNvbnNvbGUubG9nKCdFcnJvciB3aGlsZSBzYXZpbmcgY29sdW1uIGNvbmZpZ3VyYXRpb246JywgcmVzLm1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBnZXRSb3dCeUlkOiBHZXRSb3dJZEZ1bmMgPSAocGFyYW1zOiBHZXRSb3dJZFBhcmFtcykgPT4ge1xuICAgIHZhciBkYXRhID0gcGFyYW1zLmRhdGE7XG4gICAgcmV0dXJuIGRhdGEuaWQgPz8gMDtcbiAgfTtcblxuICBjb2xWYWx1ZUZvcm1hdHRlcihwYXJhbXM6IFZhbHVlRm9ybWF0dGVyUGFyYW1zKSB7XG4gICAgaWYgKGlzTmFOKCtwYXJhbXMudmFsdWUpKSB7XG4gICAgICB2YXIgZGF0ZVdyYXBwZXIgPSBuZXcgRGF0ZShwYXJhbXMudmFsdWUpO1xuICAgICAgbGV0IGlzVmFsaWREYXRlID0gIWlzTmFOKGRhdGVXcmFwcGVyLmdldERhdGUoKSk7XG4gICAgICBpZiAoaXNWYWxpZERhdGUpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKHBhcmFtcy52YWx1ZSwgJ01NLWRkLXl5eXknKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBwYXJhbXMudmFsdWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBwYXJhbXMudmFsdWU7XG4gIH1cbn1cbiJdfQ==
302
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1saWJyYXJ5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Jhc2VzaXRlLXNoYXJlZC1ncmlkLWxpYi9zcmMvbGliL2dyaWQtbGlicmFyeS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBV2hELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNwRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUMvRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scURBQXFELENBQUM7Ozs7O0FBa0NwRixNQUFNLE9BQU8sb0JBQW9CO0lBeUIvQixZQUNVLFdBQStCLEVBQy9CLFFBQWtCO1FBRGxCLGdCQUFXLEdBQVgsV0FBVyxDQUFvQjtRQUMvQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBdkJuQixhQUFRLEdBQVcsRUFBRSxDQUFDO1FBQ3RCLGlCQUFZLEdBQVEsVUFBVSxDQUFDO1FBRy9CLDJCQUFzQixHQUFZLEtBQUssQ0FBQztRQUdqRCxnQkFBZ0I7UUFDTixvQkFBZSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFPN0MscUJBQWdCLEdBQUcsQ0FBQyxDQUFDO1FBQ3JCLHFCQUFnQixHQUFHLElBQUksQ0FBQztRQUN4QixpQkFBWSxHQUFpQixZQUFZLENBQUM7UUFDMUMsbUJBQWMsR0FBVyxDQUFDLENBQUM7UUFDM0IsaUJBQVksR0FBVyxDQUFDLENBQUM7UUFZekIsa0JBQWEsR0FBVztZQUM3QixRQUFRLEVBQUUsSUFBSTtZQUNkLE1BQU0sRUFBRSxJQUFJO1lBQ1osZ0JBQWdCLEVBQUUsYUFBYTtTQUNo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QUssQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztZQUNoRCxJQUFJLFdBQVcsRUFBRTtnQkFDZixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsWUFBWSxDQUFDLENBQUM7YUFDNUQ7aUJBQU07Z0JBQ0wsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDO2FBQ3JCO1NBQ0Y7UUFDRCxPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUM7SUFDdEIsQ0FBQzs7aUhBNU9VLG9CQUFvQjtxR0FBcEIsb0JBQW9CLHlhQWVwQixhQUFhLGdEQTdDZDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMkJUOzJGQUdVLG9CQUFvQjtrQkFoQ2hDLFNBQVM7K0JBQ0UsOEJBQThCLFlBQzlCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EyQlQ7Z0lBS1EsVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLHNCQUFzQjtzQkFBOUIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRUksZUFBZTtzQkFBeEIsTUFBTTtnQkFHbUIsTUFBTTtzQkFBL0IsU0FBUzt1QkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0ZVBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFnR3JpZEFuZ3VsYXIgfSBmcm9tICdhZy1ncmlkLWFuZ3VsYXInO1xuaW1wb3J0IHtcbiAgQ29sRGVmLFxuICBHZXRSb3dJZEZ1bmMsXG4gIEdldFJvd0lkUGFyYW1zLFxuICBHcmlkUmVhZHlFdmVudCxcbiAgUGFnaW5hdGlvbk51bWJlckZvcm1hdHRlclBhcmFtcyxcbiAgUm93TW9kZWxUeXBlLFxuICBWYWx1ZUZvcm1hdHRlclBhcmFtcyxcbn0gZnJvbSAnYWctZ3JpZC1jb21tdW5pdHknO1xuaW1wb3J0IHsgR3JpZExpYnJhcnlTZXJ2aWNlIH0gZnJvbSAnLi9ncmlkLWxpYnJhcnkuc2VydmljZSc7XG5pbXBvcnQgeyBPZGF0YVNlcnZlclNpZGVQcm92aWRlciB9IGZyb20gJy4vaGVscGVycyc7XG5pbXBvcnQgeyBCdXR0b25SZW5kZXJlckNvbXBvbmVudCB9IGZyb20gJy4vcmVuZGVyZXIvYnV0dG9uLXJlbmRlcmVyL2J1dHRvbi1yZW5kZXJlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ3VzdG9tVG9vbHRpcCB9IGZyb20gJy4vcmVuZGVyZXIvdG9vbHRpcC1yZW5kZXJlci9jdXN0b20tdG9vbHRpcC1yZW5kZXJlcic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1iYXNlc2l0ZS1zaGFyZWQtZ3JpZC1saWInLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxhZy1ncmlkLWFuZ3VsYXJcbiAgICAgIHN0eWxlPVwid2lkdGg6IDEwMCU7aGVpZ2h0Ojk4LjJ2aFwiXG4gICAgICBjbGFzcz1cImFnLXRoZW1lLWJhbGhhbVwiXG4gICAgICBbY29sdW1uRGVmc109XCJjb2x1bW5EZWZzXCJcbiAgICAgIFtkZWZhdWx0Q29sRGVmXT1cImRlZmF1bHRDb2xEZWZcIlxuICAgICAgW3Jvd0RhdGFdPVwicm93RGF0YVwiXG4gICAgICBbcm93U2VsZWN0aW9uXT1cInJvd1NlbGVjdGlvblwiXG4gICAgICBbYW5pbWF0ZVJvd3NdPVwidHJ1ZVwiXG4gICAgICAoZ3JpZFJlYWR5KT1cIm9uR3JpZFJlYWR5KCRldmVudClcIlxuICAgICAgW3BhZ2luYXRpb25dPVwidHJ1ZVwiXG4gICAgICBbcGFnaW5hdGlvblBhZ2VTaXplXT1cImdyaWRQYWdlU2l6ZVwiXG4gICAgICBbcGFnaW5hdGlvbk51bWJlckZvcm1hdHRlcl09XCJwYWdpbmF0aW9uTnVtYmVyRm9ybWF0dGVyXCJcbiAgICAgIChtb2RlbFVwZGF0ZWQpPVwib25Nb2RlbFVwZGF0ZWQoKVwiXG4gICAgICBbdG9vbHRpcFNob3dEZWxheV09XCJ0b29sdGlwU2hvd0RlbGF5XCJcbiAgICAgIFt0b29sdGlwSGlkZURlbGF5XT1cInRvb2x0aXBIaWRlRGVsYXlcIlxuICAgICAgW3Jvd01vZGVsVHlwZV09XCJyb3dNb2RlbFR5cGVcIlxuICAgICAgW2NhY2hlQmxvY2tTaXplXT1cImNhY2hlQmxvY2tTaXplXCJcbiAgICAgIFttYXhDb25jdXJyZW50RGF0YXNvdXJjZVJlcXVlc3RzXT1cIjFcIlxuICAgICAgW2Jsb2NrTG9hZERlYm91bmNlTWlsbGlzXT1cIjEwMFwiXG4gICAgICAoY29sdW1uVmlzaWJsZSk9XCJvblNhdmVHcmlkQ29sdW1uU3RhdGUoJGV2ZW50KVwiXG4gICAgICAoY29sdW1uUGlubmVkKT1cIm9uU2F2ZUdyaWRDb2x1bW5TdGF0ZSgkZXZlbnQpXCJcbiAgICAgIChjb2x1bW5SZXNpemVkKT1cIm9uU2F2ZUdyaWRDb2x1bW5TdGF0ZSgkZXZlbnQpXCJcbiAgICAgIChjb2x1bW5Nb3ZlZCk9XCJvblNhdmVHcmlkQ29sdW1uU3RhdGUoJGV2ZW50KVwiXG4gICAgICAoc29ydENoYW5nZWQpPVwib25Tb3J0Q2hhbmdlZEV2ZW50KClcIlxuICAgID5cbiAgICA8L2FnLWdyaWQtYW5ndWxhcj5cbiAgYCxcbiAgc3R5bGVzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgR3JpZExpYnJhcnlDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAvL2lucHV0IHBhcmFtc1xuICBASW5wdXQoKSBjb2x1bW5EZWZzOiBhbnk7XG4gIEBJbnB1dCgpIHJvd0RhdGE6IGFueTtcbiAgQElucHV0KCkgcGFnZVNpemU6IG51bWJlciA9IDIwO1xuICBASW5wdXQoKSByb3dTZWxlY3Rpb246IGFueSA9ICdtdWx0aXBsZSc7XG4gIEBJbnB1dCgpIGdyaWRJZDogYW55O1xuICBASW5wdXQoKSBsb2dnZWRJblVzZXI6IGFueTtcbiAgQElucHV0KCkgZW5hYmxlU2VydmVyU2lkZVBhZ2luZzogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBzZXJ2ZXJEYXRhVXJsITogc3RyaW5nO1xuICBASW5wdXQoKSBlbnZpcm9ubWVudCE6c3RyaW5nO1xuICAvL2V2ZW50IGVtaXR0ZXJzXG4gIEBPdXRwdXQoKSBidG5DbGlja0hhbmRsZXIgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICAvL3ZpZXdDaGlsZHNcbiAgQFZpZXdDaGlsZChBZ0dyaWRBbmd1bGFyKSBhZ0dyaWQhOiBBZ0dyaWRBbmd1bGFyO1xuXG4gIC8vcGFyYW10ZXJzXG4gIGdyaWRDb2x1bW5TdGF0ZTogYW55O1xuICBwdWJsaWMgdG9vbHRpcFNob3dEZWxheSA9IDA7XG4gIHB1YmxpYyB0b29sdGlwSGlkZURlbGF5ID0gMjAwMDtcbiAgcHVibGljIHJvd01vZGVsVHlwZTogUm93TW9kZWxUeXBlID0gJ2NsaWVudFNpZGUnO1xuICBwdWJsaWMgY2FjaGVCbG9ja1NpemU6IG51bWJlciA9IDA7XG4gIHB1YmxpYyBncmlkUGFnZVNpemU6IG51bWJlciA9IDA7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBncmlkU2VydmljZTogR3JpZExpYnJhcnlTZXJ2aWNlLFxuICAgIHByaXZhdGUgZGF0ZVBpcGU6IERhdGVQaXBlXG4gICkge1xuICAgIFxuICB9XG5cbiAgb25Tb3J0Q2hhbmdlZEV2ZW50KCkge1xuICAgIHRoaXMuZ3JpZENvbHVtblN0YXRlID0gdGhpcy5hZ0dyaWQuY29sdW1uQXBpLmdldENvbHVtblN0YXRlKCk7XG4gIH1cbiAgcHVibGljIGRlZmF1bHRDb2xEZWY6IENvbERlZiA9IHtcbiAgICBzb3J0YWJsZTogdHJ1ZSxcbiAgICBmaWx0ZXI6IHRydWUsXG4gICAgdG9vbHRpcENvbXBvbmVudDogQ3VzdG9tVG9vbHRpcCxcbiAgfTtcblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmdyaWRQYWdlU2l6ZSA9IHRoaXMucGFnZVNpemU7XG4gICAgdGhpcy5jYWNoZUJsb2NrU2l6ZSA9IHRoaXMucGFnZVNpemU7ICAgXG4gICAgdGhpcy5ncmlkU2VydmljZS5zZXRCYXNlVXJsKHRoaXMuZW52aXJvbm1lbnQpO1xuICAgIHRoaXMuZ2V0R3JpZFN0YXRlKCk7XG4gICAgdGhpcy5nZXRDb2xEZWYoKTtcbiAgICBpZiAodGhpcy5lbmFibGVTZXJ2ZXJTaWRlUGFnaW5nID09IHRydWUpIHtcbiAgICAgIHRoaXMucm93TW9kZWxUeXBlID0gJ3NlcnZlclNpZGUnO1xuICAgICAgdGhpcy5yb3dEYXRhID0gJyc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucm93TW9kZWxUeXBlID0gJ2NsaWVudFNpZGUnO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBwYWdpbmF0aW9uTnVtYmVyRm9ybWF0dGVyOiAoXG4gICAgcGFyYW1zOiBQYWdpbmF0aW9uTnVtYmVyRm9ybWF0dGVyUGFyYW1zXG4gICkgPT4gc3RyaW5nID0gKHBhcmFtczogUGFnaW5hdGlvbk51bWJlckZvcm1hdHRlclBhcmFtcykgPT4ge1xuICAgIHJldHVybiAnWycgKyBwYXJhbXMudmFsdWUudG9Mb2NhbGVTdHJpbmcoKSArICddJztcbiAgfTtcblxuICBvbk1vZGVsVXBkYXRlZCgpIHtcbiAgICB0aGlzLnNldEdyaWRTdGF0ZSgpO1xuICB9XG5cbiAgZ2V0Q29sRGVmKCkge1xuICAgIGlmICh0aGlzLmdyaWRJZCAmJiB0aGlzLmxvZ2dlZEluVXNlcikge1xuICAgICAgdGhpcy5ncmlkU2VydmljZS5nZXRDb2xEZWYodGhpcy5ncmlkSWQpLnN1YnNjcmliZSgocmVzcG9uc2U6IGFueSkgPT4ge1xuICAgICAgICBpZihyZXNwb25zZS5zdGF0dXM9PTEpe1xuICAgICAgICBsZXQgY29sZGVmOiBDb2xEZWZbXSA9IHJlc3BvbnNlLmxpc3QubWFwKChyZXM6IGFueSkgPT4ge1xuICAgICAgICAgIGlmIChyZXMuaXNCdXR0b24gPT09IGZhbHNlKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICBmaWVsZDogcmVzLmZpZWxkLFxuICAgICAgICAgICAgICBoZWFkZXJOYW1lOiByZXMudGl0bGUsXG4gICAgICAgICAgICAgIHJlc2l6YWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgaGlkZTogIXJlcy52aXNpYmxlLFxuICAgICAgICAgICAgICBzb3J0YWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgdG9vbHRpcEZpZWxkOiByZXMuZmllbGQsXG4gICAgICAgICAgICAgIHZhbHVlRm9ybWF0dGVyOiB0aGlzLmNvbFZhbHVlRm9ybWF0dGVyLmJpbmQodGhpcyksXG4gICAgICAgICAgICAgIGZpbHRlcmFibGU6IHJlcy5maWx0ZXJhYmxlLFxuICAgICAgICAgICAgICBmaWx0ZXI6XG4gICAgICAgICAgICAgICAgcmVzLmNvbHVtblR5cGUgPT0gJ3N0cmluZydcbiAgICAgICAgICAgICAgICAgID8gJ2FnVGV4dENvbHVtbkZpbHRlcidcbiAgICAgICAgICAgICAgICAgIDogcmVzLmNvbHVtblR5cGUgPT0gJ251bWJlcidcbiAgICAgICAgICAgICAgICAgID8gJ2FnTnVtYmVyQ29sdW1uRmlsdGVyJ1xuICAgICAgICAgICAgICAgICAgOiAnYWdEYXRlQ29sdW1uRmlsdGVyJyxcbiAgICAgICAgICAgICAgZmlsdGVyUGFyYW1zOiB7XG4gICAgICAgICAgICAgICAgY29tcGFyYXRvcjogKFxuICAgICAgICAgICAgICAgICAgZmlsdGVyTG9jYWxEYXRlQXRNaWRuaWdodDogYW55LFxuICAgICAgICAgICAgICAgICAgY2VsbFZhbHVlOiBhbnlcbiAgICAgICAgICAgICAgICApID0+IHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGRhdGVBc1N0cmluZyA9IGNlbGxWYWx1ZTtcblxuICAgICAgICAgICAgICAgICAgaWYgKGRhdGVBc1N0cmluZyA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgaWYgKHJlcy5jb2x1bW5UeXBlID09ICdkYXRlJykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjZWxsRGF0ZSA9IG5ldyBEYXRlKGRhdGVBc1N0cmluZyk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChjZWxsRGF0ZSA8IGZpbHRlckxvY2FsRGF0ZUF0TWlkbmlnaHQpIHtcbiAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoY2VsbERhdGUgPiBmaWx0ZXJMb2NhbERhdGVBdE1pZG5pZ2h0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDE7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICBmaWVsZDogcmVzLmZpZWxkLFxuICAgICAgICAgICAgICBoZWFkZXJOYW1lOiByZXMudGl0bGUsXG4gICAgICAgICAgICAgIHJlc2l6YWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgc29ydGFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICBoaWRlOiAhcmVzLnZpc2libGUsXG4gICAgICAgICAgICAgIHN1cHByZXNzRmlsdGVyOiB0cnVlLFxuICAgICAgICAgICAgICBzdXBwcmVzc1NvcnRpbmc6IHRydWUsXG4gICAgICAgICAgICAgIHN1cHByZXNzTWVudTogdHJ1ZSxcbiAgICAgICAgICAgICAgdG9vbHRpcEZpZWxkOiByZXMuZmllbGQsXG4gICAgICAgICAgICAgIGNlbGxSZW5kZXJlcjogQnV0dG9uUmVuZGVyZXJDb21wb25lbnQsXG4gICAgICAgICAgICAgIGNlbGxSZW5kZXJlclBhcmFtczoge1xuICAgICAgICAgICAgICAgIG9uQ2xpY2s6IHRoaXMub25CdG5DbGljay5iaW5kKHRoaXMpLFxuICAgICAgICAgICAgICAgIGxhYmVsOiByZXMubGFiZWwsXG4gICAgICAgICAgICAgICAgaWNvbjogcmVzLmljb24sXG4gICAgICAgICAgICAgICAgYnV0dG9uTmFtZTogcmVzLmJ1dHRvbk5hbWUsXG4gICAgICAgICAgICAgICAgdG9vbHRpcDogcmVzLnRvb2x0aXAsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHZhbHVlR2V0dGVyOiAocGFyYW1zOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzLnRvb2x0aXAgfHwgcmVzLnRpdGxlO1xuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBtaW5XaWR0aDogNDAsXG4gICAgICAgICAgICAgIGNlbGxDbGFzczogJ2FjdGlvbi1idXR0b24nLFxuICAgICAgICAgICAgICBwaW5uZWQ6ICdsZWZ0JyxcbiAgICAgICAgICAgICAgbG9ja1Bpbm5lZDogdHJ1ZSAgICAgICAgICAgICBcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfSAgICAgICAgICBcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuY29sdW1uRGVmcz1jb2xkZWY7XG4gICAgICAgIHRoaXMuYWdHcmlkLmdyaWRPcHRpb25zPy5hcGk/LnNldENvbHVtbkRlZnMoY29sZGVmKTtcbiAgICAgICAgdGhpcy5nZXRHcmlkU3RhdGUoKTtcbiAgICB9ZWxzZXtcbiAgICAgICAgY29uc29sZS5sb2coXCJDb2xEZWYgUmVhZCBFcnJvcj0+XCIscmVzcG9uc2UubWVzc2FnZSlcbiAgICB9fSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUubG9nKCdQbGVhc2UgcGFzcyB2YWxpZCBHcmlkSWQgYW5kIGxvZ2dlZEluIHVzZXIgSWQnKTtcbiAgICB9XG4gIH1cblxuICBvbkdyaWRSZWFkeShwYXJhbXM6IEdyaWRSZWFkeUV2ZW50KSB7ICAgIFxuICAgIHRoaXMuZ3JpZFBhZ2VTaXplID0gdGhpcy5wYWdlU2l6ZTtcbiAgICBpZiAodGhpcy5lbmFibGVTZXJ2ZXJTaWRlUGFnaW5nID09IHRydWUpIHtcbiAgICAgIHBhcmFtcy5hcGkuc2V0U2VydmVyU2lkZURhdGFzb3VyY2UoXG4gICAgICAgIG5ldyBPZGF0YVNlcnZlclNpZGVQcm92aWRlcih7XG4gICAgICAgICAgaXNDYXNlU2Vuc2l0aXZlU3RyaW5nRmlsdGVyOiBmYWxzZSxcbiAgICAgICAgICBjYWxsQXBpOiAob3B0aW9ucykgPT5cbiAgICAgICAgICAgIGZldGNoKGAke3RoaXMuc2VydmVyRGF0YVVybH0ke3RoaXMuc2VydmVyRGF0YVVybC5pbmRleE9mKCc/Jyk+PTA/KG9wdGlvbnMuaW5kZXhPZignPycpPj0wP29wdGlvbnMucmVwbGFjZSgnPycsJyYnKTpvcHRpb25zKTpvcHRpb25zfWAsIHtcbiAgICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgICdDb250ZW50LXR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgICAgICAgICAgQWNjZXB0OiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gcmVzcG9uc2UuanNvbigpKSxcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgc2V0R3JpZFN0YXRlKCkge1xuICAgIGlmICh0aGlzLmdyaWRDb2x1bW5TdGF0ZSkgeyAgICAgIFxuICAgICAgdGhpcy5hZ0dyaWQuY29sdW1uQXBpLmFwcGx5Q29sdW1uU3RhdGUoe1xuICAgICAgICBzdGF0ZTogdGhpcy5ncmlkQ29sdW1uU3RhdGUsXG4gICAgICAgIGFwcGx5T3JkZXI6IHRydWUsXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIGNvbHVtbnMgPSB0aGlzLmFnR3JpZC5jb2x1bW5BcGkuZ2V0Q29sdW1ucygpO1xuICAgICAgaWYgKGNvbHVtbnMgJiYgY29sdW1ucy5sZW5ndGggPiAxMCkge1xuICAgICAgICB0aGlzLmFnR3JpZC5jb2x1bW5BcGkuYXV0b1NpemVBbGxDb2x1bW5zKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmFnR3JpZC5hcGkuc2l6ZUNvbHVtbnNUb0ZpdCgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGdldEdyaWRTdGF0ZSgpIHtcbiAgICBpZiAodGhpcy5ncmlkSWQgJiYgdGhpcy5sb2dnZWRJblVzZXIpIHtcbiAgICAgIHRoaXMuZ3JpZFNlcnZpY2VcbiAgICAgICAgLmdldEdyaWRTdGF0ZSh0aGlzLmdyaWRJZCwgdGhpcy5sb2dnZWRJblVzZXIpXG4gICAgICAgIC5zdWJzY3JpYmUoKHJlc3BvbnNlOiBhbnkpID0+IHtcbiAgICAgICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzPT0xKSB7XG4gICAgICAgICAgICB0aGlzLmdyaWRDb2x1bW5TdGF0ZSA9IEpTT04ucGFyc2UocmVzcG9uc2Uub2JqZWN0LmdyaWRDb25maWcpO1xuICAgICAgICAgICAgdGhpcy5zZXRHcmlkU3RhdGUoKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc29sZS5sb2coJ0Vycm9yIHdoaWxlIGxvYWRpbmcgZ3JpZCBzdGF0ZScpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG4gXG5cbiAgb25CdG5DbGljayhlOiBhbnkpIHtcbiAgICB0aGlzLmJ0bkNsaWNrSGFuZGxlci5lbWl0KGUucm93RGF0YSk7XG4gIH1cblxuICBvblNhdmVHcmlkQ29sdW1uU3RhdGUoZXZlbnQ6IGFueSkge1xuICAgIGxldCBjb2x1bW5TdGF0ZSA9IHRoaXMuYWdHcmlkLmNvbHVtbkFwaT8uZ2V0Q29sdW1uU3RhdGUoKTtcbiAgICBsZXQgY29sdW1uRGF0YSA9IHtcbiAgICAgIGdyaWRDb25maWc6IEpTT04uc3RyaW5naWZ5KGNvbHVtblN0YXRlKSxcbiAgICAgIHVpR3JpZElkOiB0aGlzLmdyaWRJZCxcbiAgICAgIHVzZXJJZDogdGhpcy5sb2dnZWRJblVzZXIsXG4gICAgfTtcbiAgICBpZiAoZXZlbnQuZmluaXNoZWQgPT0gdHJ1ZSB8fCBldmVudC50eXBlID09PSAnY29sdW1uUGlubmVkJykge1xuICAgICAgdGhpcy5ncmlkQ29sdW1uU3RhdGUgPSBjb2x1bW5TdGF0ZTtcbiAgICAgIHRoaXMuZ3JpZFNlcnZpY2Uuc2F2ZUNvbHVtbkNvbmZpZyhjb2x1bW5EYXRhKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7ICAgICAgICBcbiAgICAgICAgdGhpcy5zZXRHcmlkU3RhdGUoKTtcbiAgICAgICAgaWYgKHJlcy5zdGF0dXM9PTApIHtcbiAgICAgICAgICBjb25zb2xlLmxvZygnRXJyb3Igd2hpbGUgc2F2aW5nIGNvbHVtbiBjb25maWd1cmF0aW9uOicsIHJlcy5tZXNzYWdlKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgZ2V0Um93QnlJZDogR2V0Um93SWRGdW5jID0gKHBhcmFtczogR2V0Um93SWRQYXJhbXMpID0+IHtcbiAgICB2YXIgZGF0YSA9IHBhcmFtcy5kYXRhO1xuICAgIHJldHVybiBkYXRhLmlkID8/IDA7XG4gIH07XG5cbiAgY29sVmFsdWVGb3JtYXR0ZXIocGFyYW1zOiBWYWx1ZUZvcm1hdHRlclBhcmFtcykge1xuICAgIGlmIChpc05hTigrcGFyYW1zLnZhbHVlKSkge1xuICAgICAgdmFyIGRhdGVXcmFwcGVyID0gbmV3IERhdGUocGFyYW1zLnZhbHVlKTtcbiAgICAgIGxldCBpc1ZhbGlkRGF0ZSA9ICFpc05hTihkYXRlV3JhcHBlci5nZXREYXRlKCkpO1xuICAgICAgaWYgKGlzVmFsaWREYXRlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmRhdGVQaXBlLnRyYW5zZm9ybShwYXJhbXMudmFsdWUsICdNTS1kZC15eXl5Jyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gcGFyYW1zLnZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcGFyYW1zLnZhbHVlO1xuICB9XG59XG4iXX0=
@@ -924,16 +924,6 @@ class GridLibraryComponent {
924
924
  filter: true,
925
925
  tooltipComponent: CustomTooltip,
926
926
  };
927
- // ngAfterViewInit() {
928
- // const gridOptions :any= this.agGrid?.gridOptions;
929
- // gridOptions.api.setColumnDefs(this.columnDefs);
930
- // // Method setServerSideDatasource() resets any filter or sort models so it has to be
931
- // // called first.
932
- // gridOptions.api.setServerSideDatasource(this);
933
- // gridOptions.columnApi.setColumnState(this.gridColumnState);
934
- // gridOptions.api.setFilterModel(gridConfig.defaultGridLayout.filterModel);
935
- // gridOptions.api.setSortModel(gridConfig.defaultGridLayout.sortModel);
936
- // }
937
927
  this.paginationNumberFormatter = (params) => {
938
928
  return '[' + params.value.toLocaleString() + ']';
939
929
  };
@@ -1036,7 +1026,6 @@ class GridLibraryComponent {
1036
1026
  this.columnDefs = coldef;
1037
1027
  (_b = (_a = this.agGrid.gridOptions) === null || _a === void 0 ? void 0 : _a.api) === null || _b === void 0 ? void 0 : _b.setColumnDefs(coldef);
1038
1028
  this.getGridState();
1039
- this.setDataSource(this.agGrid.gridOptions);
1040
1029
  }
1041
1030
  else {
1042
1031
  console.log("ColDef Read Error=>", response.message);
@@ -1047,12 +1036,12 @@ class GridLibraryComponent {
1047
1036
  console.log('Please pass valid GridId and loggedIn user Id');
1048
1037
  }
1049
1038
  }
1050
- setDataSource(params) {
1039
+ onGridReady(params) {
1040
+ this.gridPageSize = this.pageSize;
1051
1041
  if (this.enableServerSidePaging == true) {
1052
1042
  params.api.setServerSideDatasource(new OdataServerSideProvider({
1053
1043
  isCaseSensitiveStringFilter: false,
1054
- caseSensitiveColumns: ['Customer.Name'],
1055
- callApi: (options) => fetch(`${this.serverDataUrl}${options}`, {
1044
+ callApi: (options) => fetch(`${this.serverDataUrl}${this.serverDataUrl.indexOf('?') >= 0 ? (options.indexOf('?') >= 0 ? options.replace('?', '&') : options) : options}`, {
1056
1045
  headers: {
1057
1046
  'Content-type': 'application/json',
1058
1047
  Accept: 'application/json',
@@ -1061,10 +1050,6 @@ class GridLibraryComponent {
1061
1050
  }));
1062
1051
  }
1063
1052
  }
1064
- onGridReady(params) {
1065
- this.gridPageSize = this.pageSize;
1066
- this.setDataSource(params);
1067
- }
1068
1053
  setGridState() {
1069
1054
  if (this.gridColumnState) {
1070
1055
  this.agGrid.columnApi.applyColumnState({
@@ -1152,7 +1137,7 @@ GridLibraryComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", v
1152
1137
  [rowModelType]="rowModelType"
1153
1138
  [cacheBlockSize]="cacheBlockSize"
1154
1139
  [maxConcurrentDatasourceRequests]="1"
1155
- [blockLoadDebounceMillis]="500"
1140
+ [blockLoadDebounceMillis]="100"
1156
1141
  (columnVisible)="onSaveGridColumnState($event)"
1157
1142
  (columnPinned)="onSaveGridColumnState($event)"
1158
1143
  (columnResized)="onSaveGridColumnState($event)"
@@ -1182,7 +1167,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
1182
1167
  [rowModelType]="rowModelType"
1183
1168
  [cacheBlockSize]="cacheBlockSize"
1184
1169
  [maxConcurrentDatasourceRequests]="1"
1185
- [blockLoadDebounceMillis]="500"
1170
+ [blockLoadDebounceMillis]="100"
1186
1171
  (columnVisible)="onSaveGridColumnState($event)"
1187
1172
  (columnPinned)="onSaveGridColumnState($event)"
1188
1173
  (columnResized)="onSaveGridColumnState($event)"