@quillsql/react 2.8.9 → 2.9.1
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/AddToDashboardModal.d.ts +0 -1
- package/dist/AddToDashboardModal.js +181 -146
- package/dist/BarList.d.ts +0 -1
- package/dist/BarList.js +44 -36
- package/dist/BarList.js.map +1 -1
- package/dist/Chart.d.ts +0 -1
- package/dist/Chart.js +119 -87
- package/dist/Chart.js.map +1 -1
- package/dist/ChartBuilder.d.ts +0 -1
- package/dist/ChartBuilder.js +93 -83
- package/dist/ChartBuilder.js.map +1 -1
- package/dist/ChartEditor.d.ts +0 -1
- package/dist/ChartEditor.js +21 -14
- package/dist/ChartEditor.js.map +1 -1
- package/dist/Context.d.ts +0 -1
- package/dist/Context.js +57 -52
- package/dist/Dashboard.d.ts +0 -1
- package/dist/Dashboard.js +212 -179
- package/dist/Dashboard.js.map +1 -1
- package/dist/DateRangePicker/Calendar.d.ts +0 -1
- package/dist/DateRangePicker/Calendar.js +46 -41
- package/dist/DateRangePicker/DateRangePicker.d.ts +0 -1
- package/dist/DateRangePicker/DateRangePicker.js +61 -32
- package/dist/DateRangePicker/DateRangePicker.js.map +1 -1
- package/dist/DateRangePicker/DateRangePickerButton.d.ts +0 -1
- package/dist/DateRangePicker/DateRangePickerButton.js +17 -14
- package/dist/DateRangePicker/dateRangePickerUtils.d.ts +0 -1
- package/dist/DateRangePicker/dateRangePickerUtils.js +90 -76
- package/dist/DateRangePicker/index.d.ts +0 -1
- package/dist/DateRangePicker/index.js +9 -1
- package/dist/PieChart.d.ts +0 -1
- package/dist/PieChart.js +70 -35
- package/dist/QuillProvider.d.ts +0 -1
- package/dist/QuillProvider.js +7 -4
- package/dist/ReportBuilder.d.ts +0 -1
- package/dist/ReportBuilder.js +129 -120
- package/dist/SQLEditor.d.ts +0 -1
- package/dist/SQLEditor.js +65 -56
- package/dist/SQLEditor.js.map +1 -1
- package/dist/Table.d.ts +0 -1
- package/dist/Table.js +65 -60
- package/dist/Table.js.map +1 -1
- package/dist/TableChart.d.ts +0 -1
- package/dist/TableChart.js +45 -17
- package/dist/TableChart.js.map +1 -1
- package/dist/assets/ArrowDownHeadIcon.d.ts +0 -1
- package/dist/assets/ArrowDownHeadIcon.js +6 -3
- package/dist/assets/ArrowDownHeadIcon.js.map +1 -1
- package/dist/assets/ArrowDownIcon.d.ts +0 -1
- package/dist/assets/ArrowDownIcon.js +6 -3
- package/dist/assets/ArrowDownRightIcon.d.ts +0 -1
- package/dist/assets/ArrowDownRightIcon.js +6 -3
- package/dist/assets/ArrowLeftHeadIcon.d.ts +0 -1
- package/dist/assets/ArrowLeftHeadIcon.js +6 -3
- package/dist/assets/ArrowRightHeadIcon.d.ts +0 -1
- package/dist/assets/ArrowRightHeadIcon.js +6 -3
- package/dist/assets/ArrowRightIcon.d.ts +0 -1
- package/dist/assets/ArrowRightIcon.js +6 -3
- package/dist/assets/ArrowUpHeadIcon.d.ts +0 -1
- package/dist/assets/ArrowUpHeadIcon.js +6 -3
- package/dist/assets/ArrowUpIcon.d.ts +0 -1
- package/dist/assets/ArrowUpIcon.js +6 -3
- package/dist/assets/ArrowUpRightIcon.d.ts +0 -1
- package/dist/assets/ArrowUpRightIcon.js +6 -3
- package/dist/assets/CalendarIcon.d.ts +0 -1
- package/dist/assets/CalendarIcon.js +6 -3
- package/dist/assets/CalendarNormalIcon.d.ts +0 -1
- package/dist/assets/CalendarNormalIcon.js +6 -3
- package/dist/assets/DoubleArrowLeftHeadIcon.d.ts +0 -1
- package/dist/assets/DoubleArrowLeftHeadIcon.js +6 -3
- package/dist/assets/DoubleArrowRightHeadIcon.d.ts +0 -1
- package/dist/assets/DoubleArrowRightHeadIcon.js +6 -3
- package/dist/assets/ExclamationFilledIcon.d.ts +0 -1
- package/dist/assets/ExclamationFilledIcon.js +6 -3
- package/dist/assets/FilterIcon.d.ts +0 -1
- package/dist/assets/FilterIcon.js +6 -3
- package/dist/assets/LoadingSpinner.d.ts +0 -1
- package/dist/assets/LoadingSpinner.js +6 -3
- package/dist/assets/RefreshIcon.d.ts +0 -1
- package/dist/assets/RefreshIcon.js +6 -3
- package/dist/assets/SearchIcon.d.ts +0 -1
- package/dist/assets/SearchIcon.js +6 -3
- package/dist/assets/UpLeftArrowsIcon.d.ts +0 -1
- package/dist/assets/UpLeftArrowsIcon.js +6 -3
- package/dist/assets/XCircleIcon.d.ts +0 -1
- package/dist/assets/XCircleIcon.js +6 -3
- package/dist/assets/XIcon.d.ts +0 -1
- package/dist/assets/XIcon.js +6 -3
- package/dist/assets/index.d.ts +0 -1
- package/dist/assets/index.js +49 -21
- package/dist/components/Banner/index.d.ts +0 -1
- package/dist/components/Banner/index.js +10 -6
- package/dist/components/Banner/index.js.map +1 -0
- package/dist/components/BigModal/BigModal.d.ts +0 -1
- package/dist/components/BigModal/BigModal.js +39 -13
- package/dist/components/Dropdown/Dropdown.d.ts +0 -1
- package/dist/components/Dropdown/Dropdown.js +53 -24
- package/dist/components/Dropdown/DropdownItem.d.ts +0 -1
- package/dist/components/Dropdown/DropdownItem.js +35 -9
- package/dist/components/Dropdown/index.d.ts +0 -1
- package/dist/components/Dropdown/index.js +11 -2
- package/dist/components/Modal/Modal.d.ts +0 -1
- package/dist/components/Modal/Modal.js +39 -13
- package/dist/components/Modal/index.d.ts +0 -1
- package/dist/components/Modal/index.js +9 -1
- package/dist/components/QuillCard.d.ts +0 -1
- package/dist/components/QuillCard.js +13 -8
- package/dist/components/SqlTextEditor.d.ts +0 -1
- package/dist/components/SqlTextEditor.js +11 -4
- package/dist/components/SqlTextEditor.js.map +1 -1
- package/dist/components/UiComponents.d.ts +0 -1
- package/dist/components/UiComponents.js +51 -37
- package/dist/components/UiComponents.js.map +1 -1
- package/dist/components/selectUtils.d.ts +0 -1
- package/dist/components/selectUtils.js +17 -6
- package/dist/contexts/BaseColorContext.d.ts +0 -1
- package/dist/contexts/BaseColorContext.js +6 -3
- package/dist/contexts/HoveredValueContext.d.ts +0 -1
- package/dist/contexts/HoveredValueContext.js +6 -3
- package/dist/contexts/RootStylesContext.d.ts +0 -1
- package/dist/contexts/RootStylesContext.js +6 -3
- package/dist/contexts/SelectedValueContext.d.ts +0 -1
- package/dist/contexts/SelectedValueContext.js +6 -3
- package/dist/contexts/index.d.ts +0 -1
- package/dist/contexts/index.js +15 -4
- package/dist/hooks/index.d.ts +0 -1
- package/dist/hooks/index.js +15 -4
- package/dist/hooks/useDashboard.d.ts +0 -1
- package/dist/hooks/useDashboard.js +15 -10
- package/dist/hooks/useInternalState.d.ts +0 -1
- package/dist/hooks/useInternalState.js +6 -3
- package/dist/hooks/useOnClickOutside.d.ts +0 -1
- package/dist/hooks/useOnClickOutside.js +6 -3
- package/dist/hooks/useOnWindowResize.d.ts +0 -1
- package/dist/hooks/useOnWindowResize.js +7 -4
- package/dist/hooks/useQuill.d.ts +0 -1
- package/dist/hooks/useQuill.js +16 -11
- package/dist/hooks/useSelectOnKeyDown.d.ts +0 -1
- package/dist/hooks/useSelectOnKeyDown.js +7 -4
- package/dist/index.d.ts +0 -1
- package/dist/index.js +33 -13
- package/dist/internals/ReportBuilder/PivotList.d.ts +0 -1
- package/dist/internals/ReportBuilder/PivotList.js +20 -14
- package/dist/internals/ReportBuilder/PivotModal.d.ts +0 -1
- package/dist/internals/ReportBuilder/PivotModal.js +92 -84
- package/dist/internals/ReportBuilder/PivotModal.js.map +1 -1
- package/dist/internals/ReportBuilder/PivotModal.spec.d.ts +0 -1
- package/dist/internals/ReportBuilder/PivotModal.spec.js +73 -70
- package/dist/lib/font.d.ts +0 -1
- package/dist/lib/font.js +6 -2
- package/dist/lib/index.d.ts +0 -1
- package/dist/lib/index.js +20 -3
- package/dist/lib/inputTypes.d.ts +0 -1
- package/dist/lib/inputTypes.js +3 -1
- package/dist/lib/utils.d.ts +0 -1
- package/dist/lib/utils.js +19 -8
- package/dist/utils/aggregate.d.ts +0 -1
- package/dist/utils/aggregate.js +35 -28
- package/dist/utils/axisFormatter.d.ts +0 -1
- package/dist/utils/axisFormatter.js +24 -19
- package/dist/utils/axisFormatter.js.map +1 -0
- package/dist/utils/colorToHex.d.ts +0 -1
- package/dist/utils/colorToHex.js +5 -1
- package/dist/utils/dataFetcher.d.ts +0 -1
- package/dist/utils/dataFetcher.js +8 -2
- package/dist/utils/downloadCSV.d.ts +0 -1
- package/dist/utils/downloadCSV.js +6 -1
- package/dist/utils/valueFormatter.d.ts +0 -1
- package/dist/utils/valueFormatter.js +24 -19
- package/dist/utils/valueFormatter.js.map +1 -0
- package/dist/utils/valueFormatterCSV.d.ts +0 -1
- package/dist/utils/valueFormatterCSV.js +24 -19
- package/dist/utils/valueFormatterCSV.js.map +1 -0
- package/package.json +2 -1
|
@@ -1,16 +1,19 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.generatePivotTable = exports.isDateField = exports.generatePivotTableYAxis = exports.PivotModal = void 0;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
2
5
|
// @ts-nocheck
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
6
|
+
const react_1 = require("react");
|
|
7
|
+
const Context_1 = require("../../Context");
|
|
8
|
+
const dataFetcher_1 = require("../../utils/dataFetcher");
|
|
9
|
+
const assets_1 = require("../../assets");
|
|
10
|
+
const PivotList_1 = require("./PivotList");
|
|
11
|
+
const date_fns_1 = require("date-fns");
|
|
12
|
+
const valueFormatter_1 = require("../../utils/valueFormatter");
|
|
13
|
+
const ChartBuilder_1 = require("../../ChartBuilder");
|
|
14
|
+
const QuillCard_1 = require("../../components/QuillCard");
|
|
12
15
|
const QuillHover = () => {
|
|
13
|
-
return (
|
|
16
|
+
return ((0, jsx_runtime_1.jsx)("style", { children: `
|
|
14
17
|
.quill-hover {
|
|
15
18
|
background-color: white;
|
|
16
19
|
}
|
|
@@ -22,8 +25,8 @@ const QuillHover = () => {
|
|
|
22
25
|
}
|
|
23
26
|
` }));
|
|
24
27
|
};
|
|
25
|
-
|
|
26
|
-
const [isLoading, setIsLoading] = useState(false);
|
|
28
|
+
const PivotModal = ({ pivotRowField, setPivotRowField, pivotColumnField, setPivotColumnField, pivotValueField, setPivotValueField, pivotAggregation, setPivotAggregation, popUpTitle, setPopUpTitle, selectedTable, SelectComponent, ButtonComponent, PopoverComponent, HeaderComponent, LabelComponent, TextComponent, selectedPivotIndex, setSelectedPivotIndex, removePivot, selectPivot, showUpdatePivot, setShowUpdatePivot, data, columns, theme, isOpen, setIsOpen, dateRange, createdPivots, setCreatedPivots, recommendedPivots, setRecommendedPivots, triggerButtonText = 'Pivot', showPivotEditButton = false, showEditOnPivotClick = true, selectPivotOnEdit = false, showTrigger = true, rightAlign = false, parentRef, }) => {
|
|
29
|
+
const [isLoading, setIsLoading] = (0, react_1.useState)(false);
|
|
27
30
|
// for testing
|
|
28
31
|
// const [createdPivots, setCreatedPivots] = useState<Pivot[]>([
|
|
29
32
|
// {
|
|
@@ -54,16 +57,16 @@ export const PivotModal = ({ pivotRowField, setPivotRowField, pivotColumnField,
|
|
|
54
57
|
// title: 'sum of amount by created_at and merchant',
|
|
55
58
|
// },
|
|
56
59
|
// ]);
|
|
57
|
-
const [pivotUpdateIndex, setPivotUpdateIndex] = useState(null);
|
|
58
|
-
const [selectedPivotType, setSelectedPivotType] = useState('recommended');
|
|
59
|
-
const [errors, setErrors] = useState([]);
|
|
60
|
-
const [client] = useContext(ClientContext);
|
|
61
|
-
const [divWidth, setDivWidth] = useState(0);
|
|
62
|
-
const editModalRef = useRef();
|
|
60
|
+
const [pivotUpdateIndex, setPivotUpdateIndex] = (0, react_1.useState)(null);
|
|
61
|
+
const [selectedPivotType, setSelectedPivotType] = (0, react_1.useState)('recommended');
|
|
62
|
+
const [errors, setErrors] = (0, react_1.useState)([]);
|
|
63
|
+
const [client] = (0, react_1.useContext)(Context_1.ClientContext);
|
|
64
|
+
const [divWidth, setDivWidth] = (0, react_1.useState)(0);
|
|
65
|
+
const editModalRef = (0, react_1.useRef)();
|
|
63
66
|
const calculateWidth = () => {
|
|
64
67
|
return editModalRef.current.offsetWidth;
|
|
65
68
|
};
|
|
66
|
-
useEffect(() => {
|
|
69
|
+
(0, react_1.useEffect)(() => {
|
|
67
70
|
// Measure the width of the div and update state
|
|
68
71
|
if (editModalRef.current) {
|
|
69
72
|
setDivWidth(calculateWidth());
|
|
@@ -80,13 +83,13 @@ export const PivotModal = ({ pivotRowField, setPivotRowField, pivotColumnField,
|
|
|
80
83
|
window.removeEventListener('resize', handleResize);
|
|
81
84
|
};
|
|
82
85
|
}, []);
|
|
83
|
-
useEffect(() => {
|
|
86
|
+
(0, react_1.useEffect)(() => {
|
|
84
87
|
// Measure the width of the div and update state
|
|
85
88
|
if (editModalRef.current) {
|
|
86
89
|
setDivWidth(calculateWidth());
|
|
87
90
|
}
|
|
88
91
|
}, [editModalRef.current, showUpdatePivot]);
|
|
89
|
-
useEffect(() => {
|
|
92
|
+
(0, react_1.useEffect)(() => {
|
|
90
93
|
setSelectedPivotIndex(-1);
|
|
91
94
|
setPivotUpdateIndex(null);
|
|
92
95
|
setSelectedPivotType(undefined);
|
|
@@ -97,7 +100,7 @@ export const PivotModal = ({ pivotRowField, setPivotRowField, pivotColumnField,
|
|
|
97
100
|
setIsOpen(false);
|
|
98
101
|
setErrors([]);
|
|
99
102
|
}, [selectedTable]);
|
|
100
|
-
const columnsToShow = useMemo(() => {
|
|
103
|
+
const columnsToShow = (0, react_1.useMemo)(() => {
|
|
101
104
|
return (columns || []).reduce((map, col) => {
|
|
102
105
|
// only use columns shown in the report builder's table
|
|
103
106
|
// also filter out id
|
|
@@ -107,7 +110,7 @@ export const PivotModal = ({ pivotRowField, setPivotRowField, pivotColumnField,
|
|
|
107
110
|
return map;
|
|
108
111
|
}, {});
|
|
109
112
|
}, [columns]);
|
|
110
|
-
const selectedPivotTable = useMemo(() => {
|
|
113
|
+
const selectedPivotTable = (0, react_1.useMemo)(() => {
|
|
111
114
|
if (selectedPivotIndex === -1) {
|
|
112
115
|
return null;
|
|
113
116
|
}
|
|
@@ -119,7 +122,7 @@ export const PivotModal = ({ pivotRowField, setPivotRowField, pivotColumnField,
|
|
|
119
122
|
columns: columns,
|
|
120
123
|
};
|
|
121
124
|
}, [selectedPivotIndex, data, dateRange, createdPivots]);
|
|
122
|
-
const columnSelectOptions = useMemo(() => {
|
|
125
|
+
const columnSelectOptions = (0, react_1.useMemo)(() => {
|
|
123
126
|
return [
|
|
124
127
|
{ label: 'Select', value: '' },
|
|
125
128
|
...Object.keys(columnsToShow).map((key) => {
|
|
@@ -158,7 +161,7 @@ export const PivotModal = ({ pivotRowField, setPivotRowField, pivotColumnField,
|
|
|
158
161
|
const onEditRecommendedPivot = (pivot, index) => {
|
|
159
162
|
onEditPivot(pivot, null);
|
|
160
163
|
};
|
|
161
|
-
const refreshPivots = useCallback(async () => {
|
|
164
|
+
const refreshPivots = (0, react_1.useCallback)(async () => {
|
|
162
165
|
if (isLoading || Object.keys(columnsToShow).length === 0) {
|
|
163
166
|
return;
|
|
164
167
|
}
|
|
@@ -175,7 +178,7 @@ export const PivotModal = ({ pivotRowField, setPivotRowField, pivotColumnField,
|
|
|
175
178
|
}, {}),
|
|
176
179
|
};
|
|
177
180
|
try {
|
|
178
|
-
const resp = await getDataFromCloud(client, 'pivotai', cloudBody);
|
|
181
|
+
const resp = await (0, dataFetcher_1.getDataFromCloud)(client, 'pivotai', cloudBody);
|
|
179
182
|
const recommendedPivots = resp?.data?.pivotTables || [];
|
|
180
183
|
// for testing if needed
|
|
181
184
|
// const recommendedPivots = [
|
|
@@ -238,26 +241,26 @@ export const PivotModal = ({ pivotRowField, setPivotRowField, pivotColumnField,
|
|
|
238
241
|
}
|
|
239
242
|
setIsLoading(false);
|
|
240
243
|
}, [selectedTable, data, columnsToShow, isLoading]);
|
|
241
|
-
useEffect(() => {
|
|
244
|
+
(0, react_1.useEffect)(() => {
|
|
242
245
|
if (recommendedPivots.length === 0) {
|
|
243
246
|
refreshPivots();
|
|
244
247
|
}
|
|
245
248
|
}, [refreshPivots]);
|
|
246
|
-
const recommendedPivotTables = useMemo(() => {
|
|
249
|
+
const recommendedPivotTables = (0, react_1.useMemo)(() => {
|
|
247
250
|
const pts = recommendedPivots.map((p) => {
|
|
248
251
|
const { rows, columns } = generatePivotTable(p, data, dateRange, 6);
|
|
249
252
|
return { pivot: p, rows, columns };
|
|
250
253
|
});
|
|
251
254
|
return pts;
|
|
252
255
|
}, [recommendedPivots, data]);
|
|
253
|
-
const createdPivotTables = useMemo(() => {
|
|
256
|
+
const createdPivotTables = (0, react_1.useMemo)(() => {
|
|
254
257
|
const pts = createdPivots.map((p) => {
|
|
255
258
|
const { rows, columns } = generatePivotTable(p, data, dateRange, 6);
|
|
256
259
|
return { pivot: p, rows, columns };
|
|
257
260
|
});
|
|
258
261
|
return pts;
|
|
259
262
|
}, [createdPivots, data]);
|
|
260
|
-
const samplePivotTable = useMemo(() => {
|
|
263
|
+
const samplePivotTable = (0, react_1.useMemo)(() => {
|
|
261
264
|
if (!pivotAggregation || !pivotRowField) {
|
|
262
265
|
return null;
|
|
263
266
|
}
|
|
@@ -278,15 +281,15 @@ export const PivotModal = ({ pivotRowField, setPivotRowField, pivotColumnField,
|
|
|
278
281
|
pivotColumnField,
|
|
279
282
|
columnsToShow,
|
|
280
283
|
]);
|
|
281
|
-
return (
|
|
284
|
+
return ((0, jsx_runtime_1.jsx)("div", { style: { display: 'flex', flexDirection: 'column' }, children: (0, jsx_runtime_1.jsxs)("div", { style: {
|
|
282
285
|
position: 'relative',
|
|
283
286
|
display: 'inline-block',
|
|
284
287
|
textAlign: 'left',
|
|
285
|
-
}, children: [
|
|
288
|
+
}, children: [(0, jsx_runtime_1.jsx)("div", { style: {
|
|
286
289
|
display: 'flex',
|
|
287
290
|
flexDirection: 'row',
|
|
288
291
|
alignItems: 'center',
|
|
289
|
-
}, children: selectedPivotIndex !== -1 && (
|
|
292
|
+
}, children: selectedPivotIndex !== -1 && ((0, jsx_runtime_1.jsx)("span", { style: {
|
|
290
293
|
height: 10,
|
|
291
294
|
width: 10,
|
|
292
295
|
backgroundColor: theme.primaryButtonColor,
|
|
@@ -294,7 +297,7 @@ export const PivotModal = ({ pivotRowField, setPivotRowField, pivotColumnField,
|
|
|
294
297
|
position: 'absolute',
|
|
295
298
|
top: -2,
|
|
296
299
|
right: -2,
|
|
297
|
-
} })) }),
|
|
300
|
+
} })) }), (0, jsx_runtime_1.jsx)(PopoverComponent, { onClose: () => {
|
|
298
301
|
setShowUpdatePivot(false);
|
|
299
302
|
setPopUpTitle('Add Pivot');
|
|
300
303
|
}, style: rightAlign ? { right: 0 } : {}, parentRef: parentRef, showTrigger: showTrigger, label: triggerButtonText, isOpen: isOpen, setIsOpen: setIsOpen, onClick: () => {
|
|
@@ -306,52 +309,52 @@ export const PivotModal = ({ pivotRowField, setPivotRowField, pivotColumnField,
|
|
|
306
309
|
refreshPivots();
|
|
307
310
|
}
|
|
308
311
|
setShowUpdatePivot(false);
|
|
309
|
-
}, children:
|
|
312
|
+
}, children: (0, jsx_runtime_1.jsx)("div", { children: showUpdatePivot ? ((0, jsx_runtime_1.jsxs)("div", { className: "ref-in-use", ref: editModalRef, style: {
|
|
310
313
|
backgroundColor: 'rgb(255, 255, 255)',
|
|
311
314
|
display: 'flex',
|
|
312
315
|
flexDirection: 'column',
|
|
313
|
-
}, children: [
|
|
316
|
+
}, children: [(0, jsx_runtime_1.jsx)(HeaderComponent, { children: popUpTitle }), (0, jsx_runtime_1.jsx)("div", { style: { height: 12 } }), (0, jsx_runtime_1.jsx)("div", { style: { width: divWidth }, children: samplePivotTable ? ((0, jsx_runtime_1.jsx)("div", { style: {
|
|
314
317
|
marginBottom: 20,
|
|
315
318
|
minHeight: 160,
|
|
316
|
-
}, children:
|
|
319
|
+
}, children: (0, jsx_runtime_1.jsx)(PivotList_1.PivotCard, { pivotTable: samplePivotTable, theme: theme, index: 0, onSelectPivot: () => { }, selectedPivotIndex: -1, onEditPivot: () => { }, ButtonComponent: ButtonComponent, showEdit: false, clickable: false, minHeight: 140, LabelComponent: LabelComponent, TextComponent: TextComponent, HeaderComponent: HeaderComponent }) })) : ((0, jsx_runtime_1.jsx)("div", { style: { marginBottom: 20, maxWidth: 470 }, children: (0, jsx_runtime_1.jsx)(QuillCard_1.QuillCard, { theme: theme, clickable: false, children: (0, jsx_runtime_1.jsx)("div", { style: {
|
|
317
320
|
color: theme.secondaryTextColor,
|
|
318
|
-
}, children: "Select a row field and aggregation type to see a preview" }) }) })) }),
|
|
321
|
+
}, children: "Select a row field and aggregation type to see a preview" }) }) })) }), (0, jsx_runtime_1.jsxs)("div", { style: {
|
|
319
322
|
display: 'flex',
|
|
320
323
|
flexDirection: 'column',
|
|
321
324
|
gap: 10,
|
|
322
325
|
alignItems: 'center',
|
|
323
326
|
justifyContent: 'space-between',
|
|
324
|
-
}, children: [
|
|
327
|
+
}, children: [(0, jsx_runtime_1.jsxs)("div", { style: {
|
|
325
328
|
display: 'flex',
|
|
326
329
|
flexDirection: 'row',
|
|
327
330
|
gap: 20,
|
|
328
331
|
marginBottom: 5,
|
|
329
|
-
}, children: [
|
|
332
|
+
}, children: [(0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)(LabelComponent, { children: "Row Field" }), (0, jsx_runtime_1.jsx)(SelectComponent, { label: 'Row Field', id: "pivot-row-field", value: pivotRowField, onChange: (e) => {
|
|
330
333
|
setPivotRowField(e === '' ? undefined : e);
|
|
331
|
-
}, options: columnSelectOptions, theme: theme })] }),
|
|
334
|
+
}, options: columnSelectOptions, theme: theme })] }), (0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)(LabelComponent, { children: "Column Field" }), (0, jsx_runtime_1.jsx)(SelectComponent, { label: 'Column Field', id: "pivot-row-field", value: pivotColumnField, onChange: (e) => {
|
|
332
335
|
setPivotColumnField(e === '' ? undefined : e);
|
|
333
|
-
}, options: columnSelectOptions, theme: theme })] })] }),
|
|
336
|
+
}, options: columnSelectOptions, theme: theme })] })] }), (0, jsx_runtime_1.jsxs)("div", { style: {
|
|
334
337
|
display: 'flex',
|
|
335
338
|
flexDirection: 'row',
|
|
336
339
|
gap: 20,
|
|
337
340
|
marginBottom: 20,
|
|
338
|
-
}, children: [
|
|
341
|
+
}, children: [(0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)(LabelComponent, { children: "Value Field" }), (0, jsx_runtime_1.jsx)(SelectComponent, { label: 'Value Field', id: "pivot-row-field", value: pivotValueField, onChange: (e) => {
|
|
339
342
|
setPivotValueField(e === '' ? undefined : e);
|
|
340
343
|
}, options: pivotAggregation === 'count'
|
|
341
344
|
? columnSelectOptions
|
|
342
345
|
: columnSelectOptions.filter((option) => {
|
|
343
346
|
return (option.value === '' ||
|
|
344
|
-
numberFormatOptions.includes(columns.find((col) => col.field === option.value)?.format));
|
|
345
|
-
}), theme: theme })] }),
|
|
347
|
+
ChartBuilder_1.numberFormatOptions.includes(columns.find((col) => col.field === option.value)?.format));
|
|
348
|
+
}), theme: theme })] }), (0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)(LabelComponent, { children: "Aggregation Type" }), (0, jsx_runtime_1.jsx)(SelectComponent, { label: 'Aggregation Type', id: "pivot-row-field", value: pivotAggregation, theme: theme, onChange: (e) => {
|
|
346
349
|
if (e !== 'count' &&
|
|
347
350
|
pivotValueField &&
|
|
348
|
-
!numberFormatOptions.includes(columns.find((col) => col.field === pivotValueField)?.format)) {
|
|
351
|
+
!ChartBuilder_1.numberFormatOptions.includes(columns.find((col) => col.field === pivotValueField)?.format)) {
|
|
349
352
|
setPivotValueField(null);
|
|
350
353
|
}
|
|
351
354
|
setPivotAggregation(e === '' ? undefined : e);
|
|
352
355
|
}, options: ['', 'sum', 'average', 'count'].map((option) => {
|
|
353
356
|
return { label: option || 'Select', value: option };
|
|
354
|
-
}) })] })] })] }),
|
|
357
|
+
}) })] })] })] }), (0, jsx_runtime_1.jsx)("div", { children: (0, jsx_runtime_1.jsx)(ButtonComponent, { id: "custom-button", onClick: () => {
|
|
355
358
|
const errors = [];
|
|
356
359
|
if (!pivotRowField) {
|
|
357
360
|
errors.push('Row field cannot be empty');
|
|
@@ -378,13 +381,13 @@ export const PivotModal = ({ pivotRowField, setPivotRowField, pivotColumnField,
|
|
|
378
381
|
setPopUpTitle('Add Pivot');
|
|
379
382
|
}
|
|
380
383
|
setErrors(errors);
|
|
381
|
-
}, label: popUpTitle }) }),
|
|
384
|
+
}, label: popUpTitle }) }), (0, jsx_runtime_1.jsx)("div", { children: errors.length > 0 && ((0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("div", { style: {
|
|
382
385
|
fontSize: 14,
|
|
383
386
|
marginBottom: '6px',
|
|
384
387
|
marginTop: '12px',
|
|
385
388
|
fontWeight: '600',
|
|
386
389
|
color: theme.secondaryTextColor,
|
|
387
|
-
}, children: "Pivot Errors" }), errors.map((error, index) => (
|
|
390
|
+
}, children: "Pivot Errors" }), errors.map((error, index) => ((0, jsx_runtime_1.jsx)("div", { style: {
|
|
388
391
|
borderRadius: 8,
|
|
389
392
|
backgroundColor: '#FF9494',
|
|
390
393
|
paddingLeft: '12px',
|
|
@@ -397,7 +400,7 @@ export const PivotModal = ({ pivotRowField, setPivotRowField, pivotColumnField,
|
|
|
397
400
|
fontFamily: theme?.fontFamily,
|
|
398
401
|
color: 'white',
|
|
399
402
|
marginBottom: 5,
|
|
400
|
-
}, children: error }, index)))] })) })] })) : (
|
|
403
|
+
}, children: error }, index)))] })) })] })) : ((0, jsx_runtime_1.jsx)("div", { style: {
|
|
401
404
|
display: 'flex',
|
|
402
405
|
flexDirection: 'column',
|
|
403
406
|
fontFamily: theme?.fontFamily,
|
|
@@ -405,20 +408,20 @@ export const PivotModal = ({ pivotRowField, setPivotRowField, pivotColumnField,
|
|
|
405
408
|
width: selectedPivotTable ? 500 : 600,
|
|
406
409
|
maxHeight: 600,
|
|
407
410
|
overflowY: 'scroll',
|
|
408
|
-
}, children: selectedPivotIndex >= 0 ? (
|
|
411
|
+
}, children: selectedPivotIndex >= 0 ? ((0, jsx_runtime_1.jsx)("div", { children: (0, jsx_runtime_1.jsx)("div", { onClick: () => {
|
|
409
412
|
setPopUpTitle('Edit Pivot');
|
|
410
413
|
onEditPivot(createdPivots[0], 0);
|
|
411
|
-
}, children:
|
|
414
|
+
}, children: (0, jsx_runtime_1.jsx)(PivotList_1.PivotCard, { pivotTable: {
|
|
412
415
|
pivot: selectedPivotTable?.pivot,
|
|
413
416
|
rows: selectedPivotTable?.rows,
|
|
414
417
|
columns: selectedPivotTable?.columns,
|
|
415
418
|
}, theme: theme, index: 0, onSelectPivot: () => { }, selectedPivotIndex: -1, onEditPivot: () => { }, ButtonComponent: ButtonComponent, showEdit: false, onClose: () => {
|
|
416
419
|
removePivot();
|
|
417
|
-
}, clickable: true, minHeight: 180, LabelComponent: LabelComponent, TextComponent: TextComponent, HeaderComponent: HeaderComponent }) }) })) : (
|
|
420
|
+
}, clickable: true, minHeight: 180, LabelComponent: LabelComponent, TextComponent: TextComponent, HeaderComponent: HeaderComponent }) }) })) : ((0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', flexDirection: 'column' }, children: [(0, jsx_runtime_1.jsx)("div", { style: {
|
|
418
421
|
fontWeight: '600',
|
|
419
422
|
marginBottom: 5,
|
|
420
423
|
fontSize: 18,
|
|
421
|
-
}, children: "Recommended Pivots" }),
|
|
424
|
+
}, children: "Recommended Pivots" }), (0, jsx_runtime_1.jsx)("div", { children: (0, jsx_runtime_1.jsxs)("div", { onClick: refreshPivots, style: {
|
|
422
425
|
color: theme?.secondaryTextColor,
|
|
423
426
|
cursor: 'pointer',
|
|
424
427
|
marginTop: 0,
|
|
@@ -433,7 +436,7 @@ export const PivotModal = ({ pivotRowField, setPivotRowField, pivotColumnField,
|
|
|
433
436
|
paddingTop: 6,
|
|
434
437
|
paddingBottom: 6,
|
|
435
438
|
borderRadius: 5,
|
|
436
|
-
}, className: "quill-hover", children: [
|
|
439
|
+
}, className: "quill-hover", children: [(0, jsx_runtime_1.jsx)(QuillHover, {}), (0, jsx_runtime_1.jsx)(assets_1.RefreshIcon, { style: { marginRight: 5 } }), "Refresh"] }) }), isLoading ? ((0, jsx_runtime_1.jsxs)("div", { style: {
|
|
437
440
|
background: theme.backgroundColor,
|
|
438
441
|
width: 250,
|
|
439
442
|
minWidth: 250,
|
|
@@ -444,9 +447,10 @@ export const PivotModal = ({ pivotRowField, setPivotRowField, pivotColumnField,
|
|
|
444
447
|
display: 'flex',
|
|
445
448
|
margin: '0px auto',
|
|
446
449
|
justifyContent: 'center',
|
|
447
|
-
}, children: [
|
|
450
|
+
}, children: [(0, jsx_runtime_1.jsx)("div", { style: { height: 100 } }), (0, jsx_runtime_1.jsxs)("svg", { width: "24", height: "24", children: [(0, jsx_runtime_1.jsx)("circle", { cx: "12", cy: "12", r: "9.375", strokeWidth: "3.75", strokeDasharray: "calc(2 * 3.14 * 9.375 / 3) calc(2 * 3.14 * 9.375 * 2 / 3)", strokeDashoffset: "calc(2 * 3.14 * 9.375 / 6)", stroke: theme?.primaryTextColor || '#364153', fill: "none", transform: "rotate(-90 12 12)", children: (0, jsx_runtime_1.jsx)("animateTransform", { attributeName: "transform", attributeType: "XML", type: "rotate", from: "-180 12 12", to: "180 12 12", dur: "0.8s", repeatCount: "indefinite" }) }), (0, jsx_runtime_1.jsx)("circle", { cx: "12", cy: "12", r: "9.375", strokeWidth: "3.75", strokeDasharray: "calc(2 * 3.14 * 9.375 / 3) calc(2 * 3.14 * 9.375 * 1 / 3)", strokeDashoffset: "calc(2 * 3.14 * 9.375 / 3) calc(2 * 3.14 * 9.375 * 2 / 3)", stroke: '#ADB1B9', fill: "none", transform: "rotate(90 12 12)", children: (0, jsx_runtime_1.jsx)("animateTransform", { attributeName: "transform", attributeType: "XML", type: "rotate", from: "0 12 12", to: "360 12 12", dur: "0.8s", repeatCount: "indefinite" }) })] })] })) : ((0, jsx_runtime_1.jsxs)("div", { children: [recommendedPivotTables.length == 0 && ((0, jsx_runtime_1.jsx)("div", { style: { marginBottom: 20 }, children: "There are currently no recommended pivots available." })), (0, jsx_runtime_1.jsx)(PivotList_1.PivotList, { recommendedPivotTables: recommendedPivotTables, createdPivotTables: createdPivotTables, theme: theme, onSelectRecommendedPivot: onSelectRecommendedPivot, onSelectCreatedPivot: onSelectCreatedPivot, selectedPivotIndex: selectedPivotIndex, selectedPivotType: selectedPivotType, ButtonComponent: ButtonComponent, HeaderComponent: HeaderComponent, onEditRecommendedPivot: onEditRecommendedPivot, onEditCreatedPivot: onEditPivot, showCreatePivot: true, showPivotEditButton: showPivotEditButton, LabelComponent: LabelComponent, TextComponent: TextComponent })] }))] })) })) }) })] }) }));
|
|
448
451
|
};
|
|
449
|
-
|
|
452
|
+
exports.PivotModal = PivotModal;
|
|
453
|
+
function generatePivotTableYAxis(pivot, cols, format) {
|
|
450
454
|
// Use the column field for the field and label if there is one
|
|
451
455
|
if (pivot.columnField) {
|
|
452
456
|
return cols.slice(1).map(({ field, label }) => ({ field, label, format }));
|
|
@@ -469,8 +473,9 @@ export function generatePivotTableYAxis(pivot, cols, format) {
|
|
|
469
473
|
},
|
|
470
474
|
];
|
|
471
475
|
}
|
|
476
|
+
exports.generatePivotTableYAxis = generatePivotTableYAxis;
|
|
472
477
|
function generatePivotTitle(pivot) {
|
|
473
|
-
return snakeCaseToTitleCase(`${pivot.aggregationType} of ${pivot.valueField} by ${pivot.rowField}${pivot.columnField ? ` and ${pivot.columnField}` : ''}`);
|
|
478
|
+
return (0, ChartBuilder_1.snakeCaseToTitleCase)(`${pivot.aggregationType} of ${pivot.valueField} by ${pivot.rowField}${pivot.columnField ? ` and ${pivot.columnField}` : ''}`);
|
|
474
479
|
}
|
|
475
480
|
function getDateRange(dateRange, column, data) {
|
|
476
481
|
if (!dateRange || !dateRange[0]) {
|
|
@@ -489,9 +494,9 @@ function getDateRange(dateRange, column, data) {
|
|
|
489
494
|
for (let i = 0; i < data.length; i++) {
|
|
490
495
|
if (data[i][column]) {
|
|
491
496
|
const value = new Date(data[i][column]);
|
|
492
|
-
lastestDate = lastestDate === null ? value : max([lastestDate, value]);
|
|
497
|
+
lastestDate = lastestDate === null ? value : (0, date_fns_1.max)([lastestDate, value]);
|
|
493
498
|
earliestDate =
|
|
494
|
-
earliestDate === null ? value : min([earliestDate, value]);
|
|
499
|
+
earliestDate === null ? value : (0, date_fns_1.min)([earliestDate, value]);
|
|
495
500
|
}
|
|
496
501
|
}
|
|
497
502
|
return { start: earliestDate, end: lastestDate };
|
|
@@ -502,20 +507,20 @@ function getDateRange(dateRange, column, data) {
|
|
|
502
507
|
}
|
|
503
508
|
function getDateBuckets(dateRange, column, data) {
|
|
504
509
|
if (!dateRange || !dateRange[0]) {
|
|
505
|
-
return eachMonthOfInterval(getDateRange(dateRange, column, data));
|
|
510
|
+
return (0, date_fns_1.eachMonthOfInterval)(getDateRange(dateRange, column, data));
|
|
506
511
|
}
|
|
507
|
-
const dayDifference = differenceInDays(new Date(dateRange[1]), new Date(dateRange[0]));
|
|
512
|
+
const dayDifference = (0, date_fns_1.differenceInDays)(new Date(dateRange[1]), new Date(dateRange[0]));
|
|
508
513
|
if (dayDifference < 14) {
|
|
509
|
-
return eachDayOfInterval({ start: dateRange[0], end: dateRange[1] });
|
|
514
|
+
return (0, date_fns_1.eachDayOfInterval)({ start: dateRange[0], end: dateRange[1] });
|
|
510
515
|
}
|
|
511
516
|
else if (dayDifference < 60) {
|
|
512
|
-
return eachWeekOfInterval({ start: dateRange[0], end: dateRange[1] }, { weekStartsOn: 1 });
|
|
517
|
+
return (0, date_fns_1.eachWeekOfInterval)({ start: dateRange[0], end: dateRange[1] }, { weekStartsOn: 1 });
|
|
513
518
|
}
|
|
514
519
|
else if (dayDifference < 365 * 3) {
|
|
515
|
-
return eachMonthOfInterval({ start: dateRange[0], end: dateRange[1] });
|
|
520
|
+
return (0, date_fns_1.eachMonthOfInterval)({ start: dateRange[0], end: dateRange[1] });
|
|
516
521
|
}
|
|
517
522
|
else {
|
|
518
|
-
return eachYearOfInterval({ start: dateRange[0], end: dateRange[1] });
|
|
523
|
+
return (0, date_fns_1.eachYearOfInterval)({ start: dateRange[0], end: dateRange[1] });
|
|
519
524
|
}
|
|
520
525
|
}
|
|
521
526
|
function getDateString(value, dateRange) {
|
|
@@ -524,7 +529,7 @@ function getDateString(value, dateRange) {
|
|
|
524
529
|
format = 'MMM_yyyy';
|
|
525
530
|
}
|
|
526
531
|
else {
|
|
527
|
-
const dayDifference = differenceInDays(new Date(dateRange[1]), new Date(dateRange[0]));
|
|
532
|
+
const dayDifference = (0, date_fns_1.differenceInDays)(new Date(dateRange[1]), new Date(dateRange[0]));
|
|
528
533
|
if (dayDifference < 14) {
|
|
529
534
|
format = 'MMM_dd_yyyy';
|
|
530
535
|
}
|
|
@@ -538,19 +543,20 @@ function getDateString(value, dateRange) {
|
|
|
538
543
|
format = 'yyyy';
|
|
539
544
|
}
|
|
540
545
|
}
|
|
541
|
-
return valueFormatter({
|
|
546
|
+
return (0, valueFormatter_1.valueFormatter)({
|
|
542
547
|
value,
|
|
543
548
|
field: 'date',
|
|
544
549
|
fields: [{ field: 'date', format }],
|
|
545
550
|
});
|
|
546
551
|
}
|
|
547
|
-
|
|
552
|
+
function isDateField(fieldType) {
|
|
548
553
|
return (fieldType === 'date' ||
|
|
549
554
|
fieldType === 'datetime' ||
|
|
550
555
|
fieldType === 'timestamp' ||
|
|
551
556
|
fieldType === 'timestamptz');
|
|
552
557
|
}
|
|
553
|
-
|
|
558
|
+
exports.isDateField = isDateField;
|
|
559
|
+
function generatePivotTable(pivot, data, dateRange, rowLimit = -1) {
|
|
554
560
|
const pivotRows = [];
|
|
555
561
|
const uniqueRows = isDateField(pivot.rowFieldType)
|
|
556
562
|
? getDateBuckets(dateRange, pivot.rowField, data)
|
|
@@ -586,23 +592,23 @@ export function generatePivotTable(pivot, data, dateRange, rowLimit = -1) {
|
|
|
586
592
|
let filteredData;
|
|
587
593
|
let value;
|
|
588
594
|
const nextRowValue = isDateField(pivot.rowFieldType)
|
|
589
|
-
? uniqueRows[rowIndex + 1] || endOfDay(rowDateRange.end)
|
|
595
|
+
? uniqueRows[rowIndex + 1] || (0, date_fns_1.endOfDay)(rowDateRange.end)
|
|
590
596
|
: null;
|
|
591
597
|
if (pivot.columnField) {
|
|
592
598
|
const nextColumnValue = isDateField(pivot.columnFieldType)
|
|
593
|
-
? uniqueColumns[colIndex + 1] || endOfDay(columnDateRange.end)
|
|
599
|
+
? uniqueColumns[colIndex + 1] || (0, date_fns_1.endOfDay)(columnDateRange.end)
|
|
594
600
|
: null;
|
|
595
601
|
// If columnField is provided, filter by both rowField and columnField
|
|
596
602
|
if (isDateField(pivot.columnFieldType) &&
|
|
597
603
|
isDateField(pivot.rowFieldType)) {
|
|
598
604
|
filteredData = data.filter((item) => {
|
|
599
|
-
return (isWithinInterval(new Date(item[pivot.rowField]), {
|
|
605
|
+
return ((0, date_fns_1.isWithinInterval)(new Date(item[pivot.rowField]), {
|
|
600
606
|
start: rowValue,
|
|
601
|
-
end: subMilliseconds(nextRowValue, 1),
|
|
607
|
+
end: (0, date_fns_1.subMilliseconds)(nextRowValue, 1),
|
|
602
608
|
}) &&
|
|
603
|
-
isWithinInterval(new Date(item[pivot.columnField]), {
|
|
609
|
+
(0, date_fns_1.isWithinInterval)(new Date(item[pivot.columnField]), {
|
|
604
610
|
start: colValue,
|
|
605
|
-
end: subMilliseconds(nextColumnValue, 1),
|
|
611
|
+
end: (0, date_fns_1.subMilliseconds)(nextColumnValue, 1),
|
|
606
612
|
}));
|
|
607
613
|
});
|
|
608
614
|
}
|
|
@@ -610,18 +616,18 @@ export function generatePivotTable(pivot, data, dateRange, rowLimit = -1) {
|
|
|
610
616
|
!isDateField(pivot.rowFieldType)) {
|
|
611
617
|
filteredData = data.filter((item) => {
|
|
612
618
|
return (item[pivot.rowField] === rowValue &&
|
|
613
|
-
isWithinInterval(new Date(item[pivot.columnField]), {
|
|
619
|
+
(0, date_fns_1.isWithinInterval)(new Date(item[pivot.columnField]), {
|
|
614
620
|
start: colValue,
|
|
615
|
-
end: subMilliseconds(nextColumnValue, 1),
|
|
621
|
+
end: (0, date_fns_1.subMilliseconds)(nextColumnValue, 1),
|
|
616
622
|
}));
|
|
617
623
|
});
|
|
618
624
|
}
|
|
619
625
|
else if (!isDateField(pivot.columnFieldType) &&
|
|
620
626
|
isDateField(pivot.rowFieldType)) {
|
|
621
627
|
filteredData = data.filter((item) => {
|
|
622
|
-
return (isWithinInterval(new Date(item[pivot.rowField]), {
|
|
628
|
+
return ((0, date_fns_1.isWithinInterval)(new Date(item[pivot.rowField]), {
|
|
623
629
|
start: rowValue,
|
|
624
|
-
end: subMilliseconds(nextRowValue, 1),
|
|
630
|
+
end: (0, date_fns_1.subMilliseconds)(nextRowValue, 1),
|
|
625
631
|
}) && item[pivot.columnField || ''] === colValue);
|
|
626
632
|
});
|
|
627
633
|
}
|
|
@@ -636,9 +642,9 @@ export function generatePivotTable(pivot, data, dateRange, rowLimit = -1) {
|
|
|
636
642
|
// If columnField is not provided, filter by rowField only
|
|
637
643
|
filteredData = isDateField(pivot.rowFieldType)
|
|
638
644
|
? data.filter((item) => {
|
|
639
|
-
return isWithinInterval(new Date(item[pivot.rowField]), {
|
|
645
|
+
return (0, date_fns_1.isWithinInterval)(new Date(item[pivot.rowField]), {
|
|
640
646
|
start: rowValue,
|
|
641
|
-
end: subMilliseconds(nextRowValue, 1),
|
|
647
|
+
end: (0, date_fns_1.subMilliseconds)(nextRowValue, 1),
|
|
642
648
|
});
|
|
643
649
|
})
|
|
644
650
|
: data.filter((item) => item[pivot.rowField] === rowValue);
|
|
@@ -685,9 +691,11 @@ export function generatePivotTable(pivot, data, dateRange, rowLimit = -1) {
|
|
|
685
691
|
!pivot.columnField &&
|
|
686
692
|
index === 1
|
|
687
693
|
? 'Count'
|
|
688
|
-
: snakeCaseToTitleCase(columnName),
|
|
694
|
+
: (0, ChartBuilder_1.snakeCaseToTitleCase)(columnName),
|
|
689
695
|
field: columnName,
|
|
690
696
|
};
|
|
691
697
|
}),
|
|
692
698
|
};
|
|
693
699
|
}
|
|
700
|
+
exports.generatePivotTable = generatePivotTable;
|
|
701
|
+
//# sourceMappingURL=PivotModal.js.map
|