@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
|
@@ -93,17 +93,12 @@ function updateFilter(filter, value = null, comparison = null) {
|
|
|
93
93
|
}
|
|
94
94
|
if (comparison ||
|
|
95
95
|
(filter.comparison && filter.comparisonRange.value !== 'NO_COMPARISON')) {
|
|
96
|
-
let preset = '';
|
|
97
|
-
if (comparison) {
|
|
98
|
-
preset = filter.preset.label;
|
|
99
|
-
}
|
|
100
96
|
const key = comparison?.value || filter.comparisonRange.value;
|
|
101
97
|
let primaryRange = {
|
|
102
98
|
start: value ? value.startDate : filter.startDate,
|
|
103
99
|
end: value ? value.endDate : filter.endDate,
|
|
104
100
|
};
|
|
105
101
|
if (value && value.preset) {
|
|
106
|
-
preset = value.preset;
|
|
107
102
|
primaryRange = (0, dateRangePickerUtils_1.getRangeFromPresetOptions)(value.preset, presetsOptions);
|
|
108
103
|
}
|
|
109
104
|
return {
|
|
@@ -112,7 +107,7 @@ function updateFilter(filter, value = null, comparison = null) {
|
|
|
112
107
|
filterType: 'date_range',
|
|
113
108
|
label: 'Date',
|
|
114
109
|
field: 'date_range',
|
|
115
|
-
preset:
|
|
110
|
+
preset: filter.preset,
|
|
116
111
|
options: filter.options,
|
|
117
112
|
comparison: true,
|
|
118
113
|
comparisonRange: {
|
|
@@ -130,10 +125,9 @@ function updateFilter(filter, value = null, comparison = null) {
|
|
|
130
125
|
start: value?.startDate || filter.startDate,
|
|
131
126
|
end: value?.endDate || filter.endDate,
|
|
132
127
|
};
|
|
133
|
-
const preset = value?.preset ? value.preset : '';
|
|
134
128
|
return {
|
|
135
129
|
...filter,
|
|
136
|
-
preset:
|
|
130
|
+
preset: filter.preset,
|
|
137
131
|
startDate: primaryRange.start,
|
|
138
132
|
endDate: primaryRange.end,
|
|
139
133
|
filterType: 'date_range',
|
|
@@ -4,7 +4,7 @@ exports.shouldSortInMemory = exports.shouldFetchMore = exports.DEFAULT_PAGINATIO
|
|
|
4
4
|
exports.DEFAULT_PAGINATION = {
|
|
5
5
|
page: 0,
|
|
6
6
|
rowsPerPage: 10,
|
|
7
|
-
rowsPerRequest:
|
|
7
|
+
rowsPerRequest: 600,
|
|
8
8
|
};
|
|
9
9
|
function shouldFetchMore(pagination, page, maxPage) {
|
|
10
10
|
if (!pagination) {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { QuillProviderClient } from '../models/Client';
|
|
2
2
|
import { Pivot } from '../models/Pivot';
|
|
3
3
|
import { QuillReportInternal } from '../models/Report';
|
|
4
|
-
export declare function generatePivotWithSQL(pivot: Pivot, report: QuillReportInternal, client:
|
|
4
|
+
export declare function generatePivotWithSQL(pivot: Pivot, report: QuillReportInternal, client: QuillProviderClient, dateBucket?: string, dateFilter?: any, distinctStrings?: any): Promise<{
|
|
5
5
|
rows: any;
|
|
6
6
|
columns: any;
|
|
7
7
|
} | undefined>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pivotConstructor.d.ts","sourceRoot":"","sources":["../../../src/utils/pivotConstructor.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"pivotConstructor.d.ts","sourceRoot":"","sources":["../../../src/utils/pivotConstructor.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAOvD,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,mBAAmB,EAC3B,MAAM,EAAE,mBAAmB,EAC3B,UAAU,CAAC,EAAE,MAAM,EACnB,UAAU,CAAC,EAAE,GAAG,EAChB,eAAe,CAAC,EAAE,GAAG;;;eAuMtB"}
|
|
@@ -43,7 +43,7 @@ async function generatePivotWithSQL(pivot, report, client, dateBucket, dateFilte
|
|
|
43
43
|
metadata: {
|
|
44
44
|
preQueries: [sqlQuery],
|
|
45
45
|
task: 'query',
|
|
46
|
-
orgId: client.
|
|
46
|
+
orgId: client.organizationId || '*',
|
|
47
47
|
clientId: client.publicKey,
|
|
48
48
|
databaseType: client?.databaseType,
|
|
49
49
|
getCustomFields: false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pivotProcessing.d.ts","sourceRoot":"","sources":["../../../src/utils/pivotProcessing.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAIxD,wBAAgB,UAAU,CACxB,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,cAAc,EAAE,GACxB,MAAM,CAuCR;AAkBD,wBAAgB,YAAY,CAAC,KAAK,EAAE,KAAK,WA0BxC;AAED,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,cAAc,EAAE,EACzB,YAAY,EAAE,oBAAoB;;;;
|
|
1
|
+
{"version":3,"file":"pivotProcessing.d.ts","sourceRoot":"","sources":["../../../src/utils/pivotProcessing.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAIxD,wBAAgB,UAAU,CACxB,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,cAAc,EAAE,GACxB,MAAM,CAuCR;AAkBD,wBAAgB,YAAY,CAAC,KAAK,EAAE,KAAK,WA0BxC;AAED,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,cAAc,EAAE,EACzB,YAAY,EAAE,oBAAoB;;;;EAqDnC;AAED,wBAAgB,UAAU,CACxB,KAAK,EAAE,KAAK,EACZ,eAAe,EAAE;IACf,SAAS,EAAE,GAAG,CAAC;IACf,YAAY,EAAE,GAAG,CAAC;IAClB,WAAW,EAAE,GAAG,CAAC;CAClB,GACA,KAAK,CAqCP;AAED,eAAO,MAAM,eAAe,WAAY,GAAG,SAAS,KAAK,YA8BxD,CAAC"}
|
|
@@ -89,11 +89,15 @@ function getPossiblePivotFieldOptions(columns, uniqueValues) {
|
|
|
89
89
|
(Object.keys(possibleValues).length === 1 &&
|
|
90
90
|
Object.keys(possibleValues)[0] === 'null');
|
|
91
91
|
if (!isNullValuesOnly &&
|
|
92
|
-
Object.keys(possibleValues).length <= constants_1.MAX_PIVOT_UNIQUE_VALUES
|
|
92
|
+
Object.keys(possibleValues).length <= constants_1.MAX_PIVOT_UNIQUE_VALUES &&
|
|
93
|
+
!(Object.keys(possibleValues).length === 1 &&
|
|
94
|
+
possibleValues['EXCEEDS_LIMIT'] !== undefined)) {
|
|
93
95
|
columnFields.push(column.field);
|
|
94
96
|
}
|
|
95
97
|
if (!isNullValuesOnly &&
|
|
96
|
-
Object.keys(possibleValues).length <= constants_1.MAX_PIVOT_UNIQUE_VALUES
|
|
98
|
+
Object.keys(possibleValues).length <= constants_1.MAX_PIVOT_UNIQUE_VALUES &&
|
|
99
|
+
!(Object.keys(possibleValues).length === 1 &&
|
|
100
|
+
possibleValues['EXCEEDS_LIMIT'] !== undefined)) {
|
|
97
101
|
rowFields.push(column.field);
|
|
98
102
|
}
|
|
99
103
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queryConstructor.d.ts","sourceRoot":"","sources":["../../../src/utils/queryConstructor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"queryConstructor.d.ts","sourceRoot":"","sources":["../../../src/utils/queryConstructor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAoBxC,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,EACpB,cAAc,CAAC,EAAE,MAAM,EAEvB,iBAAiB,CAAC,EAAE,OAAO,UAgC5B;AAED,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,MAAM,UAE1D;AAwDD,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,MAAM,EAAE,EAChB,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,MAAM,UAsBrB;AAED,wBAAgB,qBAAqB,CACnC,YAAY,EAAE,MAAM,EAAE,EACtB,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,MAAM,UAUrB;AAsDD,wBAAgB,0BAA0B,CACxC,YAAY,EAAE,MAAM,EAAE,EACtB,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,MAAM,UAcrB;AAED,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,MAAM,EAAE,EACrB,YAAY,EAAE,MAAM,EACpB,kBAAkB,CAAC,EAAE,MAAM,EAC3B,eAAe,CAAC,EAAE,MAAM,EAAE,EAC1B,UAAU,CAAC,EAAE,MAAM,GAClB,MAAM,GAAG,SAAS,CAyBpB"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.generatePivotQuery = exports.generateMinMaxRangeQueries = exports.generateDistinctQuery = exports.generateCountQuery = exports.replaceSpacesWithUnderscores = exports.processColumnReference = void 0;
|
|
4
|
+
const constants_1 = require("./constants");
|
|
4
5
|
const pivotProcessing_1 = require("./pivotProcessing");
|
|
5
6
|
function processSingleQuotes(value, databaseType) {
|
|
6
7
|
if (['postgresql', 'snowflake'].includes(databaseType.toLowerCase())) {
|
|
@@ -40,11 +41,8 @@ isPivotFieldAlias) {
|
|
|
40
41
|
if (column === '' && fallbackOnNull) {
|
|
41
42
|
return `${fallbackOnNull}`;
|
|
42
43
|
}
|
|
43
|
-
// Wrap in
|
|
44
|
-
|
|
45
|
-
return `'${column}'`;
|
|
46
|
-
}
|
|
47
|
-
return `${column}`;
|
|
44
|
+
// Wrap MySQL columns in backticks to handle whitespace
|
|
45
|
+
return `\`${column}\``;
|
|
48
46
|
}
|
|
49
47
|
const columnParts = column.split('.');
|
|
50
48
|
if (columnParts.length > 1) {
|
|
@@ -97,19 +95,24 @@ function processValueField(aggType, databaseType, valueField) {
|
|
|
97
95
|
}
|
|
98
96
|
function generateCountQuery(fields, query, databaseType) {
|
|
99
97
|
let countQuery = [];
|
|
98
|
+
let cteQuery = `WITH querytable AS (${query.replace(';', '')}) `;
|
|
99
|
+
let cte = [];
|
|
100
100
|
switch (databaseType.toLowerCase()) {
|
|
101
101
|
case 'mysql':
|
|
102
|
-
|
|
103
|
-
return
|
|
102
|
+
cte = fields.map((field, index) => {
|
|
103
|
+
return `, distinct_cte_${index} AS (SELECT DISTINCT ${processColumnReference(field, databaseType)} FROM querytable LIMIT ${constants_1.MAX_PIVOT_UNIQUE_VALUES + 1})`;
|
|
104
|
+
});
|
|
105
|
+
countQuery = fields.map((field, index) => {
|
|
106
|
+
return `SELECT '${field}' AS ${processColumnReference('field', databaseType)}, COUNT(*) AS ${processColumnReference('count', databaseType)} FROM distinct_cte_${index}`;
|
|
104
107
|
});
|
|
108
|
+
cteQuery += cte.join(' ');
|
|
105
109
|
break;
|
|
106
110
|
default:
|
|
107
111
|
countQuery = fields.map((field) => {
|
|
108
112
|
return `SELECT '${field}' AS ${processColumnReference('field', databaseType)}, COUNT(DISTINCT ${processColumnReference(field, databaseType)}) AS ${processColumnReference('count', databaseType)} FROM querytable`;
|
|
109
113
|
});
|
|
110
114
|
}
|
|
111
|
-
return
|
|
112
|
-
countQuery.join(' UNION ALL '));
|
|
115
|
+
return cteQuery + countQuery.join(' UNION ALL ');
|
|
113
116
|
}
|
|
114
117
|
exports.generateCountQuery = generateCountQuery;
|
|
115
118
|
function generateDistinctQuery(stringFields, query, databaseType) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { QuillProviderClient } from '../models/Client';
|
|
2
2
|
import { ColumnInternal } from '../models/Columns';
|
|
3
3
|
import { Pivot } from '../models/Pivot';
|
|
4
4
|
import { QuillReport, QuillReportInternal } from '../models/Report';
|
|
@@ -23,19 +23,20 @@ export type ReportBuilderInfo = {
|
|
|
23
23
|
};
|
|
24
24
|
export declare const EMPTY_REPORT: QuillReport;
|
|
25
25
|
export declare const EMPTY_INTERNAL_REPORT: QuillReportInternal;
|
|
26
|
-
export declare function fetchReport(reportId: string, client:
|
|
26
|
+
export declare function fetchReport(reportId: string, client: QuillProviderClient, useReportTask?: boolean, filters?: any[], additionalProcessing?: AdditionalProcessing, dateBucket?: string, customFields?: any, rowsOnly?: boolean, rowCountOnly?: boolean): Promise<{
|
|
27
27
|
report: QuillReportInternal;
|
|
28
28
|
error?: string;
|
|
29
29
|
}>;
|
|
30
|
+
export declare function fetchReportRowCount(reportId: string, client: QuillProviderClient, useReportTask?: boolean, filters?: any[], additionalProcessing?: AdditionalProcessing, customFields?: any): Promise<number | undefined>;
|
|
30
31
|
export declare function saveReport({ report, dashboardItemId, client, }: {
|
|
31
32
|
report: any;
|
|
32
33
|
dashboardItemId?: string;
|
|
33
|
-
client:
|
|
34
|
+
client: QuillProviderClient;
|
|
34
35
|
}): Promise<any>;
|
|
35
36
|
export declare const formatRowsFromReport: (report: any) => any;
|
|
36
37
|
export declare function convertInternalReportToReport(report: QuillReportInternal): QuillReport;
|
|
37
|
-
export declare const fetchReportBuilderDataFromAST: (baseAst: any, formData: any, schema: Table[], client:
|
|
38
|
+
export declare const fetchReportBuilderDataFromAST: (baseAst: any, formData: any, schema: Table[], client: QuillProviderClient, pivot?: Pivot, previousFormData?: any, currentTable?: string, previousRelevant?: {
|
|
38
39
|
uniqueStrings: UniqueValuesByTable;
|
|
39
40
|
dateRanges: DateRangesByColumn;
|
|
40
|
-
}, report?: QuillReportInternal, customFields?: any) => Promise<ReportBuilderInfo>;
|
|
41
|
+
}, report?: QuillReportInternal, customFields?: any, skipUniqueValues?: boolean, skipRowCount?: boolean, processing?: AdditionalProcessing) => Promise<ReportBuilderInfo>;
|
|
41
42
|
//# sourceMappingURL=report.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../../../src/utils/report.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../../../src/utils/report.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAU,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,EACL,kBAAkB,EAClB,KAAK,EACL,mBAAmB,EACpB,MAAM,kBAAkB,CAAC;AAa1B,OAAO,EACL,oBAAoB,EAIrB,MAAM,mBAAmB,CAAC;AAI3B,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,SAAS,EAAE;QAAE,IAAI,EAAE,GAAG,EAAE,CAAC;QAAC,OAAO,EAAE,cAAc,EAAE,CAAA;KAAE,GAAG,IAAI,CAAC;IAC7D,aAAa,EAAE,GAAG,EAAE,CAAC;IACrB,MAAM,EAAE,mBAAmB,CAAC;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,mBAAmB,CAAC;IAClC,UAAU,EAAE,kBAAkB,CAAC;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,WAkB1B,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,mBAGnC,CAAC;AA2BF,wBAAsB,WAAW,CAC/B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,mBAAmB,EAC3B,aAAa,UAAO,EACpB,OAAO,GAAE,GAAG,EAAO,EACnB,oBAAoB,CAAC,EAAE,oBAAoB,EAC3C,UAAU,CAAC,EAAE,MAAM,EACnB,YAAY,CAAC,EAAE,GAAG,EAClB,QAAQ,CAAC,EAAE,OAAO,EAClB,YAAY,CAAC,EAAE,OAAO,GACrB,OAAO,CAAC;IAAE,MAAM,EAAE,mBAAmB,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAmI1D;AAED,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,mBAAmB,EAC3B,aAAa,UAAO,EACpB,OAAO,GAAE,GAAG,EAAO,EACnB,oBAAoB,CAAC,EAAE,oBAAoB,EAC3C,YAAY,CAAC,EAAE,GAAG,GACjB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAkC7B;AAED,wBAAsB,UAAU,CAAC,EAC/B,MAAM,EACN,eAAe,EACf,MAAM,GACP,EAAE;IACD,MAAM,EAAE,GAAG,CAAC;IACZ,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,mBAAmB,CAAC;CAC7B,GAAG,OAAO,CAAC,GAAG,CAAC,CA4Cf;AAED,eAAO,MAAM,oBAAoB,WAAY,GAAG,QAkB/C,CAAC;AAEF,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,mBAAmB,GAC1B,WAAW,CAsDb;AAED,eAAO,MAAM,6BAA6B,YAC/B,GAAG,YACF,GAAG,UACL,KAAK,EAAE,UACP,mBAAmB,UACnB,KAAK,qBACM,GAAG,iBACP,MAAM,qBACF;IACjB,aAAa,EAAE,mBAAmB,CAAC;IACnC,UAAU,EAAE,kBAAkB,CAAC;CAChC,WACQ,mBAAmB,iBACb,GAAG,qBACC,OAAO,iBACX,OAAO,eACT,oBAAoB,KAChC,QAAQ,iBAAiB,CAgK3B,CAAC"}
|
package/dist/cjs/utils/report.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.fetchReportBuilderDataFromAST = exports.convertInternalReportToReport = exports.formatRowsFromReport = exports.saveReport = exports.fetchReport = exports.EMPTY_INTERNAL_REPORT = exports.EMPTY_REPORT = void 0;
|
|
3
|
+
exports.fetchReportBuilderDataFromAST = exports.convertInternalReportToReport = exports.formatRowsFromReport = exports.saveReport = exports.fetchReportRowCount = exports.fetchReport = exports.EMPTY_INTERNAL_REPORT = exports.EMPTY_REPORT = void 0;
|
|
4
4
|
const ChartBuilder_1 = require("../ChartBuilder");
|
|
5
5
|
const ast_1 = require("../components/ReportBuilder/ast");
|
|
6
6
|
const PivotModal_1 = require("../internals/ReportBuilder/PivotModal");
|
|
@@ -64,7 +64,7 @@ function extractAllReportValuesFromQuillInternalReport(reportInternal) {
|
|
|
64
64
|
template: reportInternal.template,
|
|
65
65
|
};
|
|
66
66
|
}
|
|
67
|
-
async function fetchReport(reportId, client, useReportTask = true, filters = [], additionalProcessing, dateBucket, customFields) {
|
|
67
|
+
async function fetchReport(reportId, client, useReportTask = true, filters = [], additionalProcessing, dateBucket, customFields, rowsOnly, rowCountOnly) {
|
|
68
68
|
let reportInfo = undefined;
|
|
69
69
|
let errorMessage = undefined;
|
|
70
70
|
try {
|
|
@@ -73,14 +73,16 @@ async function fetchReport(reportId, client, useReportTask = true, filters = [],
|
|
|
73
73
|
metadata: {
|
|
74
74
|
reportId,
|
|
75
75
|
dashboardItemId: reportId,
|
|
76
|
-
orgId: client.
|
|
76
|
+
orgId: client.organizationId || '*',
|
|
77
77
|
clientId: client.publicKey,
|
|
78
78
|
task: useReportTask ? 'report' : 'item',
|
|
79
79
|
databaseType: client.databaseType,
|
|
80
|
-
filters: filters,
|
|
80
|
+
filters: filters.map((filter) => ({ ...filter, options: undefined })),
|
|
81
81
|
customFields,
|
|
82
82
|
additionalProcessing,
|
|
83
83
|
useNewNodeSql: true,
|
|
84
|
+
rowsOnly,
|
|
85
|
+
rowCountOnly,
|
|
84
86
|
},
|
|
85
87
|
};
|
|
86
88
|
const cloudBody = {
|
|
@@ -116,8 +118,11 @@ async function fetchReport(reportId, client, useReportTask = true, filters = [],
|
|
|
116
118
|
// Ensure the report columns don't reference any columns that aren't present in the rows
|
|
117
119
|
const observedColumns = reportInfo?.rows[0]
|
|
118
120
|
? Object.keys(reportInfo.rows[0])
|
|
119
|
-
:
|
|
120
|
-
if (
|
|
121
|
+
: null;
|
|
122
|
+
if (observedColumns &&
|
|
123
|
+
reportInfo &&
|
|
124
|
+
!reportInfo.pivot &&
|
|
125
|
+
!reportInfo.pivotColumns &&
|
|
121
126
|
useReportTask &&
|
|
122
127
|
reportInfo.columns?.filter((col) => !observedColumns.includes(col.field))
|
|
123
128
|
?.length > 0) {
|
|
@@ -134,7 +139,7 @@ async function fetchReport(reportId, client, useReportTask = true, filters = [],
|
|
|
134
139
|
if (error instanceof error_1.DataLoadError) {
|
|
135
140
|
if (error.data.useReportTask) {
|
|
136
141
|
(0, logging_1.internalLog)('USING ITEM AS BACKUP');
|
|
137
|
-
const { report, error } = await fetchReport(reportId, client, false, filters, additionalProcessing, dateBucket, customFields);
|
|
142
|
+
const { report, error } = await fetchReport(reportId, client, false, filters, additionalProcessing, dateBucket, customFields, rowsOnly, rowCountOnly);
|
|
138
143
|
reportInfo = report;
|
|
139
144
|
errorMessage = error;
|
|
140
145
|
}
|
|
@@ -162,12 +167,38 @@ async function fetchReport(reportId, client, useReportTask = true, filters = [],
|
|
|
162
167
|
return { report: reportInfo || exports.EMPTY_INTERNAL_REPORT, error: errorMessage };
|
|
163
168
|
}
|
|
164
169
|
exports.fetchReport = fetchReport;
|
|
170
|
+
async function fetchReportRowCount(reportId, client, useReportTask = true, filters = [], additionalProcessing, customFields) {
|
|
171
|
+
// Remove extra fields on each filter so we don't confuse the backend.
|
|
172
|
+
const hostedBody = {
|
|
173
|
+
metadata: {
|
|
174
|
+
reportId,
|
|
175
|
+
dashboardItemId: reportId,
|
|
176
|
+
orgId: client.organizationId || '*',
|
|
177
|
+
clientId: client.publicKey,
|
|
178
|
+
task: useReportTask ? 'report' : 'item',
|
|
179
|
+
databaseType: client.databaseType,
|
|
180
|
+
filters: filters.map((filter) => ({ ...filter, options: undefined })),
|
|
181
|
+
customFields,
|
|
182
|
+
additionalProcessing,
|
|
183
|
+
useNewNodeSql: true,
|
|
184
|
+
rowCountOnly: true,
|
|
185
|
+
},
|
|
186
|
+
};
|
|
187
|
+
const cloudBody = {
|
|
188
|
+
id: reportId,
|
|
189
|
+
filters: filters,
|
|
190
|
+
useNewNodeSql: true,
|
|
191
|
+
};
|
|
192
|
+
const resp = await (0, dataFetcher_1.getData)(client, 'itempost', 'omit', hostedBody, cloudBody, 'POST', 'fetch-data');
|
|
193
|
+
return resp.rowCount;
|
|
194
|
+
}
|
|
195
|
+
exports.fetchReportRowCount = fetchReportRowCount;
|
|
165
196
|
async function saveReport({ report, dashboardItemId, client, }) {
|
|
166
|
-
const { publicKey,
|
|
197
|
+
const { publicKey, organizationId, databaseType } = client;
|
|
167
198
|
const cloudBody = {
|
|
168
199
|
...report,
|
|
169
200
|
dashboardItemId,
|
|
170
|
-
customerId:
|
|
201
|
+
customerId: organizationId || '*',
|
|
171
202
|
useNewNodeSql: true,
|
|
172
203
|
};
|
|
173
204
|
// @ts-ignore
|
|
@@ -185,14 +216,14 @@ async function saveReport({ report, dashboardItemId, client, }) {
|
|
|
185
216
|
clientId: publicKey,
|
|
186
217
|
databaseType: databaseType,
|
|
187
218
|
...cloudBody,
|
|
188
|
-
orgId:
|
|
219
|
+
orgId: organizationId || '*',
|
|
189
220
|
useNewNodeSql: true,
|
|
190
221
|
},
|
|
191
222
|
};
|
|
192
|
-
const searchParams = new URLSearchParams(
|
|
223
|
+
const searchParams = new URLSearchParams(organizationId
|
|
193
224
|
? {
|
|
194
225
|
clientId: publicKey,
|
|
195
|
-
customerId:
|
|
226
|
+
customerId: organizationId,
|
|
196
227
|
}
|
|
197
228
|
: { clientId: publicKey }).toString();
|
|
198
229
|
return await (0, dataFetcher_1.getData)(client, `dashedit2?${searchParams}`, 'same-origin', hostedBody, cloudBody);
|
|
@@ -272,7 +303,7 @@ function convertInternalReportToReport(report) {
|
|
|
272
303
|
}
|
|
273
304
|
}
|
|
274
305
|
exports.convertInternalReportToReport = convertInternalReportToReport;
|
|
275
|
-
const fetchReportBuilderDataFromAST = async (baseAst, formData, schema, client, pivot, previousFormData, currentTable, previousRelevant, report, customFields) => {
|
|
306
|
+
const fetchReportBuilderDataFromAST = async (baseAst, formData, schema, client, pivot, previousFormData, currentTable, previousRelevant, report, customFields, skipUniqueValues, skipRowCount, processing) => {
|
|
276
307
|
let newRows = [];
|
|
277
308
|
let newColumns = [];
|
|
278
309
|
let newRowCount = 0;
|
|
@@ -283,7 +314,7 @@ const fetchReportBuilderDataFromAST = async (baseAst, formData, schema, client,
|
|
|
283
314
|
let table = '';
|
|
284
315
|
let error;
|
|
285
316
|
const relevantInfo = previousRelevant ?? { uniqueStrings: {}, dateRanges: {} };
|
|
286
|
-
|
|
317
|
+
let query = '';
|
|
287
318
|
try {
|
|
288
319
|
const tables = (0, ast_1.getTableNames)(baseAst);
|
|
289
320
|
table = tables[0] ? tables[0] : '';
|
|
@@ -291,7 +322,7 @@ const fetchReportBuilderDataFromAST = async (baseAst, formData, schema, client,
|
|
|
291
322
|
if (!table || !tableInfo) {
|
|
292
323
|
throw new Error('No table found;');
|
|
293
324
|
}
|
|
294
|
-
const tableData = await (0, tableProcessing_1.fetchTableByAST)({ ...baseAst, where: formData }, client, { page: paginationProcessing_1.DEFAULT_PAGINATION });
|
|
325
|
+
const tableData = await (0, tableProcessing_1.fetchTableByAST)({ ...baseAst, where: formData }, client, processing ?? { page: paginationProcessing_1.DEFAULT_PAGINATION }, undefined, skipRowCount);
|
|
295
326
|
if (tableData.error) {
|
|
296
327
|
throw new Error(tableData.error);
|
|
297
328
|
}
|
|
@@ -315,17 +346,32 @@ const fetchReportBuilderDataFromAST = async (baseAst, formData, schema, client,
|
|
|
315
346
|
}),
|
|
316
347
|
columnInternal: tableData.columns,
|
|
317
348
|
};
|
|
318
|
-
const queryResult = await (0, dataFetcher_1.fetchSqlQuery)({
|
|
319
|
-
...(0, astProcessing_1.createBasicSelectASTFromColumns)(tableInfo.columns, table),
|
|
320
|
-
where: formData,
|
|
321
|
-
}, client, formData);
|
|
322
|
-
if (queryResult.error) {
|
|
323
|
-
throw new Error(queryResult.error);
|
|
324
|
-
}
|
|
325
349
|
if (table !== currentTable || previousFormData !== formData) {
|
|
326
|
-
const
|
|
327
|
-
|
|
328
|
-
|
|
350
|
+
const queryResult = await (0, dataFetcher_1.fetchSqlQuery)({
|
|
351
|
+
...(0, astProcessing_1.createBasicSelectASTFromColumns)(tableInfo.columns, table),
|
|
352
|
+
where: formData,
|
|
353
|
+
}, client, formData);
|
|
354
|
+
if (queryResult.error) {
|
|
355
|
+
throw new Error(queryResult.error);
|
|
356
|
+
}
|
|
357
|
+
query = queryResult.query;
|
|
358
|
+
if (!skipUniqueValues) {
|
|
359
|
+
const { uniqueStrings, dateRanges } = await (0, tableProcessing_1.getRelevantInfoFromQuery)(tableInfo.columns, client, queryResult.query, customFields);
|
|
360
|
+
relevantInfo.uniqueStrings[table] = uniqueStrings ?? {};
|
|
361
|
+
relevantInfo.dateRanges = dateRanges ?? {};
|
|
362
|
+
}
|
|
363
|
+
else {
|
|
364
|
+
const dateColumns = tableInfo.columns.filter((column) => {
|
|
365
|
+
return column.fieldType === 'date';
|
|
366
|
+
});
|
|
367
|
+
if (dateColumns.length > 0) {
|
|
368
|
+
const dateRanges = await (0, tableProcessing_1.getDateRangeByColumns)(dateColumns, queryResult.query, client, customFields ?? []);
|
|
369
|
+
if (dateRanges === null) {
|
|
370
|
+
throw new Error("Couldn't fetch date ranges");
|
|
371
|
+
}
|
|
372
|
+
relevantInfo.dateRanges = dateRanges ?? {};
|
|
373
|
+
}
|
|
374
|
+
}
|
|
329
375
|
}
|
|
330
376
|
if (!!relevantInfo.error) {
|
|
331
377
|
throw new Error(relevantInfo.error);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { QuillProviderClient } from '../models/Client';
|
|
2
2
|
import { Table } from '../models/Tables';
|
|
3
|
-
export declare const getCustomFieldInfo: (client:
|
|
4
|
-
export declare const getSchemaInfoWithCustomFields: (client:
|
|
3
|
+
export declare const getCustomFieldInfo: (client: QuillProviderClient, caller?: string) => Promise<any[]>;
|
|
4
|
+
export declare const getSchemaInfoWithCustomFields: (client: QuillProviderClient, caller?: string, tableIds?: string[]) => Promise<{
|
|
5
5
|
schemaData: Table[];
|
|
6
6
|
customFieldsByTable: any;
|
|
7
7
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/utils/schema.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/utils/schema.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAyDzC,eAAO,MAAM,kBAAkB,WACrB,mBAAmB,oCAqF5B,CAAC;AAEF,eAAO,MAAM,6BAA6B,WAChC,mBAAmB,8BAEhB,MAAM,EAAE,KAClB,QAAQ;IAAE,UAAU,EAAE,KAAK,EAAE,CAAC;IAAC,mBAAmB,EAAE,GAAG,CAAA;CAAE,CAoD3D,CAAC"}
|
package/dist/cjs/utils/schema.js
CHANGED
|
@@ -2,32 +2,35 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getSchemaInfoWithCustomFields = exports.getCustomFieldInfo = void 0;
|
|
4
4
|
const columnProcessing_1 = require("./columnProcessing");
|
|
5
|
-
const triggerSoftUpdate = async (
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
};
|
|
5
|
+
// const triggerSoftUpdate = async (
|
|
6
|
+
// client: QuillProviderClient,
|
|
7
|
+
// tables: Table[],
|
|
8
|
+
// ) => {
|
|
9
|
+
// const { queryEndpoint, queryHeaders, publicKey, withCredentials } = client;
|
|
10
|
+
// tables.forEach(async (table: Table) => {
|
|
11
|
+
// // if (table.isSelectStar) {
|
|
12
|
+
// fetch(`${queryEndpoint}?update-view`, {
|
|
13
|
+
// method: 'POST',
|
|
14
|
+
// headers: {
|
|
15
|
+
// ...queryHeaders,
|
|
16
|
+
// 'Content-Type': 'application/json',
|
|
17
|
+
// },
|
|
18
|
+
// credentials: withCredentials ? 'include' : 'omit',
|
|
19
|
+
// body: JSON.stringify({
|
|
20
|
+
// metadata: {
|
|
21
|
+
// preQueries: [table.viewQuery.replace(/;/, '')],
|
|
22
|
+
// clientId: publicKey,
|
|
23
|
+
// publicKey: publicKey,
|
|
24
|
+
// task: 'update-view',
|
|
25
|
+
// name: table.name,
|
|
26
|
+
// id: table._id,
|
|
27
|
+
// runQueryConfig: { getColumns: true },
|
|
28
|
+
// },
|
|
29
|
+
// }),
|
|
30
|
+
// });
|
|
31
|
+
// // }
|
|
32
|
+
// });
|
|
33
|
+
// };
|
|
31
34
|
const parseResponse = (results) => {
|
|
32
35
|
if (results.data?.data) {
|
|
33
36
|
if (results.data.data.queries &&
|
|
@@ -52,7 +55,7 @@ const parseResponse = (results) => {
|
|
|
52
55
|
const getCustomFieldInfo = async (client, caller = 'se') => {
|
|
53
56
|
let customFieldsByTableUnique = [];
|
|
54
57
|
try {
|
|
55
|
-
const { queryEndpoint, queryHeaders, publicKey, databaseType,
|
|
58
|
+
const { queryEndpoint, queryHeaders, publicKey, databaseType, organizationId, } = client;
|
|
56
59
|
if ((databaseType && databaseType.toLowerCase() !== 'postgresql') ||
|
|
57
60
|
!['665610862cf7a3000be66453'].includes(publicKey)) {
|
|
58
61
|
throw new Error('CUSTOM FIELDS IS ONLY ALLOWED FOR POSTGRESQL DATABASES');
|
|
@@ -70,7 +73,7 @@ const getCustomFieldInfo = async (client, caller = 'se') => {
|
|
|
70
73
|
publicKey,
|
|
71
74
|
task: 'custom-field-records',
|
|
72
75
|
databaseType: databaseType,
|
|
73
|
-
orgId:
|
|
76
|
+
orgId: organizationId,
|
|
74
77
|
},
|
|
75
78
|
}),
|
|
76
79
|
});
|
|
@@ -115,11 +118,11 @@ const getCustomFieldInfo = async (client, caller = 'se') => {
|
|
|
115
118
|
return customFieldsByTableUnique;
|
|
116
119
|
};
|
|
117
120
|
exports.getCustomFieldInfo = getCustomFieldInfo;
|
|
118
|
-
const getSchemaInfoWithCustomFields = async (client, caller = 'se') => {
|
|
119
|
-
const { queryEndpoint, queryHeaders, publicKey,
|
|
121
|
+
const getSchemaInfoWithCustomFields = async (client, caller = 'se', tableIds) => {
|
|
122
|
+
const { queryEndpoint, queryHeaders, publicKey, organizationId, withCredentials, } = client;
|
|
120
123
|
let customFieldsByTableUnique = [];
|
|
121
124
|
let getCustomFields = true;
|
|
122
|
-
if (!
|
|
125
|
+
if (!organizationId || organizationId !== '*') {
|
|
123
126
|
try {
|
|
124
127
|
customFieldsByTableUnique = await (0, exports.getCustomFieldInfo)(client, caller);
|
|
125
128
|
}
|
|
@@ -140,12 +143,13 @@ const getSchemaInfoWithCustomFields = async (client, caller = 'se') => {
|
|
|
140
143
|
publicKey: publicKey,
|
|
141
144
|
task: 'schema',
|
|
142
145
|
removeCustomerField: true,
|
|
143
|
-
getCustomFields: !client.
|
|
144
|
-
client.
|
|
146
|
+
getCustomFields: !client.organizationId ||
|
|
147
|
+
client.organizationId === '*' ||
|
|
145
148
|
(customFieldsByTableUnique.length === 0 && !getCustomFields)
|
|
146
149
|
? false
|
|
147
150
|
: true,
|
|
148
|
-
orgId: client.
|
|
151
|
+
orgId: client.organizationId || '*',
|
|
152
|
+
tableIds,
|
|
149
153
|
customFieldsByTable: customFieldsByTableUnique,
|
|
150
154
|
gatherSchemaData: '665610862cf7a3000be66453' === publicKey ? true : false,
|
|
151
155
|
},
|
|
@@ -154,7 +158,7 @@ const getSchemaInfoWithCustomFields = async (client, caller = 'se') => {
|
|
|
154
158
|
const result = await response.json();
|
|
155
159
|
const parsedData = parseResponse(result);
|
|
156
160
|
const converted = convertSchemaInfoToTable(parsedData);
|
|
157
|
-
triggerSoftUpdate(client, converted);
|
|
161
|
+
// triggerSoftUpdate(client, converted);
|
|
158
162
|
return {
|
|
159
163
|
schemaData: converted,
|
|
160
164
|
customFieldsByTable: customFieldsByTableUnique,
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { NodeSQLParser } from '../components/ReportBuilder/ast';
|
|
2
|
-
import {
|
|
2
|
+
import { QuillProviderClient } from '../models/Client';
|
|
3
3
|
import { Column, ColumnInternal } from '../models/Columns';
|
|
4
|
+
import { DashboardFilter } from '../models/Filter';
|
|
4
5
|
import { Pagination } from '../models/Pagination';
|
|
5
6
|
import { DateRangesByColumn, UniqueValuesByColumn } from '../models/Tables';
|
|
6
7
|
export interface AdditionalProcessing {
|
|
@@ -9,22 +10,25 @@ export interface AdditionalProcessing {
|
|
|
9
10
|
direction: string;
|
|
10
11
|
};
|
|
11
12
|
page?: Pagination;
|
|
12
|
-
last?:
|
|
13
|
+
last?: number;
|
|
13
14
|
}
|
|
14
15
|
export declare const hasColumnAlias: (columns: Column[], referencedColumns: string[]) => boolean;
|
|
15
|
-
export declare const getUniqueValuesByColumns: (columns: Column[], query: string, rows: any, client:
|
|
16
|
+
export declare const getUniqueValuesByColumns: (columns: Column[], query: string, rows: any, client: QuillProviderClient, customFields: any[]) => Promise<{
|
|
16
17
|
[column: string]: {
|
|
17
18
|
[value: string]: boolean;
|
|
18
19
|
};
|
|
19
20
|
} | null>;
|
|
20
|
-
export declare const getUniqueStringValues: (columns: ColumnInternal[], tableName: string, client: any, customFields?: any, previousUniqueValues?: any) => Promise<any>;
|
|
21
|
-
export declare const getRelevantInfoFromQuery: (columns: ColumnInternal[], client:
|
|
21
|
+
export declare const getUniqueStringValues: (columns: ColumnInternal[], tableName: string, client: any, customFields?: any, previousUniqueValues?: any, withExceededColumns?: boolean, query?: string) => Promise<any>;
|
|
22
|
+
export declare const getRelevantInfoFromQuery: (columns: ColumnInternal[], client: QuillProviderClient, query: string, customFields?: any) => Promise<{
|
|
22
23
|
uniqueStrings?: UniqueValuesByColumn | undefined;
|
|
23
24
|
dateRanges?: DateRangesByColumn | undefined;
|
|
24
25
|
error?: string | undefined;
|
|
25
26
|
}>;
|
|
26
|
-
export declare const getCountsByColumns: (columns: Column[], query: string, client:
|
|
27
|
-
|
|
27
|
+
export declare const getCountsByColumns: (columns: Column[], query: string, client: QuillProviderClient, customFields: any[]) => Promise<{
|
|
28
|
+
filteredColumns: Column[];
|
|
29
|
+
exceededColumns: Column[] | undefined;
|
|
30
|
+
}>;
|
|
31
|
+
export declare const getDateRangeByColumns: (columns: Column[], query: string, client: QuillProviderClient, customFields: any[]) => Promise<{
|
|
28
32
|
[column: string]: {
|
|
29
33
|
dateRange: {
|
|
30
34
|
start: Date;
|
|
@@ -32,26 +36,29 @@ export declare const getDateRangeByColumns: (columns: Column[], query: string, c
|
|
|
32
36
|
};
|
|
33
37
|
};
|
|
34
38
|
} | null>;
|
|
35
|
-
export declare const getPaginatedRows: (client:
|
|
39
|
+
export declare const getPaginatedRows: (client: QuillProviderClient, query?: string, reportId?: string, processing?: AdditionalProcessing, filters?: any, customFields?: any) => Promise<{
|
|
36
40
|
columns: Column[];
|
|
37
41
|
rows: any[];
|
|
38
42
|
rowCount?: number;
|
|
39
43
|
error?: string;
|
|
40
44
|
}>;
|
|
41
|
-
export declare const
|
|
45
|
+
export declare const fetchResultsByQuery: (query: string, client: QuillProviderClient, processing?: AdditionalProcessing, customFields?: any, filters?: DashboardFilter[], dateField?: {
|
|
46
|
+
field: string;
|
|
47
|
+
table: string;
|
|
48
|
+
} | null, rowsOnly?: boolean, rowCountOnly?: boolean) => Promise<{
|
|
42
49
|
columns: ColumnInternal[];
|
|
43
50
|
rows: any[];
|
|
44
51
|
rowCount?: number | undefined;
|
|
45
52
|
error?: string | undefined;
|
|
46
53
|
itemQuery?: string[] | undefined;
|
|
47
54
|
}>;
|
|
48
|
-
export declare const
|
|
55
|
+
export declare const fetchResultsByReport: (reportId: string, client: QuillProviderClient, processing?: AdditionalProcessing, filters?: any, customFields?: any, rowsOnly?: boolean, rowCountOnly?: boolean) => Promise<{
|
|
49
56
|
columns: Column[];
|
|
50
57
|
rows: any[];
|
|
51
58
|
rowCount?: number | undefined;
|
|
52
59
|
error?: string | undefined;
|
|
53
60
|
}>;
|
|
54
|
-
export declare const fetchTableByAST: (ast: NodeSQLParser.Select, client:
|
|
61
|
+
export declare const fetchTableByAST: (ast: NodeSQLParser.Select, client: QuillProviderClient, processing?: AdditionalProcessing, customFields?: any, rowsOnly?: boolean, rowCountOnly?: boolean) => Promise<{
|
|
55
62
|
columns: ColumnInternal[];
|
|
56
63
|
rows: any[];
|
|
57
64
|
rowCount?: number | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tableProcessing.d.ts","sourceRoot":"","sources":["../../../src/utils/tableProcessing.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,aAAa,EACd,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"tableProcessing.d.ts","sourceRoot":"","sources":["../../../src/utils/tableProcessing.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,aAAa,EACd,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAgB5E,MAAM,WAAW,oBAAoB;IACnC,IAAI,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5C,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,cAAc,YAChB,MAAM,EAAE,qBACE,MAAM,EAAE,KAC1B,OAUF,CAAC;AAEF,eAAO,MAAM,wBAAwB,YAC1B,MAAM,EAAE,SACV,MAAM,QACP,GAAG,UACD,mBAAmB,gBACb,GAAG,EAAE;;;;SAmEpB,CAAC;AAEF,eAAO,MAAM,qBAAqB,YACvB,cAAc,EAAE,aACd,MAAM,UACT,GAAG,iBACI,GAAG,yBACK,GAAG,wBACJ,OAAO,UACrB,MAAM,iBA2Cf,CAAC;AAEF,eAAO,MAAM,wBAAwB,YAC1B,cAAc,EAAE,UACjB,mBAAmB,SACpB,MAAM,iBACE,GAAG;;;;EA6DnB,CAAC;AAEF,eAAO,MAAM,kBAAkB,YACpB,MAAM,EAAE,SACV,MAAM,UACL,mBAAmB,gBACb,GAAG,EAAE,KAClB,QAAQ;IACT,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,eAAe,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;CACvC,CAiDA,CAAC;AAkDF,eAAO,MAAM,qBAAqB,YACvB,MAAM,EAAE,SACV,MAAM,UACL,mBAAmB,gBACb,GAAG,EAAE;;mBAEY;YAAE,KAAK,EAAE,IAAI,CAAC;YAAC,GAAG,EAAE,IAAI,CAAA;SAAE;;SAiB1D,CAAC;AA2DF,eAAO,MAAM,gBAAgB,WACnB,mBAAmB,UACnB,MAAM,aACH,MAAM,eACJ,oBAAoB,YACvB,GAAG,iBACE,GAAG,KACjB,QAAQ;IACT,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAaA,CAAC;AAEF,eAAO,MAAM,mBAAmB,UACvB,MAAM,UACL,mBAAmB,eACd,oBAAoB,iBAClB,GAAG,YACR,eAAe,EAAE,cACf;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,aACxC,OAAO,iBACH,OAAO;aAEb,cAAc,EAAE;UACnB,GAAG,EAAE;;;;EA2DZ,CAAC;AAEF,eAAO,MAAM,oBAAoB,aACrB,MAAM,UACR,mBAAmB,eACd,oBAAoB,YACvB,GAAG,iBACE,GAAG,aACP,OAAO,iBACH,OAAO;aAEb,MAAM,EAAE;UACX,GAAG,EAAE;;;EAkFZ,CAAC;AAEF,eAAO,MAAM,eAAe,QACrB,cAAc,MAAM,UACjB,mBAAmB,eACd,oBAAoB,iBAClB,GAAG,aACP,OAAO,iBACH,OAAO;aAEb,cAAc,EAAE;UACnB,GAAG,EAAE;;;;EAyDZ,CAAC;AAEF,eAAO,MAAM,+CAA+C,0BACnC,oBAAoB;;CAU5C,CAAC"}
|