ngx-mat-dynamic-table
Version:
Dynamic material table table.
35 lines • 3.9 kB
JavaScript
import { Component, Input } from '@angular/core';
import { XlsxExportService } from './service/xlsx-export.service';
import { MatSnackBar } from '@angular/material/snack-bar';
export class XlsxTableExportComponent {
constructor(xlsxExportService, matSnackBar) {
this.xlsxExportService = xlsxExportService;
this.matSnackBar = matSnackBar;
}
ngOnInit() {
}
eportToExcell() {
if (!this.data || !this.headers) {
this.matSnackBar.open('Provide data and headers.', 'Ok', { duration: 4000 });
return;
}
this.xlsxExportService.exportExcel(this.data, this.headers, this.fileName ? this.fileName : 'Export');
}
}
XlsxTableExportComponent.decorators = [
{ type: Component, args: [{
selector: 'ngx-mat-xlsx-table-export',
template: "<button mat-stroked-button color=\"primary\" (click)=\"eportToExcell()\"><mat-icon>import_export</mat-icon> Export</button>",
styles: [""]
},] }
];
XlsxTableExportComponent.ctorParameters = () => [
{ type: XlsxExportService },
{ type: MatSnackBar }
];
XlsxTableExportComponent.propDecorators = {
data: [{ type: Input }],
fileName: [{ type: Input }],
headers: [{ type: Input }]
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieGxzeC10YWJsZS1leHBvcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLy4uL3Byb2plY3RzL25neC1tYXQtZHluYW1pYy10YWJsZS9zcmMvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy94bHN4LXRhYmxlLWV4cG9ydC94bHN4LXRhYmxlLWV4cG9ydC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBTzFELE1BQU0sT0FBTyx3QkFBd0I7SUFNbkMsWUFBb0IsaUJBQW9DLEVBQzlDLFdBQXdCO1FBRGQsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUM5QyxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtJQUFJLENBQUM7SUFFdkMsUUFBUTtJQUNSLENBQUM7SUFFRCxhQUFhO1FBQ1gsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQy9CLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLDJCQUEyQixFQUFFLElBQUksRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQzdFLE9BQU87U0FDUjtRQUNELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3hHLENBQUM7OztZQXZCRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLDJCQUEyQjtnQkFDckMsdUlBQWlEOzthQUVsRDs7O1lBUFEsaUJBQWlCO1lBQ2pCLFdBQVc7OzttQkFTakIsS0FBSzt1QkFDTCxLQUFLO3NCQUNMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFhsc3hFeHBvcnRTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlL3hsc3gtZXhwb3J0LnNlcnZpY2UnO1xuaW1wb3J0IHsgTWF0U25hY2tCYXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbmFjay1iYXInO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICduZ3gtbWF0LXhsc3gtdGFibGUtZXhwb3J0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3hsc3gtdGFibGUtZXhwb3J0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4veGxzeC10YWJsZS1leHBvcnQuY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIFhsc3hUYWJsZUV4cG9ydENvbXBvbmVudDxUPiBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQElucHV0KCkgZGF0YTogVFtdO1xuICBASW5wdXQoKSBmaWxlTmFtZTogc3RyaW5nO1xuICBASW5wdXQoKSBoZWFkZXJzOiBzdHJpbmdbXTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHhsc3hFeHBvcnRTZXJ2aWNlOiBYbHN4RXhwb3J0U2VydmljZSxcbiAgICBwcml2YXRlIG1hdFNuYWNrQmFyOiBNYXRTbmFja0JhcikgeyB9XG5cbiAgbmdPbkluaXQoKSB7XG4gIH1cblxuICBlcG9ydFRvRXhjZWxsKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5kYXRhIHx8ICF0aGlzLmhlYWRlcnMpIHtcbiAgICAgIHRoaXMubWF0U25hY2tCYXIub3BlbignUHJvdmlkZSBkYXRhIGFuZCBoZWFkZXJzLicsICdPaycsIHsgZHVyYXRpb246IDQwMDAgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMueGxzeEV4cG9ydFNlcnZpY2UuZXhwb3J0RXhjZWwodGhpcy5kYXRhLCB0aGlzLmhlYWRlcnMsIHRoaXMuZmlsZU5hbWUgPyB0aGlzLmZpbGVOYW1lIDogJ0V4cG9ydCcpO1xuICB9XG5cbn1cbiJdfQ==