basesite-shared-grid-lib 1.3.0 → 1.3.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.
@@ -120,7 +120,7 @@ export class GridLibraryComponent {
120
120
  },
121
121
  minWidth: 40,
122
122
  cellClass: 'action-button',
123
- pinned: 'left',
123
+ pinned: res.pinPosition,
124
124
  lockPinned: true,
125
125
  };
126
126
  }
@@ -143,7 +143,7 @@ export class GridLibraryComponent {
143
143
  options.indexOf('filter') >= 0) {
144
144
  let slug = this.serverDataUrl.split('?$filter=');
145
145
  if (slug && slug.length > 0) {
146
- options += options + ' & ' + slug[1];
146
+ options = options + ' & ' + slug[1];
147
147
  this.serverDataUrl = slug[0];
148
148
  }
149
149
  }
@@ -319,4 +319,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
319
319
  type: ViewChild,
320
320
  args: [AgGridAngular]
321
321
  }] } });
322
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1saWJyYXJ5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Jhc2VzaXRlLXNoYXJlZC1ncmlkLWxpYi9zcmMvbGliL2dyaWQtbGlicmFyeS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBV2hELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNwRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUMvRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scURBQXFELENBQUM7Ozs7O0FBa0NwRixNQUFNLE9BQU8sb0JBQW9CO0lBeUIvQixZQUNVLFdBQStCLEVBQy9CLFFBQWtCO1FBRGxCLGdCQUFXLEdBQVgsV0FBVyxDQUFvQjtRQUMvQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBdkJuQixhQUFRLEdBQVcsRUFBRSxDQUFDO1FBQ3RCLGlCQUFZLEdBQVEsVUFBVSxDQUFDO1FBRy9CLDJCQUFzQixHQUFZLEtBQUssQ0FBQztRQUd4QyxtQkFBYyxHQUFXLENBQUMsQ0FBQztRQUNwQyxnQkFBZ0I7UUFDTixvQkFBZSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFPN0MscUJBQWdCLEdBQUcsQ0FBQyxDQUFDO1FBQ3JCLHFCQUFnQixHQUFHLElBQUksQ0FBQztRQUN4QixpQkFBWSxHQUFpQixZQUFZLENBQUM7UUFDMUMsaUJBQVksR0FBVyxDQUFDLENBQUM7UUFXekIsa0JBQWEsR0FBVztZQUM3QixRQUFRLEVBQUUsSUFBSTtZQUNkLE1BQU0sRUFBRSxJQUFJO1lBQ1osZ0JBQWdCLEVBQUUsYUFBYTtTQUNo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LEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxzQkFBc0I7c0JBQTlCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBRUksZUFBZTtzQkFBeEIsTUFBTTtnQkFHbUIsTUFBTTtzQkFBL0IsU0FBUzt1QkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0ZVBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFnR3JpZEFuZ3VsYXIgfSBmcm9tICdhZy1ncmlkLWFuZ3VsYXInO1xuaW1wb3J0IHtcbiAgQ29sRGVmLFxuICBHZXRSb3dJZEZ1bmMsXG4gIEdldFJvd0lkUGFyYW1zLFxuICBHcmlkUmVhZHlFdmVudCxcbiAgUGFnaW5hdGlvbk51bWJlckZvcm1hdHRlclBhcmFtcyxcbiAgUm93TW9kZWxUeXBlLFxuICBWYWx1ZUZvcm1hdHRlclBhcmFtcyxcbn0gZnJvbSAnYWctZ3JpZC1jb21tdW5pdHknO1xuaW1wb3J0IHsgR3JpZExpYnJhcnlTZXJ2aWNlIH0gZnJvbSAnLi9ncmlkLWxpYnJhcnkuc2VydmljZSc7XG5pbXBvcnQgeyBPZGF0YVNlcnZlclNpZGVQcm92aWRlciB9IGZyb20gJy4vaGVscGVycyc7XG5pbXBvcnQgeyBCdXR0b25SZW5kZXJlckNvbXBvbmVudCB9IGZyb20gJy4vcmVuZGVyZXIvYnV0dG9uLXJlbmRlcmVyL2J1dHRvbi1yZW5kZXJlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ3VzdG9tVG9vbHRpcCB9IGZyb20gJy4vcmVuZGVyZXIvdG9vbHRpcC1yZW5kZXJlci9jdXN0b20tdG9vbHRpcC1yZW5kZXJlcic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1iYXNlc2l0ZS1zaGFyZWQtZ3JpZC1saWInLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxhZy1ncmlkLWFuZ3VsYXJcbiAgICAgIHN0eWxlPVwid2lkdGg6IDEwMCU7aGVpZ2h0Ojk4LjJ2aFwiXG4gICAgICBjbGFzcz1cImFnLXRoZW1lLWJhbGhhbVwiXG4gICAgICBbY29sdW1uRGVmc109XCJjb2x1bW5EZWZzXCJcbiAgICAgIFtkZWZhdWx0Q29sRGVmXT1cImRlZmF1bHRDb2xEZWZcIlxuICAgICAgW3Jvd0RhdGFdPVwicm93RGF0YVwiXG4gICAgICBbcm93U2VsZWN0aW9uXT1cInJvd1NlbGVjdGlvblwiXG4gICAgICBbYW5pbWF0ZVJvd3NdPVwidHJ1ZVwiXG4gICAgICAoZ3JpZFJlYWR5KT1cIm9uR3JpZFJlYWR5KCRldmVudClcIlxuICAgICAgW3BhZ2luYXRpb25dPVwidHJ1ZVwiXG4gICAgICBbcGFnaW5hdGlvblBhZ2VTaXplXT1cImdyaWRQYWdlU2l6ZVwiXG4gICAgICBbcGFnaW5hdGlvbk51bWJlckZvcm1hdHRlcl09XCJwYWdpbmF0aW9uTnVtYmVyRm9ybWF0dGVyXCJcbiAgICAgIChtb2RlbFVwZGF0ZWQpPVwib25Nb2RlbFVwZGF0ZWQoKVwiXG4gICAgICBbdG9vbHRpcFNob3dEZWxheV09XCJ0b29sdGlwU2hvd0RlbGF5XCJcbiAgICAgIFt0b29sdGlwSGlkZURlbGF5XT1cInRvb2x0aXBIaWRlRGVsYXlcIlxuICAgICAgW3Jvd01vZGVsVHlwZV09XCJyb3dNb2RlbFR5cGVcIlxuICAgICAgW2NhY2hlQmxvY2tTaXplXT1cImNhY2hlQmxvY2tTaXplXCJcbiAgICAgIFttYXhDb25jdXJyZW50RGF0YXNvdXJjZVJlcXVlc3RzXT1cIjFcIlxuICAgICAgW2Jsb2NrTG9hZERlYm91bmNlTWlsbGlzXT1cIjEwMFwiXG4gICAgICAoY29sdW1uVmlzaWJsZSk9XCJvblNhdmVHcmlkQ29sdW1uU3RhdGUoJGV2ZW50KVwiXG4gICAgICAoY29sdW1uUGlubmVkKT1cIm9uU2F2ZUdyaWRDb2x1bW5TdGF0ZSgkZXZlbnQpXCJcbiAgICAgIChjb2x1bW5SZXNpemVkKT1cIm9uU2F2ZUdyaWRDb2x1bW5TdGF0ZSgkZXZlbnQpXCJcbiAgICAgIChjb2x1bW5Nb3ZlZCk9XCJvblNhdmVHcmlkQ29sdW1uU3RhdGUoJGV2ZW50KVwiXG4gICAgICAoc29ydENoYW5nZWQpPVwib25Tb3J0Q2hhbmdlZEV2ZW50KClcIlxuICAgID5cbiAgICA8L2FnLWdyaWQtYW5ndWxhcj5cbiAgYCxcbiAgc3R5bGVzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgR3JpZExpYnJhcnlDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAvL2lucHV0IHBhcmFtc1xuICBASW5wdXQoKSBjb2x1bW5EZWZzOiBhbnk7XG4gIEBJbnB1dCgpIHJvd0RhdGE6IGFueTtcbiAgQElucHV0KCkgcGFnZVNpemU6IG51bWJlciA9IDIwO1xuICBASW5wdXQoKSByb3dTZWxlY3Rpb246IGFueSA9ICdtdWx0aXBsZSc7XG4gIEBJbnB1dCgpIGdyaWRJZDogYW55O1xuICBASW5wdXQoKSBsb2dnZWRJblVzZXI6IGFueTtcbiAgQElucHV0KCkgZW5hYmxlU2VydmVyU2lkZVBhZ2luZzogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBzZXJ2ZXJEYXRhVXJsITogc3RyaW5nO1xuICBASW5wdXQoKSBlbnZpcm9ubWVudCE6IHN0cmluZztcbiAgQElucHV0KCkgY2FjaGVCbG9ja1NpemU6IG51bWJlciA9IDA7XG4gIC8vZXZlbnQgZW1pdHRlcnNcbiAgQE91dHB1dCgpIGJ0bkNsaWNrSGFuZGxlciA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIC8vdmlld0NoaWxkc1xuICBAVmlld0NoaWxkKEFnR3JpZEFuZ3VsYXIpIGFnR3JpZCE6IEFnR3JpZEFuZ3VsYXI7XG5cbiAgLy9wYXJhbXRlcnNcbiAgZ3JpZENvbHVtblN0YXRlOiBhbnk7XG4gIHB1YmxpYyB0b29sdGlwU2hvd0RlbGF5ID0gMDtcbiAgcHVibGljIHRvb2x0aXBIaWRlRGVsYXkgPSAyMDAwO1xuICBwdWJsaWMgcm93TW9kZWxUeXBlOiBSb3dNb2RlbFR5cGUgPSAnY2xpZW50U2lkZSc7XG4gIHB1YmxpYyBncmlkUGFnZVNpemU6IG51bWJlciA9IDA7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBncmlkU2VydmljZTogR3JpZExpYnJhcnlTZXJ2aWNlLFxuICAgIHByaXZhdGUgZGF0ZVBpcGU6IERhdGVQaXBlXG4gICkge31cblxuICBvblNvcnRDaGFuZ2VkRXZlbnQoKSB7XG4gICAgdGhpcy5ncmlkQ29sdW1uU3RhdGUgPSB0aGlzLmFnR3JpZC5jb2x1bW5BcGkuZ2V0Q29sdW1uU3RhdGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBkZWZhdWx0Q29sRGVmOiBDb2xEZWYgPSB7XG4gICAgc29ydGFibGU6IHRydWUsXG4gICAgZmlsdGVyOiB0cnVlLFxuICAgIHRvb2x0aXBDb21wb25lbnQ6IEN1c3RvbVRvb2x0aXAsXG4gIH07XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5ncmlkUGFnZVNpemUgPSB0aGlzLnBhZ2VTaXplO1xuICAgIHRoaXMuY2FjaGVCbG9ja1NpemUgPSB0aGlzLmNhY2hlQmxvY2tTaXplID0gMFxuICAgICAgPyB0aGlzLnBhZ2VTaXplXG4gICAgICA6IHRoaXMuY2FjaGVCbG9ja1NpemU7XG4gICAgdGhpcy5ncmlkU2VydmljZS5zZXRCYXNlVXJsKHRoaXMuZW52aXJvbm1lbnQpO1xuICAgIHRoaXMuZ2V0R3JpZFN0YXRlKCk7XG4gICAgdGhpcy5nZXRDb2xEZWYoKTtcbiAgICBpZiAodGhpcy5lbmFibGVTZXJ2ZXJTaWRlUGFnaW5nID09IHRydWUpIHtcbiAgICAgIHRoaXMucm93TW9kZWxUeXBlID0gJ3NlcnZlclNpZGUnO1xuICAgICAgdGhpcy5yb3dEYXRhID0gJyc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucm93TW9kZWxUeXBlID0gJ2NsaWVudFNpZGUnO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBwYWdpbmF0aW9uTnVtYmVyRm9ybWF0dGVyOiAoXG4gICAgcGFyYW1zOiBQYWdpbmF0aW9uTnVtYmVyRm9ybWF0dGVyUGFyYW1zXG4gICkgPT4gc3RyaW5nID0gKHBhcmFtczogUGFnaW5hdGlvbk51bWJlckZvcm1hdHRlclBhcmFtcykgPT4ge1xuICAgIHJldHVybiAnWycgKyBwYXJhbXMudmFsdWUudG9Mb2NhbGVTdHJpbmcoKSArICddJztcbiAgfTtcblxuICBvbk1vZGVsVXBkYXRlZCgpIHtcbiAgICB0aGlzLnNldEdyaWRTdGF0ZSgpO1xuICB9XG5cbiAgZ2V0Q29sRGVmKCkge1xuICAgIGlmICh0aGlzLmdyaWRJZCAmJiB0aGlzLmxvZ2dlZEluVXNlcikge1xuICAgICAgdGhpcy5ncmlkU2VydmljZS5nZXRDb2xEZWYodGhpcy5ncmlkSWQpLnN1YnNjcmliZSgocmVzcG9uc2U6IGFueSkgPT4ge1xuICAgICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzID09IDEpIHtcbiAgICAgICAgICBsZXQgY29sZGVmOiBDb2xEZWZbXSA9IHJlc3BvbnNlLmxpc3QubWFwKChyZXM6IGFueSkgPT4ge1xuICAgICAgICAgICAgaWYgKHJlcy5pc0J1dHRvbiA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBmaWVsZDogcmVzLmZpZWxkLFxuICAgICAgICAgICAgICAgIGhlYWRlck5hbWU6IHJlcy50aXRsZSxcbiAgICAgICAgICAgICAgICByZXNpemFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgaGlkZTogIXJlcy52aXNpYmxlLFxuICAgICAgICAgICAgICAgIHNvcnRhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgIHRvb2x0aXBGaWVsZDogcmVzLmZpZWxkLFxuICAgICAgICAgICAgICAgIHZhbHVlRm9ybWF0dGVyOiB0aGlzLmNvbFZhbHVlRm9ybWF0dGVyLmJpbmQodGhpcyksXG4gICAgICAgICAgICAgICAgZmlsdGVyYWJsZTogcmVzLmZpbHRlcmFibGUsXG4gICAgICAgICAgICAgICAgZmlsdGVyOlxuICAgICAgICAgICAgICAgICAgcmVzLmNvbHVtblR5cGUgPT0gJ3N0cmluZydcbiAgICAgICAgICAgICAgICAgICAgPyAnYWdUZXh0Q29sdW1uRmlsdGVyJ1xuICAgICAgICAgICAgICAgICAgICA6IHJlcy5jb2x1bW5UeXBlID09ICdudW1iZXInXG4gICAgICAgICAgICAgICAgICAgID8gJ2FnTnVtYmVyQ29sdW1uRmlsdGVyJ1xuICAgICAgICAgICAgICAgICAgICA6ICdhZ0RhdGVDb2x1bW5GaWx0ZXInLFxuICAgICAgICAgICAgICAgIGZpbHRlclBhcmFtczoge1xuICAgICAgICAgICAgICAgICAgY29tcGFyYXRvcjogKFxuICAgICAgICAgICAgICAgICAgICBmaWx0ZXJMb2NhbERhdGVBdE1pZG5pZ2h0OiBhbnksXG4gICAgICAgICAgICAgICAgICAgIGNlbGxWYWx1ZTogYW55XG4gICAgICAgICAgICAgICAgICApID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGF0ZUFzU3RyaW5nID0gY2VsbFZhbHVlO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChkYXRlQXNTdHJpbmcgPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXMuY29sdW1uVHlwZSA9PSAnZGF0ZScpIHtcbiAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjZWxsRGF0ZSA9IG5ldyBEYXRlKGRhdGVBc1N0cmluZyk7XG4gICAgICAgICAgICAgICAgICAgICAgaWYgKGNlbGxEYXRlIDwgZmlsdGVyTG9jYWxEYXRlQXRNaWRuaWdodCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoY2VsbERhdGUgPiBmaWx0ZXJMb2NhbERhdGVBdE1pZG5pZ2h0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTtcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGZpZWxkOiByZXMuZmllbGQsXG4gICAgICAgICAgICAgICAgaGVhZGVyTmFtZTogcmVzLnRpdGxlLFxuICAgICAgICAgICAgICAgIHJlc2l6YWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBzb3J0YWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgaGlkZTogIXJlcy52aXNpYmxlLFxuICAgICAgICAgICAgICAgIHN1cHByZXNzRmlsdGVyOiB0cnVlLFxuICAgICAgICAgICAgICAgIHN1cHByZXNzU29ydGluZzogdHJ1ZSxcbiAgICAgICAgICAgICAgICBzdXBwcmVzc01lbnU6IHRydWUsXG4gICAgICAgICAgICAgICAgdG9vbHRpcEZpZWxkOiByZXMuZmllbGQsXG4gICAgICAgICAgICAgICAgY2VsbFJlbmRlcmVyOiBCdXR0b25SZW5kZXJlckNvbXBvbmVudCxcbiAgICAgICAgICAgICAgICBjZWxsUmVuZGVyZXJQYXJhbXM6IHtcbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s6IHRoaXMub25CdG5DbGljay5iaW5kKHRoaXMpLFxuICAgICAgICAgICAgICAgICAgbGFiZWw6IHJlcy5sYWJlbCxcbiAgICAgICAgICAgICAgICAgIGljb246IHJlcy5pY29uLFxuICAgICAgICAgICAgICAgICAgYnV0dG9uTmFtZTogcmVzLmJ1dHRvbk5hbWUsXG4gICAgICAgICAgICAgICAgICB0b29sdGlwOiByZXMudG9vbHRpcCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHZhbHVlR2V0dGVyOiAocGFyYW1zOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgIHJldHVybiByZXMudG9vbHRpcCB8fCByZXMudGl0bGU7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBtaW5XaWR0aDogNDAsXG4gICAgICAgICAgICAgICAgY2VsbENsYXNzOiAnYWN0aW9uLWJ1dHRvbicsXG4gICAgICAgICAgICAgICAgcGlubmVkOiAnbGVmdCcsXG4gICAgICAgICAgICAgICAgbG9ja1Bpbm5lZDogdHJ1ZSxcbiAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgICB0aGlzLmNvbHVtbkRlZnMgPSBjb2xkZWY7XG4gICAgICAgICAgdGhpcy5hZ0dyaWQuZ3JpZE9wdGlvbnM/LmFwaT8uc2V0Q29sdW1uRGVmcyhjb2xkZWYpO1xuICAgICAgICAgIHRoaXMuZ2V0R3JpZFN0YXRlKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc29sZS5sb2coJ0NvbERlZiBSZWFkIEVycm9yPT4nLCByZXNwb25zZS5tZXNzYWdlKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUubG9nKCdQbGVhc2UgcGFzcyB2YWxpZCBHcmlkSWQgYW5kIGxvZ2dlZEluIHVzZXIgSWQnKTtcbiAgICB9XG4gIH1cblxuICBzZXRFeHRlcm5hbEZpbHRlcnMob3B0aW9uczogYW55KSB7XG4gICAgaWYgKFxuICAgICAgdGhpcy5zZXJ2ZXJEYXRhVXJsLmluZGV4T2YoJ2ZpbHRlcicpID49IDAgJiZcbiAgICAgIG9wdGlvbnMuaW5kZXhPZignZmlsdGVyJykgPj0gMFxuICAgICkge1xuICAgICAgbGV0IHNsdWcgPSB0aGlzLnNlcnZlckRhdGFVcmwuc3BsaXQoJz8kZmlsdGVyPScpO1xuICAgICAgaWYgKHNsdWcgJiYgc2x1Zy5sZW5ndGg+MCkge1xuICAgICAgICBvcHRpb25zICs9IG9wdGlvbnMgKyAnICYgJyArIHNsdWdbMV07XG4gICAgICAgIHRoaXMuc2VydmVyRGF0YVVybD1zbHVnWzBdO1xuICAgICAgfVxuICAgIH1cbiAgICBlbHNlIGlmKHRoaXMuc2VydmVyRGF0YVVybC5pbmRleE9mKCc/Jyk+PTApe1xuICAgICAgb3B0aW9ucz1vcHRpb25zLnJlcGxhY2UoJz8nLCcmJyk7XG4gICAgfVxuICAgIHJldHVybiBgJHt0aGlzLnNlcnZlckRhdGFVcmx9JHtvcHRpb25zfWA7XG4gIH1cbiAgb25HcmlkUmVhZHkocGFyYW1zOiBHcmlkUmVhZHlFdmVudCkge1xuICAgIHRoaXMuZ3JpZFBhZ2VTaXplID0gdGhpcy5wYWdlU2l6ZTtcbiAgICBpZiAodGhpcy5lbmFibGVTZXJ2ZXJTaWRlUGFnaW5nID09IHRydWUpIHtcbiAgICAgIHBhcmFtcy5hcGkuc2V0U2VydmVyU2lkZURhdGFzb3VyY2UoXG4gICAgICAgIG5ldyBPZGF0YVNlcnZlclNpZGVQcm92aWRlcih7XG4gICAgICAgICAgaXNDYXNlU2Vuc2l0aXZlU3RyaW5nRmlsdGVyOiBmYWxzZSxcbiAgICAgICAgICBjYWxsQXBpOiAob3B0aW9ucykgPT5cbiAgICAgICAgICAgIGZldGNoKFxuICAgICAgICAgICAgICBgJHt0aGlzLnNldEV4dGVybmFsRmlsdGVycyhvcHRpb25zKX1gLFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgICAgJ0NvbnRlbnQtdHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgICAgICAgICAgIEFjY2VwdDogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICkudGhlbigocmVzcG9uc2UpID0+IHJlc3BvbnNlLmpzb24oKSksXG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHNldEdyaWRTdGF0ZSgpIHtcbiAgICBpZiAodGhpcy5ncmlkQ29sdW1uU3RhdGUpIHtcbiAgICAgIHRoaXMuYWdHcmlkLmNvbHVtbkFwaS5hcHBseUNvbHVtblN0YXRlKHtcbiAgICAgICAgc3RhdGU6IHRoaXMuZ3JpZENvbHVtblN0YXRlLFxuICAgICAgICBhcHBseU9yZGVyOiB0cnVlLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciBjb2x1bW5zID0gdGhpcy5hZ0dyaWQuY29sdW1uQXBpLmdldENvbHVtbnMoKTtcbiAgICAgIGlmIChjb2x1bW5zICYmIGNvbHVtbnMubGVuZ3RoID4gMTApIHtcbiAgICAgICAgdGhpcy5hZ0dyaWQuY29sdW1uQXBpLmF1dG9TaXplQWxsQ29sdW1ucygpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5hZ0dyaWQuYXBpLnNpemVDb2x1bW5zVG9GaXQoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBnZXRHcmlkU3RhdGUoKSB7XG4gICAgaWYgKHRoaXMuZ3JpZElkICYmIHRoaXMubG9nZ2VkSW5Vc2VyKSB7XG4gICAgICB0aGlzLmdyaWRTZXJ2aWNlXG4gICAgICAgIC5nZXRHcmlkU3RhdGUodGhpcy5ncmlkSWQsIHRoaXMubG9nZ2VkSW5Vc2VyKVxuICAgICAgICAuc3Vic2NyaWJlKChyZXNwb25zZTogYW55KSA9PiB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgcmVzcG9uc2Uuc3RhdHVzID09IDEgJiZcbiAgICAgICAgICAgIHJlc3BvbnNlLm9iamVjdCAmJlxuICAgICAgICAgICAgcmVzcG9uc2Uub2JqZWN0LmdyaWRDb25maWdcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMuZ3JpZENvbHVtblN0YXRlID0gSlNPTi5wYXJzZShyZXNwb25zZS5vYmplY3QuZ3JpZENvbmZpZyk7XG4gICAgICAgICAgICB0aGlzLnNldEdyaWRTdGF0ZSgpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZygnRXJyb3Igd2hpbGUgbG9hZGluZyBncmlkIHN0YXRlJyk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBvbkJ0bkNsaWNrKGU6IGFueSkge1xuICAgIHRoaXMuYnRuQ2xpY2tIYW5kbGVyLmVtaXQoZS5yb3dEYXRhKTtcbiAgfVxuXG4gIG9uU2F2ZUdyaWRDb2x1bW5TdGF0ZShldmVudDogYW55KSB7XG4gICAgbGV0IGNvbHVtblN0YXRlID0gdGhpcy5hZ0dyaWQuY29sdW1uQXBpPy5nZXRDb2x1bW5TdGF0ZSgpO1xuICAgIGxldCBjb2x1bW5EYXRhID0ge1xuICAgICAgZ3JpZENvbmZpZzogSlNPTi5zdHJpbmdpZnkoY29sdW1uU3RhdGUpLFxuICAgICAgdWlHcmlkSWQ6IHRoaXMuZ3JpZElkLFxuICAgICAgdXNlcklkOiB0aGlzLmxvZ2dlZEluVXNlcixcbiAgICB9O1xuICAgIGlmIChldmVudC5maW5pc2hlZCA9PSB0cnVlIHx8IGV2ZW50LnR5cGUgPT09ICdjb2x1bW5QaW5uZWQnKSB7XG4gICAgICB0aGlzLmdyaWRDb2x1bW5TdGF0ZSA9IGNvbHVtblN0YXRlO1xuICAgICAgdGhpcy5ncmlkU2VydmljZS5zYXZlQ29sdW1uQ29uZmlnKGNvbHVtbkRhdGEpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5zZXRHcmlkU3RhdGUoKTtcbiAgICAgICAgaWYgKHJlcy5zdGF0dXMgPT0gMCkge1xuICAgICAgICAgIGNvbnNvbGUubG9nKCdFcnJvciB3aGlsZSBzYXZpbmcgY29sdW1uIGNvbmZpZ3VyYXRpb246JywgcmVzLm1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBnZXRSb3dCeUlkOiBHZXRSb3dJZEZ1bmMgPSAocGFyYW1zOiBHZXRSb3dJZFBhcmFtcykgPT4ge1xuICAgIHZhciBkYXRhID0gcGFyYW1zLmRhdGE7XG4gICAgcmV0dXJuIGRhdGEuaWQgPz8gMDtcbiAgfTtcblxuICBjb2xWYWx1ZUZvcm1hdHRlcihwYXJhbXM6IFZhbHVlRm9ybWF0dGVyUGFyYW1zKSB7XG4gICAgaWYgKGlzTmFOKCtwYXJhbXMudmFsdWUpKSB7XG4gICAgICB2YXIgZGF0ZVdyYXBwZXIgPSBuZXcgRGF0ZShwYXJhbXMudmFsdWUpO1xuICAgICAgbGV0IGlzVmFsaWREYXRlID0gIWlzTmFOKGRhdGVXcmFwcGVyLmdldERhdGUoKSk7XG4gICAgICBpZiAoaXNWYWxpZERhdGUpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKHBhcmFtcy52YWx1ZSwgJ01NLWRkLXl5eXknKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBwYXJhbXMudmFsdWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBwYXJhbXMudmFsdWU7XG4gIH1cbn1cbiJdfQ==
322
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1saWJyYXJ5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Jhc2VzaXRlLXNoYXJlZC1ncmlkLWxpYi9zcmMvbGliL2dyaWQtbGlicmFyeS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBV2hELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNwRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUMvRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scURBQXFELENBQUM7Ozs7O0FBa0NwRixNQUFNLE9BQU8sb0JBQW9CO0lBeUIvQixZQUNVLFdBQStCLEVBQy9CLFFBQWtCO1FBRGxCLGdCQUFXLEdBQVgsV0FBVyxDQUFvQjtRQUMvQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBdkJuQixhQUFRLEdBQVcsRUFBRSxDQUFDO1FBQ3RCLGlCQUFZLEdBQVEsVUFBVSxDQUFDO1FBRy9CLDJCQUFzQixHQUFZLEtBQUssQ0FBQztRQUd4QyxtQkFBYyxHQUFXLENBQUMsQ0FBQztRQUNwQyxnQkFBZ0I7UUFDTixvQkFBZSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFPN0MscUJBQWdCLEdBQUcsQ0FBQyxDQUFDO1FBQ3JCLHFCQUFnQixHQUFHLElBQUksQ0FBQztRQUN4QixpQkFBWSxHQUFpQixZQUFZLENBQUM7UUFDMUMsaUJBQVksR0FBVyxDQUFDLENBQUM7UUFXekIsa0JBQWEsR0FBVztZQUM3QixRQUFRLEVBQUUsSUFBSTtZQUNkLE1BQU0sRUFBRSxJQUFJO1lBQ1osZ0JBQWdCLEVBQUUsYUFBYTtTQUNo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VUFBVTtzQkFBbEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLHNCQUFzQjtzQkFBOUIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFFSSxlQUFlO3NCQUF4QixNQUFNO2dCQUdtQixNQUFNO3NCQUEvQixTQUFTO3VCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXRlUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWdHcmlkQW5ndWxhciB9IGZyb20gJ2FnLWdyaWQtYW5ndWxhcic7XG5pbXBvcnQge1xuICBDb2xEZWYsXG4gIEdldFJvd0lkRnVuYyxcbiAgR2V0Um93SWRQYXJhbXMsXG4gIEdyaWRSZWFkeUV2ZW50LFxuICBQYWdpbmF0aW9uTnVtYmVyRm9ybWF0dGVyUGFyYW1zLFxuICBSb3dNb2RlbFR5cGUsXG4gIFZhbHVlRm9ybWF0dGVyUGFyYW1zLFxufSBmcm9tICdhZy1ncmlkLWNvbW11bml0eSc7XG5pbXBvcnQgeyBHcmlkTGlicmFyeVNlcnZpY2UgfSBmcm9tICcuL2dyaWQtbGlicmFyeS5zZXJ2aWNlJztcbmltcG9ydCB7IE9kYXRhU2VydmVyU2lkZVByb3ZpZGVyIH0gZnJvbSAnLi9oZWxwZXJzJztcbmltcG9ydCB7IEJ1dHRvblJlbmRlcmVyQ29tcG9uZW50IH0gZnJvbSAnLi9yZW5kZXJlci9idXR0b24tcmVuZGVyZXIvYnV0dG9uLXJlbmRlcmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDdXN0b21Ub29sdGlwIH0gZnJvbSAnLi9yZW5kZXJlci90b29sdGlwLXJlbmRlcmVyL2N1c3RvbS10b29sdGlwLXJlbmRlcmVyJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLWJhc2VzaXRlLXNoYXJlZC1ncmlkLWxpYicsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGFnLWdyaWQtYW5ndWxhclxuICAgICAgc3R5bGU9XCJ3aWR0aDogMTAwJTtoZWlnaHQ6OTguMnZoXCJcbiAgICAgIGNsYXNzPVwiYWctdGhlbWUtYmFsaGFtXCJcbiAgICAgIFtjb2x1bW5EZWZzXT1cImNvbHVtbkRlZnNcIlxuICAgICAgW2RlZmF1bHRDb2xEZWZdPVwiZGVmYXVsdENvbERlZlwiXG4gICAgICBbcm93RGF0YV09XCJyb3dEYXRhXCJcbiAgICAgIFtyb3dTZWxlY3Rpb25dPVwicm93U2VsZWN0aW9uXCJcbiAgICAgIFthbmltYXRlUm93c109XCJ0cnVlXCJcbiAgICAgIChncmlkUmVhZHkpPVwib25HcmlkUmVhZHkoJGV2ZW50KVwiXG4gICAgICBbcGFnaW5hdGlvbl09XCJ0cnVlXCJcbiAgICAgIFtwYWdpbmF0aW9uUGFnZVNpemVdPVwiZ3JpZFBhZ2VTaXplXCJcbiAgICAgIFtwYWdpbmF0aW9uTnVtYmVyRm9ybWF0dGVyXT1cInBhZ2luYXRpb25OdW1iZXJGb3JtYXR0ZXJcIlxuICAgICAgKG1vZGVsVXBkYXRlZCk9XCJvbk1vZGVsVXBkYXRlZCgpXCJcbiAgICAgIFt0b29sdGlwU2hvd0RlbGF5XT1cInRvb2x0aXBTaG93RGVsYXlcIlxuICAgICAgW3Rvb2x0aXBIaWRlRGVsYXldPVwidG9vbHRpcEhpZGVEZWxheVwiXG4gICAgICBbcm93TW9kZWxUeXBlXT1cInJvd01vZGVsVHlwZVwiXG4gICAgICBbY2FjaGVCbG9ja1NpemVdPVwiY2FjaGVCbG9ja1NpemVcIlxuICAgICAgW21heENvbmN1cnJlbnREYXRhc291cmNlUmVxdWVzdHNdPVwiMVwiXG4gICAgICBbYmxvY2tMb2FkRGVib3VuY2VNaWxsaXNdPVwiMTAwXCJcbiAgICAgIChjb2x1bW5WaXNpYmxlKT1cIm9uU2F2ZUdyaWRDb2x1bW5TdGF0ZSgkZXZlbnQpXCJcbiAgICAgIChjb2x1bW5QaW5uZWQpPVwib25TYXZlR3JpZENvbHVtblN0YXRlKCRldmVudClcIlxuICAgICAgKGNvbHVtblJlc2l6ZWQpPVwib25TYXZlR3JpZENvbHVtblN0YXRlKCRldmVudClcIlxuICAgICAgKGNvbHVtbk1vdmVkKT1cIm9uU2F2ZUdyaWRDb2x1bW5TdGF0ZSgkZXZlbnQpXCJcbiAgICAgIChzb3J0Q2hhbmdlZCk9XCJvblNvcnRDaGFuZ2VkRXZlbnQoKVwiXG4gICAgPlxuICAgIDwvYWctZ3JpZC1hbmd1bGFyPlxuICBgLFxuICBzdHlsZXM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBHcmlkTGlicmFyeUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIC8vaW5wdXQgcGFyYW1zXG4gIEBJbnB1dCgpIGNvbHVtbkRlZnM6IGFueTtcbiAgQElucHV0KCkgcm93RGF0YTogYW55O1xuICBASW5wdXQoKSBwYWdlU2l6ZTogbnVtYmVyID0gMjA7XG4gIEBJbnB1dCgpIHJvd1NlbGVjdGlvbjogYW55ID0gJ211bHRpcGxlJztcbiAgQElucHV0KCkgZ3JpZElkOiBhbnk7XG4gIEBJbnB1dCgpIGxvZ2dlZEluVXNlcjogYW55O1xuICBASW5wdXQoKSBlbmFibGVTZXJ2ZXJTaWRlUGFnaW5nOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNlcnZlckRhdGFVcmwhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGVudmlyb25tZW50ITogc3RyaW5nO1xuICBASW5wdXQoKSBjYWNoZUJsb2NrU2l6ZTogbnVtYmVyID0gMDtcbiAgLy9ldmVudCBlbWl0dGVyc1xuICBAT3V0cHV0KCkgYnRuQ2xpY2tIYW5kbGVyID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgLy92aWV3Q2hpbGRzXG4gIEBWaWV3Q2hpbGQoQWdHcmlkQW5ndWxhcikgYWdHcmlkITogQWdHcmlkQW5ndWxhcjtcblxuICAvL3BhcmFtdGVyc1xuICBncmlkQ29sdW1uU3RhdGU6IGFueTtcbiAgcHVibGljIHRvb2x0aXBTaG93RGVsYXkgPSAwO1xuICBwdWJsaWMgdG9vbHRpcEhpZGVEZWxheSA9IDIwMDA7XG4gIHB1YmxpYyByb3dNb2RlbFR5cGU6IFJvd01vZGVsVHlwZSA9ICdjbGllbnRTaWRlJztcbiAgcHVibGljIGdyaWRQYWdlU2l6ZTogbnVtYmVyID0gMDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGdyaWRTZXJ2aWNlOiBHcmlkTGlicmFyeVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBkYXRlUGlwZTogRGF0ZVBpcGVcbiAgKSB7fVxuXG4gIG9uU29ydENoYW5nZWRFdmVudCgpIHtcbiAgICB0aGlzLmdyaWRDb2x1bW5TdGF0ZSA9IHRoaXMuYWdHcmlkLmNvbHVtbkFwaS5nZXRDb2x1bW5TdGF0ZSgpO1xuICB9XG5cbiAgcHVibGljIGRlZmF1bHRDb2xEZWY6IENvbERlZiA9IHtcbiAgICBzb3J0YWJsZTogdHJ1ZSxcbiAgICBmaWx0ZXI6IHRydWUsXG4gICAgdG9vbHRpcENvbXBvbmVudDogQ3VzdG9tVG9vbHRpcCxcbiAgfTtcblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmdyaWRQYWdlU2l6ZSA9IHRoaXMucGFnZVNpemU7XG4gICAgdGhpcy5jYWNoZUJsb2NrU2l6ZSA9IHRoaXMuY2FjaGVCbG9ja1NpemUgPSAwXG4gICAgICA/IHRoaXMucGFnZVNpemVcbiAgICAgIDogdGhpcy5jYWNoZUJsb2NrU2l6ZTtcbiAgICB0aGlzLmdyaWRTZXJ2aWNlLnNldEJhc2VVcmwodGhpcy5lbnZpcm9ubWVudCk7XG4gICAgdGhpcy5nZXRHcmlkU3RhdGUoKTtcbiAgICB0aGlzLmdldENvbERlZigpO1xuICAgIGlmICh0aGlzLmVuYWJsZVNlcnZlclNpZGVQYWdpbmcgPT0gdHJ1ZSkge1xuICAgICAgdGhpcy5yb3dNb2RlbFR5cGUgPSAnc2VydmVyU2lkZSc7XG4gICAgICB0aGlzLnJvd0RhdGEgPSAnJztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5yb3dNb2RlbFR5cGUgPSAnY2xpZW50U2lkZSc7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHBhZ2luYXRpb25OdW1iZXJGb3JtYXR0ZXI6IChcbiAgICBwYXJhbXM6IFBhZ2luYXRpb25OdW1iZXJGb3JtYXR0ZXJQYXJhbXNcbiAgKSA9PiBzdHJpbmcgPSAocGFyYW1zOiBQYWdpbmF0aW9uTnVtYmVyRm9ybWF0dGVyUGFyYW1zKSA9PiB7XG4gICAgcmV0dXJuICdbJyArIHBhcmFtcy52YWx1ZS50b0xvY2FsZVN0cmluZygpICsgJ10nO1xuICB9O1xuXG4gIG9uTW9kZWxVcGRhdGVkKCkge1xuICAgIHRoaXMuc2V0R3JpZFN0YXRlKCk7XG4gIH1cblxuICBnZXRDb2xEZWYoKSB7XG4gICAgaWYgKHRoaXMuZ3JpZElkICYmIHRoaXMubG9nZ2VkSW5Vc2VyKSB7XG4gICAgICB0aGlzLmdyaWRTZXJ2aWNlLmdldENvbERlZih0aGlzLmdyaWRJZCkuc3Vic2NyaWJlKChyZXNwb25zZTogYW55KSA9PiB7XG4gICAgICAgIGlmIChyZXNwb25zZS5zdGF0dXMgPT0gMSkge1xuICAgICAgICAgIGxldCBjb2xkZWY6IENvbERlZltdID0gcmVzcG9uc2UubGlzdC5tYXAoKHJlczogYW55KSA9PiB7XG4gICAgICAgICAgICBpZiAocmVzLmlzQnV0dG9uID09PSBmYWxzZSkge1xuICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGZpZWxkOiByZXMuZmllbGQsXG4gICAgICAgICAgICAgICAgaGVhZGVyTmFtZTogcmVzLnRpdGxlLFxuICAgICAgICAgICAgICAgIHJlc2l6YWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBoaWRlOiAhcmVzLnZpc2libGUsXG4gICAgICAgICAgICAgICAgc29ydGFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgdG9vbHRpcEZpZWxkOiByZXMuZmllbGQsXG4gICAgICAgICAgICAgICAgdmFsdWVGb3JtYXR0ZXI6IHRoaXMuY29sVmFsdWVGb3JtYXR0ZXIuYmluZCh0aGlzKSxcbiAgICAgICAgICAgICAgICBmaWx0ZXJhYmxlOiByZXMuZmlsdGVyYWJsZSxcbiAgICAgICAgICAgICAgICBmaWx0ZXI6XG4gICAgICAgICAgICAgICAgICByZXMuY29sdW1uVHlwZSA9PSAnc3RyaW5nJ1xuICAgICAgICAgICAgICAgICAgICA/ICdhZ1RleHRDb2x1bW5GaWx0ZXInXG4gICAgICAgICAgICAgICAgICAgIDogcmVzLmNvbHVtblR5cGUgPT0gJ251bWJlcidcbiAgICAgICAgICAgICAgICAgICAgPyAnYWdOdW1iZXJDb2x1bW5GaWx0ZXInXG4gICAgICAgICAgICAgICAgICAgIDogJ2FnRGF0ZUNvbHVtbkZpbHRlcicsXG4gICAgICAgICAgICAgICAgZmlsdGVyUGFyYW1zOiB7XG4gICAgICAgICAgICAgICAgICBjb21wYXJhdG9yOiAoXG4gICAgICAgICAgICAgICAgICAgIGZpbHRlckxvY2FsRGF0ZUF0TWlkbmlnaHQ6IGFueSxcbiAgICAgICAgICAgICAgICAgICAgY2VsbFZhbHVlOiBhbnlcbiAgICAgICAgICAgICAgICAgICkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBkYXRlQXNTdHJpbmcgPSBjZWxsVmFsdWU7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGVBc1N0cmluZyA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlcy5jb2x1bW5UeXBlID09ICdkYXRlJykge1xuICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNlbGxEYXRlID0gbmV3IERhdGUoZGF0ZUFzU3RyaW5nKTtcbiAgICAgICAgICAgICAgICAgICAgICBpZiAoY2VsbERhdGUgPCBmaWx0ZXJMb2NhbERhdGVBdE1pZG5pZ2h0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7XG4gICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChjZWxsRGF0ZSA+IGZpbHRlckxvY2FsRGF0ZUF0TWlkbmlnaHQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAxO1xuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgZmllbGQ6IHJlcy5maWVsZCxcbiAgICAgICAgICAgICAgICBoZWFkZXJOYW1lOiByZXMudGl0bGUsXG4gICAgICAgICAgICAgICAgcmVzaXphYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgIHNvcnRhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBoaWRlOiAhcmVzLnZpc2libGUsXG4gICAgICAgICAgICAgICAgc3VwcHJlc3NGaWx0ZXI6IHRydWUsXG4gICAgICAgICAgICAgICAgc3VwcHJlc3NTb3J0aW5nOiB0cnVlLFxuICAgICAgICAgICAgICAgIHN1cHByZXNzTWVudTogdHJ1ZSxcbiAgICAgICAgICAgICAgICB0b29sdGlwRmllbGQ6IHJlcy5maWVsZCxcbiAgICAgICAgICAgICAgICBjZWxsUmVuZGVyZXI6IEJ1dHRvblJlbmRlcmVyQ29tcG9uZW50LFxuICAgICAgICAgICAgICAgIGNlbGxSZW5kZXJlclBhcmFtczoge1xuICAgICAgICAgICAgICAgICAgb25DbGljazogdGhpcy5vbkJ0bkNsaWNrLmJpbmQodGhpcyksXG4gICAgICAgICAgICAgICAgICBsYWJlbDogcmVzLmxhYmVsLFxuICAgICAgICAgICAgICAgICAgaWNvbjogcmVzLmljb24sXG4gICAgICAgICAgICAgICAgICBidXR0b25OYW1lOiByZXMuYnV0dG9uTmFtZSxcbiAgICAgICAgICAgICAgICAgIHRvb2x0aXA6IHJlcy50b29sdGlwLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgdmFsdWVHZXR0ZXI6IChwYXJhbXM6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlcy50b29sdGlwIHx8IHJlcy50aXRsZTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIG1pbldpZHRoOiA0MCxcbiAgICAgICAgICAgICAgICBjZWxsQ2xhc3M6ICdhY3Rpb24tYnV0dG9uJyxcbiAgICAgICAgICAgICAgICBwaW5uZWQ6IHJlcy5waW5Qb3NpdGlvbixcbiAgICAgICAgICAgICAgICBsb2NrUGlubmVkOiB0cnVlLFxuICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHRoaXMuY29sdW1uRGVmcyA9IGNvbGRlZjtcbiAgICAgICAgICB0aGlzLmFnR3JpZC5ncmlkT3B0aW9ucz8uYXBpPy5zZXRDb2x1bW5EZWZzKGNvbGRlZik7XG4gICAgICAgICAgdGhpcy5nZXRHcmlkU3RhdGUoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zb2xlLmxvZygnQ29sRGVmIFJlYWQgRXJyb3I9PicsIHJlc3BvbnNlLm1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS5sb2coJ1BsZWFzZSBwYXNzIHZhbGlkIEdyaWRJZCBhbmQgbG9nZ2VkSW4gdXNlciBJZCcpO1xuICAgIH1cbiAgfVxuXG4gIHNldEV4dGVybmFsRmlsdGVycyhvcHRpb25zOiBhbnkpIHtcbiAgICBpZiAoXG4gICAgICB0aGlzLnNlcnZlckRhdGFVcmwuaW5kZXhPZignZmlsdGVyJykgPj0gMCAmJlxuICAgICAgb3B0aW9ucy5pbmRleE9mKCdmaWx0ZXInKSA+PSAwXG4gICAgKSB7XG4gICAgICBsZXQgc2x1ZyA9IHRoaXMuc2VydmVyRGF0YVVybC5zcGxpdCgnPyRmaWx0ZXI9Jyk7XG4gICAgICBpZiAoc2x1ZyAmJiBzbHVnLmxlbmd0aD4wKSB7XG4gICAgICAgIG9wdGlvbnMgPSBvcHRpb25zICsgJyAmICcgKyBzbHVnWzFdO1xuICAgICAgICB0aGlzLnNlcnZlckRhdGFVcmw9c2x1Z1swXTtcbiAgICAgIH1cbiAgICB9XG4gICAgZWxzZSBpZih0aGlzLnNlcnZlckRhdGFVcmwuaW5kZXhPZignPycpPj0wKXtcbiAgICAgIG9wdGlvbnM9b3B0aW9ucy5yZXBsYWNlKCc/JywnJicpO1xuICAgIH1cbiAgICByZXR1cm4gYCR7dGhpcy5zZXJ2ZXJEYXRhVXJsfSR7b3B0aW9uc31gO1xuICB9XG4gIG9uR3JpZFJlYWR5KHBhcmFtczogR3JpZFJlYWR5RXZlbnQpIHtcbiAgICB0aGlzLmdyaWRQYWdlU2l6ZSA9IHRoaXMucGFnZVNpemU7XG4gICAgaWYgKHRoaXMuZW5hYmxlU2VydmVyU2lkZVBhZ2luZyA9PSB0cnVlKSB7XG4gICAgICBwYXJhbXMuYXBpLnNldFNlcnZlclNpZGVEYXRhc291cmNlKFxuICAgICAgICBuZXcgT2RhdGFTZXJ2ZXJTaWRlUHJvdmlkZXIoe1xuICAgICAgICAgIGlzQ2FzZVNlbnNpdGl2ZVN0cmluZ0ZpbHRlcjogZmFsc2UsXG4gICAgICAgICAgY2FsbEFwaTogKG9wdGlvbnMpID0+XG4gICAgICAgICAgICBmZXRjaChcbiAgICAgICAgICAgICAgYCR7dGhpcy5zZXRFeHRlcm5hbEZpbHRlcnMob3B0aW9ucyl9YCxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICAgICAgICdDb250ZW50LXR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgICAgICAgICAgICBBY2NlcHQ6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApLnRoZW4oKHJlc3BvbnNlKSA9PiByZXNwb25zZS5qc29uKCkpLFxuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBzZXRHcmlkU3RhdGUoKSB7XG4gICAgaWYgKHRoaXMuZ3JpZENvbHVtblN0YXRlKSB7XG4gICAgICB0aGlzLmFnR3JpZC5jb2x1bW5BcGkuYXBwbHlDb2x1bW5TdGF0ZSh7XG4gICAgICAgIHN0YXRlOiB0aGlzLmdyaWRDb2x1bW5TdGF0ZSxcbiAgICAgICAgYXBwbHlPcmRlcjogdHJ1ZSxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgY29sdW1ucyA9IHRoaXMuYWdHcmlkLmNvbHVtbkFwaS5nZXRDb2x1bW5zKCk7XG4gICAgICBpZiAoY29sdW1ucyAmJiBjb2x1bW5zLmxlbmd0aCA+IDEwKSB7XG4gICAgICAgIHRoaXMuYWdHcmlkLmNvbHVtbkFwaS5hdXRvU2l6ZUFsbENvbHVtbnMoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuYWdHcmlkLmFwaS5zaXplQ29sdW1uc1RvRml0KCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZ2V0R3JpZFN0YXRlKCkge1xuICAgIGlmICh0aGlzLmdyaWRJZCAmJiB0aGlzLmxvZ2dlZEluVXNlcikge1xuICAgICAgdGhpcy5ncmlkU2VydmljZVxuICAgICAgICAuZ2V0R3JpZFN0YXRlKHRoaXMuZ3JpZElkLCB0aGlzLmxvZ2dlZEluVXNlcilcbiAgICAgICAgLnN1YnNjcmliZSgocmVzcG9uc2U6IGFueSkgPT4ge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIHJlc3BvbnNlLnN0YXR1cyA9PSAxICYmXG4gICAgICAgICAgICByZXNwb25zZS5vYmplY3QgJiZcbiAgICAgICAgICAgIHJlc3BvbnNlLm9iamVjdC5ncmlkQ29uZmlnXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLmdyaWRDb2x1bW5TdGF0ZSA9IEpTT04ucGFyc2UocmVzcG9uc2Uub2JqZWN0LmdyaWRDb25maWcpO1xuICAgICAgICAgICAgdGhpcy5zZXRHcmlkU3RhdGUoKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc29sZS5sb2coJ0Vycm9yIHdoaWxlIGxvYWRpbmcgZ3JpZCBzdGF0ZScpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgb25CdG5DbGljayhlOiBhbnkpIHtcbiAgICB0aGlzLmJ0bkNsaWNrSGFuZGxlci5lbWl0KGUucm93RGF0YSk7XG4gIH1cblxuICBvblNhdmVHcmlkQ29sdW1uU3RhdGUoZXZlbnQ6IGFueSkge1xuICAgIGxldCBjb2x1bW5TdGF0ZSA9IHRoaXMuYWdHcmlkLmNvbHVtbkFwaT8uZ2V0Q29sdW1uU3RhdGUoKTtcbiAgICBsZXQgY29sdW1uRGF0YSA9IHtcbiAgICAgIGdyaWRDb25maWc6IEpTT04uc3RyaW5naWZ5KGNvbHVtblN0YXRlKSxcbiAgICAgIHVpR3JpZElkOiB0aGlzLmdyaWRJZCxcbiAgICAgIHVzZXJJZDogdGhpcy5sb2dnZWRJblVzZXIsXG4gICAgfTtcbiAgICBpZiAoZXZlbnQuZmluaXNoZWQgPT0gdHJ1ZSB8fCBldmVudC50eXBlID09PSAnY29sdW1uUGlubmVkJykge1xuICAgICAgdGhpcy5ncmlkQ29sdW1uU3RhdGUgPSBjb2x1bW5TdGF0ZTtcbiAgICAgIHRoaXMuZ3JpZFNlcnZpY2Uuc2F2ZUNvbHVtbkNvbmZpZyhjb2x1bW5EYXRhKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XG4gICAgICAgIHRoaXMuc2V0R3JpZFN0YXRlKCk7XG4gICAgICAgIGlmIChyZXMuc3RhdHVzID09IDApIHtcbiAgICAgICAgICBjb25zb2xlLmxvZygnRXJyb3Igd2hpbGUgc2F2aW5nIGNvbHVtbiBjb25maWd1cmF0aW9uOicsIHJlcy5tZXNzYWdlKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgZ2V0Um93QnlJZDogR2V0Um93SWRGdW5jID0gKHBhcmFtczogR2V0Um93SWRQYXJhbXMpID0+IHtcbiAgICB2YXIgZGF0YSA9IHBhcmFtcy5kYXRhO1xuICAgIHJldHVybiBkYXRhLmlkID8/IDA7XG4gIH07XG5cbiAgY29sVmFsdWVGb3JtYXR0ZXIocGFyYW1zOiBWYWx1ZUZvcm1hdHRlclBhcmFtcykge1xuICAgIGlmIChpc05hTigrcGFyYW1zLnZhbHVlKSkge1xuICAgICAgdmFyIGRhdGVXcmFwcGVyID0gbmV3IERhdGUocGFyYW1zLnZhbHVlKTtcbiAgICAgIGxldCBpc1ZhbGlkRGF0ZSA9ICFpc05hTihkYXRlV3JhcHBlci5nZXREYXRlKCkpO1xuICAgICAgaWYgKGlzVmFsaWREYXRlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmRhdGVQaXBlLnRyYW5zZm9ybShwYXJhbXMudmFsdWUsICdNTS1kZC15eXl5Jyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gcGFyYW1zLnZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcGFyYW1zLnZhbHVlO1xuICB9XG59XG4iXX0=
@@ -1021,7 +1021,7 @@ class GridLibraryComponent {
1021
1021
  },
1022
1022
  minWidth: 40,
1023
1023
  cellClass: 'action-button',
1024
- pinned: 'left',
1024
+ pinned: res.pinPosition,
1025
1025
  lockPinned: true,
1026
1026
  };
1027
1027
  }
@@ -1044,7 +1044,7 @@ class GridLibraryComponent {
1044
1044
  options.indexOf('filter') >= 0) {
1045
1045
  let slug = this.serverDataUrl.split('?$filter=');
1046
1046
  if (slug && slug.length > 0) {
1047
- options += options + ' & ' + slug[1];
1047
+ options = options + ' & ' + slug[1];
1048
1048
  this.serverDataUrl = slug[0];
1049
1049
  }
1050
1050
  }
@@ -1 +1 @@
1
- {"version":3,"file":"basesite-shared-grid-lib.mjs","sources":["../../../projects/basesite-shared-grid-lib/src/lib/grid-library.service.ts","../../../projects/basesite-shared-grid-lib/src/lib/helpers/utils.ts","../../../projects/basesite-shared-grid-lib/src/lib/helpers/oDataProvider.ts","../../../projects/basesite-shared-grid-lib/src/lib/renderer/button-renderer/button-renderer.component.ts","../../../projects/basesite-shared-grid-lib/src/lib/renderer/tooltip-renderer/custom-tooltip-renderer.ts","../../../projects/basesite-shared-grid-lib/src/lib/grid-library.component.ts","../../../projects/basesite-shared-grid-lib/src/lib/grid-library.module.ts","../../../projects/basesite-shared-grid-lib/src/public-api.ts","../../../projects/basesite-shared-grid-lib/src/basesite-shared-grid-lib.ts"],"sourcesContent":["import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class GridLibraryService {\n private baseUrl:any='https://localhost:8075/api';\n constructor(private httpClient: HttpClient) {\n } \n\n setBaseUrl(environment:any){\n if(environment==='test'){\n this.baseUrl='https://fcesharedgridtest.intel.com/api'\n }\n else if(environment=='uat'){\n this.baseUrl='https://fcesharedgridtest.intel.com/api'\n }\n else if(environment=='production'){\n this.baseUrl='https://fcesharedgridtest.intel.com/api'\n }\n else{\n this.baseUrl='https://localhost:8075/api'\n }\n }\n\n getColDef(gridId: any): Observable<any> {\n return this.httpClient.get<any>(\n `${this.baseUrl}/GridConfiguration/${gridId}`\n );\n }\n\n saveColumnConfig(columnConfig:any){\n return this.httpClient.post<any>(\n `${this.baseUrl}/GridConfiguration/saveUIUserGridConfiguration`,columnConfig\n );\n }\n\n getGridState(gridId:number,loggedInUserId:number){\n return this.httpClient.get<any>(\n `${this.baseUrl}/GridConfiguration?gridId=${gridId}&userId=${loggedInUserId}`\n );\n }\n}\n","export function escapeRegExp(string:any) {\r\n return string.replace(/[.*+\\-?^${}()|[\\]\\\\]/g, \"\\\\$&\"); // $& means the whole matched string\r\n }\r\n \r\n export function replaceAll(str: string, search: string, replacement: string): string {\r\n return str.replace(new RegExp(escapeRegExp(search), \"g\"), replacement);\r\n }","import {\r\n IGetRowsParams,\r\n ColDef,\r\n ColGroupDef,\r\n ColumnVO,\r\n IServerSideGetRowsRequest,\r\n IServerSideGetRowsParams,\r\n } from 'ag-grid-community'\r\n \r\n import {\r\n OdataQueryExtendFull,\r\n OdataQueryExtendOptions,\r\n OdataQueryOptions,\r\n PivotResultDat,\r\n } from './types'\r\n \r\n import { replaceAll } from './utils'\r\n export declare class OdataProviderOptions {\r\n /**\r\n * Function for call odata api\r\n */\r\n callApi: (query: string) => Promise<any>\r\n /**\r\n * Name of field contain count of record results in grouping odata query\r\n * @default childCount\r\n */\r\n groupCountFieldName?: string\r\n /**\r\n * Use in odata build query\r\n * @default false\r\n */\r\n isCaseSensitiveStringFilter?: boolean\r\n /**\r\n * Callback for extend odata query options for implement user logic\r\n */\r\n beforeRequest?: (\r\n options: OdataQueryOptions,\r\n provider: OdataProvider,\r\n request: IGetRowsParams | IServerSideGetRowsRequest\r\n ) => void\r\n /**\r\n * Callback for pivot or group for aplly column ag-grid settings\r\n * @example\r\n * <pre><code>\r\n * beforeSetSecondaryColumns = secondaryColumns => {\r\n for (let i = 0; i < secondaryColumns.length; i++) {\r\n const col = secondaryColumns[i]\r\n if (col.children) {\r\n beforeSetSecondaryColumns(col.children)\r\n } else {\r\n //Aplly new setting for group dyncamic created column\r\n // col.cellClassRules = \r\n // col.valueFormatter = \r\n }\r\n }\r\n }\r\n * </pre></code>\r\n */\r\n beforeSetSecondaryColumns?: (\r\n secondaryColDefs: (ColDef | ColGroupDef)[]\r\n ) => void\r\n /**\r\n * Callback invoked after load data\r\n * @param options odata provider options\r\n * @param rowData data for ag-grid\r\n * @param totalCount total count records\r\n * \r\n * @example\r\n * <pre><code>\r\n afterLoadData = (options, rowData, totalCount) => {\r\n if (options.skip === 0 && rowData.length > 0) {\r\n gridApi.columnController.autoSizeAllColumns()\r\n }\r\n }\r\n * </code></pre>\r\n */\r\n afterLoadData?: (\r\n options: OdataQueryExtendOptions,\r\n rowData: any[],\r\n totalCount: number\r\n ) => void\r\n /**\r\n * Callback for catch error\r\n */\r\n setError?: (\r\n error: any,\r\n params: IGetRowsParams | IServerSideGetRowsParams\r\n ) => void\r\n /**\r\n * List of columns by id/field are case sensitive for build odata query\r\n */\r\n caseSensitiveColumns?: string[]\r\n /**\r\n * Use for specified column custom filter implementation\r\n * <pre><code>\r\n customFilters: {\r\n \"customer\": (colName,col,isCaseSensitiveStringFilter,provider) =>{\r\n return provider.odataOperator.in(\r\n colName,\r\n col.values\r\n )\r\n }\r\n }\r\n */\r\n customFilters?: {\r\n [index: string]: (\r\n colName: string,\r\n col: any,\r\n isCaseSensitiveStringFilter: boolean,\r\n provider: OdataProvider\r\n ) => string\r\n }\r\n }\r\n \r\n declare interface CancelablePromise {\r\n promise: Promise<any>\r\n cancel: () => void\r\n }\r\n export class OdataProvider implements OdataProviderOptions {\r\n /**\r\n * Function for call odata api\r\n */\r\n callApi!: (query: string) => Promise<any>\r\n /**\r\n * Name of field contain count of record results in grouping odata query\r\n * @default childCount\r\n */\r\n groupCountFieldName: string = 'childCount'\r\n /**\r\n * Use in odata build query\r\n * @default false\r\n */\r\n isCaseSensitiveStringFilter: boolean = false\r\n /**\r\n * Callback for extend odata query options for implement user logic\r\n */\r\n beforeRequest: ((\r\n options: OdataQueryOptions,\r\n provider: OdataProvider,\r\n request: IGetRowsParams | IServerSideGetRowsRequest\r\n ) => void) | undefined\r\n /**\r\n * Callback for pivot or group for aplly column ag-grid settings\r\n * @example\r\n * <pre><code>\r\n * beforeSetSecondaryColumns = secondaryColumns => {\r\n for (let i = 0; i < secondaryColumns.length; i++) {\r\n const col = secondaryColumns[i]\r\n if (col.children) {\r\n beforeSetSecondaryColumns(col.children)\r\n } else {\r\n //Aplly new setting for group dyncamic created column\r\n // col.cellClassRules = \r\n // col.valueFormatter = \r\n }\r\n }\r\n }\r\n * </pre></code>\r\n */\r\n beforeSetSecondaryColumns: ((\r\n secondaryColDefs: (ColDef | ColGroupDef)[]\r\n ) => void) | undefined\r\n /**\r\n * Callback invoked after load data\r\n * @param options odata provider options\r\n * @param rowData data for ag-grid\r\n * @param totalCount total count records\r\n * \r\n * @example\r\n * <pre><code>\r\n afterLoadData = (options, rowData, totalCount) => {\r\n if (options.skip === 0 && rowData.length > 0) {\r\n gridApi.columnController.autoSizeAllColumns()\r\n }\r\n }\r\n * </code></pre>\r\n */\r\n afterLoadData: ((\r\n options: OdataQueryExtendOptions,\r\n rowData: any[],\r\n totalCount: number\r\n ) => void) | undefined\r\n /**\r\n * Callback for catch error\r\n */\r\n setError: ((\r\n error: any,\r\n params: IGetRowsParams | IServerSideGetRowsParams\r\n ) => void) | undefined\r\n /**\r\n * List of columns by id/field are case sensitive for build odata query\r\n */\r\n caseSensitiveColumns?: string[]\r\n /**\r\n * Use for specified column custom filter implementation\r\n * <pre><code>\r\n customFilters: {\r\n \"customer\": (colName,col,isCaseSensitiveStringFilter,provider) =>{\r\n return provider.odataOperator.in(\r\n colName,\r\n col.values\r\n )\r\n }\r\n }\r\n */\r\n customFilters?: {\r\n [index: string]: (\r\n colName: string,\r\n col: any,\r\n isCaseSensitiveStringFilter: boolean,\r\n provider: OdataProvider\r\n ) => string\r\n }\r\n cancelPromice: CancelablePromise\r\n constructor(options: OdataProviderOptions) {\r\n Object.assign(this, options);\r\n if (this.callApi == null) {\r\n throw new Error('callApi must be specified')\r\n }\r\n if (typeof this.callApi !== 'function') {\r\n throw new Error('callApi must be a function')\r\n }\r\n if (\r\n this.beforeRequest != null &&\r\n typeof this.beforeRequest !== 'function'\r\n ) {\r\n throw new Error('beforeRequest must be a function')\r\n }\r\n if (\r\n this.afterLoadData != null &&\r\n typeof this.afterLoadData !== 'function'\r\n ) {\r\n throw new Error('afterLoadData must be a function')\r\n }\r\n if (this.setError != null && typeof this.setError !== 'function') {\r\n throw new Error('setError must be a function')\r\n }\r\n this.cancelPromice = this.createCancelablePromise()\r\n }\r\n \r\n /**Creator a cancelable Promise */\r\n createCancelablePromise = (): CancelablePromise => {\r\n let cancel:any\r\n const pr = new Promise((_, reject) => {\r\n cancel = reject\r\n }).catch(() => {})\r\n return {\r\n promise: pr,\r\n cancel,\r\n }\r\n }\r\n /**Odata query operations */\r\n odataOperator:any = {\r\n // Logical\r\n equals: (col: string, value1: string): string => `${col} eq ${value1}`,\r\n notEqual: (col: string, value1: string): string => `${col} ne ${value1}`,\r\n lessThan: (col: string, value1: string): string => `${col} lt ${value1}`,\r\n lessThanOrEqual: (col: string, value1: string): string =>\r\n `${col} le ${value1}`,\r\n greaterThan: (col: string, value1: string): string => `${col} gt ${value1}`,\r\n greaterThanOrEqual: (col: string, value1: string): string =>\r\n `${col} ge ${value1}`,\r\n inRange: (col: string, value1: string, value2: any): string =>\r\n `(${col} ge ${value1} and ${col} le ${value2})`,\r\n // String\r\n equalsStr: (\r\n col: string,\r\n value1: string,\r\n isCaseSensitiveStringFilter: boolean\r\n ): string =>\r\n `${this.ifTolowerCol(\r\n col,\r\n isCaseSensitiveStringFilter\r\n )} eq ${this.ifTolower(value1, isCaseSensitiveStringFilter)}`,\r\n notEqualStr: (\r\n col: string,\r\n value1: string,\r\n isCaseSensitiveStringFilter: boolean\r\n ): string =>\r\n `${this.ifTolowerCol(\r\n col,\r\n isCaseSensitiveStringFilter\r\n )} ne ${this.ifTolower(value1, isCaseSensitiveStringFilter)}`,\r\n contains: (\r\n col: string,\r\n value1: string,\r\n isCaseSensitiveStringFilter: boolean\r\n ): string =>\r\n `contains(${this.ifTolowerCol(\r\n col,\r\n isCaseSensitiveStringFilter\r\n )},${this.ifTolower(value1, isCaseSensitiveStringFilter)})`,\r\n notContains: (\r\n col: string,\r\n value1: string,\r\n isCaseSensitiveStringFilter: boolean\r\n ): string =>\r\n `contains(${this.ifTolowerCol(\r\n col,\r\n isCaseSensitiveStringFilter\r\n )},${this.ifTolower(value1, isCaseSensitiveStringFilter)}) eq false`,\r\n startsWith: (\r\n col: string,\r\n value1: string,\r\n isCaseSensitiveStringFilter: boolean\r\n ): string =>\r\n `startswith(${this.ifTolowerCol(\r\n col,\r\n isCaseSensitiveStringFilter\r\n )},${this.ifTolower(value1, isCaseSensitiveStringFilter)}) eq true`,\r\n endsWith: (\r\n col: string,\r\n value1: string,\r\n isCaseSensitiveStringFilter: boolean\r\n ): string =>\r\n `endswith(${this.ifTolowerCol(\r\n col,\r\n isCaseSensitiveStringFilter\r\n )},${this.ifTolower(value1, isCaseSensitiveStringFilter)}) eq true`,\r\n inStr: (\r\n col: string,\r\n values: string[],\r\n isCaseSensitiveStringFilter: boolean\r\n ): string =>\r\n `${this.ifTolowerCol(col, isCaseSensitiveStringFilter)} in (${values\r\n .map(\r\n (x) =>\r\n `'${this.ifTolower(this.encode(x), isCaseSensitiveStringFilter)}'`\r\n )\r\n .join()})`,\r\n in: (col: string, values: string[]) =>\r\n `${col} in (${values.map((x) => `${this.encode(x)}`).join()})`,\r\n notIn: (col: string, values: string[]) =>\r\n `not (${col} in (${values.map((x) => `${x}`).join()}))`,\r\n // Date\r\n trunc: (col: string): string => `date(${col})`,\r\n }\r\n \r\n /**\r\n * Apply tolower for column in odata syntax\r\n * @param col column name\r\n * @param isCaseSensitiveStringFilter need apply tolower\r\n */\r\n ifTolowerCol = (col: string, isCaseSensitiveStringFilter: boolean): string =>\r\n isCaseSensitiveStringFilter ? col : `tolower(${col})`\r\n \r\n /**\r\n *\r\n * @param value string value\r\n * @param isCaseSensitiveStringFilter need apply tolower\r\n */\r\n ifTolower = (value: string, isCaseSensitiveStringFilter: boolean): string =>\r\n isCaseSensitiveStringFilter ? value : value ? value.toLowerCase() : value\r\n /**\r\n * Odata aggregation operations\r\n */\r\n odataAggregation:any = {\r\n // Logical\r\n sum: (col: string, asField?: any): string =>\r\n `${col} with sum as ${col || asField}`,\r\n min: (col: string, asField?: any): string =>\r\n `${col} with min as ${col || asField}`,\r\n max: (col: string, asField?: any): string =>\r\n `${col} with max as ${col || asField}`,\r\n avg: (col: string, asField?: any): string =>\r\n `${col} with average as ${col || asField}`,\r\n count: (col: string, asField?: any): string =>\r\n `$count as ${col || asField}`,\r\n }\r\n /**\r\n * Odata query builder\r\n * @param options parameter for odata query\r\n */\r\n toQuery = (options: OdataQueryExtendFull): string => {\r\n let path: string[] = []\r\n if (options) {\r\n path.push('$count=true')\r\n }\r\n if (options.skip) {\r\n path.push(`$skip=${options.skip}`)\r\n }\r\n if (options.top) {\r\n path.push(`$top=${options.top}`)\r\n }\r\n if (options.sort && options.sort.length > 0) {\r\n path.push('$orderby=' + options.sort.join(','))\r\n }\r\n if (options.filter && options.filter.length > 0) {\r\n path.push('$filter=' + options.filter.join(' and '))\r\n }\r\n if (options.apply && options.apply.length > 0) {\r\n path.push('$apply=' + options.apply.join('/'))\r\n }\r\n if (options.expand && options.expand.length > 0) {\r\n path.push('$expand=' + options.expand.join(','))\r\n }\r\n if (options.select && options.select.length > 0) {\r\n path.push('$select=' + options.select.join(','))\r\n }\r\n let query: string = ''\r\n if (path.length > 0) {\r\n query = '?' + path.join('&')\r\n }\r\n return query\r\n }\r\n /**\r\n * Add quotes for string value\r\n * @param value string value\r\n */\r\n encode = (value: string): string =>\r\n this.isStrVal(value) ? replaceAll(value, \"'\", \"''\") : value\r\n /**\r\n * Conctat to date a time for create datetime format for odata query\r\n * @param value date string\r\n */\r\n toDateTime = (value: string): string | null => {\r\n const dt = new Date(value)\r\n if (isNaN(dt.getTime())) return null\r\n const dt1 = new Date(\r\n Date.UTC(dt.getFullYear(), dt.getMonth(), dt.getDate())\r\n )\r\n return dt1.toISOString()\r\n }\r\n /**\r\n *\r\n * @param colName columnName\r\n * @returns is CaseSensitive for column\r\n */\r\n private getIsNeedCaseSensitive = (colName: string) => {\r\n if (\r\n !this.isCaseSensitiveStringFilter &&\r\n this.caseSensitiveColumns &&\r\n this.caseSensitiveColumns.length > 0\r\n ) {\r\n return this.caseSensitiveColumns.indexOf(colName) >= 0\r\n }\r\n return this.isCaseSensitiveStringFilter\r\n }\r\n /**\r\n * Convert ag-grid column filter to odata query\r\n * @param colName columnName\r\n * @param col ag-grid column\r\n */\r\n private getFilterOdata = (colName: string, col: any): string => {\r\n const me = this\r\n const isCaseSensitiveStringFilter = me.getIsNeedCaseSensitive(colName)\r\n const customFilter = me.customFilters && me.customFilters[colName]\r\n colName = replaceAll(colName, '.', '/')\r\n colName = me.getWrapColumnName(colName)\r\n if (customFilter) {\r\n return customFilter(colName, col, isCaseSensitiveStringFilter, me)\r\n } else {\r\n switch (col.filterType) {\r\n case 'number':\r\n return me.odataOperator[col.type](colName, col.filter, col.filterTo)\r\n case 'text': {\r\n let operatorName = col.type\r\n const filter = me.encode(col.filter)\r\n // let filterTo = me.encode(col.filterTo);\r\n if (\r\n (operatorName === 'equals' || operatorName === 'notEqual') &&\r\n !isCaseSensitiveStringFilter\r\n ) {\r\n operatorName += 'Str'\r\n }\r\n return me.odataOperator[operatorName](\r\n colName,\r\n `'${filter}'`,\r\n isCaseSensitiveStringFilter\r\n )\r\n }\r\n case 'date':\r\n if (\r\n col.dateFrom != null &&\r\n me.toDateTime(col.dateFrom) != null &&\r\n (col.dateTo == null ||\r\n (col.dateTo != null && me.toDateTime(col.dateTo) != null))\r\n ) {\r\n return me.odataOperator[col.type](\r\n colName,\r\n `${me.toDateTime(col.dateFrom)}`,\r\n `${me.toDateTime(col.dateTo)}`\r\n )\r\n }\r\n break\r\n case 'set':\r\n return col.values.length > 0\r\n ? me.odataOperator.inStr(\r\n colName,\r\n col.values,\r\n isCaseSensitiveStringFilter\r\n )\r\n : ''\r\n default:\r\n break\r\n }\r\n }\r\n return ''\r\n }\r\n \r\n /**\r\n * Extract value from record by path to field\r\n * @param field path to column value\r\n * @param obj record\r\n */\r\n private getValue(field: string, obj: any): any {\r\n const paths = field.split('.')\r\n if (paths.length === 1) {\r\n return obj[field]\r\n } else {\r\n return paths.reduce((object, path) => {\r\n return (object || {})[path] // Oliver Steele's pattern\r\n }, obj)\r\n }\r\n }\r\n \r\n /**\r\n * Caclulate pivot data for ag-grid from odata\r\n * @param pivotCols pivot columns\r\n * @param rowGroupCols row group columns\r\n * @param valueCols value columns\r\n * @param data odata result\r\n * @param countField count field name\r\n */\r\n private getPivot = (\r\n pivotCols: ColumnVO[],\r\n rowGroupCols: ColumnVO[],\r\n valueCols: ColumnVO[],\r\n data: any[],\r\n countField: string\r\n ): PivotResultDat => {\r\n // assume 1 pivot col and 1 value col for this example\r\n const me = this\r\n const pivotData: any[] = []\r\n const aggColsList: any[] = []\r\n \r\n const colKeyExistsMap: any = {}\r\n \r\n const secondaryColDefs: any[] = []\r\n const secondaryColDefsMap:any = {}\r\n \r\n data.forEach(function (item) {\r\n var pivotValues: string[] = []\r\n pivotCols.forEach(function (pivotCol) {\r\n var pivotField = pivotCol.id\r\n var pivotValue = me.getValue(pivotField, item)\r\n if (\r\n pivotValue !== null &&\r\n pivotValue !== undefined &&\r\n pivotValue.toString\r\n ) {\r\n pivotValues.push(pivotValue.toString())\r\n } else {\r\n pivotValues.push('-')\r\n }\r\n })\r\n \r\n // var pivotValue = item[pivotField].toString();\r\n var pivotItem:any = {}\r\n \r\n valueCols.forEach(function (valueCol) {\r\n var valField = valueCol.id\r\n var colKey = createColKey(pivotValues, valField)\r\n \r\n var value = me.getValue(valField, item)\r\n pivotItem[colKey] = value\r\n \r\n if (!colKeyExistsMap[colKey]) {\r\n addNewAggCol(colKey, valueCol)\r\n addNewSecondaryColDef(colKey, pivotValues, valueCol)\r\n colKeyExistsMap[colKey] = true\r\n }\r\n })\r\n if (countField) {\r\n pivotItem[countField] = me.getValue(countField, item)\r\n }\r\n \r\n rowGroupCols.forEach(function (rowGroupCol) {\r\n var rowGroupField = rowGroupCol.id.split('.')[0]\r\n pivotItem[rowGroupField] = item[rowGroupField]\r\n })\r\n \r\n pivotData.push(pivotItem)\r\n })\r\n \r\n function addNewAggCol(colKey: string, valueCol: ColumnVO): void {\r\n var newCol = {\r\n id: colKey,\r\n field: colKey,\r\n aggFunc: valueCol.aggFunc,\r\n }\r\n aggColsList.push(newCol)\r\n }\r\n \r\n function addNewSecondaryColDef(colKey:any, pivotValues:any, valueCol:any) {\r\n var parentGroup: any = null\r\n \r\n var keyParts: any = []\r\n \r\n pivotValues.forEach(function (pivotValue: any) {\r\n keyParts.push(pivotValue)\r\n var colKey = createColKey(keyParts)\r\n var groupColDef: any = secondaryColDefsMap[colKey]\r\n if (!groupColDef) {\r\n groupColDef = {\r\n groupId: colKey,\r\n headerName: pivotValue,\r\n children: [],\r\n }\r\n secondaryColDefsMap[colKey] = groupColDef\r\n if (parentGroup) {\r\n parentGroup.children.push(groupColDef)\r\n } else {\r\n secondaryColDefs.push(groupColDef)\r\n }\r\n }\r\n parentGroup = groupColDef\r\n })\r\n \r\n parentGroup.children.push({\r\n colId: colKey,\r\n headerName: valueCol.aggFunc + '(' + valueCol.displayName + ')',\r\n field: colKey,\r\n suppressMenu: true,\r\n sortable: false,\r\n })\r\n }\r\n \r\n function createColKey(pivotValues: string[], valueField?: string): string {\r\n var result = pivotValues.join('|')\r\n if (valueField !== undefined) {\r\n result += '|' + valueField\r\n }\r\n result = replaceAll(result, '.', '*')\r\n return result\r\n }\r\n \r\n return {\r\n data: pivotData,\r\n aggCols: aggColsList,\r\n secondaryColDefs: secondaryColDefs,\r\n }\r\n }\r\n \r\n /**\r\n *\r\n * @param rowData array odata result\r\n * @param rowGroupCols row group columns\r\n * @param groupKeys what groups the user is viewing\r\n * @param countField count field name\r\n */\r\n private buildGroupsFromData = (\r\n rowData: any[],\r\n rowGroupCols: ColumnVO[],\r\n groupKeys: string[],\r\n countField: string\r\n ): any[] => {\r\n const me = this\r\n let rowGroupCol = rowGroupCols[groupKeys.length]\r\n let field = rowGroupCol.id\r\n let mappedRowData = me.groupBy(rowData, field)\r\n let groups: any = []\r\n \r\n me.iterateObject(mappedRowData, function (key, rowData) {\r\n var groupItem = me.aggregateList(rowData, countField)\r\n groupItem[field] = key\r\n groups.push(groupItem)\r\n })\r\n return groups\r\n }\r\n \r\n /**\r\n * Internal function for execute callback function for each property of object\r\n * @param object object contained odata grouped result\r\n * @param callback function do somthing\r\n */\r\n private iterateObject = (\r\n object: any,\r\n callback: (key: string, rowData: any[]) => void\r\n ): void => {\r\n if (!object) {\r\n return\r\n }\r\n const keys = Object.keys(object)\r\n for (let i = 0; i < keys.length; i++) {\r\n const key = keys[i]\r\n const value = object[key]\r\n callback(key, value)\r\n }\r\n }\r\n \r\n /**\r\n * Prepeare grouped data\r\n * @param rowData array odata result\r\n * @param field grouping field\r\n */\r\n private groupBy = (rowData: any[], field: string): any => {\r\n var result:any = {}\r\n const me = this\r\n rowData.forEach(function (item) {\r\n var key = me.getValue(field, item)\r\n var listForThisKey = result[key]\r\n if (!listForThisKey) {\r\n listForThisKey = []\r\n result[key] = listForThisKey\r\n }\r\n listForThisKey.push(item)\r\n })\r\n return result\r\n }\r\n \r\n /**\r\n * Calculate total count records in group\r\n * @param rowData array odata result data\r\n * @param countField field contained count of all records\r\n */\r\n private aggregateList = (rowData: any[], countField: string): any => {\r\n var result:any = {}\r\n rowData.forEach((row) => {\r\n if (countField && row[countField] != null) {\r\n const totalCount = (result[countField] || 0) + (row[countField] || 0)\r\n delete row[countField]\r\n result[countField] = totalCount\r\n }\r\n result = Object.assign(result, row)\r\n })\r\n return result\r\n }\r\n \r\n /**\r\n * Calculate distinct values for input field from Odata api\r\n * @param field The field of the row to get the cells data from \r\n * @param callback The function for return distinct values for input field\r\n * @param beforeRequest The function for customize request\r\n * @example \r\n * <pre><code>\r\n * const setFilterValuesFuncParams = params => {\r\n * const me = this\r\n * const col = params.colDef.field\r\n * const storeName = me.getStoreName(col)\r\n * const callback = data => {\r\n * if (data) {\r\n * me.setState({ [storeName]: data })\r\n * params.success(data)\r\n * }\r\n * }\r\n * odataProviderInstance.getFilterValuesParams(params.colDef.field, callback)\r\n * }\r\n * \r\n * ///....\r\n * <AgGridColumn\r\n field=\"product\"\r\n headerName={'PRODUCT'}\r\n filter=\"agSetColumnFilter\"\r\n // rowGroup\r\n // enablePivot\r\n enableRowGroup\r\n filterParams={{\r\n values: setFilterValuesFuncParams,\r\n newRowsAction: 'keep'\r\n }}\r\n // filterParams={{caseSensitive: true}}\r\n />\r\n * </code></pre>\r\n */\r\n getFilterValuesParams = (\r\n field: string,\r\n callback: (data: any[]) => void,\r\n beforeRequest: (options: OdataQueryExtendFull) => void | undefined\r\n ): void => {\r\n const me = this\r\n const options: OdataQueryExtendFull = {\r\n apply: [`groupby((${me.getWrapColumnName(field)}))`],\r\n }\r\n if (beforeRequest) {\r\n beforeRequest(options)\r\n }\r\n me.callApi(me.toQuery(options)).then((x) => {\r\n if (x) {\r\n let values = me.getOdataResult(x)\r\n callback(values.map((y:any) => y[field]))\r\n }\r\n })\r\n }\r\n /**\r\n * Detect is string value\r\n * @param value\r\n */\r\n isStrVal = (value: any): boolean => typeof value === 'string'\r\n /**\r\n * Extartc values from odata response\r\n * @param response\r\n */\r\n private getOdataResult = (response: any): any =>\r\n Array.isArray(response) ? response : response.value\r\n /**\r\n * Endocing column name to odata notation\r\n * @param colName column name\r\n */\r\n private getWrapColumnName = (colName: string | undefined): string =>\r\n colName ? replaceAll(colName, '.', '/') : ''\r\n /**\r\n * grid calls this to get rows for IServerSideDatasource\r\n * @param params ag-grid details for the request\r\n */\r\n /**\r\n * grid calls this to get rows implement\r\n * @param params ag-grid details for the request\r\n */\r\n public getRows(params: IGetRowsParams | IServerSideGetRowsParams): void {\r\n const me = this\r\n const childCount = me.groupCountFieldName\r\n const isServerMode = 'request' in params\r\n const request = isServerMode\r\n ? (params as IServerSideGetRowsParams).request\r\n : (params as IGetRowsParams)\r\n const requestSrv = request as IServerSideGetRowsRequest\r\n \r\n const pivotActive = !isServerMode\r\n ? false\r\n : requestSrv.pivotMode &&\r\n requestSrv.pivotCols.length > 0 &&\r\n requestSrv.valueCols.length > 0\r\n \r\n if (!pivotActive) {\r\n let fn = (params as any).columnApi.setPivotResultColumns\r\n if (fn != null) {\r\n // if ((params as any).columnApi.isPivotMode()) {\r\n ;(params as any).columnApi.setPivotResultColumns([])\r\n // }\r\n } else {\r\n ;(params as any).columnApi.setSecondaryColumns([])\r\n }\r\n }\r\n const options = me.getOdataOptions(params)\r\n const query = me.toQuery(options)\r\n if (\r\n options.skip === 0 &&\r\n (!isServerMode ||\r\n (isServerMode &&\r\n (params as IServerSideGetRowsParams).parentNode.level === -1))\r\n ) {\r\n me.cancelPromice.cancel()\r\n me.cancelPromice = me.createCancelablePromise()\r\n }\r\n Promise.race([me.cancelPromice.promise, me.callApi(query)]).then(\r\n async (x) => {\r\n if (!x) {\r\n params.failCallback()\r\n } else {\r\n const values = me.getOdataResult(x)\r\n if (!pivotActive) {\r\n if (!options.apply) {\r\n me.setResult(params, isServerMode, values, x['@odata.count'] || x[0]?.totalCount)\r\n if (this.afterLoadData) {\r\n this.afterLoadData(options, values, x['@odata.count'] || x[0]?.totalCount)\r\n }\r\n } else {\r\n let count = values.length\r\n if (count === options.top && options.skip === 0) {\r\n // If received grouped count of value large than requested then request total count of values\r\n me.callApi(query + '/aggregate($count as count)').then((y) => {\r\n count = me.getOdataResult(y)[0].count\r\n me.setResult(params, isServerMode, values, count)\r\n })\r\n } else {\r\n if (options.skip != null && options.skip > 0) {\r\n count = null\r\n }\r\n me.setResult(params, isServerMode, values, count)\r\n if (this.afterLoadData) {\r\n this.afterLoadData(options, values, count)\r\n }\r\n }\r\n }\r\n } else {\r\n let rowData = me.getOdataResult(x)\r\n // Check count\r\n if (\r\n rowData.length === options.top &&\r\n options.skip === 0 &&\r\n requestSrv.groupKeys.length === 0\r\n ) {\r\n let eof = false\r\n while (!eof) {\r\n options.skip += options.top || 0\r\n const subQuery = me.toQuery(options)\r\n const newRowData = await me.callApi(subQuery)\r\n if (!newRowData) {\r\n params.failCallback()\r\n return\r\n }\r\n eof = newRowData.length !== options.top\r\n rowData = rowData.concat(newRowData)\r\n }\r\n }\r\n const pivotResult = me.getPivot(\r\n requestSrv.pivotCols,\r\n requestSrv.rowGroupCols,\r\n requestSrv.valueCols,\r\n rowData,\r\n childCount\r\n )\r\n rowData = pivotResult.data\r\n const secondaryColDefs = pivotResult.secondaryColDefs\r\n rowData = me.buildGroupsFromData(\r\n rowData,\r\n requestSrv.rowGroupCols,\r\n requestSrv.groupKeys,\r\n childCount\r\n )\r\n const totalCount =\r\n requestSrv.groupKeys.length === 0\r\n ? rowData.length\r\n : rowData.length === options.top\r\n ? null\r\n : rowData.length\r\n // if (totalCount > (options.top || 0)) {\r\n // const serverSideBlock = (params as any).parentNode.rowModel\r\n // .rowNodeBlockLoader.blocks[0];\r\n // serverSideBlock.rowNodeCacheParams.blockSize = totalCount;\r\n // serverSideBlock.endRow = serverSideBlock.startRow + totalCount;\r\n // serverSideBlock.createRowNodes();\r\n // }\r\n me.setResult(params, isServerMode, rowData, totalCount)\r\n if (this.afterLoadData) {\r\n this.afterLoadData(options, rowData, totalCount)\r\n }\r\n if (requestSrv.groupKeys.length === 0) {\r\n if (this.beforeSetSecondaryColumns) {\r\n this.beforeSetSecondaryColumns(secondaryColDefs)\r\n }\r\n let fn = (params as any).columnApi.setPivotResultColumns\r\n if (fn) {\r\n ;(params as any).columnApi.setPivotResultColumns(\r\n secondaryColDefs\r\n )\r\n } else {\r\n ;(params as any).columnApi.setSecondaryColumns(secondaryColDefs)\r\n }\r\n }\r\n }\r\n }\r\n },\r\n (err) => {\r\n me.setResult(params, isServerMode, [], 0)\r\n if (this.setError) {\r\n this.setError(err, params)\r\n }\r\n }\r\n )\r\n }\r\n /**\r\n * Set result\r\n * @param params ag-grid details for the request\r\n * @param isServerMode detect type of params\r\n * @param rowsThisBlock data of the request\r\n * @param rowCount count of total result\r\n */\r\n private setResult = (\r\n params: IGetRowsParams | IServerSideGetRowsParams,\r\n isServerMode: boolean,\r\n rowsThisBlock: any[],\r\n rowCount?: number\r\n ): void => {\r\n if (isServerMode) {\r\n ;(params as IServerSideGetRowsParams).success({\r\n rowData: rowsThisBlock,\r\n rowCount: rowCount,\r\n })\r\n } else {\r\n ;(params as IGetRowsParams).successCallback(rowsThisBlock, rowCount)\r\n }\r\n }\r\n /**\r\n * Generate odata options for build query from ag-grid request\r\n * @param params ag-grid details for the request\r\n */\r\n getOdataOptions = (\r\n params: IGetRowsParams | IServerSideGetRowsParams\r\n ): OdataQueryExtendFull => {\r\n const me = this\r\n const options: OdataQueryExtendFull = {}\r\n const isServerMode = 'request' in params\r\n const request = isServerMode\r\n ? (params as IServerSideGetRowsParams).request\r\n : (params as IGetRowsParams)\r\n const childCount = me.groupCountFieldName\r\n if (this.beforeRequest) {\r\n this.beforeRequest(options, this, request)\r\n }\r\n if (request.sortModel.length > 0) {\r\n const sort = options.sort || []\r\n for (let i = 0; i < request.sortModel.length; i++) {\r\n const col = request.sortModel[i]\r\n let colName = me.getWrapColumnName(col.colId)\r\n if (col.sort !== 'asc') {\r\n colName += ' desc'\r\n }\r\n sort.push(colName)\r\n }\r\n options.sort = sort\r\n }\r\n \r\n const filter = options.filter || []\r\n for (const colName in request.filterModel) {\r\n if (request.filterModel.hasOwnProperty(colName)) {\r\n const col = request.filterModel[colName]\r\n let colFilter = ''\r\n if (!col.operator) {\r\n colFilter = me.getFilterOdata(colName, col)\r\n if (colFilter) {\r\n filter.push(colFilter)\r\n }\r\n } else {\r\n const condition1 = me.getFilterOdata(colName, col.condition1)\r\n const condition2 = me.getFilterOdata(colName, col.condition2)\r\n if (condition1 && condition2) {\r\n colFilter = `(${condition1} ${col.operator.toLowerCase()} ${condition2})`\r\n filter.push(colFilter)\r\n }\r\n }\r\n }\r\n }\r\n \r\n let pivotActive = false\r\n \r\n const apply = options.apply || []\r\n if (isServerMode) {\r\n const requestSrv = request as IServerSideGetRowsRequest\r\n pivotActive =\r\n requestSrv.pivotMode &&\r\n requestSrv.pivotCols.length > 0 &&\r\n requestSrv.valueCols.length > 0\r\n if (requestSrv.rowGroupCols.length > 0) {\r\n const filterGroupBy: string[] = []\r\n if (requestSrv.groupKeys.length < requestSrv.rowGroupCols.length) {\r\n // If request only groups\r\n for (let idx = 0; idx < requestSrv.groupKeys.length; idx++) {\r\n const colValue = requestSrv.groupKeys[idx]\r\n const condition = `${me.getWrapColumnName(\r\n requestSrv.rowGroupCols[idx].field\r\n )} eq ${\r\n (me.isStrVal(colValue) ? \"'\" : '') +\r\n me.encode(colValue) +\r\n (me.isStrVal(colValue) ? \"'\" : '')\r\n }`\r\n filterGroupBy.push(condition)\r\n }\r\n if (filterGroupBy.length > 0 || filter.length > 0) {\r\n // Filters must by first\r\n apply.push(`filter(${filterGroupBy.concat(filter).join(' and ')})`)\r\n }\r\n \r\n const aggregate: string[] = []\r\n if (childCount) {\r\n aggregate.push(me.odataAggregation.count(childCount))\r\n }\r\n if (requestSrv.valueCols.length > 0) {\r\n for (let idx = 0; idx < requestSrv.valueCols.length; idx++) {\r\n const colValue = requestSrv.valueCols[idx]\r\n colValue.aggFunc &&\r\n aggregate.push(\r\n me.odataAggregation[colValue.aggFunc](\r\n me.getWrapColumnName(colValue.field)\r\n )\r\n )\r\n }\r\n }\r\n let groups = [\r\n me.getWrapColumnName(\r\n requestSrv.rowGroupCols[requestSrv.groupKeys.length].field\r\n ),\r\n ]\r\n const sort = options.sort || []\r\n const sortColOnly = sort.map((x) => x.split(' ')[0])\r\n if (pivotActive) {\r\n groups = groups.concat(\r\n requestSrv.pivotCols.map((x) => me.getWrapColumnName(x.field))\r\n )\r\n groups.forEach((x) => {\r\n if (sortColOnly.indexOf(x) < 0) {\r\n sort.push(x)\r\n }\r\n })\r\n }\r\n options.sort = sort\r\n apply.push(\r\n `groupby((${groups.join(',')})${\r\n aggregate.length > 0 ? `,aggregate(${aggregate.join(',')})` : ''\r\n })`\r\n )\r\n \r\n options.apply = apply\r\n if (options.sort && options.sort.length > 0) {\r\n options.sort = options.sort.filter(\r\n (x) => groups.indexOf(x.split(' ')[0]) >= 0\r\n )\r\n }\r\n // delete options.sort;\r\n } else {\r\n // If request rowData by group filter\r\n for (let idx = 0; idx < requestSrv.groupKeys.length; idx++) {\r\n const colValue = requestSrv.groupKeys[idx]\r\n const condition = `${me.getWrapColumnName(\r\n requestSrv.rowGroupCols[idx].field\r\n )} eq ${\r\n (me.isStrVal(colValue) ? \"'\" : '') +\r\n me.encode(colValue) +\r\n (me.isStrVal(colValue) ? \"'\" : '')\r\n }`\r\n filter.push(condition)\r\n }\r\n }\r\n }\r\n }\r\n if (filter.length > 0) {\r\n options.filter = filter\r\n }\r\n if (apply.length > 0) {\r\n options.apply = apply\r\n delete options.filter\r\n delete options.expand\r\n delete options.select\r\n // options.sort = null;\r\n }\r\n options.skip = request.startRow\r\n options.top = (request.endRow || 0) - (request.startRow || 0)\r\n \r\n if (!options.apply && options.skip === 0) {\r\n options.count = true\r\n }\r\n return options\r\n }\r\n /**\r\n * Generate odata query from ag-grid request\r\n * @param params ag-grid details for the request\r\n */\r\n getOdataQuery = (params: IGetRowsParams | IServerSideGetRowsParams): string =>\r\n this.toQuery(this.getOdataOptions(params))\r\n }\r\n \r\n export class OdataProviderClient extends OdataProvider {\r\n public override getRows(params: IServerSideGetRowsParams) {\r\n super.getRows(params)\r\n }\r\n }\r\n export class OdataServerSideProvider extends OdataProvider {\r\n public override getRows(params: IServerSideGetRowsParams): void {\r\n super.getRows(params)\r\n }\r\n }","import { Component } from '@angular/core';\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\n\n@Component({\n selector: 'lib-button-renderer',\n template: `\n <button class=\"btn-actions\" type=\"button\" (click)=\"onClick($event)\" [attr.data-title]=\"params.tooltip\">\n <span *ngIf=\"icon && !label\"> <i class=\"{{ icon }}\"></i> </span>\n <span *ngIf=\"!icon && label\">{{ label }}</span>\n <span *ngIf=\"icon && label\"><i class=\"{{ icon }}\"></i> {{ label }}</span>\n </button>\n `,\n})\nexport class ButtonRendererComponent implements ICellRendererAngularComp {\n params: any;\n label: any;\n icon: any;\n\n agInit(params: any): void {\n this.params = params;\n this.label = this.params.label || null;\n this.icon = this.params.icon;\n }\n\n refresh(params?: any): boolean {\n return false;\n }\n\n onClick($event: any) {\n if (this.params.onClick instanceof Function) {\n // put anything into params u want pass into parents component\n const params = {\n event: $event,\n rowData: Object.assign({}, this.params.node.data, {\n buttonName: this.params.buttonName,\n buttonText: this.params.label,\n buttonIcon: this.params.icon,\n }),\n };\n this.params.onClick(params);\n }\n }\n}\n","import { DatePipe } from '@angular/common';\r\nimport { Component } from '@angular/core';\r\nimport { ITooltipAngularComp } from 'ag-grid-angular';\r\nimport { ITooltipParams } from 'ag-grid-community';\r\n\r\n@Component({\r\n selector: 'tooltip-component',\r\n template: ` <div class=\"custom-tooltip\">\r\n <p>\r\n <span>{{ params.value }}</span>\r\n </p>\r\n </div>`,\r\n})\r\nexport class CustomTooltip implements ITooltipAngularComp { \r\n constructor(private datePipe: DatePipe) {}\r\n public params!: { color: string } & ITooltipParams;\r\n agInit(params: { color: string } & ITooltipParams): void {\r\n this.params = params;\r\n if (isNaN(+params.value)) {\r\n var dateWrapper = new Date(params.value);\r\n let isValidDate = !isNaN(dateWrapper.getDate());\r\n if (isValidDate) {\r\n params.value = this.datePipe.transform(params.value, 'MM-dd-yyyy');\r\n }\r\n }\r\n }\r\n}\r\n","import { DatePipe } from '@angular/common';\nimport {\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { AgGridAngular } from 'ag-grid-angular';\nimport {\n ColDef,\n GetRowIdFunc,\n GetRowIdParams,\n GridReadyEvent,\n PaginationNumberFormatterParams,\n RowModelType,\n ValueFormatterParams,\n} from 'ag-grid-community';\nimport { GridLibraryService } from './grid-library.service';\nimport { OdataServerSideProvider } from './helpers';\nimport { ButtonRendererComponent } from './renderer/button-renderer/button-renderer.component';\nimport { CustomTooltip } from './renderer/tooltip-renderer/custom-tooltip-renderer';\n\n@Component({\n selector: 'lib-basesite-shared-grid-lib',\n template: `\n <ag-grid-angular\n style=\"width: 100%;height:98.2vh\"\n class=\"ag-theme-balham\"\n [columnDefs]=\"columnDefs\"\n [defaultColDef]=\"defaultColDef\"\n [rowData]=\"rowData\"\n [rowSelection]=\"rowSelection\"\n [animateRows]=\"true\"\n (gridReady)=\"onGridReady($event)\"\n [pagination]=\"true\"\n [paginationPageSize]=\"gridPageSize\"\n [paginationNumberFormatter]=\"paginationNumberFormatter\"\n (modelUpdated)=\"onModelUpdated()\"\n [tooltipShowDelay]=\"tooltipShowDelay\"\n [tooltipHideDelay]=\"tooltipHideDelay\"\n [rowModelType]=\"rowModelType\"\n [cacheBlockSize]=\"cacheBlockSize\"\n [maxConcurrentDatasourceRequests]=\"1\"\n [blockLoadDebounceMillis]=\"100\"\n (columnVisible)=\"onSaveGridColumnState($event)\"\n (columnPinned)=\"onSaveGridColumnState($event)\"\n (columnResized)=\"onSaveGridColumnState($event)\"\n (columnMoved)=\"onSaveGridColumnState($event)\"\n (sortChanged)=\"onSortChangedEvent()\"\n >\n </ag-grid-angular>\n `,\n styles: [],\n})\nexport class GridLibraryComponent implements OnInit {\n //input params\n @Input() columnDefs: any;\n @Input() rowData: any;\n @Input() pageSize: number = 20;\n @Input() rowSelection: any = 'multiple';\n @Input() gridId: any;\n @Input() loggedInUser: any;\n @Input() enableServerSidePaging: boolean = false;\n @Input() serverDataUrl!: string;\n @Input() environment!: string;\n @Input() cacheBlockSize: number = 0;\n //event emitters\n @Output() btnClickHandler = new EventEmitter<any>();\n\n //viewChilds\n @ViewChild(AgGridAngular) agGrid!: AgGridAngular;\n\n //paramters\n gridColumnState: any;\n public tooltipShowDelay = 0;\n public tooltipHideDelay = 2000;\n public rowModelType: RowModelType = 'clientSide';\n public gridPageSize: number = 0;\n\n constructor(\n private gridService: GridLibraryService,\n private datePipe: DatePipe\n ) {}\n\n onSortChangedEvent() {\n this.gridColumnState = this.agGrid.columnApi.getColumnState();\n }\n\n public defaultColDef: ColDef = {\n sortable: true,\n filter: true,\n tooltipComponent: CustomTooltip,\n };\n\n ngOnInit() {\n this.gridPageSize = this.pageSize;\n this.cacheBlockSize = this.cacheBlockSize = 0\n ? this.pageSize\n : this.cacheBlockSize;\n this.gridService.setBaseUrl(this.environment);\n this.getGridState();\n this.getColDef();\n if (this.enableServerSidePaging == true) {\n this.rowModelType = 'serverSide';\n this.rowData = '';\n } else {\n this.rowModelType = 'clientSide';\n }\n }\n\n public paginationNumberFormatter: (\n params: PaginationNumberFormatterParams\n ) => string = (params: PaginationNumberFormatterParams) => {\n return '[' + params.value.toLocaleString() + ']';\n };\n\n onModelUpdated() {\n this.setGridState();\n }\n\n getColDef() {\n if (this.gridId && this.loggedInUser) {\n this.gridService.getColDef(this.gridId).subscribe((response: any) => {\n if (response.status == 1) {\n let coldef: ColDef[] = response.list.map((res: any) => {\n if (res.isButton === false) {\n return {\n field: res.field,\n headerName: res.title,\n resizable: true,\n hide: !res.visible,\n sortable: true,\n tooltipField: res.field,\n valueFormatter: this.colValueFormatter.bind(this),\n filterable: res.filterable,\n filter:\n res.columnType == 'string'\n ? 'agTextColumnFilter'\n : res.columnType == 'number'\n ? 'agNumberColumnFilter'\n : 'agDateColumnFilter',\n filterParams: {\n comparator: (\n filterLocalDateAtMidnight: any,\n cellValue: any\n ) => {\n const dateAsString = cellValue;\n\n if (dateAsString == null) {\n return 0;\n }\n if (res.columnType == 'date') {\n const cellDate = new Date(dateAsString);\n if (cellDate < filterLocalDateAtMidnight) {\n return -1;\n } else if (cellDate > filterLocalDateAtMidnight) {\n return 1;\n }\n }\n return 0;\n },\n },\n };\n } else {\n return {\n field: res.field,\n headerName: res.title,\n resizable: true,\n sortable: false,\n hide: !res.visible,\n suppressFilter: true,\n suppressSorting: true,\n suppressMenu: true,\n tooltipField: res.field,\n cellRenderer: ButtonRendererComponent,\n cellRendererParams: {\n onClick: this.onBtnClick.bind(this),\n label: res.label,\n icon: res.icon,\n buttonName: res.buttonName,\n tooltip: res.tooltip,\n },\n valueGetter: (params: any) => {\n return res.tooltip || res.title;\n },\n minWidth: 40,\n cellClass: 'action-button',\n pinned: 'left',\n lockPinned: true,\n };\n }\n });\n this.columnDefs = coldef;\n this.agGrid.gridOptions?.api?.setColumnDefs(coldef);\n this.getGridState();\n } else {\n console.log('ColDef Read Error=>', response.message);\n }\n });\n } else {\n console.log('Please pass valid GridId and loggedIn user Id');\n }\n }\n\n setExternalFilters(options: any) {\n if (\n this.serverDataUrl.indexOf('filter') >= 0 &&\n options.indexOf('filter') >= 0\n ) {\n let slug = this.serverDataUrl.split('?$filter=');\n if (slug && slug.length>0) {\n options += options + ' & ' + slug[1];\n this.serverDataUrl=slug[0];\n }\n }\n else if(this.serverDataUrl.indexOf('?')>=0){\n options=options.replace('?','&');\n }\n return `${this.serverDataUrl}${options}`;\n }\n onGridReady(params: GridReadyEvent) {\n this.gridPageSize = this.pageSize;\n if (this.enableServerSidePaging == true) {\n params.api.setServerSideDatasource(\n new OdataServerSideProvider({\n isCaseSensitiveStringFilter: false,\n callApi: (options) =>\n fetch(\n `${this.setExternalFilters(options)}`,\n {\n headers: {\n 'Content-type': 'application/json',\n Accept: 'application/json',\n },\n }\n ).then((response) => response.json()),\n })\n );\n }\n }\n\n setGridState() {\n if (this.gridColumnState) {\n this.agGrid.columnApi.applyColumnState({\n state: this.gridColumnState,\n applyOrder: true,\n });\n } else {\n var columns = this.agGrid.columnApi.getColumns();\n if (columns && columns.length > 10) {\n this.agGrid.columnApi.autoSizeAllColumns();\n } else {\n this.agGrid.api.sizeColumnsToFit();\n }\n }\n }\n\n getGridState() {\n if (this.gridId && this.loggedInUser) {\n this.gridService\n .getGridState(this.gridId, this.loggedInUser)\n .subscribe((response: any) => {\n if (\n response.status == 1 &&\n response.object &&\n response.object.gridConfig\n ) {\n this.gridColumnState = JSON.parse(response.object.gridConfig);\n this.setGridState();\n } else {\n console.log('Error while loading grid state');\n }\n });\n }\n }\n\n onBtnClick(e: any) {\n this.btnClickHandler.emit(e.rowData);\n }\n\n onSaveGridColumnState(event: any) {\n let columnState = this.agGrid.columnApi?.getColumnState();\n let columnData = {\n gridConfig: JSON.stringify(columnState),\n uiGridId: this.gridId,\n userId: this.loggedInUser,\n };\n if (event.finished == true || event.type === 'columnPinned') {\n this.gridColumnState = columnState;\n this.gridService.saveColumnConfig(columnData).subscribe((res: any) => {\n this.setGridState();\n if (res.status == 0) {\n console.log('Error while saving column configuration:', res.message);\n }\n });\n }\n }\n\n getRowById: GetRowIdFunc = (params: GetRowIdParams) => {\n var data = params.data;\n return data.id ?? 0;\n };\n\n colValueFormatter(params: ValueFormatterParams) {\n if (isNaN(+params.value)) {\n var dateWrapper = new Date(params.value);\n let isValidDate = !isNaN(dateWrapper.getDate());\n if (isValidDate) {\n return this.datePipe.transform(params.value, 'MM-dd-yyyy');\n } else {\n return params.value;\n }\n }\n return params.value;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { AgGridModule } from 'ag-grid-angular';\nimport {LicenseManager} from \"ag-grid-enterprise\";\nimport 'ag-grid-enterprise';\nLicenseManager.setLicenseKey(\"CompanyName=Basesite,LicensedGroup=Basesite,LicenseType=MultipleApplications,LicensedConcurrentDeveloperCount=2,LicensedProductionInstancesCount=2,AssetReference=AG-028469,ExpiryDate=19_May_2023_[v2]_MTY4NDQ1MDgwMDAwMA==ed6f437ea331cf602f669128db7b5387\");\nimport { HttpClientModule } from \"@angular/common/http\";\nimport { ButtonRendererComponent } from './renderer/button-renderer/button-renderer.component';\nimport { CommonModule, DatePipe } from '@angular/common';\nimport { CustomTooltip } from './renderer/tooltip-renderer/custom-tooltip-renderer';\nimport { GridLibraryComponent } from './grid-library.component';\n\n@NgModule({\n declarations: [\n GridLibraryComponent,\n ButtonRendererComponent,\n CustomTooltip\n ],\n imports: [\n AgGridModule,\n HttpClientModule,\n CommonModule,\n ],\n exports: [\n GridLibraryComponent\n ],\n providers: [DatePipe]\n})\nexport class GridLibraryModule { }\n","/*\n * Public API Surface of basesite-shared-grid-lib\n */\n\nexport * from './lib/grid-library.service';\nexport * from './lib/grid-library.component';\nexport * from './lib/grid-library.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i1.GridLibraryService","i2"],"mappings":"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"}
1
+ {"version":3,"file":"basesite-shared-grid-lib.mjs","sources":["../../../projects/basesite-shared-grid-lib/src/lib/grid-library.service.ts","../../../projects/basesite-shared-grid-lib/src/lib/helpers/utils.ts","../../../projects/basesite-shared-grid-lib/src/lib/helpers/oDataProvider.ts","../../../projects/basesite-shared-grid-lib/src/lib/renderer/button-renderer/button-renderer.component.ts","../../../projects/basesite-shared-grid-lib/src/lib/renderer/tooltip-renderer/custom-tooltip-renderer.ts","../../../projects/basesite-shared-grid-lib/src/lib/grid-library.component.ts","../../../projects/basesite-shared-grid-lib/src/lib/grid-library.module.ts","../../../projects/basesite-shared-grid-lib/src/public-api.ts","../../../projects/basesite-shared-grid-lib/src/basesite-shared-grid-lib.ts"],"sourcesContent":["import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class GridLibraryService {\n private baseUrl:any='https://localhost:8075/api';\n constructor(private httpClient: HttpClient) {\n } \n\n setBaseUrl(environment:any){\n if(environment==='test'){\n this.baseUrl='https://fcesharedgridtest.intel.com/api'\n }\n else if(environment=='uat'){\n this.baseUrl='https://fcesharedgridtest.intel.com/api'\n }\n else if(environment=='production'){\n this.baseUrl='https://fcesharedgridtest.intel.com/api'\n }\n else{\n this.baseUrl='https://localhost:8075/api'\n }\n }\n\n getColDef(gridId: any): Observable<any> {\n return this.httpClient.get<any>(\n `${this.baseUrl}/GridConfiguration/${gridId}`\n );\n }\n\n saveColumnConfig(columnConfig:any){\n return this.httpClient.post<any>(\n `${this.baseUrl}/GridConfiguration/saveUIUserGridConfiguration`,columnConfig\n );\n }\n\n getGridState(gridId:number,loggedInUserId:number){\n return this.httpClient.get<any>(\n `${this.baseUrl}/GridConfiguration?gridId=${gridId}&userId=${loggedInUserId}`\n );\n }\n}\n","export function escapeRegExp(string:any) {\r\n return string.replace(/[.*+\\-?^${}()|[\\]\\\\]/g, \"\\\\$&\"); // $& means the whole matched string\r\n }\r\n \r\n export function replaceAll(str: string, search: string, replacement: string): string {\r\n return str.replace(new RegExp(escapeRegExp(search), \"g\"), replacement);\r\n }","import {\r\n IGetRowsParams,\r\n ColDef,\r\n ColGroupDef,\r\n ColumnVO,\r\n IServerSideGetRowsRequest,\r\n IServerSideGetRowsParams,\r\n } from 'ag-grid-community'\r\n \r\n import {\r\n OdataQueryExtendFull,\r\n OdataQueryExtendOptions,\r\n OdataQueryOptions,\r\n PivotResultDat,\r\n } from './types'\r\n \r\n import { replaceAll } from './utils'\r\n export declare class OdataProviderOptions {\r\n /**\r\n * Function for call odata api\r\n */\r\n callApi: (query: string) => Promise<any>\r\n /**\r\n * Name of field contain count of record results in grouping odata query\r\n * @default childCount\r\n */\r\n groupCountFieldName?: string\r\n /**\r\n * Use in odata build query\r\n * @default false\r\n */\r\n isCaseSensitiveStringFilter?: boolean\r\n /**\r\n * Callback for extend odata query options for implement user logic\r\n */\r\n beforeRequest?: (\r\n options: OdataQueryOptions,\r\n provider: OdataProvider,\r\n request: IGetRowsParams | IServerSideGetRowsRequest\r\n ) => void\r\n /**\r\n * Callback for pivot or group for aplly column ag-grid settings\r\n * @example\r\n * <pre><code>\r\n * beforeSetSecondaryColumns = secondaryColumns => {\r\n for (let i = 0; i < secondaryColumns.length; i++) {\r\n const col = secondaryColumns[i]\r\n if (col.children) {\r\n beforeSetSecondaryColumns(col.children)\r\n } else {\r\n //Aplly new setting for group dyncamic created column\r\n // col.cellClassRules = \r\n // col.valueFormatter = \r\n }\r\n }\r\n }\r\n * </pre></code>\r\n */\r\n beforeSetSecondaryColumns?: (\r\n secondaryColDefs: (ColDef | ColGroupDef)[]\r\n ) => void\r\n /**\r\n * Callback invoked after load data\r\n * @param options odata provider options\r\n * @param rowData data for ag-grid\r\n * @param totalCount total count records\r\n * \r\n * @example\r\n * <pre><code>\r\n afterLoadData = (options, rowData, totalCount) => {\r\n if (options.skip === 0 && rowData.length > 0) {\r\n gridApi.columnController.autoSizeAllColumns()\r\n }\r\n }\r\n * </code></pre>\r\n */\r\n afterLoadData?: (\r\n options: OdataQueryExtendOptions,\r\n rowData: any[],\r\n totalCount: number\r\n ) => void\r\n /**\r\n * Callback for catch error\r\n */\r\n setError?: (\r\n error: any,\r\n params: IGetRowsParams | IServerSideGetRowsParams\r\n ) => void\r\n /**\r\n * List of columns by id/field are case sensitive for build odata query\r\n */\r\n caseSensitiveColumns?: string[]\r\n /**\r\n * Use for specified column custom filter implementation\r\n * <pre><code>\r\n customFilters: {\r\n \"customer\": (colName,col,isCaseSensitiveStringFilter,provider) =>{\r\n return provider.odataOperator.in(\r\n colName,\r\n col.values\r\n )\r\n }\r\n }\r\n */\r\n customFilters?: {\r\n [index: string]: (\r\n colName: string,\r\n col: any,\r\n isCaseSensitiveStringFilter: boolean,\r\n provider: OdataProvider\r\n ) => string\r\n }\r\n }\r\n \r\n declare interface CancelablePromise {\r\n promise: Promise<any>\r\n cancel: () => void\r\n }\r\n export class OdataProvider implements OdataProviderOptions {\r\n /**\r\n * Function for call odata api\r\n */\r\n callApi!: (query: string) => Promise<any>\r\n /**\r\n * Name of field contain count of record results in grouping odata query\r\n * @default childCount\r\n */\r\n groupCountFieldName: string = 'childCount'\r\n /**\r\n * Use in odata build query\r\n * @default false\r\n */\r\n isCaseSensitiveStringFilter: boolean = false\r\n /**\r\n * Callback for extend odata query options for implement user logic\r\n */\r\n beforeRequest: ((\r\n options: OdataQueryOptions,\r\n provider: OdataProvider,\r\n request: IGetRowsParams | IServerSideGetRowsRequest\r\n ) => void) | undefined\r\n /**\r\n * Callback for pivot or group for aplly column ag-grid settings\r\n * @example\r\n * <pre><code>\r\n * beforeSetSecondaryColumns = secondaryColumns => {\r\n for (let i = 0; i < secondaryColumns.length; i++) {\r\n const col = secondaryColumns[i]\r\n if (col.children) {\r\n beforeSetSecondaryColumns(col.children)\r\n } else {\r\n //Aplly new setting for group dyncamic created column\r\n // col.cellClassRules = \r\n // col.valueFormatter = \r\n }\r\n }\r\n }\r\n * </pre></code>\r\n */\r\n beforeSetSecondaryColumns: ((\r\n secondaryColDefs: (ColDef | ColGroupDef)[]\r\n ) => void) | undefined\r\n /**\r\n * Callback invoked after load data\r\n * @param options odata provider options\r\n * @param rowData data for ag-grid\r\n * @param totalCount total count records\r\n * \r\n * @example\r\n * <pre><code>\r\n afterLoadData = (options, rowData, totalCount) => {\r\n if (options.skip === 0 && rowData.length > 0) {\r\n gridApi.columnController.autoSizeAllColumns()\r\n }\r\n }\r\n * </code></pre>\r\n */\r\n afterLoadData: ((\r\n options: OdataQueryExtendOptions,\r\n rowData: any[],\r\n totalCount: number\r\n ) => void) | undefined\r\n /**\r\n * Callback for catch error\r\n */\r\n setError: ((\r\n error: any,\r\n params: IGetRowsParams | IServerSideGetRowsParams\r\n ) => void) | undefined\r\n /**\r\n * List of columns by id/field are case sensitive for build odata query\r\n */\r\n caseSensitiveColumns?: string[]\r\n /**\r\n * Use for specified column custom filter implementation\r\n * <pre><code>\r\n customFilters: {\r\n \"customer\": (colName,col,isCaseSensitiveStringFilter,provider) =>{\r\n return provider.odataOperator.in(\r\n colName,\r\n col.values\r\n )\r\n }\r\n }\r\n */\r\n customFilters?: {\r\n [index: string]: (\r\n colName: string,\r\n col: any,\r\n isCaseSensitiveStringFilter: boolean,\r\n provider: OdataProvider\r\n ) => string\r\n }\r\n cancelPromice: CancelablePromise\r\n constructor(options: OdataProviderOptions) {\r\n Object.assign(this, options);\r\n if (this.callApi == null) {\r\n throw new Error('callApi must be specified')\r\n }\r\n if (typeof this.callApi !== 'function') {\r\n throw new Error('callApi must be a function')\r\n }\r\n if (\r\n this.beforeRequest != null &&\r\n typeof this.beforeRequest !== 'function'\r\n ) {\r\n throw new Error('beforeRequest must be a function')\r\n }\r\n if (\r\n this.afterLoadData != null &&\r\n typeof this.afterLoadData !== 'function'\r\n ) {\r\n throw new Error('afterLoadData must be a function')\r\n }\r\n if (this.setError != null && typeof this.setError !== 'function') {\r\n throw new Error('setError must be a function')\r\n }\r\n this.cancelPromice = this.createCancelablePromise()\r\n }\r\n \r\n /**Creator a cancelable Promise */\r\n createCancelablePromise = (): CancelablePromise => {\r\n let cancel:any\r\n const pr = new Promise((_, reject) => {\r\n cancel = reject\r\n }).catch(() => {})\r\n return {\r\n promise: pr,\r\n cancel,\r\n }\r\n }\r\n /**Odata query operations */\r\n odataOperator:any = {\r\n // Logical\r\n equals: (col: string, value1: string): string => `${col} eq ${value1}`,\r\n notEqual: (col: string, value1: string): string => `${col} ne ${value1}`,\r\n lessThan: (col: string, value1: string): string => `${col} lt ${value1}`,\r\n lessThanOrEqual: (col: string, value1: string): string =>\r\n `${col} le ${value1}`,\r\n greaterThan: (col: string, value1: string): string => `${col} gt ${value1}`,\r\n greaterThanOrEqual: (col: string, value1: string): string =>\r\n `${col} ge ${value1}`,\r\n inRange: (col: string, value1: string, value2: any): string =>\r\n `(${col} ge ${value1} and ${col} le ${value2})`,\r\n // String\r\n equalsStr: (\r\n col: string,\r\n value1: string,\r\n isCaseSensitiveStringFilter: boolean\r\n ): string =>\r\n `${this.ifTolowerCol(\r\n col,\r\n isCaseSensitiveStringFilter\r\n )} eq ${this.ifTolower(value1, isCaseSensitiveStringFilter)}`,\r\n notEqualStr: (\r\n col: string,\r\n value1: string,\r\n isCaseSensitiveStringFilter: boolean\r\n ): string =>\r\n `${this.ifTolowerCol(\r\n col,\r\n isCaseSensitiveStringFilter\r\n )} ne ${this.ifTolower(value1, isCaseSensitiveStringFilter)}`,\r\n contains: (\r\n col: string,\r\n value1: string,\r\n isCaseSensitiveStringFilter: boolean\r\n ): string =>\r\n `contains(${this.ifTolowerCol(\r\n col,\r\n isCaseSensitiveStringFilter\r\n )},${this.ifTolower(value1, isCaseSensitiveStringFilter)})`,\r\n notContains: (\r\n col: string,\r\n value1: string,\r\n isCaseSensitiveStringFilter: boolean\r\n ): string =>\r\n `contains(${this.ifTolowerCol(\r\n col,\r\n isCaseSensitiveStringFilter\r\n )},${this.ifTolower(value1, isCaseSensitiveStringFilter)}) eq false`,\r\n startsWith: (\r\n col: string,\r\n value1: string,\r\n isCaseSensitiveStringFilter: boolean\r\n ): string =>\r\n `startswith(${this.ifTolowerCol(\r\n col,\r\n isCaseSensitiveStringFilter\r\n )},${this.ifTolower(value1, isCaseSensitiveStringFilter)}) eq true`,\r\n endsWith: (\r\n col: string,\r\n value1: string,\r\n isCaseSensitiveStringFilter: boolean\r\n ): string =>\r\n `endswith(${this.ifTolowerCol(\r\n col,\r\n isCaseSensitiveStringFilter\r\n )},${this.ifTolower(value1, isCaseSensitiveStringFilter)}) eq true`,\r\n inStr: (\r\n col: string,\r\n values: string[],\r\n isCaseSensitiveStringFilter: boolean\r\n ): string =>\r\n `${this.ifTolowerCol(col, isCaseSensitiveStringFilter)} in (${values\r\n .map(\r\n (x) =>\r\n `'${this.ifTolower(this.encode(x), isCaseSensitiveStringFilter)}'`\r\n )\r\n .join()})`,\r\n in: (col: string, values: string[]) =>\r\n `${col} in (${values.map((x) => `${this.encode(x)}`).join()})`,\r\n notIn: (col: string, values: string[]) =>\r\n `not (${col} in (${values.map((x) => `${x}`).join()}))`,\r\n // Date\r\n trunc: (col: string): string => `date(${col})`,\r\n }\r\n \r\n /**\r\n * Apply tolower for column in odata syntax\r\n * @param col column name\r\n * @param isCaseSensitiveStringFilter need apply tolower\r\n */\r\n ifTolowerCol = (col: string, isCaseSensitiveStringFilter: boolean): string =>\r\n isCaseSensitiveStringFilter ? col : `tolower(${col})`\r\n \r\n /**\r\n *\r\n * @param value string value\r\n * @param isCaseSensitiveStringFilter need apply tolower\r\n */\r\n ifTolower = (value: string, isCaseSensitiveStringFilter: boolean): string =>\r\n isCaseSensitiveStringFilter ? value : value ? value.toLowerCase() : value\r\n /**\r\n * Odata aggregation operations\r\n */\r\n odataAggregation:any = {\r\n // Logical\r\n sum: (col: string, asField?: any): string =>\r\n `${col} with sum as ${col || asField}`,\r\n min: (col: string, asField?: any): string =>\r\n `${col} with min as ${col || asField}`,\r\n max: (col: string, asField?: any): string =>\r\n `${col} with max as ${col || asField}`,\r\n avg: (col: string, asField?: any): string =>\r\n `${col} with average as ${col || asField}`,\r\n count: (col: string, asField?: any): string =>\r\n `$count as ${col || asField}`,\r\n }\r\n /**\r\n * Odata query builder\r\n * @param options parameter for odata query\r\n */\r\n toQuery = (options: OdataQueryExtendFull): string => {\r\n let path: string[] = []\r\n if (options) {\r\n path.push('$count=true')\r\n }\r\n if (options.skip) {\r\n path.push(`$skip=${options.skip}`)\r\n }\r\n if (options.top) {\r\n path.push(`$top=${options.top}`)\r\n }\r\n if (options.sort && options.sort.length > 0) {\r\n path.push('$orderby=' + options.sort.join(','))\r\n }\r\n if (options.filter && options.filter.length > 0) {\r\n path.push('$filter=' + options.filter.join(' and '))\r\n }\r\n if (options.apply && options.apply.length > 0) {\r\n path.push('$apply=' + options.apply.join('/'))\r\n }\r\n if (options.expand && options.expand.length > 0) {\r\n path.push('$expand=' + options.expand.join(','))\r\n }\r\n if (options.select && options.select.length > 0) {\r\n path.push('$select=' + options.select.join(','))\r\n }\r\n let query: string = ''\r\n if (path.length > 0) {\r\n query = '?' + path.join('&')\r\n }\r\n return query\r\n }\r\n /**\r\n * Add quotes for string value\r\n * @param value string value\r\n */\r\n encode = (value: string): string =>\r\n this.isStrVal(value) ? replaceAll(value, \"'\", \"''\") : value\r\n /**\r\n * Conctat to date a time for create datetime format for odata query\r\n * @param value date string\r\n */\r\n toDateTime = (value: string): string | null => {\r\n const dt = new Date(value)\r\n if (isNaN(dt.getTime())) return null\r\n const dt1 = new Date(\r\n Date.UTC(dt.getFullYear(), dt.getMonth(), dt.getDate())\r\n )\r\n return dt1.toISOString()\r\n }\r\n /**\r\n *\r\n * @param colName columnName\r\n * @returns is CaseSensitive for column\r\n */\r\n private getIsNeedCaseSensitive = (colName: string) => {\r\n if (\r\n !this.isCaseSensitiveStringFilter &&\r\n this.caseSensitiveColumns &&\r\n this.caseSensitiveColumns.length > 0\r\n ) {\r\n return this.caseSensitiveColumns.indexOf(colName) >= 0\r\n }\r\n return this.isCaseSensitiveStringFilter\r\n }\r\n /**\r\n * Convert ag-grid column filter to odata query\r\n * @param colName columnName\r\n * @param col ag-grid column\r\n */\r\n private getFilterOdata = (colName: string, col: any): string => {\r\n const me = this\r\n const isCaseSensitiveStringFilter = me.getIsNeedCaseSensitive(colName)\r\n const customFilter = me.customFilters && me.customFilters[colName]\r\n colName = replaceAll(colName, '.', '/')\r\n colName = me.getWrapColumnName(colName)\r\n if (customFilter) {\r\n return customFilter(colName, col, isCaseSensitiveStringFilter, me)\r\n } else {\r\n switch (col.filterType) {\r\n case 'number':\r\n return me.odataOperator[col.type](colName, col.filter, col.filterTo)\r\n case 'text': {\r\n let operatorName = col.type\r\n const filter = me.encode(col.filter)\r\n // let filterTo = me.encode(col.filterTo);\r\n if (\r\n (operatorName === 'equals' || operatorName === 'notEqual') &&\r\n !isCaseSensitiveStringFilter\r\n ) {\r\n operatorName += 'Str'\r\n }\r\n return me.odataOperator[operatorName](\r\n colName,\r\n `'${filter}'`,\r\n isCaseSensitiveStringFilter\r\n )\r\n }\r\n case 'date':\r\n if (\r\n col.dateFrom != null &&\r\n me.toDateTime(col.dateFrom) != null &&\r\n (col.dateTo == null ||\r\n (col.dateTo != null && me.toDateTime(col.dateTo) != null))\r\n ) {\r\n return me.odataOperator[col.type](\r\n colName,\r\n `${me.toDateTime(col.dateFrom)}`,\r\n `${me.toDateTime(col.dateTo)}`\r\n )\r\n }\r\n break\r\n case 'set':\r\n return col.values.length > 0\r\n ? me.odataOperator.inStr(\r\n colName,\r\n col.values,\r\n isCaseSensitiveStringFilter\r\n )\r\n : ''\r\n default:\r\n break\r\n }\r\n }\r\n return ''\r\n }\r\n \r\n /**\r\n * Extract value from record by path to field\r\n * @param field path to column value\r\n * @param obj record\r\n */\r\n private getValue(field: string, obj: any): any {\r\n const paths = field.split('.')\r\n if (paths.length === 1) {\r\n return obj[field]\r\n } else {\r\n return paths.reduce((object, path) => {\r\n return (object || {})[path] // Oliver Steele's pattern\r\n }, obj)\r\n }\r\n }\r\n \r\n /**\r\n * Caclulate pivot data for ag-grid from odata\r\n * @param pivotCols pivot columns\r\n * @param rowGroupCols row group columns\r\n * @param valueCols value columns\r\n * @param data odata result\r\n * @param countField count field name\r\n */\r\n private getPivot = (\r\n pivotCols: ColumnVO[],\r\n rowGroupCols: ColumnVO[],\r\n valueCols: ColumnVO[],\r\n data: any[],\r\n countField: string\r\n ): PivotResultDat => {\r\n // assume 1 pivot col and 1 value col for this example\r\n const me = this\r\n const pivotData: any[] = []\r\n const aggColsList: any[] = []\r\n \r\n const colKeyExistsMap: any = {}\r\n \r\n const secondaryColDefs: any[] = []\r\n const secondaryColDefsMap:any = {}\r\n \r\n data.forEach(function (item) {\r\n var pivotValues: string[] = []\r\n pivotCols.forEach(function (pivotCol) {\r\n var pivotField = pivotCol.id\r\n var pivotValue = me.getValue(pivotField, item)\r\n if (\r\n pivotValue !== null &&\r\n pivotValue !== undefined &&\r\n pivotValue.toString\r\n ) {\r\n pivotValues.push(pivotValue.toString())\r\n } else {\r\n pivotValues.push('-')\r\n }\r\n })\r\n \r\n // var pivotValue = item[pivotField].toString();\r\n var pivotItem:any = {}\r\n \r\n valueCols.forEach(function (valueCol) {\r\n var valField = valueCol.id\r\n var colKey = createColKey(pivotValues, valField)\r\n \r\n var value = me.getValue(valField, item)\r\n pivotItem[colKey] = value\r\n \r\n if (!colKeyExistsMap[colKey]) {\r\n addNewAggCol(colKey, valueCol)\r\n addNewSecondaryColDef(colKey, pivotValues, valueCol)\r\n colKeyExistsMap[colKey] = true\r\n }\r\n })\r\n if (countField) {\r\n pivotItem[countField] = me.getValue(countField, item)\r\n }\r\n \r\n rowGroupCols.forEach(function (rowGroupCol) {\r\n var rowGroupField = rowGroupCol.id.split('.')[0]\r\n pivotItem[rowGroupField] = item[rowGroupField]\r\n })\r\n \r\n pivotData.push(pivotItem)\r\n })\r\n \r\n function addNewAggCol(colKey: string, valueCol: ColumnVO): void {\r\n var newCol = {\r\n id: colKey,\r\n field: colKey,\r\n aggFunc: valueCol.aggFunc,\r\n }\r\n aggColsList.push(newCol)\r\n }\r\n \r\n function addNewSecondaryColDef(colKey:any, pivotValues:any, valueCol:any) {\r\n var parentGroup: any = null\r\n \r\n var keyParts: any = []\r\n \r\n pivotValues.forEach(function (pivotValue: any) {\r\n keyParts.push(pivotValue)\r\n var colKey = createColKey(keyParts)\r\n var groupColDef: any = secondaryColDefsMap[colKey]\r\n if (!groupColDef) {\r\n groupColDef = {\r\n groupId: colKey,\r\n headerName: pivotValue,\r\n children: [],\r\n }\r\n secondaryColDefsMap[colKey] = groupColDef\r\n if (parentGroup) {\r\n parentGroup.children.push(groupColDef)\r\n } else {\r\n secondaryColDefs.push(groupColDef)\r\n }\r\n }\r\n parentGroup = groupColDef\r\n })\r\n \r\n parentGroup.children.push({\r\n colId: colKey,\r\n headerName: valueCol.aggFunc + '(' + valueCol.displayName + ')',\r\n field: colKey,\r\n suppressMenu: true,\r\n sortable: false,\r\n })\r\n }\r\n \r\n function createColKey(pivotValues: string[], valueField?: string): string {\r\n var result = pivotValues.join('|')\r\n if (valueField !== undefined) {\r\n result += '|' + valueField\r\n }\r\n result = replaceAll(result, '.', '*')\r\n return result\r\n }\r\n \r\n return {\r\n data: pivotData,\r\n aggCols: aggColsList,\r\n secondaryColDefs: secondaryColDefs,\r\n }\r\n }\r\n \r\n /**\r\n *\r\n * @param rowData array odata result\r\n * @param rowGroupCols row group columns\r\n * @param groupKeys what groups the user is viewing\r\n * @param countField count field name\r\n */\r\n private buildGroupsFromData = (\r\n rowData: any[],\r\n rowGroupCols: ColumnVO[],\r\n groupKeys: string[],\r\n countField: string\r\n ): any[] => {\r\n const me = this\r\n let rowGroupCol = rowGroupCols[groupKeys.length]\r\n let field = rowGroupCol.id\r\n let mappedRowData = me.groupBy(rowData, field)\r\n let groups: any = []\r\n \r\n me.iterateObject(mappedRowData, function (key, rowData) {\r\n var groupItem = me.aggregateList(rowData, countField)\r\n groupItem[field] = key\r\n groups.push(groupItem)\r\n })\r\n return groups\r\n }\r\n \r\n /**\r\n * Internal function for execute callback function for each property of object\r\n * @param object object contained odata grouped result\r\n * @param callback function do somthing\r\n */\r\n private iterateObject = (\r\n object: any,\r\n callback: (key: string, rowData: any[]) => void\r\n ): void => {\r\n if (!object) {\r\n return\r\n }\r\n const keys = Object.keys(object)\r\n for (let i = 0; i < keys.length; i++) {\r\n const key = keys[i]\r\n const value = object[key]\r\n callback(key, value)\r\n }\r\n }\r\n \r\n /**\r\n * Prepeare grouped data\r\n * @param rowData array odata result\r\n * @param field grouping field\r\n */\r\n private groupBy = (rowData: any[], field: string): any => {\r\n var result:any = {}\r\n const me = this\r\n rowData.forEach(function (item) {\r\n var key = me.getValue(field, item)\r\n var listForThisKey = result[key]\r\n if (!listForThisKey) {\r\n listForThisKey = []\r\n result[key] = listForThisKey\r\n }\r\n listForThisKey.push(item)\r\n })\r\n return result\r\n }\r\n \r\n /**\r\n * Calculate total count records in group\r\n * @param rowData array odata result data\r\n * @param countField field contained count of all records\r\n */\r\n private aggregateList = (rowData: any[], countField: string): any => {\r\n var result:any = {}\r\n rowData.forEach((row) => {\r\n if (countField && row[countField] != null) {\r\n const totalCount = (result[countField] || 0) + (row[countField] || 0)\r\n delete row[countField]\r\n result[countField] = totalCount\r\n }\r\n result = Object.assign(result, row)\r\n })\r\n return result\r\n }\r\n \r\n /**\r\n * Calculate distinct values for input field from Odata api\r\n * @param field The field of the row to get the cells data from \r\n * @param callback The function for return distinct values for input field\r\n * @param beforeRequest The function for customize request\r\n * @example \r\n * <pre><code>\r\n * const setFilterValuesFuncParams = params => {\r\n * const me = this\r\n * const col = params.colDef.field\r\n * const storeName = me.getStoreName(col)\r\n * const callback = data => {\r\n * if (data) {\r\n * me.setState({ [storeName]: data })\r\n * params.success(data)\r\n * }\r\n * }\r\n * odataProviderInstance.getFilterValuesParams(params.colDef.field, callback)\r\n * }\r\n * \r\n * ///....\r\n * <AgGridColumn\r\n field=\"product\"\r\n headerName={'PRODUCT'}\r\n filter=\"agSetColumnFilter\"\r\n // rowGroup\r\n // enablePivot\r\n enableRowGroup\r\n filterParams={{\r\n values: setFilterValuesFuncParams,\r\n newRowsAction: 'keep'\r\n }}\r\n // filterParams={{caseSensitive: true}}\r\n />\r\n * </code></pre>\r\n */\r\n getFilterValuesParams = (\r\n field: string,\r\n callback: (data: any[]) => void,\r\n beforeRequest: (options: OdataQueryExtendFull) => void | undefined\r\n ): void => {\r\n const me = this\r\n const options: OdataQueryExtendFull = {\r\n apply: [`groupby((${me.getWrapColumnName(field)}))`],\r\n }\r\n if (beforeRequest) {\r\n beforeRequest(options)\r\n }\r\n me.callApi(me.toQuery(options)).then((x) => {\r\n if (x) {\r\n let values = me.getOdataResult(x)\r\n callback(values.map((y:any) => y[field]))\r\n }\r\n })\r\n }\r\n /**\r\n * Detect is string value\r\n * @param value\r\n */\r\n isStrVal = (value: any): boolean => typeof value === 'string'\r\n /**\r\n * Extartc values from odata response\r\n * @param response\r\n */\r\n private getOdataResult = (response: any): any =>\r\n Array.isArray(response) ? response : response.value\r\n /**\r\n * Endocing column name to odata notation\r\n * @param colName column name\r\n */\r\n private getWrapColumnName = (colName: string | undefined): string =>\r\n colName ? replaceAll(colName, '.', '/') : ''\r\n /**\r\n * grid calls this to get rows for IServerSideDatasource\r\n * @param params ag-grid details for the request\r\n */\r\n /**\r\n * grid calls this to get rows implement\r\n * @param params ag-grid details for the request\r\n */\r\n public getRows(params: IGetRowsParams | IServerSideGetRowsParams): void {\r\n const me = this\r\n const childCount = me.groupCountFieldName\r\n const isServerMode = 'request' in params\r\n const request = isServerMode\r\n ? (params as IServerSideGetRowsParams).request\r\n : (params as IGetRowsParams)\r\n const requestSrv = request as IServerSideGetRowsRequest\r\n \r\n const pivotActive = !isServerMode\r\n ? false\r\n : requestSrv.pivotMode &&\r\n requestSrv.pivotCols.length > 0 &&\r\n requestSrv.valueCols.length > 0\r\n \r\n if (!pivotActive) {\r\n let fn = (params as any).columnApi.setPivotResultColumns\r\n if (fn != null) {\r\n // if ((params as any).columnApi.isPivotMode()) {\r\n ;(params as any).columnApi.setPivotResultColumns([])\r\n // }\r\n } else {\r\n ;(params as any).columnApi.setSecondaryColumns([])\r\n }\r\n }\r\n const options = me.getOdataOptions(params)\r\n const query = me.toQuery(options)\r\n if (\r\n options.skip === 0 &&\r\n (!isServerMode ||\r\n (isServerMode &&\r\n (params as IServerSideGetRowsParams).parentNode.level === -1))\r\n ) {\r\n me.cancelPromice.cancel()\r\n me.cancelPromice = me.createCancelablePromise()\r\n }\r\n Promise.race([me.cancelPromice.promise, me.callApi(query)]).then(\r\n async (x) => {\r\n if (!x) {\r\n params.failCallback()\r\n } else {\r\n const values = me.getOdataResult(x)\r\n if (!pivotActive) {\r\n if (!options.apply) {\r\n me.setResult(params, isServerMode, values, x['@odata.count'] || x[0]?.totalCount)\r\n if (this.afterLoadData) {\r\n this.afterLoadData(options, values, x['@odata.count'] || x[0]?.totalCount)\r\n }\r\n } else {\r\n let count = values.length\r\n if (count === options.top && options.skip === 0) {\r\n // If received grouped count of value large than requested then request total count of values\r\n me.callApi(query + '/aggregate($count as count)').then((y) => {\r\n count = me.getOdataResult(y)[0].count\r\n me.setResult(params, isServerMode, values, count)\r\n })\r\n } else {\r\n if (options.skip != null && options.skip > 0) {\r\n count = null\r\n }\r\n me.setResult(params, isServerMode, values, count)\r\n if (this.afterLoadData) {\r\n this.afterLoadData(options, values, count)\r\n }\r\n }\r\n }\r\n } else {\r\n let rowData = me.getOdataResult(x)\r\n // Check count\r\n if (\r\n rowData.length === options.top &&\r\n options.skip === 0 &&\r\n requestSrv.groupKeys.length === 0\r\n ) {\r\n let eof = false\r\n while (!eof) {\r\n options.skip += options.top || 0\r\n const subQuery = me.toQuery(options)\r\n const newRowData = await me.callApi(subQuery)\r\n if (!newRowData) {\r\n params.failCallback()\r\n return\r\n }\r\n eof = newRowData.length !== options.top\r\n rowData = rowData.concat(newRowData)\r\n }\r\n }\r\n const pivotResult = me.getPivot(\r\n requestSrv.pivotCols,\r\n requestSrv.rowGroupCols,\r\n requestSrv.valueCols,\r\n rowData,\r\n childCount\r\n )\r\n rowData = pivotResult.data\r\n const secondaryColDefs = pivotResult.secondaryColDefs\r\n rowData = me.buildGroupsFromData(\r\n rowData,\r\n requestSrv.rowGroupCols,\r\n requestSrv.groupKeys,\r\n childCount\r\n )\r\n const totalCount =\r\n requestSrv.groupKeys.length === 0\r\n ? rowData.length\r\n : rowData.length === options.top\r\n ? null\r\n : rowData.length\r\n // if (totalCount > (options.top || 0)) {\r\n // const serverSideBlock = (params as any).parentNode.rowModel\r\n // .rowNodeBlockLoader.blocks[0];\r\n // serverSideBlock.rowNodeCacheParams.blockSize = totalCount;\r\n // serverSideBlock.endRow = serverSideBlock.startRow + totalCount;\r\n // serverSideBlock.createRowNodes();\r\n // }\r\n me.setResult(params, isServerMode, rowData, totalCount)\r\n if (this.afterLoadData) {\r\n this.afterLoadData(options, rowData, totalCount)\r\n }\r\n if (requestSrv.groupKeys.length === 0) {\r\n if (this.beforeSetSecondaryColumns) {\r\n this.beforeSetSecondaryColumns(secondaryColDefs)\r\n }\r\n let fn = (params as any).columnApi.setPivotResultColumns\r\n if (fn) {\r\n ;(params as any).columnApi.setPivotResultColumns(\r\n secondaryColDefs\r\n )\r\n } else {\r\n ;(params as any).columnApi.setSecondaryColumns(secondaryColDefs)\r\n }\r\n }\r\n }\r\n }\r\n },\r\n (err) => {\r\n me.setResult(params, isServerMode, [], 0)\r\n if (this.setError) {\r\n this.setError(err, params)\r\n }\r\n }\r\n )\r\n }\r\n /**\r\n * Set result\r\n * @param params ag-grid details for the request\r\n * @param isServerMode detect type of params\r\n * @param rowsThisBlock data of the request\r\n * @param rowCount count of total result\r\n */\r\n private setResult = (\r\n params: IGetRowsParams | IServerSideGetRowsParams,\r\n isServerMode: boolean,\r\n rowsThisBlock: any[],\r\n rowCount?: number\r\n ): void => {\r\n if (isServerMode) {\r\n ;(params as IServerSideGetRowsParams).success({\r\n rowData: rowsThisBlock,\r\n rowCount: rowCount,\r\n })\r\n } else {\r\n ;(params as IGetRowsParams).successCallback(rowsThisBlock, rowCount)\r\n }\r\n }\r\n /**\r\n * Generate odata options for build query from ag-grid request\r\n * @param params ag-grid details for the request\r\n */\r\n getOdataOptions = (\r\n params: IGetRowsParams | IServerSideGetRowsParams\r\n ): OdataQueryExtendFull => {\r\n const me = this\r\n const options: OdataQueryExtendFull = {}\r\n const isServerMode = 'request' in params\r\n const request = isServerMode\r\n ? (params as IServerSideGetRowsParams).request\r\n : (params as IGetRowsParams)\r\n const childCount = me.groupCountFieldName\r\n if (this.beforeRequest) {\r\n this.beforeRequest(options, this, request)\r\n }\r\n if (request.sortModel.length > 0) {\r\n const sort = options.sort || []\r\n for (let i = 0; i < request.sortModel.length; i++) {\r\n const col = request.sortModel[i]\r\n let colName = me.getWrapColumnName(col.colId)\r\n if (col.sort !== 'asc') {\r\n colName += ' desc'\r\n }\r\n sort.push(colName)\r\n }\r\n options.sort = sort\r\n }\r\n \r\n const filter = options.filter || []\r\n for (const colName in request.filterModel) {\r\n if (request.filterModel.hasOwnProperty(colName)) {\r\n const col = request.filterModel[colName]\r\n let colFilter = ''\r\n if (!col.operator) {\r\n colFilter = me.getFilterOdata(colName, col)\r\n if (colFilter) {\r\n filter.push(colFilter)\r\n }\r\n } else {\r\n const condition1 = me.getFilterOdata(colName, col.condition1)\r\n const condition2 = me.getFilterOdata(colName, col.condition2)\r\n if (condition1 && condition2) {\r\n colFilter = `(${condition1} ${col.operator.toLowerCase()} ${condition2})`\r\n filter.push(colFilter)\r\n }\r\n }\r\n }\r\n }\r\n \r\n let pivotActive = false\r\n \r\n const apply = options.apply || []\r\n if (isServerMode) {\r\n const requestSrv = request as IServerSideGetRowsRequest\r\n pivotActive =\r\n requestSrv.pivotMode &&\r\n requestSrv.pivotCols.length > 0 &&\r\n requestSrv.valueCols.length > 0\r\n if (requestSrv.rowGroupCols.length > 0) {\r\n const filterGroupBy: string[] = []\r\n if (requestSrv.groupKeys.length < requestSrv.rowGroupCols.length) {\r\n // If request only groups\r\n for (let idx = 0; idx < requestSrv.groupKeys.length; idx++) {\r\n const colValue = requestSrv.groupKeys[idx]\r\n const condition = `${me.getWrapColumnName(\r\n requestSrv.rowGroupCols[idx].field\r\n )} eq ${\r\n (me.isStrVal(colValue) ? \"'\" : '') +\r\n me.encode(colValue) +\r\n (me.isStrVal(colValue) ? \"'\" : '')\r\n }`\r\n filterGroupBy.push(condition)\r\n }\r\n if (filterGroupBy.length > 0 || filter.length > 0) {\r\n // Filters must by first\r\n apply.push(`filter(${filterGroupBy.concat(filter).join(' and ')})`)\r\n }\r\n \r\n const aggregate: string[] = []\r\n if (childCount) {\r\n aggregate.push(me.odataAggregation.count(childCount))\r\n }\r\n if (requestSrv.valueCols.length > 0) {\r\n for (let idx = 0; idx < requestSrv.valueCols.length; idx++) {\r\n const colValue = requestSrv.valueCols[idx]\r\n colValue.aggFunc &&\r\n aggregate.push(\r\n me.odataAggregation[colValue.aggFunc](\r\n me.getWrapColumnName(colValue.field)\r\n )\r\n )\r\n }\r\n }\r\n let groups = [\r\n me.getWrapColumnName(\r\n requestSrv.rowGroupCols[requestSrv.groupKeys.length].field\r\n ),\r\n ]\r\n const sort = options.sort || []\r\n const sortColOnly = sort.map((x) => x.split(' ')[0])\r\n if (pivotActive) {\r\n groups = groups.concat(\r\n requestSrv.pivotCols.map((x) => me.getWrapColumnName(x.field))\r\n )\r\n groups.forEach((x) => {\r\n if (sortColOnly.indexOf(x) < 0) {\r\n sort.push(x)\r\n }\r\n })\r\n }\r\n options.sort = sort\r\n apply.push(\r\n `groupby((${groups.join(',')})${\r\n aggregate.length > 0 ? `,aggregate(${aggregate.join(',')})` : ''\r\n })`\r\n )\r\n \r\n options.apply = apply\r\n if (options.sort && options.sort.length > 0) {\r\n options.sort = options.sort.filter(\r\n (x) => groups.indexOf(x.split(' ')[0]) >= 0\r\n )\r\n }\r\n // delete options.sort;\r\n } else {\r\n // If request rowData by group filter\r\n for (let idx = 0; idx < requestSrv.groupKeys.length; idx++) {\r\n const colValue = requestSrv.groupKeys[idx]\r\n const condition = `${me.getWrapColumnName(\r\n requestSrv.rowGroupCols[idx].field\r\n )} eq ${\r\n (me.isStrVal(colValue) ? \"'\" : '') +\r\n me.encode(colValue) +\r\n (me.isStrVal(colValue) ? \"'\" : '')\r\n }`\r\n filter.push(condition)\r\n }\r\n }\r\n }\r\n }\r\n if (filter.length > 0) {\r\n options.filter = filter\r\n }\r\n if (apply.length > 0) {\r\n options.apply = apply\r\n delete options.filter\r\n delete options.expand\r\n delete options.select\r\n // options.sort = null;\r\n }\r\n options.skip = request.startRow\r\n options.top = (request.endRow || 0) - (request.startRow || 0)\r\n \r\n if (!options.apply && options.skip === 0) {\r\n options.count = true\r\n }\r\n return options\r\n }\r\n /**\r\n * Generate odata query from ag-grid request\r\n * @param params ag-grid details for the request\r\n */\r\n getOdataQuery = (params: IGetRowsParams | IServerSideGetRowsParams): string =>\r\n this.toQuery(this.getOdataOptions(params))\r\n }\r\n \r\n export class OdataProviderClient extends OdataProvider {\r\n public override getRows(params: IServerSideGetRowsParams) {\r\n super.getRows(params)\r\n }\r\n }\r\n export class OdataServerSideProvider extends OdataProvider {\r\n public override getRows(params: IServerSideGetRowsParams): void {\r\n super.getRows(params)\r\n }\r\n }","import { Component } from '@angular/core';\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\n\n@Component({\n selector: 'lib-button-renderer',\n template: `\n <button class=\"btn-actions\" type=\"button\" (click)=\"onClick($event)\" [attr.data-title]=\"params.tooltip\">\n <span *ngIf=\"icon && !label\"> <i class=\"{{ icon }}\"></i> </span>\n <span *ngIf=\"!icon && label\">{{ label }}</span>\n <span *ngIf=\"icon && label\"><i class=\"{{ icon }}\"></i> {{ label }}</span>\n </button>\n `,\n})\nexport class ButtonRendererComponent implements ICellRendererAngularComp {\n params: any;\n label: any;\n icon: any;\n\n agInit(params: any): void {\n this.params = params;\n this.label = this.params.label || null;\n this.icon = this.params.icon;\n }\n\n refresh(params?: any): boolean {\n return false;\n }\n\n onClick($event: any) {\n if (this.params.onClick instanceof Function) {\n // put anything into params u want pass into parents component\n const params = {\n event: $event,\n rowData: Object.assign({}, this.params.node.data, {\n buttonName: this.params.buttonName,\n buttonText: this.params.label,\n buttonIcon: this.params.icon,\n }),\n };\n this.params.onClick(params);\n }\n }\n}\n","import { DatePipe } from '@angular/common';\r\nimport { Component } from '@angular/core';\r\nimport { ITooltipAngularComp } from 'ag-grid-angular';\r\nimport { ITooltipParams } from 'ag-grid-community';\r\n\r\n@Component({\r\n selector: 'tooltip-component',\r\n template: ` <div class=\"custom-tooltip\">\r\n <p>\r\n <span>{{ params.value }}</span>\r\n </p>\r\n </div>`,\r\n})\r\nexport class CustomTooltip implements ITooltipAngularComp { \r\n constructor(private datePipe: DatePipe) {}\r\n public params!: { color: string } & ITooltipParams;\r\n agInit(params: { color: string } & ITooltipParams): void {\r\n this.params = params;\r\n if (isNaN(+params.value)) {\r\n var dateWrapper = new Date(params.value);\r\n let isValidDate = !isNaN(dateWrapper.getDate());\r\n if (isValidDate) {\r\n params.value = this.datePipe.transform(params.value, 'MM-dd-yyyy');\r\n }\r\n }\r\n }\r\n}\r\n","import { DatePipe } from '@angular/common';\nimport {\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { AgGridAngular } from 'ag-grid-angular';\nimport {\n ColDef,\n GetRowIdFunc,\n GetRowIdParams,\n GridReadyEvent,\n PaginationNumberFormatterParams,\n RowModelType,\n ValueFormatterParams,\n} from 'ag-grid-community';\nimport { GridLibraryService } from './grid-library.service';\nimport { OdataServerSideProvider } from './helpers';\nimport { ButtonRendererComponent } from './renderer/button-renderer/button-renderer.component';\nimport { CustomTooltip } from './renderer/tooltip-renderer/custom-tooltip-renderer';\n\n@Component({\n selector: 'lib-basesite-shared-grid-lib',\n template: `\n <ag-grid-angular\n style=\"width: 100%;height:98.2vh\"\n class=\"ag-theme-balham\"\n [columnDefs]=\"columnDefs\"\n [defaultColDef]=\"defaultColDef\"\n [rowData]=\"rowData\"\n [rowSelection]=\"rowSelection\"\n [animateRows]=\"true\"\n (gridReady)=\"onGridReady($event)\"\n [pagination]=\"true\"\n [paginationPageSize]=\"gridPageSize\"\n [paginationNumberFormatter]=\"paginationNumberFormatter\"\n (modelUpdated)=\"onModelUpdated()\"\n [tooltipShowDelay]=\"tooltipShowDelay\"\n [tooltipHideDelay]=\"tooltipHideDelay\"\n [rowModelType]=\"rowModelType\"\n [cacheBlockSize]=\"cacheBlockSize\"\n [maxConcurrentDatasourceRequests]=\"1\"\n [blockLoadDebounceMillis]=\"100\"\n (columnVisible)=\"onSaveGridColumnState($event)\"\n (columnPinned)=\"onSaveGridColumnState($event)\"\n (columnResized)=\"onSaveGridColumnState($event)\"\n (columnMoved)=\"onSaveGridColumnState($event)\"\n (sortChanged)=\"onSortChangedEvent()\"\n >\n </ag-grid-angular>\n `,\n styles: [],\n})\nexport class GridLibraryComponent implements OnInit {\n //input params\n @Input() columnDefs: any;\n @Input() rowData: any;\n @Input() pageSize: number = 20;\n @Input() rowSelection: any = 'multiple';\n @Input() gridId: any;\n @Input() loggedInUser: any;\n @Input() enableServerSidePaging: boolean = false;\n @Input() serverDataUrl!: string;\n @Input() environment!: string;\n @Input() cacheBlockSize: number = 0;\n //event emitters\n @Output() btnClickHandler = new EventEmitter<any>();\n\n //viewChilds\n @ViewChild(AgGridAngular) agGrid!: AgGridAngular;\n\n //paramters\n gridColumnState: any;\n public tooltipShowDelay = 0;\n public tooltipHideDelay = 2000;\n public rowModelType: RowModelType = 'clientSide';\n public gridPageSize: number = 0;\n\n constructor(\n private gridService: GridLibraryService,\n private datePipe: DatePipe\n ) {}\n\n onSortChangedEvent() {\n this.gridColumnState = this.agGrid.columnApi.getColumnState();\n }\n\n public defaultColDef: ColDef = {\n sortable: true,\n filter: true,\n tooltipComponent: CustomTooltip,\n };\n\n ngOnInit() {\n this.gridPageSize = this.pageSize;\n this.cacheBlockSize = this.cacheBlockSize = 0\n ? this.pageSize\n : this.cacheBlockSize;\n this.gridService.setBaseUrl(this.environment);\n this.getGridState();\n this.getColDef();\n if (this.enableServerSidePaging == true) {\n this.rowModelType = 'serverSide';\n this.rowData = '';\n } else {\n this.rowModelType = 'clientSide';\n }\n }\n\n public paginationNumberFormatter: (\n params: PaginationNumberFormatterParams\n ) => string = (params: PaginationNumberFormatterParams) => {\n return '[' + params.value.toLocaleString() + ']';\n };\n\n onModelUpdated() {\n this.setGridState();\n }\n\n getColDef() {\n if (this.gridId && this.loggedInUser) {\n this.gridService.getColDef(this.gridId).subscribe((response: any) => {\n if (response.status == 1) {\n let coldef: ColDef[] = response.list.map((res: any) => {\n if (res.isButton === false) {\n return {\n field: res.field,\n headerName: res.title,\n resizable: true,\n hide: !res.visible,\n sortable: true,\n tooltipField: res.field,\n valueFormatter: this.colValueFormatter.bind(this),\n filterable: res.filterable,\n filter:\n res.columnType == 'string'\n ? 'agTextColumnFilter'\n : res.columnType == 'number'\n ? 'agNumberColumnFilter'\n : 'agDateColumnFilter',\n filterParams: {\n comparator: (\n filterLocalDateAtMidnight: any,\n cellValue: any\n ) => {\n const dateAsString = cellValue;\n\n if (dateAsString == null) {\n return 0;\n }\n if (res.columnType == 'date') {\n const cellDate = new Date(dateAsString);\n if (cellDate < filterLocalDateAtMidnight) {\n return -1;\n } else if (cellDate > filterLocalDateAtMidnight) {\n return 1;\n }\n }\n return 0;\n },\n },\n };\n } else {\n return {\n field: res.field,\n headerName: res.title,\n resizable: true,\n sortable: false,\n hide: !res.visible,\n suppressFilter: true,\n suppressSorting: true,\n suppressMenu: true,\n tooltipField: res.field,\n cellRenderer: ButtonRendererComponent,\n cellRendererParams: {\n onClick: this.onBtnClick.bind(this),\n label: res.label,\n icon: res.icon,\n buttonName: res.buttonName,\n tooltip: res.tooltip,\n },\n valueGetter: (params: any) => {\n return res.tooltip || res.title;\n },\n minWidth: 40,\n cellClass: 'action-button',\n pinned: res.pinPosition,\n lockPinned: true,\n };\n }\n });\n this.columnDefs = coldef;\n this.agGrid.gridOptions?.api?.setColumnDefs(coldef);\n this.getGridState();\n } else {\n console.log('ColDef Read Error=>', response.message);\n }\n });\n } else {\n console.log('Please pass valid GridId and loggedIn user Id');\n }\n }\n\n setExternalFilters(options: any) {\n if (\n this.serverDataUrl.indexOf('filter') >= 0 &&\n options.indexOf('filter') >= 0\n ) {\n let slug = this.serverDataUrl.split('?$filter=');\n if (slug && slug.length>0) {\n options = options + ' & ' + slug[1];\n this.serverDataUrl=slug[0];\n }\n }\n else if(this.serverDataUrl.indexOf('?')>=0){\n options=options.replace('?','&');\n }\n return `${this.serverDataUrl}${options}`;\n }\n onGridReady(params: GridReadyEvent) {\n this.gridPageSize = this.pageSize;\n if (this.enableServerSidePaging == true) {\n params.api.setServerSideDatasource(\n new OdataServerSideProvider({\n isCaseSensitiveStringFilter: false,\n callApi: (options) =>\n fetch(\n `${this.setExternalFilters(options)}`,\n {\n headers: {\n 'Content-type': 'application/json',\n Accept: 'application/json',\n },\n }\n ).then((response) => response.json()),\n })\n );\n }\n }\n\n setGridState() {\n if (this.gridColumnState) {\n this.agGrid.columnApi.applyColumnState({\n state: this.gridColumnState,\n applyOrder: true,\n });\n } else {\n var columns = this.agGrid.columnApi.getColumns();\n if (columns && columns.length > 10) {\n this.agGrid.columnApi.autoSizeAllColumns();\n } else {\n this.agGrid.api.sizeColumnsToFit();\n }\n }\n }\n\n getGridState() {\n if (this.gridId && this.loggedInUser) {\n this.gridService\n .getGridState(this.gridId, this.loggedInUser)\n .subscribe((response: any) => {\n if (\n response.status == 1 &&\n response.object &&\n response.object.gridConfig\n ) {\n this.gridColumnState = JSON.parse(response.object.gridConfig);\n this.setGridState();\n } else {\n console.log('Error while loading grid state');\n }\n });\n }\n }\n\n onBtnClick(e: any) {\n this.btnClickHandler.emit(e.rowData);\n }\n\n onSaveGridColumnState(event: any) {\n let columnState = this.agGrid.columnApi?.getColumnState();\n let columnData = {\n gridConfig: JSON.stringify(columnState),\n uiGridId: this.gridId,\n userId: this.loggedInUser,\n };\n if (event.finished == true || event.type === 'columnPinned') {\n this.gridColumnState = columnState;\n this.gridService.saveColumnConfig(columnData).subscribe((res: any) => {\n this.setGridState();\n if (res.status == 0) {\n console.log('Error while saving column configuration:', res.message);\n }\n });\n }\n }\n\n getRowById: GetRowIdFunc = (params: GetRowIdParams) => {\n var data = params.data;\n return data.id ?? 0;\n };\n\n colValueFormatter(params: ValueFormatterParams) {\n if (isNaN(+params.value)) {\n var dateWrapper = new Date(params.value);\n let isValidDate = !isNaN(dateWrapper.getDate());\n if (isValidDate) {\n return this.datePipe.transform(params.value, 'MM-dd-yyyy');\n } else {\n return params.value;\n }\n }\n return params.value;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { AgGridModule } from 'ag-grid-angular';\nimport {LicenseManager} from \"ag-grid-enterprise\";\nimport 'ag-grid-enterprise';\nLicenseManager.setLicenseKey(\"CompanyName=Basesite,LicensedGroup=Basesite,LicenseType=MultipleApplications,LicensedConcurrentDeveloperCount=2,LicensedProductionInstancesCount=2,AssetReference=AG-028469,ExpiryDate=19_May_2023_[v2]_MTY4NDQ1MDgwMDAwMA==ed6f437ea331cf602f669128db7b5387\");\nimport { HttpClientModule } from \"@angular/common/http\";\nimport { ButtonRendererComponent } from './renderer/button-renderer/button-renderer.component';\nimport { CommonModule, DatePipe } from '@angular/common';\nimport { CustomTooltip } from './renderer/tooltip-renderer/custom-tooltip-renderer';\nimport { GridLibraryComponent } from './grid-library.component';\n\n@NgModule({\n declarations: [\n GridLibraryComponent,\n ButtonRendererComponent,\n CustomTooltip\n ],\n imports: [\n AgGridModule,\n HttpClientModule,\n CommonModule,\n ],\n exports: [\n GridLibraryComponent\n ],\n providers: [DatePipe]\n})\nexport class GridLibraryModule { }\n","/*\n * Public API Surface of basesite-shared-grid-lib\n */\n\nexport * from './lib/grid-library.service';\nexport * from './lib/grid-library.component';\nexport * from './lib/grid-library.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i1.GridLibraryService","i2"],"mappings":"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"}
@@ -1017,7 +1017,7 @@ class GridLibraryComponent {
1017
1017
  },
1018
1018
  minWidth: 40,
1019
1019
  cellClass: 'action-button',
1020
- pinned: 'left',
1020
+ pinned: res.pinPosition,
1021
1021
  lockPinned: true,
1022
1022
  };
1023
1023
  }
@@ -1040,7 +1040,7 @@ class GridLibraryComponent {
1040
1040
  options.indexOf('filter') >= 0) {
1041
1041
  let slug = this.serverDataUrl.split('?$filter=');
1042
1042
  if (slug && slug.length > 0) {
1043
- options += options + ' & ' + slug[1];
1043
+ options = options + ' & ' + slug[1];
1044
1044
  this.serverDataUrl = slug[0];
1045
1045
  }
1046
1046
  }
@@ -1 +1 @@
1
- {"version":3,"file":"basesite-shared-grid-lib.mjs","sources":["../../../projects/basesite-shared-grid-lib/src/lib/grid-library.service.ts","../../../projects/basesite-shared-grid-lib/src/lib/helpers/utils.ts","../../../projects/basesite-shared-grid-lib/src/lib/helpers/oDataProvider.ts","../../../projects/basesite-shared-grid-lib/src/lib/renderer/button-renderer/button-renderer.component.ts","../../../projects/basesite-shared-grid-lib/src/lib/renderer/tooltip-renderer/custom-tooltip-renderer.ts","../../../projects/basesite-shared-grid-lib/src/lib/grid-library.component.ts","../../../projects/basesite-shared-grid-lib/src/lib/grid-library.module.ts","../../../projects/basesite-shared-grid-lib/src/public-api.ts","../../../projects/basesite-shared-grid-lib/src/basesite-shared-grid-lib.ts"],"sourcesContent":["import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class GridLibraryService {\n private baseUrl:any='https://localhost:8075/api';\n constructor(private httpClient: HttpClient) {\n } \n\n setBaseUrl(environment:any){\n if(environment==='test'){\n this.baseUrl='https://fcesharedgridtest.intel.com/api'\n }\n else if(environment=='uat'){\n this.baseUrl='https://fcesharedgridtest.intel.com/api'\n }\n else if(environment=='production'){\n this.baseUrl='https://fcesharedgridtest.intel.com/api'\n }\n else{\n this.baseUrl='https://localhost:8075/api'\n }\n }\n\n getColDef(gridId: any): Observable<any> {\n return this.httpClient.get<any>(\n `${this.baseUrl}/GridConfiguration/${gridId}`\n );\n }\n\n saveColumnConfig(columnConfig:any){\n return this.httpClient.post<any>(\n `${this.baseUrl}/GridConfiguration/saveUIUserGridConfiguration`,columnConfig\n );\n }\n\n getGridState(gridId:number,loggedInUserId:number){\n return this.httpClient.get<any>(\n `${this.baseUrl}/GridConfiguration?gridId=${gridId}&userId=${loggedInUserId}`\n );\n }\n}\n","export function escapeRegExp(string:any) {\r\n return string.replace(/[.*+\\-?^${}()|[\\]\\\\]/g, \"\\\\$&\"); // $& means the whole matched string\r\n }\r\n \r\n export function replaceAll(str: string, search: string, replacement: string): string {\r\n return str.replace(new RegExp(escapeRegExp(search), \"g\"), replacement);\r\n }","import {\r\n IGetRowsParams,\r\n ColDef,\r\n ColGroupDef,\r\n ColumnVO,\r\n IServerSideGetRowsRequest,\r\n IServerSideGetRowsParams,\r\n } from 'ag-grid-community'\r\n \r\n import {\r\n OdataQueryExtendFull,\r\n OdataQueryExtendOptions,\r\n OdataQueryOptions,\r\n PivotResultDat,\r\n } from './types'\r\n \r\n import { replaceAll } from './utils'\r\n export declare class OdataProviderOptions {\r\n /**\r\n * Function for call odata api\r\n */\r\n callApi: (query: string) => Promise<any>\r\n /**\r\n * Name of field contain count of record results in grouping odata query\r\n * @default childCount\r\n */\r\n groupCountFieldName?: string\r\n /**\r\n * Use in odata build query\r\n * @default false\r\n */\r\n isCaseSensitiveStringFilter?: boolean\r\n /**\r\n * Callback for extend odata query options for implement user logic\r\n */\r\n beforeRequest?: (\r\n options: OdataQueryOptions,\r\n provider: OdataProvider,\r\n request: IGetRowsParams | IServerSideGetRowsRequest\r\n ) => void\r\n /**\r\n * Callback for pivot or group for aplly column ag-grid settings\r\n * @example\r\n * <pre><code>\r\n * beforeSetSecondaryColumns = secondaryColumns => {\r\n for (let i = 0; i < secondaryColumns.length; i++) {\r\n const col = secondaryColumns[i]\r\n if (col.children) {\r\n beforeSetSecondaryColumns(col.children)\r\n } else {\r\n //Aplly new setting for group dyncamic created column\r\n // col.cellClassRules = \r\n // col.valueFormatter = \r\n }\r\n }\r\n }\r\n * </pre></code>\r\n */\r\n beforeSetSecondaryColumns?: (\r\n secondaryColDefs: (ColDef | ColGroupDef)[]\r\n ) => void\r\n /**\r\n * Callback invoked after load data\r\n * @param options odata provider options\r\n * @param rowData data for ag-grid\r\n * @param totalCount total count records\r\n * \r\n * @example\r\n * <pre><code>\r\n afterLoadData = (options, rowData, totalCount) => {\r\n if (options.skip === 0 && rowData.length > 0) {\r\n gridApi.columnController.autoSizeAllColumns()\r\n }\r\n }\r\n * </code></pre>\r\n */\r\n afterLoadData?: (\r\n options: OdataQueryExtendOptions,\r\n rowData: any[],\r\n totalCount: number\r\n ) => void\r\n /**\r\n * Callback for catch error\r\n */\r\n setError?: (\r\n error: any,\r\n params: IGetRowsParams | IServerSideGetRowsParams\r\n ) => void\r\n /**\r\n * List of columns by id/field are case sensitive for build odata query\r\n */\r\n caseSensitiveColumns?: string[]\r\n /**\r\n * Use for specified column custom filter implementation\r\n * <pre><code>\r\n customFilters: {\r\n \"customer\": (colName,col,isCaseSensitiveStringFilter,provider) =>{\r\n return provider.odataOperator.in(\r\n colName,\r\n col.values\r\n )\r\n }\r\n }\r\n */\r\n customFilters?: {\r\n [index: string]: (\r\n colName: string,\r\n col: any,\r\n isCaseSensitiveStringFilter: boolean,\r\n provider: OdataProvider\r\n ) => string\r\n }\r\n }\r\n \r\n declare interface CancelablePromise {\r\n promise: Promise<any>\r\n cancel: () => void\r\n }\r\n export class OdataProvider implements OdataProviderOptions {\r\n /**\r\n * Function for call odata api\r\n */\r\n callApi!: (query: string) => Promise<any>\r\n /**\r\n * Name of field contain count of record results in grouping odata query\r\n * @default childCount\r\n */\r\n groupCountFieldName: string = 'childCount'\r\n /**\r\n * Use in odata build query\r\n * @default false\r\n */\r\n isCaseSensitiveStringFilter: boolean = false\r\n /**\r\n * Callback for extend odata query options for implement user logic\r\n */\r\n beforeRequest: ((\r\n options: OdataQueryOptions,\r\n provider: OdataProvider,\r\n request: IGetRowsParams | IServerSideGetRowsRequest\r\n ) => void) | undefined\r\n /**\r\n * Callback for pivot or group for aplly column ag-grid settings\r\n * @example\r\n * <pre><code>\r\n * beforeSetSecondaryColumns = secondaryColumns => {\r\n for (let i = 0; i < secondaryColumns.length; i++) {\r\n const col = secondaryColumns[i]\r\n if (col.children) {\r\n beforeSetSecondaryColumns(col.children)\r\n } else {\r\n //Aplly new setting for group dyncamic created column\r\n // col.cellClassRules = \r\n // col.valueFormatter = \r\n }\r\n }\r\n }\r\n * </pre></code>\r\n */\r\n beforeSetSecondaryColumns: ((\r\n secondaryColDefs: (ColDef | ColGroupDef)[]\r\n ) => void) | undefined\r\n /**\r\n * Callback invoked after load data\r\n * @param options odata provider options\r\n * @param rowData data for ag-grid\r\n * @param totalCount total count records\r\n * \r\n * @example\r\n * <pre><code>\r\n afterLoadData = (options, rowData, totalCount) => {\r\n if (options.skip === 0 && rowData.length > 0) {\r\n gridApi.columnController.autoSizeAllColumns()\r\n }\r\n }\r\n * </code></pre>\r\n */\r\n afterLoadData: ((\r\n options: OdataQueryExtendOptions,\r\n rowData: any[],\r\n totalCount: number\r\n ) => void) | undefined\r\n /**\r\n * Callback for catch error\r\n */\r\n setError: ((\r\n error: any,\r\n params: IGetRowsParams | IServerSideGetRowsParams\r\n ) => void) | undefined\r\n /**\r\n * List of columns by id/field are case sensitive for build odata query\r\n */\r\n caseSensitiveColumns?: string[]\r\n /**\r\n * Use for specified column custom filter implementation\r\n * <pre><code>\r\n customFilters: {\r\n \"customer\": (colName,col,isCaseSensitiveStringFilter,provider) =>{\r\n return provider.odataOperator.in(\r\n colName,\r\n col.values\r\n )\r\n }\r\n }\r\n */\r\n customFilters?: {\r\n [index: string]: (\r\n colName: string,\r\n col: any,\r\n isCaseSensitiveStringFilter: boolean,\r\n provider: OdataProvider\r\n ) => string\r\n }\r\n cancelPromice: CancelablePromise\r\n constructor(options: OdataProviderOptions) {\r\n Object.assign(this, options);\r\n if (this.callApi == null) {\r\n throw new Error('callApi must be specified')\r\n }\r\n if (typeof this.callApi !== 'function') {\r\n throw new Error('callApi must be a function')\r\n }\r\n if (\r\n this.beforeRequest != null &&\r\n typeof this.beforeRequest !== 'function'\r\n ) {\r\n throw new Error('beforeRequest must be a function')\r\n }\r\n if (\r\n this.afterLoadData != null &&\r\n typeof this.afterLoadData !== 'function'\r\n ) {\r\n throw new Error('afterLoadData must be a function')\r\n }\r\n if (this.setError != null && typeof this.setError !== 'function') {\r\n throw new Error('setError must be a function')\r\n }\r\n this.cancelPromice = this.createCancelablePromise()\r\n }\r\n \r\n /**Creator a cancelable Promise */\r\n createCancelablePromise = (): CancelablePromise => {\r\n let cancel:any\r\n const pr = new Promise((_, reject) => {\r\n cancel = reject\r\n }).catch(() => {})\r\n return {\r\n promise: pr,\r\n cancel,\r\n }\r\n }\r\n /**Odata query operations */\r\n odataOperator:any = {\r\n // Logical\r\n equals: (col: string, value1: string): string => `${col} eq ${value1}`,\r\n notEqual: (col: string, value1: string): string => `${col} ne ${value1}`,\r\n lessThan: (col: string, value1: string): string => `${col} lt ${value1}`,\r\n lessThanOrEqual: (col: string, value1: string): string =>\r\n `${col} le ${value1}`,\r\n greaterThan: (col: string, value1: string): string => `${col} gt ${value1}`,\r\n greaterThanOrEqual: (col: string, value1: string): string =>\r\n `${col} ge ${value1}`,\r\n inRange: (col: string, value1: string, value2: any): string =>\r\n `(${col} ge ${value1} and ${col} le ${value2})`,\r\n // String\r\n equalsStr: (\r\n col: string,\r\n value1: string,\r\n isCaseSensitiveStringFilter: boolean\r\n ): string =>\r\n `${this.ifTolowerCol(\r\n col,\r\n isCaseSensitiveStringFilter\r\n )} eq ${this.ifTolower(value1, isCaseSensitiveStringFilter)}`,\r\n notEqualStr: (\r\n col: string,\r\n value1: string,\r\n isCaseSensitiveStringFilter: boolean\r\n ): string =>\r\n `${this.ifTolowerCol(\r\n col,\r\n isCaseSensitiveStringFilter\r\n )} ne ${this.ifTolower(value1, isCaseSensitiveStringFilter)}`,\r\n contains: (\r\n col: string,\r\n value1: string,\r\n isCaseSensitiveStringFilter: boolean\r\n ): string =>\r\n `contains(${this.ifTolowerCol(\r\n col,\r\n isCaseSensitiveStringFilter\r\n )},${this.ifTolower(value1, isCaseSensitiveStringFilter)})`,\r\n notContains: (\r\n col: string,\r\n value1: string,\r\n isCaseSensitiveStringFilter: boolean\r\n ): string =>\r\n `contains(${this.ifTolowerCol(\r\n col,\r\n isCaseSensitiveStringFilter\r\n )},${this.ifTolower(value1, isCaseSensitiveStringFilter)}) eq false`,\r\n startsWith: (\r\n col: string,\r\n value1: string,\r\n isCaseSensitiveStringFilter: boolean\r\n ): string =>\r\n `startswith(${this.ifTolowerCol(\r\n col,\r\n isCaseSensitiveStringFilter\r\n )},${this.ifTolower(value1, isCaseSensitiveStringFilter)}) eq true`,\r\n endsWith: (\r\n col: string,\r\n value1: string,\r\n isCaseSensitiveStringFilter: boolean\r\n ): string =>\r\n `endswith(${this.ifTolowerCol(\r\n col,\r\n isCaseSensitiveStringFilter\r\n )},${this.ifTolower(value1, isCaseSensitiveStringFilter)}) eq true`,\r\n inStr: (\r\n col: string,\r\n values: string[],\r\n isCaseSensitiveStringFilter: boolean\r\n ): string =>\r\n `${this.ifTolowerCol(col, isCaseSensitiveStringFilter)} in (${values\r\n .map(\r\n (x) =>\r\n `'${this.ifTolower(this.encode(x), isCaseSensitiveStringFilter)}'`\r\n )\r\n .join()})`,\r\n in: (col: string, values: string[]) =>\r\n `${col} in (${values.map((x) => `${this.encode(x)}`).join()})`,\r\n notIn: (col: string, values: string[]) =>\r\n `not (${col} in (${values.map((x) => `${x}`).join()}))`,\r\n // Date\r\n trunc: (col: string): string => `date(${col})`,\r\n }\r\n \r\n /**\r\n * Apply tolower for column in odata syntax\r\n * @param col column name\r\n * @param isCaseSensitiveStringFilter need apply tolower\r\n */\r\n ifTolowerCol = (col: string, isCaseSensitiveStringFilter: boolean): string =>\r\n isCaseSensitiveStringFilter ? col : `tolower(${col})`\r\n \r\n /**\r\n *\r\n * @param value string value\r\n * @param isCaseSensitiveStringFilter need apply tolower\r\n */\r\n ifTolower = (value: string, isCaseSensitiveStringFilter: boolean): string =>\r\n isCaseSensitiveStringFilter ? value : value ? value.toLowerCase() : value\r\n /**\r\n * Odata aggregation operations\r\n */\r\n odataAggregation:any = {\r\n // Logical\r\n sum: (col: string, asField?: any): string =>\r\n `${col} with sum as ${col || asField}`,\r\n min: (col: string, asField?: any): string =>\r\n `${col} with min as ${col || asField}`,\r\n max: (col: string, asField?: any): string =>\r\n `${col} with max as ${col || asField}`,\r\n avg: (col: string, asField?: any): string =>\r\n `${col} with average as ${col || asField}`,\r\n count: (col: string, asField?: any): string =>\r\n `$count as ${col || asField}`,\r\n }\r\n /**\r\n * Odata query builder\r\n * @param options parameter for odata query\r\n */\r\n toQuery = (options: OdataQueryExtendFull): string => {\r\n let path: string[] = []\r\n if (options) {\r\n path.push('$count=true')\r\n }\r\n if (options.skip) {\r\n path.push(`$skip=${options.skip}`)\r\n }\r\n if (options.top) {\r\n path.push(`$top=${options.top}`)\r\n }\r\n if (options.sort && options.sort.length > 0) {\r\n path.push('$orderby=' + options.sort.join(','))\r\n }\r\n if (options.filter && options.filter.length > 0) {\r\n path.push('$filter=' + options.filter.join(' and '))\r\n }\r\n if (options.apply && options.apply.length > 0) {\r\n path.push('$apply=' + options.apply.join('/'))\r\n }\r\n if (options.expand && options.expand.length > 0) {\r\n path.push('$expand=' + options.expand.join(','))\r\n }\r\n if (options.select && options.select.length > 0) {\r\n path.push('$select=' + options.select.join(','))\r\n }\r\n let query: string = ''\r\n if (path.length > 0) {\r\n query = '?' + path.join('&')\r\n }\r\n return query\r\n }\r\n /**\r\n * Add quotes for string value\r\n * @param value string value\r\n */\r\n encode = (value: string): string =>\r\n this.isStrVal(value) ? replaceAll(value, \"'\", \"''\") : value\r\n /**\r\n * Conctat to date a time for create datetime format for odata query\r\n * @param value date string\r\n */\r\n toDateTime = (value: string): string | null => {\r\n const dt = new Date(value)\r\n if (isNaN(dt.getTime())) return null\r\n const dt1 = new Date(\r\n Date.UTC(dt.getFullYear(), dt.getMonth(), dt.getDate())\r\n )\r\n return dt1.toISOString()\r\n }\r\n /**\r\n *\r\n * @param colName columnName\r\n * @returns is CaseSensitive for column\r\n */\r\n private getIsNeedCaseSensitive = (colName: string) => {\r\n if (\r\n !this.isCaseSensitiveStringFilter &&\r\n this.caseSensitiveColumns &&\r\n this.caseSensitiveColumns.length > 0\r\n ) {\r\n return this.caseSensitiveColumns.indexOf(colName) >= 0\r\n }\r\n return this.isCaseSensitiveStringFilter\r\n }\r\n /**\r\n * Convert ag-grid column filter to odata query\r\n * @param colName columnName\r\n * @param col ag-grid column\r\n */\r\n private getFilterOdata = (colName: string, col: any): string => {\r\n const me = this\r\n const isCaseSensitiveStringFilter = me.getIsNeedCaseSensitive(colName)\r\n const customFilter = me.customFilters && me.customFilters[colName]\r\n colName = replaceAll(colName, '.', '/')\r\n colName = me.getWrapColumnName(colName)\r\n if (customFilter) {\r\n return customFilter(colName, col, isCaseSensitiveStringFilter, me)\r\n } else {\r\n switch (col.filterType) {\r\n case 'number':\r\n return me.odataOperator[col.type](colName, col.filter, col.filterTo)\r\n case 'text': {\r\n let operatorName = col.type\r\n const filter = me.encode(col.filter)\r\n // let filterTo = me.encode(col.filterTo);\r\n if (\r\n (operatorName === 'equals' || operatorName === 'notEqual') &&\r\n !isCaseSensitiveStringFilter\r\n ) {\r\n operatorName += 'Str'\r\n }\r\n return me.odataOperator[operatorName](\r\n colName,\r\n `'${filter}'`,\r\n isCaseSensitiveStringFilter\r\n )\r\n }\r\n case 'date':\r\n if (\r\n col.dateFrom != null &&\r\n me.toDateTime(col.dateFrom) != null &&\r\n (col.dateTo == null ||\r\n (col.dateTo != null && me.toDateTime(col.dateTo) != null))\r\n ) {\r\n return me.odataOperator[col.type](\r\n colName,\r\n `${me.toDateTime(col.dateFrom)}`,\r\n `${me.toDateTime(col.dateTo)}`\r\n )\r\n }\r\n break\r\n case 'set':\r\n return col.values.length > 0\r\n ? me.odataOperator.inStr(\r\n colName,\r\n col.values,\r\n isCaseSensitiveStringFilter\r\n )\r\n : ''\r\n default:\r\n break\r\n }\r\n }\r\n return ''\r\n }\r\n \r\n /**\r\n * Extract value from record by path to field\r\n * @param field path to column value\r\n * @param obj record\r\n */\r\n private getValue(field: string, obj: any): any {\r\n const paths = field.split('.')\r\n if (paths.length === 1) {\r\n return obj[field]\r\n } else {\r\n return paths.reduce((object, path) => {\r\n return (object || {})[path] // Oliver Steele's pattern\r\n }, obj)\r\n }\r\n }\r\n \r\n /**\r\n * Caclulate pivot data for ag-grid from odata\r\n * @param pivotCols pivot columns\r\n * @param rowGroupCols row group columns\r\n * @param valueCols value columns\r\n * @param data odata result\r\n * @param countField count field name\r\n */\r\n private getPivot = (\r\n pivotCols: ColumnVO[],\r\n rowGroupCols: ColumnVO[],\r\n valueCols: ColumnVO[],\r\n data: any[],\r\n countField: string\r\n ): PivotResultDat => {\r\n // assume 1 pivot col and 1 value col for this example\r\n const me = this\r\n const pivotData: any[] = []\r\n const aggColsList: any[] = []\r\n \r\n const colKeyExistsMap: any = {}\r\n \r\n const secondaryColDefs: any[] = []\r\n const secondaryColDefsMap:any = {}\r\n \r\n data.forEach(function (item) {\r\n var pivotValues: string[] = []\r\n pivotCols.forEach(function (pivotCol) {\r\n var pivotField = pivotCol.id\r\n var pivotValue = me.getValue(pivotField, item)\r\n if (\r\n pivotValue !== null &&\r\n pivotValue !== undefined &&\r\n pivotValue.toString\r\n ) {\r\n pivotValues.push(pivotValue.toString())\r\n } else {\r\n pivotValues.push('-')\r\n }\r\n })\r\n \r\n // var pivotValue = item[pivotField].toString();\r\n var pivotItem:any = {}\r\n \r\n valueCols.forEach(function (valueCol) {\r\n var valField = valueCol.id\r\n var colKey = createColKey(pivotValues, valField)\r\n \r\n var value = me.getValue(valField, item)\r\n pivotItem[colKey] = value\r\n \r\n if (!colKeyExistsMap[colKey]) {\r\n addNewAggCol(colKey, valueCol)\r\n addNewSecondaryColDef(colKey, pivotValues, valueCol)\r\n colKeyExistsMap[colKey] = true\r\n }\r\n })\r\n if (countField) {\r\n pivotItem[countField] = me.getValue(countField, item)\r\n }\r\n \r\n rowGroupCols.forEach(function (rowGroupCol) {\r\n var rowGroupField = rowGroupCol.id.split('.')[0]\r\n pivotItem[rowGroupField] = item[rowGroupField]\r\n })\r\n \r\n pivotData.push(pivotItem)\r\n })\r\n \r\n function addNewAggCol(colKey: string, valueCol: ColumnVO): void {\r\n var newCol = {\r\n id: colKey,\r\n field: colKey,\r\n aggFunc: valueCol.aggFunc,\r\n }\r\n aggColsList.push(newCol)\r\n }\r\n \r\n function addNewSecondaryColDef(colKey:any, pivotValues:any, valueCol:any) {\r\n var parentGroup: any = null\r\n \r\n var keyParts: any = []\r\n \r\n pivotValues.forEach(function (pivotValue: any) {\r\n keyParts.push(pivotValue)\r\n var colKey = createColKey(keyParts)\r\n var groupColDef: any = secondaryColDefsMap[colKey]\r\n if (!groupColDef) {\r\n groupColDef = {\r\n groupId: colKey,\r\n headerName: pivotValue,\r\n children: [],\r\n }\r\n secondaryColDefsMap[colKey] = groupColDef\r\n if (parentGroup) {\r\n parentGroup.children.push(groupColDef)\r\n } else {\r\n secondaryColDefs.push(groupColDef)\r\n }\r\n }\r\n parentGroup = groupColDef\r\n })\r\n \r\n parentGroup.children.push({\r\n colId: colKey,\r\n headerName: valueCol.aggFunc + '(' + valueCol.displayName + ')',\r\n field: colKey,\r\n suppressMenu: true,\r\n sortable: false,\r\n })\r\n }\r\n \r\n function createColKey(pivotValues: string[], valueField?: string): string {\r\n var result = pivotValues.join('|')\r\n if (valueField !== undefined) {\r\n result += '|' + valueField\r\n }\r\n result = replaceAll(result, '.', '*')\r\n return result\r\n }\r\n \r\n return {\r\n data: pivotData,\r\n aggCols: aggColsList,\r\n secondaryColDefs: secondaryColDefs,\r\n }\r\n }\r\n \r\n /**\r\n *\r\n * @param rowData array odata result\r\n * @param rowGroupCols row group columns\r\n * @param groupKeys what groups the user is viewing\r\n * @param countField count field name\r\n */\r\n private buildGroupsFromData = (\r\n rowData: any[],\r\n rowGroupCols: ColumnVO[],\r\n groupKeys: string[],\r\n countField: string\r\n ): any[] => {\r\n const me = this\r\n let rowGroupCol = rowGroupCols[groupKeys.length]\r\n let field = rowGroupCol.id\r\n let mappedRowData = me.groupBy(rowData, field)\r\n let groups: any = []\r\n \r\n me.iterateObject(mappedRowData, function (key, rowData) {\r\n var groupItem = me.aggregateList(rowData, countField)\r\n groupItem[field] = key\r\n groups.push(groupItem)\r\n })\r\n return groups\r\n }\r\n \r\n /**\r\n * Internal function for execute callback function for each property of object\r\n * @param object object contained odata grouped result\r\n * @param callback function do somthing\r\n */\r\n private iterateObject = (\r\n object: any,\r\n callback: (key: string, rowData: any[]) => void\r\n ): void => {\r\n if (!object) {\r\n return\r\n }\r\n const keys = Object.keys(object)\r\n for (let i = 0; i < keys.length; i++) {\r\n const key = keys[i]\r\n const value = object[key]\r\n callback(key, value)\r\n }\r\n }\r\n \r\n /**\r\n * Prepeare grouped data\r\n * @param rowData array odata result\r\n * @param field grouping field\r\n */\r\n private groupBy = (rowData: any[], field: string): any => {\r\n var result:any = {}\r\n const me = this\r\n rowData.forEach(function (item) {\r\n var key = me.getValue(field, item)\r\n var listForThisKey = result[key]\r\n if (!listForThisKey) {\r\n listForThisKey = []\r\n result[key] = listForThisKey\r\n }\r\n listForThisKey.push(item)\r\n })\r\n return result\r\n }\r\n \r\n /**\r\n * Calculate total count records in group\r\n * @param rowData array odata result data\r\n * @param countField field contained count of all records\r\n */\r\n private aggregateList = (rowData: any[], countField: string): any => {\r\n var result:any = {}\r\n rowData.forEach((row) => {\r\n if (countField && row[countField] != null) {\r\n const totalCount = (result[countField] || 0) + (row[countField] || 0)\r\n delete row[countField]\r\n result[countField] = totalCount\r\n }\r\n result = Object.assign(result, row)\r\n })\r\n return result\r\n }\r\n \r\n /**\r\n * Calculate distinct values for input field from Odata api\r\n * @param field The field of the row to get the cells data from \r\n * @param callback The function for return distinct values for input field\r\n * @param beforeRequest The function for customize request\r\n * @example \r\n * <pre><code>\r\n * const setFilterValuesFuncParams = params => {\r\n * const me = this\r\n * const col = params.colDef.field\r\n * const storeName = me.getStoreName(col)\r\n * const callback = data => {\r\n * if (data) {\r\n * me.setState({ [storeName]: data })\r\n * params.success(data)\r\n * }\r\n * }\r\n * odataProviderInstance.getFilterValuesParams(params.colDef.field, callback)\r\n * }\r\n * \r\n * ///....\r\n * <AgGridColumn\r\n field=\"product\"\r\n headerName={'PRODUCT'}\r\n filter=\"agSetColumnFilter\"\r\n // rowGroup\r\n // enablePivot\r\n enableRowGroup\r\n filterParams={{\r\n values: setFilterValuesFuncParams,\r\n newRowsAction: 'keep'\r\n }}\r\n // filterParams={{caseSensitive: true}}\r\n />\r\n * </code></pre>\r\n */\r\n getFilterValuesParams = (\r\n field: string,\r\n callback: (data: any[]) => void,\r\n beforeRequest: (options: OdataQueryExtendFull) => void | undefined\r\n ): void => {\r\n const me = this\r\n const options: OdataQueryExtendFull = {\r\n apply: [`groupby((${me.getWrapColumnName(field)}))`],\r\n }\r\n if (beforeRequest) {\r\n beforeRequest(options)\r\n }\r\n me.callApi(me.toQuery(options)).then((x) => {\r\n if (x) {\r\n let values = me.getOdataResult(x)\r\n callback(values.map((y:any) => y[field]))\r\n }\r\n })\r\n }\r\n /**\r\n * Detect is string value\r\n * @param value\r\n */\r\n isStrVal = (value: any): boolean => typeof value === 'string'\r\n /**\r\n * Extartc values from odata response\r\n * @param response\r\n */\r\n private getOdataResult = (response: any): any =>\r\n Array.isArray(response) ? response : response.value\r\n /**\r\n * Endocing column name to odata notation\r\n * @param colName column name\r\n */\r\n private getWrapColumnName = (colName: string | undefined): string =>\r\n colName ? replaceAll(colName, '.', '/') : ''\r\n /**\r\n * grid calls this to get rows for IServerSideDatasource\r\n * @param params ag-grid details for the request\r\n */\r\n /**\r\n * grid calls this to get rows implement\r\n * @param params ag-grid details for the request\r\n */\r\n public getRows(params: IGetRowsParams | IServerSideGetRowsParams): void {\r\n const me = this\r\n const childCount = me.groupCountFieldName\r\n const isServerMode = 'request' in params\r\n const request = isServerMode\r\n ? (params as IServerSideGetRowsParams).request\r\n : (params as IGetRowsParams)\r\n const requestSrv = request as IServerSideGetRowsRequest\r\n \r\n const pivotActive = !isServerMode\r\n ? false\r\n : requestSrv.pivotMode &&\r\n requestSrv.pivotCols.length > 0 &&\r\n requestSrv.valueCols.length > 0\r\n \r\n if (!pivotActive) {\r\n let fn = (params as any).columnApi.setPivotResultColumns\r\n if (fn != null) {\r\n // if ((params as any).columnApi.isPivotMode()) {\r\n ;(params as any).columnApi.setPivotResultColumns([])\r\n // }\r\n } else {\r\n ;(params as any).columnApi.setSecondaryColumns([])\r\n }\r\n }\r\n const options = me.getOdataOptions(params)\r\n const query = me.toQuery(options)\r\n if (\r\n options.skip === 0 &&\r\n (!isServerMode ||\r\n (isServerMode &&\r\n (params as IServerSideGetRowsParams).parentNode.level === -1))\r\n ) {\r\n me.cancelPromice.cancel()\r\n me.cancelPromice = me.createCancelablePromise()\r\n }\r\n Promise.race([me.cancelPromice.promise, me.callApi(query)]).then(\r\n async (x) => {\r\n if (!x) {\r\n params.failCallback()\r\n } else {\r\n const values = me.getOdataResult(x)\r\n if (!pivotActive) {\r\n if (!options.apply) {\r\n me.setResult(params, isServerMode, values, x['@odata.count'] || x[0]?.totalCount)\r\n if (this.afterLoadData) {\r\n this.afterLoadData(options, values, x['@odata.count'] || x[0]?.totalCount)\r\n }\r\n } else {\r\n let count = values.length\r\n if (count === options.top && options.skip === 0) {\r\n // If received grouped count of value large than requested then request total count of values\r\n me.callApi(query + '/aggregate($count as count)').then((y) => {\r\n count = me.getOdataResult(y)[0].count\r\n me.setResult(params, isServerMode, values, count)\r\n })\r\n } else {\r\n if (options.skip != null && options.skip > 0) {\r\n count = null\r\n }\r\n me.setResult(params, isServerMode, values, count)\r\n if (this.afterLoadData) {\r\n this.afterLoadData(options, values, count)\r\n }\r\n }\r\n }\r\n } else {\r\n let rowData = me.getOdataResult(x)\r\n // Check count\r\n if (\r\n rowData.length === options.top &&\r\n options.skip === 0 &&\r\n requestSrv.groupKeys.length === 0\r\n ) {\r\n let eof = false\r\n while (!eof) {\r\n options.skip += options.top || 0\r\n const subQuery = me.toQuery(options)\r\n const newRowData = await me.callApi(subQuery)\r\n if (!newRowData) {\r\n params.failCallback()\r\n return\r\n }\r\n eof = newRowData.length !== options.top\r\n rowData = rowData.concat(newRowData)\r\n }\r\n }\r\n const pivotResult = me.getPivot(\r\n requestSrv.pivotCols,\r\n requestSrv.rowGroupCols,\r\n requestSrv.valueCols,\r\n rowData,\r\n childCount\r\n )\r\n rowData = pivotResult.data\r\n const secondaryColDefs = pivotResult.secondaryColDefs\r\n rowData = me.buildGroupsFromData(\r\n rowData,\r\n requestSrv.rowGroupCols,\r\n requestSrv.groupKeys,\r\n childCount\r\n )\r\n const totalCount =\r\n requestSrv.groupKeys.length === 0\r\n ? rowData.length\r\n : rowData.length === options.top\r\n ? null\r\n : rowData.length\r\n // if (totalCount > (options.top || 0)) {\r\n // const serverSideBlock = (params as any).parentNode.rowModel\r\n // .rowNodeBlockLoader.blocks[0];\r\n // serverSideBlock.rowNodeCacheParams.blockSize = totalCount;\r\n // serverSideBlock.endRow = serverSideBlock.startRow + totalCount;\r\n // serverSideBlock.createRowNodes();\r\n // }\r\n me.setResult(params, isServerMode, rowData, totalCount)\r\n if (this.afterLoadData) {\r\n this.afterLoadData(options, rowData, totalCount)\r\n }\r\n if (requestSrv.groupKeys.length === 0) {\r\n if (this.beforeSetSecondaryColumns) {\r\n this.beforeSetSecondaryColumns(secondaryColDefs)\r\n }\r\n let fn = (params as any).columnApi.setPivotResultColumns\r\n if (fn) {\r\n ;(params as any).columnApi.setPivotResultColumns(\r\n secondaryColDefs\r\n )\r\n } else {\r\n ;(params as any).columnApi.setSecondaryColumns(secondaryColDefs)\r\n }\r\n }\r\n }\r\n }\r\n },\r\n (err) => {\r\n me.setResult(params, isServerMode, [], 0)\r\n if (this.setError) {\r\n this.setError(err, params)\r\n }\r\n }\r\n )\r\n }\r\n /**\r\n * Set result\r\n * @param params ag-grid details for the request\r\n * @param isServerMode detect type of params\r\n * @param rowsThisBlock data of the request\r\n * @param rowCount count of total result\r\n */\r\n private setResult = (\r\n params: IGetRowsParams | IServerSideGetRowsParams,\r\n isServerMode: boolean,\r\n rowsThisBlock: any[],\r\n rowCount?: number\r\n ): void => {\r\n if (isServerMode) {\r\n ;(params as IServerSideGetRowsParams).success({\r\n rowData: rowsThisBlock,\r\n rowCount: rowCount,\r\n })\r\n } else {\r\n ;(params as IGetRowsParams).successCallback(rowsThisBlock, rowCount)\r\n }\r\n }\r\n /**\r\n * Generate odata options for build query from ag-grid request\r\n * @param params ag-grid details for the request\r\n */\r\n getOdataOptions = (\r\n params: IGetRowsParams | IServerSideGetRowsParams\r\n ): OdataQueryExtendFull => {\r\n const me = this\r\n const options: OdataQueryExtendFull = {}\r\n const isServerMode = 'request' in params\r\n const request = isServerMode\r\n ? (params as IServerSideGetRowsParams).request\r\n : (params as IGetRowsParams)\r\n const childCount = me.groupCountFieldName\r\n if (this.beforeRequest) {\r\n this.beforeRequest(options, this, request)\r\n }\r\n if (request.sortModel.length > 0) {\r\n const sort = options.sort || []\r\n for (let i = 0; i < request.sortModel.length; i++) {\r\n const col = request.sortModel[i]\r\n let colName = me.getWrapColumnName(col.colId)\r\n if (col.sort !== 'asc') {\r\n colName += ' desc'\r\n }\r\n sort.push(colName)\r\n }\r\n options.sort = sort\r\n }\r\n \r\n const filter = options.filter || []\r\n for (const colName in request.filterModel) {\r\n if (request.filterModel.hasOwnProperty(colName)) {\r\n const col = request.filterModel[colName]\r\n let colFilter = ''\r\n if (!col.operator) {\r\n colFilter = me.getFilterOdata(colName, col)\r\n if (colFilter) {\r\n filter.push(colFilter)\r\n }\r\n } else {\r\n const condition1 = me.getFilterOdata(colName, col.condition1)\r\n const condition2 = me.getFilterOdata(colName, col.condition2)\r\n if (condition1 && condition2) {\r\n colFilter = `(${condition1} ${col.operator.toLowerCase()} ${condition2})`\r\n filter.push(colFilter)\r\n }\r\n }\r\n }\r\n }\r\n \r\n let pivotActive = false\r\n \r\n const apply = options.apply || []\r\n if (isServerMode) {\r\n const requestSrv = request as IServerSideGetRowsRequest\r\n pivotActive =\r\n requestSrv.pivotMode &&\r\n requestSrv.pivotCols.length > 0 &&\r\n requestSrv.valueCols.length > 0\r\n if (requestSrv.rowGroupCols.length > 0) {\r\n const filterGroupBy: string[] = []\r\n if (requestSrv.groupKeys.length < requestSrv.rowGroupCols.length) {\r\n // If request only groups\r\n for (let idx = 0; idx < requestSrv.groupKeys.length; idx++) {\r\n const colValue = requestSrv.groupKeys[idx]\r\n const condition = `${me.getWrapColumnName(\r\n requestSrv.rowGroupCols[idx].field\r\n )} eq ${\r\n (me.isStrVal(colValue) ? \"'\" : '') +\r\n me.encode(colValue) +\r\n (me.isStrVal(colValue) ? \"'\" : '')\r\n }`\r\n filterGroupBy.push(condition)\r\n }\r\n if (filterGroupBy.length > 0 || filter.length > 0) {\r\n // Filters must by first\r\n apply.push(`filter(${filterGroupBy.concat(filter).join(' and ')})`)\r\n }\r\n \r\n const aggregate: string[] = []\r\n if (childCount) {\r\n aggregate.push(me.odataAggregation.count(childCount))\r\n }\r\n if (requestSrv.valueCols.length > 0) {\r\n for (let idx = 0; idx < requestSrv.valueCols.length; idx++) {\r\n const colValue = requestSrv.valueCols[idx]\r\n colValue.aggFunc &&\r\n aggregate.push(\r\n me.odataAggregation[colValue.aggFunc](\r\n me.getWrapColumnName(colValue.field)\r\n )\r\n )\r\n }\r\n }\r\n let groups = [\r\n me.getWrapColumnName(\r\n requestSrv.rowGroupCols[requestSrv.groupKeys.length].field\r\n ),\r\n ]\r\n const sort = options.sort || []\r\n const sortColOnly = sort.map((x) => x.split(' ')[0])\r\n if (pivotActive) {\r\n groups = groups.concat(\r\n requestSrv.pivotCols.map((x) => me.getWrapColumnName(x.field))\r\n )\r\n groups.forEach((x) => {\r\n if (sortColOnly.indexOf(x) < 0) {\r\n sort.push(x)\r\n }\r\n })\r\n }\r\n options.sort = sort\r\n apply.push(\r\n `groupby((${groups.join(',')})${\r\n aggregate.length > 0 ? `,aggregate(${aggregate.join(',')})` : ''\r\n })`\r\n )\r\n \r\n options.apply = apply\r\n if (options.sort && options.sort.length > 0) {\r\n options.sort = options.sort.filter(\r\n (x) => groups.indexOf(x.split(' ')[0]) >= 0\r\n )\r\n }\r\n // delete options.sort;\r\n } else {\r\n // If request rowData by group filter\r\n for (let idx = 0; idx < requestSrv.groupKeys.length; idx++) {\r\n const colValue = requestSrv.groupKeys[idx]\r\n const condition = `${me.getWrapColumnName(\r\n requestSrv.rowGroupCols[idx].field\r\n )} eq ${\r\n (me.isStrVal(colValue) ? \"'\" : '') +\r\n me.encode(colValue) +\r\n (me.isStrVal(colValue) ? \"'\" : '')\r\n }`\r\n filter.push(condition)\r\n }\r\n }\r\n }\r\n }\r\n if (filter.length > 0) {\r\n options.filter = filter\r\n }\r\n if (apply.length > 0) {\r\n options.apply = apply\r\n delete options.filter\r\n delete options.expand\r\n delete options.select\r\n // options.sort = null;\r\n }\r\n options.skip = request.startRow\r\n options.top = (request.endRow || 0) - (request.startRow || 0)\r\n \r\n if (!options.apply && options.skip === 0) {\r\n options.count = true\r\n }\r\n return options\r\n }\r\n /**\r\n * Generate odata query from ag-grid request\r\n * @param params ag-grid details for the request\r\n */\r\n getOdataQuery = (params: IGetRowsParams | IServerSideGetRowsParams): string =>\r\n this.toQuery(this.getOdataOptions(params))\r\n }\r\n \r\n export class OdataProviderClient extends OdataProvider {\r\n public override getRows(params: IServerSideGetRowsParams) {\r\n super.getRows(params)\r\n }\r\n }\r\n export class OdataServerSideProvider extends OdataProvider {\r\n public override getRows(params: IServerSideGetRowsParams): void {\r\n super.getRows(params)\r\n }\r\n }","import { Component } from '@angular/core';\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\n\n@Component({\n selector: 'lib-button-renderer',\n template: `\n <button class=\"btn-actions\" type=\"button\" (click)=\"onClick($event)\" [attr.data-title]=\"params.tooltip\">\n <span *ngIf=\"icon && !label\"> <i class=\"{{ icon }}\"></i> </span>\n <span *ngIf=\"!icon && label\">{{ label }}</span>\n <span *ngIf=\"icon && label\"><i class=\"{{ icon }}\"></i> {{ label }}</span>\n </button>\n `,\n})\nexport class ButtonRendererComponent implements ICellRendererAngularComp {\n params: any;\n label: any;\n icon: any;\n\n agInit(params: any): void {\n this.params = params;\n this.label = this.params.label || null;\n this.icon = this.params.icon;\n }\n\n refresh(params?: any): boolean {\n return false;\n }\n\n onClick($event: any) {\n if (this.params.onClick instanceof Function) {\n // put anything into params u want pass into parents component\n const params = {\n event: $event,\n rowData: Object.assign({}, this.params.node.data, {\n buttonName: this.params.buttonName,\n buttonText: this.params.label,\n buttonIcon: this.params.icon,\n }),\n };\n this.params.onClick(params);\n }\n }\n}\n","import { DatePipe } from '@angular/common';\r\nimport { Component } from '@angular/core';\r\nimport { ITooltipAngularComp } from 'ag-grid-angular';\r\nimport { ITooltipParams } from 'ag-grid-community';\r\n\r\n@Component({\r\n selector: 'tooltip-component',\r\n template: ` <div class=\"custom-tooltip\">\r\n <p>\r\n <span>{{ params.value }}</span>\r\n </p>\r\n </div>`,\r\n})\r\nexport class CustomTooltip implements ITooltipAngularComp { \r\n constructor(private datePipe: DatePipe) {}\r\n public params!: { color: string } & ITooltipParams;\r\n agInit(params: { color: string } & ITooltipParams): void {\r\n this.params = params;\r\n if (isNaN(+params.value)) {\r\n var dateWrapper = new Date(params.value);\r\n let isValidDate = !isNaN(dateWrapper.getDate());\r\n if (isValidDate) {\r\n params.value = this.datePipe.transform(params.value, 'MM-dd-yyyy');\r\n }\r\n }\r\n }\r\n}\r\n","import { DatePipe } from '@angular/common';\nimport {\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { AgGridAngular } from 'ag-grid-angular';\nimport {\n ColDef,\n GetRowIdFunc,\n GetRowIdParams,\n GridReadyEvent,\n PaginationNumberFormatterParams,\n RowModelType,\n ValueFormatterParams,\n} from 'ag-grid-community';\nimport { GridLibraryService } from './grid-library.service';\nimport { OdataServerSideProvider } from './helpers';\nimport { ButtonRendererComponent } from './renderer/button-renderer/button-renderer.component';\nimport { CustomTooltip } from './renderer/tooltip-renderer/custom-tooltip-renderer';\n\n@Component({\n selector: 'lib-basesite-shared-grid-lib',\n template: `\n <ag-grid-angular\n style=\"width: 100%;height:98.2vh\"\n class=\"ag-theme-balham\"\n [columnDefs]=\"columnDefs\"\n [defaultColDef]=\"defaultColDef\"\n [rowData]=\"rowData\"\n [rowSelection]=\"rowSelection\"\n [animateRows]=\"true\"\n (gridReady)=\"onGridReady($event)\"\n [pagination]=\"true\"\n [paginationPageSize]=\"gridPageSize\"\n [paginationNumberFormatter]=\"paginationNumberFormatter\"\n (modelUpdated)=\"onModelUpdated()\"\n [tooltipShowDelay]=\"tooltipShowDelay\"\n [tooltipHideDelay]=\"tooltipHideDelay\"\n [rowModelType]=\"rowModelType\"\n [cacheBlockSize]=\"cacheBlockSize\"\n [maxConcurrentDatasourceRequests]=\"1\"\n [blockLoadDebounceMillis]=\"100\"\n (columnVisible)=\"onSaveGridColumnState($event)\"\n (columnPinned)=\"onSaveGridColumnState($event)\"\n (columnResized)=\"onSaveGridColumnState($event)\"\n (columnMoved)=\"onSaveGridColumnState($event)\"\n (sortChanged)=\"onSortChangedEvent()\"\n >\n </ag-grid-angular>\n `,\n styles: [],\n})\nexport class GridLibraryComponent implements OnInit {\n //input params\n @Input() columnDefs: any;\n @Input() rowData: any;\n @Input() pageSize: number = 20;\n @Input() rowSelection: any = 'multiple';\n @Input() gridId: any;\n @Input() loggedInUser: any;\n @Input() enableServerSidePaging: boolean = false;\n @Input() serverDataUrl!: string;\n @Input() environment!: string;\n @Input() cacheBlockSize: number = 0;\n //event emitters\n @Output() btnClickHandler = new EventEmitter<any>();\n\n //viewChilds\n @ViewChild(AgGridAngular) agGrid!: AgGridAngular;\n\n //paramters\n gridColumnState: any;\n public tooltipShowDelay = 0;\n public tooltipHideDelay = 2000;\n public rowModelType: RowModelType = 'clientSide';\n public gridPageSize: number = 0;\n\n constructor(\n private gridService: GridLibraryService,\n private datePipe: DatePipe\n ) {}\n\n onSortChangedEvent() {\n this.gridColumnState = this.agGrid.columnApi.getColumnState();\n }\n\n public defaultColDef: ColDef = {\n sortable: true,\n filter: true,\n tooltipComponent: CustomTooltip,\n };\n\n ngOnInit() {\n this.gridPageSize = this.pageSize;\n this.cacheBlockSize = this.cacheBlockSize = 0\n ? this.pageSize\n : this.cacheBlockSize;\n this.gridService.setBaseUrl(this.environment);\n this.getGridState();\n this.getColDef();\n if (this.enableServerSidePaging == true) {\n this.rowModelType = 'serverSide';\n this.rowData = '';\n } else {\n this.rowModelType = 'clientSide';\n }\n }\n\n public paginationNumberFormatter: (\n params: PaginationNumberFormatterParams\n ) => string = (params: PaginationNumberFormatterParams) => {\n return '[' + params.value.toLocaleString() + ']';\n };\n\n onModelUpdated() {\n this.setGridState();\n }\n\n getColDef() {\n if (this.gridId && this.loggedInUser) {\n this.gridService.getColDef(this.gridId).subscribe((response: any) => {\n if (response.status == 1) {\n let coldef: ColDef[] = response.list.map((res: any) => {\n if (res.isButton === false) {\n return {\n field: res.field,\n headerName: res.title,\n resizable: true,\n hide: !res.visible,\n sortable: true,\n tooltipField: res.field,\n valueFormatter: this.colValueFormatter.bind(this),\n filterable: res.filterable,\n filter:\n res.columnType == 'string'\n ? 'agTextColumnFilter'\n : res.columnType == 'number'\n ? 'agNumberColumnFilter'\n : 'agDateColumnFilter',\n filterParams: {\n comparator: (\n filterLocalDateAtMidnight: any,\n cellValue: any\n ) => {\n const dateAsString = cellValue;\n\n if (dateAsString == null) {\n return 0;\n }\n if (res.columnType == 'date') {\n const cellDate = new Date(dateAsString);\n if (cellDate < filterLocalDateAtMidnight) {\n return -1;\n } else if (cellDate > filterLocalDateAtMidnight) {\n return 1;\n }\n }\n return 0;\n },\n },\n };\n } else {\n return {\n field: res.field,\n headerName: res.title,\n resizable: true,\n sortable: false,\n hide: !res.visible,\n suppressFilter: true,\n suppressSorting: true,\n suppressMenu: true,\n tooltipField: res.field,\n cellRenderer: ButtonRendererComponent,\n cellRendererParams: {\n onClick: this.onBtnClick.bind(this),\n label: res.label,\n icon: res.icon,\n buttonName: res.buttonName,\n tooltip: res.tooltip,\n },\n valueGetter: (params: any) => {\n return res.tooltip || res.title;\n },\n minWidth: 40,\n cellClass: 'action-button',\n pinned: 'left',\n lockPinned: true,\n };\n }\n });\n this.columnDefs = coldef;\n this.agGrid.gridOptions?.api?.setColumnDefs(coldef);\n this.getGridState();\n } else {\n console.log('ColDef Read Error=>', response.message);\n }\n });\n } else {\n console.log('Please pass valid GridId and loggedIn user Id');\n }\n }\n\n setExternalFilters(options: any) {\n if (\n this.serverDataUrl.indexOf('filter') >= 0 &&\n options.indexOf('filter') >= 0\n ) {\n let slug = this.serverDataUrl.split('?$filter=');\n if (slug && slug.length>0) {\n options += options + ' & ' + slug[1];\n this.serverDataUrl=slug[0];\n }\n }\n else if(this.serverDataUrl.indexOf('?')>=0){\n options=options.replace('?','&');\n }\n return `${this.serverDataUrl}${options}`;\n }\n onGridReady(params: GridReadyEvent) {\n this.gridPageSize = this.pageSize;\n if (this.enableServerSidePaging == true) {\n params.api.setServerSideDatasource(\n new OdataServerSideProvider({\n isCaseSensitiveStringFilter: false,\n callApi: (options) =>\n fetch(\n `${this.setExternalFilters(options)}`,\n {\n headers: {\n 'Content-type': 'application/json',\n Accept: 'application/json',\n },\n }\n ).then((response) => response.json()),\n })\n );\n }\n }\n\n setGridState() {\n if (this.gridColumnState) {\n this.agGrid.columnApi.applyColumnState({\n state: this.gridColumnState,\n applyOrder: true,\n });\n } else {\n var columns = this.agGrid.columnApi.getColumns();\n if (columns && columns.length > 10) {\n this.agGrid.columnApi.autoSizeAllColumns();\n } else {\n this.agGrid.api.sizeColumnsToFit();\n }\n }\n }\n\n getGridState() {\n if (this.gridId && this.loggedInUser) {\n this.gridService\n .getGridState(this.gridId, this.loggedInUser)\n .subscribe((response: any) => {\n if (\n response.status == 1 &&\n response.object &&\n response.object.gridConfig\n ) {\n this.gridColumnState = JSON.parse(response.object.gridConfig);\n this.setGridState();\n } else {\n console.log('Error while loading grid state');\n }\n });\n }\n }\n\n onBtnClick(e: any) {\n this.btnClickHandler.emit(e.rowData);\n }\n\n onSaveGridColumnState(event: any) {\n let columnState = this.agGrid.columnApi?.getColumnState();\n let columnData = {\n gridConfig: JSON.stringify(columnState),\n uiGridId: this.gridId,\n userId: this.loggedInUser,\n };\n if (event.finished == true || event.type === 'columnPinned') {\n this.gridColumnState = columnState;\n this.gridService.saveColumnConfig(columnData).subscribe((res: any) => {\n this.setGridState();\n if (res.status == 0) {\n console.log('Error while saving column configuration:', res.message);\n }\n });\n }\n }\n\n getRowById: GetRowIdFunc = (params: GetRowIdParams) => {\n var data = params.data;\n return data.id ?? 0;\n };\n\n colValueFormatter(params: ValueFormatterParams) {\n if (isNaN(+params.value)) {\n var dateWrapper = new Date(params.value);\n let isValidDate = !isNaN(dateWrapper.getDate());\n if (isValidDate) {\n return this.datePipe.transform(params.value, 'MM-dd-yyyy');\n } else {\n return params.value;\n }\n }\n return params.value;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { AgGridModule } from 'ag-grid-angular';\nimport {LicenseManager} from \"ag-grid-enterprise\";\nimport 'ag-grid-enterprise';\nLicenseManager.setLicenseKey(\"CompanyName=Basesite,LicensedGroup=Basesite,LicenseType=MultipleApplications,LicensedConcurrentDeveloperCount=2,LicensedProductionInstancesCount=2,AssetReference=AG-028469,ExpiryDate=19_May_2023_[v2]_MTY4NDQ1MDgwMDAwMA==ed6f437ea331cf602f669128db7b5387\");\nimport { HttpClientModule } from \"@angular/common/http\";\nimport { ButtonRendererComponent } from './renderer/button-renderer/button-renderer.component';\nimport { CommonModule, DatePipe } from '@angular/common';\nimport { CustomTooltip } from './renderer/tooltip-renderer/custom-tooltip-renderer';\nimport { GridLibraryComponent } from './grid-library.component';\n\n@NgModule({\n declarations: [\n GridLibraryComponent,\n ButtonRendererComponent,\n CustomTooltip\n ],\n imports: [\n AgGridModule,\n HttpClientModule,\n CommonModule,\n ],\n exports: [\n GridLibraryComponent\n ],\n providers: [DatePipe]\n})\nexport class GridLibraryModule { }\n","/*\n * Public API Surface of basesite-shared-grid-lib\n */\n\nexport * from './lib/grid-library.service';\nexport * from './lib/grid-library.component';\nexport * from './lib/grid-library.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i1.GridLibraryService","i2"],"mappings":"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"}
1
+ {"version":3,"file":"basesite-shared-grid-lib.mjs","sources":["../../../projects/basesite-shared-grid-lib/src/lib/grid-library.service.ts","../../../projects/basesite-shared-grid-lib/src/lib/helpers/utils.ts","../../../projects/basesite-shared-grid-lib/src/lib/helpers/oDataProvider.ts","../../../projects/basesite-shared-grid-lib/src/lib/renderer/button-renderer/button-renderer.component.ts","../../../projects/basesite-shared-grid-lib/src/lib/renderer/tooltip-renderer/custom-tooltip-renderer.ts","../../../projects/basesite-shared-grid-lib/src/lib/grid-library.component.ts","../../../projects/basesite-shared-grid-lib/src/lib/grid-library.module.ts","../../../projects/basesite-shared-grid-lib/src/public-api.ts","../../../projects/basesite-shared-grid-lib/src/basesite-shared-grid-lib.ts"],"sourcesContent":["import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class GridLibraryService {\n private baseUrl:any='https://localhost:8075/api';\n constructor(private httpClient: HttpClient) {\n } \n\n setBaseUrl(environment:any){\n if(environment==='test'){\n this.baseUrl='https://fcesharedgridtest.intel.com/api'\n }\n else if(environment=='uat'){\n this.baseUrl='https://fcesharedgridtest.intel.com/api'\n }\n else if(environment=='production'){\n this.baseUrl='https://fcesharedgridtest.intel.com/api'\n }\n else{\n this.baseUrl='https://localhost:8075/api'\n }\n }\n\n getColDef(gridId: any): Observable<any> {\n return this.httpClient.get<any>(\n `${this.baseUrl}/GridConfiguration/${gridId}`\n );\n }\n\n saveColumnConfig(columnConfig:any){\n return this.httpClient.post<any>(\n `${this.baseUrl}/GridConfiguration/saveUIUserGridConfiguration`,columnConfig\n );\n }\n\n getGridState(gridId:number,loggedInUserId:number){\n return this.httpClient.get<any>(\n `${this.baseUrl}/GridConfiguration?gridId=${gridId}&userId=${loggedInUserId}`\n );\n }\n}\n","export function escapeRegExp(string:any) {\r\n return string.replace(/[.*+\\-?^${}()|[\\]\\\\]/g, \"\\\\$&\"); // $& means the whole matched string\r\n }\r\n \r\n export function replaceAll(str: string, search: string, replacement: string): string {\r\n return str.replace(new RegExp(escapeRegExp(search), \"g\"), replacement);\r\n }","import {\r\n IGetRowsParams,\r\n ColDef,\r\n ColGroupDef,\r\n ColumnVO,\r\n IServerSideGetRowsRequest,\r\n IServerSideGetRowsParams,\r\n } from 'ag-grid-community'\r\n \r\n import {\r\n OdataQueryExtendFull,\r\n OdataQueryExtendOptions,\r\n OdataQueryOptions,\r\n PivotResultDat,\r\n } from './types'\r\n \r\n import { replaceAll } from './utils'\r\n export declare class OdataProviderOptions {\r\n /**\r\n * Function for call odata api\r\n */\r\n callApi: (query: string) => Promise<any>\r\n /**\r\n * Name of field contain count of record results in grouping odata query\r\n * @default childCount\r\n */\r\n groupCountFieldName?: string\r\n /**\r\n * Use in odata build query\r\n * @default false\r\n */\r\n isCaseSensitiveStringFilter?: boolean\r\n /**\r\n * Callback for extend odata query options for implement user logic\r\n */\r\n beforeRequest?: (\r\n options: OdataQueryOptions,\r\n provider: OdataProvider,\r\n request: IGetRowsParams | IServerSideGetRowsRequest\r\n ) => void\r\n /**\r\n * Callback for pivot or group for aplly column ag-grid settings\r\n * @example\r\n * <pre><code>\r\n * beforeSetSecondaryColumns = secondaryColumns => {\r\n for (let i = 0; i < secondaryColumns.length; i++) {\r\n const col = secondaryColumns[i]\r\n if (col.children) {\r\n beforeSetSecondaryColumns(col.children)\r\n } else {\r\n //Aplly new setting for group dyncamic created column\r\n // col.cellClassRules = \r\n // col.valueFormatter = \r\n }\r\n }\r\n }\r\n * </pre></code>\r\n */\r\n beforeSetSecondaryColumns?: (\r\n secondaryColDefs: (ColDef | ColGroupDef)[]\r\n ) => void\r\n /**\r\n * Callback invoked after load data\r\n * @param options odata provider options\r\n * @param rowData data for ag-grid\r\n * @param totalCount total count records\r\n * \r\n * @example\r\n * <pre><code>\r\n afterLoadData = (options, rowData, totalCount) => {\r\n if (options.skip === 0 && rowData.length > 0) {\r\n gridApi.columnController.autoSizeAllColumns()\r\n }\r\n }\r\n * </code></pre>\r\n */\r\n afterLoadData?: (\r\n options: OdataQueryExtendOptions,\r\n rowData: any[],\r\n totalCount: number\r\n ) => void\r\n /**\r\n * Callback for catch error\r\n */\r\n setError?: (\r\n error: any,\r\n params: IGetRowsParams | IServerSideGetRowsParams\r\n ) => void\r\n /**\r\n * List of columns by id/field are case sensitive for build odata query\r\n */\r\n caseSensitiveColumns?: string[]\r\n /**\r\n * Use for specified column custom filter implementation\r\n * <pre><code>\r\n customFilters: {\r\n \"customer\": (colName,col,isCaseSensitiveStringFilter,provider) =>{\r\n return provider.odataOperator.in(\r\n colName,\r\n col.values\r\n )\r\n }\r\n }\r\n */\r\n customFilters?: {\r\n [index: string]: (\r\n colName: string,\r\n col: any,\r\n isCaseSensitiveStringFilter: boolean,\r\n provider: OdataProvider\r\n ) => string\r\n }\r\n }\r\n \r\n declare interface CancelablePromise {\r\n promise: Promise<any>\r\n cancel: () => void\r\n }\r\n export class OdataProvider implements OdataProviderOptions {\r\n /**\r\n * Function for call odata api\r\n */\r\n callApi!: (query: string) => Promise<any>\r\n /**\r\n * Name of field contain count of record results in grouping odata query\r\n * @default childCount\r\n */\r\n groupCountFieldName: string = 'childCount'\r\n /**\r\n * Use in odata build query\r\n * @default false\r\n */\r\n isCaseSensitiveStringFilter: boolean = false\r\n /**\r\n * Callback for extend odata query options for implement user logic\r\n */\r\n beforeRequest: ((\r\n options: OdataQueryOptions,\r\n provider: OdataProvider,\r\n request: IGetRowsParams | IServerSideGetRowsRequest\r\n ) => void) | undefined\r\n /**\r\n * Callback for pivot or group for aplly column ag-grid settings\r\n * @example\r\n * <pre><code>\r\n * beforeSetSecondaryColumns = secondaryColumns => {\r\n for (let i = 0; i < secondaryColumns.length; i++) {\r\n const col = secondaryColumns[i]\r\n if (col.children) {\r\n beforeSetSecondaryColumns(col.children)\r\n } else {\r\n //Aplly new setting for group dyncamic created column\r\n // col.cellClassRules = \r\n // col.valueFormatter = \r\n }\r\n }\r\n }\r\n * </pre></code>\r\n */\r\n beforeSetSecondaryColumns: ((\r\n secondaryColDefs: (ColDef | ColGroupDef)[]\r\n ) => void) | undefined\r\n /**\r\n * Callback invoked after load data\r\n * @param options odata provider options\r\n * @param rowData data for ag-grid\r\n * @param totalCount total count records\r\n * \r\n * @example\r\n * <pre><code>\r\n afterLoadData = (options, rowData, totalCount) => {\r\n if (options.skip === 0 && rowData.length > 0) {\r\n gridApi.columnController.autoSizeAllColumns()\r\n }\r\n }\r\n * </code></pre>\r\n */\r\n afterLoadData: ((\r\n options: OdataQueryExtendOptions,\r\n rowData: any[],\r\n totalCount: number\r\n ) => void) | undefined\r\n /**\r\n * Callback for catch error\r\n */\r\n setError: ((\r\n error: any,\r\n params: IGetRowsParams | IServerSideGetRowsParams\r\n ) => void) | undefined\r\n /**\r\n * List of columns by id/field are case sensitive for build odata query\r\n */\r\n caseSensitiveColumns?: string[]\r\n /**\r\n * Use for specified column custom filter implementation\r\n * <pre><code>\r\n customFilters: {\r\n \"customer\": (colName,col,isCaseSensitiveStringFilter,provider) =>{\r\n return provider.odataOperator.in(\r\n colName,\r\n col.values\r\n )\r\n }\r\n }\r\n */\r\n customFilters?: {\r\n [index: string]: (\r\n colName: string,\r\n col: any,\r\n isCaseSensitiveStringFilter: boolean,\r\n provider: OdataProvider\r\n ) => string\r\n }\r\n cancelPromice: CancelablePromise\r\n constructor(options: OdataProviderOptions) {\r\n Object.assign(this, options);\r\n if (this.callApi == null) {\r\n throw new Error('callApi must be specified')\r\n }\r\n if (typeof this.callApi !== 'function') {\r\n throw new Error('callApi must be a function')\r\n }\r\n if (\r\n this.beforeRequest != null &&\r\n typeof this.beforeRequest !== 'function'\r\n ) {\r\n throw new Error('beforeRequest must be a function')\r\n }\r\n if (\r\n this.afterLoadData != null &&\r\n typeof this.afterLoadData !== 'function'\r\n ) {\r\n throw new Error('afterLoadData must be a function')\r\n }\r\n if (this.setError != null && typeof this.setError !== 'function') {\r\n throw new Error('setError must be a function')\r\n }\r\n this.cancelPromice = this.createCancelablePromise()\r\n }\r\n \r\n /**Creator a cancelable Promise */\r\n createCancelablePromise = (): CancelablePromise => {\r\n let cancel:any\r\n const pr = new Promise((_, reject) => {\r\n cancel = reject\r\n }).catch(() => {})\r\n return {\r\n promise: pr,\r\n cancel,\r\n }\r\n }\r\n /**Odata query operations */\r\n odataOperator:any = {\r\n // Logical\r\n equals: (col: string, value1: string): string => `${col} eq ${value1}`,\r\n notEqual: (col: string, value1: string): string => `${col} ne ${value1}`,\r\n lessThan: (col: string, value1: string): string => `${col} lt ${value1}`,\r\n lessThanOrEqual: (col: string, value1: string): string =>\r\n `${col} le ${value1}`,\r\n greaterThan: (col: string, value1: string): string => `${col} gt ${value1}`,\r\n greaterThanOrEqual: (col: string, value1: string): string =>\r\n `${col} ge ${value1}`,\r\n inRange: (col: string, value1: string, value2: any): string =>\r\n `(${col} ge ${value1} and ${col} le ${value2})`,\r\n // String\r\n equalsStr: (\r\n col: string,\r\n value1: string,\r\n isCaseSensitiveStringFilter: boolean\r\n ): string =>\r\n `${this.ifTolowerCol(\r\n col,\r\n isCaseSensitiveStringFilter\r\n )} eq ${this.ifTolower(value1, isCaseSensitiveStringFilter)}`,\r\n notEqualStr: (\r\n col: string,\r\n value1: string,\r\n isCaseSensitiveStringFilter: boolean\r\n ): string =>\r\n `${this.ifTolowerCol(\r\n col,\r\n isCaseSensitiveStringFilter\r\n )} ne ${this.ifTolower(value1, isCaseSensitiveStringFilter)}`,\r\n contains: (\r\n col: string,\r\n value1: string,\r\n isCaseSensitiveStringFilter: boolean\r\n ): string =>\r\n `contains(${this.ifTolowerCol(\r\n col,\r\n isCaseSensitiveStringFilter\r\n )},${this.ifTolower(value1, isCaseSensitiveStringFilter)})`,\r\n notContains: (\r\n col: string,\r\n value1: string,\r\n isCaseSensitiveStringFilter: boolean\r\n ): string =>\r\n `contains(${this.ifTolowerCol(\r\n col,\r\n isCaseSensitiveStringFilter\r\n )},${this.ifTolower(value1, isCaseSensitiveStringFilter)}) eq false`,\r\n startsWith: (\r\n col: string,\r\n value1: string,\r\n isCaseSensitiveStringFilter: boolean\r\n ): string =>\r\n `startswith(${this.ifTolowerCol(\r\n col,\r\n isCaseSensitiveStringFilter\r\n )},${this.ifTolower(value1, isCaseSensitiveStringFilter)}) eq true`,\r\n endsWith: (\r\n col: string,\r\n value1: string,\r\n isCaseSensitiveStringFilter: boolean\r\n ): string =>\r\n `endswith(${this.ifTolowerCol(\r\n col,\r\n isCaseSensitiveStringFilter\r\n )},${this.ifTolower(value1, isCaseSensitiveStringFilter)}) eq true`,\r\n inStr: (\r\n col: string,\r\n values: string[],\r\n isCaseSensitiveStringFilter: boolean\r\n ): string =>\r\n `${this.ifTolowerCol(col, isCaseSensitiveStringFilter)} in (${values\r\n .map(\r\n (x) =>\r\n `'${this.ifTolower(this.encode(x), isCaseSensitiveStringFilter)}'`\r\n )\r\n .join()})`,\r\n in: (col: string, values: string[]) =>\r\n `${col} in (${values.map((x) => `${this.encode(x)}`).join()})`,\r\n notIn: (col: string, values: string[]) =>\r\n `not (${col} in (${values.map((x) => `${x}`).join()}))`,\r\n // Date\r\n trunc: (col: string): string => `date(${col})`,\r\n }\r\n \r\n /**\r\n * Apply tolower for column in odata syntax\r\n * @param col column name\r\n * @param isCaseSensitiveStringFilter need apply tolower\r\n */\r\n ifTolowerCol = (col: string, isCaseSensitiveStringFilter: boolean): string =>\r\n isCaseSensitiveStringFilter ? col : `tolower(${col})`\r\n \r\n /**\r\n *\r\n * @param value string value\r\n * @param isCaseSensitiveStringFilter need apply tolower\r\n */\r\n ifTolower = (value: string, isCaseSensitiveStringFilter: boolean): string =>\r\n isCaseSensitiveStringFilter ? value : value ? value.toLowerCase() : value\r\n /**\r\n * Odata aggregation operations\r\n */\r\n odataAggregation:any = {\r\n // Logical\r\n sum: (col: string, asField?: any): string =>\r\n `${col} with sum as ${col || asField}`,\r\n min: (col: string, asField?: any): string =>\r\n `${col} with min as ${col || asField}`,\r\n max: (col: string, asField?: any): string =>\r\n `${col} with max as ${col || asField}`,\r\n avg: (col: string, asField?: any): string =>\r\n `${col} with average as ${col || asField}`,\r\n count: (col: string, asField?: any): string =>\r\n `$count as ${col || asField}`,\r\n }\r\n /**\r\n * Odata query builder\r\n * @param options parameter for odata query\r\n */\r\n toQuery = (options: OdataQueryExtendFull): string => {\r\n let path: string[] = []\r\n if (options) {\r\n path.push('$count=true')\r\n }\r\n if (options.skip) {\r\n path.push(`$skip=${options.skip}`)\r\n }\r\n if (options.top) {\r\n path.push(`$top=${options.top}`)\r\n }\r\n if (options.sort && options.sort.length > 0) {\r\n path.push('$orderby=' + options.sort.join(','))\r\n }\r\n if (options.filter && options.filter.length > 0) {\r\n path.push('$filter=' + options.filter.join(' and '))\r\n }\r\n if (options.apply && options.apply.length > 0) {\r\n path.push('$apply=' + options.apply.join('/'))\r\n }\r\n if (options.expand && options.expand.length > 0) {\r\n path.push('$expand=' + options.expand.join(','))\r\n }\r\n if (options.select && options.select.length > 0) {\r\n path.push('$select=' + options.select.join(','))\r\n }\r\n let query: string = ''\r\n if (path.length > 0) {\r\n query = '?' + path.join('&')\r\n }\r\n return query\r\n }\r\n /**\r\n * Add quotes for string value\r\n * @param value string value\r\n */\r\n encode = (value: string): string =>\r\n this.isStrVal(value) ? replaceAll(value, \"'\", \"''\") : value\r\n /**\r\n * Conctat to date a time for create datetime format for odata query\r\n * @param value date string\r\n */\r\n toDateTime = (value: string): string | null => {\r\n const dt = new Date(value)\r\n if (isNaN(dt.getTime())) return null\r\n const dt1 = new Date(\r\n Date.UTC(dt.getFullYear(), dt.getMonth(), dt.getDate())\r\n )\r\n return dt1.toISOString()\r\n }\r\n /**\r\n *\r\n * @param colName columnName\r\n * @returns is CaseSensitive for column\r\n */\r\n private getIsNeedCaseSensitive = (colName: string) => {\r\n if (\r\n !this.isCaseSensitiveStringFilter &&\r\n this.caseSensitiveColumns &&\r\n this.caseSensitiveColumns.length > 0\r\n ) {\r\n return this.caseSensitiveColumns.indexOf(colName) >= 0\r\n }\r\n return this.isCaseSensitiveStringFilter\r\n }\r\n /**\r\n * Convert ag-grid column filter to odata query\r\n * @param colName columnName\r\n * @param col ag-grid column\r\n */\r\n private getFilterOdata = (colName: string, col: any): string => {\r\n const me = this\r\n const isCaseSensitiveStringFilter = me.getIsNeedCaseSensitive(colName)\r\n const customFilter = me.customFilters && me.customFilters[colName]\r\n colName = replaceAll(colName, '.', '/')\r\n colName = me.getWrapColumnName(colName)\r\n if (customFilter) {\r\n return customFilter(colName, col, isCaseSensitiveStringFilter, me)\r\n } else {\r\n switch (col.filterType) {\r\n case 'number':\r\n return me.odataOperator[col.type](colName, col.filter, col.filterTo)\r\n case 'text': {\r\n let operatorName = col.type\r\n const filter = me.encode(col.filter)\r\n // let filterTo = me.encode(col.filterTo);\r\n if (\r\n (operatorName === 'equals' || operatorName === 'notEqual') &&\r\n !isCaseSensitiveStringFilter\r\n ) {\r\n operatorName += 'Str'\r\n }\r\n return me.odataOperator[operatorName](\r\n colName,\r\n `'${filter}'`,\r\n isCaseSensitiveStringFilter\r\n )\r\n }\r\n case 'date':\r\n if (\r\n col.dateFrom != null &&\r\n me.toDateTime(col.dateFrom) != null &&\r\n (col.dateTo == null ||\r\n (col.dateTo != null && me.toDateTime(col.dateTo) != null))\r\n ) {\r\n return me.odataOperator[col.type](\r\n colName,\r\n `${me.toDateTime(col.dateFrom)}`,\r\n `${me.toDateTime(col.dateTo)}`\r\n )\r\n }\r\n break\r\n case 'set':\r\n return col.values.length > 0\r\n ? me.odataOperator.inStr(\r\n colName,\r\n col.values,\r\n isCaseSensitiveStringFilter\r\n )\r\n : ''\r\n default:\r\n break\r\n }\r\n }\r\n return ''\r\n }\r\n \r\n /**\r\n * Extract value from record by path to field\r\n * @param field path to column value\r\n * @param obj record\r\n */\r\n private getValue(field: string, obj: any): any {\r\n const paths = field.split('.')\r\n if (paths.length === 1) {\r\n return obj[field]\r\n } else {\r\n return paths.reduce((object, path) => {\r\n return (object || {})[path] // Oliver Steele's pattern\r\n }, obj)\r\n }\r\n }\r\n \r\n /**\r\n * Caclulate pivot data for ag-grid from odata\r\n * @param pivotCols pivot columns\r\n * @param rowGroupCols row group columns\r\n * @param valueCols value columns\r\n * @param data odata result\r\n * @param countField count field name\r\n */\r\n private getPivot = (\r\n pivotCols: ColumnVO[],\r\n rowGroupCols: ColumnVO[],\r\n valueCols: ColumnVO[],\r\n data: any[],\r\n countField: string\r\n ): PivotResultDat => {\r\n // assume 1 pivot col and 1 value col for this example\r\n const me = this\r\n const pivotData: any[] = []\r\n const aggColsList: any[] = []\r\n \r\n const colKeyExistsMap: any = {}\r\n \r\n const secondaryColDefs: any[] = []\r\n const secondaryColDefsMap:any = {}\r\n \r\n data.forEach(function (item) {\r\n var pivotValues: string[] = []\r\n pivotCols.forEach(function (pivotCol) {\r\n var pivotField = pivotCol.id\r\n var pivotValue = me.getValue(pivotField, item)\r\n if (\r\n pivotValue !== null &&\r\n pivotValue !== undefined &&\r\n pivotValue.toString\r\n ) {\r\n pivotValues.push(pivotValue.toString())\r\n } else {\r\n pivotValues.push('-')\r\n }\r\n })\r\n \r\n // var pivotValue = item[pivotField].toString();\r\n var pivotItem:any = {}\r\n \r\n valueCols.forEach(function (valueCol) {\r\n var valField = valueCol.id\r\n var colKey = createColKey(pivotValues, valField)\r\n \r\n var value = me.getValue(valField, item)\r\n pivotItem[colKey] = value\r\n \r\n if (!colKeyExistsMap[colKey]) {\r\n addNewAggCol(colKey, valueCol)\r\n addNewSecondaryColDef(colKey, pivotValues, valueCol)\r\n colKeyExistsMap[colKey] = true\r\n }\r\n })\r\n if (countField) {\r\n pivotItem[countField] = me.getValue(countField, item)\r\n }\r\n \r\n rowGroupCols.forEach(function (rowGroupCol) {\r\n var rowGroupField = rowGroupCol.id.split('.')[0]\r\n pivotItem[rowGroupField] = item[rowGroupField]\r\n })\r\n \r\n pivotData.push(pivotItem)\r\n })\r\n \r\n function addNewAggCol(colKey: string, valueCol: ColumnVO): void {\r\n var newCol = {\r\n id: colKey,\r\n field: colKey,\r\n aggFunc: valueCol.aggFunc,\r\n }\r\n aggColsList.push(newCol)\r\n }\r\n \r\n function addNewSecondaryColDef(colKey:any, pivotValues:any, valueCol:any) {\r\n var parentGroup: any = null\r\n \r\n var keyParts: any = []\r\n \r\n pivotValues.forEach(function (pivotValue: any) {\r\n keyParts.push(pivotValue)\r\n var colKey = createColKey(keyParts)\r\n var groupColDef: any = secondaryColDefsMap[colKey]\r\n if (!groupColDef) {\r\n groupColDef = {\r\n groupId: colKey,\r\n headerName: pivotValue,\r\n children: [],\r\n }\r\n secondaryColDefsMap[colKey] = groupColDef\r\n if (parentGroup) {\r\n parentGroup.children.push(groupColDef)\r\n } else {\r\n secondaryColDefs.push(groupColDef)\r\n }\r\n }\r\n parentGroup = groupColDef\r\n })\r\n \r\n parentGroup.children.push({\r\n colId: colKey,\r\n headerName: valueCol.aggFunc + '(' + valueCol.displayName + ')',\r\n field: colKey,\r\n suppressMenu: true,\r\n sortable: false,\r\n })\r\n }\r\n \r\n function createColKey(pivotValues: string[], valueField?: string): string {\r\n var result = pivotValues.join('|')\r\n if (valueField !== undefined) {\r\n result += '|' + valueField\r\n }\r\n result = replaceAll(result, '.', '*')\r\n return result\r\n }\r\n \r\n return {\r\n data: pivotData,\r\n aggCols: aggColsList,\r\n secondaryColDefs: secondaryColDefs,\r\n }\r\n }\r\n \r\n /**\r\n *\r\n * @param rowData array odata result\r\n * @param rowGroupCols row group columns\r\n * @param groupKeys what groups the user is viewing\r\n * @param countField count field name\r\n */\r\n private buildGroupsFromData = (\r\n rowData: any[],\r\n rowGroupCols: ColumnVO[],\r\n groupKeys: string[],\r\n countField: string\r\n ): any[] => {\r\n const me = this\r\n let rowGroupCol = rowGroupCols[groupKeys.length]\r\n let field = rowGroupCol.id\r\n let mappedRowData = me.groupBy(rowData, field)\r\n let groups: any = []\r\n \r\n me.iterateObject(mappedRowData, function (key, rowData) {\r\n var groupItem = me.aggregateList(rowData, countField)\r\n groupItem[field] = key\r\n groups.push(groupItem)\r\n })\r\n return groups\r\n }\r\n \r\n /**\r\n * Internal function for execute callback function for each property of object\r\n * @param object object contained odata grouped result\r\n * @param callback function do somthing\r\n */\r\n private iterateObject = (\r\n object: any,\r\n callback: (key: string, rowData: any[]) => void\r\n ): void => {\r\n if (!object) {\r\n return\r\n }\r\n const keys = Object.keys(object)\r\n for (let i = 0; i < keys.length; i++) {\r\n const key = keys[i]\r\n const value = object[key]\r\n callback(key, value)\r\n }\r\n }\r\n \r\n /**\r\n * Prepeare grouped data\r\n * @param rowData array odata result\r\n * @param field grouping field\r\n */\r\n private groupBy = (rowData: any[], field: string): any => {\r\n var result:any = {}\r\n const me = this\r\n rowData.forEach(function (item) {\r\n var key = me.getValue(field, item)\r\n var listForThisKey = result[key]\r\n if (!listForThisKey) {\r\n listForThisKey = []\r\n result[key] = listForThisKey\r\n }\r\n listForThisKey.push(item)\r\n })\r\n return result\r\n }\r\n \r\n /**\r\n * Calculate total count records in group\r\n * @param rowData array odata result data\r\n * @param countField field contained count of all records\r\n */\r\n private aggregateList = (rowData: any[], countField: string): any => {\r\n var result:any = {}\r\n rowData.forEach((row) => {\r\n if (countField && row[countField] != null) {\r\n const totalCount = (result[countField] || 0) + (row[countField] || 0)\r\n delete row[countField]\r\n result[countField] = totalCount\r\n }\r\n result = Object.assign(result, row)\r\n })\r\n return result\r\n }\r\n \r\n /**\r\n * Calculate distinct values for input field from Odata api\r\n * @param field The field of the row to get the cells data from \r\n * @param callback The function for return distinct values for input field\r\n * @param beforeRequest The function for customize request\r\n * @example \r\n * <pre><code>\r\n * const setFilterValuesFuncParams = params => {\r\n * const me = this\r\n * const col = params.colDef.field\r\n * const storeName = me.getStoreName(col)\r\n * const callback = data => {\r\n * if (data) {\r\n * me.setState({ [storeName]: data })\r\n * params.success(data)\r\n * }\r\n * }\r\n * odataProviderInstance.getFilterValuesParams(params.colDef.field, callback)\r\n * }\r\n * \r\n * ///....\r\n * <AgGridColumn\r\n field=\"product\"\r\n headerName={'PRODUCT'}\r\n filter=\"agSetColumnFilter\"\r\n // rowGroup\r\n // enablePivot\r\n enableRowGroup\r\n filterParams={{\r\n values: setFilterValuesFuncParams,\r\n newRowsAction: 'keep'\r\n }}\r\n // filterParams={{caseSensitive: true}}\r\n />\r\n * </code></pre>\r\n */\r\n getFilterValuesParams = (\r\n field: string,\r\n callback: (data: any[]) => void,\r\n beforeRequest: (options: OdataQueryExtendFull) => void | undefined\r\n ): void => {\r\n const me = this\r\n const options: OdataQueryExtendFull = {\r\n apply: [`groupby((${me.getWrapColumnName(field)}))`],\r\n }\r\n if (beforeRequest) {\r\n beforeRequest(options)\r\n }\r\n me.callApi(me.toQuery(options)).then((x) => {\r\n if (x) {\r\n let values = me.getOdataResult(x)\r\n callback(values.map((y:any) => y[field]))\r\n }\r\n })\r\n }\r\n /**\r\n * Detect is string value\r\n * @param value\r\n */\r\n isStrVal = (value: any): boolean => typeof value === 'string'\r\n /**\r\n * Extartc values from odata response\r\n * @param response\r\n */\r\n private getOdataResult = (response: any): any =>\r\n Array.isArray(response) ? response : response.value\r\n /**\r\n * Endocing column name to odata notation\r\n * @param colName column name\r\n */\r\n private getWrapColumnName = (colName: string | undefined): string =>\r\n colName ? replaceAll(colName, '.', '/') : ''\r\n /**\r\n * grid calls this to get rows for IServerSideDatasource\r\n * @param params ag-grid details for the request\r\n */\r\n /**\r\n * grid calls this to get rows implement\r\n * @param params ag-grid details for the request\r\n */\r\n public getRows(params: IGetRowsParams | IServerSideGetRowsParams): void {\r\n const me = this\r\n const childCount = me.groupCountFieldName\r\n const isServerMode = 'request' in params\r\n const request = isServerMode\r\n ? (params as IServerSideGetRowsParams).request\r\n : (params as IGetRowsParams)\r\n const requestSrv = request as IServerSideGetRowsRequest\r\n \r\n const pivotActive = !isServerMode\r\n ? false\r\n : requestSrv.pivotMode &&\r\n requestSrv.pivotCols.length > 0 &&\r\n requestSrv.valueCols.length > 0\r\n \r\n if (!pivotActive) {\r\n let fn = (params as any).columnApi.setPivotResultColumns\r\n if (fn != null) {\r\n // if ((params as any).columnApi.isPivotMode()) {\r\n ;(params as any).columnApi.setPivotResultColumns([])\r\n // }\r\n } else {\r\n ;(params as any).columnApi.setSecondaryColumns([])\r\n }\r\n }\r\n const options = me.getOdataOptions(params)\r\n const query = me.toQuery(options)\r\n if (\r\n options.skip === 0 &&\r\n (!isServerMode ||\r\n (isServerMode &&\r\n (params as IServerSideGetRowsParams).parentNode.level === -1))\r\n ) {\r\n me.cancelPromice.cancel()\r\n me.cancelPromice = me.createCancelablePromise()\r\n }\r\n Promise.race([me.cancelPromice.promise, me.callApi(query)]).then(\r\n async (x) => {\r\n if (!x) {\r\n params.failCallback()\r\n } else {\r\n const values = me.getOdataResult(x)\r\n if (!pivotActive) {\r\n if (!options.apply) {\r\n me.setResult(params, isServerMode, values, x['@odata.count'] || x[0]?.totalCount)\r\n if (this.afterLoadData) {\r\n this.afterLoadData(options, values, x['@odata.count'] || x[0]?.totalCount)\r\n }\r\n } else {\r\n let count = values.length\r\n if (count === options.top && options.skip === 0) {\r\n // If received grouped count of value large than requested then request total count of values\r\n me.callApi(query + '/aggregate($count as count)').then((y) => {\r\n count = me.getOdataResult(y)[0].count\r\n me.setResult(params, isServerMode, values, count)\r\n })\r\n } else {\r\n if (options.skip != null && options.skip > 0) {\r\n count = null\r\n }\r\n me.setResult(params, isServerMode, values, count)\r\n if (this.afterLoadData) {\r\n this.afterLoadData(options, values, count)\r\n }\r\n }\r\n }\r\n } else {\r\n let rowData = me.getOdataResult(x)\r\n // Check count\r\n if (\r\n rowData.length === options.top &&\r\n options.skip === 0 &&\r\n requestSrv.groupKeys.length === 0\r\n ) {\r\n let eof = false\r\n while (!eof) {\r\n options.skip += options.top || 0\r\n const subQuery = me.toQuery(options)\r\n const newRowData = await me.callApi(subQuery)\r\n if (!newRowData) {\r\n params.failCallback()\r\n return\r\n }\r\n eof = newRowData.length !== options.top\r\n rowData = rowData.concat(newRowData)\r\n }\r\n }\r\n const pivotResult = me.getPivot(\r\n requestSrv.pivotCols,\r\n requestSrv.rowGroupCols,\r\n requestSrv.valueCols,\r\n rowData,\r\n childCount\r\n )\r\n rowData = pivotResult.data\r\n const secondaryColDefs = pivotResult.secondaryColDefs\r\n rowData = me.buildGroupsFromData(\r\n rowData,\r\n requestSrv.rowGroupCols,\r\n requestSrv.groupKeys,\r\n childCount\r\n )\r\n const totalCount =\r\n requestSrv.groupKeys.length === 0\r\n ? rowData.length\r\n : rowData.length === options.top\r\n ? null\r\n : rowData.length\r\n // if (totalCount > (options.top || 0)) {\r\n // const serverSideBlock = (params as any).parentNode.rowModel\r\n // .rowNodeBlockLoader.blocks[0];\r\n // serverSideBlock.rowNodeCacheParams.blockSize = totalCount;\r\n // serverSideBlock.endRow = serverSideBlock.startRow + totalCount;\r\n // serverSideBlock.createRowNodes();\r\n // }\r\n me.setResult(params, isServerMode, rowData, totalCount)\r\n if (this.afterLoadData) {\r\n this.afterLoadData(options, rowData, totalCount)\r\n }\r\n if (requestSrv.groupKeys.length === 0) {\r\n if (this.beforeSetSecondaryColumns) {\r\n this.beforeSetSecondaryColumns(secondaryColDefs)\r\n }\r\n let fn = (params as any).columnApi.setPivotResultColumns\r\n if (fn) {\r\n ;(params as any).columnApi.setPivotResultColumns(\r\n secondaryColDefs\r\n )\r\n } else {\r\n ;(params as any).columnApi.setSecondaryColumns(secondaryColDefs)\r\n }\r\n }\r\n }\r\n }\r\n },\r\n (err) => {\r\n me.setResult(params, isServerMode, [], 0)\r\n if (this.setError) {\r\n this.setError(err, params)\r\n }\r\n }\r\n )\r\n }\r\n /**\r\n * Set result\r\n * @param params ag-grid details for the request\r\n * @param isServerMode detect type of params\r\n * @param rowsThisBlock data of the request\r\n * @param rowCount count of total result\r\n */\r\n private setResult = (\r\n params: IGetRowsParams | IServerSideGetRowsParams,\r\n isServerMode: boolean,\r\n rowsThisBlock: any[],\r\n rowCount?: number\r\n ): void => {\r\n if (isServerMode) {\r\n ;(params as IServerSideGetRowsParams).success({\r\n rowData: rowsThisBlock,\r\n rowCount: rowCount,\r\n })\r\n } else {\r\n ;(params as IGetRowsParams).successCallback(rowsThisBlock, rowCount)\r\n }\r\n }\r\n /**\r\n * Generate odata options for build query from ag-grid request\r\n * @param params ag-grid details for the request\r\n */\r\n getOdataOptions = (\r\n params: IGetRowsParams | IServerSideGetRowsParams\r\n ): OdataQueryExtendFull => {\r\n const me = this\r\n const options: OdataQueryExtendFull = {}\r\n const isServerMode = 'request' in params\r\n const request = isServerMode\r\n ? (params as IServerSideGetRowsParams).request\r\n : (params as IGetRowsParams)\r\n const childCount = me.groupCountFieldName\r\n if (this.beforeRequest) {\r\n this.beforeRequest(options, this, request)\r\n }\r\n if (request.sortModel.length > 0) {\r\n const sort = options.sort || []\r\n for (let i = 0; i < request.sortModel.length; i++) {\r\n const col = request.sortModel[i]\r\n let colName = me.getWrapColumnName(col.colId)\r\n if (col.sort !== 'asc') {\r\n colName += ' desc'\r\n }\r\n sort.push(colName)\r\n }\r\n options.sort = sort\r\n }\r\n \r\n const filter = options.filter || []\r\n for (const colName in request.filterModel) {\r\n if (request.filterModel.hasOwnProperty(colName)) {\r\n const col = request.filterModel[colName]\r\n let colFilter = ''\r\n if (!col.operator) {\r\n colFilter = me.getFilterOdata(colName, col)\r\n if (colFilter) {\r\n filter.push(colFilter)\r\n }\r\n } else {\r\n const condition1 = me.getFilterOdata(colName, col.condition1)\r\n const condition2 = me.getFilterOdata(colName, col.condition2)\r\n if (condition1 && condition2) {\r\n colFilter = `(${condition1} ${col.operator.toLowerCase()} ${condition2})`\r\n filter.push(colFilter)\r\n }\r\n }\r\n }\r\n }\r\n \r\n let pivotActive = false\r\n \r\n const apply = options.apply || []\r\n if (isServerMode) {\r\n const requestSrv = request as IServerSideGetRowsRequest\r\n pivotActive =\r\n requestSrv.pivotMode &&\r\n requestSrv.pivotCols.length > 0 &&\r\n requestSrv.valueCols.length > 0\r\n if (requestSrv.rowGroupCols.length > 0) {\r\n const filterGroupBy: string[] = []\r\n if (requestSrv.groupKeys.length < requestSrv.rowGroupCols.length) {\r\n // If request only groups\r\n for (let idx = 0; idx < requestSrv.groupKeys.length; idx++) {\r\n const colValue = requestSrv.groupKeys[idx]\r\n const condition = `${me.getWrapColumnName(\r\n requestSrv.rowGroupCols[idx].field\r\n )} eq ${\r\n (me.isStrVal(colValue) ? \"'\" : '') +\r\n me.encode(colValue) +\r\n (me.isStrVal(colValue) ? \"'\" : '')\r\n }`\r\n filterGroupBy.push(condition)\r\n }\r\n if (filterGroupBy.length > 0 || filter.length > 0) {\r\n // Filters must by first\r\n apply.push(`filter(${filterGroupBy.concat(filter).join(' and ')})`)\r\n }\r\n \r\n const aggregate: string[] = []\r\n if (childCount) {\r\n aggregate.push(me.odataAggregation.count(childCount))\r\n }\r\n if (requestSrv.valueCols.length > 0) {\r\n for (let idx = 0; idx < requestSrv.valueCols.length; idx++) {\r\n const colValue = requestSrv.valueCols[idx]\r\n colValue.aggFunc &&\r\n aggregate.push(\r\n me.odataAggregation[colValue.aggFunc](\r\n me.getWrapColumnName(colValue.field)\r\n )\r\n )\r\n }\r\n }\r\n let groups = [\r\n me.getWrapColumnName(\r\n requestSrv.rowGroupCols[requestSrv.groupKeys.length].field\r\n ),\r\n ]\r\n const sort = options.sort || []\r\n const sortColOnly = sort.map((x) => x.split(' ')[0])\r\n if (pivotActive) {\r\n groups = groups.concat(\r\n requestSrv.pivotCols.map((x) => me.getWrapColumnName(x.field))\r\n )\r\n groups.forEach((x) => {\r\n if (sortColOnly.indexOf(x) < 0) {\r\n sort.push(x)\r\n }\r\n })\r\n }\r\n options.sort = sort\r\n apply.push(\r\n `groupby((${groups.join(',')})${\r\n aggregate.length > 0 ? `,aggregate(${aggregate.join(',')})` : ''\r\n })`\r\n )\r\n \r\n options.apply = apply\r\n if (options.sort && options.sort.length > 0) {\r\n options.sort = options.sort.filter(\r\n (x) => groups.indexOf(x.split(' ')[0]) >= 0\r\n )\r\n }\r\n // delete options.sort;\r\n } else {\r\n // If request rowData by group filter\r\n for (let idx = 0; idx < requestSrv.groupKeys.length; idx++) {\r\n const colValue = requestSrv.groupKeys[idx]\r\n const condition = `${me.getWrapColumnName(\r\n requestSrv.rowGroupCols[idx].field\r\n )} eq ${\r\n (me.isStrVal(colValue) ? \"'\" : '') +\r\n me.encode(colValue) +\r\n (me.isStrVal(colValue) ? \"'\" : '')\r\n }`\r\n filter.push(condition)\r\n }\r\n }\r\n }\r\n }\r\n if (filter.length > 0) {\r\n options.filter = filter\r\n }\r\n if (apply.length > 0) {\r\n options.apply = apply\r\n delete options.filter\r\n delete options.expand\r\n delete options.select\r\n // options.sort = null;\r\n }\r\n options.skip = request.startRow\r\n options.top = (request.endRow || 0) - (request.startRow || 0)\r\n \r\n if (!options.apply && options.skip === 0) {\r\n options.count = true\r\n }\r\n return options\r\n }\r\n /**\r\n * Generate odata query from ag-grid request\r\n * @param params ag-grid details for the request\r\n */\r\n getOdataQuery = (params: IGetRowsParams | IServerSideGetRowsParams): string =>\r\n this.toQuery(this.getOdataOptions(params))\r\n }\r\n \r\n export class OdataProviderClient extends OdataProvider {\r\n public override getRows(params: IServerSideGetRowsParams) {\r\n super.getRows(params)\r\n }\r\n }\r\n export class OdataServerSideProvider extends OdataProvider {\r\n public override getRows(params: IServerSideGetRowsParams): void {\r\n super.getRows(params)\r\n }\r\n }","import { Component } from '@angular/core';\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\n\n@Component({\n selector: 'lib-button-renderer',\n template: `\n <button class=\"btn-actions\" type=\"button\" (click)=\"onClick($event)\" [attr.data-title]=\"params.tooltip\">\n <span *ngIf=\"icon && !label\"> <i class=\"{{ icon }}\"></i> </span>\n <span *ngIf=\"!icon && label\">{{ label }}</span>\n <span *ngIf=\"icon && label\"><i class=\"{{ icon }}\"></i> {{ label }}</span>\n </button>\n `,\n})\nexport class ButtonRendererComponent implements ICellRendererAngularComp {\n params: any;\n label: any;\n icon: any;\n\n agInit(params: any): void {\n this.params = params;\n this.label = this.params.label || null;\n this.icon = this.params.icon;\n }\n\n refresh(params?: any): boolean {\n return false;\n }\n\n onClick($event: any) {\n if (this.params.onClick instanceof Function) {\n // put anything into params u want pass into parents component\n const params = {\n event: $event,\n rowData: Object.assign({}, this.params.node.data, {\n buttonName: this.params.buttonName,\n buttonText: this.params.label,\n buttonIcon: this.params.icon,\n }),\n };\n this.params.onClick(params);\n }\n }\n}\n","import { DatePipe } from '@angular/common';\r\nimport { Component } from '@angular/core';\r\nimport { ITooltipAngularComp } from 'ag-grid-angular';\r\nimport { ITooltipParams } from 'ag-grid-community';\r\n\r\n@Component({\r\n selector: 'tooltip-component',\r\n template: ` <div class=\"custom-tooltip\">\r\n <p>\r\n <span>{{ params.value }}</span>\r\n </p>\r\n </div>`,\r\n})\r\nexport class CustomTooltip implements ITooltipAngularComp { \r\n constructor(private datePipe: DatePipe) {}\r\n public params!: { color: string } & ITooltipParams;\r\n agInit(params: { color: string } & ITooltipParams): void {\r\n this.params = params;\r\n if (isNaN(+params.value)) {\r\n var dateWrapper = new Date(params.value);\r\n let isValidDate = !isNaN(dateWrapper.getDate());\r\n if (isValidDate) {\r\n params.value = this.datePipe.transform(params.value, 'MM-dd-yyyy');\r\n }\r\n }\r\n }\r\n}\r\n","import { DatePipe } from '@angular/common';\nimport {\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { AgGridAngular } from 'ag-grid-angular';\nimport {\n ColDef,\n GetRowIdFunc,\n GetRowIdParams,\n GridReadyEvent,\n PaginationNumberFormatterParams,\n RowModelType,\n ValueFormatterParams,\n} from 'ag-grid-community';\nimport { GridLibraryService } from './grid-library.service';\nimport { OdataServerSideProvider } from './helpers';\nimport { ButtonRendererComponent } from './renderer/button-renderer/button-renderer.component';\nimport { CustomTooltip } from './renderer/tooltip-renderer/custom-tooltip-renderer';\n\n@Component({\n selector: 'lib-basesite-shared-grid-lib',\n template: `\n <ag-grid-angular\n style=\"width: 100%;height:98.2vh\"\n class=\"ag-theme-balham\"\n [columnDefs]=\"columnDefs\"\n [defaultColDef]=\"defaultColDef\"\n [rowData]=\"rowData\"\n [rowSelection]=\"rowSelection\"\n [animateRows]=\"true\"\n (gridReady)=\"onGridReady($event)\"\n [pagination]=\"true\"\n [paginationPageSize]=\"gridPageSize\"\n [paginationNumberFormatter]=\"paginationNumberFormatter\"\n (modelUpdated)=\"onModelUpdated()\"\n [tooltipShowDelay]=\"tooltipShowDelay\"\n [tooltipHideDelay]=\"tooltipHideDelay\"\n [rowModelType]=\"rowModelType\"\n [cacheBlockSize]=\"cacheBlockSize\"\n [maxConcurrentDatasourceRequests]=\"1\"\n [blockLoadDebounceMillis]=\"100\"\n (columnVisible)=\"onSaveGridColumnState($event)\"\n (columnPinned)=\"onSaveGridColumnState($event)\"\n (columnResized)=\"onSaveGridColumnState($event)\"\n (columnMoved)=\"onSaveGridColumnState($event)\"\n (sortChanged)=\"onSortChangedEvent()\"\n >\n </ag-grid-angular>\n `,\n styles: [],\n})\nexport class GridLibraryComponent implements OnInit {\n //input params\n @Input() columnDefs: any;\n @Input() rowData: any;\n @Input() pageSize: number = 20;\n @Input() rowSelection: any = 'multiple';\n @Input() gridId: any;\n @Input() loggedInUser: any;\n @Input() enableServerSidePaging: boolean = false;\n @Input() serverDataUrl!: string;\n @Input() environment!: string;\n @Input() cacheBlockSize: number = 0;\n //event emitters\n @Output() btnClickHandler = new EventEmitter<any>();\n\n //viewChilds\n @ViewChild(AgGridAngular) agGrid!: AgGridAngular;\n\n //paramters\n gridColumnState: any;\n public tooltipShowDelay = 0;\n public tooltipHideDelay = 2000;\n public rowModelType: RowModelType = 'clientSide';\n public gridPageSize: number = 0;\n\n constructor(\n private gridService: GridLibraryService,\n private datePipe: DatePipe\n ) {}\n\n onSortChangedEvent() {\n this.gridColumnState = this.agGrid.columnApi.getColumnState();\n }\n\n public defaultColDef: ColDef = {\n sortable: true,\n filter: true,\n tooltipComponent: CustomTooltip,\n };\n\n ngOnInit() {\n this.gridPageSize = this.pageSize;\n this.cacheBlockSize = this.cacheBlockSize = 0\n ? this.pageSize\n : this.cacheBlockSize;\n this.gridService.setBaseUrl(this.environment);\n this.getGridState();\n this.getColDef();\n if (this.enableServerSidePaging == true) {\n this.rowModelType = 'serverSide';\n this.rowData = '';\n } else {\n this.rowModelType = 'clientSide';\n }\n }\n\n public paginationNumberFormatter: (\n params: PaginationNumberFormatterParams\n ) => string = (params: PaginationNumberFormatterParams) => {\n return '[' + params.value.toLocaleString() + ']';\n };\n\n onModelUpdated() {\n this.setGridState();\n }\n\n getColDef() {\n if (this.gridId && this.loggedInUser) {\n this.gridService.getColDef(this.gridId).subscribe((response: any) => {\n if (response.status == 1) {\n let coldef: ColDef[] = response.list.map((res: any) => {\n if (res.isButton === false) {\n return {\n field: res.field,\n headerName: res.title,\n resizable: true,\n hide: !res.visible,\n sortable: true,\n tooltipField: res.field,\n valueFormatter: this.colValueFormatter.bind(this),\n filterable: res.filterable,\n filter:\n res.columnType == 'string'\n ? 'agTextColumnFilter'\n : res.columnType == 'number'\n ? 'agNumberColumnFilter'\n : 'agDateColumnFilter',\n filterParams: {\n comparator: (\n filterLocalDateAtMidnight: any,\n cellValue: any\n ) => {\n const dateAsString = cellValue;\n\n if (dateAsString == null) {\n return 0;\n }\n if (res.columnType == 'date') {\n const cellDate = new Date(dateAsString);\n if (cellDate < filterLocalDateAtMidnight) {\n return -1;\n } else if (cellDate > filterLocalDateAtMidnight) {\n return 1;\n }\n }\n return 0;\n },\n },\n };\n } else {\n return {\n field: res.field,\n headerName: res.title,\n resizable: true,\n sortable: false,\n hide: !res.visible,\n suppressFilter: true,\n suppressSorting: true,\n suppressMenu: true,\n tooltipField: res.field,\n cellRenderer: ButtonRendererComponent,\n cellRendererParams: {\n onClick: this.onBtnClick.bind(this),\n label: res.label,\n icon: res.icon,\n buttonName: res.buttonName,\n tooltip: res.tooltip,\n },\n valueGetter: (params: any) => {\n return res.tooltip || res.title;\n },\n minWidth: 40,\n cellClass: 'action-button',\n pinned: res.pinPosition,\n lockPinned: true,\n };\n }\n });\n this.columnDefs = coldef;\n this.agGrid.gridOptions?.api?.setColumnDefs(coldef);\n this.getGridState();\n } else {\n console.log('ColDef Read Error=>', response.message);\n }\n });\n } else {\n console.log('Please pass valid GridId and loggedIn user Id');\n }\n }\n\n setExternalFilters(options: any) {\n if (\n this.serverDataUrl.indexOf('filter') >= 0 &&\n options.indexOf('filter') >= 0\n ) {\n let slug = this.serverDataUrl.split('?$filter=');\n if (slug && slug.length>0) {\n options = options + ' & ' + slug[1];\n this.serverDataUrl=slug[0];\n }\n }\n else if(this.serverDataUrl.indexOf('?')>=0){\n options=options.replace('?','&');\n }\n return `${this.serverDataUrl}${options}`;\n }\n onGridReady(params: GridReadyEvent) {\n this.gridPageSize = this.pageSize;\n if (this.enableServerSidePaging == true) {\n params.api.setServerSideDatasource(\n new OdataServerSideProvider({\n isCaseSensitiveStringFilter: false,\n callApi: (options) =>\n fetch(\n `${this.setExternalFilters(options)}`,\n {\n headers: {\n 'Content-type': 'application/json',\n Accept: 'application/json',\n },\n }\n ).then((response) => response.json()),\n })\n );\n }\n }\n\n setGridState() {\n if (this.gridColumnState) {\n this.agGrid.columnApi.applyColumnState({\n state: this.gridColumnState,\n applyOrder: true,\n });\n } else {\n var columns = this.agGrid.columnApi.getColumns();\n if (columns && columns.length > 10) {\n this.agGrid.columnApi.autoSizeAllColumns();\n } else {\n this.agGrid.api.sizeColumnsToFit();\n }\n }\n }\n\n getGridState() {\n if (this.gridId && this.loggedInUser) {\n this.gridService\n .getGridState(this.gridId, this.loggedInUser)\n .subscribe((response: any) => {\n if (\n response.status == 1 &&\n response.object &&\n response.object.gridConfig\n ) {\n this.gridColumnState = JSON.parse(response.object.gridConfig);\n this.setGridState();\n } else {\n console.log('Error while loading grid state');\n }\n });\n }\n }\n\n onBtnClick(e: any) {\n this.btnClickHandler.emit(e.rowData);\n }\n\n onSaveGridColumnState(event: any) {\n let columnState = this.agGrid.columnApi?.getColumnState();\n let columnData = {\n gridConfig: JSON.stringify(columnState),\n uiGridId: this.gridId,\n userId: this.loggedInUser,\n };\n if (event.finished == true || event.type === 'columnPinned') {\n this.gridColumnState = columnState;\n this.gridService.saveColumnConfig(columnData).subscribe((res: any) => {\n this.setGridState();\n if (res.status == 0) {\n console.log('Error while saving column configuration:', res.message);\n }\n });\n }\n }\n\n getRowById: GetRowIdFunc = (params: GetRowIdParams) => {\n var data = params.data;\n return data.id ?? 0;\n };\n\n colValueFormatter(params: ValueFormatterParams) {\n if (isNaN(+params.value)) {\n var dateWrapper = new Date(params.value);\n let isValidDate = !isNaN(dateWrapper.getDate());\n if (isValidDate) {\n return this.datePipe.transform(params.value, 'MM-dd-yyyy');\n } else {\n return params.value;\n }\n }\n return params.value;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { AgGridModule } from 'ag-grid-angular';\nimport {LicenseManager} from \"ag-grid-enterprise\";\nimport 'ag-grid-enterprise';\nLicenseManager.setLicenseKey(\"CompanyName=Basesite,LicensedGroup=Basesite,LicenseType=MultipleApplications,LicensedConcurrentDeveloperCount=2,LicensedProductionInstancesCount=2,AssetReference=AG-028469,ExpiryDate=19_May_2023_[v2]_MTY4NDQ1MDgwMDAwMA==ed6f437ea331cf602f669128db7b5387\");\nimport { HttpClientModule } from \"@angular/common/http\";\nimport { ButtonRendererComponent } from './renderer/button-renderer/button-renderer.component';\nimport { CommonModule, DatePipe } from '@angular/common';\nimport { CustomTooltip } from './renderer/tooltip-renderer/custom-tooltip-renderer';\nimport { GridLibraryComponent } from './grid-library.component';\n\n@NgModule({\n declarations: [\n GridLibraryComponent,\n ButtonRendererComponent,\n CustomTooltip\n ],\n imports: [\n AgGridModule,\n HttpClientModule,\n CommonModule,\n ],\n exports: [\n GridLibraryComponent\n ],\n providers: [DatePipe]\n})\nexport class GridLibraryModule { }\n","/*\n * Public API Surface of basesite-shared-grid-lib\n */\n\nexport * from './lib/grid-library.service';\nexport * from './lib/grid-library.component';\nexport * from './lib/grid-library.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i1.GridLibraryService","i2"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "basesite-shared-grid-lib",
3
- "version": "1.3.0",
3
+ "version": "1.3.2",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^15.1.0",
6
6
  "@angular/core": "^15.1.0",
Binary file