@quillsql/react 2.11.15 → 2.11.17

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 (209) hide show
  1. package/dist/cjs/Chart.d.ts +117 -42
  2. package/dist/cjs/Chart.d.ts.map +1 -1
  3. package/dist/cjs/Chart.js +44 -18
  4. package/dist/cjs/ChartBuilder.d.ts +195 -28
  5. package/dist/cjs/ChartBuilder.d.ts.map +1 -1
  6. package/dist/cjs/ChartBuilder.js +124 -63
  7. package/dist/cjs/ChartEditor.d.ts +114 -18
  8. package/dist/cjs/ChartEditor.d.ts.map +1 -1
  9. package/dist/cjs/ChartEditor.js +47 -15
  10. package/dist/cjs/Dashboard.d.ts +148 -90
  11. package/dist/cjs/Dashboard.d.ts.map +1 -1
  12. package/dist/cjs/Dashboard.js +46 -152
  13. package/dist/cjs/DateRangePicker/QuillDateRangePicker.d.ts +21 -1
  14. package/dist/cjs/DateRangePicker/QuillDateRangePicker.d.ts.map +1 -1
  15. package/dist/cjs/DateRangePicker/QuillDateRangePicker.js +5 -2
  16. package/dist/cjs/DateRangePicker/dateRangePickerUtils.js +1 -1
  17. package/dist/cjs/QuillProvider.d.ts +105 -2
  18. package/dist/cjs/QuillProvider.d.ts.map +1 -1
  19. package/dist/cjs/QuillProvider.js +59 -0
  20. package/dist/cjs/ReportBuilder.d.ts +188 -34
  21. package/dist/cjs/ReportBuilder.d.ts.map +1 -1
  22. package/dist/cjs/ReportBuilder.js +551 -426
  23. package/dist/cjs/SQLEditor.d.ts +158 -29
  24. package/dist/cjs/SQLEditor.d.ts.map +1 -1
  25. package/dist/cjs/SQLEditor.js +52 -32
  26. package/dist/cjs/Table.d.ts +119 -15
  27. package/dist/cjs/Table.d.ts.map +1 -1
  28. package/dist/cjs/Table.js +37 -6
  29. package/dist/cjs/TableChart.d.ts.map +1 -1
  30. package/dist/cjs/TableChart.js +0 -194
  31. package/dist/cjs/{BarList.d.ts → components/Chart/BarList.d.ts} +1 -1
  32. package/dist/cjs/components/Chart/BarList.d.ts.map +1 -0
  33. package/dist/cjs/{BarList.js → components/Chart/BarList.js} +1 -1
  34. package/dist/cjs/components/Chart/LineChart.d.ts +2 -3
  35. package/dist/cjs/components/Chart/LineChart.d.ts.map +1 -1
  36. package/dist/cjs/components/Chart/LineChart.js +3 -3
  37. package/dist/cjs/components/Chart/PieChart.d.ts.map +1 -0
  38. package/dist/cjs/{PieChart.js → components/Chart/PieChart.js} +1 -1
  39. package/dist/cjs/components/Dashboard/ChartComponent.d.ts +2 -1
  40. package/dist/cjs/components/Dashboard/ChartComponent.d.ts.map +1 -1
  41. package/dist/cjs/components/Dashboard/ChartComponent.js +6 -7
  42. package/dist/cjs/components/Dashboard/DashboardFilter.d.ts +22 -0
  43. package/dist/cjs/components/Dashboard/DashboardFilter.d.ts.map +1 -0
  44. package/dist/cjs/components/Dashboard/DashboardFilter.js +75 -0
  45. package/dist/cjs/components/Dashboard/DataLoader.d.ts +1 -1
  46. package/dist/cjs/components/Dashboard/DataLoader.d.ts.map +1 -1
  47. package/dist/cjs/components/Dashboard/DataLoader.js +1 -1
  48. package/dist/cjs/components/Dashboard/MetricComponent.d.ts +2 -12
  49. package/dist/cjs/components/Dashboard/MetricComponent.d.ts.map +1 -1
  50. package/dist/cjs/components/Dashboard/MetricComponent.js +39 -17
  51. package/dist/cjs/components/Dashboard/TableComponent.d.ts +2 -1
  52. package/dist/cjs/components/Dashboard/TableComponent.d.ts.map +1 -1
  53. package/dist/cjs/components/Dashboard/TableComponent.js +6 -9
  54. package/dist/cjs/components/QuillSelect.d.ts +4 -1
  55. package/dist/cjs/components/QuillSelect.d.ts.map +1 -1
  56. package/dist/cjs/components/QuillSelect.js +13 -8
  57. package/dist/cjs/components/QuillTable.d.ts +16 -2
  58. package/dist/cjs/components/QuillTable.d.ts.map +1 -1
  59. package/dist/cjs/components/QuillTable.js +4 -4
  60. package/dist/cjs/components/ReportBuilder/AddColumnPopover.d.ts +30 -1
  61. package/dist/cjs/components/ReportBuilder/AddColumnPopover.d.ts.map +1 -1
  62. package/dist/cjs/components/ReportBuilder/AddColumnPopover.js +33 -14
  63. package/dist/cjs/components/ReportBuilder/AddLimitPopover.d.ts +25 -2
  64. package/dist/cjs/components/ReportBuilder/AddLimitPopover.d.ts.map +1 -1
  65. package/dist/cjs/components/ReportBuilder/AddLimitPopover.js +19 -19
  66. package/dist/cjs/components/ReportBuilder/AddSortPopover.d.ts +22 -2
  67. package/dist/cjs/components/ReportBuilder/AddSortPopover.d.ts.map +1 -1
  68. package/dist/cjs/components/ReportBuilder/AddSortPopover.js +18 -20
  69. package/dist/cjs/components/ReportBuilder/bigDateMap.js +1 -1
  70. package/dist/cjs/components/ReportBuilder/convert.d.ts +2 -1
  71. package/dist/cjs/components/ReportBuilder/convert.d.ts.map +1 -1
  72. package/dist/cjs/components/ReportBuilder/convert.js +40 -20
  73. package/dist/cjs/components/ReportBuilder/pivot.d.ts +2 -1
  74. package/dist/cjs/components/ReportBuilder/pivot.d.ts.map +1 -1
  75. package/dist/cjs/components/ReportBuilder/ui.d.ts +83 -19
  76. package/dist/cjs/components/ReportBuilder/ui.d.ts.map +1 -1
  77. package/dist/cjs/components/ReportBuilder/ui.js +68 -121
  78. package/dist/cjs/components/ReportBuilder/util.d.ts +3 -1
  79. package/dist/cjs/components/ReportBuilder/util.d.ts.map +1 -1
  80. package/dist/cjs/components/ReportBuilder/util.js +34 -8
  81. package/dist/cjs/components/UiComponents.d.ts +98 -97
  82. package/dist/cjs/components/UiComponents.d.ts.map +1 -1
  83. package/dist/cjs/components/UiComponents.js +132 -112
  84. package/dist/cjs/hooks/index.d.ts +1 -0
  85. package/dist/cjs/hooks/index.d.ts.map +1 -1
  86. package/dist/cjs/hooks/index.js +3 -1
  87. package/dist/cjs/hooks/useTheme.d.ts +7 -0
  88. package/dist/cjs/hooks/useTheme.d.ts.map +1 -0
  89. package/dist/cjs/hooks/useTheme.js +12 -0
  90. package/dist/cjs/index.d.ts +10 -2
  91. package/dist/cjs/index.d.ts.map +1 -1
  92. package/dist/cjs/internals/ReportBuilder/PivotList.d.ts.map +1 -1
  93. package/dist/cjs/internals/ReportBuilder/PivotList.js +10 -10
  94. package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts +29 -14
  95. package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
  96. package/dist/cjs/internals/ReportBuilder/PivotModal.js +73 -49
  97. package/dist/cjs/utils/dataFetcher.d.ts.map +1 -1
  98. package/dist/cjs/utils/dataFetcher.js +2 -0
  99. package/dist/cjs/utils/width.d.ts +12 -0
  100. package/dist/cjs/utils/width.d.ts.map +1 -0
  101. package/dist/cjs/utils/width.js +25 -0
  102. package/dist/esm/Chart.d.ts +117 -42
  103. package/dist/esm/Chart.d.ts.map +1 -1
  104. package/dist/esm/Chart.js +45 -19
  105. package/dist/esm/ChartBuilder.d.ts +195 -28
  106. package/dist/esm/ChartBuilder.d.ts.map +1 -1
  107. package/dist/esm/ChartBuilder.js +124 -63
  108. package/dist/esm/ChartEditor.d.ts +114 -18
  109. package/dist/esm/ChartEditor.d.ts.map +1 -1
  110. package/dist/esm/ChartEditor.js +51 -19
  111. package/dist/esm/Dashboard.d.ts +148 -90
  112. package/dist/esm/Dashboard.d.ts.map +1 -1
  113. package/dist/esm/Dashboard.js +49 -153
  114. package/dist/esm/DateRangePicker/QuillDateRangePicker.d.ts +21 -1
  115. package/dist/esm/DateRangePicker/QuillDateRangePicker.d.ts.map +1 -1
  116. package/dist/esm/DateRangePicker/QuillDateRangePicker.js +6 -3
  117. package/dist/esm/DateRangePicker/dateRangePickerUtils.js +1 -1
  118. package/dist/esm/QuillProvider.d.ts +105 -2
  119. package/dist/esm/QuillProvider.d.ts.map +1 -1
  120. package/dist/esm/QuillProvider.js +59 -0
  121. package/dist/esm/ReportBuilder.d.ts +188 -34
  122. package/dist/esm/ReportBuilder.d.ts.map +1 -1
  123. package/dist/esm/ReportBuilder.js +553 -428
  124. package/dist/esm/SQLEditor.d.ts +158 -29
  125. package/dist/esm/SQLEditor.d.ts.map +1 -1
  126. package/dist/esm/SQLEditor.js +53 -33
  127. package/dist/esm/Table.d.ts +119 -15
  128. package/dist/esm/Table.d.ts.map +1 -1
  129. package/dist/esm/Table.js +38 -7
  130. package/dist/esm/TableChart.d.ts.map +1 -1
  131. package/dist/esm/TableChart.js +0 -194
  132. package/dist/esm/{BarList.d.ts → components/Chart/BarList.d.ts} +1 -1
  133. package/dist/esm/components/Chart/BarList.d.ts.map +1 -0
  134. package/dist/esm/{BarList.js → components/Chart/BarList.js} +1 -1
  135. package/dist/esm/components/Chart/LineChart.d.ts +2 -3
  136. package/dist/esm/components/Chart/LineChart.d.ts.map +1 -1
  137. package/dist/esm/components/Chart/LineChart.js +3 -3
  138. package/dist/esm/components/Chart/PieChart.d.ts.map +1 -0
  139. package/dist/esm/{PieChart.js → components/Chart/PieChart.js} +1 -1
  140. package/dist/esm/components/Dashboard/ChartComponent.d.ts +2 -1
  141. package/dist/esm/components/Dashboard/ChartComponent.d.ts.map +1 -1
  142. package/dist/esm/components/Dashboard/ChartComponent.js +5 -6
  143. package/dist/esm/components/Dashboard/DashboardFilter.d.ts +22 -0
  144. package/dist/esm/components/Dashboard/DashboardFilter.d.ts.map +1 -0
  145. package/dist/esm/components/Dashboard/DashboardFilter.js +71 -0
  146. package/dist/esm/components/Dashboard/DataLoader.d.ts +1 -1
  147. package/dist/esm/components/Dashboard/DataLoader.d.ts.map +1 -1
  148. package/dist/esm/components/Dashboard/DataLoader.js +1 -1
  149. package/dist/esm/components/Dashboard/MetricComponent.d.ts +2 -12
  150. package/dist/esm/components/Dashboard/MetricComponent.d.ts.map +1 -1
  151. package/dist/esm/components/Dashboard/MetricComponent.js +39 -17
  152. package/dist/esm/components/Dashboard/TableComponent.d.ts +2 -1
  153. package/dist/esm/components/Dashboard/TableComponent.d.ts.map +1 -1
  154. package/dist/esm/components/Dashboard/TableComponent.js +6 -9
  155. package/dist/esm/components/QuillSelect.d.ts +4 -1
  156. package/dist/esm/components/QuillSelect.d.ts.map +1 -1
  157. package/dist/esm/components/QuillSelect.js +14 -9
  158. package/dist/esm/components/QuillTable.d.ts +16 -2
  159. package/dist/esm/components/QuillTable.d.ts.map +1 -1
  160. package/dist/esm/components/QuillTable.js +4 -4
  161. package/dist/esm/components/ReportBuilder/AddColumnPopover.d.ts +30 -1
  162. package/dist/esm/components/ReportBuilder/AddColumnPopover.d.ts.map +1 -1
  163. package/dist/esm/components/ReportBuilder/AddColumnPopover.js +34 -15
  164. package/dist/esm/components/ReportBuilder/AddLimitPopover.d.ts +25 -2
  165. package/dist/esm/components/ReportBuilder/AddLimitPopover.d.ts.map +1 -1
  166. package/dist/esm/components/ReportBuilder/AddLimitPopover.js +20 -20
  167. package/dist/esm/components/ReportBuilder/AddSortPopover.d.ts +22 -2
  168. package/dist/esm/components/ReportBuilder/AddSortPopover.d.ts.map +1 -1
  169. package/dist/esm/components/ReportBuilder/AddSortPopover.js +20 -22
  170. package/dist/esm/components/ReportBuilder/bigDateMap.js +1 -1
  171. package/dist/esm/components/ReportBuilder/convert.d.ts +2 -1
  172. package/dist/esm/components/ReportBuilder/convert.d.ts.map +1 -1
  173. package/dist/esm/components/ReportBuilder/convert.js +33 -13
  174. package/dist/esm/components/ReportBuilder/pivot.d.ts +2 -1
  175. package/dist/esm/components/ReportBuilder/pivot.d.ts.map +1 -1
  176. package/dist/esm/components/ReportBuilder/ui.d.ts +83 -19
  177. package/dist/esm/components/ReportBuilder/ui.d.ts.map +1 -1
  178. package/dist/esm/components/ReportBuilder/ui.js +67 -119
  179. package/dist/esm/components/ReportBuilder/util.d.ts +3 -1
  180. package/dist/esm/components/ReportBuilder/util.d.ts.map +1 -1
  181. package/dist/esm/components/ReportBuilder/util.js +31 -7
  182. package/dist/esm/components/UiComponents.d.ts +98 -97
  183. package/dist/esm/components/UiComponents.d.ts.map +1 -1
  184. package/dist/esm/components/UiComponents.js +125 -110
  185. package/dist/esm/hooks/index.d.ts +1 -0
  186. package/dist/esm/hooks/index.d.ts.map +1 -1
  187. package/dist/esm/hooks/index.js +1 -0
  188. package/dist/esm/hooks/useTheme.d.ts +7 -0
  189. package/dist/esm/hooks/useTheme.d.ts.map +1 -0
  190. package/dist/esm/hooks/useTheme.js +10 -0
  191. package/dist/esm/index.d.ts +10 -2
  192. package/dist/esm/index.d.ts.map +1 -1
  193. package/dist/esm/internals/ReportBuilder/PivotList.d.ts.map +1 -1
  194. package/dist/esm/internals/ReportBuilder/PivotList.js +10 -10
  195. package/dist/esm/internals/ReportBuilder/PivotModal.d.ts +29 -14
  196. package/dist/esm/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
  197. package/dist/esm/internals/ReportBuilder/PivotModal.js +73 -49
  198. package/dist/esm/utils/dataFetcher.d.ts.map +1 -1
  199. package/dist/esm/utils/dataFetcher.js +2 -0
  200. package/dist/esm/utils/width.d.ts +12 -0
  201. package/dist/esm/utils/width.d.ts.map +1 -0
  202. package/dist/esm/utils/width.js +21 -0
  203. package/package.json +1 -1
  204. package/dist/cjs/BarList.d.ts.map +0 -1
  205. package/dist/cjs/PieChart.d.ts.map +0 -1
  206. package/dist/esm/BarList.d.ts.map +0 -1
  207. package/dist/esm/PieChart.d.ts.map +0 -1
  208. /package/dist/cjs/{PieChart.d.ts → components/Chart/PieChart.d.ts} +0 -0
  209. /package/dist/esm/{PieChart.d.ts → components/Chart/PieChart.d.ts} +0 -0
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.AddFilterPopover = exports.TagWrapper = exports.QuillSortPopover = exports.QuillFilterPopover = exports.EditPopover = exports.QuillTabs = exports.DEFAULT_TAB_OPTIONS = exports.QuillTableLoadingState = exports.QuillButtonLoadingState = exports.QuillDraggableColumn = exports.QuillSelectColumn = exports.QuillHandleButton = exports.QuillPopover = exports.MemoizedPopover = exports.QuillSelect = exports.CustomContainer = exports.QuillSidebar = exports.QuillSidebarSubHeading = exports.QuillSidebarHeading = exports.QuillTag = exports.QuillReportBuilderTable = exports.QuillTextInput = exports.QuillSecondaryButton = exports.QuillButton = void 0;
6
+ exports.AddFilterPopover = exports.TagWrapper = exports.QuillLimitPopover = exports.QuillSortPopover = exports.QuillFilterPopover = exports.EditPopover = exports.QuillTableLoadingState = exports.QuillButtonLoadingState = exports.QuillDraggableColumn = exports.QuillSelectColumn = exports.QuillHandleButton = exports.CustomContainer = exports.QuillSidebar = exports.QuillSidebarHeading = exports.QuillTag = exports.QuillReportBuilderTable = exports.QuillSecondaryButton = exports.QuillButton = void 0;
7
7
  const jsx_runtime_1 = require("react/jsx-runtime");
8
8
  const react_1 = require("react");
9
9
  const UiComponents_1 = require("../UiComponents");
@@ -60,25 +60,7 @@ const QuillSecondaryButton = ({ children, ...props }) => {
60
60
  }, children: children }));
61
61
  };
62
62
  exports.QuillSecondaryButton = QuillSecondaryButton;
63
- const QuillTextInput = (props) => {
64
- const [theme] = (0, react_1.useContext)(Context_1.ThemeContext);
65
- return ((0, jsx_runtime_1.jsx)("input", { ...props, style: {
66
- color: theme?.primaryTextColor,
67
- backgroundColor: theme?.backgroundColor || 'white',
68
- fontFamily: theme?.fontFamily,
69
- fontWeight: 'medium',
70
- borderWidth: '1px',
71
- borderColor: theme?.borderColor || '#E7E7E7',
72
- borderStyle: 'solid',
73
- borderRadius: '6px',
74
- boxShadow: 'rgba(0, 0, 0, 0.1) 0px 1px 5px 0px',
75
- padding: '0 12px',
76
- display: 'block',
77
- minHeight: 32,
78
- ...props.style,
79
- } }));
80
- };
81
- exports.QuillTextInput = QuillTextInput;
63
+ // TODO: remove this, I think it is unused.
82
64
  const QuillReportBuilderTable = ({ rows, columns, error, ...props }) => {
83
65
  const reformattedColumns = columns.map((c) => ({ label: c, field: c }));
84
66
  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, showDownloadCSVButton: rows?.length > 0, downloadCSV: () => (0, csv_1.downloadCSV)({ rows, fields: reformattedColumns, name: 'my_report' }), emptyStateLabel: error || 'No results', ...props }) }));
@@ -124,22 +106,20 @@ exports.QuillTag = (0, react_1.forwardRef)(({ label, onClick, children, onClickD
124
106
  }, children: (0, jsx_runtime_1.jsx)("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 20 20", fill: theme?.secondaryButtonColor || 'currentColor', style: { width: 16, height: 16 }, children: (0, jsx_runtime_1.jsx)("path", { d: "M6.28 5.22a.75.75 0 0 0-1.06 1.06L8.94 10l-3.72 3.72a.75.75 0 1 0 1.06 1.06L10 11.06l3.72 3.72a.75.75 0 1 0 1.06-1.06L11.06 10l3.72-3.72a.75.75 0 0 0-1.06-1.06L10 8.94 6.28 5.22Z" }) }) }) }))] }));
125
107
  });
126
108
  // A heading element in the sidebar (eg. "Filters")
127
- const QuillSidebarHeading = ({ label }) => ((0, jsx_runtime_1.jsx)(UiComponents_1.MemoizedHeader, { children: label }));
109
+ const QuillSidebarHeading = ({ label, }) => (0, jsx_runtime_1.jsx)(UiComponents_1.MemoizedHeader, { label: label });
128
110
  exports.QuillSidebarHeading = QuillSidebarHeading;
129
- // A sub-heading element in the sidebar (eg. "Filters")
130
- const QuillSidebarSubHeading = ({ label }) => ((0, jsx_runtime_1.jsx)(UiComponents_1.MemoizedLabel, { children: label }));
131
- exports.QuillSidebarSubHeading = QuillSidebarSubHeading;
132
111
  // The gray thing on the left.
133
- exports.QuillSidebar = (0, react_1.forwardRef)(({ children, ...props }, forwardedRef) => ((0, jsx_runtime_1.jsx)("div", { style: {
112
+ const QuillSidebar = ({ children }) => ((0, jsx_runtime_1.jsx)("div", { style: {
134
113
  overflowX: 'visible',
135
114
  padding: '12px',
136
115
  width: '25%',
137
116
  height: '100%',
138
117
  maxWidth: '300px',
139
118
  boxSizing: 'border-box',
140
- }, ref: forwardedRef, ...props, children: children })));
119
+ }, children: children }));
120
+ exports.QuillSidebar = QuillSidebar;
141
121
  // A big wrapper around the main content (ie. Input, Button, and Table)
142
- exports.CustomContainer = (0, react_1.forwardRef)(({ children, ...props }, forwardedRef) => ((0, jsx_runtime_1.jsx)("div", { style: {
122
+ const CustomContainer = ({ children }) => ((0, jsx_runtime_1.jsx)("div", { style: {
143
123
  position: 'sticky',
144
124
  top: 0,
145
125
  display: 'flex',
@@ -152,61 +132,8 @@ exports.CustomContainer = (0, react_1.forwardRef)(({ children, ...props }, forwa
152
132
  width: '75%',
153
133
  height: '100%',
154
134
  boxSizing: 'border-box',
155
- }, ref: forwardedRef, ...props, children: children })));
156
- const QuillSelect = ({ onChange, ...props }) => {
157
- const handleOnChange = (value) => {
158
- if (!onChange)
159
- return;
160
- const option = props.options.find((opt) => opt.value === value);
161
- if (option) {
162
- onChange(option.value);
163
- }
164
- };
165
- return (0, jsx_runtime_1.jsx)(UiComponents_1.MemoizedSelect, { ...props, onChange: handleOnChange });
166
- };
167
- exports.QuillSelect = QuillSelect;
168
- function MemoizedPopover({ onClose, children, style = {}, trigger, isOpen, }) {
169
- const modalRef = (0, react_1.useRef)(null);
170
- const [theme] = (0, react_1.useContext)(Context_1.ThemeContext);
171
- (0, react_1.useEffect)(() => {
172
- const listener = (event) => {
173
- if (modalRef?.current && !modalRef?.current?.contains(event.target)) {
174
- onClose(event);
175
- }
176
- };
177
- document.addEventListener('mousedown', listener);
178
- return () => {
179
- document.removeEventListener('mousedown', listener);
180
- };
181
- }, [modalRef, onClose]);
182
- return ((0, jsx_runtime_1.jsxs)("div", { children: [trigger, isOpen && ((0, jsx_runtime_1.jsx)("div", { id: "quill-popover-modal", ref: modalRef, style: { position: 'relative' }, children: (0, jsx_runtime_1.jsx)("div", { style: {
183
- background: theme?.backgroundColor || 'white',
184
- position: 'absolute',
185
- boxShadow: '0px 1px 12px 0px rgba(56, 65, 81, 0.1)',
186
- border: theme
187
- ? `${theme.borderWidth || 1}px solid ${theme.borderColor || '#e7e7e7'}`
188
- : '1px solid #e7e7e7',
189
- boxSizing: 'content-box',
190
- zIndex: 999,
191
- top: 12,
192
- borderRadius: 6,
193
- padding: 20,
194
- ...style,
195
- }, children: children }) }))] }));
196
- }
197
- exports.MemoizedPopover = MemoizedPopover;
198
- exports.QuillPopover = (0, react_1.forwardRef)(({ children, trigger, isOpen, onClose = () => { }, title = undefined }, ref) => {
199
- const [theme] = (0, react_1.useContext)(Context_1.ThemeContext);
200
- return ((0, jsx_runtime_1.jsxs)(MemoizedPopover, { isOpen: isOpen, onClose: onClose, trigger: trigger, parentRef: ref, ref: ref, children: [title && ((0, jsx_runtime_1.jsx)("h1", { style: {
201
- fontWeight: '600',
202
- fontSize: 18,
203
- margin: 0,
204
- textAlign: 'left',
205
- marginBottom: 5,
206
- color: theme?.primaryTextColor,
207
- fontFamily: theme?.fontFamily,
208
- }, children: title })), children] }));
209
- });
135
+ }, children: children }));
136
+ exports.CustomContainer = CustomContainer;
210
137
  // The six-dot grab-handle icon.
211
138
  const QuillHandleButton = () => {
212
139
  const [theme] = (0, react_1.useContext)(Context_1.ThemeContext);
@@ -252,7 +179,7 @@ const QuillHandleButton = () => {
252
179
  } })] })] }));
253
180
  };
254
181
  exports.QuillHandleButton = QuillHandleButton;
255
- const QuillSelectColumn = ({ label, selected, setSelected, children, }) => {
182
+ const QuillSelectColumn = ({ label, isSelected, setSelected, DragHandle, }) => {
256
183
  const [theme] = (0, react_1.useContext)(Context_1.ThemeContext);
257
184
  return ((0, jsx_runtime_1.jsxs)("div", { title: label, style: {
258
185
  boxShadow: '0px 1px 4px #e2e8f005',
@@ -264,13 +191,13 @@ const QuillSelectColumn = ({ label, selected, setSelected, children, }) => {
264
191
  display: 'flex',
265
192
  alignItems: 'center',
266
193
  backgroundColor: theme?.backgroundColor || 'white',
267
- }, children: [(0, jsx_runtime_1.jsx)("div", { children: children }), (0, jsx_runtime_1.jsxs)("label", { style: {
194
+ }, children: [(0, jsx_runtime_1.jsx)(DragHandle, { dragIcon: exports.QuillHandleButton }), (0, jsx_runtime_1.jsxs)("label", { style: {
268
195
  display: 'flex',
269
196
  gap: 2,
270
197
  whiteSpace: 'nowrap',
271
198
  textOverflow: 'ellipsis',
272
199
  overflow: 'hidden',
273
- }, children: [(0, jsx_runtime_1.jsx)(UiComponents_1.MemoizedCheckbox, { checked: selected, onChange: () => setSelected() }), (0, jsx_runtime_1.jsx)("span", { style: {
200
+ }, children: [(0, jsx_runtime_1.jsx)(UiComponents_1.MemoizedCheckbox, { isChecked: isSelected, onChange: () => setSelected() }), (0, jsx_runtime_1.jsx)("span", { style: {
274
201
  marginLeft: 6,
275
202
  display: 'block',
276
203
  whiteSpace: 'nowrap',
@@ -281,8 +208,10 @@ const QuillSelectColumn = ({ label, selected, setSelected, children, }) => {
281
208
  }, children: (0, textProcessing_1.snakeCaseToTitleCase)(label) })] })] }));
282
209
  };
283
210
  exports.QuillSelectColumn = QuillSelectColumn;
284
- // A draggable card with a grab-handle and a column name
285
- const QuillDraggableColumn = ({ label, children, onDelete }) => {
211
+ /**
212
+ * A draggable card with a grab-handle and a column name
213
+ */
214
+ const QuillDraggableColumn = ({ label, onDelete, DragHandle, }) => {
286
215
  const [theme] = (0, react_1.useContext)(Context_1.ThemeContext);
287
216
  return ((0, jsx_runtime_1.jsxs)("div", { style: {
288
217
  boxShadow: '0px 1px 4px #e2e8f005',
@@ -291,13 +220,14 @@ const QuillDraggableColumn = ({ label, children, onDelete }) => {
291
220
  display: 'flex',
292
221
  alignItems: 'center',
293
222
  backgroundColor: theme?.backgroundColor || 'white',
294
- }, children: [(0, jsx_runtime_1.jsx)("div", { children: children }), (0, jsx_runtime_1.jsx)("div", { style: {
223
+ }, children: [(0, jsx_runtime_1.jsx)(DragHandle, { dragIcon: exports.QuillHandleButton }), (0, jsx_runtime_1.jsx)("div", { style: {
295
224
  marginLeft: 2,
296
225
  marginRight: 'auto',
297
226
  fontSize: 14,
298
227
  display: 'block',
299
228
  whiteSpace: 'nowrap',
300
229
  textOverflow: 'ellipsis',
230
+ overflow: 'hidden',
301
231
  fontFamily: theme?.fontFamily,
302
232
  }, children: label }), (0, jsx_runtime_1.jsx)("button", { onClick: onDelete, style: {
303
233
  paddingRight: 4,
@@ -318,12 +248,14 @@ const QuillTableLoadingState = () => {
318
248
  return ((0, jsx_runtime_1.jsx)("div", { style: { display: 'flex', flexDirection: 'column', margin: 'auto' }, children: (0, jsx_runtime_1.jsx)(UiComponents_1.LoadingSpinner, {}) }));
319
249
  };
320
250
  exports.QuillTableLoadingState = QuillTableLoadingState;
321
- exports.DEFAULT_TAB_OPTIONS = [
322
- { label: 'or', value: 'OR' },
323
- { label: 'and', value: 'AND' },
324
- ];
325
- exports.QuillTabs = (0, react_1.forwardRef)(({ options = exports.DEFAULT_TAB_OPTIONS, ...props }, ref) => ((0, jsx_runtime_1.jsx)(UiComponents_1.MemoizedTabs, { ref: ref, options: options, ...props })));
326
251
  const EditPopover = ({ onSave, onDelete, Button, renderNode, activeEditItem, }) => {
252
+ const handleOnClick = () => {
253
+ if (!(0, util_1.allNumericNodesValidInTree)(activeEditItem)) {
254
+ alert('Please input a number.');
255
+ return;
256
+ }
257
+ onSave();
258
+ };
327
259
  return ((0, jsx_runtime_1.jsxs)("div", { style: {
328
260
  display: 'flex',
329
261
  flexDirection: 'column',
@@ -334,44 +266,51 @@ const EditPopover = ({ onSave, onDelete, Button, renderNode, activeEditItem, })
334
266
  justifyContent: 'end',
335
267
  gap: 8,
336
268
  width: '100%',
337
- }, children: [(0, jsx_runtime_1.jsx)(UiComponents_1.MemoizedSecondaryButton, { onClick: onDelete, label: "Delete" }), (0, jsx_runtime_1.jsx)(Button, { onClick: onSave, label: "Save" })] })] }));
269
+ }, children: [(0, jsx_runtime_1.jsx)(UiComponents_1.MemoizedSecondaryButton, { onClick: onDelete, label: "Delete" }), (0, jsx_runtime_1.jsx)(Button, { onClick: handleOnClick, label: "Save" })] })] }));
338
270
  };
339
271
  exports.EditPopover = EditPopover;
340
- const QuillFilterPopover = ({ filterLabel, onClickDeleteFilter, popoverTitle, popoverChildren, isOpen, setIsOpen, }) => {
341
- return ((0, jsx_runtime_1.jsx)(exports.QuillPopover, { isOpen: isOpen, title: popoverTitle, trigger: (0, jsx_runtime_1.jsx)(exports.QuillTag, { label: filterLabel, onClickDelete: onClickDeleteFilter, onClick: () => {
342
- setIsOpen((isOpen) => !isOpen);
343
- } }), onClose: () => {
344
- setIsOpen(false);
345
- }, children: popoverChildren }));
272
+ const QuillFilterPopover = ({ filterLabel, onClickDelete, popoverTitle, popoverChildren, isOpen, setIsOpen, }) => {
273
+ const handleSetIsOpen = (isOpen) => {
274
+ setIsOpen(isOpen);
275
+ };
276
+ return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(exports.QuillTag, { label: filterLabel, onClickDelete: onClickDelete, onClick: () => setIsOpen(!isOpen) }), (0, jsx_runtime_1.jsx)(UiComponents_1.MemoizedPopover, { isOpen: isOpen, setIsOpen: handleSetIsOpen, popoverTitle: popoverTitle, popoverChildren: popoverChildren })] }));
346
277
  };
347
278
  exports.QuillFilterPopover = QuillFilterPopover;
348
- const QuillSortPopover = ({ filterLabel, onClickDelete, popoverTitle, popoverChildren, isOpen, setIsOpen, }) => {
349
- return ((0, jsx_runtime_1.jsx)(exports.QuillPopover, { isOpen: isOpen, title: popoverTitle, trigger: (0, jsx_runtime_1.jsx)(exports.QuillTag, { label: filterLabel, onClickDelete: onClickDelete, onClick: () => {
350
- setIsOpen((isOpen) => !isOpen);
351
- } }), onClose: () => {
352
- setIsOpen(false);
353
- }, children: popoverChildren }));
279
+ const QuillSortPopover = ({ sortLabel, onClickDelete, popoverTitle, popoverChildren, isOpen, setIsOpen, }) => {
280
+ return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(exports.QuillTag, { label: sortLabel, onClickDelete: onClickDelete, onClick: () => {
281
+ setIsOpen(!isOpen);
282
+ } }), (0, jsx_runtime_1.jsx)(UiComponents_1.MemoizedPopover, { isOpen: isOpen, popoverTitle: popoverTitle, setIsOpen: setIsOpen, popoverChildren: popoverChildren })] }));
354
283
  };
355
284
  exports.QuillSortPopover = QuillSortPopover;
285
+ const QuillLimitPopover = ({ limitLabel, onClickDelete, popoverTitle, popoverChildren, isOpen, setIsOpen, }) => {
286
+ return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(exports.QuillTag, { label: limitLabel, onClickDelete: onClickDelete, onClick: () => {
287
+ setIsOpen(!isOpen);
288
+ } }), (0, jsx_runtime_1.jsx)(UiComponents_1.MemoizedPopover, { isOpen: isOpen, popoverTitle: popoverTitle, setIsOpen: setIsOpen, popoverChildren: popoverChildren })] }));
289
+ };
290
+ exports.QuillLimitPopover = QuillLimitPopover;
356
291
  const TagWrapper = ({ isCard, isRow, editPopoverKey, keyPrefix, formData, activeEditItem, setEditPopoverKey, setActiveEditItem, setActivePath, setOpenPopover, setIsPending, clearCheckboxes, fetchSqlQuery, handleDelete, setCheckboxes, handleReplaceSubtree, FilterPopover, getByKey, EditPopover, Button, renderNode, children, }) => {
357
292
  const [isOpen, setIsOpen] = (0, react_1.useState)(false);
293
+ const onOpen = () => {
294
+ setActiveEditItem(getByKey(formData, keyPrefix));
295
+ setActivePath(keyPrefix);
296
+ setIsPending(true);
297
+ setEditPopoverKey(keyPrefix);
298
+ setCheckboxes(getByKey(formData, keyPrefix));
299
+ };
300
+ const onClose = () => {
301
+ setEditPopoverKey(null);
302
+ setIsPending(false);
303
+ setActiveEditItem(null);
304
+ setActivePath(null);
305
+ setOpenPopover(null);
306
+ clearCheckboxes();
307
+ };
358
308
  (0, react_1.useEffect)(() => {
359
309
  if (isOpen) {
360
- // open
361
- setActiveEditItem(getByKey(formData, keyPrefix));
362
- setActivePath(keyPrefix);
363
- setIsPending(true);
364
- setEditPopoverKey(keyPrefix);
365
- setCheckboxes(getByKey(formData, keyPrefix));
310
+ onOpen();
366
311
  }
367
312
  else {
368
- // closed
369
- setEditPopoverKey(null);
370
- setIsPending(false);
371
- setActiveEditItem(null);
372
- setActivePath(null);
373
- setOpenPopover(null);
374
- clearCheckboxes();
313
+ onClose();
375
314
  }
376
315
  }, [isOpen]);
377
316
  if (isCard && isRow) {
@@ -383,9 +322,10 @@ const TagWrapper = ({ isCard, isRow, editPopoverKey, keyPrefix, formData, active
383
322
  setActivePath(null);
384
323
  setOpenPopover(null);
385
324
  setEditPopoverKey(null);
325
+ fetchSqlQuery();
386
326
  clearCheckboxes();
387
327
  };
388
- return ((0, jsx_runtime_1.jsx)("div", { style: { width: '100%' }, children: (0, jsx_runtime_1.jsx)(FilterPopover, { isOpen: editPopoverKey === keyPrefix, popoverTitle: "Edit Filter", filterLabel: children, onClickDeleteFilter: handleClickDelete, setIsOpen: setIsOpen, popoverChildren: (0, jsx_runtime_1.jsx)(EditPopover, { Button: Button, renderNode: renderNode, activeEditItem: activeEditItem, onSave: () => {
328
+ return ((0, jsx_runtime_1.jsx)("div", { style: { width: '100%' }, children: (0, jsx_runtime_1.jsx)(FilterPopover, { isOpen: editPopoverKey === keyPrefix, popoverTitle: "Edit Filter", filterLabel: children, onClickDelete: handleClickDelete, setIsOpen: setIsOpen, popoverChildren: (0, jsx_runtime_1.jsx)(EditPopover, { Button: Button, renderNode: renderNode, activeEditItem: activeEditItem, onSave: () => {
389
329
  if ((0, util_1.isNodeEmptyCollection)(activeEditItem)) {
390
330
  setIsPending(false);
391
331
  setActiveEditItem(null);
@@ -425,10 +365,17 @@ const TagWrapper = ({ isCard, isRow, editPopoverKey, keyPrefix, formData, active
425
365
  };
426
366
  exports.TagWrapper = TagWrapper;
427
367
  const AddFilterPopover = ({ onSave, Button, renderNode, activeEditItem, }) => {
368
+ const handleOnClick = () => {
369
+ if (!(0, util_1.allNumericNodesValidInTree)(activeEditItem)) {
370
+ alert('Please input a number.');
371
+ return;
372
+ }
373
+ onSave();
374
+ };
428
375
  return ((0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', flexDirection: 'column', gap: 12 }, children: [activeEditItem && renderNode(activeEditItem), (0, jsx_runtime_1.jsx)("div", { style: {
429
376
  display: 'flex',
430
377
  flexDirection: 'row',
431
378
  justifyContent: 'end',
432
- }, children: (0, jsx_runtime_1.jsx)(Button, { onClick: onSave, label: 'Add filter' }) })] }));
379
+ }, children: (0, jsx_runtime_1.jsx)(Button, { onClick: handleOnClick, label: 'Add filter' }) })] }));
433
380
  };
434
381
  exports.AddFilterPopover = AddFilterPopover;
@@ -73,5 +73,7 @@ export declare const getDateFilterInfo: (node: any) => {
73
73
  intervalType: any;
74
74
  intervalPaths: any;
75
75
  };
76
- export declare function removeNonSelectedTableReferences(ast: any, table: string): any;
76
+ export declare function removeNonSelectedTableReferences(ast: any, table: string, columns: string[]): any;
77
+ export declare function allNumericNodesValidInTree(node: any): boolean;
78
+ export declare function isIdColumn(columnName?: string): boolean | "" | undefined;
77
79
  //# sourceMappingURL=util.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../../src/components/ReportBuilder/util.ts"],"names":[],"mappings":"AAOA;;GAEG;AACH,eAAO,MAAM,qBAAqB,SAAU,GAAG,YAW9C,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,GAAG,WAa1C;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,GAAG,WAK5C;AAGD,eAAO,MAAM,WAAW,SAAU,GAAG,YAuBpC,CAAC;AAKF,eAAO,MAAM,oBAAoB,SAAU,GAAG,QAE7C,CAAC;AAEF,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,GAAG;;;;;;;;EAU3C;AAKD,eAAO,MAAM,eAAe,QAAS,GAAG,QAMvC,CAAC;AAEF,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,WAiBvD;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,GAAG,iBAQjD;AAED,wBAAgB,+BAA+B,CAC7C,IAAI,EAAE,GAAG,EACT,YAAY,EAAE,MAAM,GACnB,MAAM,GAAG,IAAI,CAOf;AAQD,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,GAAG,EACT,YAAY,EAAE,MAAM,GACnB,MAAM,GAAG,IAAI,CAWf;AAED,wBAAgB,gCAAgC,CAC9C,IAAI,EAAE,GAAG,EACT,YAAY,EAAE,MAAM,GACnB,MAAM,GAAG,IAAI,CAOf;AAMD,eAAO,MAAM,mBAAmB,SAAU,GAAG,gBAAgB,MAAM,YA4BlE,CAAC;AAIF,eAAO,MAAM,2BAA2B,SAAU,GAAG,YAUpD,CAAC;AAIF,eAAO,MAAM,oBAAoB,SACzB,GAAG,gBACK,MAAM,KACnB,OAoBF,CAAC;AAEF,eAAO,MAAM,qBAAqB,SAAU,GAAG,gBAAgB,MAAM,QAYpE,CAAC;AAEF,eAAO,MAAM,4BAA4B,SAAU,GAAG,KAAG,OAUxD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,SAAU,GAAG,QA4B3C,CAAC;AAGF,eAAO,MAAM,UAAU,eAAgB,MAAM,SAe5C,CAAC;AAmBF;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,GAAG,EAAE,YAAY,CAAC,EAAE,MAAM,UAsBvE;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,GAAG,UAgB9C;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,GAAG,EAAE,YAAY,CAAC,EAAE,MAAM,sBAmBtE;AAED;;;GAGG;AACH,eAAO,MAAM,iBAAiB,SAAU,GAAG,YAU1C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,SAAU,GAAG,YAOxC,CAAC;AAEF,wBAAgB,aAAa,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,WAehD;AAED,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,GAAG,GACV,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,CAyB1C;AAED,eAAO,MAAM,QAAQ,QAAS,GAAG,QAAoC,CAAC;AAEtE,eAAO,MAAM,QAAQ,MAAO,MAAM,WAA2C,CAAC;AA4L9E,eAAO,MAAM,iBAAiB,SAAU,GAAG;;;;;;;CAc1C,CAAC;AAqCF,wBAAgB,gCAAgC,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,OAQvE"}
1
+ {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../../src/components/ReportBuilder/util.ts"],"names":[],"mappings":"AAOA;;GAEG;AACH,eAAO,MAAM,qBAAqB,SAAU,GAAG,YAW9C,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,GAAG,WAa1C;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,GAAG,WAK5C;AAGD,eAAO,MAAM,WAAW,SAAU,GAAG,YAuBpC,CAAC;AAKF,eAAO,MAAM,oBAAoB,SAAU,GAAG,QAE7C,CAAC;AAEF,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,GAAG;;;;;;;;EAU3C;AAKD,eAAO,MAAM,eAAe,QAAS,GAAG,QAMvC,CAAC;AAEF,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,WAiBvD;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,GAAG,iBAQjD;AAED,wBAAgB,+BAA+B,CAC7C,IAAI,EAAE,GAAG,EACT,YAAY,EAAE,MAAM,GACnB,MAAM,GAAG,IAAI,CAOf;AAQD,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,GAAG,EACT,YAAY,EAAE,MAAM,GACnB,MAAM,GAAG,IAAI,CAWf;AAED,wBAAgB,gCAAgC,CAC9C,IAAI,EAAE,GAAG,EACT,YAAY,EAAE,MAAM,GACnB,MAAM,GAAG,IAAI,CAOf;AAMD,eAAO,MAAM,mBAAmB,SAAU,GAAG,gBAAgB,MAAM,YA4BlE,CAAC;AAIF,eAAO,MAAM,2BAA2B,SAAU,GAAG,YAUpD,CAAC;AAIF,eAAO,MAAM,oBAAoB,SACzB,GAAG,gBACK,MAAM,KACnB,OAoBF,CAAC;AAEF,eAAO,MAAM,qBAAqB,SAAU,GAAG,gBAAgB,MAAM,QAYpE,CAAC;AAEF,eAAO,MAAM,4BAA4B,SAAU,GAAG,KAAG,OAUxD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,SAAU,GAAG,QA4B3C,CAAC;AAGF,eAAO,MAAM,UAAU,eAAgB,MAAM,SAe5C,CAAC;AAmBF;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,GAAG,EAAE,YAAY,CAAC,EAAE,MAAM,UAsBvE;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,GAAG,UAgB9C;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,GAAG,EAAE,YAAY,CAAC,EAAE,MAAM,sBAmBtE;AAED;;;GAGG;AACH,eAAO,MAAM,iBAAiB,SAAU,GAAG,YAU1C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,SAAU,GAAG,YAOxC,CAAC;AAEF,wBAAgB,aAAa,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,WAehD;AAED,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,GAAG,GACV,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,CAyB1C;AAED,eAAO,MAAM,QAAQ,QAAS,GAAG,QAAoC,CAAC;AAEtE,eAAO,MAAM,QAAQ,MAAO,MAAM,WAA2C,CAAC;AA4L9E,eAAO,MAAM,iBAAiB,SAAU,GAAG;;;;;;;CAc1C,CAAC;AA6CF,wBAAgB,gCAAgC,CAC9C,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EAAE,OAQlB;AAED,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAc7D;AAED,wBAAgB,UAAU,CAAC,UAAU,CAAC,EAAE,MAAM,4BAO7C"}
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  // A collection of reusable, pure, utility functions for the Report Builder.
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.removeNonSelectedTableReferences = exports.getDateFilterInfo = exports.trimEndS = exports.deepCopy = exports.getPostgresBasicType = exports.showNodeAsRow = exports.isExtractEquals = exports.isDateTruncEquals = exports.tryConvertDateEquality = exports.extractSuffixToString = exports.dateTruncSuffixToString = exports.newUTCDate = exports.isColumnComparison = exports.isTheCurrentIntervalBigQuery = exports.isThePreviousInterval = exports.isTheCurrentInterval = exports.isInTheLastIntervalBigQuery = exports.isInTheLastInterval = exports.getInThePreviousIntervalSentence = exports.getInTheLastIntervalSentence = exports.getInTheCurrentIntervalSentence = exports.formatDateComparisonNode = exports.areObjectsEqualish = exports.isColumnDateish = exports.generateColumnExpr = exports.isColumnReferenceish = exports.isDateTrunc = exports.hasTopLevelOrBoolean = exports.isTopLevelBoolean = exports.isNodeEmptyCollection = void 0;
4
+ exports.isIdColumn = exports.allNumericNodesValidInTree = exports.removeNonSelectedTableReferences = exports.getDateFilterInfo = exports.trimEndS = exports.deepCopy = exports.getPostgresBasicType = exports.showNodeAsRow = exports.isExtractEquals = exports.isDateTruncEquals = exports.tryConvertDateEquality = exports.extractSuffixToString = exports.dateTruncSuffixToString = exports.newUTCDate = exports.isColumnComparison = exports.isTheCurrentIntervalBigQuery = exports.isThePreviousInterval = exports.isTheCurrentInterval = exports.isInTheLastIntervalBigQuery = exports.isInTheLastInterval = exports.getInThePreviousIntervalSentence = exports.getInTheLastIntervalSentence = exports.getInTheCurrentIntervalSentence = exports.formatDateComparisonNode = exports.areObjectsEqualish = exports.isColumnDateish = exports.generateColumnExpr = exports.isColumnReferenceish = exports.isDateTrunc = exports.hasTopLevelOrBoolean = exports.isTopLevelBoolean = exports.isNodeEmptyCollection = void 0;
5
5
  const date_fns_1 = require("date-fns");
6
6
  const bigDateMap_1 = require("./bigDateMap");
7
7
  const textProcessing_1 = require("../../utils/textProcessing");
@@ -659,18 +659,20 @@ function getNodeTable(node) {
659
659
  return null;
660
660
  }
661
661
  // Recursively remove filters that don't apply to the given table
662
- function removeNonSelectedTableFilters(node, table) {
662
+ function removeNonSelectedTableFilters(node, table, columns) {
663
663
  if (node.left.type !== 'binary_expr') {
664
664
  const referencedTable = getNodeTable(node.left);
665
- if (referencedTable && referencedTable !== table) {
665
+ const referencedColumn = node.left.column || node.left.value;
666
+ if ((referencedTable && referencedTable !== table) ||
667
+ !columns.includes(referencedColumn)) {
666
668
  return null;
667
669
  }
668
670
  else {
669
671
  return node;
670
672
  }
671
673
  }
672
- node.left = removeNonSelectedTableFilters(node.left, table);
673
- node.right = removeNonSelectedTableFilters(node.right, table);
674
+ node.left = removeNonSelectedTableFilters(node.left, table, columns);
675
+ node.right = removeNonSelectedTableFilters(node.right, table, columns);
674
676
  if (node.left && node.right) {
675
677
  return node;
676
678
  }
@@ -684,14 +686,38 @@ function removeNonSelectedTableFilters(node, table) {
684
686
  return null;
685
687
  }
686
688
  }
687
- function removeNonSelectedTableReferences(ast, table) {
689
+ function removeNonSelectedTableReferences(ast, table, columns) {
688
690
  ast.columns = ast.columns.filter((col) => {
689
691
  return col.table === table || col.expr.table === table || !col.expr.table;
690
692
  });
691
693
  if (!ast.where)
692
694
  return ast;
693
- ast.where = removeNonSelectedTableFilters(ast.where, table);
694
- console.log(ast);
695
+ ast.where = removeNonSelectedTableFilters(ast.where, table, columns);
695
696
  return ast;
696
697
  }
697
698
  exports.removeNonSelectedTableReferences = removeNonSelectedTableReferences;
699
+ function allNumericNodesValidInTree(node) {
700
+ if (!node)
701
+ return true;
702
+ if (node.type === 'number') {
703
+ const value = parseFloat(node.value);
704
+ if (Number.isNaN(value)) {
705
+ return false;
706
+ }
707
+ else {
708
+ node.value = value;
709
+ return true;
710
+ }
711
+ }
712
+ const isLeftValid = allNumericNodesValidInTree(node.left);
713
+ const isRightValid = allNumericNodesValidInTree(node.right);
714
+ return isLeftValid && isRightValid;
715
+ }
716
+ exports.allNumericNodesValidInTree = allNumericNodesValidInTree;
717
+ function isIdColumn(columnName) {
718
+ return (columnName &&
719
+ (columnName.toLowerCase() === 'id' ||
720
+ columnName.toLowerCase().endsWith('_id') ||
721
+ columnName.endsWith('Id')));
722
+ }
723
+ exports.isIdColumn = isIdColumn;
@@ -1,15 +1,14 @@
1
- import React from 'react';
1
+ import React, { ChangeEvent, ReactNode } from 'react';
2
2
  export interface Option {
3
3
  value: string;
4
4
  label: string;
5
5
  }
6
- export interface SelectComponentProps {
7
- onChange: (value: string) => void;
8
- value: string;
9
- options: Option[];
10
- disabled?: boolean;
11
- label?: string;
12
- theme: any;
6
+ export interface PopoverComponentProps {
7
+ isOpen: boolean;
8
+ setIsOpen: (isOpen: boolean) => void;
9
+ triggerLabel?: string;
10
+ popoverTitle?: string;
11
+ popoverChildren: ReactNode;
13
12
  }
14
13
  export interface ButtonComponentProps {
15
14
  onClick: () => void;
@@ -18,29 +17,21 @@ export interface ButtonComponentProps {
18
17
  primary?: boolean;
19
18
  width?: string;
20
19
  }
21
- export interface TableComponentProps {
22
- rows: any[];
23
- columns: any[];
24
- containerStyle?: React.CSSProperties;
25
- loading?: boolean;
26
- showDownloadCSVButton?: boolean;
27
- downloadFileName?: string;
28
- downloadCSV?: () => void;
29
- LoadingComponent?: () => JSX.Element;
30
- DownloadCSVButtonComponent?: (props: ButtonComponentProps) => JSX.Element;
31
- rowsPerPage?: number;
32
- emptyStateLabel?: string;
20
+ export interface DeleteButtonComponentProps {
21
+ onClick: () => void;
33
22
  }
23
+ /**
24
+ * An input element used to accept data from the user.
25
+ */
34
26
  export interface TextInputComponentProps {
35
- onChange: (e: any) => void;
36
- value: string;
37
27
  id: string;
38
- placeholder: string;
39
- theme?: any;
40
- width?: string;
28
+ width: number;
29
+ value: string;
30
+ placeholder?: string;
31
+ onChange: (event: React.ChangeEvent<HTMLInputElement>) => void;
41
32
  }
42
33
  export interface ModalComponentProps {
43
- children: any;
34
+ children: ReactNode;
44
35
  isOpen: boolean;
45
36
  onClose?: () => void;
46
37
  title?: string;
@@ -49,25 +40,25 @@ export interface ModalComponentProps {
49
40
  style?: any;
50
41
  }
51
42
  export interface HeaderProps {
52
- children: any;
43
+ label: string;
53
44
  }
54
45
  export interface LabelProps {
55
- children: any;
46
+ label: string;
56
47
  }
57
48
  export interface TextProps {
58
- children: any;
49
+ label: string;
59
50
  }
60
- export interface DeleteButtonProps {
61
- onClick: () => void;
62
- style: any;
63
- }
64
- export declare const QuillTextInput: ({ value, onChange, placeholder, id, theme, }: TextInputComponentProps) => import("react/jsx-runtime").JSX.Element;
65
- export declare const MemoizedTextInput: ({ value, onChange, placeholder, id }: {
66
- value: any;
67
- onChange: any;
68
- placeholder: any;
69
- id: any;
70
- }) => import("react/jsx-runtime").JSX.Element;
51
+ export interface SidebarComponentProps {
52
+ children: ReactNode;
53
+ }
54
+ export interface ContainerComponentProps {
55
+ children: ReactNode;
56
+ }
57
+ /**
58
+ * The fallback TextInput element for Quill.
59
+ */
60
+ export declare const QuillTextInput: ({ id, value, width, placeholder, onChange, }: TextInputComponentProps) => import("react/jsx-runtime").JSX.Element;
61
+ export declare const MemoizedTextInput: ({ value, onChange, placeholder, id, }: TextInputComponentProps) => import("react/jsx-runtime").JSX.Element;
71
62
  export declare const MemoizedButton: ({ label, onClick, primary, isLoading, }: {
72
63
  label: any;
73
64
  onClick: any;
@@ -78,65 +69,75 @@ export declare const MemoizedSecondaryButton: ({ label, onClick }: {
78
69
  label: any;
79
70
  onClick: any;
80
71
  }) => import("react/jsx-runtime").JSX.Element;
81
- export declare const MemoizedSelect: ({ value, onChange, options, disabled, style, }: {
82
- value: any;
83
- onChange: any;
84
- options: any;
85
- disabled?: boolean | undefined;
86
- style?: {} | undefined;
87
- }) => import("react/jsx-runtime").JSX.Element;
88
- export declare const MemoizedHeader: ({ children }: {
89
- children: any;
90
- }) => import("react/jsx-runtime").JSX.Element;
91
- export declare const MemoizedLabel: ({ children }: {
92
- children: any;
93
- }) => import("react/jsx-runtime").JSX.Element;
94
- export declare const MemoizedCheckbox: ({ checked, onChange, style, ...props }: {
95
- [x: string]: any;
96
- checked: any;
97
- onChange: any;
98
- style?: {} | undefined;
99
- }) => import("react/jsx-runtime").JSX.Element;
100
- export declare const MemoizedTabs: ({ defaultValue, options, onValueChange }: {
101
- defaultValue: any;
102
- options: any;
103
- onValueChange: any;
104
- }) => import("react/jsx-runtime").JSX.Element;
105
- export declare const MemoizedText: ({ children }: {
106
- children: any;
107
- }) => import("react/jsx-runtime").JSX.Element;
108
- export interface PopoverComponentProps {
109
- isOpen: boolean;
110
- setIsOpen: () => void;
111
- onClose: () => void;
112
- triggerLabel: string;
113
- popoverTitle: string;
114
- popoverChildren: any;
115
- }
116
- export interface MemoizedPopoverProps {
117
- children: any;
118
- onClose?: () => void;
119
- parentRef?: any;
120
- style?: any;
121
- onClick?: () => void;
122
- showTrigger?: boolean;
123
- isOpen: boolean;
72
+ export interface SelectComponentProps {
73
+ value: string;
74
+ label?: string;
75
+ options: {
76
+ value: string;
77
+ label: string;
78
+ }[];
79
+ onChange: (event: React.ChangeEvent<HTMLSelectElement>) => void;
80
+ }
81
+ export interface HeaderComponentProps {
82
+ label: string;
83
+ }
84
+ export declare const MemoizedHeader: ({ label }: HeaderComponentProps) => import("react/jsx-runtime").JSX.Element;
85
+ export interface LabelComponentProps {
86
+ label: string;
87
+ }
88
+ export declare const MemoizedLabel: ({ label }: LabelComponentProps) => import("react/jsx-runtime").JSX.Element;
89
+ export interface CheckboxComponentProps {
90
+ isChecked: boolean;
91
+ onChange: (event: ChangeEvent<HTMLInputElement>) => void;
92
+ }
93
+ export declare const MemoizedCheckbox: ({ isChecked, onChange, }: CheckboxComponentProps) => import("react/jsx-runtime").JSX.Element;
94
+ export declare const DEFAULT_TAB_OPTIONS: {
124
95
  label: string;
96
+ value: string;
97
+ }[];
98
+ export interface TabsComponentProps {
99
+ options: {
100
+ label: string;
101
+ value: string;
102
+ }[];
103
+ value: string;
104
+ onChange: (event: ChangeEvent<HTMLSelectElement>) => void;
105
+ }
106
+ export declare const QuillTabs: ({ options, value, onChange, }: TabsComponentProps) => import("react/jsx-runtime").JSX.Element;
107
+ export interface TextComponentProps {
108
+ label: string;
109
+ }
110
+ export declare const MemoizedText: ({ label }: TextComponentProps) => import("react/jsx-runtime").JSX.Element;
111
+ /**
112
+ * The one, true Quill popover component.
113
+ */
114
+ export declare const MemoizedPopover: ({ isOpen, setIsOpen, triggerLabel, popoverTitle, popoverChildren, }: PopoverComponentProps) => import("react/jsx-runtime").JSX.Element;
115
+ export declare function MemoizedModal({ isOpen, setIsOpen, title, children, width, height, }: {
116
+ isOpen: boolean;
125
117
  setIsOpen: (isOpen: boolean) => void;
118
+ title?: string;
119
+ children: ReactNode;
120
+ width?: number;
121
+ height?: number;
122
+ }): JSX.Element;
123
+ export declare const MemoizedDeleteButton: ({ onClick, }: DeleteButtonComponentProps) => import("react/jsx-runtime").JSX.Element;
124
+ export declare const LoadingSpinner: () => import("react/jsx-runtime").JSX.Element;
125
+ export interface TableComponentProps {
126
+ rows: {
127
+ [key: string]: any;
128
+ }[];
129
+ columns: {
130
+ field: string;
131
+ label: string;
132
+ }[];
133
+ isLoading?: boolean;
126
134
  }
127
- export declare function MemoizedPopover({ onClose, parentRef, children, style, onClick, showTrigger, isOpen, label, setIsOpen, }: MemoizedPopoverProps): import("react/jsx-runtime").JSX.Element;
128
- export declare function MemoizedModal({ isOpen, onClose, setIsOpen, title, children, theme, style, }: {
129
- isOpen: any;
130
- onClose: any;
131
- setIsOpen: any;
132
- title: any;
133
- children: any;
134
- theme: any;
135
- style?: {} | undefined;
136
- }): import("react/jsx-runtime").JSX.Element | null;
137
- export declare const MemoizedDeleteButton: ({ onClick, style }: {
138
- onClick: any;
139
- style: any;
135
+ export declare const QuillTableComponent: ({ rows, columns, isLoading, }: TableComponentProps) => import("react/jsx-runtime").JSX.Element;
136
+ export declare const QuillDropdownComponent: ({ onChange, value, label, options, }: {
137
+ onChange: (event: ChangeEvent<HTMLSelectElement>) => void;
138
+ value: string;
139
+ options: Option[];
140
+ label?: string | undefined;
140
141
  }) => import("react/jsx-runtime").JSX.Element;
141
- export declare const LoadingSpinner: () => import("react/jsx-runtime").JSX.Element;
142
+ export declare const QuillEmptyDashboardComponent: () => import("react/jsx-runtime").JSX.Element;
142
143
  //# sourceMappingURL=UiComponents.d.ts.map