@quillsql/react 2.10.4 → 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 (53) hide show
  1. package/dist/cjs/Chart.d.ts.map +1 -1
  2. package/dist/cjs/Chart.js +11 -14
  3. package/dist/cjs/ChartBuilder.d.ts.map +1 -1
  4. package/dist/cjs/ChartBuilder.js +18 -9
  5. package/dist/cjs/ChartEditor.js +1 -1
  6. package/dist/cjs/Dashboard.d.ts +1 -0
  7. package/dist/cjs/Dashboard.d.ts.map +1 -1
  8. package/dist/cjs/Dashboard.js +19 -2
  9. package/dist/cjs/DateRangePicker/dateRangePickerUtils.js +1 -1
  10. package/dist/cjs/SQLEditor.d.ts.map +1 -1
  11. package/dist/cjs/SQLEditor.js +2 -4
  12. package/dist/cjs/Table.js +2 -2
  13. package/dist/cjs/components/Chart/ChartError.d.ts +3 -0
  14. package/dist/cjs/components/Chart/ChartError.d.ts.map +1 -0
  15. package/dist/cjs/components/Chart/ChartError.js +29 -0
  16. package/dist/cjs/components/Chart/ChartSkeleton.d.ts +3 -0
  17. package/dist/cjs/components/Chart/ChartSkeleton.d.ts.map +1 -0
  18. package/dist/cjs/components/Chart/ChartSkeleton.js +20 -0
  19. package/dist/cjs/hooks/useQuill.d.ts.map +1 -1
  20. package/dist/cjs/hooks/useQuill.js +15 -9
  21. package/dist/cjs/utils/axisFormatter.d.ts.map +1 -1
  22. package/dist/cjs/utils/axisFormatter.js +7 -18
  23. package/dist/cjs/utils/valueFormatter.d.ts.map +1 -1
  24. package/dist/cjs/utils/valueFormatter.js +7 -18
  25. package/dist/cjs/utils/valueFormatterCSV.d.ts.map +1 -1
  26. package/dist/cjs/utils/valueFormatterCSV.js +7 -15
  27. package/dist/esm/Chart.d.ts.map +1 -1
  28. package/dist/esm/Chart.js +12 -15
  29. package/dist/esm/ChartBuilder.d.ts.map +1 -1
  30. package/dist/esm/ChartBuilder.js +18 -9
  31. package/dist/esm/ChartEditor.js +1 -1
  32. package/dist/esm/Dashboard.d.ts +1 -0
  33. package/dist/esm/Dashboard.d.ts.map +1 -1
  34. package/dist/esm/Dashboard.js +18 -1
  35. package/dist/esm/DateRangePicker/dateRangePickerUtils.js +1 -1
  36. package/dist/esm/SQLEditor.d.ts.map +1 -1
  37. package/dist/esm/SQLEditor.js +2 -4
  38. package/dist/esm/Table.js +2 -2
  39. package/dist/esm/components/Chart/ChartError.d.ts +3 -0
  40. package/dist/esm/components/Chart/ChartError.d.ts.map +1 -0
  41. package/dist/esm/components/Chart/ChartError.js +26 -0
  42. package/dist/esm/components/Chart/ChartSkeleton.d.ts +3 -0
  43. package/dist/esm/components/Chart/ChartSkeleton.d.ts.map +1 -0
  44. package/dist/esm/components/Chart/ChartSkeleton.js +17 -0
  45. package/dist/esm/hooks/useQuill.d.ts.map +1 -1
  46. package/dist/esm/hooks/useQuill.js +16 -10
  47. package/dist/esm/utils/axisFormatter.d.ts.map +1 -1
  48. package/dist/esm/utils/axisFormatter.js +7 -18
  49. package/dist/esm/utils/valueFormatter.d.ts.map +1 -1
  50. package/dist/esm/utils/valueFormatter.js +7 -18
  51. package/dist/esm/utils/valueFormatterCSV.d.ts.map +1 -1
  52. package/dist/esm/utils/valueFormatterCSV.js +7 -15
  53. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Chart.d.ts","sourceRoot":"","sources":["../../src/Chart.tsx"],"names":[],"mappings":";AAyBA,UAAU,cAAc;IACtB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,cAAc,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IACrC,UAAU,CAAC,EAAE,GAAG,CAAC;IACjB,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,UAAU,WAAY,SAAQ,cAAc;IAC1C,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,WAAW,GACnB,cAAc,GACd,mBAAmB,GACnB,oBAAoB,GACpB,eAAe,GACf,cAAc,GACd,UAAU,GACV,aAAa,GACb,eAAe,GACf,oBAAoB,GACpB,UAAU,GACV,SAAS,GACT,QAAQ,CAAC;AAEb,UAAU,UAAU;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,WAAW,CAAC;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,WAAW,CAAC;IACzB,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,OAAO,EAAE,GAAG,EAAE,CAAC;IACf,KAAK,EAAE,GAAG,CAAC;CACZ;AAED,UAAU,UAAW,SAAQ,cAAc;IACzC,MAAM,EAAE,aAAa,GAAG,GAAG,CAAC;CAC7B;AAED,KAAK,UAAU,GAAG,WAAW,GAAG,UAAU,CAAC;AAgF3C,QAAA,MAAM,KAAK,8JAYR,UAAU,4CAkCZ,CAAC;AA2hBF,eAAe,KAAK,CAAC"}
1
+ {"version":3,"file":"Chart.d.ts","sourceRoot":"","sources":["../../src/Chart.tsx"],"names":[],"mappings":";AA2BA,UAAU,cAAc;IACtB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,cAAc,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IACrC,UAAU,CAAC,EAAE,GAAG,CAAC;IACjB,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,UAAU,WAAY,SAAQ,cAAc;IAC1C,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,WAAW,GACnB,cAAc,GACd,mBAAmB,GACnB,oBAAoB,GACpB,eAAe,GACf,cAAc,GACd,UAAU,GACV,aAAa,GACb,eAAe,GACf,oBAAoB,GACpB,UAAU,GACV,SAAS,GACT,QAAQ,CAAC;AAEb,UAAU,UAAU;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,WAAW,CAAC;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,WAAW,CAAC;IACzB,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,OAAO,EAAE,GAAG,EAAE,CAAC;IACf,KAAK,EAAE,GAAG,CAAC;CACZ;AAED,UAAU,UAAW,SAAQ,cAAc;IACzC,MAAM,EAAE,aAAa,GAAG,GAAG,CAAC;CAC7B;AAED,KAAK,UAAU,GAAG,WAAW,GAAG,UAAU,CAAC;AAgF3C,QAAA,MAAM,KAAK,8JAYR,UAAU,4CAkCZ,CAAC;AAydF,eAAe,KAAK,CAAC"}
package/dist/cjs/Chart.js CHANGED
@@ -19,6 +19,8 @@ const valueFormatter_1 = require("./utils/valueFormatter");
19
19
  const LineChart_1 = __importDefault(require("./components/Chart/LineChart"));
20
20
  const BarChart_1 = __importDefault(require("./components/Chart/BarChart"));
21
21
  const merge_1 = require("./utils/merge");
22
+ const ChartSkeleton_1 = __importDefault(require("./components/Chart/ChartSkeleton"));
23
+ const ChartError_1 = __importDefault(require("./components/Chart/ChartError"));
22
24
  // @ts-ignore
23
25
  function sumByKey(arr, key) {
24
26
  // @ts-ignore
@@ -133,8 +135,7 @@ const ChartUpdater = ({ colors, chartId, config, containerStyle, dashboard, disp
133
135
  filters: yoloFilters,
134
136
  };
135
137
  const resp = await (0, dataFetcher_1.getData)(client, 'itempost', 'omit', hostedBody, cloudBody);
136
- if (resp) {
137
- setLoading(false);
138
+ if (resp && resp.name !== 'error') {
138
139
  setIsComparison(!!resp.compareRows?.length);
139
140
  if (resp.compareRows) {
140
141
  (0, merge_1.mergeComparisonRange)(resp);
@@ -148,6 +149,7 @@ const ChartUpdater = ({ colors, chartId, config, containerStyle, dashboard, disp
148
149
  },
149
150
  });
150
151
  }
152
+ setLoading(false);
151
153
  }
152
154
  catch (e) {
153
155
  console.log('Error fetching chart: ', e);
@@ -227,17 +229,12 @@ const ChartUpdater = ({ colors, chartId, config, containerStyle, dashboard, disp
227
229
  : null;
228
230
  }, [pivotTable]);
229
231
  if (!config && (!dashboard[chartId] || loading)) {
230
- return ((0, jsx_runtime_1.jsx)("div", { style: {
231
- ...containerStyle,
232
- boxSizing: 'content-box',
233
- height: '100%',
234
- }, children: (0, jsx_runtime_1.jsx)("div", { style: {
235
- height: containerStyle?.height,
236
- width: '100%',
237
- boxSizing: 'content-box',
238
- borderRadius: 8,
239
- overflow: 'hidden',
240
- }, children: (0, jsx_runtime_1.jsxs)("svg", { width: "100%", height: "100%", xmlns: "http://www.w3.org/2000/svg", xmlnsXlink: "http://www.w3.org/1999/xlink", children: [(0, jsx_runtime_1.jsx)("rect", { width: "100%", height: "100%", fill: theme?.loadingStateBackgroundColor || '#F9F9FA' }), (0, jsx_runtime_1.jsx)("defs", { fill: theme?.loadingStateBackgroundColor || '#F9F9FA', children: (0, jsx_runtime_1.jsxs)("linearGradient", { id: "skeletonGradient", x1: "0%", y1: "0%", x2: "10%", y2: "0%", gradientUnits: "userSpaceOnUse", children: [(0, jsx_runtime_1.jsx)("stop", { offset: "0%", stopColor: "rgba(255,255,255,0)" }), (0, jsx_runtime_1.jsx)("stop", { offset: "50%", stopColor: "#FEFEFE" }), (0, jsx_runtime_1.jsx)("stop", { offset: "100%", stopColor: "rgba(255,255,255,0)" }), (0, jsx_runtime_1.jsx)("animate", { attributeName: "x1", from: "-100%", to: "100%", dur: "2s", repeatCount: "indefinite" }), (0, jsx_runtime_1.jsx)("animate", { attributeName: "x2", from: "-50%", to: "150%", dur: "2s", repeatCount: "indefinite" })] }) }), (0, jsx_runtime_1.jsx)("rect", { width: "50%", height: "100%", fill: "url(#skeletonGradient)", children: (0, jsx_runtime_1.jsx)("animate", { attributeName: "x", from: "-100%", to: "100%", dur: "2s", repeatCount: "indefinite" }) })] }) }) }));
232
+ if (loading) {
233
+ return (0, jsx_runtime_1.jsx)(ChartSkeleton_1.default, { containerStyle: containerStyle });
234
+ }
235
+ else {
236
+ return (0, jsx_runtime_1.jsx)(ChartError_1.default, { containerStyle: containerStyle });
237
+ }
241
238
  }
242
239
  // TODO: Figure out if we can use ?? to coalesce these into the variable.
243
240
  const chartTypes = [config?.chartType, dashboard[chartId]?.chartType];
@@ -265,7 +262,7 @@ const ChartUpdater = ({ colors, chartId, config, containerStyle, dashboard, disp
265
262
  }
266
263
  if (chartTypes.includes('table')) {
267
264
  const data = dashboard[chartId] ? dashboard[chartId] : config;
268
- return ((0, jsx_runtime_1.jsx)(Table_1.SpecialTable, { rows: pivotTable?.rows ?? data.rows ?? [], columns: pivotTable?.columns ?? data.yAxisFields ?? data.columns, height: '400px', containerStyle: {
265
+ return ((0, jsx_runtime_1.jsx)(Table_1.SpecialTable, { rows: pivotTable?.rows ?? data.rows ?? [], columns: pivotTable?.columns ?? data.columns ?? data.yAxisFields, height: '400px', containerStyle: {
269
266
  ...containerStyle,
270
267
  }, theme: theme, isTableChart: true, name: data.name }));
271
268
  }
@@ -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"}
@@ -37,13 +37,9 @@ const POSTGRES_DATE_TYPES = [
37
37
  'time',
38
38
  'timetz',
39
39
  ];
40
- async function getReferencedTables(client, sqlQuery, dbTables) {
41
- // const parser = new Parser();
40
+ function getTablesHelper(ast, allTables) {
42
41
  const tables = [];
43
42
  const withAliases = [];
44
- const resp = await (0, dataFetcher_1.getDataFromCloud)(client, `astify`, { query: sqlQuery });
45
- let ast = resp.ast;
46
- ast = ast.length ? ast[0] : ast;
47
43
  if (ast.with && ast.with.length) {
48
44
  for (let i = 0; i < ast.with.length; i++) {
49
45
  withAliases.push(ast.with[i].name.value);
@@ -57,10 +53,19 @@ async function getReferencedTables(client, sqlQuery, dbTables) {
57
53
  }
58
54
  }
59
55
  }
60
- const astFrom = ast?.from?.map((elem) => elem.table) || [];
56
+ if (ast.from && ast.from.length) {
57
+ for (let i = 0; i < ast.from.length; i++) {
58
+ if (ast.from[i].expr && ast.from[i].expr.ast) {
59
+ const recursiveAST = ast.from[i].expr.ast;
60
+ const recursiveTables = getTablesHelper(recursiveAST, allTables);
61
+ tables.push(...recursiveTables.map((t) => t.name));
62
+ }
63
+ }
64
+ }
65
+ const astFrom = ast?.from?.filter((t) => t.table).map((elem) => elem.table) || [];
61
66
  const astSelect = ast?.select?.from?.map((elem) => elem.table) || [];
62
67
  const tablesInQuery = [...tables, ...astFrom, ...astSelect].filter((elem) => !withAliases.includes(elem));
63
- return dbTables
68
+ return allTables
64
69
  .filter((table) => tablesInQuery.includes(table.displayName))
65
70
  .map((table) => {
66
71
  return {
@@ -70,6 +75,10 @@ async function getReferencedTables(client, sqlQuery, dbTables) {
70
75
  })
71
76
  .filter((table) => table.columns.length > 0);
72
77
  }
78
+ async function getReferencedTables(client, sqlQuery, dbTables) {
79
+ const resp = await (0, dataFetcher_1.getDataFromCloud)(client, `astify`, { query: sqlQuery });
80
+ return getTablesHelper(resp.ast.length ? resp.ast[0] : resp.ast, dbTables);
81
+ }
73
82
  const AGGREGATION_TYPES = [
74
83
  { label: 'sum', value: 'sum' },
75
84
  { label: 'count', value: 'count' },
@@ -228,7 +237,7 @@ function ChartBuilderForm({ TextInput = UiComponents_1.MemoizedTextInput, Select
228
237
  };
229
238
  const firstNumberColumn = columns?.find((col) => exports.numberFormatOptions.includes(col.format));
230
239
  const formEmptyState = {
231
- name: '',
240
+ name: 'My Chart',
232
241
  dashboardName: dashboardOptions?.[0]?.label,
233
242
  columns: columns.map((col) => {
234
243
  return { ...col, label: snakeCaseToTitleCase(col.label) };
@@ -466,7 +475,7 @@ function ChartBuilderForm({ TextInput = UiComponents_1.MemoizedTextInput, Select
466
475
  }
467
476
  : { clientId: publicKey }).toString();
468
477
  const resp = await (0, dataFetcher_1.getData)(client, `dashedit2?${searchParams}`, 'same-origin', hostedBody, cloudBody);
469
- if (resp) {
478
+ if (resp && resp.name !== "error") {
470
479
  if (resp.compareRows) {
471
480
  (0, merge_1.mergeComparisonRange)(resp);
472
481
  }
@@ -47,7 +47,7 @@ function ChartEditor({ isOpen, chartId, isEditMode, admin = false, destinationDa
47
47
  filters: [],
48
48
  };
49
49
  const resp = await (0, dataFetcher_1.getData)(client, 'itempost', 'omit', hostedBody, cloudBody);
50
- if (resp) {
50
+ if (resp && resp.name !== "error") {
51
51
  if (resp.compareRows) {
52
52
  (0, merge_1.mergeComparisonRange)(resp);
53
53
  }
@@ -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":"AAEA,OAAO,KAMN,MAAM,OAAO,CAAC;AAkDf,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAK1E,UAAU,MAAM;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,UAAU,oBAAoB;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,KAAK,SAAS,GAAG,EAAE,CAAC;AAEpB,UAAU,6BAA6B;IACrC,SAAS,EAAE,SAAS,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,iBAAiB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;IAC9C,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,qBAAqB,EAAE,CAAC;IACvC,cAAc,EAAE,CAAC,MAAM,EAAE,qBAAqB,KAAK,IAAI,CAAC;IACxD,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,0BAA0B;IAClC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,UAAU,mBAAmB;IAC3B,QAAQ,EAAE,GAAG,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,UAAU,iBAAiB;IACzB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,UAAU,kBAAkB;IAC1B,QAAQ,EAAE,GAAG,CAAC;IACd,aAAa,EAAE,iBAAiB,CAAC;CAClC;AAED,UAAU,cAAc;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IACrC,oBAAoB,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC3C,mBAAmB,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC1C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oBAAoB,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC;IAC3C,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,uBAAuB,CAAC,EAAE,MAAM,GAAG,CAAC,OAAO,CAAC;IAC5C,uBAAuB,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,GAAG,CAAC,OAAO,CAAC;IACvE,sBAAsB,CAAC,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,GAAG,CAAC,OAAO,CAAC;IACpE,wBAAwB,CAAC,EAAE,CACzB,KAAK,EAAE,6BAA6B,KACjC,GAAG,CAAC,OAAO,CAAC;IACjB,qBAAqB,CAAC,EAAE,CAAC,KAAK,EAAE,0BAA0B,KAAK,GAAG,CAAC,OAAO,CAAC;IAC3E,oBAAoB,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,GAAG,CAAC,OAAO,CAAC;IACnE,eAAe,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;CAChD;AAED,UAAU,gBAAgB;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAED,eAAO,MAAM,kBAAkB,EAAE,gBAAgB,EAqBhD,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,GAAG,EAShC,CAAC;AAaF,wBAAgB,eAAe,CAAC,EAC9B,MAAM,EACN,cAAc,EACd,eAAe,EACf,wBAAwB,EACxB,KAAK,GACN;;;;;;CAAA,kDA4IA;AAujBD,eAAO,MAAM,oBAAoB,oFAO9B,6BAA6B,4CA0C/B,CAAC;AA6BF,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAChC,IAAI,EACJ,cAAc,EACd,mBAAmB,EACnB,oBAAoB,EACpB,cAAc,EACd,SAAS,EACT,oBAAoB,EACpB,WAAW,EACX,uBAA+B,EAC/B,uBAAuB,EACvB,uBAAsD,EACtD,wBAAwB,EACxB,qBAAqB,EACrB,oBAAoB,EACpB,eAAe,EACf,sBAAsB,GACvB,EAAE,cAAc,kDAmgChB"}
1
+ {"version":3,"file":"Dashboard.d.ts","sourceRoot":"","sources":["../../src/Dashboard.tsx"],"names":[],"mappings":"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"}
@@ -26,7 +26,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
26
26
  return (mod && mod.__esModule) ? mod : { "default": mod };
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.QuillDateRangePicker = exports.DashboardFilter = exports.PRIMARY_OPTIONS = exports.COMPARISON_OPTIONS = void 0;
29
+ exports.QuillDateRangePicker = exports.DashboardFilter = exports.VIDEO_ELEPHANT_OPTIONS = exports.PRIMARY_OPTIONS = exports.COMPARISON_OPTIONS = void 0;
30
30
  const jsx_runtime_1 = require("react/jsx-runtime");
31
31
  // @ts-nocheck
32
32
  /* eslint-disable @typescript-eslint/ban-ts-comment */
@@ -71,6 +71,16 @@ exports.PRIMARY_OPTIONS = [
71
71
  { value: 'LAST_6_MONTHS', text: 'Last 6 months' },
72
72
  { value: 'ALL_TIME', text: 'All time' },
73
73
  ];
74
+ exports.VIDEO_ELEPHANT_OPTIONS = [
75
+ { value: 'DECEMBER_2023', text: 'This Week' },
76
+ { value: 'NOVEMBER_2023', text: 'This Month' },
77
+ { value: 'OCTOBER_2023', text: 'This year' },
78
+ { value: 'SEPTEMBER_2023', text: 'Last 7 days' },
79
+ { value: 'AUGUST_2023', text: 'Last 30 days' },
80
+ { value: 'LAST_90_DAYS', text: 'Last 90 days' },
81
+ { value: 'LAST_6_MONTHS', text: 'Last 6 months' },
82
+ { value: 'ALL_TIME', text: 'All time' },
83
+ ];
74
84
  const FILTER_CODE_MAP = {
75
85
  wk: 'This week',
76
86
  m: 'This month',
@@ -578,6 +588,7 @@ function removeQuotes(str) {
578
588
  }
579
589
  function Dashboard({ name, containerStyle, chartContainerStyle, metricContainerStyle, maxColumnWidth, rowHeight, onClickDashboardItem, hideFilters, dateRangeFilterDisabled = false, FilterDropdownComponent, EmptyDashboardComponent = QuillEmptyDashboardComponent, DateRangePickerComponent, FilterButtonComponent, FilterModalComponent, onChangeLoading, DashboardItemComponent, }) {
580
590
  const { dateFilter } = (0, Context_1.useDateFilter)();
591
+ const { dispatch } = (0, react_1.useContext)(Context_1.DashboardContext);
581
592
  const { isLoading: isDataLoading, data, reload } = (0, useDashboard_1.useDashboard)(name);
582
593
  const [dashboardSections, setDashboardSections] = (0, react_1.useState)(null);
583
594
  const { dashboard } = (0, react_1.useContext)(Context_1.DashboardContext);
@@ -663,12 +674,18 @@ function Dashboard({ name, containerStyle, chartContainerStyle, metricContainerS
663
674
  }
664
675
  };
665
676
  const handleOnClickDashboardItem = (elem) => {
666
- if (dashboard[elem._id]._id && onClickDashboardItem) {
677
+ if (dashboard[elem._id]?._id && onClickDashboardItem) {
667
678
  onClickDashboardItem(dashboard[elem._id]);
668
679
  }
669
680
  else if (onClickDashboardItem) {
681
+ dispatch({
682
+ type: 'UPDATE_DASHBOARD_ITEM',
683
+ id: elem._id,
684
+ data: { ...elem, filtersApplied: dashboardFilters },
685
+ });
670
686
  onClickDashboardItem({
671
687
  ...dashboard[elem._id],
688
+ _id: elem._id,
672
689
  error_id: elem._id,
673
690
  name: elem.name,
674
691
  query: elem.queryString,
@@ -176,7 +176,7 @@ exports.reportBuilderOptions = [
176
176
  ];
177
177
  const getRangeFromPreset = (preset) => {
178
178
  const foundPreset = exports.defaultOptions.find((elem) => elem.value === preset);
179
- return [foundPreset?.startDate || null, new Date(), foundPreset?.value || ''];
179
+ return [foundPreset?.startDate || null, (0, date_fns_1.endOfToday)(), foundPreset?.value || ''];
180
180
  };
181
181
  exports.getRangeFromPreset = getRangeFromPreset;
182
182
  const getDateStyles = (theme, date, finalStartDate, finalEndDate, hoveredDate, isDateDisabled) => {
@@ -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"}
@@ -31,12 +31,10 @@ function convertPostgresColumn(column) {
31
31
  case 1082: // date
32
32
  case 1083: // time
33
33
  case 1184: // timestamptz
34
- case 1186: // interval
35
- format = 'interval';
36
- break;
37
34
  case 1114: // timestamp
38
35
  format = 'MMM_dd_yyyy';
39
36
  break;
37
+ case 1186: // interval
40
38
  case 1043: // varchar
41
39
  default:
42
40
  format = 'string';
@@ -476,7 +474,7 @@ function SchemaItem({ elem, theme, index }) {
476
474
  paddingBottom: 12,
477
475
  paddingLeft: 0,
478
476
  cursor: 'pointer',
479
- userSelect: 'none'
477
+ userSelect: 'none',
480
478
  }, children: isOpen ? ((0, jsx_runtime_1.jsx)("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", width: "12", height: "12", fill: theme.secondaryTextColor, children: (0, jsx_runtime_1.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" }) })) : ((0, jsx_runtime_1.jsx)("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", width: "12", height: "12", fill: theme.secondaryTextColor, children: (0, jsx_runtime_1.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 ? ((0, jsx_runtime_1.jsx)("div", { style: {
481
479
  paddingBottom: theme.padding,
482
480
  display: 'flex',
package/dist/cjs/Table.js CHANGED
@@ -448,8 +448,7 @@ const ChartUpdater = ({ chartId, containerStyle, dashboard, dispatch, client, da
448
448
  filters: [...Object.values(dashboardFilters)],
449
449
  };
450
450
  const resp = await (0, dataFetcher_1.getData)(client, 'itempost', 'omit', hostedBody, cloudBody);
451
- if (resp) {
452
- setLoading(false);
451
+ if (resp && resp.name !== "error") {
453
452
  if (resp.compareRows) {
454
453
  (0, merge_1.mergeComparisonRange)(resp);
455
454
  }
@@ -462,6 +461,7 @@ const ChartUpdater = ({ chartId, containerStyle, dashboard, dispatch, client, da
462
461
  },
463
462
  });
464
463
  }
464
+ setLoading(false);
465
465
  }
466
466
  catch (e) {
467
467
  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,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const jsx_runtime_1 = require("react/jsx-runtime");
4
+ const react_1 = require("react");
5
+ const Context_1 = require("../../Context");
6
+ function ChartError({ containerStyle }) {
7
+ const [theme] = (0, react_1.useContext)(Context_1.ThemeContext);
8
+ return ((0, jsx_runtime_1.jsx)("div", { style: {
9
+ ...containerStyle,
10
+ boxSizing: 'content-box',
11
+ height: '100%',
12
+ }, children: (0, jsx_runtime_1.jsx)("div", { style: {
13
+ height: containerStyle?.height,
14
+ width: '100%',
15
+ boxSizing: 'content-box',
16
+ borderRadius: 8,
17
+ overflow: 'hidden',
18
+ }, children: (0, jsx_runtime_1.jsx)("div", { style: {
19
+ paddingTop: '60px',
20
+ display: 'flex',
21
+ flex: '1 0 auto',
22
+ margin: 'auto',
23
+ justifyContent: 'center',
24
+ alignItems: 'center',
25
+ fontSize: 13,
26
+ color: theme?.secondaryTextColor || 'rgb(55, 65, 81)',
27
+ }, children: "Failed to fetch data." }) }) }));
28
+ }
29
+ exports.default = ChartError;
@@ -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,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const jsx_runtime_1 = require("react/jsx-runtime");
4
+ const react_1 = require("react");
5
+ const Context_1 = require("../../Context");
6
+ function ChartSkeleton({ containerStyle }) {
7
+ const [theme] = (0, react_1.useContext)(Context_1.ThemeContext);
8
+ return ((0, jsx_runtime_1.jsx)("div", { style: {
9
+ ...containerStyle,
10
+ boxSizing: 'content-box',
11
+ height: '100%',
12
+ }, children: (0, jsx_runtime_1.jsx)("div", { style: {
13
+ height: containerStyle?.height,
14
+ width: '100%',
15
+ boxSizing: 'content-box',
16
+ borderRadius: 8,
17
+ overflow: 'hidden',
18
+ }, children: (0, jsx_runtime_1.jsxs)("svg", { width: "100%", height: "100%", xmlns: "http://www.w3.org/2000/svg", xmlnsXlink: "http://www.w3.org/1999/xlink", children: [(0, jsx_runtime_1.jsx)("rect", { width: "100%", height: "100%", fill: theme?.loadingStateBackgroundColor || '#F9F9FA' }), (0, jsx_runtime_1.jsx)("defs", { fill: theme?.loadingStateBackgroundColor || '#F9F9FA', children: (0, jsx_runtime_1.jsxs)("linearGradient", { id: "skeletonGradient", x1: "0%", y1: "0%", x2: "10%", y2: "0%", gradientUnits: "userSpaceOnUse", children: [(0, jsx_runtime_1.jsx)("stop", { offset: "0%", stopColor: "rgba(255,255,255,0)" }), (0, jsx_runtime_1.jsx)("stop", { offset: "50%", stopColor: "#FEFEFE" }), (0, jsx_runtime_1.jsx)("stop", { offset: "100%", stopColor: "rgba(255,255,255,0)" }), (0, jsx_runtime_1.jsx)("animate", { attributeName: "x1", from: "-100%", to: "100%", dur: "2s", repeatCount: "indefinite" }), (0, jsx_runtime_1.jsx)("animate", { attributeName: "x2", from: "-50%", to: "150%", dur: "2s", repeatCount: "indefinite" })] }) }), (0, jsx_runtime_1.jsx)("rect", { width: "50%", height: "100%", fill: "url(#skeletonGradient)", children: (0, jsx_runtime_1.jsx)("animate", { attributeName: "x", from: "-100%", to: "100%", dur: "2s", repeatCount: "indefinite" }) })] }) }) }));
19
+ }
20
+ exports.default = ChartSkeleton;
@@ -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"}
@@ -42,17 +42,22 @@ const useQuill = (chartId) => {
42
42
  };
43
43
  const resp = await (0, dataFetcher_1.getData)(client, 'itempost', 'same-origin', hostedBody, cloudBody);
44
44
  if (resp) {
45
- setLoading(false);
46
- if (resp.compareRows) {
47
- (0, merge_1.mergeComparisonRange)(resp);
45
+ if (resp.name === 'error') {
46
+ setError(JSON.stringify(resp));
47
+ }
48
+ else {
49
+ if (resp.compareRows) {
50
+ (0, merge_1.mergeComparisonRange)(resp);
51
+ }
52
+ setData(resp);
53
+ dispatch({
54
+ type: 'UPDATE_DASHBOARD_ITEM',
55
+ id: chartId,
56
+ data: { ...resp, filtersApplied: dashboardFilters },
57
+ });
48
58
  }
49
- setData(resp);
50
- dispatch({
51
- type: 'UPDATE_DASHBOARD_ITEM',
52
- id: chartId,
53
- data: { ...resp, filtersApplied: dashboardFilters },
54
- });
55
59
  }
60
+ setLoading(false);
56
61
  }
57
62
  catch (e) {
58
63
  if (typeof e === 'string' || (typeof e === 'object' && e !== null)) {
@@ -61,6 +66,7 @@ const useQuill = (chartId) => {
61
66
  else {
62
67
  setError('error');
63
68
  }
69
+ setLoading(false);
64
70
  }
65
71
  }
66
72
  }
@@ -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"}
@@ -25,7 +25,6 @@ const axisFormatter = ({ value, field, fields, }) => {
25
25
  one_decimal_place: formatOneDecimalPlace,
26
26
  two_decimal_places: formatTwoDecimalPlaces,
27
27
  string: formatString,
28
- interval: formatInterval,
29
28
  yyyy: format_YYYY,
30
29
  MMM_yyyy: format_MMM_yyyy,
31
30
  MMM_dd_yyyy: format_MMM_dd_yyyy,
@@ -39,7 +38,7 @@ const axisFormatter = ({ value, field, fields, }) => {
39
38
  if (Object.keys(HANDLERS).includes(formatType)) {
40
39
  return HANDLERS[formatType](value);
41
40
  }
42
- return value.toString(); // by default make this value a string
41
+ return formatString(value); // by default make this value a string
43
42
  };
44
43
  exports.axisFormatter = axisFormatter;
45
44
  /**
@@ -48,22 +47,12 @@ exports.axisFormatter = axisFormatter;
48
47
  /**
49
48
  * Formats the value as a string using the built-in converstion.
50
49
  */
51
- const formatString = (value) => value.toString();
52
- /**
53
- * Formats the value as an interval.
54
- */
55
- const INTERVALS = [
56
- 'years',
57
- 'months',
58
- 'days',
59
- 'hours',
60
- 'minutes',
61
- 'seconds',
62
- ];
63
- const formatInterval = (interval) => INTERVALS.map((component) => interval[component])
64
- .filter((value) => value !== undefined && value !== null)
65
- .map((value, index) => `${value} ${INTERVALS[index]}`)
66
- .join(', ');
50
+ const formatString = (value) => {
51
+ if (typeof value === 'object') {
52
+ return JSON.stringify(value);
53
+ }
54
+ return value.toString();
55
+ };
67
56
  /**
68
57
  * Formats the value as a (rounded) currency amount in dollars.
69
58
  *
@@ -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"}
@@ -22,7 +22,6 @@ const valueFormatter = ({ 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 @@ const valueFormatter = ({ 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
  exports.valueFormatter = valueFormatter;
42
41
  /**
@@ -45,22 +44,12 @@ exports.valueFormatter = valueFormatter;
45
44
  /**
46
45
  * Formats the value as a string using the built-in converstion.
47
46
  */
48
- const formatString = (value) => value.toString();
49
- /**
50
- * Formats the value as an interval.
51
- */
52
- const INTERVALS = [
53
- 'years',
54
- 'months',
55
- 'days',
56
- 'hours',
57
- 'minutes',
58
- 'seconds',
59
- ];
60
- const formatInterval = (interval) => INTERVALS.map((component) => interval[component])
61
- .filter((value) => value !== undefined && value !== null)
62
- .map((value, index) => `${value} ${INTERVALS[index]}`)
63
- .join(', ');
47
+ const formatString = (value) => {
48
+ if (typeof value === 'object') {
49
+ return JSON.stringify(value);
50
+ }
51
+ return value.toString();
52
+ };
64
53
  /**
65
54
  * Formats the value as a (rounded) currency amount in dollars.
66
55
  *
@@ -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"}
@@ -22,7 +22,6 @@ const valueFormatterCSV = ({ 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,13 +35,18 @@ const valueFormatterCSV = ({ 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
  exports.valueFormatterCSV = valueFormatterCSV;
42
41
  /**
43
42
  * HELPER FUNCTION DEFINITIONS
44
43
  */
45
- const formatString = (value) => value.toString();
44
+ const formatString = (value) => {
45
+ if (typeof value === 'object') {
46
+ return JSON.stringify(value);
47
+ }
48
+ return value.toString();
49
+ };
46
50
  const formatDollarAmount = (value) => Number(value ?? 0);
47
51
  const formatDollarCents = (value) => Number(value ?? 0);
48
52
  const formatWholeNumber = (value) => Math.round(Number(value));
@@ -93,15 +97,3 @@ const format_wo_yyyy = (value) => {
93
97
  return 'Invalid date';
94
98
  return `${(0, date_fns_1.getWeek)(utcDate)},${utcDate.getFullYear()}`;
95
99
  };
96
- const INTERVALS = [
97
- 'years',
98
- 'months',
99
- 'days',
100
- 'hours',
101
- 'minutes',
102
- 'seconds',
103
- ];
104
- const formatInterval = (interval) => INTERVALS.map((component) => interval[component])
105
- .filter((value) => value !== undefined && value !== null)
106
- .map((value, index) => `${value} ${INTERVALS[index]}`)
107
- .join(', ');
@@ -1 +1 @@
1
- {"version":3,"file":"Chart.d.ts","sourceRoot":"","sources":["../../src/Chart.tsx"],"names":[],"mappings":";AAyBA,UAAU,cAAc;IACtB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,cAAc,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IACrC,UAAU,CAAC,EAAE,GAAG,CAAC;IACjB,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,UAAU,WAAY,SAAQ,cAAc;IAC1C,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,WAAW,GACnB,cAAc,GACd,mBAAmB,GACnB,oBAAoB,GACpB,eAAe,GACf,cAAc,GACd,UAAU,GACV,aAAa,GACb,eAAe,GACf,oBAAoB,GACpB,UAAU,GACV,SAAS,GACT,QAAQ,CAAC;AAEb,UAAU,UAAU;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,WAAW,CAAC;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,WAAW,CAAC;IACzB,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,OAAO,EAAE,GAAG,EAAE,CAAC;IACf,KAAK,EAAE,GAAG,CAAC;CACZ;AAED,UAAU,UAAW,SAAQ,cAAc;IACzC,MAAM,EAAE,aAAa,GAAG,GAAG,CAAC;CAC7B;AAED,KAAK,UAAU,GAAG,WAAW,GAAG,UAAU,CAAC;AAgF3C,QAAA,MAAM,KAAK,8JAYR,UAAU,4CAkCZ,CAAC;AA2hBF,eAAe,KAAK,CAAC"}
1
+ {"version":3,"file":"Chart.d.ts","sourceRoot":"","sources":["../../src/Chart.tsx"],"names":[],"mappings":";AA2BA,UAAU,cAAc;IACtB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,cAAc,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IACrC,UAAU,CAAC,EAAE,GAAG,CAAC;IACjB,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,UAAU,WAAY,SAAQ,cAAc;IAC1C,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,WAAW,GACnB,cAAc,GACd,mBAAmB,GACnB,oBAAoB,GACpB,eAAe,GACf,cAAc,GACd,UAAU,GACV,aAAa,GACb,eAAe,GACf,oBAAoB,GACpB,UAAU,GACV,SAAS,GACT,QAAQ,CAAC;AAEb,UAAU,UAAU;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,WAAW,CAAC;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,WAAW,CAAC;IACzB,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,OAAO,EAAE,GAAG,EAAE,CAAC;IACf,KAAK,EAAE,GAAG,CAAC;CACZ;AAED,UAAU,UAAW,SAAQ,cAAc;IACzC,MAAM,EAAE,aAAa,GAAG,GAAG,CAAC;CAC7B;AAED,KAAK,UAAU,GAAG,WAAW,GAAG,UAAU,CAAC;AAgF3C,QAAA,MAAM,KAAK,8JAYR,UAAU,4CAkCZ,CAAC;AAydF,eAAe,KAAK,CAAC"}
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.4",
3
+ "version": "2.10.5",
4
4
  "exports": {
5
5
  ".": {
6
6
  "import": "./dist/esm/index.js",