devlab-one-dynamic-table 1.0.3 → 1.0.5
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.
|
Binary file
|
|
@@ -18,7 +18,7 @@ import * as i7 from '@angular/material/checkbox';
|
|
|
18
18
|
import { MatCheckboxModule } from '@angular/material/checkbox';
|
|
19
19
|
import * as i8 from '@angular/material/button';
|
|
20
20
|
import { MatButtonModule } from '@angular/material/button';
|
|
21
|
-
import { DynamicForm } from 'dynamic-form';
|
|
21
|
+
import { DynamicForm } from 'devlab-one-dynamic-form';
|
|
22
22
|
import * as i9 from '@angular/material/progress-spinner';
|
|
23
23
|
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
|
|
24
24
|
import * as XLSX from 'xlsx';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"devlab-one-dynamic-table.mjs","sources":["../../../projects/dynamic-table/src/lib/model/table.model.ts","../../../projects/dynamic-table/src/lib/constant/consts.ts","../../../projects/dynamic-table/src/lib/interfaces/Iexport.ts","../../../projects/dynamic-table/src/lib/services/export.service.ts","../../../projects/dynamic-table/src/lib/table.component.ts","../../../projects/dynamic-table/src/lib/table.component.html","../../../projects/dynamic-table/src/public-api.ts","../../../projects/dynamic-table/src/devlab-one-dynamic-table.ts"],"sourcesContent":["\nimport { IConfig } from '../interfaces/iconfig';\nimport { Form } from './dynamic-form.model';\n\n\nexport interface TableButtonAction {\n name: string;\n value?: any;\n}\n\n\nexport interface TableColumn extends BasicColumn {\n isComplex: boolean;\n sortRequired: boolean;\n innerColumns: Array<BasicColumn> | null;\n}\n\n\nexport enum SearchOn {\n AllColumns = 1,\n MatchingColumns = 2,\n}\n\n\nexport enum SearchAt {\n ClientSide = 1,\n ServerSide = 2,\n}\n\n\nexport interface SearchModel {\n searchOn: SearchOn;\n formElements: Form;\n value: IConfig | null;\n searchAt: SearchAt;\n}\n\n\nexport interface BasicColumn {\n columnDef: string;\n header: string;\n cell?: (value: any) => any;\n}\n\n\nexport interface TableDetails {\n selectRequired: boolean;\n columns: Array<TableColumn>;\n tableButtons: TableButtons;\n paging: Paging;\n}\n\n\nexport interface DataSet {\n data: any[];\n totalRecords: number;\n}\n\n\nexport interface Paging {\n enabled: boolean;\n pageSizeOptions: Array<number>;\n pageNumber: number;\n pageSize: number;\n}\n\n\nexport interface TableButtons {\n add: boolean;\n edit: boolean;\n delete: boolean;\n view: boolean;\n export: boolean;\n}\n\n\nexport interface FullTableInfo {\n pagination?: SearchRequest;\n search?: SearchModel;\n tableDetails?: TableDetails;\n}\n\n\nexport interface PagechangeEvent {\n length: number;\n pageIndex: number;\n pageSize: number;\n previousPageIndex: number;\n}\n\nexport interface PageCount {\n total: number;\n limit: number;\n exceed: boolean;\n}\n\nexport interface SearchRequest {\n offset: number;\n limit: number;\n order?: string;\n sort?: OrderBy;\n searchQuery?: any;\n}\n\n\nexport enum OrderBy {\n asc = 'asc',\n desc = 'desc',\n}\n\nexport const defaultPageSize = 5;","export const AppLiteralConsts = {\n actionButton: {\n create: 'create',\n add: 'add',\n edit: 'edit',\n delete: 'delete',\n view: 'view',\n sortChange: 'sortChange',\n pageChange: 'pageChange',\n search: 'search',\n sortBy: '__utcLastUpdatedOn',\n export: 'export',\n },\n dataTypes: {\n type: 'type',\n string: 'string',\n object: 'object',\n array: 'array',\n datetimeLocal: 'datetime-local',\n date: 'date',\n group: 'group',\n boolean: 'boolean',\n },\n sheet: {\n excel: 'xlsx',\n csv: 'csv',\n },\n dateFormat: {\n yearMonthDay: 'yyyy-MM-dd HH:mm',\n },\n imgIconPath: {\n swipeCard: '../../../../assets/images/icons/swipe-card-white.svg',\n merchant: '../../../../assets/images/icons/merchant-white.svg',\n bank: '../../../../assets/images/icons/bank-account-white.svg',\n gateway: '../../../../assets/images/icons/gateway-white.svg',\n card: '../../../../assets/images/icons/cards-white.svg',\n region: '../../../../assets/images/icons/region-white.svg',\n settings: '../../../../assets/images/icons/settings-white.svg',\n }\n};\n","export enum ExportType {\n excel = 'xlsx',\n csv = 'csv',\n pdf = 'pdf'\n }","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Injectable } from '@angular/core';\nimport * as XLSX from 'xlsx';\nimport { AppLiteralConsts } from '../constant/consts';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ExportService {\n /**\n * Desc : Export data in excel/csv format\n * @param exportType : type of file which we are going to export\n * @param sourceData : target data to export\n * @param fileName : indicates the file name to be exported\n */\n public exportData(exportType: string, sourceData: any, fileName: string): void {\n const dataSheets: any = this.prepareDataForExport(sourceData, fileName);\n const workBook: XLSX.WorkBook = XLSX.utils.book_new();\n let worSheet: XLSX.WorkSheet;\n for (const key in dataSheets) {\n worSheet = XLSX.utils.json_to_sheet(dataSheets[key]);\n XLSX.utils.book_append_sheet(workBook, worSheet, key);\n }\n XLSX.writeFile(workBook, `${fileName}.${exportType}`);\n }\n /**\n * Desc : prepare data for exports\n * @param sourceData : target data to export\n * @param fileName : indicates the file name to be exported\n */\n public prepareDataForExport(sourceData: any, fileName: string): any {\n // eslint-disable-next-line prefer-const\n let numberOfSheets: any = {};\n for (const source of sourceData) {\n for (const [key, value] of Object.entries(source)) {\n if (typeof value == AppLiteralConsts.dataTypes.object && value != null) {\n if (Array.isArray(value)) {\n source[key] = JSON.stringify(value);\n } else {\n for (const [secondaryKey, secondaryValue] of Object.entries(value)) {\n source[secondaryKey] = secondaryValue;\n }\n }\n }\n }\n numberOfSheets[fileName] = sourceData;\n }\n return numberOfSheets;\n }\n /**\n * dec : export in pdf format\n */\n public exportPdf(values:any){\n console.log(values);\n }\n}\n","import { Component, OnInit, OnDestroy, ViewChild, Input, OnChanges, Output, EventEmitter, AfterViewInit,Renderer2, ElementRef, SimpleChange, SimpleChanges } from '@angular/core';\nimport { MatPaginator, MatPaginatorModule } from '@angular/material/paginator';\nimport { MatSort, MatSortModule } from '@angular/material/sort';\nimport { MatTableDataSource, MatTableModule } from '@angular/material/table';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport {\n DataSet,\n TableDetails,\n SearchModel,\n TableColumn,\n TableButtonAction,\n BasicColumn,\n SearchOn,\n SearchAt,\n} from './model/table.model';\nimport { AppLiteralConsts } from './constant/consts';\nimport { animate, state, style, transition, trigger } from '@angular/animations';\nimport { FormGroup } from '@angular/forms';\nimport { ExportType } from './interfaces/Iexport';\nimport { ExportService } from './services/export.service';\nimport { CommonModule } from '@angular/common';\nimport { MatMenu, MatMenuModule } from '@angular/material/menu';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatButtonModule } from '@angular/material/button';\nimport { DynamicForm, DynamicFormDetails } from 'dynamic-form';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { OrderBy, SearchRequest } from './model/table.model';\n\n/********************************************************************** \n Page : Table component\n Desc : Displaying the table data dynamically\n**********************************************************************/\n\n\n@Component({\n selector: 'lib-dynamic-table',\n templateUrl: './table.component.html',\n styleUrls: ['./table.component.scss'],\n standalone: true,\n imports: [\n CommonModule,\n DynamicForm,\n MatTableModule,\n MatPaginatorModule,\n MatSortModule,\n MatMenuModule,\n MatIconModule,\n MatCheckboxModule,\n MatButtonModule,\n MatProgressSpinnerModule\n ],\n animations: [\n trigger('detailExpand', [\n state('collapsed', style({ height: '0px', minHeight: '0' })),\n state('expanded', style({ height: '*' })),\n transition('expanded <=> collapsed', animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)')),\n ]),\n ],\n})\nexport class DynamicTable implements OnChanges, OnInit, OnDestroy, AfterViewInit {\n public data: DataSet = {\n data: [],\n totalRecords: 0\n }\n /**\n * Desc : declaring search variable for customizing the table data search\n */\n @Input() public pagination: SearchRequest = {\n offset: 1,\n limit: 5,\n searchQuery: {},\n order: AppLiteralConsts.actionButton.sortBy,\n sort: OrderBy.asc,\n };\n /**\n * Desc : declaring tableDetails variable for customzing the table appearance\n */\n @Input() public tableDetails: TableDetails = {\n selectRequired: false,\n columns: [],\n tableButtons: {\n add: false,\n edit: false,\n delete: false,\n view: false,\n export: false,\n },\n paging: {\n enabled: false,\n pageSizeOptions: [],\n pageNumber: 0,\n pageSize: 0\n },\n };\n /**\n * Desc : filter visibility\n */\n public filterVisibility: boolean = true;\n /**\n * Desc : declaring formgroup variable for filter\n */\n public filter: FormGroup = new FormGroup({});\n /**\n * Desc : declaring variable for column names\n */\n public displayedColumns: string[] = [];\n /**\n * Desc : declaring variable for master column names\n */\n public masterDisplayedColumns: string[] = [];\n /**\n * Desc : declaring variable for table data\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public dataSource: MatTableDataSource<any> = new MatTableDataSource<any>([]);\n /**\n * Desc : declaring variable for selecting the row data\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public selection = new SelectionModel<any>(true, []);\n /**\n * Desc : consuming view child feature for export option menu\n */\n @ViewChild('exportOptionMenu', { static: false }) exportOptionMenu!: MatMenu;\n /**\n * Desc : consuming view child feature for paginator\n */\n @ViewChild(MatPaginator) paginator!: MatPaginator;\n /**\n * Desc : consuming view child feature for table data sorting\n */\n @ViewChild(MatSort) sort!: MatSort;\n /**\n * Desc : receiving the dataset input from parent component\n */\n @Input() dataset: DataSet = {\n data: [],\n totalRecords : 0\n };\n /**\n * Desc : receiving the search input from parent component\n */\n @Input() search: SearchModel = {\n searchOn: SearchOn.AllColumns,\n formElements: {\n controls: [],\n outline: false\n },\n value: {},\n searchAt: SearchAt.ClientSide\n };\n /**\n * Desc : send search element to form component\n */\n public dynamicFormDetails: DynamicFormDetails = {\n formComponent: this.search.formElements\n } \n /**\n * Desc : emitting the action output to parent component\n */\n @Output() action: EventEmitter<TableButtonAction> = new EventEmitter<TableButtonAction>();\n /**\n * Desc : declaring variable for expand column info\n */\n public expandColumnDefination: Array<TableColumn> = [];\n /**\n * Desc : declaring variable for expanded column info\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public expandedElement: any | null;\n /**\n * Desc : declaring variable for expanded column prefix info\n */\n public expandedPrefix = 'expanded_';\n /**\n * Desc : declaring the variable for storing table row counts\n */\n public tableRowCount: number | undefined = 0;\n /**\n * Desc : expand group\n */\n public isExpandedGroupRow: number | undefined = undefined;\n /**\n * Desc : constructor initialization\n */\n constructor(private exportService: ExportService,private renderer: Renderer2,private el: ElementRef) {}\n /**\n * Desc : execute when component is initalized\n */\n public ngOnInit(): void {\n this.selection.changed.subscribe((change) => {\n this.addActionForSelectedRows();\n });\n }\n /**\n * Desc : execute when component has any changes\n */\n public ngOnChanges(changes: SimpleChanges): void {\n if(changes['dataset'] || changes['search'] || changes['tableDetails']){\n this.displayedColumns = [];\n }\n this.dataSource = new MatTableDataSource(this.dataset.data);\n this.renderTableDetails();\n this.initializeSearchPredicate();\n this.initializeGridColumns();\n if (this.search) {\n this.initializeSearchFields();\n }\n }\n /**\n * desc : after view is rendered\n */\n public ngAfterViewInit(){\n this.renderTableDetails();\n }\n /**\n * config paginator and sorting options\n */\n public renderTableDetails(){\n switch(this.search.searchAt){\n case SearchAt.ClientSide:\n if(this.paginator){\n this.paginator.pageSize = this.tableDetails.paging.pageSize;\n this.paginator.pageSizeOptions = this.tableDetails.paging.pageSizeOptions;\n this.paginator.pageIndex = this.tableDetails.paging.pageNumber - 1;\n this.dataSource.paginator = this.paginator;\n }\n if(this.sort && this.paginator){\n this.dataSource.sort = this.sort;\n }\n break;\n case SearchAt.ServerSide:\n if(this.paginator){\n this.paginator.pageSize = this.tableDetails.paging.pageSize;\n this.paginator.pageSizeOptions = this.tableDetails.paging.pageSizeOptions;\n this.paginator.pageIndex = this.tableDetails.paging.pageNumber - 1;\n this.paginator.length = this.dataset.totalRecords;\n }\n break;\n default:\n break;\n }\n }\n /**\n * Desc : execute when moved to another component\n */\n public ngOnDestroy(): void {\n this.action.unsubscribe();\n }\n /**\n * Desc : organizing the search filter fields\n */\n public initializeSearchPredicate(): void {\n if (this.search?.searchOn == SearchOn.MatchingColumns) {\n this.dataSource.filterPredicate = (data, filter) => {\n const searchFilterValues = this.isJSON(filter) ? JSON.parse(filter) : this.filter.value;\n const allemptyFilters = Object.keys(searchFilterValues).every(\n (filterData) => searchFilterValues[filterData] == '' || searchFilterValues[filterData] == null,\n );\n if (allemptyFilters) {\n return true;\n }\n let found = false;\n for (let index = 0; index < this.search.formElements.controls.length; index++) {\n const field: any = this.search.formElements.controls.at(index) ?? '';\n if (data[field] && searchFilterValues[field]) {\n found = data[field].toLowerCase().indexOf(searchFilterValues[field].toLowerCase()) != -1;\n if (found) {\n return true;\n }\n }\n }\n return found;\n };\n }\n }\n /**\n * Desc : Filter the table data\n */\n public filterGrid(filterValue: any, field?: string) {\n if (this.search?.searchAt == SearchAt.ClientSide) {\n if (this.search?.searchOn == SearchOn.AllColumns) {\n this.dataSource.filter = (filterValue[Object.keys(filterValue).at(0) ?? ''] ?? '').trim().toLowerCase();\n } else {\n this.applyDefaultFilter(filterValue[field!], field);\n }\n }\n this.action.emit({ name: AppLiteralConsts.actionButton.search, value: filterValue });\n this.addActionForSelectedRows();\n }\n /**\n * Desc : execute default search method\n */\n public applyDefaultFilter(value: any, column: any) {\n this.dataSource.filterPredicate = (data: any, filter: string) => {\n let matchFound = false;\n if (column in data) {\n if (data[column]) {\n matchFound =\n matchFound || data[column].toString().trim().toLowerCase().indexOf(filter.trim().toLowerCase()) !== -1;\n }\n }\n return matchFound;\n };\n this.dataSource.filter = value ? value.trim().toLowerCase() : '';\n if (this.dataSource.paginator) {\n this.dataSource.paginator?.firstPage();\n }\n }\n /**\n * Desc : validating if all the checkbox are checked or not\n */\n public isAllSelected() {\n const numSelected = this.selection.selected.length;\n const numRows = this.dataSource.data.length;\n return numSelected === numRows;\n }\n /**\n * Desc : Enable select and deselect all rows\n */\n public toggleAllRows() {\n if (this.isAllSelected()) {\n this.selection.clear();\n return;\n }\n\n\n this.selection.select(...this.dataSource.data);\n }\n /**\n * Desc : Column visibility\n */\n public setColumn(event: boolean, column: string) {\n if (!event) {\n this.displayedColumns.filter((col, index) => {\n if (col == column) {\n this.displayedColumns.splice(index, 1);\n }\n });\n } else {\n this.displayedColumns.push(column);\n }\n }\n /**\n * Desc : Initalize columns and expanded columns\n */\n public initializeGridColumns() {\n if (this.tableDetails?.selectRequired) {\n this.displayedColumns.push('select');\n }\n this.tableDetails?.columns?.forEach((cols: TableColumn) => {\n this.displayedColumns.push(cols.columnDef);\n this.masterDisplayedColumns.push(cols.columnDef);\n if (cols.isComplex) {\n this.expandColumnDefination.push(cols);\n }\n });\n if (this.actionRequired()) {\n this.displayedColumns.push('action');\n }\n }\n /**\n * Desc : Initialize search fields\n */\n public initializeSearchFields(): void {\n this.search?.formElements?.controls?.map((control:any) => {\n control.OnChange = this.filterFieldChanges.bind(this);\n });\n this.dynamicFormDetails = {\n ...this.dynamicFormDetails,\n formComponent: this.search.formElements\n };\n }\n /**\n * Desc : detect changes in filter field on keyup\n */\n public filterFieldChanges(event: any, field: string): void {\n if (this.search?.value) {\n this.search.value[field] = event;\n }\n const formControlIndex = this.search?.formElements?.controls?.findIndex((element:any) => element.name == field);\n if (this.search?.formElements && formControlIndex != undefined) {\n this.search.formElements.controls[formControlIndex].value = event;\n }\n this.filterGrid(this.search?.value, field);\n }\n /**\n * Desc : validating input features in table\n */\n public actionRequired(buttonType?: string) {\n if (buttonType == AppLiteralConsts.actionButton.add) {\n return this.tableDetails.tableButtons.add;\n } else if (buttonType == AppLiteralConsts.actionButton.export) {\n return this.tableDetails.tableButtons.export;\n } else {\n return (\n this.tableDetails.tableButtons.delete ||\n this.tableDetails.tableButtons.edit ||\n this.tableDetails.tableButtons.view\n );\n }\n }\n /**\n * Desc : Export table data\n */\n public exportData(exportType: string): void {\n if (this.search?.searchAt == SearchAt.ServerSide) {\n this.onTableAction(AppLiteralConsts.actionButton.export, exportType);\n } else {\n if(exportType == 'pdf'){\n if(this.selection.isEmpty()){\n this.exportService.exportPdf(this.dataSource.data);\n }else{\n this.exportService.exportPdf(this.selection.selected);\n }\n }else{\n this.exportService.exportData(\n exportType == AppLiteralConsts.sheet.excel ? ExportType.excel : ExportType.csv,\n this.dataset?.data,\n exportType,\n );\n }\n }\n }\n /**\n * Desc : emitting the data to parent component\n */\n public onTableAction(type: string, value?: any): void {\n const dataValue = {\n name: type,\n value: value,\n };\n this.action.emit(dataValue);\n }\n /**\n * Desc : return expanded column data\n */\n public getExpandedColumnHeaderDef(ele: Array<TableColumn> | null | undefined) {\n return ele?.map((x) => `${this.expandedPrefix}${x.columnDef}`) ?? [];\n }\n /**\n * Desc : return inner column data\n */\n public getInnerColumnDef(ele: Array<BasicColumn> | null | undefined) {\n return ele?.map((x) => x.columnDef) ?? [];\n }\n /**\n * Desc : validate json\n */\n public isJSON(str: string) {\n try {\n return JSON.parse(str) && !!str;\n } catch (e) {\n return false;\n }\n }\n /**\n * Desc : event triggers while chaning the page\n */\n public pageChanged(event: any): void {\n event.pageIndex = event.pageIndex + 1;\n this.action.emit({ name: AppLiteralConsts.actionButton.pageChange, value: event });\n this.addActionForSelectedRows();\n }\n /**\n * Desc: Event triggers while sorting the column\n */\n public onSortChanges(event: any): void {\n if (this.search?.searchAt == SearchAt.ServerSide && this.paginator != undefined) {\n this.paginator.pageIndex = 0;\n }\n this.action.emit({ name: AppLiteralConsts.actionButton.sortChange, value: event });\n this.addActionForSelectedRows();\n }\n /**\n * Desc : array exist\n */\n public isArray(inputValue: any): boolean {\n return Array.isArray(inputValue);\n }\n /**\n * Desc : expanding the array data list\n * @param index : row index\n */\n public expandList(index: number) {\n if (this.isExpandedGroupRow == index) {\n this.isExpandedGroupRow = undefined;\n } else {\n this.isExpandedGroupRow = index;\n }\n }\n /** \n * desc: label for the checkbox on the passed row \n */\n checkboxLabel(row?: any): string {\n if (!row) {\n return `${this.isAllSelected() ? 'deselect' : 'select'} all`;\n }\n return `${this.selection.isSelected(row) ? 'deselect' : 'select'} row ${row.position + 1}`;\n }\n /**\n * Desc : toggle filter \n */\n public toggleFilter():void{\n this.filterVisibility = !this.filterVisibility;\n }\n /**\n * Desc : column visibility\n */\n public columnVisibility(column:string){\n if(this.displayedColumns.includes(column)){\n this.displayedColumns = this.displayedColumns.filter(item => item !== column);\n this.search.formElements.controls.forEach((item) => { if(item.name == column){ item.visible = false } });\n }else{\n const newIndex = this.masterDisplayedColumns.indexOf(column);\n const targetIndex = this.displayedColumns.findIndex(item => this.masterDisplayedColumns.indexOf(item) > newIndex);\n if (targetIndex === -1) {\n this.displayedColumns.push(column);\n } else {\n this.displayedColumns.splice(targetIndex, 0, column);\n }\n this.search.formElements.controls.forEach((item) => { if(item.name == column){ item.visible = true } });\n }\n this.addActionForSelectedRows();\n }\n /**\n * Desc : toggle row select\n */\n toggleRowSelect(row: any, event: MouseEvent) {\n const target = event.target as HTMLElement;\n let lastColumnIndex = this.displayedColumns.length - 1;\n const headingLength = document.querySelector('table thead tr')?.children.length as number;\n const headingLastColumn = document.querySelector('table thead tr')?.children[headingLength - 1];\n if(headingLastColumn?.textContent == 'Action'){\n lastColumnIndex = headingLength - 1;\n }\n const cell = target.closest('td');\n if (cell) {\n const cellIndex = Array.from(cell.parentNode!.children).indexOf(cell);\n if (cellIndex === lastColumnIndex) {\n return;\n }else{\n \n }\n }\n this.expandedElement = this.expandedElement === row ? null : row;\n this.selection.toggle(row);\n }\n /**\n * Desc : create single cell td and append to last column\n */\n public createElementForSelelctedRows(){\n this.addHeaderCell();\n this.addActionCell();\n }\n /**\n * Desc : create DOM element for action column specifically for selected row\n */\n public addActionForSelectedRows(){\n if(!this.selection.isEmpty()){\n const index = this.displayedColumns.indexOf('action');\n if (index !== -1) {\n this.displayedColumns.splice(index, 1);\n setTimeout(()=>{ this.createElementForSelelctedRows();},100);\n }else{\n this.resetAndCreateActionElement();\n }\n }else{\n if(!this.displayedColumns.includes('action')){\n this.displayedColumns.push('action');\n }\n }\n }\n /**\n * desc : delete DOM element for action column\n */\n public resetActionColumn(){\n const tableHeaderRow = this.el.nativeElement.querySelector('table thead tr');\n if (tableHeaderRow) {\n const lastChild = tableHeaderRow.lastChild;\n if (lastChild) {\n this.renderer.removeChild(tableHeaderRow, lastChild);\n }\n }\n let renderSingletdCell = false;\n const tableCellRows = this.el.nativeElement.querySelectorAll('table tbody tr');\n tableCellRows.forEach((row: HTMLElement) => {\n if (row.children.length > 0 && !renderSingletdCell) {\n renderSingletdCell = true;\n const lastChild = row.lastChild;\n if (lastChild) {\n this.renderer.removeChild(row, lastChild);\n }\n }\n });\n }\n /**\n * desc : add header cell using renderer library\n */\n private addHeaderCell() {\n const tableHeaderRow = this.el.nativeElement.querySelector('table thead tr');\n if (tableHeaderRow) {\n const newTh = this.renderer.createElement('th');\n this.renderer.addClass(newTh, 'mat-mdc-header-cell');\n this.renderer.addClass(newTh, 'mdc-data-table__header-cell');\n this.renderer.addClass(newTh, 'cdk-header-cell');\n this.renderer.addClass(newTh, 'header-align-right');\n this.renderer.addClass(newTh, 'cdk-column-action');\n this.renderer.addClass(newTh, 'mat-column-action');\n this.renderer.addClass(newTh, 'ng-tns-c1115897789-0');\n this.renderer.addClass(newTh, 'ng-star-inserted');\n this.renderer.addClass(newTh, 'mat-mdc-table-sticky');\n this.renderer.addClass(newTh, 'mat-mdc-table-sticky-border-elem-top');\n this.renderer.addClass(newTh, 'mat-mdc-table-sticky-border-elem-right');\n\n this.renderer.setStyle(newTh, 'position', 'sticky');\n this.renderer.setStyle(newTh, 'top', '0px');\n this.renderer.setStyle(newTh, 'zIndex', '101');\n this.renderer.setStyle(newTh, 'right', '0px');\n this.renderer.setStyle(newTh, 'color', '#000000');\n this.renderer.setStyle(newTh, 'fontSize', '15px');\n this.renderer.setStyle(newTh, 'textTransform', 'uppercase');\n this.renderer.setStyle(newTh, 'backgroundColor', '#ffffff');\n this.renderer.setStyle(newTh, 'minWidth', '250px');\n this.renderer.setStyle(newTh, 'textAlign', 'center');\n\n this.renderer.setAttribute(newTh, '_ngcontent-ng-c1115897789', '');\n this.renderer.setAttribute(newTh, 'role', 'columnheader');\n this.renderer.setAttribute(newTh, 'mat-header-cell', '');\n this.renderer.appendChild(newTh, this.renderer.createText('Action'));\n this.renderer.appendChild(tableHeaderRow, newTh);\n }\n }\n /**\n * desc: add action cell using renderer\n */\n private addActionCell() {\n let renderSingletdCell = false;\n const tableCellRows = this.el.nativeElement.querySelectorAll('table tbody tr');\n tableCellRows.forEach((row: HTMLElement, index: number) => {\n if (row.children.length > 0 && !renderSingletdCell) {\n renderSingletdCell = true;\n\n const newTd = this.renderer.createElement('td');\n this.renderer.addClass(newTd, 'mat-mdc-cell');\n this.renderer.addClass(newTd, 'mdc-data-table__cell');\n this.renderer.addClass(newTd, 'cdk-cell');\n this.renderer.addClass(newTd, 'header-align-right');\n this.renderer.addClass(newTd, 'cdk-column-action');\n this.renderer.addClass(newTd, 'mat-column-action');\n this.renderer.addClass(newTd, 'ng-tns-c1115897789-0');\n this.renderer.addClass(newTd, 'ng-star-inserted');\n this.renderer.addClass(newTd, 'mat-mdc-table-sticky');\n this.renderer.addClass(newTd, 'mat-mdc-table-sticky-border-elem-right');\n\n this.renderer.setStyle(newTd, 'zIndex', '1');\n this.renderer.setStyle(newTd, 'right', '0px');\n this.renderer.setStyle(newTd, 'textAlign', 'center');\n this.renderer.setStyle(newTd, 'borderLeft', '1px solid #cccccc');\n\n this.renderer.setAttribute(newTd, '_ngcontent-ng-c1115897789', '');\n this.renderer.setAttribute(newTd, 'mat-cell', '');\n this.renderer.setAttribute(newTd, 'rowspan', '100');\n\n const delButton = this.renderer.createElement('button') as HTMLButtonElement;\n delButton.className = 'action-icon action-delete';\n this.renderer.setAttribute(delButton, 'mat-menu-item', '');\n this.renderer.setStyle(delButton, 'display', 'inline-block');\n this.renderer.setStyle(delButton, 'cursor', 'pointer');\n this.renderer.setStyle(delButton, 'backgroundColor', 'unset');\n this.renderer.setStyle(delButton, 'border', 'unset');\n this.renderer.setStyle(delButton, 'borderRadius', '2px');\n this.renderer.setStyle(delButton, 'padding', '5px');\n this.renderer.setStyle(delButton, 'marginRight', '25px');\n this.renderer.setStyle(delButton, 'border', '1px solid #ccc');\n\n const delMatIcon = this.renderer.createElement('mat-icon');\n this.renderer.setAttribute(delMatIcon, 'role', 'img');\n this.renderer.addClass(delMatIcon, 'mat-icon');\n this.renderer.addClass(delMatIcon, 'notranslate');\n this.renderer.addClass(delMatIcon, 'material-icons');\n this.renderer.addClass(delMatIcon, 'mat-ligature-font');\n this.renderer.addClass(delMatIcon, 'mat-icon-no-color');\n this.renderer.setAttribute(delMatIcon, 'aria-hidden', 'true');\n this.renderer.setAttribute(delMatIcon, 'data-mat-icon-type', 'font');\n this.renderer.appendChild(delMatIcon, this.renderer.createText('delete'));\n this.renderer.listen(delButton, 'click', () => this.onTableAction('delete',this.selection.selected));\n this.renderer.appendChild(delButton, delMatIcon);\n this.renderer.appendChild(newTd, delButton);\n this.renderer.appendChild(row, newTd);\n }\n });\n }\n /**\n * \n */\n public resetAndCreateActionElement(){\n const headingLength = document.querySelector('table thead tr')?.children.length as number;\n const headingLastColumn = document.querySelector('table thead tr')?.children[headingLength - 1];\n if(headingLastColumn?.textContent == 'Action'){\n this.resetActionColumn();\n setTimeout(()=>{ this.createElementForSelelctedRows();},100);\n }\n }\n\n /**\n * Desc : empty bin list\n */\n public emptyList(): void {\n this.data = { data: [], totalRecords: 0 };\n this.tableDetails.paging.enabled = false;\n }\n}","<div class=\"main-table-container\">\n <!-- Filter section begins -->\n @if(search){\n <div class=\"filter-section\">\n <!-- filter icon begins-->\n <div class=\"filter-icon-section\">\n <div class=\"toggle-filter\" (click)=\"toggleFilter()\">\n <mat-icon>filter_list</mat-icon>\n </div>\n </div>\n <!-- filter icon ends -->\n <!-- filter field begins -->\n @if(filterVisibility){\n <div class=\"filter\">\n <lib-dynamic-form\n class=\"toolbar-form\"\n [dynamicFormDetails]=\"dynamicFormDetails\"\n ></lib-dynamic-form>\n </div>\n }\n <!-- filter field ends -->\n <!-- Action button section begins -->\n <div class=\"main-action-button\">\n <button\n matIconButton\n color=\"primary\"\n [matMenuTriggerFor]=\"fieldVisibilitySettings\"\n >\n <mat-icon class=\"unset-margin\">settings</mat-icon>\n </button>\n <mat-menu #fieldVisibilitySettings=\"matMenu\">\n @for(col of masterDisplayedColumns;track col){\n <div>\n <mat-checkbox [checked]=\"displayedColumns.includes(col)\" (change)=\"columnVisibility(col)\">\n {{col}}\n </mat-checkbox>\n </div>\n }\n </mat-menu>\n @if(actionRequired('export')){\n <button\n matIconButton\n color=\"primary\"\n [matMenuTriggerFor]=\"exportOptionMenu\"\n >\n <mat-icon class=\"unset-margin\">cloud_download</mat-icon>\n </button>\n <mat-menu #exportOptionMenu=\"matMenu\">\n <button mat-menu-item (click)=\"exportData('csv')\">CSV</button>\n <button mat-menu-item (click)=\"exportData('xlsx')\">XLSX</button>\n <button mat-menu-item (click)=\"exportData('pdf')\">PDF</button>\n </mat-menu>\n }\n @if(actionRequired('add')){\n <button\n mat-stroked-button\n color=\"primary\"\n (click)=\"onTableAction('create')\"\n >\n <mat-icon class=\"unset-margin\">add_circle</mat-icon>Add\n </button>\n }\n </div>\n <!-- Action button section ends -->\n </div>\n }\n <!-- Filter section ends -->\n\n <!-- Table section begins -->\n <div class=\"table-container hide-scrollbar\">\n <table\n mat-table\n [dataSource]=\"dataSource\"\n class=\"mat-elevation-z8\"\n matSort\n multiTemplateDataRows\n (matSortChange)=\"onSortChanges($event)\"\n aria-label=\"table\"\n >\n @if(tableDetails.selectRequired){\n <ng-container matColumnDef=\"select\" [sticky]=\"true\">\n <th mat-header-cell *matHeaderCellDef>\n <mat-checkbox\n color=\"primary\"\n (change)=\"$event ? toggleAllRows() : null\"\n [checked]=\"selection.hasValue() && isAllSelected()\"\n [indeterminate]=\"selection.hasValue() && !isAllSelected()\"\n [aria-label]=\"checkboxLabel()\"\n ></mat-checkbox>\n </th>\n <td mat-cell *matCellDef=\"let row\">\n <mat-checkbox\n color=\"primary\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"$event ? selection.toggle(row) : null\"\n [checked]=\"selection.isSelected(row)\"\n [aria-label]=\"checkboxLabel(row)\"\n ></mat-checkbox>\n </td>\n </ng-container>\n }\n @for(column of tableDetails.columns;track column){\n @if(column.isComplex){\n <ng-container matColumnDef=\"{{ column.columnDef }}\">\n <th mat-header-cell *matHeaderCellDef aria-label=\"row actions\">{{ column.header }}</th>\n <td mat-cell *matCellDef=\"let element\">\n {{ element[column.columnDef].length }}\n <button\n mat-icon-button\n aria-label=\"expand row\"\n class=\"valign-middle\"\n (click)=\"expandedElement = expandedElement === element ? null : element; $event.stopPropagation()\"\n >\n @if(expandedElement === element){\n <mat-icon>keyboard_arrow_up</mat-icon>\n }@else{\n <mat-icon>keyboard_arrow_down</mat-icon>\n }\n </button>\n </td>\n </ng-container>\n }@else{\n <ng-container matColumnDef=\"{{ column.columnDef }}\">\n @if(column.sortRequired){\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\n {{ column.header }}\n </th>\n }@else{\n <th mat-header-cell *matHeaderCellDef>{{ column.header }}</th>\n }\n @if(column.cell){\n <td mat-cell *matCellDef=\"let row; let i = dataIndex\">\n @if(isArray(column.cell(row))){\n @for(cell of column.cell(row);track cell;let first = $first){\n @if(first){\n {{ cell }}\n }\n }\n @if(column.cell(row).length > 1){\n @if(isExpandedGroupRow === i){\n <mat-icon class=\"hoverCursorIcon\" (click)=\"expandList(i)\">keyboard_arrow_up</mat-icon>\n }@else{\n <mat-icon class=\"hoverCursorIcon\" (click)=\"expandList(i)\">keyboard_arrow_down</mat-icon>\n }\n }\n @if(isExpandedGroupRow === i){\n @for(cell of column.cell(row);track cell;let first = $first){\n @if(!first){\n <div class=\"hoverContent\">\n {{ cell }}\n </div>\n }\n }\n }\n }@else{\n {{ column.cell(row) }}\n }\n </td>\n }@else{\n <td mat-cell *matCellDef=\"let row\">{{ row[column.columnDef] }}</td>\n }\n </ng-container>\n }\n }\n <!-- table expanded columns -->\n @for(expandedCol of expandColumnDefination;track expandedCol){\n <ng-container matColumnDef=\"{{ expandedPrefix + expandedCol.columnDef }}\">\n <td mat-cell *matCellDef=\"let element\" [attr.colspan]=\"displayedColumns.length + 1\">\n @if(element[expandedCol.columnDef]?.length > 0){\n <div\n class=\"example-element-detail\"\n [@detailExpand]=\"element === expandedElement ? 'expanded' : 'collapsed'\"\n >\n @if(expandedElement){\n <div class=\"inner-table mat-elevation-z8\">\n <!-- IF THE OBJECT ARRAY NEEDS TO BE DISPLAYED -->\n <table\n mat-table\n #innerTables\n mat-table\n aria-label=\"table\"\n [dataSource]=\"element[expandedCol.columnDef]\"\n class=\"w-100\"\n >\n @for(innerColumn of expandedCol?.innerColumns;track innerColumn){\n <ng-container matColumnDef=\"{{ innerColumn.columnDef }}\">\n <th mat-header-cell *matHeaderCellDef>{{ innerColumn.header }}</th>\n <td mat-cell *matCellDef=\"let innerRow\">\n {{ innerColumn.cell ? innerColumn.cell(innerRow) : innerRow[innerColumn.columnDef] }}\n </td>\n </ng-container>\n }\n <tr\n mat-header-row\n *matHeaderRowDef=\"getInnerColumnDef(expandedCol.innerColumns)\"\n style=\"background-color: lightgray\"\n ></tr>\n <tr\n mat-row\n *matRowDef=\"let row; columns: getInnerColumnDef(expandedCol.innerColumns)\"\n [class.expanded-row]\n ></tr>\n </table>\n </div>\n }\n </div>\n }\n </td>\n </ng-container>\n }\n <!-- Action Column -->\n @if(actionRequired()){\n <ng-container matColumnDef=\"action\" [stickyEnd]=\"true\">\n <th mat-header-cell *matHeaderCellDef class=\"header-align-right\">Action</th>\n <td mat-cell *matCellDef=\"let element\" class=\"header-align-right\">\n @if(tableDetails.tableButtons.view){\n <button\n class=\"action-icon action-view\"\n mat-menu-item\n (click)=\"onTableAction('view', element)\"\n >\n <mat-icon>remove_red_eye</mat-icon>\n </button>\n }\n @if(tableDetails.tableButtons.edit){\n <button\n class=\"action-icon action-edit\"\n mat-menu-item\n (click)=\"onTableAction('edit', element)\"\n >\n <mat-icon>edit</mat-icon>\n </button>\n }\n @if(tableDetails.tableButtons.delete){\n <button\n class=\"action-icon action-delete\"\n mat-menu-item\n (click)=\"onTableAction('delete', element)\"\n >\n <mat-icon>delete</mat-icon>\n </button>\n }\n </td>\n </ng-container>\n }\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns;sticky:true\"></tr>\n <tr\n mat-row\n *matRowDef=\"let row; columns: displayedColumns\"\n [class.example-expanded-row]=\"expandedElement === row\"\n (click)=\"toggleRowSelect(row,$event)\"\n >\n </tr>\n <!-- table Rows which are expanded -->\n <tr\n mat-row\n *matRowDef=\"let row; columns: getExpandedColumnHeaderDef(expandColumnDefination)\"\n class=\"example-detail-row\"\n style=\"height: 0 !important\"\n ></tr>\n </table>\n </div>\n @if(dataset.data === undefined){\n <mat-spinner class=\"loader-for-table\"></mat-spinner>\n }\n @if(dataset.totalRecords === 0){\n <section class=\"no-data-text\">\n <p>No Records Found</p>\n </section>\n }\n @if(tableDetails.paging.enabled){\n <mat-paginator\n #paginator\n class=\"mat-elevation-z8 table-paginator\"\n showFirstLastButtons\n aria-label=\"Select page\"\n (page)=\"pageChanged($event)\"\n >\n </mat-paginator>\n }\n <!-- Table section ends -->\n </div>\n\n ","/*\n * Public API Surface of dynamic-table\n */\n\nexport * from './lib/table.component';\nexport * from './lib/model/table.model';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.ExportService"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"devlab-one-dynamic-table.mjs","sources":["../../../projects/dynamic-table/src/lib/model/table.model.ts","../../../projects/dynamic-table/src/lib/constant/consts.ts","../../../projects/dynamic-table/src/lib/interfaces/Iexport.ts","../../../projects/dynamic-table/src/lib/services/export.service.ts","../../../projects/dynamic-table/src/lib/table.component.ts","../../../projects/dynamic-table/src/lib/table.component.html","../../../projects/dynamic-table/src/public-api.ts","../../../projects/dynamic-table/src/devlab-one-dynamic-table.ts"],"sourcesContent":["\nimport { IConfig } from '../interfaces/iconfig';\nimport { Form } from './dynamic-form.model';\n\n\nexport interface TableButtonAction {\n name: string;\n value?: any;\n}\n\n\nexport interface TableColumn extends BasicColumn {\n isComplex: boolean;\n sortRequired: boolean;\n innerColumns: Array<BasicColumn> | null;\n}\n\n\nexport enum SearchOn {\n AllColumns = 1,\n MatchingColumns = 2,\n}\n\n\nexport enum SearchAt {\n ClientSide = 1,\n ServerSide = 2,\n}\n\n\nexport interface SearchModel {\n searchOn: SearchOn;\n formElements: Form;\n value: IConfig | null;\n searchAt: SearchAt;\n}\n\n\nexport interface BasicColumn {\n columnDef: string;\n header: string;\n cell?: (value: any) => any;\n}\n\n\nexport interface TableDetails {\n selectRequired: boolean;\n columns: Array<TableColumn>;\n tableButtons: TableButtons;\n paging: Paging;\n}\n\n\nexport interface DataSet {\n data: any[];\n totalRecords: number;\n}\n\n\nexport interface Paging {\n enabled: boolean;\n pageSizeOptions: Array<number>;\n pageNumber: number;\n pageSize: number;\n}\n\n\nexport interface TableButtons {\n add: boolean;\n edit: boolean;\n delete: boolean;\n view: boolean;\n export: boolean;\n}\n\n\nexport interface FullTableInfo {\n pagination?: SearchRequest;\n search?: SearchModel;\n tableDetails?: TableDetails;\n}\n\n\nexport interface PagechangeEvent {\n length: number;\n pageIndex: number;\n pageSize: number;\n previousPageIndex: number;\n}\n\nexport interface PageCount {\n total: number;\n limit: number;\n exceed: boolean;\n}\n\nexport interface SearchRequest {\n offset: number;\n limit: number;\n order?: string;\n sort?: OrderBy;\n searchQuery?: any;\n}\n\n\nexport enum OrderBy {\n asc = 'asc',\n desc = 'desc',\n}\n\nexport const defaultPageSize = 5;","export const AppLiteralConsts = {\n actionButton: {\n create: 'create',\n add: 'add',\n edit: 'edit',\n delete: 'delete',\n view: 'view',\n sortChange: 'sortChange',\n pageChange: 'pageChange',\n search: 'search',\n sortBy: '__utcLastUpdatedOn',\n export: 'export',\n },\n dataTypes: {\n type: 'type',\n string: 'string',\n object: 'object',\n array: 'array',\n datetimeLocal: 'datetime-local',\n date: 'date',\n group: 'group',\n boolean: 'boolean',\n },\n sheet: {\n excel: 'xlsx',\n csv: 'csv',\n },\n dateFormat: {\n yearMonthDay: 'yyyy-MM-dd HH:mm',\n },\n imgIconPath: {\n swipeCard: '../../../../assets/images/icons/swipe-card-white.svg',\n merchant: '../../../../assets/images/icons/merchant-white.svg',\n bank: '../../../../assets/images/icons/bank-account-white.svg',\n gateway: '../../../../assets/images/icons/gateway-white.svg',\n card: '../../../../assets/images/icons/cards-white.svg',\n region: '../../../../assets/images/icons/region-white.svg',\n settings: '../../../../assets/images/icons/settings-white.svg',\n }\n};\n","export enum ExportType {\n excel = 'xlsx',\n csv = 'csv',\n pdf = 'pdf'\n }","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Injectable } from '@angular/core';\nimport * as XLSX from 'xlsx';\nimport { AppLiteralConsts } from '../constant/consts';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ExportService {\n /**\n * Desc : Export data in excel/csv format\n * @param exportType : type of file which we are going to export\n * @param sourceData : target data to export\n * @param fileName : indicates the file name to be exported\n */\n public exportData(exportType: string, sourceData: any, fileName: string): void {\n const dataSheets: any = this.prepareDataForExport(sourceData, fileName);\n const workBook: XLSX.WorkBook = XLSX.utils.book_new();\n let worSheet: XLSX.WorkSheet;\n for (const key in dataSheets) {\n worSheet = XLSX.utils.json_to_sheet(dataSheets[key]);\n XLSX.utils.book_append_sheet(workBook, worSheet, key);\n }\n XLSX.writeFile(workBook, `${fileName}.${exportType}`);\n }\n /**\n * Desc : prepare data for exports\n * @param sourceData : target data to export\n * @param fileName : indicates the file name to be exported\n */\n public prepareDataForExport(sourceData: any, fileName: string): any {\n // eslint-disable-next-line prefer-const\n let numberOfSheets: any = {};\n for (const source of sourceData) {\n for (const [key, value] of Object.entries(source)) {\n if (typeof value == AppLiteralConsts.dataTypes.object && value != null) {\n if (Array.isArray(value)) {\n source[key] = JSON.stringify(value);\n } else {\n for (const [secondaryKey, secondaryValue] of Object.entries(value)) {\n source[secondaryKey] = secondaryValue;\n }\n }\n }\n }\n numberOfSheets[fileName] = sourceData;\n }\n return numberOfSheets;\n }\n /**\n * dec : export in pdf format\n */\n public exportPdf(values:any){\n console.log(values);\n }\n}\n","import { Component, OnInit, OnDestroy, ViewChild, Input, OnChanges, Output, EventEmitter, AfterViewInit,Renderer2, ElementRef, SimpleChange, SimpleChanges } from '@angular/core';\nimport { MatPaginator, MatPaginatorModule } from '@angular/material/paginator';\nimport { MatSort, MatSortModule } from '@angular/material/sort';\nimport { MatTableDataSource, MatTableModule } from '@angular/material/table';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport {\n DataSet,\n TableDetails,\n SearchModel,\n TableColumn,\n TableButtonAction,\n BasicColumn,\n SearchOn,\n SearchAt,\n} from './model/table.model';\nimport { AppLiteralConsts } from './constant/consts';\nimport { animate, state, style, transition, trigger } from '@angular/animations';\nimport { FormGroup } from '@angular/forms';\nimport { ExportType } from './interfaces/Iexport';\nimport { ExportService } from './services/export.service';\nimport { CommonModule } from '@angular/common';\nimport { MatMenu, MatMenuModule } from '@angular/material/menu';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatButtonModule } from '@angular/material/button';\nimport { DynamicForm, DynamicFormDetails } from 'devlab-one-dynamic-form';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { OrderBy, SearchRequest } from './model/table.model';\n\n/********************************************************************** \n Page : Table component\n Desc : Displaying the table data dynamically\n**********************************************************************/\n\n\n@Component({\n selector: 'lib-dynamic-table',\n templateUrl: './table.component.html',\n styleUrls: ['./table.component.scss'],\n standalone: true,\n imports: [\n CommonModule,\n DynamicForm,\n MatTableModule,\n MatPaginatorModule,\n MatSortModule,\n MatMenuModule,\n MatIconModule,\n MatCheckboxModule,\n MatButtonModule,\n MatProgressSpinnerModule\n ],\n animations: [\n trigger('detailExpand', [\n state('collapsed', style({ height: '0px', minHeight: '0' })),\n state('expanded', style({ height: '*' })),\n transition('expanded <=> collapsed', animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)')),\n ]),\n ],\n})\nexport class DynamicTable implements OnChanges, OnInit, OnDestroy, AfterViewInit {\n public data: DataSet = {\n data: [],\n totalRecords: 0\n }\n /**\n * Desc : declaring search variable for customizing the table data search\n */\n @Input() public pagination: SearchRequest = {\n offset: 1,\n limit: 5,\n searchQuery: {},\n order: AppLiteralConsts.actionButton.sortBy,\n sort: OrderBy.asc,\n };\n /**\n * Desc : declaring tableDetails variable for customzing the table appearance\n */\n @Input() public tableDetails: TableDetails = {\n selectRequired: false,\n columns: [],\n tableButtons: {\n add: false,\n edit: false,\n delete: false,\n view: false,\n export: false,\n },\n paging: {\n enabled: false,\n pageSizeOptions: [],\n pageNumber: 0,\n pageSize: 0\n },\n };\n /**\n * Desc : filter visibility\n */\n public filterVisibility: boolean = true;\n /**\n * Desc : declaring formgroup variable for filter\n */\n public filter: FormGroup = new FormGroup({});\n /**\n * Desc : declaring variable for column names\n */\n public displayedColumns: string[] = [];\n /**\n * Desc : declaring variable for master column names\n */\n public masterDisplayedColumns: string[] = [];\n /**\n * Desc : declaring variable for table data\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public dataSource: MatTableDataSource<any> = new MatTableDataSource<any>([]);\n /**\n * Desc : declaring variable for selecting the row data\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public selection = new SelectionModel<any>(true, []);\n /**\n * Desc : consuming view child feature for export option menu\n */\n @ViewChild('exportOptionMenu', { static: false }) exportOptionMenu!: MatMenu;\n /**\n * Desc : consuming view child feature for paginator\n */\n @ViewChild(MatPaginator) paginator!: MatPaginator;\n /**\n * Desc : consuming view child feature for table data sorting\n */\n @ViewChild(MatSort) sort!: MatSort;\n /**\n * Desc : receiving the dataset input from parent component\n */\n @Input() dataset: DataSet = {\n data: [],\n totalRecords : 0\n };\n /**\n * Desc : receiving the search input from parent component\n */\n @Input() search: SearchModel = {\n searchOn: SearchOn.AllColumns,\n formElements: {\n controls: [],\n outline: false\n },\n value: {},\n searchAt: SearchAt.ClientSide\n };\n /**\n * Desc : send search element to form component\n */\n public dynamicFormDetails: DynamicFormDetails = {\n formComponent: this.search.formElements\n } \n /**\n * Desc : emitting the action output to parent component\n */\n @Output() action: EventEmitter<TableButtonAction> = new EventEmitter<TableButtonAction>();\n /**\n * Desc : declaring variable for expand column info\n */\n public expandColumnDefination: Array<TableColumn> = [];\n /**\n * Desc : declaring variable for expanded column info\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public expandedElement: any | null;\n /**\n * Desc : declaring variable for expanded column prefix info\n */\n public expandedPrefix = 'expanded_';\n /**\n * Desc : declaring the variable for storing table row counts\n */\n public tableRowCount: number | undefined = 0;\n /**\n * Desc : expand group\n */\n public isExpandedGroupRow: number | undefined = undefined;\n /**\n * Desc : constructor initialization\n */\n constructor(private exportService: ExportService,private renderer: Renderer2,private el: ElementRef) {}\n /**\n * Desc : execute when component is initalized\n */\n public ngOnInit(): void {\n this.selection.changed.subscribe((change) => {\n this.addActionForSelectedRows();\n });\n }\n /**\n * Desc : execute when component has any changes\n */\n public ngOnChanges(changes: SimpleChanges): void {\n if(changes['dataset'] || changes['search'] || changes['tableDetails']){\n this.displayedColumns = [];\n }\n this.dataSource = new MatTableDataSource(this.dataset.data);\n this.renderTableDetails();\n this.initializeSearchPredicate();\n this.initializeGridColumns();\n if (this.search) {\n this.initializeSearchFields();\n }\n }\n /**\n * desc : after view is rendered\n */\n public ngAfterViewInit(){\n this.renderTableDetails();\n }\n /**\n * config paginator and sorting options\n */\n public renderTableDetails(){\n switch(this.search.searchAt){\n case SearchAt.ClientSide:\n if(this.paginator){\n this.paginator.pageSize = this.tableDetails.paging.pageSize;\n this.paginator.pageSizeOptions = this.tableDetails.paging.pageSizeOptions;\n this.paginator.pageIndex = this.tableDetails.paging.pageNumber - 1;\n this.dataSource.paginator = this.paginator;\n }\n if(this.sort && this.paginator){\n this.dataSource.sort = this.sort;\n }\n break;\n case SearchAt.ServerSide:\n if(this.paginator){\n this.paginator.pageSize = this.tableDetails.paging.pageSize;\n this.paginator.pageSizeOptions = this.tableDetails.paging.pageSizeOptions;\n this.paginator.pageIndex = this.tableDetails.paging.pageNumber - 1;\n this.paginator.length = this.dataset.totalRecords;\n }\n break;\n default:\n break;\n }\n }\n /**\n * Desc : execute when moved to another component\n */\n public ngOnDestroy(): void {\n this.action.unsubscribe();\n }\n /**\n * Desc : organizing the search filter fields\n */\n public initializeSearchPredicate(): void {\n if (this.search?.searchOn == SearchOn.MatchingColumns) {\n this.dataSource.filterPredicate = (data, filter) => {\n const searchFilterValues = this.isJSON(filter) ? JSON.parse(filter) : this.filter.value;\n const allemptyFilters = Object.keys(searchFilterValues).every(\n (filterData) => searchFilterValues[filterData] == '' || searchFilterValues[filterData] == null,\n );\n if (allemptyFilters) {\n return true;\n }\n let found = false;\n for (let index = 0; index < this.search.formElements.controls.length; index++) {\n const field: any = this.search.formElements.controls.at(index) ?? '';\n if (data[field] && searchFilterValues[field]) {\n found = data[field].toLowerCase().indexOf(searchFilterValues[field].toLowerCase()) != -1;\n if (found) {\n return true;\n }\n }\n }\n return found;\n };\n }\n }\n /**\n * Desc : Filter the table data\n */\n public filterGrid(filterValue: any, field?: string) {\n if (this.search?.searchAt == SearchAt.ClientSide) {\n if (this.search?.searchOn == SearchOn.AllColumns) {\n this.dataSource.filter = (filterValue[Object.keys(filterValue).at(0) ?? ''] ?? '').trim().toLowerCase();\n } else {\n this.applyDefaultFilter(filterValue[field!], field);\n }\n }\n this.action.emit({ name: AppLiteralConsts.actionButton.search, value: filterValue });\n this.addActionForSelectedRows();\n }\n /**\n * Desc : execute default search method\n */\n public applyDefaultFilter(value: any, column: any) {\n this.dataSource.filterPredicate = (data: any, filter: string) => {\n let matchFound = false;\n if (column in data) {\n if (data[column]) {\n matchFound =\n matchFound || data[column].toString().trim().toLowerCase().indexOf(filter.trim().toLowerCase()) !== -1;\n }\n }\n return matchFound;\n };\n this.dataSource.filter = value ? value.trim().toLowerCase() : '';\n if (this.dataSource.paginator) {\n this.dataSource.paginator?.firstPage();\n }\n }\n /**\n * Desc : validating if all the checkbox are checked or not\n */\n public isAllSelected() {\n const numSelected = this.selection.selected.length;\n const numRows = this.dataSource.data.length;\n return numSelected === numRows;\n }\n /**\n * Desc : Enable select and deselect all rows\n */\n public toggleAllRows() {\n if (this.isAllSelected()) {\n this.selection.clear();\n return;\n }\n\n\n this.selection.select(...this.dataSource.data);\n }\n /**\n * Desc : Column visibility\n */\n public setColumn(event: boolean, column: string) {\n if (!event) {\n this.displayedColumns.filter((col, index) => {\n if (col == column) {\n this.displayedColumns.splice(index, 1);\n }\n });\n } else {\n this.displayedColumns.push(column);\n }\n }\n /**\n * Desc : Initalize columns and expanded columns\n */\n public initializeGridColumns() {\n if (this.tableDetails?.selectRequired) {\n this.displayedColumns.push('select');\n }\n this.tableDetails?.columns?.forEach((cols: TableColumn) => {\n this.displayedColumns.push(cols.columnDef);\n this.masterDisplayedColumns.push(cols.columnDef);\n if (cols.isComplex) {\n this.expandColumnDefination.push(cols);\n }\n });\n if (this.actionRequired()) {\n this.displayedColumns.push('action');\n }\n }\n /**\n * Desc : Initialize search fields\n */\n public initializeSearchFields(): void {\n this.search?.formElements?.controls?.map((control:any) => {\n control.OnChange = this.filterFieldChanges.bind(this);\n });\n this.dynamicFormDetails = {\n ...this.dynamicFormDetails,\n formComponent: this.search.formElements\n };\n }\n /**\n * Desc : detect changes in filter field on keyup\n */\n public filterFieldChanges(event: any, field: string): void {\n if (this.search?.value) {\n this.search.value[field] = event;\n }\n const formControlIndex = this.search?.formElements?.controls?.findIndex((element:any) => element.name == field);\n if (this.search?.formElements && formControlIndex != undefined) {\n this.search.formElements.controls[formControlIndex].value = event;\n }\n this.filterGrid(this.search?.value, field);\n }\n /**\n * Desc : validating input features in table\n */\n public actionRequired(buttonType?: string) {\n if (buttonType == AppLiteralConsts.actionButton.add) {\n return this.tableDetails.tableButtons.add;\n } else if (buttonType == AppLiteralConsts.actionButton.export) {\n return this.tableDetails.tableButtons.export;\n } else {\n return (\n this.tableDetails.tableButtons.delete ||\n this.tableDetails.tableButtons.edit ||\n this.tableDetails.tableButtons.view\n );\n }\n }\n /**\n * Desc : Export table data\n */\n public exportData(exportType: string): void {\n if (this.search?.searchAt == SearchAt.ServerSide) {\n this.onTableAction(AppLiteralConsts.actionButton.export, exportType);\n } else {\n if(exportType == 'pdf'){\n if(this.selection.isEmpty()){\n this.exportService.exportPdf(this.dataSource.data);\n }else{\n this.exportService.exportPdf(this.selection.selected);\n }\n }else{\n this.exportService.exportData(\n exportType == AppLiteralConsts.sheet.excel ? ExportType.excel : ExportType.csv,\n this.dataset?.data,\n exportType,\n );\n }\n }\n }\n /**\n * Desc : emitting the data to parent component\n */\n public onTableAction(type: string, value?: any): void {\n const dataValue = {\n name: type,\n value: value,\n };\n this.action.emit(dataValue);\n }\n /**\n * Desc : return expanded column data\n */\n public getExpandedColumnHeaderDef(ele: Array<TableColumn> | null | undefined) {\n return ele?.map((x) => `${this.expandedPrefix}${x.columnDef}`) ?? [];\n }\n /**\n * Desc : return inner column data\n */\n public getInnerColumnDef(ele: Array<BasicColumn> | null | undefined) {\n return ele?.map((x) => x.columnDef) ?? [];\n }\n /**\n * Desc : validate json\n */\n public isJSON(str: string) {\n try {\n return JSON.parse(str) && !!str;\n } catch (e) {\n return false;\n }\n }\n /**\n * Desc : event triggers while chaning the page\n */\n public pageChanged(event: any): void {\n event.pageIndex = event.pageIndex + 1;\n this.action.emit({ name: AppLiteralConsts.actionButton.pageChange, value: event });\n this.addActionForSelectedRows();\n }\n /**\n * Desc: Event triggers while sorting the column\n */\n public onSortChanges(event: any): void {\n if (this.search?.searchAt == SearchAt.ServerSide && this.paginator != undefined) {\n this.paginator.pageIndex = 0;\n }\n this.action.emit({ name: AppLiteralConsts.actionButton.sortChange, value: event });\n this.addActionForSelectedRows();\n }\n /**\n * Desc : array exist\n */\n public isArray(inputValue: any): boolean {\n return Array.isArray(inputValue);\n }\n /**\n * Desc : expanding the array data list\n * @param index : row index\n */\n public expandList(index: number) {\n if (this.isExpandedGroupRow == index) {\n this.isExpandedGroupRow = undefined;\n } else {\n this.isExpandedGroupRow = index;\n }\n }\n /** \n * desc: label for the checkbox on the passed row \n */\n checkboxLabel(row?: any): string {\n if (!row) {\n return `${this.isAllSelected() ? 'deselect' : 'select'} all`;\n }\n return `${this.selection.isSelected(row) ? 'deselect' : 'select'} row ${row.position + 1}`;\n }\n /**\n * Desc : toggle filter \n */\n public toggleFilter():void{\n this.filterVisibility = !this.filterVisibility;\n }\n /**\n * Desc : column visibility\n */\n public columnVisibility(column:string){\n if(this.displayedColumns.includes(column)){\n this.displayedColumns = this.displayedColumns.filter(item => item !== column);\n this.search.formElements.controls.forEach((item) => { if(item.name == column){ item.visible = false } });\n }else{\n const newIndex = this.masterDisplayedColumns.indexOf(column);\n const targetIndex = this.displayedColumns.findIndex(item => this.masterDisplayedColumns.indexOf(item) > newIndex);\n if (targetIndex === -1) {\n this.displayedColumns.push(column);\n } else {\n this.displayedColumns.splice(targetIndex, 0, column);\n }\n this.search.formElements.controls.forEach((item) => { if(item.name == column){ item.visible = true } });\n }\n this.addActionForSelectedRows();\n }\n /**\n * Desc : toggle row select\n */\n toggleRowSelect(row: any, event: MouseEvent) {\n const target = event.target as HTMLElement;\n let lastColumnIndex = this.displayedColumns.length - 1;\n const headingLength = document.querySelector('table thead tr')?.children.length as number;\n const headingLastColumn = document.querySelector('table thead tr')?.children[headingLength - 1];\n if(headingLastColumn?.textContent == 'Action'){\n lastColumnIndex = headingLength - 1;\n }\n const cell = target.closest('td');\n if (cell) {\n const cellIndex = Array.from(cell.parentNode!.children).indexOf(cell);\n if (cellIndex === lastColumnIndex) {\n return;\n }else{\n \n }\n }\n this.expandedElement = this.expandedElement === row ? null : row;\n this.selection.toggle(row);\n }\n /**\n * Desc : create single cell td and append to last column\n */\n public createElementForSelelctedRows(){\n this.addHeaderCell();\n this.addActionCell();\n }\n /**\n * Desc : create DOM element for action column specifically for selected row\n */\n public addActionForSelectedRows(){\n if(!this.selection.isEmpty()){\n const index = this.displayedColumns.indexOf('action');\n if (index !== -1) {\n this.displayedColumns.splice(index, 1);\n setTimeout(()=>{ this.createElementForSelelctedRows();},100);\n }else{\n this.resetAndCreateActionElement();\n }\n }else{\n if(!this.displayedColumns.includes('action')){\n this.displayedColumns.push('action');\n }\n }\n }\n /**\n * desc : delete DOM element for action column\n */\n public resetActionColumn(){\n const tableHeaderRow = this.el.nativeElement.querySelector('table thead tr');\n if (tableHeaderRow) {\n const lastChild = tableHeaderRow.lastChild;\n if (lastChild) {\n this.renderer.removeChild(tableHeaderRow, lastChild);\n }\n }\n let renderSingletdCell = false;\n const tableCellRows = this.el.nativeElement.querySelectorAll('table tbody tr');\n tableCellRows.forEach((row: HTMLElement) => {\n if (row.children.length > 0 && !renderSingletdCell) {\n renderSingletdCell = true;\n const lastChild = row.lastChild;\n if (lastChild) {\n this.renderer.removeChild(row, lastChild);\n }\n }\n });\n }\n /**\n * desc : add header cell using renderer library\n */\n private addHeaderCell() {\n const tableHeaderRow = this.el.nativeElement.querySelector('table thead tr');\n if (tableHeaderRow) {\n const newTh = this.renderer.createElement('th');\n this.renderer.addClass(newTh, 'mat-mdc-header-cell');\n this.renderer.addClass(newTh, 'mdc-data-table__header-cell');\n this.renderer.addClass(newTh, 'cdk-header-cell');\n this.renderer.addClass(newTh, 'header-align-right');\n this.renderer.addClass(newTh, 'cdk-column-action');\n this.renderer.addClass(newTh, 'mat-column-action');\n this.renderer.addClass(newTh, 'ng-tns-c1115897789-0');\n this.renderer.addClass(newTh, 'ng-star-inserted');\n this.renderer.addClass(newTh, 'mat-mdc-table-sticky');\n this.renderer.addClass(newTh, 'mat-mdc-table-sticky-border-elem-top');\n this.renderer.addClass(newTh, 'mat-mdc-table-sticky-border-elem-right');\n\n this.renderer.setStyle(newTh, 'position', 'sticky');\n this.renderer.setStyle(newTh, 'top', '0px');\n this.renderer.setStyle(newTh, 'zIndex', '101');\n this.renderer.setStyle(newTh, 'right', '0px');\n this.renderer.setStyle(newTh, 'color', '#000000');\n this.renderer.setStyle(newTh, 'fontSize', '15px');\n this.renderer.setStyle(newTh, 'textTransform', 'uppercase');\n this.renderer.setStyle(newTh, 'backgroundColor', '#ffffff');\n this.renderer.setStyle(newTh, 'minWidth', '250px');\n this.renderer.setStyle(newTh, 'textAlign', 'center');\n\n this.renderer.setAttribute(newTh, '_ngcontent-ng-c1115897789', '');\n this.renderer.setAttribute(newTh, 'role', 'columnheader');\n this.renderer.setAttribute(newTh, 'mat-header-cell', '');\n this.renderer.appendChild(newTh, this.renderer.createText('Action'));\n this.renderer.appendChild(tableHeaderRow, newTh);\n }\n }\n /**\n * desc: add action cell using renderer\n */\n private addActionCell() {\n let renderSingletdCell = false;\n const tableCellRows = this.el.nativeElement.querySelectorAll('table tbody tr');\n tableCellRows.forEach((row: HTMLElement, index: number) => {\n if (row.children.length > 0 && !renderSingletdCell) {\n renderSingletdCell = true;\n\n const newTd = this.renderer.createElement('td');\n this.renderer.addClass(newTd, 'mat-mdc-cell');\n this.renderer.addClass(newTd, 'mdc-data-table__cell');\n this.renderer.addClass(newTd, 'cdk-cell');\n this.renderer.addClass(newTd, 'header-align-right');\n this.renderer.addClass(newTd, 'cdk-column-action');\n this.renderer.addClass(newTd, 'mat-column-action');\n this.renderer.addClass(newTd, 'ng-tns-c1115897789-0');\n this.renderer.addClass(newTd, 'ng-star-inserted');\n this.renderer.addClass(newTd, 'mat-mdc-table-sticky');\n this.renderer.addClass(newTd, 'mat-mdc-table-sticky-border-elem-right');\n\n this.renderer.setStyle(newTd, 'zIndex', '1');\n this.renderer.setStyle(newTd, 'right', '0px');\n this.renderer.setStyle(newTd, 'textAlign', 'center');\n this.renderer.setStyle(newTd, 'borderLeft', '1px solid #cccccc');\n\n this.renderer.setAttribute(newTd, '_ngcontent-ng-c1115897789', '');\n this.renderer.setAttribute(newTd, 'mat-cell', '');\n this.renderer.setAttribute(newTd, 'rowspan', '100');\n\n const delButton = this.renderer.createElement('button') as HTMLButtonElement;\n delButton.className = 'action-icon action-delete';\n this.renderer.setAttribute(delButton, 'mat-menu-item', '');\n this.renderer.setStyle(delButton, 'display', 'inline-block');\n this.renderer.setStyle(delButton, 'cursor', 'pointer');\n this.renderer.setStyle(delButton, 'backgroundColor', 'unset');\n this.renderer.setStyle(delButton, 'border', 'unset');\n this.renderer.setStyle(delButton, 'borderRadius', '2px');\n this.renderer.setStyle(delButton, 'padding', '5px');\n this.renderer.setStyle(delButton, 'marginRight', '25px');\n this.renderer.setStyle(delButton, 'border', '1px solid #ccc');\n\n const delMatIcon = this.renderer.createElement('mat-icon');\n this.renderer.setAttribute(delMatIcon, 'role', 'img');\n this.renderer.addClass(delMatIcon, 'mat-icon');\n this.renderer.addClass(delMatIcon, 'notranslate');\n this.renderer.addClass(delMatIcon, 'material-icons');\n this.renderer.addClass(delMatIcon, 'mat-ligature-font');\n this.renderer.addClass(delMatIcon, 'mat-icon-no-color');\n this.renderer.setAttribute(delMatIcon, 'aria-hidden', 'true');\n this.renderer.setAttribute(delMatIcon, 'data-mat-icon-type', 'font');\n this.renderer.appendChild(delMatIcon, this.renderer.createText('delete'));\n this.renderer.listen(delButton, 'click', () => this.onTableAction('delete',this.selection.selected));\n this.renderer.appendChild(delButton, delMatIcon);\n this.renderer.appendChild(newTd, delButton);\n this.renderer.appendChild(row, newTd);\n }\n });\n }\n /**\n * \n */\n public resetAndCreateActionElement(){\n const headingLength = document.querySelector('table thead tr')?.children.length as number;\n const headingLastColumn = document.querySelector('table thead tr')?.children[headingLength - 1];\n if(headingLastColumn?.textContent == 'Action'){\n this.resetActionColumn();\n setTimeout(()=>{ this.createElementForSelelctedRows();},100);\n }\n }\n\n /**\n * Desc : empty bin list\n */\n public emptyList(): void {\n this.data = { data: [], totalRecords: 0 };\n this.tableDetails.paging.enabled = false;\n }\n}","<div class=\"main-table-container\">\n <!-- Filter section begins -->\n @if(search){\n <div class=\"filter-section\">\n <!-- filter icon begins-->\n <div class=\"filter-icon-section\">\n <div class=\"toggle-filter\" (click)=\"toggleFilter()\">\n <mat-icon>filter_list</mat-icon>\n </div>\n </div>\n <!-- filter icon ends -->\n <!-- filter field begins -->\n @if(filterVisibility){\n <div class=\"filter\">\n <lib-dynamic-form\n class=\"toolbar-form\"\n [dynamicFormDetails]=\"dynamicFormDetails\"\n ></lib-dynamic-form>\n </div>\n }\n <!-- filter field ends -->\n <!-- Action button section begins -->\n <div class=\"main-action-button\">\n <button\n matIconButton\n color=\"primary\"\n [matMenuTriggerFor]=\"fieldVisibilitySettings\"\n >\n <mat-icon class=\"unset-margin\">settings</mat-icon>\n </button>\n <mat-menu #fieldVisibilitySettings=\"matMenu\">\n @for(col of masterDisplayedColumns;track col){\n <div>\n <mat-checkbox [checked]=\"displayedColumns.includes(col)\" (change)=\"columnVisibility(col)\">\n {{col}}\n </mat-checkbox>\n </div>\n }\n </mat-menu>\n @if(actionRequired('export')){\n <button\n matIconButton\n color=\"primary\"\n [matMenuTriggerFor]=\"exportOptionMenu\"\n >\n <mat-icon class=\"unset-margin\">cloud_download</mat-icon>\n </button>\n <mat-menu #exportOptionMenu=\"matMenu\">\n <button mat-menu-item (click)=\"exportData('csv')\">CSV</button>\n <button mat-menu-item (click)=\"exportData('xlsx')\">XLSX</button>\n <button mat-menu-item (click)=\"exportData('pdf')\">PDF</button>\n </mat-menu>\n }\n @if(actionRequired('add')){\n <button\n mat-stroked-button\n color=\"primary\"\n (click)=\"onTableAction('create')\"\n >\n <mat-icon class=\"unset-margin\">add_circle</mat-icon>Add\n </button>\n }\n </div>\n <!-- Action button section ends -->\n </div>\n }\n <!-- Filter section ends -->\n\n <!-- Table section begins -->\n <div class=\"table-container hide-scrollbar\">\n <table\n mat-table\n [dataSource]=\"dataSource\"\n class=\"mat-elevation-z8\"\n matSort\n multiTemplateDataRows\n (matSortChange)=\"onSortChanges($event)\"\n aria-label=\"table\"\n >\n @if(tableDetails.selectRequired){\n <ng-container matColumnDef=\"select\" [sticky]=\"true\">\n <th mat-header-cell *matHeaderCellDef>\n <mat-checkbox\n color=\"primary\"\n (change)=\"$event ? toggleAllRows() : null\"\n [checked]=\"selection.hasValue() && isAllSelected()\"\n [indeterminate]=\"selection.hasValue() && !isAllSelected()\"\n [aria-label]=\"checkboxLabel()\"\n ></mat-checkbox>\n </th>\n <td mat-cell *matCellDef=\"let row\">\n <mat-checkbox\n color=\"primary\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"$event ? selection.toggle(row) : null\"\n [checked]=\"selection.isSelected(row)\"\n [aria-label]=\"checkboxLabel(row)\"\n ></mat-checkbox>\n </td>\n </ng-container>\n }\n @for(column of tableDetails.columns;track column){\n @if(column.isComplex){\n <ng-container matColumnDef=\"{{ column.columnDef }}\">\n <th mat-header-cell *matHeaderCellDef aria-label=\"row actions\">{{ column.header }}</th>\n <td mat-cell *matCellDef=\"let element\">\n {{ element[column.columnDef].length }}\n <button\n mat-icon-button\n aria-label=\"expand row\"\n class=\"valign-middle\"\n (click)=\"expandedElement = expandedElement === element ? null : element; $event.stopPropagation()\"\n >\n @if(expandedElement === element){\n <mat-icon>keyboard_arrow_up</mat-icon>\n }@else{\n <mat-icon>keyboard_arrow_down</mat-icon>\n }\n </button>\n </td>\n </ng-container>\n }@else{\n <ng-container matColumnDef=\"{{ column.columnDef }}\">\n @if(column.sortRequired){\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\n {{ column.header }}\n </th>\n }@else{\n <th mat-header-cell *matHeaderCellDef>{{ column.header }}</th>\n }\n @if(column.cell){\n <td mat-cell *matCellDef=\"let row; let i = dataIndex\">\n @if(isArray(column.cell(row))){\n @for(cell of column.cell(row);track cell;let first = $first){\n @if(first){\n {{ cell }}\n }\n }\n @if(column.cell(row).length > 1){\n @if(isExpandedGroupRow === i){\n <mat-icon class=\"hoverCursorIcon\" (click)=\"expandList(i)\">keyboard_arrow_up</mat-icon>\n }@else{\n <mat-icon class=\"hoverCursorIcon\" (click)=\"expandList(i)\">keyboard_arrow_down</mat-icon>\n }\n }\n @if(isExpandedGroupRow === i){\n @for(cell of column.cell(row);track cell;let first = $first){\n @if(!first){\n <div class=\"hoverContent\">\n {{ cell }}\n </div>\n }\n }\n }\n }@else{\n {{ column.cell(row) }}\n }\n </td>\n }@else{\n <td mat-cell *matCellDef=\"let row\">{{ row[column.columnDef] }}</td>\n }\n </ng-container>\n }\n }\n <!-- table expanded columns -->\n @for(expandedCol of expandColumnDefination;track expandedCol){\n <ng-container matColumnDef=\"{{ expandedPrefix + expandedCol.columnDef }}\">\n <td mat-cell *matCellDef=\"let element\" [attr.colspan]=\"displayedColumns.length + 1\">\n @if(element[expandedCol.columnDef]?.length > 0){\n <div\n class=\"example-element-detail\"\n [@detailExpand]=\"element === expandedElement ? 'expanded' : 'collapsed'\"\n >\n @if(expandedElement){\n <div class=\"inner-table mat-elevation-z8\">\n <!-- IF THE OBJECT ARRAY NEEDS TO BE DISPLAYED -->\n <table\n mat-table\n #innerTables\n mat-table\n aria-label=\"table\"\n [dataSource]=\"element[expandedCol.columnDef]\"\n class=\"w-100\"\n >\n @for(innerColumn of expandedCol?.innerColumns;track innerColumn){\n <ng-container matColumnDef=\"{{ innerColumn.columnDef }}\">\n <th mat-header-cell *matHeaderCellDef>{{ innerColumn.header }}</th>\n <td mat-cell *matCellDef=\"let innerRow\">\n {{ innerColumn.cell ? innerColumn.cell(innerRow) : innerRow[innerColumn.columnDef] }}\n </td>\n </ng-container>\n }\n <tr\n mat-header-row\n *matHeaderRowDef=\"getInnerColumnDef(expandedCol.innerColumns)\"\n style=\"background-color: lightgray\"\n ></tr>\n <tr\n mat-row\n *matRowDef=\"let row; columns: getInnerColumnDef(expandedCol.innerColumns)\"\n [class.expanded-row]\n ></tr>\n </table>\n </div>\n }\n </div>\n }\n </td>\n </ng-container>\n }\n <!-- Action Column -->\n @if(actionRequired()){\n <ng-container matColumnDef=\"action\" [stickyEnd]=\"true\">\n <th mat-header-cell *matHeaderCellDef class=\"header-align-right\">Action</th>\n <td mat-cell *matCellDef=\"let element\" class=\"header-align-right\">\n @if(tableDetails.tableButtons.view){\n <button\n class=\"action-icon action-view\"\n mat-menu-item\n (click)=\"onTableAction('view', element)\"\n >\n <mat-icon>remove_red_eye</mat-icon>\n </button>\n }\n @if(tableDetails.tableButtons.edit){\n <button\n class=\"action-icon action-edit\"\n mat-menu-item\n (click)=\"onTableAction('edit', element)\"\n >\n <mat-icon>edit</mat-icon>\n </button>\n }\n @if(tableDetails.tableButtons.delete){\n <button\n class=\"action-icon action-delete\"\n mat-menu-item\n (click)=\"onTableAction('delete', element)\"\n >\n <mat-icon>delete</mat-icon>\n </button>\n }\n </td>\n </ng-container>\n }\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns;sticky:true\"></tr>\n <tr\n mat-row\n *matRowDef=\"let row; columns: displayedColumns\"\n [class.example-expanded-row]=\"expandedElement === row\"\n (click)=\"toggleRowSelect(row,$event)\"\n >\n </tr>\n <!-- table Rows which are expanded -->\n <tr\n mat-row\n *matRowDef=\"let row; columns: getExpandedColumnHeaderDef(expandColumnDefination)\"\n class=\"example-detail-row\"\n style=\"height: 0 !important\"\n ></tr>\n </table>\n </div>\n @if(dataset.data === undefined){\n <mat-spinner class=\"loader-for-table\"></mat-spinner>\n }\n @if(dataset.totalRecords === 0){\n <section class=\"no-data-text\">\n <p>No Records Found</p>\n </section>\n }\n @if(tableDetails.paging.enabled){\n <mat-paginator\n #paginator\n class=\"mat-elevation-z8 table-paginator\"\n showFirstLastButtons\n aria-label=\"Select page\"\n (page)=\"pageChanged($event)\"\n >\n </mat-paginator>\n }\n <!-- Table section ends -->\n </div>\n\n ","/*\n * Public API Surface of dynamic-table\n */\n\nexport * from './lib/table.component';\nexport * from './lib/model/table.model';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.ExportService"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,11 +1,34 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "devlab-one-dynamic-table",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.5",
|
|
4
4
|
"peerDependencies": {
|
|
5
5
|
"@angular/common": "^21.2.0",
|
|
6
6
|
"@angular/core": "^21.2.0",
|
|
7
|
-
"dynamic-form": "^
|
|
7
|
+
"devlab-one-dynamic-form": "^1.0.4"
|
|
8
8
|
},
|
|
9
|
+
"keywords": [
|
|
10
|
+
"devlab-one-dynamic-table",
|
|
11
|
+
"angular",
|
|
12
|
+
"dynamic-table",
|
|
13
|
+
"dynamic-data-table",
|
|
14
|
+
"data-table",
|
|
15
|
+
"angular-table",
|
|
16
|
+
"mat-table",
|
|
17
|
+
"angular-material",
|
|
18
|
+
"data-grid",
|
|
19
|
+
"dynamic-columns",
|
|
20
|
+
"json-table",
|
|
21
|
+
"config-driven-table",
|
|
22
|
+
"metadata-driven-table",
|
|
23
|
+
"sortable-table",
|
|
24
|
+
"filterable-table",
|
|
25
|
+
"pagination",
|
|
26
|
+
"editable-table",
|
|
27
|
+
"ngx-table",
|
|
28
|
+
"angular-library",
|
|
29
|
+
"devlab",
|
|
30
|
+
"devlab-table"
|
|
31
|
+
],
|
|
9
32
|
"dependencies": {
|
|
10
33
|
"tslib": "^2.3.0"
|
|
11
34
|
},
|
|
@@ -6,7 +6,7 @@ import { MatTableDataSource } from '@angular/material/table';
|
|
|
6
6
|
import { SelectionModel } from '@angular/cdk/collections';
|
|
7
7
|
import { FormGroup } from '@angular/forms';
|
|
8
8
|
import { MatMenu } from '@angular/material/menu';
|
|
9
|
-
import { DynamicFormDetails } from 'dynamic-form';
|
|
9
|
+
import { DynamicFormDetails } from 'devlab-one-dynamic-form';
|
|
10
10
|
|
|
11
11
|
interface IConfig {
|
|
12
12
|
[key: string]: any;
|
|
Binary file
|