{"version":3,"file":"ngx-mui-kit-components-muk-table.mjs","sources":["../../../projects/ngx-mui-kit/components/muk-table/enums/column.enum.ts","../../../projects/ngx-mui-kit/components/muk-table/pipes/map-value.pipe.ts","../../../projects/ngx-mui-kit/components/muk-table/src/muk-table.component.ts","../../../projects/ngx-mui-kit/components/muk-table/src/muk-table.component.html","../../../projects/ngx-mui-kit/components/muk-table/ngx-mui-kit-components-muk-table.ts"],"sourcesContent":["export enum COLUMN {\r\n  'text',\r\n  'image',\r\n  'date',\r\n  'number',\r\n  'boolean',\r\n  \"content\",\r\n  'actions',\r\n  'dots_actions'\r\n}\r\n\r\nexport enum ACTIONS_STYLE {\r\n  Flat,\r\n  Dots\r\n}","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n  name: 'mapValue',\r\n  standalone: true,\r\n})\r\nexport class MapValuePipe implements PipeTransform {\r\n\r\n  transform(obj: any, key: string, withoutComma?:boolean): any {\r\n    return withoutComma ? this.objToDotNotation(obj, key) : this.objToDotNotation(obj, key)?.toLocaleString();\r\n  }\r\n\r\n  objToDotNotation(obj: Record<string, any>, path?: string): any {\r\n    const keys = path?.split('.');\r\n    return keys?.reduce(\r\n      (prev: Record<string, any>, current) =>\r\n        prev ? prev[current] : undefined,\r\n      obj\r\n    );\r\n  }\r\n\r\n}\r\n","import {\r\n  Component,\r\n  ContentChild,\r\n  Input,\r\n  TemplateRef,\r\n  ViewChild,\r\n  inject,\r\n  OnChanges,\r\n  ElementRef,\r\n  EventEmitter,\r\n  Output,\r\n} from '@angular/core';\r\nimport {\r\n  MatPaginator,\r\n  MatPaginatorModule,\r\n  PageEvent,\r\n} from '@angular/material/paginator';\r\nimport { CommonModule, NgOptimizedImage } from '@angular/common';\r\nimport { MatTableDataSource, MatTableModule } from '@angular/material/table';\r\n\r\nimport { Router } from '@angular/router';\r\n\r\nimport { IColumn } from '../types/column.type';\r\nimport { MatSortModule } from '@angular/material/sort';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { ACTIONS_STYLE, COLUMN } from '../enums/column.enum';\r\nimport { MukPaginationComponent } from 'ngx-mui-kit/components/muk-pagination';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { NgxPaginationModule } from 'ngx-pagination';\r\nimport { MukNotFoundDataComponent } from 'ngx-mui-kit/components/muk-not-found-data';\r\nimport { MukLoadingSpinnerComponent } from 'ngx-mui-kit/components/muk-loading-spinner';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport {\r\n  IMenu,\r\n  IMenuData,\r\n  MukMenuComponent,\r\n} from 'ngx-mui-kit/components/muk-menu';\r\nimport { MapValuePipe } from '../pipes/map-value.pipe';\r\n\r\n@Component({\r\n  selector: 'lib-muk-table',\r\n  standalone: true,\r\n  imports: [\r\n    CommonModule,\r\n    MatTableModule,\r\n    MatPaginatorModule,\r\n    MatSortModule,\r\n    NgOptimizedImage,\r\n    MatIconModule,\r\n    MukPaginationComponent,\r\n    MatTooltipModule,\r\n    NgxPaginationModule,\r\n    MukNotFoundDataComponent,\r\n    MukLoadingSpinnerComponent,\r\n    MatMenuModule,\r\n    MukMenuComponent,\r\n    MapValuePipe,\r\n  ],\r\n  templateUrl: './muk-table.component.html',\r\n  styleUrls: ['./muk-table.component.scss'],\r\n})\r\nexport class MukTableComponent implements OnChanges {\r\n  @ContentChild('actions') public readonly actions!: TemplateRef<unknown>;\r\n  @ContentChild('rowActions') public readonly rowActions!: TemplateRef<{\r\n    item: unknown;\r\n  }>;\r\n  @ContentChild('searchCriteria')\r\n  public readonly searchCriteria: TemplateRef<unknown> | undefined;\r\n  /**\r\n   * List of Column Headers will be shown in the table\r\n   *\r\n   * @type {IColumn[]}\r\n   * @memberof MukTableComponent\r\n   */\r\n  @Input({ required: true, alias: 'columns' }) columns!: IColumn[];\r\n  /**\r\n   * DataSource from API that will be displayed in DataTable\r\n   *\r\n   * @type {unknown[]}\r\n   * @memberof MukTableComponent\r\n   */\r\n  @Input({ required: true, alias: 'data' }) ELEMENT_DATA: unknown[] = [];\r\n  @ContentChild('columnTemplate')\r\n  public readonly columnTemplate!: TemplateRef<{\r\n    item: unknown;\r\n  }>;\r\n  @ViewChild(MatPaginator) paginator!: MatPaginator;\r\n  @Input() public pageSize: number = 10;\r\n  @Input() public pageIndex: number = 0;\r\n  @Input() public tableID!: string;\r\n  @Input() spinnerColor: string = '#ff375e';\r\n  @Input({ required: true, alias: 'length' }) length!: number;\r\n  @Input() hasNext: boolean = false;\r\n  @Input() hasPrevious: boolean = false;\r\n  @Input() isLoading: boolean = false;\r\n  currentPage: number = 0;\r\n  public dataSource!: any;\r\n  protected readonly PAGE_SIZE_OPTIONS: number[] = [10, 25, 50, 100];\r\n  protected readonly COLUMN = COLUMN;\r\n  protected readonly ActionsStyle = ACTIONS_STYLE;\r\n  private readonly _router: Router = inject(Router);\r\n  @Input() content!: Record<string, TemplateRef<any>>;\r\n  @Input() menuList: IMenu[] = [];\r\n  @Output() paginationChange = new EventEmitter();\r\n  @Output() takeAction = new EventEmitter();\r\n\r\n  @Input() isShowPagination: boolean = true;\r\n  menuData!: IMenuData;\r\n  ngOnChanges(): void {\r\n    this.menuData = {\r\n      optionsList: this.menuList,\r\n      isDots: true,\r\n    };\r\n\r\n    this.dataSource = new MatTableDataSource<unknown>(this.ELEMENT_DATA || []);\r\n    if (this.dataSource) this.dataSource.paginator = this.paginator;\r\n  }\r\n  constructor() {}\r\n  protected getColumnValue(ele: unknown, propNames: string): any {\r\n    if (ele && propNames) {\r\n      const propName: string[] = propNames.split('.');\r\n      let value: unknown = ele;\r\n      for (let i = 0; i < propName.length; i++) {\r\n        value = (value as any)[propName[i]] ?? null;\r\n      }\r\n      return value;\r\n    }\r\n  }\r\n\r\n  // protected pagination(event$: PageEvent) {\r\n  //   this.pageSize = event$.pageSize;\r\n  //   this.pageIndex = event$.pageIndex;\r\n  //   this._router.navigate([], {\r\n  //     queryParams: {\r\n  //       index: event$.pageIndex,\r\n  //       size: event$.pageSize,\r\n  //     },\r\n  //     queryParamsHandling: 'merge',\r\n  //   });\r\n  // }\r\n\r\n  protected getColumnsName(): string[] {\r\n    if (this.columns) return this.columns.map((column) => column?.name);\r\n    else return [];\r\n  }\r\n}\r\n","    <div >\r\n      <div class=\"justify-content-end m-1 d-flex\">\r\n        <ng-content select=\"[actions]\"></ng-content>\r\n      </div>\r\n      <ng-content select=\"[searchCriteria]\"></ng-content>\r\n      <div\r\n        class=\"mat-elevation-z8\"\r\n        *ngIf=\"dataSource?.filteredData.length > 0 || isLoading\"\r\n      >\r\n      <div  class=\"stc-table\">\r\n        <table\r\n          [dataSource]=\"\r\n            dataSource?.filteredData\r\n              | paginate\r\n                : {\r\n                    id: tableID ? tableID : 'table',\r\n                    itemsPerPage: pageSize,\r\n                    currentPage: pageIndex + 1,\r\n                    totalItems: length\r\n                  }\r\n          \"\r\n          [id]=\"tableID ? tableID : 'table'\"\r\n          mat-table\r\n          matSort\r\n        >\r\n          <!-- Position Column -->\r\n          <ng-container\r\n            *ngFor=\"let column of columns; let i = index\"\r\n            [matColumnDef]=\"column.name\"\r\n          >\r\n            <th *matHeaderCellDef [mat-sort-header]=\"column.name\" mat-header-cell>\r\n              {{ column.name }}\r\n            </th>\r\n            <ng-container [ngSwitch]=\"column.type\">\r\n              <ng-container *ngSwitchCase=\"COLUMN.image\">\r\n                <td *matCellDef=\"let element\" mat-cell>\r\n                  <img\r\n                    *ngIf=\"column.multiDenominational; else defaultImage\"\r\n                    [src]=\"getColumnValue(element, column.propName)\"\r\n                    alt=\"image\"\r\n                    class=\"rounded-5 p-2 rounded-circle\"\r\n                    height=\"\"\r\n                    width=\"50\"\r\n                  />\r\n                  <ng-template #defaultImage>\r\n                    <img\r\n                      [src]=\"element[column.propName]\"\r\n                      alt=\"image\"\r\n                      class=\"rounded-5 p-2 rounded-circle\"\r\n                      height=\"\"\r\n                      width=\"50\"\r\n                    />\r\n                  </ng-template>\r\n                </td>\r\n              </ng-container>\r\n              <ng-container *ngSwitchCase=\"COLUMN.text\">\r\n                <ng-container *ngIf=\"column.multiDenominational; else defaultText\">\r\n                  <td *matCellDef=\"let element\" mat-cell>\r\n                    {{ element | mapValue: column!.propName }}\r\n                  </td>\r\n                </ng-container>\r\n                <ng-template #defaultText>\r\n                  <td *matCellDef=\"let element\" mat-cell>\r\n                    <span\r\n                      class=\"cut-text\"\r\n                      [matTooltipPosition]=\"'above'\"\r\n                      [matTooltip]=\"element | mapValue: column!.propName\"\r\n                      >{{ element | mapValue: column!.propName }}</span\r\n                    >\r\n                  </td>\r\n                </ng-template>\r\n              </ng-container>\r\n              <ng-container *ngSwitchCase=\"COLUMN.number\">\r\n                <ng-container\r\n                  *ngIf=\"column.multiDenominational; else defaultNumber\"\r\n                >\r\n                  <td *matCellDef=\"let element\" mat-cell>\r\n                    {{ element | mapValue: column!.propName }}\r\n                  </td>\r\n                </ng-container>\r\n                <ng-template #defaultNumber>\r\n                  <td *matCellDef=\"let element\" mat-cell>\r\n                    {{ element | mapValue: column!.propName }}\r\n                  </td>\r\n                </ng-template>\r\n              </ng-container>\r\n              <ng-container *ngSwitchCase=\"COLUMN.date\">\r\n                <ng-container *ngIf=\"column.multiDenominational; else defaultDate\">\r\n                  <td *matCellDef=\"let element\" mat-cell>\r\n                    {{\r\n                      (element | mapValue: column!.propName) | date : \"dd/MM/yyyy\"\r\n                    }}\r\n                  </td>\r\n                </ng-container>\r\n                <ng-template #defaultDate>\r\n                  <td *matCellDef=\"let element\" mat-cell>\r\n                    {{ (element | mapValue: column!.propName) | date : \"dd/MM/yyyy\" }}\r\n                  </td>\r\n                </ng-template>\r\n              </ng-container>\r\n              <ng-container *ngSwitchCase=\"COLUMN.content\">\r\n                <td *matCellDef=\"let element\" mat-cell>\r\n                  <ng-container\r\n                    [ngTemplateOutlet]=\"content[column.propName]\"\r\n                    [ngTemplateOutletContext]=\"{ item: element }\"\r\n                  >\r\n                  </ng-container>\r\n                </td>\r\n              </ng-container>\r\n              <ng-container *ngSwitchCase=\"COLUMN.boolean\">\r\n                <ng-container\r\n                  *ngIf=\"column.multiDenominational; else defaultBoolean\"\r\n                >\r\n                  <td *matCellDef=\"let element\" mat-cell>\r\n                    <mat-icon\r\n                      *ngIf=\"(element | mapValue: column!.propName) === true\"\r\n                      color=\"primary\"\r\n                    >\r\n                      done\r\n                    </mat-icon>\r\n                    <mat-icon\r\n                      *ngIf=\"(element | mapValue: column!.propName) === false\"\r\n                      color=\"warn\"\r\n                    >\r\n                      close\r\n                    </mat-icon>\r\n                  </td>\r\n                </ng-container>\r\n                <ng-template #defaultBoolean>\r\n                  <td *matCellDef=\"let element\" mat-cell>\r\n                    <mat-icon\r\n                      *ngIf=\"(element | mapValue: column!.propName) === true\"\r\n                      color=\"primary\"\r\n                      >done\r\n                    </mat-icon>\r\n                    <mat-icon\r\n                      *ngIf=\"(element | mapValue: column!.propName) === false\"\r\n                      color=\"warn\"\r\n                      >close\r\n                    </mat-icon>\r\n                  </td>\r\n                </ng-template>\r\n              </ng-container>\r\n              <ng-container *ngSwitchCase=\"COLUMN.actions\">\r\n                <td *matCellDef=\"let element\" mat-cell>\r\n                  <ng-container\r\n                    *ngTemplateOutlet=\"rowActions; context: { item: element }\"\r\n                  ></ng-container>\r\n                </td>\r\n              </ng-container>\r\n              <ng-container *ngSwitchCase=\"COLUMN.dots_actions\">\r\n                <td *matCellDef=\"let element\" mat-cell>\r\n                  <ng-container>\r\n                    <lib-muk-menu [currentItem]=\"element\" [data]=\"menuData\" (menuItemClick)=\"takeAction.emit($event)\"></lib-muk-menu>\r\n                  </ng-container>\r\n                </td>\r\n              </ng-container>\r\n            </ng-container>\r\n          </ng-container>\r\n\r\n          <tr *matHeaderRowDef=\"getColumnsName()\" mat-header-row></tr>\r\n          <tr *matRowDef=\"let row; columns: getColumnsName()\" mat-row></tr>\r\n        </table>\r\n      </div>\r\n\r\n        <lib-muk-pagination\r\n          *ngIf=\"dataSource?.filteredData.length > 0 && !isLoading && isShowPagination\"\r\n          class=\"d-flex justify-content-center\"\r\n          [id]=\"tableID ? tableID : 'table'\"\r\n          (pageChanged)=\"paginationChange.emit($event)\"\r\n        ></lib-muk-pagination>\r\n        <div class=\"d-flex justify-content-around\" *ngIf=\"isLoading\">\r\n          <lib-muk-loading-spinner\r\n            class=\"d-block p-4\"\r\n            [color]=\"spinnerColor\"\r\n          ></lib-muk-loading-spinner>\r\n        </div>\r\n      </div>\r\n      <lib-muk-not-found-data\r\n        *ngIf=\"!dataSource?.filteredData.length && !isLoading\"\r\n        class=\"d-flex justify-content-center\"\r\n      ></lib-muk-not-found-data>\r\n    </div>\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}