@quillsql/react 2.12.45 → 2.12.47

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 (255) hide show
  1. package/dist/cjs/Chart.d.ts.map +1 -1
  2. package/dist/cjs/Chart.js +16 -7
  3. package/dist/cjs/ChartBuilder.d.ts +10 -11
  4. package/dist/cjs/ChartBuilder.d.ts.map +1 -1
  5. package/dist/cjs/ChartBuilder.js +78 -81
  6. package/dist/cjs/ChartEditor.d.ts +3 -1
  7. package/dist/cjs/ChartEditor.d.ts.map +1 -1
  8. package/dist/cjs/ChartEditor.js +26 -10
  9. package/dist/cjs/Context.d.ts +2 -3
  10. package/dist/cjs/Context.d.ts.map +1 -1
  11. package/dist/cjs/Context.js +42 -28
  12. package/dist/cjs/Dashboard.d.ts +12 -12
  13. package/dist/cjs/Dashboard.d.ts.map +1 -1
  14. package/dist/cjs/Dashboard.js +61 -69
  15. package/dist/cjs/QuillProvider.d.ts +2 -0
  16. package/dist/cjs/QuillProvider.d.ts.map +1 -1
  17. package/dist/cjs/QuillProvider.js +1 -15
  18. package/dist/cjs/ReportBuilder.d.ts +9 -9
  19. package/dist/cjs/ReportBuilder.d.ts.map +1 -1
  20. package/dist/cjs/ReportBuilder.js +116 -179
  21. package/dist/cjs/SQLEditor.d.ts +20 -11
  22. package/dist/cjs/SQLEditor.d.ts.map +1 -1
  23. package/dist/cjs/SQLEditor.js +157 -90
  24. package/dist/cjs/Table.js +3 -3
  25. package/dist/cjs/components/Chart/BarChart.d.ts.map +1 -1
  26. package/dist/cjs/components/Chart/BarChart.js +6 -25
  27. package/dist/cjs/components/Chart/BarList.js +1 -1
  28. package/dist/cjs/components/Chart/ChartError.d.ts +5 -2
  29. package/dist/cjs/components/Chart/ChartError.d.ts.map +1 -1
  30. package/dist/cjs/components/Chart/ChartError.js +7 -10
  31. package/dist/cjs/components/Chart/LineChart.d.ts.map +1 -1
  32. package/dist/cjs/components/Chart/LineChart.js +16 -1
  33. package/dist/cjs/components/Chart/PieChart.js +1 -1
  34. package/dist/cjs/components/Dashboard/ChartComponent.d.ts +1 -1
  35. package/dist/cjs/components/Dashboard/ChartComponent.d.ts.map +1 -1
  36. package/dist/cjs/components/Dashboard/ChartComponent.js +46 -47
  37. package/dist/cjs/components/Dashboard/DashboardFilter.d.ts.map +1 -1
  38. package/dist/cjs/components/Dashboard/DashboardFilter.js +2 -1
  39. package/dist/cjs/components/Dashboard/DataLoader.d.ts +2 -2
  40. package/dist/cjs/components/Dashboard/DataLoader.d.ts.map +1 -1
  41. package/dist/cjs/components/Dashboard/DataLoader.js +19 -13
  42. package/dist/cjs/components/Dashboard/MetricComponent.d.ts.map +1 -1
  43. package/dist/cjs/components/Dashboard/MetricComponent.js +16 -26
  44. package/dist/cjs/components/Dashboard/TableComponent.d.ts.map +1 -1
  45. package/dist/cjs/components/Dashboard/TableComponent.js +16 -25
  46. package/dist/cjs/components/QuillMultiSelectWithCombo.d.ts.map +1 -1
  47. package/dist/cjs/components/QuillMultiSelectWithCombo.js +31 -1
  48. package/dist/cjs/components/QuillSelect.js +1 -1
  49. package/dist/cjs/components/QuillTable.d.ts +1 -1
  50. package/dist/cjs/components/QuillTable.d.ts.map +1 -1
  51. package/dist/cjs/components/QuillTable.js +115 -105
  52. package/dist/cjs/components/ReportBuilder/AddColumnModal.d.ts +3 -3
  53. package/dist/cjs/components/ReportBuilder/AddColumnModal.d.ts.map +1 -1
  54. package/dist/cjs/components/ReportBuilder/AddColumnModal.js +2 -2
  55. package/dist/cjs/components/ReportBuilder/AddLimitPopover.d.ts +2 -2
  56. package/dist/cjs/components/ReportBuilder/AddLimitPopover.d.ts.map +1 -1
  57. package/dist/cjs/components/ReportBuilder/AddLimitPopover.js +28 -9
  58. package/dist/cjs/components/ReportBuilder/FilterModal.d.ts +1 -1
  59. package/dist/cjs/components/ReportBuilder/FilterModal.d.ts.map +1 -1
  60. package/dist/cjs/components/ReportBuilder/FilterModal.js +178 -114
  61. package/dist/cjs/components/ReportBuilder/convert.d.ts.map +1 -1
  62. package/dist/cjs/components/ReportBuilder/convert.js +1 -2
  63. package/dist/cjs/components/ReportBuilder/ui.d.ts +9 -1
  64. package/dist/cjs/components/ReportBuilder/ui.d.ts.map +1 -1
  65. package/dist/cjs/components/ReportBuilder/ui.js +37 -3
  66. package/dist/cjs/components/ReportBuilder/util.d.ts +5 -1
  67. package/dist/cjs/components/ReportBuilder/util.d.ts.map +1 -1
  68. package/dist/cjs/components/ReportBuilder/util.js +26 -12
  69. package/dist/cjs/components/UiComponents.d.ts +17 -3
  70. package/dist/cjs/components/UiComponents.d.ts.map +1 -1
  71. package/dist/cjs/components/UiComponents.js +160 -29
  72. package/dist/cjs/hooks/useAskQuill.d.ts.map +1 -1
  73. package/dist/cjs/hooks/useAskQuill.js +7 -7
  74. package/dist/cjs/hooks/useAstToFilterTree.d.ts +4 -1
  75. package/dist/cjs/hooks/useAstToFilterTree.d.ts.map +1 -1
  76. package/dist/cjs/hooks/useAstToFilterTree.js +4 -1
  77. package/dist/cjs/hooks/useDashboard.d.ts +5 -1
  78. package/dist/cjs/hooks/useDashboard.d.ts.map +1 -1
  79. package/dist/cjs/hooks/useDashboard.js +28 -4
  80. package/dist/cjs/hooks/useOnClickOutside.js +2 -2
  81. package/dist/cjs/hooks/useQuill.js +4 -4
  82. package/dist/cjs/hooks/useVirtualTables.d.ts +10 -0
  83. package/dist/cjs/hooks/useVirtualTables.d.ts.map +1 -0
  84. package/dist/cjs/hooks/useVirtualTables.js +29 -0
  85. package/dist/cjs/index.d.ts +2 -1
  86. package/dist/cjs/index.d.ts.map +1 -1
  87. package/dist/cjs/index.js +4 -1
  88. package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
  89. package/dist/cjs/internals/ReportBuilder/PivotModal.js +45 -21
  90. package/dist/cjs/models/Client.d.ts +3 -0
  91. package/dist/cjs/models/Client.d.ts.map +1 -1
  92. package/dist/cjs/models/Report.d.ts +2 -0
  93. package/dist/cjs/models/Report.d.ts.map +1 -1
  94. package/dist/cjs/models/Schema.d.ts +7 -0
  95. package/dist/cjs/models/Schema.d.ts.map +1 -0
  96. package/dist/cjs/models/Schema.js +2 -0
  97. package/dist/cjs/models/Tables.d.ts +2 -0
  98. package/dist/cjs/models/Tables.d.ts.map +1 -1
  99. package/dist/cjs/utils/astFilterProcessing.d.ts +4 -0
  100. package/dist/cjs/utils/astFilterProcessing.d.ts.map +1 -1
  101. package/dist/cjs/utils/astFilterProcessing.js +47 -44
  102. package/dist/cjs/utils/astProcessing.d.ts.map +1 -1
  103. package/dist/cjs/utils/astProcessing.js +8 -8
  104. package/dist/cjs/utils/client.d.ts.map +1 -1
  105. package/dist/cjs/utils/client.js +1 -0
  106. package/dist/cjs/utils/columnProcessing.d.ts.map +1 -1
  107. package/dist/cjs/utils/columnProcessing.js +88 -5
  108. package/dist/cjs/utils/dataFetcher.d.ts.map +1 -1
  109. package/dist/cjs/utils/dataFetcher.js +7 -3
  110. package/dist/cjs/utils/filterProcessing.d.ts +25 -0
  111. package/dist/cjs/utils/filterProcessing.d.ts.map +1 -1
  112. package/dist/cjs/utils/filterProcessing.js +121 -1
  113. package/dist/cjs/utils/paginationProcessing.js +2 -2
  114. package/dist/cjs/utils/pivotConstructor.d.ts.map +1 -1
  115. package/dist/cjs/utils/pivotConstructor.js +10 -6
  116. package/dist/cjs/utils/queryConstructor.d.ts +1 -0
  117. package/dist/cjs/utils/queryConstructor.d.ts.map +1 -1
  118. package/dist/cjs/utils/queryConstructor.js +37 -11
  119. package/dist/cjs/utils/report.d.ts +5 -0
  120. package/dist/cjs/utils/report.d.ts.map +1 -1
  121. package/dist/cjs/utils/report.js +63 -9
  122. package/dist/cjs/utils/schema.js +22 -20
  123. package/dist/cjs/utils/tableProcessing.d.ts +1 -0
  124. package/dist/cjs/utils/tableProcessing.d.ts.map +1 -1
  125. package/dist/cjs/utils/tableProcessing.js +22 -1
  126. package/dist/cjs/utils/validation.d.ts.map +1 -1
  127. package/dist/cjs/utils/validation.js +4 -0
  128. package/dist/esm/Chart.d.ts.map +1 -1
  129. package/dist/esm/Chart.js +17 -8
  130. package/dist/esm/ChartBuilder.d.ts +10 -11
  131. package/dist/esm/ChartBuilder.d.ts.map +1 -1
  132. package/dist/esm/ChartBuilder.js +81 -84
  133. package/dist/esm/ChartEditor.d.ts +3 -1
  134. package/dist/esm/ChartEditor.d.ts.map +1 -1
  135. package/dist/esm/ChartEditor.js +27 -11
  136. package/dist/esm/Context.d.ts +2 -3
  137. package/dist/esm/Context.d.ts.map +1 -1
  138. package/dist/esm/Context.js +42 -28
  139. package/dist/esm/Dashboard.d.ts +12 -12
  140. package/dist/esm/Dashboard.d.ts.map +1 -1
  141. package/dist/esm/Dashboard.js +63 -71
  142. package/dist/esm/QuillProvider.d.ts +2 -0
  143. package/dist/esm/QuillProvider.d.ts.map +1 -1
  144. package/dist/esm/QuillProvider.js +2 -16
  145. package/dist/esm/ReportBuilder.d.ts +9 -9
  146. package/dist/esm/ReportBuilder.d.ts.map +1 -1
  147. package/dist/esm/ReportBuilder.js +122 -185
  148. package/dist/esm/SQLEditor.d.ts +20 -11
  149. package/dist/esm/SQLEditor.d.ts.map +1 -1
  150. package/dist/esm/SQLEditor.js +160 -93
  151. package/dist/esm/Table.js +4 -4
  152. package/dist/esm/components/Chart/BarChart.d.ts.map +1 -1
  153. package/dist/esm/components/Chart/BarChart.js +7 -26
  154. package/dist/esm/components/Chart/BarList.js +1 -1
  155. package/dist/esm/components/Chart/ChartError.d.ts +5 -2
  156. package/dist/esm/components/Chart/ChartError.d.ts.map +1 -1
  157. package/dist/esm/components/Chart/ChartError.js +7 -10
  158. package/dist/esm/components/Chart/LineChart.d.ts.map +1 -1
  159. package/dist/esm/components/Chart/LineChart.js +16 -1
  160. package/dist/esm/components/Chart/PieChart.js +1 -1
  161. package/dist/esm/components/Dashboard/ChartComponent.d.ts +1 -1
  162. package/dist/esm/components/Dashboard/ChartComponent.d.ts.map +1 -1
  163. package/dist/esm/components/Dashboard/ChartComponent.js +46 -47
  164. package/dist/esm/components/Dashboard/DashboardFilter.d.ts.map +1 -1
  165. package/dist/esm/components/Dashboard/DashboardFilter.js +2 -1
  166. package/dist/esm/components/Dashboard/DataLoader.d.ts +2 -2
  167. package/dist/esm/components/Dashboard/DataLoader.d.ts.map +1 -1
  168. package/dist/esm/components/Dashboard/DataLoader.js +20 -14
  169. package/dist/esm/components/Dashboard/MetricComponent.d.ts.map +1 -1
  170. package/dist/esm/components/Dashboard/MetricComponent.js +16 -26
  171. package/dist/esm/components/Dashboard/TableComponent.d.ts.map +1 -1
  172. package/dist/esm/components/Dashboard/TableComponent.js +16 -25
  173. package/dist/esm/components/QuillMultiSelectWithCombo.d.ts.map +1 -1
  174. package/dist/esm/components/QuillMultiSelectWithCombo.js +31 -1
  175. package/dist/esm/components/QuillSelect.js +1 -1
  176. package/dist/esm/components/QuillTable.d.ts +1 -1
  177. package/dist/esm/components/QuillTable.d.ts.map +1 -1
  178. package/dist/esm/components/QuillTable.js +115 -105
  179. package/dist/esm/components/ReportBuilder/AddColumnModal.d.ts +3 -3
  180. package/dist/esm/components/ReportBuilder/AddColumnModal.d.ts.map +1 -1
  181. package/dist/esm/components/ReportBuilder/AddColumnModal.js +2 -2
  182. package/dist/esm/components/ReportBuilder/AddLimitPopover.d.ts +2 -2
  183. package/dist/esm/components/ReportBuilder/AddLimitPopover.d.ts.map +1 -1
  184. package/dist/esm/components/ReportBuilder/AddLimitPopover.js +28 -9
  185. package/dist/esm/components/ReportBuilder/FilterModal.d.ts +1 -1
  186. package/dist/esm/components/ReportBuilder/FilterModal.d.ts.map +1 -1
  187. package/dist/esm/components/ReportBuilder/FilterModal.js +178 -114
  188. package/dist/esm/components/ReportBuilder/convert.d.ts.map +1 -1
  189. package/dist/esm/components/ReportBuilder/convert.js +1 -2
  190. package/dist/esm/components/ReportBuilder/ui.d.ts +9 -1
  191. package/dist/esm/components/ReportBuilder/ui.d.ts.map +1 -1
  192. package/dist/esm/components/ReportBuilder/ui.js +38 -4
  193. package/dist/esm/components/ReportBuilder/util.d.ts +5 -1
  194. package/dist/esm/components/ReportBuilder/util.d.ts.map +1 -1
  195. package/dist/esm/components/ReportBuilder/util.js +26 -12
  196. package/dist/esm/components/UiComponents.d.ts +17 -3
  197. package/dist/esm/components/UiComponents.d.ts.map +1 -1
  198. package/dist/esm/components/UiComponents.js +158 -28
  199. package/dist/esm/hooks/useAskQuill.d.ts.map +1 -1
  200. package/dist/esm/hooks/useAskQuill.js +8 -8
  201. package/dist/esm/hooks/useAstToFilterTree.d.ts +4 -1
  202. package/dist/esm/hooks/useAstToFilterTree.d.ts.map +1 -1
  203. package/dist/esm/hooks/useAstToFilterTree.js +4 -1
  204. package/dist/esm/hooks/useDashboard.d.ts +5 -1
  205. package/dist/esm/hooks/useDashboard.d.ts.map +1 -1
  206. package/dist/esm/hooks/useDashboard.js +28 -5
  207. package/dist/esm/hooks/useOnClickOutside.js +2 -2
  208. package/dist/esm/hooks/useQuill.js +5 -5
  209. package/dist/esm/hooks/useVirtualTables.d.ts +10 -0
  210. package/dist/esm/hooks/useVirtualTables.d.ts.map +1 -0
  211. package/dist/esm/hooks/useVirtualTables.js +25 -0
  212. package/dist/esm/index.d.ts +2 -1
  213. package/dist/esm/index.d.ts.map +1 -1
  214. package/dist/esm/index.js +2 -1
  215. package/dist/esm/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
  216. package/dist/esm/internals/ReportBuilder/PivotModal.js +44 -23
  217. package/dist/esm/models/Client.d.ts +3 -0
  218. package/dist/esm/models/Client.d.ts.map +1 -1
  219. package/dist/esm/models/Report.d.ts +2 -0
  220. package/dist/esm/models/Report.d.ts.map +1 -1
  221. package/dist/esm/models/Schema.d.ts +7 -0
  222. package/dist/esm/models/Schema.d.ts.map +1 -0
  223. package/dist/esm/models/Schema.js +1 -0
  224. package/dist/esm/models/Tables.d.ts +2 -0
  225. package/dist/esm/models/Tables.d.ts.map +1 -1
  226. package/dist/esm/utils/astFilterProcessing.d.ts +4 -0
  227. package/dist/esm/utils/astFilterProcessing.d.ts.map +1 -1
  228. package/dist/esm/utils/astFilterProcessing.js +45 -43
  229. package/dist/esm/utils/astProcessing.d.ts.map +1 -1
  230. package/dist/esm/utils/astProcessing.js +8 -8
  231. package/dist/esm/utils/client.d.ts.map +1 -1
  232. package/dist/esm/utils/client.js +1 -0
  233. package/dist/esm/utils/columnProcessing.d.ts.map +1 -1
  234. package/dist/esm/utils/columnProcessing.js +88 -5
  235. package/dist/esm/utils/dataFetcher.d.ts.map +1 -1
  236. package/dist/esm/utils/dataFetcher.js +7 -3
  237. package/dist/esm/utils/filterProcessing.d.ts +25 -0
  238. package/dist/esm/utils/filterProcessing.d.ts.map +1 -1
  239. package/dist/esm/utils/filterProcessing.js +116 -0
  240. package/dist/esm/utils/paginationProcessing.js +2 -2
  241. package/dist/esm/utils/pivotConstructor.d.ts.map +1 -1
  242. package/dist/esm/utils/pivotConstructor.js +10 -6
  243. package/dist/esm/utils/queryConstructor.d.ts +1 -0
  244. package/dist/esm/utils/queryConstructor.d.ts.map +1 -1
  245. package/dist/esm/utils/queryConstructor.js +35 -10
  246. package/dist/esm/utils/report.d.ts +5 -0
  247. package/dist/esm/utils/report.d.ts.map +1 -1
  248. package/dist/esm/utils/report.js +61 -8
  249. package/dist/esm/utils/schema.js +22 -20
  250. package/dist/esm/utils/tableProcessing.d.ts +1 -0
  251. package/dist/esm/utils/tableProcessing.d.ts.map +1 -1
  252. package/dist/esm/utils/tableProcessing.js +21 -1
  253. package/dist/esm/utils/validation.d.ts.map +1 -1
  254. package/dist/esm/utils/validation.js +4 -0
  255. package/package.json +3 -1
@@ -13,32 +13,20 @@ const filterProcessing_1 = require("../../utils/filterProcessing");
13
13
  * Modal for adding, editing, and deleting Filters
14
14
  */
15
15
  function FilterModal({ schema, filter, fieldValuesMap, customOperatorOptions, onSubmitFilter, onDeleteFilter, ButtonComponent, SelectComponent, TextInputComponent, SecondaryButtonComponent, MultiSelectComponent, }) {
16
- const [field, setField] = (0, react_1.useState)(filter ? filter.field : '');
16
+ const [field, setField] = (0, react_1.useState)('');
17
17
  const [fieldOptions, setFieldOptions] = (0, react_1.useState)([]);
18
18
  const [fieldValues, setFieldValues] = (0, react_1.useState)([]);
19
- const [type, setType] = (0, react_1.useState)(filter ? filter.filterType : '');
20
- const [value, setValue] = (0, react_1.useState)(filter
21
- ? filter.filterType === 'date-filter'
22
- ? filter.value.value
23
- : filter.value
24
- : undefined);
25
- const [selectedOptions, setSelectedOptions] = (0, react_1.useState)(filter && filter.filterType === 'string-in-filter'
26
- ? filter.value.map((val) => {
27
- return { label: val, value: val };
28
- })
29
- : []);
30
- const [operator, setOperator] = (0, react_1.useState)(filter ? filter.operator : '');
19
+ const [type, setType] = (0, react_1.useState)('');
20
+ const [value, setValue] = (0, react_1.useState)(undefined);
21
+ const [selectedOptions, setSelectedOptions] = (0, react_1.useState)([]);
22
+ const [operator, setOperator] = (0, react_1.useState)('');
31
23
  const [operatorOptions, setOperatorOptions] = (0, react_1.useState)([]);
32
- const [unit, setUnit] = (0, react_1.useState)(filter && filter.filterType === 'date-filter' ? filter.value.unit : '');
24
+ const [unit, setUnit] = (0, react_1.useState)('');
33
25
  const [unitOptions, setUnitOptions] = (0, react_1.useState)([]);
34
- const [startDate, setStartDate] = (0, react_1.useState)(filter && filter.value?.startDate
35
- ? filter.value.startDate.substring(0, 10)
36
- : (0, date_fns_1.startOfToday)().toISOString().substring(0, 10));
37
- const [endDate, setEndDate] = (0, react_1.useState)(filter && filter.value?.endDate
38
- ? filter.value.endDate.substring(0, 10)
39
- : (0, date_fns_1.startOfToday)().toISOString().substring(0, 10));
26
+ const [startDate, setStartDate] = (0, react_1.useState)((0, date_fns_1.startOfToday)().toISOString().substring(0, 10));
27
+ const [endDate, setEndDate] = (0, react_1.useState)((0, date_fns_1.startOfToday)().toISOString().substring(0, 10));
40
28
  const [filterInitialized, setFilterInitialized] = (0, react_1.useState)(false);
41
- const [table, setTable] = (0, react_1.useState)('');
29
+ const [table, setTable] = (0, react_1.useState)(undefined);
42
30
  // Define all supported operator options for each field type
43
31
  const allOperatorOptions = {
44
32
  [Filter_1.FieldTypes.Number]: [
@@ -82,6 +70,20 @@ function FilterModal({ schema, filter, fieldValuesMap, customOperatorOptions, on
82
70
  // Effect hook to initialize or update fieldValues based on selected field
83
71
  (0, react_1.useEffect)(() => {
84
72
  if (filter) {
73
+ setField(filter.field);
74
+ onFieldChange(filter.field, fieldOptions);
75
+ setType(filter.filterType);
76
+ onTypeChange(filter.filterType);
77
+ setValue(filter.filterType === 'date-filter' ? filter.value.value : filter.value);
78
+ setOperator(filter.operator);
79
+ onOperatorChange(filter.operator);
80
+ setUnit(filter.filterType === 'date-filter' ? filter.value.unit : '');
81
+ setStartDate(filter.value?.startDate
82
+ ? filter.value.startDate.substring(0, 10)
83
+ : (0, date_fns_1.startOfToday)().toISOString().substring(0, 10));
84
+ setEndDate(filter.value?.endDate
85
+ ? filter.value.endDate.substring(0, 10)
86
+ : (0, date_fns_1.startOfToday)().toISOString().substring(0, 10));
85
87
  if (filter.filterType === 'string-in-filter') {
86
88
  setSelectedOptions(filter.value.map((val) => {
87
89
  return { label: val, value: val };
@@ -102,33 +104,14 @@ function FilterModal({ schema, filter, fieldValuesMap, customOperatorOptions, on
102
104
  setFieldOptions(fo);
103
105
  if (!filter && fo.length > 0 && fo[0]) {
104
106
  setField(fo[0].name);
107
+ onFieldChange(fo[0].name, fo);
105
108
  }
106
- }
107
- }, [schema]);
108
- // Effect hook to update UI when field selection changes
109
- (0, react_1.useEffect)(() => {
110
- if (field !== '') {
111
- const selectedOption = fieldOptions.find((option) => option.name === field);
112
- if (selectedOption) {
113
- const fv = getFieldValues(selectedOption.name, selectedOption.table);
114
- setFieldValues(fv);
115
- if (!selectedOptions.every((item) => fv
116
- .map((v) => v.toLowerCase())
117
- .includes(item.value.toLowerCase()))) {
118
- setSelectedOptions([]);
119
- }
120
- setType((0, filterProcessing_1.getType)(selectedOption.type));
121
- setTable(selectedOption.table);
109
+ else {
110
+ onFieldChange(field !== '' ? field : filter?.field ?? '', fo);
122
111
  }
123
112
  }
124
- else {
125
- setType('');
126
- setFieldValues([]);
127
- setSelectedOptions([]);
128
- }
129
- }, [field, fieldOptions]);
130
- // Effect hook to update operator options based on selected field type
131
- (0, react_1.useEffect)(() => {
113
+ }, [schema]);
114
+ function onTypeChange(type) {
132
115
  if (type) {
133
116
  const options = customOperatorOptions?.[type] ?? allOperatorOptions[type];
134
117
  if (options) {
@@ -137,18 +120,22 @@ function FilterModal({ schema, filter, fieldValuesMap, customOperatorOptions, on
137
120
  switch (type) {
138
121
  case 'string':
139
122
  setOperator(Filter_1.StringOperator.Is);
123
+ onOperatorChange(Filter_1.StringOperator.Is);
140
124
  setValue('');
141
125
  break;
142
126
  case 'date':
143
127
  setOperator(Filter_1.DateOperator.InTheLast);
128
+ onOperatorChange(Filter_1.DateOperator.InTheLast);
144
129
  setValue('90');
145
130
  break;
146
131
  case 'number':
147
132
  setOperator(Filter_1.NumberOperator.EqualTo);
133
+ onOperatorChange(Filter_1.NumberOperator.EqualTo);
148
134
  setValue('0');
149
135
  break;
150
136
  case 'boolean':
151
137
  setOperator(Filter_1.BoolOperator.EqualTo);
138
+ onOperatorChange(Filter_1.BoolOperator.EqualTo);
152
139
  setValue(true);
153
140
  break;
154
141
  }
@@ -161,31 +148,94 @@ function FilterModal({ schema, filter, fieldValuesMap, customOperatorOptions, on
161
148
  else {
162
149
  setOperatorOptions([]);
163
150
  setOperator('');
164
- setType('');
151
+ onOperatorChange('');
165
152
  }
166
- }, [type]);
167
- // Effect hook to update UI when operator selection changes
168
- (0, react_1.useEffect)(() => {
153
+ }
154
+ function onOperatorChange(operator) {
169
155
  if (operator === '') {
170
156
  setValue('');
171
157
  }
172
158
  if (typeof value !== 'string' &&
173
159
  typeof value !== 'number' &&
174
160
  typeof value !== 'boolean' &&
175
- operator !== Filter_1.DateOperator.Custom) {
161
+ operator !== Filter_1.DateOperator.Custom &&
162
+ (filterInitialized || !filter)) {
176
163
  setValue('');
177
164
  }
165
+ else if (type === Filter_1.FieldTypes.Date &&
166
+ [
167
+ Filter_1.DateOperator.GreaterThan,
168
+ Filter_1.DateOperator.GreaterThanOrEqualTo,
169
+ Filter_1.DateOperator.EqualTo,
170
+ Filter_1.DateOperator.LessThan,
171
+ Filter_1.DateOperator.LessThanOrEqualTo,
172
+ Filter_1.DateOperator.NotEqualTo,
173
+ ].includes(operator) &&
174
+ !(0, date_fns_1.isValid)((0, date_fns_1.parse)(value, 'yyyy-mm-dd', new Date())) &&
175
+ (filterInitialized || !filter)) {
176
+ setValue((0, date_fns_1.startOfToday)().toISOString().substring(0, 10));
177
+ }
178
+ else if (type === Filter_1.FieldTypes.Date &&
179
+ [
180
+ Filter_1.DateOperator.InTheLast,
181
+ Filter_1.DateOperator.InTheCurrent,
182
+ Filter_1.DateOperator.InThePrevious,
183
+ ].includes(operator) &&
184
+ (value === '' || (typeof value !== 'number' && isNaN(Number(value)))) &&
185
+ (filterInitialized || !filter)) {
186
+ setValue('90');
187
+ }
178
188
  const options = getUnits(operator);
179
189
  setUnitOptions(options);
180
- if (!options || !options.includes(unit)) {
190
+ if (unit === '' && options.length > 0) {
191
+ setUnit(Filter_1.TimeUnit.Day);
192
+ }
193
+ else if (!options || !options.includes(unit)) {
181
194
  setUnit('');
182
195
  }
183
- }, [operator]);
184
- (0, react_1.useEffect)(() => {
185
- if (!filter && unitOptions.length > 0) {
186
- setUnit(Filter_1.TimeUnit.Day);
196
+ }
197
+ function onFieldChange(field, fieldOptions) {
198
+ if (field !== '') {
199
+ const selectedOption = fieldOptions.find((option) => option.name === field);
200
+ if (selectedOption) {
201
+ const fieldValues = getFieldValues(selectedOption.name, selectedOption.table);
202
+ if (filterInitialized || !filter) {
203
+ if (!selectedOptions.every((item) => fieldValues
204
+ .map((v) => v.toLowerCase())
205
+ .includes(item.value.toLowerCase()))) {
206
+ setSelectedOptions([]);
207
+ }
208
+ }
209
+ else {
210
+ const preSelected = Array.isArray(filter.value)
211
+ ? filter.value.map((val) => {
212
+ return { label: val, value: val };
213
+ })
214
+ : [];
215
+ // if a filter comes with invalid choices, include them anyway
216
+ const valuesSet = new Set(fieldValues.map((v) => v.toLowerCase()));
217
+ preSelected.forEach((option) => {
218
+ if (!valuesSet.has(option.value.toLowerCase())) {
219
+ valuesSet.add(option.value.toLowerCase());
220
+ fieldValues.push(option.value);
221
+ }
222
+ });
223
+ }
224
+ setFieldValues(fieldValues);
225
+ setType((0, filterProcessing_1.getType)(selectedOption.type));
226
+ onTypeChange((0, filterProcessing_1.getType)(selectedOption.type));
227
+ if (selectedOption.table !== '') {
228
+ setTable(selectedOption.table);
229
+ }
230
+ }
187
231
  }
188
- }, [unitOptions]);
232
+ else {
233
+ setType('');
234
+ onTypeChange('');
235
+ setFieldValues([]);
236
+ setSelectedOptions([]);
237
+ }
238
+ }
189
239
  // Function that returns the list of units used for certain DateOperators
190
240
  const getUnits = (operator) => {
191
241
  switch (operator) {
@@ -230,7 +280,17 @@ function FilterModal({ schema, filter, fieldValuesMap, customOperatorOptions, on
230
280
  // Handler for operator selection change
231
281
  const handleOperatorChange = (event) => {
232
282
  const newOp = event.target.value;
233
- setOperator(newOp);
283
+ if (typeof newOp === 'string') {
284
+ setOperator(newOp);
285
+ onOperatorChange(newOp);
286
+ }
287
+ };
288
+ const handleFieldChange = (event) => {
289
+ const newField = event.target.value;
290
+ if (typeof newField === 'string' && newField !== field) {
291
+ setField(newField);
292
+ onFieldChange(newField, fieldOptions);
293
+ }
234
294
  };
235
295
  // Handler for date range selection
236
296
  const handleDateRangeSelect = (date) => {
@@ -243,6 +303,7 @@ function FilterModal({ schema, filter, fieldValuesMap, customOperatorOptions, on
243
303
  }
244
304
  }
245
305
  setOperator(Filter_1.DateOperator.Custom);
306
+ onOperatorChange(Filter_1.DateOperator.Custom);
246
307
  };
247
308
  // Handler for form submission
248
309
  const handleSubmit = () => {
@@ -260,7 +321,9 @@ function FilterModal({ schema, filter, fieldValuesMap, customOperatorOptions, on
260
321
  switch (operator) {
261
322
  case Filter_1.DateOperator.InTheLast:
262
323
  case Filter_1.DateOperator.InThePrevious:
263
- if (typeof value !== 'number' && isNaN(Number(value))) {
324
+ if (value === undefined ||
325
+ value === '' ||
326
+ (typeof value !== 'number' && isNaN(Number(value)))) {
264
327
  alert('Please specify a valid number');
265
328
  return;
266
329
  }
@@ -368,7 +431,7 @@ function FilterModal({ schema, filter, fieldValuesMap, customOperatorOptions, on
368
431
  });
369
432
  break;
370
433
  default:
371
- if (typeof value !== 'string') {
434
+ if (typeof value !== 'string' || value === '') {
372
435
  alert('Please specify a valid string');
373
436
  return;
374
437
  }
@@ -446,6 +509,9 @@ function FilterModal({ schema, filter, fieldValuesMap, customOperatorOptions, on
446
509
  const handleDelete = () => {
447
510
  onDeleteFilter();
448
511
  };
512
+ if (filter && !filterInitialized) {
513
+ return null; // prevent flashing
514
+ }
449
515
  return ((0, jsx_runtime_1.jsxs)("div", { style: {
450
516
  display: 'flex',
451
517
  flexDirection: 'column',
@@ -461,7 +527,7 @@ function FilterModal({ schema, filter, fieldValuesMap, customOperatorOptions, on
461
527
  gap: '20px',
462
528
  flexDirection: 'row',
463
529
  width: '100%',
464
- }, children: [(0, jsx_runtime_1.jsx)("div", { style: { display: 'flex', gap: 20 }, children: (0, jsx_runtime_1.jsx)(SelectComponent, { value: field, width: 200, onChange: (event) => setField(event.target.value), options: [
530
+ }, children: [(0, jsx_runtime_1.jsx)("div", { style: { display: 'flex', gap: 20 }, children: (0, jsx_runtime_1.jsx)(SelectComponent, { value: field, width: 200, onChange: handleFieldChange, options: [
465
531
  ...fieldOptions.map((option) => ({
466
532
  value: option.name,
467
533
  label: option.table !== ''
@@ -476,33 +542,33 @@ function FilterModal({ schema, filter, fieldValuesMap, customOperatorOptions, on
476
542
  ? `${operator} one of`
477
543
  : operator,
478
544
  })),
479
- ] }) })), (0, jsx_runtime_1.jsx)("div", { style: { display: 'flex', gap: 20 }, children: (() => {
480
- switch (operator) {
481
- case Filter_1.BoolOperator.EqualTo:
482
- case Filter_1.BoolOperator.NotEqualTo:
483
- case Filter_1.StringOperator.IsExactly:
484
- case Filter_1.StringOperator.IsNotExactly:
485
- case Filter_1.StringOperator.Contains:
486
- case Filter_1.NumberOperator.EqualTo:
487
- case Filter_1.NumberOperator.NotEqualTo:
488
- case Filter_1.NumberOperator.GreaterThan:
489
- case Filter_1.NumberOperator.LessThan:
490
- case Filter_1.NumberOperator.GreaterThanOrEqualTo:
491
- case Filter_1.NumberOperator.LessThanOrEqualTo:
492
- if (type === 'boolean') {
493
- return ((0, jsx_runtime_1.jsx)(SelectComponent, { value: value, width: 200, onChange: (event) => setValue(event.target.value), options: [
545
+ ] }) })), (() => {
546
+ switch (operator) {
547
+ case Filter_1.BoolOperator.EqualTo:
548
+ case Filter_1.BoolOperator.NotEqualTo:
549
+ case Filter_1.StringOperator.IsExactly:
550
+ case Filter_1.StringOperator.IsNotExactly:
551
+ case Filter_1.StringOperator.Contains:
552
+ case Filter_1.NumberOperator.EqualTo:
553
+ case Filter_1.NumberOperator.NotEqualTo:
554
+ case Filter_1.NumberOperator.GreaterThan:
555
+ case Filter_1.NumberOperator.LessThan:
556
+ case Filter_1.NumberOperator.GreaterThanOrEqualTo:
557
+ case Filter_1.NumberOperator.LessThanOrEqualTo:
558
+ if (type === 'boolean') {
559
+ return ((0, jsx_runtime_1.jsx)("div", { style: { display: 'flex', gap: 20 }, children: (0, jsx_runtime_1.jsx)(SelectComponent, { value: value, width: 200, onChange: (event) => setValue(event.target.value), options: [
494
560
  { value: true, label: 'true' },
495
561
  { value: false, label: 'false' },
496
- ] }));
497
- }
498
- else {
499
- return ((0, jsx_runtime_1.jsx)(TextInputComponent, { value: value, width: 120, onChange: (event) => {
562
+ ] }) }));
563
+ }
564
+ else {
565
+ return ((0, jsx_runtime_1.jsx)("div", { style: { display: 'flex', gap: 20 }, children: (0, jsx_runtime_1.jsx)(TextInputComponent, { value: value, width: 120, onChange: (event) => {
500
566
  setValue(event.target.value);
501
- } }));
502
- }
503
- case Filter_1.StringOperator.Is:
504
- case Filter_1.StringOperator.IsNot:
505
- return ((0, jsx_runtime_1.jsx)(MultiSelectComponent, { options: fieldValues.map((v) => {
567
+ } }) }));
568
+ }
569
+ case Filter_1.StringOperator.Is:
570
+ case Filter_1.StringOperator.IsNot:
571
+ return ((0, jsx_runtime_1.jsx)("div", { style: { display: 'flex', gap: 20 }, children: (0, jsx_runtime_1.jsx)(MultiSelectComponent, { options: fieldValues.map((v) => {
506
572
  return { value: v.toLowerCase(), label: v };
507
573
  }), width: 200, value: selectedOptions.map((val) => val.value.toLowerCase()), onChange: (e) => {
508
574
  if (e.target.value === '') {
@@ -520,9 +586,9 @@ function FilterModal({ schema, filter, fieldValuesMap, customOperatorOptions, on
520
586
  };
521
587
  });
522
588
  setSelectedOptions(jsonValue);
523
- } }));
524
- case Filter_1.DateOperator.Custom:
525
- return ((0, jsx_runtime_1.jsx)(QuillDateRangePicker_1.QuillDateRangePicker, { dateRange: {
589
+ } }) }));
590
+ case Filter_1.DateOperator.Custom:
591
+ return ((0, jsx_runtime_1.jsx)("div", { style: { display: 'flex', gap: 20 }, children: (0, jsx_runtime_1.jsx)(QuillDateRangePicker_1.QuillDateRangePicker, { dateRange: {
526
592
  startDate: startDate
527
593
  ? new Date(startDate + 'T00:00:00')
528
594
  : (0, date_fns_1.startOfToday)(),
@@ -534,37 +600,35 @@ function FilterModal({ schema, filter, fieldValuesMap, customOperatorOptions, on
534
600
  from: value.startDate,
535
601
  to: value.endDate,
536
602
  });
537
- } }));
538
- case Filter_1.DateOperator.InTheLast:
539
- case Filter_1.DateOperator.InThePrevious:
540
- return ((0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', flexDirection: 'row' }, children: [(0, jsx_runtime_1.jsx)(TextInputComponent, { value: value, width: 120, onChange: (event) => {
541
- setValue(event.target.value);
542
- } }), unitOptions.length > 0 && ((0, jsx_runtime_1.jsx)("div", { style: { marginLeft: '10px', marginRight: '10px' }, children: (0, jsx_runtime_1.jsx)(SelectComponent, { value: unit, width: 200, onChange: (event) => setUnit(event.target.value), options: [
543
- // { value: 'Select', label: 'Select' },
544
- ...unitOptions.map((unit) => ({
545
- value: unit,
546
- label: `${unit}${value && value !== '1' && value !== 1
547
- ? 's'
548
- : ''}`,
549
- })),
550
- ] }) }))] }));
551
- case Filter_1.DateOperator.InTheCurrent:
552
- return ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: unitOptions.length > 0 && ((0, jsx_runtime_1.jsx)("div", { style: { marginLeft: '10px', marginRight: '10px' }, children: (0, jsx_runtime_1.jsx)(SelectComponent, { value: unit, width: 200, onChange: (event) => setUnit(event.target.value), options: [
603
+ } }) }));
604
+ case Filter_1.DateOperator.InTheLast:
605
+ case Filter_1.DateOperator.InThePrevious:
606
+ return ((0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', flexDirection: 'row' }, children: [(0, jsx_runtime_1.jsx)(TextInputComponent, { value: value, width: 120, onChange: (event) => {
607
+ setValue(event.target.value);
608
+ } }), unitOptions.length > 0 && ((0, jsx_runtime_1.jsx)("div", { style: { marginLeft: '10px' }, children: (0, jsx_runtime_1.jsx)(SelectComponent, { value: unit, width: 200, onChange: (event) => setUnit(event.target.value), options: [
553
609
  // { value: 'Select', label: 'Select' },
554
610
  ...unitOptions.map((unit) => ({
555
611
  value: unit,
556
- label: `${unit}${operator !== Filter_1.DateOperator.InTheCurrent &&
557
- value &&
558
- value !== '1' &&
559
- value !== 1
560
- ? 's'
561
- : ''}`,
612
+ label: `${unit}${value && value !== '1' && value !== 1 ? 's' : ''}`,
562
613
  })),
563
- ] }) })) }));
564
- default:
565
- return (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, {});
566
- }
567
- })() })] }) }), (0, jsx_runtime_1.jsx)("div", { style: {
614
+ ] }) }))] }));
615
+ case Filter_1.DateOperator.InTheCurrent:
616
+ return ((0, jsx_runtime_1.jsx)("div", { style: { display: 'flex', gap: 20 }, children: unitOptions.length > 0 && ((0, jsx_runtime_1.jsx)(SelectComponent, { value: unit, width: 200, onChange: (event) => setUnit(event.target.value), options: [
617
+ // { value: 'Select', label: 'Select' },
618
+ ...unitOptions.map((unit) => ({
619
+ value: unit,
620
+ label: `${unit}${operator !== Filter_1.DateOperator.InTheCurrent &&
621
+ value &&
622
+ value !== '1' &&
623
+ value !== 1
624
+ ? 's'
625
+ : ''}`,
626
+ })),
627
+ ] })) }));
628
+ default:
629
+ return (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, {});
630
+ }
631
+ })()] }) }), (0, jsx_runtime_1.jsx)("div", { style: {
568
632
  display: 'flex',
569
633
  flexDirection: 'row',
570
634
  justifyContent: 'flex-end',
@@ -1 +1 @@
1
- {"version":3,"file":"convert.d.ts","sourceRoot":"","sources":["../../../../src/components/ReportBuilder/convert.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,aAAa,IAAI,GAAG,EACpB,GAAG,EAOJ,MAAM,OAAO,CAAC;AAEf,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAQ5C,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAuBlE;AAGD,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,GAAG,EACT,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,QAahB;AAGD,wBAAgB,8BAA8B,CAC5C,IAAI,EAAE,GAAG,EACT,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,QAalB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC,MAAM,CAoDpD;AAUD;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,GAAG,CAAC,MAAM,EACf,YAAY,EAAE,KAAK,EAAE,GACpB,GAAG,CAAC,MAAM,CA8BZ;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CAAC,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,gBAkBrE;AAmID,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,GAAG,CAAC,MAAM,EACf,UAAU,EAAE,cAAc,EAAE,GAC3B,KAAK,GAAG,IAAI,CAmFd;AA+BD;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,GAAG,EACR,YAAY,EAAE,KAAK,EAAE,EACrB,SAAS,CAAC,EAAE,KAAK;;;;;;EAwFlB;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,OAyNtE;AAID,wBAAgB,8BAA8B,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAY1E;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,GAAG,OA+C5C"}
1
+ {"version":3,"file":"convert.d.ts","sourceRoot":"","sources":["../../../../src/components/ReportBuilder/convert.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,aAAa,IAAI,GAAG,EACpB,GAAG,EAOJ,MAAM,OAAO,CAAC;AAEf,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAQ5C,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAuBlE;AAGD,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,GAAG,EACT,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,QAahB;AAGD,wBAAgB,8BAA8B,CAC5C,IAAI,EAAE,GAAG,EACT,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,QAalB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC,MAAM,CAoDpD;AAUD;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,GAAG,CAAC,MAAM,EACf,YAAY,EAAE,KAAK,EAAE,GACpB,GAAG,CAAC,MAAM,CA8BZ;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CAAC,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,gBAkBrE;AAmID,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,GAAG,CAAC,MAAM,EACf,UAAU,EAAE,cAAc,EAAE,GAC3B,KAAK,GAAG,IAAI,CAmFd;AA+BD;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,GAAG,EACR,YAAY,EAAE,KAAK,EAAE,EACrB,SAAS,CAAC,EAAE,KAAK;;;;;;EAuFlB;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,OAyNtE;AAID,wBAAgB,8BAA8B,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAY1E;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,GAAG,OA+C5C"}
@@ -413,8 +413,7 @@ function convertGroupBy(ast, schemaTables, prevPivot) {
413
413
  const existingCol = columnAlreadyExists(prevPivot.columnField);
414
414
  newColumns.push(existingCol ?? (0, util_1.generateColumnExpr)(prevPivot.columnField));
415
415
  }
416
- ast.columns = newColumns;
417
- return { pivot: prevPivot, ast };
416
+ return { pivot: prevPivot, ast: { ...ast, columns: newColumns } };
418
417
  }
419
418
  pivot = convertASTToPivotData(ast, columns);
420
419
  if (pivot && Object.keys(pivot).length === 0) {
@@ -2,6 +2,8 @@ import { ReactNode } from 'react';
2
2
  import { SidebarComponentProps, ContainerComponentProps } from '../UiComponents';
3
3
  import { Filter } from '../../models/Filter';
4
4
  import { ColumnInternal } from '../../models/Columns';
5
+ import { FilterTreeNode } from '../../utils/astFilterProcessing';
6
+ import { Client } from '../../models/Client';
5
7
  /**
6
8
  * This file is a collection of basic UI components that conform to the shape
7
9
  * expected by the Report Builder. Where possible, we use our existing
@@ -108,6 +110,12 @@ export interface FilterPopoverWrapperProps {
108
110
  FilterTagComponent: any;
109
111
  FilterModal: any;
110
112
  fieldValuesMap: any;
113
+ priorFilters?: FilterTreeNode[];
114
+ columns?: ColumnInternal[];
115
+ client?: Client;
116
+ customFields?: any;
117
+ baseAst?: any;
118
+ endpoint?: string;
111
119
  customOperatorOptions?: any;
112
120
  ButtonComponent: any;
113
121
  SecondaryButtonComponent: any;
@@ -118,5 +126,5 @@ export interface FilterPopoverWrapperProps {
118
126
  handleFilterSave: (filter: Filter) => void;
119
127
  containerStyle?: any;
120
128
  }
121
- export declare const FilterPopoverWrapper: ({ schema, filter, filterLabel, index, FilterTagComponent, FilterModal, fieldValuesMap, customOperatorOptions, ButtonComponent, SecondaryButtonComponent, SelectComponent, TextInputComponent, MultiSelectComponent, handleFilterDelete, handleFilterSave, containerStyle, }: FilterPopoverWrapperProps) => import("react/jsx-runtime").JSX.Element;
129
+ export declare const FilterPopoverWrapper: ({ schema, filter, filterLabel, index, FilterTagComponent, FilterModal, fieldValuesMap, priorFilters, columns, client, customFields, baseAst, endpoint, customOperatorOptions, ButtonComponent, SecondaryButtonComponent, SelectComponent, TextInputComponent, MultiSelectComponent, handleFilterDelete, handleFilterSave, containerStyle, }: FilterPopoverWrapperProps) => import("react/jsx-runtime").JSX.Element;
122
130
  //# sourceMappingURL=ui.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../../../src/components/ReportBuilder/ui.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../../../src/components/ReportBuilder/ui.tsx"],"names":[],"mappings":"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"}
@@ -11,6 +11,9 @@ const QuillTable_1 = __importDefault(require("../QuillTable"));
11
11
  const Context_1 = require("../../Context");
12
12
  const util_1 = require("./util");
13
13
  const csv_1 = require("../../utils/csv");
14
+ const paginationProcessing_1 = require("../../utils/paginationProcessing");
15
+ const filterProcessing_1 = require("../../utils/filterProcessing");
16
+ const tableProcessing_1 = require("../../utils/tableProcessing");
14
17
  /**
15
18
  * This file is a collection of basic UI components that conform to the shape
16
19
  * expected by the Report Builder. Where possible, we use our existing
@@ -62,7 +65,7 @@ exports.QuillSecondaryButton = QuillSecondaryButton;
62
65
  // TODO: remove this, I think it is unused.
63
66
  const QuillReportBuilderTable = ({ rows, columns, error, ...props }) => {
64
67
  const reformattedColumns = columns.map((c) => ({ label: c, field: c }));
65
- return ((0, jsx_runtime_1.jsx)("div", { style: { height: '100%', overflow: 'auto' }, children: (0, jsx_runtime_1.jsx)(QuillTable_1.default, { rows: rows, columns: reformattedColumns, rowsPerPage: 10, hideCSVDownloadButton: rows?.length > 0, downloadCSV: () => (0, csv_1.downloadCSV)({ rows, fields: reformattedColumns, name: 'my_report' }), emptyStateLabel: error || 'No results', ...props }) }));
68
+ return ((0, jsx_runtime_1.jsx)("div", { style: { height: '100%', overflow: 'auto' }, children: (0, jsx_runtime_1.jsx)(QuillTable_1.default, { rows: rows, columns: reformattedColumns, rowsPerPage: paginationProcessing_1.DEFAULT_PAGINATION.rowsPerPage, hideCSVDownloadButton: rows?.length > 0, downloadCSV: () => (0, csv_1.downloadCSV)({ rows, fields: reformattedColumns, name: 'my_report' }), emptyStateLabel: error || 'No results', ...props }) }));
66
69
  };
67
70
  exports.QuillReportBuilderTable = QuillReportBuilderTable;
68
71
  exports.QuillTag = (0, react_1.forwardRef)(({ label, onClick, children, onClickDelete, hideDelete = false }, forwardedRef) => {
@@ -392,12 +395,43 @@ const AddFilterPopover = ({ onSave, Button, renderNode, activeEditItem, }) => {
392
395
  }, children: (0, jsx_runtime_1.jsx)(Button, { onClick: handleOnClick, label: 'Add filter' }) })] }));
393
396
  };
394
397
  exports.AddFilterPopover = AddFilterPopover;
395
- const FilterPopoverWrapper = ({ schema, filter, filterLabel, index, FilterTagComponent, FilterModal, fieldValuesMap, customOperatorOptions, ButtonComponent, SecondaryButtonComponent, SelectComponent, TextInputComponent, MultiSelectComponent, handleFilterDelete, handleFilterSave, containerStyle, }) => {
398
+ const FilterPopoverWrapper = ({ schema, filter, filterLabel, index, FilterTagComponent, FilterModal, fieldValuesMap, priorFilters, columns, client, customFields, baseAst, endpoint, customOperatorOptions, ButtonComponent, SecondaryButtonComponent, SelectComponent, TextInputComponent, MultiSelectComponent, handleFilterDelete, handleFilterSave, containerStyle, }) => {
396
399
  const [isOpen, setIsOpen] = (0, react_1.useState)(false);
400
+ const [uniqueValues, setUniqueValues] = (0, react_1.useState)(undefined);
401
+ // Use a ref to store the previous value of priorFilters
402
+ const prevFiltersRef = (0, react_1.useRef)('');
403
+ (0, react_1.useEffect)(() => {
404
+ const currentFiltersString = JSON.stringify(priorFilters);
405
+ if (currentFiltersString !== prevFiltersRef.current) {
406
+ prevFiltersRef.current = currentFiltersString;
407
+ if (priorFilters) {
408
+ getFieldValuesMapByFilters(priorFilters);
409
+ }
410
+ }
411
+ }, [priorFilters]);
412
+ // This function retrieves the appropriate unique values given a set of filters
413
+ async function getFieldValuesMapByFilters(filters) {
414
+ if (!columns || !client || !endpoint || !baseAst) {
415
+ return;
416
+ }
417
+ else {
418
+ const { query, success, error } = await (0, filterProcessing_1.buildQueryFromFilters)(baseAst, filters, endpoint, client);
419
+ if (success && query) {
420
+ const { uniqueStrings } = await (0, tableProcessing_1.getRelevantInfoFromQuery)(columns, client, query, customFields);
421
+ const fieldValues = uniqueStrings && Object.keys(uniqueStrings).length !== 0
422
+ ? (0, filterProcessing_1.uniqueValuesToStringMap)(uniqueStrings)
423
+ : fieldValuesMap; // Fallback in case Promise comes up empty
424
+ setUniqueValues(fieldValues);
425
+ }
426
+ else if (error) {
427
+ console.error(error);
428
+ }
429
+ }
430
+ }
397
431
  function handleClickDelete() {
398
432
  handleFilterDelete(index);
399
433
  }
400
- return ((0, jsx_runtime_1.jsx)("div", { style: containerStyle, children: (0, jsx_runtime_1.jsx)(FilterTagComponent, { isOpen: isOpen, popoverTitle: "Edit Filter", filterLabel: filterLabel, onClickDelete: handleClickDelete, setIsOpen: setIsOpen, popoverChildren: (0, jsx_runtime_1.jsx)(FilterModal, { schema: schema, filter: filter, fieldValuesMap: fieldValuesMap, customOperatorOptions: customOperatorOptions, onSubmitFilter: (filter) => {
434
+ return ((0, jsx_runtime_1.jsx)("div", { style: containerStyle, children: (0, jsx_runtime_1.jsx)(FilterTagComponent, { isOpen: isOpen, popoverTitle: "Edit Filter", filterLabel: filterLabel, onClickDelete: handleClickDelete, setIsOpen: setIsOpen, popoverChildren: (0, jsx_runtime_1.jsx)(FilterModal, { schema: schema, filter: filter, fieldValuesMap: uniqueValues ?? fieldValuesMap, customOperatorOptions: customOperatorOptions, onSubmitFilter: (filter) => {
401
435
  handleFilterSave(filter);
402
436
  setIsOpen(false);
403
437
  }, onDeleteFilter: handleClickDelete, ButtonComponent: ButtonComponent, SelectComponent: SelectComponent, TextInputComponent: TextInputComponent, SecondaryButtonComponent: SecondaryButtonComponent ?? undefined, MultiSelectComponent: MultiSelectComponent }) }) }));
@@ -69,7 +69,11 @@ export declare const getDateFilterInfo: (node: any) => {
69
69
  intervalType: any;
70
70
  intervalPaths: any;
71
71
  };
72
- export declare function removeNonSelectedTableReferences(ast: any, table: string, columns: string[]): any;
72
+ export declare function removeNonSelectedTableReferences(ast: any, table: string, columns: string[], uniqueValues: {
73
+ [column: string]: {
74
+ [value: string]: boolean;
75
+ };
76
+ } | null): any;
73
77
  export declare function allNumericNodesValidInTree(node: any): boolean;
74
78
  export declare function isIdColumn(columnName?: string): boolean | "" | undefined;
75
79
  export declare function getCustomSentence(node: any, databaseType: string): string | null;
@@ -1 +1 @@
1
- {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../../src/components/ReportBuilder/util.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../../src/components/ReportBuilder/util.ts"],"names":[],"mappings":"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"}