@quillsql/react 2.12.39 → 2.12.41
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.js +1 -1
- package/dist/cjs/ChartBuilder.d.ts +1 -1
- package/dist/cjs/ChartBuilder.d.ts.map +1 -1
- package/dist/cjs/ChartBuilder.js +6 -6
- package/dist/cjs/Dashboard.d.ts +35 -3
- package/dist/cjs/Dashboard.d.ts.map +1 -1
- package/dist/cjs/Dashboard.js +72 -74
- package/dist/cjs/ReportBuilder.d.ts +1 -1
- package/dist/cjs/ReportBuilder.d.ts.map +1 -1
- package/dist/cjs/ReportBuilder.js +111 -1588
- package/dist/cjs/components/Chart/BarChart.d.ts.map +1 -1
- package/dist/cjs/components/Chart/BarChart.js +0 -9
- package/dist/cjs/components/Chart/LineChart.d.ts.map +1 -1
- package/dist/cjs/components/Chart/LineChart.js +1 -11
- package/dist/cjs/components/Dashboard/ChartComponent.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/ChartComponent.js +1 -0
- package/dist/cjs/components/Dashboard/DashboardTemplate.d.ts +12 -0
- package/dist/cjs/components/Dashboard/DashboardTemplate.d.ts.map +1 -0
- package/dist/cjs/components/Dashboard/DashboardTemplate.js +69 -0
- package/dist/cjs/components/Dashboard/DataLoader.js +1 -1
- package/dist/cjs/components/Dashboard/TemplateChartComponent.d.ts +4 -0
- package/dist/cjs/components/Dashboard/TemplateChartComponent.d.ts.map +1 -0
- package/dist/cjs/components/Dashboard/TemplateChartComponent.js +23 -0
- package/dist/cjs/components/Dashboard/TemplateMetricComponent.d.ts +4 -0
- package/dist/cjs/components/Dashboard/TemplateMetricComponent.d.ts.map +1 -0
- package/dist/cjs/components/Dashboard/TemplateMetricComponent.js +23 -0
- package/dist/cjs/components/Dashboard/TemplateTableComponent.d.ts +15 -0
- package/dist/cjs/components/Dashboard/TemplateTableComponent.d.ts.map +1 -0
- package/dist/cjs/components/Dashboard/TemplateTableComponent.js +23 -0
- package/dist/cjs/components/Dashboard/util.d.ts +6 -0
- package/dist/cjs/components/Dashboard/util.d.ts.map +1 -0
- package/dist/cjs/components/Dashboard/util.js +85 -0
- package/dist/cjs/components/ReportBuilder/FilterModal.js +32 -32
- package/dist/cjs/components/ReportBuilder/convert.d.ts +5 -31
- package/dist/cjs/components/ReportBuilder/convert.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/convert.js +1 -1
- package/dist/cjs/components/UiComponents.d.ts +1 -23
- package/dist/cjs/components/UiComponents.d.ts.map +1 -1
- package/dist/cjs/components/UiComponents.js +67 -25
- package/dist/cjs/hooks/useAskQuill.d.ts +27 -0
- package/dist/cjs/hooks/useAskQuill.d.ts.map +1 -0
- package/dist/cjs/hooks/useAskQuill.js +177 -0
- package/dist/cjs/hooks/useDashboard.d.ts.map +1 -1
- package/dist/cjs/hooks/useDashboard.js +7 -5
- package/dist/cjs/index.d.ts +1 -0
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +3 -1
- package/dist/cjs/internals/ReportBuilder/PivotForm.d.ts +3 -3
- package/dist/cjs/internals/ReportBuilder/PivotForm.d.ts.map +1 -1
- package/dist/cjs/internals/ReportBuilder/PivotForm.js +4 -2
- package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts +1 -15
- package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
- package/dist/cjs/internals/ReportBuilder/PivotModal.js +24 -24
- package/dist/cjs/models/Filter.d.ts +25 -19
- package/dist/cjs/models/Filter.d.ts.map +1 -1
- package/dist/cjs/models/Filter.js +2 -2
- package/dist/cjs/{components/ReportBuilder/pivot.d.ts → models/Pivot.d.ts} +13 -4
- package/dist/cjs/models/Pivot.d.ts.map +1 -0
- package/dist/cjs/models/Report.d.ts +5 -1
- package/dist/cjs/models/Report.d.ts.map +1 -1
- package/dist/cjs/models/Tables.d.ts +16 -0
- package/dist/cjs/models/Tables.d.ts.map +1 -1
- package/dist/cjs/utils/astFilterProcessing.js +27 -27
- package/dist/cjs/utils/astProcessing.d.ts +42 -0
- package/dist/cjs/utils/astProcessing.d.ts.map +1 -1
- package/dist/cjs/utils/astProcessing.js +210 -1
- package/dist/cjs/utils/constants.d.ts +1 -0
- package/dist/cjs/utils/constants.d.ts.map +1 -1
- package/dist/cjs/utils/constants.js +2 -1
- package/dist/cjs/utils/dashboard.d.ts.map +1 -1
- package/dist/cjs/utils/dashboard.js +2 -0
- package/dist/cjs/utils/dataFetcher.d.ts +4 -0
- package/dist/cjs/utils/dataFetcher.d.ts.map +1 -1
- package/dist/cjs/utils/dataFetcher.js +24 -1
- package/dist/cjs/utils/dates.d.ts +1 -1
- package/dist/cjs/utils/filterProcessing.d.ts +2 -2
- package/dist/cjs/utils/filterProcessing.d.ts.map +1 -1
- package/dist/cjs/utils/filterProcessing.js +6 -6
- package/dist/cjs/utils/pivotConstructor.d.ts +1 -1
- package/dist/cjs/utils/pivotConstructor.d.ts.map +1 -1
- package/dist/cjs/utils/pivotConstructor.js +7 -4
- package/dist/cjs/utils/pivotProcessing.d.ts +4 -4
- package/dist/cjs/utils/pivotProcessing.d.ts.map +1 -1
- package/dist/cjs/utils/pivotProcessing.js +21 -2
- package/dist/cjs/utils/queryConstructor.d.ts +1 -1
- package/dist/cjs/utils/queryConstructor.d.ts.map +1 -1
- package/dist/cjs/utils/queryConstructor.js +3 -3
- package/dist/cjs/utils/report.d.ts +25 -0
- package/dist/cjs/utils/report.d.ts.map +1 -1
- package/dist/cjs/utils/report.js +114 -2
- package/dist/cjs/utils/schema.d.ts.map +1 -1
- package/dist/cjs/utils/schema.js +1 -1
- package/dist/cjs/utils/tableProcessing.d.ts +18 -0
- package/dist/cjs/utils/tableProcessing.d.ts.map +1 -1
- package/dist/cjs/utils/tableProcessing.js +94 -1
- package/dist/esm/Chart.js +1 -1
- package/dist/esm/ChartBuilder.d.ts +1 -1
- package/dist/esm/ChartBuilder.d.ts.map +1 -1
- package/dist/esm/ChartBuilder.js +6 -6
- package/dist/esm/Dashboard.d.ts +35 -3
- package/dist/esm/Dashboard.d.ts.map +1 -1
- package/dist/esm/Dashboard.js +73 -75
- package/dist/esm/ReportBuilder.d.ts +1 -1
- package/dist/esm/ReportBuilder.d.ts.map +1 -1
- package/dist/esm/ReportBuilder.js +121 -1598
- package/dist/esm/components/Chart/BarChart.d.ts.map +1 -1
- package/dist/esm/components/Chart/BarChart.js +0 -9
- package/dist/esm/components/Chart/LineChart.d.ts.map +1 -1
- package/dist/esm/components/Chart/LineChart.js +1 -11
- package/dist/esm/components/Dashboard/ChartComponent.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/ChartComponent.js +1 -0
- package/dist/esm/components/Dashboard/DashboardTemplate.d.ts +12 -0
- package/dist/esm/components/Dashboard/DashboardTemplate.d.ts.map +1 -0
- package/dist/esm/components/Dashboard/DashboardTemplate.js +63 -0
- package/dist/esm/components/Dashboard/DataLoader.js +1 -1
- package/dist/esm/components/Dashboard/TemplateChartComponent.d.ts +4 -0
- package/dist/esm/components/Dashboard/TemplateChartComponent.d.ts.map +1 -0
- package/dist/esm/components/Dashboard/TemplateChartComponent.js +17 -0
- package/dist/esm/components/Dashboard/TemplateMetricComponent.d.ts +4 -0
- package/dist/esm/components/Dashboard/TemplateMetricComponent.d.ts.map +1 -0
- package/dist/esm/components/Dashboard/TemplateMetricComponent.js +17 -0
- package/dist/esm/components/Dashboard/TemplateTableComponent.d.ts +15 -0
- package/dist/esm/components/Dashboard/TemplateTableComponent.d.ts.map +1 -0
- package/dist/esm/components/Dashboard/TemplateTableComponent.js +17 -0
- package/dist/esm/components/Dashboard/util.d.ts +6 -0
- package/dist/esm/components/Dashboard/util.d.ts.map +1 -0
- package/dist/esm/components/Dashboard/util.js +80 -0
- package/dist/esm/components/ReportBuilder/FilterModal.js +32 -32
- package/dist/esm/components/ReportBuilder/convert.d.ts +5 -31
- package/dist/esm/components/ReportBuilder/convert.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/convert.js +1 -1
- package/dist/esm/components/UiComponents.d.ts +1 -23
- package/dist/esm/components/UiComponents.d.ts.map +1 -1
- package/dist/esm/components/UiComponents.js +65 -23
- package/dist/esm/hooks/useAskQuill.d.ts +27 -0
- package/dist/esm/hooks/useAskQuill.d.ts.map +1 -0
- package/dist/esm/hooks/useAskQuill.js +173 -0
- package/dist/esm/hooks/useDashboard.d.ts.map +1 -1
- package/dist/esm/hooks/useDashboard.js +7 -5
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +1 -0
- package/dist/esm/internals/ReportBuilder/PivotForm.d.ts +3 -3
- package/dist/esm/internals/ReportBuilder/PivotForm.d.ts.map +1 -1
- package/dist/esm/internals/ReportBuilder/PivotForm.js +4 -2
- package/dist/esm/internals/ReportBuilder/PivotModal.d.ts +1 -15
- package/dist/esm/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
- package/dist/esm/internals/ReportBuilder/PivotModal.js +24 -24
- package/dist/esm/models/Filter.d.ts +25 -19
- package/dist/esm/models/Filter.d.ts.map +1 -1
- package/dist/esm/models/Filter.js +2 -2
- package/dist/esm/{components/ReportBuilder/pivot.d.ts → models/Pivot.d.ts} +13 -4
- package/dist/esm/models/Pivot.d.ts.map +1 -0
- package/dist/esm/models/Report.d.ts +5 -1
- package/dist/esm/models/Report.d.ts.map +1 -1
- package/dist/esm/models/Tables.d.ts +16 -0
- package/dist/esm/models/Tables.d.ts.map +1 -1
- package/dist/esm/utils/astFilterProcessing.js +27 -27
- package/dist/esm/utils/astProcessing.d.ts +42 -0
- package/dist/esm/utils/astProcessing.d.ts.map +1 -1
- package/dist/esm/utils/astProcessing.js +204 -0
- package/dist/esm/utils/constants.d.ts +1 -0
- package/dist/esm/utils/constants.d.ts.map +1 -1
- package/dist/esm/utils/constants.js +1 -0
- package/dist/esm/utils/dashboard.d.ts.map +1 -1
- package/dist/esm/utils/dashboard.js +2 -0
- package/dist/esm/utils/dataFetcher.d.ts +4 -0
- package/dist/esm/utils/dataFetcher.d.ts.map +1 -1
- package/dist/esm/utils/dataFetcher.js +22 -0
- package/dist/esm/utils/dates.d.ts +1 -1
- package/dist/esm/utils/filterProcessing.d.ts +2 -2
- package/dist/esm/utils/filterProcessing.d.ts.map +1 -1
- package/dist/esm/utils/filterProcessing.js +7 -7
- package/dist/esm/utils/pivotConstructor.d.ts +1 -1
- package/dist/esm/utils/pivotConstructor.d.ts.map +1 -1
- package/dist/esm/utils/pivotConstructor.js +7 -4
- package/dist/esm/utils/pivotProcessing.d.ts +4 -4
- package/dist/esm/utils/pivotProcessing.d.ts.map +1 -1
- package/dist/esm/utils/pivotProcessing.js +19 -1
- package/dist/esm/utils/queryConstructor.d.ts +1 -1
- package/dist/esm/utils/queryConstructor.d.ts.map +1 -1
- package/dist/esm/utils/queryConstructor.js +3 -3
- package/dist/esm/utils/report.d.ts +25 -0
- package/dist/esm/utils/report.d.ts.map +1 -1
- package/dist/esm/utils/report.js +114 -3
- package/dist/esm/utils/schema.d.ts.map +1 -1
- package/dist/esm/utils/schema.js +1 -1
- package/dist/esm/utils/tableProcessing.d.ts +18 -0
- package/dist/esm/utils/tableProcessing.d.ts.map +1 -1
- package/dist/esm/utils/tableProcessing.js +91 -1
- package/package.json +1 -1
- package/dist/cjs/components/ReportBuilder/pivot.d.ts.map +0 -1
- package/dist/cjs/models/Pivots.d.ts +0 -2
- package/dist/cjs/models/Pivots.d.ts.map +0 -1
- package/dist/cjs/models/Pivots.js +0 -2
- package/dist/esm/components/ReportBuilder/pivot.d.ts.map +0 -1
- package/dist/esm/models/Pivots.d.ts +0 -2
- package/dist/esm/models/Pivots.d.ts.map +0 -1
- package/dist/esm/models/Pivots.js +0 -1
- /package/dist/cjs/{components/ReportBuilder/pivot.js → models/Pivot.js} +0 -0
- /package/dist/esm/{components/ReportBuilder/pivot.js → models/Pivot.js} +0 -0
|
@@ -204,7 +204,7 @@ export const PivotModal = ({ pivotRowField, setPivotRowField, pivotColumnField,
|
|
|
204
204
|
setIsOpen(false);
|
|
205
205
|
};
|
|
206
206
|
const onSelectCreatedPivot = (pivot) => {
|
|
207
|
-
selectPivot(pivot, pivot.columnField ? uniqueValues : undefined, dateRanges[pivot.rowField]?.dateRange, samplePivotTable);
|
|
207
|
+
selectPivot(pivot, pivot.columnField ? uniqueValues : undefined, dateRanges[pivot.rowField || '']?.dateRange, samplePivotTable);
|
|
208
208
|
setSelectedPivotType('created');
|
|
209
209
|
setIsOpen(false);
|
|
210
210
|
setPopUpTitle('Add pivot');
|
|
@@ -283,7 +283,7 @@ export const PivotModal = ({ pivotRowField, setPivotRowField, pivotColumnField,
|
|
|
283
283
|
}
|
|
284
284
|
return {
|
|
285
285
|
...pivot,
|
|
286
|
-
rowFieldType: columnsToShow[pivot.rowField],
|
|
286
|
+
rowFieldType: columnsToShow[pivot.rowField || ''],
|
|
287
287
|
columnFieldType: pivot.columnField
|
|
288
288
|
? columnsToShow[pivot.columnField]
|
|
289
289
|
: undefined,
|
|
@@ -802,7 +802,7 @@ export function generatePivotTableInMemory(pivot, data, dateRange, isComparison,
|
|
|
802
802
|
// Handle edge-case for BigQuery objects.
|
|
803
803
|
data = fixBigQueryData(data);
|
|
804
804
|
if (!dateRange) {
|
|
805
|
-
if (isDateField(pivot.rowFieldType)) {
|
|
805
|
+
if (isDateField(pivot.rowFieldType || '')) {
|
|
806
806
|
dateRange = getDateRange(dateRange, pivot.rowField, data);
|
|
807
807
|
}
|
|
808
808
|
}
|
|
@@ -812,9 +812,9 @@ export function generatePivotTableInMemory(pivot, data, dateRange, isComparison,
|
|
|
812
812
|
compRange = undefined;
|
|
813
813
|
}
|
|
814
814
|
const pivotRows = [];
|
|
815
|
-
const uniqueRows = (isDateField(pivot.rowFieldType)
|
|
815
|
+
const uniqueRows = (isDateField(pivot.rowFieldType || '')
|
|
816
816
|
? getDateBuckets(dateRange, pivot.rowField, data, dateBucket)
|
|
817
|
-
: [...new Set(data.map((item) => item[pivot.rowField]))]).filter((row) => Boolean(row));
|
|
817
|
+
: [...new Set(data.map((item) => item[pivot.rowField || '']))]).filter((row) => Boolean(row));
|
|
818
818
|
const rowDateRange = getDateRange(dateRange, pivot.rowField, data);
|
|
819
819
|
const compRowDateRange = getDateRange(compRange ?? dateRange, pivot.rowField, data);
|
|
820
820
|
// If columnField is not provided, we will not be using uniqueColumns
|
|
@@ -834,7 +834,7 @@ export function generatePivotTableInMemory(pivot, data, dateRange, isComparison,
|
|
|
834
834
|
const col = pivot.columnField;
|
|
835
835
|
const row = pivot.rowField;
|
|
836
836
|
const isDateCol = isDateField(pivot.columnFieldType || '');
|
|
837
|
-
const isDateRow = isDateField(pivot.rowFieldType);
|
|
837
|
+
const isDateRow = isDateField(pivot.rowFieldType || '');
|
|
838
838
|
data.forEach((item) => {
|
|
839
839
|
if (isDateCol) {
|
|
840
840
|
const key = getDateString(item[col], dateRange);
|
|
@@ -854,9 +854,9 @@ export function generatePivotTableInMemory(pivot, data, dateRange, isComparison,
|
|
|
854
854
|
uniqueColumns.push(`comparison_${primaryKey}`);
|
|
855
855
|
}
|
|
856
856
|
}
|
|
857
|
-
compUniqueRows = (isDateField(pivot.rowFieldType)
|
|
857
|
+
compUniqueRows = (isDateField(pivot.rowFieldType || '')
|
|
858
858
|
? getCompDateBuckets(dateRange, compRange ?? dateRange, pivot.rowField, data)
|
|
859
|
-
: [...new Set(data.map((item) => item[pivot.rowField]))]).filter((row) => Boolean(row));
|
|
859
|
+
: [...new Set(data.map((item) => item[pivot.rowField || '']))]).filter((row) => Boolean(row));
|
|
860
860
|
}
|
|
861
861
|
// Special corner case for count with only rowField pivot
|
|
862
862
|
if (!pivot.valueField &&
|
|
@@ -872,7 +872,7 @@ export function generatePivotTableInMemory(pivot, data, dateRange, isComparison,
|
|
|
872
872
|
: uniqueRows;
|
|
873
873
|
rowsToGenerate.forEach((rowValue, rowIndex) => {
|
|
874
874
|
const row = {
|
|
875
|
-
[pivot.rowField]: isDateField(pivot.rowFieldType)
|
|
875
|
+
[pivot.rowField || '']: isDateField(pivot.rowFieldType || '')
|
|
876
876
|
? getDateString(rowValue, dateRange, dateBucket)
|
|
877
877
|
: rowValue === null
|
|
878
878
|
? 'Null'
|
|
@@ -887,12 +887,12 @@ export function generatePivotTableInMemory(pivot, data, dateRange, isComparison,
|
|
|
887
887
|
let filteredData = [];
|
|
888
888
|
let comparisonValue;
|
|
889
889
|
let value;
|
|
890
|
-
const nextRowValue = isDateField(pivot.rowFieldType)
|
|
890
|
+
const nextRowValue = isDateField(pivot.rowFieldType || '')
|
|
891
891
|
? // @ts-ignore
|
|
892
892
|
uniqueRows[rowIndex + 1] ?? endOfDay(rowDateRange.end)
|
|
893
893
|
: null;
|
|
894
894
|
const compRowValue = compUniqueRows[rowIndex];
|
|
895
|
-
const compNextRowValue = isDateField(pivot.rowFieldType)
|
|
895
|
+
const compNextRowValue = isDateField(pivot.rowFieldType || '')
|
|
896
896
|
? compUniqueRows[rowIndex + 1] ?? endOfDay(compRowDateRange.end)
|
|
897
897
|
: null;
|
|
898
898
|
if (pivot.columnField) {
|
|
@@ -902,9 +902,9 @@ export function generatePivotTableInMemory(pivot, data, dateRange, isComparison,
|
|
|
902
902
|
: null;
|
|
903
903
|
// If columnField is provided, filter by both rowField and columnField
|
|
904
904
|
if (isDateField(pivot.columnFieldType || '') &&
|
|
905
|
-
isDateField(pivot.rowFieldType)) {
|
|
905
|
+
isDateField(pivot.rowFieldType || '')) {
|
|
906
906
|
filteredData = data.filter((item) => {
|
|
907
|
-
return (isWithinInterval(new Date(item[pivot.rowField]), {
|
|
907
|
+
return (isWithinInterval(new Date(item[pivot.rowField || '']), {
|
|
908
908
|
start: rowValue,
|
|
909
909
|
end: subMilliseconds(nextRowValue, 1),
|
|
910
910
|
}) &&
|
|
@@ -915,7 +915,7 @@ export function generatePivotTableInMemory(pivot, data, dateRange, isComparison,
|
|
|
915
915
|
});
|
|
916
916
|
if (isComparison) {
|
|
917
917
|
comparisonFilteredData = data.filter((item) => {
|
|
918
|
-
return (isWithinInterval(new Date(item[pivot.rowField]), {
|
|
918
|
+
return (isWithinInterval(new Date(item[pivot.rowField || '']), {
|
|
919
919
|
start: rowValue,
|
|
920
920
|
end: subMilliseconds(nextRowValue, 1),
|
|
921
921
|
}) &&
|
|
@@ -927,9 +927,9 @@ export function generatePivotTableInMemory(pivot, data, dateRange, isComparison,
|
|
|
927
927
|
}
|
|
928
928
|
}
|
|
929
929
|
else if (isDateField(pivot.columnFieldType || '') &&
|
|
930
|
-
!isDateField(pivot.rowFieldType)) {
|
|
930
|
+
!isDateField(pivot.rowFieldType || '')) {
|
|
931
931
|
filteredData = data.filter((item) => {
|
|
932
|
-
return (item[pivot.rowField] === rowValue &&
|
|
932
|
+
return (item[pivot.rowField || ''] === rowValue &&
|
|
933
933
|
isWithinInterval(new Date(item[pivot.columnField]), {
|
|
934
934
|
start: colValue,
|
|
935
935
|
end: subMilliseconds(nextColumnValue, 1),
|
|
@@ -946,16 +946,16 @@ export function generatePivotTableInMemory(pivot, data, dateRange, isComparison,
|
|
|
946
946
|
}
|
|
947
947
|
}
|
|
948
948
|
else if (!isDateField(pivot.columnFieldType || '') &&
|
|
949
|
-
isDateField(pivot.rowFieldType)) {
|
|
949
|
+
isDateField(pivot.rowFieldType || '')) {
|
|
950
950
|
filteredData = data.filter((item) => {
|
|
951
|
-
return (isWithinInterval(new Date(item[pivot.rowField]), {
|
|
951
|
+
return (isWithinInterval(new Date(item[pivot.rowField || '']), {
|
|
952
952
|
start: rowValue,
|
|
953
953
|
end: subMilliseconds(nextRowValue, 1),
|
|
954
954
|
}) && item[pivot.columnField || ''] === colValue);
|
|
955
955
|
});
|
|
956
956
|
if (isComparison) {
|
|
957
957
|
comparisonFilteredData = data.filter((item) => {
|
|
958
|
-
return (isWithinInterval(new Date(item[pivot.rowField]), {
|
|
958
|
+
return (isWithinInterval(new Date(item[pivot.rowField || '']), {
|
|
959
959
|
start: rowValue,
|
|
960
960
|
end: subMilliseconds(nextRowValue, 1),
|
|
961
961
|
}) &&
|
|
@@ -965,7 +965,7 @@ export function generatePivotTableInMemory(pivot, data, dateRange, isComparison,
|
|
|
965
965
|
}
|
|
966
966
|
else {
|
|
967
967
|
filteredData = data.filter((item) => {
|
|
968
|
-
return (item[pivot.rowField] === rowValue &&
|
|
968
|
+
return (item[pivot.rowField || ''] === rowValue &&
|
|
969
969
|
item[pivot.columnField || ''] === colValue);
|
|
970
970
|
});
|
|
971
971
|
if (isComparison) {
|
|
@@ -981,7 +981,7 @@ export function generatePivotTableInMemory(pivot, data, dateRange, isComparison,
|
|
|
981
981
|
// so there is no need to filter for comparisonFilteredData here.
|
|
982
982
|
// If columnField is not provided, filter by rowField only
|
|
983
983
|
if (colValue.startsWith('comparison_')) {
|
|
984
|
-
filteredData = isDateField(pivot.rowFieldType)
|
|
984
|
+
filteredData = isDateField(pivot.rowFieldType || '')
|
|
985
985
|
? data.filter((item) => {
|
|
986
986
|
return (compRowValue &&
|
|
987
987
|
isWithinInterval(new Date(item[`comparison_${pivot.rowField}`]), {
|
|
@@ -992,14 +992,14 @@ export function generatePivotTableInMemory(pivot, data, dateRange, isComparison,
|
|
|
992
992
|
: data.filter((item) => item[`comparison_${pivot.rowField}`] === compRowValue);
|
|
993
993
|
}
|
|
994
994
|
else {
|
|
995
|
-
filteredData = isDateField(pivot.rowFieldType)
|
|
995
|
+
filteredData = isDateField(pivot.rowFieldType || '')
|
|
996
996
|
? data.filter((item) => {
|
|
997
|
-
return isWithinInterval(new Date(item[pivot.rowField]), {
|
|
997
|
+
return isWithinInterval(new Date(item[pivot.rowField || '']), {
|
|
998
998
|
start: rowValue,
|
|
999
999
|
end: subMilliseconds(nextRowValue, 1),
|
|
1000
1000
|
});
|
|
1001
1001
|
})
|
|
1002
|
-
: data.filter((item) => item[pivot.rowField] === rowValue);
|
|
1002
|
+
: data.filter((item) => item[pivot.rowField || ''] === rowValue);
|
|
1003
1003
|
}
|
|
1004
1004
|
}
|
|
1005
1005
|
// Aggregation logic remains the same
|
|
@@ -43,7 +43,7 @@ export declare enum TimeUnit {
|
|
|
43
43
|
}
|
|
44
44
|
export declare enum FieldTypes {
|
|
45
45
|
String = "string",
|
|
46
|
-
|
|
46
|
+
Number = "number",
|
|
47
47
|
Date = "date",
|
|
48
48
|
Null = "null",
|
|
49
49
|
Boolean = "boolean"
|
|
@@ -61,58 +61,64 @@ export declare enum FilterNames {
|
|
|
61
61
|
export type Operator = StringOperator | DateOperator | NumberOperator | NullOperator | BoolOperator;
|
|
62
62
|
export type Unit = TimeUnit;
|
|
63
63
|
export interface BaseFilter {
|
|
64
|
-
|
|
65
|
-
|
|
64
|
+
filterType: FilterNames;
|
|
65
|
+
fieldType: FieldTypes;
|
|
66
66
|
operator: Operator;
|
|
67
67
|
field: string;
|
|
68
68
|
value: any;
|
|
69
69
|
table?: string;
|
|
70
70
|
}
|
|
71
71
|
export interface StringFilter extends BaseFilter {
|
|
72
|
-
|
|
73
|
-
|
|
72
|
+
filterType: FilterNames.StringFilter;
|
|
73
|
+
fieldType: FieldTypes.String | FieldTypes.Null;
|
|
74
74
|
value: string;
|
|
75
75
|
}
|
|
76
76
|
export interface StringInFilter extends BaseFilter {
|
|
77
|
-
|
|
78
|
-
|
|
77
|
+
filterType: FilterNames.StringInFilter;
|
|
78
|
+
fieldType: FieldTypes.String;
|
|
79
79
|
value: string[];
|
|
80
80
|
}
|
|
81
81
|
export interface NumericFilter extends BaseFilter {
|
|
82
|
-
|
|
83
|
-
|
|
82
|
+
filterType: FilterNames.NumericFilter;
|
|
83
|
+
fieldType: FieldTypes.Number | FieldTypes.Null;
|
|
84
84
|
value: number;
|
|
85
85
|
}
|
|
86
86
|
export interface DateFilter extends BaseFilter {
|
|
87
|
-
|
|
88
|
-
|
|
87
|
+
filterType: FilterNames.DateFilter;
|
|
88
|
+
fieldType: FieldTypes.Date;
|
|
89
89
|
value: {
|
|
90
90
|
value: number;
|
|
91
91
|
unit: string;
|
|
92
92
|
};
|
|
93
93
|
}
|
|
94
94
|
export interface DateCustomFilter extends BaseFilter {
|
|
95
|
-
|
|
96
|
-
|
|
95
|
+
filterType: FilterNames.DateCustomFilter;
|
|
96
|
+
fieldType: FieldTypes.Date;
|
|
97
97
|
value: {
|
|
98
98
|
startDate: string;
|
|
99
99
|
endDate: string;
|
|
100
100
|
};
|
|
101
101
|
}
|
|
102
102
|
export interface DateComparisonFilter extends BaseFilter {
|
|
103
|
-
|
|
104
|
-
|
|
103
|
+
filterType: FilterNames.DateComparisonFilter;
|
|
104
|
+
fieldType: FieldTypes.Date;
|
|
105
105
|
value: string;
|
|
106
106
|
}
|
|
107
107
|
export interface BooleanFilter extends BaseFilter {
|
|
108
|
-
|
|
109
|
-
|
|
108
|
+
filterType: FilterNames.BooleanFilter;
|
|
109
|
+
fieldType: FieldTypes.Boolean;
|
|
110
110
|
value: boolean;
|
|
111
111
|
}
|
|
112
112
|
export interface NullFilter extends BaseFilter {
|
|
113
|
-
|
|
114
|
-
|
|
113
|
+
filterType: FilterNames.NullFilter;
|
|
114
|
+
fieldType: FieldTypes.Null;
|
|
115
115
|
value: null;
|
|
116
116
|
}
|
|
117
117
|
export type Filter = BaseFilter | StringFilter | StringInFilter | NumericFilter | DateFilter | DateCustomFilter | DateComparisonFilter | BooleanFilter | NullFilter;
|
|
118
|
+
export type FilterInfo = {
|
|
119
|
+
filter?: Filter;
|
|
120
|
+
conditional?: string;
|
|
121
|
+
};
|
|
122
|
+
export type BooleanOperator = 'AND' | 'OR';
|
|
123
|
+
export type Filters = [Filter] | [Filter, BooleanOperator, ...Array<[Filter, BooleanOperator]>, Filter];
|
|
118
124
|
//# sourceMappingURL=Filter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Filter.d.ts","sourceRoot":"","sources":["../../../src/models/Filter.ts"],"names":[],"mappings":"AAmCA,oBAAY,cAAc;IACxB,SAAS,eAAa;IACtB,YAAY,mBAAiB;IAC7B,QAAQ,aAAW;IACnB,EAAE,OAAK;IACP,KAAK,WAAS;CACf;AAED,oBAAY,YAAY;IACtB,MAAM,WAAS;IACf,SAAS,gBAAc;IACvB,aAAa,oBAAkB;IAC/B,YAAY,mBAAiB;IAC7B,OAAO,aAAW;IAClB,UAAU,iBAAe;IACzB,WAAW,iBAAe;IAC1B,QAAQ,cAAY;IACpB,oBAAoB,6BAA2B;IAC/C,iBAAiB,0BAAwB;CAC1C;AAED,oBAAY,cAAc;IACxB,OAAO,aAAW;IAClB,UAAU,iBAAe;IACzB,WAAW,iBAAe;IAC1B,QAAQ,cAAY;IACpB,oBAAoB,6BAA2B;IAC/C,iBAAiB,0BAAwB;CAC1C;AAED,oBAAY,YAAY;IACtB,SAAS,gBAAc;IACvB,MAAM,YAAU;CACjB;AAED,oBAAY,YAAY;IACtB,OAAO,aAAW;IAClB,UAAU,iBAAe;CAC1B;AAED,oBAAY,QAAQ;IAClB,IAAI,SAAO;IACX,OAAO,YAAU;IACjB,KAAK,UAAQ;IACb,IAAI,SAAO;IACX,GAAG,QAAM;IACT,IAAI,SAAO;CACZ;AAED,oBAAY,UAAU;IACpB,MAAM,WAAS;IACf,
|
|
1
|
+
{"version":3,"file":"Filter.d.ts","sourceRoot":"","sources":["../../../src/models/Filter.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,7 +22,7 @@ const MONTH = 'month';
|
|
|
22
22
|
const WEEK = 'week';
|
|
23
23
|
const DAY = 'day';
|
|
24
24
|
const HOUR = 'hour';
|
|
25
|
-
const
|
|
25
|
+
const NUMBER = 'number';
|
|
26
26
|
const STRING = 'string';
|
|
27
27
|
const DATE = 'date';
|
|
28
28
|
const NULL = 'null';
|
|
@@ -80,7 +80,7 @@ export var TimeUnit;
|
|
|
80
80
|
export var FieldTypes;
|
|
81
81
|
(function (FieldTypes) {
|
|
82
82
|
FieldTypes["String"] = "string";
|
|
83
|
-
FieldTypes["
|
|
83
|
+
FieldTypes["Number"] = "number";
|
|
84
84
|
FieldTypes["Date"] = "date";
|
|
85
85
|
FieldTypes["Null"] = "null";
|
|
86
86
|
FieldTypes["Boolean"] = "boolean";
|
|
@@ -8,9 +8,18 @@ export type Pivot = {
|
|
|
8
8
|
rowField?: string;
|
|
9
9
|
rowFieldType?: string;
|
|
10
10
|
columnField?: string;
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
columnFieldType?: string;
|
|
12
|
+
sort?: boolean;
|
|
13
|
+
sortDirection?: 'ASC' | 'DESC';
|
|
13
14
|
sortField?: string;
|
|
14
15
|
sortFieldType?: string;
|
|
15
|
-
|
|
16
|
-
|
|
16
|
+
title?: string;
|
|
17
|
+
triggerButtonText?: string;
|
|
18
|
+
};
|
|
19
|
+
export type PivotInfo = {
|
|
20
|
+
pivot: Pivot;
|
|
21
|
+
possibleRowFields: string[];
|
|
22
|
+
possibleColumnFields: string[];
|
|
23
|
+
possibleValueFields: string[];
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=Pivot.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Pivot.d.ts","sourceRoot":"","sources":["../../../src/models/Pivot.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,KAAK,GAAG;IAClB,eAAe,EAAE,KAAK,GAAG,SAAS,GAAG,KAAK,GAAG,KAAK,GAAG,OAAO,GAAG,KAAK,CAAC;IACrE,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,aAAa,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,KAAK,EAAE,KAAK,CAAC;IACb,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B,mBAAmB,EAAE,MAAM,EAAE,CAAC;CAC/B,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { AxisFormat } from '../Dashboard';
|
|
2
|
-
import { Pivot } from '../internals/ReportBuilder/PivotModal';
|
|
3
2
|
import { Column } from './Columns';
|
|
4
3
|
import { Pagination } from './Pagination';
|
|
4
|
+
import { Pivot } from './Pivot';
|
|
5
5
|
/**
|
|
6
6
|
* ## QuillReport
|
|
7
7
|
* Represents an individual item on a dashboard.
|
|
@@ -93,6 +93,10 @@ export interface QuillReportInternal extends QuillReport {
|
|
|
93
93
|
itemQuery?: string[];
|
|
94
94
|
/** An array of tables referenced by the report used */
|
|
95
95
|
referencedTables?: string[];
|
|
96
|
+
/** An mapping of table to the columns referenced in the table. */
|
|
97
|
+
referencedColumns?: {
|
|
98
|
+
[table: string]: string[];
|
|
99
|
+
};
|
|
96
100
|
/** An error message used for internal purposes */
|
|
97
101
|
error?: string;
|
|
98
102
|
/** An admin error message used for internal purposes */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Report.d.ts","sourceRoot":"","sources":["../../../src/models/Report.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"Report.d.ts","sourceRoot":"","sources":["../../../src/models/Report.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC;;;;;;;;;GASG;AACH,MAAM,WAAW,WAAW;IAC1B,8BAA8B;IAC9B,EAAE,EAAE,MAAM,CAAC;IAEX,8BAA8B;IAC9B,IAAI,EAAE,MAAM,CAAC;IAEb,wDAAwD;IACxD,aAAa,EAAE,MAAM,CAAC;IAEtB,0DAA0D;IAC1D,IAAI,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,EAAE,CAAC;IAElC,0DAA0D;IAC1D,OAAO,EAAE,MAAM,EAAE,CAAC;IAElB,8BAA8B;IAC9B,SAAS,EAAE,MAAM,CAAC;IAElB,uEAAuE;IACvE,SAAS,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAEnD,4CAA4C;IAC5C,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAEpB,8BAA8B;IAC9B,UAAU,EAAE,MAAM,CAAC;IAEnB,gDAAgD;IAChD,UAAU,EAAE,MAAM,CAAC;IAEnB,0CAA0C;IAC1C,WAAW,EAAE,UAAU,CAAC;IAExB;;OAEG;IACH,WAAW,EAAE;QACX,gCAAgC;QAChC,KAAK,EAAE,MAAM,CAAC;QAEd,uCAAuC;QACvC,KAAK,EAAE,MAAM,CAAC;QAEd,4CAA4C;QAC5C,MAAM,EAAE,UAAU,CAAC;KACpB,EAAE,CAAC;IAEJ;;;;;;;;OAQG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,WAAW,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,EAAE,CAAC;IAEzC,6DAA6D;IAC7D,cAAc,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAC;IAGvC,UAAU,CAAC,EAAE,UAAU,CAAC;IAGxB,IAAI,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAG5C,QAAQ,EAAE,MAAM,CAAC;IAGjB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,mBAAoB,SAAQ,WAAW;IACtD,0BAA0B;IAC1B,SAAS,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,EAAE,CAAC;IAExC;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IAExB,uGAAuG;IACvG,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IAErB,uDAAuD;IACvD,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAE5B,kEAAkE;IAClE,iBAAiB,CAAC,EAAE;QAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;KAAE,CAAC;IAElD,kDAAkD;IAClD,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,wDAAwD;IACxD,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,8EAA8E;IAC9E,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB"}
|
|
@@ -5,4 +5,20 @@ export interface YAxisField {
|
|
|
5
5
|
label: string;
|
|
6
6
|
format: string;
|
|
7
7
|
}
|
|
8
|
+
export interface UniqueValuesByColumn {
|
|
9
|
+
[column: string]: {
|
|
10
|
+
[value: string]: boolean;
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
export interface UniqueValuesByTable {
|
|
14
|
+
[table: string]: UniqueValuesByColumn;
|
|
15
|
+
}
|
|
16
|
+
export interface DateRangesByColumn {
|
|
17
|
+
[column: string]: {
|
|
18
|
+
dateRange: {
|
|
19
|
+
start: Date;
|
|
20
|
+
end: Date;
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
}
|
|
8
24
|
//# sourceMappingURL=Tables.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tables.d.ts","sourceRoot":"","sources":["../../../src/models/Tables.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,KAAK;CAAG;AAEzB,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB"}
|
|
1
|
+
{"version":3,"file":"Tables.d.ts","sourceRoot":"","sources":["../../../src/models/Tables.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,KAAK;CAAG;AAEzB,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,oBAAoB;IACnC,CAAC,MAAM,EAAE,MAAM,GAAG;QAAE,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;CAChD;AAED,MAAM,WAAW,mBAAmB;IAClC,CAAC,KAAK,EAAE,MAAM,GAAG,oBAAoB,CAAC;CACvC;AAED,MAAM,WAAW,kBAAkB;IACjC,CAAC,MAAM,EAAE,MAAM,GAAG;QAChB,SAAS,EAAE;YACT,KAAK,EAAE,IAAI,CAAC;YACZ,GAAG,EAAE,IAAI,CAAC;SACX,CAAC;KACH,CAAC;CACH"}
|
|
@@ -60,7 +60,7 @@ const reverseOperatorMap = (operator, fieldType) => {
|
|
|
60
60
|
return (Object.keys(stringOperatorMap).find((key) => stringOperatorMap[key].includes(operator)) ?? null);
|
|
61
61
|
case FieldTypes.Date:
|
|
62
62
|
return (Object.keys(dateOperatorMap).find((key) => dateOperatorMap[key].includes(operator)) ?? null);
|
|
63
|
-
case FieldTypes.
|
|
63
|
+
case FieldTypes.Number:
|
|
64
64
|
return (Object.keys(numberOperatorMap).find((key) => numberOperatorMap[key].includes(operator)) ?? null);
|
|
65
65
|
case FieldTypes.Null:
|
|
66
66
|
return (Object.keys(nullOperatorMap).find((key) => nullOperatorMap[key].includes(operator)) ?? null);
|
|
@@ -116,7 +116,7 @@ function mapOperatorToFilterName(operator, fieldType) {
|
|
|
116
116
|
default:
|
|
117
117
|
return FilterNames.StringFilter;
|
|
118
118
|
}
|
|
119
|
-
case FieldTypes.
|
|
119
|
+
case FieldTypes.Number:
|
|
120
120
|
return FilterNames.NumericFilter;
|
|
121
121
|
case FieldTypes.Null:
|
|
122
122
|
return FilterNames.NullFilter;
|
|
@@ -4292,7 +4292,7 @@ export const astToFilter = (ast, db) => {
|
|
|
4292
4292
|
fieldType = FieldTypes.Null;
|
|
4293
4293
|
break;
|
|
4294
4294
|
case 'number':
|
|
4295
|
-
fieldType = FieldTypes.
|
|
4295
|
+
fieldType = FieldTypes.Number;
|
|
4296
4296
|
break;
|
|
4297
4297
|
case 'single_quote_string':
|
|
4298
4298
|
case 'double_quote_string':
|
|
@@ -4410,32 +4410,32 @@ export const astToFilter = (ast, db) => {
|
|
|
4410
4410
|
case FilterNames.StringFilter:
|
|
4411
4411
|
return {
|
|
4412
4412
|
field: lowerFunctionToField(field, db).replaceAll('%', ''),
|
|
4413
|
-
|
|
4414
|
-
|
|
4413
|
+
filterType: filterName,
|
|
4414
|
+
fieldType: FieldTypes.String,
|
|
4415
4415
|
operator: mappedOperator,
|
|
4416
4416
|
value: lowerFunctionToField(right, db).replaceAll('%', ''),
|
|
4417
4417
|
};
|
|
4418
4418
|
case FilterNames.StringInFilter:
|
|
4419
4419
|
return {
|
|
4420
4420
|
field: lowerFunctionToField(field, db).replaceAll('%', ''),
|
|
4421
|
-
|
|
4422
|
-
|
|
4421
|
+
filterType: filterName,
|
|
4422
|
+
fieldType: FieldTypes.String,
|
|
4423
4423
|
operator: mappedOperator,
|
|
4424
4424
|
value: right.value.map((v) => lowerFunctionToField(v, db).replaceAll('%', '')),
|
|
4425
4425
|
};
|
|
4426
4426
|
case FilterNames.NumericFilter:
|
|
4427
4427
|
return {
|
|
4428
4428
|
field: field,
|
|
4429
|
-
|
|
4430
|
-
|
|
4429
|
+
filterType: filterName,
|
|
4430
|
+
fieldType: FieldTypes.Number,
|
|
4431
4431
|
operator: mappedOperator,
|
|
4432
4432
|
value: Number(right.value),
|
|
4433
4433
|
};
|
|
4434
4434
|
case FilterNames.NullFilter:
|
|
4435
4435
|
return {
|
|
4436
4436
|
field: field,
|
|
4437
|
-
|
|
4438
|
-
|
|
4437
|
+
filterType: filterName,
|
|
4438
|
+
fieldType: FieldTypes.Null,
|
|
4439
4439
|
operator: mappedOperator,
|
|
4440
4440
|
value: null,
|
|
4441
4441
|
};
|
|
@@ -4448,13 +4448,13 @@ export const astToFilter = (ast, db) => {
|
|
|
4448
4448
|
}
|
|
4449
4449
|
return {
|
|
4450
4450
|
field: field,
|
|
4451
|
-
|
|
4452
|
-
|
|
4451
|
+
filterType: filterName,
|
|
4452
|
+
fieldType: FieldTypes.Date,
|
|
4453
4453
|
operator: DateOperator.Custom,
|
|
4454
4454
|
value: values,
|
|
4455
4455
|
};
|
|
4456
4456
|
case FilterNames.DateComparisonFilter:
|
|
4457
|
-
const numericDateComparison = reverseOperatorMap(operator, FieldTypes.
|
|
4457
|
+
const numericDateComparison = reverseOperatorMap(operator, FieldTypes.Number);
|
|
4458
4458
|
if (numericDateComparison) {
|
|
4459
4459
|
if (!right.value ||
|
|
4460
4460
|
(typeof right.value !== 'number' && typeof right.value !== 'string')) {
|
|
@@ -4465,16 +4465,16 @@ export const astToFilter = (ast, db) => {
|
|
|
4465
4465
|
if (numericDateComparison === NumberOperator.EqualTo) {
|
|
4466
4466
|
return {
|
|
4467
4467
|
field: field,
|
|
4468
|
-
|
|
4469
|
-
|
|
4468
|
+
filterType: FilterNames.DateCustomFilter,
|
|
4469
|
+
fieldType: FieldTypes.Date,
|
|
4470
4470
|
operator: DateOperator.Custom,
|
|
4471
4471
|
value: { startDate: right.value, endDate: right.value },
|
|
4472
4472
|
};
|
|
4473
4473
|
}
|
|
4474
4474
|
return {
|
|
4475
4475
|
field: field,
|
|
4476
|
-
|
|
4477
|
-
|
|
4476
|
+
filterType: FilterNames.DateComparisonFilter,
|
|
4477
|
+
fieldType: FieldTypes.Date,
|
|
4478
4478
|
operator: numericDateComparison,
|
|
4479
4479
|
value: right.value,
|
|
4480
4480
|
};
|
|
@@ -4488,8 +4488,8 @@ export const astToFilter = (ast, db) => {
|
|
|
4488
4488
|
if (!isNaN(value.value)) {
|
|
4489
4489
|
return {
|
|
4490
4490
|
field: field,
|
|
4491
|
-
|
|
4492
|
-
|
|
4491
|
+
filterType: filterName,
|
|
4492
|
+
fieldType: FieldTypes.Date,
|
|
4493
4493
|
operator: dateOperator,
|
|
4494
4494
|
value,
|
|
4495
4495
|
};
|
|
@@ -4497,8 +4497,8 @@ export const astToFilter = (ast, db) => {
|
|
|
4497
4497
|
else {
|
|
4498
4498
|
return {
|
|
4499
4499
|
field: field,
|
|
4500
|
-
|
|
4501
|
-
|
|
4500
|
+
filterType: FilterNames.DateCustomFilter,
|
|
4501
|
+
fieldType: FieldTypes.Date,
|
|
4502
4502
|
operator: DateOperator.Custom,
|
|
4503
4503
|
value: value.value,
|
|
4504
4504
|
};
|
|
@@ -4506,8 +4506,8 @@ export const astToFilter = (ast, db) => {
|
|
|
4506
4506
|
case FilterNames.BooleanFilter:
|
|
4507
4507
|
return {
|
|
4508
4508
|
field: field,
|
|
4509
|
-
|
|
4510
|
-
|
|
4509
|
+
filterType: filterName,
|
|
4510
|
+
fieldType: FieldTypes.Boolean,
|
|
4511
4511
|
operator: mappedOperator,
|
|
4512
4512
|
value: Boolean(right.value),
|
|
4513
4513
|
};
|
|
@@ -4553,7 +4553,7 @@ export const filterToAst = (filter, db) => {
|
|
|
4553
4553
|
const { field, operator, value } = filter;
|
|
4554
4554
|
const mappedOperator = operatorMap[operator][0];
|
|
4555
4555
|
// Generate SQL AST based on the filter type
|
|
4556
|
-
switch (filter.
|
|
4556
|
+
switch (filter.fieldType) {
|
|
4557
4557
|
case FieldTypes.String:
|
|
4558
4558
|
if (!value) {
|
|
4559
4559
|
return null;
|
|
@@ -4604,7 +4604,7 @@ export const filterToAst = (filter, db) => {
|
|
|
4604
4604
|
right: fieldColumnToLowerCaseAst(value, db, false),
|
|
4605
4605
|
};
|
|
4606
4606
|
}
|
|
4607
|
-
case FieldTypes.
|
|
4607
|
+
case FieldTypes.Number:
|
|
4608
4608
|
switch (mappedOperator) {
|
|
4609
4609
|
default:
|
|
4610
4610
|
return {
|
|
@@ -4615,7 +4615,7 @@ export const filterToAst = (filter, db) => {
|
|
|
4615
4615
|
};
|
|
4616
4616
|
}
|
|
4617
4617
|
case FieldTypes.Date:
|
|
4618
|
-
switch (filter.
|
|
4618
|
+
switch (filter.filterType) {
|
|
4619
4619
|
case FilterNames.DateCustomFilter:
|
|
4620
4620
|
return {
|
|
4621
4621
|
type: 'binary_expr',
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
+
import { ColumnInfo, TableInfo } from '../components/ReportBuilder/schema';
|
|
1
2
|
import { Column } from '../models/Columns';
|
|
3
|
+
import { Pivot } from '../models/Pivot';
|
|
4
|
+
import { QuillReportInternal } from '../models/Report';
|
|
2
5
|
export declare function getSelectFromAST(ast: any): any;
|
|
3
6
|
export declare function processStarColumn(ast: any, columns: Column[]): any;
|
|
4
7
|
export declare function recursiveSearchByKey(node: any, searchKey: string): any;
|
|
@@ -23,4 +26,43 @@ export declare function getColumnAndTableInfo(tableAliasMap: {
|
|
|
23
26
|
export declare function getColumnsByTableFromASTAndSchema(ast: any, tables: any, tableAliasMap: any): {
|
|
24
27
|
[table: string]: string[];
|
|
25
28
|
};
|
|
29
|
+
export declare const isSubquery: (node: any) => boolean;
|
|
30
|
+
export declare const getAllPossibleColumns: (baseAst: any, schema: TableInfo[]) => (ColumnInfo & {
|
|
31
|
+
table: string;
|
|
32
|
+
})[];
|
|
33
|
+
export declare const createBasicSelectASTFromColumns: (columns: ColumnInfo[], tableName: string) => {
|
|
34
|
+
type: string;
|
|
35
|
+
options: null;
|
|
36
|
+
distinct: null;
|
|
37
|
+
columns: {
|
|
38
|
+
expr: {
|
|
39
|
+
type: string;
|
|
40
|
+
table: string;
|
|
41
|
+
column: any;
|
|
42
|
+
};
|
|
43
|
+
as: null;
|
|
44
|
+
}[];
|
|
45
|
+
from: {
|
|
46
|
+
db: null;
|
|
47
|
+
table: string;
|
|
48
|
+
as: null;
|
|
49
|
+
}[];
|
|
50
|
+
where: null;
|
|
51
|
+
groupby: null;
|
|
52
|
+
having: null;
|
|
53
|
+
orderby: null;
|
|
54
|
+
limit: null;
|
|
55
|
+
};
|
|
56
|
+
export declare const fetchAndProcessASTFromPrompt: (aiPrompt: string, schema: TableInfo[], client: any, prevPivot?: Pivot, currentQuery?: string) => Promise<{
|
|
57
|
+
ast: any;
|
|
58
|
+
pivot: Pivot | null | undefined;
|
|
59
|
+
whereAST: any;
|
|
60
|
+
error?: string | undefined;
|
|
61
|
+
}>;
|
|
62
|
+
export declare const fetchASTFromQuillReport: (report: QuillReportInternal, client: any, schema: any) => Promise<{
|
|
63
|
+
ast: any;
|
|
64
|
+
pivot: Pivot | undefined | null;
|
|
65
|
+
schema?: TableInfo[] | undefined;
|
|
66
|
+
error?: string | undefined;
|
|
67
|
+
}>;
|
|
26
68
|
//# sourceMappingURL=astProcessing.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"astProcessing.d.ts","sourceRoot":"","sources":["../../../src/utils/astProcessing.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"astProcessing.d.ts","sourceRoot":"","sources":["../../../src/utils/astProcessing.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAK3E,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAIvD,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,GAAG,OAQxC;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,OAe5D;AAGD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,GAAG,GAAG,CAgBtE;AAGD,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,GAAG,CAgB1E;AAED,wBAAgB,8BAA8B,CAAC,GAAG,EAAE,GAAG;;EA4BtD;AAED,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,MAAM,GAChB;IAAE,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAahD;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,GAAG,CActE;AAED,wBAAgB,sCAAsC,CACpD,IAAI,EAAE,GAAG,EACT,UAAU,EAAE,MAAM,EAAE,EACpB,OAAO,EAAE,GAAG,EAAE,GACb,GAAG,CAYL;AAED,wBAAgB,qBAAqB,CACnC,aAAa,EAAE;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,EAC1C,MAAM,EAAE,GAAG,EACX,UAAU,EAAE,GAAG,GACd;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAqCvD;AAED,wBAAgB,iCAAiC,CAC/C,GAAG,EAAE,GAAG,EACR,MAAM,EAAE,GAAG,EACX,aAAa,EAAE,GAAG,GACjB;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;CAAE,CAqG/B;AAED,eAAO,MAAM,UAAU,SAAU,GAAG,YAWnC,CAAC;AAEF,eAAO,MAAM,qBAAqB,YACvB,GAAG,UACJ,SAAS,EAAE,KAClB,CAAC,UAAU,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,EAmClC,CAAC;AAEF,eAAO,MAAM,+BAA+B,YACjC,UAAU,EAAE,aACV,MAAM;;;;;;;;;;;;;;;;;;;;;;CAsBlB,CAAC;AAEF,eAAO,MAAM,4BAA4B,aAC7B,MAAM,UACR,SAAS,EAAE,UACX,GAAG,cACC,KAAK,iBACF,MAAM;SAEhB,GAAG;WACD,KAAK,GAAG,IAAI,GAAG,SAAS;cACrB,GAAG;;EA6Fd,CAAC;AAEF,eAAO,MAAM,uBAAuB,WAC1B,mBAAmB,UACnB,GAAG,UACH,GAAG;SAEN,GAAG;WACD,KAAK,GAAG,SAAS,GAAG,IAAI;;;EAmDhC,CAAC"}
|