{"version":3,"file":"bk-angular-table.mjs","sources":["../../../projects/bk-angular-table/src/lib/bk-angular-table.service.ts","../../../projects/bk-angular-table/src/lib/bk-angular-table.component.ts","../../../projects/bk-angular-table/src/lib/bk-angular-table.component.html","../../../projects/bk-angular-table/src/lib/bk-angular-table.module.ts","../../../projects/bk-angular-table/src/public-api.ts","../../../projects/bk-angular-table/src/bk-angular-table.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class BkAngularTableService {\n\n  constructor() { }\n}\n","import { Component, OnInit, Input, EventEmitter, Output, ViewChild, ChangeDetectorRef, ElementRef } from '@angular/core';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { MatPaginator } from '@angular/material/paginator';\nimport { MatSort, } from '@angular/material/sort';\nimport { MatSnackBar, } from '@angular/material/snack-bar';\nimport { SelectionModel } from '@angular/cdk/collections';\n\nexport interface AppTableColumn {\n  field: string;\n  title: string;\n}\n\n\n@Component({\n  selector: 'bk-angular-table',\n  templateUrl: './bk-angular-table.component.html',\n  styleUrls: ['./bk-angular-table.component.scss']\n})\nexport class BkAngularTableComponent implements OnInit {\n\n  @Input() displayedColumns:any\n  @Input() dataSource: any = [];\n  multiSelect = false;\n  @Input() columnClass = \"\";\n\n\n  @Output() selectedRow$ = new EventEmitter<any>();\n  @Output() pagination$ = new EventEmitter<any>();\n\n  @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\n  @ViewChild(MatSort, { static: true }) sort: MatSort;\n  @ViewChild('searchField') searchField:ElementRef<HTMLElement>;\n  \n\n  hasSelect = true;\n\n  rowTabIndex = 0;\n\n  shown_columns:any;\n  shown_columns_multi = ['select'];\n  shown_titles:any;\n  selectedRow: any;\n  selection = new SelectionModel<any>(true, []);\n\n  // sort: any;\n  tableDS = new MatTableDataSource();\n  wildcardStatus:boolean;\n\n  tableSettings;\n  searchParam=\"%\";\n  elementSelector;\n\n  pathNames = [\n  ];\n  pathName = window.location.pathname;\n  sessionStorageName;\n\n  constructor(\n    private changeDetectorRef: ChangeDetectorRef,\n    private snackBar: MatSnackBar,\n    private elementRef: ElementRef\n  ) { }\n\n  ngOnInit() {\n    console.log(this.displayedColumns)\n    this.wildcardStatus=true;\n    const fields = this.displayedColumns.map(x => x.field);\n    const titles = this.displayedColumns.map(x => x.title);\n    this.shown_columns = fields.slice();\n    this.shown_columns_multi = this.shown_columns_multi.concat(this.shown_columns);\n    this.shown_titles = titles.slice();\n  }\n\n  /** Whether the number of selected elements matches the total number of rows. */\n  isAllSelected() {\n    const numSelected = this.selection.selected.length;\n    const numRows = this.tableDS.data.length;\n    return numSelected === numRows;\n  }\n\n  /** Selects all rows if they are not all selected; otherwise clear selection. */\n  masterToggle() {\n    this.isAllSelected() ?\n      this.selection.clear() :\n      this.tableDS.data.forEach(row => this.selection.select(row));\n  }\n\n \n\n  onSelectRow(row, emit = true,) {\n    this.selectedRow = row;\n    if (emit) {\n      this.selectedRow$.emit(this.selectedRow);\n    }\n  }\n\n  tableKeydown(event: KeyboardEvent) {\n    if (!this.selection.isEmpty()) {\n        let newSelection;\n        const currentSelection = this.selection.selected[0];\n        const currentIndex = this.tableDS.data.findIndex(row => row === currentSelection);\n        if(event.key === 'Enter') {\n          this.onSelectRow(this.selection.selected[0], true);\n        } else if (event.key === 'ArrowDown') {\n            newSelection = this.tableDS.data[currentIndex + 1];\n        } else if (event.key === 'ArrowUp') {\n            newSelection = this.tableDS.data[currentIndex - 1];\n        }\n        if (newSelection) {\n          this.selection.clear();\n          this.selection.toggle(newSelection);\n          this.onSelectRow(this.selection.selected[0], false);\n        }\n        console.log(this.selection.selected)\n    } else {\n      this.selection.clear();\n      this.selection.toggle(this.tableDS.filteredData[0]);\n      this.onSelectRow(this.tableDS.filteredData[0], false);  \n    }\n}\n  applyFilter(filterValue:any){\n    filterValue = filterValue.trim(); // Remove whitespace\n    filterValue = filterValue.toLowerCase(); // MatTableDataSource defaults to lowercase matches\n    console.log(filterValue)\n    this.tableDS.filter = filterValue;\n  }\n\n  ngAfterViewInit() {\n    this.tableDS = new MatTableDataSource(this.dataSource);\n    this.tableDS.paginator = this.paginator;\n    this.tableDS.sort = this.sort;\n    this.changeDetectorRef.detectChanges();\n    let elementSelector = this.elementRef.nativeElement.closest(\".mat-dialog-container\");\n\n    if(elementSelector == null || elementSelector.textContent == \"\") {\n      elementSelector = this.elementRef.nativeElement.closest('.mat-tab-group');\n    }\n\n    if(elementSelector != null) {\n      this.elementSelector = (elementSelector.textContent && elementSelector.textContent != \"\") ? elementSelector.textContent : \"\";\n    }    \n    \n    this.getTableSettings();\n\n    if(this.searchParam == '%') {\n      // this.searchField.nativeElement.focus()\n      this.searchField.nativeElement['selectionEnd'] = this.searchParam.length - 1;\n    }\n  }\n\n  \n\n  onTablePage(event: any){\n    this.pagination$.emit(event);\n    const matTable= document.getElementById('bkTable');\n    matTable.scrollTop = 0;\n\n    if(this.elementSelector == \"\" || this.elementSelector == null) {\n      // let tableSettings = sessionStorage.getItem(\"tableSettings\");\n      let tableSettings = this.getTableSettingsOnPathName();\n      if(tableSettings) {\n        tableSettings = JSON.parse(tableSettings)\n        tableSettings['pageindex'] = event;\n\n        sessionStorage.setItem(this.sessionStorageName, JSON.stringify(tableSettings))\n      }\n      else {\n        sessionStorage.setItem(this.sessionStorageName, JSON.stringify({\n          \"pageindex\": event\n        }))\n      }\n    }\n  }\n\n  setTableSettings() {\n    if(this.elementSelector == \"\" || this.elementSelector == null) {\n      // let tableSettings = sessionStorage.getItem(\"tableSettings\");\n      let tableSettings = this.getTableSettingsOnPathName();\n      if(tableSettings) {\n          tableSettings = JSON.parse(tableSettings)\n          tableSettings['searchParam'] = this.tableDS.filter;\n\n          sessionStorage.setItem(this.sessionStorageName, JSON.stringify(tableSettings))\n      }\n      else {\n          sessionStorage.setItem(this.sessionStorageName, JSON.stringify({\n              \"searchParam\": this.tableDS.filter\n          }))\n      }\n    }\n  }\n\n  getTableSettings() {\n    if(this.elementSelector == \"\" || this.elementSelector == null) {\n      // this.tableSettings = sessionStorage.getItem(\"tableSettings\");\n      this.tableSettings = this.getTableSettingsOnPathName();\n        \n      if(this.tableSettings) {\n          this.tableSettings = JSON.parse(this.tableSettings);\n          if(this.tableSettings.pageindex) {\n            this.paginator.pageIndex = this.tableSettings.pageindex.pageIndex;\n            this.paginator.pageSize = this.tableSettings.pageindex.pageSize;\n          }\n          if(this.tableSettings.searchParam) {\n            this.searchParam = this.tableSettings.searchParam;\n           // this.toAddWildCardSearch();\n            this.tableDS.filter = this.searchParam;\n          }\n      }\n    }\n  }\n\n  getTableSettingsOnPathName(): any {\n    let tableSettings;\n    if(this.pathNames.indexOf(this.pathName) != -1) {\n      this.sessionStorageName = 'tableSettings' + this.pathName;\n      tableSettings = sessionStorage.getItem(this.sessionStorageName);\n    }\n    else {\n      this.sessionStorageName = 'tableSettings';\n      tableSettings = sessionStorage.getItem(this.sessionStorageName);\n    }\n    return tableSettings;\n  }\n}\n","\n\n      <div class=\"bk-actions-toolbar\">\n        <div class=\"bk-table-filter bk-actions-toolbar-right\">\n          <input type=\"text\" (keyup)=\"applyFilter(searchField.value)\" #searchField placeholder=\"Table Keyword Search\" >\n        </div>\n      </div>\n    \n      <table mat-table matSort [dataSource]=\"tableDS\" class=\"bk-table\" id=\"bkTable\">\n        <ng-container   \n          *ngFor=\"let column of shown_columns; index as i\"\n          [matColumnDef]=\"column\"\n        >\n          <mat-header-cell [ngClass]=\"['bk-table-header', columnClass]\" *matHeaderCellDef  mat-header-cell [mat-sort-header]=\"column\"> {{ shown_titles[i] }} </mat-header-cell>\n          <mat-cell *matCellDef=\"let element\" \n            [class]=\"columnClass\"\n            [matTooltip]=\"element[column]\"\n            matTooltipClass=\"example-tooltip-red\"\n          >\n              <span class=\"bk-global-ellipsis\">{{element[column]}}</span>\n          </mat-cell>\n        </ng-container>\n     \n          <mat-header-row *matHeaderRowDef=\"shown_columns; sticky: true\"></mat-header-row>\n          <mat-row class=\"bk-row\" [ngClass]= \"{'selected': selectedRow === row }\" *matRowDef=\"let row; columns: shown_columns;\"\n          (click)=\"onSelectRow(row, true)\" (keydown)=\"tableKeydown($event)\"></mat-row>\n      </table>\n      <mat-paginator [length]=\"dataSource.length\" [pageSizeOptions]=\"[5,10, 25, 50, 100, 1000]\" (page)=\"onTablePage($event)\"></mat-paginator>\n    ","import { NgModule } from '@angular/core';\nimport { BkAngularTableComponent } from './bk-angular-table.component';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatPaginatorModule } from '@angular/material/paginator';\nimport { MatTableModule } from '@angular/material/table';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSortModule } from '@angular/material/sort';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\n\n\n\n@NgModule({\n  declarations: [\n    BkAngularTableComponent\n  ],\n  imports: [\n    CommonModule,\n    FormsModule,\n    MatCheckboxModule,\n    MatFormFieldModule,\n    MatPaginatorModule,\n    MatInputModule,\n    MatSortModule,\n    MatTableModule,\n    MatTooltipModule,\n    MatSnackBarModule\n  ],\n  exports: [\n    BkAngularTableComponent\n  ]\n})\nexport class BkTableModule { }\n","/*\n * Public API Surface of bk-table\n */\n\nexport * from './lib/bk-angular-table.service';\nexport * from './lib/bk-angular-table.component';\nexport * from './lib/bk-angular-table.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}