mis-crystal-design-system 18.0.20 → 18.0.21
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.
- package/button/button.component.d.ts +2 -1
- package/esm2022/button/button.component.mjs +32 -18
- package/esm2022/table/actions-cell/actions-cell.component.mjs +143 -120
- package/esm2022/table/table.component.mjs +63 -44
- package/fesm2022/mis-crystal-design-system-button.mjs +31 -17
- package/fesm2022/mis-crystal-design-system-button.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-table.mjs +204 -162
- package/fesm2022/mis-crystal-design-system-table.mjs.map +1 -1
- package/package.json +7 -7
- package/table/actions-cell/actions-cell.component.d.ts +9 -10
- package/table/table.component.d.ts +13 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mis-crystal-design-system-table.mjs","sources":["../../../projects/mis-components/table/table.component.html","../../../projects/mis-components/table/table.component.ts","../../../projects/mis-components/table/custom-table-cell.directive.ts","../../../projects/mis-components/table/sub-table/sub-table.component.html","../../../projects/mis-components/table/sub-table/sub-table.component.ts","../../../projects/mis-components/table/filter/filter.component.html","../../../projects/mis-components/table/filter/filter.component.ts","../../../projects/mis-components/table/sort-icons.directive.ts","../../../projects/mis-components/table/actions-cell/actions-cell.component.html","../../../projects/mis-components/table/actions-cell/actions-cell.component.ts","../../../projects/mis-components/table/table.module.ts","../../../projects/mis-components/table/mis-crystal-design-system-table.ts"],"sourcesContent":["<div\n [ngStyle]=\"{\n height: getContainerHeight(),\n width: getContainerWidth(),\n 'overflow-x': config.canScrollHorizontally ? 'auto' : 'unset'\n }\"\n id=\"main-container\"\n>\n <mis-table-filter\n #filter\n (filtersApplied)=\"updateAppliedFilters($event)\"\n *ngIf=\"showFilter\"\n [containerStyles]=\"filterContainerStyles\"\n [filtersData]=\"filterData\"\n ></mis-table-filter>\n <div\n #table\n id=\"table-container\"\n [ngClass]=\"{ 'no-scrollbar': expandedIndex < 0, scrollbar: !(expandedIndex < 0), 'scroll-horizontally': config.canScrollHorizontally }\"\n >\n <div\n [ngStyle]=\"getColHeadersRowStyles()\"\n id=\"col-headers-container\"\n >\n <div\n #colHeaderRef\n (click)=\"colHeader?.action ? colHeader?.action(colHeader) : null\"\n *ngFor=\"let colHeader of config?.colHeaderConfig\"\n class=\"col-header\"\n [ngStyle]=\"{\n width: colHeader?.style?.width || '',\n cursor: colHeader.action ? 'pointer' : 'default',\n 'justify-content': colHeader?.style?.justifyContent\n ? colHeader?.style?.justifyContent\n : colHeader.type === 'number'\n ? 'flex-end'\n : 'space-between'\n }\"\n >\n <p *ngIf=\"colHeader?.type !== 'custom' && colHeader?.type !== 'checkbox'\" class=\"col-header-text\">\n {{ colHeader?.data || \" \" }}\n </p>\n <span\n (click)=\"filterData = colHeader.filters; toggleFilter(colHeader.data); $event.stopPropagation()\"\n *ngIf=\"colHeader?.type !== 'custom' && colHeader?.filters && colHeader?.filters?.length > 0\"\n class=\"filter-icon\"\n >\n <span *ngIf=\"appliedFilters[colHeader.data]?.length > 0\" id=\"filter-active\"></span>\n <svg fill=\"none\" height=\"10\" viewBox=\"0 0 13 10\" width=\"13\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n clip-rule=\"evenodd\"\n d=\"M4.97546 10H7.64213V8H4.97546V10ZM0.308472 0V2H12.3085V0H0.308472ZM2.30847 6H10.3085V4H2.30847V6Z\"\n fill=\"#181F33\"\n fill-rule=\"evenodd\"\n />\n </svg>\n </span>\n <span\n (click)=\"toggleCheckbox(); $event.stopPropagation()\"\n *ngIf=\"colHeader?.type === 'checkbox'\"\n class=\"checkbox-icon\"\n >\n <mis-checkbox [checked]=\"selectAllCheckbox\"></mis-checkbox>\n </span>\n <span *ngIf=\"colHeader?.isSortable && !colHeader?.filters\" appSortIcons\n [column]=\"colHeader\"\n [activeSort]=\"currentSort\"\n [activeSorts]=\"multiColumnSort\"\n [multiColumnSort]=\"config.multiColumnSort\"\n (sortChange)=\"onSortChange($event)\"\n class=\"sort-icon\">\n </span>\n <ng-template *ngIf=\"colHeader?.type === 'custom'\" customTableCell [customComponent]=\"colHeader?.componentRef\" [data]=\"colHeader.data\"></ng-template>\n </div>\n </div>\n <div id=\"data-container\">\n <div class=\"row-wrapper\" *ngFor=\"let row of tableData; let i = index; let rowIndex = index\">\n <div\n class=\"t-row\"\n [ngClass]=\"{ 't-row-hover': config.cellHover, 'active-row': activeRowIndex.includes(i) }\"\n [ngStyle]=\"{ 'min-height': config?.rowConfig?.height ? config.rowConfig.height : '44px' }\"\n (click)=\"selectRow(i)\"\n [class.disabled-row]=\"isRowDisabled(row)\"\n >\n <div\n (click)=\"config?.colConfig[i]?.action && config?.colConfig[i]?.actionType !== 'checkbox' ? config?.colConfig[i]?.action(col) : null\"\n *ngFor=\"let col of row; let i = index\"\n [ngStyle]=\"{\n width: config?.colConfig[i]?.style?.width || config?.colHeaderConfig[i]?.style?.width || ''\n }\"\n class=\"t-col-container\"\n [ngClass]=\"{ 't-col-container-hover': config.cellHover }\"\n >\n <div\n class=\"t-col\"\n [style]=\"config.colConfig[i]?.style\"\n [ngStyle]=\"{\n width: '100%',\n cursor: config.colConfig[i]?.action ? 'pointer' : 'default',\n 'justify-content': config.colConfig[i]?.style?.justifyContent\n ? config.colConfig[i]?.style?.justifyContent\n : config.colConfig[i]?.type === 'number'\n ? 'flex-end'\n : 'space-between'\n }\"\n >\n <p\n *ngIf=\"config.colConfig[i]?.type !== 'custom' && config.colConfig[i]?.type !== 'actions'\"\n [ngStyle]=\"{\n color: config?.colConfig[i]?.style?.color ? config?.colConfig[i]?.style?.color : ''\n }\"\n [ngClass]=\"{'text-ellipsis': !!config?.colConfig[i]?.style?.textEllipsis}\"\n class=\"t-col-text\"\n >\n {{ col }}\n </p>\n <ng-template\n *ngIf=\"config.colConfig[i]?.type === 'custom'\"\n [customComponent]=\"config.colConfig[i].componentRef\"\n [data]=\"col\"\n customTableCell\n ></ng-template>\n <mis-actions-cell\n *ngIf=\"config.colConfig[i]?.type === 'actions'\"\n [rowData]=\"col\"\n [config]=\"config.colConfig[i]\"\n [isChecked]=\"col.isChecked\"\n (actionClick)=\"onActionClick($event, rowIndex)\"\n [ngClass]=\"{\n 'disable-actions': config.colConfig[i]?.actionType === 'checkbox' && isRowDisabled(row)\n }\"\n ></mis-actions-cell>\n\n </div>\n </div>\n </div>\n <div *ngIf=\"config?.canExpand && expandedIndex === i\" class=\"sub-row\">\n <ng-container *ngIf=\"subTableDataLoading\">\n <div [ngStyle]=\"{\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n padding: '16px'\n }\">\n Loading...\n </div>\n </ng-container>\n \n <ng-container *ngIf=\"!subTableDataLoading && subTableData.length === 0\">\n <div [ngStyle]=\"{\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n padding: '16px'\n }\">\n No Data Available...\n </div>\n </ng-container>\n \n <ng-container *ngIf=\"!subTableDataLoading && subTableData.length > 0\">\n <sub-table [config]=\"subTableconfig\" [tableData]=\"subTableData\"></sub-table>\n </ng-container>\n </div>\n </div>\n </div>\n </div>\n <div\n *ngIf=\"config?.paginationConfig && (tableLength >= config.paginationConfig.rowsPerPage || config.paginationConfig?.selectedPage !== 1)\"\n id=\"pagination-container\"\n >\n <p id=\"pagination-text\">\n Showing\n {{ (config.paginationConfig?.selectedPage - 1) * config.paginationConfig.rowsPerPage + 1 }}-{{\n (config.paginationConfig?.selectedPage - 1) * config.paginationConfig.rowsPerPage + tableLength\n }}\n of {{ config.paginationConfig.totalNoOfRows }} items\n </p>\n <div id=\"pages-container\">\n <span (click)=\"config.paginationConfig?.selectedPage > 1 && updateSelectedPage(config.paginationConfig?.selectedPage - 1)\" class=\"page\" [class.page-nav-inactive]=\"config.paginationConfig?.selectedPage === 1\">\n <svg fill=\"none\" height=\"10\" viewBox=\"0 0 7 10\" width=\"7\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n clip-rule=\"evenodd\"\n d=\"M0.857405 5.56295C0.855794 5.56139 0.854188 5.55982 0.852588 5.55824C0.695955 5.40408 0.617641 5.20203 0.617647 4.99998C0.617641 4.79793 0.695955 4.59588 0.852588 4.44172C0.854188 4.44014 0.855794 4.43858 0.857404 4.43702L5.13066 0.231231C5.44392 -0.0770771 5.9518 -0.0770771 6.26506 0.231231C6.57831 0.53954 6.57831 1.03941 6.26506 1.34772L2.5542 4.99998L6.26506 8.65225C6.57831 8.96055 6.57831 9.46042 6.26506 9.76873C5.9518 10.077 5.44392 10.077 5.13066 9.76873L0.857405 5.56295Z\"\n fill=\"#181F33\"\n fill-rule=\"evenodd\"\n />\n </svg>\n </span>\n <!-- Page numbers (only show if disablePageJumping is false) -->\n <ng-container *ngIf=\"!config.paginationConfig?.disablePageJumping\">\n <div *ngFor=\"let pageNumber of pages\">\n <span\n (click)=\"updateSelectedPage(pageNumber)\"\n *ngIf=\"pageNumber != 0\"\n [ngClass]=\"{ 'page-active': pageNumber == config.paginationConfig?.selectedPage }\"\n class=\"page page-jumping-enabled\"\n >{{ pageNumber }}</span>\n <span *ngIf=\"pageNumber == 0\" class=\"page-seperator\">\n <div [ngStyle]=\"{ display: 'flex' }\">\n <span class=\"dot\" [ngStyle]=\"{ 'margin-right': '4px' }\"></span>\n <span class=\"dot\" [ngStyle]=\"{ 'margin-right': '4px' }\"></span>\n <span class=\"dot\"></span>\n </div> \n </span>\n </div>\n </ng-container>\n \n <span [class.page-nav-inactive]=\"config.paginationConfig?.selectedPage === config.paginationConfig?.noOfPages\"\n (click)=\"config.paginationConfig?.selectedPage < config.paginationConfig?.noOfPages && updateSelectedPage(config.paginationConfig?.selectedPage + 1)\" class=\"page\">\n <svg fill=\"none\" height=\"10\" viewBox=\"0 0 7 10\" width=\"7\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n clip-rule=\"evenodd\"\n d=\"M6.1426 5.56295C6.14421 5.56139 6.14581 5.55982 6.14741 5.55824C6.30405 5.40408 6.38236 5.20203 6.38236 4.99998C6.38236 4.79793 6.30405 4.59588 6.14741 4.44172C6.14581 4.44014 6.14421 4.43858 6.1426 4.43702L1.86934 0.231231C1.55608 -0.0770771 1.0482 -0.0770771 0.734942 0.231231C0.421688 0.53954 0.421688 1.03941 0.734942 1.34772L4.4458 4.99998L0.734941 8.65225C0.421686 8.96055 0.421686 9.46042 0.734941 9.76873C1.0482 10.077 1.55608 10.077 1.86934 9.76873L6.1426 5.56295Z\"\n fill=\"#181F33\"\n fill-rule=\"evenodd\"\n />\n </svg>\n </span>\n </div>\n </div>\n</div>\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n QueryList,\n Renderer2,\n ViewChild,\n ViewChildren\n} from \"@angular/core\";\nimport { Filter, TableFilterComponent } from \"./filter/filter.component\";\nimport { SortState } from \"./sort-icons.directive\";\n\n@Component({\n selector: \"mis-table\",\n templateUrl: \"table.component.html\",\n styleUrls: [\"table.component.css\"]\n})\nexport class TableComponent implements OnInit, AfterViewInit, OnChanges {\n // Initialize with -1 to indicate no row is colored at the beginning\n activeRowIndex: number[] = [-1];\n hasCheckboxActions: boolean = false;\n selectAllCheckbox: boolean = false;\n\n // Filter related variables\n showFilter: boolean = false;\n filterName: string = \"\";\n filterData: Array<Filter> = [];\n filterContainerStyles: any = {};\n appliedFilters: { [key: string]: Array<{ name: string; value: string }> } = {};\n @Output() filtersUpdated = new EventEmitter<{\n [key: string]: Array<{ name: string; value: string }>;\n }>();\n\n @ViewChild(\"filter\") filter: TableFilterComponent | any;\n @ViewChildren(\"colHeaderRef\") colHeaders: QueryList<ElementRef> | any;\n\n // Pagination related variables\n pages: Array<number> = [];\n tableLength: number;\n @Output() pageSelected = new EventEmitter<number>();\n\n @Input(\"tableConfig\") config: TableConfig | any;\n @Input() subTableconfig: TableConfig | any;\n @Input() tableDataLoading: boolean | any;\n @Input() expandedIndex: number | any;\n @Input() tableData: Array<Array<any>> = [];\n @Input() subTableData: Array<Array<any>> = [];\n @Input() subTableDataLoading: boolean | any;\n @ViewChild(\"table\") table: ElementRef | any;\n\n // Sorting related properties\n currentSort: SortState | null = null;\n multiColumnSort: SortState[] = [];\n @Output() sortChange = new EventEmitter<SortState>();\n @Output() headerAction? = new EventEmitter<{ type: string; payload?: any }>();\n\n constructor(private renderer: Renderer2) {}\n\n // Function to handle row click\n selectRow(index: number) {\n if (this.hasCheckboxActions) return;\n this.activeRowIndex = [index]; // Set the selected index to the clicked row's index\n !!this.config.rowConfig.action && this.config.rowConfig.action(index);\n }\n\n ngOnInit(): void {\n this.hasCheckboxActions = this.config.colConfig?.some(col => col.type === \"actions\" && col.actionType === \"checkbox\");\n this.tableLength = !!this.tableData ? this.tableData.length : 0;\n this.initializeFilters();\n if (this.config.paginationConfig) {\n this.initializePagination();\n }\n if (this.config.canScrollHorizontally === undefined) {\n this.config.canScrollHorizontally = false;\n }\n document.addEventListener(\"click\", event => {\n if (this.filter) {\n let isCheckBoxClicked = true;\n let targetElement = event.target as HTMLSpanElement;\n if (targetElement.className === \"checkmark\") {\n isCheckBoxClicked = true;\n this.showFilter = true;\n }\n let isClickInsideElement = this.filter.container.nativeElement.contains(event.target);\n if (!isClickInsideElement && !isCheckBoxClicked) {\n this.toggleFilter(this.filterName);\n }\n }\n });\n }\n ngAfterViewInit() {\n if (this.config.paginationConfig) {\n let height = this.config.height;\n this.renderer.setStyle(this.table.nativeElement, \"height\", height - 56 + \"px\");\n }\n }\n ngOnChanges() {\n this.tableLength = !!this.tableData ? this.tableData.length : 0;\n this.activeRowIndex = [this.config.activeRowIndex || -1];\n }\n\n // Filter related functions\n initializeFilters() {\n for (let colHeader of this.config?.colHeaderConfig) {\n if (colHeader.filters) {\n let filters = [];\n for (let filter of colHeader.filters) {\n if (filter.checked) {\n filters.push({\n name: filter.name,\n value: filter.value\n });\n }\n }\n if (filters.length > 0) this.appliedFilters[colHeader.data] = filters;\n }\n }\n }\n toggleFilter(filterName: string) {\n if (!this.showFilter) {\n this.filterName = filterName;\n this.showFilter = true;\n\n let offSet = 0;\n let colHeadersReversed = this.colHeaders.toArray().reverse();\n\n for (let header of colHeadersReversed) {\n if (header.nativeElement.innerText === filterName) break;\n offSet += header.nativeElement.offsetWidth;\n }\n this.filterContainerStyles = {\n top: \"44px\",\n right: offSet > 0 ? offSet - 116 + \"px\" : \"12px\"\n };\n } else {\n this.filterName = \"\";\n this.filterData = [];\n this.showFilter = false;\n }\n }\n updateAppliedFilters(appliedFilters: Array<{ name: string; value: string }>) {\n if (appliedFilters.length == 0) {\n delete this.appliedFilters[this.filterName];\n } else {\n this.appliedFilters[this.filterName] = appliedFilters;\n }\n this.filtersUpdated.emit({ ...this.appliedFilters });\n this.toggleFilter(this.filterName);\n }\n\n // Pagination related functions\n initializePagination() {\n if (this.config.paginationConfig) {\n let len = this.config.paginationConfig.noOfPages;\n if (len <= 7) {\n for (let i = 1; i <= len; i++) {\n this.pages.push(i);\n }\n } else {\n this.pages = [1, 2, 3, 4, 0, len];\n }\n }\n }\n updateSelectedPage(pageNumber: number) {\n // Guard clause to prevent out-of-range updates\n if (pageNumber < 1 || pageNumber > this.config.paginationConfig.noOfPages) return;\n\n if (this.config.colHeaderConfig?.some(col => col.type === \"checkbox\")) {\n this.selectAllCheckbox = false;\n }\n if (pageNumber < 1 || pageNumber > this.config.paginationConfig.noOfPages) return;\n this.config.paginationConfig.selectedPage = pageNumber;\n let len = this.config.paginationConfig.noOfPages;\n if (len > 7) {\n if (pageNumber - 2 <= 1) {\n this.pages = [1, 2, 3, 4, 0, len];\n } else if (pageNumber - 2 > 1 && pageNumber + 2 < len) {\n this.pages = [1, 0, pageNumber - 1, pageNumber, pageNumber + 1, 0, len];\n } else if (pageNumber + 2 >= len) {\n this.pages = [1, 0, len - 3, len - 2, len - 1, len];\n }\n }\n this.pageSelected.emit(this.config.paginationConfig?.selectedPage);\n }\n\n // Main container related functions\n getContainerHeight() {\n if (this.config?.height) return this.config.height;\n else return \"\";\n }\n getContainerWidth() {\n if (this.config?.width) return this.config.width;\n else return \"\";\n }\n\n // Column Headers related functions\n getColHeadersRowStyles() {\n const { colHeadersRowConfig } = this.config;\n const minHeight = colHeadersRowConfig?.height || \"44px\";\n const borderTop = colHeadersRowConfig?.style?.borderTop || \"\";\n const borderBottom = colHeadersRowConfig?.style?.borderBottom || \"1px solid #E0E0E0\";\n const backgroundColor = colHeadersRowConfig?.style?.backgroundColor || \"#FFFFFF\";\n const fontSize = colHeadersRowConfig?.style?.fontSize || \"14px\";\n return {\n \"min-height\": minHeight,\n \"border-top\": borderTop,\n \"border-bottom\": borderBottom,\n \"background-color\": backgroundColor,\n \"font-size\": fontSize\n };\n }\n\n onSortChange(sortState: SortState) {\n this.currentSort = sortState;\n if (this.config.multiColumnSort) {\n const index = this.multiColumnSort.findIndex(sort => sort.column === sortState.column);\n if (index !== -1) {\n if (sortState.direction === null) {\n this.multiColumnSort.splice(index, 1);\n } else {\n this.multiColumnSort[index] = sortState;\n }\n } else if (sortState.direction !== null) {\n this.multiColumnSort.push(sortState);\n }\n }\n this.sortChange.emit(sortState);\n }\n\n getActionsCellStyle(style: any): any {\n if (!style) return {};\n const { width, ...restStyle } = style;\n return restStyle;\n }\n\n onActionClick(event: any, rowIndex: number): void {\n if (event.isChecked !== undefined) {\n // Handle checkbox changes\n if (event.isChecked) {\n this.activeRowIndex.push(rowIndex);\n } else {\n this.activeRowIndex = this.activeRowIndex.filter(index => index !== rowIndex);\n }\n \n // Update the table data with the new checkbox state\n const actionColIndex = this.config.colConfig.findIndex(col => col.type === 'actions' && col.actionType === 'checkbox');\n if (actionColIndex !== -1 && this.tableData[rowIndex]) {\n this.tableData[rowIndex][actionColIndex] = {\n ...this.tableData[rowIndex][actionColIndex],\n isChecked: event.isChecked\n };\n }\n \n // Collect all checked items\n const checkedItems = this.tableData\n .map((row, index) => ({ row, index }))\n .filter(({ row }) => {\n const actionCol = row[actionColIndex];\n return actionCol?.isChecked === true;\n })\n .map(({ row, index }) => ({\n rowData: row[actionColIndex].rowData,\n rowIndex: index,\n isChecked: true\n }));\n \n // Call the action callback with all checked items\n const checkboxConfig = this.config.colConfig.find(col => col.type === 'actions' && col.actionType === 'checkbox');\n if (checkboxConfig?.action) {\n checkboxConfig.action(checkedItems);\n }\n }\n }\n\n isRowDisabled(row: any): boolean {\n return typeof this.config.rowConfig.disableRow === \"function\" ? this.config.rowConfig.disableRow(row) : false;\n }\n\n toggleCheckbox() {\n this.selectAllCheckbox = !this.selectAllCheckbox;\n const checkboxColIndex = this.config.colConfig.findIndex(col => col.type === 'actions' && col.actionType === 'checkbox');\n if (checkboxColIndex !== -1) {\n const checkboxConfig = this.config.colConfig[checkboxColIndex];\n this.tableData = this.tableData.map((row: any[]) => {\n const updatedRow = [...row];\n const currentCheckbox = updatedRow[checkboxColIndex];\n const isDisabled = checkboxConfig?.disable && checkboxConfig.disable(currentCheckbox);\n if (!isDisabled) {\n updatedRow[checkboxColIndex] = {\n ...currentCheckbox,\n isChecked: this.selectAllCheckbox\n };\n }\n return updatedRow;\n });\n this.headerAction?.emit({\n type: \"checkboxToggle\",\n payload: this.tableData\n });\n }\n }\n}\n\nexport interface TableConfig {\n height: string | \"100%\";\n width: string | \"100%\";\n paginationConfig?: PaginationConfig | undefined | null;\n colHeadersRowConfig: RowConfig | undefined | null;\n rowConfig: RowConfig | undefined | null;\n colHeaderConfig: Array<ColHeaderConfig>;\n colConfig: Array<ColConfig>;\n canExpand?: boolean;\n canScrollHorizontally?: boolean;\n cellHover?: boolean;\n activeRowIndex?: number;\n multiColumnSort?: boolean;\n}\nexport interface PaginationConfig {\n noOfPages: number;\n rowsPerPage: number;\n totalNoOfRows: number;\n selectedPage?: number;\n disablePageJumping?: boolean;\n}\nexport interface RowConfig {\n height?: string | undefined | null;\n style?: {};\n action?: any;\n disableRow?: (data: any) => boolean;\n}\nexport interface ColHeaderConfig {\n type: \"text\" | \"number\" | \"custom\" | \"checkbox\";\n data: any;\n componentRef?: any;\n filters?: Array<Filter> | null;\n style?: {};\n action?: any;\n isSortable?: boolean;\n sortAscIcon?: string;\n sortDescIcon?: string;\n}\nexport interface ColConfig {\n type: \"text\" | \"number\" | \"custom\" | \"actions\";\n componentRef?: any;\n style?: {};\n action?: any;\n actionItems?: ActionItem[];\n actionType?: \"inline\" | \"dropdown\" | \"checkbox\"; // inline for individual icons, dropdown for menu\n menuAlign?: \"left\" | \"right\";\n disable?: (rowData: any) => boolean;\n}\nexport interface ActionItem {\n label: string;\n value: string;\n icon?: string;\n disable?: (data: any) => boolean;\n action?: (data: any) => void;\n children?: ActionItem[];\n submenuAlign?: \"left\" | \"right\";\n}\nexport interface InternalActionItem extends ActionItem {\n showSubmenu?: boolean;\n}\n","import { ComponentFactoryResolver, Directive, Input, ViewContainerRef } from \"@angular/core\";\n\n@Directive({\n selector: \"[customTableCell]\"\n})\nexport class CustomTableCellDirective {\n private ref: any;\n private component: any;\n private cellData: any;\n\n @Input() set customComponent(value: any) {\n this.component = value;\n this.createComponent();\n }\n @Input() set data(value: any) {\n this.cellData = value;\n if (this.ref) {\n this.ref.instance.data = this.cellData;\n }\n }\n\n constructor(private viewContainerRef: ViewContainerRef, private componentFactoryResolver: ComponentFactoryResolver) {}\n\n createComponent() {\n if (this.component) {\n const cmpFactoryResolver = this.componentFactoryResolver.resolveComponentFactory(this.component);\n this.viewContainerRef.clear();\n this.ref = this.viewContainerRef.createComponent(cmpFactoryResolver);\n this.setData();\n }\n }\n setData() {\n this.ref.instance.data = this.cellData;\n }\n}\n","<div\n id=\"main-container\"\n [ngStyle]=\"{\n height: getContainerHeight(),\n width: getContainerWidth()\n }\"\n>\n <div id=\"table-container\" #table>\n <div\n id=\"col-headers-container\"\n *ngIf=\"!!config.showHeader\"\n [ngStyle]=\"{\n height: getColHeadersRowHeight(),\n 'border-top': getColHeadersRowBorderTop(),\n 'border-bottom': getColHeadersRowBorderBottom()\n }\"\n >\n <div\n class=\"col-header\"\n (click)=\"colHeader?.action ? colHeader?.action(colHeader) : null\"\n *ngFor=\"let colHeader of config?.colHeaderConfig\"\n [style]=\"colHeader?.style\"\n [ngStyle]=\"{\n width: colHeader?.style?.width || '',\n cursor: colHeader.action ? 'pointer' : 'default',\n 'justify-content': colHeader?.style?.justifyContent\n ? colHeader?.style?.justifyContent\n : colHeader.type === 'number'\n ? 'flex-end'\n : 'space-between'\n }\"\n >\n <p *ngIf=\"colHeader?.type !== 'custom'\" class=\"col-header-text\">\n {{ colHeader?.data || \" \" }}\n </p>\n <ng-template\n *ngIf=\"colHeader?.type === 'custom'\"\n customTableCell\n [customComponent]=\"colHeader?.componentRef\"\n [data]=\"colHeader.data\"\n ></ng-template>\n </div>\n </div>\n <div>\n <cdk-virtual-scroll-viewport\n [minBufferPx]=\"config.dataContainerMaxHeight || '400'\"\n [maxBufferPx]=\"config.dataContainerMaxHeight + 200 || '600'\"\n [style.overflow]=\"'overlay'\"\n [style.height]=\"config.dataContainerMaxHeight || '400px'\"\n itemSize=\"50\"\n id=\"data-container\"\n >\n <div\n class=\"row-wrapper\"\n *cdkVirtualFor=\"let row of tableData; let i = index\"\n [ngStyle]=\"{\n backgroundColor: i % 2 === 0 ? '#FAFAFA' : null\n }\"\n >\n <div class=\"t-row\">\n <div\n (click)=\"config?.colConfig[i]?.action ? config?.colConfig[i]?.action(col) : null\"\n *ngFor=\"let col of row; let i = index\"\n [ngStyle]=\"{\n width: config?.colConfig[i]?.style?.width || config?.colHeaderConfig[i]?.style?.width || ''\n }\"\n class=\"t-col-container\"\n >\n <div\n class=\"t-col\"\n [style]=\"config.colConfig[i]?.style\"\n [ngStyle]=\"{\n width: '100%',\n cursor: config.colConfig[i].action ? 'pointer' : 'default',\n 'justify-content': config.colConfig[i]?.style?.justifyContent\n ? config.colConfig[i]?.style?.justifyContent\n : config.colConfig[i].type === 'number'\n ? 'flex-end'\n : 'space-between'\n }\"\n >\n <p\n *ngIf=\"config.colConfig[i].type !== 'custom'\"\n [ngStyle]=\"{\n color: config?.colConfig[i]?.style?.color ? config?.colConfig[i]?.style?.color : ''\n }\"\n class=\"t-col-text\"\n >\n {{ col }}\n </p>\n <ng-template\n *ngIf=\"config.colConfig[i].type === 'custom'\"\n [customComponent]=\"config.colConfig[i].componentRef\"\n [data]=\"col\"\n customTableCell\n ></ng-template>\n </div>\n </div>\n </div>\n </div>\n </cdk-virtual-scroll-viewport>\n </div>\n </div>\n</div>\n","import { AfterViewInit, Component, ElementRef, Input, OnInit, Renderer2, ViewChild } from \"@angular/core\";\n\n@Component({\n selector: \"sub-table\",\n templateUrl: \"sub-table.component.html\",\n styleUrls: [\"sub-table.component.css\"]\n})\nexport class SubTableComponent implements OnInit, AfterViewInit {\n selectedPage = 1;\n pages: Array<number> = [];\n\n @Input() config: SubTableConfig | any;\n @Input() tableData: Array<Array<any>> = [];\n @ViewChild(\"table\") table: ElementRef | any;\n constructor(private renderer: Renderer2) {}\n\n ngOnInit() {}\n\n ngAfterViewInit() {\n if (this.config.paginationConfig) {\n let height = this.table.nativeElement.offsetHeight;\n this.renderer.setStyle(this.table.nativeElement, \"height\", height - 56 + \"px\");\n }\n }\n\n // Main container related functions\n getContainerHeight() {\n if (this.config.height) return this.config.height;\n else return \"\";\n }\n getContainerWidth() {\n if (this.config.width) return this.config.width;\n else return \"\";\n }\n\n // Column Headers related functions\n getColHeadersRowHeight() {\n if (this.config.colHeadersRowConfig && this.config.colHeadersRowConfig.height) {\n return this.config.colHeadersRowConfig.height;\n } else return \"44px\";\n }\n getColHeadersRowBorderTop() {\n if (this.config.colHeadersRowConfig && this.config.colHeadersRowConfig.style?.borderTop) {\n return this.config.colHeadersRowConfig.style?.borderTop;\n } else return \"\";\n }\n getColHeadersRowBorderBottom() {\n if (this.config.colHeadersRowConfig && this.config.colHeadersRowConfig.style?.borderBottom) {\n return this.config.colHeadersRowConfig.style?.borderBottom;\n } else return \"1px solid #E0E0E0\";\n }\n}\n\nexport interface SubTableConfig {\n height: string | \"100%\";\n width: string | \"100%\";\n dataContainerMaxHeight: string | \"400px\";\n showHeader?: boolean | undefined;\n rowConfig: SubTableRowConfig | undefined | null;\n colHeaderConfig?: Array<SubTableColHeaderConfig>;\n colConfig: Array<SubTableColConfig>;\n}\n\nexport interface SubTableRowConfig {\n height?: string | undefined | null;\n style?: {};\n}\nexport interface SubTableColHeaderConfig {\n type: \"text\" | \"number\" | \"custom\";\n data: any;\n componentRef?: any;\n style?: {};\n action?: any;\n}\nexport interface SubTableColConfig {\n type: \"text\" | \"number\" | \"custom\";\n componentRef?: any;\n style?: {};\n action?: any;\n}\n","<div id=\"main-container\" #mainContainer [ngStyle]=\"containerStyles\">\n <div id=\"search-bar-container\">\n <input (keyup)=\"updateSearchValue($event)\" type=\"text\" placeholder=\"Search\" />\n <svg id=\"search-icon\" width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M1.21496 8.14563C1.21496 4.3179 4.33709 1.21165 8.19249 1.21165C12.0479 1.21165 15.17 4.3179 15.17 8.14563C15.17 9.69308 14.6598 11.1226 13.797 12.2767L12.3684 13.7013C11.2043 14.5668 9.75891 15.0796 8.19249 15.0796C4.33709 15.0796 1.21496 11.9734 1.21496 8.14563ZM12.9419 14.7835C11.602 15.7329 9.96259 16.2913 8.19249 16.2913C3.66965 16.2913 -0.00012207 12.6461 -0.00012207 8.14563C-0.00012207 3.64512 3.66965 0 8.19249 0C12.7153 0 16.3851 3.64512 16.3851 8.14563C16.3851 9.93713 15.8036 11.5931 14.8183 12.9375L16.836 14.4048C17.6704 14.912 18.7553 15.6543 17.2453 17.215C15.7352 18.7756 15.0098 17.6663 14.499 16.8364L12.9419 14.7835Z\"\n fill=\"#6A737D\"\n />\n </svg>\n </div>\n <div id=\"filters-main-container\">\n <div class=\"filters-sub-container\">\n <div *ngFor=\"let filter of getCheckedFilters()\">\n <div class=\"filter\">\n <mis-checkbox [checked]=\"true\" [name]=\"filter.value\" (valueChange)=\"updateFilter($event)\"></mis-checkbox>\n <span class=\"filter-text\">{{ filter.name }}</span>\n </div>\n </div>\n </div>\n <div class=\"separator\" [ngStyle]=\"{ 'margin': '16px 0px' }\" *ngIf=\"getCheckedFilters().length && getCheckedFilters().length < filtersData.length\"></div>\n <div class=\"filters-sub-container\">\n <div *ngFor=\"let filter of getFiltersBasedOnSearchValue()\">\n <div class=\"filter\" *ngIf=\"!filter.checked\">\n <mis-checkbox [checked]=\"false\" [name]=\"filter.value\" (valueChange)=\"updateFilter($event)\"></mis-checkbox>\n <span class=\"filter-text\">{{ filter.name }}</span>\n </div>\n </div>\n <div id=\"no-results-container\" *ngIf=\"getFiltersBasedOnSearchValue().length < 1\">\n <span class=\"filter-text\">No matches found</span>\n </div>\n </div>\n <div class=\"separator\" [ngStyle]=\"{ 'margin': '16px 0px' }\"></div>\n <div id=\"buttons-container\">\n <button id=\"reset-btn\" [ngStyle]=\"{ 'margin-right': '8px' }\" (click)=\"resetFilters()\">Reset</button>\n <button id=\"apply-btn\" (click)=\"applyFilters()\">Apply</button>\n </div>\n </div>\n</div>\n","import { Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild } from \"@angular/core\";\n\n@Component({\n selector: \"mis-table-filter\",\n templateUrl: \"filter.component.html\",\n styleUrls: [\"filter.component.css\"]\n})\nexport class TableFilterComponent implements OnInit {\n @Input() filtersData: Array<Filter> = [];\n @Input() containerStyles: any = {};\n\n @Output() filtersApplied = new EventEmitter<any>();\n\n @ViewChild(\"mainContainer\") container: ElementRef | undefined;\n\n filtersMap: any = {};\n searchValue: string = \"\";\n\n constructor() {}\n\n ngOnInit(): void {\n this.filtersData.forEach(filter => {\n this.filtersMap[filter.value] = filter;\n });\n }\n resetFilters() {\n this.filtersData.forEach(filter => {\n this.filtersMap[filter.value].checked = false;\n });\n this.filtersApplied.emit([]);\n }\n applyFilters() {\n let list = Object.values(this.filtersMap)\n .filter((filter: Filter | any) => filter.checked)\n .map((filter: Filter | any) => {\n return {\n name: filter.name,\n value: filter.value\n };\n });\n this.filtersApplied.emit(list);\n }\n updateSearchValue(event: any) {\n this.searchValue = event.target.value;\n }\n updateFilter(data: any) {\n if (this.filtersMap[data.name]) {\n this.filtersMap[data.name].checked = !this.filtersMap[data.name].checked;\n }\n }\n getFiltersBasedOnSearchValue(): Filter[] | any {\n let list = Object.values(this.filtersMap);\n list = list.filter((filter: Filter | any) => {\n return filter.name.match(new RegExp(this.searchValue, \"i\"));\n });\n return list.sort(this.mySort);\n }\n getCheckedFilters(): Filter[] | any {\n let list = Object.values(this.filtersMap);\n list = list.filter((filter: Filter | any) => filter.checked).sort(this.mySort);\n return list;\n }\n mySort = (a: Filter | any, b: Filter | any) => {\n if (a.name < b.name) return -1;\n else if (b.name < a.name) return 1;\n else return 0;\n };\n}\nexport interface Filter {\n name: string;\n value: string;\n checked: boolean;\n}\n","import {\n Directive,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n Renderer2,\n SimpleChanges,\n input,\n output,\n signal,\n} from '@angular/core';\n\nexport interface SortState {\n column: string;\n direction: 'ASC' | 'DESC' | '';\n}\n\nexport interface SortColumn {\n data: string;\n sortAscIcon?: string;\n sortDescIcon?: string;\n}\n\n@Directive({\n selector: '[appSortIcons]',\n})\nexport class SortIconsDirective implements OnInit, OnChanges {\n // Convert inputs to signals\n column = input<SortColumn>();\n activeSort = input<SortState>();\n activeSorts = input<SortState[]>();\n multiColumnSort = input<boolean>(false);\n \n // Convert output to signal\n sortChange = output<SortState>();\n multiSortChange = output<SortState[]>();\n\n // Internal state as signals\n currentDirection = signal<'ASC' | 'DESC' | ''>('');\n\n // Assets\n private upIcon!: HTMLImageElement;\n private downIcon!: HTMLImageElement;\n private sortOrderElement?: HTMLSpanElement;\n\n constructor(private el: ElementRef, private renderer: Renderer2) {}\n\n ngOnInit() {\n \n // Create a container for the icons\n const container = this.renderer.createElement('div');\n this.renderer?.setStyle(container, 'display', 'inline-flex');\n this.renderer?.setStyle(container, 'align-items', 'center');\n\n const iconContainer = this.renderer.createElement('div');\n this.renderer?.setStyle(iconContainer, 'display', 'inline-flex');\n this.renderer?.setStyle(iconContainer, 'flex-direction', 'column');\n this.renderer?.setStyle(iconContainer, 'align-items', 'center');\n\n this.upIcon = this.renderer.createElement('img');\n this.renderer?.setAttribute(this.upIcon, 'src', this.column()?.sortAscIcon);\n this.renderer?.setStyle(this.upIcon, 'opacity', '0.5');\n this.renderer?.setStyle(this.upIcon, 'transition', 'opacity 0.3s ease');\n this.renderer?.setStyle(this.upIcon, 'width', '9px');\n this.renderer?.setStyle(this.upIcon, 'cursor', 'pointer');\n this.renderer?.listen(this.upIcon, 'click', () => this.setSortDirection('ASC'));\n\n this.downIcon = this.renderer.createElement('img');\n this.renderer?.setAttribute(this.downIcon, 'src', this.column()?.sortDescIcon);\n this.renderer?.setStyle(this.downIcon, 'opacity', '0.5');\n this.renderer?.setStyle(this.downIcon, 'transition', 'opacity 0.3s ease');\n this.renderer?.setStyle(this.downIcon, 'width', '9px');\n this.renderer?.setStyle(this.downIcon, 'cursor', 'pointer');\n this.renderer?.listen(this.downIcon, 'click', () => this.setSortDirection('DESC'));\n\n this.renderer?.appendChild(iconContainer, this.upIcon);\n this.renderer?.appendChild(iconContainer, this.downIcon);\n this.renderer?.appendChild(container, iconContainer);\n\n if (this.multiColumnSort()) {\n this.sortOrderElement = this.renderer.createElement('span');\n this.renderer?.setStyle(this.sortOrderElement, 'font-size', '12px');\n this.renderer?.setStyle(this.sortOrderElement, 'font-weight', 'bold');\n this.renderer?.setStyle(this.sortOrderElement, 'color', '#000');\n this.renderer?.appendChild(container, this.sortOrderElement);\n }\n\n this.renderer?.appendChild(this.el.nativeElement, container);\n this.updateIconStyles();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['activeSort'] || changes['activeSorts']) {\n this.updateIconStyles();\n }\n }\n\n private setSortDirection(direction: 'ASC' | 'DESC'): void {\n if (this.multiColumnSort()) {\n this.handleMultiColumnSort(direction);\n } else {\n this.handleSingleColumnSort(direction);\n }\n }\n\n private handleSingleColumnSort(direction: 'ASC' | 'DESC'): void {\n if (this.currentDirection() === direction) {\n this.currentDirection.set(''); // Reset sorting if the same direction is clicked\n } else {\n this.currentDirection.set(direction);\n }\n\n this.sortChange.emit({ \n column: this.column()?.data || '', \n direction: this.currentDirection()\n });\n this.updateIconStyles();\n }\n\n private handleMultiColumnSort(direction: 'ASC' | 'DESC'): void {\n const existingSortIndex = this.activeSorts().findIndex(sort => sort.column === this.column()?.data);\n \n if (existingSortIndex !== -1) {\n if (this.activeSorts()[existingSortIndex].direction !== direction) {\n this.activeSorts()[existingSortIndex].direction = direction;\n } else {\n return;\n }\n } else {\n this.activeSorts().push({ \n column: this.column()?.data || '', \n direction\n });\n }\n this.multiSortChange.emit([...this.activeSorts()]);\n this.updateIconStyles();\n }\n\n private updateIconStyles(): void {\n if (this.multiColumnSort()) {\n this.updateMultiColumnIconStyles();\n } else {\n this.updateSingleColumnIconStyles();\n }\n }\n\n private updateSingleColumnIconStyles(): void {\n const isActiveColumn = this.activeSort()?.column === this.column()?.data;\n\n setTimeout(() => {\n this.renderer?.setStyle(\n this.upIcon,\n 'opacity',\n isActiveColumn && this.currentDirection() === 'ASC' ? '1' : '0.5'\n );\n this.renderer?.setStyle(\n this.downIcon,\n 'opacity',\n isActiveColumn && this.currentDirection() === 'DESC' ? '1' : '0.5'\n );\n }, 0);\n }\n\n private updateMultiColumnIconStyles(): void {\n const columnSort = this.activeSorts().find(sort => sort.column === this.column()?.data);\n \n setTimeout(() => {\n this.renderer?.setStyle(\n this.upIcon,\n 'opacity',\n columnSort?.direction === 'ASC' ? '1' : '0.5'\n );\n this.renderer?.setStyle(\n this.downIcon,\n 'opacity',\n columnSort?.direction === 'DESC' ? '1' : '0.5'\n );\n\n if (this.sortOrderElement) {\n const sortIndex = this.activeSorts().findIndex(sort => sort.column === this.column()?.data);\n if (sortIndex !== -1) {\n this.renderer?.setProperty(this.sortOrderElement, 'textContent', (sortIndex + 1).toString());\n } else {\n this.renderer?.setProperty(this.sortOrderElement, 'textContent', '');\n }\n }\n }, 0);\n }\n}","<div class=\"actions-cell-container\" [ngStyle]=\"containerStyle\">\n <!-- Inline Actions -->\n <div *ngIf=\"actionType === 'inline'\" class=\"inline-actions\">\n <div\n *ngFor=\"let item of actionItems; trackBy: trackByAction\"\n class=\"action-item\"\n [ngClass]=\"{ disabled: isDisabled(item) }\"\n (click)=\"onActionClick(item, $event)\"\n >\n <img [src]=\"item.icon\" [alt]=\"item.label\" class=\"action-icon-svg\" />\n </div>\n </div>\n\n <!-- Dropdown Actions -->\n <div *ngIf=\"actionType === 'dropdown'\" class=\"dropdown-actions\">\n <div #dropdownTrigger class=\"dropdown-trigger\" (click)=\"toggleDropdown($event)\" title=\"More actions\">\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\n <circle cx=\"10\" cy=\"4\" r=\"2\" fill=\"#333\" />\n <circle cx=\"10\" cy=\"10\" r=\"2\" fill=\"#333\" />\n <circle cx=\"10\" cy=\"16\" r=\"2\" fill=\"#333\" />\n </svg>\n </div>\n </div>\n\n <!-- Checkbox Actions -->\n <div *ngIf=\"actionType === 'checkbox'\" class=\"checkbox-actions\">\n <mis-checkbox [checked]=\"isChecked\" (valueChange)=\"onCheckboxChange($event)\" [disabled]=\"disable ? disable(data) : false\"\n > </mis-checkbox>\n </div>\n</div>\n\n<!-- CDK Overlay Template for Dropdown Menu -->\n<ng-template #dropdownMenu>\n <div class=\"dropdown-menu-overlay\" [ngClass]=\"menuAlign\">\n <div\n class=\"dropdown-menu-item\"\n *ngFor=\"let item of actionItems\"\n (click)=\"onDropdownItemClick(item, $event)\"\n [ngClass]=\"{ disabled: isDisabled(item) }\"\n >\n <ng-container *ngIf=\"item.children?.length; else noChildren\">\n <span class=\"dropdown-icon\" *ngIf=\"item.icon\">\n <img [src]=\"item.icon\" />\n </span>\n <span class=\"dropdown-label\">{{ item.label }}</span>\n <span class=\"submenu-arrow\">\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\">\n <path d=\"M9 6L15 12L9 18\" stroke=\"#0D1321\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n </svg>\n </span>\n\n <!-- DYNAMIC SUBMENU -->\n <div class=\"dropdown-submenu\" [ngClass]=\"item.submenuAlign\" *ngIf=\"item.showSubmenu\">\n <div\n class=\"dropdown-menu-item\"\n *ngFor=\"let child of item.children\"\n [ngClass]=\"{ disabled: isDisabled(child) }\"\n (click)=\"onDropdownItemClick(child, $event)\"\n >\n <span class=\"dropdown-icon\" *ngIf=\"child.icon\">\n <img [src]=\"child.icon\" />\n </span>\n <span class=\"dropdown-label\">{{ child.label }}</span>\n </div>\n </div>\n </ng-container>\n\n <ng-template #noChildren>\n <span class=\"dropdown-icon\" *ngIf=\"item.icon\">\n <img [src]=\"item.icon\" />\n </span>\n <span class=\"dropdown-label\">{{ item.label }}</span>\n </ng-template>\n </div>\n </div>\n</ng-template>\n","import { Component, EventEmitter, Input, OnInit, Output, HostListener, ElementRef, ViewChild, TemplateRef, ViewContainerRef, OnDestroy } from \"@angular/core\";\nimport { ConnectionPositionPair, Overlay, OverlayConfig, OverlayRef } from \"@angular/cdk/overlay\";\nimport { TemplatePortal } from \"@angular/cdk/portal\";\nimport { ActionItem } from \"../table.component\";\n\n@Component({\n selector: \"mis-actions-cell\",\n templateUrl: \"./actions-cell.component.html\",\n styleUrl: \"./actions-cell.component.css\"\n})\nexport class ActionsCellComponent implements OnInit, OnDestroy {\n @Input() set rowData(value: any){\n if (this.actionType === 'checkbox') {\n // For checkbox, keep the rowData structure\n this.data = value?.rowData ?? {};\n this.isChecked = value?.isChecked ?? false;\n } else {\n // For other actions (dropdown, inline), use the value directly\n this.data = value;\n this.isChecked = false;\n }\n }\n @Input() isChecked: boolean = false;\n @Input() set config(config: any){\n this.actionItems = config?.actionItems,\n this.actionType = config.actionType,\n this.submenuAlign = config.submenuAlign,\n this.menuAlign = config.menuAlign\n this._style = config.style;\n this.action = config.action;\n this.disable = config.disable;\n this.processStyle();\n }\n\n @Output() actionClick = new EventEmitter<{ item?: ActionItem; data: any; isChecked?: any }>();\n\n @ViewChild('dropdownMenu', { static: false }) dropdownMenu: TemplateRef<any>;\n @ViewChild('dropdownTrigger', { static: false }) dropdownTrigger: ElementRef;\n\n isDropdownOpen: boolean = false;\n actionItems: ActionItem[] = [];\n actionType: \"inline\" | \"dropdown\" | \"checkbox\" = \"inline\";\n submenuAlign: \"left\" | \"right\" = \"right\";\n menuAlign: \"left\" | \"right\" = \"left\";\n action?: (data: any) => void;\n data: any;\n disable: (data: any) => boolean;\n private _style: any = {};\n containerStyle: any = {};\n private overlayRef: OverlayRef | null = null;\n\n constructor(\n private overlay: Overlay,\n private viewContainerRef: ViewContainerRef\n ) {}\n\n ngOnInit(): void {}\n\n ngOnDestroy(): void {\n this.closeDropdown();\n }\n\n private processStyle(): void {\n // Remove width from style to avoid conflicts with table column width\n const { width, ...restStyle } = this._style;\n this.containerStyle = restStyle;\n }\n\n onActionClick(item: ActionItem, event: Event) {\n event.stopPropagation();\n\n // Check permissions before executing action\n if (this.isDisabled(item)) return;\n\n // Execute action only if permitted\n if (item.action) {\n item.action(this.data);\n }\n\n this.actionClick.emit({ item, data: this.data });\n }\n\n trackByAction(index: number, item: ActionItem): string {\n return item.value;\n }\n\n isSvgFile(iconPath: string): boolean {\n if (!iconPath) return false;\n return iconPath.toLowerCase().includes(\".svg\") || iconPath.toLowerCase().includes(\"assets/icons/\");\n }\n\n @HostListener(\"document:click\")\n onDocumentClick() {\n if (this.isDropdownOpen) {\n this.closeDropdown();\n }\n }\n\n toggleDropdown(event: Event) {\n event.stopPropagation();\n \n if (this.isDropdownOpen) {\n this.closeDropdown();\n } else {\n this.openDropdown();\n }\n }\n\n private openDropdown(): void {\n if (!this.dropdownTrigger || !this.dropdownMenu) return;\n\n // Close all submenus when opening main menu\n this.actionItems.forEach((item: any) => (item.showSubmenu = false));\n\n const positions = this.getDropdownPositions();\n \n const overlayConfig = new OverlayConfig({\n hasBackdrop: true,\n backdropClass: 'cdk-overlay-transparent-backdrop',\n positionStrategy: this.overlay\n .position()\n .flexibleConnectedTo(this.dropdownTrigger)\n .withPositions(positions)\n .withPush(true),\n scrollStrategy: this.overlay.scrollStrategies.reposition()\n });\n\n this.overlayRef = this.overlay.create(overlayConfig);\n const portal = new TemplatePortal(this.dropdownMenu, this.viewContainerRef);\n this.overlayRef.attach(portal);\n\n this.overlayRef.backdropClick().subscribe(() => {\n this.closeDropdown();\n });\n\n this.isDropdownOpen = true;\n }\n\n private closeDropdown(): void {\n if (this.overlayRef) {\n this.overlayRef.dispose();\n this.overlayRef = null;\n }\n this.isDropdownOpen = false;\n }\n\n private getDropdownPositions(): ConnectionPositionPair[] {\n const positions: ConnectionPositionPair[] = [];\n\n if (this.menuAlign === 'left') {\n // Menu opens to the left of trigger\n positions.push(\n new ConnectionPositionPair(\n { originX: 'start', originY: 'bottom' },\n { overlayX: 'start', overlayY: 'top' },\n 0, 4\n ),\n new ConnectionPositionPair(\n { originX: 'start', originY: 'top' },\n { overlayX: 'start', overlayY: 'bottom' },\n 0, -4\n )\n );\n } else {\n // Menu opens to the right of trigger\n positions.push(\n new ConnectionPositionPair(\n { originX: 'end', originY: 'bottom' },\n { overlayX: 'end', overlayY: 'top' },\n 0, 4\n ),\n new ConnectionPositionPair(\n { originX: 'end', originY: 'top' },\n { overlayX: 'end', overlayY: 'bottom' },\n 0, -4\n )\n );\n }\n return positions;\n }\n\n onDropdownItemClick(item: any, event: Event) {\n event.stopPropagation();\n\n if (this.isDisabled(item)) return;\n\n if (item?.children?.length) {\n // Toggle submenu\n item.showSubmenu = !item.showSubmenu;\n // Optionally close other submenus\n this.actionItems.forEach((i: any) => {\n if (i !== item) i.showSubmenu = false;\n });\n } else {\n // Handle action\n if (item.action) item.action(this.data);\n this.actionClick.emit({ item, data: this.data });\n this.closeDropdown(); // Only close if action was executed\n }\n }\n\n onCheckboxChange(event: any): void {\n this.isChecked = event?.value ?? false;\n this.actionClick.emit({ \n isChecked: this.isChecked, \n data: this.data \n });\n }\n\n isDisabled(item: ActionItem): boolean {\n if (typeof item.disable === \"function\") {\n return item.disable(this.data);\n }\n return false;\n }\n}\n","import { ModuleWithProviders, NgModule } from \"@angular/core\";\nimport { TableComponent } from \"./table.component\";\nimport { CustomTableCellDirective } from \"./custom-table-cell.directive\";\nimport { SubTableComponent } from \"./sub-table/sub-table.component\";\nimport { CommonModule } from \"@angular/common\";\nimport { TableFilterComponent } from \"./filter/filter.component\";\nimport { CheckboxModule } from \"mis-crystal-design-system/checkbox\";\nimport { ScrollingModule } from \"@angular/cdk/scrolling\";\nimport { OverlayModule } from \"@angular/cdk/overlay\";\nimport { PortalModule } from \"@angular/cdk/portal\";\nimport { SortIconsDirective } from \"./sort-icons.directive\";\nimport { ActionsCellComponent } from \"./actions-cell/actions-cell.component\";\n\n@NgModule({\n declarations: [\n TableComponent, \n SubTableComponent, \n TableFilterComponent, \n CustomTableCellDirective,\n SortIconsDirective,\n ActionsCellComponent\n ],\n imports: [CommonModule, CheckboxModule, ScrollingModule, OverlayModule, PortalModule],\n exports: [\n TableComponent, \n SubTableComponent, \n TableFilterComponent, \n CustomTableCellDirective,\n SortIconsDirective,\n ActionsCellComponent\n ]\n})\nexport class TableModule {\n static forRoot(): ModuleWithProviders<TableModule> {\n return { ngModule: TableModule, providers: [] };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["_c5","_c7","_c3","_c4","_c2","_c1","i1"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mis-crystal-design-system-table.mjs","sources":["../../../projects/mis-components/table/table.component.html","../../../projects/mis-components/table/table.component.ts","../../../projects/mis-components/table/custom-table-cell.directive.ts","../../../projects/mis-components/table/sub-table/sub-table.component.html","../../../projects/mis-components/table/sub-table/sub-table.component.ts","../../../projects/mis-components/table/filter/filter.component.html","../../../projects/mis-components/table/filter/filter.component.ts","../../../projects/mis-components/table/sort-icons.directive.ts","../../../projects/mis-components/table/actions-cell/actions-cell.component.html","../../../projects/mis-components/table/actions-cell/actions-cell.component.ts","../../../projects/mis-components/table/table.module.ts","../../../projects/mis-components/table/mis-crystal-design-system-table.ts"],"sourcesContent":["<div\n [ngStyle]=\"{\n height: getContainerHeight(),\n width: getContainerWidth(),\n 'overflow-x': config.canScrollHorizontally ? 'auto' : 'unset'\n }\"\n id=\"main-container\"\n>\n <mis-table-filter\n #filter\n (filtersApplied)=\"updateAppliedFilters($event)\"\n *ngIf=\"showFilter\"\n [containerStyles]=\"filterContainerStyles\"\n [filtersData]=\"filterData\"\n ></mis-table-filter>\n <div\n #table\n id=\"table-container\"\n [ngClass]=\"{ 'no-scrollbar': expandedIndex < 0, scrollbar: !(expandedIndex < 0), 'scroll-horizontally': config.canScrollHorizontally }\"\n >\n <div\n [ngStyle]=\"getColHeadersRowStyles()\"\n id=\"col-headers-container\"\n >\n <div\n #colHeaderRef\n (click)=\"colHeader?.action ? colHeader?.action(colHeader) : null\"\n *ngFor=\"let colHeader of config?.colHeaderConfig\"\n class=\"col-header\"\n [ngStyle]=\"{\n width: colHeader?.style?.width || '',\n cursor: colHeader.action ? 'pointer' : 'default',\n 'justify-content': colHeader?.style?.justifyContent\n ? colHeader?.style?.justifyContent\n : colHeader.type === 'number'\n ? 'flex-end'\n : 'space-between'\n }\"\n >\n <p *ngIf=\"colHeader?.type !== 'custom' && colHeader?.type !== 'checkbox'\" class=\"col-header-text\">\n {{ colHeader?.data || \" \" }}\n </p>\n <span\n (click)=\"filterData = colHeader.filters; toggleFilter(colHeader.data); $event.stopPropagation()\"\n *ngIf=\"colHeader?.type !== 'custom' && colHeader?.filters && colHeader?.filters?.length > 0\"\n class=\"filter-icon\"\n >\n <span *ngIf=\"appliedFilters[colHeader.data]?.length > 0\" id=\"filter-active\"></span>\n <svg fill=\"none\" height=\"10\" viewBox=\"0 0 13 10\" width=\"13\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n clip-rule=\"evenodd\"\n d=\"M4.97546 10H7.64213V8H4.97546V10ZM0.308472 0V2H12.3085V0H0.308472ZM2.30847 6H10.3085V4H2.30847V6Z\"\n fill=\"#181F33\"\n fill-rule=\"evenodd\"\n />\n </svg>\n </span>\n <span\n (click)=\"toggleCheckbox(); $event.stopPropagation()\"\n *ngIf=\"colHeader?.type === 'checkbox'\"\n class=\"checkbox-icon\"\n >\n <mis-checkbox [checked]=\"selectAllCheckbox\"></mis-checkbox>\n </span>\n <span *ngIf=\"colHeader?.isSortable && !colHeader?.filters\" appSortIcons\n [column]=\"colHeader\"\n [activeSort]=\"currentSort\"\n [activeSorts]=\"multiColumnSort\"\n [multiColumnSort]=\"config.multiColumnSort\"\n (sortChange)=\"onSortChange($event)\"\n class=\"sort-icon\">\n </span>\n <ng-template *ngIf=\"colHeader?.type === 'custom'\" customTableCell [customComponent]=\"colHeader?.componentRef\" [data]=\"colHeader.data\"></ng-template>\n </div>\n </div>\n <div id=\"data-container\">\n <div class=\"row-wrapper\" *ngFor=\"let row of tableData; let i = index; let rowIndex = index\">\n <div\n class=\"t-row\"\n [ngClass]=\"{ 't-row-hover': config.cellHover, 'active-row': activeRowIndex.includes(i) }\"\n [ngStyle]=\"{ 'min-height': config?.rowConfig?.height ? config.rowConfig.height : '44px' }\"\n (click)=\"selectRow(i)\"\n [class.disabled-row]=\"isRowDisabled(row)\"\n >\n <div\n (click)=\"config?.colConfig[i]?.action && config?.colConfig[i]?.actionType !== 'checkbox' ? config?.colConfig[i]?.action(col) : null\"\n *ngFor=\"let col of row; let i = index\"\n [ngStyle]=\"{\n width: config?.colConfig[i]?.style?.width || config?.colHeaderConfig[i]?.style?.width || ''\n }\"\n class=\"t-col-container\"\n [ngClass]=\"{ 't-col-container-hover': config.cellHover }\"\n >\n <div\n class=\"t-col\"\n [style]=\"config.colConfig[i]?.style\"\n [ngStyle]=\"{\n width: '100%',\n cursor: config.colConfig[i]?.action ? 'pointer' : 'default',\n 'justify-content': config.colConfig[i]?.style?.justifyContent\n ? config.colConfig[i]?.style?.justifyContent\n : config.colConfig[i]?.type === 'number'\n ? 'flex-end'\n : 'space-between'\n }\"\n >\n <p\n *ngIf=\"config.colConfig[i]?.type !== 'custom' && config.colConfig[i]?.type !== 'actions'\"\n [ngStyle]=\"{\n color: config?.colConfig[i]?.style?.color || '',\n '--collapsed-lines': previewLines || 3\n }\"\n [ngClass]=\"{\n 'collapsed-cell': collapseColIndex == i && expandedMap[rowIndex]\n }\" \n class=\"t-col-text\"\n >\n {{col}}\n </p>\n \n <ng-template\n *ngIf=\"config.colConfig[i]?.type === 'custom'\"\n [customComponent]=\"config.colConfig[i].componentRef\"\n [data]=\"col\"\n customTableCell\n ></ng-template>\n <mis-actions-cell\n *ngIf=\"config.colConfig[i]?.type === 'actions'\"\n [cellData]=\"col\"\n [config]=\"config.colConfig[i]\"\n (actionClick)=\"onActionClick($event, rowIndex)\"\n [ngClass]=\"{\n 'disable-actions': (config.colConfig[i]?.actionType === 'checkbox' || config.colConfig[i]?.actionType === 'row-collapse') && isRowDisabled(row)\n }\"\n ></mis-actions-cell>\n\n </div>\n </div>\n </div>\n <div *ngIf=\"config?.canExpand && expandedIndex === i\" class=\"sub-row\">\n <ng-container *ngIf=\"subTableDataLoading\">\n <div [ngStyle]=\"{\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n padding: '16px'\n }\">\n Loading...\n </div>\n </ng-container>\n \n <ng-container *ngIf=\"!subTableDataLoading && subTableData.length === 0\">\n <div [ngStyle]=\"{\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n padding: '16px'\n }\">\n No Data Available...\n </div>\n </ng-container>\n \n <ng-container *ngIf=\"!subTableDataLoading && subTableData.length > 0\">\n <sub-table [config]=\"subTableconfig\" [tableData]=\"subTableData\"></sub-table>\n </ng-container>\n </div>\n </div>\n </div>\n </div>\n <div\n *ngIf=\"config?.paginationConfig && (tableLength >= config.paginationConfig.rowsPerPage || config.paginationConfig?.selectedPage !== 1)\"\n id=\"pagination-container\"\n >\n <p id=\"pagination-text\">\n Showing\n {{ (config.paginationConfig?.selectedPage - 1) * config.paginationConfig.rowsPerPage + 1 }}-{{\n (config.paginationConfig?.selectedPage - 1) * config.paginationConfig.rowsPerPage + tableLength\n }}\n of {{ config.paginationConfig.totalNoOfRows }} items\n </p>\n <div id=\"pages-container\">\n <span (click)=\"config.paginationConfig?.selectedPage > 1 && updateSelectedPage(config.paginationConfig?.selectedPage - 1)\" class=\"page\" [class.page-nav-inactive]=\"config.paginationConfig?.selectedPage === 1\">\n <svg fill=\"none\" height=\"10\" viewBox=\"0 0 7 10\" width=\"7\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n clip-rule=\"evenodd\"\n d=\"M0.857405 5.56295C0.855794 5.56139 0.854188 5.55982 0.852588 5.55824C0.695955 5.40408 0.617641 5.20203 0.617647 4.99998C0.617641 4.79793 0.695955 4.59588 0.852588 4.44172C0.854188 4.44014 0.855794 4.43858 0.857404 4.43702L5.13066 0.231231C5.44392 -0.0770771 5.9518 -0.0770771 6.26506 0.231231C6.57831 0.53954 6.57831 1.03941 6.26506 1.34772L2.5542 4.99998L6.26506 8.65225C6.57831 8.96055 6.57831 9.46042 6.26506 9.76873C5.9518 10.077 5.44392 10.077 5.13066 9.76873L0.857405 5.56295Z\"\n fill=\"#181F33\"\n fill-rule=\"evenodd\"\n />\n </svg>\n </span>\n <!-- Page numbers (only show if disablePageJumping is false) -->\n <ng-container *ngIf=\"!config.paginationConfig?.disablePageJumping\">\n <div *ngFor=\"let pageNumber of pages\">\n <span\n (click)=\"updateSelectedPage(pageNumber)\"\n *ngIf=\"pageNumber != 0\"\n [ngClass]=\"{ 'page-active': pageNumber == config.paginationConfig?.selectedPage }\"\n class=\"page page-jumping-enabled\"\n >{{ pageNumber }}</span>\n <span *ngIf=\"pageNumber == 0\" class=\"page-seperator\">\n <div [ngStyle]=\"{ display: 'flex' }\">\n <span class=\"dot\" [ngStyle]=\"{ 'margin-right': '4px' }\"></span>\n <span class=\"dot\" [ngStyle]=\"{ 'margin-right': '4px' }\"></span>\n <span class=\"dot\"></span>\n </div> \n </span>\n </div>\n </ng-container>\n \n <span [class.page-nav-inactive]=\"config.paginationConfig?.selectedPage === config.paginationConfig?.noOfPages\"\n (click)=\"config.paginationConfig?.selectedPage < config.paginationConfig?.noOfPages && updateSelectedPage(config.paginationConfig?.selectedPage + 1)\" class=\"page\">\n <svg fill=\"none\" height=\"10\" viewBox=\"0 0 7 10\" width=\"7\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n clip-rule=\"evenodd\"\n d=\"M6.1426 5.56295C6.14421 5.56139 6.14581 5.55982 6.14741 5.55824C6.30405 5.40408 6.38236 5.20203 6.38236 4.99998C6.38236 4.79793 6.30405 4.59588 6.14741 4.44172C6.14581 4.44014 6.14421 4.43858 6.1426 4.43702L1.86934 0.231231C1.55608 -0.0770771 1.0482 -0.0770771 0.734942 0.231231C0.421688 0.53954 0.421688 1.03941 0.734942 1.34772L4.4458 4.99998L0.734941 8.65225C0.421686 8.96055 0.421686 9.46042 0.734941 9.76873C1.0482 10.077 1.55608 10.077 1.86934 9.76873L6.1426 5.56295Z\"\n fill=\"#181F33\"\n fill-rule=\"evenodd\"\n />\n </svg>\n </span>\n </div>\n </div>\n</div>\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n QueryList,\n Renderer2,\n ViewChild,\n ViewChildren\n} from \"@angular/core\";\nimport { Filter, TableFilterComponent } from \"./filter/filter.component\";\nimport { SortState } from \"./sort-icons.directive\";\n\n@Component({\n selector: \"mis-table\",\n templateUrl: \"table.component.html\",\n styleUrls: [\"table.component.css\"]\n})\nexport class TableComponent implements OnInit, AfterViewInit, OnChanges {\n // Initialize with -1 to indicate no row is colored at the beginning\n activeRowIndex: number[] = [];\n hasCheckboxActions: boolean = false;\n selectAllCheckbox: boolean = false;\n\n // Filter related variables\n showFilter: boolean = false;\n filterName: string = \"\";\n filterData: Array<Filter> = [];\n filterContainerStyles: any = {};\n appliedFilters: { [key: string]: Array<{ name: string; value: string }> } = {};\n @Output() filtersUpdated = new EventEmitter<{\n [key: string]: Array<{ name: string; value: string }>;\n }>();\n\n @ViewChild(\"filter\") filter: TableFilterComponent | any;\n @ViewChildren(\"colHeaderRef\") colHeaders: QueryList<ElementRef> | any;\n\n // Pagination related variables\n pages: Array<number> = [];\n tableLength: number;\n @Output() pageSelected = new EventEmitter<number>();\n\n @Input(\"tableConfig\") config: TableConfig | any;\n @Input() subTableconfig: TableConfig | any;\n @Input() tableDataLoading: boolean | any;\n @Input() expandedIndex: number | any;\n @Input() tableData: Array<Array<any>> = [];\n @Input() subTableData: Array<Array<any>> = [];\n @Input() subTableDataLoading: boolean | any;\n @ViewChild(\"table\") table: ElementRef | any;\n collapseColIndex: number = -1;\n previewLines: number = 0;\n rowCollapseConfigIndex: number = -1;\n expandedMap: Record<string, boolean> = {};\n\n // Sorting related properties\n currentSort: SortState | null = null;\n multiColumnSort: SortState[] = [];\n @Output() sortChange = new EventEmitter<SortState>();\n @Output() headerAction? = new EventEmitter<{ type: string; payload?: any }>();\n\n constructor(private renderer: Renderer2) {}\n\n // Function to handle row click\n selectRow(index: number) {\n if (this.hasCheckboxActions) return;\n this.activeRowIndex = [index]; // Set the selected index to the clicked row's index\n !!this.config.rowConfig.action && this.config.rowConfig.action(index);\n }\n\n ngOnInit(): void {\n this.hasCheckboxActions = this.config.colConfig?.some(col => col.type === \"actions\" && col.actionType === \"checkbox\");\n this.tableLength = !!this.tableData ? this.tableData.length : 0;\n this.initializeFilters();\n if (this.config.paginationConfig) {\n this.initializePagination();\n }\n if (this.config.canScrollHorizontally === undefined) {\n this.config.canScrollHorizontally = false;\n }\n document.addEventListener(\"click\", event => {\n if (this.filter) {\n let isCheckBoxClicked = true;\n let targetElement = event.target as HTMLSpanElement;\n if (targetElement.className === \"checkmark\") {\n isCheckBoxClicked = true;\n this.showFilter = true;\n }\n let isClickInsideElement = this.filter.container.nativeElement.contains(event.target);\n if (!isClickInsideElement && !isCheckBoxClicked) {\n this.toggleFilter(this.filterName);\n }\n }\n });\n\n // fetch collapseColIndex and previewLines if present\n this.rowCollapseConfigIndex = this.config?.colConfig?.findIndex(\n col => col.type === 'actions' && col.actionType === 'row-collapse'\n );\n if (this.rowCollapseConfigIndex !== -1) {\n this.collapseColIndex = this.config.colConfig[this.rowCollapseConfigIndex].collapseColumnIndex ?? null;\n this.collapseColIndex = this.config.colConfig[this.rowCollapseConfigIndex].collapseColumnIndex ?? null;\n this.previewLines = this.config.colConfig[this.rowCollapseConfigIndex].previewLines ?? null;\n this.buildExpandedMap();\n }\n }\n\n buildExpandedMap(): void{\n this.expandedMap = {};\n this.tableData.forEach((row, rowIndex) => {\n this.expandedMap[`${rowIndex}`] =\n row[this.rowCollapseConfigIndex];\n });\n }\n\n ngAfterViewInit() {\n if (this.config.paginationConfig) {\n let height = this.config.height;\n this.renderer.setStyle(this.table.nativeElement, \"height\", height - 56 + \"px\");\n }\n }\n ngOnChanges() {\n this.tableLength = this.tableData?.length ?? 0;\n if (this.config.activeRowIndex !== null) {\n this.activeRowIndex = Array.isArray(this.config.activeRowIndex) ? this.config.activeRowIndex : [this.config.activeRowIndex]\n }\n }\n\n // Filter related functions\n initializeFilters() {\n for (let colHeader of this.config?.colHeaderConfig) {\n if (colHeader.filters) {\n let filters = [];\n for (let filter of colHeader.filters) {\n if (filter.checked) {\n filters.push({\n name: filter.name,\n value: filter.value\n });\n }\n }\n if (filters.length > 0) this.appliedFilters[colHeader.data] = filters;\n }\n }\n }\n toggleFilter(filterName: string) {\n if (!this.showFilter) {\n this.filterName = filterName;\n this.showFilter = true;\n\n let offSet = 0;\n let colHeadersReversed = this.colHeaders.toArray().reverse();\n\n for (let header of colHeadersReversed) {\n if (header.nativeElement.innerText === filterName) break;\n offSet += header.nativeElement.offsetWidth;\n }\n this.filterContainerStyles = {\n top: \"44px\",\n right: offSet > 0 ? offSet - 116 + \"px\" : \"12px\"\n };\n } else {\n this.filterName = \"\";\n this.filterData = [];\n this.showFilter = false;\n }\n }\n updateAppliedFilters(appliedFilters: Array<{ name: string; value: string }>) {\n if (appliedFilters.length == 0) {\n delete this.appliedFilters[this.filterName];\n } else {\n this.appliedFilters[this.filterName] = appliedFilters;\n }\n this.filtersUpdated.emit({ ...this.appliedFilters });\n this.toggleFilter(this.filterName);\n }\n\n // Pagination related functions\n initializePagination() {\n if (this.config.paginationConfig) {\n let len = this.config.paginationConfig.noOfPages;\n if (len <= 7) {\n for (let i = 1; i <= len; i++) {\n this.pages.push(i);\n }\n } else {\n this.pages = [1, 2, 3, 4, 0, len];\n }\n }\n }\n updateSelectedPage(pageNumber: number) {\n // Guard clause to prevent out-of-range updates\n if (pageNumber < 1 || pageNumber > this.config.paginationConfig.noOfPages) return;\n\n if (this.config.colHeaderConfig?.some(col => col.type === \"checkbox\")) {\n this.selectAllCheckbox = false;\n }\n if (pageNumber < 1 || pageNumber > this.config.paginationConfig.noOfPages) return;\n this.config.paginationConfig.selectedPage = pageNumber;\n let len = this.config.paginationConfig.noOfPages;\n if (len > 7) {\n if (pageNumber - 2 <= 1) {\n this.pages = [1, 2, 3, 4, 0, len];\n } else if (pageNumber - 2 > 1 && pageNumber + 2 < len) {\n this.pages = [1, 0, pageNumber - 1, pageNumber, pageNumber + 1, 0, len];\n } else if (pageNumber + 2 >= len) {\n this.pages = [1, 0, len - 3, len - 2, len - 1, len];\n }\n }\n this.pageSelected.emit(this.config.paginationConfig?.selectedPage);\n }\n\n // Main container related functions\n getContainerHeight() {\n if (this.config?.height) return this.config.height;\n else return \"\";\n }\n getContainerWidth() {\n if (this.config?.width) return this.config.width;\n else return \"\";\n }\n\n // Column Headers related functions\n getColHeadersRowStyles() {\n const { colHeadersRowConfig } = this.config;\n const minHeight = colHeadersRowConfig?.height || \"44px\";\n const borderTop = colHeadersRowConfig?.style?.borderTop || \"\";\n const borderBottom = colHeadersRowConfig?.style?.borderBottom || \"1px solid #E0E0E0\";\n const backgroundColor = colHeadersRowConfig?.style?.backgroundColor || \"#FFFFFF\";\n const fontSize = colHeadersRowConfig?.style?.fontSize || \"14px\";\n return {\n \"min-height\": minHeight,\n \"border-top\": borderTop,\n \"border-bottom\": borderBottom,\n \"background-color\": backgroundColor,\n \"font-size\": fontSize\n };\n }\n\n onSortChange(sortState: SortState) {\n this.currentSort = sortState;\n if (this.config.multiColumnSort) {\n const index = this.multiColumnSort.findIndex(sort => sort.column === sortState.column);\n if (index !== -1) {\n if (sortState.direction === null) {\n this.multiColumnSort.splice(index, 1);\n } else {\n this.multiColumnSort[index] = sortState;\n }\n } else if (sortState.direction !== null) {\n this.multiColumnSort.push(sortState);\n }\n }\n this.sortChange.emit(sortState);\n }\n\n getActionsCellStyle(style: any): any {\n if (!style) return {};\n const { width, ...restStyle } = style;\n return restStyle;\n }\n\n onActionClick(event: any, rowIndex: number): void {\n if (event.actionType === 'checkbox') {\n if (event.value) {\n this.activeRowIndex.push(rowIndex);\n } else {\n this.activeRowIndex = this.activeRowIndex.filter(index => index !== rowIndex);\n }\n\n const actionInfo = this.findActionConfig('checkbox');\n if (actionInfo && this.tableData[rowIndex]) {\n const { index, config } = actionInfo;\n this.tableData[rowIndex][index] = event.value;\n const checkedItems = this.tableData.filter(row => row[index] === true);\n config.action?.(checkedItems);\n }\n\n } else if(event.actionType === 'row-collapse'){\n const rowCollapse = this.findActionConfig('row-collapse');\n if (rowCollapse && this.tableData[rowIndex]) {\n this.tableData[rowIndex][rowCollapse.index] = event.value;\n rowCollapse.config.action?.(this.tableData);\n this.buildExpandedMap();\n }\n }\n }\n\n findActionConfig(actionType: string): { index: number, config: ColConfig } | null {\n for (let i = 0; i < this.config.colConfig.length; i++) {\n const col = this.config.colConfig[i];\n if (col.type === 'actions' && col.actionType === actionType) {\n return { index: i, config: col };\n }\n }\n return null;\n }\n \n\n isRowDisabled(row: any): boolean {\n return typeof this.config.rowConfig.disableRow === \"function\" ? this.config.rowConfig.disableRow(row) : false;\n }\n\n toggleCheckbox() {\n this.selectAllCheckbox = !this.selectAllCheckbox;\n const checkboxColIndex = this.config.colConfig.findIndex(col => col.type === 'actions' && col.actionType === 'checkbox');\n if (checkboxColIndex !== -1) {\n this.tableData = this.tableData.map((row: any[]) => {\n const updatedRow = [...row];\n const currentCheckbox = updatedRow[checkboxColIndex];\n const isDisabled = this.isRowDisabled(row);\n if (!isDisabled) {\n updatedRow[checkboxColIndex] = {\n ...currentCheckbox,\n value: this.selectAllCheckbox\n };\n }\n return updatedRow;\n });\n this.headerAction?.emit({\n type: \"checkboxToggle\",\n payload: this.tableData\n });\n }\n }\n}\n\nexport interface TableConfig {\n height: string | \"100%\";\n width: string | \"100%\";\n paginationConfig?: PaginationConfig | undefined | null;\n colHeadersRowConfig: RowConfig | undefined | null;\n rowConfig: RowConfig | undefined | null;\n colHeaderConfig: Array<ColHeaderConfig>;\n colConfig: Array<ColConfig>;\n canExpand?: boolean;\n canScrollHorizontally?: boolean;\n cellHover?: boolean;\n activeRowIndex?: number | number[];\n multiColumnSort?: boolean;\n}\nexport interface PaginationConfig {\n noOfPages: number;\n rowsPerPage: number;\n totalNoOfRows: number;\n selectedPage?: number;\n disablePageJumping?: boolean;\n}\nexport interface RowConfig {\n height?: string | undefined | null;\n style?: {};\n action?: any;\n disableRow?: (data: any) => boolean;\n}\nexport interface ColHeaderConfig {\n type: \"text\" | \"number\" | \"custom\" | \"checkbox\";\n data: any;\n componentRef?: any;\n filters?: Array<Filter> | null;\n style?: {};\n action?: any;\n isSortable?: boolean;\n sortAscIcon?: string;\n sortDescIcon?: string;\n}\nexport interface ColConfig {\n type: \"text\" | \"number\" | \"custom\" | \"actions\";\n componentRef?: any;\n style?: {};\n action?: any;\n actionItems?: ActionItem[];\n actionType?: \"inline\" | \"dropdown\" | \"checkbox\" | \"row-collapse\"; // inline for individual icons, dropdown for menu\n disable?: (rowData: any) => boolean;\n collapseColumnIndex?: number;\n previewLines?: number;\n}\nexport interface ActionItem {\n label: string;\n value: string;\n icon?: string;\n disable?: (data: any) => boolean;\n action?: (data: any) => void;\n children?: ActionItem[];\n}\nexport interface InternalActionItem extends ActionItem {\n showSubmenu?: boolean;\n}\n","import { ComponentFactoryResolver, Directive, Input, ViewContainerRef } from \"@angular/core\";\n\n@Directive({\n selector: \"[customTableCell]\"\n})\nexport class CustomTableCellDirective {\n private ref: any;\n private component: any;\n private cellData: any;\n\n @Input() set customComponent(value: any) {\n this.component = value;\n this.createComponent();\n }\n @Input() set data(value: any) {\n this.cellData = value;\n if (this.ref) {\n this.ref.instance.data = this.cellData;\n }\n }\n\n constructor(private viewContainerRef: ViewContainerRef, private componentFactoryResolver: ComponentFactoryResolver) {}\n\n createComponent() {\n if (this.component) {\n const cmpFactoryResolver = this.componentFactoryResolver.resolveComponentFactory(this.component);\n this.viewContainerRef.clear();\n this.ref = this.viewContainerRef.createComponent(cmpFactoryResolver);\n this.setData();\n }\n }\n setData() {\n this.ref.instance.data = this.cellData;\n }\n}\n","<div\n id=\"main-container\"\n [ngStyle]=\"{\n height: getContainerHeight(),\n width: getContainerWidth()\n }\"\n>\n <div id=\"table-container\" #table>\n <div\n id=\"col-headers-container\"\n *ngIf=\"!!config.showHeader\"\n [ngStyle]=\"{\n height: getColHeadersRowHeight(),\n 'border-top': getColHeadersRowBorderTop(),\n 'border-bottom': getColHeadersRowBorderBottom()\n }\"\n >\n <div\n class=\"col-header\"\n (click)=\"colHeader?.action ? colHeader?.action(colHeader) : null\"\n *ngFor=\"let colHeader of config?.colHeaderConfig\"\n [style]=\"colHeader?.style\"\n [ngStyle]=\"{\n width: colHeader?.style?.width || '',\n cursor: colHeader.action ? 'pointer' : 'default',\n 'justify-content': colHeader?.style?.justifyContent\n ? colHeader?.style?.justifyContent\n : colHeader.type === 'number'\n ? 'flex-end'\n : 'space-between'\n }\"\n >\n <p *ngIf=\"colHeader?.type !== 'custom'\" class=\"col-header-text\">\n {{ colHeader?.data || \" \" }}\n </p>\n <ng-template\n *ngIf=\"colHeader?.type === 'custom'\"\n customTableCell\n [customComponent]=\"colHeader?.componentRef\"\n [data]=\"colHeader.data\"\n ></ng-template>\n </div>\n </div>\n <div>\n <cdk-virtual-scroll-viewport\n [minBufferPx]=\"config.dataContainerMaxHeight || '400'\"\n [maxBufferPx]=\"config.dataContainerMaxHeight + 200 || '600'\"\n [style.overflow]=\"'overlay'\"\n [style.height]=\"config.dataContainerMaxHeight || '400px'\"\n itemSize=\"50\"\n id=\"data-container\"\n >\n <div\n class=\"row-wrapper\"\n *cdkVirtualFor=\"let row of tableData; let i = index\"\n [ngStyle]=\"{\n backgroundColor: i % 2 === 0 ? '#FAFAFA' : null\n }\"\n >\n <div class=\"t-row\">\n <div\n (click)=\"config?.colConfig[i]?.action ? config?.colConfig[i]?.action(col) : null\"\n *ngFor=\"let col of row; let i = index\"\n [ngStyle]=\"{\n width: config?.colConfig[i]?.style?.width || config?.colHeaderConfig[i]?.style?.width || ''\n }\"\n class=\"t-col-container\"\n >\n <div\n class=\"t-col\"\n [style]=\"config.colConfig[i]?.style\"\n [ngStyle]=\"{\n width: '100%',\n cursor: config.colConfig[i].action ? 'pointer' : 'default',\n 'justify-content': config.colConfig[i]?.style?.justifyContent\n ? config.colConfig[i]?.style?.justifyContent\n : config.colConfig[i].type === 'number'\n ? 'flex-end'\n : 'space-between'\n }\"\n >\n <p\n *ngIf=\"config.colConfig[i].type !== 'custom'\"\n [ngStyle]=\"{\n color: config?.colConfig[i]?.style?.color ? config?.colConfig[i]?.style?.color : ''\n }\"\n class=\"t-col-text\"\n >\n {{ col }}\n </p>\n <ng-template\n *ngIf=\"config.colConfig[i].type === 'custom'\"\n [customComponent]=\"config.colConfig[i].componentRef\"\n [data]=\"col\"\n customTableCell\n ></ng-template>\n </div>\n </div>\n </div>\n </div>\n </cdk-virtual-scroll-viewport>\n </div>\n </div>\n</div>\n","import { AfterViewInit, Component, ElementRef, Input, OnInit, Renderer2, ViewChild } from \"@angular/core\";\n\n@Component({\n selector: \"sub-table\",\n templateUrl: \"sub-table.component.html\",\n styleUrls: [\"sub-table.component.css\"]\n})\nexport class SubTableComponent implements OnInit, AfterViewInit {\n selectedPage = 1;\n pages: Array<number> = [];\n\n @Input() config: SubTableConfig | any;\n @Input() tableData: Array<Array<any>> = [];\n @ViewChild(\"table\") table: ElementRef | any;\n constructor(private renderer: Renderer2) {}\n\n ngOnInit() {}\n\n ngAfterViewInit() {\n if (this.config.paginationConfig) {\n let height = this.table.nativeElement.offsetHeight;\n this.renderer.setStyle(this.table.nativeElement, \"height\", height - 56 + \"px\");\n }\n }\n\n // Main container related functions\n getContainerHeight() {\n if (this.config.height) return this.config.height;\n else return \"\";\n }\n getContainerWidth() {\n if (this.config.width) return this.config.width;\n else return \"\";\n }\n\n // Column Headers related functions\n getColHeadersRowHeight() {\n if (this.config.colHeadersRowConfig && this.config.colHeadersRowConfig.height) {\n return this.config.colHeadersRowConfig.height;\n } else return \"44px\";\n }\n getColHeadersRowBorderTop() {\n if (this.config.colHeadersRowConfig && this.config.colHeadersRowConfig.style?.borderTop) {\n return this.config.colHeadersRowConfig.style?.borderTop;\n } else return \"\";\n }\n getColHeadersRowBorderBottom() {\n if (this.config.colHeadersRowConfig && this.config.colHeadersRowConfig.style?.borderBottom) {\n return this.config.colHeadersRowConfig.style?.borderBottom;\n } else return \"1px solid #E0E0E0\";\n }\n}\n\nexport interface SubTableConfig {\n height: string | \"100%\";\n width: string | \"100%\";\n dataContainerMaxHeight: string | \"400px\";\n showHeader?: boolean | undefined;\n rowConfig: SubTableRowConfig | undefined | null;\n colHeaderConfig?: Array<SubTableColHeaderConfig>;\n colConfig: Array<SubTableColConfig>;\n}\n\nexport interface SubTableRowConfig {\n height?: string | undefined | null;\n style?: {};\n}\nexport interface SubTableColHeaderConfig {\n type: \"text\" | \"number\" | \"custom\";\n data: any;\n componentRef?: any;\n style?: {};\n action?: any;\n}\nexport interface SubTableColConfig {\n type: \"text\" | \"number\" | \"custom\";\n componentRef?: any;\n style?: {};\n action?: any;\n}\n","<div id=\"main-container\" #mainContainer [ngStyle]=\"containerStyles\">\n <div id=\"search-bar-container\">\n <input (keyup)=\"updateSearchValue($event)\" type=\"text\" placeholder=\"Search\" />\n <svg id=\"search-icon\" width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M1.21496 8.14563C1.21496 4.3179 4.33709 1.21165 8.19249 1.21165C12.0479 1.21165 15.17 4.3179 15.17 8.14563C15.17 9.69308 14.6598 11.1226 13.797 12.2767L12.3684 13.7013C11.2043 14.5668 9.75891 15.0796 8.19249 15.0796C4.33709 15.0796 1.21496 11.9734 1.21496 8.14563ZM12.9419 14.7835C11.602 15.7329 9.96259 16.2913 8.19249 16.2913C3.66965 16.2913 -0.00012207 12.6461 -0.00012207 8.14563C-0.00012207 3.64512 3.66965 0 8.19249 0C12.7153 0 16.3851 3.64512 16.3851 8.14563C16.3851 9.93713 15.8036 11.5931 14.8183 12.9375L16.836 14.4048C17.6704 14.912 18.7553 15.6543 17.2453 17.215C15.7352 18.7756 15.0098 17.6663 14.499 16.8364L12.9419 14.7835Z\"\n fill=\"#6A737D\"\n />\n </svg>\n </div>\n <div id=\"filters-main-container\">\n <div class=\"filters-sub-container\">\n <div *ngFor=\"let filter of getCheckedFilters()\">\n <div class=\"filter\">\n <mis-checkbox [checked]=\"true\" [name]=\"filter.value\" (valueChange)=\"updateFilter($event)\"></mis-checkbox>\n <span class=\"filter-text\">{{ filter.name }}</span>\n </div>\n </div>\n </div>\n <div class=\"separator\" [ngStyle]=\"{ 'margin': '16px 0px' }\" *ngIf=\"getCheckedFilters().length && getCheckedFilters().length < filtersData.length\"></div>\n <div class=\"filters-sub-container\">\n <div *ngFor=\"let filter of getFiltersBasedOnSearchValue()\">\n <div class=\"filter\" *ngIf=\"!filter.checked\">\n <mis-checkbox [checked]=\"false\" [name]=\"filter.value\" (valueChange)=\"updateFilter($event)\"></mis-checkbox>\n <span class=\"filter-text\">{{ filter.name }}</span>\n </div>\n </div>\n <div id=\"no-results-container\" *ngIf=\"getFiltersBasedOnSearchValue().length < 1\">\n <span class=\"filter-text\">No matches found</span>\n </div>\n </div>\n <div class=\"separator\" [ngStyle]=\"{ 'margin': '16px 0px' }\"></div>\n <div id=\"buttons-container\">\n <button id=\"reset-btn\" [ngStyle]=\"{ 'margin-right': '8px' }\" (click)=\"resetFilters()\">Reset</button>\n <button id=\"apply-btn\" (click)=\"applyFilters()\">Apply</button>\n </div>\n </div>\n</div>\n","import { Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild } from \"@angular/core\";\n\n@Component({\n selector: \"mis-table-filter\",\n templateUrl: \"filter.component.html\",\n styleUrls: [\"filter.component.css\"]\n})\nexport class TableFilterComponent implements OnInit {\n @Input() filtersData: Array<Filter> = [];\n @Input() containerStyles: any = {};\n\n @Output() filtersApplied = new EventEmitter<any>();\n\n @ViewChild(\"mainContainer\") container: ElementRef | undefined;\n\n filtersMap: any = {};\n searchValue: string = \"\";\n\n constructor() {}\n\n ngOnInit(): void {\n this.filtersData.forEach(filter => {\n this.filtersMap[filter.value] = filter;\n });\n }\n resetFilters() {\n this.filtersData.forEach(filter => {\n this.filtersMap[filter.value].checked = false;\n });\n this.filtersApplied.emit([]);\n }\n applyFilters() {\n let list = Object.values(this.filtersMap)\n .filter((filter: Filter | any) => filter.checked)\n .map((filter: Filter | any) => {\n return {\n name: filter.name,\n value: filter.value\n };\n });\n this.filtersApplied.emit(list);\n }\n updateSearchValue(event: any) {\n this.searchValue = event.target.value;\n }\n updateFilter(data: any) {\n if (this.filtersMap[data.name]) {\n this.filtersMap[data.name].checked = !this.filtersMap[data.name].checked;\n }\n }\n getFiltersBasedOnSearchValue(): Filter[] | any {\n let list = Object.values(this.filtersMap);\n list = list.filter((filter: Filter | any) => {\n return filter.name.match(new RegExp(this.searchValue, \"i\"));\n });\n return list.sort(this.mySort);\n }\n getCheckedFilters(): Filter[] | any {\n let list = Object.values(this.filtersMap);\n list = list.filter((filter: Filter | any) => filter.checked).sort(this.mySort);\n return list;\n }\n mySort = (a: Filter | any, b: Filter | any) => {\n if (a.name < b.name) return -1;\n else if (b.name < a.name) return 1;\n else return 0;\n };\n}\nexport interface Filter {\n name: string;\n value: string;\n checked: boolean;\n}\n","import {\n Directive,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n Renderer2,\n SimpleChanges,\n input,\n output,\n signal,\n} from '@angular/core';\n\nexport interface SortState {\n column: string;\n direction: 'ASC' | 'DESC' | '';\n}\n\nexport interface SortColumn {\n data: string;\n sortAscIcon?: string;\n sortDescIcon?: string;\n}\n\n@Directive({\n selector: '[appSortIcons]',\n})\nexport class SortIconsDirective implements OnInit, OnChanges {\n // Convert inputs to signals\n column = input<SortColumn>();\n activeSort = input<SortState>();\n activeSorts = input<SortState[]>();\n multiColumnSort = input<boolean>(false);\n \n // Convert output to signal\n sortChange = output<SortState>();\n multiSortChange = output<SortState[]>();\n\n // Internal state as signals\n currentDirection = signal<'ASC' | 'DESC' | ''>('');\n\n // Assets\n private upIcon!: HTMLImageElement;\n private downIcon!: HTMLImageElement;\n private sortOrderElement?: HTMLSpanElement;\n\n constructor(private el: ElementRef, private renderer: Renderer2) {}\n\n ngOnInit() {\n \n // Create a container for the icons\n const container = this.renderer.createElement('div');\n this.renderer?.setStyle(container, 'display', 'inline-flex');\n this.renderer?.setStyle(container, 'align-items', 'center');\n\n const iconContainer = this.renderer.createElement('div');\n this.renderer?.setStyle(iconContainer, 'display', 'inline-flex');\n this.renderer?.setStyle(iconContainer, 'flex-direction', 'column');\n this.renderer?.setStyle(iconContainer, 'align-items', 'center');\n\n this.upIcon = this.renderer.createElement('img');\n this.renderer?.setAttribute(this.upIcon, 'src', this.column()?.sortAscIcon);\n this.renderer?.setStyle(this.upIcon, 'opacity', '0.5');\n this.renderer?.setStyle(this.upIcon, 'transition', 'opacity 0.3s ease');\n this.renderer?.setStyle(this.upIcon, 'width', '9px');\n this.renderer?.setStyle(this.upIcon, 'cursor', 'pointer');\n this.renderer?.listen(this.upIcon, 'click', () => this.setSortDirection('ASC'));\n\n this.downIcon = this.renderer.createElement('img');\n this.renderer?.setAttribute(this.downIcon, 'src', this.column()?.sortDescIcon);\n this.renderer?.setStyle(this.downIcon, 'opacity', '0.5');\n this.renderer?.setStyle(this.downIcon, 'transition', 'opacity 0.3s ease');\n this.renderer?.setStyle(this.downIcon, 'width', '9px');\n this.renderer?.setStyle(this.downIcon, 'cursor', 'pointer');\n this.renderer?.listen(this.downIcon, 'click', () => this.setSortDirection('DESC'));\n\n this.renderer?.appendChild(iconContainer, this.upIcon);\n this.renderer?.appendChild(iconContainer, this.downIcon);\n this.renderer?.appendChild(container, iconContainer);\n\n if (this.multiColumnSort()) {\n this.sortOrderElement = this.renderer.createElement('span');\n this.renderer?.setStyle(this.sortOrderElement, 'font-size', '12px');\n this.renderer?.setStyle(this.sortOrderElement, 'font-weight', 'bold');\n this.renderer?.setStyle(this.sortOrderElement, 'color', '#000');\n this.renderer?.appendChild(container, this.sortOrderElement);\n }\n\n this.renderer?.appendChild(this.el.nativeElement, container);\n this.updateIconStyles();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['activeSort'] || changes['activeSorts']) {\n this.updateIconStyles();\n }\n }\n\n private setSortDirection(direction: 'ASC' | 'DESC'): void {\n if (this.multiColumnSort()) {\n this.handleMultiColumnSort(direction);\n } else {\n this.handleSingleColumnSort(direction);\n }\n }\n\n private handleSingleColumnSort(direction: 'ASC' | 'DESC'): void {\n if (this.currentDirection() === direction) {\n this.currentDirection.set(''); // Reset sorting if the same direction is clicked\n } else {\n this.currentDirection.set(direction);\n }\n\n this.sortChange.emit({ \n column: this.column()?.data || '', \n direction: this.currentDirection()\n });\n this.updateIconStyles();\n }\n\n private handleMultiColumnSort(direction: 'ASC' | 'DESC'): void {\n const existingSortIndex = this.activeSorts().findIndex(sort => sort.column === this.column()?.data);\n \n if (existingSortIndex !== -1) {\n if (this.activeSorts()[existingSortIndex].direction !== direction) {\n this.activeSorts()[existingSortIndex].direction = direction;\n } else {\n return;\n }\n } else {\n this.activeSorts().push({ \n column: this.column()?.data || '', \n direction\n });\n }\n this.multiSortChange.emit([...this.activeSorts()]);\n this.updateIconStyles();\n }\n\n private updateIconStyles(): void {\n if (this.multiColumnSort()) {\n this.updateMultiColumnIconStyles();\n } else {\n this.updateSingleColumnIconStyles();\n }\n }\n\n private updateSingleColumnIconStyles(): void {\n const isActiveColumn = this.activeSort()?.column === this.column()?.data;\n\n setTimeout(() => {\n this.renderer?.setStyle(\n this.upIcon,\n 'opacity',\n isActiveColumn && this.currentDirection() === 'ASC' ? '1' : '0.5'\n );\n this.renderer?.setStyle(\n this.downIcon,\n 'opacity',\n isActiveColumn && this.currentDirection() === 'DESC' ? '1' : '0.5'\n );\n }, 0);\n }\n\n private updateMultiColumnIconStyles(): void {\n const columnSort = this.activeSorts().find(sort => sort.column === this.column()?.data);\n \n setTimeout(() => {\n this.renderer?.setStyle(\n this.upIcon,\n 'opacity',\n columnSort?.direction === 'ASC' ? '1' : '0.5'\n );\n this.renderer?.setStyle(\n this.downIcon,\n 'opacity',\n columnSort?.direction === 'DESC' ? '1' : '0.5'\n );\n\n if (this.sortOrderElement) {\n const sortIndex = this.activeSorts().findIndex(sort => sort.column === this.column()?.data);\n if (sortIndex !== -1) {\n this.renderer?.setProperty(this.sortOrderElement, 'textContent', (sortIndex + 1).toString());\n } else {\n this.renderer?.setProperty(this.sortOrderElement, 'textContent', '');\n }\n }\n }, 0);\n }\n}","<div class=\"actions-cell-container\" [ngStyle]=\"containerStyle\">\n <!-- Inline Actions -->\n <div *ngIf=\"actionType === 'inline'\" class=\"inline-actions\">\n <div\n *ngFor=\"let item of actionItems; trackBy: trackByAction\"\n class=\"action-item\"\n [ngClass]=\"{ disabled: isDisabled(item) }\"\n (click)=\"onActionClick(item, $event)\"\n >\n <img [src]=\"item.icon\" [alt]=\"item.label\" class=\"action-icon-svg\" />\n </div>\n </div>\n\n <!-- Dropdown Actions -->\n <div *ngIf=\"actionType === 'dropdown'\" class=\"dropdown-actions\">\n <div #dropdownTrigger class=\"dropdown-trigger\" (click)=\"toggleDropdown($event)\" title=\"More actions\">\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\n <circle cx=\"10\" cy=\"4\" r=\"2\" fill=\"#333\" />\n <circle cx=\"10\" cy=\"10\" r=\"2\" fill=\"#333\" />\n <circle cx=\"10\" cy=\"16\" r=\"2\" fill=\"#333\" />\n </svg>\n </div>\n </div>\n\n <!-- Checkbox Actions -->\n <div *ngIf=\"actionType === 'checkbox'\" class=\"checkbox-actions\">\n <mis-checkbox [checked]=\"currentState\" (valueChange)=\"onClick($event)\" [disabled]=\"disable ? disable(currentState) : false\"> </mis-checkbox>\n </div>\n</div>\n\n<!-- Collapse / Expand Actions -->\n<div *ngIf=\"actionType === 'row-collapse'\" class=\"collapse-toggle-action\">\n <div class=\"collapse-icon\" (click)=\"onClick($event)\" [title]=\"currentState ? 'Expand' : 'Collapse'\">\n <svg *ngIf=\"currentState\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\">\n <path d=\"M7 10l5 5 5-5\" stroke=\"#0D1321\" stroke-width=\"2\" fill=\"none\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n </svg>\n <svg *ngIf=\"!currentState\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\">\n <path d=\"M7 14l5-5 5 5\" stroke=\"#0D1321\" stroke-width=\"2\" fill=\"none\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n </svg>\n </div>\n</div>\n\n<!-- CDK Overlay Template for Dropdown Menu -->\n<ng-template #dropdownMenu>\n <div class=\"dropdown-menu-overlay\">\n <div\n class=\"dropdown-menu-item\"\n *ngFor=\"let item of actionItems\"\n (click)=\"onDropdownItemClick(item, $event)\"\n [ngClass]=\"{ disabled: isDisabled(item) }\"\n >\n <ng-container *ngIf=\"item.children?.length; else noChildren\">\n <span class=\"dropdown-icon\" *ngIf=\"item.icon\">\n <img [src]=\"item.icon\" />\n </span>\n <span class=\"dropdown-label\">{{ item.label }}</span>\n <span class=\"submenu-arrow\">\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\">\n <path d=\"M9 6L15 12L9 18\" stroke=\"#0D1321\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n </svg>\n </span>\n\n <!-- DYNAMIC SUBMENU -->\n <div class=\"dropdown-submenu\" *ngIf=\"item.showSubmenu\">\n <div\n class=\"dropdown-menu-item\"\n *ngFor=\"let child of item.children\"\n [ngClass]=\"{ disabled: isDisabled(child) }\"\n (click)=\"onDropdownItemClick(child, $event)\"\n >\n <span class=\"dropdown-icon\" *ngIf=\"child.icon\">\n <img [src]=\"child.icon\" />\n </span>\n <span class=\"dropdown-label\">{{ child.label }}</span>\n </div>\n </div>\n </ng-container>\n\n <ng-template #noChildren>\n <span class=\"dropdown-icon\" *ngIf=\"item.icon\">\n <img [src]=\"item.icon\" />\n </span>\n <span class=\"dropdown-label\">{{ item.label }}</span>\n </ng-template>\n </div>\n </div>\n</ng-template>\n","import { Component, EventEmitter, Input, OnInit, Output, HostListener, ElementRef, ViewChild, TemplateRef, ViewContainerRef, OnDestroy, SimpleChanges, AfterViewInit } from \"@angular/core\";\nimport { ConnectionPositionPair, Overlay, OverlayConfig, OverlayRef } from \"@angular/cdk/overlay\";\nimport { TemplatePortal } from \"@angular/cdk/portal\";\nimport { ActionItem } from \"../table.component\";\n\n@Component({\n selector: \"mis-actions-cell\",\n templateUrl: \"./actions-cell.component.html\",\n styleUrl: \"./actions-cell.component.css\"\n})\nexport class ActionsCellComponent implements OnInit, OnDestroy {\n @Input() cellData;\n @Input() config;\n\n @Output() actionClick = new EventEmitter<{ item?: ActionItem; data?: any, actionType?: string, value?: any }>();\n\n @ViewChild('dropdownMenu', { static: false }) dropdownMenu: TemplateRef<any>;\n @ViewChild('dropdownTrigger', { static: false }) dropdownTrigger: ElementRef;\n\n isDropdownOpen: boolean = false;\n actionItems: ActionItem[] = [];\n actionType: \"inline\" | \"dropdown\" | \"checkbox\" | \"row-collapse\" = \"inline\";\n action?: (data: any) => void;\n data: any;\n disable: (data: any) => boolean;\n currentState: boolean = false;\n private _style: any = {};\n containerStyle: any = {};\n private overlayRef: OverlayRef | null = null;\n\n constructor(\n private overlay: Overlay,\n private viewContainerRef: ViewContainerRef\n ) {}\n\n ngOnInit(): void {\n if (this.config) {\n this.actionItems = this.config.actionItems;\n this.actionType = this.config.actionType;\n this._style = this.config.style;\n this.action = this.config.action;\n this.disable = this.config.disable;\n this.processStyle();\n }\n \n if (this.cellData !== null) {\n const defaultStates: Record<string, boolean> = {\n 'checkbox': false,\n 'row-collapse': true,\n };\n if (this.actionType in defaultStates) {\n this.currentState = typeof this.cellData === 'boolean' ? this.cellData : defaultStates[this.actionType];\n } else {\n this.data = this.cellData;\n }\n }\n }\n\n ngOnDestroy(): void {\n this.closeDropdown();\n }\n\n private processStyle(): void {\n // Remove width from style to avoid conflicts with table column width\n const { width, ...restStyle } = this._style;\n this.containerStyle = restStyle;\n }\n\n onActionClick(item: ActionItem, event: Event) {\n event.stopPropagation();\n\n // Check permissions before executing action\n if (this.isDisabled(item)) return;\n\n // Execute action only if permitted\n if (item.action) {\n item.action(this.data);\n }\n\n this.actionClick.emit({ item });\n }\n\n trackByAction(index: number, item: ActionItem): string {\n return item.value;\n }\n\n isSvgFile(iconPath: string): boolean {\n if (!iconPath) return false;\n return iconPath.toLowerCase().includes(\".svg\") || iconPath.toLowerCase().includes(\"assets/icons/\");\n }\n\n @HostListener(\"document:click\")\n onDocumentClick() {\n if (this.isDropdownOpen) {\n this.closeDropdown();\n }\n }\n\n toggleDropdown(event: Event) {\n event.stopPropagation();\n \n if (this.isDropdownOpen) {\n this.closeDropdown();\n } else {\n this.openDropdown();\n }\n }\n\n private openDropdown(): void {\n if (!this.dropdownTrigger || !this.dropdownMenu) return;\n\n // Close all submenus when opening main menu\n this.actionItems.forEach((item: any) => (item.showSubmenu = false));\n\n const positions = this.getDropdownPositions();\n \n const overlayConfig = new OverlayConfig({\n hasBackdrop: true,\n backdropClass: 'cdk-overlay-transparent-backdrop',\n positionStrategy: this.overlay\n .position()\n .flexibleConnectedTo(this.dropdownTrigger)\n .withPositions(positions)\n .withPush(true),\n scrollStrategy: this.overlay.scrollStrategies.reposition()\n });\n\n this.overlayRef = this.overlay.create(overlayConfig);\n const portal = new TemplatePortal(this.dropdownMenu, this.viewContainerRef);\n this.overlayRef.attach(portal);\n\n this.overlayRef.backdropClick().subscribe(() => {\n this.closeDropdown();\n });\n\n this.isDropdownOpen = true;\n }\n\n private closeDropdown(): void {\n if (this.overlayRef) {\n this.overlayRef.dispose();\n this.overlayRef = null;\n }\n this.isDropdownOpen = false;\n }\n\n private getDropdownPositions(): ConnectionPositionPair[] {\n // Use CDK Overlay's flexible positioning - it will automatically choose the best position\n return [\n // Primary position: below and aligned to end (right)\n new ConnectionPositionPair(\n { originX: 'end', originY: 'bottom' },\n { overlayX: 'end', overlayY: 'top' },\n 0, 4\n ),\n // Fallback position: above and aligned to end (right)\n new ConnectionPositionPair(\n { originX: 'end', originY: 'top' },\n { overlayX: 'end', overlayY: 'bottom' },\n 0, -4\n ),\n // Fallback position: below and aligned to start (left)\n new ConnectionPositionPair(\n { originX: 'start', originY: 'bottom' },\n { overlayX: 'start', overlayY: 'top' },\n 0, 4\n ),\n // Fallback position: above and aligned to start (left)\n new ConnectionPositionPair(\n { originX: 'start', originY: 'top' },\n { overlayX: 'start', overlayY: 'bottom' },\n 0, -4\n )\n ];\n }\n\n onDropdownItemClick(item: any, event: Event) {\n event.stopPropagation();\n\n if (this.isDisabled(item)) return;\n\n if (item?.children?.length) {\n // Toggle submenu\n item.showSubmenu = !item.showSubmenu;\n // Optionally close other submenus\n this.actionItems.forEach((i: any) => {\n if (i !== item) i.showSubmenu = false;\n });\n } else {\n // Handle action\n if (item.action) item.action(this.data);\n this.actionClick.emit({ item, data: this.data });\n this.closeDropdown(); // Only close if action was executed\n }\n }\n\n onClick(event: any): void{\n this.currentState = !this.currentState;\n this.actionClick.emit({ \n actionType: this.actionType,\n value: this.currentState\n });\n }\n\n isDisabled(item: ActionItem): boolean {\n if (typeof item.disable === \"function\") {\n return item.disable(this.data);\n }\n return false;\n }\n \n}\n","import { ModuleWithProviders, NgModule } from \"@angular/core\";\nimport { TableComponent } from \"./table.component\";\nimport { CustomTableCellDirective } from \"./custom-table-cell.directive\";\nimport { SubTableComponent } from \"./sub-table/sub-table.component\";\nimport { CommonModule } from \"@angular/common\";\nimport { TableFilterComponent } from \"./filter/filter.component\";\nimport { CheckboxModule } from \"mis-crystal-design-system/checkbox\";\nimport { ScrollingModule } from \"@angular/cdk/scrolling\";\nimport { OverlayModule } from \"@angular/cdk/overlay\";\nimport { PortalModule } from \"@angular/cdk/portal\";\nimport { SortIconsDirective } from \"./sort-icons.directive\";\nimport { ActionsCellComponent } from \"./actions-cell/actions-cell.component\";\n\n@NgModule({\n declarations: [\n TableComponent, \n SubTableComponent, \n TableFilterComponent, \n CustomTableCellDirective,\n SortIconsDirective,\n ActionsCellComponent\n ],\n imports: [CommonModule, CheckboxModule, ScrollingModule, OverlayModule, PortalModule],\n exports: [\n TableComponent, \n SubTableComponent, \n TableFilterComponent, \n CustomTableCellDirective,\n SortIconsDirective,\n ActionsCellComponent\n ]\n})\nexport class TableModule {\n static forRoot(): ModuleWithProviders<TableModule> {\n return { ngModule: TableModule, providers: [] };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["_c5","_c7","_c3","_c4","_c2","_c1","i1"],"mappings":"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"}
|