@quillsql/react 2.11.16 → 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 +194 -30
- package/dist/cjs/ChartBuilder.d.ts.map +1 -1
- package/dist/cjs/ChartBuilder.js +122 -62
- 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 -91
- 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 -42
- package/dist/cjs/ReportBuilder.d.ts.map +1 -1
- package/dist/cjs/ReportBuilder.js +466 -394
- package/dist/cjs/SQLEditor.d.ts +158 -23
- package/dist/cjs/SQLEditor.d.ts.map +1 -1
- package/dist/cjs/SQLEditor.js +35 -30
- 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 +9 -3
- package/dist/cjs/components/ReportBuilder/AddColumnPopover.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/AddColumnPopover.js +8 -6
- package/dist/cjs/components/ReportBuilder/AddLimitPopover.d.ts +13 -1
- package/dist/cjs/components/ReportBuilder/AddLimitPopover.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/AddLimitPopover.js +4 -14
- package/dist/cjs/components/ReportBuilder/AddSortPopover.d.ts +21 -1
- package/dist/cjs/components/ReportBuilder/AddSortPopover.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/AddSortPopover.js +15 -17
- 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 -18
- package/dist/cjs/components/ReportBuilder/ui.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/ui.js +52 -100
- package/dist/cjs/components/ReportBuilder/util.d.ts +2 -1
- package/dist/cjs/components/ReportBuilder/util.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/util.js +16 -9
- package/dist/cjs/components/UiComponents.d.ts +86 -86
- package/dist/cjs/components/UiComponents.d.ts.map +1 -1
- package/dist/cjs/components/UiComponents.js +118 -103
- 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/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 +194 -30
- package/dist/esm/ChartBuilder.d.ts.map +1 -1
- package/dist/esm/ChartBuilder.js +122 -62
- 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 -91
- 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 -42
- package/dist/esm/ReportBuilder.d.ts.map +1 -1
- package/dist/esm/ReportBuilder.js +468 -396
- package/dist/esm/SQLEditor.d.ts +158 -23
- package/dist/esm/SQLEditor.d.ts.map +1 -1
- package/dist/esm/SQLEditor.js +35 -30
- 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 +9 -3
- package/dist/esm/components/ReportBuilder/AddColumnPopover.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/AddColumnPopover.js +8 -6
- package/dist/esm/components/ReportBuilder/AddLimitPopover.d.ts +13 -1
- package/dist/esm/components/ReportBuilder/AddLimitPopover.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/AddLimitPopover.js +4 -14
- package/dist/esm/components/ReportBuilder/AddSortPopover.d.ts +21 -1
- package/dist/esm/components/ReportBuilder/AddSortPopover.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/AddSortPopover.js +17 -19
- 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 -18
- package/dist/esm/components/ReportBuilder/ui.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/ui.js +50 -98
- package/dist/esm/components/ReportBuilder/util.d.ts +2 -1
- package/dist/esm/components/ReportBuilder/util.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/util.js +14 -8
- package/dist/esm/components/UiComponents.d.ts +86 -86
- package/dist/esm/components/UiComponents.d.ts.map +1 -1
- package/dist/esm/components/UiComponents.js +111 -101
- 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/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,19 +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
|
-
const
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
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 }) }) }));
|
|
156
191
|
}
|
|
157
192
|
exports.ChartBuilderWithModal = ChartBuilderWithModal;
|
|
158
|
-
|
|
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, }) {
|
|
159
218
|
const dateRange = dr || [null, null, null];
|
|
160
219
|
const [client] = (0, react_1.useContext)(Context_1.ClientContext);
|
|
161
220
|
const [theme] = (0, react_1.useContext)(Context_1.ThemeContext);
|
|
@@ -375,6 +434,12 @@ function ChartBuilder({ TextInput = UiComponents_1.QuillTextInput, Select = Quil
|
|
|
375
434
|
}
|
|
376
435
|
const result = await getReferencedTables(client, query, schema, true);
|
|
377
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
|
+
}
|
|
378
443
|
const allReferencedFields = await getReferencedTables(client, query, schema, false);
|
|
379
444
|
setAllTables(allReferencedFields.map((table) => table.name));
|
|
380
445
|
setTableName(result[0]?.name);
|
|
@@ -578,7 +643,7 @@ function ChartBuilder({ TextInput = UiComponents_1.QuillTextInput, Select = Quil
|
|
|
578
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.`);
|
|
579
644
|
}
|
|
580
645
|
if (dashboardHasDateFilter &&
|
|
581
|
-
(!defaultDateField ||
|
|
646
|
+
((!defaultDateField.table && !defaultDateField.field) ||
|
|
582
647
|
(!formData.dateField.field && !formData.dateField.table))) {
|
|
583
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.`);
|
|
584
649
|
}
|
|
@@ -671,79 +736,79 @@ function ChartBuilder({ TextInput = UiComponents_1.QuillTextInput, Select = Quil
|
|
|
671
736
|
display: 'flex',
|
|
672
737
|
padding: modalPadding,
|
|
673
738
|
gap: '20px',
|
|
674
|
-
flexDirection:
|
|
739
|
+
flexDirection: isHorizontalView ? 'row' : 'column',
|
|
675
740
|
boxSizing: 'border-box',
|
|
676
741
|
}, children: [(0, jsx_runtime_1.jsxs)("div", { style: {
|
|
677
742
|
display: 'flex',
|
|
678
743
|
flexDirection: 'column',
|
|
679
744
|
gap: '20px',
|
|
680
|
-
...(
|
|
745
|
+
...(isHorizontalView && {
|
|
681
746
|
flexGrow: 1,
|
|
682
747
|
maxWidth: !isOpen ? '100%' : 'calc(100% - 665px - 20px)', // width of left sidebar plus gap
|
|
683
748
|
}),
|
|
684
|
-
}, children: [(!
|
|
749
|
+
}, children: [(!isHorizontalView || formData.chartType !== 'table') && ((0, jsx_runtime_1.jsx)(Chart_1.default, { colors: theme.chartColors, config: { ...formData, rows }, containerStyle: {
|
|
685
750
|
width: '100%',
|
|
686
751
|
height: formData.chartType === 'metric'
|
|
687
752
|
? 100
|
|
688
|
-
:
|
|
753
|
+
: isHorizontalView
|
|
689
754
|
? '100%'
|
|
690
755
|
: 400,
|
|
691
|
-
...(
|
|
756
|
+
...(isHorizontalView && { flexGrow: 1 }),
|
|
692
757
|
} })),
|
|
693
758
|
// Make sure to display non-pivoted table when using pivot chart
|
|
694
|
-
|
|
759
|
+
isHorizontalView && formData.chartType !== 'table' ? ((0, jsx_runtime_1.jsx)(Chart_1.default, { config: {
|
|
695
760
|
...formData,
|
|
696
761
|
pivot: undefined,
|
|
697
762
|
chartType: 'table',
|
|
698
763
|
rows,
|
|
699
|
-
rowsPerPage:
|
|
764
|
+
rowsPerPage: 10,
|
|
700
765
|
}, containerStyle: {
|
|
701
766
|
height: '100%',
|
|
702
767
|
width: '100%',
|
|
703
768
|
flexGrow: 1,
|
|
704
|
-
} })) : (
|
|
769
|
+
} })) : (isHorizontalView && ((0, jsx_runtime_1.jsx)(Chart_1.default, { config: {
|
|
705
770
|
...formData,
|
|
706
771
|
chartType: 'table',
|
|
707
772
|
rows,
|
|
708
|
-
rowsPerPage:
|
|
773
|
+
rowsPerPage: 10,
|
|
709
774
|
}, containerStyle: {
|
|
710
775
|
height: '100%',
|
|
711
776
|
width: '100%',
|
|
712
777
|
flexGrow: 1,
|
|
713
|
-
} })))] }), (isOpen || !
|
|
778
|
+
} })))] }), (isOpen || !isHorizontalView) && ((0, jsx_runtime_1.jsxs)("form", { ref: parentRef, id: "quill-chart-form", onSubmit: handleSubmit, style: {
|
|
714
779
|
display: 'flex',
|
|
715
780
|
flexDirection: 'column',
|
|
716
781
|
height: '100%',
|
|
717
|
-
...(
|
|
782
|
+
...(isHorizontalView && {
|
|
718
783
|
minWidth: 665,
|
|
719
784
|
maxWidth: 665,
|
|
720
785
|
width: 665,
|
|
721
786
|
gap: 20,
|
|
722
787
|
}),
|
|
723
|
-
}, 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)(
|
|
724
|
-
|
|
725
|
-
|
|
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);
|
|
726
791
|
}, options: dashboardOptions.map((elem) => ({
|
|
727
792
|
label: elem.label,
|
|
728
793
|
value: elem.label,
|
|
729
|
-
}))
|
|
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'),
|
|
730
795
|
// filter out metric for all pivots
|
|
731
796
|
// filter out bar and pie for row and column pivot
|
|
732
|
-
options: getChartTypeOptions(formData)
|
|
797
|
+
options: getChartTypeOptions(formData) })] })] }), (0, jsx_runtime_1.jsx)("br", {}), (0, jsx_runtime_1.jsxs)("div", { style: {
|
|
733
798
|
display: 'flex',
|
|
734
799
|
flexDirection: 'column',
|
|
735
800
|
gap: 12,
|
|
736
801
|
marginTop: 6,
|
|
737
|
-
}, 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: {
|
|
738
803
|
maxWidth: 200,
|
|
739
804
|
// marginTop: 6,
|
|
740
805
|
display: 'flex',
|
|
741
806
|
flexDirection: 'column',
|
|
742
|
-
}, 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: {
|
|
743
808
|
// width: 592,
|
|
744
809
|
paddingRight: 42,
|
|
745
810
|
maxWidth: 750,
|
|
746
|
-
}, 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: {
|
|
747
812
|
pivot: formData.pivot,
|
|
748
813
|
rows: selectedPivotTable?.rows,
|
|
749
814
|
columns: selectedPivotTable?.columns,
|
|
@@ -755,29 +820,29 @@ function ChartBuilder({ TextInput = UiComponents_1.QuillTextInput, Select = Quil
|
|
|
755
820
|
setPivotValueField(formData.pivot?.valueField);
|
|
756
821
|
setPivotAggregation(formData.pivot?.aggregationType);
|
|
757
822
|
setPivotPopUpTitle('Edit Pivot');
|
|
758
|
-
}, 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: {
|
|
759
824
|
display: 'flex',
|
|
760
825
|
flexDirection: 'column',
|
|
761
826
|
gap: 6,
|
|
762
827
|
marginTop: 6,
|
|
763
|
-
}, 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: {
|
|
764
829
|
display: 'flex',
|
|
765
830
|
flexDirection: 'row',
|
|
766
831
|
gap: 12,
|
|
767
|
-
}, 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
|
|
768
833
|
? getPivotMetricOptions(formData.pivot)
|
|
769
834
|
: fieldOptions.map((elem) => ({
|
|
770
835
|
label: elem.field,
|
|
771
836
|
value: elem.field,
|
|
772
|
-
}))
|
|
837
|
+
})) }), (0, jsx_runtime_1.jsx)(TextInputComponent, { id: "chart-builder-x-axis-label", width: 200, value: formData.pivot
|
|
773
838
|
? formData.pivot.rowField
|
|
774
|
-
: formData.xAxisLabel, placeholder: "Column Label", onChange: (e) => handleChange(e.target.value, 'xAxisLabel') }), (0, jsx_runtime_1.jsx)(
|
|
839
|
+
: formData.xAxisLabel, placeholder: "Column Label", onChange: (e) => handleChange(e.target.value, 'xAxisLabel') }), (0, jsx_runtime_1.jsx)(SelectComponent, { value: formData.pivot &&
|
|
775
840
|
(0, PivotModal_1.isDateField)(formData.pivot.rowFieldType)
|
|
776
841
|
? 'pivot_date'
|
|
777
|
-
: formData.xAxisFormat, onChange: (e) => handleChange(e, 'xAxisFormat'), options: formData.pivot &&
|
|
842
|
+
: formData.xAxisFormat, onChange: (e) => handleChange(e.target.value, 'xAxisFormat'), options: formData.pivot &&
|
|
778
843
|
(0, PivotModal_1.isDateField)(formData.pivot.rowFieldType)
|
|
779
844
|
? [{ value: 'pivot_date', label: 'date' }]
|
|
780
|
-
: 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: {
|
|
781
846
|
display: 'flex',
|
|
782
847
|
flexDirection: 'column',
|
|
783
848
|
gap: 10,
|
|
@@ -785,9 +850,9 @@ function ChartBuilder({ TextInput = UiComponents_1.QuillTextInput, Select = Quil
|
|
|
785
850
|
display: 'flex',
|
|
786
851
|
flexDirection: 'row',
|
|
787
852
|
gap: 12,
|
|
788
|
-
}, children: [(0, jsx_runtime_1.jsx)(
|
|
853
|
+
}, children: [(0, jsx_runtime_1.jsx)(SelectComponent, { value: formData.pivot
|
|
789
854
|
? formData.pivot.valueField
|
|
790
|
-
: yAxisField.field, onChange: (e) => handleChange(e, 'yAxisFields.field', index),
|
|
855
|
+
: yAxisField.field, onChange: (e) => handleChange(e.target.value, 'yAxisFields.field', index), options: formData.pivot
|
|
791
856
|
? [
|
|
792
857
|
{
|
|
793
858
|
label: `Pivot Column (${formData.pivot.valueField})`,
|
|
@@ -801,21 +866,21 @@ function ChartBuilder({ TextInput = UiComponents_1.QuillTextInput, Select = Quil
|
|
|
801
866
|
.map((elem) => ({
|
|
802
867
|
label: elem.field,
|
|
803
868
|
value: elem.field,
|
|
804
|
-
})) }), (0, jsx_runtime_1.jsx)(
|
|
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
|
|
805
870
|
? NUMBER_OPTIONS.find((option) => {
|
|
806
871
|
return (option.value === yAxisField.format);
|
|
807
872
|
})
|
|
808
873
|
? // @ts-ignore
|
|
809
874
|
NUMBER_OPTIONS.find((option) => option.value === yAxisField.format).value
|
|
810
875
|
: 'whole_number'
|
|
811
|
-
: 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
|
|
812
877
|
? NUMBER_OPTIONS
|
|
813
|
-
: 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: {
|
|
814
879
|
display: 'flex',
|
|
815
880
|
flexDirection: 'column',
|
|
816
881
|
gap: 6,
|
|
817
882
|
marginTop: 6,
|
|
818
|
-
}, 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: {
|
|
819
884
|
display: 'flex',
|
|
820
885
|
flexDirection: 'column',
|
|
821
886
|
gap: 10,
|
|
@@ -828,10 +893,10 @@ function ChartBuilder({ TextInput = UiComponents_1.QuillTextInput, Select = Quil
|
|
|
828
893
|
display: 'flex',
|
|
829
894
|
flexDirection: 'row',
|
|
830
895
|
gap: 12,
|
|
831
|
-
}, 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) => ({
|
|
832
897
|
label: elem.label,
|
|
833
898
|
value: elem.label,
|
|
834
|
-
})) }), (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:
|
|
835
900
|
// The first index use rowField for the rest of them use value fields
|
|
836
901
|
formData.pivot &&
|
|
837
902
|
column.field === formData.pivot.rowField
|
|
@@ -840,7 +905,7 @@ function ChartBuilder({ TextInput = UiComponents_1.QuillTextInput, Select = Quil
|
|
|
840
905
|
? 'pivot_date'
|
|
841
906
|
: 'string'
|
|
842
907
|
: formData.pivot?.valueFieldType ||
|
|
843
|
-
'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
|
|
844
909
|
? (0, PivotModal_1.isDateField)(formData.pivot.rowFieldType)
|
|
845
910
|
? [{ label: 'date', value: 'pivot_date' }]
|
|
846
911
|
: [{ label: 'string', value: 'string' }]
|
|
@@ -849,22 +914,22 @@ function ChartBuilder({ TextInput = UiComponents_1.QuillTextInput, Select = Quil
|
|
|
849
914
|
display: 'flex',
|
|
850
915
|
flexDirection: 'row',
|
|
851
916
|
gap: 12,
|
|
852
|
-
}, 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) => ({
|
|
853
918
|
label: elem.field,
|
|
854
919
|
value: elem.field,
|
|
855
|
-
})) }), (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: {
|
|
856
921
|
display: 'flex',
|
|
857
922
|
flexDirection: 'column',
|
|
858
923
|
gap: 6,
|
|
859
924
|
marginTop: 6,
|
|
860
|
-
}, children: [(0, jsx_runtime_1.jsx)(
|
|
925
|
+
}, children: [(0, jsx_runtime_1.jsx)(HeaderComponent, { label: "Date field" }), (0, jsx_runtime_1.jsxs)("div", { style: {
|
|
861
926
|
display: 'flex',
|
|
862
927
|
flexDirection: 'row',
|
|
863
928
|
gap: 12,
|
|
864
|
-
}, 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) => ({
|
|
865
930
|
label: elem.name,
|
|
866
931
|
value: elem.name,
|
|
867
|
-
})) })] }), (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
|
|
868
933
|
?.find((elem) => elem.name === formData.dateField?.table)
|
|
869
934
|
?.columns?.map((elem) => ({
|
|
870
935
|
label: elem.name,
|
|
@@ -874,13 +939,13 @@ function ChartBuilder({ TextInput = UiComponents_1.QuillTextInput, Select = Quil
|
|
|
874
939
|
flexDirection: 'column',
|
|
875
940
|
gap: 12,
|
|
876
941
|
marginTop: 6,
|
|
877
|
-
}, 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: {
|
|
878
943
|
display: 'flex',
|
|
879
944
|
flexDirection: 'row',
|
|
880
945
|
justifyContent: 'flex-end',
|
|
881
946
|
marginTop: 'auto',
|
|
882
947
|
gap: 10,
|
|
883
|
-
}, 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
|
|
884
949
|
? buttonLabel
|
|
885
950
|
: dashboardItem
|
|
886
951
|
? 'Save changes'
|
|
@@ -950,22 +1015,17 @@ function SegmentedControl({ onChange, value, theme, organizationName, }) {
|
|
|
950
1015
|
` }), organizationName] }))] }));
|
|
951
1016
|
}
|
|
952
1017
|
function DashboardFilterModal({ isOpen, setIsOpen, override, theme, issues, }) {
|
|
953
|
-
return ((0, jsx_runtime_1.jsx)(UiComponents_1.MemoizedModal, { isOpen: isOpen,
|
|
954
|
-
setIsOpen(false);
|
|
955
|
-
}, 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: {
|
|
956
1019
|
display: 'flex',
|
|
957
1020
|
flexDirection: 'column',
|
|
958
1021
|
width: '600px',
|
|
959
1022
|
padding: '20px',
|
|
960
1023
|
boxSizing: 'border-box',
|
|
961
|
-
}, 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: {
|
|
962
1025
|
display: 'flex',
|
|
963
1026
|
flexDirection: 'row',
|
|
964
1027
|
gap: '12px',
|
|
965
1028
|
justifyContent: 'flex-end',
|
|
966
|
-
}, children:
|
|
967
|
-
override();
|
|
968
|
-
setIsOpen(false);
|
|
969
|
-
} })] })] }) }));
|
|
1029
|
+
}, children: (0, jsx_runtime_1.jsx)(UiComponents_1.MemoizedButton, { label: "Got It", onClick: () => setIsOpen(false) }) })] }) }));
|
|
970
1030
|
}
|
|
971
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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"}
|