UNPKG

igniteui-angular

Version:

Ignite UI for Angular is a dependency-free Angular toolkit for building modern web apps

120 lines 9.44 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ 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'; /** * @record */ export function ICsvExportEndedEventArgs() { } if (false) { /** @type {?} */ ICsvExportEndedEventArgs.prototype.csvData; } /** * **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); * ``` */ export class IgxCsvExporterService extends IgxBaseExporter { constructor() { super(...arguments); /** * 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(); } /** * @protected * @param {?} data * @param {?} options * @return {?} */ exportDataImplementation(data, options) { /** @type {?} */ const csvData = new CharSeparatedValueData(data, options.valueDelimiter); this._stringData = csvData.prepareData(); this.saveFile(options); this.onExportEnded.emit({ csvData: this._stringData }); } /** * @private * @param {?} options * @return {?} */ saveFile(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; } } /** * @private * @param {?} data * @param {?} fileName * @param {?} fileType * @return {?} */ exportFile(data, fileName, fileType) { /** @type {?} */ const blob = new Blob(['\ufeff', data], { type: fileType }); ExportUtilities.saveBlobToFile(blob, fileName); } } IgxCsvExporterService.decorators = [ { type: Injectable } ]; IgxCsvExporterService.propDecorators = { onExportEnded: [{ type: Output }] }; if (false) { /** * @type {?} * @private */ IgxCsvExporterService.prototype._stringData; /** * This event is emitted when the export process finishes. * ```typescript * this.exporterService.onExportEnded.subscribe((args: ICsvExportEndedEventArgs) => { * // put event handler code here * }); * ``` * \@memberof IgxCsvExporterService * @type {?} */ IgxCsvExporterService.prototype.onExportEnded; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3N2LWV4cG9ydGVyLmpzIiwic291cmNlUm9vdCI6Im5nOi8vaWduaXRldWktYW5ndWxhci8iLCJzb3VyY2VzIjpbImxpYi9zZXJ2aWNlcy9jc3YvY3N2LWV4cG9ydGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsWUFBWSxFQUF5QixNQUFNLHdCQUF3QixDQUFDOzs7O0FBRTdFLDhDQUVDOzs7SUFERywyQ0FBZ0I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQTBCcEIsTUFBTSxPQUFPLHFCQUFzQixTQUFRLGVBQWU7SUFEMUQ7Ozs7Ozs7Ozs7O1FBY1csa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBNEIsQ0FBQztJQTBCeEUsQ0FBQzs7Ozs7OztJQXhCYSx3QkFBd0IsQ0FBQyxJQUFXLEVBQUUsT0FBOEI7O2NBQ3BFLE9BQU8sR0FBRyxJQUFJLHNCQUFzQixDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsY0FBYyxDQUFDO1FBQ3hFLElBQUksQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBRXpDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdkIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDM0QsQ0FBQzs7Ozs7O0lBRU8sUUFBUSxDQUFDLE9BQThCO1FBQzNDLFFBQVEsT0FBTyxDQUFDLFFBQVEsRUFBRTtZQUN0QixLQUFLLFlBQVksQ0FBQyxHQUFHO2dCQUNqQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLFFBQVEsRUFBRSx5QkFBeUIsQ0FBQyxDQUFDO2dCQUMvRSxNQUFNO1lBQ1YsS0FBSyxZQUFZLENBQUMsR0FBRyxDQUFDO1lBQ3RCLEtBQUssWUFBWSxDQUFDLEdBQUc7Z0JBQ2pCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxPQUFPLENBQUMsUUFBUSxFQUFFLDBDQUEwQyxDQUFDLENBQUM7Z0JBQ2hHLE1BQU07U0FDYjtJQUNMLENBQUM7Ozs7Ozs7O0lBRU8sVUFBVSxDQUFDLElBQVksRUFBRSxRQUFnQixFQUFFLFFBQWdCOztjQUN6RCxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLENBQUM7UUFDM0QsZUFBZSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDbkQsQ0FBQzs7O1lBdkNKLFVBQVU7Ozs0QkFhTixNQUFNOzs7Ozs7O0lBWFAsNENBQTRCOzs7Ozs7Ozs7OztJQVc1Qiw4Q0FDb0UiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudEVtaXR0ZXIsIEluamVjdGFibGUsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSWd4QmFzZUV4cG9ydGVyIH0gZnJvbSAnLi4vZXhwb3J0ZXItY29tbW9uL2Jhc2UtZXhwb3J0LXNlcnZpY2UnO1xuaW1wb3J0IHsgRXhwb3J0VXRpbGl0aWVzIH0gZnJvbSAnLi4vZXhwb3J0ZXItY29tbW9uL2V4cG9ydC11dGlsaXRpZXMnO1xuaW1wb3J0IHsgQ2hhclNlcGFyYXRlZFZhbHVlRGF0YSB9IGZyb20gJy4vY2hhci1zZXBhcmF0ZWQtdmFsdWUtZGF0YSc7XG5pbXBvcnQgeyBDc3ZGaWxlVHlwZXMsIElneENzdkV4cG9ydGVyT3B0aW9ucyB9IGZyb20gJy4vY3N2LWV4cG9ydGVyLW9wdGlvbnMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElDc3ZFeHBvcnRFbmRlZEV2ZW50QXJncyB7XG4gICAgY3N2RGF0YTogc3RyaW5nO1xufVxuXG4vKipcbiAqICoqSWduaXRlIFVJIGZvciBBbmd1bGFyIENTViBFeHBvcnRlciBTZXJ2aWNlKiogLVxuICogW0RvY3VtZW50YXRpb25dKGh0dHBzOi8vd3d3LmluZnJhZ2lzdGljcy5jb20vcHJvZHVjdHMvaWduaXRlLXVpLWFuZ3VsYXIvYW5ndWxhci9jb21wb25lbnRzL2V4cG9ydGVyX2Nzdi5odG1sKVxuICpcbiAqIFRoZSBJZ25pdGUgVUkgZm9yIEFuZ3VsYXIgQ1NWIEV4cG9ydGVyIHNlcnZpY2UgY2FuIGV4cG9ydCBkYXRhIGluIGEgQ2hhcmFjdGVyIFNlcGFyYXRlZCBWYWx1ZXMgZm9ybWF0IGZyb21cbiAqIGJvdGggcmF3IGRhdGEgKGFycmF5KSBvciBmcm9tIGFuIGBJZ3hHcmlkYC5cbiAqXG4gKiBFeGFtcGxlOlxuICogYGBgdHlwZXNjcmlwdFxuICogcHVibGljIGxvY2FsRGF0YSA9IFtcbiAqICAgeyBOYW1lOiBcIkVyaWMgUmlkbGV5XCIsIEFnZTogXCIyNlwiIH0sXG4gKiAgIHsgTmFtZTogXCJBbGFuaXMgQnJvb2tcIiwgQWdlOiBcIjIyXCIgfSxcbiAqICAgeyBOYW1lOiBcIkpvbmF0aGFuIE1vcnJpc1wiLCBBZ2U6IFwiMjNcIiB9XG4gKiBdO1xuICpcbiAqIGNvbnN0cnVjdG9yKHByaXZhdGUgY3N2RXhwb3J0U2VydmljZTogSWd4Q3N2RXhwb3J0ZXJTZXJ2aWNlKSB7XG4gKiB9XG4gKlxuICogY29uc3Qgb3B0OiBJZ3hDc3ZFeHBvcnRlck9wdGlvbnMgPSBuZXcgSWd4Q3N2RXhwb3J0ZXJPcHRpb25zKFwiRmlsZU5hbWVcIiwgQ3N2RmlsZVR5cGVzLkNTVik7XG4gKiB0aGlzLmNzdkV4cG9ydFNlcnZpY2UuZXhwb3J0RGF0YSh0aGlzLmxvY2FsRGF0YSwgb3B0KTtcbiAqIGBgYFxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgSWd4Q3N2RXhwb3J0ZXJTZXJ2aWNlIGV4dGVuZHMgSWd4QmFzZUV4cG9ydGVyIHtcbiAgICBwcml2YXRlIF9zdHJpbmdEYXRhOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIGV2ZW50IGlzIGVtaXR0ZWQgd2hlbiB0aGUgZXhwb3J0IHByb2Nlc3MgZmluaXNoZXMuXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIHRoaXMuZXhwb3J0ZXJTZXJ2aWNlLm9uRXhwb3J0RW5kZWQuc3Vic2NyaWJlKChhcmdzOiBJQ3N2RXhwb3J0RW5kZWRFdmVudEFyZ3MpID0+IHtcbiAgICAgKiAvLyBwdXQgZXZlbnQgaGFuZGxlciBjb2RlIGhlcmVcbiAgICAgKiB9KTtcbiAgICAgKiBgYGBcbiAgICAgKiBAbWVtYmVyb2YgSWd4Q3N2RXhwb3J0ZXJTZXJ2aWNlXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIG9uRXhwb3J0RW5kZWQgPSBuZXcgRXZlbnRFbWl0dGVyPElDc3ZFeHBvcnRFbmRlZEV2ZW50QXJncz4oKTtcblxuICAgIHByb3RlY3RlZCBleHBvcnREYXRhSW1wbGVtZW50YXRpb24oZGF0YTogYW55W10sIG9wdGlvbnM6IElneENzdkV4cG9ydGVyT3B0aW9ucykge1xuICAgICAgICBjb25zdCBjc3ZEYXRhID0gbmV3IENoYXJTZXBhcmF0ZWRWYWx1ZURhdGEoZGF0YSwgb3B0aW9ucy52YWx1ZURlbGltaXRlcik7XG4gICAgICAgIHRoaXMuX3N0cmluZ0RhdGEgPSBjc3ZEYXRhLnByZXBhcmVEYXRhKCk7XG5cbiAgICAgICAgdGhpcy5zYXZlRmlsZShvcHRpb25zKTtcbiAgICAgICAgdGhpcy5vbkV4cG9ydEVuZGVkLmVtaXQoeyBjc3ZEYXRhOiB0aGlzLl9zdHJpbmdEYXRhIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2F2ZUZpbGUob3B0aW9uczogSWd4Q3N2RXhwb3J0ZXJPcHRpb25zKSB7XG4gICAgICAgIHN3aXRjaCAob3B0aW9ucy5maWxlVHlwZSkge1xuICAgICAgICAgICAgY2FzZSBDc3ZGaWxlVHlwZXMuQ1NWOlxuICAgICAgICAgICAgICAgIHRoaXMuZXhwb3J0RmlsZSh0aGlzLl9zdHJpbmdEYXRhLCBvcHRpb25zLmZpbGVOYW1lLCAndGV4dC9jc3Y7Y2hhcnNldD11dGYtODsnKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgQ3N2RmlsZVR5cGVzLlRTVjpcbiAgICAgICAgICAgIGNhc2UgQ3N2RmlsZVR5cGVzLlRBQjpcbiAgICAgICAgICAgICAgICB0aGlzLmV4cG9ydEZpbGUodGhpcy5fc3RyaW5nRGF0YSwgb3B0aW9ucy5maWxlTmFtZSwgJ3RleHQvdGFiLXNlcGFyYXRlZC12YWx1ZXM7Y2hhcnNldD11dGYtODsnKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZXhwb3J0RmlsZShkYXRhOiBzdHJpbmcsIGZpbGVOYW1lOiBzdHJpbmcsIGZpbGVUeXBlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgYmxvYiA9IG5ldyBCbG9iKFsnXFx1ZmVmZicsIGRhdGFdLCB7IHR5cGU6IGZpbGVUeXBlIH0pO1xuICAgICAgICBFeHBvcnRVdGlsaXRpZXMuc2F2ZUJsb2JUb0ZpbGUoYmxvYiwgZmlsZU5hbWUpO1xuICAgIH1cbn1cbiJdfQ==