@kando-env/kando-ui 1.2.467-alpha.3 → 1.2.467-alpha.5
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/MostPolluting/Factories/factoriesResponse.interface.js +1 -1
- package/lib/i18n/en.json +4 -1
- package/lib/macros/getVersion.js +1 -1
- package/lib/pages/EventsPage/events/events_list/Filter/FilterContainer.js +2 -2
- package/lib/pages/EventsPage/events/events_list/Filter/FilterItem.js +2 -1
- package/lib/pages/NetworkPage/NetworkPage.js +48 -0
- package/lib/pages/SamplingsPage/SamplingProperties/SamplingProperties.js +4 -2
- package/lib/ui-kit/HierarchyGraph/AutoFitTree.js +27 -10
- package/lib/ui-kit/HierarchyGraph/HierarchyGraph.js +18 -9
- package/lib/ui-kit/HierarchyGraph/NetworkNode.js +37 -0
- package/lib/ui-kit/HierarchyGraph/style.scss +4 -0
- package/package.json +1 -1
|
@@ -24,7 +24,11 @@ var _useApiWithDashboardQuery = require("../../hooks/useApiWithDashboardQuery");
|
|
|
24
24
|
var _FilterContainer = _interopRequireDefault(require("../../pages/EventsPage/events/events_list/Filter/FilterContainer"));
|
|
25
25
|
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
26
|
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
|
-
var HierarchyGraph = function HierarchyGraph() {
|
|
27
|
+
var HierarchyGraph = function HierarchyGraph(_ref) {
|
|
28
|
+
var _ref$show = _ref.show,
|
|
29
|
+
show = _ref$show === void 0 ? false : _ref$show,
|
|
30
|
+
_ref$filterType = _ref.filterType,
|
|
31
|
+
filterType = _ref$filterType === void 0 ? 'HierarchyFilter' : _ref$filterType;
|
|
28
32
|
var searchQuery = (0, _useQueryURL.default)();
|
|
29
33
|
var ReduxState = (0, _reactRedux.useSelector)(function (state) {
|
|
30
34
|
return state;
|
|
@@ -56,7 +60,7 @@ var HierarchyGraph = function HierarchyGraph() {
|
|
|
56
60
|
_useState12 = (0, _slicedToArray2.default)(_useState11, 2),
|
|
57
61
|
exceededSiteIds = _useState12[0],
|
|
58
62
|
setExceededSiteIds = _useState12[1];
|
|
59
|
-
var isHierarchyTab = searchQuery.get('view') === 'hierarchy';
|
|
63
|
+
var isHierarchyTab = searchQuery.get('view') === 'hierarchy' || show;
|
|
60
64
|
var points_data = ReduxState.points_data,
|
|
61
65
|
edges_data = ReduxState.edges_data,
|
|
62
66
|
_ReduxState$global_da = ReduxState.global_data,
|
|
@@ -75,7 +79,8 @@ var HierarchyGraph = function HierarchyGraph() {
|
|
|
75
79
|
}, []);
|
|
76
80
|
var paramsAll = (0, _react.useMemo)(function () {
|
|
77
81
|
return {
|
|
78
|
-
type: 'All'
|
|
82
|
+
type: 'All',
|
|
83
|
+
is_network: 'NetworkFilter' === filterType ? 'true' : 'false'
|
|
79
84
|
};
|
|
80
85
|
}, []);
|
|
81
86
|
|
|
@@ -99,11 +104,15 @@ var HierarchyGraph = function HierarchyGraph() {
|
|
|
99
104
|
pollution = _step$value.pollution,
|
|
100
105
|
sector_name = _step$value.sector_name,
|
|
101
106
|
sector_id = _step$value.sector_id,
|
|
102
|
-
contributor_percents = _step$value.contributor_percents
|
|
107
|
+
contributor_percents = _step$value.contributor_percents,
|
|
108
|
+
risk = _step$value.risk,
|
|
109
|
+
cost = _step$value.cost;
|
|
103
110
|
var extraData = {
|
|
104
111
|
sector_name: sector_name,
|
|
105
112
|
contributor_percents: contributor_percents,
|
|
106
|
-
sector_id: sector_id
|
|
113
|
+
sector_id: sector_id,
|
|
114
|
+
risk: risk,
|
|
115
|
+
cost: cost
|
|
107
116
|
};
|
|
108
117
|
if (pollution === null || pollution === void 0 ? void 0 : pollution.type_distribution) extraData['pollution'] = pollution.type_distribution;
|
|
109
118
|
m.set(site_id, extraData);
|
|
@@ -206,7 +215,7 @@ var HierarchyGraph = function HierarchyGraph() {
|
|
|
206
215
|
return;
|
|
207
216
|
}
|
|
208
217
|
var fetchExceededSites = /*#__PURE__*/function () {
|
|
209
|
-
var
|
|
218
|
+
var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
|
|
210
219
|
var response, _yield$response$json, data, siteIds;
|
|
211
220
|
return _regenerator.default.wrap(function _callee$(_context) {
|
|
212
221
|
while (1) {
|
|
@@ -244,7 +253,7 @@ var HierarchyGraph = function HierarchyGraph() {
|
|
|
244
253
|
}, _callee, null, [[0, 12]]);
|
|
245
254
|
}));
|
|
246
255
|
return function fetchExceededSites() {
|
|
247
|
-
return
|
|
256
|
+
return _ref2.apply(this, arguments);
|
|
248
257
|
};
|
|
249
258
|
}();
|
|
250
259
|
fetchExceededSites();
|
|
@@ -262,7 +271,7 @@ var HierarchyGraph = function HierarchyGraph() {
|
|
|
262
271
|
className: 'hierarchy-graph-page'
|
|
263
272
|
}, !points_data.isFetching && treeKey > -1 && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_FilterContainer.default, {
|
|
264
273
|
filterPopupOpen: true,
|
|
265
|
-
fetchType:
|
|
274
|
+
fetchType: filterType,
|
|
266
275
|
applyLogic: updateFilter,
|
|
267
276
|
custom_points: filterPoints,
|
|
268
277
|
resetFilter: resetFilter
|
|
@@ -301,4 +310,4 @@ var HierarchyGraph = function HierarchyGraph() {
|
|
|
301
310
|
};
|
|
302
311
|
var _default = HierarchyGraph;
|
|
303
312
|
exports.default = _default;
|
|
304
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfdXNlUXVlcnlVUkwiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX3V0aWxzIiwiX3JlYWN0UmVkdXgiLCJfQXV0b0ZpdFRyZWUiLCJfcmVhY3RCb290c3RyYXAiLCJfTG9hZGVyIiwiX1JpZ2h0UGFuZWwiLCJfdXJscyIsIl91c2VBcGlXaXRoRGFzaGJvYXJkUXVlcnkiLCJfRmlsdGVyQ29udGFpbmVyIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwibm9kZUludGVyb3AiLCJXZWFrTWFwIiwiY2FjaGVCYWJlbEludGVyb3AiLCJjYWNoZU5vZGVJbnRlcm9wIiwib2JqIiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJkZWZhdWx0IiwiY2FjaGUiLCJoYXMiLCJnZXQiLCJuZXdPYmoiLCJoYXNQcm9wZXJ0eURlc2NyaXB0b3IiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlc2MiLCJzZXQiLCJIaWVyYXJjaHlHcmFwaCIsInNlYXJjaFF1ZXJ5IiwidXNlUXVlcnlVUkwiLCJSZWR1eFN0YXRlIiwidXNlU2VsZWN0b3IiLCJzdGF0ZSIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsInRyZWVLZXkiLCJzZXRUcmVlS2V5IiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJzZWxlY3RlZFBvaW50Iiwic2V0U2VsZWN0ZWRQb2ludCIsIl91c2VTdGF0ZTUiLCJfdXNlU3RhdGU2Iiwic2hvd1JpZ2h0UGFuZWwiLCJzZXRTaG93UmlnaHRQYW5lbCIsIl91c2VTdGF0ZTciLCJfdXNlU3RhdGU4IiwiZmlsdGVyT3B0aW9ucyIsInNldEZpbHRlck9wdGlvbnMiLCJfdXNlU3RhdGU5IiwiX3VzZVN0YXRlMTAiLCJmaWx0ZXJQYXJhbWV0ZXJJZHMiLCJzZXRGaWx0ZXJQYXJhbWV0ZXJJZHMiLCJfdXNlU3RhdGUxMSIsInNob3VsZEZldGNoIiwic2l0ZUlkcyIsIl91c2VTdGF0ZTEyIiwiZXhjZWVkZWRTaXRlSWRzIiwic2V0RXhjZWVkZWRTaXRlSWRzIiwiaXNIaWVyYXJjaHlUYWIiLCJwb2ludHNfZGF0YSIsImVkZ2VzX2RhdGEiLCJfUmVkdXhTdGF0ZSRnbG9iYWxfZGEiLCJnbG9iYWxfZGF0YSIsIndhdGVyQXV0aG9yaXR5TmFtZSIsIndhdGVyQXV0aG9yaXR5SWQiLCJvbk5vZGVDbGljayIsIm5vZGVEYXRhIiwiaXRlbXMiLCJmaW5kIiwicCIsImlkIiwiYXR0cmlidXRlcyIsInBvaW50X2lkIiwiZmFjdG9yaWVzRW5kUG9pbnQiLCJ1c2VNZW1vIiwidXJscyIsImRhc2hib2FyZCIsIlV0aWxpdHkiLCJmYWN0b3JpZXMiLCJwYXJhbXNBbGwiLCJ0eXBlIiwiX3VzZUFwaVdpdGhEYXNoYm9hcmRRIiwidXNlQXBpV2l0aERhc2hib2FyZFF1ZXJ5IiwiX3VzZUFwaVdpdGhEYXNoYm9hcmRRMiIsInJlc3BvbnNlU2l0ZXMiLCJpc0xvYWRpbmdTaXRlcyIsImVycm9yU2l0ZXMiLCJwb2xsdXRpb25CeVNpdGVJZCIsIm0iLCJNYXAiLCJkYXRhIiwiX2l0ZXJhdG9yIiwiX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXIyIiwiX3N0ZXAiLCJzIiwibiIsImRvbmUiLCJfc3RlcCR2YWx1ZSIsInZhbHVlIiwic2l0ZV9pZCIsInBvbGx1dGlvbiIsInNlY3Rvcl9uYW1lIiwic2VjdG9yX2lkIiwiY29udHJpYnV0b3JfcGVyY2VudHMiLCJleHRyYURhdGEiLCJ0eXBlX2Rpc3RyaWJ1dGlvbiIsImVyciIsImUiLCJmIiwiZGVjb3JhdGVkUG9pbnRzQnlJZCIsImJhc2UiLCJtYXBCeUlkIiwiY29weSIsIl9pIiwiX09iamVjdCRrZXlzIiwia2V5cyIsImxlbmd0aCIsIm51bUlkIiwiTnVtYmVyIiwiX29iamVjdFNwcmVhZDIiLCJlZGdlc1dpdGhEZXZpY2UiLCJwb2ludHNXaXRoRGV2aWNlIiwiZmlsdGVyIiwiaGFzX2RldmljZSIsImVkZ2UiLCJzb3VyY2VfcG9pbnRfaWQiLCJkZXNjZW5kYW50c19oYXNfZGV2aWNlIiwiZmlsdGVyUG9pbnRzIiwicG9pbnRzT3B0aW9uIiwicG9pbnRMaXN0IiwiZm9yRWFjaCIsInNvdXJjZVBvaW50IiwidGFyZ2V0UG9pbnQiLCJ0YXJnZXRfcG9pbnRfaWQiLCJuYW1lIiwiZ3JvdXAiLCJ2YWx1ZXMiLCJ0cmVlRGF0YSIsImJ1aWxkVHJlZSIsInVwZGF0ZUZpbHRlciIsImFwcGxpZWRGaWx0ZXIiLCJzZWxlY3RlZEZpbHRlcnMiLCJmaWx0ZXJfaXRlbXMiLCJpdGVtIiwic2VsZWN0ZWRfb3B0aW9ucyIsInNhbXBsaW5nUGFyYW1ldGVycyIsInVzZUVmZmVjdCIsImZldGNoRXhjZWVkZWRTaXRlcyIsIl9yZWYiLCJfYXN5bmNUb0dlbmVyYXRvcjIiLCJfcmVnZW5lcmF0b3IiLCJtYXJrIiwiX2NhbGxlZSIsInJlc3BvbnNlIiwiX3lpZWxkJHJlc3BvbnNlJGpzb24iLCJ3cmFwIiwiX2NhbGxlZSQiLCJfY29udGV4dCIsInByZXYiLCJuZXh0IiwiZmV0Y2giLCJwYXJhbWV0ZXJJZHMiLCJoaWVyYXJjaHkiLCJleGNlZWRhbmNlQnlQYXJhbWV0ZXIiLCJ1cmwiLCJzZW50IiwianNvbiIsInNpdGVfaWRzIiwidDAiLCJjb25zb2xlIiwiZXJyb3IiLCJzdG9wIiwiYXBwbHkiLCJhcmd1bWVudHMiLCJyZXNldEZpbHRlciIsImRlZmF1bHRGaWx0ZXIiLCJjcmVhdGVFbGVtZW50IiwiY2xhc3NOYW1lIiwiaXNGZXRjaGluZyIsIkZyYWdtZW50IiwiZmlsdGVyUG9wdXBPcGVuIiwiZmV0Y2hUeXBlIiwiYXBwbHlMb2dpYyIsImN1c3RvbV9wb2ludHMiLCJzdHlsZSIsIm1hcmdpbklubGluZVN0YXJ0IiwiY29uY2F0IiwiQ29udGFpbmVyIiwiZmx1aWQiLCJvdmVyZmxvdyIsIlJvdyIsInNtIiwiQ29sIiwiaGVpZ2h0IiwiTG9hZGVyIiwiaW5pdGlhbERlcHRoIiwicG9pbnQiLCJvbkNsb3NlIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3VpLWtpdC9IaWVyYXJjaHlHcmFwaC9IaWVyYXJjaHlHcmFwaC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZU1lbW8gfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB1c2VRdWVyeVVSTCBmcm9tICcuLi8uLi9ob29rcy91c2VRdWVyeVVSTCc7XG5pbXBvcnQgeyBidWlsZFRyZWUsIG1hcEJ5SWQgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IHVzZVNlbGVjdG9yIH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuaW1wb3J0IHsgdXNlU3RhdGUsIHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBBdXRvRml0VHJlZSBmcm9tICcuL0F1dG9GaXRUcmVlJztcbmltcG9ydCB7IENvbnRhaW5lciwgUm93LCBDb2wgfSBmcm9tICdyZWFjdC1ib290c3RyYXAnO1xuaW1wb3J0IHsgTG9hZGVyIH0gZnJvbSAnLi4vLi4vcGFnZXMvRGFzaGJvYXJkTWFwL0xvYWRlcic7XG5pbXBvcnQgUmlnaHRQYW5lbCBmcm9tICcuLi8uLi9wYWdlcy9PcGVyYXRpb25zUGFnZS9SaWdodFBhbmVsJztcbmltcG9ydCB7IHVybHMgfSBmcm9tICcuLi8uLi91dGlsaXRpZXMvdXJscyc7XG5pbXBvcnQgeyB1c2VBcGlXaXRoRGFzaGJvYXJkUXVlcnkgfSBmcm9tICcuLi8uLi9ob29rcy91c2VBcGlXaXRoRGFzaGJvYXJkUXVlcnknO1xuaW1wb3J0IHsgRmFjdG9yaWVzUmVzcG9uc2UgfSBmcm9tICcuLi8uLi9XaWRnZXRzL01vc3RQb2xsdXRpbmcvRmFjdG9yaWVzL2ZhY3Rvcmllc1Jlc3BvbnNlLmludGVyZmFjZSc7XG5pbXBvcnQgRmlsdGVyQ29udGFpbmVyIGZyb20gJy4uLy4uL3BhZ2VzL0V2ZW50c1BhZ2UvZXZlbnRzL2V2ZW50c19saXN0L0ZpbHRlci9GaWx0ZXJDb250YWluZXInO1xuXG5jb25zdCBIaWVyYXJjaHlHcmFwaCA9ICgpID0+IHtcbiAgY29uc3Qgc2VhcmNoUXVlcnkgPSB1c2VRdWVyeVVSTCgpO1xuICBjb25zdCBSZWR1eFN0YXRlID0gdXNlU2VsZWN0b3IoKHN0YXRlKSA9PiBzdGF0ZSk7XG4gIGNvbnN0IFt0cmVlS2V5LCBzZXRUcmVlS2V5XSA9IHVzZVN0YXRlKDApO1xuICBjb25zdCBbc2VsZWN0ZWRQb2ludCwgc2V0U2VsZWN0ZWRQb2ludF0gPSB1c2VTdGF0ZShudWxsKTtcbiAgY29uc3QgW3Nob3dSaWdodFBhbmVsLCBzZXRTaG93UmlnaHRQYW5lbF0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IFtmaWx0ZXJPcHRpb25zLCBzZXRGaWx0ZXJPcHRpb25zXSA9IHVzZVN0YXRlKHt9KTtcbiAgY29uc3QgW2ZpbHRlclBhcmFtZXRlcklkcywgc2V0RmlsdGVyUGFyYW1ldGVySWRzXSA9IHVzZVN0YXRlKG51bGwpO1xuICBjb25zdCBbZXhjZWVkZWRTaXRlSWRzLCBzZXRFeGNlZWRlZFNpdGVJZHNdID0gdXNlU3RhdGUoe1xuICAgIHNob3VsZEZldGNoOiBmYWxzZSxcbiAgICBzaXRlSWRzOiBbXSxcbiAgfSk7XG4gIGNvbnN0IGlzSGllcmFyY2h5VGFiID0gc2VhcmNoUXVlcnkuZ2V0KCd2aWV3JykgPT09ICdoaWVyYXJjaHknO1xuICBjb25zdCB7XG4gICAgcG9pbnRzX2RhdGEsXG4gICAgZWRnZXNfZGF0YSxcbiAgICBnbG9iYWxfZGF0YTogeyB3YXRlckF1dGhvcml0eU5hbWUsIHdhdGVyQXV0aG9yaXR5SWQgfSxcbiAgfSA9IFJlZHV4U3RhdGU7XG5cbiAgY29uc3Qgb25Ob2RlQ2xpY2sgPSAobm9kZURhdGEpID0+IHtcbiAgICBzZXRTZWxlY3RlZFBvaW50KFxuICAgICAgcG9pbnRzX2RhdGEuaXRlbXMuZmluZCgocCkgPT4gcC5pZCA9PT0gbm9kZURhdGEuYXR0cmlidXRlcy5wb2ludF9pZCksXG4gICAgKTtcbiAgICBzZXRTaG93UmlnaHRQYW5lbCghc2hvd1JpZ2h0UGFuZWwpO1xuICB9O1xuXG4gIC8vIHN0YWJsZSBlbmRwb2ludHMvcGFyYW1zIOKchVxuICBjb25zdCBmYWN0b3JpZXNFbmRQb2ludCA9IHVzZU1lbW8oXG4gICAgKCkgPT4gdXJscygpLmRhc2hib2FyZC5VdGlsaXR5LmZhY3RvcmllcyxcbiAgICBbXSxcbiAgKTtcblxuICBjb25zdCBwYXJhbXNBbGwgPSB1c2VNZW1vKCgpID0+ICh7IHR5cGU6ICdBbGwnIH0pLCBbXSk7XG5cbiAgLy8gZmV0Y2hlc1xuICBjb25zdCBbcmVzcG9uc2VTaXRlcywgaXNMb2FkaW5nU2l0ZXMsIGVycm9yU2l0ZXNdID1cbiAgICB1c2VBcGlXaXRoRGFzaGJvYXJkUXVlcnk8RmFjdG9yaWVzUmVzcG9uc2U+KGZhY3Rvcmllc0VuZFBvaW50LCBwYXJhbXNBbGwpO1xuXG4gIC8vIDEpIEJ1aWxkIGEgcG9sbHV0aW9uIG1hcCBmcm9tIGJvdGggcmVzcG9uc2VzIChubyBzdGF0ZTsgcHVyZSBtZW1vKVxuICBjb25zdCBwb2xsdXRpb25CeVNpdGVJZCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IG0gPSBuZXcgTWFwPG51bWJlciwgYW55PigpO1xuICAgIGlmIChyZXNwb25zZVNpdGVzPy5kYXRhKSB7XG4gICAgICBmb3IgKGNvbnN0IHtcbiAgICAgICAgc2l0ZV9pZCxcbiAgICAgICAgcG9sbHV0aW9uLFxuICAgICAgICBzZWN0b3JfbmFtZSxcbiAgICAgICAgc2VjdG9yX2lkLFxuICAgICAgICBjb250cmlidXRvcl9wZXJjZW50cyxcbiAgICAgIH0gb2YgcmVzcG9uc2VTaXRlcy5kYXRhKSB7XG4gICAgICAgIGNvbnN0IGV4dHJhRGF0YSA9IHsgc2VjdG9yX25hbWUsIGNvbnRyaWJ1dG9yX3BlcmNlbnRzLCBzZWN0b3JfaWQgfTtcbiAgICAgICAgaWYgKHBvbGx1dGlvbj8udHlwZV9kaXN0cmlidXRpb24pXG4gICAgICAgICAgZXh0cmFEYXRhWydwb2xsdXRpb24nXSA9IHBvbGx1dGlvbi50eXBlX2Rpc3RyaWJ1dGlvbjtcbiAgICAgICAgbS5zZXQoc2l0ZV9pZCwgZXh0cmFEYXRhKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG07XG4gIH0sIFtyZXNwb25zZVNpdGVzPy5kYXRhXSk7XG5cbiAgLy8gMikgQ3JlYXRlIGEgU0FGRSBjb3B5IG9mIHBvaW50X21hcF9kYXRhIHdpdGggcG9sbHV0aW9uIG1lcmdlZCBpbiAobm8gbXV0YXRpb25zKVxuICBjb25zdCBkZWNvcmF0ZWRQb2ludHNCeUlkID0gdXNlTWVtbygoKSA9PiB7XG4gICAgLy8gbWFwQnlJZChwb2ludHNfZGF0YS5pdGVtcykgcmV0dXJucyBhIHBsYWluIG9iamVjdCBrZXllZCBieSBpZDsgY2xvbmUgaXRcbiAgICBjb25zdCBiYXNlID0gbWFwQnlJZChwb2ludHNfZGF0YS5pdGVtcyk7XG4gICAgY29uc3QgY29weTogUmVjb3JkPG51bWJlciwgYW55PiA9IHt9O1xuICAgIGZvciAoY29uc3QgaWQgb2YgT2JqZWN0LmtleXMoYmFzZSkpIHtcbiAgICAgIGNvbnN0IG51bUlkID0gTnVtYmVyKGlkKTtcbiAgICAgIGNvbnN0IHBvbGx1dGlvbiA9IHBvbGx1dGlvbkJ5U2l0ZUlkLmdldChudW1JZCk7XG4gICAgICAvLyBzaGFsbG93IGNsb25lIGVhY2ggcG9pbnQ7IGFkZCBwb2xsdXRpb24gaWYgZXhpc3RzXG4gICAgICBjb3B5W251bUlkXSA9IHBvbGx1dGlvblxuICAgICAgICA/IHsgLi4uYmFzZVtudW1JZF0sIC4uLnBvbGx1dGlvbiB9XG4gICAgICAgIDogeyAuLi5iYXNlW251bUlkXSB9O1xuICAgIH1cbiAgICByZXR1cm4gY29weTtcbiAgfSwgW3BvaW50c19kYXRhLml0ZW1zLCBwb2xsdXRpb25CeVNpdGVJZF0pO1xuXG4gIC8vIDMpIENvbXB1dGUgZWRnZXNXaXRoRGV2aWNlIHNhZmVseS9tZW1vaXplZCAobm8gZXh0cmEgcmVuZGVycylcbiAgY29uc3QgZWRnZXNXaXRoRGV2aWNlID0gdXNlTWVtbygoKSA9PiB7XG4gICAgY29uc3QgcG9pbnRzV2l0aERldmljZSA9IG1hcEJ5SWQoXG4gICAgICBwb2ludHNfZGF0YS5pdGVtcy5maWx0ZXIoKHApID0+IHAuaGFzX2RldmljZSksXG4gICAgKTtcbiAgICByZXR1cm4gZWRnZXNfZGF0YS5pdGVtcy5maWx0ZXIoXG4gICAgICAoZWRnZSkgPT5cbiAgICAgICAgcG9pbnRzV2l0aERldmljZVtlZGdlLnNvdXJjZV9wb2ludF9pZF0gfHwgZWRnZS5kZXNjZW5kYW50c19oYXNfZGV2aWNlLFxuICAgICk7XG4gIH0sIFtwb2ludHNfZGF0YS5pdGVtcywgZWRnZXNfZGF0YS5pdGVtc10pO1xuXG4gIGNvbnN0IGZpbHRlclBvaW50cyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IHBvaW50c09wdGlvbiA9IHt9O1xuICAgIGNvbnN0IHBvaW50TGlzdCA9IHBvaW50c19kYXRhLml0ZW1zO1xuICAgIGVkZ2VzV2l0aERldmljZS5mb3JFYWNoKChlZGdlKSA9PiB7XG4gICAgICBjb25zdCBzb3VyY2VQb2ludCA9IHBvaW50TGlzdC5maW5kKChwKSA9PiBwLmlkID09PSBlZGdlLnNvdXJjZV9wb2ludF9pZCk7XG4gICAgICBjb25zdCB0YXJnZXRQb2ludCA9IHBvaW50TGlzdC5maW5kKChwKSA9PiBwLmlkID09PSBlZGdlLnRhcmdldF9wb2ludF9pZCk7XG4gICAgICBpZiAoc291cmNlUG9pbnQpXG4gICAgICAgIHBvaW50c09wdGlvbltzb3VyY2VQb2ludC5pZF0gPSB7XG4gICAgICAgICAgaWQ6IHNvdXJjZVBvaW50LmlkLFxuICAgICAgICAgIG5hbWU6IHNvdXJjZVBvaW50Lmdyb3VwLm5hbWUsXG4gICAgICAgIH07XG4gICAgICBpZiAodGFyZ2V0UG9pbnQpXG4gICAgICAgIHBvaW50c09wdGlvblt0YXJnZXRQb2ludC5pZF0gPSB7XG4gICAgICAgICAgaWQ6IHRhcmdldFBvaW50LmlkLFxuICAgICAgICAgIG5hbWU6IHRhcmdldFBvaW50Lmdyb3VwLm5hbWUsXG4gICAgICAgIH07XG4gICAgfSk7XG4gICAgcmV0dXJuIE9iamVjdC52YWx1ZXMocG9pbnRzT3B0aW9uKTtcbiAgfSwgW3BvaW50c19kYXRhLml0ZW1zLCBlZGdlc1dpdGhEZXZpY2VdKTtcblxuICAvLyA0KSBCdWlsZCB0aGUgdHJlZSBPTkxZIHdoZW4gZGF0YSBpcyByZWFkeTsga2VlcCByZWZlcmVudGlhbCBzdGFiaWxpdHlcbiAgY29uc3QgdHJlZURhdGEgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaXNMb2FkaW5nU2l0ZXMgfHwgZXJyb3JTaXRlcykgcmV0dXJuIG51bGw7XG5cbiAgICByZXR1cm4gYnVpbGRUcmVlKGVkZ2VzV2l0aERldmljZSwgZGVjb3JhdGVkUG9pbnRzQnlJZCwgd2F0ZXJBdXRob3JpdHlOYW1lKTtcbiAgfSwgW1xuICAgIGVkZ2VzV2l0aERldmljZSxcbiAgICBkZWNvcmF0ZWRQb2ludHNCeUlkLFxuICAgIHdhdGVyQXV0aG9yaXR5TmFtZSxcbiAgICBpc0xvYWRpbmdTaXRlcyxcbiAgICBlcnJvclNpdGVzLFxuICBdKTtcblxuICBjb25zdCB1cGRhdGVGaWx0ZXIgPSAoYXBwbGllZEZpbHRlcikgPT4ge1xuICAgIC8vIFByb2Nlc3MgdGhlIGFwcGxpZWQgZmlsdGVyIGFzIG5lZWRlZFxuICAgIGNvbnN0IHNlbGVjdGVkRmlsdGVycyA9IHt9O1xuXG4gICAgYXBwbGllZEZpbHRlci5maWx0ZXJfaXRlbXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgc2VsZWN0ZWRGaWx0ZXJzW2l0ZW0udHlwZV0gPSBpdGVtLnNlbGVjdGVkX29wdGlvbnM7XG4gICAgfSk7XG4gICAgc2V0RmlsdGVyT3B0aW9ucyhzZWxlY3RlZEZpbHRlcnMpO1xuICAgIGNvbnN0IHNhbXBsaW5nUGFyYW1ldGVycyA9IGFwcGxpZWRGaWx0ZXIuZmlsdGVyX2l0ZW1zLmZpbmQoXG4gICAgICAoaXRlbSkgPT4gaXRlbS50eXBlID09PSAnU2FtcGxpbmdQYXJhbWV0ZXJGaWx0ZXJJdGVtJyxcbiAgICApO1xuICAgIGlmIChzYW1wbGluZ1BhcmFtZXRlcnMpIHtcbiAgICAgIHNldEV4Y2VlZGVkU2l0ZUlkcyh7IHNob3VsZEZldGNoOiB0cnVlLCBzaXRlSWRzOiBbXSB9KTtcbiAgICAgIHNldEZpbHRlclBhcmFtZXRlcklkcyhzYW1wbGluZ1BhcmFtZXRlcnMuc2VsZWN0ZWRfb3B0aW9ucyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNldEZpbHRlclBhcmFtZXRlcklkcyhudWxsKTtcbiAgICAgIHNldEV4Y2VlZGVkU2l0ZUlkcyh7IHNob3VsZEZldGNoOiBmYWxzZSwgc2l0ZUlkczogW10gfSk7XG4gICAgfVxuICAgIC8vIFlvdSBjYW4gdXBkYXRlIHN0YXRlIG9yIG1ha2UgQVBJIGNhbGxzIGJhc2VkIG9uIHRoZSBhcHBsaWVkIGZpbHRlclxuICB9O1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGZpbHRlclBhcmFtZXRlcklkcz8ubGVuZ3RoID09PSAwKSB7XG4gICAgICBzZXRFeGNlZWRlZFNpdGVJZHMoeyBzaG91bGRGZXRjaDogZmFsc2UsIHNpdGVJZHM6IFtdIH0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoIWV4Y2VlZGVkU2l0ZUlkcy5zaG91bGRGZXRjaCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBmZXRjaEV4Y2VlZGVkU2l0ZXMgPSBhc3luYyAoKSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKFxuICAgICAgICAgIHVybHMoeyBwYXJhbWV0ZXJJZHM6IGZpbHRlclBhcmFtZXRlcklkcywgd2F0ZXJBdXRob3JpdHlJZCB9KS5oaWVyYXJjaHlcbiAgICAgICAgICAgIC5leGNlZWRhbmNlQnlQYXJhbWV0ZXIudXJsLFxuICAgICAgICApO1xuICAgICAgICBjb25zdCB7IGRhdGEgfSA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKTtcbiAgICAgICAgY29uc3Qgc2l0ZUlkcyA9IGRhdGEuc2l0ZV9pZHMgfHwgW107XG4gICAgICAgIHNldEV4Y2VlZGVkU2l0ZUlkcyh7IHNob3VsZEZldGNoOiBmYWxzZSwgc2l0ZUlkcyB9KTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGZldGNoaW5nIGV4Y2VlZGVkIHNpdGVzOicsIGVycm9yKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgZmV0Y2hFeGNlZWRlZFNpdGVzKCk7XG4gIH0sIFtmaWx0ZXJQYXJhbWV0ZXJJZHMsIGV4Y2VlZGVkU2l0ZUlkc10pO1xuXG4gIGNvbnN0IHJlc2V0RmlsdGVyID0gKGRlZmF1bHRGaWx0ZXIpID0+IHtcbiAgICBzZXRGaWx0ZXJQYXJhbWV0ZXJJZHMobnVsbCk7XG4gICAgc2V0RXhjZWVkZWRTaXRlSWRzKFtdKTtcbiAgICB1cGRhdGVGaWx0ZXIoZGVmYXVsdEZpbHRlcik7XG4gICAgc2V0VHJlZUtleSh0cmVlS2V5ICsgMSk7XG4gIH07XG5cbiAgaWYgKCFpc0hpZXJhcmNoeVRhYikge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT17J2hpZXJhcmNoeS1ncmFwaC1wYWdlJ30+XG4gICAgICB7IXBvaW50c19kYXRhLmlzRmV0Y2hpbmcgJiYgdHJlZUtleSA+IC0xICYmIChcbiAgICAgICAgPD5cbiAgICAgICAgICA8RmlsdGVyQ29udGFpbmVyXG4gICAgICAgICAgICBmaWx0ZXJQb3B1cE9wZW49e3RydWV9XG4gICAgICAgICAgICBmZXRjaFR5cGU9eydIaWVyYXJjaHlGaWx0ZXInfVxuICAgICAgICAgICAgYXBwbHlMb2dpYz17dXBkYXRlRmlsdGVyfVxuICAgICAgICAgICAgY3VzdG9tX3BvaW50cz17ZmlsdGVyUG9pbnRzfVxuICAgICAgICAgICAgcmVzZXRGaWx0ZXI9e3Jlc2V0RmlsdGVyfVxuICAgICAgICAgIC8+XG4gICAgICAgICAge2ZpbHRlclBhcmFtZXRlcklkcyAmJiAoXG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIHN0eWxlPXt7IG1hcmdpbklubGluZVN0YXJ0OiAyMCB9fVxuICAgICAgICAgICAgPntgJHtleGNlZWRlZFNpdGVJZHMuc2l0ZUlkcy5sZW5ndGh9IHNpdGVzIHdpdGggZXhjZWVkaW5nIHJlc3VsdHNgfTwvZGl2PlxuICAgICAgICAgICl9XG4gICAgICAgIDwvPlxuICAgICAgKX1cblxuICAgICAgPENvbnRhaW5lciBmbHVpZCBjbGFzc05hbWU9XCJwLTBcIiBzdHlsZT17eyBvdmVyZmxvdzogJ2hpZGRlbicgfX0+XG4gICAgICAgIDxSb3cgY2xhc3NOYW1lPVwibWFwLWNvbHVtblwiIHNtPXsxMn0+XG4gICAgICAgICAgPENvbCBzdHlsZT17eyBoZWlnaHQ6ICc4NXZoJyB9fT5cbiAgICAgICAgICAgIHtlZGdlc19kYXRhLmlzRmV0Y2hpbmcgfHxcbiAgICAgICAgICAgIHBvaW50c19kYXRhLmlzRmV0Y2hpbmcgfHxcbiAgICAgICAgICAgICFmaWx0ZXJPcHRpb25zIHx8XG4gICAgICAgICAgICAhdHJlZURhdGEgfHxcbiAgICAgICAgICAgIGlzTG9hZGluZ1NpdGVzID8gKFxuICAgICAgICAgICAgICA8TG9hZGVyIC8+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8QXV0b0ZpdFRyZWVcbiAgICAgICAgICAgICAgICB0cmVlS2V5PXt0cmVlS2V5fVxuICAgICAgICAgICAgICAgIGluaXRpYWxEZXB0aD17MTJ9XG4gICAgICAgICAgICAgICAgZGF0YT17dHJlZURhdGF9XG4gICAgICAgICAgICAgICAgc2VsZWN0ZWRGaWx0ZXJzPXtmaWx0ZXJPcHRpb25zfVxuICAgICAgICAgICAgICAgIGV4Y2VlZGVkU2l0ZUlkcz17ZXhjZWVkZWRTaXRlSWRzLnNpdGVJZHN9XG4gICAgICAgICAgICAgICAgb25Ob2RlQ2xpY2s9e29uTm9kZUNsaWNrfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDxSaWdodFBhbmVsXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17YHJpZ2h0LXBhbmVsICR7c2hvd1JpZ2h0UGFuZWwgPyAnb3BlbicgOiAnJ31gfVxuICAgICAgICAgICAgICBwb2ludD17c2VsZWN0ZWRQb2ludH1cbiAgICAgICAgICAgICAgb25DbG9zZT17KCkgPT4ge1xuICAgICAgICAgICAgICAgIHNldFNlbGVjdGVkUG9pbnQobnVsbCk7XG4gICAgICAgICAgICAgICAgc2V0U2hvd1JpZ2h0UGFuZWwoZmFsc2UpO1xuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L0NvbD5cbiAgICAgICAgPC9Sb3c+XG4gICAgICA8L0NvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5leHBvcnQgZGVmYXVsdCBIaWVyYXJjaHlHcmFwaDtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUVBLElBQUFDLFlBQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLE1BQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLFdBQUEsR0FBQUosT0FBQTtBQUVBLElBQUFLLFlBQUEsR0FBQUgsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFNLGVBQUEsR0FBQU4sT0FBQTtBQUNBLElBQUFPLE9BQUEsR0FBQVAsT0FBQTtBQUNBLElBQUFRLFdBQUEsR0FBQU4sc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFTLEtBQUEsR0FBQVQsT0FBQTtBQUNBLElBQUFVLHlCQUFBLEdBQUFWLE9BQUE7QUFFQSxJQUFBVyxnQkFBQSxHQUFBVCxzQkFBQSxDQUFBRixPQUFBO0FBQStGLFNBQUFZLHlCQUFBQyxXQUFBLGVBQUFDLE9BQUEsa0NBQUFDLGlCQUFBLE9BQUFELE9BQUEsUUFBQUUsZ0JBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSx5QkFBQUMsV0FB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
|
|
313
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfdXNlUXVlcnlVUkwiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX3V0aWxzIiwiX3JlYWN0UmVkdXgiLCJfQXV0b0ZpdFRyZWUiLCJfcmVhY3RCb290c3RyYXAiLCJfTG9hZGVyIiwiX1JpZ2h0UGFuZWwiLCJfdXJscyIsIl91c2VBcGlXaXRoRGFzaGJvYXJkUXVlcnkiLCJfRmlsdGVyQ29udGFpbmVyIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwibm9kZUludGVyb3AiLCJXZWFrTWFwIiwiY2FjaGVCYWJlbEludGVyb3AiLCJjYWNoZU5vZGVJbnRlcm9wIiwib2JqIiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJkZWZhdWx0IiwiY2FjaGUiLCJoYXMiLCJnZXQiLCJuZXdPYmoiLCJoYXNQcm9wZXJ0eURlc2NyaXB0b3IiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlc2MiLCJzZXQiLCJIaWVyYXJjaHlHcmFwaCIsIl9yZWYiLCJfcmVmJHNob3ciLCJzaG93IiwiX3JlZiRmaWx0ZXJUeXBlIiwiZmlsdGVyVHlwZSIsInNlYXJjaFF1ZXJ5IiwidXNlUXVlcnlVUkwiLCJSZWR1eFN0YXRlIiwidXNlU2VsZWN0b3IiLCJzdGF0ZSIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsInRyZWVLZXkiLCJzZXRUcmVlS2V5IiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJzZWxlY3RlZFBvaW50Iiwic2V0U2VsZWN0ZWRQb2ludCIsIl91c2VTdGF0ZTUiLCJfdXNlU3RhdGU2Iiwic2hvd1JpZ2h0UGFuZWwiLCJzZXRTaG93UmlnaHRQYW5lbCIsIl91c2VTdGF0ZTciLCJfdXNlU3RhdGU4IiwiZmlsdGVyT3B0aW9ucyIsInNldEZpbHRlck9wdGlvbnMiLCJfdXNlU3RhdGU5IiwiX3VzZVN0YXRlMTAiLCJmaWx0ZXJQYXJhbWV0ZXJJZHMiLCJzZXRGaWx0ZXJQYXJhbWV0ZXJJZHMiLCJfdXNlU3RhdGUxMSIsInNob3VsZEZldGNoIiwic2l0ZUlkcyIsIl91c2VTdGF0ZTEyIiwiZXhjZWVkZWRTaXRlSWRzIiwic2V0RXhjZWVkZWRTaXRlSWRzIiwiaXNIaWVyYXJjaHlUYWIiLCJwb2ludHNfZGF0YSIsImVkZ2VzX2RhdGEiLCJfUmVkdXhTdGF0ZSRnbG9iYWxfZGEiLCJnbG9iYWxfZGF0YSIsIndhdGVyQXV0aG9yaXR5TmFtZSIsIndhdGVyQXV0aG9yaXR5SWQiLCJvbk5vZGVDbGljayIsIm5vZGVEYXRhIiwiaXRlbXMiLCJmaW5kIiwicCIsImlkIiwiYXR0cmlidXRlcyIsInBvaW50X2lkIiwiZmFjdG9yaWVzRW5kUG9pbnQiLCJ1c2VNZW1vIiwidXJscyIsImRhc2hib2FyZCIsIlV0aWxpdHkiLCJmYWN0b3JpZXMiLCJwYXJhbXNBbGwiLCJ0eXBlIiwiaXNfbmV0d29yayIsIl91c2VBcGlXaXRoRGFzaGJvYXJkUSIsInVzZUFwaVdpdGhEYXNoYm9hcmRRdWVyeSIsIl91c2VBcGlXaXRoRGFzaGJvYXJkUTIiLCJyZXNwb25zZVNpdGVzIiwiaXNMb2FkaW5nU2l0ZXMiLCJlcnJvclNpdGVzIiwicG9sbHV0aW9uQnlTaXRlSWQiLCJtIiwiTWFwIiwiZGF0YSIsIl9pdGVyYXRvciIsIl9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyMiIsIl9zdGVwIiwicyIsIm4iLCJkb25lIiwiX3N0ZXAkdmFsdWUiLCJ2YWx1ZSIsInNpdGVfaWQiLCJwb2xsdXRpb24iLCJzZWN0b3JfbmFtZSIsInNlY3Rvcl9pZCIsImNvbnRyaWJ1dG9yX3BlcmNlbnRzIiwicmlzayIsImNvc3QiLCJleHRyYURhdGEiLCJ0eXBlX2Rpc3RyaWJ1dGlvbiIsImVyciIsImUiLCJmIiwiZGVjb3JhdGVkUG9pbnRzQnlJZCIsImJhc2UiLCJtYXBCeUlkIiwiY29weSIsIl9pIiwiX09iamVjdCRrZXlzIiwia2V5cyIsImxlbmd0aCIsIm51bUlkIiwiTnVtYmVyIiwiX29iamVjdFNwcmVhZDIiLCJlZGdlc1dpdGhEZXZpY2UiLCJwb2ludHNXaXRoRGV2aWNlIiwiZmlsdGVyIiwiaGFzX2RldmljZSIsImVkZ2UiLCJzb3VyY2VfcG9pbnRfaWQiLCJkZXNjZW5kYW50c19oYXNfZGV2aWNlIiwiZmlsdGVyUG9pbnRzIiwicG9pbnRzT3B0aW9uIiwicG9pbnRMaXN0IiwiZm9yRWFjaCIsInNvdXJjZVBvaW50IiwidGFyZ2V0UG9pbnQiLCJ0YXJnZXRfcG9pbnRfaWQiLCJuYW1lIiwiZ3JvdXAiLCJ2YWx1ZXMiLCJ0cmVlRGF0YSIsImJ1aWxkVHJlZSIsInVwZGF0ZUZpbHRlciIsImFwcGxpZWRGaWx0ZXIiLCJzZWxlY3RlZEZpbHRlcnMiLCJmaWx0ZXJfaXRlbXMiLCJpdGVtIiwic2VsZWN0ZWRfb3B0aW9ucyIsInNhbXBsaW5nUGFyYW1ldGVycyIsInVzZUVmZmVjdCIsImZldGNoRXhjZWVkZWRTaXRlcyIsIl9yZWYyIiwiX2FzeW5jVG9HZW5lcmF0b3IyIiwiX3JlZ2VuZXJhdG9yIiwibWFyayIsIl9jYWxsZWUiLCJyZXNwb25zZSIsIl95aWVsZCRyZXNwb25zZSRqc29uIiwid3JhcCIsIl9jYWxsZWUkIiwiX2NvbnRleHQiLCJwcmV2IiwibmV4dCIsImZldGNoIiwicGFyYW1ldGVySWRzIiwiaGllcmFyY2h5IiwiZXhjZWVkYW5jZUJ5UGFyYW1ldGVyIiwidXJsIiwic2VudCIsImpzb24iLCJzaXRlX2lkcyIsInQwIiwiY29uc29sZSIsImVycm9yIiwic3RvcCIsImFwcGx5IiwiYXJndW1lbnRzIiwicmVzZXRGaWx0ZXIiLCJkZWZhdWx0RmlsdGVyIiwiY3JlYXRlRWxlbWVudCIsImNsYXNzTmFtZSIsImlzRmV0Y2hpbmciLCJGcmFnbWVudCIsImZpbHRlclBvcHVwT3BlbiIsImZldGNoVHlwZSIsImFwcGx5TG9naWMiLCJjdXN0b21fcG9pbnRzIiwic3R5bGUiLCJtYXJnaW5JbmxpbmVTdGFydCIsImNvbmNhdCIsIkNvbnRhaW5lciIsImZsdWlkIiwib3ZlcmZsb3ciLCJSb3ciLCJzbSIsIkNvbCIsImhlaWdodCIsIkxvYWRlciIsImluaXRpYWxEZXB0aCIsInBvaW50Iiwib25DbG9zZSIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91aS1raXQvSGllcmFyY2h5R3JhcGgvSGllcmFyY2h5R3JhcGgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyB1c2VNZW1vIH0gZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQgdXNlUXVlcnlVUkwgZnJvbSAnLi4vLi4vaG9va3MvdXNlUXVlcnlVUkwnO1xuaW1wb3J0IHsgYnVpbGRUcmVlLCBtYXBCeUlkIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyB1c2VTZWxlY3RvciB9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCB7IHVzZVN0YXRlLCB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgQXV0b0ZpdFRyZWUgZnJvbSAnLi9BdXRvRml0VHJlZSc7XG5pbXBvcnQgeyBDb250YWluZXIsIFJvdywgQ29sIH0gZnJvbSAncmVhY3QtYm9vdHN0cmFwJztcbmltcG9ydCB7IExvYWRlciB9IGZyb20gJy4uLy4uL3BhZ2VzL0Rhc2hib2FyZE1hcC9Mb2FkZXInO1xuaW1wb3J0IFJpZ2h0UGFuZWwgZnJvbSAnLi4vLi4vcGFnZXMvT3BlcmF0aW9uc1BhZ2UvUmlnaHRQYW5lbCc7XG5pbXBvcnQgeyB1cmxzIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzL3VybHMnO1xuaW1wb3J0IHsgdXNlQXBpV2l0aERhc2hib2FyZFF1ZXJ5IH0gZnJvbSAnLi4vLi4vaG9va3MvdXNlQXBpV2l0aERhc2hib2FyZFF1ZXJ5JztcbmltcG9ydCB7IEZhY3Rvcmllc1Jlc3BvbnNlIH0gZnJvbSAnLi4vLi4vV2lkZ2V0cy9Nb3N0UG9sbHV0aW5nL0ZhY3Rvcmllcy9mYWN0b3JpZXNSZXNwb25zZS5pbnRlcmZhY2UnO1xuaW1wb3J0IEZpbHRlckNvbnRhaW5lciBmcm9tICcuLi8uLi9wYWdlcy9FdmVudHNQYWdlL2V2ZW50cy9ldmVudHNfbGlzdC9GaWx0ZXIvRmlsdGVyQ29udGFpbmVyJztcblxuY29uc3QgSGllcmFyY2h5R3JhcGggPSAoeyBzaG93ID0gZmFsc2UsIGZpbHRlclR5cGUgPSAnSGllcmFyY2h5RmlsdGVyJyB9KSA9PiB7XG4gIGNvbnN0IHNlYXJjaFF1ZXJ5ID0gdXNlUXVlcnlVUkwoKTtcbiAgY29uc3QgUmVkdXhTdGF0ZSA9IHVzZVNlbGVjdG9yKChzdGF0ZSkgPT4gc3RhdGUpO1xuICBjb25zdCBbdHJlZUtleSwgc2V0VHJlZUtleV0gPSB1c2VTdGF0ZSgwKTtcbiAgY29uc3QgW3NlbGVjdGVkUG9pbnQsIHNldFNlbGVjdGVkUG9pbnRdID0gdXNlU3RhdGUobnVsbCk7XG4gIGNvbnN0IFtzaG93UmlnaHRQYW5lbCwgc2V0U2hvd1JpZ2h0UGFuZWxdID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBbZmlsdGVyT3B0aW9ucywgc2V0RmlsdGVyT3B0aW9uc10gPSB1c2VTdGF0ZSh7fSk7XG4gIGNvbnN0IFtmaWx0ZXJQYXJhbWV0ZXJJZHMsIHNldEZpbHRlclBhcmFtZXRlcklkc10gPSB1c2VTdGF0ZShudWxsKTtcbiAgY29uc3QgW2V4Y2VlZGVkU2l0ZUlkcywgc2V0RXhjZWVkZWRTaXRlSWRzXSA9IHVzZVN0YXRlKHtcbiAgICBzaG91bGRGZXRjaDogZmFsc2UsXG4gICAgc2l0ZUlkczogW10sXG4gIH0pO1xuICBjb25zdCBpc0hpZXJhcmNoeVRhYiA9IHNlYXJjaFF1ZXJ5LmdldCgndmlldycpID09PSAnaGllcmFyY2h5JyB8fCBzaG93O1xuICBjb25zdCB7XG4gICAgcG9pbnRzX2RhdGEsXG4gICAgZWRnZXNfZGF0YSxcbiAgICBnbG9iYWxfZGF0YTogeyB3YXRlckF1dGhvcml0eU5hbWUsIHdhdGVyQXV0aG9yaXR5SWQgfSxcbiAgfSA9IFJlZHV4U3RhdGU7XG5cbiAgY29uc3Qgb25Ob2RlQ2xpY2sgPSAobm9kZURhdGEpID0+IHtcbiAgICBzZXRTZWxlY3RlZFBvaW50KFxuICAgICAgcG9pbnRzX2RhdGEuaXRlbXMuZmluZCgocCkgPT4gcC5pZCA9PT0gbm9kZURhdGEuYXR0cmlidXRlcy5wb2ludF9pZCksXG4gICAgKTtcbiAgICBzZXRTaG93UmlnaHRQYW5lbCghc2hvd1JpZ2h0UGFuZWwpO1xuICB9O1xuXG4gIC8vIHN0YWJsZSBlbmRwb2ludHMvcGFyYW1zIOKchVxuICBjb25zdCBmYWN0b3JpZXNFbmRQb2ludCA9IHVzZU1lbW8oXG4gICAgKCkgPT4gdXJscygpLmRhc2hib2FyZC5VdGlsaXR5LmZhY3RvcmllcyxcbiAgICBbXSxcbiAgKTtcblxuICBjb25zdCBwYXJhbXNBbGwgPSB1c2VNZW1vKFxuICAgICgpID0+ICh7XG4gICAgICB0eXBlOiAnQWxsJyxcbiAgICAgIGlzX25ldHdvcms6ICdOZXR3b3JrRmlsdGVyJyA9PT0gZmlsdGVyVHlwZSA/ICd0cnVlJyA6ICdmYWxzZScsXG4gICAgfSksXG4gICAgW10sXG4gICk7XG5cbiAgLy8gZmV0Y2hlc1xuICBjb25zdCBbcmVzcG9uc2VTaXRlcywgaXNMb2FkaW5nU2l0ZXMsIGVycm9yU2l0ZXNdID1cbiAgICB1c2VBcGlXaXRoRGFzaGJvYXJkUXVlcnk8RmFjdG9yaWVzUmVzcG9uc2U+KGZhY3Rvcmllc0VuZFBvaW50LCBwYXJhbXNBbGwpO1xuXG4gIC8vIDEpIEJ1aWxkIGEgcG9sbHV0aW9uIG1hcCBmcm9tIGJvdGggcmVzcG9uc2VzIChubyBzdGF0ZTsgcHVyZSBtZW1vKVxuICBjb25zdCBwb2xsdXRpb25CeVNpdGVJZCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IG0gPSBuZXcgTWFwPG51bWJlciwgYW55PigpO1xuICAgIGlmIChyZXNwb25zZVNpdGVzPy5kYXRhKSB7XG4gICAgICBmb3IgKGNvbnN0IHtcbiAgICAgICAgc2l0ZV9pZCxcbiAgICAgICAgcG9sbHV0aW9uLFxuICAgICAgICBzZWN0b3JfbmFtZSxcbiAgICAgICAgc2VjdG9yX2lkLFxuICAgICAgICBjb250cmlidXRvcl9wZXJjZW50cyxcbiAgICAgICAgcmlzayxcbiAgICAgICAgY29zdCxcbiAgICAgIH0gb2YgcmVzcG9uc2VTaXRlcy5kYXRhKSB7XG4gICAgICAgIGNvbnN0IGV4dHJhRGF0YSA9IHtcbiAgICAgICAgICBzZWN0b3JfbmFtZSxcbiAgICAgICAgICBjb250cmlidXRvcl9wZXJjZW50cyxcbiAgICAgICAgICBzZWN0b3JfaWQsXG4gICAgICAgICAgcmlzayxcbiAgICAgICAgICBjb3N0LFxuICAgICAgICB9O1xuICAgICAgICBpZiAocG9sbHV0aW9uPy50eXBlX2Rpc3RyaWJ1dGlvbilcbiAgICAgICAgICBleHRyYURhdGFbJ3BvbGx1dGlvbiddID0gcG9sbHV0aW9uLnR5cGVfZGlzdHJpYnV0aW9uO1xuICAgICAgICBtLnNldChzaXRlX2lkLCBleHRyYURhdGEpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbTtcbiAgfSwgW3Jlc3BvbnNlU2l0ZXM/LmRhdGFdKTtcblxuICAvLyAyKSBDcmVhdGUgYSBTQUZFIGNvcHkgb2YgcG9pbnRfbWFwX2RhdGEgd2l0aCBwb2xsdXRpb24gbWVyZ2VkIGluIChubyBtdXRhdGlvbnMpXG4gIGNvbnN0IGRlY29yYXRlZFBvaW50c0J5SWQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAvLyBtYXBCeUlkKHBvaW50c19kYXRhLml0ZW1zKSByZXR1cm5zIGEgcGxhaW4gb2JqZWN0IGtleWVkIGJ5IGlkOyBjbG9uZSBpdFxuICAgIGNvbnN0IGJhc2UgPSBtYXBCeUlkKHBvaW50c19kYXRhLml0ZW1zKTtcbiAgICBjb25zdCBjb3B5OiBSZWNvcmQ8bnVtYmVyLCBhbnk+ID0ge307XG4gICAgZm9yIChjb25zdCBpZCBvZiBPYmplY3Qua2V5cyhiYXNlKSkge1xuICAgICAgY29uc3QgbnVtSWQgPSBOdW1iZXIoaWQpO1xuICAgICAgY29uc3QgcG9sbHV0aW9uID0gcG9sbHV0aW9uQnlTaXRlSWQuZ2V0KG51bUlkKTtcbiAgICAgIC8vIHNoYWxsb3cgY2xvbmUgZWFjaCBwb2ludDsgYWRkIHBvbGx1dGlvbiBpZiBleGlzdHNcbiAgICAgIGNvcHlbbnVtSWRdID0gcG9sbHV0aW9uXG4gICAgICAgID8geyAuLi5iYXNlW251bUlkXSwgLi4ucG9sbHV0aW9uIH1cbiAgICAgICAgOiB7IC4uLmJhc2VbbnVtSWRdIH07XG4gICAgfVxuICAgIHJldHVybiBjb3B5O1xuICB9LCBbcG9pbnRzX2RhdGEuaXRlbXMsIHBvbGx1dGlvbkJ5U2l0ZUlkXSk7XG5cbiAgLy8gMykgQ29tcHV0ZSBlZGdlc1dpdGhEZXZpY2Ugc2FmZWx5L21lbW9pemVkIChubyBleHRyYSByZW5kZXJzKVxuICBjb25zdCBlZGdlc1dpdGhEZXZpY2UgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBjb25zdCBwb2ludHNXaXRoRGV2aWNlID0gbWFwQnlJZChcbiAgICAgIHBvaW50c19kYXRhLml0ZW1zLmZpbHRlcigocCkgPT4gcC5oYXNfZGV2aWNlKSxcbiAgICApO1xuICAgIHJldHVybiBlZGdlc19kYXRhLml0ZW1zLmZpbHRlcihcbiAgICAgIChlZGdlKSA9PlxuICAgICAgICBwb2ludHNXaXRoRGV2aWNlW2VkZ2Uuc291cmNlX3BvaW50X2lkXSB8fCBlZGdlLmRlc2NlbmRhbnRzX2hhc19kZXZpY2UsXG4gICAgKTtcbiAgfSwgW3BvaW50c19kYXRhLml0ZW1zLCBlZGdlc19kYXRhLml0ZW1zXSk7XG5cbiAgY29uc3QgZmlsdGVyUG9pbnRzID0gdXNlTWVtbygoKSA9PiB7XG4gICAgY29uc3QgcG9pbnRzT3B0aW9uID0ge307XG4gICAgY29uc3QgcG9pbnRMaXN0ID0gcG9pbnRzX2RhdGEuaXRlbXM7XG4gICAgZWRnZXNXaXRoRGV2aWNlLmZvckVhY2goKGVkZ2UpID0+IHtcbiAgICAgIGNvbnN0IHNvdXJjZVBvaW50ID0gcG9pbnRMaXN0LmZpbmQoKHApID0+IHAuaWQgPT09IGVkZ2Uuc291cmNlX3BvaW50X2lkKTtcbiAgICAgIGNvbnN0IHRhcmdldFBvaW50ID0gcG9pbnRMaXN0LmZpbmQoKHApID0+IHAuaWQgPT09IGVkZ2UudGFyZ2V0X3BvaW50X2lkKTtcbiAgICAgIGlmIChzb3VyY2VQb2ludClcbiAgICAgICAgcG9pbnRzT3B0aW9uW3NvdXJjZVBvaW50LmlkXSA9IHtcbiAgICAgICAgICBpZDogc291cmNlUG9pbnQuaWQsXG4gICAgICAgICAgbmFtZTogc291cmNlUG9pbnQuZ3JvdXAubmFtZSxcbiAgICAgICAgfTtcbiAgICAgIGlmICh0YXJnZXRQb2ludClcbiAgICAgICAgcG9pbnRzT3B0aW9uW3RhcmdldFBvaW50LmlkXSA9IHtcbiAgICAgICAgICBpZDogdGFyZ2V0UG9pbnQuaWQsXG4gICAgICAgICAgbmFtZTogdGFyZ2V0UG9pbnQuZ3JvdXAubmFtZSxcbiAgICAgICAgfTtcbiAgICB9KTtcbiAgICByZXR1cm4gT2JqZWN0LnZhbHVlcyhwb2ludHNPcHRpb24pO1xuICB9LCBbcG9pbnRzX2RhdGEuaXRlbXMsIGVkZ2VzV2l0aERldmljZV0pO1xuXG4gIC8vIDQpIEJ1aWxkIHRoZSB0cmVlIE9OTFkgd2hlbiBkYXRhIGlzIHJlYWR5OyBrZWVwIHJlZmVyZW50aWFsIHN0YWJpbGl0eVxuICBjb25zdCB0cmVlRGF0YSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChpc0xvYWRpbmdTaXRlcyB8fCBlcnJvclNpdGVzKSByZXR1cm4gbnVsbDtcblxuICAgIHJldHVybiBidWlsZFRyZWUoZWRnZXNXaXRoRGV2aWNlLCBkZWNvcmF0ZWRQb2ludHNCeUlkLCB3YXRlckF1dGhvcml0eU5hbWUpO1xuICB9LCBbXG4gICAgZWRnZXNXaXRoRGV2aWNlLFxuICAgIGRlY29yYXRlZFBvaW50c0J5SWQsXG4gICAgd2F0ZXJBdXRob3JpdHlOYW1lLFxuICAgIGlzTG9hZGluZ1NpdGVzLFxuICAgIGVycm9yU2l0ZXMsXG4gIF0pO1xuXG4gIGNvbnN0IHVwZGF0ZUZpbHRlciA9IChhcHBsaWVkRmlsdGVyKSA9PiB7XG4gICAgLy8gUHJvY2VzcyB0aGUgYXBwbGllZCBmaWx0ZXIgYXMgbmVlZGVkXG4gICAgY29uc3Qgc2VsZWN0ZWRGaWx0ZXJzID0ge307XG5cbiAgICBhcHBsaWVkRmlsdGVyLmZpbHRlcl9pdGVtcy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICBzZWxlY3RlZEZpbHRlcnNbaXRlbS50eXBlXSA9IGl0ZW0uc2VsZWN0ZWRfb3B0aW9ucztcbiAgICB9KTtcbiAgICBzZXRGaWx0ZXJPcHRpb25zKHNlbGVjdGVkRmlsdGVycyk7XG4gICAgY29uc3Qgc2FtcGxpbmdQYXJhbWV0ZXJzID0gYXBwbGllZEZpbHRlci5maWx0ZXJfaXRlbXMuZmluZChcbiAgICAgIChpdGVtKSA9PiBpdGVtLnR5cGUgPT09ICdTYW1wbGluZ1BhcmFtZXRlckZpbHRlckl0ZW0nLFxuICAgICk7XG4gICAgaWYgKHNhbXBsaW5nUGFyYW1ldGVycykge1xuICAgICAgc2V0RXhjZWVkZWRTaXRlSWRzKHsgc2hvdWxkRmV0Y2g6IHRydWUsIHNpdGVJZHM6IFtdIH0pO1xuICAgICAgc2V0RmlsdGVyUGFyYW1ldGVySWRzKHNhbXBsaW5nUGFyYW1ldGVycy5zZWxlY3RlZF9vcHRpb25zKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0RmlsdGVyUGFyYW1ldGVySWRzKG51bGwpO1xuICAgICAgc2V0RXhjZWVkZWRTaXRlSWRzKHsgc2hvdWxkRmV0Y2g6IGZhbHNlLCBzaXRlSWRzOiBbXSB9KTtcbiAgICB9XG4gICAgLy8gWW91IGNhbiB1cGRhdGUgc3RhdGUgb3IgbWFrZSBBUEkgY2FsbHMgYmFzZWQgb24gdGhlIGFwcGxpZWQgZmlsdGVyXG4gIH07XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoZmlsdGVyUGFyYW1ldGVySWRzPy5sZW5ndGggPT09IDApIHtcbiAgICAgIHNldEV4Y2VlZGVkU2l0ZUlkcyh7IHNob3VsZEZldGNoOiBmYWxzZSwgc2l0ZUlkczogW10gfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICghZXhjZWVkZWRTaXRlSWRzLnNob3VsZEZldGNoKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGZldGNoRXhjZWVkZWRTaXRlcyA9IGFzeW5jICgpID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goXG4gICAgICAgICAgdXJscyh7IHBhcmFtZXRlcklkczogZmlsdGVyUGFyYW1ldGVySWRzLCB3YXRlckF1dGhvcml0eUlkIH0pLmhpZXJhcmNoeVxuICAgICAgICAgICAgLmV4Y2VlZGFuY2VCeVBhcmFtZXRlci51cmwsXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IHsgZGF0YSB9ID0gYXdhaXQgcmVzcG9uc2UuanNvbigpO1xuICAgICAgICBjb25zdCBzaXRlSWRzID0gZGF0YS5zaXRlX2lkcyB8fCBbXTtcbiAgICAgICAgc2V0RXhjZWVkZWRTaXRlSWRzKHsgc2hvdWxkRmV0Y2g6IGZhbHNlLCBzaXRlSWRzIH0pO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgZmV0Y2hpbmcgZXhjZWVkZWQgc2l0ZXM6JywgZXJyb3IpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBmZXRjaEV4Y2VlZGVkU2l0ZXMoKTtcbiAgfSwgW2ZpbHRlclBhcmFtZXRlcklkcywgZXhjZWVkZWRTaXRlSWRzXSk7XG5cbiAgY29uc3QgcmVzZXRGaWx0ZXIgPSAoZGVmYXVsdEZpbHRlcikgPT4ge1xuICAgIHNldEZpbHRlclBhcmFtZXRlcklkcyhudWxsKTtcbiAgICBzZXRFeGNlZWRlZFNpdGVJZHMoW10pO1xuICAgIHVwZGF0ZUZpbHRlcihkZWZhdWx0RmlsdGVyKTtcbiAgICBzZXRUcmVlS2V5KHRyZWVLZXkgKyAxKTtcbiAgfTtcblxuICBpZiAoIWlzSGllcmFyY2h5VGFiKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPXsnaGllcmFyY2h5LWdyYXBoLXBhZ2UnfT5cbiAgICAgIHshcG9pbnRzX2RhdGEuaXNGZXRjaGluZyAmJiB0cmVlS2V5ID4gLTEgJiYgKFxuICAgICAgICA8PlxuICAgICAgICAgIDxGaWx0ZXJDb250YWluZXJcbiAgICAgICAgICAgIGZpbHRlclBvcHVwT3Blbj17dHJ1ZX1cbiAgICAgICAgICAgIGZldGNoVHlwZT17ZmlsdGVyVHlwZX1cbiAgICAgICAgICAgIGFwcGx5TG9naWM9e3VwZGF0ZUZpbHRlcn1cbiAgICAgICAgICAgIGN1c3RvbV9wb2ludHM9e2ZpbHRlclBvaW50c31cbiAgICAgICAgICAgIHJlc2V0RmlsdGVyPXtyZXNldEZpbHRlcn1cbiAgICAgICAgICAvPlxuICAgICAgICAgIHtmaWx0ZXJQYXJhbWV0ZXJJZHMgJiYgKFxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBzdHlsZT17eyBtYXJnaW5JbmxpbmVTdGFydDogMjAgfX1cbiAgICAgICAgICAgID57YCR7ZXhjZWVkZWRTaXRlSWRzLnNpdGVJZHMubGVuZ3RofSBzaXRlcyB3aXRoIGV4Y2VlZGluZyByZXN1bHRzYH08L2Rpdj5cbiAgICAgICAgICApfVxuICAgICAgICA8Lz5cbiAgICAgICl9XG5cbiAgICAgIDxDb250YWluZXIgZmx1aWQgY2xhc3NOYW1lPVwicC0wXCIgc3R5bGU9e3sgb3ZlcmZsb3c6ICdoaWRkZW4nIH19PlxuICAgICAgICA8Um93IGNsYXNzTmFtZT1cIm1hcC1jb2x1bW5cIiBzbT17MTJ9PlxuICAgICAgICAgIDxDb2wgc3R5bGU9e3sgaGVpZ2h0OiAnODV2aCcgfX0+XG4gICAgICAgICAgICB7ZWRnZXNfZGF0YS5pc0ZldGNoaW5nIHx8XG4gICAgICAgICAgICBwb2ludHNfZGF0YS5pc0ZldGNoaW5nIHx8XG4gICAgICAgICAgICAhZmlsdGVyT3B0aW9ucyB8fFxuICAgICAgICAgICAgIXRyZWVEYXRhIHx8XG4gICAgICAgICAgICBpc0xvYWRpbmdTaXRlcyA/IChcbiAgICAgICAgICAgICAgPExvYWRlciAvPlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgPEF1dG9GaXRUcmVlXG4gICAgICAgICAgICAgICAgdHJlZUtleT17dHJlZUtleX1cbiAgICAgICAgICAgICAgICBpbml0aWFsRGVwdGg9ezEyfVxuICAgICAgICAgICAgICAgIGRhdGE9e3RyZWVEYXRhfVxuICAgICAgICAgICAgICAgIHNlbGVjdGVkRmlsdGVycz17ZmlsdGVyT3B0aW9uc31cbiAgICAgICAgICAgICAgICBleGNlZWRlZFNpdGVJZHM9e2V4Y2VlZGVkU2l0ZUlkcy5zaXRlSWRzfVxuICAgICAgICAgICAgICAgIG9uTm9kZUNsaWNrPXtvbk5vZGVDbGlja31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8UmlnaHRQYW5lbFxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2ByaWdodC1wYW5lbCAke3Nob3dSaWdodFBhbmVsID8gJ29wZW4nIDogJyd9YH1cbiAgICAgICAgICAgICAgcG9pbnQ9e3NlbGVjdGVkUG9pbnR9XG4gICAgICAgICAgICAgIG9uQ2xvc2U9eygpID0+IHtcbiAgICAgICAgICAgICAgICBzZXRTZWxlY3RlZFBvaW50KG51bGwpO1xuICAgICAgICAgICAgICAgIHNldFNob3dSaWdodFBhbmVsKGZhbHNlKTtcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9Db2w+XG4gICAgICAgIDwvUm93PlxuICAgICAgPC9Db250YWluZXI+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuZXhwb3J0IGRlZmF1bHQgSGllcmFyY2h5R3JhcGg7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBQyxZQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBRyxNQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxXQUFBLEdBQUFKLE9B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
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = void 0;
|
|
8
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectWithoutProperties"));
|
|
9
|
+
var _react = _interopRequireDefault(require("react"));
|
|
10
|
+
var _NodeLayout = _interopRequireDefault(require("./NodeLayout"));
|
|
11
|
+
var _reactI18next = require("react-i18next");
|
|
12
|
+
var _excluded = ["nodeDatum", "insightType"];
|
|
13
|
+
var formatInsightValue = function formatInsightValue(value) {
|
|
14
|
+
if (value === null || value === undefined) return '-';
|
|
15
|
+
if (typeof value === 'boolean') return value ? 'true' : 'false';
|
|
16
|
+
if (typeof value === 'number') return Number.isFinite(value) ? value : '-';
|
|
17
|
+
if (typeof value === 'string') return value.length ? value : '-';
|
|
18
|
+
return JSON.stringify(value);
|
|
19
|
+
};
|
|
20
|
+
var NetworkNode = function NetworkNode(_ref) {
|
|
21
|
+
var _nodeDatum$attributes;
|
|
22
|
+
var nodeDatum = _ref.nodeDatum,
|
|
23
|
+
insightType = _ref.insightType,
|
|
24
|
+
props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
|
|
25
|
+
var rawValue = (_nodeDatum$attributes = nodeDatum.attributes) === null || _nodeDatum$attributes === void 0 ? void 0 : _nodeDatum$attributes[insightType];
|
|
26
|
+
var value = formatInsightValue(rawValue);
|
|
27
|
+
return /*#__PURE__*/_react.default.createElement(_NodeLayout.default, Object.assign({
|
|
28
|
+
nodeDatum: nodeDatum
|
|
29
|
+
}, props), /*#__PURE__*/_react.default.createElement("div", {
|
|
30
|
+
className: "network-node__insight"
|
|
31
|
+
}, /*#__PURE__*/_react.default.createElement(_reactI18next.Trans, {
|
|
32
|
+
i18nKey: "events_overview.filter.insight_data.".concat(insightType)
|
|
33
|
+
}), ' ', ": ", value));
|
|
34
|
+
};
|
|
35
|
+
var _default = NetworkNode;
|
|
36
|
+
exports.default = _default;
|
|
37
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9Ob2RlTGF5b3V0IiwiX3JlYWN0STE4bmV4dCIsIl9leGNsdWRlZCIsImZvcm1hdEluc2lnaHRWYWx1ZSIsInZhbHVlIiwidW5kZWZpbmVkIiwiTnVtYmVyIiwiaXNGaW5pdGUiLCJsZW5ndGgiLCJKU09OIiwic3RyaW5naWZ5IiwiTmV0d29ya05vZGUiLCJfcmVmIiwiX25vZGVEYXR1bSRhdHRyaWJ1dGVzIiwibm9kZURhdHVtIiwiaW5zaWdodFR5cGUiLCJwcm9wcyIsIl9vYmplY3RXaXRob3V0UHJvcGVydGllczIiLCJkZWZhdWx0IiwicmF3VmFsdWUiLCJhdHRyaWJ1dGVzIiwiY3JlYXRlRWxlbWVudCIsIk9iamVjdCIsImFzc2lnbiIsImNsYXNzTmFtZSIsIlRyYW5zIiwiaTE4bktleSIsImNvbmNhdCIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91aS1raXQvSGllcmFyY2h5R3JhcGgvTmV0d29ya05vZGUudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgTm9kZUxheW91dCBmcm9tICcuL05vZGVMYXlvdXQnO1xuaW1wb3J0IHsgTm9kZVByb3BzIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBUcmFucyB9IGZyb20gJ3JlYWN0LWkxOG5leHQnO1xuXG50eXBlIE5ldHdvcmtOb2RlUHJvcHMgPSBOb2RlUHJvcHMgJiB7XG4gIGluc2lnaHRUeXBlOiBzdHJpbmc7XG59O1xuXG5jb25zdCBmb3JtYXRJbnNpZ2h0VmFsdWUgPSAodmFsdWU6IHVua25vd24pID0+IHtcbiAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQpIHJldHVybiAnLSc7XG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdib29sZWFuJykgcmV0dXJuIHZhbHVlID8gJ3RydWUnIDogJ2ZhbHNlJztcbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHJldHVybiBOdW1iZXIuaXNGaW5pdGUodmFsdWUpID8gdmFsdWUgOiAnLSc7XG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSByZXR1cm4gdmFsdWUubGVuZ3RoID8gdmFsdWUgOiAnLSc7XG4gIHJldHVybiBKU09OLnN0cmluZ2lmeSh2YWx1ZSk7XG59O1xuXG5jb25zdCBOZXR3b3JrTm9kZSA9ICh7XG4gIG5vZGVEYXR1bSxcbiAgaW5zaWdodFR5cGUsXG4gIC4uLnByb3BzXG59OiBOZXR3b3JrTm9kZVByb3BzKSA9PiB7XG4gIGNvbnN0IHJhd1ZhbHVlID0gbm9kZURhdHVtLmF0dHJpYnV0ZXM/LltpbnNpZ2h0VHlwZV07XG4gIGNvbnN0IHZhbHVlID0gZm9ybWF0SW5zaWdodFZhbHVlKHJhd1ZhbHVlKTtcblxuICByZXR1cm4gKFxuICAgIDxOb2RlTGF5b3V0IG5vZGVEYXR1bT17bm9kZURhdHVtfSB7Li4ucHJvcHN9PlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJuZXR3b3JrLW5vZGVfX2luc2lnaHRcIj5cbiAgICAgICAgPFRyYW5zIGkxOG5LZXk9e2BldmVudHNfb3ZlcnZpZXcuZmlsdGVyLmluc2lnaHRfZGF0YS4ke2luc2lnaHRUeXBlfWB9IC8+eycgJ31cbiAgICAgICAgOiB7dmFsdWV9XG4gICAgICA8L2Rpdj5cbiAgICA8L05vZGVMYXlvdXQ+XG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBOZXR3b3JrTm9kZTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxXQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBRSxhQUFBLEdBQUFGLE9BQUE7QUFBc0MsSUFBQUcsU0FBQTtBQU10QyxJQUFNQyxrQkFBa0IsR0FBRyxTQUFyQkEsa0JBQWtCQSxDQUFJQyxLQUFjLEVBQUs7RUFDN0MsSUFBSUEsS0FBSyxLQUFLLElBQUksSUFBSUEsS0FBSyxLQUFLQyxTQUFTLEVBQUUsT0FBTyxHQUFHO0VBQ3JELElBQUksT0FBT0QsS0FBSyxLQUFLLFNBQVMsRUFBRSxPQUFPQSxLQUFLLEdBQUcsTUFBTSxHQUFHLE9BQU87RUFDL0QsSUFBSSxPQUFPQSxLQUFLLEtBQUssUUFBUSxFQUFFLE9BQU9FLE1BQU0sQ0FBQ0MsUUFBUSxDQUFDSCxLQUFLLENBQUMsR0FBR0EsS0FBSyxHQUFHLEdBQUc7RUFDMUUsSUFBSSxPQUFPQSxLQUFLLEtBQUssUUFBUSxFQUFFLE9BQU9BLEtBQUssQ0FBQ0ksTUFBTSxHQUFHSixLQUFLLEdBQUcsR0FBRztFQUNoRSxPQUFPSyxJQUFJLENBQUNDLFNBQVMsQ0FBQ04sS0FBSyxDQUFDO0FBQzlCLENBQUM7QUFFRCxJQUFNTyxXQUFXLEdBQUcsU0FBZEEsV0FBV0EsQ0FBQUMsSUFBQSxFQUlPO0VBQUEsSUFBQUMscUJBQUE7RUFBQSxJQUh0QkMsU0FBUyxHQUFBRixJQUFBLENBQVRFLFNBQVM7SUFDVEMsV0FBVyxHQUFBSCxJQUFBLENBQVhHLFdBQVc7SUFDUkMsS0FBSyxPQUFBQyx5QkFBQSxDQUFBQyxPQUFBLEVBQUFOLElBQUEsRUFBQVYsU0FBQTtFQUVSLElBQU1pQixRQUFRLElBQUFOLHFCQUFBLEdBQUdDLFNBQVMsQ0FBQ00sVUFBVSxjQUFBUCxxQkFBQSx1QkFBcEJBLHFCQUFBLENBQXVCRSxXQUFXLENBQUM7RUFDcEQsSUFBTVgsS0FBSyxHQUFHRCxrQkFBa0IsQ0FBQ2dCLFFBQVEsQ0FBQztFQUUxQyxvQkFDRXRCLE1BQUEsQ0FBQXFCLE9BQUEsQ0FBQUcsYUFBQSxDQUFDckIsV0FBQSxDQUFBa0IsT0FBVSxFQUFBSSxNQUFBLENBQUFDLE1BQUE7SUFBQ1QsU0FBUyxFQUFFQTtFQUFVLEdBQUtFLEtBQUssZ0JBQ3pDbkIsTUFBQSxDQUFBcUIsT0FBQSxDQUFBRyxhQUFBO0lBQUtHLFNBQVMsRUFBQztFQUF1QixnQkFDcEMzQixNQUFBLENBQUFxQixPQUFBLENBQUFHLGFBQUEsQ0FBQ3BCLGFBQUEsQ0FBQXdCLEtBQUs7SUFBQ0MsT0FBTyx5Q0FBQUMsTUFBQSxDQUF5Q1osV0FBVztFQUFHLENBQUUsQ0FBQyxFQUFDLEdBQUcsRUFBQyxJQUMzRSxFQUFDWCxLQUNBLENBQ0ssQ0FBQztBQUVqQixDQUFDO0FBQUMsSUFBQXdCLFFBQUEsR0FFYWpCLFdBQVc7QUFBQWtCLE9BQUEsQ0FBQVgsT0FBQSxHQUFBVSxRQUFBIn0=
|