ng2csv 0.5.0 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/ng2csv.umd.js +326 -228
- package/bundles/ng2csv.umd.js.map +1 -1
- package/bundles/ng2csv.umd.min.js +2 -2
- package/bundles/ng2csv.umd.min.js.map +1 -1
- package/esm2015/lib/auto-csv-row-mapper.class.js +1 -1
- package/esm2015/lib/csv-configuration.class.js +1 -1
- package/esm2015/lib/csv-row-mapper.interface.js +2 -1
- package/esm2015/lib/ng2csv.module.js +6 -8
- package/esm2015/lib/ng2csv.service.js +8 -10
- package/esm2015/lib/ordered-projection-csv-row-mapper.class.js +1 -1
- package/esm2015/ng2csv.js +1 -1
- package/esm2015/public-api.js +2 -1
- package/fesm2015/ng2csv.js +12 -13
- package/fesm2015/ng2csv.js.map +1 -1
- package/package.json +9 -11
- package/esm5/lib/auto-csv-row-mapper.class.js +0 -85
- package/esm5/lib/csv-configuration.class.js +0 -13
- package/esm5/lib/csv-row-mapper.interface.js +0 -1
- package/esm5/lib/ng2csv.module.js +0 -12
- package/esm5/lib/ng2csv.service.js +0 -85
- package/esm5/lib/ordered-projection-csv-row-mapper.class.js +0 -14
- package/esm5/ng2csv.js +0 -5
- package/esm5/public-api.js +0 -9
- package/fesm5/ng2csv.js +0 -208
- package/fesm5/ng2csv.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,22 +1,20 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ng2csv",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"dependencies": {
|
|
5
|
+
"tslib": "^2.0.0"
|
|
6
|
+
},
|
|
4
7
|
"peerDependencies": {
|
|
5
|
-
"@angular/common": "^
|
|
6
|
-
"@angular/core": "^
|
|
8
|
+
"@angular/common": "^11.0.0",
|
|
9
|
+
"@angular/core": "^11.0.0",
|
|
7
10
|
"file-saver": "^2.0.0"
|
|
8
11
|
},
|
|
9
12
|
"main": "bundles/ng2csv.umd.js",
|
|
10
|
-
"module": "
|
|
13
|
+
"module": "fesm2015/ng2csv.js",
|
|
11
14
|
"es2015": "fesm2015/ng2csv.js",
|
|
12
|
-
"esm5": "esm5/ng2csv.js",
|
|
13
15
|
"esm2015": "esm2015/ng2csv.js",
|
|
14
|
-
"fesm5": "fesm5/ng2csv.js",
|
|
15
16
|
"fesm2015": "fesm2015/ng2csv.js",
|
|
16
17
|
"typings": "ng2csv.d.ts",
|
|
17
18
|
"metadata": "ng2csv.metadata.json",
|
|
18
|
-
"sideEffects": false
|
|
19
|
-
|
|
20
|
-
"tslib": "^1.10.0"
|
|
21
|
-
}
|
|
22
|
-
}
|
|
19
|
+
"sideEffects": false
|
|
20
|
+
}
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
import { __values } from "tslib";
|
|
2
|
-
import { OrderedProjectionCsvRowMapper } from './ordered-projection-csv-row-mapper.class';
|
|
3
|
-
var AutoCsvRowMapper = /** @class */ (function () {
|
|
4
|
-
function AutoCsvRowMapper(data) {
|
|
5
|
-
var e_1, _a;
|
|
6
|
-
if (!data || data.length === 0) {
|
|
7
|
-
throw new Error('Parameter \'data\' must be a non-empty array of objects.');
|
|
8
|
-
}
|
|
9
|
-
if (typeof data[0] !== 'object') {
|
|
10
|
-
throw new Error('Parameter \'data\' must contain objects.');
|
|
11
|
-
}
|
|
12
|
-
var projections = [];
|
|
13
|
-
var allKeys = this.getAllKeys(data);
|
|
14
|
-
try {
|
|
15
|
-
for (var allKeys_1 = __values(allKeys), allKeys_1_1 = allKeys_1.next(); !allKeys_1_1.done; allKeys_1_1 = allKeys_1.next()) {
|
|
16
|
-
var key = allKeys_1_1.value;
|
|
17
|
-
projections.push([
|
|
18
|
-
key,
|
|
19
|
-
this.createProjection(key)
|
|
20
|
-
]);
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
24
|
-
finally {
|
|
25
|
-
try {
|
|
26
|
-
if (allKeys_1_1 && !allKeys_1_1.done && (_a = allKeys_1.return)) _a.call(allKeys_1);
|
|
27
|
-
}
|
|
28
|
-
finally { if (e_1) throw e_1.error; }
|
|
29
|
-
}
|
|
30
|
-
this.derivedCsvRowMapper = new OrderedProjectionCsvRowMapper(projections);
|
|
31
|
-
}
|
|
32
|
-
AutoCsvRowMapper.prototype.getColumnNames = function () {
|
|
33
|
-
return this.derivedCsvRowMapper.getColumnNames();
|
|
34
|
-
};
|
|
35
|
-
AutoCsvRowMapper.prototype.map = function (obj) {
|
|
36
|
-
return this.derivedCsvRowMapper.map(obj);
|
|
37
|
-
};
|
|
38
|
-
AutoCsvRowMapper.prototype.createProjection = function (property) {
|
|
39
|
-
return function (x) {
|
|
40
|
-
if (x.hasOwnProperty(property)) {
|
|
41
|
-
var propertyValue = x[property];
|
|
42
|
-
if (propertyValue === undefined || propertyValue === null) {
|
|
43
|
-
return '';
|
|
44
|
-
}
|
|
45
|
-
return propertyValue.toString();
|
|
46
|
-
}
|
|
47
|
-
else {
|
|
48
|
-
return '';
|
|
49
|
-
}
|
|
50
|
-
};
|
|
51
|
-
};
|
|
52
|
-
AutoCsvRowMapper.prototype.getAllKeys = function (objs) {
|
|
53
|
-
var e_2, _a, e_3, _b;
|
|
54
|
-
var allKeys = {};
|
|
55
|
-
try {
|
|
56
|
-
for (var objs_1 = __values(objs), objs_1_1 = objs_1.next(); !objs_1_1.done; objs_1_1 = objs_1.next()) {
|
|
57
|
-
var obj = objs_1_1.value;
|
|
58
|
-
try {
|
|
59
|
-
for (var _c = (e_3 = void 0, __values(Object.keys(obj))), _d = _c.next(); !_d.done; _d = _c.next()) {
|
|
60
|
-
var objectKey = _d.value;
|
|
61
|
-
allKeys[objectKey] = 1;
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
catch (e_3_1) { e_3 = { error: e_3_1 }; }
|
|
65
|
-
finally {
|
|
66
|
-
try {
|
|
67
|
-
if (_d && !_d.done && (_b = _c.return)) _b.call(_c);
|
|
68
|
-
}
|
|
69
|
-
finally { if (e_3) throw e_3.error; }
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
74
|
-
finally {
|
|
75
|
-
try {
|
|
76
|
-
if (objs_1_1 && !objs_1_1.done && (_a = objs_1.return)) _a.call(objs_1);
|
|
77
|
-
}
|
|
78
|
-
finally { if (e_2) throw e_2.error; }
|
|
79
|
-
}
|
|
80
|
-
return Object.keys(allKeys);
|
|
81
|
-
};
|
|
82
|
-
return AutoCsvRowMapper;
|
|
83
|
-
}());
|
|
84
|
-
export { AutoCsvRowMapper };
|
|
85
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0by1jc3Ytcm93LW1hcHBlci5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25nMmNzdi8iLCJzb3VyY2VzIjpbImxpYi9hdXRvLWNzdi1yb3ctbWFwcGVyLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUUxRjtJQUlFLDBCQUFtQixJQUFTOztRQUMxQixJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQzlCLE1BQU0sSUFBSSxLQUFLLENBQ2IsMERBQTBELENBQUMsQ0FBQztTQUMvRDtRQUVELElBQUksT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssUUFBUSxFQUFFO1lBQy9CLE1BQU0sSUFBSSxLQUFLLENBQ2IsMENBQTBDLENBQzNDLENBQUM7U0FDSDtRQUVELElBQU0sV0FBVyxHQUF3QyxFQUFFLENBQUM7UUFFNUQsSUFBTSxPQUFPLEdBQWEsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQzs7WUFDaEQsS0FBa0IsSUFBQSxZQUFBLFNBQUEsT0FBTyxDQUFBLGdDQUFBLHFEQUFFO2dCQUF0QixJQUFNLEdBQUcsb0JBQUE7Z0JBQ1osV0FBVyxDQUFDLElBQUksQ0FBQztvQkFDZixHQUFHO29CQUNILElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUM7aUJBQzNCLENBQUMsQ0FBQzthQUNKOzs7Ozs7Ozs7UUFFRCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSw2QkFBNkIsQ0FDMUQsV0FBVyxDQUNaLENBQUM7SUFDSixDQUFDO0lBRU0seUNBQWMsR0FBckI7UUFDRSxPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUNuRCxDQUFDO0lBRU0sOEJBQUcsR0FBVixVQUFXLEdBQU07UUFDZixPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVPLDJDQUFnQixHQUF4QixVQUF5QixRQUFnQjtRQUN2QyxPQUFPLFVBQUMsQ0FBSTtZQUNWLElBQUksQ0FBQyxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsRUFBRTtnQkFDOUIsSUFBTSxhQUFhLEdBQUksQ0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUMzQyxJQUFJLGFBQWEsS0FBSyxTQUFTLElBQUksYUFBYSxLQUFLLElBQUksRUFBRTtvQkFDekQsT0FBTyxFQUFFLENBQUM7aUJBQ1g7Z0JBQ0QsT0FBTyxhQUFhLENBQUMsUUFBUSxFQUFFLENBQUM7YUFDakM7aUJBQU07Z0JBQ0wsT0FBTyxFQUFFLENBQUM7YUFDWDtRQUNILENBQUMsQ0FBQztJQUNKLENBQUM7SUFFTyxxQ0FBVSxHQUFsQixVQUFtQixJQUFTOztRQUMxQixJQUFNLE9BQU8sR0FBUSxFQUFFLENBQUM7O1lBRXhCLEtBQWtCLElBQUEsU0FBQSxTQUFBLElBQUksQ0FBQSwwQkFBQSw0Q0FBRTtnQkFBbkIsSUFBTSxHQUFHLGlCQUFBOztvQkFDWixLQUF3QixJQUFBLG9CQUFBLFNBQUEsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQSxDQUFBLGdCQUFBLDRCQUFFO3dCQUFyQyxJQUFNLFNBQVMsV0FBQTt3QkFDbEIsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQztxQkFDeEI7Ozs7Ozs7OzthQUNGOzs7Ozs7Ozs7UUFFRCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUNILHVCQUFDO0FBQUQsQ0FBQyxBQWhFRCxJQWdFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElDc3ZSb3dNYXBwZXIgfSBmcm9tICcuL2Nzdi1yb3ctbWFwcGVyLmludGVyZmFjZSc7XG5pbXBvcnQgeyBPcmRlcmVkUHJvamVjdGlvbkNzdlJvd01hcHBlciB9IGZyb20gJy4vb3JkZXJlZC1wcm9qZWN0aW9uLWNzdi1yb3ctbWFwcGVyLmNsYXNzJztcblxuZXhwb3J0IGNsYXNzIEF1dG9Dc3ZSb3dNYXBwZXI8VD4gaW1wbGVtZW50cyBJQ3N2Um93TWFwcGVyPFQ+IHtcblxuICBwcml2YXRlIGRlcml2ZWRDc3ZSb3dNYXBwZXI6IE9yZGVyZWRQcm9qZWN0aW9uQ3N2Um93TWFwcGVyPFQ+O1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihkYXRhOiBUW10pIHtcbiAgICBpZiAoIWRhdGEgfHwgZGF0YS5sZW5ndGggPT09IDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ1BhcmFtZXRlciBcXCdkYXRhXFwnIG11c3QgYmUgYSBub24tZW1wdHkgYXJyYXkgb2Ygb2JqZWN0cy4nKTtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIGRhdGFbMF0gIT09ICdvYmplY3QnKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdQYXJhbWV0ZXIgXFwnZGF0YVxcJyBtdXN0IGNvbnRhaW4gb2JqZWN0cy4nXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IHByb2plY3Rpb25zOiBBcnJheTxbc3RyaW5nLCAob2JqOiBUKSA9PiBzdHJpbmddPiA9IFtdO1xuXG4gICAgY29uc3QgYWxsS2V5czogc3RyaW5nW10gPSB0aGlzLmdldEFsbEtleXMoZGF0YSk7XG4gICAgZm9yIChjb25zdCBrZXkgb2YgYWxsS2V5cykge1xuICAgICAgcHJvamVjdGlvbnMucHVzaChbXG4gICAgICAgIGtleSxcbiAgICAgICAgdGhpcy5jcmVhdGVQcm9qZWN0aW9uKGtleSlcbiAgICAgIF0pO1xuICAgIH1cblxuICAgIHRoaXMuZGVyaXZlZENzdlJvd01hcHBlciA9IG5ldyBPcmRlcmVkUHJvamVjdGlvbkNzdlJvd01hcHBlcjxUPihcbiAgICAgIHByb2plY3Rpb25zXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRDb2x1bW5OYW1lcygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMuZGVyaXZlZENzdlJvd01hcHBlci5nZXRDb2x1bW5OYW1lcygpO1xuICB9XG5cbiAgcHVibGljIG1hcChvYmo6IFQpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMuZGVyaXZlZENzdlJvd01hcHBlci5tYXAob2JqKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlUHJvamVjdGlvbihwcm9wZXJ0eTogc3RyaW5nKTogKG9iajogVCkgPT4gc3RyaW5nIHtcbiAgICByZXR1cm4gKHg6IFQpID0+IHtcbiAgICAgIGlmICh4Lmhhc093blByb3BlcnR5KHByb3BlcnR5KSkge1xuICAgICAgICBjb25zdCBwcm9wZXJ0eVZhbHVlID0gKHggYXMgYW55KVtwcm9wZXJ0eV07XG4gICAgICAgIGlmIChwcm9wZXJ0eVZhbHVlID09PSB1bmRlZmluZWQgfHwgcHJvcGVydHlWYWx1ZSA9PT0gbnVsbCkge1xuICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcHJvcGVydHlWYWx1ZS50b1N0cmluZygpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuICcnO1xuICAgICAgfVxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGdldEFsbEtleXMob2JqczogVFtdKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IGFsbEtleXM6IGFueSA9IHt9O1xuXG4gICAgZm9yIChjb25zdCBvYmogb2Ygb2Jqcykge1xuICAgICAgZm9yIChjb25zdCBvYmplY3RLZXkgb2YgT2JqZWN0LmtleXMob2JqKSkge1xuICAgICAgICBhbGxLZXlzW29iamVjdEtleV0gPSAxO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBPYmplY3Qua2V5cyhhbGxLZXlzKTtcbiAgfVxufVxuIl19
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
var CsvConfiguration = /** @class */ (function () {
|
|
2
|
-
function CsvConfiguration() {
|
|
3
|
-
this.delimiter = ',';
|
|
4
|
-
this.quote = '"';
|
|
5
|
-
this.newLine = '\r\n';
|
|
6
|
-
this.includeHeaderLine = true;
|
|
7
|
-
this.outputValueForNull = '';
|
|
8
|
-
this.outputValueForUndefined = '';
|
|
9
|
-
}
|
|
10
|
-
return CsvConfiguration;
|
|
11
|
-
}());
|
|
12
|
-
export { CsvConfiguration };
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3N2LWNvbmZpZ3VyYXRpb24uY2xhc3MuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZzJjc3YvIiwic291cmNlcyI6WyJsaWIvY3N2LWNvbmZpZ3VyYXRpb24uY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7SUFBQTtRQUNTLGNBQVMsR0FBRyxHQUFHLENBQUM7UUFDaEIsVUFBSyxHQUFHLEdBQUcsQ0FBQztRQUNaLFlBQU8sR0FBRyxNQUFNLENBQUM7UUFDakIsc0JBQWlCLEdBQUcsSUFBSSxDQUFDO1FBQ3pCLHVCQUFrQixHQUFHLEVBQUUsQ0FBQztRQUN4Qiw0QkFBdUIsR0FBRyxFQUFFLENBQUM7SUFDdEMsQ0FBQztJQUFELHVCQUFDO0FBQUQsQ0FBQyxBQVBELElBT0MiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgQ3N2Q29uZmlndXJhdGlvbiB7XG4gIHB1YmxpYyBkZWxpbWl0ZXIgPSAnLCc7XG4gIHB1YmxpYyBxdW90ZSA9ICdcIic7XG4gIHB1YmxpYyBuZXdMaW5lID0gJ1xcclxcbic7XG4gIHB1YmxpYyBpbmNsdWRlSGVhZGVyTGluZSA9IHRydWU7XG4gIHB1YmxpYyBvdXRwdXRWYWx1ZUZvck51bGwgPSAnJztcbiAgcHVibGljIG91dHB1dFZhbHVlRm9yVW5kZWZpbmVkID0gJyc7XG59XG4iXX0=
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3N2LXJvdy1tYXBwZXIuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmcyY3N2LyIsInNvdXJjZXMiOlsibGliL2Nzdi1yb3ctbWFwcGVyLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBJQ3N2Um93TWFwcGVyPFQ+IHtcbiAgZ2V0Q29sdW1uTmFtZXMoKTogc3RyaW5nW107XG4gIG1hcChvYmo6IFQpOiBzdHJpbmdbXTtcbn1cbiJdfQ==
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { __decorate } from "tslib";
|
|
2
|
-
import { NgModule } from '@angular/core';
|
|
3
|
-
var Ng2CsvModule = /** @class */ (function () {
|
|
4
|
-
function Ng2CsvModule() {
|
|
5
|
-
}
|
|
6
|
-
Ng2CsvModule = __decorate([
|
|
7
|
-
NgModule({})
|
|
8
|
-
], Ng2CsvModule);
|
|
9
|
-
return Ng2CsvModule;
|
|
10
|
-
}());
|
|
11
|
-
export { Ng2CsvModule };
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmcyY3N2Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25nMmNzdi8iLCJzb3VyY2VzIjpbImxpYi9uZzJjc3YubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3pDO0lBQUE7SUFBNEIsQ0FBQztJQUFoQixZQUFZO1FBRHhCLFFBQVEsQ0FBQyxFQUFFLENBQUM7T0FDQSxZQUFZLENBQUk7SUFBRCxtQkFBQztDQUFBLEFBQTdCLElBQTZCO1NBQWhCLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ATmdNb2R1bGUoe30pXG5leHBvcnQgY2xhc3MgTmcyQ3N2TW9kdWxlIHsgfVxuIl19
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
import { __decorate, __values } from "tslib";
|
|
2
|
-
import { Injectable } from '@angular/core';
|
|
3
|
-
import { saveAs } from 'file-saver';
|
|
4
|
-
import { AutoCsvRowMapper } from './auto-csv-row-mapper.class';
|
|
5
|
-
import { CsvConfiguration } from './csv-configuration.class';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
var Ng2CsvService = /** @class */ (function () {
|
|
8
|
-
function Ng2CsvService() {
|
|
9
|
-
}
|
|
10
|
-
Ng2CsvService.prototype.download = function (data, filename, csvRowMapper, config) {
|
|
11
|
-
if (config === void 0) { config = new CsvConfiguration(); }
|
|
12
|
-
var csvData = this.convertToCsv(data, csvRowMapper, config);
|
|
13
|
-
var mimeType = 'text/csv; header='
|
|
14
|
-
+ (config.includeHeaderLine ? 'present' : 'absent');
|
|
15
|
-
var csvBlob = new Blob([csvData], { type: mimeType });
|
|
16
|
-
saveAs(csvBlob, filename, true);
|
|
17
|
-
};
|
|
18
|
-
Ng2CsvService.prototype.convertToCsv = function (data, csvRowMapper, config) {
|
|
19
|
-
var e_1, _a;
|
|
20
|
-
var _this = this;
|
|
21
|
-
if (config === void 0) { config = new CsvConfiguration(); }
|
|
22
|
-
if (csvRowMapper === undefined) {
|
|
23
|
-
csvRowMapper = new AutoCsvRowMapper(data);
|
|
24
|
-
}
|
|
25
|
-
var rows = [];
|
|
26
|
-
if (config.includeHeaderLine) {
|
|
27
|
-
var headerFieldSeparator = "" + config.quote + config.delimiter + config.quote;
|
|
28
|
-
rows.push(config.quote
|
|
29
|
-
+ csvRowMapper.getColumnNames()
|
|
30
|
-
.map(function (x) { return _this.escapeQuotes(x, config.quote); })
|
|
31
|
-
.join(headerFieldSeparator)
|
|
32
|
-
+ config.quote);
|
|
33
|
-
}
|
|
34
|
-
try {
|
|
35
|
-
for (var data_1 = __values(data), data_1_1 = data_1.next(); !data_1_1.done; data_1_1 = data_1.next()) {
|
|
36
|
-
var row = data_1_1.value;
|
|
37
|
-
rows.push(csvRowMapper.map(row)
|
|
38
|
-
.map(function (x) { return _this.mapNullOrUndefinedValues(x, config); })
|
|
39
|
-
.map(function (x) { return _this.escapeRowValue(x, config); })
|
|
40
|
-
.join(config.delimiter));
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
44
|
-
finally {
|
|
45
|
-
try {
|
|
46
|
-
if (data_1_1 && !data_1_1.done && (_a = data_1.return)) _a.call(data_1);
|
|
47
|
-
}
|
|
48
|
-
finally { if (e_1) throw e_1.error; }
|
|
49
|
-
}
|
|
50
|
-
return rows.join(config.newLine);
|
|
51
|
-
};
|
|
52
|
-
Ng2CsvService.prototype.mapNullOrUndefinedValues = function (value, config) {
|
|
53
|
-
switch (value) {
|
|
54
|
-
case null: {
|
|
55
|
-
return config.outputValueForNull;
|
|
56
|
-
}
|
|
57
|
-
case undefined: {
|
|
58
|
-
return config.outputValueForUndefined;
|
|
59
|
-
}
|
|
60
|
-
default: {
|
|
61
|
-
return value;
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
};
|
|
65
|
-
Ng2CsvService.prototype.escapeQuotes = function (value, quoteChar) {
|
|
66
|
-
return value.replace(new RegExp(quoteChar.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'), 'g'), quoteChar + quoteChar);
|
|
67
|
-
};
|
|
68
|
-
Ng2CsvService.prototype.escapeRowValue = function (value, config) {
|
|
69
|
-
if (value.indexOf(config.delimiter) > -1
|
|
70
|
-
|| value.indexOf(config.quote) > -1) {
|
|
71
|
-
var escapedValue = this.escapeQuotes(value, config.quote);
|
|
72
|
-
return "" + config.quote + escapedValue + config.quote;
|
|
73
|
-
}
|
|
74
|
-
return value;
|
|
75
|
-
};
|
|
76
|
-
Ng2CsvService.ɵprov = i0.ɵɵdefineInjectable({ factory: function Ng2CsvService_Factory() { return new Ng2CsvService(); }, token: Ng2CsvService, providedIn: "root" });
|
|
77
|
-
Ng2CsvService = __decorate([
|
|
78
|
-
Injectable({
|
|
79
|
-
providedIn: 'root'
|
|
80
|
-
})
|
|
81
|
-
], Ng2CsvService);
|
|
82
|
-
return Ng2CsvService;
|
|
83
|
-
}());
|
|
84
|
-
export { Ng2CsvService };
|
|
85
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmcyY3N2LnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZzJjc3YvIiwic291cmNlcyI6WyJsaWIvbmcyY3N2LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNwQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7QUFNN0Q7SUFBQTtLQStFQztJQTlFUSxnQ0FBUSxHQUFmLFVBQ0ksSUFBUyxFQUNULFFBQWdCLEVBQ2hCLFlBQStCLEVBQy9CLE1BQWlEO1FBQWpELHVCQUFBLEVBQUEsYUFBK0IsZ0JBQWdCLEVBQUU7UUFDbkQsSUFBTSxPQUFPLEdBQVcsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRXRFLElBQU0sUUFBUSxHQUFXLG1CQUFtQjtjQUN4QyxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUV0RCxJQUFNLE9BQU8sR0FBUyxJQUFJLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDOUQsTUFBTSxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVNLG9DQUFZLEdBQW5CLFVBQ0ksSUFBUyxFQUNULFlBQStCLEVBQy9CLE1BQWlEOztRQUhyRCxpQkE0QkM7UUF6QkcsdUJBQUEsRUFBQSxhQUErQixnQkFBZ0IsRUFBRTtRQUNuRCxJQUFJLFlBQVksS0FBSyxTQUFTLEVBQUU7WUFDOUIsWUFBWSxHQUFHLElBQUks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ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgc2F2ZUFzIH0gZnJvbSAnZmlsZS1zYXZlcic7XG5pbXBvcnQgeyBBdXRvQ3N2Um93TWFwcGVyIH0gZnJvbSAnLi9hdXRvLWNzdi1yb3ctbWFwcGVyLmNsYXNzJztcbmltcG9ydCB7IENzdkNvbmZpZ3VyYXRpb24gfSBmcm9tICcuL2Nzdi1jb25maWd1cmF0aW9uLmNsYXNzJztcbmltcG9ydCB7IElDc3ZSb3dNYXBwZXIgfSBmcm9tICcuL2Nzdi1yb3ctbWFwcGVyLmludGVyZmFjZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIE5nMkNzdlNlcnZpY2Uge1xuICBwdWJsaWMgZG93bmxvYWQ8VD4oXG4gICAgICBkYXRhOiBUW10sXG4gICAgICBmaWxlbmFtZTogc3RyaW5nLFxuICAgICAgY3N2Um93TWFwcGVyPzogSUNzdlJvd01hcHBlcjxUPixcbiAgICAgIGNvbmZpZzogQ3N2Q29uZmlndXJhdGlvbiA9IG5ldyBDc3ZDb25maWd1cmF0aW9uKCkpOiB2b2lkIHtcbiAgICBjb25zdCBjc3ZEYXRhOiBzdHJpbmcgPSB0aGlzLmNvbnZlcnRUb0NzdihkYXRhLCBjc3ZSb3dNYXBwZXIsIGNvbmZpZyk7XG5cbiAgICBjb25zdCBtaW1lVHlwZTogc3RyaW5nID0gJ3RleHQvY3N2OyBoZWFkZXI9J1xuICAgICAgKyAoY29uZmlnLmluY2x1ZGVIZWFkZXJMaW5lID8gJ3ByZXNlbnQnIDogJ2Fic2VudCcpO1xuXG4gICAgY29uc3QgY3N2QmxvYjogQmxvYiA9IG5ldyBCbG9iKFtjc3ZEYXRhXSwgeyB0eXBlOiBtaW1lVHlwZSB9KTtcbiAgICBzYXZlQXMoY3N2QmxvYiwgZmlsZW5hbWUsIHRydWUpO1xuICB9XG5cbiAgcHVibGljIGNvbnZlcnRUb0NzdjxUPihcbiAgICAgIGRhdGE6IFRbXSxcbiAgICAgIGNzdlJvd01hcHBlcj86IElDc3ZSb3dNYXBwZXI8VD4sXG4gICAgICBjb25maWc6IENzdkNvbmZpZ3VyYXRpb24gPSBuZXcgQ3N2Q29uZmlndXJhdGlvbigpKTogc3RyaW5nIHtcbiAgICBpZiAoY3N2Um93TWFwcGVyID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGNzdlJvd01hcHBlciA9IG5ldyBBdXRvQ3N2Um93TWFwcGVyKGRhdGEpO1xuICAgIH1cblxuICAgIGNvbnN0IHJvd3M6IHN0cmluZ1tdID0gW107XG5cbiAgICBpZiAoY29uZmlnLmluY2x1ZGVIZWFkZXJMaW5lKSB7XG4gICAgICBjb25zdCBoZWFkZXJGaWVsZFNlcGFyYXRvciA9XG4gICAgICAgIGAke2NvbmZpZy5xdW90ZX0ke2NvbmZpZy5kZWxpbWl0ZXJ9JHtjb25maWcucXVvdGV9YDtcbiAgICAgIHJvd3MucHVzaChjb25maWcucXVvdGVcbiAgICAgICAgKyBjc3ZSb3dNYXBwZXIuZ2V0Q29sdW1uTmFtZXMoKVxuICAgICAgICAgIC5tYXAoeCA9PiB0aGlzLmVzY2FwZVF1b3Rlcyh4LCBjb25maWcucXVvdGUpKVxuICAgICAgICAgIC5qb2luKGhlYWRlckZpZWxkU2VwYXJhdG9yKVxuICAgICAgICArIGNvbmZpZy5xdW90ZSk7XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCByb3cgb2YgZGF0YSkge1xuICAgICAgcm93cy5wdXNoKGNzdlJvd01hcHBlci5tYXAocm93KVxuICAgICAgICAubWFwKHggPT4gdGhpcy5tYXBOdWxsT3JVbmRlZmluZWRWYWx1ZXMoeCwgY29uZmlnKSlcbiAgICAgICAgLm1hcCh4ID0+IHRoaXMuZXNjYXBlUm93VmFsdWUoeCwgY29uZmlnKSlcbiAgICAgICAgLmpvaW4oY29uZmlnLmRlbGltaXRlcikpO1xuICAgIH1cblxuICAgIHJldHVybiByb3dzLmpvaW4oY29uZmlnLm5ld0xpbmUpO1xuICB9XG5cbiAgcHJpdmF0ZSBtYXBOdWxsT3JVbmRlZmluZWRWYWx1ZXMoXG4gICAgICB2YWx1ZTogc3RyaW5nLFxuICAgICAgY29uZmlnOiBDc3ZDb25maWd1cmF0aW9uKTogc3RyaW5nIHtcbiAgICBzd2l0Y2ggKHZhbHVlKSB7XG4gICAgICBjYXNlIG51bGw6IHtcbiAgICAgICAgcmV0dXJuIGNvbmZpZy5vdXRwdXRWYWx1ZUZvck51bGw7XG4gICAgICB9XG4gICAgICBjYXNlIHVuZGVmaW5lZDoge1xuICAgICAgICByZXR1cm4gY29uZmlnLm91dHB1dFZhbHVlRm9yVW5kZWZpbmVkO1xuICAgICAgfVxuICAgICAgZGVmYXVsdDoge1xuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBlc2NhcGVRdW90ZXMoXG4gICAgICB2YWx1ZTogc3RyaW5nLFxuICAgICAgcXVvdGVDaGFyOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiB2YWx1ZS5yZXBsYWNlKFxuICAgICAgbmV3IFJlZ0V4cChxdW90ZUNoYXIucmVwbGFjZSgvWy4qKz9eJHt9KCl8W1xcXVxcXFxdL2csICdcXFxcJCYnKSwgJ2cnKSxcbiAgICAgIHF1b3RlQ2hhciArIHF1b3RlQ2hhcik7XG4gIH1cblxuICBwcml2YXRlIGVzY2FwZVJvd1ZhbHVlKFxuICAgICAgdmFsdWU6IHN0cmluZyxcbiAgICAgIGNvbmZpZzogQ3N2Q29uZmlndXJhdGlvbik6IHN0cmluZyB7XG4gICAgaWYgKHZhbHVlLmluZGV4T2YoY29uZmlnLmRlbGltaXRlcikgPiAtMVxuICAgICAgICB8fCB2YWx1ZS5pbmRleE9mKGNvbmZpZy5xdW90ZSkgPiAtMSkge1xuICAgICAgY29uc3QgZXNjYXBlZFZhbHVlID0gdGhpcy5lc2NhcGVRdW90ZXModmFsdWUsIGNvbmZpZy5xdW90ZSk7XG4gICAgICByZXR1cm4gYCR7Y29uZmlnLnF1b3RlfSR7ZXNjYXBlZFZhbHVlfSR7Y29uZmlnLnF1b3RlfWA7XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxufVxuIl19
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
var OrderedProjectionCsvRowMapper = /** @class */ (function () {
|
|
2
|
-
function OrderedProjectionCsvRowMapper(projections) {
|
|
3
|
-
this.projections = projections;
|
|
4
|
-
}
|
|
5
|
-
OrderedProjectionCsvRowMapper.prototype.getColumnNames = function () {
|
|
6
|
-
return this.projections.map(function (x) { return x[0]; });
|
|
7
|
-
};
|
|
8
|
-
OrderedProjectionCsvRowMapper.prototype.map = function (obj) {
|
|
9
|
-
return this.projections.map(function (x) { return x[1](obj); });
|
|
10
|
-
};
|
|
11
|
-
return OrderedProjectionCsvRowMapper;
|
|
12
|
-
}());
|
|
13
|
-
export { OrderedProjectionCsvRowMapper };
|
|
14
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXJlZC1wcm9qZWN0aW9uLWNzdi1yb3ctbWFwcGVyLmNsYXNzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmcyY3N2LyIsInNvdXJjZXMiOlsibGliL29yZGVyZWQtcHJvamVjdGlvbi1jc3Ytcm93LW1hcHBlci5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTtJQUtFLHVDQUNJLFdBQWdEO1FBQ2xELElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO0lBQ2pDLENBQUM7SUFFTSxzREFBYyxHQUFyQjtRQUNFLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsVUFBQSxDQUFDLElBQUksT0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUosQ0FBSSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVNLDJDQUFHLEdBQVYsVUFBVyxHQUFNO1FBQ2YsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxVQUFBLENBQUMsSUFBSSxPQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBVCxDQUFTLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBQ0gsb0NBQUM7QUFBRCxDQUFDLEFBakJELElBaUJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSUNzdlJvd01hcHBlciB9IGZyb20gJy4vY3N2LXJvdy1tYXBwZXIuaW50ZXJmYWNlJztcblxuZXhwb3J0IGNsYXNzIE9yZGVyZWRQcm9qZWN0aW9uQ3N2Um93TWFwcGVyPFQ+XG4gICAgaW1wbGVtZW50cyBJQ3N2Um93TWFwcGVyPFQ+IHtcblxuICBwcml2YXRlIHByb2plY3Rpb25zOiBBcnJheTxbc3RyaW5nLCAob2JqOiBUKSA9PiBzdHJpbmddPjtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgICBwcm9qZWN0aW9uczogQXJyYXk8W3N0cmluZywgKG9iajogVCkgPT4gc3RyaW5nXT4pIHtcbiAgICB0aGlzLnByb2plY3Rpb25zID0gcHJvamVjdGlvbnM7XG4gIH1cblxuICBwdWJsaWMgZ2V0Q29sdW1uTmFtZXMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLnByb2plY3Rpb25zLm1hcCh4ID0+IHhbMF0pO1xuICB9XG5cbiAgcHVibGljIG1hcChvYmo6IFQpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMucHJvamVjdGlvbnMubWFwKHggPT4geFsxXShvYmopKTtcbiAgfVxufVxuIl19
|
package/esm5/ng2csv.js
DELETED
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
export * from './public-api';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmcyY3N2LmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmcyY3N2LyIsInNvdXJjZXMiOlsibmcyY3N2LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG4iXX0=
|
package/esm5/public-api.js
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Public API Surface of ng2csv
|
|
3
|
-
*/
|
|
4
|
-
export * from './lib/ng2csv.service';
|
|
5
|
-
export * from './lib/ng2csv.module';
|
|
6
|
-
export * from './lib/auto-csv-row-mapper.class';
|
|
7
|
-
export * from './lib/csv-configuration.class';
|
|
8
|
-
export * from './lib/ordered-projection-csv-row-mapper.class';
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25nMmNzdi8iLCJzb3VyY2VzIjpbInB1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLCtCQUErQixDQUFDO0FBRTlDLGNBQWMsK0NBQStDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIG5nMmNzdlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL25nMmNzdi5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL25nMmNzdi5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXV0by1jc3Ytcm93LW1hcHBlci5jbGFzcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jc3YtY29uZmlndXJhdGlvbi5jbGFzcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jc3Ytcm93LW1hcHBlci5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvb3JkZXJlZC1wcm9qZWN0aW9uLWNzdi1yb3ctbWFwcGVyLmNsYXNzJztcbiJdfQ==
|
package/fesm5/ng2csv.js
DELETED
|
@@ -1,208 +0,0 @@
|
|
|
1
|
-
import { __values, __decorate } from 'tslib';
|
|
2
|
-
import { ɵɵdefineInjectable, Injectable, NgModule } from '@angular/core';
|
|
3
|
-
import { saveAs } from 'file-saver';
|
|
4
|
-
|
|
5
|
-
var OrderedProjectionCsvRowMapper = /** @class */ (function () {
|
|
6
|
-
function OrderedProjectionCsvRowMapper(projections) {
|
|
7
|
-
this.projections = projections;
|
|
8
|
-
}
|
|
9
|
-
OrderedProjectionCsvRowMapper.prototype.getColumnNames = function () {
|
|
10
|
-
return this.projections.map(function (x) { return x[0]; });
|
|
11
|
-
};
|
|
12
|
-
OrderedProjectionCsvRowMapper.prototype.map = function (obj) {
|
|
13
|
-
return this.projections.map(function (x) { return x[1](obj); });
|
|
14
|
-
};
|
|
15
|
-
return OrderedProjectionCsvRowMapper;
|
|
16
|
-
}());
|
|
17
|
-
|
|
18
|
-
var AutoCsvRowMapper = /** @class */ (function () {
|
|
19
|
-
function AutoCsvRowMapper(data) {
|
|
20
|
-
var e_1, _a;
|
|
21
|
-
if (!data || data.length === 0) {
|
|
22
|
-
throw new Error('Parameter \'data\' must be a non-empty array of objects.');
|
|
23
|
-
}
|
|
24
|
-
if (typeof data[0] !== 'object') {
|
|
25
|
-
throw new Error('Parameter \'data\' must contain objects.');
|
|
26
|
-
}
|
|
27
|
-
var projections = [];
|
|
28
|
-
var allKeys = this.getAllKeys(data);
|
|
29
|
-
try {
|
|
30
|
-
for (var allKeys_1 = __values(allKeys), allKeys_1_1 = allKeys_1.next(); !allKeys_1_1.done; allKeys_1_1 = allKeys_1.next()) {
|
|
31
|
-
var key = allKeys_1_1.value;
|
|
32
|
-
projections.push([
|
|
33
|
-
key,
|
|
34
|
-
this.createProjection(key)
|
|
35
|
-
]);
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
39
|
-
finally {
|
|
40
|
-
try {
|
|
41
|
-
if (allKeys_1_1 && !allKeys_1_1.done && (_a = allKeys_1.return)) _a.call(allKeys_1);
|
|
42
|
-
}
|
|
43
|
-
finally { if (e_1) throw e_1.error; }
|
|
44
|
-
}
|
|
45
|
-
this.derivedCsvRowMapper = new OrderedProjectionCsvRowMapper(projections);
|
|
46
|
-
}
|
|
47
|
-
AutoCsvRowMapper.prototype.getColumnNames = function () {
|
|
48
|
-
return this.derivedCsvRowMapper.getColumnNames();
|
|
49
|
-
};
|
|
50
|
-
AutoCsvRowMapper.prototype.map = function (obj) {
|
|
51
|
-
return this.derivedCsvRowMapper.map(obj);
|
|
52
|
-
};
|
|
53
|
-
AutoCsvRowMapper.prototype.createProjection = function (property) {
|
|
54
|
-
return function (x) {
|
|
55
|
-
if (x.hasOwnProperty(property)) {
|
|
56
|
-
var propertyValue = x[property];
|
|
57
|
-
if (propertyValue === undefined || propertyValue === null) {
|
|
58
|
-
return '';
|
|
59
|
-
}
|
|
60
|
-
return propertyValue.toString();
|
|
61
|
-
}
|
|
62
|
-
else {
|
|
63
|
-
return '';
|
|
64
|
-
}
|
|
65
|
-
};
|
|
66
|
-
};
|
|
67
|
-
AutoCsvRowMapper.prototype.getAllKeys = function (objs) {
|
|
68
|
-
var e_2, _a, e_3, _b;
|
|
69
|
-
var allKeys = {};
|
|
70
|
-
try {
|
|
71
|
-
for (var objs_1 = __values(objs), objs_1_1 = objs_1.next(); !objs_1_1.done; objs_1_1 = objs_1.next()) {
|
|
72
|
-
var obj = objs_1_1.value;
|
|
73
|
-
try {
|
|
74
|
-
for (var _c = (e_3 = void 0, __values(Object.keys(obj))), _d = _c.next(); !_d.done; _d = _c.next()) {
|
|
75
|
-
var objectKey = _d.value;
|
|
76
|
-
allKeys[objectKey] = 1;
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
catch (e_3_1) { e_3 = { error: e_3_1 }; }
|
|
80
|
-
finally {
|
|
81
|
-
try {
|
|
82
|
-
if (_d && !_d.done && (_b = _c.return)) _b.call(_c);
|
|
83
|
-
}
|
|
84
|
-
finally { if (e_3) throw e_3.error; }
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
89
|
-
finally {
|
|
90
|
-
try {
|
|
91
|
-
if (objs_1_1 && !objs_1_1.done && (_a = objs_1.return)) _a.call(objs_1);
|
|
92
|
-
}
|
|
93
|
-
finally { if (e_2) throw e_2.error; }
|
|
94
|
-
}
|
|
95
|
-
return Object.keys(allKeys);
|
|
96
|
-
};
|
|
97
|
-
return AutoCsvRowMapper;
|
|
98
|
-
}());
|
|
99
|
-
|
|
100
|
-
var CsvConfiguration = /** @class */ (function () {
|
|
101
|
-
function CsvConfiguration() {
|
|
102
|
-
this.delimiter = ',';
|
|
103
|
-
this.quote = '"';
|
|
104
|
-
this.newLine = '\r\n';
|
|
105
|
-
this.includeHeaderLine = true;
|
|
106
|
-
this.outputValueForNull = '';
|
|
107
|
-
this.outputValueForUndefined = '';
|
|
108
|
-
}
|
|
109
|
-
return CsvConfiguration;
|
|
110
|
-
}());
|
|
111
|
-
|
|
112
|
-
var Ng2CsvService = /** @class */ (function () {
|
|
113
|
-
function Ng2CsvService() {
|
|
114
|
-
}
|
|
115
|
-
Ng2CsvService.prototype.download = function (data, filename, csvRowMapper, config) {
|
|
116
|
-
if (config === void 0) { config = new CsvConfiguration(); }
|
|
117
|
-
var csvData = this.convertToCsv(data, csvRowMapper, config);
|
|
118
|
-
var mimeType = 'text/csv; header='
|
|
119
|
-
+ (config.includeHeaderLine ? 'present' : 'absent');
|
|
120
|
-
var csvBlob = new Blob([csvData], { type: mimeType });
|
|
121
|
-
saveAs(csvBlob, filename, true);
|
|
122
|
-
};
|
|
123
|
-
Ng2CsvService.prototype.convertToCsv = function (data, csvRowMapper, config) {
|
|
124
|
-
var e_1, _a;
|
|
125
|
-
var _this = this;
|
|
126
|
-
if (config === void 0) { config = new CsvConfiguration(); }
|
|
127
|
-
if (csvRowMapper === undefined) {
|
|
128
|
-
csvRowMapper = new AutoCsvRowMapper(data);
|
|
129
|
-
}
|
|
130
|
-
var rows = [];
|
|
131
|
-
if (config.includeHeaderLine) {
|
|
132
|
-
var headerFieldSeparator = "" + config.quote + config.delimiter + config.quote;
|
|
133
|
-
rows.push(config.quote
|
|
134
|
-
+ csvRowMapper.getColumnNames()
|
|
135
|
-
.map(function (x) { return _this.escapeQuotes(x, config.quote); })
|
|
136
|
-
.join(headerFieldSeparator)
|
|
137
|
-
+ config.quote);
|
|
138
|
-
}
|
|
139
|
-
try {
|
|
140
|
-
for (var data_1 = __values(data), data_1_1 = data_1.next(); !data_1_1.done; data_1_1 = data_1.next()) {
|
|
141
|
-
var row = data_1_1.value;
|
|
142
|
-
rows.push(csvRowMapper.map(row)
|
|
143
|
-
.map(function (x) { return _this.mapNullOrUndefinedValues(x, config); })
|
|
144
|
-
.map(function (x) { return _this.escapeRowValue(x, config); })
|
|
145
|
-
.join(config.delimiter));
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
149
|
-
finally {
|
|
150
|
-
try {
|
|
151
|
-
if (data_1_1 && !data_1_1.done && (_a = data_1.return)) _a.call(data_1);
|
|
152
|
-
}
|
|
153
|
-
finally { if (e_1) throw e_1.error; }
|
|
154
|
-
}
|
|
155
|
-
return rows.join(config.newLine);
|
|
156
|
-
};
|
|
157
|
-
Ng2CsvService.prototype.mapNullOrUndefinedValues = function (value, config) {
|
|
158
|
-
switch (value) {
|
|
159
|
-
case null: {
|
|
160
|
-
return config.outputValueForNull;
|
|
161
|
-
}
|
|
162
|
-
case undefined: {
|
|
163
|
-
return config.outputValueForUndefined;
|
|
164
|
-
}
|
|
165
|
-
default: {
|
|
166
|
-
return value;
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
};
|
|
170
|
-
Ng2CsvService.prototype.escapeQuotes = function (value, quoteChar) {
|
|
171
|
-
return value.replace(new RegExp(quoteChar.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'), 'g'), quoteChar + quoteChar);
|
|
172
|
-
};
|
|
173
|
-
Ng2CsvService.prototype.escapeRowValue = function (value, config) {
|
|
174
|
-
if (value.indexOf(config.delimiter) > -1
|
|
175
|
-
|| value.indexOf(config.quote) > -1) {
|
|
176
|
-
var escapedValue = this.escapeQuotes(value, config.quote);
|
|
177
|
-
return "" + config.quote + escapedValue + config.quote;
|
|
178
|
-
}
|
|
179
|
-
return value;
|
|
180
|
-
};
|
|
181
|
-
Ng2CsvService.ɵprov = ɵɵdefineInjectable({ factory: function Ng2CsvService_Factory() { return new Ng2CsvService(); }, token: Ng2CsvService, providedIn: "root" });
|
|
182
|
-
Ng2CsvService = __decorate([
|
|
183
|
-
Injectable({
|
|
184
|
-
providedIn: 'root'
|
|
185
|
-
})
|
|
186
|
-
], Ng2CsvService);
|
|
187
|
-
return Ng2CsvService;
|
|
188
|
-
}());
|
|
189
|
-
|
|
190
|
-
var Ng2CsvModule = /** @class */ (function () {
|
|
191
|
-
function Ng2CsvModule() {
|
|
192
|
-
}
|
|
193
|
-
Ng2CsvModule = __decorate([
|
|
194
|
-
NgModule({})
|
|
195
|
-
], Ng2CsvModule);
|
|
196
|
-
return Ng2CsvModule;
|
|
197
|
-
}());
|
|
198
|
-
|
|
199
|
-
/*
|
|
200
|
-
* Public API Surface of ng2csv
|
|
201
|
-
*/
|
|
202
|
-
|
|
203
|
-
/**
|
|
204
|
-
* Generated bundle index. Do not edit.
|
|
205
|
-
*/
|
|
206
|
-
|
|
207
|
-
export { AutoCsvRowMapper, CsvConfiguration, Ng2CsvModule, Ng2CsvService, OrderedProjectionCsvRowMapper };
|
|
208
|
-
//# sourceMappingURL=ng2csv.js.map
|
package/fesm5/ng2csv.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ng2csv.js","sources":["ng://ng2csv/lib/ordered-projection-csv-row-mapper.class.ts","ng://ng2csv/lib/auto-csv-row-mapper.class.ts","ng://ng2csv/lib/csv-configuration.class.ts","ng://ng2csv/lib/ng2csv.service.ts","ng://ng2csv/lib/ng2csv.module.ts","ng://ng2csv/public-api.ts","ng://ng2csv/ng2csv.ts"],"sourcesContent":["import { ICsvRowMapper } from './csv-row-mapper.interface';\n\nexport class OrderedProjectionCsvRowMapper<T>\n implements ICsvRowMapper<T> {\n\n private projections: Array<[string, (obj: T) => string]>;\n\n public constructor(\n projections: Array<[string, (obj: T) => string]>) {\n this.projections = projections;\n }\n\n public getColumnNames(): string[] {\n return this.projections.map(x => x[0]);\n }\n\n public map(obj: T): string[] {\n return this.projections.map(x => x[1](obj));\n }\n}\n","import { ICsvRowMapper } from './csv-row-mapper.interface';\nimport { OrderedProjectionCsvRowMapper } from './ordered-projection-csv-row-mapper.class';\n\nexport class AutoCsvRowMapper<T> implements ICsvRowMapper<T> {\n\n private derivedCsvRowMapper: OrderedProjectionCsvRowMapper<T>;\n\n public constructor(data: T[]) {\n if (!data || data.length === 0) {\n throw new Error(\n 'Parameter \\'data\\' must be a non-empty array of objects.');\n }\n\n if (typeof data[0] !== 'object') {\n throw new Error(\n 'Parameter \\'data\\' must contain objects.'\n );\n }\n\n const projections: Array<[string, (obj: T) => string]> = [];\n\n const allKeys: string[] = this.getAllKeys(data);\n for (const key of allKeys) {\n projections.push([\n key,\n this.createProjection(key)\n ]);\n }\n\n this.derivedCsvRowMapper = new OrderedProjectionCsvRowMapper<T>(\n projections\n );\n }\n\n public getColumnNames(): string[] {\n return this.derivedCsvRowMapper.getColumnNames();\n }\n\n public map(obj: T): string[] {\n return this.derivedCsvRowMapper.map(obj);\n }\n\n private createProjection(property: string): (obj: T) => string {\n return (x: T) => {\n if (x.hasOwnProperty(property)) {\n const propertyValue = (x as any)[property];\n if (propertyValue === undefined || propertyValue === null) {\n return '';\n }\n return propertyValue.toString();\n } else {\n return '';\n }\n };\n }\n\n private getAllKeys(objs: T[]): string[] {\n const allKeys: any = {};\n\n for (const obj of objs) {\n for (const objectKey of Object.keys(obj)) {\n allKeys[objectKey] = 1;\n }\n }\n\n return Object.keys(allKeys);\n }\n}\n","export class CsvConfiguration {\n public delimiter = ',';\n public quote = '\"';\n public newLine = '\\r\\n';\n public includeHeaderLine = true;\n public outputValueForNull = '';\n public outputValueForUndefined = '';\n}\n","import { Injectable } from '@angular/core';\nimport { saveAs } from 'file-saver';\nimport { AutoCsvRowMapper } from './auto-csv-row-mapper.class';\nimport { CsvConfiguration } from './csv-configuration.class';\nimport { ICsvRowMapper } from './csv-row-mapper.interface';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class Ng2CsvService {\n public download<T>(\n data: T[],\n filename: string,\n csvRowMapper?: ICsvRowMapper<T>,\n config: CsvConfiguration = new CsvConfiguration()): void {\n const csvData: string = this.convertToCsv(data, csvRowMapper, config);\n\n const mimeType: string = 'text/csv; header='\n + (config.includeHeaderLine ? 'present' : 'absent');\n\n const csvBlob: Blob = new Blob([csvData], { type: mimeType });\n saveAs(csvBlob, filename, true);\n }\n\n public convertToCsv<T>(\n data: T[],\n csvRowMapper?: ICsvRowMapper<T>,\n config: CsvConfiguration = new CsvConfiguration()): string {\n if (csvRowMapper === undefined) {\n csvRowMapper = new AutoCsvRowMapper(data);\n }\n\n const rows: string[] = [];\n\n if (config.includeHeaderLine) {\n const headerFieldSeparator =\n `${config.quote}${config.delimiter}${config.quote}`;\n rows.push(config.quote\n + csvRowMapper.getColumnNames()\n .map(x => this.escapeQuotes(x, config.quote))\n .join(headerFieldSeparator)\n + config.quote);\n }\n\n for (const row of data) {\n rows.push(csvRowMapper.map(row)\n .map(x => this.mapNullOrUndefinedValues(x, config))\n .map(x => this.escapeRowValue(x, config))\n .join(config.delimiter));\n }\n\n return rows.join(config.newLine);\n }\n\n private mapNullOrUndefinedValues(\n value: string,\n config: CsvConfiguration): string {\n switch (value) {\n case null: {\n return config.outputValueForNull;\n }\n case undefined: {\n return config.outputValueForUndefined;\n }\n default: {\n return value;\n }\n }\n }\n\n private escapeQuotes(\n value: string,\n quoteChar: string): string {\n return value.replace(\n new RegExp(quoteChar.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&'), 'g'),\n quoteChar + quoteChar);\n }\n\n private escapeRowValue(\n value: string,\n config: CsvConfiguration): string {\n if (value.indexOf(config.delimiter) > -1\n || value.indexOf(config.quote) > -1) {\n const escapedValue = this.escapeQuotes(value, config.quote);\n return `${config.quote}${escapedValue}${config.quote}`;\n }\n return value;\n }\n}\n","import { NgModule } from '@angular/core';\n\n@NgModule({})\nexport class Ng2CsvModule { }\n","/*\n * Public API Surface of ng2csv\n */\n\nexport * from './lib/ng2csv.service';\nexport * from './lib/ng2csv.module';\nexport * from './lib/auto-csv-row-mapper.class';\nexport * from './lib/csv-configuration.class';\nexport * from './lib/csv-row-mapper.interface';\nexport * from './lib/ordered-projection-csv-row-mapper.class';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|