{"version":3,"file":"ssr-table.mjs","sources":["../../../projects/ssr-table/src/lib/ssr-table.service.ts","../../../projects/ssr-table/src/lib/ssr-table.component.ts","../../../projects/ssr-table/src/lib/ssr-table.component.html","../../../projects/ssr-table/src/lib/ssr-table.module.ts","../../../projects/ssr-table/src/public-api.ts","../../../projects/ssr-table/src/ssr-table.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class SsrTableService {\n\n  constructor() { }\n}\n","import {\n  Component,\n  Input,\n  OnInit,\n} from '@angular/core';\nimport { trigger, style, animate, transition } from '@angular/animations';\nimport * as XLSX from 'xlsx';\n\n@Component({\n  selector: 'lib-ssr-table',\n  templateUrl: './ssr-table.component.html',\n  styleUrls: ['./ssr-table.component.css'],\n  animations: [\n    trigger('fadeInOut', [\n      transition(':enter', [\n        style({ opacity: 0 }),\n        animate('300ms ease-in', style({ opacity: 1 })),\n      ]),\n      transition(':leave', [\n        animate('300ms ease-out', style({ opacity: 0 })),\n      ]),\n    ]),\n  ],\n})\nexport class SsrTableComponent implements OnInit {\n  @Input() data: any[] = [];\n  @Input() columns: string[] = [];\n\n  visibleColumns: { [key: string]: boolean } = {};\n  allColumns: string[] = [];\n  displayedColumns: string[] = [];\n  searchQuery = '';\n  filteredData: any[] = [];\n  paginatedData: any[] = [];\n  currentPage = 1;\n  pageSize = 5;\n  pageSizes = [5, 10, 15, 20];\n  sortDirection: { [key: string]: boolean } = {}; // true for ascending, false for descending\n  isExporting = false;\n  expandedRow: any = null; // Tracks the currently expanded row\n\n  ngOnInit() {\n    this.initializeColumns();\n    this.filteredData = [...this.data];\n    this.applyPagination();\n  }\n\n  initializeColumns() {\n    this.allColumns = this.columns;\n    this.visibleColumns = this.allColumns.reduce((acc: { [key: string]: boolean }, col: string) => {\n      acc[col] = true; // Default to true for visibility\n      this.sortDirection[col] = true;\n      return acc;\n    }, {});\n    this.updateDisplayedColumns();\n  }\n  \n\n  updateDisplayedColumns() {\n    this.displayedColumns = this.allColumns.filter(col => this.visibleColumns[col]);\n    this.applyPagination();\n  }\n\n  applySearch() {\n    const query = this.searchQuery.toLowerCase();\n    this.filteredData = this.data.filter(row =>\n      Object.keys(row).some(key =>\n        String(row[key]).toLowerCase().includes(query)\n      )\n    );\n    this.applyPagination();\n  }\n\n  resetSearch() {\n    this.searchQuery = '';\n    this.applySearch();\n  }\n\n  sortTable(column: string) {\n    this.filteredData.sort((a, b) => {\n      const comparison = a[column] > b[column] ? 1 : a[column] < b[column] ? -1 : 0;\n      return this.sortDirection[column] ? comparison : -comparison;\n    });\n    this.sortDirection[column] = !this.sortDirection[column]; // Toggle sort direction\n    this.applyPagination();\n  }\n\n  applyPagination() {\n    const startIndex = (this.currentPage - 1) * this.pageSize;\n    const endIndex = this.currentPage * this.pageSize;\n    this.paginatedData = this.filteredData.slice(startIndex, endIndex);\n  }\n\n  prevPage() {\n    if (this.currentPage > 1) {\n      this.currentPage--;\n      this.applyPagination();\n    }\n  }\n\n  nextPage() {\n    if (this.currentPage * this.pageSize < this.filteredData.length) {\n      this.currentPage++;\n      this.applyPagination();\n    }\n  }\n\n  get totalPages() {\n    return Math.ceil(this.filteredData.length / this.pageSize);\n  }\n\n  async downloadTable() {\n    this.isExporting = true;\n    const worksheet = XLSX.utils.json_to_sheet(this.filteredData);\n    const workbook = XLSX.utils.book_new();\n    XLSX.utils.book_append_sheet(workbook, worksheet, 'Table Data');\n    XLSX.writeFile(workbook, 'table-data.xlsx');\n    this.isExporting = false;\n  }\n\n  toggleRow(row: any) {\n    if (this.expandedRow === row) {\n      this.expandedRow = null; // Collapse if already expanded\n    } else {\n      this.expandedRow = row; // Expand new row\n      this.fetchAdditionalData(row); // Fetch additional data for the row\n    }\n  }\n\n  fetchAdditionalData(row: any) {\n    setTimeout(() => {\n      row.additionalData = {\n        details: 'Additional data fetched dynamically.',\n        timestamp: new Date().toLocaleString(),\n      };\n    }, 500); // Simulate network delay\n  }\n\n  downloadRow(row: any) {\n    const worksheet = XLSX.utils.json_to_sheet([row]);\n    const workbook = XLSX.utils.book_new();\n    XLSX.utils.book_append_sheet(workbook, worksheet, 'Row Data');\n    XLSX.writeFile(workbook, `row-data-${row.id}.xlsx`);\n  }\n\n  copyRow(row: any) {\n    navigator.clipboard.writeText(JSON.stringify(row)).then(() => {\n      row.isCopied = true;\n      setTimeout(() => (row.isCopied = false), 2000); // Reset after 2 seconds\n    });\n  }\n}\n","<div class=\"table-container\">\n  <div class=\"controls\">\n    <div class=\"search-bar\">\n      <input\n        type=\"text\"\n        placeholder=\"Search\"\n        [(ngModel)]=\"searchQuery\"\n        (input)=\"applySearch()\"\n      />\n      <button (click)=\"resetSearch()\" aria-label=\"Clear Search\">Clear</button>\n    </div>\n    <div class=\"column-controls\">\n      <label *ngFor=\"let column of allColumns\">\n        <input\n          type=\"checkbox\"\n          [(ngModel)]=\"visibleColumns[column]\"\n          (change)=\"updateDisplayedColumns()\"\n        />\n        {{ column }}\n      </label>\n    </div>\n    <div class=\"actions\">\n      <button (click)=\"downloadTable()\" [disabled]=\"isExporting\" aria-label=\"Download Table\">\n        {{ isExporting ? 'Exporting...' : 'Download' }}\n      </button>\n    </div>\n  </div>\n\n  <table class=\"custom-table\">\n    <thead>\n      <tr>\n        <th *ngFor=\"let column of displayedColumns\" (click)=\"sortTable(column)\">\n          {{ column | titlecase }}\n          <span class=\"sort-icon\">{{ sortDirection[column] ? '▲' : '▼' }}</span>\n        </th>\n      </tr>\n    </thead>\n    <tbody>\n      <tr *ngFor=\"let row of paginatedData\">\n        <td *ngFor=\"let column of displayedColumns\">\n          {{ row[column] }}\n        </td>\n        <td *ngIf=\"visibleColumns['action']\" style=\"display: flex;align-items: center;justify-content: center;\">\n          <button (click)=\"toggleRow(row)\" style=\"align-items: center; display: flex;background-color: rgb(175,15,79);cursor: pointer; gap:1rem \">\n            Expand\n            <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"size-6\" style=\"width: 1.5rem;\">\n              <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 4.5h14.25M3 9h9.75M3 13.5h9.75m4.5-4.5v12m0 0-3.75-3.75M17.25 21 21 17.25\" />\n            </svg>\n          </button>\n        </td>\n        <td *ngIf=\"visibleColumns['download']\">\n          <div style=\"display: flex;justify-content: center;align-items: center;\">\n            <button style=\"align-items: center; display: flex;background-color: rgb(175,15,79);cursor: pointer; gap:1rem \" (click)=\"downloadRow(row)\">\n              Download\n              <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"size-6\" style=\"width: 1.5rem;\">\n                <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 16.5v2.25A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75V16.5M16.5 12 12 16.5m0 0L7.5 12m4.5 4.5V3\" />\n              </svg>\n            </button>\n          </div>\n        </td>\n        <td *ngIf=\"visibleColumns['copy']\">\n          <svg xmlns=\"http://www.w3.org/2000/svg\" (click)=\"copyRow(row)\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"size-6\" style=\"width:1.7rem\">\n            <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 12h3.75M9 15h3.75M9 18h3.75m3 .75H18a2.25 2.25 0 0 0 2.25-2.25V6.108c0-1.135-.845-2.098-1.976-2.192a48.424 48.424 0 0 0-1.123-.08m-5.801 0c-.065.21-.1.433-.1.664 0 .414.336.75.75.75h4.5a.75.75 0 0 0 .75-.75 2.25 2.25 0 0 0-.1-.664m-5.8 0A2.251 2.251 0 0 1 13.5 2.25H15c1.012 0 1.867.668 2.15 1.586m-5.8 0c-.376.023-.75.05-1.124.08C9.095 4.01 8.25 4.973 8.25 6.108V8.25m0 0H4.875c-.621 0-1.125.504-1.125 1.125v11.25c0 .621.504 1.125 1.125 1.125h9.75c.621 0 1.125-.504 1.125-1.125V9.375c0-.621-.504-1.125-1.125-1.125H8.25ZM6.75 12h.008v.008H6.75V12Zm0 3h.008v.008H6.75V15Zm0 3h.008v.008H6.75V18Z\" />\n          </svg>\n          <span *ngIf=\"row.isCopied\" style=\"color: green;\">Copied</span>\n        </td>\n      </tr>\n    </tbody>\n  </table>\n</div>\n","import { NgModule } from '@angular/core';\nimport { SsrTableComponent } from './ssr-table.component';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { FormsModule } from '@angular/forms'; // Import FormsModule\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\n\n\n@NgModule({\n  declarations: [\n    SsrTableComponent\n  ],\n  imports: [\n        FormsModule,\n        BrowserModule,\n        BrowserAnimationsModule\n  ],\n  exports: [\n    SsrTableComponent\n  ]\n})\nexport class SsrTableModule { }\n","/*\n * Public API Surface of ssr-table\n */\n\nexport * from './lib/ssr-table.service';\nexport * from './lib/ssr-table.component';\nexport * from './lib/ssr-table.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}