cats-data-grid 0.0.2 → 1.0.0
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cats-data-grid.mjs","sources":["../../../projects/cats-data-grid/src/lib/services/cats-data-grid.service.ts","../../../projects/cats-data-grid/src/lib/pipes/add-class.pipe.ts","../../../projects/cats-data-grid/src/lib/directives/outside-click.directive.ts","../../../projects/cats-data-grid/src/lib/directives/renderer-parser.directive.ts","../../../projects/cats-data-grid/src/lib/cats-data-grid.component.ts","../../../projects/cats-data-grid/src/lib/cats-data-grid.component.html","../../../projects/cats-data-grid/src/public-api.ts","../../../projects/cats-data-grid/src/cats-data-grid.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CatsDataGridService {\r\n\r\n constructor() { }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'addClass'\r\n})\r\nexport class AddClassPipe implements PipeTransform {\r\n\r\n transform(value: any, tableOption: any): string {\r\n if (tableOption?.addClasses) {\r\n return tableOption.addClasses(value)\r\n }\r\n return '';\r\n }\r\n\r\n}\r\n","import { Directive, ElementRef, EventEmitter, HostListener, Output } from \"@angular/core\";\r\n\r\n@Directive({\r\n selector: \"[appOutsideClick]\",\r\n standalone: true\r\n})\r\nexport class OutsideClickDirective {\r\n @Output() clickOutside = new EventEmitter();\r\n constructor(private el: ElementRef) { }\r\n @HostListener('document:click', ['$event', '$event.target'])\r\n onClick(event: MouseEvent, targetElement: HTMLElement) {\r\n event.stopPropagation();\r\n if (!targetElement) {\r\n return;\r\n }\r\n const clickInside = this.el.nativeElement.contains(targetElement);\r\n if (!clickInside) this.clickOutside.emit(event)\r\n }\r\n}","import {\r\n Component,\r\n Directive,\r\n ElementRef,\r\n Input,\r\n OnInit,\r\n ViewContainerRef,\r\n} from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[appRendererParser]',\r\n})\r\nexport class RendererParserDirective implements OnInit {\r\n @Input() rowParam: any;\r\n @Input() col: any;\r\n @Input() api: any;\r\n @Input() currentValue: any;\r\n ref: any;\r\n constructor(private el: ViewContainerRef, private er: ElementRef) { }\r\n ngOnInit() {\r\n this.el?.clear();\r\n let params: any = {\r\n data: this.rowParam,\r\n value: this.currentValue,\r\n cellParams: this.col?.cellRendererParams,\r\n col: this.col\r\n };\r\n if (\r\n this.col?.cellRenderer?.prototype &&\r\n this.col.cellRenderer.prototype?.constructor == this.col.cellRenderer\r\n ) {\r\n this.ref = this.el.createComponent(this.col?.cellRenderer);\r\n this.ref.instance?.cellInit(params, this.api);\r\n } else if (typeof this.col?.cellRenderer == 'function') {\r\n let newDiv = document.createElement('div');\r\n newDiv.className = 'more_data_wrapper';\r\n newDiv.innerHTML = this.col.cellRenderer(params);\r\n let toltipDiv = document.createElement('div');\r\n let itemDiv = document.createElement('div');\r\n let descDiv = document.createElement('div');\r\n toltipDiv.className = 'see_more_data';\r\n itemDiv.className = 'item';\r\n descDiv.className = 'desc';\r\n descDiv.innerHTML = newDiv.innerText;\r\n itemDiv.appendChild(descDiv);\r\n toltipDiv.appendChild(itemDiv);\r\n this.er.nativeElement.appendChild(newDiv);\r\n this.er.nativeElement.appendChild(toltipDiv);\r\n }\r\n }\r\n}\r\n","import { AddClassPipe } from \"./pipes/add-class.pipe\";\r\nimport { CommonModule } from '@angular/common';\r\nimport { ChangeDetectorRef, Component, EventEmitter, Input, OnChanges, Output, SimpleChanges } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { OutsideClickDirective } from './directives/outside-click.directive';\r\nimport { RendererParserDirective } from './directives/renderer-parser.directive';\r\n\r\n@Component({\r\n selector: 'cats-data-grid',\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n OutsideClickDirective,\r\n RendererParserDirective,\r\n AddClassPipe,\r\n ],\r\n templateUrl: './cats-data-grid.component.html',\r\n styleUrl: './cats-data-grid.component.scss',\r\n})\r\nexport class CatsDataGridComponent implements OnChanges {\r\n @Input() tableOptions: any;\r\n @Input() totalRecords: number = 0;\r\n @Input() sortingRequired = false;\r\n @Input() checkBoxSelection = false;\r\n @Input() checkboxSelectionType = 'multiple';\r\n @Input() rowData: any[] = [];\r\n @Input() colDefs: any[] = [];\r\n @Input() paginationRequired = true;\r\n @Input() selectedRowEmpty: boolean = false;\r\n @Input() height: number = 300;\r\n @Output() onPaginationChange = new EventEmitter();\r\n @Output() onCheckboxSelection = new EventEmitter();\r\n @Output() onScrollEmitter = new EventEmitter();\r\n\r\n pageDetails: any = {\r\n pageSize: 20,\r\n totalPages: 1,\r\n currentPage: 1,\r\n };\r\n recordsToShow: any = {\r\n min: 0,\r\n max: 20,\r\n };\r\n sortingColumnIndex!: number;\r\n sortingType: string = '';\r\n selectedRow: any[] = [];\r\n\r\n @Input() pageSizeList: number[] = [20, 50, 75, 100];\r\n showPageSizeList: boolean = false;\r\n dragOverIndex: null | number = null;\r\n draggedIndex: null | number = null;\r\n constructor(private cd: ChangeDetectorRef) {}\r\n\r\n ngOnInit(): void {}\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['colDefs']?.currentValue) {\r\n this.resetTableConfig();\r\n }\r\n if (changes['totalRecords']?.currentValue) {\r\n this.setPageCount();\r\n }\r\n if (changes['rowData']?.currentValue) {\r\n if (this.selectedRowEmpty) this.selectedRow = [];\r\n this.rowData = changes['rowData']?.currentValue.map(\r\n (row: any, i: number) => {\r\n row.rowId = `${Date.now()}_${i}`;\r\n if (row?.isSelected) [...this.selectedRow, row];\r\n return row;\r\n }\r\n );\r\n }\r\n }\r\n\r\n /**\r\n * @description Method to parse column value from rowdata object\r\n * according to given field value in column Defination\r\n * @author Tarun Kumar\r\n * @param row - current row object\r\n * @param toParse - field value\r\n * @returns string\r\n */\r\n parseColValue(row: any, toParse: string): string {\r\n if (!toParse?.includes('.')) {\r\n return row[toParse] || '-';\r\n } else {\r\n let toParseArr = toParse.split('.');\r\n let val = row;\r\n for (const key of toParseArr) {\r\n val =\r\n row?.[val.key] && typeof row[val.key] === 'object'\r\n ? row[val.key].name\r\n : row[val.key] ?? '';\r\n // val = val[key];\r\n }\r\n return val || '-';\r\n }\r\n }\r\n\r\n /**\r\n * @description method to reset table configuration\r\n * @author Tarun Kumar\r\n * @param none\r\n * @returns void\r\n */\r\n resetTableConfig(): void {\r\n this.pageDetails.pageSize = 20;\r\n this.pageDetails.currentPage = 1;\r\n this.pageDetails.totalPages = 1;\r\n this.recordsToShow.min = 0;\r\n this.recordsToShow.max = 20;\r\n this.setPageCount();\r\n }\r\n\r\n /**\r\n * @description method to set total pages count\r\n * @author Tarun Kumar\r\n * @param none\r\n * @returns void\r\n */\r\n setPageCount(): void {\r\n this.pageDetails.totalPages = Math.ceil(\r\n this.totalRecords / this.pageDetails.pageSize\r\n );\r\n }\r\n\r\n /**\r\n * @description method to update table on page size change\r\n * @author Tarun Kumar\r\n * @param event\r\n * @returns void\r\n */\r\n onPageSizeChanged(event: any): void {\r\n this.recordsToShow.min = 0;\r\n this.recordsToShow.max = parseInt(event);\r\n this.pageDetails.currentPage = 1;\r\n this.pageDetails.pageSize = parseInt(event);\r\n this.setPageCount();\r\n this.onPaginationChange.emit({\r\n page: this.pageDetails.currentPage - 1,\r\n pageSize: this.pageDetails.pageSize,\r\n });\r\n }\r\n\r\n /**\r\n * @description method to update table on previous button click\r\n * @author Tarun Kumar\r\n */\r\n onBtPrevClick(): void {\r\n this.recordsToShow.min = this.recordsToShow.min - this.pageDetails.pageSize;\r\n this.recordsToShow.max = this.recordsToShow.max - this.pageDetails.pageSize;\r\n if (this.pageDetails.currentPage > 1)\r\n this.pageDetails.currentPage = this.pageDetails.currentPage - 1;\r\n\r\n this.onPaginationChange.emit({\r\n page: this.pageDetails.currentPage - 1,\r\n pageSize: this.pageDetails.pageSize,\r\n });\r\n }\r\n\r\n /**\r\n * @description method to update table on next button click\r\n * @author Tarun Kumar\r\n */\r\n onBtNextClick(): void {\r\n this.recordsToShow.min = this.recordsToShow.min + this.pageDetails.pageSize;\r\n this.recordsToShow.max = this.recordsToShow.max + this.pageDetails.pageSize;\r\n\r\n if (this.pageDetails.currentPage < this.pageDetails.totalPages)\r\n this.pageDetails.currentPage = this.pageDetails.currentPage + 1;\r\n\r\n this.onPaginationChange.emit({\r\n page: this.pageDetails.currentPage - 1,\r\n pageSize: this.pageDetails.pageSize,\r\n });\r\n }\r\n\r\n /**\r\n * @description method to update table on selecting any page randomly\r\n * @author Tarun Kumar\r\n * @param event\r\n */\r\n goToSelectedPage(event: any): void {\r\n let pageNo = event.target.value;\r\n if (pageNo < 1) {\r\n this.pageDetails.currentPage = 1;\r\n } else if (pageNo > this.pageDetails.totalPages) {\r\n this.pageDetails.currentPage = this.pageDetails.totalPages;\r\n }\r\n this.recordsToShow.max =\r\n this.pageDetails.currentPage * this.pageDetails.pageSize;\r\n this.recordsToShow.min =\r\n this.pageDetails.currentPage * this.pageDetails.pageSize -\r\n this.pageDetails.pageSize;\r\n\r\n this.onPaginationChange.emit({\r\n page: this.pageDetails.currentPage - 1,\r\n pageSize: this.pageDetails.pageSize,\r\n });\r\n }\r\n\r\n /**\r\n * @description method to sort data according to type and column\r\n * @author Tarun Kumar\r\n * @param sortingColumIndex\r\n * @param fieldName\r\n * @param sortingType\r\n */\r\n onSortingRowData(sortingColumIndex: number, fieldName: string): void {\r\n this.sortingColumnIndex = sortingColumIndex;\r\n this.sortingType = !this.sortingType\r\n ? 'asc'\r\n : this.sortingType == 'asc'\r\n ? 'dsc'\r\n : 'asc';\r\n if (this.sortingType == 'asc') {\r\n this.ascendingOrder(fieldName);\r\n } else {\r\n this.descendingOrder(fieldName);\r\n }\r\n }\r\n\r\n /**\r\n * @description method to sort table in ascending order according to given field\r\n * @param fieldName\r\n */\r\n ascendingOrder(fieldName: string): void {\r\n this.rowData = this.rowData.sort((a, b) => {\r\n if (this.parseColValue(a, fieldName) > this.parseColValue(b, fieldName)) {\r\n return 1;\r\n } else {\r\n return -1;\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * @description method to sort table in descending order according to given field\r\n * @param fieldName\r\n */\r\n descendingOrder(fieldName: string): void {\r\n this.rowData = this.rowData.sort((a, b) => {\r\n if (this.parseColValue(a, fieldName) > this.parseColValue(b, fieldName)) {\r\n return -1;\r\n } else {\r\n return 1;\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * @description method to check/uncheck all rows on header checkbox selection/deselection\r\n * @author Tarun Kumar\r\n * @param event\r\n */\r\n onHeaderCheckboxChange(event: any): void {\r\n if (event.target.checked) {\r\n this.rowData = this.rowData.map((data) => {\r\n data.isSelected = true;\r\n return data;\r\n });\r\n this.selectedRow = JSON.parse(JSON.stringify(this.rowData));\r\n this.onCheckboxSelection.emit(this.rowData);\r\n } else {\r\n this.rowData = this.rowData.map((data) => {\r\n data.isSelected = false;\r\n return data;\r\n });\r\n this.selectedRow = [];\r\n this.onCheckboxSelection.emit([]);\r\n }\r\n }\r\n\r\n /**\r\n * @description method to check/uncheck row on row checkbox selection/deselection\r\n * @author Tarun Kumar\r\n * @param event\r\n */\r\n onRowCheckboxSelection(event: any): void {\r\n if (event.target.checked) {\r\n let ind = this.rowData.findIndex(\r\n (item: any) => item.rowId == event.target.id\r\n );\r\n this.rowData[ind].isSelected = true;\r\n if (\r\n this.checkboxSelectionType != 'multiple' &&\r\n this.selectedRow.length > 0\r\n ) {\r\n (\r\n document.getElementById(this.selectedRow[0].rowId) as HTMLInputElement\r\n ).checked = false;\r\n this.selectedRow = [];\r\n }\r\n this.selectedRow.push(this.rowData[ind]);\r\n\r\n this.onCheckboxSelection.emit(this.selectedRow);\r\n } else {\r\n let ind = this.rowData.findIndex(\r\n (item: any) => item.rowId == event.target.id\r\n );\r\n this.rowData[ind].isSelected = false;\r\n let i = this.selectedRow.findIndex(\r\n (item: any) => item.rowId == event.target.id\r\n );\r\n this.selectedRow.splice(i, 1);\r\n this.onCheckboxSelection.emit(this.selectedRow);\r\n }\r\n this.cd.detectChanges();\r\n }\r\n /**\r\n * @description method to check/uncheck all rows on header checkbox selection/deselection\r\n * @author Tarun Kumar\r\n * @param col\r\n * @returns {object}\r\n */\r\n getStyle(col: any): object {\r\n return { width: `${col.width}px` };\r\n }\r\n onClickOutside() {\r\n this.showPageSizeList = false;\r\n }\r\n checkCondition(data: any): boolean {\r\n if (data.status) return true;\r\n else return false;\r\n }\r\n infinityScroll(event: any) {\r\n if (\r\n event.target.offsetHeight + event.target.scrollTop >=\r\n event.target.scrollHeight - 1 &&\r\n this.rowData.length\r\n ) {\r\n this.onScrollEmitter.emit();\r\n }\r\n }\r\n\r\n checkAllSelected(): boolean {\r\n if (!this.rowData.length) return false;\r\n return this.selectedRow.length == this.rowData.length;\r\n }\r\n checkInterminate(): boolean {\r\n if (!this.rowData.length) return false;\r\n return (\r\n this.selectedRow.length > 0 &&\r\n this.selectedRow.length < this.rowData.length\r\n );\r\n }\r\n\r\n /**\r\n * @author Tarun Kumar\r\n * @description function triggered when the drag starts\r\n * @param {event object, index}\r\n * @returns {void}\r\n */\r\n onDragStart(event: DragEvent, index: number) {\r\n this.draggedIndex = index;\r\n event.dataTransfer?.setData('text/plain', index.toString());\r\n }\r\n\r\n /**\r\n * @author Tarun Kumar\r\n * @description function to track the index of the element being dragged over and allow dropping\r\n * @param {event object, index}\r\n * @returns {void}\r\n */\r\n onDragOver(event: DragEvent, index: number) {\r\n event.preventDefault();\r\n if (this.dragOverIndex !== index) {\r\n this.dragOverIndex = index;\r\n }\r\n }\r\n\r\n /**\r\n * @author Tarun Kumar\r\n * @description function to Reorder the items on drop\r\n * @param {event object, index}\r\n * @returns {void}\r\n */\r\n onDrop(event: DragEvent, index: number) {\r\n event.preventDefault();\r\n if (this.draggedIndex === null) return;\r\n const draggedItem = this.colDefs[this.draggedIndex];\r\n this.colDefs.splice(this.draggedIndex, 1);\r\n this.colDefs.splice(index, 0, draggedItem);\r\n this.draggedIndex = null;\r\n this.dragOverIndex = null;\r\n }\r\n\r\n /**\r\n * @author Tarun Kumar\r\n * @description function to reset dragOverIndex when the drag ends\r\n * @param {none}\r\n * @returns {void}\r\n */\r\n onDragEnd() {\r\n this.draggedIndex = null;\r\n this.dragOverIndex = null;\r\n }\r\n}\r\n\r\n","<div class=\"tableArea\">\r\n <div class=\"table_wrapper\" id=\"container_scroll\" (scroll)=\"infinityScroll($event)\" [ngStyle]=\"{height: height + 'px'}\">\r\n <table cellspacing=\"0\" cellpadding=\"0\">\r\n <thead class=\"sticky-top\">\r\n <tr>\r\n @if (checkBoxSelection && checkboxSelectionType == 'multiple') {\r\n <th style=\"width: 50px\">\r\n <span><input class=\"form-check-input cursor-pointer\" type=\"checkbox\" name=\"\" id=\"\" [checked]=\"checkAllSelected()\"\r\n [indeterminate]=\"checkInterminate()\" (change)=\"onHeaderCheckboxChange($event)\" /></span>\r\n </th>\r\n } @for (col of colDefs; track $index) {\r\n <th [ngStyle]=\"getStyle(col)\" [ngClass]=\"{ 'drag-over': dragOverIndex === $index }\" draggable=\"true\"\r\n (dragstart)=\"onDragStart($event, $index)\" (dragover)=\"onDragOver($event, $index)\" (drop)=\"onDrop($event, $index)\"\r\n (dragend)=\"onDragEnd()\" >\r\n <div class=\"flex-center\" [ngStyle]=\"getStyle(col)\" (click)=\"onSortingRowData($index, col?.fieldName)\">\r\n <span class=\"ellipsis headerName\">{{ col?.headerName }}</span>\r\n @if (sortingRequired && sortingColumnIndex == $index) {\r\n <span class=\"headerName-icon\">\r\n <ul class=\"\">\r\n <li class=\"cursor-pointer\">\r\n <img src=\"images/sort_up.svg\" class=\"sorting_up\" [ngClass]=\"\r\n sortingColumnIndex == $index && sortingType == 'asc'\r\n ? 'd-none'\r\n : ''\r\n \" />\r\n </li>\r\n <li class=\"cursor-pointer\">\r\n <!-- <i class=\"fa fa-caret-down\" [ngClass]=\"sortingColumnIndex == $index && sortingType == 'dsc' ? 'muted_sort' : ''\"></i> -->\r\n <img src=\"images/sort_down.svg\" class=\"sorting_down\" [ngClass]=\"\r\n sortingColumnIndex == $index && sortingType == 'dsc'\r\n ? 'd-none'\r\n : ''\r\n \" />\r\n </li>\r\n </ul>\r\n </span>\r\n }\r\n </div>\r\n </th>\r\n }\r\n </tr>\r\n </thead>\r\n <tbody>\r\n @for (data of rowData; track data.rowId) {\r\n <tr [ngClass]=\"data | addClass : tableOptions\">\r\n @if (checkBoxSelection) {\r\n <td style=\"min-width: 50px\">\r\n @if (checkboxSelectionType=='multiple') {\r\n <span><input type=\"checkbox\" class=\"form-check-input pointer\" name=\"\" id=\"{{ data.rowId }}\"\r\n [checked]=\"data?.isSelected\" (change)=\"onRowCheckboxSelection($event)\" /></span>\r\n\r\n }@else{\r\n <span class=\"checkboxInput\">\r\n <input type=\"radio\" name=\"\" id=\"{{ data.rowId }}\" [checked]=\"data?.isSelected\"\r\n (change)=\"onRowCheckboxSelection($event)\" />\r\n </span>\r\n\r\n }\r\n </td>\r\n } @for (col of colDefs; track $index) {\r\n <td [ngStyle]=\"getStyle(col)\" [ngClass]=\"col?.addClass ? col.addClass(data) : ''\">\r\n @if (!col?.cellRenderer) {\r\n <div class=\"cell-value\">\r\n <div class=\"more_data_wrapper\" [ngClass]=\"{ ellipsis: !col.wrapText }\">\r\n {{ parseColValue(data, col.fieldName) }}\r\n </div>\r\n <div class=\"see_more_data\">\r\n <div class=\"item\">\r\n <span class=\"desc\">\r\n {{ parseColValue(data, col.fieldName) }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n } @else{\r\n <div [rowParam]=\"data\" [col]=\"col\" [api]=\"tableOptions\" [currentValue]=\"data[col.fieldName]\"\r\n appRendererParser></div>\r\n }\r\n <!-- Commented for later use -->\r\n <!-- <div class=\"tool_tip\">\r\n <span class=\"\"> {{ parseColValue(data, col.fieldName) }}aditya </span>\r\n </div> -->\r\n </td>\r\n }\r\n </tr>\r\n } @empty {\r\n <tr>\r\n <td [attr.colspan]=\"colDefs.length + 1\">\r\n <div class=\"small_data\">\r\n @if (tableOptions?.noDataTemplate) {\r\n <ng-container *ngTemplateOutlet=\"tableOptions?.noDataTemplate\"></ng-container>\r\n\r\n }@else{\r\n <!-- need to style it properly then we will add it -->\r\n <span>No Data To Show</span>\r\n\r\n }\r\n </div>\r\n </td>\r\n </tr>\r\n\r\n }\r\n </tbody>\r\n </table>\r\n </div>\r\n <!-- Table Wrapper Ends-->\r\n @if(paginationRequired){\r\n <div class=\"pagination_main\">\r\n <div class=\"entries_details\">\r\n <span>Showing</span>\r\n <div class=\"pagination_select\" appOutsideClick (clickOutside)=\"onClickOutside()\">\r\n <div class=\"select_dropdown pointer\" (click)=\"showPageSizeList = !showPageSizeList\">\r\n <p class=\"select_text mb-0\">{{ pageDetails.pageSize }}</p>\r\n <span class=\"chevron_img\">\r\n <img src=\"images/chevron-down.svg\" class=\"pointer\" />\r\n </span>\r\n </div>\r\n @if(showPageSizeList){\r\n <div class=\"select_option\">\r\n @for(option of pageSizeList;track $index){\r\n <span class=\"pointer\" (click)=\"onPageSizeChanged(option); onClickOutside()\">{{ option }}</span>\r\n }\r\n </div>\r\n }\r\n </div>\r\n <span>Rows | {{ totalRecords > 0 ? recordsToShow.min + 1 : 0 }} -\r\n {{\r\n recordsToShow.max > totalRecords ? totalRecords : recordsToShow.max\r\n }}\r\n of\r\n {{ totalRecords }} Entries</span>\r\n </div>\r\n <div class=\"pagination_form flex-center\">\r\n <span>Page</span>\r\n\r\n <button class=\"outlined_btn prev_btn\" [ngClass]=\"pageDetails.currentPage > 1 ? '' : 'disable_btn'\" type=\"button\"\r\n (click)=\"onBtPrevClick()\">\r\n <span> < </span>\r\n </button>\r\n <div>\r\n <input class=\"input_style right\" type=\"number\" [(ngModel)]=\"pageDetails.currentPage\"\r\n (change)=\"goToSelectedPage($event)\" name=\"\" id=\"\" />\r\n </div>\r\n <button class=\"outlined_btn next_btn\" type=\"button\" [ngClass]=\"\r\n pageDetails.currentPage < pageDetails.totalPages ? '' : 'disable_btn'\r\n \" (click)=\"onBtNextClick()\">\r\n <span> > </span>\r\n </button>\r\n <span>of {{ pageDetails.totalPages }}</span>\r\n </div>\r\n </div>\r\n }\r\n <!-- Pagination Ends -->\r\n</div>","/*\r\n * Public API Surface of cats-data-grid\r\n */\r\n\r\nexport * from './lib/services/cats-data-grid.service';\r\nexport * from './lib/cats-data-grid.component';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cats-data-grid.mjs","sources":["../../../projects/cats-data-grid/src/lib/services/cats-data-grid.service.ts","../../../projects/cats-data-grid/src/lib/pipes/add-class.pipe.ts","../../../projects/cats-data-grid/src/lib/directives/outside-click.directive.ts","../../../projects/cats-data-grid/src/lib/directives/renderer-parser.directive.ts","../../../projects/cats-data-grid/src/lib/cats-data-grid.component.ts","../../../projects/cats-data-grid/src/lib/cats-data-grid.component.html","../../../projects/cats-data-grid/src/public-api.ts","../../../projects/cats-data-grid/src/cats-data-grid.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CatsDataGridService {\r\n\r\n constructor() { }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'addClass'\r\n})\r\nexport class AddClassPipe implements PipeTransform {\r\n\r\n transform(value: any, tableOption: any): string {\r\n if (tableOption?.addClasses) {\r\n return tableOption.addClasses(value)\r\n }\r\n return '';\r\n }\r\n\r\n}\r\n","import {\r\n Directive,\r\n ElementRef,\r\n EventEmitter,\r\n HostListener,\r\n Output,\r\n} from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[appOutsideClick]',\r\n standalone: true,\r\n})\r\nexport class OutsideClickDirective {\r\n @Output() clickOutside = new EventEmitter();\r\n constructor(private elementRef: ElementRef) {}\r\n @HostListener('document:click', ['$event'])\r\n public onClick(event: MouseEvent): void {\r\n const targetElement = event.target as HTMLElement | null;\r\n\r\n // Guard clause: exit early if no target or not an element\r\n if (!targetElement) {\r\n return;\r\n }\r\n\r\n const clickInside = this.elementRef.nativeElement.contains(targetElement);\r\n if (!clickInside) {\r\n this.clickOutside.emit(event);\r\n }\r\n }\r\n}\r\n","import {\r\n Component,\r\n Directive,\r\n ElementRef,\r\n Input,\r\n OnInit,\r\n ViewContainerRef,\r\n} from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[appRendererParser]',\r\n})\r\nexport class RendererParserDirective implements OnInit {\r\n @Input() rowParam: any;\r\n @Input() col: any;\r\n @Input() api: any;\r\n @Input() currentValue: any;\r\n ref: any;\r\n constructor(private el: ViewContainerRef, private er: ElementRef) { }\r\n ngOnInit() {\r\n this.el?.clear();\r\n let params: any = {\r\n data: this.rowParam,\r\n value: this.currentValue,\r\n cellParams: this.col?.cellRendererParams,\r\n col: this.col\r\n };\r\n if (\r\n this.col?.cellRenderer?.prototype &&\r\n this.col.cellRenderer.prototype?.constructor == this.col.cellRenderer\r\n ) {\r\n this.ref = this.el.createComponent(this.col?.cellRenderer);\r\n this.ref.instance?.cellInit(params, this.api);\r\n } else if (typeof this.col?.cellRenderer == 'function') {\r\n let newDiv = document.createElement('div');\r\n newDiv.className = 'more_data_wrapper';\r\n newDiv.innerHTML = this.col.cellRenderer(params);\r\n let toltipDiv = document.createElement('div');\r\n let itemDiv = document.createElement('div');\r\n let descDiv = document.createElement('div');\r\n toltipDiv.className = 'see_more_data';\r\n itemDiv.className = 'item';\r\n descDiv.className = 'desc';\r\n descDiv.innerHTML = newDiv.innerText;\r\n itemDiv.appendChild(descDiv);\r\n toltipDiv.appendChild(itemDiv);\r\n this.er.nativeElement.appendChild(newDiv);\r\n this.er.nativeElement.appendChild(toltipDiv);\r\n }\r\n }\r\n}\r\n","import { AddClassPipe } from './pipes/add-class.pipe';\r\nimport { CommonModule } from '@angular/common';\r\nimport {\r\n ChangeDetectorRef,\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n SimpleChanges,\r\n} from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { OutsideClickDirective } from './directives/outside-click.directive';\r\nimport { RendererParserDirective } from './directives/renderer-parser.directive';\r\n\r\ninterface TextFilterCondition {\r\n filterType: string;\r\n filterCondition: string;\r\n}\r\n\r\n@Component({\r\n selector: 'cats-data-grid',\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n OutsideClickDirective,\r\n RendererParserDirective,\r\n AddClassPipe,\r\n ],\r\n templateUrl: './cats-data-grid.component.html',\r\n styleUrl: './cats-data-grid.component.scss',\r\n})\r\nexport class CatsDataGridComponent implements OnChanges, OnInit {\r\n @Input() tableOptions: any;\r\n @Input() totalRecords: number = 0;\r\n @Input() sortingRequired = false;\r\n @Input() checkBoxSelection = false;\r\n @Input() checkboxSelectionType = 'multiple';\r\n @Input() rowData: any[] = [];\r\n @Input() colDefs: any[] = [];\r\n @Input() paginationRequired = true;\r\n @Input() selectedRowEmpty: boolean = false;\r\n @Input() filterRequired: boolean = false;\r\n @Input() threeDotsMenuRequired: boolean = false;\r\n\r\n @Input() height: number = 300;\r\n @Output() onPaginationChange = new EventEmitter();\r\n @Output() onCheckboxSelection = new EventEmitter();\r\n @Output() onScrollEmitter = new EventEmitter();\r\n @Output() filter = new EventEmitter();\r\n\r\n activeFilterIndex: number | null = null;\r\n originalRowData: any[] = [];\r\n\r\n pageDetails: any = {\r\n pageSize: 20,\r\n totalPages: 1,\r\n currentPage: 1,\r\n };\r\n recordsToShow: any = {\r\n min: 0,\r\n max: 20,\r\n };\r\n sortingColumnIndex!: number;\r\n sortingType: string = '';\r\n selectedRow: any[] = [];\r\n\r\n @Input() pageSizeList: number[] = [20, 50, 75, 100];\r\n showPageSizeList: boolean = false;\r\n dragOverIndex: null | number = null;\r\n draggedIndex: null | number = null;\r\n originalColDefs: any[] = [];\r\n filteredRowData: any[] = [];\r\n filteredData: any[] = [];\r\n currentColumn: any;\r\n currentIndex!: number;\r\n menuVisible: boolean[] = [];\r\n menuPosition: any[] = [];\r\n activeFilters: Set<any> = new Set<any>();\r\n constructor(private cd: ChangeDetectorRef) {}\r\n\r\n ngOnInit(): void {\r\n this.originalRowData = structuredClone(this.rowData);\r\n this.filteredRowData = structuredClone(this.rowData);\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['colDefs']?.currentValue) {\r\n this.resetTableConfig();\r\n this.colDefs = this.getUpdatedColDefs(changes['colDefs']?.currentValue);\r\n }\r\n if (changes['totalRecords']?.currentValue) {\r\n this.setPageCount();\r\n }\r\n if (changes['rowData']?.currentValue) {\r\n if (this.selectedRowEmpty) this.selectedRow = [];\r\n this.rowData = changes['rowData']?.currentValue.map(\r\n (row: any, i: number) => {\r\n row.rowId = `${Date.now()}_${i}`;\r\n if (row?.isSelected) [...this.selectedRow, row];\r\n return row;\r\n }\r\n );\r\n }\r\n }\r\n\r\n /**\r\n * @description Prepares and normalizes column definitions for filtering and menu behavior\r\n * @author Anand Pandey\r\n * @param {any[]} colDefs - Raw column definitions received from the parent.\r\n * @returns {any[]} - Updated column definitions with filter/menu\r\n */\r\n getUpdatedColDefs(colDefs: any[]) {\r\n return colDefs.map((col) => {\r\n // Default dataType\r\n if (!col.dataType) {\r\n col.dataType = 'text';\r\n }\r\n col.textLogic = 'AND';\r\n col.numberLogic = 'AND';\r\n let updatedCol = {\r\n ...col,\r\n filter: col.filter ?? true,\r\n menu: col.menu ?? true,\r\n };\r\n\r\n if (!updatedCol.filter) {\r\n return updatedCol;\r\n }\r\n\r\n switch (col.dataType) {\r\n case 'text':\r\n updatedCol = {\r\n ...updatedCol,\r\n textFilters: [\r\n {\r\n filterType: 'contains',\r\n filterValue: '',\r\n },\r\n {\r\n filterType: 'startsWith',\r\n filterValue: '',\r\n },\r\n ],\r\n };\r\n break;\r\n\r\n case 'number':\r\n case 'date':\r\n updatedCol = {\r\n ...updatedCol,\r\n dateValue: '',\r\n numberFilters: [\r\n {\r\n filterType: '=',\r\n numberValue: '',\r\n },\r\n {\r\n filterType: '=',\r\n numberValue: '',\r\n },\r\n ],\r\n dateFilters: [\r\n {\r\n filterType: '=',\r\n dateValue: '',\r\n },\r\n {\r\n filterType: '=',\r\n dateValue: '',\r\n },\r\n ],\r\n };\r\n break;\r\n\r\n case 'set':\r\n const options = [\r\n ...new Set(this.rowData.map((r) => r[col.fieldName])),\r\n ];\r\n updatedCol = {\r\n ...updatedCol,\r\n options,\r\n filteredOptions: options,\r\n selectedValues: new Set(options),\r\n };\r\n break;\r\n }\r\n\r\n return updatedCol;\r\n });\r\n }\r\n\r\n evaluateTextFilterCondition(\r\n type: string,\r\n fieldValue: string,\r\n value: string\r\n ): boolean {\r\n switch (type) {\r\n case 'contains':\r\n return fieldValue.includes(value);\r\n case 'doesNotContain':\r\n return !fieldValue.includes(value);\r\n case 'equals':\r\n return fieldValue === value;\r\n case 'doesNotEqual':\r\n return fieldValue !== value;\r\n case 'startsWith':\r\n return fieldValue.startsWith(value);\r\n case 'endsWith':\r\n return fieldValue.endsWith(value);\r\n default:\r\n return true;\r\n }\r\n }\r\n\r\n evaluateNumDateFilterCondition(\r\n type: string,\r\n fieldValue: number,\r\n value: number\r\n ): boolean {\r\n switch (type) {\r\n case '=':\r\n return fieldValue === value;\r\n case '>':\r\n return fieldValue > value;\r\n case '<':\r\n return fieldValue < value;\r\n case '>=':\r\n return fieldValue >= value;\r\n case '<=':\r\n return fieldValue <= value;\r\n default:\r\n return true;\r\n }\r\n }\r\n\r\n /**\r\n * @description Method to filter data according to dataType and comparator selection\r\n * @author Anand Pandey\r\n * @param {}\r\n * @returns void\r\n */\r\n applyAllFilters() {\r\n let result: any[] = structuredClone(this.originalRowData);\r\n\r\n this.colDefs.forEach((col) => {\r\n const field = col.fieldName;\r\n\r\n // *********** TEXT FILTER ***********\r\n if (col.dataType === 'text') {\r\n const [c1, c2] = col.textFilters;\r\n\r\n const textVal1 = c1.filterValue?.toLowerCase().trim();\r\n const textVal2 = c2.filterValue?.toLowerCase().trim();\r\n if (!textVal1 && !textVal2) {\r\n this.activeFilters.delete(col.fieldName);\r\n return;\r\n }\r\n this.activeFilters.add(col.fieldName);\r\n\r\n result = result.filter((r) => {\r\n const fieldVal = String(r[field]).toLowerCase();\r\n const cond1 = textVal1\r\n ? this.evaluateTextFilterCondition(\r\n c1.filterType,\r\n fieldVal,\r\n textVal1\r\n )\r\n : false;\r\n const cond2 = textVal2\r\n ? this.evaluateTextFilterCondition(\r\n c2.filterType,\r\n fieldVal,\r\n textVal2\r\n )\r\n : false;\r\n\r\n return col.textLogic === 'AND' ? cond1 && cond2 : cond1 || cond2;\r\n });\r\n }\r\n\r\n // *********** NUMBER FILTER ***********\r\n if (col.dataType === 'number') {\r\n if (col.numberValue.trim()) {\r\n const [c1, c2] = col.numberFilters;\r\n\r\n const numValue1 = Number(c1.numberValue);\r\n const numValue2 = Number(c2.numberValue);\r\n const num = Number(col.numberValue);\r\n\r\n if (!numValue1 && !numValue2) {\r\n this.activeFilters.delete(col.fieldName);\r\n return;\r\n }\r\n this.activeFilters.add(col.fieldName);\r\n\r\n result = result.filter((r) => {\r\n const fieldVal = Number(r[field]);\r\n const cond1 = numValue1\r\n ? this.evaluateNumDateFilterCondition(\r\n c1.filterType,\r\n fieldVal,\r\n numValue1\r\n )\r\n : false;\r\n const cond2 = numValue2\r\n ? this.evaluateNumDateFilterCondition(\r\n c2.filterType,\r\n fieldVal,\r\n numValue2\r\n )\r\n : false;\r\n\r\n return col.textLogic === 'AND' ? cond1 && cond2 : cond1 || cond2;\r\n });\r\n }\r\n }\r\n\r\n // *********** DATE FILTER ***********\r\n if (col.dataType === 'date') {\r\n if (col.dateValue) {\r\n const selected = this.normalizeDate(col.dateValue);\r\n this.activeFilters.add(col.fieldName);\r\n result = result.filter((r) => {\r\n const valueDate = this.normalizeDate(r[field]);\r\n switch (col.numberCondition) {\r\n case '=':\r\n return valueDate === selected;\r\n case '>':\r\n return valueDate > selected;\r\n case '<':\r\n return valueDate < selected;\r\n case '>=':\r\n return valueDate >= selected;\r\n case '<=':\r\n return valueDate <= selected;\r\n default:\r\n return true; // keep row\r\n }\r\n });\r\n } else {\r\n this.activeFilters.delete(col.fieldName);\r\n }\r\n }\r\n\r\n // *********** SET FILTER ***********\r\n if (col.dataType === 'set') {\r\n if (\r\n col.selectedValues.size >= 0 &&\r\n col.selectedValues.size !== col.options.length\r\n ) {\r\n result = result.filter((r) => col.selectedValues.has(r[field]));\r\n this.activeFilters.add(col.fieldName);\r\n } else {\r\n this.activeFilters.delete(col.fieldName);\r\n }\r\n }\r\n });\r\n\r\n this.filteredData = result;\r\n this.filter.emit(this.filteredData);\r\n }\r\n\r\n /**\r\n * @description Method to change the data format to utc\r\n * @author Anand Pandey\r\n * @param {date} - date value to be changed\r\n * @returns date in milliseconds\r\n */\r\n normalizeDate(dateStr: string) {\r\n const d = new Date(dateStr);\r\n return new Date(\r\n Date.UTC(d.getFullYear(), d.getMonth(), d.getDate())\r\n ).getTime();\r\n }\r\n\r\n /**\r\n * @description\r\n * Filters the available set options inside a Set Filter (checkbox filter)\r\n * based on the user's search text. This updates only the list shown in\r\n * the dropdown\r\n * @author Anand Pandey\r\n * @param col - Column definition object containing filter config\r\n * @param event - Input event from the search textbox\r\n * @returns void\r\n */\r\n filterSetOptions(col: any, event: any) {\r\n const text = event.target.value.toLowerCase();\r\n col.filteredOptions = col.options.filter((option: any) =>\r\n String(option).toLowerCase().includes(text)\r\n );\r\n }\r\n\r\n /**\r\n * @description\r\n * Toggles an individual checkbox option inside a Set Filter. *\r\n * @author Anand Pandey\r\n * @param col - Column definition object\r\n * @param opt - Selected option value\r\n * @param event - Checkbox change event\r\n * @returns void\r\n */\r\n toggleSetOption(col: any, opt: any, event: any) {\r\n if (event.target.checked) col.selectedValues.add(opt);\r\n else col.selectedValues.delete(opt);\r\n\r\n this.applyAllFilters();\r\n }\r\n\r\n /**\r\n * @description * Selects or deselects all checkbox options in the Set Filter.\r\n * @author Anand Pandey\r\n * @param col - Column definition object\r\n * @param event - Checkbox change event\r\n * @returns void\r\n */\r\n toggleSelectAll(col: any, event: any) {\r\n if (event.target.checked) {\r\n col.options.forEach((option: any) => col.selectedValues.add(option));\r\n } else {\r\n col.selectedValues.clear();\r\n }\r\n this.applyAllFilters();\r\n }\r\n\r\n /**\r\n * @description\r\n * Checks whether all options inside a Set Filter are currently selected.\r\n * @author Anand Pandey\r\n * @param col - Column definition object\r\n * @returns boolean - TRUE if all options are selected, otherwise FALSE.\r\n */\r\n isAllSelected(col: any) {\r\n return (\r\n col.options?.length > 0 && col.options?.length === col.selectedValues.size\r\n );\r\n }\r\n\r\n /**\r\n * @description\r\n * Opens the three-dots column menu for the selected column.\r\n * Opens only the menu belonging to the clicked column index\r\n * @author Anand Pandey\r\n * @param {MouseEvent} event - The click event triggered on the three-dots icon.\r\n * @param {any} col - The column definition object for which menu is opened.\r\n * @param {number} index - Index of the column whose menu has been requested.\r\n * @returns {void}\r\n */\r\n openMenu(event: MouseEvent, col: any, index: number) {\r\n event.stopPropagation();\r\n this.activeFilterIndex = null;\r\n this.menuVisible = this.menuVisible.map(() => false);\r\n\r\n if (!this.menuVisible[index]) this.menuVisible[index] = false;\r\n\r\n const rect = (event.target as HTMLElement).getBoundingClientRect();\r\n\r\n this.menuPosition[index] = {\r\n top: rect.bottom + 4 + 'px',\r\n left: rect.left + 'px',\r\n };\r\n\r\n const menuWidth = 160;\r\n const screenWidth = window.innerWidth;\r\n const padding = 10;\r\n\r\n //FIX: Stop overflow on the right\r\n if (\r\n parseInt(this.menuPosition[index].left) + menuWidth >\r\n screenWidth - padding\r\n ) {\r\n this.menuPosition[index].left = screenWidth - menuWidth - padding + 'px';\r\n }\r\n // Open only this one\r\n this.menuVisible[index] = true;\r\n }\r\n\r\n /**\r\n * @description Sort from three dots menu pop up.\r\n * @author Anand Pandey\r\n * @param {fieldName} string - fieldname.\r\n * @param {string} type - Type defines the sorting type whether this is ascending, descending.\r\n * @returns {void}\r\n */\r\n onSort(fieldName: string, type: string) {\r\n this.sortingType = type;\r\n if (this.sortingType == 'asc' || this.sortingType == '') {\r\n this.ascendingOrder(fieldName);\r\n } else {\r\n this.descendingOrder(fieldName);\r\n }\r\n this.menuVisible[this.currentIndex] = false;\r\n }\r\n\r\n /**\r\n * @description Method to parse column value from rowdata object\r\n * according to given field value in column Defination\r\n * @author Tarun Kumar\r\n * @param row - current row object\r\n * @param toParse - field value\r\n * @returns string\r\n */\r\n parseColValue(row: any, toParse: string): string {\r\n if (!toParse?.includes('.')) {\r\n return row[toParse] || '-';\r\n } else {\r\n let toParseArr = toParse.split('.');\r\n let val = row;\r\n for (const key of toParseArr) {\r\n val =\r\n row?.[val.key] && typeof row[val.key] === 'object'\r\n ? row[val.key].name\r\n : row[val.key] ?? '';\r\n // val = val[key];\r\n }\r\n return val || '-';\r\n }\r\n }\r\n\r\n /**\r\n * @description method to reset table configuration\r\n * @author Tarun Kumar\r\n * @param none\r\n * @returns void\r\n */\r\n resetTableConfig(): void {\r\n this.pageDetails.pageSize = 20;\r\n this.pageDetails.currentPage = 1;\r\n this.pageDetails.totalPages = 1;\r\n this.recordsToShow.min = 0;\r\n this.recordsToShow.max = 20;\r\n this.setPageCount();\r\n }\r\n\r\n /**\r\n * @description method to set total pages count\r\n * @author Tarun Kumar\r\n * @param none\r\n * @returns void\r\n */\r\n setPageCount(): void {\r\n this.pageDetails.totalPages = Math.ceil(\r\n this.totalRecords / this.pageDetails.pageSize\r\n );\r\n }\r\n\r\n /**\r\n * @description method to update table on page size change\r\n * @author Tarun Kumar\r\n * @param event\r\n * @returns void\r\n */\r\n onPageSizeChanged(event: any): void {\r\n this.recordsToShow.min = 0;\r\n this.recordsToShow.max = parseInt(event);\r\n this.pageDetails.currentPage = 1;\r\n this.pageDetails.pageSize = parseInt(event);\r\n this.setPageCount();\r\n this.onPaginationChange.emit({\r\n page: this.pageDetails.currentPage - 1,\r\n pageSize: this.pageDetails.pageSize,\r\n });\r\n }\r\n\r\n /**\r\n * @description method to update table on previous button click\r\n * @author Tarun Kumar\r\n */\r\n onBtPrevClick(): void {\r\n this.recordsToShow.min = this.recordsToShow.min - this.pageDetails.pageSize;\r\n this.recordsToShow.max = this.recordsToShow.max - this.pageDetails.pageSize;\r\n if (this.pageDetails.currentPage > 1)\r\n this.pageDetails.currentPage = this.pageDetails.currentPage - 1;\r\n\r\n this.onPaginationChange.emit({\r\n page: this.pageDetails.currentPage - 1,\r\n pageSize: this.pageDetails.pageSize,\r\n });\r\n }\r\n\r\n /**\r\n * @description method to update table on next button click\r\n * @author Tarun Kumar\r\n */\r\n onBtNextClick(): void {\r\n this.recordsToShow.min = this.recordsToShow.min + this.pageDetails.pageSize;\r\n this.recordsToShow.max = this.recordsToShow.max + this.pageDetails.pageSize;\r\n\r\n if (this.pageDetails.currentPage < this.pageDetails.totalPages)\r\n this.pageDetails.currentPage = this.pageDetails.currentPage + 1;\r\n\r\n this.onPaginationChange.emit({\r\n page: this.pageDetails.currentPage - 1,\r\n pageSize: this.pageDetails.pageSize,\r\n });\r\n }\r\n\r\n /**\r\n * @description method to update table on selecting any page randomly\r\n * @author Tarun Kumar\r\n * @param event\r\n */\r\n goToSelectedPage(event: any): void {\r\n let pageNo = event.target.value;\r\n if (pageNo < 1) {\r\n this.pageDetails.currentPage = 1;\r\n } else if (pageNo > this.pageDetails.totalPages) {\r\n this.pageDetails.currentPage = this.pageDetails.totalPages;\r\n }\r\n this.recordsToShow.max =\r\n this.pageDetails.currentPage * this.pageDetails.pageSize;\r\n this.recordsToShow.min =\r\n this.pageDetails.currentPage * this.pageDetails.pageSize -\r\n this.pageDetails.pageSize;\r\n\r\n this.onPaginationChange.emit({\r\n page: this.pageDetails.currentPage - 1,\r\n pageSize: this.pageDetails.pageSize,\r\n });\r\n }\r\n\r\n /**\r\n * @description method to sort data according to type and column\r\n * @author Tarun Kumar\r\n * @param sortingColumIndex\r\n * @param fieldName\r\n * @param sortingType\r\n */\r\n onSortingRowData(sortingColumIndex: number, fieldName: string): void {\r\n this.sortingColumnIndex = sortingColumIndex;\r\n this.sortingType = !this.sortingType\r\n ? 'asc'\r\n : this.sortingType == 'asc'\r\n ? 'dsc'\r\n : 'asc';\r\n if (this.sortingType == 'asc' || this.sortingType == '') {\r\n this.ascendingOrder(fieldName);\r\n } else {\r\n this.descendingOrder(fieldName);\r\n }\r\n }\r\n\r\n /**\r\n * @description method to sort table in ascending order according to given field\r\n * @param fieldName\r\n */\r\n ascendingOrder(fieldName: string): void {\r\n this.rowData = this.rowData.sort((a, b) => {\r\n if (this.parseColValue(a, fieldName) > this.parseColValue(b, fieldName)) {\r\n return 1;\r\n } else {\r\n return -1;\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * @description method to sort table in descending order according to given field\r\n * @param fieldName\r\n */\r\n descendingOrder(fieldName: string): void {\r\n this.rowData = this.rowData.sort((a, b) => {\r\n if (this.parseColValue(a, fieldName) > this.parseColValue(b, fieldName)) {\r\n return -1;\r\n } else {\r\n return 1;\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * @description method to check/uncheck all rows on header checkbox selection/deselection\r\n * @author Tarun Kumar\r\n * @param event\r\n */\r\n onHeaderCheckboxChange(event: any): void {\r\n if (event.target.checked) {\r\n this.rowData = this.rowData.map((data) => {\r\n data.isSelected = true;\r\n return data;\r\n });\r\n this.selectedRow = JSON.parse(JSON.stringify(this.rowData));\r\n this.onCheckboxSelection.emit(this.rowData);\r\n } else {\r\n this.rowData = this.rowData.map((data) => {\r\n data.isSelected = false;\r\n return data;\r\n });\r\n this.selectedRow = [];\r\n this.onCheckboxSelection.emit([]);\r\n }\r\n }\r\n\r\n /**\r\n * @description method to check/uncheck row on row checkbox selection/deselection\r\n * @author Tarun Kumar\r\n * @param event\r\n */\r\n onRowCheckboxSelection(event: any): void {\r\n if (event.target.checked) {\r\n let ind = this.rowData.findIndex(\r\n (item: any) => item.rowId == event.target.id\r\n );\r\n this.rowData[ind].isSelected = true;\r\n if (\r\n this.checkboxSelectionType != 'multiple' &&\r\n this.selectedRow.length > 0\r\n ) {\r\n (\r\n document.getElementById(this.selectedRow[0].rowId) as HTMLInputElement\r\n ).checked = false;\r\n this.selectedRow = [];\r\n }\r\n this.selectedRow.push(this.rowData[ind]);\r\n\r\n this.onCheckboxSelection.emit(this.selectedRow);\r\n } else {\r\n let ind = this.rowData.findIndex(\r\n (item: any) => item.rowId == event.target.id\r\n );\r\n this.rowData[ind].isSelected = false;\r\n let i = this.selectedRow.findIndex(\r\n (item: any) => item.rowId == event.target.id\r\n );\r\n this.selectedRow.splice(i, 1);\r\n this.onCheckboxSelection.emit(this.selectedRow);\r\n }\r\n this.cd.detectChanges();\r\n }\r\n /**\r\n * @description method to check/uncheck all rows on header checkbox selection/deselection\r\n * @author Tarun Kumar\r\n * @param col\r\n * @returns {object}\r\n */\r\n getStyle(col: any): object {\r\n return { width: `${col.width}px` };\r\n }\r\n onClickOutside() {\r\n this.showPageSizeList = false;\r\n this.activeFilterIndex = null;\r\n this.menuVisible = this.menuVisible.map(() => false);\r\n }\r\n checkCondition(data: any): boolean {\r\n if (data.status) return true;\r\n else return false;\r\n }\r\n infinityScroll(event: any) {\r\n if (\r\n event.target.offsetHeight + event.target.scrollTop >=\r\n event.target.scrollHeight - 1 &&\r\n this.rowData.length\r\n ) {\r\n this.onScrollEmitter.emit();\r\n }\r\n }\r\n\r\n checkAllSelected(): boolean {\r\n if (!this.rowData.length) return false;\r\n return this.selectedRow.length == this.rowData.length;\r\n }\r\n checkInterminate(): boolean {\r\n if (!this.rowData.length) return false;\r\n return (\r\n this.selectedRow.length > 0 &&\r\n this.selectedRow.length < this.rowData.length\r\n );\r\n }\r\n\r\n /**\r\n * @author Tarun Kumar\r\n * @description function triggered when the drag starts\r\n * @param {event object, index}\r\n * @returns {void}\r\n */\r\n onDragStart(event: DragEvent, index: number) {\r\n this.draggedIndex = index;\r\n event.dataTransfer?.setData('text/plain', index.toString());\r\n }\r\n\r\n /**\r\n * @author Tarun Kumar\r\n * @description function to track the index of the element being dragged over and allow dropping\r\n * @param {event object, index}\r\n * @returns {void}\r\n */\r\n onDragOver(event: DragEvent, index: number) {\r\n event.preventDefault();\r\n if (this.dragOverIndex !== index) {\r\n this.dragOverIndex = index;\r\n }\r\n }\r\n\r\n /**\r\n * @author Tarun Kumar\r\n * @description function to Reorder the items on drop\r\n * @param {event object, index}\r\n * @returns {void}\r\n */\r\n onDrop(event: DragEvent, index: number) {\r\n event.preventDefault();\r\n if (this.draggedIndex === null) return;\r\n const draggedItem = this.colDefs[this.draggedIndex];\r\n this.colDefs.splice(this.draggedIndex, 1);\r\n this.colDefs.splice(index, 0, draggedItem);\r\n this.draggedIndex = null;\r\n this.dragOverIndex = null;\r\n }\r\n\r\n /**\r\n * @author Tarun Kumar\r\n * @description function to reset dragOverIndex when the drag ends\r\n * @param {none}\r\n * @returns {void}\r\n */\r\n onDragEnd() {\r\n this.draggedIndex = null;\r\n this.dragOverIndex = null;\r\n }\r\n\r\n toggleFilter(col: any, index: number, event: MouseEvent) {\r\n event.stopPropagation(); // prevent header click from triggering sort\r\n this.activeFilterIndex = this.activeFilterIndex === index ? null : index;\r\n this.menuVisible = this.menuVisible.map(() => false);\r\n }\r\n}\r\n","<div class=\"tableArea\">\r\n <div\r\n class=\"table_wrapper\"\r\n id=\"container_scroll\"\r\n (scroll)=\"infinityScroll($event)\"\r\n [ngStyle]=\"{ height: height + 'px' }\"\r\n >\r\n <table cellspacing=\"0\" cellpadding=\"0\">\r\n <thead class=\"sticky-top\">\r\n <tr>\r\n @if (checkBoxSelection && checkboxSelectionType == 'multiple') {\r\n <th style=\"width: 50px\">\r\n <span\r\n ><input\r\n class=\"form-check-input cursor-pointer\"\r\n type=\"checkbox\"\r\n name=\"\"\r\n id=\"\"\r\n [checked]=\"checkAllSelected()\"\r\n [indeterminate]=\"checkInterminate()\"\r\n (change)=\"onHeaderCheckboxChange($event)\"\r\n /></span>\r\n </th>\r\n } @for (col of colDefs; track $index) {\r\n <th\r\n [ngStyle]=\"getStyle(col)\"\r\n [ngClass]=\"{ 'drag-over': dragOverIndex === $index }\"\r\n draggable=\"true\"\r\n (dragstart)=\"onDragStart($event, $index)\"\r\n (dragover)=\"onDragOver($event, $index)\"\r\n (drop)=\"onDrop($event, $index)\"\r\n (dragend)=\"onDragEnd()\"\r\n >\r\n <div class=\"th_wraper\">\r\n <div\r\n class=\"flex-center\"\r\n [ngStyle]=\"getStyle(col)\"\r\n (click)=\"onSortingRowData($index, col?.fieldName)\"\r\n >\r\n <span class=\"ellipsis headerName\">{{ col?.headerName }}</span>\r\n @if (sortingRequired && sortingColumnIndex == $index) {\r\n <span class=\"headerName-icon\">\r\n <ul class=\"\">\r\n @if(sortingType){\r\n <li class=\"cursor-pointer\">\r\n <img\r\n src=\"images/sort_up.svg\"\r\n class=\"sorting_up\"\r\n [ngClass]=\"\r\n sortingColumnIndex == $index && sortingType == 'asc'\r\n ? 'd-none'\r\n : ''\r\n \"\r\n />\r\n </li>\r\n <li class=\"cursor-pointer\">\r\n <!-- <i class=\"fa fa-caret-down\" [ngClass]=\"sortingColumnIndex == $index && sortingType == 'dsc' ? 'muted_sort' : ''\"></i> -->\r\n <img\r\n src=\"images/sort_down.svg\"\r\n class=\"sorting_down\"\r\n [ngClass]=\"\r\n sortingColumnIndex == $index && sortingType == 'dsc'\r\n ? 'd-none'\r\n : ''\r\n \"\r\n />\r\n </li>\r\n\r\n }\r\n </ul>\r\n </span>\r\n\r\n }\r\n </div>\r\n <div class=\"filter_three_dot_wrapper\">\r\n <!-- Column Filters Logic-->\r\n @if(filterRequired && col.filter){\r\n <div\r\n class=\"filters\"\r\n (click)=\"toggleFilter(col, $index, $event)\"\r\n >\r\n <img\r\n src=\"images/filter-icon.svg\"\r\n class=\"filter-icon\"\r\n [ngClass]=\"\r\n activeFilters.has(col.fieldName)\r\n ? 'filter-icon-active'\r\n : 'filter-icon'\r\n \"\r\n />\r\n\r\n @if (activeFilterIndex === $index) {\r\n <div\r\n class=\"filter-popup\"\r\n (click)=\"$event.stopPropagation()\"\r\n appOutsideClick\r\n (clickOutside)=\"onClickOutside()\"\r\n >\r\n <!-- Text Filter -->\r\n @if(col.dataType === 'text'){\r\n <select [(ngModel)]=\"col.textFilters[0].filterType\">\r\n <option value=\"contains\">Contains</option>\r\n <option value=\"doesNotContain\">Does Not Contain</option>\r\n <option value=\"equals\">Equals</option>\r\n <option value=\"doesNotEqual\">Does Not Equal</option>\r\n <option value=\"startsWith\">Starts With</option>\r\n <option value=\"endsWith\">Ends With</option>\r\n </select>\r\n\r\n <input\r\n type=\"text\"\r\n [(ngModel)]=\"col.textFilters[0].filterValue\"\r\n placeholder=\"Filter…\"\r\n (keyup)=\"applyAllFilters()\"\r\n />\r\n\r\n @if(col.textFilters[0].filterValue){\r\n <div class=\"logic-row\">\r\n <label class=\"logic-item\">\r\n <input\r\n type=\"radio\"\r\n name=\"textLogic{{ col.fieldName }}\"\r\n [(ngModel)]=\"col.textLogic\"\r\n value=\"AND\"\r\n (change)=\"applyAllFilters()\"\r\n />\r\n AND\r\n </label>\r\n\r\n <label class=\"logic-item\">\r\n <input\r\n type=\"radio\"\r\n name=\"textLogic{{ col.fieldName }}\"\r\n [(ngModel)]=\"col.textLogic\"\r\n value=\"OR\"\r\n (change)=\"applyAllFilters()\"\r\n />\r\n OR\r\n </label>\r\n </div>\r\n\r\n <select [(ngModel)]=\"col.textFilters[1].filterType\">\r\n <option value=\"contains\">Contains</option>\r\n <option value=\"doesNotContain\">Does Not Contain</option>\r\n <option value=\"equals\">Equals</option>\r\n <option value=\"doesNotEqual\">Does Not Equal</option>\r\n <option value=\"startsWith\">Starts With</option>\r\n <option value=\"endsWith\">Ends With</option>\r\n </select>\r\n\r\n <input\r\n type=\"text\"\r\n [(ngModel)]=\"col.textFilters[1].filterValue\"\r\n placeholder=\"Filter…\"\r\n (keyup)=\"applyAllFilters()\"\r\n />\r\n } }\r\n\r\n <!-- Number Filter -->\r\n @if(col.dataType === 'number'){\r\n <select [(ngModel)]=\"col.numberFilters[0].numberCondition\">\r\n <option value=\"=\">Equals</option>\r\n <option value=\">\">Greater Than</option>\r\n <option value=\"<\">Less Than</option>\r\n <option value=\">=\">>=</option>\r\n <option value=\"<=\"><=</option>\r\n </select>\r\n\r\n <input\r\n type=\"number\"\r\n [(ngModel)]=\"col.numberFilters[0].numberValue\"\r\n (input)=\"applyAllFilters()\"\r\n />\r\n\r\n @if(col.numberFilters[0].numberValue){\r\n <div class=\"logic-row\">\r\n <label class=\"logic-item\">\r\n <input\r\n type=\"radio\"\r\n name=\"textLogic{{ col.fieldName }}\"\r\n [(ngModel)]=\"col.textLogic\"\r\n value=\"AND\"\r\n (change)=\"applyAllFilters()\"\r\n />\r\n AND\r\n </label>\r\n\r\n <label class=\"logic-item\">\r\n <input\r\n type=\"radio\"\r\n name=\"textLogic{{ col.fieldName }}\"\r\n [(ngModel)]=\"col.textLogic\"\r\n value=\"OR\"\r\n (change)=\"applyAllFilters()\"\r\n />\r\n OR\r\n </label>\r\n </div>\r\n\r\n <select [(ngModel)]=\"col.numberFilters[1].numberCondition\">\r\n <option value=\"=\">Equals</option>\r\n <option value=\">\">Greater Than</option>\r\n <option value=\"<\">Less Than</option>\r\n <option value=\">=\">>=</option>\r\n <option value=\"<=\"><=</option>\r\n </select>\r\n\r\n <input\r\n type=\"text\"\r\n [(ngModel)]=\"col.numberFilters[1].numberValue\"\r\n placeholder=\"Filter…\"\r\n (keyup)=\"applyAllFilters()\"\r\n />\r\n } }\r\n\r\n <!-- DATE FILTER -->\r\n <ng-container *ngIf=\"col.dataType === 'date'\">\r\n <select [(ngModel)]=\"col.numberCondition\">\r\n <option value=\"=\">Equals</option>\r\n <option value=\">\">Greater Than</option>\r\n <option value=\"<\">Less Than</option>\r\n <option value=\">=\">>=</option>\r\n <option value=\"<=\"><=</option>\r\n </select>\r\n <input\r\n type=\"date\"\r\n [(ngModel)]=\"col.dateValue\"\r\n (change)=\"applyAllFilters()\"\r\n />\r\n </ng-container>\r\n\r\n <!-- SET FILTER (CHECKBOX LIST) -->\r\n <ng-container *ngIf=\"col.dataType === 'set'\">\r\n <input\r\n type=\"text\"\r\n placeholder=\"Search...\"\r\n (input)=\"filterSetOptions(col, $event)\"\r\n />\r\n\r\n <div class=\"set-options\">\r\n <label>\r\n <input\r\n type=\"checkbox\"\r\n [checked]=\"isAllSelected(col)\"\r\n (change)=\"toggleSelectAll(col, $event)\"\r\n />\r\n (Select All)\r\n </label>\r\n\r\n <label *ngFor=\"let opt of col.filteredOptions\">\r\n <input\r\n type=\"checkbox\"\r\n [checked]=\"col.selectedValues.has(opt)\"\r\n (change)=\"toggleSetOption(col, opt, $event)\"\r\n />\r\n {{ opt }}\r\n </label>\r\n </div>\r\n </ng-container>\r\n </div>\r\n }\r\n </div>\r\n }\r\n\r\n <!-- Three dots menu-->\r\n @if(threeDotsMenuRequired && col.menu){\r\n\r\n <div class=\"three-dots\" (click)=\"openMenu($event, col, $index)\">\r\n <img src=\"images/more-vertical.svg\" />\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n\r\n <!-- popup open -->\r\n <div\r\n class=\"column-menu\"\r\n *ngIf=\"menuVisible[$index]\"\r\n [ngStyle]=\"menuPosition[$index]\"\r\n (click)=\"$event.stopPropagation()\"\r\n appOutsideClick\r\n (clickOutside)=\"onClickOutside()\"\r\n >\r\n <ul>\r\n @if(sortingType === 'dsc' || sortingType === ''){\r\n <li (click)=\"onSort(col?.fieldName, 'asc')\">\r\n <img src=\"images/arrow-up.svg\" class=\"sorting_up\" />\r\n Sort Ascending\r\n </li>\r\n } @if(sortingType === 'asc' || sortingType === ''){\r\n <li (click)=\"onSort(col?.fieldName, 'dsc')\">\r\n <img src=\"images/arrow-down.svg\" class=\"sorting_up\" />\r\n Sort Descending\r\n </li>\r\n } @if(sortingType === 'asc' || sortingType === 'dsc'){\r\n <li (click)=\"onSort(col?.fieldName, '')\">\r\n <span>\r\n <img src=\"images/chevron-up.svg\" class=\"sorting_up\" />\r\n <img src=\"images/chevron-down.svg\" class=\"sorting_up\" />\r\n </span>\r\n Clear Sort\r\n </li>\r\n }\r\n </ul>\r\n </div>\r\n </th>\r\n }\r\n </tr>\r\n </thead>\r\n <tbody>\r\n @for (data of rowData; track data.rowId) {\r\n <tr [ngClass]=\"data | addClass : tableOptions\">\r\n @if (checkBoxSelection) {\r\n <td style=\"min-width: 50px\">\r\n @if (checkboxSelectionType=='multiple') {\r\n <span\r\n ><input\r\n type=\"checkbox\"\r\n class=\"form-check-input pointer\"\r\n name=\"\"\r\n id=\"{{ data.rowId }}\"\r\n [checked]=\"data?.isSelected\"\r\n (change)=\"onRowCheckboxSelection($event)\"\r\n /></span>\r\n\r\n }@else{\r\n <span class=\"checkboxInput\">\r\n <input\r\n type=\"radio\"\r\n name=\"\"\r\n id=\"{{ data.rowId }}\"\r\n [checked]=\"data?.isSelected\"\r\n (change)=\"onRowCheckboxSelection($event)\"\r\n />\r\n </span>\r\n\r\n }\r\n </td>\r\n } @for (col of colDefs; track $index) {\r\n <td\r\n [ngStyle]=\"getStyle(col)\"\r\n [ngClass]=\"col?.addClass ? col.addClass(data) : ''\"\r\n >\r\n @if (!col?.cellRenderer) {\r\n <div class=\"cell-value\">\r\n <div\r\n class=\"more_data_wrapper\"\r\n [ngClass]=\"{ ellipsis: !col.wrapText }\"\r\n >\r\n {{ parseColValue(data, col.fieldName) }}\r\n </div>\r\n <div class=\"see_more_data\">\r\n <div class=\"item\">\r\n <span class=\"desc\">\r\n {{ parseColValue(data, col.fieldName) }}</span\r\n >\r\n </div>\r\n </div>\r\n </div>\r\n\r\n } @else{\r\n <div\r\n [rowParam]=\"data\"\r\n [col]=\"col\"\r\n [api]=\"tableOptions\"\r\n [currentValue]=\"data[col.fieldName]\"\r\n appRendererParser\r\n ></div>\r\n }\r\n <!-- Commented for later use -->\r\n <!-- <div class=\"tool_tip\">\r\n <span class=\"\"> {{ parseColValue(data, col.fieldName) }}aditya </span>\r\n </div> -->\r\n </td>\r\n }\r\n </tr>\r\n } @empty {\r\n <tr>\r\n <td [attr.colspan]=\"colDefs.length + 1\">\r\n <div class=\"small_data\">\r\n @if (tableOptions?.noDataTemplate) {\r\n <ng-container\r\n *ngTemplateOutlet=\"tableOptions?.noDataTemplate\"\r\n ></ng-container>\r\n\r\n }@else{\r\n <!-- need to style it properly then we will add it -->\r\n <span>No Data To Show</span>\r\n\r\n }\r\n </div>\r\n </td>\r\n </tr>\r\n\r\n }\r\n </tbody>\r\n </table>\r\n </div>\r\n <!-- Table Wrapper Ends-->\r\n @if(paginationRequired){\r\n <div class=\"pagination_main\">\r\n <div class=\"entries_details\">\r\n <span>Showing</span>\r\n <div\r\n class=\"pagination_select\"\r\n appOutsideClick\r\n (clickOutside)=\"onClickOutside()\"\r\n >\r\n <div\r\n class=\"select_dropdown pointer\"\r\n (click)=\"showPageSizeList = !showPageSizeList\"\r\n >\r\n <p class=\"select_text mb-0\">{{ pageDetails.pageSize }}</p>\r\n <span class=\"chevron_img\">\r\n <img src=\"images/chevron-down.svg\" class=\"pointer\" />\r\n </span>\r\n </div>\r\n @if(showPageSizeList){\r\n <div class=\"select_option\">\r\n @for(option of pageSizeList;track $index){\r\n <span\r\n class=\"pointer\"\r\n (click)=\"onPageSizeChanged(option); onClickOutside()\"\r\n >{{ option }}</span\r\n >\r\n }\r\n </div>\r\n }\r\n </div>\r\n <span\r\n >Rows | {{ totalRecords > 0 ? recordsToShow.min + 1 : 0 }} -\r\n {{\r\n recordsToShow.max > totalRecords ? totalRecords : recordsToShow.max\r\n }}\r\n of\r\n {{ totalRecords }} Entries</span\r\n >\r\n </div>\r\n <div class=\"pagination_form flex-center\">\r\n <span>Page</span>\r\n\r\n <button\r\n class=\"outlined_btn prev_btn\"\r\n [ngClass]=\"pageDetails.currentPage > 1 ? '' : 'disable_btn'\"\r\n type=\"button\"\r\n (click)=\"onBtPrevClick()\"\r\n >\r\n <span> < </span>\r\n </button>\r\n <div>\r\n <input\r\n class=\"input_style right\"\r\n type=\"number\"\r\n [(ngModel)]=\"pageDetails.currentPage\"\r\n (change)=\"goToSelectedPage($event)\"\r\n name=\"\"\r\n id=\"\"\r\n />\r\n </div>\r\n <button\r\n class=\"outlined_btn next_btn\"\r\n type=\"button\"\r\n [ngClass]=\"\r\n pageDetails.currentPage < pageDetails.totalPages ? '' : 'disable_btn'\r\n \"\r\n (click)=\"onBtNextClick()\"\r\n >\r\n <span> > </span>\r\n </button>\r\n <span>of {{ pageDetails.totalPages }}</span>\r\n </div>\r\n </div>\r\n }\r\n <!-- Pagination Ends -->\r\n</div>\r\n","/*\r\n * Public API Surface of cats-data-grid\r\n */\r\n\r\nexport * from './lib/services/cats-data-grid.service';\r\nexport * from './lib/cats-data-grid.component';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { ChangeDetectorRef, EventEmitter, OnChanges, SimpleChanges } from '@angular/core';
|
|
1
|
+
import { ChangeDetectorRef, EventEmitter, OnChanges, OnInit, SimpleChanges } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
|
-
export declare class CatsDataGridComponent implements OnChanges {
|
|
3
|
+
export declare class CatsDataGridComponent implements OnChanges, OnInit {
|
|
4
4
|
private cd;
|
|
5
5
|
tableOptions: any;
|
|
6
6
|
totalRecords: number;
|
|
@@ -11,10 +11,15 @@ export declare class CatsDataGridComponent implements OnChanges {
|
|
|
11
11
|
colDefs: any[];
|
|
12
12
|
paginationRequired: boolean;
|
|
13
13
|
selectedRowEmpty: boolean;
|
|
14
|
+
filterRequired: boolean;
|
|
15
|
+
threeDotsMenuRequired: boolean;
|
|
14
16
|
height: number;
|
|
15
17
|
onPaginationChange: EventEmitter<any>;
|
|
16
18
|
onCheckboxSelection: EventEmitter<any>;
|
|
17
19
|
onScrollEmitter: EventEmitter<any>;
|
|
20
|
+
filter: EventEmitter<any>;
|
|
21
|
+
activeFilterIndex: number | null;
|
|
22
|
+
originalRowData: any[];
|
|
18
23
|
pageDetails: any;
|
|
19
24
|
recordsToShow: any;
|
|
20
25
|
sortingColumnIndex: number;
|
|
@@ -24,9 +29,96 @@ export declare class CatsDataGridComponent implements OnChanges {
|
|
|
24
29
|
showPageSizeList: boolean;
|
|
25
30
|
dragOverIndex: null | number;
|
|
26
31
|
draggedIndex: null | number;
|
|
32
|
+
originalColDefs: any[];
|
|
33
|
+
filteredRowData: any[];
|
|
34
|
+
filteredData: any[];
|
|
35
|
+
currentColumn: any;
|
|
36
|
+
currentIndex: number;
|
|
37
|
+
menuVisible: boolean[];
|
|
38
|
+
menuPosition: any[];
|
|
39
|
+
activeFilters: Set<any>;
|
|
27
40
|
constructor(cd: ChangeDetectorRef);
|
|
28
41
|
ngOnInit(): void;
|
|
29
42
|
ngOnChanges(changes: SimpleChanges): void;
|
|
43
|
+
/**
|
|
44
|
+
* @description Prepares and normalizes column definitions for filtering and menu behavior
|
|
45
|
+
* @author Anand Pandey
|
|
46
|
+
* @param {any[]} colDefs - Raw column definitions received from the parent.
|
|
47
|
+
* @returns {any[]} - Updated column definitions with filter/menu
|
|
48
|
+
*/
|
|
49
|
+
getUpdatedColDefs(colDefs: any[]): any[];
|
|
50
|
+
evaluateTextFilterCondition(type: string, fieldValue: string, value: string): boolean;
|
|
51
|
+
evaluateNumDateFilterCondition(type: string, fieldValue: number, value: number): boolean;
|
|
52
|
+
/**
|
|
53
|
+
* @description Method to filter data according to dataType and comparator selection
|
|
54
|
+
* @author Anand Pandey
|
|
55
|
+
* @param {}
|
|
56
|
+
* @returns void
|
|
57
|
+
*/
|
|
58
|
+
applyAllFilters(): void;
|
|
59
|
+
/**
|
|
60
|
+
* @description Method to change the data format to utc
|
|
61
|
+
* @author Anand Pandey
|
|
62
|
+
* @param {date} - date value to be changed
|
|
63
|
+
* @returns date in milliseconds
|
|
64
|
+
*/
|
|
65
|
+
normalizeDate(dateStr: string): number;
|
|
66
|
+
/**
|
|
67
|
+
* @description
|
|
68
|
+
* Filters the available set options inside a Set Filter (checkbox filter)
|
|
69
|
+
* based on the user's search text. This updates only the list shown in
|
|
70
|
+
* the dropdown
|
|
71
|
+
* @author Anand Pandey
|
|
72
|
+
* @param col - Column definition object containing filter config
|
|
73
|
+
* @param event - Input event from the search textbox
|
|
74
|
+
* @returns void
|
|
75
|
+
*/
|
|
76
|
+
filterSetOptions(col: any, event: any): void;
|
|
77
|
+
/**
|
|
78
|
+
* @description
|
|
79
|
+
* Toggles an individual checkbox option inside a Set Filter. *
|
|
80
|
+
* @author Anand Pandey
|
|
81
|
+
* @param col - Column definition object
|
|
82
|
+
* @param opt - Selected option value
|
|
83
|
+
* @param event - Checkbox change event
|
|
84
|
+
* @returns void
|
|
85
|
+
*/
|
|
86
|
+
toggleSetOption(col: any, opt: any, event: any): void;
|
|
87
|
+
/**
|
|
88
|
+
* @description * Selects or deselects all checkbox options in the Set Filter.
|
|
89
|
+
* @author Anand Pandey
|
|
90
|
+
* @param col - Column definition object
|
|
91
|
+
* @param event - Checkbox change event
|
|
92
|
+
* @returns void
|
|
93
|
+
*/
|
|
94
|
+
toggleSelectAll(col: any, event: any): void;
|
|
95
|
+
/**
|
|
96
|
+
* @description
|
|
97
|
+
* Checks whether all options inside a Set Filter are currently selected.
|
|
98
|
+
* @author Anand Pandey
|
|
99
|
+
* @param col - Column definition object
|
|
100
|
+
* @returns boolean - TRUE if all options are selected, otherwise FALSE.
|
|
101
|
+
*/
|
|
102
|
+
isAllSelected(col: any): boolean;
|
|
103
|
+
/**
|
|
104
|
+
* @description
|
|
105
|
+
* Opens the three-dots column menu for the selected column.
|
|
106
|
+
* Opens only the menu belonging to the clicked column index
|
|
107
|
+
* @author Anand Pandey
|
|
108
|
+
* @param {MouseEvent} event - The click event triggered on the three-dots icon.
|
|
109
|
+
* @param {any} col - The column definition object for which menu is opened.
|
|
110
|
+
* @param {number} index - Index of the column whose menu has been requested.
|
|
111
|
+
* @returns {void}
|
|
112
|
+
*/
|
|
113
|
+
openMenu(event: MouseEvent, col: any, index: number): void;
|
|
114
|
+
/**
|
|
115
|
+
* @description Sort from three dots menu pop up.
|
|
116
|
+
* @author Anand Pandey
|
|
117
|
+
* @param {fieldName} string - fieldname.
|
|
118
|
+
* @param {string} type - Type defines the sorting type whether this is ascending, descending.
|
|
119
|
+
* @returns {void}
|
|
120
|
+
*/
|
|
121
|
+
onSort(fieldName: string, type: string): void;
|
|
30
122
|
/**
|
|
31
123
|
* @description Method to parse column value from rowdata object
|
|
32
124
|
* according to given field value in column Defination
|
|
@@ -143,6 +235,7 @@ export declare class CatsDataGridComponent implements OnChanges {
|
|
|
143
235
|
* @returns {void}
|
|
144
236
|
*/
|
|
145
237
|
onDragEnd(): void;
|
|
238
|
+
toggleFilter(col: any, index: number, event: MouseEvent): void;
|
|
146
239
|
static ɵfac: i0.ɵɵFactoryDeclaration<CatsDataGridComponent, never>;
|
|
147
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<CatsDataGridComponent, "cats-data-grid", never, { "tableOptions": { "alias": "tableOptions"; "required": false; }; "totalRecords": { "alias": "totalRecords"; "required": false; }; "sortingRequired": { "alias": "sortingRequired"; "required": false; }; "checkBoxSelection": { "alias": "checkBoxSelection"; "required": false; }; "checkboxSelectionType": { "alias": "checkboxSelectionType"; "required": false; }; "rowData": { "alias": "rowData"; "required": false; }; "colDefs": { "alias": "colDefs"; "required": false; }; "paginationRequired": { "alias": "paginationRequired"; "required": false; }; "selectedRowEmpty": { "alias": "selectedRowEmpty"; "required": false; }; "height": { "alias": "height"; "required": false; }; "pageSizeList": { "alias": "pageSizeList"; "required": false; }; }, { "onPaginationChange": "onPaginationChange"; "onCheckboxSelection": "onCheckboxSelection"; "onScrollEmitter": "onScrollEmitter"; }, never, never, true, never>;
|
|
240
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<CatsDataGridComponent, "cats-data-grid", never, { "tableOptions": { "alias": "tableOptions"; "required": false; }; "totalRecords": { "alias": "totalRecords"; "required": false; }; "sortingRequired": { "alias": "sortingRequired"; "required": false; }; "checkBoxSelection": { "alias": "checkBoxSelection"; "required": false; }; "checkboxSelectionType": { "alias": "checkboxSelectionType"; "required": false; }; "rowData": { "alias": "rowData"; "required": false; }; "colDefs": { "alias": "colDefs"; "required": false; }; "paginationRequired": { "alias": "paginationRequired"; "required": false; }; "selectedRowEmpty": { "alias": "selectedRowEmpty"; "required": false; }; "filterRequired": { "alias": "filterRequired"; "required": false; }; "threeDotsMenuRequired": { "alias": "threeDotsMenuRequired"; "required": false; }; "height": { "alias": "height"; "required": false; }; "pageSizeList": { "alias": "pageSizeList"; "required": false; }; }, { "onPaginationChange": "onPaginationChange"; "onCheckboxSelection": "onCheckboxSelection"; "onScrollEmitter": "onScrollEmitter"; "filter": "filter"; }, never, never, true, never>;
|
|
148
241
|
}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { ElementRef, EventEmitter } from
|
|
1
|
+
import { ElementRef, EventEmitter } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
export declare class OutsideClickDirective {
|
|
4
|
-
private
|
|
4
|
+
private elementRef;
|
|
5
5
|
clickOutside: EventEmitter<any>;
|
|
6
|
-
constructor(
|
|
7
|
-
onClick(event: MouseEvent
|
|
6
|
+
constructor(elementRef: ElementRef);
|
|
7
|
+
onClick(event: MouseEvent): void;
|
|
8
8
|
static ɵfac: i0.ɵɵFactoryDeclaration<OutsideClickDirective, never>;
|
|
9
9
|
static ɵdir: i0.ɵɵDirectiveDeclaration<OutsideClickDirective, "[appOutsideClick]", never, {}, { "clickOutside": "clickOutside"; }, never, never, true, never>;
|
|
10
10
|
}
|
package/package.json
CHANGED