@kando-env/kando-ui 1.2.122 → 1.2.123
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/lib/Widgets/Map/Map.js +40 -163
- package/lib/Widgets/Map/MapUtils.js +102 -0
- package/lib/Widgets/Map/areas/AreaPolygon.js +2 -2
- package/lib/Widgets/Map/events/Event.js +69 -0
- package/lib/Widgets/Map/events/EventIndicator.js +21 -46
- package/lib/Widgets/Map/events/EventPath.js +16 -38
- package/lib/Widgets/Map/events/EventUtils.js +245 -0
- package/lib/Widgets/Map/events/NetworkForSpecificEvent.js +3 -117
- package/lib/Widgets/Map/events/PointOfEvent.js +142 -0
- package/lib/Widgets/Map/events/PointsForSpecificEvent.js +66 -0
- package/lib/Widgets/Map/events/Snail.js +60 -0
- package/lib/Widgets/Map/points/PointMarker.js +10 -472
- package/lib/Widgets/Map/points/PointMarkers.js +24 -17
- package/lib/Widgets/Map/points/PointUtils.js +373 -0
- package/lib/components/Header/Toolbar/Toolbar.js +2 -2
- package/lib/macros/getVersion.js +1 -1
- package/lib/pages/EventsPage/EventsMapContainer/EventsMapContainer.js +1 -4
- package/lib/pages/EventsPage/events/events_list/EventsList.js +25 -8
- package/lib/pages/EventsPage/events/events_list/Filter/FilterContainer.js +2 -2
- package/package.json +1 -1
- package/lib/Widgets/Map/events/EventIndicatorHover.js +0 -252
- package/lib/Widgets/Map/events/EventPathHover.js +0 -81
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.pointIsObservation = exports.findAndDrawEventNetworkEdges = exports.drawNetwork = exports.findEdgesFromEventPathToDraw = exports.nextLevelDownStream = exports.recursiveDownStreamSearch = exports.findDownstreamEdgesToDraw = exports.findUpstreamEdgesToDraw = exports.getUpstreamEdges = exports.getFirstEdgeOfEventPath = exports.drawManholeIcon = void 0;
|
|
9
|
+
|
|
10
|
+
require("leaflet-polylinedecorator");
|
|
11
|
+
|
|
12
|
+
var _leaflet = _interopRequireDefault(require("leaflet"));
|
|
13
|
+
|
|
14
|
+
var _whitePoint = _interopRequireDefault(require("../../../assets/white-point.png"));
|
|
15
|
+
|
|
16
|
+
var _actions = require("../../../store/events/actions");
|
|
17
|
+
|
|
18
|
+
var _PointUtils = require("../points/PointUtils");
|
|
19
|
+
|
|
20
|
+
var drawManholeIcon = function drawManholeIcon(sourcePoint, map) {
|
|
21
|
+
var pointIcon = _leaflet.default.icon({
|
|
22
|
+
iconUrl: _whitePoint.default,
|
|
23
|
+
iconSize: [9, 9],
|
|
24
|
+
iconAnchor: [4.5, 4.5]
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
var manholeIcon = _leaflet.default.marker([sourcePoint.latitude, sourcePoint.longitude], {
|
|
28
|
+
icon: pointIcon,
|
|
29
|
+
riseOnHover: true
|
|
30
|
+
}).addTo(map);
|
|
31
|
+
|
|
32
|
+
manholeIcon.bindTooltip("".concat(sourcePoint.group.name, " (").concat(sourcePoint.group.sector_name, ")"));
|
|
33
|
+
manholeIcon['kando_object_id'] = sourcePoint.id;
|
|
34
|
+
manholeIcon['kando_object'] = 'UpstreamPoint';
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
exports.drawManholeIcon = drawManholeIcon;
|
|
38
|
+
|
|
39
|
+
var getFirstEdgeOfEventPath = function getFirstEdgeOfEventPath(edges, event) {
|
|
40
|
+
if (event.path[0] === undefined) return;
|
|
41
|
+
return edges.find(function (edge) {
|
|
42
|
+
return edge.id === event.path[0].edge_id;
|
|
43
|
+
});
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
exports.getFirstEdgeOfEventPath = getFirstEdgeOfEventPath;
|
|
47
|
+
|
|
48
|
+
var findEdges = function findEdges(edges, nextUpstreamLevelIds) {
|
|
49
|
+
return edges.filter(function (edge) {
|
|
50
|
+
return nextUpstreamLevelIds.includes(edge.target_point_id);
|
|
51
|
+
});
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
var recursiveUpstreamSearch = function recursiveUpstreamSearch(nextLevel, edges, mapAllEdgesNesting, allUpstreamEdges) {
|
|
55
|
+
var nextUpstreamLevelIds = nextLevel.map(function (edge) {
|
|
56
|
+
return edge.source_point_id;
|
|
57
|
+
});
|
|
58
|
+
|
|
59
|
+
if (findEdges(edges, nextUpstreamLevelIds).length === 0) {
|
|
60
|
+
return mapAllEdgesNesting(allUpstreamEdges);
|
|
61
|
+
} else {
|
|
62
|
+
allUpstreamEdges.push(findEdges(edges, nextUpstreamLevelIds));
|
|
63
|
+
recursiveUpstreamSearch(findEdges(edges, nextUpstreamLevelIds), edges, mapAllEdgesNesting, allUpstreamEdges);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
return mapAllEdgesNesting(allUpstreamEdges);
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
var mapAllEdgesNesting = function mapAllEdgesNesting(allUpstreamEdges) {
|
|
70
|
+
var mapped = [];
|
|
71
|
+
allUpstreamEdges.forEach(function (edges) {
|
|
72
|
+
edges.forEach(function (edge) {
|
|
73
|
+
mapped.push(edge);
|
|
74
|
+
});
|
|
75
|
+
});
|
|
76
|
+
return mapped;
|
|
77
|
+
};
|
|
78
|
+
|
|
79
|
+
var getUpstreamEdges = function getUpstreamEdges(firstEdge, edges) {
|
|
80
|
+
var allUpstreamEdges = [];
|
|
81
|
+
var firstUpstreamLevel = edges.filter(function (edge) {
|
|
82
|
+
return edge.target_point_id === firstEdge.source_point_id;
|
|
83
|
+
});
|
|
84
|
+
return recursiveUpstreamSearch(firstUpstreamLevel, edges, mapAllEdgesNesting, allUpstreamEdges);
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
exports.getUpstreamEdges = getUpstreamEdges;
|
|
88
|
+
|
|
89
|
+
var findUpstreamEdgesToDraw = function findUpstreamEdgesToDraw(upstreamEdges, edgesToDraw, points, edges) {
|
|
90
|
+
upstreamEdges.forEach(function (upstreamEdge) {
|
|
91
|
+
if (upstreamEdge) {
|
|
92
|
+
var sourcePoint = points.find(function (point) {
|
|
93
|
+
return point.id === upstreamEdge.source_point_id;
|
|
94
|
+
});
|
|
95
|
+
if (sourcePoint) edgesToDraw.push(upstreamEdge);
|
|
96
|
+
}
|
|
97
|
+
});
|
|
98
|
+
var connectionEdge = edges.find(function (edge) {
|
|
99
|
+
return edge.source_point_id === upstreamEdges[0].target_point_id;
|
|
100
|
+
});
|
|
101
|
+
if (connectionEdge !== undefined) edgesToDraw.push(connectionEdge);
|
|
102
|
+
return edgesToDraw;
|
|
103
|
+
};
|
|
104
|
+
|
|
105
|
+
exports.findUpstreamEdgesToDraw = findUpstreamEdgesToDraw;
|
|
106
|
+
|
|
107
|
+
var findDownstreamEdgesToDraw = function findDownstreamEdgesToDraw(firstEdge, edges, downstreamNetwork, edgesToDraw) {
|
|
108
|
+
recursiveDownStreamSearch(downstreamNetwork, edges).forEach(function (downStreamEdge) {
|
|
109
|
+
edgesToDraw.push(downStreamEdge);
|
|
110
|
+
});
|
|
111
|
+
};
|
|
112
|
+
|
|
113
|
+
exports.findDownstreamEdgesToDraw = findDownstreamEdgesToDraw;
|
|
114
|
+
|
|
115
|
+
var recursiveDownStreamSearch = function recursiveDownStreamSearch(downstreamNetwork, edges) {
|
|
116
|
+
var lastDownStreamEdge = downstreamNetwork[downstreamNetwork.length - 1];
|
|
117
|
+
|
|
118
|
+
if (nextLevelDownStream(lastDownStreamEdge, edges).length === 0) {
|
|
119
|
+
return downstreamNetwork;
|
|
120
|
+
} else {
|
|
121
|
+
nextLevelDownStream(lastDownStreamEdge, edges).forEach(function (edge) {
|
|
122
|
+
downstreamNetwork.push(edge);
|
|
123
|
+
recursiveDownStreamSearch(downstreamNetwork, edges);
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
return downstreamNetwork;
|
|
128
|
+
};
|
|
129
|
+
|
|
130
|
+
exports.recursiveDownStreamSearch = recursiveDownStreamSearch;
|
|
131
|
+
|
|
132
|
+
var nextLevelDownStream = function nextLevelDownStream(firstEdge, edges) {
|
|
133
|
+
return edges.filter(function (edge) {
|
|
134
|
+
return edge.source_point_id === firstEdge.target_point_id;
|
|
135
|
+
});
|
|
136
|
+
};
|
|
137
|
+
|
|
138
|
+
exports.nextLevelDownStream = nextLevelDownStream;
|
|
139
|
+
|
|
140
|
+
var findEdgesFromEventPathToDraw = function findEdgesFromEventPathToDraw(edgesToDraw, event, edges) {
|
|
141
|
+
event.path.forEach(function (part) {
|
|
142
|
+
var matchedPart = edges.find(function (edge) {
|
|
143
|
+
return edge.id === part.edge_id;
|
|
144
|
+
});
|
|
145
|
+
if (matchedPart !== undefined) edgesToDraw.push(matchedPart);
|
|
146
|
+
});
|
|
147
|
+
};
|
|
148
|
+
|
|
149
|
+
exports.findEdgesFromEventPathToDraw = findEdgesFromEventPathToDraw;
|
|
150
|
+
|
|
151
|
+
var drawNetwork = function drawNetwork(edges, points, dispatch, map) {
|
|
152
|
+
var latlngs = [];
|
|
153
|
+
edges.forEach(function (edge) {
|
|
154
|
+
edge.shape_data.forEach(function (data) {
|
|
155
|
+
latlngs.push([data.lat, data.lng]);
|
|
156
|
+
});
|
|
157
|
+
|
|
158
|
+
var polylineBack = _leaflet.default.polyline(latlngs, {
|
|
159
|
+
color: 'rgb(227,227,227)',
|
|
160
|
+
weight: 6,
|
|
161
|
+
opacity: 1
|
|
162
|
+
}).addTo(map);
|
|
163
|
+
|
|
164
|
+
var tailDash = _leaflet.default.polylineDecorator(polylineBack._latlngs, {
|
|
165
|
+
patterns: [// defines a pattern of 10px-wide dashes, repeated every 20px on the line
|
|
166
|
+
{
|
|
167
|
+
offset: 15,
|
|
168
|
+
repeat: 25,
|
|
169
|
+
symbol: _leaflet.default.Symbol.arrowHead({
|
|
170
|
+
pixelSize: 3,
|
|
171
|
+
polygon: false,
|
|
172
|
+
pathOptions: {
|
|
173
|
+
stroke: true,
|
|
174
|
+
color: 'rgba(0,0,0)',
|
|
175
|
+
weight: 1
|
|
176
|
+
}
|
|
177
|
+
})
|
|
178
|
+
}]
|
|
179
|
+
}).addTo(map);
|
|
180
|
+
|
|
181
|
+
tailDash['kando_object'] = 'Decorator';
|
|
182
|
+
|
|
183
|
+
if (points.length !== 0) {
|
|
184
|
+
var sourcePoint = points.find(function (point) {
|
|
185
|
+
return point.id === edge.source_point_id;
|
|
186
|
+
});
|
|
187
|
+
var targetPoint = points.find(function (point) {
|
|
188
|
+
return point.id === edge.target_point_id;
|
|
189
|
+
});
|
|
190
|
+
|
|
191
|
+
if (sourcePoint !== undefined && targetPoint !== undefined) {
|
|
192
|
+
polylineBack.bindPopup("Edge ID: ".concat(edge.id, ",<br>\n Source point: ").concat(sourcePoint.group.name, ",<br>\n Target point: ").concat(targetPoint.group.name, ",\n Distance: ").concat(edge.distance));
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
if (sourcePoint) drawManholeIcon(sourcePoint, map);
|
|
196
|
+
if (targetPoint) drawManholeIcon(targetPoint, map);
|
|
197
|
+
if (sourcePoint && sourcePoint.has_device) (0, _PointUtils.createBubblePoint)([sourcePoint.latitude, sourcePoint.longitude], sourcePoint, map);
|
|
198
|
+
if (targetPoint && targetPoint.has_device) (0, _PointUtils.createBubblePoint)([targetPoint.latitude, targetPoint.longitude], targetPoint, map);
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
polylineBack['kando_object_id'] = edge.id;
|
|
202
|
+
polylineBack['kando_object'] = 'HoveredEdge';
|
|
203
|
+
polylineBack.bringToFront();
|
|
204
|
+
|
|
205
|
+
var polylineFront = _leaflet.default.polyline(latlngs, {
|
|
206
|
+
color: 'rgb(29,29,29)',
|
|
207
|
+
weight: 1,
|
|
208
|
+
opacity: 1
|
|
209
|
+
}).addTo(map);
|
|
210
|
+
|
|
211
|
+
polylineFront['kando_object_id'] = edge.id;
|
|
212
|
+
polylineFront['kando_object'] = 'HoveredEdgeFront';
|
|
213
|
+
polylineFront.bringToFront();
|
|
214
|
+
dispatch((0, _actions.setHoveredEdgePaths)([polylineBack, polylineFront]));
|
|
215
|
+
latlngs = [];
|
|
216
|
+
});
|
|
217
|
+
};
|
|
218
|
+
|
|
219
|
+
exports.drawNetwork = drawNetwork;
|
|
220
|
+
|
|
221
|
+
var findAndDrawEventNetworkEdges = function findAndDrawEventNetworkEdges(edges, event, points, dispatch, map) {
|
|
222
|
+
var edgesToDraw = [];
|
|
223
|
+
var firstEdge = getFirstEdgeOfEventPath(edges, event);
|
|
224
|
+
|
|
225
|
+
if (firstEdge !== undefined) {
|
|
226
|
+
var downstreamNetwork = [firstEdge];
|
|
227
|
+
var upstreamEdges = getUpstreamEdges(firstEdge, edges);
|
|
228
|
+
if (upstreamEdges === undefined) return;
|
|
229
|
+
if (upstreamEdges.length !== 0) findUpstreamEdgesToDraw(upstreamEdges, edgesToDraw, points, edges);
|
|
230
|
+
findDownstreamEdgesToDraw(firstEdge, edges, downstreamNetwork, edgesToDraw);
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
drawNetwork(edgesToDraw, points, dispatch, map);
|
|
234
|
+
};
|
|
235
|
+
|
|
236
|
+
exports.findAndDrawEventNetworkEdges = findAndDrawEventNetworkEdges;
|
|
237
|
+
|
|
238
|
+
var pointIsObservation = function pointIsObservation(event, point) {
|
|
239
|
+
return event.observations.find(function (obs) {
|
|
240
|
+
return obs.point_id === point.id;
|
|
241
|
+
});
|
|
242
|
+
};
|
|
243
|
+
|
|
244
|
+
exports.pointIsObservation = pointIsObservation;
|
|
245
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9XaWRnZXRzL01hcC9ldmVudHMvRXZlbnRVdGlscy50cyJdLCJuYW1lcyI6WyJkcmF3TWFuaG9sZUljb24iLCJzb3VyY2VQb2ludCIsIm1hcCIsInBvaW50SWNvbiIsIkwiLCJpY29uIiwiaWNvblVybCIsIndoaXRlUG9pbnQiLCJpY29uU2l6ZSIsImljb25BbmNob3IiLCJtYW5ob2xlSWNvbiIsIm1hcmtlciIsImxhdGl0dWRlIiwibG9uZ2l0dWRlIiwicmlzZU9uSG92ZXIiLCJhZGRUbyIsImJpbmRUb29sdGlwIiwiZ3JvdXAiLCJuYW1lIiwic2VjdG9yX25hbWUiLCJpZCIsImdldEZpcnN0RWRnZU9mRXZlbnRQYXRoIiwiZWRnZXMiLCJldmVudCIsInBhdGgiLCJ1bmRlZmluZWQiLCJmaW5kIiwiZWRnZSIsImVkZ2VfaWQiLCJmaW5kRWRnZXMiLCJuZXh0VXBzdHJlYW1MZXZlbElkcyIsImZpbHRlciIsImluY2x1ZGVzIiwidGFyZ2V0X3BvaW50X2lkIiwicmVjdXJzaXZlVXBzdHJlYW1TZWFyY2giLCJuZXh0TGV2ZWwiLCJtYXBBbGxFZGdlc05lc3RpbmciLCJhbGxVcHN0cmVhbUVkZ2VzIiwic291cmNlX3BvaW50X2lkIiwibGVuZ3RoIiwicHVzaCIsIm1hcHBlZCIsImZvckVhY2giLCJnZXRVcHN0cmVhbUVkZ2VzIiwiZmlyc3RFZGdlIiwiZmlyc3RVcHN0cmVhbUxldmVsIiwiZmluZFVwc3RyZWFtRWRnZXNUb0RyYXciLCJ1cHN0cmVhbUVkZ2VzIiwiZWRnZXNUb0RyYXciLCJwb2ludHMiLCJ1cHN0cmVhbUVkZ2UiLCJwb2ludCIsImNvbm5lY3Rpb25FZGdlIiwiZmluZERvd25zdHJlYW1FZGdlc1RvRHJhdyIsImRvd25zdHJlYW1OZXR3b3JrIiwicmVjdXJzaXZlRG93blN0cmVhbVNlYXJjaCIsImRvd25TdHJlYW1FZGdlIiwibGFzdERvd25TdHJlYW1FZGdlIiwibmV4dExldmVsRG93blN0cmVhbSIsImZpbmRFZGdlc0Zyb21FdmVudFBhdGhUb0RyYXciLCJwYXJ0IiwibWF0Y2hlZFBhcnQiLCJkcmF3TmV0d29yayIsImRpc3BhdGNoIiwibGF0bG5ncyIsInNoYXBlX2RhdGEiLCJkYXRhIiwibGF0IiwibG5nIiwicG9seWxpbmVCYWNrIiwicG9seWxpbmUiLCJjb2xvciIsIndlaWdodCIsIm9wYWNpdHkiLCJ0YWlsRGFzaCIsInBvbHlsaW5lRGVjb3JhdG9yIiwiX2xhdGxuZ3MiLCJwYXR0ZXJucyIsIm9mZnNldCIsInJlcGVhdCIsInN5bWJvbCIsIlN5bWJvbCIsImFycm93SGVhZCIsInBpeGVsU2l6ZSIsInBvbHlnb24iLCJwYXRoT3B0aW9ucyIsInN0cm9rZSIsInRhcmdldFBvaW50IiwiYmluZFBvcHVwIiwiZGlzdGFuY2UiLCJoYXNfZGV2aWNlIiwiYnJpbmdUb0Zyb250IiwicG9seWxpbmVGcm9udCIsImZpbmRBbmREcmF3RXZlbnROZXR3b3JrRWRnZXMiLCJwb2ludElzT2JzZXJ2YXRpb24iLCJvYnNlcnZhdGlvbnMiLCJvYnMiLCJwb2ludF9pZCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBSUE7O0FBQ0E7O0FBRU8sSUFBTUEsZUFBZSxHQUFHLFNBQWxCQSxlQUFrQixDQUFDQyxXQUFELEVBQXNCQyxHQUF0QixFQUFxQztBQUNsRSxNQUFJQyxTQUFTLEdBQUdDLGlCQUFFQyxJQUFGLENBQU87QUFDckJDLElBQUFBLE9BQU8sRUFBRUMsbUJBRFk7QUFFckJDLElBQUFBLFFBQVEsRUFBRSxDQUFDLENBQUQsRUFBSSxDQUFKLENBRlc7QUFHckJDLElBQUFBLFVBQVUsRUFBRSxDQUFDLEdBQUQsRUFBTSxHQUFOO0FBSFMsR0FBUCxDQUFoQjs7QUFNQSxNQUFJQyxXQUFnQixHQUFHTixpQkFBRU8sTUFBRixDQUNyQixDQUFDVixXQUFXLENBQUNXLFFBQWIsRUFBdUJYLFdBQVcsQ0FBQ1ksU0FBbkMsQ0FEcUIsRUFFckI7QUFDRVIsSUFBQUEsSUFBSSxFQUFFRixTQURSO0FBRUVX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aW1wb3J0IEwgZnJvbSAnbGVhZmxldCc7XG5pbXBvcnQgd2hpdGVQb2ludCBmcm9tICcuLi8uLi8uLi9hc3NldHMvd2hpdGUtcG9pbnQucG5nJztcbmltcG9ydCB7IElFZGdlIH0gZnJvbSAnLi4vLi4vLi4vc3RvcmUvZWRnZXMvbW9kZWxzL0lFZGdlJztcbmltcG9ydCB7IElQb2ludCB9IGZyb20gJy4uLy4uLy4uL3N0b3JlL3BvaW50cy9tb2RlbHMvSVBvaW50JztcbmltcG9ydCB7IElFdmVudCB9IGZyb20gJy4uLy4uLy4uL3N0b3JlL2V2ZW50cy9tb2RlbHMvSUV2ZW50JztcbmltcG9ydCB7IHNldEhvdmVyZWRFZGdlUGF0aHMgfSBmcm9tICcuLi8uLi8uLi9zdG9yZS9ldmVudHMvYWN0aW9ucyc7XG5pbXBvcnQgeyBjcmVhdGVCdWJibGVQb2ludCB9IGZyb20gJy4uL3BvaW50cy9Qb2ludFV0aWxzJztcblxuZXhwb3J0IGNvbnN0IGRyYXdNYW5ob2xlSWNvbiA9IChzb3VyY2VQb2ludDogSVBvaW50LCBtYXA6IEwuTWFwKSA9PiB7XG4gIGxldCBwb2ludEljb24gPSBMLmljb24oe1xuICAgIGljb25Vcmw6IHdoaXRlUG9pbnQsXG4gICAgaWNvblNpemU6IFs5LCA5XSxcbiAgICBpY29uQW5jaG9yOiBbNC41LCA0LjVdLFxuICB9KTtcblxuICBsZXQgbWFuaG9sZUljb246IGFueSA9IEwubWFya2VyKFxuICAgIFtzb3VyY2VQb2ludC5sYXRpdHVkZSwgc291cmNlUG9pbnQubG9uZ2l0dWRlXSxcbiAgICB7XG4gICAgICBpY29uOiBwb2ludEljb24sXG4gICAgICByaXNlT25Ib3ZlcjogdHJ1ZSxcbiAgICB9LFxuICApLmFkZFRvKG1hcCk7XG4gIG1hbmhvbGVJY29uLmJpbmRUb29sdGlwKFxuICAgIGAke3NvdXJjZVBvaW50Lmdyb3VwLm5hbWV9ICgke3NvdXJjZVBvaW50Lmdyb3VwLnNlY3Rvcl9uYW1lfSlgLFxuICApO1xuICBtYW5ob2xlSWNvblsna2FuZG9fb2JqZWN0X2lkJ10gPSBzb3VyY2VQb2ludC5pZDtcbiAgbWFuaG9sZUljb25bJ2thbmRvX29iamVjdCddID0gJ1Vwc3RyZWFtUG9pbnQnO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEZpcnN0RWRnZU9mRXZlbnRQYXRoID0gKGVkZ2VzOiBJRWRnZVtdLCBldmVudDogSUV2ZW50KSA9PiB7XG4gIGlmIChldmVudC5wYXRoWzBdID09PSB1bmRlZmluZWQpIHJldHVybjtcbiAgcmV0dXJuIGVkZ2VzLmZpbmQoKGVkZ2UpID0+IGVkZ2UuaWQgPT09IGV2ZW50LnBhdGhbMF0uZWRnZV9pZCk7XG59O1xuXG5jb25zdCBmaW5kRWRnZXMgPSAoZWRnZXMsIG5leHRVcHN0cmVhbUxldmVsSWRzKSA9PiB7XG4gIHJldHVybiBlZGdlcy5maWx0ZXIoKGVkZ2U6IElFZGdlKSA9PlxuICAgIG5leHRVcHN0cmVhbUxldmVsSWRzLmluY2x1ZGVzKGVkZ2UudGFyZ2V0X3BvaW50X2lkKSxcbiAgKTtcbn07XG5cbmNvbnN0IHJlY3Vyc2l2ZVVwc3RyZWFtU2VhcmNoID0gKFxuICBuZXh0TGV2ZWwsXG4gIGVkZ2VzLFxuICBtYXBBbGxFZGdlc05lc3RpbmcsXG4gIGFsbFVwc3RyZWFtRWRnZXMsXG4pID0+IHtcbiAgbGV0IG5leHRVcHN0cmVhbUxldmVsSWRzID0gbmV4dExldmVsLm1hcCgoZWRnZSkgPT4gZWRnZS5zb3VyY2VfcG9pbnRfaWQpO1xuXG4gIGlmIChmaW5kRWRnZXMoZWRnZXMsIG5leHRVcHN0cmVhbUxldmVsSWRzKS5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gbWFwQWxsRWRnZXNOZXN0aW5nKGFsbFVwc3RyZWFtRWRnZXMpO1xuICB9IGVsc2Uge1xuICAgIGFsbFVwc3RyZWFtRWRnZXMucHVzaChmaW5kRWRnZXMoZWRnZXMsIG5leHRVcHN0cmVhbUxldmVsSWRzKSk7XG4gICAgcmVjdXJzaXZlVXBzdHJlYW1TZWFyY2goXG4gICAgICBmaW5kRWRnZXMoZWRnZXMsIG5leHRVcHN0cmVhbUxldmVsSWRzKSxcbiAgICAgIGVkZ2VzLFxuICAgICAgbWFwQWxsRWRnZXNOZXN0aW5nLFxuICAgICAgYWxsVXBzdHJlYW1FZGdlcyxcbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIG1hcEFsbEVkZ2VzTmVzdGluZyhhbGxVcHN0cmVhbUVkZ2VzKTtcbn07XG5cbmNvbnN0IG1hcEFsbEVkZ2VzTmVzdGluZyA9IChhbGxVcHN0cmVhbUVkZ2VzKSA9PiB7XG4gIGxldCBtYXBwZWQ6IGFueVtdID0gW107XG4gIGFsbFVwc3RyZWFtRWRnZXMuZm9yRWFjaCgoZWRnZXMpID0+IHtcbiAgICBlZGdlcy5mb3JFYWNoKChlZGdlKSA9PiB7XG4gICAgICBtYXBwZWQucHVzaChlZGdlKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgcmV0dXJuIG1hcHBlZDtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRVcHN0cmVhbUVkZ2VzID0gKGZpcnN0RWRnZTogSUVkZ2UsIGVkZ2VzOiBJRWRnZVtdKSA9PiB7XG4gIGxldCBhbGxVcHN0cmVhbUVkZ2VzOiBhbnlbXSA9IFtdO1xuICBsZXQgZmlyc3RVcHN0cmVhbUxldmVsOiBJRWRnZVtdID0gZWRnZXMuZmlsdGVyKFxuICAgIChlZGdlKSA9PiBlZGdlLnRhcmdldF9wb2ludF9pZCA9PT0gZmlyc3RFZGdlIS5zb3VyY2VfcG9pbnRfaWQsXG4gICk7XG5cbiAgcmV0dXJuIHJlY3Vyc2l2ZVVwc3RyZWFtU2VhcmNoKFxuICAgIGZpcnN0VXBzdHJlYW1MZXZlbCxcbiAgICBlZGdlcyxcbiAgICBtYXBBbGxFZGdlc05lc3RpbmcsXG4gICAgYWxsVXBzdHJlYW1FZGdlcyxcbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBmaW5kVXBzdHJlYW1FZGdlc1RvRHJhdyA9IChcbiAgdXBzdHJlYW1FZGdlczogSUVkZ2VbXSxcbiAgZWRnZXNUb0RyYXc6IElFZGdlW10sXG4gIHBvaW50czogSVBvaW50W10sXG4gIGVkZ2VzOiBJRWRnZVtdLFxuKSA9PiB7XG4gIHVwc3RyZWFtRWRnZXMuZm9yRWFjaCgodXBzdHJlYW1FZGdlKSA9PiB7XG4gICAgaWYgKHVwc3RyZWFtRWRnZSkge1xuICAgICAgbGV0IHNvdXJjZVBvaW50ID0gcG9pbnRzLmZpbmQoXG4gICAgICAgIChwb2ludCkgPT4gcG9pbnQuaWQgPT09IHVwc3RyZWFtRWRnZSEuc291cmNlX3BvaW50X2lkLFxuICAgICAgKTtcblxuICAgICAgaWYgKHNvdXJjZVBvaW50KSBlZGdlc1RvRHJhdy5wdXNoKHVwc3RyZWFtRWRnZSk7XG4gICAgfVxuICB9KTtcblxuICBsZXQgY29ubmVjdGlvbkVkZ2UgPSBlZGdlcy5maW5kKFxuICAgIChlZGdlKSA9PiBlZGdlLnNvdXJjZV9wb2ludF9pZCA9PT0gdXBzdHJlYW1FZGdlc1swXS50YXJnZXRfcG9pbnRfaWQsXG4gICk7XG4gIGlmIChjb25uZWN0aW9uRWRnZSAhPT0gdW5kZWZpbmVkKSBlZGdlc1RvRHJhdy5wdXNoKGNvbm5lY3Rpb25FZGdlKTtcbiAgcmV0dXJuIGVkZ2VzVG9EcmF3O1xufTtcblxuZXhwb3J0IGNvbnN0IGZpbmREb3duc3RyZWFtRWRnZXNUb0RyYXcgPSAoXG4gIGZpcnN0RWRnZTogSUVkZ2UsXG4gIGVkZ2VzOiBJRWRnZVtdLFxuICBkb3duc3RyZWFtTmV0d29yayxcbiAgZWRnZXNUb0RyYXcsXG4pID0+IHtcbiAgcmVjdXJzaXZlRG93blN0cmVhbVNlYXJjaChkb3duc3RyZWFtTmV0d29yaywgZWRnZXMpLmZvckVhY2goXG4gICAgKGRvd25TdHJlYW1FZGdlKSA9PiB7XG4gICAgICBlZGdlc1RvRHJhdy5wdXNoKGRvd25TdHJlYW1FZGdlKTtcbiAgICB9LFxuICApO1xufTtcblxuZXhwb3J0IGNvbnN0IHJlY3Vyc2l2ZURvd25TdHJlYW1TZWFyY2ggPSAoXG4gIGRvd25zdHJlYW1OZXR3b3JrOiBJRWRnZVtdLFxuICBlZGdlczogSUVkZ2VbXSxcbikgPT4ge1xuICBsZXQgbGFzdERvd25TdHJlYW1FZGdlID0gZG93bnN0cmVhbU5ldHdvcmtbZG93bnN0cmVhbU5ldHdvcmsubGVuZ3RoIC0gMV07XG5cbiAgaWYgKG5leHRMZXZlbERvd25TdHJlYW0obGFzdERvd25TdHJlYW1FZGdlLCBlZGdlcykubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIGRvd25zdHJlYW1OZXR3b3JrO1xuICB9IGVsc2Uge1xuICAgIG5leHRMZXZlbERvd25TdHJlYW0obGFzdERvd25TdHJlYW1FZGdlLCBlZGdlcykuZm9yRWFjaCgoZWRnZSkgPT4ge1xuICAgICAgZG93bnN0cmVhbU5ldHdvcmsucHVzaChlZGdlKTtcbiAgICAgIHJlY3Vyc2l2ZURvd25TdHJlYW1TZWFyY2goZG93bnN0cmVhbU5ldHdvcmssIGVkZ2VzKTtcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiBkb3duc3RyZWFtTmV0d29yaztcbn07XG5cbmV4cG9ydCBjb25zdCBuZXh0TGV2ZWxEb3duU3RyZWFtID0gKGZpcnN0RWRnZTogSUVkZ2UsIGVkZ2VzOiBJRWRnZVtdKSA9PiB7XG4gIHJldHVybiBlZGdlcy5maWx0ZXIoXG4gICAgKGVkZ2UpID0+IGVkZ2Uuc291cmNlX3BvaW50X2lkID09PSBmaXJzdEVkZ2UudGFyZ2V0X3BvaW50X2lkLFxuICApO1xufTtcblxuZXhwb3J0IGNvbnN0IGZpbmRFZGdlc0Zyb21FdmVudFBhdGhUb0RyYXcgPSAoXG4gIGVkZ2VzVG9EcmF3OiBJRWRnZVtdLFxuICBldmVudDogSUV2ZW50LFxuICBlZGdlczogSUVkZ2VbXSxcbikgPT4ge1xuICBldmVudC5wYXRoLmZvckVhY2goKHBhcnQpID0+IHtcbiAgICBsZXQgbWF0Y2hlZFBhcnQgPSBlZGdlcy5maW5kKChlZGdlKSA9PiBlZGdlLmlkID09PSBwYXJ0LmVkZ2VfaWQpO1xuICAgIGlmIChtYXRjaGVkUGFydCAhPT0gdW5kZWZpbmVkKSBlZGdlc1RvRHJhdy5wdXNoKG1hdGNoZWRQYXJ0KTtcbiAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgZHJhd05ldHdvcmsgPSAoXG4gIGVkZ2VzOiBJRWRnZVtdLFxuICBwb2ludHM6IElQb2ludFtdLFxuICBkaXNwYXRjaCxcbiAgbWFwLFxuKSA9PiB7XG4gIGxldCBsYXRsbmdzOiBhbnkgPSBbXTtcbiAgZWRnZXMuZm9yRWFjaCgoZWRnZSkgPT4ge1xuICAgIGVkZ2Uuc2hhcGVfZGF0YS5mb3JFYWNoKChkYXRhOiBhbnkpID0+IHtcbiAgICAgIGxhdGxuZ3MucHVzaChbZGF0YS5sYXQsIGRhdGEubG5nXSk7XG4gICAgfSk7XG5cbiAgICBsZXQgcG9seWxpbmVCYWNrOiBhbnkgPSBMLnBvbHlsaW5lKGxhdGxuZ3MsIHtcbiAgICAgIGNvbG9yOiAncmdiKDIyNywyMjcsMjI3KScsXG4gICAgICB3ZWlnaHQ6IDYsXG4gICAgICBvcGFjaXR5OiAxLFxuICAgIH0pLmFkZFRvKG1hcCk7XG5cbiAgICBsZXQgdGFpbERhc2ggPSBMLnBvbHlsaW5lRGVjb3JhdG9yKHBvbHlsaW5lQmFjay5fbGF0bG5ncywge1xuICAgICAgcGF0dGVybnM6IFtcbiAgICAgICAgLy8gZGVmaW5lcyBhIHBhdHRlcm4gb2YgMTBweC13aWRlIGRhc2hlcywgcmVwZWF0ZWQgZXZlcnkgMjBweCBvbiB0aGUgbGluZVxuICAgICAgICB7XG4gICAgICAgICAgb2Zmc2V0OiAxNSxcbiAgICAgICAgICByZXBlYXQ6IDI1LFxuICAgICAgICAgIHN5bWJvbDogTC5TeW1ib2wuYXJyb3dIZWFkKHtcbiAgICAgICAgICAgIHBpeGVsU2l6ZTogMyxcbiAgICAgICAgICAgIHBvbHlnb246IGZhbHNlLFxuICAgICAgICAgICAgcGF0aE9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgc3Ryb2tlOiB0cnVlLFxuICAgICAgICAgICAgICBjb2xvcjogJ3JnYmEoMCwwLDApJyxcbiAgICAgICAgICAgICAgd2VpZ2h0OiAxLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSkuYWRkVG8obWFwKTtcbiAgICB0YWlsRGFzaFsna2FuZG9fb2JqZWN0J10gPSAnRGVjb3JhdG9yJztcblxuICAgIGlmIChwb2ludHMubGVuZ3RoICE9PSAwKSB7XG4gICAgICBsZXQgc291cmNlUG9pbnQgPSBwb2ludHMuZmluZChcbiAgICAgICAgKHBvaW50OiBJUG9pbnQpID0+IHBvaW50LmlkID09PSBlZGdlLnNvdXJjZV9wb2ludF9pZCxcbiAgICAgICk7XG4gICAgICBsZXQgdGFyZ2V0UG9pbnQgPSBwb2ludHMuZmluZChcbiAgICAgICAgKHBvaW50OiBJUG9pbnQpID0+IHBvaW50LmlkID09PSBlZGdlLnRhcmdldF9wb2ludF9pZCxcbiAgICAgICk7XG4gICAgICBpZiAoc291cmNlUG9pbnQgIT09IHVuZGVmaW5lZCAmJiB0YXJnZXRQb2ludCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHBvbHlsaW5lQmFjay5iaW5kUG9wdXAoYEVkZ2UgSUQ6ICR7ZWRnZS5pZH0sPGJyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTb3VyY2UgcG9pbnQ6ICR7c291cmNlUG9pbnQuZ3JvdXAubmFtZX0sPGJyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUYXJnZXQgcG9pbnQ6ICR7dGFyZ2V0UG9pbnQuZ3JvdXAubmFtZX0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERpc3RhbmNlOiAke2VkZ2UuZGlzdGFuY2V9YCk7XG4gICAgICB9XG5cbiAgICAgIGlmIChzb3VyY2VQb2ludCkgZHJhd01hbmhvbGVJY29uKHNvdXJjZVBvaW50LCBtYXApO1xuICAgICAgaWYgKHRhcmdldFBvaW50KSBkcmF3TWFuaG9sZUljb24odGFyZ2V0UG9pbnQsIG1hcCk7XG4gICAgICBpZiAoc291cmNlUG9pbnQgJiYgc291cmNlUG9pbnQuaGFzX2RldmljZSlcbiAgICAgICAgY3JlYXRlQnViYmxlUG9pbnQoXG4gICAgICAgICAgW3NvdXJjZVBvaW50LmxhdGl0dWRlLCBzb3VyY2VQb2ludC5sb25naXR1ZGVdLFxuICAgICAgICAgIHNvdXJjZVBvaW50LFxuICAgICAgICAgIG1hcCxcbiAgICAgICAgKTtcbiAgICAgIGlmICh0YXJnZXRQb2ludCAmJiB0YXJnZXRQb2ludC5oYXNfZGV2aWNlKVxuICAgICAgICBjcmVhdGVCdWJibGVQb2ludChcbiAgICAgICAgICBbdGFyZ2V0UG9pbnQubGF0aXR1ZGUsIHRhcmdldFBvaW50LmxvbmdpdHVkZV0sXG4gICAgICAgICAgdGFyZ2V0UG9pbnQsXG4gICAgICAgICAgbWFwLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIHBvbHlsaW5lQmFja1sna2FuZG9fb2JqZWN0X2lkJ10gPSBlZGdlLmlkO1xuICAgIHBvbHlsaW5lQmFja1sna2FuZG9fb2JqZWN0J10gPSAnSG92ZXJlZEVkZ2UnO1xuXG4gICAgcG9seWxpbmVCYWNrLmJyaW5nVG9Gcm9udCgpO1xuXG4gICAgbGV0IHBvbHlsaW5lRnJvbnQ6IGFueSA9IEwucG9seWxpbmUobGF0bG5ncywge1xuICAgICAgY29sb3I6ICdyZ2IoMjksMjksMjkpJyxcbiAgICAgIHdlaWdodDogMSxcbiAgICAgIG9wYWNpdHk6IDEsXG4gICAgfSkuYWRkVG8obWFwKTtcblxuICAgIHBvbHlsaW5lRnJvbnRbJ2thbmRvX29iamVjdF9pZCddID0gZWRnZS5pZDtcbiAgICBwb2x5bGluZUZyb250WydrYW5kb19vYmplY3QnXSA9ICdIb3ZlcmVkRWRnZUZyb250JztcblxuICAgIHBvbHlsaW5lRnJvbnQuYnJpbmdUb0Zyb250KCk7XG4gICAgZGlzcGF0Y2goc2V0SG92ZXJlZEVkZ2VQYXRocyhbcG9seWxpbmVCYWNrLCBwb2x5bGluZUZyb250XSkpO1xuICAgIGxhdGxuZ3MgPSBbXTtcbiAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgZmluZEFuZERyYXdFdmVudE5ldHdvcmtFZGdlcyA9IChcbiAgZWRnZXM6IElFZGdlW10sXG4gIGV2ZW50OiBJRXZlbnQsXG4gIHBvaW50czogSVBvaW50W10sXG4gIGRpc3BhdGNoLFxuICBtYXAsXG4pID0+IHtcbiAgbGV0IGVkZ2VzVG9EcmF3OiBJRWRnZVtdID0gW107XG4gIGxldCBmaXJzdEVkZ2UgPSBnZXRGaXJzdEVkZ2VPZkV2ZW50UGF0aChlZGdlcywgZXZlbnQpO1xuXG4gIGlmIChmaXJzdEVkZ2UgIT09IHVuZGVmaW5lZCkge1xuICAgIGxldCBkb3duc3RyZWFtTmV0d29yazogSUVkZ2VbXSA9IFtmaXJzdEVkZ2VdO1xuICAgIGxldCB1cHN0cmVhbUVkZ2VzID0gZ2V0VXBzdHJlYW1FZGdlcyhmaXJzdEVkZ2UsIGVkZ2VzKTtcbiAgICBpZiAodXBzdHJlYW1FZGdlcyA9PT0gdW5kZWZpbmVkKSByZXR1cm47XG4gICAgaWYgKHVwc3RyZWFtRWRnZXMubGVuZ3RoICE9PSAwKVxuICAgICAgZmluZFVwc3RyZWFtRWRnZXNUb0RyYXcodXBzdHJlYW1FZGdlcywgZWRnZXNUb0RyYXcsIHBvaW50cywgZWRnZXMpO1xuICAgIGZpbmREb3duc3RyZWFtRWRnZXNUb0RyYXcoZmlyc3RFZGdlLCBlZGdlcywgZG93bnN0cmVhbU5ldHdvcmssIGVkZ2VzVG9EcmF3KTtcbiAgfVxuXG4gIGRyYXdOZXR3b3JrKGVkZ2VzVG9EcmF3LCBwb2ludHMsIGRpc3BhdGNoLCBtYXApO1xufTtcblxuZXhwb3J0IGNvbnN0IHBvaW50SXNPYnNlcnZhdGlvbiA9IChldmVudDogSUV2ZW50LCBwb2ludDogSVBvaW50KSA9PiB7XG4gIHJldHVybiBldmVudC5vYnNlcnZhdGlvbnMuZmluZCgob2JzKSA9PiBvYnMucG9pbnRfaWQgPT09IHBvaW50LmlkKTtcbn07XG4iXX0=
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
3
|
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
4
|
|
|
7
5
|
Object.defineProperty(exports, "__esModule", {
|
|
@@ -9,15 +7,13 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
9
7
|
});
|
|
10
8
|
exports.NetworkForSpecificEvent = void 0;
|
|
11
9
|
|
|
12
|
-
var _leaflet = _interopRequireDefault(require("leaflet"));
|
|
13
|
-
|
|
14
10
|
var _react = _interopRequireWildcard(require("react"));
|
|
15
11
|
|
|
16
12
|
var _reactRedux = require("react-redux");
|
|
17
13
|
|
|
18
14
|
var _actions = require("store/events/actions");
|
|
19
15
|
|
|
20
|
-
var
|
|
16
|
+
var _EventUtils = require("./EventUtils");
|
|
21
17
|
|
|
22
18
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
23
19
|
|
|
@@ -31,116 +27,6 @@ var NetworkForSpecificEvent = function NetworkForSpecificEvent(_ref) {
|
|
|
31
27
|
map = _ref.map;
|
|
32
28
|
var dispatch = (0, _reactRedux.useDispatch)();
|
|
33
29
|
|
|
34
|
-
var getFirstEdgeOfEventPath = function getFirstEdgeOfEventPath() {
|
|
35
|
-
return edges.find(function (edge) {
|
|
36
|
-
return edge.id === event.path[0].edge_id;
|
|
37
|
-
});
|
|
38
|
-
};
|
|
39
|
-
|
|
40
|
-
var getUpstreamEdges = function getUpstreamEdges(firstEdge) {
|
|
41
|
-
return edges.filter(function (edge) {
|
|
42
|
-
return edge.target_point_id === firstEdge.source_point_id;
|
|
43
|
-
});
|
|
44
|
-
};
|
|
45
|
-
|
|
46
|
-
var findUpstreamEdgesToDraw = function findUpstreamEdgesToDraw(upstreamEdges, edgesToDraw) {
|
|
47
|
-
upstreamEdges.forEach(function (upstreamEdge) {
|
|
48
|
-
if (upstreamEdge) {
|
|
49
|
-
var sourcePoint = points.find(function (point) {
|
|
50
|
-
return point.id === upstreamEdge.source_point_id;
|
|
51
|
-
});
|
|
52
|
-
if (sourcePoint) edgesToDraw.push(upstreamEdge);
|
|
53
|
-
}
|
|
54
|
-
});
|
|
55
|
-
return edgesToDraw;
|
|
56
|
-
};
|
|
57
|
-
|
|
58
|
-
var findEdgesFromEventPathToDraw = function findEdgesFromEventPathToDraw(edgesToDraw) {
|
|
59
|
-
event.path.forEach(function (part) {
|
|
60
|
-
var matchedPart = edges.find(function (edge) {
|
|
61
|
-
return edge.id === part.edge_id;
|
|
62
|
-
});
|
|
63
|
-
if (matchedPart !== undefined) edgesToDraw.push(matchedPart);
|
|
64
|
-
});
|
|
65
|
-
};
|
|
66
|
-
|
|
67
|
-
var findAndDrawEventNetworkEdges = function findAndDrawEventNetworkEdges() {
|
|
68
|
-
var edgesToDraw = [];
|
|
69
|
-
var firstEdge = getFirstEdgeOfEventPath();
|
|
70
|
-
|
|
71
|
-
if (firstEdge !== undefined) {
|
|
72
|
-
var upstreamEdges = getUpstreamEdges(firstEdge);
|
|
73
|
-
if (upstreamEdges.length !== 0) findUpstreamEdgesToDraw(upstreamEdges, edgesToDraw);
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
findEdgesFromEventPathToDraw(edgesToDraw);
|
|
77
|
-
drawNetwork(edgesToDraw);
|
|
78
|
-
};
|
|
79
|
-
|
|
80
|
-
var drawManholeIcon = function drawManholeIcon(sourcePoint) {
|
|
81
|
-
var pointIcon = _leaflet.default.icon({
|
|
82
|
-
iconUrl: _whitePoint.default,
|
|
83
|
-
iconSize: [9, 9],
|
|
84
|
-
iconAnchor: [4.5, 4.5]
|
|
85
|
-
});
|
|
86
|
-
|
|
87
|
-
var manholeIcon = _leaflet.default.marker([sourcePoint.latitude, sourcePoint.longitude], {
|
|
88
|
-
icon: pointIcon,
|
|
89
|
-
riseOnHover: true
|
|
90
|
-
}).addTo(map);
|
|
91
|
-
|
|
92
|
-
manholeIcon.bindTooltip("".concat(sourcePoint.group.name, " (").concat(sourcePoint.id, ")"));
|
|
93
|
-
manholeIcon['kando_object_id'] = sourcePoint.id;
|
|
94
|
-
manholeIcon['kando_object'] = 'UpstreamPoint';
|
|
95
|
-
};
|
|
96
|
-
|
|
97
|
-
var drawNetwork = function drawNetwork(edges) {
|
|
98
|
-
var latlngs = [];
|
|
99
|
-
edges.forEach(function (edge) {
|
|
100
|
-
edge.shape_data.forEach(function (data) {
|
|
101
|
-
latlngs.push([data.lat, data.lng]);
|
|
102
|
-
});
|
|
103
|
-
|
|
104
|
-
var polylineBack = _leaflet.default.polyline(latlngs, {
|
|
105
|
-
color: 'rgb(227,227,227)',
|
|
106
|
-
weight: 6,
|
|
107
|
-
opacity: 1
|
|
108
|
-
}).addTo(map);
|
|
109
|
-
|
|
110
|
-
if (points.length !== 0) {
|
|
111
|
-
var sourcePoint = points.find(function (point) {
|
|
112
|
-
return point.id === edge.source_point_id;
|
|
113
|
-
});
|
|
114
|
-
var targetPoint = points.find(function (point) {
|
|
115
|
-
return point.id === edge.target_point_id;
|
|
116
|
-
});
|
|
117
|
-
|
|
118
|
-
if (sourcePoint !== undefined && targetPoint !== undefined) {
|
|
119
|
-
polylineBack.bindPopup("Edge ID: ".concat(edge.id, ",<br>\n Source point: ").concat(sourcePoint.group.name, ",<br>\n Target point: ").concat(targetPoint.group.name, ",\n Distance: ").concat(edge.distance));
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
if (sourcePoint) drawManholeIcon(sourcePoint);
|
|
123
|
-
if (targetPoint) drawManholeIcon(targetPoint);
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
polylineBack['kando_object_id'] = edge.id;
|
|
127
|
-
polylineBack['kando_object'] = 'HoveredEdge';
|
|
128
|
-
polylineBack.bringToFront();
|
|
129
|
-
|
|
130
|
-
var polylineFront = _leaflet.default.polyline(latlngs, {
|
|
131
|
-
color: 'rgb(29,29,29)',
|
|
132
|
-
weight: 1,
|
|
133
|
-
opacity: 1
|
|
134
|
-
}).addTo(map);
|
|
135
|
-
|
|
136
|
-
polylineFront['kando_object_id'] = edge.id;
|
|
137
|
-
polylineFront['kando_object'] = 'HoveredEdgeFront';
|
|
138
|
-
polylineFront.bringToFront();
|
|
139
|
-
dispatch((0, _actions.setHoveredEdgePaths)([polylineBack, polylineFront]));
|
|
140
|
-
latlngs = [];
|
|
141
|
-
});
|
|
142
|
-
};
|
|
143
|
-
|
|
144
30
|
var cleanupLogic = function cleanupLogic() {
|
|
145
31
|
dispatch((0, _actions.setHoveredEdgePaths)([]));
|
|
146
32
|
var layers = map._layers;
|
|
@@ -153,7 +39,7 @@ var NetworkForSpecificEvent = function NetworkForSpecificEvent(_ref) {
|
|
|
153
39
|
};
|
|
154
40
|
|
|
155
41
|
(0, _react.useEffect)(function () {
|
|
156
|
-
findAndDrawEventNetworkEdges();
|
|
42
|
+
(0, _EventUtils.findAndDrawEventNetworkEdges)(edges, event, points, dispatch, map);
|
|
157
43
|
return function cleanup() {
|
|
158
44
|
cleanupLogic();
|
|
159
45
|
};
|
|
@@ -162,4 +48,4 @@ var NetworkForSpecificEvent = function NetworkForSpecificEvent(_ref) {
|
|
|
162
48
|
};
|
|
163
49
|
|
|
164
50
|
exports.NetworkForSpecificEvent = NetworkForSpecificEvent;
|
|
165
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9XaWRnZXRzL01hcC9ldmVudHMvTmV0d29ya0ZvclNwZWNpZmljRXZlbnQudHN4Il0sIm5hbWVzIjpbIk5ldHdvcmtGb3JTcGVjaWZpY0V2ZW50IiwiZXZlbnQiLCJlZGdlcyIsInBvaW50cyIsIm1hcCIsImRpc3BhdGNoIiwiZ2V0Rmlyc3RFZGdlT2ZFdmVudFBhdGgiLCJmaW5kIiwiZWRnZSIsImlkIiwicGF0aCIsImVkZ2VfaWQiLCJnZXRVcHN0cmVhbUVkZ2VzIiwiZmlyc3RFZGdlIiwiZmlsdGVyIiwidGFyZ2V0X3BvaW50X2lkIiwic291cmNlX3BvaW50X2lkIiwiZmluZFVwc3RyZWFtRWRnZXNUb0RyYXciLCJ1cHN0cmVhbUVkZ2VzIiwiZWRnZXNUb0RyYXciLCJmb3JFYWNoIiwidXBzdHJlYW1FZGdlIiwic291cmNlUG9pbnQiLCJwb2ludCIsInB1c2giLCJmaW5kRWRnZXNGcm9tRXZlbnRQYXRoVG9EcmF3IiwicGFydCIsIm1hdGNoZWRQYXJ0IiwidW5kZWZpbmVkIiwiZmluZEFuZERyYXdFdmVudE5ldHdvcmtFZGdlcyIsImxlbmd0aCIsImRyYXdOZXR3b3JrIiwiZHJhd01hbmhvbGVJY29uIiwicG9pbnRJY29uIiwiTCIsImljb24iLCJpY29uVXJsIiwid2hpdGVQb2ludCIsImljb25TaXplIiwiaWNvbkFuY2hvciIsIm1hbmhvbGVJY29uIiwibWFya2VyIiwibGF0aXR1ZGUiLCJsb25naXR1ZGUiLCJyaXNlT25Ib3ZlciIsImFkZFRvIiwiYmluZFRvb2x0aXAiLCJncm91cCIsIm5hbWUiLCJsYXRsbmdzIiwic2hhcGVfZGF0YSIsImRhdGEiLCJsYXQiLCJsbmciLCJwb2x5bGluZUJhY2siLCJwb2x5bGluZSIsImNvbG9yIiwid2VpZ2h0Iiwib3BhY2l0eSIsInRhcmdldFBvaW50IiwiYmluZFBvcHVwIiwiZGlzdGFuY2UiLCJicmluZ1RvRnJvbnQiLCJwb2x5bGluZUZyb250IiwiY2xlYW51cExvZ2ljIiwibGF5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QU5IO0FBUUEsc0JBQU8sMkRBQVA7QUFDRCxDQWxKTSIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1pZ25vcmVcbmltcG9ydCBMLCB7IE1hcCBhcyBMZWFmbGV0TWFwIH0gZnJvbSAnbGVhZmxldCc7XG5pbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlRGlzcGF0Y2ggfSBmcm9tICdyZWFjdC1yZWR1eCc7XG5pbXBvcnQgeyBzZXRIb3ZlcmVkRWRnZVBhdGhzIH0gZnJvbSAnc3JjL3N0b3JlL2V2ZW50cy9hY3Rpb25zJztcbmltcG9ydCB7IElFdmVudCB9IGZyb20gJ3NyYy9zdG9yZS9ldmVudHMvbW9kZWxzL0lFdmVudCc7XG5pbXBvcnQgeyBJRWRnZSB9IGZyb20gJy4uLy4uLy4uL3N0b3JlL2VkZ2VzL21vZGVscy9JRWRnZSc7XG5pbXBvcnQgeyBJUG9pbnQgfSBmcm9tICcuLi8uLi8uLi9zdG9yZS9wb2ludHMvbW9kZWxzL0lQb2ludCc7XG5pbXBvcnQgd2hpdGVQb2ludCBmcm9tICcuLi8uLi8uLi9hc3NldHMvd2hpdGUtcG9pbnQucG5nJztcblxudHlwZSBJUHJvcHMgPSB7XG4gIGV2ZW50OiBJRXZlbnQ7XG4gIGVkZ2VzOiBJRWRnZVtdO1xuICBwb2ludHM6IElQb2ludFtdO1xuICBtYXA6IExlYWZsZXRNYXAgfCBhbnk7XG59O1xuXG5leHBvcnQgY29uc3QgTmV0d29ya0ZvclNwZWNpZmljRXZlbnQ6IFJlYWN0LkZDPElQcm9wcz4gPSAoe1xuICBldmVudCxcbiAgZWRnZXMsXG4gIHBvaW50cyxcbiAgbWFwLFxufSkgPT4ge1xuICBjb25zdCBkaXNwYXRjaCA9IHVzZURpc3BhdGNoKCk7XG5cbiAgY29uc3QgZ2V0Rmlyc3RFZGdlT2ZFdmVudFBhdGggPSAoKSA9PiB7XG4gICAgcmV0dXJuIGVkZ2VzLmZpbmQoKGVkZ2UpID0+IGVkZ2UuaWQgPT09IGV2ZW50LnBhdGhbMF0uZWRnZV9pZCk7XG4gIH07XG5cbiAgY29uc3QgZ2V0VXBzdHJlYW1FZGdlcyA9IChmaXJzdEVkZ2U6IElFZGdlKSA9PiB7XG4gICAgcmV0dXJuIGVkZ2VzLmZpbHRlcihcbiAgICAgIChlZGdlKSA9PiBlZGdlLnRhcmdldF9wb2ludF9pZCA9PT0gZmlyc3RFZGdlIS5zb3VyY2VfcG9pbnRfaWQsXG4gICAgKTtcbiAgfTtcblxuICBjb25zdCBmaW5kVXBzdHJlYW1FZGdlc1RvRHJhdyA9IChcbiAgICB1cHN0cmVhbUVkZ2VzOiBJRWRnZVtdLFxuICAgIGVkZ2VzVG9EcmF3OiBJRWRnZVtdLFxuICApID0+IHtcbiAgICB1cHN0cmVhbUVkZ2VzLmZvckVhY2goKHVwc3RyZWFtRWRnZSkgPT4ge1xuICAgICAgaWYgKHVwc3RyZWFtRWRnZSkge1xuICAgICAgICBsZXQgc291cmNlUG9pbnQgPSBwb2ludHMuZmluZChcbiAgICAgICAgICAocG9pbnQpID0+IHBvaW50LmlkID09PSB1cHN0cmVhbUVkZ2UhLnNvdXJjZV9wb2ludF9pZCxcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAoc291cmNlUG9pbnQpIGVkZ2VzVG9EcmF3LnB1c2godXBzdHJlYW1FZGdlKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBlZGdlc1RvRHJhdztcbiAgfTtcblxuICBjb25zdCBmaW5kRWRnZXNGcm9tRXZlbnRQYXRoVG9EcmF3ID0gKGVkZ2VzVG9EcmF3OiBJRWRnZVtdKSA9PiB7XG4gICAgZXZlbnQucGF0aC5mb3JFYWNoKChwYXJ0KSA9PiB7XG4gICAgICBsZXQgbWF0Y2hlZFBhcnQgPSBlZGdlcy5maW5kKChlZGdlKSA9PiBlZGdlLmlkID09PSBwYXJ0LmVkZ2VfaWQpO1xuICAgICAgaWYgKG1hdGNoZWRQYXJ0ICE9PSB1bmRlZmluZWQpIGVkZ2VzVG9EcmF3LnB1c2gobWF0Y2hlZFBhcnQpO1xuICAgIH0pO1xuICB9O1xuXG4gIGNvbnN0IGZpbmRBbmREcmF3RXZlbnROZXR3b3JrRWRnZXMgPSAoKSA9PiB7XG4gICAgbGV0IGVkZ2VzVG9EcmF3OiBJRWRnZVtdID0gW107XG4gICAgbGV0IGZpcnN0RWRnZSA9IGdldEZpcnN0RWRnZU9mRXZlbnRQYXRoKCk7XG5cbiAgICBpZiAoZmlyc3RFZGdlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGxldCB1cHN0cmVhbUVkZ2VzID0gZ2V0VXBzdHJlYW1FZGdlcyhmaXJzdEVkZ2UpO1xuICAgICAgaWYgKHVwc3RyZWFtRWRnZXMubGVuZ3RoICE9PSAwKVxuICAgICAgICBmaW5kVXBzdHJlYW1FZGdlc1RvRHJhdyh1cHN0cmVhbUVkZ2VzLCBlZGdlc1RvRHJhdyk7XG4gICAgfVxuXG4gICAgZmluZEVkZ2VzRnJvbUV2ZW50UGF0aFRvRHJhdyhlZGdlc1RvRHJhdyk7XG4gICAgZHJhd05ldHdvcmsoZWRnZXNUb0RyYXcpO1xuICB9O1xuXG4gIGNvbnN0IGRyYXdNYW5ob2xlSWNvbiA9IChzb3VyY2VQb2ludCkgPT4ge1xuICAgIGxldCBwb2ludEljb24gPSBMLmljb24oe1xuICAgICAgaWNvblVybDogd2hpdGVQb2ludCxcbiAgICAgIGljb25TaXplOiBbOSwgOV0sXG4gICAgICBpY29uQW5jaG9yOiBbNC41LCA0LjVdLFxuICAgIH0pO1xuICAgIGxldCBtYW5ob2xlSWNvbjogYW55ID0gTC5tYXJrZXIoXG4gICAgICBbc291cmNlUG9pbnQubGF0aXR1ZGUsIHNvdXJjZVBvaW50LmxvbmdpdHVkZV0sXG4gICAgICB7XG4gICAgICAgIGljb246IHBvaW50SWNvbixcbiAgICAgICAgcmlzZU9uSG92ZXI6IHRydWUsXG4gICAgICB9LFxuICAgICkuYWRkVG8obWFwKTtcbiAgICBtYW5ob2xlSWNvbi5iaW5kVG9vbHRpcChgJHtzb3VyY2VQb2ludC5ncm91cC5uYW1lfSAoJHtzb3VyY2VQb2ludC5pZH0pYCk7XG4gICAgbWFuaG9sZUljb25bJ2thbmRvX29iamVjdF9pZCddID0gc291cmNlUG9pbnQuaWQ7XG4gICAgbWFuaG9sZUljb25bJ2thbmRvX29iamVjdCddID0gJ1Vwc3RyZWFtUG9pbnQnO1xuICB9O1xuXG4gIGNvbnN0IGRyYXdOZXR3b3JrID0gKGVkZ2VzKSA9PiB7XG4gICAgbGV0IGxhdGxuZ3M6IGFueSA9IFtdO1xuICAgIGVkZ2VzLmZvckVhY2goKGVkZ2UpID0+IHtcbiAgICAgIGVkZ2Uuc2hhcGVfZGF0YS5mb3JFYWNoKChkYXRhOiBhbnkpID0+IHtcbiAgICAgICAgbGF0bG5ncy5wdXNoKFtkYXRhLmxhdCwgZGF0YS5sbmddKTtcbiAgICAgIH0pO1xuXG4gICAgICBsZXQgcG9seWxpbmVCYWNrOiBhbnkgPSBMLnBvbHlsaW5lKGxhdGxuZ3MsIHtcbiAgICAgICAgY29sb3I6ICdyZ2IoMjI3LDIyNywyMjcpJyxcbiAgICAgICAgd2VpZ2h0OiA2LFxuICAgICAgICBvcGFjaXR5OiAxLFxuICAgICAgfSkuYWRkVG8obWFwKTtcbiAgICAgIGlmIChwb2ludHMubGVuZ3RoICE9PSAwKSB7XG4gICAgICAgIGxldCBzb3VyY2VQb2ludCA9IHBvaW50cy5maW5kKFxuICAgICAgICAgIChwb2ludDogSVBvaW50KSA9PiBwb2ludC5pZCA9PT0gZWRnZS5zb3VyY2VfcG9pbnRfaWQsXG4gICAgICAgICk7XG4gICAgICAgIGxldCB0YXJnZXRQb2ludCA9IHBvaW50cy5maW5kKFxuICAgICAgICAgIChwb2ludDogSVBvaW50KSA9PiBwb2ludC5pZCA9PT0gZWRnZS50YXJnZXRfcG9pbnRfaWQsXG4gICAgICAgICk7XG4gICAgICAgIGlmIChzb3VyY2VQb2ludCAhPT0gdW5kZWZpbmVkICYmIHRhcmdldFBvaW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBwb2x5bGluZUJhY2suYmluZFBvcHVwKGBFZGdlIElEOiAke2VkZ2UuaWR9LDxicj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU291cmNlIHBvaW50OiAke3NvdXJjZVBvaW50Lmdyb3VwLm5hbWV9LDxicj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGFyZ2V0IHBvaW50OiAke3RhcmdldFBvaW50Lmdyb3VwLm5hbWV9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEaXN0YW5jZTogJHtlZGdlLmRpc3RhbmNlfWApO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHNvdXJjZVBvaW50KSBkcmF3TWFuaG9sZUljb24oc291cmNlUG9pbnQpO1xuICAgICAgICBpZiAodGFyZ2V0UG9pbnQpIGRyYXdNYW5ob2xlSWNvbih0YXJnZXRQb2ludCk7XG4gICAgICB9XG5cbiAgICAgIHBvbHlsaW5lQmFja1sna2FuZG9fb2JqZWN0X2lkJ10gPSBlZGdlLmlkO1xuICAgICAgcG9seWxpbmVCYWNrWydrYW5kb19vYmplY3QnXSA9ICdIb3ZlcmVkRWRnZSc7XG5cbiAgICAgIHBvbHlsaW5lQmFjay5icmluZ1RvRnJvbnQoKTtcblxuICAgICAgbGV0IHBvbHlsaW5lRnJvbnQ6IGFueSA9IEwucG9seWxpbmUobGF0bG5ncywge1xuICAgICAgICBjb2xvcjogJ3JnYigyOSwyOSwyOSknLFxuICAgICAgICB3ZWlnaHQ6IDEsXG4gICAgICAgIG9wYWNpdHk6IDEsXG4gICAgICB9KS5hZGRUbyhtYXApO1xuXG4gICAgICBwb2x5bGluZUZyb250WydrYW5kb19vYmplY3RfaWQnXSA9IGVkZ2UuaWQ7XG4gICAgICBwb2x5bGluZUZyb250WydrYW5kb19vYmplY3QnXSA9ICdIb3ZlcmVkRWRnZUZyb250JztcblxuICAgICAgcG9seWxpbmVGcm9udC5icmluZ1RvRnJvbnQoKTtcbiAgICAgIGRpc3BhdGNoKHNldEhvdmVyZWRFZGdlUGF0aHMoW3BvbHlsaW5lQmFjaywgcG9seWxpbmVGcm9udF0pKTtcbiAgICAgIGxhdGxuZ3MgPSBbXTtcbiAgICB9KTtcbiAgfTtcblxuICBjb25zdCBjbGVhbnVwTG9naWMgPSAoKSA9PiB7XG4gICAgZGlzcGF0Y2goc2V0SG92ZXJlZEVkZ2VQYXRocyhbXSkpO1xuICAgIGxldCBsYXllcnMgPSBtYXAuX2xheWVycztcbiAgICBmb3IgKGNvbnN0IHByb3BlcnR5IGluIGxheWVycykge1xuICAgICAgaWYgKFxuICAgICAgICBsYXllcnNbcHJvcGVydHldLmthbmRvX29iamVjdCAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgIGxheWVyc1twcm9wZXJ0eV0ua2FuZG9fb2JqZWN0ID09PSAnVXBzdHJlYW1Qb2ludCdcbiAgICAgICkge1xuICAgICAgICBtYXAucmVtb3ZlTGF5ZXIobGF5ZXJzW3Byb3BlcnR5XSk7XG4gICAgICB9XG4gICAgfVxuICB9O1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgZmluZEFuZERyYXdFdmVudE5ldHdvcmtFZGdlcygpO1xuXG4gICAgcmV0dXJuIGZ1bmN0aW9uIGNsZWFudXAoKSB7XG4gICAgICBjbGVhbnVwTG9naWMoKTtcbiAgICB9O1xuICB9LCBbZXZlbnRdKTtcblxuICByZXR1cm4gPD48Lz47XG59O1xuIl19
|
|
51
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9XaWRnZXRzL01hcC9ldmVudHMvTmV0d29ya0ZvclNwZWNpZmljRXZlbnQudHN4Il0sIm5hbWVzIjpbIk5ldHdvcmtGb3JTcGVjaWZpY0V2ZW50IiwiZXZlbnQiLCJlZGdlcyIsInBvaW50cyIsIm1hcCIsImRpc3BhdGNoIiwiY2xlYW51cExvZ2ljIiwibGF5ZXJzIiwiX2xheWVycyIsInByb3BlcnR5Iiwia2FuZG9fb2JqZWN0IiwidW5kZWZpbmVkIiwicmVtb3ZlTGF5ZXIiLCJjbGVhbnVwIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFFQTs7QUFDQTs7QUFDQTs7QUFJQTs7Ozs7O0FBUkE7QUFpQk8sSUFBTUEsdUJBQXlDLEdBQUcsU0FBNUNBLHVCQUE0QyxPQUtuRDtBQUFBLE1BSkpDLEtBSUksUUFKSkEsS0FJSTtBQUFBLE1BSEpDLEtBR0ksUUFISkEsS0FHSTtBQUFBLE1BRkpDLE1BRUksUUFGSkEsTUFFSTtBQUFBLE1BREpDLEdBQ0ksUUFESkEsR0FDSTtBQUNKLE1BQU1DLFFBQVEsR0FBRyw4QkFBakI7O0FBQ0EsTUFBTUMsWUFBWSxHQUFHLFNBQWZBLFlBQWUsR0FBTTtBQUN6QkQsSUFBQUEsUUFBUSxDQUFDLGtDQUFvQixFQUFwQixDQUFELENBQVI7QUFDQSxRQUFJRSxNQUFNLEdBQUdILEdBQUcsQ0FBQ0ksT0FBakI7O0FBQ0EsU0FBSyxJQUFNQyxRQUFYLElBQXVCRixNQUF2QixFQUErQjtBQUM3QixVQUNFQSxNQUFNLENBQUNFLFFBQUQsQ0FBTixDQUFpQkMsWUFBakIsS0FBa0NDLFNBQWxDLElBQ0FKLE1BQU0sQ0FBQ0UsUUFBRCxDQUFOLENBQWlCQyxZQUFqQixLQUFrQyxlQUZwQyxFQUdFO0FBQ0FOLFFBQUFBLEdBQUcsQ0FBQ1EsV0FBSixDQUFnQkwsTUFBTSxDQUFDRSxRQUFELENBQXRCO0FBQ0Q7QUFDRjtBQUNGLEdBWEQ7O0FBYUEsd0JBQVUsWUFBTTtBQUNkLGtEQUE2QlAsS0FBN0IsRUFBb0NELEtBQXBDLEVBQTJDRSxNQUEzQyxFQUFtREUsUUFBbkQsRUFBNkRELEdBQTdEO0FBRUEsV0FBTyxTQUFTUyxPQUFULEdBQW1CO0FBQ3hCUCxNQUFBQSxZQUFZO0FBQ2IsS0FGRDtBQUdELEdBTkQsRUFNRyxDQUFDTCxLQUFELENBTkg7QUFRQSxzQkFBTywyREFBUDtBQUNELENBN0JNIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWlnbm9yZVxuaW1wb3J0IHsgTWFwIGFzIExlYWZsZXRNYXAgfSBmcm9tICdsZWFmbGV0JztcbmltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VEaXNwYXRjaCB9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCB7IHNldEhvdmVyZWRFZGdlUGF0aHMgfSBmcm9tICdzcmMvc3RvcmUvZXZlbnRzL2FjdGlvbnMnO1xuaW1wb3J0IHsgSUV2ZW50IH0gZnJvbSAnc3JjL3N0b3JlL2V2ZW50cy9tb2RlbHMvSUV2ZW50JztcbmltcG9ydCB7IElFZGdlIH0gZnJvbSAnLi4vLi4vLi4vc3RvcmUvZWRnZXMvbW9kZWxzL0lFZGdlJztcbmltcG9ydCB7IElQb2ludCB9IGZyb20gJy4uLy4uLy4uL3N0b3JlL3BvaW50cy9tb2RlbHMvSVBvaW50JztcbmltcG9ydCB7IGZpbmRBbmREcmF3RXZlbnROZXR3b3JrRWRnZXMgfSBmcm9tICcuL0V2ZW50VXRpbHMnO1xuXG50eXBlIElQcm9wcyA9IHtcbiAgZXZlbnQ6IElFdmVudDtcbiAgZWRnZXM6IElFZGdlW107XG4gIHBvaW50czogSVBvaW50W107XG4gIG1hcDogTGVhZmxldE1hcCB8IGFueTtcbn07XG5cbmV4cG9ydCBjb25zdCBOZXR3b3JrRm9yU3BlY2lmaWNFdmVudDogUmVhY3QuRkM8SVByb3BzPiA9ICh7XG4gIGV2ZW50LFxuICBlZGdlcyxcbiAgcG9pbnRzLFxuICBtYXAsXG59KSA9PiB7XG4gIGNvbnN0IGRpc3BhdGNoID0gdXNlRGlzcGF0Y2goKTtcbiAgY29uc3QgY2xlYW51cExvZ2ljID0gKCkgPT4ge1xuICAgIGRpc3BhdGNoKHNldEhvdmVyZWRFZGdlUGF0aHMoW10pKTtcbiAgICBsZXQgbGF5ZXJzID0gbWFwLl9sYXllcnM7XG4gICAgZm9yIChjb25zdCBwcm9wZXJ0eSBpbiBsYXllcnMpIHtcbiAgICAgIGlmIChcbiAgICAgICAgbGF5ZXJzW3Byb3BlcnR5XS5rYW5kb19vYmplY3QgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICBsYXllcnNbcHJvcGVydHldLmthbmRvX29iamVjdCA9PT0gJ1Vwc3RyZWFtUG9pbnQnXG4gICAgICApIHtcbiAgICAgICAgbWFwLnJlbW92ZUxheWVyKGxheWVyc1twcm9wZXJ0eV0pO1xuICAgICAgfVxuICAgIH1cbiAgfTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGZpbmRBbmREcmF3RXZlbnROZXR3b3JrRWRnZXMoZWRnZXMsIGV2ZW50LCBwb2ludHMsIGRpc3BhdGNoLCBtYXApO1xuXG4gICAgcmV0dXJuIGZ1bmN0aW9uIGNsZWFudXAoKSB7XG4gICAgICBjbGVhbnVwTG9naWMoKTtcbiAgICB9O1xuICB9LCBbZXZlbnRdKTtcblxuICByZXR1cm4gPD48Lz47XG59O1xuIl19
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
exports.PointOfEvent = void 0;
|
|
11
|
+
|
|
12
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
13
|
+
|
|
14
|
+
var _PointUtils = require("../points/PointUtils");
|
|
15
|
+
|
|
16
|
+
var _reactDom = _interopRequireDefault(require("react-dom"));
|
|
17
|
+
|
|
18
|
+
var _TimeFormat = _interopRequireDefault(require("../../../utilities/TimeFormat"));
|
|
19
|
+
|
|
20
|
+
var _Sector = _interopRequireDefault(require("../../../components/Sector"));
|
|
21
|
+
|
|
22
|
+
var _jquery = _interopRequireDefault(require("jquery"));
|
|
23
|
+
|
|
24
|
+
var _actions = require("../../../store/global/actions");
|
|
25
|
+
|
|
26
|
+
var _reactRedux = require("react-redux");
|
|
27
|
+
|
|
28
|
+
var _useRemoveExistingLayers = require("../../../hooks/useRemoveExistingLayers");
|
|
29
|
+
|
|
30
|
+
var _EventUtils = require("./EventUtils");
|
|
31
|
+
|
|
32
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
33
|
+
|
|
34
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
35
|
+
|
|
36
|
+
var PointOfEvent = function PointOfEvent(_ref) {
|
|
37
|
+
var map = _ref.map,
|
|
38
|
+
point = _ref.point,
|
|
39
|
+
event = _ref.event;
|
|
40
|
+
var dispatch = (0, _reactRedux.useDispatch)();
|
|
41
|
+
|
|
42
|
+
var bindPopupToPoint = function bindPopupToPoint() {
|
|
43
|
+
var obs = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
|
|
44
|
+
var layers = map._layers;
|
|
45
|
+
|
|
46
|
+
var _loop = function _loop(property) {
|
|
47
|
+
if (['Point', 'Observation'].includes(layers[property].kando_object) && layers[property].kando_object_id === point.id) {
|
|
48
|
+
layers[property].bindPopup((0, _PointUtils.popupContent)(obs, point), {
|
|
49
|
+
minWidth: 200
|
|
50
|
+
});
|
|
51
|
+
layers[property].on('popupopen', function (e) {
|
|
52
|
+
var firstSeen = document.createElement('div');
|
|
53
|
+
var lastSeen = document.createElement('div');
|
|
54
|
+
var sector = document.createElement('div');
|
|
55
|
+
|
|
56
|
+
if (obs !== null) {
|
|
57
|
+
_reactDom.default.render( /*#__PURE__*/_react.default.createElement(_TimeFormat.default, {
|
|
58
|
+
timestamp: obs.start_time,
|
|
59
|
+
time_zone: obs.time_zone
|
|
60
|
+
}), firstSeen);
|
|
61
|
+
|
|
62
|
+
_reactDom.default.render( /*#__PURE__*/_react.default.createElement(_TimeFormat.default, {
|
|
63
|
+
timestamp: obs.last_seen_time,
|
|
64
|
+
time_zone: obs.time_zone
|
|
65
|
+
}), lastSeen);
|
|
66
|
+
} else {
|
|
67
|
+
_reactDom.default.render( /*#__PURE__*/_react.default.createElement(_Sector.default, {
|
|
68
|
+
sectorName: point.group.sector_name,
|
|
69
|
+
sectorIconName: point.group.sector_icon_name,
|
|
70
|
+
width: "37"
|
|
71
|
+
}), sector);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
setTimeout(function () {
|
|
75
|
+
(0, _jquery.default)('#first-seen-popup').append(firstSeen);
|
|
76
|
+
(0, _jquery.default)('#last-seen-popup').append(lastSeen);
|
|
77
|
+
(0, _jquery.default)('#sector').append(sector);
|
|
78
|
+
}, 200);
|
|
79
|
+
|
|
80
|
+
var attachClickEvent = function attachClickEvent(selector, observation) {
|
|
81
|
+
(0, _jquery.default)(document.body).on('click', selector, function () {
|
|
82
|
+
dispatch((0, _actions.closeFloatingGraph)());
|
|
83
|
+
dispatch((0, _actions.openFloatingGraph)(true, observation, point));
|
|
84
|
+
});
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
if (obs !== null) {
|
|
88
|
+
attachClickEvent('.popup-graph-icon-' + obs.id, obs);
|
|
89
|
+
} else {
|
|
90
|
+
attachClickEvent('.popup-graph-icon-' + point.id, null);
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
layers[property].on('click', function () {
|
|
94
|
+
layers[property].openPopup();
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
};
|
|
98
|
+
|
|
99
|
+
for (var property in layers) {
|
|
100
|
+
_loop(property);
|
|
101
|
+
}
|
|
102
|
+
};
|
|
103
|
+
|
|
104
|
+
(0, _react.useEffect)(function () {
|
|
105
|
+
var markerLocation = [point['latitude'], point['longitude']];
|
|
106
|
+
(0, _PointUtils.createManholePoint)(markerLocation, point, map, event.hovered);
|
|
107
|
+
if (point.has_device || (0, _EventUtils.pointIsObservation)(event, point)) (0, _PointUtils.createBubblePoint)(markerLocation, point, map, event.hovered);
|
|
108
|
+
if (event.focused) (0, _PointUtils.createSamplingIcons)(markerLocation, event, point, map, event.hovered);
|
|
109
|
+
var hasPrimaryIcon = (0, _PointUtils.matchIconToPoint)(point, event) !== null;
|
|
110
|
+
|
|
111
|
+
if ((0, _EventUtils.pointIsObservation)(event, point) && event.focused) {
|
|
112
|
+
(0, _PointUtils.createObservationIconPoint)(markerLocation, hasPrimaryIcon, map, point, event, event.hovered);
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
var obs = event.observations.filter(function (obs) {
|
|
116
|
+
return obs.point_id === point.id;
|
|
117
|
+
})[0];
|
|
118
|
+
if (obs !== undefined) bindPopupToPoint(obs);
|
|
119
|
+
|
|
120
|
+
if (event.hovered) {
|
|
121
|
+
return function cleanup() {
|
|
122
|
+
// UNBIND POPUP
|
|
123
|
+
(0, _useRemoveExistingLayers.removeFromMap)(map, point, 'ObservationHovered');
|
|
124
|
+
(0, _useRemoveExistingLayers.removeFromMap)(map, point, 'PointHovered');
|
|
125
|
+
(0, _useRemoveExistingLayers.removeFromMap)(map, point, 'SamplingHovered');
|
|
126
|
+
(0, _useRemoveExistingLayers.removeFromMap)(map, point, 'IconNumberHovered');
|
|
127
|
+
};
|
|
128
|
+
} else {
|
|
129
|
+
return function cleanup() {
|
|
130
|
+
// UNBIND POPUP
|
|
131
|
+
(0, _useRemoveExistingLayers.removeFromMap)(map, point, 'Observation');
|
|
132
|
+
(0, _useRemoveExistingLayers.removeFromMap)(map, point, 'Point');
|
|
133
|
+
(0, _useRemoveExistingLayers.removeFromMap)(map, point, 'Sampling');
|
|
134
|
+
(0, _useRemoveExistingLayers.removeFromMap)(map, point, 'IconNumber');
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
}, [event]);
|
|
138
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null);
|
|
139
|
+
};
|
|
140
|
+
|
|
141
|
+
exports.PointOfEvent = PointOfEvent;
|
|
142
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9XaWRnZXRzL01hcC9ldmVudHMvUG9pbnRPZkV2ZW50LnRzeCJdLCJuYW1lcyI6WyJQb2ludE9mRXZlbnQiLCJtYXAiLCJwb2ludCIsImV2ZW50IiwiZGlzcGF0Y2giLCJiaW5kUG9wdXBUb1BvaW50Iiwib2JzIiwibGF5ZXJzIiwiX2xheWVycyIsInByb3BlcnR5IiwiaW5jbHVkZXMiLCJrYW5kb19vYmplY3QiLCJrYW5kb19vYmplY3RfaWQiLCJpZCIsImJpbmRQb3B1cCIsIm1pbldpZHRoIiwib24iLCJlIiwiZmlyc3RTZWVuIiwiZG9jdW1lbnQiLCJjcmVhdGVFbGVtZW50IiwibGFzdFNlZW4iLCJzZWN0b3IiLCJSZWFjdERPTSIsInJlbmRlciIsInN0YXJ0X3RpbWUiLCJ0aW1lX3pvbmUiLCJsYXN0X3NlZW5fdGltZSIsImdyb3VwIiwic2VjdG9yX25hbWUiLCJzZWN0b3JfaWNvbl9uYW1lIiwic2V0VGltZW91dCIsImFwcGVuZCIsImF0dGFjaENsaWNrRXZlbnQiLCJzZWxlY3RvciIsIm9ic2VydmF0aW9uIiwiYm9keSIsIm9wZW5Qb3B1cCIsIm1hcmtlckxvY2F0aW9uIiwiaG92ZXJlZCIsImhhc19kZXZpY2UiLCJmb2N1c2VkIiwiaGFzUHJpbWFyeUljb24iLCJvYnNlcnZhdGlvbnMiLCJmaWx0ZXIiLCJwb2ludF9pZCIsInVuZGVmaW5lZCIsImNsZWFudXAiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBUUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBT0E7O0FBQ0E7O0FBQ0E7Ozs7OztBQVFPLElBQU1BLFlBQThCLEdBQUcsU0FBakNBLFlBQWlDLE9BQTJCO0FBQUEsTUFBeEJDLEdBQXdCLFFBQXhCQSxHQUF3QjtBQUFBLE1BQW5CQyxLQUFtQixRQUFuQkEsS0FBbUI7QUFBQSxNQUFaQyxLQUFZLFFBQVpBLEtBQVk7QUFDdkUsTUFBTUMsUUFBUSxHQUFHLDhCQUFqQjs7QUFFQSxNQUFN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QUFLLENBQUN3QyxZQUFOLENBQW1CQyxNQUFuQixDQUEwQixVQUFDdEMsR0FBRDtBQUFBLGFBQVNBLEdBQUcsQ0FBQ3VDLFFBQUosS0FBaUIzQyxLQUFLLENBQUNXLEVBQWhDO0FBQUEsS0FBMUIsRUFBOEQsQ0FBOUQsQ0FBVjtBQUNBLFFBQUlQLEdBQUcsS0FBS3dDLFNBQVosRUFBdUJ6QyxnQkFBZ0IsQ0FBQ0MsR0FBRCxDQUFoQjs7QUFFdkIsUUFBSUgsS0FBSyxDQUFDb0MsT0FBVixFQUFtQjtBQUNqQixhQUFPLFNBQVNRLE9BQVQsR0FBbUI7QUFDeEI7QUFDQSxvREFBYzlDLEdBQWQsRUFBbUJDLEtBQW5CLEVBQTBCLG9CQUExQjtBQUNBLG9EQUFjRCxHQUFkLEVBQW1CQyxLQUFuQixFQUEwQixjQUExQjtBQUNBLG9EQUFjRCxHQUFkLEVBQW1CQyxLQUFuQixFQUEwQixpQkFBMUI7QUFDQSxvREFBY0QsR0FBZCxFQUFtQkMsS0FBbkIsRUFBMEIsbUJBQTFCO0FBQ0QsT0FORDtBQU9ELEtBUkQsTUFRTztBQUNMLGFBQU8sU0FBUzZDLE9BQVQsR0FBbUI7QUFDeEI7QUFDQSxvREFBYzlDLEdBQWQsRUFBbUJDLEtBQW5CLEVBQTBCLGFBQTFCO0FBQ0Esb0RBQWNELEdBQWQsRUFBbUJDLEtBQW5CLEVBQTBCLE9BQTFCO0FBQ0Esb0RBQWNELEdBQWQsRUFBbUJDLEtBQW5CLEVBQTBCLFVBQTFCO0FBQ0Esb0RBQWNELEdBQWQsRUFBbUJDLEtBQW5CLEVBQTBCLFlBQTFCO0FBQ0QsT0FORDtBQU9EO0FBQ0YsR0F4Q0QsRUF3Q0csQ0FBQ0MsS0FBRCxDQXhDSDtBQTBDQSxzQkFBTywyREFBUDtBQUNELENBakhNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7XG4gIGNyZWF0ZUJ1YmJsZVBvaW50LFxuICBjcmVhdGVNYW5ob2xlUG9pbnQsXG4gIGNyZWF0ZU9ic2VydmF0aW9uSWNvblBvaW50LFxuICBjcmVhdGVTYW1wbGluZ0ljb25zLFxuICBtYXRjaEljb25Ub1BvaW50LFxuICBwb3B1cENvbnRlbnQsXG59IGZyb20gJy4uL3BvaW50cy9Qb2ludFV0aWxzJztcbmltcG9ydCBSZWFjdERPTSBmcm9tICdyZWFjdC1kb20nO1xuaW1wb3J0IFRpbWVGb3JtYXQgZnJvbSAnLi4vLi4vLi4vdXRpbGl0aWVzL1RpbWVGb3JtYXQnO1xuaW1wb3J0IFNlY3RvciBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL1NlY3Rvcic7XG5pbXBvcnQgJCBmcm9tICdqcXVlcnknO1xuaW1wb3J0IHtcbiAgY2xvc2VGbG9hdGluZ0dyYXBoLFxuICBvcGVuRmxvYXRpbmdHcmFwaCxcbn0gZnJvbSAnLi4vLi4vLi4vc3RvcmUvZ2xvYmFsL2FjdGlvbnMnO1xuaW1wb3J0IHsgTGF0TG5nVHVwbGUgfSBmcm9tICdsZWFmbGV0JztcbmltcG9ydCB7IElQb2ludCB9IGZyb20gJy4uLy4uLy4uL3N0b3JlL3BvaW50cy9tb2RlbHMvSVBvaW50JztcbmltcG9ydCB7IElFdmVudCB9IGZyb20gJy4uLy4uLy4uL3N0b3JlL2V2ZW50cy9tb2RlbHMvSUV2ZW50JztcbmltcG9ydCB7IHVzZURpc3BhdGNoIH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuaW1wb3J0IHsgcmVtb3ZlRnJvbU1hcCB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZVJlbW92ZUV4aXN0aW5nTGF5ZXJzJztcbmltcG9ydCB7IHBvaW50SXNPYnNlcnZhdGlvbiB9IGZyb20gJy4vRXZlbnRVdGlscyc7XG5cbnR5cGUgSVByb3BzID0ge1xuICBtYXA6IGFueTtcbiAgcG9pbnQ6IElQb2ludDtcbiAgZXZlbnQ6IElFdmVudDtcbn07XG5cbmV4cG9ydCBjb25zdCBQb2ludE9mRXZlbnQ6IFJlYWN0LkZDPElQcm9wcz4gPSAoeyBtYXAsIHBvaW50LCBldmVudCB9KSA9PiB7XG4gIGNvbnN0IGRpc3BhdGNoID0gdXNlRGlzcGF0Y2goKTtcblxuICBjb25zdCBiaW5kUG9wdXBUb1BvaW50ID0gKG9iczogYW55ID0gbnVsbCkgPT4ge1xuICAgIGxldCBsYXllcnMgPSBtYXAuX2xheWVycztcbiAgICBmb3IgKGNvbnN0IHByb3BlcnR5IGluIGxheWVycykge1xuICAgICAgaWYgKFxuICAgICAgICBbJ1BvaW50JywgJ09ic2VydmF0aW9uJ10uaW5jbHVkZXMobGF5ZXJzW3Byb3BlcnR5XS5rYW5kb19vYmplY3QpICYmXG4gICAgICAgIGxheWVyc1twcm9wZXJ0eV0ua2FuZG9fb2JqZWN0X2lkID09PSBwb2ludC5pZFxuICAgICAgKSB7XG4gICAgICAgIGxheWVyc1twcm9wZXJ0eV0uYmluZFBvcHVwKHBvcHVwQ29udGVudChvYnMsIHBvaW50KSwge1xuICAgICAgICAgIG1pbldpZHRoOiAyMDAsXG4gICAgICAgIH0pO1xuICAgICAgICBsYXllcnNbcHJvcGVydHldLm9uKCdwb3B1cG9wZW4nLCBmdW5jdGlvbiAoZTogYW55KSB7XG4gICAgICAgICAgbGV0IGZpcnN0U2VlbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICAgIGxldCBsYXN0U2VlbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICAgIGxldCBzZWN0b3IgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcblxuICAgICAgICAgIGlmIChvYnMgIT09IG51bGwpIHtcbiAgICAgICAgICAgIFJlYWN0RE9NLnJlbmRlcihcbiAgICAgICAgICAgICAgPFRpbWVGb3JtYXRcbiAgICAgICAgICAgICAgICB0aW1lc3RhbXA9e29icy5zdGFydF90aW1lfVxuICAgICAgICAgICAgICAgIHRpbWVfem9uZT17b2JzLnRpbWVfem9uZX1cbiAgICAgICAgICAgICAgLz4sXG4gICAgICAgICAgICAgIGZpcnN0U2VlbixcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBSZWFjdERPTS5yZW5kZXIoXG4gICAgICAgICAgICAgIDxUaW1lRm9ybWF0XG4gICAgICAgICAgICAgICAgdGltZXN0YW1wPXtvYnMubGFzdF9zZWVuX3RpbWV9XG4gICAgICAgICAgICAgICAgdGltZV96b25lPXtvYnMudGltZV96b25lfVxuICAgICAgICAgICAgICAvPixcbiAgICAgICAgICAgICAgbGFzdFNlZW4sXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBSZWFjdERPTS5yZW5kZXIoXG4gICAgICAgICAgICAgIDxTZWN0b3JcbiAgICAgICAgICAgICAgICBzZWN0b3JOYW1lPXtwb2ludC5ncm91cC5zZWN0b3JfbmFtZX1cbiAgICAgICAgICAgICAgICBzZWN0b3JJY29uTmFtZT17cG9pbnQuZ3JvdXAuc2VjdG9yX2ljb25fbmFtZX1cbiAgICAgICAgICAgICAgICB3aWR0aD1cIjM3XCJcbiAgICAgICAgICAgICAgLz4sXG4gICAgICAgICAgICAgIHNlY3RvcixcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAkKCcjZmlyc3Qtc2Vlbi1wb3B1cCcpLmFwcGVuZChmaXJzdFNlZW4pO1xuICAgICAgICAgICAgJCgnI2xhc3Qtc2Vlbi1wb3B1cCcpLmFwcGVuZChsYXN0U2Vlbik7XG4gICAgICAgICAgICAkKCcjc2VjdG9yJykuYXBwZW5kKHNlY3Rvcik7XG4gICAgICAgICAgfSwgMjAwKTtcblxuICAgICAgICAgIGxldCBhdHRhY2hDbGlja0V2ZW50ID0gKHNlbGVjdG9yOiBzdHJpbmcsIG9ic2VydmF0aW9uOiBhbnkpID0+IHtcbiAgICAgICAgICAgICQoZG9jdW1lbnQuYm9keSkub24oJ2NsaWNrJywgc2VsZWN0b3IsICgpID0+IHtcbiAgICAgICAgICAgICAgZGlzcGF0Y2goY2xvc2VGbG9hdGluZ0dyYXBoKCkpO1xuICAgICAgICAgICAgICBkaXNwYXRjaChvcGVuRmxvYXRpbmdHcmFwaCh0cnVlLCBvYnNlcnZhdGlvbiwgcG9pbnQpKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH07XG5cbiAgICAgICAgICBpZiAob2JzICE9PSBudWxsKSB7XG4gICAgICAgICAgICBhdHRhY2hDbGlja0V2ZW50KCcucG9wdXAtZ3JhcGgtaWNvbi0nICsgb2JzLmlkLCBvYnMpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBhdHRhY2hDbGlja0V2ZW50KCcucG9wdXAtZ3JhcGgtaWNvbi0nICsgcG9pbnQuaWQsIG51bGwpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIGxheWVyc1twcm9wZXJ0eV0ub24oJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgICAgIGxheWVyc1twcm9wZXJ0eV0ub3BlblBvcHVwKCk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGxldCBtYXJrZXJMb2NhdGlvbjogTGF0TG5nVHVwbGUgPSBbcG9pbnRbJ2xhdGl0dWRlJ10sIHBvaW50Wydsb25naXR1ZGUnXV07XG4gICAgY3JlYXRlTWFuaG9sZVBvaW50KG1hcmtlckxvY2F0aW9uLCBwb2ludCwgbWFwLCBldmVudC5ob3ZlcmVkKTtcbiAgICBpZiAocG9pbnQuaGFzX2RldmljZSB8fCBwb2ludElzT2JzZXJ2YXRpb24oZXZlbnQsIHBvaW50KSlcbiAgICAgIGNyZWF0ZUJ1YmJsZVBvaW50KG1hcmtlckxvY2F0aW9uLCBwb2ludCwgbWFwLCBldmVudC5ob3ZlcmVkKTtcbiAgICBpZiAoZXZlbnQuZm9jdXNlZClcbiAgICAgIGNyZWF0ZVNhbXBsaW5nSWNvbnMobWFya2VyTG9jYXRpb24sIGV2ZW50LCBwb2ludCwgbWFwLCBldmVudC5ob3ZlcmVkKTtcbiAgICBsZXQgaGFzUHJpbWFyeUljb24gPSBtYXRjaEljb25Ub1BvaW50KHBvaW50LCBldmVudCkgIT09IG51bGw7XG5cbiAgICBpZiAocG9pbnRJc09ic2VydmF0aW9uKGV2ZW50LCBwb2ludCkgJiYgZXZlbnQuZm9jdXNlZCkge1xuICAgICAgY3JlYXRlT2JzZXJ2YXRpb25JY29uUG9pbnQoXG4gICAgICAgIG1hcmtlckxvY2F0aW9uLFxuICAgICAgICBoYXNQcmltYXJ5SWNvbixcbiAgICAgICAgbWFwLFxuICAgICAgICBwb2ludCxcbiAgICAgICAgZXZlbnQsXG4gICAgICAgIGV2ZW50LmhvdmVyZWQsXG4gICAgICApO1xuICAgIH1cblxuICAgIGxldCBvYnMgPSBldmVudC5vYnNlcnZhdGlvbnMuZmlsdGVyKChvYnMpID0+IG9icy5wb2ludF9pZCA9PT0gcG9pbnQuaWQpWzBdO1xuICAgIGlmIChvYnMgIT09IHVuZGVmaW5lZCkgYmluZFBvcHVwVG9Qb2ludChvYnMpO1xuXG4gICAgaWYgKGV2ZW50LmhvdmVyZWQpIHtcbiAgICAgIHJldHVybiBmdW5jdGlvbiBjbGVhbnVwKCkge1xuICAgICAgICAvLyBVTkJJTkQgUE9QVVBcbiAgICAgICAgcmVtb3ZlRnJvbU1hcChtYXAsIHBvaW50LCAnT2JzZXJ2YXRpb25Ib3ZlcmVkJyk7XG4gICAgICAgIHJlbW92ZUZyb21NYXAobWFwLCBwb2ludCwgJ1BvaW50SG92ZXJlZCcpO1xuICAgICAgICByZW1vdmVGcm9tTWFwKG1hcCwgcG9pbnQsICdTYW1wbGluZ0hvdmVyZWQnKTtcbiAgICAgICAgcmVtb3ZlRnJvbU1hcChtYXAsIHBvaW50LCAnSWNvbk51bWJlckhvdmVyZWQnKTtcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBmdW5jdGlvbiBjbGVhbnVwKCkge1xuICAgICAgICAvLyBVTkJJTkQgUE9QVVBcbiAgICAgICAgcmVtb3ZlRnJvbU1hcChtYXAsIHBvaW50LCAnT2JzZXJ2YXRpb24nKTtcbiAgICAgICAgcmVtb3ZlRnJvbU1hcChtYXAsIHBvaW50LCAnUG9pbnQnKTtcbiAgICAgICAgcmVtb3ZlRnJvbU1hcChtYXAsIHBvaW50LCAnU2FtcGxpbmcnKTtcbiAgICAgICAgcmVtb3ZlRnJvbU1hcChtYXAsIHBvaW50LCAnSWNvbk51bWJlcicpO1xuICAgICAgfTtcbiAgICB9XG4gIH0sIFtldmVudF0pO1xuXG4gIHJldHVybiA8PjwvPjtcbn07XG4iXX0=
|