@quillsql/react 2.12.52 → 2.13.0
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 +5 -3
- package/dist/cjs/ChartBuilder.d.ts +10 -3
- package/dist/cjs/ChartBuilder.d.ts.map +1 -1
- package/dist/cjs/ChartBuilder.js +62 -26
- package/dist/cjs/ChartEditor.d.ts +3 -1
- package/dist/cjs/ChartEditor.d.ts.map +1 -1
- package/dist/cjs/ChartEditor.js +74 -16
- package/dist/cjs/Context.d.ts +17 -6
- package/dist/cjs/Context.d.ts.map +1 -1
- package/dist/cjs/Context.js +138 -73
- package/dist/cjs/Dashboard.d.ts +8 -4
- package/dist/cjs/Dashboard.d.ts.map +1 -1
- package/dist/cjs/Dashboard.js +146 -367
- package/dist/cjs/DateRangePicker/QuillDateRangePicker.d.ts.map +1 -1
- package/dist/cjs/DateRangePicker/QuillDateRangePicker.js +20 -14
- package/dist/cjs/DateRangePicker/dateRangePickerUtils.d.ts +1 -0
- package/dist/cjs/DateRangePicker/dateRangePickerUtils.d.ts.map +1 -1
- package/dist/cjs/DateRangePicker/dateRangePickerUtils.js +1 -1
- package/dist/cjs/QuillProvider.js +1 -1
- package/dist/cjs/ReportBuilder.d.ts +8 -12
- package/dist/cjs/ReportBuilder.d.ts.map +1 -1
- package/dist/cjs/ReportBuilder.js +163 -83
- package/dist/cjs/SQLEditor.d.ts +8 -1
- package/dist/cjs/SQLEditor.d.ts.map +1 -1
- package/dist/cjs/SQLEditor.js +81 -28
- package/dist/cjs/Table.d.ts.map +1 -1
- package/dist/cjs/Table.js +6 -3
- package/dist/cjs/assets/AdjustmentsIcon.d.ts +5 -0
- package/dist/cjs/assets/AdjustmentsIcon.d.ts.map +1 -0
- package/dist/cjs/assets/AdjustmentsIcon.js +5 -0
- package/dist/cjs/assets/ArrowDownHeadIcon.d.ts.map +1 -1
- package/dist/cjs/components/Chart/ChartError.js +2 -2
- package/dist/cjs/components/Dashboard/DashboardFilter.d.ts +4 -3
- package/dist/cjs/components/Dashboard/DashboardFilter.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/DashboardFilter.js +12 -12
- package/dist/cjs/components/Dashboard/DashboardTemplate.d.ts +2 -2
- package/dist/cjs/components/Dashboard/DashboardTemplate.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/DataLoader.d.ts +11 -5
- package/dist/cjs/components/Dashboard/DataLoader.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/DataLoader.js +91 -32
- 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 +10 -3
- package/dist/cjs/components/Dashboard/util.d.ts +2 -2
- package/dist/cjs/components/Dashboard/util.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/util.js +2 -2
- package/dist/cjs/components/QuillMultiSelect.d.ts.map +1 -1
- package/dist/cjs/components/QuillMultiSelect.js +18 -13
- package/dist/cjs/components/QuillMultiSelectWithCombo.d.ts.map +1 -1
- package/dist/cjs/components/QuillMultiSelectWithCombo.js +67 -45
- package/dist/cjs/components/QuillSelect.d.ts +1 -1
- package/dist/cjs/components/QuillSelect.d.ts.map +1 -1
- package/dist/cjs/components/QuillSelect.js +29 -7
- package/dist/cjs/components/QuillSelectWithCombo.d.ts +1 -1
- package/dist/cjs/components/QuillSelectWithCombo.d.ts.map +1 -1
- package/dist/cjs/components/QuillSelectWithCombo.js +47 -26
- package/dist/cjs/components/QuillTable.d.ts +3 -2
- package/dist/cjs/components/QuillTable.d.ts.map +1 -1
- package/dist/cjs/components/QuillTable.js +32 -19
- package/dist/cjs/components/ReportBuilder/AddLimitPopover.d.ts +2 -1
- package/dist/cjs/components/ReportBuilder/AddLimitPopover.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/AddLimitPopover.js +2 -2
- package/dist/cjs/components/ReportBuilder/AddSortPopover.d.ts +2 -1
- package/dist/cjs/components/ReportBuilder/AddSortPopover.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/AddSortPopover.js +2 -2
- package/dist/cjs/components/ReportBuilder/FilterModal.d.ts +2 -1
- package/dist/cjs/components/ReportBuilder/FilterModal.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/FilterModal.js +17 -4
- package/dist/cjs/components/ReportBuilder/ui.d.ts +13 -8
- package/dist/cjs/components/ReportBuilder/ui.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/ui.js +15 -24
- package/dist/cjs/components/UiComponents.d.ts +17 -9
- package/dist/cjs/components/UiComponents.d.ts.map +1 -1
- package/dist/cjs/components/UiComponents.js +30 -24
- package/dist/cjs/hooks/useAstToFilterTree.d.ts +2 -2
- package/dist/cjs/hooks/useAstToFilterTree.d.ts.map +1 -1
- package/dist/cjs/hooks/useDashboard.d.ts +13 -5
- package/dist/cjs/hooks/useDashboard.d.ts.map +1 -1
- package/dist/cjs/hooks/useDashboard.js +158 -70
- package/dist/cjs/hooks/useExport.d.ts.map +1 -1
- package/dist/cjs/hooks/useExport.js +9 -3
- package/dist/cjs/hooks/useQuill.d.ts.map +1 -1
- package/dist/cjs/hooks/useQuill.js +15 -15
- package/dist/cjs/hooks/useVirtualTables.d.ts +12 -3
- package/dist/cjs/hooks/useVirtualTables.d.ts.map +1 -1
- package/dist/cjs/hooks/useVirtualTables.js +105 -1
- package/dist/cjs/internals/ReportBuilder/PivotForm.d.ts +3 -1
- package/dist/cjs/internals/ReportBuilder/PivotForm.d.ts.map +1 -1
- package/dist/cjs/internals/ReportBuilder/PivotForm.js +9 -9
- package/dist/cjs/internals/ReportBuilder/PivotList.d.ts.map +1 -1
- package/dist/cjs/internals/ReportBuilder/PivotList.js +21 -15
- package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts +3 -2
- package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
- package/dist/cjs/internals/ReportBuilder/PivotModal.js +9 -9
- package/dist/cjs/models/Client.d.ts +16 -2
- package/dist/cjs/models/Client.d.ts.map +1 -1
- package/dist/cjs/models/Dashboard.d.ts +1 -1
- package/dist/cjs/models/Dashboard.d.ts.map +1 -1
- package/dist/cjs/models/Filter.d.ts +4 -3
- package/dist/cjs/models/Filter.d.ts.map +1 -1
- package/dist/cjs/models/Filter.js +38 -1
- package/dist/cjs/utils/astProcessing.d.ts +3 -3
- package/dist/cjs/utils/astProcessing.d.ts.map +1 -1
- package/dist/cjs/utils/client.d.ts.map +1 -1
- package/dist/cjs/utils/client.js +2 -7
- package/dist/cjs/utils/dashboard.d.ts +5 -5
- package/dist/cjs/utils/dashboard.d.ts.map +1 -1
- package/dist/cjs/utils/dashboard.js +90 -9
- package/dist/cjs/utils/dataFetcher.d.ts +4 -4
- package/dist/cjs/utils/dataFetcher.d.ts.map +1 -1
- package/dist/cjs/utils/dataFetcher.js +1 -1
- package/dist/cjs/utils/filterProcessing.d.ts.map +1 -1
- package/dist/cjs/utils/filterProcessing.js +2 -8
- package/dist/cjs/utils/paginationProcessing.js +1 -1
- package/dist/cjs/utils/pivotConstructor.d.ts +2 -2
- package/dist/cjs/utils/pivotConstructor.d.ts.map +1 -1
- package/dist/cjs/utils/pivotConstructor.js +1 -1
- package/dist/cjs/utils/pivotProcessing.d.ts.map +1 -1
- package/dist/cjs/utils/pivotProcessing.js +6 -2
- package/dist/cjs/utils/queryConstructor.d.ts.map +1 -1
- package/dist/cjs/utils/queryConstructor.js +12 -9
- package/dist/cjs/utils/report.d.ts +6 -5
- package/dist/cjs/utils/report.d.ts.map +1 -1
- package/dist/cjs/utils/report.js +71 -25
- package/dist/cjs/utils/schema.d.ts +3 -3
- package/dist/cjs/utils/schema.d.ts.map +1 -1
- package/dist/cjs/utils/schema.js +39 -35
- package/dist/cjs/utils/tableProcessing.d.ts +18 -11
- package/dist/cjs/utils/tableProcessing.d.ts.map +1 -1
- package/dist/cjs/utils/tableProcessing.js +44 -23
- package/dist/esm/Chart.d.ts.map +1 -1
- package/dist/esm/Chart.js +6 -4
- package/dist/esm/ChartBuilder.d.ts +10 -3
- package/dist/esm/ChartBuilder.d.ts.map +1 -1
- package/dist/esm/ChartBuilder.js +59 -26
- package/dist/esm/ChartEditor.d.ts +3 -1
- package/dist/esm/ChartEditor.d.ts.map +1 -1
- package/dist/esm/ChartEditor.js +76 -18
- package/dist/esm/Context.d.ts +17 -6
- package/dist/esm/Context.d.ts.map +1 -1
- package/dist/esm/Context.js +139 -74
- package/dist/esm/Dashboard.d.ts +8 -4
- package/dist/esm/Dashboard.d.ts.map +1 -1
- package/dist/esm/Dashboard.js +146 -367
- package/dist/esm/DateRangePicker/QuillDateRangePicker.d.ts.map +1 -1
- package/dist/esm/DateRangePicker/QuillDateRangePicker.js +21 -15
- package/dist/esm/DateRangePicker/dateRangePickerUtils.d.ts +1 -0
- package/dist/esm/DateRangePicker/dateRangePickerUtils.d.ts.map +1 -1
- package/dist/esm/DateRangePicker/dateRangePickerUtils.js +1 -1
- package/dist/esm/QuillProvider.js +1 -1
- package/dist/esm/ReportBuilder.d.ts +8 -12
- package/dist/esm/ReportBuilder.d.ts.map +1 -1
- package/dist/esm/ReportBuilder.js +167 -87
- package/dist/esm/SQLEditor.d.ts +8 -1
- package/dist/esm/SQLEditor.d.ts.map +1 -1
- package/dist/esm/SQLEditor.js +84 -31
- package/dist/esm/Table.d.ts.map +1 -1
- package/dist/esm/Table.js +7 -4
- package/dist/esm/assets/AdjustmentsIcon.d.ts +5 -0
- package/dist/esm/assets/AdjustmentsIcon.d.ts.map +1 -0
- package/dist/esm/assets/AdjustmentsIcon.js +3 -0
- package/dist/esm/assets/ArrowDownHeadIcon.d.ts.map +1 -1
- package/dist/esm/components/Chart/ChartError.js +2 -2
- package/dist/esm/components/Dashboard/DashboardFilter.d.ts +4 -3
- package/dist/esm/components/Dashboard/DashboardFilter.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/DashboardFilter.js +12 -12
- package/dist/esm/components/Dashboard/DashboardTemplate.d.ts +2 -2
- package/dist/esm/components/Dashboard/DashboardTemplate.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/DataLoader.d.ts +11 -5
- package/dist/esm/components/Dashboard/DataLoader.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/DataLoader.js +94 -35
- 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 +10 -3
- package/dist/esm/components/Dashboard/util.d.ts +2 -2
- package/dist/esm/components/Dashboard/util.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/util.js +2 -2
- package/dist/esm/components/QuillMultiSelect.d.ts.map +1 -1
- package/dist/esm/components/QuillMultiSelect.js +19 -14
- package/dist/esm/components/QuillMultiSelectWithCombo.d.ts.map +1 -1
- package/dist/esm/components/QuillMultiSelectWithCombo.js +68 -46
- package/dist/esm/components/QuillSelect.d.ts +1 -1
- package/dist/esm/components/QuillSelect.d.ts.map +1 -1
- package/dist/esm/components/QuillSelect.js +30 -8
- package/dist/esm/components/QuillSelectWithCombo.d.ts +1 -1
- package/dist/esm/components/QuillSelectWithCombo.d.ts.map +1 -1
- package/dist/esm/components/QuillSelectWithCombo.js +48 -27
- package/dist/esm/components/QuillTable.d.ts +3 -2
- package/dist/esm/components/QuillTable.d.ts.map +1 -1
- package/dist/esm/components/QuillTable.js +32 -19
- package/dist/esm/components/ReportBuilder/AddLimitPopover.d.ts +2 -1
- package/dist/esm/components/ReportBuilder/AddLimitPopover.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/AddLimitPopover.js +2 -2
- package/dist/esm/components/ReportBuilder/AddSortPopover.d.ts +2 -1
- package/dist/esm/components/ReportBuilder/AddSortPopover.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/AddSortPopover.js +2 -2
- package/dist/esm/components/ReportBuilder/FilterModal.d.ts +2 -1
- package/dist/esm/components/ReportBuilder/FilterModal.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/FilterModal.js +17 -4
- package/dist/esm/components/ReportBuilder/ui.d.ts +13 -8
- package/dist/esm/components/ReportBuilder/ui.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/ui.js +14 -19
- package/dist/esm/components/UiComponents.d.ts +17 -9
- package/dist/esm/components/UiComponents.d.ts.map +1 -1
- package/dist/esm/components/UiComponents.js +30 -24
- package/dist/esm/hooks/useAstToFilterTree.d.ts +2 -2
- package/dist/esm/hooks/useAstToFilterTree.d.ts.map +1 -1
- package/dist/esm/hooks/useDashboard.d.ts +13 -5
- package/dist/esm/hooks/useDashboard.d.ts.map +1 -1
- package/dist/esm/hooks/useDashboard.js +158 -73
- package/dist/esm/hooks/useExport.d.ts.map +1 -1
- package/dist/esm/hooks/useExport.js +10 -4
- package/dist/esm/hooks/useQuill.d.ts.map +1 -1
- package/dist/esm/hooks/useQuill.js +17 -17
- package/dist/esm/hooks/useVirtualTables.d.ts +12 -3
- package/dist/esm/hooks/useVirtualTables.d.ts.map +1 -1
- package/dist/esm/hooks/useVirtualTables.js +106 -2
- package/dist/esm/internals/ReportBuilder/PivotForm.d.ts +3 -1
- package/dist/esm/internals/ReportBuilder/PivotForm.d.ts.map +1 -1
- package/dist/esm/internals/ReportBuilder/PivotForm.js +9 -9
- package/dist/esm/internals/ReportBuilder/PivotList.d.ts.map +1 -1
- package/dist/esm/internals/ReportBuilder/PivotList.js +21 -15
- package/dist/esm/internals/ReportBuilder/PivotModal.d.ts +3 -2
- package/dist/esm/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
- package/dist/esm/internals/ReportBuilder/PivotModal.js +9 -9
- package/dist/esm/models/Client.d.ts +16 -2
- package/dist/esm/models/Client.d.ts.map +1 -1
- package/dist/esm/models/Dashboard.d.ts +1 -1
- package/dist/esm/models/Dashboard.d.ts.map +1 -1
- package/dist/esm/models/Filter.d.ts +4 -3
- package/dist/esm/models/Filter.d.ts.map +1 -1
- package/dist/esm/models/Filter.js +36 -0
- package/dist/esm/utils/astProcessing.d.ts +3 -3
- package/dist/esm/utils/astProcessing.d.ts.map +1 -1
- package/dist/esm/utils/client.d.ts.map +1 -1
- package/dist/esm/utils/client.js +2 -7
- package/dist/esm/utils/dashboard.d.ts +5 -5
- package/dist/esm/utils/dashboard.d.ts.map +1 -1
- package/dist/esm/utils/dashboard.js +90 -9
- package/dist/esm/utils/dataFetcher.d.ts +4 -4
- package/dist/esm/utils/dataFetcher.d.ts.map +1 -1
- package/dist/esm/utils/dataFetcher.js +1 -1
- package/dist/esm/utils/filterProcessing.d.ts.map +1 -1
- package/dist/esm/utils/filterProcessing.js +2 -8
- package/dist/esm/utils/paginationProcessing.js +1 -1
- package/dist/esm/utils/pivotConstructor.d.ts +2 -2
- package/dist/esm/utils/pivotConstructor.d.ts.map +1 -1
- package/dist/esm/utils/pivotConstructor.js +1 -1
- package/dist/esm/utils/pivotProcessing.d.ts.map +1 -1
- package/dist/esm/utils/pivotProcessing.js +6 -2
- package/dist/esm/utils/queryConstructor.d.ts.map +1 -1
- package/dist/esm/utils/queryConstructor.js +12 -9
- package/dist/esm/utils/report.d.ts +6 -5
- package/dist/esm/utils/report.d.ts.map +1 -1
- package/dist/esm/utils/report.js +70 -25
- package/dist/esm/utils/schema.d.ts +3 -3
- package/dist/esm/utils/schema.d.ts.map +1 -1
- package/dist/esm/utils/schema.js +39 -35
- package/dist/esm/utils/tableProcessing.d.ts +18 -11
- package/dist/esm/utils/tableProcessing.d.ts.map +1 -1
- package/dist/esm/utils/tableProcessing.js +41 -20
- package/package.json +1 -1
package/dist/cjs/ChartEditor.js
CHANGED
|
@@ -39,30 +39,39 @@ const paginationProcessing_1 = require("./utils/paginationProcessing");
|
|
|
39
39
|
* ### Chart Editor API
|
|
40
40
|
* @see https://docs.quillsql.com/components/chart-editor
|
|
41
41
|
*/
|
|
42
|
-
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 = UiComponents_1.MemoizedModal, CardComponent = QuillCard_1.QuillCard, PopoverComponent, LoadingComponent = UiComponents_1.QuillLoadingComponent, TableComponent = UiComponents_1.QuillTableComponent, ChartBuilderInputRowContainer = UiComponents_1.QuillChartBuilderInputRowContainer, ChartBuilderInputColumnContainer = UiComponents_1.QuillChartBuilderInputColumnContainer, PivotRowContainer = UiComponents_1.QuillPivotRowContainer, PivotColumnContainer = UiComponents_1.QuillPivotColumnContainer, ErrorMessageComponent = UiComponents_1.QuillErrorMessageComponent, ChartBuilderFormContainer = UiComponents_1.QuillChartBuilderFormContainer, ErrorComponent = ChartError_1.QuillChartErrorWithAction, hideDeleteButton = false, hideSubmitButton = false, hideOrganizationDetails = false, onClickChartElement, onClickChartError, }) {
|
|
42
|
+
function ChartEditor({ isOpen, reportId, isAdmin = false, isDashboardLoading, destinationDashboard, chartBuilderTitle = 'Edit chart', chartBuilderButtonLabel, onAddToDashboardComplete, organizationName, isHorizontalView = true, onDelete, setIsOpen, SelectComponent, TextInputComponent, ButtonComponent, SecondaryButtonComponent, HeaderComponent, SubHeaderComponent, LabelComponent, TextComponent, DeleteButtonComponent, ModalComponent = UiComponents_1.MemoizedModal, CardComponent = QuillCard_1.QuillCard, PopoverComponent, LoadingComponent = UiComponents_1.QuillLoadingComponent, TableComponent = UiComponents_1.QuillTableComponent, ChartBuilderInputRowContainer = UiComponents_1.QuillChartBuilderInputRowContainer, ChartBuilderInputColumnContainer = UiComponents_1.QuillChartBuilderInputColumnContainer, PivotRowContainer = UiComponents_1.QuillPivotRowContainer, PivotColumnContainer = UiComponents_1.QuillPivotColumnContainer, ErrorMessageComponent = UiComponents_1.QuillErrorMessageComponent, ChartBuilderFormContainer = UiComponents_1.QuillChartBuilderFormContainer, ErrorComponent = ChartError_1.QuillChartErrorWithAction, hideDeleteButton = false, hideSubmitButton = false, hideOrganizationDetails = false, onClickChartElement, onClickChartError, }) {
|
|
43
43
|
const parentRef = (0, react_1.useRef)(null);
|
|
44
44
|
const [modalWidth, setModalWidth] = (0, react_1.useState)(200);
|
|
45
45
|
const [modalHeight, setModalHeight] = (0, react_1.useState)(200);
|
|
46
46
|
const [dashboard, dispatch] = (0, react_1.useContext)(Context_1.DashboardContext);
|
|
47
47
|
const { dashboardFilters } = (0, react_1.useContext)(Context_1.DashboardFiltersContext);
|
|
48
|
-
const
|
|
49
|
-
const tempReport = dashboard
|
|
48
|
+
const specificDashboardFilters = (0, react_1.useMemo)(() => {
|
|
49
|
+
const tempReport = dashboard[reportId];
|
|
50
50
|
if (!tempReport) {
|
|
51
51
|
return [];
|
|
52
52
|
}
|
|
53
|
-
return dashboardFilters.
|
|
53
|
+
return Object.values(dashboardFilters[tempReport.dashboardName] || {}).map((f) => f.filter);
|
|
54
54
|
}, [dashboardFilters]);
|
|
55
55
|
const [client] = (0, react_1.useContext)(Context_1.ClientContext);
|
|
56
|
-
const [
|
|
57
|
-
const
|
|
56
|
+
const [isChartLoading, setIsLoading] = (0, react_1.useState)(false);
|
|
57
|
+
const isLoading = isDashboardLoading || isChartLoading;
|
|
58
58
|
const [rowCount, setRowCount] = (0, react_1.useState)(undefined);
|
|
59
|
+
const [rowCountIsLoading, setRowCountIsLoading] = (0, react_1.useState)(false);
|
|
59
60
|
const [maxPage, setMaxPage] = (0, react_1.useState)(0);
|
|
60
61
|
const [schemaData] = (0, react_1.useContext)(Context_1.SchemaDataContext);
|
|
62
|
+
const [overrideRows, setOverrideRows] = (0, react_1.useState)(undefined);
|
|
61
63
|
const report = (0, react_1.useMemo)(() => {
|
|
62
64
|
return dashboard?.[reportId];
|
|
63
65
|
}, [dashboard, reportId]);
|
|
66
|
+
const [additionalProcessing, setAdditionalProcessing] = (0, react_1.useState)({
|
|
67
|
+
page: report?.pagination || {
|
|
68
|
+
page: 0,
|
|
69
|
+
rowsPerPage: 10,
|
|
70
|
+
rowsPerRequest: report?.chartType === 'table' ? 50 : 500,
|
|
71
|
+
},
|
|
72
|
+
});
|
|
64
73
|
const [chartBuilderKey, setChartBuilderKey] = (0, react_1.useState)(0);
|
|
65
|
-
const dateFilter = Object.values(
|
|
74
|
+
const dateFilter = Object.values(specificDashboardFilters).find((filter) => filter.filterType == 'date_range');
|
|
66
75
|
const dateRange = dateFilter?.startDate
|
|
67
76
|
? { start: dateFilter.startDate, end: dateFilter.endDate }
|
|
68
77
|
: undefined;
|
|
@@ -85,8 +94,11 @@ function ChartEditor({ isOpen, reportId, isAdmin = false, destinationDashboard,
|
|
|
85
94
|
}, []);
|
|
86
95
|
const onPageChange = (page) => {
|
|
87
96
|
if (additionalProcessing.page &&
|
|
88
|
-
(0, paginationProcessing_1.shouldFetchMore)(
|
|
89
|
-
const newPagination = {
|
|
97
|
+
(0, paginationProcessing_1.shouldFetchMore)(additionalProcessing.page, page, maxPage)) {
|
|
98
|
+
const newPagination = {
|
|
99
|
+
...additionalProcessing.page,
|
|
100
|
+
page,
|
|
101
|
+
};
|
|
90
102
|
const updatedProcessing = {
|
|
91
103
|
...additionalProcessing,
|
|
92
104
|
page: newPagination,
|
|
@@ -107,6 +119,21 @@ function ChartEditor({ isOpen, reportId, isAdmin = false, destinationDashboard,
|
|
|
107
119
|
setAdditionalProcessing(updatedProcessing);
|
|
108
120
|
setMaxPage(0);
|
|
109
121
|
};
|
|
122
|
+
const handleRunQuery = async (processing, includeFilters = false) => {
|
|
123
|
+
if (!client || !report) {
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
try {
|
|
127
|
+
setIsLoading(true);
|
|
128
|
+
const tableInfo = await (0, tableProcessing_1.fetchResultsByQuery)(report?.queryString, client, processing, schemaData.customFields, includeFilters ? specificDashboardFilters : undefined, includeFilters ? report.dateField : undefined);
|
|
129
|
+
setOverrideRows(tableInfo.rows);
|
|
130
|
+
setRowCount(tableInfo.rowCount);
|
|
131
|
+
setIsLoading(false);
|
|
132
|
+
}
|
|
133
|
+
catch (e) {
|
|
134
|
+
console.log(e);
|
|
135
|
+
}
|
|
136
|
+
};
|
|
110
137
|
const updateTableRows = async (processing, resetRows = false) => {
|
|
111
138
|
if (!client) {
|
|
112
139
|
return;
|
|
@@ -115,7 +142,7 @@ function ChartEditor({ isOpen, reportId, isAdmin = false, destinationDashboard,
|
|
|
115
142
|
setIsLoading(true);
|
|
116
143
|
try {
|
|
117
144
|
const updatedProcessing = { ...additionalProcessing, ...processing };
|
|
118
|
-
const paginatedRows = await (0, tableProcessing_1.
|
|
145
|
+
const paginatedRows = await (0, tableProcessing_1.fetchResultsByReport)(report.id, client, updatedProcessing, specificDashboardFilters, schemaData.customFields, true);
|
|
119
146
|
if (paginatedRows.error) {
|
|
120
147
|
throw new Error('Error fetching chart');
|
|
121
148
|
}
|
|
@@ -142,6 +169,22 @@ function ChartEditor({ isOpen, reportId, isAdmin = false, destinationDashboard,
|
|
|
142
169
|
}
|
|
143
170
|
}
|
|
144
171
|
};
|
|
172
|
+
const fetchRowCount = async (useReportTask = true, filters, processing) => {
|
|
173
|
+
if (!client) {
|
|
174
|
+
return;
|
|
175
|
+
}
|
|
176
|
+
setRowCountIsLoading(true);
|
|
177
|
+
const rowCount = await (0, report_1.fetchReportRowCount)(reportId, client, useReportTask, filters, processing, schemaData.customFields);
|
|
178
|
+
if (rowCount) {
|
|
179
|
+
dispatch({
|
|
180
|
+
type: 'UPDATE_DASHBOARD_ITEM',
|
|
181
|
+
id: reportId,
|
|
182
|
+
data: { rowCount },
|
|
183
|
+
});
|
|
184
|
+
setRowCount(rowCount);
|
|
185
|
+
}
|
|
186
|
+
setRowCountIsLoading(false);
|
|
187
|
+
};
|
|
145
188
|
const fetchReportHelper = async (useReportTask = true, processing) => {
|
|
146
189
|
if (isLoading) {
|
|
147
190
|
return;
|
|
@@ -150,8 +193,8 @@ function ChartEditor({ isOpen, reportId, isAdmin = false, destinationDashboard,
|
|
|
150
193
|
return;
|
|
151
194
|
}
|
|
152
195
|
setIsLoading(true);
|
|
153
|
-
const minimalFilters = Object.values(
|
|
154
|
-
? Object.values(
|
|
196
|
+
const minimalFilters = Object.values(specificDashboardFilters).length
|
|
197
|
+
? Object.values(specificDashboardFilters).map((filter) => {
|
|
155
198
|
const newFilter = { ...filter };
|
|
156
199
|
if (newFilter.filterType === 'date_range') {
|
|
157
200
|
delete newFilter['field'];
|
|
@@ -161,7 +204,7 @@ function ChartEditor({ isOpen, reportId, isAdmin = false, destinationDashboard,
|
|
|
161
204
|
return newFilter;
|
|
162
205
|
})
|
|
163
206
|
: [];
|
|
164
|
-
const { report, error } = await (0, report_1.fetchReport)(reportId, client, useReportTask, minimalFilters, processing, undefined, schemaData.customFields);
|
|
207
|
+
const { report, error } = await (0, report_1.fetchReport)(reportId, client, useReportTask, minimalFilters, processing, undefined, schemaData.customFields, true);
|
|
165
208
|
if (error) {
|
|
166
209
|
setIsLoading(false);
|
|
167
210
|
return;
|
|
@@ -171,6 +214,7 @@ function ChartEditor({ isOpen, reportId, isAdmin = false, destinationDashboard,
|
|
|
171
214
|
id: reportId,
|
|
172
215
|
data: report,
|
|
173
216
|
});
|
|
217
|
+
fetchRowCount(useReportTask, minimalFilters, processing);
|
|
174
218
|
setAdditionalProcessing(processing);
|
|
175
219
|
setIsLoading(false);
|
|
176
220
|
};
|
|
@@ -185,7 +229,13 @@ function ChartEditor({ isOpen, reportId, isAdmin = false, destinationDashboard,
|
|
|
185
229
|
}
|
|
186
230
|
else {
|
|
187
231
|
const rowLength = report.rows ? report.rows.length : undefined;
|
|
188
|
-
|
|
232
|
+
if (report.rowCount || rowLength === 0) {
|
|
233
|
+
setRowCount(report.rowCount || 0);
|
|
234
|
+
}
|
|
235
|
+
else {
|
|
236
|
+
setRowCountIsLoading(true);
|
|
237
|
+
setRowCount(rowLength);
|
|
238
|
+
}
|
|
189
239
|
}
|
|
190
240
|
}
|
|
191
241
|
return;
|
|
@@ -196,9 +246,17 @@ function ChartEditor({ isOpen, reportId, isAdmin = false, destinationDashboard,
|
|
|
196
246
|
return ((0, jsx_runtime_1.jsx)("div", { ref: parentRef, style: { height: '100%' }, children: (0, jsx_runtime_1.jsx)(ModalComponent, { isOpen: isOpen, setIsOpen: setIsOpen, title: chartBuilderTitle || 'Add to dashboard',
|
|
197
247
|
// For isHorizontalView, use full viewport size minus 80px for padding,
|
|
198
248
|
// otherwise use the default layout method of the modal (contents).
|
|
199
|
-
width: isHorizontalView ? modalWidth : undefined, height: isHorizontalView ? modalHeight : undefined, children: (0, jsx_runtime_1.jsx)(ChartBuilder_1.default, { 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: () => {
|
|
249
|
+
width: isHorizontalView ? modalWidth : undefined, height: isHorizontalView ? modalHeight : undefined, children: (0, jsx_runtime_1.jsx)(ChartBuilder_1.default, { report: report, rows: overrideRows ?? 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 || report.chartType === 'table', 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: () => {
|
|
200
250
|
setChartBuilderKey(chartBuilderKey + 1);
|
|
201
|
-
|
|
251
|
+
setOverrideRows(undefined);
|
|
252
|
+
}, title: chartBuilderTitle, buttonLabel: chartBuilderButtonLabel, organizationName: organizationName, hideSubmitButton: hideSubmitButton, hideDeleteButton: hideDeleteButton, FormContainer: ChartBuilderFormContainer, onPageChange: onPageChange, onSortChange: onSortChange, onFilterPreviewChange: (preview) => {
|
|
253
|
+
if (!preview) {
|
|
254
|
+
handleRunQuery({ page: paginationProcessing_1.DEFAULT_PAGINATION }, false);
|
|
255
|
+
}
|
|
256
|
+
else {
|
|
257
|
+
setOverrideRows(undefined);
|
|
258
|
+
}
|
|
259
|
+
}, rowCount: rowCount, rowCountIsLoading: rowCountIsLoading, onClickChartElement: onClickChartElement, pivotData: report.pivotColumns
|
|
202
260
|
? {
|
|
203
261
|
rows: report.pivotRows || [],
|
|
204
262
|
columns: report.pivotColumns,
|
package/dist/cjs/Context.d.ts
CHANGED
|
@@ -1,13 +1,25 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { QuillReportInternal } from './models/Report';
|
|
3
|
-
import {
|
|
3
|
+
import { QuillProviderClient } from './models/Client';
|
|
4
4
|
import { QuillTheme } from './QuillProvider';
|
|
5
5
|
import { DashboardConfig } from './models/Dashboard';
|
|
6
6
|
import { SchemaData } from './models/Schema';
|
|
7
|
+
import { DashboardFilter } from './models/Filter';
|
|
7
8
|
export declare const SchemaDataContext: React.Context<[SchemaData, (value: React.SetStateAction<SchemaData>) => void]>;
|
|
8
9
|
export declare const ThemeContext: React.Context<[QuillTheme | null, (value: React.SetStateAction<QuillTheme | null>) => void]>;
|
|
9
|
-
export declare const ClientContext: React.Context<[
|
|
10
|
-
export declare const DashboardFiltersContext: React.Context<
|
|
10
|
+
export declare const ClientContext: React.Context<[QuillProviderClient | null, boolean, (value: React.SetStateAction<QuillProviderClient | null>) => void]>;
|
|
11
|
+
export declare const DashboardFiltersContext: React.Context<{
|
|
12
|
+
dashboardFilters: {
|
|
13
|
+
[dashboardName: string]: {
|
|
14
|
+
[filterName: string]: {
|
|
15
|
+
filter: DashboardFilter;
|
|
16
|
+
loading: boolean;
|
|
17
|
+
};
|
|
18
|
+
};
|
|
19
|
+
};
|
|
20
|
+
dispatch: any;
|
|
21
|
+
loadFiltersForDashboard: (dashboardName: string, filters: DashboardFilter[], updatedFilterLabel?: string) => void;
|
|
22
|
+
}>;
|
|
11
23
|
export declare const ReportFiltersContext: React.Context<any>;
|
|
12
24
|
export declare const DashboardContext: React.Context<[{
|
|
13
25
|
[key: string]: QuillReportInternal;
|
|
@@ -15,12 +27,11 @@ export declare const DashboardContext: React.Context<[{
|
|
|
15
27
|
export declare const DashboardConfigContext: React.Context<[{
|
|
16
28
|
[key: string]: DashboardConfig;
|
|
17
29
|
}, any]>;
|
|
18
|
-
export declare const ContextProvider: ({ children, initialTheme, publicKey,
|
|
30
|
+
export declare const ContextProvider: ({ children, initialTheme, publicKey, organizationId, queryEndpoint, queryHeaders, withCredentials, }: {
|
|
19
31
|
children: React.ReactNode;
|
|
20
32
|
initialTheme: QuillTheme;
|
|
21
33
|
publicKey: string;
|
|
22
|
-
|
|
23
|
-
userId?: string | undefined;
|
|
34
|
+
organizationId?: string | undefined;
|
|
24
35
|
queryEndpoint: string;
|
|
25
36
|
queryHeaders?: HeadersInit | undefined;
|
|
26
37
|
withCredentials?: boolean | undefined;
|
|
@@ -1 +1 @@
|
|
|
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,
|
|
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,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAIlD,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,8DAId,MAAM,cAAc,CAAC,mBAAmB,GAAG,IAAI,CAAC,KAAK,IAAI,EAExC,CAAC;AAE9B,eAAO,MAAM,uBAAuB;;;;wBAIpB,eAAe;yBACd,OAAO;;;;cAIZ,GAAG;6CAEI,MAAM,WACZ,eAAe,EAAE,uBACL,MAAM,KACxB,IAAI;EAKT,CAAC;AACH,eAAO,MAAM,oBAAoB,oBAAwC,CAAC;AAmC1E,eAAO,MAAM,gBAAgB;;QAEJ,CAAC;AAsC1B,eAAO,MAAM,sBAAsB;;QAEJ,CAAC;AA0DhC,eAAO,MAAM,eAAe;cAShB,MAAM,SAAS;kBACX,UAAU;eACb,MAAM;;mBAEF,MAAM;;;oDA4RtB,CAAC"}
|
package/dist/cjs/Context.js
CHANGED
|
@@ -15,12 +15,16 @@ exports.SchemaDataContext = (0, react_1.createContext)([
|
|
|
15
15
|
dummySetter,
|
|
16
16
|
]);
|
|
17
17
|
exports.ThemeContext = (0, react_1.createContext)([null, dummySetter]);
|
|
18
|
-
exports.ClientContext = (0, react_1.createContext)([
|
|
19
|
-
exports.DashboardFiltersContext = (0, react_1.createContext)(
|
|
18
|
+
exports.ClientContext = (0, react_1.createContext)([null, false, dummySetter]);
|
|
19
|
+
exports.DashboardFiltersContext = (0, react_1.createContext)({
|
|
20
|
+
dashboardFilters: {},
|
|
21
|
+
dispatch: dummySetter,
|
|
22
|
+
loadFiltersForDashboard: () => { },
|
|
23
|
+
});
|
|
20
24
|
exports.ReportFiltersContext = (0, react_1.createContext)([{}, dummySetter]);
|
|
21
25
|
const dashboardReducer = (state = {}, action) => {
|
|
22
26
|
switch (action.type) {
|
|
23
|
-
//NOTE: Because update dashboard item doesn't overwrite the previous data, it can leave stale properties when it should be removing them
|
|
27
|
+
// NOTE: Because update dashboard item doesn't overwrite the previous data, it can leave stale properties when it should be removing them
|
|
24
28
|
// We either want to make sure we're using null instead of undefined, or use ADD_DASHBOARD_ITEM more often.
|
|
25
29
|
case 'UPDATE_DASHBOARD_ITEM':
|
|
26
30
|
if (!action.id || !action.data) {
|
|
@@ -91,40 +95,45 @@ const reportFiltersReducer = (state, action) => {
|
|
|
91
95
|
return state;
|
|
92
96
|
}
|
|
93
97
|
};
|
|
94
|
-
const dashboardFiltersReducer = (state, action) => {
|
|
95
|
-
let newFilters = [];
|
|
96
|
-
let index = -1;
|
|
98
|
+
const dashboardFiltersReducer = (state = {}, action) => {
|
|
97
99
|
switch (action.type) {
|
|
98
100
|
case 'UPDATE_DASHBOARD_FILTER':
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
101
|
+
return {
|
|
102
|
+
...state,
|
|
103
|
+
[action.dashboardName]: {
|
|
104
|
+
...state[action.dashboardName],
|
|
105
|
+
[action.filterName]: action.data,
|
|
106
|
+
},
|
|
107
|
+
};
|
|
108
|
+
case 'UPDATE_DASHBOARD_FILTERS':
|
|
109
|
+
return {
|
|
110
|
+
...state,
|
|
111
|
+
[action.dashboardName]: {
|
|
112
|
+
...state[action.dashboardName],
|
|
113
|
+
...action.data,
|
|
114
|
+
},
|
|
115
|
+
};
|
|
104
116
|
case 'ADD_DASHBOARD_FILTERS':
|
|
105
|
-
return
|
|
117
|
+
return {
|
|
118
|
+
...state,
|
|
119
|
+
[action.dashboardName]: action.data,
|
|
120
|
+
};
|
|
106
121
|
case 'ADD_DASHBOARD_FILTER':
|
|
107
|
-
return
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
122
|
+
return {
|
|
123
|
+
...state,
|
|
124
|
+
[action.dashboardName]: {
|
|
125
|
+
...state[action.dashboardName],
|
|
126
|
+
[action.data.filterName]: action.data,
|
|
127
|
+
},
|
|
128
|
+
};
|
|
111
129
|
case 'CLEAR_DASHBOARD_FILTERS':
|
|
112
|
-
return
|
|
130
|
+
return {};
|
|
113
131
|
default:
|
|
114
132
|
return state;
|
|
115
133
|
}
|
|
116
134
|
};
|
|
117
|
-
const ContextProvider = ({ children, initialTheme, publicKey,
|
|
118
|
-
const [client, setClient] = (0, react_1.useState)(
|
|
119
|
-
name: '',
|
|
120
|
-
customerId: customerId ?? '*',
|
|
121
|
-
userId,
|
|
122
|
-
publicKey,
|
|
123
|
-
queryEndpoint,
|
|
124
|
-
queryHeaders,
|
|
125
|
-
withCredentials: withCredentials ?? false,
|
|
126
|
-
clientId: publicKey,
|
|
127
|
-
});
|
|
135
|
+
const ContextProvider = ({ children, initialTheme, publicKey, organizationId, queryEndpoint, queryHeaders, withCredentials, }) => {
|
|
136
|
+
const [client, setClient] = (0, react_1.useState)(null);
|
|
128
137
|
const [isClientLoading, setIsClientLoading] = (0, react_1.useState)(false);
|
|
129
138
|
const [theme, setTheme] = (0, react_1.useState)(null);
|
|
130
139
|
const [schemaData, setSchemaData] = (0, react_1.useState)({
|
|
@@ -134,7 +143,7 @@ const ContextProvider = ({ children, initialTheme, publicKey, customerId, userId
|
|
|
134
143
|
});
|
|
135
144
|
const [dashboard, dispatch] = (0, react_1.useReducer)(dashboardReducer, {});
|
|
136
145
|
const [dashboardConfig, dashboardConfigDispatch] = (0, react_1.useReducer)(dashboardConfigReducer, {});
|
|
137
|
-
const [dashboardFilters, dashboardFiltersDispatch] = (0, react_1.useReducer)(dashboardFiltersReducer,
|
|
146
|
+
const [dashboardFilters, dashboardFiltersDispatch] = (0, react_1.useReducer)(dashboardFiltersReducer, {});
|
|
138
147
|
const [reportFilters, reportFiltersDispatch] = (0, react_1.useReducer)(reportFiltersReducer, {});
|
|
139
148
|
// SETS INITIAL THEME
|
|
140
149
|
(0, react_1.useEffect)(() => {
|
|
@@ -156,21 +165,76 @@ const ContextProvider = ({ children, initialTheme, publicKey, customerId, userId
|
|
|
156
165
|
setTheme(newTheme);
|
|
157
166
|
}
|
|
158
167
|
}, [initialTheme]);
|
|
159
|
-
(
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
168
|
+
async function loadFiltersForDashboard(dashboardName, filters, updatedFilterLabel) {
|
|
169
|
+
dashboardFiltersDispatch({
|
|
170
|
+
type: 'ADD_DASHBOARD_FILTERS',
|
|
171
|
+
dashboardName,
|
|
172
|
+
data: filters.reduce((acc, filter) => {
|
|
173
|
+
acc[filter.label] = {
|
|
174
|
+
filter,
|
|
175
|
+
loading: filter.label !== updatedFilterLabel,
|
|
176
|
+
};
|
|
177
|
+
return acc;
|
|
178
|
+
}, {}),
|
|
179
|
+
});
|
|
180
|
+
// For each filter, send a fetch request to get the filter options
|
|
181
|
+
// Once the options are received, update the filter in the state
|
|
182
|
+
await Promise.all(filters.map(async (filter) => {
|
|
183
|
+
if (filter.filterType !== 'string')
|
|
184
|
+
return null;
|
|
185
|
+
if (filter.label === updatedFilterLabel)
|
|
186
|
+
return null;
|
|
187
|
+
try {
|
|
188
|
+
const response = await fetch(`${queryEndpoint}?filterOptions`, {
|
|
189
|
+
method: 'POST',
|
|
190
|
+
headers: {
|
|
191
|
+
...queryHeaders,
|
|
192
|
+
'Content-Type': 'application/json',
|
|
193
|
+
},
|
|
194
|
+
body: JSON.stringify({
|
|
195
|
+
metadata: {
|
|
196
|
+
clientId: client?.publicKey,
|
|
197
|
+
publicKey: client?.publicKey,
|
|
198
|
+
orgId: client?.organizationId,
|
|
199
|
+
name: dashboardName,
|
|
200
|
+
task: 'filter-options',
|
|
201
|
+
useNewNodeSql: true,
|
|
202
|
+
filter: {
|
|
203
|
+
...filter,
|
|
204
|
+
options: undefined,
|
|
205
|
+
},
|
|
206
|
+
appliedFilters: filters
|
|
207
|
+
.filter((f) => f.label !== filter.label)
|
|
208
|
+
.map((f) => ({
|
|
209
|
+
...f,
|
|
210
|
+
query: undefined,
|
|
211
|
+
options: undefined,
|
|
212
|
+
})),
|
|
213
|
+
},
|
|
214
|
+
}),
|
|
215
|
+
credentials: withCredentials ? 'include' : 'omit',
|
|
216
|
+
});
|
|
217
|
+
return response.json().then((result) => {
|
|
218
|
+
const filterOptions = result.data?.filters[0]?.options ?? [];
|
|
219
|
+
dashboardFiltersDispatch({
|
|
220
|
+
type: 'UPDATE_DASHBOARD_FILTER',
|
|
221
|
+
dashboardName,
|
|
222
|
+
filterName: filter.label,
|
|
223
|
+
data: {
|
|
224
|
+
filter: {
|
|
225
|
+
...filter,
|
|
226
|
+
options: filterOptions,
|
|
227
|
+
},
|
|
228
|
+
loading: false,
|
|
229
|
+
},
|
|
230
|
+
});
|
|
231
|
+
});
|
|
232
|
+
}
|
|
233
|
+
catch (error) {
|
|
234
|
+
console.error('ERROR:', error);
|
|
235
|
+
}
|
|
236
|
+
}));
|
|
237
|
+
}
|
|
174
238
|
async function fetchSchema(client, caller) {
|
|
175
239
|
// add custom fields here and also store in schema context
|
|
176
240
|
setSchemaData({ ...schemaData, isSchemaLoading: true });
|
|
@@ -184,32 +248,25 @@ const ContextProvider = ({ children, initialTheme, publicKey, customerId, userId
|
|
|
184
248
|
(0, react_1.useEffect)(() => {
|
|
185
249
|
async function fetchDatabaseType(publicKey) {
|
|
186
250
|
const newClient = await (0, client_1.fetchClient)(publicKey, queryEndpoint, withCredentials, queryHeaders);
|
|
187
|
-
if (
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
setClient({
|
|
191
|
-
...client,
|
|
192
|
-
...newClient2,
|
|
193
|
-
databaseType: newClient2.databaseType,
|
|
194
|
-
publicKey: publicKey,
|
|
195
|
-
});
|
|
196
|
-
}
|
|
197
|
-
else {
|
|
198
|
-
setClient({
|
|
199
|
-
...client,
|
|
200
|
-
...newClient,
|
|
201
|
-
publicKey: publicKey,
|
|
202
|
-
});
|
|
203
|
-
}
|
|
204
|
-
}
|
|
205
|
-
else {
|
|
206
|
-
setClient({
|
|
207
|
-
...newClient,
|
|
208
|
-
queryEndpoint: queryEndpoint,
|
|
209
|
-
withCredentials: withCredentials || false,
|
|
210
|
-
publicKey: publicKey,
|
|
211
|
-
});
|
|
251
|
+
if (!newClient.adminCustomerId && !newClient.multiTenancyDisabled) {
|
|
252
|
+
console.error('Default organization not found. Please select a default organization for this environment');
|
|
253
|
+
return;
|
|
212
254
|
}
|
|
255
|
+
setClient({
|
|
256
|
+
...client,
|
|
257
|
+
queryEndpoint: queryEndpoint,
|
|
258
|
+
withCredentials: withCredentials ?? false,
|
|
259
|
+
multiTenancyDisabled: newClient.multiTenancyDisabled ? true : false,
|
|
260
|
+
databaseType: newClient.databaseType,
|
|
261
|
+
name: newClient.name,
|
|
262
|
+
clientId: publicKey,
|
|
263
|
+
publicKey: publicKey,
|
|
264
|
+
organizationId: newClient.multiTenancyDisabled
|
|
265
|
+
? '*'
|
|
266
|
+
: newClient.adminCustomerId,
|
|
267
|
+
recommendedPivotsDisabled: newClient.recommendedPivotsDisabled,
|
|
268
|
+
featureFlags: newClient.featureFlags,
|
|
269
|
+
});
|
|
213
270
|
}
|
|
214
271
|
async function fetchDashboards(publicKey) {
|
|
215
272
|
if (!publicKey) {
|
|
@@ -263,20 +320,28 @@ const ContextProvider = ({ children, initialTheme, publicKey, customerId, userId
|
|
|
263
320
|
fetchSchema(client, 'context');
|
|
264
321
|
}
|
|
265
322
|
}, [client]);
|
|
323
|
+
(0, react_1.useEffect)(() => {
|
|
324
|
+
// Clear context
|
|
325
|
+
dashboardConfigDispatch({ type: 'CLEAR_DASHBOARD' });
|
|
326
|
+
dashboardFiltersDispatch({ type: 'CLEAR_DASHBOARD_FILTERS' });
|
|
327
|
+
reportFiltersDispatch({ type: 'CLEAR_REPORT_FILTERS' });
|
|
328
|
+
dispatch({ type: 'CLEAR_DASHBOARD' });
|
|
329
|
+
}, [client?.clientId]);
|
|
266
330
|
(0, react_1.useEffect)(() => {
|
|
267
331
|
if (client) {
|
|
268
|
-
setClient({ ...client,
|
|
332
|
+
setClient({ ...client, organizationId: organizationId ?? '*' });
|
|
269
333
|
}
|
|
270
334
|
if (Object.keys(dashboard).length > 0) {
|
|
271
335
|
dispatch({ type: 'CLEAR_DASHBOARD' });
|
|
272
336
|
}
|
|
273
|
-
}, [
|
|
337
|
+
}, [organizationId]);
|
|
274
338
|
if (!theme) {
|
|
275
339
|
return null;
|
|
276
340
|
}
|
|
277
|
-
return ((0, jsx_runtime_1.jsx)(exports.ClientContext.Provider, { value: [client, isClientLoading, setClient], children: (0, jsx_runtime_1.jsx)(exports.ThemeContext.Provider, { value: [theme, setTheme], children: (0, jsx_runtime_1.jsx)(exports.SchemaDataContext.Provider, { value: [schemaData, setSchemaData], children: (0, jsx_runtime_1.jsx)(exports.DashboardContext.Provider, { value: [dashboard, dispatch], children: (0, jsx_runtime_1.jsx)(exports.DashboardConfigContext.Provider, { value: [dashboardConfig, dashboardConfigDispatch], children: (0, jsx_runtime_1.jsx)(exports.DashboardFiltersContext.Provider, { value: {
|
|
341
|
+
return ((0, jsx_runtime_1.jsx)(exports.ClientContext.Provider, { value: [isClientLoading ? null : client, isClientLoading, setClient], children: (0, jsx_runtime_1.jsx)(exports.ThemeContext.Provider, { value: [theme, setTheme], children: (0, jsx_runtime_1.jsx)(exports.SchemaDataContext.Provider, { value: [schemaData, setSchemaData], children: (0, jsx_runtime_1.jsx)(exports.DashboardContext.Provider, { value: [dashboard, dispatch], children: (0, jsx_runtime_1.jsx)(exports.DashboardConfigContext.Provider, { value: [dashboardConfig, dashboardConfigDispatch], children: (0, jsx_runtime_1.jsx)(exports.DashboardFiltersContext.Provider, { value: {
|
|
278
342
|
dashboardFilters,
|
|
279
|
-
dashboardFiltersDispatch,
|
|
343
|
+
dispatch: dashboardFiltersDispatch,
|
|
344
|
+
loadFiltersForDashboard,
|
|
280
345
|
}, children: (0, jsx_runtime_1.jsx)(exports.ReportFiltersContext.Provider, { value: {
|
|
281
346
|
reportFilters,
|
|
282
347
|
reportFiltersDispatch,
|
package/dist/cjs/Dashboard.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import React, { CSSProperties, ReactNode, ChangeEvent } from 'react';
|
|
|
2
2
|
import { TextInputComponentProps } from './components/UiComponents';
|
|
3
3
|
import { Filter } from './models/Filter';
|
|
4
4
|
import { QuillReport } from './models/Report';
|
|
5
|
+
import { Pagination } from './models/Pagination';
|
|
5
6
|
/**
|
|
6
7
|
* The props passed into the ChartComponent, TableComponent, and MetricComponent
|
|
7
8
|
* functions in the dashboard.
|
|
@@ -57,13 +58,14 @@ export interface DashboardProps {
|
|
|
57
58
|
onClickChartElement?: (data: any) => void;
|
|
58
59
|
}) => JSX.Element;
|
|
59
60
|
/** A component that wraps a dashboard item for 'table' chart types. */
|
|
60
|
-
TableComponent?: ({ report, onClick, hoverActions, isLoading, error, rowCount, onPageChange, onSortChange, }: {
|
|
61
|
+
TableComponent?: ({ report, onClick, hoverActions, isLoading, error, rowCount, rowCountIsLoading, onPageChange, onSortChange, }: {
|
|
61
62
|
report: QuillReport;
|
|
62
63
|
onClick?: (report: QuillReport) => void;
|
|
63
64
|
hoverActions?: (report: QuillReport) => JSX.Element;
|
|
64
65
|
isLoading?: boolean;
|
|
65
66
|
error?: string;
|
|
66
67
|
rowCount?: number;
|
|
68
|
+
rowCountIsLoading?: boolean;
|
|
67
69
|
onPageChange?: (page: number) => void;
|
|
68
70
|
onSortChange?: (sort: {
|
|
69
71
|
field: string;
|
|
@@ -102,7 +104,7 @@ export interface DashboardProps {
|
|
|
102
104
|
}) => JSX.Element;
|
|
103
105
|
/** A select component. */
|
|
104
106
|
SelectComponent?: ({ label, value, options, onChange, width, }: {
|
|
105
|
-
value: string;
|
|
107
|
+
value: string | null | undefined;
|
|
106
108
|
width: number;
|
|
107
109
|
label?: string;
|
|
108
110
|
options: {
|
|
@@ -113,7 +115,7 @@ export interface DashboardProps {
|
|
|
113
115
|
}) => JSX.Element;
|
|
114
116
|
/** A multiselect component. */
|
|
115
117
|
MultiSelectComponent?: ({ label, value, options, onChange, width, }: {
|
|
116
|
-
value: string[];
|
|
118
|
+
value: (string | null)[];
|
|
117
119
|
width: number;
|
|
118
120
|
label?: string;
|
|
119
121
|
options: {
|
|
@@ -275,6 +277,8 @@ export interface DashboardProps {
|
|
|
275
277
|
hideAdminErrors?: boolean;
|
|
276
278
|
/** Template dashboard */
|
|
277
279
|
templateDashboardName?: string;
|
|
280
|
+
/** Pagination settings for each table report in this dashboard */
|
|
281
|
+
pagination?: Pagination;
|
|
278
282
|
}
|
|
279
283
|
/**
|
|
280
284
|
* ### Quill Dashboard
|
|
@@ -307,5 +311,5 @@ export interface DashboardProps {
|
|
|
307
311
|
* ### API Reference
|
|
308
312
|
* @see https://docs.quillsql.com/components/dashboard
|
|
309
313
|
*/
|
|
310
|
-
export default function Dashboard({ name, hidden, SelectComponent, MultiSelectComponent, ModalComponent, ButtonComponent, SecondaryButtonComponent, FilterTagComponent, PopoverComponent, TextInputComponent, EmptyDashboardComponent, DateRangePickerComponent, MetricComponent, ChartComponent, TableComponent, TemplateMetricComponent, TemplateChartComponent, TemplateTableComponent, DashboardSectionComponent, DashboardSectionContainerComponent, FilterContainerComponent, DashboardLoadingComponent, ErrorComponent, onClickReport, hoverActions, onChangeLoading, hideFilters, hideXAxis, hideYAxis, hideCartesianGrid, comparisonLineStyle, containerStyle, className, chartContainerStyle, filters, onClickChartElement, dateBucket, additionalProcessing, hideAdminErrors, templateDashboardName, }: DashboardProps): import("react/jsx-runtime").JSX.Element;
|
|
314
|
+
export default function Dashboard({ name, hidden, SelectComponent, MultiSelectComponent, ModalComponent, ButtonComponent, SecondaryButtonComponent, FilterTagComponent, PopoverComponent, TextInputComponent, EmptyDashboardComponent, DateRangePickerComponent, MetricComponent, ChartComponent, TableComponent, TemplateMetricComponent, TemplateChartComponent, TemplateTableComponent, DashboardSectionComponent, DashboardSectionContainerComponent, FilterContainerComponent, DashboardLoadingComponent, ErrorComponent, onClickReport, hoverActions, onChangeLoading, hideFilters, hideXAxis, hideYAxis, hideCartesianGrid, comparisonLineStyle, containerStyle, className, chartContainerStyle, filters, onClickChartElement, dateBucket, additionalProcessing, hideAdminErrors, templateDashboardName, pagination, }: DashboardProps): import("react/jsx-runtime").JSX.Element;
|
|
311
315
|
//# sourceMappingURL=Dashboard.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Dashboard.d.ts","sourceRoot":"","sources":["../../src/Dashboard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAIZ,aAAa,EACb,SAAS,EACT,WAAW,EAEZ,MAAM,OAAO,CAAC;AA6Bf,OAAO,EAUL,uBAAuB,EACxB,MAAM,2BAA2B,CAAC;AAGnC,OAAO,
|
|
1
|
+
{"version":3,"file":"Dashboard.d.ts","sourceRoot":"","sources":["../../src/Dashboard.tsx"],"names":[],"mappings":"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"}
|