@quillsql/react 2.10.18 → 2.10.20

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.
Files changed (67) hide show
  1. package/dist/cjs/Chart.d.ts +1 -1
  2. package/dist/cjs/Chart.d.ts.map +1 -1
  3. package/dist/cjs/Chart.js +1 -1
  4. package/dist/cjs/Dashboard.d.ts.map +1 -1
  5. package/dist/cjs/Dashboard.js +3 -1
  6. package/dist/cjs/DateRangePicker/QuillDateRangePicker.js +1 -1
  7. package/dist/cjs/SQLEditor.d.ts.map +1 -1
  8. package/dist/cjs/SQLEditor.js +0 -27
  9. package/dist/cjs/Table.d.ts +1 -1
  10. package/dist/cjs/Table.d.ts.map +1 -1
  11. package/dist/cjs/Table.js +4 -162
  12. package/dist/cjs/components/Dashboard/ChartComponent.js +1 -1
  13. package/dist/cjs/components/Dashboard/DashboardSection.js +1 -1
  14. package/dist/cjs/components/Dashboard/MetricComponent.js +1 -1
  15. package/dist/cjs/components/Dashboard/TableComponent.js +1 -1
  16. package/dist/cjs/components/QuillSelect.d.ts.map +1 -1
  17. package/dist/cjs/components/QuillSelect.js +22 -3
  18. package/dist/cjs/hooks/useExport.d.ts +15 -0
  19. package/dist/cjs/hooks/useExport.d.ts.map +1 -0
  20. package/dist/cjs/hooks/useExport.js +31 -0
  21. package/dist/cjs/hooks/useQuill.d.ts +1 -1
  22. package/dist/cjs/hooks/useQuill.d.ts.map +1 -1
  23. package/dist/cjs/index.d.ts +1 -1
  24. package/dist/cjs/index.d.ts.map +1 -1
  25. package/dist/cjs/index.js +2 -2
  26. package/dist/cjs/utils/csv.d.ts +6 -0
  27. package/dist/cjs/utils/csv.d.ts.map +1 -0
  28. package/dist/cjs/utils/csv.js +80 -0
  29. package/dist/cjs/utils/valueFormatterCSV.d.ts +1 -1
  30. package/dist/cjs/utils/valueFormatterCSV.d.ts.map +1 -1
  31. package/dist/esm/Chart.d.ts +1 -1
  32. package/dist/esm/Chart.d.ts.map +1 -1
  33. package/dist/esm/Chart.js +1 -1
  34. package/dist/esm/Dashboard.d.ts.map +1 -1
  35. package/dist/esm/Dashboard.js +4 -2
  36. package/dist/esm/DateRangePicker/QuillDateRangePicker.js +1 -1
  37. package/dist/esm/SQLEditor.d.ts.map +1 -1
  38. package/dist/esm/SQLEditor.js +0 -27
  39. package/dist/esm/Table.d.ts +1 -1
  40. package/dist/esm/Table.d.ts.map +1 -1
  41. package/dist/esm/Table.js +4 -162
  42. package/dist/esm/components/Dashboard/ChartComponent.js +1 -1
  43. package/dist/esm/components/Dashboard/DashboardSection.js +1 -1
  44. package/dist/esm/components/Dashboard/MetricComponent.js +1 -1
  45. package/dist/esm/components/Dashboard/TableComponent.js +1 -1
  46. package/dist/esm/components/QuillSelect.d.ts.map +1 -1
  47. package/dist/esm/components/QuillSelect.js +22 -3
  48. package/dist/esm/hooks/useExport.d.ts +15 -0
  49. package/dist/esm/hooks/useExport.d.ts.map +1 -0
  50. package/dist/esm/hooks/useExport.js +27 -0
  51. package/dist/esm/hooks/useQuill.d.ts +1 -1
  52. package/dist/esm/hooks/useQuill.d.ts.map +1 -1
  53. package/dist/esm/index.d.ts +1 -1
  54. package/dist/esm/index.d.ts.map +1 -1
  55. package/dist/esm/index.js +1 -1
  56. package/dist/esm/utils/csv.d.ts +6 -0
  57. package/dist/esm/utils/csv.d.ts.map +1 -0
  58. package/dist/esm/utils/csv.js +76 -0
  59. package/dist/esm/utils/valueFormatterCSV.d.ts +1 -1
  60. package/dist/esm/utils/valueFormatterCSV.d.ts.map +1 -1
  61. package/package.json +1 -1
  62. package/dist/cjs/utils/downloadCSV.d.ts +0 -4
  63. package/dist/cjs/utils/downloadCSV.d.ts.map +0 -1
  64. package/dist/cjs/utils/downloadCSV.js +0 -28
  65. package/dist/esm/utils/downloadCSV.d.ts +0 -4
  66. package/dist/esm/utils/downloadCSV.d.ts.map +0 -1
  67. package/dist/esm/utils/downloadCSV.js +0 -24
@@ -1 +1 @@
1
- {"version":3,"file":"useQuill.d.ts","sourceRoot":"","sources":["../../../src/hooks/useQuill.ts"],"names":[],"mappings":"AAUA,UAAU,MAAM;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,KAAK;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,UAAU;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,WAAW;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,QAAQ,YACV,MAAM;UAET,WAAW,GAAG,IAAI;aACf,OAAO;WACT,MAAM,GAAG,IAAI;CAiFrB,CAAC"}
1
+ {"version":3,"file":"useQuill.d.ts","sourceRoot":"","sources":["../../../src/hooks/useQuill.ts"],"names":[],"mappings":"AAUA,UAAU,MAAM;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,KAAK;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,UAAU;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,QAAQ,YACV,MAAM;UAET,WAAW,GAAG,IAAI;aACf,OAAO;WACT,MAAM,GAAG,IAAI;CAiFrB,CAAC"}
@@ -8,7 +8,7 @@ export { default as ChartBuilder } from './ChartBuilder';
8
8
  export { default as ChartEditor } from './ChartEditor';
9
9
  export { useDashboard } from './hooks/useDashboard';
10
10
  export { useQuill } from './hooks/useQuill';
11
- export { downloadCSV } from './utils/downloadCSV';
11
+ export { downloadCSV } from './utils/csv';
12
12
  export type { QuillTheme } from './QuillProvider';
13
13
  export { ThemeContext } from './Context';
14
14
  export type { TextInputComponentProps, ButtonComponentProps, Option, PopoverComponentProps, ModalComponentProps, TableComponentProps, HeaderProps, } from './components/UiComponents';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,OAAO,IAAI,SAAS,EACpB,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAClB,KAAK,UAAU,GAChB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,YAAY,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,YAAY,EACV,uBAAuB,EACvB,oBAAoB,EACpB,MAAM,EACN,qBAAqB,EACrB,mBAAmB,EACnB,mBAAmB,EACnB,WAAW,GACZ,MAAM,2BAA2B,CAAC;AACnC,YAAY,EACV,oBAAoB,EACpB,qBAAqB,EACrB,SAAS,GACV,MAAM,mCAAmC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,OAAO,IAAI,SAAS,EACpB,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAClB,KAAK,UAAU,GAChB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,YAAY,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,YAAY,EACV,uBAAuB,EACvB,oBAAoB,EACpB,MAAM,EACN,qBAAqB,EACrB,mBAAmB,EACnB,mBAAmB,EACnB,WAAW,GACZ,MAAM,2BAA2B,CAAC;AACnC,YAAY,EACV,oBAAoB,EACpB,qBAAqB,EACrB,SAAS,GACV,MAAM,mCAAmC,CAAC"}
package/dist/esm/index.js CHANGED
@@ -9,5 +9,5 @@ export { default as ChartBuilder } from './ChartBuilder';
9
9
  export { default as ChartEditor } from './ChartEditor';
10
10
  export { useDashboard } from './hooks/useDashboard';
11
11
  export { useQuill } from './hooks/useQuill';
12
- export { downloadCSV } from './utils/downloadCSV';
12
+ export { downloadCSV } from './utils/csv';
13
13
  export { ThemeContext } from './Context';
@@ -0,0 +1,6 @@
1
+ export declare const downloadCSV: (data: {
2
+ rows: any[];
3
+ fields?: any[];
4
+ name?: string;
5
+ }, isTableChart?: boolean) => void;
6
+ //# sourceMappingURL=csv.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"csv.d.ts","sourceRoot":"","sources":["../../../src/utils/csv.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,WAAW,SAChB;IAAE,IAAI,EAAE,GAAG,EAAE,CAAC;IAAC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,iCA8FrD,CAAC"}
@@ -0,0 +1,76 @@
1
+ import { valueFormatterCSV } from './valueFormatterCSV';
2
+ export const downloadCSV = (data, isTableChart = false) => {
3
+ const { rows, fields, name } = data;
4
+ // report.rows
5
+ if (rows && !rows.length) {
6
+ return;
7
+ }
8
+ // if table chart, use columns and valueFormatter
9
+ if (isTableChart && fields) {
10
+ const newRows = [];
11
+ for (let i = 0; i < rows.length; i++) {
12
+ const newRow = {};
13
+ Object.keys(rows[i]).forEach((field) => (newRow[field] = valueFormatterCSV({
14
+ value: rows[i][field],
15
+ field: field,
16
+ fields: fields,
17
+ })));
18
+ newRows.push(newRow);
19
+ }
20
+ const fieldsProcessed = fields?.map((col) => {
21
+ return {
22
+ label: col.field,
23
+ _id: col.field,
24
+ field: col.field,
25
+ format: 'percent',
26
+ };
27
+ });
28
+ const csvRows = [];
29
+ // Header row
30
+ csvRows.push(fields?.map((col) => col.label || col.field).join(','));
31
+ // Data rows
32
+ for (const row of newRows) {
33
+ const values = fieldsProcessed.map((field) => {
34
+ let value = JSON.stringify(row[field.label] ?? '');
35
+ if (value.includes('\\"')) {
36
+ value = value.replaceAll('\\"', '""');
37
+ }
38
+ return value;
39
+ });
40
+ csvRows.push(values.join(','));
41
+ }
42
+ // Create CSV string and create a 'blob' with it
43
+ const csvString = csvRows.join('\r\n');
44
+ const csvBlob = new Blob([csvString], { type: 'text/csv' });
45
+ // Create a download link and click it
46
+ const downloadLink = document.createElement('a');
47
+ downloadLink.download = `${name}.csv`;
48
+ downloadLink.href = URL.createObjectURL(csvBlob);
49
+ downloadLink.style.display = 'none';
50
+ document.body.appendChild(downloadLink);
51
+ downloadLink.click();
52
+ document.body.removeChild(downloadLink);
53
+ return;
54
+ }
55
+ const json = rows; // JSON data passed as a prop
56
+ const fieldsProcessed = Object.keys(json[0]); // Assumes all objects have same keys
57
+ const csvRows = [];
58
+ // Header row
59
+ csvRows.push(fieldsProcessed.join(','));
60
+ // Data rows
61
+ for (const row of json) {
62
+ const values = fieldsProcessed.map((field) => JSON.stringify(row[field] || ''));
63
+ csvRows.push(values.join(','));
64
+ }
65
+ // Create CSV string and create a 'blob' with it
66
+ const csvString = csvRows.join('\r\n');
67
+ const csvBlob = new Blob([csvString], { type: 'text/csv' });
68
+ // Create a download link and click it
69
+ const downloadLink = document.createElement('a');
70
+ downloadLink.download = `${name}.csv`;
71
+ downloadLink.href = URL.createObjectURL(csvBlob);
72
+ downloadLink.style.display = 'none';
73
+ document.body.appendChild(downloadLink);
74
+ downloadLink.click();
75
+ document.body.removeChild(downloadLink);
76
+ };
@@ -1,4 +1,4 @@
1
- type Field = {
1
+ export type Field = {
2
2
  _id: string;
3
3
  label: string;
4
4
  field: string;
@@ -1 +1 @@
1
- {"version":3,"file":"valueFormatterCSV.d.ts","sourceRoot":"","sources":["../../../src/utils/valueFormatterCSV.ts"],"names":[],"mappings":"AAGA,KAAK,KAAK,GAAG;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,SAAS,CAAC;CACnB,CAAC;AAEF,KAAK,KAAK,GAAG;IACX,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC;IACpD,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IACjC,MAAM,EAAE,KAAK,EAAE,CAAC;CACjB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,8BAI3B,KAAK,KAAG,MAAM,GAAG,MAAM,GAAG,OA+B5B,CAAC"}
1
+ {"version":3,"file":"valueFormatterCSV.d.ts","sourceRoot":"","sources":["../../../src/utils/valueFormatterCSV.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,KAAK,GAAG;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,SAAS,CAAC;CACnB,CAAC;AAEF,KAAK,KAAK,GAAG;IACX,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC;IACpD,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IACjC,MAAM,EAAE,KAAK,EAAE,CAAC;CACjB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,8BAI3B,KAAK,KAAG,MAAM,GAAG,MAAM,GAAG,OA+B5B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@quillsql/react",
3
- "version": "2.10.18",
3
+ "version": "2.10.20",
4
4
  "exports": {
5
5
  ".": {
6
6
  "import": "./dist/esm/index.js",
@@ -1,4 +0,0 @@
1
- export declare function downloadCSV(rows: {
2
- [key: string]: any;
3
- }[], filename: string): void;
4
- //# sourceMappingURL=downloadCSV.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"downloadCSV.d.ts","sourceRoot":"","sources":["../../../src/utils/downloadCSV.ts"],"names":[],"mappings":"AACA,wBAAgB,WAAW,CAAC,IAAI,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,QA2B3E"}
@@ -1,28 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.downloadCSV = void 0;
4
- // @ts-nocheck
5
- function downloadCSV(rows, filename) {
6
- const json = rows;
7
- const fields = Object.keys(json[0]);
8
- const csvRows = [];
9
- // Header row
10
- csvRows.push(fields.join(','));
11
- // Data rows
12
- for (const row of json) {
13
- const values = fields.map(field => JSON.stringify(row[field] || ''));
14
- csvRows.push(values.join(','));
15
- }
16
- // Create CSV string and create a 'blob' with it
17
- const csvString = csvRows.join('\r\n');
18
- const csvBlob = new Blob([csvString], { type: 'text/csv' });
19
- // Create a download link and click it
20
- const downloadLink = document.createElement('a');
21
- downloadLink.download = `${filename}.csv`;
22
- downloadLink.href = URL.createObjectURL(csvBlob);
23
- downloadLink.style.display = 'none';
24
- document.body.appendChild(downloadLink);
25
- downloadLink.click();
26
- document.body.removeChild(downloadLink);
27
- }
28
- exports.downloadCSV = downloadCSV;
@@ -1,4 +0,0 @@
1
- export declare function downloadCSV(rows: {
2
- [key: string]: any;
3
- }[], filename: string): void;
4
- //# sourceMappingURL=downloadCSV.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"downloadCSV.d.ts","sourceRoot":"","sources":["../../../src/utils/downloadCSV.ts"],"names":[],"mappings":"AACA,wBAAgB,WAAW,CAAC,IAAI,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,QA2B3E"}
@@ -1,24 +0,0 @@
1
- // @ts-nocheck
2
- export function downloadCSV(rows, filename) {
3
- const json = rows;
4
- const fields = Object.keys(json[0]);
5
- const csvRows = [];
6
- // Header row
7
- csvRows.push(fields.join(','));
8
- // Data rows
9
- for (const row of json) {
10
- const values = fields.map(field => JSON.stringify(row[field] || ''));
11
- csvRows.push(values.join(','));
12
- }
13
- // Create CSV string and create a 'blob' with it
14
- const csvString = csvRows.join('\r\n');
15
- const csvBlob = new Blob([csvString], { type: 'text/csv' });
16
- // Create a download link and click it
17
- const downloadLink = document.createElement('a');
18
- downloadLink.download = `${filename}.csv`;
19
- downloadLink.href = URL.createObjectURL(csvBlob);
20
- downloadLink.style.display = 'none';
21
- document.body.appendChild(downloadLink);
22
- downloadLink.click();
23
- document.body.removeChild(downloadLink);
24
- }