@quillsql/react 2.8.7 → 2.8.9
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/dist/BarList.js +1 -1
- package/dist/Chart.d.ts +0 -5
- package/dist/Chart.d.ts.map +1 -1
- package/dist/Chart.js +19 -168
- package/dist/ChartBuilder.d.ts +1 -0
- package/dist/ChartBuilder.d.ts.map +1 -1
- package/dist/ChartBuilder.js +18 -6
- package/dist/ChartEditor.d.ts +2 -1
- package/dist/ChartEditor.d.ts.map +1 -1
- package/dist/ChartEditor.js +2 -2
- package/dist/Dashboard.d.ts.map +1 -1
- package/dist/Dashboard.js +7 -6
- package/dist/Dashboard.js.map +1 -1
- package/dist/DateRangePicker/DateRangePicker.d.ts.map +1 -1
- package/dist/DateRangePicker/DateRangePicker.js +1 -1
- package/dist/DateRangePicker/dateRangePickerUtils.js.map +1 -1
- package/dist/SQLEditor.d.ts +5 -1
- package/dist/SQLEditor.d.ts.map +1 -1
- package/dist/SQLEditor.js +34 -32
- package/dist/Table.d.ts.map +1 -1
- package/dist/Table.js +7 -4
- package/dist/Table.js.map +1 -1
- package/dist/TableChart.js +1 -1
- package/dist/assets/ArrowDownHeadIcon.js +2 -2
- package/dist/components/Banner/index.d.ts +3 -0
- package/dist/components/Banner/index.d.ts.map +1 -0
- package/dist/components/Banner/index.js +24 -0
- package/dist/components/ReportBuilder/ColumnSelector.d.ts +19 -0
- package/dist/components/ReportBuilder/ColumnSelector.d.ts.map +1 -0
- package/dist/components/ReportBuilder/ColumnSelector.js +87 -0
- package/dist/components/SqlTextEditor.d.ts.map +1 -1
- package/dist/components/SqlTextEditor.js +27 -3
- package/dist/components/SqlTextEditor.js.map +1 -0
- package/dist/components/UiComponents.d.ts.map +1 -1
- package/dist/components/UiComponents.js +7 -6
- package/dist/hooks/useDashboard.js.map +1 -0
- package/dist/index.js.map +1 -1
- package/dist/internals/ReportBuilder/PivotModal.d.ts +2 -2
- package/dist/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
- package/dist/internals/ReportBuilder/PivotModal.js +40 -35
- package/dist/test-data/tables.d.ts +2 -0
- package/dist/test-data/tables.d.ts.map +1 -0
- package/dist/test-data/tables.js +621 -0
- package/dist/utils/axisFormatter.d.ts +20 -0
- package/dist/utils/axisFormatter.d.ts.map +1 -0
- package/dist/utils/axisFormatter.js +185 -0
- package/dist/utils/schema.d.ts +22 -0
- package/dist/utils/schema.d.ts.map +1 -0
- package/dist/utils/schema.js +134 -0
- package/dist/utils/textFormatting.d.ts +4 -0
- package/dist/utils/textFormatting.d.ts.map +1 -0
- package/dist/utils/textFormatting.js +38 -0
- package/dist/utils/valueFormatter.d.ts +17 -0
- package/dist/utils/valueFormatter.d.ts.map +1 -0
- package/dist/utils/valueFormatter.js +166 -0
- package/dist/utils/valueFormatterCSV.d.ts +17 -0
- package/dist/utils/valueFormatterCSV.d.ts.map +1 -0
- package/dist/utils/valueFormatterCSV.js +90 -0
- package/package.json +1 -1
package/dist/BarList.js
CHANGED
|
@@ -2,7 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
2
2
|
/* eslint-disable react/display-name */
|
|
3
3
|
// @ts-nocheck
|
|
4
4
|
import React from 'react';
|
|
5
|
-
import { valueFormatter } from './
|
|
5
|
+
import { valueFormatter } from './utils/valueFormatter';
|
|
6
6
|
const getWidthsFromValues = (dataValues) => {
|
|
7
7
|
let maxValue = -Infinity;
|
|
8
8
|
dataValues.forEach(value => {
|
package/dist/Chart.d.ts
CHANGED
|
@@ -1,11 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
declare const colorValues: readonly ["slate", "silver", "zinc", "neutral", "stone", "red", "orange", "amber", "yellow", "lime", "green", "emerald", "teal", "cyan", "sky", "blue", "indigo", "violet", "purple", "fuchsia", "pink", "rose"];
|
|
3
3
|
export type Color = (typeof colorValues)[number];
|
|
4
|
-
export declare const valueFormatter: ({ value, field, fields }: {
|
|
5
|
-
value: any;
|
|
6
|
-
field: any;
|
|
7
|
-
fields: any;
|
|
8
|
-
}) => any;
|
|
9
4
|
export declare const ChartTooltipFrame: ({ children, theme, }: {
|
|
10
5
|
children: React.ReactNode;
|
|
11
6
|
}) => import("react/jsx-runtime").JSX.Element;
|
package/dist/Chart.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Chart.d.ts","sourceRoot":"","sources":["../src/Chart.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAmD,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"Chart.d.ts","sourceRoot":"","sources":["../src/Chart.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAmD,MAAM,OAAO,CAAC;AA8CxE,QAAA,MAAM,WAAW,kNAuBP,CAAC;AAEX,MAAM,MAAM,KAAK,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AAqHjD,eAAO,MAAM,iBAAiB;cAIlB,MAAM,SAAS;6CAgB1B,CAAC;AAEF,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,KAAK,CAAC;IACb,IAAI,EAAE,GAAG,CAAC;CACX;AAED,eAAO,MAAM,eAAe,mCAKzB,oBAAoB,4CA0FtB,CAAC;AAEF,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,OAAO,GAAG,SAAS,CAAC;IAC5B,OAAO,EAAE,GAAG,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,cAAc,EAAE,GAAG,CAAC;IACpB,KAAK,EAAE,GAAG,CAAC;CACZ;AA+SD,QAAA,MAAM,KAAK;aAUA,MAAM;aACN,GAAG;;;;;6CAyDb,CAAC;AA2uCF,eAAe,KAAK,CAAC"}
|
package/dist/Chart.js
CHANGED
|
@@ -5,8 +5,7 @@ import { useState, useEffect, useContext, useMemo } from 'react';
|
|
|
5
5
|
import { aggregate } from './utils/aggregate';
|
|
6
6
|
import { getPostgresBasicType } from './ReportBuilder';
|
|
7
7
|
import { Area, CartesianGrid, ComposedChart as ReChartsAreaChart, ResponsiveContainer, Tooltip, XAxis, YAxis, Bar, BarChart as ReChartsBarChart, } from 'recharts';
|
|
8
|
-
import { differenceInHours,
|
|
9
|
-
import { utcToZonedTime } from 'date-fns-tz';
|
|
8
|
+
import { differenceInHours, format, } from 'date-fns';
|
|
10
9
|
import BarList from './BarList';
|
|
11
10
|
import PieChart, { findComplementaryAndAnalogousColors } from './PieChart';
|
|
12
11
|
import { ClientContext, DashboardContext, ThemeContext, DashboardFiltersContext, DateFilterContext, } from './Context';
|
|
@@ -14,6 +13,8 @@ import { SpecialTable } from './Table';
|
|
|
14
13
|
import { getData } from './utils/dataFetcher';
|
|
15
14
|
import { generatePivotTable, generatePivotTableYAxis, } from './internals/ReportBuilder/PivotModal';
|
|
16
15
|
import { COLOR_TO_HEX } from './utils/colorToHex';
|
|
16
|
+
import { valueFormatter } from './utils/valueFormatter';
|
|
17
|
+
import { axisFormatter } from './utils/axisFormatter';
|
|
17
18
|
const colorValues = [
|
|
18
19
|
'slate',
|
|
19
20
|
'silver',
|
|
@@ -130,156 +131,6 @@ function toGrayscale(rgba) {
|
|
|
130
131
|
// 'The Pragmatic Engineer': 1726,
|
|
131
132
|
// },
|
|
132
133
|
// ];
|
|
133
|
-
export const valueFormatter = ({ value, field, fields }) => {
|
|
134
|
-
if (value === undefined ||
|
|
135
|
-
value === null ||
|
|
136
|
-
field === undefined ||
|
|
137
|
-
field === null) {
|
|
138
|
-
return '';
|
|
139
|
-
}
|
|
140
|
-
const fieldInfo = fields.find(f => f.field === field);
|
|
141
|
-
if (!fieldInfo) {
|
|
142
|
-
return '';
|
|
143
|
-
}
|
|
144
|
-
const formatType = fieldInfo.format;
|
|
145
|
-
const numValue = Number(value);
|
|
146
|
-
const absNumber = isNaN(numValue) ? 0 : Math.abs(numValue);
|
|
147
|
-
if (formatType === 'percent') {
|
|
148
|
-
if (absNumber < 1) {
|
|
149
|
-
return (absNumber * 100).toFixed(0) + '%';
|
|
150
|
-
}
|
|
151
|
-
else {
|
|
152
|
-
return absNumber.toFixed(0) + '%';
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
if (formatType === 'dollar_amount') {
|
|
156
|
-
const formatter = new Intl.NumberFormat('en-US', {
|
|
157
|
-
style: 'currency',
|
|
158
|
-
currency: 'USD',
|
|
159
|
-
minimumFractionDigits: 0,
|
|
160
|
-
maximumFractionDigits: 0,
|
|
161
|
-
});
|
|
162
|
-
if (absNumber >= 1000000) {
|
|
163
|
-
return formatter.format(numValue / 1000000) + 'M';
|
|
164
|
-
}
|
|
165
|
-
else if (absNumber >= 1000) {
|
|
166
|
-
return formatter.format(numValue / 1000) + 'K';
|
|
167
|
-
}
|
|
168
|
-
else {
|
|
169
|
-
return formatter.format(numValue);
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
if (formatType === 'dollar_cents') {
|
|
173
|
-
const formatter = new Intl.NumberFormat('en-US', {
|
|
174
|
-
style: 'currency',
|
|
175
|
-
currency: 'USD',
|
|
176
|
-
minimumFractionDigits: 2,
|
|
177
|
-
maximumFractionDigits: 2,
|
|
178
|
-
});
|
|
179
|
-
if (absNumber >= 1000000) {
|
|
180
|
-
return formatter.format(numValue / 1000000) + 'M';
|
|
181
|
-
}
|
|
182
|
-
else if (absNumber >= 1000) {
|
|
183
|
-
return formatter.format(numValue / 1000) + 'K';
|
|
184
|
-
}
|
|
185
|
-
else {
|
|
186
|
-
return formatter.format(numValue);
|
|
187
|
-
}
|
|
188
|
-
}
|
|
189
|
-
if (formatType === 'whole_number') {
|
|
190
|
-
if (absNumber >= 1000000) {
|
|
191
|
-
return (numValue / 1e6).toFixed(1) + 'M';
|
|
192
|
-
}
|
|
193
|
-
else if (absNumber >= 1000) {
|
|
194
|
-
return (numValue / 1000).toFixed(1) + 'K';
|
|
195
|
-
}
|
|
196
|
-
else {
|
|
197
|
-
return Math.round(numValue).toString();
|
|
198
|
-
}
|
|
199
|
-
}
|
|
200
|
-
if (formatType === 'one_decimal_place') {
|
|
201
|
-
return numValue.toFixed(1);
|
|
202
|
-
}
|
|
203
|
-
if (formatType === 'two_decimal_places') {
|
|
204
|
-
return numValue.toFixed(2);
|
|
205
|
-
}
|
|
206
|
-
if (formatType === 'MMM_yyyy' ||
|
|
207
|
-
formatType === 'MMM_dd_yyyy' ||
|
|
208
|
-
formatType === 'MMM_dd_yyyy' ||
|
|
209
|
-
formatType === 'hh_ap_pm' ||
|
|
210
|
-
formatType === 'MMM_dd-MMM_dd' ||
|
|
211
|
-
formatType === 'MMM_dd_hh:mm_ap_pm' ||
|
|
212
|
-
formatType === 'yyyy' ||
|
|
213
|
-
formatType === 'wo, yyyy') {
|
|
214
|
-
const dateValue = new Date(value);
|
|
215
|
-
const utcDate = utcToZonedTime(dateValue, 'UTC');
|
|
216
|
-
if (!isValid(utcDate)) {
|
|
217
|
-
return 'Invalid date';
|
|
218
|
-
}
|
|
219
|
-
if (formatType === 'yyyy') {
|
|
220
|
-
return format(utcDate, 'yyyy');
|
|
221
|
-
}
|
|
222
|
-
if (formatType === 'MMM_yyyy') {
|
|
223
|
-
return format(utcDate, 'MMM yyyy');
|
|
224
|
-
}
|
|
225
|
-
if (formatType === 'MMM_dd_yyyy') {
|
|
226
|
-
return format(utcDate, 'dd MMM yyyy');
|
|
227
|
-
}
|
|
228
|
-
if (formatType === 'hh_ap_pm') {
|
|
229
|
-
return format(utcDate, 'hh:mm aa');
|
|
230
|
-
}
|
|
231
|
-
if (formatType === 'MMM_dd-MMM_dd') {
|
|
232
|
-
const start = startOfWeek(utcDate, { weekStartsOn: 1 }); // Monday
|
|
233
|
-
const end = endOfWeek(utcDate, { weekStartsOn: 1 }); // Sunday
|
|
234
|
-
let formattedDate = '';
|
|
235
|
-
// Check if start and end are in the same month
|
|
236
|
-
if (format(start, 'MMM') === format(end, 'MMM')) {
|
|
237
|
-
formattedDate = `${format(start, 'MMM dd')} - ${format(end, 'dd')}`;
|
|
238
|
-
}
|
|
239
|
-
else {
|
|
240
|
-
formattedDate = `${format(start, 'MMM dd')} - ${format(end, 'MMM dd')}`;
|
|
241
|
-
}
|
|
242
|
-
return formattedDate;
|
|
243
|
-
}
|
|
244
|
-
if (formatType === 'MMM_dd_yyyy') {
|
|
245
|
-
const year = utcDate.getFullYear();
|
|
246
|
-
const monthNames = [
|
|
247
|
-
'Jan',
|
|
248
|
-
'Feb',
|
|
249
|
-
'Mar',
|
|
250
|
-
'Apr',
|
|
251
|
-
'May',
|
|
252
|
-
'Jun',
|
|
253
|
-
'Jul',
|
|
254
|
-
'Aug',
|
|
255
|
-
'Sep',
|
|
256
|
-
'Oct',
|
|
257
|
-
'Nov',
|
|
258
|
-
'Dec',
|
|
259
|
-
];
|
|
260
|
-
const month = monthNames[utcDate.getMonth()];
|
|
261
|
-
const day = utcDate.getDate();
|
|
262
|
-
return `${month} ${day}, ${year}`;
|
|
263
|
-
}
|
|
264
|
-
if (formatType === 'MMM_dd_hh:mm_ap_pm') {
|
|
265
|
-
const formatStr = utcDate.getMinutes() === 0 ? 'MMM do h a' : 'MMM do h:mm a';
|
|
266
|
-
let formattedTime = format(utcDate, formatStr);
|
|
267
|
-
formattedTime =
|
|
268
|
-
formattedTime.slice(0, -2) + formattedTime.slice(-2).toLowerCase();
|
|
269
|
-
return formattedTime;
|
|
270
|
-
}
|
|
271
|
-
if (formatType === 'wo, yyyy') {
|
|
272
|
-
// Using the `getWeek` function to get the week number
|
|
273
|
-
const weekNumber = getWeek(utcDate);
|
|
274
|
-
const year = utcDate.getFullYear();
|
|
275
|
-
return `${weekNumber},${year}`;
|
|
276
|
-
}
|
|
277
|
-
}
|
|
278
|
-
if (formatType === 'string') {
|
|
279
|
-
return value.toString();
|
|
280
|
-
}
|
|
281
|
-
return value.toString();
|
|
282
|
-
};
|
|
283
134
|
const yAxisFields = [
|
|
284
135
|
{ field: 'avg_days', label: 'average days' },
|
|
285
136
|
{ field: 'median_days', label: 'median days' },
|
|
@@ -616,7 +467,7 @@ query, SelectComponent, DatePickerComponent, }) => {
|
|
|
616
467
|
!dashboard[chartId].buckets.length) {
|
|
617
468
|
return;
|
|
618
469
|
}
|
|
619
|
-
const dateFilter = Object.values(dashboardFilters).find(filter => filter.filterType == 'date_range');
|
|
470
|
+
const dateFilter = Object.values(dashboardFilters).find((filter) => filter.filterType == 'date_range');
|
|
620
471
|
if (dateFilter && dashboard[chartId].rows.length) {
|
|
621
472
|
const aggregatedObj = aggregate(dashboard[chartId], dashboard[chartId].buckets, dateFilter);
|
|
622
473
|
setBucketData({
|
|
@@ -627,8 +478,8 @@ query, SelectComponent, DatePickerComponent, }) => {
|
|
|
627
478
|
rows: aggregatedObj.bucketedRows,
|
|
628
479
|
});
|
|
629
480
|
}
|
|
630
|
-
const stringFilters = dashboard[chartId].buckets.filter(bucket => {
|
|
631
|
-
return (getPostgresBasicType(dashboard[chartId].fields.find(field => field.name === bucket.field)) === 'string');
|
|
481
|
+
const stringFilters = dashboard[chartId].buckets.filter((bucket) => {
|
|
482
|
+
return (getPostgresBasicType(dashboard[chartId].fields.find((field) => field.name === bucket.field)) === 'string');
|
|
632
483
|
});
|
|
633
484
|
if (stringFilters.length && dashboard[chartId].rows.length) {
|
|
634
485
|
const aggregatedObj = aggregate(dashboard[chartId], dashboard[chartId].buckets, null);
|
|
@@ -665,7 +516,7 @@ query, SelectComponent, DatePickerComponent, }) => {
|
|
|
665
516
|
// return;
|
|
666
517
|
// }
|
|
667
518
|
// };
|
|
668
|
-
const dateFilter = Object.values(dashboardFilters).find(filter => filter.filterType == 'date_range');
|
|
519
|
+
const dateFilter = Object.values(dashboardFilters).find((filter) => filter.filterType == 'date_range');
|
|
669
520
|
const pivotTable = useMemo(() => {
|
|
670
521
|
const pivot = dashboard[chartId]?.pivot || config?.pivot;
|
|
671
522
|
const data = dashboard[chartId] ? dashboard[chartId] : config;
|
|
@@ -725,7 +576,7 @@ query, SelectComponent, DatePickerComponent, }) => {
|
|
|
725
576
|
// @ts-ignore
|
|
726
577
|
, {
|
|
727
578
|
// @ts-ignore
|
|
728
|
-
containerStyle: containerStyle, data: rows.map(row => {
|
|
579
|
+
containerStyle: containerStyle, data: rows.map((row) => {
|
|
729
580
|
return {
|
|
730
581
|
...row,
|
|
731
582
|
count: parseInt(row[yAxisFields[0].field]) /
|
|
@@ -895,10 +746,10 @@ function formatNumber(num, label) {
|
|
|
895
746
|
// return [adjustedMin, adjustedMax];
|
|
896
747
|
// }
|
|
897
748
|
function getDomain(data, fields) {
|
|
898
|
-
const fieldsArray = fields.map(elem => elem.field);
|
|
749
|
+
const fieldsArray = fields.map((elem) => elem.field);
|
|
899
750
|
const numericValues = [];
|
|
900
|
-
data.forEach(item => {
|
|
901
|
-
fieldsArray.forEach(field => {
|
|
751
|
+
data.forEach((item) => {
|
|
752
|
+
fieldsArray.forEach((field) => {
|
|
902
753
|
let value = item[field];
|
|
903
754
|
// Try to cast the value to a number
|
|
904
755
|
const numericValue = parseFloat(value);
|
|
@@ -954,7 +805,7 @@ function BarChart({ colors, yAxisFields, data, containerStyle, xAxisField, xAxis
|
|
|
954
805
|
tick: { transform: 'translate(-3, 0)' }, style: {
|
|
955
806
|
fontSize: '12px',
|
|
956
807
|
fontFamily: theme.chartLabelFontFamily,
|
|
957
|
-
}, tickFormatter: tick =>
|
|
808
|
+
}, tickFormatter: (tick) => axisFormatter({
|
|
958
809
|
value: tick,
|
|
959
810
|
field: yAxisFields[0].field || 'what',
|
|
960
811
|
fields: yAxisFields,
|
|
@@ -967,7 +818,7 @@ function BarChart({ colors, yAxisFields, data, containerStyle, xAxisField, xAxis
|
|
|
967
818
|
// TODO: generalize
|
|
968
819
|
fontFamily: theme.chartLabelFontFamily,
|
|
969
820
|
marginTop: '20px',
|
|
970
|
-
}, tickLine: false, axisLine: false, tickFormatter: tick =>
|
|
821
|
+
}, tickLine: false, axisLine: false, tickFormatter: (tick) => axisFormatter({
|
|
971
822
|
value: tick,
|
|
972
823
|
field: xAxisField,
|
|
973
824
|
fields: [{ field: xAxisField, format: xAxisFormat }],
|
|
@@ -978,11 +829,11 @@ function BarChart({ colors, yAxisFields, data, containerStyle, xAxisField, xAxis
|
|
|
978
829
|
payload[0].payload[xAxisField + '2']) {
|
|
979
830
|
label2 = payload[0].payload[xAxisField + '2'];
|
|
980
831
|
}
|
|
981
|
-
return (_jsx(ChartTooltip, { theme: theme, active: active, payload: payload, label: label, label2: label2, dateFormatter: value => valueFormatter({
|
|
832
|
+
return (_jsx(ChartTooltip, { theme: theme, active: active, payload: payload, label: label, label2: label2, dateFormatter: (value) => valueFormatter({
|
|
982
833
|
value,
|
|
983
834
|
field: xAxisField,
|
|
984
835
|
fields: [{ field: xAxisField, format: xAxisFormat }],
|
|
985
|
-
}), valueFormatter: value => valueFormatter({
|
|
836
|
+
}), valueFormatter: (value) => valueFormatter({
|
|
986
837
|
value,
|
|
987
838
|
field: payload[0].dataKey,
|
|
988
839
|
fields: yAxisFields,
|
|
@@ -1037,7 +888,7 @@ function LineChart({ colors, yAxisFields, data, containerStyle, xAxisField, xAxi
|
|
|
1037
888
|
// interval="preserveStartEnd"
|
|
1038
889
|
interval: "preserveStartEnd",
|
|
1039
890
|
// interval={0}
|
|
1040
|
-
tickLine: false, axisLine: false, padding: { left: 10, right: 10 }, minTickGap: 5, tickFormatter: tick =>
|
|
891
|
+
tickLine: false, axisLine: false, padding: { left: 10, right: 10 }, minTickGap: 5, tickFormatter: (tick) => axisFormatter({
|
|
1041
892
|
value: tick,
|
|
1042
893
|
field: xAxisField,
|
|
1043
894
|
fields: [{ field: xAxisField, format: xAxisFormat }],
|
|
@@ -1058,7 +909,7 @@ function LineChart({ colors, yAxisFields, data, containerStyle, xAxisField, xAxi
|
|
|
1058
909
|
theme?.fontFamily ||
|
|
1059
910
|
'Inter; Helvetica',
|
|
1060
911
|
color: theme?.chartLabelColor || '#666666',
|
|
1061
|
-
}, tickFormatter: value =>
|
|
912
|
+
}, tickFormatter: (value) => axisFormatter({
|
|
1062
913
|
value,
|
|
1063
914
|
field: yAxisFields[0].field,
|
|
1064
915
|
fields: [
|
|
@@ -1072,11 +923,11 @@ function LineChart({ colors, yAxisFields, data, containerStyle, xAxisField, xAxi
|
|
|
1072
923
|
payload[0].payload[xAxisField + '2']) {
|
|
1073
924
|
label2 = payload[0].payload[xAxisField + '2'];
|
|
1074
925
|
}
|
|
1075
|
-
return (_jsx(ChartTooltip, { active: active, payload: payload, label: label, label2: label2, dateFormatter: value => valueFormatter({
|
|
926
|
+
return (_jsx(ChartTooltip, { active: active, payload: payload, label: label, label2: label2, dateFormatter: (value) => valueFormatter({
|
|
1076
927
|
value,
|
|
1077
928
|
field: xAxisField,
|
|
1078
929
|
fields: [{ field: xAxisField, format: xAxisFormat }],
|
|
1079
|
-
}), valueFormatter: value => valueFormatter({
|
|
930
|
+
}), valueFormatter: (value) => valueFormatter({
|
|
1080
931
|
value,
|
|
1081
932
|
field: payload[0].dataKey,
|
|
1082
933
|
fields: [
|
package/dist/ChartBuilder.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChartBuilder.d.ts","sourceRoot":"","sources":["../src/ChartBuilder.tsx"],"names":[],"mappings":"AACA,OAAO,KAA2D,MAAM,OAAO,CAAC;AAUhF,OAAO,EACL,KAAK,EAIN,MAAM,sCAAsC,CAAC;AAG9C,OAAO,EACL,oBAAoB,EACpB,uBAAuB,EACvB,oBAAoB,EACpB,mBAAmB,EACnB,WAAW,EACX,UAAU,EACV,SAAS,EACT,iBAAiB,EAUjB,qBAAqB,EAEtB,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"ChartBuilder.d.ts","sourceRoot":"","sources":["../src/ChartBuilder.tsx"],"names":[],"mappings":"AACA,OAAO,KAA2D,MAAM,OAAO,CAAC;AAUhF,OAAO,EACL,KAAK,EAIN,MAAM,sCAAsC,CAAC;AAG9C,OAAO,EACL,oBAAoB,EACpB,uBAAuB,EACvB,oBAAoB,EACpB,mBAAmB,EACnB,WAAW,EACX,UAAU,EACV,SAAS,EACT,iBAAiB,EAUjB,qBAAqB,EAEtB,MAAM,2BAA2B,CAAC;AAenC,wBAAgB,oBAAoB,CAAC,GAAG,KAAA,OAavC;AA0DD,eAAO,MAAM,mBAAmB,UAM/B,CAAC;AAoBF,UAAU,iBAAiB;IACzB,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IACrC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,GAAG,CAAC,OAAO,CAAC;IACtD,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,uBAAuB,KAAK,GAAG,CAAC,OAAO,CAAC;IAC5D,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,GAAG,CAAC,OAAO,CAAC;IACtD,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,GAAG,CAAC,OAAO,CAAC;IAC/D,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,GAAG,CAAC,OAAO,CAAC;IAC7C,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,GAAG,CAAC,OAAO,CAAC;IAC3C,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,GAAG,CAAC,OAAO,CAAC;IACzC,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,GAAG,CAAC,OAAO,CAAC;IACzD,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,GAAG,CAAC,OAAO,CAAC;IACpD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,GAAG,CAAC,OAAO,CAAC;IACxD,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,eAAe,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IACtC,cAAc,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IACrC,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,wBAAwB,CAAC,EAAE,MAAM,IAAI,CAAC;IACtC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,SAAS,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC;IAC9B,aAAa,CAAC,EAAE,GAAG,CAAC;IACpB,iBAAiB,CAAC,EAAE,KAAK,EAAE,CAAC;IAC5B,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AACD,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,KAAK,EAAE,iBAAiB,2CA4B5D"}
|
package/dist/ChartBuilder.js
CHANGED
|
@@ -8,6 +8,7 @@ import { PivotModal, generatePivotTable, isDateField, } from './internals/Report
|
|
|
8
8
|
import { PivotCard } from './internals/ReportBuilder/PivotList';
|
|
9
9
|
import Chart from './Chart';
|
|
10
10
|
import { MemoizedModal, MemoizedTextInput, MemoizedSelect, MemoizedButton, MemoizedSecondaryButton, MemoizedHeader, MemoizedLabel, MemoizedDeleteButton, MemoizedText, MemoizedPopover, } from './components/UiComponents';
|
|
11
|
+
import Banner from './components/Banner';
|
|
11
12
|
const CHART_TYPES = ['column', 'line', 'table', 'metric', 'bar', 'pie'];
|
|
12
13
|
export function snakeCaseToTitleCase(str) {
|
|
13
14
|
if (!str) {
|
|
@@ -94,7 +95,7 @@ export default function ChartBuilder(props) {
|
|
|
94
95
|
const [theme] = useContext(ThemeContext);
|
|
95
96
|
return (_jsx(_Fragment, { children: props.Modal ? (_jsx(props.Modal, { isOpen: props.isOpen, setIsOpen: props.setIsOpen, title: props.title || 'Add to dashboard', onClose: () => props.setIsOpen(false), theme: theme, children: _jsx(ChartBuilderForm, { ...props }) })) : (_jsx(MemoizedModal, { setIsOpen: props.setIsOpen, isOpen: props.isOpen, onClose: () => props.setIsOpen(false), title: props.title || 'Add to dashboard', theme: theme, children: _jsx(ChartBuilderForm, { ...props }) })) }));
|
|
96
97
|
}
|
|
97
|
-
function ChartBuilderForm({ TextInput = MemoizedTextInput, Select = MemoizedSelect, Button = MemoizedButton, SecondaryButton = MemoizedSecondaryButton, Header = MemoizedHeader, Label = MemoizedLabel, DeleteButton = MemoizedDeleteButton, Text = MemoizedText, Modal = MemoizedModal, Popover = MemoizedPopover, isOpen, pivot, setIsOpen, rows, columns, query, queryNoDateColumn, dateRange: dr, formHeaderStyle, formLabelStyle, showTableFormatOptions = false, showDateFieldOptions = false, showAccessControlOptions = false, showDashboardDropdown = true, onAddToDashboardComplete, onDelete, fields: fieldsProp, dashboardItem = undefined, recommendedPivots: rp = [], createdPivots: cp = [], destinationDashboard, dateColumn, buttonLabel, }) {
|
|
98
|
+
function ChartBuilderForm({ TextInput = MemoizedTextInput, Select = MemoizedSelect, Button = MemoizedButton, SecondaryButton = MemoizedSecondaryButton, Header = MemoizedHeader, Label = MemoizedLabel, DeleteButton = MemoizedDeleteButton, Text = MemoizedText, Modal = MemoizedModal, Popover = MemoizedPopover, isOpen, isEditMode, pivot, setIsOpen, rows, columns, query, queryNoDateColumn, dateRange: dr, formHeaderStyle, formLabelStyle, showTableFormatOptions = false, showDateFieldOptions = false, showAccessControlOptions = false, showDashboardDropdown = true, onAddToDashboardComplete, onDelete, fields: fieldsProp, dashboardItem = undefined, recommendedPivots: rp = [], createdPivots: cp = [], destinationDashboard, dateColumn, buttonLabel, }) {
|
|
98
99
|
const dateRange = dr || [null, null, null];
|
|
99
100
|
const [client] = useContext(ClientContext);
|
|
100
101
|
const [theme] = useContext(ThemeContext);
|
|
@@ -388,7 +389,6 @@ function ChartBuilderForm({ TextInput = MemoizedTextInput, Select = MemoizedSele
|
|
|
388
389
|
};
|
|
389
390
|
const handleSubmit = (e) => {
|
|
390
391
|
e.preventDefault();
|
|
391
|
-
console.log(formData);
|
|
392
392
|
};
|
|
393
393
|
const deleteChart = async () => {
|
|
394
394
|
if (!dashboardItem._id || !client) {
|
|
@@ -414,13 +414,11 @@ function ChartBuilderForm({ TextInput = MemoizedTextInput, Select = MemoizedSele
|
|
|
414
414
|
setIsSubmitting(false);
|
|
415
415
|
};
|
|
416
416
|
const editChart = async ({}) => {
|
|
417
|
-
console.log(isSubmitting);
|
|
418
417
|
if (isSubmitting) {
|
|
419
418
|
return;
|
|
420
419
|
}
|
|
421
420
|
setIsSubmitting(true);
|
|
422
421
|
const { publicKey, customerId } = client;
|
|
423
|
-
console.log(client);
|
|
424
422
|
if (!client) {
|
|
425
423
|
return;
|
|
426
424
|
}
|
|
@@ -436,6 +434,9 @@ function ChartBuilderForm({ TextInput = MemoizedTextInput, Select = MemoizedSele
|
|
|
436
434
|
query: queryNoDateColumn || query,
|
|
437
435
|
pivot: formData.pivot,
|
|
438
436
|
};
|
|
437
|
+
if (cloudBody['rows']) {
|
|
438
|
+
delete cloudBody['rows'];
|
|
439
|
+
}
|
|
439
440
|
// add orgId: customerId if present for hostedBody
|
|
440
441
|
// set defaultDateField if date field not present
|
|
441
442
|
const hostedBody = {
|
|
@@ -453,7 +454,6 @@ function ChartBuilderForm({ TextInput = MemoizedTextInput, Select = MemoizedSele
|
|
|
453
454
|
}
|
|
454
455
|
: { clientId: publicKey }).toString();
|
|
455
456
|
const resp = await getData(client, `dashedit2?${searchParams}`, 'same-origin', hostedBody, cloudBody);
|
|
456
|
-
console.log(`RESP: ${resp}`);
|
|
457
457
|
if (resp) {
|
|
458
458
|
dispatch({
|
|
459
459
|
type: 'UPDATE_DASHBOARD_ITEM',
|
|
@@ -474,7 +474,19 @@ function ChartBuilderForm({ TextInput = MemoizedTextInput, Select = MemoizedSele
|
|
|
474
474
|
if (!schema) {
|
|
475
475
|
return;
|
|
476
476
|
}
|
|
477
|
-
return (_jsxs("div", { id: "quill-chart-modal", style: { padding: modalPadding }, children: [
|
|
477
|
+
return (_jsxs("div", { id: "quill-chart-modal", style: { padding: modalPadding }, children: [isEditMode && (_jsxs(_Fragment, { children: [_jsx(Banner, { dashboardItemName: dashboardItem.name, dashboardName: dashboardItem.dashboardName, style: {
|
|
478
|
+
position: 'fixed',
|
|
479
|
+
top: 0,
|
|
480
|
+
left: 0,
|
|
481
|
+
right: 0,
|
|
482
|
+
margin: 0,
|
|
483
|
+
}, onExit: () => {
|
|
484
|
+
const msg = 'Are you sure you want to exit edit mode? Your changes will not be saved.';
|
|
485
|
+
if (!confirm(msg))
|
|
486
|
+
return;
|
|
487
|
+
dispatch({ type: 'SET_ACTIVE_QUERY', payload: '' });
|
|
488
|
+
dispatch({ type: 'SET_ACTIVE_EDIT_ITEM', payload: null });
|
|
489
|
+
} }), _jsxs("style", { children: [" ", `#quill-modal-header { padding-top: 41px; }`, " "] })] })), _jsx("div", { children: _jsx(Chart, { config: { ...formData, rows }, colors: theme.chartColors, containerStyle: {
|
|
478
490
|
width: formData.chartType === 'table' ? 640 : 'calc(100% - 24px)',
|
|
479
491
|
height: 300,
|
|
480
492
|
} }) }), _jsx("div", { style: { height: 20 } }), _jsxs("form", { ref: parentRef, id: "quill-chart-form", onSubmit: handleSubmit, children: [_jsxs("div", { style: { display: 'flex', flexDirection: 'row', gap: 12 }, children: [_jsxs("div", { style: { display: 'flex', flexDirection: 'column' }, children: [_jsx(Label, { children: "Name" }), _jsx(TextInput, { value: formData.name, onChange: (e) => handleChange(e, 'name'), placeholder: "Name" })] }), showDashboardDropdown && !destinationDashboard && (_jsxs("div", { style: { display: 'flex', flexDirection: 'column' }, children: [_jsx(Label, { children: "Dashboard" }), _jsx(Select, { label: 'Dashboard', value: formData.dashboardName, onChange: (e) => handleChange(e, 'dashboardName'), options: dashboardOptions.map((elem) => ({
|
package/dist/ChartEditor.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ interface ChartEditorProps {
|
|
|
4
4
|
isOpen: boolean;
|
|
5
5
|
chartId: string;
|
|
6
6
|
admin?: boolean;
|
|
7
|
+
isEditMode?: boolean;
|
|
7
8
|
chartBuilderTitle?: string;
|
|
8
9
|
chartBuilderButtonLabel?: string;
|
|
9
10
|
onDelete?: () => void;
|
|
@@ -20,6 +21,6 @@ interface ChartEditorProps {
|
|
|
20
21
|
Popover?: (props: PopoverComponentProps) => JSX.Element;
|
|
21
22
|
destinationDashboard?: string;
|
|
22
23
|
}
|
|
23
|
-
export default function ChartEditor({ isOpen, chartId, admin, destinationDashboard, chartBuilderTitle, chartBuilderButtonLabel, onDelete, setIsOpen, Select, TextInput, Button, SecondaryButton, Header, Label, Text, DeleteButton, Modal, Popover, }: ChartEditorProps): import("react/jsx-runtime").JSX.Element;
|
|
24
|
+
export default function ChartEditor({ isOpen, chartId, isEditMode, admin, destinationDashboard, chartBuilderTitle, chartBuilderButtonLabel, onDelete, setIsOpen, Select, TextInput, Button, SecondaryButton, Header, Label, Text, DeleteButton, Modal, Popover, }: ChartEditorProps): import("react/jsx-runtime").JSX.Element;
|
|
24
25
|
export {};
|
|
25
26
|
//# sourceMappingURL=ChartEditor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChartEditor.d.ts","sourceRoot":"","sources":["../src/ChartEditor.tsx"],"names":[],"mappings":";AASA,OAAO,EACL,oBAAoB,EACpB,uBAAuB,EACvB,oBAAoB,EACpB,mBAAmB,EACnB,WAAW,EACX,UAAU,EACV,SAAS,EACT,iBAAiB,EACjB,qBAAqB,EACtB,MAAM,2BAA2B,CAAC;AAGnC,UAAU,gBAAgB;IACxB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,SAAS,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IACrC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,GAAG,CAAC,OAAO,CAAC;IACtD,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,uBAAuB,KAAK,GAAG,CAAC,OAAO,CAAC;IAC5D,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,GAAG,CAAC,OAAO,CAAC;IACtD,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,GAAG,CAAC,OAAO,CAAC;IAC/D,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,GAAG,CAAC,OAAO,CAAC;IAC7C,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,GAAG,CAAC,OAAO,CAAC;IAC3C,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,GAAG,CAAC,OAAO,CAAC;IACzC,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,GAAG,CAAC,OAAO,CAAC;IACzD,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,GAAG,CAAC,OAAO,CAAC;IACpD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,GAAG,CAAC,OAAO,CAAC;IACxD,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,EAClC,MAAM,EACN,OAAO,EACP,KAAa,EACb,oBAAoB,EACpB,iBAAgC,EAChC,uBAAuB,EACvB,QAAQ,EACR,SAAS,EACT,MAAM,EACN,SAAS,EACT,MAAM,EACN,eAAe,EACf,MAAM,EACN,KAAK,EACL,IAAI,EACJ,YAAY,EACZ,KAAK,EACL,OAAO,GACR,EAAE,gBAAgB,
|
|
1
|
+
{"version":3,"file":"ChartEditor.d.ts","sourceRoot":"","sources":["../src/ChartEditor.tsx"],"names":[],"mappings":";AASA,OAAO,EACL,oBAAoB,EACpB,uBAAuB,EACvB,oBAAoB,EACpB,mBAAmB,EACnB,WAAW,EACX,UAAU,EACV,SAAS,EACT,iBAAiB,EACjB,qBAAqB,EACtB,MAAM,2BAA2B,CAAC;AAGnC,UAAU,gBAAgB;IACxB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,SAAS,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IACrC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,GAAG,CAAC,OAAO,CAAC;IACtD,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,uBAAuB,KAAK,GAAG,CAAC,OAAO,CAAC;IAC5D,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,GAAG,CAAC,OAAO,CAAC;IACtD,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,GAAG,CAAC,OAAO,CAAC;IAC/D,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,GAAG,CAAC,OAAO,CAAC;IAC7C,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,GAAG,CAAC,OAAO,CAAC;IAC3C,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,GAAG,CAAC,OAAO,CAAC;IACzC,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,GAAG,CAAC,OAAO,CAAC;IACzD,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,GAAG,CAAC,OAAO,CAAC;IACpD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,GAAG,CAAC,OAAO,CAAC;IACxD,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,EAClC,MAAM,EACN,OAAO,EACP,UAAU,EACV,KAAa,EACb,oBAAoB,EACpB,iBAAgC,EAChC,uBAAuB,EACvB,QAAQ,EACR,SAAS,EACT,MAAM,EACN,SAAS,EACT,MAAM,EACN,eAAe,EACf,MAAM,EACN,KAAK,EACL,IAAI,EACJ,YAAY,EACZ,KAAK,EACL,OAAO,GACR,EAAE,gBAAgB,2CA6GlB"}
|
package/dist/ChartEditor.js
CHANGED
|
@@ -4,7 +4,7 @@ import { useContext, useEffect, useState } from 'react';
|
|
|
4
4
|
import ChartBuilder from './ChartBuilder';
|
|
5
5
|
import { DashboardContext, DashboardFiltersContext, ClientContext, } from './Context';
|
|
6
6
|
import { getData } from './utils/dataFetcher';
|
|
7
|
-
export default function ChartEditor({ isOpen, chartId, admin = false, destinationDashboard, chartBuilderTitle = 'Edit chart', chartBuilderButtonLabel, onDelete, setIsOpen, Select, TextInput, Button, SecondaryButton, Header, Label, Text, DeleteButton, Modal, Popover, }) {
|
|
7
|
+
export default function ChartEditor({ isOpen, chartId, isEditMode, admin = false, destinationDashboard, chartBuilderTitle = 'Edit chart', chartBuilderButtonLabel, onDelete, setIsOpen, Select, TextInput, Button, SecondaryButton, Header, Label, Text, DeleteButton, Modal, Popover, }) {
|
|
8
8
|
const { dispatch, dashboard } = useContext(DashboardContext);
|
|
9
9
|
const { dashboardFilters } = useContext(DashboardFiltersContext);
|
|
10
10
|
const [client, _] = useContext(ClientContext);
|
|
@@ -66,5 +66,5 @@ export default function ChartEditor({ isOpen, chartId, admin = false, destinatio
|
|
|
66
66
|
isSubscribed = false;
|
|
67
67
|
};
|
|
68
68
|
}, [client, chartId]);
|
|
69
|
-
return (_jsx("div", { children: dashboardItem && (_jsx(ChartBuilder, { dashboardItem: dashboardItem, rows: dashboardItem.rows, columns: dashboardItem.columns, fields: dashboardItem.fields, query: dashboardItem.queryString, isOpen: isOpen, setIsOpen: setIsOpen, showTableFormatOptions: admin, showDateFieldOptions: admin, showAccessControlOptions: admin, showDashboardDropdown: admin, destinationDashboard: destinationDashboard, dateRange: dateRange, Select: Select, TextInput: TextInput, Button: Button, SecondaryButton: SecondaryButton, Header: Header, Label: Label, Text: Text, DeleteButton: DeleteButton, Modal: Modal, Popover: Popover, onDelete: onDelete, title: chartBuilderTitle, buttonLabel: chartBuilderButtonLabel })) }));
|
|
69
|
+
return (_jsx("div", { children: dashboardItem && (_jsx(ChartBuilder, { dashboardItem: dashboardItem, rows: dashboardItem.rows, columns: dashboardItem.columns, fields: dashboardItem.fields, query: dashboardItem.queryString, isOpen: isOpen, isEditMode: isEditMode, setIsOpen: setIsOpen, showTableFormatOptions: admin, showDateFieldOptions: admin, showAccessControlOptions: admin, showDashboardDropdown: admin, destinationDashboard: destinationDashboard, dateRange: dateRange, Select: Select, TextInput: TextInput, Button: Button, SecondaryButton: SecondaryButton, Header: Header, Label: Label, Text: Text, DeleteButton: DeleteButton, Modal: Modal, Popover: Popover, onDelete: onDelete, title: chartBuilderTitle, buttonLabel: chartBuilderButtonLabel })) }));
|
|
70
70
|
}
|
package/dist/Dashboard.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Dashboard.d.ts","sourceRoot":"","sources":["../src/Dashboard.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Dashboard.d.ts","sourceRoot":"","sources":["../src/Dashboard.tsx"],"names":[],"mappings":"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"}
|
package/dist/Dashboard.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
// @ts-nocheck
|
|
3
3
|
/* eslint-disable @typescript-eslint/ban-ts-comment */
|
|
4
4
|
import React, { useContext, useEffect, useState, useRef, useCallback, } from 'react';
|
|
@@ -519,7 +519,7 @@ const areEqual = (prevProps, nextProps) => {
|
|
|
519
519
|
};
|
|
520
520
|
const MemoizedDateRangePicker = React.memo(QuillDateRangePicker, areEqual);
|
|
521
521
|
export default function Dashboard({ name, containerStyle, chartContainerStyle, metricContainerStyle, maxColumnWidth, rowHeight, onClickDashboardItem, hideFilters, FilterDropdownComponent, DateRangePickerComponent, FilterButtonComponent, FilterModalComponent, onChangeLoading, DashboardItemComponent, }) {
|
|
522
|
-
const { isLoading: isDataLoading, data,
|
|
522
|
+
const { isLoading: isDataLoading, data, reload } = useDashboard(name);
|
|
523
523
|
const [dashboardSections, setDashboardSections] = useState(null);
|
|
524
524
|
const { dashboard } = useContext(DashboardContext);
|
|
525
525
|
const [client] = useContext(ClientContext);
|
|
@@ -745,9 +745,8 @@ export default function Dashboard({ name, containerStyle, chartContainerStyle, m
|
|
|
745
745
|
onChangeLoading(isLoading);
|
|
746
746
|
}
|
|
747
747
|
}, [isLoading, onChangeLoading]);
|
|
748
|
-
if (!dashboardSections)
|
|
748
|
+
if (!dashboardSections)
|
|
749
749
|
return null;
|
|
750
|
-
}
|
|
751
750
|
return (_jsxs("div", { style: containerStyle, children: [!hideFilters ? (_jsx("div", { style: {
|
|
752
751
|
display: 'flex',
|
|
753
752
|
boxSizing: 'content-box',
|
|
@@ -1032,7 +1031,9 @@ export default function Dashboard({ name, containerStyle, chartContainerStyle, m
|
|
|
1032
1031
|
? theme.chartColors
|
|
1033
1032
|
: undefined }) }) }) }, elem.name + '' + index));
|
|
1034
1033
|
}
|
|
1035
|
-
return (_jsxs(
|
|
1034
|
+
return (_jsxs("div", { onClick: onClickDashboardItem
|
|
1035
|
+
? () => handleOnClickDashboardItem(elem)
|
|
1036
|
+
: undefined, children: [_jsx("div", { onClick: onClickDashboardItem
|
|
1036
1037
|
? () => handleOnClickDashboardItem(elem)
|
|
1037
1038
|
: undefined, style: {
|
|
1038
1039
|
// background: theme.elevatedCardColor,
|
|
@@ -1118,7 +1119,7 @@ export default function Dashboard({ name, containerStyle, chartContainerStyle, m
|
|
|
1118
1119
|
// paddingLeft: 25,
|
|
1119
1120
|
}, isDateFilter: true,
|
|
1120
1121
|
// chartFilters={elem.chartFilters}
|
|
1121
|
-
chartId: elem._id })] })] }) }) }) }, elem.name + '' + index), _jsx("div", { style: { height: 40 } })] }));
|
|
1122
|
+
chartId: elem._id })] })] }) }) }) }, elem.name + '' + index), _jsx("div", { style: { height: 40 } })] }, elem.name + '' + index));
|
|
1122
1123
|
})] })) : null, _jsx("div", { style: { height: 40 } })] }, section + '' + sectionIndex));
|
|
1123
1124
|
})] }));
|
|
1124
1125
|
}
|