@quillsql/react 2.11.24 → 2.11.26
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 +16 -0
- package/dist/cjs/Chart.d.ts.map +1 -1
- package/dist/cjs/Chart.js +20 -17
- package/dist/cjs/ChartBuilder.d.ts +7 -20
- package/dist/cjs/ChartBuilder.d.ts.map +1 -1
- package/dist/cjs/ChartBuilder.js +37 -34
- package/dist/cjs/ChartEditor.d.ts.map +1 -1
- package/dist/cjs/ChartEditor.js +3 -3
- package/dist/cjs/Dashboard.d.ts +2 -1
- package/dist/cjs/Dashboard.d.ts.map +1 -1
- package/dist/cjs/ReportBuilder.d.ts +6 -4
- package/dist/cjs/ReportBuilder.d.ts.map +1 -1
- package/dist/cjs/ReportBuilder.js +208 -133
- package/dist/cjs/SQLEditor.d.ts +4 -11
- package/dist/cjs/SQLEditor.d.ts.map +1 -1
- package/dist/cjs/SQLEditor.js +31 -97
- package/dist/cjs/components/Chart/LineChart.d.ts +5 -1
- package/dist/cjs/components/Chart/LineChart.d.ts.map +1 -1
- package/dist/cjs/components/Chart/LineChart.js +3 -3
- package/dist/cjs/components/Dashboard/DashboardFilter.js +1 -1
- package/dist/cjs/components/Dashboard/MetricComponent.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/MetricComponent.js +9 -12
- package/dist/cjs/components/Dashboard/TableComponent.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/TableComponent.js +12 -10
- package/dist/cjs/components/QuillTable.d.ts +4 -1
- package/dist/cjs/components/QuillTable.d.ts.map +1 -1
- package/dist/cjs/components/QuillTable.js +1 -1
- package/dist/cjs/components/ReportBuilder/convert.d.ts +2 -2
- package/dist/cjs/internals/ReportBuilder/PivotList.d.ts +27 -24
- package/dist/cjs/internals/ReportBuilder/PivotList.d.ts.map +1 -1
- package/dist/cjs/internals/ReportBuilder/PivotList.js +9 -7
- package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts +9 -2
- package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
- package/dist/cjs/internals/ReportBuilder/PivotModal.js +53 -43
- package/dist/cjs/models/Columns.d.ts +11 -0
- package/dist/cjs/models/Columns.d.ts.map +1 -0
- package/dist/cjs/models/Columns.js +2 -0
- package/dist/cjs/models/Tables.d.ts +0 -8
- package/dist/cjs/models/Tables.d.ts.map +1 -1
- package/dist/cjs/utils/astProcessing.d.ts +3 -0
- package/dist/cjs/utils/astProcessing.d.ts.map +1 -0
- package/dist/cjs/utils/astProcessing.js +20 -0
- package/dist/cjs/utils/columnProcessing.d.ts +9 -0
- package/dist/cjs/utils/columnProcessing.d.ts.map +1 -0
- package/dist/cjs/utils/columnProcessing.js +207 -0
- package/dist/cjs/utils/dashboard.js +9 -9
- package/dist/cjs/utils/pivotProcessing.d.ts +2 -1
- package/dist/cjs/utils/pivotProcessing.d.ts.map +1 -1
- package/dist/cjs/utils/pivotProcessing.js +3 -8
- package/dist/cjs/utils/tableProcessing.d.ts +2 -2
- package/dist/cjs/utils/tableProcessing.d.ts.map +1 -1
- package/dist/cjs/utils/tableProcessing.js +1 -3
- package/dist/cjs/utils/valueFormatter.d.ts +2 -1
- package/dist/cjs/utils/valueFormatter.d.ts.map +1 -1
- package/dist/cjs/utils/valueFormatter.js +12 -1
- package/dist/esm/Chart.d.ts +16 -0
- package/dist/esm/Chart.d.ts.map +1 -1
- package/dist/esm/Chart.js +20 -17
- package/dist/esm/ChartBuilder.d.ts +7 -20
- package/dist/esm/ChartBuilder.d.ts.map +1 -1
- package/dist/esm/ChartBuilder.js +37 -34
- package/dist/esm/ChartEditor.d.ts.map +1 -1
- package/dist/esm/ChartEditor.js +3 -3
- package/dist/esm/Dashboard.d.ts +2 -1
- package/dist/esm/Dashboard.d.ts.map +1 -1
- package/dist/esm/ReportBuilder.d.ts +6 -4
- package/dist/esm/ReportBuilder.d.ts.map +1 -1
- package/dist/esm/ReportBuilder.js +204 -129
- package/dist/esm/SQLEditor.d.ts +4 -11
- package/dist/esm/SQLEditor.d.ts.map +1 -1
- package/dist/esm/SQLEditor.js +30 -95
- package/dist/esm/components/Chart/LineChart.d.ts +5 -1
- package/dist/esm/components/Chart/LineChart.d.ts.map +1 -1
- package/dist/esm/components/Chart/LineChart.js +3 -3
- package/dist/esm/components/Dashboard/DashboardFilter.js +1 -1
- package/dist/esm/components/Dashboard/MetricComponent.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/MetricComponent.js +9 -12
- package/dist/esm/components/Dashboard/TableComponent.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/TableComponent.js +12 -10
- package/dist/esm/components/QuillTable.d.ts +4 -1
- package/dist/esm/components/QuillTable.d.ts.map +1 -1
- package/dist/esm/components/QuillTable.js +1 -1
- package/dist/esm/components/ReportBuilder/convert.d.ts +2 -2
- package/dist/esm/internals/ReportBuilder/PivotList.d.ts +27 -24
- package/dist/esm/internals/ReportBuilder/PivotList.d.ts.map +1 -1
- package/dist/esm/internals/ReportBuilder/PivotList.js +9 -7
- package/dist/esm/internals/ReportBuilder/PivotModal.d.ts +9 -2
- package/dist/esm/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
- package/dist/esm/internals/ReportBuilder/PivotModal.js +55 -45
- package/dist/esm/models/Columns.d.ts +11 -0
- package/dist/esm/models/Columns.d.ts.map +1 -0
- package/dist/esm/models/Columns.js +1 -0
- package/dist/esm/models/Tables.d.ts +0 -8
- package/dist/esm/models/Tables.d.ts.map +1 -1
- package/dist/esm/utils/astProcessing.d.ts +3 -0
- package/dist/esm/utils/astProcessing.d.ts.map +1 -0
- package/dist/esm/utils/astProcessing.js +16 -0
- package/dist/esm/utils/columnProcessing.d.ts +9 -0
- package/dist/esm/utils/columnProcessing.d.ts.map +1 -0
- package/dist/esm/utils/columnProcessing.js +201 -0
- package/dist/esm/utils/dashboard.js +9 -9
- package/dist/esm/utils/pivotProcessing.d.ts +2 -1
- package/dist/esm/utils/pivotProcessing.d.ts.map +1 -1
- package/dist/esm/utils/pivotProcessing.js +3 -8
- package/dist/esm/utils/tableProcessing.d.ts +2 -2
- package/dist/esm/utils/tableProcessing.d.ts.map +1 -1
- package/dist/esm/utils/tableProcessing.js +1 -3
- package/dist/esm/utils/valueFormatter.d.ts +2 -1
- package/dist/esm/utils/valueFormatter.d.ts.map +1 -1
- package/dist/esm/utils/valueFormatter.js +11 -0
- package/package.json +1 -1
- package/dist/cjs/utils/types.d.ts +0 -4
- package/dist/cjs/utils/types.d.ts.map +0 -1
- package/dist/cjs/utils/types.js +0 -52
- package/dist/cjs/utils/valueFormatterCSV.d.ts +0 -17
- package/dist/cjs/utils/valueFormatterCSV.d.ts.map +0 -1
- package/dist/cjs/utils/valueFormatterCSV.js +0 -99
- package/dist/esm/utils/types.d.ts +0 -4
- package/dist/esm/utils/types.d.ts.map +0 -1
- package/dist/esm/utils/types.js +0 -48
- package/dist/esm/utils/valueFormatterCSV.d.ts +0 -17
- package/dist/esm/utils/valueFormatterCSV.d.ts.map +0 -1
- package/dist/esm/utils/valueFormatterCSV.js +0 -95
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { ReactNode } from 'react';
|
|
2
2
|
import { ButtonComponentProps } from '../../components/UiComponents';
|
|
3
|
+
import { Column } from '../../models/Columns';
|
|
3
4
|
export interface Pivot {
|
|
4
5
|
rowField: string;
|
|
5
6
|
rowFieldType: string;
|
|
@@ -62,7 +63,7 @@ export interface PivotModalProps {
|
|
|
62
63
|
showUpdatePivot: any;
|
|
63
64
|
setShowUpdatePivot: any;
|
|
64
65
|
data: any;
|
|
65
|
-
columns:
|
|
66
|
+
columns: Column[];
|
|
66
67
|
theme: any;
|
|
67
68
|
isOpen: any;
|
|
68
69
|
setIsOpen: any;
|
|
@@ -96,7 +97,13 @@ export declare function generatePivotTableYAxis(pivot: Pivot, cols: {
|
|
|
96
97
|
}[];
|
|
97
98
|
export declare function generatePivotTitle(pivot: Pivot): string;
|
|
98
99
|
export declare function isDateField(fieldType: string): boolean;
|
|
99
|
-
export declare function generatePivotTable(pivot: Pivot, data: any, dateRange:
|
|
100
|
+
export declare function generatePivotTable(pivot: Pivot, data: any, dateRange: {
|
|
101
|
+
start: Date;
|
|
102
|
+
end: Date;
|
|
103
|
+
} | undefined, isComparison: boolean, rowLimit?: number, compRange?: {
|
|
104
|
+
start: Date;
|
|
105
|
+
end: Date;
|
|
106
|
+
} | undefined): {
|
|
100
107
|
rows: any[];
|
|
101
108
|
columns: {
|
|
102
109
|
label: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PivotModal.d.ts","sourceRoot":"","sources":["../../../../src/internals/ReportBuilder/PivotModal.tsx"],"names":[],"mappings":"AAAA,OAAc,EAOZ,SAAS,EACV,MAAM,OAAO,CAAC;AAoBf,OAAO,EACL,oBAAoB,EAIrB,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"PivotModal.d.ts","sourceRoot":"","sources":["../../../../src/internals/ReportBuilder/PivotModal.tsx"],"names":[],"mappings":"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"}
|
|
@@ -46,7 +46,7 @@ const PivotModal = ({ pivotRowField, setPivotRowField, pivotColumnField, setPivo
|
|
|
46
46
|
const getDistinctValues = async () => {
|
|
47
47
|
if (columns) {
|
|
48
48
|
const stringColumns = columns.filter((column) => {
|
|
49
|
-
return
|
|
49
|
+
return column.format === 'string';
|
|
50
50
|
});
|
|
51
51
|
if (stringColumns.length === 0) {
|
|
52
52
|
const possibleColumns = (0, pivotProcessing_1.getPossiblePivotFieldOptions)(columns, {});
|
|
@@ -81,9 +81,14 @@ const PivotModal = ({ pivotRowField, setPivotRowField, pivotColumnField, setPivo
|
|
|
81
81
|
setPivotCardWidth(width);
|
|
82
82
|
}
|
|
83
83
|
};
|
|
84
|
-
|
|
84
|
+
if (rowFieldRef.current && colFieldRef.current) {
|
|
85
85
|
calculatePivotCardSize();
|
|
86
|
-
}
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
setTimeout(() => {
|
|
89
|
+
calculatePivotCardSize();
|
|
90
|
+
}, 500);
|
|
91
|
+
}
|
|
87
92
|
}, [showUpdatePivot, isOpen]);
|
|
88
93
|
(0, react_1.useEffect)(() => {
|
|
89
94
|
if (pivotRowField && data && columns) {
|
|
@@ -151,15 +156,6 @@ const PivotModal = ({ pivotRowField, setPivotRowField, pivotColumnField, setPivo
|
|
|
151
156
|
pivotValueField,
|
|
152
157
|
pivotAggregation,
|
|
153
158
|
]);
|
|
154
|
-
(0, react_1.useEffect)(() => {
|
|
155
|
-
setSelectedPivotIndex(-1);
|
|
156
|
-
setSelectedPivotType('');
|
|
157
|
-
setPivotRowField(undefined);
|
|
158
|
-
setPivotColumnField(undefined);
|
|
159
|
-
setPivotValueField(undefined);
|
|
160
|
-
setPivotAggregation(undefined);
|
|
161
|
-
setErrors([]);
|
|
162
|
-
}, [selectedTable]);
|
|
163
159
|
(0, react_1.useEffect)(() => {
|
|
164
160
|
if (!initialUniqueValues) {
|
|
165
161
|
return;
|
|
@@ -440,7 +436,7 @@ const PivotModal = ({ pivotRowField, setPivotRowField, pivotColumnField, setPivo
|
|
|
440
436
|
}), width: 200 }), (0, jsx_runtime_1.jsx)(SelectComponent, { id: "pivot-row-field", label: "Aggregation type", value: pivotAggregation, onChange: (e) => {
|
|
441
437
|
if (e.target.value !== 'count' &&
|
|
442
438
|
pivotValueField &&
|
|
443
|
-
!ChartBuilder_1.numberFormatOptions.includes(columns.find((col) => col.field === pivotValueField)
|
|
439
|
+
!ChartBuilder_1.numberFormatOptions.includes(columns.find((col) => col.field === pivotValueField).format)) {
|
|
444
440
|
setPivotValueField(null);
|
|
445
441
|
}
|
|
446
442
|
pivotFieldChange('aggregationType', e.target.value);
|
|
@@ -564,7 +560,7 @@ function castValueToDate(value) {
|
|
|
564
560
|
}
|
|
565
561
|
return new Date(value);
|
|
566
562
|
}
|
|
567
|
-
function
|
|
563
|
+
function getLatestDate(a, b) {
|
|
568
564
|
return a > b ? a : b;
|
|
569
565
|
}
|
|
570
566
|
function getEarliestDate(a, b) {
|
|
@@ -575,7 +571,7 @@ function getDateRange(dateRange, column, data) {
|
|
|
575
571
|
const ONE_CENTURY_IN_MILLISECONDS = 100 * 365 * 24 * 60 * 60 * 1000;
|
|
576
572
|
const maxDate = new Date(currentTime + ONE_CENTURY_IN_MILLISECONDS);
|
|
577
573
|
const minDate = new Date(0);
|
|
578
|
-
if (!dateRange
|
|
574
|
+
if (!dateRange) {
|
|
579
575
|
if (data.length == 0 || !data[0][column]) {
|
|
580
576
|
return { start: new Date(), end: new Date() };
|
|
581
577
|
}
|
|
@@ -586,22 +582,30 @@ function getDateRange(dateRange, column, data) {
|
|
|
586
582
|
end: firstDate || new Date(),
|
|
587
583
|
};
|
|
588
584
|
}
|
|
589
|
-
let earliestDate =
|
|
590
|
-
let
|
|
585
|
+
let earliestDate = undefined;
|
|
586
|
+
let latestDate = undefined;
|
|
587
|
+
for (let i = 0; i < data.length; i++) {
|
|
588
|
+
if (earliestDate && latestDate) {
|
|
589
|
+
break;
|
|
590
|
+
}
|
|
591
|
+
const value = castValueToDate(data[i][column]);
|
|
592
|
+
earliestDate = value && value > minDate ? value : null;
|
|
593
|
+
latestDate = value && value < maxDate ? value : null;
|
|
594
|
+
}
|
|
595
|
+
if (!earliestDate || !latestDate) {
|
|
596
|
+
return {
|
|
597
|
+
start: earliestDate || new Date(),
|
|
598
|
+
end: latestDate || new Date(),
|
|
599
|
+
};
|
|
600
|
+
}
|
|
591
601
|
for (let i = 0; i < data.length; i++) {
|
|
592
602
|
if (data[i][column]) {
|
|
593
603
|
const value = castValueToDate(data[i][column]);
|
|
594
|
-
if (lastestDate && lastestDate > minDate) {
|
|
595
|
-
lastestDate = value;
|
|
596
|
-
}
|
|
597
604
|
if (value && value < maxDate) {
|
|
598
|
-
|
|
599
|
-
|
|
605
|
+
latestDate =
|
|
606
|
+
latestDate === null ? value : getLatestDate(latestDate, value);
|
|
600
607
|
}
|
|
601
608
|
if (value && value > minDate) {
|
|
602
|
-
if (earliestDate && earliestDate < minDate) {
|
|
603
|
-
earliestDate = value;
|
|
604
|
-
}
|
|
605
609
|
earliestDate =
|
|
606
610
|
earliestDate === null
|
|
607
611
|
? value
|
|
@@ -610,40 +614,40 @@ function getDateRange(dateRange, column, data) {
|
|
|
610
614
|
}
|
|
611
615
|
}
|
|
612
616
|
return {
|
|
613
|
-
start: earliestDate,
|
|
614
|
-
end:
|
|
617
|
+
start: earliestDate || new Date(),
|
|
618
|
+
end: latestDate || new Date(),
|
|
615
619
|
};
|
|
616
620
|
}
|
|
617
621
|
else {
|
|
618
|
-
return
|
|
622
|
+
return dateRange;
|
|
619
623
|
}
|
|
620
624
|
}
|
|
621
625
|
function getDateBuckets(dateRange, column, data) {
|
|
622
|
-
if (!dateRange
|
|
626
|
+
if (!dateRange) {
|
|
623
627
|
return (0, date_fns_1.eachMonthOfInterval)(getDateRange(dateRange, column, data));
|
|
624
628
|
}
|
|
625
|
-
const dayDifference = (0, date_fns_1.differenceInDays)(
|
|
629
|
+
const dayDifference = (0, date_fns_1.differenceInDays)(dateRange.end, dateRange.start);
|
|
626
630
|
return dayDifferenceToInterval(dayDifference, dateRange);
|
|
627
631
|
}
|
|
628
632
|
function getCompDateBuckets(dateRange, compDateRange, column, data) {
|
|
629
|
-
if (!dateRange
|
|
630
|
-
return (0, date_fns_1.eachMonthOfInterval)(getDateRange(
|
|
633
|
+
if (!dateRange) {
|
|
634
|
+
return (0, date_fns_1.eachMonthOfInterval)(getDateRange(undefined, column, data));
|
|
631
635
|
}
|
|
632
|
-
const dayDifference = (0, date_fns_1.differenceInDays)(
|
|
636
|
+
const dayDifference = (0, date_fns_1.differenceInDays)(dateRange.end, dateRange.start);
|
|
633
637
|
return dayDifferenceToInterval(dayDifference, compDateRange);
|
|
634
638
|
}
|
|
635
639
|
function dayDifferenceToInterval(dayDifference, dateRange) {
|
|
636
640
|
if (dayDifference < 14) {
|
|
637
|
-
return (0, date_fns_1.eachDayOfInterval)(
|
|
641
|
+
return (0, date_fns_1.eachDayOfInterval)(dateRange);
|
|
638
642
|
}
|
|
639
643
|
else if (dayDifference < 60) {
|
|
640
|
-
return (0, date_fns_1.eachWeekOfInterval)(
|
|
644
|
+
return (0, date_fns_1.eachWeekOfInterval)(dateRange, { weekStartsOn: 1 });
|
|
641
645
|
}
|
|
642
646
|
else if (dayDifference < 365 * 3) {
|
|
643
|
-
return (0, date_fns_1.eachMonthOfInterval)(
|
|
647
|
+
return (0, date_fns_1.eachMonthOfInterval)(dateRange);
|
|
644
648
|
}
|
|
645
649
|
else {
|
|
646
|
-
return (0, date_fns_1.eachYearOfInterval)(
|
|
650
|
+
return (0, date_fns_1.eachYearOfInterval)(dateRange);
|
|
647
651
|
}
|
|
648
652
|
}
|
|
649
653
|
function getDateString(value, dateRange) {
|
|
@@ -709,23 +713,22 @@ const fixBigQueryData = (data = []) => {
|
|
|
709
713
|
}
|
|
710
714
|
return newData;
|
|
711
715
|
};
|
|
712
|
-
function generatePivotTable(pivot, data, dateRange, isComparison, rowLimit = -1, compRange =
|
|
716
|
+
function generatePivotTable(pivot, data, dateRange, isComparison, rowLimit = -1, compRange = undefined) {
|
|
713
717
|
// If there is no rowField, aggregate on the valueField
|
|
714
718
|
if (!pivot.rowField) {
|
|
715
719
|
return valueFieldAggregation(data, pivot.valueField, pivot.aggregationType, isComparison);
|
|
716
720
|
}
|
|
717
721
|
// Handle edge-case for BigQuery objects.
|
|
718
722
|
data = fixBigQueryData(data);
|
|
719
|
-
if (dateRange
|
|
720
|
-
dateRange = [new Date(0), (0, date_fns_1.add)(new Date(), { years: 5 })];
|
|
723
|
+
if (!dateRange) {
|
|
721
724
|
if (isDateField(pivot.rowFieldType)) {
|
|
722
725
|
dateRange = getDateRange(dateRange, pivot.rowField, data);
|
|
723
726
|
}
|
|
724
727
|
}
|
|
725
728
|
if (!compRange ||
|
|
726
|
-
isNullUndefinedOrInvalidDate(compRange
|
|
727
|
-
isNullUndefinedOrInvalidDate(compRange
|
|
728
|
-
compRange =
|
|
729
|
+
isNullUndefinedOrInvalidDate(compRange.start) ||
|
|
730
|
+
isNullUndefinedOrInvalidDate(compRange.end)) {
|
|
731
|
+
compRange = undefined;
|
|
729
732
|
}
|
|
730
733
|
const pivotRows = [];
|
|
731
734
|
const uniqueRows = (isDateField(pivot.rowFieldType)
|
|
@@ -982,6 +985,13 @@ function generatePivotTable(pivot, data, dateRange, isComparison, rowLimit = -1,
|
|
|
982
985
|
}
|
|
983
986
|
}
|
|
984
987
|
});
|
|
988
|
+
if (pivot.aggregationType === 'max' || pivot.aggregationType === 'min') {
|
|
989
|
+
for (const [key, value] of Object.entries(row)) {
|
|
990
|
+
if (value === '-Infinity' || value === 'Infinity') {
|
|
991
|
+
row[key] = null;
|
|
992
|
+
}
|
|
993
|
+
}
|
|
994
|
+
}
|
|
985
995
|
pivotRows.push(row);
|
|
986
996
|
});
|
|
987
997
|
const columns = [
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Columns.d.ts","sourceRoot":"","sources":["../../../src/models/Columns.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,MAAM;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,cAAe,SAAQ,MAAM;IAC5C,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tables.d.ts","sourceRoot":"","sources":["../../../src/models/Tables.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,
|
|
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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"astProcessing.d.ts","sourceRoot":"","sources":["../../../src/utils/astProcessing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,OAe5D"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.processStarColumn = void 0;
|
|
4
|
+
function processStarColumn(ast, columns) {
|
|
5
|
+
if (ast.columns === '*') {
|
|
6
|
+
ast.columns = columns.map((column) => {
|
|
7
|
+
return {
|
|
8
|
+
type: 'expr',
|
|
9
|
+
expr: {
|
|
10
|
+
type: 'column_ref',
|
|
11
|
+
table: null,
|
|
12
|
+
column: column.field,
|
|
13
|
+
},
|
|
14
|
+
as: null,
|
|
15
|
+
};
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
return ast;
|
|
19
|
+
}
|
|
20
|
+
exports.processStarColumn = processStarColumn;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ColumnInfo } from '../components/ReportBuilder/schema';
|
|
2
|
+
import { Column, ColumnInternal } from '../models/Columns';
|
|
3
|
+
export declare function convertPostgresColumn(field: {
|
|
4
|
+
name: string;
|
|
5
|
+
dataTypeID: number;
|
|
6
|
+
}): ColumnInternal;
|
|
7
|
+
export declare function convertColumnInfoToColumnInternal(columnInfo: ColumnInfo): ColumnInternal;
|
|
8
|
+
export declare function convertFormatToJsType(column: Column): string;
|
|
9
|
+
//# sourceMappingURL=columnProcessing.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"columnProcessing.d.ts","sourceRoot":"","sources":["../../../src/utils/columnProcessing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAE3D,wBAAgB,qBAAqB,CAAC,KAAK,EAAE;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;CACpB,GAAG,cAAc,CAyGjB;AAED,wBAAgB,iCAAiC,CAC/C,UAAU,EAAE,UAAU,GACrB,cAAc,CAShB;AAiFD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAY5D"}
|
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.convertFormatToJsType = exports.convertColumnInfoToColumnInternal = exports.convertPostgresColumn = void 0;
|
|
4
|
+
function convertPostgresColumn(field) {
|
|
5
|
+
let format;
|
|
6
|
+
let fieldType;
|
|
7
|
+
let jsType;
|
|
8
|
+
switch (field.dataTypeID) {
|
|
9
|
+
case 16: // bool
|
|
10
|
+
format = 'string';
|
|
11
|
+
break;
|
|
12
|
+
case 20: // int8
|
|
13
|
+
case 21: // int2
|
|
14
|
+
case 23: // int4
|
|
15
|
+
format = 'whole_number';
|
|
16
|
+
break;
|
|
17
|
+
case 700: // float4
|
|
18
|
+
case 701: // float8
|
|
19
|
+
case 1700: // numeric
|
|
20
|
+
format = 'two_decimal_places';
|
|
21
|
+
break;
|
|
22
|
+
case 1082: // date
|
|
23
|
+
case 1083: // time
|
|
24
|
+
case 1184: // timestamptz
|
|
25
|
+
case 1114: // timestamp
|
|
26
|
+
format = 'MMM_dd_yyyy';
|
|
27
|
+
break;
|
|
28
|
+
case 1186: // interval
|
|
29
|
+
case 1043: // varchar
|
|
30
|
+
default:
|
|
31
|
+
format = 'string';
|
|
32
|
+
}
|
|
33
|
+
switch (field.dataTypeID) {
|
|
34
|
+
case 16: // boolean
|
|
35
|
+
fieldType = 'bool';
|
|
36
|
+
break;
|
|
37
|
+
case 20: // int8
|
|
38
|
+
fieldType = 'int8';
|
|
39
|
+
break;
|
|
40
|
+
case 21: // int2
|
|
41
|
+
fieldType = 'int2';
|
|
42
|
+
break;
|
|
43
|
+
case 23: // int4
|
|
44
|
+
fieldType = 'int4';
|
|
45
|
+
break;
|
|
46
|
+
case 700: // float4
|
|
47
|
+
fieldType = 'float4';
|
|
48
|
+
break;
|
|
49
|
+
case 701: // float8
|
|
50
|
+
fieldType = 'float8';
|
|
51
|
+
break;
|
|
52
|
+
case 1700: // numeric
|
|
53
|
+
fieldType = 'numeric';
|
|
54
|
+
break;
|
|
55
|
+
case 1082: // date
|
|
56
|
+
fieldType = 'date';
|
|
57
|
+
break;
|
|
58
|
+
case 1083: // time
|
|
59
|
+
fieldType = 'time';
|
|
60
|
+
break;
|
|
61
|
+
case 1184: // timestamptz
|
|
62
|
+
fieldType = 'timestamptz';
|
|
63
|
+
break;
|
|
64
|
+
case 1186: // interval
|
|
65
|
+
fieldType = 'interval';
|
|
66
|
+
break;
|
|
67
|
+
case 1114: // timestamp
|
|
68
|
+
fieldType = 'timestamp';
|
|
69
|
+
break;
|
|
70
|
+
case 1043: // varchar
|
|
71
|
+
default:
|
|
72
|
+
fieldType = 'varchar';
|
|
73
|
+
}
|
|
74
|
+
switch (field.dataTypeID) {
|
|
75
|
+
case 16: // boolean
|
|
76
|
+
jsType = 'bool';
|
|
77
|
+
break;
|
|
78
|
+
case 20: // int8
|
|
79
|
+
case 21: // int2
|
|
80
|
+
case 23: // int4
|
|
81
|
+
case 700: // float4
|
|
82
|
+
case 701: // float8
|
|
83
|
+
case 1700: // numeric
|
|
84
|
+
jsType = 'number';
|
|
85
|
+
break;
|
|
86
|
+
case 1082: // date
|
|
87
|
+
case 1083: // time
|
|
88
|
+
case 1184: // timestamptz
|
|
89
|
+
case 1186: // interval
|
|
90
|
+
case 1114: // timestamp
|
|
91
|
+
jsType = 'date';
|
|
92
|
+
break;
|
|
93
|
+
case 1043: // varchar
|
|
94
|
+
default:
|
|
95
|
+
jsType = 'string';
|
|
96
|
+
}
|
|
97
|
+
return {
|
|
98
|
+
label: field.name,
|
|
99
|
+
field: field.name,
|
|
100
|
+
format,
|
|
101
|
+
fieldType,
|
|
102
|
+
dataTypeID: field.dataTypeID,
|
|
103
|
+
jsType: jsType,
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
exports.convertPostgresColumn = convertPostgresColumn;
|
|
107
|
+
function convertColumnInfoToColumnInternal(columnInfo) {
|
|
108
|
+
return {
|
|
109
|
+
label: columnInfo.name,
|
|
110
|
+
field: columnInfo.name,
|
|
111
|
+
format: fieldTypeToFormat(columnInfo.fieldType),
|
|
112
|
+
fieldType: columnInfo.fieldType,
|
|
113
|
+
dataTypeID: fieldTypeToDataTypeID(columnInfo.fieldType),
|
|
114
|
+
jsType: convertFieldTypeToJSType(columnInfo.fieldType),
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
exports.convertColumnInfoToColumnInternal = convertColumnInfoToColumnInternal;
|
|
118
|
+
function fieldTypeToFormat(fieldType) {
|
|
119
|
+
switch (fieldType) {
|
|
120
|
+
case 'bool':
|
|
121
|
+
return 'string';
|
|
122
|
+
case 'int8':
|
|
123
|
+
case 'int2':
|
|
124
|
+
case 'int4':
|
|
125
|
+
return 'whole_number';
|
|
126
|
+
case 'float4':
|
|
127
|
+
case 'float8':
|
|
128
|
+
case 'numeric':
|
|
129
|
+
return 'two_decimal_places';
|
|
130
|
+
case 'date':
|
|
131
|
+
case 'time':
|
|
132
|
+
case 'timestamptz':
|
|
133
|
+
case 'timestamp':
|
|
134
|
+
return 'MMM_dd_yyyy';
|
|
135
|
+
case 'interval':
|
|
136
|
+
case 'varchar':
|
|
137
|
+
default:
|
|
138
|
+
return 'string';
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
function fieldTypeToDataTypeID(fieldType) {
|
|
142
|
+
switch (fieldType) {
|
|
143
|
+
case 'bool':
|
|
144
|
+
return 16;
|
|
145
|
+
case 'int8':
|
|
146
|
+
return 20;
|
|
147
|
+
case 'int2':
|
|
148
|
+
return 21;
|
|
149
|
+
case 'int4':
|
|
150
|
+
return 23;
|
|
151
|
+
case 'float4':
|
|
152
|
+
return 700;
|
|
153
|
+
case 'float8':
|
|
154
|
+
return 701;
|
|
155
|
+
case 'numeric':
|
|
156
|
+
return 1700;
|
|
157
|
+
case 'date':
|
|
158
|
+
return 1082;
|
|
159
|
+
case 'time':
|
|
160
|
+
return 1083;
|
|
161
|
+
case 'timestamptz':
|
|
162
|
+
return 1184;
|
|
163
|
+
case 'timestamp':
|
|
164
|
+
return 1114;
|
|
165
|
+
case 'interval':
|
|
166
|
+
return 1186;
|
|
167
|
+
case 'varchar':
|
|
168
|
+
default:
|
|
169
|
+
return 1043;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
function convertFieldTypeToJSType(fieldType) {
|
|
173
|
+
switch (fieldType) {
|
|
174
|
+
case 'bool':
|
|
175
|
+
return 'bool';
|
|
176
|
+
case 'int8':
|
|
177
|
+
case 'int2':
|
|
178
|
+
case 'int4':
|
|
179
|
+
case 'float4':
|
|
180
|
+
case 'float8':
|
|
181
|
+
case 'numeric':
|
|
182
|
+
return 'number';
|
|
183
|
+
case 'date':
|
|
184
|
+
case 'time':
|
|
185
|
+
case 'timestamptz':
|
|
186
|
+
case 'timestamp':
|
|
187
|
+
return 'date';
|
|
188
|
+
case 'interval':
|
|
189
|
+
case 'varchar':
|
|
190
|
+
default:
|
|
191
|
+
return 'string';
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
function convertFormatToJsType(column) {
|
|
195
|
+
switch (column.format) {
|
|
196
|
+
case 'string':
|
|
197
|
+
return 'string';
|
|
198
|
+
case 'whole_number':
|
|
199
|
+
case 'two_decimal_places':
|
|
200
|
+
return 'number';
|
|
201
|
+
case 'MMM_dd_yyyy':
|
|
202
|
+
return 'date';
|
|
203
|
+
default:
|
|
204
|
+
return 'string';
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
exports.convertFormatToJsType = convertFormatToJsType;
|
|
@@ -121,15 +121,15 @@ function getPivotTable(itemInfo, dashboardFilters, config = undefined) {
|
|
|
121
121
|
const data = itemInfo ? itemInfo : config;
|
|
122
122
|
return pivot && data?.rows
|
|
123
123
|
? (0, PivotModal_1.generatePivotTable)(pivot, JSON.parse(JSON.stringify(data.rows)), // deep copy
|
|
124
|
-
dateFilter?.startDate
|
|
125
|
-
?
|
|
126
|
-
:
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
dateFilter
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
:
|
|
124
|
+
dateFilter?.startDate && dateFilter?.endDate
|
|
125
|
+
? { start: dateFilter.startDate, end: dateFilter.endDate }
|
|
126
|
+
: undefined, Boolean(dateFilter?.comparisonRange?.startDate), -1, dateFilter?.comparisonRange?.startDate &&
|
|
127
|
+
dateFilter?.comparisonRange?.endDate
|
|
128
|
+
? {
|
|
129
|
+
start: dateFilter.comparisonRange.startDate,
|
|
130
|
+
end: dateFilter.comparisonRange.endDate,
|
|
131
|
+
}
|
|
132
|
+
: undefined)
|
|
133
133
|
: null;
|
|
134
134
|
}
|
|
135
135
|
/**
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { Pivot } from '../internals/ReportBuilder/PivotModal';
|
|
2
|
+
import { Column } from '../models/Columns';
|
|
2
3
|
export declare function pivotToSql(pivot: Pivot, query: string, client: any): {
|
|
3
4
|
query: string;
|
|
4
5
|
preQueries?: string[];
|
|
5
6
|
runQueryConfig?: any;
|
|
6
7
|
} | undefined;
|
|
7
8
|
export declare function isValidPivot(pivot: Pivot): boolean;
|
|
8
|
-
export declare function getPossiblePivotFieldOptions(columns:
|
|
9
|
+
export declare function getPossiblePivotFieldOptions(columns: Column[], uniqueValues: {
|
|
9
10
|
[field: string]: any;
|
|
10
11
|
}): {
|
|
11
12
|
rowFields: string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pivotProcessing.d.ts","sourceRoot":"","sources":["../../../src/utils/pivotProcessing.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"pivotProcessing.d.ts","sourceRoot":"","sources":["../../../src/utils/pivotProcessing.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,EAAE,MAAM,uCAAuC,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAkB,MAAM,mBAAmB,CAAC;AAG3D,wBAAgB,UAAU,CACxB,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,GAAG,GACV;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,cAAc,CAAC,EAAE,GAAG,CAAA;CAAE,GAAG,SAAS,CAgD5E;AAmDD,wBAAgB,YAAY,CAAC,KAAK,EAAE,KAAK,WAgBxC;AAED,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,MAAM,EAAE,EACjB,YAAY,EAAE;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE;;;;EAsCvC;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"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.cleanPivot = exports.getPossiblePivotFieldOptions = exports.isValidPivot = exports.pivotToSql = void 0;
|
|
4
|
-
const ChartBuilder_1 = require("../ChartBuilder");
|
|
5
|
-
const ast_1 = require("../components/ReportBuilder/ast");
|
|
6
4
|
const util_1 = require("../components/ReportBuilder/util");
|
|
5
|
+
const valueFormatter_1 = require("./valueFormatter");
|
|
7
6
|
function pivotToSql(pivot, query, client) {
|
|
8
7
|
const processedAggType = pivot.aggregationType?.toLowerCase() === 'average'
|
|
9
8
|
? 'avg'
|
|
@@ -110,9 +109,7 @@ function getPossiblePivotFieldOptions(columns, uniqueValues) {
|
|
|
110
109
|
let valueFields = [];
|
|
111
110
|
for (let column of columns) {
|
|
112
111
|
// row fields can be dates or strings
|
|
113
|
-
if (column.format
|
|
114
|
-
column.fieldType === 'date' ||
|
|
115
|
-
ChartBuilder_1.dateFormatOptions.includes(column.format)) {
|
|
112
|
+
if (valueFormatter_1.DATE_FORMAT_TYPES.includes(column.format)) {
|
|
116
113
|
rowFields.push(column.field);
|
|
117
114
|
}
|
|
118
115
|
// column fields can be strings
|
|
@@ -129,9 +126,7 @@ function getPossiblePivotFieldOptions(columns, uniqueValues) {
|
|
|
129
126
|
}
|
|
130
127
|
}
|
|
131
128
|
// value fields can be numbers
|
|
132
|
-
if (column.format
|
|
133
|
-
ChartBuilder_1.numberFormatOptions.includes(column.format) ||
|
|
134
|
-
(0, ast_1.isNumericColumnType)(column.fieldType)) {
|
|
129
|
+
if (valueFormatter_1.NUMBER_FORMAT_TYPES.includes(column.format)) {
|
|
135
130
|
if (!(0, util_1.isIdColumn)(column.field)) {
|
|
136
131
|
valueFields.push(column.field);
|
|
137
132
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export declare const getUniqueValuesByColumns: (columns:
|
|
1
|
+
import { Column } from '../models/Columns';
|
|
2
|
+
export declare const getUniqueValuesByColumns: (columns: Column[], query: string, rows: any, client: any) => Promise<{
|
|
3
3
|
[column: string]: {
|
|
4
4
|
[value: string]: boolean;
|
|
5
5
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tableProcessing.d.ts","sourceRoot":"","sources":["../../../src/utils/tableProcessing.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"tableProcessing.d.ts","sourceRoot":"","sources":["../../../src/utils/tableProcessing.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAI3C,eAAO,MAAM,wBAAwB,YAC1B,MAAM,EAAE,SACV,MAAM,QACP,GAAG,UACD,GAAG;;;;SAwDZ,CAAC"}
|
|
@@ -4,9 +4,7 @@ exports.getUniqueValuesByColumns = void 0;
|
|
|
4
4
|
const dataFetcher_1 = require("./dataFetcher");
|
|
5
5
|
const queryConstructor_1 = require("./queryConstructor");
|
|
6
6
|
const getUniqueValuesByColumns = async (columns, query, rows, client) => {
|
|
7
|
-
const stringNames = columns.map(
|
|
8
|
-
// @ts-ignore
|
|
9
|
-
(column) => column.name || column.field);
|
|
7
|
+
const stringNames = columns.map((column) => column.field);
|
|
10
8
|
const uniqueValues = {};
|
|
11
9
|
if (!client.databaseType ||
|
|
12
10
|
client.databaseType.toLowerCase() === 'bigquery') {
|