basesite-shared-grid-lib 0.0.1

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