@quillsql/react 2.10.3 → 2.10.5

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 (55) hide show
  1. package/dist/cjs/Chart.d.ts +1 -4
  2. package/dist/cjs/Chart.d.ts.map +1 -1
  3. package/dist/cjs/Chart.js +11 -14
  4. package/dist/cjs/ChartBuilder.d.ts.map +1 -1
  5. package/dist/cjs/ChartBuilder.js +18 -9
  6. package/dist/cjs/ChartEditor.js +1 -1
  7. package/dist/cjs/Dashboard.d.ts +1 -0
  8. package/dist/cjs/Dashboard.d.ts.map +1 -1
  9. package/dist/cjs/Dashboard.js +19 -2
  10. package/dist/cjs/DateRangePicker/dateRangePickerUtils.js +1 -1
  11. package/dist/cjs/SQLEditor.d.ts.map +1 -1
  12. package/dist/cjs/SQLEditor.js +2 -4
  13. package/dist/cjs/Table.js +2 -2
  14. package/dist/cjs/components/Chart/ChartError.d.ts +3 -0
  15. package/dist/cjs/components/Chart/ChartError.d.ts.map +1 -0
  16. package/dist/cjs/components/Chart/ChartError.js +29 -0
  17. package/dist/cjs/components/Chart/ChartSkeleton.d.ts +3 -0
  18. package/dist/cjs/components/Chart/ChartSkeleton.d.ts.map +1 -0
  19. package/dist/cjs/components/Chart/ChartSkeleton.js +20 -0
  20. package/dist/cjs/hooks/useQuill.d.ts.map +1 -1
  21. package/dist/cjs/hooks/useQuill.js +15 -9
  22. package/dist/cjs/utils/axisFormatter.d.ts.map +1 -1
  23. package/dist/cjs/utils/axisFormatter.js +7 -18
  24. package/dist/cjs/utils/valueFormatter.d.ts.map +1 -1
  25. package/dist/cjs/utils/valueFormatter.js +7 -18
  26. package/dist/cjs/utils/valueFormatterCSV.d.ts.map +1 -1
  27. package/dist/cjs/utils/valueFormatterCSV.js +7 -15
  28. package/dist/esm/Chart.d.ts +1 -4
  29. package/dist/esm/Chart.d.ts.map +1 -1
  30. package/dist/esm/Chart.js +12 -15
  31. package/dist/esm/ChartBuilder.d.ts.map +1 -1
  32. package/dist/esm/ChartBuilder.js +18 -9
  33. package/dist/esm/ChartEditor.js +1 -1
  34. package/dist/esm/Dashboard.d.ts +1 -0
  35. package/dist/esm/Dashboard.d.ts.map +1 -1
  36. package/dist/esm/Dashboard.js +18 -1
  37. package/dist/esm/DateRangePicker/dateRangePickerUtils.js +1 -1
  38. package/dist/esm/SQLEditor.d.ts.map +1 -1
  39. package/dist/esm/SQLEditor.js +2 -4
  40. package/dist/esm/Table.js +2 -2
  41. package/dist/esm/components/Chart/ChartError.d.ts +3 -0
  42. package/dist/esm/components/Chart/ChartError.d.ts.map +1 -0
  43. package/dist/esm/components/Chart/ChartError.js +26 -0
  44. package/dist/esm/components/Chart/ChartSkeleton.d.ts +3 -0
  45. package/dist/esm/components/Chart/ChartSkeleton.d.ts.map +1 -0
  46. package/dist/esm/components/Chart/ChartSkeleton.js +17 -0
  47. package/dist/esm/hooks/useQuill.d.ts.map +1 -1
  48. package/dist/esm/hooks/useQuill.js +16 -10
  49. package/dist/esm/utils/axisFormatter.d.ts.map +1 -1
  50. package/dist/esm/utils/axisFormatter.js +7 -18
  51. package/dist/esm/utils/valueFormatter.d.ts.map +1 -1
  52. package/dist/esm/utils/valueFormatter.js +7 -18
  53. package/dist/esm/utils/valueFormatterCSV.d.ts.map +1 -1
  54. package/dist/esm/utils/valueFormatterCSV.js +7 -15
  55. package/package.json +1 -1
package/dist/esm/Chart.js CHANGED
@@ -1,4 +1,4 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
2
  // @ts-nocheck
3
3
  import { useState, useEffect, useContext, useMemo } from 'react';
4
4
  import { aggregate } from './utils/aggregate';
@@ -14,6 +14,8 @@ import { valueFormatter } from './utils/valueFormatter';
14
14
  import LineChart from './components/Chart/LineChart';
15
15
  import BarChart from './components/Chart/BarChart';
16
16
  import { mergeComparisonRange } from './utils/merge';
17
+ import ChartSkeleton from './components/Chart/ChartSkeleton';
18
+ import ChartError from './components/Chart/ChartError';
17
19
  // @ts-ignore
18
20
  function sumByKey(arr, key) {
19
21
  // @ts-ignore
@@ -128,8 +130,7 @@ const ChartUpdater = ({ colors, chartId, config, containerStyle, dashboard, disp
128
130
  filters: yoloFilters,
129
131
  };
130
132
  const resp = await getData(client, 'itempost', 'omit', hostedBody, cloudBody);
131
- if (resp) {
132
- setLoading(false);
133
+ if (resp && resp.name !== 'error') {
133
134
  setIsComparison(!!resp.compareRows?.length);
134
135
  if (resp.compareRows) {
135
136
  mergeComparisonRange(resp);
@@ -143,6 +144,7 @@ const ChartUpdater = ({ colors, chartId, config, containerStyle, dashboard, disp
143
144
  },
144
145
  });
145
146
  }
147
+ setLoading(false);
146
148
  }
147
149
  catch (e) {
148
150
  console.log('Error fetching chart: ', e);
@@ -222,17 +224,12 @@ const ChartUpdater = ({ colors, chartId, config, containerStyle, dashboard, disp
222
224
  : null;
223
225
  }, [pivotTable]);
224
226
  if (!config && (!dashboard[chartId] || loading)) {
225
- return (_jsx("div", { style: {
226
- ...containerStyle,
227
- boxSizing: 'content-box',
228
- height: '100%',
229
- }, children: _jsx("div", { style: {
230
- height: containerStyle?.height,
231
- width: '100%',
232
- boxSizing: 'content-box',
233
- borderRadius: 8,
234
- overflow: 'hidden',
235
- }, children: _jsxs("svg", { width: "100%", height: "100%", xmlns: "http://www.w3.org/2000/svg", xmlnsXlink: "http://www.w3.org/1999/xlink", children: [_jsx("rect", { width: "100%", height: "100%", fill: theme?.loadingStateBackgroundColor || '#F9F9FA' }), _jsx("defs", { fill: theme?.loadingStateBackgroundColor || '#F9F9FA', children: _jsxs("linearGradient", { id: "skeletonGradient", x1: "0%", y1: "0%", x2: "10%", y2: "0%", gradientUnits: "userSpaceOnUse", children: [_jsx("stop", { offset: "0%", stopColor: "rgba(255,255,255,0)" }), _jsx("stop", { offset: "50%", stopColor: "#FEFEFE" }), _jsx("stop", { offset: "100%", stopColor: "rgba(255,255,255,0)" }), _jsx("animate", { attributeName: "x1", from: "-100%", to: "100%", dur: "2s", repeatCount: "indefinite" }), _jsx("animate", { attributeName: "x2", from: "-50%", to: "150%", dur: "2s", repeatCount: "indefinite" })] }) }), _jsx("rect", { width: "50%", height: "100%", fill: "url(#skeletonGradient)", children: _jsx("animate", { attributeName: "x", from: "-100%", to: "100%", dur: "2s", repeatCount: "indefinite" }) })] }) }) }));
227
+ if (loading) {
228
+ return _jsx(ChartSkeleton, { containerStyle: containerStyle });
229
+ }
230
+ else {
231
+ return _jsx(ChartError, { containerStyle: containerStyle });
232
+ }
236
233
  }
237
234
  // TODO: Figure out if we can use ?? to coalesce these into the variable.
238
235
  const chartTypes = [config?.chartType, dashboard[chartId]?.chartType];
@@ -260,7 +257,7 @@ const ChartUpdater = ({ colors, chartId, config, containerStyle, dashboard, disp
260
257
  }
261
258
  if (chartTypes.includes('table')) {
262
259
  const data = dashboard[chartId] ? dashboard[chartId] : config;
263
- return (_jsx(SpecialTable, { rows: pivotTable?.rows ?? data.rows ?? [], columns: pivotTable?.columns ?? data.yAxisFields ?? data.columns, height: '400px', containerStyle: {
260
+ return (_jsx(SpecialTable, { rows: pivotTable?.rows ?? data.rows ?? [], columns: pivotTable?.columns ?? data.columns ?? data.yAxisFields, height: '400px', containerStyle: {
264
261
  ...containerStyle,
265
262
  }, theme: theme, isTableChart: true, name: data.name }));
266
263
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ChartBuilder.d.ts","sourceRoot":"","sources":["../../src/ChartBuilder.tsx"],"names":[],"mappings":"AACA,OAAO,KAA2D,MAAM,OAAO,CAAC;AAWhF,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;AAgBnC,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"}
1
+ {"version":3,"file":"ChartBuilder.d.ts","sourceRoot":"","sources":["../../src/ChartBuilder.tsx"],"names":[],"mappings":"AACA,OAAO,KAA2D,MAAM,OAAO,CAAC;AAWhF,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;AAgBnC,wBAAgB,oBAAoB,CAAC,GAAG,KAAA,OAavC;AAqED,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"}
@@ -30,13 +30,9 @@ const POSTGRES_DATE_TYPES = [
30
30
  'time',
31
31
  'timetz',
32
32
  ];
33
- async function getReferencedTables(client, sqlQuery, dbTables) {
34
- // const parser = new Parser();
33
+ function getTablesHelper(ast, allTables) {
35
34
  const tables = [];
36
35
  const withAliases = [];
37
- const resp = await getDataFromCloud(client, `astify`, { query: sqlQuery });
38
- let ast = resp.ast;
39
- ast = ast.length ? ast[0] : ast;
40
36
  if (ast.with && ast.with.length) {
41
37
  for (let i = 0; i < ast.with.length; i++) {
42
38
  withAliases.push(ast.with[i].name.value);
@@ -50,10 +46,19 @@ async function getReferencedTables(client, sqlQuery, dbTables) {
50
46
  }
51
47
  }
52
48
  }
53
- const astFrom = ast?.from?.map((elem) => elem.table) || [];
49
+ if (ast.from && ast.from.length) {
50
+ for (let i = 0; i < ast.from.length; i++) {
51
+ if (ast.from[i].expr && ast.from[i].expr.ast) {
52
+ const recursiveAST = ast.from[i].expr.ast;
53
+ const recursiveTables = getTablesHelper(recursiveAST, allTables);
54
+ tables.push(...recursiveTables.map((t) => t.name));
55
+ }
56
+ }
57
+ }
58
+ const astFrom = ast?.from?.filter((t) => t.table).map((elem) => elem.table) || [];
54
59
  const astSelect = ast?.select?.from?.map((elem) => elem.table) || [];
55
60
  const tablesInQuery = [...tables, ...astFrom, ...astSelect].filter((elem) => !withAliases.includes(elem));
56
- return dbTables
61
+ return allTables
57
62
  .filter((table) => tablesInQuery.includes(table.displayName))
58
63
  .map((table) => {
59
64
  return {
@@ -63,6 +68,10 @@ async function getReferencedTables(client, sqlQuery, dbTables) {
63
68
  })
64
69
  .filter((table) => table.columns.length > 0);
65
70
  }
71
+ async function getReferencedTables(client, sqlQuery, dbTables) {
72
+ const resp = await getDataFromCloud(client, `astify`, { query: sqlQuery });
73
+ return getTablesHelper(resp.ast.length ? resp.ast[0] : resp.ast, dbTables);
74
+ }
66
75
  const AGGREGATION_TYPES = [
67
76
  { label: 'sum', value: 'sum' },
68
77
  { label: 'count', value: 'count' },
@@ -220,7 +229,7 @@ function ChartBuilderForm({ TextInput = MemoizedTextInput, Select = MemoizedSele
220
229
  };
221
230
  const firstNumberColumn = columns?.find((col) => numberFormatOptions.includes(col.format));
222
231
  const formEmptyState = {
223
- name: '',
232
+ name: 'My Chart',
224
233
  dashboardName: dashboardOptions?.[0]?.label,
225
234
  columns: columns.map((col) => {
226
235
  return { ...col, label: snakeCaseToTitleCase(col.label) };
@@ -458,7 +467,7 @@ function ChartBuilderForm({ TextInput = MemoizedTextInput, Select = MemoizedSele
458
467
  }
459
468
  : { clientId: publicKey }).toString();
460
469
  const resp = await getData(client, `dashedit2?${searchParams}`, 'same-origin', hostedBody, cloudBody);
461
- if (resp) {
470
+ if (resp && resp.name !== "error") {
462
471
  if (resp.compareRows) {
463
472
  mergeComparisonRange(resp);
464
473
  }
@@ -42,7 +42,7 @@ export default function ChartEditor({ isOpen, chartId, isEditMode, admin = false
42
42
  filters: [],
43
43
  };
44
44
  const resp = await getData(client, 'itempost', 'omit', hostedBody, cloudBody);
45
- if (resp) {
45
+ if (resp && resp.name !== "error") {
46
46
  if (resp.compareRows) {
47
47
  mergeComparisonRange(resp);
48
48
  }
@@ -61,6 +61,7 @@ interface comparisonOption {
61
61
  }
62
62
  export declare const COMPARISON_OPTIONS: comparisonOption[];
63
63
  export declare const PRIMARY_OPTIONS: any[];
64
+ export declare const VIDEO_ELEPHANT_OPTIONS: any[];
64
65
  export declare function DashboardFilter({ filter, onChangeFilter, SelectComponent, DateRangePickerComponent, theme, }: {
65
66
  filter: any;
66
67
  onChangeFilter: any;
@@ -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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"}
@@ -42,6 +42,16 @@ export const PRIMARY_OPTIONS = [
42
42
  { value: 'LAST_6_MONTHS', text: 'Last 6 months' },
43
43
  { value: 'ALL_TIME', text: 'All time' },
44
44
  ];
45
+ export const VIDEO_ELEPHANT_OPTIONS = [
46
+ { value: 'DECEMBER_2023', text: 'This Week' },
47
+ { value: 'NOVEMBER_2023', text: 'This Month' },
48
+ { value: 'OCTOBER_2023', text: 'This year' },
49
+ { value: 'SEPTEMBER_2023', text: 'Last 7 days' },
50
+ { value: 'AUGUST_2023', text: 'Last 30 days' },
51
+ { value: 'LAST_90_DAYS', text: 'Last 90 days' },
52
+ { value: 'LAST_6_MONTHS', text: 'Last 6 months' },
53
+ { value: 'ALL_TIME', text: 'All time' },
54
+ ];
45
55
  const FILTER_CODE_MAP = {
46
56
  wk: 'This week',
47
57
  m: 'This month',
@@ -547,6 +557,7 @@ function removeQuotes(str) {
547
557
  }
548
558
  export default function Dashboard({ name, containerStyle, chartContainerStyle, metricContainerStyle, maxColumnWidth, rowHeight, onClickDashboardItem, hideFilters, dateRangeFilterDisabled = false, FilterDropdownComponent, EmptyDashboardComponent = QuillEmptyDashboardComponent, DateRangePickerComponent, FilterButtonComponent, FilterModalComponent, onChangeLoading, DashboardItemComponent, }) {
549
559
  const { dateFilter } = useDateFilter();
560
+ const { dispatch } = useContext(DashboardContext);
550
561
  const { isLoading: isDataLoading, data, reload } = useDashboard(name);
551
562
  const [dashboardSections, setDashboardSections] = useState(null);
552
563
  const { dashboard } = useContext(DashboardContext);
@@ -632,12 +643,18 @@ export default function Dashboard({ name, containerStyle, chartContainerStyle, m
632
643
  }
633
644
  };
634
645
  const handleOnClickDashboardItem = (elem) => {
635
- if (dashboard[elem._id]._id && onClickDashboardItem) {
646
+ if (dashboard[elem._id]?._id && onClickDashboardItem) {
636
647
  onClickDashboardItem(dashboard[elem._id]);
637
648
  }
638
649
  else if (onClickDashboardItem) {
650
+ dispatch({
651
+ type: 'UPDATE_DASHBOARD_ITEM',
652
+ id: elem._id,
653
+ data: { ...elem, filtersApplied: dashboardFilters },
654
+ });
639
655
  onClickDashboardItem({
640
656
  ...dashboard[elem._id],
657
+ _id: elem._id,
641
658
  error_id: elem._id,
642
659
  name: elem.name,
643
660
  query: elem.queryString,
@@ -167,7 +167,7 @@ export const reportBuilderOptions = [
167
167
  ];
168
168
  export const getRangeFromPreset = (preset) => {
169
169
  const foundPreset = defaultOptions.find((elem) => elem.value === preset);
170
- return [foundPreset?.startDate || null, new Date(), foundPreset?.value || ''];
170
+ return [foundPreset?.startDate || null, endOfToday(), foundPreset?.value || ''];
171
171
  };
172
172
  export const getDateStyles = (theme, date, finalStartDate, finalEndDate, hoveredDate, isDateDisabled) => {
173
173
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"SQLEditor.d.ts","sourceRoot":"","sources":["../../src/SQLEditor.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAmD,MAAM,OAAO,CAAC;AAUxE,wBAAgB,qBAAqB,CAAC,MAAM,KAAA;;;;;EA0E3C;AA2BD,UAAU,oBAAoB;IAC5B,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,UAAU,cAAc;IACtB,cAAc,EAAE,KAAK,CAAC,aAAa,CAAC;IAEpC,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,GAAG,CAAC,OAAO,CAAC;IAC/D,wBAAwB,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,GAAG,CAAC,OAAO,CAAC;IAExE,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,uBAAuB,KAAK,GAAG,CAAC,OAAO,CAAC;IACrE,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,GAAG,CAAC,OAAO,CAAC;IAC7D,gBAAgB,CAAC,EAAE,MAAM,GAAG,CAAC,OAAO,CAAC;IACrC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACxC,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAC9C,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAC5C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,aAAa,CAAC,EAAE,GAAG,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,wBAAwB,CAAC,EAAE,MAAM,IAAI,CAAC;CACvC;AAQD,UAAU,mBAAmB;IAC3B,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,OAAO,EAAE,GAAG,EAAE,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,uBAAuB;IAC/B,QAAQ,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AA+ED,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,EAClC,cAAoC,EACpC,eAAe,EACf,wBAAwB,EACxB,kBAAkB,EAClB,cAAc,EACd,eAAuB,EACvB,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,eAAe,EACf,cAAc,EACd,UAAkB,EAClB,mBAA2B,EAC3B,sBAA8B,EAC9B,oBAA4B,EAC5B,wBAAgC,EAChC,oBAAoB,EACpB,iBAAiB,EACjB,uBAAuB,EACvB,wBAAwB,EACxB,yBAA8C,EAC9C,aAAyB,GAC1B,EAAE,cAAc,2CA2YhB"}
1
+ {"version":3,"file":"SQLEditor.d.ts","sourceRoot":"","sources":["../../src/SQLEditor.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAmD,MAAM,OAAO,CAAC;AAUxE,wBAAgB,qBAAqB,CAAC,MAAM,KAAA;;;;;EAwE3C;AA2BD,UAAU,oBAAoB;IAC5B,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,UAAU,cAAc;IACtB,cAAc,EAAE,KAAK,CAAC,aAAa,CAAC;IAEpC,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,GAAG,CAAC,OAAO,CAAC;IAC/D,wBAAwB,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,GAAG,CAAC,OAAO,CAAC;IAExE,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,uBAAuB,KAAK,GAAG,CAAC,OAAO,CAAC;IACrE,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,GAAG,CAAC,OAAO,CAAC;IAC7D,gBAAgB,CAAC,EAAE,MAAM,GAAG,CAAC,OAAO,CAAC;IACrC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACxC,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAC9C,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAC5C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,aAAa,CAAC,EAAE,GAAG,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,wBAAwB,CAAC,EAAE,MAAM,IAAI,CAAC;CACvC;AAQD,UAAU,mBAAmB;IAC3B,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,OAAO,EAAE,GAAG,EAAE,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,uBAAuB;IAC/B,QAAQ,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AA+ED,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,EAClC,cAAoC,EACpC,eAAe,EACf,wBAAwB,EACxB,kBAAkB,EAClB,cAAc,EACd,eAAuB,EACvB,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,eAAe,EACf,cAAc,EACd,UAAkB,EAClB,mBAA2B,EAC3B,sBAA8B,EAC9B,oBAA4B,EAC5B,wBAAgC,EAChC,oBAAoB,EACpB,iBAAiB,EACjB,uBAAuB,EACvB,wBAAwB,EACxB,yBAA8C,EAC9C,aAAyB,GAC1B,EAAE,cAAc,2CA2YhB"}
@@ -25,12 +25,10 @@ export function convertPostgresColumn(column) {
25
25
  case 1082: // date
26
26
  case 1083: // time
27
27
  case 1184: // timestamptz
28
- case 1186: // interval
29
- format = 'interval';
30
- break;
31
28
  case 1114: // timestamp
32
29
  format = 'MMM_dd_yyyy';
33
30
  break;
31
+ case 1186: // interval
34
32
  case 1043: // varchar
35
33
  default:
36
34
  format = 'string';
@@ -468,7 +466,7 @@ function SchemaItem({ elem, theme, index }) {
468
466
  paddingBottom: 12,
469
467
  paddingLeft: 0,
470
468
  cursor: 'pointer',
471
- userSelect: 'none'
469
+ userSelect: 'none',
472
470
  }, children: isOpen ? (_jsx("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", width: "12", height: "12", fill: theme.secondaryTextColor, children: _jsx("path", { fillRule: "evenodd", d: "M12.53 16.28a.75.75 0 01-1.06 0l-7.5-7.5a.75.75 0 011.06-1.06L12 14.69l6.97-6.97a.75.75 0 111.06 1.06l-7.5 7.5z", clipRule: "evenodd" }) })) : (_jsx("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", width: "12", height: "12", fill: theme.secondaryTextColor, children: _jsx("path", { fillRule: "evenodd", d: "M16.28 11.47a.75.75 0 010 1.06l-7.5 7.5a.75.75 0 01-1.06-1.06L14.69 12 7.72 5.03a.75.75 0 011.06-1.06l7.5 7.5z", clipRule: "evenodd" }) })) })] }), isOpen ? (_jsx("div", { style: {
473
471
  paddingBottom: theme.padding,
474
472
  display: 'flex',
package/dist/esm/Table.js CHANGED
@@ -444,8 +444,7 @@ const ChartUpdater = ({ chartId, containerStyle, dashboard, dispatch, client, da
444
444
  filters: [...Object.values(dashboardFilters)],
445
445
  };
446
446
  const resp = await getData(client, 'itempost', 'omit', hostedBody, cloudBody);
447
- if (resp) {
448
- setLoading(false);
447
+ if (resp && resp.name !== "error") {
449
448
  if (resp.compareRows) {
450
449
  mergeComparisonRange(resp);
451
450
  }
@@ -458,6 +457,7 @@ const ChartUpdater = ({ chartId, containerStyle, dashboard, dispatch, client, da
458
457
  },
459
458
  });
460
459
  }
460
+ setLoading(false);
461
461
  }
462
462
  catch (e) {
463
463
  console.log('Error fetching chart: ', e);
@@ -0,0 +1,3 @@
1
+ /// <reference types="react" />
2
+ export default function ChartError({ containerStyle }: any): JSX.Element;
3
+ //# sourceMappingURL=ChartError.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChartError.d.ts","sourceRoot":"","sources":["../../../../src/components/Chart/ChartError.tsx"],"names":[],"mappings":";AAGA,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EAAE,cAAc,EAAE,EAAE,GAAG,GAAG,GAAG,CAAC,OAAO,CAoCvE"}
@@ -0,0 +1,26 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useContext } from 'react';
3
+ import { ThemeContext } from '../../Context';
4
+ export default function ChartError({ containerStyle }) {
5
+ const [theme] = useContext(ThemeContext);
6
+ return (_jsx("div", { style: {
7
+ ...containerStyle,
8
+ boxSizing: 'content-box',
9
+ height: '100%',
10
+ }, children: _jsx("div", { style: {
11
+ height: containerStyle?.height,
12
+ width: '100%',
13
+ boxSizing: 'content-box',
14
+ borderRadius: 8,
15
+ overflow: 'hidden',
16
+ }, children: _jsx("div", { style: {
17
+ paddingTop: '60px',
18
+ display: 'flex',
19
+ flex: '1 0 auto',
20
+ margin: 'auto',
21
+ justifyContent: 'center',
22
+ alignItems: 'center',
23
+ fontSize: 13,
24
+ color: theme?.secondaryTextColor || 'rgb(55, 65, 81)',
25
+ }, children: "Failed to fetch data." }) }) }));
26
+ }
@@ -0,0 +1,3 @@
1
+ /// <reference types="react" />
2
+ export default function ChartSkeleton({ containerStyle }: any): JSX.Element;
3
+ //# sourceMappingURL=ChartSkeleton.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChartSkeleton.d.ts","sourceRoot":"","sources":["../../../../src/components/Chart/ChartSkeleton.tsx"],"names":[],"mappings":";AAGA,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EAAE,cAAc,EAAE,EAAE,GAAG,GAAG,GAAG,CAAC,OAAO,CAyE1E"}
@@ -0,0 +1,17 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useContext } from 'react';
3
+ import { ThemeContext } from '../../Context';
4
+ export default function ChartSkeleton({ containerStyle }) {
5
+ const [theme] = useContext(ThemeContext);
6
+ return (_jsx("div", { style: {
7
+ ...containerStyle,
8
+ boxSizing: 'content-box',
9
+ height: '100%',
10
+ }, children: _jsx("div", { style: {
11
+ height: containerStyle?.height,
12
+ width: '100%',
13
+ boxSizing: 'content-box',
14
+ borderRadius: 8,
15
+ overflow: 'hidden',
16
+ }, children: _jsxs("svg", { width: "100%", height: "100%", xmlns: "http://www.w3.org/2000/svg", xmlnsXlink: "http://www.w3.org/1999/xlink", children: [_jsx("rect", { width: "100%", height: "100%", fill: theme?.loadingStateBackgroundColor || '#F9F9FA' }), _jsx("defs", { fill: theme?.loadingStateBackgroundColor || '#F9F9FA', children: _jsxs("linearGradient", { id: "skeletonGradient", x1: "0%", y1: "0%", x2: "10%", y2: "0%", gradientUnits: "userSpaceOnUse", children: [_jsx("stop", { offset: "0%", stopColor: "rgba(255,255,255,0)" }), _jsx("stop", { offset: "50%", stopColor: "#FEFEFE" }), _jsx("stop", { offset: "100%", stopColor: "rgba(255,255,255,0)" }), _jsx("animate", { attributeName: "x1", from: "-100%", to: "100%", dur: "2s", repeatCount: "indefinite" }), _jsx("animate", { attributeName: "x2", from: "-50%", to: "150%", dur: "2s", repeatCount: "indefinite" })] }) }), _jsx("rect", { width: "50%", height: "100%", fill: "url(#skeletonGradient)", children: _jsx("animate", { attributeName: "x", from: "-100%", to: "100%", dur: "2s", repeatCount: "indefinite" }) })] }) }) }));
17
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"useQuill.d.ts","sourceRoot":"","sources":["../../../src/hooks/useQuill.ts"],"names":[],"mappings":"AAMA,UAAU,MAAM;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,KAAK;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,UAAU;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,WAAW;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,QAAQ,YACV,MAAM;UAET,WAAW,GAAG,IAAI;aACf,OAAO;WACT,MAAM,GAAG,IAAI;CA2ErB,CAAC"}
1
+ {"version":3,"file":"useQuill.d.ts","sourceRoot":"","sources":["../../../src/hooks/useQuill.ts"],"names":[],"mappings":"AAUA,UAAU,MAAM;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,KAAK;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,UAAU;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,WAAW;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,QAAQ,YACV,MAAM;UAET,WAAW,GAAG,IAAI;aACf,OAAO;WACT,MAAM,GAAG,IAAI;CAgFrB,CAAC"}
@@ -1,6 +1,6 @@
1
1
  // @ts-nocheck
2
2
  import { useContext, useEffect, useState } from 'react';
3
- import { ClientContext, DashboardContext, DashboardFiltersContext } from '../Context';
3
+ import { ClientContext, DashboardContext, DashboardFiltersContext, } from '../Context';
4
4
  import { getData } from '../utils/dataFetcher';
5
5
  import { mergeComparisonRange } from '../utils/merge';
6
6
  export const useQuill = (chartId) => {
@@ -39,17 +39,22 @@ export const useQuill = (chartId) => {
39
39
  };
40
40
  const resp = await getData(client, 'itempost', 'same-origin', hostedBody, cloudBody);
41
41
  if (resp) {
42
- setLoading(false);
43
- if (resp.compareRows) {
44
- mergeComparisonRange(resp);
42
+ if (resp.name === 'error') {
43
+ setError(JSON.stringify(resp));
44
+ }
45
+ else {
46
+ if (resp.compareRows) {
47
+ mergeComparisonRange(resp);
48
+ }
49
+ setData(resp);
50
+ dispatch({
51
+ type: 'UPDATE_DASHBOARD_ITEM',
52
+ id: chartId,
53
+ data: { ...resp, filtersApplied: dashboardFilters },
54
+ });
45
55
  }
46
- setData(resp);
47
- dispatch({
48
- type: 'UPDATE_DASHBOARD_ITEM',
49
- id: chartId,
50
- data: { ...resp, filtersApplied: dashboardFilters },
51
- });
52
56
  }
57
+ setLoading(false);
53
58
  }
54
59
  catch (e) {
55
60
  if (typeof e === 'string' || (typeof e === 'object' && e !== null)) {
@@ -58,6 +63,7 @@ export const useQuill = (chartId) => {
58
63
  else {
59
64
  setError('error');
60
65
  }
66
+ setLoading(false);
61
67
  }
62
68
  }
63
69
  }
@@ -1 +1 @@
1
- {"version":3,"file":"axisFormatter.d.ts","sourceRoot":"","sources":["../../../src/utils/axisFormatter.ts"],"names":[],"mappings":"AAGA,KAAK,KAAK,GAAG;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,SAAS,CAAC;CACnB,CAAC;AAEF,KAAK,KAAK,GAAG;IACX,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC;IACpD,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IACjC,MAAM,EAAE,KAAK,EAAE,CAAC;CACjB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,aAAa,8BAIvB,KAAK,KAAG,MAAM,GAAG,MAAM,GAAG,OAgC5B,CAAC"}
1
+ {"version":3,"file":"axisFormatter.d.ts","sourceRoot":"","sources":["../../../src/utils/axisFormatter.ts"],"names":[],"mappings":"AAGA,KAAK,KAAK,GAAG;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,SAAS,CAAC;CACnB,CAAC;AAEF,KAAK,KAAK,GAAG;IACX,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC;IACpD,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IACjC,MAAM,EAAE,KAAK,EAAE,CAAC;CACjB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,aAAa,8BAIvB,KAAK,KAAG,MAAM,GAAG,MAAM,GAAG,OA+B5B,CAAC"}
@@ -22,7 +22,6 @@ export const axisFormatter = ({ value, field, fields, }) => {
22
22
  one_decimal_place: formatOneDecimalPlace,
23
23
  two_decimal_places: formatTwoDecimalPlaces,
24
24
  string: formatString,
25
- interval: formatInterval,
26
25
  yyyy: format_YYYY,
27
26
  MMM_yyyy: format_MMM_yyyy,
28
27
  MMM_dd_yyyy: format_MMM_dd_yyyy,
@@ -36,7 +35,7 @@ export const axisFormatter = ({ value, field, fields, }) => {
36
35
  if (Object.keys(HANDLERS).includes(formatType)) {
37
36
  return HANDLERS[formatType](value);
38
37
  }
39
- return value.toString(); // by default make this value a string
38
+ return formatString(value); // by default make this value a string
40
39
  };
41
40
  /**
42
41
  * HELPER FUNCTION DEFINITIONS
@@ -44,22 +43,12 @@ export const axisFormatter = ({ value, field, fields, }) => {
44
43
  /**
45
44
  * Formats the value as a string using the built-in converstion.
46
45
  */
47
- const formatString = (value) => value.toString();
48
- /**
49
- * Formats the value as an interval.
50
- */
51
- const INTERVALS = [
52
- 'years',
53
- 'months',
54
- 'days',
55
- 'hours',
56
- 'minutes',
57
- 'seconds',
58
- ];
59
- const formatInterval = (interval) => INTERVALS.map((component) => interval[component])
60
- .filter((value) => value !== undefined && value !== null)
61
- .map((value, index) => `${value} ${INTERVALS[index]}`)
62
- .join(', ');
46
+ const formatString = (value) => {
47
+ if (typeof value === 'object') {
48
+ return JSON.stringify(value);
49
+ }
50
+ return value.toString();
51
+ };
63
52
  /**
64
53
  * Formats the value as a (rounded) currency amount in dollars.
65
54
  *
@@ -1 +1 @@
1
- {"version":3,"file":"valueFormatter.d.ts","sourceRoot":"","sources":["../../../src/utils/valueFormatter.ts"],"names":[],"mappings":"AAGA,KAAK,KAAK,GAAG;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,SAAS,CAAC;CACnB,CAAC;AAEF,KAAK,KAAK,GAAG;IACX,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC;IACpD,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IACjC,MAAM,EAAE,KAAK,EAAE,CAAC;CACjB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,8BAIxB,KAAK,KAAG,MAAM,GAAG,MAAM,GAAG,OAgC5B,CAAC"}
1
+ {"version":3,"file":"valueFormatter.d.ts","sourceRoot":"","sources":["../../../src/utils/valueFormatter.ts"],"names":[],"mappings":"AAGA,KAAK,KAAK,GAAG;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,SAAS,CAAC;CACnB,CAAC;AAEF,KAAK,KAAK,GAAG;IACX,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC;IACpD,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IACjC,MAAM,EAAE,KAAK,EAAE,CAAC;CACjB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,8BAIxB,KAAK,KAAG,MAAM,GAAG,MAAM,GAAG,OA+B5B,CAAC"}
@@ -19,7 +19,6 @@ export const valueFormatter = ({ value, field, fields, }) => {
19
19
  one_decimal_place: formatOneDecimalPlace,
20
20
  two_decimal_places: formatTwoDecimalPlaces,
21
21
  string: formatString,
22
- interval: formatInterval,
23
22
  yyyy: format_YYYY,
24
23
  MMM_yyyy: format_MMM_yyyy,
25
24
  MMM_dd_yyyy: format_MMM_dd_yyyy,
@@ -33,7 +32,7 @@ export const valueFormatter = ({ value, field, fields, }) => {
33
32
  if (Object.keys(HANDLERS).includes(formatType)) {
34
33
  return HANDLERS[formatType](value);
35
34
  }
36
- return value.toString(); // by default make this value a string
35
+ return formatString(value); // by default make this value a string
37
36
  };
38
37
  /**
39
38
  * HELPER FUNCTION DEFINITIONS
@@ -41,22 +40,12 @@ export const valueFormatter = ({ value, field, fields, }) => {
41
40
  /**
42
41
  * Formats the value as a string using the built-in converstion.
43
42
  */
44
- const formatString = (value) => value.toString();
45
- /**
46
- * Formats the value as an interval.
47
- */
48
- const INTERVALS = [
49
- 'years',
50
- 'months',
51
- 'days',
52
- 'hours',
53
- 'minutes',
54
- 'seconds',
55
- ];
56
- const formatInterval = (interval) => INTERVALS.map((component) => interval[component])
57
- .filter((value) => value !== undefined && value !== null)
58
- .map((value, index) => `${value} ${INTERVALS[index]}`)
59
- .join(', ');
43
+ const formatString = (value) => {
44
+ if (typeof value === 'object') {
45
+ return JSON.stringify(value);
46
+ }
47
+ return value.toString();
48
+ };
60
49
  /**
61
50
  * Formats the value as a (rounded) currency amount in dollars.
62
51
  *
@@ -1 +1 @@
1
- {"version":3,"file":"valueFormatterCSV.d.ts","sourceRoot":"","sources":["../../../src/utils/valueFormatterCSV.ts"],"names":[],"mappings":"AAGA,KAAK,KAAK,GAAG;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,SAAS,CAAC;CACnB,CAAC;AAEF,KAAK,KAAK,GAAG;IACX,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC;IACpD,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IACjC,MAAM,EAAE,KAAK,EAAE,CAAC;CACjB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,8BAI3B,KAAK,KAAG,MAAM,GAAG,MAAM,GAAG,OAgC5B,CAAC"}
1
+ {"version":3,"file":"valueFormatterCSV.d.ts","sourceRoot":"","sources":["../../../src/utils/valueFormatterCSV.ts"],"names":[],"mappings":"AAGA,KAAK,KAAK,GAAG;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,SAAS,CAAC;CACnB,CAAC;AAEF,KAAK,KAAK,GAAG;IACX,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC;IACpD,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IACjC,MAAM,EAAE,KAAK,EAAE,CAAC;CACjB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,8BAI3B,KAAK,KAAG,MAAM,GAAG,MAAM,GAAG,OA+B5B,CAAC"}
@@ -19,7 +19,6 @@ export const valueFormatterCSV = ({ value, field, fields, }) => {
19
19
  one_decimal_place: formatOneDecimalPlace,
20
20
  two_decimal_places: formatTwoDecimalPlaces,
21
21
  string: formatString,
22
- interval: formatInterval,
23
22
  yyyy: format_YYYY,
24
23
  MMM_yyyy: format_MMM_yyyy,
25
24
  MMM_dd_yyyy: format_MMM_dd_yyyy,
@@ -33,12 +32,17 @@ export const valueFormatterCSV = ({ value, field, fields, }) => {
33
32
  if (Object.keys(HANDLERS).includes(formatType)) {
34
33
  return HANDLERS[formatType](value);
35
34
  }
36
- return value.toString(); // by default make this value a string
35
+ return formatString(value); // by default make this value a string
37
36
  };
38
37
  /**
39
38
  * HELPER FUNCTION DEFINITIONS
40
39
  */
41
- const formatString = (value) => value.toString();
40
+ const formatString = (value) => {
41
+ if (typeof value === 'object') {
42
+ return JSON.stringify(value);
43
+ }
44
+ return value.toString();
45
+ };
42
46
  const formatDollarAmount = (value) => Number(value ?? 0);
43
47
  const formatDollarCents = (value) => Number(value ?? 0);
44
48
  const formatWholeNumber = (value) => Math.round(Number(value));
@@ -89,15 +93,3 @@ const format_wo_yyyy = (value) => {
89
93
  return 'Invalid date';
90
94
  return `${getWeek(utcDate)},${utcDate.getFullYear()}`;
91
95
  };
92
- const INTERVALS = [
93
- 'years',
94
- 'months',
95
- 'days',
96
- 'hours',
97
- 'minutes',
98
- 'seconds',
99
- ];
100
- const formatInterval = (interval) => INTERVALS.map((component) => interval[component])
101
- .filter((value) => value !== undefined && value !== null)
102
- .map((value, index) => `${value} ${INTERVALS[index]}`)
103
- .join(', ');
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@quillsql/react",
3
- "version": "2.10.3",
3
+ "version": "2.10.5",
4
4
  "exports": {
5
5
  ".": {
6
6
  "import": "./dist/esm/index.js",