@kando-env/kando-ui 1.2.384 → 1.2.385-alpha.0
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/Router.js +6 -1
- package/lib/Widgets/Map/Map.js +18 -15
- package/lib/Widgets/Map/MapUtils.js +5 -2
- package/lib/Widgets/PotentialImpactSummary/Icon.js +5 -5
- package/lib/components/Sector/Sector.js +19 -12
- package/lib/components/Sector/SectorIconsNew.js +112 -0
- package/lib/i18n/en.json +15 -0
- package/lib/macros/getVersion.js +2 -2
- package/lib/pages/DashboardMap/SeverityBadge.js +5 -6
- package/lib/pages/EventsPage/EventsMapContainer/EventsMapContainer.js +3 -3
- package/lib/pages/PollutionRiskAssessment/FactoryDetails.js +130 -0
- package/lib/pages/PollutionRiskAssessment/FilterBehaviors.js +64 -0
- package/lib/pages/PollutionRiskAssessment/FilterButton.js +36 -0
- package/lib/pages/PollutionRiskAssessment/Map.js +49 -0
- package/lib/pages/PollutionRiskAssessment/Map.scss +59 -0
- package/lib/pages/PollutionRiskAssessment/TotalSavings.js +51 -0
- package/lib/pages/PollutionRiskAssessment/UseCases.js +53 -0
- package/lib/pages/PollutionRiskAssessment/contact_us.svg +18 -0
- package/lib/pages/PollutionRiskAssessment/filter_button.svg +5 -0
- package/lib/pages/PollutionRiskAssessment/index.js +246 -0
- package/lib/pages/PollutionRiskAssessment/index.scss +45 -0
- package/lib/pages/PollutionRiskAssessment/pig.svg +3 -0
- package/lib/pages/PollutionRiskAssessment/useMap.js +132 -0
- package/lib/pages/PollutionRiskAssessment/use_cases.json +50 -0
- package/lib/store/points/models/IGeoPoint.js +6 -0
- package/lib/styles/theme/theme.js +2 -2
- package/lib/ui-kit/Checkbox/Checkbox.js +7 -2
- package/lib/ui-kit/KandoBottomSheet/KandoBottomSheet.js +44 -0
- package/lib/ui-kit/KandoBottomSheet/KandoBottomSheet.scss +18 -0
- package/lib/utilities/urls.js +6 -1
- package/package.json +3 -1
|
@@ -0,0 +1,246 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.default = void 0;
|
|
9
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
10
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/asyncToGenerator"));
|
|
11
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
|
|
12
|
+
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
13
|
+
require("bootstrap/dist/css/bootstrap.min.css");
|
|
14
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
15
|
+
var _reactRedux = require("react-redux");
|
|
16
|
+
var _actions = require("store/context/actions");
|
|
17
|
+
var _Analytics = require("../../utilities/Analytics");
|
|
18
|
+
var _Map = require("./Map");
|
|
19
|
+
var _useNavContext2 = require("../../hooks/useNavContext");
|
|
20
|
+
var _KandoBottomSheet = _interopRequireDefault(require("../../ui-kit/KandoBottomSheet/KandoBottomSheet"));
|
|
21
|
+
var _urls = require("../../utilities/urls");
|
|
22
|
+
require("./index.scss");
|
|
23
|
+
var _TotalSavings = require("./TotalSavings");
|
|
24
|
+
var _FilterBehaviors = require("./FilterBehaviors");
|
|
25
|
+
var _FactoryDetails = require("./FactoryDetails");
|
|
26
|
+
var _FilterButton = _interopRequireDefault(require("./FilterButton"));
|
|
27
|
+
var _use_cases = _interopRequireDefault(require("./use_cases.json"));
|
|
28
|
+
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); }
|
|
29
|
+
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; }
|
|
30
|
+
var PollutionRiskAssessment = function PollutionRiskAssessment() {
|
|
31
|
+
var waterAuthorityName = (0, _reactRedux.useSelector)(function (state) {
|
|
32
|
+
return state.global_data.waterAuthorityName;
|
|
33
|
+
});
|
|
34
|
+
var waterAuthorityId = (0, _reactRedux.useSelector)(function (state) {
|
|
35
|
+
return state.global_data.waterAuthorityId;
|
|
36
|
+
});
|
|
37
|
+
var _useState = (0, _react.useState)(),
|
|
38
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
39
|
+
polygonData = _useState2[0],
|
|
40
|
+
setPolygonData = _useState2[1];
|
|
41
|
+
var _useState3 = (0, _react.useState)(),
|
|
42
|
+
_useState4 = (0, _slicedToArray2.default)(_useState3, 2),
|
|
43
|
+
pointsData = _useState4[0],
|
|
44
|
+
setPointsData = _useState4[1];
|
|
45
|
+
var _useNavContext = (0, _useNavContext2.useNavContext)(),
|
|
46
|
+
isRtl = _useNavContext.isRtl;
|
|
47
|
+
var _useState5 = (0, _react.useState)('total_savings'),
|
|
48
|
+
_useState6 = (0, _slicedToArray2.default)(_useState5, 2),
|
|
49
|
+
shownContent = _useState6[0],
|
|
50
|
+
setShownContent = _useState6[1];
|
|
51
|
+
var _useState7 = (0, _react.useState)([]),
|
|
52
|
+
_useState8 = (0, _slicedToArray2.default)(_useState7, 2),
|
|
53
|
+
visiblePoints = _useState8[0],
|
|
54
|
+
setVisiblePoints = _useState8[1];
|
|
55
|
+
var _useState9 = (0, _react.useState)(''),
|
|
56
|
+
_useState10 = (0, _slicedToArray2.default)(_useState9, 2),
|
|
57
|
+
useCasesFilter = _useState10[0],
|
|
58
|
+
setUseCasesFilter = _useState10[1];
|
|
59
|
+
var _useState11 = (0, _react.useState)(null),
|
|
60
|
+
_useState12 = (0, _slicedToArray2.default)(_useState11, 2),
|
|
61
|
+
mapBounds = _useState12[0],
|
|
62
|
+
setMapBounds = _useState12[1];
|
|
63
|
+
var _useState13 = (0, _react.useState)(),
|
|
64
|
+
_useState14 = (0, _slicedToArray2.default)(_useState13, 2),
|
|
65
|
+
clickedPointId = _useState14[0],
|
|
66
|
+
setClickedPointId = _useState14[1];
|
|
67
|
+
var handleDismiss = function handleDismiss() {
|
|
68
|
+
setShownContent('total_savings');
|
|
69
|
+
};
|
|
70
|
+
var dispatch = (0, _reactRedux.useDispatch)();
|
|
71
|
+
var fetchData = /*#__PURE__*/function () {
|
|
72
|
+
var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(url, setData) {
|
|
73
|
+
var response, result;
|
|
74
|
+
return _regenerator.default.wrap(function _callee$(_context) {
|
|
75
|
+
while (1) {
|
|
76
|
+
switch (_context.prev = _context.next) {
|
|
77
|
+
case 0:
|
|
78
|
+
_context.prev = 0;
|
|
79
|
+
_context.next = 3;
|
|
80
|
+
return fetch(url);
|
|
81
|
+
case 3:
|
|
82
|
+
response = _context.sent;
|
|
83
|
+
_context.next = 6;
|
|
84
|
+
return response.json();
|
|
85
|
+
case 6:
|
|
86
|
+
result = _context.sent;
|
|
87
|
+
setData(result);
|
|
88
|
+
_context.next = 13;
|
|
89
|
+
break;
|
|
90
|
+
case 10:
|
|
91
|
+
_context.prev = 10;
|
|
92
|
+
_context.t0 = _context["catch"](0);
|
|
93
|
+
console.error("Failed to fetch data from ".concat(url, ":"), _context.t0);
|
|
94
|
+
case 13:
|
|
95
|
+
case "end":
|
|
96
|
+
return _context.stop();
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}, _callee, null, [[0, 10]]);
|
|
100
|
+
}));
|
|
101
|
+
return function fetchData(_x, _x2) {
|
|
102
|
+
return _ref.apply(this, arguments);
|
|
103
|
+
};
|
|
104
|
+
}();
|
|
105
|
+
(0, _react.useEffect)(function () {
|
|
106
|
+
if (waterAuthorityId) {
|
|
107
|
+
var currentGeoAreaUrl = (0, _urls.urls)({
|
|
108
|
+
waterAuthorityId: waterAuthorityId
|
|
109
|
+
}).PollutionRiskAssessment.currentGeoArea;
|
|
110
|
+
fetchData(currentGeoAreaUrl, setPolygonData);
|
|
111
|
+
(0, _Analytics.analyticsTrack)('Viewed Pollution Risk Assessment Page', {
|
|
112
|
+
utility_name: waterAuthorityName
|
|
113
|
+
});
|
|
114
|
+
dispatch((0, _actions.updateNavContext)({
|
|
115
|
+
name: 'pollution_risk_assessment'
|
|
116
|
+
}));
|
|
117
|
+
}
|
|
118
|
+
}, [waterAuthorityId]);
|
|
119
|
+
var getPolygonGeoJSON = function getPolygonGeoJSON(polygonData) {
|
|
120
|
+
try {
|
|
121
|
+
return (polygonData === null || polygonData === void 0 ? void 0 : polygonData.polygon) ? JSON.parse(polygonData.polygon) : [];
|
|
122
|
+
} catch (error) {
|
|
123
|
+
console.error('Failed to parse polygon data:', error);
|
|
124
|
+
return [];
|
|
125
|
+
}
|
|
126
|
+
};
|
|
127
|
+
(0, _react.useEffect)(function () {
|
|
128
|
+
if (!polygonData) return;
|
|
129
|
+
var allPointsUrl = (0, _urls.urls)({
|
|
130
|
+
waterAuthorityId: waterAuthorityId,
|
|
131
|
+
id: polygonData === null || polygonData === void 0 ? void 0 : polygonData.id
|
|
132
|
+
}).PollutionRiskAssessment.allPoints;
|
|
133
|
+
fetchData(allPointsUrl, setPointsData);
|
|
134
|
+
}, [polygonData]);
|
|
135
|
+
var useCase = _use_cases.default.find(function (useCase) {
|
|
136
|
+
return useCase.id === useCasesFilter;
|
|
137
|
+
});
|
|
138
|
+
var getBottomSheetConfig = function getBottomSheetConfig() {
|
|
139
|
+
switch (shownContent) {
|
|
140
|
+
case 'total_savings':
|
|
141
|
+
return {
|
|
142
|
+
content: /*#__PURE__*/_react.default.createElement(_TotalSavings.TotalSavings, {
|
|
143
|
+
points: visiblePoints,
|
|
144
|
+
filteredUseCase: useCase
|
|
145
|
+
}),
|
|
146
|
+
snapPoints: function snapPoints(_ref2) {
|
|
147
|
+
var maxHeight = _ref2.maxHeight;
|
|
148
|
+
return [78, maxHeight - 100];
|
|
149
|
+
},
|
|
150
|
+
backgroundColor: '#000'
|
|
151
|
+
};
|
|
152
|
+
case 'filter_behaviors':
|
|
153
|
+
return {
|
|
154
|
+
content: /*#__PURE__*/_react.default.createElement(_FilterBehaviors.FilterBehaviors, {
|
|
155
|
+
selectedItem: useCasesFilter,
|
|
156
|
+
handleChange: setUseCasesFilter
|
|
157
|
+
}),
|
|
158
|
+
snapPoints: function snapPoints(_ref3) {
|
|
159
|
+
var maxHeight = _ref3.maxHeight;
|
|
160
|
+
return [maxHeight - 300, maxHeight - 300];
|
|
161
|
+
},
|
|
162
|
+
backgroundColor: '#fff'
|
|
163
|
+
};
|
|
164
|
+
case 'factory_details':
|
|
165
|
+
return {
|
|
166
|
+
content: /*#__PURE__*/_react.default.createElement(_FactoryDetails.FactoryDetails, {
|
|
167
|
+
point_id: clickedPointId
|
|
168
|
+
}),
|
|
169
|
+
snapPoints: function snapPoints(_ref4) {
|
|
170
|
+
var maxHeight = _ref4.maxHeight;
|
|
171
|
+
return [maxHeight - 500, maxHeight - 500];
|
|
172
|
+
},
|
|
173
|
+
backgroundColor: '#fff'
|
|
174
|
+
};
|
|
175
|
+
default:
|
|
176
|
+
return {
|
|
177
|
+
content: null,
|
|
178
|
+
snapPoints: function snapPoints() {
|
|
179
|
+
return [0];
|
|
180
|
+
},
|
|
181
|
+
backgroundColor: '#000'
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
};
|
|
185
|
+
var _useMemo = (0, _react.useMemo)(getBottomSheetConfig, [shownContent, useCasesFilter, visiblePoints, clickedPointId]),
|
|
186
|
+
content = _useMemo.content,
|
|
187
|
+
snapPoints = _useMemo.snapPoints,
|
|
188
|
+
backgroundColor = _useMemo.backgroundColor;
|
|
189
|
+
var bottomSheet = (0, _react.useMemo)(function () {
|
|
190
|
+
return /*#__PURE__*/_react.default.createElement(_KandoBottomSheet.default, {
|
|
191
|
+
backgroundColor: backgroundColor,
|
|
192
|
+
snapPoints: snapPoints,
|
|
193
|
+
onDismiss: handleDismiss,
|
|
194
|
+
isOpen: true
|
|
195
|
+
}, content);
|
|
196
|
+
}, [visiblePoints, shownContent, clickedPointId]);
|
|
197
|
+
(0, _react.useEffect)(function () {
|
|
198
|
+
if (!mapBounds || !pointsData) return;
|
|
199
|
+
var filteredPoints = pointsData.filter(function (point) {
|
|
200
|
+
return point.lat >= mapBounds.getSouthWest().lat && point.lat <= mapBounds.getNorthEast().lat && point.lng >= mapBounds.getSouthWest().lng && point.lng <= mapBounds.getNorthEast().lng;
|
|
201
|
+
});
|
|
202
|
+
setVisiblePoints(filteredPoints);
|
|
203
|
+
}, [mapBounds, pointsData]);
|
|
204
|
+
var handleBoundsChange = (0, _react.useCallback)(function (bounds) {
|
|
205
|
+
setMapBounds(bounds);
|
|
206
|
+
}, []);
|
|
207
|
+
var filterButtonClick = function filterButtonClick() {
|
|
208
|
+
setShownContent(function (prevContent) {
|
|
209
|
+
return prevContent === 'filter_behaviors' ? 'total_savings' : 'filter_behaviors';
|
|
210
|
+
});
|
|
211
|
+
};
|
|
212
|
+
var filterButtonState = (0, _react.useMemo)(function () {
|
|
213
|
+
if (shownContent === 'filter_behaviors') {
|
|
214
|
+
return 'filled';
|
|
215
|
+
}
|
|
216
|
+
return useCasesFilter !== '' ? 'filled-red' : '';
|
|
217
|
+
}, [shownContent, useCasesFilter]);
|
|
218
|
+
var markerClicked = function markerClicked(id) {
|
|
219
|
+
setClickedPointId(id);
|
|
220
|
+
if (shownContent !== 'factory_details') {
|
|
221
|
+
setShownContent('factory_details');
|
|
222
|
+
}
|
|
223
|
+
};
|
|
224
|
+
if (!pointsData || !polygonData) return null;
|
|
225
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
226
|
+
className: "app-wrapper"
|
|
227
|
+
}, /*#__PURE__*/_react.default.createElement(MapTableContainer, {
|
|
228
|
+
isRtl: isRtl
|
|
229
|
+
}, /*#__PURE__*/_react.default.createElement(_Map.Map, {
|
|
230
|
+
filteredUseCaseCode: (useCase ? useCase.code : 'to') + 's',
|
|
231
|
+
points: pointsData,
|
|
232
|
+
polygon: getPolygonGeoJSON(polygonData),
|
|
233
|
+
onBoundsChange: handleBoundsChange,
|
|
234
|
+
onMarkerClick: markerClicked
|
|
235
|
+
})), bottomSheet, /*#__PURE__*/_react.default.createElement(_FilterButton.default, {
|
|
236
|
+
buttonState: filterButtonState,
|
|
237
|
+
onClick: filterButtonClick
|
|
238
|
+
}));
|
|
239
|
+
};
|
|
240
|
+
var _default = PollutionRiskAssessment;
|
|
241
|
+
exports.default = _default;
|
|
242
|
+
var MapTableContainer = _styledComponents.default.div.withConfig({
|
|
243
|
+
displayName: "PollutionRiskAssessment__MapTableContainer",
|
|
244
|
+
componentId: "sc-peb1i1-0"
|
|
245
|
+
})(["position:fixed;top:65px;height:calc(100vh - 20px);width:100vw;#map{height:100%;width:100%;*,*:focus,*:hover{outline:none;}}"]);
|
|
246
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJyZXF1aXJlIiwiX3JlYWN0IiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfcmVhY3RSZWR1eCIsIl9hY3Rpb25zIiwiX0FuYWx5dGljcyIsIl9NYXAiLCJfdXNlTmF2Q29udGV4dDIiLCJfS2FuZG9Cb3R0b21TaGVldCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfdXJscyIsIl9Ub3RhbFNhdmluZ3MiLCJfRmlsdGVyQmVoYXZpb3JzIiwiX0ZhY3RvcnlEZXRhaWxzIiwiX0ZpbHRlckJ1dHRvbiIsIl91c2VfY2FzZXMiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJub2RlSW50ZXJvcCIsIldlYWtNYXAiLCJjYWNoZUJhYmVsSW50ZXJvcCIsImNhY2hlTm9kZUludGVyb3AiLCJvYmoiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImRlZmF1bHQiLCJjYWNoZSIsImhhcyIsImdldCIsIm5ld09iaiIsImhhc1Byb3BlcnR5RGVzY3JpcHRvciIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiZGVzYyIsInNldCIsIlBvbGx1dGlvblJpc2tBc3Nlc3NtZW50Iiwid2F0ZXJBdXRob3JpdHlOYW1lIiwidXNlU2VsZWN0b3IiLCJzdGF0ZSIsImdsb2JhbF9kYXRhIiwid2F0ZXJBdXRob3JpdHlJZCIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsInBvbHlnb25EYXRhIiwic2V0UG9seWdvbkRhdGEiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsInBvaW50c0RhdGEiLCJzZXRQb2ludHNEYXRhIiwiX3VzZU5hdkNvbnRleHQiLCJ1c2VOYXZDb250ZXh0IiwiaXNSdGwiLCJfdXNlU3RhdGU1IiwiX3VzZVN0YXRlNiIsInNob3duQ29udGVudCIsInNldFNob3duQ29udGVudCIsIl91c2VTdGF0ZTciLCJfdXNlU3RhdGU4IiwidmlzaWJsZVBvaW50cyIsInNldFZpc2libGVQb2ludHMiLCJfdXNlU3RhdGU5IiwiX3VzZVN0YXRlMTAiLCJ1c2VDYXNlc0ZpbHRlciIsInNldFVzZUNhc2VzRmlsdGVyIiwiX3VzZVN0YXRlMTEiLCJfdXNlU3RhdGUxMiIsIm1hcEJvdW5kcyIsInNldE1hcEJvdW5kcyIsIl91c2VTdGF0ZTEzIiwiX3VzZVN0YXRlMTQiLCJjbGlja2VkUG9pbnRJZCIsInNldENsaWNrZWRQb2ludElkIiwiaGFuZGxlRGlzbWlzcyIsImRpc3BhdGNoIiwidXNlRGlzcGF0Y2giLCJmZXRjaERhdGEiLCJfcmVmIiwiX2FzeW5jVG9HZW5lcmF0b3IyIiwiX3JlZ2VuZXJhdG9yIiwibWFyayIsIl9jYWxsZWUiLCJ1cmwiLCJzZXREYXRhIiwicmVzcG9uc2UiLCJyZXN1bHQiLCJ3cmFwIiwiX2NhbGxlZSQiLCJfY29udGV4dCIsInByZXYiLCJuZXh0IiwiZmV0Y2giLCJzZW50IiwianNvbiIsInQwIiwiY29uc29sZSIsImVycm9yIiwiY29uY2F0Iiwic3RvcCIsIl94IiwiX3gyIiwiYXBwbHkiLCJhcmd1bWVudHMiLCJ1c2VFZmZlY3QiLCJjdXJyZW50R2VvQXJlYVVybCIsInVybHMiLCJjdXJyZW50R2VvQXJlYSIsImFuYWx5dGljc1RyYWNrIiwidXRpbGl0eV9uYW1lIiwidXBkYXRlTmF2Q29udGV4dCIsIm5hbWUiLCJnZXRQb2x5Z29uR2VvSlNPTiIsInBvbHlnb24iLCJKU09OIiwicGFyc2UiLCJhbGxQb2ludHNVcmwiLCJpZCIsImFsbFBvaW50cyIsInVzZUNhc2UiLCJ1c2VDYXNlcyIsImZpbmQiLCJnZXRCb3R0b21TaGVldENvbmZpZyIsImNvbnRlbnQiLCJjcmVhdGVFbGVtZW50IiwiVG90YWxTYXZpbmdzIiwicG9pbnRzIiwiZmlsdGVyZWRVc2VDYXNlIiwic25hcFBvaW50cyIsIl9yZWYyIiwibWF4SGVpZ2h0IiwiYmFja2dyb3VuZENvbG9yIiwiRmlsdGVyQmVoYXZpb3JzIiwic2VsZWN0ZWRJdGVtIiwiaGFuZGxlQ2hhbmdlIiwiX3JlZjMiLCJGYWN0b3J5RGV0YWlscyIsInBvaW50X2lkIiwiX3JlZjQiLCJfdXNlTWVtbyIsInVzZU1lbW8iLCJib3R0b21TaGVldCIsIm9uRGlzbWlzcyIsImlzT3BlbiIsImZpbHRlcmVkUG9pbnRzIiwiZmlsdGVyIiwicG9pbnQiLCJsYXQiLCJnZXRTb3V0aFdlc3QiLCJnZXROb3J0aEVhc3QiLCJsbmciLCJoYW5kbGVCb3VuZHNDaGFuZ2UiLCJ1c2VDYWxsYmFjayIsImJvdW5kcyIsImZpbHRlckJ1dHRvbkNsaWNrIiwicHJldkNvbnRlbnQiLCJmaWx0ZXJCdXR0b25TdGF0ZSIsIm1hcmtlckNsaWNrZWQiLCJjbGFzc05hbWUiLCJNYXBUYWJsZUNvbnRhaW5lciIsIk1hcCIsImZpbHRlcmVkVXNlQ2FzZUNvZGUiLCJjb2RlIiwib25Cb3VuZHNDaGFuZ2UiLCJvbk1hcmtlckNsaWNrIiwiYnV0dG9uU3RhdGUiLCJvbkNsaWNrIiwiX2RlZmF1bHQiLCJleHBvcnRzIiwic3R5bGVkIiwiZGl2Iiwid2l0aENvbmZpZyIsImRpc3BsYXlOYW1lIiwiY29tcG9uZW50SWQiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcGFnZXMvUG9sbHV0aW9uUmlza0Fzc2Vzc21lbnQvaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAnYm9vdHN0cmFwL2Rpc3QvY3NzL2Jvb3RzdHJhcC5taW4uY3NzJztcbmltcG9ydCBSZWFjdCwgeyB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VNZW1vLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZURpc3BhdGNoLCB1c2VTZWxlY3RvciB9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCB7IHVwZGF0ZU5hdkNvbnRleHQgfSBmcm9tICdzcmMvc3RvcmUvY29udGV4dC9hY3Rpb25zJztcbmltcG9ydCB7IGFuYWx5dGljc1RyYWNrIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzL0FuYWx5dGljcyc7XG5pbXBvcnQgeyBNYXAgfSBmcm9tICcuL01hcCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzL21hY3JvJztcbmltcG9ydCB7IHVzZU5hdkNvbnRleHQgfSBmcm9tICcuLi8uLi9ob29rcy91c2VOYXZDb250ZXh0JztcbmltcG9ydCBLYW5kb0JvdHRvbVNoZWV0IGZyb20gJy4uLy4uL3VpLWtpdC9LYW5kb0JvdHRvbVNoZWV0L0thbmRvQm90dG9tU2hlZXQnO1xuaW1wb3J0IHsgdXJscyB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy91cmxzJztcbmltcG9ydCB7IElHZW9Qb2ludCB9IGZyb20gJ3NyYy9zdG9yZS9wb2ludHMvbW9kZWxzL0lHZW9Qb2ludCc7XG5pbXBvcnQgTCwgeyBHZW9KU09OIH0gZnJvbSAnbGVhZmxldCc7XG5pbXBvcnQgJy4vaW5kZXguc2Nzcyc7XG5pbXBvcnQgeyBUb3RhbFNhdmluZ3MgfSBmcm9tICcuL1RvdGFsU2F2aW5ncyc7XG5pbXBvcnQgeyBGaWx0ZXJCZWhhdmlvcnMgfSBmcm9tICcuL0ZpbHRlckJlaGF2aW9ycyc7XG5pbXBvcnQgeyBGYWN0b3J5RGV0YWlscyB9IGZyb20gJy4vRmFjdG9yeURldGFpbHMnO1xuaW1wb3J0IEZpbHRlckJ1dHRvbiBmcm9tICcuL0ZpbHRlckJ1dHRvbic7XG5pbXBvcnQgdXNlQ2FzZXMgZnJvbSAnLi91c2VfY2FzZXMuanNvbic7XG5cbmNvbnN0IFBvbGx1dGlvblJpc2tBc3Nlc3NtZW50OiBSZWFjdC5GQyA9ICgpID0+IHtcbiAgY29uc3Qgd2F0ZXJBdXRob3JpdHlOYW1lID0gdXNlU2VsZWN0b3IoXG4gICAgKHN0YXRlKSA9PiBzdGF0ZS5nbG9iYWxfZGF0YS53YXRlckF1dGhvcml0eU5hbWUsXG4gICk7XG4gIGNvbnN0IHdhdGVyQXV0aG9yaXR5SWQgPSB1c2VTZWxlY3RvcihcbiAgICAoc3RhdGUpID0+IHN0YXRlLmdsb2JhbF9kYXRhLndhdGVyQXV0aG9yaXR5SWQsXG4gICk7XG4gIGNvbnN0IFtwb2x5Z29uRGF0YSwgc2V0UG9seWdvbkRhdGFdID0gdXNlU3RhdGU8R2VvSlNPTj4oKTtcbiAgY29uc3QgW3BvaW50c0RhdGEsIHNldFBvaW50c0RhdGFdID0gdXNlU3RhdGU8SUdlb1BvaW50W10+KCk7XG4gIGNvbnN0IHsgaXNSdGwgfSA9IHVzZU5hdkNvbnRleHQoKTtcbiAgY29uc3QgW3Nob3duQ29udGVudCwgc2V0U2hvd25Db250ZW50XSA9IHVzZVN0YXRlKCd0b3RhbF9zYXZpbmdzJyk7XG4gIGNvbnN0IFt2aXNpYmxlUG9pbnRzLCBzZXRWaXNpYmxlUG9pbnRzXSA9IHVzZVN0YXRlPElHZW9Qb2ludFtdPihbXSk7XG4gIGNvbnN0IFt1c2VDYXNlc0ZpbHRlciwgc2V0VXNlQ2FzZXNGaWx0ZXJdID0gdXNlU3RhdGUoJycpO1xuICBjb25zdCBbbWFwQm91bmRzLCBzZXRNYXBCb3VuZHNdID0gdXNlU3RhdGU8TC5MYXRMbmdCb3VuZHMgfCBudWxsPihudWxsKTtcbiAgY29uc3QgW2NsaWNrZWRQb2ludElkLCBzZXRDbGlja2VkUG9pbnRJZF0gPSB1c2VTdGF0ZTxudW1iZXI+KCk7XG5cbiAgY29uc3QgaGFuZGxlRGlzbWlzcyA9ICgpID0+IHtcbiAgICBzZXRTaG93bkNvbnRlbnQoJ3RvdGFsX3NhdmluZ3MnKTtcbiAgfTtcblxuICBjb25zdCBkaXNwYXRjaCA9IHVzZURpc3BhdGNoKCk7XG4gIGNvbnN0IGZldGNoRGF0YSA9IGFzeW5jIDxULD4oXG4gICAgdXJsOiBzdHJpbmcsXG4gICAgc2V0RGF0YTogUmVhY3QuRGlzcGF0Y2g8UmVhY3QuU2V0U3RhdGVBY3Rpb248VD4+LFxuICApID0+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCh1cmwpO1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmVzcG9uc2UuanNvbigpO1xuICAgICAgc2V0RGF0YShyZXN1bHQpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGBGYWlsZWQgdG8gZmV0Y2ggZGF0YSBmcm9tICR7dXJsfTpgLCBlcnJvcik7XG4gICAgfVxuICB9O1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHdhdGVyQXV0aG9yaXR5SWQpIHtcbiAgICAgIGNvbnN0IGN1cnJlbnRHZW9BcmVhVXJsID0gdXJscyh7IHdhdGVyQXV0aG9yaXR5SWQgfSlcbiAgICAgICAgLlBvbGx1dGlvblJpc2tBc3Nlc3NtZW50LmN1cnJlbnRHZW9BcmVhO1xuICAgICAgZmV0Y2hEYXRhKGN1cnJlbnRHZW9BcmVhVXJsLCBzZXRQb2x5Z29uRGF0YSk7XG5cbiAgICAgIGFuYWx5dGljc1RyYWNrKCdWaWV3ZWQgUG9sbHV0aW9uIFJpc2sgQXNzZXNzbWVudCBQYWdlJywge1xuICAgICAgICB1dGlsaXR5X25hbWU6IHdhdGVyQXV0aG9yaXR5TmFtZSxcbiAgICAgIH0pO1xuICAgICAgZGlzcGF0Y2godXBkYXRlTmF2Q29udGV4dCh7IG5hbWU6ICdwb2xsdXRpb25fcmlza19hc3Nlc3NtZW50JyB9KSk7XG4gICAgfVxuICB9LCBbd2F0ZXJBdXRob3JpdHlJZF0pO1xuXG4gIGNvbnN0IGdldFBvbHlnb25HZW9KU09OID0gKHBvbHlnb25EYXRhKSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBwb2x5Z29uRGF0YT8ucG9seWdvbiA/IEpTT04ucGFyc2UocG9seWdvbkRhdGEucG9seWdvbikgOiBbXTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIHBhcnNlIHBvbHlnb24gZGF0YTonLCBlcnJvcik7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuICB9O1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFwb2x5Z29uRGF0YSkgcmV0dXJuO1xuXG4gICAgY29uc3QgYWxsUG9pbnRzVXJsID0gdXJscyh7XG4gICAgICB3YXRlckF1dGhvcml0eUlkOiB3YXRlckF1dGhvcml0eUlkLFxuICAgICAgaWQ6IHBvbHlnb25EYXRhPy5pZCxcbiAgICB9KS5Qb2xsdXRpb25SaXNrQXNzZXNzbWVudC5hbGxQb2ludHM7XG5cbiAgICBmZXRjaERhdGEoYWxsUG9pbnRzVXJsLCBzZXRQb2ludHNEYXRhKTtcbiAgfSwgW3BvbHlnb25EYXRhXSk7XG5cbiAgY29uc3QgdXNlQ2FzZSA9IHVzZUNhc2VzLmZpbmQoKHVzZUNhc2UpID0+IHVzZUNhc2UuaWQgPT09IHVzZUNhc2VzRmlsdGVyKTtcblxuICBjb25zdCBnZXRCb3R0b21TaGVldENvbmZpZyA9ICgpID0+IHtcbiAgICBzd2l0Y2ggKHNob3duQ29udGVudCkge1xuICAgICAgY2FzZSAndG90YWxfc2F2aW5ncyc6XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgY29udGVudDogKFxuICAgICAgICAgICAgPFRvdGFsU2F2aW5ncyBwb2ludHM9e3Zpc2libGVQb2ludHN9IGZpbHRlcmVkVXNlQ2FzZT17dXNlQ2FzZX0gLz5cbiAgICAgICAgICApLFxuICAgICAgICAgIHNuYXBQb2ludHM6ICh7IG1heEhlaWdodCB9OiB7IG1heEhlaWdodDogbnVtYmVyIH0pID0+IFtcbiAgICAgICAgICAgIDc4LFxuICAgICAgICAgICAgbWF4SGVpZ2h0IC0gMTAwLFxuICAgICAgICAgIF0sXG4gICAgICAgICAgYmFja2dyb3VuZENvbG9yOiAnIzAwMCcsXG4gICAgICAgIH07XG4gICAgICBjYXNlICdmaWx0ZXJfYmVoYXZpb3JzJzpcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBjb250ZW50OiAoXG4gICAgICAgICAgICA8RmlsdGVyQmVoYXZpb3JzXG4gICAgICAgICAgICAgIHNlbGVjdGVkSXRlbT17dXNlQ2FzZXNGaWx0ZXJ9XG4gICAgICAgICAgICAgIGhhbmRsZUNoYW5nZT17c2V0VXNlQ2FzZXNGaWx0ZXJ9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICksXG4gICAgICAgICAgc25hcFBvaW50czogKHsgbWF4SGVpZ2h0IH06IHsgbWF4SGVpZ2h0OiBudW1iZXIgfSkgPT4gW1xuICAgICAgICAgICAgbWF4SGVpZ2h0IC0gMzAwLFxuICAgICAgICAgICAgbWF4SGVpZ2h0IC0gMzAwLFxuICAgICAgICAgIF0sXG4gICAgICAgICAgYmFja2dyb3VuZENvbG9yOiAnI2ZmZicsXG4gICAgICAgIH07XG4gICAgICBjYXNlICdmYWN0b3J5X2RldGFpbHMnOlxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGNvbnRlbnQ6IDxGYWN0b3J5RGV0YWlscyBwb2ludF9pZD17Y2xpY2tlZFBvaW50SWR9IC8+LFxuICAgICAgICAgIHNuYXBQb2ludHM6ICh7IG1heEhlaWdodCB9OiB7IG1heEhlaWdodDogbnVtYmVyIH0pID0+IFtcbiAgICAgICAgICAgIG1heEhlaWdodCAtIDUwMCxcbiAgICAgICAgICAgIG1heEhlaWdodCAtIDUwMCxcbiAgICAgICAgICBdLFxuICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogJyNmZmYnLFxuICAgICAgICB9O1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBjb250ZW50OiBudWxsLFxuICAgICAgICAgIHNuYXBQb2ludHM6ICgpID0+IFswXSxcbiAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICcjMDAwJyxcbiAgICAgICAgfTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgeyBjb250ZW50LCBzbmFwUG9pbnRzLCBiYWNrZ3JvdW5kQ29sb3IgfSA9IHVzZU1lbW8oXG4gICAgZ2V0Qm90dG9tU2hlZXRDb25maWcsXG4gICAgW3Nob3duQ29udGVudCwgdXNlQ2FzZXNGaWx0ZXIsIHZpc2libGVQb2ludHMsIGNsaWNrZWRQb2ludElkXSxcbiAgKTtcblxuICBjb25zdCBib3R0b21TaGVldCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIHJldHVybiAoXG4gICAgICA8S2FuZG9Cb3R0b21TaGVldFxuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I9e2JhY2tncm91bmRDb2xvcn1cbiAgICAgICAgc25hcFBvaW50cz17c25hcFBvaW50c31cbiAgICAgICAgb25EaXNtaXNzPXtoYW5kbGVEaXNtaXNzfVxuICAgICAgICBpc09wZW49e3RydWV9XG4gICAgICA+XG4gICAgICAgIHtjb250ZW50fVxuICAgICAgPC9LYW5kb0JvdHRvbVNoZWV0PlxuICAgICk7XG4gIH0sIFt2aXNpYmxlUG9pbnRzLCBzaG93bkNvbnRlbnQsIGNsaWNrZWRQb2ludElkXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIW1hcEJvdW5kcyB8fCAhcG9pbnRzRGF0YSkgcmV0dXJuO1xuXG4gICAgY29uc3QgZmlsdGVyZWRQb2ludHMgPSBwb2ludHNEYXRhLmZpbHRlcigocG9pbnQpID0+IHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIHBvaW50LmxhdCA+PSBtYXBCb3VuZHMuZ2V0U291dGhXZXN0KCkubGF0ICYmXG4gICAgICAgIHBvaW50LmxhdCA8PSBtYXBCb3VuZHMuZ2V0Tm9ydGhFYXN0KCkubGF0ICYmXG4gICAgICAgIHBvaW50LmxuZyA+PSBtYXBCb3VuZHMuZ2V0U291dGhXZXN0KCkubG5nICYmXG4gICAgICAgIHBvaW50LmxuZyA8PSBtYXBCb3VuZHMuZ2V0Tm9ydGhFYXN0KCkubG5nXG4gICAgICApO1xuICAgIH0pO1xuXG4gICAgc2V0VmlzaWJsZVBvaW50cyhmaWx0ZXJlZFBvaW50cyk7XG4gIH0sIFttYXBCb3VuZHMsIHBvaW50c0RhdGFdKTtcblxuICBjb25zdCBoYW5kbGVCb3VuZHNDaGFuZ2UgPSB1c2VDYWxsYmFjaygoYm91bmRzKSA9PiB7XG4gICAgc2V0TWFwQm91bmRzKGJvdW5kcyk7XG4gIH0sIFtdKTtcblxuICBjb25zdCBmaWx0ZXJCdXR0b25DbGljayA9ICgpID0+IHtcbiAgICBzZXRTaG93bkNvbnRlbnQoKHByZXZDb250ZW50KSA9PlxuICAgICAgcHJldkNvbnRlbnQgPT09ICdmaWx0ZXJfYmVoYXZpb3JzJyA/ICd0b3RhbF9zYXZpbmdzJyA6ICdmaWx0ZXJfYmVoYXZpb3JzJyxcbiAgICApO1xuICB9O1xuXG4gIGNvbnN0IGZpbHRlckJ1dHRvblN0YXRlID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKHNob3duQ29udGVudCA9PT0gJ2ZpbHRlcl9iZWhhdmlvcnMnKSB7XG4gICAgICByZXR1cm4gJ2ZpbGxlZCc7XG4gICAgfVxuICAgIHJldHVybiB1c2VDYXNlc0ZpbHRlciAhPT0gJycgPyAnZmlsbGVkLXJlZCcgOiAnJztcbiAgfSwgW3Nob3duQ29udGVudCwgdXNlQ2FzZXNGaWx0ZXJdKTtcblxuICBjb25zdCBtYXJrZXJDbGlja2VkID0gKGlkOiBudW1iZXIpID0+IHtcbiAgICBzZXRDbGlja2VkUG9pbnRJZChpZCk7XG4gICAgaWYgKHNob3duQ29udGVudCAhPT0gJ2ZhY3RvcnlfZGV0YWlscycpIHtcbiAgICAgIHNldFNob3duQ29udGVudCgnZmFjdG9yeV9kZXRhaWxzJyk7XG4gICAgfVxuICB9O1xuXG4gIGlmICghcG9pbnRzRGF0YSB8fCAhcG9seWdvbkRhdGEpIHJldHVybiBudWxsO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJhcHAtd3JhcHBlclwiPlxuICAgICAgPE1hcFRhYmxlQ29udGFpbmVyIGlzUnRsPXtpc1J0bH0+XG4gICAgICAgIDxNYXBcbiAgICAgICAgICBmaWx0ZXJlZFVzZUNhc2VDb2RlPXsodXNlQ2FzZSA/IHVzZUNhc2UuY29kZSA6ICd0bycpICsgJ3MnfVxuICAgICAgICAgIHBvaW50cz17cG9pbnRzRGF0YX1cbiAgICAgICAgICBwb2x5Z29uPXtnZXRQb2x5Z29uR2VvSlNPTihwb2x5Z29uRGF0YSl9XG4gICAgICAgICAgb25Cb3VuZHNDaGFuZ2U9e2hhbmRsZUJvdW5kc0NoYW5nZX1cbiAgICAgICAgICBvbk1hcmtlckNsaWNrPXttYXJrZXJDbGlja2VkfVxuICAgICAgICAvPlxuICAgICAgPC9NYXBUYWJsZUNvbnRhaW5lcj5cbiAgICAgIHtib3R0b21TaGVldH1cbiAgICAgIDxGaWx0ZXJCdXR0b25cbiAgICAgICAgYnV0dG9uU3RhdGU9e2ZpbHRlckJ1dHRvblN0YXRlfVxuICAgICAgICBvbkNsaWNrPXtmaWx0ZXJCdXR0b25DbGlja31cbiAgICAgIC8+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBQb2xsdXRpb25SaXNrQXNzZXNzbWVudDtcblxuY29uc3QgTWFwVGFibGVDb250YWluZXIgPSBzdHlsZWQuZGl2PHsgaXNSdGw6IGJvb2xlYW4gfT5gXG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiA2NXB4O1xuICBoZWlnaHQ6IGNhbGMoMTAwdmggLSAyMHB4KTtcbiAgd2lkdGg6IDEwMHZ3O1xuXG4gICNtYXAge1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgICosXG4gICAgKjpmb2N1cyxcbiAgICAqOmhvdmVyIHtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgfVxuICB9XG5gO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQUEsT0FBQTtBQUNBLElBQUFDLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLFdBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLFFBQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLFVBQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLElBQUEsR0FBQU4sT0FBQTtBQUVBLElBQUFPLGVBQUEsR0FBQVAsT0FBQTtBQUNBLElBQUFRLGlCQUFBLEdBQUFDLHNCQUFBLENBQUFULE9BQUE7QUFDQSxJQUFBVSxLQUFBLEdBQUFWLE9BQUE7QUFHQUEsT0FBQTtBQUNBLElBQUFXLGFBQUEsR0FBQVgsT0FBQTtBQUNBLElBQUFZLGdCQUFBLEdBQUFaLE9BQUE7QUFDQSxJQUFBYSxlQUFBLEdBQUFiLE9BQUE7QUFDQSxJQUFBYyxhQUFBLEdBQUFMLHNCQUFBLENBQUFULE9BQUE7QUFDQSxJQUFBZSxVQUFBLEdBQUFOLHNCQUFBLENBQUFULE9BQUE7QUFBd0MsU0FBQWdCLHlCQUFBQyxXQUFBLGVBQUFDLE9BQUEsa0NB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
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
.map-heights {
|
|
2
|
+
height: 100%;
|
|
3
|
+
width: 100%;
|
|
4
|
+
|
|
5
|
+
*,
|
|
6
|
+
*:focus,
|
|
7
|
+
*:hover {
|
|
8
|
+
outline: none;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
.assessment-page {
|
|
13
|
+
height: 100%;
|
|
14
|
+
width: 100%;
|
|
15
|
+
left: 0;
|
|
16
|
+
top: 0;
|
|
17
|
+
|
|
18
|
+
#map {
|
|
19
|
+
height: 100%;
|
|
20
|
+
width: 100%;
|
|
21
|
+
|
|
22
|
+
.leaflet-popup-close-button {
|
|
23
|
+
font-size: x-large;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
.btn-group {
|
|
28
|
+
display: flex;
|
|
29
|
+
justify-content: center;
|
|
30
|
+
margin-top: 20px;
|
|
31
|
+
|
|
32
|
+
button {
|
|
33
|
+
margin: 0 10px;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
.use-case-icon {
|
|
38
|
+
width: 24px;
|
|
39
|
+
height: 24px;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
svg path {
|
|
43
|
+
fill: white !important;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
<svg width="22" height="22" viewBox="0 0 22 22" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<path d="M15.4627 10.3134C15.7358 10.3134 15.9686 10.2172 16.161 10.0248C16.3534 9.83241 16.4496 9.59963 16.4496 9.32644C16.4496 9.05325 16.3534 8.82047 16.161 8.62809C15.9686 8.43571 15.7358 8.33952 15.4627 8.33952C15.1895 8.33952 14.9567 8.43571 14.7643 8.62809C14.5719 8.82047 14.4757 9.05325 14.4757 9.32644C14.4757 9.59963 14.5719 9.83241 14.7643 10.0248C14.9567 10.2172 15.1895 10.3134 15.4627 10.3134ZM6.53734 7.93183H12.1157V6.25839H6.53734V7.93183ZM3.05092 21.0409C2.46162 19.0069 1.87268 16.983 1.2841 14.9691C0.695508 12.9552 0.401215 10.8884 0.401215 8.76861C0.401215 7.21527 0.9426 5.89722 2.02537 4.81447C3.10812 3.7317 4.42617 3.19031 5.97951 3.19031H11.8368C12.3474 2.5195 12.9599 1.97991 13.6744 1.57154C14.3888 1.16317 15.1709 0.958984 16.0205 0.958984C16.328 0.958984 16.5908 1.06805 16.8089 1.28618C17.0271 1.50429 17.1361 1.76711 17.1361 2.07462C17.1361 2.15043 17.1258 2.22624 17.105 2.30205C17.0843 2.37784 17.0625 2.44792 17.0396 2.5123C16.9366 2.78121 16.849 3.05655 16.7767 3.33833C16.7045 3.62011 16.6426 3.90476 16.5912 4.19226L19.4941 7.09514H21.5988V13.9114L18.5543 14.9112L16.7178 21.0409H11.5579V18.8096H8.21081V21.0409H3.05092ZM4.30601 19.3674H6.53734V17.1361H13.2313V19.3674H15.4627L17.1919 13.6217L19.9253 12.7013V8.76861H18.8097L14.9048 4.86378C14.9048 4.49189 14.9281 4.13395 14.9746 3.78996C15.021 3.44596 15.0979 3.10089 15.2052 2.75476C14.666 2.90351 14.1954 3.16276 13.7935 3.53249C13.3915 3.90224 13.0833 4.346 12.8687 4.86378H5.97951C4.90103 4.86378 3.98061 5.24497 3.21824 6.00734C2.45587 6.76971 2.07468 7.69013 2.07468 8.76861C2.07468 10.5909 2.32571 12.3713 2.82776 14.1099C3.32981 15.8484 3.82256 17.601 4.30601 19.3674Z" fill="white"/>
|
|
3
|
+
</svg>
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.useMap = void 0;
|
|
8
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
|
|
9
|
+
var _leaflet = _interopRequireDefault(require("leaflet"));
|
|
10
|
+
var _react = require("react");
|
|
11
|
+
var _PointIcon = require("Widgets/Map/points/PointIcon");
|
|
12
|
+
var _theme = require("styles/theme/theme");
|
|
13
|
+
var _MapUtils = require("Widgets/Map/MapUtils");
|
|
14
|
+
var useMap = function useMap(mapRef, points, filteredUseCaseCode, polygon, onMarkerClick) {
|
|
15
|
+
var _useState = (0, _react.useState)(),
|
|
16
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
17
|
+
map = _useState2[0],
|
|
18
|
+
setMap = _useState2[1];
|
|
19
|
+
var _useState3 = (0, _react.useState)(15),
|
|
20
|
+
_useState4 = (0, _slicedToArray2.default)(_useState3, 2),
|
|
21
|
+
mapZoomLevel = _useState4[0],
|
|
22
|
+
setMapZoomLevel = _useState4[1];
|
|
23
|
+
var heatLayerRef = (0, _react.useRef)();
|
|
24
|
+
var pointsLayerRef = (0, _react.useRef)();
|
|
25
|
+
(0, _react.useEffect)(function () {
|
|
26
|
+
if (!mapRef.current) {
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
var mapTypes = (0, _MapUtils.baseMaps)(_theme.leafletMap.mapDefault, _theme.leafletMap.satellite);
|
|
30
|
+
var mapTemp = _leaflet.default.map(mapRef.current, {});
|
|
31
|
+
Object.values(mapTypes)[0].addTo(mapTemp);
|
|
32
|
+
_leaflet.default.control.layers(mapTypes, {}, {
|
|
33
|
+
position: 'topright'
|
|
34
|
+
}).addTo(mapTemp);
|
|
35
|
+
|
|
36
|
+
// The colors are transparent so the map will fit the polygon bounds but it won't be visible
|
|
37
|
+
if (polygon && polygon.length === undefined) {
|
|
38
|
+
var geoJSONLayer = _leaflet.default.geoJSON(polygon, {
|
|
39
|
+
style: {
|
|
40
|
+
color: 'transparent',
|
|
41
|
+
fillColor: 'transparent',
|
|
42
|
+
fillOpacity: 0
|
|
43
|
+
}
|
|
44
|
+
}).addTo(mapTemp);
|
|
45
|
+
mapTemp.fitBounds(geoJSONLayer.getBounds());
|
|
46
|
+
}
|
|
47
|
+
mapTemp.on('zoomend', function () {
|
|
48
|
+
setMapZoomLevel(mapTemp.getZoom());
|
|
49
|
+
});
|
|
50
|
+
setMap(mapTemp);
|
|
51
|
+
return function () {
|
|
52
|
+
if (!mapTemp) {
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
mapTemp.off();
|
|
56
|
+
mapTemp.remove();
|
|
57
|
+
|
|
58
|
+
// Clean up layers
|
|
59
|
+
if (heatLayerRef.current) {
|
|
60
|
+
heatLayerRef.current.off();
|
|
61
|
+
heatLayerRef.current.remove();
|
|
62
|
+
heatLayerRef.current = null;
|
|
63
|
+
}
|
|
64
|
+
if (pointsLayerRef.current) {
|
|
65
|
+
pointsLayerRef.current.clearLayers();
|
|
66
|
+
pointsLayerRef.current = null;
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
}, []);
|
|
70
|
+
|
|
71
|
+
// The heat map plugin expects an array of arrays with the lat, lng and intensity
|
|
72
|
+
// The intensity is the value of the point's total score (tos) divided by 100 because the intensity should be between 0 and 1
|
|
73
|
+
var calculateHeatPoints = (0, _react.useCallback)(function () {
|
|
74
|
+
return points.map(function (point) {
|
|
75
|
+
var intensityValue = point[filteredUseCaseCode];
|
|
76
|
+
if (typeof intensityValue === 'number' && !isNaN(intensityValue)) {
|
|
77
|
+
var intensity = intensityValue / 100;
|
|
78
|
+
return [point.lat, point.lng, intensity];
|
|
79
|
+
}
|
|
80
|
+
return null; // Exclude invalid points
|
|
81
|
+
}).filter(Boolean); // Remove null values
|
|
82
|
+
}, [points, filteredUseCaseCode]);
|
|
83
|
+
(0, _react.useEffect)(function () {
|
|
84
|
+
if (!map || !points) {
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
if (!heatLayerRef.current) {
|
|
88
|
+
heatLayerRef.current = _leaflet.default.heatLayer([], {
|
|
89
|
+
radius: 25,
|
|
90
|
+
blur: 15,
|
|
91
|
+
maxZoom: 15
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
if (!pointsLayerRef.current) {
|
|
95
|
+
pointsLayerRef.current = _leaflet.default.layerGroup();
|
|
96
|
+
}
|
|
97
|
+
if (mapZoomLevel <= 15) {
|
|
98
|
+
if (!map.hasLayer(heatLayerRef.current)) {
|
|
99
|
+
map.addLayer(heatLayerRef.current);
|
|
100
|
+
}
|
|
101
|
+
heatLayerRef.current.setLatLngs(calculateHeatPoints());
|
|
102
|
+
if (map.hasLayer(pointsLayerRef.current)) {
|
|
103
|
+
map.removeLayer(pointsLayerRef.current);
|
|
104
|
+
}
|
|
105
|
+
} else {
|
|
106
|
+
if (!pointsLayerRef.current.getLayers().length) {
|
|
107
|
+
points.forEach(function (point) {
|
|
108
|
+
var _pointsLayerRef$curre;
|
|
109
|
+
var icon = (0, _PointIcon.getPointIconByType)('Groups::Factory', point === null || point === void 0 ? void 0 : point.id.toString(), '', false, true);
|
|
110
|
+
var marker = _leaflet.default.marker([point.lat, point.lng], {
|
|
111
|
+
icon: icon
|
|
112
|
+
});
|
|
113
|
+
marker.on('click', function () {
|
|
114
|
+
if (onMarkerClick) {
|
|
115
|
+
onMarkerClick(point.id);
|
|
116
|
+
}
|
|
117
|
+
});
|
|
118
|
+
(_pointsLayerRef$curre = pointsLayerRef.current) === null || _pointsLayerRef$curre === void 0 ? void 0 : _pointsLayerRef$curre.addLayer(marker);
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
if (!map.hasLayer(pointsLayerRef.current)) {
|
|
122
|
+
map.addLayer(pointsLayerRef.current);
|
|
123
|
+
}
|
|
124
|
+
if (map.hasLayer(heatLayerRef.current)) {
|
|
125
|
+
map.removeLayer(heatLayerRef.current);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}, [points, map, mapZoomLevel, filteredUseCaseCode, calculateHeatPoints]);
|
|
129
|
+
return map;
|
|
130
|
+
};
|
|
131
|
+
exports.useMap = useMap;
|
|
132
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbGVhZmxldCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX1BvaW50SWNvbiIsIl90aGVtZSIsIl9NYXBVdGlscyIsInVzZU1hcCIsIm1hcFJlZiIsInBvaW50cyIsImZpbHRlcmVkVXNlQ2FzZUNvZGUiLCJwb2x5Z29uIiwib25NYXJrZXJDbGljayIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsImRlZmF1bHQiLCJtYXAiLCJzZXRNYXAiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsIm1hcFpvb21MZXZlbCIsInNldE1hcFpvb21MZXZlbCIsImhlYXRMYXllclJlZiIsInVzZVJlZiIsInBvaW50c0xheWVyUmVmIiwidXNlRWZmZWN0IiwiY3VycmVudCIsIm1hcFR5cGVzIiwiYmFzZU1hcHMiLCJsZWFmbGV0TWFwIiwibWFwRGVmYXVsdCIsInNhdGVsbGl0ZSIsIm1hcFRlbXAiLCJMIiwiT2JqZWN0IiwidmFsdWVzIiwiYWRkVG8iLCJjb250cm9sIiwibGF5ZXJzIiwicG9zaXRpb24iLCJsZW5ndGgiLCJ1bmRlZmluZWQiLCJnZW9KU09OTGF5ZXIiLCJnZW9KU09OIiwic3R5bGUiLCJjb2xvciIsImZpbGxDb2xvciIsImZpbGxPcGFjaXR5IiwiZml0Qm91bmRzIiwiZ2V0Qm91bmRzIiwib24iLCJnZXRab29tIiwib2ZmIiwicmVtb3ZlIiwiY2xlYXJMYXllcnMiLCJjYWxjdWxhdGVIZWF0UG9pbnRzIiwidXNlQ2FsbGJhY2siLCJwb2ludCIsImludGVuc2l0eVZhbHVlIiwiaXNOYU4iLCJpbnRlbnNpdHkiLCJsYXQiLCJsbmciLCJmaWx0ZXIiLCJCb29sZWFuIiwiaGVhdExheWVyIiwicmFkaXVzIiwiYmx1ciIsIm1heFpvb20iLCJsYXllckdyb3VwIiwiaGFzTGF5ZXIiLCJhZGRMYXllciIsInNldExhdExuZ3MiLCJyZW1vdmVMYXllciIsImdldExheWVycyIsImZvckVhY2giLCJfcG9pbnRzTGF5ZXJSZWYkY3VycmUiLCJpY29uIiwiZ2V0UG9pbnRJY29uQnlUeXBlIiwiaWQiLCJ0b1N0cmluZyIsIm1hcmtlciIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcGFnZXMvUG9sbHV0aW9uUmlza0Fzc2Vzc21lbnQvdXNlTWFwLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTCBmcm9tICdsZWFmbGV0JztcbmltcG9ydCBSZWFjdCwgeyB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgZ2V0UG9pbnRJY29uQnlUeXBlIH0gZnJvbSAnc3JjL1dpZGdldHMvTWFwL3BvaW50cy9Qb2ludEljb24nO1xuaW1wb3J0IHsgSUdlb1BvaW50IH0gZnJvbSAnc3JjL3N0b3JlL3BvaW50cy9tb2RlbHMvSUdlb1BvaW50JztcbmltcG9ydCB7IGxlYWZsZXRNYXAgfSBmcm9tICdzcmMvc3R5bGVzL3RoZW1lL3RoZW1lJztcbmltcG9ydCB7IGJhc2VNYXBzIH0gZnJvbSAnc3JjL1dpZGdldHMvTWFwL01hcFV0aWxzJztcblxuZXhwb3J0IGNvbnN0IHVzZU1hcCA9IChcbiAgbWFwUmVmOiBSZWFjdC5SZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQ+LFxuICBwb2ludHM6IElHZW9Qb2ludFtdLFxuICBmaWx0ZXJlZFVzZUNhc2VDb2RlOiBzdHJpbmcsXG4gIHBvbHlnb24/OiBhbnksXG4gIG9uTWFya2VyQ2xpY2s/OiAoaWQ6IG51bWJlcikgPT4gdm9pZCxcbik6IEwuTWFwIHwgdW5kZWZpbmVkID0+IHtcbiAgY29uc3QgW21hcCwgc2V0TWFwXSA9IHVzZVN0YXRlPEwuTWFwPigpO1xuICBjb25zdCBbbWFwWm9vbUxldmVsLCBzZXRNYXBab29tTGV2ZWxdID0gdXNlU3RhdGUoMTUpO1xuICBjb25zdCBoZWF0TGF5ZXJSZWYgPSB1c2VSZWY8TC5IZWF0TGF5ZXI+KCk7XG4gIGNvbnN0IHBvaW50c0xheWVyUmVmID0gdXNlUmVmPEwuTGF5ZXJHcm91cD4oKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghbWFwUmVmLmN1cnJlbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBtYXBUeXBlcyA9IGJhc2VNYXBzKGxlYWZsZXRNYXAubWFwRGVmYXVsdCwgbGVhZmxldE1hcC5zYXRlbGxpdGUpO1xuICAgIGNvbnN0IG1hcFRlbXAgPSBMLm1hcChtYXBSZWYuY3VycmVudCwge30pO1xuXG4gICAgT2JqZWN0LnZhbHVlcyhtYXBUeXBlcylbMF0uYWRkVG8obWFwVGVtcCk7XG5cbiAgICBMLmNvbnRyb2wubGF5ZXJzKG1hcFR5cGVzLCB7fSwgeyBwb3NpdGlvbjogJ3RvcHJpZ2h0JyB9KS5hZGRUbyhtYXBUZW1wKTtcblxuICAgIC8vIFRoZSBjb2xvcnMgYXJlIHRyYW5zcGFyZW50IHNvIHRoZSBtYXAgd2lsbCBmaXQgdGhlIHBvbHlnb24gYm91bmRzIGJ1dCBpdCB3b24ndCBiZSB2aXNpYmxlXG4gICAgaWYgKHBvbHlnb24gJiYgcG9seWdvbi5sZW5ndGggPT09IHVuZGVmaW5lZCkge1xuICAgICAgY29uc3QgZ2VvSlNPTkxheWVyID0gTC5nZW9KU09OKHBvbHlnb24sIHtcbiAgICAgICAgc3R5bGU6IHtcbiAgICAgICAgICBjb2xvcjogJ3RyYW5zcGFyZW50JyxcbiAgICAgICAgICBmaWxsQ29sb3I6ICd0cmFuc3BhcmVudCcsXG4gICAgICAgICAgZmlsbE9wYWNpdHk6IDAsXG4gICAgICAgIH0sXG4gICAgICB9KS5hZGRUbyhtYXBUZW1wKTtcbiAgICAgIG1hcFRlbXAuZml0Qm91bmRzKGdlb0pTT05MYXllci5nZXRCb3VuZHMoKSk7XG4gICAgfVxuXG4gICAgbWFwVGVtcC5vbignem9vbWVuZCcsICgpID0+IHtcbiAgICAgIHNldE1hcFpvb21MZXZlbChtYXBUZW1wLmdldFpvb20oKSk7XG4gICAgfSk7XG5cbiAgICBzZXRNYXAobWFwVGVtcCk7XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgaWYgKCFtYXBUZW1wKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIG1hcFRlbXAub2ZmKCk7XG4gICAgICBtYXBUZW1wLnJlbW92ZSgpO1xuXG4gICAgICAvLyBDbGVhbiB1cCBsYXllcnNcbiAgICAgIGlmIChoZWF0TGF5ZXJSZWYuY3VycmVudCkge1xuICAgICAgICBoZWF0TGF5ZXJSZWYuY3VycmVudC5vZmYoKTtcbiAgICAgICAgaGVhdExheWVyUmVmLmN1cnJlbnQucmVtb3ZlKCk7XG4gICAgICAgIGhlYXRMYXllclJlZi5jdXJyZW50ID0gbnVsbDtcbiAgICAgIH1cbiAgICAgIGlmIChwb2ludHNMYXllclJlZi5jdXJyZW50KSB7XG4gICAgICAgIHBvaW50c0xheWVyUmVmLmN1cnJlbnQuY2xlYXJMYXllcnMoKTtcbiAgICAgICAgcG9pbnRzTGF5ZXJSZWYuY3VycmVudCA9IG51bGw7XG4gICAgICB9XG4gICAgfTtcbiAgfSwgW10pO1xuXG4gIC8vIFRoZSBoZWF0IG1hcCBwbHVnaW4gZXhwZWN0cyBhbiBhcnJheSBvZiBhcnJheXMgd2l0aCB0aGUgbGF0LCBsbmcgYW5kIGludGVuc2l0eVxuICAvLyBUaGUgaW50ZW5zaXR5IGlzIHRoZSB2YWx1ZSBvZiB0aGUgcG9pbnQncyB0b3RhbCBzY29yZSAodG9zKSBkaXZpZGVkIGJ5IDEwMCBiZWNhdXNlIHRoZSBpbnRlbnNpdHkgc2hvdWxkIGJlIGJldHdlZW4gMCBhbmQgMVxuICBjb25zdCBjYWxjdWxhdGVIZWF0UG9pbnRzID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHJldHVybiBwb2ludHNcbiAgICAgIC5tYXAoKHBvaW50KSA9PiB7XG4gICAgICAgIGNvbnN0IGludGVuc2l0eVZhbHVlID0gcG9pbnRbZmlsdGVyZWRVc2VDYXNlQ29kZV07XG4gICAgICAgIGlmICh0eXBlb2YgaW50ZW5zaXR5VmFsdWUgPT09ICdudW1iZXInICYmICFpc05hTihpbnRlbnNpdHlWYWx1ZSkpIHtcbiAgICAgICAgICBjb25zdCBpbnRlbnNpdHkgPSBpbnRlbnNpdHlWYWx1ZSAvIDEwMDtcbiAgICAgICAgICByZXR1cm4gW3BvaW50LmxhdCwgcG9pbnQubG5nLCBpbnRlbnNpdHldO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsOyAvLyBFeGNsdWRlIGludmFsaWQgcG9pbnRzXG4gICAgICB9KVxuICAgICAgLmZpbHRlcihCb29sZWFuKTsgLy8gUmVtb3ZlIG51bGwgdmFsdWVzXG4gIH0sIFtwb2ludHMsIGZpbHRlcmVkVXNlQ2FzZUNvZGVdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghbWFwIHx8ICFwb2ludHMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIWhlYXRMYXllclJlZi5jdXJyZW50KSB7XG4gICAgICBoZWF0TGF5ZXJSZWYuY3VycmVudCA9IEwuaGVhdExheWVyKFtdLCB7XG4gICAgICAgIHJhZGl1czogMjUsXG4gICAgICAgIGJsdXI6IDE1LFxuICAgICAgICBtYXhab29tOiAxNSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmICghcG9pbnRzTGF5ZXJSZWYuY3VycmVudCkge1xuICAgICAgcG9pbnRzTGF5ZXJSZWYuY3VycmVudCA9IEwubGF5ZXJHcm91cCgpO1xuICAgIH1cblxuICAgIGlmIChtYXBab29tTGV2ZWwgPD0gMTUpIHtcbiAgICAgIGlmICghbWFwLmhhc0xheWVyKGhlYXRMYXllclJlZi5jdXJyZW50KSkge1xuICAgICAgICBtYXAuYWRkTGF5ZXIoaGVhdExheWVyUmVmLmN1cnJlbnQpO1xuICAgICAgfVxuXG4gICAgICBoZWF0TGF5ZXJSZWYuY3VycmVudC5zZXRMYXRMbmdzKGNhbGN1bGF0ZUhlYXRQb2ludHMoKSk7XG5cbiAgICAgIGlmIChtYXAuaGFzTGF5ZXIocG9pbnRzTGF5ZXJSZWYuY3VycmVudCkpIHtcbiAgICAgICAgbWFwLnJlbW92ZUxheWVyKHBvaW50c0xheWVyUmVmLmN1cnJlbnQpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoIXBvaW50c0xheWVyUmVmLmN1cnJlbnQuZ2V0TGF5ZXJzKCkubGVuZ3RoKSB7XG4gICAgICAgIHBvaW50cy5mb3JFYWNoKChwb2ludCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGljb24gPSBnZXRQb2ludEljb25CeVR5cGUoXG4gICAgICAgICAgICAnR3JvdXBzOjpGYWN0b3J5JyxcbiAgICAgICAgICAgIHBvaW50Py5pZC50b1N0cmluZygpLFxuICAgICAgICAgICAgJycsXG4gICAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICAgIHRydWUsXG4gICAgICAgICAgKTtcbiAgICAgICAgICBjb25zdCBtYXJrZXIgPSBMLm1hcmtlcihbcG9pbnQubGF0LCBwb2ludC5sbmddLCB7XG4gICAgICAgICAgICBpY29uLFxuICAgICAgICAgIH0pO1xuICAgICAgICAgIG1hcmtlci5vbignY2xpY2snLCAoKSA9PiB7XG4gICAgICAgICAgICBpZiAob25NYXJrZXJDbGljaykge1xuICAgICAgICAgICAgICBvbk1hcmtlckNsaWNrKHBvaW50LmlkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgICBwb2ludHNMYXllclJlZi5jdXJyZW50Py5hZGRMYXllcihtYXJrZXIpO1xuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgaWYgKCFtYXAuaGFzTGF5ZXIocG9pbnRzTGF5ZXJSZWYuY3VycmVudCkpIHtcbiAgICAgICAgbWFwLmFkZExheWVyKHBvaW50c0xheWVyUmVmLmN1cnJlbnQpO1xuICAgICAgfVxuXG4gICAgICBpZiAobWFwLmhhc0xheWVyKGhlYXRMYXllclJlZi5jdXJyZW50KSkge1xuICAgICAgICBtYXAucmVtb3ZlTGF5ZXIoaGVhdExheWVyUmVmLmN1cnJlbnQpO1xuICAgICAgfVxuICAgIH1cbiAgfSwgW3BvaW50cywgbWFwLCBtYXBab29tTGV2ZWwsIGZpbHRlcmVkVXNlQ2FzZUNvZGUsIGNhbGN1bGF0ZUhlYXRQb2ludHNd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
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"id": "additional_opex",
|
|
4
|
+
"name": "additional_opex",
|
|
5
|
+
"icon": "wwtp_cost",
|
|
6
|
+
"code": "ao"
|
|
7
|
+
},
|
|
8
|
+
{
|
|
9
|
+
"id": "agriculture_irrigation",
|
|
10
|
+
"name": "agriculture_irrigation",
|
|
11
|
+
"icon": "shorten_collection_lifetime",
|
|
12
|
+
"code": "ai"
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"id": "biosolids_land_application",
|
|
16
|
+
"name": "biosolids_land_application",
|
|
17
|
+
"icon": "shorten_collection_lifetime",
|
|
18
|
+
"code": "bl"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"id": "pipeline_corrosion",
|
|
22
|
+
"name": "pipeline_corrosion",
|
|
23
|
+
"icon": "pipes_pumps_blockage",
|
|
24
|
+
"code": "pc"
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"id": "pipeline_blockages",
|
|
28
|
+
"name": "pipeline_blockages",
|
|
29
|
+
"icon": "pipes_pumps_blockage",
|
|
30
|
+
"code": "pb"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"id": "process_interference",
|
|
34
|
+
"name": "process_interference",
|
|
35
|
+
"icon": "shorten_collection_lifetime",
|
|
36
|
+
"code": "pi"
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"id": "sludge_for_landfill",
|
|
40
|
+
"name": "sludge_for_landfill",
|
|
41
|
+
"icon": "sludge_treatment",
|
|
42
|
+
"code": "sl"
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"id": "surface_water_pollution",
|
|
46
|
+
"name": "surface_water_pollution",
|
|
47
|
+
"icon": "water_reuse",
|
|
48
|
+
"code": "sw"
|
|
49
|
+
}
|
|
50
|
+
]
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3N0b3JlL3BvaW50cy9tb2RlbHMvSUdlb1BvaW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgSUdlb1BvaW50IHtcbiAgaWQ6IG51bWJlcjtcbiAgbGF0OiBudW1iZXI7XG4gIGxuZzogbnVtYmVyO1xuICB0b3M6IG51bWJlcjtcbiAgdG9jOiBudW1iZXI7XG59XG4iXSwibWFwcGluZ3MiOiIifQ==
|