@quillsql/react 2.12.19 → 2.12.20

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 (118) hide show
  1. package/dist/cjs/Chart.d.ts +2 -1
  2. package/dist/cjs/Chart.d.ts.map +1 -1
  3. package/dist/cjs/Chart.js +117 -105
  4. package/dist/cjs/ChartBuilder.d.ts +4 -2
  5. package/dist/cjs/ChartBuilder.d.ts.map +1 -1
  6. package/dist/cjs/ChartBuilder.js +26 -11
  7. package/dist/cjs/ChartEditor.d.ts +1 -1
  8. package/dist/cjs/ChartEditor.d.ts.map +1 -1
  9. package/dist/cjs/ChartEditor.js +20 -12
  10. package/dist/cjs/Context.d.ts +0 -9
  11. package/dist/cjs/Context.d.ts.map +1 -1
  12. package/dist/cjs/Context.js +15 -43
  13. package/dist/cjs/Dashboard.d.ts +16 -3
  14. package/dist/cjs/Dashboard.d.ts.map +1 -1
  15. package/dist/cjs/Dashboard.js +64 -65
  16. package/dist/cjs/ReportBuilder.d.ts.map +1 -1
  17. package/dist/cjs/Table.d.ts.map +1 -1
  18. package/dist/cjs/Table.js +11 -4
  19. package/dist/cjs/components/Chart/BarChart.d.ts +2 -1
  20. package/dist/cjs/components/Chart/BarChart.d.ts.map +1 -1
  21. package/dist/cjs/components/Chart/BarChart.js +2 -2
  22. package/dist/cjs/components/Chart/ChartTooltip.d.ts +1 -0
  23. package/dist/cjs/components/Chart/ChartTooltip.d.ts.map +1 -1
  24. package/dist/cjs/components/Chart/ChartTooltip.js +3 -4
  25. package/dist/cjs/components/Chart/LineChart.d.ts +2 -1
  26. package/dist/cjs/components/Chart/LineChart.d.ts.map +1 -1
  27. package/dist/cjs/components/Chart/LineChart.js +2 -2
  28. package/dist/cjs/components/Dashboard/ChartComponent.d.ts +1 -1
  29. package/dist/cjs/components/Dashboard/ChartComponent.d.ts.map +1 -1
  30. package/dist/cjs/components/Dashboard/ChartComponent.js +10 -4
  31. package/dist/cjs/components/Dashboard/DashboardFilter.d.ts.map +1 -1
  32. package/dist/cjs/components/Dashboard/DashboardFilter.js +3 -18
  33. package/dist/cjs/components/Dashboard/DataLoader.d.ts +6 -4
  34. package/dist/cjs/components/Dashboard/DataLoader.d.ts.map +1 -1
  35. package/dist/cjs/components/Dashboard/DataLoader.js +46 -32
  36. package/dist/cjs/components/Dashboard/MetricComponent.d.ts.map +1 -1
  37. package/dist/cjs/components/Dashboard/MetricComponent.js +27 -43
  38. package/dist/cjs/components/Dashboard/TableComponent.d.ts.map +1 -1
  39. package/dist/cjs/components/Dashboard/TableComponent.js +25 -52
  40. package/dist/cjs/hooks/useDashboard.d.ts.map +1 -1
  41. package/dist/cjs/hooks/useDashboard.js +3 -2
  42. package/dist/cjs/hooks/useQuill.d.ts +7 -0
  43. package/dist/cjs/hooks/useQuill.d.ts.map +1 -1
  44. package/dist/cjs/hooks/useQuill.js +43 -4
  45. package/dist/cjs/index.d.ts +1 -1
  46. package/dist/cjs/index.d.ts.map +1 -1
  47. package/dist/cjs/index.js +2 -1
  48. package/dist/cjs/internals/ReportBuilder/PivotList.d.ts.map +1 -1
  49. package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts +8 -3
  50. package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
  51. package/dist/cjs/internals/ReportBuilder/PivotModal.js +24 -12
  52. package/dist/cjs/utils/aggregate.d.ts.map +1 -1
  53. package/dist/cjs/utils/aggregate.js +0 -4
  54. package/dist/cjs/utils/dashboard.d.ts +2 -2
  55. package/dist/cjs/utils/dashboard.d.ts.map +1 -1
  56. package/dist/cjs/utils/dashboard.js +16 -11
  57. package/dist/cjs/utils/dates.d.ts.map +1 -1
  58. package/dist/cjs/utils/dates.js +7 -4
  59. package/dist/esm/Chart.d.ts +2 -1
  60. package/dist/esm/Chart.d.ts.map +1 -1
  61. package/dist/esm/Chart.js +116 -105
  62. package/dist/esm/ChartBuilder.d.ts +4 -2
  63. package/dist/esm/ChartBuilder.d.ts.map +1 -1
  64. package/dist/esm/ChartBuilder.js +27 -12
  65. package/dist/esm/ChartEditor.d.ts +1 -1
  66. package/dist/esm/ChartEditor.d.ts.map +1 -1
  67. package/dist/esm/ChartEditor.js +21 -13
  68. package/dist/esm/Context.d.ts +0 -9
  69. package/dist/esm/Context.d.ts.map +1 -1
  70. package/dist/esm/Context.js +14 -40
  71. package/dist/esm/Dashboard.d.ts +16 -3
  72. package/dist/esm/Dashboard.d.ts.map +1 -1
  73. package/dist/esm/Dashboard.js +66 -67
  74. package/dist/esm/ReportBuilder.d.ts.map +1 -1
  75. package/dist/esm/Table.d.ts.map +1 -1
  76. package/dist/esm/Table.js +12 -5
  77. package/dist/esm/components/Chart/BarChart.d.ts +2 -1
  78. package/dist/esm/components/Chart/BarChart.d.ts.map +1 -1
  79. package/dist/esm/components/Chart/BarChart.js +2 -2
  80. package/dist/esm/components/Chart/ChartTooltip.d.ts +1 -0
  81. package/dist/esm/components/Chart/ChartTooltip.d.ts.map +1 -1
  82. package/dist/esm/components/Chart/ChartTooltip.js +3 -4
  83. package/dist/esm/components/Chart/LineChart.d.ts +2 -1
  84. package/dist/esm/components/Chart/LineChart.d.ts.map +1 -1
  85. package/dist/esm/components/Chart/LineChart.js +2 -2
  86. package/dist/esm/components/Dashboard/ChartComponent.d.ts +1 -1
  87. package/dist/esm/components/Dashboard/ChartComponent.d.ts.map +1 -1
  88. package/dist/esm/components/Dashboard/ChartComponent.js +7 -4
  89. package/dist/esm/components/Dashboard/DashboardFilter.d.ts.map +1 -1
  90. package/dist/esm/components/Dashboard/DashboardFilter.js +3 -18
  91. package/dist/esm/components/Dashboard/DataLoader.d.ts +6 -4
  92. package/dist/esm/components/Dashboard/DataLoader.d.ts.map +1 -1
  93. package/dist/esm/components/Dashboard/DataLoader.js +47 -33
  94. package/dist/esm/components/Dashboard/MetricComponent.d.ts.map +1 -1
  95. package/dist/esm/components/Dashboard/MetricComponent.js +28 -44
  96. package/dist/esm/components/Dashboard/TableComponent.d.ts.map +1 -1
  97. package/dist/esm/components/Dashboard/TableComponent.js +26 -53
  98. package/dist/esm/hooks/useDashboard.d.ts.map +1 -1
  99. package/dist/esm/hooks/useDashboard.js +3 -2
  100. package/dist/esm/hooks/useQuill.d.ts +7 -0
  101. package/dist/esm/hooks/useQuill.d.ts.map +1 -1
  102. package/dist/esm/hooks/useQuill.js +41 -3
  103. package/dist/esm/index.d.ts +1 -1
  104. package/dist/esm/index.d.ts.map +1 -1
  105. package/dist/esm/index.js +1 -1
  106. package/dist/esm/internals/ReportBuilder/PivotList.d.ts.map +1 -1
  107. package/dist/esm/internals/ReportBuilder/PivotList.js +1 -1
  108. package/dist/esm/internals/ReportBuilder/PivotModal.d.ts +8 -3
  109. package/dist/esm/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
  110. package/dist/esm/internals/ReportBuilder/PivotModal.js +24 -12
  111. package/dist/esm/utils/aggregate.d.ts.map +1 -1
  112. package/dist/esm/utils/aggregate.js +0 -4
  113. package/dist/esm/utils/dashboard.d.ts +2 -2
  114. package/dist/esm/utils/dashboard.d.ts.map +1 -1
  115. package/dist/esm/utils/dashboard.js +16 -11
  116. package/dist/esm/utils/dates.d.ts.map +1 -1
  117. package/dist/esm/utils/dates.js +7 -4
  118. package/package.json +1 -1
@@ -2,7 +2,8 @@
2
2
  import { QuillTheme } from './QuillProvider';
3
3
  import { type QuillReport } from './Dashboard';
4
4
  import { Filter } from './models/Filter';
5
- export declare function didFiltersChange(dashboardItem: any, filters: any): boolean;
5
+ export declare function isEquivalent(filters1: any[], filters2: any[]): boolean;
6
+ export declare function didFiltersChange(dashboardItem: any, filters: any[]): boolean;
6
7
  export type ColorMapType = {
7
8
  [key: string]: {
8
9
  primary: string;
@@ -1 +1 @@
1
- {"version":3,"file":"Chart.d.ts","sourceRoot":"","sources":["../../src/Chart.tsx"],"names":[],"mappings":";AAaA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAe7C,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AA4GzC,wBAAgB,gBAAgB,CAAC,aAAa,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,WAQhE;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,CAAC,GAAG,EAAE,MAAM,GAAG;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,oBAAoB,CAAC,EAAE,MAAM,CAAC;QAC9B,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,uBAAuB,CAAC,EAAE,MAAM,CAAC;QACjC,sBAAsB,CAAC,EAAE,MAAM,CAAC;KACjC,CAAC;CACH,CAAC;AAeF;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,WAAW,GAAG,GAAG,CAAC;IAE3B;;;;;;;;OAQG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAElB;;OAEG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAE5B;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;OAEG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAE5B;;OAEG;IACH,2BAA2B,CAAC,EAAE,OAAO,CAAC;IAEtC;;OAEG;IACH,yBAAyB,CAAC,EAAE,OAAO,CAAC;IAEpC;;OAEG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;IAEnC;;OAEG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAE9B;;;OAGG;IACH,mBAAmB,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;IAEzC;;OAEG;IACH,sBAAsB,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;IAE5C;;OAEG;IACH,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAEhC;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,iBAAiB,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,KAAK,YAAY,CAAC;IAE7E;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,GAAG,CAAC,OAAO,CAAC;IAErC;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,cAAc,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAErC,4EAA4E;IAC5E,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAEnB,qEAAqE;IACrE,mBAAmB,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC;IAE1C,gDAAgD;IAChD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,QAAA,MAAM,KAAK,UAAW,UAAU,4CA+C/B,CAAC;AAyzBF,eAAe,KAAK,CAAC"}
1
+ {"version":3,"file":"Chart.d.ts","sourceRoot":"","sources":["../../src/Chart.tsx"],"names":[],"mappings":";AAaA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAe7C,OAAO,EAAuB,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AACpE,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AA6DzC,wBAAgB,YAAY,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,WAkE5D;AAED,wBAAgB,gBAAgB,CAAC,aAAa,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,WAKlE;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,CAAC,GAAG,EAAE,MAAM,GAAG;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,oBAAoB,CAAC,EAAE,MAAM,CAAC;QAC9B,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,uBAAuB,CAAC,EAAE,MAAM,CAAC;QACjC,sBAAsB,CAAC,EAAE,MAAM,CAAC;KACjC,CAAC;CACH,CAAC;AAeF;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,WAAW,GAAG,GAAG,CAAC;IAE3B;;;;;;;;OAQG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAElB;;OAEG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAE5B;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;OAEG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAE5B;;OAEG;IACH,2BAA2B,CAAC,EAAE,OAAO,CAAC;IAEtC;;OAEG;IACH,yBAAyB,CAAC,EAAE,OAAO,CAAC;IAEpC;;OAEG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;IAEnC;;OAEG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAE9B;;;OAGG;IACH,mBAAmB,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;IAEzC;;OAEG;IACH,sBAAsB,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;IAE5C;;OAEG;IACH,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAEhC;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,iBAAiB,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,KAAK,YAAY,CAAC;IAE7E;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,GAAG,CAAC,OAAO,CAAC;IAErC;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,cAAc,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAErC,4EAA4E;IAC5E,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAEnB,qEAAqE;IACrE,mBAAmB,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC;IAE1C,gDAAgD;IAChD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,QAAA,MAAM,KAAK,UAAW,UAAU,4CAgD/B,CAAC;AAwyBF,eAAe,KAAK,CAAC"}
package/dist/cjs/Chart.js CHANGED
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.didFiltersChange = void 0;
6
+ exports.didFiltersChange = exports.isEquivalent = void 0;
7
7
  const jsx_runtime_1 = require("react/jsx-runtime");
8
8
  /* eslint-disable no-unused-vars */
9
9
  const react_1 = require("react");
@@ -14,7 +14,6 @@ const PieChart_1 = __importDefault(require("./components/Chart/PieChart"));
14
14
  const Context_1 = require("./Context");
15
15
  const QuillTable_1 = __importDefault(require("./components/QuillTable"));
16
16
  const dataFetcher_1 = require("./utils/dataFetcher");
17
- const PivotModal_1 = require("./internals/ReportBuilder/PivotModal");
18
17
  const valueFormatter_1 = require("./utils/valueFormatter");
19
18
  const LineChart_1 = __importDefault(require("./components/Chart/LineChart"));
20
19
  const BarChart_1 = __importDefault(require("./components/Chart/BarChart"));
@@ -26,6 +25,7 @@ const valueFormatter_2 = require("./utils/valueFormatter");
26
25
  const useTheme_1 = __importDefault(require("./hooks/useTheme"));
27
26
  const errorProcessing_1 = require("./utils/errorProcessing");
28
27
  const filterProcessing_1 = require("./utils/filterProcessing");
28
+ const dashboard_1 = require("./utils/dashboard");
29
29
  const MAX_ROWS_FOR_GENERIC_TABLE = 300;
30
30
  // @ts-ignore
31
31
  function sumByKey(arr, key) {
@@ -39,22 +39,35 @@ function areDatesNearby(date1, date2) {
39
39
  return Math.abs((0, date_fns_1.differenceInHours)(date1, date2)) < 24;
40
40
  }
41
41
  function isEquivalent(filters1, filters2) {
42
- if (Object.keys(filters2).length !== Object.keys(filters1).length) {
42
+ if (filters2.length !== filters1.length) {
43
43
  return false;
44
44
  }
45
- const filterKeys = Object.keys(filters2);
46
- for (let i = 0; i < filterKeys.length; i++) {
47
- const currentKeyWereLookingAt = filterKeys[i];
48
- if (!currentKeyWereLookingAt) {
49
- return false;
50
- }
51
- const filter1 = filters1[currentKeyWereLookingAt];
45
+ // const filterKeys = Object.keys(filters2);
46
+ for (let i = 0; i < filters1.length; i++) {
47
+ const filter1 = filters1[i];
52
48
  if (!filter1) {
53
49
  return false;
54
50
  }
55
- const filter2 = filters2[currentKeyWereLookingAt];
51
+ const filter2 = filters2[i];
56
52
  const filterType = filter2.filterType;
57
53
  if (filterType === 'string') {
54
+ if (filter1.stringFilterType === 'multiselect') {
55
+ if (filter1.values &&
56
+ filter2.values &&
57
+ filter1.values.length !== filter2.values.length) {
58
+ return false;
59
+ }
60
+ if ((filter1.values && !filter2.values) ||
61
+ (filter2.values && !filter1.values)) {
62
+ return false;
63
+ }
64
+ // make sure that filter1.values is equivalent to filter2.values ignoring order
65
+ const sortedValues1 = filter1.values?.slice().sort() || [];
66
+ const sortedValues2 = filter2.values?.slice().sort() || [];
67
+ if (!sortedValues1.every((value, index) => value === sortedValues2[index])) {
68
+ return false;
69
+ }
70
+ }
58
71
  if (filter1.selectedValue !== filter2.selectedValue) {
59
72
  return false;
60
73
  }
@@ -74,13 +87,11 @@ function isEquivalent(filters1, filters2) {
74
87
  }
75
88
  return true;
76
89
  }
90
+ exports.isEquivalent = isEquivalent;
77
91
  function didFiltersChange(dashboardItem, filters) {
78
92
  if (!dashboardItem?.filtersApplied || !filters) {
79
93
  return true;
80
94
  }
81
- if (dashboardItem?.filtersApplied.comparison !== !filters.comparison) {
82
- return true;
83
- }
84
95
  return !isEquivalent(dashboardItem.filtersApplied, filters);
85
96
  }
86
97
  exports.didFiltersChange = didFiltersChange;
@@ -123,11 +134,17 @@ const Chart = (props) => {
123
134
  ? theme.chartColors
124
135
  : ['#4E80EE', '#E14F62', '#55B5A6', '#E9A23B', '#6466E9', '#55B685'];
125
136
  }, [data.colors]);
126
- return ((0, jsx_runtime_1.jsx)(ChartUpdater, { reportId: data.reportId, className: data.className, containerStyle: data.containerStyle, colors: chartColors, isAnimationActive: data.isAnimationActive, hideXAxis: data.hideXAxis, hideYAxis: data.hideYAxis, hideCartesianGrid: data.hideCartesianGrid, hideHorizontalCartesianGrid: data.hideHorizontalCartesianGrid, hideVerticalCartesianGrid: data.hideVerticalCartesianGrid, hideSubsequentXAxisTicks: data.hideSubsequentXAxisTicks, hideDateRangeFilter: data.hideDateRangeFilter, cartesianGridLineStyle: data.cartesianGridLineStyle, cartesianGridLineColor: data.cartesianGridLineColor, comparisonLineStyle: data.comparisonLineStyle, mapColorsToFields: data.mapColorsToFields ?? fallbackMapColorsToFields, LoadingComponent: data.LoadingComponent, filters: data.filters }));
137
+ return ((0, jsx_runtime_1.jsx)(ChartUpdater, { reportId: data.reportId, className: data.className, containerStyle: data.containerStyle, colors: chartColors, isAnimationActive: data.isAnimationActive, hideXAxis: data.hideXAxis, hideYAxis: data.hideYAxis, hideCartesianGrid: data.hideCartesianGrid, hideHorizontalCartesianGrid: data.hideHorizontalCartesianGrid, hideVerticalCartesianGrid: data.hideVerticalCartesianGrid, hideSubsequentXAxisTicks: data.hideSubsequentXAxisTicks, hideDateRangeFilter: data.hideDateRangeFilter, cartesianGridLineStyle: data.cartesianGridLineStyle, cartesianGridLineColor: data.cartesianGridLineColor, comparisonLineStyle: data.comparisonLineStyle, mapColorsToFields: data.mapColorsToFields ?? fallbackMapColorsToFields, LoadingComponent: data.LoadingComponent, filters: data.filters, onClickChartElement: props.onClickChartElement }));
127
138
  };
128
139
  const ChartUpdater = ({ colors, reportId, className, containerStyle, isAnimationActive, hideXAxis, hideYAxis, hideCartesianGrid, hideHorizontalCartesianGrid = false, hideVerticalCartesianGrid = true, hideSubsequentXAxisTicks = false, cartesianGridLineStyle = 'solid', cartesianGridLineColor, comparisonLineStyle, hideDateRangeFilter = false, mapColorsToFields, LoadingComponent = ChartSkeleton_1.QuillLoadingSkeleton, filters, onClickChartElement, }) => {
129
140
  const { dispatch, dashboard } = (0, react_1.useContext)(Context_1.DashboardContext);
130
141
  const { dashboardFilters } = (0, react_1.useContext)(Context_1.DashboardFiltersContext);
142
+ const specificDashboardFilter = (0, react_1.useMemo)(() => {
143
+ return dashboardFilters.filter((f) => dashboard &&
144
+ dashboard[reportId] &&
145
+ f &&
146
+ f.dashboardName === dashboard[reportId].dashboardName);
147
+ }, [dashboardFilters, dashboard]);
131
148
  const [initialLoad, setInitialLoad] = (0, react_1.useState)(true);
132
149
  const [loading, setLoading] = (0, react_1.useState)(true);
133
150
  const [paginating, setPaginating] = (0, react_1.useState)(false);
@@ -139,6 +156,7 @@ const ChartUpdater = ({ colors, reportId, className, containerStyle, isAnimation
139
156
  const [additionalProcessing, setAdditionProcessing] = (0, react_1.useState)({
140
157
  page: 0,
141
158
  });
159
+ const [report, setReport] = (0, react_1.useState)(undefined);
142
160
  const [previousPage, setPreviousPage] = (0, react_1.useState)(0);
143
161
  const theme = (0, useTheme_1.default)();
144
162
  const onPageChange = (page) => {
@@ -156,7 +174,7 @@ const ChartUpdater = ({ colors, reportId, className, containerStyle, isAnimation
156
174
  };
157
175
  const getChartDataPaginate = async (processing) => {
158
176
  setPaginating(true);
159
- if (!didFiltersChange(dashboard[reportId], dashboardFilters)) {
177
+ if (!didFiltersChange(dashboard[reportId], specificDashboardFilter)) {
160
178
  setPaginating(false);
161
179
  return;
162
180
  }
@@ -170,8 +188,8 @@ const ChartUpdater = ({ colors, reportId, className, containerStyle, isAnimation
170
188
  }
171
189
  // Remove extra fields on each filter so we don't confuse the backend.
172
190
  const allowDateRange = !hideDateRangeFilter;
173
- const minimalFilters = Object.values(dashboardFilters).length
174
- ? Object.values(dashboardFilters)
191
+ const minimalFilters = Object.values(specificDashboardFilter).length
192
+ ? Object.values(specificDashboardFilter)
175
193
  .filter((f) => allowDateRange || f.filterType !== 'date_range')
176
194
  .map((filter) => {
177
195
  const newFilter = { ...filter };
@@ -215,13 +233,15 @@ const ChartUpdater = ({ colors, reportId, className, containerStyle, isAnimation
215
233
  ...resp,
216
234
  filtersApplied: minimalFilters.filter((f) => f.dashboardName === dashboard[reportId].dashboardName),
217
235
  };
236
+ const cleanedReport = (0, dashboard_1.cleanDashboardItem)(dashboardItem, filters);
237
+ setReport(cleanedReport);
218
238
  dispatch({
219
239
  type: 'UPDATE_DASHBOARD_ITEM',
220
240
  id: reportId,
221
- data: dashboardItem,
241
+ data: cleanedReport,
222
242
  });
223
243
  if (mapColorsToFields) {
224
- setColorMap(mapColorsToFields(dashboardItem, theme));
244
+ setColorMap(mapColorsToFields(cleanedReport, theme));
225
245
  }
226
246
  }
227
247
  else {
@@ -239,7 +259,7 @@ const ChartUpdater = ({ colors, reportId, className, containerStyle, isAnimation
239
259
  };
240
260
  const getChartData = async (processing) => {
241
261
  setLoading(true);
242
- if (!didFiltersChange(dashboard[reportId], dashboardFilters)) {
262
+ if (!didFiltersChange(dashboard[reportId], specificDashboardFilter)) {
243
263
  setLoading(false);
244
264
  return;
245
265
  }
@@ -253,8 +273,8 @@ const ChartUpdater = ({ colors, reportId, className, containerStyle, isAnimation
253
273
  }
254
274
  // Remove extra fields on each filter so we don't confuse the backend.
255
275
  const allowDateRange = !hideDateRangeFilter;
256
- const minimalFilters = Object.values(dashboardFilters).length
257
- ? Object.values(dashboardFilters)
276
+ const minimalFilters = Object.values(specificDashboardFilter).length
277
+ ? Object.values(specificDashboardFilter)
258
278
  .filter((f) => allowDateRange || f.filterType !== 'date_range')
259
279
  .map((filter) => {
260
280
  const newFilter = { ...filter };
@@ -298,6 +318,11 @@ const ChartUpdater = ({ colors, reportId, className, containerStyle, isAnimation
298
318
  ...resp,
299
319
  filtersApplied: minimalFilters.filter((f) => f.dashboardName === dashboard[reportId].dashboardName),
300
320
  };
321
+ const cleanedReport = (0, dashboard_1.cleanDashboardItem)(dashboardItem, filters);
322
+ if (cleanedReport.chartType === 'table' && cleanedReport.pivot) {
323
+ cleanedReport.columns = cleanedReport.yAxisFields;
324
+ }
325
+ setReport(cleanedReport);
301
326
  dispatch({
302
327
  type: 'UPDATE_DASHBOARD_ITEM',
303
328
  id: reportId,
@@ -321,11 +346,14 @@ const ChartUpdater = ({ colors, reportId, className, containerStyle, isAnimation
321
346
  (0, react_1.useEffect)(() => {
322
347
  setInitialLoad(false);
323
348
  getChartData();
324
- }, [dashboardFilters, client, reportId]);
325
- return ((0, jsx_runtime_1.jsx)(ChartDisplay, { config: dashboard[reportId], reportId: reportId, colors: colors, className: className, containerStyle: containerStyle, hideXAxis: hideXAxis, hideYAxis: hideYAxis, hideCartesianGrid: hideCartesianGrid, hideHorizontalCartesianGrid: hideHorizontalCartesianGrid, hideVerticalCartesianGrid: hideVerticalCartesianGrid, hideSubsequentXAxisTicks: hideSubsequentXAxisTicks, cartesianGridLineStyle: cartesianGridLineStyle, cartesianGridLineColor: cartesianGridLineColor, hideDateRangeFilter: hideDateRangeFilter, comparisonLineStyle: comparisonLineStyle, isAnimationActive: isAnimationActive, isComparison: isComparison, loading: loading || initialLoad, paginating: paginating, error: error, colorMap: colorMap, LoadingComponent: LoadingComponent, onPageChange: onPageChange, onSortChange: onSortChange, onClickChartElement: onClickChartElement }));
349
+ }, [specificDashboardFilter, client, reportId]);
350
+ return ((0, jsx_runtime_1.jsx)(ChartDisplay, { config: report, reportId: reportId, colors: colors, className: className, containerStyle: containerStyle, hideXAxis: hideXAxis, hideYAxis: hideYAxis, hideCartesianGrid: hideCartesianGrid, hideHorizontalCartesianGrid: hideHorizontalCartesianGrid, hideVerticalCartesianGrid: hideVerticalCartesianGrid, hideSubsequentXAxisTicks: hideSubsequentXAxisTicks, cartesianGridLineStyle: cartesianGridLineStyle, cartesianGridLineColor: cartesianGridLineColor, hideDateRangeFilter: hideDateRangeFilter, comparisonLineStyle: comparisonLineStyle, isAnimationActive: isAnimationActive, isComparison: isComparison, loading: loading || initialLoad, paginating: paginating, error: error, colorMap: colorMap, LoadingComponent: LoadingComponent, onPageChange: onPageChange, onSortChange: onSortChange, onClickChartElement: onClickChartElement }));
326
351
  };
327
352
  const ChartDisplay = ({ reportId, config, colors, className, containerStyle, hideXAxis, hideYAxis, hideCartesianGrid, hideDateRangeFilter = false, hideHorizontalCartesianGrid = false, hideVerticalCartesianGrid = true, hideSubsequentXAxisTicks = false, cartesianGridLineStyle = 'solid', cartesianGridLineColor, comparisonLineStyle, isAnimationActive, loading = false, paginating = false, error = undefined, isComparison = false, colorMap, LoadingComponent = ChartSkeleton_1.QuillLoadingSkeleton, onPageChange, onSortChange, onClickChartElement, dateBucket, }) => {
328
353
  const { dashboardFilters } = (0, react_1.useContext)(Context_1.DashboardFiltersContext);
354
+ const specificDashboardFilter = (0, react_1.useMemo)(() => {
355
+ return dashboardFilters.filter((f) => f && config && config.dashboardName === f.dashboardName);
356
+ }, [dashboardFilters]);
329
357
  const { downloadCSV } = (0, useExport_1.useExport)(reportId);
330
358
  const theme = (0, useTheme_1.default)();
331
359
  const chartColors = (0, react_1.useMemo)(() => {
@@ -335,44 +363,42 @@ const ChartDisplay = ({ reportId, config, colors, className, containerStyle, hid
335
363
  ? theme.chartColors
336
364
  : ['#4E80EE', '#E14F62', '#55B5A6', '#E9A23B', '#6466E9', '#55B685'];
337
365
  }, [colors]);
338
- const dateFilter = !hideDateRangeFilter &&
339
- (0, filterProcessing_1.findAndProcessDateFilter)(Object.values(dashboardFilters ?? []));
340
- const isPivot = config?.pivot;
341
- const pivotTable = (0, react_1.useMemo)(() => {
342
- const pivot = config?.pivot;
343
- const data = config;
344
- return pivot && data?.rows
345
- ? (0, PivotModal_1.generatePivotTable)(pivot, JSON.parse(JSON.stringify(data.rows)), // deep copy
346
- dateFilter && dateFilter.startDate && dateFilter.endDate
347
- ? { start: dateFilter.startDate, end: dateFilter.endDate }
348
- : undefined, Boolean(dateFilter?.comparisonRange?.startDate), -1, dateFilter?.comparisonRange?.startDate &&
349
- dateFilter?.comparisonRange.endDate
350
- ? {
351
- start: dateFilter.comparisonRange.startDate,
352
- end: dateFilter.comparisonRange.endDate,
353
- }
354
- : undefined, dateBucket)
355
- : null;
356
- }, [config?.pivot, dateBucket]);
357
- const pivotTableYAxis = (0, react_1.useMemo)(() => {
358
- if (!pivotTable) {
359
- return null;
366
+ const rows = config?.pivotRows ?? config?.rows ?? [];
367
+ const getYAxisFields = () => {
368
+ if (config && config.pivot && config.pivot.columnField) {
369
+ return (config?.pivotColumns
370
+ .slice(1)
371
+ .map((column) => {
372
+ return { ...column, format: config?.yAxisFields[0].format };
373
+ }) ?? []);
360
374
  }
361
- const pivot = config?.pivot;
362
- const yAxisFields = config.yAxisFields;
363
- return yAxisFields
364
- ? (0, PivotModal_1.generatePivotTableYAxis)(pivot, pivotTable.columns, yAxisFields?.[0]?.format)
365
- : null;
366
- }, [pivotTable, config?.yAxisFields]);
375
+ else if (config && config.pivot) {
376
+ return (config?.pivotColumns
377
+ .slice(1)
378
+ .map((column) => {
379
+ return {
380
+ ...column,
381
+ label: config?.yAxisFields[0].label,
382
+ format: config?.yAxisFields[0].format,
383
+ };
384
+ }) ?? []);
385
+ }
386
+ else {
387
+ return config?.pivotColumns ?? config?.yAxisFields ?? [];
388
+ }
389
+ };
390
+ const yAxisFields = getYAxisFields();
391
+ const dateFilter = !hideDateRangeFilter &&
392
+ (0, filterProcessing_1.findAndProcessDateFilter)(Object.values(specificDashboardFilter ?? []));
367
393
  if (error) {
368
394
  return (0, jsx_runtime_1.jsx)(ChartError_1.default, { className: className, containerStyle: containerStyle });
369
395
  }
370
- else if (!pivotTable &&
371
- config &&
396
+ else if (config &&
397
+ !config.pivot &&
372
398
  config?.chartType !== 'metric' &&
373
399
  config?.chartType !== 'table' &&
374
- config.rows &&
375
- config.rows.length > MAX_ROWS_FOR_GENERIC_TABLE) {
400
+ rows &&
401
+ rows.length > MAX_ROWS_FOR_GENERIC_TABLE) {
376
402
  return ((0, jsx_runtime_1.jsx)(ChartError_1.default, { className: className, containerStyle: containerStyle, label: "Charts can only display 300 rows. Please add a pivot or modify the query." }));
377
403
  }
378
404
  else if (!config || loading) {
@@ -380,8 +406,6 @@ const ChartDisplay = ({ reportId, config, colors, className, containerStyle, hid
380
406
  }
381
407
  const chartTypes = [config?.chartType];
382
408
  if (chartTypes.includes('pie')) {
383
- const rows = pivotTable ? pivotTable.rows : config.rows;
384
- const yAxisFields = pivotTableYAxis ? pivotTableYAxis : config.yAxisFields;
385
409
  const xAxisField = config.xAxisField;
386
410
  return ((0, jsx_runtime_1.jsx)(PieChart_1.default, { className: className, containerStyle: containerStyle, data: rows.map((row) => {
387
411
  return {
@@ -392,9 +416,7 @@ const ChartDisplay = ({ reportId, config, colors, className, containerStyle, hid
392
416
  }), category: yAxisFields[0].field, index: xAxisField, colors: chartColors, theme: theme, colorMap: colorMap, onClickChartElement: onClickChartElement }));
393
417
  }
394
418
  if (chartTypes.includes('table')) {
395
- const data = config;
396
- const columns = pivotTable?.columns ?? data.columns ?? data.yAxisFields;
397
- const rows = pivotTable?.rows ?? data.rows ?? [];
419
+ const columns = yAxisFields;
398
420
  // FOR PIVOTS - ADD THE RIGHT FIELD TYPE FOR THE VALUE COLUMNS
399
421
  const valueFieldType = config?.pivot?.valueFieldType || undefined;
400
422
  // Walk through data.columns and pick off the labels from yAxisFields
@@ -405,9 +427,9 @@ const ChartDisplay = ({ reportId, config, colors, className, containerStyle, hid
405
427
  index !== 0) {
406
428
  col.format = valueFieldType || 'two_decimal_places';
407
429
  }
408
- if (!data.yAxisFields)
430
+ if (!yAxisFields)
409
431
  return;
410
- const matchingCol = data.yAxisFields.find((c) => c.field === col.field);
432
+ const matchingCol = yAxisFields.find((c) => c.field === col.field);
411
433
  if (!col.label && matchingCol) {
412
434
  col.label = matchingCol.label;
413
435
  col.format = matchingCol.format;
@@ -425,15 +447,15 @@ const ChartDisplay = ({ reportId, config, colors, className, containerStyle, hid
425
447
  }, {});
426
448
  });
427
449
  let numberOfRows = undefined;
428
- if (data.compareRows && data.compareRows[0]) {
429
- if (data.compareRows[0].COUNT) {
430
- numberOfRows = parseInt(data.compareRows[0].COUNT);
450
+ if (config.compareRows && config.compareRows[0]) {
451
+ if (config.compareRows[0].COUNT) {
452
+ numberOfRows = parseInt(config.compareRows[0].COUNT);
431
453
  }
432
- else if (data.compareRows[0].count) {
433
- numberOfRows = parseInt(data.compareRows[0].count);
454
+ else if (config.compareRows[0].count) {
455
+ numberOfRows = parseInt(config.compareRows[0].count);
434
456
  }
435
457
  }
436
- return ((0, jsx_runtime_1.jsx)(QuillTable_1.default, { rows: formattedRows ?? [], numberOfRows: numberOfRows, columns: columns ?? data.yAxisFields, currentPage: data.page, sort: data.sort, rowsPerPage: config?.rowsPerPage || 10, containerStyle: {
458
+ return ((0, jsx_runtime_1.jsx)(QuillTable_1.default, { rows: formattedRows ?? [], numberOfRows: numberOfRows, columns: columns ?? yAxisFields, currentPage: config.page, sort: config.sort, rowsPerPage: config?.rowsPerPage || 10, containerStyle: {
437
459
  width: containerStyle?.width || '100%',
438
460
  height: containerStyle?.height || '400px',
439
461
  ...containerStyle,
@@ -446,14 +468,11 @@ const ChartDisplay = ({ reportId, config, colors, className, containerStyle, hid
446
468
  }, isLoading: paginating }));
447
469
  }
448
470
  if (chartTypes.includes('bar')) {
449
- return ((0, jsx_runtime_1.jsx)(BarList_1.default, { data: pivotTable ? pivotTable.rows : config.rows, theme: theme, yAxisFields: pivotTableYAxis ? pivotTableYAxis : config.yAxisFields, colors: chartColors, xAxisField: config.xAxisField, xAxisFormat: config.xAxisFormat, containerStyle: containerStyle, className: className, colorMap: colorMap, onClickChartElement: onClickChartElement }));
471
+ return ((0, jsx_runtime_1.jsx)(BarList_1.default, { data: rows, theme: theme, yAxisFields: yAxisFields, colors: chartColors, xAxisField: config.xAxisField, xAxisFormat: config.xAxisFormat, containerStyle: containerStyle, className: className, colorMap: colorMap, onClickChartElement: onClickChartElement }));
450
472
  }
451
- const yAxisFields = pivotTableYAxis
452
- ? pivotTableYAxis
453
- : config.yAxisFields;
454
473
  if (yAxisFields.length === 1) {
455
- if (yAxisFields[0].label === '' && config.yAxisFields.length === 1) {
456
- yAxisFields[0].label = config.yAxisFields[0].label;
474
+ if (yAxisFields[0].label === '' && yAxisFields.length === 1) {
475
+ yAxisFields[0].label = yAxisFields[0].label;
457
476
  }
458
477
  if (dateFilter?.comparison) {
459
478
  const sampleField = yAxisFields[0];
@@ -464,15 +483,10 @@ const ChartDisplay = ({ reportId, config, colors, className, containerStyle, hid
464
483
  };
465
484
  }
466
485
  }
467
- const data = (pivotTable ? pivotTable.rows : config.rows)
468
- // filter out any rows with a comparison key but no corresponding primary
469
- ?.filter((row) => Object.keys(row).every((key) => !key.startsWith('comparison_') ||
470
- (key.startsWith('comparison_') &&
471
- row[key.replace('comparison_', '')] !== undefined)));
472
486
  if (chartTypes.includes('column')) {
473
487
  // Autofill the column chart with an empty column if there are no rows
474
- let barChartData = data;
475
- if (dateFilter && (!data || data.length === 0)) {
488
+ let barChartData = rows;
489
+ if (dateFilter && (!barChartData || barChartData.length === 0)) {
476
490
  const xAxis = config.xAxisField;
477
491
  const yAxis = yAxisFields[0]?.field;
478
492
  barChartData = [{ [xAxis]: '', [yAxis]: '0' }];
@@ -494,17 +508,15 @@ const ChartDisplay = ({ reportId, config, colors, className, containerStyle, hid
494
508
  break;
495
509
  }
496
510
  }
497
- return ((0, jsx_runtime_1.jsx)(BarChart_1.default, { colors: chartColors, theme: theme, isStacked: isPivot && yAxisFields.length > (dateFilter?.comparison ? 2 : 1), yAxisFields: yAxisFields, data: barChartData, xAxisField: config.xAxisField, xAxisLabel: config.xAxisLabel, xAxisFormat: xAxisFormat, containerStyle: containerStyle, className: className, comparison: dateFilter?.comparison, isAnimationActive: isAnimationActive, hideXAxis: hideXAxis, hideYAxis: hideYAxis, hideCartesianGrid: hideCartesianGrid, colorMap: colorMap, onClickChartElement: onClickChartElement }));
511
+ return ((0, jsx_runtime_1.jsx)(BarChart_1.default, { colors: chartColors, theme: theme, isStacked: config.pivot && yAxisFields.length > (dateFilter?.comparison ? 2 : 1), yAxisFields: yAxisFields, data: barChartData, xAxisField: config.xAxisField, xAxisLabel: config.xAxisLabel, xAxisFormat: xAxisFormat, containerStyle: containerStyle, className: className, comparison: dateFilter?.comparison, isAnimationActive: isAnimationActive, hideXAxis: hideXAxis, hideYAxis: hideYAxis, hideCartesianGrid: hideCartesianGrid, colorMap: colorMap, onClickChartElement: onClickChartElement, dateFilter: dateFilter }));
498
512
  }
499
513
  if (chartTypes.includes('metric')) {
500
- const data = config;
501
- const rows = pivotTable?.rows ?? data.rows ?? [];
502
514
  const isComparison = rows?.length > 0 &&
503
- Object.keys(rows[0]).includes(`comparison_${data.xAxisField}`);
504
- const primaryMetricLabel = data?.filtersApplied?.date_range?.preset?.label;
505
- const comparisonKey = data?.filtersApplied?.date_range?.comparisonRange?.value;
515
+ Object.keys(rows[0]).includes(`comparison_${config.xAxisField}`);
516
+ const primaryMetricLabel = config?.filtersApplied?.date_range?.preset?.label;
517
+ const comparisonKey = config?.filtersApplied?.date_range?.comparisonRange?.value;
506
518
  const comparisonLabel = dateRangePickerUtils_1.COMPARISON_OPTIONS.find((opt) => opt.value === comparisonKey)?.text;
507
- if (rows?.length === 0 || rows[0][data.xAxisField] === null) {
519
+ if (rows?.length === 0 || rows[0][config.xAxisField] === null) {
508
520
  return ((0, jsx_runtime_1.jsx)("div", { style: {
509
521
  display: 'flex',
510
522
  flex: '1 0 auto',
@@ -543,14 +555,14 @@ const ChartDisplay = ({ reportId, config, colors, className, containerStyle, hid
543
555
  marginRight: 'auto',
544
556
  }, children: [(0, jsx_runtime_1.jsx)("span", { children: rows?.length > 0 &&
545
557
  (0, valueFormatter_1.valueFormatter)({
546
- value: rows[0][data.xAxisField] ?? 0,
547
- field: data.xAxisField,
558
+ value: rows[0][config.xAxisField] ?? 0,
559
+ field: config.xAxisField,
548
560
  fields: [
549
561
  {
550
- field: data.xAxisField,
551
- format: data.xAxisFormat,
552
- label: data.xAxisLabel,
553
- _id: data._id || 'dummy',
562
+ field: config.xAxisField,
563
+ format: config.xAxisFormat,
564
+ label: config.xAxisLabel,
565
+ _id: config._id || 'dummy',
554
566
  },
555
567
  ],
556
568
  }) }), isComparison && ((0, jsx_runtime_1.jsx)("span", { style: {
@@ -574,14 +586,14 @@ const ChartDisplay = ({ reportId, config, colors, className, containerStyle, hid
574
586
  color: theme?.secondaryTextColor,
575
587
  }, children: rows?.length > 0 &&
576
588
  (0, valueFormatter_1.valueFormatter)({
577
- value: rows[0][`comparison_${data.xAxisField}`] ?? 0,
578
- field: data.xAxisField,
589
+ value: rows[0][`comparison_${config.xAxisField}`] ?? 0,
590
+ field: config.xAxisField,
579
591
  fields: [
580
592
  {
581
- field: data.xAxisField,
582
- format: data.xAxisFormat,
583
- label: data.xAxisLabel,
584
- _id: data._id || 'dummy',
593
+ field: config.xAxisField,
594
+ format: config.xAxisFormat,
595
+ label: config.xAxisLabel,
596
+ _id: config._id || 'dummy',
585
597
  },
586
598
  ],
587
599
  }) }), (0, jsx_runtime_1.jsx)("span", { style: {
@@ -596,11 +608,11 @@ const ChartDisplay = ({ reportId, config, colors, className, containerStyle, hid
596
608
  }
597
609
  // Autofill the line chart with two zero values, so they form a line at 0.0
598
610
  // when there are no rows on the config.
599
- let lineChartData = data;
611
+ let lineChartData = rows;
600
612
  const xAxisFieldFormat = config.columns.find((col) => col.field === config.xAxisField)?.format;
601
613
  if (dateFilter &&
602
614
  valueFormatter_1.DATE_FORMAT_TYPES.includes(xAxisFieldFormat) &&
603
- (!data || data.length === 0)) {
615
+ (!lineChartData || lineChartData.length === 0)) {
604
616
  const xAxis = config.xAxisField;
605
617
  const yAxis = yAxisFields[0]?.field;
606
618
  const format = config.pivot
@@ -613,7 +625,7 @@ const ChartDisplay = ({ reportId, config, colors, className, containerStyle, hid
613
625
  { [xAxis]: endDate, [yAxis]: '0' },
614
626
  ];
615
627
  }
616
- return ((0, jsx_runtime_1.jsx)(LineChart_1.default, { colors: chartColors, colorMap: colorMap, yAxisFields: yAxisFields.sort(sortComparisonFirst), data: lineChartData, xAxisField: config.xAxisField, xAxisLabel: config.xAxisLabel, xAxisFormat: config.xAxisFormat, containerStyle: containerStyle, className: className, theme: theme, comparison: dateFilter?.comparison, isAnimationActive: isAnimationActive, hideXAxis: hideXAxis, hideYAxis: hideYAxis, hideCartesianGrid: hideCartesianGrid, hideHorizontalCartesianGrid: hideHorizontalCartesianGrid, hideVerticalCartesianGrid: hideVerticalCartesianGrid, hideSubsequentXAxisTicks: hideSubsequentXAxisTicks, cartesianGridLineStyle: cartesianGridLineStyle ?? 'solid', comparisonLineStyle: comparisonLineStyle ?? 'solid', cartesianGridLineColor: cartesianGridLineColor, onClickChartElement: onClickChartElement }));
628
+ return ((0, jsx_runtime_1.jsx)(LineChart_1.default, { colors: chartColors, colorMap: colorMap, yAxisFields: yAxisFields.sort(sortComparisonFirst), data: lineChartData, xAxisField: config.xAxisField, xAxisLabel: config.xAxisLabel, xAxisFormat: config.xAxisFormat, containerStyle: containerStyle, className: className, theme: theme, comparison: dateFilter?.comparison, isAnimationActive: isAnimationActive, hideXAxis: hideXAxis, hideYAxis: hideYAxis, hideCartesianGrid: hideCartesianGrid, hideHorizontalCartesianGrid: hideHorizontalCartesianGrid, hideVerticalCartesianGrid: hideVerticalCartesianGrid, hideSubsequentXAxisTicks: hideSubsequentXAxisTicks, cartesianGridLineStyle: cartesianGridLineStyle ?? 'solid', comparisonLineStyle: comparisonLineStyle ?? 'solid', cartesianGridLineColor: cartesianGridLineColor, onClickChartElement: onClickChartElement, dateFilter: dateFilter }));
617
629
  };
618
630
  // Sort to put comparison first (ie. underneath) primary.
619
631
  const sortComparisonFirst = (a, b) => {
@@ -191,8 +191,8 @@ export interface ChartBuilderProps {
191
191
  pivotData?: {
192
192
  rows: any[];
193
193
  columns: {
194
- label: string;
195
194
  field: string;
195
+ label: string;
196
196
  }[];
197
197
  };
198
198
  /** The date range applied to this ChartBuilder. */
@@ -262,6 +262,8 @@ export interface ChartBuilderProps {
262
262
  isLoading?: boolean;
263
263
  /** A callback function triggered when a chart element is clicked */
264
264
  onClickChartElement?: (data: any) => void;
265
+ /** Used to generate a comparison pivot or not */
266
+ isComparison?: boolean;
265
267
  }
266
268
  /**
267
269
  * ### Quill Chart Builder with Modal
@@ -311,7 +313,7 @@ export declare function ChartBuilderWithModal(props: ChartBuilderProps): import(
311
313
  * ### Chart Builder API
312
314
  * @see https://docs.quillsql.com/components/chart-builder
313
315
  */
314
- export default function ChartBuilder({ TextInputComponent, SelectComponent, ButtonComponent, SecondaryButtonComponent, HeaderComponent, SubHeaderComponent, LabelComponent, DeleteButtonComponent, TextComponent, PopoverComponent, CardComponent, TableComponent, ModalComponent, LoadingComponent, ErrorMessageComponent, ChartBuilderInputRowContainer, ChartBuilderInputColumnContainer, PivotRowContainer, PivotColumnContainer, FormContainer, isOpen, isHorizontalView, pivot, setIsOpen, rows, columns, query, queryNoDateColumn, dateRange: dr, showTableFormatOptions, showDateFieldOptions, showAccessControlOptions, showDashboardDropdown, onAddToDashboardComplete, onDelete, report, recommendedPivots: rp, createdPivots: cp, destinationDashboard, dateColumn, buttonLabel, organizationName, pivotData, hideDeleteButton, hideSubmitButton, hideDateRangeFilter, initialUniqueValues, pivotRecommendationsEnabled, onSortChange, onPageChange, numberOfRows, isLoading, onClickChartElement }: ChartBuilderProps): import("react/jsx-runtime").JSX.Element | null;
316
+ export default function ChartBuilder({ TextInputComponent, SelectComponent, ButtonComponent, SecondaryButtonComponent, HeaderComponent, SubHeaderComponent, LabelComponent, DeleteButtonComponent, TextComponent, PopoverComponent, CardComponent, TableComponent, ModalComponent, LoadingComponent, ErrorMessageComponent, ChartBuilderInputRowContainer, ChartBuilderInputColumnContainer, PivotRowContainer, PivotColumnContainer, FormContainer, isOpen, isHorizontalView, pivot, setIsOpen, rows, columns, query, queryNoDateColumn, dateRange: dr, showTableFormatOptions, showDateFieldOptions, showAccessControlOptions, showDashboardDropdown, onAddToDashboardComplete, onDelete, report, recommendedPivots: rp, createdPivots: cp, destinationDashboard, dateColumn, buttonLabel, organizationName, pivotData, hideDeleteButton, hideSubmitButton, hideDateRangeFilter, initialUniqueValues, pivotRecommendationsEnabled, onSortChange, onPageChange, numberOfRows, isLoading, isComparison, onClickChartElement, }: ChartBuilderProps): import("react/jsx-runtime").JSX.Element | null;
315
317
  export declare function DashboardFilterModal({ isOpen, setIsOpen, issues, ModalComponent, ButtonComponent, }: {
316
318
  isOpen: boolean;
317
319
  setIsOpen: (e: boolean) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"ChartBuilder.d.ts","sourceRoot":"","sources":["../../src/ChartBuilder.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ChartBuilder.d.ts","sourceRoot":"","sources":["../../src/ChartBuilder.tsx"],"names":[],"mappings":"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"}