@quillsql/react 2.11.23 → 2.11.25
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 +16 -0
- package/dist/cjs/Chart.d.ts.map +1 -1
- package/dist/cjs/Chart.js +34 -18
- package/dist/cjs/ChartBuilder.d.ts +55 -2
- package/dist/cjs/ChartBuilder.d.ts.map +1 -1
- package/dist/cjs/ChartBuilder.js +232 -212
- package/dist/cjs/ChartEditor.d.ts +49 -2
- package/dist/cjs/ChartEditor.d.ts.map +1 -1
- package/dist/cjs/ChartEditor.js +3 -3
- package/dist/cjs/Dashboard.d.ts +5 -1
- package/dist/cjs/Dashboard.d.ts.map +1 -1
- package/dist/cjs/Dashboard.js +42 -18
- package/dist/cjs/DateRangePicker/QuillDateRangePicker.d.ts +2 -1
- package/dist/cjs/DateRangePicker/QuillDateRangePicker.d.ts.map +1 -1
- package/dist/cjs/DateRangePicker/QuillDateRangePicker.js +4 -3
- package/dist/cjs/ReportBuilder.d.ts +57 -2
- package/dist/cjs/ReportBuilder.d.ts.map +1 -1
- package/dist/cjs/ReportBuilder.js +962 -684
- package/dist/cjs/SQLEditor.d.ts +83 -2
- package/dist/cjs/SQLEditor.d.ts.map +1 -1
- package/dist/cjs/SQLEditor.js +10 -2
- package/dist/cjs/components/Chart/BarChart.d.ts.map +1 -1
- package/dist/cjs/components/Chart/BarChart.js +8 -6
- package/dist/cjs/components/Chart/BarList.d.ts.map +1 -1
- package/dist/cjs/components/Chart/BarList.js +0 -153
- package/dist/cjs/components/Chart/ChartError.d.ts +1 -1
- package/dist/cjs/components/Chart/ChartError.d.ts.map +1 -1
- package/dist/cjs/components/Chart/ChartError.js +13 -7
- package/dist/cjs/components/Chart/ChartTooltip.d.ts +1 -0
- package/dist/cjs/components/Chart/ChartTooltip.d.ts.map +1 -1
- package/dist/cjs/components/Chart/ChartTooltip.js +6 -7
- package/dist/cjs/components/Chart/LineChart.d.ts +6 -2
- package/dist/cjs/components/Chart/LineChart.d.ts.map +1 -1
- package/dist/cjs/components/Chart/LineChart.js +35 -34
- package/dist/cjs/components/Dashboard/DashboardFilter.d.ts +1 -1
- package/dist/cjs/components/Dashboard/DashboardFilter.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/DashboardFilter.js +21 -21
- package/dist/cjs/components/Dashboard/DataLoader.d.ts +24 -0
- package/dist/cjs/components/Dashboard/DataLoader.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/DataLoader.js +84 -0
- package/dist/cjs/components/Dashboard/MetricComponent.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/MetricComponent.js +4 -1
- package/dist/cjs/components/QuillSelect.js +1 -1
- package/dist/cjs/components/QuillTable.d.ts.map +1 -1
- package/dist/cjs/components/QuillTable.js +11 -12
- package/dist/cjs/components/ReportBuilder/{AddColumnPopover.d.ts → AddColumnModal.d.ts} +3 -2
- package/dist/cjs/components/ReportBuilder/AddColumnModal.d.ts.map +1 -0
- package/dist/cjs/components/ReportBuilder/{AddColumnPopover.js → AddColumnModal.js} +12 -8
- package/dist/cjs/components/ReportBuilder/AddLimitPopover.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/AddLimitPopover.js +1 -1
- package/dist/cjs/components/ReportBuilder/AddSortPopover.d.ts +1 -1
- package/dist/cjs/components/ReportBuilder/AddSortPopover.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/AddSortPopover.js +5 -5
- package/dist/cjs/components/ReportBuilder/ast.d.ts +6 -0
- package/dist/cjs/components/ReportBuilder/ast.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/ast.js +13 -2
- package/dist/cjs/components/ReportBuilder/constants.d.ts +13 -0
- package/dist/cjs/components/ReportBuilder/constants.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/constants.js +14 -1
- package/dist/cjs/components/ReportBuilder/convert.d.ts +18 -1
- package/dist/cjs/components/ReportBuilder/convert.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/convert.js +14 -3
- package/dist/cjs/components/ReportBuilder/operators.d.ts +15 -23
- package/dist/cjs/components/ReportBuilder/operators.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/operators.js +19 -27
- package/dist/cjs/components/ReportBuilder/pivot.d.ts +2 -0
- package/dist/cjs/components/ReportBuilder/pivot.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/ui.d.ts +3 -2
- package/dist/cjs/components/ReportBuilder/ui.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/ui.js +54 -28
- package/dist/cjs/components/ReportBuilder/util.d.ts +1 -1
- package/dist/cjs/components/ReportBuilder/util.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/util.js +3 -0
- package/dist/cjs/components/UiComponents.d.ts +34 -4
- package/dist/cjs/components/UiComponents.d.ts.map +1 -1
- package/dist/cjs/components/UiComponents.js +165 -68
- package/dist/cjs/hooks/useQuill.d.ts +1 -0
- package/dist/cjs/hooks/useQuill.d.ts.map +1 -1
- package/dist/cjs/internals/ReportBuilder/PivotList.d.ts +1 -2
- package/dist/cjs/internals/ReportBuilder/PivotList.d.ts.map +1 -1
- package/dist/cjs/internals/ReportBuilder/PivotList.js +5 -7
- package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts +31 -5
- package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
- package/dist/cjs/internals/ReportBuilder/PivotModal.js +442 -282
- package/dist/cjs/utils/axisFormatter.js +3 -3
- package/dist/cjs/utils/getDomain.d.ts.map +1 -1
- package/dist/cjs/utils/getDomain.js +3 -0
- package/dist/cjs/utils/merge.d.ts.map +1 -1
- package/dist/cjs/utils/merge.js +2 -0
- package/dist/cjs/utils/pivotProcessing.d.ts +20 -0
- package/dist/cjs/utils/pivotProcessing.d.ts.map +1 -0
- package/dist/cjs/utils/pivotProcessing.js +177 -0
- package/dist/cjs/utils/queryConstructor.d.ts +2 -0
- package/dist/cjs/utils/queryConstructor.d.ts.map +1 -0
- package/dist/cjs/utils/queryConstructor.js +11 -0
- package/dist/cjs/utils/tableProcessing.d.ts +7 -0
- package/dist/cjs/utils/tableProcessing.d.ts.map +1 -0
- package/dist/cjs/utils/tableProcessing.js +84 -0
- package/dist/cjs/utils/valueFormatter.d.ts.map +1 -1
- package/dist/cjs/utils/valueFormatter.js +40 -8
- package/dist/esm/Chart.d.ts +16 -0
- package/dist/esm/Chart.d.ts.map +1 -1
- package/dist/esm/Chart.js +35 -19
- package/dist/esm/ChartBuilder.d.ts +55 -2
- package/dist/esm/ChartBuilder.d.ts.map +1 -1
- package/dist/esm/ChartBuilder.js +234 -214
- package/dist/esm/ChartEditor.d.ts +49 -2
- package/dist/esm/ChartEditor.d.ts.map +1 -1
- package/dist/esm/ChartEditor.js +4 -4
- package/dist/esm/Dashboard.d.ts +5 -1
- package/dist/esm/Dashboard.d.ts.map +1 -1
- package/dist/esm/Dashboard.js +21 -20
- package/dist/esm/DateRangePicker/QuillDateRangePicker.d.ts +2 -1
- package/dist/esm/DateRangePicker/QuillDateRangePicker.d.ts.map +1 -1
- package/dist/esm/DateRangePicker/QuillDateRangePicker.js +4 -3
- package/dist/esm/ReportBuilder.d.ts +57 -2
- package/dist/esm/ReportBuilder.d.ts.map +1 -1
- package/dist/esm/ReportBuilder.js +964 -687
- package/dist/esm/SQLEditor.d.ts +83 -2
- package/dist/esm/SQLEditor.d.ts.map +1 -1
- package/dist/esm/SQLEditor.js +11 -3
- package/dist/esm/components/Chart/BarChart.d.ts.map +1 -1
- package/dist/esm/components/Chart/BarChart.js +8 -6
- package/dist/esm/components/Chart/BarList.d.ts.map +1 -1
- package/dist/esm/components/Chart/BarList.js +0 -153
- package/dist/esm/components/Chart/ChartError.d.ts +1 -1
- package/dist/esm/components/Chart/ChartError.d.ts.map +1 -1
- package/dist/esm/components/Chart/ChartError.js +13 -7
- package/dist/esm/components/Chart/ChartTooltip.d.ts +1 -0
- package/dist/esm/components/Chart/ChartTooltip.d.ts.map +1 -1
- package/dist/esm/components/Chart/ChartTooltip.js +6 -7
- package/dist/esm/components/Chart/LineChart.d.ts +6 -2
- package/dist/esm/components/Chart/LineChart.d.ts.map +1 -1
- package/dist/esm/components/Chart/LineChart.js +35 -34
- package/dist/esm/components/Dashboard/DashboardFilter.d.ts +1 -1
- package/dist/esm/components/Dashboard/DashboardFilter.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/DashboardFilter.js +21 -21
- package/dist/esm/components/Dashboard/DataLoader.d.ts +24 -0
- package/dist/esm/components/Dashboard/DataLoader.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/DataLoader.js +82 -0
- package/dist/esm/components/Dashboard/MetricComponent.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/MetricComponent.js +4 -1
- package/dist/esm/components/QuillSelect.js +1 -1
- package/dist/esm/components/QuillTable.d.ts.map +1 -1
- package/dist/esm/components/QuillTable.js +11 -12
- package/dist/esm/components/ReportBuilder/{AddColumnPopover.d.ts → AddColumnModal.d.ts} +3 -2
- package/dist/esm/components/ReportBuilder/AddColumnModal.d.ts.map +1 -0
- package/dist/esm/components/ReportBuilder/{AddColumnPopover.js → AddColumnModal.js} +11 -7
- package/dist/esm/components/ReportBuilder/AddLimitPopover.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/AddLimitPopover.js +1 -1
- package/dist/esm/components/ReportBuilder/AddSortPopover.d.ts +1 -1
- package/dist/esm/components/ReportBuilder/AddSortPopover.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/AddSortPopover.js +5 -5
- package/dist/esm/components/ReportBuilder/ast.d.ts +6 -0
- package/dist/esm/components/ReportBuilder/ast.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/ast.js +11 -1
- package/dist/esm/components/ReportBuilder/constants.d.ts +13 -0
- package/dist/esm/components/ReportBuilder/constants.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/constants.js +13 -0
- package/dist/esm/components/ReportBuilder/convert.d.ts +18 -1
- package/dist/esm/components/ReportBuilder/convert.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/convert.js +14 -3
- package/dist/esm/components/ReportBuilder/operators.d.ts +15 -23
- package/dist/esm/components/ReportBuilder/operators.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/operators.js +19 -27
- package/dist/esm/components/ReportBuilder/pivot.d.ts +2 -0
- package/dist/esm/components/ReportBuilder/pivot.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/ui.d.ts +3 -2
- package/dist/esm/components/ReportBuilder/ui.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/ui.js +55 -29
- package/dist/esm/components/ReportBuilder/util.d.ts +1 -1
- package/dist/esm/components/ReportBuilder/util.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/util.js +3 -0
- package/dist/esm/components/UiComponents.d.ts +34 -4
- package/dist/esm/components/UiComponents.d.ts.map +1 -1
- package/dist/esm/components/UiComponents.js +155 -66
- package/dist/esm/hooks/useQuill.d.ts +1 -0
- package/dist/esm/hooks/useQuill.d.ts.map +1 -1
- package/dist/esm/internals/ReportBuilder/PivotList.d.ts +1 -2
- package/dist/esm/internals/ReportBuilder/PivotList.d.ts.map +1 -1
- package/dist/esm/internals/ReportBuilder/PivotList.js +5 -7
- package/dist/esm/internals/ReportBuilder/PivotModal.d.ts +31 -5
- package/dist/esm/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
- package/dist/esm/internals/ReportBuilder/PivotModal.js +443 -284
- package/dist/esm/utils/axisFormatter.js +3 -3
- package/dist/esm/utils/getDomain.d.ts.map +1 -1
- package/dist/esm/utils/getDomain.js +3 -0
- package/dist/esm/utils/merge.d.ts.map +1 -1
- package/dist/esm/utils/merge.js +2 -0
- package/dist/esm/utils/pivotProcessing.d.ts +20 -0
- package/dist/esm/utils/pivotProcessing.d.ts.map +1 -0
- package/dist/esm/utils/pivotProcessing.js +170 -0
- package/dist/esm/utils/queryConstructor.d.ts +2 -0
- package/dist/esm/utils/queryConstructor.d.ts.map +1 -0
- package/dist/esm/utils/queryConstructor.js +7 -0
- package/dist/esm/utils/tableProcessing.d.ts +7 -0
- package/dist/esm/utils/tableProcessing.d.ts.map +1 -0
- package/dist/esm/utils/tableProcessing.js +80 -0
- package/dist/esm/utils/valueFormatter.d.ts.map +1 -1
- package/dist/esm/utils/valueFormatter.js +41 -9
- package/package.json +1 -1
- package/dist/cjs/components/ReportBuilder/AddColumnPopover.d.ts.map +0 -1
- package/dist/esm/components/ReportBuilder/AddColumnPopover.d.ts.map +0 -1
|
@@ -13,11 +13,8 @@ const ChartTooltip_1 = __importDefault(require("../../components/Chart/ChartTool
|
|
|
13
13
|
const getDomain_1 = __importDefault(require("../../utils/getDomain"));
|
|
14
14
|
const react_1 = require("react");
|
|
15
15
|
const crypto_1 = require("../../utils/crypto");
|
|
16
|
-
function LineChart({ colors, colorMap = {}, yAxisFields, data, containerStyle, className, xAxisField, xAxisFormat, theme, comparison, isAnimationActive = true, hideXAxis = false, hideYAxis = false, hideCartesianGrid = false, comparisonLineStyle = 'solid', }) {
|
|
16
|
+
function LineChart({ colors, colorMap = {}, yAxisFields, data, containerStyle, className, xAxisField, xAxisFormat, theme, comparison, isAnimationActive = true, hideXAxis = false, hideYAxis = false, hideCartesianGrid = false, hideHorizontalCartesianGrid = false, hideVerticalCartesianGrid = true, hideSubsequentXAxisTicks = false, cartesianGridLineStyle = 'solid', comparisonLineStyle = 'solid', }) {
|
|
17
17
|
const [formattedData, setFormattedData] = (0, react_1.useState)([]);
|
|
18
|
-
if (!yAxisFields || !yAxisFields.length) {
|
|
19
|
-
return null;
|
|
20
|
-
}
|
|
21
18
|
(0, react_1.useEffect)(() => {
|
|
22
19
|
if (!data || data.length === 0) {
|
|
23
20
|
return;
|
|
@@ -69,13 +66,13 @@ function LineChart({ colors, colorMap = {}, yAxisFields, data, containerStyle, c
|
|
|
69
66
|
}
|
|
70
67
|
return undefined; // use the default colors from the theme
|
|
71
68
|
};
|
|
72
|
-
return ((0, jsx_runtime_1.jsx)("div", { style: { ...containerStyle }, className: className, children: (0, jsx_runtime_1.jsx)(recharts_1.ResponsiveContainer, { width: "100%", height: '100%', children: (0, jsx_runtime_1.jsxs)(recharts_1.ComposedChart, { data: formattedData, children: [!hideCartesianGrid && ((0, jsx_runtime_1.jsx)(recharts_1.CartesianGrid, { horizontal:
|
|
69
|
+
return ((0, jsx_runtime_1.jsx)("div", { style: { ...containerStyle }, className: className, children: (0, jsx_runtime_1.jsx)(recharts_1.ResponsiveContainer, { width: "100%", height: '100%', children: (0, jsx_runtime_1.jsxs)(recharts_1.ComposedChart, { data: formattedData, children: [!hideCartesianGrid && ((0, jsx_runtime_1.jsx)(recharts_1.CartesianGrid, { horizontal: !hideHorizontalCartesianGrid, vertical: !hideVerticalCartesianGrid, stroke: "#e5e7eb", strokeDasharray: cartesianGridLineStyle === 'dashed' ? '5 5' : undefined })), (0, jsx_runtime_1.jsx)(recharts_1.XAxis, { dataKey: xAxisField, hide: hideXAxis, tick: { transform: 'translate(0, 6)' }, style: {
|
|
73
70
|
fontSize: '12px',
|
|
74
71
|
fontFamily: theme?.chartLabelFontFamily ||
|
|
75
72
|
theme?.fontFamily ||
|
|
76
73
|
'Inter; Helvetica',
|
|
77
74
|
color: theme?.chartLabelColor || '#666666',
|
|
78
|
-
}, interval:
|
|
75
|
+
}, interval: hideSubsequentXAxisTicks ? 999 : 'preserveStartEnd', tickLine: false, axisLine: false, minTickGap: 5, tickFormatter: (tick) => {
|
|
79
76
|
return (0, axisFormatter_1.axisFormatter)({
|
|
80
77
|
value: tick,
|
|
81
78
|
field: xAxisField,
|
|
@@ -87,14 +84,16 @@ function LineChart({ colors, colorMap = {}, yAxisFields, data, containerStyle, c
|
|
|
87
84
|
theme?.fontFamily ||
|
|
88
85
|
'Inter; Helvetica',
|
|
89
86
|
color: theme?.chartLabelColor || '#666666',
|
|
90
|
-
}, tickFormatter: (value) =>
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
87
|
+
}, tickFormatter: (value) => yAxisFields && yAxisFields.length > 0
|
|
88
|
+
? (0, axisFormatter_1.axisFormatter)({
|
|
89
|
+
value,
|
|
90
|
+
field: yAxisFields[0].field,
|
|
91
|
+
fields: [
|
|
92
|
+
...yAxisFields,
|
|
93
|
+
{ field: xAxisField, format: xAxisFormat },
|
|
94
|
+
],
|
|
95
|
+
})
|
|
96
|
+
: value }), (0, jsx_runtime_1.jsx)(recharts_1.Tooltip, { wrapperStyle: { outline: 'none', zIndex: 2 }, isAnimationActive: false, cursor: { stroke: '#d1d5db', strokeWidth: 1 }, content: ({ active, payload, label }) => {
|
|
98
97
|
let label2;
|
|
99
98
|
if (comparison &&
|
|
100
99
|
payload?.length > 1 &&
|
|
@@ -112,25 +111,27 @@ function LineChart({ colors, colorMap = {}, yAxisFields, data, containerStyle, c
|
|
|
112
111
|
...yAxisFields,
|
|
113
112
|
{ field: xAxisField, format: xAxisFormat },
|
|
114
113
|
],
|
|
115
|
-
}), xAxisFormat: xAxisFormat, xAxisField: xAxisField, colors: colors, theme: theme }));
|
|
116
|
-
}, position: { y: 0 } }), yAxisFields
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
getCustomColor(index, elem.field) ??
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
(0,
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
114
|
+
}), xAxisFormat: xAxisFormat, xAxisField: xAxisField, colors: colors, theme: theme, comparison: comparison }));
|
|
115
|
+
}, position: { y: 0 } }), yAxisFields &&
|
|
116
|
+
yAxisFields.map((elem, index) => {
|
|
117
|
+
// hash the color stops so they're stable, valid html ids
|
|
118
|
+
const gradientStart = getCustomColor(index, elem.field, 'start') ??
|
|
119
|
+
getCustomColor(index, elem.field) ??
|
|
120
|
+
(0, color_1.selectColor)(elem, colors, index);
|
|
121
|
+
const gradientStop = getCustomColor(index, elem.field, 'stop') ?? '#00000000';
|
|
122
|
+
const uniqueId = `gradient_${(0, crypto_1.hashCode)(gradientStart)}_${(0, crypto_1.hashCode)(gradientStop)}`;
|
|
123
|
+
return ((0, jsx_runtime_1.jsx)("defs", { children: (0, jsx_runtime_1.jsxs)("linearGradient", { id: uniqueId, x1: "0", y1: "0", x2: "0", y2: "1", children: [(0, jsx_runtime_1.jsx)("stop", { offset: "5%", stopColor: gradientStart, stopOpacity: 0.4 }), (0, jsx_runtime_1.jsx)("stop", { offset: "95%", stopColor: gradientStop, stopOpacity: 0 })] }) }, `defs_${uniqueId}_${index}`));
|
|
124
|
+
}), yAxisFields &&
|
|
125
|
+
yAxisFields.map((elem, index) => {
|
|
126
|
+
const gradientStart = (0, crypto_1.hashCode)(getCustomColor(index, elem.field, 'start') ??
|
|
127
|
+
getCustomColor(index, elem.field) ??
|
|
128
|
+
(0, color_1.selectColor)(elem, colors, index));
|
|
129
|
+
const gradientStop = (0, crypto_1.hashCode)(getCustomColor(index, elem.field, 'stop') ?? '#00000000');
|
|
130
|
+
const uniqueId = `gradient_${gradientStart}_${gradientStop}`;
|
|
131
|
+
return ((0, jsx_runtime_1.jsx)(recharts_1.Area, { name: elem.label, type: "linear", dataKey: elem.field, stroke: getCustomColor(index, elem.field) ??
|
|
132
|
+
(0, color_1.selectColor)(elem, colors, index), fill: `url(#${uniqueId})`, strokeWidth: 2, dot: false, strokeDasharray: comparison && comparisonLineStyle === 'dashed' && index > 0
|
|
133
|
+
? '5 5'
|
|
134
|
+
: undefined, isAnimationActive: isAnimationActive }, elem.field));
|
|
135
|
+
})] }) }) }));
|
|
135
136
|
}
|
|
136
137
|
exports.default = LineChart;
|
|
@@ -10,7 +10,7 @@ type SelectComponentType = ({ label, value, options, onChange, width, }: {
|
|
|
10
10
|
}[];
|
|
11
11
|
onChange: (event: React.ChangeEvent<HTMLSelectElement>) => void;
|
|
12
12
|
}) => JSX.Element;
|
|
13
|
-
type DateRangePickerComponentType = ({ dateRange, onChangeDateRange, presetOptions, onChangePreset, preset, }: DateRangePickerComponentProps) => JSX.Element;
|
|
13
|
+
type DateRangePickerComponentType = ({ dateRange, onChangeDateRange, presetOptions, onChangePreset, preset, selectWidth, }: DateRangePickerComponentProps) => JSX.Element;
|
|
14
14
|
interface DashboardFilterProps {
|
|
15
15
|
filter: any;
|
|
16
16
|
onChangeFilter: (...args: any[]) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DashboardFilter.d.ts","sourceRoot":"","sources":["../../../../src/components/Dashboard/DashboardFilter.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAGnD,OAAO,EAAE,KAAK,6BAA6B,EAAE,MAAM,4CAA4C,CAAC;AAEhG,KAAK,mBAAmB,GAAG,CAAC,EAC1B,KAAK,EACL,KAAK,EACL,OAAO,EACP,QAAQ,EACR,KAAK,GACN,EAAE;IACD,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;KACf,EAAE,CAAC;IACJ,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;CACjE,KAAK,GAAG,CAAC,OAAO,CAAC;AAElB,KAAK,4BAA4B,GAAG,CAAC,EACnC,SAAS,EACT,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,MAAM,
|
|
1
|
+
{"version":3,"file":"DashboardFilter.d.ts","sourceRoot":"","sources":["../../../../src/components/Dashboard/DashboardFilter.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAGnD,OAAO,EAAE,KAAK,6BAA6B,EAAE,MAAM,4CAA4C,CAAC;AAEhG,KAAK,mBAAmB,GAAG,CAAC,EAC1B,KAAK,EACL,KAAK,EACL,OAAO,EACP,QAAQ,EACR,KAAK,GACN,EAAE;IACD,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;KACf,EAAE,CAAC;IACJ,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;CACjE,KAAK,GAAG,CAAC,OAAO,CAAC;AAElB,KAAK,4BAA4B,GAAG,CAAC,EACnC,SAAS,EACT,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,MAAM,EACN,WAAW,GACZ,EAAE,6BAA6B,KAAK,GAAG,CAAC,OAAO,CAAC;AAEjD,UAAU,oBAAoB;IAC5B,MAAM,EAAE,GAAG,CAAC;IACZ,cAAc,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;IACzC,eAAe,EACX,mBAAmB,GACnB,KAAK,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,CAAC;IACnD,wBAAwB,EACpB,4BAA4B,GAC5B,KAAK,CAAC,mBAAmB,CAAC,4BAA4B,CAAC,CAAC;IAC5D,KAAK,EAAE,GAAG,CAAC;CACZ;AAED,wBAAgB,eAAe,CAAC,EAC9B,MAAM,EACN,cAAc,EACd,eAAe,EACf,wBAAwB,EACxB,KAAK,GACN,EAAE,oBAAoB,kDAgHtB"}
|
|
@@ -48,27 +48,27 @@ function DashboardFilter({ filter, onChangeFilter, SelectComponent, DateRangePic
|
|
|
48
48
|
onChangeFilter(filter, { preset: e.target.value });
|
|
49
49
|
}, presetOptions: filter.options.map((option) => {
|
|
50
50
|
return { label: option.label, value: option.label };
|
|
51
|
-
}) }), comparisonRange && ((0, jsx_runtime_1.
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
51
|
+
}), selectWidth: 200 }), comparisonRange && ((0, jsx_runtime_1.jsxs)("div", { style: {
|
|
52
|
+
display: 'flex',
|
|
53
|
+
flexDirection: 'row',
|
|
54
|
+
alignItems: 'center',
|
|
55
|
+
}, children: [(0, jsx_runtime_1.jsx)("div", { style: {
|
|
56
|
+
paddingLeft: 16,
|
|
57
|
+
paddingRight: 12,
|
|
58
|
+
color: theme?.secondaryTextColor,
|
|
59
|
+
fontFamily: theme?.fontFamily,
|
|
60
|
+
fontSize: 14,
|
|
61
|
+
display: 'flex',
|
|
62
|
+
alignItems: 'center',
|
|
63
|
+
flex: 1,
|
|
64
|
+
minWidth: 80,
|
|
65
|
+
justifyContent: 'center',
|
|
66
|
+
}, children: "compared to" }), (0, jsx_runtime_1.jsx)(SelectComponent, { value: comparisonRange.value, onChange: (e) => {
|
|
67
|
+
onChangeFilter(filter, null, dateRangePickerUtils_1.COMPARISON_OPTIONS.find((option) => option.value === e.target.value));
|
|
68
|
+
}, options: dateRangePickerUtils_1.COMPARISON_OPTIONS.map((compareOption) => ({
|
|
69
|
+
value: compareOption.value,
|
|
70
|
+
label: compareOption.text,
|
|
71
|
+
})), width: 200 })] }))] }));
|
|
72
72
|
}
|
|
73
73
|
return null;
|
|
74
74
|
}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
+
import { DashboardItem } from '../../Dashboard';
|
|
3
|
+
import { QuillTheme } from '../../QuillProvider';
|
|
2
4
|
export type DataLoaderChildProps = {
|
|
3
5
|
isLoading: boolean;
|
|
4
6
|
error?: string;
|
|
@@ -7,4 +9,26 @@ export default function DataLoader({ id, children, }: {
|
|
|
7
9
|
id: string;
|
|
8
10
|
children: ({ isLoading, error }: DataLoaderChildProps) => JSX.Element;
|
|
9
11
|
}): JSX.Element;
|
|
12
|
+
type ColorMapType = {
|
|
13
|
+
[key: string]: {
|
|
14
|
+
primary: string;
|
|
15
|
+
comparison?: string;
|
|
16
|
+
primaryGradientStart?: string;
|
|
17
|
+
primaryGradientStop?: string;
|
|
18
|
+
comparisonGradientStart?: string;
|
|
19
|
+
comparisonGradientStop?: string;
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
export type ChartDataLoaderChildProps = {
|
|
23
|
+
isLoading: boolean;
|
|
24
|
+
error?: string;
|
|
25
|
+
data?: any;
|
|
26
|
+
};
|
|
27
|
+
export declare const ChartDataLoader: ({ id, children, hideDateRangeFilter, }: {
|
|
28
|
+
id: string;
|
|
29
|
+
hideDateRangeFilter?: boolean | undefined;
|
|
30
|
+
mapColorsToFields?: ((_dashboardItem: DashboardItem, _theme: QuillTheme) => ColorMapType) | undefined;
|
|
31
|
+
children: ({ isLoading, error, data, }: ChartDataLoaderChildProps) => JSX.Element;
|
|
32
|
+
}) => JSX.Element;
|
|
33
|
+
export {};
|
|
10
34
|
//# sourceMappingURL=DataLoader.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataLoader.d.ts","sourceRoot":"","sources":["../../../../src/components/Dashboard/DataLoader.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"DataLoader.d.ts","sourceRoot":"","sources":["../../../../src/components/Dashboard/DataLoader.tsx"],"names":[],"mappings":";AAOA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAIjD,MAAM,MAAM,oBAAoB,GAAG;IACjC,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EACjC,EAAE,EACF,QAAQ,GACT,EAAE;IACD,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,oBAAoB,KAAK,GAAG,CAAC,OAAO,CAAC;CACvE,GAAG,GAAG,CAAC,OAAO,CA+Ed;AAED,KAAK,YAAY,GAAG;IAClB,CAAC,GAAG,EAAE,MAAM,GAAG;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,oBAAoB,CAAC,EAAE,MAAM,CAAC;QAC9B,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,uBAAuB,CAAC,EAAE,MAAM,CAAC;QACjC,sBAAsB,CAAC,EAAE,MAAM,CAAC;KACjC,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,GAAG,CAAC;CACZ,CAAC;AAIF,eAAO,MAAM,eAAe;QAKtB,MAAM;;0CAGQ,aAAa,UACrB,UAAU,KACf,YAAY;4CAKd,yBAAyB,KAAK,WAAW;MAC1C,WA0FH,CAAC"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ChartDataLoader = void 0;
|
|
3
4
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
4
5
|
const react_1 = require("react");
|
|
5
6
|
const Chart_1 = require("../../Chart");
|
|
6
7
|
const Context_1 = require("../../Context");
|
|
8
|
+
const hooks_1 = require("../../hooks");
|
|
7
9
|
const dataFetcher_1 = require("../../utils/dataFetcher");
|
|
8
10
|
const merge_1 = require("../../utils/merge");
|
|
9
11
|
function DataLoader({ id, children, }) {
|
|
@@ -76,3 +78,85 @@ function DataLoader({ id, children, }) {
|
|
|
76
78
|
return (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: children({ isLoading, error }) });
|
|
77
79
|
}
|
|
78
80
|
exports.default = DataLoader;
|
|
81
|
+
// The same data-loader pattern as above, but with special logic for charts
|
|
82
|
+
// At some point these may be able to get merged into one function.
|
|
83
|
+
const ChartDataLoader = ({ id, children, hideDateRangeFilter = false, }) => {
|
|
84
|
+
const { dispatch, dashboard } = (0, react_1.useContext)(Context_1.DashboardContext);
|
|
85
|
+
const { dashboardFilters } = (0, react_1.useContext)(Context_1.DashboardFiltersContext);
|
|
86
|
+
const [initialLoad, setInitialLoad] = (0, react_1.useState)(true);
|
|
87
|
+
const [loading, setLoading] = (0, react_1.useState)(false);
|
|
88
|
+
const [error, setError] = (0, react_1.useState)(undefined);
|
|
89
|
+
const [isComparison, setIsComparison] = (0, react_1.useState)(false);
|
|
90
|
+
const [client, _] = (0, react_1.useContext)(Context_1.ClientContext);
|
|
91
|
+
const theme = (0, hooks_1.useTheme)();
|
|
92
|
+
(0, react_1.useEffect)(() => {
|
|
93
|
+
async function getChartOptions() {
|
|
94
|
+
setLoading(true);
|
|
95
|
+
if (!(0, Chart_1.didFiltersChange)(dashboard[id], dashboardFilters)) {
|
|
96
|
+
setLoading(false);
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
try {
|
|
100
|
+
// Remove extra fields on each filter so we don't confuse the backend.
|
|
101
|
+
const allowDateRange = !hideDateRangeFilter;
|
|
102
|
+
const minimalFilters = Object.values(dashboardFilters).length
|
|
103
|
+
? Object.values(dashboardFilters)
|
|
104
|
+
.filter((f) => allowDateRange || f.filterType !== 'date_range')
|
|
105
|
+
.map((filter) => {
|
|
106
|
+
const newFilter = { ...filter };
|
|
107
|
+
if (newFilter.filterType === 'date_range') {
|
|
108
|
+
delete newFilter['field'];
|
|
109
|
+
delete newFilter['options'];
|
|
110
|
+
delete newFilter['selectedValue'];
|
|
111
|
+
}
|
|
112
|
+
return newFilter;
|
|
113
|
+
})
|
|
114
|
+
: [];
|
|
115
|
+
const hostedBody = {
|
|
116
|
+
metadata: {
|
|
117
|
+
dashboardItemId: id,
|
|
118
|
+
orgId: client.customerId || '*',
|
|
119
|
+
clientId: client.publicKey,
|
|
120
|
+
task: 'item',
|
|
121
|
+
databaseType: client.databaseType,
|
|
122
|
+
filters: minimalFilters,
|
|
123
|
+
},
|
|
124
|
+
};
|
|
125
|
+
const cloudBody = {
|
|
126
|
+
id: id,
|
|
127
|
+
filters: minimalFilters,
|
|
128
|
+
};
|
|
129
|
+
setError(undefined);
|
|
130
|
+
const resp = await (0, dataFetcher_1.getData)(client, 'itempost', 'omit', hostedBody, cloudBody);
|
|
131
|
+
if (resp && resp.name !== 'error' && !resp.errorMessage) {
|
|
132
|
+
setIsComparison(!!resp.compareRows?.length);
|
|
133
|
+
if (resp.compareRows) {
|
|
134
|
+
(0, merge_1.mergeComparisonRange)(resp);
|
|
135
|
+
}
|
|
136
|
+
const dashboardItem = { ...resp, filtersApplied: dashboardFilters };
|
|
137
|
+
dispatch({
|
|
138
|
+
type: 'UPDATE_DASHBOARD_ITEM',
|
|
139
|
+
id: id,
|
|
140
|
+
data: dashboardItem,
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
else {
|
|
144
|
+
setError(resp?.errorMessage);
|
|
145
|
+
}
|
|
146
|
+
setLoading(false);
|
|
147
|
+
}
|
|
148
|
+
catch (e) {
|
|
149
|
+
console.log('Error fetching chart: ', e);
|
|
150
|
+
setLoading(false);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
setInitialLoad(false);
|
|
154
|
+
getChartOptions();
|
|
155
|
+
}, [dashboardFilters, client, id]);
|
|
156
|
+
return children({
|
|
157
|
+
isLoading: loading || initialLoad,
|
|
158
|
+
data: loading || initialLoad ? undefined : dashboard[id],
|
|
159
|
+
error,
|
|
160
|
+
});
|
|
161
|
+
};
|
|
162
|
+
exports.ChartDataLoader = ChartDataLoader;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MetricComponent.d.ts","sourceRoot":"","sources":["../../../../src/components/Dashboard/MetricComponent.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AASrD,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAC,EAC3C,aAAa,EACb,OAAO,EACP,KAAK,EACL,SAAS,GACV,EAAE,kBAAkB,GAAG,GAAG,CAAC,OAAO,
|
|
1
|
+
{"version":3,"file":"MetricComponent.d.ts","sourceRoot":"","sources":["../../../../src/components/Dashboard/MetricComponent.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AASrD,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAC,EAC3C,aAAa,EACb,OAAO,EACP,KAAK,EACL,SAAS,GACV,EAAE,kBAAkB,GAAG,GAAG,CAAC,OAAO,CAqRlC"}
|
|
@@ -101,7 +101,10 @@ function QuillMetricComponent({ dashboardItem, onClick, error, isLoading, }) {
|
|
|
101
101
|
color: theme.secondaryTextColor,
|
|
102
102
|
maxWidth: '100%',
|
|
103
103
|
width: '100%',
|
|
104
|
-
}, children: "No results" })) : ((0, jsx_runtime_1.jsx)(
|
|
104
|
+
}, children: "No results" })) : !pivotTable && rows && rows.length > 100 ? ((0, jsx_runtime_1.jsx)(ChartError_1.default, { containerStyle: {
|
|
105
|
+
maxHeight: '78px',
|
|
106
|
+
height: '100%',
|
|
107
|
+
}, label: "Charts can only display 100 rows. Please add a pivot or modify the query." })) : ((0, jsx_runtime_1.jsx)("div", { style: {
|
|
105
108
|
padding: 0,
|
|
106
109
|
height: '100%',
|
|
107
110
|
width: '100%',
|
|
@@ -22,7 +22,7 @@ function QuillSelectComponent({ options, value, width, onChange, label, }) {
|
|
|
22
22
|
minWidth: width,
|
|
23
23
|
}, children: [label && ((0, jsx_runtime_1.jsx)("div", { style: {
|
|
24
24
|
fontSize: 14,
|
|
25
|
-
color: theme.
|
|
25
|
+
color: theme.secondaryTextColor,
|
|
26
26
|
fontFamily: theme.fontFamily,
|
|
27
27
|
paddingBottom: 5,
|
|
28
28
|
fontWeight: 600,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QuillTable.d.ts","sourceRoot":"","sources":["../../../src/components/QuillTable.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmD,MAAM,OAAO,CAAC;AAKxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAEtD,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,OAAO,EAAE,GAAG,EAAE,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IACrC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,GAAG,CAAC,OAAO,CAAC;IACrC,0BAA0B,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,GAAG,CAAC,OAAO,CAAC;IAC1E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EACjC,IAAI,EACJ,OAAO,EACP,SAAS,EACT,qBAAqB,EACrB,gBAAgB,EAChB,cAAc,EACd,SAAS,EACT,gBAA0C,EAC1C,WAAgB,EAChB,eAA8B,EAC9B,WAAW,GACZ,EAAE,mBAAmB,
|
|
1
|
+
{"version":3,"file":"QuillTable.d.ts","sourceRoot":"","sources":["../../../src/components/QuillTable.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmD,MAAM,OAAO,CAAC;AAKxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAEtD,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,OAAO,EAAE,GAAG,EAAE,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IACrC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,GAAG,CAAC,OAAO,CAAC;IACrC,0BAA0B,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,GAAG,CAAC,OAAO,CAAC;IAC1E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EACjC,IAAI,EACJ,OAAO,EACP,SAAS,EACT,qBAAqB,EACrB,gBAAgB,EAChB,cAAc,EACd,SAAS,EACT,gBAA0C,EAC1C,WAAgB,EAChB,eAA8B,EAC9B,WAAW,GACZ,EAAE,mBAAmB,2CAyZrB"}
|
|
@@ -59,6 +59,7 @@ function QuillTable({ rows, columns, isLoading, showDownloadCSVButton, downloadF
|
|
|
59
59
|
};
|
|
60
60
|
if (isLoading || isPaginating) {
|
|
61
61
|
return ((0, jsx_runtime_1.jsx)("div", { style: {
|
|
62
|
+
height: '100%',
|
|
62
63
|
...containerStyle,
|
|
63
64
|
}, className: className, children: (0, jsx_runtime_1.jsx)(LoadingComponent, {}) }));
|
|
64
65
|
}
|
|
@@ -74,7 +75,7 @@ function QuillTable({ rows, columns, isLoading, showDownloadCSVButton, downloadF
|
|
|
74
75
|
width: '100%',
|
|
75
76
|
overflow: 'auto',
|
|
76
77
|
borderRadius: 6,
|
|
77
|
-
border: '1px solid
|
|
78
|
+
border: '1px solid #E7E7E7',
|
|
78
79
|
padding: 0,
|
|
79
80
|
margin: 0,
|
|
80
81
|
boxSizing: 'border-box',
|
|
@@ -100,9 +101,9 @@ function QuillTable({ rows, columns, isLoading, showDownloadCSVButton, downloadF
|
|
|
100
101
|
cursor: 'pointer',
|
|
101
102
|
background: 'rgb(249, 250, 251)',
|
|
102
103
|
borderRight: index + 1 === columns.length
|
|
103
|
-
? '0px solid
|
|
104
|
-
: '1px solid
|
|
105
|
-
borderBottom: '1px solid
|
|
104
|
+
? '0px solid #E7E7E7'
|
|
105
|
+
: '1px solid #E7E7E7',
|
|
106
|
+
borderBottom: '1px solid #E7E7E7',
|
|
106
107
|
whiteSpace: 'nowrap',
|
|
107
108
|
alignItems: 'center',
|
|
108
109
|
overflowX: 'visible',
|
|
@@ -159,14 +160,12 @@ function QuillTable({ rows, columns, isLoading, showDownloadCSVButton, downloadF
|
|
|
159
160
|
textOverflow: 'ellipsis',
|
|
160
161
|
minHeight: '36px',
|
|
161
162
|
borderRight: columnIndex + 1 === columns.length
|
|
162
|
-
? '0px solid
|
|
163
|
-
: '1px solid
|
|
163
|
+
? '0px solid #E7E7E7'
|
|
164
|
+
: '1px solid #E7E7E7',
|
|
164
165
|
overflow: 'hidden',
|
|
165
|
-
borderTop: rowIndex > 0
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
borderBottom: rowIndex === rows?.length - 1
|
|
169
|
-
? '1px solid rgb(229, 231, 235)'
|
|
166
|
+
borderTop: rowIndex > 0 ? '1px solid #E7E7E7' : undefined,
|
|
167
|
+
borderBottom: rowIndex === activeRows?.length - 1
|
|
168
|
+
? '1px solid #E7E7E7'
|
|
170
169
|
: undefined,
|
|
171
170
|
userSelect: 'none',
|
|
172
171
|
}, children: (0, jsx_runtime_1.jsx)("div", { style: {
|
|
@@ -198,7 +197,7 @@ function QuillTable({ rows, columns, isLoading, showDownloadCSVButton, downloadF
|
|
|
198
197
|
display: 'flex',
|
|
199
198
|
minWidth: '100px',
|
|
200
199
|
height: 38,
|
|
201
|
-
borderTop: '1px solid
|
|
200
|
+
borderTop: '1px solid #E7E7E7',
|
|
202
201
|
background: '#F9FAFB',
|
|
203
202
|
width: '100%',
|
|
204
203
|
}, children: (0, jsx_runtime_1.jsxs)("div", { style: {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import { TextInputComponentProps } from '../UiComponents';
|
|
3
|
-
export default function
|
|
3
|
+
export default function AddColumnModal({ onSave, orderedColumnNames, setOrderedColumnNames, selectedColumns, setSelectedColumns, isSelectedAllColumns, clearAllState, nameToColumn, baseAst, setBaseAst, pivot, initialTableName, defaultAST, defaultTable, setPivot, TextInput, SelectColumn, SecondaryButton, Button, ColumnSearchEmptyState, }: {
|
|
4
4
|
onSave: any;
|
|
5
5
|
orderedColumnNames: any;
|
|
6
6
|
setOrderedColumnNames: any;
|
|
@@ -27,5 +27,6 @@ export default function AddColumnPopover({ onSave, orderedColumnNames, setOrdere
|
|
|
27
27
|
}) => JSX.Element;
|
|
28
28
|
SecondaryButton: any;
|
|
29
29
|
Button: any;
|
|
30
|
+
ColumnSearchEmptyState: () => JSX.Element;
|
|
30
31
|
}): import("react/jsx-runtime").JSX.Element;
|
|
31
|
-
//# sourceMappingURL=
|
|
32
|
+
//# sourceMappingURL=AddColumnModal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AddColumnModal.d.ts","sourceRoot":"","sources":["../../../../src/components/ReportBuilder/AddColumnModal.tsx"],"names":[],"mappings":";AAoBA,OAAO,EAEL,uBAAuB,EACxB,MAAM,iBAAiB,CAAC;AAGzB,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EACrC,MAAM,EACN,kBAAkB,EAClB,qBAAqB,EACrB,eAAe,EACf,kBAAkB,EAClB,oBAAoB,EACpB,aAAa,EACb,YAAY,EACZ,OAAO,EACP,UAAU,EACV,KAAK,EACL,gBAAgB,EAChB,UAAU,EACV,YAAY,EACZ,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,eAAe,EACf,MAAM,EACN,sBAAoD,GACrD,EAAE;IACD,MAAM,EAAE,GAAG,CAAC;IACZ,kBAAkB,EAAE,GAAG,CAAC;IACxB,qBAAqB,EAAE,GAAG,CAAC;IAC3B,eAAe,EAAE,GAAG,CAAC;IACrB,kBAAkB,EAAE,GAAG,CAAC;IACxB,oBAAoB,EAAE,GAAG,CAAC;IAC1B,aAAa,EAAE,GAAG,CAAC;IACnB,YAAY,EAAE,GAAG,CAAC;IAClB,OAAO,EAAE,GAAG,CAAC;IACb,UAAU,EAAE,GAAG,CAAC;IAChB,KAAK,EAAE,GAAG,CAAC;IACX,gBAAgB,EAAE,GAAG,CAAC;IACtB,UAAU,EAAE,GAAG,CAAC;IAChB,YAAY,EAAE,GAAG,CAAC;IAClB,QAAQ,EAAE,GAAG,CAAC;IACd,SAAS,EAAE,CAAC,KAAK,EAAE,uBAAuB,KAAK,GAAG,CAAC,OAAO,CAAC;IAC3D,YAAY,EAAE,CAAC,KAAK,EAAE;QACpB,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,OAAO,CAAC;QACpB,WAAW,EAAE,MAAM,IAAI,CAAC;QACxB,UAAU,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE;YAAE,QAAQ,EAAE,MAAM,GAAG,CAAC,OAAO,CAAA;SAAE,KAAK,GAAG,CAAC,OAAO,CAAC;KAC5E,KAAK,GAAG,CAAC,OAAO,CAAC;IAClB,eAAe,EAAE,GAAG,CAAC;IACrB,MAAM,EAAE,GAAG,CAAC;IACZ,sBAAsB,EAAE,MAAM,GAAG,CAAC,OAAO,CAAC;CAC3C,2CA+MA"}
|
|
@@ -7,8 +7,9 @@ const core_1 = require("@dnd-kit/core");
|
|
|
7
7
|
const sortable_1 = require("@dnd-kit/sortable");
|
|
8
8
|
const utilities_1 = require("@dnd-kit/utilities");
|
|
9
9
|
const Context_1 = require("../../Context");
|
|
10
|
+
const UiComponents_1 = require("../UiComponents");
|
|
10
11
|
const textProcessing_1 = require("../../utils/textProcessing");
|
|
11
|
-
function
|
|
12
|
+
function AddColumnModal({ onSave, orderedColumnNames, setOrderedColumnNames, selectedColumns, setSelectedColumns, isSelectedAllColumns, clearAllState, nameToColumn, baseAst, setBaseAst, pivot, initialTableName, defaultAST, defaultTable, setPivot, TextInput, SelectColumn, SecondaryButton, Button, ColumnSearchEmptyState = UiComponents_1.QuillColumnSearchEmptyState, }) {
|
|
12
13
|
const [theme] = (0, react_1.useContext)(Context_1.ThemeContext);
|
|
13
14
|
const [search, setSearch] = (0, react_1.useState)('');
|
|
14
15
|
const [searchResults, setSearchResults] = (0, react_1.useState)(orderedColumnNames);
|
|
@@ -53,7 +54,10 @@ function AddColumnPopover({ onSave, orderedColumnNames, setOrderedColumnNames, s
|
|
|
53
54
|
flexDirection: 'column',
|
|
54
55
|
gap: 2,
|
|
55
56
|
minWidth: 300,
|
|
56
|
-
maxHeight:
|
|
57
|
+
maxHeight: 600,
|
|
58
|
+
paddingLeft: 16,
|
|
59
|
+
paddingRight: 16,
|
|
60
|
+
paddingBottom: 16,
|
|
57
61
|
}, children: [(0, jsx_runtime_1.jsx)("div", { ref: textInputContainerRef, style: {
|
|
58
62
|
position: 'relative',
|
|
59
63
|
display: 'flex',
|
|
@@ -61,25 +65,25 @@ function AddColumnPopover({ onSave, orderedColumnNames, setOrderedColumnNames, s
|
|
|
61
65
|
alignItems: 'center',
|
|
62
66
|
marginTop: 2,
|
|
63
67
|
marginBottom: 6,
|
|
64
|
-
}, children: (0, jsx_runtime_1.jsx)(TextInput, { id: 'add_column_search_bar', value: search, placeholder: 'Search...', width:
|
|
68
|
+
}, children: (0, jsx_runtime_1.jsx)(TextInput, { id: 'add_column_search_bar', value: search, placeholder: 'Search...', width: 400, onChange: (e) => setSearch(e.target.value) }) }), (0, jsx_runtime_1.jsx)(core_1.DndContext, { sensors: sensors, collisionDetection: core_1.closestCenter, onDragEnd: handleDragEnd, children: (0, jsx_runtime_1.jsx)(sortable_1.SortableContext, { items: orderedColumnNames, strategy: sortable_1.verticalListSortingStrategy, children: (0, jsx_runtime_1.jsxs)("div", { style: {
|
|
65
69
|
display: 'flex',
|
|
66
70
|
flexDirection: 'column',
|
|
67
71
|
gap: 8,
|
|
68
72
|
overflowY: 'auto',
|
|
69
|
-
maxWidth: '
|
|
73
|
+
maxWidth: '400px',
|
|
70
74
|
}, children: [searchResults.map((value) => {
|
|
71
75
|
return ((0, jsx_runtime_1.jsx)(SortableItem, { selectedColumns: selectedColumns, setSelectedColumns: setSelectedColumns, id: value, label: value.replace('.', ' | '), SelectColumn: SelectColumn }, value));
|
|
72
|
-
}), search.length > 0 && searchResults.length === 0 && ((0, jsx_runtime_1.jsx)(
|
|
76
|
+
}), search.length > 0 && searchResults.length === 0 && ((0, jsx_runtime_1.jsx)(ColumnSearchEmptyState, {}))] }) }) }), (0, jsx_runtime_1.jsxs)("div", { style: {
|
|
73
77
|
display: 'flex',
|
|
74
78
|
width: '100%',
|
|
75
79
|
flexDirection: 'row',
|
|
76
80
|
gap: 8,
|
|
77
81
|
justifyContent: 'end',
|
|
78
82
|
marginTop: 12,
|
|
79
|
-
}, children: [selectedColumns.length > 0 && !isSelectedAllColumns() && ((0, jsx_runtime_1.jsx)(SecondaryButton, { onClick: () => setSelectedColumns(searchResults.filter((row) => {
|
|
83
|
+
}, children: [selectedColumns.length > 0 && ((0, jsx_runtime_1.jsx)(SecondaryButton, { onClick: () => setSelectedColumns([]), label: "Clear" })), selectedColumns.length > 0 && !isSelectedAllColumns() && ((0, jsx_runtime_1.jsx)(SecondaryButton, { onClick: () => setSelectedColumns(searchResults.filter((row) => {
|
|
80
84
|
const [table, _column] = row.split('.');
|
|
81
85
|
return selectedColumns[0].startsWith(table);
|
|
82
|
-
})), label: "Select all" })),
|
|
86
|
+
})), label: "Select all" })), (0, jsx_runtime_1.jsx)(Button, { onClick: () => {
|
|
83
87
|
// follow the ordering of the ordered column names
|
|
84
88
|
let tableName = initialTableName;
|
|
85
89
|
const orderedSelectedColumns = [];
|
|
@@ -121,7 +125,7 @@ function AddColumnPopover({ onSave, orderedColumnNames, setOrderedColumnNames, s
|
|
|
121
125
|
onSave();
|
|
122
126
|
}, label: "Select columns" })] })] }));
|
|
123
127
|
}
|
|
124
|
-
exports.default =
|
|
128
|
+
exports.default = AddColumnModal;
|
|
125
129
|
const SortableItem = ({ id, label, setSelectedColumns, selectedColumns, SelectColumn, }) => {
|
|
126
130
|
const { attributes, listeners, setNodeRef, transform, transition } = (0, sortable_1.useSortable)({ id: id });
|
|
127
131
|
const style = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AddLimitPopover.d.ts","sourceRoot":"","sources":["../../../../src/components/ReportBuilder/AddLimitPopover.tsx"],"names":[],"mappings":";AACA,OAAO,EACL,oBAAoB,EAIpB,uBAAuB,EACxB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,0BAA0B,EAAE,MAAM,MAAM,CAAC;AAElD,eAAO,MAAM,aAAa;WAYjB,GAAG;kBACI,MAAM,IAAI;0BACF,GAAG,KAAK,IAAI;qBACjB,GAAG,aAAa,GAAG,KAAK,IAAI;;0BAEvB,0BAA0B,KAAK,WAAW;iBACnD,GAAG;eACL,GAAG;oBACE,oBAAoB,KAAK,WAAW;6BAC3B,oBAAoB,KAAK,WAAW;6CAiC9D,CAAC;AAEF,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,uBAAuB,KAAK,GAAG,CAAC,OAAO,CAAC;IAC5D,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,GAAG,CAAC,OAAO,CAAC;IACtD,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,GAAG,CAAC,OAAO,CAAC;CAChE;AAED,eAAO,MAAM,eAAe,oFAQzB,oBAAoB,
|
|
1
|
+
{"version":3,"file":"AddLimitPopover.d.ts","sourceRoot":"","sources":["../../../../src/components/ReportBuilder/AddLimitPopover.tsx"],"names":[],"mappings":";AACA,OAAO,EACL,oBAAoB,EAIpB,uBAAuB,EACxB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,0BAA0B,EAAE,MAAM,MAAM,CAAC;AAElD,eAAO,MAAM,aAAa;WAYjB,GAAG;kBACI,MAAM,IAAI;0BACF,GAAG,KAAK,IAAI;qBACjB,GAAG,aAAa,GAAG,KAAK,IAAI;;0BAEvB,0BAA0B,KAAK,WAAW;iBACnD,GAAG;eACL,GAAG;oBACE,oBAAoB,KAAK,WAAW;6BAC3B,oBAAoB,KAAK,WAAW;6CAiC9D,CAAC;AAEF,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,uBAAuB,KAAK,GAAG,CAAC,OAAO,CAAC;IAC5D,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,GAAG,CAAC,OAAO,CAAC;IACtD,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,GAAG,CAAC,OAAO,CAAC;CAChE;AAED,eAAO,MAAM,eAAe,oFAQzB,oBAAoB,4CA+CtB,CAAC"}
|
|
@@ -25,7 +25,7 @@ const AddLimitPopover = ({ onSave, initialLimit = 10, isEdit = false, onDelete =
|
|
|
25
25
|
flexDirection: 'row',
|
|
26
26
|
gap: 12,
|
|
27
27
|
padding: '6px 0px',
|
|
28
|
-
}, children: (0, jsx_runtime_1.jsx)(TextInput, { id: 'add_limit_input', value: limit.toString() ?? initialLimit.toString(), width: 200,
|
|
28
|
+
}, children: (0, jsx_runtime_1.jsx)(TextInput, { id: 'add_limit_input', label: "Limit", value: limit.toString() ?? initialLimit.toString(), width: 200,
|
|
29
29
|
// style={{ minHeight: 32, padding: '6px 12px' }}
|
|
30
30
|
onChange: (e) => {
|
|
31
31
|
if (Number.isNaN(parseFloat(e.target.value || '0'))) {
|
|
@@ -19,5 +19,5 @@ export declare const SortSentence: ({ sortData, keyPrefix, columns, handleDelete
|
|
|
19
19
|
Button?: ((props: ButtonComponentProps) => JSX.Element) | undefined;
|
|
20
20
|
SecondaryButton?: ((props: ButtonComponentProps) => JSX.Element) | undefined;
|
|
21
21
|
}) => import("react/jsx-runtime").JSX.Element | null;
|
|
22
|
-
export declare const AddSortPopover: ({ onSave, columns, isEdit, onDelete, column, Select, Button, SecondaryButton, }: any) => import("react/jsx-runtime").JSX.Element;
|
|
22
|
+
export declare const AddSortPopover: ({ onSave, columns, isEdit, onDelete, column, direction, Select, Button, SecondaryButton, }: any) => import("react/jsx-runtime").JSX.Element;
|
|
23
23
|
//# sourceMappingURL=AddSortPopover.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AddSortPopover.d.ts","sourceRoot":"","sources":["../../../../src/components/ReportBuilder/AddSortPopover.tsx"],"names":[],"mappings":";AAEA,OAAO,EACL,oBAAoB,EAGpB,oBAAoB,EACrB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,yBAAyB,EAAE,MAAM,MAAM,CAAC;AAOjD,eAAO,MAAM,YAAY;cAkBb,GAAG;aACJ,GAAG;kBACE,GAAG;uBACE,GAAG;uBACH,GAAG;oBACN,GAAG;mBACJ,GAAG;gBACN,GAAG;kBACD,GAAG;YACT,GAAG;;yBAEU,yBAAyB,KAAK,WAAW;iBACjD,GAAG;sBACC,oBAAoB,KAAK,WAAW;sBACpC,oBAAoB,KAAK,WAAW;+BAC3B,oBAAoB,KAAK,WAAW;
|
|
1
|
+
{"version":3,"file":"AddSortPopover.d.ts","sourceRoot":"","sources":["../../../../src/components/ReportBuilder/AddSortPopover.tsx"],"names":[],"mappings":";AAEA,OAAO,EACL,oBAAoB,EAGpB,oBAAoB,EACrB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,yBAAyB,EAAE,MAAM,MAAM,CAAC;AAOjD,eAAO,MAAM,YAAY;cAkBb,GAAG;aACJ,GAAG;kBACE,GAAG;uBACE,GAAG;uBACH,GAAG;oBACN,GAAG;mBACJ,GAAG;gBACN,GAAG;kBACD,GAAG;YACT,GAAG;;yBAEU,yBAAyB,KAAK,WAAW;iBACjD,GAAG;sBACC,oBAAoB,KAAK,WAAW;sBACpC,oBAAoB,KAAK,WAAW;+BAC3B,oBAAoB,KAAK,WAAW;oDAqD/D,CAAC;AAEF,eAAO,MAAM,cAAc,+FAUxB,GAAG,4CAmEL,CAAC"}
|
|
@@ -34,25 +34,25 @@ const SortSentence = ({ sortData, keyPrefix, columns, handleDelete, setEditPopov
|
|
|
34
34
|
return ((0, jsx_runtime_1.jsx)("div", { children: (0, jsx_runtime_1.jsx)(SortPopover, { isOpen: isOpen, setIsOpen: handleSetIsOpen, sortLabel: `${(0, textProcessing_1.snakeCaseToTitleCase)(sortData.expr.column) || (0, textProcessing_1.snakeCaseToTitleCase)(sortData.expr.value)} ${SORT_VALUE_TO_LABEL[sortData.type]}`, onClickDelete: handleClickDelete, popoverTitle: popoverTitle, popoverChildren: (0, jsx_runtime_1.jsx)(EditPopover, { onSave: (column, direction) => {
|
|
35
35
|
setIsOpen(false);
|
|
36
36
|
onSave(column, direction);
|
|
37
|
-
}, columns: columns, isEdit: true, onDelete: handleClickDelete, column: sortData.expr.column || sortData.expr.value, Select: Select, Button: Button, SecondaryButton: SecondaryButton }) }) }));
|
|
37
|
+
}, columns: columns, isEdit: true, onDelete: handleClickDelete, column: sortData.expr.column || sortData.expr.value, direction: sortData.type, Select: Select, Button: Button, SecondaryButton: SecondaryButton }) }) }));
|
|
38
38
|
};
|
|
39
39
|
exports.SortSentence = SortSentence;
|
|
40
|
-
const AddSortPopover = ({ onSave, columns, isEdit, onDelete, column, Select = QuillSelect_1.QuillSelectComponent, Button = UiComponents_1.MemoizedButton, SecondaryButton = UiComponents_1.MemoizedSecondaryButton, }) => {
|
|
40
|
+
const AddSortPopover = ({ onSave, columns, isEdit, onDelete, column, direction, Select = QuillSelect_1.QuillSelectComponent, Button = UiComponents_1.MemoizedButton, SecondaryButton = UiComponents_1.MemoizedSecondaryButton, }) => {
|
|
41
41
|
const [sortColumn, setSortColumn] = (0, react_1.useState)(column || '');
|
|
42
|
-
const [sortDirection, setSortDirection] = (0, react_1.useState)('ASC');
|
|
42
|
+
const [sortDirection, setSortDirection] = (0, react_1.useState)(direction || 'ASC');
|
|
43
43
|
return ((0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', flexDirection: 'column', gap: 12 }, children: [(0, jsx_runtime_1.jsxs)("div", { style: {
|
|
44
44
|
display: 'flex',
|
|
45
45
|
flexDirection: 'row',
|
|
46
46
|
gap: 12,
|
|
47
47
|
padding: '6px 0px',
|
|
48
|
-
}, children: [(0, jsx_runtime_1.jsx)(Select, { value: sortColumn, onChange: (e) => {
|
|
48
|
+
}, children: [(0, jsx_runtime_1.jsx)(Select, { label: "Sort Column", value: sortColumn, onChange: (e) => {
|
|
49
49
|
setSortColumn(e.target.value);
|
|
50
50
|
}, options: [
|
|
51
51
|
...columns.map((column) => ({
|
|
52
52
|
label: (0, textProcessing_1.snakeCaseToTitleCase)(column.split('.')[1] || ''),
|
|
53
53
|
value: column.split('.')[1],
|
|
54
54
|
})),
|
|
55
|
-
], width: 200 }), (0, jsx_runtime_1.jsx)(Select, { value: sortDirection, onChange: (e) => {
|
|
55
|
+
], width: 200 }), (0, jsx_runtime_1.jsx)(Select, { label: "Sort Direction", value: sortDirection, onChange: (e) => {
|
|
56
56
|
setSortDirection(e.target.value);
|
|
57
57
|
}, options: [
|
|
58
58
|
{ label: 'Ascending', value: 'ASC' },
|
|
@@ -493,6 +493,12 @@ export declare const extractColumnish: (expr_value: NodeSQLParser.ExpressionValu
|
|
|
493
493
|
* @returns true or false
|
|
494
494
|
*/
|
|
495
495
|
export declare const isNumericColumnType: (columnType: string | undefined) => boolean;
|
|
496
|
+
/**
|
|
497
|
+
* Returns whether the given columnType is a numeric bool.
|
|
498
|
+
* @param columnType the type of the column
|
|
499
|
+
* @returns true or false
|
|
500
|
+
*/
|
|
501
|
+
export declare const isBoolColumnType: (columnType: string | undefined) => boolean;
|
|
496
502
|
/**
|
|
497
503
|
* Returns whether the given columnType is a text type (ie. text-ish).
|
|
498
504
|
* @param columnType the type of the column
|