{"version":3,"file":"intzi1992-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/intzi1992-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 '@intzi1992/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 '@intzi1992/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 '@intzi1992/cdk-table-exporter';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}