@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.
Files changed (59) hide show
  1. package/dist/BarList.js +1 -1
  2. package/dist/Chart.d.ts +0 -5
  3. package/dist/Chart.d.ts.map +1 -1
  4. package/dist/Chart.js +19 -168
  5. package/dist/ChartBuilder.d.ts +1 -0
  6. package/dist/ChartBuilder.d.ts.map +1 -1
  7. package/dist/ChartBuilder.js +18 -6
  8. package/dist/ChartEditor.d.ts +2 -1
  9. package/dist/ChartEditor.d.ts.map +1 -1
  10. package/dist/ChartEditor.js +2 -2
  11. package/dist/Dashboard.d.ts.map +1 -1
  12. package/dist/Dashboard.js +7 -6
  13. package/dist/Dashboard.js.map +1 -1
  14. package/dist/DateRangePicker/DateRangePicker.d.ts.map +1 -1
  15. package/dist/DateRangePicker/DateRangePicker.js +1 -1
  16. package/dist/DateRangePicker/dateRangePickerUtils.js.map +1 -1
  17. package/dist/SQLEditor.d.ts +5 -1
  18. package/dist/SQLEditor.d.ts.map +1 -1
  19. package/dist/SQLEditor.js +34 -32
  20. package/dist/Table.d.ts.map +1 -1
  21. package/dist/Table.js +7 -4
  22. package/dist/Table.js.map +1 -1
  23. package/dist/TableChart.js +1 -1
  24. package/dist/assets/ArrowDownHeadIcon.js +2 -2
  25. package/dist/components/Banner/index.d.ts +3 -0
  26. package/dist/components/Banner/index.d.ts.map +1 -0
  27. package/dist/components/Banner/index.js +24 -0
  28. package/dist/components/ReportBuilder/ColumnSelector.d.ts +19 -0
  29. package/dist/components/ReportBuilder/ColumnSelector.d.ts.map +1 -0
  30. package/dist/components/ReportBuilder/ColumnSelector.js +87 -0
  31. package/dist/components/SqlTextEditor.d.ts.map +1 -1
  32. package/dist/components/SqlTextEditor.js +27 -3
  33. package/dist/components/SqlTextEditor.js.map +1 -0
  34. package/dist/components/UiComponents.d.ts.map +1 -1
  35. package/dist/components/UiComponents.js +7 -6
  36. package/dist/hooks/useDashboard.js.map +1 -0
  37. package/dist/index.js.map +1 -1
  38. package/dist/internals/ReportBuilder/PivotModal.d.ts +2 -2
  39. package/dist/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
  40. package/dist/internals/ReportBuilder/PivotModal.js +40 -35
  41. package/dist/test-data/tables.d.ts +2 -0
  42. package/dist/test-data/tables.d.ts.map +1 -0
  43. package/dist/test-data/tables.js +621 -0
  44. package/dist/utils/axisFormatter.d.ts +20 -0
  45. package/dist/utils/axisFormatter.d.ts.map +1 -0
  46. package/dist/utils/axisFormatter.js +185 -0
  47. package/dist/utils/schema.d.ts +22 -0
  48. package/dist/utils/schema.d.ts.map +1 -0
  49. package/dist/utils/schema.js +134 -0
  50. package/dist/utils/textFormatting.d.ts +4 -0
  51. package/dist/utils/textFormatting.d.ts.map +1 -0
  52. package/dist/utils/textFormatting.js +38 -0
  53. package/dist/utils/valueFormatter.d.ts +17 -0
  54. package/dist/utils/valueFormatter.d.ts.map +1 -0
  55. package/dist/utils/valueFormatter.js +166 -0
  56. package/dist/utils/valueFormatterCSV.d.ts +17 -0
  57. package/dist/utils/valueFormatterCSV.d.ts.map +1 -0
  58. package/dist/utils/valueFormatterCSV.js +90 -0
  59. 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 './Chart';
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;
@@ -1 +1 @@
1
- {"version":3,"file":"Chart.d.ts","sourceRoot":"","sources":["../src/Chart.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAmD,MAAM,OAAO,CAAC;AA4CxE,QAAA,MAAM,WAAW,kNAuBP,CAAC;AAEX,MAAM,MAAM,KAAK,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AA2GjD,eAAO,MAAM,cAAc;;;;SAgK1B,CAAC;AAYF,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;AA0uCF,eAAe,KAAK,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, endOfWeek, format, isValid, startOfWeek, } from 'date-fns';
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 => valueFormatter({
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 => valueFormatter({
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 => valueFormatter({
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 => valueFormatter({
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: [
@@ -19,6 +19,7 @@ interface ChartBuilderProps {
19
19
  rows: object[];
20
20
  columns: object[];
21
21
  query?: string;
22
+ isEditMode?: boolean;
22
23
  formHeaderStyle?: React.CSSProperties;
23
24
  formLabelStyle?: React.CSSProperties;
24
25
  showTableFormatOptions?: boolean;
@@ -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;AAcnC,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,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"}
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"}
@@ -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: [_jsx("div", { children: _jsx(Chart, { config: { ...formData, rows }, colors: theme.chartColors, containerStyle: {
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) => ({
@@ -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,2CA4GlB"}
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"}
@@ -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
  }
@@ -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, Fragment as _Fragment } from "react/jsx-runtime";
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, error, reload } = useDashboard(name);
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(_Fragment, { children: [_jsx("div", { onClick: onClickDashboardItem
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
  }