@quillsql/react 2.13.38 → 2.13.40
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 +0 -1
- package/dist/cjs/ChartBuilder.d.ts.map +1 -1
- package/dist/cjs/ChartBuilder.js +73 -66
- package/dist/cjs/ReportBuilder.d.ts.map +1 -1
- package/dist/cjs/ReportBuilder.js +69 -51
- package/dist/cjs/components/Chart/ChartTooltip.d.ts +1 -1
- package/dist/cjs/components/Chart/ChartTooltip.d.ts.map +1 -1
- package/dist/cjs/components/Chart/ChartTooltip.js +3 -3
- package/dist/cjs/components/Chart/LineChart.d.ts.map +1 -1
- package/dist/cjs/components/Chart/LineChart.js +4 -4
- package/dist/cjs/components/QuillMultiSelectSectionList.js +5 -5
- package/dist/cjs/components/ReportBuilder/convert.d.ts +1 -1
- package/dist/cjs/components/ReportBuilder/convert.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/convert.js +73 -21
- package/dist/cjs/components/UiComponents.d.ts +2 -1
- package/dist/cjs/components/UiComponents.d.ts.map +1 -1
- package/dist/cjs/components/UiComponents.js +11 -4
- package/dist/cjs/hooks/useExport.d.ts.map +1 -1
- package/dist/cjs/hooks/useExport.js +4 -5
- package/dist/cjs/internals/ReportBuilder/PivotForm.d.ts +19 -11
- package/dist/cjs/internals/ReportBuilder/PivotForm.d.ts.map +1 -1
- package/dist/cjs/internals/ReportBuilder/PivotForm.js +62 -48
- package/dist/cjs/internals/ReportBuilder/PivotList.js +5 -4
- package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts +28 -31
- package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
- package/dist/cjs/internals/ReportBuilder/PivotModal.js +315 -633
- package/dist/cjs/models/Pivot.d.ts +27 -7
- package/dist/cjs/models/Pivot.d.ts.map +1 -1
- package/dist/cjs/utils/dashboard.d.ts.map +1 -1
- package/dist/cjs/utils/dashboard.js +36 -11
- package/dist/cjs/utils/merge.d.ts.map +1 -1
- package/dist/cjs/utils/merge.js +2 -1
- package/dist/cjs/utils/pivotConstructor.d.ts +1 -0
- package/dist/cjs/utils/pivotConstructor.d.ts.map +1 -1
- package/dist/cjs/utils/pivotConstructor.js +39 -8
- package/dist/cjs/utils/pivotProcessing.d.ts.map +1 -1
- package/dist/cjs/utils/pivotProcessing.js +10 -14
- package/dist/cjs/utils/queryConstructor.d.ts.map +1 -1
- package/dist/cjs/utils/queryConstructor.js +421 -134
- package/dist/cjs/utils/report.d.ts.map +1 -1
- package/dist/cjs/utils/report.js +2 -2
- package/dist/cjs/utils/textProcessing.d.ts +1 -1
- package/dist/cjs/utils/textProcessing.d.ts.map +1 -1
- package/dist/cjs/utils/textProcessing.js +3 -0
- package/dist/esm/Chart.d.ts.map +1 -1
- package/dist/esm/Chart.js +0 -1
- package/dist/esm/ChartBuilder.d.ts.map +1 -1
- package/dist/esm/ChartBuilder.js +73 -66
- package/dist/esm/ReportBuilder.d.ts.map +1 -1
- package/dist/esm/ReportBuilder.js +69 -51
- package/dist/esm/components/Chart/ChartTooltip.d.ts +1 -1
- package/dist/esm/components/Chart/ChartTooltip.d.ts.map +1 -1
- package/dist/esm/components/Chart/ChartTooltip.js +3 -3
- package/dist/esm/components/Chart/LineChart.d.ts.map +1 -1
- package/dist/esm/components/Chart/LineChart.js +4 -4
- package/dist/esm/components/QuillMultiSelectSectionList.js +5 -5
- package/dist/esm/components/ReportBuilder/convert.d.ts +1 -1
- package/dist/esm/components/ReportBuilder/convert.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/convert.js +74 -22
- package/dist/esm/components/UiComponents.d.ts +2 -1
- package/dist/esm/components/UiComponents.d.ts.map +1 -1
- package/dist/esm/components/UiComponents.js +11 -4
- package/dist/esm/hooks/useExport.d.ts.map +1 -1
- package/dist/esm/hooks/useExport.js +4 -5
- package/dist/esm/internals/ReportBuilder/PivotForm.d.ts +19 -11
- package/dist/esm/internals/ReportBuilder/PivotForm.d.ts.map +1 -1
- package/dist/esm/internals/ReportBuilder/PivotForm.js +63 -49
- package/dist/esm/internals/ReportBuilder/PivotList.js +5 -4
- package/dist/esm/internals/ReportBuilder/PivotModal.d.ts +28 -31
- package/dist/esm/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
- package/dist/esm/internals/ReportBuilder/PivotModal.js +327 -635
- package/dist/esm/models/Pivot.d.ts +27 -7
- package/dist/esm/models/Pivot.d.ts.map +1 -1
- package/dist/esm/utils/dashboard.d.ts.map +1 -1
- package/dist/esm/utils/dashboard.js +36 -11
- package/dist/esm/utils/merge.d.ts.map +1 -1
- package/dist/esm/utils/merge.js +2 -1
- package/dist/esm/utils/pivotConstructor.d.ts +1 -0
- package/dist/esm/utils/pivotConstructor.d.ts.map +1 -1
- package/dist/esm/utils/pivotConstructor.js +39 -9
- package/dist/esm/utils/pivotProcessing.d.ts.map +1 -1
- package/dist/esm/utils/pivotProcessing.js +10 -14
- package/dist/esm/utils/queryConstructor.d.ts.map +1 -1
- package/dist/esm/utils/queryConstructor.js +421 -134
- package/dist/esm/utils/report.d.ts.map +1 -1
- package/dist/esm/utils/report.js +2 -2
- package/dist/esm/utils/textProcessing.d.ts +1 -1
- package/dist/esm/utils/textProcessing.d.ts.map +1 -1
- package/dist/esm/utils/textProcessing.js +3 -0
- package/package.json +1 -1
|
@@ -133,9 +133,11 @@ SidebarComponent = QuillSidebar, ContainerComponent = CustomContainer, SelectCol
|
|
|
133
133
|
const [theme] = useContext(ThemeContext);
|
|
134
134
|
const [pivotRowField, setPivotRowField] = useState(undefined);
|
|
135
135
|
const [pivotColumnField, setPivotColumnField] = useState(undefined);
|
|
136
|
-
const [
|
|
137
|
-
|
|
138
|
-
|
|
136
|
+
const [pivotAggregations, setPivotAggregations] = useState(reportInfo?.pivot?.aggregations ?? [{
|
|
137
|
+
valueField: reportInfo?.pivot?.valueField,
|
|
138
|
+
valueField2: reportInfo?.pivot?.valueField2,
|
|
139
|
+
aggregationType: reportInfo?.pivot?.aggregationType,
|
|
140
|
+
}]);
|
|
139
141
|
const [pivotHint, setPivotHint] = useState('');
|
|
140
142
|
/* eslint-disable-next-line */
|
|
141
143
|
const [pivotError, setPivotError] = useState(undefined);
|
|
@@ -211,20 +213,35 @@ SidebarComponent = QuillSidebar, ContainerComponent = CustomContainer, SelectCol
|
|
|
211
213
|
window.removeEventListener('resize', handleResize);
|
|
212
214
|
};
|
|
213
215
|
}, []);
|
|
216
|
+
const setTypesOnPivot = (newPivot, searchColumns) => ({
|
|
217
|
+
...newPivot,
|
|
218
|
+
aggregations: newPivot.aggregations?.map((agg) => ({
|
|
219
|
+
...agg,
|
|
220
|
+
valueFieldType: searchColumns.find((c) => c.field === agg.valueField)?.jsType,
|
|
221
|
+
valueField2Type: searchColumns.find((c) => c.field === agg.valueField2)?.jsType,
|
|
222
|
+
})),
|
|
223
|
+
valueField: newPivot.aggregations?.[0]?.valueField,
|
|
224
|
+
valueField2: newPivot.aggregations?.[0]?.valueField2,
|
|
225
|
+
aggregationType: newPivot.aggregations?.[0]?.aggregationType,
|
|
226
|
+
valueFieldType: searchColumns.find((c) => c.field === newPivot.aggregations?.[0]?.valueField)?.jsType,
|
|
227
|
+
valueField2Type: searchColumns.find((c) => c.field === newPivot.aggregations?.[0]?.valueField2)?.jsType,
|
|
228
|
+
});
|
|
214
229
|
const updatePivot = async (changeField, fieldKey, prevValue) => {
|
|
215
|
-
|
|
230
|
+
let newPivot = deepCopy(pivot);
|
|
216
231
|
setPivotError(undefined);
|
|
217
232
|
// @ts-ignore
|
|
218
233
|
newPivot[fieldKey] = changeField;
|
|
219
|
-
if (fieldKey === 'columnField' &&
|
|
220
|
-
!changeField &&
|
|
221
|
-
pivotValueField === pivotValueField2) {
|
|
222
|
-
setPivotValueField2(undefined);
|
|
223
|
-
newPivot.valueField2 = undefined;
|
|
224
|
-
}
|
|
225
234
|
newPivot.rowLimit = undefined;
|
|
226
235
|
newPivot.sort = undefined;
|
|
227
236
|
if (fieldKey === 'rowField') {
|
|
237
|
+
if (changeField === '' || changeField === undefined) {
|
|
238
|
+
setPivotColumnField(undefined);
|
|
239
|
+
// set all percentage aggregations to undefined
|
|
240
|
+
setPivotAggregations(pivotAggregations.map((agg) => ({
|
|
241
|
+
...agg,
|
|
242
|
+
aggregationType: agg.aggregationType === 'percentage' ? undefined : agg.aggregationType,
|
|
243
|
+
})));
|
|
244
|
+
}
|
|
228
245
|
// check to see if the new rowField value is a date field
|
|
229
246
|
const column = columns.find((c) => c.field === changeField);
|
|
230
247
|
if (column?.jsType === 'date') {
|
|
@@ -239,7 +256,11 @@ SidebarComponent = QuillSidebar, ContainerComponent = CustomContainer, SelectCol
|
|
|
239
256
|
newPivot.sort = undefined;
|
|
240
257
|
}
|
|
241
258
|
}
|
|
242
|
-
|
|
259
|
+
newPivot = setTypesOnPivot(newPivot, columns);
|
|
260
|
+
setPivot(setTypesOnPivot(newPivot, columns));
|
|
261
|
+
if (newPivot.aggregations?.length === 0 || newPivot.aggregations?.some((agg) => !agg.aggregationType) || newPivot.aggregations?.some((agg) => !agg.valueField && agg.aggregationType !== 'count')) {
|
|
262
|
+
return;
|
|
263
|
+
}
|
|
243
264
|
const { valid, reason } = isValidPivot(newPivot);
|
|
244
265
|
if (!valid) {
|
|
245
266
|
setPivotError(reason);
|
|
@@ -296,14 +317,8 @@ SidebarComponent = QuillSidebar, ContainerComponent = CustomContainer, SelectCol
|
|
|
296
317
|
case 'columnField':
|
|
297
318
|
setPivotColumnField(prevValue);
|
|
298
319
|
break;
|
|
299
|
-
case '
|
|
300
|
-
|
|
301
|
-
break;
|
|
302
|
-
case 'valueField2':
|
|
303
|
-
setPivotValueField2(prevValue);
|
|
304
|
-
break;
|
|
305
|
-
case 'aggregationType':
|
|
306
|
-
setPivotAggregation(prevValue);
|
|
320
|
+
case 'aggregations':
|
|
321
|
+
setPivotAggregations(prevValue);
|
|
307
322
|
break;
|
|
308
323
|
}
|
|
309
324
|
setPivot(prevPivot);
|
|
@@ -720,20 +735,24 @@ SidebarComponent = QuillSidebar, ContainerComponent = CustomContainer, SelectCol
|
|
|
720
735
|
return column?.fieldType;
|
|
721
736
|
};
|
|
722
737
|
const emptyPivotColumns = () => {
|
|
723
|
-
if (pivot && pivot.rowField && pivot.columnField
|
|
738
|
+
if (pivot && pivot.rowField && pivot.columnField) {
|
|
724
739
|
return [
|
|
725
740
|
{ label: snakeAndCamelCaseToTitleCase(pivot.rowField) },
|
|
726
741
|
{ label: snakeAndCamelCaseToTitleCase(pivot.columnField) },
|
|
727
742
|
];
|
|
728
743
|
}
|
|
729
|
-
else if (pivot && pivot.rowField
|
|
744
|
+
else if (pivot && pivot.rowField) {
|
|
730
745
|
return [
|
|
731
746
|
{ label: snakeAndCamelCaseToTitleCase(pivot.rowField) },
|
|
732
|
-
|
|
747
|
+
...(pivot.aggregations ?? []).filter((a) => !!a.valueField).map((agg) => ({
|
|
748
|
+
label: snakeAndCamelCaseToTitleCase(agg.valueField),
|
|
749
|
+
})),
|
|
733
750
|
];
|
|
734
751
|
}
|
|
735
752
|
else {
|
|
736
|
-
return
|
|
753
|
+
return (pivot?.aggregations ?? []).filter((a) => !!a.valueField).map((agg) => ({
|
|
754
|
+
label: snakeAndCamelCaseToTitleCase(agg.valueField),
|
|
755
|
+
}));
|
|
737
756
|
}
|
|
738
757
|
};
|
|
739
758
|
const [previousPage, setPreviousPage] = useState(0);
|
|
@@ -1071,7 +1090,7 @@ SidebarComponent = QuillSidebar, ContainerComponent = CustomContainer, SelectCol
|
|
|
1071
1090
|
if (prevTable !== reportBuilderInfo.table) {
|
|
1072
1091
|
setSelectedOrderedColumns([]); // reset selected ordered columns
|
|
1073
1092
|
}
|
|
1074
|
-
setPivot(reportBuilderInfo.pivot);
|
|
1093
|
+
setPivot(reportBuilderInfo.pivot ? setTypesOnPivot(reportBuilderInfo.pivot, reportBuilderInfo.columns) : null);
|
|
1075
1094
|
if (!keepPivotHint) {
|
|
1076
1095
|
setPivotHint('');
|
|
1077
1096
|
}
|
|
@@ -1083,10 +1102,12 @@ SidebarComponent = QuillSidebar, ContainerComponent = CustomContainer, SelectCol
|
|
|
1083
1102
|
setFormData(curFormData);
|
|
1084
1103
|
if (reportBuilderInfo.pivot) {
|
|
1085
1104
|
setPivotRowField(reportBuilderInfo.pivot.rowField);
|
|
1086
|
-
setPivotAggregation(reportBuilderInfo.pivot.aggregationType);
|
|
1087
1105
|
setPivotColumnField(reportBuilderInfo.pivot.columnField);
|
|
1088
|
-
|
|
1089
|
-
|
|
1106
|
+
setPivotAggregations(reportBuilderInfo.pivot.aggregations ?? [{
|
|
1107
|
+
valueField: reportBuilderInfo.pivot.valueField,
|
|
1108
|
+
valueField2: reportBuilderInfo.pivot.valueField2,
|
|
1109
|
+
aggregationType: reportBuilderInfo.pivot.aggregationType,
|
|
1110
|
+
}]);
|
|
1090
1111
|
}
|
|
1091
1112
|
else {
|
|
1092
1113
|
setLoading(false);
|
|
@@ -1132,7 +1153,7 @@ SidebarComponent = QuillSidebar, ContainerComponent = CustomContainer, SelectCol
|
|
|
1132
1153
|
!isValidPivotForReport(reportBuilderInfo.pivot, newUnique, reportBuilderInfo.table, reportBuilderInfo.columns)) {
|
|
1133
1154
|
const { pivot, hint } = makePivotValid(reportBuilderInfo.pivot, newUnique, reportBuilderInfo.table, reportBuilderInfo.columns);
|
|
1134
1155
|
if (pivot) {
|
|
1135
|
-
setPivot(pivot);
|
|
1156
|
+
setPivot(setTypesOnPivot(pivot, reportBuilderInfo.columns));
|
|
1136
1157
|
newPivot = pivot;
|
|
1137
1158
|
pivotChanged = true;
|
|
1138
1159
|
setPivotHint(hint);
|
|
@@ -1277,8 +1298,13 @@ SidebarComponent = QuillSidebar, ContainerComponent = CustomContainer, SelectCol
|
|
|
1277
1298
|
!possibleOptions.columnFields.includes(pivot.columnField)) {
|
|
1278
1299
|
return false;
|
|
1279
1300
|
}
|
|
1280
|
-
|
|
1281
|
-
|
|
1301
|
+
for (const agg of pivot.aggregations ?? []) {
|
|
1302
|
+
if (agg.valueField &&
|
|
1303
|
+
!possibleOptions.valueFields.includes(agg.valueField)) {
|
|
1304
|
+
return false;
|
|
1305
|
+
}
|
|
1306
|
+
}
|
|
1307
|
+
if (!pivot.aggregations || pivot.aggregations.length === 0) {
|
|
1282
1308
|
return false;
|
|
1283
1309
|
}
|
|
1284
1310
|
return true;
|
|
@@ -1483,7 +1509,7 @@ SidebarComponent = QuillSidebar, ContainerComponent = CustomContainer, SelectCol
|
|
|
1483
1509
|
s.displayName === currentTable) ?? schemaData.schema[0], fieldValuesMap: fieldValuesMap, fieldValuesMapIsLoading: uniqueValuesIsLoading, onSubmitFilter: (filter) => {
|
|
1484
1510
|
setOpenPopover(null);
|
|
1485
1511
|
handleInsertion(filter);
|
|
1486
|
-
}, onDeleteFilter: () => { }, ButtonComponent: ButtonComponent, SelectComponent: SelectComponent, TextInputComponent: TextInputComponent, MultiSelectComponent: MultiSelectComponent }) }) })] })] }), _jsxs("div", { style: { width: '100%' }, children: [_jsx(SidebarHeadingComponent, { label: "Pivot" }), _jsx(PivotModal, { pivotRowField: pivotRowField, setPivotRowField: setPivotRowField, pivotColumnField: pivotColumnField, setPivotColumnField: setPivotColumnField,
|
|
1512
|
+
}, onDeleteFilter: () => { }, ButtonComponent: ButtonComponent, SelectComponent: SelectComponent, TextInputComponent: TextInputComponent, MultiSelectComponent: MultiSelectComponent }) }) })] })] }), _jsxs("div", { style: { width: '100%' }, children: [_jsx(SidebarHeadingComponent, { label: "Pivot" }), _jsx(PivotModal, { pivotRowField: pivotRowField, setPivotRowField: setPivotRowField, pivotColumnField: pivotColumnField, setPivotColumnField: setPivotColumnField, pivotAggregations: pivotAggregations, setPivotAggregations: setPivotAggregations, createdPivots: createdPivots, setCreatedPivots: setCreatedPivots, recommendedPivots: recommendedPivots, setRecommendedPivots: setRecommendedPivots, popUpTitle: pivotPopUpTitle, setPopUpTitle: setPivotPopUpTitle, selectedTable: initialTableName, SubheaderComponent: SubHeaderComponent, DeleteButtonComponent: DeleteButtonComponent, SelectComponent: SelectComponent, ButtonComponent: ButtonComponent, CardComponent: CardComponent, SecondaryButtonComponent: SecondaryButtonComponent, PopoverComponent: PopoverComponent, TextComponent: TextComponent, ErrorMessageComponent: ErrorMessageComponent, PivotRowContainer: PivotRowContainer, PivotColumnContainer: PivotColumnContainer, LoadingComponent: LoadingComponent, isOpen: showPivotPopover, setIsOpen: setShowPivotPopover, showUpdatePivot: isEditingPivot, setShowUpdatePivot: setIsEditingPivot, parentRef: parentRef, data: rows, columns: columns, triggerButtonText: 'Add pivot', selectedPivotIndex: selectedPivotIndex, setSelectedPivotIndex: setSelectedPivotIndex, removePivot: () => {
|
|
1487
1513
|
setPivot(null);
|
|
1488
1514
|
setPivotHint('');
|
|
1489
1515
|
setPivotData(null);
|
|
@@ -1506,7 +1532,8 @@ SidebarComponent = QuillSidebar, ContainerComponent = CustomContainer, SelectCol
|
|
|
1506
1532
|
if (dateRange) {
|
|
1507
1533
|
dateBucket = getDateBucketFromRange(dateRange);
|
|
1508
1534
|
}
|
|
1509
|
-
|
|
1535
|
+
const processedPivot = setTypesOnPivot(selectedPivot, columns);
|
|
1536
|
+
setPivot(processedPivot);
|
|
1510
1537
|
resetLimit();
|
|
1511
1538
|
resetSort();
|
|
1512
1539
|
setPreviousPage(0);
|
|
@@ -1515,7 +1542,7 @@ SidebarComponent = QuillSidebar, ContainerComponent = CustomContainer, SelectCol
|
|
|
1515
1542
|
if (!pivotTable) {
|
|
1516
1543
|
setTableLoading(true);
|
|
1517
1544
|
pivotTable = await generatePivotTable({
|
|
1518
|
-
pivot:
|
|
1545
|
+
pivot: processedPivot,
|
|
1519
1546
|
dateBucket,
|
|
1520
1547
|
report: tempReport,
|
|
1521
1548
|
client,
|
|
@@ -1549,18 +1576,10 @@ SidebarComponent = QuillSidebar, ContainerComponent = CustomContainer, SelectCol
|
|
|
1549
1576
|
const prev = pivotColumnField;
|
|
1550
1577
|
setPivotColumnField(value);
|
|
1551
1578
|
updatePivot(value, 'columnField', prev);
|
|
1552
|
-
},
|
|
1553
|
-
const prev =
|
|
1554
|
-
|
|
1555
|
-
updatePivot(value, '
|
|
1556
|
-
}, setPivotValueField2: (value) => {
|
|
1557
|
-
const prev = pivotValueField2;
|
|
1558
|
-
setPivotValueField2(value);
|
|
1559
|
-
updatePivot(value, 'valueField2', prev);
|
|
1560
|
-
}, setPivotAggregation: (value) => {
|
|
1561
|
-
const prev = pivotAggregation;
|
|
1562
|
-
setPivotAggregation(value);
|
|
1563
|
-
updatePivot(value, 'aggregationType', prev);
|
|
1579
|
+
}, setPivotAggregations: (value) => {
|
|
1580
|
+
const prev = pivotAggregations;
|
|
1581
|
+
setPivotAggregations(value);
|
|
1582
|
+
updatePivot(value, 'aggregations', prev);
|
|
1564
1583
|
}, onDelete: () => {
|
|
1565
1584
|
setPivot(null);
|
|
1566
1585
|
setPivotError(undefined);
|
|
@@ -1571,7 +1590,7 @@ SidebarComponent = QuillSidebar, ContainerComponent = CustomContainer, SelectCol
|
|
|
1571
1590
|
setPreviousPage(0);
|
|
1572
1591
|
const formattedRows = formatRows(rows, columns, false);
|
|
1573
1592
|
setFormattedRows(formattedRows);
|
|
1574
|
-
}, isLoading: tableLoading || loading, pivotRowField: pivotRowField, pivotColumnField: pivotColumnField,
|
|
1593
|
+
}, isLoading: tableLoading || loading, pivotRowField: pivotRowField, pivotColumnField: pivotColumnField, pivotAggregations: pivotAggregations, SecondaryButtonComponent: SecondaryButtonComponent, SelectComponent: SelectComponent, PivotColumnContainer: PivotColumnContainer, DeleteButtonComponent: DeleteButtonComponent, pivotHint: pivotHint }))] }), _jsxs("div", { style: { width: '100%' }, children: [_jsx(SidebarHeadingComponent, { label: "Sort" }), pivot && pivot.sort && pivot.sortField && (_jsx("div", { style: {
|
|
1575
1594
|
display: 'flex',
|
|
1576
1595
|
flexDirection: 'column',
|
|
1577
1596
|
gap: 8,
|
|
@@ -1618,16 +1637,15 @@ SidebarComponent = QuillSidebar, ContainerComponent = CustomContainer, SelectCol
|
|
|
1618
1637
|
if (column === '')
|
|
1619
1638
|
return;
|
|
1620
1639
|
if (pivot) {
|
|
1621
|
-
const sortFieldType = column ===
|
|
1622
|
-
? 'number'
|
|
1640
|
+
const sortFieldType = pivot.aggregations?.some((agg) => column === agg.valueField || column === 'count') ? 'number'
|
|
1623
1641
|
: pivot.rowFieldType;
|
|
1624
|
-
const tempPivot = {
|
|
1642
|
+
const tempPivot = setTypesOnPivot({
|
|
1625
1643
|
...pivot,
|
|
1626
1644
|
sort: true,
|
|
1627
1645
|
sortDirection: direction,
|
|
1628
1646
|
sortField: column,
|
|
1629
1647
|
sortFieldType: sortFieldType,
|
|
1630
|
-
};
|
|
1648
|
+
}, columns);
|
|
1631
1649
|
setPivot(tempPivot);
|
|
1632
1650
|
setPivotHint('');
|
|
1633
1651
|
let dateBucket = undefined;
|
|
@@ -1721,7 +1739,7 @@ SidebarComponent = QuillSidebar, ContainerComponent = CustomContainer, SelectCol
|
|
|
1721
1739
|
}
|
|
1722
1740
|
}, popoverTitle: "Add limit", popoverChildren: _jsx(AddLimitPopover, { TextInputComponent: TextInputComponent, Button: ButtonComponent, SecondaryButton: SecondaryButtonComponent, onSave: (limit) => {
|
|
1723
1741
|
onLimitChange(limit);
|
|
1724
|
-
} }) }) })] }))] })] }), _jsxs(ContainerComponent, { children: [isAIEnabled && (_jsx("form", { ref: askAIContainerRef, onSubmit: (event) => {
|
|
1742
|
+
} }) }) })] }))] }), _jsx("div", { style: { width: '100%', minHeight: '30vh' } })] }), _jsxs(ContainerComponent, { children: [isAIEnabled && (_jsx("form", { ref: askAIContainerRef, onSubmit: (event) => {
|
|
1725
1743
|
event.preventDefault();
|
|
1726
1744
|
}, style: {
|
|
1727
1745
|
display: 'flex',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChartTooltip.d.ts","sourceRoot":"","sources":["../../../../src/components/Chart/ChartTooltip.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,OAAO,GAAG,SAAS,CAAC;IAC5B,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,cAAc,EAAE,GAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"ChartTooltip.d.ts","sourceRoot":"","sources":["../../../../src/components/Chart/ChartTooltip.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,OAAO,GAAG,SAAS,CAAC;IAC5B,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,cAAc,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IACtD,aAAa,EAAE,GAAG,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,UAAU,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,GAAG,CAAC;CAClB;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAC;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,GAAG,CAAC;CACZ,CAAC;AAsQF,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,KAAK,EAAE,iBAAiB,kDAI5D"}
|
|
@@ -38,7 +38,7 @@ const ChartTooltipPrimary = (props) => (_jsxs(ChartTooltipFrame, { theme: props.
|
|
|
38
38
|
paddingLeft: '16px',
|
|
39
39
|
paddingTop: '8px',
|
|
40
40
|
paddingBottom: '8px',
|
|
41
|
-
}, children: props.payload.map(({ color, value, name }, idx) => (_jsx(ChartTooltipRow, { value: props.valueFormatter(value), name: name, color: color || 'black', theme: props.theme }, `id-${idx}`))) })] }));
|
|
41
|
+
}, children: props.payload.map(({ color, value, name }, idx) => (_jsx(ChartTooltipRow, { value: props.valueFormatter(value, name), name: name, color: color || 'black', theme: props.theme }, `id-${idx}`))) })] }));
|
|
42
42
|
const LABEL_TO_DAYS = {
|
|
43
43
|
'This week': 7,
|
|
44
44
|
'This month': 30,
|
|
@@ -96,7 +96,7 @@ function reformatComparisonPayload(props, primaryLabel, comparisonLabel) {
|
|
|
96
96
|
const date = item.payload[nameKey] ?? format(compDate, props.xAxisFormat);
|
|
97
97
|
const name = props.dateFormatter(date);
|
|
98
98
|
const color = item.color;
|
|
99
|
-
const value = props.valueFormatter(item.value);
|
|
99
|
+
const value = props.valueFormatter(item.value, item.name);
|
|
100
100
|
if (!columnsByKey['']) {
|
|
101
101
|
columnsByKey[''] = [];
|
|
102
102
|
}
|
|
@@ -120,7 +120,7 @@ function reformatComparisonPayload(props, primaryLabel, comparisonLabel) {
|
|
|
120
120
|
const isComparison = item.name.includes('comparison ') || item.dataKey.includes('comparison_');
|
|
121
121
|
const name = isComparison ? comparisonLabel : primaryLabel;
|
|
122
122
|
const color = item.color;
|
|
123
|
-
const value = props.valueFormatter(item.value);
|
|
123
|
+
const value = props.valueFormatter(item.value, item.name);
|
|
124
124
|
if (!columnsByKey[key]) {
|
|
125
125
|
columnsByKey[key] = [];
|
|
126
126
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LineChart.d.ts","sourceRoot":"","sources":["../../../../src/components/Chart/LineChart.tsx"],"names":[],"mappings":"AAcA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AA2B7C,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAChC,MAAM,EACN,QAAa,EACb,WAAW,EACX,IAAI,EACJ,cAAc,EACd,SAAS,EACT,UAAU,EACV,WAAW,EACX,KAAK,EACL,UAAU,EACV,iBAAwB,EACxB,SAAiB,EACjB,SAAiB,EACjB,iBAAyB,EACzB,2BAAmC,EACnC,yBAAgC,EAChC,wBAAgC,EAChC,sBAAgC,EAChC,mBAA6B,EAC7B,sBAAsB,EACtB,mBAA8B,EAC9B,UAAU,GACX,EAAE;IACD,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,WAAW,EAAE,GAAG,EAAE,CAAC;IACnB,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,cAAc,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,UAAU,CAAC;IACxB,KAAK,EAAE,GAAG,CAAC;IACX,UAAU,EAAE,GAAG,CAAC;IAChB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,2BAA2B,EAAE,OAAO,CAAC;IACrC,yBAAyB,EAAE,OAAO,CAAC;IACnC,wBAAwB,EAAE,OAAO,CAAC;IAClC,sBAAsB,EAAE,OAAO,GAAG,QAAQ,CAAC;IAC3C,mBAAmB,EAAE,OAAO,GAAG,QAAQ,CAAC;IACxC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,mBAAmB,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IACvC,UAAU,CAAC,EAAE,GAAG,CAAC;CAClB,
|
|
1
|
+
{"version":3,"file":"LineChart.d.ts","sourceRoot":"","sources":["../../../../src/components/Chart/LineChart.tsx"],"names":[],"mappings":"AAcA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AA2B7C,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAChC,MAAM,EACN,QAAa,EACb,WAAW,EACX,IAAI,EACJ,cAAc,EACd,SAAS,EACT,UAAU,EACV,WAAW,EACX,KAAK,EACL,UAAU,EACV,iBAAwB,EACxB,SAAiB,EACjB,SAAiB,EACjB,iBAAyB,EACzB,2BAAmC,EACnC,yBAAgC,EAChC,wBAAgC,EAChC,sBAAgC,EAChC,mBAA6B,EAC7B,sBAAsB,EACtB,mBAA8B,EAC9B,UAAU,GACX,EAAE;IACD,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,WAAW,EAAE,GAAG,EAAE,CAAC;IACnB,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,cAAc,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,UAAU,CAAC;IACxB,KAAK,EAAE,GAAG,CAAC;IACX,UAAU,EAAE,GAAG,CAAC;IAChB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,2BAA2B,EAAE,OAAO,CAAC;IACrC,yBAAyB,EAAE,OAAO,CAAC;IACnC,wBAAwB,EAAE,OAAO,CAAC;IAClC,sBAAsB,EAAE,OAAO,GAAG,QAAQ,CAAC;IAC3C,mBAAmB,EAAE,OAAO,GAAG,QAAQ,CAAC;IACxC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,mBAAmB,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IACvC,UAAU,CAAC,EAAE,GAAG,CAAC;CAClB,2CAqRA"}
|
|
@@ -137,13 +137,13 @@ export default function LineChart({ colors, colorMap = {}, yAxisFields, data, co
|
|
|
137
137
|
value,
|
|
138
138
|
field: xAxisField,
|
|
139
139
|
fields: [{ field: xAxisField, format: xAxisFormat }],
|
|
140
|
-
}), valueFormatter: (value) => {
|
|
141
|
-
|
|
140
|
+
}), valueFormatter: (value, name) => {
|
|
141
|
+
const field = payloadItems.find((p) => p.dataKey === name)?.dataKey;
|
|
142
|
+
if (!field)
|
|
142
143
|
return value;
|
|
143
|
-
}
|
|
144
144
|
return valueFormatter({
|
|
145
145
|
value,
|
|
146
|
-
field
|
|
146
|
+
field,
|
|
147
147
|
fields: [
|
|
148
148
|
...yAxisFields,
|
|
149
149
|
{ field: xAxisField, format: xAxisFormat },
|
|
@@ -188,7 +188,7 @@ export function QuillMultiSelectSectionList({ options, width, onChange, label, s
|
|
|
188
188
|
whiteSpace: 'nowrap',
|
|
189
189
|
overflow: 'hidden',
|
|
190
190
|
cursor: 'default',
|
|
191
|
-
}, children: emptyLabel ?? 'No options available' })] })), !isLoading ? Object.keys(filteredItems).map((key) => (_jsxs(
|
|
191
|
+
}, children: emptyLabel ?? 'No options available' })] })), !isLoading ? Object.keys(filteredItems).map((key) => (_jsxs("div", { children: [_jsxs("button", { style: {
|
|
192
192
|
display: 'flex',
|
|
193
193
|
alignItems: 'center',
|
|
194
194
|
padding: 8,
|
|
@@ -207,8 +207,8 @@ export function QuillMultiSelectSectionList({ options, width, onChange, label, s
|
|
|
207
207
|
gap: 6,
|
|
208
208
|
overflow: 'hidden',
|
|
209
209
|
}, className: "quill-option", onClick: () => {
|
|
210
|
-
const updatedValue =
|
|
211
|
-
? [] :
|
|
210
|
+
const updatedValue = options[key]?.length === value[key]?.length
|
|
211
|
+
? [] : options[key]?.map((option) => option.value) ?? [];
|
|
212
212
|
const updatedChangeEvent = {
|
|
213
213
|
target: {
|
|
214
214
|
value: {
|
|
@@ -226,7 +226,7 @@ export function QuillMultiSelectSectionList({ options, width, onChange, label, s
|
|
|
226
226
|
.quill-option:hover {
|
|
227
227
|
background: #F4F4F5;
|
|
228
228
|
}
|
|
229
|
-
` }), _jsx("input", { type: "checkbox", checked:
|
|
229
|
+
` }), _jsx("input", { type: "checkbox", checked: options[key]?.length === value[key]?.length, style: { width: '14px', height: '14px', margin: 'auto 0' }, readOnly: true }), _jsx("span", { style: {
|
|
230
230
|
textOverflow: 'ellipsis',
|
|
231
231
|
whiteSpace: 'nowrap',
|
|
232
232
|
overflow: 'hidden',
|
|
@@ -280,7 +280,7 @@ export function QuillMultiSelectSectionList({ options, width, onChange, label, s
|
|
|
280
280
|
textOverflow: 'ellipsis',
|
|
281
281
|
whiteSpace: 'nowrap',
|
|
282
282
|
overflow: 'hidden',
|
|
283
|
-
}, children: option.label })] }, "v-" + key + "-" + option.value)))] }))) : (_jsx("div", { children: _jsx(LoadingSpinner, {}) }))] }))] }));
|
|
283
|
+
}, children: option.label })] }, "v-" + key + "-" + option.value)))] }, 'sp-' + key))) : (_jsx("div", { children: _jsx(LoadingSpinner, {}) }))] }))] }));
|
|
284
284
|
}
|
|
285
285
|
export const ListboxTextInput = ({ value, onChange, placeholder, }) => {
|
|
286
286
|
return (_jsxs("div", { style: {
|
|
@@ -23,7 +23,7 @@ export declare function convertASTToPivotData(ast: NSP.Select, columnInfo: Colum
|
|
|
23
23
|
* and a list of tables in the schema.
|
|
24
24
|
*/
|
|
25
25
|
export declare function convertGroupBy(ast: AST, schemaTables: Table[], prevPivot?: Pivot, prevTable?: string): {
|
|
26
|
-
ast: NSP.
|
|
26
|
+
ast: NSP.Use | NSP.Create | NSP.Update | NSP.Insert_Replace | NSP.Alter | NSP.Delete | NSP.Drop | NSP.BigQuery;
|
|
27
27
|
pivot: Pivot | undefined;
|
|
28
28
|
} | {
|
|
29
29
|
pivot: Pivot | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"convert.d.ts","sourceRoot":"","sources":["../../../../src/components/ReportBuilder/convert.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,aAAa,IAAI,GAAG,EACpB,GAAG,
|
|
1
|
+
{"version":3,"file":"convert.d.ts","sourceRoot":"","sources":["../../../../src/components/ReportBuilder/convert.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,aAAa,IAAI,GAAG,EACpB,GAAG,EASJ,MAAM,OAAO,CAAC;AAEf,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAU5C,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAuBlE;AAGD,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,GAAG,EACT,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,QAahB;AAGD,wBAAgB,8BAA8B,CAC5C,IAAI,EAAE,GAAG,EACT,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,QAalB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC,MAAM,CAoDpD;AAUD;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,GAAG,CAAC,MAAM,EACf,YAAY,EAAE,KAAK,EAAE,GACpB,GAAG,CAAC,MAAM,CA8BZ;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CAAC,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,gBAkBrE;AA4KD,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,GAAG,CAAC,MAAM,EACf,UAAU,EAAE,cAAc,EAAE,GAC3B,KAAK,GAAG,IAAI,CAgHd;AA4DD;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,GAAG,EACR,YAAY,EAAE,KAAK,EAAE,EACrB,SAAS,CAAC,EAAE,KAAK,EACjB,SAAS,CAAC,EAAE,MAAM;;;;;;EA2InB;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,OAyNtE;AAID,wBAAgB,8BAA8B,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAY1E;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,GAAG,OA+C5C;AAGD,wBAAgB,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAkCvD"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { isValid, parseISO } from 'date-fns';
|
|
2
2
|
import { generatePivotTitle } from '../../internals/ReportBuilder/PivotModal';
|
|
3
|
-
import { extractColumnish, isSelect, isLogicalBinaryExpr, isBigQuery, isNumericColumnType, getColumnName, getTableNames, } from './ast';
|
|
3
|
+
import { extractColumnish, isSelect, isLogicalBinaryExpr, isBigQuery, isNumericColumnType, getColumnName, getTableNames, isBoolColumnType, } from './ast';
|
|
4
4
|
import { generateColumnExpr, isIdColumn } from './util';
|
|
5
5
|
import { getFieldFromExpression } from '../../utils/astFilterProcessing';
|
|
6
6
|
import { isStringType } from '../../utils/columnProcessing';
|
|
@@ -183,7 +183,10 @@ function addAllPivotColumnsToColumnAST(astColumns, pivot) {
|
|
|
183
183
|
if (!pivot) {
|
|
184
184
|
return;
|
|
185
185
|
}
|
|
186
|
-
[pivot.valueField, pivot.rowField, pivot.columnField]
|
|
186
|
+
[pivot.aggregations?.map((agg) => [agg.valueField, agg.valueField2])?.flat(), pivot.rowField, pivot.columnField]
|
|
187
|
+
.flat()
|
|
188
|
+
.filter((field) => typeof field === 'string' && field !== undefined)
|
|
189
|
+
.forEach((field) => {
|
|
187
190
|
if (!field || columnExistsInNewColumns(astColumns, field)) {
|
|
188
191
|
return;
|
|
189
192
|
}
|
|
@@ -284,6 +287,12 @@ function convertCaseWhenToPivotData(column) {
|
|
|
284
287
|
if (pivot.aggregationType === 'avg') {
|
|
285
288
|
pivot.aggregationType = 'average';
|
|
286
289
|
}
|
|
290
|
+
pivot.aggregations = [
|
|
291
|
+
{
|
|
292
|
+
valueField: pivot.valueField,
|
|
293
|
+
aggregationType: pivot.aggregationType,
|
|
294
|
+
},
|
|
295
|
+
];
|
|
287
296
|
}
|
|
288
297
|
}
|
|
289
298
|
// We need to extract a column name from the condition expression of
|
|
@@ -313,17 +322,36 @@ export function convertASTToPivotData(ast, columnInfo) {
|
|
|
313
322
|
if (column.expr?.args?.expr?.type.toLowerCase() === 'case' &&
|
|
314
323
|
['double_quote_string', 'column_ref'].includes(column.expr?.args?.expr?.args[0]?.result?.type)) {
|
|
315
324
|
const caseWhenPivot = convertCaseWhenToPivotData(column);
|
|
316
|
-
|
|
317
|
-
|
|
325
|
+
if (caseWhenPivot.aggregations) {
|
|
326
|
+
caseWhenPivot.aggregations.forEach((agg) => {
|
|
327
|
+
if (!newPivot.aggregations?.find((a) => a.valueField === agg.valueField)) {
|
|
328
|
+
newPivot.aggregations = newPivot.aggregations ?? [];
|
|
329
|
+
newPivot.aggregations.push(agg);
|
|
330
|
+
}
|
|
331
|
+
});
|
|
332
|
+
}
|
|
333
|
+
else {
|
|
334
|
+
if (!newPivot.aggregations?.find((a) => a.valueField === caseWhenPivot.valueField)) {
|
|
335
|
+
newPivot.aggregations = newPivot.aggregations ?? [];
|
|
336
|
+
newPivot.aggregations.push({
|
|
337
|
+
valueField: caseWhenPivot.valueField,
|
|
338
|
+
aggregationType: caseWhenPivot.aggregationType,
|
|
339
|
+
});
|
|
340
|
+
}
|
|
341
|
+
}
|
|
318
342
|
newPivot.columnField = caseWhenPivot.columnField;
|
|
319
343
|
}
|
|
320
344
|
else if (column.expr.type === 'aggr_func' && !isIdColumn(columnName)) {
|
|
321
345
|
const aggObj = column.expr;
|
|
322
|
-
|
|
323
|
-
if (
|
|
324
|
-
|
|
346
|
+
let aggregationType = aggObj.name.toLowerCase();
|
|
347
|
+
if (aggregationType === 'avg') {
|
|
348
|
+
aggregationType = 'average';
|
|
325
349
|
}
|
|
326
|
-
newPivot.
|
|
350
|
+
newPivot.aggregations = newPivot.aggregations ?? [];
|
|
351
|
+
newPivot.aggregations.push({
|
|
352
|
+
valueField: columnName,
|
|
353
|
+
aggregationType,
|
|
354
|
+
});
|
|
327
355
|
}
|
|
328
356
|
else if (column.expr.type === 'function') {
|
|
329
357
|
const functionInfo = column.expr.name;
|
|
@@ -349,9 +377,16 @@ export function convertASTToPivotData(ast, columnInfo) {
|
|
|
349
377
|
finalPivot.rowFieldType = 'date';
|
|
350
378
|
}
|
|
351
379
|
// Make sure pivot value field is of numeric type
|
|
352
|
-
|
|
380
|
+
// MAke sure each value field is of numeric type
|
|
381
|
+
if (finalPivot.aggregations) {
|
|
382
|
+
finalPivot.aggregations = finalPivot.aggregations.filter((agg) => {
|
|
383
|
+
const column = columnInfo.find((c) => c.field === agg.valueField);
|
|
384
|
+
return column && (isNumericColumnType(column.fieldType) || isBoolColumnType(column.fieldType));
|
|
385
|
+
});
|
|
386
|
+
}
|
|
387
|
+
else if (finalPivot.valueField) {
|
|
353
388
|
const column = columnInfo.find((c) => c.field === finalPivot.valueField);
|
|
354
|
-
if (!column || !isNumericColumnType(column.fieldType)) {
|
|
389
|
+
if (!column || !(isNumericColumnType(column.fieldType) || isBoolColumnType(column.fieldType))) {
|
|
355
390
|
finalPivot.valueField = '';
|
|
356
391
|
finalPivot.aggregationType = 'count';
|
|
357
392
|
}
|
|
@@ -373,10 +408,11 @@ export function convertASTToPivotData(ast, columnInfo) {
|
|
|
373
408
|
}
|
|
374
409
|
function addValueFieldToPivot(newAst, pivot, columns) {
|
|
375
410
|
if (!pivot ||
|
|
376
|
-
(pivot.aggregationType === 'count' && (pivot.rowField || pivot.valueField))
|
|
411
|
+
// (pivot.aggregationType === 'count' && (pivot.rowField || pivot.valueField))
|
|
412
|
+
pivot.aggregations?.some((agg) => agg.aggregationType === 'count' && (agg.valueField || pivot.rowField))) {
|
|
377
413
|
return;
|
|
378
414
|
}
|
|
379
|
-
if (!pivot.
|
|
415
|
+
if (!pivot.aggregations?.length) {
|
|
380
416
|
let firstNumericNonIdColumn = undefined;
|
|
381
417
|
(newAst.groupby?.columns ?? newAst.columns).forEach((col) => {
|
|
382
418
|
const field = getFieldFromExpression(col.expr) || col.as;
|
|
@@ -386,22 +422,32 @@ function addValueFieldToPivot(newAst, pivot, columns) {
|
|
|
386
422
|
}
|
|
387
423
|
});
|
|
388
424
|
if (firstNumericNonIdColumn) {
|
|
389
|
-
pivot.
|
|
390
|
-
|
|
391
|
-
firstNumericNonIdColumn.
|
|
392
|
-
|
|
425
|
+
pivot.aggregations = [
|
|
426
|
+
{
|
|
427
|
+
valueField: getFieldFromExpression(firstNumericNonIdColumn.expr) ||
|
|
428
|
+
firstNumericNonIdColumn.as,
|
|
429
|
+
aggregationType: 'sum',
|
|
430
|
+
},
|
|
431
|
+
];
|
|
393
432
|
}
|
|
394
433
|
else {
|
|
395
434
|
const numericColumn = columns.find((c) => isNumericColumnType(c.fieldType) && !isIdColumn(c.field));
|
|
396
435
|
if (numericColumn) {
|
|
397
436
|
newAst.columns.push(generateColumnExpr(numericColumn.field));
|
|
398
|
-
pivot.
|
|
399
|
-
|
|
437
|
+
pivot.aggregations = [
|
|
438
|
+
{
|
|
439
|
+
valueField: numericColumn.field,
|
|
440
|
+
aggregationType: 'sum',
|
|
441
|
+
},
|
|
442
|
+
];
|
|
400
443
|
}
|
|
401
444
|
else {
|
|
402
445
|
pivot.columnField = undefined;
|
|
403
446
|
pivot.columnFieldType = undefined;
|
|
404
|
-
pivot.
|
|
447
|
+
pivot.aggregations = [{
|
|
448
|
+
valueField: undefined,
|
|
449
|
+
aggregationType: 'count',
|
|
450
|
+
}];
|
|
405
451
|
}
|
|
406
452
|
}
|
|
407
453
|
}
|
|
@@ -437,9 +483,15 @@ export function convertGroupBy(ast, schemaTables, prevPivot, prevTable) {
|
|
|
437
483
|
c.expr?.column?.expr?.value,
|
|
438
484
|
c.as,
|
|
439
485
|
].includes(col));
|
|
440
|
-
if (prevPivot.
|
|
441
|
-
const
|
|
442
|
-
|
|
486
|
+
if (prevPivot.aggregations?.length) {
|
|
487
|
+
for (const agg of prevPivot.aggregations) {
|
|
488
|
+
if (agg.valueField) {
|
|
489
|
+
newColumns.push(columnAlreadyExists(agg.valueField) ?? generateColumnExpr(agg.valueField));
|
|
490
|
+
}
|
|
491
|
+
if (agg.valueField2) {
|
|
492
|
+
newColumns.push(columnAlreadyExists(agg.valueField) ?? generateColumnExpr(agg.valueField));
|
|
493
|
+
}
|
|
494
|
+
}
|
|
443
495
|
}
|
|
444
496
|
if (prevPivot.rowField) {
|
|
445
497
|
const existingCol = columnAlreadyExists(prevPivot.rowField);
|
|
@@ -75,12 +75,13 @@ export declare const MemoizedButton: ({ label, onClick, disabled, icon, tooltipT
|
|
|
75
75
|
tooltipText?: string;
|
|
76
76
|
isLoading?: boolean;
|
|
77
77
|
}) => import("react/jsx-runtime").JSX.Element;
|
|
78
|
-
export declare const MemoizedSecondaryButton: ({ label, onClick, icon, disabled, tooltipText, }: {
|
|
78
|
+
export declare const MemoizedSecondaryButton: ({ label, onClick, icon, disabled, tooltipText, width, }: {
|
|
79
79
|
label: string;
|
|
80
80
|
onClick: () => void;
|
|
81
81
|
icon?: ReactNode;
|
|
82
82
|
disabled?: boolean;
|
|
83
83
|
tooltipText?: string;
|
|
84
|
+
width?: string;
|
|
84
85
|
}) => import("react/jsx-runtime").JSX.Element;
|
|
85
86
|
export interface SelectComponentProps {
|
|
86
87
|
value: string | null | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UiComponents.d.ts","sourceRoot":"","sources":["../../../src/components/UiComponents.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EACZ,WAAW,EACX,aAAa,EAEb,SAAS,EAKV,MAAM,OAAO,CAAC;AAOf,MAAM,WAAW,MAAM;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IACrC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE,GAAG,CAAC;IACrB,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;CACtC;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAChC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;CAChE;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,SAAS,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IACrC,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,KAAK,CAAC,EAAE,GAAG,CAAC;CACb;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED;;GAEG;AACH,eAAO,MAAM,cAAc,kGAkE1B,CAAC;AAEF,eAAO,MAAM,cAAc,gEAOxB;IACD,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,4CA0DA,CAAC;AAEF,eAAO,MAAM,uBAAuB,
|
|
1
|
+
{"version":3,"file":"UiComponents.d.ts","sourceRoot":"","sources":["../../../src/components/UiComponents.tsx"],"names":[],"mappings":"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"}
|