@quillsql/react 2.13.27 → 2.13.28

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 (243) hide show
  1. package/dist/cjs/Chart.d.ts.map +1 -1
  2. package/dist/cjs/Chart.js +1 -1
  3. package/dist/cjs/ChartBuilder.d.ts +20 -2
  4. package/dist/cjs/ChartBuilder.d.ts.map +1 -1
  5. package/dist/cjs/ChartBuilder.js +130 -36
  6. package/dist/cjs/ChartEditor.d.ts +5 -3
  7. package/dist/cjs/ChartEditor.d.ts.map +1 -1
  8. package/dist/cjs/ChartEditor.js +4 -5
  9. package/dist/cjs/Context.d.ts +15 -4
  10. package/dist/cjs/Context.d.ts.map +1 -1
  11. package/dist/cjs/Context.js +37 -60
  12. package/dist/cjs/Dashboard.d.ts +4 -0
  13. package/dist/cjs/Dashboard.d.ts.map +1 -1
  14. package/dist/cjs/Dashboard.js +78 -23
  15. package/dist/cjs/QuillProvider.d.ts +12 -9
  16. package/dist/cjs/QuillProvider.d.ts.map +1 -1
  17. package/dist/cjs/QuillProvider.js +2 -2
  18. package/dist/cjs/ReportBuilder.d.ts +9 -1
  19. package/dist/cjs/ReportBuilder.d.ts.map +1 -1
  20. package/dist/cjs/ReportBuilder.js +198 -80
  21. package/dist/cjs/SQLEditor.d.ts +5 -1
  22. package/dist/cjs/SQLEditor.d.ts.map +1 -1
  23. package/dist/cjs/SQLEditor.js +81 -18
  24. package/dist/cjs/Table.d.ts.map +1 -1
  25. package/dist/cjs/Table.js +3 -2
  26. package/dist/cjs/components/Chart/InternalChart.d.ts.map +1 -1
  27. package/dist/cjs/components/Chart/InternalChart.js +106 -27
  28. package/dist/cjs/components/Chart/PieChart.d.ts.map +1 -1
  29. package/dist/cjs/components/Chart/PieChart.js +10 -7
  30. package/dist/cjs/components/Dashboard/DashboardFilter.d.ts +3 -2
  31. package/dist/cjs/components/Dashboard/DashboardFilter.d.ts.map +1 -1
  32. package/dist/cjs/components/Dashboard/DashboardFilter.js +65 -65
  33. package/dist/cjs/components/Dashboard/DataLoader.d.ts.map +1 -1
  34. package/dist/cjs/components/Dashboard/DataLoader.js +81 -34
  35. package/dist/cjs/components/Dashboard/MetricComponent.js +3 -3
  36. package/dist/cjs/components/Dashboard/util.d.ts.map +1 -1
  37. package/dist/cjs/components/Dashboard/util.js +6 -2
  38. package/dist/cjs/components/QuillMultiSelectWithCombo.d.ts +1 -1
  39. package/dist/cjs/components/QuillMultiSelectWithCombo.d.ts.map +1 -1
  40. package/dist/cjs/components/QuillMultiSelectWithCombo.js +17 -18
  41. package/dist/cjs/components/QuillTable.d.ts.map +1 -1
  42. package/dist/cjs/components/QuillTable.js +9 -1
  43. package/dist/cjs/components/ReportBuilder/FilterModal.d.ts.map +1 -1
  44. package/dist/cjs/components/ReportBuilder/FilterModal.js +25 -3
  45. package/dist/cjs/components/ReportBuilder/FilterStack.d.ts +2 -1
  46. package/dist/cjs/components/ReportBuilder/FilterStack.d.ts.map +1 -1
  47. package/dist/cjs/components/ReportBuilder/FilterStack.js +2 -2
  48. package/dist/cjs/components/ReportBuilder/convert.d.ts +1 -0
  49. package/dist/cjs/components/ReportBuilder/convert.d.ts.map +1 -1
  50. package/dist/cjs/components/ReportBuilder/convert.js +54 -4
  51. package/dist/cjs/components/ReportBuilder/ui.d.ts +2 -1
  52. package/dist/cjs/components/ReportBuilder/ui.d.ts.map +1 -1
  53. package/dist/cjs/components/ReportBuilder/ui.js +3 -2
  54. package/dist/cjs/components/UiComponents.d.ts +1 -0
  55. package/dist/cjs/components/UiComponents.d.ts.map +1 -1
  56. package/dist/cjs/hooks/useAskQuill.d.ts +1 -1
  57. package/dist/cjs/hooks/useAskQuill.d.ts.map +1 -1
  58. package/dist/cjs/hooks/useAskQuill.js +6 -5
  59. package/dist/cjs/hooks/useAstToFilterTree.d.ts +2 -1
  60. package/dist/cjs/hooks/useAstToFilterTree.d.ts.map +1 -1
  61. package/dist/cjs/hooks/useAstToFilterTree.js +3 -3
  62. package/dist/cjs/hooks/useDashboard.d.ts +5 -2
  63. package/dist/cjs/hooks/useDashboard.d.ts.map +1 -1
  64. package/dist/cjs/hooks/useDashboard.js +21 -7
  65. package/dist/cjs/hooks/useExport.d.ts.map +1 -1
  66. package/dist/cjs/hooks/useExport.js +6 -4
  67. package/dist/cjs/index.d.ts +1 -1
  68. package/dist/cjs/index.d.ts.map +1 -1
  69. package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts +8 -2
  70. package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
  71. package/dist/cjs/internals/ReportBuilder/PivotModal.js +59 -30
  72. package/dist/cjs/models/Client.d.ts +22 -3
  73. package/dist/cjs/models/Client.d.ts.map +1 -1
  74. package/dist/cjs/models/Dashboard.d.ts +1 -0
  75. package/dist/cjs/models/Dashboard.d.ts.map +1 -1
  76. package/dist/cjs/models/Report.d.ts +4 -0
  77. package/dist/cjs/models/Report.d.ts.map +1 -1
  78. package/dist/cjs/utils/astFilterProcessing.d.ts +3 -2
  79. package/dist/cjs/utils/astFilterProcessing.d.ts.map +1 -1
  80. package/dist/cjs/utils/astFilterProcessing.js +3323 -977
  81. package/dist/cjs/utils/astProcessing.d.ts +1 -1
  82. package/dist/cjs/utils/astProcessing.d.ts.map +1 -1
  83. package/dist/cjs/utils/astProcessing.js +3 -2
  84. package/dist/cjs/utils/client.d.ts +4 -2
  85. package/dist/cjs/utils/client.d.ts.map +1 -1
  86. package/dist/cjs/utils/client.js +47 -1
  87. package/dist/cjs/utils/columnProcessing.d.ts +3 -0
  88. package/dist/cjs/utils/columnProcessing.d.ts.map +1 -1
  89. package/dist/cjs/utils/columnProcessing.js +34 -1
  90. package/dist/cjs/utils/dashboard.d.ts +4 -3
  91. package/dist/cjs/utils/dashboard.d.ts.map +1 -1
  92. package/dist/cjs/utils/dashboard.js +10 -91
  93. package/dist/cjs/utils/dataFetcher.d.ts +3 -1
  94. package/dist/cjs/utils/dataFetcher.d.ts.map +1 -1
  95. package/dist/cjs/utils/dataFetcher.js +66 -30
  96. package/dist/cjs/utils/filterProcessing.d.ts +1 -1
  97. package/dist/cjs/utils/filterProcessing.d.ts.map +1 -1
  98. package/dist/cjs/utils/filterProcessing.js +2 -0
  99. package/dist/cjs/utils/pivotConstructor.d.ts +4 -1
  100. package/dist/cjs/utils/pivotConstructor.d.ts.map +1 -1
  101. package/dist/cjs/utils/pivotConstructor.js +7 -7
  102. package/dist/cjs/utils/pivotProcessing.d.ts +4 -1
  103. package/dist/cjs/utils/pivotProcessing.d.ts.map +1 -1
  104. package/dist/cjs/utils/pivotProcessing.js +27 -20
  105. package/dist/cjs/utils/queryConstructor.d.ts.map +1 -1
  106. package/dist/cjs/utils/queryConstructor.js +101 -85
  107. package/dist/cjs/utils/report.d.ts +17 -5
  108. package/dist/cjs/utils/report.d.ts.map +1 -1
  109. package/dist/cjs/utils/report.js +23 -23
  110. package/dist/cjs/utils/schema.d.ts.map +1 -1
  111. package/dist/cjs/utils/schema.js +21 -21
  112. package/dist/cjs/utils/tableProcessing.d.ts +37 -10
  113. package/dist/cjs/utils/tableProcessing.d.ts.map +1 -1
  114. package/dist/cjs/utils/tableProcessing.js +45 -38
  115. package/dist/cjs/utils/tenants.d.ts +11 -0
  116. package/dist/cjs/utils/tenants.d.ts.map +1 -0
  117. package/dist/cjs/utils/tenants.js +13 -0
  118. package/dist/cjs/utils/textProcessing.d.ts +1 -0
  119. package/dist/cjs/utils/textProcessing.d.ts.map +1 -1
  120. package/dist/cjs/utils/textProcessing.js +49 -0
  121. package/dist/cjs/utils/validation.js +1 -1
  122. package/dist/esm/Chart.d.ts.map +1 -1
  123. package/dist/esm/Chart.js +1 -1
  124. package/dist/esm/ChartBuilder.d.ts +20 -2
  125. package/dist/esm/ChartBuilder.d.ts.map +1 -1
  126. package/dist/esm/ChartBuilder.js +131 -40
  127. package/dist/esm/ChartEditor.d.ts +5 -3
  128. package/dist/esm/ChartEditor.d.ts.map +1 -1
  129. package/dist/esm/ChartEditor.js +5 -6
  130. package/dist/esm/Context.d.ts +15 -4
  131. package/dist/esm/Context.d.ts.map +1 -1
  132. package/dist/esm/Context.js +36 -59
  133. package/dist/esm/Dashboard.d.ts +4 -0
  134. package/dist/esm/Dashboard.d.ts.map +1 -1
  135. package/dist/esm/Dashboard.js +79 -24
  136. package/dist/esm/QuillProvider.d.ts +12 -9
  137. package/dist/esm/QuillProvider.d.ts.map +1 -1
  138. package/dist/esm/QuillProvider.js +2 -2
  139. package/dist/esm/ReportBuilder.d.ts +9 -1
  140. package/dist/esm/ReportBuilder.d.ts.map +1 -1
  141. package/dist/esm/ReportBuilder.js +200 -84
  142. package/dist/esm/SQLEditor.d.ts +5 -1
  143. package/dist/esm/SQLEditor.d.ts.map +1 -1
  144. package/dist/esm/SQLEditor.js +80 -17
  145. package/dist/esm/Table.d.ts.map +1 -1
  146. package/dist/esm/Table.js +4 -3
  147. package/dist/esm/components/Chart/InternalChart.d.ts.map +1 -1
  148. package/dist/esm/components/Chart/InternalChart.js +107 -28
  149. package/dist/esm/components/Chart/PieChart.d.ts.map +1 -1
  150. package/dist/esm/components/Chart/PieChart.js +10 -7
  151. package/dist/esm/components/Dashboard/DashboardFilter.d.ts +3 -2
  152. package/dist/esm/components/Dashboard/DashboardFilter.d.ts.map +1 -1
  153. package/dist/esm/components/Dashboard/DashboardFilter.js +65 -65
  154. package/dist/esm/components/Dashboard/DataLoader.d.ts.map +1 -1
  155. package/dist/esm/components/Dashboard/DataLoader.js +82 -35
  156. package/dist/esm/components/Dashboard/MetricComponent.js +3 -3
  157. package/dist/esm/components/Dashboard/util.d.ts.map +1 -1
  158. package/dist/esm/components/Dashboard/util.js +6 -2
  159. package/dist/esm/components/QuillMultiSelectWithCombo.d.ts +1 -1
  160. package/dist/esm/components/QuillMultiSelectWithCombo.d.ts.map +1 -1
  161. package/dist/esm/components/QuillMultiSelectWithCombo.js +17 -18
  162. package/dist/esm/components/QuillTable.d.ts.map +1 -1
  163. package/dist/esm/components/QuillTable.js +9 -1
  164. package/dist/esm/components/ReportBuilder/FilterModal.d.ts.map +1 -1
  165. package/dist/esm/components/ReportBuilder/FilterModal.js +26 -4
  166. package/dist/esm/components/ReportBuilder/FilterStack.d.ts +2 -1
  167. package/dist/esm/components/ReportBuilder/FilterStack.d.ts.map +1 -1
  168. package/dist/esm/components/ReportBuilder/FilterStack.js +2 -2
  169. package/dist/esm/components/ReportBuilder/convert.d.ts +1 -0
  170. package/dist/esm/components/ReportBuilder/convert.d.ts.map +1 -1
  171. package/dist/esm/components/ReportBuilder/convert.js +54 -5
  172. package/dist/esm/components/ReportBuilder/ui.d.ts +2 -1
  173. package/dist/esm/components/ReportBuilder/ui.d.ts.map +1 -1
  174. package/dist/esm/components/ReportBuilder/ui.js +4 -3
  175. package/dist/esm/components/UiComponents.d.ts +1 -0
  176. package/dist/esm/components/UiComponents.d.ts.map +1 -1
  177. package/dist/esm/hooks/useAskQuill.d.ts +1 -1
  178. package/dist/esm/hooks/useAskQuill.d.ts.map +1 -1
  179. package/dist/esm/hooks/useAskQuill.js +7 -6
  180. package/dist/esm/hooks/useAstToFilterTree.d.ts +2 -1
  181. package/dist/esm/hooks/useAstToFilterTree.d.ts.map +1 -1
  182. package/dist/esm/hooks/useAstToFilterTree.js +3 -3
  183. package/dist/esm/hooks/useDashboard.d.ts +5 -2
  184. package/dist/esm/hooks/useDashboard.d.ts.map +1 -1
  185. package/dist/esm/hooks/useDashboard.js +21 -7
  186. package/dist/esm/hooks/useExport.d.ts.map +1 -1
  187. package/dist/esm/hooks/useExport.js +7 -5
  188. package/dist/esm/index.d.ts +1 -1
  189. package/dist/esm/index.d.ts.map +1 -1
  190. package/dist/esm/internals/ReportBuilder/PivotModal.d.ts +8 -2
  191. package/dist/esm/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
  192. package/dist/esm/internals/ReportBuilder/PivotModal.js +59 -30
  193. package/dist/esm/models/Client.d.ts +22 -3
  194. package/dist/esm/models/Client.d.ts.map +1 -1
  195. package/dist/esm/models/Dashboard.d.ts +1 -0
  196. package/dist/esm/models/Dashboard.d.ts.map +1 -1
  197. package/dist/esm/models/Report.d.ts +4 -0
  198. package/dist/esm/models/Report.d.ts.map +1 -1
  199. package/dist/esm/utils/astFilterProcessing.d.ts +3 -2
  200. package/dist/esm/utils/astFilterProcessing.d.ts.map +1 -1
  201. package/dist/esm/utils/astFilterProcessing.js +3323 -977
  202. package/dist/esm/utils/astProcessing.d.ts +1 -1
  203. package/dist/esm/utils/astProcessing.d.ts.map +1 -1
  204. package/dist/esm/utils/astProcessing.js +4 -3
  205. package/dist/esm/utils/client.d.ts +4 -2
  206. package/dist/esm/utils/client.d.ts.map +1 -1
  207. package/dist/esm/utils/client.js +47 -1
  208. package/dist/esm/utils/columnProcessing.d.ts +3 -0
  209. package/dist/esm/utils/columnProcessing.d.ts.map +1 -1
  210. package/dist/esm/utils/columnProcessing.js +31 -1
  211. package/dist/esm/utils/dashboard.d.ts +4 -3
  212. package/dist/esm/utils/dashboard.d.ts.map +1 -1
  213. package/dist/esm/utils/dashboard.js +10 -90
  214. package/dist/esm/utils/dataFetcher.d.ts +3 -1
  215. package/dist/esm/utils/dataFetcher.d.ts.map +1 -1
  216. package/dist/esm/utils/dataFetcher.js +65 -29
  217. package/dist/esm/utils/filterProcessing.d.ts +1 -1
  218. package/dist/esm/utils/filterProcessing.d.ts.map +1 -1
  219. package/dist/esm/utils/filterProcessing.js +2 -0
  220. package/dist/esm/utils/pivotConstructor.d.ts +4 -1
  221. package/dist/esm/utils/pivotConstructor.d.ts.map +1 -1
  222. package/dist/esm/utils/pivotConstructor.js +8 -8
  223. package/dist/esm/utils/pivotProcessing.d.ts +4 -1
  224. package/dist/esm/utils/pivotProcessing.d.ts.map +1 -1
  225. package/dist/esm/utils/pivotProcessing.js +27 -20
  226. package/dist/esm/utils/queryConstructor.d.ts.map +1 -1
  227. package/dist/esm/utils/queryConstructor.js +101 -85
  228. package/dist/esm/utils/report.d.ts +17 -5
  229. package/dist/esm/utils/report.d.ts.map +1 -1
  230. package/dist/esm/utils/report.js +20 -23
  231. package/dist/esm/utils/schema.d.ts.map +1 -1
  232. package/dist/esm/utils/schema.js +21 -21
  233. package/dist/esm/utils/tableProcessing.d.ts +37 -10
  234. package/dist/esm/utils/tableProcessing.d.ts.map +1 -1
  235. package/dist/esm/utils/tableProcessing.js +46 -39
  236. package/dist/esm/utils/tenants.d.ts +11 -0
  237. package/dist/esm/utils/tenants.d.ts.map +1 -0
  238. package/dist/esm/utils/tenants.js +9 -0
  239. package/dist/esm/utils/textProcessing.d.ts +1 -0
  240. package/dist/esm/utils/textProcessing.d.ts.map +1 -1
  241. package/dist/esm/utils/textProcessing.js +48 -0
  242. package/dist/esm/utils/validation.js +1 -1
  243. package/package.json +1 -1
@@ -7,7 +7,7 @@ const dateRangePickerUtils_1 = require("../../DateRangePicker/dateRangePickerUti
7
7
  const QuillDateRangePicker_1 = require("../../DateRangePicker/QuillDateRangePicker");
8
8
  const QuillMultiSelect_1 = require("../QuillMultiSelect");
9
9
  const QuillSelect_1 = require("../QuillSelect");
10
- function DashboardFilter({ filter, onChangeFilter, SelectComponent = QuillSelect_1.QuillSelectComponent, MultiSelectComponent = QuillMultiSelect_1.QuillMultiSelectComponent, DateRangePickerComponent = QuillDateRangePicker_1.QuillDateRangePicker, theme, isLoading, disabled, }) {
10
+ function DashboardFilter({ filter, onChangeFilter, SelectComponent = QuillSelect_1.QuillSelectComponent, MultiSelectComponent = QuillMultiSelect_1.QuillMultiSelectComponent, DateRangePickerComponent = QuillDateRangePicker_1.QuillDateRangePicker, theme, isLoading, disabled, containerStyle, }) {
11
11
  const preset = (0, react_1.useMemo)(() => {
12
12
  if (('preset' in filter || 'primaryRange' in filter) &&
13
13
  'startDate' in filter &&
@@ -27,79 +27,79 @@ function DashboardFilter({ filter, onChangeFilter, SelectComponent = QuillSelect
27
27
  }
28
28
  return '';
29
29
  }, [filter]);
30
- if (!filter.options && !isLoading && !(filter.filterType === 'date_range')) {
31
- return null;
32
- }
30
+ // if (!filter.options && !isLoading && !(filter.filterType === 'date_range')) {
31
+ // return null;
32
+ // }
33
33
  if (filter.filterType === 'string') {
34
34
  if (filter.stringFilterType === 'multiselect') {
35
- return ((0, jsx_runtime_1.jsx)(MultiSelectComponent, { label: filter.label, value: filter.values ?? [], onChange: (e) => {
36
- if (e.target.value === '' ||
37
- (Array.isArray(e.target.value) && e.target.value.length === 0)) {
38
- onChangeFilter(filter, undefined);
39
- return;
40
- }
41
- let jsonValue = e.target.value;
42
- if (typeof e.target.value === 'string') {
43
- jsonValue = e.target.value.split(',');
44
- }
45
- onChangeFilter(filter, jsonValue);
35
+ return ((0, jsx_runtime_1.jsx)("div", { style: containerStyle, children: (0, jsx_runtime_1.jsx)(MultiSelectComponent, { label: filter.label, value: filter.values ?? [], onChange: (e) => {
36
+ if (e.target.value === '' ||
37
+ (Array.isArray(e.target.value) && e.target.value.length === 0)) {
38
+ onChangeFilter(filter, undefined);
39
+ return;
40
+ }
41
+ let jsonValue = e.target.value;
42
+ if (typeof e.target.value === 'string') {
43
+ jsonValue = e.target.value.split(',');
44
+ }
45
+ onChangeFilter(filter, jsonValue);
46
+ }, options: [
47
+ ...(filter.options
48
+ ? filter.options.map((elem) => ({
49
+ label: elem[filter.labelField],
50
+ value: elem[filter.field],
51
+ }))
52
+ : []),
53
+ ], width: 200, isLoading: isLoading, disabled: disabled }) }));
54
+ }
55
+ return ((0, jsx_runtime_1.jsx)("div", { style: containerStyle, children: (0, jsx_runtime_1.jsx)(SelectComponent, { label: filter.label, value: filter.selectedValue, onChange: (e) => {
56
+ onChangeFilter(filter, e.target.value);
46
57
  }, options: [
47
58
  ...(filter.options
48
59
  ? filter.options.map((elem) => ({
49
- label: elem[filter.labelField],
50
- value: elem[filter.field],
60
+ label: elem[filter.labelField] ?? elem[filter.field] ?? '',
61
+ value: elem[filter.field] ?? '',
51
62
  }))
52
63
  : []),
53
- ], width: 200, isLoading: isLoading, disabled: disabled }));
54
- }
55
- return ((0, jsx_runtime_1.jsx)(SelectComponent, { label: filter.label, value: filter.selectedValue, onChange: (e) => {
56
- onChangeFilter(filter, e.target.value);
57
- }, options: [
58
- ...(filter.options
59
- ? filter.options.map((elem) => ({
60
- label: elem[filter.labelField] ?? elem[filter.field] ?? '',
61
- value: elem[filter.field] ?? '',
62
- }))
63
- : []),
64
- ], width: 200, isLoading: isLoading, disabled: disabled }));
64
+ ], width: 200, isLoading: isLoading, disabled: disabled }) }));
65
65
  }
66
66
  else if (filter.filterType === 'date_range') {
67
- return ((0, jsx_runtime_1.jsxs)("div", { style: {
68
- display: 'flex',
69
- flexDirection: 'row',
70
- alignItems: 'flex-end',
71
- flexWrap: 'wrap',
72
- }, children: [(0, jsx_runtime_1.jsx)(DateRangePickerComponent, { label: filter.label, dateRange: { startDate: filter.startDate, endDate: filter.endDate }, preset: preset, onChangeDateRange: (value) => {
73
- onChangeFilter(filter, {
74
- startDate: value.startDate,
75
- endDate: value.endDate,
76
- });
77
- }, onChangePreset: (e) => {
78
- onChangeFilter(filter, { preset: e.target.value });
79
- }, presetOptions: filter.options?.map((option) => {
80
- return { label: option.label, value: option.value };
81
- }) ?? [], selectWidth: 200, disabled: disabled }), filter.comparison && ((0, jsx_runtime_1.jsxs)("div", { style: {
82
- display: 'flex',
83
- flexDirection: 'row',
84
- alignItems: 'center',
85
- }, children: [(0, jsx_runtime_1.jsx)("div", { style: {
86
- paddingLeft: 16,
87
- paddingRight: 12,
88
- color: theme?.secondaryTextColor,
89
- fontFamily: theme?.fontFamily,
90
- fontSize: 14,
91
- display: 'flex',
92
- alignItems: 'center',
93
- flex: 1,
94
- whiteSpace: 'nowrap',
95
- minWidth: 80,
96
- justifyContent: 'center',
97
- }, children: "compared to" }), (0, jsx_runtime_1.jsx)(SelectComponent, { value: filter.comparisonRange?.value ?? 'NO_COMPARISON', onChange: (e) => {
98
- onChangeFilter(filter, undefined, dateRangePickerUtils_1.COMPARISON_OPTIONS.find((option) => option.value === e.target.value));
99
- }, options: dateRangePickerUtils_1.COMPARISON_OPTIONS.map((compareOption) => ({
100
- value: compareOption.value,
101
- label: compareOption.text,
102
- })), width: 200, hideEmptyOption: true })] }))] }));
67
+ return ((0, jsx_runtime_1.jsx)("div", { style: containerStyle, children: (0, jsx_runtime_1.jsxs)("div", { style: {
68
+ display: 'flex',
69
+ flexDirection: 'row',
70
+ alignItems: 'flex-end',
71
+ flexWrap: 'wrap',
72
+ }, children: [(0, jsx_runtime_1.jsx)(DateRangePickerComponent, { label: filter.label, dateRange: { startDate: filter.startDate, endDate: filter.endDate }, preset: preset, onChangeDateRange: (value) => {
73
+ onChangeFilter(filter, {
74
+ startDate: value.startDate,
75
+ endDate: value.endDate,
76
+ });
77
+ }, onChangePreset: (e) => {
78
+ onChangeFilter(filter, { preset: e.target.value });
79
+ }, presetOptions: filter.options?.map((option) => {
80
+ return { label: option.label, value: option.value };
81
+ }) ?? [], selectWidth: 200, disabled: disabled }), filter.comparison && ((0, jsx_runtime_1.jsxs)("div", { style: {
82
+ display: 'flex',
83
+ flexDirection: 'row',
84
+ alignItems: 'center',
85
+ }, children: [(0, jsx_runtime_1.jsx)("div", { style: {
86
+ paddingLeft: 16,
87
+ paddingRight: 12,
88
+ color: theme?.secondaryTextColor,
89
+ fontFamily: theme?.fontFamily,
90
+ fontSize: 14,
91
+ display: 'flex',
92
+ alignItems: 'center',
93
+ flex: 1,
94
+ whiteSpace: 'nowrap',
95
+ minWidth: 80,
96
+ justifyContent: 'center',
97
+ }, children: "compared to" }), (0, jsx_runtime_1.jsx)(SelectComponent, { value: filter.comparisonRange?.value ?? 'NO_COMPARISON', onChange: (e) => {
98
+ onChangeFilter(filter, undefined, dateRangePickerUtils_1.COMPARISON_OPTIONS.find((option) => option.value === e.target.value));
99
+ }, options: dateRangePickerUtils_1.COMPARISON_OPTIONS.map((compareOption) => ({
100
+ value: compareOption.value,
101
+ label: compareOption.text,
102
+ })), width: 200, hideEmptyOption: true })] }))] }) }));
103
103
  }
104
104
  return null;
105
105
  }
@@ -1 +1 @@
1
- {"version":3,"file":"DataLoader.d.ts","sourceRoot":"","sources":["../../../../src/components/Dashboard/DataLoader.tsx"],"names":[],"mappings":"AASA,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAajD,OAAO,EACL,oBAAoB,EAErB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AA0BtE,MAAM,MAAM,oBAAoB,GAAG;IACjC,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,YAAY,EAAE,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IACnE,IAAI,EAAE,WAAW,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B,CAAC;AAuFF,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EACjC,IAAI,EACJ,QAAQ,EACR,OAAO,EACP,WAAW,EACX,oBAAoB,EAAE,2BAA2B,EACjD,UAAkB,GACnB,EAAE;IACD,IAAI,EAAE,mBAAmB,CAAC;IAC1B,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,WAAW,CAAC,EAAE,cAAc,EAAE,CAAC;IAC/B,oBAAoB,EAAE,oBAAoB,CAAC;IAC3C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,CAAC,EACT,SAAS,EACT,KAAK,EACL,YAAY,EACZ,YAAY,EACZ,IAAI,GACL,EAAE,oBAAoB,KAAK,GAAG,CAAC,OAAO,CAAC;CACzC,GAAG,GAAG,CAAC,OAAO,CAqUd;AAED,KAAK,YAAY,GAAG;IAClB,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,MAAM,MAAM,yBAAyB,GAAG;IACtC,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,WAAW,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B,CAAC;AAIF,eAAO,MAAM,eAAe,4FAQzB;IACD,IAAI,EAAE,mBAAmB,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,CAClB,OAAO,EAAE,WAAW,EACpB,MAAM,EAAE,UAAU,KACf,YAAY,CAAC;IAClB,oBAAoB,EAAE,oBAAoB,CAAC;IAC3C,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,WAAW,CAAC,EAAE,cAAc,EAAE,CAAC;IAC/B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,CAAC,EACT,SAAS,EACT,KAAK,EACL,IAAI,EACJ,UAAU,EACV,QAAQ,EACR,iBAAiB,GAClB,EAAE,yBAAyB,KAAK,GAAG,CAAC,OAAO,CAAC;CAC9C,KAAG,GAAG,CAAC,OAqKP,CAAC"}
1
+ {"version":3,"file":"DataLoader.d.ts","sourceRoot":"","sources":["../../../../src/components/Dashboard/DataLoader.tsx"],"names":[],"mappings":"AAUA,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAajD,OAAO,EACL,oBAAoB,EAErB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AA0BtE,MAAM,MAAM,oBAAoB,GAAG;IACjC,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,YAAY,EAAE,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IACnE,IAAI,EAAE,WAAW,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B,CAAC;AAsJF,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EACjC,IAAI,EACJ,QAAQ,EACR,OAAO,EACP,WAAW,EACX,oBAAoB,EAAE,2BAA2B,EACjD,UAAkB,GACnB,EAAE;IACD,IAAI,EAAE,mBAAmB,CAAC;IAC1B,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,WAAW,CAAC,EAAE,cAAc,EAAE,CAAC;IAC/B,oBAAoB,EAAE,oBAAoB,CAAC;IAC3C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,CAAC,EACT,SAAS,EACT,KAAK,EACL,YAAY,EACZ,YAAY,EACZ,IAAI,GACL,EAAE,oBAAoB,KAAK,GAAG,CAAC,OAAO,CAAC;CACzC,GAAG,GAAG,CAAC,OAAO,CAgVd;AAED,KAAK,YAAY,GAAG;IAClB,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,MAAM,MAAM,yBAAyB,GAAG;IACtC,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,WAAW,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B,CAAC;AAIF,eAAO,MAAM,eAAe,4FAQzB;IACD,IAAI,EAAE,mBAAmB,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,CAClB,OAAO,EAAE,WAAW,EACpB,MAAM,EAAE,UAAU,KACf,YAAY,CAAC;IAClB,oBAAoB,EAAE,oBAAoB,CAAC;IAC3C,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,WAAW,CAAC,EAAE,cAAc,EAAE,CAAC;IAC/B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,CAAC,EACT,SAAS,EACT,KAAK,EACL,IAAI,EACJ,UAAU,EACV,QAAQ,EACR,iBAAiB,GAClB,EAAE,yBAAyB,KAAK,GAAG,CAAC,OAAO,CAAC;CAC9C,KAAG,GAAG,CAAC,OAmKP,CAAC"}
@@ -11,7 +11,7 @@ const Context_1 = require("../../Context");
11
11
  const report_1 = require("../../utils/report");
12
12
  const paginationProcessing_1 = require("../../utils/paginationProcessing");
13
13
  const tableProcessing_1 = require("../../utils/tableProcessing");
14
- const Chart_1 = require("../../Chart");
14
+ // import { didFiltersChange } from '../../Chart';
15
15
  const merge_1 = require("../../utils/merge");
16
16
  const fast_deep_equal_1 = __importDefault(require("fast-deep-equal"));
17
17
  const constructReportFromItem = (item) => {
@@ -94,10 +94,47 @@ function userFilterValuesEquivalent(filters1, filters2) {
94
94
  }
95
95
  return true;
96
96
  }
97
+ function tenantsEquivalent(tenants1, tenants2) {
98
+ if (!tenants1 && !tenants2) {
99
+ return true;
100
+ }
101
+ if (tenants1?.length !== tenants2?.length) {
102
+ return false;
103
+ }
104
+ if (!tenants1 || !tenants2) {
105
+ return false;
106
+ }
107
+ // The two tenant arrays aren't necessarily in the same order
108
+ // we can build two dictionaries of [foreignKey, tenantIds] and compare them
109
+ // if they are arrays of strings or numbers, we can just compare them directly
110
+ if ((typeof tenants1[0] === 'string' && typeof tenants2[0] === 'string') ||
111
+ (typeof tenants1[0] === 'number' && typeof tenants2[0] === 'number')) {
112
+ return (0, fast_deep_equal_1.default)(tenants1, tenants2);
113
+ }
114
+ if ((typeof tenants1[0] === 'string' && typeof tenants2[0] !== 'string') ||
115
+ (typeof tenants1[0] === 'number' && typeof tenants2[0] !== 'number')) {
116
+ return false;
117
+ }
118
+ const mappedTenants1 = tenants1.reduce((acc, tenant) => {
119
+ acc[tenant.tenantField] = tenant.tenantIds;
120
+ return acc;
121
+ }, {});
122
+ const mappedTenants2 = tenants2.reduce((acc, tenant) => {
123
+ acc[tenant.tenantField] = tenant.tenantIds;
124
+ return acc;
125
+ }, {});
126
+ for (const key in mappedTenants1) {
127
+ if (!(0, fast_deep_equal_1.default)(mappedTenants1[key], mappedTenants2[key])) {
128
+ return false;
129
+ }
130
+ }
131
+ return true;
132
+ }
97
133
  function DataLoader({ item, children, filters, userFilters, additionalProcessing: defaultAdditionalProcessing, reportMode = false, }) {
98
134
  const [client] = (0, react_1.useContext)(Context_1.ClientContext);
99
135
  const [dashboard, dispatch] = (0, react_1.useContext)(Context_1.DashboardContext);
100
136
  const { dashboardFilters } = (0, react_1.useContext)(Context_1.DashboardFiltersContext);
137
+ const { tenants, flags } = (0, react_1.useContext)(Context_1.TenantContext);
101
138
  const { reports, reportsDispatch, fetchIndividualReport } = (0, react_1.useContext)(Context_1.ReportsContext);
102
139
  const { reportFilters } = (0, react_1.useContext)(Context_1.ReportFiltersContext);
103
140
  const contextFilters = () => {
@@ -106,7 +143,7 @@ function DataLoader({ item, children, filters, userFilters, additionalProcessing
106
143
  : Object.values(dashboardFilters[item.dashboardName] ?? {}).map((f) => f.filter);
107
144
  };
108
145
  const [schemaData] = (0, react_1.useContext)(Context_1.SchemaDataContext);
109
- const [loading, setLoading] = (0, react_1.useState)(!(reportMode ? reports : dashboard)[item.id]);
146
+ const [loading, setLoading] = (0, react_1.useState)(true);
110
147
  const [error, setError] = (0, react_1.useState)(undefined);
111
148
  const [previousPage, setPreviousPage] = (0, react_1.useState)(0);
112
149
  const [additionalProcessing, setAdditionalProcessing] = (0, react_1.useState)(defaultAdditionalProcessing);
@@ -123,6 +160,7 @@ function DataLoader({ item, children, filters, userFilters, additionalProcessing
123
160
  reportFilters,
124
161
  dashboardFilters,
125
162
  ]);
163
+ const previousTenants = (0, react_1.useRef)(null);
126
164
  const previousFilters = (0, react_1.useRef)(null);
127
165
  const previousUserFilters = (0, react_1.useRef)(null);
128
166
  const [rowCountIsLoading, setRowCountIsLoading] = (0, react_1.useState)(false);
@@ -134,6 +172,8 @@ function DataLoader({ item, children, filters, userFilters, additionalProcessing
134
172
  const updateTableRowsAbortController = (0, react_1.useRef)(null);
135
173
  const fetchRowCount = async (processing) => {
136
174
  if (!client || !filters) {
175
+ if (!rowCountAbortController.current)
176
+ return;
137
177
  return;
138
178
  }
139
179
  const fetchReportRowCountRequestId = rowCountRequestId.current + 1;
@@ -142,7 +182,7 @@ function DataLoader({ item, children, filters, userFilters, additionalProcessing
142
182
  rowCountAbortController.current?.abort();
143
183
  rowCountAbortController.current = new AbortController();
144
184
  try {
145
- const rowCount = await (0, report_1.fetchReportRowCount)(item.id, client, true, filters.concat(userFilters ?? []), processing, schemaData.customFields, rowCountAbortController.current.signal);
185
+ const rowCount = await (0, report_1.fetchReportRowCount)(item.id, client, tenants, flags, true, filters.concat(userFilters ?? []), processing, schemaData.customFields, rowCountAbortController.current.signal);
146
186
  rowCountAbortController.current = null;
147
187
  if (rowCount) {
148
188
  if (reportMode) {
@@ -168,6 +208,7 @@ function DataLoader({ item, children, filters, userFilters, additionalProcessing
168
208
  }
169
209
  finally {
170
210
  if (fetchReportRowCountRequestId === rowCountRequestId.current) {
211
+ rowCountAbortController.current = null;
171
212
  setRowCountIsLoading(false);
172
213
  }
173
214
  }
@@ -190,16 +231,21 @@ function DataLoader({ item, children, filters, userFilters, additionalProcessing
190
231
  };
191
232
  const onSortChange = (sort) => {
192
233
  const report = (reportMode ? reports : dashboard)[item.id];
193
- if ((0, paginationProcessing_1.shouldSortInMemory)(additionalProcessing.page ?? paginationProcessing_1.DEFAULT_PAGINATION, report?.rowCount)) {
234
+ if ((0, paginationProcessing_1.shouldSortInMemory)(additionalProcessing.page ?? paginationProcessing_1.DEFAULT_PAGINATION, report?.rowCount) ||
235
+ report?.pivot) {
194
236
  return;
195
237
  }
196
- const updatedProcessing = { page: additionalProcessing.page, sort };
197
- fetchReportHelper(additionalProcessing);
238
+ const updatedProcessing = {
239
+ page: { ...additionalProcessing.page, page: 0 },
240
+ sort,
241
+ };
198
242
  updateTableRows(updatedProcessing, true);
199
243
  setPreviousPage(0);
200
244
  };
201
245
  const updateTableRows = async (processing, resetRows = false) => {
202
246
  if (!client) {
247
+ if (!updateTableRowsAbortController.current)
248
+ setLoading(false);
203
249
  return;
204
250
  }
205
251
  if (!loading) {
@@ -210,7 +256,7 @@ function DataLoader({ item, children, filters, userFilters, additionalProcessing
210
256
  updateTableRowsAbortController.current?.abort();
211
257
  updateTableRowsAbortController.current = new AbortController();
212
258
  const updatedProcessing = { ...additionalProcessing, ...processing };
213
- const paginatedRows = await (0, tableProcessing_1.fetchResultsByReport)(item.id, client, updatedProcessing, filters.concat(userFilters ?? []), schemaData.customFields, true, undefined, updateTableRowsAbortController.current.signal);
259
+ const paginatedRows = await (0, tableProcessing_1.fetchResultsByReport)(item.id, client, tenants, updatedProcessing, filters.concat(userFilters ?? []), schemaData.customFields, true, undefined, updateTableRowsAbortController.current.signal);
214
260
  updateTableRowsAbortController.current = null;
215
261
  if (paginatedRows.error) {
216
262
  throw new Error('Error fetching chart');
@@ -251,6 +297,7 @@ function DataLoader({ item, children, filters, userFilters, additionalProcessing
251
297
  }
252
298
  finally {
253
299
  if (fetchUpdateTableRowsRequestId === updateTableRowsRequestId.current) {
300
+ updateTableRowsAbortController.current = null;
254
301
  setLoading(false);
255
302
  }
256
303
  }
@@ -258,13 +305,8 @@ function DataLoader({ item, children, filters, userFilters, additionalProcessing
258
305
  };
259
306
  const fetchReportHelper = async (processing) => {
260
307
  if (!client || !filters) {
261
- return;
262
- }
263
- const tempReport = (reportMode ? reports : dashboard)[item.id];
264
- if (tempReport &&
265
- !(0, Chart_1.didFiltersChange)(tempReport, filters) &&
266
- userFilterValuesEquivalent(userFilters ?? [], previousUserFilters.current ?? []) &&
267
- !tempReport.triggerReload) {
308
+ if (!rowsAbortController.current)
309
+ setLoading(false);
268
310
  return;
269
311
  }
270
312
  setLoading(true);
@@ -283,11 +325,9 @@ function DataLoader({ item, children, filters, userFilters, additionalProcessing
283
325
  catch (e) {
284
326
  setError(e.message ?? 'Error fetching report');
285
327
  }
286
- rowsAbortController.current = null;
287
328
  }
288
329
  else {
289
- const { report: fetchedReport, error } = await (0, report_1.fetchReport)(item.id, client, true, filters.concat(userFilters ?? []), processing, undefined, schemaData.customFields, true, false, rowsAbortController.current.signal);
290
- rowsAbortController.current = null;
330
+ const { report: fetchedReport, error } = await (0, report_1.fetchReport)(item.id, client, tenants, flags, true, filters.concat(userFilters ?? []), processing, undefined, schemaData.customFields, true, false, rowsAbortController.current.signal);
291
331
  dispatch({
292
332
  type: 'ADD_DASHBOARD_ITEM',
293
333
  id: item.id,
@@ -312,25 +352,31 @@ function DataLoader({ item, children, filters, userFilters, additionalProcessing
312
352
  }
313
353
  finally {
314
354
  if (fetchRowsRequestId === rowsRequestId.current) {
355
+ rowsAbortController.current = null;
315
356
  setLoading(false);
316
357
  }
317
358
  }
318
359
  };
360
+ // TODO: this is getting ridiculous
361
+ // we should be fetching this data directly when mutating filters/tenants rather than using a magical effect
319
362
  (0, react_1.useEffect)(() => {
320
- if (!filters) {
321
- return;
322
- }
323
363
  if ((previousFilters.current ||
324
364
  (reportMode ? reports : dashboard)[item.id]?.rows?.length) &&
325
365
  filterValuesEquivalent(previousFilters.current ?? contextFilters(), filters) &&
326
- userFilterValuesEquivalent(previousUserFilters.current ?? [], userFilters ?? [])) {
366
+ userFilterValuesEquivalent(previousUserFilters.current ?? [], userFilters ?? []) &&
367
+ // !didFiltersChange(dashboard[item.id], filters) &&
368
+ tenantsEquivalent(previousTenants.current ?? [], tenants ?? [])) {
369
+ if (!rowsAbortController.current)
370
+ setLoading(false);
327
371
  previousFilters.current = filters;
328
372
  return;
329
373
  }
330
374
  previousFilters.current = filters;
375
+ previousUserFilters.current = userFilters ?? [];
376
+ previousTenants.current = tenants ?? null;
331
377
  setPreviousPage(0);
332
378
  fetchReportHelper(additionalProcessing);
333
- }, [filters, userFilters, item.id]);
379
+ }, [filters, userFilters, item.id, tenants]);
334
380
  (0, react_1.useEffect)(() => {
335
381
  const tempReport = (reportMode ? reports : dashboard)[item.id];
336
382
  if (tempReport?.triggerReload) {
@@ -357,18 +403,20 @@ const ChartDataLoader = ({ item, children, dateBucket, additionalProcessing, fil
357
403
  const { dashboardFilters } = (0, react_1.useContext)(Context_1.DashboardFiltersContext);
358
404
  const { reports, fetchIndividualReport } = (0, react_1.useContext)(Context_1.ReportsContext);
359
405
  const { reportFilters } = (0, react_1.useContext)(Context_1.ReportFiltersContext);
406
+ const { tenants, flags } = (0, react_1.useContext)(Context_1.TenantContext);
360
407
  const contextFilters = () => {
361
408
  return reportMode
362
409
  ? Object.values(reportFilters[item.id] ?? {}).map((f) => f.filter)
363
410
  : Object.values(dashboardFilters[item.dashboardName] ?? {}).map((f) => f.filter);
364
411
  };
365
- const [loading, setLoading] = (0, react_1.useState)(!(reportMode ? reports : dashboard)[item.id]);
412
+ const [loading, setLoading] = (0, react_1.useState)(true);
366
413
  const [error, setError] = (0, react_1.useState)(undefined);
367
414
  const [client] = (0, react_1.useContext)(Context_1.ClientContext);
368
415
  const [schemaData] = (0, react_1.useContext)(Context_1.SchemaDataContext);
369
416
  const previousFilters = (0, react_1.useRef)(null);
370
417
  const previousUserFilters = (0, react_1.useRef)(null);
371
418
  const previousDateBucket = (0, react_1.useRef)(undefined);
419
+ const previousTenants = (0, react_1.useRef)(null);
372
420
  const fetchReportAbortController = (0, react_1.useRef)(null);
373
421
  const rowsRequestId = (0, react_1.useRef)(0);
374
422
  const chartReport = (0, react_1.useMemo)(() => {
@@ -384,14 +432,8 @@ const ChartDataLoader = ({ item, children, dateBucket, additionalProcessing, fil
384
432
  ]);
385
433
  const fetchReportHelper = async (useReportTask = true) => {
386
434
  if (!client || !filters) {
387
- return;
388
- }
389
- const tempReport = (reportMode ? reports : dashboard)[item.id];
390
- if (tempReport &&
391
- !(0, Chart_1.didFiltersChange)(tempReport, filters) &&
392
- userFilterValuesEquivalent(userFilters ?? [], previousUserFilters.current ?? []) &&
393
- dateBucket === previousDateBucket.current &&
394
- !tempReport.triggerReload) {
435
+ if (!fetchReportAbortController.current)
436
+ setLoading(false);
395
437
  return;
396
438
  }
397
439
  const fetchRowsRequestId = rowsRequestId.current + 1;
@@ -413,14 +455,12 @@ const ChartDataLoader = ({ item, children, dateBucket, additionalProcessing, fil
413
455
  catch (e) {
414
456
  setError(e.message ?? 'Error fetching report');
415
457
  }
416
- fetchReportAbortController.current = null;
417
458
  }
418
459
  else {
419
- const { report, error } = await (0, report_1.fetchReport)(item.id, client, useReportTask, filters.concat(userFilters ?? []), {
460
+ const { report, error } = await (0, report_1.fetchReport)(item.id, client, tenants, flags, useReportTask, filters.concat(userFilters ?? []), {
420
461
  ...additionalProcessing,
421
462
  ...(item.pivot ? {} : { page: paginationProcessing_1.DEFAULT_PAGINATION }),
422
463
  }, dateBucket, schemaData.customFields, undefined, undefined, fetchReportAbortController.current.signal);
423
- fetchReportAbortController.current = null;
424
464
  dispatch({
425
465
  type: 'ADD_DASHBOARD_ITEM',
426
466
  id: item.id,
@@ -442,6 +482,7 @@ const ChartDataLoader = ({ item, children, dateBucket, additionalProcessing, fil
442
482
  }
443
483
  finally {
444
484
  if (fetchRowsRequestId === rowsRequestId.current) {
485
+ fetchReportAbortController.current = null;
445
486
  setLoading(false);
446
487
  }
447
488
  }
@@ -454,10 +495,16 @@ const ChartDataLoader = ({ item, children, dateBucket, additionalProcessing, fil
454
495
  (reportMode ? reports : dashboard)[item.id]?.rows?.length) &&
455
496
  filterValuesEquivalent(previousFilters.current ?? contextFilters(), filters) &&
456
497
  userFilterValuesEquivalent(previousUserFilters.current ?? [], userFilters ?? []) &&
498
+ tenantsEquivalent(tenants ?? [], previousTenants.current ?? []) &&
457
499
  previousDateBucket.current === dateBucket) {
458
500
  previousFilters.current = filters;
501
+ if (!fetchReportAbortController.current)
502
+ setLoading(false);
459
503
  return;
460
504
  }
505
+ previousDateBucket.current = dateBucket;
506
+ previousUserFilters.current = userFilters ?? [];
507
+ previousTenants.current = tenants ?? null;
461
508
  previousFilters.current = filters;
462
509
  fetchReportHelper();
463
510
  }, [filters, userFilters, item.id, dateBucket]);
@@ -68,7 +68,7 @@ function QuillMetricComponent({ report, onClick, error, isLoading, }) {
68
68
  color: theme?.secondaryTextColor,
69
69
  maxWidth: '100%',
70
70
  width: '100%',
71
- } })) : report.rows?.length === 0 ||
71
+ } })) : !report?.rows?.[0] ||
72
72
  report.rows[0][report.xAxisField] === null ? ((0, jsx_runtime_1.jsx)("div", { style: {
73
73
  display: 'flex',
74
74
  flex: '1 0 auto',
@@ -106,7 +106,7 @@ function QuillMetricComponent({ report, onClick, error, isLoading, }) {
106
106
  gap: 4,
107
107
  alignItems: 'baseline',
108
108
  marginRight: 'auto',
109
- }, children: [(0, jsx_runtime_1.jsx)("span", { children: (report.rows.length > 0 &&
109
+ }, children: [(0, jsx_runtime_1.jsx)("span", { children: (report?.rows?.[0] &&
110
110
  report.rows[0][report.xAxisField]) ??
111
111
  0 }), dateFilter?.comparison && ((0, jsx_runtime_1.jsx)("span", { style: {
112
112
  fontSize: 13,
@@ -127,7 +127,7 @@ function QuillMetricComponent({ report, onClick, error, isLoading, }) {
127
127
  fontWeight: '500',
128
128
  fontFamily: theme?.fontFamily,
129
129
  color: theme?.secondaryTextColor,
130
- }, children: (report.rows.length > 0 &&
130
+ }, children: (report?.rows?.[0] &&
131
131
  report.rows[0][`comparison_${report.xAxisField}`]) ??
132
132
  0 }), (0, jsx_runtime_1.jsx)("span", { style: {
133
133
  fontSize: 13,
@@ -1 +1 @@
1
- {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../../src/components/Dashboard/util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAG1D,wBAAgB,+BAA+B,CAC7C,OAAO,EAAE,GAAG,EAAE,EACd,SAAS,EAAE,GAAG,EAAE,GACf;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAiCnC;AAED,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE,GAAG,EACT,YAAY,EAAE,GAAG,EAAE,EACnB,MAAM,EAAE,mBAAmB,EAC3B,aAAa,EAAE,GAAG,GACjB,OAAO,CAAC,GAAG,CAAC,CAiDd"}
1
+ {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../../src/components/Dashboard/util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAK1D,wBAAgB,+BAA+B,CAC7C,OAAO,EAAE,GAAG,EAAE,EACd,SAAS,EAAE,GAAG,EAAE,GACf;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAiCnC;AAED,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE,GAAG,EACT,YAAY,EAAE,GAAG,EAAE,EACnB,MAAM,EAAE,mBAAmB,EAC3B,aAAa,EAAE,GAAG,GACjB,OAAO,CAAC,GAAG,CAAC,CAmDd"}
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.validateTemplatesAgainstFilters = validateTemplatesAgainstFilters;
4
4
  exports.addTemplatesToDashboard = addTemplatesToDashboard;
5
5
  const dataFetcher_1 = require("../../utils/dataFetcher");
6
+ // WARNING: all of this template code is stale and PROBABLY BROKEN
6
7
  function validateTemplatesAgainstFilters(filters, templates) {
7
8
  let error = '';
8
9
  filters.every((filter) => {
@@ -40,13 +41,16 @@ function validateTemplatesAgainstFilters(filters, templates) {
40
41
  }
41
42
  async function addTemplatesToDashboard(name, newTemplates, client, dashboardData) {
42
43
  try {
43
- const { publicKey, organizationId } = client;
44
+ const { publicKey, tenants } = client;
45
+ if (tenants) {
46
+ // need to implement a way to specify report tenant id
47
+ throw new Error('Adding from template not yet supported for tenants');
48
+ }
44
49
  const hostedBody = {
45
50
  metadata: {
46
51
  dashboardName: name,
47
52
  task: 'add-from-template',
48
53
  clientId: publicKey,
49
- orgId: organizationId || '*',
50
54
  templateReportIds: newTemplates.map((template) => template._id),
51
55
  },
52
56
  };
@@ -2,7 +2,7 @@ import { MultiSelectComponentProps } from './UiComponents';
2
2
  /**
3
3
  * A robust select component that implements the new minimal Select interface.
4
4
  */
5
- export declare function QuillMultiSelectComponentWithCombo({ options, width, onChange, label, value, isLoading, disabled, }: MultiSelectComponentProps): import("react/jsx-runtime").JSX.Element;
5
+ export declare function QuillMultiSelectComponentWithCombo({ options, width, onChange, label, value, isLoading, disabled, emptyLabel, }: MultiSelectComponentProps): import("react/jsx-runtime").JSX.Element;
6
6
  export declare const ListboxTextInput: ({ value, onChange, placeholder, }: {
7
7
  value: string;
8
8
  onChange: (e: string) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"QuillMultiSelectWithCombo.d.ts","sourceRoot":"","sources":["../../../src/components/QuillMultiSelectWithCombo.tsx"],"names":[],"mappings":"AACA,OAAO,EAAkB,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAiC3E;;GAEG;AACH,wBAAgB,kCAAkC,CAAC,EACjD,OAAO,EACP,KAAK,EACL,QAAQ,EACR,KAAK,EACL,KAAK,EACL,SAAS,EACT,QAAQ,GACT,EAAE,yBAAyB,2CAge3B;AAED,eAAO,MAAM,gBAAgB,sCAI1B;IACD,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9B,WAAW,EAAE,MAAM,CAAC;CACrB,4CAwDA,CAAC"}
1
+ {"version":3,"file":"QuillMultiSelectWithCombo.d.ts","sourceRoot":"","sources":["../../../src/components/QuillMultiSelectWithCombo.tsx"],"names":[],"mappings":"AACA,OAAO,EAAkB,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAW3E;;GAEG;AACH,wBAAgB,kCAAkC,CAAC,EACjD,OAAO,EACP,KAAK,EACL,QAAQ,EACR,KAAK,EACL,KAAK,EACL,SAAS,EACT,QAAQ,EACR,UAAU,GACX,EAAE,yBAAyB,2CAif3B;AAED,eAAO,MAAM,gBAAgB,sCAI1B;IACD,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9B,WAAW,EAAE,MAAM,CAAC;CACrB,4CAwDA,CAAC"}
@@ -30,25 +30,10 @@ const hooks_1 = require("../hooks");
30
30
  const UiComponents_1 = require("./UiComponents");
31
31
  const react_1 = __importStar(require("react"));
32
32
  const Context_1 = require("../Context");
33
- /**
34
- * Helper function for displaying option labels
35
- */
36
- function displaySelectedOptionLabels({ options, value, }) {
37
- if (!value || !value.length) {
38
- return 'Select';
39
- }
40
- const matchingOptions = options.filter((elem) => value.includes(elem.value));
41
- if (matchingOptions.length !== value.length) {
42
- return value.join(', ');
43
- }
44
- return matchingOptions
45
- .map((elem) => elem.label ?? '-')
46
- .join(', ');
47
- }
48
33
  /**
49
34
  * A robust select component that implements the new minimal Select interface.
50
35
  */
51
- function QuillMultiSelectComponentWithCombo({ options, width, onChange, label, value, isLoading, disabled, }) {
36
+ function QuillMultiSelectComponentWithCombo({ options, width, onChange, label, value, isLoading, disabled, emptyLabel, }) {
52
37
  const [theme] = (0, react_1.useContext)(Context_1.ThemeContext);
53
38
  const [selectedOptions, setSelectedOptions] = (0, react_1.useState)([]);
54
39
  const [showModal, setShowModal] = (0, react_1.useState)(false);
@@ -74,6 +59,18 @@ function QuillMultiSelectComponentWithCombo({ options, width, onChange, label, v
74
59
  }))
75
60
  .concat(options);
76
61
  }, [value, options]);
62
+ const selectedOptionsLabel = (0, react_1.useMemo)(() => {
63
+ if (!value || !value.length) {
64
+ return 'Select';
65
+ }
66
+ const matchingOptions = options.filter((elem) => value.includes(elem.value));
67
+ if (matchingOptions.length !== value.length) {
68
+ return value.join(', ');
69
+ }
70
+ return matchingOptions
71
+ .map((elem) => elem.label ?? '-')
72
+ .join(', ');
73
+ }, [options, value]);
77
74
  const [selectAllCheckboxState, setSelectAllCheckboxState] = (0, react_1.useState)((() => {
78
75
  if (value.length === 0) {
79
76
  return CheckboxState.UNSELECTED;
@@ -204,7 +201,7 @@ function QuillMultiSelectComponentWithCombo({ options, width, onChange, label, v
204
201
  width: '100%',
205
202
  textAlign: 'left',
206
203
  zIndex: 1,
207
- }, children: displaySelectedOptionLabels({ options, value }) }), (0, jsx_runtime_1.jsx)("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 20 20", fill: "currentColor", "aria-hidden": "true", "data-slot": "icon", height: 20, width: 20, style: { minHeight: 20, minWidth: 20 }, children: (0, jsx_runtime_1.jsx)("path", { fillRule: "evenodd", d: "M5.22 8.22a.75.75 0 0 1 1.06 0L10 11.94l3.72-3.72a.75.75 0 1 1 1.06 1.06l-4.25 4.25a.75.75 0 0 1-1.06 0L5.22 9.28a.75.75 0 0 1 0-1.06Z", clipRule: "evenodd" }) })] }), showModal && ((0, jsx_runtime_1.jsxs)("div", { style: {
204
+ }, children: selectedOptionsLabel }), (0, jsx_runtime_1.jsx)("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 20 20", fill: "currentColor", "aria-hidden": "true", "data-slot": "icon", height: 20, width: 20, style: { minHeight: 20, minWidth: 20 }, children: (0, jsx_runtime_1.jsx)("path", { fillRule: "evenodd", d: "M5.22 8.22a.75.75 0 0 1 1.06 0L10 11.94l3.72-3.72a.75.75 0 1 1 1.06 1.06l-4.25 4.25a.75.75 0 0 1-1.06 0L5.22 9.28a.75.75 0 0 1 0-1.06Z", clipRule: "evenodd" }) })] }), showModal && ((0, jsx_runtime_1.jsxs)("div", { style: {
208
205
  position: 'absolute',
209
206
  width: '100%',
210
207
  display: 'flex',
@@ -259,7 +256,9 @@ function QuillMultiSelectComponentWithCombo({ options, width, onChange, label, v
259
256
  whiteSpace: 'nowrap',
260
257
  overflow: 'hidden',
261
258
  cursor: 'default',
262
- }, children: exceedsLimit ? 'Too many options' : 'No options available' })] })), !exceedsLimit && !isLoading ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [searchQuery === '' && potentialOptions.length > 0 && ((0, jsx_runtime_1.jsxs)("button", { style: {
259
+ }, children: exceedsLimit
260
+ ? 'Too many options'
261
+ : (emptyLabel ?? 'No options available') })] })), !exceedsLimit && !isLoading ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [searchQuery === '' && potentialOptions.length > 0 && ((0, jsx_runtime_1.jsxs)("button", { style: {
263
262
  display: 'flex',
264
263
  alignItems: 'center',
265
264
  padding: 8,
@@ -1 +1 @@
1
- {"version":3,"file":"QuillTable.d.ts","sourceRoot":"","sources":["../../../src/components/QuillTable.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA0C,MAAM,OAAO,CAAC;AAG/D,OAAO,EAAE,oBAAoB,EAAyB,MAAM,gBAAgB,CAAC;AAE7E,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC5C,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IACrC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,GAAG,CAAC,OAAO,CAAC;IACrC,0BAA0B,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,GAAG,CAAC,OAAO,CAAC;IAC1E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;CACrE;AAED,UAAU,wBAAyB,SAAQ,mBAAmB;IAC5D,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EACjC,IAAI,EACJ,QAAQ,EACR,iBAAiB,EACjB,OAAO,EACP,SAAS,EACT,WAAW,EACX,IAAI,EACJ,qBAA4B,EAC5B,cAAc,EACd,SAAS,EACT,gBAAwC,EACxC,WAAgB,EAChB,eAA8B,EAC9B,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,WAAW,GACZ,EAAE,wBAAwB,2CAse1B"}
1
+ {"version":3,"file":"QuillTable.d.ts","sourceRoot":"","sources":["../../../src/components/QuillTable.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA0C,MAAM,OAAO,CAAC;AAG/D,OAAO,EAAE,oBAAoB,EAAyB,MAAM,gBAAgB,CAAC;AAE7E,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC5C,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IACrC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,GAAG,CAAC,OAAO,CAAC;IACrC,0BAA0B,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,GAAG,CAAC,OAAO,CAAC;IAC1E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;CACrE;AAED,UAAU,wBAAyB,SAAQ,mBAAmB;IAC5D,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EACjC,IAAI,EACJ,QAAQ,EACR,iBAAiB,EACjB,OAAO,EACP,SAAS,EACT,WAAW,EACX,IAAI,EACJ,qBAA4B,EAC5B,cAAc,EACd,SAAS,EACT,gBAAwC,EACxC,WAAgB,EAChB,eAA8B,EAC9B,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,WAAW,GACZ,EAAE,wBAAwB,2CA8e1B"}
@@ -42,7 +42,15 @@ function QuillTable({ rows, rowCount, rowCountIsLoading, columns, isLoading, cur
42
42
  }
43
43
  setIsPaginating(false);
44
44
  setInitialLoad(false);
45
- }, [currentPage, rows, sortColumn, sortDirection, columns, rowCount]);
45
+ }, [
46
+ currentPage,
47
+ rows,
48
+ sortColumn,
49
+ sortDirection,
50
+ columns,
51
+ rowCount,
52
+ isLoading,
53
+ ]);
46
54
  (0, react_1.useEffect)(() => {
47
55
  if (rows.length <= currentPage * rowsPerPage) {
48
56
  onPageChange && onPageChange(0);
@@ -1 +1 @@
1
- {"version":3,"file":"FilterModal.d.ts","sourceRoot":"","sources":["../../../../src/components/ReportBuilder/FilterModal.tsx"],"names":[],"mappings":"AAIA,OAAO,EACL,cAAc,EAId,QAAQ,EAMT,MAAM,qBAAqB,CAAC;AAM7B,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,UAAU,gBAAgB;IACxB,MAAM,CAAC,EAAE;QAAE,OAAO,EAAE,cAAc,EAAE,CAAA;KAAE,CAAC;IACvC,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,cAAc,EACZ;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;KAAE,GACzB;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG;YAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;SAAE,CAAA;KAAE,CAAC;IACnD,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,qBAAqB,CAAC,EAAE,kBAAkB,CAAC;IAC3C,cAAc,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,IAAI,CAAC;IACjD,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,eAAe,EAAE,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IAC1C,eAAe,EAAE,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IAC1C,kBAAkB,EAAE,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IAC7C,wBAAwB,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IACpD,oBAAoB,EAAE,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;CAChD;AAQD,KAAK,kBAAkB,GAAG;IACxB,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,EAAE,CAAC;CAC3B,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,EAClC,MAAM,EACN,MAAM,EACN,cAAc,EACd,uBAAuB,EACvB,qBAAqB,EACrB,cAAc,EACd,cAAc,EACd,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,wBAAwB,EACxB,oBAAoB,GACrB,EAAE,gBAAgB,kDA41BlB"}
1
+ {"version":3,"file":"FilterModal.d.ts","sourceRoot":"","sources":["../../../../src/components/ReportBuilder/FilterModal.tsx"],"names":[],"mappings":"AAIA,OAAO,EACL,cAAc,EAId,QAAQ,EAMT,MAAM,qBAAqB,CAAC;AAM7B,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,UAAU,gBAAgB;IACxB,MAAM,CAAC,EAAE;QAAE,OAAO,EAAE,cAAc,EAAE,CAAA;KAAE,CAAC;IACvC,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,cAAc,EACZ;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;KAAE,GACzB;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG;YAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;SAAE,CAAA;KAAE,CAAC;IACnD,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,qBAAqB,CAAC,EAAE,kBAAkB,CAAC;IAC3C,cAAc,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,IAAI,CAAC;IACjD,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,eAAe,EAAE,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IAC1C,eAAe,EAAE,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IAC1C,kBAAkB,EAAE,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IAC7C,wBAAwB,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IACpD,oBAAoB,EAAE,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;CAChD;AAQD,KAAK,kBAAkB,GAAG;IACxB,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,EAAE,CAAC;CAC3B,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,EAClC,MAAM,EACN,MAAM,EACN,cAAc,EACd,uBAAuB,EACvB,qBAAqB,EACrB,cAAc,EACd,cAAc,EACd,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,wBAAwB,EACxB,oBAAoB,GACrB,EAAE,gBAAgB,kDAi3BlB"}