@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
@@ -1,9 +1,9 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
- import { forwardRef, useContext, useEffect, useRef, useState } from 'react';
3
- import { MemoizedSelect, MemoizedCheckbox, MemoizedHeader, MemoizedLabel, MemoizedTabs, LoadingSpinner, MemoizedSecondaryButton, } from '../UiComponents';
2
+ import { forwardRef, useContext, useEffect, useState } from 'react';
3
+ import { MemoizedCheckbox, MemoizedHeader, LoadingSpinner, MemoizedSecondaryButton, MemoizedPopover, } from '../UiComponents';
4
4
  import MemoizedQuillTable from '../QuillTable';
5
5
  import { ThemeContext } from '../../Context';
6
- import { isNodeEmptyCollection } from './util';
6
+ import { isNodeEmptyCollection, allNumericNodesValidInTree } from './util';
7
7
  import { downloadCSV } from '../../utils/csv';
8
8
  import { snakeCaseToTitleCase } from '../../utils/textProcessing';
9
9
  /**
@@ -52,24 +52,7 @@ export const QuillSecondaryButton = ({ children, ...props }) => {
52
52
  ...props.style,
53
53
  }, children: children }));
54
54
  };
55
- export const QuillTextInput = (props) => {
56
- const [theme] = useContext(ThemeContext);
57
- return (_jsx("input", { ...props, style: {
58
- color: theme?.primaryTextColor,
59
- backgroundColor: theme?.backgroundColor || 'white',
60
- fontFamily: theme?.fontFamily,
61
- fontWeight: 'medium',
62
- borderWidth: '1px',
63
- borderColor: theme?.borderColor || '#E7E7E7',
64
- borderStyle: 'solid',
65
- borderRadius: '6px',
66
- boxShadow: 'rgba(0, 0, 0, 0.1) 0px 1px 5px 0px',
67
- padding: '0 12px',
68
- display: 'block',
69
- minHeight: 32,
70
- ...props.style,
71
- } }));
72
- };
55
+ // TODO: remove this, I think it is unused.
73
56
  export const QuillReportBuilderTable = ({ rows, columns, error, ...props }) => {
74
57
  const reformattedColumns = columns.map((c) => ({ label: c, field: c }));
75
58
  return (_jsx("div", { style: { height: '100%', overflow: 'auto' }, children: _jsx(MemoizedQuillTable, { rows: rows, columns: reformattedColumns, rowsPerPage: 10, showDownloadCSVButton: rows?.length > 0, downloadCSV: () => downloadCSV({ rows, fields: reformattedColumns, name: 'my_report' }), emptyStateLabel: error || 'No results', ...props }) }));
@@ -114,20 +97,18 @@ export const QuillTag = forwardRef(({ label, onClick, children, onClickDelete, h
114
97
  }, children: _jsx("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 20 20", fill: theme?.secondaryButtonColor || 'currentColor', style: { width: 16, height: 16 }, children: _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" }) }) }) }))] }));
115
98
  });
116
99
  // A heading element in the sidebar (eg. "Filters")
117
- export const QuillSidebarHeading = ({ label }) => (_jsx(MemoizedHeader, { children: label }));
118
- // A sub-heading element in the sidebar (eg. "Filters")
119
- export const QuillSidebarSubHeading = ({ label }) => (_jsx(MemoizedLabel, { children: label }));
100
+ export const QuillSidebarHeading = ({ label, }) => _jsx(MemoizedHeader, { label: label });
120
101
  // The gray thing on the left.
121
- export const QuillSidebar = forwardRef(({ children, ...props }, forwardedRef) => (_jsx("div", { style: {
102
+ export const QuillSidebar = ({ children }) => (_jsx("div", { style: {
122
103
  overflowX: 'visible',
123
104
  padding: '12px',
124
105
  width: '25%',
125
106
  height: '100%',
126
107
  maxWidth: '300px',
127
108
  boxSizing: 'border-box',
128
- }, ref: forwardedRef, ...props, children: children })));
109
+ }, children: children }));
129
110
  // A big wrapper around the main content (ie. Input, Button, and Table)
130
- export const CustomContainer = forwardRef(({ children, ...props }, forwardedRef) => (_jsx("div", { style: {
111
+ export const CustomContainer = ({ children }) => (_jsx("div", { style: {
131
112
  position: 'sticky',
132
113
  top: 0,
133
114
  display: 'flex',
@@ -140,59 +121,7 @@ export const CustomContainer = forwardRef(({ children, ...props }, forwardedRef)
140
121
  width: '75%',
141
122
  height: '100%',
142
123
  boxSizing: 'border-box',
143
- }, ref: forwardedRef, ...props, children: children })));
144
- export const QuillSelect = ({ onChange, ...props }) => {
145
- const handleOnChange = (value) => {
146
- if (!onChange)
147
- return;
148
- const option = props.options.find((opt) => opt.value === value);
149
- if (option) {
150
- onChange(option.value);
151
- }
152
- };
153
- return _jsx(MemoizedSelect, { ...props, onChange: handleOnChange });
154
- };
155
- export function MemoizedPopover({ onClose, children, style = {}, trigger, isOpen, }) {
156
- const modalRef = useRef(null);
157
- const [theme] = useContext(ThemeContext);
158
- useEffect(() => {
159
- const listener = (event) => {
160
- if (modalRef?.current && !modalRef?.current?.contains(event.target)) {
161
- onClose(event);
162
- }
163
- };
164
- document.addEventListener('mousedown', listener);
165
- return () => {
166
- document.removeEventListener('mousedown', listener);
167
- };
168
- }, [modalRef, onClose]);
169
- return (_jsxs("div", { children: [trigger, isOpen && (_jsx("div", { id: "quill-popover-modal", ref: modalRef, style: { position: 'relative' }, children: _jsx("div", { style: {
170
- background: theme?.backgroundColor || 'white',
171
- position: 'absolute',
172
- boxShadow: '0px 1px 12px 0px rgba(56, 65, 81, 0.1)',
173
- border: theme
174
- ? `${theme.borderWidth || 1}px solid ${theme.borderColor || '#e7e7e7'}`
175
- : '1px solid #e7e7e7',
176
- boxSizing: 'content-box',
177
- zIndex: 999,
178
- top: 12,
179
- borderRadius: 6,
180
- padding: 20,
181
- ...style,
182
- }, children: children }) }))] }));
183
- }
184
- export const QuillPopover = forwardRef(({ children, trigger, isOpen, onClose = () => { }, title = undefined }, ref) => {
185
- const [theme] = useContext(ThemeContext);
186
- return (_jsxs(MemoizedPopover, { isOpen: isOpen, onClose: onClose, trigger: trigger, parentRef: ref, ref: ref, children: [title && (_jsx("h1", { style: {
187
- fontWeight: '600',
188
- fontSize: 18,
189
- margin: 0,
190
- textAlign: 'left',
191
- marginBottom: 5,
192
- color: theme?.primaryTextColor,
193
- fontFamily: theme?.fontFamily,
194
- }, children: title })), children] }));
195
- });
124
+ }, children: children }));
196
125
  // The six-dot grab-handle icon.
197
126
  export const QuillHandleButton = () => {
198
127
  const [theme] = useContext(ThemeContext);
@@ -237,7 +166,7 @@ export const QuillHandleButton = () => {
237
166
  background: '#9CA0A7',
238
167
  } })] })] }));
239
168
  };
240
- export const QuillSelectColumn = ({ label, selected, setSelected, children, }) => {
169
+ export const QuillSelectColumn = ({ label, isSelected, setSelected, DragHandle, }) => {
241
170
  const [theme] = useContext(ThemeContext);
242
171
  return (_jsxs("div", { title: label, style: {
243
172
  boxShadow: '0px 1px 4px #e2e8f005',
@@ -249,13 +178,13 @@ export const QuillSelectColumn = ({ label, selected, setSelected, children, }) =
249
178
  display: 'flex',
250
179
  alignItems: 'center',
251
180
  backgroundColor: theme?.backgroundColor || 'white',
252
- }, children: [_jsx("div", { children: children }), _jsxs("label", { style: {
181
+ }, children: [_jsx(DragHandle, { dragIcon: QuillHandleButton }), _jsxs("label", { style: {
253
182
  display: 'flex',
254
183
  gap: 2,
255
184
  whiteSpace: 'nowrap',
256
185
  textOverflow: 'ellipsis',
257
186
  overflow: 'hidden',
258
- }, children: [_jsx(MemoizedCheckbox, { checked: selected, onChange: () => setSelected() }), _jsx("span", { style: {
187
+ }, children: [_jsx(MemoizedCheckbox, { isChecked: isSelected, onChange: () => setSelected() }), _jsx("span", { style: {
259
188
  marginLeft: 6,
260
189
  display: 'block',
261
190
  whiteSpace: 'nowrap',
@@ -265,8 +194,10 @@ export const QuillSelectColumn = ({ label, selected, setSelected, children, }) =
265
194
  color: theme?.primaryTextColor,
266
195
  }, children: snakeCaseToTitleCase(label) })] })] }));
267
196
  };
268
- // A draggable card with a grab-handle and a column name
269
- export const QuillDraggableColumn = ({ label, children, onDelete }) => {
197
+ /**
198
+ * A draggable card with a grab-handle and a column name
199
+ */
200
+ export const QuillDraggableColumn = ({ label, onDelete, DragHandle, }) => {
270
201
  const [theme] = useContext(ThemeContext);
271
202
  return (_jsxs("div", { style: {
272
203
  boxShadow: '0px 1px 4px #e2e8f005',
@@ -275,13 +206,14 @@ export const QuillDraggableColumn = ({ label, children, onDelete }) => {
275
206
  display: 'flex',
276
207
  alignItems: 'center',
277
208
  backgroundColor: theme?.backgroundColor || 'white',
278
- }, children: [_jsx("div", { children: children }), _jsx("div", { style: {
209
+ }, children: [_jsx(DragHandle, { dragIcon: QuillHandleButton }), _jsx("div", { style: {
279
210
  marginLeft: 2,
280
211
  marginRight: 'auto',
281
212
  fontSize: 14,
282
213
  display: 'block',
283
214
  whiteSpace: 'nowrap',
284
215
  textOverflow: 'ellipsis',
216
+ overflow: 'hidden',
285
217
  fontFamily: theme?.fontFamily,
286
218
  }, children: label }), _jsx("button", { onClick: onDelete, style: {
287
219
  paddingRight: 4,
@@ -299,12 +231,14 @@ export const QuillButtonLoadingState = () => {
299
231
  export const QuillTableLoadingState = () => {
300
232
  return (_jsx("div", { style: { display: 'flex', flexDirection: 'column', margin: 'auto' }, children: _jsx(LoadingSpinner, {}) }));
301
233
  };
302
- export const DEFAULT_TAB_OPTIONS = [
303
- { label: 'or', value: 'OR' },
304
- { label: 'and', value: 'AND' },
305
- ];
306
- export const QuillTabs = forwardRef(({ options = DEFAULT_TAB_OPTIONS, ...props }, ref) => (_jsx(MemoizedTabs, { ref: ref, options: options, ...props })));
307
234
  export const EditPopover = ({ onSave, onDelete, Button, renderNode, activeEditItem, }) => {
235
+ const handleOnClick = () => {
236
+ if (!allNumericNodesValidInTree(activeEditItem)) {
237
+ alert('Please input a number.');
238
+ return;
239
+ }
240
+ onSave();
241
+ };
308
242
  return (_jsxs("div", { style: {
309
243
  display: 'flex',
310
244
  flexDirection: 'column',
@@ -315,41 +249,47 @@ export const EditPopover = ({ onSave, onDelete, Button, renderNode, activeEditIt
315
249
  justifyContent: 'end',
316
250
  gap: 8,
317
251
  width: '100%',
318
- }, children: [_jsx(MemoizedSecondaryButton, { onClick: onDelete, label: "Delete" }), _jsx(Button, { onClick: onSave, label: "Save" })] })] }));
252
+ }, children: [_jsx(MemoizedSecondaryButton, { onClick: onDelete, label: "Delete" }), _jsx(Button, { onClick: handleOnClick, label: "Save" })] })] }));
319
253
  };
320
- export const QuillFilterPopover = ({ filterLabel, onClickDeleteFilter, popoverTitle, popoverChildren, isOpen, setIsOpen, }) => {
321
- return (_jsx(QuillPopover, { isOpen: isOpen, title: popoverTitle, trigger: _jsx(QuillTag, { label: filterLabel, onClickDelete: onClickDeleteFilter, onClick: () => {
322
- setIsOpen((isOpen) => !isOpen);
323
- } }), onClose: () => {
324
- setIsOpen(false);
325
- }, children: popoverChildren }));
254
+ export const QuillFilterPopover = ({ filterLabel, onClickDelete, popoverTitle, popoverChildren, isOpen, setIsOpen, }) => {
255
+ const handleSetIsOpen = (isOpen) => {
256
+ setIsOpen(isOpen);
257
+ };
258
+ return (_jsxs(_Fragment, { children: [_jsx(QuillTag, { label: filterLabel, onClickDelete: onClickDelete, onClick: () => setIsOpen(!isOpen) }), _jsx(MemoizedPopover, { isOpen: isOpen, setIsOpen: handleSetIsOpen, popoverTitle: popoverTitle, popoverChildren: popoverChildren })] }));
259
+ };
260
+ export const QuillSortPopover = ({ sortLabel, onClickDelete, popoverTitle, popoverChildren, isOpen, setIsOpen, }) => {
261
+ return (_jsxs(_Fragment, { children: [_jsx(QuillTag, { label: sortLabel, onClickDelete: onClickDelete, onClick: () => {
262
+ setIsOpen(!isOpen);
263
+ } }), _jsx(MemoizedPopover, { isOpen: isOpen, popoverTitle: popoverTitle, setIsOpen: setIsOpen, popoverChildren: popoverChildren })] }));
326
264
  };
327
- export const QuillSortPopover = ({ filterLabel, onClickDelete, popoverTitle, popoverChildren, isOpen, setIsOpen, }) => {
328
- return (_jsx(QuillPopover, { isOpen: isOpen, title: popoverTitle, trigger: _jsx(QuillTag, { label: filterLabel, onClickDelete: onClickDelete, onClick: () => {
329
- setIsOpen((isOpen) => !isOpen);
330
- } }), onClose: () => {
331
- setIsOpen(false);
332
- }, children: popoverChildren }));
265
+ export const QuillLimitPopover = ({ limitLabel, onClickDelete, popoverTitle, popoverChildren, isOpen, setIsOpen, }) => {
266
+ return (_jsxs(_Fragment, { children: [_jsx(QuillTag, { label: limitLabel, onClickDelete: onClickDelete, onClick: () => {
267
+ setIsOpen(!isOpen);
268
+ } }), _jsx(MemoizedPopover, { isOpen: isOpen, popoverTitle: popoverTitle, setIsOpen: setIsOpen, popoverChildren: popoverChildren })] }));
333
269
  };
334
270
  export const TagWrapper = ({ isCard, isRow, editPopoverKey, keyPrefix, formData, activeEditItem, setEditPopoverKey, setActiveEditItem, setActivePath, setOpenPopover, setIsPending, clearCheckboxes, fetchSqlQuery, handleDelete, setCheckboxes, handleReplaceSubtree, FilterPopover, getByKey, EditPopover, Button, renderNode, children, }) => {
335
271
  const [isOpen, setIsOpen] = useState(false);
272
+ const onOpen = () => {
273
+ setActiveEditItem(getByKey(formData, keyPrefix));
274
+ setActivePath(keyPrefix);
275
+ setIsPending(true);
276
+ setEditPopoverKey(keyPrefix);
277
+ setCheckboxes(getByKey(formData, keyPrefix));
278
+ };
279
+ const onClose = () => {
280
+ setEditPopoverKey(null);
281
+ setIsPending(false);
282
+ setActiveEditItem(null);
283
+ setActivePath(null);
284
+ setOpenPopover(null);
285
+ clearCheckboxes();
286
+ };
336
287
  useEffect(() => {
337
288
  if (isOpen) {
338
- // open
339
- setActiveEditItem(getByKey(formData, keyPrefix));
340
- setActivePath(keyPrefix);
341
- setIsPending(true);
342
- setEditPopoverKey(keyPrefix);
343
- setCheckboxes(getByKey(formData, keyPrefix));
289
+ onOpen();
344
290
  }
345
291
  else {
346
- // closed
347
- setEditPopoverKey(null);
348
- setIsPending(false);
349
- setActiveEditItem(null);
350
- setActivePath(null);
351
- setOpenPopover(null);
352
- clearCheckboxes();
292
+ onClose();
353
293
  }
354
294
  }, [isOpen]);
355
295
  if (isCard && isRow) {
@@ -361,9 +301,10 @@ export const TagWrapper = ({ isCard, isRow, editPopoverKey, keyPrefix, formData,
361
301
  setActivePath(null);
362
302
  setOpenPopover(null);
363
303
  setEditPopoverKey(null);
304
+ fetchSqlQuery();
364
305
  clearCheckboxes();
365
306
  };
366
- return (_jsx("div", { style: { width: '100%' }, children: _jsx(FilterPopover, { isOpen: editPopoverKey === keyPrefix, popoverTitle: "Edit Filter", filterLabel: children, onClickDeleteFilter: handleClickDelete, setIsOpen: setIsOpen, popoverChildren: _jsx(EditPopover, { Button: Button, renderNode: renderNode, activeEditItem: activeEditItem, onSave: () => {
307
+ return (_jsx("div", { style: { width: '100%' }, children: _jsx(FilterPopover, { isOpen: editPopoverKey === keyPrefix, popoverTitle: "Edit Filter", filterLabel: children, onClickDelete: handleClickDelete, setIsOpen: setIsOpen, popoverChildren: _jsx(EditPopover, { Button: Button, renderNode: renderNode, activeEditItem: activeEditItem, onSave: () => {
367
308
  if (isNodeEmptyCollection(activeEditItem)) {
368
309
  setIsPending(false);
369
310
  setActiveEditItem(null);
@@ -402,9 +343,16 @@ export const TagWrapper = ({ isCard, isRow, editPopoverKey, keyPrefix, formData,
402
343
  }
403
344
  };
404
345
  export const AddFilterPopover = ({ onSave, Button, renderNode, activeEditItem, }) => {
346
+ const handleOnClick = () => {
347
+ if (!allNumericNodesValidInTree(activeEditItem)) {
348
+ alert('Please input a number.');
349
+ return;
350
+ }
351
+ onSave();
352
+ };
405
353
  return (_jsxs("div", { style: { display: 'flex', flexDirection: 'column', gap: 12 }, children: [activeEditItem && renderNode(activeEditItem), _jsx("div", { style: {
406
354
  display: 'flex',
407
355
  flexDirection: 'row',
408
356
  justifyContent: 'end',
409
- }, children: _jsx(Button, { onClick: onSave, label: 'Add filter' }) })] }));
357
+ }, children: _jsx(Button, { onClick: handleOnClick, label: 'Add filter' }) })] }));
410
358
  };
@@ -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"}
@@ -627,18 +627,20 @@ function getNodeTable(node) {
627
627
  return null;
628
628
  }
629
629
  // Recursively remove filters that don't apply to the given table
630
- function removeNonSelectedTableFilters(node, table) {
630
+ function removeNonSelectedTableFilters(node, table, columns) {
631
631
  if (node.left.type !== 'binary_expr') {
632
632
  const referencedTable = getNodeTable(node.left);
633
- if (referencedTable && referencedTable !== table) {
633
+ const referencedColumn = node.left.column || node.left.value;
634
+ if ((referencedTable && referencedTable !== table) ||
635
+ !columns.includes(referencedColumn)) {
634
636
  return null;
635
637
  }
636
638
  else {
637
639
  return node;
638
640
  }
639
641
  }
640
- node.left = removeNonSelectedTableFilters(node.left, table);
641
- node.right = removeNonSelectedTableFilters(node.right, table);
642
+ node.left = removeNonSelectedTableFilters(node.left, table, columns);
643
+ node.right = removeNonSelectedTableFilters(node.right, table, columns);
642
644
  if (node.left && node.right) {
643
645
  return node;
644
646
  }
@@ -652,13 +654,35 @@ function removeNonSelectedTableFilters(node, table) {
652
654
  return null;
653
655
  }
654
656
  }
655
- export function removeNonSelectedTableReferences(ast, table) {
657
+ export function removeNonSelectedTableReferences(ast, table, columns) {
656
658
  ast.columns = ast.columns.filter((col) => {
657
659
  return col.table === table || col.expr.table === table || !col.expr.table;
658
660
  });
659
661
  if (!ast.where)
660
662
  return ast;
661
- ast.where = removeNonSelectedTableFilters(ast.where, table);
662
- console.log(ast);
663
+ ast.where = removeNonSelectedTableFilters(ast.where, table, columns);
663
664
  return ast;
664
665
  }
666
+ export function allNumericNodesValidInTree(node) {
667
+ if (!node)
668
+ return true;
669
+ if (node.type === 'number') {
670
+ const value = parseFloat(node.value);
671
+ if (Number.isNaN(value)) {
672
+ return false;
673
+ }
674
+ else {
675
+ node.value = value;
676
+ return true;
677
+ }
678
+ }
679
+ const isLeftValid = allNumericNodesValidInTree(node.left);
680
+ const isRightValid = allNumericNodesValidInTree(node.right);
681
+ return isLeftValid && isRightValid;
682
+ }
683
+ export function isIdColumn(columnName) {
684
+ return (columnName &&
685
+ (columnName.toLowerCase() === 'id' ||
686
+ columnName.toLowerCase().endsWith('_id') ||
687
+ columnName.endsWith('Id')));
688
+ }
@@ -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
@@ -1 +1 @@
1
- {"version":3,"file":"UiComponents.d.ts","sourceRoot":"","sources":["../../../src/components/UiComponents.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"UiComponents.d.ts","sourceRoot":"","sources":["../../../src/components/UiComponents.tsx"],"names":[],"mappings":"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"}