@quillsql/react 2.9.0 → 2.9.2
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/AddToDashboardModal.d.ts.map +1 -1
- package/dist/AddToDashboardModal.js +152 -181
- package/dist/AddToDashboardModal.js.map +1 -1
- package/dist/BarList.js +36 -44
- package/dist/Chart.d.ts +4 -24
- package/dist/Chart.d.ts.map +1 -1
- package/dist/Chart.js +203 -802
- package/dist/Chart.js.map +1 -1
- package/dist/ChartBuilder.d.ts.map +1 -1
- package/dist/ChartBuilder.js +89 -91
- package/dist/ChartBuilder.js.map +1 -1
- package/dist/ChartEditor.d.ts.map +1 -1
- package/dist/ChartEditor.js +23 -22
- package/dist/ChartEditor.js.map +1 -1
- package/dist/Context.d.ts +19 -0
- package/dist/Context.d.ts.map +1 -1
- package/dist/Context.js +81 -61
- package/dist/Context.js.map +1 -1
- package/dist/Dashboard.d.ts +3 -1
- package/dist/Dashboard.d.ts.map +1 -1
- package/dist/Dashboard.js +250 -251
- package/dist/Dashboard.js.map +1 -1
- package/dist/DateRangePicker/Calendar.js +41 -46
- package/dist/DateRangePicker/DateRangePicker.js +32 -61
- package/dist/DateRangePicker/DateRangePickerButton.js +14 -17
- package/dist/DateRangePicker/dateRangePickerUtils.js +76 -90
- package/dist/DateRangePicker/index.js +1 -9
- package/dist/PieChart.js +35 -70
- package/dist/QuillProvider.js +4 -7
- package/dist/ReportBuilder.js +120 -129
- package/dist/SQLEditor.js +56 -65
- package/dist/SQLEditor.js.map +1 -1
- package/dist/Table.d.ts.map +1 -1
- package/dist/Table.js +65 -65
- package/dist/Table.js.map +1 -1
- package/dist/TableChart.js +17 -45
- package/dist/api/ServerClient.d.ts +30 -0
- package/dist/api/ServerClient.d.ts.map +1 -0
- package/dist/api/ServerClient.js +39 -0
- package/dist/api/ServerClient.js.map +1 -0
- package/dist/assets/ArrowDownHeadIcon.js +3 -6
- package/dist/assets/ArrowDownIcon.js +3 -6
- package/dist/assets/ArrowDownRightIcon.js +3 -6
- package/dist/assets/ArrowLeftHeadIcon.js +3 -6
- package/dist/assets/ArrowRightHeadIcon.js +3 -6
- package/dist/assets/ArrowRightIcon.js +3 -6
- package/dist/assets/ArrowUpHeadIcon.js +3 -6
- package/dist/assets/ArrowUpIcon.js +3 -6
- package/dist/assets/ArrowUpRightIcon.js +3 -6
- package/dist/assets/CalendarIcon.js +3 -6
- package/dist/assets/CalendarNormalIcon.js +3 -6
- package/dist/assets/DoubleArrowLeftHeadIcon.js +3 -6
- package/dist/assets/DoubleArrowRightHeadIcon.js +3 -6
- package/dist/assets/ExclamationFilledIcon.js +3 -6
- package/dist/assets/FilterIcon.js +3 -6
- package/dist/assets/LoadingSpinner.js +3 -6
- package/dist/assets/RefreshIcon.js +3 -6
- package/dist/assets/SearchIcon.js +3 -6
- package/dist/assets/UpLeftArrowsIcon.js +3 -6
- package/dist/assets/XCircleIcon.js +3 -6
- package/dist/assets/XIcon.js +3 -6
- package/dist/assets/index.js +21 -49
- package/dist/components/Banner/index.js +6 -10
- package/dist/components/BigModal/BigModal.js +13 -39
- package/dist/components/Chart/BarChart.d.ts +15 -0
- package/dist/components/Chart/BarChart.d.ts.map +1 -0
- package/dist/components/Chart/BarChart.js +57 -0
- package/dist/components/Chart/BarChart.js.map +1 -0
- package/dist/components/Chart/ChartTooltip.d.ts +29 -0
- package/dist/components/Chart/ChartTooltip.d.ts.map +1 -0
- package/dist/components/Chart/ChartTooltip.js +229 -0
- package/dist/components/Chart/ChartTooltip.js.map +1 -0
- package/dist/components/Chart/ChartTooltipFrame.d.ts +6 -0
- package/dist/components/Chart/ChartTooltipFrame.d.ts.map +1 -0
- package/dist/components/Chart/ChartTooltipFrame.js +12 -0
- package/dist/components/Chart/ChartTooltipFrame.js.map +1 -0
- package/dist/components/Chart/ChartTooltipGroup.d.ts +11 -0
- package/dist/components/Chart/ChartTooltipGroup.d.ts.map +1 -0
- package/dist/components/Chart/ChartTooltipGroup.js +23 -0
- package/dist/components/Chart/ChartTooltipGroup.js.map +1 -0
- package/dist/components/Chart/ChartTooltipRow.d.ts +8 -0
- package/dist/components/Chart/ChartTooltipRow.d.ts.map +1 -0
- package/dist/components/Chart/ChartTooltipRow.js +41 -0
- package/dist/components/Chart/ChartTooltipRow.js.map +1 -0
- package/dist/components/Chart/LineChart.d.ts +13 -0
- package/dist/components/Chart/LineChart.d.ts.map +1 -0
- package/dist/components/Chart/LineChart.js +68 -0
- package/dist/components/Chart/LineChart.js.map +1 -0
- package/dist/components/Dropdown/Dropdown.js +24 -53
- package/dist/components/Dropdown/DropdownItem.js +9 -35
- package/dist/components/Dropdown/index.js +2 -11
- package/dist/components/Modal/Modal.js +13 -39
- package/dist/components/Modal/index.js +1 -9
- package/dist/components/QuillCard.js +8 -13
- package/dist/components/ReportBuilder/ColumnSelector.d.ts +24 -6
- package/dist/components/ReportBuilder/ColumnSelector.d.ts.map +1 -1
- package/dist/components/ReportBuilder/ColumnSelector.js +56 -8
- package/dist/components/ReportBuilder/ColumnSelector.js.map +1 -0
- package/dist/components/ReportBuilder/FiltersModal.d.ts +40 -0
- package/dist/components/ReportBuilder/FiltersModal.d.ts.map +1 -0
- package/dist/components/ReportBuilder/FiltersModal.js +273 -0
- package/dist/components/ReportBuilder/FiltersModal.js.map +1 -0
- package/dist/components/ReportBuilder/SortModal.d.ts +28 -0
- package/dist/components/ReportBuilder/SortModal.d.ts.map +1 -0
- package/dist/components/ReportBuilder/SortModal.js +41 -0
- package/dist/components/ReportBuilder/SortModal.js.map +1 -0
- package/dist/components/SqlTextEditor.js +4 -11
- package/dist/components/UiComponents.js +37 -51
- package/dist/components/selectUtils.js +6 -17
- package/dist/contexts/BaseColorContext.js +3 -6
- package/dist/contexts/HoveredValueContext.js +3 -6
- package/dist/contexts/RootStylesContext.js +3 -6
- package/dist/contexts/SelectedValueContext.js +3 -6
- package/dist/contexts/index.js +4 -15
- package/dist/hooks/index.js +4 -15
- package/dist/hooks/useDashboard.js +10 -15
- package/dist/hooks/useInternalState.js +3 -6
- package/dist/hooks/useOnClickOutside.js +3 -6
- package/dist/hooks/useOnWindowResize.js +4 -7
- package/dist/hooks/useQuill.d.ts +2 -2
- package/dist/hooks/useQuill.d.ts.map +1 -1
- package/dist/hooks/useQuill.js +37 -28
- package/dist/hooks/useQuill.js.map +1 -1
- package/dist/hooks/useSelectOnKeyDown.js +4 -7
- package/dist/index.js +13 -33
- package/dist/internals/ReportBuilder/PivotList.js +14 -20
- package/dist/internals/ReportBuilder/PivotModal.d.ts +2 -2
- package/dist/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
- package/dist/internals/ReportBuilder/PivotModal.js +280 -115
- package/dist/internals/ReportBuilder/PivotModal.js.map +1 -1
- package/dist/internals/ReportBuilder/PivotModal.spec.js +70 -73
- package/dist/lib/font.js +2 -6
- package/dist/lib/index.js +3 -20
- package/dist/lib/inputTypes.js +1 -3
- package/dist/lib/utils.js +8 -19
- package/dist/test-data/tables.d.ts.map +1 -1
- package/dist/test-data/tables.js +27 -585
- package/dist/test-data/tables.js.map +1 -0
- package/dist/utils/aggregate.js +28 -35
- package/dist/utils/ast.d.ts +18 -0
- package/dist/utils/ast.d.ts.map +1 -0
- package/dist/utils/ast.js +310 -0
- package/dist/utils/ast.js.map +1 -0
- package/dist/utils/axisFormatter.js +19 -24
- package/dist/utils/color.d.ts +13 -0
- package/dist/utils/color.d.ts.map +1 -0
- package/dist/utils/color.js +247 -0
- package/dist/utils/color.js.map +1 -0
- package/dist/utils/colorToHex.js +1 -5
- package/dist/utils/crypto.d.ts +2 -0
- package/dist/utils/crypto.d.ts.map +1 -0
- package/dist/utils/crypto.js +6 -0
- package/dist/utils/crypto.js.map +1 -0
- package/dist/utils/dataFetcher.d.ts.map +1 -1
- package/dist/utils/dataFetcher.js +8 -9
- package/dist/utils/dataFetcher.js.map +1 -1
- package/dist/utils/dates.d.ts +10 -0
- package/dist/utils/dates.d.ts.map +1 -0
- package/dist/utils/dates.js +32 -0
- package/dist/utils/dates.js.map +1 -0
- package/dist/utils/downloadCSV.js +1 -6
- package/dist/utils/getDomain.d.ts +8 -0
- package/dist/utils/getDomain.d.ts.map +1 -0
- package/dist/utils/getDomain.js +28 -0
- package/dist/utils/getDomain.js.map +1 -0
- package/dist/utils/merge.d.ts +2 -0
- package/dist/utils/merge.d.ts.map +1 -0
- package/dist/utils/merge.js +45 -0
- package/dist/utils/merge.js.map +1 -0
- package/dist/utils/schema.d.ts +7 -2
- package/dist/utils/schema.d.ts.map +1 -1
- package/dist/utils/schema.js +13 -7
- package/dist/utils/schema.js.map +1 -0
- package/dist/utils/sorting.d.ts +5 -0
- package/dist/utils/sorting.d.ts.map +1 -0
- package/dist/utils/sorting.js +14 -0
- package/dist/utils/sorting.js.map +1 -0
- package/dist/utils/textFormatting.d.ts.map +1 -1
- package/dist/utils/textFormatting.js +0 -1
- package/dist/utils/textFormatting.js.map +1 -0
- package/dist/utils/valueFormatter.js +19 -24
- package/dist/utils/valueFormatterCSV.js +19 -24
- package/package.json +2 -3
- package/dist/DateRangePicker/Calendar.js.map +0 -1
- package/dist/DateRangePicker/dateRangePickerUtils.js.map +0 -1
- package/dist/DateRangePicker/index.js.map +0 -1
- package/dist/PieChart.js.map +0 -1
- package/dist/QuillProvider.js.map +0 -1
- package/dist/assets/ArrowDownIcon.js.map +0 -1
- package/dist/assets/ArrowDownRightIcon.js.map +0 -1
- package/dist/assets/ArrowLeftHeadIcon.js.map +0 -1
- package/dist/assets/ArrowRightHeadIcon.js.map +0 -1
- package/dist/assets/ArrowRightIcon.js.map +0 -1
- package/dist/assets/ArrowUpHeadIcon.js.map +0 -1
- package/dist/assets/ArrowUpIcon.js.map +0 -1
- package/dist/assets/ArrowUpRightIcon.js.map +0 -1
- package/dist/assets/CalendarIcon.js.map +0 -1
- package/dist/assets/CalendarNormalIcon.js.map +0 -1
- package/dist/assets/DoubleArrowLeftHeadIcon.js.map +0 -1
- package/dist/assets/DoubleArrowRightHeadIcon.js.map +0 -1
- package/dist/assets/ExclamationFilledIcon.js.map +0 -1
- package/dist/assets/FilterIcon.js.map +0 -1
- package/dist/assets/LoadingSpinner.js.map +0 -1
- package/dist/assets/RefreshIcon.js.map +0 -1
- package/dist/assets/SearchIcon.js.map +0 -1
- package/dist/assets/UpLeftArrowsIcon.js.map +0 -1
- package/dist/assets/XCircleIcon.js.map +0 -1
- package/dist/assets/XIcon.js.map +0 -1
- package/dist/assets/index.js.map +0 -1
- package/dist/components/BigModal/BigModal.js.map +0 -1
- package/dist/components/Dropdown/Dropdown.js.map +0 -1
- package/dist/components/Dropdown/DropdownItem.js.map +0 -1
- package/dist/components/Dropdown/index.js.map +0 -1
- package/dist/components/Modal/Modal.js.map +0 -1
- package/dist/components/Modal/index.js.map +0 -1
- package/dist/components/QuillCard.js.map +0 -1
- package/dist/components/selectUtils.js.map +0 -1
- package/dist/contexts/BaseColorContext.js.map +0 -1
- package/dist/contexts/HoveredValueContext.js.map +0 -1
- package/dist/contexts/RootStylesContext.js.map +0 -1
- package/dist/contexts/SelectedValueContext.js.map +0 -1
- package/dist/contexts/index.js.map +0 -1
- package/dist/hooks/index.js.map +0 -1
- package/dist/hooks/useDashboard.js.map +0 -1
- package/dist/hooks/useInternalState.js.map +0 -1
- package/dist/hooks/useOnClickOutside.js.map +0 -1
- package/dist/hooks/useOnWindowResize.js.map +0 -1
- package/dist/hooks/useSelectOnKeyDown.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/internals/ReportBuilder/PivotModal.spec.js.map +0 -1
- package/dist/lib/font.js.map +0 -1
- package/dist/lib/index.js.map +0 -1
- package/dist/lib/inputTypes.js.map +0 -1
- package/dist/lib/utils.js.map +0 -1
- package/dist/utils/aggregate.js.map +0 -1
- package/dist/utils/downloadCSV.js.map +0 -1
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
export default function LineChart({ colors, yAxisFields, data, containerStyle, xAxisField, xAxisFormat, theme, comparison, isAnimationActive, }: {
|
|
3
|
+
colors: string[];
|
|
4
|
+
yAxisFields: any[];
|
|
5
|
+
data: any[];
|
|
6
|
+
containerStyle?: React.CSSProperties;
|
|
7
|
+
xAxisField: string;
|
|
8
|
+
xAxisLabel: string;
|
|
9
|
+
xAxisFormat: string;
|
|
10
|
+
theme: any;
|
|
11
|
+
isAnimationActive: boolean;
|
|
12
|
+
}): import("react/jsx-runtime").JSX.Element | null;
|
|
13
|
+
//# sourceMappingURL=LineChart.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LineChart.d.ts","sourceRoot":"","sources":["../../../src/components/Chart/LineChart.tsx"],"names":[],"mappings":";AAgBA,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAChC,MAAM,EACN,WAAW,EACX,IAAI,EACJ,cAAc,EACd,UAAU,EACV,WAAW,EACX,KAAK,EACL,UAAU,EACV,iBAAwB,GACzB,EAAE;IACD,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,WAAW,EAAE,GAAG,EAAE,CAAC;IACnB,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,cAAc,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,GAAG,CAAC;IACX,iBAAiB,EAAE,OAAO,CAAC;CAC5B,kDA0KA"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
// @ts-nocheck
|
|
3
|
+
import { Area, CartesianGrid, ComposedChart as ReChartsAreaChart, ResponsiveContainer, Tooltip, XAxis, YAxis, } from 'recharts';
|
|
4
|
+
import { valueFormatter } from '../../utils/valueFormatter';
|
|
5
|
+
import { axisFormatter } from '../../utils/axisFormatter';
|
|
6
|
+
import { selectColor } from '../../utils/color';
|
|
7
|
+
import ChartTooltip from '../../components/Chart/ChartTooltip';
|
|
8
|
+
import getDomain from '../../utils/getDomain';
|
|
9
|
+
export default function LineChart({ colors, yAxisFields, data, containerStyle, xAxisField, xAxisFormat, theme, comparison, isAnimationActive = true, }) {
|
|
10
|
+
if (!yAxisFields || !yAxisFields.length) {
|
|
11
|
+
return null;
|
|
12
|
+
}
|
|
13
|
+
if (!data || data.length === 0) {
|
|
14
|
+
return (_jsx("div", { style: {
|
|
15
|
+
display: 'flex',
|
|
16
|
+
flex: '1 0 auto',
|
|
17
|
+
height: '100%',
|
|
18
|
+
margin: 'auto',
|
|
19
|
+
justifyContent: 'center',
|
|
20
|
+
alignItems: 'center',
|
|
21
|
+
fontSize: 13,
|
|
22
|
+
color: theme.secondaryTextColor,
|
|
23
|
+
}, children: "No results found for specified time period." }));
|
|
24
|
+
}
|
|
25
|
+
return (_jsx("div", { style: { ...containerStyle, boxSizing: 'content-box' }, children: _jsx(ResponsiveContainer, { width: "100%", height: '100%', children: _jsxs(ReChartsAreaChart, { data: data, children: [_jsx(CartesianGrid, { strokeDasharray: "3 3", horizontal: true, vertical: false }), _jsx(XAxis, { dataKey: xAxisField, tick: { transform: 'translate(0, 6)' }, style: {
|
|
26
|
+
fontSize: '12px',
|
|
27
|
+
fontFamily: theme?.chartLabelFontFamily ||
|
|
28
|
+
theme?.fontFamily ||
|
|
29
|
+
'Inter; Helvetica',
|
|
30
|
+
color: theme?.chartLabelColor || '#666666',
|
|
31
|
+
}, interval: "preserveStartEnd", tickLine: false, axisLine: false, padding: { left: 10, right: 10 }, minTickGap: 5, tickFormatter: (tick) => axisFormatter({
|
|
32
|
+
value: tick,
|
|
33
|
+
field: xAxisField,
|
|
34
|
+
fields: [{ field: xAxisField, format: xAxisFormat }],
|
|
35
|
+
}) }), _jsx(YAxis, { width: 44, axisLine: false, tickLine: false, type: "number", domain: getDomain(data, yAxisFields), tick: { transform: 'translate(-3, 0)' }, style: {
|
|
36
|
+
fontSize: '12px',
|
|
37
|
+
fontFamily: theme?.chartLabelFontFamily ||
|
|
38
|
+
theme?.fontFamily ||
|
|
39
|
+
'Inter; Helvetica',
|
|
40
|
+
color: theme?.chartLabelColor || '#666666',
|
|
41
|
+
}, tickFormatter: (value) => axisFormatter({
|
|
42
|
+
value,
|
|
43
|
+
field: yAxisFields[0].field,
|
|
44
|
+
fields: [
|
|
45
|
+
...yAxisFields,
|
|
46
|
+
{ field: xAxisField, format: xAxisFormat },
|
|
47
|
+
],
|
|
48
|
+
}) }), _jsx(Tooltip, { wrapperStyle: { outline: 'none' }, isAnimationActive: false, cursor: { stroke: '#d1d5db', strokeWidth: 1 }, content: ({ active, payload, label }) => {
|
|
49
|
+
let label2;
|
|
50
|
+
if (comparison &&
|
|
51
|
+
payload?.length > 1 &&
|
|
52
|
+
payload[0].payload[xAxisField + '2']) {
|
|
53
|
+
label2 = payload[0].payload[xAxisField + '2'];
|
|
54
|
+
}
|
|
55
|
+
return (_jsx(ChartTooltip, { active: active, payload: payload, label: label, label2: label2, dateFormatter: (value) => valueFormatter({
|
|
56
|
+
value,
|
|
57
|
+
field: xAxisField,
|
|
58
|
+
fields: [{ field: xAxisField, format: xAxisFormat }],
|
|
59
|
+
}), valueFormatter: (value) => valueFormatter({
|
|
60
|
+
value,
|
|
61
|
+
field: payload[0].dataKey,
|
|
62
|
+
fields: [
|
|
63
|
+
...yAxisFields,
|
|
64
|
+
{ field: xAxisField, format: xAxisFormat },
|
|
65
|
+
],
|
|
66
|
+
}), xAxisFormat: xAxisFormat, xAxisField: xAxisField, colors: colors, theme: theme }));
|
|
67
|
+
}, position: { y: 0 } }), yAxisFields.map((elem, index) => (_jsx("defs", { children: _jsxs("linearGradient", { id: `gradient${index}`, x1: "0", y1: "0", x2: "0", y2: "1", children: [_jsx("stop", { offset: "5%", stopColor: selectColor(elem, colors, index), stopOpacity: 0.4 }), _jsx("stop", { offset: "95%", stopColor: 'rgba(0,0,0,0)', stopOpacity: 0 })] }) }, `defs${elem.field + index}`))), yAxisFields.map((elem, index) => (_jsx(Area, { name: elem.label, type: "linear", dataKey: elem.field, stroke: selectColor(elem, colors, index), fill: `url(#gradient${index})`, strokeWidth: 2, dot: false, isAnimationActive: isAnimationActive }, elem.field)))] }) }) }));
|
|
68
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LineChart.js","sourceRoot":"","sources":["../../../src/components/Chart/LineChart.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,60 +1,32 @@
|
|
|
1
|
-
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
-
};
|
|
28
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
30
2
|
/* eslint-disable react/display-name */
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
const Dropdown =
|
|
3
|
+
import React, { useRef, useState } from 'react';
|
|
4
|
+
import { HoveredValueContext, SelectedValueContext } from '../../contexts';
|
|
5
|
+
import { useInternalState, useSelectOnKeyDown } from '../../hooks';
|
|
6
|
+
import { ArrowDownHeadIcon } from '../../assets';
|
|
7
|
+
import { mergeRefs } from '../../lib';
|
|
8
|
+
import { constructValueToNameMapping, hasValue } from '../selectUtils';
|
|
9
|
+
import Modal from '../Modal';
|
|
10
|
+
const Dropdown = React.forwardRef((props, ref) => {
|
|
39
11
|
const { defaultValue, value, onValueChange, placeholder = 'Select...', disabled = false, icon, children, className, theme, ...other } = props;
|
|
40
|
-
const [selectedValue, setSelectedValue] =
|
|
41
|
-
const [isFocused, setIsFocused] =
|
|
42
|
-
const dropdownRef =
|
|
12
|
+
const [selectedValue, setSelectedValue] = useInternalState(defaultValue, value);
|
|
13
|
+
const [isFocused, setIsFocused] = useState(false);
|
|
14
|
+
const dropdownRef = useRef(null);
|
|
43
15
|
const Icon = icon;
|
|
44
|
-
const valueToNameMapping =
|
|
45
|
-
const optionValues =
|
|
16
|
+
const valueToNameMapping = constructValueToNameMapping(children);
|
|
17
|
+
const optionValues = React.Children.map(children, (child) => child.props.value);
|
|
46
18
|
const handleValueChange = (value) => {
|
|
47
19
|
setSelectedValue(value);
|
|
48
20
|
setIsFocused(false);
|
|
49
21
|
onValueChange?.(value);
|
|
50
22
|
};
|
|
51
|
-
const [hoveredValue, handleKeyDown] =
|
|
52
|
-
const hasSelection =
|
|
53
|
-
return ((
|
|
23
|
+
const [hoveredValue, handleKeyDown] = useSelectOnKeyDown(handleValueChange, optionValues, isFocused, setIsFocused, selectedValue);
|
|
24
|
+
const hasSelection = hasValue(selectedValue);
|
|
25
|
+
return (_jsxs("div", { ref: mergeRefs([dropdownRef, ref]), onKeyDown: handleKeyDown, style: {
|
|
54
26
|
position: 'relative',
|
|
55
27
|
width: '100%',
|
|
56
28
|
minWidth: '10rem',
|
|
57
|
-
}, ...other, children: [(
|
|
29
|
+
}, ...other, children: [_jsxs("button", { style: {
|
|
58
30
|
display: 'flex',
|
|
59
31
|
justifyContent: 'space-between',
|
|
60
32
|
alignItems: 'center',
|
|
@@ -66,20 +38,20 @@ const Dropdown = react_1.default.forwardRef((props, ref) => {
|
|
|
66
38
|
boxShadow: '0 1px 2px 0 rgba(0, 0, 0, 0.05)',
|
|
67
39
|
cursor: 'pointer',
|
|
68
40
|
background: 'white',
|
|
69
|
-
}, type: "button", onClick: () => setIsFocused(!isFocused), disabled: disabled, children: [(
|
|
41
|
+
}, type: "button", onClick: () => setIsFocused(!isFocused), disabled: disabled, children: [_jsxs("div", { style: {
|
|
70
42
|
display: 'flex',
|
|
71
43
|
justifyContent: 'start',
|
|
72
44
|
alignItems: 'center',
|
|
73
45
|
whiteSpace: 'nowrap',
|
|
74
46
|
overflow: 'hidden',
|
|
75
47
|
textOverflow: 'ellipsis',
|
|
76
|
-
}, children: [Icon ? ((
|
|
48
|
+
}, children: [Icon ? (_jsx(Icon, { style: {
|
|
77
49
|
flexShrink: 0,
|
|
78
50
|
height: '1.5rem',
|
|
79
51
|
width: '1.5rem',
|
|
80
52
|
color: theme?.secondaryTextColor || '#6C727F',
|
|
81
53
|
marginRight: '1.5rem',
|
|
82
|
-
}, "aria-hidden": "true" })) : null, (
|
|
54
|
+
}, "aria-hidden": "true" })) : null, _jsx("p", { style: {
|
|
83
55
|
margin: 0,
|
|
84
56
|
fontSize: '13px',
|
|
85
57
|
fontWeight: '500',
|
|
@@ -88,13 +60,12 @@ const Dropdown = react_1.default.forwardRef((props, ref) => {
|
|
|
88
60
|
textOverflow: 'ellipsis',
|
|
89
61
|
}, children: selectedValue
|
|
90
62
|
? valueToNameMapping.get(selectedValue)
|
|
91
|
-
: placeholder })] }), (
|
|
63
|
+
: placeholder })] }), _jsx(ArrowDownHeadIcon, { style: {
|
|
92
64
|
flexShrink: 0,
|
|
93
65
|
height: '1.5rem',
|
|
94
66
|
width: '1.5rem',
|
|
95
67
|
marginRight: '-0.25rem',
|
|
96
68
|
color: theme?.secondaryTextColor || '#6C727F',
|
|
97
|
-
}, "aria-hidden": "true" })] }), (
|
|
69
|
+
}, "aria-hidden": "true" })] }), _jsx(Modal, { theme: theme, showModal: isFocused, setShowModal: setIsFocused, parentRef: dropdownRef, children: _jsx(SelectedValueContext.Provider, { value: { selectedValue, handleValueChange }, children: _jsx(HoveredValueContext.Provider, { value: { hoveredValue }, children: React.Children.map(children, (child) => React.cloneElement(child)) }) }) })] }));
|
|
98
70
|
});
|
|
99
|
-
|
|
100
|
-
//# sourceMappingURL=Dropdown.js.map
|
|
71
|
+
export default Dropdown;
|
|
@@ -1,40 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
27
2
|
/* eslint-disable react/display-name */
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
const DropdownItem =
|
|
3
|
+
import React, { useContext } from 'react';
|
|
4
|
+
import { HoveredValueContext, SelectedValueContext } from '../../contexts';
|
|
5
|
+
const DropdownItem = React.forwardRef((props, ref) => {
|
|
31
6
|
const { value, text, icon, className, theme, lastItem, ...other } = props;
|
|
32
|
-
const { selectedValue, handleValueChange } =
|
|
33
|
-
const { hoveredValue } =
|
|
7
|
+
const { selectedValue, handleValueChange } = useContext(SelectedValueContext);
|
|
8
|
+
const { hoveredValue } = useContext(HoveredValueContext);
|
|
34
9
|
const isActive = selectedValue === value;
|
|
35
10
|
const isHovered = hoveredValue === value;
|
|
36
11
|
const Icon = icon ? icon : null;
|
|
37
|
-
return ((
|
|
12
|
+
return (_jsx("button", { ref: ref, style: {
|
|
38
13
|
display: 'flex',
|
|
39
14
|
alignItems: 'center',
|
|
40
15
|
justifyContent: 'start',
|
|
@@ -55,7 +30,7 @@ const DropdownItem = react_1.default.forwardRef((props, ref) => {
|
|
|
55
30
|
borderLeft: 'none',
|
|
56
31
|
cursor: 'pointer',
|
|
57
32
|
color: theme?.secondaryTextColor || '#364153',
|
|
58
|
-
}, type: "button", onClick: () => handleValueChange?.(value), ...other, children: (
|
|
33
|
+
}, type: "button", onClick: () => handleValueChange?.(value), ...other, children: _jsx("p", { style: {
|
|
59
34
|
margin: 0,
|
|
60
35
|
fontFamily: theme?.fontFamily,
|
|
61
36
|
color: theme?.primaryTextColor,
|
|
@@ -64,5 +39,4 @@ const DropdownItem = react_1.default.forwardRef((props, ref) => {
|
|
|
64
39
|
textOverflow: 'ellipsis',
|
|
65
40
|
}, children: text ?? value }) }));
|
|
66
41
|
});
|
|
67
|
-
|
|
68
|
-
//# sourceMappingURL=DropdownItem.js.map
|
|
42
|
+
export default DropdownItem;
|
|
@@ -1,11 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.DropdownItem = exports.Dropdown = void 0;
|
|
7
|
-
var Dropdown_1 = require("./Dropdown");
|
|
8
|
-
Object.defineProperty(exports, "Dropdown", { enumerable: true, get: function () { return __importDefault(Dropdown_1).default; } });
|
|
9
|
-
var DropdownItem_1 = require("./DropdownItem");
|
|
10
|
-
Object.defineProperty(exports, "DropdownItem", { enumerable: true, get: function () { return __importDefault(DropdownItem_1).default; } });
|
|
11
|
-
//# sourceMappingURL=index.js.map
|
|
1
|
+
export { default as Dropdown } from "./Dropdown";
|
|
2
|
+
export { default as DropdownItem } from "./DropdownItem";
|
|
@@ -1,39 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
27
2
|
// @ts-nocheck
|
|
28
3
|
/* eslint-disable react/display-name */
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
const Modal =
|
|
4
|
+
import React, { useCallback, useEffect, useRef, useState } from 'react';
|
|
5
|
+
import { useOnClickOutside, useOnWindowResize } from '../../hooks';
|
|
6
|
+
import { mergeRefs } from '../../lib';
|
|
7
|
+
const Modal = React.forwardRef((props, ref) => {
|
|
33
8
|
const { showModal, setShowModal, parentRef, width, maxHeight = '18rem', children, className, theme, ...other } = props;
|
|
34
|
-
const [modalExceedsWindow, setModalExceedsWindow] =
|
|
35
|
-
const modalRef =
|
|
36
|
-
const checkModalExceedsWindow =
|
|
9
|
+
const [modalExceedsWindow, setModalExceedsWindow] = useState(false);
|
|
10
|
+
const modalRef = useRef(null);
|
|
11
|
+
const checkModalExceedsWindow = useCallback((modalWidth, windowWidth) => {
|
|
37
12
|
if (!parentRef.current) {
|
|
38
13
|
return false;
|
|
39
14
|
}
|
|
@@ -43,7 +18,7 @@ const Modal = react_1.default.forwardRef((props, ref) => {
|
|
|
43
18
|
const getAbsoluteSpacing = () => {
|
|
44
19
|
return modalExceedsWindow ? '0' : '0';
|
|
45
20
|
};
|
|
46
|
-
|
|
21
|
+
useOnClickOutside(modalRef, e => {
|
|
47
22
|
// Exclude click on trigger button (e.g. Dropdown Button) from outside click handler
|
|
48
23
|
const isTriggerElem = parentRef
|
|
49
24
|
? parentRef.current?.contains(e.target)
|
|
@@ -53,17 +28,17 @@ const Modal = react_1.default.forwardRef((props, ref) => {
|
|
|
53
28
|
}
|
|
54
29
|
});
|
|
55
30
|
// Execute only when modal is of absolute size
|
|
56
|
-
|
|
31
|
+
useEffect(() => {
|
|
57
32
|
if (width) {
|
|
58
33
|
setModalExceedsWindow(checkModalExceedsWindow(width, window.innerWidth));
|
|
59
34
|
}
|
|
60
35
|
}, [checkModalExceedsWindow, parentRef, width]);
|
|
61
|
-
|
|
36
|
+
useOnWindowResize(() => {
|
|
62
37
|
if (width) {
|
|
63
38
|
setModalExceedsWindow(checkModalExceedsWindow(width, window.innerWidth));
|
|
64
39
|
}
|
|
65
40
|
});
|
|
66
|
-
return showModal ? ((
|
|
41
|
+
return showModal ? (_jsx("div", { ref: mergeRefs([modalRef, ref]), style: {
|
|
67
42
|
position: 'absolute',
|
|
68
43
|
zIndex: 10,
|
|
69
44
|
overflowY: 'auto',
|
|
@@ -87,5 +62,4 @@ const Modal = react_1.default.forwardRef((props, ref) => {
|
|
|
87
62
|
boxShadow: '0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)',
|
|
88
63
|
}, ...other, children: children })) : null;
|
|
89
64
|
});
|
|
90
|
-
|
|
91
|
-
//# sourceMappingURL=Modal.js.map
|
|
65
|
+
export default Modal;
|
|
@@ -1,9 +1 @@
|
|
|
1
|
-
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
var Modal_1 = require("./Modal");
|
|
8
|
-
Object.defineProperty(exports, "default", { enumerable: true, get: function () { return __importDefault(Modal_1).default; } });
|
|
9
|
-
//# sourceMappingURL=index.js.map
|
|
1
|
+
export { default } from "./Modal";
|
|
@@ -1,10 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
const assets_1 = require("../assets");
|
|
6
|
-
function QuillCard({ children, theme, onClick, isSelected = false, clickable = true, onClose, minHeight = 0, style = {}, }) {
|
|
7
|
-
return ((0, jsx_runtime_1.jsxs)("div", { className: clickable ? 'quill-card-hover' : '', style: {
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { XIcon } from '../assets';
|
|
3
|
+
export function QuillCard({ children, theme, onClick, isSelected = false, clickable = true, onClose, minHeight = 0, style = {}, }) {
|
|
4
|
+
return (_jsxs("div", { className: clickable ? 'quill-card-hover' : '', style: {
|
|
8
5
|
backgroundColor: theme.backgroundColor || 'white',
|
|
9
6
|
cursor: clickable ? 'pointer' : 'default',
|
|
10
7
|
padding: 16,
|
|
@@ -17,7 +14,7 @@ function QuillCard({ children, theme, onClick, isSelected = false, clickable = t
|
|
|
17
14
|
position: 'relative',
|
|
18
15
|
minHeight: minHeight,
|
|
19
16
|
...style,
|
|
20
|
-
}, onClick: onClick, children: [(
|
|
17
|
+
}, onClick: onClick, children: [_jsx("style", { children: `
|
|
21
18
|
.quill-card-hover:hover {
|
|
22
19
|
background-color: #f9f9f9 !important;
|
|
23
20
|
.quill-delete-button {
|
|
@@ -27,7 +24,7 @@ function QuillCard({ children, theme, onClick, isSelected = false, clickable = t
|
|
|
27
24
|
background-color: #f5f5f5;
|
|
28
25
|
}
|
|
29
26
|
}
|
|
30
|
-
` }), onClose && ((
|
|
27
|
+
` }), onClose && (_jsxs("button", { className: "quill-delete-button", type: "button", onClick: e => {
|
|
31
28
|
e.stopPropagation();
|
|
32
29
|
onClose();
|
|
33
30
|
}, style: {
|
|
@@ -45,13 +42,11 @@ function QuillCard({ children, theme, onClick, isSelected = false, clickable = t
|
|
|
45
42
|
justifyContent: 'center',
|
|
46
43
|
borderRadius: 6,
|
|
47
44
|
float: 'right',
|
|
48
|
-
}, children: [(
|
|
45
|
+
}, children: [_jsx("style", { children: `
|
|
49
46
|
.quill-delete-button {
|
|
50
47
|
background-color: white;
|
|
51
48
|
}
|
|
52
49
|
.quill-delete-button:hover {
|
|
53
50
|
background-color: rgba(56, 65, 81, 0.03);
|
|
54
|
-
}` }), (
|
|
51
|
+
}` }), _jsx(XIcon, { height: "20", width: "20", fill: "#6C727F" })] })), _jsx("div", { style: { overflowX: 'scroll' }, children: children })] }));
|
|
55
52
|
}
|
|
56
|
-
exports.QuillCard = QuillCard;
|
|
57
|
-
//# sourceMappingURL=QuillCard.js.map
|
|
@@ -1,19 +1,37 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
interface
|
|
3
|
-
name: string;
|
|
4
|
-
fieldType: string;
|
|
2
|
+
export interface ColumnSelectorInfo {
|
|
5
3
|
tableName: string;
|
|
4
|
+
columns: {
|
|
5
|
+
name: string;
|
|
6
|
+
}[];
|
|
6
7
|
}
|
|
7
8
|
interface ColumnSelectorProps {
|
|
8
9
|
schemaInfo: any[];
|
|
9
10
|
theme: any;
|
|
11
|
+
selectedPivot: {
|
|
12
|
+
rowField: string;
|
|
13
|
+
rowFieldType: string;
|
|
14
|
+
columnField?: string;
|
|
15
|
+
valueField: string;
|
|
16
|
+
aggregationType: 'sum' | 'count' | 'average';
|
|
17
|
+
} | undefined;
|
|
10
18
|
PopoverComponent?: any;
|
|
11
19
|
ButtonComponent?: any;
|
|
20
|
+
SecondaryButtonComponent?: any;
|
|
12
21
|
parentRef?: React.MutableRefObject<undefined>;
|
|
13
|
-
|
|
14
|
-
|
|
22
|
+
columnSelectorInfo: ColumnSelectorInfo;
|
|
23
|
+
setColumnSelectorInfo: (columnSelectorInfo: ColumnSelectorInfo) => void;
|
|
15
24
|
customerFieldName: string;
|
|
25
|
+
ModalComponent: any;
|
|
26
|
+
isOpen: boolean;
|
|
27
|
+
setIsOpen: (isOpen: boolean) => void;
|
|
28
|
+
pivotColumns: {
|
|
29
|
+
label: any;
|
|
30
|
+
field: any;
|
|
31
|
+
}[];
|
|
32
|
+
setFilters: (filters: any) => void;
|
|
33
|
+
setStringFields: (fields: any) => void;
|
|
16
34
|
}
|
|
17
|
-
export default function ColumnSelector({ schemaInfo, theme, parentRef,
|
|
35
|
+
export default function ColumnSelector({ schemaInfo, theme, parentRef, columnSelectorInfo, PopoverComponent, ButtonComponent, SecondaryButtonComponent, setColumnSelectorInfo, customerFieldName, ModalComponent, isOpen, setIsOpen, pivotColumns, setFilters, setStringFields, }: ColumnSelectorProps): import("react/jsx-runtime").JSX.Element;
|
|
18
36
|
export {};
|
|
19
37
|
//# sourceMappingURL=ColumnSelector.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ColumnSelector.d.ts","sourceRoot":"","sources":["../../../src/components/ReportBuilder/ColumnSelector.tsx"],"names":[],"mappings":"AAAA,OAAO,KAMN,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"ColumnSelector.d.ts","sourceRoot":"","sources":["../../../src/components/ReportBuilder/ColumnSelector.tsx"],"names":[],"mappings":"AAAA,OAAO,KAMN,MAAM,OAAO,CAAC;AAUf,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAC7B;AAQD,UAAU,mBAAmB;IAC3B,UAAU,EAAE,GAAG,EAAE,CAAC;IAClB,KAAK,EAAE,GAAG,CAAC;IACX,aAAa,EACT;QACE,QAAQ,EAAE,MAAM,CAAC;QACjB,YAAY,EAAE,MAAM,CAAC;QACrB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,UAAU,EAAE,MAAM,CAAC;QACnB,eAAe,EAAE,KAAK,GAAG,OAAO,GAAG,SAAS,CAAC;KAC9C,GACD,SAAS,CAAC;IACd,gBAAgB,CAAC,EAAE,GAAG,CAAC;IACvB,eAAe,CAAC,EAAE,GAAG,CAAC;IACtB,wBAAwB,CAAC,EAAE,GAAG,CAAC;IAC/B,SAAS,CAAC,EAAE,KAAK,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;IAC9C,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,qBAAqB,EAAE,CAAC,kBAAkB,EAAE,kBAAkB,KAAK,IAAI,CAAC;IACxE,iBAAiB,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,GAAG,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IACrC,YAAY,EAAE;QAAE,KAAK,EAAE,GAAG,CAAC;QAAC,KAAK,EAAE,GAAG,CAAA;KAAE,EAAE,CAAC;IAC3C,UAAU,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,IAAI,CAAC;IACnC,eAAe,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,CAAC;CACxC;AAED,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EACrC,UAAU,EACV,KAAK,EACL,SAAS,EACT,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,wBAAwB,EACxB,qBAAqB,EACrB,iBAAiB,EACjB,cAAc,EACd,MAAM,EACN,SAAS,EACT,YAAY,EACZ,UAAU,EACV,eAAe,GAChB,EAAE,mBAAmB,2CAiNrB"}
|
|
@@ -2,14 +2,19 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
2
2
|
import { useEffect, useState, } from 'react';
|
|
3
3
|
import { MemoizedTextInput } from '../UiComponents';
|
|
4
4
|
import { formatColumnData, } from '../../utils/schema';
|
|
5
|
-
export default function ColumnSelector({ schemaInfo, theme, parentRef,
|
|
6
|
-
const [isOpen, setIsOpen] = useState(false);
|
|
5
|
+
export default function ColumnSelector({ schemaInfo, theme, parentRef, columnSelectorInfo, PopoverComponent, ButtonComponent, SecondaryButtonComponent, setColumnSelectorInfo, customerFieldName, ModalComponent, isOpen, setIsOpen, pivotColumns, setFilters, setStringFields, }) {
|
|
7
6
|
const [allColumns, setAllCoumns] = useState([]);
|
|
8
7
|
const [searchQuery, setSearchQuery] = useState('');
|
|
8
|
+
const [selectableTables, setSelectableTables] = useState([]);
|
|
9
|
+
const [showPivotColumnRemovalMessage, setShowPivotColumnRemovalMessage] = useState(false);
|
|
10
|
+
// const modalRef = useRef<HTMLDivElement>(null);
|
|
11
|
+
// useOnClickOutside(modalRef, (e) => {
|
|
12
|
+
// // Exclude click on trigger button (e.g. Dropdown Button) from outside click handler
|
|
13
|
+
// setIsOpen(false);
|
|
14
|
+
// });
|
|
9
15
|
useEffect(() => {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
}, [schemaInfo]);
|
|
16
|
+
setAllCoumns(formatColumnData(schemaInfo, columnSelectorInfo, customerFieldName));
|
|
17
|
+
}, [schemaInfo, columnSelectorInfo]);
|
|
13
18
|
const updateSelectedColumns = (selectedColumn) => {
|
|
14
19
|
const currentAllColumns = [...allColumns];
|
|
15
20
|
// loop through all columns if selected column is found then toggle selected
|
|
@@ -41,7 +46,19 @@ export default function ColumnSelector({ schemaInfo, theme, parentRef, selectedT
|
|
|
41
46
|
column.selectable = selectable;
|
|
42
47
|
}
|
|
43
48
|
});
|
|
49
|
+
setSelectableTables(selectableTables);
|
|
44
50
|
setAllCoumns(currentAllColumns);
|
|
51
|
+
if (pivotColumns) {
|
|
52
|
+
let displayError = false;
|
|
53
|
+
pivotColumns.find((column) => {
|
|
54
|
+
currentAllColumns.forEach((col) => {
|
|
55
|
+
if (!col.selected && col.name === column.field) {
|
|
56
|
+
displayError = true;
|
|
57
|
+
}
|
|
58
|
+
});
|
|
59
|
+
});
|
|
60
|
+
setShowPivotColumnRemovalMessage(displayError);
|
|
61
|
+
}
|
|
45
62
|
};
|
|
46
63
|
const memoizedTextInputChange = (value) => {
|
|
47
64
|
const currentAllColumns = [...allColumns];
|
|
@@ -60,7 +77,25 @@ export default function ColumnSelector({ schemaInfo, theme, parentRef, selectedT
|
|
|
60
77
|
setSearchQuery(value);
|
|
61
78
|
setAllCoumns(currentAllColumns);
|
|
62
79
|
};
|
|
63
|
-
|
|
80
|
+
const unselectAll = () => {
|
|
81
|
+
const currentAllColumns = [...allColumns];
|
|
82
|
+
currentAllColumns.forEach((column) => {
|
|
83
|
+
column.selected = false;
|
|
84
|
+
column.selectable = true;
|
|
85
|
+
});
|
|
86
|
+
setAllCoumns(currentAllColumns);
|
|
87
|
+
};
|
|
88
|
+
return (_jsx(ModalComponent, { title: "Select columns", setIsOpen: setIsOpen, isOpen: isOpen, onClose: () => setIsOpen(false), children: _jsxs("div", { style: {
|
|
89
|
+
// maxHeight: 600,
|
|
90
|
+
overflowY: 'scroll',
|
|
91
|
+
maxHeight: '90vh',
|
|
92
|
+
minWidth: 600,
|
|
93
|
+
padding: 20,
|
|
94
|
+
}, children: [_jsxs("div", { style: {
|
|
95
|
+
display: 'flex',
|
|
96
|
+
flexDirection: 'row',
|
|
97
|
+
justifyContent: 'space-between',
|
|
98
|
+
}, children: [_jsx(MemoizedTextInput, { value: searchQuery, onChange: memoizedTextInputChange, placeholder: 'Search', id: 'quill-search-bar', style: { width: '72%' } }), _jsx(SecondaryButtonComponent, { label: 'Unselect All', onClick: unselectAll })] }), _jsx("br", {}), allColumns.map((column, index) => {
|
|
64
99
|
if (column.selectable && column.textFiltered) {
|
|
65
100
|
return (_jsxs("div", { style: {
|
|
66
101
|
display: 'flex',
|
|
@@ -71,7 +106,7 @@ export default function ColumnSelector({ schemaInfo, theme, parentRef, selectedT
|
|
|
71
106
|
updateSelectedColumns(column);
|
|
72
107
|
} }), _jsx("div", { style: { width: 6 } }), _jsx("div", { children: column.displayName })] }, column.name + index));
|
|
73
108
|
}
|
|
74
|
-
}), _jsx("div", { children: _jsx(ButtonComponent, { id: "custom-button", onClick: () => {
|
|
109
|
+
}), showPivotColumnRemovalMessage && (_jsx("div", { style: { color: 'red' }, children: "Warning: Removing the pivot columns will remove the pivot table" })), _jsx("br", {}), _jsx("div", { children: _jsx(ButtonComponent, { id: "custom-button", onClick: () => {
|
|
75
110
|
const selectedColumns = allColumns.reduce((acc, column) => {
|
|
76
111
|
if (column.selected) {
|
|
77
112
|
acc.push({
|
|
@@ -82,6 +117,19 @@ export default function ColumnSelector({ schemaInfo, theme, parentRef, selectedT
|
|
|
82
117
|
}
|
|
83
118
|
return acc;
|
|
84
119
|
}, []);
|
|
85
|
-
|
|
120
|
+
if (selectedColumns.length === 0) {
|
|
121
|
+
alert('Please select at least one column');
|
|
122
|
+
return;
|
|
123
|
+
}
|
|
124
|
+
if (columnSelectorInfo.tableName !== selectableTables[0]) {
|
|
125
|
+
setFilters([]);
|
|
126
|
+
setStringFields({});
|
|
127
|
+
}
|
|
128
|
+
setColumnSelectorInfo({
|
|
129
|
+
tableName: selectableTables[0] ? selectableTables[0] : '',
|
|
130
|
+
columns: selectedColumns,
|
|
131
|
+
});
|
|
132
|
+
setIsOpen(false);
|
|
133
|
+
setShowPivotColumnRemovalMessage(false);
|
|
86
134
|
}, label: 'Select' }) })] }) }));
|
|
87
135
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ColumnSelector.js","sourceRoot":"","sources":["../../../src/components/ReportBuilder/ColumnSelector.tsx"],"names":[],"mappings":"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"}
|