@quillsql/react 2.12.46 → 2.12.48
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.map +1 -1
- package/dist/cjs/Chart.js +16 -7
- package/dist/cjs/ChartBuilder.d.ts +10 -11
- package/dist/cjs/ChartBuilder.d.ts.map +1 -1
- package/dist/cjs/ChartBuilder.js +78 -81
- package/dist/cjs/ChartEditor.d.ts +3 -1
- package/dist/cjs/ChartEditor.d.ts.map +1 -1
- package/dist/cjs/ChartEditor.js +26 -10
- package/dist/cjs/Context.d.ts +2 -3
- package/dist/cjs/Context.d.ts.map +1 -1
- package/dist/cjs/Context.js +42 -28
- package/dist/cjs/Dashboard.d.ts +12 -12
- package/dist/cjs/Dashboard.d.ts.map +1 -1
- package/dist/cjs/Dashboard.js +61 -69
- package/dist/cjs/QuillProvider.d.ts +2 -0
- package/dist/cjs/QuillProvider.d.ts.map +1 -1
- package/dist/cjs/QuillProvider.js +1 -15
- package/dist/cjs/ReportBuilder.d.ts +9 -9
- package/dist/cjs/ReportBuilder.d.ts.map +1 -1
- package/dist/cjs/ReportBuilder.js +116 -179
- package/dist/cjs/SQLEditor.d.ts +20 -11
- package/dist/cjs/SQLEditor.d.ts.map +1 -1
- package/dist/cjs/SQLEditor.js +157 -90
- package/dist/cjs/Table.js +3 -3
- package/dist/cjs/components/Chart/BarChart.d.ts.map +1 -1
- package/dist/cjs/components/Chart/BarChart.js +6 -25
- package/dist/cjs/components/Chart/BarList.js +1 -1
- package/dist/cjs/components/Chart/ChartError.d.ts +5 -2
- package/dist/cjs/components/Chart/ChartError.d.ts.map +1 -1
- package/dist/cjs/components/Chart/ChartError.js +7 -10
- package/dist/cjs/components/Chart/LineChart.d.ts.map +1 -1
- package/dist/cjs/components/Chart/LineChart.js +16 -1
- package/dist/cjs/components/Chart/PieChart.js +1 -1
- package/dist/cjs/components/Dashboard/ChartComponent.d.ts +1 -1
- package/dist/cjs/components/Dashboard/ChartComponent.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/ChartComponent.js +46 -47
- package/dist/cjs/components/Dashboard/DashboardFilter.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/DashboardFilter.js +2 -1
- package/dist/cjs/components/Dashboard/DataLoader.d.ts +2 -2
- package/dist/cjs/components/Dashboard/DataLoader.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/DataLoader.js +19 -13
- package/dist/cjs/components/Dashboard/MetricComponent.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/MetricComponent.js +16 -26
- package/dist/cjs/components/Dashboard/TableComponent.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/TableComponent.js +16 -25
- package/dist/cjs/components/QuillMultiSelectWithCombo.d.ts.map +1 -1
- package/dist/cjs/components/QuillMultiSelectWithCombo.js +31 -1
- package/dist/cjs/components/QuillSelect.js +1 -1
- package/dist/cjs/components/QuillTable.d.ts +1 -1
- package/dist/cjs/components/QuillTable.d.ts.map +1 -1
- package/dist/cjs/components/QuillTable.js +115 -105
- package/dist/cjs/components/ReportBuilder/AddColumnModal.d.ts +3 -3
- package/dist/cjs/components/ReportBuilder/AddColumnModal.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/AddColumnModal.js +2 -2
- package/dist/cjs/components/ReportBuilder/AddLimitPopover.d.ts +2 -2
- package/dist/cjs/components/ReportBuilder/AddLimitPopover.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/AddLimitPopover.js +28 -9
- package/dist/cjs/components/ReportBuilder/FilterModal.d.ts +1 -1
- package/dist/cjs/components/ReportBuilder/FilterModal.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/FilterModal.js +178 -114
- package/dist/cjs/components/ReportBuilder/convert.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/convert.js +1 -2
- package/dist/cjs/components/ReportBuilder/ui.d.ts +9 -1
- package/dist/cjs/components/ReportBuilder/ui.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/ui.js +37 -3
- package/dist/cjs/components/ReportBuilder/util.d.ts +5 -1
- package/dist/cjs/components/ReportBuilder/util.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/util.js +26 -12
- package/dist/cjs/components/UiComponents.d.ts +17 -3
- package/dist/cjs/components/UiComponents.d.ts.map +1 -1
- package/dist/cjs/components/UiComponents.js +160 -29
- package/dist/cjs/hooks/useAskQuill.d.ts.map +1 -1
- package/dist/cjs/hooks/useAskQuill.js +7 -7
- package/dist/cjs/hooks/useAstToFilterTree.d.ts +4 -1
- package/dist/cjs/hooks/useAstToFilterTree.d.ts.map +1 -1
- package/dist/cjs/hooks/useAstToFilterTree.js +4 -1
- package/dist/cjs/hooks/useDashboard.d.ts +5 -1
- package/dist/cjs/hooks/useDashboard.d.ts.map +1 -1
- package/dist/cjs/hooks/useDashboard.js +28 -4
- package/dist/cjs/hooks/useOnClickOutside.js +2 -2
- package/dist/cjs/hooks/useQuill.js +4 -4
- package/dist/cjs/hooks/useVirtualTables.d.ts +10 -0
- package/dist/cjs/hooks/useVirtualTables.d.ts.map +1 -0
- package/dist/cjs/hooks/useVirtualTables.js +29 -0
- package/dist/cjs/index.d.ts +2 -1
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +4 -1
- package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
- package/dist/cjs/internals/ReportBuilder/PivotModal.js +45 -21
- package/dist/cjs/models/Client.d.ts +3 -0
- package/dist/cjs/models/Client.d.ts.map +1 -1
- package/dist/cjs/models/Report.d.ts +2 -0
- package/dist/cjs/models/Report.d.ts.map +1 -1
- package/dist/cjs/models/Schema.d.ts +7 -0
- package/dist/cjs/models/Schema.d.ts.map +1 -0
- package/dist/cjs/models/Schema.js +2 -0
- package/dist/cjs/models/Tables.d.ts +2 -0
- package/dist/cjs/models/Tables.d.ts.map +1 -1
- package/dist/cjs/utils/astFilterProcessing.d.ts +4 -0
- package/dist/cjs/utils/astFilterProcessing.d.ts.map +1 -1
- package/dist/cjs/utils/astFilterProcessing.js +47 -44
- package/dist/cjs/utils/astProcessing.d.ts.map +1 -1
- package/dist/cjs/utils/astProcessing.js +8 -8
- package/dist/cjs/utils/client.d.ts.map +1 -1
- package/dist/cjs/utils/client.js +1 -0
- package/dist/cjs/utils/columnProcessing.d.ts.map +1 -1
- package/dist/cjs/utils/columnProcessing.js +88 -5
- package/dist/cjs/utils/dataFetcher.d.ts.map +1 -1
- package/dist/cjs/utils/dataFetcher.js +7 -3
- package/dist/cjs/utils/filterProcessing.d.ts +25 -0
- package/dist/cjs/utils/filterProcessing.d.ts.map +1 -1
- package/dist/cjs/utils/filterProcessing.js +121 -1
- package/dist/cjs/utils/paginationProcessing.js +2 -2
- package/dist/cjs/utils/pivotConstructor.d.ts.map +1 -1
- package/dist/cjs/utils/pivotConstructor.js +10 -6
- package/dist/cjs/utils/queryConstructor.d.ts +1 -0
- package/dist/cjs/utils/queryConstructor.d.ts.map +1 -1
- package/dist/cjs/utils/queryConstructor.js +37 -11
- package/dist/cjs/utils/report.d.ts +5 -0
- package/dist/cjs/utils/report.d.ts.map +1 -1
- package/dist/cjs/utils/report.js +63 -9
- package/dist/cjs/utils/schema.js +22 -20
- package/dist/cjs/utils/tableProcessing.d.ts +1 -0
- package/dist/cjs/utils/tableProcessing.d.ts.map +1 -1
- package/dist/cjs/utils/tableProcessing.js +22 -1
- package/dist/cjs/utils/validation.d.ts.map +1 -1
- package/dist/cjs/utils/validation.js +4 -0
- package/dist/esm/Chart.d.ts.map +1 -1
- package/dist/esm/Chart.js +17 -8
- package/dist/esm/ChartBuilder.d.ts +10 -11
- package/dist/esm/ChartBuilder.d.ts.map +1 -1
- package/dist/esm/ChartBuilder.js +81 -84
- package/dist/esm/ChartEditor.d.ts +3 -1
- package/dist/esm/ChartEditor.d.ts.map +1 -1
- package/dist/esm/ChartEditor.js +27 -11
- package/dist/esm/Context.d.ts +2 -3
- package/dist/esm/Context.d.ts.map +1 -1
- package/dist/esm/Context.js +42 -28
- package/dist/esm/Dashboard.d.ts +12 -12
- package/dist/esm/Dashboard.d.ts.map +1 -1
- package/dist/esm/Dashboard.js +63 -71
- package/dist/esm/QuillProvider.d.ts +2 -0
- package/dist/esm/QuillProvider.d.ts.map +1 -1
- package/dist/esm/QuillProvider.js +2 -16
- package/dist/esm/ReportBuilder.d.ts +9 -9
- package/dist/esm/ReportBuilder.d.ts.map +1 -1
- package/dist/esm/ReportBuilder.js +122 -185
- package/dist/esm/SQLEditor.d.ts +20 -11
- package/dist/esm/SQLEditor.d.ts.map +1 -1
- package/dist/esm/SQLEditor.js +160 -93
- package/dist/esm/Table.js +4 -4
- package/dist/esm/components/Chart/BarChart.d.ts.map +1 -1
- package/dist/esm/components/Chart/BarChart.js +7 -26
- package/dist/esm/components/Chart/BarList.js +1 -1
- package/dist/esm/components/Chart/ChartError.d.ts +5 -2
- package/dist/esm/components/Chart/ChartError.d.ts.map +1 -1
- package/dist/esm/components/Chart/ChartError.js +7 -10
- package/dist/esm/components/Chart/LineChart.d.ts.map +1 -1
- package/dist/esm/components/Chart/LineChart.js +16 -1
- package/dist/esm/components/Chart/PieChart.js +1 -1
- package/dist/esm/components/Dashboard/ChartComponent.d.ts +1 -1
- package/dist/esm/components/Dashboard/ChartComponent.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/ChartComponent.js +46 -47
- package/dist/esm/components/Dashboard/DashboardFilter.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/DashboardFilter.js +2 -1
- package/dist/esm/components/Dashboard/DataLoader.d.ts +2 -2
- package/dist/esm/components/Dashboard/DataLoader.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/DataLoader.js +20 -14
- package/dist/esm/components/Dashboard/MetricComponent.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/MetricComponent.js +16 -26
- package/dist/esm/components/Dashboard/TableComponent.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/TableComponent.js +16 -25
- package/dist/esm/components/QuillMultiSelectWithCombo.d.ts.map +1 -1
- package/dist/esm/components/QuillMultiSelectWithCombo.js +31 -1
- package/dist/esm/components/QuillSelect.js +1 -1
- package/dist/esm/components/QuillTable.d.ts +1 -1
- package/dist/esm/components/QuillTable.d.ts.map +1 -1
- package/dist/esm/components/QuillTable.js +115 -105
- package/dist/esm/components/ReportBuilder/AddColumnModal.d.ts +3 -3
- package/dist/esm/components/ReportBuilder/AddColumnModal.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/AddColumnModal.js +2 -2
- package/dist/esm/components/ReportBuilder/AddLimitPopover.d.ts +2 -2
- package/dist/esm/components/ReportBuilder/AddLimitPopover.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/AddLimitPopover.js +28 -9
- package/dist/esm/components/ReportBuilder/FilterModal.d.ts +1 -1
- package/dist/esm/components/ReportBuilder/FilterModal.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/FilterModal.js +178 -114
- package/dist/esm/components/ReportBuilder/convert.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/convert.js +1 -2
- package/dist/esm/components/ReportBuilder/ui.d.ts +9 -1
- package/dist/esm/components/ReportBuilder/ui.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/ui.js +38 -4
- package/dist/esm/components/ReportBuilder/util.d.ts +5 -1
- package/dist/esm/components/ReportBuilder/util.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/util.js +26 -12
- package/dist/esm/components/UiComponents.d.ts +17 -3
- package/dist/esm/components/UiComponents.d.ts.map +1 -1
- package/dist/esm/components/UiComponents.js +158 -28
- package/dist/esm/hooks/useAskQuill.d.ts.map +1 -1
- package/dist/esm/hooks/useAskQuill.js +8 -8
- package/dist/esm/hooks/useAstToFilterTree.d.ts +4 -1
- package/dist/esm/hooks/useAstToFilterTree.d.ts.map +1 -1
- package/dist/esm/hooks/useAstToFilterTree.js +4 -1
- package/dist/esm/hooks/useDashboard.d.ts +5 -1
- package/dist/esm/hooks/useDashboard.d.ts.map +1 -1
- package/dist/esm/hooks/useDashboard.js +28 -5
- package/dist/esm/hooks/useOnClickOutside.js +2 -2
- package/dist/esm/hooks/useQuill.js +5 -5
- package/dist/esm/hooks/useVirtualTables.d.ts +10 -0
- package/dist/esm/hooks/useVirtualTables.d.ts.map +1 -0
- package/dist/esm/hooks/useVirtualTables.js +25 -0
- package/dist/esm/index.d.ts +2 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +2 -1
- package/dist/esm/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
- package/dist/esm/internals/ReportBuilder/PivotModal.js +44 -23
- package/dist/esm/models/Client.d.ts +3 -0
- package/dist/esm/models/Client.d.ts.map +1 -1
- package/dist/esm/models/Report.d.ts +2 -0
- package/dist/esm/models/Report.d.ts.map +1 -1
- package/dist/esm/models/Schema.d.ts +7 -0
- package/dist/esm/models/Schema.d.ts.map +1 -0
- package/dist/esm/models/Schema.js +1 -0
- package/dist/esm/models/Tables.d.ts +2 -0
- package/dist/esm/models/Tables.d.ts.map +1 -1
- package/dist/esm/utils/astFilterProcessing.d.ts +4 -0
- package/dist/esm/utils/astFilterProcessing.d.ts.map +1 -1
- package/dist/esm/utils/astFilterProcessing.js +45 -43
- package/dist/esm/utils/astProcessing.d.ts.map +1 -1
- package/dist/esm/utils/astProcessing.js +8 -8
- package/dist/esm/utils/client.d.ts.map +1 -1
- package/dist/esm/utils/client.js +1 -0
- package/dist/esm/utils/columnProcessing.d.ts.map +1 -1
- package/dist/esm/utils/columnProcessing.js +88 -5
- package/dist/esm/utils/dataFetcher.d.ts.map +1 -1
- package/dist/esm/utils/dataFetcher.js +7 -3
- package/dist/esm/utils/filterProcessing.d.ts +25 -0
- package/dist/esm/utils/filterProcessing.d.ts.map +1 -1
- package/dist/esm/utils/filterProcessing.js +116 -0
- package/dist/esm/utils/paginationProcessing.js +2 -2
- package/dist/esm/utils/pivotConstructor.d.ts.map +1 -1
- package/dist/esm/utils/pivotConstructor.js +10 -6
- package/dist/esm/utils/queryConstructor.d.ts +1 -0
- package/dist/esm/utils/queryConstructor.d.ts.map +1 -1
- package/dist/esm/utils/queryConstructor.js +35 -10
- package/dist/esm/utils/report.d.ts +5 -0
- package/dist/esm/utils/report.d.ts.map +1 -1
- package/dist/esm/utils/report.js +61 -8
- package/dist/esm/utils/schema.js +22 -20
- package/dist/esm/utils/tableProcessing.d.ts +1 -0
- package/dist/esm/utils/tableProcessing.d.ts.map +1 -1
- package/dist/esm/utils/tableProcessing.js +21 -1
- package/dist/esm/utils/validation.d.ts.map +1 -1
- package/dist/esm/utils/validation.js +4 -0
- package/package.json +3 -1
package/dist/esm/ChartBuilder.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { useEffect, useRef, useState, useContext, useMemo, } from 'react';
|
|
3
|
-
import { ClientContext, DashboardConfigContext, DashboardContext, DashboardFiltersContext,
|
|
4
|
-
import {
|
|
3
|
+
import { ClientContext, DashboardConfigContext, DashboardContext, DashboardFiltersContext, SchemaDataContext, ThemeContext, } from './Context';
|
|
4
|
+
import { getDataFromCloud } from './utils/dataFetcher';
|
|
5
5
|
import { PivotModal, generatePivotTable, isDateField, } from './internals/ReportBuilder/PivotModal';
|
|
6
6
|
import { PivotCard } from './internals/ReportBuilder/PivotList';
|
|
7
7
|
import { ChartDisplay } from './Chart';
|
|
@@ -13,11 +13,10 @@ import { QuillCard } from './components/QuillCard';
|
|
|
13
13
|
import { quillFormat } from './utils/valueFormatter';
|
|
14
14
|
import { convertFieldTypeToJSType } from './utils/columnProcessing';
|
|
15
15
|
import { createTableNameToTableAliasMap, getColumnsByTableFromASTAndSchema, getSelectFromAST, } from './utils/astProcessing';
|
|
16
|
-
import { getSchemaInfoWithCustomFields } from './utils/schema';
|
|
17
16
|
import { getDateBucketFromRange } from './utils/dates';
|
|
18
17
|
import { validateReport } from './utils/validation';
|
|
19
18
|
import { QuillChartErrorWithAction } from './components/Chart/ChartError';
|
|
20
|
-
import { convertInternalReportToReport } from './utils/report';
|
|
19
|
+
import { convertInternalReportToReport, saveReport } from './utils/report';
|
|
21
20
|
const CHART_TYPES = ['column', 'line', 'table', 'metric', 'bar', 'pie'];
|
|
22
21
|
const POSTGRES_DATE_TYPES = [
|
|
23
22
|
'timestamp',
|
|
@@ -55,7 +54,7 @@ function getPivotMetricOptions(pivot) {
|
|
|
55
54
|
export function createInitialFormData(columns) {
|
|
56
55
|
const firstNumberColumn = columns?.find((col) => numberFormatOptions.includes(col.format));
|
|
57
56
|
const formEmptyState = {
|
|
58
|
-
name: '
|
|
57
|
+
name: '',
|
|
59
58
|
columns: columns.map((col) => {
|
|
60
59
|
return { ...col, label: snakeAndCamelCaseToTitleCase(col.label) };
|
|
61
60
|
}),
|
|
@@ -78,7 +77,7 @@ export function createInitialFormData(columns) {
|
|
|
78
77
|
}
|
|
79
78
|
function getChartTypeOptions(formData, dashboard) {
|
|
80
79
|
let viableCharts = CHART_TYPES;
|
|
81
|
-
if (dashboard.dateFilter && dashboard.dateFilter.comparison) {
|
|
80
|
+
if (dashboard && dashboard.dateFilter && dashboard.dateFilter.comparison) {
|
|
82
81
|
viableCharts = viableCharts.filter((chart) => !['table', 'metric', 'bar', 'pie'].includes(chart));
|
|
83
82
|
}
|
|
84
83
|
if (formData.pivot && !formData.pivot.rowField) {
|
|
@@ -289,17 +288,13 @@ export function ChartBuilderWithModal(props) {
|
|
|
289
288
|
* ### Chart Builder API
|
|
290
289
|
* @see https://docs.quillsql.com/components/chart-builder
|
|
291
290
|
*/
|
|
292
|
-
export default function ChartBuilder({ TextInputComponent = QuillTextInput, SelectComponent = QuillSelectComponent, ButtonComponent = MemoizedButton, SecondaryButtonComponent = MemoizedSecondaryButton, HeaderComponent = MemoizedHeader, SubHeaderComponent = MemoizedSubHeader, LabelComponent = MemoizedLabel, DeleteButtonComponent = MemoizedDeleteButton, TextComponent = MemoizedText, PopoverComponent = MemoizedPopover, CardComponent = QuillCard, TableComponent = QuillTableComponent, ModalComponent = MemoizedModal, LoadingComponent = QuillLoadingComponent, ErrorMessageComponent = QuillErrorMessageComponent, ChartBuilderInputRowContainer = QuillChartBuilderInputRowContainer, ChartBuilderInputColumnContainer = QuillChartBuilderInputColumnContainer, PivotRowContainer = QuillPivotRowContainer, PivotColumnContainer = QuillPivotColumnContainer, FormContainer = QuillChartBuilderFormContainer, ErrorComponent = QuillChartErrorWithAction, onClickChartError, isOpen, isHorizontalView = true, pivot, setIsOpen, rows, columns, query, queryNoDateColumn, dateRange
|
|
293
|
-
const dateRange = dr;
|
|
291
|
+
export default function ChartBuilder({ TextInputComponent = QuillTextInput, SelectComponent = QuillSelectComponent, ButtonComponent = MemoizedButton, SecondaryButtonComponent = MemoizedSecondaryButton, HeaderComponent = MemoizedHeader, SubHeaderComponent = MemoizedSubHeader, LabelComponent = MemoizedLabel, DeleteButtonComponent = MemoizedDeleteButton, TextComponent = MemoizedText, PopoverComponent = MemoizedPopover, CardComponent = QuillCard, TableComponent = QuillTableComponent, ModalComponent = MemoizedModal, LoadingComponent = QuillLoadingComponent, ErrorMessageComponent = QuillErrorMessageComponent, ChartBuilderInputRowContainer = QuillChartBuilderInputRowContainer, ChartBuilderInputColumnContainer = QuillChartBuilderInputColumnContainer, PivotRowContainer = QuillPivotRowContainer, PivotColumnContainer = QuillPivotColumnContainer, FormContainer = QuillChartBuilderFormContainer, ErrorComponent = QuillChartErrorWithAction, onClickChartError, isOpen, isHorizontalView = true, pivot, setIsOpen, rows = [], columns = [], query, queryNoDateColumn, dateRange, showTableFormatOptions = false, showDateFieldOptions = false, showAccessControlOptions = false, isAdmin = false, showDashboardDropdown = true, onAddToDashboardComplete, onDelete, onDiscardChanges, report = undefined, recommendedPivots: rp = [], createdPivots: cp = [], destinationDashboard, dateColumn, buttonLabel, organizationName, pivotData, hideDeleteButton = false, hideSubmitButton = false, hideDateRangeFilter = false, initialUniqueValues, pivotRecommendationsEnabled = true, onSortChange, onPageChange, rowCount, isLoading, isComparison, onClickChartElement, isEditingMode = false, }) {
|
|
294
292
|
const [client] = useContext(ClientContext);
|
|
295
293
|
const [theme] = useContext(ThemeContext);
|
|
296
|
-
const [
|
|
294
|
+
const [schemaData] = useContext(SchemaDataContext);
|
|
297
295
|
const [windowWidth, setWindowWidth] = useState(1200);
|
|
298
296
|
const [isSubmitting, setIsSubmitting] = useState(false);
|
|
299
297
|
const [pivotCardWidth, setPivotCardWidth] = useState(665);
|
|
300
|
-
const [chartTypes, setChartTypes] = useState(CHART_TYPES.map((type) => {
|
|
301
|
-
return { label: type, value: type };
|
|
302
|
-
}));
|
|
303
298
|
const [formWidth, setFormWidth] = useState(665);
|
|
304
299
|
const inputRef = useRef(null);
|
|
305
300
|
const selectRef = useRef(null);
|
|
@@ -309,6 +304,13 @@ export default function ChartBuilder({ TextInputComponent = QuillTextInput, Sele
|
|
|
309
304
|
const deleteRef = useRef(null);
|
|
310
305
|
const modalPadding = 20;
|
|
311
306
|
const deleteButtonMargin = -12;
|
|
307
|
+
// If the TextInputComponent is a forwardRef it will have a $$typeof property
|
|
308
|
+
// So we only want to pass the ref if the TextInputComponent is a forwardRef
|
|
309
|
+
const autofocusRefProp = '$$typeof' in TextInputComponent
|
|
310
|
+
? {
|
|
311
|
+
ref: (input) => formData.name === '' && !showPivotPopover && input?.focus(),
|
|
312
|
+
}
|
|
313
|
+
: {};
|
|
312
314
|
const validationHelper = (formData, dashboard, dateField, tables) => {
|
|
313
315
|
const issues = validateReport(formData, dashboard, dateField || defaultDateField, tables || allTables);
|
|
314
316
|
if (issues.length > 0) {
|
|
@@ -319,14 +321,14 @@ export default function ChartBuilder({ TextInputComponent = QuillTextInput, Sele
|
|
|
319
321
|
}
|
|
320
322
|
};
|
|
321
323
|
useEffect(() => {
|
|
322
|
-
if (schema) {
|
|
324
|
+
if (schemaData.schema) {
|
|
323
325
|
const newProcessedColumns = columns.map((col) => {
|
|
324
326
|
if (col.jsType) {
|
|
325
327
|
return col;
|
|
326
328
|
}
|
|
327
329
|
const newCol = { ...col };
|
|
328
330
|
let foundColumn;
|
|
329
|
-
schema.forEach((table) => {
|
|
331
|
+
schemaData.schema.forEach((table) => {
|
|
330
332
|
if (table.columns) {
|
|
331
333
|
const matchedColumn = table.columns.find((c) => c.field === col.field);
|
|
332
334
|
if (matchedColumn) {
|
|
@@ -343,7 +345,7 @@ export default function ChartBuilder({ TextInputComponent = QuillTextInput, Sele
|
|
|
343
345
|
});
|
|
344
346
|
setProcessedColumns(newProcessedColumns);
|
|
345
347
|
}
|
|
346
|
-
}, [schema]);
|
|
348
|
+
}, [schemaData.schema]);
|
|
347
349
|
useEffect(() => {
|
|
348
350
|
const handleResize = () => setWindowWidth(window.innerWidth);
|
|
349
351
|
handleResize();
|
|
@@ -411,7 +413,7 @@ export default function ChartBuilder({ TextInputComponent = QuillTextInput, Sele
|
|
|
411
413
|
const [isEdittingPivot, setIsEdittingPivot] = useState(false);
|
|
412
414
|
const [selectedPivotIndex, setSelectedPivotIndex] = useState(-1);
|
|
413
415
|
const [tableName, setTableName] = useState(undefined);
|
|
414
|
-
const selectedTable = schema?.find((t) => t.displayName === tableName);
|
|
416
|
+
const selectedTable = schemaData.schema?.find((t) => t.displayName === tableName);
|
|
415
417
|
const [pivotPopUpTitle, setPivotPopUpTitle] = useState('Add pivot');
|
|
416
418
|
const [loadingFormData, setLoadingFormData] = useState(false);
|
|
417
419
|
const [triggeredEditChart, setTriggeredEditChart] = useState(false);
|
|
@@ -432,7 +434,7 @@ export default function ChartBuilder({ TextInputComponent = QuillTextInput, Sele
|
|
|
432
434
|
});
|
|
433
435
|
const firstNumberColumn = columns?.find((col) => numberFormatOptions.includes(col.format));
|
|
434
436
|
const formEmptyState = {
|
|
435
|
-
name:
|
|
437
|
+
name: report?.name ?? '',
|
|
436
438
|
dashboardName: dashboardOptions[0]?.label || '',
|
|
437
439
|
columns: columns.map((col) => {
|
|
438
440
|
return { ...col, label: snakeAndCamelCaseToTitleCase(col.label) };
|
|
@@ -539,6 +541,14 @@ export default function ChartBuilder({ TextInputComponent = QuillTextInput, Sele
|
|
|
539
541
|
};
|
|
540
542
|
};
|
|
541
543
|
const [formData, setFormData] = useState(formFormDataFromReport(report));
|
|
544
|
+
const invalidColumns = useMemo(() => {
|
|
545
|
+
const columnsObservedInRows = rows[0] ? Object.keys(rows[0]) : [];
|
|
546
|
+
return columns.filter((col) => !columnsObservedInRows.includes(col.field));
|
|
547
|
+
}, [rows]);
|
|
548
|
+
const [chartTypes, setChartTypes] = useState((() => {
|
|
549
|
+
const data = formFormDataFromReport(report);
|
|
550
|
+
return getChartTypeOptions(data, dashboardConfig[data.dashboardName || '']);
|
|
551
|
+
})());
|
|
542
552
|
useEffect(() => {
|
|
543
553
|
if (!loadingFormData && triggeredEditChart) {
|
|
544
554
|
editChart();
|
|
@@ -582,12 +592,7 @@ export default function ChartBuilder({ TextInputComponent = QuillTextInput, Sele
|
|
|
582
592
|
curFormData.dashboardName = dashboardName;
|
|
583
593
|
setDefaultDashboardName(dashboardName ??
|
|
584
594
|
(report ? report?.dashboardName : dashboardOptions[0]?.label));
|
|
585
|
-
|
|
586
|
-
if (!curSchemaData || curSchemaData.length === 0) {
|
|
587
|
-
const { schemaData } = await getSchemaInfoWithCustomFields(client, 'cb');
|
|
588
|
-
curSchemaData = schemaData;
|
|
589
|
-
setSchema(curSchemaData);
|
|
590
|
-
}
|
|
595
|
+
const curSchemaData = schemaData.schema;
|
|
591
596
|
if (!query) {
|
|
592
597
|
setLoadingFormData(false);
|
|
593
598
|
return;
|
|
@@ -733,7 +738,8 @@ export default function ChartBuilder({ TextInputComponent = QuillTextInput, Sele
|
|
|
733
738
|
// @ts-ignore
|
|
734
739
|
const updatedArray = formData[field].map((item, i) => i === index ? { ...item, [subfield]: value } : item);
|
|
735
740
|
updatedForm = { ...formData, [field]: updatedArray };
|
|
736
|
-
setFormData(
|
|
741
|
+
setFormData(updatedForm);
|
|
742
|
+
setChartTypes(getChartTypeOptions(updatedForm, dashboardConfig[updatedForm.dashboardName ?? '']));
|
|
737
743
|
}
|
|
738
744
|
else if (fieldName.includes('.')) {
|
|
739
745
|
// For nested fields
|
|
@@ -767,8 +773,7 @@ export default function ChartBuilder({ TextInputComponent = QuillTextInput, Sele
|
|
|
767
773
|
else if (field === 'dateField' &&
|
|
768
774
|
subfield === 'table' &&
|
|
769
775
|
!formData.dateField.field) {
|
|
770
|
-
const field = schema?.find((elem) => elem.name === value)
|
|
771
|
-
?.columns?.[0]?.field;
|
|
776
|
+
const field = schemaData.schema?.find((elem) => elem.name === value)?.columns?.[0]?.field;
|
|
772
777
|
updatedForm.dateField = {
|
|
773
778
|
// @ts-ignore
|
|
774
779
|
...updatedForm[field],
|
|
@@ -822,6 +827,8 @@ export default function ChartBuilder({ TextInputComponent = QuillTextInput, Sele
|
|
|
822
827
|
...newPivotFormData,
|
|
823
828
|
...(keepOldChartType && { chartType: formData.chartType }),
|
|
824
829
|
}));
|
|
830
|
+
setChartTypes(getChartTypeOptions({ ...formData, ...newPivotFormData }, dashboardConfig[formData.dashboardName || '']));
|
|
831
|
+
// maybe validate
|
|
825
832
|
};
|
|
826
833
|
const handleDeletePivot = () => {
|
|
827
834
|
if (!formData.pivot) {
|
|
@@ -832,7 +839,9 @@ export default function ChartBuilder({ TextInputComponent = QuillTextInput, Sele
|
|
|
832
839
|
dashboardName: formData.dashboardName,
|
|
833
840
|
pivot: null,
|
|
834
841
|
});
|
|
842
|
+
// maybe validate
|
|
835
843
|
setSelectedPivotTable(undefined);
|
|
844
|
+
setChartTypes(getChartTypeOptions({ ...formEmptyState, pivot: null }, dashboardConfig[formData.dashboardName || '']));
|
|
836
845
|
};
|
|
837
846
|
const handleAddField = (fieldName) => {
|
|
838
847
|
if (fieldName === 'columns') {
|
|
@@ -914,77 +923,53 @@ export default function ChartBuilder({ TextInputComponent = QuillTextInput, Sele
|
|
|
914
923
|
return;
|
|
915
924
|
}
|
|
916
925
|
setIsSubmitting(true);
|
|
917
|
-
const { publicKey, customerId, databaseType } = client;
|
|
918
926
|
if (!client) {
|
|
919
927
|
setTriggeredEditChart(false);
|
|
920
928
|
return;
|
|
921
929
|
}
|
|
922
|
-
// If the
|
|
930
|
+
// If the dashboardItem is a template but the editor isn't an admin, create a new dashboardItem and set the template to false
|
|
923
931
|
let dashboardItemId = report ? report.id : undefined;
|
|
924
|
-
if (report && !
|
|
932
|
+
if (report && !isAdmin && formData.template) {
|
|
925
933
|
dashboardItemId = undefined;
|
|
926
934
|
}
|
|
927
|
-
const
|
|
935
|
+
const newReport = {
|
|
928
936
|
...formData,
|
|
937
|
+
columns: formData.columns.filter((col) => !invalidColumns.includes(col)),
|
|
929
938
|
...(formData.dateField?.table
|
|
930
939
|
? {}
|
|
931
940
|
: { dateField: { ...defaultDateField } }),
|
|
932
941
|
...(formData.dashboardName
|
|
933
942
|
? {}
|
|
934
943
|
: { dashboardName: defaultDashboardName }),
|
|
935
|
-
|
|
936
|
-
query: queryNoDateColumn || query,
|
|
937
|
-
queryString: queryNoDateColumn || query,
|
|
944
|
+
query: queryNoDateColumn || query || '',
|
|
938
945
|
pivot: formData.pivot,
|
|
939
946
|
referencedTables: allTables,
|
|
940
947
|
referencedColumns,
|
|
941
948
|
template: report && !showAccessControlOptions && formData.template
|
|
942
949
|
? false
|
|
943
950
|
: formData.template,
|
|
944
|
-
customerId: customerId || '*',
|
|
945
|
-
useNewNodeSql: true,
|
|
946
|
-
};
|
|
947
|
-
// @ts-ignore
|
|
948
|
-
if (cloudBody['rows']) {
|
|
949
|
-
// @ts-ignore
|
|
950
|
-
delete cloudBody['rows'];
|
|
951
|
-
// @ts-ignore
|
|
952
|
-
delete cloudBody['compareRows'];
|
|
953
|
-
}
|
|
954
|
-
// add orgId: customerId if present for hostedBody
|
|
955
|
-
// set defaultDateField if date field not present
|
|
956
|
-
const hostedBody = {
|
|
957
|
-
metadata: {
|
|
958
|
-
task: 'create',
|
|
959
|
-
clientId: publicKey,
|
|
960
|
-
databaseType: databaseType,
|
|
961
|
-
...cloudBody,
|
|
962
|
-
orgId: customerId || '*',
|
|
963
|
-
useNewNodeSql: true,
|
|
964
|
-
},
|
|
965
951
|
};
|
|
966
|
-
const
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
: { clientId: publicKey }).toString();
|
|
972
|
-
const resp = await getData(client, `dashedit2?${searchParams}`, 'same-origin', hostedBody, cloudBody);
|
|
952
|
+
const resp = await saveReport({
|
|
953
|
+
report: newReport,
|
|
954
|
+
dashboardItemId,
|
|
955
|
+
client,
|
|
956
|
+
});
|
|
973
957
|
if (resp && resp.name !== 'error') {
|
|
974
958
|
if (resp.compareRows) {
|
|
975
959
|
mergeComparisonRange(resp);
|
|
976
960
|
}
|
|
977
961
|
dispatch({
|
|
978
|
-
type: '
|
|
962
|
+
type: 'ADD_DASHBOARD_ITEM',
|
|
979
963
|
id: resp._id,
|
|
980
964
|
data: {
|
|
981
965
|
...resp,
|
|
982
966
|
rows,
|
|
983
|
-
columns,
|
|
967
|
+
columns: formData.columns.filter((col) => !invalidColumns.includes(col)),
|
|
984
968
|
pivotRows: selectedPivotTable?.rows || undefined,
|
|
985
969
|
pivotColumns: selectedPivotTable?.columns || undefined,
|
|
986
970
|
filtersApplied: specificDashboardFilter,
|
|
987
971
|
triggerReload: true,
|
|
972
|
+
error: undefined,
|
|
988
973
|
},
|
|
989
974
|
});
|
|
990
975
|
}
|
|
@@ -1002,7 +987,7 @@ export default function ChartBuilder({ TextInputComponent = QuillTextInput, Sele
|
|
|
1002
987
|
};
|
|
1003
988
|
// Prevent horizontal view on small screens.
|
|
1004
989
|
isHorizontalView = windowWidth < 1200 ? false : isHorizontalView;
|
|
1005
|
-
if (!schema) {
|
|
990
|
+
if (!schemaData.schema) {
|
|
1006
991
|
return null;
|
|
1007
992
|
}
|
|
1008
993
|
return (_jsxs("div", { style: {
|
|
@@ -1024,13 +1009,14 @@ export default function ChartBuilder({ TextInputComponent = QuillTextInput, Sele
|
|
|
1024
1009
|
display: 'flex',
|
|
1025
1010
|
flexDirection: 'column',
|
|
1026
1011
|
gap: '20px',
|
|
1012
|
+
overflowY: 'auto',
|
|
1027
1013
|
height: isHorizontalView || !isOpen ? '100%' : 800,
|
|
1028
1014
|
...(isHorizontalView && {
|
|
1029
1015
|
flexGrow: 1,
|
|
1030
1016
|
maxWidth: !isOpen ? '100%' : `calc(100% - ${formWidth}px - 20px)`, // width of left sidebar plus gap
|
|
1031
1017
|
}),
|
|
1032
1018
|
...(!isHorizontalView && isOpen && { width: formWidth }),
|
|
1033
|
-
}, children: [report?.adminError || report?.error ? (_jsx(ErrorComponent, { label: report.adminError || report.error, onClick: onClickChartError })) : (((!isHorizontalView && windowWidth >= 1200) ||
|
|
1019
|
+
}, children: [!isEditingMode && (report?.adminError || report?.error) ? (_jsx(ErrorComponent, { label: report.adminError || report.error, onClick: onClickChartError })) : (((!isHorizontalView && windowWidth >= 1200) ||
|
|
1034
1020
|
formData.chartType !== 'table') && (_jsx(ChartDisplay, { reportId: report ? report.id : undefined, config: createReportFromForm(formData, report, selectedPivotTable, rows), scrollable: true, colors: theme?.chartColors, loading: false, hideDateRangeFilter: hideDateRangeFilter, containerStyle: {
|
|
1035
1021
|
width: '100%',
|
|
1036
1022
|
height: formData.chartType === 'metric'
|
|
@@ -1073,7 +1059,7 @@ export default function ChartBuilder({ TextInputComponent = QuillTextInput, Sele
|
|
|
1073
1059
|
paddingTop: modalPadding,
|
|
1074
1060
|
paddingBottom: modalPadding,
|
|
1075
1061
|
}),
|
|
1076
|
-
}, children: [_jsxs(FormContainer, { children: [_jsxs(ChartBuilderInputRowContainer, { children: [_jsx("div", { ref: inputRef, style: { display: 'flex', flexDirection: 'column' }, children: _jsx(TextInputComponent, { id: "chart-builder-name", label: "Name", width: 200, value: formData.name, onChange: (e) => handleChange(e.target.value, 'name'), placeholder: "Name" }) }), showDashboardDropdown && !destinationDashboard && (_jsx("div", { style: { display: 'flex', flexDirection: 'column' }, children: _jsx(SelectComponent, { label: "Dashboard", value: formData.dashboardName || '', onChange: async (e) => {
|
|
1062
|
+
}, children: [_jsxs(FormContainer, { children: [_jsxs(ChartBuilderInputRowContainer, { children: [_jsx("div", { ref: inputRef, style: { display: 'flex', flexDirection: 'column' }, children: _jsx(TextInputComponent, { ...autofocusRefProp, id: "chart-builder-name", label: "Name", width: 200, value: formData.name, onChange: (e) => handleChange(e.target.value, 'name'), placeholder: "Name" }) }), showDashboardDropdown && !destinationDashboard && (_jsx("div", { style: { display: 'flex', flexDirection: 'column' }, children: _jsx(SelectComponent, { label: "Dashboard", value: formData.dashboardName || '', onChange: async (e) => {
|
|
1077
1063
|
handleChange(e.target.value, 'dashboardName');
|
|
1078
1064
|
await updateDashboardFilters(e.target.value);
|
|
1079
1065
|
}, options: dashboardOptions.map((elem) => ({
|
|
@@ -1186,10 +1172,15 @@ export default function ChartBuilder({ TextInputComponent = QuillTextInput, Sele
|
|
|
1186
1172
|
? [{ label: 'date', value: 'pivot_date' }]
|
|
1187
1173
|
: [{ label: 'string', value: 'string' }]
|
|
1188
1174
|
: [...NUMBER_OPTIONS], width: 200 })] }, 'column' + index)))
|
|
1189
|
-
: formData.columns.map((column, index) => (_jsxs(ChartBuilderInputRowContainer, { children: [_jsx(SelectComponent, { value: column.field, onChange: (e) => handleChange(e.target.value, 'columns.field', index), options:
|
|
1190
|
-
|
|
1191
|
-
|
|
1192
|
-
|
|
1175
|
+
: formData.columns.map((column, index) => (_jsxs(ChartBuilderInputRowContainer, { children: [_jsx(SelectComponent, { value: column.field, onChange: (e) => handleChange(e.target.value, 'columns.field', index), options: rows[0]
|
|
1176
|
+
? Object.keys(rows[0]).map((elem) => ({
|
|
1177
|
+
label: elem,
|
|
1178
|
+
value: elem,
|
|
1179
|
+
}))
|
|
1180
|
+
: columns.map((elem) => ({
|
|
1181
|
+
label: elem.field,
|
|
1182
|
+
value: elem.field,
|
|
1183
|
+
})), width: 200 }), _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) }), _jsx(SelectComponent, { value: column.format, onChange: (e) => handleChange(e.target.value, 'columns.format', index), options: formatOptions, width: 200 }), _jsx("div", { ref: deleteRef, style: { marginLeft: deleteButtonMargin }, children: _jsx(DeleteButtonComponent, { onClick: () => handleRemoveField('columns', index) }) })] }, 'column' + index))), _jsx("div", { children: !(
|
|
1193
1184
|
// hide when pivoted and chartType === 'table'
|
|
1194
1185
|
(formData.pivot &&
|
|
1195
1186
|
selectedPivotTable &&
|
|
@@ -1198,7 +1189,7 @@ export default function ChartBuilder({ TextInputComponent = QuillTextInput, Sele
|
|
|
1198
1189
|
display: 'flex',
|
|
1199
1190
|
flexDirection: 'column',
|
|
1200
1191
|
gap: 6,
|
|
1201
|
-
}, children: [_jsx(HeaderComponent, { label: "Date field" }), _jsxs(ChartBuilderInputRowContainer, { children: [_jsx("div", { style: { display: 'flex', flexDirection: 'column' }, children: _jsx(SelectComponent, { label: "Table", value: formData.dateField?.table, onChange: (e) => handleChange(e.target.value, 'dateField.table'), options: dateFieldOptions.map((elem) => ({
|
|
1192
|
+
}, children: [_jsx(HeaderComponent, { label: "Date filter field" }), _jsxs(ChartBuilderInputRowContainer, { children: [_jsx("div", { style: { display: 'flex', flexDirection: 'column' }, children: _jsx(SelectComponent, { label: "Virtual Table", value: formData.dateField?.table, onChange: (e) => handleChange(e.target.value, 'dateField.table'), options: dateFieldOptions.map((elem) => ({
|
|
1202
1193
|
label: elem.name,
|
|
1203
1194
|
value: elem.name,
|
|
1204
1195
|
})), width: 200 }) }), _jsx("div", { style: { display: 'flex', flexDirection: 'column' }, children: _jsx(SelectComponent, { label: "Field", value: removeDoubleQuotes(formData.dateField?.field), onChange: (e) => handleChange(e.target.value, 'dateField.field'), options: dateFieldOptions
|
|
@@ -1206,7 +1197,7 @@ export default function ChartBuilder({ TextInputComponent = QuillTextInput, Sele
|
|
|
1206
1197
|
?.columns?.map((elem) => ({
|
|
1207
1198
|
label: elem.field,
|
|
1208
1199
|
value: elem.field,
|
|
1209
|
-
})) || [], width: 200 }) })] })] })), showAccessControlOptions && (_jsxs("div", { style: {
|
|
1200
|
+
})) || [], width: 200 }) })] })] })), showAccessControlOptions && !client?.multiTenancyDisabled && (_jsxs("div", { style: {
|
|
1210
1201
|
display: 'flex',
|
|
1211
1202
|
flexDirection: 'column',
|
|
1212
1203
|
gap: 12,
|
|
@@ -1223,18 +1214,24 @@ export default function ChartBuilder({ TextInputComponent = QuillTextInput, Sele
|
|
|
1223
1214
|
justifyContent: 'space-between',
|
|
1224
1215
|
alignItems: 'center',
|
|
1225
1216
|
gap: 6,
|
|
1226
|
-
}, children: [filterIssues.length === 0 ? (_jsx("div", {})) : (_jsx(ErrorMessageComponent, { errorMessage: filterIssues[0] || 'Dashbord - Report issues', containerStyle: { height: '100%' } })), _jsx(
|
|
1227
|
-
|
|
1228
|
-
|
|
1229
|
-
|
|
1230
|
-
|
|
1231
|
-
|
|
1232
|
-
|
|
1233
|
-
|
|
1234
|
-
|
|
1235
|
-
|
|
1236
|
-
|
|
1237
|
-
|
|
1217
|
+
}, children: [filterIssues.length === 0 ? (_jsx("div", {})) : (_jsx(ErrorMessageComponent, { errorMessage: filterIssues[0] || 'Dashbord - Report issues', containerStyle: { height: '100%' } })), _jsxs("div", { style: { display: 'flex', flexDirection: 'row', gap: 10 }, children: [_jsx(SecondaryButtonComponent, { onClick: () => {
|
|
1218
|
+
setIsOpen(false);
|
|
1219
|
+
onDiscardChanges && onDiscardChanges();
|
|
1220
|
+
}, label: 'Discard changes' }), _jsx(ButtonComponent, { onClick: () => {
|
|
1221
|
+
if (loadingFormData) {
|
|
1222
|
+
setTriggeredEditChart(true);
|
|
1223
|
+
}
|
|
1224
|
+
else {
|
|
1225
|
+
editChart();
|
|
1226
|
+
}
|
|
1227
|
+
}, disabled: formData.name === '' ||
|
|
1228
|
+
formData.dashboardName === '' ||
|
|
1229
|
+
formData.chartType === '' ||
|
|
1230
|
+
filterIssues.length !== 0, label: buttonLabel
|
|
1231
|
+
? buttonLabel
|
|
1232
|
+
: report
|
|
1233
|
+
? 'Save changes'
|
|
1234
|
+
: 'Add to dashboard' })] })] }))] })] }))] }), _jsx(DashboardFilterModal, { isOpen: showFilterModal, setIsOpen: setShowFilterModal, issues: filterIssues, ButtonComponent: ButtonComponent, ModalComponent: ModalComponent })] }));
|
|
1238
1235
|
}
|
|
1239
1236
|
function SegmentedControl({ onChange, value, theme, organizationName, customFieldTableRef, }) {
|
|
1240
1237
|
return (_jsxs("div", { style: {
|
|
@@ -178,6 +178,8 @@ export interface ChartEditorProps {
|
|
|
178
178
|
hideDeleteButton?: boolean;
|
|
179
179
|
/** Whether to hide the submit button. */
|
|
180
180
|
hideSubmitButton?: boolean;
|
|
181
|
+
/** Whether to hide organization details, even when admin is enabled. */
|
|
182
|
+
hideOrganizationDetails?: boolean;
|
|
181
183
|
}
|
|
182
184
|
/**
|
|
183
185
|
* ### Quill Chart Editor
|
|
@@ -205,5 +207,5 @@ export interface ChartEditorProps {
|
|
|
205
207
|
* ### Chart Editor API
|
|
206
208
|
* @see https://docs.quillsql.com/components/chart-editor
|
|
207
209
|
*/
|
|
208
|
-
export default function ChartEditor({ isOpen, reportId, isAdmin, destinationDashboard, chartBuilderTitle, chartBuilderButtonLabel, onAddToDashboardComplete, organizationName, isHorizontalView, onDelete, setIsOpen, SelectComponent, TextInputComponent, ButtonComponent, SecondaryButtonComponent, HeaderComponent, SubHeaderComponent, LabelComponent, TextComponent, DeleteButtonComponent, ModalComponent, CardComponent, PopoverComponent, LoadingComponent, TableComponent, ChartBuilderInputRowContainer, ChartBuilderInputColumnContainer, PivotRowContainer, PivotColumnContainer, ErrorMessageComponent, ChartBuilderFormContainer, ErrorComponent, hideDeleteButton, hideSubmitButton, onClickChartElement, onClickChartError, }: ChartEditorProps): import("react/jsx-runtime").JSX.Element;
|
|
210
|
+
export default function ChartEditor({ isOpen, reportId, isAdmin, destinationDashboard, chartBuilderTitle, chartBuilderButtonLabel, onAddToDashboardComplete, organizationName, isHorizontalView, onDelete, setIsOpen, SelectComponent, TextInputComponent, ButtonComponent, SecondaryButtonComponent, HeaderComponent, SubHeaderComponent, LabelComponent, TextComponent, DeleteButtonComponent, ModalComponent, CardComponent, PopoverComponent, LoadingComponent, TableComponent, ChartBuilderInputRowContainer, ChartBuilderInputColumnContainer, PivotRowContainer, PivotColumnContainer, ErrorMessageComponent, ChartBuilderFormContainer, ErrorComponent, hideDeleteButton, hideSubmitButton, hideOrganizationDetails, onClickChartElement, onClickChartError, }: ChartEditorProps): import("react/jsx-runtime").JSX.Element;
|
|
209
211
|
//# sourceMappingURL=ChartEditor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChartEditor.d.ts","sourceRoot":"","sources":["../../src/ChartEditor.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ChartEditor.d.ts","sourceRoot":"","sources":["../../src/ChartEditor.tsx"],"names":[],"mappings":"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"}
|
package/dist/esm/ChartEditor.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { useContext, useEffect, useMemo, useRef, useState, } from 'react';
|
|
3
3
|
import ChartBuilder from './ChartBuilder';
|
|
4
|
-
import { DashboardContext, DashboardFiltersContext, ClientContext,
|
|
4
|
+
import { DashboardContext, DashboardFiltersContext, ClientContext, SchemaDataContext, } from './Context';
|
|
5
5
|
import { MemoizedModal, QuillChartBuilderFormContainer, QuillChartBuilderInputColumnContainer, QuillChartBuilderInputRowContainer, QuillErrorMessageComponent, QuillLoadingComponent, QuillPivotColumnContainer, QuillPivotRowContainer, QuillTableComponent, } from './components/UiComponents';
|
|
6
6
|
import { QuillCard } from './components/QuillCard';
|
|
7
7
|
import { fetchTableByReport } from './utils/tableProcessing';
|
|
@@ -34,11 +34,11 @@ import { shouldFetchMore, DEFAULT_PAGINATION, shouldSortInMemory, } from './util
|
|
|
34
34
|
* ### Chart Editor API
|
|
35
35
|
* @see https://docs.quillsql.com/components/chart-editor
|
|
36
36
|
*/
|
|
37
|
-
export default function ChartEditor({ isOpen, reportId, isAdmin = false, destinationDashboard, chartBuilderTitle = 'Edit chart', chartBuilderButtonLabel, onAddToDashboardComplete, organizationName, isHorizontalView = true, onDelete, setIsOpen, SelectComponent, TextInputComponent, ButtonComponent, SecondaryButtonComponent, HeaderComponent, SubHeaderComponent, LabelComponent, TextComponent, DeleteButtonComponent, ModalComponent = MemoizedModal, CardComponent = QuillCard, PopoverComponent, LoadingComponent = QuillLoadingComponent, TableComponent = QuillTableComponent, ChartBuilderInputRowContainer = QuillChartBuilderInputRowContainer, ChartBuilderInputColumnContainer = QuillChartBuilderInputColumnContainer, PivotRowContainer = QuillPivotRowContainer, PivotColumnContainer = QuillPivotColumnContainer, ErrorMessageComponent = QuillErrorMessageComponent, ChartBuilderFormContainer = QuillChartBuilderFormContainer, ErrorComponent = QuillChartErrorWithAction, hideDeleteButton = false, hideSubmitButton = false, onClickChartElement, onClickChartError, }) {
|
|
37
|
+
export default function ChartEditor({ isOpen, reportId, isAdmin = false, destinationDashboard, chartBuilderTitle = 'Edit chart', chartBuilderButtonLabel, onAddToDashboardComplete, organizationName, isHorizontalView = true, onDelete, setIsOpen, SelectComponent, TextInputComponent, ButtonComponent, SecondaryButtonComponent, HeaderComponent, SubHeaderComponent, LabelComponent, TextComponent, DeleteButtonComponent, ModalComponent = MemoizedModal, CardComponent = QuillCard, PopoverComponent, LoadingComponent = QuillLoadingComponent, TableComponent = QuillTableComponent, ChartBuilderInputRowContainer = QuillChartBuilderInputRowContainer, ChartBuilderInputColumnContainer = QuillChartBuilderInputColumnContainer, PivotRowContainer = QuillPivotRowContainer, PivotColumnContainer = QuillPivotColumnContainer, ErrorMessageComponent = QuillErrorMessageComponent, ChartBuilderFormContainer = QuillChartBuilderFormContainer, ErrorComponent = QuillChartErrorWithAction, hideDeleteButton = false, hideSubmitButton = false, hideOrganizationDetails = false, onClickChartElement, onClickChartError, }) {
|
|
38
38
|
const parentRef = useRef(null);
|
|
39
39
|
const [modalWidth, setModalWidth] = useState(200);
|
|
40
40
|
const [modalHeight, setModalHeight] = useState(200);
|
|
41
|
-
const [dashboard] = useContext(DashboardContext);
|
|
41
|
+
const [dashboard, dispatch] = useContext(DashboardContext);
|
|
42
42
|
const { dashboardFilters } = useContext(DashboardFiltersContext);
|
|
43
43
|
const specificDashboardFilter = useMemo(() => {
|
|
44
44
|
const tempReport = dashboard?.[reportId];
|
|
@@ -48,12 +48,15 @@ export default function ChartEditor({ isOpen, reportId, isAdmin = false, destina
|
|
|
48
48
|
return dashboardFilters.filter((f) => f && tempReport.dashboardName === f.dashboardName);
|
|
49
49
|
}, [dashboardFilters]);
|
|
50
50
|
const [client] = useContext(ClientContext);
|
|
51
|
-
const [report, setReport] = useState(dashboard?.[reportId]);
|
|
52
51
|
const [isLoading, setIsLoading] = useState(false);
|
|
53
52
|
const [additionalProcessing, setAdditionalProcessing] = useState({});
|
|
54
53
|
const [rowCount, setRowCount] = useState(undefined);
|
|
55
54
|
const [maxPage, setMaxPage] = useState(0);
|
|
56
|
-
const [
|
|
55
|
+
const [schemaData] = useContext(SchemaDataContext);
|
|
56
|
+
const report = useMemo(() => {
|
|
57
|
+
return dashboard?.[reportId];
|
|
58
|
+
}, [dashboard, reportId]);
|
|
59
|
+
const [chartBuilderKey, setChartBuilderKey] = useState(0);
|
|
57
60
|
const dateFilter = Object.values(specificDashboardFilter).find((filter) => filter.filterType == 'date_range');
|
|
58
61
|
const dateRange = dateFilter?.startDate
|
|
59
62
|
? { start: dateFilter.startDate, end: dateFilter.endDate }
|
|
@@ -107,7 +110,7 @@ export default function ChartEditor({ isOpen, reportId, isAdmin = false, destina
|
|
|
107
110
|
setIsLoading(true);
|
|
108
111
|
try {
|
|
109
112
|
const updatedProcessing = { ...additionalProcessing, ...processing };
|
|
110
|
-
const paginatedRows = await fetchTableByReport(report.id, client, updatedProcessing, specificDashboardFilter, customFields);
|
|
113
|
+
const paginatedRows = await fetchTableByReport(report.id, client, updatedProcessing, specificDashboardFilter, schemaData.customFields);
|
|
111
114
|
if (paginatedRows.error) {
|
|
112
115
|
throw new Error('Error fetching chart');
|
|
113
116
|
}
|
|
@@ -115,7 +118,14 @@ export default function ChartEditor({ isOpen, reportId, isAdmin = false, destina
|
|
|
115
118
|
if (resetRows) {
|
|
116
119
|
tempRows = paginatedRows.rows;
|
|
117
120
|
}
|
|
118
|
-
|
|
121
|
+
dispatch({
|
|
122
|
+
type: 'ADD_DASHBOARD_ITEM',
|
|
123
|
+
id: report.id,
|
|
124
|
+
data: {
|
|
125
|
+
...report,
|
|
126
|
+
rows: tempRows,
|
|
127
|
+
},
|
|
128
|
+
});
|
|
119
129
|
setTimeout(() => {
|
|
120
130
|
setIsLoading(false);
|
|
121
131
|
}, 200);
|
|
@@ -146,12 +156,16 @@ export default function ChartEditor({ isOpen, reportId, isAdmin = false, destina
|
|
|
146
156
|
return newFilter;
|
|
147
157
|
})
|
|
148
158
|
: [];
|
|
149
|
-
const { report, error } = await fetchReport(reportId, client, useReportTask, minimalFilters, processing, undefined, customFields);
|
|
159
|
+
const { report, error } = await fetchReport(reportId, client, useReportTask, minimalFilters, processing, undefined, schemaData.customFields);
|
|
150
160
|
if (error) {
|
|
151
161
|
setIsLoading(false);
|
|
152
162
|
return;
|
|
153
163
|
}
|
|
154
|
-
|
|
164
|
+
dispatch({
|
|
165
|
+
type: 'ADD_DASHBOARD_ITEM',
|
|
166
|
+
id: reportId,
|
|
167
|
+
data: report,
|
|
168
|
+
});
|
|
155
169
|
setAdditionalProcessing(processing);
|
|
156
170
|
setIsLoading(false);
|
|
157
171
|
};
|
|
@@ -177,10 +191,12 @@ export default function ChartEditor({ isOpen, reportId, isAdmin = false, destina
|
|
|
177
191
|
return (_jsx("div", { ref: parentRef, style: { height: '100%' }, children: _jsx(ModalComponent, { isOpen: isOpen, setIsOpen: setIsOpen, title: chartBuilderTitle || 'Add to dashboard',
|
|
178
192
|
// For isHorizontalView, use full viewport size minus 80px for padding,
|
|
179
193
|
// otherwise use the default layout method of the modal (contents).
|
|
180
|
-
width: isHorizontalView ? modalWidth : undefined, height: isHorizontalView ? modalHeight : undefined, children: _jsx(ChartBuilder, { report: report, rows: report.rows, columns: report.columnInternal, query: report.queryString, pivot: report.pivot || undefined, isOpen: isOpen, isComparison: dateFilter?.comparisonRange, isLoading: isLoading, setIsOpen: setIsOpen, showTableFormatOptions: isAdmin, showDateFieldOptions: isAdmin, showAccessControlOptions: isAdmin, showDashboardDropdown: isAdmin, destinationDashboard: destinationDashboard, onAddToDashboardComplete: onAddToDashboardComplete, dateRange: dateRange, SelectComponent: SelectComponent, TextInputComponent: TextInputComponent, ButtonComponent: ButtonComponent, SecondaryButtonComponent: SecondaryButtonComponent, HeaderComponent: HeaderComponent, SubHeaderComponent: SubHeaderComponent, LabelComponent: LabelComponent, TextComponent: TextComponent, DeleteButtonComponent: DeleteButtonComponent, CardComponent: CardComponent, ModalComponent: ModalComponent, isHorizontalView: isHorizontalView, PopoverComponent: PopoverComponent, TableComponent: TableComponent, ChartBuilderInputRowContainer: ChartBuilderInputRowContainer, ChartBuilderInputColumnContainer: ChartBuilderInputColumnContainer, PivotRowContainer: PivotRowContainer, PivotColumnContainer: PivotColumnContainer, ErrorMessageComponent: ErrorMessageComponent, LoadingComponent: LoadingComponent, ErrorComponent: ErrorComponent, onClickChartError: onClickChartError, onDelete: onDelete,
|
|
194
|
+
width: isHorizontalView ? modalWidth : undefined, height: isHorizontalView ? modalHeight : undefined, children: _jsx(ChartBuilder, { report: report, rows: report.rows, isAdmin: isAdmin, columns: report.columnInternal, query: report.queryString, pivot: report.pivot || undefined, isOpen: isOpen, isComparison: dateFilter?.comparisonRange, isLoading: isLoading, setIsOpen: setIsOpen, showTableFormatOptions: isAdmin, showDateFieldOptions: isAdmin, showAccessControlOptions: isAdmin && !hideOrganizationDetails, showDashboardDropdown: isAdmin, destinationDashboard: destinationDashboard, onAddToDashboardComplete: onAddToDashboardComplete, dateRange: dateRange, SelectComponent: SelectComponent, TextInputComponent: TextInputComponent, ButtonComponent: ButtonComponent, SecondaryButtonComponent: SecondaryButtonComponent, HeaderComponent: HeaderComponent, SubHeaderComponent: SubHeaderComponent, LabelComponent: LabelComponent, TextComponent: TextComponent, DeleteButtonComponent: DeleteButtonComponent, CardComponent: CardComponent, ModalComponent: ModalComponent, isHorizontalView: isHorizontalView, PopoverComponent: PopoverComponent, TableComponent: TableComponent, ChartBuilderInputRowContainer: ChartBuilderInputRowContainer, ChartBuilderInputColumnContainer: ChartBuilderInputColumnContainer, PivotRowContainer: PivotRowContainer, PivotColumnContainer: PivotColumnContainer, ErrorMessageComponent: ErrorMessageComponent, LoadingComponent: LoadingComponent, ErrorComponent: ErrorComponent, onClickChartError: onClickChartError, onDelete: onDelete, onDiscardChanges: () => {
|
|
195
|
+
setChartBuilderKey(chartBuilderKey + 1);
|
|
196
|
+
}, title: chartBuilderTitle, buttonLabel: chartBuilderButtonLabel, organizationName: organizationName, hideSubmitButton: hideSubmitButton, hideDeleteButton: hideDeleteButton, FormContainer: ChartBuilderFormContainer, onPageChange: onPageChange, onSortChange: onSortChange, rowCount: rowCount, onClickChartElement: onClickChartElement, pivotData: report.pivotColumns
|
|
181
197
|
? {
|
|
182
198
|
rows: report.pivotRows || [],
|
|
183
199
|
columns: report.pivotColumns,
|
|
184
200
|
}
|
|
185
|
-
: undefined }) }) }));
|
|
201
|
+
: undefined }, report.id + chartBuilderKey) }) }));
|
|
186
202
|
}
|
package/dist/esm/Context.d.ts
CHANGED
|
@@ -2,10 +2,9 @@ import React from 'react';
|
|
|
2
2
|
import { QuillReportInternal } from './models/Report';
|
|
3
3
|
import { Client } from './models/Client';
|
|
4
4
|
import { QuillTheme } from './QuillProvider';
|
|
5
|
-
import { Table } from './models/Tables';
|
|
6
5
|
import { DashboardConfig } from './models/Dashboard';
|
|
7
|
-
|
|
8
|
-
export declare const
|
|
6
|
+
import { SchemaData } from './models/Schema';
|
|
7
|
+
export declare const SchemaDataContext: React.Context<[SchemaData, (value: React.SetStateAction<SchemaData>) => void]>;
|
|
9
8
|
export declare const ThemeContext: React.Context<[QuillTheme | null, (value: React.SetStateAction<QuillTheme | null>) => void]>;
|
|
10
9
|
export declare const ClientContext: React.Context<[Client | null, boolean, (value: React.SetStateAction<Client | null>) => void]>;
|
|
11
10
|
export declare const DashboardFiltersContext: React.Context<any>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Context.d.ts","sourceRoot":"","sources":["../../src/Context.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAyD,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"Context.d.ts","sourceRoot":"","sources":["../../src/Context.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAyD,MAAM,OAAO,CAAC;AAE9E,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAEtD,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAI7C,eAAO,MAAM,iBAAiB,qCACP,MAAM,cAAc,CAAC,UAAU,CAAC,KAAK,IAAI,EAQ9D,CAAC;AACH,eAAO,MAAM,YAAY,4CACK,MAAM,cAAc,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,IAAI,EACxD,CAAC;AACvB,eAAO,MAAM,aAAa,iDACS,MAAM,cAAc,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,IAAI,EAC1C,CAAC;AACtC,eAAO,MAAM,uBAAuB,oBAAwC,CAAC;AAC7E,eAAO,MAAM,oBAAoB,oBAAwC,CAAC;AAmC1E,eAAO,MAAM,gBAAgB;;QAEJ,CAAC;AAsC1B,eAAO,MAAM,sBAAsB;;QAEJ,CAAC;AAyChC,eAAO,MAAM,eAAe;cAUhB,MAAM,SAAS;kBACX,UAAU;eACb,MAAM;;;mBAGF,MAAM;;;oDAiOtB,CAAC"}
|