@quillsql/react 2.16.67 → 2.16.69
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/index.cjs +80 -53
- package/dist/index.d.cts +9 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.js +352 -325
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -17315,6 +17315,7 @@ async function generatePivotWithSQL({
|
|
|
17315
17315
|
sort: pivot.sort,
|
|
17316
17316
|
sortDirection: pivot.sortDirection,
|
|
17317
17317
|
sortField: pivot.sortField,
|
|
17318
|
+
sortFieldTable: pivot.sortFieldTable,
|
|
17318
17319
|
sortFieldType: pivot.sortFieldType,
|
|
17319
17320
|
rowLimit: pivot.rowLimit,
|
|
17320
17321
|
dateBucket: resolvedDateBucket
|
|
@@ -21037,7 +21038,7 @@ import {
|
|
|
21037
21038
|
useContext as useContext21,
|
|
21038
21039
|
useEffect as useEffect19,
|
|
21039
21040
|
useState as useState26,
|
|
21040
|
-
useMemo as
|
|
21041
|
+
useMemo as useMemo20,
|
|
21041
21042
|
useRef as useRef15
|
|
21042
21043
|
} from "react";
|
|
21043
21044
|
|
|
@@ -21046,7 +21047,7 @@ import {
|
|
|
21046
21047
|
useState as useState20,
|
|
21047
21048
|
useEffect as useEffect16,
|
|
21048
21049
|
useContext as useContext17,
|
|
21049
|
-
useMemo as
|
|
21050
|
+
useMemo as useMemo17,
|
|
21050
21051
|
useRef as useRef13
|
|
21051
21052
|
} from "react";
|
|
21052
21053
|
|
|
@@ -28153,12 +28154,10 @@ var useDashboardReportInternal = (reportId, config) => {
|
|
|
28153
28154
|
const { dashboardCustomFilters } = useContext(DashboardFiltersContext);
|
|
28154
28155
|
const reportState = reports[reportId];
|
|
28155
28156
|
const reportDashboardName = reportState?.dashboardName;
|
|
28157
|
+
const reportDashboardFilterState = reportDashboardName ? dashboardFilters[reportDashboardName] : void 0;
|
|
28156
28158
|
const reportDashboardFilters = useMemo2(() => {
|
|
28157
|
-
|
|
28158
|
-
|
|
28159
|
-
(f) => f.filter
|
|
28160
|
-
);
|
|
28161
|
-
}, [dashboardFilters, reportDashboardName]);
|
|
28159
|
+
return Object.values(reportDashboardFilterState ?? {}).map((f) => f.filter);
|
|
28160
|
+
}, [reportDashboardFilterState]);
|
|
28162
28161
|
const {
|
|
28163
28162
|
data: dashboardData,
|
|
28164
28163
|
dashboardFilters: dashboardFiltersInternal,
|
|
@@ -29108,7 +29107,7 @@ var BarList = React2.forwardRef((props, ref) => {
|
|
|
29108
29107
|
var BarList_default = BarList;
|
|
29109
29108
|
|
|
29110
29109
|
// src/components/Chart/PieChart.tsx
|
|
29111
|
-
import React4 from "react";
|
|
29110
|
+
import React4, { useMemo as useMemo4 } from "react";
|
|
29112
29111
|
import { Legend, Pie, PieChart, ResponsiveContainer, Tooltip } from "recharts";
|
|
29113
29112
|
|
|
29114
29113
|
// src/utils/color.ts
|
|
@@ -31801,7 +31800,7 @@ import { jsx as jsx28, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
|
31801
31800
|
var defaultValueFormatter = (value) => (value * 1).toFixed(1) + "%";
|
|
31802
31801
|
var parseData2 = (data, colors, categoryKey, valueKey) => {
|
|
31803
31802
|
const maxItems = 20;
|
|
31804
|
-
const slicedData = deepCopy(data
|
|
31803
|
+
const slicedData = deepCopy(data.slice(0, maxItems));
|
|
31805
31804
|
const totalValue = slicedData.reduce(
|
|
31806
31805
|
(acc, dataPoint) => (
|
|
31807
31806
|
// Big(acc)
|
|
@@ -32047,8 +32046,8 @@ var PieChartWrapper = React4.forwardRef(
|
|
|
32047
32046
|
category = "pct_of_the_total",
|
|
32048
32047
|
index = "status",
|
|
32049
32048
|
data,
|
|
32050
|
-
colors
|
|
32051
|
-
colorMap
|
|
32049
|
+
colors,
|
|
32050
|
+
colorMap,
|
|
32052
32051
|
variant = "donut",
|
|
32053
32052
|
valueFormatter: valueFormatter2 = defaultValueFormatter,
|
|
32054
32053
|
className,
|
|
@@ -32058,10 +32057,24 @@ var PieChartWrapper = React4.forwardRef(
|
|
|
32058
32057
|
onClickLegendElement,
|
|
32059
32058
|
yAxisFields,
|
|
32060
32059
|
showLegend = false,
|
|
32060
|
+
showAnimation,
|
|
32061
|
+
isAnimationActive,
|
|
32061
32062
|
...other
|
|
32062
32063
|
} = props;
|
|
32063
32064
|
const isDonut = variant == "donut";
|
|
32064
|
-
|
|
32065
|
+
const chartData = data ?? [];
|
|
32066
|
+
const parsedData = useMemo4(() => {
|
|
32067
|
+
const palette = colorMap?.[category]?.primary ?? colors ?? [];
|
|
32068
|
+
const containsCssVars = palette.some(
|
|
32069
|
+
(color) => typeof color === "string" && color.includes("var(")
|
|
32070
|
+
);
|
|
32071
|
+
const resolvedColors = containsCssVars ? Array.from({ length: chartData.length }).map(
|
|
32072
|
+
(_, idx) => palette[idx % palette.length] ?? palette[palette.length - 1] ?? "#808080"
|
|
32073
|
+
) : palette.length >= chartData.length ? palette.slice(0, chartData.length) : generateArrayFromColor(palette, chartData.length);
|
|
32074
|
+
return parseData2(chartData, resolvedColors, index, category);
|
|
32075
|
+
}, [category, colorMap, colors, chartData, index]);
|
|
32076
|
+
const animationActive = isAnimationActive ?? showAnimation ?? true;
|
|
32077
|
+
if (chartData.length === 0) {
|
|
32065
32078
|
return /* @__PURE__ */ jsx28(
|
|
32066
32079
|
"div",
|
|
32067
32080
|
{
|
|
@@ -32104,28 +32117,11 @@ var PieChartWrapper = React4.forwardRef(
|
|
|
32104
32117
|
height: "100%",
|
|
32105
32118
|
minWidth: 0,
|
|
32106
32119
|
minHeight: 0,
|
|
32107
|
-
initialDimension: { width: 1, height: 1 },
|
|
32108
32120
|
children: /* @__PURE__ */ jsxs20(PieChart, { children: [
|
|
32109
32121
|
/* @__PURE__ */ jsx28(
|
|
32110
32122
|
Pie,
|
|
32111
32123
|
{
|
|
32112
|
-
data:
|
|
32113
|
-
data,
|
|
32114
|
-
(() => {
|
|
32115
|
-
const colorArray = colorMap[category] && colorMap[category]["primary"] && colorMap[category]["primary"] || colors;
|
|
32116
|
-
const containsCssVars = colorArray.some(
|
|
32117
|
-
(color) => typeof color === "string" && color.includes("var(")
|
|
32118
|
-
);
|
|
32119
|
-
if (containsCssVars) {
|
|
32120
|
-
return Array.from({ length: data.length }).map(
|
|
32121
|
-
(_, idx) => colorArray[idx % colorArray.length] ?? colorArray[colorArray.length - 1] ?? "#808080"
|
|
32122
|
-
);
|
|
32123
|
-
}
|
|
32124
|
-
return colorArray.length >= data.length ? colorArray.slice(0, data.length) : generateArrayFromColor(colorArray, data.length);
|
|
32125
|
-
})(),
|
|
32126
|
-
index,
|
|
32127
|
-
category
|
|
32128
|
-
),
|
|
32124
|
+
data: parsedData,
|
|
32129
32125
|
cx: "50%",
|
|
32130
32126
|
cy: "50%",
|
|
32131
32127
|
startAngle: 90,
|
|
@@ -32135,7 +32131,7 @@ var PieChartWrapper = React4.forwardRef(
|
|
|
32135
32131
|
paddingAngle: 0,
|
|
32136
32132
|
dataKey: category,
|
|
32137
32133
|
nameKey: index,
|
|
32138
|
-
isAnimationActive:
|
|
32134
|
+
isAnimationActive: animationActive,
|
|
32139
32135
|
onClick: onClickChartElement,
|
|
32140
32136
|
labelLine: false,
|
|
32141
32137
|
label: false
|
|
@@ -32192,7 +32188,7 @@ var PieChart_default = PieChartWrapper;
|
|
|
32192
32188
|
|
|
32193
32189
|
// src/components/QuillTable.tsx
|
|
32194
32190
|
init_valueFormatter();
|
|
32195
|
-
import { useContext as useContext6, useEffect as useEffect8, useMemo as
|
|
32191
|
+
import { useContext as useContext6, useEffect as useEffect8, useMemo as useMemo5, useState as useState10 } from "react";
|
|
32196
32192
|
import { jsx as jsx29, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
32197
32193
|
var NUMERIC_TABLE_FORMATS = /* @__PURE__ */ new Set([
|
|
32198
32194
|
"whole_number",
|
|
@@ -32251,7 +32247,7 @@ function QuillTable({
|
|
|
32251
32247
|
}, [sort]);
|
|
32252
32248
|
const holdFullPageLoader = rows?.length === 0 && isLoading;
|
|
32253
32249
|
const pageCountUnknown = manualPagination && pageCount === -1;
|
|
32254
|
-
const { activeRows, maxPage } =
|
|
32250
|
+
const { activeRows, maxPage } = useMemo5(() => {
|
|
32255
32251
|
const start = currentPage * rowsPerPage;
|
|
32256
32252
|
const end = (currentPage + 1) * rowsPerPage;
|
|
32257
32253
|
const rowList = rows ?? [];
|
|
@@ -33412,7 +33408,7 @@ function hashCode(obj) {
|
|
|
33412
33408
|
}
|
|
33413
33409
|
|
|
33414
33410
|
// src/components/Chart/LineChart.tsx
|
|
33415
|
-
import { useMemo as
|
|
33411
|
+
import { useMemo as useMemo6 } from "react";
|
|
33416
33412
|
|
|
33417
33413
|
// src/components/Chart/CustomReferenceLine.tsx
|
|
33418
33414
|
init_constants();
|
|
@@ -33533,7 +33529,7 @@ function LineChart({
|
|
|
33533
33529
|
referenceLines,
|
|
33534
33530
|
showLegend = false
|
|
33535
33531
|
}) {
|
|
33536
|
-
const formattedData =
|
|
33532
|
+
const formattedData = useMemo6(() => {
|
|
33537
33533
|
if (!data || data.length === 0) {
|
|
33538
33534
|
return createLineForEmptyChart(
|
|
33539
33535
|
yAxisFields,
|
|
@@ -33585,7 +33581,7 @@ function LineChart({
|
|
|
33585
33581
|
if (x.field?.startsWith("comparison_")) return sum + 1;
|
|
33586
33582
|
return sum;
|
|
33587
33583
|
}, 0);
|
|
33588
|
-
const allowDecimals =
|
|
33584
|
+
const allowDecimals = useMemo6(
|
|
33589
33585
|
() => getAllowDecimals(data, yAxisFields, referenceLines),
|
|
33590
33586
|
[data, yAxisFields, referenceLines]
|
|
33591
33587
|
);
|
|
@@ -33596,7 +33592,6 @@ function LineChart({
|
|
|
33596
33592
|
height: "100%",
|
|
33597
33593
|
minWidth: 0,
|
|
33598
33594
|
minHeight: 0,
|
|
33599
|
-
initialDimension: { width: 1, height: 1 },
|
|
33600
33595
|
children: /* @__PURE__ */ jsxs26(
|
|
33601
33596
|
ComposedChart,
|
|
33602
33597
|
{
|
|
@@ -33838,7 +33833,7 @@ import {
|
|
|
33838
33833
|
ResponsiveContainer as ResponsiveContainer3,
|
|
33839
33834
|
Tooltip as Tooltip3
|
|
33840
33835
|
} from "recharts";
|
|
33841
|
-
import { useMemo as
|
|
33836
|
+
import { useMemo as useMemo7 } from "react";
|
|
33842
33837
|
init_textProcessing();
|
|
33843
33838
|
import { jsx as jsx36, jsxs as jsxs27 } from "react/jsx-runtime";
|
|
33844
33839
|
function RadarChart({
|
|
@@ -33860,7 +33855,7 @@ function RadarChart({
|
|
|
33860
33855
|
dateFilter,
|
|
33861
33856
|
showLegend = false
|
|
33862
33857
|
}) {
|
|
33863
|
-
const formattedData =
|
|
33858
|
+
const formattedData = useMemo7(() => {
|
|
33864
33859
|
if (!data || data.length === 0) {
|
|
33865
33860
|
return [];
|
|
33866
33861
|
}
|
|
@@ -33890,7 +33885,7 @@ function RadarChart({
|
|
|
33890
33885
|
);
|
|
33891
33886
|
}
|
|
33892
33887
|
const getCustomColor = (index, field) => {
|
|
33893
|
-
|
|
33888
|
+
const key = index === 0 ? "comparison" : "primary";
|
|
33894
33889
|
field = field.replace("comparison_", "");
|
|
33895
33890
|
if (colorMap && colorMap[field]) {
|
|
33896
33891
|
return colorMap[field][key];
|
|
@@ -33914,7 +33909,6 @@ function RadarChart({
|
|
|
33914
33909
|
height: "100%",
|
|
33915
33910
|
minWidth: 0,
|
|
33916
33911
|
minHeight: 0,
|
|
33917
|
-
initialDimension: { width: 1, height: 1 },
|
|
33918
33912
|
children: /* @__PURE__ */ jsxs27(
|
|
33919
33913
|
RechartsRadarChart,
|
|
33920
33914
|
{
|
|
@@ -34069,7 +34063,7 @@ import {
|
|
|
34069
34063
|
} from "recharts";
|
|
34070
34064
|
|
|
34071
34065
|
// src/components/Chart/CustomBar.tsx
|
|
34072
|
-
import { memo, useMemo as
|
|
34066
|
+
import { memo, useMemo as useMemo8 } from "react";
|
|
34073
34067
|
import { jsx as jsx37 } from "react/jsx-runtime";
|
|
34074
34068
|
function isTopMostBarWithValue(yAxisFields, dataKey, payload) {
|
|
34075
34069
|
if (!dataKey || !yAxisFields.length) return false;
|
|
@@ -34131,17 +34125,17 @@ var CustomBar = memo((props) => {
|
|
|
34131
34125
|
}
|
|
34132
34126
|
const sizeBasis = isHorizontalBars ? height : width;
|
|
34133
34127
|
const customCornerRadius = theme?.barChartCornerRadius ?? (theme?.barChartCornerRadiusRatio ? theme?.barChartCornerRadiusRatio * sizeBasis : void 0);
|
|
34134
|
-
const shouldRoundCorners =
|
|
34128
|
+
const shouldRoundCorners = useMemo8(() => {
|
|
34135
34129
|
return customCornerRadius !== void 0 ? customCornerRadius > 0 : isTopMostBarWithValue(yAxisFields, dataKey, payload);
|
|
34136
34130
|
}, [customCornerRadius, yAxisFields, dataKey, payload]);
|
|
34137
|
-
const radius =
|
|
34131
|
+
const radius = useMemo8(() => {
|
|
34138
34132
|
return shouldRoundCorners ? Math.min(
|
|
34139
34133
|
customCornerRadius || sizeBasis * 0.1,
|
|
34140
34134
|
width / 2,
|
|
34141
34135
|
Math.abs(height) / 2
|
|
34142
34136
|
) : 0;
|
|
34143
34137
|
}, [shouldRoundCorners, customCornerRadius, sizeBasis, width, height]);
|
|
34144
|
-
const path =
|
|
34138
|
+
const path = useMemo8(() => {
|
|
34145
34139
|
if (isHorizontalBars) {
|
|
34146
34140
|
const isNegative2 = rawWidth < 0;
|
|
34147
34141
|
return radius > 0 ? createHorizontalRoundedPath(x, y, width, height, radius, !isNegative2) : `M ${x} ${y} h ${isNegative2 ? -width : width} v ${height} h ${isNegative2 ? width : -width} z`;
|
|
@@ -34183,7 +34177,7 @@ var CustomBar_default = CustomBar;
|
|
|
34183
34177
|
// src/components/Chart/BarChart.tsx
|
|
34184
34178
|
init_columnProcessing();
|
|
34185
34179
|
init_textProcessing();
|
|
34186
|
-
import { useMemo as
|
|
34180
|
+
import { useMemo as useMemo9 } from "react";
|
|
34187
34181
|
import { Fragment as Fragment3, jsx as jsx38, jsxs as jsxs28 } from "react/jsx-runtime";
|
|
34188
34182
|
var CATEGORY_AXIS_WIDTH = 120;
|
|
34189
34183
|
var VALUE_AXIS_WIDTH = 44;
|
|
@@ -34278,11 +34272,11 @@ function BarChart({
|
|
|
34278
34272
|
}
|
|
34279
34273
|
return fields;
|
|
34280
34274
|
};
|
|
34281
|
-
const valueDomain =
|
|
34275
|
+
const valueDomain = useMemo9(
|
|
34282
34276
|
() => stackedMode ? getStackedDomain(data, yAxisFields, comparison) : getDomain(data, yAxisFields, referenceLines),
|
|
34283
34277
|
[stackedMode, data, yAxisFields, referenceLines, comparison]
|
|
34284
34278
|
);
|
|
34285
|
-
const allowDecimals =
|
|
34279
|
+
const allowDecimals = useMemo9(
|
|
34286
34280
|
() => getAllowDecimals(data, yAxisFields, referenceLines),
|
|
34287
34281
|
[data, yAxisFields, referenceLines]
|
|
34288
34282
|
);
|
|
@@ -34300,12 +34294,12 @@ function BarChart({
|
|
|
34300
34294
|
fields: [{ field: xAxisField, format: xAxisFormat }]
|
|
34301
34295
|
})
|
|
34302
34296
|
);
|
|
34303
|
-
const customBarShape =
|
|
34297
|
+
const customBarShape = useMemo9(() => {
|
|
34304
34298
|
if (!theme?.barChartCornerRadius && !theme?.barChartCornerRadiusRatio)
|
|
34305
34299
|
return void 0;
|
|
34306
34300
|
return createCustomBar(sortYAxisFields([...yAxisFields]), theme, layout);
|
|
34307
34301
|
}, [isStacked, yAxisFields, theme, layout]);
|
|
34308
|
-
const customActiveBarShape =
|
|
34302
|
+
const customActiveBarShape = useMemo9(() => {
|
|
34309
34303
|
if (!theme?.barChartCornerRadius && !theme?.barChartCornerRadiusRatio)
|
|
34310
34304
|
return void 0;
|
|
34311
34305
|
return createCustomBar(
|
|
@@ -34350,7 +34344,6 @@ function BarChart({
|
|
|
34350
34344
|
height: "100%",
|
|
34351
34345
|
minWidth: 0,
|
|
34352
34346
|
minHeight: 0,
|
|
34353
|
-
initialDimension: { width: 1, height: 1 },
|
|
34354
34347
|
children: /* @__PURE__ */ jsxs28(
|
|
34355
34348
|
ReChartsBarChart,
|
|
34356
34349
|
{
|
|
@@ -34733,7 +34726,7 @@ init_filterProcessing();
|
|
|
34733
34726
|
|
|
34734
34727
|
// src/components/Dashboard/DashboardFilter.tsx
|
|
34735
34728
|
init_dateRangePickerUtils();
|
|
34736
|
-
import { useMemo as
|
|
34729
|
+
import { useMemo as useMemo13 } from "react";
|
|
34737
34730
|
|
|
34738
34731
|
// src/DateRangePicker/QuillDateRangePicker.tsx
|
|
34739
34732
|
import {
|
|
@@ -34761,7 +34754,7 @@ import {
|
|
|
34761
34754
|
// src/components/QuillSelect.tsx
|
|
34762
34755
|
import {
|
|
34763
34756
|
useContext as useContext8,
|
|
34764
|
-
useMemo as
|
|
34757
|
+
useMemo as useMemo10,
|
|
34765
34758
|
useRef as useRef6,
|
|
34766
34759
|
useState as useState11,
|
|
34767
34760
|
useEffect as useEffect9
|
|
@@ -34791,7 +34784,7 @@ function QuillSelectComponent({
|
|
|
34791
34784
|
},
|
|
34792
34785
|
showModal
|
|
34793
34786
|
);
|
|
34794
|
-
const sortedItems =
|
|
34787
|
+
const sortedItems = useMemo10(() => {
|
|
34795
34788
|
return options.sort((a, b) => {
|
|
34796
34789
|
if (a.value === null) {
|
|
34797
34790
|
return -1;
|
|
@@ -34802,7 +34795,7 @@ function QuillSelectComponent({
|
|
|
34802
34795
|
return 0;
|
|
34803
34796
|
});
|
|
34804
34797
|
}, [options]);
|
|
34805
|
-
const nullLabel =
|
|
34798
|
+
const nullLabel = useMemo10(() => {
|
|
34806
34799
|
return sortedItems.some((item) => item.value === "-") ? "None" : "-";
|
|
34807
34800
|
}, [sortedItems]);
|
|
34808
34801
|
const [popoverPosition, setPopoverPosition] = useState11(void 0);
|
|
@@ -35648,7 +35641,7 @@ function getAnchorEndDate(startDate, endDate) {
|
|
|
35648
35641
|
import React7, {
|
|
35649
35642
|
useContext as useContext10,
|
|
35650
35643
|
useEffect as useEffect11,
|
|
35651
|
-
useMemo as
|
|
35644
|
+
useMemo as useMemo11,
|
|
35652
35645
|
useRef as useRef8,
|
|
35653
35646
|
useState as useState13
|
|
35654
35647
|
} from "react";
|
|
@@ -35684,17 +35677,17 @@ function QuillMultiSelectComponentWithCombo({
|
|
|
35684
35677
|
CheckboxState2[CheckboxState2["UNSELECTED"] = 1] = "UNSELECTED";
|
|
35685
35678
|
CheckboxState2[CheckboxState2["INDETERMINATE"] = 2] = "INDETERMINATE";
|
|
35686
35679
|
})(CheckboxState || (CheckboxState = {}));
|
|
35687
|
-
const optionValues =
|
|
35680
|
+
const optionValues = useMemo11(
|
|
35688
35681
|
() => new Set(options.map((opt) => opt.value ?? "")),
|
|
35689
35682
|
[options]
|
|
35690
35683
|
);
|
|
35691
|
-
const potentialOptions =
|
|
35684
|
+
const potentialOptions = useMemo11(() => {
|
|
35692
35685
|
return value.filter((opt) => !optionValues.has(opt ?? "")).map((opt) => ({
|
|
35693
35686
|
label: opt === "" ? "-" : opt?.toString() ?? "-",
|
|
35694
35687
|
value: opt ?? ""
|
|
35695
35688
|
})).concat(options);
|
|
35696
35689
|
}, [value, options]);
|
|
35697
|
-
const selectedOptionsLabel =
|
|
35690
|
+
const selectedOptionsLabel = useMemo11(() => {
|
|
35698
35691
|
if (!value || !value.length) {
|
|
35699
35692
|
return "Select";
|
|
35700
35693
|
}
|
|
@@ -35787,7 +35780,7 @@ function QuillMultiSelectComponentWithCombo({
|
|
|
35787
35780
|
return 0;
|
|
35788
35781
|
}).slice(0, 20);
|
|
35789
35782
|
}, [potentialOptions, searchQuery]);
|
|
35790
|
-
const nullLabel =
|
|
35783
|
+
const nullLabel = useMemo11(() => {
|
|
35791
35784
|
return filteredItems.some((item) => item.value === "-") ? "None" : "-";
|
|
35792
35785
|
}, [filteredItems]);
|
|
35793
35786
|
const updatePosition = () => {
|
|
@@ -36313,7 +36306,7 @@ var ListboxTextInput = ({
|
|
|
36313
36306
|
// src/components/QuillSelectWithCombo.tsx
|
|
36314
36307
|
import React8, {
|
|
36315
36308
|
useContext as useContext11,
|
|
36316
|
-
useMemo as
|
|
36309
|
+
useMemo as useMemo12,
|
|
36317
36310
|
useRef as useRef9,
|
|
36318
36311
|
useState as useState14
|
|
36319
36312
|
} from "react";
|
|
@@ -36364,10 +36357,10 @@ function QuillSelectComponentWithCombo({
|
|
|
36364
36357
|
return 0;
|
|
36365
36358
|
})?.slice(0, 20) ?? [];
|
|
36366
36359
|
}, [options, searchQuery]);
|
|
36367
|
-
const nullLabel =
|
|
36360
|
+
const nullLabel = useMemo12(() => {
|
|
36368
36361
|
return filteredItems.some((item) => item.value === "-") ? "None" : "-";
|
|
36369
36362
|
}, [filteredItems]);
|
|
36370
|
-
const selectedLabel =
|
|
36363
|
+
const selectedLabel = useMemo12(() => {
|
|
36371
36364
|
const selectedOption = options?.find((elem) => elem.value === value);
|
|
36372
36365
|
return selectedOption && selectedOption.label == "-" ? nullLabel : selectedOption?.label ?? "Select";
|
|
36373
36366
|
}, [value, options, nullLabel]);
|
|
@@ -36635,7 +36628,7 @@ function DashboardFilter2({
|
|
|
36635
36628
|
disabled,
|
|
36636
36629
|
containerStyle
|
|
36637
36630
|
}) {
|
|
36638
|
-
const preset =
|
|
36631
|
+
const preset = useMemo13(() => {
|
|
36639
36632
|
if (
|
|
36640
36633
|
/*'preset' in filter && */
|
|
36641
36634
|
"primaryRange" in filter
|
|
@@ -37289,7 +37282,7 @@ var MetricDisplay = ({
|
|
|
37289
37282
|
};
|
|
37290
37283
|
|
|
37291
37284
|
// src/components/Dashboard/DataLoader.tsx
|
|
37292
|
-
import { useContext as useContext13, useEffect as useEffect12, useMemo as
|
|
37285
|
+
import { useContext as useContext13, useEffect as useEffect12, useMemo as useMemo14, useRef as useRef10, useState as useState15 } from "react";
|
|
37293
37286
|
init_paginationProcessing();
|
|
37294
37287
|
init_tableProcessing();
|
|
37295
37288
|
import equal2 from "fast-deep-equal";
|
|
@@ -37403,7 +37396,7 @@ function DataLoader({
|
|
|
37403
37396
|
const { reportFilters } = useContext13(ReportFiltersContext);
|
|
37404
37397
|
const { getToken } = useContext13(FetchContext);
|
|
37405
37398
|
const { eventTracking } = useContext13(EventTrackingContext);
|
|
37406
|
-
const contextFilters =
|
|
37399
|
+
const contextFilters = useMemo14(() => {
|
|
37407
37400
|
return dashboardName ? Object.values(dashboardFilters[dashboardName] ?? {}).map(
|
|
37408
37401
|
(f) => f.filter
|
|
37409
37402
|
) : Object.values(reportFilters[item.id] ?? {}).map((f) => f.filter);
|
|
@@ -37413,7 +37406,7 @@ function DataLoader({
|
|
|
37413
37406
|
const [error, setError] = useState15(void 0);
|
|
37414
37407
|
const [previousPage, setPreviousPage] = useState15(0);
|
|
37415
37408
|
const [additionalProcessing, setAdditionalProcessing] = useState15(defaultAdditionalProcessing);
|
|
37416
|
-
const chartReport =
|
|
37409
|
+
const chartReport = useMemo14(() => {
|
|
37417
37410
|
const report = (dashboardName ? dashboard : reports)[item.id];
|
|
37418
37411
|
if (report) {
|
|
37419
37412
|
return convertInternalReportToReport(
|
|
@@ -37830,7 +37823,7 @@ var ChartDataLoader = ({
|
|
|
37830
37823
|
const { eventTracking } = useContext13(EventTrackingContext);
|
|
37831
37824
|
const { reportFilters } = useContext13(ReportFiltersContext);
|
|
37832
37825
|
const { tenants, flags } = useContext13(TenantContext);
|
|
37833
|
-
const contextFilters =
|
|
37826
|
+
const contextFilters = useMemo14(() => {
|
|
37834
37827
|
return dashboardName ? Object.values(dashboardFilters[dashboardName] ?? {}).map(
|
|
37835
37828
|
(f) => f.filter
|
|
37836
37829
|
) : Object.values(reportFilters[item.id] ?? {}).map((f) => f.filter);
|
|
@@ -37846,7 +37839,7 @@ var ChartDataLoader = ({
|
|
|
37846
37839
|
const previousCustomFields = useRef10(schemaData.customFields);
|
|
37847
37840
|
const fetchReportAbortController = useRef10(null);
|
|
37848
37841
|
const rowsRequestId = useRef10(0);
|
|
37849
|
-
const chartReport =
|
|
37842
|
+
const chartReport = useMemo14(() => {
|
|
37850
37843
|
const report = dashboardName ? dashboard[item.id] : reports[item.id];
|
|
37851
37844
|
if (!report) {
|
|
37852
37845
|
return constructReportFromItem(item);
|
|
@@ -38120,13 +38113,13 @@ var useReportInternal = (reportId) => {
|
|
|
38120
38113
|
import equal3 from "fast-deep-equal";
|
|
38121
38114
|
|
|
38122
38115
|
// src/components/Chart/MapChart.tsx
|
|
38123
|
-
import { useEffect as useEffect13, useMemo as
|
|
38116
|
+
import { useEffect as useEffect13, useMemo as useMemo16, useRef as useRef11, useState as useState17 } from "react";
|
|
38124
38117
|
init_valueFormatter();
|
|
38125
38118
|
import usStates10m from "us-atlas/states-10m.json";
|
|
38126
38119
|
import worldCountries50m from "world-atlas/countries-50m.json";
|
|
38127
38120
|
|
|
38128
38121
|
// src/utils/simpleMaps.ts
|
|
38129
|
-
import React10, { useContext as useContext15, useMemo as
|
|
38122
|
+
import React10, { useContext as useContext15, useMemo as useMemo15, useState as useState16 } from "react";
|
|
38130
38123
|
var d3GeoModule;
|
|
38131
38124
|
var topojsonClientModule;
|
|
38132
38125
|
var projections = {};
|
|
@@ -38161,7 +38154,7 @@ var requireTopojsonClientModule = () => {
|
|
|
38161
38154
|
};
|
|
38162
38155
|
var MapContext = React10.createContext(void 0);
|
|
38163
38156
|
var MapProvider = ({ width, height, projection, projectionConfig = {}, children }) => {
|
|
38164
|
-
const projectionMemo =
|
|
38157
|
+
const projectionMemo = useMemo15(() => {
|
|
38165
38158
|
if (typeof projection === "function") return projection;
|
|
38166
38159
|
const projectionFactory = projections[String(projection)];
|
|
38167
38160
|
if (!projectionFactory) {
|
|
@@ -38182,11 +38175,11 @@ var MapProvider = ({ width, height, projection, projectionConfig = {}, children
|
|
|
38182
38175
|
}
|
|
38183
38176
|
return proj;
|
|
38184
38177
|
}, [width, height, projection, projectionConfig]);
|
|
38185
|
-
const pathMemo =
|
|
38178
|
+
const pathMemo = useMemo15(() => {
|
|
38186
38179
|
const { geoPath } = requireD3GeoModule();
|
|
38187
38180
|
return geoPath().projection(projectionMemo);
|
|
38188
38181
|
}, [projectionMemo]);
|
|
38189
|
-
const value =
|
|
38182
|
+
const value = useMemo15(() => {
|
|
38190
38183
|
return {
|
|
38191
38184
|
width,
|
|
38192
38185
|
height,
|
|
@@ -38285,12 +38278,12 @@ var ComposableMap = ({
|
|
|
38285
38278
|
};
|
|
38286
38279
|
var Geographies = ({ geography, children, parseGeographies, className = "", ...restProps }) => {
|
|
38287
38280
|
const { path, projection } = useLocalMapContext();
|
|
38288
|
-
const prepared =
|
|
38281
|
+
const prepared = useMemo15(() => {
|
|
38289
38282
|
const raw = getFeatures(geography);
|
|
38290
38283
|
const parsed = parseGeographies ? parseGeographies(raw) : raw;
|
|
38291
38284
|
return prepareFeatures(parsed, path);
|
|
38292
38285
|
}, [geography, parseGeographies, path]);
|
|
38293
|
-
const meshData =
|
|
38286
|
+
const meshData = useMemo15(() => {
|
|
38294
38287
|
return prepareMesh(getMesh(geography), path);
|
|
38295
38288
|
}, [geography, path]);
|
|
38296
38289
|
return React10.createElement(
|
|
@@ -38324,7 +38317,7 @@ var Geography = ({
|
|
|
38324
38317
|
const { path } = useLocalMapContext();
|
|
38325
38318
|
const [isPressed, setPressed] = useState16(false);
|
|
38326
38319
|
const [isFocused, setFocused] = useState16(false);
|
|
38327
|
-
const geographyEventData =
|
|
38320
|
+
const geographyEventData = useMemo15(() => {
|
|
38328
38321
|
const { geoCentroid, geoBounds } = requireD3GeoModule();
|
|
38329
38322
|
const centroid = geography?.geometry ? geoCentroid(geography) : null;
|
|
38330
38323
|
const bounds = geography?.geometry ? geoBounds(geography) : null;
|
|
@@ -38750,7 +38743,7 @@ function USMap({
|
|
|
38750
38743
|
setScaleLog(() => scale.scaleLog);
|
|
38751
38744
|
});
|
|
38752
38745
|
}, []);
|
|
38753
|
-
const colorScale =
|
|
38746
|
+
const colorScale = useMemo16(() => {
|
|
38754
38747
|
if (!scaleLog) return () => "#FFFFFF";
|
|
38755
38748
|
const values = Object.values(mappedData).map((d) => parseFloat(d[measureField])).filter((v) => !isNaN(v));
|
|
38756
38749
|
const minValue = Math.min(...values);
|
|
@@ -38776,7 +38769,7 @@ function USMap({
|
|
|
38776
38769
|
colors,
|
|
38777
38770
|
scaleLog
|
|
38778
38771
|
]);
|
|
38779
|
-
const hoveredValue =
|
|
38772
|
+
const hoveredValue = useMemo16(() => {
|
|
38780
38773
|
return !hoveredState ? void 0 : mappedData[fipsToNames[hoveredState]?.abbreviation ?? ""]?.[measureField] ?? mappedData[fipsToNames[hoveredState]?.name ?? ""]?.[measureField] ?? mappedData[fipsToNames[hoveredState]?.abbreviation?.toLowerCase() ?? ""]?.[measureField] ?? mappedData[fipsToNames[hoveredState]?.name?.toLowerCase() ?? ""]?.[measureField];
|
|
38781
38774
|
}, [hoveredState, mappedData, measureField]);
|
|
38782
38775
|
if (!measureField) {
|
|
@@ -38946,7 +38939,7 @@ function WorldMap({
|
|
|
38946
38939
|
setScaleLog(() => scale.scaleLog);
|
|
38947
38940
|
});
|
|
38948
38941
|
}, []);
|
|
38949
|
-
const colorScale =
|
|
38942
|
+
const colorScale = useMemo16(() => {
|
|
38950
38943
|
if (!scaleLog) return () => "#FFFFFF";
|
|
38951
38944
|
const values = Object.values(mappedData).map((d) => parseFloat(d[measureField])).filter((v) => !isNaN(v));
|
|
38952
38945
|
const minValue = Math.min(...values);
|
|
@@ -38972,7 +38965,7 @@ function WorldMap({
|
|
|
38972
38965
|
colors,
|
|
38973
38966
|
scaleLog
|
|
38974
38967
|
]);
|
|
38975
|
-
const hoveredValue =
|
|
38968
|
+
const hoveredValue = useMemo16(() => {
|
|
38976
38969
|
return !hoveredCountry ? void 0 : mappedData[isoToNames[hoveredCountry]?.abbreviation ?? ""]?.[measureField] ?? mappedData[isoToNames[hoveredCountry]?.name ?? ""]?.[measureField] ?? mappedData[isoToNames[hoveredCountry]?.abbreviation?.toLowerCase() ?? ""]?.[measureField] ?? mappedData[isoToNames[hoveredCountry]?.name?.toLowerCase() ?? ""]?.[measureField];
|
|
38977
38970
|
}, [hoveredCountry, mappedData, measureField]);
|
|
38978
38971
|
if (!measureField) {
|
|
@@ -39687,12 +39680,6 @@ function QuillTableDashboardComponent({
|
|
|
39687
39680
|
init_valueFormatter();
|
|
39688
39681
|
import { Fragment as Fragment6, jsx as jsx50, jsxs as jsxs38 } from "react/jsx-runtime";
|
|
39689
39682
|
var MAX_ROWS_FOR_GENERIC_TABLE = 500;
|
|
39690
|
-
function sumByKey(arr, key) {
|
|
39691
|
-
return arr.reduce((acc, cur) => {
|
|
39692
|
-
const val = parseInt(cur[key], 10);
|
|
39693
|
-
return isNaN(val) ? acc : acc + val;
|
|
39694
|
-
}, 0);
|
|
39695
|
-
}
|
|
39696
39683
|
function Chart({
|
|
39697
39684
|
colors,
|
|
39698
39685
|
reportId,
|
|
@@ -39740,23 +39727,23 @@ function Chart({
|
|
|
39740
39727
|
const { dashboardFilters } = useDashboardInternal(
|
|
39741
39728
|
allReportsById[reportId]?.dashboardName ?? null
|
|
39742
39729
|
);
|
|
39743
|
-
const specificReportFilters =
|
|
39730
|
+
const specificReportFilters = useMemo17(() => {
|
|
39744
39731
|
const reportFilterValues = reportFilters[reportId];
|
|
39745
39732
|
if (reportFilterValues && !hideFilters)
|
|
39746
39733
|
return Object.values(reportFilterValues ?? {}).map((f) => f.filter);
|
|
39747
39734
|
if (allReportsById[reportId]) return dashboardFilters ?? [];
|
|
39748
39735
|
return [];
|
|
39749
39736
|
}, [reportFilters[reportId], allReportsById[reportId], dashboardFilters]);
|
|
39750
|
-
const reportDateFilter =
|
|
39737
|
+
const reportDateFilter = useMemo17(() => {
|
|
39751
39738
|
return specificReportFilters.find((f) => f.filterType === "date_range");
|
|
39752
39739
|
}, [specificReportFilters]);
|
|
39753
|
-
const presetOptions =
|
|
39740
|
+
const presetOptions = useMemo17(() => {
|
|
39754
39741
|
return reportDateFilter ? convertPresetOptionsToSelectableList(
|
|
39755
39742
|
reportDateFilter.presetOptions ?? [],
|
|
39756
39743
|
reportDateFilter.defaultPresetRanges ?? []
|
|
39757
39744
|
) : defaultOptionsV2;
|
|
39758
39745
|
}, [reportDateFilter]);
|
|
39759
|
-
const userFilters =
|
|
39746
|
+
const userFilters = useMemo17(() => {
|
|
39760
39747
|
return filters?.filter((f) => f.filterType !== "date" /* Date */)?.map(convertCustomFilter) ?? dashboardCustomFilters[allReportsById[reportId]?.dashboardName ?? ""];
|
|
39761
39748
|
}, [
|
|
39762
39749
|
filters,
|
|
@@ -39831,32 +39818,32 @@ function Chart({
|
|
|
39831
39818
|
});
|
|
39832
39819
|
}
|
|
39833
39820
|
}, [previousFilters.current]);
|
|
39834
|
-
const dashboardReport =
|
|
39821
|
+
const dashboardReport = useMemo17(
|
|
39835
39822
|
() => allReportsById[reportId],
|
|
39836
39823
|
[reportId, allReportsById]
|
|
39837
39824
|
);
|
|
39838
|
-
const report =
|
|
39825
|
+
const report = useMemo17(() => reports[reportId], [reports, reportId]);
|
|
39839
39826
|
const [loading, setLoading] = useState20(true);
|
|
39840
39827
|
const [theme] = useContext17(ThemeContext);
|
|
39841
|
-
const colorMap =
|
|
39828
|
+
const colorMap = useMemo17(() => {
|
|
39842
39829
|
if (mapColorsToFields && report && theme) {
|
|
39843
39830
|
return mapColorsToFields(report, theme);
|
|
39844
39831
|
}
|
|
39845
39832
|
}, [report, theme]);
|
|
39846
39833
|
const [client, clientLoading] = useContext17(ClientContext);
|
|
39847
|
-
const cloudCacheEnabled =
|
|
39834
|
+
const cloudCacheEnabled = useMemo17(() => {
|
|
39848
39835
|
return !!client?.features?.cloudCache;
|
|
39849
39836
|
}, [client]);
|
|
39850
39837
|
const shouldShowCloudCacheValidationErrors = isAdmin && cloudCacheEnabled;
|
|
39851
|
-
const isMissingDateField =
|
|
39838
|
+
const isMissingDateField = useMemo17(() => {
|
|
39852
39839
|
if (!shouldShowCloudCacheValidationErrors) return false;
|
|
39853
39840
|
return isDateFieldMissingInReport(report);
|
|
39854
39841
|
}, [report, shouldShowCloudCacheValidationErrors]);
|
|
39855
|
-
const usesLimitInQuery =
|
|
39842
|
+
const usesLimitInQuery = useMemo17(() => {
|
|
39856
39843
|
if (!shouldShowCloudCacheValidationErrors) return false;
|
|
39857
39844
|
return reportUsesLimitClause(report);
|
|
39858
39845
|
}, [report, shouldShowCloudCacheValidationErrors]);
|
|
39859
|
-
const missingDashboardFilterFields =
|
|
39846
|
+
const missingDashboardFilterFields = useMemo17(() => {
|
|
39860
39847
|
if (!shouldShowCloudCacheValidationErrors || !report) return [];
|
|
39861
39848
|
return getMissingDashboardFilterFields({
|
|
39862
39849
|
rows: report.rows,
|
|
@@ -40190,24 +40177,24 @@ var ChartDisplay = ({
|
|
|
40190
40177
|
const [theme] = useContext17(ThemeContext);
|
|
40191
40178
|
const { dashboardFilters } = useContext17(DashboardFiltersContext);
|
|
40192
40179
|
const { reportFilters } = useContext17(ReportFiltersContext);
|
|
40193
|
-
const specificDashboardFilters =
|
|
40180
|
+
const specificDashboardFilters = useMemo17(() => {
|
|
40194
40181
|
const dashboardName = config?.dashboardName;
|
|
40195
40182
|
if (!dashboardName) return [];
|
|
40196
40183
|
return Object.values(dashboardFilters[dashboardName] ?? {}).map(
|
|
40197
40184
|
(f) => f.filter
|
|
40198
40185
|
);
|
|
40199
40186
|
}, [dashboardFilters, config?.dashboardName]);
|
|
40200
|
-
const specificReportFilters =
|
|
40187
|
+
const specificReportFilters = useMemo17(() => {
|
|
40201
40188
|
if (!reportId) return [];
|
|
40202
40189
|
return Object.values(reportFilters[reportId] ?? []).map((f) => f.filter);
|
|
40203
40190
|
}, [reportFilters, reportId]);
|
|
40204
|
-
const chartColors =
|
|
40191
|
+
const chartColors = useMemo17(() => {
|
|
40205
40192
|
if (overrideTheme && overrideTheme.chartColors) {
|
|
40206
40193
|
return colors?.length ? colors : overrideTheme && overrideTheme.chartColors && overrideTheme.chartColors.length ? overrideTheme.chartColors : ["#4E80EE", "#E14F62", "#55B5A6", "#E9A23B", "#6466E9", "#55B685"];
|
|
40207
40194
|
}
|
|
40208
40195
|
return colors?.length ? colors : theme && theme.chartColors && theme.chartColors.length ? theme.chartColors : ["#4E80EE", "#E14F62", "#55B5A6", "#E9A23B", "#6466E9", "#55B685"];
|
|
40209
40196
|
}, [colors]);
|
|
40210
|
-
const dateFilter =
|
|
40197
|
+
const dateFilter = useMemo17(() => {
|
|
40211
40198
|
const filters = specificReportFilters.length > 0 ? specificReportFilters : specificDashboardFilters;
|
|
40212
40199
|
if (!hideDateRangeFilter && filters) {
|
|
40213
40200
|
return findAndProcessDateFilter(filters.map((f) => f));
|
|
@@ -40217,7 +40204,7 @@ var ChartDisplay = ({
|
|
|
40217
40204
|
const resolvedShowLegend = showLegend !== void 0 ? showLegend : config?.showLegend ?? false;
|
|
40218
40205
|
const [page, setPage] = useState20(0);
|
|
40219
40206
|
const rowCountForLimit = config?.pivot ? config.pivotRowCount ?? config.pivotRows?.length ?? config.rows?.length : config?.rowCount ?? config?.rows?.length;
|
|
40220
|
-
const tableDisplay =
|
|
40207
|
+
const tableDisplay = useMemo17(() => {
|
|
40221
40208
|
if (!config || config.chartType?.toLowerCase() !== "table") {
|
|
40222
40209
|
return void 0;
|
|
40223
40210
|
}
|
|
@@ -40231,6 +40218,22 @@ var ChartDisplay = ({
|
|
|
40231
40218
|
)
|
|
40232
40219
|
};
|
|
40233
40220
|
}, [config]);
|
|
40221
|
+
const pieData = useMemo17(() => {
|
|
40222
|
+
if (!config || config.chartType?.toLowerCase() !== "pie") return [];
|
|
40223
|
+
if (config.pivot) return config.rows ?? [];
|
|
40224
|
+
const rows = config.rows ?? [];
|
|
40225
|
+
const configuredValueField = config.yAxisFields?.[0]?.field;
|
|
40226
|
+
if (!configuredValueField) return rows;
|
|
40227
|
+
const valueField = configuredValueField;
|
|
40228
|
+
const total = rows.reduce((sum, row) => {
|
|
40229
|
+
const value = parseInt(row[valueField] ?? "", 10);
|
|
40230
|
+
return isNaN(value) ? sum : sum + value;
|
|
40231
|
+
}, 0);
|
|
40232
|
+
return rows.map((row) => ({
|
|
40233
|
+
...row,
|
|
40234
|
+
count: parseInt(row[valueField] ?? "", 10) / total
|
|
40235
|
+
}));
|
|
40236
|
+
}, [config]);
|
|
40234
40237
|
if (loading) {
|
|
40235
40238
|
return /* @__PURE__ */ jsx50("div", { className, style: containerStyle, children: /* @__PURE__ */ jsx50(LoadingComponent, {}) });
|
|
40236
40239
|
} else if (config && !["metric", "table", "gauge", "US map", "World map"].includes(
|
|
@@ -40249,15 +40252,7 @@ var ChartDisplay = ({
|
|
|
40249
40252
|
{
|
|
40250
40253
|
className,
|
|
40251
40254
|
containerStyle,
|
|
40252
|
-
data:
|
|
40253
|
-
return {
|
|
40254
|
-
...row,
|
|
40255
|
-
count: (
|
|
40256
|
-
// @ts-ignore
|
|
40257
|
-
parseInt(row[config?.yAxisFields[0]?.field]) / sumByKey(config?.rows, config?.yAxisFields[0]?.field)
|
|
40258
|
-
)
|
|
40259
|
-
};
|
|
40260
|
-
}) || [] : config?.rows || [],
|
|
40255
|
+
data: pieData,
|
|
40261
40256
|
category: config?.yAxisFields?.[0]?.field,
|
|
40262
40257
|
index: config?.xAxisField,
|
|
40263
40258
|
colors: chartColors,
|
|
@@ -40266,7 +40261,8 @@ var ChartDisplay = ({
|
|
|
40266
40261
|
onClickChartElement,
|
|
40267
40262
|
onClickLegendElement,
|
|
40268
40263
|
yAxisFields: config?.yAxisFields,
|
|
40269
|
-
showLegend: resolvedShowLegend
|
|
40264
|
+
showLegend: resolvedShowLegend,
|
|
40265
|
+
isAnimationActive
|
|
40270
40266
|
}
|
|
40271
40267
|
);
|
|
40272
40268
|
}
|
|
@@ -40316,7 +40312,8 @@ var ChartDisplay = ({
|
|
|
40316
40312
|
className,
|
|
40317
40313
|
colorMap,
|
|
40318
40314
|
onClickChartElement,
|
|
40319
|
-
scrollable
|
|
40315
|
+
scrollable,
|
|
40316
|
+
showAnimation: isAnimationActive
|
|
40320
40317
|
}
|
|
40321
40318
|
);
|
|
40322
40319
|
}
|
|
@@ -40821,7 +40818,7 @@ import {
|
|
|
40821
40818
|
forwardRef as forwardRef2,
|
|
40822
40819
|
useContext as useContext20,
|
|
40823
40820
|
useEffect as useEffect17,
|
|
40824
|
-
useMemo as
|
|
40821
|
+
useMemo as useMemo18,
|
|
40825
40822
|
useRef as useRef14,
|
|
40826
40823
|
useState as useState22
|
|
40827
40824
|
} from "react";
|
|
@@ -41322,7 +41319,7 @@ var FilterPopoverWrapper = ({
|
|
|
41322
41319
|
const [uniqueValues, setUniqueValues] = useState22(void 0);
|
|
41323
41320
|
const [uniqueValuesIsLoading, setUniqueValuesIsLoading] = useState22(false);
|
|
41324
41321
|
const prevFiltersRef = useRef14("");
|
|
41325
|
-
const columnInternals =
|
|
41322
|
+
const columnInternals = useMemo18(() => {
|
|
41326
41323
|
if (!tables) {
|
|
41327
41324
|
return null;
|
|
41328
41325
|
}
|
|
@@ -41406,7 +41403,7 @@ var FilterPopoverWrapper = ({
|
|
|
41406
41403
|
|
|
41407
41404
|
// src/components/ReportBuilder/FilterModal.tsx
|
|
41408
41405
|
init_Filter();
|
|
41409
|
-
import { useState as useState23, useEffect as useEffect18, useMemo as
|
|
41406
|
+
import { useState as useState23, useEffect as useEffect18, useMemo as useMemo19 } from "react";
|
|
41410
41407
|
init_textProcessing();
|
|
41411
41408
|
init_filterProcessing();
|
|
41412
41409
|
import { format as format8, isValid as isValid6, parse as parse4, startOfToday as startOfToday2 } from "date-fns";
|
|
@@ -41448,11 +41445,11 @@ function FilterModal({
|
|
|
41448
41445
|
);
|
|
41449
41446
|
const [filterInitialized, setFilterInitialized] = useState23(false);
|
|
41450
41447
|
const [table, setTable] = useState23(void 0);
|
|
41451
|
-
const memoizedFieldValuesMap =
|
|
41448
|
+
const memoizedFieldValuesMap = useMemo19(
|
|
41452
41449
|
() => fieldValuesMap,
|
|
41453
41450
|
[JSON.stringify(fieldValuesMap)]
|
|
41454
41451
|
);
|
|
41455
|
-
const memoizedFilter =
|
|
41452
|
+
const memoizedFilter = useMemo19(() => filter, [JSON.stringify(filter)]);
|
|
41456
41453
|
useEffect18(() => {
|
|
41457
41454
|
if (!filter) {
|
|
41458
41455
|
onFieldChange(field, fieldOptions, table);
|
|
@@ -42477,7 +42474,7 @@ function DashboardLegacy({
|
|
|
42477
42474
|
}) {
|
|
42478
42475
|
const [userFilters, setUserFilters] = useState26({});
|
|
42479
42476
|
const [selectedSection, setSelectedSection] = useState26("");
|
|
42480
|
-
const dataLoaderUserFilters =
|
|
42477
|
+
const dataLoaderUserFilters = useMemo20(() => {
|
|
42481
42478
|
return (filters?.map((f) => convertCustomFilter(f)) ?? []).concat(
|
|
42482
42479
|
Object.values(userFilters)
|
|
42483
42480
|
);
|
|
@@ -42500,7 +42497,7 @@ function DashboardLegacy({
|
|
|
42500
42497
|
const { getToken } = useContext21(FetchContext);
|
|
42501
42498
|
const { customFilterDispatch } = useContext21(DashboardFiltersContext);
|
|
42502
42499
|
const { eventTracking } = useContext21(EventTrackingContext);
|
|
42503
|
-
const metrics =
|
|
42500
|
+
const metrics = useMemo20(() => {
|
|
42504
42501
|
const map = {};
|
|
42505
42502
|
Object.keys(data?.sections ?? {}).forEach((section) => {
|
|
42506
42503
|
if (!data?.sections?.[section]) return;
|
|
@@ -42528,7 +42525,7 @@ function DashboardLegacy({
|
|
|
42528
42525
|
});
|
|
42529
42526
|
return map;
|
|
42530
42527
|
}, [data?.sections, data?.sectionOrder]);
|
|
42531
|
-
const charts =
|
|
42528
|
+
const charts = useMemo20(() => {
|
|
42532
42529
|
const map = {};
|
|
42533
42530
|
Object.keys(data?.sections ?? {}).forEach((section) => {
|
|
42534
42531
|
if (!data?.sections?.[section]) return;
|
|
@@ -42554,7 +42551,7 @@ function DashboardLegacy({
|
|
|
42554
42551
|
});
|
|
42555
42552
|
return map;
|
|
42556
42553
|
}, [data?.sections, data?.sectionOrder]);
|
|
42557
|
-
const tables =
|
|
42554
|
+
const tables = useMemo20(() => {
|
|
42558
42555
|
const map = {};
|
|
42559
42556
|
Object.keys(data?.sections ?? {}).forEach((section) => {
|
|
42560
42557
|
if (!data?.sections?.[section]) return;
|
|
@@ -42615,7 +42612,7 @@ function DashboardLegacy({
|
|
|
42615
42612
|
filterListAddFilterPopoverIsOpen,
|
|
42616
42613
|
setFilterListAddFilterPopoverIsOpen
|
|
42617
42614
|
] = useState26(false);
|
|
42618
|
-
const presetOptions =
|
|
42615
|
+
const presetOptions = useMemo20(() => {
|
|
42619
42616
|
return populatedDashboardFilters?.[0]?.filterType === "date_range" ? convertPresetOptionsToSelectableList(
|
|
42620
42617
|
populatedDashboardFilters[0].presetOptions ?? [],
|
|
42621
42618
|
populatedDashboardFilters[0].defaultPresetRanges ?? []
|
|
@@ -42632,7 +42629,7 @@ function DashboardLegacy({
|
|
|
42632
42629
|
previousFilters.current = filters;
|
|
42633
42630
|
}
|
|
42634
42631
|
const isInitialLoadOfDashboardRef = useRef15(false);
|
|
42635
|
-
const referencedTables =
|
|
42632
|
+
const referencedTables = useMemo20(() => {
|
|
42636
42633
|
const sections = data?.sections || {};
|
|
42637
42634
|
const tables2 = Object.values(sections).flatMap(
|
|
42638
42635
|
(section) => section.map((chart) => chart.referencedTables)
|
|
@@ -43667,11 +43664,11 @@ function QuillDashboardTemplate({
|
|
|
43667
43664
|
}
|
|
43668
43665
|
|
|
43669
43666
|
// src/Dashboard.tsx
|
|
43670
|
-
import { useContext as useContext22, useMemo as
|
|
43667
|
+
import { useContext as useContext22, useMemo as useMemo22 } from "react";
|
|
43671
43668
|
init_Filter();
|
|
43672
43669
|
|
|
43673
43670
|
// src/StaticChart.tsx
|
|
43674
|
-
import { useMemo as
|
|
43671
|
+
import { useMemo as useMemo21 } from "react";
|
|
43675
43672
|
import { jsx as jsx60 } from "react/jsx-runtime";
|
|
43676
43673
|
var CHART_TYPE_STYLES = {
|
|
43677
43674
|
metric: { height: "100px", width: "200px" },
|
|
@@ -43686,6 +43683,7 @@ function StaticChart(props) {
|
|
|
43686
43683
|
onClickLegendElement,
|
|
43687
43684
|
containerStyle,
|
|
43688
43685
|
showLegend,
|
|
43686
|
+
showAnimation,
|
|
43689
43687
|
className,
|
|
43690
43688
|
hideTableChartOuterBorder = true
|
|
43691
43689
|
} = props;
|
|
@@ -43723,7 +43721,7 @@ function StaticChart(props) {
|
|
|
43723
43721
|
});
|
|
43724
43722
|
};
|
|
43725
43723
|
const useLocalPivotTablePagination = isDashboardPivotTable(report);
|
|
43726
|
-
const config =
|
|
43724
|
+
const config = useMemo21(() => {
|
|
43727
43725
|
return report ? {
|
|
43728
43726
|
...report,
|
|
43729
43727
|
...useLocalPivotTablePagination ? { pagination: void 0 } : {},
|
|
@@ -43744,6 +43742,7 @@ function StaticChart(props) {
|
|
|
43744
43742
|
className,
|
|
43745
43743
|
containerStyle: safeContainerStyle,
|
|
43746
43744
|
showLegend,
|
|
43745
|
+
isAnimationActive: showAnimation,
|
|
43747
43746
|
onPageChange: useLocalPivotTablePagination ? void 0 : onPageChange,
|
|
43748
43747
|
tableRowsLoading: useLocalPivotTablePagination ? false : pageLoading,
|
|
43749
43748
|
onSortChange: useLocalPivotTablePagination ? void 0 : onSortChange,
|
|
@@ -44094,11 +44093,11 @@ function Dashboard({
|
|
|
44094
44093
|
EmptyDashboardComponent
|
|
44095
44094
|
}) {
|
|
44096
44095
|
const [themeFromContext] = useContext22(ThemeContext);
|
|
44097
|
-
const theme =
|
|
44096
|
+
const theme = useMemo22(
|
|
44098
44097
|
() => ({ ...defaultQuillTheme, ...themeFromContext ?? {} }),
|
|
44099
44098
|
[themeFromContext]
|
|
44100
44099
|
);
|
|
44101
|
-
const themedStyles =
|
|
44100
|
+
const themedStyles = useMemo22(() => getThemedStyles(theme), [theme]);
|
|
44102
44101
|
const { sections, sectionOrder, isLoading, filters, applyFilters } = useDashboard(name2);
|
|
44103
44102
|
const toValidDate = (value) => {
|
|
44104
44103
|
if (value === void 0 || value === null || value === "") {
|
|
@@ -44300,11 +44299,11 @@ function DashboardContent({
|
|
|
44300
44299
|
const capitalized = name2.charAt(0).toUpperCase() + name2.slice(1);
|
|
44301
44300
|
return sections[capitalized] ?? [];
|
|
44302
44301
|
};
|
|
44303
|
-
const rootSectionReports =
|
|
44302
|
+
const rootSectionReports = useMemo22(
|
|
44304
44303
|
() => [...getSection("")].sort(sortByOrdering2),
|
|
44305
44304
|
[sections]
|
|
44306
44305
|
);
|
|
44307
|
-
const { chartReports, metricReports, tableReports } =
|
|
44306
|
+
const { chartReports, metricReports, tableReports } = useMemo22(() => {
|
|
44308
44307
|
const metricReports2 = rootSectionReports.filter(
|
|
44309
44308
|
({ chartType }) => chartType === "metric"
|
|
44310
44309
|
);
|
|
@@ -44316,7 +44315,7 @@ function DashboardContent({
|
|
|
44316
44315
|
);
|
|
44317
44316
|
return { chartReports: chartReports2, metricReports: metricReports2, tableReports: tableReports2 };
|
|
44318
44317
|
}, [rootSectionReports]);
|
|
44319
|
-
const orderedNonRootSectionEntries =
|
|
44318
|
+
const orderedNonRootSectionEntries = useMemo22(() => {
|
|
44320
44319
|
const sectionEntries = Object.entries(sections ?? {}).filter(
|
|
44321
44320
|
([sectionName, reports]) => sectionName !== "" && reports.length > 0
|
|
44322
44321
|
);
|
|
@@ -44513,7 +44512,7 @@ var QuillProvider_default = QuillProvider;
|
|
|
44513
44512
|
import {
|
|
44514
44513
|
useContext as useContext23,
|
|
44515
44514
|
useEffect as useEffect20,
|
|
44516
|
-
useMemo as
|
|
44515
|
+
useMemo as useMemo23,
|
|
44517
44516
|
useState as useState27
|
|
44518
44517
|
} from "react";
|
|
44519
44518
|
init_Filter();
|
|
@@ -44533,17 +44532,17 @@ var Table = ({
|
|
|
44533
44532
|
const { eventTracking } = useContext23(EventTrackingContext);
|
|
44534
44533
|
const { allReportsById } = useAllReports();
|
|
44535
44534
|
const [loading, setLoading] = useState27(false);
|
|
44536
|
-
const report =
|
|
44535
|
+
const report = useMemo23(() => {
|
|
44537
44536
|
return props.reportId ? allReportsById[props.reportId] : null;
|
|
44538
44537
|
}, [allReportsById[props.reportId ?? ""]]);
|
|
44539
44538
|
const { reportFilters, customReportFilters, reportFiltersDispatch } = useContext23(ReportFiltersContext);
|
|
44540
44539
|
const { reports, fetchIndividualReport, reportsDispatch } = useContext23(ReportsContext);
|
|
44541
|
-
const specificReportFilters =
|
|
44540
|
+
const specificReportFilters = useMemo23(() => {
|
|
44542
44541
|
return Object.values(
|
|
44543
44542
|
reportFilters[props.reportId ?? ""] ?? (dashboard[report?.dashboardName ?? ""]?.[report?.id ?? ""] ? dashboardFilters[report.dashboardName] : null) ?? {}
|
|
44544
44543
|
).map((f) => f.filter);
|
|
44545
44544
|
}, [reportFilters[props.reportId ?? ""]]);
|
|
44546
|
-
const userFilters =
|
|
44545
|
+
const userFilters = useMemo23(() => {
|
|
44547
44546
|
return (props.filters?.filter((f) => f.filterType !== "date" /* Date */)?.map(convertCustomFilter) ?? []).concat(
|
|
44548
44547
|
customReportFilters[props.reportId ?? ""] ?? dashboardCustomFilters[report?.dashboardName ?? ""] ?? []
|
|
44549
44548
|
);
|
|
@@ -44699,7 +44698,7 @@ import {
|
|
|
44699
44698
|
useContext as useContext30,
|
|
44700
44699
|
useEffect as useEffect25,
|
|
44701
44700
|
useRef as useRef20,
|
|
44702
|
-
useMemo as
|
|
44701
|
+
useMemo as useMemo28,
|
|
44703
44702
|
useCallback as useCallback4
|
|
44704
44703
|
} from "react";
|
|
44705
44704
|
import MonacoEditor from "@monaco-editor/react";
|
|
@@ -44710,7 +44709,7 @@ import {
|
|
|
44710
44709
|
useRef as useRef19,
|
|
44711
44710
|
useState as useState31,
|
|
44712
44711
|
useContext as useContext28,
|
|
44713
|
-
useMemo as
|
|
44712
|
+
useMemo as useMemo27,
|
|
44714
44713
|
useCallback as useCallback3
|
|
44715
44714
|
} from "react";
|
|
44716
44715
|
import {
|
|
@@ -44734,7 +44733,7 @@ import { CSS as DND_CSS } from "@dnd-kit/utilities";
|
|
|
44734
44733
|
import {
|
|
44735
44734
|
useCallback as useCallback2,
|
|
44736
44735
|
useContext as useContext25,
|
|
44737
|
-
useMemo as
|
|
44736
|
+
useMemo as useMemo24,
|
|
44738
44737
|
useState as useState28,
|
|
44739
44738
|
useEffect as useEffect21,
|
|
44740
44739
|
useRef as useRef16
|
|
@@ -45242,13 +45241,13 @@ var PivotModal = ({
|
|
|
45242
45241
|
"bottom"
|
|
45243
45242
|
);
|
|
45244
45243
|
const popoverRef = useRef16(null);
|
|
45245
|
-
const columnsToShow =
|
|
45244
|
+
const columnsToShow = useMemo24(() => {
|
|
45246
45245
|
return (columns || []).reduce((map, col) => {
|
|
45247
45246
|
map[col.field] = col.format;
|
|
45248
45247
|
return map;
|
|
45249
45248
|
}, {});
|
|
45250
45249
|
}, [columns]);
|
|
45251
|
-
const columnTypes =
|
|
45250
|
+
const columnTypes = useMemo24(() => {
|
|
45252
45251
|
return (columns || []).reduce((map, col) => {
|
|
45253
45252
|
map[col.field] = col.jsType;
|
|
45254
45253
|
return map;
|
|
@@ -46981,7 +46980,7 @@ import {
|
|
|
46981
46980
|
useState as useState29,
|
|
46982
46981
|
useEffect as useEffect22,
|
|
46983
46982
|
useContext as useContext26,
|
|
46984
|
-
useMemo as
|
|
46983
|
+
useMemo as useMemo25,
|
|
46985
46984
|
useRef as useRef17,
|
|
46986
46985
|
useLayoutEffect as useLayoutEffect3
|
|
46987
46986
|
} from "react";
|
|
@@ -47105,7 +47104,7 @@ function InternalChart({
|
|
|
47105
47104
|
const { eventTracking } = useContext26(EventTrackingContext);
|
|
47106
47105
|
const [filtersPopoverOpen, setFiltersPopoverOpen] = useState29(false);
|
|
47107
47106
|
const filtersButtonRef = useRef17(null);
|
|
47108
|
-
const currentReportFilters =
|
|
47107
|
+
const currentReportFilters = useMemo25(() => {
|
|
47109
47108
|
const dashFilters = dashboardConfig[report?.dashboardName ?? ""]?.config.filters;
|
|
47110
47109
|
if (!dashFilters)
|
|
47111
47110
|
return Object.values(reportFilters[report?.id ?? TEMP_REPORT_ID] ?? {});
|
|
@@ -47121,12 +47120,12 @@ function InternalChart({
|
|
|
47121
47120
|
}
|
|
47122
47121
|
});
|
|
47123
47122
|
}, [reportFilters, report?.id]);
|
|
47124
|
-
const reportDateFilter =
|
|
47123
|
+
const reportDateFilter = useMemo25(() => {
|
|
47125
47124
|
return Object.values(
|
|
47126
47125
|
reportFilters[report?.id ?? TEMP_REPORT_ID] ?? {}
|
|
47127
47126
|
).find((f) => f.filter.filterType === "date_range")?.filter;
|
|
47128
47127
|
}, [reportFilters, report?.id]);
|
|
47129
|
-
const presetOptions =
|
|
47128
|
+
const presetOptions = useMemo25(() => {
|
|
47130
47129
|
return reportDateFilter ? convertPresetOptionsToSelectableList(
|
|
47131
47130
|
reportDateFilter.presetOptions ?? [],
|
|
47132
47131
|
reportDateFilter.defaultPresetRanges ?? []
|
|
@@ -47173,7 +47172,7 @@ function InternalChart({
|
|
|
47173
47172
|
}
|
|
47174
47173
|
}, [filters]);
|
|
47175
47174
|
const [theme] = useContext26(ThemeContext);
|
|
47176
|
-
const colorMap =
|
|
47175
|
+
const colorMap = useMemo25(() => {
|
|
47177
47176
|
if (mapColorsToFields && report && theme) {
|
|
47178
47177
|
return mapColorsToFields(report, theme);
|
|
47179
47178
|
}
|
|
@@ -47298,7 +47297,7 @@ function InternalChart({
|
|
|
47298
47297
|
const [filtersExpanded, setFiltersExpanded] = useState29(false);
|
|
47299
47298
|
const filtersContainerRef = useRef17(null);
|
|
47300
47299
|
const [visibleFilters, setVisibleFilters] = useState29([]);
|
|
47301
|
-
const filtersOverflowing =
|
|
47300
|
+
const filtersOverflowing = useMemo25(() => {
|
|
47302
47301
|
return visibleFilters.some((visible) => visible);
|
|
47303
47302
|
}, [visibleFilters]);
|
|
47304
47303
|
const measureItems = () => {
|
|
@@ -47561,7 +47560,7 @@ init_dates();
|
|
|
47561
47560
|
// src/components/QuillMultiSelectSectionList.tsx
|
|
47562
47561
|
import React16, {
|
|
47563
47562
|
useContext as useContext27,
|
|
47564
|
-
useMemo as
|
|
47563
|
+
useMemo as useMemo26,
|
|
47565
47564
|
useRef as useRef18,
|
|
47566
47565
|
useState as useState30
|
|
47567
47566
|
} from "react";
|
|
@@ -47635,7 +47634,7 @@ function QuillMultiSelectSectionList({
|
|
|
47635
47634
|
const filteredLength = React16.useMemo(() => {
|
|
47636
47635
|
return Object.values(filteredItems).reduce((a, b) => a + b.length, 0);
|
|
47637
47636
|
}, [filteredItems]);
|
|
47638
|
-
const selectedOptionsLabel =
|
|
47637
|
+
const selectedOptionsLabel = useMemo26(() => {
|
|
47639
47638
|
const valuesLength = Object.values(value).reduce((a, b) => a + b.length, 0);
|
|
47640
47639
|
if (!valuesLength) {
|
|
47641
47640
|
return "Select";
|
|
@@ -48499,11 +48498,11 @@ function ChartBuilder({
|
|
|
48499
48498
|
const { dashboardConfig } = useContext28(DashboardConfigContext);
|
|
48500
48499
|
const { tenants, flags } = useContext28(TenantContext);
|
|
48501
48500
|
const isReportLoading = reportId && !tempReport && reportsLoadingState[reportId];
|
|
48502
|
-
const report =
|
|
48501
|
+
const report = useMemo27(() => {
|
|
48503
48502
|
const resolvedReport = reportId && !tempReport ? allReportsById[reportId] : tempReport;
|
|
48504
48503
|
return resolvedReport;
|
|
48505
48504
|
}, [reportId, tempReport, allReportsById]);
|
|
48506
|
-
const reportFieldsByName =
|
|
48505
|
+
const reportFieldsByName = useMemo27(() => {
|
|
48507
48506
|
const fields = report?.fields;
|
|
48508
48507
|
if (!fields || fields.length === 0) {
|
|
48509
48508
|
return {};
|
|
@@ -48603,7 +48602,7 @@ function ChartBuilder({
|
|
|
48603
48602
|
const modalPadding = 20;
|
|
48604
48603
|
const deleteButtonMargin = -12;
|
|
48605
48604
|
const { dashboardFilters } = useContext28(DashboardFiltersContext);
|
|
48606
|
-
const specificDashboardFilters =
|
|
48605
|
+
const specificDashboardFilters = useMemo27(() => {
|
|
48607
48606
|
return Object.values(
|
|
48608
48607
|
dashboardFilters[report?.dashboardName ?? ""] ?? {}
|
|
48609
48608
|
).map((f) => f.filter);
|
|
@@ -48654,7 +48653,7 @@ function ChartBuilder({
|
|
|
48654
48653
|
const { reportsDispatch } = useContext28(ReportsContext);
|
|
48655
48654
|
const initialFilters = useRef19(reportFilters[report?.id ?? TEMP_REPORT_ID]);
|
|
48656
48655
|
const [reportFiltersLoaded, setReportFiltersLoaded] = useState31(!filtersEnabled);
|
|
48657
|
-
const hasExistingData =
|
|
48656
|
+
const hasExistingData = useMemo27(() => {
|
|
48658
48657
|
return report?.rows && report.rows.length > 0 || report?.pivotRows && report.pivotRows.length > 0;
|
|
48659
48658
|
}, [report?.rows, report?.pivotRows]);
|
|
48660
48659
|
useEffect23(() => {
|
|
@@ -48685,7 +48684,7 @@ function ChartBuilder({
|
|
|
48685
48684
|
}
|
|
48686
48685
|
};
|
|
48687
48686
|
}, []);
|
|
48688
|
-
const currentDashboardFilters =
|
|
48687
|
+
const currentDashboardFilters = useMemo27(() => {
|
|
48689
48688
|
return Object.values(reportFilters[report?.id ?? TEMP_REPORT_ID] ?? {}).map(
|
|
48690
48689
|
(f) => f.filter
|
|
48691
48690
|
);
|
|
@@ -48763,14 +48762,14 @@ function ChartBuilder({
|
|
|
48763
48762
|
const [referencedColumnsWithoutStar, setReferencedColumnsWithoutStar] = useState31({});
|
|
48764
48763
|
const [referencedTablesLoaded, setReferencedTablesLoaded] = useState31(false);
|
|
48765
48764
|
const [filterMap, setFilterMap] = useState31(report?.filterMap ?? {});
|
|
48766
|
-
const canonicalFilterMap =
|
|
48765
|
+
const canonicalFilterMap = useMemo27(() => {
|
|
48767
48766
|
return Object.fromEntries(
|
|
48768
48767
|
Object.entries(filterMap).filter(
|
|
48769
48768
|
(f) => f[1].table !== void 0 && f[1].field !== void 0
|
|
48770
48769
|
)
|
|
48771
48770
|
);
|
|
48772
48771
|
}, [filterMap]);
|
|
48773
|
-
const validFilter =
|
|
48772
|
+
const validFilter = useMemo27(() => {
|
|
48774
48773
|
return specificDashboardFilters.reduce(
|
|
48775
48774
|
(acc, filter) => {
|
|
48776
48775
|
if (filter.filterType === "date_range" || filter.filterType === "tenant" || !referencedTablesLoaded) {
|
|
@@ -48996,12 +48995,12 @@ function ChartBuilder({
|
|
|
48996
48995
|
const [formData, setFormData] = useState31(
|
|
48997
48996
|
formFormDataFromReport(report, destinationSection ?? getCurrentSection())
|
|
48998
48997
|
);
|
|
48999
|
-
const reportCustomFields =
|
|
48998
|
+
const reportCustomFields = useMemo27(() => {
|
|
49000
48999
|
return report?.columnsWithCustomFields?.filter(
|
|
49001
49000
|
(col) => !report?.columns?.some((c) => col.field === c.field)
|
|
49002
49001
|
) ?? [];
|
|
49003
49002
|
}, [report?.columnsWithCustomFields, report?.columns]);
|
|
49004
|
-
const referenceLineQueryResults =
|
|
49003
|
+
const referenceLineQueryResults = useMemo27(() => {
|
|
49005
49004
|
return formData?.referenceLines?.map((line) => {
|
|
49006
49005
|
if (line.label === REFERENCE_LINE) {
|
|
49007
49006
|
return [Number(line.y1) || 0, Number(line.y2) || 0];
|
|
@@ -49015,10 +49014,10 @@ function ChartBuilder({
|
|
|
49015
49014
|
);
|
|
49016
49015
|
});
|
|
49017
49016
|
}, [formData?.referenceLines]);
|
|
49018
|
-
const currentDashboard =
|
|
49017
|
+
const currentDashboard = useMemo27(() => {
|
|
49019
49018
|
return dashboardConfig[formData.dashboardName ?? report?.dashboardName ?? ""]?.config;
|
|
49020
49019
|
}, [dashboardConfig, formData.dashboardName, report?.dashboardName]);
|
|
49021
|
-
const currentDashboardTenants =
|
|
49020
|
+
const currentDashboardTenants = useMemo27(() => {
|
|
49022
49021
|
return currentDashboard?.tenantKeys?.map(
|
|
49023
49022
|
(tenantKey) => client?.allTenantTypes?.find(
|
|
49024
49023
|
(t) => t.tenantField === tenantKey
|
|
@@ -49026,7 +49025,7 @@ function ChartBuilder({
|
|
|
49026
49025
|
) ?? [];
|
|
49027
49026
|
}, [client?.allTenantTypes, currentDashboard?.tenantKeys]);
|
|
49028
49027
|
const dashboardOwner = currentDashboardTenants?.[0];
|
|
49029
|
-
const currentTenantAsFormFlags =
|
|
49028
|
+
const currentTenantAsFormFlags = useMemo27(() => {
|
|
49030
49029
|
if (!tenants || !tenants.length) {
|
|
49031
49030
|
return void 0;
|
|
49032
49031
|
}
|
|
@@ -49037,7 +49036,7 @@ function ChartBuilder({
|
|
|
49037
49036
|
const tenantIds = typeof tenants[0] !== "object" ? tenants : tenants[0]?.tenantIds;
|
|
49038
49037
|
return { [tenantField]: tenantIds };
|
|
49039
49038
|
}, [tenants, dashboardOwner]);
|
|
49040
|
-
const invalidColumns =
|
|
49039
|
+
const invalidColumns = useMemo27(() => {
|
|
49041
49040
|
if (!rows || !rows.length) {
|
|
49042
49041
|
return [];
|
|
49043
49042
|
}
|
|
@@ -49059,7 +49058,7 @@ function ChartBuilder({
|
|
|
49059
49058
|
);
|
|
49060
49059
|
})()
|
|
49061
49060
|
);
|
|
49062
|
-
const reportContainsCustomFields =
|
|
49061
|
+
const reportContainsCustomFields = useMemo27(() => {
|
|
49063
49062
|
const customFieldsMap = schemaData.customFields;
|
|
49064
49063
|
const reportQueryContainsCustomFields = allTables.some((table) => {
|
|
49065
49064
|
const tableColumns = referencedColumnsWithoutStar[table] ?? [];
|
|
@@ -49070,7 +49069,7 @@ function ChartBuilder({
|
|
|
49070
49069
|
});
|
|
49071
49070
|
return reportQueryContainsCustomFields;
|
|
49072
49071
|
}, [allTables, referencedColumnsWithoutStar]);
|
|
49073
|
-
const chartBuilderFormDataContainsCustomFields =
|
|
49072
|
+
const chartBuilderFormDataContainsCustomFields = useMemo27(() => {
|
|
49074
49073
|
const customFields = allTables.map((table) => schemaData.customFields?.[table] ?? []).flat();
|
|
49075
49074
|
const customFieldsMap = schemaData.customFields;
|
|
49076
49075
|
const pivotContainsCustomFields = customFields.some(
|
|
@@ -49103,13 +49102,13 @@ function ChartBuilder({
|
|
|
49103
49102
|
formData.dateField,
|
|
49104
49103
|
canonicalFilterMap
|
|
49105
49104
|
]);
|
|
49106
|
-
const customFieldsInTabularColumns =
|
|
49105
|
+
const customFieldsInTabularColumns = useMemo27(() => {
|
|
49107
49106
|
const customFields = allTables.map((table) => schemaData.customFields?.[table] ?? []).flat();
|
|
49108
49107
|
return formData.columns.some((col) => {
|
|
49109
49108
|
return customFields.some((field) => field.field === col.field);
|
|
49110
49109
|
});
|
|
49111
49110
|
}, [allTables, formData.columns]);
|
|
49112
|
-
const containsCustomFields =
|
|
49111
|
+
const containsCustomFields = useMemo27(() => {
|
|
49113
49112
|
return reportContainsCustomFields || customFieldsInTabularColumns || chartBuilderFormDataContainsCustomFields;
|
|
49114
49113
|
}, [
|
|
49115
49114
|
reportContainsCustomFields,
|
|
@@ -49282,7 +49281,7 @@ function ChartBuilder({
|
|
|
49282
49281
|
handleRunQuery(baseProcessing, currentDashboardFilters);
|
|
49283
49282
|
}
|
|
49284
49283
|
}, [runQueryOnMount, reportFiltersLoaded, filtersEnabled]);
|
|
49285
|
-
const allTenantMap =
|
|
49284
|
+
const allTenantMap = useMemo27(() => {
|
|
49286
49285
|
return client?.allTenantTypes?.reduce(
|
|
49287
49286
|
(acc, tenantType) => {
|
|
49288
49287
|
if (tenantType.scope === "database") {
|
|
@@ -49322,14 +49321,14 @@ function ChartBuilder({
|
|
|
49322
49321
|
},
|
|
49323
49322
|
[columns, selectedPivotTable]
|
|
49324
49323
|
);
|
|
49325
|
-
const pivotCardTable =
|
|
49324
|
+
const pivotCardTable = useMemo27(() => {
|
|
49326
49325
|
return {
|
|
49327
49326
|
pivot: formData.pivot,
|
|
49328
49327
|
rows: selectedPivotTable?.rows ?? [],
|
|
49329
49328
|
columns: selectedPivotTable?.columns ?? []
|
|
49330
49329
|
};
|
|
49331
49330
|
}, [selectedPivotTable, formData.pivot]);
|
|
49332
|
-
const chartData =
|
|
49331
|
+
const chartData = useMemo27(() => {
|
|
49333
49332
|
const data = createReportFromForm(
|
|
49334
49333
|
formData,
|
|
49335
49334
|
report ? { ...report, rowCount } : tempReport,
|
|
@@ -49351,7 +49350,7 @@ function ChartBuilder({
|
|
|
49351
49350
|
rowCount,
|
|
49352
49351
|
currentDashboardFilters
|
|
49353
49352
|
]);
|
|
49354
|
-
const xAxisFormatOptions =
|
|
49353
|
+
const xAxisFormatOptions = useMemo27(() => {
|
|
49355
49354
|
return chartData?.chartType === "gauge" ? [
|
|
49356
49355
|
{ value: "whole_number", label: "whole number" },
|
|
49357
49356
|
{ value: "two_decimal_places", label: "two decimal places" },
|
|
@@ -49415,7 +49414,7 @@ function ChartBuilder({
|
|
|
49415
49414
|
setSelectedPivotTable(void 0);
|
|
49416
49415
|
}
|
|
49417
49416
|
};
|
|
49418
|
-
const formattedRows =
|
|
49417
|
+
const formattedRows = useMemo27(() => {
|
|
49419
49418
|
const shouldUsePivotTableRows = selectedPivotTable && selectedPivotTable.columns && formData.chartType === "table";
|
|
49420
49419
|
if (shouldUsePivotTableRows) {
|
|
49421
49420
|
const columns2 = selectedPivotTable.columns;
|
|
@@ -50102,7 +50101,7 @@ function ChartBuilder({
|
|
|
50102
50101
|
setIsSubmitting(false);
|
|
50103
50102
|
setTriggeredEditChart(false);
|
|
50104
50103
|
};
|
|
50105
|
-
const memoizedTooltipText =
|
|
50104
|
+
const memoizedTooltipText = useMemo27(() => {
|
|
50106
50105
|
const getTooltipText = () => {
|
|
50107
50106
|
if (formData.name === "") {
|
|
50108
50107
|
return "Please enter a name for the chart";
|
|
@@ -52536,7 +52535,7 @@ function SQLEditor({
|
|
|
52536
52535
|
const { getToken, quillFetchWithToken } = useContext30(FetchContext);
|
|
52537
52536
|
const { eventTracking } = useContext30(EventTrackingContext);
|
|
52538
52537
|
const { allReportsById } = useAllReports();
|
|
52539
|
-
const destinationDashboardConfig =
|
|
52538
|
+
const destinationDashboardConfig = useMemo28(() => {
|
|
52540
52539
|
return dashboards?.find((d) => d.name === destinationDashboard);
|
|
52541
52540
|
}, [dashboards, destinationDashboard]);
|
|
52542
52541
|
const [query, setQuery] = useState33(defaultQuery);
|
|
@@ -52544,7 +52543,7 @@ function SQLEditor({
|
|
|
52544
52543
|
const [columns, setColumns] = useState33([]);
|
|
52545
52544
|
const [schemaData] = useContext30(SchemaDataContext);
|
|
52546
52545
|
const { dashboardFilters } = useContext30(DashboardFiltersContext);
|
|
52547
|
-
const specificDashboardFilters =
|
|
52546
|
+
const specificDashboardFilters = useMemo28(() => {
|
|
52548
52547
|
return Object.values(
|
|
52549
52548
|
dashboardFilters[report?.dashboardName ?? destinationDashboard ?? ""] ?? {}
|
|
52550
52549
|
).map((f) => f.filter);
|
|
@@ -52582,7 +52581,7 @@ function SQLEditor({
|
|
|
52582
52581
|
const DEFAULT_ROWS_PER_PAGE = 5;
|
|
52583
52582
|
const ROW_HEIGHT = 37;
|
|
52584
52583
|
const TABLE_TAB_HEIGHT = 75;
|
|
52585
|
-
const filteredSchema =
|
|
52584
|
+
const filteredSchema = useMemo28(() => {
|
|
52586
52585
|
return schemaData.schemaWithCustomFields?.filter((table) => {
|
|
52587
52586
|
return destinationDashboardConfig?.tenantKeys?.[0] === SINGLE_TENANT || !table.ownerTenantFields || table.ownerTenantFields?.length === 0 || table.ownerTenantFields?.includes(
|
|
52588
52587
|
destinationDashboardConfig?.tenantKeys?.[0] ?? ""
|
|
@@ -52657,7 +52656,7 @@ function SQLEditor({
|
|
|
52657
52656
|
};
|
|
52658
52657
|
const [currentPage, setCurrentPage] = useState33(0);
|
|
52659
52658
|
const [currentSort, setCurrentSort] = useState33(void 0);
|
|
52660
|
-
const currentProcessing =
|
|
52659
|
+
const currentProcessing = useMemo28(() => {
|
|
52661
52660
|
return {
|
|
52662
52661
|
page: {
|
|
52663
52662
|
currentPage,
|
|
@@ -52670,7 +52669,7 @@ function SQLEditor({
|
|
|
52670
52669
|
sort: currentSort
|
|
52671
52670
|
};
|
|
52672
52671
|
}, [currentPage, rowsPerPage, currentSort]);
|
|
52673
|
-
const displayedTableData =
|
|
52672
|
+
const displayedTableData = useMemo28(() => {
|
|
52674
52673
|
return filteredSchema?.filter((table) => {
|
|
52675
52674
|
return table.name?.toLowerCase()?.includes(tableSearchQuery.toLowerCase().trim()) || table.columns.some(
|
|
52676
52675
|
(col) => col.field?.toLowerCase()?.includes(tableSearchQuery.toLowerCase().trim())
|
|
@@ -54057,7 +54056,7 @@ import {
|
|
|
54057
54056
|
init_constants();
|
|
54058
54057
|
|
|
54059
54058
|
// src/hooks/useReportBuilder.tsx
|
|
54060
|
-
import { useContext as useContext31, useEffect as useEffect26, useMemo as
|
|
54059
|
+
import { useContext as useContext31, useEffect as useEffect26, useMemo as useMemo29, useState as useState34 } from "react";
|
|
54061
54060
|
init_tableProcessing();
|
|
54062
54061
|
init_ReportBuilder();
|
|
54063
54062
|
init_constants();
|
|
@@ -54086,10 +54085,10 @@ var useReportBuilderInternal = ({
|
|
|
54086
54085
|
} = useDashboardInternal(destinationDashboard);
|
|
54087
54086
|
const { getToken, quillFetchWithToken } = useContext31(FetchContext);
|
|
54088
54087
|
const { eventTracking } = useContext31(EventTrackingContext);
|
|
54089
|
-
const destinationDashboardConfig =
|
|
54088
|
+
const destinationDashboardConfig = useMemo29(() => {
|
|
54090
54089
|
return dashboards?.find((d) => d.name === destinationDashboard);
|
|
54091
54090
|
}, [dashboards, destinationDashboard]);
|
|
54092
|
-
const filteredSchema =
|
|
54091
|
+
const filteredSchema = useMemo29(() => {
|
|
54093
54092
|
return schemaData.schemaWithCustomFields?.filter((table) => {
|
|
54094
54093
|
return destinationDashboardConfig?.tenantKeys?.[0] === SINGLE_TENANT || !table.ownerTenantFields || table.ownerTenantFields?.length === 0 || table.ownerTenantFields?.includes(
|
|
54095
54094
|
destinationDashboardConfig?.tenantKeys?.[0] ?? ""
|
|
@@ -54120,7 +54119,7 @@ var useReportBuilderInternal = ({
|
|
|
54120
54119
|
const [pivot, setPivot] = useState34(null);
|
|
54121
54120
|
const [sort, setSort] = useState34([]);
|
|
54122
54121
|
const [limit, setLimit] = useState34(null);
|
|
54123
|
-
const reportBuilderState =
|
|
54122
|
+
const reportBuilderState = useMemo29(() => {
|
|
54124
54123
|
return {
|
|
54125
54124
|
tables,
|
|
54126
54125
|
columns,
|
|
@@ -54152,7 +54151,7 @@ var useReportBuilderInternal = ({
|
|
|
54152
54151
|
const [pivotData, setPivotData] = useState34(null);
|
|
54153
54152
|
const [numberOfRows, setNumberOfRows] = useState34(0);
|
|
54154
54153
|
const [rowCountIsLoading, setRowCountIsLoading] = useState34(false);
|
|
54155
|
-
const reportColumnsToStateColumns =
|
|
54154
|
+
const reportColumnsToStateColumns = useMemo29(() => {
|
|
54156
54155
|
const positionMap = {};
|
|
54157
54156
|
columns.forEach((column, index) => {
|
|
54158
54157
|
positionMap[column.field] = index;
|
|
@@ -54206,7 +54205,7 @@ var useReportBuilderInternal = ({
|
|
|
54206
54205
|
origin: "ReportBuilder",
|
|
54207
54206
|
loadDescription: "Loading ask AI"
|
|
54208
54207
|
});
|
|
54209
|
-
const isSelectStar =
|
|
54208
|
+
const isSelectStar = useMemo29(() => {
|
|
54210
54209
|
if (tables.length === 1) {
|
|
54211
54210
|
const totalColumnLength = tables.reduce((acc, table) => {
|
|
54212
54211
|
const tableColumns = filteredSchema.find((t) => t.name === table.name)?.columns.length ?? 0;
|
|
@@ -54217,14 +54216,14 @@ var useReportBuilderInternal = ({
|
|
|
54217
54216
|
return false;
|
|
54218
54217
|
}
|
|
54219
54218
|
}, [tables, columns, filteredSchema]);
|
|
54220
|
-
const mssqlSortWarning =
|
|
54219
|
+
const mssqlSortWarning = useMemo29(() => {
|
|
54221
54220
|
if (!client || client?.databaseType !== "mssql") {
|
|
54222
54221
|
return void 0;
|
|
54223
54222
|
} else if (!pivot && !limit) {
|
|
54224
54223
|
return "Please add a limit.";
|
|
54225
54224
|
}
|
|
54226
54225
|
}, [client, limit, pivot]);
|
|
54227
|
-
const foreignKeyMap =
|
|
54226
|
+
const foreignKeyMap = useMemo29(() => {
|
|
54228
54227
|
return getSchemaForeignKeyMapping(filteredSchema);
|
|
54229
54228
|
}, [filteredSchema]);
|
|
54230
54229
|
const clearAllState = (resetStateStack = true) => {
|
|
@@ -55541,7 +55540,7 @@ var useReportBuilder = ({
|
|
|
55541
55540
|
reportBuilder.setAiPrompt(prompt);
|
|
55542
55541
|
await reportBuilder.fetchAstFromPromptHelper(prompt);
|
|
55543
55542
|
};
|
|
55544
|
-
const cleanedSchema =
|
|
55543
|
+
const cleanedSchema = useMemo29(() => {
|
|
55545
55544
|
return reportBuilder.filteredSchema.reduce(
|
|
55546
55545
|
(acc, table) => {
|
|
55547
55546
|
acc[table.name] = table.columns;
|
|
@@ -55550,7 +55549,7 @@ var useReportBuilder = ({
|
|
|
55550
55549
|
{}
|
|
55551
55550
|
);
|
|
55552
55551
|
}, [reportBuilder.filteredSchema]);
|
|
55553
|
-
const cleanedFilterStack =
|
|
55552
|
+
const cleanedFilterStack = useMemo29(() => {
|
|
55554
55553
|
return reportBuilder.filterStack.map((filter) => {
|
|
55555
55554
|
return filter.value ? convertInternalFilterToFilter(filter.value) : null;
|
|
55556
55555
|
}).filter((filter) => filter !== null);
|
|
@@ -55587,7 +55586,7 @@ var useReportBuilder = ({
|
|
|
55587
55586
|
init_ReportBuilder();
|
|
55588
55587
|
|
|
55589
55588
|
// src/components/ReportBuilder/AddColumnModal.tsx
|
|
55590
|
-
import { useState as useState35, useRef as useRef21, useMemo as
|
|
55589
|
+
import { useState as useState35, useRef as useRef21, useMemo as useMemo30, useEffect as useEffect27, useContext as useContext32 } from "react";
|
|
55591
55590
|
import {
|
|
55592
55591
|
DndContext as DndContext2,
|
|
55593
55592
|
closestCenter as closestCenter2,
|
|
@@ -55632,7 +55631,7 @@ function AddColumnModal({
|
|
|
55632
55631
|
const [modalSelectedColumns, setModalSelectedColumns] = useState35(
|
|
55633
55632
|
selectedColumns.map((col) => `${col.table}.${col.field}`)
|
|
55634
55633
|
);
|
|
55635
|
-
const columnOptions =
|
|
55634
|
+
const columnOptions = useMemo30(() => {
|
|
55636
55635
|
return schema.filter((table) => {
|
|
55637
55636
|
if (!primaryTable) return true;
|
|
55638
55637
|
return table.name === primaryTable || foreignKeyMap[primaryTable]?.some(
|
|
@@ -55658,7 +55657,7 @@ function AddColumnModal({
|
|
|
55658
55657
|
}, [schema, primaryTable]);
|
|
55659
55658
|
const [orderedColumnNames, setOrderedColumnNames] = useState35([]);
|
|
55660
55659
|
const isSelectedAllColumns = columnOptions.length === modalSelectedColumns.length;
|
|
55661
|
-
const searchResults =
|
|
55660
|
+
const searchResults = useMemo30(() => {
|
|
55662
55661
|
return orderedColumnNames.filter((column) => {
|
|
55663
55662
|
return columnOptions.includes(column) && (search.length === 0 || column.toLowerCase().includes(search.toLowerCase()) || snakeAndCamelCaseToTitleCase(column).toLowerCase().includes(search.toLowerCase()));
|
|
55664
55663
|
});
|
|
@@ -56034,7 +56033,7 @@ import {
|
|
|
56034
56033
|
sortableKeyboardCoordinates as sortableKeyboardCoordinates3,
|
|
56035
56034
|
verticalListSortingStrategy as verticalListSortingStrategy3
|
|
56036
56035
|
} from "@dnd-kit/sortable";
|
|
56037
|
-
import { useMemo as
|
|
56036
|
+
import { useMemo as useMemo31 } from "react";
|
|
56038
56037
|
import { jsx as jsx73, jsxs as jsxs53 } from "react/jsx-runtime";
|
|
56039
56038
|
function DraggableColumns({
|
|
56040
56039
|
columns,
|
|
@@ -56048,7 +56047,7 @@ function DraggableColumns({
|
|
|
56048
56047
|
coordinateGetter: sortableKeyboardCoordinates3
|
|
56049
56048
|
})
|
|
56050
56049
|
);
|
|
56051
|
-
const columnNames =
|
|
56050
|
+
const columnNames = useMemo31(() => {
|
|
56052
56051
|
return columns.map(
|
|
56053
56052
|
(col) => `${col.table}.${col.alias ?? col.field}`
|
|
56054
56053
|
);
|
|
@@ -58589,7 +58588,7 @@ function ReportBuilder({
|
|
|
58589
58588
|
import {
|
|
58590
58589
|
useContext as useContext35,
|
|
58591
58590
|
useEffect as useEffect30,
|
|
58592
|
-
useMemo as
|
|
58591
|
+
useMemo as useMemo32,
|
|
58593
58592
|
useRef as useRef23,
|
|
58594
58593
|
useState as useState40
|
|
58595
58594
|
} from "react";
|
|
@@ -58644,7 +58643,7 @@ function ChartEditor({
|
|
|
58644
58643
|
const [modalHeight, setModalHeight] = useState40(200);
|
|
58645
58644
|
const { allReportsById } = useAllReports();
|
|
58646
58645
|
const report = allReportsById[reportId];
|
|
58647
|
-
const resolvedDashboard =
|
|
58646
|
+
const resolvedDashboard = useMemo32(
|
|
58648
58647
|
() => destinationDashboard ?? report?.dashboardName ?? null,
|
|
58649
58648
|
[destinationDashboard, report?.dashboardName]
|
|
58650
58649
|
);
|
|
@@ -58656,7 +58655,7 @@ function ChartEditor({
|
|
|
58656
58655
|
const { dashboardFilters } = useContext35(DashboardFiltersContext);
|
|
58657
58656
|
const { eventTracking } = useContext35(EventTrackingContext);
|
|
58658
58657
|
const { reload } = useDashboardInternal(resolvedDashboard);
|
|
58659
|
-
const specificDashboardFilters =
|
|
58658
|
+
const specificDashboardFilters = useMemo32(() => {
|
|
58660
58659
|
if (!report) {
|
|
58661
58660
|
return [];
|
|
58662
58661
|
}
|
|
@@ -58669,7 +58668,7 @@ function ChartEditor({
|
|
|
58669
58668
|
const dateFilter = Object.values(specificDashboardFilters).find(
|
|
58670
58669
|
(filter) => filter.filterType === "date_range"
|
|
58671
58670
|
);
|
|
58672
|
-
const dateRange =
|
|
58671
|
+
const dateRange = useMemo32(() => {
|
|
58673
58672
|
return dateFilter?.startDate ? { start: dateFilter.startDate, end: dateFilter.endDate } : void 0;
|
|
58674
58673
|
}, [dateFilter]);
|
|
58675
58674
|
useEffect30(() => {
|
|
@@ -58820,7 +58819,7 @@ function ChartEditor({
|
|
|
58820
58819
|
import { useContext as useContext37, useEffect as useEffect32, useRef as useRef25, useState as useState42 } from "react";
|
|
58821
58820
|
|
|
58822
58821
|
// src/ChatChartCard.tsx
|
|
58823
|
-
import { useMemo as
|
|
58822
|
+
import { useMemo as useMemo34 } from "react";
|
|
58824
58823
|
|
|
58825
58824
|
// src/hooks/useForm.tsx
|
|
58826
58825
|
init_Filter();
|
|
@@ -58830,7 +58829,7 @@ import {
|
|
|
58830
58829
|
useContext as useContext36,
|
|
58831
58830
|
useEffect as useEffect31,
|
|
58832
58831
|
useLayoutEffect as useLayoutEffect4,
|
|
58833
|
-
useMemo as
|
|
58832
|
+
useMemo as useMemo33,
|
|
58834
58833
|
useReducer as useReducer2,
|
|
58835
58834
|
useRef as useRef24,
|
|
58836
58835
|
useState as useState41
|
|
@@ -60205,12 +60204,13 @@ var QUERY_BUILDER_MULTI_VALUE_OPERATORS = /* @__PURE__ */ new Set(["in", "notin"
|
|
|
60205
60204
|
var TABLE_FORMAT_CACHE_MAX_ENTRIES = 5e3;
|
|
60206
60205
|
var PIVOT_DATE_BUCKET_FORMAT_OPTIONS = ["date"];
|
|
60207
60206
|
var PIVOT_DATE_BUCKET_OPTIONS = [
|
|
60208
|
-
{ label: "
|
|
60207
|
+
{ label: "Dynamic", value: "" },
|
|
60209
60208
|
{ label: "Daily", value: "day" },
|
|
60210
60209
|
{ label: "Weekly", value: "week" },
|
|
60211
60210
|
{ label: "Monthly", value: "month" },
|
|
60212
60211
|
{ label: "Yearly", value: "year" }
|
|
60213
60212
|
];
|
|
60213
|
+
var STANDARD_PIVOT_DATE_BUCKET_OPTIONS = PIVOT_DATE_BUCKET_OPTIONS.slice(1);
|
|
60214
60214
|
var AXIS_FORMAT_OPTIONS = [
|
|
60215
60215
|
{ value: "string", label: "string" },
|
|
60216
60216
|
{ value: "whole_number", label: "whole number" },
|
|
@@ -60688,17 +60688,26 @@ function buildPivotAggregationsWithFieldTables({
|
|
|
60688
60688
|
columnFieldTable
|
|
60689
60689
|
};
|
|
60690
60690
|
}
|
|
60691
|
+
function resolvePivotSortFieldTable(pivot, sortField) {
|
|
60692
|
+
const explicitTable = String(pivot?.sortFieldTable ?? "").trim();
|
|
60693
|
+
if (explicitTable && sortField === pivot?.sortField) return explicitTable;
|
|
60694
|
+
if (sortField === pivot?.rowField) return pivot?.rowFieldTable;
|
|
60695
|
+
if (sortField === pivot?.columnField) return pivot?.columnFieldTable;
|
|
60696
|
+
return void 0;
|
|
60697
|
+
}
|
|
60691
60698
|
function normalizePivotForRefreshComparison(pivot) {
|
|
60692
60699
|
if (pivot == null) return pivot;
|
|
60693
60700
|
const record = pivot;
|
|
60694
60701
|
const {
|
|
60695
60702
|
rowFieldTable: _pivotRowTable,
|
|
60696
60703
|
columnFieldTable: _pivotColumnTable,
|
|
60704
|
+
sortFieldTable: _pivotSortTable,
|
|
60697
60705
|
rowFilter: _rowFilter,
|
|
60698
60706
|
columnFilter: _columnFilter,
|
|
60699
60707
|
aggregations,
|
|
60700
60708
|
...pivotRest
|
|
60701
60709
|
} = record;
|
|
60710
|
+
void _pivotSortTable;
|
|
60702
60711
|
const next = { ...pivotRest };
|
|
60703
60712
|
if (Array.isArray(aggregations)) {
|
|
60704
60713
|
next.aggregations = aggregations.map((entry) => {
|
|
@@ -63500,6 +63509,7 @@ function useReport(reportIdArg, options = {}) {
|
|
|
63500
63509
|
const { eventTracking } = useContext36(EventTrackingContext);
|
|
63501
63510
|
const [draftSessionId, setDraftSessionId] = useState41(generateDraftSessionId);
|
|
63502
63511
|
const useInMemoryEngines = options.useInMemoryEngines ?? false;
|
|
63512
|
+
const dateBucketMode = options.dateBucketMode ?? "dynamic";
|
|
63503
63513
|
const restrictFieldOptionsToSelectedDatasources = options.restrictFieldOptionsToSelectedDatasources ?? true;
|
|
63504
63514
|
const reportOverride = options.reportOverride ?? null;
|
|
63505
63515
|
const initialReportBuilderState = options.initialReportBuilderState ?? null;
|
|
@@ -63654,7 +63664,7 @@ function useReport(reportIdArg, options = {}) {
|
|
|
63654
63664
|
clientDefaultDashboardName,
|
|
63655
63665
|
destinationDashboardName
|
|
63656
63666
|
].map((entry) => String(entry ?? "").trim()).find((entry) => entry.length > 0) ?? "";
|
|
63657
|
-
const initialFormState =
|
|
63667
|
+
const initialFormState = useMemo33(
|
|
63658
63668
|
() => ({
|
|
63659
63669
|
reportName: void 0,
|
|
63660
63670
|
columns: [],
|
|
@@ -63704,13 +63714,13 @@ function useReport(reportIdArg, options = {}) {
|
|
|
63704
63714
|
schemaDatasourceIds
|
|
63705
63715
|
} = formState;
|
|
63706
63716
|
const schemaDatasourceIdsKey = schemaDatasourceIds?.map((id) => String(id ?? "").trim()).join("\0") ?? "";
|
|
63707
|
-
const queryColumnsBootstrapKey =
|
|
63717
|
+
const queryColumnsBootstrapKey = useMemo33(
|
|
63708
63718
|
() => queryColumns.map(
|
|
63709
63719
|
(c) => `${String(c.table ?? "").trim()}\0${String(c.field ?? "").trim()}`
|
|
63710
63720
|
).join("\n"),
|
|
63711
63721
|
[queryColumns]
|
|
63712
63722
|
);
|
|
63713
|
-
const dashboardNameForNewReport =
|
|
63723
|
+
const dashboardNameForNewReport = useMemo33(() => {
|
|
63714
63724
|
return [clientDefaultDashboardName, destinationDashboardName].map((entry) => String(entry ?? "").trim()).find((entry) => entry.length > 0) ?? "";
|
|
63715
63725
|
}, [clientDefaultDashboardName, destinationDashboardName]);
|
|
63716
63726
|
const { mutate: createReport } = useMutation({
|
|
@@ -63784,16 +63794,16 @@ function useReport(reportIdArg, options = {}) {
|
|
|
63784
63794
|
);
|
|
63785
63795
|
schemaScopeInitializedForReportIdRef.current = effectiveReportId;
|
|
63786
63796
|
};
|
|
63787
|
-
const internalFilters =
|
|
63797
|
+
const internalFilters = useMemo33(
|
|
63788
63798
|
() => internalFiltersFromFilterStack(filterStack),
|
|
63789
63799
|
[filterStack]
|
|
63790
63800
|
);
|
|
63791
|
-
const customFilters =
|
|
63801
|
+
const customFilters = useMemo33(
|
|
63792
63802
|
() => customFiltersFromFilterStack(filterStack),
|
|
63793
63803
|
[filterStack]
|
|
63794
63804
|
);
|
|
63795
|
-
const reloadKey =
|
|
63796
|
-
const schemaForReportBuilderState =
|
|
63805
|
+
const reloadKey = useMemo33(() => 0, []);
|
|
63806
|
+
const schemaForReportBuilderState = useMemo33(() => {
|
|
63797
63807
|
if (schemaData.schemaWithCustomFields?.length) {
|
|
63798
63808
|
return schemaData.schemaWithCustomFields;
|
|
63799
63809
|
}
|
|
@@ -63816,19 +63826,19 @@ function useReport(reportIdArg, options = {}) {
|
|
|
63816
63826
|
},
|
|
63817
63827
|
[]
|
|
63818
63828
|
);
|
|
63819
|
-
const schemaForeignKeyMap =
|
|
63829
|
+
const schemaForeignKeyMap = useMemo33(
|
|
63820
63830
|
() => getSchemaForeignKeyMapping(schemaForReportBuilderState),
|
|
63821
63831
|
[schemaForReportBuilderState]
|
|
63822
63832
|
);
|
|
63823
63833
|
const reportBuilderBaseTableNamesKey = (sourceReport?.reportBuilderState?.tables ?? []).map((t) => String(t?.name ?? "").trim()).filter(Boolean).join("\0") ?? "";
|
|
63824
|
-
const selectedBaseTableNamesForFieldOptions =
|
|
63834
|
+
const selectedBaseTableNamesForFieldOptions = useMemo33(() => {
|
|
63825
63835
|
const fromPicker = schemaDatasourceIds?.map((id) => String(id ?? "").trim()).filter(Boolean) ?? [];
|
|
63826
63836
|
if (fromPicker.length > 0) {
|
|
63827
63837
|
return fromPicker;
|
|
63828
63838
|
}
|
|
63829
63839
|
return (sourceReport?.reportBuilderState?.tables ?? []).map((t) => String(t?.name ?? "").trim()).filter(Boolean);
|
|
63830
63840
|
}, [schemaDatasourceIdsKey, reportBuilderBaseTableNamesKey]);
|
|
63831
|
-
const fieldOptionsAllowedTableNames =
|
|
63841
|
+
const fieldOptionsAllowedTableNames = useMemo33(() => {
|
|
63832
63842
|
if (!restrictFieldOptionsToSelectedDatasources) {
|
|
63833
63843
|
return null;
|
|
63834
63844
|
}
|
|
@@ -63905,7 +63915,7 @@ function useReport(reportIdArg, options = {}) {
|
|
|
63905
63915
|
schemaForReportBuilderState,
|
|
63906
63916
|
queryColumnsBootstrapKey
|
|
63907
63917
|
]);
|
|
63908
|
-
const datasourceOptions =
|
|
63918
|
+
const datasourceOptions = useMemo33(() => {
|
|
63909
63919
|
const seen = /* @__PURE__ */ new Set();
|
|
63910
63920
|
const result = [];
|
|
63911
63921
|
for (const table2 of schemaForReportBuilderState) {
|
|
@@ -63916,7 +63926,7 @@ function useReport(reportIdArg, options = {}) {
|
|
|
63916
63926
|
}
|
|
63917
63927
|
return result;
|
|
63918
63928
|
}, [schemaForReportBuilderState]);
|
|
63919
|
-
const queryBuilderFieldConfigByName =
|
|
63929
|
+
const queryBuilderFieldConfigByName = useMemo33(() => {
|
|
63920
63930
|
const configByName = buildQueryBuilderFieldConfigByName(
|
|
63921
63931
|
schemaForReportBuilderState
|
|
63922
63932
|
);
|
|
@@ -64050,7 +64060,7 @@ function useReport(reportIdArg, options = {}) {
|
|
|
64050
64060
|
sourceReport?.columns,
|
|
64051
64061
|
sourceReport?.reportBuilderState?.columns
|
|
64052
64062
|
]);
|
|
64053
|
-
const filterUniqueValuesRequest =
|
|
64063
|
+
const filterUniqueValuesRequest = useMemo33(() => {
|
|
64054
64064
|
const dashboardName = resolvedSourceDashboardName;
|
|
64055
64065
|
const reportBuilderStateFromSource = sourceReport?.reportBuilderState;
|
|
64056
64066
|
const isStringReportBuilderColumn = (column) => {
|
|
@@ -64271,13 +64281,13 @@ function useReport(reportIdArg, options = {}) {
|
|
|
64271
64281
|
sourceReport?.reportBuilderState,
|
|
64272
64282
|
resolvedSourceDashboardName
|
|
64273
64283
|
]);
|
|
64274
|
-
const filterUniqueValuesRequestHash =
|
|
64284
|
+
const filterUniqueValuesRequestHash = useMemo33(
|
|
64275
64285
|
() => stableSerializeForQueryKey(
|
|
64276
64286
|
filterUniqueValuesRequestForQueryKey(filterUniqueValuesRequest)
|
|
64277
64287
|
),
|
|
64278
64288
|
[filterUniqueValuesRequest]
|
|
64279
64289
|
);
|
|
64280
|
-
const customFiltersHashForUniqueValues =
|
|
64290
|
+
const customFiltersHashForUniqueValues = useMemo33(
|
|
64281
64291
|
() => stableSerializeForQueryKey(customFilters),
|
|
64282
64292
|
[customFilters]
|
|
64283
64293
|
);
|
|
@@ -64354,7 +64364,7 @@ function useReport(reportIdArg, options = {}) {
|
|
|
64354
64364
|
enabled: filterUniqueValuesEnabled,
|
|
64355
64365
|
retry: false
|
|
64356
64366
|
});
|
|
64357
|
-
const backendUniqueValuesByFieldName =
|
|
64367
|
+
const backendUniqueValuesByFieldName = useMemo33(() => {
|
|
64358
64368
|
const valuesByField = /* @__PURE__ */ new Map();
|
|
64359
64369
|
const uniqueValuesByColumn = filterUniqueValuesQuery.data?.uniqueValuesByColumn;
|
|
64360
64370
|
if (!uniqueValuesByColumn || typeof uniqueValuesByColumn !== "object") {
|
|
@@ -64387,7 +64397,7 @@ function useReport(reportIdArg, options = {}) {
|
|
|
64387
64397
|
filterUniqueValuesQuery.data?.uniqueValuesByColumn,
|
|
64388
64398
|
filterUniqueValuesRequest?.stringColumnsByTable
|
|
64389
64399
|
]);
|
|
64390
|
-
const filterValueOptionsByFieldName =
|
|
64400
|
+
const filterValueOptionsByFieldName = useMemo33(() => {
|
|
64391
64401
|
const optionsByField = /* @__PURE__ */ new Map();
|
|
64392
64402
|
const selectedMultiselectByField = collectSelectedStringMultiselectValuesByField(queryFilters);
|
|
64393
64403
|
const collectValuesForField = (fieldName) => {
|
|
@@ -64453,7 +64463,7 @@ function useReport(reportIdArg, options = {}) {
|
|
|
64453
64463
|
queryBuilderFieldConfigByName,
|
|
64454
64464
|
queryFilters
|
|
64455
64465
|
]);
|
|
64456
|
-
const filterFieldsComputed =
|
|
64466
|
+
const filterFieldsComputed = useMemo33(() => {
|
|
64457
64467
|
const fields = [];
|
|
64458
64468
|
const seen = /* @__PURE__ */ new Set();
|
|
64459
64469
|
const addField = (fieldName, fieldType, tableName, rawFieldName) => {
|
|
@@ -64556,7 +64566,7 @@ function useReport(reportIdArg, options = {}) {
|
|
|
64556
64566
|
]);
|
|
64557
64567
|
const filterFieldsStableReportIdRef = useRef24("");
|
|
64558
64568
|
const filterFieldsStableCacheRef = useRef24([]);
|
|
64559
|
-
const filterFields =
|
|
64569
|
+
const filterFields = useMemo33(() => {
|
|
64560
64570
|
const rid = String(effectiveReportId ?? "");
|
|
64561
64571
|
if (filterFieldsStableReportIdRef.current !== rid) {
|
|
64562
64572
|
filterFieldsStableReportIdRef.current = rid;
|
|
@@ -64571,14 +64581,14 @@ function useReport(reportIdArg, options = {}) {
|
|
|
64571
64581
|
}
|
|
64572
64582
|
return filterFieldsComputed;
|
|
64573
64583
|
}, [effectiveReportId, filterFieldsComputed]);
|
|
64574
|
-
const getFilterOperators =
|
|
64584
|
+
const getFilterOperators = useMemo33(
|
|
64575
64585
|
() => (_field, misc) => {
|
|
64576
64586
|
const fieldType = misc?.fieldData?.quillFieldType ?? queryBuilderFieldConfigByName[String(_field ?? "").trim()]?.fieldType ?? "string";
|
|
64577
64587
|
return QUERY_BUILDER_OPERATORS_BY_FIELD_TYPE[fieldType] ?? QUERY_BUILDER_OPERATORS_BY_FIELD_TYPE.string;
|
|
64578
64588
|
},
|
|
64579
64589
|
[queryBuilderFieldConfigByName]
|
|
64580
64590
|
);
|
|
64581
|
-
const getFilterInputType =
|
|
64591
|
+
const getFilterInputType = useMemo33(
|
|
64582
64592
|
() => (_field, operator, misc) => {
|
|
64583
64593
|
const fieldType = misc?.fieldData?.quillFieldType ?? queryBuilderFieldConfigByName[String(_field ?? "").trim()]?.fieldType ?? "string";
|
|
64584
64594
|
if (fieldType === "date" && isRelativeDateQueryBuilderOperator(operator)) {
|
|
@@ -64588,7 +64598,7 @@ function useReport(reportIdArg, options = {}) {
|
|
|
64588
64598
|
},
|
|
64589
64599
|
[queryBuilderFieldConfigByName]
|
|
64590
64600
|
);
|
|
64591
|
-
const getFilterValueEditorType =
|
|
64601
|
+
const getFilterValueEditorType = useMemo33(
|
|
64592
64602
|
() => (_field, operator, misc) => {
|
|
64593
64603
|
const fieldType = misc?.fieldData?.quillFieldType ?? queryBuilderFieldConfigByName[String(_field ?? "").trim()]?.fieldType;
|
|
64594
64604
|
if (fieldType === "string" && isMultiValueOperator(operator)) {
|
|
@@ -64601,7 +64611,7 @@ function useReport(reportIdArg, options = {}) {
|
|
|
64601
64611
|
},
|
|
64602
64612
|
[queryBuilderFieldConfigByName]
|
|
64603
64613
|
);
|
|
64604
|
-
const getFilterValues =
|
|
64614
|
+
const getFilterValues = useMemo33(
|
|
64605
64615
|
() => (_field, operator, misc) => {
|
|
64606
64616
|
const fieldName = String(_field ?? "").trim();
|
|
64607
64617
|
if (!fieldName) {
|
|
@@ -64631,7 +64641,7 @@ function useReport(reportIdArg, options = {}) {
|
|
|
64631
64641
|
},
|
|
64632
64642
|
[filterValueOptionsByFieldName, queryBuilderFieldConfigByName]
|
|
64633
64643
|
);
|
|
64634
|
-
const filterQueryBuilderProps =
|
|
64644
|
+
const filterQueryBuilderProps = useMemo33(
|
|
64635
64645
|
() => ({
|
|
64636
64646
|
fields: filterFields,
|
|
64637
64647
|
listsAsArrays: true,
|
|
@@ -64648,7 +64658,7 @@ function useReport(reportIdArg, options = {}) {
|
|
|
64648
64658
|
getFilterValues
|
|
64649
64659
|
]
|
|
64650
64660
|
);
|
|
64651
|
-
const filtersForQueryBuilder =
|
|
64661
|
+
const filtersForQueryBuilder = useMemo33(
|
|
64652
64662
|
() => canonicalizeMultiselectStringRulesToOptionValues(
|
|
64653
64663
|
queryFilters,
|
|
64654
64664
|
filterValueOptionsByFieldName,
|
|
@@ -64715,12 +64725,12 @@ function useReport(reportIdArg, options = {}) {
|
|
|
64715
64725
|
...table2 ? { table: table2 } : {}
|
|
64716
64726
|
};
|
|
64717
64727
|
};
|
|
64718
|
-
const tenantHash =
|
|
64728
|
+
const tenantHash = useMemo33(
|
|
64719
64729
|
() => stableSerializeForQueryKey(tenants),
|
|
64720
64730
|
[tenants]
|
|
64721
64731
|
);
|
|
64722
|
-
const flagHash =
|
|
64723
|
-
const clientHash =
|
|
64732
|
+
const flagHash = useMemo33(() => stableSerializeForQueryKey(flags), [flags]);
|
|
64733
|
+
const clientHash = useMemo33(
|
|
64724
64734
|
() => stableSerializeForQueryKey({
|
|
64725
64735
|
publicKey: client?.publicKey,
|
|
64726
64736
|
clientId: client?.clientId,
|
|
@@ -64728,7 +64738,7 @@ function useReport(reportIdArg, options = {}) {
|
|
|
64728
64738
|
}),
|
|
64729
64739
|
[client]
|
|
64730
64740
|
);
|
|
64731
|
-
const reloadKeyHash =
|
|
64741
|
+
const reloadKeyHash = useMemo33(
|
|
64732
64742
|
() => stableSerializeForQueryKey(reloadKey),
|
|
64733
64743
|
[reloadKey]
|
|
64734
64744
|
);
|
|
@@ -65006,11 +65016,11 @@ function useReport(reportIdArg, options = {}) {
|
|
|
65006
65016
|
schemaForReportBuilderState,
|
|
65007
65017
|
sourceReport
|
|
65008
65018
|
]);
|
|
65009
|
-
const appliedAggregationState =
|
|
65019
|
+
const appliedAggregationState = useMemo33(
|
|
65010
65020
|
() => aggregationState.filter(isAppliedAggregation),
|
|
65011
65021
|
[aggregationState]
|
|
65012
65022
|
);
|
|
65013
|
-
const pivotState =
|
|
65023
|
+
const pivotState = useMemo33(() => {
|
|
65014
65024
|
if (!resolvedGroupRowsBy && !resolvedGroupColumnsBy && appliedAggregationState.length === 0) {
|
|
65015
65025
|
return null;
|
|
65016
65026
|
}
|
|
@@ -65048,17 +65058,24 @@ function useReport(reportIdArg, options = {}) {
|
|
|
65048
65058
|
rowTableHint,
|
|
65049
65059
|
columnTableHint
|
|
65050
65060
|
});
|
|
65061
|
+
const configuredDateBucket = chartPivotHydratedFromSourceRef.current ? dateBucket : dateBucket ?? priorPivot?.dateBucket;
|
|
65051
65062
|
const built = {
|
|
65052
65063
|
...priorPivot ?? {},
|
|
65053
65064
|
rowField: effectiveRowField,
|
|
65054
65065
|
rowFieldType,
|
|
65055
65066
|
columnField: effectiveColumnField,
|
|
65056
65067
|
columnFieldType,
|
|
65057
|
-
dateBucket:
|
|
65068
|
+
dateBucket: configuredDateBucket,
|
|
65058
65069
|
aggregations,
|
|
65059
65070
|
...rowFieldTable ? { rowFieldTable } : {},
|
|
65060
65071
|
...columnFieldTable ? { columnFieldTable } : {}
|
|
65061
65072
|
};
|
|
65073
|
+
if (dateBucketMode === "standard" && effectiveRowField && isDateType(String(rowFieldType ?? ""))) {
|
|
65074
|
+
built.dateBucket = resolvePivotDateBucket({
|
|
65075
|
+
pivot: built,
|
|
65076
|
+
filters: internalFilters
|
|
65077
|
+
}) ?? "month";
|
|
65078
|
+
}
|
|
65062
65079
|
return built;
|
|
65063
65080
|
}, [
|
|
65064
65081
|
aggregationState,
|
|
@@ -65066,8 +65083,10 @@ function useReport(reportIdArg, options = {}) {
|
|
|
65066
65083
|
appliedAggregationState,
|
|
65067
65084
|
baseReportBuilderTables,
|
|
65068
65085
|
dateBucket,
|
|
65086
|
+
dateBucketMode,
|
|
65069
65087
|
groupColumnsBy,
|
|
65070
65088
|
groupRowsBy,
|
|
65089
|
+
internalFilters,
|
|
65071
65090
|
schemaForReportBuilderState,
|
|
65072
65091
|
sourceReport?.columnInternal,
|
|
65073
65092
|
sourceReport?.columns,
|
|
@@ -65088,7 +65107,7 @@ function useReport(reportIdArg, options = {}) {
|
|
|
65088
65107
|
}
|
|
65089
65108
|
prevPivotStateForColumnExpansionRef.current = pivotState;
|
|
65090
65109
|
}, [pivotState]);
|
|
65091
|
-
const effectiveReportBuilderTables =
|
|
65110
|
+
const effectiveReportBuilderTables = useMemo33(() => {
|
|
65092
65111
|
const explicitBaseFromSchemaPicker = Array.isArray(schemaDatasourceIds) && schemaDatasourceIds.length > 0 ? schemaDatasourceIds.map((tableName) => String(tableName ?? "").trim()).filter(Boolean).map((name2) => ({ name: name2 })) : null;
|
|
65093
65112
|
const baseTablesForMerge = explicitBaseFromSchemaPicker ?? baseReportBuilderTables;
|
|
65094
65113
|
return mergeReportBuilderTables(
|
|
@@ -65112,18 +65131,18 @@ function useReport(reportIdArg, options = {}) {
|
|
|
65112
65131
|
queryColumns,
|
|
65113
65132
|
schemaDatasourceIds
|
|
65114
65133
|
]);
|
|
65115
|
-
const datasources =
|
|
65134
|
+
const datasources = useMemo33(() => {
|
|
65116
65135
|
return effectiveReportBuilderTables.map((table2) => String(table2.name ?? "").trim()).filter((name2) => Boolean(name2));
|
|
65117
65136
|
}, [effectiveReportBuilderTables]);
|
|
65118
|
-
const effectiveReportBuilderTableNames =
|
|
65137
|
+
const effectiveReportBuilderTableNames = useMemo33(
|
|
65119
65138
|
() => effectiveReportBuilderTables.map((table2) => String(table2.name ?? "").trim()).filter((name2) => Boolean(name2)),
|
|
65120
65139
|
[effectiveReportBuilderTables]
|
|
65121
65140
|
);
|
|
65122
|
-
const baseReportBuilderTableNames =
|
|
65141
|
+
const baseReportBuilderTableNames = useMemo33(
|
|
65123
65142
|
() => baseReportBuilderTables.map((table2) => String(table2.name ?? "").trim()).filter((name2) => Boolean(name2)),
|
|
65124
65143
|
[baseReportBuilderTables]
|
|
65125
65144
|
);
|
|
65126
|
-
const normalizeQueryBuilderFieldNameForConfig =
|
|
65145
|
+
const normalizeQueryBuilderFieldNameForConfig = useMemo33(() => {
|
|
65127
65146
|
const configEntries = Object.entries(queryBuilderFieldConfigByName);
|
|
65128
65147
|
const preferredTableNames = /* @__PURE__ */ new Set([
|
|
65129
65148
|
...effectiveReportBuilderTableNames,
|
|
@@ -65172,7 +65191,7 @@ function useReport(reportIdArg, options = {}) {
|
|
|
65172
65191
|
effectiveReportBuilderTableNames,
|
|
65173
65192
|
queryBuilderFieldConfigByName
|
|
65174
65193
|
]);
|
|
65175
|
-
const normalizeQueryBuilderFiltersForConfig =
|
|
65194
|
+
const normalizeQueryBuilderFiltersForConfig = useMemo33(() => {
|
|
65176
65195
|
const normalizeGroup = (group) => {
|
|
65177
65196
|
const groupRules = Array.isArray(group.rules) ? group.rules : [];
|
|
65178
65197
|
const nextRules = groupRules.map((entry) => {
|
|
@@ -65209,14 +65228,14 @@ function useReport(reportIdArg, options = {}) {
|
|
|
65209
65228
|
return normalizeGroup(group);
|
|
65210
65229
|
};
|
|
65211
65230
|
}, [normalizeQueryBuilderFieldNameForConfig, queryBuilderFieldConfigByName]);
|
|
65212
|
-
const refreshSelectionTables =
|
|
65231
|
+
const refreshSelectionTables = useMemo33(() => {
|
|
65213
65232
|
return [
|
|
65214
65233
|
getPivotGroupOptionTable(groupRowsBy),
|
|
65215
65234
|
getPivotGroupOptionTable(groupColumnsBy),
|
|
65216
65235
|
...aggregationTablesByIndex
|
|
65217
65236
|
].map((tableName) => String(tableName ?? "").trim()).filter((tableName) => Boolean(tableName));
|
|
65218
65237
|
}, [aggregationTablesByIndex, groupColumnsBy, groupRowsBy]);
|
|
65219
|
-
const refreshSelectionFields =
|
|
65238
|
+
const refreshSelectionFields = useMemo33(() => {
|
|
65220
65239
|
const resolveFieldTableForSelection = (field, tableHint) => {
|
|
65221
65240
|
const fieldName = String(field ?? "").trim();
|
|
65222
65241
|
if (!fieldName) return "";
|
|
@@ -65266,7 +65285,7 @@ function useReport(reportIdArg, options = {}) {
|
|
|
65266
65285
|
schemaForReportBuilderState,
|
|
65267
65286
|
sourceReport
|
|
65268
65287
|
]);
|
|
65269
|
-
const refreshDecision =
|
|
65288
|
+
const refreshDecision = useMemo33(
|
|
65270
65289
|
() => decideReportBuilderRefresh({
|
|
65271
65290
|
baseTables: baseReportBuilderTables,
|
|
65272
65291
|
baseColumns: baseReportBuilderColumns,
|
|
@@ -65280,7 +65299,7 @@ function useReport(reportIdArg, options = {}) {
|
|
|
65280
65299
|
refreshSelectionTables
|
|
65281
65300
|
]
|
|
65282
65301
|
);
|
|
65283
|
-
const effectiveReportBuilderColumns =
|
|
65302
|
+
const effectiveReportBuilderColumns = useMemo33(() => {
|
|
65284
65303
|
const columnsFromPivot = [];
|
|
65285
65304
|
const appendPivotColumn = (field, tableHint) => {
|
|
65286
65305
|
const normalizedField = String(field ?? "").trim();
|
|
@@ -65378,7 +65397,7 @@ function useReport(reportIdArg, options = {}) {
|
|
|
65378
65397
|
queryBuilderFieldConfigByName,
|
|
65379
65398
|
queryFilters
|
|
65380
65399
|
]);
|
|
65381
|
-
const resolvedSortFieldType =
|
|
65400
|
+
const resolvedSortFieldType = useMemo33(() => {
|
|
65382
65401
|
const sortField = pivotSort?.sortField;
|
|
65383
65402
|
if (!sortField || !pivotState) return void 0;
|
|
65384
65403
|
if (sortField === resolvedGroupRowsBy) {
|
|
@@ -65399,7 +65418,7 @@ function useReport(reportIdArg, options = {}) {
|
|
|
65399
65418
|
resolvedGroupColumnsBy,
|
|
65400
65419
|
resolvedGroupRowsBy
|
|
65401
65420
|
]);
|
|
65402
|
-
const effectiveReportBuilderState =
|
|
65421
|
+
const effectiveReportBuilderState = useMemo33(() => {
|
|
65403
65422
|
if (!sourceReport && effectiveReportBuilderTables.length === 0) {
|
|
65404
65423
|
return void 0;
|
|
65405
65424
|
}
|
|
@@ -65411,6 +65430,10 @@ function useReport(reportIdArg, options = {}) {
|
|
|
65411
65430
|
...pivotState,
|
|
65412
65431
|
sort: Boolean(pivotSort?.sortField),
|
|
65413
65432
|
sortField: pivotSort?.sortField,
|
|
65433
|
+
sortFieldTable: resolvePivotSortFieldTable(
|
|
65434
|
+
pivotState,
|
|
65435
|
+
pivotSort?.sortField
|
|
65436
|
+
),
|
|
65414
65437
|
sortDirection: pivotSort?.sortDirection,
|
|
65415
65438
|
sortFieldType: resolvedSortFieldType,
|
|
65416
65439
|
rowLimit: limit?.value
|
|
@@ -65438,7 +65461,7 @@ function useReport(reportIdArg, options = {}) {
|
|
|
65438
65461
|
resolvedSortFieldType,
|
|
65439
65462
|
sourceReport
|
|
65440
65463
|
]);
|
|
65441
|
-
const effectiveReportBuilderStateHash =
|
|
65464
|
+
const effectiveReportBuilderStateHash = useMemo33(
|
|
65442
65465
|
() => stableSerializeForQueryKey(effectiveReportBuilderState),
|
|
65443
65466
|
[effectiveReportBuilderState]
|
|
65444
65467
|
);
|
|
@@ -65459,7 +65482,7 @@ function useReport(reportIdArg, options = {}) {
|
|
|
65459
65482
|
activate: false
|
|
65460
65483
|
});
|
|
65461
65484
|
}, [applyPaginationUpdate, effectiveReportBuilderStateHash]);
|
|
65462
|
-
const pivotTableDataReportBuilderState =
|
|
65485
|
+
const pivotTableDataReportBuilderState = useMemo33(() => {
|
|
65463
65486
|
if (!effectiveReportBuilderState?.pivot) {
|
|
65464
65487
|
return void 0;
|
|
65465
65488
|
}
|
|
@@ -65479,11 +65502,11 @@ function useReport(reportIdArg, options = {}) {
|
|
|
65479
65502
|
limit: null
|
|
65480
65503
|
};
|
|
65481
65504
|
}, [effectiveReportBuilderState, schemaForReportBuilderState]);
|
|
65482
|
-
const pivotTableDataReportBuilderStateHash =
|
|
65505
|
+
const pivotTableDataReportBuilderStateHash = useMemo33(
|
|
65483
65506
|
() => stableSerializeForQueryKey(pivotTableDataReportBuilderState),
|
|
65484
65507
|
[pivotTableDataReportBuilderState]
|
|
65485
65508
|
);
|
|
65486
|
-
const sourceReportMatchesEffectiveReportId =
|
|
65509
|
+
const sourceReportMatchesEffectiveReportId = useMemo33(() => {
|
|
65487
65510
|
const loadTarget = String(effectiveReportId ?? "").trim();
|
|
65488
65511
|
if (!loadTarget || !sourceReport) {
|
|
65489
65512
|
return true;
|
|
@@ -65493,7 +65516,7 @@ function useReport(reportIdArg, options = {}) {
|
|
|
65493
65516
|
).trim();
|
|
65494
65517
|
return sid === loadTarget;
|
|
65495
65518
|
}, [effectiveReportId, sourceReport]);
|
|
65496
|
-
const shouldSkipRedundantFlatTableReportBuilderQuery =
|
|
65519
|
+
const shouldSkipRedundantFlatTableReportBuilderQuery = useMemo33(() => {
|
|
65497
65520
|
if (!sourceReport || pivotState) {
|
|
65498
65521
|
return false;
|
|
65499
65522
|
}
|
|
@@ -65604,7 +65627,7 @@ function useReport(reportIdArg, options = {}) {
|
|
|
65604
65627
|
effectiveReportId,
|
|
65605
65628
|
sourceReport?.id
|
|
65606
65629
|
]);
|
|
65607
|
-
const chartTypes =
|
|
65630
|
+
const chartTypes = useMemo33(() => {
|
|
65608
65631
|
return getChartTypeOptions2({ pivot: pivotState });
|
|
65609
65632
|
}, [pivotState]);
|
|
65610
65633
|
const resolvedChartType = chartTypes.find((option) => option.value === chartType)?.value ?? chartTypes.find((option) => option.value === sourceReport?.chartType)?.value ?? chartTypes.find((option) => option.value === DEFAULT_CHART_TYPE)?.value ?? chartTypes[0]?.value ?? DEFAULT_CHART_TYPE;
|
|
@@ -65643,7 +65666,7 @@ function useReport(reportIdArg, options = {}) {
|
|
|
65643
65666
|
});
|
|
65644
65667
|
}
|
|
65645
65668
|
}, [chartType, chartTypes, sourceReport]);
|
|
65646
|
-
const schemaScopedTableNames =
|
|
65669
|
+
const schemaScopedTableNames = useMemo33(() => {
|
|
65647
65670
|
if (preserveSchemaWideOptions) {
|
|
65648
65671
|
return [];
|
|
65649
65672
|
}
|
|
@@ -65658,7 +65681,7 @@ function useReport(reportIdArg, options = {}) {
|
|
|
65658
65681
|
preserveSchemaWideOptions,
|
|
65659
65682
|
sourceReport?.reportBuilderState?.tables
|
|
65660
65683
|
]);
|
|
65661
|
-
const joinCompatibleSchemaTableNames =
|
|
65684
|
+
const joinCompatibleSchemaTableNames = useMemo33(() => {
|
|
65662
65685
|
if (schemaScopedTableNames.length === 0) {
|
|
65663
65686
|
return [];
|
|
65664
65687
|
}
|
|
@@ -65667,7 +65690,7 @@ function useReport(reportIdArg, options = {}) {
|
|
|
65667
65690
|
schemaForeignKeyMap
|
|
65668
65691
|
);
|
|
65669
65692
|
}, [schemaForeignKeyMap, schemaScopedTableNames]);
|
|
65670
|
-
const aggregationFallbackTarget =
|
|
65693
|
+
const aggregationFallbackTarget = useMemo33(() => {
|
|
65671
65694
|
const tableNames = effectiveReportBuilderTables.map((table2) => table2.name).filter((name2) => Boolean(name2));
|
|
65672
65695
|
const referencedTableNames = (sourceReport?.referencedTables ?? []).filter(
|
|
65673
65696
|
(name2) => typeof name2 === "string" && name2.length > 0
|
|
@@ -65675,7 +65698,7 @@ function useReport(reportIdArg, options = {}) {
|
|
|
65675
65698
|
const tableNamesToUse = tableNames.length ? tableNames : referencedTableNames;
|
|
65676
65699
|
return tableNamesToUse.length > 0 ? tableNamesToUse.join(", ") : "table";
|
|
65677
65700
|
}, [effectiveReportBuilderTables, sourceReport?.referencedTables]);
|
|
65678
|
-
const aggregationFallbackTableName =
|
|
65701
|
+
const aggregationFallbackTableName = useMemo33(() => {
|
|
65679
65702
|
const tableNames = effectiveReportBuilderTables.map((table2) => table2.name).filter((name2) => Boolean(name2));
|
|
65680
65703
|
const referencedTableNames = (sourceReport?.referencedTables ?? []).filter(
|
|
65681
65704
|
(name2) => typeof name2 === "string" && name2.length > 0
|
|
@@ -65683,7 +65706,7 @@ function useReport(reportIdArg, options = {}) {
|
|
|
65683
65706
|
const tableNamesToUse = tableNames.length ? tableNames : referencedTableNames;
|
|
65684
65707
|
return tableNamesToUse[0] ?? "table";
|
|
65685
65708
|
}, [effectiveReportBuilderTables, sourceReport?.referencedTables]);
|
|
65686
|
-
const cleanedAggregations =
|
|
65709
|
+
const cleanedAggregations = useMemo33(() => {
|
|
65687
65710
|
return aggregationState.filter((aggregation) => Boolean(aggregation?.aggregationType)).map((aggregation, index) => {
|
|
65688
65711
|
const aggregationType = String(aggregation.aggregationType);
|
|
65689
65712
|
const normalizedAggregationType = aggregationType.toLowerCase();
|
|
@@ -65705,7 +65728,7 @@ function useReport(reportIdArg, options = {}) {
|
|
|
65705
65728
|
aggregationTablesByIndex,
|
|
65706
65729
|
isBoolAggregationField
|
|
65707
65730
|
]);
|
|
65708
|
-
const { aggregationBaseOptions, aggregationOptionTableLookup } =
|
|
65731
|
+
const { aggregationBaseOptions, aggregationOptionTableLookup } = useMemo33(() => {
|
|
65709
65732
|
const joinScoped = fieldOptionsAllowedTableNames ? joinCompatibleSchemaTableNames.filter(
|
|
65710
65733
|
(name2) => fieldOptionsAllowedTableNames.has(name2)
|
|
65711
65734
|
) : joinCompatibleSchemaTableNames;
|
|
@@ -65788,7 +65811,7 @@ function useReport(reportIdArg, options = {}) {
|
|
|
65788
65811
|
resolvedGroupRowsBy,
|
|
65789
65812
|
schemaForReportBuilderState
|
|
65790
65813
|
]);
|
|
65791
|
-
const { schemaColumnOptions, columnIdentifierLookup } =
|
|
65814
|
+
const { schemaColumnOptions, columnIdentifierLookup } = useMemo33(() => {
|
|
65792
65815
|
const lookup = /* @__PURE__ */ new Map();
|
|
65793
65816
|
const options2 = [];
|
|
65794
65817
|
for (const table2 of schemaData.schemaWithCustomFields) {
|
|
@@ -65815,7 +65838,7 @@ function useReport(reportIdArg, options = {}) {
|
|
|
65815
65838
|
columnIdentifierLookup: lookup
|
|
65816
65839
|
};
|
|
65817
65840
|
}, [schemaData.schemaWithCustomFields]);
|
|
65818
|
-
const tableColumnPickerPoolOptions =
|
|
65841
|
+
const tableColumnPickerPoolOptions = useMemo33(() => {
|
|
65819
65842
|
const allowed = new Set(
|
|
65820
65843
|
effectiveReportBuilderTableNames.map((name2) => String(name2 ?? "").trim()).filter(Boolean)
|
|
65821
65844
|
);
|
|
@@ -65826,16 +65849,16 @@ function useReport(reportIdArg, options = {}) {
|
|
|
65826
65849
|
(option) => allowed.has(String(option.tableName ?? "").trim())
|
|
65827
65850
|
);
|
|
65828
65851
|
}, [effectiveReportBuilderTableNames, schemaColumnOptions]);
|
|
65829
|
-
const columns =
|
|
65852
|
+
const columns = useMemo33(() => {
|
|
65830
65853
|
return displayColumns.filter((column) => Boolean(column.field)).map((column) => encodeColumnOptionValue(column.table, column.field));
|
|
65831
65854
|
}, [displayColumns]);
|
|
65832
|
-
const selectedColumnOptions =
|
|
65855
|
+
const selectedColumnOptions = useMemo33(() => {
|
|
65833
65856
|
return displayColumns.map((column) => {
|
|
65834
65857
|
const value = column.alias || column.field;
|
|
65835
65858
|
return value ? { label: value, value } : null;
|
|
65836
65859
|
}).filter((option) => option !== null);
|
|
65837
65860
|
}, [displayColumns]);
|
|
65838
|
-
const scopedSchemaColumns =
|
|
65861
|
+
const scopedSchemaColumns = useMemo33(() => {
|
|
65839
65862
|
const tableNames = fieldOptionsAllowedTableNames ? Array.from(fieldOptionsAllowedTableNames) : joinCompatibleSchemaTableNames;
|
|
65840
65863
|
const schemaTables = schemaForReportBuilderState;
|
|
65841
65864
|
const tablesToUse = tableNames.length ? schemaTables.filter((table2) => tableNames.includes(table2.name ?? "")) : schemaTables;
|
|
@@ -65856,7 +65879,7 @@ function useReport(reportIdArg, options = {}) {
|
|
|
65856
65879
|
joinCompatibleSchemaTableNames,
|
|
65857
65880
|
schemaForReportBuilderState
|
|
65858
65881
|
]);
|
|
65859
|
-
const pivotUniqueValuesByColumn =
|
|
65882
|
+
const pivotUniqueValuesByColumn = useMemo33(() => {
|
|
65860
65883
|
const explicitUniqueValues = sourceReport?.uniqueStringsByColumn ?? sourceReport?.columnUniqueValues ?? sourceReport?.uniqueValues;
|
|
65861
65884
|
if (explicitUniqueValues && typeof explicitUniqueValues === "object" && !Array.isArray(explicitUniqueValues)) {
|
|
65862
65885
|
return explicitUniqueValues;
|
|
@@ -65882,7 +65905,7 @@ function useReport(reportIdArg, options = {}) {
|
|
|
65882
65905
|
}
|
|
65883
65906
|
return result;
|
|
65884
65907
|
}, [sourceReport]);
|
|
65885
|
-
const possiblePivotFields =
|
|
65908
|
+
const possiblePivotFields = useMemo33(() => {
|
|
65886
65909
|
const options2 = getPossiblePivotFieldOptions(
|
|
65887
65910
|
scopedSchemaColumns,
|
|
65888
65911
|
pivotUniqueValuesByColumn
|
|
@@ -65893,7 +65916,7 @@ function useReport(reportIdArg, options = {}) {
|
|
|
65893
65916
|
columnFields: options2.columnFields.filter((field) => !isIdColumn(field))
|
|
65894
65917
|
};
|
|
65895
65918
|
}, [scopedSchemaColumns, pivotUniqueValuesByColumn]);
|
|
65896
|
-
const groupRowsByOptions =
|
|
65919
|
+
const groupRowsByOptions = useMemo33(() => {
|
|
65897
65920
|
const allowedFields = new Set(possiblePivotFields.rowFields);
|
|
65898
65921
|
const seenValues = /* @__PURE__ */ new Set();
|
|
65899
65922
|
const options2 = [];
|
|
@@ -65920,7 +65943,7 @@ function useReport(reportIdArg, options = {}) {
|
|
|
65920
65943
|
}
|
|
65921
65944
|
return options2;
|
|
65922
65945
|
}, [groupRowsBy, possiblePivotFields.rowFields, scopedSchemaColumns]);
|
|
65923
|
-
const groupColumnsByOptions =
|
|
65946
|
+
const groupColumnsByOptions = useMemo33(() => {
|
|
65924
65947
|
const allowedFields = new Set(possiblePivotFields.columnFields);
|
|
65925
65948
|
const seenValues = /* @__PURE__ */ new Set();
|
|
65926
65949
|
const options2 = [];
|
|
@@ -65947,19 +65970,19 @@ function useReport(reportIdArg, options = {}) {
|
|
|
65947
65970
|
}
|
|
65948
65971
|
return options2;
|
|
65949
65972
|
}, [groupColumnsBy, possiblePivotFields.columnFields, scopedSchemaColumns]);
|
|
65950
|
-
const cleanedSort =
|
|
65973
|
+
const cleanedSort = useMemo33(() => {
|
|
65951
65974
|
const activeSort = resolvedGroupRowsBy ? pivotSort : regularSort;
|
|
65952
65975
|
if (!activeSort?.sortField || !activeSort?.sortDirection) {
|
|
65953
65976
|
return "";
|
|
65954
65977
|
}
|
|
65955
65978
|
return toFlatSortValue(activeSort.sortField, activeSort.sortDirection);
|
|
65956
65979
|
}, [pivotSort, regularSort, resolvedGroupRowsBy]);
|
|
65957
|
-
const aggregationSortLabelFallbackTable =
|
|
65980
|
+
const aggregationSortLabelFallbackTable = useMemo33(() => {
|
|
65958
65981
|
const reportBuilderTableName = effectiveReportBuilderTables.map((table2) => String(table2.name ?? "").trim()).find((tableName) => Boolean(tableName));
|
|
65959
65982
|
if (reportBuilderTableName) return reportBuilderTableName;
|
|
65960
65983
|
return (sourceReport?.referencedTables ?? []).map((tableName) => String(tableName ?? "").trim()).find((tableName) => Boolean(tableName));
|
|
65961
65984
|
}, [effectiveReportBuilderTables, sourceReport?.referencedTables]);
|
|
65962
|
-
const sortOptions =
|
|
65985
|
+
const sortOptions = useMemo33(() => {
|
|
65963
65986
|
if (resolvedGroupRowsBy) {
|
|
65964
65987
|
const aggregationSortFields = getPivotAggregationSortFields(
|
|
65965
65988
|
aggregationState,
|
|
@@ -66018,7 +66041,7 @@ function useReport(reportIdArg, options = {}) {
|
|
|
66018
66041
|
resolvedGroupRowsBy,
|
|
66019
66042
|
selectedColumnOptions
|
|
66020
66043
|
]);
|
|
66021
|
-
const { aggregationValues, aggregationOptions } =
|
|
66044
|
+
const { aggregationValues, aggregationOptions } = useMemo33(() => {
|
|
66022
66045
|
const baseOptions = aggregationBaseOptions.map((option) => ({
|
|
66023
66046
|
value: option.value,
|
|
66024
66047
|
label: option.label
|
|
@@ -66062,26 +66085,30 @@ function useReport(reportIdArg, options = {}) {
|
|
|
66062
66085
|
aggregationTablesByIndex,
|
|
66063
66086
|
isBoolAggregationField
|
|
66064
66087
|
]);
|
|
66065
|
-
const nextPivot =
|
|
66088
|
+
const nextPivot = useMemo33(() => {
|
|
66066
66089
|
if (!sourceReport) return null;
|
|
66067
66090
|
return pivotState ? {
|
|
66068
66091
|
...pivotState,
|
|
66069
66092
|
sort: Boolean(pivotSort?.sortField),
|
|
66070
66093
|
sortField: pivotSort?.sortField,
|
|
66094
|
+
sortFieldTable: resolvePivotSortFieldTable(
|
|
66095
|
+
pivotState,
|
|
66096
|
+
pivotSort?.sortField
|
|
66097
|
+
),
|
|
66071
66098
|
sortDirection: pivotSort?.sortDirection,
|
|
66072
66099
|
sortFieldType: resolvedSortFieldType,
|
|
66073
66100
|
rowLimit: limit?.value
|
|
66074
66101
|
} : null;
|
|
66075
66102
|
}, [sourceReport, pivotState, pivotSort, limit, resolvedSortFieldType]);
|
|
66076
|
-
const nextPivotHash =
|
|
66103
|
+
const nextPivotHash = useMemo33(
|
|
66077
66104
|
() => stableSerializeForQueryKey(nextPivot),
|
|
66078
66105
|
[nextPivot]
|
|
66079
66106
|
);
|
|
66080
|
-
const filterStackHash =
|
|
66107
|
+
const filterStackHash = useMemo33(
|
|
66081
66108
|
() => stableSerializeForQueryKey(filterStack),
|
|
66082
66109
|
[filterStack]
|
|
66083
66110
|
);
|
|
66084
|
-
const shouldSkipPivotRefreshForUnchangedPivot =
|
|
66111
|
+
const shouldSkipPivotRefreshForUnchangedPivot = useMemo33(() => {
|
|
66085
66112
|
if (!sourceReport || !nextPivot) return false;
|
|
66086
66113
|
if (!Array.isArray(sourceReport.rows) || sourceReport.rows.length === 0) {
|
|
66087
66114
|
return false;
|
|
@@ -66119,7 +66146,7 @@ function useReport(reportIdArg, options = {}) {
|
|
|
66119
66146
|
shouldSkipPivotRefreshForUnchangedPivot,
|
|
66120
66147
|
sourceReport
|
|
66121
66148
|
]);
|
|
66122
|
-
const shouldSkipRedundantPivotTableDataReportBuilderQuery =
|
|
66149
|
+
const shouldSkipRedundantPivotTableDataReportBuilderQuery = useMemo33(() => {
|
|
66123
66150
|
if (!sourceReport || !nextPivot) {
|
|
66124
66151
|
return false;
|
|
66125
66152
|
}
|
|
@@ -66221,7 +66248,7 @@ function useReport(reportIdArg, options = {}) {
|
|
|
66221
66248
|
});
|
|
66222
66249
|
const tablePageReportBuilderState = pivotTableDataReportBuilderState ?? effectiveReportBuilderState;
|
|
66223
66250
|
const tablePageReportBuilderStateHash = pivotTableDataReportBuilderState ? pivotTableDataReportBuilderStateHash : effectiveReportBuilderStateHash;
|
|
66224
|
-
const tablePaginationSort =
|
|
66251
|
+
const tablePaginationSort = useMemo33(() => {
|
|
66225
66252
|
const sortEntry = tablePageReportBuilderState?.sort?.[0];
|
|
66226
66253
|
const field = String(sortEntry?.field ?? "").trim();
|
|
66227
66254
|
if (!field || !/^[A-Za-z_][A-Za-z0-9_]*$/.test(field)) {
|
|
@@ -66284,7 +66311,7 @@ function useReport(reportIdArg, options = {}) {
|
|
|
66284
66311
|
const tablePageRows = tablePageQueryEnabled && !tablePageQuery.data?.error && Array.isArray(tablePageQuery.data?.report?.rows) ? tablePageQuery.data.report.rows : void 0;
|
|
66285
66312
|
const tablePageRowCount = tablePageQueryEnabled && typeof tablePageQuery.data?.report?.rowCount === "number" && tablePageQuery.data.report.rowCount > 0 ? tablePageQuery.data.report.rowCount : void 0;
|
|
66286
66313
|
const tablePageFetching = tablePageQueryEnabled && tablePageQuery.isFetching;
|
|
66287
|
-
const paginationTotalRowCount =
|
|
66314
|
+
const paginationTotalRowCount = useMemo33(() => {
|
|
66288
66315
|
if (tablePageRowCount !== void 0) {
|
|
66289
66316
|
return Math.max(tablePageRowCount, baseWindowRowsLength);
|
|
66290
66317
|
}
|
|
@@ -66400,7 +66427,7 @@ function useReport(reportIdArg, options = {}) {
|
|
|
66400
66427
|
pivotRefreshQueryEnabled,
|
|
66401
66428
|
effectiveReportId
|
|
66402
66429
|
]);
|
|
66403
|
-
const chartData =
|
|
66430
|
+
const chartData = useMemo33(() => {
|
|
66404
66431
|
if (!sourceReport) return void 0;
|
|
66405
66432
|
const rowsForChart = Array.isArray(sourceReport.rows) ? sourceReport.rows : [];
|
|
66406
66433
|
const chartPivotForDisplay = nextPivot ?? (!chartPivotHydratedFromSourceRef.current ? sourceReport.pivot ?? null : null);
|
|
@@ -66429,18 +66456,18 @@ function useReport(reportIdArg, options = {}) {
|
|
|
66429
66456
|
useInMemoryEngines,
|
|
66430
66457
|
chartPivotHydrationEpoch
|
|
66431
66458
|
]);
|
|
66432
|
-
const baseChart =
|
|
66459
|
+
const baseChart = useMemo33(
|
|
66433
66460
|
() => normalizePivotChartForDisplay(chartData),
|
|
66434
66461
|
[chartData]
|
|
66435
66462
|
);
|
|
66436
|
-
const chartAxesBaseChart =
|
|
66463
|
+
const chartAxesBaseChart = useMemo33(() => {
|
|
66437
66464
|
if (!chartData) return void 0;
|
|
66438
66465
|
if (chartData.pivot?.columnField) {
|
|
66439
66466
|
return normalizePivotChartForAxisControls(chartData, effectiveReportId);
|
|
66440
66467
|
}
|
|
66441
66468
|
return baseChart;
|
|
66442
66469
|
}, [baseChart, chartData, effectiveReportId]);
|
|
66443
|
-
const chartAxisOptions =
|
|
66470
|
+
const chartAxisOptions = useMemo33(() => {
|
|
66444
66471
|
if (!chartAxesBaseChart) return [];
|
|
66445
66472
|
const optionsByField = /* @__PURE__ */ new Map();
|
|
66446
66473
|
const registerOption = (fieldRaw, labelRaw, formatRaw) => {
|
|
@@ -66479,14 +66506,14 @@ function useReport(reportIdArg, options = {}) {
|
|
|
66479
66506
|
);
|
|
66480
66507
|
return Array.from(optionsByField.values());
|
|
66481
66508
|
}, [chartAxesBaseChart]);
|
|
66482
|
-
const chartAxisOptionByField =
|
|
66509
|
+
const chartAxisOptionByField = useMemo33(() => {
|
|
66483
66510
|
const optionsByField = /* @__PURE__ */ new Map();
|
|
66484
66511
|
for (const option of chartAxisOptions) {
|
|
66485
66512
|
optionsByField.set(option.value, option);
|
|
66486
66513
|
}
|
|
66487
66514
|
return optionsByField;
|
|
66488
66515
|
}, [chartAxisOptions]);
|
|
66489
|
-
const xAxisOptions =
|
|
66516
|
+
const xAxisOptions = useMemo33(() => {
|
|
66490
66517
|
if (!chartAxesBaseChart) return chartAxisOptions;
|
|
66491
66518
|
const pivot = chartAxesBaseChart.pivot;
|
|
66492
66519
|
const pivotRowField = String(pivot?.rowField ?? "").trim();
|
|
@@ -66509,7 +66536,7 @@ function useReport(reportIdArg, options = {}) {
|
|
|
66509
66536
|
}
|
|
66510
66537
|
return chartAxisOptions;
|
|
66511
66538
|
}, [chartAxesBaseChart, chartAxisOptions, chartAxisOptionByField]);
|
|
66512
|
-
const yAxisOptions =
|
|
66539
|
+
const yAxisOptions = useMemo33(() => {
|
|
66513
66540
|
if (!chartAxesBaseChart) return [];
|
|
66514
66541
|
const keepOption = (option) => {
|
|
66515
66542
|
const col = findSchemaColumnForChartAxisField(
|
|
@@ -66545,21 +66572,21 @@ function useReport(reportIdArg, options = {}) {
|
|
|
66545
66572
|
chartAxisOptions,
|
|
66546
66573
|
schemaColumnOptions
|
|
66547
66574
|
]);
|
|
66548
|
-
const normalizedChartXAxisOptions =
|
|
66575
|
+
const normalizedChartXAxisOptions = useMemo33(() => {
|
|
66549
66576
|
return xAxisOptions.map((option) => ({
|
|
66550
66577
|
value: String(option.value ?? "").trim(),
|
|
66551
66578
|
label: String(option.label ?? option.value ?? "").trim(),
|
|
66552
66579
|
format: String(option.format ?? "").trim()
|
|
66553
66580
|
}));
|
|
66554
66581
|
}, [xAxisOptions]);
|
|
66555
|
-
const normalizedChartYAxisOptions =
|
|
66582
|
+
const normalizedChartYAxisOptions = useMemo33(() => {
|
|
66556
66583
|
return yAxisOptions.map((option) => ({
|
|
66557
66584
|
value: String(option.value ?? "").trim(),
|
|
66558
66585
|
label: String(option.label ?? option.value ?? "").trim(),
|
|
66559
66586
|
format: String(option.format ?? "").trim()
|
|
66560
66587
|
}));
|
|
66561
66588
|
}, [yAxisOptions]);
|
|
66562
|
-
const resolvedYAxisFields =
|
|
66589
|
+
const resolvedYAxisFields = useMemo33(() => {
|
|
66563
66590
|
if (!chartAxesBaseChart) return [];
|
|
66564
66591
|
const normalizeYAxisField = (yAxisFieldRaw) => {
|
|
66565
66592
|
const field = String(yAxisFieldRaw?.field ?? "").trim();
|
|
@@ -66603,7 +66630,7 @@ function useReport(reportIdArg, options = {}) {
|
|
|
66603
66630
|
chartAxisOptionByField,
|
|
66604
66631
|
chartAxisOptions
|
|
66605
66632
|
]);
|
|
66606
|
-
const resolvedXAxisField =
|
|
66633
|
+
const resolvedXAxisField = useMemo33(() => {
|
|
66607
66634
|
if (!chartAxesBaseChart) return "";
|
|
66608
66635
|
const chartType2 = String(chartAxesBaseChart.chartType ?? "").toLowerCase();
|
|
66609
66636
|
const pivotRowField = String(
|
|
@@ -66635,7 +66662,7 @@ function useReport(reportIdArg, options = {}) {
|
|
|
66635
66662
|
chartAxisOptions,
|
|
66636
66663
|
resolvedYAxisFields
|
|
66637
66664
|
]);
|
|
66638
|
-
const resolvedXAxisFormat =
|
|
66665
|
+
const resolvedXAxisFormat = useMemo33(() => {
|
|
66639
66666
|
if (!chartAxesBaseChart) {
|
|
66640
66667
|
return "string";
|
|
66641
66668
|
}
|
|
@@ -66661,7 +66688,7 @@ function useReport(reportIdArg, options = {}) {
|
|
|
66661
66688
|
resolvedXAxisField,
|
|
66662
66689
|
resolvedYAxisFields
|
|
66663
66690
|
]);
|
|
66664
|
-
const resolvedXAxisLabel =
|
|
66691
|
+
const resolvedXAxisLabel = useMemo33(() => {
|
|
66665
66692
|
const defaultXLabel = String(
|
|
66666
66693
|
chartAxesBaseChart?.xAxisLabel ?? chartAxisOptionByField.get(resolvedXAxisField)?.label ?? ""
|
|
66667
66694
|
).trim();
|
|
@@ -66675,13 +66702,13 @@ function useReport(reportIdArg, options = {}) {
|
|
|
66675
66702
|
chartAxisOptionByField,
|
|
66676
66703
|
resolvedXAxisField
|
|
66677
66704
|
]);
|
|
66678
|
-
const chartVisibility =
|
|
66705
|
+
const chartVisibility = useMemo33(
|
|
66679
66706
|
() => ({
|
|
66680
66707
|
showLegend: chartVisibilityOverrides.showLegend ?? Boolean(baseChart?.showLegend ?? false)
|
|
66681
66708
|
}),
|
|
66682
66709
|
[baseChart?.showLegend, chartVisibilityOverrides]
|
|
66683
66710
|
);
|
|
66684
|
-
const xAxis =
|
|
66711
|
+
const xAxis = useMemo33(() => {
|
|
66685
66712
|
const pivotBucketXAxis = isPivotTableDateBucketRowAxis(
|
|
66686
66713
|
chartAxesBaseChart,
|
|
66687
66714
|
resolvedXAxisField
|
|
@@ -66698,7 +66725,7 @@ function useReport(reportIdArg, options = {}) {
|
|
|
66698
66725
|
resolvedXAxisField,
|
|
66699
66726
|
resolvedXAxisFormat
|
|
66700
66727
|
]);
|
|
66701
|
-
const yAxis =
|
|
66728
|
+
const yAxis = useMemo33(
|
|
66702
66729
|
() => ({
|
|
66703
66730
|
fields: resolvedYAxisFields.map((yAxisField) => ({
|
|
66704
66731
|
field: yAxisField.field,
|
|
@@ -66710,14 +66737,14 @@ function useReport(reportIdArg, options = {}) {
|
|
|
66710
66737
|
}),
|
|
66711
66738
|
[resolvedYAxisFields]
|
|
66712
66739
|
);
|
|
66713
|
-
const resolvedYAxisFieldsForDisplay =
|
|
66740
|
+
const resolvedYAxisFieldsForDisplay = useMemo33(() => {
|
|
66714
66741
|
if (!baseChart) return resolvedYAxisFields;
|
|
66715
66742
|
return mapResolvedPivotYAxisFieldsForDisplay({
|
|
66716
66743
|
chart: baseChart,
|
|
66717
66744
|
resolvedYAxisFields
|
|
66718
66745
|
});
|
|
66719
66746
|
}, [baseChart, resolvedYAxisFields]);
|
|
66720
|
-
const chart =
|
|
66747
|
+
const chart = useMemo33(() => {
|
|
66721
66748
|
if (!baseChart) return void 0;
|
|
66722
66749
|
let columns2 = mergeChartColumnFormatsFromYAxisFields(
|
|
66723
66750
|
baseChart.columns,
|
|
@@ -66777,7 +66804,7 @@ function useReport(reportIdArg, options = {}) {
|
|
|
66777
66804
|
resolvedYAxisFieldsForDisplay
|
|
66778
66805
|
]);
|
|
66779
66806
|
const pivotDateFilterRangeCacheRef = useRef24({ key: "", min: null, max: null });
|
|
66780
|
-
const filterOptions =
|
|
66807
|
+
const filterOptions = useMemo33(() => {
|
|
66781
66808
|
const out = [];
|
|
66782
66809
|
for (const [field, values] of filterValueOptionsByFieldName) {
|
|
66783
66810
|
out.push({
|
|
@@ -66839,7 +66866,7 @@ function useReport(reportIdArg, options = {}) {
|
|
|
66839
66866
|
effectiveReportId,
|
|
66840
66867
|
filterValueOptionsByFieldName
|
|
66841
66868
|
]);
|
|
66842
|
-
const chartForUi =
|
|
66869
|
+
const chartForUi = useMemo33(() => {
|
|
66843
66870
|
if (!chart?.pivot) return chart;
|
|
66844
66871
|
const pivot = chart.pivot;
|
|
66845
66872
|
const qualify = (field, table2) => table2 ? `${table2}.${field}` : field;
|
|
@@ -66915,11 +66942,11 @@ function useReport(reportIdArg, options = {}) {
|
|
|
66915
66942
|
};
|
|
66916
66943
|
}, [chart, filterOptions, filtersForQueryBuilder]);
|
|
66917
66944
|
const isPivotTableChart = String(chartType ?? "").toLowerCase() === "table" && Boolean(pivotState);
|
|
66918
|
-
const pivotTableColumnControls =
|
|
66945
|
+
const pivotTableColumnControls = useMemo33(
|
|
66919
66946
|
() => isPivotTableChart ? buildPivotColumnPivotTableFormattingColumns(pivotState, chart) : null,
|
|
66920
66947
|
[chart, isPivotTableChart, pivotState]
|
|
66921
66948
|
);
|
|
66922
|
-
const chartAxes =
|
|
66949
|
+
const chartAxes = useMemo33(() => {
|
|
66923
66950
|
const yAxisItems = resolvedYAxisFields.map(
|
|
66924
66951
|
(yAxisField, index) => ({
|
|
66925
66952
|
id: String(index),
|
|
@@ -67069,7 +67096,7 @@ function useReport(reportIdArg, options = {}) {
|
|
|
67069
67096
|
yAxisOptions
|
|
67070
67097
|
]);
|
|
67071
67098
|
const tableFormatCacheRef = useRef24(/* @__PURE__ */ new Map());
|
|
67072
|
-
const tableFormatMerge =
|
|
67099
|
+
const tableFormatMerge = useMemo33(
|
|
67073
67100
|
() => mergeDisplayAndSourceForTableFormats({
|
|
67074
67101
|
effectiveReportBuilderTableNames,
|
|
67075
67102
|
scopedSchemaColumns,
|
|
@@ -67085,7 +67112,7 @@ function useReport(reportIdArg, options = {}) {
|
|
|
67085
67112
|
tableColumnsEditedSignature
|
|
67086
67113
|
]
|
|
67087
67114
|
);
|
|
67088
|
-
const table =
|
|
67115
|
+
const table = useMemo33(() => {
|
|
67089
67116
|
const baseWindowRows = Array.isArray(sourceReport?.rows) ? sourceReport.rows : [];
|
|
67090
67117
|
const rawRows = !paginationActive ? baseWindowRows : tablePageRows ?? baseWindowRows.slice(paginationRangeStart, paginationRangeEnd);
|
|
67091
67118
|
const { columns: mergedFromReport } = mergeDisplayAndSourceForTableFormats({
|
|
@@ -67216,7 +67243,7 @@ function useReport(reportIdArg, options = {}) {
|
|
|
67216
67243
|
const {
|
|
67217
67244
|
columnsOptions: tableFormattingColumnOptions,
|
|
67218
67245
|
hasTableDrivenColumnOrder
|
|
67219
|
-
} =
|
|
67246
|
+
} = useMemo33(() => {
|
|
67220
67247
|
if (pivotTableColumnControls) {
|
|
67221
67248
|
return getAllColumnOptions({
|
|
67222
67249
|
schemaColumnOptions,
|
|
@@ -67246,24 +67273,24 @@ function useReport(reportIdArg, options = {}) {
|
|
|
67246
67273
|
schemaColumnOptions,
|
|
67247
67274
|
table.columns
|
|
67248
67275
|
]);
|
|
67249
|
-
const axisSelectFormatLabels =
|
|
67276
|
+
const axisSelectFormatLabels = useMemo33(
|
|
67250
67277
|
() => AXIS_FORMAT_OPTIONS.map((option) => option.label),
|
|
67251
67278
|
[]
|
|
67252
67279
|
);
|
|
67253
|
-
const xAxisFormatOptionLabels =
|
|
67280
|
+
const xAxisFormatOptionLabels = useMemo33(() => {
|
|
67254
67281
|
if (isPivotTableDateBucketRowAxis(chartAxesBaseChart, resolvedXAxisField)) {
|
|
67255
67282
|
return ["date", ...axisSelectFormatLabels];
|
|
67256
67283
|
}
|
|
67257
67284
|
return axisSelectFormatLabels;
|
|
67258
67285
|
}, [chartAxesBaseChart, resolvedXAxisField, axisSelectFormatLabels]);
|
|
67259
|
-
const tableDerivedColumnOrder =
|
|
67286
|
+
const tableDerivedColumnOrder = useMemo33(() => {
|
|
67260
67287
|
return tableFormattingColumnOptions.map((option) => option.value);
|
|
67261
67288
|
}, [tableFormattingColumnOptions]);
|
|
67262
|
-
const tableDerivedColumnOrderSignature =
|
|
67289
|
+
const tableDerivedColumnOrderSignature = useMemo33(
|
|
67263
67290
|
() => tableDerivedColumnOrder.join("|"),
|
|
67264
67291
|
[tableDerivedColumnOrder]
|
|
67265
67292
|
);
|
|
67266
|
-
const activeTableColumnIds =
|
|
67293
|
+
const activeTableColumnIds = useMemo33(() => {
|
|
67267
67294
|
if (pivotTableColumnControls) {
|
|
67268
67295
|
return pivotTableColumnControls.selectedColumnIds;
|
|
67269
67296
|
}
|
|
@@ -67297,7 +67324,7 @@ function useReport(reportIdArg, options = {}) {
|
|
|
67297
67324
|
tableDerivedColumnOrder,
|
|
67298
67325
|
tableFormattingColumnOptions
|
|
67299
67326
|
]);
|
|
67300
|
-
const columnOptionById =
|
|
67327
|
+
const columnOptionById = useMemo33(() => {
|
|
67301
67328
|
const map = /* @__PURE__ */ new Map();
|
|
67302
67329
|
for (const option of tableColumnPickerPoolOptions) {
|
|
67303
67330
|
map.set(option.value, option);
|
|
@@ -67309,7 +67336,7 @@ function useReport(reportIdArg, options = {}) {
|
|
|
67309
67336
|
}
|
|
67310
67337
|
return map;
|
|
67311
67338
|
}, [tableColumnPickerPoolOptions, tableFormattingColumnOptions]);
|
|
67312
|
-
const displayColumnById =
|
|
67339
|
+
const displayColumnById = useMemo33(() => {
|
|
67313
67340
|
const map = /* @__PURE__ */ new Map();
|
|
67314
67341
|
for (const column of displayColumns) {
|
|
67315
67342
|
const field = String(column.field ?? "").trim();
|
|
@@ -67320,7 +67347,7 @@ function useReport(reportIdArg, options = {}) {
|
|
|
67320
67347
|
}
|
|
67321
67348
|
return map;
|
|
67322
67349
|
}, [displayColumns]);
|
|
67323
|
-
const tableColumnSettingsById =
|
|
67350
|
+
const tableColumnSettingsById = useMemo33(() => {
|
|
67324
67351
|
const map = /* @__PURE__ */ new Map();
|
|
67325
67352
|
const effectiveById = tableFormatMerge.formatByColumnOptionId;
|
|
67326
67353
|
const chartColById = /* @__PURE__ */ new Map();
|
|
@@ -67446,7 +67473,7 @@ function useReport(reportIdArg, options = {}) {
|
|
|
67446
67473
|
useLayoutEffect4(() => {
|
|
67447
67474
|
tableColumnSettingsCoalesceRef.current = new Map(tableColumnSettingsById);
|
|
67448
67475
|
}, [tableColumnSettingsById]);
|
|
67449
|
-
const tableColumnItems =
|
|
67476
|
+
const tableColumnItems = useMemo33(() => {
|
|
67450
67477
|
const pivotRowFieldForFormat = String(chart?.pivot?.rowField ?? "").trim();
|
|
67451
67478
|
const pivotRowFieldType = String(chart?.pivot?.rowFieldType ?? "").trim();
|
|
67452
67479
|
const items = activeTableColumnIds.map((columnId) => {
|
|
@@ -67482,10 +67509,10 @@ function useReport(reportIdArg, options = {}) {
|
|
|
67482
67509
|
isPivotTableChart,
|
|
67483
67510
|
tableColumnSettingsById
|
|
67484
67511
|
]);
|
|
67485
|
-
const tableColumnById =
|
|
67512
|
+
const tableColumnById = useMemo33(() => {
|
|
67486
67513
|
return new Map(tableColumnItems.map((item) => [item.id, item]));
|
|
67487
67514
|
}, [tableColumnItems]);
|
|
67488
|
-
const tableColumnValues =
|
|
67515
|
+
const tableColumnValues = useMemo33(() => {
|
|
67489
67516
|
const pivotRowFieldForFormat = String(chart?.pivot?.rowField ?? "").trim();
|
|
67490
67517
|
const pivotRowFieldType = String(chart?.pivot?.rowFieldType ?? "").trim();
|
|
67491
67518
|
return tableColumnItems.map((item) => {
|
|
@@ -68370,8 +68397,8 @@ function useReport(reportIdArg, options = {}) {
|
|
|
68370
68397
|
groupRowsByOptions,
|
|
68371
68398
|
groupColumnsBy,
|
|
68372
68399
|
groupColumnsByOptions,
|
|
68373
|
-
dateBucket,
|
|
68374
|
-
dateBucketOptions: hasDatePivotRow ? PIVOT_DATE_BUCKET_OPTIONS : [],
|
|
68400
|
+
dateBucket: dateBucketMode === "standard" ? pivotState?.dateBucket : dateBucket,
|
|
68401
|
+
dateBucketOptions: hasDatePivotRow ? dateBucketMode === "standard" ? STANDARD_PIVOT_DATE_BUCKET_OPTIONS : PIVOT_DATE_BUCKET_OPTIONS : [],
|
|
68375
68402
|
/** Encoded selection per aggregation slot (`'sum:transactions::amount'`, `'count:transactions'`, `''` = placeholder). Update via `setReport({ aggregations: nextStringArray })`. */
|
|
68376
68403
|
aggregations: aggregationValues,
|
|
68377
68404
|
/** Flat aggregation pick list shared by all slots; always contains every non-empty `aggregations` entry. */
|
|
@@ -68455,7 +68482,7 @@ function ChatChartCard({
|
|
|
68455
68482
|
loading,
|
|
68456
68483
|
setReport
|
|
68457
68484
|
} = useReport(reportId);
|
|
68458
|
-
const selectedColumnValues =
|
|
68485
|
+
const selectedColumnValues = useMemo34(
|
|
68459
68486
|
() => columns.map((column) => column.value),
|
|
68460
68487
|
[columns]
|
|
68461
68488
|
);
|
|
@@ -69219,7 +69246,7 @@ function Chat({
|
|
|
69219
69246
|
}
|
|
69220
69247
|
|
|
69221
69248
|
// src/hooks/useReportFilterDraft.ts
|
|
69222
|
-
import { useCallback as useCallback6, useEffect as useEffect33, useMemo as
|
|
69249
|
+
import { useCallback as useCallback6, useEffect as useEffect33, useMemo as useMemo35, useRef as useRef26, useState as useState43 } from "react";
|
|
69223
69250
|
var normalizeOperatorKey = (operator) => String(operator ?? "").trim().toLowerCase().replace(/[_\s]+/g, "");
|
|
69224
69251
|
var defaultFilterRuleValueForOperator = (operator) => {
|
|
69225
69252
|
const key = normalizeOperatorKey(operator);
|
|
@@ -69272,12 +69299,12 @@ function useReportFilterDraft(args) {
|
|
|
69272
69299
|
lastNonEmptyFieldsRef.current = queryBuilderProps.fields;
|
|
69273
69300
|
}
|
|
69274
69301
|
const effectiveFields = queryBuilderProps.fields.length > 0 ? queryBuilderProps.fields : lastNonEmptyFieldsRef.current;
|
|
69275
|
-
const committedSignature =
|
|
69302
|
+
const committedSignature = useMemo35(
|
|
69276
69303
|
() => committedFiltersSignature(committed),
|
|
69277
69304
|
// eslint-disable-next-line react-hooks/exhaustive-deps -- `committed` normalizes null to a stable constant
|
|
69278
69305
|
[committedFilters]
|
|
69279
69306
|
);
|
|
69280
|
-
const fieldsSignature =
|
|
69307
|
+
const fieldsSignature = useMemo35(
|
|
69281
69308
|
() => fieldCatalogSignature(effectiveFields),
|
|
69282
69309
|
[effectiveFields]
|
|
69283
69310
|
);
|
|
@@ -69320,7 +69347,7 @@ function useReportFilterDraft(args) {
|
|
|
69320
69347
|
(rule) => defaultFilterRuleValueForOperator(rule?.operator),
|
|
69321
69348
|
[]
|
|
69322
69349
|
);
|
|
69323
|
-
const filterDraftQueryBuilderProps =
|
|
69350
|
+
const filterDraftQueryBuilderProps = useMemo35(
|
|
69324
69351
|
() => ({
|
|
69325
69352
|
...queryBuilderProps,
|
|
69326
69353
|
fields: effectiveFields,
|
|
@@ -69643,7 +69670,7 @@ var useTenants = (dashboardName) => {
|
|
|
69643
69670
|
};
|
|
69644
69671
|
|
|
69645
69672
|
// src/hooks/useQuill.ts
|
|
69646
|
-
import { useContext as useContext40, useEffect as useEffect35, useMemo as
|
|
69673
|
+
import { useContext as useContext40, useEffect as useEffect35, useMemo as useMemo36, useState as useState45 } from "react";
|
|
69647
69674
|
init_paginationProcessing();
|
|
69648
69675
|
init_tableProcessing();
|
|
69649
69676
|
init_dataProcessing();
|
|
@@ -69651,14 +69678,14 @@ var useQuill = (reportId, pagination) => {
|
|
|
69651
69678
|
const { reports, reportsDispatch, fetchIndividualReport } = useContext40(ReportsContext);
|
|
69652
69679
|
const { allReportsById } = useAllReports();
|
|
69653
69680
|
const { getToken } = useContext40(FetchContext);
|
|
69654
|
-
const dashboardReport =
|
|
69681
|
+
const dashboardReport = useMemo36(() => {
|
|
69655
69682
|
return allReportsById[reportId ?? ""];
|
|
69656
69683
|
}, [allReportsById[reportId ?? ""]]);
|
|
69657
69684
|
const { dashboardFilters, dashboardCustomFilters } = useContext40(
|
|
69658
69685
|
DashboardFiltersContext
|
|
69659
69686
|
);
|
|
69660
69687
|
const { reportFilters, customReportFilters, reportFiltersDispatch } = useContext40(ReportFiltersContext);
|
|
69661
|
-
const specificReportFilters =
|
|
69688
|
+
const specificReportFilters = useMemo36(() => {
|
|
69662
69689
|
if (!reportId) return null;
|
|
69663
69690
|
return Object.values(reportFilters[reportId] ?? []).map((f) => f.filter);
|
|
69664
69691
|
}, [reportFilters, reportId]);
|
|
@@ -69669,7 +69696,7 @@ var useQuill = (reportId, pagination) => {
|
|
|
69669
69696
|
const [loading, setLoading] = useState45(true);
|
|
69670
69697
|
const [error, setError] = useState45(void 0);
|
|
69671
69698
|
const [previousPage, setPreviousPage] = useState45(0);
|
|
69672
|
-
const processedReport =
|
|
69699
|
+
const processedReport = useMemo36(() => {
|
|
69673
69700
|
return reportId && allReportsById[reportId] ? convertInternalReportToReport(
|
|
69674
69701
|
mergeComparisonRange(allReportsById[reportId]),
|
|
69675
69702
|
specificReportFilters ?? [],
|
|
@@ -69866,10 +69893,10 @@ var useQuill = (reportId, pagination) => {
|
|
|
69866
69893
|
|
|
69867
69894
|
// src/hooks/useFormat.ts
|
|
69868
69895
|
init_valueFormatter();
|
|
69869
|
-
import { useMemo as
|
|
69896
|
+
import { useMemo as useMemo37 } from "react";
|
|
69870
69897
|
var useMemoizedRows = (reportId) => {
|
|
69871
69898
|
const { data } = useQuill(reportId);
|
|
69872
|
-
const formattedRows =
|
|
69899
|
+
const formattedRows = useMemo37(() => {
|
|
69873
69900
|
if (!data || !data.rows || !data.columns)
|
|
69874
69901
|
return { rows: [], loading: true };
|
|
69875
69902
|
return {
|