@undp/data-viz 2.0.7 → 2.0.9
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/ChoroplethMap.cjs +1 -1
- package/dist/ChoroplethMap.js +1 -1
- package/dist/DataCards.cjs +1 -1
- package/dist/DataCards.js +1 -1
- package/dist/GriddedGraphs.cjs +1 -1
- package/dist/GriddedGraphs.cjs.map +1 -1
- package/dist/GriddedGraphs.d.ts +1 -0
- package/dist/GriddedGraphs.js +152 -140
- package/dist/GriddedGraphs.js.map +1 -1
- package/dist/GriddedGraphsFromConfig.d.ts +1 -0
- package/dist/HybridMap.cjs +1 -1
- package/dist/HybridMap.js +1 -1
- package/dist/MultiGraphDashboard.cjs +1 -1
- package/dist/MultiGraphDashboard.cjs.map +1 -1
- package/dist/MultiGraphDashboard.d.ts +1 -0
- package/dist/MultiGraphDashboard.js +88 -83
- package/dist/MultiGraphDashboard.js.map +1 -1
- package/dist/MultiGraphDashboardFromConfig.d.ts +1 -0
- package/dist/PerformanceIntensiveMultiGraphDashboard.cjs +1 -1
- package/dist/PerformanceIntensiveMultiGraphDashboard.cjs.map +1 -1
- package/dist/PerformanceIntensiveMultiGraphDashboard.d.ts +1 -0
- package/dist/PerformanceIntensiveMultiGraphDashboard.js +74 -70
- package/dist/PerformanceIntensiveMultiGraphDashboard.js.map +1 -1
- package/dist/PerformanceIntensiveMultiGraphDashboardFromConfig.d.ts +1 -0
- package/dist/SingleGraphDashboard.cjs +1 -1
- package/dist/SingleGraphDashboard.cjs.map +1 -1
- package/dist/SingleGraphDashboard.d.ts +1 -0
- package/dist/SingleGraphDashboard.js +122 -119
- package/dist/SingleGraphDashboard.js.map +1 -1
- package/dist/SingleGraphDashboardFromConfig.d.ts +1 -0
- package/dist/SingleGraphDashboardThreeDGraphs.cjs +1 -1
- package/dist/SingleGraphDashboardThreeDGraphs.cjs.map +1 -1
- package/dist/SingleGraphDashboardThreeDGraphs.d.ts +1 -0
- package/dist/SingleGraphDashboardThreeDGraphs.js +126 -122
- package/dist/SingleGraphDashboardThreeDGraphs.js.map +1 -1
- package/dist/SingleGraphDashboardThreeDGraphsFromConfig.d.ts +1 -0
- package/dist/ThreeDGlobe.cjs +1 -1
- package/dist/ThreeDGlobe.js +1 -1
- package/dist/Types.d.ts +1 -0
- package/dist/{getGraphList-gf02xgT2.cjs → getGraphList-CA17dvFB.cjs} +2 -2
- package/dist/getGraphList-CA17dvFB.cjs.map +1 -0
- package/dist/{getGraphList-BpEWn1Tk.js → getGraphList-Dxwo9TDb.js} +7 -1
- package/dist/{getGraphList-BpEWn1Tk.js.map → getGraphList-Dxwo9TDb.js.map} +1 -1
- package/dist/getSchema.cjs +1 -1
- package/dist/getSchema.js +1 -1
- package/dist/getUniqValue-DsqSii6M.js +11 -0
- package/dist/getUniqValue-DsqSii6M.js.map +1 -0
- package/dist/getUniqValue-NX8DgwND.cjs +2 -0
- package/dist/getUniqValue-NX8DgwND.cjs.map +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +4 -4
- package/dist/transformData.cjs +1 -1
- package/dist/transformData.js +2 -2
- package/dist/{transformDataForAggregation-CjwEAUOR.js → transformDataForAggregation-DEU__LUl.js} +2 -2
- package/dist/{transformDataForAggregation-CjwEAUOR.js.map → transformDataForAggregation-DEU__LUl.js.map} +1 -1
- package/dist/{transformDataForAggregation-DAGK2BZy.cjs → transformDataForAggregation-XNg0OGYE.cjs} +2 -2
- package/dist/{transformDataForAggregation-DAGK2BZy.cjs.map → transformDataForAggregation-XNg0OGYE.cjs.map} +1 -1
- package/dist/{transformDataForGraphFromFile-D5TMQYYd.js → transformDataForGraphFromFile-CSG24iF6.js} +2 -2
- package/dist/{transformDataForGraphFromFile-D5TMQYYd.js.map → transformDataForGraphFromFile-CSG24iF6.js.map} +1 -1
- package/dist/{transformDataForGraphFromFile-B1zJSPRP.cjs → transformDataForGraphFromFile-CzepNVGZ.cjs} +2 -2
- package/dist/{transformDataForGraphFromFile-B1zJSPRP.cjs.map → transformDataForGraphFromFile-CzepNVGZ.cjs.map} +1 -1
- package/dist/utils.cjs +1 -1
- package/dist/utils.js +2 -2
- package/dist/validateSchema.cjs +1 -1
- package/dist/validateSchema.js +1 -1
- package/package.json +1 -1
- package/dist/getGraphList-gf02xgT2.cjs.map +0 -1
- package/dist/getUniqValue-BKHCm3zE.js +0 -11
- package/dist/getUniqValue-BKHCm3zE.js.map +0 -1
- package/dist/getUniqValue-RViz8tTw.cjs +0 -2
- package/dist/getUniqValue-RViz8tTw.cjs.map +0 -1
|
@@ -1,164 +1,168 @@
|
|
|
1
1
|
import { j as s } from "./index-CHPV5EwG-Curnpaqc.js";
|
|
2
|
-
import { useState as
|
|
2
|
+
import { useState as y, useEffectEvent as $, useEffect as S } from "react";
|
|
3
3
|
import { i as I } from "./index-BuwmuDFJ.js";
|
|
4
4
|
import { f as D } from "./index-EArKRVKg.js";
|
|
5
5
|
import { j as H, D as G } from "./DropdownSelect-BbdPQa2k.js";
|
|
6
|
-
import { b as q } from "./checkIfMultiple-Y9iKaV_u.js";
|
|
7
|
-
import { SingleGraphDashboard as
|
|
8
|
-
import { SingleGraphDashboardThreeDGraphs as
|
|
9
|
-
import { SingleGraphDashboardGeoHubMaps as
|
|
10
|
-
import { f as
|
|
11
|
-
import { g as
|
|
12
|
-
import { GraphHeader as
|
|
13
|
-
import { f as
|
|
14
|
-
import { t as
|
|
15
|
-
import { G as
|
|
16
|
-
const T = (f) => f.map((t) => t.columnWidth || 1).reduce((t,
|
|
17
|
-
function
|
|
6
|
+
import { b as q, y as J, h as B, $ as K, P as Q } from "./checkIfMultiple-Y9iKaV_u.js";
|
|
7
|
+
import { SingleGraphDashboard as X } from "./SingleGraphDashboard.js";
|
|
8
|
+
import { SingleGraphDashboardThreeDGraphs as Y } from "./SingleGraphDashboardThreeDGraphs.js";
|
|
9
|
+
import { SingleGraphDashboardGeoHubMaps as Z } from "./SingleGraphDashboardGeoHubMaps.js";
|
|
10
|
+
import { f as _, a as aa, b as ea, c as ta, t as ia } from "./fetchAndParseData-BpqkBPQL.js";
|
|
11
|
+
import { g as sa } from "./getUniqValue-DsqSii6M.js";
|
|
12
|
+
import { GraphHeader as ra } from "./GraphHeader.js";
|
|
13
|
+
import { f as M } from "./filterData-DsAiFzKY.js";
|
|
14
|
+
import { t as k } from "./transformDataForSelect-D8AuvYdf.js";
|
|
15
|
+
import { G as la } from "./GraphContainer-CRqzdKu2.js";
|
|
16
|
+
const T = (f) => f.map((t) => t.columnWidth || 1).reduce((t, p) => t + p, 0), na = ["barChart", "choroplethMap", "biVariateChoroplethMap", "circlePacking", "treeMap"];
|
|
17
|
+
function Ta(f) {
|
|
18
18
|
const {
|
|
19
19
|
dashboardID: w,
|
|
20
|
-
dashboardLayout:
|
|
20
|
+
dashboardLayout: l,
|
|
21
21
|
dataSettings: t,
|
|
22
|
-
filters:
|
|
23
|
-
debugMode:
|
|
22
|
+
filters: p,
|
|
23
|
+
debugMode: o,
|
|
24
24
|
theme: g = "light",
|
|
25
25
|
readableHeader: C,
|
|
26
|
-
dataFilters:
|
|
27
|
-
noOfFiltersPerRow:
|
|
26
|
+
dataFilters: V,
|
|
27
|
+
noOfFiltersPerRow: v = 4,
|
|
28
28
|
filterPosition: j,
|
|
29
|
-
uiMode:
|
|
30
|
-
graphStyles:
|
|
29
|
+
uiMode: u = "normal",
|
|
30
|
+
graphStyles: b,
|
|
31
31
|
graphClassNames: x
|
|
32
|
-
} = f, [
|
|
32
|
+
} = f, [m, F] = y(void 0), [d, R] = y(void 0), [n, O] = y([]), P = ["threeDGlobe"], W = ["geoHubCompareMap", "geoHubMap", "geoHubMapWithLayerSelection"], N = {
|
|
33
33
|
ignoreCase: !0,
|
|
34
34
|
ignoreAccents: !0,
|
|
35
35
|
trim: !0
|
|
36
|
-
}, A =
|
|
37
|
-
const e = (
|
|
36
|
+
}, A = $(() => {
|
|
37
|
+
const e = (p || []).map((i) => ({
|
|
38
38
|
filter: i.column,
|
|
39
39
|
label: i.label || `Filter by ${i.column}`,
|
|
40
40
|
singleSelect: i.singleSelect,
|
|
41
41
|
clearable: i.clearable,
|
|
42
|
-
defaultValue:
|
|
43
|
-
value:
|
|
44
|
-
availableValues:
|
|
42
|
+
defaultValue: k(i.defaultValue),
|
|
43
|
+
value: k(i.defaultValue),
|
|
44
|
+
availableValues: sa(d, i.column).filter((a) => !i.excludeValues?.includes(`${a}`)).map((a) => ({
|
|
45
45
|
value: a,
|
|
46
46
|
label: a
|
|
47
47
|
})),
|
|
48
48
|
allowSelectAll: i.allowSelectAll,
|
|
49
49
|
width: i.width
|
|
50
50
|
}));
|
|
51
|
-
|
|
52
|
-
}),
|
|
53
|
-
if (!
|
|
51
|
+
O(e);
|
|
52
|
+
}), L = $(() => {
|
|
53
|
+
if (!d || n.length === 0) F(d);
|
|
54
54
|
else {
|
|
55
|
-
const e =
|
|
56
|
-
|
|
55
|
+
const e = d.filter((i) => n.every((a) => a.value && D([a.value]).length > 0 ? I(D([i[a.filter]]), D([a.value]).map((r) => r.value)).length > 0 : !0));
|
|
56
|
+
F(e);
|
|
57
57
|
}
|
|
58
58
|
});
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
}, [n,
|
|
59
|
+
S(() => {
|
|
60
|
+
L();
|
|
61
|
+
}, [n, d]), S(() => {
|
|
62
62
|
(async () => {
|
|
63
63
|
try {
|
|
64
|
-
const i = t.dataURL ? typeof t.dataURL == "string" ? t.fileType === "json" ? await
|
|
65
|
-
|
|
64
|
+
const i = t.dataURL ? typeof t.dataURL == "string" ? t.fileType === "json" ? await _(t.dataURL, t.columnsToArray, t.dataTransformation, o) : t.fileType === "api" ? await aa(t.dataURL, t.apiHeaders, t.columnsToArray, t.dataTransformation, o) : await ea(t.dataURL, t.dataTransformation, t.columnsToArray, o, t.delimiter, !0) : await ta(t.dataURL, t.idColumnTitle) : await ia(t.data, t.columnsToArray);
|
|
65
|
+
R(i);
|
|
66
66
|
} catch (i) {
|
|
67
67
|
console.error("Data fetching error:", i);
|
|
68
68
|
}
|
|
69
69
|
})(), A();
|
|
70
|
-
}, [t,
|
|
70
|
+
}, [t, o]), S(() => {
|
|
71
71
|
A();
|
|
72
|
-
}, [
|
|
73
|
-
const
|
|
74
|
-
|
|
75
|
-
...
|
|
72
|
+
}, [p, d]);
|
|
73
|
+
const h = (e, i) => {
|
|
74
|
+
O((a) => a.map((r) => r.filter === e ? {
|
|
75
|
+
...r,
|
|
76
76
|
value: i
|
|
77
|
-
} :
|
|
77
|
+
} : r));
|
|
78
78
|
};
|
|
79
|
-
return /* @__PURE__ */ s.jsxs(
|
|
80
|
-
|
|
79
|
+
return /* @__PURE__ */ s.jsxs(la, { id: w, "aria-label": "This is a dashboard", backgroundColor: l.backgroundColor ?? !1, theme: g || "light", language: l.language || "en", padding: l.padding, children: [
|
|
80
|
+
l.title || l.description ? /* @__PURE__ */ s.jsx(ra, { graphTitle: l.title, graphDescription: l.description, isDashboard: !0 }) : null,
|
|
81
81
|
/* @__PURE__ */ s.jsxs("div", { className: "flex gap-4 flex-wrap", children: [
|
|
82
82
|
n.length !== 0 ? /* @__PURE__ */ s.jsx("div", { className: "flex-grow flex-shrink-0", style: {
|
|
83
83
|
width: j === "side" ? "280px" : "100%"
|
|
84
84
|
}, children: /* @__PURE__ */ s.jsx("div", { className: "flex flex-wrap items-start gap-4 w-full sticky top-4", children: n?.map((e, i) => /* @__PURE__ */ s.jsxs("div", { style: {
|
|
85
|
-
width: e.width || `calc(${100 /
|
|
85
|
+
width: e.width || `calc(${100 / v}% - ${(v - 1) / v}rem)`,
|
|
86
86
|
flexGrow: 1,
|
|
87
87
|
flexShrink: 0,
|
|
88
88
|
minWidth: "240px"
|
|
89
89
|
}, children: [
|
|
90
90
|
/* @__PURE__ */ s.jsx(q, { className: "mb-2", children: e.label }),
|
|
91
|
-
e.singleSelect ? /* @__PURE__ */ s.jsx(H, { options: e.availableValues, isClearable: e.clearable === void 0 ? !0 : e.clearable,
|
|
92
|
-
|
|
93
|
-
},
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
91
|
+
e.singleSelect ? e.ui !== "radio" ? /* @__PURE__ */ s.jsx(H, { options: e.availableValues, variant: u, isClearable: e.clearable === void 0 ? !0 : e.clearable, isSearchable: !0, controlShouldRenderValue: !0, filterOption: G(N), onChange: (a) => {
|
|
92
|
+
h(e.filter, a);
|
|
93
|
+
}, value: e.value, defaultValue: e.defaultValue }) : /* @__PURE__ */ s.jsx(J, { variant: u, defaultValue: e.defaultValue.value, onValueChange: (a) => {
|
|
94
|
+
h(e.filter, e.availableValues.filter((r) => r.value === a));
|
|
95
|
+
}, children: e.availableValues.map((a, r) => /* @__PURE__ */ s.jsx(B, { label: `${a.label}`, value: `${a.value}` }, r)) }) : /* @__PURE__ */ s.jsxs(s.Fragment, { children: [
|
|
96
|
+
e.ui !== "radio" ? /* @__PURE__ */ s.jsx(H, { options: e.availableValues, variant: u, size: "sm", isMulti: !0, isClearable: e.clearable === void 0 ? !0 : e.clearable, isSearchable: !0, controlShouldRenderValue: !0, filterOption: G(N), onChange: (a) => {
|
|
97
|
+
h(e.filter, a);
|
|
98
|
+
}, value: e.value, defaultValue: e.defaultValue }) : /* @__PURE__ */ s.jsx(K, { variant: u, defaultValue: e.defaultValue ? e.defaultValue.map((a) => `${a.value}`) : [], value: e.value ? e.value.map((a) => `${a.value}`) : void 0, onValueChange: (a) => {
|
|
99
|
+
h(e.filter, e.availableValues.filter((r) => a.indexOf(`${r.value}`) !== -1));
|
|
100
|
+
}, children: e.availableValues.map((a, r) => /* @__PURE__ */ s.jsx(Q, { label: `${a.label}`, value: `${a.value}` }, r)) }),
|
|
97
101
|
e.allowSelectAll ? /* @__PURE__ */ s.jsx("button", { type: "button", className: "bg-transparent border-0 p-0 mt-2 cursor-pointer text-primary-blue-600 dark:text-primary-blue-400", onClick: () => {
|
|
98
|
-
|
|
102
|
+
h(e.filter, e.availableValues);
|
|
99
103
|
}, children: "Select all options" }) : null
|
|
100
104
|
] })
|
|
101
105
|
] }, i)) }) }) : null,
|
|
102
106
|
/* @__PURE__ */ s.jsx("div", { className: "flex flex-wrap gap-4 flex-grow flex-shrink-0 min-w-[280px]", style: {
|
|
103
107
|
width: j === "side" ? "calc(100% - 280px - 1rem)" : "100%"
|
|
104
|
-
}, children:
|
|
108
|
+
}, children: l.rows.map((e, i) => /* @__PURE__ */ s.jsx("div", { className: "flex flex-wrap items-stretch gap-4 w-full h-auto", style: {
|
|
105
109
|
minHeight: `${e.height || 0}px`
|
|
106
|
-
}, children: e.columns.map((a,
|
|
110
|
+
}, children: e.columns.map((a, r) => /* @__PURE__ */ s.jsx("div", { className: "flex bg-transparent grow min-w-60", style: {
|
|
107
111
|
width: `calc(${100 * (a.columnWidth || 1) / T(e.columns)}% - ${(T(e.columns) - (a.columnWidth || 1)) / T(e.columns)}rem)`,
|
|
108
112
|
minHeight: "inherit"
|
|
109
|
-
}, children:
|
|
113
|
+
}, children: P.includes(a.graphType) ? /* @__PURE__ */ s.jsx(Y, { graphType: a.graphType, dataFilters: a.dataFilters, uiMode: u, graphSettings: {
|
|
110
114
|
...a.settings || {},
|
|
111
115
|
width: void 0,
|
|
112
116
|
height: void 0,
|
|
113
117
|
minHeight: void 0,
|
|
114
118
|
relativeHeight: void 0,
|
|
115
119
|
resetSelectionOnDoubleClick: a.attachedFilter ? !1 : a.settings?.resetSelectionOnDoubleClick,
|
|
116
|
-
styles: a.settings?.styles ||
|
|
120
|
+
styles: a.settings?.styles || b,
|
|
117
121
|
classNames: a.settings?.classNames || x,
|
|
118
122
|
radius: a.graphType === "donutChart" ? void 0 : a.settings?.radius,
|
|
119
123
|
size: a.graphType === "unitChart" ? a.settings?.size : void 0,
|
|
120
|
-
language: a.settings?.language ||
|
|
124
|
+
language: a.settings?.language || l.language,
|
|
121
125
|
theme: a.settings?.theme || g
|
|
122
126
|
}, dataSettings: {
|
|
123
|
-
data:
|
|
124
|
-
}, dataTransform: a.dataTransform, dataSelectionOptions: a.dataSelectionOptions, advancedDataSelectionOptions: a.advancedDataSelectionOptions, graphDataConfiguration: a.graphDataConfiguration, debugMode:
|
|
127
|
+
data: m ? M(m, V || []) : void 0
|
|
128
|
+
}, dataTransform: a.dataTransform, dataSelectionOptions: a.dataSelectionOptions, advancedDataSelectionOptions: a.advancedDataSelectionOptions, graphDataConfiguration: a.graphDataConfiguration, debugMode: o, readableHeader: C || [] }) : W.includes(a.graphType) ? /* @__PURE__ */ s.jsx(Z, { graphType: a.graphType, uiMode: u, graphSettings: {
|
|
125
129
|
...a.settings || {},
|
|
126
130
|
width: void 0,
|
|
127
131
|
height: void 0,
|
|
128
132
|
resetSelectionOnDoubleClick: a.attachedFilter ? !1 : a.settings?.resetSelectionOnDoubleClick,
|
|
129
|
-
styles: a.settings?.styles ||
|
|
133
|
+
styles: a.settings?.styles || b,
|
|
130
134
|
classNames: a.settings?.classNames || x,
|
|
131
135
|
radius: a.graphType === "donutChart" ? void 0 : a.settings?.radius,
|
|
132
136
|
size: a.graphType === "unitChart" ? a.settings?.size : void 0,
|
|
133
|
-
language: a.settings?.language ||
|
|
137
|
+
language: a.settings?.language || l.language,
|
|
134
138
|
theme: a.settings?.theme || g
|
|
135
|
-
}, debugMode:
|
|
139
|
+
}, debugMode: o }) : /* @__PURE__ */ s.jsx(X, { graphType: a.graphType, dataFilters: a.dataFilters, uiMode: u, graphSettings: {
|
|
136
140
|
...a.settings || {},
|
|
137
141
|
width: void 0,
|
|
138
142
|
height: void 0,
|
|
139
143
|
resetSelectionOnDoubleClick: a.attachedFilter ? !1 : a.settings?.resetSelectionOnDoubleClick,
|
|
140
|
-
styles: a.settings?.styles ||
|
|
144
|
+
styles: a.settings?.styles || b,
|
|
141
145
|
classNames: a.settings?.classNames || x,
|
|
142
146
|
radius: a.graphType === "donutChart" ? void 0 : a.settings?.radius,
|
|
143
147
|
size: a.graphType === "unitChart" ? a.settings?.size : void 0,
|
|
144
|
-
language: a.settings?.language ||
|
|
148
|
+
language: a.settings?.language || l.language,
|
|
145
149
|
theme: a.settings?.theme || g
|
|
146
150
|
}, dataSettings: {
|
|
147
|
-
data:
|
|
148
|
-
}, updateFilters: a.attachedFilter &&
|
|
149
|
-
const
|
|
151
|
+
data: m ? M(m, V || []) : void 0
|
|
152
|
+
}, updateFilters: a.attachedFilter && na.indexOf(a.graphType) !== -1 && n.findIndex((c) => c.filter === a.attachedFilter) !== -1 ? (c) => {
|
|
153
|
+
const z = n.findIndex((E) => E.filter === a.attachedFilter), U = c ? n[z].singleSelect ? {
|
|
150
154
|
value: c,
|
|
151
155
|
label: c
|
|
152
156
|
} : [{
|
|
153
157
|
value: c,
|
|
154
158
|
label: c
|
|
155
159
|
}] : void 0;
|
|
156
|
-
|
|
157
|
-
} : void 0, dataTransform: a.dataTransform, dataSelectionOptions: a.dataSelectionOptions, advancedDataSelectionOptions: a.advancedDataSelectionOptions, graphDataConfiguration: a.graphDataConfiguration, debugMode:
|
|
160
|
+
h(a.attachedFilter, U);
|
|
161
|
+
} : void 0, dataTransform: a.dataTransform, dataSelectionOptions: a.dataSelectionOptions, advancedDataSelectionOptions: a.advancedDataSelectionOptions, graphDataConfiguration: a.graphDataConfiguration, debugMode: o, readableHeader: C || [] }) }, r)) }, i)) })
|
|
158
162
|
] })
|
|
159
163
|
] });
|
|
160
164
|
}
|
|
161
165
|
export {
|
|
162
|
-
|
|
166
|
+
Ta as PerformanceIntensiveMultiGraphDashboard
|
|
163
167
|
};
|
|
164
168
|
//# sourceMappingURL=PerformanceIntensiveMultiGraphDashboard.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PerformanceIntensiveMultiGraphDashboard.js","sources":["../src/Components/Dashboard/PerformanceIntensive/MultiGraphDashboard.tsx"],"sourcesContent":["import { useEffect, useEffectEvent, useState } from 'react';\r\nimport intersection from 'lodash.intersection';\r\nimport flattenDeep from 'lodash.flattendeep';\r\nimport { createFilter, DropdownSelect } from '@undp/design-system-react/DropdownSelect';\r\nimport { Label } from '@undp/design-system-react/Label';\r\n\r\nimport { SingleGraphDashboard } from '../SingleGraphDashboard';\r\n\r\nimport { SingleGraphDashboardThreeDGraphs } from './SingleGraphDashboardThreeDGraphs';\r\nimport { SingleGraphDashboardGeoHubMaps } from './SingleGraphDashboardGeoHubMaps';\r\n\r\nimport {\r\n ClassNameObject,\r\n PerformanceIntensiveDashboardLayoutDataType,\r\n DataFilterDataType,\r\n DataSettingsDataType,\r\n FilterSettingsDataType,\r\n FilterUiSettingsDataType,\r\n GraphType,\r\n StyleObject,\r\n PerformanceIntensiveDashboardColumnDataType,\r\n ThreeDGraphType,\r\n GeoHubGraphType,\r\n} from '@/Types';\r\nimport {\r\n fetchAndParseCSV,\r\n fetchAndParseJSON,\r\n fetchAndParseMultipleDataSources,\r\n fetchAndTransformDataFromAPI,\r\n} from '@/Utils/fetchAndParseData';\r\nimport { getUniqValue } from '@/Utils/getUniqValue';\r\nimport { GraphHeader } from '@/Components/Elements/GraphHeader';\r\nimport { transformColumnsToArray } from '@/Utils/transformData/transformColumnsToArray';\r\nimport { filterData } from '@/Utils/transformData/filterData';\r\nimport { transformDefaultValue } from '@/Utils/transformDataForSelect';\r\nimport { GraphContainer } from '@/Components/Elements/GraphContainer';\r\n\r\ninterface Props {\r\n dashboardID?: string;\r\n dashboardLayout: PerformanceIntensiveDashboardLayoutDataType;\r\n dataSettings: DataSettingsDataType;\r\n filters?: FilterUiSettingsDataType[];\r\n noOfFiltersPerRow?: number;\r\n dataFilters?: DataFilterDataType[];\r\n debugMode?: boolean;\r\n theme?: 'dark' | 'light';\r\n filterPosition?: 'top' | 'side';\r\n readableHeader?: {\r\n value: string;\r\n label: string;\r\n }[];\r\n uiMode?: 'light' | 'normal';\r\n graphStyles?: StyleObject;\r\n graphClassNames?: ClassNameObject;\r\n}\r\n\r\nconst TotalWidth = (columns: PerformanceIntensiveDashboardColumnDataType[]) => {\r\n const columnWidth = columns.map(d => d.columnWidth || 1);\r\n const sum = columnWidth.reduce((acc, cur) => acc + cur, 0);\r\n return sum;\r\n};\r\n\r\nconst GraphWithAttachedFilter: GraphType[] = [\r\n 'barChart',\r\n 'choroplethMap',\r\n 'biVariateChoroplethMap',\r\n 'circlePacking',\r\n 'treeMap',\r\n];\r\n\r\nexport function PerformanceIntensiveMultiGraphDashboard(props: Props) {\r\n const {\r\n dashboardID,\r\n dashboardLayout,\r\n dataSettings,\r\n filters,\r\n debugMode,\r\n theme = 'light',\r\n readableHeader,\r\n dataFilters,\r\n noOfFiltersPerRow = 4,\r\n filterPosition,\r\n uiMode = 'normal',\r\n graphStyles,\r\n graphClassNames,\r\n } = props;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [filteredData, setFilteredData] = useState<any>(undefined);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [data, setData] = useState<any>(undefined);\r\n const [filterSettings, setFilterSettings] = useState<FilterSettingsDataType[]>([]);\r\n\r\n const threeDGraphs = ['threeDGlobe'];\r\n const geoHubMaps = ['geoHubCompareMap', 'geoHubMap', 'geoHubMapWithLayerSelection'];\r\n const filterConfig = {\r\n ignoreCase: true,\r\n ignoreAccents: true,\r\n trim: true,\r\n };\r\n\r\n const updateFiltersEvent = useEffectEvent(() => {\r\n const filterSettingsTemp = (filters || []).map(el => ({\r\n filter: el.column,\r\n label: el.label || `Filter by ${el.column}`,\r\n singleSelect: el.singleSelect,\r\n clearable: el.clearable,\r\n defaultValue: transformDefaultValue(el.defaultValue),\r\n value: transformDefaultValue(el.defaultValue),\r\n availableValues: getUniqValue(data, el.column)\r\n .filter(v => !el.excludeValues?.includes(`${v}`))\r\n .map(v => ({ value: v, label: v })),\r\n allowSelectAll: el.allowSelectAll,\r\n width: el.width,\r\n }));\r\n setFilterSettings(filterSettingsTemp);\r\n });\r\n const filteredDataEvent = useEffectEvent(() => {\r\n if (!data || filterSettings.length === 0) setFilteredData(data);\r\n else {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const result = data.filter((item: any) =>\r\n filterSettings.every(filter =>\r\n filter.value && flattenDeep([filter.value]).length > 0\r\n ? intersection(\r\n flattenDeep([item[filter.filter]]),\r\n flattenDeep([filter.value]).map(el => el.value),\r\n ).length > 0\r\n : true,\r\n ),\r\n );\r\n setFilteredData(result);\r\n }\r\n });\r\n useEffect(() => {\r\n filteredDataEvent();\r\n }, [filterSettings, data]);\r\n\r\n useEffect(() => {\r\n const fetchData = async () => {\r\n try {\r\n const dataFromFile = dataSettings.dataURL\r\n ? typeof dataSettings.dataURL === 'string'\r\n ? dataSettings.fileType === 'json'\r\n ? await fetchAndParseJSON(\r\n dataSettings.dataURL,\r\n dataSettings.columnsToArray,\r\n dataSettings.dataTransformation,\r\n debugMode,\r\n )\r\n : dataSettings.fileType === 'api'\r\n ? await fetchAndTransformDataFromAPI(\r\n dataSettings.dataURL,\r\n dataSettings.apiHeaders,\r\n dataSettings.columnsToArray,\r\n dataSettings.dataTransformation,\r\n debugMode,\r\n )\r\n : await fetchAndParseCSV(\r\n dataSettings.dataURL,\r\n dataSettings.dataTransformation,\r\n dataSettings.columnsToArray,\r\n debugMode,\r\n dataSettings.delimiter,\r\n true,\r\n )\r\n : await fetchAndParseMultipleDataSources(\r\n dataSettings.dataURL,\r\n dataSettings.idColumnTitle,\r\n )\r\n : await transformColumnsToArray(dataSettings.data, dataSettings.columnsToArray);\r\n setData(dataFromFile);\r\n } catch (error) {\r\n console.error('Data fetching error:', error);\r\n }\r\n };\r\n fetchData();\r\n updateFiltersEvent();\r\n }, [dataSettings, debugMode]);\r\n\r\n useEffect(() => {\r\n updateFiltersEvent();\r\n }, [filters]);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const handleFilterChange = (filter: string, values: any) => {\r\n setFilterSettings(prev => prev.map(f => (f.filter === filter ? { ...f, value: values } : f)));\r\n };\r\n return (\r\n <GraphContainer\r\n id={dashboardID}\r\n aria-label='This is a dashboard'\r\n backgroundColor={dashboardLayout.backgroundColor ?? false}\r\n theme={theme || 'light'}\r\n language={dashboardLayout.language || 'en'}\r\n padding={dashboardLayout.padding}\r\n >\r\n {dashboardLayout.title || dashboardLayout.description ? (\r\n <GraphHeader\r\n graphTitle={dashboardLayout.title}\r\n graphDescription={dashboardLayout.description}\r\n isDashboard\r\n />\r\n ) : null}\r\n <div className='flex gap-4 flex-wrap'>\r\n {filterSettings.length !== 0 ? (\r\n <div\r\n className='flex-grow flex-shrink-0'\r\n style={{\r\n width: filterPosition === 'side' ? '280px' : '100%',\r\n }}\r\n >\r\n <div className='flex flex-wrap items-start gap-4 w-full sticky top-4'>\r\n {filterSettings?.map((d, i) => (\r\n <div\r\n style={{\r\n width:\r\n d.width ||\r\n `calc(${100 / noOfFiltersPerRow}% - ${\r\n (noOfFiltersPerRow - 1) / noOfFiltersPerRow\r\n }rem)`,\r\n flexGrow: 1,\r\n flexShrink: 0,\r\n minWidth: '240px',\r\n }}\r\n key={i}\r\n >\r\n <Label className='mb-2'>{d.label}</Label>\r\n {d.singleSelect ? (\r\n <DropdownSelect\r\n options={d.availableValues}\r\n isClearable={d.clearable === undefined ? true : d.clearable}\r\n size='sm'\r\n variant={uiMode}\r\n isMulti={false}\r\n isSearchable\r\n filterOption={createFilter(filterConfig)}\r\n onChange={el => {\r\n handleFilterChange(d.filter, el);\r\n }}\r\n defaultValue={d.defaultValue}\r\n value={d.value}\r\n />\r\n ) : (\r\n <>\r\n <DropdownSelect\r\n options={d.availableValues}\r\n isMulti\r\n size='sm'\r\n isClearable={d.clearable === undefined ? true : d.clearable}\r\n variant={uiMode}\r\n isSearchable\r\n controlShouldRenderValue\r\n closeMenuOnSelect={false}\r\n hideSelectedOptions={false}\r\n filterOption={createFilter(filterConfig)}\r\n onChange={el => {\r\n handleFilterChange(d.filter, el);\r\n }}\r\n value={d.value}\r\n defaultValue={d.defaultValue}\r\n />\r\n {d.allowSelectAll ? (\r\n <button\r\n type='button'\r\n className='bg-transparent border-0 p-0 mt-2 cursor-pointer text-primary-blue-600 dark:text-primary-blue-400'\r\n onClick={() => {\r\n handleFilterChange(d.filter, d.availableValues);\r\n }}\r\n >\r\n Select all options\r\n </button>\r\n ) : null}\r\n </>\r\n )}\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n ) : null}\r\n <div\r\n className='flex flex-wrap gap-4 flex-grow flex-shrink-0 min-w-[280px]'\r\n style={{\r\n width: filterPosition === 'side' ? 'calc(100% - 280px - 1rem)' : '100%',\r\n }}\r\n >\r\n {dashboardLayout.rows.map((d, i) => (\r\n <div\r\n key={i}\r\n className='flex flex-wrap items-stretch gap-4 w-full h-auto'\r\n style={{\r\n minHeight: `${d.height || 0}px`,\r\n }}\r\n >\r\n {d.columns.map((el, j) => (\r\n <div\r\n key={j}\r\n className='flex bg-transparent grow min-w-60'\r\n style={{\r\n width: `calc(${(100 * (el.columnWidth || 1)) / TotalWidth(d.columns)}% - ${\r\n (TotalWidth(d.columns) - (el.columnWidth || 1)) / TotalWidth(d.columns)\r\n }rem)`,\r\n minHeight: 'inherit',\r\n }}\r\n >\r\n {threeDGraphs.includes(el.graphType) ? (\r\n <SingleGraphDashboardThreeDGraphs\r\n graphType={el.graphType as ThreeDGraphType}\r\n dataFilters={el.dataFilters}\r\n uiMode={uiMode}\r\n graphSettings={{\r\n ...(el.settings || {}),\r\n width: undefined,\r\n height: undefined,\r\n minHeight: undefined,\r\n relativeHeight: undefined,\r\n resetSelectionOnDoubleClick: el.attachedFilter\r\n ? false\r\n : el.settings?.resetSelectionOnDoubleClick,\r\n styles: el.settings?.styles || graphStyles,\r\n classNames: el.settings?.classNames || graphClassNames,\r\n radius: el.graphType === 'donutChart' ? undefined : el.settings?.radius,\r\n size: el.graphType === 'unitChart' ? el.settings?.size : undefined,\r\n language: el.settings?.language || dashboardLayout.language,\r\n theme: el.settings?.theme || theme,\r\n }}\r\n dataSettings={{\r\n data: filteredData\r\n ? filterData(filteredData, dataFilters || [])\r\n : undefined,\r\n }}\r\n dataTransform={el.dataTransform}\r\n dataSelectionOptions={el.dataSelectionOptions}\r\n advancedDataSelectionOptions={el.advancedDataSelectionOptions}\r\n graphDataConfiguration={el.graphDataConfiguration}\r\n debugMode={debugMode}\r\n readableHeader={readableHeader || []}\r\n />\r\n ) : geoHubMaps.includes(el.graphType) ? (\r\n <SingleGraphDashboardGeoHubMaps\r\n graphType={el.graphType as GeoHubGraphType}\r\n uiMode={uiMode}\r\n graphSettings={{\r\n ...(el.settings || {}),\r\n width: undefined,\r\n height: undefined,\r\n resetSelectionOnDoubleClick: el.attachedFilter\r\n ? false\r\n : el.settings?.resetSelectionOnDoubleClick,\r\n styles: el.settings?.styles || graphStyles,\r\n classNames: el.settings?.classNames || graphClassNames,\r\n radius: el.graphType === 'donutChart' ? undefined : el.settings?.radius,\r\n size: el.graphType === 'unitChart' ? el.settings?.size : undefined,\r\n language: el.settings?.language || dashboardLayout.language,\r\n theme: el.settings?.theme || theme,\r\n }}\r\n debugMode={debugMode}\r\n />\r\n ) : (\r\n <SingleGraphDashboard\r\n graphType={el.graphType as GraphType}\r\n dataFilters={el.dataFilters}\r\n uiMode={uiMode}\r\n graphSettings={{\r\n ...(el.settings || {}),\r\n width: undefined,\r\n height: undefined,\r\n resetSelectionOnDoubleClick: el.attachedFilter\r\n ? false\r\n : el.settings?.resetSelectionOnDoubleClick,\r\n styles: el.settings?.styles || graphStyles,\r\n classNames: el.settings?.classNames || graphClassNames,\r\n radius: el.graphType === 'donutChart' ? undefined : el.settings?.radius,\r\n size: el.graphType === 'unitChart' ? el.settings?.size : undefined,\r\n language: el.settings?.language || dashboardLayout.language,\r\n theme: el.settings?.theme || theme,\r\n }}\r\n dataSettings={{\r\n data: filteredData\r\n ? filterData(filteredData, dataFilters || [])\r\n : undefined,\r\n }}\r\n updateFilters={\r\n el.attachedFilter &&\r\n GraphWithAttachedFilter.indexOf(el.graphType as GraphType) !== -1 &&\r\n filterSettings.findIndex(f => f.filter === el.attachedFilter) !== -1\r\n ? dClicked => {\r\n const indx = filterSettings.findIndex(\r\n f => f.filter === el.attachedFilter,\r\n );\r\n const value = dClicked\r\n ? filterSettings[indx].singleSelect\r\n ? { value: dClicked, label: dClicked }\r\n : [{ value: dClicked, label: dClicked }]\r\n : undefined;\r\n handleFilterChange(el.attachedFilter as string, value);\r\n }\r\n : undefined\r\n }\r\n dataTransform={el.dataTransform}\r\n dataSelectionOptions={el.dataSelectionOptions}\r\n advancedDataSelectionOptions={el.advancedDataSelectionOptions}\r\n graphDataConfiguration={el.graphDataConfiguration}\r\n debugMode={debugMode}\r\n readableHeader={readableHeader || []}\r\n />\r\n )}\r\n </div>\r\n ))}\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n </GraphContainer>\r\n );\r\n}\r\n"],"names":["TotalWidth","columns","map","d","columnWidth","reduce","acc","cur","GraphWithAttachedFilter","PerformanceIntensiveMultiGraphDashboard","props","dashboardID","dashboardLayout","dataSettings","filters","debugMode","theme","readableHeader","dataFilters","noOfFiltersPerRow","filterPosition","uiMode","graphStyles","graphClassNames","filteredData","setFilteredData","useState","undefined","data","setData","filterSettings","setFilterSettings","threeDGraphs","geoHubMaps","filterConfig","ignoreCase","ignoreAccents","trim","updateFiltersEvent","useEffectEvent","filterSettingsTemp","el","filter","column","label","singleSelect","clearable","defaultValue","transformDefaultValue","value","availableValues","getUniqValue","v","excludeValues","includes","allowSelectAll","width","filteredDataEvent","length","result","item","every","flattenDeep","intersection","useEffect","fetchData","dataFromFile","dataURL","fileType","fetchAndParseJSON","columnsToArray","dataTransformation","fetchAndTransformDataFromAPI","apiHeaders","fetchAndParseCSV","delimiter","fetchAndParseMultipleDataSources","idColumnTitle","transformColumnsToArray","error","console","handleFilterChange","values","prev","f","GraphContainer","backgroundColor","language","padding","title","description","jsx","GraphHeader","jsxs","i","flexGrow","flexShrink","minWidth","Label","DropdownSelect","createFilter","Fragment","rows","minHeight","height","j","graphType","SingleGraphDashboardThreeDGraphs","settings","relativeHeight","resetSelectionOnDoubleClick","attachedFilter","styles","classNames","radius","size","filterData","dataTransform","dataSelectionOptions","advancedDataSelectionOptions","graphDataConfiguration","SingleGraphDashboardGeoHubMaps","SingleGraphDashboard","indexOf","findIndex","dClicked","indx"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PerformanceIntensiveMultiGraphDashboard.js","sources":["../src/Components/Dashboard/PerformanceIntensive/MultiGraphDashboard.tsx"],"sourcesContent":["import { useEffect, useEffectEvent, useState } from 'react';\r\nimport intersection from 'lodash.intersection';\r\nimport flattenDeep from 'lodash.flattendeep';\r\nimport { createFilter, DropdownSelect } from '@undp/design-system-react/DropdownSelect';\r\nimport { Label } from '@undp/design-system-react/Label';\r\nimport { CheckboxGroup, CheckboxGroupItem } from '@undp/design-system-react/CheckboxGroup';\r\nimport { RadioGroup, RadioGroupItem } from '@undp/design-system-react/RadioGroup';\r\n\r\nimport { SingleGraphDashboard } from '../SingleGraphDashboard';\r\n\r\nimport { SingleGraphDashboardThreeDGraphs } from './SingleGraphDashboardThreeDGraphs';\r\nimport { SingleGraphDashboardGeoHubMaps } from './SingleGraphDashboardGeoHubMaps';\r\n\r\nimport {\r\n ClassNameObject,\r\n PerformanceIntensiveDashboardLayoutDataType,\r\n DataFilterDataType,\r\n DataSettingsDataType,\r\n FilterSettingsDataType,\r\n FilterUiSettingsDataType,\r\n GraphType,\r\n StyleObject,\r\n PerformanceIntensiveDashboardColumnDataType,\r\n ThreeDGraphType,\r\n GeoHubGraphType,\r\n} from '@/Types';\r\nimport {\r\n fetchAndParseCSV,\r\n fetchAndParseJSON,\r\n fetchAndParseMultipleDataSources,\r\n fetchAndTransformDataFromAPI,\r\n} from '@/Utils/fetchAndParseData';\r\nimport { getUniqValue } from '@/Utils/getUniqValue';\r\nimport { GraphHeader } from '@/Components/Elements/GraphHeader';\r\nimport { transformColumnsToArray } from '@/Utils/transformData/transformColumnsToArray';\r\nimport { filterData } from '@/Utils/transformData/filterData';\r\nimport { transformDefaultValue } from '@/Utils/transformDataForSelect';\r\nimport { GraphContainer } from '@/Components/Elements/GraphContainer';\r\n\r\ninterface Props {\r\n dashboardID?: string;\r\n dashboardLayout: PerformanceIntensiveDashboardLayoutDataType;\r\n dataSettings: DataSettingsDataType;\r\n filters?: FilterUiSettingsDataType[];\r\n noOfFiltersPerRow?: number;\r\n dataFilters?: DataFilterDataType[];\r\n debugMode?: boolean;\r\n theme?: 'dark' | 'light';\r\n filterPosition?: 'top' | 'side';\r\n readableHeader?: {\r\n value: string;\r\n label: string;\r\n }[];\r\n uiMode?: 'light' | 'normal';\r\n graphStyles?: StyleObject;\r\n graphClassNames?: ClassNameObject;\r\n}\r\n\r\nconst TotalWidth = (columns: PerformanceIntensiveDashboardColumnDataType[]) => {\r\n const columnWidth = columns.map(d => d.columnWidth || 1);\r\n const sum = columnWidth.reduce((acc, cur) => acc + cur, 0);\r\n return sum;\r\n};\r\n\r\nconst GraphWithAttachedFilter: GraphType[] = [\r\n 'barChart',\r\n 'choroplethMap',\r\n 'biVariateChoroplethMap',\r\n 'circlePacking',\r\n 'treeMap',\r\n];\r\n\r\nexport function PerformanceIntensiveMultiGraphDashboard(props: Props) {\r\n const {\r\n dashboardID,\r\n dashboardLayout,\r\n dataSettings,\r\n filters,\r\n debugMode,\r\n theme = 'light',\r\n readableHeader,\r\n dataFilters,\r\n noOfFiltersPerRow = 4,\r\n filterPosition,\r\n uiMode = 'normal',\r\n graphStyles,\r\n graphClassNames,\r\n } = props;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [filteredData, setFilteredData] = useState<any>(undefined);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [data, setData] = useState<any>(undefined);\r\n const [filterSettings, setFilterSettings] = useState<FilterSettingsDataType[]>([]);\r\n\r\n const threeDGraphs = ['threeDGlobe'];\r\n const geoHubMaps = ['geoHubCompareMap', 'geoHubMap', 'geoHubMapWithLayerSelection'];\r\n const filterConfig = {\r\n ignoreCase: true,\r\n ignoreAccents: true,\r\n trim: true,\r\n };\r\n\r\n const updateFiltersEvent = useEffectEvent(() => {\r\n const filterSettingsTemp = (filters || []).map(el => ({\r\n filter: el.column,\r\n label: el.label || `Filter by ${el.column}`,\r\n singleSelect: el.singleSelect,\r\n clearable: el.clearable,\r\n defaultValue: transformDefaultValue(el.defaultValue),\r\n value: transformDefaultValue(el.defaultValue),\r\n availableValues: getUniqValue(data, el.column)\r\n .filter(v => !el.excludeValues?.includes(`${v}`))\r\n .map(v => ({ value: v, label: v })),\r\n allowSelectAll: el.allowSelectAll,\r\n width: el.width,\r\n }));\r\n setFilterSettings(filterSettingsTemp);\r\n });\r\n const filteredDataEvent = useEffectEvent(() => {\r\n if (!data || filterSettings.length === 0) setFilteredData(data);\r\n else {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const result = data.filter((item: any) =>\r\n filterSettings.every(filter =>\r\n filter.value && flattenDeep([filter.value]).length > 0\r\n ? intersection(\r\n flattenDeep([item[filter.filter]]),\r\n flattenDeep([filter.value]).map(el => el.value),\r\n ).length > 0\r\n : true,\r\n ),\r\n );\r\n setFilteredData(result);\r\n }\r\n });\r\n useEffect(() => {\r\n filteredDataEvent();\r\n }, [filterSettings, data]);\r\n\r\n useEffect(() => {\r\n const fetchData = async () => {\r\n try {\r\n const dataFromFile = dataSettings.dataURL\r\n ? typeof dataSettings.dataURL === 'string'\r\n ? dataSettings.fileType === 'json'\r\n ? await fetchAndParseJSON(\r\n dataSettings.dataURL,\r\n dataSettings.columnsToArray,\r\n dataSettings.dataTransformation,\r\n debugMode,\r\n )\r\n : dataSettings.fileType === 'api'\r\n ? await fetchAndTransformDataFromAPI(\r\n dataSettings.dataURL,\r\n dataSettings.apiHeaders,\r\n dataSettings.columnsToArray,\r\n dataSettings.dataTransformation,\r\n debugMode,\r\n )\r\n : await fetchAndParseCSV(\r\n dataSettings.dataURL,\r\n dataSettings.dataTransformation,\r\n dataSettings.columnsToArray,\r\n debugMode,\r\n dataSettings.delimiter,\r\n true,\r\n )\r\n : await fetchAndParseMultipleDataSources(\r\n dataSettings.dataURL,\r\n dataSettings.idColumnTitle,\r\n )\r\n : await transformColumnsToArray(dataSettings.data, dataSettings.columnsToArray);\r\n setData(dataFromFile);\r\n } catch (error) {\r\n console.error('Data fetching error:', error);\r\n }\r\n };\r\n fetchData();\r\n updateFiltersEvent();\r\n }, [dataSettings, debugMode]);\r\n\r\n useEffect(() => {\r\n updateFiltersEvent();\r\n }, [filters, data]);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const handleFilterChange = (filter: string, values: any) => {\r\n setFilterSettings(prev => prev.map(f => (f.filter === filter ? { ...f, value: values } : f)));\r\n };\r\n return (\r\n <GraphContainer\r\n id={dashboardID}\r\n aria-label='This is a dashboard'\r\n backgroundColor={dashboardLayout.backgroundColor ?? false}\r\n theme={theme || 'light'}\r\n language={dashboardLayout.language || 'en'}\r\n padding={dashboardLayout.padding}\r\n >\r\n {dashboardLayout.title || dashboardLayout.description ? (\r\n <GraphHeader\r\n graphTitle={dashboardLayout.title}\r\n graphDescription={dashboardLayout.description}\r\n isDashboard\r\n />\r\n ) : null}\r\n <div className='flex gap-4 flex-wrap'>\r\n {filterSettings.length !== 0 ? (\r\n <div\r\n className='flex-grow flex-shrink-0'\r\n style={{\r\n width: filterPosition === 'side' ? '280px' : '100%',\r\n }}\r\n >\r\n <div className='flex flex-wrap items-start gap-4 w-full sticky top-4'>\r\n {filterSettings?.map((d, i) => (\r\n <div\r\n style={{\r\n width:\r\n d.width ||\r\n `calc(${100 / noOfFiltersPerRow}% - ${\r\n (noOfFiltersPerRow - 1) / noOfFiltersPerRow\r\n }rem)`,\r\n flexGrow: 1,\r\n flexShrink: 0,\r\n minWidth: '240px',\r\n }}\r\n key={i}\r\n >\r\n <Label className='mb-2'>{d.label}</Label>\r\n {d.singleSelect ? (\r\n d.ui !== 'radio' ? (\r\n <DropdownSelect\r\n options={d.availableValues}\r\n variant={uiMode}\r\n isClearable={d.clearable === undefined ? true : d.clearable}\r\n isSearchable\r\n controlShouldRenderValue\r\n filterOption={createFilter(filterConfig)}\r\n onChange={el => {\r\n handleFilterChange(d.filter, el);\r\n }}\r\n value={d.value}\r\n defaultValue={d.defaultValue}\r\n />\r\n ) : (\r\n <RadioGroup\r\n variant={uiMode}\r\n defaultValue={(d.defaultValue as { value: string; label: string }).value}\r\n onValueChange={el => {\r\n handleFilterChange(\r\n d.filter,\r\n d.availableValues.filter(v => v.value === el),\r\n );\r\n }}\r\n >\r\n {d.availableValues.map((el, j) => (\r\n <RadioGroupItem label={`${el.label}`} value={`${el.value}`} key={j} />\r\n ))}\r\n </RadioGroup>\r\n )\r\n ) : (\r\n <>\r\n {d.ui !== 'radio' ? (\r\n <DropdownSelect\r\n options={d.availableValues}\r\n variant={uiMode}\r\n size='sm'\r\n isMulti\r\n isClearable={d.clearable === undefined ? true : d.clearable}\r\n isSearchable\r\n controlShouldRenderValue\r\n filterOption={createFilter(filterConfig)}\r\n onChange={el => {\r\n handleFilterChange(d.filter, el);\r\n }}\r\n value={d.value}\r\n defaultValue={d.defaultValue}\r\n />\r\n ) : (\r\n <CheckboxGroup\r\n variant={uiMode}\r\n defaultValue={\r\n d.defaultValue\r\n ? (\r\n d.defaultValue as {\r\n value: string | number;\r\n label: string | number;\r\n }[]\r\n ).map(el => `${el.value}`)\r\n : []\r\n }\r\n value={\r\n d.value\r\n ? (\r\n d.value as {\r\n value: string | number;\r\n label: string | number;\r\n }[]\r\n ).map(el => `${el.value}`)\r\n : undefined\r\n }\r\n onValueChange={el => {\r\n handleFilterChange(\r\n d.filter,\r\n d.availableValues.filter(v => el.indexOf(`${v.value}`) !== -1),\r\n );\r\n }}\r\n >\r\n {d.availableValues.map((el, j) => (\r\n <CheckboxGroupItem\r\n label={`${el.label}`}\r\n value={`${el.value}`}\r\n key={j}\r\n />\r\n ))}\r\n </CheckboxGroup>\r\n )}\r\n {d.allowSelectAll ? (\r\n <button\r\n type='button'\r\n className='bg-transparent border-0 p-0 mt-2 cursor-pointer text-primary-blue-600 dark:text-primary-blue-400'\r\n onClick={() => {\r\n handleFilterChange(d.filter, d.availableValues);\r\n }}\r\n >\r\n Select all options\r\n </button>\r\n ) : null}\r\n </>\r\n )}\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n ) : null}\r\n <div\r\n className='flex flex-wrap gap-4 flex-grow flex-shrink-0 min-w-[280px]'\r\n style={{\r\n width: filterPosition === 'side' ? 'calc(100% - 280px - 1rem)' : '100%',\r\n }}\r\n >\r\n {dashboardLayout.rows.map((d, i) => (\r\n <div\r\n key={i}\r\n className='flex flex-wrap items-stretch gap-4 w-full h-auto'\r\n style={{\r\n minHeight: `${d.height || 0}px`,\r\n }}\r\n >\r\n {d.columns.map((el, j) => (\r\n <div\r\n key={j}\r\n className='flex bg-transparent grow min-w-60'\r\n style={{\r\n width: `calc(${(100 * (el.columnWidth || 1)) / TotalWidth(d.columns)}% - ${\r\n (TotalWidth(d.columns) - (el.columnWidth || 1)) / TotalWidth(d.columns)\r\n }rem)`,\r\n minHeight: 'inherit',\r\n }}\r\n >\r\n {threeDGraphs.includes(el.graphType) ? (\r\n <SingleGraphDashboardThreeDGraphs\r\n graphType={el.graphType as ThreeDGraphType}\r\n dataFilters={el.dataFilters}\r\n uiMode={uiMode}\r\n graphSettings={{\r\n ...(el.settings || {}),\r\n width: undefined,\r\n height: undefined,\r\n minHeight: undefined,\r\n relativeHeight: undefined,\r\n resetSelectionOnDoubleClick: el.attachedFilter\r\n ? false\r\n : el.settings?.resetSelectionOnDoubleClick,\r\n styles: el.settings?.styles || graphStyles,\r\n classNames: el.settings?.classNames || graphClassNames,\r\n radius: el.graphType === 'donutChart' ? undefined : el.settings?.radius,\r\n size: el.graphType === 'unitChart' ? el.settings?.size : undefined,\r\n language: el.settings?.language || dashboardLayout.language,\r\n theme: el.settings?.theme || theme,\r\n }}\r\n dataSettings={{\r\n data: filteredData\r\n ? filterData(filteredData, dataFilters || [])\r\n : undefined,\r\n }}\r\n dataTransform={el.dataTransform}\r\n dataSelectionOptions={el.dataSelectionOptions}\r\n advancedDataSelectionOptions={el.advancedDataSelectionOptions}\r\n graphDataConfiguration={el.graphDataConfiguration}\r\n debugMode={debugMode}\r\n readableHeader={readableHeader || []}\r\n />\r\n ) : geoHubMaps.includes(el.graphType) ? (\r\n <SingleGraphDashboardGeoHubMaps\r\n graphType={el.graphType as GeoHubGraphType}\r\n uiMode={uiMode}\r\n graphSettings={{\r\n ...(el.settings || {}),\r\n width: undefined,\r\n height: undefined,\r\n resetSelectionOnDoubleClick: el.attachedFilter\r\n ? false\r\n : el.settings?.resetSelectionOnDoubleClick,\r\n styles: el.settings?.styles || graphStyles,\r\n classNames: el.settings?.classNames || graphClassNames,\r\n radius: el.graphType === 'donutChart' ? undefined : el.settings?.radius,\r\n size: el.graphType === 'unitChart' ? el.settings?.size : undefined,\r\n language: el.settings?.language || dashboardLayout.language,\r\n theme: el.settings?.theme || theme,\r\n }}\r\n debugMode={debugMode}\r\n />\r\n ) : (\r\n <SingleGraphDashboard\r\n graphType={el.graphType as GraphType}\r\n dataFilters={el.dataFilters}\r\n uiMode={uiMode}\r\n graphSettings={{\r\n ...(el.settings || {}),\r\n width: undefined,\r\n height: undefined,\r\n resetSelectionOnDoubleClick: el.attachedFilter\r\n ? false\r\n : el.settings?.resetSelectionOnDoubleClick,\r\n styles: el.settings?.styles || graphStyles,\r\n classNames: el.settings?.classNames || graphClassNames,\r\n radius: el.graphType === 'donutChart' ? undefined : el.settings?.radius,\r\n size: el.graphType === 'unitChart' ? el.settings?.size : undefined,\r\n language: el.settings?.language || dashboardLayout.language,\r\n theme: el.settings?.theme || theme,\r\n }}\r\n dataSettings={{\r\n data: filteredData\r\n ? filterData(filteredData, dataFilters || [])\r\n : undefined,\r\n }}\r\n updateFilters={\r\n el.attachedFilter &&\r\n GraphWithAttachedFilter.indexOf(el.graphType as GraphType) !== -1 &&\r\n filterSettings.findIndex(f => f.filter === el.attachedFilter) !== -1\r\n ? dClicked => {\r\n const indx = filterSettings.findIndex(\r\n f => f.filter === el.attachedFilter,\r\n );\r\n const value = dClicked\r\n ? filterSettings[indx].singleSelect\r\n ? { value: dClicked, label: dClicked }\r\n : [{ value: dClicked, label: dClicked }]\r\n : undefined;\r\n handleFilterChange(el.attachedFilter as string, value);\r\n }\r\n : undefined\r\n }\r\n dataTransform={el.dataTransform}\r\n dataSelectionOptions={el.dataSelectionOptions}\r\n advancedDataSelectionOptions={el.advancedDataSelectionOptions}\r\n graphDataConfiguration={el.graphDataConfiguration}\r\n debugMode={debugMode}\r\n readableHeader={readableHeader || []}\r\n />\r\n )}\r\n </div>\r\n ))}\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n </GraphContainer>\r\n );\r\n}\r\n"],"names":["TotalWidth","columns","map","d","columnWidth","reduce","acc","cur","GraphWithAttachedFilter","PerformanceIntensiveMultiGraphDashboard","props","dashboardID","dashboardLayout","dataSettings","filters","debugMode","theme","readableHeader","dataFilters","noOfFiltersPerRow","filterPosition","uiMode","graphStyles","graphClassNames","filteredData","setFilteredData","useState","undefined","data","setData","filterSettings","setFilterSettings","threeDGraphs","geoHubMaps","filterConfig","ignoreCase","ignoreAccents","trim","updateFiltersEvent","useEffectEvent","filterSettingsTemp","el","filter","column","label","singleSelect","clearable","defaultValue","transformDefaultValue","value","availableValues","getUniqValue","v","excludeValues","includes","allowSelectAll","width","filteredDataEvent","length","result","item","every","flattenDeep","intersection","useEffect","fetchData","dataFromFile","dataURL","fileType","fetchAndParseJSON","columnsToArray","dataTransformation","fetchAndTransformDataFromAPI","apiHeaders","fetchAndParseCSV","delimiter","fetchAndParseMultipleDataSources","idColumnTitle","transformColumnsToArray","error","console","handleFilterChange","values","prev","f","GraphContainer","backgroundColor","language","padding","title","description","jsx","GraphHeader","jsxs","i","flexGrow","flexShrink","minWidth","Label","ui","DropdownSelect","createFilter","RadioGroup","j","RadioGroupItem","Fragment","CheckboxGroup","indexOf","CheckboxGroupItem","rows","minHeight","height","graphType","SingleGraphDashboardThreeDGraphs","settings","relativeHeight","resetSelectionOnDoubleClick","attachedFilter","styles","classNames","radius","size","filterData","dataTransform","dataSelectionOptions","advancedDataSelectionOptions","graphDataConfiguration","SingleGraphDashboardGeoHubMaps","SingleGraphDashboard","findIndex","dClicked","indx"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("./index-CHPV5EwG-CTPQjnHt.cjs"),o=require("react"),te=require("./index-CyZ1lmi_.cjs"),q=require("./index-BS2TADPj.cjs"),le=require("./index-DQA8q5sC.cjs"),x=require("./DropdownSelect-Doz3mCrM.cjs"),c=require("./checkIfMultiple-wg6hJLXy.cjs"),ne=require("./Spinner-DRMBUsX7.cjs"),ie=require("./GraphContainer-d8A46BK2.cjs"),re=require("./GraphEl-BcKU0bG1.cjs"),y=require("./fetchAndParseData-l5HGMAEs.cjs"),U=require("./transformDataForAggregation-DAGK2BZy.cjs"),z=require("./getUniqValue-RViz8tTw.cjs"),se=require("./GraphHeader.cjs"),W=require("./filterData-T5DQBE9b.cjs"),oe=require("./getGraphList-gf02xgT2.cjs"),J=require("./transformDataForSelect-YmStusCI.cjs"),ue=u=>{if(u.findIndex(l=>l.chartConfigId==="yMin")!==-1&&u.findIndex(l=>l.chartConfigId==="yMax")!==-1)return u;const n=[...u];return u.findIndex(l=>l.chartConfigId==="yMin")===-1&&n.push({chartConfigId:"yMin",columnId:`${u[u.findIndex(l=>l.chartConfigId==="y")].columnId}Min`}),u.findIndex(l=>l.chartConfigId==="yMax")===-1&&n.push({chartConfigId:"yMax",columnId:`${u[u.findIndex(l=>l.chartConfigId==="y")].columnId}Max`}),n},M=(u,n)=>{const l=n?.map(D=>{const I=u?.findIndex(s=>s.chartConfigId===D.chartConfigId);if(I===-1)return{};const w=u[I]?.allowedColumnIds?.findIndex(s=>s.value===D.columnId);return w===-1?{}:u[I].allowedColumnIds[w].graphSettings||{}})||[];return Object.assign({},...l)};function de(u){const{graphSettings:n,dataSettings:l,filters:D,graphType:I,dataTransform:w,graphDataConfiguration:s,dataFilters:A,debugMode:S,dataSelectionOptions:b,advancedDataSelectionOptions:N,readableHeader:B,noOfFiltersPerRow:h=4,updateFilters:K,uiMode:g="normal",highlightDataPointSettings:C}=u,[P,F]=o.useState(void 0),[p,Q]=o.useState(void 0),[v,j]=o.useState(s),[m,E]=o.useState({}),[R,X]=o.useState(void 0),[Y,Z]=o.useState([]),H=o.useRef(null),O=o.useRef(s),[V,k]=o.useState([]),G={ignoreCase:!0,ignoreAccents:!0,trim:!0},L=o.useEffectEvent(()=>{const e=(D||[]).map(r=>({filter:r.column,label:r.label||`Filter by ${r.column}`,singleSelect:r.singleSelect,clearable:r.clearable,defaultValue:J.transformDefaultValue(r.defaultValue),value:J.transformDefaultValue(r.defaultValue),availableValues:z.getUniqValue(p,r.column).filter(a=>!r.excludeValues?.includes(`${a}`)).map(a=>({value:a,label:a})),allowSelectAll:r.allowSelectAll,width:r.width}));k(e)});o.useEffect(()=>{(async()=>{try{const r=l.dataURL?typeof l.dataURL=="string"?l.fileType==="json"?await y.fetchAndParseJSON(l.dataURL,l.columnsToArray,l.dataTransformation,S):l.fileType==="api"?await y.fetchAndTransformDataFromAPI(l.dataURL,l.apiHeaders,l.columnsToArray,l.dataTransformation,S):await y.fetchAndParseCSV(l.dataURL,l.dataTransformation,l.columnsToArray,S,l.delimiter,!0):await y.fetchAndParseMultipleDataSources(l.dataURL,l.idColumnTitle):await y.transformColumnsToArray(l.data,l.columnsToArray);Q(r)}catch(r){console.error("Data fetching error:",r)}})(),L()},[l,S]),o.useEffect(()=>{L()},[D]);const _=o.useEffectEvent(()=>{if(!p||V.length===0)F(p);else{const e=p.filter(r=>V.every(a=>a.value&&q.flattenDeep([a.value]).length>0?te.intersection(q.flattenDeep([r[a.filter]]),q.flattenDeep([a.value]).map(t=>t.value)).length>0:!0));F(e)}});o.useEffect(()=>{_()},[V,p]),o.useEffect(()=>{b&&E(M(b,s))},[b,s]);const ee=o.useEffectEvent(()=>{C?.column&&P&&Z(z.getUniqValue(P,C.column).filter(e=>!C?.excludeValues?.includes(`${e}`)).map(e=>({value:e,label:e})))});o.useEffect(()=>{ee()},[C]),o.useEffect(()=>{le.isEqual(O.current,s)||(j(s),O.current=s)},[s]);const $=(e,r)=>{k(a=>a.map(t=>t.filter===e?{...t,value:r}:t))},ae=p?U.transformDataForGraph(w?U.transformDataForAggregation(W.filterData(p,A||[]),w.keyColumn,w.aggregationColumnsSetting):W.filterData(p,A||[]),I,I==="lineChartWithConfidenceInterval"&&v?ue(v):v):void 0;return i.jsxRuntimeExports.jsx(ie.GraphContainer,{className:n?.classNames?.graphContainer,style:n?.styles?.graphContainer,id:n?.graphID,ref:H,"aria-label":n?.ariaLabel,backgroundColor:n?.backgroundColor??!1,theme:n?.theme||"light",language:n?.language||"en",width:n?.width,height:n?.height,padding:n?.padding,minHeight:n?.minHeight,relativeHeight:n?.relativeHeight,children:p||oe.graphList.filter(e=>e.geoHubMapPresentation).map(e=>e.graphID).indexOf(I)!==-1?i.jsxRuntimeExports.jsxs(i.jsxRuntimeExports.Fragment,{children:[m?.graphTitle||m?.graphDescription||n?.graphTitle||n?.graphDescription||n?.graphDownload||n?.dataDownload?i.jsxRuntimeExports.jsx(se.GraphHeader,{styles:{title:m?.styles?.title||n?.styles?.title,description:m?.styles?.description||n?.styles?.description},classNames:{title:m?.classNames?.title||n?.classNames?.title,description:m?.classNames?.description||n?.classNames?.description},graphTitle:m?.graphTitle||n?.graphTitle,graphDescription:m?.graphDescription||n?.graphDescription,width:m?.width||n?.width,graphDownload:n?.graphDownload?H:void 0,dataDownload:n?.dataDownload&&p&&p.length>0?p:null}):null,V.length!==0||(b||[]).length!==0||(N||[]).length!==0||C?i.jsxRuntimeExports.jsxs("div",{className:"flex flex-wrap items-start gap-x-4 gap-y-0 w-full",children:[N?.map((e,r)=>i.jsxRuntimeExports.jsxs("div",{style:{width:e.width||`calc(${100/h}% - ${(h-1)/h}rem)`,flexGrow:1,flexShrink:e.ui!=="radio"?0:1,minWidth:"240px"},className:"pb-4",children:[i.jsxRuntimeExports.jsx(c.b,{className:"mb-2",children:e.label||"Graph by"}),e.ui!=="radio"?i.jsxRuntimeExports.jsx(x.ja,{options:e.options.map(a=>({...a,value:a.label})),size:"sm",isClearable:!1,isSearchable:!0,variant:g,controlShouldRenderValue:!0,defaultValue:e.defaultValue?{...e.defaultValue,value:e.defaultValue?.label}:{...e.options[0],value:e.options[0].label},onChange:a=>{E(a?.graphSettings||{}),j(a?.dataConfiguration)}}):i.jsxRuntimeExports.jsx(c.ye,{defaultValue:e.defaultValue?.label||e.options[0].label,variant:g,onValueChange:a=>{const t=e.options[e.options.findIndex(f=>f.label===a)];E(t.graphSettings||{}),j(t.dataConfiguration)},children:e.options.map((a,t)=>i.jsxRuntimeExports.jsx(c.he,{label:a.label,value:a.label},t))})]},r)),b?.map((e,r)=>i.jsxRuntimeExports.jsxs("div",{style:{width:e.width||`calc(${100/h}% - ${(h-1)/h}rem)`,flexGrow:1,flexShrink:e.ui!=="radio"?0:1,minWidth:"240px"},className:"pb-4",children:[i.jsxRuntimeExports.jsx(c.b,{className:"mb-2",children:e.label||`Visualize ${e.chartConfigId} by`}),c.checkIfMultiple(e.chartConfigId,v||[])?e.ui!=="radio"?i.jsxRuntimeExports.jsx(x.ja,{options:e.allowedColumnIds,size:"sm",isMulti:!0,isSearchable:!0,variant:g,controlShouldRenderValue:!0,defaultValue:s?s[s.findIndex(a=>a.chartConfigId===e.chartConfigId)].columnId.map(a=>e.allowedColumnIds[e.allowedColumnIds.findIndex(t=>t.value===a)]):void 0,filterOption:x.Du(G),onChange:a=>{const t={columnId:(a||[]).map(d=>d.value),chartConfigId:e.chartConfigId},f=v?.map(d=>d.chartConfigId===t.chartConfigId?t:d);j(f)}}):i.jsxRuntimeExports.jsx(c.$,{variant:g,defaultValue:s?s[s.findIndex(a=>a.chartConfigId===e.chartConfigId)].columnId.map(a=>e.allowedColumnIds[e.allowedColumnIds.findIndex(t=>t.value===a)]).map(a=>a.value):[],onValueChange:a=>{const t={columnId:a||[],chartConfigId:e.chartConfigId},f=v?.map(d=>d.chartConfigId===t.chartConfigId?t:d);j(f)},children:e.allowedColumnIds.map((a,t)=>i.jsxRuntimeExports.jsx(c.P,{label:a.label,value:a.label},t))}):e.ui!=="radio"?i.jsxRuntimeExports.jsx(x.ja,{options:e.allowedColumnIds,size:"sm",isClearable:!1,isSearchable:!0,variant:g,controlShouldRenderValue:!0,defaultValue:s?e.allowedColumnIds[e.allowedColumnIds.findIndex(a=>a.value===s[s.findIndex(t=>t.chartConfigId===e.chartConfigId)].columnId)]:void 0,onChange:a=>{const t={columnId:a?.value,chartConfigId:e.chartConfigId},f=v?.map(d=>d.chartConfigId===t.chartConfigId?t:d);E(M(b,f)),j(f)}}):i.jsxRuntimeExports.jsx(c.ye,{variant:g,defaultValue:s?e.allowedColumnIds[e.allowedColumnIds.findIndex(a=>a.value===s[s.findIndex(t=>t.chartConfigId===e.chartConfigId)].columnId)].label:"",onValueChange:a=>{const f={columnId:e.allowedColumnIds[e.allowedColumnIds.findIndex(T=>T.label===a)].value,chartConfigId:e.chartConfigId},d=v?.map(T=>T.chartConfigId===f.chartConfigId?f:T);E(M(b,d)),j(d)},children:e.allowedColumnIds.map((a,t)=>i.jsxRuntimeExports.jsx(c.he,{label:a.label,value:a.label},t))})]},r)),V?.map((e,r)=>i.jsxRuntimeExports.jsxs("div",{style:{width:e.width||`calc(${100/h}% - ${(h-1)/h}rem)`,flexGrow:1,flexShrink:0,minWidth:"240px"},className:"pb-4",children:[i.jsxRuntimeExports.jsx(c.b,{className:"mb-2",children:e.label}),e.singleSelect?i.jsxRuntimeExports.jsx(x.ja,{options:e.availableValues,variant:g,isClearable:e.clearable===void 0?!0:e.clearable,isSearchable:!0,controlShouldRenderValue:!0,filterOption:x.Du(G),onChange:a=>{$(e.filter,a)},value:e.value,defaultValue:e.defaultValue}):i.jsxRuntimeExports.jsxs(i.jsxRuntimeExports.Fragment,{children:[e.ui!=="radio"?i.jsxRuntimeExports.jsx(x.ja,{options:e.availableValues,variant:g,size:"sm",isMulti:!0,isClearable:e.clearable===void 0?!0:e.clearable,isSearchable:!0,controlShouldRenderValue:!0,filterOption:x.Du(G),onChange:a=>{$(e.filter,a)},value:e.value,defaultValue:e.defaultValue}):i.jsxRuntimeExports.jsx(c.$,{variant:g,defaultValue:e.defaultValue?e.defaultValue.map(a=>`${a.value}`):[],value:e.value?e.value.map(a=>`${a.value}`):void 0,onValueChange:a=>{$(e.filter,e.availableValues.filter(t=>a.indexOf(`${t.value}`)!==-1))},children:e.availableValues.map((a,t)=>i.jsxRuntimeExports.jsx(c.P,{label:`${a.label}`,value:`${a.value}`},t))}),e.allowSelectAll?i.jsxRuntimeExports.jsx("button",{type:"button",className:"bg-transparent border-0 p-0 mt-2 cursor-pointer text-primary-blue-600 dark:text-primary-blue-400",onClick:()=>{$(e.filter,e.availableValues)},children:"Select all options"}):null]})]},r)),C?i.jsxRuntimeExports.jsxs("div",{style:{width:C.width||`calc(${100/h}% - ${(h-1)/h}rem)`,flexGrow:1,flexShrink:0,minWidth:"240px"},className:"pb-4",children:[i.jsxRuntimeExports.jsx(c.b,{className:"mb-2",children:C.label||"Highlight data"}),i.jsxRuntimeExports.jsx(x.ja,{options:Y,variant:g,size:"sm",isMulti:!0,isClearable:!0,isSearchable:!0,controlShouldRenderValue:!0,filterOption:x.Du(G),onChange:e=>{X(e?.map(r=>r.value))},value:R?.map(e=>({label:e,value:e})),defaultValue:C.defaultValues?.map(e=>({label:e,value:e}))})]}):null]}):null,i.jsxRuntimeExports.jsx(re.GraphEl,{graph:I,graphData:ae,graphDataConfiguration:v,debugMode:S,readableHeader:B||[],updateFilters:K,settings:{...n||{},...m,graphTitle:void 0,graphDescription:void 0,graphDownload:!1,dataDownload:!1,backgroundColor:void 0,width:void 0,height:void 0,relativeHeight:void 0,minHeight:void 0,padding:"0",theme:n?.theme,...R?{highlightedDataPoints:R,highlightedIds:R?.map(e=>`${e}`),highlightedLines:R?.map(e=>e)}:{}}})]}):i.jsxRuntimeExports.jsx("div",{className:"w-full flex justify-center p-4",children:i.jsxRuntimeExports.jsx(ne.w,{})})})}exports.SingleGraphDashboard=de;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("./index-CHPV5EwG-CTPQjnHt.cjs"),o=require("react"),te=require("./index-CyZ1lmi_.cjs"),q=require("./index-BS2TADPj.cjs"),le=require("./index-DQA8q5sC.cjs"),x=require("./DropdownSelect-Doz3mCrM.cjs"),d=require("./checkIfMultiple-wg6hJLXy.cjs"),ne=require("./Spinner-DRMBUsX7.cjs"),ie=require("./GraphContainer-d8A46BK2.cjs"),re=require("./GraphEl-BcKU0bG1.cjs"),$=require("./fetchAndParseData-l5HGMAEs.cjs"),U=require("./transformDataForAggregation-XNg0OGYE.cjs"),z=require("./getUniqValue-NX8DgwND.cjs"),se=require("./GraphHeader.cjs"),W=require("./filterData-T5DQBE9b.cjs"),oe=require("./getGraphList-CA17dvFB.cjs"),J=require("./transformDataForSelect-YmStusCI.cjs"),ue=u=>{if(u.findIndex(n=>n.chartConfigId==="yMin")!==-1&&u.findIndex(n=>n.chartConfigId==="yMax")!==-1)return u;const i=[...u];return u.findIndex(n=>n.chartConfigId==="yMin")===-1&&i.push({chartConfigId:"yMin",columnId:`${u[u.findIndex(n=>n.chartConfigId==="y")].columnId}Min`}),u.findIndex(n=>n.chartConfigId==="yMax")===-1&&i.push({chartConfigId:"yMax",columnId:`${u[u.findIndex(n=>n.chartConfigId==="y")].columnId}Max`}),i},M=(u,i)=>{const n=i?.map(D=>{const b=u?.findIndex(s=>s.chartConfigId===D.chartConfigId);if(b===-1)return{};const w=u[b]?.allowedColumnIds?.findIndex(s=>s.value===D.columnId);return w===-1?{}:u[b].allowedColumnIds[w].graphSettings||{}})||[];return Object.assign({},...n)};function de(u){const{graphSettings:i,dataSettings:n,filters:D,graphType:b,dataTransform:w,graphDataConfiguration:s,dataFilters:A,debugMode:S,dataSelectionOptions:I,advancedDataSelectionOptions:N,readableHeader:B,noOfFiltersPerRow:p=4,updateFilters:K,uiMode:f="normal",highlightDataPointSettings:C}=u,[P,F]=o.useState(void 0),[c,Q]=o.useState(void 0),[v,j]=o.useState(s),[m,V]=o.useState({}),[E,X]=o.useState(void 0),[Y,Z]=o.useState([]),H=o.useRef(null),O=o.useRef(s),[R,k]=o.useState([]),G={ignoreCase:!0,ignoreAccents:!0,trim:!0},L=o.useEffectEvent(()=>{const e=(D||[]).map(r=>({filter:r.column,label:r.label||`Filter by ${r.column}`,singleSelect:r.singleSelect,clearable:r.clearable,ui:r.ui,defaultValue:J.transformDefaultValue(r.defaultValue),value:J.transformDefaultValue(r.defaultValue),availableValues:z.getUniqValue(c,r.column).filter(a=>!r.excludeValues?.includes(`${a}`)).map(a=>({value:a,label:a})),allowSelectAll:r.allowSelectAll,width:r.width}));k(e)});o.useEffect(()=>{(async()=>{try{const r=n.dataURL?typeof n.dataURL=="string"?n.fileType==="json"?await $.fetchAndParseJSON(n.dataURL,n.columnsToArray,n.dataTransformation,S):n.fileType==="api"?await $.fetchAndTransformDataFromAPI(n.dataURL,n.apiHeaders,n.columnsToArray,n.dataTransformation,S):await $.fetchAndParseCSV(n.dataURL,n.dataTransformation,n.columnsToArray,S,n.delimiter,!0):await $.fetchAndParseMultipleDataSources(n.dataURL,n.idColumnTitle):await $.transformColumnsToArray(n.data,n.columnsToArray);Q(r)}catch(r){console.error("Data fetching error:",r)}})(),L()},[n,S]),o.useEffect(()=>{L()},[D,c]);const _=o.useEffectEvent(()=>{if(!c||R.length===0)F(c);else{const e=c.filter(r=>R.every(a=>a.value&&q.flattenDeep([a.value]).length>0?te.intersection(q.flattenDeep([r[a.filter]]),q.flattenDeep([a.value]).map(t=>t.value)).length>0:!0));F(e)}});o.useEffect(()=>{_()},[R,c]),o.useEffect(()=>{I&&V(M(I,s))},[I,s]);const ee=o.useEffectEvent(()=>{C?.column&&P&&Z(z.getUniqValue(P,C.column).filter(e=>!C?.excludeValues?.includes(`${e}`)).map(e=>({value:e,label:e})))});o.useEffect(()=>{ee()},[C]),o.useEffect(()=>{le.isEqual(O.current,s)||(j(s),O.current=s)},[s]);const y=(e,r)=>{k(a=>a.map(t=>t.filter===e?{...t,value:r}:t))},ae=c?U.transformDataForGraph(w?U.transformDataForAggregation(W.filterData(c,A||[]),w.keyColumn,w.aggregationColumnsSetting):W.filterData(c,A||[]),b,b==="lineChartWithConfidenceInterval"&&v?ue(v):v):void 0;return l.jsxRuntimeExports.jsx(ie.GraphContainer,{className:i?.classNames?.graphContainer,style:i?.styles?.graphContainer,id:i?.graphID,ref:H,"aria-label":i?.ariaLabel,backgroundColor:i?.backgroundColor??!1,theme:i?.theme||"light",language:i?.language||"en",width:i?.width,height:i?.height,padding:i?.padding,minHeight:i?.minHeight,relativeHeight:i?.relativeHeight,children:c||oe.graphList.filter(e=>e.geoHubMapPresentation).map(e=>e.graphID).indexOf(b)!==-1?l.jsxRuntimeExports.jsxs(l.jsxRuntimeExports.Fragment,{children:[m?.graphTitle||m?.graphDescription||i?.graphTitle||i?.graphDescription||i?.graphDownload||i?.dataDownload?l.jsxRuntimeExports.jsx(se.GraphHeader,{styles:{title:m?.styles?.title||i?.styles?.title,description:m?.styles?.description||i?.styles?.description},classNames:{title:m?.classNames?.title||i?.classNames?.title,description:m?.classNames?.description||i?.classNames?.description},graphTitle:m?.graphTitle||i?.graphTitle,graphDescription:m?.graphDescription||i?.graphDescription,width:m?.width||i?.width,graphDownload:i?.graphDownload?H:void 0,dataDownload:i?.dataDownload&&c&&c.length>0?c:null}):null,R.length!==0||(I||[]).length!==0||(N||[]).length!==0||C?l.jsxRuntimeExports.jsxs("div",{className:"flex flex-wrap items-start gap-x-4 gap-y-0 w-full",children:[N?.map((e,r)=>l.jsxRuntimeExports.jsxs("div",{style:{width:e.width||`calc(${100/p}% - ${(p-1)/p}rem)`,flexGrow:1,flexShrink:e.ui!=="radio"?0:1,minWidth:"240px"},className:"pb-4",children:[l.jsxRuntimeExports.jsx(d.b,{className:"mb-2",children:e.label||"Graph by"}),e.ui!=="radio"?l.jsxRuntimeExports.jsx(x.ja,{options:e.options.map(a=>({...a,value:a.label})),size:"sm",isClearable:!1,isSearchable:!0,variant:f,controlShouldRenderValue:!0,defaultValue:e.defaultValue?{...e.defaultValue,value:e.defaultValue?.label}:{...e.options[0],value:e.options[0].label},onChange:a=>{V(a?.graphSettings||{}),j(a?.dataConfiguration)}}):l.jsxRuntimeExports.jsx(d.ye,{defaultValue:e.defaultValue?.label||e.options[0].label,variant:f,onValueChange:a=>{const t=e.options[e.options.findIndex(g=>g.label===a)];V(t.graphSettings||{}),j(t.dataConfiguration)},children:e.options.map((a,t)=>l.jsxRuntimeExports.jsx(d.he,{label:a.label,value:a.label},t))})]},r)),I?.map((e,r)=>l.jsxRuntimeExports.jsxs("div",{style:{width:e.width||`calc(${100/p}% - ${(p-1)/p}rem)`,flexGrow:1,flexShrink:e.ui!=="radio"?0:1,minWidth:"240px"},className:"pb-4",children:[l.jsxRuntimeExports.jsx(d.b,{className:"mb-2",children:e.label||`Visualize ${e.chartConfigId} by`}),d.checkIfMultiple(e.chartConfigId,v||[])?e.ui!=="radio"?l.jsxRuntimeExports.jsx(x.ja,{options:e.allowedColumnIds,size:"sm",isMulti:!0,isSearchable:!0,variant:f,controlShouldRenderValue:!0,defaultValue:s?s[s.findIndex(a=>a.chartConfigId===e.chartConfigId)].columnId.map(a=>e.allowedColumnIds[e.allowedColumnIds.findIndex(t=>t.value===a)]):void 0,filterOption:x.Du(G),onChange:a=>{const t={columnId:(a||[]).map(h=>h.value),chartConfigId:e.chartConfigId},g=v?.map(h=>h.chartConfigId===t.chartConfigId?t:h);j(g)}}):l.jsxRuntimeExports.jsx(d.$,{variant:f,defaultValue:s?s[s.findIndex(a=>a.chartConfigId===e.chartConfigId)].columnId.map(a=>e.allowedColumnIds[e.allowedColumnIds.findIndex(t=>t.value===a)]).map(a=>a.value):[],onValueChange:a=>{const t={columnId:a||[],chartConfigId:e.chartConfigId},g=v?.map(h=>h.chartConfigId===t.chartConfigId?t:h);j(g)},children:e.allowedColumnIds.map((a,t)=>l.jsxRuntimeExports.jsx(d.P,{label:a.label,value:a.label},t))}):e.ui!=="radio"?l.jsxRuntimeExports.jsx(x.ja,{options:e.allowedColumnIds,size:"sm",isClearable:!1,isSearchable:!0,variant:f,controlShouldRenderValue:!0,defaultValue:s?e.allowedColumnIds[e.allowedColumnIds.findIndex(a=>a.value===s[s.findIndex(t=>t.chartConfigId===e.chartConfigId)].columnId)]:void 0,onChange:a=>{const t={columnId:a?.value,chartConfigId:e.chartConfigId},g=v?.map(h=>h.chartConfigId===t.chartConfigId?t:h);V(M(I,g)),j(g)}}):l.jsxRuntimeExports.jsx(d.ye,{variant:f,defaultValue:s?e.allowedColumnIds[e.allowedColumnIds.findIndex(a=>a.value===s[s.findIndex(t=>t.chartConfigId===e.chartConfigId)].columnId)].label:"",onValueChange:a=>{const g={columnId:e.allowedColumnIds[e.allowedColumnIds.findIndex(T=>T.label===a)].value,chartConfigId:e.chartConfigId},h=v?.map(T=>T.chartConfigId===g.chartConfigId?g:T);V(M(I,h)),j(h)},children:e.allowedColumnIds.map((a,t)=>l.jsxRuntimeExports.jsx(d.he,{label:a.label,value:a.label},t))})]},r)),R?.map((e,r)=>l.jsxRuntimeExports.jsxs("div",{style:{width:e.width||`calc(${100/p}% - ${(p-1)/p}rem)`,flexGrow:1,flexShrink:0,minWidth:"240px"},className:"pb-4",children:[l.jsxRuntimeExports.jsx(d.b,{className:"mb-2",children:e.label}),e.singleSelect?e.ui!=="radio"?l.jsxRuntimeExports.jsx(x.ja,{options:e.availableValues,variant:f,isClearable:e.clearable===void 0?!0:e.clearable,isSearchable:!0,controlShouldRenderValue:!0,filterOption:x.Du(G),onChange:a=>{y(e.filter,a)},value:e.value,defaultValue:e.defaultValue}):l.jsxRuntimeExports.jsx(d.ye,{variant:f,defaultValue:e.defaultValue.value,onValueChange:a=>{y(e.filter,e.availableValues.filter(t=>t.value===a))},children:e.availableValues.map((a,t)=>l.jsxRuntimeExports.jsx(d.he,{label:`${a.label}`,value:`${a.value}`},t))}):l.jsxRuntimeExports.jsxs(l.jsxRuntimeExports.Fragment,{children:[e.ui!=="radio"?l.jsxRuntimeExports.jsx(x.ja,{options:e.availableValues,variant:f,size:"sm",isMulti:!0,isClearable:e.clearable===void 0?!0:e.clearable,isSearchable:!0,controlShouldRenderValue:!0,filterOption:x.Du(G),onChange:a=>{y(e.filter,a)},value:e.value,defaultValue:e.defaultValue}):l.jsxRuntimeExports.jsx(d.$,{variant:f,defaultValue:e.defaultValue?e.defaultValue.map(a=>`${a.value}`):[],value:e.value?e.value.map(a=>`${a.value}`):void 0,onValueChange:a=>{y(e.filter,e.availableValues.filter(t=>a.indexOf(`${t.value}`)!==-1))},children:e.availableValues.map((a,t)=>l.jsxRuntimeExports.jsx(d.P,{label:`${a.label}`,value:`${a.value}`},t))}),e.allowSelectAll?l.jsxRuntimeExports.jsx("button",{type:"button",className:"bg-transparent border-0 p-0 mt-2 cursor-pointer text-primary-blue-600 dark:text-primary-blue-400",onClick:()=>{y(e.filter,e.availableValues)},children:"Select all options"}):null]})]},r)),C?l.jsxRuntimeExports.jsxs("div",{style:{width:C.width||`calc(${100/p}% - ${(p-1)/p}rem)`,flexGrow:1,flexShrink:0,minWidth:"240px"},className:"pb-4",children:[l.jsxRuntimeExports.jsx(d.b,{className:"mb-2",children:C.label||"Highlight data"}),l.jsxRuntimeExports.jsx(x.ja,{options:Y,variant:f,size:"sm",isMulti:!0,isClearable:!0,isSearchable:!0,controlShouldRenderValue:!0,filterOption:x.Du(G),onChange:e=>{X(e?.map(r=>r.value))},value:E?.map(e=>({label:e,value:e})),defaultValue:C.defaultValues?.map(e=>({label:e,value:e}))})]}):null]}):null,l.jsxRuntimeExports.jsx(re.GraphEl,{graph:b,graphData:ae,graphDataConfiguration:v,debugMode:S,readableHeader:B||[],updateFilters:K,settings:{...i||{},...m,graphTitle:void 0,graphDescription:void 0,graphDownload:!1,dataDownload:!1,backgroundColor:void 0,width:void 0,height:void 0,relativeHeight:void 0,minHeight:void 0,padding:"0",theme:i?.theme,...E?{highlightedDataPoints:E,highlightedIds:E?.map(e=>`${e}`),highlightedLines:E?.map(e=>e)}:{}}})]}):l.jsxRuntimeExports.jsx("div",{className:"w-full flex justify-center p-4",children:l.jsxRuntimeExports.jsx(ne.w,{})})})}exports.SingleGraphDashboard=de;
|
|
2
2
|
//# sourceMappingURL=SingleGraphDashboard.cjs.map
|