datastake-daf 0.6.273 β 0.6.274
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/components/index.js +40 -265
- package/dist/utils/index.js +2 -2
- package/package.json +1 -1
- package/src/@daf/core/components/Dashboard/Globe/Globe.stories.js +5 -30
- package/src/@daf/core/components/Dashboard/Globe/hook.js +7 -63
- package/src/@daf/core/components/Dashboard/Globe/index.jsx +6 -24
- package/src/@daf/core/components/Dashboard/Globe/style.js +23 -7
- package/src/@daf/utils/tooltip.js +2 -2
- package/src/index.js +0 -1
- package/src/@daf/core/components/Dashboard/Globe/README.md +0 -106
- package/src/@daf/core/components/Dashboard/Globe/SimpleGlobe.jsx +0 -259
- package/src/@daf/core/components/Dashboard/Globe/SimpleGlobe.stories.js +0 -202
- package/src/@daf/core/components/Dashboard/Globe/SimpleGlobeDebug.jsx +0 -85
- package/src/@daf/core/components/Dashboard/Globe/SimpleGlobeExample.jsx +0 -75
- package/src/@daf/core/components/Dashboard/Globe/SimpleGlobeTest.jsx +0 -48
- package/src/@daf/core/components/Dashboard/Globe/storyConfig.js +0 -243
- package/src/@daf/core/components/Dashboard/Globe/storyConfig1.js +0 -354
package/dist/components/index.js
CHANGED
|
@@ -17106,13 +17106,13 @@ const renderTooltipJsx = ({
|
|
|
17106
17106
|
}
|
|
17107
17107
|
})
|
|
17108
17108
|
}), /*#__PURE__*/jsxRuntime.jsx(antd.Tooltip, {
|
|
17109
|
-
title: item.label,
|
|
17109
|
+
title: item.tooltipLabel || item.label,
|
|
17110
17110
|
children: /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
17111
17111
|
className: "daf-tooltip-name",
|
|
17112
17112
|
children: item.label
|
|
17113
17113
|
})
|
|
17114
17114
|
}), /*#__PURE__*/jsxRuntime.jsx(antd.Tooltip, {
|
|
17115
|
-
title: item.value,
|
|
17115
|
+
title: item.tooltipValue || item.value,
|
|
17116
17116
|
children: /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
17117
17117
|
style: {
|
|
17118
17118
|
height: "20px",
|
|
@@ -19363,22 +19363,38 @@ const Style$A = dt.div`
|
|
|
19363
19363
|
height: 100%;
|
|
19364
19364
|
}
|
|
19365
19365
|
|
|
19366
|
-
/* Narrow marker styling used by legacy components; avoid width/height overrides for SimpleGlobe */
|
|
19367
19366
|
.map-marker {
|
|
19368
19367
|
text-align: center;
|
|
19368
|
+
width 100%;
|
|
19369
|
+
height: 100%;
|
|
19369
19370
|
border-radius: 50% 50% 50% 0;
|
|
19370
19371
|
|
|
19371
19372
|
span {
|
|
19372
19373
|
color: white;
|
|
19373
19374
|
}
|
|
19374
19375
|
|
|
19375
|
-
&.rounded {
|
|
19376
|
-
|
|
19377
|
-
|
|
19378
|
-
}
|
|
19376
|
+
&.rounded {
|
|
19377
|
+
border-radius: 100%;
|
|
19378
|
+
}
|
|
19379
19379
|
|
|
19380
|
-
|
|
19381
|
-
|
|
19380
|
+
&.incident {
|
|
19381
|
+
border-radius: 100%;
|
|
19382
|
+
|
|
19383
|
+
.main {
|
|
19384
|
+
border-radius: 100%;
|
|
19385
|
+
height: 100%;
|
|
19386
|
+
display: flex;
|
|
19387
|
+
flex-direction: column;
|
|
19388
|
+
justify-content: center;
|
|
19389
|
+
}
|
|
19390
|
+
}
|
|
19391
|
+
|
|
19392
|
+
&.marker {
|
|
19393
|
+
background: var(--color-primary-70);
|
|
19394
|
+
border: 1px solid white;
|
|
19395
|
+
box-shadow: 0px 3.45px 3.45px 0px #00000029;
|
|
19396
|
+
}
|
|
19397
|
+
}
|
|
19382
19398
|
|
|
19383
19399
|
#globe {
|
|
19384
19400
|
flex: 1;
|
|
@@ -19912,26 +19928,14 @@ const useGlobe = ({
|
|
|
19912
19928
|
const addedSources = React.useRef(new Set());
|
|
19913
19929
|
const isMounted = React.useRef(true);
|
|
19914
19930
|
const addAllDataToMap = React.useCallback(() => {
|
|
19915
|
-
|
|
19916
|
-
console.log('π [GLOBE HOOK] data:', data);
|
|
19917
|
-
console.log('π [GLOBE HOOK] mapRef exists:', !!mapRef);
|
|
19918
|
-
console.log('π [GLOBE HOOK] style loaded:', mapRef?.isStyleLoaded());
|
|
19919
|
-
if (!data || !mapRef) {
|
|
19920
|
-
console.log('β [GLOBE HOOK] addAllDataToMap early return - missing data or mapRef');
|
|
19921
|
-
return;
|
|
19922
|
-
}
|
|
19923
|
-
if (!mapRef.isStyleLoaded()) {
|
|
19924
|
-
console.log('β³ [GLOBE HOOK] Style not loaded yet, retrying in 100ms...');
|
|
19925
|
-
setTimeout(() => {
|
|
19926
|
-
addAllDataToMap();
|
|
19927
|
-
}, 100);
|
|
19931
|
+
if (!data || !mapRef || !mapRef.isStyleLoaded()) {
|
|
19928
19932
|
return;
|
|
19929
19933
|
}
|
|
19934
|
+
|
|
19935
|
+
// Prevent multiple calls with empty data
|
|
19930
19936
|
if (data.length === 0) {
|
|
19931
|
-
console.log('β [GLOBE HOOK] addAllDataToMap early return - no data');
|
|
19932
19937
|
return;
|
|
19933
19938
|
}
|
|
19934
|
-
console.log('β
[GLOBE HOOK] Starting to add markers to map...');
|
|
19935
19939
|
|
|
19936
19940
|
// Clear existing markers using functional update to avoid dependency issues
|
|
19937
19941
|
setMapMarkers(currentMarkers => {
|
|
@@ -19983,13 +19987,8 @@ const useGlobe = ({
|
|
|
19983
19987
|
if (data && mapRef) {
|
|
19984
19988
|
const newMarkers = [];
|
|
19985
19989
|
const maxTotal = Math.max(...(data || []).map(d => d.total || 0));
|
|
19986
|
-
console.log('π― [GLOBE HOOK] Processing data items:', data.length);
|
|
19987
19990
|
data.forEach((d, i) => {
|
|
19988
|
-
console.log(`π― [GLOBE HOOK] Processing item ${i}:`, d);
|
|
19989
|
-
console.log(`π― [GLOBE HOOK] Item ${i} marker:`, d?.marker);
|
|
19990
|
-
console.log(`π― [GLOBE HOOK] Item ${i} lat/lng:`, d?.marker?.lat, d?.marker?.lng);
|
|
19991
19991
|
if (d?.marker?.lat && d?.marker?.lng) {
|
|
19992
|
-
console.log(`β
[GLOBE HOOK] Item ${i} has valid coordinates, creating marker...`);
|
|
19993
19992
|
let marker;
|
|
19994
19993
|
let iconClassName = "";
|
|
19995
19994
|
let iconSize = [25, 25];
|
|
@@ -20069,7 +20068,6 @@ const useGlobe = ({
|
|
|
20069
20068
|
el.style.fontWeight = 'bold';
|
|
20070
20069
|
el.innerHTML = `<span>${d.total || 0}</span>`;
|
|
20071
20070
|
marker = new mapboxgl.Marker(el).setLngLat([d.marker.lng, d.marker.lat]).setPopup(new mapboxgl.Popup().setDOMContent(div)).addTo(mapRef);
|
|
20072
|
-
console.log(`π [GLOBE HOOK] Marker ${i} added to map at:`, [d.marker.lng, d.marker.lat]);
|
|
20073
20071
|
} else if (type === "territory") {
|
|
20074
20072
|
// Handle territory polygons
|
|
20075
20073
|
if (d.area && Array.isArray(d.area)) {
|
|
@@ -20139,7 +20137,6 @@ const useGlobe = ({
|
|
|
20139
20137
|
}));
|
|
20140
20138
|
roots.current.push(root);
|
|
20141
20139
|
marker = new mapboxgl.Marker(el).setLngLat([d.marker.lng, d.marker.lat]).setPopup(new mapboxgl.Popup().setDOMContent(div)).addTo(mapRef);
|
|
20142
|
-
console.log(`π [GLOBE HOOK] Default marker ${i} added to map at:`, [d.marker.lng, d.marker.lat]);
|
|
20143
20140
|
}
|
|
20144
20141
|
|
|
20145
20142
|
// Add click handler
|
|
@@ -20173,7 +20170,6 @@ const useGlobe = ({
|
|
|
20173
20170
|
mapboxgl.accessToken = MAP_TOKEN;
|
|
20174
20171
|
|
|
20175
20172
|
// Create the map with Mapbox GL JS - 3D globe
|
|
20176
|
-
console.log('πΊοΈ [GLOBE HOOK] Creating map with style:', STYLE_URL);
|
|
20177
20173
|
const map = new mapboxgl.Map({
|
|
20178
20174
|
container: container.current,
|
|
20179
20175
|
style: STYLE_URL,
|
|
@@ -20192,13 +20188,8 @@ const useGlobe = ({
|
|
|
20192
20188
|
|
|
20193
20189
|
// Configure the map when style loads
|
|
20194
20190
|
map.on('style.load', () => {
|
|
20195
|
-
console.log('π¨ [GLOBE HOOK] Style loaded event triggered');
|
|
20196
|
-
console.log('π¨ [GLOBE HOOK] Map style loaded:', map.isStyleLoaded());
|
|
20197
|
-
|
|
20198
20191
|
// Wait a bit for the style to fully load
|
|
20199
20192
|
setTimeout(() => {
|
|
20200
|
-
console.log('π¨ [GLOBE HOOK] After timeout - Map style loaded:', map.isStyleLoaded());
|
|
20201
|
-
|
|
20202
20193
|
// Set fog for the space background effect with stars - simplified to avoid errors
|
|
20203
20194
|
try {
|
|
20204
20195
|
map.setFog({
|
|
@@ -20294,10 +20285,9 @@ const useGlobe = ({
|
|
|
20294
20285
|
|
|
20295
20286
|
// Add navigation controls
|
|
20296
20287
|
map.addControl(new mapboxgl.NavigationControl(), 'top-right');
|
|
20297
|
-
console.log('πΊοΈ [GLOBE HOOK] Map created successfully');
|
|
20298
20288
|
return map;
|
|
20299
20289
|
} catch (error) {
|
|
20300
|
-
console.error('
|
|
20290
|
+
console.error('Error creating Mapbox GL JS globe:', error);
|
|
20301
20291
|
return null;
|
|
20302
20292
|
}
|
|
20303
20293
|
}, []);
|
|
@@ -20310,12 +20300,9 @@ const useGlobe = ({
|
|
|
20310
20300
|
// }, [initialMarkerSetIsDone]);
|
|
20311
20301
|
|
|
20312
20302
|
React.useEffect(() => {
|
|
20313
|
-
console.log('π [GLOBE HOOK] useEffect for map creation - mapRef:', !!mapRef);
|
|
20314
20303
|
if (!mapRef) {
|
|
20315
|
-
console.log('π [GLOBE HOOK] Creating map instance...');
|
|
20316
20304
|
const instance = createInstance();
|
|
20317
20305
|
if (instance) {
|
|
20318
|
-
console.log('π [GLOBE HOOK] Map instance created, setting mapRef');
|
|
20319
20306
|
setMapRef(instance);
|
|
20320
20307
|
|
|
20321
20308
|
// Add comprehensive resize detection for Mapbox GL JS responsiveness
|
|
@@ -20396,22 +20383,14 @@ const useGlobe = ({
|
|
|
20396
20383
|
}
|
|
20397
20384
|
}, [polygon, mapRef]);
|
|
20398
20385
|
React.useEffect(() => {
|
|
20399
|
-
console.log('π₯ [GLOBE HOOK] allData received:', allData);
|
|
20400
|
-
console.log('π₯ [GLOBE HOOK] allData length:', allData?.length);
|
|
20401
20386
|
if (allData) {
|
|
20402
20387
|
if (allData.length === 0) {
|
|
20403
|
-
console.log('β οΈ [GLOBE HOOK] Empty data array');
|
|
20404
20388
|
setEmptyStateIsVisible(true);
|
|
20405
20389
|
} else if (emptyStateIsVisible) {
|
|
20406
20390
|
setEmptyStateIsVisible(false);
|
|
20407
20391
|
}
|
|
20408
|
-
|
|
20409
|
-
const filteredData = filterValidGPS(allData);
|
|
20410
|
-
console.log('π [GLOBE HOOK] filtered data result:', filteredData);
|
|
20411
|
-
console.log('π [GLOBE HOOK] filtered data length:', filteredData.length);
|
|
20412
|
-
setData(filteredData);
|
|
20392
|
+
setData(filterValidGPS(allData));
|
|
20413
20393
|
} else {
|
|
20414
|
-
console.log('β [GLOBE HOOK] No allData provided');
|
|
20415
20394
|
setData(null);
|
|
20416
20395
|
}
|
|
20417
20396
|
}, [allData, emptyStateIsVisible]);
|
|
@@ -20441,19 +20420,7 @@ const useGlobe = ({
|
|
|
20441
20420
|
}
|
|
20442
20421
|
}, [user, mapRef, allData]);
|
|
20443
20422
|
React.useEffect(() => {
|
|
20444
|
-
|
|
20445
|
-
mapRef: !!mapRef,
|
|
20446
|
-
data: !!data,
|
|
20447
|
-
dataLength: data?.length,
|
|
20448
|
-
initialMarkerSetIsDone,
|
|
20449
|
-
styleLoaded: mapRef?.isStyleLoaded()
|
|
20450
|
-
});
|
|
20451
|
-
if (mapRef && data && !initialMarkerSetIsDone) {
|
|
20452
|
-
console.log('π [GLOBE HOOK] Attempting to add markers...');
|
|
20453
|
-
console.log('π [GLOBE HOOK] Style loaded check:', mapRef.isStyleLoaded());
|
|
20454
|
-
|
|
20455
|
-
// Try to add markers immediately, and if style isn't loaded,
|
|
20456
|
-
// the addAllDataToMap function will handle it
|
|
20423
|
+
if (mapRef && data && !initialMarkerSetIsDone && mapRef.isStyleLoaded()) {
|
|
20457
20424
|
setInitialMarkerSetIsDone(true);
|
|
20458
20425
|
addAllDataToMap();
|
|
20459
20426
|
}
|
|
@@ -20666,7 +20633,7 @@ function Globe(_ref) {
|
|
|
20666
20633
|
renderSider = null,
|
|
20667
20634
|
renderMarker = null,
|
|
20668
20635
|
type = "default",
|
|
20669
|
-
showSider =
|
|
20636
|
+
showSider = true,
|
|
20670
20637
|
filtersConfig,
|
|
20671
20638
|
onFilterChange = () => {},
|
|
20672
20639
|
isSatellite = false,
|
|
@@ -20676,29 +20643,15 @@ function Globe(_ref) {
|
|
|
20676
20643
|
onUnmount
|
|
20677
20644
|
} = _ref;
|
|
20678
20645
|
// Map data to include marker coordinates
|
|
20679
|
-
const mappedData = React.useMemo(() => {
|
|
20680
|
-
|
|
20681
|
-
|
|
20682
|
-
|
|
20683
|
-
|
|
20684
|
-
|
|
20685
|
-
|
|
20686
|
-
const mapped = data.map((d, i) => {
|
|
20687
|
-
var _d$gps, _d$gps2;
|
|
20688
|
-
console.log("\uD83D\uDCCA [GLOBE COMPONENT] Mapping item ".concat(i, ":"), d);
|
|
20689
|
-
console.log("\uD83D\uDCCA [GLOBE COMPONENT] Item ".concat(i, " GPS:"), d === null || d === void 0 ? void 0 : d.gps);
|
|
20690
|
-
const result = _objectSpread2(_objectSpread2({}, d), {}, {
|
|
20691
|
-
marker: {
|
|
20692
|
-
lat: d === null || d === void 0 || (_d$gps = d.gps) === null || _d$gps === void 0 ? void 0 : _d$gps.latitude,
|
|
20693
|
-
lng: d === null || d === void 0 || (_d$gps2 = d.gps) === null || _d$gps2 === void 0 ? void 0 : _d$gps2.longitude
|
|
20694
|
-
}
|
|
20695
|
-
});
|
|
20696
|
-
console.log("\uD83D\uDCCA [GLOBE COMPONENT] Item ".concat(i, " mapped result:"), result);
|
|
20697
|
-
return result;
|
|
20646
|
+
const mappedData = React.useMemo(() => data.map(d => {
|
|
20647
|
+
var _d$gps, _d$gps2;
|
|
20648
|
+
return _objectSpread2(_objectSpread2({}, d), {}, {
|
|
20649
|
+
marker: {
|
|
20650
|
+
lat: d === null || d === void 0 || (_d$gps = d.gps) === null || _d$gps === void 0 ? void 0 : _d$gps.latitude,
|
|
20651
|
+
lng: d === null || d === void 0 || (_d$gps2 = d.gps) === null || _d$gps2 === void 0 ? void 0 : _d$gps2.longitude
|
|
20652
|
+
}
|
|
20698
20653
|
});
|
|
20699
|
-
|
|
20700
|
-
return mapped;
|
|
20701
|
-
}, [data]);
|
|
20654
|
+
}), [data]);
|
|
20702
20655
|
|
|
20703
20656
|
// Get resize context for sidebar state changes
|
|
20704
20657
|
const {
|
|
@@ -20882,183 +20835,6 @@ Globe.propTypes = {
|
|
|
20882
20835
|
nameAsSiderTitle: PropTypes__default["default"].bool
|
|
20883
20836
|
};
|
|
20884
20837
|
|
|
20885
|
-
const SimpleGlobe = _ref => {
|
|
20886
|
-
let {
|
|
20887
|
-
projects = [],
|
|
20888
|
-
mapConfig = {},
|
|
20889
|
-
showSider = false,
|
|
20890
|
-
onProjectClick = () => {},
|
|
20891
|
-
type = "default",
|
|
20892
|
-
color = "var(--color-primary-60)"
|
|
20893
|
-
} = _ref;
|
|
20894
|
-
const mapContainer = React.useRef(null);
|
|
20895
|
-
const map = React.useRef(null);
|
|
20896
|
-
React.useEffect(() => {
|
|
20897
|
-
if (map.current) return; // Initialize map only once
|
|
20898
|
-
|
|
20899
|
-
console.log('πΊοΈ [SIMPLE GLOBE] Creating map...');
|
|
20900
|
-
|
|
20901
|
-
// Set Mapbox access token
|
|
20902
|
-
mapboxgl.accessToken = 'pk.eyJ1IjoicmVkaXM5OTkiLCJhIjoiY2x4YWV5MzA5MmtuZzJpcXM5Y201Z2E2YiJ9.m5bwPg-Tj4Akesl1yQUa3w';
|
|
20903
|
-
|
|
20904
|
-
// Create map with custom Straatos style
|
|
20905
|
-
map.current = new mapboxgl.Map({
|
|
20906
|
-
container: mapContainer.current,
|
|
20907
|
-
style: 'mapbox://styles/pietragottardo/cm9tt9zfi00d101pg1vdx26si',
|
|
20908
|
-
center: [0, 0],
|
|
20909
|
-
zoom: mapConfig.maxZoom || 3,
|
|
20910
|
-
projection: 'globe',
|
|
20911
|
-
attributionControl: false
|
|
20912
|
-
});
|
|
20913
|
-
|
|
20914
|
-
// Add markers when map loads
|
|
20915
|
-
map.current.on('load', () => {
|
|
20916
|
-
console.log('πΊοΈ [SIMPLE GLOBE] Map loaded, adding markers...');
|
|
20917
|
-
|
|
20918
|
-
// Hide Mapbox logo and attribution completely
|
|
20919
|
-
map.current.getContainer();
|
|
20920
|
-
const style = document.createElement('style');
|
|
20921
|
-
style.textContent = "\n .mapboxgl-ctrl-logo,\n .mapboxgl-ctrl-attrib,\n .mapboxgl-ctrl-bottom-left,\n .mapboxgl-ctrl-bottom-right {\n display: none !important;\n }\n .mapboxgl-canvas-container {\n overflow: hidden !important;\n }\n .mapboxgl-canvas {\n overflow: hidden !important;\n }\n ";
|
|
20922
|
-
document.head.appendChild(style);
|
|
20923
|
-
|
|
20924
|
-
// Set the space background with stars
|
|
20925
|
-
try {
|
|
20926
|
-
map.current.setFog({
|
|
20927
|
-
'color': 'rgb(0, 0, 0)',
|
|
20928
|
-
'high-color': 'rgb(0, 0, 0)',
|
|
20929
|
-
'horizon-blend': 0.1,
|
|
20930
|
-
'space-color': 'rgb(0, 0, 0)',
|
|
20931
|
-
'star-intensity': 0.6
|
|
20932
|
-
});
|
|
20933
|
-
console.log('β¨ [SIMPLE GLOBE] Space background with stars set');
|
|
20934
|
-
} catch (e) {
|
|
20935
|
-
console.log('β οΈ [SIMPLE GLOBE] Could not set fog, trying alternative...');
|
|
20936
|
-
// Fallback: try simpler fog configuration
|
|
20937
|
-
try {
|
|
20938
|
-
map.current.setFog({
|
|
20939
|
-
'color': 'rgb(0, 0, 0)',
|
|
20940
|
-
'high-color': 'rgb(0, 0, 0)',
|
|
20941
|
-
'horizon-blend': 0.1
|
|
20942
|
-
});
|
|
20943
|
-
console.log('β¨ [SIMPLE GLOBE] Alternative space background set');
|
|
20944
|
-
} catch (e2) {
|
|
20945
|
-
console.log('β οΈ [SIMPLE GLOBE] Could not set any fog configuration');
|
|
20946
|
-
}
|
|
20947
|
-
}
|
|
20948
|
-
|
|
20949
|
-
// Calculate bounds to fit all markers
|
|
20950
|
-
const bounds = new mapboxgl.LngLatBounds();
|
|
20951
|
-
let hasValidCoordinates = false;
|
|
20952
|
-
projects.forEach((project, index) => {
|
|
20953
|
-
var _project$author;
|
|
20954
|
-
console.log("\uD83D\uDCCD [SIMPLE GLOBE] Adding marker ".concat(index, ":"), project);
|
|
20955
|
-
|
|
20956
|
-
// Create marker element based on type
|
|
20957
|
-
const el = document.createElement('div');
|
|
20958
|
-
// Use a scoped class to avoid picking up broad styles like `.map-marker { width:100% }`
|
|
20959
|
-
el.className = 'daf-globe-marker';
|
|
20960
|
-
el.style.cursor = 'pointer';
|
|
20961
|
-
el.style.boxShadow = '0px 3.45px 3.45px 0px #00000029';
|
|
20962
|
-
el.style.display = 'flex';
|
|
20963
|
-
el.style.alignItems = 'center';
|
|
20964
|
-
el.style.justifyContent = 'center';
|
|
20965
|
-
if (type === "location") {
|
|
20966
|
-
// Location marker - SVG map pin style
|
|
20967
|
-
el.style.width = '28px';
|
|
20968
|
-
el.style.height = '33px';
|
|
20969
|
-
el.innerHTML = "\n <svg\n width=\"28\"\n height=\"33\"\n viewBox=\"0 0 28 33\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M5.14346 4.87419C10.0688 -0.15896 18.0528 -0.162058 22.9757 4.86861C27.6563 9.65161 27.8841 17.2616 23.6622 22.3255H23.6608C23.427 22.6141 23.1808 22.894 22.9211 23.1623L14.0671 32.2101L5.44057 23.3948L5.13868 23.096C0.215857 18.0655 0.218422 9.90737 5.14346 4.87419Z\"\n fill=\"".concat(color, "\"\n stroke=\"white\"\n />\n </svg>\n ");
|
|
20970
|
-
} else {
|
|
20971
|
-
// Default circular marker style
|
|
20972
|
-
el.style.width = '30px';
|
|
20973
|
-
el.style.height = '30px';
|
|
20974
|
-
el.style.backgroundColor = color;
|
|
20975
|
-
el.style.borderRadius = '50%';
|
|
20976
|
-
el.style.border = '2px solid white';
|
|
20977
|
-
el.style.color = 'white';
|
|
20978
|
-
el.style.fontWeight = 'bold';
|
|
20979
|
-
el.style.fontSize = '14px';
|
|
20980
|
-
el.style.textAlign = 'center';
|
|
20981
|
-
el.style.lineHeight = '1';
|
|
20982
|
-
el.innerHTML = "<span style=\"display: block; line-height: 1;\">".concat(project.percentageCompletion || 0, "</span>");
|
|
20983
|
-
}
|
|
20984
|
-
|
|
20985
|
-
// Create popup content using the same structure as minesitemap
|
|
20986
|
-
const popupContent = "\n <div class=\"daf-tooltip-cont\">\n <div class=\"daf-tooltip-head\">\n <div class=\"daf-tooltip-title\">\n <div>\n <h4>".concat(project.name, "</h4>\n <h5>").concat(project.sectoralScope || 'Project', "</h5>\n </div>\n </div>\n </div>\n <div class=\"daf-tooltip-list\">\n <div class=\"daf-tooltip-list-item\">\n <span class=\"daf-tooltip-name\">Country</span>\n <span class=\"daf-tooltip-value\">").concat(project.country || 'N/A', "</span>\n </div>\n <div class=\"daf-tooltip-list-item\">\n <span class=\"daf-tooltip-name\">Completion</span>\n <span class=\"daf-tooltip-value\">").concat(project.percentageCompletion || 0, "%</span>\n </div>\n <div class=\"daf-tooltip-list-item\">\n <span class=\"daf-tooltip-name\">Author</span>\n <span class=\"daf-tooltip-value\">").concat(((_project$author = project.author) === null || _project$author === void 0 ? void 0 : _project$author.name) || 'N/A', "</span>\n </div>\n <div class=\"daf-tooltip-list-item\">\n <span class=\"daf-tooltip-name\">ID</span>\n <span class=\"daf-tooltip-value\">").concat(project.datastakeId || 'N/A', "</span>\n </div>\n </div>\n </div>\n ");
|
|
20987
|
-
|
|
20988
|
-
// Create popup
|
|
20989
|
-
const popup = new mapboxgl.Popup({
|
|
20990
|
-
offset: 25,
|
|
20991
|
-
closeButton: true,
|
|
20992
|
-
closeOnClick: false
|
|
20993
|
-
}).setHTML(popupContent);
|
|
20994
|
-
|
|
20995
|
-
// Ensure coordinates are valid numbers
|
|
20996
|
-
const lng = Number(project.longitude);
|
|
20997
|
-
const lat = Number(project.latitude);
|
|
20998
|
-
console.log("\uD83D\uDCCD [SIMPLE GLOBE] Marker ".concat(index, " coordinates:"), {
|
|
20999
|
-
lng,
|
|
21000
|
-
lat
|
|
21001
|
-
});
|
|
21002
|
-
|
|
21003
|
-
// Validate coordinates
|
|
21004
|
-
if (isNaN(lng) || isNaN(lat) || lng < -180 || lng > 180 || lat < -90 || lat > 90) {
|
|
21005
|
-
console.error("\u274C [SIMPLE GLOBE] Invalid coordinates for project ".concat(index, ":"), {
|
|
21006
|
-
lng,
|
|
21007
|
-
lat
|
|
21008
|
-
});
|
|
21009
|
-
return;
|
|
21010
|
-
}
|
|
21011
|
-
|
|
21012
|
-
// Add coordinates to bounds
|
|
21013
|
-
bounds.extend([lng, lat]);
|
|
21014
|
-
hasValidCoordinates = true;
|
|
21015
|
-
|
|
21016
|
-
// Add marker to map with proper coordinate order [lng, lat]
|
|
21017
|
-
new mapboxgl.Marker(el).setLngLat([lng, lat]).setPopup(popup).addTo(map.current);
|
|
21018
|
-
|
|
21019
|
-
// Add click handler
|
|
21020
|
-
el.addEventListener('click', () => {
|
|
21021
|
-
console.log('π [SIMPLE GLOBE] Marker clicked:', project);
|
|
21022
|
-
onProjectClick(project);
|
|
21023
|
-
});
|
|
21024
|
-
console.log("\u2705 [SIMPLE GLOBE] Marker ".concat(index, " added at:"), [lng, lat]);
|
|
21025
|
-
});
|
|
21026
|
-
|
|
21027
|
-
// Fit map to show all markers if we have valid coordinates
|
|
21028
|
-
if (hasValidCoordinates && !bounds.isEmpty()) {
|
|
21029
|
-
console.log('πΊοΈ [SIMPLE GLOBE] Fitting map to bounds:', bounds);
|
|
21030
|
-
map.current.fitBounds(bounds, {
|
|
21031
|
-
padding: {
|
|
21032
|
-
top: 20,
|
|
21033
|
-
bottom: 20,
|
|
21034
|
-
left: 20,
|
|
21035
|
-
right: 20
|
|
21036
|
-
},
|
|
21037
|
-
maxZoom: 6,
|
|
21038
|
-
duration: 1000
|
|
21039
|
-
});
|
|
21040
|
-
}
|
|
21041
|
-
});
|
|
21042
|
-
return () => {
|
|
21043
|
-
if (map.current) {
|
|
21044
|
-
map.current.remove();
|
|
21045
|
-
map.current = null;
|
|
21046
|
-
}
|
|
21047
|
-
};
|
|
21048
|
-
}, [projects, onProjectClick, mapConfig]);
|
|
21049
|
-
return /*#__PURE__*/jsxRuntime.jsx(Style$A, {
|
|
21050
|
-
children: /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
21051
|
-
ref: mapContainer,
|
|
21052
|
-
style: {
|
|
21053
|
-
width: '100%',
|
|
21054
|
-
height: '500px',
|
|
21055
|
-
overflow: 'hidden',
|
|
21056
|
-
position: 'relative'
|
|
21057
|
-
}
|
|
21058
|
-
})
|
|
21059
|
-
});
|
|
21060
|
-
};
|
|
21061
|
-
|
|
21062
20838
|
function WidgetPlaceholder(_ref) {
|
|
21063
20839
|
let {
|
|
21064
20840
|
icon = "",
|
|
@@ -61832,7 +61608,6 @@ exports.SelectFiltersTimeFrame = Timeframe;
|
|
|
61832
61608
|
exports.SettingsPopover = SettingsPopover;
|
|
61833
61609
|
exports.Sidenav = Sidenav;
|
|
61834
61610
|
exports.SidenavMenu = SidenavMenu;
|
|
61835
|
-
exports.SimpleGlobe = SimpleGlobe;
|
|
61836
61611
|
exports.StackChart = StackChart;
|
|
61837
61612
|
exports.StakeholderMappings = index$1;
|
|
61838
61613
|
exports.Steps = DAFSteps;
|
package/dist/utils/index.js
CHANGED
|
@@ -3479,13 +3479,13 @@ const renderTooltipJsx = ({
|
|
|
3479
3479
|
}
|
|
3480
3480
|
})
|
|
3481
3481
|
}), /*#__PURE__*/jsxRuntime.jsx(antd.Tooltip, {
|
|
3482
|
-
title: item.label,
|
|
3482
|
+
title: item.tooltipLabel || item.label,
|
|
3483
3483
|
children: /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
3484
3484
|
className: "daf-tooltip-name",
|
|
3485
3485
|
children: item.label
|
|
3486
3486
|
})
|
|
3487
3487
|
}), /*#__PURE__*/jsxRuntime.jsx(antd.Tooltip, {
|
|
3488
|
-
title: item.value,
|
|
3488
|
+
title: item.tooltipValue || item.value,
|
|
3489
3489
|
children: /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
3490
3490
|
style: {
|
|
3491
3491
|
height: "20px",
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@ import Globe from "./index";
|
|
|
2
2
|
import ThemeLayout from "../../ThemeLayout";
|
|
3
3
|
import Widget from "../Widget";
|
|
4
4
|
|
|
5
|
-
import * as configs from "
|
|
5
|
+
import * as configs from "../Map/storyConfig";
|
|
6
6
|
|
|
7
7
|
export default {
|
|
8
8
|
title: "Dashboard/Globe",
|
|
@@ -29,14 +29,14 @@ export default {
|
|
|
29
29
|
export const DefaultGlobe = {
|
|
30
30
|
name: "Default Globe",
|
|
31
31
|
args: {
|
|
32
|
-
...configs.
|
|
32
|
+
...configs.DefaultMapConfig,
|
|
33
33
|
},
|
|
34
34
|
};
|
|
35
35
|
|
|
36
36
|
export const SatelliteGlobe = {
|
|
37
37
|
name: "Satellite Globe",
|
|
38
38
|
args: {
|
|
39
|
-
...configs.
|
|
39
|
+
...configs.DefaultMapConfig,
|
|
40
40
|
isSatellite: true,
|
|
41
41
|
},
|
|
42
42
|
};
|
|
@@ -44,19 +44,11 @@ export const SatelliteGlobe = {
|
|
|
44
44
|
export const TerritoryGlobe = {
|
|
45
45
|
name: "Territory Globe",
|
|
46
46
|
args: {
|
|
47
|
-
...configs.
|
|
47
|
+
...configs.TerritoryMapConfig,
|
|
48
48
|
type: "territory",
|
|
49
49
|
},
|
|
50
50
|
};
|
|
51
51
|
|
|
52
|
-
export const StakeholderGlobe = {
|
|
53
|
-
name: "Stakeholder Globe",
|
|
54
|
-
args: {
|
|
55
|
-
...configs.StakeholderGlobeConfig,
|
|
56
|
-
type: "stakeholder",
|
|
57
|
-
},
|
|
58
|
-
};
|
|
59
|
-
|
|
60
52
|
export const EventGlobe = {
|
|
61
53
|
name: "Event Globe",
|
|
62
54
|
args: {
|
|
@@ -65,27 +57,10 @@ export const EventGlobe = {
|
|
|
65
57
|
},
|
|
66
58
|
};
|
|
67
59
|
|
|
68
|
-
export const ChainGlobe = {
|
|
69
|
-
name: "Supply Chain Globe",
|
|
70
|
-
args: {
|
|
71
|
-
...configs.ChainGlobeConfig,
|
|
72
|
-
type: "chain",
|
|
73
|
-
},
|
|
74
|
-
};
|
|
75
|
-
|
|
76
60
|
export const LocationGlobe = {
|
|
77
61
|
name: "Location Globe",
|
|
78
62
|
args: {
|
|
79
|
-
...configs.
|
|
63
|
+
...configs.DefaultMapConfig,
|
|
80
64
|
type: "location",
|
|
81
65
|
},
|
|
82
66
|
};
|
|
83
|
-
|
|
84
|
-
export const ProjectGlobe = {
|
|
85
|
-
name: "Project Globe",
|
|
86
|
-
args: {
|
|
87
|
-
...configs.ProjectGlobeConfig,
|
|
88
|
-
type: "project",
|
|
89
|
-
},
|
|
90
|
-
};
|
|
91
|
-
|