ms-data-grid 0.0.43 → 0.0.45

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.
@@ -1,149 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import * as XLSX from 'xlsx-js-style';
3
- import { saveAs } from 'file-saver';
4
- import * as i0 from "@angular/core";
5
- export class ExportService {
6
- constructor() { }
7
- /**
8
- * Exports data to CSV or Excel.
9
- * @param columns List of column definitions (each having name/key/is_visible)
10
- * @param data The array of data objects
11
- * @param fileName Name of the exported file (without extension)
12
- * @param format 'csv' | 'xlsx'
13
- */
14
- exportData(columns, data, fileName, format = 'xlsx', rowSelectedIndexes = new Set(), styleConfig = {}) {
15
- const { headerBgColor = '#228B22', headerTextColor = '#FFFFFF', bodyTextColor = '#000000', fontFamily = 'Calibri', fontWeight = 'normal', zoomScale = 120, headerRowHeight = 20, selectedRowBgColor = '#8AC5FF', } = styleConfig;
16
- const visibleColumns = columns.filter(col => col.is_visible && col.type !== 'image' && col.type !== 'logo');
17
- const headers = visibleColumns.map(col => col.header || col.headerName || col.name);
18
- const flattenValue = (value) => {
19
- if (value == null)
20
- return '';
21
- if (Array.isArray(value))
22
- return value.map(v => (typeof v === 'object' ? flattenValue(v) : v)).join(', ');
23
- if (typeof value === 'object')
24
- return Object.entries(value)
25
- .map(([k, v]) => `${k}: ${flattenValue(v)}`)
26
- .join(', ');
27
- return value;
28
- };
29
- const exportData = data.map(row => visibleColumns.reduce((acc, col) => {
30
- const header = col.headerName || col.name || col.header;
31
- let value = this.getNestedValue(row, col.field);
32
- switch (col.type) {
33
- case 'boolean':
34
- value = value ? 'Yes' : 'No';
35
- break;
36
- case 'date':
37
- if (value) {
38
- const date = new Date(value);
39
- if (!isNaN(date.getTime())) {
40
- value = date.toLocaleDateString('en-US', {
41
- day: '2-digit',
42
- month: 'long',
43
- year: 'numeric',
44
- });
45
- }
46
- }
47
- break;
48
- default:
49
- value = flattenValue(value);
50
- }
51
- acc[header] = value;
52
- return acc;
53
- }, {}));
54
- const worksheet = XLSX.utils.json_to_sheet(exportData, { header: headers });
55
- // ✅ Define a reusable border style
56
- const borderStyle = {
57
- top: { style: 'thin', color: { rgb: 'CCCCCC' } },
58
- bottom: { style: 'thin', color: { rgb: 'CCCCCC' } },
59
- left: { style: 'thin', color: { rgb: 'CCCCCC' } },
60
- right: { style: 'thin', color: { rgb: 'CCCCCC' } },
61
- };
62
- // ✅ Apply header styles
63
- headers.forEach((header, index) => {
64
- const cellAddress = XLSX.utils.encode_cell({ r: 0, c: index });
65
- if (!worksheet[cellAddress])
66
- return;
67
- worksheet[cellAddress].s = {
68
- fill: { fgColor: { rgb: headerBgColor.replace('#', '') } },
69
- font: {
70
- name: fontFamily,
71
- sz: 14,
72
- color: { rgb: headerTextColor.replace('#', '') },
73
- bold: fontWeight === 'bold',
74
- },
75
- alignment: { horizontal: 'center', vertical: 'center' },
76
- border: borderStyle, // ✅ Added border here
77
- };
78
- });
79
- // ✅ Apply body styles + highlight selected rows
80
- for (let r = 1; r <= exportData.length; r++) {
81
- const isSelected = rowSelectedIndexes?.has(r - 1);
82
- const rowBgColor = isSelected ? selectedRowBgColor : '#FFFFFF';
83
- for (let c = 0; c < headers.length; c++) {
84
- const col = visibleColumns[c];
85
- const cellAddress = XLSX.utils.encode_cell({ r, c });
86
- const cell = worksheet[cellAddress];
87
- if (!cell)
88
- continue;
89
- let horizontalAlign = 'left';
90
- if (['number', 'boolean', 'date'].includes(col.type))
91
- horizontalAlign = 'center';
92
- cell.s = {
93
- fill: { fgColor: { rgb: rowBgColor.replace('#', '') } },
94
- font: {
95
- name: fontFamily,
96
- sz: 14,
97
- color: { rgb: bodyTextColor.replace('#', '') },
98
- bold: false,
99
- },
100
- alignment: { horizontal: horizontalAlign, vertical: 'center', wrapText: true },
101
- border: borderStyle, // ✅ Added border here too
102
- };
103
- }
104
- }
105
- // ✅ Adjust column widths
106
- const colWidths = headers.map(header => {
107
- let maxLength = header.length;
108
- exportData.forEach(row => {
109
- const val = row[header];
110
- if (val != null) {
111
- const len = val.toString().length;
112
- if (len > maxLength)
113
- maxLength = len;
114
- }
115
- });
116
- return { wch: Math.min(maxLength + 2, 64) };
117
- });
118
- worksheet['!cols'] = colWidths;
119
- worksheet['!rows'] = [{ hpt: headerRowHeight }];
120
- worksheet['!zoom'] = zoomScale;
121
- const workbook = { Sheets: { Data: worksheet }, SheetNames: ['Data'] };
122
- if (format === 'csv') {
123
- const csv = XLSX.utils.sheet_to_csv(worksheet);
124
- const blob = new Blob([csv], { type: 'text/csv;charset=utf-8;' });
125
- saveAs(blob, `${fileName}.csv`);
126
- }
127
- else {
128
- const excelBuffer = XLSX.write(workbook, { bookType: 'xlsx', type: 'array' });
129
- const blob = new Blob([excelBuffer], {
130
- type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8',
131
- });
132
- saveAs(blob, `${fileName}.xlsx`);
133
- }
134
- }
135
- getNestedValue(obj, path) {
136
- if (!path || typeof obj !== 'object')
137
- return obj;
138
- return path.split('.').reduce((acc, key) => (acc && acc[key] !== undefined ? acc[key] : ''), obj);
139
- }
140
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ExportService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
141
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ExportService, providedIn: 'root' }); }
142
- }
143
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ExportService, decorators: [{
144
- type: Injectable,
145
- args: [{
146
- providedIn: 'root'
147
- }]
148
- }], ctorParameters: function () { return []; } });
149
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhLWdyaWQvc3JjL2xpYi9zZXJ2aWNlcy9leHBvcnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sS0FBSyxJQUFJLE1BQU0sZUFBZSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxZQUFZLENBQUM7O0FBS3BDLE1BQU0sT0FBTyxhQUFhO0lBRXhCLGdCQUFlLENBQUM7SUFFaEI7Ozs7OztPQU1HO0lBQ0wsVUFBVSxDQUNSLE9BQWMsRUFDZCxJQUFXLEVBQ1gsUUFBZ0IsRUFDaEIsU0FBeUIsTUFBTSxFQUMvQixxQkFBeUMsSUFBSSxHQUFHLEVBQUUsRUFDbEQsY0FTSSxFQUFFO1FBRU4sTUFBTSxFQUNKLGFBQWEsR0FBRyxTQUFTLEVBQ3pCLGVBQWUsR0FBRyxTQUFTLEVBQzNCLGFBQWEsR0FBRyxTQUFTLEVBQ3pCLFVBQVUsR0FBRyxTQUFTLEVBQ3RCLFVBQVUsR0FBRyxRQUFRLEVBQ3JCLFNBQVMsR0FBRyxHQUFHLEVBQ2YsZUFBZSxHQUFHLEVBQUUsRUFDcEIsa0JBQWtCLEdBQUcsU0FBUyxHQUMvQixHQUFHLFdBQVcsQ0FBQztRQUVoQixNQUFNLGNBQWMsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUNuQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxVQUFVLElBQUksR0FBRyxDQUFDLElBQUksS0FBSyxPQUFPLElBQUksR0FBRyxDQUFDLElBQUksS0FBSyxNQUFNLENBQ3JFLENBQUM7UUFFRixNQUFNLE9BQU8sR0FBRyxjQUFjLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLE1BQU0sSUFBSSxHQUFHLENBQUMsVUFBVSxJQUFJLEdBQUcsQ0FBQyxJQUFJLENB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QUFJLEVBQUUseUJBQXlCLEVBQUUsQ0FBQyxDQUFDO1lBQ2xFLE1BQU0sQ0FBQyxJQUFJLEVBQUUsR0FBRyxRQUFRLE1BQU0sQ0FBQyxDQUFDO1NBQ2pDO2FBQU07WUFDTCxNQUFNLFdBQVcsR0FBUSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7WUFDbkYsTUFBTSxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsQ0FBQyxXQUFXLENBQUMsRUFBRTtnQkFDbkMsSUFBSSxFQUFFLGlGQUFpRjthQUN4RixDQUFDLENBQUM7WUFDSCxNQUFNLENBQUMsSUFBSSxFQUFFLEdBQUcsUUFBUSxPQUFPLENBQUMsQ0FBQztTQUNsQztJQUNILENBQUM7SUFLTyxjQUFjLENBQUMsR0FBUSxFQUFFLElBQVk7UUFDM0MsSUFBSSxDQUFDLElBQUksSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRO1lBQUUsT0FBTyxHQUFHLENBQUM7UUFDakQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDcEcsQ0FBQzsrR0FwTFksYUFBYTttSEFBYixhQUFhLGNBRlosTUFBTTs7NEZBRVAsYUFBYTtrQkFIekIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCAqIGFzIFhMU1ggZnJvbSAneGxzeC1qcy1zdHlsZSc7XHJcbmltcG9ydCB7IHNhdmVBcyB9IGZyb20gJ2ZpbGUtc2F2ZXInO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgRXhwb3J0U2VydmljZSB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge31cclxuXHJcbiAgLyoqXHJcbiAgICogRXhwb3J0cyBkYXRhIHRvIENTViBvciBFeGNlbC5cclxuICAgKiBAcGFyYW0gY29sdW1ucyBMaXN0IG9mIGNvbHVtbiBkZWZpbml0aW9ucyAoZWFjaCBoYXZpbmcgbmFtZS9rZXkvaXNfdmlzaWJsZSlcclxuICAgKiBAcGFyYW0gZGF0YSBUaGUgYXJyYXkgb2YgZGF0YSBvYmplY3RzXHJcbiAgICogQHBhcmFtIGZpbGVOYW1lIE5hbWUgb2YgdGhlIGV4cG9ydGVkIGZpbGUgKHdpdGhvdXQgZXh0ZW5zaW9uKVxyXG4gICAqIEBwYXJhbSBmb3JtYXQgJ2NzdicgfCAneGxzeCdcclxuICAgKi9cclxuZXhwb3J0RGF0YShcclxuICBjb2x1bW5zOiBhbnlbXSxcclxuICBkYXRhOiBhbnlbXSxcclxuICBmaWxlTmFtZTogc3RyaW5nLFxyXG4gIGZvcm1hdDogJ2NzdicgfCAneGxzeCcgPSAneGxzeCcsXHJcbiAgcm93U2VsZWN0ZWRJbmRleGVzOiBTZXQ8bnVtYmVyPiB8IG51bGwgPSBuZXcgU2V0KCksXHJcbiAgc3R5bGVDb25maWc6IHtcclxuICAgIGhlYWRlckJnQ29sb3I/OiBzdHJpbmc7XHJcbiAgICBoZWFkZXJUZXh0Q29sb3I/OiBzdHJpbmc7XHJcbiAgICBib2R5VGV4dENvbG9yPzogc3RyaW5nO1xyXG4gICAgZm9udEZhbWlseT86IHN0cmluZztcclxuICAgIGZvbnRXZWlnaHQ/OiAnbm9ybWFsJyB8ICdib2xkJztcclxuICAgIHpvb21TY2FsZT86IG51bWJlcjtcclxuICAgIGhlYWRlclJvd0hlaWdodD86IG51bWJlcjtcclxuICAgIHNlbGVjdGVkUm93QmdDb2xvcj86IHN0cmluZztcclxuICB9ID0ge31cclxuKSB7XHJcbiAgY29uc3Qge1xyXG4gICAgaGVhZGVyQmdDb2xvciA9ICcjMjI4QjIyJyxcclxuICAgIGhlYWRlclRleHRDb2xvciA9ICcjRkZGRkZGJyxcclxuICAgIGJvZHlUZXh0Q29sb3IgPSAnIzAwMDAwMCcsXHJcbiAgICBmb250RmFtaWx5ID0gJ0NhbGlicmknLFxyXG4gICAgZm9udFdlaWdodCA9ICdub3JtYWwnLFxyXG4gICAgem9vbVNjYWxlID0gMTIwLFxyXG4gICAgaGVhZGVyUm93SGVpZ2h0ID0gMjAsXHJcbiAgICBzZWxlY3RlZFJvd0JnQ29sb3IgPSAnIzhBQzVGRicsXHJcbiAgfSA9IHN0eWxlQ29uZmlnO1xyXG5cclxuICBjb25zdCB2aXNpYmxlQ29sdW1ucyA9IGNvbHVtbnMuZmlsdGVyKFxyXG4gICAgY29sID0+IGNvbC5pc192aXNpYmxlICYmIGNvbC50eXBlICE9PSAnaW1hZ2UnICYmIGNvbC50eXBlICE9PSAnbG9nbydcclxuICApO1xyXG5cclxuICBjb25zdCBoZWFkZXJzID0gdmlzaWJsZUNvbHVtbnMubWFwKGNvbCA9PiBjb2wuaGVhZGVyIHx8IGNvbC5oZWFkZXJOYW1lIHx8IGNvbC5uYW1lKTtcclxuXHJcbiAgY29uc3QgZmxhdHRlblZhbHVlID0gKHZhbHVlOiBhbnkpOiBhbnkgPT4ge1xyXG4gICAgaWYgKHZhbHVlID09IG51bGwpIHJldHVybiAnJztcclxuICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSlcclxuICAgICAgcmV0dXJuIHZhbHVlLm1hcCh2ID0+ICh0eXBlb2YgdiA9PT0gJ29iamVjdCcgPyBmbGF0dGVuVmFsdWUodikgOiB2KSkuam9pbignLCAnKTtcclxuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnKVxyXG4gICAgICByZXR1cm4gT2JqZWN0LmVudHJpZXModmFsdWUpXHJcbiAgICAgICAgLm1hcCgoW2ssIHZdKSA9PiBgJHtrfTogJHtmbGF0dGVuVmFsdWUodil9YClcclxuICAgICAgICAuam9pbignLCAnKTtcclxuICAgIHJldHVybiB2YWx1ZTtcclxuICB9O1xyXG5cclxuICBjb25zdCBleHBvcnREYXRhID0gZGF0YS5tYXAocm93ID0+XHJcbiAgICB2aXNpYmxlQ29sdW1ucy5yZWR1Y2UoKGFjYzogYW55LCBjb2wpID0+IHtcclxuICAgICAgY29uc3QgaGVhZGVyID0gY29sLmhlYWRlck5hbWUgfHwgY29sLm5hbWUgfHwgY29sLmhlYWRlcjtcclxuICAgICAgbGV0IHZhbHVlID0gdGhpcy5nZXROZXN0ZWRWYWx1ZShyb3csIGNvbC5maWVsZCk7XHJcblxyXG4gICAgICBzd2l0Y2ggKGNvbC50eXBlKSB7XHJcbiAgICAgICAgY2FzZSAnYm9vbGVhbic6XHJcbiAgICAgICAgICB2YWx1ZSA9IHZhbHVlID8gJ1llcycgOiAnTm8nO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnZGF0ZSc6XHJcbiAgICAgICAgICBpZiAodmFsdWUpIHtcclxuICAgICAgICAgICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKHZhbHVlKTtcclxuICAgICAgICAgICAgaWYgKCFpc05hTihkYXRlLmdldFRpbWUoKSkpIHtcclxuICAgICAgICAgICAgICB2YWx1ZSA9IGRhdGUudG9Mb2NhbGVEYXRlU3RyaW5nKCdlbi1VUycsIHtcclxuICAgICAgICAgICAgICAgIGRheTogJzItZGlnaXQnLFxyXG4gICAgICAgICAgICAgICAgbW9udGg6ICdsb25nJyxcclxuICAgICAgICAgICAgICAgIHllYXI6ICdudW1lcmljJyxcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgIHZhbHVlID0gZmxhdHRlblZhbHVlKHZhbHVlKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgYWNjW2hlYWRlcl0gPSB2YWx1ZTtcclxuICAgICAgcmV0dXJuIGFjYztcclxuICAgIH0sIHt9KVxyXG4gICk7XHJcblxyXG4gIGNvbnN0IHdvcmtzaGVldDogWExTWC5Xb3JrU2hlZXQgPSBYTFNYLnV0aWxzLmpzb25fdG9fc2hlZXQoZXhwb3J0RGF0YSwgeyBoZWFkZXI6IGhlYWRlcnMgfSk7XHJcblxyXG4gIC8vIOKchSBEZWZpbmUgYSByZXVzYWJsZSBib3JkZXIgc3R5bGVcclxuICBjb25zdCBib3JkZXJTdHlsZSA9IHtcclxuICAgIHRvcDogeyBzdHlsZTogJ3RoaW4nLCBjb2xvcjogeyByZ2I6ICdDQ0NDQ0MnIH0gfSxcclxuICAgIGJvdHRvbTogeyBzdHlsZTogJ3RoaW4nLCBjb2xvcjogeyByZ2I6ICdDQ0NDQ0MnIH0gfSxcclxuICAgIGxlZnQ6IHsgc3R5bGU6ICd0aGluJywgY29sb3I6IHsgcmdiOiAnQ0NDQ0NDJyB9IH0sXHJcbiAgICByaWdodDogeyBzdHlsZTogJ3RoaW4nLCBjb2xvcjogeyByZ2I6ICdDQ0NDQ0MnIH0gfSxcclxuICB9O1xyXG5cclxuICAvLyDinIUgQXBwbHkgaGVhZGVyIHN0eWxlc1xyXG4gIGhlYWRlcnMuZm9yRWFjaCgoaGVhZGVyLCBpbmRleCkgPT4ge1xyXG4gICAgY29uc3QgY2VsbEFkZHJlc3MgPSBYTFNYLnV0aWxzLmVuY29kZV9jZWxsKHsgcjogMCwgYzogaW5kZXggfSk7XHJcbiAgICBpZiAoIXdvcmtzaGVldFtjZWxsQWRkcmVzc10pIHJldHVybjtcclxuXHJcbiAgICB3b3Jrc2hlZXRbY2VsbEFkZHJlc3NdLnMgPSB7XHJcbiAgICAgIGZpbGw6IHsgZmdDb2xvcjogeyByZ2I6IGhlYWRlckJnQ29sb3IucmVwbGFjZSgnIycsICcnKSB9IH0sXHJcbiAgICAgIGZvbnQ6IHtcclxuICAgICAgICBuYW1lOiBmb250RmFtaWx5LFxyXG4gICAgICAgIHN6OiAxNCxcclxuICAgICAgICBjb2xvcjogeyByZ2I6IGhlYWRlclRleHRDb2xvci5yZXBsYWNlKCcjJywgJycpIH0sXHJcbiAgICAgICAgYm9sZDogZm9udFdlaWdodCA9PT0gJ2JvbGQnLFxyXG4gICAgICB9LFxyXG4gICAgICBhbGlnbm1lbnQ6IHsgaG9yaXpvbnRhbDogJ2NlbnRlcicsIHZlcnRpY2FsOiAnY2VudGVyJyB9LFxyXG4gICAgICBib3JkZXI6IGJvcmRlclN0eWxlLCAvLyDinIUgQWRkZWQgYm9yZGVyIGhlcmVcclxuICAgIH07XHJcbiAgfSk7XHJcblxyXG4gIC8vIOKchSBBcHBseSBib2R5IHN0eWxlcyArIGhpZ2hsaWdodCBzZWxlY3RlZCByb3dzXHJcbiAgZm9yIChsZXQgciA9IDE7IHIgPD0gZXhwb3J0RGF0YS5sZW5ndGg7IHIrKykge1xyXG4gICAgY29uc3QgaXNTZWxlY3RlZCA9IHJvd1NlbGVjdGVkSW5kZXhlcz8uaGFzKHIgLSAxKTtcclxuICAgIGNvbnN0IHJvd0JnQ29sb3IgPSBpc1NlbGVjdGVkID8gc2VsZWN0ZWRSb3dCZ0NvbG9yIDogJyNGRkZGRkYnO1xyXG5cclxuICAgIGZvciAobGV0IGMgPSAwOyBjIDwgaGVhZGVycy5sZW5ndGg7IGMrKykge1xyXG4gICAgICBjb25zdCBjb2wgPSB2aXNpYmxlQ29sdW1uc1tjXTtcclxuICAgICAgY29uc3QgY2VsbEFkZHJlc3MgPSBYTFNYLnV0aWxzLmVuY29kZV9jZWxsKHsgciwgYyB9KTtcclxuICAgICAgY29uc3QgY2VsbCA9IHdvcmtzaGVldFtjZWxsQWRkcmVzc107XHJcbiAgICAgIGlmICghY2VsbCkgY29udGludWU7XHJcblxyXG4gICAgICBsZXQgaG9yaXpvbnRhbEFsaWduID0gJ2xlZnQnO1xyXG4gICAgICBpZiAoWydudW1iZXInLCAnYm9vbGVhbicsICdkYXRlJ10uaW5jbHVkZXMoY29sLnR5cGUpKSBob3Jpem9udGFsQWxpZ24gPSAnY2VudGVyJztcclxuXHJcbiAgICAgIGNlbGwucyA9IHtcclxuICAgICAgICBmaWxsOiB7IGZnQ29sb3I6IHsgcmdiOiByb3dCZ0NvbG9yLnJlcGxhY2UoJyMnLCAnJykgfSB9LFxyXG4gICAgICAgIGZvbnQ6IHtcclxuICAgICAgICAgIG5hbWU6IGZvbnRGYW1pbHksXHJcbiAgICAgICAgICBzejogMTQsXHJcbiAgICAgICAgICBjb2xvcjogeyByZ2I6IGJvZHlUZXh0Q29sb3IucmVwbGFjZSgnIycsICcnKSB9LFxyXG4gICAgICAgICAgYm9sZDogZmFsc2UsXHJcbiAgICAgICAgfSxcclxuICAgICAgICBhbGlnbm1lbnQ6IHsgaG9yaXpvbnRhbDogaG9yaXpvbnRhbEFsaWduLCB2ZXJ0aWNhbDogJ2NlbnRlcicsIHdyYXBUZXh0OiB0cnVlIH0sXHJcbiAgICAgICAgYm9yZGVyOiBib3JkZXJTdHlsZSwgLy8g4pyFIEFkZGVkIGJvcmRlciBoZXJlIHRvb1xyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8g4pyFIEFkanVzdCBjb2x1bW4gd2lkdGhzXHJcbiAgY29uc3QgY29sV2lkdGhzID0gaGVhZGVycy5tYXAoaGVhZGVyID0+IHtcclxuICAgIGxldCBtYXhMZW5ndGggPSBoZWFkZXIubGVuZ3RoO1xyXG4gICAgZXhwb3J0RGF0YS5mb3JFYWNoKHJvdyA9PiB7XHJcbiAgICAgIGNvbnN0IHZhbCA9IHJvd1toZWFkZXJdO1xyXG4gICAgICBpZiAodmFsICE9IG51bGwpIHtcclxuICAgICAgICBjb25zdCBsZW4gPSB2YWwudG9TdHJpbmcoKS5sZW5ndGg7XHJcbiAgICAgICAgaWYgKGxlbiA+IG1heExlbmd0aCkgbWF4TGVuZ3RoID0gbGVuO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHJldHVybiB7IHdjaDogTWF0aC5taW4obWF4TGVuZ3RoICsgMiwgNjQpIH07XHJcbiAgfSk7XHJcbiAgd29ya3NoZWV0WychY29scyddID0gY29sV2lkdGhzO1xyXG5cclxuICB3b3Jrc2hlZXRbJyFyb3dzJ10gPSBbeyBocHQ6IGhlYWRlclJvd0hlaWdodCB9XTtcclxuICB3b3Jrc2hlZXRbJyF6b29tJ10gPSB6b29tU2NhbGU7XHJcblxyXG4gIGNvbnN0IHdvcmtib29rOiBYTFNYLldvcmtCb29rID0geyBTaGVldHM6IHsgRGF0YTogd29ya3NoZWV0IH0sIFNoZWV0TmFtZXM6IFsnRGF0YSddIH07XHJcblxyXG4gIGlmIChmb3JtYXQgPT09ICdjc3YnKSB7XHJcbiAgICBjb25zdCBjc3YgPSBYTFNYLnV0aWxzLnNoZWV0X3RvX2Nzdih3b3Jrc2hlZXQpO1xyXG4gICAgY29uc3QgYmxvYiA9IG5ldyBCbG9iKFtjc3ZdLCB7IHR5cGU6ICd0ZXh0L2NzdjtjaGFyc2V0PXV0Zi04OycgfSk7XHJcbiAgICBzYXZlQXMoYmxvYiwgYCR7ZmlsZU5hbWV9LmNzdmApO1xyXG4gIH0gZWxzZSB7XHJcbiAgICBjb25zdCBleGNlbEJ1ZmZlcjogYW55ID0gWExTWC53cml0ZSh3b3JrYm9vaywgeyBib29rVHlwZTogJ3hsc3gnLCB0eXBlOiAnYXJyYXknIH0pO1xyXG4gICAgY29uc3QgYmxvYiA9IG5ldyBCbG9iKFtleGNlbEJ1ZmZlcl0sIHtcclxuICAgICAgdHlwZTogJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0O2NoYXJzZXQ9VVRGLTgnLFxyXG4gICAgfSk7XHJcbiAgICBzYXZlQXMoYmxvYiwgYCR7ZmlsZU5hbWV9Lnhsc3hgKTtcclxuICB9XHJcbn1cclxuXHJcblxyXG5cclxuXHJcbnByaXZhdGUgZ2V0TmVzdGVkVmFsdWUob2JqOiBhbnksIHBhdGg6IHN0cmluZyk6IGFueSB7XHJcbiAgaWYgKCFwYXRoIHx8IHR5cGVvZiBvYmogIT09ICdvYmplY3QnKSByZXR1cm4gb2JqO1xyXG4gIHJldHVybiBwYXRoLnNwbGl0KCcuJykucmVkdWNlKChhY2MsIGtleSkgPT4gKGFjYyAmJiBhY2Nba2V5XSAhPT0gdW5kZWZpbmVkID8gYWNjW2tleV0gOiAnJyksIG9iaik7XHJcbn1cclxufVxyXG4iXX0=
@@ -1,24 +0,0 @@
1
- import * as i0 from "@angular/core";
2
- export declare class ExportService {
3
- constructor();
4
- /**
5
- * Exports data to CSV or Excel.
6
- * @param columns List of column definitions (each having name/key/is_visible)
7
- * @param data The array of data objects
8
- * @param fileName Name of the exported file (without extension)
9
- * @param format 'csv' | 'xlsx'
10
- */
11
- exportData(columns: any[], data: any[], fileName: string, format?: 'csv' | 'xlsx', rowSelectedIndexes?: Set<number> | null, styleConfig?: {
12
- headerBgColor?: string;
13
- headerTextColor?: string;
14
- bodyTextColor?: string;
15
- fontFamily?: string;
16
- fontWeight?: 'normal' | 'bold';
17
- zoomScale?: number;
18
- headerRowHeight?: number;
19
- selectedRowBgColor?: string;
20
- }): void;
21
- private getNestedValue;
22
- static ɵfac: i0.ɵɵFactoryDeclaration<ExportService, never>;
23
- static ɵprov: i0.ɵɵInjectableDeclaration<ExportService>;
24
- }