igniteui-angular 16.0.3 → 16.0.4

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.
@@ -31,30 +31,29 @@ export class CharSeparatedValueData {
31
31
  }
32
32
  this._isSpecialData = ExportUtilities.isSpecialData(this._data[0]);
33
33
  this._escapeCharacters.push(this._delimiter);
34
- this._headerRecord = this.processHeaderRecord(keys);
34
+ this._headerRecord = this.processHeaderRecord(keys, this._data.length);
35
35
  this._dataRecords = this.processDataRecords(this._data, keys);
36
36
  return this._headerRecord + this._dataRecords;
37
37
  }
38
38
  prepareDataAsync(done) {
39
- if (!this._data || this._data.length === 0) {
40
- done('');
41
- }
42
39
  const columns = this.columns?.filter(c => !c.skip)
43
40
  .sort((a, b) => a.startIndex - b.startIndex)
44
41
  .sort((a, b) => a.pinnedIndex - b.pinnedIndex);
45
42
  const keys = columns && columns.length ? columns.map(c => c.field) : ExportUtilities.getKeysFromData(this._data);
46
- if (keys.length === 0) {
47
- done('');
48
- }
49
43
  this._isSpecialData = ExportUtilities.isSpecialData(this._data[0]);
50
44
  this._escapeCharacters.push(this._delimiter);
51
45
  const headers = columns && columns.length ?
52
46
  columns.map(c => c.header ?? c.field) :
53
47
  keys;
54
- this._headerRecord = this.processHeaderRecord(headers);
55
- this.processDataRecordsAsync(this._data, keys, (dr) => {
56
- done(this._headerRecord + dr);
57
- });
48
+ this._headerRecord = this.processHeaderRecord(headers, this._data.length);
49
+ if (keys.length === 0 || ((!this._data || this._data.length === 0) && keys.length === 0)) {
50
+ done('');
51
+ }
52
+ else {
53
+ this.processDataRecordsAsync(this._data, keys, (dr) => {
54
+ done(this._headerRecord + dr);
55
+ });
56
+ }
58
57
  }
59
58
  processField(value, escapeChars) {
60
59
  let safeValue = ExportUtilities.hasValue(value) ? String(value) : '';
@@ -63,12 +62,13 @@ export class CharSeparatedValueData {
63
62
  }
64
63
  return safeValue + this._delimiter;
65
64
  }
66
- processHeaderRecord(keys) {
65
+ processHeaderRecord(keys, dataLength) {
67
66
  let recordData = '';
68
67
  for (const keyName of keys) {
69
68
  recordData += this.processField(keyName, this._escapeCharacters);
70
69
  }
71
- return recordData.slice(0, -this._delimiterLength) + this._eor;
70
+ const result = recordData.slice(0, -this._delimiterLength);
71
+ return dataLength > 0 ? result + this._eor : result;
72
72
  }
73
73
  processRecord(record, keys) {
74
74
  const recordData = new Array(keys.length);
@@ -100,4 +100,4 @@ export class CharSeparatedValueData {
100
100
  this._delimiterLength = value.length;
101
101
  }
102
102
  }
103
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhci1zZXBhcmF0ZWQtdmFsdWUtZGF0YS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9zZXJ2aWNlcy9jc3YvY2hhci1zZXBhcmF0ZWQtdmFsdWUtZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDdEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBR2hEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLHNCQUFzQjtJQVMvQixZQUFvQixLQUFZLEVBQUUsY0FBc0IsRUFBVSxVQUF5QixFQUFFO1FBQXpFLFVBQUssR0FBTCxLQUFLLENBQU87UUFBa0MsWUFBTyxHQUFQLE9BQU8sQ0FBb0I7UUFSckYsa0JBQWEsR0FBRyxFQUFFLENBQUM7UUFDbkIsaUJBQVksR0FBRyxFQUFFLENBQUM7UUFDbEIsU0FBSSxHQUFHLE1BQU0sQ0FBQztRQUVkLHNCQUFpQixHQUFHLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztRQUN6QyxxQkFBZ0IsR0FBRyxDQUFDLENBQUM7UUFDckIsbUJBQWMsR0FBRyxLQUFLLENBQUM7UUFHM0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRU0sV0FBVyxDQUFDLEdBQVc7UUFDMUIsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ3hDLE9BQU8sRUFBRSxDQUFDO1NBQ2I7UUFDRCxJQUFJLElBQUksR0FBRyxFQUFFLENBQUM7UUFDZCxJQUFJLEdBQUcsRUFBQztZQUNKLElBQUksR0FBRyxHQUFHLENBQUM7U0FDZDthQUFLO1lBQ0YsSUFBSSxHQUFHLGVBQWUsQ0FBQyxlQUFlLENBQUMs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Q0FBQyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBRU8sWUFBWSxDQUFDLEtBQUs7UUFDdEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7UUFDeEIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7SUFDekMsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXhwb3J0VXRpbGl0aWVzIH0gZnJvbSAnLi4vZXhwb3J0ZXItY29tbW9uL2V4cG9ydC11dGlsaXRpZXMnO1xuaW1wb3J0IHsgeWllbGRpbmdMb29wIH0gZnJvbSAnLi4vLi4vY29yZS91dGlscyc7XG5pbXBvcnQgeyBJQ29sdW1uSW5mbyB9IGZyb20gJy4uL2V4cG9ydGVyLWNvbW1vbi9iYXNlLWV4cG9ydC1zZXJ2aWNlJztcblxuLyoqXG4gKiBAaGlkZGVuXG4gKi9cbmV4cG9ydCBjbGFzcyBDaGFyU2VwYXJhdGVkVmFsdWVEYXRhIHtcbiAgICBwcml2YXRlIF9oZWFkZXJSZWNvcmQgPSAnJztcbiAgICBwcml2YXRlIF9kYXRhUmVjb3JkcyA9ICcnO1xuICAgIHByaXZhdGUgX2VvciA9ICdcXHJcXG4nO1xuICAgIHByaXZhdGUgX2RlbGltaXRlcjtcbiAgICBwcml2YXRlIF9lc2NhcGVDaGFyYWN0ZXJzID0gWydcXHInLCAnXFxuJywgJ1xcclxcbiddO1xuICAgIHByaXZhdGUgX2RlbGltaXRlckxlbmd0aCA9IDE7XG4gICAgcHJpdmF0ZSBfaXNTcGVjaWFsRGF0YSA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfZGF0YTogYW55W10sIHZhbHVlRGVsaW1pdGVyOiBzdHJpbmcsIHByaXZhdGUgY29sdW1uczogSUNvbHVtbkluZm9bXSA9IFtdKSAge1xuICAgICAgICB0aGlzLnNldERlbGltaXRlcih2YWx1ZURlbGltaXRlcik7XG4gICAgfVxuXG4gICAgcHVibGljIHByZXBhcmVEYXRhKGtleT86IGFueVtdKSB7XG4gICAgICAgIGlmICghdGhpcy5fZGF0YSB8fCB0aGlzLl9kYXRhLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICB9XG4gICAgICAgIGxldCBrZXlzID0gW107XG4gICAgICAgIGlmIChrZXkpe1xuICAgICAgICAgICAga2V5cyA9IGtleTtcbiAgICAgICAgfWVsc2Uge1xuICAgICAgICAgICAga2V5cyA9IEV4cG9ydFV0aWxpdGllcy5nZXRLZXlzRnJvbURhdGEodGhpcy5fZGF0YSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoa2V5cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2lzU3BlY2lhbERhdGEgPSBFeHBvcnRVdGlsaXRpZXMuaXNTcGVjaWFsRGF0YSh0aGlzLl9kYXRhWzBdKTtcbiAgICAgICAgdGhpcy5fZXNjYXBlQ2hhcmFjdGVycy5wdXNoKHRoaXMuX2RlbGltaXRlcik7XG5cbiAgICAgICAgdGhpcy5faGVhZGVyUmVjb3JkID0gdGhpcy5wcm9jZXNzSGVhZGVyUmVjb3JkKGtleXMpO1xuICAgICAgICB0aGlzLl9kYXRhUmVjb3JkcyA9IHRoaXMucHJvY2Vzc0RhdGFSZWNvcmRzKHRoaXMuX2RhdGEsIGtleXMpO1xuXG4gICAgICAgIHJldHVybiB0aGlzLl9oZWFkZXJSZWNvcmQgKyB0aGlzLl9kYXRhUmVjb3JkcztcbiAgICB9XG5cbiAgICBwdWJsaWMgcHJlcGFyZURhdGFBc3luYyhkb25lOiAocmVzdWx0OiBzdHJpbmcpID0+IHZvaWQpIHtcbiAgICAgICAgaWYgKCF0aGlzLl9kYXRhIHx8IHRoaXMuX2RhdGEubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICBkb25lKCcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGNvbHVtbnMgPSB0aGlzLmNvbHVtbnM/LmZpbHRlcihjID0+ICFjLnNraXApXG4gICAgICAgICAgICAgICAgICAgICAgICAuc29ydCgoYSwgYikgPT4gYS5zdGFydEluZGV4IC0gYi5zdGFydEluZGV4KVxuICAgICAgICAgICAgICAgICAgICAgICAgLnNvcnQoKGEsIGIpID0+IGEucGlubmVkSW5kZXggLSBiLnBpbm5lZEluZGV4KTtcbiAgICAgICAgY29uc3Qga2V5cyA9IGNvbHVtbnMgJiYgY29sdW1ucy5sZW5ndGggPyBjb2x1bW5zLm1hcChjID0+IGMuZmllbGQpIDogRXhwb3J0VXRpbGl0aWVzLmdldEtleXNGcm9tRGF0YSh0aGlzLl9kYXRhKTtcblxuICAgICAgICBpZiAoa2V5cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIGRvbmUoJycpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5faXNTcGVjaWFsRGF0YSA9IEV4cG9ydFV0aWxpdGllcy5pc1NwZWNpYWxEYXRhKHRoaXMuX2RhdGFbMF0pO1xuICAgICAgICB0aGlzLl9lc2NhcGVDaGFyYWN0ZXJzLnB1c2godGhpcy5fZGVsaW1pdGVyKTtcblxuICAgICAgICBjb25zdCBoZWFkZXJzID0gY29sdW1ucyAmJiBjb2x1bW5zLmxlbmd0aCA/XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5zLm1hcChjID0+IGMuaGVhZGVyID8/IGMuZmllbGQpIDpcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleXM7XG5cbiAgICAgICAgdGhpcy5faGVhZGVyUmVjb3JkID0gdGhpcy5wcm9jZXNzSGVhZGVyUmVjb3JkKGhlYWRlcnMpO1xuICAgICAgICB0aGlzLnByb2Nlc3NEYXRhUmVjb3Jkc0FzeW5jKHRoaXMuX2RhdGEsIGtleXMsIChkcikgPT4ge1xuICAgICAgICAgICAgZG9uZSh0aGlzLl9oZWFkZXJSZWNvcmQgKyBkcik7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgcHJvY2Vzc0ZpZWxkKHZhbHVlLCBlc2NhcGVDaGFycyk6IHN0cmluZyB7XG4gICAgICAgIGxldCBzYWZlVmFsdWUgPSBFeHBvcnRVdGlsaXRpZXMuaGFzVmFsdWUodmFsdWUpID8gU3RyaW5nKHZhbHVlKSA6ICcnO1xuICAgICAgICBpZiAoZXNjYXBlQ2hhcnMuc29tZSgodikgPT4gc2FmZVZhbHVlLmluY2x1ZGVzKHYpKSkge1xuICAgICAgICAgICAgc2FmZVZhbHVlID0gYFwiJHtzYWZlVmFsdWV9XCJgO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzYWZlVmFsdWUgKyB0aGlzLl9kZWxpbWl0ZXI7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBwcm9jZXNzSGVhZGVyUmVjb3JkKGtleXMpOiBzdHJpbmcge1xuICAgICAgICBsZXQgcmVjb3JkRGF0YSA9ICcnO1xuICAgICAgICBmb3IgKGNvbnN0IGtleU5hbWUgb2Yga2V5cykge1xuICAgICAgICAgICAgcmVjb3JkRGF0YSArPSB0aGlzLnByb2Nlc3NGaWVsZChrZXlOYW1lLCB0aGlzLl9lc2NhcGVDaGFyYWN0ZXJzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByZWNvcmREYXRhLnNsaWNlKDAsIC10aGlzLl9kZWxpbWl0ZXJMZW5ndGgpICsgdGhpcy5fZW9yO1xuICAgIH1cblxuICAgIHByaXZhdGUgcHJvY2Vzc1JlY29yZChyZWNvcmQsIGtleXMpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCByZWNvcmREYXRhID0gbmV3IEFycmF5KGtleXMubGVuZ3RoKTtcbiAgICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGtleXMubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IChyZWNvcmRba2V5c1tpbmRleF1dICE9PSB1bmRlZmluZWQpID8gcmVjb3JkW2tleXNbaW5kZXhdXSA6IHRoaXMuX2lzU3BlY2lhbERhdGEgPyByZWNvcmQgOiAnJztcbiAgICAgICAgICAgIHJlY29yZERhdGFbaW5kZXhdID0gdGhpcy5wcm9jZXNzRmllbGQodmFsdWUsIHRoaXMuX2VzY2FwZUNoYXJhY3RlcnMpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJlY29yZERhdGEuam9pbignJykuc2xpY2UoMCwgLXRoaXMuX2RlbGltaXRlckxlbmd0aCkgKyB0aGlzLl9lb3I7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBwcm9jZXNzRGF0YVJlY29yZHMoY3VycmVudERhdGEsIGtleXMpIHtcbiAgICAgICAgY29uc3QgZGF0YVJlY29yZHMgPSBuZXcgQXJyYXkoY3VycmVudERhdGEubGVuZ3RoKTtcblxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGN1cnJlbnREYXRhLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCByb3cgPSBjdXJyZW50RGF0YVtpXTtcbiAgICAgICAgICAgIGRhdGFSZWNvcmRzW2ldID0gdGhpcy5wcm9jZXNzUmVjb3JkKHJvdywga2V5cyk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZGF0YVJlY29yZHMuam9pbignJyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBwcm9jZXNzRGF0YVJlY29yZHNBc3luYyhjdXJyZW50RGF0YSwga2V5cywgZG9uZTogKHJlc3VsdDogc3RyaW5nKSA9PiB2b2lkKSB7XG4gICAgICAgIGNvbnN0IGRhdGFSZWNvcmRzID0gbmV3IEFycmF5KGN1cnJlbnREYXRhLmxlbmd0aCk7XG5cbiAgICAgICAgeWllbGRpbmdMb29wKGN1cnJlbnREYXRhLmxlbmd0aCwgMTAwMCxcbiAgICAgICAgICAgIChpKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3Qgcm93ID0gY3VycmVudERhdGFbaV07XG4gICAgICAgICAgICAgICAgZGF0YVJlY29yZHNbaV0gPSB0aGlzLnByb2Nlc3NSZWNvcmQocm93LCBrZXlzKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgZG9uZShkYXRhUmVjb3Jkcy5qb2luKCcnKSk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldERlbGltaXRlcih2YWx1ZSkge1xuICAgICAgICB0aGlzLl9kZWxpbWl0ZXIgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5fZGVsaW1pdGVyTGVuZ3RoID0gdmFsdWUubGVuZ3RoO1xuICAgIH1cbn1cbiJdfQ==
103
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhci1zZXBhcmF0ZWQtdmFsdWUtZGF0YS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9zZXJ2aWNlcy9jc3YvY2hhci1zZXBhcmF0ZWQtdmFsdWUtZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDdEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBR2hEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLHNCQUFzQjtJQVMvQixZQUFvQixLQUFZLEVBQUUsY0FBc0IsRUFBVSxVQUF5QixFQUFFO1FBQXpFLFVBQUssR0FBTCxLQUFLLENBQU87UUFBa0MsWUFBTyxHQUFQLE9BQU8sQ0FBb0I7UUFSckYsa0JBQWEsR0FBRyxFQUFFLENBQUM7UUFDbkIsaUJBQVksR0FBRyxFQUFFLENBQUM7UUFDbEIsU0FBSSxHQUFHLE1BQU0sQ0FBQztRQUVkLHNCQUFpQixHQUFHLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztRQUN6QyxxQkFBZ0IsR0FBRyxDQUFDLENBQUM7UUFDckIsbUJBQWMsR0FBRyxLQUFLLENBQUM7UUFHM0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRU0sV0FBVyxDQUFDLEdBQVc7UUFDMUIsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ3hDLE9BQU8sRUFBRSxDQUFDO1NBQ2I7UUFDRCxJQUFJLElBQUksR0FBRyxFQUFFLENBQUM7UUFDZCxJQUFJLEdBQUcsRUFBQztZQUNKLElBQUksR0FBRyxHQUFHLENBQUM7U0FDZDthQUFLO1lBQ0YsSUFBSSxHQUFHLGVBQWUsQ0FBQyxlQUFlLENBQUMs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QUM7WUFDM0IsV0FBVyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ25ELENBQUMsRUFDRCxHQUFHLEVBQUU7WUFDRCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQy9CLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVPLFlBQVksQ0FBQyxLQUFLO1FBQ3RCLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDO0lBQ3pDLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV4cG9ydFV0aWxpdGllcyB9IGZyb20gJy4uL2V4cG9ydGVyLWNvbW1vbi9leHBvcnQtdXRpbGl0aWVzJztcbmltcG9ydCB7IHlpZWxkaW5nTG9vcCB9IGZyb20gJy4uLy4uL2NvcmUvdXRpbHMnO1xuaW1wb3J0IHsgSUNvbHVtbkluZm8gfSBmcm9tICcuLi9leHBvcnRlci1jb21tb24vYmFzZS1leHBvcnQtc2VydmljZSc7XG5cbi8qKlxuICogQGhpZGRlblxuICovXG5leHBvcnQgY2xhc3MgQ2hhclNlcGFyYXRlZFZhbHVlRGF0YSB7XG4gICAgcHJpdmF0ZSBfaGVhZGVyUmVjb3JkID0gJyc7XG4gICAgcHJpdmF0ZSBfZGF0YVJlY29yZHMgPSAnJztcbiAgICBwcml2YXRlIF9lb3IgPSAnXFxyXFxuJztcbiAgICBwcml2YXRlIF9kZWxpbWl0ZXI7XG4gICAgcHJpdmF0ZSBfZXNjYXBlQ2hhcmFjdGVycyA9IFsnXFxyJywgJ1xcbicsICdcXHJcXG4nXTtcbiAgICBwcml2YXRlIF9kZWxpbWl0ZXJMZW5ndGggPSAxO1xuICAgIHByaXZhdGUgX2lzU3BlY2lhbERhdGEgPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX2RhdGE6IGFueVtdLCB2YWx1ZURlbGltaXRlcjogc3RyaW5nLCBwcml2YXRlIGNvbHVtbnM6IElDb2x1bW5JbmZvW10gPSBbXSkgIHtcbiAgICAgICAgdGhpcy5zZXREZWxpbWl0ZXIodmFsdWVEZWxpbWl0ZXIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBwcmVwYXJlRGF0YShrZXk/OiBhbnlbXSkge1xuICAgICAgICBpZiAoIXRoaXMuX2RhdGEgfHwgdGhpcy5fZGF0YS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgfVxuICAgICAgICBsZXQga2V5cyA9IFtdO1xuICAgICAgICBpZiAoa2V5KXtcbiAgICAgICAgICAgIGtleXMgPSBrZXk7XG4gICAgICAgIH1lbHNlIHtcbiAgICAgICAgICAgIGtleXMgPSBFeHBvcnRVdGlsaXRpZXMuZ2V0S2V5c0Zyb21EYXRhKHRoaXMuX2RhdGEpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGtleXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9pc1NwZWNpYWxEYXRhID0gRXhwb3J0VXRpbGl0aWVzLmlzU3BlY2lhbERhdGEodGhpcy5fZGF0YVswXSk7XG4gICAgICAgIHRoaXMuX2VzY2FwZUNoYXJhY3RlcnMucHVzaCh0aGlzLl9kZWxpbWl0ZXIpO1xuXG4gICAgICAgIHRoaXMuX2hlYWRlclJlY29yZCA9IHRoaXMucHJvY2Vzc0hlYWRlclJlY29yZChrZXlzLCB0aGlzLl9kYXRhLmxlbmd0aCk7XG4gICAgICAgIHRoaXMuX2RhdGFSZWNvcmRzID0gdGhpcy5wcm9jZXNzRGF0YVJlY29yZHModGhpcy5fZGF0YSwga2V5cyk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuX2hlYWRlclJlY29yZCArIHRoaXMuX2RhdGFSZWNvcmRzO1xuICAgIH1cblxuICAgIHB1YmxpYyBwcmVwYXJlRGF0YUFzeW5jKGRvbmU6IChyZXN1bHQ6IHN0cmluZykgPT4gdm9pZCkge1xuICAgICAgICBjb25zdCBjb2x1bW5zID0gdGhpcy5jb2x1bW5zPy5maWx0ZXIoYyA9PiAhYy5za2lwKVxuICAgICAgICAgICAgICAgICAgICAgICAgLnNvcnQoKGEsIGIpID0+IGEuc3RhcnRJbmRleCAtIGIuc3RhcnRJbmRleClcbiAgICAgICAgICAgICAgICAgICAgICAgIC5zb3J0KChhLCBiKSA9PiBhLnBpbm5lZEluZGV4IC0gYi5waW5uZWRJbmRleCk7XG4gICAgICAgIGNvbnN0IGtleXMgPSBjb2x1bW5zICYmIGNvbHVtbnMubGVuZ3RoID8gY29sdW1ucy5tYXAoYyA9PiBjLmZpZWxkKSA6IEV4cG9ydFV0aWxpdGllcy5nZXRLZXlzRnJvbURhdGEodGhpcy5fZGF0YSk7XG5cbiAgICAgICAgdGhpcy5faXNTcGVjaWFsRGF0YSA9IEV4cG9ydFV0aWxpdGllcy5pc1NwZWNpYWxEYXRhKHRoaXMuX2RhdGFbMF0pO1xuICAgICAgICB0aGlzLl9lc2NhcGVDaGFyYWN0ZXJzLnB1c2godGhpcy5fZGVsaW1pdGVyKTtcblxuICAgICAgICBjb25zdCBoZWFkZXJzID0gY29sdW1ucyAmJiBjb2x1bW5zLmxlbmd0aCA/XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5zLm1hcChjID0+IGMuaGVhZGVyID8/IGMuZmllbGQpIDpcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleXM7XG5cbiAgICAgICAgdGhpcy5faGVhZGVyUmVjb3JkID0gdGhpcy5wcm9jZXNzSGVhZGVyUmVjb3JkKGhlYWRlcnMsIHRoaXMuX2RhdGEubGVuZ3RoKTtcbiAgICAgICAgaWYgKGtleXMubGVuZ3RoID09PSAwIHx8ICgoIXRoaXMuX2RhdGEgfHwgdGhpcy5fZGF0YS5sZW5ndGggPT09IDApICYmIGtleXMubGVuZ3RoID09PSAwKSkge1xuICAgICAgICAgICAgZG9uZSgnJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnByb2Nlc3NEYXRhUmVjb3Jkc0FzeW5jKHRoaXMuX2RhdGEsIGtleXMsIChkcikgPT4ge1xuICAgICAgICAgICAgICAgIGRvbmUodGhpcy5faGVhZGVyUmVjb3JkICsgZHIpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHByb2Nlc3NGaWVsZCh2YWx1ZSwgZXNjYXBlQ2hhcnMpOiBzdHJpbmcge1xuICAgICAgICBsZXQgc2FmZVZhbHVlID0gRXhwb3J0VXRpbGl0aWVzLmhhc1ZhbHVlKHZhbHVlKSA/IFN0cmluZyh2YWx1ZSkgOiAnJztcbiAgICAgICAgaWYgKGVzY2FwZUNoYXJzLnNvbWUoKHYpID0+IHNhZmVWYWx1ZS5pbmNsdWRlcyh2KSkpIHtcbiAgICAgICAgICAgIHNhZmVWYWx1ZSA9IGBcIiR7c2FmZVZhbHVlfVwiYDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc2FmZVZhbHVlICsgdGhpcy5fZGVsaW1pdGVyO1xuICAgIH1cblxuICAgIHByaXZhdGUgcHJvY2Vzc0hlYWRlclJlY29yZChrZXlzLCBkYXRhTGVuZ3RoKTogc3RyaW5nIHtcbiAgICAgICAgbGV0IHJlY29yZERhdGEgPSAnJztcbiAgICAgICAgZm9yIChjb25zdCBrZXlOYW1lIG9mIGtleXMpIHtcbiAgICAgICAgICAgIHJlY29yZERhdGEgKz0gdGhpcy5wcm9jZXNzRmllbGQoa2V5TmFtZSwgdGhpcy5fZXNjYXBlQ2hhcmFjdGVycyk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCByZXN1bHQgPSByZWNvcmREYXRhLnNsaWNlKDAsIC10aGlzLl9kZWxpbWl0ZXJMZW5ndGgpO1xuXG4gICAgICAgIHJldHVybiBkYXRhTGVuZ3RoID4gMCA/IHJlc3VsdCArIHRoaXMuX2VvciA6IHJlc3VsdDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHByb2Nlc3NSZWNvcmQocmVjb3JkLCBrZXlzKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgcmVjb3JkRGF0YSA9IG5ldyBBcnJheShrZXlzLmxlbmd0aCk7XG4gICAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBrZXlzLmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSAocmVjb3JkW2tleXNbaW5kZXhdXSAhPT0gdW5kZWZpbmVkKSA/IHJlY29yZFtrZXlzW2luZGV4XV0gOiB0aGlzLl9pc1NwZWNpYWxEYXRhID8gcmVjb3JkIDogJyc7XG4gICAgICAgICAgICByZWNvcmREYXRhW2luZGV4XSA9IHRoaXMucHJvY2Vzc0ZpZWxkKHZhbHVlLCB0aGlzLl9lc2NhcGVDaGFyYWN0ZXJzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByZWNvcmREYXRhLmpvaW4oJycpLnNsaWNlKDAsIC10aGlzLl9kZWxpbWl0ZXJMZW5ndGgpICsgdGhpcy5fZW9yO1xuICAgIH1cblxuICAgIHByaXZhdGUgcHJvY2Vzc0RhdGFSZWNvcmRzKGN1cnJlbnREYXRhLCBrZXlzKSB7XG4gICAgICAgIGNvbnN0IGRhdGFSZWNvcmRzID0gbmV3IEFycmF5KGN1cnJlbnREYXRhLmxlbmd0aCk7XG5cbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjdXJyZW50RGF0YS5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY29uc3Qgcm93ID0gY3VycmVudERhdGFbaV07XG4gICAgICAgICAgICBkYXRhUmVjb3Jkc1tpXSA9IHRoaXMucHJvY2Vzc1JlY29yZChyb3csIGtleXMpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGRhdGFSZWNvcmRzLmpvaW4oJycpO1xuICAgIH1cblxuICAgIHByaXZhdGUgcHJvY2Vzc0RhdGFSZWNvcmRzQXN5bmMoY3VycmVudERhdGEsIGtleXMsIGRvbmU6IChyZXN1bHQ6IHN0cmluZykgPT4gdm9pZCkge1xuICAgICAgICBjb25zdCBkYXRhUmVjb3JkcyA9IG5ldyBBcnJheShjdXJyZW50RGF0YS5sZW5ndGgpO1xuXG4gICAgICAgIHlpZWxkaW5nTG9vcChjdXJyZW50RGF0YS5sZW5ndGgsIDEwMDAsXG4gICAgICAgICAgICAoaSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJvdyA9IGN1cnJlbnREYXRhW2ldO1xuICAgICAgICAgICAgICAgIGRhdGFSZWNvcmRzW2ldID0gdGhpcy5wcm9jZXNzUmVjb3JkKHJvdywga2V5cyk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICAgIGRvbmUoZGF0YVJlY29yZHMuam9pbignJykpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXREZWxpbWl0ZXIodmFsdWUpIHtcbiAgICAgICAgdGhpcy5fZGVsaW1pdGVyID0gdmFsdWU7XG4gICAgICAgIHRoaXMuX2RlbGltaXRlckxlbmd0aCA9IHZhbHVlLmxlbmd0aDtcbiAgICB9XG59XG4iXX0=
@@ -64,7 +64,7 @@ export class IgxCsvExporterService extends IgxBaseExporter {
64
64
  }
65
65
  }
66
66
  exportFile(data, fileName, fileType) {
67
- const blob = new Blob(['\ufeff', data], { type: fileType });
67
+ const blob = new Blob([data ? '\ufeff' : '', data], { type: fileType });
68
68
  ExportUtilities.saveBlobToFile(blob, fileName);
69
69
  }
70
70
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: IgxCsvExporterService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
@@ -76,4 +76,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImpor
76
76
  providedIn: 'root',
77
77
  }]
78
78
  }] });
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3N2LWV4cG9ydGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaWduaXRldWktYW5ndWxhci9zcmMvbGliL3NlcnZpY2VzL2Nzdi9jc3YtZXhwb3J0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLGFBQWEsRUFBaUIsZUFBZSxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDdkcsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxZQUFZLEVBQXlCLE1BQU0sd0JBQXdCLENBQUM7O0FBTzdFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FxQkc7QUFJSCxNQUFNLE9BQU8scUJBQXNCLFNBQVEsZUFBZTtJQUgxRDs7UUFJSTs7Ozs7Ozs7O1dBU0c7UUFDYSxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUE0QixDQUFDO0tBaUM5RTtJQTdCYSx3QkFBd0IsQ0FBQyxJQUFxQixFQUFFLE9BQThCLEVBQUUsSUFBZ0I7UUFDdEcsSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNyQyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUV0RCxNQUFNLE9BQU8sR0FBRyxJQUFJLHNCQUFzQixDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsY0FBYyxFQUFFLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUM5RixPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUMzQixJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQztZQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1lBQ3JELElBQUksRUFBRSxDQUFDO1FBQ1gsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU8sUUFBUSxDQUFDLE9BQThCO1FBQzNDLFFBQVEsT0FBTyxDQUFDLFFBQVEsRUFBRTtZQUN0QixLQUFLLFlBQVksQ0FBQyxHQUFHO2dCQUNqQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLFFBQVEsRUFBRSx5QkFBeUIsQ0FBQyxDQUFDO2dCQUMvRSxNQUFNO1lBQ1YsS0FBSyxZQUFZLENBQUMsR0FBRyxDQUFDO1lBQ3RCLEtBQUssWUFBWSxDQUFDLEdBQUc7Z0JBQ2pCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxPQUFPLENBQUMsUUFBUSxFQUFFLDBDQUEwQyxDQUFDLENBQUM7Z0JBQ2hHLE1BQU07U0FDYjtJQUNMLENBQUM7SUFFTyxVQUFVLENBQUMsSUFBWSxFQUFFLFFBQWdCLEVBQUUsUUFBZ0I7UUFDL0QsTUFBTSxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUM1RCxlQUFlLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztJQUNuRCxDQUFDOzhHQTNDUSxxQkFBcUI7a0hBQXJCLHFCQUFxQixjQUZsQixNQUFNOzsyRkFFVCxxQkFBcUI7a0JBSGpDLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXZlbnRFbWl0dGVyLCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBERUZBVUxUX09XTkVSLCBJRXhwb3J0UmVjb3JkLCBJZ3hCYXNlRXhwb3J0ZXIgfSBmcm9tICcuLi9leHBvcnRlci1jb21tb24vYmFzZS1leHBvcnQtc2VydmljZSc7XG5pbXBvcnQgeyBFeHBvcnRVdGlsaXRpZXMgfSBmcm9tICcuLi9leHBvcnRlci1jb21tb24vZXhwb3J0LXV0aWxpdGllcyc7XG5pbXBvcnQgeyBDaGFyU2VwYXJhdGVkVmFsdWVEYXRhIH0gZnJvbSAnLi9jaGFyLXNlcGFyYXRlZC12YWx1ZS1kYXRhJztcbmltcG9ydCB7IENzdkZpbGVUeXBlcywgSWd4Q3N2RXhwb3J0ZXJPcHRpb25zIH0gZnJvbSAnLi9jc3YtZXhwb3J0ZXItb3B0aW9ucyc7XG5pbXBvcnQgeyBJQmFzZUV2ZW50QXJncyB9IGZyb20gJy4uLy4uL2NvcmUvdXRpbHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElDc3ZFeHBvcnRFbmRlZEV2ZW50QXJncyBleHRlbmRzIElCYXNlRXZlbnRBcmdzIHtcbiAgICBjc3ZEYXRhPzogc3RyaW5nO1xufVxuXG4vKipcbiAqICoqSWduaXRlIFVJIGZvciBBbmd1bGFyIENTViBFeHBvcnRlciBTZXJ2aWNlKiogLVxuICogW0RvY3VtZW50YXRpb25dKGh0dHBzOi8vd3d3LmluZnJhZ2lzdGljcy5jb20vcHJvZHVjdHMvaWduaXRlLXVpLWFuZ3VsYXIvYW5ndWxhci9jb21wb25lbnRzL2V4cG9ydGVyLWNzdilcbiAqXG4gKiBUaGUgSWduaXRlIFVJIGZvciBBbmd1bGFyIENTViBFeHBvcnRlciBzZXJ2aWNlIGNhbiBleHBvcnQgZGF0YSBpbiBhIENoYXJhY3RlciBTZXBhcmF0ZWQgVmFsdWVzIGZvcm1hdCBmcm9tXG4gKiBib3RoIHJhdyBkYXRhIChhcnJheSkgb3IgZnJvbSBhbiBgSWd4R3JpZGAuXG4gKlxuICogRXhhbXBsZTpcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIHB1YmxpYyBsb2NhbERhdGEgPSBbXG4gKiAgIHsgTmFtZTogXCJFcmljIFJpZGxleVwiLCBBZ2U6IFwiMjZcIiB9LFxuICogICB7IE5hbWU6IFwiQWxhbmlzIEJyb29rXCIsIEFnZTogXCIyMlwiIH0sXG4gKiAgIHsgTmFtZTogXCJKb25hdGhhbiBNb3JyaXNcIiwgQWdlOiBcIjIzXCIgfVxuICogXTtcbiAqXG4gKiBjb25zdHJ1Y3Rvcihwcml2YXRlIGNzdkV4cG9ydFNlcnZpY2U6IElneENzdkV4cG9ydGVyU2VydmljZSkge1xuICogfVxuICpcbiAqIGNvbnN0IG9wdDogSWd4Q3N2RXhwb3J0ZXJPcHRpb25zID0gbmV3IElneENzdkV4cG9ydGVyT3B0aW9ucyhcIkZpbGVOYW1lXCIsIENzdkZpbGVUeXBlcy5DU1YpO1xuICogdGhpcy5jc3ZFeHBvcnRTZXJ2aWNlLmV4cG9ydERhdGEodGhpcy5sb2NhbERhdGEsIG9wdCk7XG4gKiBgYGBcbiAqL1xuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgSWd4Q3N2RXhwb3J0ZXJTZXJ2aWNlIGV4dGVuZHMgSWd4QmFzZUV4cG9ydGVyIHtcbiAgICAvKipcbiAgICAgKiBUaGlzIGV2ZW50IGlzIGVtaXR0ZWQgd2hlbiB0aGUgZXhwb3J0IHByb2Nlc3MgZmluaXNoZXMuXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIHRoaXMuZXhwb3J0ZXJTZXJ2aWNlLmV4cG9ydEVuZGVkLnN1YnNjcmliZSgoYXJnczogSUNzdkV4cG9ydEVuZGVkRXZlbnRBcmdzKSA9PiB7XG4gICAgICogLy8gcHV0IGV2ZW50IGhhbmRsZXIgY29kZSBoZXJlXG4gICAgICogfSk7XG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKiBAbWVtYmVyb2YgSWd4Q3N2RXhwb3J0ZXJTZXJ2aWNlXG4gICAgICovXG4gICAgcHVibGljIG92ZXJyaWRlIGV4cG9ydEVuZGVkID0gbmV3IEV2ZW50RW1pdHRlcjxJQ3N2RXhwb3J0RW5kZWRFdmVudEFyZ3M+KCk7XG5cbiAgICBwcml2YXRlIF9zdHJpbmdEYXRhOiBzdHJpbmc7XG5cbiAgICBwcm90ZWN0ZWQgZXhwb3J0RGF0YUltcGxlbWVudGF0aW9uKGRhdGE6IElFeHBvcnRSZWNvcmRbXSwgb3B0aW9uczogSWd4Q3N2RXhwb3J0ZXJPcHRpb25zLCBkb25lOiAoKSA9PiB2b2lkKSB7XG4gICAgICAgIGRhdGEgPSBkYXRhLm1hcCgoaXRlbSkgPT4gaXRlbS5kYXRhKTtcbiAgICAgICAgY29uc3QgY29sdW1uTGlzdCA9IHRoaXMuX293bmVyc01hcC5nZXQoREVGQVVMVF9PV05FUik7XG5cbiAgICAgICAgY29uc3QgY3N2RGF0YSA9IG5ldyBDaGFyU2VwYXJhdGVkVmFsdWVEYXRhKGRhdGEsIG9wdGlvbnMudmFsdWVEZWxpbWl0ZXIsIGNvbHVtbkxpc3Q/LmNvbHVtbnMpO1xuICAgICAgICBjc3ZEYXRhLnByZXBhcmVEYXRhQXN5bmMoKHIpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX3N0cmluZ0RhdGEgPSByO1xuICAgICAgICAgICAgdGhpcy5zYXZlRmlsZShvcHRpb25zKTtcbiAgICAgICAgICAgIHRoaXMuZXhwb3J0RW5kZWQuZW1pdCh7IGNzdkRhdGE6IHRoaXMuX3N0cmluZ0RhdGEgfSk7XG4gICAgICAgICAgICBkb25lKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2F2ZUZpbGUob3B0aW9uczogSWd4Q3N2RXhwb3J0ZXJPcHRpb25zKSB7XG4gICAgICAgIHN3aXRjaCAob3B0aW9ucy5maWxlVHlwZSkge1xuICAgICAgICAgICAgY2FzZSBDc3ZGaWxlVHlwZXMuQ1NWOlxuICAgICAgICAgICAgICAgIHRoaXMuZXhwb3J0RmlsZSh0aGlzLl9zdHJpbmdEYXRhLCBvcHRpb25zLmZpbGVOYW1lLCAndGV4dC9jc3Y7Y2hhcnNldD11dGYtODsnKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgQ3N2RmlsZVR5cGVzLlRTVjpcbiAgICAgICAgICAgIGNhc2UgQ3N2RmlsZVR5cGVzLlRBQjpcbiAgICAgICAgICAgICAgICB0aGlzLmV4cG9ydEZpbGUodGhpcy5fc3RyaW5nRGF0YSwgb3B0aW9ucy5maWxlTmFtZSwgJ3RleHQvdGFiLXNlcGFyYXRlZC12YWx1ZXM7Y2hhcnNldD11dGYtODsnKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZXhwb3J0RmlsZShkYXRhOiBzdHJpbmcsIGZpbGVOYW1lOiBzdHJpbmcsIGZpbGVUeXBlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgYmxvYiA9IG5ldyBCbG9iKFsnXFx1ZmVmZicsIGRhdGFdLCB7IHR5cGU6IGZpbGVUeXBlIH0pO1xuICAgICAgICBFeHBvcnRVdGlsaXRpZXMuc2F2ZUJsb2JUb0ZpbGUoYmxvYiwgZmlsZU5hbWUpO1xuICAgIH1cbn1cbiJdfQ==
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3N2LWV4cG9ydGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaWduaXRldWktYW5ndWxhci9zcmMvbGliL3NlcnZpY2VzL2Nzdi9jc3YtZXhwb3J0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLGFBQWEsRUFBaUIsZUFBZSxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDdkcsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxZQUFZLEVBQXlCLE1BQU0sd0JBQXdCLENBQUM7O0FBTzdFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FxQkc7QUFJSCxNQUFNLE9BQU8scUJBQXNCLFNBQVEsZUFBZTtJQUgxRDs7UUFJSTs7Ozs7Ozs7O1dBU0c7UUFDYSxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUE0QixDQUFDO0tBaUM5RTtJQTdCYSx3QkFBd0IsQ0FBQyxJQUFxQixFQUFFLE9BQThCLEVBQUUsSUFBZ0I7UUFDdEcsSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNyQyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUV0RCxNQUFNLE9BQU8sR0FBRyxJQUFJLHNCQUFzQixDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsY0FBYyxFQUFFLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUM5RixPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUMzQixJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQztZQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1lBQ3JELElBQUksRUFBRSxDQUFDO1FBQ1gsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU8sUUFBUSxDQUFDLE9BQThCO1FBQzNDLFFBQVEsT0FBTyxDQUFDLFFBQVEsRUFBRTtZQUN0QixLQUFLLFlBQVksQ0FBQyxHQUFHO2dCQUNqQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLFFBQVEsRUFBRSx5QkFBeUIsQ0FBQyxDQUFDO2dCQUMvRSxNQUFNO1lBQ1YsS0FBSyxZQUFZLENBQUMsR0FBRyxDQUFDO1lBQ3RCLEtBQUssWUFBWSxDQUFDLEdBQUc7Z0JBQ2pCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxPQUFPLENBQUMsUUFBUSxFQUFFLDBDQUEwQyxDQUFDLENBQUM7Z0JBQ2hHLE1BQU07U0FDYjtJQUNMLENBQUM7SUFFTyxVQUFVLENBQUMsSUFBWSxFQUFFLFFBQWdCLEVBQUUsUUFBZ0I7UUFDL0QsTUFBTSxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDeEUsZUFBZSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDbkQsQ0FBQzs4R0EzQ1EscUJBQXFCO2tIQUFyQixxQkFBcUIsY0FGbEIsTUFBTTs7MkZBRVQscUJBQXFCO2tCQUhqQyxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV2ZW50RW1pdHRlciwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgREVGQVVMVF9PV05FUiwgSUV4cG9ydFJlY29yZCwgSWd4QmFzZUV4cG9ydGVyIH0gZnJvbSAnLi4vZXhwb3J0ZXItY29tbW9uL2Jhc2UtZXhwb3J0LXNlcnZpY2UnO1xuaW1wb3J0IHsgRXhwb3J0VXRpbGl0aWVzIH0gZnJvbSAnLi4vZXhwb3J0ZXItY29tbW9uL2V4cG9ydC11dGlsaXRpZXMnO1xuaW1wb3J0IHsgQ2hhclNlcGFyYXRlZFZhbHVlRGF0YSB9IGZyb20gJy4vY2hhci1zZXBhcmF0ZWQtdmFsdWUtZGF0YSc7XG5pbXBvcnQgeyBDc3ZGaWxlVHlwZXMsIElneENzdkV4cG9ydGVyT3B0aW9ucyB9IGZyb20gJy4vY3N2LWV4cG9ydGVyLW9wdGlvbnMnO1xuaW1wb3J0IHsgSUJhc2VFdmVudEFyZ3MgfSBmcm9tICcuLi8uLi9jb3JlL3V0aWxzJztcblxuZXhwb3J0IGludGVyZmFjZSBJQ3N2RXhwb3J0RW5kZWRFdmVudEFyZ3MgZXh0ZW5kcyBJQmFzZUV2ZW50QXJncyB7XG4gICAgY3N2RGF0YT86IHN0cmluZztcbn1cblxuLyoqXG4gKiAqKklnbml0ZSBVSSBmb3IgQW5ndWxhciBDU1YgRXhwb3J0ZXIgU2VydmljZSoqIC1cbiAqIFtEb2N1bWVudGF0aW9uXShodHRwczovL3d3dy5pbmZyYWdpc3RpY3MuY29tL3Byb2R1Y3RzL2lnbml0ZS11aS1hbmd1bGFyL2FuZ3VsYXIvY29tcG9uZW50cy9leHBvcnRlci1jc3YpXG4gKlxuICogVGhlIElnbml0ZSBVSSBmb3IgQW5ndWxhciBDU1YgRXhwb3J0ZXIgc2VydmljZSBjYW4gZXhwb3J0IGRhdGEgaW4gYSBDaGFyYWN0ZXIgU2VwYXJhdGVkIFZhbHVlcyBmb3JtYXQgZnJvbVxuICogYm90aCByYXcgZGF0YSAoYXJyYXkpIG9yIGZyb20gYW4gYElneEdyaWRgLlxuICpcbiAqIEV4YW1wbGU6XG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBwdWJsaWMgbG9jYWxEYXRhID0gW1xuICogICB7IE5hbWU6IFwiRXJpYyBSaWRsZXlcIiwgQWdlOiBcIjI2XCIgfSxcbiAqICAgeyBOYW1lOiBcIkFsYW5pcyBCcm9va1wiLCBBZ2U6IFwiMjJcIiB9LFxuICogICB7IE5hbWU6IFwiSm9uYXRoYW4gTW9ycmlzXCIsIEFnZTogXCIyM1wiIH1cbiAqIF07XG4gKlxuICogY29uc3RydWN0b3IocHJpdmF0ZSBjc3ZFeHBvcnRTZXJ2aWNlOiBJZ3hDc3ZFeHBvcnRlclNlcnZpY2UpIHtcbiAqIH1cbiAqXG4gKiBjb25zdCBvcHQ6IElneENzdkV4cG9ydGVyT3B0aW9ucyA9IG5ldyBJZ3hDc3ZFeHBvcnRlck9wdGlvbnMoXCJGaWxlTmFtZVwiLCBDc3ZGaWxlVHlwZXMuQ1NWKTtcbiAqIHRoaXMuY3N2RXhwb3J0U2VydmljZS5leHBvcnREYXRhKHRoaXMubG9jYWxEYXRhLCBvcHQpO1xuICogYGBgXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIElneENzdkV4cG9ydGVyU2VydmljZSBleHRlbmRzIElneEJhc2VFeHBvcnRlciB7XG4gICAgLyoqXG4gICAgICogVGhpcyBldmVudCBpcyBlbWl0dGVkIHdoZW4gdGhlIGV4cG9ydCBwcm9jZXNzIGZpbmlzaGVzLlxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiB0aGlzLmV4cG9ydGVyU2VydmljZS5leHBvcnRFbmRlZC5zdWJzY3JpYmUoKGFyZ3M6IElDc3ZFeHBvcnRFbmRlZEV2ZW50QXJncykgPT4ge1xuICAgICAqIC8vIHB1dCBldmVudCBoYW5kbGVyIGNvZGUgaGVyZVxuICAgICAqIH0pO1xuICAgICAqIGBgYFxuICAgICAqXG4gICAgICogQG1lbWJlcm9mIElneENzdkV4cG9ydGVyU2VydmljZVxuICAgICAqL1xuICAgIHB1YmxpYyBvdmVycmlkZSBleHBvcnRFbmRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8SUNzdkV4cG9ydEVuZGVkRXZlbnRBcmdzPigpO1xuXG4gICAgcHJpdmF0ZSBfc3RyaW5nRGF0YTogc3RyaW5nO1xuXG4gICAgcHJvdGVjdGVkIGV4cG9ydERhdGFJbXBsZW1lbnRhdGlvbihkYXRhOiBJRXhwb3J0UmVjb3JkW10sIG9wdGlvbnM6IElneENzdkV4cG9ydGVyT3B0aW9ucywgZG9uZTogKCkgPT4gdm9pZCkge1xuICAgICAgICBkYXRhID0gZGF0YS5tYXAoKGl0ZW0pID0+IGl0ZW0uZGF0YSk7XG4gICAgICAgIGNvbnN0IGNvbHVtbkxpc3QgPSB0aGlzLl9vd25lcnNNYXAuZ2V0KERFRkFVTFRfT1dORVIpO1xuXG4gICAgICAgIGNvbnN0IGNzdkRhdGEgPSBuZXcgQ2hhclNlcGFyYXRlZFZhbHVlRGF0YShkYXRhLCBvcHRpb25zLnZhbHVlRGVsaW1pdGVyLCBjb2x1bW5MaXN0Py5jb2x1bW5zKTtcbiAgICAgICAgY3N2RGF0YS5wcmVwYXJlRGF0YUFzeW5jKChyKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9zdHJpbmdEYXRhID0gcjtcbiAgICAgICAgICAgIHRoaXMuc2F2ZUZpbGUob3B0aW9ucyk7XG4gICAgICAgICAgICB0aGlzLmV4cG9ydEVuZGVkLmVtaXQoeyBjc3ZEYXRhOiB0aGlzLl9zdHJpbmdEYXRhIH0pO1xuICAgICAgICAgICAgZG9uZSgpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNhdmVGaWxlKG9wdGlvbnM6IElneENzdkV4cG9ydGVyT3B0aW9ucykge1xuICAgICAgICBzd2l0Y2ggKG9wdGlvbnMuZmlsZVR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgQ3N2RmlsZVR5cGVzLkNTVjpcbiAgICAgICAgICAgICAgICB0aGlzLmV4cG9ydEZpbGUodGhpcy5fc3RyaW5nRGF0YSwgb3B0aW9ucy5maWxlTmFtZSwgJ3RleHQvY3N2O2NoYXJzZXQ9dXRmLTg7Jyk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIENzdkZpbGVUeXBlcy5UU1Y6XG4gICAgICAgICAgICBjYXNlIENzdkZpbGVUeXBlcy5UQUI6XG4gICAgICAgICAgICAgICAgdGhpcy5leHBvcnRGaWxlKHRoaXMuX3N0cmluZ0RhdGEsIG9wdGlvbnMuZmlsZU5hbWUsICd0ZXh0L3RhYi1zZXBhcmF0ZWQtdmFsdWVzO2NoYXJzZXQ9dXRmLTg7Jyk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGV4cG9ydEZpbGUoZGF0YTogc3RyaW5nLCBmaWxlTmFtZTogc3RyaW5nLCBmaWxlVHlwZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbZGF0YSA/ICdcXHVmZWZmJyA6ICcnLCBkYXRhXSwgeyB0eXBlOiBmaWxlVHlwZSB9KTtcbiAgICAgICAgRXhwb3J0VXRpbGl0aWVzLnNhdmVCbG9iVG9GaWxlKGJsb2IsIGZpbGVOYW1lKTtcbiAgICB9XG59XG4iXX0=
@@ -4254,30 +4254,29 @@ class CharSeparatedValueData {
4254
4254
  }
4255
4255
  this._isSpecialData = ExportUtilities.isSpecialData(this._data[0]);
4256
4256
  this._escapeCharacters.push(this._delimiter);
4257
- this._headerRecord = this.processHeaderRecord(keys);
4257
+ this._headerRecord = this.processHeaderRecord(keys, this._data.length);
4258
4258
  this._dataRecords = this.processDataRecords(this._data, keys);
4259
4259
  return this._headerRecord + this._dataRecords;
4260
4260
  }
4261
4261
  prepareDataAsync(done) {
4262
- if (!this._data || this._data.length === 0) {
4263
- done('');
4264
- }
4265
4262
  const columns = this.columns?.filter(c => !c.skip)
4266
4263
  .sort((a, b) => a.startIndex - b.startIndex)
4267
4264
  .sort((a, b) => a.pinnedIndex - b.pinnedIndex);
4268
4265
  const keys = columns && columns.length ? columns.map(c => c.field) : ExportUtilities.getKeysFromData(this._data);
4269
- if (keys.length === 0) {
4270
- done('');
4271
- }
4272
4266
  this._isSpecialData = ExportUtilities.isSpecialData(this._data[0]);
4273
4267
  this._escapeCharacters.push(this._delimiter);
4274
4268
  const headers = columns && columns.length ?
4275
4269
  columns.map(c => c.header ?? c.field) :
4276
4270
  keys;
4277
- this._headerRecord = this.processHeaderRecord(headers);
4278
- this.processDataRecordsAsync(this._data, keys, (dr) => {
4279
- done(this._headerRecord + dr);
4280
- });
4271
+ this._headerRecord = this.processHeaderRecord(headers, this._data.length);
4272
+ if (keys.length === 0 || ((!this._data || this._data.length === 0) && keys.length === 0)) {
4273
+ done('');
4274
+ }
4275
+ else {
4276
+ this.processDataRecordsAsync(this._data, keys, (dr) => {
4277
+ done(this._headerRecord + dr);
4278
+ });
4279
+ }
4281
4280
  }
4282
4281
  processField(value, escapeChars) {
4283
4282
  let safeValue = ExportUtilities.hasValue(value) ? String(value) : '';
@@ -4286,12 +4285,13 @@ class CharSeparatedValueData {
4286
4285
  }
4287
4286
  return safeValue + this._delimiter;
4288
4287
  }
4289
- processHeaderRecord(keys) {
4288
+ processHeaderRecord(keys, dataLength) {
4290
4289
  let recordData = '';
4291
4290
  for (const keyName of keys) {
4292
4291
  recordData += this.processField(keyName, this._escapeCharacters);
4293
4292
  }
4294
- return recordData.slice(0, -this._delimiterLength) + this._eor;
4293
+ const result = recordData.slice(0, -this._delimiterLength);
4294
+ return dataLength > 0 ? result + this._eor : result;
4295
4295
  }
4296
4296
  processRecord(record, keys) {
4297
4297
  const recordData = new Array(keys.length);
@@ -4627,7 +4627,7 @@ class IgxCsvExporterService extends IgxBaseExporter {
4627
4627
  }
4628
4628
  }
4629
4629
  exportFile(data, fileName, fileType) {
4630
- const blob = new Blob(['\ufeff', data], { type: fileType });
4630
+ const blob = new Blob([data ? '\ufeff' : '', data], { type: fileType });
4631
4631
  ExportUtilities.saveBlobToFile(blob, fileName);
4632
4632
  }
4633
4633
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: IgxCsvExporterService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
@@ -45812,14 +45812,12 @@ class IgxColumnGroupComponent extends IgxColumnComponent {
45812
45812
  get selectable() {
45813
45813
  return this.children && this.children.some(child => child.selectable);
45814
45814
  }
45815
+ /**
45816
+ * @hidden
45817
+ */
45815
45818
  set selectable(value) { }
45816
45819
  /**
45817
- * Returns a reference to the body template.
45818
- * ```typescript
45819
- * let bodyTemplate = this.columnGroup.bodyTemplate;
45820
- * ```
45821
- *
45822
- * @memberof IgxColumnGroupComponent
45820
+ * @hidden
45823
45821
  */
45824
45822
  get bodyTemplate() {
45825
45823
  return this._bodyTemplate;
@@ -45829,12 +45827,7 @@ class IgxColumnGroupComponent extends IgxColumnComponent {
45829
45827
  */
45830
45828
  set bodyTemplate(template) { }
45831
45829
  /**
45832
- * Returns a reference to the inline editor template.
45833
- * ```typescript
45834
- * let inlineEditorTemplate = this.columnGroup.inlineEditorTemplate;
45835
- * ```
45836
- *
45837
- * @memberof IgxColumnGroupComponent
45830
+ * @hidden
45838
45831
  */
45839
45832
  get inlineEditorTemplate() {
45840
45833
  return this._inlineEditorTemplate;
@@ -62492,10 +62485,6 @@ class IgxGridBaseDirective extends DisplayDensityBase {
62492
62485
  this.clearSort();
62493
62486
  this._sortingOptions = Object.assign(this._sortingOptions, value);
62494
62487
  }
62495
- /**
62496
- * @hidden
62497
- * @internal
62498
- */
62499
62488
  get sortingOptions() {
62500
62489
  return this._sortingOptions;
62501
62490
  }