igniteui-angular
Version:
Ignite UI for Angular is a dependency-free Angular toolkit for building modern web apps
120 lines • 9.44 kB
JavaScript
/**
* @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==