@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.
- package/dist/cjs/Chart.d.ts +117 -42
- package/dist/cjs/Chart.d.ts.map +1 -1
- package/dist/cjs/Chart.js +44 -18
- package/dist/cjs/ChartBuilder.d.ts +195 -28
- package/dist/cjs/ChartBuilder.d.ts.map +1 -1
- package/dist/cjs/ChartBuilder.js +124 -63
- package/dist/cjs/ChartEditor.d.ts +114 -18
- package/dist/cjs/ChartEditor.d.ts.map +1 -1
- package/dist/cjs/ChartEditor.js +47 -15
- package/dist/cjs/Dashboard.d.ts +148 -90
- package/dist/cjs/Dashboard.d.ts.map +1 -1
- package/dist/cjs/Dashboard.js +46 -152
- package/dist/cjs/DateRangePicker/QuillDateRangePicker.d.ts +21 -1
- package/dist/cjs/DateRangePicker/QuillDateRangePicker.d.ts.map +1 -1
- package/dist/cjs/DateRangePicker/QuillDateRangePicker.js +5 -2
- package/dist/cjs/DateRangePicker/dateRangePickerUtils.js +1 -1
- package/dist/cjs/QuillProvider.d.ts +105 -2
- package/dist/cjs/QuillProvider.d.ts.map +1 -1
- package/dist/cjs/QuillProvider.js +59 -0
- package/dist/cjs/ReportBuilder.d.ts +188 -34
- package/dist/cjs/ReportBuilder.d.ts.map +1 -1
- package/dist/cjs/ReportBuilder.js +551 -426
- package/dist/cjs/SQLEditor.d.ts +158 -29
- package/dist/cjs/SQLEditor.d.ts.map +1 -1
- package/dist/cjs/SQLEditor.js +52 -32
- package/dist/cjs/Table.d.ts +119 -15
- package/dist/cjs/Table.d.ts.map +1 -1
- package/dist/cjs/Table.js +37 -6
- package/dist/cjs/TableChart.d.ts.map +1 -1
- package/dist/cjs/TableChart.js +0 -194
- package/dist/cjs/{BarList.d.ts → components/Chart/BarList.d.ts} +1 -1
- package/dist/cjs/components/Chart/BarList.d.ts.map +1 -0
- package/dist/cjs/{BarList.js → components/Chart/BarList.js} +1 -1
- package/dist/cjs/components/Chart/LineChart.d.ts +2 -3
- package/dist/cjs/components/Chart/LineChart.d.ts.map +1 -1
- package/dist/cjs/components/Chart/LineChart.js +3 -3
- package/dist/cjs/components/Chart/PieChart.d.ts.map +1 -0
- package/dist/cjs/{PieChart.js → components/Chart/PieChart.js} +1 -1
- package/dist/cjs/components/Dashboard/ChartComponent.d.ts +2 -1
- package/dist/cjs/components/Dashboard/ChartComponent.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/ChartComponent.js +6 -7
- package/dist/cjs/components/Dashboard/DashboardFilter.d.ts +22 -0
- package/dist/cjs/components/Dashboard/DashboardFilter.d.ts.map +1 -0
- package/dist/cjs/components/Dashboard/DashboardFilter.js +75 -0
- package/dist/cjs/components/Dashboard/DataLoader.d.ts +1 -1
- package/dist/cjs/components/Dashboard/DataLoader.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/DataLoader.js +1 -1
- package/dist/cjs/components/Dashboard/MetricComponent.d.ts +2 -12
- package/dist/cjs/components/Dashboard/MetricComponent.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/MetricComponent.js +39 -17
- package/dist/cjs/components/Dashboard/TableComponent.d.ts +2 -1
- package/dist/cjs/components/Dashboard/TableComponent.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/TableComponent.js +6 -9
- package/dist/cjs/components/QuillSelect.d.ts +4 -1
- package/dist/cjs/components/QuillSelect.d.ts.map +1 -1
- package/dist/cjs/components/QuillSelect.js +13 -8
- package/dist/cjs/components/QuillTable.d.ts +16 -2
- package/dist/cjs/components/QuillTable.d.ts.map +1 -1
- package/dist/cjs/components/QuillTable.js +4 -4
- package/dist/cjs/components/ReportBuilder/AddColumnPopover.d.ts +30 -1
- package/dist/cjs/components/ReportBuilder/AddColumnPopover.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/AddColumnPopover.js +33 -14
- package/dist/cjs/components/ReportBuilder/AddLimitPopover.d.ts +25 -2
- package/dist/cjs/components/ReportBuilder/AddLimitPopover.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/AddLimitPopover.js +19 -19
- package/dist/cjs/components/ReportBuilder/AddSortPopover.d.ts +22 -2
- package/dist/cjs/components/ReportBuilder/AddSortPopover.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/AddSortPopover.js +18 -20
- package/dist/cjs/components/ReportBuilder/bigDateMap.js +1 -1
- package/dist/cjs/components/ReportBuilder/convert.d.ts +2 -1
- package/dist/cjs/components/ReportBuilder/convert.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/convert.js +40 -20
- package/dist/cjs/components/ReportBuilder/pivot.d.ts +2 -1
- package/dist/cjs/components/ReportBuilder/pivot.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/ui.d.ts +83 -19
- package/dist/cjs/components/ReportBuilder/ui.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/ui.js +68 -121
- package/dist/cjs/components/ReportBuilder/util.d.ts +3 -1
- package/dist/cjs/components/ReportBuilder/util.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/util.js +34 -8
- package/dist/cjs/components/UiComponents.d.ts +98 -97
- package/dist/cjs/components/UiComponents.d.ts.map +1 -1
- package/dist/cjs/components/UiComponents.js +132 -112
- package/dist/cjs/hooks/index.d.ts +1 -0
- package/dist/cjs/hooks/index.d.ts.map +1 -1
- package/dist/cjs/hooks/index.js +3 -1
- package/dist/cjs/hooks/useTheme.d.ts +7 -0
- package/dist/cjs/hooks/useTheme.d.ts.map +1 -0
- package/dist/cjs/hooks/useTheme.js +12 -0
- package/dist/cjs/index.d.ts +10 -2
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/internals/ReportBuilder/PivotList.d.ts.map +1 -1
- package/dist/cjs/internals/ReportBuilder/PivotList.js +10 -10
- package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts +29 -14
- package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
- package/dist/cjs/internals/ReportBuilder/PivotModal.js +73 -49
- package/dist/cjs/utils/dataFetcher.d.ts.map +1 -1
- package/dist/cjs/utils/dataFetcher.js +2 -0
- package/dist/cjs/utils/width.d.ts +12 -0
- package/dist/cjs/utils/width.d.ts.map +1 -0
- package/dist/cjs/utils/width.js +25 -0
- package/dist/esm/Chart.d.ts +117 -42
- package/dist/esm/Chart.d.ts.map +1 -1
- package/dist/esm/Chart.js +45 -19
- package/dist/esm/ChartBuilder.d.ts +195 -28
- package/dist/esm/ChartBuilder.d.ts.map +1 -1
- package/dist/esm/ChartBuilder.js +124 -63
- package/dist/esm/ChartEditor.d.ts +114 -18
- package/dist/esm/ChartEditor.d.ts.map +1 -1
- package/dist/esm/ChartEditor.js +51 -19
- package/dist/esm/Dashboard.d.ts +148 -90
- package/dist/esm/Dashboard.d.ts.map +1 -1
- package/dist/esm/Dashboard.js +49 -153
- package/dist/esm/DateRangePicker/QuillDateRangePicker.d.ts +21 -1
- package/dist/esm/DateRangePicker/QuillDateRangePicker.d.ts.map +1 -1
- package/dist/esm/DateRangePicker/QuillDateRangePicker.js +6 -3
- package/dist/esm/DateRangePicker/dateRangePickerUtils.js +1 -1
- package/dist/esm/QuillProvider.d.ts +105 -2
- package/dist/esm/QuillProvider.d.ts.map +1 -1
- package/dist/esm/QuillProvider.js +59 -0
- package/dist/esm/ReportBuilder.d.ts +188 -34
- package/dist/esm/ReportBuilder.d.ts.map +1 -1
- package/dist/esm/ReportBuilder.js +553 -428
- package/dist/esm/SQLEditor.d.ts +158 -29
- package/dist/esm/SQLEditor.d.ts.map +1 -1
- package/dist/esm/SQLEditor.js +53 -33
- package/dist/esm/Table.d.ts +119 -15
- package/dist/esm/Table.d.ts.map +1 -1
- package/dist/esm/Table.js +38 -7
- package/dist/esm/TableChart.d.ts.map +1 -1
- package/dist/esm/TableChart.js +0 -194
- package/dist/esm/{BarList.d.ts → components/Chart/BarList.d.ts} +1 -1
- package/dist/esm/components/Chart/BarList.d.ts.map +1 -0
- package/dist/esm/{BarList.js → components/Chart/BarList.js} +1 -1
- package/dist/esm/components/Chart/LineChart.d.ts +2 -3
- package/dist/esm/components/Chart/LineChart.d.ts.map +1 -1
- package/dist/esm/components/Chart/LineChart.js +3 -3
- package/dist/esm/components/Chart/PieChart.d.ts.map +1 -0
- package/dist/esm/{PieChart.js → components/Chart/PieChart.js} +1 -1
- package/dist/esm/components/Dashboard/ChartComponent.d.ts +2 -1
- package/dist/esm/components/Dashboard/ChartComponent.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/ChartComponent.js +5 -6
- package/dist/esm/components/Dashboard/DashboardFilter.d.ts +22 -0
- package/dist/esm/components/Dashboard/DashboardFilter.d.ts.map +1 -0
- package/dist/esm/components/Dashboard/DashboardFilter.js +71 -0
- package/dist/esm/components/Dashboard/DataLoader.d.ts +1 -1
- package/dist/esm/components/Dashboard/DataLoader.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/DataLoader.js +1 -1
- package/dist/esm/components/Dashboard/MetricComponent.d.ts +2 -12
- package/dist/esm/components/Dashboard/MetricComponent.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/MetricComponent.js +39 -17
- package/dist/esm/components/Dashboard/TableComponent.d.ts +2 -1
- package/dist/esm/components/Dashboard/TableComponent.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/TableComponent.js +6 -9
- package/dist/esm/components/QuillSelect.d.ts +4 -1
- package/dist/esm/components/QuillSelect.d.ts.map +1 -1
- package/dist/esm/components/QuillSelect.js +14 -9
- package/dist/esm/components/QuillTable.d.ts +16 -2
- package/dist/esm/components/QuillTable.d.ts.map +1 -1
- package/dist/esm/components/QuillTable.js +4 -4
- package/dist/esm/components/ReportBuilder/AddColumnPopover.d.ts +30 -1
- package/dist/esm/components/ReportBuilder/AddColumnPopover.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/AddColumnPopover.js +34 -15
- package/dist/esm/components/ReportBuilder/AddLimitPopover.d.ts +25 -2
- package/dist/esm/components/ReportBuilder/AddLimitPopover.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/AddLimitPopover.js +20 -20
- package/dist/esm/components/ReportBuilder/AddSortPopover.d.ts +22 -2
- package/dist/esm/components/ReportBuilder/AddSortPopover.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/AddSortPopover.js +20 -22
- package/dist/esm/components/ReportBuilder/bigDateMap.js +1 -1
- package/dist/esm/components/ReportBuilder/convert.d.ts +2 -1
- package/dist/esm/components/ReportBuilder/convert.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/convert.js +33 -13
- package/dist/esm/components/ReportBuilder/pivot.d.ts +2 -1
- package/dist/esm/components/ReportBuilder/pivot.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/ui.d.ts +83 -19
- package/dist/esm/components/ReportBuilder/ui.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/ui.js +67 -119
- package/dist/esm/components/ReportBuilder/util.d.ts +3 -1
- package/dist/esm/components/ReportBuilder/util.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/util.js +31 -7
- package/dist/esm/components/UiComponents.d.ts +98 -97
- package/dist/esm/components/UiComponents.d.ts.map +1 -1
- package/dist/esm/components/UiComponents.js +125 -110
- package/dist/esm/hooks/index.d.ts +1 -0
- package/dist/esm/hooks/index.d.ts.map +1 -1
- package/dist/esm/hooks/index.js +1 -0
- package/dist/esm/hooks/useTheme.d.ts +7 -0
- package/dist/esm/hooks/useTheme.d.ts.map +1 -0
- package/dist/esm/hooks/useTheme.js +10 -0
- package/dist/esm/index.d.ts +10 -2
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/internals/ReportBuilder/PivotList.d.ts.map +1 -1
- package/dist/esm/internals/ReportBuilder/PivotList.js +10 -10
- package/dist/esm/internals/ReportBuilder/PivotModal.d.ts +29 -14
- package/dist/esm/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
- package/dist/esm/internals/ReportBuilder/PivotModal.js +73 -49
- package/dist/esm/utils/dataFetcher.d.ts.map +1 -1
- package/dist/esm/utils/dataFetcher.js +2 -0
- package/dist/esm/utils/width.d.ts +12 -0
- package/dist/esm/utils/width.d.ts.map +1 -0
- package/dist/esm/utils/width.js +21 -0
- package/package.json +1 -1
- package/dist/cjs/BarList.d.ts.map +0 -1
- package/dist/cjs/PieChart.d.ts.map +0 -1
- package/dist/esm/BarList.d.ts.map +0 -1
- package/dist/esm/PieChart.d.ts.map +0 -1
- /package/dist/cjs/{PieChart.d.ts → components/Chart/PieChart.d.ts} +0 -0
- /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,
|
|
3
|
-
import {
|
|
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
|
-
|
|
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 }) =>
|
|
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 =
|
|
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
|
-
},
|
|
109
|
+
}, children: children }));
|
|
129
110
|
// A big wrapper around the main content (ie. Input, Button, and Table)
|
|
130
|
-
export const CustomContainer =
|
|
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
|
-
},
|
|
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,
|
|
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(
|
|
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, {
|
|
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
|
-
|
|
269
|
-
|
|
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(
|
|
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:
|
|
252
|
+
}, children: [_jsx(MemoizedSecondaryButton, { onClick: onDelete, label: "Delete" }), _jsx(Button, { onClick: handleOnClick, label: "Save" })] })] }));
|
|
319
253
|
};
|
|
320
|
-
export const QuillFilterPopover = ({ filterLabel,
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
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
|
|
328
|
-
return (
|
|
329
|
-
|
|
330
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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,
|
|
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:
|
|
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;
|
|
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
|
-
|
|
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
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
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
|
|
22
|
-
|
|
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
|
-
|
|
39
|
-
|
|
40
|
-
|
|
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:
|
|
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
|
-
|
|
43
|
+
label: string;
|
|
53
44
|
}
|
|
54
45
|
export interface LabelProps {
|
|
55
|
-
|
|
46
|
+
label: string;
|
|
56
47
|
}
|
|
57
48
|
export interface TextProps {
|
|
58
|
-
|
|
49
|
+
label: string;
|
|
59
50
|
}
|
|
60
|
-
export interface
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
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
|
|
82
|
-
value:
|
|
83
|
-
|
|
84
|
-
options:
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
}) => import("react/jsx-runtime").JSX.Element;
|
|
94
|
-
export
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
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
|
|
128
|
-
export declare
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
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
|
|
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":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"UiComponents.d.ts","sourceRoot":"","sources":["../../../src/components/UiComponents.tsx"],"names":[],"mappings":"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"}
|