@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
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.downloadCSV = void 0;
4
+ const valueFormatterCSV_1 = require("./valueFormatterCSV");
5
+ const downloadCSV = (data, isTableChart = false) => {
6
+ const { rows, fields, name } = data;
7
+ // report.rows
8
+ if (rows && !rows.length) {
9
+ return;
10
+ }
11
+ // if table chart, use columns and valueFormatter
12
+ if (isTableChart && fields) {
13
+ const newRows = [];
14
+ for (let i = 0; i < rows.length; i++) {
15
+ const newRow = {};
16
+ Object.keys(rows[i]).forEach((field) => (newRow[field] = (0, valueFormatterCSV_1.valueFormatterCSV)({
17
+ value: rows[i][field],
18
+ field: field,
19
+ fields: fields,
20
+ })));
21
+ newRows.push(newRow);
22
+ }
23
+ const fieldsProcessed = fields?.map((col) => {
24
+ return {
25
+ label: col.field,
26
+ _id: col.field,
27
+ field: col.field,
28
+ format: 'percent',
29
+ };
30
+ });
31
+ const csvRows = [];
32
+ // Header row
33
+ csvRows.push(fields?.map((col) => col.label || col.field).join(','));
34
+ // Data rows
35
+ for (const row of newRows) {
36
+ const values = fieldsProcessed.map((field) => {
37
+ let value = JSON.stringify(row[field.label] ?? '');
38
+ if (value.includes('\\"')) {
39
+ value = value.replaceAll('\\"', '""');
40
+ }
41
+ return value;
42
+ });
43
+ csvRows.push(values.join(','));
44
+ }
45
+ // Create CSV string and create a 'blob' with it
46
+ const csvString = csvRows.join('\r\n');
47
+ const csvBlob = new Blob([csvString], { type: 'text/csv' });
48
+ // Create a download link and click it
49
+ const downloadLink = document.createElement('a');
50
+ downloadLink.download = `${name}.csv`;
51
+ downloadLink.href = URL.createObjectURL(csvBlob);
52
+ downloadLink.style.display = 'none';
53
+ document.body.appendChild(downloadLink);
54
+ downloadLink.click();
55
+ document.body.removeChild(downloadLink);
56
+ return;
57
+ }
58
+ const json = rows; // JSON data passed as a prop
59
+ const fieldsProcessed = Object.keys(json[0]); // Assumes all objects have same keys
60
+ const csvRows = [];
61
+ // Header row
62
+ csvRows.push(fieldsProcessed.join(','));
63
+ // Data rows
64
+ for (const row of json) {
65
+ const values = fieldsProcessed.map((field) => JSON.stringify(row[field] || ''));
66
+ csvRows.push(values.join(','));
67
+ }
68
+ // Create CSV string and create a 'blob' with it
69
+ const csvString = csvRows.join('\r\n');
70
+ const csvBlob = new Blob([csvString], { type: 'text/csv' });
71
+ // Create a download link and click it
72
+ const downloadLink = document.createElement('a');
73
+ downloadLink.download = `${name}.csv`;
74
+ downloadLink.href = URL.createObjectURL(csvBlob);
75
+ downloadLink.style.display = 'none';
76
+ document.body.appendChild(downloadLink);
77
+ downloadLink.click();
78
+ document.body.removeChild(downloadLink);
79
+ };
80
+ exports.downloadCSV = downloadCSV;
@@ -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"}
@@ -1,6 +1,6 @@
1
1
  /// <reference types="react" />
2
2
  interface BaseChartProps {
3
- colors: string[];
3
+ colors?: string[];
4
4
  containerStyle?: React.CSSProperties;
5
5
  dateFilter?: any;
6
6
  theme?: any;
@@ -1 +1 @@
1
- {"version":3,"file":"Chart.d.ts","sourceRoot":"","sources":["../../src/Chart.tsx"],"names":[],"mappings":";AA2BA,UAAU,cAAc;IACtB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,cAAc,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IACrC,UAAU,CAAC,EAAE,GAAG,CAAC;IACjB,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,UAAU,WAAY,SAAQ,cAAc;IAC1C,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,WAAW,GACnB,cAAc,GACd,mBAAmB,GACnB,oBAAoB,GACpB,eAAe,GACf,cAAc,GACd,UAAU,GACV,aAAa,GACb,eAAe,GACf,oBAAoB,GACpB,UAAU,GACV,SAAS,GACT,QAAQ,CAAC;AAEb,UAAU,UAAU;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,WAAW,CAAC;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,WAAW,CAAC;IACzB,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,OAAO,EAAE,GAAG,EAAE,CAAC;IACf,KAAK,EAAE,GAAG,CAAC;CACZ;AAED,UAAU,UAAW,SAAQ,cAAc;IACzC,MAAM,EAAE,aAAa,GAAG,GAAG,CAAC;CAC7B;AAED,KAAK,UAAU,GAAG,WAAW,GAAG,UAAU,CAAC;AA4D3C,wBAAgB,gBAAgB,CAAC,aAAa,KAAA,EAAE,OAAO,KAAA,WAQtD;AAKD,QAAA,MAAM,KAAK,8JAYR,UAAU,4CAkCZ,CAAC;AAieF,eAAe,KAAK,CAAC"}
1
+ {"version":3,"file":"Chart.d.ts","sourceRoot":"","sources":["../../src/Chart.tsx"],"names":[],"mappings":";AA2BA,UAAU,cAAc;IACtB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,cAAc,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IACrC,UAAU,CAAC,EAAE,GAAG,CAAC;IACjB,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,UAAU,WAAY,SAAQ,cAAc;IAC1C,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,WAAW,GACnB,cAAc,GACd,mBAAmB,GACnB,oBAAoB,GACpB,eAAe,GACf,cAAc,GACd,UAAU,GACV,aAAa,GACb,eAAe,GACf,oBAAoB,GACpB,UAAU,GACV,SAAS,GACT,QAAQ,CAAC;AAEb,UAAU,UAAU;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,WAAW,CAAC;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,WAAW,CAAC;IACzB,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,OAAO,EAAE,GAAG,EAAE,CAAC;IACf,KAAK,EAAE,GAAG,CAAC;CACZ;AAED,UAAU,UAAW,SAAQ,cAAc;IACzC,MAAM,EAAE,aAAa,GAAG,GAAG,CAAC;CAC7B;AAED,KAAK,UAAU,GAAG,WAAW,GAAG,UAAU,CAAC;AA4D3C,wBAAgB,gBAAgB,CAAC,aAAa,KAAA,EAAE,OAAO,KAAA,WAQtD;AAKD,QAAA,MAAM,KAAK,8JAYR,UAAU,4CAkCZ,CAAC;AAieF,eAAe,KAAK,CAAC"}
package/dist/esm/Chart.js CHANGED
@@ -266,7 +266,7 @@ const ChartUpdater = ({ colors, chartId, config, containerStyle, dashboard, disp
266
266
  });
267
267
  return (_jsx(SpecialTable, { rows: pivotTable?.rows ?? data.rows ?? [], columns: pivotTable?.columns ?? data.columns ?? data.yAxisFields, height: '400px', containerStyle: {
268
268
  ...containerStyle,
269
- }, theme: theme, isTableChart: true, name: data.name }));
269
+ }, theme: theme, isTableChart: true, csvFilename: data.name }));
270
270
  }
271
271
  if (chartTypes.includes('bar')) {
272
272
  return (_jsx(BarList, { data: pivotTable
@@ -1 +1 @@
1
- {"version":3,"file":"Dashboard.d.ts","sourceRoot":"","sources":["../../src/Dashboard.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Dashboard.d.ts","sourceRoot":"","sources":["../../src/Dashboard.tsx"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useContext, useEffect, useState, useCallback, memo, } from 'react';
3
3
  import Chart from './Chart';
4
- import { defaultOptions, PRIMARY_RANGE, COMPARISON_RANGE, defaultOptionsV2, COMPARISON_OPTIONS, getRangeFromPresetOptions, } from './DateRangePicker/dateRangePickerUtils';
4
+ import { PRIMARY_RANGE, COMPARISON_RANGE, defaultOptionsV2, COMPARISON_OPTIONS, getRangeFromPresetOptions, } from './DateRangePicker/dateRangePickerUtils';
5
5
  import { ClientContext, DashboardContext, ThemeContext, DashboardFiltersContext, DateFilterContext, useComparisonRange, useDateFilter, } from './Context';
6
6
  import { ArrowDownHeadIcon } from './assets';
7
7
  import { useDashboard } from './hooks/useDashboard';
@@ -61,7 +61,9 @@ export function DashboardFilter({ filter, onChangeFilter, SelectComponent, DateR
61
61
  });
62
62
  }, onChangePreset: (value) => {
63
63
  onChangeFilter(filter, { preset: value });
64
- }, presetOptions: filter.options || defaultOptions }), comparisonRange && (_jsx("div", { children: _jsxs("div", { style: {
64
+ }, presetOptions: filter.options.map((option) => {
65
+ return { label: option.label, value: option.label };
66
+ }) }), comparisonRange && (_jsx("div", { children: _jsxs("div", { style: {
65
67
  display: 'flex',
66
68
  flexDirection: 'row',
67
69
  alignItems: 'center',
@@ -52,7 +52,7 @@ export function QuillDateRangePicker({ dateRange, onChangeDateRange, presetOptio
52
52
  }, onClick: () => setShowModal((showModal) => !showModal), className: "quill-date-range-picker-button", children: [_jsx("style", { children: ` .quill-date-range-picker-button { background: ${theme.backgroundColor}; } .quill-date-range-picker-button:hover { background: ${theme.hoverBackgroundColor}; }` }), _jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", height: "15.5px", width: "15.5px", style: { marginTop: -1.5 }, children: [_jsx("rect", { width: "18", height: "18", x: "3", y: "4", rx: "2", ry: "2" }), _jsx("line", { x1: "16", x2: "16", y1: "2", y2: "6" }), _jsx("line", { x1: "8", x2: "8", y1: "2", y2: "6" }), _jsx("line", { x1: "3", x2: "21", y1: "10", y2: "10" })] }), localStartDate && format(localStartDate, 'MMM dd, yyyy'), localStartDate ? ' - ' : 'Pick a date', localEndDate && format(localEndDate, 'MMM dd, yyyy')] }), showModal && (_jsx(CalendarRow, { theme: theme, anchorStartDate: anchorStartDate, anchorEndDate: anchorEndDate, setAnchorStartDate: setAnchorStartDate, setAnchorEndDate: setAnchorEndDate, setLocalStartDate: setLocalStartDate, setLocalEndDate: setLocalEndDate, localEndDate: localEndDate, localStartDate: localStartDate, updateDateFilter: onChangeDateRange, setLocalPreset: setLocalPreset, setShowModal: setShowModal }))] }), _jsx(QuillSelectComponent, { options: presetOptions.map((option) => ({
53
53
  label: option.label,
54
54
  value: option.label,
55
- })), value: localPreset?.label || '', onChange: (e) => {
55
+ })), value: localPreset.label || '', onChange: (e) => {
56
56
  onChangePreset(e);
57
57
  setLocalPreset({ label: e });
58
58
  }, theme: theme })] }));
@@ -1 +1 @@
1
- {"version":3,"file":"SQLEditor.d.ts","sourceRoot":"","sources":["../../src/SQLEditor.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAmD,MAAM,OAAO,CAAC;AAUxE,wBAAgB,qBAAqB,CAAC,MAAM,KAAA;;;;;EAwE3C;AA2BD,UAAU,oBAAoB;IAC5B,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,UAAU,cAAc;IACtB,cAAc,EAAE,KAAK,CAAC,aAAa,CAAC;IAEpC,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,GAAG,CAAC,OAAO,CAAC;IAC/D,wBAAwB,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,GAAG,CAAC,OAAO,CAAC;IAExE,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,uBAAuB,KAAK,GAAG,CAAC,OAAO,CAAC;IACrE,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,GAAG,CAAC,OAAO,CAAC;IAC7D,gBAAgB,CAAC,EAAE,MAAM,GAAG,CAAC,OAAO,CAAC;IACrC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACxC,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAC9C,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAC5C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,aAAa,CAAC,EAAE,GAAG,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,wBAAwB,CAAC,EAAE,MAAM,IAAI,CAAC;IACtC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAQD,UAAU,mBAAmB;IAC3B,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,OAAO,EAAE,GAAG,EAAE,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,uBAAuB;IAC/B,QAAQ,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AA+ED,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,EAClC,cAAoC,EACpC,eAAe,EACf,wBAAwB,EACxB,kBAAkB,EAClB,cAAc,EACd,eAAuB,EACvB,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,eAAe,EACf,cAAc,EACd,UAAkB,EAClB,mBAA2B,EAC3B,sBAA8B,EAC9B,oBAA4B,EAC5B,wBAAgC,EAChC,oBAAoB,EACpB,iBAAiB,EACjB,uBAAuB,EACvB,wBAAwB,EACxB,yBAA8C,EAC9C,aAAyB,EACzB,gBAA4B,GAC7B,EAAE,cAAc,2CAwXhB;AA8LD,eAAO,MAAM,mBAAmB;;;;;;6CAqG/B,CAAC"}
1
+ {"version":3,"file":"SQLEditor.d.ts","sourceRoot":"","sources":["../../src/SQLEditor.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAmD,MAAM,OAAO,CAAC;AAUxE,wBAAgB,qBAAqB,CAAC,MAAM,KAAA;;;;;EAwE3C;AA2BD,UAAU,oBAAoB;IAC5B,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,UAAU,cAAc;IACtB,cAAc,EAAE,KAAK,CAAC,aAAa,CAAC;IAEpC,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,GAAG,CAAC,OAAO,CAAC;IAC/D,wBAAwB,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,GAAG,CAAC,OAAO,CAAC;IAExE,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,uBAAuB,KAAK,GAAG,CAAC,OAAO,CAAC;IACrE,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,GAAG,CAAC,OAAO,CAAC;IAC7D,gBAAgB,CAAC,EAAE,MAAM,GAAG,CAAC,OAAO,CAAC;IACrC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACxC,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAC9C,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAC5C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,aAAa,CAAC,EAAE,GAAG,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,wBAAwB,CAAC,EAAE,MAAM,IAAI,CAAC;IACtC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAQD,UAAU,mBAAmB;IAC3B,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,OAAO,EAAE,GAAG,EAAE,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,uBAAuB;IAC/B,QAAQ,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AA+ED,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,EAClC,cAAoC,EACpC,eAAe,EACf,wBAAwB,EACxB,kBAAkB,EAClB,cAAc,EACd,eAAuB,EACvB,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,eAAe,EACf,cAAc,EACd,UAAkB,EAClB,mBAA2B,EAC3B,sBAA8B,EAC9B,oBAA4B,EAC5B,wBAAgC,EAChC,oBAAoB,EACpB,iBAAiB,EACjB,uBAAuB,EACvB,wBAAwB,EACxB,yBAA8C,EAC9C,aAAyB,EACzB,gBAA4B,GAC7B,EAAE,cAAc,2CAuVhB;AA8LD,eAAO,MAAM,mBAAmB;;;;;;6CAqG/B,CAAC"}
@@ -256,33 +256,6 @@ export default function QueryEditor({ containerStyle = { height: '100vh' }, Butt
256
256
  setIsOpen(true);
257
257
  };
258
258
  /* all your useState and useContext calls and your useEffect hooks */
259
- const downloadCSV = () => {
260
- // report.rows
261
- if (!rows.length) {
262
- return;
263
- }
264
- const json = rows; // JSON data passed as a prop
265
- const fields = Object.keys(json[0]); // Assumes all objects have same keys
266
- const csvRows = [];
267
- // Header row
268
- csvRows.push(fields.join(','));
269
- // Data rows
270
- for (const row of json) {
271
- const values = fields.map((field) => JSON.stringify(row[field] || ''));
272
- csvRows.push(values.join(','));
273
- }
274
- // Create CSV string and create a 'blob' with it
275
- const csvString = csvRows.join('\r\n');
276
- const csvBlob = new Blob([csvString], { type: 'text/csv' });
277
- // Create a download link and click it
278
- const downloadLink = document.createElement('a');
279
- downloadLink.download = `${query}.csv`;
280
- downloadLink.href = URL.createObjectURL(csvBlob);
281
- downloadLink.style.display = 'none';
282
- document.body.appendChild(downloadLink);
283
- downloadLink.click();
284
- document.body.removeChild(downloadLink);
285
- };
286
259
  useEffect(() => {
287
260
  if (onChangeQuery) {
288
261
  onChangeQuery(query);
@@ -22,7 +22,7 @@ declare const Table: ({ chartId, columns, rows, containerStyle, csvFilename, sho
22
22
  interface TableButtonComponentProps {
23
23
  onClick: () => void;
24
24
  }
25
- export declare function SpecialTable({ columns, rows, height, containerStyle, loading, LoadingComponent, theme, showDownloadCsvButton, csvFilename, DownloadCSVButtonComponent, AddToDashboardButtonComponent, isTableChart, name, }: {
25
+ export declare function SpecialTable({ columns, rows, height, containerStyle, loading, LoadingComponent, theme, showDownloadCsvButton, csvFilename, DownloadCSVButtonComponent, AddToDashboardButtonComponent, isTableChart, }: {
26
26
  columns: any[];
27
27
  rows: any[];
28
28
  height: string;
@@ -1 +1 @@
1
- {"version":3,"file":"Table.d.ts","sourceRoot":"","sources":["../../src/Table.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAmD,MAAM,OAAO,CAAC;AAcxE,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,UAAU,iBAAiB;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IACrC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,UAAU,cAAc;IACtB,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,cAAc,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IACrC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,gBAAgB,CAAC,EAAE,MAAM,GAAG,CAAC,OAAO,CAAC;IACrC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,QAAA,MAAM,KAAK,uHAUR,iBAAiB,GAAG,cAAc,4CAsEpC,CAAC;AAEF,UAAU,yBAAyB;IACjC,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAkCD,wBAAgB,YAAY,CAAC,EAC3B,OAAO,EACP,IAAI,EACJ,MAAM,EACN,cAAc,EACd,OAAO,EACP,gBAAgB,EAChB,KAAK,EACL,qBAA4B,EAC5B,WAAW,EACX,0BAA0B,EAC1B,6BAA6B,EAC7B,YAAoB,EACpB,IAAI,GACL,EAAE;IACD,OAAO,EAAE,GAAG,EAAE,CAAC;IACf,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IACrC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,GAAG,CAAC,OAAO,CAAC;IACrC,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0BAA0B,CAAC,EAAE,CAC3B,KAAK,EAAE,yBAAyB,KAC7B,GAAG,CAAC,OAAO,CAAC;IACjB,6BAA6B,CAAC,EAAE,CAC9B,KAAK,EAAE,yBAAyB,KAC7B,GAAG,CAAC,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,kDAomBA;AA6UD,eAAe,KAAK,CAAC"}
1
+ {"version":3,"file":"Table.d.ts","sourceRoot":"","sources":["../../src/Table.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAmD,MAAM,OAAO,CAAC;AAexE,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,UAAU,iBAAiB;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IACrC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,UAAU,cAAc;IACtB,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,cAAc,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IACrC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,gBAAgB,CAAC,EAAE,MAAM,GAAG,CAAC,OAAO,CAAC;IACrC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,QAAA,MAAM,KAAK,uHAUR,iBAAiB,GAAG,cAAc,4CAuCpC,CAAC;AAEF,UAAU,yBAAyB;IACjC,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAkCD,wBAAgB,YAAY,CAAC,EAC3B,OAAO,EACP,IAAI,EACJ,MAAM,EACN,cAAc,EACd,OAAO,EACP,gBAAgB,EAChB,KAAK,EACL,qBAA4B,EAC5B,WAAW,EACX,0BAA0B,EAC1B,6BAA6B,EAC7B,YAAoB,GACrB,EAAE;IACD,OAAO,EAAE,GAAG,EAAE,CAAC;IACf,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IACrC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,GAAG,CAAC,OAAO,CAAC;IACrC,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0BAA0B,CAAC,EAAE,CAC3B,KAAK,EAAE,yBAAyB,KAC7B,GAAG,CAAC,OAAO,CAAC;IACjB,6BAA6B,CAAC,EAAE,CAC9B,KAAK,EAAE,yBAAyB,KAC7B,GAAG,CAAC,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,kDAohBA;AAuND,eAAe,KAAK,CAAC"}
package/dist/esm/Table.js CHANGED
@@ -5,40 +5,14 @@ import { useContext, useEffect, useState } from 'react';
5
5
  import { ClientContext, DashboardContext, ThemeContext, DashboardFiltersContext, } from './Context';
6
6
  import { getData } from './utils/dataFetcher';
7
7
  import { valueFormatter } from './utils/valueFormatter';
8
- import { valueFormatterCSV } from './utils/valueFormatterCSV';
9
8
  import { mergeComparisonRange } from './utils/merge';
9
+ import { useExport } from './hooks/useExport';
10
10
  const Table = ({ chartId, columns, rows, containerStyle, csvFilename, showDownloadCsvButton, LoadingComponent, loading, height, }) => {
11
11
  const { dispatch, dashboard } = useContext(DashboardContext);
12
12
  const { dashboardFilters } = useContext(DashboardFiltersContext);
13
13
  const [client, _] = useContext(ClientContext);
14
14
  const [theme] = useContext(ThemeContext);
15
- const downloadCSV = (rows, name) => {
16
- // report.rows
17
- if (!rows.length) {
18
- return;
19
- }
20
- const json = rows; // JSON data passed as a prop
21
- const fields = Object.keys(json[0]); // Assumes all objects have same keys
22
- const csvRows = [];
23
- // Header row
24
- csvRows.push(fields.join(','));
25
- // Data rows
26
- for (const row of json) {
27
- const values = fields.map((field) => JSON.stringify(row[field] || ''));
28
- csvRows.push(values.join(','));
29
- }
30
- // Create CSV string and create a 'blob' with it
31
- const csvString = csvRows.join('\r\n');
32
- const csvBlob = new Blob([csvString], { type: 'text/csv' });
33
- // Create a download link and click it
34
- const downloadLink = document.createElement('a');
35
- downloadLink.download = `${name}.csv`;
36
- downloadLink.href = URL.createObjectURL(csvBlob);
37
- downloadLink.style.display = 'none';
38
- document.body.appendChild(downloadLink);
39
- downloadLink.click();
40
- document.body.removeChild(downloadLink);
41
- };
15
+ const { downloadCSV } = useExport({ chartId });
42
16
  if (!chartId && rows && columns) {
43
17
  return (_jsx(SpecialTable, { showDownloadCsvButton: showDownloadCsvButton, csvFilename: csvFilename || 'table', columns: columns, rows: rows ?? [], height: containerStyle?.height || height || '100%', theme: theme, containerStyle: containerStyle, LoadingComponent: LoadingComponent, loading: loading }));
44
18
  }
@@ -71,12 +45,13 @@ const compareValues = (a, b, column) => {
71
45
  // For strings
72
46
  return valueA.localeCompare(valueB);
73
47
  };
74
- export function SpecialTable({ columns, rows, height, containerStyle, loading, LoadingComponent, theme, showDownloadCsvButton = true, csvFilename, DownloadCSVButtonComponent, AddToDashboardButtonComponent, isTableChart = false, name, }) {
48
+ export function SpecialTable({ columns, rows, height, containerStyle, loading, LoadingComponent, theme, showDownloadCsvButton = true, csvFilename, DownloadCSVButtonComponent, AddToDashboardButtonComponent, isTableChart = false, }) {
75
49
  const [activeRows, setActiveRows] = useState([]);
76
50
  const [page, setPage] = useState(1);
77
51
  const [maxPage, setMaxPage] = useState(1);
78
52
  const [sortColumn, setSortColumn] = useState(null);
79
53
  const [sortDirection, setSortDirection] = useState('desc');
54
+ const { downloadCSV } = useExport({ rows, fields: columns, name: csvFilename }, isTableChart);
80
55
  useEffect(() => {
81
56
  const sortedRows = [...rows];
82
57
  if (sortColumn) {
@@ -113,73 +88,6 @@ export function SpecialTable({ columns, rows, height, containerStyle, loading, L
113
88
  setSortDirection('desc');
114
89
  }
115
90
  };
116
- const downloadCSV = () => {
117
- // report.rows
118
- if (rows && !rows.length) {
119
- return;
120
- }
121
- // if table chart, use columns and valueFormatter
122
- if (isTableChart) {
123
- const newRows = [];
124
- for (let i = 0; i < rows.length; i++) {
125
- const newRow = {};
126
- Object.keys(rows[i]).forEach((field) => (newRow[field] = valueFormatterCSV({
127
- value: rows[i][field],
128
- field: field,
129
- fields: columns,
130
- })));
131
- newRows.push(newRow);
132
- }
133
- const fields = columns.map((col) => col.field); // Assumes all objects have same keys
134
- const csvRows = [];
135
- // Header row
136
- csvRows.push(columns.map((col) => col.label || col.field).join(','));
137
- // Data rows
138
- for (const row of newRows) {
139
- const values = fields.map((field) => {
140
- let value = JSON.stringify(row[field] ?? '');
141
- if (value.includes('\\"')) {
142
- value = value.replaceAll('\\"', '""');
143
- }
144
- return value;
145
- });
146
- csvRows.push(values.join(','));
147
- }
148
- // Create CSV string and create a 'blob' with it
149
- const csvString = csvRows.join('\r\n');
150
- const csvBlob = new Blob([csvString], { type: 'text/csv' });
151
- // Create a download link and click it
152
- const downloadLink = document.createElement('a');
153
- downloadLink.download = `${name}.csv`;
154
- downloadLink.href = URL.createObjectURL(csvBlob);
155
- downloadLink.style.display = 'none';
156
- document.body.appendChild(downloadLink);
157
- downloadLink.click();
158
- document.body.removeChild(downloadLink);
159
- return;
160
- }
161
- const json = rows; // JSON data passed as a prop
162
- const fields = Object.keys(json[0]); // Assumes all objects have same keys
163
- const csvRows = [];
164
- // Header row
165
- csvRows.push(fields.join(','));
166
- // Data rows
167
- for (const row of json) {
168
- const values = fields.map((field) => JSON.stringify(row[field] || ''));
169
- csvRows.push(values.join(','));
170
- }
171
- // Create CSV string and create a 'blob' with it
172
- const csvString = csvRows.join('\r\n');
173
- const csvBlob = new Blob([csvString], { type: 'text/csv' });
174
- // Create a download link and click it
175
- const downloadLink = document.createElement('a');
176
- downloadLink.download = `${csvFilename}.csv`;
177
- downloadLink.href = URL.createObjectURL(csvBlob);
178
- downloadLink.style.display = 'none';
179
- document.body.appendChild(downloadLink);
180
- downloadLink.click();
181
- document.body.removeChild(downloadLink);
182
- };
183
91
  if (loading) {
184
92
  return (_jsx("div", { style: {
185
93
  ...containerStyle,
@@ -482,9 +390,6 @@ const ChartUpdater = ({ chartId, containerStyle, dashboard, dispatch, client, da
482
390
  isSubscribed = false;
483
391
  };
484
392
  }, [dashboardFilters, client.customerId, chartId]);
485
- const handleDownloadCSV = () => {
486
- downloadCSV(memoizedData, chartConfig.name);
487
- };
488
393
  // const dateFilter = Object.values(dashboardFilters).find(
489
394
  // (filter) => filter.filterType == 'date_range',
490
395
  // );
@@ -521,67 +426,4 @@ const ChartUpdater = ({ chartId, containerStyle, dashboard, dispatch, client, da
521
426
  }
522
427
  return (_jsx(SpecialTable, { showDownloadCsvButton: showDownloadCsvButton, csvFilename: csvFilename || dashboard[chartId].name, columns: dashboard[chartId].columns, rows: dashboard[chartId].rows ?? [], height: containerStyle?.height || '100%', theme: theme, containerStyle: containerStyle, LoadingComponent: LoadingComponent }));
523
428
  };
524
- function Columns({ columns, data, theme, handleDownloadCSV, numToShow }) {
525
- return (_jsxs("div", { style: { display: 'flex', flexDirection: 'column', height: '100%' }, children: [_jsx("div", { style: {
526
- display: 'flex',
527
- flexDirection: 'row',
528
- // overflowX: 'scroll',
529
- // overflowY: 'hidden',
530
- overflow: 'scroll',
531
- height: '100%',
532
- }, children: columns.map((elem) => (_jsx(Column, { column: elem, data: data, theme: theme }, elem.field))) }), _jsxs("div", { style: {
533
- display: 'flex',
534
- flexDirection: 'row',
535
- alignItems: 'center',
536
- justifyContent: 'space-between',
537
- // background: 'black',
538
- }, children: [data.length > numToShow && (_jsxs("div", { style: {
539
- color: theme?.chartLabelColor,
540
- boxSizing: 'content-box',
541
- fontFamily: theme?.chartLabelFontFamily || theme?.fontFamily,
542
- fontSize: theme?.fontSizeSmall || '0.875rem',
543
- marginLeft: 12,
544
- marginTop: 8,
545
- }, children: ["...", data.length - numToShow, " more"] })), _jsx("div", { onClick: handleDownloadCSV, style: {
546
- height: 40,
547
- minHeight: 40,
548
- color: theme?.primaryTextColor,
549
- boxSizing: 'content-box',
550
- fontFamily: theme?.chartLabelFontFamily || theme?.fontFamily,
551
- fontSize: theme?.fontSizeSmall || '0.875rem',
552
- fontWeight: theme?.fontWeightMedium || '500',
553
- marginTop: 8,
554
- marginLeft: 20,
555
- cursor: 'pointer',
556
- }, children: "Download CSV" })] })] }));
557
- }
558
- function Column({ column, data, theme }) {
559
- return (_jsxs("div", { style: {
560
- paddingLeft: 20,
561
- paddingRight: 20,
562
- // width: 'max-content',
563
- display: 'inline-flex',
564
- flexDirection: 'column',
565
- whiteSpace: 'nowrap',
566
- }, children: [_jsx("div", { style: {
567
- height: 40,
568
- minHeight: 40,
569
- color: theme?.primaryTextColor,
570
- boxSizing: 'content-box',
571
- fontFamily: theme?.chartLabelFontFamily || theme?.fontFamily,
572
- fontSize: theme?.fontSizeSmall || '0.875rem',
573
- fontWeight: theme?.fontWeightMedium || '500',
574
- }, children: column.label || column.field }), data.map((elem) => (_jsx(Cell, { item: elem[column.field], theme: theme })))] }));
575
- }
576
- function Cell({ item, theme }) {
577
- return (_jsx("div", { style: {
578
- height: 40,
579
- minHeight: 40,
580
- whiteSpace: 'nowrap',
581
- width: '100%',
582
- fontFamily: theme?.chartLabelFontFamily || theme?.fontFamily,
583
- fontSize: theme?.fontSizeSmall || '0.875rem',
584
- color: theme?.chartLabelColor,
585
- }, children: item }));
586
- }
587
429
  export default Table;
@@ -3,7 +3,7 @@ export default function DashboardItem({ dashboardItem, onClickDashboardItem, the
3
3
  return (_jsx("div", { onClick: onClickDashboardItem
4
4
  ? () => onClickDashboardItem(dashboardItem)
5
5
  : () => { }, style: {
6
- height: '100%',
6
+ // height: '100%',
7
7
  cursor: 'pointer',
8
8
  boxSizing: 'content-box',
9
9
  paddingRight: 25,
@@ -3,7 +3,7 @@ export default function DashboardSection({ style, children, ...props }) {
3
3
  return (_jsx("div", { style: {
4
4
  boxSizing: 'content-box',
5
5
  width: '100%',
6
- height: '100%',
6
+ // height: '100%',
7
7
  listStyleType: 'none',
8
8
  display: 'grid',
9
9
  gap: 20,
@@ -3,7 +3,7 @@ export default function DashboardItem({ dashboardItem, onClickDashboardItem, the
3
3
  return (_jsx("div", { onClick: onClickDashboardItem
4
4
  ? () => onClickDashboardItem(dashboardItem)
5
5
  : () => { }, style: {
6
- height: '100%',
6
+ // height: '100%',
7
7
  cursor: 'pointer',
8
8
  boxSizing: 'content-box',
9
9
  paddingRight: 25,
@@ -3,7 +3,7 @@ export default function DashboardItem({ dashboardItem, onClickDashboardItem, the
3
3
  return (_jsx("div", { onClick: onClickDashboardItem
4
4
  ? () => onClickDashboardItem(dashboardItem)
5
5
  : () => { }, style: {
6
- height: '100%',
6
+ // height: '100%',
7
7
  cursor: 'pointer',
8
8
  boxSizing: 'content-box',
9
9
  paddingRight: 25,
@@ -1 +1 @@
1
- {"version":3,"file":"QuillSelect.d.ts","sourceRoot":"","sources":["../../../src/components/QuillSelect.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAGtD,wBAAgB,oBAAoB,CAAC,EACnC,OAAO,EACP,KAAK,EACL,QAAQ,EACR,KAAK,EACL,KAAK,GACN,EAAE,oBAAoB,2CAoKtB"}
1
+ {"version":3,"file":"QuillSelect.d.ts","sourceRoot":"","sources":["../../../src/components/QuillSelect.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAGtD,wBAAgB,oBAAoB,CAAC,EACnC,OAAO,EACP,KAAK,EACL,QAAQ,EACR,KAAK,EACL,KAAK,GACN,EAAE,oBAAoB,2CAgMtB"}
@@ -35,7 +35,11 @@ export function QuillSelectComponent({ options, value, onChange, theme, label, }
35
35
  height: 40,
36
36
  minHeight: 40,
37
37
  maxHeight: 40,
38
- }, className: "quill-select-button", onClick: () => setShowModal((showModal) => !showModal), children: [_jsx("style", { children: ` .quill-select-button { background: ${theme.backgroundColor}; } .quill-select-button:hover { background: ${theme.hoverBackgroundColor}; }` }), options.find((elem) => elem.value === value)?.label || 'Select', _jsx("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 20 20", fill: "currentColor", "aria-hidden": "true", "data-slot": "icon", height: 20, width: 20, children: _jsx("path", { fillRule: "evenodd", d: "M5.22 8.22a.75.75 0 0 1 1.06 0L10 11.94l3.72-3.72a.75.75 0 1 1 1.06 1.06l-4.25 4.25a.75.75 0 0 1-1.06 0L5.22 9.28a.75.75 0 0 1 0-1.06Z", clipRule: "evenodd" }) })] }), showModal && (_jsxs("div", { ref: modalRef, style: {
38
+ }, className: "quill-select-button", onClick: () => setShowModal((showModal) => !showModal), children: [_jsx("style", { children: ` .quill-select-button { background: ${theme.backgroundColor}; } .quill-select-button:hover { background: ${theme.hoverBackgroundColor}; }` }), _jsx("span", { style: {
39
+ textOverflow: 'ellipsis',
40
+ whiteSpace: 'nowrap',
41
+ overflow: 'hidden',
42
+ }, children: options.find((elem) => elem.value === value)?.label || 'Select' }), _jsx("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 20 20", fill: "currentColor", "aria-hidden": "true", "data-slot": "icon", height: 20, width: 20, style: { minHeight: 20, minWidth: 20 }, children: _jsx("path", { fillRule: "evenodd", d: "M5.22 8.22a.75.75 0 0 1 1.06 0L10 11.94l3.72-3.72a.75.75 0 1 1 1.06 1.06l-4.25 4.25a.75.75 0 0 1-1.06 0L5.22 9.28a.75.75 0 0 1 0-1.06Z", clipRule: "evenodd" }) })] }), showModal && (_jsxs("div", { ref: modalRef, style: {
39
43
  position: 'absolute',
40
44
  width: '100%',
41
45
  display: 'flex',
@@ -45,7 +49,6 @@ export function QuillSelectComponent({ options, value, onChange, theme, label, }
45
49
  borderStyle: 'solid',
46
50
  borderColor: theme.borderColor,
47
51
  borderRadius: 6,
48
- overflow: 'hidden',
49
52
  background: 'white',
50
53
  marginTop: 12,
51
54
  zIndex: 100,
@@ -55,6 +58,8 @@ export function QuillSelectComponent({ options, value, onChange, theme, label, }
55
58
  paddingRight: 6,
56
59
  boxShadow: '0px 1px 12px 0px rgba(56, 65, 81, 0.1)',
57
60
  fontFamily: theme.fontFamily,
61
+ maxHeight: '50vh',
62
+ overflow: 'scroll',
58
63
  }, children: [_jsxs("button", { style: {
59
64
  display: 'flex',
60
65
  alignItems: 'center',
@@ -68,6 +73,11 @@ export function QuillSelectComponent({ options, value, onChange, theme, label, }
68
73
  borderColor: theme.borderColor,
69
74
  borderRadius: 4,
70
75
  fontFamily: theme.fontFamily,
76
+ textOverflow: 'ellipsis',
77
+ whiteSpace: 'nowrap',
78
+ overflow: 'hidden',
79
+ height: 34,
80
+ minHeight: 34,
71
81
  }, className: "quill-option", onClick: () => {
72
82
  onChange('');
73
83
  setShowModal(false);
@@ -91,6 +101,11 @@ export function QuillSelectComponent({ options, value, onChange, theme, label, }
91
101
  borderColor: theme.borderColor,
92
102
  borderRadius: 4,
93
103
  fontFamily: theme.fontFamily,
104
+ textOverflow: 'ellipsis',
105
+ whiteSpace: 'nowrap',
106
+ height: 34,
107
+ minHeight: 34,
108
+ overflow: 'hidden',
94
109
  }, className: "quill-option", onClick: () => {
95
110
  onChange(option.value);
96
111
  setShowModal(false);
@@ -101,5 +116,9 @@ export function QuillSelectComponent({ options, value, onChange, theme, label, }
101
116
  .quill-option:hover {
102
117
  background: #F4F4F5;
103
118
  }
104
- ` }), option.label] }, option.value)))] }))] }));
119
+ ` }), _jsx("span", { style: {
120
+ textOverflow: 'ellipsis',
121
+ whiteSpace: 'nowrap',
122
+ overflow: 'hidden',
123
+ }, children: option.label })] }, option.value)))] }))] }));
105
124
  }
@@ -0,0 +1,15 @@
1
+ interface WithChartId {
2
+ chartId: string;
3
+ }
4
+ interface WithData {
5
+ rows: any[];
6
+ fields?: any[];
7
+ name?: string;
8
+ }
9
+ type UseExportProps = WithChartId | WithData;
10
+ export declare const useExport: (data: UseExportProps, isTableChart?: boolean) => {
11
+ downloadCSV: () => void;
12
+ downloadPDF: () => void;
13
+ };
14
+ export {};
15
+ //# sourceMappingURL=useExport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useExport.d.ts","sourceRoot":"","sources":["../../../src/hooks/useExport.ts"],"names":[],"mappings":"AAGA,UAAU,WAAW;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,QAAQ;IAChB,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,KAAK,cAAc,GAAG,WAAW,GAAG,QAAQ,CAAC;AAE7C,eAAO,MAAM,SAAS,SAAU,cAAc;;;CA2B7C,CAAC"}
@@ -0,0 +1,27 @@
1
+ import { downloadCSV } from '../utils/csv';
2
+ import { useQuill } from '../hooks/useQuill';
3
+ export const useExport = (data, isTableChart = false) => {
4
+ if ('chartId' in data) {
5
+ const chartData = useQuill(data.chartId).data;
6
+ if (!chartData)
7
+ return { downloadCSV: () => { }, downloadPDF: () => { } };
8
+ return {
9
+ downloadCSV: () => downloadCSV({
10
+ rows: chartData.rows,
11
+ fields: chartData.fields,
12
+ name: chartData.name,
13
+ }, isTableChart),
14
+ downloadPDF: () => { },
15
+ };
16
+ }
17
+ if ('rows' in data) {
18
+ return {
19
+ downloadCSV: () => downloadCSV({ ...data }, isTableChart),
20
+ downloadPDF: () => { },
21
+ };
22
+ }
23
+ return {
24
+ downloadCSV: () => { },
25
+ downloadPDF: () => { },
26
+ };
27
+ };
@@ -19,7 +19,7 @@ interface YAxisField {
19
19
  chartType: string;
20
20
  format: string;
21
21
  }
22
- interface QuillReport {
22
+ export interface QuillReport {
23
23
  name: string;
24
24
  rows: any[];
25
25
  columns: Array<Column>;