@quillsql/react 2.9.1 → 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 +1 -0
- package/dist/AddToDashboardModal.d.ts.map +1 -1
- package/dist/AddToDashboardModal.js +152 -181
- package/dist/AddToDashboardModal.js.map +1 -1
- package/dist/BarList.d.ts +1 -0
- package/dist/BarList.js +36 -44
- package/dist/Chart.d.ts +5 -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 +1 -0
- 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 +1 -0
- 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 +20 -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 +4 -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.d.ts +1 -0
- package/dist/DateRangePicker/Calendar.js +41 -46
- package/dist/DateRangePicker/DateRangePicker.d.ts +1 -0
- package/dist/DateRangePicker/DateRangePicker.js +32 -61
- package/dist/DateRangePicker/DateRangePickerButton.d.ts +1 -0
- package/dist/DateRangePicker/DateRangePickerButton.js +14 -17
- package/dist/DateRangePicker/dateRangePickerUtils.d.ts +1 -0
- package/dist/DateRangePicker/dateRangePickerUtils.js +76 -90
- package/dist/DateRangePicker/index.d.ts +1 -0
- package/dist/DateRangePicker/index.js +1 -9
- package/dist/PieChart.d.ts +1 -0
- package/dist/PieChart.js +35 -70
- package/dist/QuillProvider.d.ts +1 -0
- package/dist/QuillProvider.js +4 -7
- package/dist/ReportBuilder.d.ts +1 -0
- package/dist/ReportBuilder.js +120 -129
- package/dist/SQLEditor.d.ts +1 -0
- package/dist/SQLEditor.js +56 -65
- package/dist/SQLEditor.js.map +1 -1
- package/dist/Table.d.ts +1 -0
- package/dist/Table.d.ts.map +1 -1
- package/dist/Table.js +65 -65
- package/dist/Table.js.map +1 -1
- package/dist/TableChart.d.ts +1 -0
- 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.d.ts +1 -0
- package/dist/assets/ArrowDownHeadIcon.js +3 -6
- package/dist/assets/ArrowDownIcon.d.ts +1 -0
- package/dist/assets/ArrowDownIcon.js +3 -6
- package/dist/assets/ArrowDownRightIcon.d.ts +1 -0
- package/dist/assets/ArrowDownRightIcon.js +3 -6
- package/dist/assets/ArrowLeftHeadIcon.d.ts +1 -0
- package/dist/assets/ArrowLeftHeadIcon.js +3 -6
- package/dist/assets/ArrowRightHeadIcon.d.ts +1 -0
- package/dist/assets/ArrowRightHeadIcon.js +3 -6
- package/dist/assets/ArrowRightIcon.d.ts +1 -0
- package/dist/assets/ArrowRightIcon.js +3 -6
- package/dist/assets/ArrowUpHeadIcon.d.ts +1 -0
- package/dist/assets/ArrowUpHeadIcon.js +3 -6
- package/dist/assets/ArrowUpIcon.d.ts +1 -0
- package/dist/assets/ArrowUpIcon.js +3 -6
- package/dist/assets/ArrowUpRightIcon.d.ts +1 -0
- package/dist/assets/ArrowUpRightIcon.js +3 -6
- package/dist/assets/CalendarIcon.d.ts +1 -0
- package/dist/assets/CalendarIcon.js +3 -6
- package/dist/assets/CalendarNormalIcon.d.ts +1 -0
- package/dist/assets/CalendarNormalIcon.js +3 -6
- package/dist/assets/DoubleArrowLeftHeadIcon.d.ts +1 -0
- package/dist/assets/DoubleArrowLeftHeadIcon.js +3 -6
- package/dist/assets/DoubleArrowRightHeadIcon.d.ts +1 -0
- package/dist/assets/DoubleArrowRightHeadIcon.js +3 -6
- package/dist/assets/ExclamationFilledIcon.d.ts +1 -0
- package/dist/assets/ExclamationFilledIcon.js +3 -6
- package/dist/assets/FilterIcon.d.ts +1 -0
- package/dist/assets/FilterIcon.js +3 -6
- package/dist/assets/LoadingSpinner.d.ts +1 -0
- package/dist/assets/LoadingSpinner.js +3 -6
- package/dist/assets/RefreshIcon.d.ts +1 -0
- package/dist/assets/RefreshIcon.js +3 -6
- package/dist/assets/SearchIcon.d.ts +1 -0
- package/dist/assets/SearchIcon.js +3 -6
- package/dist/assets/UpLeftArrowsIcon.d.ts +1 -0
- package/dist/assets/UpLeftArrowsIcon.js +3 -6
- package/dist/assets/XCircleIcon.d.ts +1 -0
- package/dist/assets/XCircleIcon.js +3 -6
- package/dist/assets/XIcon.d.ts +1 -0
- package/dist/assets/XIcon.js +3 -6
- package/dist/assets/index.d.ts +1 -0
- package/dist/assets/index.js +21 -49
- package/dist/components/Banner/index.d.ts +1 -0
- package/dist/components/Banner/index.js +6 -10
- package/dist/components/BigModal/BigModal.d.ts +1 -0
- 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.d.ts +1 -0
- package/dist/components/Dropdown/Dropdown.js +24 -53
- package/dist/components/Dropdown/DropdownItem.d.ts +1 -0
- package/dist/components/Dropdown/DropdownItem.js +9 -35
- package/dist/components/Dropdown/index.d.ts +1 -0
- package/dist/components/Dropdown/index.js +2 -11
- package/dist/components/Modal/Modal.d.ts +1 -0
- package/dist/components/Modal/Modal.js +13 -39
- package/dist/components/Modal/index.d.ts +1 -0
- package/dist/components/Modal/index.js +1 -9
- package/dist/components/QuillCard.d.ts +1 -0
- 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.d.ts +1 -0
- package/dist/components/SqlTextEditor.js +4 -11
- package/dist/components/UiComponents.d.ts +1 -0
- package/dist/components/UiComponents.js +37 -51
- package/dist/components/selectUtils.d.ts +1 -0
- package/dist/components/selectUtils.js +6 -17
- package/dist/contexts/BaseColorContext.d.ts +1 -0
- package/dist/contexts/BaseColorContext.js +3 -6
- package/dist/contexts/HoveredValueContext.d.ts +1 -0
- package/dist/contexts/HoveredValueContext.js +3 -6
- package/dist/contexts/RootStylesContext.d.ts +1 -0
- package/dist/contexts/RootStylesContext.js +3 -6
- package/dist/contexts/SelectedValueContext.d.ts +1 -0
- package/dist/contexts/SelectedValueContext.js +3 -6
- package/dist/contexts/index.d.ts +1 -0
- package/dist/contexts/index.js +4 -15
- package/dist/hooks/index.d.ts +1 -0
- package/dist/hooks/index.js +4 -15
- package/dist/hooks/useDashboard.d.ts +1 -0
- package/dist/hooks/useDashboard.js +10 -15
- package/dist/hooks/useInternalState.d.ts +1 -0
- package/dist/hooks/useInternalState.js +3 -6
- package/dist/hooks/useOnClickOutside.d.ts +1 -0
- package/dist/hooks/useOnClickOutside.js +3 -6
- package/dist/hooks/useOnWindowResize.d.ts +1 -0
- package/dist/hooks/useOnWindowResize.js +4 -7
- package/dist/hooks/useQuill.d.ts +3 -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.d.ts +1 -0
- package/dist/hooks/useSelectOnKeyDown.js +4 -7
- package/dist/index.d.ts +1 -0
- package/dist/index.js +13 -33
- package/dist/internals/ReportBuilder/PivotList.d.ts +1 -0
- package/dist/internals/ReportBuilder/PivotList.js +14 -20
- package/dist/internals/ReportBuilder/PivotModal.d.ts +3 -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.d.ts +1 -0
- package/dist/internals/ReportBuilder/PivotModal.spec.js +70 -73
- package/dist/lib/font.d.ts +1 -0
- package/dist/lib/font.js +2 -6
- package/dist/lib/index.d.ts +1 -0
- package/dist/lib/index.js +3 -20
- package/dist/lib/inputTypes.d.ts +1 -0
- package/dist/lib/inputTypes.js +1 -3
- package/dist/lib/utils.d.ts +1 -0
- 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.d.ts +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.d.ts +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.d.ts +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 +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.d.ts +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.d.ts +1 -0
- package/dist/utils/valueFormatter.js +19 -24
- package/dist/utils/valueFormatterCSV.d.ts +1 -0
- 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
package/dist/ChartBuilder.js
CHANGED
|
@@ -1,22 +1,17 @@
|
|
|
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.numberFormatOptions = exports.snakeCaseToTitleCase = void 0;
|
|
7
|
-
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
8
2
|
// @ts-nocheck
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
3
|
+
import { useEffect, useRef, useState, useContext, useMemo } from 'react';
|
|
4
|
+
import { ClientContext, DashboardContext, DashboardFiltersContext, SchemaContext, ThemeContext, } from './Context';
|
|
5
|
+
import { getData, getDataFromCloud } from './utils/dataFetcher';
|
|
6
|
+
import { getPostgresBasicType } from './ReportBuilder';
|
|
7
|
+
import { PivotModal, generatePivotTable, isDateField, } from './internals/ReportBuilder/PivotModal';
|
|
8
|
+
import { PivotCard } from './internals/ReportBuilder/PivotList';
|
|
9
|
+
import Chart from './Chart';
|
|
10
|
+
import { MemoizedModal, MemoizedTextInput, MemoizedSelect, MemoizedButton, MemoizedSecondaryButton, MemoizedHeader, MemoizedLabel, MemoizedDeleteButton, MemoizedText, MemoizedPopover, } from './components/UiComponents';
|
|
11
|
+
import Banner from './components/Banner';
|
|
12
|
+
import { mergeComparisonRange } from './utils/merge';
|
|
18
13
|
const CHART_TYPES = ['column', 'line', 'table', 'metric', 'bar', 'pie'];
|
|
19
|
-
function snakeCaseToTitleCase(str) {
|
|
14
|
+
export function snakeCaseToTitleCase(str) {
|
|
20
15
|
if (!str) {
|
|
21
16
|
return str;
|
|
22
17
|
}
|
|
@@ -28,7 +23,6 @@ function snakeCaseToTitleCase(str) {
|
|
|
28
23
|
: word.charAt(0).toUpperCase() + word.slice(1).toLowerCase())
|
|
29
24
|
.join(' ');
|
|
30
25
|
}
|
|
31
|
-
exports.snakeCaseToTitleCase = snakeCaseToTitleCase;
|
|
32
26
|
const POSTGRES_DATE_TYPES = [
|
|
33
27
|
'timestamp',
|
|
34
28
|
'date',
|
|
@@ -40,7 +34,7 @@ async function getReferencedTables(client, sqlQuery, dbTables) {
|
|
|
40
34
|
// const parser = new Parser();
|
|
41
35
|
const tables = [];
|
|
42
36
|
const withAliases = [];
|
|
43
|
-
const resp = await
|
|
37
|
+
const resp = await getDataFromCloud(client, `astify`, { query: sqlQuery });
|
|
44
38
|
let ast = resp.ast;
|
|
45
39
|
ast = ast.length ? ast[0] : ast;
|
|
46
40
|
if (ast.with && ast.with.length) {
|
|
@@ -74,7 +68,7 @@ const AGGREGATION_TYPES = [
|
|
|
74
68
|
{ label: 'count', value: 'count' },
|
|
75
69
|
{ label: 'average', value: 'avg' },
|
|
76
70
|
];
|
|
77
|
-
|
|
71
|
+
export const numberFormatOptions = [
|
|
78
72
|
'whole_number',
|
|
79
73
|
'one_decimal_place',
|
|
80
74
|
'two_decimal_places',
|
|
@@ -98,30 +92,29 @@ const formatOptions = [
|
|
|
98
92
|
{ value: 'percent', label: 'percent' },
|
|
99
93
|
{ value: 'string', label: 'string' },
|
|
100
94
|
];
|
|
101
|
-
function ChartBuilder(props) {
|
|
102
|
-
const [theme] =
|
|
103
|
-
return ((
|
|
95
|
+
export default function ChartBuilder(props) {
|
|
96
|
+
const [theme] = useContext(ThemeContext);
|
|
97
|
+
return (_jsx(_Fragment, { children: props.Modal ? (_jsx(props.Modal, { isOpen: props.isOpen, setIsOpen: props.setIsOpen, title: props.title || 'Add to dashboard', onClose: () => props.setIsOpen(false), theme: theme, children: _jsx(ChartBuilderForm, { ...props }) })) : (_jsx(MemoizedModal, { setIsOpen: props.setIsOpen, isOpen: props.isOpen, onClose: () => props.setIsOpen(false), title: props.title || 'Add to dashboard', theme: theme, children: _jsx(ChartBuilderForm, { ...props }) })) }));
|
|
104
98
|
}
|
|
105
|
-
|
|
106
|
-
function ChartBuilderForm({ TextInput = UiComponents_1.MemoizedTextInput, Select = UiComponents_1.MemoizedSelect, Button = UiComponents_1.MemoizedButton, SecondaryButton = UiComponents_1.MemoizedSecondaryButton, Header = UiComponents_1.MemoizedHeader, Label = UiComponents_1.MemoizedLabel, DeleteButton = UiComponents_1.MemoizedDeleteButton, Text = UiComponents_1.MemoizedText, Modal = UiComponents_1.MemoizedModal, Popover = UiComponents_1.MemoizedPopover, isOpen, isEditMode, pivot, setIsOpen, rows, columns, query, queryNoDateColumn, dateRange: dr, formHeaderStyle, formLabelStyle, showTableFormatOptions = false, showDateFieldOptions = false, showAccessControlOptions = false, showDashboardDropdown = true, onAddToDashboardComplete, onDelete, fields: fieldsProp, dashboardItem = undefined, recommendedPivots: rp = [], createdPivots: cp = [], destinationDashboard, dateColumn, buttonLabel, }) {
|
|
99
|
+
function ChartBuilderForm({ TextInput = MemoizedTextInput, Select = MemoizedSelect, Button = MemoizedButton, SecondaryButton = MemoizedSecondaryButton, Header = MemoizedHeader, Label = MemoizedLabel, DeleteButton = MemoizedDeleteButton, Text = MemoizedText, Modal = MemoizedModal, Popover = MemoizedPopover, isOpen, isEditMode, pivot, setIsOpen, rows, columns, query, queryNoDateColumn, dateRange: dr, formHeaderStyle, formLabelStyle, showTableFormatOptions = false, showDateFieldOptions = false, showAccessControlOptions = false, showDashboardDropdown = true, onAddToDashboardComplete, onDelete, fields: fieldsProp, dashboardItem = undefined, recommendedPivots: rp = [], createdPivots: cp = [], destinationDashboard, dateColumn, buttonLabel, }) {
|
|
107
100
|
const dateRange = dr || [null, null, null];
|
|
108
|
-
const [client] =
|
|
109
|
-
const [theme] =
|
|
110
|
-
const [schema, setSchema] =
|
|
111
|
-
const [isSubmitting, setIsSubmitting] =
|
|
112
|
-
const [divWidth, setDivWidth] =
|
|
113
|
-
const { dispatch } =
|
|
101
|
+
const [client] = useContext(ClientContext);
|
|
102
|
+
const [theme] = useContext(ThemeContext);
|
|
103
|
+
const [schema, setSchema] = useContext(SchemaContext);
|
|
104
|
+
const [isSubmitting, setIsSubmitting] = useState(false);
|
|
105
|
+
const [divWidth, setDivWidth] = useState(0);
|
|
106
|
+
const { dispatch } = useContext(DashboardContext);
|
|
114
107
|
const fields = fieldsProp?.map((field) => ({
|
|
115
108
|
field: field.name,
|
|
116
|
-
type:
|
|
109
|
+
type: getPostgresBasicType(field),
|
|
117
110
|
format: field.format,
|
|
118
111
|
label: field.name,
|
|
119
112
|
})) || [];
|
|
120
|
-
const parentRef =
|
|
121
|
-
const deleteRef =
|
|
113
|
+
const parentRef = useRef();
|
|
114
|
+
const deleteRef = useRef();
|
|
122
115
|
const modalPadding = 20;
|
|
123
116
|
const deleteButtonMargin = -13;
|
|
124
|
-
|
|
117
|
+
useEffect(() => {
|
|
125
118
|
const calculateWidth = () => {
|
|
126
119
|
return (parentRef.current.offsetWidth -
|
|
127
120
|
(deleteRef?.current
|
|
@@ -145,11 +138,11 @@ function ChartBuilderForm({ TextInput = UiComponents_1.MemoizedTextInput, Select
|
|
|
145
138
|
};
|
|
146
139
|
}, []);
|
|
147
140
|
// get schema
|
|
148
|
-
|
|
141
|
+
useEffect(() => {
|
|
149
142
|
let isSubscribed = true;
|
|
150
143
|
async function getSchema() {
|
|
151
144
|
if (!schema || !schema.length) {
|
|
152
|
-
const resp = await
|
|
145
|
+
const resp = await getDataFromCloud(client, `schema2/${client.publicKey}/`, null, 'GET');
|
|
153
146
|
if (isSubscribed) {
|
|
154
147
|
setSchema(resp.tables);
|
|
155
148
|
}
|
|
@@ -163,11 +156,11 @@ function ChartBuilderForm({ TextInput = UiComponents_1.MemoizedTextInput, Select
|
|
|
163
156
|
};
|
|
164
157
|
}, [schema]);
|
|
165
158
|
// get dashboards
|
|
166
|
-
const [dashboardOptions, setDashboardOptions] =
|
|
167
|
-
const [defaultDashboardName, setDefaultDashboardName] =
|
|
159
|
+
const [dashboardOptions, setDashboardOptions] = useState([]);
|
|
160
|
+
const [defaultDashboardName, setDefaultDashboardName] = useState(destinationDashboard ||
|
|
168
161
|
dashboardItem?.dashboardName ||
|
|
169
162
|
dashboardOptions[0]?.label);
|
|
170
|
-
|
|
163
|
+
useEffect(() => {
|
|
171
164
|
if (!destinationDashboard &&
|
|
172
165
|
!dashboardItem &&
|
|
173
166
|
dashboardOptions &&
|
|
@@ -175,31 +168,32 @@ function ChartBuilderForm({ TextInput = UiComponents_1.MemoizedTextInput, Select
|
|
|
175
168
|
setDefaultDashboardName(dashboardOptions[0]?.label);
|
|
176
169
|
}
|
|
177
170
|
}, [dashboardOptions]);
|
|
178
|
-
|
|
171
|
+
useEffect(() => {
|
|
179
172
|
async function getDashNames() {
|
|
180
|
-
const resp = await
|
|
173
|
+
const resp = await getDataFromCloud(client, `dashnames/${client.publicKey}/`, null, 'GET');
|
|
181
174
|
setDashboardOptions(resp.dashboardNames
|
|
182
175
|
.filter((elem) => elem !== null)
|
|
183
176
|
.map((key) => ({ label: key, value: key })));
|
|
184
177
|
}
|
|
185
178
|
getDashNames();
|
|
186
179
|
}, []);
|
|
187
|
-
const
|
|
188
|
-
const [
|
|
189
|
-
const [
|
|
190
|
-
const [
|
|
180
|
+
const { dashboardFilters } = useContext(DashboardFiltersContext);
|
|
181
|
+
const [showPivotPopover, setShowPivotPopover] = useState(false);
|
|
182
|
+
const [isEdittingPivot, setIsEdittingPivot] = useState(false);
|
|
183
|
+
const [selectedPivotIndex, setSelectedPivotIndex] = useState(-1);
|
|
184
|
+
const [tableName, setTableName] = useState(null);
|
|
191
185
|
const selectedTable = schema?.find((t) => t.displayName === tableName);
|
|
192
|
-
const [pivotPopUpTitle, setPivotPopUpTitle] =
|
|
193
|
-
const [createdPivots, setCreatedPivots] =
|
|
194
|
-
const [recommendedPivots, setRecommendedPivots] =
|
|
195
|
-
const [pivotRowField, setPivotRowField] =
|
|
196
|
-
const [pivotColumnField, setPivotColumnField] =
|
|
197
|
-
const [pivotValueField, setPivotValueField] =
|
|
198
|
-
const [pivotAggregation, setPivotAggregation] =
|
|
186
|
+
const [pivotPopUpTitle, setPivotPopUpTitle] = useState('Add Pivot');
|
|
187
|
+
const [createdPivots, setCreatedPivots] = useState(pivot ? [pivot] : dashboardItem?.pivot ? [dashboardItem.pivot] : cp);
|
|
188
|
+
const [recommendedPivots, setRecommendedPivots] = useState(rp);
|
|
189
|
+
const [pivotRowField, setPivotRowField] = useState(undefined);
|
|
190
|
+
const [pivotColumnField, setPivotColumnField] = useState(undefined);
|
|
191
|
+
const [pivotValueField, setPivotValueField] = useState(undefined);
|
|
192
|
+
const [pivotAggregation, setPivotAggregation] = useState(undefined);
|
|
199
193
|
// initial state is the fields array passed in, but can eventually be changed to be the pivot fields
|
|
200
|
-
const [fieldOptions, setFieldOptions] =
|
|
201
|
-
const [dateFieldOptions, setDateFieldOptions] =
|
|
202
|
-
|
|
194
|
+
const [fieldOptions, setFieldOptions] = useState(fields);
|
|
195
|
+
const [dateFieldOptions, setDateFieldOptions] = useState([]);
|
|
196
|
+
useEffect(() => {
|
|
203
197
|
const fetchReferencedTables = async () => {
|
|
204
198
|
if (!query) {
|
|
205
199
|
return;
|
|
@@ -224,7 +218,7 @@ function ChartBuilderForm({ TextInput = UiComponents_1.MemoizedTextInput, Select
|
|
|
224
218
|
table: dateFieldOptions[0]?.name,
|
|
225
219
|
field: dateFieldOptions[0]?.columns[0]?.name,
|
|
226
220
|
};
|
|
227
|
-
const firstNumberColumn = columns?.find((col) =>
|
|
221
|
+
const firstNumberColumn = columns?.find((col) => numberFormatOptions.includes(col.format));
|
|
228
222
|
const formEmptyState = {
|
|
229
223
|
name: '',
|
|
230
224
|
dashboardName: dashboardOptions?.[0]?.label,
|
|
@@ -251,13 +245,13 @@ function ChartBuilderForm({ TextInput = UiComponents_1.MemoizedTextInput, Select
|
|
|
251
245
|
// date labels for pivots should be treated like strings since they are
|
|
252
246
|
// formatted in generatePivotTable
|
|
253
247
|
const yAxisIsDate = pivot.columnField
|
|
254
|
-
?
|
|
248
|
+
? isDateField(pivot.columnFieldType)
|
|
255
249
|
: false;
|
|
256
250
|
return {
|
|
257
251
|
pivot,
|
|
258
252
|
chartType: 'column',
|
|
259
253
|
xAxisField: pivot.rowField,
|
|
260
|
-
xAxisFormat:
|
|
254
|
+
xAxisFormat: isDateField(pivot.rowFieldType)
|
|
261
255
|
? 'string'
|
|
262
256
|
: columns.find((col) => col.field === pivot.rowField)?.format ||
|
|
263
257
|
'whole_number',
|
|
@@ -274,12 +268,12 @@ function ChartBuilderForm({ TextInput = UiComponents_1.MemoizedTextInput, Select
|
|
|
274
268
|
],
|
|
275
269
|
};
|
|
276
270
|
};
|
|
277
|
-
const [formData, setFormData] =
|
|
271
|
+
const [formData, setFormData] = useState(pivot
|
|
278
272
|
? { ...formEmptyState, ...pivotFormData(pivot) }
|
|
279
273
|
: dashboardItem || formEmptyState);
|
|
280
|
-
const selectedPivotTable =
|
|
274
|
+
const selectedPivotTable = useMemo(() => {
|
|
281
275
|
if (formData.pivot && rows) {
|
|
282
|
-
return
|
|
276
|
+
return generatePivotTable(formData.pivot, rows, dateRange);
|
|
283
277
|
}
|
|
284
278
|
else {
|
|
285
279
|
return {};
|
|
@@ -412,7 +406,7 @@ function ChartBuilderForm({ TextInput = UiComponents_1.MemoizedTextInput, Select
|
|
|
412
406
|
customerId: customerId,
|
|
413
407
|
}
|
|
414
408
|
: { clientId: publicKey }).toString();
|
|
415
|
-
const resp = await
|
|
409
|
+
const resp = await getDataFromCloud(client, `deletedash/${publicKey}/${customerId}/?${searchParams}`, cloudBody);
|
|
416
410
|
if (resp) {
|
|
417
411
|
if (onDelete) {
|
|
418
412
|
onDelete();
|
|
@@ -445,6 +439,7 @@ function ChartBuilderForm({ TextInput = UiComponents_1.MemoizedTextInput, Select
|
|
|
445
439
|
};
|
|
446
440
|
if (cloudBody['rows']) {
|
|
447
441
|
delete cloudBody['rows'];
|
|
442
|
+
delete cloudBody['compareRows'];
|
|
448
443
|
}
|
|
449
444
|
// add orgId: customerId if present for hostedBody
|
|
450
445
|
// set defaultDateField if date field not present
|
|
@@ -462,8 +457,11 @@ function ChartBuilderForm({ TextInput = UiComponents_1.MemoizedTextInput, Select
|
|
|
462
457
|
customerId: customerId,
|
|
463
458
|
}
|
|
464
459
|
: { clientId: publicKey }).toString();
|
|
465
|
-
const resp = await
|
|
460
|
+
const resp = await getData(client, `dashedit2?${searchParams}`, 'same-origin', hostedBody, cloudBody);
|
|
466
461
|
if (resp) {
|
|
462
|
+
if (resp.compareRows) {
|
|
463
|
+
mergeComparisonRange(resp);
|
|
464
|
+
}
|
|
467
465
|
dispatch({
|
|
468
466
|
type: 'UPDATE_DASHBOARD_ITEM',
|
|
469
467
|
id: resp._id,
|
|
@@ -471,6 +469,7 @@ function ChartBuilderForm({ TextInput = UiComponents_1.MemoizedTextInput, Select
|
|
|
471
469
|
...resp,
|
|
472
470
|
rows,
|
|
473
471
|
fields,
|
|
472
|
+
filtersApplied: dashboardFilters
|
|
474
473
|
},
|
|
475
474
|
});
|
|
476
475
|
}
|
|
@@ -483,7 +482,7 @@ function ChartBuilderForm({ TextInput = UiComponents_1.MemoizedTextInput, Select
|
|
|
483
482
|
if (!schema) {
|
|
484
483
|
return;
|
|
485
484
|
}
|
|
486
|
-
return ((
|
|
485
|
+
return (_jsxs("div", { id: "quill-chart-modal", style: { padding: modalPadding }, children: [isEditMode && (_jsxs(_Fragment, { children: [_jsx(Banner, { dashboardItemName: dashboardItem.name, dashboardName: dashboardItem.dashboardName, style: {
|
|
487
486
|
position: 'fixed',
|
|
488
487
|
top: 0,
|
|
489
488
|
left: 0,
|
|
@@ -495,13 +494,13 @@ function ChartBuilderForm({ TextInput = UiComponents_1.MemoizedTextInput, Select
|
|
|
495
494
|
return;
|
|
496
495
|
dispatch({ type: 'SET_ACTIVE_QUERY', payload: '' });
|
|
497
496
|
dispatch({ type: 'SET_ACTIVE_EDIT_ITEM', payload: null });
|
|
498
|
-
} }), (
|
|
497
|
+
} }), _jsxs("style", { children: [" ", `#quill-modal-header { padding-top: 41px; }`, " "] })] })), _jsx("div", { children: _jsx(Chart, { config: { ...formData, rows }, colors: theme.chartColors, containerStyle: {
|
|
499
498
|
width: formData.chartType === 'table' ? 640 : 'calc(100% - 24px)',
|
|
500
499
|
height: 300,
|
|
501
|
-
} }) }), (
|
|
500
|
+
} }) }), _jsx("div", { style: { height: 20 } }), _jsxs("form", { ref: parentRef, id: "quill-chart-form", onSubmit: handleSubmit, children: [_jsxs("div", { style: { display: 'flex', flexDirection: 'row', gap: 12 }, children: [_jsxs("div", { style: { display: 'flex', flexDirection: 'column' }, children: [_jsx(Label, { children: "Name" }), _jsx(TextInput, { value: formData.name, onChange: (e) => handleChange(e, 'name'), placeholder: "Name" })] }), showDashboardDropdown && !destinationDashboard && (_jsxs("div", { style: { display: 'flex', flexDirection: 'column' }, children: [_jsx(Label, { children: "Dashboard" }), _jsx(Select, { label: 'Dashboard', value: formData.dashboardName, onChange: (e) => handleChange(e, 'dashboardName'), options: dashboardOptions.map((elem) => ({
|
|
502
501
|
label: elem.label,
|
|
503
502
|
value: elem.label,
|
|
504
|
-
})) })] })), (
|
|
503
|
+
})) })] })), _jsxs("div", { style: { display: 'flex', flexDirection: 'column' }, children: [_jsx(Label, { children: "Chart type" }), _jsx(Select, { label: 'Chart Type', value: formData.chartType, onChange: (e) => handleChange(e, 'chartType'),
|
|
505
504
|
// filter out metric for all pivots
|
|
506
505
|
// filter out bar and pie for row and column pivot
|
|
507
506
|
options: CHART_TYPES.filter((elem) => !firstNumberColumn
|
|
@@ -509,21 +508,21 @@ function ChartBuilderForm({ TextInput = UiComponents_1.MemoizedTextInput, Select
|
|
|
509
508
|
: !((formData.pivot && elem === 'metric') ||
|
|
510
509
|
(formData.pivot &&
|
|
511
510
|
formData.pivot.columnField &&
|
|
512
|
-
(elem === 'bar' || elem === 'pie')))).map((elem) => ({ label: elem, value: elem })) })] })] }), (
|
|
511
|
+
(elem === 'bar' || elem === 'pie')))).map((elem) => ({ label: elem, value: elem })) })] })] }), _jsx("br", {}), _jsxs("div", { style: {
|
|
513
512
|
display: 'flex',
|
|
514
513
|
flexDirection: 'column',
|
|
515
514
|
gap: 12,
|
|
516
515
|
marginTop: 6,
|
|
517
|
-
}, children: [(
|
|
516
|
+
}, children: [_jsx(Header, { children: "Pivot" }), _jsxs("div", { style: { fontFamily: theme?.fontFamily }, children: [_jsx("div", { style: {
|
|
518
517
|
maxWidth: 200,
|
|
519
518
|
// marginTop: 6,
|
|
520
519
|
display: 'flex',
|
|
521
520
|
flexDirection: 'column',
|
|
522
|
-
}, children: (
|
|
521
|
+
}, children: _jsx(PivotModal, { pivotRowField: pivotRowField, setPivotRowField: setPivotRowField, pivotColumnField: pivotColumnField, setPivotColumnField: setPivotColumnField, pivotValueField: pivotValueField, setPivotValueField: setPivotValueField, pivotAggregation: pivotAggregation, setPivotAggregation: setPivotAggregation, createdPivots: createdPivots, setCreatedPivots: setCreatedPivots, recommendedPivots: recommendedPivots, setRecommendedPivots: setRecommendedPivots, popUpTitle: pivotPopUpTitle, setPopUpTitle: setPivotPopUpTitle, selectedTable: selectedTable, SelectComponent: Select, ButtonComponent: Button, PopoverComponent: Popover, LabelComponent: Label, TextComponent: Text, HeaderComponent: Header, theme: theme, isOpen: showPivotPopover, setIsOpen: setShowPivotPopover, showUpdatePivot: isEdittingPivot, setShowUpdatePivot: setIsEdittingPivot, parentRef: parentRef, data: rows, columns: columns, triggerButtonText: 'Add pivot +', selectedPivotIndex: selectedPivotIndex, setSelectedPivotIndex: setSelectedPivotIndex, removePivot: handleDeletePivot, selectPivot: handleAddPivot, dateRange: dateRange, selectPivotOnEdit: true, showTrigger: !formData.pivot }) }), formData.pivot && (_jsx("div", { style: {
|
|
523
522
|
// width: 592,
|
|
524
523
|
paddingRight: deleteRef?.current ? 42 : 0,
|
|
525
524
|
maxWidth: 750,
|
|
526
|
-
}, children: (
|
|
525
|
+
}, children: _jsx("div", { style: { width: divWidth }, children: _jsx(PivotCard, { pivotTable: {
|
|
527
526
|
pivot: formData.pivot,
|
|
528
527
|
rows: selectedPivotTable?.rows,
|
|
529
528
|
columns: selectedPivotTable?.columns,
|
|
@@ -535,23 +534,23 @@ function ChartBuilderForm({ TextInput = UiComponents_1.MemoizedTextInput, Select
|
|
|
535
534
|
setPivotValueField(formData.pivot?.valueField);
|
|
536
535
|
setPivotAggregation(formData.pivot?.aggregationType);
|
|
537
536
|
setPivotPopUpTitle('Edit Pivot');
|
|
538
|
-
}, selectedPivotIndex: -1, onEditPivot: () => { }, ButtonComponent: Button, HeaderComponent: Header, showEdit: false, onClose: handleDeletePivot, minHeight: 180, LabelComponent: Label, TextComponent: Text }) }) }))] })] }), (
|
|
537
|
+
}, selectedPivotIndex: -1, onEditPivot: () => { }, ButtonComponent: Button, HeaderComponent: Header, showEdit: false, onClose: handleDeletePivot, minHeight: 180, LabelComponent: Label, TextComponent: Text }) }) }))] })] }), _jsx("br", {}), (formData.pivot || formData.chartType !== 'table') && (_jsxs("div", { children: [_jsxs("div", { style: {
|
|
539
538
|
display: 'flex',
|
|
540
539
|
flexDirection: 'column',
|
|
541
540
|
gap: 6,
|
|
542
541
|
marginTop: 6,
|
|
543
|
-
}, children: [(
|
|
542
|
+
}, children: [_jsx(Header, { children: "Chart" }), _jsx(Label, { children: "X-axis" })] }), _jsxs("div", { style: { display: 'flex', flexDirection: 'row', gap: 12 }, children: [_jsx(Select, { label: 'X-axis Field', value: formData.xAxisField, onChange: (e) => handleChange(e, 'xAxisField'), disabled: formData.pivot !== null, options: fieldOptions.map((elem) => ({
|
|
544
543
|
label: formData.pivot
|
|
545
544
|
? `pivot row (${elem.field})`
|
|
546
545
|
: elem.field,
|
|
547
546
|
value: elem.field,
|
|
548
|
-
})) }), (
|
|
547
|
+
})) }), _jsx(TextInput, { value: formData.xAxisLabel, placeholder: "Column Label", onChange: (e) => handleChange(e, 'xAxisLabel') }), _jsx(Select, { label: 'X-axis Format', value: formData.xAxisFormat, onChange: (e) => handleChange(e, 'xAxisFormat'), options: formatOptions })] }, 'xAxisField0'), _jsx("br", {}), _jsx(Label, { children: "Y-axis" }), _jsx("div", { style: { display: 'flex', flexDirection: 'column', gap: 10 }, children: formData.yAxisFields.map((yAxisField, index) => (_jsxs("div", { style: { display: 'flex', flexDirection: 'row', gap: 12 }, children: [_jsx(Select, { label: 'Y-axis Field', value: yAxisField.field, onChange: (e) => handleChange(e, 'yAxisFields.field', index), disabled: formData.pivot !== null, options: [
|
|
549
548
|
{ label: 'Select', value: '' },
|
|
550
549
|
...fieldOptions
|
|
551
550
|
.filter((elem) => {
|
|
552
551
|
return (formData.chartType === 'table' ||
|
|
553
552
|
formData.pivot ||
|
|
554
|
-
|
|
553
|
+
numberFormatOptions.includes(columns.find((col) => col.field === elem.field)
|
|
555
554
|
?.format));
|
|
556
555
|
})
|
|
557
556
|
.map((elem) => ({
|
|
@@ -560,28 +559,28 @@ function ChartBuilderForm({ TextInput = UiComponents_1.MemoizedTextInput, Select
|
|
|
560
559
|
: elem.field,
|
|
561
560
|
value: elem.field,
|
|
562
561
|
})),
|
|
563
|
-
] }), (
|
|
562
|
+
] }), _jsx(TextInput, { value: yAxisField.label, placeholder: "Column Label", onChange: (e) => handleChange(e, 'yAxisFields.label', index) }), _jsx(Select, { label: 'Y-axis Format', value: yAxisField.format, onChange: (e) => handleChange(e, 'yAxisFields.format', index), options: [{ label: 'Select', value: '' }, ...formatOptions] }), formData.pivot === null && (_jsx("div", { ref: deleteRef, children: _jsx(DeleteButton, { style: { marginLeft: deleteButtonMargin }, onClick: () => handleRemoveField('yAxisFields', index) }) }))] }, 'yAxisField' + index))) }), formData.pivot === null && (_jsxs(_Fragment, { children: [_jsx("br", {}), _jsx(SecondaryButton, { onClick: () => handleAddField('yAxisFields'), label: "Add field +" })] })), _jsx("br", {}), _jsx("br", {})] })), (showTableFormatOptions || formData.chartType === 'table') && (_jsxs("div", { children: [_jsxs("div", { style: {
|
|
564
563
|
display: 'flex',
|
|
565
564
|
flexDirection: 'column',
|
|
566
565
|
gap: 6,
|
|
567
566
|
marginTop: 6,
|
|
568
|
-
}, children: [(
|
|
567
|
+
}, children: [_jsx(Header, { children: "Table" }), _jsx(Label, { children: "Columns" })] }), _jsx("div", { style: { display: 'flex', flexDirection: 'column', gap: 10 }, children: formData.columns.map((column, index) => (_jsxs("div", { style: { display: 'flex', flexDirection: 'row', gap: 12 }, children: [_jsx(Select, { label: 'Column Field', value: column.field, onChange: (e) => handleChange(e, 'columns.field', index), options: [
|
|
569
568
|
{ label: 'Select', value: '' },
|
|
570
569
|
...fields.map((elem) => ({
|
|
571
570
|
label: elem.field,
|
|
572
571
|
value: elem.field,
|
|
573
572
|
})),
|
|
574
|
-
] }), (
|
|
573
|
+
] }), _jsx(TextInput, { name: "label", value: column.label, placeholder: "Column Label", onChange: (e) => handleChange(e, 'columns.label', index) }), _jsx(Select, { label: 'Column Format', value: column.format, onChange: (e) => handleChange(e, 'columns.format', index), options: [{ label: 'Select', value: '' }, ...formatOptions] }), _jsx("div", { ref: deleteRef, children: _jsx(DeleteButton, { style: { marginLeft: deleteButtonMargin }, onClick: () => handleRemoveField('columns', index) }) })] }, 'column' + index))) }), _jsx("br", {}), _jsx(SecondaryButton, { onClick: () => handleAddField('columns'), label: "Add column +" }), _jsx("br", {}), _jsx("br", {})] })), showDateFieldOptions && (_jsxs("div", { style: {
|
|
575
574
|
display: 'flex',
|
|
576
575
|
flexDirection: 'column',
|
|
577
576
|
gap: 6,
|
|
578
577
|
marginTop: 6,
|
|
579
|
-
}, children: [(
|
|
578
|
+
}, children: [_jsx(Header, { children: "Date field" }), _jsxs("div", { style: {
|
|
580
579
|
display: 'flex',
|
|
581
580
|
flexDirection: 'row',
|
|
582
581
|
gap: 12,
|
|
583
582
|
// lmao part 2
|
|
584
|
-
}, children: [(
|
|
583
|
+
}, children: [_jsxs("div", { style: { display: 'flex', flexDirection: 'column' }, children: [_jsx(Label, { children: "Table" }), _jsx(Select, { label: 'Date Table', value: formData.dateField.table, onChange: (e) => handleChange(e, 'dateField.table'), options: [
|
|
585
584
|
{
|
|
586
585
|
label: 'Select',
|
|
587
586
|
value: '',
|
|
@@ -590,29 +589,29 @@ function ChartBuilderForm({ TextInput = UiComponents_1.MemoizedTextInput, Select
|
|
|
590
589
|
label: elem.name,
|
|
591
590
|
value: elem.name,
|
|
592
591
|
})),
|
|
593
|
-
] })] }), (
|
|
592
|
+
] })] }), _jsxs("div", { style: { display: 'flex', flexDirection: 'column' }, children: [_jsx(Label, { children: "Field" }), _jsx(Select, { label: 'Date Field', value: formData.dateField.field, onChange: (e) => handleChange(e, 'dateField.field'), options: dateFieldOptions
|
|
594
593
|
?.find((elem) => elem.name === formData.dateField.table)
|
|
595
594
|
?.columns?.map((elem) => ({
|
|
596
595
|
label: elem.name,
|
|
597
596
|
value: elem.name,
|
|
598
|
-
})) || [] })] })] }), (
|
|
597
|
+
})) || [] })] })] }), _jsx("br", {})] })), showAccessControlOptions && (_jsxs("div", { style: {
|
|
599
598
|
display: 'flex',
|
|
600
599
|
flexDirection: 'column',
|
|
601
600
|
gap: 12,
|
|
602
601
|
marginTop: 6,
|
|
603
|
-
}, children: [(
|
|
602
|
+
}, children: [_jsx(Header, { children: "Organization access" }), _jsx(SegmentedControl, { onChange: (e) => handleChange(e, 'template'), value: formData.template, theme: theme }), _jsx("br", {}), _jsx("br", {})] })), _jsxs("div", { style: {
|
|
604
603
|
display: 'flex',
|
|
605
604
|
flexDirection: 'row',
|
|
606
605
|
justifyContent: 'flex-end',
|
|
607
606
|
gap: 10,
|
|
608
|
-
}, children: [dashboardItem && ((
|
|
607
|
+
}, children: [dashboardItem && (_jsx(SecondaryButton, { onClick: deleteChart, label: 'Delete' })), _jsx(Button, { onClick: editChart, label: buttonLabel
|
|
609
608
|
? buttonLabel
|
|
610
609
|
: dashboardItem
|
|
611
610
|
? 'Save changes'
|
|
612
611
|
: 'Add to dashboard' })] })] })] }));
|
|
613
612
|
}
|
|
614
613
|
function SegmentedControl({ onChange, value, theme }) {
|
|
615
|
-
return ((
|
|
614
|
+
return (_jsxs("div", { style: {
|
|
616
615
|
display: 'flex',
|
|
617
616
|
flexDirection: 'row',
|
|
618
617
|
alignItems: 'center',
|
|
@@ -620,7 +619,7 @@ function SegmentedControl({ onChange, value, theme }) {
|
|
|
620
619
|
maxWidth: 418,
|
|
621
620
|
padding: 4,
|
|
622
621
|
borderRadius: 6,
|
|
623
|
-
}, children: [(
|
|
622
|
+
}, children: [_jsxs("button", { className: "quill-tab", onClick: () => onChange(true), style: {
|
|
624
623
|
border: value === true ? '1px solid #E7E7E7' : '1px solid transparent',
|
|
625
624
|
outline: 'none',
|
|
626
625
|
width: '100%',
|
|
@@ -633,7 +632,7 @@ function SegmentedControl({ onChange, value, theme }) {
|
|
|
633
632
|
fontWeight: value === true ? 600 : 500,
|
|
634
633
|
fontSize: 14,
|
|
635
634
|
fontFamily: theme?.fontFamily,
|
|
636
|
-
}, children: [(
|
|
635
|
+
}, children: [_jsx("style", { children: `
|
|
637
636
|
.quill-tab {
|
|
638
637
|
background-color: ${value === true ? 'white' : 'transparent'};
|
|
639
638
|
}
|
|
@@ -643,7 +642,7 @@ function SegmentedControl({ onChange, value, theme }) {
|
|
|
643
642
|
.quill-tab:active {
|
|
644
643
|
background-color: "rgba(56, 65, 81, 0.15)";
|
|
645
644
|
}
|
|
646
|
-
` }), 'All Organizations'] }), (
|
|
645
|
+
` }), 'All Organizations'] }), _jsxs("button", { className: "quill-tab2", onClick: () => onChange(false), style: {
|
|
647
646
|
border: value === false ? '1px solid #E7E7E7' : '1px solid transparent',
|
|
648
647
|
boxShadow: value === false
|
|
649
648
|
? '0px 1px 4px 0px rgba(56, 65, 81, 0.08)'
|
|
@@ -656,7 +655,7 @@ function SegmentedControl({ onChange, value, theme }) {
|
|
|
656
655
|
fontWeight: value === false ? 600 : 500,
|
|
657
656
|
fontSize: 14,
|
|
658
657
|
fontFamily: theme?.fontFamily,
|
|
659
|
-
}, children: [(
|
|
658
|
+
}, children: [_jsx("style", { children: `
|
|
660
659
|
.quill-tab2 {
|
|
661
660
|
background-color: ${value === false ? 'white' : 'transparent'};
|
|
662
661
|
}
|
|
@@ -671,4 +670,3 @@ function SegmentedControl({ onChange, value, theme }) {
|
|
|
671
670
|
}
|
|
672
671
|
` }), 'This Organization'] })] }));
|
|
673
672
|
}
|
|
674
|
-
//# sourceMappingURL=ChartBuilder.js.map
|