igniteui-angular 15.0.16 → 15.0.17

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.
@@ -47,5 +47,18 @@ export class ExportUtilities {
47
47
  static isNullOrWhitespaces(value) {
48
48
  return value === undefined || value === null || !value.trim();
49
49
  }
50
+ static sanitizeValue(value) {
51
+ if (!this.hasValue(value)) {
52
+ return '';
53
+ }
54
+ else {
55
+ const stringValue = String(value);
56
+ return stringValue.replace(/&/g, '&')
57
+ .replace(/</g, '&lt;')
58
+ .replace(/>/g, '&gt;')
59
+ .replace(/"/g, '&quot;')
60
+ .replace(/'/g, '&apos;');
61
+ }
62
+ }
50
63
  }
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0LXV0aWxpdGllcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9zZXJ2aWNlcy9leHBvcnRlci1jb21tb24vZXhwb3J0LXV0aWxpdGllcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQTs7R0FFRztBQUNILE1BQU0sT0FBTyxlQUFlO0lBQ2pCLE1BQU0sQ0FBQyxlQUFlLENBQUMsSUFBVztRQUNyQyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQzNCLElBQUksTUFBTSxLQUFLLENBQUMsRUFBRTtZQUNkLE9BQU8sRUFBRSxDQUFDO1NBQ2I7UUFFRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDMUIsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDckQsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztRQUV2QyxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3JDLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDM0MsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUV6QyxNQUFNLElBQUksR0FBRyxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBRXhELE9BQU8sQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3ZGLENBQUM7SUFFTSxNQUFNLENBQUMsY0FBYyxDQUFDLElBQVUsRUFBRSxRQUFRO1FBQzdDLE1BQU0sQ0FBQyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdEMsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0MsQ0FBQyxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFFdEIsQ0FBQyxDQUFDLElBQUksR0FBRyxHQUFHLENBQUM7UUFDYixRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM3QixDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDVixRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM3QixNQUFNLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRU0sTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQVM7UUFDdkMsTUFBTSxHQUFHLEdBQUcsSUFBSSxXQUFXLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3RDLE1BQU0sSUFBSSxHQUFHLElBQUksVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2pDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxFQUFFO1lBQ2pDLGdDQUFnQztZQUNoQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUM7WUFDakMsK0JBQStCO1NBQ2xDO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDZixDQUFDO0lBRU0sTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFTO1FBQ2pDLE9BQU8sQ0FBQyxPQUFPLElBQUksS0FBSyxRQUFRO1lBQzVCLE9BQU8sSUFBSSxLQUFLLFFBQVE7WUFDeEIsSUFBSSxZQUFZLElBQUksQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFTSxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQVU7UUFDN0IsT0FBTyxLQUFLLEtBQUssU0FBUyxJQUFJLEtBQUssS0FBSyxJQUFJLENBQUM7SUFDakQsQ0FBQztJQUVNLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxLQUFhO1FBQzNDLE9BQU8sS0FBSyxLQUFLLFNBQVMsSUFBSSxLQUFLLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2xFLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbIlxuLyoqXG4gKiBAaGlkZGVuXG4gKi9cbmV4cG9ydCBjbGFzcyBFeHBvcnRVdGlsaXRpZXMge1xuICAgIHB1YmxpYyBzdGF0aWMgZ2V0S2V5c0Zyb21EYXRhKGRhdGE6IGFueVtdKSB7XG4gICAgICAgIGNvbnN0IGxlbmd0aCA9IGRhdGEubGVuZ3RoO1xuICAgICAgICBpZiAobGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBkYXRhRW50cnkgPSBkYXRhWzBdO1xuICAgICAgICBjb25zdCBkYXRhRW50cnlNaWRkbGUgPSBkYXRhW01hdGguZmxvb3IobGVuZ3RoIC8gMildO1xuICAgICAgICBjb25zdCBkYXRhRW50cnlMYXN0ID0gZGF0YVtsZW5ndGggLSAxXTtcblxuICAgICAgICBjb25zdCBrZXlzMSA9IE9iamVjdC5rZXlzKGRhdGFFbnRyeSk7XG4gICAgICAgIGNvbnN0IGtleXMyID0gT2JqZWN0LmtleXMoZGF0YUVudHJ5TWlkZGxlKTtcbiAgICAgICAgY29uc3Qga2V5czMgPSBPYmplY3Qua2V5cyhkYXRhRW50cnlMYXN0KTtcblxuICAgICAgICBjb25zdCBrZXlzID0gbmV3IFNldChrZXlzMS5jb25jYXQoa2V5czIpLmNvbmNhdChrZXlzMykpO1xuXG4gICAgICAgIHJldHVybiAhRXhwb3J0VXRpbGl0aWVzLmlzU3BlY2lhbERhdGEoZGF0YUVudHJ5KSA/IEFycmF5LmZyb20oa2V5cykgOiBbJ0NvbHVtbiAxJ107XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBzYXZlQmxvYlRvRmlsZShibG9iOiBCbG9iLCBmaWxlTmFtZSkge1xuICAgICAgICBjb25zdCBhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xuICAgICAgICBjb25zdCB1cmwgPSB3aW5kb3cuVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTtcbiAgICAgICAgYS5kb3dubG9hZCA9IGZpbGVOYW1lO1xuXG4gICAgICAgIGEuaHJlZiA9IHVybDtcbiAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChhKTtcbiAgICAgICAgYS5jbGljaygpO1xuICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGEpO1xuICAgICAgICB3aW5kb3cuVVJMLnJldm9rZU9iamVjdFVSTCh1cmwpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgc3RyaW5nVG9BcnJheUJ1ZmZlcihzOiBzdHJpbmcpOiBBcnJheUJ1ZmZlciB7XG4gICAgICAgIGNvbnN0IGJ1ZiA9IG5ldyBBcnJheUJ1ZmZlcihzLmxlbmd0aCk7XG4gICAgICAgIGNvbnN0IHZpZXcgPSBuZXcgVWludDhBcnJheShidWYpO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSAhPT0gcy5sZW5ndGg7ICsraSkge1xuICAgICAgICAgICAgLyogZXNsaW50LWRpc2FibGUgIG5vLWJpdHdpc2UgKi9cbiAgICAgICAgICAgIHZpZXdbaV0gPSBzLmNoYXJDb2RlQXQoaSkgJiAweEZGO1xuICAgICAgICAgICAgLyogZXNsaW50LWVuYWJsZSAgbm8tYml0d2lzZSAqL1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBidWY7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBpc1NwZWNpYWxEYXRhKGRhdGE6IGFueSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKHR5cGVvZiBkYXRhID09PSAnc3RyaW5nJyB8fFxuICAgICAgICAgICAgdHlwZW9mIGRhdGEgPT09ICdudW1iZXInIHx8XG4gICAgICAgICAgICBkYXRhIGluc3RhbmNlb2YgRGF0ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBoYXNWYWx1ZSh2YWx1ZTogYW55KTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB2YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHZhbHVlICE9PSBudWxsO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgaXNOdWxsT3JXaGl0ZXNwYWNlcyh2YWx1ZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlID09PSBudWxsIHx8ICF2YWx1ZS50cmltKCk7XG4gICAgfVxufVxuIl19
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0LXV0aWxpdGllcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9zZXJ2aWNlcy9leHBvcnRlci1jb21tb24vZXhwb3J0LXV0aWxpdGllcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQTs7R0FFRztBQUNILE1BQU0sT0FBTyxlQUFlO0lBQ2pCLE1BQU0sQ0FBQyxlQUFlLENBQUMsSUFBVztRQUNyQyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQzNCLElBQUksTUFBTSxLQUFLLENBQUMsRUFBRTtZQUNkLE9BQU8sRUFBRSxDQUFDO1NBQ2I7UUFFRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDMUIsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDckQsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztRQUV2QyxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3JDLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDM0MsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUV6QyxNQUFNLElBQUksR0FBRyxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBRXhELE9BQU8sQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3ZGLENBQUM7SUFFTSxNQUFNLENBQUMsY0FBYyxDQUFDLElBQVUsRUFBRSxRQUFRO1FBQzdDLE1BQU0sQ0FBQyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdEMsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0MsQ0FBQyxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFFdEIsQ0FBQyxDQUFDLElBQUksR0FBRyxHQUFHLENBQUM7UUFDYixRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM3QixDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDVixRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM3QixNQUFNLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRU0sTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQVM7UUFDdkMsTUFBTSxHQUFHLEdBQUcsSUFBSSxXQUFXLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3RDLE1BQU0sSUFBSSxHQUFHLElBQUksVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2pDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxFQUFFO1lBQ2pDLGdDQUFnQztZQUNoQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUM7WUFDakMsK0JBQStCO1NBQ2xDO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDZixDQUFDO0lBRU0sTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFTO1FBQ2pDLE9BQU8sQ0FBQyxPQUFPLElBQUksS0FBSyxRQUFRO1lBQzVCLE9BQU8sSUFBSSxLQUFLLFFBQVE7WUFDeEIsSUFBSSxZQUFZLElBQUksQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFTSxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQVU7UUFDN0IsT0FBTyxLQUFLLEtBQUssU0FBUyxJQUFJLEtBQUssS0FBSyxJQUFJLENBQUM7SUFDakQsQ0FBQztJQUVNLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxLQUFhO1FBQzNDLE9BQU8sS0FBSyxLQUFLLFNBQVMsSUFBSSxLQUFLLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2xFLENBQUM7SUFFTSxNQUFNLENBQUMsYUFBYSxDQUFDLEtBQVU7UUFDbEMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDdkIsT0FBTyxFQUFFLENBQUM7U0FDYjthQUFNO1lBQ0gsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2xDLE9BQU8sV0FBVyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDO2lCQUN0QixPQUFPLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQztpQkFDckIsT0FBTyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUM7aUJBQ3JCLE9BQU8sQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDO2lCQUN2QixPQUFPLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1NBQzlDO0lBQ0wsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiXG4vKipcbiAqIEBoaWRkZW5cbiAqL1xuZXhwb3J0IGNsYXNzIEV4cG9ydFV0aWxpdGllcyB7XG4gICAgcHVibGljIHN0YXRpYyBnZXRLZXlzRnJvbURhdGEoZGF0YTogYW55W10pIHtcbiAgICAgICAgY29uc3QgbGVuZ3RoID0gZGF0YS5sZW5ndGg7XG4gICAgICAgIGlmIChsZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGRhdGFFbnRyeSA9IGRhdGFbMF07XG4gICAgICAgIGNvbnN0IGRhdGFFbnRyeU1pZGRsZSA9IGRhdGFbTWF0aC5mbG9vcihsZW5ndGggLyAyKV07XG4gICAgICAgIGNvbnN0IGRhdGFFbnRyeUxhc3QgPSBkYXRhW2xlbmd0aCAtIDFdO1xuXG4gICAgICAgIGNvbnN0IGtleXMxID0gT2JqZWN0LmtleXMoZGF0YUVudHJ5KTtcbiAgICAgICAgY29uc3Qga2V5czIgPSBPYmplY3Qua2V5cyhkYXRhRW50cnlNaWRkbGUpO1xuICAgICAgICBjb25zdCBrZXlzMyA9IE9iamVjdC5rZXlzKGRhdGFFbnRyeUxhc3QpO1xuXG4gICAgICAgIGNvbnN0IGtleXMgPSBuZXcgU2V0KGtleXMxLmNvbmNhdChrZXlzMikuY29uY2F0KGtleXMzKSk7XG5cbiAgICAgICAgcmV0dXJuICFFeHBvcnRVdGlsaXRpZXMuaXNTcGVjaWFsRGF0YShkYXRhRW50cnkpID8gQXJyYXkuZnJvbShrZXlzKSA6IFsnQ29sdW1uIDEnXTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIHNhdmVCbG9iVG9GaWxlKGJsb2I6IEJsb2IsIGZpbGVOYW1lKSB7XG4gICAgICAgIGNvbnN0IGEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XG4gICAgICAgIGNvbnN0IHVybCA9IHdpbmRvdy5VUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpO1xuICAgICAgICBhLmRvd25sb2FkID0gZmlsZU5hbWU7XG5cbiAgICAgICAgYS5ocmVmID0gdXJsO1xuICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGEpO1xuICAgICAgICBhLmNsaWNrKCk7XG4gICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoYSk7XG4gICAgICAgIHdpbmRvdy5VUkwucmV2b2tlT2JqZWN0VVJMKHVybCk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBzdHJpbmdUb0FycmF5QnVmZmVyKHM6IHN0cmluZyk6IEFycmF5QnVmZmVyIHtcbiAgICAgICAgY29uc3QgYnVmID0gbmV3IEFycmF5QnVmZmVyKHMubGVuZ3RoKTtcbiAgICAgICAgY29uc3QgdmlldyA9IG5ldyBVaW50OEFycmF5KGJ1Zik7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpICE9PSBzLmxlbmd0aDsgKytpKSB7XG4gICAgICAgICAgICAvKiBlc2xpbnQtZGlzYWJsZSAgbm8tYml0d2lzZSAqL1xuICAgICAgICAgICAgdmlld1tpXSA9IHMuY2hhckNvZGVBdChpKSAmIDB4RkY7XG4gICAgICAgICAgICAvKiBlc2xpbnQtZW5hYmxlICBuby1iaXR3aXNlICovXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGJ1ZjtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGlzU3BlY2lhbERhdGEoZGF0YTogYW55KTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAodHlwZW9mIGRhdGEgPT09ICdzdHJpbmcnIHx8XG4gICAgICAgICAgICB0eXBlb2YgZGF0YSA9PT0gJ251bWJlcicgfHxcbiAgICAgICAgICAgIGRhdGEgaW5zdGFuY2VvZiBEYXRlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGhhc1ZhbHVlKHZhbHVlOiBhbnkpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlICE9PSB1bmRlZmluZWQgJiYgdmFsdWUgIT09IG51bGw7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBpc051bGxPcldoaXRlc3BhY2VzKHZhbHVlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09IG51bGwgfHwgIXZhbHVlLnRyaW0oKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIHNhbml0aXplVmFsdWUodmFsdWU6IGFueSk6IHN0cmluZyB7XG4gICAgICAgIGlmICghdGhpcy5oYXNWYWx1ZSh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IHN0cmluZ1ZhbHVlID0gU3RyaW5nKHZhbHVlKTtcbiAgICAgICAgICAgIHJldHVybiBzdHJpbmdWYWx1ZS5yZXBsYWNlKC8mL2csICcmYW1wOycpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAucmVwbGFjZSgvPC9nLCAnJmx0OycpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAucmVwbGFjZSgvPi9nLCAnJmd0OycpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAucmVwbGFjZSgvXCIvZywgJyZxdW90OycpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAucmVwbGFjZSgvJy9nLCAnJmFwb3M7Jyk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
@@ -2124,6 +2124,19 @@ class ExportUtilities {
2124
2124
  static isNullOrWhitespaces(value) {
2125
2125
  return value === undefined || value === null || !value.trim();
2126
2126
  }
2127
+ static sanitizeValue(value) {
2128
+ if (!this.hasValue(value)) {
2129
+ return '';
2130
+ }
2131
+ else {
2132
+ const stringValue = String(value);
2133
+ return stringValue.replace(/&/g, '&amp;')
2134
+ .replace(/</g, '&lt;')
2135
+ .replace(/>/g, '&gt;')
2136
+ .replace(/"/g, '&quot;')
2137
+ .replace(/'/g, '&apos;');
2138
+ }
2139
+ }
2127
2140
  }
2128
2141
 
2129
2142
  var FilteringExpressionsTreeType;
@@ -3414,7 +3427,7 @@ class IgxBaseExporter {
3414
3427
  .length :
3415
3428
  1;
3416
3429
  const columnInfo = {
3417
- header: columnHeader,
3430
+ header: ExportUtilities.sanitizeValue(columnHeader),
3418
3431
  dataType: column.dataType,
3419
3432
  field: column.field,
3420
3433
  skip: !exportColumn,
@@ -4668,7 +4681,7 @@ class WorksheetFile {
4668
4681
  const rowCoordinate = isVertical
4669
4682
  ? startValue + owner.maxLevel + 2
4670
4683
  : this.rowIndex;
4671
- const columnValue = dictionary.saveValue(currentCol.header, true);
4684
+ const columnValue = dictionary.saveValue(currentCol.header, true, false);
4672
4685
  columnCoordinate = (currentCol.field === GRID_LEVEL_COL
4673
4686
  ? ExcelStrings.getExcelColumn(worksheetData.columnCount + 1)
4674
4687
  : ExcelStrings.getExcelColumn(column)) + rowCoordinate;
@@ -5013,12 +5026,12 @@ class WorksheetDataDictionary {
5013
5026
  get columnWidths() {
5014
5027
  return this._columnWidths;
5015
5028
  }
5016
- saveValue(value, isHeader) {
5029
+ saveValue(value, isHeader, shouldSanitizeValue = true) {
5017
5030
  let sanitizedValue = '';
5018
5031
  const isDate = value instanceof Date;
5019
5032
  const isSavedAsString = isHeader || (typeof value !== 'number' && value !== Number(value) && !Number.isFinite(value) && !isDate);
5020
5033
  if (isSavedAsString) {
5021
- sanitizedValue = this.sanitizeValue(value);
5034
+ sanitizedValue = shouldSanitizeValue ? ExportUtilities.sanitizeValue(value) : value;
5022
5035
  if (this._dictionary[sanitizedValue] === undefined) {
5023
5036
  this._dictionary[sanitizedValue] = this._counter++;
5024
5037
  this.dirtyKeyCollections();
@@ -5034,7 +5047,7 @@ class WorksheetDataDictionary {
5034
5047
  return isSavedAsString ? this.getSanitizedValue(sanitizedValue) : -1;
5035
5048
  }
5036
5049
  getValue(value) {
5037
- return this.getSanitizedValue(this.sanitizeValue(value));
5050
+ return this.getSanitizedValue(ExportUtilities.sanitizeValue(value));
5038
5051
  }
5039
5052
  getSanitizedValue(sanitizedValue) {
5040
5053
  return this._dictionary[sanitizedValue];
@@ -5062,19 +5075,6 @@ class WorksheetDataDictionary {
5062
5075
  }
5063
5076
  return this._context;
5064
5077
  }
5065
- sanitizeValue(value) {
5066
- if (ExportUtilities.hasValue(value) === false) {
5067
- return '';
5068
- }
5069
- else {
5070
- const stringValue = String(value);
5071
- return stringValue.replace(/&/g, '&amp;')
5072
- .replace(/</g, '&lt;')
5073
- .replace(/>/g, '&gt;')
5074
- .replace(/"/g, '&quot;')
5075
- .replace(/'/g, '&apos;');
5076
- }
5077
- }
5078
5078
  dirtyKeyCollections() {
5079
5079
  this._keysAreValid = false;
5080
5080
  }
@@ -67162,9 +67162,10 @@ class IgxGridBaseDirective extends DisplayDensityBase {
67162
67162
  columnsArray = this.getSelectableColumnsAt(each);
67163
67163
  columnsArray.forEach((col) => {
67164
67164
  if (col) {
67165
- const key = headers ? col.header || col.field : col.field;
67165
+ const key = !this.isPivot && headers ? col.header || col.field : col.field;
67166
67166
  const rowData = source[row].ghostRecord ? source[row].recordRef : source[row];
67167
- const value = resolveNestedPath(rowData, col.field);
67167
+ const value = this.isPivot ? rowData.aggregationValues.get(col.field)
67168
+ : resolveNestedPath(rowData, col.field);
67168
67169
  record[key] = formatters && col.formatter ? col.formatter(value, rowData) : value;
67169
67170
  if (columnData) {
67170
67171
  if (!record[key]) {
@@ -79064,6 +79065,9 @@ class IgxTreeGridHierarchizingPipe {
79064
79065
  const treeGridRecordsMap = new Map();
79065
79066
  const flatData = [];
79066
79067
  if (!collection || !collection.length) {
79068
+ this.grid.flatData = collection;
79069
+ this.grid.records = treeGridRecordsMap;
79070
+ this.grid.rootRecords = collection;
79067
79071
  return collection;
79068
79072
  }
79069
79073
  if (childDataKey) {