UNPKG

@catull/igniteui-angular

Version:

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

116 lines 11.9 kB
import { IgxExporterOptionsBase } from '../exporter-common/exporter-options-base'; /** * Objects of this class are used to configure the CSV exporting process. */ export class IgxCsvExporterOptions extends IgxExporterOptionsBase { constructor(fileName, fileType) { super(fileName, IgxCsvExporterOptions.getExtensionFromFileType(fileType)); this.setFileType(fileType); this.setDelimiter(); } static getExtensionFromFileType(fType) { let extension = ''; switch (fType) { case CsvFileTypes.CSV: extension = '.csv'; break; case CsvFileTypes.TSV: extension = '.tsv'; break; case CsvFileTypes.TAB: extension = '.tab'; break; default: throw Error('Unsupported CSV file type!'); } return extension; } /** * Gets the value delimiter which will be used for the exporting operation. * ```typescript * let delimiter = this.exportOptions.valueDelimiter; * ``` * @memberof IgxCsvExporterOptions */ get valueDelimiter() { return this._valueDelimiter; } /** * Sets a value delimiter which will overwrite the default delimiter of the selected export format. * ```typescript * this.exportOptions.valueDelimiter = '|'; * ``` * @memberof IgxCsvExporterOptions */ set valueDelimiter(value) { this.setDelimiter(value); } /** * Gets the CSV export format. * ```typescript * let filetype = this.exportOptions.fileType; * ``` * @memberof IgxCsvExporterOptions */ get fileType() { return this._fileType; } /** * Sets the CSV export format. * ```typescript * this.exportOptions.fileType = CsvFileTypes.TAB; * ``` * @memberof IgxCsvExporterOptions */ set fileType(value) { this.setFileType(value); } setFileType(value) { if (value !== undefined && value !== null && value !== this._fileType) { this._fileType = value; const extension = IgxCsvExporterOptions.getExtensionFromFileType(value); if (!this.fileName.endsWith(extension)) { const oldExt = '.' + this.fileName.split('.').pop(); const newName = this.fileName.replace(oldExt, extension); this._fileExtension = extension; this.fileName = newName; } } } setDelimiter(value) { if (value !== undefined && value !== '' && value !== null) { this._valueDelimiter = value; } else { switch (this.fileType) { case CsvFileTypes.CSV: this._valueDelimiter = ','; break; case CsvFileTypes.TSV: case CsvFileTypes.TAB: this._valueDelimiter = '\t'; break; } } } } /** * This enumeration is used to configure the default value separator * as well as the default file extension used when performing CSV exporting. */ export var CsvFileTypes; (function (CsvFileTypes) { /** * Character Separated Values, default separator is "comma", default file extension is .csv */ CsvFileTypes[CsvFileTypes["CSV"] = 0] = "CSV"; /** * Tab Separated Values, default separator is tab, default file extension is .tsv */ CsvFileTypes[CsvFileTypes["TSV"] = 1] = "TSV"; /** * Tab Separated Values, default separator is tab, default file extension is .tab */ CsvFileTypes[CsvFileTypes["TAB"] = 2] = "TAB"; })(CsvFileTypes || (CsvFileTypes = {})); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3N2LWV4cG9ydGVyLW9wdGlvbnMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9pZ25pdGV1aS1hbmd1bGFyLyIsInNvdXJjZXMiOlsibGliL3NlcnZpY2VzL2Nzdi9jc3YtZXhwb3J0ZXItb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUVsRjs7R0FFRztBQUNILE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxzQkFBc0I7SUFLN0QsWUFBWSxRQUFnQixFQUFFLFFBQXNCO1FBQ2hELEtBQUssQ0FBQyxRQUFRLEVBQUUscUJBQXFCLENBQUMsd0JBQXdCLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUMxRSxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzNCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRU8sTUFBTSxDQUFDLHdCQUF3QixDQUFDLEtBQW1CO1FBQ3ZELElBQUksU0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNuQixRQUFRLEtBQUssRUFBRTtZQUNYLEtBQUssWUFBWSxDQUFDLEdBQUc7Z0JBQ2pCLFNBQVMsR0FBRyxNQUFNLENBQUM7Z0JBQ25CLE1BQU07WUFDVixLQUFLLFlBQVksQ0FBQyxHQUFHO2dCQUNqQixTQUFTLEdBQUcsTUFBTSxDQUFDO2dCQUNuQixNQUFNO1lBQ1YsS0FBSyxZQUFZLENBQUMsR0FBRztnQkFDakIsU0FBUyxHQUFHLE1BQU0sQ0FBQztnQkFDbkIsTUFBTTtZQUNWO2dCQUNJLE1BQU0sS0FBSyxDQUFDLDRCQUE0QixDQUFDLENBQUM7U0FDakQ7UUFDRCxPQUFPLFNBQVMsQ0FBQztJQUNyQixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsSUFBSSxjQUFjO1FBQ2QsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQ2hDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxJQUFJLGNBQWMsQ0FBQyxLQUFLO1FBQ3BCLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILElBQUksUUFBUTtRQUNSLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUMxQixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsSUFBSSxRQUFRLENBQUMsS0FBSztRQUNkLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVPLFdBQVcsQ0FBQyxLQUFLO1FBQ3JCLElBQUksS0FBSyxLQUFLLFNBQVMsSUFBSSxLQUFLLEtBQUssSUFBSSxJQUFJLEtBQUssS0FBSyxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ25FLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1lBQ3ZCLE1BQU0sU0FBUyxHQUFHLHFCQUFxQixDQUFDLHdCQUF3QixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3hFLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsRUFBRTtnQkFDcEMsTUFBTSxNQUFNLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDO2dCQUNwRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLENBQUM7Z0JBQ3pELElBQUksQ0FBQyxjQUFjLEdBQUcsU0FBUyxDQUFDO2dCQUNoQyxJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQzthQUMzQjtTQUNKO0lBQ0wsQ0FBQztJQUVPLFlBQVksQ0FBQyxLQUFNO1FBQ3ZCLElBQUksS0FBSyxLQUFLLFNBQVMsSUFBSSxLQUFLLEtBQUssRUFBRSxJQUFJLEtBQUssS0FBSyxJQUFJLEVBQUU7WUFDdkQsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7U0FDaEM7YUFBTTtZQUNILFFBQVEsSUFBSSxDQUFDLFFBQVEsRUFBRTtnQkFDbkIsS0FBSyxZQUFZLENBQUMsR0FBRztvQkFDakIsSUFBSSxDQUFDLGVBQWUsR0FBRyxHQUFHLENBQUM7b0JBQzNCLE1BQU07Z0JBQ1YsS0FBSyxZQUFZLENBQUMsR0FBRyxDQUFDO2dCQUN0QixLQUFLLFlBQVksQ0FBQyxHQUFHO29CQUNqQixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztvQkFDNUIsTUFBTTthQUNiO1NBQ0o7SUFDTCxDQUFDO0NBQ0o7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLENBQU4sSUFBWSxZQWFYO0FBYkQsV0FBWSxZQUFZO0lBQ3BCOztPQUVHO0lBQ0gsNkNBQUcsQ0FBQTtJQUNIOztPQUVHO0lBQ0gsNkNBQUcsQ0FBQTtJQUNIOztPQUVHO0lBQ0gsNkNBQUcsQ0FBQTtBQUNQLENBQUMsRUFiVyxZQUFZLEtBQVosWUFBWSxRQWF2QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElneEV4cG9ydGVyT3B0aW9uc0Jhc2UgfSBmcm9tICcuLi9leHBvcnRlci1jb21tb24vZXhwb3J0ZXItb3B0aW9ucy1iYXNlJztcblxuLyoqXG4gKiBPYmplY3RzIG9mIHRoaXMgY2xhc3MgYXJlIHVzZWQgdG8gY29uZmlndXJlIHRoZSBDU1YgZXhwb3J0aW5nIHByb2Nlc3MuXG4gKi9cbmV4cG9ydCBjbGFzcyBJZ3hDc3ZFeHBvcnRlck9wdGlvbnMgZXh0ZW5kcyBJZ3hFeHBvcnRlck9wdGlvbnNCYXNlIHtcblxuICAgIHByaXZhdGUgX3ZhbHVlRGVsaW1pdGVyO1xuICAgIHByaXZhdGUgX2ZpbGVUeXBlO1xuXG4gICAgY29uc3RydWN0b3IoZmlsZU5hbWU6IHN0cmluZywgZmlsZVR5cGU6IENzdkZpbGVUeXBlcykge1xuICAgICAgICBzdXBlcihmaWxlTmFtZSwgSWd4Q3N2RXhwb3J0ZXJPcHRpb25zLmdldEV4dGVuc2lvbkZyb21GaWxlVHlwZShmaWxlVHlwZSkpO1xuICAgICAgICB0aGlzLnNldEZpbGVUeXBlKGZpbGVUeXBlKTtcbiAgICAgICAgdGhpcy5zZXREZWxpbWl0ZXIoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXRpYyBnZXRFeHRlbnNpb25Gcm9tRmlsZVR5cGUoZlR5cGU6IENzdkZpbGVUeXBlcykge1xuICAgICAgICBsZXQgZXh0ZW5zaW9uID0gJyc7XG4gICAgICAgIHN3aXRjaCAoZlR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgQ3N2RmlsZVR5cGVzLkNTVjpcbiAgICAgICAgICAgICAgICBleHRlbnNpb24gPSAnLmNzdic7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIENzdkZpbGVUeXBlcy5UU1Y6XG4gICAgICAgICAgICAgICAgZXh0ZW5zaW9uID0gJy50c3YnO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBDc3ZGaWxlVHlwZXMuVEFCOlxuICAgICAgICAgICAgICAgIGV4dGVuc2lvbiA9ICcudGFiJztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoJ1Vuc3VwcG9ydGVkIENTViBmaWxlIHR5cGUhJyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGV4dGVuc2lvbjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSB2YWx1ZSBkZWxpbWl0ZXIgd2hpY2ggd2lsbCBiZSB1c2VkIGZvciB0aGUgZXhwb3J0aW5nIG9wZXJhdGlvbi5cbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogbGV0IGRlbGltaXRlciA9IHRoaXMuZXhwb3J0T3B0aW9ucy52YWx1ZURlbGltaXRlcjtcbiAgICAgKiBgYGBcbiAgICAgKiBAbWVtYmVyb2YgSWd4Q3N2RXhwb3J0ZXJPcHRpb25zXG4gICAgICovXG4gICAgZ2V0IHZhbHVlRGVsaW1pdGVyKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fdmFsdWVEZWxpbWl0ZXI7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cyBhIHZhbHVlIGRlbGltaXRlciB3aGljaCB3aWxsIG92ZXJ3cml0ZSB0aGUgZGVmYXVsdCBkZWxpbWl0ZXIgb2YgdGhlIHNlbGVjdGVkIGV4cG9ydCBmb3JtYXQuXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIHRoaXMuZXhwb3J0T3B0aW9ucy52YWx1ZURlbGltaXRlciA9ICd8JztcbiAgICAgKiBgYGBcbiAgICAgKiBAbWVtYmVyb2YgSWd4Q3N2RXhwb3J0ZXJPcHRpb25zXG4gICAgICovXG4gICAgc2V0IHZhbHVlRGVsaW1pdGVyKHZhbHVlKSB7XG4gICAgICAgIHRoaXMuc2V0RGVsaW1pdGVyKHZhbHVlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBDU1YgZXhwb3J0IGZvcm1hdC5cbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogbGV0IGZpbGV0eXBlID0gdGhpcy5leHBvcnRPcHRpb25zLmZpbGVUeXBlO1xuICAgICAqIGBgYFxuICAgICAqIEBtZW1iZXJvZiBJZ3hDc3ZFeHBvcnRlck9wdGlvbnNcbiAgICAgKi9cbiAgICBnZXQgZmlsZVR5cGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9maWxlVHlwZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSBDU1YgZXhwb3J0IGZvcm1hdC5cbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogdGhpcy5leHBvcnRPcHRpb25zLmZpbGVUeXBlID0gQ3N2RmlsZVR5cGVzLlRBQjtcbiAgICAgKiBgYGBcbiAgICAgKiBAbWVtYmVyb2YgSWd4Q3N2RXhwb3J0ZXJPcHRpb25zXG4gICAgICovXG4gICAgc2V0IGZpbGVUeXBlKHZhbHVlKSB7XG4gICAgICAgIHRoaXMuc2V0RmlsZVR5cGUodmFsdWUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0RmlsZVR5cGUodmFsdWUpIHtcbiAgICAgICAgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQgJiYgdmFsdWUgIT09IG51bGwgJiYgdmFsdWUgIT09IHRoaXMuX2ZpbGVUeXBlKSB7XG4gICAgICAgICAgICB0aGlzLl9maWxlVHlwZSA9IHZhbHVlO1xuICAgICAgICAgICAgY29uc3QgZXh0ZW5zaW9uID0gSWd4Q3N2RXhwb3J0ZXJPcHRpb25zLmdldEV4dGVuc2lvbkZyb21GaWxlVHlwZSh2YWx1ZSk7XG4gICAgICAgICAgICBpZiAoIXRoaXMuZmlsZU5hbWUuZW5kc1dpdGgoZXh0ZW5zaW9uKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IG9sZEV4dCA9ICcuJyArIHRoaXMuZmlsZU5hbWUuc3BsaXQoJy4nKS5wb3AoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBuZXdOYW1lID0gdGhpcy5maWxlTmFtZS5yZXBsYWNlKG9sZEV4dCwgZXh0ZW5zaW9uKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9maWxlRXh0ZW5zaW9uID0gZXh0ZW5zaW9uO1xuICAgICAgICAgICAgICAgIHRoaXMuZmlsZU5hbWUgPSBuZXdOYW1lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXREZWxpbWl0ZXIodmFsdWU/KSB7XG4gICAgICAgIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHZhbHVlICE9PSAnJyAmJiB2YWx1ZSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy5fdmFsdWVEZWxpbWl0ZXIgPSB2YWx1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHN3aXRjaCAodGhpcy5maWxlVHlwZSkge1xuICAgICAgICAgICAgICAgIGNhc2UgQ3N2RmlsZVR5cGVzLkNTVjpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fdmFsdWVEZWxpbWl0ZXIgPSAnLCc7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgQ3N2RmlsZVR5cGVzLlRTVjpcbiAgICAgICAgICAgICAgICBjYXNlIENzdkZpbGVUeXBlcy5UQUI6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3ZhbHVlRGVsaW1pdGVyID0gJ1xcdCc7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4vKipcbiAqIFRoaXMgZW51bWVyYXRpb24gaXMgdXNlZCB0byBjb25maWd1cmUgdGhlIGRlZmF1bHQgdmFsdWUgc2VwYXJhdG9yXG4gKiBhcyB3ZWxsIGFzIHRoZSBkZWZhdWx0IGZpbGUgZXh0ZW5zaW9uIHVzZWQgd2hlbiBwZXJmb3JtaW5nIENTViBleHBvcnRpbmcuXG4gKi9cbmV4cG9ydCBlbnVtIENzdkZpbGVUeXBlcyB7XG4gICAgLyoqXG4gICAgICogQ2hhcmFjdGVyIFNlcGFyYXRlZCBWYWx1ZXMsIGRlZmF1bHQgc2VwYXJhdG9yIGlzIFwiY29tbWFcIiwgZGVmYXVsdCBmaWxlIGV4dGVuc2lvbiBpcyAuY3N2XG4gICAgICovXG4gICAgQ1NWLFxuICAgIC8qKlxuICAgICAqIFRhYiBTZXBhcmF0ZWQgVmFsdWVzLCBkZWZhdWx0IHNlcGFyYXRvciBpcyB0YWIsIGRlZmF1bHQgZmlsZSBleHRlbnNpb24gaXMgLnRzdlxuICAgICAqL1xuICAgIFRTVixcbiAgICAvKipcbiAgICAgKiBUYWIgU2VwYXJhdGVkIFZhbHVlcywgZGVmYXVsdCBzZXBhcmF0b3IgaXMgdGFiLCBkZWZhdWx0IGZpbGUgZXh0ZW5zaW9uIGlzIC50YWJcbiAgICAgKi9cbiAgICBUQUJcbn1cbiJdfQ==