@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 +5 -0
- package/lib/Context.js.map +1 -1
- package/lib/Table.d.ts +6 -0
- package/lib/Table.js +283 -0
- package/lib/Table.js.map +1 -0
- package/lib/index.d.ts +1 -0
- package/lib/index.js +1 -0
- package/lib/index.js.map +1 -1
- package/package.json +1 -1
- package/src/Context.tsx +5 -0
- package/src/Table.tsx +361 -0
- package/src/index.ts +1 -0
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;
|
package/lib/Context.js.map
CHANGED
|
@@ -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
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
|
package/lib/Table.js.map
ADDED
|
@@ -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
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
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