{"version":3,"file":"mat-table-exporter.mjs","sources":["../../../projects/mat-table-exporter/src/lib/mat-table-exporter.directive.ts","../../../projects/mat-table-exporter/src/lib/mat-table-exporter.module.ts","../../../projects/mat-table-exporter/src/public-api.ts","../../../projects/mat-table-exporter/src/mat-table-exporter.ts"],"sourcesContent":["import { AfterViewInit, Directive, Host, Optional, Self } from '@angular/core';\nimport { MatPaginator } from '@angular/material/paginator';\nimport { MatTable, MatTableDataSource } from '@angular/material/table';\nimport { CdkTableExporter, DataExtractorService, ServiceLocatorService } from 'cdk-table-exporter';\nimport { Observable } from 'rxjs';\n\n@Directive({\n  selector: '[matTableExporter]',\n  exportAs: 'matTableExporter'\n})\nexport class MatTableExporterDirective extends CdkTableExporter implements AfterViewInit {\n  /**\n   * Overriding ngAfterViewInit of TableExporter\n   */\n  ngAfterViewInit(): void {\n    this.exportStarted.subscribe(_ => {\n      this.enablePaginator(false);\n    });\n    this.exportCompleted.subscribe(_ => {\n      this.enablePaginator(true);\n    });\n  }\n\n  constructor(\n    serviceLocator: ServiceLocatorService,\n    dataExtractor: DataExtractorService,\n    @Host() @Self() @Optional() table: MatTable<any>\n  ) {\n    super(serviceLocator, dataExtractor, table);\n  }\n\n  /**\n   * MatTable implementation of getPageCount\n   */\n  public getPageCount(): number {\n    const pageSize = this.getPageSize();\n    if (pageSize == 0) {\n      return 0;\n    }\n    const pageCount = this.getTotalItemsCount() / this.getPageSize();\n    return Math.ceil(pageCount) ?? 1;\n  }\n\n  /**\n   * MatTable implementation of getPageSize\n   */\n  public getPageSize(): number {\n    return this.getPaginator()?.pageSize ?? 0;\n  }\n\n  /**\n   * MatTable implementation of getCurrentPageIndex\n   */\n  public getCurrentPageIndex(): number {\n    return this.getPaginator()?.pageIndex ?? 0;\n  }\n\n  /**\n   * MatTable implementation of getTotalItemsCount\n   */\n  public getTotalItemsCount(): number {\n    return this.getPaginator()?.length ?? this.getDataSource()?.data?.length ?? 0;\n  }\n\n  /**\n   * MatTable implementation of goToPage\n   */\n  public goToPage(index: number): void {\n    const paginator: MatPaginator = this.getPaginator();\n    paginator.pageIndex = index;\n    paginator._changePageSize(paginator.pageSize);\n  }\n\n  /**\n   * MatTable implementation of getPageChangeObservable\n   */\n  public getPageChangeObservable(): Observable<any> | undefined {\n    return this.getPaginator()?.page;\n  }\n\n  private getDataSource(): MatTableDataSource<any> {\n    return this._cdkTable.dataSource as MatTableDataSource<any>;\n  }\n\n  private getPaginator(): MatPaginator {\n    return this.getDataSource()?.paginator as MatPaginator;\n  }\n\n  private enablePaginator(value: boolean) {\n    const paginator: MatPaginator = this.getPaginator();\n      paginator.disabled = !value;\n      paginator._changePageSize(paginator.pageSize);\n  }\n\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { MatTableModule } from '@angular/material/table';\nimport { CdkTableExporterModule, XLSX_LIGHTWEIGHT } from 'cdk-table-exporter';\nimport { MatTableExporterDirective } from './mat-table-exporter.directive';\n\nexport interface ModuleConfiguration {\n  xlsxLightWeight?: boolean;\n}\n\n@NgModule({\n  declarations: [MatTableExporterDirective],\n  imports: [\n    MatTableModule,\n    CdkTableExporterModule\n  ],\n  exports: [MatTableExporterDirective]\n})\n\nexport class MatTableExporterModule {\n  static forRoot(configuration: ModuleConfiguration): ModuleWithProviders<MatTableExporterModule> {\n    return {\n      ngModule: MatTableExporterModule,\n      providers: [\n        {\n          provide: XLSX_LIGHTWEIGHT,\n          useValue: configuration.xlsxLightWeight\n        }\n      ]\n    };\n  }\n}\n","\n/*\n * Public API Surface of mat-table-exporter\n */\n\nexport * from './lib/mat-table-exporter.module';\nexport { MatTableExporterDirective } from './lib/mat-table-exporter.directive';\nexport * from 'cdk-table-exporter';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}