@quillsql/react 1.7.0 → 1.7.1

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 (108) hide show
  1. package/lib/AddToDashboardModal.js +249 -369
  2. package/lib/AddToDashboardModal.js.map +1 -1
  3. package/lib/BarList.js +92 -109
  4. package/lib/BarList.js.map +1 -1
  5. package/lib/Chart.js +364 -414
  6. package/lib/Chart.js.map +1 -1
  7. package/lib/Context.js +92 -84
  8. package/lib/Context.js.map +1 -1
  9. package/lib/Dashboard.js +181 -209
  10. package/lib/Dashboard.js.map +1 -1
  11. package/lib/DateRangePicker/Calendar.js +87 -91
  12. package/lib/DateRangePicker/Calendar.js.map +1 -1
  13. package/lib/DateRangePicker/DateRangePicker.js +70 -68
  14. package/lib/DateRangePicker/DateRangePicker.js.map +1 -1
  15. package/lib/DateRangePicker/DateRangePickerButton.js +46 -57
  16. package/lib/DateRangePicker/DateRangePickerButton.js.map +1 -1
  17. package/lib/DateRangePicker/dateRangePickerUtils.js +105 -99
  18. package/lib/DateRangePicker/dateRangePickerUtils.js.map +1 -1
  19. package/lib/DateRangePicker/index.js +8 -1
  20. package/lib/DateRangePicker/index.js.map +1 -1
  21. package/lib/PieChart.js +221 -225
  22. package/lib/PieChart.js.map +1 -1
  23. package/lib/QuillProvider.js +8 -18
  24. package/lib/QuillProvider.js.map +1 -1
  25. package/lib/ReportBuilder.js +430 -526
  26. package/lib/ReportBuilder.js.map +1 -1
  27. package/lib/SQLEditor.js +183 -268
  28. package/lib/SQLEditor.js.map +1 -1
  29. package/lib/Table.js +213 -256
  30. package/lib/Table.js.map +1 -1
  31. package/lib/TableChart.js +76 -75
  32. package/lib/TableChart.js.map +1 -1
  33. package/lib/assets/ArrowDownHeadIcon.js +5 -28
  34. package/lib/assets/ArrowDownHeadIcon.js.map +1 -1
  35. package/lib/assets/ArrowDownIcon.js +5 -28
  36. package/lib/assets/ArrowDownIcon.js.map +1 -1
  37. package/lib/assets/ArrowDownRightIcon.js +5 -28
  38. package/lib/assets/ArrowDownRightIcon.js.map +1 -1
  39. package/lib/assets/ArrowLeftHeadIcon.js +5 -28
  40. package/lib/assets/ArrowLeftHeadIcon.js.map +1 -1
  41. package/lib/assets/ArrowRightHeadIcon.js +5 -28
  42. package/lib/assets/ArrowRightHeadIcon.js.map +1 -1
  43. package/lib/assets/ArrowRightIcon.js +5 -28
  44. package/lib/assets/ArrowRightIcon.js.map +1 -1
  45. package/lib/assets/ArrowUpHeadIcon.js +5 -28
  46. package/lib/assets/ArrowUpHeadIcon.js.map +1 -1
  47. package/lib/assets/ArrowUpIcon.js +5 -28
  48. package/lib/assets/ArrowUpIcon.js.map +1 -1
  49. package/lib/assets/ArrowUpRightIcon.js +5 -28
  50. package/lib/assets/ArrowUpRightIcon.js.map +1 -1
  51. package/lib/assets/CalendarIcon.js +5 -28
  52. package/lib/assets/CalendarIcon.js.map +1 -1
  53. package/lib/assets/DoubleArrowLeftHeadIcon.js +5 -28
  54. package/lib/assets/DoubleArrowLeftHeadIcon.js.map +1 -1
  55. package/lib/assets/DoubleArrowRightHeadIcon.js +5 -28
  56. package/lib/assets/DoubleArrowRightHeadIcon.js.map +1 -1
  57. package/lib/assets/ExclamationFilledIcon.js +5 -28
  58. package/lib/assets/ExclamationFilledIcon.js.map +1 -1
  59. package/lib/assets/LoadingSpinner.js +5 -28
  60. package/lib/assets/LoadingSpinner.js.map +1 -1
  61. package/lib/assets/SearchIcon.js +5 -28
  62. package/lib/assets/SearchIcon.js.map +1 -1
  63. package/lib/assets/XCircleIcon.js +5 -28
  64. package/lib/assets/XCircleIcon.js.map +1 -1
  65. package/lib/assets/index.js +38 -16
  66. package/lib/assets/index.js.map +1 -1
  67. package/lib/components/BigModal/BigModal.js +45 -43
  68. package/lib/components/BigModal/BigModal.js.map +1 -1
  69. package/lib/components/Dropdown/Dropdown.js +57 -53
  70. package/lib/components/Dropdown/Dropdown.js.map +1 -1
  71. package/lib/components/Dropdown/DropdownItem.js +43 -40
  72. package/lib/components/Dropdown/DropdownItem.js.map +1 -1
  73. package/lib/components/Dropdown/index.js +10 -2
  74. package/lib/components/Dropdown/index.js.map +1 -1
  75. package/lib/components/Modal/Modal.js +45 -43
  76. package/lib/components/Modal/Modal.js.map +1 -1
  77. package/lib/components/Modal/index.js +8 -1
  78. package/lib/components/Modal/index.js.map +1 -1
  79. package/lib/components/selectUtils.js +20 -15
  80. package/lib/components/selectUtils.js.map +1 -1
  81. package/lib/contexts/BaseColorContext.js +5 -3
  82. package/lib/contexts/BaseColorContext.js.map +1 -1
  83. package/lib/contexts/HoveredValueContext.js +5 -3
  84. package/lib/contexts/HoveredValueContext.js.map +1 -1
  85. package/lib/contexts/RootStylesContext.js +5 -3
  86. package/lib/contexts/RootStylesContext.js.map +1 -1
  87. package/lib/contexts/SelectedValueContext.js +5 -3
  88. package/lib/contexts/SelectedValueContext.js.map +1 -1
  89. package/lib/contexts/index.js +14 -4
  90. package/lib/contexts/index.js.map +1 -1
  91. package/lib/hooks/index.js +14 -4
  92. package/lib/hooks/index.js.map +1 -1
  93. package/lib/hooks/useInternalState.js +9 -7
  94. package/lib/hooks/useInternalState.js.map +1 -1
  95. package/lib/hooks/useOnClickOutside.js +8 -6
  96. package/lib/hooks/useOnClickOutside.js.map +1 -1
  97. package/lib/hooks/useOnWindowResize.js +9 -7
  98. package/lib/hooks/useOnWindowResize.js.map +1 -1
  99. package/lib/hooks/useQuill.js +60 -111
  100. package/lib/hooks/useQuill.js.map +1 -1
  101. package/lib/hooks/useSelectOnKeyDown.js +17 -15
  102. package/lib/hooks/useSelectOnKeyDown.js.map +1 -1
  103. package/lib/index.js +22 -8
  104. package/lib/index.js.map +1 -1
  105. package/package.json +2 -16
  106. package/src/Dashboard.tsx +2 -2
  107. package/src/ReportBuilder.tsx +0 -1
  108. package/src/SQLEditor.tsx +0 -1
package/lib/Chart.js CHANGED
@@ -1,74 +1,47 @@
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 };
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
46
7
  }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
47
24
  };
48
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
49
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
50
- if (ar || !(i in from)) {
51
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
52
- ar[i] = from[i];
53
- }
54
- }
55
- return to.concat(ar || Array.prototype.slice.call(from));
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
56
27
  };
57
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.ChartTooltipRow = exports.ChartTooltipFrame = exports.valueFormatter = void 0;
30
+ const jsx_runtime_1 = require("react/jsx-runtime");
58
31
  /* eslint-disable @typescript-eslint/ban-ts-comment */
59
32
  // @ts-nocheck
60
- import { useState, useEffect, useContext, useMemo } from 'react';
61
- import { Area, CartesianGrid, ComposedChart as ReChartsAreaChart, ResponsiveContainer, Tooltip, XAxis, YAxis, Bar, BarChart as ReChartsBarChart, } from 'recharts';
62
- import { endOfWeek, format, isValid, startOfWeek } from 'date-fns';
63
- import { utcToZonedTime } from 'date-fns-tz';
64
- import BarList from './BarList';
65
- import PieChart, { findComplementaryAndAnalogousColors } from './PieChart';
66
- import axios from 'axios';
67
- import { ClientContext, DashboardContext, ThemeContext, DashboardFiltersContext, } from './Context';
68
- import Skeleton from 'react-loading-skeleton';
69
- import 'react-loading-skeleton/dist/skeleton.css';
70
- import TableChart from './TableChart';
71
- var colorValues = [
33
+ const react_1 = require("react");
34
+ const recharts_1 = require("recharts");
35
+ const date_fns_1 = require("date-fns");
36
+ const date_fns_tz_1 = require("date-fns-tz");
37
+ const BarList_1 = __importDefault(require("./BarList"));
38
+ const PieChart_1 = __importStar(require("./PieChart"));
39
+ const axios_1 = __importDefault(require("axios"));
40
+ const Context_1 = require("./Context");
41
+ const react_loading_skeleton_1 = __importDefault(require("react-loading-skeleton"));
42
+ require("react-loading-skeleton/dist/skeleton.css");
43
+ const TableChart_1 = __importDefault(require("./TableChart"));
44
+ const colorValues = [
72
45
  'slate',
73
46
  'gray',
74
47
  'zinc',
@@ -124,21 +97,20 @@ var colorValues = [
124
97
  // 'The Pragmatic Engineer': 1726,
125
98
  // },
126
99
  // ];
127
- export var valueFormatter = function (_a) {
128
- var value = _a.value, field = _a.field, fields = _a.fields;
100
+ const valueFormatter = ({ value, field, fields }) => {
129
101
  if (value === undefined ||
130
102
  value === null ||
131
103
  field === undefined ||
132
104
  field === null) {
133
105
  return '';
134
106
  }
135
- var fieldInfo = fields.find(function (f) { return f.field === field; });
107
+ const fieldInfo = fields.find(f => f.field === field);
136
108
  if (!fieldInfo) {
137
109
  return '';
138
110
  }
139
- var formatType = fieldInfo.format;
140
- var numValue = Number(value);
141
- var absNumber = isNaN(numValue) ? 0 : Math.abs(numValue);
111
+ const formatType = fieldInfo.format;
112
+ const numValue = Number(value);
113
+ const absNumber = isNaN(numValue) ? 0 : Math.abs(numValue);
142
114
  if (formatType === 'percent') {
143
115
  if (absNumber < 1) {
144
116
  return (absNumber * 100).toFixed(0) + '%';
@@ -148,7 +120,7 @@ export var valueFormatter = function (_a) {
148
120
  }
149
121
  }
150
122
  if (formatType === 'dollar_amount') {
151
- var formatter = new Intl.NumberFormat('en-US', {
123
+ const formatter = new Intl.NumberFormat('en-US', {
152
124
  style: 'currency',
153
125
  currency: 'USD',
154
126
  minimumFractionDigits: 0,
@@ -175,36 +147,36 @@ export var valueFormatter = function (_a) {
175
147
  formatType === 'hh_ap_pm' ||
176
148
  formatType === 'MMM_dd-MMM_dd' ||
177
149
  formatType === 'MMM_dd_hh:mm_ap_pm') {
178
- var dateValue = new Date(value);
179
- var utcDate = utcToZonedTime(dateValue, 'UTC');
180
- if (!isValid(utcDate)) {
150
+ const dateValue = new Date(value);
151
+ const utcDate = (0, date_fns_tz_1.utcToZonedTime)(dateValue, 'UTC');
152
+ if (!(0, date_fns_1.isValid)(utcDate)) {
181
153
  return 'Invalid date';
182
154
  }
183
155
  if (formatType === 'MMM_yyyy') {
184
- return format(utcDate, 'MMM yyyy');
156
+ return (0, date_fns_1.format)(utcDate, 'MMM yyyy');
185
157
  }
186
158
  if (formatType === 'MMM_dd_yyyy') {
187
- return format(utcDate, 'dd MMM yyyy');
159
+ return (0, date_fns_1.format)(utcDate, 'dd MMM yyyy');
188
160
  }
189
161
  if (formatType === 'hh_ap_pm') {
190
- return format(utcDate, 'hh:mm aa');
162
+ return (0, date_fns_1.format)(utcDate, 'hh:mm aa');
191
163
  }
192
164
  if (formatType === 'MMM_dd-MMM_dd') {
193
- var start = startOfWeek(utcDate, { weekStartsOn: 1 }); // Monday
194
- var end = endOfWeek(utcDate, { weekStartsOn: 1 }); // Sunday
195
- var formattedDate = '';
165
+ const start = (0, date_fns_1.startOfWeek)(utcDate, { weekStartsOn: 1 }); // Monday
166
+ const end = (0, date_fns_1.endOfWeek)(utcDate, { weekStartsOn: 1 }); // Sunday
167
+ let formattedDate = '';
196
168
  // Check if start and end are in the same month
197
- if (format(start, 'MMM') === format(end, 'MMM')) {
198
- formattedDate = "".concat(format(start, 'MMM dd'), " - ").concat(format(end, 'dd'));
169
+ if ((0, date_fns_1.format)(start, 'MMM') === (0, date_fns_1.format)(end, 'MMM')) {
170
+ formattedDate = `${(0, date_fns_1.format)(start, 'MMM dd')} - ${(0, date_fns_1.format)(end, 'dd')}`;
199
171
  }
200
172
  else {
201
- formattedDate = "".concat(format(start, 'MMM dd'), " - ").concat(format(end, 'MMM dd'));
173
+ formattedDate = `${(0, date_fns_1.format)(start, 'MMM dd')} - ${(0, date_fns_1.format)(end, 'MMM dd')}`;
202
174
  }
203
175
  return formattedDate;
204
176
  }
205
177
  if (formatType === 'MMM_dd_hh:mm_ap_pm') {
206
- var formatStr = utcDate.getMinutes() === 0 ? 'MMM do h a' : 'MMM do h:mm a';
207
- var formattedTime = format(utcDate, formatStr);
178
+ const formatStr = utcDate.getMinutes() === 0 ? 'MMM do h a' : 'MMM do h:mm a';
179
+ let formattedTime = (0, date_fns_1.format)(utcDate, formatStr);
208
180
  formattedTime =
209
181
  formattedTime.slice(0, -2) + formattedTime.slice(-2).toLowerCase();
210
182
  return formattedTime;
@@ -215,85 +187,81 @@ export var valueFormatter = function (_a) {
215
187
  }
216
188
  return value.toString();
217
189
  };
218
- var yAxisFields = [
190
+ exports.valueFormatter = valueFormatter;
191
+ const yAxisFields = [
219
192
  { field: 'avg_days', label: 'average days' },
220
193
  { field: 'median_days', label: 'median days' },
221
194
  ];
222
- var labelFormatter = function (name) {
195
+ const labelFormatter = (name) => {
223
196
  // return yAxisFields.filter(elem => elem.field === name)[0].label;
224
197
  return name;
225
198
  };
226
- export var ChartTooltipFrame = function (_a) {
227
- var children = _a.children, theme = _a.theme;
228
- return (_jsx("div", __assign({ style: {
229
- borderStyle: 'solid',
230
- borderColor: (theme === null || theme === void 0 ? void 0 : theme.borderColor) || '#E5E7EB',
231
- overflow: 'hidden',
232
- borderWidth: 1,
233
- background: (theme === null || theme === void 0 ? void 0 : theme.backgroundColor) || '#ffffff',
234
- borderRadius: '6px',
235
- boxShadow: '0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)',
236
- } }, { children: children })));
237
- };
238
- export var ChartTooltipRow = function (_a) {
239
- var value = _a.value, name = _a.name, color = _a.color, theme = _a.theme;
240
- return (_jsxs("div", __assign({ style: {
241
- marginRight: '24px',
242
- display: 'flex',
243
- alignItems: 'center',
244
- justifyContent: 'space-between',
245
- width: '100%',
246
- paddingTop: 2,
247
- paddingBottom: 2,
248
- } }, { children: [_jsxs("div", __assign({
249
- // className="qq-flex qq-items-center qq-space-x-2"
250
- style: {
251
- // marginLeft: '0.5rem',
252
- display: 'flex',
253
- alignItems: 'center',
254
- } }, { children: [_jsx("span", { style: {
255
- background: color,
256
- borderWidth: 2,
257
- borderColor: 'white',
258
- borderStyle: 'solid',
259
- borderColor: 'white',
260
- boxShadow: '0 1px 2px 0 rgba(0, 0, 0, 0.05)',
261
- height: '8px',
262
- width: '8px',
263
- borderRadius: 100,
264
- marginRight: 4,
265
- } }), _jsx("p", __assign({
266
- // className={twMerge(
267
- // 'font-medium tabular-nums text-right whitespace-nowrap',
268
- // 'text-[#212121] !important'
269
- // )}
270
- style: {
271
- marginTop: 0,
272
- marginBottom: 0,
273
- fontFamily: theme === null || theme === void 0 ? void 0 : theme.fontFamily,
274
- color: theme === null || theme === void 0 ? void 0 : theme.primaryTextColor,
275
- fontSize: (theme === null || theme === void 0 ? void 0 : theme.fontSizeSmall) || '14px',
276
- fontWeight: (theme === null || theme === void 0 ? void 0 : theme.fontWeightMedium) || '500',
277
- } }, { children: value }))] })), _jsx("p", __assign({ style: {
278
- marginTop: 0,
279
- marginBottom: 0,
280
- fontFamily: theme === null || theme === void 0 ? void 0 : theme.fontFamily,
281
- color: theme === null || theme === void 0 ? void 0 : theme.secondaryTextColor,
282
- textAlign: 'right',
283
- whiteSpace: 'nowrap',
284
- overflow: 'hidden',
285
- textOverflow: 'ellipsis',
286
- fontSize: (theme === null || theme === void 0 ? void 0 : theme.fontSizeSmall) || '14px',
287
- fontWeight: (theme === null || theme === void 0 ? void 0 : theme.fontWeightNormal) || '400',
288
- } }, { children: name }))] })));
289
- };
290
- var ChartTooltip = function (_a) {
291
- var active = _a.active, payload = _a.payload, label = _a.label, colors = _a.colors, valueFormatter = _a.valueFormatter, dateFormatter = _a.dateFormatter, theme = _a.theme;
199
+ const ChartTooltipFrame = ({ children, theme, }) => ((0, jsx_runtime_1.jsx)("div", { style: {
200
+ borderStyle: 'solid',
201
+ borderColor: theme?.borderColor || '#E5E7EB',
202
+ overflow: 'hidden',
203
+ borderWidth: 1,
204
+ background: theme?.backgroundColor || '#ffffff',
205
+ borderRadius: '6px',
206
+ boxShadow: '0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)',
207
+ }, children: children }));
208
+ exports.ChartTooltipFrame = ChartTooltipFrame;
209
+ const ChartTooltipRow = ({ value, name, color, theme, }) => ((0, jsx_runtime_1.jsxs)("div", { style: {
210
+ marginRight: '24px',
211
+ display: 'flex',
212
+ alignItems: 'center',
213
+ justifyContent: 'space-between',
214
+ width: '100%',
215
+ paddingTop: 2,
216
+ paddingBottom: 2,
217
+ }, children: [(0, jsx_runtime_1.jsxs)("div", {
218
+ // className="qq-flex qq-items-center qq-space-x-2"
219
+ style: {
220
+ // marginLeft: '0.5rem',
221
+ display: 'flex',
222
+ alignItems: 'center',
223
+ }, children: [(0, jsx_runtime_1.jsx)("span", { style: {
224
+ background: color,
225
+ borderWidth: 2,
226
+ borderColor: 'white',
227
+ borderStyle: 'solid',
228
+ borderColor: 'white',
229
+ boxShadow: '0 1px 2px 0 rgba(0, 0, 0, 0.05)',
230
+ height: '8px',
231
+ width: '8px',
232
+ borderRadius: 100,
233
+ marginRight: 4,
234
+ } }), (0, jsx_runtime_1.jsx)("p", {
235
+ // className={twMerge(
236
+ // 'font-medium tabular-nums text-right whitespace-nowrap',
237
+ // 'text-[#212121] !important'
238
+ // )}
239
+ style: {
240
+ marginTop: 0,
241
+ marginBottom: 0,
242
+ fontFamily: theme?.fontFamily,
243
+ color: theme?.primaryTextColor,
244
+ fontSize: theme?.fontSizeSmall || '14px',
245
+ fontWeight: theme?.fontWeightMedium || '500',
246
+ }, children: value })] }), (0, jsx_runtime_1.jsx)("p", { style: {
247
+ marginTop: 0,
248
+ marginBottom: 0,
249
+ fontFamily: theme?.fontFamily,
250
+ color: theme?.secondaryTextColor,
251
+ textAlign: 'right',
252
+ whiteSpace: 'nowrap',
253
+ overflow: 'hidden',
254
+ textOverflow: 'ellipsis',
255
+ fontSize: theme?.fontSizeSmall || '14px',
256
+ fontWeight: theme?.fontWeightNormal || '400',
257
+ }, children: name })] }));
258
+ exports.ChartTooltipRow = ChartTooltipRow;
259
+ const ChartTooltip = ({ active, payload, label, colors, valueFormatter, dateFormatter, theme, }) => {
292
260
  if (active && payload) {
293
- return (_jsxs(ChartTooltipFrame, __assign({ theme: theme }, { children: [_jsx("div", __assign({ style: {
261
+ return ((0, jsx_runtime_1.jsxs)(exports.ChartTooltipFrame, { theme: theme, children: [(0, jsx_runtime_1.jsx)("div", { style: {
294
262
  borderStyle: 'solid',
295
- borderBottomColor: (theme === null || theme === void 0 ? void 0 : theme.borderColor) || '#E5E7EB',
296
- background: (theme === null || theme === void 0 ? void 0 : theme.backgroundColor) || 'white',
263
+ borderBottomColor: theme?.borderColor || '#E5E7EB',
264
+ background: theme?.backgroundColor || 'white',
297
265
  borderTop: 'none',
298
266
  borderLeft: 'none',
299
267
  borderRight: 'none',
@@ -304,21 +272,21 @@ var ChartTooltip = function (_a) {
304
272
  paddingRight: '16px',
305
273
  paddingTop: '8px',
306
274
  paddingBottom: '8px',
307
- } }, { children: _jsx("p", __assign({ style: {
275
+ }, children: (0, jsx_runtime_1.jsx)("p", { style: {
308
276
  textAlign: 'left',
309
277
  marginTop: 0,
310
278
  marginBottom: 0,
311
- fontFamily: theme === null || theme === void 0 ? void 0 : theme.fontFamily,
312
- color: theme === null || theme === void 0 ? void 0 : theme.primaryTextColor,
313
- fontSize: (theme === null || theme === void 0 ? void 0 : theme.fontSizeSmall) || '14px',
314
- fontWeight: (theme === null || theme === void 0 ? void 0 : theme.boldFontWeight) || '500',
279
+ fontFamily: theme?.fontFamily,
280
+ color: theme?.primaryTextColor,
281
+ fontSize: theme?.fontSizeSmall || '14px',
282
+ fontWeight: theme?.boldFontWeight || '500',
315
283
  paddingTop: 2,
316
284
  paddingBottom: 2,
317
- } }, { children: !isNaN(new Date(label)) && dateFormatter
285
+ }, children: !isNaN(new Date(label)) && dateFormatter
318
286
  ? dateFormatter(label)
319
287
  : !isNaN(new Date(label))
320
- ? format(new Date(label), 'MMM yyyy')
321
- : label })) })), _jsx("div", __assign({
288
+ ? (0, date_fns_1.format)(new Date(label), 'MMM yyyy')
289
+ : label }) }), (0, jsx_runtime_1.jsx)("div", {
322
290
  // className="qq-px-4 qq-space-y-1 qq-py-2 qq-px-4"
323
291
  style: {
324
292
  paddingRight: '16px',
@@ -326,209 +294,201 @@ var ChartTooltip = function (_a) {
326
294
  paddingTop: '8px',
327
295
  paddingBottom: '8px',
328
296
  // marginTop: '0.25rem',
329
- } }, { children: payload.map(function (_a, idx) {
330
- var value = _a.value, name = _a.name;
331
- return (_jsx(ChartTooltipRow, { value: valueFormatter(value), name: labelFormatter(name),
332
- // color={categoryColors.get(name) ?? BaseColors.Blue}
333
- color: colors[idx], theme: theme }, "id-".concat(idx)));
334
- }) }))] })));
297
+ }, children: payload.map(({ value, name }, idx) => ((0, jsx_runtime_1.jsx)(exports.ChartTooltipRow, { value: valueFormatter(value), name: labelFormatter(name),
298
+ // color={categoryColors.get(name) ?? BaseColors.Blue}
299
+ color: colors[idx], theme: theme }, `id-${idx}`))) })] }));
335
300
  }
336
301
  return null;
337
302
  };
338
303
  // @ts-ignore
339
304
  function sumByKey(arr, key) {
340
305
  // @ts-ignore
341
- return arr.reduce(function (acc, cur) {
342
- var val = parseInt(cur[key], 10);
306
+ return arr.reduce((acc, cur) => {
307
+ const val = parseInt(cur[key], 10);
343
308
  return isNaN(val) ? acc : acc + val;
344
309
  }, 0);
345
310
  }
346
- var Chart = function (_a) {
347
- var chartId = _a.chartId, config = _a.config, colors = _a.colors, containerStyle = _a.containerStyle, dateFilter = _a.dateFilter, query = _a.query;
348
- var _b = useContext(DashboardContext), dispatch = _b.dispatch, dashboard = _b.dashboard;
349
- var dashboardFilters = useContext(DashboardFiltersContext).dashboardFilters;
350
- var _c = useContext(ClientContext), client = _c[0], _ = _c[1];
351
- var theme = useContext(ThemeContext)[0];
352
- var chartColors = useMemo(function () {
353
- return (colors === null || colors === void 0 ? void 0 : colors.length) ? colors : ['#6269E9', '#E14F62'];
311
+ const Chart = ({ chartId, config, colors, containerStyle, dateFilter, query, }) => {
312
+ const { dispatch, dashboard } = (0, react_1.useContext)(Context_1.DashboardContext);
313
+ const { dashboardFilters } = (0, react_1.useContext)(Context_1.DashboardFiltersContext);
314
+ const [client, _] = (0, react_1.useContext)(Context_1.ClientContext);
315
+ const [theme] = (0, react_1.useContext)(Context_1.ThemeContext);
316
+ const chartColors = (0, react_1.useMemo)(() => {
317
+ return colors?.length ? colors : ['#6269E9', '#E14F62'];
354
318
  }, [colors]);
355
- return (_jsx(ChartUpdater, { config: config, dispatch: dispatch, dashboard: dashboard, chartId: chartId, containerStyle: containerStyle, colors: chartColors, client: client, theme: theme, isDateFilter: dateFilter, dashboardFilters: dashboardFilters, query: query }));
319
+ return ((0, jsx_runtime_1.jsx)(ChartUpdater, { config: config, dispatch: dispatch, dashboard: dashboard, chartId: chartId, containerStyle: containerStyle, colors: chartColors, client: client, theme: theme, isDateFilter: dateFilter, dashboardFilters: dashboardFilters, query: query }));
356
320
  };
357
- var ChartUpdater = function (_a) {
358
- var _b, _c, _d, _e, _f;
359
- var colors = _a.colors, chartId = _a.chartId, config = _a.config, containerStyle = _a.containerStyle, dashboard = _a.dashboard, dispatch = _a.dispatch, client = _a.client, theme = _a.theme, isDateFilter = _a.isDateFilter, dashboardFilters = _a.dashboardFilters, query = _a.query;
360
- var _g = useState(true), loading = _g[0], setLoading = _g[1];
321
+ const ChartUpdater = ({ colors, chartId, config, containerStyle, dashboard, dispatch, client, theme, isDateFilter, dashboardFilters, query, }) => {
322
+ const [loading, setLoading] = (0, react_1.useState)(true);
361
323
  // console.log('chartConfig:', chartConfig);
362
324
  // console.log('chartConfig.rows:', chartConfig.rows);
363
325
  // console.log('chartConfig.xAxisField:', chartConfig.xAxisField);
364
- useEffect(function () {
326
+ (0, react_1.useEffect)(() => {
365
327
  if (isDateFilter && !dateFilter) {
366
328
  return;
367
329
  }
368
- var isSubscribed = true;
369
- function getChartOptions() {
370
- return __awaiter(this, void 0, void 0, function () {
371
- var publicKey, customerId, environment, queryEndpoint, queryHeaders, withCredentials, dateFilter_1, resp, resp, e_1;
372
- return __generator(this, function (_a) {
373
- switch (_a.label) {
374
- case 0:
375
- if (!isSubscribed) return [3 /*break*/, 7];
376
- publicKey = client.publicKey, customerId = client.customerId, environment = client.environment, queryEndpoint = client.queryEndpoint, queryHeaders = client.queryHeaders, withCredentials = client.withCredentials;
377
- //queryEndpoint = undefined;
378
- setLoading(true);
379
- _a.label = 1;
380
- case 1:
381
- _a.trys.push([1, 6, , 7]);
382
- if (!queryEndpoint) return [3 /*break*/, 3];
383
- // const resp = await axios.get(
384
- // 'https://quill-344421.uc.r.appspot.com/selfhostitem',
385
- // {
386
- // params: {
387
- // id: chartId,
388
- // orgId: customerId,
389
- // publicKey: publicKey,
390
- // },
391
- // environment: environment || undefined,
392
- // }
393
- // );
394
- if (dashboardFilters['date_range'] && dashboard[chartId]) {
395
- dateFilter_1 = dashboardFilters['date_range'];
396
- dateFilter_1.dateField = dashboard[chartId].dateField;
397
- }
398
- return [4 /*yield*/, axios.post(queryEndpoint, {
399
- metadata: {
400
- id: chartId,
401
- task: 'item',
402
- filters: __assign(__assign({}, Object.entries(dashboardFilters)
403
- .filter(function (_a) {
404
- var key = _a[0];
405
- return key !== 'date_range';
406
- })
407
- .map(function (_a) {
408
- var value = _a[1];
409
- return value;
410
- })), { dateFilter: dateFilter }),
411
- },
412
- }, { headers: queryHeaders, withCredentials: withCredentials })];
413
- case 2:
414
- resp = _a.sent();
415
- if (resp.data) {
416
- setLoading(false);
417
- dispatch({
418
- type: 'UPDATE_DASHBOARD_ITEM',
419
- id: chartId,
420
- data: __assign({}, resp.data),
421
- });
422
- }
423
- return [3 /*break*/, 5];
424
- case 3: return [4 /*yield*/, axios.get('https://quill-344421.uc.r.appspot.com/item', {
425
- params: {
426
- id: chartId,
427
- orgId: customerId,
428
- publicKey: publicKey,
429
- filters: Object.keys(dashboardFilters).map(function (key) { return dashboardFilters[key]; }),
430
- // startDate:
431
- // dateFilter &&
432
- // dateFilter.startDate &&
433
- // dateFilter.startDate.toISOString(),
434
- // endDate:
435
- // dateFilter &&
436
- // dateFilter.endDate &&
437
- // dateFilter.endDate.toISOString(),
330
+ let isSubscribed = true;
331
+ async function getChartOptions() {
332
+ if (isSubscribed) {
333
+ const { publicKey, customerId, environment, queryEndpoint, queryHeaders, withCredentials, } = client;
334
+ //queryEndpoint = undefined;
335
+ setLoading(true);
336
+ try {
337
+ // if self-hosting option, only get metadata and query
338
+ if (queryEndpoint) {
339
+ // const resp = await axios.get(
340
+ // 'https://quill-344421.uc.r.appspot.com/selfhostitem',
341
+ // {
342
+ // params: {
343
+ // id: chartId,
344
+ // orgId: customerId,
345
+ // publicKey: publicKey,
346
+ // },
347
+ // environment: environment || undefined,
348
+ // }
349
+ // );
350
+ if (dashboardFilters['date_range'] && dashboard[chartId]) {
351
+ const dateFilter = dashboardFilters['date_range'];
352
+ dateFilter.dateField = dashboard[chartId].dateField;
353
+ }
354
+ const resp = await axios_1.default.post(queryEndpoint, {
355
+ metadata: {
356
+ id: chartId,
357
+ task: 'item',
358
+ filters: {
359
+ ...Object.entries(dashboardFilters)
360
+ .filter(([key]) => key !== 'date_range')
361
+ .map(([, value]) => value),
362
+ dateFilter,
438
363
  },
439
- headers: {
440
- environment: environment || undefined,
364
+ },
365
+ }, { headers: queryHeaders, withCredentials });
366
+ if (resp.data) {
367
+ setLoading(false);
368
+ dispatch({
369
+ type: 'UPDATE_DASHBOARD_ITEM',
370
+ id: chartId,
371
+ data: {
372
+ ...resp.data,
441
373
  },
442
- })];
443
- case 4:
444
- resp = _a.sent();
445
- // console.log('RESP: ', resp.data);
446
- if (resp.data) {
447
- setLoading(false);
448
- dispatch({
449
- type: 'UPDATE_DASHBOARD_ITEM',
450
- id: chartId,
451
- data: __assign({}, resp.data),
452
- });
453
- }
454
- _a.label = 5;
455
- case 5: return [3 /*break*/, 7];
456
- case 6:
457
- e_1 = _a.sent();
458
- console.log('Error fetching chart: ', e_1);
374
+ });
375
+ }
376
+ }
377
+ else {
378
+ const resp = await axios_1.default.get('https://quill-344421.uc.r.appspot.com/item', {
379
+ params: {
380
+ id: chartId,
381
+ orgId: customerId,
382
+ publicKey: publicKey,
383
+ filters: Object.keys(dashboardFilters).map(key => dashboardFilters[key]),
384
+ // startDate:
385
+ // dateFilter &&
386
+ // dateFilter.startDate &&
387
+ // dateFilter.startDate.toISOString(),
388
+ // endDate:
389
+ // dateFilter &&
390
+ // dateFilter.endDate &&
391
+ // dateFilter.endDate.toISOString(),
392
+ },
393
+ headers: {
394
+ environment: environment || undefined,
395
+ },
396
+ });
397
+ // console.log('RESP: ', resp.data);
398
+ if (resp.data) {
459
399
  setLoading(false);
460
- return [3 /*break*/, 7];
461
- case 7: return [2 /*return*/];
400
+ dispatch({
401
+ type: 'UPDATE_DASHBOARD_ITEM',
402
+ id: chartId,
403
+ data: { ...resp.data },
404
+ });
405
+ }
462
406
  }
463
- });
464
- });
407
+ }
408
+ catch (e) {
409
+ console.log('Error fetching chart: ', e);
410
+ setLoading(false);
411
+ }
412
+ }
465
413
  }
466
414
  if (config) {
467
415
  setLoading(false);
468
416
  return;
469
417
  }
470
418
  getChartOptions(); //when wouldn't you run this????? saw if statements before that implied you might not run this sometimes
471
- return function () {
419
+ return () => {
472
420
  isSubscribed = false;
473
421
  };
474
422
  }, [dashboardFilters]);
475
423
  // console.log('DASHBOARD FILTERS: ', dashboardFilters);
476
- useEffect(function () {
424
+ (0, react_1.useEffect)(() => {
477
425
  if (config) {
478
426
  dispatch({
479
427
  type: 'UPDATE_DASHBOARD_ITEM',
480
428
  id: chartId,
481
- data: __assign({}, config),
429
+ data: { ...config },
482
430
  });
483
431
  }
484
432
  }, [config]);
485
- var dateFilter = Object.values(dashboardFilters).find(function (filter) { return filter && filter.filterType === 'DATE_RANGE'; });
433
+ const dateFilter = Object.values(dashboardFilters).find(filter => filter && filter.filterType === 'DATE_RANGE');
486
434
  if (!dashboard[chartId] || loading) {
487
- return (_jsx("div", __assign({
435
+ return ((0, jsx_runtime_1.jsx)("div", {
488
436
  // className="flex flex-col flex-1 h-[100%]"
489
- style: __assign(__assign({}, containerStyle), { marginLeft: 25, marginRight: 25, boxSizing: 'content-box', height: '100%', display: 'flex', flexDirection: 'column', flex: 1 }) }, { children: _jsx("div", __assign({ style: {
490
- height: (containerStyle === null || containerStyle === void 0 ? void 0 : containerStyle.height) || 300,
437
+ style: {
438
+ ...containerStyle,
439
+ marginLeft: 25,
440
+ marginRight: 25,
441
+ boxSizing: 'content-box',
442
+ height: '100%',
443
+ display: 'flex',
444
+ flexDirection: 'column',
445
+ flex: 1,
446
+ }, children: (0, jsx_runtime_1.jsx)("div", { style: {
447
+ height: containerStyle?.height || 300,
491
448
  width: '100%',
492
449
  boxSizing: 'content-box',
493
- } }, { children: _jsx(Skeleton, { count: 1,
450
+ }, children: (0, jsx_runtime_1.jsx)(react_loading_skeleton_1.default, { count: 1,
494
451
  // height={containerStyle?.height}
495
- height: (containerStyle === null || containerStyle === void 0 ? void 0 : containerStyle.height) && (containerStyle === null || containerStyle === void 0 ? void 0 : containerStyle.marginTop)
496
- ? (containerStyle === null || containerStyle === void 0 ? void 0 : containerStyle.height) + (containerStyle === null || containerStyle === void 0 ? void 0 : containerStyle.marginTop)
497
- : (containerStyle === null || containerStyle === void 0 ? void 0 : containerStyle.height)
498
- ? containerStyle === null || containerStyle === void 0 ? void 0 : containerStyle.height
452
+ height: containerStyle?.height && containerStyle?.marginTop
453
+ ? containerStyle?.height + containerStyle?.marginTop
454
+ : containerStyle?.height
455
+ ? containerStyle?.height
499
456
  : 300, borderRadius: 8,
500
457
  // highlightColor="#F7F7F8"
501
458
  highlightColor: "#FDFDFD",
502
459
  // baseColor="#F3F4F6"
503
- baseColor: "#F9F9FA", width: "100%" }) })) })));
460
+ baseColor: "#F9F9FA", width: "100%" }) }) }));
504
461
  }
505
- if (((_b = dashboard[chartId]) === null || _b === void 0 ? void 0 : _b.chartType) === 'pie') {
506
- var _h = dashboard[chartId], xAxisField = _h.xAxisField, yAxisFields_1 = _h.yAxisFields;
507
- return (_jsx(PieChart
462
+ if (dashboard[chartId]?.chartType === 'pie') {
463
+ const { xAxisField, yAxisFields } = dashboard[chartId];
464
+ return ((0, jsx_runtime_1.jsx)(PieChart_1.default
508
465
  // @ts-ignore
509
466
  , {
510
467
  // @ts-ignore
511
- containerStyle: containerStyle, data: dashboard[chartId].rows.map(function (row) {
512
- return __assign(__assign({}, row), { count: parseInt(row[yAxisFields_1[0].field]) /
513
- sumByKey(dashboard[chartId].rows, yAxisFields_1[0].field) });
514
- }), category: yAxisFields_1[0].field, index: xAxisField, colors: colors, theme: theme }));
468
+ containerStyle: containerStyle, data: dashboard[chartId].rows.map(row => {
469
+ return {
470
+ ...row,
471
+ count: parseInt(row[yAxisFields[0].field]) /
472
+ sumByKey(dashboard[chartId].rows, yAxisFields[0].field),
473
+ };
474
+ }), category: yAxisFields[0].field, index: xAxisField, colors: colors, theme: theme }));
515
475
  }
516
- if (((_c = dashboard[chartId]) === null || _c === void 0 ? void 0 : _c.chartType) === 'table') {
517
- return (_jsx(TableChart, { data: dashboard[chartId].rows, yAxisFields: dashboard[chartId].yAxisFields, theme: theme, containerStyle: containerStyle }));
476
+ if (dashboard[chartId]?.chartType === 'table') {
477
+ return ((0, jsx_runtime_1.jsx)(TableChart_1.default, { data: dashboard[chartId].rows, yAxisFields: dashboard[chartId].yAxisFields, theme: theme, containerStyle: containerStyle }));
518
478
  }
519
- if (((_d = dashboard[chartId]) === null || _d === void 0 ? void 0 : _d.chartType) === 'bar') {
520
- return (_jsx(BarList, { data: dashboard[chartId].rows, theme: theme, yAxisFields: dashboard[chartId].yAxisFields, xAxisFormat: dashboard[chartId].xAxisFormat, colors: colors, xAxisField: dashboard[chartId].xAxisField, containerStyle: containerStyle }));
479
+ if (dashboard[chartId]?.chartType === 'bar') {
480
+ return ((0, jsx_runtime_1.jsx)(BarList_1.default, { data: dashboard[chartId].rows, theme: theme, yAxisFields: dashboard[chartId].yAxisFields, xAxisFormat: dashboard[chartId].xAxisFormat, colors: colors, xAxisField: dashboard[chartId].xAxisField, containerStyle: containerStyle }));
521
481
  }
522
- if (((_e = dashboard[chartId]) === null || _e === void 0 ? void 0 : _e.chartType) === 'column') {
523
- return (_jsx(BarChart, { colors: colors, theme: theme, yAxisFields: dashboard[chartId].yAxisFields,
482
+ if (dashboard[chartId]?.chartType === 'column') {
483
+ return ((0, jsx_runtime_1.jsx)(BarChart, { colors: colors, theme: theme, yAxisFields: dashboard[chartId].yAxisFields,
524
484
  // @ts-ignore
525
485
  data: dashboard[chartId].rows, xAxisField: dashboard[chartId].xAxisField, xAxisLabel: dashboard[chartId].xAxisLabel, xAxisFormat: dashboard[chartId].xAxisFormat, containerStyle: containerStyle }));
526
486
  }
527
- if (((_f = dashboard[chartId]) === null || _f === void 0 ? void 0 : _f.chartType) === 'metric') {
528
- return (_jsx("div", __assign({ style: {
529
- fontFamily: theme === null || theme === void 0 ? void 0 : theme.fontFamily,
487
+ if (dashboard[chartId]?.chartType === 'metric') {
488
+ return ((0, jsx_runtime_1.jsx)("div", { style: {
489
+ fontFamily: theme?.fontFamily,
530
490
  fontSize: 32,
531
- color: theme === null || theme === void 0 ? void 0 : theme.primaryTextColor,
491
+ color: theme?.primaryTextColor,
532
492
  fontWeight: '600',
533
493
  textOverflow: 'ellipsis',
534
494
  margin: 0,
@@ -542,12 +502,12 @@ var ChartUpdater = function (_a) {
542
502
  maxWidth: '100%',
543
503
  textAlign: 'left',
544
504
  overflow: 'hidden',
545
- height: (containerStyle === null || containerStyle === void 0 ? void 0 : containerStyle.height) || '100%',
505
+ height: containerStyle?.height || '100%',
546
506
  display: 'flex',
547
507
  flexDirection: 'column',
548
508
  // background: 'red',
549
- } }, { children: dashboard[chartId].rows.length > 0 &&
550
- valueFormatter({
509
+ }, children: dashboard[chartId].rows.length > 0 &&
510
+ (0, exports.valueFormatter)({
551
511
  value: dashboard[chartId].rows[0][dashboard[chartId].xAxisField],
552
512
  field: dashboard[chartId].xAxisField,
553
513
  fields: [
@@ -556,9 +516,9 @@ var ChartUpdater = function (_a) {
556
516
  format: dashboard[chartId].xAxisFormat,
557
517
  },
558
518
  ],
559
- }) })));
519
+ }) }));
560
520
  }
561
- return (_jsx(LineChart, { colors: colors, yAxisFields: dashboard[chartId].yAxisFields,
521
+ return ((0, jsx_runtime_1.jsx)(LineChart, { colors: colors, yAxisFields: dashboard[chartId].yAxisFields,
562
522
  // @ts-ignore
563
523
  data: dashboard[chartId].rows, xAxisField: dashboard[chartId].xAxisField, xAxisLabel: dashboard[chartId].xAxisLabel, xAxisFormat: dashboard[chartId].xAxisFormat, containerStyle: containerStyle, theme: theme }));
564
524
  };
@@ -594,13 +554,13 @@ function formatNumber(num, label) {
594
554
  // return [adjustedMin, adjustedMax];
595
555
  // }
596
556
  function getDomain(data, fields) {
597
- var fieldsArray = fields.map(function (elem) { return elem.field; });
598
- var numericValues = [];
599
- data.forEach(function (item) {
600
- fieldsArray.forEach(function (field) {
601
- var value = item[field];
557
+ const fieldsArray = fields.map(elem => elem.field);
558
+ const numericValues = [];
559
+ data.forEach(item => {
560
+ fieldsArray.forEach(field => {
561
+ let value = item[field];
602
562
  // Try to cast the value to a number
603
- var numericValue = parseFloat(value);
563
+ const numericValue = parseFloat(value);
604
564
  if (!isNaN(numericValue)) {
605
565
  value = numericValue;
606
566
  }
@@ -609,29 +569,36 @@ function getDomain(data, fields) {
609
569
  }
610
570
  });
611
571
  });
612
- var _a = numericValues.reduce(function (_a, value) {
613
- var min = _a[0], max = _a[1];
614
- return [Math.min(min, value), Math.max(max, value)];
615
- }, [Infinity, -Infinity]), minValue = _a[0], maxValue = _a[1];
616
- var adjustedMin = Math.min(minValue, 0);
617
- var padding = Math.round(0.2 * (maxValue - minValue));
618
- var adjustedMax = maxValue + padding;
572
+ const [minValue, maxValue] = numericValues.reduce(([min, max], value) => [Math.min(min, value), Math.max(max, value)], [Infinity, -Infinity]);
573
+ const adjustedMin = Math.min(minValue, 0);
574
+ const padding = Math.round(0.2 * (maxValue - minValue));
575
+ const adjustedMax = maxValue + padding;
619
576
  return [adjustedMin, adjustedMax];
620
577
  }
621
- var CustomizedTick = function (_a) {
622
- var x = _a.x, y = _a.y, payload = _a.payload, theme = _a.theme;
578
+ const CustomizedTick = ({ x, y, payload, theme, }) => {
623
579
  // const { x, y, payload } = props;
624
- var maxLength = 10;
625
- var value = payload.value;
626
- var truncatedValue = value.length > maxLength ? value.substring(0, maxLength) + '...' : value;
627
- return (_jsx("text", __assign({ xlinkTitle: value, fill: theme === null || theme === void 0 ? void 0 : theme.chartLabelColor, fontSize: 12, x: x, y: y + 15, width: 30, textAnchor: "middle" }, { children: truncatedValue })));
580
+ const maxLength = 10;
581
+ const value = payload.value;
582
+ const truncatedValue = value.length > maxLength ? value.substring(0, maxLength) + '...' : value;
583
+ return ((0, jsx_runtime_1.jsx)("text", { xlinkTitle: value, fill: theme?.chartLabelColor, fontSize: 12, x: x, y: y + 15, width: 30, textAnchor: "middle", children: truncatedValue }));
628
584
  };
629
- function BarChart(_a) {
630
- var colors = _a.colors, yAxisFields = _a.yAxisFields, data = _a.data, containerStyle = _a.containerStyle, xAxisField = _a.xAxisField, xAxisLabel = _a.xAxisLabel, xAxisFormat = _a.xAxisFormat, theme = _a.theme;
631
- var newColors = findComplementaryAndAnalogousColors(colors[0], colors[1]);
632
- return (_jsx("div", __assign({ style: __assign(__assign({}, containerStyle), { boxSizing: 'content-box' }) }, { children: _jsx(ResponsiveContainer, __assign({ width: "100%", height: '100%' }, { children: _jsxs(ReChartsBarChart, __assign({ data: data,
585
+ function BarChart({ colors, yAxisFields, data, containerStyle, xAxisField, xAxisLabel, xAxisFormat, theme, }) {
586
+ const newColors = (0, PieChart_1.findComplementaryAndAnalogousColors)(colors[0], colors[1]);
587
+ return ((0, jsx_runtime_1.jsx)("div", { style: {
588
+ ...containerStyle,
589
+ boxSizing: 'content-box',
590
+ // display: 'flex',
591
+ // flexDirection: 'column',
592
+ // flex: 1,
593
+ // height: '100%',
594
+ // minHeight: 400,
595
+ // minWidth: 400,
596
+ // height: 400,
597
+ // width: 800,
598
+ // width: '100%',
599
+ }, children: (0, jsx_runtime_1.jsx)(recharts_1.ResponsiveContainer, { width: "100%", height: '100%', children: (0, jsx_runtime_1.jsxs)(recharts_1.BarChart, { data: data,
633
600
  // stackOffset={'none'}
634
- layout: 'horizontal' }, { children: [_jsx(CartesianGrid, { strokeDasharray: "3 3", horizontal: true, vertical: false }), _jsx(YAxis
601
+ layout: 'horizontal', children: [(0, jsx_runtime_1.jsx)(recharts_1.CartesianGrid, { strokeDasharray: "3 3", horizontal: true, vertical: false }), (0, jsx_runtime_1.jsx)(recharts_1.YAxis
635
602
  // width={56}
636
603
  // width={30}
637
604
  // textAnchor="start"
@@ -644,13 +611,11 @@ function BarChart(_a) {
644
611
  tick: { transform: 'translate(-3, 0)' }, style: {
645
612
  fontSize: '12px',
646
613
  fontFamily: theme.chartLabelFontFamily,
647
- }, tickFormatter: function (tick) {
648
- return valueFormatter({
649
- value: tick,
650
- field: yAxisFields[0].field || 'what',
651
- fields: yAxisFields,
652
- });
653
- } }), _jsx(XAxis, { hide: false, dataKey: xAxisField,
614
+ }, tickFormatter: tick => (0, exports.valueFormatter)({
615
+ value: tick,
616
+ field: yAxisFields[0].field || 'what',
617
+ fields: yAxisFields,
618
+ }) }), (0, jsx_runtime_1.jsx)(recharts_1.XAxis, { hide: false, dataKey: xAxisField,
654
619
  // interval="preserveStartEnd"
655
620
  tick: { transform: 'translate(0, 6)' },
656
621
  //padding between labels and axis
@@ -659,40 +624,32 @@ function BarChart(_a) {
659
624
  // TODO: generalize
660
625
  fontFamily: theme.chartLabelFontFamily,
661
626
  marginTop: '20px',
662
- }, tickLine: false, axisLine: false, tickFormatter: function (tick) {
663
- return valueFormatter({
664
- value: tick,
665
- field: xAxisField,
666
- fields: [{ field: xAxisField, format: xAxisFormat }],
667
- });
668
- } }), _jsx(Tooltip, { wrapperStyle: { outline: 'none' }, isAnimationActive: false, cursor: { fill: '#d1d5db', opacity: '0.15' }, content: function (_a) {
669
- var active = _a.active, payload = _a.payload, label = _a.label;
670
- return (_jsx(ChartTooltip, { theme: theme, active: active, payload: payload, label: label, dateFormatter: function (value) {
671
- return valueFormatter({
672
- value: value,
673
- field: xAxisField,
674
- fields: [{ field: xAxisField, format: xAxisFormat }],
675
- });
676
- }, valueFormatter: function (value) {
677
- return valueFormatter({
678
- value: value,
679
- field: payload[0].dataKey,
680
- fields: yAxisFields,
681
- });
682
- }, colors: newColors }));
683
- }, position: { y: 0 } }), yAxisFields.map(function (elem, index) { return (_jsx(Bar, { name: elem.label, dataKey: elem.field, type: "linear",
627
+ }, tickLine: false, axisLine: false, tickFormatter: tick => (0, exports.valueFormatter)({
628
+ value: tick,
629
+ field: xAxisField,
630
+ fields: [{ field: xAxisField, format: xAxisFormat }],
631
+ }) }), (0, jsx_runtime_1.jsx)(recharts_1.Tooltip, { wrapperStyle: { outline: 'none' }, isAnimationActive: false, cursor: { fill: '#d1d5db', opacity: '0.15' }, content: ({ active, payload, label }) => {
632
+ return ((0, jsx_runtime_1.jsx)(ChartTooltip, { theme: theme, active: active, payload: payload, label: label, dateFormatter: value => (0, exports.valueFormatter)({
633
+ value,
634
+ field: xAxisField,
635
+ fields: [{ field: xAxisField, format: xAxisFormat }],
636
+ }), valueFormatter: value => (0, exports.valueFormatter)({
637
+ value,
638
+ field: payload[0].dataKey,
639
+ fields: yAxisFields,
640
+ }), colors: newColors }));
641
+ }, position: { y: 0 } }), yAxisFields.map((elem, index) => ((0, jsx_runtime_1.jsx)(recharts_1.Bar, { name: elem.label, dataKey: elem.field, type: "linear",
684
642
  // stackId={stack || relative ? "a" : undefined}
685
643
  fill: newColors[index],
686
644
  // barSize={20}
687
- isAnimationActive: true }, elem.field)); })] })) })) })));
645
+ isAnimationActive: true }, elem.field)))] }) }) }));
688
646
  }
689
- function LineChart(_a) {
690
- var colors = _a.colors, yAxisFields = _a.yAxisFields, data = _a.data, containerStyle = _a.containerStyle, xAxisField = _a.xAxisField, xAxisLabel = _a.xAxisLabel, xAxisFormat = _a.xAxisFormat, theme = _a.theme;
647
+ function LineChart({ colors, yAxisFields, data, containerStyle, xAxisField, xAxisLabel, xAxisFormat, theme, }) {
691
648
  // console.log('CONTAINER: ', containerStyle);
692
649
  if (!yAxisFields || !yAxisFields.length) {
693
650
  return null;
694
651
  }
695
- return (_jsx("div", __assign({ style: __assign(__assign({}, containerStyle), { boxSizing: 'content-box' }) }, { children: _jsx(ResponsiveContainer, __assign({ width: "100%", height: '100%' }, { children: _jsxs(ReChartsAreaChart, __assign({ data: data }, { children: [_jsx(CartesianGrid, { strokeDasharray: "3 3", horizontal: true, vertical: false }), _jsx(XAxis
652
+ return ((0, jsx_runtime_1.jsx)("div", { style: { ...containerStyle, boxSizing: 'content-box' }, children: (0, jsx_runtime_1.jsx)(recharts_1.ResponsiveContainer, { width: "100%", height: '100%', children: (0, jsx_runtime_1.jsxs)(recharts_1.ComposedChart, { data: data, children: [(0, jsx_runtime_1.jsx)(recharts_1.CartesianGrid, { strokeDasharray: "3 3", horizontal: true, vertical: false }), (0, jsx_runtime_1.jsx)(recharts_1.XAxis
696
653
  // hide={!showXAxis}
697
654
  , {
698
655
  // hide={!showXAxis}
@@ -704,21 +661,19 @@ function LineChart(_a) {
704
661
  // }
705
662
  style: {
706
663
  fontSize: '12px',
707
- fontFamily: (theme === null || theme === void 0 ? void 0 : theme.chartLabelFontFamily) ||
708
- (theme === null || theme === void 0 ? void 0 : theme.fontFamily) ||
664
+ fontFamily: theme?.chartLabelFontFamily ||
665
+ theme?.fontFamily ||
709
666
  'Inter; Helvetica',
710
- color: (theme === null || theme === void 0 ? void 0 : theme.chartLabelColor) || '#666666',
667
+ color: theme?.chartLabelColor || '#666666',
711
668
  },
712
669
  // interval="preserveStartEnd"
713
670
  interval: "preserveStartEnd",
714
671
  // interval={0}
715
- tickLine: false, axisLine: false, padding: { left: 10, right: 10 }, minTickGap: 5, tickFormatter: function (tick) {
716
- return valueFormatter({
717
- value: tick,
718
- field: xAxisField,
719
- fields: [{ field: xAxisField, format: xAxisFormat }],
720
- });
721
- } }), _jsx(YAxis
672
+ tickLine: false, axisLine: false, padding: { left: 10, right: 10 }, minTickGap: 5, tickFormatter: tick => (0, exports.valueFormatter)({
673
+ value: tick,
674
+ field: xAxisField,
675
+ fields: [{ field: xAxisField, format: xAxisFormat }],
676
+ }) }), (0, jsx_runtime_1.jsx)(recharts_1.YAxis
722
677
  // textAnchor="left"
723
678
  // tickMargin={0}
724
679
  // width={56}
@@ -734,39 +689,34 @@ function LineChart(_a) {
734
689
  // domain={yAxisDomain as AxisDomain}
735
690
  domain: getDomain(data, yAxisFields), tick: { transform: 'translate(-3, 0)' }, style: {
736
691
  fontSize: '12px',
737
- fontFamily: (theme === null || theme === void 0 ? void 0 : theme.chartLabelFontFamily) ||
738
- (theme === null || theme === void 0 ? void 0 : theme.fontFamily) ||
692
+ fontFamily: theme?.chartLabelFontFamily ||
693
+ theme?.fontFamily ||
739
694
  'Inter; Helvetica',
740
- color: (theme === null || theme === void 0 ? void 0 : theme.chartLabelColor) || '#666666',
741
- }, tickFormatter: function (value) {
742
- return valueFormatter({
743
- value: value,
744
- field: yAxisFields[0].field,
745
- fields: __spreadArray(__spreadArray([], yAxisFields, true), [
746
- { field: xAxisField, format: xAxisFormat },
747
- ], false),
748
- });
749
- } }), _jsx(Tooltip, { wrapperStyle: { outline: 'none' }, isAnimationActive: false, cursor: { stroke: '#d1d5db', strokeWidth: 1 }, content: function (_a) {
750
- var active = _a.active, payload = _a.payload, label = _a.label;
751
- return (_jsx(ChartTooltip, { active: active, payload: payload, label: label, dateFormatter: function (value) {
752
- return valueFormatter({
753
- value: value,
754
- field: xAxisField,
755
- fields: [{ field: xAxisField, format: xAxisFormat }],
756
- });
757
- }, valueFormatter: function (value) {
758
- return valueFormatter({
759
- value: value,
760
- field: payload[0].dataKey,
761
- fields: __spreadArray(__spreadArray([], yAxisFields, true), [
762
- { field: xAxisField, format: xAxisFormat },
763
- ], false),
764
- });
765
- }, colors: colors, theme: theme }));
766
- }, position: { y: 0 } }), yAxisFields.map(function (elem, index) { return (_jsx("defs", { children: _jsxs("linearGradient", __assign({ id: "gradient".concat(index), x1: "0", y1: "0", x2: "0", y2: "1" }, { children: [_jsx("stop", { offset: "5%", stopColor: colors[index], stopOpacity: 0.4 }), _jsx("stop", { offset: "95%", stopColor: 'rgba(0,0,0,0)', stopOpacity: 0 })] })) }, "defs".concat(elem.field + index))); }), yAxisFields.map(function (elem, index) { return (_jsx(Area, { name: elem.label, type: "linear", dataKey: elem.field, stroke: colors[index],
695
+ color: theme?.chartLabelColor || '#666666',
696
+ }, tickFormatter: value => (0, exports.valueFormatter)({
697
+ value,
698
+ field: yAxisFields[0].field,
699
+ fields: [
700
+ ...yAxisFields,
701
+ { field: xAxisField, format: xAxisFormat },
702
+ ],
703
+ }) }), (0, jsx_runtime_1.jsx)(recharts_1.Tooltip, { wrapperStyle: { outline: 'none' }, isAnimationActive: false, cursor: { stroke: '#d1d5db', strokeWidth: 1 }, content: ({ active, payload, label }) => {
704
+ return ((0, jsx_runtime_1.jsx)(ChartTooltip, { active: active, payload: payload, label: label, dateFormatter: value => (0, exports.valueFormatter)({
705
+ value,
706
+ field: xAxisField,
707
+ fields: [{ field: xAxisField, format: xAxisFormat }],
708
+ }), valueFormatter: value => (0, exports.valueFormatter)({
709
+ value,
710
+ field: payload[0].dataKey,
711
+ fields: [
712
+ ...yAxisFields,
713
+ { field: xAxisField, format: xAxisFormat },
714
+ ],
715
+ }), colors: colors, theme: theme }));
716
+ }, position: { y: 0 } }), yAxisFields.map((elem, index) => ((0, jsx_runtime_1.jsx)("defs", { children: (0, jsx_runtime_1.jsxs)("linearGradient", { id: `gradient${index}`, x1: "0", y1: "0", x2: "0", y2: "1", children: [(0, jsx_runtime_1.jsx)("stop", { offset: "5%", stopColor: colors[index], stopOpacity: 0.4 }), (0, jsx_runtime_1.jsx)("stop", { offset: "95%", stopColor: 'rgba(0,0,0,0)', stopOpacity: 0 })] }) }, `defs${elem.field + index}`))), yAxisFields.map((elem, index) => ((0, jsx_runtime_1.jsx)(recharts_1.Area, { name: elem.label, type: "linear", dataKey: elem.field, stroke: colors[index],
767
717
  // if hide area
768
718
  // fill="transparent"
769
- fill: "url(#gradient".concat(index, ")"), strokeWidth: 2, dot: false, isAnimationActive: true }, elem.field)); })] })) })) })));
719
+ fill: `url(#gradient${index})`, strokeWidth: 2, dot: false, isAnimationActive: true }, elem.field)))] }) }) }));
770
720
  }
771
- export default Chart;
721
+ exports.default = Chart;
772
722
  //# sourceMappingURL=Chart.js.map