@progress/kendo-angular-spreadsheet
Version:
A Spreadsheet Component for Angular
59 lines (58 loc) • 3.04 kB
JavaScript
/**-----------------------------------------------------------------------------------------
* Copyright © 2025 Progress Software Corporation. All rights reserved.
* Licensed under commercial license. See LICENSE.md in the project root for more information
*-------------------------------------------------------------------------------------------*/
import { Directive } from '@angular/core';
import { ToolBarButtonComponent } from '@progress/kendo-angular-toolbar';
import { SpreadsheetService } from '../common/spreadsheet.service';
import { commandIcons, commandSVGIcons } from './shared/command-icons';
import { Subscription } from 'rxjs';
import { saveAs } from '@progress/kendo-file-saver';
import { Workbook } from '@progress/kendo-ooxml';
import { SpreadsheetLocalizationService } from '../localization/spreadsheet-localization.service';
import * as i0 from "@angular/core";
import * as i1 from "@progress/kendo-angular-toolbar";
import * as i2 from "../localization/spreadsheet-localization.service";
import * as i3 from "../common/spreadsheet.service";
/**
* @hidden
*/
export class SpreadsheetSaveFileDirective {
button;
localization;
spreadsheetService;
subs = new Subscription();
constructor(button, localization, spreadsheetService) {
this.button = button;
this.localization = localization;
this.spreadsheetService = spreadsheetService;
}
ngOnInit() {
this.button.title = this.localization.get('saveFile');
this.button.icon = commandIcons['download'];
this.button.svgIcon = commandSVGIcons['download'];
this.button.fillMode = 'flat';
this.subs.add(this.button.click.subscribe(() => {
const spreadsheet = this.spreadsheetService.spreadsheet;
if (spreadsheet) {
spreadsheet.saveAsExcel({
...spreadsheet.options.excel,
saveAs,
Workbook
});
}
}));
}
ngOnDestroy() {
this.subs.unsubscribe();
}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetSaveFileDirective, deps: [{ token: i1.ToolBarButtonComponent }, { token: i2.SpreadsheetLocalizationService }, { token: i3.SpreadsheetService }], target: i0.ɵɵFactoryTarget.Directive });
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: SpreadsheetSaveFileDirective, isStandalone: true, selector: "[kendoSpreadsheetSaveFile]", ngImport: i0 });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetSaveFileDirective, decorators: [{
type: Directive,
args: [{
selector: '[kendoSpreadsheetSaveFile]',
standalone: true
}]
}], ctorParameters: function () { return [{ type: i1.ToolBarButtonComponent }, { type: i2.SpreadsheetLocalizationService }, { type: i3.SpreadsheetService }]; } });