@catull/igniteui-angular
Version:
Ignite UI for Angular is a dependency-free Angular toolkit for building modern web apps
77 lines • 9.26 kB
JavaScript
import { __decorate, __extends, __metadata } from "tslib";
import { EventEmitter, Injectable, Output } from '@angular/core';
import { IgxBaseExporter } from '../exporter-common/base-export-service';
import { ExportUtilities } from '../exporter-common/export-utilities';
import { CharSeparatedValueData } from './char-separated-value-data';
import { CsvFileTypes } from './csv-exporter-options';
/**
* **Ignite UI for Angular CSV Exporter Service** -
* [Documentation](https://www.infragistics.com/products/ignite-ui-angular/angular/components/exporter_csv.html)
*
* The Ignite UI for Angular CSV Exporter service can export data in a Character Separated Values format from
* both raw data (array) or from an `IgxGrid`.
*
* Example:
* ```typescript
* public localData = [
* { Name: "Eric Ridley", Age: "26" },
* { Name: "Alanis Brook", Age: "22" },
* { Name: "Jonathan Morris", Age: "23" }
* ];
*
* constructor(private csvExportService: IgxCsvExporterService) {
* }
*
* const opt: IgxCsvExporterOptions = new IgxCsvExporterOptions("FileName", CsvFileTypes.CSV);
* this.csvExportService.exportData(this.localData, opt);
* ```
*/
var IgxCsvExporterService = /** @class */ (function (_super) {
__extends(IgxCsvExporterService, _super);
function IgxCsvExporterService() {
var _this = _super !== null && _super.apply(this, arguments) || this;
/**
* This event is emitted when the export process finishes.
* ```typescript
* this.exporterService.onExportEnded.subscribe((args: ICsvExportEndedEventArgs) => {
* // put event handler code here
* });
* ```
* @memberof IgxCsvExporterService
*/
_this.onExportEnded = new EventEmitter();
return _this;
}
IgxCsvExporterService.prototype.exportDataImplementation = function (data, options) {
data = data.map(function (item) { return item.rowData; });
var csvData = new CharSeparatedValueData(data, options.valueDelimiter);
this._stringData = csvData.prepareData();
this.saveFile(options);
this.onExportEnded.emit({ csvData: this._stringData });
};
IgxCsvExporterService.prototype.saveFile = function (options) {
switch (options.fileType) {
case CsvFileTypes.CSV:
this.exportFile(this._stringData, options.fileName, 'text/csv;charset=utf-8;');
break;
case CsvFileTypes.TSV:
case CsvFileTypes.TAB:
this.exportFile(this._stringData, options.fileName, 'text/tab-separated-values;charset=utf-8;');
break;
}
};
IgxCsvExporterService.prototype.exportFile = function (data, fileName, fileType) {
var blob = new Blob(['\ufeff', data], { type: fileType });
ExportUtilities.saveBlobToFile(blob, fileName);
};
__decorate([
Output(),
__metadata("design:type", Object)
], IgxCsvExporterService.prototype, "onExportEnded", void 0);
IgxCsvExporterService = __decorate([
Injectable()
], IgxCsvExporterService);
return IgxCsvExporterService;
}(IgxBaseExporter));
export { IgxCsvExporterService };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3N2LWV4cG9ydGVyLmpzIiwic291cmNlUm9vdCI6Im5nOi8vaWduaXRldWktYW5ndWxhci8iLCJzb3VyY2VzIjpbImxpYi9zZXJ2aWNlcy9jc3YvY3N2LWV4cG9ydGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsWUFBWSxFQUF5QixNQUFNLHdCQUF3QixDQUFDO0FBTzdFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FxQkc7QUFFSDtJQUEyQyx5Q0FBZTtJQUExRDtRQUFBLHFFQXdDQztRQXJDRzs7Ozs7Ozs7V0FRRztRQUVJLG1CQUFhLEdBQUcsSUFBSSxZQUFZLEVBQTRCLENBQUM7O0lBMkJ4RSxDQUFDO0lBekJhLHdEQUF3QixHQUFsQyxVQUFtQyxJQUFXLEVBQUUsT0FBOEI7UUFDMUUsSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBQyxJQUFJLElBQUssT0FBQSxJQUFJLENBQUMsT0FBTyxFQUFaLENBQVksQ0FBQyxDQUFDO1FBQ3hDLElBQU0sT0FBTyxHQUFHLElBQUksc0JBQXNCLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN6RSxJQUFJLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUV6QyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFTyx3Q0FBUSxHQUFoQixVQUFpQixPQUE4QjtRQUMzQyxRQUFRLE9BQU8sQ0FBQyxRQUFRLEVBQUU7WUFDdEIsS0FBSyxZQUFZLENBQUMsR0FBRztnQkFDakIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxRQUFRLEVBQUUseUJBQXlCLENBQUMsQ0FBQztnQkFDL0UsTUFBTTtZQUNWLEtBQUssWUFBWSxDQUFDLEdBQUcsQ0FBQztZQUN0QixLQUFLLFlBQVksQ0FBQyxHQUFHO2dCQUNqQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLFFBQVEsRUFBRSwwQ0FBMEMsQ0FBQyxDQUFDO2dCQUNoRyxNQUFNO1NBQ2I7SUFDTCxDQUFDO0lBRU8sMENBQVUsR0FBbEIsVUFBbUIsSUFBWSxFQUFFLFFBQWdCLEVBQUUsUUFBZ0I7UUFDL0QsSUFBTSxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUM1RCxlQUFlLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBMUJEO1FBREMsTUFBTSxFQUFFOztnRUFDMkQ7SUFiM0QscUJBQXFCO1FBRGpDLFVBQVUsRUFBRTtPQUNBLHFCQUFxQixDQXdDakM7SUFBRCw0QkFBQztDQUFBLEFBeENELENBQTJDLGVBQWUsR0F3Q3pEO1NBeENZLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV2ZW50RW1pdHRlciwgSW5qZWN0YWJsZSwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJZ3hCYXNlRXhwb3J0ZXIgfSBmcm9tICcuLi9leHBvcnRlci1jb21tb24vYmFzZS1leHBvcnQtc2VydmljZSc7XG5pbXBvcnQgeyBFeHBvcnRVdGlsaXRpZXMgfSBmcm9tICcuLi9leHBvcnRlci1jb21tb24vZXhwb3J0LXV0aWxpdGllcyc7XG5pbXBvcnQgeyBDaGFyU2VwYXJhdGVkVmFsdWVEYXRhIH0gZnJvbSAnLi9jaGFyLXNlcGFyYXRlZC12YWx1ZS1kYXRhJztcbmltcG9ydCB7IENzdkZpbGVUeXBlcywgSWd4Q3N2RXhwb3J0ZXJPcHRpb25zIH0gZnJvbSAnLi9jc3YtZXhwb3J0ZXItb3B0aW9ucyc7XG5pbXBvcnQgeyBJQmFzZUV2ZW50QXJncyB9IGZyb20gJy4uLy4uL2NvcmUvdXRpbHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElDc3ZFeHBvcnRFbmRlZEV2ZW50QXJncyBleHRlbmRzIElCYXNlRXZlbnRBcmdzIHtcbiAgICBjc3ZEYXRhOiBzdHJpbmc7XG59XG5cbi8qKlxuICogKipJZ25pdGUgVUkgZm9yIEFuZ3VsYXIgQ1NWIEV4cG9ydGVyIFNlcnZpY2UqKiAtXG4gKiBbRG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly93d3cuaW5mcmFnaXN0aWNzLmNvbS9wcm9kdWN0cy9pZ25pdGUtdWktYW5ndWxhci9hbmd1bGFyL2NvbXBvbmVudHMvZXhwb3J0ZXJfY3N2Lmh0bWwpXG4gKlxuICogVGhlIElnbml0ZSBVSSBmb3IgQW5ndWxhciBDU1YgRXhwb3J0ZXIgc2VydmljZSBjYW4gZXhwb3J0IGRhdGEgaW4gYSBDaGFyYWN0ZXIgU2VwYXJhdGVkIFZhbHVlcyBmb3JtYXQgZnJvbVxuICogYm90aCByYXcgZGF0YSAoYXJyYXkpIG9yIGZyb20gYW4gYElneEdyaWRgLlxuICpcbiAqIEV4YW1wbGU6XG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBwdWJsaWMgbG9jYWxEYXRhID0gW1xuICogICB7IE5hbWU6IFwiRXJpYyBSaWRsZXlcIiwgQWdlOiBcIjI2XCIgfSxcbiAqICAgeyBOYW1lOiBcIkFsYW5pcyBCcm9va1wiLCBBZ2U6IFwiMjJcIiB9LFxuICogICB7IE5hbWU6IFwiSm9uYXRoYW4gTW9ycmlzXCIsIEFnZTogXCIyM1wiIH1cbiAqIF07XG4gKlxuICogY29uc3RydWN0b3IocHJpdmF0ZSBjc3ZFeHBvcnRTZXJ2aWNlOiBJZ3hDc3ZFeHBvcnRlclNlcnZpY2UpIHtcbiAqIH1cbiAqXG4gKiBjb25zdCBvcHQ6IElneENzdkV4cG9ydGVyT3B0aW9ucyA9IG5ldyBJZ3hDc3ZFeHBvcnRlck9wdGlvbnMoXCJGaWxlTmFtZVwiLCBDc3ZGaWxlVHlwZXMuQ1NWKTtcbiAqIHRoaXMuY3N2RXhwb3J0U2VydmljZS5leHBvcnREYXRhKHRoaXMubG9jYWxEYXRhLCBvcHQpO1xuICogYGBgXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBJZ3hDc3ZFeHBvcnRlclNlcnZpY2UgZXh0ZW5kcyBJZ3hCYXNlRXhwb3J0ZXIge1xuICAgIHByaXZhdGUgX3N0cmluZ0RhdGE6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIFRoaXMgZXZlbnQgaXMgZW1pdHRlZCB3aGVuIHRoZSBleHBvcnQgcHJvY2VzcyBmaW5pc2hlcy5cbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogdGhpcy5leHBvcnRlclNlcnZpY2Uub25FeHBvcnRFbmRlZC5zdWJzY3JpYmUoKGFyZ3M6IElDc3ZFeHBvcnRFbmRlZEV2ZW50QXJncykgPT4ge1xuICAgICAqIC8vIHB1dCBldmVudCBoYW5kbGVyIGNvZGUgaGVyZVxuICAgICAqIH0pO1xuICAgICAqIGBgYFxuICAgICAqIEBtZW1iZXJvZiBJZ3hDc3ZFeHBvcnRlclNlcnZpY2VcbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgb25FeHBvcnRFbmRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8SUNzdkV4cG9ydEVuZGVkRXZlbnRBcmdzPigpO1xuXG4gICAgcHJvdGVjdGVkIGV4cG9ydERhdGFJbXBsZW1lbnRhdGlvbihkYXRhOiBhbnlbXSwgb3B0aW9uczogSWd4Q3N2RXhwb3J0ZXJPcHRpb25zKSB7XG4gICAgICAgIGRhdGEgPSBkYXRhLm1hcCgoaXRlbSkgPT4gaXRlbS5yb3dEYXRhKTtcbiAgICAgICAgY29uc3QgY3N2RGF0YSA9IG5ldyBDaGFyU2VwYXJhdGVkVmFsdWVEYXRhKGRhdGEsIG9wdGlvbnMudmFsdWVEZWxpbWl0ZXIpO1xuICAgICAgICB0aGlzLl9zdHJpbmdEYXRhID0gY3N2RGF0YS5wcmVwYXJlRGF0YSgpO1xuXG4gICAgICAgIHRoaXMuc2F2ZUZpbGUob3B0aW9ucyk7XG4gICAgICAgIHRoaXMub25FeHBvcnRFbmRlZC5lbWl0KHsgY3N2RGF0YTogdGhpcy5fc3RyaW5nRGF0YSB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNhdmVGaWxlKG9wdGlvbnM6IElneENzdkV4cG9ydGVyT3B0aW9ucykge1xuICAgICAgICBzd2l0Y2ggKG9wdGlvbnMuZmlsZVR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgQ3N2RmlsZVR5cGVzLkNTVjpcbiAgICAgICAgICAgICAgICB0aGlzLmV4cG9ydEZpbGUodGhpcy5fc3RyaW5nRGF0YSwgb3B0aW9ucy5maWxlTmFtZSwgJ3RleHQvY3N2O2NoYXJzZXQ9dXRmLTg7Jyk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIENzdkZpbGVUeXBlcy5UU1Y6XG4gICAgICAgICAgICBjYXNlIENzdkZpbGVUeXBlcy5UQUI6XG4gICAgICAgICAgICAgICAgdGhpcy5leHBvcnRGaWxlKHRoaXMuX3N0cmluZ0RhdGEsIG9wdGlvbnMuZmlsZU5hbWUsICd0ZXh0L3RhYi1zZXBhcmF0ZWQtdmFsdWVzO2NoYXJzZXQ9dXRmLTg7Jyk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGV4cG9ydEZpbGUoZGF0YTogc3RyaW5nLCBmaWxlTmFtZTogc3RyaW5nLCBmaWxlVHlwZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbJ1xcdWZlZmYnLCBkYXRhXSwgeyB0eXBlOiBmaWxlVHlwZSB9KTtcbiAgICAgICAgRXhwb3J0VXRpbGl0aWVzLnNhdmVCbG9iVG9GaWxlKGJsb2IsIGZpbGVOYW1lKTtcbiAgICB9XG59XG4iXX0=