@quillsql/react 2.11.15 → 2.11.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/Chart.d.ts +117 -42
- package/dist/cjs/Chart.d.ts.map +1 -1
- package/dist/cjs/Chart.js +44 -18
- package/dist/cjs/ChartBuilder.d.ts +195 -28
- package/dist/cjs/ChartBuilder.d.ts.map +1 -1
- package/dist/cjs/ChartBuilder.js +124 -63
- package/dist/cjs/ChartEditor.d.ts +114 -18
- package/dist/cjs/ChartEditor.d.ts.map +1 -1
- package/dist/cjs/ChartEditor.js +47 -15
- package/dist/cjs/Dashboard.d.ts +148 -90
- package/dist/cjs/Dashboard.d.ts.map +1 -1
- package/dist/cjs/Dashboard.js +46 -152
- package/dist/cjs/DateRangePicker/QuillDateRangePicker.d.ts +21 -1
- package/dist/cjs/DateRangePicker/QuillDateRangePicker.d.ts.map +1 -1
- package/dist/cjs/DateRangePicker/QuillDateRangePicker.js +5 -2
- package/dist/cjs/DateRangePicker/dateRangePickerUtils.js +1 -1
- package/dist/cjs/QuillProvider.d.ts +105 -2
- package/dist/cjs/QuillProvider.d.ts.map +1 -1
- package/dist/cjs/QuillProvider.js +59 -0
- package/dist/cjs/ReportBuilder.d.ts +188 -34
- package/dist/cjs/ReportBuilder.d.ts.map +1 -1
- package/dist/cjs/ReportBuilder.js +551 -426
- package/dist/cjs/SQLEditor.d.ts +158 -29
- package/dist/cjs/SQLEditor.d.ts.map +1 -1
- package/dist/cjs/SQLEditor.js +52 -32
- package/dist/cjs/Table.d.ts +119 -15
- package/dist/cjs/Table.d.ts.map +1 -1
- package/dist/cjs/Table.js +37 -6
- package/dist/cjs/TableChart.d.ts.map +1 -1
- package/dist/cjs/TableChart.js +0 -194
- package/dist/cjs/{BarList.d.ts → components/Chart/BarList.d.ts} +1 -1
- package/dist/cjs/components/Chart/BarList.d.ts.map +1 -0
- package/dist/cjs/{BarList.js → components/Chart/BarList.js} +1 -1
- package/dist/cjs/components/Chart/LineChart.d.ts +2 -3
- package/dist/cjs/components/Chart/LineChart.d.ts.map +1 -1
- package/dist/cjs/components/Chart/LineChart.js +3 -3
- package/dist/cjs/components/Chart/PieChart.d.ts.map +1 -0
- package/dist/cjs/{PieChart.js → components/Chart/PieChart.js} +1 -1
- package/dist/cjs/components/Dashboard/ChartComponent.d.ts +2 -1
- package/dist/cjs/components/Dashboard/ChartComponent.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/ChartComponent.js +6 -7
- package/dist/cjs/components/Dashboard/DashboardFilter.d.ts +22 -0
- package/dist/cjs/components/Dashboard/DashboardFilter.d.ts.map +1 -0
- package/dist/cjs/components/Dashboard/DashboardFilter.js +75 -0
- package/dist/cjs/components/Dashboard/DataLoader.d.ts +1 -1
- package/dist/cjs/components/Dashboard/DataLoader.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/DataLoader.js +1 -1
- package/dist/cjs/components/Dashboard/MetricComponent.d.ts +2 -12
- package/dist/cjs/components/Dashboard/MetricComponent.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/MetricComponent.js +39 -17
- package/dist/cjs/components/Dashboard/TableComponent.d.ts +2 -1
- package/dist/cjs/components/Dashboard/TableComponent.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/TableComponent.js +6 -9
- package/dist/cjs/components/QuillSelect.d.ts +4 -1
- package/dist/cjs/components/QuillSelect.d.ts.map +1 -1
- package/dist/cjs/components/QuillSelect.js +13 -8
- package/dist/cjs/components/QuillTable.d.ts +16 -2
- package/dist/cjs/components/QuillTable.d.ts.map +1 -1
- package/dist/cjs/components/QuillTable.js +4 -4
- package/dist/cjs/components/ReportBuilder/AddColumnPopover.d.ts +30 -1
- package/dist/cjs/components/ReportBuilder/AddColumnPopover.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/AddColumnPopover.js +33 -14
- package/dist/cjs/components/ReportBuilder/AddLimitPopover.d.ts +25 -2
- package/dist/cjs/components/ReportBuilder/AddLimitPopover.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/AddLimitPopover.js +19 -19
- package/dist/cjs/components/ReportBuilder/AddSortPopover.d.ts +22 -2
- package/dist/cjs/components/ReportBuilder/AddSortPopover.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/AddSortPopover.js +18 -20
- package/dist/cjs/components/ReportBuilder/bigDateMap.js +1 -1
- package/dist/cjs/components/ReportBuilder/convert.d.ts +2 -1
- package/dist/cjs/components/ReportBuilder/convert.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/convert.js +40 -20
- package/dist/cjs/components/ReportBuilder/pivot.d.ts +2 -1
- package/dist/cjs/components/ReportBuilder/pivot.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/ui.d.ts +83 -19
- package/dist/cjs/components/ReportBuilder/ui.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/ui.js +68 -121
- package/dist/cjs/components/ReportBuilder/util.d.ts +3 -1
- package/dist/cjs/components/ReportBuilder/util.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/util.js +34 -8
- package/dist/cjs/components/UiComponents.d.ts +98 -97
- package/dist/cjs/components/UiComponents.d.ts.map +1 -1
- package/dist/cjs/components/UiComponents.js +132 -112
- package/dist/cjs/hooks/index.d.ts +1 -0
- package/dist/cjs/hooks/index.d.ts.map +1 -1
- package/dist/cjs/hooks/index.js +3 -1
- package/dist/cjs/hooks/useTheme.d.ts +7 -0
- package/dist/cjs/hooks/useTheme.d.ts.map +1 -0
- package/dist/cjs/hooks/useTheme.js +12 -0
- package/dist/cjs/index.d.ts +10 -2
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/internals/ReportBuilder/PivotList.d.ts.map +1 -1
- package/dist/cjs/internals/ReportBuilder/PivotList.js +10 -10
- package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts +29 -14
- package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
- package/dist/cjs/internals/ReportBuilder/PivotModal.js +73 -49
- package/dist/cjs/utils/dataFetcher.d.ts.map +1 -1
- package/dist/cjs/utils/dataFetcher.js +2 -0
- package/dist/cjs/utils/width.d.ts +12 -0
- package/dist/cjs/utils/width.d.ts.map +1 -0
- package/dist/cjs/utils/width.js +25 -0
- package/dist/esm/Chart.d.ts +117 -42
- package/dist/esm/Chart.d.ts.map +1 -1
- package/dist/esm/Chart.js +45 -19
- package/dist/esm/ChartBuilder.d.ts +195 -28
- package/dist/esm/ChartBuilder.d.ts.map +1 -1
- package/dist/esm/ChartBuilder.js +124 -63
- package/dist/esm/ChartEditor.d.ts +114 -18
- package/dist/esm/ChartEditor.d.ts.map +1 -1
- package/dist/esm/ChartEditor.js +51 -19
- package/dist/esm/Dashboard.d.ts +148 -90
- package/dist/esm/Dashboard.d.ts.map +1 -1
- package/dist/esm/Dashboard.js +49 -153
- package/dist/esm/DateRangePicker/QuillDateRangePicker.d.ts +21 -1
- package/dist/esm/DateRangePicker/QuillDateRangePicker.d.ts.map +1 -1
- package/dist/esm/DateRangePicker/QuillDateRangePicker.js +6 -3
- package/dist/esm/DateRangePicker/dateRangePickerUtils.js +1 -1
- package/dist/esm/QuillProvider.d.ts +105 -2
- package/dist/esm/QuillProvider.d.ts.map +1 -1
- package/dist/esm/QuillProvider.js +59 -0
- package/dist/esm/ReportBuilder.d.ts +188 -34
- package/dist/esm/ReportBuilder.d.ts.map +1 -1
- package/dist/esm/ReportBuilder.js +553 -428
- package/dist/esm/SQLEditor.d.ts +158 -29
- package/dist/esm/SQLEditor.d.ts.map +1 -1
- package/dist/esm/SQLEditor.js +53 -33
- package/dist/esm/Table.d.ts +119 -15
- package/dist/esm/Table.d.ts.map +1 -1
- package/dist/esm/Table.js +38 -7
- package/dist/esm/TableChart.d.ts.map +1 -1
- package/dist/esm/TableChart.js +0 -194
- package/dist/esm/{BarList.d.ts → components/Chart/BarList.d.ts} +1 -1
- package/dist/esm/components/Chart/BarList.d.ts.map +1 -0
- package/dist/esm/{BarList.js → components/Chart/BarList.js} +1 -1
- package/dist/esm/components/Chart/LineChart.d.ts +2 -3
- package/dist/esm/components/Chart/LineChart.d.ts.map +1 -1
- package/dist/esm/components/Chart/LineChart.js +3 -3
- package/dist/esm/components/Chart/PieChart.d.ts.map +1 -0
- package/dist/esm/{PieChart.js → components/Chart/PieChart.js} +1 -1
- package/dist/esm/components/Dashboard/ChartComponent.d.ts +2 -1
- package/dist/esm/components/Dashboard/ChartComponent.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/ChartComponent.js +5 -6
- package/dist/esm/components/Dashboard/DashboardFilter.d.ts +22 -0
- package/dist/esm/components/Dashboard/DashboardFilter.d.ts.map +1 -0
- package/dist/esm/components/Dashboard/DashboardFilter.js +71 -0
- package/dist/esm/components/Dashboard/DataLoader.d.ts +1 -1
- package/dist/esm/components/Dashboard/DataLoader.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/DataLoader.js +1 -1
- package/dist/esm/components/Dashboard/MetricComponent.d.ts +2 -12
- package/dist/esm/components/Dashboard/MetricComponent.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/MetricComponent.js +39 -17
- package/dist/esm/components/Dashboard/TableComponent.d.ts +2 -1
- package/dist/esm/components/Dashboard/TableComponent.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/TableComponent.js +6 -9
- package/dist/esm/components/QuillSelect.d.ts +4 -1
- package/dist/esm/components/QuillSelect.d.ts.map +1 -1
- package/dist/esm/components/QuillSelect.js +14 -9
- package/dist/esm/components/QuillTable.d.ts +16 -2
- package/dist/esm/components/QuillTable.d.ts.map +1 -1
- package/dist/esm/components/QuillTable.js +4 -4
- package/dist/esm/components/ReportBuilder/AddColumnPopover.d.ts +30 -1
- package/dist/esm/components/ReportBuilder/AddColumnPopover.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/AddColumnPopover.js +34 -15
- package/dist/esm/components/ReportBuilder/AddLimitPopover.d.ts +25 -2
- package/dist/esm/components/ReportBuilder/AddLimitPopover.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/AddLimitPopover.js +20 -20
- package/dist/esm/components/ReportBuilder/AddSortPopover.d.ts +22 -2
- package/dist/esm/components/ReportBuilder/AddSortPopover.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/AddSortPopover.js +20 -22
- package/dist/esm/components/ReportBuilder/bigDateMap.js +1 -1
- package/dist/esm/components/ReportBuilder/convert.d.ts +2 -1
- package/dist/esm/components/ReportBuilder/convert.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/convert.js +33 -13
- package/dist/esm/components/ReportBuilder/pivot.d.ts +2 -1
- package/dist/esm/components/ReportBuilder/pivot.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/ui.d.ts +83 -19
- package/dist/esm/components/ReportBuilder/ui.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/ui.js +67 -119
- package/dist/esm/components/ReportBuilder/util.d.ts +3 -1
- package/dist/esm/components/ReportBuilder/util.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/util.js +31 -7
- package/dist/esm/components/UiComponents.d.ts +98 -97
- package/dist/esm/components/UiComponents.d.ts.map +1 -1
- package/dist/esm/components/UiComponents.js +125 -110
- package/dist/esm/hooks/index.d.ts +1 -0
- package/dist/esm/hooks/index.d.ts.map +1 -1
- package/dist/esm/hooks/index.js +1 -0
- package/dist/esm/hooks/useTheme.d.ts +7 -0
- package/dist/esm/hooks/useTheme.d.ts.map +1 -0
- package/dist/esm/hooks/useTheme.js +10 -0
- package/dist/esm/index.d.ts +10 -2
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/internals/ReportBuilder/PivotList.d.ts.map +1 -1
- package/dist/esm/internals/ReportBuilder/PivotList.js +10 -10
- package/dist/esm/internals/ReportBuilder/PivotModal.d.ts +29 -14
- package/dist/esm/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
- package/dist/esm/internals/ReportBuilder/PivotModal.js +73 -49
- package/dist/esm/utils/dataFetcher.d.ts.map +1 -1
- package/dist/esm/utils/dataFetcher.js +2 -0
- package/dist/esm/utils/width.d.ts +12 -0
- package/dist/esm/utils/width.d.ts.map +1 -0
- package/dist/esm/utils/width.js +21 -0
- package/package.json +1 -1
- package/dist/cjs/BarList.d.ts.map +0 -1
- package/dist/cjs/PieChart.d.ts.map +0 -1
- package/dist/esm/BarList.d.ts.map +0 -1
- package/dist/esm/PieChart.d.ts.map +0 -1
- /package/dist/cjs/{PieChart.d.ts → components/Chart/PieChart.d.ts} +0 -0
- /package/dist/esm/{PieChart.d.ts → components/Chart/PieChart.d.ts} +0 -0
package/dist/cjs/ChartBuilder.js
CHANGED
|
@@ -5,6 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.DashboardFilterModal = exports.ChartBuilderWithModal = exports.dateFormatOptions = exports.numberFormatOptions = void 0;
|
|
7
7
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
8
|
+
/* eslint-disable no-unused-vars */
|
|
8
9
|
const react_1 = require("react");
|
|
9
10
|
const Context_1 = require("./Context");
|
|
10
11
|
const dataFetcher_1 = require("./utils/dataFetcher");
|
|
@@ -14,8 +15,8 @@ const PivotList_1 = require("./internals/ReportBuilder/PivotList");
|
|
|
14
15
|
const Chart_1 = __importDefault(require("./Chart"));
|
|
15
16
|
const UiComponents_1 = require("./components/UiComponents");
|
|
16
17
|
const merge_1 = require("./utils/merge");
|
|
17
|
-
const QuillSelect_1 = require("./components/QuillSelect");
|
|
18
18
|
const textProcessing_1 = require("./utils/textProcessing");
|
|
19
|
+
const QuillSelect_1 = require("./components/QuillSelect");
|
|
19
20
|
const CHART_TYPES = ['column', 'line', 'table', 'metric', 'bar', 'pie'];
|
|
20
21
|
const POSTGRES_DATE_TYPES = [
|
|
21
22
|
'timestamp',
|
|
@@ -143,18 +144,77 @@ const formatOptions = [
|
|
|
143
144
|
{ value: 'percent', label: 'percent' },
|
|
144
145
|
{ value: 'string', label: 'string' },
|
|
145
146
|
];
|
|
147
|
+
/**
|
|
148
|
+
* ### Quill Chart Builder with Modal
|
|
149
|
+
*
|
|
150
|
+
* Renders a ChartBuilder component with a modal.
|
|
151
|
+
*
|
|
152
|
+
* @example
|
|
153
|
+
* ```js
|
|
154
|
+
* // Usage without custom components
|
|
155
|
+
* <ChartBuilder />
|
|
156
|
+
* ```
|
|
157
|
+
*
|
|
158
|
+
* @example
|
|
159
|
+
* ```js
|
|
160
|
+
* // You can also pass your own components
|
|
161
|
+
* <ChartBuilder
|
|
162
|
+
* ButtonComponent={MyButton}
|
|
163
|
+
* SecondaryButtonComponent={MySecondaryButton}
|
|
164
|
+
* />
|
|
165
|
+
* ```
|
|
166
|
+
*
|
|
167
|
+
* ### Chart Builder API
|
|
168
|
+
* @see https://docs.quillsql.com/components/chart-builder#with-modal
|
|
169
|
+
*/
|
|
146
170
|
function ChartBuilderWithModal(props) {
|
|
147
|
-
const
|
|
148
|
-
const
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
171
|
+
const parentRef = (0, react_1.useRef)(null);
|
|
172
|
+
const [modalWidth, setModalWidth] = (0, react_1.useState)(200);
|
|
173
|
+
const [modalHeight, setModalHeight] = (0, react_1.useState)(200);
|
|
174
|
+
const { isOpen, setIsOpen, title, isHorizontalView } = props;
|
|
175
|
+
const Modal = props.ModalComponent ?? UiComponents_1.MemoizedModal;
|
|
176
|
+
(0, react_1.useEffect)(() => {
|
|
177
|
+
function handleResize() {
|
|
178
|
+
setModalWidth(window.innerWidth - 80);
|
|
179
|
+
setModalHeight(window.innerHeight - 80);
|
|
180
|
+
}
|
|
181
|
+
handleResize();
|
|
182
|
+
window.addEventListener('resize', handleResize);
|
|
183
|
+
return () => {
|
|
184
|
+
window.removeEventListener('resize', handleResize);
|
|
185
|
+
};
|
|
186
|
+
}, []);
|
|
187
|
+
return ((0, jsx_runtime_1.jsx)("div", { ref: parentRef, children: (0, jsx_runtime_1.jsx)(Modal, { isOpen: isOpen, setIsOpen: setIsOpen, title: title || 'Add to dashboard',
|
|
188
|
+
// For isHorizontalView, use full viewport size minus 80px for padding,
|
|
189
|
+
// otherwise use the default layout method of the modal (contents).
|
|
190
|
+
width: isHorizontalView ? modalWidth : undefined, height: isHorizontalView ? modalHeight : undefined, children: (0, jsx_runtime_1.jsx)(ChartBuilder, { ...props }) }) }));
|
|
155
191
|
}
|
|
156
192
|
exports.ChartBuilderWithModal = ChartBuilderWithModal;
|
|
157
|
-
|
|
193
|
+
/**
|
|
194
|
+
* ### Quill Chart Builder
|
|
195
|
+
*
|
|
196
|
+
* A simple form that lets users turn a SQL query into a chart, metric, or table
|
|
197
|
+
* and then add that dashboard item into one of their dashboards.
|
|
198
|
+
*
|
|
199
|
+
* @example
|
|
200
|
+
* ```js
|
|
201
|
+
* // Usage without custom components
|
|
202
|
+
* <ChartBuilder />
|
|
203
|
+
* ```
|
|
204
|
+
*
|
|
205
|
+
* @example
|
|
206
|
+
* ```js
|
|
207
|
+
* // You can also pass your own components
|
|
208
|
+
* <ChartBuilder
|
|
209
|
+
* ButtonComponent={MyButton}
|
|
210
|
+
* SecondaryButtonComponent={MySecondaryButton}
|
|
211
|
+
* />
|
|
212
|
+
* ```
|
|
213
|
+
*
|
|
214
|
+
* ### Chart Builder API
|
|
215
|
+
* @see https://docs.quillsql.com/components/chart-builder
|
|
216
|
+
*/
|
|
217
|
+
function ChartBuilder({ TextInputComponent = UiComponents_1.QuillTextInput, SelectComponent = QuillSelect_1.QuillSelectComponent, ButtonComponent = UiComponents_1.MemoizedButton, SecondaryButtonComponent = UiComponents_1.MemoizedSecondaryButton, HeaderComponent = UiComponents_1.MemoizedHeader, LabelComponent = UiComponents_1.MemoizedLabel, DeleteButtonComponent = UiComponents_1.MemoizedDeleteButton, TextComponent = UiComponents_1.MemoizedText, PopoverComponent = UiComponents_1.MemoizedPopover, isOpen, isHorizontalView = true, pivot, setIsOpen, rows, columns, query, queryNoDateColumn, dateRange: dr, showTableFormatOptions = false, showDateFieldOptions = false, showAccessControlOptions = false, showDashboardDropdown = true, onAddToDashboardComplete, onDelete, fields: fieldsProp, dashboardItem = undefined, recommendedPivots: rp = [], createdPivots: cp = [], destinationDashboard, dateColumn, buttonLabel, organizationName, pivotData, }) {
|
|
158
218
|
const dateRange = dr || [null, null, null];
|
|
159
219
|
const [client] = (0, react_1.useContext)(Context_1.ClientContext);
|
|
160
220
|
const [theme] = (0, react_1.useContext)(Context_1.ThemeContext);
|
|
@@ -374,6 +434,12 @@ function ChartBuilder({ TextInput = UiComponents_1.QuillTextInput, Select = Quil
|
|
|
374
434
|
}
|
|
375
435
|
const result = await getReferencedTables(client, query, schema, true);
|
|
376
436
|
setDateFieldOptions(result);
|
|
437
|
+
if (result[0] && result[0].columns[0]) {
|
|
438
|
+
setDefaultDateField({
|
|
439
|
+
table: result[0].name,
|
|
440
|
+
field: result[0].columns[0].name,
|
|
441
|
+
});
|
|
442
|
+
}
|
|
377
443
|
const allReferencedFields = await getReferencedTables(client, query, schema, false);
|
|
378
444
|
setAllTables(allReferencedFields.map((table) => table.name));
|
|
379
445
|
setTableName(result[0]?.name);
|
|
@@ -577,7 +643,7 @@ function ChartBuilder({ TextInput = UiComponents_1.QuillTextInput, Select = Quil
|
|
|
577
643
|
dashboardDiscrepancyIssues.push(`The ${formData.dashboardName} dashboard is used for comparing date fields. This feature is not applicable to pie charts. We recommend switching to a column or bar chart instead.`);
|
|
578
644
|
}
|
|
579
645
|
if (dashboardHasDateFilter &&
|
|
580
|
-
(!defaultDateField ||
|
|
646
|
+
((!defaultDateField.table && !defaultDateField.field) ||
|
|
581
647
|
(!formData.dateField.field && !formData.dateField.table))) {
|
|
582
648
|
dashboardDiscrepancyIssues.push(`The dashboard "${formData.dashboardName}" has a global date filter but this chart doesn't reference any tables with a date field. It is not recommended to add this chart because the global filter cannot be applied.`);
|
|
583
649
|
}
|
|
@@ -661,7 +727,7 @@ function ChartBuilder({ TextInput = UiComponents_1.QuillTextInput, Select = Quil
|
|
|
661
727
|
}
|
|
662
728
|
};
|
|
663
729
|
if (!schema) {
|
|
664
|
-
return;
|
|
730
|
+
return null;
|
|
665
731
|
}
|
|
666
732
|
return ((0, jsx_runtime_1.jsxs)("div", { style: { width: '100%', height: '100%', flexGrow: 1 }, children: [(0, jsx_runtime_1.jsxs)("div", { id: "quill-chart-modal", style: {
|
|
667
733
|
width: '100%',
|
|
@@ -670,79 +736,79 @@ function ChartBuilder({ TextInput = UiComponents_1.QuillTextInput, Select = Quil
|
|
|
670
736
|
display: 'flex',
|
|
671
737
|
padding: modalPadding,
|
|
672
738
|
gap: '20px',
|
|
673
|
-
flexDirection:
|
|
739
|
+
flexDirection: isHorizontalView ? 'row' : 'column',
|
|
674
740
|
boxSizing: 'border-box',
|
|
675
741
|
}, children: [(0, jsx_runtime_1.jsxs)("div", { style: {
|
|
676
742
|
display: 'flex',
|
|
677
743
|
flexDirection: 'column',
|
|
678
744
|
gap: '20px',
|
|
679
|
-
...(
|
|
745
|
+
...(isHorizontalView && {
|
|
680
746
|
flexGrow: 1,
|
|
681
747
|
maxWidth: !isOpen ? '100%' : 'calc(100% - 665px - 20px)', // width of left sidebar plus gap
|
|
682
748
|
}),
|
|
683
|
-
}, children: [(!
|
|
749
|
+
}, children: [(!isHorizontalView || formData.chartType !== 'table') && ((0, jsx_runtime_1.jsx)(Chart_1.default, { colors: theme.chartColors, config: { ...formData, rows }, containerStyle: {
|
|
684
750
|
width: '100%',
|
|
685
751
|
height: formData.chartType === 'metric'
|
|
686
752
|
? 100
|
|
687
|
-
:
|
|
753
|
+
: isHorizontalView
|
|
688
754
|
? '100%'
|
|
689
755
|
: 400,
|
|
690
|
-
...(
|
|
756
|
+
...(isHorizontalView && { flexGrow: 1 }),
|
|
691
757
|
} })),
|
|
692
758
|
// Make sure to display non-pivoted table when using pivot chart
|
|
693
|
-
|
|
759
|
+
isHorizontalView && formData.chartType !== 'table' ? ((0, jsx_runtime_1.jsx)(Chart_1.default, { config: {
|
|
694
760
|
...formData,
|
|
695
761
|
pivot: undefined,
|
|
696
762
|
chartType: 'table',
|
|
697
763
|
rows,
|
|
698
|
-
rowsPerPage:
|
|
764
|
+
rowsPerPage: 10,
|
|
699
765
|
}, containerStyle: {
|
|
700
766
|
height: '100%',
|
|
701
767
|
width: '100%',
|
|
702
768
|
flexGrow: 1,
|
|
703
|
-
} })) : (
|
|
769
|
+
} })) : (isHorizontalView && ((0, jsx_runtime_1.jsx)(Chart_1.default, { config: {
|
|
704
770
|
...formData,
|
|
705
771
|
chartType: 'table',
|
|
706
772
|
rows,
|
|
707
|
-
rowsPerPage:
|
|
773
|
+
rowsPerPage: 10,
|
|
708
774
|
}, containerStyle: {
|
|
709
775
|
height: '100%',
|
|
710
776
|
width: '100%',
|
|
711
777
|
flexGrow: 1,
|
|
712
|
-
} })))] }), (isOpen || !
|
|
778
|
+
} })))] }), (isOpen || !isHorizontalView) && ((0, jsx_runtime_1.jsxs)("form", { ref: parentRef, id: "quill-chart-form", onSubmit: handleSubmit, style: {
|
|
713
779
|
display: 'flex',
|
|
714
780
|
flexDirection: 'column',
|
|
715
781
|
height: '100%',
|
|
716
|
-
...(
|
|
782
|
+
...(isHorizontalView && {
|
|
717
783
|
minWidth: 665,
|
|
718
784
|
maxWidth: 665,
|
|
719
785
|
width: 665,
|
|
720
786
|
gap: 20,
|
|
721
787
|
}),
|
|
722
|
-
}, children: [(0, jsx_runtime_1.jsxs)("div", { style: { overflow: 'auto' }, children: [(0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', flexDirection: 'row', gap: 12 }, children: [(0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', flexDirection: 'column' }, children: [(0, jsx_runtime_1.jsx)(
|
|
723
|
-
|
|
724
|
-
|
|
788
|
+
}, children: [(0, jsx_runtime_1.jsxs)("div", { style: { overflow: 'auto' }, children: [(0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', flexDirection: 'row', gap: 12 }, children: [(0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', flexDirection: 'column' }, children: [(0, jsx_runtime_1.jsx)(LabelComponent, { label: "Name" }), (0, jsx_runtime_1.jsx)(TextInputComponent, { id: "chart-builder-name", width: 200, value: formData.name, onChange: (e) => handleChange(e.target.value, 'name'), placeholder: "Name" })] }), showDashboardDropdown && !destinationDashboard && ((0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', flexDirection: 'column' }, children: [(0, jsx_runtime_1.jsx)(LabelComponent, { label: "Dashboard" }), (0, jsx_runtime_1.jsx)(SelectComponent, { value: formData.dashboardName || '', onChange: async (e) => {
|
|
789
|
+
handleChange(e.target.value, 'dashboardName');
|
|
790
|
+
await updateDashboardFilters(e.target.value);
|
|
725
791
|
}, options: dashboardOptions.map((elem) => ({
|
|
726
792
|
label: elem.label,
|
|
727
793
|
value: elem.label,
|
|
728
|
-
}))
|
|
794
|
+
})) })] })), (0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', flexDirection: 'column' }, children: [(0, jsx_runtime_1.jsx)(LabelComponent, { label: "Chart type" }), (0, jsx_runtime_1.jsx)(SelectComponent, { value: formData.chartType, onChange: (e) => handleChange(e.target.value, 'chartType'),
|
|
729
795
|
// filter out metric for all pivots
|
|
730
796
|
// filter out bar and pie for row and column pivot
|
|
731
|
-
options: getChartTypeOptions(formData)
|
|
797
|
+
options: getChartTypeOptions(formData) })] })] }), (0, jsx_runtime_1.jsx)("br", {}), (0, jsx_runtime_1.jsxs)("div", { style: {
|
|
732
798
|
display: 'flex',
|
|
733
799
|
flexDirection: 'column',
|
|
734
800
|
gap: 12,
|
|
735
801
|
marginTop: 6,
|
|
736
|
-
}, children: [(0, jsx_runtime_1.jsx)(
|
|
802
|
+
}, children: [(0, jsx_runtime_1.jsx)(HeaderComponent, { label: "Pivot" }), (0, jsx_runtime_1.jsxs)("div", { style: { fontFamily: theme?.fontFamily }, children: [(0, jsx_runtime_1.jsx)("div", { style: {
|
|
737
803
|
maxWidth: 200,
|
|
738
804
|
// marginTop: 6,
|
|
739
805
|
display: 'flex',
|
|
740
806
|
flexDirection: 'column',
|
|
741
|
-
}, children: (0, jsx_runtime_1.jsx)(PivotModal_1.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:
|
|
807
|
+
}, children: (0, jsx_runtime_1.jsx)(PivotModal_1.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: SelectComponent, ButtonComponent: ButtonComponent, SecondaryButtonComponent: SecondaryButtonComponent, PopoverComponent: PopoverComponent, LabelComponent: LabelComponent, TextComponent: TextComponent, HeaderComponent: HeaderComponent, 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 && ((0, jsx_runtime_1.jsx)("div", { style: {
|
|
742
808
|
// width: 592,
|
|
743
809
|
paddingRight: 42,
|
|
744
810
|
maxWidth: 750,
|
|
745
|
-
}, children: (0, jsx_runtime_1.jsx)("div", { style: { width: !
|
|
811
|
+
}, children: (0, jsx_runtime_1.jsx)("div", { style: { width: !isHorizontalView ? divWidth : 'auto' }, children: (0, jsx_runtime_1.jsx)(PivotList_1.PivotCard, { pivotTable: {
|
|
746
812
|
pivot: formData.pivot,
|
|
747
813
|
rows: selectedPivotTable?.rows,
|
|
748
814
|
columns: selectedPivotTable?.columns,
|
|
@@ -754,29 +820,29 @@ function ChartBuilder({ TextInput = UiComponents_1.QuillTextInput, Select = Quil
|
|
|
754
820
|
setPivotValueField(formData.pivot?.valueField);
|
|
755
821
|
setPivotAggregation(formData.pivot?.aggregationType);
|
|
756
822
|
setPivotPopUpTitle('Edit Pivot');
|
|
757
|
-
}, selectedPivotIndex: -1, onEditPivot: () => { }, ButtonComponent:
|
|
823
|
+
}, selectedPivotIndex: -1, onEditPivot: () => { }, ButtonComponent: ButtonComponent, HeaderComponent: HeaderComponent, showEdit: false, onClose: handleDeletePivot, minHeight: 180, LabelComponent: LabelComponent, TextComponent: TextComponent }) }) }))] })] }), (0, jsx_runtime_1.jsx)("br", {}), (formData.pivot || formData.chartType !== 'table') && ((0, jsx_runtime_1.jsxs)("div", { children: [CHART_TO_LABELS[formData.chartType]?.xAxisLabel && ((0, jsx_runtime_1.jsx)("div", { style: {
|
|
758
824
|
display: 'flex',
|
|
759
825
|
flexDirection: 'column',
|
|
760
826
|
gap: 6,
|
|
761
827
|
marginTop: 6,
|
|
762
|
-
}, children: (0, jsx_runtime_1.jsx)(
|
|
828
|
+
}, children: (0, jsx_runtime_1.jsx)(HeaderComponent, { label: "Chart" }) })), CHART_TO_LABELS[formData.chartType]?.xAxisLabel && ((0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)(LabelComponent, { label: CHART_TO_LABELS[formData.chartType]?.xAxisLabel ?? '' }), (0, jsx_runtime_1.jsxs)("div", { style: {
|
|
763
829
|
display: 'flex',
|
|
764
830
|
flexDirection: 'row',
|
|
765
831
|
gap: 12,
|
|
766
|
-
}, children: [(0, jsx_runtime_1.jsx)(
|
|
832
|
+
}, children: [(0, jsx_runtime_1.jsx)(SelectComponent, { value: formData.xAxisField, onChange: (e) => handleChange(e.target.value, 'xAxisField'), options: formData.pivot
|
|
767
833
|
? getPivotMetricOptions(formData.pivot)
|
|
768
834
|
: fieldOptions.map((elem) => ({
|
|
769
835
|
label: elem.field,
|
|
770
836
|
value: elem.field,
|
|
771
|
-
}))
|
|
837
|
+
})) }), (0, jsx_runtime_1.jsx)(TextInputComponent, { id: "chart-builder-x-axis-label", width: 200, value: formData.pivot
|
|
772
838
|
? formData.pivot.rowField
|
|
773
|
-
: formData.xAxisLabel, placeholder: "Column Label", onChange: (e) => handleChange(e, 'xAxisLabel')
|
|
839
|
+
: formData.xAxisLabel, placeholder: "Column Label", onChange: (e) => handleChange(e.target.value, 'xAxisLabel') }), (0, jsx_runtime_1.jsx)(SelectComponent, { value: formData.pivot &&
|
|
774
840
|
(0, PivotModal_1.isDateField)(formData.pivot.rowFieldType)
|
|
775
841
|
? 'pivot_date'
|
|
776
|
-
: formData.xAxisFormat, onChange: (e) => handleChange(e, 'xAxisFormat'), options: formData.pivot &&
|
|
842
|
+
: formData.xAxisFormat, onChange: (e) => handleChange(e.target.value, 'xAxisFormat'), options: formData.pivot &&
|
|
777
843
|
(0, PivotModal_1.isDateField)(formData.pivot.rowFieldType)
|
|
778
844
|
? [{ value: 'pivot_date', label: 'date' }]
|
|
779
|
-
: formatOptions
|
|
845
|
+
: formatOptions })] }, 'xAxisField'), (0, jsx_runtime_1.jsx)("br", {})] })), CHART_TO_LABELS[formData.chartType]?.yAxisLabel && ((0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)(LabelComponent, { label: CHART_TO_LABELS[formData.chartType]?.yAxisLabel ?? '' }), (0, jsx_runtime_1.jsx)("div", { style: {
|
|
780
846
|
display: 'flex',
|
|
781
847
|
flexDirection: 'column',
|
|
782
848
|
gap: 10,
|
|
@@ -784,9 +850,9 @@ function ChartBuilder({ TextInput = UiComponents_1.QuillTextInput, Select = Quil
|
|
|
784
850
|
display: 'flex',
|
|
785
851
|
flexDirection: 'row',
|
|
786
852
|
gap: 12,
|
|
787
|
-
}, children: [(0, jsx_runtime_1.jsx)(
|
|
853
|
+
}, children: [(0, jsx_runtime_1.jsx)(SelectComponent, { value: formData.pivot
|
|
788
854
|
? formData.pivot.valueField
|
|
789
|
-
: yAxisField.field, onChange: (e) => handleChange(e, 'yAxisFields.field', index),
|
|
855
|
+
: yAxisField.field, onChange: (e) => handleChange(e.target.value, 'yAxisFields.field', index), options: formData.pivot
|
|
790
856
|
? [
|
|
791
857
|
{
|
|
792
858
|
label: `Pivot Column (${formData.pivot.valueField})`,
|
|
@@ -800,21 +866,21 @@ function ChartBuilder({ TextInput = UiComponents_1.QuillTextInput, Select = Quil
|
|
|
800
866
|
.map((elem) => ({
|
|
801
867
|
label: elem.field,
|
|
802
868
|
value: elem.field,
|
|
803
|
-
})) }), (0, jsx_runtime_1.jsx)(
|
|
804
|
-
?
|
|
869
|
+
})) }), (0, jsx_runtime_1.jsx)(TextInputComponent, { id: "chart-builder-y-axis-label", width: 200, value: formData.pivot?.valueField || yAxisField.label, placeholder: "Column Label", onChange: (e) => handleChange(e.target.value, 'yAxisFields.label', index) }), (0, jsx_runtime_1.jsx)(SelectComponent, { value: formData.pivot
|
|
870
|
+
? NUMBER_OPTIONS.find((option) => {
|
|
805
871
|
return (option.value === yAxisField.format);
|
|
806
872
|
})
|
|
807
873
|
? // @ts-ignore
|
|
808
874
|
NUMBER_OPTIONS.find((option) => option.value === yAxisField.format).value
|
|
809
875
|
: 'whole_number'
|
|
810
|
-
: yAxisField.format, onChange: (e) => handleChange(e, 'yAxisFields.format', index), options: formData.pivot
|
|
876
|
+
: yAxisField.format, onChange: (e) => handleChange(e.target.value, 'yAxisFields.format', index), options: formData.pivot
|
|
811
877
|
? NUMBER_OPTIONS
|
|
812
|
-
: formatOptions }), formData.pivot === null && ((0, jsx_runtime_1.jsx)("div", { ref: deleteRef, children: (0, jsx_runtime_1.jsx)(
|
|
878
|
+
: formatOptions }), formData.pivot === null && ((0, jsx_runtime_1.jsx)("div", { ref: deleteRef, style: { marginLeft: deleteButtonMargin }, children: (0, jsx_runtime_1.jsx)(DeleteButtonComponent, { onClick: () => handleRemoveField('yAxisFields', index) }) }))] }, 'yAxisField' + index))) }), formData.pivot === null && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("br", {}), (0, jsx_runtime_1.jsx)(SecondaryButtonComponent, { onClick: () => handleAddField('yAxisFields'), label: "Add field +" })] }))] })), (0, jsx_runtime_1.jsx)("br", {})] })), (showTableFormatOptions || formData.chartType === 'table') && ((0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsxs)("div", { style: {
|
|
813
879
|
display: 'flex',
|
|
814
880
|
flexDirection: 'column',
|
|
815
881
|
gap: 6,
|
|
816
882
|
marginTop: 6,
|
|
817
|
-
}, children: [(0, jsx_runtime_1.jsx)(
|
|
883
|
+
}, children: [(0, jsx_runtime_1.jsx)(HeaderComponent, { label: "Table" }), (0, jsx_runtime_1.jsx)(LabelComponent, { label: "Columns" })] }), (0, jsx_runtime_1.jsx)("div", { style: {
|
|
818
884
|
display: 'flex',
|
|
819
885
|
flexDirection: 'column',
|
|
820
886
|
gap: 10,
|
|
@@ -827,10 +893,10 @@ function ChartBuilder({ TextInput = UiComponents_1.QuillTextInput, Select = Quil
|
|
|
827
893
|
display: 'flex',
|
|
828
894
|
flexDirection: 'row',
|
|
829
895
|
gap: 12,
|
|
830
|
-
}, children: [(0, jsx_runtime_1.jsx)(
|
|
896
|
+
}, children: [(0, jsx_runtime_1.jsx)(SelectComponent, { value: column.label, onChange: (e) => handleChange(e.target.value, 'columns.field', index), options: selectedPivotTable.columns.map((elem) => ({
|
|
831
897
|
label: elem.label,
|
|
832
898
|
value: elem.label,
|
|
833
|
-
})) }), (0, jsx_runtime_1.jsx)(
|
|
899
|
+
})) }), (0, jsx_runtime_1.jsx)(TextInputComponent, { id: `chart-builder-column-label-${index}`, width: 200, value: column.label, placeholder: "Column Label", onChange: (e) => handleChange(e.target.value, 'columns.label', index) }), (0, jsx_runtime_1.jsx)(SelectComponent, { value:
|
|
834
900
|
// The first index use rowField for the rest of them use value fields
|
|
835
901
|
formData.pivot &&
|
|
836
902
|
column.field === formData.pivot.rowField
|
|
@@ -839,7 +905,7 @@ function ChartBuilder({ TextInput = UiComponents_1.QuillTextInput, Select = Quil
|
|
|
839
905
|
? 'pivot_date'
|
|
840
906
|
: 'string'
|
|
841
907
|
: formData.pivot?.valueFieldType ||
|
|
842
|
-
'whole_number', onChange: (e) => handleChange(e, 'pivotColumn', index), options: formData.pivot && index === 0
|
|
908
|
+
'whole_number', onChange: (e) => handleChange(e.target.value, 'pivotColumn', index), options: formData.pivot && index === 0
|
|
843
909
|
? (0, PivotModal_1.isDateField)(formData.pivot.rowFieldType)
|
|
844
910
|
? [{ label: 'date', value: 'pivot_date' }]
|
|
845
911
|
: [{ label: 'string', value: 'string' }]
|
|
@@ -848,22 +914,22 @@ function ChartBuilder({ TextInput = UiComponents_1.QuillTextInput, Select = Quil
|
|
|
848
914
|
display: 'flex',
|
|
849
915
|
flexDirection: 'row',
|
|
850
916
|
gap: 12,
|
|
851
|
-
}, children: [(0, jsx_runtime_1.jsx)(
|
|
917
|
+
}, children: [(0, jsx_runtime_1.jsx)(SelectComponent, { value: column.field, onChange: (e) => handleChange(e.target.value, 'columns.field', index), options: fields.map((elem) => ({
|
|
852
918
|
label: elem.field,
|
|
853
919
|
value: elem.field,
|
|
854
|
-
})) }), (0, jsx_runtime_1.jsx)(
|
|
920
|
+
})) }), (0, jsx_runtime_1.jsx)(TextInputComponent, { id: `chart-builder-column-label-${index}`, width: 200, value: column.label, placeholder: "Column Label", onChange: (e) => handleChange(e.target.value, 'columns.label', index) }), (0, jsx_runtime_1.jsx)(SelectComponent, { value: column.format, onChange: (e) => handleChange(e.target.value, 'columns.format', index), options: formatOptions }), (0, jsx_runtime_1.jsx)("div", { ref: deleteRef, style: { marginLeft: deleteButtonMargin }, children: (0, jsx_runtime_1.jsx)(DeleteButtonComponent, { onClick: () => handleRemoveField('columns', index) }) })] }, 'column' + index))) }), (0, jsx_runtime_1.jsx)("br", {}), (0, jsx_runtime_1.jsx)(SecondaryButtonComponent, { onClick: () => handleAddField('columns'), label: "Add column +" }), (0, jsx_runtime_1.jsx)("br", {}), (0, jsx_runtime_1.jsx)("br", {})] })), showDateFieldOptions && formData.dateField && ((0, jsx_runtime_1.jsxs)("div", { style: {
|
|
855
921
|
display: 'flex',
|
|
856
922
|
flexDirection: 'column',
|
|
857
923
|
gap: 6,
|
|
858
924
|
marginTop: 6,
|
|
859
|
-
}, children: [(0, jsx_runtime_1.jsx)(
|
|
925
|
+
}, children: [(0, jsx_runtime_1.jsx)(HeaderComponent, { label: "Date field" }), (0, jsx_runtime_1.jsxs)("div", { style: {
|
|
860
926
|
display: 'flex',
|
|
861
927
|
flexDirection: 'row',
|
|
862
928
|
gap: 12,
|
|
863
|
-
}, children: [(0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', flexDirection: 'column' }, children: [(0, jsx_runtime_1.jsx)(
|
|
929
|
+
}, children: [(0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', flexDirection: 'column' }, children: [(0, jsx_runtime_1.jsx)(LabelComponent, { label: "Table" }), (0, jsx_runtime_1.jsx)(SelectComponent, { value: formData.dateField?.table, onChange: (e) => handleChange(e.target.value, 'dateField.table'), options: dateFieldOptions.map((elem) => ({
|
|
864
930
|
label: elem.name,
|
|
865
931
|
value: elem.name,
|
|
866
|
-
})) })] }), (0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', flexDirection: 'column' }, children: [(0, jsx_runtime_1.jsx)(
|
|
932
|
+
})) })] }), (0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', flexDirection: 'column' }, children: [(0, jsx_runtime_1.jsx)(LabelComponent, { label: "Field" }), (0, jsx_runtime_1.jsx)(SelectComponent, { value: (0, textProcessing_1.removeDoubleQuotes)(formData.dateField?.field), onChange: (e) => handleChange(e.target.value, 'dateField.field'), options: dateFieldOptions
|
|
867
933
|
?.find((elem) => elem.name === formData.dateField?.table)
|
|
868
934
|
?.columns?.map((elem) => ({
|
|
869
935
|
label: elem.name,
|
|
@@ -873,13 +939,13 @@ function ChartBuilder({ TextInput = UiComponents_1.QuillTextInput, Select = Quil
|
|
|
873
939
|
flexDirection: 'column',
|
|
874
940
|
gap: 12,
|
|
875
941
|
marginTop: 6,
|
|
876
|
-
}, children: [(0, jsx_runtime_1.jsx)(
|
|
942
|
+
}, children: [(0, jsx_runtime_1.jsx)(HeaderComponent, { label: "Organization access" }), (0, jsx_runtime_1.jsx)(SegmentedControl, { onChange: (e) => handleChange(e, 'template'), value: formData.template, theme: theme, organizationName: organizationName })] }))] }), (0, jsx_runtime_1.jsxs)("div", { style: {
|
|
877
943
|
display: 'flex',
|
|
878
944
|
flexDirection: 'row',
|
|
879
945
|
justifyContent: 'flex-end',
|
|
880
946
|
marginTop: 'auto',
|
|
881
947
|
gap: 10,
|
|
882
|
-
}, children: [!
|
|
948
|
+
}, children: [!isHorizontalView && dashboardItem && ((0, jsx_runtime_1.jsx)(SecondaryButtonComponent, { onClick: deleteChart, label: 'Delete' })), (0, jsx_runtime_1.jsx)(ButtonComponent, { onClick: () => editChart(), label: buttonLabel
|
|
883
949
|
? buttonLabel
|
|
884
950
|
: dashboardItem
|
|
885
951
|
? 'Save changes'
|
|
@@ -949,22 +1015,17 @@ function SegmentedControl({ onChange, value, theme, organizationName, }) {
|
|
|
949
1015
|
` }), organizationName] }))] }));
|
|
950
1016
|
}
|
|
951
1017
|
function DashboardFilterModal({ isOpen, setIsOpen, override, theme, issues, }) {
|
|
952
|
-
return ((0, jsx_runtime_1.jsx)(UiComponents_1.MemoizedModal, { isOpen: isOpen,
|
|
953
|
-
setIsOpen(false);
|
|
954
|
-
}, setIsOpen: setIsOpen, theme: theme, title: 'Chart not compatible with selected dashboard', children: (0, jsx_runtime_1.jsxs)("div", { style: {
|
|
1018
|
+
return ((0, jsx_runtime_1.jsx)(UiComponents_1.MemoizedModal, { isOpen: isOpen, setIsOpen: setIsOpen, title: 'Chart not compatible with selected dashboard', children: (0, jsx_runtime_1.jsxs)("div", { style: {
|
|
955
1019
|
display: 'flex',
|
|
956
1020
|
flexDirection: 'column',
|
|
957
1021
|
width: '600px',
|
|
958
1022
|
padding: '20px',
|
|
959
1023
|
boxSizing: 'border-box',
|
|
960
|
-
}, children: [issues.map((issue, index) => ((0, jsx_runtime_1.jsx)("span", { style: { paddingTop: '10px' }, children: issue }, issue))), (0, jsx_runtime_1.jsx)("br", {}), (0, jsx_runtime_1.
|
|
1024
|
+
}, children: [issues.map((issue, index) => ((0, jsx_runtime_1.jsx)("span", { style: { paddingTop: '10px' }, children: issue }, issue))), (0, jsx_runtime_1.jsx)("br", {}), (0, jsx_runtime_1.jsx)("div", { style: {
|
|
961
1025
|
display: 'flex',
|
|
962
1026
|
flexDirection: 'row',
|
|
963
1027
|
gap: '12px',
|
|
964
1028
|
justifyContent: 'flex-end',
|
|
965
|
-
}, children:
|
|
966
|
-
override();
|
|
967
|
-
setIsOpen(false);
|
|
968
|
-
} })] })] }) }));
|
|
1029
|
+
}, children: (0, jsx_runtime_1.jsx)(UiComponents_1.MemoizedButton, { label: "Got It", onClick: () => setIsOpen(false) }) })] }) }));
|
|
969
1030
|
}
|
|
970
1031
|
exports.DashboardFilterModal = DashboardFilterModal;
|
|
@@ -1,29 +1,125 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import React, { ReactNode } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Props for the Quill ChartEditor component.
|
|
4
|
+
*/
|
|
5
|
+
export interface ChartEditorProps {
|
|
6
|
+
/** Whether the modal is open. */
|
|
4
7
|
isOpen: boolean;
|
|
8
|
+
/** A callback that sets the isOpen state. */
|
|
9
|
+
setIsOpen: (isOpen: boolean) => void;
|
|
10
|
+
/** The id of the chart that is being edited. */
|
|
5
11
|
chartId: string;
|
|
6
|
-
|
|
12
|
+
/** Whether the editor has administrative priveleges. */
|
|
13
|
+
isAdmin?: boolean;
|
|
14
|
+
/** Whether the editor is editing an existing query. */
|
|
7
15
|
isEditMode?: boolean;
|
|
16
|
+
/** The title of the chart builder form. */
|
|
8
17
|
chartBuilderTitle?: string;
|
|
18
|
+
/** The button label for the chart builder. */
|
|
9
19
|
chartBuilderButtonLabel?: string;
|
|
20
|
+
/**
|
|
21
|
+
* A callback that is fired when the add to dashboard flow has been completed.
|
|
22
|
+
*/
|
|
10
23
|
onAddToDashboardComplete?: () => void;
|
|
24
|
+
/** A callback that is fired when the item is deleted. */
|
|
11
25
|
onDelete?: () => void;
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
26
|
+
/** A select component. */
|
|
27
|
+
SelectComponent?: (props: {
|
|
28
|
+
value: string;
|
|
29
|
+
label?: string;
|
|
30
|
+
options: {
|
|
31
|
+
value: string;
|
|
32
|
+
label: string;
|
|
33
|
+
}[];
|
|
34
|
+
onChange: (event: React.ChangeEvent<HTMLSelectElement>) => void;
|
|
35
|
+
}) => JSX.Element;
|
|
36
|
+
/** An input component to get text from your users. */
|
|
37
|
+
TextInputComponent?: (props: {
|
|
38
|
+
id: string;
|
|
39
|
+
width: number;
|
|
40
|
+
value: string;
|
|
41
|
+
placeholder?: string;
|
|
42
|
+
onChange: (event: React.ChangeEvent<HTMLInputElement>) => void;
|
|
43
|
+
}) => JSX.Element;
|
|
44
|
+
/** A button component. */
|
|
45
|
+
ButtonComponent?: (props: {
|
|
46
|
+
onClick: () => void;
|
|
47
|
+
label: string;
|
|
48
|
+
}) => JSX.Element;
|
|
49
|
+
/** A secondary button. */
|
|
50
|
+
SecondaryButtonComponent?: (props: {
|
|
51
|
+
onClick: () => void;
|
|
52
|
+
label: string;
|
|
53
|
+
}) => JSX.Element;
|
|
54
|
+
/**
|
|
55
|
+
* A small delete button used to click out of things. Usually an "X" icon.
|
|
56
|
+
*/
|
|
57
|
+
DeleteButtonComponent?: (props: {
|
|
58
|
+
onClick: () => void;
|
|
59
|
+
}) => JSX.Element;
|
|
60
|
+
/** A header component. */
|
|
61
|
+
HeaderComponent?: (props: {
|
|
62
|
+
label: string;
|
|
63
|
+
}) => JSX.Element;
|
|
64
|
+
/** A label component. */
|
|
65
|
+
LabelComponent?: (props: {
|
|
66
|
+
label: string;
|
|
67
|
+
}) => JSX.Element;
|
|
68
|
+
/** A text component. */
|
|
69
|
+
TextComponent?: (props: {
|
|
70
|
+
label: string;
|
|
71
|
+
}) => JSX.Element;
|
|
72
|
+
/**
|
|
73
|
+
* A modal component.
|
|
74
|
+
*/
|
|
75
|
+
ModalComponent?: (props: {
|
|
76
|
+
isOpen: boolean;
|
|
77
|
+
setIsOpen: (isOpen: boolean) => void;
|
|
78
|
+
title?: string | undefined;
|
|
79
|
+
children: ReactNode;
|
|
80
|
+
width?: number | undefined;
|
|
81
|
+
height?: number | undefined;
|
|
82
|
+
}) => JSX.Element;
|
|
83
|
+
/** A popover component. */
|
|
84
|
+
PopoverComponent?: (props: {
|
|
85
|
+
isOpen: boolean;
|
|
86
|
+
setIsOpen: (isOpen: boolean) => void;
|
|
87
|
+
triggerLabel?: string;
|
|
88
|
+
popoverTitle?: string;
|
|
89
|
+
popoverChildren: ReactNode;
|
|
90
|
+
}) => JSX.Element;
|
|
91
|
+
/** The default dashboard to add the item to. */
|
|
23
92
|
destinationDashboard?: string;
|
|
93
|
+
/** The name of the current organization. */
|
|
24
94
|
organizationName?: string;
|
|
25
|
-
|
|
95
|
+
/** Whether the ChartBuilder is in horizontal view mode. */
|
|
96
|
+
isHorizontalView?: boolean;
|
|
26
97
|
}
|
|
27
|
-
|
|
28
|
-
|
|
98
|
+
/**
|
|
99
|
+
* ### Quill Chart Editor
|
|
100
|
+
*
|
|
101
|
+
* Presents the Quill Chart Builder form as a modal.
|
|
102
|
+
*
|
|
103
|
+
* @example
|
|
104
|
+
* ```js
|
|
105
|
+
* // Usage without custom components
|
|
106
|
+
* <ChartEditor isOpen={true} chartId="1234" />
|
|
107
|
+
* ```
|
|
108
|
+
*
|
|
109
|
+
* @example
|
|
110
|
+
* ```js
|
|
111
|
+
* // You can also pass your own components
|
|
112
|
+
* <ChartEditor
|
|
113
|
+
* isOpen={isOpen}
|
|
114
|
+
* setIsOpen={setIsOpen}
|
|
115
|
+
* chartId="1234"
|
|
116
|
+
* Button={MyButton}
|
|
117
|
+
* Modal={MyModal}
|
|
118
|
+
* />
|
|
119
|
+
* ```
|
|
120
|
+
*
|
|
121
|
+
* ### Chart Editor API
|
|
122
|
+
* @see https://docs.quillsql.com/components/chart-editor
|
|
123
|
+
*/
|
|
124
|
+
export default function ChartEditor({ isOpen, chartId, isAdmin, destinationDashboard, chartBuilderTitle, chartBuilderButtonLabel, onAddToDashboardComplete, organizationName, isHorizontalView, onDelete, setIsOpen, SelectComponent, TextInputComponent, ButtonComponent, SecondaryButtonComponent, HeaderComponent, LabelComponent, TextComponent, DeleteButtonComponent, ModalComponent, PopoverComponent, }: ChartEditorProps): import("react/jsx-runtime").JSX.Element;
|
|
29
125
|
//# sourceMappingURL=ChartEditor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChartEditor.d.ts","sourceRoot":"","sources":["../../src/ChartEditor.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ChartEditor.d.ts","sourceRoot":"","sources":["../../src/ChartEditor.tsx"],"names":[],"mappings":"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"}
|