basesite-shared-grid-lib 15.1.6 → 15.2.6

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.
@@ -11,10 +11,10 @@ export class GridLibraryService {
11
11
  this.baseUrl = 'https://fcesharedgridtest.intel.com/api';
12
12
  }
13
13
  else if (environment == 'uat') {
14
- this.baseUrl = 'https://fcesharedgridtest.intel.com/api';
14
+ this.baseUrl = 'https://fcesharedgriduat.intel.com/api';
15
15
  }
16
16
  else if (environment == 'production') {
17
- this.baseUrl = 'https://fcesharedgridtest.intel.com/api';
17
+ this.baseUrl = 'https://fcesharedgrid.intel.com/api';
18
18
  }
19
19
  else {
20
20
  this.baseUrl = 'https://localhost:8075/api';
@@ -38,4 +38,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImpor
38
38
  providedIn: 'root',
39
39
  }]
40
40
  }], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1saWJyYXJ5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXNlc2l0ZS1zaGFyZWQtZ3JpZC1saWIvc3JjL2xpYi9ncmlkLWxpYnJhcnkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFNM0MsTUFBTSxPQUFPLGtCQUFrQjtJQUU3QixZQUFvQixVQUFzQjtRQUF0QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBRGxDLFlBQU8sR0FBSyw0QkFBNEIsQ0FBQztJQUVqRCxDQUFDO0lBRUQsVUFBVSxDQUFDLFdBQWU7UUFDeEIsSUFBRyxXQUFXLEtBQUcsTUFBTSxFQUFDO1lBQ3RCLElBQUksQ0FBQyxPQUFPLEdBQUMseUNBQXlDLENBQUE7U0FDdkQ7YUFDSSxJQUFHLFdBQVcsSUFBRSxLQUFLLEVBQUM7WUFDekIsSUFBSSxDQUFDLE9BQU8sR0FBQyx5Q0FBeUMsQ0FBQTtTQUN2RDthQUNJLElBQUcsV0FBVyxJQUFFLFlBQVksRUFBQztZQUMvQixJQUFJLENBQUMsT0FBTyxHQUFDLHlDQUF5QyxDQUFBO1NBQ3hEO2FBQ0c7WUFDRixJQUFJLENBQUMsT0FBTyxHQUFDLDRCQUE0QixDQUFBO1NBQzFDO0lBQ0gsQ0FBQztJQUVELFNBQVMsQ0FBQyxNQUFXO1FBQ25CLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQ3hCLEdBQUcsSUFBSSxDQUFDLE9BQU8sc0JBQXNCLE1BQU0sRUFBRSxDQUM5QyxDQUFDO0lBQ0osQ0FBQztJQUVELGdCQUFnQixDQUFDLFlBQWdCO1FBQy9CLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQ3pCLEdBQUcsSUFBSSxDQUFDLE9BQU8sZ0RBQWdELEVBQUMsWUFBWSxDQUM3RSxDQUFDO0lBQ0osQ0FBQztJQUVELFlBQVksQ0FBQyxNQUFhLEVBQUMsY0FBcUI7UUFDOUMsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FDeEIsR0FBRyxJQUFJLENBQUMsT0FBTyw2QkFBNkIsTUFBTSxXQUFXLGNBQWMsRUFBRSxDQUM5RSxDQUFDO0lBQ0osQ0FBQzs7K0dBcENVLGtCQUFrQjttSEFBbEIsa0JBQWtCLGNBRmpCLE1BQU07MkZBRVAsa0JBQWtCO2tCQUg5QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBHcmlkTGlicmFyeVNlcnZpY2Uge1xuICBwcml2YXRlIGJhc2VVcmw6YW55PSdodHRwczovL2xvY2FsaG9zdDo4MDc1L2FwaSc7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cENsaWVudDogSHR0cENsaWVudCkge1xuICB9ICBcblxuICBzZXRCYXNlVXJsKGVudmlyb25tZW50OmFueSl7XG4gICAgaWYoZW52aXJvbm1lbnQ9PT0ndGVzdCcpe1xuICAgICAgdGhpcy5iYXNlVXJsPSdodHRwczovL2ZjZXNoYXJlZGdyaWR0ZXN0LmludGVsLmNvbS9hcGknXG4gICAgfVxuICAgIGVsc2UgaWYoZW52aXJvbm1lbnQ9PSd1YXQnKXtcbiAgICAgIHRoaXMuYmFzZVVybD0naHR0cHM6Ly9mY2VzaGFyZWRncmlkdGVzdC5pbnRlbC5jb20vYXBpJ1xuICAgIH1cbiAgICBlbHNlIGlmKGVudmlyb25tZW50PT0ncHJvZHVjdGlvbicpe1xuICAgICAgIHRoaXMuYmFzZVVybD0naHR0cHM6Ly9mY2VzaGFyZWRncmlkdGVzdC5pbnRlbC5jb20vYXBpJ1xuICAgIH1cbiAgICBlbHNle1xuICAgICAgdGhpcy5iYXNlVXJsPSdodHRwczovL2xvY2FsaG9zdDo4MDc1L2FwaSdcbiAgICB9XG4gIH1cblxuICBnZXRDb2xEZWYoZ3JpZElkOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0PGFueT4oXG4gICAgICBgJHt0aGlzLmJhc2VVcmx9L0dyaWRDb25maWd1cmF0aW9uLyR7Z3JpZElkfWBcbiAgICApO1xuICB9XG5cbiAgc2F2ZUNvbHVtbkNvbmZpZyhjb2x1bW5Db25maWc6YW55KXtcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnBvc3Q8YW55PihcbiAgICAgIGAke3RoaXMuYmFzZVVybH0vR3JpZENvbmZpZ3VyYXRpb24vc2F2ZVVJVXNlckdyaWRDb25maWd1cmF0aW9uYCxjb2x1bW5Db25maWdcbiAgICApO1xuICB9XG5cbiAgZ2V0R3JpZFN0YXRlKGdyaWRJZDpudW1iZXIsbG9nZ2VkSW5Vc2VySWQ6bnVtYmVyKXtcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldDxhbnk+KFxuICAgICAgYCR7dGhpcy5iYXNlVXJsfS9HcmlkQ29uZmlndXJhdGlvbj9ncmlkSWQ9JHtncmlkSWR9JnVzZXJJZD0ke2xvZ2dlZEluVXNlcklkfWBcbiAgICApO1xuICB9XG59XG4iXX0=
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1saWJyYXJ5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXNlc2l0ZS1zaGFyZWQtZ3JpZC1saWIvc3JjL2xpYi9ncmlkLWxpYnJhcnkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFNM0MsTUFBTSxPQUFPLGtCQUFrQjtJQUU3QixZQUFvQixVQUFzQjtRQUF0QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBRGxDLFlBQU8sR0FBSyw0QkFBNEIsQ0FBQztJQUVqRCxDQUFDO0lBRUQsVUFBVSxDQUFDLFdBQWU7UUFDeEIsSUFBRyxXQUFXLEtBQUcsTUFBTSxFQUFDO1lBQ3RCLElBQUksQ0FBQyxPQUFPLEdBQUMseUNBQXlDLENBQUE7U0FDdkQ7YUFDSSxJQUFHLFdBQVcsSUFBRSxLQUFLLEVBQUM7WUFDekIsSUFBSSxDQUFDLE9BQU8sR0FBQyx3Q0FBd0MsQ0FBQTtTQUN0RDthQUNJLElBQUcsV0FBVyxJQUFFLFlBQVksRUFBQztZQUMvQixJQUFJLENBQUMsT0FBTyxHQUFDLHFDQUFxQyxDQUFBO1NBQ3BEO2FBQ0c7WUFDRixJQUFJLENBQUMsT0FBTyxHQUFDLDRCQUE0QixDQUFBO1NBQzFDO0lBQ0gsQ0FBQztJQUVELFNBQVMsQ0FBQyxNQUFXO1FBQ25CLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQ3hCLEdBQUcsSUFBSSxDQUFDLE9BQU8sc0JBQXNCLE1BQU0sRUFBRSxDQUM5QyxDQUFDO0lBQ0osQ0FBQztJQUVELGdCQUFnQixDQUFDLFlBQWdCO1FBQy9CLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQ3pCLEdBQUcsSUFBSSxDQUFDLE9BQU8sZ0RBQWdELEVBQUMsWUFBWSxDQUM3RSxDQUFDO0lBQ0osQ0FBQztJQUVELFlBQVksQ0FBQyxNQUFhLEVBQUMsY0FBcUI7UUFDOUMsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FDeEIsR0FBRyxJQUFJLENBQUMsT0FBTyw2QkFBNkIsTUFBTSxXQUFXLGNBQWMsRUFBRSxDQUM5RSxDQUFDO0lBQ0osQ0FBQzs7K0dBcENVLGtCQUFrQjttSEFBbEIsa0JBQWtCLGNBRmpCLE1BQU07MkZBRVAsa0JBQWtCO2tCQUg5QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBHcmlkTGlicmFyeVNlcnZpY2Uge1xuICBwcml2YXRlIGJhc2VVcmw6YW55PSdodHRwczovL2xvY2FsaG9zdDo4MDc1L2FwaSc7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cENsaWVudDogSHR0cENsaWVudCkge1xuICB9ICBcblxuICBzZXRCYXNlVXJsKGVudmlyb25tZW50OmFueSl7XG4gICAgaWYoZW52aXJvbm1lbnQ9PT0ndGVzdCcpe1xuICAgICAgdGhpcy5iYXNlVXJsPSdodHRwczovL2ZjZXNoYXJlZGdyaWR0ZXN0LmludGVsLmNvbS9hcGknXG4gICAgfVxuICAgIGVsc2UgaWYoZW52aXJvbm1lbnQ9PSd1YXQnKXtcbiAgICAgIHRoaXMuYmFzZVVybD0naHR0cHM6Ly9mY2VzaGFyZWRncmlkdWF0LmludGVsLmNvbS9hcGknXG4gICAgfVxuICAgIGVsc2UgaWYoZW52aXJvbm1lbnQ9PSdwcm9kdWN0aW9uJyl7XG4gICAgICAgdGhpcy5iYXNlVXJsPSdodHRwczovL2ZjZXNoYXJlZGdyaWQuaW50ZWwuY29tL2FwaSdcbiAgICB9XG4gICAgZWxzZXtcbiAgICAgIHRoaXMuYmFzZVVybD0naHR0cHM6Ly9sb2NhbGhvc3Q6ODA3NS9hcGknXG4gICAgfVxuICB9XG5cbiAgZ2V0Q29sRGVmKGdyaWRJZDogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldDxhbnk+KFxuICAgICAgYCR7dGhpcy5iYXNlVXJsfS9HcmlkQ29uZmlndXJhdGlvbi8ke2dyaWRJZH1gXG4gICAgKTtcbiAgfVxuXG4gIHNhdmVDb2x1bW5Db25maWcoY29sdW1uQ29uZmlnOmFueSl7XG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0PGFueT4oXG4gICAgICBgJHt0aGlzLmJhc2VVcmx9L0dyaWRDb25maWd1cmF0aW9uL3NhdmVVSVVzZXJHcmlkQ29uZmlndXJhdGlvbmAsY29sdW1uQ29uZmlnXG4gICAgKTtcbiAgfVxuXG4gIGdldEdyaWRTdGF0ZShncmlkSWQ6bnVtYmVyLGxvZ2dlZEluVXNlcklkOm51bWJlcil7XG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQ8YW55PihcbiAgICAgIGAke3RoaXMuYmFzZVVybH0vR3JpZENvbmZpZ3VyYXRpb24/Z3JpZElkPSR7Z3JpZElkfSZ1c2VySWQ9JHtsb2dnZWRJblVzZXJJZH1gXG4gICAgKTtcbiAgfVxufVxuIl19
@@ -19,10 +19,10 @@ class GridLibraryService {
19
19
  this.baseUrl = 'https://fcesharedgridtest.intel.com/api';
20
20
  }
21
21
  else if (environment == 'uat') {
22
- this.baseUrl = 'https://fcesharedgridtest.intel.com/api';
22
+ this.baseUrl = 'https://fcesharedgriduat.intel.com/api';
23
23
  }
24
24
  else if (environment == 'production') {
25
- this.baseUrl = 'https://fcesharedgridtest.intel.com/api';
25
+ this.baseUrl = 'https://fcesharedgrid.intel.com/api';
26
26
  }
27
27
  else {
28
28
  this.baseUrl = 'https://localhost:8075/api';
@@ -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/renderer/dropdown-renderer/drop-down-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\nimport {\r\n OdataQueryExtendFull,\r\n OdataQueryExtendOptions,\r\n OdataQueryOptions,\r\n PivotResultDat,\r\n} from './types';\r\n\r\nimport { replaceAll } from './utils';\r\nexport 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\ndeclare interface CancelablePromise {\r\n promise: Promise<any>;\r\n cancel: () => void;\r\n}\r\nexport 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 | ((\r\n options: OdataQueryOptions,\r\n provider: OdataProvider,\r\n request: IGetRowsParams | IServerSideGetRowsRequest\r\n ) => void)\r\n | 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)[]) => void)\r\n | 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 | ((\r\n options: OdataQueryExtendOptions,\r\n rowData: any[],\r\n totalCount: number\r\n ) => void)\r\n | undefined;\r\n /**\r\n * Callback for catch error\r\n */\r\n setError:\r\n | ((error: any, params: IGetRowsParams | IServerSideGetRowsParams) => void)\r\n | 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 var defaultFilters = path.filter((x: any) => {\r\n if (\r\n x.indexOf('$count') >= 0 ||\r\n x.indexOf('$top') >= 0 ||\r\n x.indexOf('$orderby') >= 0 ||\r\n x.indexOf('$apply') >= 0 ||\r\n x.indexOf('$expand') >= 0 ||\r\n x.indexOf('$select') >= 0\r\n ) {\r\n return x;\r\n }\r\n });\r\n if (defaultFilters && defaultFilters.length > 0) {\r\n query = '?' + defaultFilters.join('&');\r\n }\r\n var customFilters = path.filter(function (obj) {\r\n return defaultFilters.indexOf(obj) == -1;\r\n });\r\n if (customFilters && customFilters.length > 0) {\r\n if (customFilters.length == 1) query = query + '&' + customFilters;\r\n else query = query + customFilters.join('and');\r\n }\r\n }\r\n query = query.replace('and$filter=', '&filter=');\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(\r\n colKey: any,\r\n pivotValues: any,\r\n valueCol: any\r\n ) {\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(\r\n params,\r\n isServerMode,\r\n values,\r\n x['@odata.count'] || x[0]?.totalCount\r\n );\r\n if (this.afterLoadData) {\r\n this.afterLoadData(\r\n options,\r\n values,\r\n x['@odata.count'] || x[0]?.totalCount\r\n );\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\nexport class OdataProviderClient extends OdataProvider {\r\n public override getRows(params: IServerSideGetRowsParams) {\r\n super.getRows(params);\r\n }\r\n}\r\nexport class OdataServerSideProvider extends OdataProvider {\r\n public override getRows(params: IServerSideGetRowsParams): void {\r\n super.getRows(params);\r\n }\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 { Component } from '@angular/core';\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\n\n@Component({\n selector: 'lib-dropdown-renderer',\n template: `\n <div class=\"dropdown\">\n <button type=\"button\" class=\"btn btn-white\" data-toggle=\"dropdown\">\n <i class=\"fa fa-ellipsis-v\"></i>\n </button>\n <div class=\"dropdown-menu\">\n <span *ngFor='let data of dropDownData' class=\"dropdown-item\" (click)=\"onClick($event)\">{{data}}</span>\n </div>\n</div>\n `,\n})\nexport class DropdownRenderer implements ICellRendererAngularComp {\n params: any;\n dropDownData:any;\n\n agInit(params: any): void {\n this.params = params;\n this.dropDownData=this.params.dropDownData?this.params.dropDownData.split(','):[]\n }\n\n refresh(params?: any): boolean {\n return false;\n }\n\n onClick($event: any) {\n if (this.params.onClick instanceof Function) {\n const params = {\n event: $event,\n rowData: Object.assign({}, this.params.node.data, {\n buttonName: $event.target.innerText,\n }),\n };\n console.log('Hit', params);\n this.params.onClick(params);\n }\n }\n}\n","import { DatePipe } from '@angular/common';\r\nimport {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnInit,\r\n Output,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { AgGridAngular } from 'ag-grid-angular';\r\nimport {\r\n ColDef,\r\n GetRowIdFunc,\r\n GetRowIdParams,\r\n GridReadyEvent,\r\n PaginationNumberFormatterParams,\r\n RowModelType,\r\n RowNode,\r\n ValueFormatterParams,\r\n} from 'ag-grid-community';\r\nimport { GridLibraryService } from './grid-library.service';\r\nimport { OdataServerSideProvider } from './helpers';\r\nimport { ButtonRendererComponent } from './renderer/button-renderer/button-renderer.component';\r\nimport { CustomTooltip } from './renderer/tooltip-renderer/custom-tooltip-renderer';\r\nimport { DropdownRenderer } from './renderer/dropdown-renderer/drop-down-renderer';\r\n\r\n@Component({\r\n selector: 'lib-basesite-shared-grid-lib',\r\n template: `\r\n <ag-grid-angular\r\n style=\"width: 100%;height:98.2vh\"\r\n class=\"ag-theme-balham shared-grid-lib\"\r\n [columnDefs]=\"columnDefs\"\r\n [defaultColDef]=\"defaultColDef\"\r\n [rowData]=\"rowData\"\r\n [rowSelection]=\"rowSelection\"\r\n [animateRows]=\"true\"\r\n (gridReady)=\"onGridReady($event)\"\r\n [pagination]=\"true\"\r\n [paginationPageSize]=\"gridPageSize\"\r\n [paginationNumberFormatter]=\"paginationNumberFormatter\"\r\n (modelUpdated)=\"onModelUpdated()\"\r\n [tooltipShowDelay]=\"tooltipShowDelay\"\r\n [tooltipHideDelay]=\"tooltipHideDelay\"\r\n [rowModelType]=\"rowModelType\"\r\n [cacheBlockSize]=\"cacheBlockSize\"\r\n [maxConcurrentDatasourceRequests]=\"1\"\r\n [blockLoadDebounceMillis]=\"100\"\r\n (columnVisible)=\"onSaveGridColumnState($event)\"\r\n (columnPinned)=\"onSaveGridColumnState($event)\"\r\n (columnResized)=\"onSaveGridColumnState($event)\"\r\n (columnMoved)=\"onSaveGridColumnState($event)\"\r\n (sortChanged)=\"onSortChangedEvent()\"\r\n [rowMultiSelectWithClick]=\"rowMultiSelectWithClick\"\r\n >\r\n </ag-grid-angular>\r\n `,\r\n styles: [],\r\n})\r\nexport class GridLibraryComponent implements OnInit {\r\n //input params\r\n @Input() columnDefs: any;\r\n @Input() rowData: any;\r\n @Input() pageSize: number = 20;\r\n @Input() rowSelection: any = 'multiple';\r\n @Input() gridId: any;\r\n @Input() loggedInUser: any;\r\n @Input() enableServerSidePaging: boolean = false;\r\n @Input() serverDataUrl!: string;\r\n @Input() environment!: string;\r\n @Input() cacheBlockSize: number = 0;\r\n @Input() rowMultiSelectWithClick: boolean = false;\r\n @Input() floatingFilter: boolean = false;\r\n //event emitters\r\n @Output() btnClickHandler = new EventEmitter<any>();\r\n\r\n //viewChilds\r\n @ViewChild(AgGridAngular) agGrid!: AgGridAngular;\r\n\r\n //paramters\r\n gridColumnState: any;\r\n public tooltipShowDelay = 0;\r\n public tooltipHideDelay = 2000;\r\n public rowModelType: RowModelType = 'clientSide';\r\n public gridPageSize: number = 0;\r\n\r\n constructor(\r\n private gridService: GridLibraryService,\r\n private datePipe: DatePipe\r\n ) {}\r\n\r\n onSortChangedEvent() {\r\n this.gridColumnState = this.agGrid.columnApi.getColumnState();\r\n }\r\n\r\n public defaultColDef: ColDef = {\r\n sortable: true,\r\n filter: true,\r\n tooltipComponent: CustomTooltip,\r\n };\r\n\r\n ngOnInit() {\r\n this.gridPageSize = this.pageSize;\r\n this.cacheBlockSize = this.cacheBlockSize = 0\r\n ? this.pageSize\r\n : this.cacheBlockSize;\r\n this.gridService.setBaseUrl(this.environment);\r\n this.getGridState();\r\n this.getColDef();\r\n if (this.enableServerSidePaging == true) {\r\n this.rowModelType = 'serverSide';\r\n this.rowData = '';\r\n } else {\r\n this.rowModelType = 'clientSide';\r\n }\r\n }\r\n\r\n public paginationNumberFormatter: (\r\n params: PaginationNumberFormatterParams\r\n ) => string = (params: PaginationNumberFormatterParams) => {\r\n return '[' + params.value.toLocaleString() + ']';\r\n };\r\n\r\n onModelUpdated() {\r\n this.setGridState();\r\n }\r\n\r\n getColDef() {\r\n if (this.gridId && this.loggedInUser) {\r\n this.gridService.getColDef(this.gridId).subscribe((response: any) => {\r\n if (response.status == 1) {\r\n let coldef: ColDef[] = response.list.map((res: any) => {\r\n if (res.isButton === false) {\r\n if (res.columnType === 'checkbox') {\r\n return {\r\n field: res.field,\r\n headerName: res.title,\r\n sortable: false,\r\n tooltipField: res.field,\r\n resizable: true,\r\n headerCheckboxSelection: false,\r\n filterable: false,\r\n checkboxSelection: true,\r\n showDisabledCheckboxes: true,\r\n suppressFilter: true,\r\n suppressSorting: true,\r\n suppressMenu: true,\r\n width: 20,\r\n };\r\n } else if (res.columnType === 'dropdown') {\r\n return {\r\n field: res.field,\r\n headerName: res.title,\r\n resizable: true,\r\n sortable: false,\r\n suppressFilter: true,\r\n suppressSorting: true,\r\n suppressMenu: true,\r\n tooltipField: res.field,\r\n cellRenderer: DropdownRenderer,\r\n cellRendererParams: {\r\n onClick: this.onBtnClick.bind(this),\r\n tooltip: res.tooltip,\r\n dropDownData: res.dropDownData,\r\n },\r\n onCellClicked: (e: any) => {\r\n e.node.setSelected(false);\r\n },\r\n width: 20,\r\n pinned: res.pinPosition,\r\n lockPinned: true,\r\n };\r\n } else {\r\n return {\r\n field: res.field,\r\n headerName: res.title,\r\n resizable: true,\r\n hide: !res.visible,\r\n sortable: true,\r\n tooltipField: res.field,\r\n floatingFilter: this.floatingFilter,\r\n valueFormatter: this.colValueFormatter.bind(this),\r\n filterable: res.filterable,\r\n filter:\r\n res.columnType == 'string'\r\n ? 'agTextColumnFilter'\r\n : res.columnType == 'number'\r\n ? 'agNumberColumnFilter'\r\n : 'agDateColumnFilter',\r\n filterParams: {\r\n comparator: (\r\n filterLocalDateAtMidnight: any,\r\n cellValue: any\r\n ) => {\r\n const dateAsString = cellValue;\r\n\r\n if (dateAsString == null) {\r\n return 0;\r\n }\r\n if (res.columnType == 'date') {\r\n const cellDate = new Date(dateAsString);\r\n if (cellDate < filterLocalDateAtMidnight) {\r\n return -1;\r\n } else if (cellDate > filterLocalDateAtMidnight) {\r\n return 1;\r\n }\r\n }\r\n return 0;\r\n },\r\n },\r\n };\r\n }\r\n } else {\r\n return {\r\n field: res.field,\r\n headerName: res.title,\r\n resizable: true,\r\n sortable: false,\r\n hide: !res.visible,\r\n suppressFilter: true,\r\n suppressSorting: true,\r\n suppressMenu: true,\r\n tooltipField: res.field,\r\n cellRenderer: ButtonRendererComponent,\r\n cellRendererParams: {\r\n onClick: this.onBtnClick.bind(this),\r\n label: res.label,\r\n icon: res.icon,\r\n buttonName: res.buttonName,\r\n tooltip: res.tooltip,\r\n },\r\n valueGetter: (params: any) => {\r\n return res.tooltip || res.title;\r\n },\r\n minWidth: 20,\r\n cellClass: 'action-button',\r\n pinned: res.pinPosition,\r\n lockPinned: true,\r\n };\r\n }\r\n });\r\n this.columnDefs = coldef;\r\n this.agGrid.gridOptions?.api?.setColumnDefs(coldef);\r\n this.getGridState();\r\n } else {\r\n console.log('ColDef Read Error=>', response.message);\r\n }\r\n });\r\n } else {\r\n console.log('Please pass valid GridId and loggedIn user Id');\r\n }\r\n }\r\n\r\n setExternalFilters(options: any) {\r\n var serverUrl = '';\r\n if (\r\n this.serverDataUrl.indexOf('filter') >= 0 &&\r\n options.indexOf('filter') >= 0\r\n ) {\r\n let slug = this.serverDataUrl.split('?$filter=');\r\n if (slug && slug.length > 0) {\r\n options = options + ' and ' + slug[1];\r\n serverUrl = slug[0];\r\n }\r\n } else if (this.serverDataUrl.indexOf('?') >= 0) {\r\n serverUrl = this.serverDataUrl;\r\n options = options.replace('?', '&');\r\n }\r\n return `${serverUrl}${options}`;\r\n }\r\n\r\n onGridReady(params: GridReadyEvent) {\r\n this.gridPageSize = this.pageSize;\r\n if (this.enableServerSidePaging == true) {\r\n params.api.setServerSideDatasource(\r\n new OdataServerSideProvider({\r\n isCaseSensitiveStringFilter: false,\r\n callApi: (options) =>\r\n fetch(`${this.setExternalFilters(options)}`, {\r\n headers: {\r\n 'Content-type': 'application/json',\r\n Accept: 'application/json',\r\n },\r\n }).then((response) => response.json()),\r\n })\r\n );\r\n }\r\n }\r\n\r\n setGridState() {\r\n if (this.gridColumnState) {\r\n this.agGrid.columnApi.applyColumnState({\r\n state: this.gridColumnState,\r\n applyOrder: true,\r\n });\r\n } else {\r\n var columns = this.agGrid.columnApi.getColumns();\r\n if (columns && columns.length > 0) {\r\n // if (columns.length > 10) {\r\n // this.agGrid.columnApi.autoSizeAllColumns();\r\n // } else {\r\n // this.agGrid.api.sizeColumnsToFit();\r\n // }\r\n const allColumnIds: string[] = [];\r\n this.agGrid.columnApi!.getColumns()!.forEach((column) => {\r\n allColumnIds.push(column.getId());\r\n });\r\n this.agGrid.columnApi!.autoSizeColumns(allColumnIds, false);\r\n }\r\n }\r\n }\r\n\r\n getGridState() {\r\n if (this.gridId && this.loggedInUser) {\r\n this.gridService\r\n .getGridState(this.gridId, this.loggedInUser)\r\n .subscribe((response: any) => {\r\n if (\r\n response.status == 1 &&\r\n response.object &&\r\n response.object.gridConfig\r\n ) {\r\n this.gridColumnState = JSON.parse(response.object.gridConfig);\r\n this.setGridState();\r\n } else {\r\n console.log('Error while loading grid state');\r\n }\r\n });\r\n }\r\n }\r\n\r\n onBtnClick(e: any) {\r\n console.log('btn click=>', e);\r\n this.btnClickHandler.emit(e.rowData);\r\n }\r\n\r\n onSaveGridColumnState(event: any) {\r\n let columnState = this.agGrid.columnApi?.getColumnState();\r\n let columnData = {\r\n gridConfig: JSON.stringify(columnState),\r\n uiGridId: this.gridId,\r\n userId: this.loggedInUser,\r\n };\r\n if (event.finished == true || event.type === 'columnPinned') {\r\n this.gridColumnState = columnState;\r\n this.gridService.saveColumnConfig(columnData).subscribe((res: any) => {\r\n this.setGridState();\r\n if (res.status == 0) {\r\n console.log('Error while saving column configuration:', res.message);\r\n }\r\n });\r\n }\r\n }\r\n\r\n getRowById: GetRowIdFunc = (params: GetRowIdParams) => {\r\n var data = params.data;\r\n return data.id ?? 0;\r\n };\r\n\r\n colValueFormatter(params: ValueFormatterParams) {\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 return this.datePipe.transform(params.value, 'MM-dd-yyyy');\r\n } else {\r\n return params.value;\r\n }\r\n }\r\n return params.value;\r\n }\r\n}\r\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';\nimport { DropdownRenderer } from './renderer/dropdown-renderer/drop-down-renderer';\n\n@NgModule({\n declarations: [\n GridLibraryComponent,\n ButtonRendererComponent,\n CustomTooltip,\n DropdownRenderer\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/renderer/dropdown-renderer/drop-down-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://fcesharedgriduat.intel.com/api'\n }\n else if(environment=='production'){\n this.baseUrl='https://fcesharedgrid.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\nimport {\r\n OdataQueryExtendFull,\r\n OdataQueryExtendOptions,\r\n OdataQueryOptions,\r\n PivotResultDat,\r\n} from './types';\r\n\r\nimport { replaceAll } from './utils';\r\nexport 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\ndeclare interface CancelablePromise {\r\n promise: Promise<any>;\r\n cancel: () => void;\r\n}\r\nexport 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 | ((\r\n options: OdataQueryOptions,\r\n provider: OdataProvider,\r\n request: IGetRowsParams | IServerSideGetRowsRequest\r\n ) => void)\r\n | 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)[]) => void)\r\n | 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 | ((\r\n options: OdataQueryExtendOptions,\r\n rowData: any[],\r\n totalCount: number\r\n ) => void)\r\n | undefined;\r\n /**\r\n * Callback for catch error\r\n */\r\n setError:\r\n | ((error: any, params: IGetRowsParams | IServerSideGetRowsParams) => void)\r\n | 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 var defaultFilters = path.filter((x: any) => {\r\n if (\r\n x.indexOf('$count') >= 0 ||\r\n x.indexOf('$top') >= 0 ||\r\n x.indexOf('$orderby') >= 0 ||\r\n x.indexOf('$apply') >= 0 ||\r\n x.indexOf('$expand') >= 0 ||\r\n x.indexOf('$select') >= 0\r\n ) {\r\n return x;\r\n }\r\n });\r\n if (defaultFilters && defaultFilters.length > 0) {\r\n query = '?' + defaultFilters.join('&');\r\n }\r\n var customFilters = path.filter(function (obj) {\r\n return defaultFilters.indexOf(obj) == -1;\r\n });\r\n if (customFilters && customFilters.length > 0) {\r\n if (customFilters.length == 1) query = query + '&' + customFilters;\r\n else query = query + customFilters.join('and');\r\n }\r\n }\r\n query = query.replace('and$filter=', '&filter=');\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(\r\n colKey: any,\r\n pivotValues: any,\r\n valueCol: any\r\n ) {\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(\r\n params,\r\n isServerMode,\r\n values,\r\n x['@odata.count'] || x[0]?.totalCount\r\n );\r\n if (this.afterLoadData) {\r\n this.afterLoadData(\r\n options,\r\n values,\r\n x['@odata.count'] || x[0]?.totalCount\r\n );\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\nexport class OdataProviderClient extends OdataProvider {\r\n public override getRows(params: IServerSideGetRowsParams) {\r\n super.getRows(params);\r\n }\r\n}\r\nexport class OdataServerSideProvider extends OdataProvider {\r\n public override getRows(params: IServerSideGetRowsParams): void {\r\n super.getRows(params);\r\n }\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 { Component } from '@angular/core';\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\n\n@Component({\n selector: 'lib-dropdown-renderer',\n template: `\n <div class=\"dropdown\">\n <button type=\"button\" class=\"btn btn-white\" data-toggle=\"dropdown\">\n <i class=\"fa fa-ellipsis-v\"></i>\n </button>\n <div class=\"dropdown-menu\">\n <span *ngFor='let data of dropDownData' class=\"dropdown-item\" (click)=\"onClick($event)\">{{data}}</span>\n </div>\n</div>\n `,\n})\nexport class DropdownRenderer implements ICellRendererAngularComp {\n params: any;\n dropDownData:any;\n\n agInit(params: any): void {\n this.params = params;\n this.dropDownData=this.params.dropDownData?this.params.dropDownData.split(','):[]\n }\n\n refresh(params?: any): boolean {\n return false;\n }\n\n onClick($event: any) {\n if (this.params.onClick instanceof Function) {\n const params = {\n event: $event,\n rowData: Object.assign({}, this.params.node.data, {\n buttonName: $event.target.innerText,\n }),\n };\n console.log('Hit', params);\n this.params.onClick(params);\n }\n }\n}\n","import { DatePipe } from '@angular/common';\r\nimport {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnInit,\r\n Output,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { AgGridAngular } from 'ag-grid-angular';\r\nimport {\r\n ColDef,\r\n GetRowIdFunc,\r\n GetRowIdParams,\r\n GridReadyEvent,\r\n PaginationNumberFormatterParams,\r\n RowModelType,\r\n RowNode,\r\n ValueFormatterParams,\r\n} from 'ag-grid-community';\r\nimport { GridLibraryService } from './grid-library.service';\r\nimport { OdataServerSideProvider } from './helpers';\r\nimport { ButtonRendererComponent } from './renderer/button-renderer/button-renderer.component';\r\nimport { CustomTooltip } from './renderer/tooltip-renderer/custom-tooltip-renderer';\r\nimport { DropdownRenderer } from './renderer/dropdown-renderer/drop-down-renderer';\r\n\r\n@Component({\r\n selector: 'lib-basesite-shared-grid-lib',\r\n template: `\r\n <ag-grid-angular\r\n style=\"width: 100%;height:98.2vh\"\r\n class=\"ag-theme-balham shared-grid-lib\"\r\n [columnDefs]=\"columnDefs\"\r\n [defaultColDef]=\"defaultColDef\"\r\n [rowData]=\"rowData\"\r\n [rowSelection]=\"rowSelection\"\r\n [animateRows]=\"true\"\r\n (gridReady)=\"onGridReady($event)\"\r\n [pagination]=\"true\"\r\n [paginationPageSize]=\"gridPageSize\"\r\n [paginationNumberFormatter]=\"paginationNumberFormatter\"\r\n (modelUpdated)=\"onModelUpdated()\"\r\n [tooltipShowDelay]=\"tooltipShowDelay\"\r\n [tooltipHideDelay]=\"tooltipHideDelay\"\r\n [rowModelType]=\"rowModelType\"\r\n [cacheBlockSize]=\"cacheBlockSize\"\r\n [maxConcurrentDatasourceRequests]=\"1\"\r\n [blockLoadDebounceMillis]=\"100\"\r\n (columnVisible)=\"onSaveGridColumnState($event)\"\r\n (columnPinned)=\"onSaveGridColumnState($event)\"\r\n (columnResized)=\"onSaveGridColumnState($event)\"\r\n (columnMoved)=\"onSaveGridColumnState($event)\"\r\n (sortChanged)=\"onSortChangedEvent()\"\r\n [rowMultiSelectWithClick]=\"rowMultiSelectWithClick\"\r\n >\r\n </ag-grid-angular>\r\n `,\r\n styles: [],\r\n})\r\nexport class GridLibraryComponent implements OnInit {\r\n //input params\r\n @Input() columnDefs: any;\r\n @Input() rowData: any;\r\n @Input() pageSize: number = 20;\r\n @Input() rowSelection: any = 'multiple';\r\n @Input() gridId: any;\r\n @Input() loggedInUser: any;\r\n @Input() enableServerSidePaging: boolean = false;\r\n @Input() serverDataUrl!: string;\r\n @Input() environment!: string;\r\n @Input() cacheBlockSize: number = 0;\r\n @Input() rowMultiSelectWithClick: boolean = false;\r\n @Input() floatingFilter: boolean = false;\r\n //event emitters\r\n @Output() btnClickHandler = new EventEmitter<any>();\r\n\r\n //viewChilds\r\n @ViewChild(AgGridAngular) agGrid!: AgGridAngular;\r\n\r\n //paramters\r\n gridColumnState: any;\r\n public tooltipShowDelay = 0;\r\n public tooltipHideDelay = 2000;\r\n public rowModelType: RowModelType = 'clientSide';\r\n public gridPageSize: number = 0;\r\n\r\n constructor(\r\n private gridService: GridLibraryService,\r\n private datePipe: DatePipe\r\n ) {}\r\n\r\n onSortChangedEvent() {\r\n this.gridColumnState = this.agGrid.columnApi.getColumnState();\r\n }\r\n\r\n public defaultColDef: ColDef = {\r\n sortable: true,\r\n filter: true,\r\n tooltipComponent: CustomTooltip,\r\n };\r\n\r\n ngOnInit() {\r\n this.gridPageSize = this.pageSize;\r\n this.cacheBlockSize = this.cacheBlockSize = 0\r\n ? this.pageSize\r\n : this.cacheBlockSize;\r\n this.gridService.setBaseUrl(this.environment);\r\n this.getGridState();\r\n this.getColDef();\r\n if (this.enableServerSidePaging == true) {\r\n this.rowModelType = 'serverSide';\r\n this.rowData = '';\r\n } else {\r\n this.rowModelType = 'clientSide';\r\n }\r\n }\r\n\r\n public paginationNumberFormatter: (\r\n params: PaginationNumberFormatterParams\r\n ) => string = (params: PaginationNumberFormatterParams) => {\r\n return '[' + params.value.toLocaleString() + ']';\r\n };\r\n\r\n onModelUpdated() {\r\n this.setGridState();\r\n }\r\n\r\n getColDef() {\r\n if (this.gridId && this.loggedInUser) {\r\n this.gridService.getColDef(this.gridId).subscribe((response: any) => {\r\n if (response.status == 1) {\r\n let coldef: ColDef[] = response.list.map((res: any) => {\r\n if (res.isButton === false) {\r\n if (res.columnType === 'checkbox') {\r\n return {\r\n field: res.field,\r\n headerName: res.title,\r\n sortable: false,\r\n tooltipField: res.field,\r\n resizable: true,\r\n headerCheckboxSelection: false,\r\n filterable: false,\r\n checkboxSelection: true,\r\n showDisabledCheckboxes: true,\r\n suppressFilter: true,\r\n suppressSorting: true,\r\n suppressMenu: true,\r\n width: 20,\r\n };\r\n } else if (res.columnType === 'dropdown') {\r\n return {\r\n field: res.field,\r\n headerName: res.title,\r\n resizable: true,\r\n sortable: false,\r\n suppressFilter: true,\r\n suppressSorting: true,\r\n suppressMenu: true,\r\n tooltipField: res.field,\r\n cellRenderer: DropdownRenderer,\r\n cellRendererParams: {\r\n onClick: this.onBtnClick.bind(this),\r\n tooltip: res.tooltip,\r\n dropDownData: res.dropDownData,\r\n },\r\n onCellClicked: (e: any) => {\r\n e.node.setSelected(false);\r\n },\r\n width: 20,\r\n pinned: res.pinPosition,\r\n lockPinned: true,\r\n };\r\n } else {\r\n return {\r\n field: res.field,\r\n headerName: res.title,\r\n resizable: true,\r\n hide: !res.visible,\r\n sortable: true,\r\n tooltipField: res.field,\r\n floatingFilter: this.floatingFilter,\r\n valueFormatter: this.colValueFormatter.bind(this),\r\n filterable: res.filterable,\r\n filter:\r\n res.columnType == 'string'\r\n ? 'agTextColumnFilter'\r\n : res.columnType == 'number'\r\n ? 'agNumberColumnFilter'\r\n : 'agDateColumnFilter',\r\n filterParams: {\r\n comparator: (\r\n filterLocalDateAtMidnight: any,\r\n cellValue: any\r\n ) => {\r\n const dateAsString = cellValue;\r\n\r\n if (dateAsString == null) {\r\n return 0;\r\n }\r\n if (res.columnType == 'date') {\r\n const cellDate = new Date(dateAsString);\r\n if (cellDate < filterLocalDateAtMidnight) {\r\n return -1;\r\n } else if (cellDate > filterLocalDateAtMidnight) {\r\n return 1;\r\n }\r\n }\r\n return 0;\r\n },\r\n },\r\n };\r\n }\r\n } else {\r\n return {\r\n field: res.field,\r\n headerName: res.title,\r\n resizable: true,\r\n sortable: false,\r\n hide: !res.visible,\r\n suppressFilter: true,\r\n suppressSorting: true,\r\n suppressMenu: true,\r\n tooltipField: res.field,\r\n cellRenderer: ButtonRendererComponent,\r\n cellRendererParams: {\r\n onClick: this.onBtnClick.bind(this),\r\n label: res.label,\r\n icon: res.icon,\r\n buttonName: res.buttonName,\r\n tooltip: res.tooltip,\r\n },\r\n valueGetter: (params: any) => {\r\n return res.tooltip || res.title;\r\n },\r\n minWidth: 20,\r\n cellClass: 'action-button',\r\n pinned: res.pinPosition,\r\n lockPinned: true,\r\n };\r\n }\r\n });\r\n this.columnDefs = coldef;\r\n this.agGrid.gridOptions?.api?.setColumnDefs(coldef);\r\n this.getGridState();\r\n } else {\r\n console.log('ColDef Read Error=>', response.message);\r\n }\r\n });\r\n } else {\r\n console.log('Please pass valid GridId and loggedIn user Id');\r\n }\r\n }\r\n\r\n setExternalFilters(options: any) {\r\n var serverUrl = '';\r\n if (\r\n this.serverDataUrl.indexOf('filter') >= 0 &&\r\n options.indexOf('filter') >= 0\r\n ) {\r\n let slug = this.serverDataUrl.split('?$filter=');\r\n if (slug && slug.length > 0) {\r\n options = options + ' and ' + slug[1];\r\n serverUrl = slug[0];\r\n }\r\n } else if (this.serverDataUrl.indexOf('?') >= 0) {\r\n serverUrl = this.serverDataUrl;\r\n options = options.replace('?', '&');\r\n }\r\n return `${serverUrl}${options}`;\r\n }\r\n\r\n onGridReady(params: GridReadyEvent) {\r\n this.gridPageSize = this.pageSize;\r\n if (this.enableServerSidePaging == true) {\r\n params.api.setServerSideDatasource(\r\n new OdataServerSideProvider({\r\n isCaseSensitiveStringFilter: false,\r\n callApi: (options) =>\r\n fetch(`${this.setExternalFilters(options)}`, {\r\n headers: {\r\n 'Content-type': 'application/json',\r\n Accept: 'application/json',\r\n },\r\n }).then((response) => response.json()),\r\n })\r\n );\r\n }\r\n }\r\n\r\n setGridState() {\r\n if (this.gridColumnState) {\r\n this.agGrid.columnApi.applyColumnState({\r\n state: this.gridColumnState,\r\n applyOrder: true,\r\n });\r\n } else {\r\n var columns = this.agGrid.columnApi.getColumns();\r\n if (columns && columns.length > 0) {\r\n // if (columns.length > 10) {\r\n // this.agGrid.columnApi.autoSizeAllColumns();\r\n // } else {\r\n // this.agGrid.api.sizeColumnsToFit();\r\n // }\r\n const allColumnIds: string[] = [];\r\n this.agGrid.columnApi!.getColumns()!.forEach((column) => {\r\n allColumnIds.push(column.getId());\r\n });\r\n this.agGrid.columnApi!.autoSizeColumns(allColumnIds, false);\r\n }\r\n }\r\n }\r\n\r\n getGridState() {\r\n if (this.gridId && this.loggedInUser) {\r\n this.gridService\r\n .getGridState(this.gridId, this.loggedInUser)\r\n .subscribe((response: any) => {\r\n if (\r\n response.status == 1 &&\r\n response.object &&\r\n response.object.gridConfig\r\n ) {\r\n this.gridColumnState = JSON.parse(response.object.gridConfig);\r\n this.setGridState();\r\n } else {\r\n console.log('Error while loading grid state');\r\n }\r\n });\r\n }\r\n }\r\n\r\n onBtnClick(e: any) {\r\n console.log('btn click=>', e);\r\n this.btnClickHandler.emit(e.rowData);\r\n }\r\n\r\n onSaveGridColumnState(event: any) {\r\n let columnState = this.agGrid.columnApi?.getColumnState();\r\n let columnData = {\r\n gridConfig: JSON.stringify(columnState),\r\n uiGridId: this.gridId,\r\n userId: this.loggedInUser,\r\n };\r\n if (event.finished == true || event.type === 'columnPinned') {\r\n this.gridColumnState = columnState;\r\n this.gridService.saveColumnConfig(columnData).subscribe((res: any) => {\r\n this.setGridState();\r\n if (res.status == 0) {\r\n console.log('Error while saving column configuration:', res.message);\r\n }\r\n });\r\n }\r\n }\r\n\r\n getRowById: GetRowIdFunc = (params: GetRowIdParams) => {\r\n var data = params.data;\r\n return data.id ?? 0;\r\n };\r\n\r\n colValueFormatter(params: ValueFormatterParams) {\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 return this.datePipe.transform(params.value, 'MM-dd-yyyy');\r\n } else {\r\n return params.value;\r\n }\r\n }\r\n return params.value;\r\n }\r\n}\r\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';\nimport { DropdownRenderer } from './renderer/dropdown-renderer/drop-down-renderer';\n\n@NgModule({\n declarations: [\n GridLibraryComponent,\n ButtonRendererComponent,\n CustomTooltip,\n DropdownRenderer\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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"}
@@ -18,10 +18,10 @@ class GridLibraryService {
18
18
  this.baseUrl = 'https://fcesharedgridtest.intel.com/api';
19
19
  }
20
20
  else if (environment == 'uat') {
21
- this.baseUrl = 'https://fcesharedgridtest.intel.com/api';
21
+ this.baseUrl = 'https://fcesharedgriduat.intel.com/api';
22
22
  }
23
23
  else if (environment == 'production') {
24
- this.baseUrl = 'https://fcesharedgridtest.intel.com/api';
24
+ this.baseUrl = 'https://fcesharedgrid.intel.com/api';
25
25
  }
26
26
  else {
27
27
  this.baseUrl = 'https://localhost:8075/api';
@@ -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/renderer/dropdown-renderer/drop-down-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\nimport {\r\n OdataQueryExtendFull,\r\n OdataQueryExtendOptions,\r\n OdataQueryOptions,\r\n PivotResultDat,\r\n} from './types';\r\n\r\nimport { replaceAll } from './utils';\r\nexport 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\ndeclare interface CancelablePromise {\r\n promise: Promise<any>;\r\n cancel: () => void;\r\n}\r\nexport 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 | ((\r\n options: OdataQueryOptions,\r\n provider: OdataProvider,\r\n request: IGetRowsParams | IServerSideGetRowsRequest\r\n ) => void)\r\n | 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)[]) => void)\r\n | 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 | ((\r\n options: OdataQueryExtendOptions,\r\n rowData: any[],\r\n totalCount: number\r\n ) => void)\r\n | undefined;\r\n /**\r\n * Callback for catch error\r\n */\r\n setError:\r\n | ((error: any, params: IGetRowsParams | IServerSideGetRowsParams) => void)\r\n | 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 var defaultFilters = path.filter((x: any) => {\r\n if (\r\n x.indexOf('$count') >= 0 ||\r\n x.indexOf('$top') >= 0 ||\r\n x.indexOf('$orderby') >= 0 ||\r\n x.indexOf('$apply') >= 0 ||\r\n x.indexOf('$expand') >= 0 ||\r\n x.indexOf('$select') >= 0\r\n ) {\r\n return x;\r\n }\r\n });\r\n if (defaultFilters && defaultFilters.length > 0) {\r\n query = '?' + defaultFilters.join('&');\r\n }\r\n var customFilters = path.filter(function (obj) {\r\n return defaultFilters.indexOf(obj) == -1;\r\n });\r\n if (customFilters && customFilters.length > 0) {\r\n if (customFilters.length == 1) query = query + '&' + customFilters;\r\n else query = query + customFilters.join('and');\r\n }\r\n }\r\n query = query.replace('and$filter=', '&filter=');\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(\r\n colKey: any,\r\n pivotValues: any,\r\n valueCol: any\r\n ) {\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(\r\n params,\r\n isServerMode,\r\n values,\r\n x['@odata.count'] || x[0]?.totalCount\r\n );\r\n if (this.afterLoadData) {\r\n this.afterLoadData(\r\n options,\r\n values,\r\n x['@odata.count'] || x[0]?.totalCount\r\n );\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\nexport class OdataProviderClient extends OdataProvider {\r\n public override getRows(params: IServerSideGetRowsParams) {\r\n super.getRows(params);\r\n }\r\n}\r\nexport class OdataServerSideProvider extends OdataProvider {\r\n public override getRows(params: IServerSideGetRowsParams): void {\r\n super.getRows(params);\r\n }\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 { Component } from '@angular/core';\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\n\n@Component({\n selector: 'lib-dropdown-renderer',\n template: `\n <div class=\"dropdown\">\n <button type=\"button\" class=\"btn btn-white\" data-toggle=\"dropdown\">\n <i class=\"fa fa-ellipsis-v\"></i>\n </button>\n <div class=\"dropdown-menu\">\n <span *ngFor='let data of dropDownData' class=\"dropdown-item\" (click)=\"onClick($event)\">{{data}}</span>\n </div>\n</div>\n `,\n})\nexport class DropdownRenderer implements ICellRendererAngularComp {\n params: any;\n dropDownData:any;\n\n agInit(params: any): void {\n this.params = params;\n this.dropDownData=this.params.dropDownData?this.params.dropDownData.split(','):[]\n }\n\n refresh(params?: any): boolean {\n return false;\n }\n\n onClick($event: any) {\n if (this.params.onClick instanceof Function) {\n const params = {\n event: $event,\n rowData: Object.assign({}, this.params.node.data, {\n buttonName: $event.target.innerText,\n }),\n };\n console.log('Hit', params);\n this.params.onClick(params);\n }\n }\n}\n","import { DatePipe } from '@angular/common';\r\nimport {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnInit,\r\n Output,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { AgGridAngular } from 'ag-grid-angular';\r\nimport {\r\n ColDef,\r\n GetRowIdFunc,\r\n GetRowIdParams,\r\n GridReadyEvent,\r\n PaginationNumberFormatterParams,\r\n RowModelType,\r\n RowNode,\r\n ValueFormatterParams,\r\n} from 'ag-grid-community';\r\nimport { GridLibraryService } from './grid-library.service';\r\nimport { OdataServerSideProvider } from './helpers';\r\nimport { ButtonRendererComponent } from './renderer/button-renderer/button-renderer.component';\r\nimport { CustomTooltip } from './renderer/tooltip-renderer/custom-tooltip-renderer';\r\nimport { DropdownRenderer } from './renderer/dropdown-renderer/drop-down-renderer';\r\n\r\n@Component({\r\n selector: 'lib-basesite-shared-grid-lib',\r\n template: `\r\n <ag-grid-angular\r\n style=\"width: 100%;height:98.2vh\"\r\n class=\"ag-theme-balham shared-grid-lib\"\r\n [columnDefs]=\"columnDefs\"\r\n [defaultColDef]=\"defaultColDef\"\r\n [rowData]=\"rowData\"\r\n [rowSelection]=\"rowSelection\"\r\n [animateRows]=\"true\"\r\n (gridReady)=\"onGridReady($event)\"\r\n [pagination]=\"true\"\r\n [paginationPageSize]=\"gridPageSize\"\r\n [paginationNumberFormatter]=\"paginationNumberFormatter\"\r\n (modelUpdated)=\"onModelUpdated()\"\r\n [tooltipShowDelay]=\"tooltipShowDelay\"\r\n [tooltipHideDelay]=\"tooltipHideDelay\"\r\n [rowModelType]=\"rowModelType\"\r\n [cacheBlockSize]=\"cacheBlockSize\"\r\n [maxConcurrentDatasourceRequests]=\"1\"\r\n [blockLoadDebounceMillis]=\"100\"\r\n (columnVisible)=\"onSaveGridColumnState($event)\"\r\n (columnPinned)=\"onSaveGridColumnState($event)\"\r\n (columnResized)=\"onSaveGridColumnState($event)\"\r\n (columnMoved)=\"onSaveGridColumnState($event)\"\r\n (sortChanged)=\"onSortChangedEvent()\"\r\n [rowMultiSelectWithClick]=\"rowMultiSelectWithClick\"\r\n >\r\n </ag-grid-angular>\r\n `,\r\n styles: [],\r\n})\r\nexport class GridLibraryComponent implements OnInit {\r\n //input params\r\n @Input() columnDefs: any;\r\n @Input() rowData: any;\r\n @Input() pageSize: number = 20;\r\n @Input() rowSelection: any = 'multiple';\r\n @Input() gridId: any;\r\n @Input() loggedInUser: any;\r\n @Input() enableServerSidePaging: boolean = false;\r\n @Input() serverDataUrl!: string;\r\n @Input() environment!: string;\r\n @Input() cacheBlockSize: number = 0;\r\n @Input() rowMultiSelectWithClick: boolean = false;\r\n @Input() floatingFilter: boolean = false;\r\n //event emitters\r\n @Output() btnClickHandler = new EventEmitter<any>();\r\n\r\n //viewChilds\r\n @ViewChild(AgGridAngular) agGrid!: AgGridAngular;\r\n\r\n //paramters\r\n gridColumnState: any;\r\n public tooltipShowDelay = 0;\r\n public tooltipHideDelay = 2000;\r\n public rowModelType: RowModelType = 'clientSide';\r\n public gridPageSize: number = 0;\r\n\r\n constructor(\r\n private gridService: GridLibraryService,\r\n private datePipe: DatePipe\r\n ) {}\r\n\r\n onSortChangedEvent() {\r\n this.gridColumnState = this.agGrid.columnApi.getColumnState();\r\n }\r\n\r\n public defaultColDef: ColDef = {\r\n sortable: true,\r\n filter: true,\r\n tooltipComponent: CustomTooltip,\r\n };\r\n\r\n ngOnInit() {\r\n this.gridPageSize = this.pageSize;\r\n this.cacheBlockSize = this.cacheBlockSize = 0\r\n ? this.pageSize\r\n : this.cacheBlockSize;\r\n this.gridService.setBaseUrl(this.environment);\r\n this.getGridState();\r\n this.getColDef();\r\n if (this.enableServerSidePaging == true) {\r\n this.rowModelType = 'serverSide';\r\n this.rowData = '';\r\n } else {\r\n this.rowModelType = 'clientSide';\r\n }\r\n }\r\n\r\n public paginationNumberFormatter: (\r\n params: PaginationNumberFormatterParams\r\n ) => string = (params: PaginationNumberFormatterParams) => {\r\n return '[' + params.value.toLocaleString() + ']';\r\n };\r\n\r\n onModelUpdated() {\r\n this.setGridState();\r\n }\r\n\r\n getColDef() {\r\n if (this.gridId && this.loggedInUser) {\r\n this.gridService.getColDef(this.gridId).subscribe((response: any) => {\r\n if (response.status == 1) {\r\n let coldef: ColDef[] = response.list.map((res: any) => {\r\n if (res.isButton === false) {\r\n if (res.columnType === 'checkbox') {\r\n return {\r\n field: res.field,\r\n headerName: res.title,\r\n sortable: false,\r\n tooltipField: res.field,\r\n resizable: true,\r\n headerCheckboxSelection: false,\r\n filterable: false,\r\n checkboxSelection: true,\r\n showDisabledCheckboxes: true,\r\n suppressFilter: true,\r\n suppressSorting: true,\r\n suppressMenu: true,\r\n width: 20,\r\n };\r\n } else if (res.columnType === 'dropdown') {\r\n return {\r\n field: res.field,\r\n headerName: res.title,\r\n resizable: true,\r\n sortable: false,\r\n suppressFilter: true,\r\n suppressSorting: true,\r\n suppressMenu: true,\r\n tooltipField: res.field,\r\n cellRenderer: DropdownRenderer,\r\n cellRendererParams: {\r\n onClick: this.onBtnClick.bind(this),\r\n tooltip: res.tooltip,\r\n dropDownData: res.dropDownData,\r\n },\r\n onCellClicked: (e: any) => {\r\n e.node.setSelected(false);\r\n },\r\n width: 20,\r\n pinned: res.pinPosition,\r\n lockPinned: true,\r\n };\r\n } else {\r\n return {\r\n field: res.field,\r\n headerName: res.title,\r\n resizable: true,\r\n hide: !res.visible,\r\n sortable: true,\r\n tooltipField: res.field,\r\n floatingFilter: this.floatingFilter,\r\n valueFormatter: this.colValueFormatter.bind(this),\r\n filterable: res.filterable,\r\n filter:\r\n res.columnType == 'string'\r\n ? 'agTextColumnFilter'\r\n : res.columnType == 'number'\r\n ? 'agNumberColumnFilter'\r\n : 'agDateColumnFilter',\r\n filterParams: {\r\n comparator: (\r\n filterLocalDateAtMidnight: any,\r\n cellValue: any\r\n ) => {\r\n const dateAsString = cellValue;\r\n\r\n if (dateAsString == null) {\r\n return 0;\r\n }\r\n if (res.columnType == 'date') {\r\n const cellDate = new Date(dateAsString);\r\n if (cellDate < filterLocalDateAtMidnight) {\r\n return -1;\r\n } else if (cellDate > filterLocalDateAtMidnight) {\r\n return 1;\r\n }\r\n }\r\n return 0;\r\n },\r\n },\r\n };\r\n }\r\n } else {\r\n return {\r\n field: res.field,\r\n headerName: res.title,\r\n resizable: true,\r\n sortable: false,\r\n hide: !res.visible,\r\n suppressFilter: true,\r\n suppressSorting: true,\r\n suppressMenu: true,\r\n tooltipField: res.field,\r\n cellRenderer: ButtonRendererComponent,\r\n cellRendererParams: {\r\n onClick: this.onBtnClick.bind(this),\r\n label: res.label,\r\n icon: res.icon,\r\n buttonName: res.buttonName,\r\n tooltip: res.tooltip,\r\n },\r\n valueGetter: (params: any) => {\r\n return res.tooltip || res.title;\r\n },\r\n minWidth: 20,\r\n cellClass: 'action-button',\r\n pinned: res.pinPosition,\r\n lockPinned: true,\r\n };\r\n }\r\n });\r\n this.columnDefs = coldef;\r\n this.agGrid.gridOptions?.api?.setColumnDefs(coldef);\r\n this.getGridState();\r\n } else {\r\n console.log('ColDef Read Error=>', response.message);\r\n }\r\n });\r\n } else {\r\n console.log('Please pass valid GridId and loggedIn user Id');\r\n }\r\n }\r\n\r\n setExternalFilters(options: any) {\r\n var serverUrl = '';\r\n if (\r\n this.serverDataUrl.indexOf('filter') >= 0 &&\r\n options.indexOf('filter') >= 0\r\n ) {\r\n let slug = this.serverDataUrl.split('?$filter=');\r\n if (slug && slug.length > 0) {\r\n options = options + ' and ' + slug[1];\r\n serverUrl = slug[0];\r\n }\r\n } else if (this.serverDataUrl.indexOf('?') >= 0) {\r\n serverUrl = this.serverDataUrl;\r\n options = options.replace('?', '&');\r\n }\r\n return `${serverUrl}${options}`;\r\n }\r\n\r\n onGridReady(params: GridReadyEvent) {\r\n this.gridPageSize = this.pageSize;\r\n if (this.enableServerSidePaging == true) {\r\n params.api.setServerSideDatasource(\r\n new OdataServerSideProvider({\r\n isCaseSensitiveStringFilter: false,\r\n callApi: (options) =>\r\n fetch(`${this.setExternalFilters(options)}`, {\r\n headers: {\r\n 'Content-type': 'application/json',\r\n Accept: 'application/json',\r\n },\r\n }).then((response) => response.json()),\r\n })\r\n );\r\n }\r\n }\r\n\r\n setGridState() {\r\n if (this.gridColumnState) {\r\n this.agGrid.columnApi.applyColumnState({\r\n state: this.gridColumnState,\r\n applyOrder: true,\r\n });\r\n } else {\r\n var columns = this.agGrid.columnApi.getColumns();\r\n if (columns && columns.length > 0) {\r\n // if (columns.length > 10) {\r\n // this.agGrid.columnApi.autoSizeAllColumns();\r\n // } else {\r\n // this.agGrid.api.sizeColumnsToFit();\r\n // }\r\n const allColumnIds: string[] = [];\r\n this.agGrid.columnApi!.getColumns()!.forEach((column) => {\r\n allColumnIds.push(column.getId());\r\n });\r\n this.agGrid.columnApi!.autoSizeColumns(allColumnIds, false);\r\n }\r\n }\r\n }\r\n\r\n getGridState() {\r\n if (this.gridId && this.loggedInUser) {\r\n this.gridService\r\n .getGridState(this.gridId, this.loggedInUser)\r\n .subscribe((response: any) => {\r\n if (\r\n response.status == 1 &&\r\n response.object &&\r\n response.object.gridConfig\r\n ) {\r\n this.gridColumnState = JSON.parse(response.object.gridConfig);\r\n this.setGridState();\r\n } else {\r\n console.log('Error while loading grid state');\r\n }\r\n });\r\n }\r\n }\r\n\r\n onBtnClick(e: any) {\r\n console.log('btn click=>', e);\r\n this.btnClickHandler.emit(e.rowData);\r\n }\r\n\r\n onSaveGridColumnState(event: any) {\r\n let columnState = this.agGrid.columnApi?.getColumnState();\r\n let columnData = {\r\n gridConfig: JSON.stringify(columnState),\r\n uiGridId: this.gridId,\r\n userId: this.loggedInUser,\r\n };\r\n if (event.finished == true || event.type === 'columnPinned') {\r\n this.gridColumnState = columnState;\r\n this.gridService.saveColumnConfig(columnData).subscribe((res: any) => {\r\n this.setGridState();\r\n if (res.status == 0) {\r\n console.log('Error while saving column configuration:', res.message);\r\n }\r\n });\r\n }\r\n }\r\n\r\n getRowById: GetRowIdFunc = (params: GetRowIdParams) => {\r\n var data = params.data;\r\n return data.id ?? 0;\r\n };\r\n\r\n colValueFormatter(params: ValueFormatterParams) {\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 return this.datePipe.transform(params.value, 'MM-dd-yyyy');\r\n } else {\r\n return params.value;\r\n }\r\n }\r\n return params.value;\r\n }\r\n}\r\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';\nimport { DropdownRenderer } from './renderer/dropdown-renderer/drop-down-renderer';\n\n@NgModule({\n declarations: [\n GridLibraryComponent,\n ButtonRendererComponent,\n CustomTooltip,\n DropdownRenderer\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/renderer/dropdown-renderer/drop-down-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://fcesharedgriduat.intel.com/api'\n }\n else if(environment=='production'){\n this.baseUrl='https://fcesharedgrid.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\nimport {\r\n OdataQueryExtendFull,\r\n OdataQueryExtendOptions,\r\n OdataQueryOptions,\r\n PivotResultDat,\r\n} from './types';\r\n\r\nimport { replaceAll } from './utils';\r\nexport 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\ndeclare interface CancelablePromise {\r\n promise: Promise<any>;\r\n cancel: () => void;\r\n}\r\nexport 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 | ((\r\n options: OdataQueryOptions,\r\n provider: OdataProvider,\r\n request: IGetRowsParams | IServerSideGetRowsRequest\r\n ) => void)\r\n | 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)[]) => void)\r\n | 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 | ((\r\n options: OdataQueryExtendOptions,\r\n rowData: any[],\r\n totalCount: number\r\n ) => void)\r\n | undefined;\r\n /**\r\n * Callback for catch error\r\n */\r\n setError:\r\n | ((error: any, params: IGetRowsParams | IServerSideGetRowsParams) => void)\r\n | 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 var defaultFilters = path.filter((x: any) => {\r\n if (\r\n x.indexOf('$count') >= 0 ||\r\n x.indexOf('$top') >= 0 ||\r\n x.indexOf('$orderby') >= 0 ||\r\n x.indexOf('$apply') >= 0 ||\r\n x.indexOf('$expand') >= 0 ||\r\n x.indexOf('$select') >= 0\r\n ) {\r\n return x;\r\n }\r\n });\r\n if (defaultFilters && defaultFilters.length > 0) {\r\n query = '?' + defaultFilters.join('&');\r\n }\r\n var customFilters = path.filter(function (obj) {\r\n return defaultFilters.indexOf(obj) == -1;\r\n });\r\n if (customFilters && customFilters.length > 0) {\r\n if (customFilters.length == 1) query = query + '&' + customFilters;\r\n else query = query + customFilters.join('and');\r\n }\r\n }\r\n query = query.replace('and$filter=', '&filter=');\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(\r\n colKey: any,\r\n pivotValues: any,\r\n valueCol: any\r\n ) {\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(\r\n params,\r\n isServerMode,\r\n values,\r\n x['@odata.count'] || x[0]?.totalCount\r\n );\r\n if (this.afterLoadData) {\r\n this.afterLoadData(\r\n options,\r\n values,\r\n x['@odata.count'] || x[0]?.totalCount\r\n );\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\nexport class OdataProviderClient extends OdataProvider {\r\n public override getRows(params: IServerSideGetRowsParams) {\r\n super.getRows(params);\r\n }\r\n}\r\nexport class OdataServerSideProvider extends OdataProvider {\r\n public override getRows(params: IServerSideGetRowsParams): void {\r\n super.getRows(params);\r\n }\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 { Component } from '@angular/core';\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\n\n@Component({\n selector: 'lib-dropdown-renderer',\n template: `\n <div class=\"dropdown\">\n <button type=\"button\" class=\"btn btn-white\" data-toggle=\"dropdown\">\n <i class=\"fa fa-ellipsis-v\"></i>\n </button>\n <div class=\"dropdown-menu\">\n <span *ngFor='let data of dropDownData' class=\"dropdown-item\" (click)=\"onClick($event)\">{{data}}</span>\n </div>\n</div>\n `,\n})\nexport class DropdownRenderer implements ICellRendererAngularComp {\n params: any;\n dropDownData:any;\n\n agInit(params: any): void {\n this.params = params;\n this.dropDownData=this.params.dropDownData?this.params.dropDownData.split(','):[]\n }\n\n refresh(params?: any): boolean {\n return false;\n }\n\n onClick($event: any) {\n if (this.params.onClick instanceof Function) {\n const params = {\n event: $event,\n rowData: Object.assign({}, this.params.node.data, {\n buttonName: $event.target.innerText,\n }),\n };\n console.log('Hit', params);\n this.params.onClick(params);\n }\n }\n}\n","import { DatePipe } from '@angular/common';\r\nimport {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnInit,\r\n Output,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { AgGridAngular } from 'ag-grid-angular';\r\nimport {\r\n ColDef,\r\n GetRowIdFunc,\r\n GetRowIdParams,\r\n GridReadyEvent,\r\n PaginationNumberFormatterParams,\r\n RowModelType,\r\n RowNode,\r\n ValueFormatterParams,\r\n} from 'ag-grid-community';\r\nimport { GridLibraryService } from './grid-library.service';\r\nimport { OdataServerSideProvider } from './helpers';\r\nimport { ButtonRendererComponent } from './renderer/button-renderer/button-renderer.component';\r\nimport { CustomTooltip } from './renderer/tooltip-renderer/custom-tooltip-renderer';\r\nimport { DropdownRenderer } from './renderer/dropdown-renderer/drop-down-renderer';\r\n\r\n@Component({\r\n selector: 'lib-basesite-shared-grid-lib',\r\n template: `\r\n <ag-grid-angular\r\n style=\"width: 100%;height:98.2vh\"\r\n class=\"ag-theme-balham shared-grid-lib\"\r\n [columnDefs]=\"columnDefs\"\r\n [defaultColDef]=\"defaultColDef\"\r\n [rowData]=\"rowData\"\r\n [rowSelection]=\"rowSelection\"\r\n [animateRows]=\"true\"\r\n (gridReady)=\"onGridReady($event)\"\r\n [pagination]=\"true\"\r\n [paginationPageSize]=\"gridPageSize\"\r\n [paginationNumberFormatter]=\"paginationNumberFormatter\"\r\n (modelUpdated)=\"onModelUpdated()\"\r\n [tooltipShowDelay]=\"tooltipShowDelay\"\r\n [tooltipHideDelay]=\"tooltipHideDelay\"\r\n [rowModelType]=\"rowModelType\"\r\n [cacheBlockSize]=\"cacheBlockSize\"\r\n [maxConcurrentDatasourceRequests]=\"1\"\r\n [blockLoadDebounceMillis]=\"100\"\r\n (columnVisible)=\"onSaveGridColumnState($event)\"\r\n (columnPinned)=\"onSaveGridColumnState($event)\"\r\n (columnResized)=\"onSaveGridColumnState($event)\"\r\n (columnMoved)=\"onSaveGridColumnState($event)\"\r\n (sortChanged)=\"onSortChangedEvent()\"\r\n [rowMultiSelectWithClick]=\"rowMultiSelectWithClick\"\r\n >\r\n </ag-grid-angular>\r\n `,\r\n styles: [],\r\n})\r\nexport class GridLibraryComponent implements OnInit {\r\n //input params\r\n @Input() columnDefs: any;\r\n @Input() rowData: any;\r\n @Input() pageSize: number = 20;\r\n @Input() rowSelection: any = 'multiple';\r\n @Input() gridId: any;\r\n @Input() loggedInUser: any;\r\n @Input() enableServerSidePaging: boolean = false;\r\n @Input() serverDataUrl!: string;\r\n @Input() environment!: string;\r\n @Input() cacheBlockSize: number = 0;\r\n @Input() rowMultiSelectWithClick: boolean = false;\r\n @Input() floatingFilter: boolean = false;\r\n //event emitters\r\n @Output() btnClickHandler = new EventEmitter<any>();\r\n\r\n //viewChilds\r\n @ViewChild(AgGridAngular) agGrid!: AgGridAngular;\r\n\r\n //paramters\r\n gridColumnState: any;\r\n public tooltipShowDelay = 0;\r\n public tooltipHideDelay = 2000;\r\n public rowModelType: RowModelType = 'clientSide';\r\n public gridPageSize: number = 0;\r\n\r\n constructor(\r\n private gridService: GridLibraryService,\r\n private datePipe: DatePipe\r\n ) {}\r\n\r\n onSortChangedEvent() {\r\n this.gridColumnState = this.agGrid.columnApi.getColumnState();\r\n }\r\n\r\n public defaultColDef: ColDef = {\r\n sortable: true,\r\n filter: true,\r\n tooltipComponent: CustomTooltip,\r\n };\r\n\r\n ngOnInit() {\r\n this.gridPageSize = this.pageSize;\r\n this.cacheBlockSize = this.cacheBlockSize = 0\r\n ? this.pageSize\r\n : this.cacheBlockSize;\r\n this.gridService.setBaseUrl(this.environment);\r\n this.getGridState();\r\n this.getColDef();\r\n if (this.enableServerSidePaging == true) {\r\n this.rowModelType = 'serverSide';\r\n this.rowData = '';\r\n } else {\r\n this.rowModelType = 'clientSide';\r\n }\r\n }\r\n\r\n public paginationNumberFormatter: (\r\n params: PaginationNumberFormatterParams\r\n ) => string = (params: PaginationNumberFormatterParams) => {\r\n return '[' + params.value.toLocaleString() + ']';\r\n };\r\n\r\n onModelUpdated() {\r\n this.setGridState();\r\n }\r\n\r\n getColDef() {\r\n if (this.gridId && this.loggedInUser) {\r\n this.gridService.getColDef(this.gridId).subscribe((response: any) => {\r\n if (response.status == 1) {\r\n let coldef: ColDef[] = response.list.map((res: any) => {\r\n if (res.isButton === false) {\r\n if (res.columnType === 'checkbox') {\r\n return {\r\n field: res.field,\r\n headerName: res.title,\r\n sortable: false,\r\n tooltipField: res.field,\r\n resizable: true,\r\n headerCheckboxSelection: false,\r\n filterable: false,\r\n checkboxSelection: true,\r\n showDisabledCheckboxes: true,\r\n suppressFilter: true,\r\n suppressSorting: true,\r\n suppressMenu: true,\r\n width: 20,\r\n };\r\n } else if (res.columnType === 'dropdown') {\r\n return {\r\n field: res.field,\r\n headerName: res.title,\r\n resizable: true,\r\n sortable: false,\r\n suppressFilter: true,\r\n suppressSorting: true,\r\n suppressMenu: true,\r\n tooltipField: res.field,\r\n cellRenderer: DropdownRenderer,\r\n cellRendererParams: {\r\n onClick: this.onBtnClick.bind(this),\r\n tooltip: res.tooltip,\r\n dropDownData: res.dropDownData,\r\n },\r\n onCellClicked: (e: any) => {\r\n e.node.setSelected(false);\r\n },\r\n width: 20,\r\n pinned: res.pinPosition,\r\n lockPinned: true,\r\n };\r\n } else {\r\n return {\r\n field: res.field,\r\n headerName: res.title,\r\n resizable: true,\r\n hide: !res.visible,\r\n sortable: true,\r\n tooltipField: res.field,\r\n floatingFilter: this.floatingFilter,\r\n valueFormatter: this.colValueFormatter.bind(this),\r\n filterable: res.filterable,\r\n filter:\r\n res.columnType == 'string'\r\n ? 'agTextColumnFilter'\r\n : res.columnType == 'number'\r\n ? 'agNumberColumnFilter'\r\n : 'agDateColumnFilter',\r\n filterParams: {\r\n comparator: (\r\n filterLocalDateAtMidnight: any,\r\n cellValue: any\r\n ) => {\r\n const dateAsString = cellValue;\r\n\r\n if (dateAsString == null) {\r\n return 0;\r\n }\r\n if (res.columnType == 'date') {\r\n const cellDate = new Date(dateAsString);\r\n if (cellDate < filterLocalDateAtMidnight) {\r\n return -1;\r\n } else if (cellDate > filterLocalDateAtMidnight) {\r\n return 1;\r\n }\r\n }\r\n return 0;\r\n },\r\n },\r\n };\r\n }\r\n } else {\r\n return {\r\n field: res.field,\r\n headerName: res.title,\r\n resizable: true,\r\n sortable: false,\r\n hide: !res.visible,\r\n suppressFilter: true,\r\n suppressSorting: true,\r\n suppressMenu: true,\r\n tooltipField: res.field,\r\n cellRenderer: ButtonRendererComponent,\r\n cellRendererParams: {\r\n onClick: this.onBtnClick.bind(this),\r\n label: res.label,\r\n icon: res.icon,\r\n buttonName: res.buttonName,\r\n tooltip: res.tooltip,\r\n },\r\n valueGetter: (params: any) => {\r\n return res.tooltip || res.title;\r\n },\r\n minWidth: 20,\r\n cellClass: 'action-button',\r\n pinned: res.pinPosition,\r\n lockPinned: true,\r\n };\r\n }\r\n });\r\n this.columnDefs = coldef;\r\n this.agGrid.gridOptions?.api?.setColumnDefs(coldef);\r\n this.getGridState();\r\n } else {\r\n console.log('ColDef Read Error=>', response.message);\r\n }\r\n });\r\n } else {\r\n console.log('Please pass valid GridId and loggedIn user Id');\r\n }\r\n }\r\n\r\n setExternalFilters(options: any) {\r\n var serverUrl = '';\r\n if (\r\n this.serverDataUrl.indexOf('filter') >= 0 &&\r\n options.indexOf('filter') >= 0\r\n ) {\r\n let slug = this.serverDataUrl.split('?$filter=');\r\n if (slug && slug.length > 0) {\r\n options = options + ' and ' + slug[1];\r\n serverUrl = slug[0];\r\n }\r\n } else if (this.serverDataUrl.indexOf('?') >= 0) {\r\n serverUrl = this.serverDataUrl;\r\n options = options.replace('?', '&');\r\n }\r\n return `${serverUrl}${options}`;\r\n }\r\n\r\n onGridReady(params: GridReadyEvent) {\r\n this.gridPageSize = this.pageSize;\r\n if (this.enableServerSidePaging == true) {\r\n params.api.setServerSideDatasource(\r\n new OdataServerSideProvider({\r\n isCaseSensitiveStringFilter: false,\r\n callApi: (options) =>\r\n fetch(`${this.setExternalFilters(options)}`, {\r\n headers: {\r\n 'Content-type': 'application/json',\r\n Accept: 'application/json',\r\n },\r\n }).then((response) => response.json()),\r\n })\r\n );\r\n }\r\n }\r\n\r\n setGridState() {\r\n if (this.gridColumnState) {\r\n this.agGrid.columnApi.applyColumnState({\r\n state: this.gridColumnState,\r\n applyOrder: true,\r\n });\r\n } else {\r\n var columns = this.agGrid.columnApi.getColumns();\r\n if (columns && columns.length > 0) {\r\n // if (columns.length > 10) {\r\n // this.agGrid.columnApi.autoSizeAllColumns();\r\n // } else {\r\n // this.agGrid.api.sizeColumnsToFit();\r\n // }\r\n const allColumnIds: string[] = [];\r\n this.agGrid.columnApi!.getColumns()!.forEach((column) => {\r\n allColumnIds.push(column.getId());\r\n });\r\n this.agGrid.columnApi!.autoSizeColumns(allColumnIds, false);\r\n }\r\n }\r\n }\r\n\r\n getGridState() {\r\n if (this.gridId && this.loggedInUser) {\r\n this.gridService\r\n .getGridState(this.gridId, this.loggedInUser)\r\n .subscribe((response: any) => {\r\n if (\r\n response.status == 1 &&\r\n response.object &&\r\n response.object.gridConfig\r\n ) {\r\n this.gridColumnState = JSON.parse(response.object.gridConfig);\r\n this.setGridState();\r\n } else {\r\n console.log('Error while loading grid state');\r\n }\r\n });\r\n }\r\n }\r\n\r\n onBtnClick(e: any) {\r\n console.log('btn click=>', e);\r\n this.btnClickHandler.emit(e.rowData);\r\n }\r\n\r\n onSaveGridColumnState(event: any) {\r\n let columnState = this.agGrid.columnApi?.getColumnState();\r\n let columnData = {\r\n gridConfig: JSON.stringify(columnState),\r\n uiGridId: this.gridId,\r\n userId: this.loggedInUser,\r\n };\r\n if (event.finished == true || event.type === 'columnPinned') {\r\n this.gridColumnState = columnState;\r\n this.gridService.saveColumnConfig(columnData).subscribe((res: any) => {\r\n this.setGridState();\r\n if (res.status == 0) {\r\n console.log('Error while saving column configuration:', res.message);\r\n }\r\n });\r\n }\r\n }\r\n\r\n getRowById: GetRowIdFunc = (params: GetRowIdParams) => {\r\n var data = params.data;\r\n return data.id ?? 0;\r\n };\r\n\r\n colValueFormatter(params: ValueFormatterParams) {\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 return this.datePipe.transform(params.value, 'MM-dd-yyyy');\r\n } else {\r\n return params.value;\r\n }\r\n }\r\n return params.value;\r\n }\r\n}\r\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';\nimport { DropdownRenderer } from './renderer/dropdown-renderer/drop-down-renderer';\n\n@NgModule({\n declarations: [\n GridLibraryComponent,\n ButtonRendererComponent,\n CustomTooltip,\n DropdownRenderer\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": "15.1.6",
3
+ "version": "15.2.6",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^15.0.4",
6
6
  "@angular/core": "^15.0.4",
Binary file