@kando-env/kando-ui 1.2.318-alpha.4 → 1.2.318-alpha.41

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.
@@ -18,10 +18,11 @@ var _List = require("./List");
18
18
  var _utils = require("./utils");
19
19
  var _Loader = require("./Loader");
20
20
  var _reactRouterDom = require("react-router-dom");
21
+ var _useQueryURL = _interopRequireDefault(require("../../hooks/useQueryURL"));
21
22
  var _WWTPDashboardSlice = require("../../store/WWTPDashboard/WWTPDashboardSlice");
22
23
  var _ListContext = require("./ListContext");
23
24
  var _reactBootstrap = require("react-bootstrap");
24
- var _useQueryURL = _interopRequireDefault(require("../../hooks/useQueryURL"));
25
+ var _Capacity = require("./Capacity");
25
26
  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); }
26
27
  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; }
27
28
  var WWTPMap = function WWTPMap(props) {
@@ -59,37 +60,13 @@ var WWTPMap = function WWTPMap(props) {
59
60
  var dataExists = function dataExists() {
60
61
  return areas_data.newAreas.length !== 0 || points_data.items.length !== 0 || edges_data.items.length !== 0;
61
62
  };
62
- (0, _react.useEffect)(function () {
63
- // if (
64
- // !WWTPInfo.area ||
65
- // !wwtp_dashboard.map ||
66
- // points_data.items.length === 0
67
- // )
68
- // return;
69
-
70
- if (isMapTab && (WWTPInfo.area || WWTPInfo.point)) {
71
- (0, _utils.focusMap)(WWTPInfo.area ? WWTPInfo.area : WWTPInfo.point, wwtp_dashboard.map);
72
- // areaFocusLogic({
73
- // WWTPInfo,
74
- // setAreas,
75
- // map: wwtp_dashboard.map,
76
- // });
77
- }
78
- }, [wwtp_dashboard.map, WWTPInfo]);
79
63
  (0, _react.useEffect)(function () {
80
64
  if (global_data.waterAuthorityId) {
81
- // dispatch(fetchPoints(global_data.waterAuthorityId));
82
- // dispatch(fetchEdges(global_data.waterAuthorityId));
65
+ dispatch((0, _actions3.fetchPoints)(global_data.waterAuthorityId));
66
+ dispatch((0, _actions2.fetchEdges)(global_data.waterAuthorityId));
83
67
  dispatch((0, _actions.fetchAreas)(global_data.waterAuthorityId, ReduxState.dashboard.period.toString(), true));
84
68
  }
85
69
  }, [ReduxState.dashboard.period]);
86
- (0, _react.useEffect)(function () {
87
- if (global_data.waterAuthorityId) {
88
- points_data.items.length === 0 && dispatch((0, _actions3.fetchPoints)(global_data.waterAuthorityId));
89
- edges_data.items.length === 0 && dispatch((0, _actions2.fetchEdges)(global_data.waterAuthorityId));
90
- areas_data.items.length === 0 && dispatch((0, _actions.fetchAreas)(global_data.waterAuthorityId, ReduxState.dashboard.period, true));
91
- }
92
- }, [isMapTab, global_data.waterAuthorityId]);
93
70
  (0, _react.useEffect)(function () {
94
71
  (0, _utils.initializeWWTPData)({
95
72
  areas_data: areas_data,
@@ -100,8 +77,23 @@ var WWTPMap = function WWTPMap(props) {
100
77
  dataExists: dataExists,
101
78
  id: id
102
79
  });
103
- }, [areas_data.newAreas, points_data.items]);
80
+ }, [areas_data]);
104
81
  (0, _react.useEffect)(function () {
82
+ setWWTPInfo((0, _utils.calculateWWTPInfo)({
83
+ id: id,
84
+ points_data: points_data,
85
+ areas_data: areas_data
86
+ }));
87
+ }, [id]);
88
+ (0, _react.useEffect)(function () {
89
+ (0, _utils.focusMap)(WWTPInfo.area || WWTPInfo.point, wwtp_dashboard.map);
90
+ }, [WWTPInfo]);
91
+ (0, _react.useEffect)(function () {
92
+ if (global_data.waterAuthorityId) {
93
+ points_data.items.length === 0 && dispatch((0, _actions3.fetchPoints)(global_data.waterAuthorityId));
94
+ edges_data.items.length === 0 && dispatch((0, _actions2.fetchEdges)(global_data.waterAuthorityId));
95
+ areas_data.items.length === 0 && dispatch((0, _actions.fetchAreas)(global_data.waterAuthorityId, ReduxState.dashboard.period, true));
96
+ }
105
97
  return function cleanup() {
106
98
  setPoints(null);
107
99
  setAreas(null);
@@ -114,23 +106,26 @@ var WWTPMap = function WWTPMap(props) {
114
106
  };
115
107
  }, [global_data.waterAuthorityId]);
116
108
  (0, _react.useEffect)(function () {
117
- if (areaID === id && areas_data.newAreas.length > 0) {
118
- var area = areas_data.newAreas.find(function (area) {
119
- return area.area_id.toString() === id;
120
- });
121
- area && dispatch((0, _WWTPDashboardSlice.setFocusedArea)(area));
122
- } else {
123
- if (points_data.items.length > 0) {
124
- var point = points_data.items.find(function (point) {
125
- return point.id.toString() === id;
109
+ var object = WWTPInfo.area || WWTPInfo.point;
110
+ if (isMapTab && object) {
111
+ var type = WWTPInfo.area ? object.is_virtual === true ? 'varea' : 'area' : 'site';
112
+ var validObject = type === 'site' ? object.id.toString() === id : object.area_id === parseInt(id);
113
+ if (validObject) {
114
+ (0, _Capacity.fetchCapacity)(type, id, global_data.waterAuthorityId).then(function (response) {
115
+ (0, _Capacity.setFocusedItem)(object, response.data, points, areas, dispatch, _WWTPDashboardSlice.setFocusedArea);
126
116
  });
127
- point && dispatch((0, _WWTPDashboardSlice.setFocusedArea)(point));
128
- } else {
129
- // console.log('last option');
130
- dispatch((0, _WWTPDashboardSlice.setFocusedArea)(areas_data.newAreas));
131
117
  }
118
+ } else {
119
+ var utilityDirects = (0, _utils.sortAreas)(areas === null || areas === void 0 ? void 0 : areas.filter(
120
+ // consider changing to has_parent = false
121
+ // sorting the list becasue the server doesn't
122
+ function (area) {
123
+ return area.is_virtual === true || area.is_wwtp === true || area.is_inlet === true;
124
+ }));
125
+ (0, _Capacity.setFocusedItem)(undefined, null, points, utilityDirects, dispatch, _WWTPDashboardSlice.setFocusedArea);
132
126
  }
133
- }, [areas]);
127
+ (0, _utils.focusMap)(object, wwtp_dashboard.map);
128
+ }, [wwtp_dashboard.map]);
134
129
  if (!isMapTab) return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null);
135
130
  if (!dataExists() || !points || !areas) return /*#__PURE__*/_react.default.createElement(_Loader.Loader, null);
136
131
  return /*#__PURE__*/_react.default.createElement(_ListContext.SelectedItemProvider, null, /*#__PURE__*/_react.default.createElement(Container, props, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Row, {
@@ -143,7 +138,8 @@ var WWTPMap = function WWTPMap(props) {
143
138
  global_data: global_data,
144
139
  areas: areas,
145
140
  points: points,
146
- WWTPInfo: WWTPInfo
141
+ WWTPInfo: WWTPInfo,
142
+ dispatch: dispatch
147
143
  })), /*#__PURE__*/_react.default.createElement(_reactBootstrap.Col, {
148
144
  className: "map-column",
149
145
  xs: 12,
@@ -153,7 +149,7 @@ var WWTPMap = function WWTPMap(props) {
153
149
  areas: areas,
154
150
  global_data: global_data,
155
151
  edges: edges_data.items,
156
- areaToCenterBy: areas[0],
152
+ areaToCenterBy: null,
157
153
  focusedEvent: null,
158
154
  includeUnmonitoredPoints: true,
159
155
  forEventsView: false,
@@ -166,4 +162,4 @@ var Container = _styledComponents.default.div.withConfig({
166
162
  })(["width:100vw;.map-column{z-index:0;}.kd-map-container{height:calc(100vh - 134px);width:100%;@media (max-width:1250px){height:calc(100vh - 125px);}#map{height:100%;width:100%;*,*:focus,*:hover{outline:none;}.leaflet-popup-close-button{font-size:x-large;}}}"]);
167
163
  var _default = WWTPMap;
168
164
  exports.default = _default;
169
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3RSZWR1eCIsInJlcXVpcmUiLCJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsIl9NYXAiLCJfYWN0aW9ucyIsIl9hY3Rpb25zMiIsIl9hY3Rpb25zMyIsIl9MaXN0IiwiX3V0aWxzIiwiX0xvYWRlciIsIl9yZWFjdFJvdXRlckRvbSIsIl9XV1RQRGFzaGJvYXJkU2xpY2UiLCJfTGlzdENvbnRleHQiLCJfcmVhY3RCb290c3RyYXAiLCJfdXNlUXVlcnlVUkwiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwibm9kZUludGVyb3AiLCJXZWFrTWFwIiwiY2FjaGVCYWJlbEludGVyb3AiLCJjYWNoZU5vZGVJbnRlcm9wIiwib2JqIiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJkZWZhdWx0IiwiY2FjaGUiLCJoYXMiLCJnZXQiLCJuZXdPYmoiLCJoYXNQcm9wZXJ0eURlc2NyaXB0b3IiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlc2MiLCJzZXQiLCJXV1RQTWFwIiwicHJvcHMiLCJzZWFyY2hRdWVyeSIsInVzZVF1ZXJ5VVJMIiwiaXNNYXBUYWIiLCJfdXNlUGFyYW1zIiwidXNlUGFyYW1zIiwiaWQiLCJhcmVhSUQiLCJzaXRlSUQiLCJSZWR1eFN0YXRlIiwidXNlU2VsZWN0b3IiLCJzdGF0ZSIsImRpc3BhdGNoIiwidXNlRGlzcGF0Y2giLCJhcmVhc19kYXRhIiwiZ2xvYmFsX2RhdGEiLCJwb2ludHNfZGF0YSIsImVkZ2VzX2RhdGEiLCJ3d3RwX2Rhc2hib2FyZCIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsInBvaW50cyIsInNldFBvaW50cyIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0IiwiYXJlYXMiLCJzZXRBcmVhcyIsIl91c2VTdGF0ZTUiLCJwb2ludCIsImFyZWEiLCJfdXNlU3RhdGU2IiwiV1dUUEluZm8iLCJzZXRXV1RQSW5mbyIsImRhdGFFeGlzdHMiLCJuZXdBcmVhcyIsImxlbmd0aCIsIml0ZW1zIiwidXNlRWZmZWN0IiwiZm9jdXNNYXAiLCJtYXAiLCJ3YXRlckF1dGhvcml0eUlkIiwiZmV0Y2hBcmVhcyIsImRhc2hib2FyZCIsInBlcmlvZCIsInRvU3RyaW5nIiwiZmV0Y2hQb2ludHMiLCJmZXRjaEVkZ2VzIiwiaW5pdGlhbGl6ZVdXVFBEYXRhIiwiY2xlYW51cCIsInNldEZvY3VzZWRBcmVhIiwic2V0TWFwIiwiZmluZCIsImFyZWFfaWQiLCJjcmVhdGVFbGVtZW50IiwiRnJhZ21lbnQiLCJMb2FkZXIiLCJTZWxlY3RlZEl0ZW1Qcm92aWRlciIsIkNvbnRhaW5lciIsIlJvdyIsImNsYXNzTmFtZSIsIkNvbCIsInhzIiwic20iLCJMaXN0IiwiTWFwIiwiZWRnZXMiLCJhcmVhVG9DZW50ZXJCeSIsImZvY3VzZWRFdmVudCIsImluY2x1ZGVVbm1vbml0b3JlZFBvaW50cyIsImZvckV2ZW50c1ZpZXciLCJmb3JXV1RQRGFzaGJvYXJkIiwic3R5bGVkIiwiZGl2Iiwid2l0aENvbmZpZyIsImRpc3BsYXlOYW1lIiwiY29tcG9uZW50SWQiLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcGFnZXMvRGFzaGJvYXJkTWFwL1dXVFBNYXAudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZURpc3BhdGNoLCB1c2VTZWxlY3RvciB9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgTWFwIH0gZnJvbSAnc3JjL1dpZGdldHMvTWFwL01hcCc7XG5pbXBvcnQgeyBmZXRjaEFyZWFzIH0gZnJvbSAnc3JjL3N0b3JlL2FyZWFzL2FjdGlvbnMnO1xuaW1wb3J0IHsgZmV0Y2hFZGdlcyB9IGZyb20gJ3NyYy9zdG9yZS9lZGdlcy9hY3Rpb25zJztcbmltcG9ydCB7IGZldGNoUG9pbnRzIH0gZnJvbSAnc3JjL3N0b3JlL3BvaW50cy9hY3Rpb25zJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMvbWFjcm8nO1xuaW1wb3J0IHsgTGlzdCB9IGZyb20gJy4vTGlzdCc7XG5pbXBvcnQgeyBJUG9pbnQgfSBmcm9tICcuLi8uLi9zdG9yZS9wb2ludHMvbW9kZWxzL0lQb2ludCc7XG5pbXBvcnQgeyBJQXJlYSB9IGZyb20gJy4uLy4uL3N0b3JlL2FyZWFzL21vZGVscy9JQXJlYSc7XG5pbXBvcnQgeyBmb2N1c01hcCwgaW5pdGlhbGl6ZVdXVFBEYXRhIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBMb2FkZXIgfSBmcm9tICcuL0xvYWRlcic7XG5pbXBvcnQgeyB1c2VQYXJhbXMgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCB7XG4gIHNldEZvY3VzZWRBcmVhLFxuICBzZXRNYXAsXG59IGZyb20gJy4uLy4uL3N0b3JlL1dXVFBEYXNoYm9hcmQvV1dUUERhc2hib2FyZFNsaWNlJztcbmltcG9ydCB7IFNlbGVjdGVkSXRlbVByb3ZpZGVyIH0gZnJvbSAnLi9MaXN0Q29udGV4dCc7XG5pbXBvcnQgeyBSb3csIENvbCB9IGZyb20gJ3JlYWN0LWJvb3RzdHJhcCc7XG5pbXBvcnQgdXNlUXVlcnlVUkwgZnJvbSAnLi4vLi4vaG9va3MvdXNlUXVlcnlVUkwnO1xuXG5leHBvcnQgaW50ZXJmYWNlIENhcGFjaXR5TWFwQ29udGFpbmVyUHJvcHMge1xuICBjbGFzc05hbWU6IHN0cmluZztcbn1cbmNvbnN0IFdXVFBNYXA6IFJlYWN0LkZDPENhcGFjaXR5TWFwQ29udGFpbmVyUHJvcHM+ID0gKHByb3BzKSA9PiB7XG4gIGNvbnN0IHNlYXJjaFF1ZXJ5ID0gdXNlUXVlcnlVUkwoKTtcbiAgY29uc3QgaXNNYXBUYWIgPSBzZWFyY2hRdWVyeS5nZXQoJ3ZpZXcnKSA9PT0gJ21hcCc7XG4gIGxldCB7IGlkLCBhcmVhSUQsIHNpdGVJRCB9ID0gdXNlUGFyYW1zKCk7XG4gIGlkID0gaWQgfHwgYXJlYUlEIHx8IHNpdGVJRDtcbiAgY29uc3QgUmVkdXhTdGF0ZSA9IHVzZVNlbGVjdG9yKChzdGF0ZSkgPT4gc3RhdGUpO1xuICBjb25zdCBkaXNwYXRjaCA9IHVzZURpc3BhdGNoKCk7XG4gIGNvbnN0IHsgYXJlYXNfZGF0YSwgZ2xvYmFsX2RhdGEsIHBvaW50c19kYXRhLCBlZGdlc19kYXRhLCB3d3RwX2Rhc2hib2FyZCB9ID1cbiAgICBSZWR1eFN0YXRlO1xuICBjb25zdCBbcG9pbnRzLCBzZXRQb2ludHNdID0gdXNlU3RhdGU8SVBvaW50W10gfCBudWxsPihudWxsKTtcbiAgY29uc3QgW2FyZWFzLCBzZXRBcmVhc10gPSB1c2VTdGF0ZTxJQXJlYVtdIHwgbnVsbD4obnVsbCk7XG4gIGNvbnN0IFtXV1RQSW5mbywgc2V0V1dUUEluZm9dID0gdXNlU3RhdGU8e1xuICAgIHBvaW50OiBJUG9pbnQgfCBudWxsO1xuICAgIGFyZWE6IElBcmVhIHwgbnVsbDtcbiAgfT4oeyBwb2ludDogbnVsbCwgYXJlYTogbnVsbCB9KTtcbiAgbGV0IGRhdGFFeGlzdHMgPSAoKSA9PiB7XG4gICAgcmV0dXJuIChcbiAgICAgIGFyZWFzX2RhdGEubmV3QXJlYXMubGVuZ3RoICE9PSAwIHx8XG4gICAgICBwb2ludHNfZGF0YS5pdGVtcy5sZW5ndGggIT09IDAgfHxcbiAgICAgIGVkZ2VzX2RhdGEuaXRlbXMubGVuZ3RoICE9PSAwXG4gICAgKTtcbiAgfTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIC8vIGlmIChcbiAgICAvLyAgICFXV1RQSW5mby5hcmVhIHx8XG4gICAgLy8gICAhd3d0cF9kYXNoYm9hcmQubWFwIHx8XG4gICAgLy8gICBwb2ludHNfZGF0YS5pdGVtcy5sZW5ndGggPT09IDBcbiAgICAvLyApXG4gICAgLy8gICByZXR1cm47XG5cbiAgICBpZiAoaXNNYXBUYWIgJiYgKFdXVFBJbmZvLmFyZWEgfHwgV1dUUEluZm8ucG9pbnQpKSB7XG4gICAgICBmb2N1c01hcChcbiAgICAgICAgV1dUUEluZm8uYXJlYSA/IFdXVFBJbmZvLmFyZWEgOiBXV1RQSW5mby5wb2ludCxcbiAgICAgICAgd3d0cF9kYXNoYm9hcmQubWFwLFxuICAgICAgKTtcbiAgICAgIC8vIGFyZWFGb2N1c0xvZ2ljKHtcbiAgICAgIC8vICAgV1dUUEluZm8sXG4gICAgICAvLyAgIHNldEFyZWFzLFxuICAgICAgLy8gICBtYXA6IHd3dHBfZGFzaGJvYXJkLm1hcCxcbiAgICAgIC8vIH0pO1xuICAgIH1cbiAgfSwgW3d3dHBfZGFzaGJvYXJkLm1hcCwgV1dUUEluZm9dKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChnbG9iYWxfZGF0YS53YXRlckF1dGhvcml0eUlkKSB7XG4gICAgICAvLyBkaXNwYXRjaChmZXRjaFBvaW50cyhnbG9iYWxfZGF0YS53YXRlckF1dGhvcml0eUlkKSk7XG4gICAgICAvLyBkaXNwYXRjaChmZXRjaEVkZ2VzKGdsb2JhbF9kYXRhLndhdGVyQXV0aG9yaXR5SWQpKTtcbiAgICAgIGRpc3BhdGNoKFxuICAgICAgICBmZXRjaEFyZWFzKFxuICAgICAgICAgIGdsb2JhbF9kYXRhLndhdGVyQXV0aG9yaXR5SWQsXG4gICAgICAgICAgUmVkdXhTdGF0ZS5kYXNoYm9hcmQucGVyaW9kLnRvU3RyaW5nKCksXG4gICAgICAgICAgdHJ1ZSxcbiAgICAgICAgKSxcbiAgICAgICk7XG4gICAgfVxuICB9LCBbUmVkdXhTdGF0ZS5kYXNoYm9hcmQucGVyaW9kXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoZ2xvYmFsX2RhdGEud2F0ZXJBdXRob3JpdHlJZCkge1xuICAgICAgcG9pbnRzX2RhdGEuaXRlbXMubGVuZ3RoID09PSAwICYmXG4gICAgICAgIGRpc3BhdGNoKGZldGNoUG9pbnRzKGdsb2JhbF9kYXRhLndhdGVyQXV0aG9yaXR5SWQpKTtcbiAgICAgIGVkZ2VzX2RhdGEuaXRlbXMubGVuZ3RoID09PSAwICYmXG4gICAgICAgIGRpc3BhdGNoKGZldGNoRWRnZXMoZ2xvYmFsX2RhdGEud2F0ZXJBdXRob3JpdHlJZCkpO1xuICAgICAgYXJlYXNfZGF0YS5pdGVtcy5sZW5ndGggPT09IDAgJiZcbiAgICAgICAgZGlzcGF0Y2goXG4gICAgICAgICAgZmV0Y2hBcmVhcyhcbiAgICAgICAgICAgIGdsb2JhbF9kYXRhLndhdGVyQXV0aG9yaXR5SWQsXG4gICAgICAgICAgICBSZWR1eFN0YXRlLmRhc2hib2FyZC5wZXJpb2QsXG4gICAgICAgICAgICB0cnVlLFxuICAgICAgICAgICksXG4gICAgICAgICk7XG4gICAgfVxuICB9LCBbaXNNYXBUYWIsIGdsb2JhbF9kYXRhLndhdGVyQXV0aG9yaXR5SWRdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGluaXRpYWxpemVXV1RQRGF0YSh7XG4gICAgICBhcmVhc19kYXRhLFxuICAgICAgcG9pbnRzX2RhdGEsXG4gICAgICBzZXRQb2ludHMsXG4gICAgICBzZXRBcmVhcyxcbiAgICAgIHNldFdXVFBJbmZvLFxuICAgICAgZGF0YUV4aXN0cyxcbiAgICAgIGlkLFxuICAgIH0pO1xuICB9LCBbYXJlYXNfZGF0YS5uZXdBcmVhcywgcG9pbnRzX2RhdGEuaXRlbXNdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHJldHVybiBmdW5jdGlvbiBjbGVhbnVwKCkge1xuICAgICAgc2V0UG9pbnRzKG51bGwpO1xuICAgICAgc2V0QXJlYXMobnVsbCk7XG4gICAgICBzZXRXV1RQSW5mbyh7IHBvaW50OiBudWxsLCBhcmVhOiBudWxsIH0pO1xuICAgICAgZGlzcGF0Y2goc2V0Rm9jdXNlZEFyZWEobnVsbCkpO1xuICAgICAgZGlzcGF0Y2goc2V0TWFwKG51bGwpKTtcbiAgICB9O1xuICB9LCBbZ2xvYmFsX2RhdGEud2F0ZXJBdXRob3JpdHlJZF0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGFyZWFJRCA9PT0gaWQgJiYgYXJlYXNfZGF0YS5uZXdBcmVhcy5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBhcmVhID0gYXJlYXNfZGF0YS5uZXdBcmVhcy5maW5kKFxuICAgICAgICAoYXJlYSkgPT4gYXJlYS5hcmVhX2lkLnRvU3RyaW5nKCkgPT09IGlkLFxuICAgICAgKTtcbiAgICAgIGFyZWEgJiYgZGlzcGF0Y2goc2V0Rm9jdXNlZEFyZWEoYXJlYSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAocG9pbnRzX2RhdGEuaXRlbXMubGVuZ3RoID4gMCkge1xuICAgICAgICBjb25zdCBwb2ludCA9IHBvaW50c19kYXRhLml0ZW1zLmZpbmQoXG4gICAgICAgICAgKHBvaW50KSA9PiBwb2ludC5pZC50b1N0cmluZygpID09PSBpZCxcbiAgICAgICAgKTtcbiAgICAgICAgcG9pbnQgJiYgZGlzcGF0Y2goc2V0Rm9jdXNlZEFyZWEocG9pbnQpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKCdsYXN0IG9wdGlvbicpO1xuICAgICAgICBkaXNwYXRjaChzZXRGb2N1c2VkQXJlYShhcmVhc19kYXRhLm5ld0FyZWFzKSk7XG4gICAgICB9XG4gICAgfVxuICB9LCBbYXJlYXNdKTtcblxuICBpZiAoIWlzTWFwVGFiKSByZXR1cm4gPD48Lz47XG4gIGlmICghZGF0YUV4aXN0cygpIHx8ICFwb2ludHMgfHwgIWFyZWFzKSByZXR1cm4gPExvYWRlciAvPjtcbiAgcmV0dXJuIChcbiAgICA8U2VsZWN0ZWRJdGVtUHJvdmlkZXI+XG4gICAgICA8Q29udGFpbmVyIHsuLi5wcm9wc30+XG4gICAgICAgIDxSb3cgY2xhc3NOYW1lPVwibm8tZ3V0dGVyc1wiPlxuICAgICAgICAgIDxDb2wgeHM9XCJhdXRvXCIgc209ezR9IGNsYXNzTmFtZT1cImQtbm9uZSBkLXNtLWZsZXhcIj5cbiAgICAgICAgICAgIDxMaXN0XG4gICAgICAgICAgICAgIGdsb2JhbF9kYXRhPXtnbG9iYWxfZGF0YX1cbiAgICAgICAgICAgICAgYXJlYXM9e2FyZWFzfVxuICAgICAgICAgICAgICBwb2ludHM9e3BvaW50c31cbiAgICAgICAgICAgICAgV1dUUEluZm89e1dXVFBJbmZvfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L0NvbD5cbiAgICAgICAgICA8Q29sIGNsYXNzTmFtZT1cIm1hcC1jb2x1bW5cIiB4cz17MTJ9IHNtPXs4fT5cbiAgICAgICAgICAgIDxNYXBcbiAgICAgICAgICAgICAgcG9pbnRzPXtwb2ludHN9XG4gICAgICAgICAgICAgIGFyZWFzPXthcmVhc31cbiAgICAgICAgICAgICAgZ2xvYmFsX2RhdGE9e2dsb2JhbF9kYXRhfVxuICAgICAgICAgICAgICBlZGdlcz17ZWRnZXNfZGF0YS5pdGVtc31cbiAgICAgICAgICAgICAgYXJlYVRvQ2VudGVyQnk9e2FyZWFzWzBdfVxuICAgICAgICAgICAgICBmb2N1c2VkRXZlbnQ9e251bGx9XG4gICAgICAgICAgICAgIGluY2x1ZGVVbm1vbml0b3JlZFBvaW50cz17dHJ1ZX1cbiAgICAgICAgICAgICAgZm9yRXZlbnRzVmlldz17ZmFsc2V9XG4gICAgICAgICAgICAgIGZvcldXVFBEYXNoYm9hcmQ9e3RydWV9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvQ29sPlxuICAgICAgICA8L1Jvdz5cbiAgICAgIDwvQ29udGFpbmVyPlxuICAgIDwvU2VsZWN0ZWRJdGVtUHJvdmlkZXI+XG4gICk7XG59O1xuXG5jb25zdCBDb250YWluZXIgPSBzdHlsZWQuZGl2YFxuICB3aWR0aDogMTAwdnc7XG5cbiAgLm1hcC1jb2x1bW4ge1xuICAgIHotaW5kZXg6IDA7XG4gIH1cblxuICAua2QtbWFwLWNvbnRhaW5lciB7XG4gICAgaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMTM0cHgpO1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDEyNTBweCkge1xuICAgICAgaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMTI1cHgpO1xuICAgIH1cblxuICAgICNtYXAge1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICosXG4gICAgICAqOmZvY3VzLFxuICAgICAgKjpob3ZlciB7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICB9XG5cbiAgICAgIC5sZWFmbGV0LXBvcHVwLWNsb3NlLWJ1dHRvbiB7XG4gICAgICAgIGZvbnQtc2l6ZTogeC1sYXJnZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbmA7XG5cbmV4cG9ydCBkZWZhdWx0IFdXVFBNYXA7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxXQUFBLEdBQUFDLE9BQUE7QUFDQSxJQUFBQyxNQUFBLEdBQUFDLHVCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBRyxJQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxRQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxTQUFBLEdBQUFMLE9BQUE7QUFDQSxJQUFBTSxTQUFBLEdBQUFOLE9BQUE7QUFFQSxJQUFBTyxLQUFBLEdBQUFQLE9BQUE7QUFHQSxJQUFBUSxNQUFBLEdBQUFSLE9BQUE7QUFDQSxJQUFBUyxPQUFBLEdBQUFULE9BQUE7QUFDQSxJQUFBVSxlQUFBLEdBQUFWLE9BQUE7QUFDQSxJQUFBVyxtQkFBQSxHQUFBWCxPQUFBO0FBSUEsSUFBQVksWUFBQSxHQUFBWixPQUFBO0FBQ0EsSUFBQWEsZUFBQSxHQUFBYixPQUFBO0FBQ0EsSUFBQWMsWUFBQSxHQUFBQyxzQkFBQSxDQUFBZixPQUFBO0FBQWtELFNBQUFnQix5QkFBQUMsV0FBQSxlQUFBQyxPQUFBLGtDQUFBQyxpQkFBQSxPQUFBRCxPQUFBLFFBQUFFLGdCQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEseUJBQUFDLFdBQUEsV0FBQUEsV0FBQSxHQUFBRyxnQkFBQSxHQUFBRCxpQkFBQSxLQUFBRixXQUFBO0FBQUEsU0FBQWYsd0JBQUFtQixHQUFBLEVBQUFKLFdBQUEsU0FBQUEsV0FBQSxJQUFBSSxHQUFBLElBQUFB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
165
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3RSZWR1eCIsInJlcXVpcmUiLCJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsIl9NYXAiLCJfYWN0aW9ucyIsIl9hY3Rpb25zMiIsIl9hY3Rpb25zMyIsIl9MaXN0IiwiX3V0aWxzIiwiX0xvYWRlciIsIl9yZWFjdFJvdXRlckRvbSIsIl91c2VRdWVyeVVSTCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfV1dUUERhc2hib2FyZFNsaWNlIiwiX0xpc3RDb250ZXh0IiwiX3JlYWN0Qm9vdHN0cmFwIiwiX0NhcGFjaXR5IiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwibm9kZUludGVyb3AiLCJXZWFrTWFwIiwiY2FjaGVCYWJlbEludGVyb3AiLCJjYWNoZU5vZGVJbnRlcm9wIiwib2JqIiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJkZWZhdWx0IiwiY2FjaGUiLCJoYXMiLCJnZXQiLCJuZXdPYmoiLCJoYXNQcm9wZXJ0eURlc2NyaXB0b3IiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlc2MiLCJzZXQiLCJXV1RQTWFwIiwicHJvcHMiLCJzZWFyY2hRdWVyeSIsInVzZVF1ZXJ5VVJMIiwiaXNNYXBUYWIiLCJfdXNlUGFyYW1zIiwidXNlUGFyYW1zIiwiaWQiLCJhcmVhSUQiLCJzaXRlSUQiLCJSZWR1eFN0YXRlIiwidXNlU2VsZWN0b3IiLCJzdGF0ZSIsImRpc3BhdGNoIiwidXNlRGlzcGF0Y2giLCJhcmVhc19kYXRhIiwiZ2xvYmFsX2RhdGEiLCJwb2ludHNfZGF0YSIsImVkZ2VzX2RhdGEiLCJ3d3RwX2Rhc2hib2FyZCIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsInBvaW50cyIsInNldFBvaW50cyIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0IiwiYXJlYXMiLCJzZXRBcmVhcyIsIl91c2VTdGF0ZTUiLCJwb2ludCIsImFyZWEiLCJfdXNlU3RhdGU2IiwiV1dUUEluZm8iLCJzZXRXV1RQSW5mbyIsImRhdGFFeGlzdHMiLCJuZXdBcmVhcyIsImxlbmd0aCIsIml0ZW1zIiwidXNlRWZmZWN0Iiwid2F0ZXJBdXRob3JpdHlJZCIsImZldGNoUG9pbnRzIiwiZmV0Y2hFZGdlcyIsImZldGNoQXJlYXMiLCJkYXNoYm9hcmQiLCJwZXJpb2QiLCJ0b1N0cmluZyIsImluaXRpYWxpemVXV1RQRGF0YSIsImNhbGN1bGF0ZVdXVFBJbmZvIiwiZm9jdXNNYXAiLCJtYXAiLCJjbGVhbnVwIiwic2V0Rm9jdXNlZEFyZWEiLCJzZXRNYXAiLCJvYmplY3QiLCJ0eXBlIiwiaXNfdmlydHVhbCIsInZhbGlkT2JqZWN0IiwiYXJlYV9pZCIsInBhcnNlSW50IiwiZmV0Y2hDYXBhY2l0eSIsInRoZW4iLCJyZXNwb25zZSIsInNldEZvY3VzZWRJdGVtIiwiZGF0YSIsInV0aWxpdHlEaXJlY3RzIiwic29ydEFyZWFzIiwiZmlsdGVyIiwiaXNfd3d0cCIsImlzX2lubGV0IiwidW5kZWZpbmVkIiwiY3JlYXRlRWxlbWVudCIsIkZyYWdtZW50IiwiTG9hZGVyIiwiU2VsZWN0ZWRJdGVtUHJvdmlkZXIiLCJDb250YWluZXIiLCJSb3ciLCJjbGFzc05hbWUiLCJDb2wiLCJ4cyIsInNtIiwiTGlzdCIsIk1hcCIsImVkZ2VzIiwiYXJlYVRvQ2VudGVyQnkiLCJmb2N1c2VkRXZlbnQiLCJpbmNsdWRlVW5tb25pdG9yZWRQb2ludHMiLCJmb3JFdmVudHNWaWV3IiwiZm9yV1dUUERhc2hib2FyZCIsInN0eWxlZCIsImRpdiIsIndpdGhDb25maWciLCJkaXNwbGF5TmFtZSIsImNvbXBvbmVudElkIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3BhZ2VzL0Rhc2hib2FyZE1hcC9XV1RQTWFwLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VEaXNwYXRjaCwgdXNlU2VsZWN0b3IgfSBmcm9tICdyZWFjdC1yZWR1eCc7XG5pbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IE1hcCB9IGZyb20gJ3NyYy9XaWRnZXRzL01hcC9NYXAnO1xuaW1wb3J0IHsgZmV0Y2hBcmVhcyB9IGZyb20gJ3NyYy9zdG9yZS9hcmVhcy9hY3Rpb25zJztcbmltcG9ydCB7IGZldGNoRWRnZXMgfSBmcm9tICdzcmMvc3RvcmUvZWRnZXMvYWN0aW9ucyc7XG5pbXBvcnQgeyBmZXRjaFBvaW50cyB9IGZyb20gJ3NyYy9zdG9yZS9wb2ludHMvYWN0aW9ucyc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzL21hY3JvJztcbmltcG9ydCB7IExpc3QgfSBmcm9tICcuL0xpc3QnO1xuaW1wb3J0IHsgSVBvaW50IH0gZnJvbSAnLi4vLi4vc3RvcmUvcG9pbnRzL21vZGVscy9JUG9pbnQnO1xuaW1wb3J0IHsgSUFyZWEgfSBmcm9tICcuLi8uLi9zdG9yZS9hcmVhcy9tb2RlbHMvSUFyZWEnO1xuaW1wb3J0IHtcbiAgY2FsY3VsYXRlV1dUUEluZm8sXG4gIGZvY3VzTWFwLFxuICBpbml0aWFsaXplV1dUUERhdGEsXG4gIHNvcnRBcmVhcyxcbn0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBMb2FkZXIgfSBmcm9tICcuL0xvYWRlcic7XG5pbXBvcnQgeyB1c2VQYXJhbXMgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCB1c2VRdWVyeVVSTCBmcm9tICcuLi8uLi9ob29rcy91c2VRdWVyeVVSTCc7XG5pbXBvcnQge1xuICBzZXRGb2N1c2VkQXJlYSxcbiAgc2V0TWFwLFxufSBmcm9tICcuLi8uLi9zdG9yZS9XV1RQRGFzaGJvYXJkL1dXVFBEYXNoYm9hcmRTbGljZSc7XG5pbXBvcnQgeyBTZWxlY3RlZEl0ZW1Qcm92aWRlciB9IGZyb20gJy4vTGlzdENvbnRleHQnO1xuaW1wb3J0IHsgUm93LCBDb2wgfSBmcm9tICdyZWFjdC1ib290c3RyYXAnO1xuaW1wb3J0IHsgZmV0Y2hDYXBhY2l0eSwgc2V0Rm9jdXNlZEl0ZW0gfSBmcm9tICcuL0NhcGFjaXR5JztcblxuZXhwb3J0IGludGVyZmFjZSBDYXBhY2l0eU1hcENvbnRhaW5lclByb3BzIHtcbiAgY2xhc3NOYW1lOiBzdHJpbmc7XG59XG5jb25zdCBXV1RQTWFwOiBSZWFjdC5GQzxDYXBhY2l0eU1hcENvbnRhaW5lclByb3BzPiA9IChwcm9wcykgPT4ge1xuICBjb25zdCBzZWFyY2hRdWVyeSA9IHVzZVF1ZXJ5VVJMKCk7XG4gIGNvbnN0IGlzTWFwVGFiID0gc2VhcmNoUXVlcnkuZ2V0KCd2aWV3JykgPT09ICdtYXAnO1xuICBsZXQgeyBpZCwgYXJlYUlELCBzaXRlSUQgfSA9IHVzZVBhcmFtcygpO1xuICBpZCA9IGlkIHx8IGFyZWFJRCB8fCBzaXRlSUQ7XG4gIGNvbnN0IFJlZHV4U3RhdGUgPSB1c2VTZWxlY3Rvcigoc3RhdGUpID0+IHN0YXRlKTtcbiAgY29uc3QgZGlzcGF0Y2ggPSB1c2VEaXNwYXRjaCgpO1xuICBjb25zdCB7IGFyZWFzX2RhdGEsIGdsb2JhbF9kYXRhLCBwb2ludHNfZGF0YSwgZWRnZXNfZGF0YSwgd3d0cF9kYXNoYm9hcmQgfSA9XG4gICAgUmVkdXhTdGF0ZTtcbiAgY29uc3QgW3BvaW50cywgc2V0UG9pbnRzXSA9IHVzZVN0YXRlPElQb2ludFtdIHwgbnVsbD4obnVsbCk7XG4gIGNvbnN0IFthcmVhcywgc2V0QXJlYXNdID0gdXNlU3RhdGU8SUFyZWFbXSB8IG51bGw+KG51bGwpO1xuICBjb25zdCBbV1dUUEluZm8sIHNldFdXVFBJbmZvXSA9IHVzZVN0YXRlPHtcbiAgICBwb2ludDogSVBvaW50IHwgbnVsbDtcbiAgICBhcmVhOiBJQXJlYSB8IG51bGw7XG4gIH0+KHsgcG9pbnQ6IG51bGwsIGFyZWE6IG51bGwgfSk7XG4gIGxldCBkYXRhRXhpc3RzID0gKCkgPT4ge1xuICAgIHJldHVybiAoXG4gICAgICBhcmVhc19kYXRhLm5ld0FyZWFzLmxlbmd0aCAhPT0gMCB8fFxuICAgICAgcG9pbnRzX2RhdGEuaXRlbXMubGVuZ3RoICE9PSAwIHx8XG4gICAgICBlZGdlc19kYXRhLml0ZW1zLmxlbmd0aCAhPT0gMFxuICAgICk7XG4gIH07XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoZ2xvYmFsX2RhdGEud2F0ZXJBdXRob3JpdHlJZCkge1xuICAgICAgZGlzcGF0Y2goZmV0Y2hQb2ludHMoZ2xvYmFsX2RhdGEud2F0ZXJBdXRob3JpdHlJZCkpO1xuICAgICAgZGlzcGF0Y2goZmV0Y2hFZGdlcyhnbG9iYWxfZGF0YS53YXRlckF1dGhvcml0eUlkKSk7XG4gICAgICBkaXNwYXRjaChcbiAgICAgICAgZmV0Y2hBcmVhcyhcbiAgICAgICAgICBnbG9iYWxfZGF0YS53YXRlckF1dGhvcml0eUlkLFxuICAgICAgICAgIFJlZHV4U3RhdGUuZGFzaGJvYXJkLnBlcmlvZC50b1N0cmluZygpLFxuICAgICAgICAgIHRydWUsXG4gICAgICAgICksXG4gICAgICApO1xuICAgIH1cbiAgfSwgW1JlZHV4U3RhdGUuZGFzaGJvYXJkLnBlcmlvZF0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaW5pdGlhbGl6ZVdXVFBEYXRhKHtcbiAgICAgIGFyZWFzX2RhdGEsXG4gICAgICBwb2ludHNfZGF0YSxcbiAgICAgIHNldFBvaW50cyxcbiAgICAgIHNldEFyZWFzLFxuICAgICAgc2V0V1dUUEluZm8sXG4gICAgICBkYXRhRXhpc3RzLFxuICAgICAgaWQsXG4gICAgfSk7XG4gIH0sIFthcmVhc19kYXRhXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBzZXRXV1RQSW5mbyhjYWxjdWxhdGVXV1RQSW5mbyh7IGlkLCBwb2ludHNfZGF0YSwgYXJlYXNfZGF0YSB9KSk7XG4gIH0sIFtpZF0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgZm9jdXNNYXAoV1dUUEluZm8uYXJlYSB8fCBXV1RQSW5mby5wb2ludCwgd3d0cF9kYXNoYm9hcmQubWFwKTtcbiAgfSwgW1dXVFBJbmZvXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoZ2xvYmFsX2RhdGEud2F0ZXJBdXRob3JpdHlJZCkge1xuICAgICAgcG9pbnRzX2RhdGEuaXRlbXMubGVuZ3RoID09PSAwICYmXG4gICAgICAgIGRpc3BhdGNoKGZldGNoUG9pbnRzKGdsb2JhbF9kYXRhLndhdGVyQXV0aG9yaXR5SWQpKTtcbiAgICAgIGVkZ2VzX2RhdGEuaXRlbXMubGVuZ3RoID09PSAwICYmXG4gICAgICAgIGRpc3BhdGNoKGZldGNoRWRnZXMoZ2xvYmFsX2RhdGEud2F0ZXJBdXRob3JpdHlJZCkpO1xuICAgICAgYXJlYXNfZGF0YS5pdGVtcy5sZW5ndGggPT09IDAgJiZcbiAgICAgICAgZGlzcGF0Y2goXG4gICAgICAgICAgZmV0Y2hBcmVhcyhcbiAgICAgICAgICAgIGdsb2JhbF9kYXRhLndhdGVyQXV0aG9yaXR5SWQsXG4gICAgICAgICAgICBSZWR1eFN0YXRlLmRhc2hib2FyZC5wZXJpb2QsXG4gICAgICAgICAgICB0cnVlLFxuICAgICAgICAgICksXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZ1bmN0aW9uIGNsZWFudXAoKSB7XG4gICAgICBzZXRQb2ludHMobnVsbCk7XG4gICAgICBzZXRBcmVhcyhudWxsKTtcbiAgICAgIHNldFdXVFBJbmZvKHsgcG9pbnQ6IG51bGwsIGFyZWE6IG51bGwgfSk7XG4gICAgICBkaXNwYXRjaChzZXRGb2N1c2VkQXJlYShudWxsKSk7XG4gICAgICBkaXNwYXRjaChzZXRNYXAobnVsbCkpO1xuICAgIH07XG4gIH0sIFtnbG9iYWxfZGF0YS53YXRlckF1dGhvcml0eUlkXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBvYmplY3QgPSBXV1RQSW5mby5hcmVhIHx8IFdXVFBJbmZvLnBvaW50O1xuXG4gICAgaWYgKGlzTWFwVGFiICYmIG9iamVjdCkge1xuICAgICAgY29uc3QgdHlwZSA9IFdXVFBJbmZvLmFyZWFcbiAgICAgICAgPyBvYmplY3QuaXNfdmlydHVhbCA9PT0gdHJ1ZVxuICAgICAgICAgID8gJ3ZhcmVhJ1xuICAgICAgICAgIDogJ2FyZWEnXG4gICAgICAgIDogJ3NpdGUnO1xuXG4gICAgICBjb25zdCB2YWxpZE9iamVjdCA9XG4gICAgICAgIHR5cGUgPT09ICdzaXRlJ1xuICAgICAgICAgID8gb2JqZWN0LmlkLnRvU3RyaW5nKCkgPT09IGlkXG4gICAgICAgICAgOiBvYmplY3QuYXJlYV9pZCA9PT0gcGFyc2VJbnQoaWQpO1xuICAgICAgaWYgKHZhbGlkT2JqZWN0KSB7XG4gICAgICAgIGZldGNoQ2FwYWNpdHkodHlwZSwgaWQsIGdsb2JhbF9kYXRhLndhdGVyQXV0aG9yaXR5SWQpLnRoZW4oXG4gICAgICAgICAgKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICBzZXRGb2N1c2VkSXRlbShcbiAgICAgICAgICAgICAgb2JqZWN0LFxuICAgICAgICAgICAgICByZXNwb25zZS5kYXRhLFxuICAgICAgICAgICAgICBwb2ludHMsXG4gICAgICAgICAgICAgIGFyZWFzLFxuICAgICAgICAgICAgICBkaXNwYXRjaCxcbiAgICAgICAgICAgICAgc2V0Rm9jdXNlZEFyZWEsXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0sXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHV0aWxpdHlEaXJlY3RzID0gc29ydEFyZWFzKFxuICAgICAgICBhcmVhcz8uZmlsdGVyKFxuICAgICAgICAgIC8vIGNvbnNpZGVyIGNoYW5naW5nIHRvIGhhc19wYXJlbnQgPSBmYWxzZVxuICAgICAgICAgIC8vIHNvcnRpbmcgdGhlIGxpc3QgYmVjYXN1ZSB0aGUgc2VydmVyIGRvZXNuJ3RcbiAgICAgICAgICAoYXJlYSkgPT5cbiAgICAgICAgICAgIGFyZWEuaXNfdmlydHVhbCA9PT0gdHJ1ZSB8fFxuICAgICAgICAgICAgYXJlYS5pc193d3RwID09PSB0cnVlIHx8XG4gICAgICAgICAgICBhcmVhLmlzX2lubGV0ID09PSB0cnVlLFxuICAgICAgICApLFxuICAgICAgKTtcblxuICAgICAgc2V0Rm9jdXNlZEl0ZW0oXG4gICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgbnVsbCxcbiAgICAgICAgcG9pbnRzLFxuICAgICAgICB1dGlsaXR5RGlyZWN0cyxcbiAgICAgICAgZGlzcGF0Y2gsXG4gICAgICAgIHNldEZvY3VzZWRBcmVhLFxuICAgICAgKTtcbiAgICB9XG4gICAgZm9jdXNNYXAob2JqZWN0LCB3d3RwX2Rhc2hib2FyZC5tYXApO1xuICB9LCBbd3d0cF9kYXNoYm9hcmQubWFwXSk7XG5cbiAgaWYgKCFpc01hcFRhYikgcmV0dXJuIDw+PC8+O1xuICBpZiAoIWRhdGFFeGlzdHMoKSB8fCAhcG9pbnRzIHx8ICFhcmVhcykgcmV0dXJuIDxMb2FkZXIgLz47XG4gIHJldHVybiAoXG4gICAgPFNlbGVjdGVkSXRlbVByb3ZpZGVyPlxuICAgICAgPENvbnRhaW5lciB7Li4ucHJvcHN9PlxuICAgICAgICA8Um93IGNsYXNzTmFtZT1cIm5vLWd1dHRlcnNcIj5cbiAgICAgICAgICA8Q29sIHhzPVwiYXV0b1wiIHNtPXs0fSBjbGFzc05hbWU9XCJkLW5vbmUgZC1zbS1mbGV4XCI+XG4gICAgICAgICAgICA8TGlzdFxuICAgICAgICAgICAgICBnbG9iYWxfZGF0YT17Z2xvYmFsX2RhdGF9XG4gICAgICAgICAgICAgIGFyZWFzPXthcmVhc31cbiAgICAgICAgICAgICAgcG9pbnRzPXtwb2ludHN9XG4gICAgICAgICAgICAgIFdXVFBJbmZvPXtXV1RQSW5mb31cbiAgICAgICAgICAgICAgZGlzcGF0Y2g9e2Rpc3BhdGNofVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L0NvbD5cbiAgICAgICAgICA8Q29sIGNsYXNzTmFtZT1cIm1hcC1jb2x1bW5cIiB4cz17MTJ9IHNtPXs4fT5cbiAgICAgICAgICAgIDxNYXBcbiAgICAgICAgICAgICAgcG9pbnRzPXtwb2ludHN9XG4gICAgICAgICAgICAgIGFyZWFzPXthcmVhc31cbiAgICAgICAgICAgICAgZ2xvYmFsX2RhdGE9e2dsb2JhbF9kYXRhfVxuICAgICAgICAgICAgICBlZGdlcz17ZWRnZXNfZGF0YS5pdGVtc31cbiAgICAgICAgICAgICAgYXJlYVRvQ2VudGVyQnk9e251bGx9XG4gICAgICAgICAgICAgIGZvY3VzZWRFdmVudD17bnVsbH1cbiAgICAgICAgICAgICAgaW5jbHVkZVVubW9uaXRvcmVkUG9pbnRzPXt0cnVlfVxuICAgICAgICAgICAgICBmb3JFdmVudHNWaWV3PXtmYWxzZX1cbiAgICAgICAgICAgICAgZm9yV1dUUERhc2hib2FyZD17dHJ1ZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9Db2w+XG4gICAgICAgIDwvUm93PlxuICAgICAgPC9Db250YWluZXI+XG4gICAgPC9TZWxlY3RlZEl0ZW1Qcm92aWRlcj5cbiAgKTtcbn07XG5cbmNvbnN0IENvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIHdpZHRoOiAxMDB2dztcblxuICAubWFwLWNvbHVtbiB7XG4gICAgei1pbmRleDogMDtcbiAgfVxuXG4gIC5rZC1tYXAtY29udGFpbmVyIHtcbiAgICBoZWlnaHQ6IGNhbGMoMTAwdmggLSAxMzRweCk7XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICBAbWVkaWEgKG1heC13aWR0aDogMTI1MHB4KSB7XG4gICAgICBoZWlnaHQ6IGNhbGMoMTAwdmggLSAxMjVweCk7XG4gICAgfVxuXG4gICAgI21hcCB7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgKixcbiAgICAgICo6Zm9jdXMsXG4gICAgICAqOmhvdmVyIHtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgIH1cblxuICAgICAgLmxlYWZsZXQtcG9wdXAtY2xvc2UtYnV0dG9uIHtcbiAgICAgICAgZm9udC1zaXplOiB4LWxhcmdlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuYDtcblxu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
@@ -14,6 +14,7 @@ var _WWTPDashboardSlice = require("../../store/WWTPDashboard/WWTPDashboardSlice"
14
14
  var _i18n = _interopRequireDefault(require("../../utilities/i18n"));
15
15
  var _InletsPie = _interopRequireDefault(require("../../ui-kit/InletsPie"));
16
16
  var _utils = require("./utils");
17
+ var _Capacity = require("./Capacity");
17
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); }
18
19
  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 updatePoint = function updatePoint(_ref) {
@@ -59,7 +60,8 @@ var Widget = function Widget(props) {
59
60
  areas = props.areas,
60
61
  map = props.map,
61
62
  global_data = props.global_data,
62
- listData = props.listData;
63
+ listData = props.listData,
64
+ history = props.history;
63
65
  var _useState = (0, _react.useState)(null),
64
66
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
65
67
  area = _useState2[0],
@@ -78,27 +80,11 @@ var Widget = function Widget(props) {
78
80
  setListItems = _useState8[1];
79
81
  var handleClick = function handleClick() {
80
82
  map.closePopup();
81
- if (area) {
82
- var focusedArea = area;
83
- if (listItems && listItems.length > 0) {
84
- var _area = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, focusedArea), {}, {
85
- factories: focusedArea.sub_areas.length > 0 ? [] : getPoints(listItems, points)
86
- });
87
- dispatch((0, _WWTPDashboardSlice.setFocusedArea)(_area));
88
- } else {
89
- dispatch((0, _WWTPDashboardSlice.setFocusedArea)(focusedArea));
90
- }
91
- } else {
92
- if (point) {
93
- var focusedPoint = updatePoint({
94
- point: point,
95
- listItems: listItems,
96
- areas: areas,
97
- points: points
98
- });
99
- dispatch((0, _WWTPDashboardSlice.setFocusedArea)(focusedPoint));
100
- }
101
- }
83
+ var clickedObject = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, object), {}, {
84
+ clicked: true
85
+ });
86
+ (0, _utils.updateHistory)(clickedObject, history);
87
+ (0, _Capacity.setFocusedItem)(clickedObject, listItems, points, areas, dispatch, _WWTPDashboardSlice.setFocusedArea, true);
102
88
  sendButtonClickedAnalytics();
103
89
  };
104
90
  var sendButtonClickedAnalytics = function sendButtonClickedAnalytics() {
@@ -106,9 +92,6 @@ var Widget = function Widget(props) {
106
92
  utility_name: global_data.waterAuthorityName
107
93
  });
108
94
  };
109
-
110
- // Return the point objects of all items in the list sorted by their names
111
-
112
95
  var getButtonType = function getButtonType(type) {
113
96
  var rc;
114
97
  switch (type.toLowerCase()) {
@@ -171,4 +154,4 @@ var Widget = function Widget(props) {
171
154
  }, widgetContent()));
172
155
  };
173
156
  exports.Widget = Widget;
174
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfcmVhY3RCb290c3RyYXAiLCJfV1dUUERhc2hib2FyZFNsaWNlIiwiX2kxOG4iLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX0lubGV0c1BpZSIsIl91dGlscyIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsIm5vZGVJbnRlcm9wIiwiV2Vha01hcCIsImNhY2hlQmFiZWxJbnRlcm9wIiwiY2FjaGVOb2RlSW50ZXJvcCIsIm9iaiIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiZGVmYXVsdCIsImNhY2hlIiwiaGFzIiwiZ2V0IiwibmV3T2JqIiwiaGFzUHJvcGVydHlEZXNjcmlwdG9yIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJrZXkiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJkZXNjIiwic2V0IiwidXBkYXRlUG9pbnQiLCJfcmVmIiwicG9pbnQiLCJsaXN0SXRlbXMiLCJhcmVhcyIsInBvaW50cyIsImFyZWFJZHMiLCJtYXAiLCJpdGVtIiwiaWQiLCJzdWJBcmVhcyIsImdldEFyZWFzIiwiX29iamVjdFNwcmVhZDIiLCJmYWN0b3JpZXMiLCJsZW5ndGgiLCJnZXRQb2ludHMiLCJzdWJfYXJlYXMiLCJzaGFwZV9kYXRhIiwibGF0aXR1ZGUiLCJsb25naXR1ZGUiLCJleHBvcnRzIiwidW5kZWZpbmVkIiwicmV0dXJuZWRBcmVhcyIsImNvcnJlc3BvbmRpbmdBcmVhIiwiZmluZCIsImFyZWEiLCJhcmVhX2lkIiwicmV0dXJuZWRQb2ludHMiLCJjb3JyZXNwb25kaW5nUG9pbnQiLCJXaWRnZXQiLCJwcm9wcyIsIm9iamVjdCIsImRpc3BhdGNoIiwiZ2xvYmFsX2RhdGEiLCJsaXN0RGF0YSIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsInNldEFyZWEiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsInNldFBvaW50IiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJidXR0b25OYW1lIiwic2V0QnV0dG9uTmFtZSIsIl91c2VTdGF0ZTciLCJfdXNlU3RhdGU4Iiwic2V0TGlzdEl0ZW1zIiwiaGFuZGxlQ2xpY2siLCJjbG9zZVBvcHVwIiwiZm9jdXNlZEFyZWEiLCJzZXRGb2N1c2VkQXJlYSIsImZvY3VzZWRQb2ludCIsInNlbmRCdXR0b25DbGlja2VkQW5hbHl0aWNzIiwic2VuZEFuYWx5dGljc0V2ZW50IiwidXRpbGl0eV9uYW1lIiwid2F0ZXJBdXRob3JpdHlOYW1lIiwiZ2V0QnV0dG9uVHlwZSIsInR5cGUiLCJyYyIsInRvTG93ZXJDYXNlIiwidGl0bGUiLCJwYXlsb2FkIiwibmFtZSIsImFyZWFfbmFtZSIsImJ1dHRvblRpdGxlIiwiaTE4biIsInQiLCJjb25jYXQiLCJ1c2VFZmZlY3QiLCJpc0FQb2ludCIsImZvcldXVFBNYXAiLCJkYXRhIiwid2lkZ2V0Q29udGVudCIsInNob3dCdXR0b24iLCJjcmVhdGVFbGVtZW50IiwiQnV0dG9uIiwib25DbGljayIsImNsYXNzTmFtZSIsImlubGV0cyIsIkZyYWdtZW50IiwiQ2FyZCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYWdlcy9EYXNoYm9hcmRNYXAvV2lkZ2V0LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IEJ1dHRvbiwgQ2FyZCB9IGZyb20gJ3JlYWN0LWJvb3RzdHJhcCc7XG5pbXBvcnQgeyBzZXRGb2N1c2VkQXJlYSB9IGZyb20gJy4uLy4uL3N0b3JlL1dXVFBEYXNoYm9hcmQvV1dUUERhc2hib2FyZFNsaWNlJztcbmltcG9ydCB7IElQb2ludCB9IGZyb20gJy4uLy4uL3N0b3JlL3BvaW50cy9tb2RlbHMvSVBvaW50JztcbmltcG9ydCBpMThuIGZyb20gJy4uLy4uL3V0aWxpdGllcy9pMThuJztcbmltcG9ydCB7IElBcmVhIH0gZnJvbSAnLi4vLi4vc3RvcmUvYXJlYXMvbW9kZWxzL0lBcmVhJztcbmltcG9ydCBJbmxldHNQaWUgZnJvbSAnLi4vLi4vdWkta2l0L0lubGV0c1BpZSc7XG5pbXBvcnQgeyBzZW5kQW5hbHl0aWNzRXZlbnQgfSBmcm9tICcuL3V0aWxzJztcblxudHlwZSBJUHJvcHMgPSB7XG4gIG9iamVjdDogYW55O1xuICBkaXNwYXRjaDogYW55O1xuICBwb2ludHM/OiBJUG9pbnRbXTtcbiAgYXJlYXM/OiBJQXJlYVtdO1xuICBtYXA7XG4gIGdsb2JhbF9kYXRhO1xuICBsaXN0RGF0YTogYW55O1xufTtcblxuZXhwb3J0IGNvbnN0IHVwZGF0ZVBvaW50ID0gKHsgcG9pbnQsIGxpc3RJdGVtcywgYXJlYXMsIHBvaW50cyB9KSA9PiB7XG4gIGNvbnN0IGFyZWFJZHMgPSBsaXN0SXRlbXMubWFwKChpdGVtKSA9PiBpdGVtLmlkKTtcbiAgY29uc3Qgc3ViQXJlYXMgPSBnZXRBcmVhcyhhcmVhSWRzLCBhcmVhcyk7XG4gIHJldHVybiB7XG4gICAgLi4ucG9pbnQsXG4gICAgZmFjdG9yaWVzOiBzdWJBcmVhcy5sZW5ndGggPiAwID8gW10gOiBnZXRQb2ludHMobGlzdEl0ZW1zLCBwb2ludHMpLFxuICAgIHN1Yl9hcmVhczogc3ViQXJlYXMsXG4gICAgc2hhcGVfZGF0YTogW1twb2ludC5sYXRpdHVkZSwgcG9pbnQubG9uZ2l0dWRlXV0sXG4gIH07XG59O1xuXG5jb25zdCBnZXRBcmVhcyA9IChhcmVhSWRzOiBhbnlbXSwgYXJlYXMpID0+IHtcbiAgaWYgKFxuICAgIGFyZWFJZHMubGVuZ3RoID09PSAwIHx8XG4gICAgYXJlYXMgPT09IHVuZGVmaW5lZCB8fFxuICAgIGFyZWFzID09PSBudWxsIHx8XG4gICAgYXJlYXMubGVuZ3RoID09PSAwXG4gIClcbiAgICByZXR1cm4gW107XG5cbiAgY29uc3QgcmV0dXJuZWRBcmVhcyA9IGFyZWFJZHMubWFwKChpZCkgPT4ge1xuICAgIGNvbnN0IGNvcnJlc3BvbmRpbmdBcmVhID0gYXJlYXMuZmluZCgoYXJlYSkgPT4gYXJlYS5hcmVhX2lkID09PSBpZCk7XG4gICAgcmV0dXJuIGNvcnJlc3BvbmRpbmdBcmVhO1xuICB9KTtcblxuICByZXR1cm4gcmV0dXJuZWRBcmVhcztcbn07XG5cbmNvbnN0IGdldFBvaW50cyA9IChsaXN0SXRlbXMsIHBvaW50cykgPT4ge1xuICBpZiAobGlzdEl0ZW1zID09PSBudWxsIHx8IHBvaW50cyA9PT0gdW5kZWZpbmVkIHx8IHBvaW50cy5sZW5ndGggPT09IDApXG4gICAgcmV0dXJuIFtdO1xuXG4gIGNvbnN0IHJldHVybmVkUG9pbnRzID0gbGlzdEl0ZW1zLm1hcCgoaXRlbSkgPT4ge1xuICAgIGNvbnN0IGNvcnJlc3BvbmRpbmdQb2ludCA9IHBvaW50cy5maW5kKChwb2ludCkgPT4gcG9pbnQuaWQgPT09IGl0ZW0uaWQpO1xuICAgIHJldHVybiBjb3JyZXNwb25kaW5nUG9pbnQ7XG4gIH0pO1xuXG4gIHJldHVybiByZXR1cm5lZFBvaW50cztcbn07XG5leHBvcnQgY29uc3QgV2lkZ2V0OiBSZWFjdC5GQzxJUHJvcHM+ID0gKHByb3BzKSA9PiB7XG4gIGNvbnN0IHsgb2JqZWN0LCBkaXNwYXRjaCwgcG9pbnRzLCBhcmVhcywgbWFwLCBnbG9iYWxfZGF0YSwgbGlzdERhdGEgfSA9IHByb3BzO1xuICBjb25zdCBbYXJlYSwgc2V0QXJlYV0gPSB1c2VTdGF0ZTxJQXJlYSB8IG51bGw+KG51bGwpO1xuICBjb25zdCBbcG9pbnQsIHNldFBvaW50XSA9IHVzZVN0YXRlPElQb2ludCB8IG51bGw+KG51bGwpO1xuICBjb25zdCBbYnV0dG9uTmFtZSwgc2V0QnV0dG9uTmFtZV0gPSB1c2VTdGF0ZTxzdHJpbmc+KCcnKTtcbiAgY29uc3QgW2xpc3RJdGVtcywgc2V0TGlzdEl0ZW1zXSA9IHVzZVN0YXRlPGFueVtdPihbXSk7XG5cbiAgY29uc3QgaGFuZGxlQ2xpY2sgPSAoKSA9PiB7XG4gICAgbWFwLmNsb3NlUG9wdXAoKTtcblxuICAgIGlmIChhcmVhKSB7XG4gICAgICBsZXQgZm9jdXNlZEFyZWEgPSBhcmVhO1xuICAgICAgaWYgKGxpc3RJdGVtcyAmJiBsaXN0SXRlbXMubGVuZ3RoID4gMCkge1xuICAgICAgICBjb25zdCBhcmVhID0ge1xuICAgICAgICAgIC4uLmZvY3VzZWRBcmVhLFxuICAgICAgICAgIGZhY3RvcmllczpcbiAgICAgICAgICAgIGZvY3VzZWRBcmVhLnN1Yl9hcmVhcy5sZW5ndGggPiAwXG4gICAgICAgICAgICAgID8gW11cbiAgICAgICAgICAgICAgOiBnZXRQb2ludHMobGlzdEl0ZW1zLCBwb2ludHMpLFxuICAgICAgICB9O1xuICAgICAgICBkaXNwYXRjaChzZXRGb2N1c2VkQXJlYShhcmVhKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkaXNwYXRjaChzZXRGb2N1c2VkQXJlYShmb2N1c2VkQXJlYSkpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAocG9pbnQpIHtcbiAgICAgICAgY29uc3QgZm9jdXNlZFBvaW50ID0gdXBkYXRlUG9pbnQoeyBwb2ludCwgbGlzdEl0ZW1zLCBhcmVhcywgcG9pbnRzIH0pO1xuICAgICAgICBkaXNwYXRjaChzZXRGb2N1c2VkQXJlYShmb2N1c2VkUG9pbnQpKTtcbiAgICAgIH1cbiAgICB9XG4gICAgc2VuZEJ1dHRvbkNsaWNrZWRBbmFseXRpY3MoKTtcbiAgfTtcblxuICBjb25zdCBzZW5kQnV0dG9uQ2xpY2tlZEFuYWx5dGljcyA9ICgpID0+IHtcbiAgICBzZW5kQW5hbHl0aWNzRXZlbnQoJ01hcCB2aWV3IC0gUG9wdXAgZHJpbGxkb3duIGNsaWNrZWQnLCBidXR0b25OYW1lLCB7XG4gICAgICB1dGlsaXR5X25hbWU6IGdsb2JhbF9kYXRhLndhdGVyQXV0aG9yaXR5TmFtZSxcbiAgICB9KTtcbiAgfTtcblxuICAvLyBSZXR1cm4gdGhlIHBvaW50IG9iamVjdHMgb2YgYWxsIGl0ZW1zIGluIHRoZSBsaXN0IHNvcnRlZCBieSB0aGVpciBuYW1lc1xuXG4gIGNvbnN0IGdldEJ1dHRvblR5cGUgPSAodHlwZTogc3RyaW5nKSA9PiB7XG4gICAgbGV0IHJjO1xuXG4gICAgc3dpdGNoICh0eXBlLnRvTG93ZXJDYXNlKCkpIHtcbiAgICAgIGNhc2UgJ2FyZWEnOlxuICAgICAgY2FzZSAndmFyZWEnOlxuICAgICAgICByYyA9ICd2aWV3X3N1Yl9hcmVhcyc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnZmFjdG9yeSc6XG4gICAgICAgIHJjID0gJ3ZpZXdfZmFjdG9yaWVzJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByYyA9ICd2aWV3X2lubGV0cyc7XG4gICAgfVxuICAgIHJldHVybiByYztcbiAgfTtcblxuICBjb25zdCB0aXRsZSA9ICgpID0+IHtcbiAgICBsZXQgcGF5bG9hZCA9ICcnO1xuICAgIGlmIChwb2ludCkge1xuICAgICAgcGF5bG9hZCA9IHBvaW50Lm5hbWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChhcmVhKSB7XG4gICAgICAgIHBheWxvYWQgPSBhcmVhLmFyZWFfbmFtZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHBheWxvYWQ7XG4gIH07XG5cbiAgY29uc3QgYnV0dG9uVGl0bGUgPSAoKSA9PiB7XG4gICAgaWYgKGJ1dHRvbk5hbWUgPT09ICcnKSByZXR1cm4gJyc7XG4gICAgcmV0dXJuIGkxOG4udChgd3d0cFBhZ2UuJHtidXR0b25OYW1lfWApO1xuICB9O1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgbGV0IGlzQVBvaW50ID0gb2JqZWN0LmZvcldXVFBNYXAgIT09IHVuZGVmaW5lZDtcblxuICAgIGlmIChpc0FQb2ludCkge1xuICAgICAgc2V0UG9pbnQob2JqZWN0KTtcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0QXJlYShvYmplY3QpO1xuICAgIH1cbiAgfSwgW29iamVjdF0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGxpc3REYXRhID09PSB1bmRlZmluZWQpIHJldHVybjtcblxuICAgIHNldExpc3RJdGVtcyhsaXN0RGF0YT8uZGF0YSk7XG4gICAgaWYgKGxpc3REYXRhLmRhdGEubGVuZ3RoID4gMCkge1xuICAgICAgc2V0QnV0dG9uTmFtZShnZXRCdXR0b25UeXBlKGxpc3REYXRhLmRhdGFbMF0udHlwZSkpO1xuICAgIH1cbiAgfSwgW2xpc3REYXRhXSk7XG5cbiAgY29uc3Qgd2lkZ2V0Q29udGVudCA9ICgpID0+IHtcbiAgICBjb25zdCBkYXRhID0gbGlzdERhdGE/LmRhdGE7XG4gICAgY29uc3Qgc2hvd0J1dHRvbiA9IGRhdGE/Lmxlbmd0aCA+IDA7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdj5cbiAgICAgICAge3Nob3dCdXR0b24gJiYgKFxuICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IGhhbmRsZUNsaWNrKCl9XG4gICAgICAgICAgICBjbGFzc05hbWU9eydjaGlsZHJlbkJ1dHRvbiByb3VuZGVkLXBpbGwgYnRuLWxpZ2h0J31cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7YnV0dG9uVGl0bGUoKX1cbiAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgICAgPElubGV0c1BpZSBpbmxldHM9e2xpc3RJdGVtc30gLz5cbiAgICAgIDwvZGl2PlxuICAgICk7XG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgPGgzPnt0aXRsZSgpfTwvaDM+XG4gICAgICA8Q2FyZCBjbGFzc05hbWU9XCJiZy13aGl0ZSB3aWRnZXQtY29udGFpbmVyXCI+e3dpZGdldENvbnRlbnQoKX08L0NhcmQ+XG4gICAgPC8+XG4gICk7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsZUFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsbUJBQUEsR0FBQUYsT0FBQTtBQUVBLElBQUFH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
157
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfcmVhY3RCb290c3RyYXAiLCJfV1dUUERhc2hib2FyZFNsaWNlIiwiX2kxOG4iLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX0lubGV0c1BpZSIsIl91dGlscyIsIl9DYXBhY2l0eSIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsIm5vZGVJbnRlcm9wIiwiV2Vha01hcCIsImNhY2hlQmFiZWxJbnRlcm9wIiwiY2FjaGVOb2RlSW50ZXJvcCIsIm9iaiIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiZGVmYXVsdCIsImNhY2hlIiwiaGFzIiwiZ2V0IiwibmV3T2JqIiwiaGFzUHJvcGVydHlEZXNjcmlwdG9yIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJrZXkiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJkZXNjIiwic2V0IiwidXBkYXRlUG9pbnQiLCJfcmVmIiwicG9pbnQiLCJsaXN0SXRlbXMiLCJhcmVhcyIsInBvaW50cyIsImFyZWFJZHMiLCJtYXAiLCJpdGVtIiwiaWQiLCJzdWJBcmVhcyIsImdldEFyZWFzIiwiX29iamVjdFNwcmVhZDIiLCJmYWN0b3JpZXMiLCJsZW5ndGgiLCJnZXRQb2ludHMiLCJzdWJfYXJlYXMiLCJzaGFwZV9kYXRhIiwibGF0aXR1ZGUiLCJsb25naXR1ZGUiLCJleHBvcnRzIiwidW5kZWZpbmVkIiwicmV0dXJuZWRBcmVhcyIsImNvcnJlc3BvbmRpbmdBcmVhIiwiZmluZCIsImFyZWEiLCJhcmVhX2lkIiwicmV0dXJuZWRQb2ludHMiLCJjb3JyZXNwb25kaW5nUG9pbnQiLCJXaWRnZXQiLCJwcm9wcyIsIm9iamVjdCIsImRpc3BhdGNoIiwiZ2xvYmFsX2RhdGEiLCJsaXN0RGF0YSIsImhpc3RvcnkiLCJfdXNlU3RhdGUiLCJ1c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheTIiLCJzZXRBcmVhIiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJzZXRQb2ludCIsIl91c2VTdGF0ZTUiLCJfdXNlU3RhdGU2IiwiYnV0dG9uTmFtZSIsInNldEJ1dHRvbk5hbWUiLCJfdXNlU3RhdGU3IiwiX3VzZVN0YXRlOCIsInNldExpc3RJdGVtcyIsImhhbmRsZUNsaWNrIiwiY2xvc2VQb3B1cCIsImNsaWNrZWRPYmplY3QiLCJjbGlja2VkIiwidXBkYXRlSGlzdG9yeSIsInNldEZvY3VzZWRJdGVtIiwic2V0Rm9jdXNlZEFyZWEiLCJzZW5kQnV0dG9uQ2xpY2tlZEFuYWx5dGljcyIsInNlbmRBbmFseXRpY3NFdmVudCIsInV0aWxpdHlfbmFtZSIsIndhdGVyQXV0aG9yaXR5TmFtZSIsImdldEJ1dHRvblR5cGUiLCJ0eXBlIiwicmMiLCJ0b0xvd2VyQ2FzZSIsInRpdGxlIiwicGF5bG9hZCIsIm5hbWUiLCJhcmVhX25hbWUiLCJidXR0b25UaXRsZSIsImkxOG4iLCJ0IiwiY29uY2F0IiwidXNlRWZmZWN0IiwiaXNBUG9pbnQiLCJmb3JXV1RQTWFwIiwiZGF0YSIsIndpZGdldENvbnRlbnQiLCJzaG93QnV0dG9uIiwiY3JlYXRlRWxlbWVudCIsIkJ1dHRvbiIsIm9uQ2xpY2siLCJjbGFzc05hbWUiLCJpbmxldHMiLCJGcmFnbWVudCIsIkNhcmQiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcGFnZXMvRGFzaGJvYXJkTWFwL1dpZGdldC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBCdXR0b24sIENhcmQgfSBmcm9tICdyZWFjdC1ib290c3RyYXAnO1xuaW1wb3J0IHsgc2V0Rm9jdXNlZEFyZWEgfSBmcm9tICcuLi8uLi9zdG9yZS9XV1RQRGFzaGJvYXJkL1dXVFBEYXNoYm9hcmRTbGljZSc7XG5pbXBvcnQgeyBJUG9pbnQgfSBmcm9tICcuLi8uLi9zdG9yZS9wb2ludHMvbW9kZWxzL0lQb2ludCc7XG5pbXBvcnQgaTE4biBmcm9tICcuLi8uLi91dGlsaXRpZXMvaTE4bic7XG5pbXBvcnQgeyBJQXJlYSB9IGZyb20gJy4uLy4uL3N0b3JlL2FyZWFzL21vZGVscy9JQXJlYSc7XG5pbXBvcnQgSW5sZXRzUGllIGZyb20gJy4uLy4uL3VpLWtpdC9JbmxldHNQaWUnO1xuaW1wb3J0IHsgc2VuZEFuYWx5dGljc0V2ZW50LCB1cGRhdGVIaXN0b3J5IH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBzZXRGb2N1c2VkSXRlbSB9IGZyb20gJy4vQ2FwYWNpdHknO1xuXG50eXBlIElQcm9wcyA9IHtcbiAgb2JqZWN0OiBhbnk7XG4gIGRpc3BhdGNoOiBhbnk7XG4gIHBvaW50cz86IElQb2ludFtdO1xuICBhcmVhcz86IElBcmVhW107XG4gIG1hcDtcbiAgZ2xvYmFsX2RhdGE7XG4gIGxpc3REYXRhOiBhbnk7XG4gIGhpc3Rvcnk6IGFueTtcbn07XG5cbmV4cG9ydCBjb25zdCB1cGRhdGVQb2ludCA9ICh7IHBvaW50LCBsaXN0SXRlbXMsIGFyZWFzLCBwb2ludHMgfSkgPT4ge1xuICBjb25zdCBhcmVhSWRzID0gbGlzdEl0ZW1zLm1hcCgoaXRlbSkgPT4gaXRlbS5pZCk7XG4gIGNvbnN0IHN1YkFyZWFzID0gZ2V0QXJlYXMoYXJlYUlkcywgYXJlYXMpO1xuICByZXR1cm4ge1xuICAgIC4uLnBvaW50LFxuICAgIGZhY3Rvcmllczogc3ViQXJlYXMubGVuZ3RoID4gMCA/IFtdIDogZ2V0UG9pbnRzKGxpc3RJdGVtcywgcG9pbnRzKSxcbiAgICBzdWJfYXJlYXM6IHN1YkFyZWFzLFxuICAgIHNoYXBlX2RhdGE6IFtbcG9pbnQubGF0aXR1ZGUsIHBvaW50LmxvbmdpdHVkZV1dLFxuICB9O1xufTtcblxuY29uc3QgZ2V0QXJlYXMgPSAoYXJlYUlkczogYW55W10sIGFyZWFzKSA9PiB7XG4gIGlmIChcbiAgICBhcmVhSWRzLmxlbmd0aCA9PT0gMCB8fFxuICAgIGFyZWFzID09PSB1bmRlZmluZWQgfHxcbiAgICBhcmVhcyA9PT0gbnVsbCB8fFxuICAgIGFyZWFzLmxlbmd0aCA9PT0gMFxuICApXG4gICAgcmV0dXJuIFtdO1xuXG4gIGNvbnN0IHJldHVybmVkQXJlYXMgPSBhcmVhSWRzLm1hcCgoaWQpID0+IHtcbiAgICBjb25zdCBjb3JyZXNwb25kaW5nQXJlYSA9IGFyZWFzLmZpbmQoKGFyZWEpID0+IGFyZWEuYXJlYV9pZCA9PT0gaWQpO1xuICAgIHJldHVybiBjb3JyZXNwb25kaW5nQXJlYTtcbiAgfSk7XG5cbiAgcmV0dXJuIHJldHVybmVkQXJlYXM7XG59O1xuXG5jb25zdCBnZXRQb2ludHMgPSAobGlzdEl0ZW1zLCBwb2ludHMpID0+IHtcbiAgaWYgKGxpc3RJdGVtcyA9PT0gbnVsbCB8fCBwb2ludHMgPT09IHVuZGVmaW5lZCB8fCBwb2ludHMubGVuZ3RoID09PSAwKVxuICAgIHJldHVybiBbXTtcblxuICBjb25zdCByZXR1cm5lZFBvaW50cyA9IGxpc3RJdGVtcy5tYXAoKGl0ZW0pID0+IHtcbiAgICBjb25zdCBjb3JyZXNwb25kaW5nUG9pbnQgPSBwb2ludHMuZmluZCgocG9pbnQpID0+IHBvaW50LmlkID09PSBpdGVtLmlkKTtcbiAgICByZXR1cm4gY29ycmVzcG9uZGluZ1BvaW50O1xuICB9KTtcblxuICByZXR1cm4gcmV0dXJuZWRQb2ludHM7XG59O1xuZXhwb3J0IGNvbnN0IFdpZGdldDogUmVhY3QuRkM8SVByb3BzPiA9IChwcm9wcykgPT4ge1xuICBjb25zdCB7XG4gICAgb2JqZWN0LFxuICAgIGRpc3BhdGNoLFxuICAgIHBvaW50cyxcbiAgICBhcmVhcyxcbiAgICBtYXAsXG4gICAgZ2xvYmFsX2RhdGEsXG4gICAgbGlzdERhdGEsXG4gICAgaGlzdG9yeSxcbiAgfSA9IHByb3BzO1xuICBjb25zdCBbYXJlYSwgc2V0QXJlYV0gPSB1c2VTdGF0ZTxJQXJlYSB8IG51bGw+KG51bGwpO1xuICBjb25zdCBbcG9pbnQsIHNldFBvaW50XSA9IHVzZVN0YXRlPElQb2ludCB8IG51bGw+KG51bGwpO1xuICBjb25zdCBbYnV0dG9uTmFtZSwgc2V0QnV0dG9uTmFtZV0gPSB1c2VTdGF0ZTxzdHJpbmc+KCcnKTtcbiAgY29uc3QgW2xpc3RJdGVtcywgc2V0TGlzdEl0ZW1zXSA9IHVzZVN0YXRlPGFueVtdPihbXSk7XG5cbiAgY29uc3QgaGFuZGxlQ2xpY2sgPSAoKSA9PiB7XG4gICAgbWFwLmNsb3NlUG9wdXAoKTtcbiAgICBjb25zdCBjbGlja2VkT2JqZWN0ID0geyAuLi5vYmplY3QsIGNsaWNrZWQ6IHRydWUgfTtcbiAgICB1cGRhdGVIaXN0b3J5KGNsaWNrZWRPYmplY3QsIGhpc3RvcnkpO1xuICAgIHNldEZvY3VzZWRJdGVtKFxuICAgICAgY2xpY2tlZE9iamVjdCxcbiAgICAgIGxpc3RJdGVtcyxcbiAgICAgIHBvaW50cyxcbiAgICAgIGFyZWFzLFxuICAgICAgZGlzcGF0Y2gsXG4gICAgICBzZXRGb2N1c2VkQXJlYSxcbiAgICAgIHRydWUsXG4gICAgKTtcbiAgICBzZW5kQnV0dG9uQ2xpY2tlZEFuYWx5dGljcygpO1xuICB9O1xuXG4gIGNvbnN0IHNlbmRCdXR0b25DbGlja2VkQW5hbHl0aWNzID0gKCkgPT4ge1xuICAgIHNlbmRBbmFseXRpY3NFdmVudCgnTWFwIHZpZXcgLSBQb3B1cCBkcmlsbGRvd24gY2xpY2tlZCcsIGJ1dHRvbk5hbWUsIHtcbiAgICAgIHV0aWxpdHlfbmFtZTogZ2xvYmFsX2RhdGEud2F0ZXJBdXRob3JpdHlOYW1lLFxuICAgIH0pO1xuICB9O1xuXG4gIGNvbnN0IGdldEJ1dHRvblR5cGUgPSAodHlwZTogc3RyaW5nKSA9PiB7XG4gICAgbGV0IHJjO1xuXG4gICAgc3dpdGNoICh0eXBlLnRvTG93ZXJDYXNlKCkpIHtcbiAgICAgIGNhc2UgJ2FyZWEnOlxuICAgICAgY2FzZSAndmFyZWEnOlxuICAgICAgICByYyA9ICd2aWV3X3N1Yl9hcmVhcyc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnZmFjdG9yeSc6XG4gICAgICAgIHJjID0gJ3ZpZXdfZmFjdG9yaWVzJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByYyA9ICd2aWV3X2lubGV0cyc7XG4gICAgfVxuICAgIHJldHVybiByYztcbiAgfTtcblxuICBjb25zdCB0aXRsZSA9ICgpID0+IHtcbiAgICBsZXQgcGF5bG9hZCA9ICcnO1xuICAgIGlmIChwb2ludCkge1xuICAgICAgcGF5bG9hZCA9IHBvaW50Lm5hbWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChhcmVhKSB7XG4gICAgICAgIHBheWxvYWQgPSBhcmVhLmFyZWFfbmFtZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHBheWxvYWQ7XG4gIH07XG5cbiAgY29uc3QgYnV0dG9uVGl0bGUgPSAoKSA9PiB7XG4gICAgaWYgKGJ1dHRvbk5hbWUgPT09ICcnKSByZXR1cm4gJyc7XG4gICAgcmV0dXJuIGkxOG4udChgd3d0cFBhZ2UuJHtidXR0b25OYW1lfWApO1xuICB9O1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgbGV0IGlzQVBvaW50ID0gb2JqZWN0LmZvcldXVFBNYXAgIT09IHVuZGVmaW5lZDtcblxuICAgIGlmIChpc0FQb2ludCkge1xuICAgICAgc2V0UG9pbnQob2JqZWN0KTtcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0QXJlYShvYmplY3QpO1xuICAgIH1cbiAgfSwgW29iamVjdF0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGxpc3REYXRhID09PSB1bmRlZmluZWQpIHJldHVybjtcblxuICAgIHNldExpc3RJdGVtcyhsaXN0RGF0YT8uZGF0YSk7XG4gICAgaWYgKGxpc3REYXRhLmRhdGEubGVuZ3RoID4gMCkge1xuICAgICAgc2V0QnV0dG9uTmFtZShnZXRCdXR0b25UeXBlKGxpc3REYXRhLmRhdGFbMF0udHlwZSkpO1xuICAgIH1cbiAgfSwgW2xpc3REYXRhXSk7XG5cbiAgY29uc3Qgd2lkZ2V0Q29udGVudCA9ICgpID0+IHtcbiAgICBjb25zdCBkYXRhID0gbGlzdERhdGE/LmRhdGE7XG4gICAgY29uc3Qgc2hvd0J1dHRvbiA9IGRhdGE/Lmxlbmd0aCA+IDA7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdj5cbiAgICAgICAge3Nob3dCdXR0b24gJiYgKFxuICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IGhhbmRsZUNsaWNrKCl9XG4gICAgICAgICAgICBjbGFzc05hbWU9eydjaGlsZHJlbkJ1dHRvbiByb3VuZGVkLXBpbGwgYnRuLWxpZ2h0J31cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7YnV0dG9uVGl0bGUoKX1cbiAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgICAgPElubGV0c1BpZSBpbmxldHM9e2xpc3RJdGVtc30gLz5cbiAgICAgIDwvZGl2PlxuICAgICk7XG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgPGgzPnt0aXRsZSgpfTwvaDM+XG4gICAgICA8Q2FyZCBjbGFzc05hbWU9XCJiZy13aGl0ZSB3aWRnZXQtY29udGFpbmVyXCI+e3dpZGdldENvbnRlbnQoKX08L0NhcmQ+XG4gICAgPC8+XG4gICk7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsZUFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsbUJBQUEsR0FBQUYsT0FBQTtBQUVBLElBQUFHLEtBQUEsR0FBQUMsc0JBQUEsQ0FBQUosT0FBQTtBQUVBLElBQUFLLFVBQUEsR0FBQUQsc0JBQUEsQ0FBQUosT0FBQTtBQUNBLElBQUFNLE1BQUEsR0FBQU4sT0FBQTtBQUNBLElBQUFPLFNBQUEsR0FBQVAsT0FBQTtBQUE0QyxTQUFBUSx5QkFBQUMsV0FBQSxlQUFBQyxPQUFBLGtDQUFBQyxpQkFBQSxPQUFBRCxPQUFBLFFBQUFFLGdCQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEseUJBQUFDLFdBQUEs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
@@ -4,39 +4,74 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.simpleTruncate = exports.sendAnalyticsEvent = exports.initializeWWTPData = exports.focusMap = exports.createPopupForObject = exports.areaFocusLogic = exports.CardContainer = void 0;
7
+ exports.updateHistory = exports.sortAreas = exports.simpleTruncate = exports.sendAnalyticsEvent = exports.initializeWWTPData = exports.focusMap = exports.createPopupForObject = exports.calculateWWTPInfo = exports.areaFocusLogic = exports.CardContainer = void 0;
8
+ var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/typeof"));
8
9
  var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectSpread2"));
10
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/toConsumableArray"));
9
11
  var _styledComponents = _interopRequireDefault(require("styled-components"));
10
12
  var _jquery = _interopRequireDefault(require("jquery"));
11
13
  var _Analytics = require("utilities/Analytics");
12
14
  var initializeWWTPData = function initializeWWTPData(payload) {
13
15
  if (payload.dataExists()) {
14
- var id = payload.id;
15
- var WWTP = payload.points_data.items.find(function (point) {
16
- return point.id === parseInt(id);
17
- });
18
- if (WWTP === undefined) {
19
- WWTP = payload.points_data.items.find(function (point) {
20
- return point.group.area_id === parseInt(id);
21
- });
22
- }
23
- var WWTPArea = payload.areas_data.newAreas.find(function (area) {
24
- return parseInt(id) === area.area_id;
25
- });
26
- if (WWTP !== undefined) {
27
- WWTP = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, WWTP), {}, {
28
- forWWTPMap: true
29
- });
30
- }
31
- payload.setWWTPInfo({
32
- point: WWTP,
33
- area: WWTPArea
34
- });
16
+ var wwtpInfp = calculateWWTPInfo(payload);
17
+ payload.setWWTPInfo(wwtpInfp);
35
18
  payload.setPoints(payload.points_data.items);
36
19
  payload.setAreas(payload.areas_data.newAreas);
37
20
  }
38
21
  };
39
22
  exports.initializeWWTPData = initializeWWTPData;
23
+ var sortAreas = function sortAreas(areas) {
24
+ if (!areas) return areas;
25
+ var temp = (0, _toConsumableArray2.default)(areas);
26
+ var sortedAreas = temp.sort(function (a, b) {
27
+ return a.is_assessment === b.is_assessment ? 0 : a.is_assessment ? -1 : 1;
28
+ }).sort(function (a, b) {
29
+ return b.area_score - a.area_score;
30
+ });
31
+ return sortedAreas;
32
+ };
33
+ exports.sortAreas = sortAreas;
34
+ var updateHistory = function updateHistory(object, history) {
35
+ var area = object.area_id ? object : null;
36
+ var point = object.id ? object : null;
37
+ if (point) {
38
+ var type = point.group.type === 'Groups::WastewaterTreatmentPlant' ? 'wwtp' : 'site';
39
+ history.push("/dashboard_v2/".concat(type, "/").concat(point.id).concat(history.location.search));
40
+ } else {
41
+ if (area) {
42
+ var _type = area.is_virtual ? 'varea' : 'area';
43
+ history.push("/dashboard_v2/".concat(_type, "/").concat(area.area_id).concat(history.location.search));
44
+ }
45
+ }
46
+ };
47
+ exports.updateHistory = updateHistory;
48
+ var calculateWWTPInfo = function calculateWWTPInfo(_ref) {
49
+ var id = _ref.id,
50
+ points_data = _ref.points_data,
51
+ areas_data = _ref.areas_data;
52
+ var WWTP = points_data.items.find(function (point) {
53
+ return point.id === parseInt(id);
54
+ });
55
+ if (WWTP === undefined) {
56
+ var _points_data$items;
57
+ WWTP = (_points_data$items = points_data.items) === null || _points_data$items === void 0 ? void 0 : _points_data$items.find(function (point) {
58
+ return point.group.area_id === parseInt(id);
59
+ });
60
+ }
61
+ var WWTPArea = areas_data.newAreas.find(function (area) {
62
+ return parseInt(id) === area.area_id;
63
+ });
64
+ if (WWTP !== undefined) {
65
+ WWTP = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, WWTP), {}, {
66
+ forWWTPMap: true
67
+ });
68
+ }
69
+ return {
70
+ point: WWTP,
71
+ area: WWTPArea
72
+ };
73
+ };
74
+ exports.calculateWWTPInfo = calculateWWTPInfo;
40
75
  var createPopupForObject = function createPopupForObject(args) {
41
76
  args.marker.bindPopup("<div class=\"widget-container\"></div>", {
42
77
  maxWidth: 400,
@@ -54,42 +89,44 @@ var createPopupForObject = function createPopupForObject(args) {
54
89
  };
55
90
  exports.createPopupForObject = createPopupForObject;
56
91
  var areaFocusLogic = function areaFocusLogic(args) {
57
- var object = args.WWTPInfo.area ? args.WWTPInfo.area : args.WWTPInfo.point;
92
+ var _object$sub_areas;
93
+ var object = args.WWTPInfo.area || args.WWTPInfo.point;
58
94
  var map = args.map;
59
95
  if (object === null || map === null) return;
60
- if ((object === null || object === void 0 ? void 0 : object.sub_areas) !== undefined && object.sub_areas.length > 0) {
96
+ if ((object === null || object === void 0 ? void 0 : (_object$sub_areas = object.sub_areas) === null || _object$sub_areas === void 0 ? void 0 : _object$sub_areas.length) > 0) {
61
97
  args.setAreas(object.sub_areas);
62
98
  } else {
63
- if ((object === null || object === void 0 ? void 0 : object.shape_data) !== undefined) {
64
- args.setAreas(object.factories);
65
- }
66
- // else {
67
- // latlngs.push([object.latitude, object.longitude]);
68
- // }
99
+ args.setAreas(object.factories);
69
100
  }
70
101
  };
71
102
  exports.areaFocusLogic = areaFocusLogic;
72
103
  var focusMap = function focusMap(object, map) {
73
104
  if (object === null || map === null) return;
74
105
  var latlngs = [];
75
- if ((object === null || object === void 0 ? void 0 : object.shape_data) !== undefined) {
76
- object.shape_data.forEach(function (latlng) {
77
- latlngs.push(latlng);
78
- });
79
- // object.setAreas(object.factories);
106
+ if (object === undefined) {
107
+ for (var property in map._layers) {
108
+ if (map._layers[property].kando_object === 'Area' || map._layers[property].kando_object === 'Point') {
109
+ latlngs.push(map._layers[property]._bounds);
110
+ }
111
+ }
80
112
  } else {
81
- if ((object === null || object === void 0 ? void 0 : object.sub_areas) !== undefined && object.sub_areas.length > 0) {
82
- object.sub_areas.forEach(function (sub_area) {
83
- sub_area.shape_data.forEach(function (latlng) {
84
- latlngs.push(latlng);
85
- });
113
+ if ((object === null || object === void 0 ? void 0 : object.shape_data) !== undefined) {
114
+ object.shape_data.forEach(function (latlng) {
115
+ latlngs.push(latlng);
86
116
  });
87
- // object.setAreas(object.sub_areas);
88
117
  } else {
89
- latlngs.push([object.latitude, object.longitude]);
118
+ if (object.sub_areas && object.sub_areas.length > 0) {
119
+ object.sub_areas.forEach(function (sub_area) {
120
+ sub_area.shape_data.forEach(function (latlng) {
121
+ latlngs.push(latlng);
122
+ });
123
+ });
124
+ } else {
125
+ latlngs.push([object.latitude, object.longitude]);
126
+ }
90
127
  }
91
128
  }
92
- map.fitBounds(latlngs);
129
+ latlngs.length > 0 && map !== null && (0, _typeof2.default)(map._layers) === 'object' && map._layers.length === undefined && map.fitBounds(latlngs);
93
130
  };
94
131
  exports.focusMap = focusMap;
95
132
  var simpleTruncate = function simpleTruncate(str, length) {
@@ -121,4 +158,4 @@ var sendAnalyticsEvent = function sendAnalyticsEvent(subject, selection, eventFi
121
158
  (0, _Analytics.analyticsTrack)(subject, data);
122
159
  };
123
160
  exports.sendAnalyticsEvent = sendAnalyticsEvent;
124
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfanF1ZXJ5IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfQW5hbHl0aWNzIiwiaW5pdGlhbGl6ZVdXVFBEYXRhIiwicGF5bG9hZCIsImRhdGFFeGlzdHMiLCJpZCIsIldXVFAiLCJwb2ludHNfZGF0YSIsIml0ZW1zIiwiZmluZCIsInBvaW50IiwicGFyc2VJbnQiLCJ1bmRlZmluZWQiLCJncm91cCIsImFyZWFfaWQiLCJXV1RQQXJlYSIsImFyZWFzX2RhdGEiLCJuZXdBcmVhcyIsImFyZWEiLCJfb2JqZWN0U3ByZWFkMiIsImRlZmF1bHQiLCJmb3JXV1RQTWFwIiwic2V0V1dUUEluZm8iLCJzZXRQb2ludHMiLCJzZXRBcmVhcyIsImV4cG9ydHMiLCJjcmVhdGVQb3B1cEZvck9iamVjdCIsImFyZ3MiLCJtYXJrZXIiLCJiaW5kUG9wdXAiLCJtYXhXaWR0aCIsIm1pbldpZHRoIiwibWF4SGVpZ2h0IiwibWluSGVpZ2h0Iiwib24iLCJzZXRUaW1lb3V0IiwiJCIsImNvbnRlbnRzIiwibGVuZ3RoIiwiYXBwZW5kIiwicmVuZGVyZWRFbGVtZW50IiwiYXJlYUZvY3VzTG9naWMiLCJvYmplY3QiLCJXV1RQSW5mbyIsIm1hcCIsInN1Yl9hcmVhcyIsInNoYXBlX2RhdGEiLCJmYWN0b3JpZXMiLCJmb2N1c01hcCIsImxhdGxuZ3MiLCJmb3JFYWNoIiwibGF0bG5nIiwicHVzaCIsInN1Yl9hcmVhIiwibGF0aXR1ZGUiLCJsb25naXR1ZGUiLCJmaXRCb3VuZHMiLCJzaW1wbGVUcnVuY2F0ZSIsInN0ciIsIkVycm9yIiwic3Vic3RyaW5nIiwiQ2FyZENvbnRhaW5lciIsInN0eWxlZCIsImRpdiIsIndpdGhDb25maWciLCJkaXNwbGF5TmFtZSIsImNvbXBvbmVudElkIiwic2VuZEFuYWx5dGljc0V2ZW50Iiwic3ViamVjdCIsInNlbGVjdGlvbiIsImV2ZW50RmllbGRzIiwiZGF0YSIsInBhZ2VfbmFtZSIsIndpbmRvdyIsImxvY2F0aW9uIiwicGF0aG5hbWUiLCJhbmFseXRpY3NUcmFjayJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYWdlcy9EYXNoYm9hcmRNYXAvdXRpbHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSVBvaW50IH0gZnJvbSAnLi4vLi4vc3RvcmUvcG9pbnRzL21vZGVscy9JUG9pbnQnO1xuaW1wb3J0IHsgSUFyZWEgfSBmcm9tICcuLi8uLi9zdG9yZS9hcmVhcy9tb2RlbHMvSUFyZWEnO1xuaW1wb3J0ICQgZnJvbSAnanF1ZXJ5JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMvbWFjcm8nO1xuaW1wb3J0IHsgYW5hbHl0aWNzVHJhY2sgfSBmcm9tICdzcmMvdXRpbGl0aWVzL0FuYWx5dGljcyc7XG5cbmV4cG9ydCBjb25zdCBpbml0aWFsaXplV1dUUERhdGEgPSAocGF5bG9hZCkgPT4ge1xuICBpZiAocGF5bG9hZC5kYXRhRXhpc3RzKCkpIHtcbiAgICBjb25zdCBpZDogc3RyaW5nID0gcGF5bG9hZC5pZDtcblxuICAgIGxldCBXV1RQOiBJUG9pbnQgPSBwYXlsb2FkLnBvaW50c19kYXRhLml0ZW1zLmZpbmQoXG4gICAgICAocG9pbnQ6IElQb2ludCkgPT4gcG9pbnQuaWQgPT09IHBhcnNlSW50KGlkKSxcbiAgICApO1xuXG4gICAgaWYgKFdXVFAgPT09IHVuZGVmaW5lZCkge1xuICAgICAgV1dUUCA9IHBheWxvYWQucG9pbnRzX2RhdGEuaXRlbXMuZmluZChcbiAgICAgICAgKHBvaW50OiBJUG9pbnQpID0+IHBvaW50Lmdyb3VwLmFyZWFfaWQgPT09IHBhcnNlSW50KGlkKSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgbGV0IFdXVFBBcmVhOiBJQXJlYSA9IHBheWxvYWQuYXJlYXNfZGF0YS5uZXdBcmVhcy5maW5kKFxuICAgICAgKGFyZWE6IElBcmVhKSA9PiBwYXJzZUludChpZCkgPT09IGFyZWEuYXJlYV9pZCxcbiAgICApO1xuXG4gICAgaWYgKFdXVFAgIT09IHVuZGVmaW5lZCkge1xuICAgICAgV1dUUCA9IHtcbiAgICAgICAgLi4uV1dUUCxcbiAgICAgICAgZm9yV1dUUE1hcDogdHJ1ZSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgcGF5bG9hZC5zZXRXV1RQSW5mbyh7IHBvaW50OiBXV1RQLCBhcmVhOiBXV1RQQXJlYSB9KTtcbiAgICBwYXlsb2FkLnNldFBvaW50cyhwYXlsb2FkLnBvaW50c19kYXRhLml0ZW1zKTtcbiAgICBwYXlsb2FkLnNldEFyZWFzKHBheWxvYWQuYXJlYXNfZGF0YS5uZXdBcmVhcyk7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVQb3B1cEZvck9iamVjdCA9IChhcmdzKSA9PiB7XG4gIGFyZ3MubWFya2VyLmJpbmRQb3B1cChgPGRpdiBjbGFzcz1cIndpZGdldC1jb250YWluZXJcIj48L2Rpdj5gLCB7XG4gICAgbWF4V2lkdGg6IDQwMCxcbiAgICBtaW5XaWR0aDogNDAwLFxuICAgIG1heEhlaWdodDogNDAwLFxuICAgIG1pbkhlaWdodDogNDAwLFxuICB9KTtcblxuICBhcmdzLm1hcmtlci5vbigncG9wdXBvcGVuJywgZnVuY3Rpb24gKCkge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKCQoJy53aWRnZXQtY29udGFpbmVyJykuY29udGVudHMoKS5sZW5ndGggPD0gMCkge1xuICAgICAgICAkKCcud2lkZ2V0LWNvbnRhaW5lcicpLmFwcGVuZChhcmdzLnJlbmRlcmVkRWxlbWVudCk7XG4gICAgICB9XG4gICAgfSwgMjAwKTtcbiAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgYXJlYUZvY3VzTG9naWMgPSAoYXJncykgPT4ge1xuICBjb25zdCBvYmplY3QgPSBhcmdzLldXVFBJbmZvLmFyZWEgPyBhcmdzLldXVFBJbmZvLmFyZWEgOiBhcmdzLldXVFBJbmZvLnBvaW50O1xuICBjb25zdCBtYXAgPSBhcmdzLm1hcDtcblxuICBpZiAob2JqZWN0ID09PSBudWxsIHx8IG1hcCA9PT0gbnVsbCkgcmV0dXJuO1xuXG4gIGlmIChvYmplY3Q/LnN1Yl9hcmVhcyAhPT0gdW5kZWZpbmVkICYmIG9iamVjdC5zdWJfYXJlYXMubGVuZ3RoID4gMCkge1xuICAgIGFyZ3Muc2V0QXJlYXMob2JqZWN0LnN1Yl9hcmVhcyk7XG4gIH0gZWxzZSB7XG4gICAgaWYgKG9iamVjdD8uc2hhcGVfZGF0YSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBhcmdzLnNldEFyZWFzKG9iamVjdC5mYWN0b3JpZXMpO1xuICAgIH1cbiAgICAvLyBlbHNlIHtcbiAgICAvLyAgIGxhdGxuZ3MucHVzaChbb2JqZWN0LmxhdGl0dWRlLCBvYmplY3QubG9uZ2l0dWRlXSk7XG4gICAgLy8gfVxuICB9XG59O1xuXG5leHBvcnQgY29uc3QgZm9jdXNNYXAgPSAob2JqZWN0LCBtYXApID0+IHtcbiAgaWYgKG9iamVjdCA9PT0gbnVsbCB8fCBtYXAgPT09IG51bGwpIHJldHVybjtcblxuICBsZXQgbGF0bG5nczogYW55ID0gW107XG5cbiAgaWYgKG9iamVjdD8uc2hhcGVfZGF0YSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgb2JqZWN0LnNoYXBlX2RhdGEuZm9yRWFjaCgobGF0bG5nKSA9PiB7XG4gICAgICBsYXRsbmdzLnB1c2gobGF0bG5nKTtcbiAgICB9KTtcbiAgICAvLyBvYmplY3Quc2V0QXJlYXMob2JqZWN0LmZhY3Rvcmllcyk7XG4gIH0gZWxzZSB7XG4gICAgaWYgKG9iamVjdD8uc3ViX2FyZWFzICE9PSB1bmRlZmluZWQgJiYgb2JqZWN0LnN1Yl9hcmVhcy5sZW5ndGggPiAwKSB7XG4gICAgICBvYmplY3Quc3ViX2FyZWFzLmZvckVhY2goKHN1Yl9hcmVhKSA9PiB7XG4gICAgICAgIHN1Yl9hcmVhLnNoYXBlX2RhdGEuZm9yRWFjaCgobGF0bG5nKSA9PiB7XG4gICAgICAgICAgbGF0bG5ncy5wdXNoKGxhdGxuZyk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgICAvLyBvYmplY3Quc2V0QXJlYXMob2JqZWN0LnN1Yl9hcmVhcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGxhdGxuZ3MucHVzaChbb2JqZWN0LmxhdGl0dWRlLCBvYmplY3QubG9uZ2l0dWRlXSk7XG4gICAgfVxuICB9XG4gIG1hcC5maXRCb3VuZHMobGF0bG5ncyk7XG59O1xuXG5leHBvcnQgY29uc3Qgc2ltcGxlVHJ1bmNhdGUgPSAoc3RyLCBsZW5ndGgpID0+IHtcbiAgaWYgKHR5cGVvZiBzdHIgIT09ICdzdHJpbmcnIHx8IHR5cGVvZiBsZW5ndGggIT09ICdudW1iZXInKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGFyZ3VtZW50cy4gUGxlYXNlIHByb3ZpZGUgYSBzdHJpbmcgYW5kIGEgbnVtYmVyLicpO1xuICB9XG5cbiAgaWYgKHN0ci5sZW5ndGggPD0gbGVuZ3RoKSB7XG4gICAgcmV0dXJuIHN0cjtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gc3RyLnN1YnN0cmluZygwLCBsZW5ndGgpICsgJy4uLic7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBDYXJkQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgLmNhcmQge1xuICAgIHRyYW5zaXRpb246IDAuMXMgZWFzZS1pbi1vdXQ7XG4gICAgYm94LXNoYWRvdzogMHB4IDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjIpO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICB0cmFuc2l0aW9uOiAwLjJzIGVhc2UtaW4tb3V0O1xuICAgICAgYm94LXNoYWRvdzogMHB4IDNweCAxMHB4IHJnYmEoMCwgMCwgMCwgMC4yKTtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG4gIH1cbmA7XG5cbi8vIFNlbmQgYW5hbHl0aWNzIGV2ZW50cyBmcm9tIHNldmVyYWwgcGxhY2VzIGluIHd3dHBtYXAuXG4vLyBzdWJqZWN0IGlzIHRoZSBuYW1lIG9mIHRoZSBldmVudFxuLy8gc2VsZWN0aW9uIGlzIHRoZSBvYmplY3QgdGhhdCB3YXMgc2VsZWN0ZWRcbi8vIHNwZWNpZmljRmllbGRzIGlzIGFuIG9iamVjdCB3aXRoIGV2ZW50IGZpZWxkcyB0byBzZW5kIHdoaWNoIGFyZSBjb21iaW5lZCB3aXRoIHRoZSByZXN0IG9mIHRoZSBmaWVsZHNcbmV4cG9ydCBjb25zdCBzZW5kQW5hbHl0aWNzRXZlbnQgPSAoXG4gIHN1YmplY3Q6IHN0cmluZyxcbiAgc2VsZWN0aW9uOiBzdHJpbmcsXG4gIGV2ZW50RmllbGRzOiBPYmplY3QsXG4pID0+IHtcbiAgY29uc3QgZGF0YSA9IHtcbiAgICBzZWxlY3Rpb246IHNlbGVjdGlvbixcbiAgICBwYWdlX25hbWU6IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSxcbiAgICAuLi5ldmVudEZpZWxkcyxcbiAgfTtcbiAgYW5hbHl0aWNzVHJhY2soc3ViamVjdCwgZGF0YSk7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFFQSxJQUFBQSxPQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBQyxVQUFBLEdBQUFELE9BQUE7QUFFTyxJQUFNRSxrQkFBa0IsR0FBRyxTQUFyQkEsa0JBQWtCQSxDQUFJQyxPQUFPLEVBQUs7RUFDN0MsSUFBSUEsT0FBTyxDQUFDQyxVQUFVLENBQUMsQ0FBQyxFQUFFO0lBQ3hCLElBQU1DLEVBQVUsR0FBR0YsT0FBTyxDQUFDRSxFQUFFO0lBRTdCLElBQUlDLElBQVksR0FBR0gsT0FBTyxDQUFDSSxXQUFXLENBQUNDLEtBQUssQ0FBQ0MsSUFBSSxDQUMvQyxVQUFDQyxLQUFhO01BQUEsT0FBS0EsS0FBSyxDQUFDTCxFQUFFLEtBQUtNLFFBQVEsQ0FBQ04sRUFBRSxDQUFDO0lBQUEsQ0FDOUMsQ0FBQztJQUVELElBQUlDLElBQUksS0FBS00sU0FBUyxFQUFFO01BQ3RCTixJQUFJLEdBQUdILE9BQU8sQ0FBQ0ksV0FBVyxDQUFDQyxLQUFLLENBQUNDLElBQUksQ0FDbkMsVUFBQ0MsS0FBYTtRQUFBLE9BQUtBLEtBQUssQ0FBQ0csS0FBSyxDQUFDQyxPQUFPLEtBQUtILFFBQVEsQ0FBQ04sRUFBRSxDQUFDO01BQUEsQ0FDekQsQ0FBQztJQUNIO0lBRUEsSUFBSVUsUUFBZSxHQUFH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
161
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfanF1ZXJ5IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfQW5hbHl0aWNzIiwiaW5pdGlhbGl6ZVdXVFBEYXRhIiwicGF5bG9hZCIsImRhdGFFeGlzdHMiLCJ3d3RwSW5mcCIsImNhbGN1bGF0ZVdXVFBJbmZvIiwic2V0V1dUUEluZm8iLCJzZXRQb2ludHMiLCJwb2ludHNfZGF0YSIsIml0ZW1zIiwic2V0QXJlYXMiLCJhcmVhc19kYXRhIiwibmV3QXJlYXMiLCJleHBvcnRzIiwic29ydEFyZWFzIiwiYXJlYXMiLCJ0ZW1wIiwiX3RvQ29uc3VtYWJsZUFycmF5MiIsImRlZmF1bHQiLCJzb3J0ZWRBcmVhcyIsInNvcnQiLCJhIiwiYiIsImlzX2Fzc2Vzc21lbnQiLCJhcmVhX3Njb3JlIiwidXBkYXRlSGlzdG9yeSIsIm9iamVjdCIsImhpc3RvcnkiLCJhcmVhIiwiYXJlYV9pZCIsInBvaW50IiwiaWQiLCJ0eXBlIiwiZ3JvdXAiLCJwdXNoIiwiY29uY2F0IiwibG9jYXRpb24iLCJzZWFyY2giLCJpc192aXJ0dWFsIiwiX3JlZiIsIldXVFAiLCJmaW5kIiwicGFyc2VJbnQiLCJ1bmRlZmluZWQiLCJfcG9pbnRzX2RhdGEkaXRlbXMiLCJXV1RQQXJlYSIsIl9vYmplY3RTcHJlYWQyIiwiZm9yV1dUUE1hcCIsImNyZWF0ZVBvcHVwRm9yT2JqZWN0IiwiYXJncyIsIm1hcmtlciIsImJpbmRQb3B1cCIsIm1heFdpZHRoIiwibWluV2lkdGgiLCJtYXhIZWlnaHQiLCJtaW5IZWlnaHQiLCJvbiIsInNldFRpbWVvdXQiLCIkIiwiY29udGVudHMiLCJsZW5ndGgiLCJhcHBlbmQiLCJyZW5kZXJlZEVsZW1lbnQiLCJhcmVhRm9jdXNMb2dpYyIsIl9vYmplY3Qkc3ViX2FyZWFzIiwiV1dUUEluZm8iLCJtYXAiLCJzdWJfYXJlYXMiLCJmYWN0b3JpZXMiLCJmb2N1c01hcCIsImxhdGxuZ3MiLCJwcm9wZXJ0eSIsIl9sYXllcnMiLCJrYW5kb19vYmplY3QiLCJfYm91bmRzIiwic2hhcGVfZGF0YSIsImZvckVhY2giLCJsYXRsbmciLCJzdWJfYXJlYSIsImxhdGl0dWRlIiwibG9uZ2l0dWRlIiwiX3R5cGVvZjIiLCJmaXRCb3VuZHMiLCJzaW1wbGVUcnVuY2F0ZSIsInN0ciIsIkVycm9yIiwic3Vic3RyaW5nIiwiQ2FyZENvbnRhaW5lciIsInN0eWxlZCIsImRpdiIsIndpdGhDb25maWciLCJkaXNwbGF5TmFtZSIsImNvbXBvbmVudElkIiwic2VuZEFuYWx5dGljc0V2ZW50Iiwic3ViamVjdCIsInNlbGVjdGlvbiIsImV2ZW50RmllbGRzIiwiZGF0YSIsInBhZ2VfbmFtZSIsIndpbmRvdyIsInBhdGhuYW1lIiwiYW5hbHl0aWNzVHJhY2siXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcGFnZXMvRGFzaGJvYXJkTWFwL3V0aWxzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElQb2ludCB9IGZyb20gJy4uLy4uL3N0b3JlL3BvaW50cy9tb2RlbHMvSVBvaW50JztcbmltcG9ydCB7IElBcmVhIH0gZnJvbSAnLi4vLi4vc3RvcmUvYXJlYXMvbW9kZWxzL0lBcmVhJztcbmltcG9ydCAkIGZyb20gJ2pxdWVyeSc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzL21hY3JvJztcbmltcG9ydCB7IGFuYWx5dGljc1RyYWNrIH0gZnJvbSAnc3JjL3V0aWxpdGllcy9BbmFseXRpY3MnO1xuXG5leHBvcnQgY29uc3QgaW5pdGlhbGl6ZVdXVFBEYXRhID0gKHBheWxvYWQpID0+IHtcbiAgaWYgKHBheWxvYWQuZGF0YUV4aXN0cygpKSB7XG4gICAgY29uc3Qgd3d0cEluZnAgPSBjYWxjdWxhdGVXV1RQSW5mbyhwYXlsb2FkKTtcbiAgICBwYXlsb2FkLnNldFdXVFBJbmZvKHd3dHBJbmZwKTtcbiAgICBwYXlsb2FkLnNldFBvaW50cyhwYXlsb2FkLnBvaW50c19kYXRhLml0ZW1zKTtcbiAgICBwYXlsb2FkLnNldEFyZWFzKHBheWxvYWQuYXJlYXNfZGF0YS5uZXdBcmVhcyk7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBzb3J0QXJlYXMgPSAoYXJlYXMpID0+IHtcbiAgaWYgKCFhcmVhcykgcmV0dXJuIGFyZWFzO1xuXG4gIGNvbnN0IHRlbXAgPSBbLi4uYXJlYXNdO1xuICBjb25zdCBzb3J0ZWRBcmVhcyA9IHRlbXBcbiAgICAuc29ydCgoYSwgYikgPT5cbiAgICAgIGEuaXNfYXNzZXNzbWVudCA9PT0gYi5pc19hc3Nlc3NtZW50ID8gMCA6IGEuaXNfYXNzZXNzbWVudCA/IC0xIDogMSxcbiAgICApXG4gICAgLnNvcnQoKGEsIGIpID0+IGIuYXJlYV9zY29yZSAtIGEuYXJlYV9zY29yZSk7XG5cbiAgcmV0dXJuIHNvcnRlZEFyZWFzO1xufTtcblxuZXhwb3J0IGNvbnN0IHVwZGF0ZUhpc3RvcnkgPSAob2JqZWN0LCBoaXN0b3J5KSA9PiB7XG4gIGNvbnN0IGFyZWEgPSBvYmplY3QuYXJlYV9pZCA/IG9iamVjdCA6IG51bGw7XG4gIGNvbnN0IHBvaW50ID0gb2JqZWN0LmlkID8gb2JqZWN0IDogbnVsbDtcblxuICBpZiAocG9pbnQpIHtcbiAgICBjb25zdCB0eXBlID1cbiAgICAgIHBvaW50Lmdyb3VwLnR5cGUgPT09ICdHcm91cHM6Oldhc3Rld2F0ZXJUcmVhdG1lbnRQbGFudCcgPyAnd3d0cCcgOiAnc2l0ZSc7XG4gICAgaGlzdG9yeS5wdXNoKGAvZGFzaGJvYXJkX3YyLyR7dHlwZX0vJHtwb2ludC5pZH0ke2hpc3RvcnkubG9jYXRpb24uc2VhcmNofWApO1xuICB9IGVsc2Uge1xuICAgIGlmIChhcmVhKSB7XG4gICAgICBjb25zdCB0eXBlID0gYXJlYS5pc192aXJ0dWFsID8gJ3ZhcmVhJyA6ICdhcmVhJztcbiAgICAgIGhpc3RvcnkucHVzaChcbiAgICAgICAgYC9kYXNoYm9hcmRfdjIvJHt0eXBlfS8ke2FyZWEuYXJlYV9pZH0ke2hpc3RvcnkubG9jYXRpb24uc2VhcmNofWAsXG4gICAgICApO1xuICAgIH1cbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IGNhbGN1bGF0ZVdXVFBJbmZvID0gKHsgaWQsIHBvaW50c19kYXRhLCBhcmVhc19kYXRhIH0pID0+IHtcbiAgbGV0IFdXVFA6IElQb2ludCA9IHBvaW50c19kYXRhLml0ZW1zLmZpbmQoXG4gICAgKHBvaW50OiBJUG9pbnQpID0+IHBvaW50LmlkID09PSBwYXJzZUludChpZCksXG4gICk7XG5cbiAgaWYgKFdXVFAgPT09IHVuZGVmaW5lZCkge1xuICAgIFdXVFAgPSBwb2ludHNfZGF0YS5pdGVtcz8uZmluZChcbiAgICAgIChwb2ludDogSVBvaW50KSA9PiBwb2ludC5ncm91cC5hcmVhX2lkID09PSBwYXJzZUludChpZCksXG4gICAgKTtcbiAgfVxuXG4gIGxldCBXV1RQQXJlYTogSUFyZWEgPSBhcmVhc19kYXRhLm5ld0FyZWFzLmZpbmQoXG4gICAgKGFyZWE6IElBcmVhKSA9PiBwYXJzZUludChpZCkgPT09IGFyZWEuYXJlYV9pZCxcbiAgKTtcblxuICBpZiAoV1dUUCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgV1dUUCA9IHtcbiAgICAgIC4uLldXVFAsXG4gICAgICBmb3JXV1RQTWFwOiB0cnVlLFxuICAgIH07XG4gIH1cblxuICByZXR1cm4geyBwb2ludDogV1dUUCwgYXJlYTogV1dUUEFyZWEgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVQb3B1cEZvck9iamVjdCA9IChhcmdzKSA9PiB7XG4gIGFyZ3MubWFya2VyLmJpbmRQb3B1cChgPGRpdiBjbGFzcz1cIndpZGdldC1jb250YWluZXJcIj48L2Rpdj5gLCB7XG4gICAgbWF4V2lkdGg6IDQwMCxcbiAgICBtaW5XaWR0aDogNDAwLFxuICAgIG1heEhlaWdodDogNDAwLFxuICAgIG1pbkhlaWdodDogNDAwLFxuICB9KTtcblxuICBhcmdzLm1hcmtlci5vbigncG9wdXBvcGVuJywgZnVuY3Rpb24gKCkge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKCQoJy53aWRnZXQtY29udGFpbmVyJykuY29udGVudHMoKS5sZW5ndGggPD0gMCkge1xuICAgICAgICAkKCcud2lkZ2V0LWNvbnRhaW5lcicpLmFwcGVuZChhcmdzLnJlbmRlcmVkRWxlbWVudCk7XG4gICAgICB9XG4gICAgfSwgMjAwKTtcbiAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgYXJlYUZvY3VzTG9naWMgPSAoYXJncykgPT4ge1xuICBjb25zdCBvYmplY3QgPSBhcmdzLldXVFBJbmZvLmFyZWEgfHwgYXJncy5XV1RQSW5mby5wb2ludDtcbiAgY29uc3QgbWFwID0gYXJncy5tYXA7XG5cbiAgaWYgKG9iamVjdCA9PT0gbnVsbCB8fCBtYXAgPT09IG51bGwpIHJldHVybjtcblxuICBpZiAob2JqZWN0Py5zdWJfYXJlYXM/Lmxlbmd0aCA+IDApIHtcbiAgICBhcmdzLnNldEFyZWFzKG9iamVjdC5zdWJfYXJlYXMpO1xuICB9IGVsc2Uge1xuICAgIGFyZ3Muc2V0QXJlYXMob2JqZWN0LmZhY3Rvcmllcyk7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBmb2N1c01hcCA9IChvYmplY3QsIG1hcCkgPT4ge1xuICBpZiAob2JqZWN0ID09PSBudWxsIHx8IG1hcCA9PT0gbnVsbCkgcmV0dXJuO1xuXG4gIGxldCBsYXRsbmdzOiBhbnkgPSBbXTtcbiAgaWYgKG9iamVjdCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgZm9yIChjb25zdCBwcm9wZXJ0eSBpbiBtYXAuX2xheWVycykge1xuICAgICAgaWYgKFxuICAgICAgICBtYXAuX2xheWVyc1twcm9wZXJ0eV0ua2FuZG9fb2JqZWN0ID09PSAnQXJlYScgfHxcbiAgICAgICAgbWFwLl9sYXllcnNbcHJvcGVydHldLmthbmRvX29iamVjdCA9PT0gJ1BvaW50J1xuICAgICAgKSB7XG4gICAgICAgIGxhdGxuZ3MucHVzaChtYXAuX2xheWVyc1twcm9wZXJ0eV0uX2JvdW5kcyk7XG4gICAgICB9XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGlmIChvYmplY3Q/LnNoYXBlX2RhdGEgIT09IHVuZGVmaW5lZCkge1xuICAgICAgb2JqZWN0LnNoYXBlX2RhdGEuZm9yRWFjaCgobGF0bG5nKSA9PiB7XG4gICAgICAgIGxhdGxuZ3MucHVzaChsYXRsbmcpO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChvYmplY3Quc3ViX2FyZWFzICYmIG9iamVjdC5zdWJfYXJlYXMubGVuZ3RoID4gMCkge1xuICAgICAgICBvYmplY3Quc3ViX2FyZWFzLmZvckVhY2goKHN1Yl9hcmVhKSA9PiB7XG4gICAgICAgICAgc3ViX2FyZWEuc2hhcGVfZGF0YS5mb3JFYWNoKChsYXRsbmcpID0+IHtcbiAgICAgICAgICAgIGxhdGxuZ3MucHVzaChsYXRsbmcpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxhdGxuZ3MucHVzaChbb2JqZWN0LmxhdGl0dWRlLCBvYmplY3QubG9uZ2l0dWRlXSk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGxhdGxuZ3MubGVuZ3RoID4gMCAmJlxuICAgIG1hcCAhPT0gbnVsbCAmJlxuICAgIHR5cGVvZiBtYXAuX2xheWVycyA9PT0gJ29iamVjdCcgJiZcbiAgICBtYXAuX2xheWVycy5sZW5ndGggPT09IHVuZGVmaW5lZCAmJlxuICAgIG1hcC5maXRCb3VuZHMobGF0bG5ncyk7XG59O1xuXG5leHBvcnQgY29uc3Qgc2ltcGxlVHJ1bmNhdGUgPSAoc3RyLCBsZW5ndGgpID0+IHtcbiAgaWYgKHR5cGVvZiBzdHIgIT09ICdzdHJpbmcnIHx8IHR5cGVvZiBsZW5ndGggIT09ICdudW1iZXInKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGFyZ3VtZW50cy4gUGxlYXNlIHByb3ZpZGUgYSBzdHJpbmcgYW5kIGEgbnVtYmVyLicpO1xuICB9XG5cbiAgaWYgKHN0ci5sZW5ndGggPD0gbGVuZ3RoKSB7XG4gICAgcmV0dXJuIHN0cjtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gc3RyLnN1YnN0cmluZygwLCBsZW5ndGgpICsgJy4uLic7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBDYXJkQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgLmNhcmQge1xuICAgIHRyYW5zaXRpb246IDAuMXMgZWFzZS1pbi1vdXQ7XG4gICAgYm94LXNoYWRvdzogMHB4IDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjIpO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICB0cmFuc2l0aW9uOiAwLjJzIGVhc2UtaW4tb3V0O1xuICAgICAgYm94LXNoYWRvdzogMHB4IDNweCAxMHB4IHJnYmEoMCwgMCwgMCwgMC4yKTtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG4gIH1cbmA7XG5cbi8vIFNlbmQgYW5hbHl0aWNzIGV2ZW50cyBmcm9tIHNldmVyYWwgcGxhY2VzIGluIHd3dHBtYXAuXG4vLyBzdWJqZWN0IGlzIHRoZSBuYW1lIG9mIHRoZSBldmVudFxuLy8gc2VsZWN0aW9uIGlzIHRoZSBvYmplY3QgdGhhdCB3YXMgc2VsZWN0ZWRcbi8vIHNwZWNpZmljRmllbGRzIGlzIGFuIG9iamVjdCB3aXRoIGV2ZW50IGZpZWxkcyB0byBzZW5kIHdoaWNoIGFyZSBjb21iaW5lZCB3aXRoIHRoZSByZXN0IG9mIHRoZSBmaWVsZHNcbmV4cG9ydCBjb25zdCBzZW5kQW5hbHl0aWNzRXZlbnQgPSAoXG4gIHN1YmplY3Q6IHN0cmluZyxcbiAgc2VsZWN0aW9uOiBzdHJpbmcsXG4gIGV2ZW50RmllbGRzOiBPYmplY3QsXG4pID0+IHtcbiAgY29uc3QgZGF0YSA9IHtcbiAgICBzZWxlY3Rpb246IHNlbGVjdGlvbixcbiAgICBwYWdlX25hbWU6IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSxcbiAgICAuLi5ldmVudEZpZWxkcyxcbiAgfTtcbiAgYW5hbHl0aWNzVHJhY2soc3ViamVjdCwgZGF0YSk7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUVBLElBQUFBLE9BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUVBLElBQUFDLFVBQUEsR0FBQUQsT0FBQTtBQUVPLElB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