@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.
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+
3
+ var _typeof = require("@babel/runtime/helpers/typeof");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.PointsForSpecificEvent = void 0;
9
+
10
+ var _react = _interopRequireWildcard(require("react"));
11
+
12
+ var _EventUtils = require("./EventUtils");
13
+
14
+ var _PointOfEvent = require("./PointOfEvent");
15
+
16
+ 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); }
17
+
18
+ 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; }
19
+
20
+ var PointsForSpecificEvent = function PointsForSpecificEvent(_ref) {
21
+ var points = _ref.points,
22
+ event = _ref.event,
23
+ edges = _ref.edges,
24
+ map = _ref.map;
25
+
26
+ var findPointsToDraw = function findPointsToDraw() {
27
+ if (event.path.length !== 0) {
28
+ var relevantEdges = [];
29
+ var releventPoints = [];
30
+ (0, _EventUtils.findEdgesFromEventPathToDraw)(relevantEdges, event, edges);
31
+ relevantEdges.forEach(function (edge) {
32
+ var pointToDraw = points.find(function (p) {
33
+ return p.part_of_monitored_path && p.id === edge.source_point_id;
34
+ });
35
+ if (pointToDraw !== undefined) releventPoints.push(pointToDraw);
36
+ });
37
+ var lastPointOfHierarchy = undefined;
38
+ if (relevantEdges.length > 1) lastPointOfHierarchy = points.find(function (p) {
39
+ return p.id === relevantEdges[relevantEdges.length - 1].target_point_id && p.part_of_monitored_path;
40
+ });
41
+ if (lastPointOfHierarchy !== undefined && !releventPoints.includes(lastPointOfHierarchy)) releventPoints.push(lastPointOfHierarchy);
42
+ return releventPoints;
43
+ } else {
44
+ var _releventPoints = [];
45
+ event.observations.forEach(function (obs) {
46
+ var findPoint = points.find(function (p) {
47
+ return p.id === obs.point_id;
48
+ });
49
+ if (findPoint) _releventPoints.push(findPoint);
50
+ });
51
+ return _releventPoints;
52
+ }
53
+ };
54
+
55
+ (0, _react.useEffect)(function () {}, [event.focused, event.hovered]);
56
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, findPointsToDraw().map(function (point) {
57
+ return /*#__PURE__*/_react.default.createElement(_PointOfEvent.PointOfEvent, {
58
+ map: map,
59
+ point: point,
60
+ event: event
61
+ });
62
+ }));
63
+ };
64
+
65
+ exports.PointsForSpecificEvent = PointsForSpecificEvent;
66
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9XaWRnZXRzL01hcC9ldmVudHMvUG9pbnRzRm9yU3BlY2lmaWNFdmVudC50c3giXSwibmFtZXMiOlsiUG9pbnRzRm9yU3BlY2lmaWNFdmVudCIsInBvaW50cyIsImV2ZW50IiwiZWRnZXMiLCJtYXAiLCJmaW5kUG9pbnRzVG9EcmF3IiwicGF0aCIsImxlbmd0aCIsInJlbGV2YW50RWRnZXMiLCJyZWxldmVudFBvaW50cyIsImZvckVhY2giLCJlZGdlIiwicG9pbnRUb0RyYXciLCJmaW5kIiwicCIsInBhcnRfb2ZfbW9uaXRvcmVkX3BhdGgiLCJpZCIsInNvdXJjZV9wb2ludF9pZCIsInVuZGVmaW5lZCIsInB1c2giLCJsYXN0UG9pbnRPZkhpZXJhcmNoeSIsInRhcmdldF9wb2ludF9pZCIsImluY2x1ZGVzIiwib2JzZXJ2YXRpb25zIiwib2JzIiwiZmluZFBvaW50IiwicG9pbnRfaWQiLCJmb2N1c2VkIiwiaG92ZXJlZCIsInBvaW50Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQTs7QUFFQTs7QUFHQTs7Ozs7O0FBU08sSUFBTUEsc0JBQXdDLEdBQUcsU0FBM0NBLHNCQUEyQyxPQUtsRDtBQUFBLE1BSkpDLE1BSUksUUFKSkEsTUFJSTtBQUFBLE1BSEpDLEtBR0ksUUFISkEsS0FHSTtBQUFBLE1BRkpDLEtBRUksUUFGSkEsS0FFSTtBQUFBLE1BREpDLEdBQ0ksUUFESkEsR0FDSTs7QUFDSixNQUFNQyxnQkFBZ0IsR0FBRyxTQUFuQkEsZ0JBQW1CLEdBQU07QUFDN0IsUUFBSUgsS0FBSyxDQUFDSSxJQUFOLENBQVdDLE1BQVgsS0FBc0IsQ0FBMUIsRUFBNkI7QUFDM0IsVUFBSUMsYUFBc0IsR0FBRyxFQUE3QjtBQUNBLFVBQUlDLGNBQXdCLEdBQUcsRUFBL0I7QUFDQSxvREFBNkJELGFBQTdCLEVBQTRDTixLQUE1QyxFQUFtREMsS0FBbkQ7QUFFQUssTUFBQUEsYUFBYSxDQUFDRSxPQUFkLENBQXNCLFVBQUNDLElBQUQsRUFBaUI7QUFDckMsWUFBSUMsV0FBVyxHQUFHWCxNQUFNLENBQUNZLElBQVAsQ0FDaEIsVUFBQ0MsQ0FBRDtBQUFBLGlCQUNFQSxDQUFDLENBQUNDLHNCQUFGLElBQTRCRCxDQUFDLENBQUNFLEVBQUYsS0FBU0wsSUFBSSxDQUFDTSxlQUQ1QztBQUFBLFNBRGdCLENBQWxCO0FBSUEsWUFBSUwsV0FBVyxLQUFLTSxTQUFwQixFQUErQlQsY0FBYyxDQUFDVSxJQUFmLENBQW9CUCxXQUFwQjtBQUNoQyxPQU5EO0FBUUEsVUFBSVEsb0JBQXdDLEdBQUdGLFNBQS9DO0FBQ0EsVUFBSVYsYUFBYSxDQUFDRCxNQUFkLEdBQXVCLENBQTNCLEVBQ0VhLG9CQUFvQixHQUFHbkIsTUFBTSxDQUFDWSxJQUFQLENBQ3JCLFVBQUNDLENBQUQ7QUFBQSxlQUNFQSxDQUFDLENBQUNFLEVBQUYsS0FBU1IsYUFBYSxDQUFDQSxhQUFhLENBQUNELE1BQWQsR0FBdUIsQ0FBeEIsQ0FBYixDQUF3Q2MsZUFBakQsSUFDQVAsQ0FBQyxDQUFDQyxzQkFGSjtBQUFBLE9BRHFCLENBQXZCO0FBS0YsVUFDRUssb0JBQW9CLEtBQUtGLFNBQXpCLElBQ0EsQ0FBQ1QsY0FBYyxDQUFDYSxRQUFmLENBQXdCRixvQkFBeEIsQ0FGSCxFQUlFWCxjQUFjLENBQUNVLElBQWYsQ0FBb0JDLG9CQUFwQjtBQUVGLGFBQU9YLGNBQVA7QUFDRCxLQTNCRCxNQTJCTztBQUNMLFVBQUlBLGVBQXdCLEdBQUcsRUFBL0I7QUFDQVAsTUFBQUEsS0FBSyxDQUFDcUIsWUFBTixDQUFtQmIsT0FBbkIsQ0FBMkIsVUFBQ2MsR0FBRCxFQUFTO0FBQ2xDLFlBQUlDLFNBQVMsR0FBR3hCLE1BQU0sQ0FBQ1ksSUFBUCxDQUFZLFVBQUNDLENBQUQ7QUFBQSxpQkFBT0EsQ0FBQyxDQUFDRSxFQUFGLEtBQVNRLEdBQUcsQ0FBQ0UsUUFBcEI7QUFBQSxTQUFaLENBQWhCO0FBQ0EsWUFBSUQsU0FBSixFQUFlaEIsZUFBYyxDQUFDVSxJQUFmLENBQW9CTSxTQUFwQjtBQUNoQixPQUhEO0FBS0EsYUFBT2hCLGVBQVA7QUFDRDtBQUNGLEdBckNEOztBQXVDQSx3QkFBVSxZQUFNLENBQUUsQ0FBbEIsRUFBb0IsQ0FBQ1AsS0FBSyxDQUFDeUIsT0FBUCxFQUFnQnpCLEtBQUssQ0FBQzBCLE9BQXRCLENBQXBCO0FBRUEsc0JBQ0UsNERBQ0d2QixnQkFBZ0IsR0FBR0QsR0FBbkIsQ0FBdUIsVUFBQ3lCLEtBQUQ7QUFBQSx3QkFDdEIsNkJBQUMsMEJBQUQ7QUFBYyxNQUFBLEdBQUcsRUFBRXpCLEdBQW5CO0FBQXdCLE1BQUEsS0FBSyxFQUFFeUIsS0FBL0I7QUFBc0MsTUFBQSxLQUFLLEVBQUUzQjtBQUE3QyxNQURzQjtBQUFBLEdBQXZCLENBREgsQ0FERjtBQU9ELENBdERNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IElQb2ludCB9IGZyb20gJy4uLy4uLy4uL3N0b3JlL3BvaW50cy9tb2RlbHMvSVBvaW50JztcbmltcG9ydCB7IGZpbmRFZGdlc0Zyb21FdmVudFBhdGhUb0RyYXcgfSBmcm9tICcuL0V2ZW50VXRpbHMnO1xuaW1wb3J0IHsgSUV2ZW50IH0gZnJvbSAnLi4vLi4vLi4vc3RvcmUvZXZlbnRzL21vZGVscy9JRXZlbnQnO1xuaW1wb3J0IHsgSUVkZ2UgfSBmcm9tICcuLi8uLi8uLi9zdG9yZS9lZGdlcy9tb2RlbHMvSUVkZ2UnO1xuaW1wb3J0IHsgUG9pbnRPZkV2ZW50IH0gZnJvbSAnLi9Qb2ludE9mRXZlbnQnO1xuXG50eXBlIElQcm9wcyA9IHtcbiAgcG9pbnRzOiBJUG9pbnRbXTtcbiAgZXZlbnQ6IElFdmVudDtcbiAgZWRnZXM6IElFZGdlW107XG4gIG1hcDogYW55O1xufTtcblxuZXhwb3J0IGNvbnN0IFBvaW50c0ZvclNwZWNpZmljRXZlbnQ6IFJlYWN0LkZDPElQcm9wcz4gPSAoe1xuICBwb2ludHMsXG4gIGV2ZW50LFxuICBlZGdlcyxcbiAgbWFwLFxufSkgPT4ge1xuICBjb25zdCBmaW5kUG9pbnRzVG9EcmF3ID0gKCkgPT4ge1xuICAgIGlmIChldmVudC5wYXRoLmxlbmd0aCAhPT0gMCkge1xuICAgICAgbGV0IHJlbGV2YW50RWRnZXM6IElFZGdlW10gPSBbXTtcbiAgICAgIGxldCByZWxldmVudFBvaW50czogSVBvaW50W10gPSBbXTtcbiAgICAgIGZpbmRFZGdlc0Zyb21FdmVudFBhdGhUb0RyYXcocmVsZXZhbnRFZGdlcywgZXZlbnQsIGVkZ2VzKTtcblxuICAgICAgcmVsZXZhbnRFZGdlcy5mb3JFYWNoKChlZGdlOiBJRWRnZSkgPT4ge1xuICAgICAgICBsZXQgcG9pbnRUb0RyYXcgPSBwb2ludHMuZmluZChcbiAgICAgICAgICAocDogSVBvaW50KSA9PlxuICAgICAgICAgICAgcC5wYXJ0X29mX21vbml0b3JlZF9wYXRoICYmIHAuaWQgPT09IGVkZ2Uuc291cmNlX3BvaW50X2lkLFxuICAgICAgICApO1xuICAgICAgICBpZiAocG9pbnRUb0RyYXcgIT09IHVuZGVmaW5lZCkgcmVsZXZlbnRQb2ludHMucHVzaChwb2ludFRvRHJhdyk7XG4gICAgICB9KTtcblxuICAgICAgbGV0IGxhc3RQb2ludE9mSGllcmFyY2h5OiBJUG9pbnQgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gICAgICBpZiAocmVsZXZhbnRFZGdlcy5sZW5ndGggPiAxKVxuICAgICAgICBsYXN0UG9pbnRPZkhpZXJhcmNoeSA9IHBvaW50cy5maW5kKFxuICAgICAgICAgIChwOiBJUG9pbnQpID0+XG4gICAgICAgICAgICBwLmlkID09PSByZWxldmFudEVkZ2VzW3JlbGV2YW50RWRnZXMubGVuZ3RoIC0gMV0udGFyZ2V0X3BvaW50X2lkICYmXG4gICAgICAgICAgICBwLnBhcnRfb2ZfbW9uaXRvcmVkX3BhdGgsXG4gICAgICAgICk7XG4gICAgICBpZiAoXG4gICAgICAgIGxhc3RQb2ludE9mSGllcmFyY2h5ICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgIXJlbGV2ZW50UG9pbnRzLmluY2x1ZGVzKGxhc3RQb2ludE9mSGllcmFyY2h5KVxuICAgICAgKVxuICAgICAgICByZWxldmVudFBvaW50cy5wdXNoKGxhc3RQb2ludE9mSGllcmFyY2h5KTtcblxuICAgICAgcmV0dXJuIHJlbGV2ZW50UG9pbnRzO1xuICAgIH0gZWxzZSB7XG4gICAgICBsZXQgcmVsZXZlbnRQb2ludHM6IElQb2ludFtdID0gW107XG4gICAgICBldmVudC5vYnNlcnZhdGlvbnMuZm9yRWFjaCgob2JzKSA9PiB7XG4gICAgICAgIGxldCBmaW5kUG9pbnQgPSBwb2ludHMuZmluZCgocCkgPT4gcC5pZCA9PT0gb2JzLnBvaW50X2lkKTtcbiAgICAgICAgaWYgKGZpbmRQb2ludCkgcmVsZXZlbnRQb2ludHMucHVzaChmaW5kUG9pbnQpO1xuICAgICAgfSk7XG5cbiAgICAgIHJldHVybiByZWxldmVudFBvaW50cztcbiAgICB9XG4gIH07XG5cbiAgdXNlRWZmZWN0KCgpID0+IHt9LCBbZXZlbnQuZm9jdXNlZCwgZXZlbnQuaG92ZXJlZF0pO1xuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIHtmaW5kUG9pbnRzVG9EcmF3KCkubWFwKChwb2ludDogSVBvaW50KSA9PiAoXG4gICAgICAgIDxQb2ludE9mRXZlbnQgbWFwPXttYXB9IHBvaW50PXtwb2ludH0gZXZlbnQ9e2V2ZW50fSAvPlxuICAgICAgKSl9XG4gICAgPC8+XG4gICk7XG59O1xuIl19
@@ -0,0 +1,60 @@
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.Snail = void 0;
11
+
12
+ var _react = _interopRequireWildcard(require("react"));
13
+
14
+ var _EventPath = _interopRequireDefault(require("./EventPath"));
15
+
16
+ var _EventIndicator = _interopRequireDefault(require("./EventIndicator"));
17
+
18
+ var _leaflet = _interopRequireDefault(require("leaflet"));
19
+
20
+ var _reactRedux = require("react-redux");
21
+
22
+ 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
+
24
+ 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; }
25
+
26
+ // @ts-ignore
27
+ var Snail = function Snail(_ref) {
28
+ var event = _ref.event;
29
+ var state = (0, _reactRedux.useSelector)(function (state) {
30
+ return state;
31
+ });
32
+
33
+ var _useSelector = (0, _reactRedux.useSelector)(function (state) {
34
+ return state;
35
+ }),
36
+ global_data = _useSelector.global_data;
37
+
38
+ var _state$events_data = state.events_data,
39
+ hoveredEventPaths = _state$events_data.hoveredEventPaths,
40
+ focusedEventPaths = _state$events_data.focusedEventPaths;
41
+ var map = global_data.map;
42
+ var memoizedIndicator = (0, _react.useMemo)(function () {
43
+ var paths = focusedEventPaths.length !== 0 ? focusedEventPaths : hoveredEventPaths;
44
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_EventIndicator.default, {
45
+ map: map,
46
+ paths: paths,
47
+ event: event,
48
+ L: _leaflet.default
49
+ }));
50
+ }, [hoveredEventPaths, focusedEventPaths]);
51
+ (0, _react.useEffect)(function () {}, [event]);
52
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_EventPath.default, {
53
+ event: event,
54
+ global_data: global_data,
55
+ eventPaths: focusedEventPaths || hoveredEventPaths
56
+ }), memoizedIndicator);
57
+ };
58
+
59
+ exports.Snail = Snail;
60
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9XaWRnZXRzL01hcC9ldmVudHMvU25haWwudHN4Il0sIm5hbWVzIjpbIlNuYWlsIiwiZXZlbnQiLCJzdGF0ZSIsImdsb2JhbF9kYXRhIiwiZXZlbnRzX2RhdGEiLCJob3ZlcmVkRXZlbnRQYXRocyIsImZvY3VzZWRFdmVudFBhdGhzIiwibWFwIiwibWVtb2l6ZWRJbmRpY2F0b3IiLCJwYXRocyIsImxlbmd0aCIsIkwiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUE7Ozs7OztBQU5BO0FBYU8sSUFBTUEsS0FBdUIsR0FBRyxTQUExQkEsS0FBMEIsT0FBZTtBQUFBLE1BQVpDLEtBQVksUUFBWkEsS0FBWTtBQUNwRCxNQUFNQyxLQUFLLEdBQUcsNkJBQVksVUFBQ0EsS0FBRDtBQUFBLFdBQXNCQSxLQUF0QjtBQUFBLEdBQVosQ0FBZDs7QUFDQSxxQkFBd0IsNkJBQVksVUFBQ0EsS0FBRDtBQUFBLFdBQXNCQSxLQUF0QjtBQUFBLEdBQVosQ0FBeEI7QUFBQSxNQUFRQyxXQUFSLGdCQUFRQSxXQUFSOztBQUNBLDJCQUFpREQsS0FBSyxDQUFDRSxXQUF2RDtBQUFBLE1BQVFDLGlCQUFSLHNCQUFRQSxpQkFBUjtBQUFBLE1BQTJCQyxpQkFBM0Isc0JBQTJCQSxpQkFBM0I7QUFDQSxNQUFNQyxHQUFHLEdBQUdKLFdBQVcsQ0FBQ0ksR0FBeEI7QUFFQSxNQUFNQyxpQkFBaUIsR0FBRyxvQkFBUSxZQUFNO0FBQ3RDLFFBQUlDLEtBQUssR0FDUEgsaUJBQWlCLENBQUNJLE1BQWxCLEtBQTZCLENBQTdCLEdBQWlDSixpQkFBakMsR0FBcURELGlCQUR2RDtBQUVBLHdCQUNFLHlFQUNFLDZCQUFDLHVCQUFEO0FBQWdCLE1BQUEsR0FBRyxFQUFFRSxHQUFyQjtBQUEwQixNQUFBLEtBQUssRUFBRUUsS0FBakM7QUFBd0MsTUFBQSxLQUFLLEVBQUVSLEtBQS9DO0FBQXNELE1BQUEsQ0FBQyxFQUFFVTtBQUF6RCxNQURGLENBREY7QUFLRCxHQVJ5QixFQVF2QixDQUFDTixpQkFBRCxFQUFvQkMsaUJBQXBCLENBUnVCLENBQTFCO0FBVUEsd0JBQVUsWUFBTSxDQUFFLENBQWxCLEVBQW9CLENBQUNMLEtBQUQsQ0FBcEI7QUFFQSxzQkFDRSx5RUFDRSw2QkFBQyxrQkFBRDtBQUNFLElBQUEsS0FBSyxFQUFFQSxLQURUO0FBRUUsSUFBQSxXQUFXLEVBQUVFLFdBRmY7QUFHRSxJQUFBLFVBQVUsRUFBRUcsaUJBQWlCLElBQUlEO0FBSG5DLElBREYsRUFNR0csaUJBTkgsQ0FERjtBQVVELENBNUJNIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWlnbm9yZVxuaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlTWVtbyB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBFdmVudFBhdGggZnJvbSAnLi9FdmVudFBhdGgnO1xuaW1wb3J0IEV2ZW50SW5kaWNhdG9yIGZyb20gJy4vRXZlbnRJbmRpY2F0b3InO1xuaW1wb3J0IEwgZnJvbSAnbGVhZmxldCc7XG5pbXBvcnQgeyBJRXZlbnQgfSBmcm9tICcuLi8uLi8uLi9zdG9yZS9ldmVudHMvbW9kZWxzL0lFdmVudCc7XG5pbXBvcnQgeyB1c2VTZWxlY3RvciB9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCB7IElBcHBTdGF0ZSB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9JQXBwU3RhdGUnO1xuXG50eXBlIElQcm9wcyA9IHtcbiAgZXZlbnQ6IElFdmVudDtcbn07XG5cbmV4cG9ydCBjb25zdCBTbmFpbDogUmVhY3QuRkM8SVByb3BzPiA9ICh7IGV2ZW50IH0pID0+IHtcbiAgY29uc3Qgc3RhdGUgPSB1c2VTZWxlY3Rvcigoc3RhdGU6IElBcHBTdGF0ZSkgPT4gc3RhdGUpO1xuICBjb25zdCB7IGdsb2JhbF9kYXRhIH0gPSB1c2VTZWxlY3Rvcigoc3RhdGU6IElBcHBTdGF0ZSkgPT4gc3RhdGUpO1xuICBjb25zdCB7IGhvdmVyZWRFdmVudFBhdGhzLCBmb2N1c2VkRXZlbnRQYXRocyB9ID0gc3RhdGUuZXZlbnRzX2RhdGE7XG4gIGNvbnN0IG1hcCA9IGdsb2JhbF9kYXRhLm1hcDtcblxuICBjb25zdCBtZW1vaXplZEluZGljYXRvciA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGxldCBwYXRocyA9XG4gICAgICBmb2N1c2VkRXZlbnRQYXRocy5sZW5ndGggIT09IDAgPyBmb2N1c2VkRXZlbnRQYXRocyA6IGhvdmVyZWRFdmVudFBhdGhzO1xuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8RXZlbnRJbmRpY2F0b3IgbWFwPXttYXB9IHBhdGhzPXtwYXRoc30gZXZlbnQ9e2V2ZW50fSBMPXtMfSAvPlxuICAgICAgPC8+XG4gICAgKTtcbiAgfSwgW2hvdmVyZWRFdmVudFBhdGhzLCBmb2N1c2VkRXZlbnRQYXRoc10pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7fSwgW2V2ZW50XSk7XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgPEV2ZW50UGF0aFxuICAgICAgICBldmVudD17ZXZlbnR9XG4gICAgICAgIGdsb2JhbF9kYXRhPXtnbG9iYWxfZGF0YX1cbiAgICAgICAgZXZlbnRQYXRocz17Zm9jdXNlZEV2ZW50UGF0aHMgfHwgaG92ZXJlZEV2ZW50UGF0aHN9XG4gICAgICAvPlxuICAgICAge21lbW9pemVkSW5kaWNhdG9yfVxuICAgIDwvPlxuICApO1xufTtcbiJdfQ==