@quillsql/react 1.4.0 → 1.4.2

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.
package/lib/Context.js CHANGED
@@ -48,6 +48,8 @@ var dashboardReducer = function (state, action) {
48
48
  return __assign(__assign({}, state), (_a = {}, _a[action.id] = __assign(__assign({}, state[action.id]), action.data), _a));
49
49
  case 'ADD_DASHBOARD_ITEM':
50
50
  return __assign(__assign({}, state), (_b = {}, _b[action.id] = action.data, _b));
51
+ case 'CLEAR_DASHBOARD':
52
+ return {};
51
53
  default:
52
54
  return state;
53
55
  }
@@ -104,6 +106,9 @@ export var ContextProvider = function (_a) {
104
106
  setClient(function (client) {
105
107
  return __assign(__assign({}, client), { customerId: customerId });
106
108
  });
109
+ if (Object.keys(dashboard).length > 0) {
110
+ dispatch({ type: 'CLEAR_DASHBOARD' });
111
+ }
107
112
  }, [customerId]);
108
113
  if (!theme || !client) {
109
114
  return null;
@@ -1 +1 @@
1
- {"version":3,"file":"Context.js","sourceRoot":"","sources":["../src/Context.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Context.js","sourceRoot":"","sources":["../src/Context.tsx"],"names":[],"mappings":"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"}
package/lib/Table.d.ts ADDED
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ declare const Table: ({ chartId, containerStyle, }: {
3
+ chartId: string;
4
+ containerStyle?: React.CSSProperties | undefined;
5
+ }) => import("react/jsx-runtime").JSX.Element;
6
+ export default Table;
package/lib/Table.js ADDED
@@ -0,0 +1,283 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
13
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
14
+ return new (P || (P = Promise))(function (resolve, reject) {
15
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
16
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
17
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
18
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
19
+ });
20
+ };
21
+ var __generator = (this && this.__generator) || function (thisArg, body) {
22
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
23
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
24
+ function verb(n) { return function (v) { return step([n, v]); }; }
25
+ function step(op) {
26
+ if (f) throw new TypeError("Generator is already executing.");
27
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
28
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
29
+ if (y = 0, t) op = [op[0] & 2, t.value];
30
+ switch (op[0]) {
31
+ case 0: case 1: t = op; break;
32
+ case 4: _.label++; return { value: op[1], done: false };
33
+ case 5: _.label++; y = op[1]; op = [0]; continue;
34
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
35
+ default:
36
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
37
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
38
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
39
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
40
+ if (t[2]) _.ops.pop();
41
+ _.trys.pop(); continue;
42
+ }
43
+ op = body.call(thisArg, _);
44
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
45
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
46
+ }
47
+ };
48
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
49
+ /* eslint-disable @typescript-eslint/ban-ts-comment */
50
+ // @ts-nocheck
51
+ import { useContext, useEffect, useMemo, useState } from 'react';
52
+ import axios from 'axios';
53
+ import { ClientContext, DashboardContext, ThemeContext, } from './Context';
54
+ import Skeleton from 'react-loading-skeleton';
55
+ import { valueFormatter } from './Chart';
56
+ var Table = function (_a) {
57
+ var chartId = _a.chartId, containerStyle = _a.containerStyle;
58
+ var _b = useContext(DashboardContext), dispatch = _b.dispatch, dashboard = _b.dashboard;
59
+ var _c = useContext(ClientContext), client = _c[0], _ = _c[1];
60
+ var theme = useContext(ThemeContext)[0];
61
+ var downloadCSV = function (rows, name) {
62
+ // report.rows
63
+ if (!rows.length) {
64
+ return;
65
+ }
66
+ var json = rows; // JSON data passed as a prop
67
+ var fields = Object.keys(json[0]); // Assumes all objects have same keys
68
+ var csvRows = [];
69
+ // Header row
70
+ csvRows.push(fields.join(','));
71
+ var _loop_1 = function (row) {
72
+ var values = fields.map(function (field) { return JSON.stringify(row[field] || ''); });
73
+ csvRows.push(values.join(','));
74
+ };
75
+ // Data rows
76
+ for (var _i = 0, json_1 = json; _i < json_1.length; _i++) {
77
+ var row = json_1[_i];
78
+ _loop_1(row);
79
+ }
80
+ // Create CSV string and create a 'blob' with it
81
+ var csvString = csvRows.join('\r\n');
82
+ var csvBlob = new Blob([csvString], { type: 'text/csv' });
83
+ // Create a download link and click it
84
+ var downloadLink = document.createElement('a');
85
+ downloadLink.download = "".concat(name, ".csv");
86
+ downloadLink.href = URL.createObjectURL(csvBlob);
87
+ downloadLink.style.display = 'none';
88
+ document.body.appendChild(downloadLink);
89
+ downloadLink.click();
90
+ document.body.removeChild(downloadLink);
91
+ };
92
+ return (_jsx(ChartUpdater, { dispatch: dispatch, dashboard: dashboard, chartId: chartId, containerStyle: containerStyle, client: client, theme: theme, downloadCSV: downloadCSV }));
93
+ };
94
+ var ChartUpdater = function (_a) {
95
+ var chartId = _a.chartId, containerStyle = _a.containerStyle, dashboard = _a.dashboard, dispatch = _a.dispatch, client = _a.client, theme = _a.theme, downloadCSV = _a.downloadCSV;
96
+ var _b = useState(null), chartConfig = _b[0], setChartConfig = _b[1];
97
+ var _c = useState(true), loading = _c[0], setLoading = _c[1];
98
+ useEffect(function () {
99
+ var isSubscribed = true;
100
+ function getChartOptions(id) {
101
+ return __awaiter(this, void 0, void 0, function () {
102
+ var _a, columns, rows, name_1, publicKey, customerId, environment, resp, _b, columns, rows, name_2, e_1;
103
+ return __generator(this, function (_c) {
104
+ switch (_c.label) {
105
+ case 0:
106
+ if (!isSubscribed) return [3 /*break*/, 4];
107
+ // @ts-ignore
108
+ if (dashboard && dashboard[id]) {
109
+ _a = dashboard[id], columns = _a.columns, rows = _a.rows, name_1 = _a.name;
110
+ setChartConfig({
111
+ columns: columns,
112
+ rows: rows,
113
+ name: name_1,
114
+ });
115
+ setLoading(false);
116
+ return [2 /*return*/];
117
+ }
118
+ publicKey = client.publicKey, customerId = client.customerId, environment = client.environment;
119
+ setLoading(true);
120
+ _c.label = 1;
121
+ case 1:
122
+ _c.trys.push([1, 3, , 4]);
123
+ return [4 /*yield*/, axios.get('https://quill-344421.uc.r.appspot.com/item', {
124
+ params: {
125
+ id: chartId,
126
+ orgId: customerId,
127
+ publicKey: publicKey,
128
+ },
129
+ headers: {
130
+ environment: environment || undefined,
131
+ },
132
+ })];
133
+ case 2:
134
+ resp = _c.sent();
135
+ _b = resp.data, columns = _b.columns, rows = _b.rows, name_2 = _b.name;
136
+ setChartConfig({
137
+ columns: columns,
138
+ rows: rows,
139
+ name: name_2,
140
+ });
141
+ setLoading(false);
142
+ return [3 /*break*/, 4];
143
+ case 3:
144
+ e_1 = _c.sent();
145
+ console.log('Error fetching chart: ', e_1);
146
+ setLoading(false);
147
+ return [3 /*break*/, 4];
148
+ case 4: return [2 /*return*/];
149
+ }
150
+ });
151
+ });
152
+ }
153
+ if (chartId && !chartConfig) {
154
+ getChartOptions(chartId);
155
+ }
156
+ return function () {
157
+ isSubscribed = false;
158
+ };
159
+ }, [chartConfig]);
160
+ var NUM_TO_SHOW = (containerStyle === null || containerStyle === void 0 ? void 0 : containerStyle.height)
161
+ ? Math.floor(containerStyle.height / 40) - 1
162
+ : 6;
163
+ var memoizedData = useMemo(function () {
164
+ // Deep copy of data
165
+ var copiedData = JSON.parse(JSON.stringify(chartConfig && chartConfig.rows && chartConfig.rows.length
166
+ ? chartConfig.rows
167
+ : []));
168
+ return copiedData.slice(0, NUM_TO_SHOW).map(function (item) {
169
+ var fieldsWithFormattedValues = {};
170
+ for (var _i = 0, _a = chartConfig.columns; _i < _a.length; _i++) {
171
+ var field = _a[_i];
172
+ var value = item[field.field];
173
+ fieldsWithFormattedValues[field.field] = valueFormatter({
174
+ value: value,
175
+ field: field.field,
176
+ fields: chartConfig.columns,
177
+ });
178
+ }
179
+ return fieldsWithFormattedValues;
180
+ });
181
+ }, [chartConfig, NUM_TO_SHOW]);
182
+ var handleDownloadCSV = function () {
183
+ downloadCSV(memoizedData, chartConfig.name);
184
+ };
185
+ if (!chartConfig || loading || !memoizedData.length) {
186
+ return (_jsx("div", __assign({
187
+ // className="flex flex-col flex-1 h-[100%]"
188
+ style: __assign(__assign({}, containerStyle), { marginLeft: 25, marginRight: 25, boxSizing: 'content-box', height: '100%', display: 'flex', flexDirection: 'column', flex: 1 }) }, { children: _jsx("div", __assign({ style: {
189
+ height: (containerStyle === null || containerStyle === void 0 ? void 0 : containerStyle.height) || 300,
190
+ width: '100%',
191
+ boxSizing: 'content-box',
192
+ } }, { children: _jsx(Skeleton, { count: 1,
193
+ // height={containerStyle?.height}
194
+ height: (containerStyle === null || containerStyle === void 0 ? void 0 : containerStyle.height) && (containerStyle === null || containerStyle === void 0 ? void 0 : containerStyle.marginTop)
195
+ ? (containerStyle === null || containerStyle === void 0 ? void 0 : containerStyle.height) + (containerStyle === null || containerStyle === void 0 ? void 0 : containerStyle.marginTop)
196
+ : (containerStyle === null || containerStyle === void 0 ? void 0 : containerStyle.height)
197
+ ? containerStyle === null || containerStyle === void 0 ? void 0 : containerStyle.height
198
+ : 300, borderRadius: 8,
199
+ // highlightColor="#F7F7F8"
200
+ highlightColor: "#FDFDFD",
201
+ // baseColor="#F3F4F6"
202
+ baseColor: "#F9F9FA", width: "100%" }) })) })));
203
+ }
204
+ return (_jsx("div", __assign({ style: {
205
+ boxSizing: 'content-box',
206
+ height: (containerStyle === null || containerStyle === void 0 ? void 0 : containerStyle.height) || '100%',
207
+ marginTop: 20,
208
+ // overflow: 'hidden',
209
+ display: 'flex',
210
+ marginLeft: '1rem',
211
+ flexDirection: 'column',
212
+ // justifyContent: 'space-between',
213
+ } }, { children: _jsx(Columns, { columns: chartConfig.columns, data: memoizedData, theme: theme, handleDownloadCSV: handleDownloadCSV, numToShow: NUM_TO_SHOW }) })));
214
+ };
215
+ function Columns(_a) {
216
+ var columns = _a.columns, data = _a.data, theme = _a.theme, handleDownloadCSV = _a.handleDownloadCSV, numToShow = _a.numToShow;
217
+ console.log('NUM TO SHOW: ', numToShow);
218
+ return (_jsxs("div", __assign({ style: { display: 'flex', flexDirection: 'column', height: '100%' } }, { children: [_jsx("div", __assign({ style: {
219
+ display: 'flex',
220
+ flexDirection: 'row',
221
+ // overflowX: 'scroll',
222
+ // overflowY: 'hidden',
223
+ overflow: 'scroll',
224
+ height: '100%',
225
+ } }, { children: columns.map(function (elem) { return (_jsx(Column, { column: elem, data: data, theme: theme }, elem.field)); }) })), _jsxs("div", __assign({ style: {
226
+ display: 'flex',
227
+ flexDirection: 'row',
228
+ alignItems: 'center',
229
+ justifyContent: 'space-between',
230
+ // background: 'black',
231
+ } }, { children: [data.length > numToShow && (_jsxs("div", __assign({ style: {
232
+ color: theme === null || theme === void 0 ? void 0 : theme.chartLabelColor,
233
+ boxSizing: 'content-box',
234
+ fontFamily: (theme === null || theme === void 0 ? void 0 : theme.chartLabelFontFamily) || (theme === null || theme === void 0 ? void 0 : theme.fontFamily),
235
+ fontSize: (theme === null || theme === void 0 ? void 0 : theme.fontSizeSmall) || '0.875rem',
236
+ marginLeft: 12,
237
+ marginTop: 8,
238
+ } }, { children: ["...", data.length - numToShow, " more"] }))), _jsx("div", __assign({ onClick: handleDownloadCSV, style: {
239
+ height: 40,
240
+ minHeight: 40,
241
+ color: theme === null || theme === void 0 ? void 0 : theme.primaryTextColor,
242
+ boxSizing: 'content-box',
243
+ fontFamily: (theme === null || theme === void 0 ? void 0 : theme.chartLabelFontFamily) || (theme === null || theme === void 0 ? void 0 : theme.fontFamily),
244
+ fontSize: (theme === null || theme === void 0 ? void 0 : theme.fontSizeSmall) || '0.875rem',
245
+ fontWeight: (theme === null || theme === void 0 ? void 0 : theme.fontWeightMedium) || '500',
246
+ marginTop: 8,
247
+ marginLeft: 20,
248
+ cursor: 'pointer',
249
+ } }, { children: "Download CSV" }))] }))] })));
250
+ }
251
+ function Column(_a) {
252
+ var column = _a.column, data = _a.data, theme = _a.theme;
253
+ return (_jsxs("div", __assign({ style: {
254
+ paddingLeft: 20,
255
+ paddingRight: 20,
256
+ // width: 'max-content',
257
+ display: 'inline-flex',
258
+ flexDirection: 'column',
259
+ whiteSpace: 'nowrap',
260
+ } }, { children: [_jsx("div", __assign({ style: {
261
+ height: 40,
262
+ minHeight: 40,
263
+ color: theme === null || theme === void 0 ? void 0 : theme.primaryTextColor,
264
+ boxSizing: 'content-box',
265
+ fontFamily: (theme === null || theme === void 0 ? void 0 : theme.chartLabelFontFamily) || (theme === null || theme === void 0 ? void 0 : theme.fontFamily),
266
+ fontSize: (theme === null || theme === void 0 ? void 0 : theme.fontSizeSmall) || '0.875rem',
267
+ fontWeight: (theme === null || theme === void 0 ? void 0 : theme.fontWeightMedium) || '500',
268
+ } }, { children: column.label })), data.map(function (elem) { return (_jsx(Cell, { item: elem[column.field], theme: theme })); })] })));
269
+ }
270
+ function Cell(_a) {
271
+ var item = _a.item, theme = _a.theme;
272
+ return (_jsx("div", __assign({ style: {
273
+ height: 40,
274
+ minHeight: 40,
275
+ whiteSpace: 'nowrap',
276
+ width: '100%',
277
+ fontFamily: (theme === null || theme === void 0 ? void 0 : theme.chartLabelFontFamily) || (theme === null || theme === void 0 ? void 0 : theme.fontFamily),
278
+ fontSize: (theme === null || theme === void 0 ? void 0 : theme.fontSizeSmall) || '0.875rem',
279
+ color: theme === null || theme === void 0 ? void 0 : theme.chartLabelColor,
280
+ } }, { children: item })));
281
+ }
282
+ export default Table;
283
+ //# sourceMappingURL=Table.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Table.js","sourceRoot":"","sources":["../src/Table.tsx"],"names":[],"mappings":"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"}
package/lib/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  export { default as Dashboard } from './Dashboard';
2
2
  export { default as QuillProvider } from './QuillProvider';
3
3
  export { default as Chart } from './Chart';
4
+ export { default as Table } from './Table';
4
5
  export { useQuill } from './hooks/useQuill';
package/lib/index.js CHANGED
@@ -2,5 +2,6 @@
2
2
  export { default as Dashboard } from './Dashboard';
3
3
  export { default as QuillProvider } from './QuillProvider';
4
4
  export { default as Chart } from './Chart';
5
+ export { default as Table } from './Table';
5
6
  export { useQuill } from './hooks/useQuill';
6
7
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,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,QAAQ,EAAE,MAAM,kBAAkB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@quillsql/react",
3
- "version": "1.4.0",
3
+ "version": "1.4.2",
4
4
  "access": "public",
5
5
  "description": "Quill React components for building dashboards and reporting.",
6
6
  "main": "lib/index.js",
package/src/Context.tsx CHANGED
@@ -47,6 +47,8 @@ const dashboardReducer = (state, action) => {
47
47
  ...state,
48
48
  [action.id]: action.data,
49
49
  };
50
+ case 'CLEAR_DASHBOARD':
51
+ return {};
50
52
  default:
51
53
  return state;
52
54
  }
@@ -121,6 +123,9 @@ export const ContextProvider = ({
121
123
  setClient(client => {
122
124
  return { ...client, customerId };
123
125
  });
126
+ if (Object.keys(dashboard).length > 0) {
127
+ dispatch({ type: 'CLEAR_DASHBOARD' });
128
+ }
124
129
  }, [customerId]);
125
130
 
126
131
  if (!theme || !client) {
package/src/Table.tsx ADDED
@@ -0,0 +1,361 @@
1
+ /* eslint-disable @typescript-eslint/ban-ts-comment */
2
+ // @ts-nocheck
3
+ import React, { useContext, useEffect, useMemo, useState } from 'react';
4
+ import axios from 'axios';
5
+ import {
6
+ ClientContext,
7
+ DashboardContext,
8
+ DateFilterContext,
9
+ ThemeContext,
10
+ } from './Context';
11
+ import Skeleton from 'react-loading-skeleton';
12
+ import { valueFormatter } from './Chart';
13
+
14
+ const Table = ({
15
+ chartId,
16
+ containerStyle,
17
+ }: {
18
+ chartId: string;
19
+ containerStyle?: React.CSSProperties;
20
+ }) => {
21
+ const { dispatch, dashboard } = useContext(DashboardContext);
22
+ const [client, _] = useContext(ClientContext);
23
+ const [theme] = useContext(ThemeContext);
24
+
25
+ const downloadCSV = (rows, name) => {
26
+ // report.rows
27
+ if (!rows.length) {
28
+ return;
29
+ }
30
+ const json = rows; // JSON data passed as a prop
31
+ const fields = Object.keys(json[0]); // Assumes all objects have same keys
32
+ const csvRows = [];
33
+
34
+ // Header row
35
+ csvRows.push(fields.join(','));
36
+
37
+ // Data rows
38
+ for (const row of json) {
39
+ const values = fields.map(field => JSON.stringify(row[field] || ''));
40
+ csvRows.push(values.join(','));
41
+ }
42
+
43
+ // Create CSV string and create a 'blob' with it
44
+ const csvString = csvRows.join('\r\n');
45
+ const csvBlob = new Blob([csvString], { type: 'text/csv' });
46
+
47
+ // Create a download link and click it
48
+ const downloadLink = document.createElement('a');
49
+ downloadLink.download = `${name}.csv`;
50
+ downloadLink.href = URL.createObjectURL(csvBlob);
51
+ downloadLink.style.display = 'none';
52
+
53
+ document.body.appendChild(downloadLink);
54
+ downloadLink.click();
55
+ document.body.removeChild(downloadLink);
56
+ };
57
+ return (
58
+ <ChartUpdater
59
+ dispatch={dispatch}
60
+ dashboard={dashboard}
61
+ chartId={chartId}
62
+ containerStyle={containerStyle}
63
+ client={client}
64
+ theme={theme}
65
+ downloadCSV={downloadCSV}
66
+ />
67
+ );
68
+ };
69
+
70
+ const ChartUpdater = ({
71
+ chartId,
72
+ containerStyle,
73
+ dashboard,
74
+ dispatch,
75
+ client,
76
+ theme,
77
+ downloadCSV,
78
+ }: {
79
+ dispatch: any;
80
+ dashboard: object;
81
+ chartId: string;
82
+ containerStyle?: React.CSSProperties;
83
+ client: any;
84
+ theme: object;
85
+ downloadCSV: (rows: object[], name: string) => void;
86
+ }) => {
87
+ const [chartConfig, setChartConfig] = useState<any>(null);
88
+ const [loading, setLoading] = useState(true);
89
+
90
+ useEffect(() => {
91
+ let isSubscribed = true;
92
+ async function getChartOptions(id: string) {
93
+ if (isSubscribed) {
94
+ // @ts-ignore
95
+ if (dashboard && dashboard[id]) {
96
+ const { columns, rows, name } = dashboard[id];
97
+ setChartConfig({
98
+ columns,
99
+ rows,
100
+ name,
101
+ });
102
+ setLoading(false);
103
+ return;
104
+ }
105
+ const { publicKey, customerId, environment } = client;
106
+ setLoading(true);
107
+ try {
108
+ const resp = await axios.get(
109
+ 'https://quill-344421.uc.r.appspot.com/item',
110
+ {
111
+ params: {
112
+ id: chartId,
113
+ orgId: customerId,
114
+ publicKey: publicKey,
115
+ },
116
+ headers: {
117
+ environment: environment || undefined,
118
+ },
119
+ }
120
+ );
121
+ const { columns, rows, name } = resp.data;
122
+
123
+ setChartConfig({
124
+ columns,
125
+ rows,
126
+ name,
127
+ });
128
+ setLoading(false);
129
+ // dispatch({ type: 'UPDATE_DASHBOARD_ITEM', id, data: resp.data });
130
+ } catch (e) {
131
+ console.log('Error fetching chart: ', e);
132
+ setLoading(false);
133
+ }
134
+ }
135
+ }
136
+ if (chartId && !chartConfig) {
137
+ getChartOptions(chartId);
138
+ }
139
+ return () => {
140
+ isSubscribed = false;
141
+ };
142
+ }, [chartConfig]);
143
+
144
+ const NUM_TO_SHOW = containerStyle?.height
145
+ ? Math.floor(containerStyle.height / 40) - 1
146
+ : 6;
147
+
148
+ const memoizedData = useMemo(() => {
149
+ // Deep copy of data
150
+ const copiedData = JSON.parse(
151
+ JSON.stringify(
152
+ chartConfig && chartConfig.rows && chartConfig.rows.length
153
+ ? chartConfig.rows
154
+ : []
155
+ )
156
+ );
157
+
158
+ return copiedData.slice(0, NUM_TO_SHOW).map(item => {
159
+ const fieldsWithFormattedValues = {};
160
+
161
+ for (const field of chartConfig.columns) {
162
+ const value = item[field.field];
163
+ fieldsWithFormattedValues[field.field] = valueFormatter({
164
+ value,
165
+ field: field.field,
166
+ fields: chartConfig.columns,
167
+ });
168
+ }
169
+
170
+ return fieldsWithFormattedValues;
171
+ });
172
+ }, [chartConfig, NUM_TO_SHOW]);
173
+
174
+ const handleDownloadCSV = () => {
175
+ downloadCSV(memoizedData, chartConfig.name);
176
+ };
177
+
178
+ if (!chartConfig || loading || !memoizedData.length) {
179
+ return (
180
+ <div
181
+ // className="flex flex-col flex-1 h-[100%]"
182
+ style={{
183
+ ...containerStyle,
184
+ marginLeft: 25,
185
+ marginRight: 25,
186
+ boxSizing: 'content-box',
187
+ height: '100%',
188
+ display: 'flex',
189
+ flexDirection: 'column',
190
+ flex: 1,
191
+ }}
192
+ >
193
+ <div
194
+ style={{
195
+ height: containerStyle?.height || 300,
196
+ width: '100%',
197
+ boxSizing: 'content-box',
198
+ }}
199
+ >
200
+ <Skeleton
201
+ count={1}
202
+ // height={containerStyle?.height}
203
+ height={
204
+ containerStyle?.height && containerStyle?.marginTop
205
+ ? containerStyle?.height + containerStyle?.marginTop
206
+ : containerStyle?.height
207
+ ? containerStyle?.height
208
+ : 300
209
+ }
210
+ borderRadius={8}
211
+ // highlightColor="#F7F7F8"
212
+ highlightColor="#FDFDFD"
213
+ // baseColor="#F3F4F6"
214
+ baseColor="#F9F9FA"
215
+ width="100%"
216
+ />
217
+ </div>
218
+ </div>
219
+ );
220
+ }
221
+
222
+ return (
223
+ <div
224
+ style={{
225
+ boxSizing: 'content-box',
226
+ height: containerStyle?.height || '100%',
227
+ marginTop: 20,
228
+ // overflow: 'hidden',
229
+ display: 'flex',
230
+ marginLeft: '1rem',
231
+ flexDirection: 'column',
232
+ // justifyContent: 'space-between',
233
+ }}
234
+ >
235
+ <Columns
236
+ columns={chartConfig.columns}
237
+ data={memoizedData}
238
+ theme={theme}
239
+ handleDownloadCSV={handleDownloadCSV}
240
+ numToShow={NUM_TO_SHOW}
241
+ />
242
+ </div>
243
+ );
244
+ };
245
+
246
+ function Columns({ columns, data, theme, handleDownloadCSV, numToShow }) {
247
+ console.log('NUM TO SHOW: ', numToShow);
248
+ return (
249
+ <div style={{ display: 'flex', flexDirection: 'column', height: '100%' }}>
250
+ <div
251
+ style={{
252
+ display: 'flex',
253
+ flexDirection: 'row',
254
+ // overflowX: 'scroll',
255
+ // overflowY: 'hidden',
256
+ overflow: 'scroll',
257
+ height: '100%',
258
+ }}
259
+ >
260
+ {columns.map(elem => (
261
+ <Column key={elem.field} column={elem} data={data} theme={theme} />
262
+ ))}
263
+ </div>
264
+
265
+ <div
266
+ style={{
267
+ display: 'flex',
268
+ flexDirection: 'row',
269
+ alignItems: 'center',
270
+ justifyContent: 'space-between',
271
+ // background: 'black',
272
+ }}
273
+ >
274
+ {data.length > numToShow && (
275
+ <div
276
+ style={{
277
+ color: theme?.chartLabelColor,
278
+ boxSizing: 'content-box',
279
+ fontFamily: theme?.chartLabelFontFamily || theme?.fontFamily,
280
+ fontSize: theme?.fontSizeSmall || '0.875rem',
281
+ marginLeft: 12,
282
+ marginTop: 8,
283
+ }}
284
+ // className="qq-text-sm"
285
+ >
286
+ ...{data.length - numToShow} more
287
+ </div>
288
+ )}
289
+ <div
290
+ onClick={handleDownloadCSV}
291
+ style={{
292
+ height: 40,
293
+ minHeight: 40,
294
+ color: theme?.primaryTextColor,
295
+ boxSizing: 'content-box',
296
+ fontFamily: theme?.chartLabelFontFamily || theme?.fontFamily,
297
+ fontSize: theme?.fontSizeSmall || '0.875rem',
298
+ fontWeight: theme?.fontWeightMedium || '500',
299
+ marginTop: 8,
300
+ marginLeft: 20,
301
+ cursor: 'pointer',
302
+ }}
303
+ >
304
+ Download CSV
305
+ </div>
306
+ </div>
307
+ </div>
308
+ );
309
+ }
310
+
311
+ function Column({ column, data, theme }) {
312
+ return (
313
+ <div
314
+ style={{
315
+ paddingLeft: 20,
316
+ paddingRight: 20,
317
+ // width: 'max-content',
318
+ display: 'inline-flex',
319
+ flexDirection: 'column',
320
+ whiteSpace: 'nowrap',
321
+ }}
322
+ >
323
+ <div
324
+ style={{
325
+ height: 40,
326
+ minHeight: 40,
327
+ color: theme?.primaryTextColor,
328
+ boxSizing: 'content-box',
329
+ fontFamily: theme?.chartLabelFontFamily || theme?.fontFamily,
330
+ fontSize: theme?.fontSizeSmall || '0.875rem',
331
+ fontWeight: theme?.fontWeightMedium || '500',
332
+ }}
333
+ >
334
+ {column.label}
335
+ </div>
336
+ {data.map(elem => (
337
+ <Cell item={elem[column.field]} theme={theme} />
338
+ ))}
339
+ </div>
340
+ );
341
+ }
342
+
343
+ function Cell({ item, theme }) {
344
+ return (
345
+ <div
346
+ style={{
347
+ height: 40,
348
+ minHeight: 40,
349
+ whiteSpace: 'nowrap',
350
+ width: '100%',
351
+ fontFamily: theme?.chartLabelFontFamily || theme?.fontFamily,
352
+ fontSize: theme?.fontSizeSmall || '0.875rem',
353
+ color: theme?.chartLabelColor,
354
+ }}
355
+ >
356
+ {item}
357
+ </div>
358
+ );
359
+ }
360
+
361
+ export default Table;
package/src/index.ts CHANGED
@@ -2,4 +2,5 @@
2
2
  export { default as Dashboard } from './Dashboard';
3
3
  export { default as QuillProvider } from './QuillProvider';
4
4
  export { default as Chart } from './Chart';
5
+ export { default as Table } from './Table';
5
6
  export { useQuill } from './hooks/useQuill';