@quillsql/react 2.12.52 → 2.13.0

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 (263) hide show
  1. package/dist/cjs/Chart.d.ts.map +1 -1
  2. package/dist/cjs/Chart.js +5 -3
  3. package/dist/cjs/ChartBuilder.d.ts +10 -3
  4. package/dist/cjs/ChartBuilder.d.ts.map +1 -1
  5. package/dist/cjs/ChartBuilder.js +62 -26
  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 +74 -16
  9. package/dist/cjs/Context.d.ts +17 -6
  10. package/dist/cjs/Context.d.ts.map +1 -1
  11. package/dist/cjs/Context.js +138 -73
  12. package/dist/cjs/Dashboard.d.ts +8 -4
  13. package/dist/cjs/Dashboard.d.ts.map +1 -1
  14. package/dist/cjs/Dashboard.js +146 -367
  15. package/dist/cjs/DateRangePicker/QuillDateRangePicker.d.ts.map +1 -1
  16. package/dist/cjs/DateRangePicker/QuillDateRangePicker.js +20 -14
  17. package/dist/cjs/DateRangePicker/dateRangePickerUtils.d.ts +1 -0
  18. package/dist/cjs/DateRangePicker/dateRangePickerUtils.d.ts.map +1 -1
  19. package/dist/cjs/DateRangePicker/dateRangePickerUtils.js +1 -1
  20. package/dist/cjs/QuillProvider.js +1 -1
  21. package/dist/cjs/ReportBuilder.d.ts +8 -12
  22. package/dist/cjs/ReportBuilder.d.ts.map +1 -1
  23. package/dist/cjs/ReportBuilder.js +163 -83
  24. package/dist/cjs/SQLEditor.d.ts +8 -1
  25. package/dist/cjs/SQLEditor.d.ts.map +1 -1
  26. package/dist/cjs/SQLEditor.js +81 -28
  27. package/dist/cjs/Table.d.ts.map +1 -1
  28. package/dist/cjs/Table.js +6 -3
  29. package/dist/cjs/assets/AdjustmentsIcon.d.ts +5 -0
  30. package/dist/cjs/assets/AdjustmentsIcon.d.ts.map +1 -0
  31. package/dist/cjs/assets/AdjustmentsIcon.js +5 -0
  32. package/dist/cjs/assets/ArrowDownHeadIcon.d.ts.map +1 -1
  33. package/dist/cjs/components/Chart/ChartError.js +2 -2
  34. package/dist/cjs/components/Dashboard/DashboardFilter.d.ts +4 -3
  35. package/dist/cjs/components/Dashboard/DashboardFilter.d.ts.map +1 -1
  36. package/dist/cjs/components/Dashboard/DashboardFilter.js +12 -12
  37. package/dist/cjs/components/Dashboard/DashboardTemplate.d.ts +2 -2
  38. package/dist/cjs/components/Dashboard/DashboardTemplate.d.ts.map +1 -1
  39. package/dist/cjs/components/Dashboard/DataLoader.d.ts +11 -5
  40. package/dist/cjs/components/Dashboard/DataLoader.d.ts.map +1 -1
  41. package/dist/cjs/components/Dashboard/DataLoader.js +91 -32
  42. package/dist/cjs/components/Dashboard/TableComponent.d.ts +2 -1
  43. package/dist/cjs/components/Dashboard/TableComponent.d.ts.map +1 -1
  44. package/dist/cjs/components/Dashboard/TableComponent.js +10 -3
  45. package/dist/cjs/components/Dashboard/util.d.ts +2 -2
  46. package/dist/cjs/components/Dashboard/util.d.ts.map +1 -1
  47. package/dist/cjs/components/Dashboard/util.js +2 -2
  48. package/dist/cjs/components/QuillMultiSelect.d.ts.map +1 -1
  49. package/dist/cjs/components/QuillMultiSelect.js +18 -13
  50. package/dist/cjs/components/QuillMultiSelectWithCombo.d.ts.map +1 -1
  51. package/dist/cjs/components/QuillMultiSelectWithCombo.js +67 -45
  52. package/dist/cjs/components/QuillSelect.d.ts +1 -1
  53. package/dist/cjs/components/QuillSelect.d.ts.map +1 -1
  54. package/dist/cjs/components/QuillSelect.js +29 -7
  55. package/dist/cjs/components/QuillSelectWithCombo.d.ts +1 -1
  56. package/dist/cjs/components/QuillSelectWithCombo.d.ts.map +1 -1
  57. package/dist/cjs/components/QuillSelectWithCombo.js +47 -26
  58. package/dist/cjs/components/QuillTable.d.ts +3 -2
  59. package/dist/cjs/components/QuillTable.d.ts.map +1 -1
  60. package/dist/cjs/components/QuillTable.js +32 -19
  61. package/dist/cjs/components/ReportBuilder/AddLimitPopover.d.ts +2 -1
  62. package/dist/cjs/components/ReportBuilder/AddLimitPopover.d.ts.map +1 -1
  63. package/dist/cjs/components/ReportBuilder/AddLimitPopover.js +2 -2
  64. package/dist/cjs/components/ReportBuilder/AddSortPopover.d.ts +2 -1
  65. package/dist/cjs/components/ReportBuilder/AddSortPopover.d.ts.map +1 -1
  66. package/dist/cjs/components/ReportBuilder/AddSortPopover.js +2 -2
  67. package/dist/cjs/components/ReportBuilder/FilterModal.d.ts +2 -1
  68. package/dist/cjs/components/ReportBuilder/FilterModal.d.ts.map +1 -1
  69. package/dist/cjs/components/ReportBuilder/FilterModal.js +17 -4
  70. package/dist/cjs/components/ReportBuilder/ui.d.ts +13 -8
  71. package/dist/cjs/components/ReportBuilder/ui.d.ts.map +1 -1
  72. package/dist/cjs/components/ReportBuilder/ui.js +15 -24
  73. package/dist/cjs/components/UiComponents.d.ts +17 -9
  74. package/dist/cjs/components/UiComponents.d.ts.map +1 -1
  75. package/dist/cjs/components/UiComponents.js +30 -24
  76. package/dist/cjs/hooks/useAstToFilterTree.d.ts +2 -2
  77. package/dist/cjs/hooks/useAstToFilterTree.d.ts.map +1 -1
  78. package/dist/cjs/hooks/useDashboard.d.ts +13 -5
  79. package/dist/cjs/hooks/useDashboard.d.ts.map +1 -1
  80. package/dist/cjs/hooks/useDashboard.js +158 -70
  81. package/dist/cjs/hooks/useExport.d.ts.map +1 -1
  82. package/dist/cjs/hooks/useExport.js +9 -3
  83. package/dist/cjs/hooks/useQuill.d.ts.map +1 -1
  84. package/dist/cjs/hooks/useQuill.js +15 -15
  85. package/dist/cjs/hooks/useVirtualTables.d.ts +12 -3
  86. package/dist/cjs/hooks/useVirtualTables.d.ts.map +1 -1
  87. package/dist/cjs/hooks/useVirtualTables.js +105 -1
  88. package/dist/cjs/internals/ReportBuilder/PivotForm.d.ts +3 -1
  89. package/dist/cjs/internals/ReportBuilder/PivotForm.d.ts.map +1 -1
  90. package/dist/cjs/internals/ReportBuilder/PivotForm.js +9 -9
  91. package/dist/cjs/internals/ReportBuilder/PivotList.d.ts.map +1 -1
  92. package/dist/cjs/internals/ReportBuilder/PivotList.js +21 -15
  93. package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts +3 -2
  94. package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
  95. package/dist/cjs/internals/ReportBuilder/PivotModal.js +9 -9
  96. package/dist/cjs/models/Client.d.ts +16 -2
  97. package/dist/cjs/models/Client.d.ts.map +1 -1
  98. package/dist/cjs/models/Dashboard.d.ts +1 -1
  99. package/dist/cjs/models/Dashboard.d.ts.map +1 -1
  100. package/dist/cjs/models/Filter.d.ts +4 -3
  101. package/dist/cjs/models/Filter.d.ts.map +1 -1
  102. package/dist/cjs/models/Filter.js +38 -1
  103. package/dist/cjs/utils/astProcessing.d.ts +3 -3
  104. package/dist/cjs/utils/astProcessing.d.ts.map +1 -1
  105. package/dist/cjs/utils/client.d.ts.map +1 -1
  106. package/dist/cjs/utils/client.js +2 -7
  107. package/dist/cjs/utils/dashboard.d.ts +5 -5
  108. package/dist/cjs/utils/dashboard.d.ts.map +1 -1
  109. package/dist/cjs/utils/dashboard.js +90 -9
  110. package/dist/cjs/utils/dataFetcher.d.ts +4 -4
  111. package/dist/cjs/utils/dataFetcher.d.ts.map +1 -1
  112. package/dist/cjs/utils/dataFetcher.js +1 -1
  113. package/dist/cjs/utils/filterProcessing.d.ts.map +1 -1
  114. package/dist/cjs/utils/filterProcessing.js +2 -8
  115. package/dist/cjs/utils/paginationProcessing.js +1 -1
  116. package/dist/cjs/utils/pivotConstructor.d.ts +2 -2
  117. package/dist/cjs/utils/pivotConstructor.d.ts.map +1 -1
  118. package/dist/cjs/utils/pivotConstructor.js +1 -1
  119. package/dist/cjs/utils/pivotProcessing.d.ts.map +1 -1
  120. package/dist/cjs/utils/pivotProcessing.js +6 -2
  121. package/dist/cjs/utils/queryConstructor.d.ts.map +1 -1
  122. package/dist/cjs/utils/queryConstructor.js +12 -9
  123. package/dist/cjs/utils/report.d.ts +6 -5
  124. package/dist/cjs/utils/report.d.ts.map +1 -1
  125. package/dist/cjs/utils/report.js +71 -25
  126. package/dist/cjs/utils/schema.d.ts +3 -3
  127. package/dist/cjs/utils/schema.d.ts.map +1 -1
  128. package/dist/cjs/utils/schema.js +39 -35
  129. package/dist/cjs/utils/tableProcessing.d.ts +18 -11
  130. package/dist/cjs/utils/tableProcessing.d.ts.map +1 -1
  131. package/dist/cjs/utils/tableProcessing.js +44 -23
  132. package/dist/esm/Chart.d.ts.map +1 -1
  133. package/dist/esm/Chart.js +6 -4
  134. package/dist/esm/ChartBuilder.d.ts +10 -3
  135. package/dist/esm/ChartBuilder.d.ts.map +1 -1
  136. package/dist/esm/ChartBuilder.js +59 -26
  137. package/dist/esm/ChartEditor.d.ts +3 -1
  138. package/dist/esm/ChartEditor.d.ts.map +1 -1
  139. package/dist/esm/ChartEditor.js +76 -18
  140. package/dist/esm/Context.d.ts +17 -6
  141. package/dist/esm/Context.d.ts.map +1 -1
  142. package/dist/esm/Context.js +139 -74
  143. package/dist/esm/Dashboard.d.ts +8 -4
  144. package/dist/esm/Dashboard.d.ts.map +1 -1
  145. package/dist/esm/Dashboard.js +146 -367
  146. package/dist/esm/DateRangePicker/QuillDateRangePicker.d.ts.map +1 -1
  147. package/dist/esm/DateRangePicker/QuillDateRangePicker.js +21 -15
  148. package/dist/esm/DateRangePicker/dateRangePickerUtils.d.ts +1 -0
  149. package/dist/esm/DateRangePicker/dateRangePickerUtils.d.ts.map +1 -1
  150. package/dist/esm/DateRangePicker/dateRangePickerUtils.js +1 -1
  151. package/dist/esm/QuillProvider.js +1 -1
  152. package/dist/esm/ReportBuilder.d.ts +8 -12
  153. package/dist/esm/ReportBuilder.d.ts.map +1 -1
  154. package/dist/esm/ReportBuilder.js +167 -87
  155. package/dist/esm/SQLEditor.d.ts +8 -1
  156. package/dist/esm/SQLEditor.d.ts.map +1 -1
  157. package/dist/esm/SQLEditor.js +84 -31
  158. package/dist/esm/Table.d.ts.map +1 -1
  159. package/dist/esm/Table.js +7 -4
  160. package/dist/esm/assets/AdjustmentsIcon.d.ts +5 -0
  161. package/dist/esm/assets/AdjustmentsIcon.d.ts.map +1 -0
  162. package/dist/esm/assets/AdjustmentsIcon.js +3 -0
  163. package/dist/esm/assets/ArrowDownHeadIcon.d.ts.map +1 -1
  164. package/dist/esm/components/Chart/ChartError.js +2 -2
  165. package/dist/esm/components/Dashboard/DashboardFilter.d.ts +4 -3
  166. package/dist/esm/components/Dashboard/DashboardFilter.d.ts.map +1 -1
  167. package/dist/esm/components/Dashboard/DashboardFilter.js +12 -12
  168. package/dist/esm/components/Dashboard/DashboardTemplate.d.ts +2 -2
  169. package/dist/esm/components/Dashboard/DashboardTemplate.d.ts.map +1 -1
  170. package/dist/esm/components/Dashboard/DataLoader.d.ts +11 -5
  171. package/dist/esm/components/Dashboard/DataLoader.d.ts.map +1 -1
  172. package/dist/esm/components/Dashboard/DataLoader.js +94 -35
  173. package/dist/esm/components/Dashboard/TableComponent.d.ts +2 -1
  174. package/dist/esm/components/Dashboard/TableComponent.d.ts.map +1 -1
  175. package/dist/esm/components/Dashboard/TableComponent.js +10 -3
  176. package/dist/esm/components/Dashboard/util.d.ts +2 -2
  177. package/dist/esm/components/Dashboard/util.d.ts.map +1 -1
  178. package/dist/esm/components/Dashboard/util.js +2 -2
  179. package/dist/esm/components/QuillMultiSelect.d.ts.map +1 -1
  180. package/dist/esm/components/QuillMultiSelect.js +19 -14
  181. package/dist/esm/components/QuillMultiSelectWithCombo.d.ts.map +1 -1
  182. package/dist/esm/components/QuillMultiSelectWithCombo.js +68 -46
  183. package/dist/esm/components/QuillSelect.d.ts +1 -1
  184. package/dist/esm/components/QuillSelect.d.ts.map +1 -1
  185. package/dist/esm/components/QuillSelect.js +30 -8
  186. package/dist/esm/components/QuillSelectWithCombo.d.ts +1 -1
  187. package/dist/esm/components/QuillSelectWithCombo.d.ts.map +1 -1
  188. package/dist/esm/components/QuillSelectWithCombo.js +48 -27
  189. package/dist/esm/components/QuillTable.d.ts +3 -2
  190. package/dist/esm/components/QuillTable.d.ts.map +1 -1
  191. package/dist/esm/components/QuillTable.js +32 -19
  192. package/dist/esm/components/ReportBuilder/AddLimitPopover.d.ts +2 -1
  193. package/dist/esm/components/ReportBuilder/AddLimitPopover.d.ts.map +1 -1
  194. package/dist/esm/components/ReportBuilder/AddLimitPopover.js +2 -2
  195. package/dist/esm/components/ReportBuilder/AddSortPopover.d.ts +2 -1
  196. package/dist/esm/components/ReportBuilder/AddSortPopover.d.ts.map +1 -1
  197. package/dist/esm/components/ReportBuilder/AddSortPopover.js +2 -2
  198. package/dist/esm/components/ReportBuilder/FilterModal.d.ts +2 -1
  199. package/dist/esm/components/ReportBuilder/FilterModal.d.ts.map +1 -1
  200. package/dist/esm/components/ReportBuilder/FilterModal.js +17 -4
  201. package/dist/esm/components/ReportBuilder/ui.d.ts +13 -8
  202. package/dist/esm/components/ReportBuilder/ui.d.ts.map +1 -1
  203. package/dist/esm/components/ReportBuilder/ui.js +14 -19
  204. package/dist/esm/components/UiComponents.d.ts +17 -9
  205. package/dist/esm/components/UiComponents.d.ts.map +1 -1
  206. package/dist/esm/components/UiComponents.js +30 -24
  207. package/dist/esm/hooks/useAstToFilterTree.d.ts +2 -2
  208. package/dist/esm/hooks/useAstToFilterTree.d.ts.map +1 -1
  209. package/dist/esm/hooks/useDashboard.d.ts +13 -5
  210. package/dist/esm/hooks/useDashboard.d.ts.map +1 -1
  211. package/dist/esm/hooks/useDashboard.js +158 -73
  212. package/dist/esm/hooks/useExport.d.ts.map +1 -1
  213. package/dist/esm/hooks/useExport.js +10 -4
  214. package/dist/esm/hooks/useQuill.d.ts.map +1 -1
  215. package/dist/esm/hooks/useQuill.js +17 -17
  216. package/dist/esm/hooks/useVirtualTables.d.ts +12 -3
  217. package/dist/esm/hooks/useVirtualTables.d.ts.map +1 -1
  218. package/dist/esm/hooks/useVirtualTables.js +106 -2
  219. package/dist/esm/internals/ReportBuilder/PivotForm.d.ts +3 -1
  220. package/dist/esm/internals/ReportBuilder/PivotForm.d.ts.map +1 -1
  221. package/dist/esm/internals/ReportBuilder/PivotForm.js +9 -9
  222. package/dist/esm/internals/ReportBuilder/PivotList.d.ts.map +1 -1
  223. package/dist/esm/internals/ReportBuilder/PivotList.js +21 -15
  224. package/dist/esm/internals/ReportBuilder/PivotModal.d.ts +3 -2
  225. package/dist/esm/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
  226. package/dist/esm/internals/ReportBuilder/PivotModal.js +9 -9
  227. package/dist/esm/models/Client.d.ts +16 -2
  228. package/dist/esm/models/Client.d.ts.map +1 -1
  229. package/dist/esm/models/Dashboard.d.ts +1 -1
  230. package/dist/esm/models/Dashboard.d.ts.map +1 -1
  231. package/dist/esm/models/Filter.d.ts +4 -3
  232. package/dist/esm/models/Filter.d.ts.map +1 -1
  233. package/dist/esm/models/Filter.js +36 -0
  234. package/dist/esm/utils/astProcessing.d.ts +3 -3
  235. package/dist/esm/utils/astProcessing.d.ts.map +1 -1
  236. package/dist/esm/utils/client.d.ts.map +1 -1
  237. package/dist/esm/utils/client.js +2 -7
  238. package/dist/esm/utils/dashboard.d.ts +5 -5
  239. package/dist/esm/utils/dashboard.d.ts.map +1 -1
  240. package/dist/esm/utils/dashboard.js +90 -9
  241. package/dist/esm/utils/dataFetcher.d.ts +4 -4
  242. package/dist/esm/utils/dataFetcher.d.ts.map +1 -1
  243. package/dist/esm/utils/dataFetcher.js +1 -1
  244. package/dist/esm/utils/filterProcessing.d.ts.map +1 -1
  245. package/dist/esm/utils/filterProcessing.js +2 -8
  246. package/dist/esm/utils/paginationProcessing.js +1 -1
  247. package/dist/esm/utils/pivotConstructor.d.ts +2 -2
  248. package/dist/esm/utils/pivotConstructor.d.ts.map +1 -1
  249. package/dist/esm/utils/pivotConstructor.js +1 -1
  250. package/dist/esm/utils/pivotProcessing.d.ts.map +1 -1
  251. package/dist/esm/utils/pivotProcessing.js +6 -2
  252. package/dist/esm/utils/queryConstructor.d.ts.map +1 -1
  253. package/dist/esm/utils/queryConstructor.js +12 -9
  254. package/dist/esm/utils/report.d.ts +6 -5
  255. package/dist/esm/utils/report.d.ts.map +1 -1
  256. package/dist/esm/utils/report.js +70 -25
  257. package/dist/esm/utils/schema.d.ts +3 -3
  258. package/dist/esm/utils/schema.d.ts.map +1 -1
  259. package/dist/esm/utils/schema.js +39 -35
  260. package/dist/esm/utils/tableProcessing.d.ts +18 -11
  261. package/dist/esm/utils/tableProcessing.d.ts.map +1 -1
  262. package/dist/esm/utils/tableProcessing.js +41 -20
  263. package/package.json +1 -1
@@ -9,11 +9,26 @@ const Context_1 = require("../Context");
9
9
  /**
10
10
  * A robust select component that implements the new minimal Select interface.
11
11
  */
12
- function QuillSelectComponent({ options, value, width, onChange, label, isLoading, }) {
12
+ function QuillSelectComponent({ options, value, width, onChange, label, isLoading, disabled, hideEmptyOption, }) {
13
13
  const [theme] = (0, react_1.useContext)(Context_1.ThemeContext);
14
14
  const [showModal, setShowModal] = (0, react_1.useState)(false);
15
15
  const modalRef = (0, react_1.useRef)(null);
16
16
  (0, hooks_1.useOnClickOutside)(modalRef, () => setShowModal(false));
17
+ const sortedItems = (0, react_1.useMemo)(() => {
18
+ // Sort null to top
19
+ return options.sort((a, b) => {
20
+ if (a.value === null) {
21
+ return -1;
22
+ }
23
+ if (b.value === null) {
24
+ return 1;
25
+ }
26
+ return 0;
27
+ });
28
+ }, [options]);
29
+ const nullLabel = (0, react_1.useMemo)(() => {
30
+ return sortedItems.some((item) => item.value === '-') ? 'None' : '-';
31
+ }, [sortedItems]);
17
32
  return ((0, jsx_runtime_1.jsxs)("div", { style: {
18
33
  position: 'relative',
19
34
  // width: 200,
@@ -27,7 +42,7 @@ function QuillSelectComponent({ options, value, width, onChange, label, isLoadin
27
42
  fontFamily: theme?.fontFamily,
28
43
  paddingBottom: 5,
29
44
  fontWeight: 600,
30
- }, children: label })), (0, jsx_runtime_1.jsxs)("button", { style: {
45
+ }, children: label ?? nullLabel })), (0, jsx_runtime_1.jsxs)("button", { style: {
31
46
  fontFamily: theme?.fontFamily,
32
47
  color: theme?.primaryTextColor,
33
48
  width: '100%',
@@ -48,7 +63,14 @@ function QuillSelectComponent({ options, value, width, onChange, label, isLoadin
48
63
  height: 40,
49
64
  minHeight: 40,
50
65
  maxHeight: 40,
51
- }, className: "quill-select-button", onClick: () => setShowModal((showModal) => !showModal), children: [(0, jsx_runtime_1.jsx)("style", { children: ` .quill-select-button { background: ${theme?.backgroundColor}; } .quill-select-button:hover { background: ${theme?.hoverBackgroundColor}; }` }), (0, jsx_runtime_1.jsx)("span", { style: {
66
+ }, className: "quill-select-button", onClick: () => setShowModal((showModal) => !showModal), disabled: disabled, children: [(0, jsx_runtime_1.jsx)("style", { children: `
67
+ .quill-select-button { background: ${theme?.backgroundColor}; }
68
+ .quill-select-button:hover { background: ${theme?.hoverBackgroundColor}; }
69
+ .quill-select-button:disabled {
70
+ opacity: 0.5;
71
+ cursor: not-allowed;
72
+ }
73
+ ` }), (0, jsx_runtime_1.jsx)("span", { style: {
52
74
  textOverflow: 'ellipsis',
53
75
  whiteSpace: 'nowrap',
54
76
  overflow: 'hidden',
@@ -72,7 +94,7 @@ function QuillSelectComponent({ options, value, width, onChange, label, isLoadin
72
94
  fontFamily: theme?.fontFamily,
73
95
  maxHeight: '50vh',
74
96
  overflow: 'scroll',
75
- }, children: [!isLoading && ((0, jsx_runtime_1.jsxs)("button", { style: {
97
+ }, children: [!isLoading && !hideEmptyOption && ((0, jsx_runtime_1.jsxs)("button", { style: {
76
98
  display: 'flex',
77
99
  alignItems: 'center',
78
100
  justifyContent: 'space-between',
@@ -95,7 +117,7 @@ function QuillSelectComponent({ options, value, width, onChange, label, isLoadin
95
117
  const changeEvent = { target: { value: '' } };
96
118
  onChange(changeEvent);
97
119
  setShowModal(false);
98
- }, children: [(0, jsx_runtime_1.jsx)("style", { children: `
120
+ }, disabled: disabled, children: [(0, jsx_runtime_1.jsx)("style", { children: `
99
121
  .quill-option {
100
122
  background: white;
101
123
  }
@@ -125,7 +147,7 @@ function QuillSelectComponent({ options, value, width, onChange, label, isLoadin
125
147
  const changeEvent = { target: { value: option.value } };
126
148
  onChange(changeEvent);
127
149
  setShowModal(false);
128
- }, children: [(0, jsx_runtime_1.jsx)("style", { children: `
150
+ }, disabled: disabled, children: [(0, jsx_runtime_1.jsx)("style", { children: `
129
151
  .quill-option {
130
152
  background: white;
131
153
  }
@@ -136,6 +158,6 @@ function QuillSelectComponent({ options, value, width, onChange, label, isLoadin
136
158
  textOverflow: 'ellipsis',
137
159
  whiteSpace: 'nowrap',
138
160
  overflow: 'hidden',
139
- }, children: option.label })] }, option.label)))) : ((0, jsx_runtime_1.jsx)(UiComponents_1.LoadingSpinner, {}))] }))] }));
161
+ }, children: option.label ?? '-' })] }, option.label)))) : ((0, jsx_runtime_1.jsx)(UiComponents_1.LoadingSpinner, {}))] }))] }));
140
162
  }
141
163
  exports.QuillSelectComponent = QuillSelectComponent;
@@ -2,5 +2,5 @@ import { SelectComponentProps } from './UiComponents';
2
2
  /**
3
3
  * A robust select component that implements the new minimal Select interface.
4
4
  */
5
- export declare function QuillSelectComponentWithCombo({ options, value, width, onChange, label, isLoading, }: SelectComponentProps): import("react/jsx-runtime").JSX.Element;
5
+ export declare function QuillSelectComponentWithCombo({ options, value, width, onChange, label, isLoading, hideEmptyOption, }: SelectComponentProps): import("react/jsx-runtime").JSX.Element;
6
6
  //# sourceMappingURL=QuillSelectWithCombo.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"QuillSelectWithCombo.d.ts","sourceRoot":"","sources":["../../../src/components/QuillSelectWithCombo.tsx"],"names":[],"mappings":"AACA,OAAO,EAAkB,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAWtE;;GAEG;AACH,wBAAgB,6BAA6B,CAAC,EAC5C,OAAO,EACP,KAAK,EACL,KAAK,EACL,QAAQ,EACR,KAAK,EACL,SAAS,GACV,EAAE,oBAAoB,2CAwPtB"}
1
+ {"version":3,"file":"QuillSelectWithCombo.d.ts","sourceRoot":"","sources":["../../../src/components/QuillSelectWithCombo.tsx"],"names":[],"mappings":"AACA,OAAO,EAAkB,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAWtE;;GAEG;AACH,wBAAgB,6BAA6B,CAAC,EAC5C,OAAO,EACP,KAAK,EACL,KAAK,EACL,QAAQ,EACR,KAAK,EACL,SAAS,EACT,eAAe,GAChB,EAAE,oBAAoB,2CA8QtB"}
@@ -33,33 +33,54 @@ const QuillMultiSelectWithCombo_1 = require("./QuillMultiSelectWithCombo");
33
33
  /**
34
34
  * A robust select component that implements the new minimal Select interface.
35
35
  */
36
- function QuillSelectComponentWithCombo({ options, value, width, onChange, label, isLoading, }) {
36
+ function QuillSelectComponentWithCombo({ options, value, width, onChange, label, isLoading, hideEmptyOption, }) {
37
37
  const [theme] = (0, react_1.useContext)(Context_1.ThemeContext);
38
38
  const [showModal, setShowModal] = (0, react_1.useState)(false);
39
39
  const modalRef = (0, react_1.useRef)(null);
40
40
  const [searchQuery, setSearchQuery] = react_1.default.useState('');
41
- const [filteredItems, setFilteredItems] = react_1.default.useState([]);
42
- (0, hooks_1.useOnClickOutside)(modalRef, () => setShowModal(false));
43
- (0, react_1.useEffect)(() => {
44
- setFilteredItems(options.slice(0, 20));
45
- }, [options]);
46
- const handleSearchChange = (value) => {
47
- setSearchQuery(value);
48
- const curFilteredItems = value === ''
49
- ? options.slice(0, 20)
50
- : options
51
- .filter((option) => {
52
- if (!option) {
53
- return false;
41
+ const filteredItems = react_1.default.useMemo(function () {
42
+ // Sort null to top
43
+ if (searchQuery === '') {
44
+ return options.sort((a, b) => {
45
+ if (a.value === null) {
46
+ return -1;
47
+ }
48
+ if (b.value === null) {
49
+ return 1;
54
50
  }
55
- return option.value
56
- .toLowerCase()
57
- .replace(/\s+/g, '')
58
- .includes(value.toLowerCase().replace(/\s+/g, ''));
59
- })
60
- .slice(0, 20);
61
- setFilteredItems(curFilteredItems);
62
- };
51
+ return 0;
52
+ });
53
+ }
54
+ return options
55
+ .filter((option) => {
56
+ if (!option) {
57
+ return false;
58
+ }
59
+ return option.value
60
+ .toLowerCase()
61
+ .replace(/\s+/g, '')
62
+ .includes(searchQuery.toLowerCase().replace(/\s+/g, ''));
63
+ })
64
+ .sort((a, b) => {
65
+ if (a.value === null) {
66
+ return -1;
67
+ }
68
+ if (b.value === null) {
69
+ return 1;
70
+ }
71
+ return a.label.localeCompare(b.label);
72
+ })
73
+ .slice(0, 20);
74
+ }, [options, searchQuery]);
75
+ const nullLabel = (0, react_1.useMemo)(() => {
76
+ return filteredItems.some((item) => item.value === '-') ? 'None' : '-';
77
+ }, [filteredItems]);
78
+ const selectedLabel = (0, react_1.useMemo)(() => {
79
+ const selectedOption = options.find((elem) => elem.value === value);
80
+ return selectedOption && selectedOption.label == null
81
+ ? nullLabel
82
+ : selectedOption?.label ?? 'Select';
83
+ }, [value, options, nullLabel]);
63
84
  (0, hooks_1.useOnClickOutside)(modalRef, () => setShowModal(false));
64
85
  return ((0, jsx_runtime_1.jsxs)("div", { style: {
65
86
  position: 'relative',
@@ -99,7 +120,7 @@ function QuillSelectComponentWithCombo({ options, value, width, onChange, label,
99
120
  textOverflow: 'ellipsis',
100
121
  whiteSpace: 'nowrap',
101
122
  overflow: 'hidden',
102
- }, children: options.find((elem) => elem.value === value)?.label || 'Select' }), (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", { ref: modalRef, style: {
123
+ }, children: selectedLabel }), (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", { ref: modalRef, style: {
103
124
  position: 'absolute',
104
125
  width: '100%',
105
126
  display: 'flex',
@@ -121,8 +142,8 @@ function QuillSelectComponentWithCombo({ options, value, width, onChange, label,
121
142
  overflow: 'scroll',
122
143
  fontSize: 14,
123
144
  }, children: [options && options.length > 20 && !isLoading && ((0, jsx_runtime_1.jsx)(QuillMultiSelectWithCombo_1.ListboxTextInput, { value: searchQuery, placeholder: "Search", onChange: (value) => {
124
- handleSearchChange(value);
125
- } })), searchQuery === '' && !isLoading && ((0, jsx_runtime_1.jsxs)("button", { style: {
145
+ setSearchQuery(value);
146
+ } })), searchQuery === '' && !isLoading && !hideEmptyOption && ((0, jsx_runtime_1.jsxs)("button", { style: {
126
147
  display: 'flex',
127
148
  alignItems: 'center',
128
149
  justifyContent: 'space-between',
@@ -186,6 +207,6 @@ function QuillSelectComponentWithCombo({ options, value, width, onChange, label,
186
207
  textOverflow: 'ellipsis',
187
208
  whiteSpace: 'nowrap',
188
209
  overflow: 'hidden',
189
- }, children: option.label })] }, option.value)))) : ((0, jsx_runtime_1.jsx)(UiComponents_1.LoadingSpinner, {}))] }))] }));
210
+ }, children: option.label ?? nullLabel })] }, option.value)))) : ((0, jsx_runtime_1.jsx)(UiComponents_1.LoadingSpinner, {}))] }))] }));
190
211
  }
191
212
  exports.QuillSelectComponentWithCombo = QuillSelectComponentWithCombo;
@@ -3,11 +3,12 @@ import { ButtonComponentProps } from './UiComponents';
3
3
  export interface TableComponentProps {
4
4
  rows: object[];
5
5
  rowCount?: number;
6
+ rowCountIsLoading?: boolean;
6
7
  columns: {
7
8
  label: string;
8
9
  field: string;
9
10
  }[];
10
- currentPage?: number;
11
+ currentPage: number;
11
12
  sort?: {
12
13
  field: string;
13
14
  direction: string;
@@ -27,5 +28,5 @@ export interface TableComponentProps {
27
28
  direction: string;
28
29
  }) => void;
29
30
  }
30
- export default function QuillTable({ rows, rowCount, columns, isLoading, currentPage, sort, hideCSVDownloadButton, containerStyle, className, LoadingComponent, rowsPerPage, emptyStateLabel, downloadCSV, onPageChange, onSortChange, }: TableComponentProps): import("react/jsx-runtime").JSX.Element;
31
+ export default function QuillTable({ rows, rowCount, rowCountIsLoading, columns, isLoading, currentPage, sort, hideCSVDownloadButton, containerStyle, className, LoadingComponent, rowsPerPage, emptyStateLabel, downloadCSV, onPageChange, onSortChange, }: TableComponentProps): import("react/jsx-runtime").JSX.Element;
31
32
  //# sourceMappingURL=QuillTable.d.ts.map
@@ -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,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC5C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,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,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EACjC,IAAI,EACJ,QAAQ,EACR,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,GACb,EAAE,mBAAmB,2CA+crB"}
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,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,GACb,EAAE,mBAAmB,2CA+drB"}
@@ -5,26 +5,25 @@ const react_1 = require("react");
5
5
  const valueFormatter_1 = require("../utils/valueFormatter");
6
6
  const Context_1 = require("../Context");
7
7
  const UiComponents_1 = require("./UiComponents");
8
- function QuillTable({ rows, rowCount, columns, isLoading, currentPage, sort, hideCSVDownloadButton = true, containerStyle, className, LoadingComponent = UiComponents_1.QuillLoadingComponent, rowsPerPage = 10, emptyStateLabel = 'No results', downloadCSV, onPageChange, onSortChange, }) {
8
+ function QuillTable({ rows, rowCount, rowCountIsLoading, columns, isLoading, currentPage, sort, hideCSVDownloadButton = true, containerStyle, className, LoadingComponent = UiComponents_1.QuillLoadingComponent, rowsPerPage = 10, emptyStateLabel = 'No results', downloadCSV, onPageChange, onSortChange, }) {
9
9
  const [activeRows, setActiveRows] = (0, react_1.useState)([]);
10
- const [pageIndex, setPageIndex] = (0, react_1.useState)(currentPage || 0);
11
10
  const [maxPage, setMaxPage] = (0, react_1.useState)(1);
12
11
  const [sortColumn, setSortColumn] = (0, react_1.useState)(sort?.field || '');
13
12
  const [sortDirection, setSortDirection] = (0, react_1.useState)(sort?.direction || 'desc');
14
13
  const [theme] = (0, react_1.useContext)(Context_1.ThemeContext);
15
14
  const [isPaginating, setIsPaginating] = (0, react_1.useState)(true);
16
- const [initialLoad, setInitialLoad] = (0, react_1.useState)(isLoading);
15
+ const [initialLoad, setInitialLoad] = (0, react_1.useState)(true);
17
16
  (0, react_1.useEffect)(() => {
18
17
  setSortColumn(sort?.field || '');
19
18
  setSortDirection(sort?.direction || 'desc');
20
19
  }, [sort]);
21
20
  (0, react_1.useEffect)(() => {
22
- setIsPaginating(true);
23
21
  if (rows?.length === 0 && isLoading) {
24
22
  return;
25
23
  }
26
- const start = pageIndex * rowsPerPage;
27
- const end = (pageIndex + 1) * rowsPerPage;
24
+ setIsPaginating(true);
25
+ const start = currentPage * rowsPerPage;
26
+ const end = (currentPage + 1) * rowsPerPage;
28
27
  if (rowCount && onSortChange && rowCount !== rows.length) {
29
28
  setMaxPage(Math.ceil(rowCount / rowsPerPage));
30
29
  setActiveRows(rows.slice(start, end));
@@ -42,25 +41,29 @@ function QuillTable({ rows, rowCount, columns, isLoading, currentPage, sort, hid
42
41
  }
43
42
  setIsPaginating(false);
44
43
  setInitialLoad(false);
45
- }, [pageIndex, rows, sortColumn, sortDirection, columns, rowCount]);
44
+ }, [currentPage, rows, sortColumn, sortDirection, columns, rowCount]);
45
+ (0, react_1.useEffect)(() => {
46
+ if (rows.length < (currentPage + 1) * rowsPerPage) {
47
+ onPageChange && onPageChange(0);
48
+ setMaxPage(1);
49
+ }
50
+ }, [rows]);
46
51
  const increasePage = () => {
47
- if (pageIndex + 1 === maxPage) {
52
+ if (!rowCountIsLoading && currentPage + 1 === maxPage) {
48
53
  return;
49
54
  }
50
- setPageIndex((pageIndex) => pageIndex + 1);
51
- onPageChange && onPageChange(pageIndex + 1);
55
+ onPageChange && onPageChange(currentPage + 1);
52
56
  };
53
57
  const decreasePage = () => {
54
- if (pageIndex === 0) {
58
+ if (currentPage === 0) {
55
59
  return;
56
60
  }
57
- setPageIndex((pageIndex) => pageIndex - 1);
58
- onPageChange && onPageChange(pageIndex - 1);
61
+ onPageChange && onPageChange(currentPage - 1);
59
62
  };
60
63
  const toggleSort = (column) => {
61
64
  if (sortColumn === column.field) {
62
65
  setSortDirection(sortDirection === 'asc' ? 'desc' : 'asc');
63
- setPageIndex(0);
66
+ onPageChange && onPageChange(0);
64
67
  if (onSortChange) {
65
68
  onSortChange({
66
69
  field: column.field,
@@ -71,7 +74,7 @@ function QuillTable({ rows, rowCount, columns, isLoading, currentPage, sort, hid
71
74
  else {
72
75
  setSortColumn(column.field);
73
76
  setSortDirection('desc');
74
- setPageIndex(0);
77
+ onPageChange && onPageChange(0);
75
78
  if (onSortChange) {
76
79
  onSortChange({
77
80
  field: column.field,
@@ -104,6 +107,7 @@ function QuillTable({ rows, rowCount, columns, isLoading, currentPage, sort, hid
104
107
  margin: 0,
105
108
  boxSizing: 'border-box',
106
109
  outline: 'none',
110
+ position: 'relative',
107
111
  }, children: (0, jsx_runtime_1.jsxs)("div", { role: "table", className: "table", style: {
108
112
  display: 'flex',
109
113
  flexDirection: 'column',
@@ -123,8 +127,9 @@ function QuillTable({ rows, rowCount, columns, isLoading, currentPage, sort, hid
123
127
  boxSizing: 'border-box',
124
128
  marginBottom: '-1px', // avoid double border
125
129
  }, children: columns &&
126
- columns.map((column, index) => ((0, jsx_runtime_1.jsxs)("div", { onClick: () => {
130
+ columns.map((column, index) => ((0, jsx_runtime_1.jsxs)("div", { onClick: (e) => {
127
131
  toggleSort(column);
132
+ e.stopPropagation();
128
133
  }, style: {
129
134
  boxSizing: 'border-box',
130
135
  flex: '150 0 auto',
@@ -167,7 +172,7 @@ function QuillTable({ rows, rowCount, columns, isLoading, currentPage, sort, hid
167
172
  transform: sortDirection === 'desc'
168
173
  ? 'rotate(180deg)'
169
174
  : undefined,
170
- }, children: (0, jsx_runtime_1.jsx)("path", { fillRule: "evenodd", d: "M10 3a.75.75 0 01.75.75v10.638l3.96-4.158a.75.75 0 111.08 1.04l-5.25 5.5a.75.75 0 01-1.08 0l-5.25-5.5a.75.75 0 111.08-1.04l3.96 4.158V3.75A.75.75 0 0110 3z", clipRule: "evenodd" }) }))] }, 'sqlcol' + index))) }) }), (isPaginating || isLoading) && ((0, jsx_runtime_1.jsx)("div", { className: className, children: (0, jsx_runtime_1.jsx)(LoadingComponent, {}) })), (activeRows && activeRows.length === 0) ||
175
+ }, children: (0, jsx_runtime_1.jsx)("path", { fillRule: "evenodd", d: "M10 3a.75.75 0 01.75.75v10.638l3.96-4.158a.75.75 0 111.08 1.04l-5.25 5.5a.75.75 0 01-1.08 0l-5.25-5.5a.75.75 0 111.08-1.04l3.96 4.158V3.75A.75.75 0 0110 3z", clipRule: "evenodd" }) }))] }, 'sqlcol' + index))) }) }), (isPaginating || isLoading) && ((0, jsx_runtime_1.jsx)("div", { className: className, style: { position: 'absolute', width: '100%' }, children: (0, jsx_runtime_1.jsx)(LoadingComponent, {}) })), (activeRows && activeRows.length === 0) ||
171
176
  (columns && columns.length === 0) ? ((0, jsx_runtime_1.jsx)("div", { style: {
172
177
  padding: '30px 0',
173
178
  display: isPaginating || isLoading ? 'none' : 'flex',
@@ -177,6 +182,8 @@ function QuillTable({ rows, rowCount, columns, isLoading, currentPage, sort, hid
177
182
  alignItems: 'center',
178
183
  fontSize: 13,
179
184
  color: theme?.secondaryTextColor || 'rgb(55, 65, 81)',
185
+ position: 'absolute',
186
+ width: '100%',
180
187
  }, children: emptyStateLabel })) : ((0, jsx_runtime_1.jsx)("div", { role: "rowgroup", className: "tbody", children: activeRows &&
181
188
  activeRows.map((row, rowIndex) => ((0, jsx_runtime_1.jsx)("div", { role: "row", className: "tr", style: {
182
189
  display: isPaginating || isLoading ? 'none' : 'flex',
@@ -261,11 +268,17 @@ function QuillTable({ rows, rowCount, columns, isLoading, currentPage, sort, hid
261
268
  fontSize: 12,
262
269
  fontFamily: theme?.fontFamily,
263
270
  color: theme?.primaryTextColor,
264
- }, children: [pageIndex + 1, ' of ', maxPage] }), (0, jsx_runtime_1.jsx)("div", { style: { width: 8 } }), (0, jsx_runtime_1.jsx)("button", { onClick: decreasePage, style: {
271
+ }, children: [currentPage + 1, ' of ', rowCountIsLoading && maxPage > 1 ? 'many' : maxPage] }), (0, jsx_runtime_1.jsx)("div", { style: { width: 8 } }), (0, jsx_runtime_1.jsx)("button", { onClick: (e) => {
272
+ decreasePage();
273
+ e.stopPropagation();
274
+ }, style: {
265
275
  cursor: 'pointer',
266
276
  border: 'none',
267
277
  background: 'transparent',
268
- }, children: (0, jsx_runtime_1.jsx)("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 20 20", fill: theme?.chartLabelFontFamily || theme?.fontFamily, height: "16px", width: "16px", children: (0, jsx_runtime_1.jsx)("path", { fillRule: "evenodd", d: "M12.79 5.23a.75.75 0 01-.02 1.06L8.832 10l3.938 3.71a.75.75 0 11-1.04 1.08l-4.5-4.25a.75.75 0 010-1.08l4.5-4.25a.75.75 0 011.06.02z", clipRule: "evenodd" }) }) }), (0, jsx_runtime_1.jsx)("button", { onClick: increasePage, style: {
278
+ }, children: (0, jsx_runtime_1.jsx)("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 20 20", fill: theme?.chartLabelFontFamily || theme?.fontFamily, height: "16px", width: "16px", children: (0, jsx_runtime_1.jsx)("path", { fillRule: "evenodd", d: "M12.79 5.23a.75.75 0 01-.02 1.06L8.832 10l3.938 3.71a.75.75 0 11-1.04 1.08l-4.5-4.25a.75.75 0 010-1.08l4.5-4.25a.75.75 0 011.06.02z", clipRule: "evenodd" }) }) }), (0, jsx_runtime_1.jsx)("button", { onClick: (e) => {
279
+ increasePage();
280
+ e.stopPropagation();
281
+ }, style: {
269
282
  cursor: 'pointer',
270
283
  border: 'none',
271
284
  background: 'transparent',
@@ -1,7 +1,7 @@
1
1
  /// <reference types="react" />
2
2
  import { ButtonComponentProps, TextInputComponentProps } from '../UiComponents';
3
3
  import { LimitPopoverComponentProps } from './ui';
4
- export declare const LimitSentence: ({ limit, handleDelete, setOpenPopover, onSave, popoverTitle, LimitPopover, EditPopover, TextInput, Button, SecondaryButton, }: {
4
+ export declare const LimitSentence: ({ limit, handleDelete, setOpenPopover, onSave, popoverTitle, LimitPopover, EditPopover, TextInput, Button, SecondaryButton, disabled, }: {
5
5
  limit: any;
6
6
  handleDelete: () => void;
7
7
  setOpenPopover: (arg: any) => void;
@@ -12,6 +12,7 @@ export declare const LimitSentence: ({ limit, handleDelete, setOpenPopover, onSa
12
12
  TextInput: any;
13
13
  Button: (props: ButtonComponentProps) => JSX.Element;
14
14
  SecondaryButton: (props: ButtonComponentProps) => JSX.Element;
15
+ disabled?: boolean | undefined;
15
16
  }) => import("react/jsx-runtime").JSX.Element;
16
17
  export interface AddLimitPopoverProps {
17
18
  onSave: (limit: number) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"AddLimitPopover.d.ts","sourceRoot":"","sources":["../../../../src/components/ReportBuilder/AddLimitPopover.tsx"],"names":[],"mappings":";AACA,OAAO,EACL,oBAAoB,EAIpB,uBAAuB,EACxB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,0BAA0B,EAAE,MAAM,MAAM,CAAC;AAElD,eAAO,MAAM,aAAa;WAYjB,GAAG;kBACI,MAAM,IAAI;0BACF,GAAG,KAAK,IAAI;qBACjB,GAAG,aAAa,GAAG,KAAK,IAAI;;0BAEvB,0BAA0B,KAAK,WAAW;iBACnD,GAAG;eACL,GAAG;oBACE,oBAAoB,KAAK,WAAW;6BAC3B,oBAAoB,KAAK,WAAW;6CAiC9D,CAAC;AAEF,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,kBAAkB,CAAC,EACf,CAAC,CAAC,KAAK,EAAE,uBAAuB,KAAK,GAAG,CAAC,OAAO,CAAC,GACjD,KAAK,CAAC,yBAAyB,CAC7B,uBAAuB,GAAG,KAAK,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAChE,CAAC;IACN,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,GAAG,CAAC,OAAO,CAAC;IACtD,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,GAAG,CAAC,OAAO,CAAC;CAChE;AAED,eAAO,MAAM,eAAe,6FAQzB,oBAAoB,4CAwEtB,CAAC"}
1
+ {"version":3,"file":"AddLimitPopover.d.ts","sourceRoot":"","sources":["../../../../src/components/ReportBuilder/AddLimitPopover.tsx"],"names":[],"mappings":";AACA,OAAO,EACL,oBAAoB,EAIpB,uBAAuB,EACxB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,0BAA0B,EAAE,MAAM,MAAM,CAAC;AAElD,eAAO,MAAM,aAAa;WAajB,GAAG;kBACI,MAAM,IAAI;0BACF,GAAG,KAAK,IAAI;qBACjB,GAAG,aAAa,GAAG,KAAK,IAAI;;0BAEvB,0BAA0B,KAAK,WAAW;iBACnD,GAAG;eACL,GAAG;oBACE,oBAAoB,KAAK,WAAW;6BAC3B,oBAAoB,KAAK,WAAW;;6CAmC9D,CAAC;AAEF,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,kBAAkB,CAAC,EACf,CAAC,CAAC,KAAK,EAAE,uBAAuB,KAAK,GAAG,CAAC,OAAO,CAAC,GACjD,KAAK,CAAC,yBAAyB,CAC7B,uBAAuB,GAAG,KAAK,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAChE,CAAC;IACN,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,GAAG,CAAC,OAAO,CAAC;IACtD,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,GAAG,CAAC,OAAO,CAAC;CAChE;AAED,eAAO,MAAM,eAAe,6FAQzB,oBAAoB,4CAwEtB,CAAC"}
@@ -4,13 +4,13 @@ exports.AddLimitPopover = exports.LimitSentence = void 0;
4
4
  const jsx_runtime_1 = require("react/jsx-runtime");
5
5
  const react_1 = require("react");
6
6
  const UiComponents_1 = require("../UiComponents");
7
- const LimitSentence = ({ limit, handleDelete, setOpenPopover, onSave, popoverTitle = 'Edit limit', LimitPopover, EditPopover, TextInput = UiComponents_1.QuillTextInput, Button = UiComponents_1.MemoizedButton, SecondaryButton = UiComponents_1.MemoizedSecondaryButton, }) => {
7
+ const LimitSentence = ({ limit, handleDelete, setOpenPopover, onSave, popoverTitle = 'Edit limit', LimitPopover, EditPopover, TextInput = UiComponents_1.QuillTextInput, Button = UiComponents_1.MemoizedButton, SecondaryButton = UiComponents_1.MemoizedSecondaryButton, disabled = false, }) => {
8
8
  const [isOpen, setIsOpen] = (0, react_1.useState)(false);
9
9
  const handleClickDelete = () => {
10
10
  setOpenPopover(null);
11
11
  handleDelete();
12
12
  };
13
- return ((0, jsx_runtime_1.jsx)("div", { style: { width: '100%' }, children: (0, jsx_runtime_1.jsx)(LimitPopover, { isOpen: isOpen, setIsOpen: setIsOpen, limitLabel: `limit ${limit.value[0].value}`, onClickDelete: handleClickDelete, popoverTitle: popoverTitle, popoverChildren: (0, jsx_runtime_1.jsx)(EditPopover, { onSave: (column, direction) => {
13
+ return ((0, jsx_runtime_1.jsx)("div", { style: { width: '100%' }, children: (0, jsx_runtime_1.jsx)(LimitPopover, { isOpen: isOpen, setIsOpen: setIsOpen, limitLabel: `limit ${limit.value[0].value}`, onClickDelete: handleClickDelete, disabled: disabled, popoverTitle: popoverTitle, popoverChildren: (0, jsx_runtime_1.jsx)(EditPopover, { onSave: (column, direction) => {
14
14
  setIsOpen(false);
15
15
  onSave(column, direction);
16
16
  }, isEdit: true, onDelete: handleClickDelete, initialLimit: limit.value[0].value, TextInput: TextInput, Button: Button, SecondaryButton: SecondaryButton }) }) }));
@@ -1,7 +1,7 @@
1
1
  /// <reference types="react" />
2
2
  import { ButtonComponentProps, SelectComponentProps } from '../UiComponents';
3
3
  import { SortPopoverComponentProps } from './ui';
4
- export declare const SortSentence: ({ sortData, keyPrefix, columns, handleDelete, setEditPopoverKey, setOpenPopover, setActiveEditItem, setIsPending, setActivePath, onSave, popoverTitle, SortPopover, EditPopover, Select, Button, SecondaryButton, }: {
4
+ export declare const SortSentence: ({ sortData, keyPrefix, columns, handleDelete, setEditPopoverKey, setOpenPopover, setActiveEditItem, setIsPending, setActivePath, onSave, popoverTitle, SortPopover, EditPopover, Select, Button, SecondaryButton, disabled, }: {
5
5
  sortData: any;
6
6
  columns: any;
7
7
  setIsPending: any;
@@ -18,6 +18,7 @@ export declare const SortSentence: ({ sortData, keyPrefix, columns, handleDelete
18
18
  Select?: ((props: SelectComponentProps) => JSX.Element) | undefined;
19
19
  Button?: ((props: ButtonComponentProps) => JSX.Element) | undefined;
20
20
  SecondaryButton?: ((props: ButtonComponentProps) => JSX.Element) | undefined;
21
+ disabled?: boolean | undefined;
21
22
  }) => import("react/jsx-runtime").JSX.Element | null;
22
23
  export declare const AddSortPopover: ({ onSave, columns, isEdit, onDelete, column, direction, Select, Button, SecondaryButton, }: any) => import("react/jsx-runtime").JSX.Element;
23
24
  //# sourceMappingURL=AddSortPopover.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AddSortPopover.d.ts","sourceRoot":"","sources":["../../../../src/components/ReportBuilder/AddSortPopover.tsx"],"names":[],"mappings":";AAEA,OAAO,EACL,oBAAoB,EAGpB,oBAAoB,EACrB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,yBAAyB,EAAE,MAAM,MAAM,CAAC;AAkBjD,eAAO,MAAM,YAAY;cAkBb,GAAG;aACJ,GAAG;kBACE,GAAG;uBACE,GAAG;uBACH,GAAG;oBACN,GAAG;mBACJ,GAAG;gBACN,GAAG;kBACD,GAAG;YACT,GAAG;;yBAEU,yBAAyB,KAAK,WAAW;iBACjD,GAAG;sBACC,oBAAoB,KAAK,WAAW;sBACpC,oBAAoB,KAAK,WAAW;+BAC3B,oBAAoB,KAAK,WAAW;oDAqD/D,CAAC;AAEF,eAAO,MAAM,cAAc,+FAUxB,GAAG,4CAmEL,CAAC"}
1
+ {"version":3,"file":"AddSortPopover.d.ts","sourceRoot":"","sources":["../../../../src/components/ReportBuilder/AddSortPopover.tsx"],"names":[],"mappings":";AAEA,OAAO,EACL,oBAAoB,EAGpB,oBAAoB,EACrB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,yBAAyB,EAAE,MAAM,MAAM,CAAC;AAkBjD,eAAO,MAAM,YAAY;cAmBb,GAAG;aACJ,GAAG;kBACE,GAAG;uBACE,GAAG;uBACH,GAAG;oBACN,GAAG;mBACJ,GAAG;gBACN,GAAG;kBACD,GAAG;YACT,GAAG;;yBAEU,yBAAyB,KAAK,WAAW;iBACjD,GAAG;sBACC,oBAAoB,KAAK,WAAW;sBACpC,oBAAoB,KAAK,WAAW;+BAC3B,oBAAoB,KAAK,WAAW;;oDAuD/D,CAAC;AAEF,eAAO,MAAM,cAAc,+FAUxB,GAAG,4CAmEL,CAAC"}
@@ -21,7 +21,7 @@ function parseColumn(sortData) {
21
21
  }
22
22
  return column || '';
23
23
  }
24
- const SortSentence = ({ sortData, keyPrefix, columns, handleDelete, setEditPopoverKey, setOpenPopover, setActiveEditItem, setIsPending, setActivePath, onSave, popoverTitle = 'Edit Sort', SortPopover, EditPopover, Select = QuillSelect_1.QuillSelectComponent, Button = UiComponents_1.MemoizedButton, SecondaryButton = UiComponents_1.MemoizedSecondaryButton, }) => {
24
+ const SortSentence = ({ sortData, keyPrefix, columns, handleDelete, setEditPopoverKey, setOpenPopover, setActiveEditItem, setIsPending, setActivePath, onSave, popoverTitle = 'Edit Sort', SortPopover, EditPopover, Select = QuillSelect_1.QuillSelectComponent, Button = UiComponents_1.MemoizedButton, SecondaryButton = UiComponents_1.MemoizedSecondaryButton, disabled = false, }) => {
25
25
  const [isOpen, setIsOpen] = (0, react_1.useState)(false);
26
26
  const handleSetIsOpen = (isOpen) => {
27
27
  setIsOpen(isOpen);
@@ -42,7 +42,7 @@ const SortSentence = ({ sortData, keyPrefix, columns, handleDelete, setEditPopov
42
42
  if (!sortData && (!sortData.expr.column || !sortData.expr.value)) {
43
43
  return null;
44
44
  }
45
- return ((0, jsx_runtime_1.jsx)("div", { children: (0, jsx_runtime_1.jsx)(SortPopover, { isOpen: isOpen, setIsOpen: handleSetIsOpen, sortLabel: `${(0, textProcessing_1.snakeAndCamelCaseToTitleCase)(parseColumn(sortData))} ${SORT_VALUE_TO_LABEL[sortData.type] || SORT_VALUE_TO_LABEL.ASC}`, onClickDelete: handleClickDelete, popoverTitle: popoverTitle, popoverChildren: (0, jsx_runtime_1.jsx)(EditPopover, { onSave: (column, direction) => {
45
+ return ((0, jsx_runtime_1.jsx)("div", { children: (0, jsx_runtime_1.jsx)(SortPopover, { isOpen: isOpen, setIsOpen: handleSetIsOpen, sortLabel: `${(0, textProcessing_1.snakeAndCamelCaseToTitleCase)(parseColumn(sortData))} ${SORT_VALUE_TO_LABEL[sortData.type] || SORT_VALUE_TO_LABEL.ASC}`, onClickDelete: handleClickDelete, disabled: disabled, popoverTitle: popoverTitle, popoverChildren: (0, jsx_runtime_1.jsx)(EditPopover, { onSave: (column, direction) => {
46
46
  setIsOpen(false);
47
47
  onSave(column, direction);
48
48
  }, columns: columns, isEdit: true, onDelete: handleClickDelete, column: sortData.expr.column || sortData.expr.value, direction: sortData.type, Select: Select, Button: Button, SecondaryButton: SecondaryButton }) }) }));
@@ -13,6 +13,7 @@ interface FilterModalProps {
13
13
  [key: string]: string[];
14
14
  };
15
15
  };
16
+ fieldValuesMapIsLoading?: boolean;
16
17
  customOperatorOptions?: OperatorOptionsMap;
17
18
  onSubmitFilter: (filter: Filter) => void;
18
19
  onDeleteFilter: () => void;
@@ -28,6 +29,6 @@ type OperatorOptionsMap = {
28
29
  /**
29
30
  * Modal for adding, editing, and deleting Filters
30
31
  */
31
- export default function FilterModal({ schema, filter, fieldValuesMap, customOperatorOptions, onSubmitFilter, onDeleteFilter, ButtonComponent, SelectComponent, TextInputComponent, SecondaryButtonComponent, MultiSelectComponent, }: FilterModalProps): import("react/jsx-runtime").JSX.Element | null;
32
+ export default function FilterModal({ schema, filter, fieldValuesMap, fieldValuesMapIsLoading, customOperatorOptions, onSubmitFilter, onDeleteFilter, ButtonComponent, SelectComponent, TextInputComponent, SecondaryButtonComponent, MultiSelectComponent, }: FilterModalProps): import("react/jsx-runtime").JSX.Element | null;
32
33
  export {};
33
34
  //# sourceMappingURL=FilterModal.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FilterModal.d.ts","sourceRoot":"","sources":["../../../../src/components/ReportBuilder/FilterModal.tsx"],"names":[],"mappings":";AAIA,OAAO,EACL,MAAM,EAIN,QAAQ,EAOT,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,MAAM,CAAC;IAChB,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,qBAAqB,CAAC,EAAE,kBAAkB,CAAC;IAC3C,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,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,qBAAqB,EACrB,cAAc,EACd,cAAc,EACd,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,wBAAwB,EACxB,oBAAoB,GACrB,EAAE,gBAAgB,kDA6zBlB"}
1
+ {"version":3,"file":"FilterModal.d.ts","sourceRoot":"","sources":["../../../../src/components/ReportBuilder/FilterModal.tsx"],"names":[],"mappings":";AAIA,OAAO,EACL,MAAM,EAIN,QAAQ,EAOT,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,MAAM,CAAC;IAChB,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,MAAM,KAAK,IAAI,CAAC;IACzC,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,kDA80BlB"}
@@ -12,7 +12,7 @@ const filterProcessing_1 = require("../../utils/filterProcessing");
12
12
  /**
13
13
  * Modal for adding, editing, and deleting Filters
14
14
  */
15
- function FilterModal({ schema, filter, fieldValuesMap, customOperatorOptions, onSubmitFilter, onDeleteFilter, ButtonComponent, SelectComponent, TextInputComponent, SecondaryButtonComponent, MultiSelectComponent, }) {
15
+ function FilterModal({ schema, filter, fieldValuesMap, fieldValuesMapIsLoading, customOperatorOptions, onSubmitFilter, onDeleteFilter, ButtonComponent, SelectComponent, TextInputComponent, SecondaryButtonComponent, MultiSelectComponent, }) {
16
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)([]);
@@ -27,6 +27,9 @@ function FilterModal({ schema, filter, fieldValuesMap, customOperatorOptions, on
27
27
  const [endDate, setEndDate] = (0, react_1.useState)((0, date_fns_1.startOfToday)().toISOString().substring(0, 10));
28
28
  const [filterInitialized, setFilterInitialized] = (0, react_1.useState)(false);
29
29
  const [table, setTable] = (0, react_1.useState)(undefined);
30
+ (0, react_1.useEffect)(() => {
31
+ onFieldChange(field, fieldOptions);
32
+ }, [fieldValuesMap]);
30
33
  // Define all supported operator options for each field type
31
34
  const allOperatorOptions = {
32
35
  [Filter_1.FieldTypes.Number]: [
@@ -568,9 +571,19 @@ function FilterModal({ schema, filter, fieldValuesMap, customOperatorOptions, on
568
571
  }
569
572
  case Filter_1.StringOperator.Is:
570
573
  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) => {
572
- return { value: v.toLowerCase(), label: v };
573
- }), width: 200, value: selectedOptions.map((val) => val.value.toLowerCase()), onChange: (e) => {
574
+ return ((0, jsx_runtime_1.jsx)("div", { style: { display: 'flex', gap: 20 }, children: (0, jsx_runtime_1.jsx)(MultiSelectComponent, { options: fieldValues.length > 0 &&
575
+ fieldValues[0] !== 'EXCEEDS_LIMIT'
576
+ ? fieldValues.map((v) => {
577
+ return { value: v.toLowerCase(), label: v };
578
+ })
579
+ : fieldValues.length > 0
580
+ ? [
581
+ {
582
+ value: 'EXCEEDS_LIMIT',
583
+ label: 'Exceeds Limit',
584
+ },
585
+ ]
586
+ : [], isLoading: fieldValuesMapIsLoading, width: 200, value: selectedOptions.map((val) => val.value.toLowerCase()), onChange: (e) => {
574
587
  if (e.target.value === '') {
575
588
  setSelectedOptions([]);
576
589
  return;
@@ -3,7 +3,7 @@ import { SidebarComponentProps, ContainerComponentProps } from '../UiComponents'
3
3
  import { Filter } from '../../models/Filter';
4
4
  import { ColumnInternal } from '../../models/Columns';
5
5
  import { FilterTreeNode } from '../../utils/astFilterProcessing';
6
- import { Client } from '../../models/Client';
6
+ import { QuillProviderClient } from '../../models/Client';
7
7
  /**
8
8
  * This file is a collection of basic UI components that conform to the shape
9
9
  * expected by the Report Builder. Where possible, we use our existing
@@ -12,7 +12,6 @@ import { Client } from '../../models/Client';
12
12
  */
13
13
  export declare const QuillButton: ({ children, ...props }: any) => import("react/jsx-runtime").JSX.Element;
14
14
  export declare const QuillSecondaryButton: ({ children, ...props }: any) => import("react/jsx-runtime").JSX.Element;
15
- export declare const QuillReportBuilderTable: ({ rows, columns, error, ...props }: any) => import("react/jsx-runtime").JSX.Element;
16
15
  export declare const QuillTag: import("react").ForwardRefExoticComponent<Omit<any, "ref"> & import("react").RefAttributes<unknown>>;
17
16
  export interface SidebarHeadingComponentProps {
18
17
  label: string;
@@ -39,11 +38,12 @@ export interface DraggableColumnComponentProps {
39
38
  DragHandle: ({ dragIcon }: {
40
39
  dragIcon: () => JSX.Element;
41
40
  }) => JSX.Element;
41
+ deleteDisabled?: boolean;
42
42
  }
43
43
  /**
44
44
  * A draggable card with a grab-handle and a column name
45
45
  */
46
- export declare const QuillDraggableColumn: ({ label, onDelete, DragHandle, }: DraggableColumnComponentProps) => import("react/jsx-runtime").JSX.Element;
46
+ export declare const QuillDraggableColumn: ({ label, onDelete, DragHandle, deleteDisabled, }: DraggableColumnComponentProps) => import("react/jsx-runtime").JSX.Element;
47
47
  export declare const QuillButtonLoadingState: () => import("react/jsx-runtime").JSX.Element;
48
48
  export declare const QuillTableLoadingState: () => import("react/jsx-runtime").JSX.Element;
49
49
  export declare const EditPopover: ({ onSave, onDelete, Button, SecondaryButton, renderNode, activeEditItem, }: any) => import("react/jsx-runtime").JSX.Element;
@@ -54,8 +54,9 @@ export interface FilterPopoverComponentProps {
54
54
  popoverChildren: ReactNode;
55
55
  filterLabel: string;
56
56
  onClickDelete: (e: React.MouseEvent<HTMLElement>) => void;
57
+ disabled?: boolean;
57
58
  }
58
- export declare const QuillFilterPopover: ({ filterLabel, onClickDelete, popoverTitle, popoverChildren, isOpen, setIsOpen, }: FilterPopoverComponentProps) => import("react/jsx-runtime").JSX.Element;
59
+ export declare const QuillFilterPopover: ({ filterLabel, onClickDelete, popoverTitle, popoverChildren, isOpen, setIsOpen, disabled, }: FilterPopoverComponentProps) => import("react/jsx-runtime").JSX.Element;
59
60
  export interface SortPopoverComponentProps {
60
61
  isOpen: boolean;
61
62
  setIsOpen: (isOpen: boolean) => void;
@@ -63,8 +64,9 @@ export interface SortPopoverComponentProps {
63
64
  popoverChildren: ReactNode;
64
65
  sortLabel: string;
65
66
  onClickDelete: (e: React.MouseEvent<HTMLElement>) => void;
67
+ disabled?: boolean;
66
68
  }
67
- export declare const QuillSortPopover: ({ sortLabel, onClickDelete, popoverTitle, popoverChildren, isOpen, setIsOpen, }: SortPopoverComponentProps) => import("react/jsx-runtime").JSX.Element;
69
+ export declare const QuillSortPopover: ({ sortLabel, onClickDelete, popoverTitle, popoverChildren, isOpen, setIsOpen, disabled, }: SortPopoverComponentProps) => import("react/jsx-runtime").JSX.Element;
68
70
  export interface LimitPopoverComponentProps {
69
71
  isOpen: boolean;
70
72
  setIsOpen: (isOpen: boolean) => void;
@@ -72,8 +74,9 @@ export interface LimitPopoverComponentProps {
72
74
  popoverChildren: ReactNode;
73
75
  limitLabel: string;
74
76
  onClickDelete: (e: React.MouseEvent<HTMLElement>) => void;
77
+ disabled?: boolean;
75
78
  }
76
- export declare const QuillLimitPopover: ({ limitLabel, onClickDelete, popoverTitle, popoverChildren, isOpen, setIsOpen, }: LimitPopoverComponentProps) => import("react/jsx-runtime").JSX.Element;
79
+ export declare const QuillLimitPopover: ({ limitLabel, onClickDelete, popoverTitle, popoverChildren, isOpen, setIsOpen, disabled, }: LimitPopoverComponentProps) => import("react/jsx-runtime").JSX.Element;
77
80
  export interface TagWrapperProps {
78
81
  isCard: boolean;
79
82
  isRow: boolean;
@@ -110,9 +113,10 @@ export interface FilterPopoverWrapperProps {
110
113
  FilterTagComponent: any;
111
114
  FilterModal: any;
112
115
  fieldValuesMap: any;
116
+ fieldValuesMapIsLoading?: boolean;
113
117
  priorFilters?: FilterTreeNode[];
114
118
  columns?: ColumnInternal[];
115
- client?: Client;
119
+ client?: QuillProviderClient;
116
120
  customFields?: any;
117
121
  baseAst?: any;
118
122
  endpoint?: string;
@@ -124,7 +128,8 @@ export interface FilterPopoverWrapperProps {
124
128
  MultiSelectComponent: any;
125
129
  handleFilterDelete: (index: number) => void;
126
130
  handleFilterSave: (filter: Filter) => void;
131
+ disabled?: boolean;
127
132
  containerStyle?: any;
128
133
  }
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;
134
+ export declare const FilterPopoverWrapper: ({ schema, filter, filterLabel, index, FilterTagComponent, FilterModal, fieldValuesMap, fieldValuesMapIsLoading, priorFilters, columns, client, customFields, baseAst, endpoint, customOperatorOptions, ButtonComponent, SecondaryButtonComponent, SelectComponent, TextInputComponent, MultiSelectComponent, handleFilterDelete, handleFilterSave, disabled, containerStyle, }: FilterPopoverWrapperProps) => import("react/jsx-runtime").JSX.Element;
130
135
  //# sourceMappingURL=ui.d.ts.map