@kando-env/kando-ui 1.2.437-alpha.3 → 1.2.437-alpha.4
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.
|
@@ -5,7 +5,7 @@ var _typeof = require("@babel/runtime/helpers/typeof");
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
exports.recursiveDownStreamSearch = exports.pointIsObservation = exports.pointIsCollector = exports.nextLevelDownStream = exports.isCollectorUnmonitored = exports.getUpstreamEdges = exports.getFirstEdgeOfEventPath = exports.findUpstreamEdgesToDraw = exports.findEdgesFromEventPathToDraw = exports.findDownstreamEdgesToDraw = exports.findAndDrawEventNetworkEdges = exports.drawNetwork = exports.drawManholeIcon = void 0;
|
|
8
|
+
exports.recursiveDownStreamSearch = exports.pointIsObservation = exports.pointIsCollector = exports.nextLevelDownStream = exports.isCollectorUnmonitored = exports.getUpstreamEdges = exports.getFirstEdgeOfEventPath = exports.findUpstreamEdgesToDraw = exports.findEdgesFromEventPathToDraw = exports.findDownstreamEdgesToDraw = exports.findAndDrawEventNetworkEdges = exports.drawNetworkBatched = exports.drawNetwork = exports.drawManholeIcon = void 0;
|
|
9
9
|
var L = _interopRequireWildcard(require("leaflet"));
|
|
10
10
|
require("utilities/polylinedecorator");
|
|
11
11
|
var _whitePoint = _interopRequireDefault(require("../../../assets/white-point.png"));
|
|
@@ -205,7 +205,8 @@ var findAndDrawEventNetworkEdges = function findAndDrawEventNetworkEdges(edges,
|
|
|
205
205
|
if (upstreamEdges.length !== 0) findUpstreamEdgesToDraw(upstreamEdges, edgesToDraw, points, edges);
|
|
206
206
|
findDownstreamEdgesToDraw(firstEdge, edges, downstreamNetwork, edgesToDraw);
|
|
207
207
|
}
|
|
208
|
-
|
|
208
|
+
drawNetworkBatched(edgesToDraw, points, dispatch, map, event, layerGroup, flowRateUnit, 25 // batch size, adjust as needed
|
|
209
|
+
);
|
|
209
210
|
};
|
|
210
211
|
exports.findAndDrawEventNetworkEdges = findAndDrawEventNetworkEdges;
|
|
211
212
|
var pointIsObservation = function pointIsObservation(event, point) {
|
|
@@ -237,4 +238,78 @@ var isCollectorUnmonitored = function isCollectorUnmonitored(point) {
|
|
|
237
238
|
// );
|
|
238
239
|
// };
|
|
239
240
|
exports.isCollectorUnmonitored = isCollectorUnmonitored;
|
|
240
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJMIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJyZXF1aXJlIiwiX3doaXRlUG9pbnQiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2FjdGlvbnMiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJub2RlSW50ZXJvcCIsIldlYWtNYXAiLCJjYWNoZUJhYmVsSW50ZXJvcCIsImNhY2hlTm9kZUludGVyb3AiLCJvYmoiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImRlZmF1bHQiLCJjYWNoZSIsImhhcyIsImdldCIsIm5ld09iaiIsImhhc1Byb3BlcnR5RGVzY3JpcHRvciIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiZGVzYyIsInNldCIsImRyYXdNYW5ob2xlSWNvbiIsInNvdXJjZVBvaW50IiwibWFwIiwicG9pbnRJY29uIiwiaWNvbiIsImljb25VcmwiLCJ3aGl0ZVBvaW50IiwiaWNvblNpemUiLCJpY29uQW5jaG9yIiwibWFuaG9sZUljb24iLCJtYXJrZXIiLCJsYXRpdHVkZSIsImxvbmdpdHVkZSIsInJpc2VPbkhvdmVyIiwiYWRkVG8iLCJiaW5kVG9vbHRpcCIsImNvbmNhdCIsImdyb3VwIiwibmFtZSIsInNlY3Rvcl9uYW1lIiwiaWQiLCJleHBvcnRzIiwiZ2V0Rmlyc3RFZGdlT2ZFdmVudFBhdGgiLCJlZGdlcyIsImV2ZW50IiwicGF0aCIsInVuZGVmaW5lZCIsImZpbmQiLCJlZGdlIiwiZWRnZV9pZCIsImZpbmRFZGdlcyIsIm5leHRVcHN0cmVhbUxldmVsSWRzIiwiZmlsdGVyIiwiaW5jbHVkZXMiLCJ0YXJnZXRfcG9pbnRfaWQiLCJyZWN1cnNpdmVVcHN0cmVhbVNlYXJjaCIsIm5leHRMZXZlbCIsIm1hcEFsbEVkZ2VzTmVzdGluZyIsImFsbFVwc3RyZWFtRWRnZXMiLCJzb3VyY2VfcG9pbnRfaWQiLCJsZW5ndGgiLCJwdXNoIiwibWFwcGVkIiwiZm9yRWFjaCIsImdldFVwc3RyZWFtRWRnZXMiLCJmaXJzdEVkZ2UiLCJmaXJzdFVwc3RyZWFtTGV2ZWwiLCJmaW5kVXBzdHJlYW1FZGdlc1RvRHJhdyIsInVwc3RyZWFtRWRnZXMiLCJlZGdlc1RvRHJhdyIsInBvaW50cyIsInVwc3RyZWFtRWRnZSIsInBvaW50IiwiY29ubmVjdGlvbkVkZ2VzIiwiZmluZERvd25zdHJlYW1FZGdlc1RvRHJhdyIsImRvd25zdHJlYW1OZXR3b3JrIiwicmVjdXJzaXZlRG93blN0cmVhbVNlYXJjaCIsImRvd25TdHJlYW1FZGdlIiwibGFzdERvd25TdHJlYW1FZGdlIiwibmV4dExldmVsRG93blN0cmVhbSIsImZpbmRFZGdlc0Zyb21FdmVudFBhdGhUb0RyYXciLCJwYXJ0IiwibWF0Y2hlZFBhcnQiLCJkcmF3TmV0d29yayIsImRpc3BhdGNoIiwibGF5ZXJHcm91cCIsImZsb3dSYXRlVW5pdCIsImxhdGxuZ3MiLCJzaGFwZV9kYXRhIiwiZGF0YSIsImxhdCIsImxuZyIsInBvbHlsaW5lQmFjayIsInBvbHlsaW5lIiwiY29sb3IiLCJ3ZWlnaHQiLCJvcGFjaXR5IiwidGFpbERhc2giLCJ3aW5kb3ciLCJTeW1ib2wiLCJwb2x5bGluZURlY29yYXRvciIsIl9sYXRsbmdzIiwicGF0dGVybnMiLCJvZmZzZXQiLCJyZXBlYXQiLCJzeW1ib2wiLCJhcnJvd0hlYWQiLCJwaXhlbFNpemUiLCJwb2x5Z29uIiwicGF0aE9wdGlvbnMiLCJzdHJva2UiLCJhZGRMYXllciIsImhvdmVyZWQiLCJmb2N1c2VkIiwiYnJpbmdUb0Zyb250IiwicG9seWxpbmVGcm9udCIsInNldEhvdmVyZWRFZGdlUGF0aHMiLCJwb2ludEZpbmRlciIsInRhcmdldFBvaW50IiwiYmluZFBvcHVwIiwiZGlzdGFuY2UiLCJkZXNpcmVkUG9pbnRJZCIsImRlc2lyZWRQb2ludCIsImZpbmRBbmREcmF3RXZlbnROZXR3b3JrRWRnZXMiLCJwb2ludElzT2JzZXJ2YXRpb24iLCJvYnNlcnZhdGlvbnMiLCJvYnMiLCJwb2ludF9pZCIsInBvaW50SXNDb2xsZWN0b3IiLCJ0eXBlIiwiaXNDb2xsZWN0b3JVbm1vbml0b3JlZCIsImhhc19kZXZpY2UiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvV2lkZ2V0cy9NYXAvZXZlbnRzL0V2ZW50VXRpbHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgTCBmcm9tICdsZWFmbGV0JztcbmltcG9ydCAnc3JjL3V0aWxpdGllcy9wb2x5bGluZWRlY29yYXRvcic7XG5pbXBvcnQgd2hpdGVQb2ludCBmcm9tICcuLi8uLi8uLi9hc3NldHMvd2hpdGUtcG9pbnQucG5nJztcbmltcG9ydCB7IElFZGdlIH0gZnJvbSAnLi4vLi4vLi4vc3RvcmUvZWRnZXMvbW9kZWxzL0lFZGdlJztcbmltcG9ydCB7IElQb2ludCB9IGZyb20gJy4uLy4uLy4uL3N0b3JlL3BvaW50cy9tb2RlbHMvSVBvaW50JztcbmltcG9ydCB7IElFdmVudCB9IGZyb20gJy4uLy4uLy4uL3N0b3JlL2V2ZW50cy9tb2RlbHMvSUV2ZW50JztcbmltcG9ydCB7IHNldEhvdmVyZWRFZGdlUGF0aHMgfSBmcm9tICcuLi8uLi8uLi9zdG9yZS9ldmVudHMvYWN0aW9ucyc7XG5cbmV4cG9ydCBjb25zdCBkcmF3TWFuaG9sZUljb24gPSAoc291cmNlUG9pbnQ6IElQb2ludCwgbWFwOiBMLk1hcCkgPT4ge1xuICBsZXQgcG9pbnRJY29uID0gTC5pY29uKHtcbiAgICBpY29uVXJsOiB3aGl0ZVBvaW50LFxuICAgIGljb25TaXplOiBbOSwgOV0sXG4gICAgaWNvbkFuY2hvcjogWzQuNSwgNC41XSxcbiAgfSk7XG5cbiAgbGV0IG1hbmhvbGVJY29uOiBhbnkgPSBMLm1hcmtlcihcbiAgICBbc291cmNlUG9pbnQubGF0aXR1ZGUsIHNvdXJjZVBvaW50LmxvbmdpdHVkZV0sXG4gICAge1xuICAgICAgaWNvbjogcG9pbnRJY29uLFxuICAgICAgcmlzZU9uSG92ZXI6IHRydWUsXG4gICAgfSxcbiAgKS5hZGRUbyhtYXApO1xuICBtYW5ob2xlSWNvbi5iaW5kVG9vbHRpcChcbiAgICBgJHtzb3VyY2VQb2ludC5ncm91cC5uYW1lfSAoJHtzb3VyY2VQb2ludC5ncm91cC5zZWN0b3JfbmFtZX0pYCxcbiAgKTtcbiAgbWFuaG9sZUljb25bJ2thbmRvX29iamVjdF9pZCddID0gc291cmNlUG9pbnQuaWQ7XG4gIG1hbmhvbGVJY29uWydrYW5kb19vYmplY3QnXSA9ICdVcHN0cmVhbVBvaW50Jztcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRGaXJzdEVkZ2VPZkV2ZW50UGF0aCA9IChlZGdlczogSUVkZ2VbXSwgZXZlbnQ6IElFdmVudCkgPT4ge1xuICBpZiAoZXZlbnQucGF0aFswXSA9PT0gdW5kZWZpbmVkKSByZXR1cm47XG4gIHJldHVybiBlZGdlcy5maW5kKChlZGdlKSA9PiBlZGdlLmlkID09PSBldmVudC5wYXRoWzBdLmVkZ2VfaWQpO1xufTtcblxuY29uc3QgZmluZEVkZ2VzID0gKGVkZ2VzLCBuZXh0VXBzdHJlYW1MZXZlbElkcykgPT4ge1xuICByZXR1cm4gZWRnZXMuZmlsdGVyKChlZGdlOiBJRWRnZSkgPT5cbiAgICBuZXh0VXBzdHJlYW1MZXZlbElkcy5pbmNsdWRlcyhlZGdlLnRhcmdldF9wb2ludF9pZCksXG4gICk7XG59O1xuXG5jb25zdCByZWN1cnNpdmVVcHN0cmVhbVNlYXJjaCA9IChcbiAgbmV4dExldmVsLFxuICBlZGdlcyxcbiAgbWFwQWxsRWRnZXNOZXN0aW5nLFxuICBhbGxVcHN0cmVhbUVkZ2VzLFxuKSA9PiB7XG4gIGxldCBuZXh0VXBzdHJlYW1MZXZlbElkcyA9IG5leHRMZXZlbC5tYXAoKGVkZ2UpID0+IGVkZ2Uuc291cmNlX3BvaW50X2lkKTtcbiAgaWYgKGZpbmRFZGdlcyhlZGdlcywgbmV4dFVwc3RyZWFtTGV2ZWxJZHMpLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBtYXBBbGxFZGdlc05lc3RpbmcoW25leHRMZXZlbF0pO1xuICB9IGVsc2Uge1xuICAgIGFsbFVwc3RyZWFtRWRnZXMucHVzaChmaW5kRWRnZXMoZWRnZXMsIG5leHRVcHN0cmVhbUxldmVsSWRzKSk7XG4gICAgcmVjdXJzaXZlVXBzdHJlYW1TZWFyY2goXG4gICAgICBmaW5kRWRnZXMoZWRnZXMsIG5leHRVcHN0cmVhbUxldmVsSWRzKSxcbiAgICAgIGVkZ2VzLFxuICAgICAgbWFwQWxsRWRnZXNOZXN0aW5nLFxuICAgICAgYWxsVXBzdHJlYW1FZGdlcyxcbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIG1hcEFsbEVkZ2VzTmVzdGluZyhhbGxVcHN0cmVhbUVkZ2VzKTtcbn07XG5cbmNvbnN0IG1hcEFsbEVkZ2VzTmVzdGluZyA9IChhbGxVcHN0cmVhbUVkZ2VzKSA9PiB7XG4gIGxldCBtYXBwZWQ6IGFueVtdID0gW107XG4gIGFsbFVwc3RyZWFtRWRnZXMuZm9yRWFjaCgoZWRnZXMpID0+IHtcbiAgICBlZGdlcy5mb3JFYWNoKChlZGdlKSA9PiB7XG4gICAgICBtYXBwZWQucHVzaChlZGdlKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgcmV0dXJuIG1hcHBlZDtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRVcHN0cmVhbUVkZ2VzID0gKGZpcnN0RWRnZTogSUVkZ2UsIGVkZ2VzOiBJRWRnZVtdKSA9PiB7XG4gIGxldCBhbGxVcHN0cmVhbUVkZ2VzOiBhbnlbXSA9IFtdO1xuICBsZXQgZmlyc3RVcHN0cmVhbUxldmVsOiBJRWRnZVtdID0gZWRnZXMuZmlsdGVyKFxuICAgIChlZGdlKSA9PiBlZGdlLnRhcmdldF9wb2ludF9pZCA9PT0gZmlyc3RFZGdlPy5zb3VyY2VfcG9pbnRfaWQsXG4gICk7XG5cbiAgcmV0dXJuIHJlY3Vyc2l2ZVVwc3RyZWFtU2VhcmNoKFxuICAgIGZpcnN0VXBzdHJlYW1MZXZlbCxcbiAgICBlZGdlcyxcbiAgICBtYXBBbGxFZGdlc05lc3RpbmcsXG4gICAgYWxsVXBzdHJlYW1FZGdlcyxcbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBmaW5kVXBzdHJlYW1FZGdlc1RvRHJhdyA9IChcbiAgdXBzdHJlYW1FZGdlczogSUVkZ2VbXSxcbiAgZWRnZXNUb0RyYXc6IElFZGdlW10sXG4gIHBvaW50czogSVBvaW50W10sXG4gIGVkZ2VzOiBJRWRnZVtdLFxuKSA9PiB7XG4gIHVwc3RyZWFtRWRnZXMuZm9yRWFjaCgodXBzdHJlYW1FZGdlKSA9PiB7XG4gICAgaWYgKHVwc3RyZWFtRWRnZSkge1xuICAgICAgbGV0IHNvdXJjZVBvaW50ID0gcG9pbnRzLmZpbmQoXG4gICAgICAgIChwb2ludCkgPT4gcG9pbnQuaWQgPT09IHVwc3RyZWFtRWRnZSEuc291cmNlX3BvaW50X2lkLFxuICAgICAgKTtcblxuICAgICAgaWYgKHNvdXJjZVBvaW50KSBlZGdlc1RvRHJhdy5wdXNoKHVwc3RyZWFtRWRnZSk7XG5cbiAgICAgIGxldCBjb25uZWN0aW9uRWRnZXMgPSBlZGdlcy5maWx0ZXIoXG4gICAgICAgIChlZGdlKSA9PiBlZGdlPy5zb3VyY2VfcG9pbnRfaWQgPT09IHVwc3RyZWFtRWRnZSEudGFyZ2V0X3BvaW50X2lkLFxuICAgICAgKTtcblxuICAgICAgaWYgKGNvbm5lY3Rpb25FZGdlcy5sZW5ndGggIT09IDApIHtcbiAgICAgICAgY29ubmVjdGlvbkVkZ2VzLmZvckVhY2goKGVkZ2UpID0+IGVkZ2VzVG9EcmF3LnB1c2goZWRnZSkpO1xuICAgICAgfVxuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIGVkZ2VzVG9EcmF3O1xufTtcblxuZXhwb3J0IGNvbnN0IGZpbmREb3duc3RyZWFtRWRnZXNUb0RyYXcgPSAoXG4gIGZpcnN0RWRnZTogSUVkZ2UsXG4gIGVkZ2VzOiBJRWRnZVtdLFxuICBkb3duc3RyZWFtTmV0d29yayxcbiAgZWRnZXNUb0RyYXcsXG4pID0+IHtcbiAgcmVjdXJzaXZlRG93blN0cmVhbVNlYXJjaChkb3duc3RyZWFtTmV0d29yaywgZWRnZXMpLmZvckVhY2goXG4gICAgKGRvd25TdHJlYW1FZGdlKSA9PiB7XG4gICAgICBlZGdlc1RvRHJhdy5wdXNoKGRvd25TdHJlYW1FZGdlKTtcbiAgICB9LFxuICApO1xufTtcblxuZXhwb3J0IGNvbnN0IHJlY3Vyc2l2ZURvd25TdHJlYW1TZWFyY2ggPSAoXG4gIGRvd25zdHJlYW1OZXR3b3JrOiBJRWRnZVtdLFxuICBlZGdlczogSUVkZ2VbXSxcbikgPT4ge1xuICBsZXQgbGFzdERvd25TdHJlYW1FZGdlID0gZG93bnN0cmVhbU5ldHdvcmtbZG93bnN0cmVhbU5ldHdvcmsubGVuZ3RoIC0gMV07XG5cbiAgaWYgKG5leHRMZXZlbERvd25TdHJlYW0obGFzdERvd25TdHJlYW1FZGdlLCBlZGdlcykubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIGRvd25zdHJlYW1OZXR3b3JrO1xuICB9IGVsc2Uge1xuICAgIG5leHRMZXZlbERvd25TdHJlYW0obGFzdERvd25TdHJlYW1FZGdlLCBlZGdlcykuZm9yRWFjaCgoZWRnZSkgPT4ge1xuICAgICAgZG93bnN0cmVhbU5ldHdvcmsucHVzaChlZGdlKTtcbiAgICAgIHJlY3Vyc2l2ZURvd25TdHJlYW1TZWFyY2goZG93bnN0cmVhbU5ldHdvcmssIGVkZ2VzKTtcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiBkb3duc3RyZWFtTmV0d29yaztcbn07XG5cbmV4cG9ydCBjb25zdCBuZXh0TGV2ZWxEb3duU3RyZWFtID0gKGZpcnN0RWRnZTogSUVkZ2UsIGVkZ2VzOiBJRWRnZVtdKSA9PiB7XG4gIHJldHVybiBlZGdlcy5maWx0ZXIoXG4gICAgKGVkZ2UpID0+IGVkZ2Uuc291cmNlX3BvaW50X2lkID09PSBmaXJzdEVkZ2UudGFyZ2V0X3BvaW50X2lkLFxuICApO1xufTtcblxuZXhwb3J0IGNvbnN0IGZpbmRFZGdlc0Zyb21FdmVudFBhdGhUb0RyYXcgPSAoXG4gIGVkZ2VzVG9EcmF3OiBJRWRnZVtdLFxuICBldmVudDogSUV2ZW50LFxuICBlZGdlczogSUVkZ2VbXSxcbikgPT4ge1xuICBldmVudC5wYXRoLmZvckVhY2goKHBhcnQpID0+IHtcbiAgICBsZXQgbWF0Y2hlZFBhcnQgPSBlZGdlcy5maW5kKChlZGdlKSA9PiBlZGdlLmlkID09PSBwYXJ0LmVkZ2VfaWQpO1xuICAgIGlmIChtYXRjaGVkUGFydCAhPT0gdW5kZWZpbmVkKSBlZGdlc1RvRHJhdy5wdXNoKG1hdGNoZWRQYXJ0KTtcbiAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgZHJhd05ldHdvcmsgPSAoXG4gIGVkZ2VzOiBJRWRnZVtdLFxuICBwb2ludHM6IElQb2ludFtdLFxuICBkaXNwYXRjaCxcbiAgbWFwLFxuICBldmVudCxcbiAgbGF5ZXJHcm91cCxcbiAgZmxvd1JhdGVVbml0LFxuKSA9PiB7XG4gIGxldCBsYXRsbmdzOiBhbnkgPSBbXTtcbiAgZWRnZXMuZm9yRWFjaCgoZWRnZSkgPT4ge1xuICAgIGVkZ2Uuc2hhcGVfZGF0YS5mb3JFYWNoKChkYXRhOiBhbnkpID0+IHtcbiAgICAgIGxhdGxuZ3MucHVzaChbZGF0YS5sYXQsIGRhdGEubG5nXSk7XG4gICAgfSk7XG5cbiAgICBsZXQgcG9seWxpbmVCYWNrOiBhbnkgPSBMLnBvbHlsaW5lKGxhdGxuZ3MsIHtcbiAgICAgIGNvbG9yOiAncmdiKDIyNywyMjcsMjI3KScsXG4gICAgICB3ZWlnaHQ6IDEsXG4gICAgICBvcGFjaXR5OiAxLFxuICAgIH0pO1xuXG4gICAgbGV0IHRhaWxEYXNoOiBhbnk7XG5cbiAgICBpZiAod2luZG93LkwuU3ltYm9sICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRhaWxEYXNoID0gd2luZG93LkwucG9seWxpbmVEZWNvcmF0b3IocG9seWxpbmVCYWNrLl9sYXRsbmdzLCB7XG4gICAgICAgIHBhdHRlcm5zOiBbXG4gICAgICAgICAgLy8gZGVmaW5lcyBhIHBhdHRlcm4gb2YgMTBweC13aWRlIGRhc2hlcywgcmVwZWF0ZWQgZXZlcnkgMjBweCBvbiB0aGUgbGluZVxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG9mZnNldDogMjAsXG4gICAgICAgICAgICByZXBlYXQ6IDYwLFxuICAgICAgICAgICAgc3ltYm9sOiB3aW5kb3cuTC5TeW1ib2wuYXJyb3dIZWFkKHtcbiAgICAgICAgICAgICAgcGl4ZWxTaXplOiAzLFxuICAgICAgICAgICAgICBwb2x5Z29uOiBmYWxzZSxcbiAgICAgICAgICAgICAgcGF0aE9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICBzdHJva2U6IHRydWUsXG4gICAgICAgICAgICAgICAgY29sb3I6ICcjNTU1JyxcbiAgICAgICAgICAgICAgICB3ZWlnaHQ6IDEsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSk7XG4gICAgICB0YWlsRGFzaFsna2FuZG9fb2JqZWN0J10gPSAnRGVjb3JhdG9yJztcbiAgICAgIGxheWVyR3JvdXAuYWRkTGF5ZXIodGFpbERhc2gpO1xuICAgIH1cblxuICAgIHBvbHlsaW5lQmFja1sna2FuZG9fb2JqZWN0X2lkJ10gPSBlZGdlLmlkO1xuICAgIGlmIChldmVudC5ob3ZlcmVkKSBwb2x5bGluZUJhY2tbJ2thbmRvX29iamVjdCddID0gJ0hvdmVyZWRFZGdlJztcbiAgICBpZiAoZXZlbnQuZm9jdXNlZCkgcG9seWxpbmVCYWNrWydrYW5kb19vYmplY3QnXSA9ICdGb2N1c2VkRWRnZSc7XG4gICAgaWYgKG1hcCAhPT0gbnVsbCkgbGF5ZXJHcm91cC5hZGRMYXllcihwb2x5bGluZUJhY2spO1xuICAgIHBvbHlsaW5lQmFjay5icmluZ1RvRnJvbnQoKTtcbiAgICBpZiAoTC5TeW1ib2wgIT09IHVuZGVmaW5lZCkgdGFpbERhc2guYnJpbmdUb0Zyb250KCk7XG5cbiAgICBsZXQgcG9seWxpbmVGcm9udDogYW55ID0gTC5wb2x5bGluZShsYXRsbmdzLCB7XG4gICAgICBjb2xvcjogJ3JnYigyOSwyOSwyOSknLFxuICAgICAgd2VpZ2h0OiAxLFxuICAgICAgb3BhY2l0eTogMSxcbiAgICB9KTtcblxuICAgIHBvbHlsaW5lRnJvbnRbJ2thbmRvX29iamVjdF9pZCddID0gZWRnZS5pZDtcbiAgICBpZiAoZXZlbnQuaG92ZXJlZCkgcG9seWxpbmVGcm9udFsna2FuZG9fb2JqZWN0J10gPSAnSG92ZXJlZEVkZ2VGcm9udCc7XG4gICAgaWYgKGV2ZW50LmZvY3VzZWQpIHBvbHlsaW5lRnJvbnRbJ2thbmRvX29iamVjdCddID0gJ0ZvY3VzZWRFZGdlRnJvbnQnO1xuICAgIGlmIChtYXAgIT09IG51bGwpIGxheWVyR3JvdXAuYWRkTGF5ZXIocG9seWxpbmVGcm9udCk7XG4gICAgcG9seWxpbmVCYWNrLmFkZFRvKG1hcCk7XG4gICAgcG9seWxpbmVGcm9udC5hZGRUbyhtYXApO1xuXG4gICAgcG9seWxpbmVGcm9udC5icmluZ1RvRnJvbnQoKTtcbiAgICBpZiAoZXZlbnQuaG92ZXJlZClcbiAgICAgIGRpc3BhdGNoKHNldEhvdmVyZWRFZGdlUGF0aHMoW3BvbHlsaW5lQmFjaywgcG9seWxpbmVGcm9udF0pKTtcbiAgICBsYXRsbmdzID0gW107XG5cbiAgICBpZiAocG9pbnRzLmxlbmd0aCAhPT0gMCkge1xuICAgICAgbGV0IHNvdXJjZVBvaW50OiBJUG9pbnQgPSBwb2ludEZpbmRlcihwb2ludHMsIGVkZ2Uuc291cmNlX3BvaW50X2lkKTtcbiAgICAgIGxldCB0YXJnZXRQb2ludDogSVBvaW50ID0gcG9pbnRGaW5kZXIocG9pbnRzLCBlZGdlLnRhcmdldF9wb2ludF9pZCk7XG4gICAgICBpZiAoc291cmNlUG9pbnQgIT09IHVuZGVmaW5lZCAmJiB0YXJnZXRQb2ludCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHBvbHlsaW5lQmFjay5iaW5kUG9wdXAoYEVkZ2UgSUQ6ICR7ZWRnZS5pZH0sPGJyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTb3VyY2UgcG9pbnQ6ICR7c291cmNlUG9pbnQuZ3JvdXAubmFtZX0sPGJyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUYXJnZXQgcG9pbnQ6ICR7dGFyZ2V0UG9pbnQuZ3JvdXAubmFtZX0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERpc3RhbmNlOiAke2VkZ2UuZGlzdGFuY2V9YCk7XG4gICAgICB9XG4gICAgICAvLyBjcmVhdGVQb2ludExvZ2ljKHNvdXJjZVBvaW50LCBtYXAsIGxheWVyR3JvdXAsIGZsb3dSYXRlVW5pdCk7XG4gICAgICAvLyBpZiAoZWRnZXNbZWRnZXMubGVuZ3RoIC0gMV0udGFyZ2V0X3BvaW50X2lkID09PSBlZGdlLnRhcmdldF9wb2ludF9pZCkge1xuICAgICAgLy8gICBjcmVhdGVQb2ludExvZ2ljKHRhcmdldFBvaW50LCBtYXAsIGxheWVyR3JvdXApO1xuICAgICAgLy8gfVxuICAgIH1cbiAgfSk7XG59O1xuXG5jb25zdCBwb2ludEZpbmRlciA9IChwb2ludHMsIGRlc2lyZWRQb2ludElkKSA9PiB7XG4gIGxldCBkZXNpcmVkUG9pbnQ6IElQb2ludCA9IHBvaW50cy5maW5kKFxuICAgIChwb2ludDogSVBvaW50KSA9PiBwb2ludC5pZCA9PT0gZGVzaXJlZFBvaW50SWQsXG4gICk7XG5cbiAgcmV0dXJuIGRlc2lyZWRQb2ludDtcbn07XG5cbmV4cG9ydCBjb25zdCBmaW5kQW5kRHJhd0V2ZW50TmV0d29ya0VkZ2VzID0gKFxuICBlZGdlczogSUVkZ2VbXSxcbiAgZXZlbnQ6IElFdmVudCxcbiAgcG9pbnRzOiBJUG9pbnRbXSxcbiAgZGlzcGF0Y2gsXG4gIG1hcCxcbiAgbGF5ZXJHcm91cCxcbiAgZmxvd1JhdGVVbml0LFxuKSA9PiB7XG4gIGxldCBlZGdlc1RvRHJhdzogSUVkZ2VbXSA9IFtdO1xuICBsZXQgZmlyc3RFZGdlID0gZ2V0Rmlyc3RFZGdlT2ZFdmVudFBhdGgoZWRnZXMsIGV2ZW50KTtcblxuICBpZiAoZmlyc3RFZGdlICE9PSB1bmRlZmluZWQpIHtcbiAgICBsZXQgZG93bnN0cmVhbU5ldHdvcms6IElFZGdlW10gPSBbZmlyc3RFZGdlXTtcbiAgICBsZXQgdXBzdHJlYW1FZGdlcyA9IGdldFVwc3RyZWFtRWRnZXMoZmlyc3RFZGdlLCBlZGdlcyk7XG4gICAgaWYgKHVwc3RyZWFtRWRnZXMgPT09IHVuZGVmaW5lZCkgcmV0dXJuO1xuICAgIGlmICh1cHN0cmVhbUVkZ2VzLmxlbmd0aCAhPT0gMClcbiAgICAgIGZpbmRVcHN0cmVhbUVkZ2VzVG9EcmF3KHVwc3RyZWFtRWRnZXMsIGVkZ2VzVG9EcmF3LCBwb2ludHMsIGVkZ2VzKTtcbiAgICBmaW5kRG93bnN0cmVhbUVkZ2VzVG9EcmF3KGZpcnN0RWRnZSwgZWRnZXMsIGRvd25zdHJlYW1OZXR3b3JrLCBlZGdlc1RvRHJhdyk7XG4gIH1cblxuICBkcmF3TmV0d29yayhcbiAgICBlZGdlc1RvRHJhdyxcbiAgICBwb2ludHMsXG4gICAgZGlzcGF0Y2gsXG4gICAgbWFwLFxuICAgIGV2ZW50LFxuICAgIGxheWVyR3JvdXAsXG4gICAgZmxvd1JhdGVVbml0LFxuICApO1xufTtcblxuZXhwb3J0IGNvbnN0IHBvaW50SXNPYnNlcnZhdGlvbiA9IChldmVudDogSUV2ZW50LCBwb2ludDogSVBvaW50KSA9PiB7XG4gIHJldHVybiBldmVudC5vYnNlcnZhdGlvbnMuZmluZCgob2JzKSA9PiBvYnMucG9pbnRfaWQgPT09IHBvaW50LmlkKTtcbn07XG5cbmV4cG9ydCBjb25zdCBwb2ludElzQ29sbGVjdG9yID0gKHBvaW50OiBJUG9pbnQpID0+IHtcbiAgcmV0dXJuIHBvaW50Lmdyb3VwLnR5cGUgPT09ICdHcm91cHM6OkNvbGxlY3RvcnMnO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzQ29sbGVjdG9yVW5tb25pdG9yZWQgPSAocG9pbnQ6IElQb2ludCkgPT4ge1xuICByZXR1cm4gcG9pbnRJc0NvbGxlY3Rvcihwb2ludCkgJiYgIXBvaW50Lmhhc19kZXZpY2U7XG59O1xuXG4vLyBjb25zdCBjcmVhdGVQb2ludExvZ2ljID0gKHBvaW50OiBJUG9pbnQsIG1hcCwgbGF5ZXJHcm91cCwgZmxvd1JhdGVVbml0KSA9PiB7XG4vLyAgIGlmIChpc0NvbGxlY3RvclVubW9uaXRvcmVkKHBvaW50KSkge1xuLy8gICAgIHJldHVybjtcbi8vICAgfVxuXG4vLyAgIGNyZWF0ZUJ1YmJsZVBvaW50KFxuLy8gICAgIFtwb2ludC5sYXRpdHVkZSwgcG9pbnQubG9uZ2l0dWRlXSxcbi8vICAgICBwb2ludCxcbi8vICAgICBtYXAsXG4vLyAgICAgbnVsbCxcbi8vICAgICBsYXllckdyb3VwLFxuLy8gICAgIGZsb3dSYXRlVW5pdCxcbi8vICAgKTtcbi8vIH07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUEsSUFBQUEsQ0FBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0FBLE9BQUE7QUFDQSxJQUFBQyxXQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFJQSxJQUFBRyxRQUFBLEdBQUFILE9BQUE7QUFBb0UsU0FBQUkseUJBQUFDLFdBQUEsZUFBQUMsT0FBQSxrQ0FBQUMsaUJBQUEsT0FBQUQsT0FBQSxRQUFBRSxnQkFBQSxPQUFBRixPQUFBLFlBQUFGLHdCQUFBLFlBQUFBLHlCQUFBQyxXQUFBLFdBQUFBLFdBQUEsR0FBQUcsZ0JBQUEsR0FBQUQsaUJBQUEsS0FBQUYsV0FBQTtBQUFBLFNBQUFOLHdCQUFBVSxHQUFBLEVBQUFKLFdBQUEsU0FBQUEsV0FBQSxJQUFBSSxHQUFBLElBQUFBLEdBQUEsQ0FBQUMsVUFBQSxXQUFBRCxHQUFBLFFBQUFBLEdBQUEsYUFBQUUsT0FBQSxDQUFBRixHQUFBLHlCQUFBQSxHQUFBLDRCQUFBRyxPQUFBLEVBQUFILEdBQUEsVUFBQUksS0FBQSxHQUFBVCx3QkFBQSxDQUFBQyxXQUFBLE9BQUFRLEtBQUEsSUFBQUEsS0FBQSxDQUFBQyxHQUFBLENBQUFMLEdBQUEsWUFBQUksS0FBQSxDQUFBRSxHQUFBLENBQUFOLEdBQUEsU0FBQU8sTUFBQSxXQUFBQyxxQkFBQSxHQUFBQyxNQUFBLENBQUFDLGNBQUEsSUFBQUQsTUFBQSxDQUFBRSx3QkFBQSxXQUFBQyxHQUFBLElBQUFaLEdBQUEsUUFBQVksR0FBQSxrQkFBQUgsTUFBQSxDQUFBSSxTQUFBLENBQUFDLGNBQUEsQ0FBQUMsSUFBQSxDQUFBZixHQUFBLEVBQUFZLEdB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
|
|
241
|
+
var drawNetworkBatched = function drawNetworkBatched(edges, points, dispatch, map, event, layerGroup, flowRateUnit) {
|
|
242
|
+
var batchSize = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : 25;
|
|
243
|
+
var i = 0;
|
|
244
|
+
function processBatch() {
|
|
245
|
+
var end = Math.min(i + batchSize, edges.length);
|
|
246
|
+
var _loop = function _loop() {
|
|
247
|
+
var edge = edges[i];
|
|
248
|
+
var latlngs = [];
|
|
249
|
+
edge.shape_data.forEach(function (data) {
|
|
250
|
+
latlngs.push([data.lat, data.lng]);
|
|
251
|
+
});
|
|
252
|
+
var polylineBack = L.polyline(latlngs, {
|
|
253
|
+
color: 'rgb(227,227,227)',
|
|
254
|
+
weight: 1,
|
|
255
|
+
opacity: 1
|
|
256
|
+
});
|
|
257
|
+
var tailDash = void 0;
|
|
258
|
+
if (window.L.Symbol !== undefined) {
|
|
259
|
+
tailDash = window.L.polylineDecorator(polylineBack._latlngs, {
|
|
260
|
+
patterns: [{
|
|
261
|
+
offset: 20,
|
|
262
|
+
repeat: 60,
|
|
263
|
+
symbol: window.L.Symbol.arrowHead({
|
|
264
|
+
pixelSize: 3,
|
|
265
|
+
polygon: false,
|
|
266
|
+
pathOptions: {
|
|
267
|
+
stroke: true,
|
|
268
|
+
color: '#555',
|
|
269
|
+
weight: 1
|
|
270
|
+
}
|
|
271
|
+
})
|
|
272
|
+
}]
|
|
273
|
+
});
|
|
274
|
+
tailDash['kando_object'] = 'Decorator';
|
|
275
|
+
layerGroup.addLayer(tailDash);
|
|
276
|
+
}
|
|
277
|
+
polylineBack['kando_object_id'] = edge.id;
|
|
278
|
+
if (event.hovered) polylineBack['kando_object'] = 'HoveredEdge';
|
|
279
|
+
if (event.focused) polylineBack['kando_object'] = 'FocusedEdge';
|
|
280
|
+
if (map !== null) layerGroup.addLayer(polylineBack);
|
|
281
|
+
polylineBack.bringToFront();
|
|
282
|
+
if (L.Symbol !== undefined && tailDash) tailDash.bringToFront();
|
|
283
|
+
var polylineFront = L.polyline(latlngs, {
|
|
284
|
+
color: 'rgb(29,29,29)',
|
|
285
|
+
weight: 1,
|
|
286
|
+
opacity: 1
|
|
287
|
+
});
|
|
288
|
+
polylineFront['kando_object_id'] = edge.id;
|
|
289
|
+
if (event.hovered) polylineFront['kando_object'] = 'HoveredEdgeFront';
|
|
290
|
+
if (event.focused) polylineFront['kando_object'] = 'FocusedEdgeFront';
|
|
291
|
+
if (map !== null) layerGroup.addLayer(polylineFront);
|
|
292
|
+
polylineBack.addTo(map);
|
|
293
|
+
polylineFront.addTo(map);
|
|
294
|
+
polylineFront.bringToFront();
|
|
295
|
+
if (event.hovered) dispatch((0, _actions.setHoveredEdgePaths)([polylineBack, polylineFront]));
|
|
296
|
+
if (points.length !== 0) {
|
|
297
|
+
var sourcePoint = pointFinder(points, edge.source_point_id);
|
|
298
|
+
var targetPoint = pointFinder(points, edge.target_point_id);
|
|
299
|
+
if (sourcePoint !== undefined && targetPoint !== undefined) {
|
|
300
|
+
polylineBack.bindPopup("Edge ID: ".concat(edge.id, ",<br>\n Source point: ").concat(sourcePoint.group.name, ",<br>\n Target point: ").concat(targetPoint.group.name, ",\n Distance: ").concat(edge.distance));
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
};
|
|
304
|
+
for (; i < end; i++) {
|
|
305
|
+
_loop();
|
|
306
|
+
}
|
|
307
|
+
if (i < edges.length) {
|
|
308
|
+
setTimeout(processBatch, 0); // Yield to browser
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
|
|
312
|
+
processBatch();
|
|
313
|
+
};
|
|
314
|
+
exports.drawNetworkBatched = drawNetworkBatched;
|
|
315
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJMIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJyZXF1aXJlIiwiX3doaXRlUG9pbnQiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2FjdGlvbnMiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJub2RlSW50ZXJvcCIsIldlYWtNYXAiLCJjYWNoZUJhYmVsSW50ZXJvcCIsImNhY2hlTm9kZUludGVyb3AiLCJvYmoiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImRlZmF1bHQiLCJjYWNoZSIsImhhcyIsImdldCIsIm5ld09iaiIsImhhc1Byb3BlcnR5RGVzY3JpcHRvciIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiZGVzYyIsInNldCIsImRyYXdNYW5ob2xlSWNvbiIsInNvdXJjZVBvaW50IiwibWFwIiwicG9pbnRJY29uIiwiaWNvbiIsImljb25VcmwiLCJ3aGl0ZVBvaW50IiwiaWNvblNpemUiLCJpY29uQW5jaG9yIiwibWFuaG9sZUljb24iLCJtYXJrZXIiLCJsYXRpdHVkZSIsImxvbmdpdHVkZSIsInJpc2VPbkhvdmVyIiwiYWRkVG8iLCJiaW5kVG9vbHRpcCIsImNvbmNhdCIsImdyb3VwIiwibmFtZSIsInNlY3Rvcl9uYW1lIiwiaWQiLCJleHBvcnRzIiwiZ2V0Rmlyc3RFZGdlT2ZFdmVudFBhdGgiLCJlZGdlcyIsImV2ZW50IiwicGF0aCIsInVuZGVmaW5lZCIsImZpbmQiLCJlZGdlIiwiZWRnZV9pZCIsImZpbmRFZGdlcyIsIm5leHRVcHN0cmVhbUxldmVsSWRzIiwiZmlsdGVyIiwiaW5jbHVkZXMiLCJ0YXJnZXRfcG9pbnRfaWQiLCJyZWN1cnNpdmVVcHN0cmVhbVNlYXJjaCIsIm5leHRMZXZlbCIsIm1hcEFsbEVkZ2VzTmVzdGluZyIsImFsbFVwc3RyZWFtRWRnZXMiLCJzb3VyY2VfcG9pbnRfaWQiLCJsZW5ndGgiLCJwdXNoIiwibWFwcGVkIiwiZm9yRWFjaCIsImdldFVwc3RyZWFtRWRnZXMiLCJmaXJzdEVkZ2UiLCJmaXJzdFVwc3RyZWFtTGV2ZWwiLCJmaW5kVXBzdHJlYW1FZGdlc1RvRHJhdyIsInVwc3RyZWFtRWRnZXMiLCJlZGdlc1RvRHJhdyIsInBvaW50cyIsInVwc3RyZWFtRWRnZSIsInBvaW50IiwiY29ubmVjdGlvbkVkZ2VzIiwiZmluZERvd25zdHJlYW1FZGdlc1RvRHJhdyIsImRvd25zdHJlYW1OZXR3b3JrIiwicmVjdXJzaXZlRG93blN0cmVhbVNlYXJjaCIsImRvd25TdHJlYW1FZGdlIiwibGFzdERvd25TdHJlYW1FZGdlIiwibmV4dExldmVsRG93blN0cmVhbSIsImZpbmRFZGdlc0Zyb21FdmVudFBhdGhUb0RyYXciLCJwYXJ0IiwibWF0Y2hlZFBhcnQiLCJkcmF3TmV0d29yayIsImRpc3BhdGNoIiwibGF5ZXJHcm91cCIsImZsb3dSYXRlVW5pdCIsImxhdGxuZ3MiLCJzaGFwZV9kYXRhIiwiZGF0YSIsImxhdCIsImxuZyIsInBvbHlsaW5lQmFjayIsInBvbHlsaW5lIiwiY29sb3IiLCJ3ZWlnaHQiLCJvcGFjaXR5IiwidGFpbERhc2giLCJ3aW5kb3ciLCJTeW1ib2wiLCJwb2x5bGluZURlY29yYXRvciIsIl9sYXRsbmdzIiwicGF0dGVybnMiLCJvZmZzZXQiLCJyZXBlYXQiLCJzeW1ib2wiLCJhcnJvd0hlYWQiLCJwaXhlbFNpemUiLCJwb2x5Z29uIiwicGF0aE9wdGlvbnMiLCJzdHJva2UiLCJhZGRMYXllciIsImhvdmVyZWQiLCJmb2N1c2VkIiwiYnJpbmdUb0Zyb250IiwicG9seWxpbmVGcm9udCIsInNldEhvdmVyZWRFZGdlUGF0aHMiLCJwb2ludEZpbmRlciIsInRhcmdldFBvaW50IiwiYmluZFBvcHVwIiwiZGlzdGFuY2UiLCJkZXNpcmVkUG9pbnRJZCIsImRlc2lyZWRQb2ludCIsImZpbmRBbmREcmF3RXZlbnROZXR3b3JrRWRnZXMiLCJkcmF3TmV0d29ya0JhdGNoZWQiLCJwb2ludElzT2JzZXJ2YXRpb24iLCJvYnNlcnZhdGlvbnMiLCJvYnMiLCJwb2ludF9pZCIsInBvaW50SXNDb2xsZWN0b3IiLCJ0eXBlIiwiaXNDb2xsZWN0b3JVbm1vbml0b3JlZCIsImhhc19kZXZpY2UiLCJiYXRjaFNpemUiLCJhcmd1bWVudHMiLCJpIiwicHJvY2Vzc0JhdGNoIiwiZW5kIiwiTWF0aCIsIm1pbiIsIl9sb29wIiwic2V0VGltZW91dCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9XaWRnZXRzL01hcC9ldmVudHMvRXZlbnRVdGlscy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBMIGZyb20gJ2xlYWZsZXQnO1xuaW1wb3J0ICdzcmMvdXRpbGl0aWVzL3BvbHlsaW5lZGVjb3JhdG9yJztcbmltcG9ydCB3aGl0ZVBvaW50IGZyb20gJy4uLy4uLy4uL2Fzc2V0cy93aGl0ZS1wb2ludC5wbmcnO1xuaW1wb3J0IHsgSUVkZ2UgfSBmcm9tICcuLi8uLi8uLi9zdG9yZS9lZGdlcy9tb2RlbHMvSUVkZ2UnO1xuaW1wb3J0IHsgSVBvaW50IH0gZnJvbSAnLi4vLi4vLi4vc3RvcmUvcG9pbnRzL21vZGVscy9JUG9pbnQnO1xuaW1wb3J0IHsgSUV2ZW50IH0gZnJvbSAnLi4vLi4vLi4vc3RvcmUvZXZlbnRzL21vZGVscy9JRXZlbnQnO1xuaW1wb3J0IHsgc2V0SG92ZXJlZEVkZ2VQYXRocyB9IGZyb20gJy4uLy4uLy4uL3N0b3JlL2V2ZW50cy9hY3Rpb25zJztcblxuZXhwb3J0IGNvbnN0IGRyYXdNYW5ob2xlSWNvbiA9IChzb3VyY2VQb2ludDogSVBvaW50LCBtYXA6IEwuTWFwKSA9PiB7XG4gIGxldCBwb2ludEljb24gPSBMLmljb24oe1xuICAgIGljb25Vcmw6IHdoaXRlUG9pbnQsXG4gICAgaWNvblNpemU6IFs5LCA5XSxcbiAgICBpY29uQW5jaG9yOiBbNC41LCA0LjVdLFxuICB9KTtcblxuICBsZXQgbWFuaG9sZUljb246IGFueSA9IEwubWFya2VyKFxuICAgIFtzb3VyY2VQb2ludC5sYXRpdHVkZSwgc291cmNlUG9pbnQubG9uZ2l0dWRlXSxcbiAgICB7XG4gICAgICBpY29uOiBwb2ludEljb24sXG4gICAgICByaXNlT25Ib3ZlcjogdHJ1ZSxcbiAgICB9LFxuICApLmFkZFRvKG1hcCk7XG4gIG1hbmhvbGVJY29uLmJpbmRUb29sdGlwKFxuICAgIGAke3NvdXJjZVBvaW50Lmdyb3VwLm5hbWV9ICgke3NvdXJjZVBvaW50Lmdyb3VwLnNlY3Rvcl9uYW1lfSlgLFxuICApO1xuICBtYW5ob2xlSWNvblsna2FuZG9fb2JqZWN0X2lkJ10gPSBzb3VyY2VQb2ludC5pZDtcbiAgbWFuaG9sZUljb25bJ2thbmRvX29iamVjdCddID0gJ1Vwc3RyZWFtUG9pbnQnO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEZpcnN0RWRnZU9mRXZlbnRQYXRoID0gKGVkZ2VzOiBJRWRnZVtdLCBldmVudDogSUV2ZW50KSA9PiB7XG4gIGlmIChldmVudC5wYXRoWzBdID09PSB1bmRlZmluZWQpIHJldHVybjtcbiAgcmV0dXJuIGVkZ2VzLmZpbmQoKGVkZ2UpID0+IGVkZ2UuaWQgPT09IGV2ZW50LnBhdGhbMF0uZWRnZV9pZCk7XG59O1xuXG5jb25zdCBmaW5kRWRnZXMgPSAoZWRnZXMsIG5leHRVcHN0cmVhbUxldmVsSWRzKSA9PiB7XG4gIHJldHVybiBlZGdlcy5maWx0ZXIoKGVkZ2U6IElFZGdlKSA9PlxuICAgIG5leHRVcHN0cmVhbUxldmVsSWRzLmluY2x1ZGVzKGVkZ2UudGFyZ2V0X3BvaW50X2lkKSxcbiAgKTtcbn07XG5cbmNvbnN0IHJlY3Vyc2l2ZVVwc3RyZWFtU2VhcmNoID0gKFxuICBuZXh0TGV2ZWwsXG4gIGVkZ2VzLFxuICBtYXBBbGxFZGdlc05lc3RpbmcsXG4gIGFsbFVwc3RyZWFtRWRnZXMsXG4pID0+IHtcbiAgbGV0IG5leHRVcHN0cmVhbUxldmVsSWRzID0gbmV4dExldmVsLm1hcCgoZWRnZSkgPT4gZWRnZS5zb3VyY2VfcG9pbnRfaWQpO1xuICBpZiAoZmluZEVkZ2VzKGVkZ2VzLCBuZXh0VXBzdHJlYW1MZXZlbElkcykubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIG1hcEFsbEVkZ2VzTmVzdGluZyhbbmV4dExldmVsXSk7XG4gIH0gZWxzZSB7XG4gICAgYWxsVXBzdHJlYW1FZGdlcy5wdXNoKGZpbmRFZGdlcyhlZGdlcywgbmV4dFVwc3RyZWFtTGV2ZWxJZHMpKTtcbiAgICByZWN1cnNpdmVVcHN0cmVhbVNlYXJjaChcbiAgICAgIGZpbmRFZGdlcyhlZGdlcywgbmV4dFVwc3RyZWFtTGV2ZWxJZHMpLFxuICAgICAgZWRnZXMsXG4gICAgICBtYXBBbGxFZGdlc05lc3RpbmcsXG4gICAgICBhbGxVcHN0cmVhbUVkZ2VzLFxuICAgICk7XG4gIH1cblxuICByZXR1cm4gbWFwQWxsRWRnZXNOZXN0aW5nKGFsbFVwc3RyZWFtRWRnZXMpO1xufTtcblxuY29uc3QgbWFwQWxsRWRnZXNOZXN0aW5nID0gKGFsbFVwc3RyZWFtRWRnZXMpID0+IHtcbiAgbGV0IG1hcHBlZDogYW55W10gPSBbXTtcbiAgYWxsVXBzdHJlYW1FZGdlcy5mb3JFYWNoKChlZGdlcykgPT4ge1xuICAgIGVkZ2VzLmZvckVhY2goKGVkZ2UpID0+IHtcbiAgICAgIG1hcHBlZC5wdXNoKGVkZ2UpO1xuICAgIH0pO1xuICB9KTtcblxuICByZXR1cm4gbWFwcGVkO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldFVwc3RyZWFtRWRnZXMgPSAoZmlyc3RFZGdlOiBJRWRnZSwgZWRnZXM6IElFZGdlW10pID0+IHtcbiAgbGV0IGFsbFVwc3RyZWFtRWRnZXM6IGFueVtdID0gW107XG4gIGxldCBmaXJzdFVwc3RyZWFtTGV2ZWw6IElFZGdlW10gPSBlZGdlcy5maWx0ZXIoXG4gICAgKGVkZ2UpID0+IGVkZ2UudGFyZ2V0X3BvaW50X2lkID09PSBmaXJzdEVkZ2U/LnNvdXJjZV9wb2ludF9pZCxcbiAgKTtcblxuICByZXR1cm4gcmVjdXJzaXZlVXBzdHJlYW1TZWFyY2goXG4gICAgZmlyc3RVcHN0cmVhbUxldmVsLFxuICAgIGVkZ2VzLFxuICAgIG1hcEFsbEVkZ2VzTmVzdGluZyxcbiAgICBhbGxVcHN0cmVhbUVkZ2VzLFxuICApO1xufTtcblxuZXhwb3J0IGNvbnN0IGZpbmRVcHN0cmVhbUVkZ2VzVG9EcmF3ID0gKFxuICB1cHN0cmVhbUVkZ2VzOiBJRWRnZVtdLFxuICBlZGdlc1RvRHJhdzogSUVkZ2VbXSxcbiAgcG9pbnRzOiBJUG9pbnRbXSxcbiAgZWRnZXM6IElFZGdlW10sXG4pID0+IHtcbiAgdXBzdHJlYW1FZGdlcy5mb3JFYWNoKCh1cHN0cmVhbUVkZ2UpID0+IHtcbiAgICBpZiAodXBzdHJlYW1FZGdlKSB7XG4gICAgICBsZXQgc291cmNlUG9pbnQgPSBwb2ludHMuZmluZChcbiAgICAgICAgKHBvaW50KSA9PiBwb2ludC5pZCA9PT0gdXBzdHJlYW1FZGdlIS5zb3VyY2VfcG9pbnRfaWQsXG4gICAgICApO1xuXG4gICAgICBpZiAoc291cmNlUG9pbnQpIGVkZ2VzVG9EcmF3LnB1c2godXBzdHJlYW1FZGdlKTtcblxuICAgICAgbGV0IGNvbm5lY3Rpb25FZGdlcyA9IGVkZ2VzLmZpbHRlcihcbiAgICAgICAgKGVkZ2UpID0+IGVkZ2U/LnNvdXJjZV9wb2ludF9pZCA9PT0gdXBzdHJlYW1FZGdlIS50YXJnZXRfcG9pbnRfaWQsXG4gICAgICApO1xuXG4gICAgICBpZiAoY29ubmVjdGlvbkVkZ2VzLmxlbmd0aCAhPT0gMCkge1xuICAgICAgICBjb25uZWN0aW9uRWRnZXMuZm9yRWFjaCgoZWRnZSkgPT4gZWRnZXNUb0RyYXcucHVzaChlZGdlKSk7XG4gICAgICB9XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gZWRnZXNUb0RyYXc7XG59O1xuXG5leHBvcnQgY29uc3QgZmluZERvd25zdHJlYW1FZGdlc1RvRHJhdyA9IChcbiAgZmlyc3RFZGdlOiBJRWRnZSxcbiAgZWRnZXM6IElFZGdlW10sXG4gIGRvd25zdHJlYW1OZXR3b3JrLFxuICBlZGdlc1RvRHJhdyxcbikgPT4ge1xuICByZWN1cnNpdmVEb3duU3RyZWFtU2VhcmNoKGRvd25zdHJlYW1OZXR3b3JrLCBlZGdlcykuZm9yRWFjaChcbiAgICAoZG93blN0cmVhbUVkZ2UpID0+IHtcbiAgICAgIGVkZ2VzVG9EcmF3LnB1c2goZG93blN0cmVhbUVkZ2UpO1xuICAgIH0sXG4gICk7XG59O1xuXG5leHBvcnQgY29uc3QgcmVjdXJzaXZlRG93blN0cmVhbVNlYXJjaCA9IChcbiAgZG93bnN0cmVhbU5ldHdvcms6IElFZGdlW10sXG4gIGVkZ2VzOiBJRWRnZVtdLFxuKSA9PiB7XG4gIGxldCBsYXN0RG93blN0cmVhbUVkZ2UgPSBkb3duc3RyZWFtTmV0d29ya1tkb3duc3RyZWFtTmV0d29yay5sZW5ndGggLSAxXTtcblxuICBpZiAobmV4dExldmVsRG93blN0cmVhbShsYXN0RG93blN0cmVhbUVkZ2UsIGVkZ2VzKS5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gZG93bnN0cmVhbU5ldHdvcms7XG4gIH0gZWxzZSB7XG4gICAgbmV4dExldmVsRG93blN0cmVhbShsYXN0RG93blN0cmVhbUVkZ2UsIGVkZ2VzKS5mb3JFYWNoKChlZGdlKSA9PiB7XG4gICAgICBkb3duc3RyZWFtTmV0d29yay5wdXNoKGVkZ2UpO1xuICAgICAgcmVjdXJzaXZlRG93blN0cmVhbVNlYXJjaChkb3duc3RyZWFtTmV0d29yaywgZWRnZXMpO1xuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIGRvd25zdHJlYW1OZXR3b3JrO1xufTtcblxuZXhwb3J0IGNvbnN0IG5leHRMZXZlbERvd25TdHJlYW0gPSAoZmlyc3RFZGdlOiBJRWRnZSwgZWRnZXM6IElFZGdlW10pID0+IHtcbiAgcmV0dXJuIGVkZ2VzLmZpbHRlcihcbiAgICAoZWRnZSkgPT4gZWRnZS5zb3VyY2VfcG9pbnRfaWQgPT09IGZpcnN0RWRnZS50YXJnZXRfcG9pbnRfaWQsXG4gICk7XG59O1xuXG5leHBvcnQgY29uc3QgZmluZEVkZ2VzRnJvbUV2ZW50UGF0aFRvRHJhdyA9IChcbiAgZWRnZXNUb0RyYXc6IElFZGdlW10sXG4gIGV2ZW50OiBJRXZlbnQsXG4gIGVkZ2VzOiBJRWRnZVtdLFxuKSA9PiB7XG4gIGV2ZW50LnBhdGguZm9yRWFjaCgocGFydCkgPT4ge1xuICAgIGxldCBtYXRjaGVkUGFydCA9IGVkZ2VzLmZpbmQoKGVkZ2UpID0+IGVkZ2UuaWQgPT09IHBhcnQuZWRnZV9pZCk7XG4gICAgaWYgKG1hdGNoZWRQYXJ0ICE9PSB1bmRlZmluZWQpIGVkZ2VzVG9EcmF3LnB1c2gobWF0Y2hlZFBhcnQpO1xuICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBkcmF3TmV0d29yayA9IChcbiAgZWRnZXM6IElFZGdlW10sXG4gIHBvaW50czogSVBvaW50W10sXG4gIGRpc3BhdGNoLFxuICBtYXAsXG4gIGV2ZW50LFxuICBsYXllckdyb3VwLFxuICBmbG93UmF0ZVVuaXQsXG4pID0+IHtcbiAgbGV0IGxhdGxuZ3M6IGFueSA9IFtdO1xuICBlZGdlcy5mb3JFYWNoKChlZGdlKSA9PiB7XG4gICAgZWRnZS5zaGFwZV9kYXRhLmZvckVhY2goKGRhdGE6IGFueSkgPT4ge1xuICAgICAgbGF0bG5ncy5wdXNoKFtkYXRhLmxhdCwgZGF0YS5sbmddKTtcbiAgICB9KTtcblxuICAgIGxldCBwb2x5bGluZUJhY2s6IGFueSA9IEwucG9seWxpbmUobGF0bG5ncywge1xuICAgICAgY29sb3I6ICdyZ2IoMjI3LDIyNywyMjcpJyxcbiAgICAgIHdlaWdodDogMSxcbiAgICAgIG9wYWNpdHk6IDEsXG4gICAgfSk7XG5cbiAgICBsZXQgdGFpbERhc2g6IGFueTtcblxuICAgIGlmICh3aW5kb3cuTC5TeW1ib2wgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGFpbERhc2ggPSB3aW5kb3cuTC5wb2x5bGluZURlY29yYXRvcihwb2x5bGluZUJhY2suX2xhdGxuZ3MsIHtcbiAgICAgICAgcGF0dGVybnM6IFtcbiAgICAgICAgICAvLyBkZWZpbmVzIGEgcGF0dGVybiBvZiAxMHB4LXdpZGUgZGFzaGVzLCByZXBlYXRlZCBldmVyeSAyMHB4IG9uIHRoZSBsaW5lXG4gICAgICAgICAge1xuICAgICAgICAgICAgb2Zmc2V0OiAyMCxcbiAgICAgICAgICAgIHJlcGVhdDogNjAsXG4gICAgICAgICAgICBzeW1ib2w6IHdpbmRvdy5MLlN5bWJvbC5hcnJvd0hlYWQoe1xuICAgICAgICAgICAgICBwaXhlbFNpemU6IDMsXG4gICAgICAgICAgICAgIHBvbHlnb246IGZhbHNlLFxuICAgICAgICAgICAgICBwYXRoT3B0aW9uczoge1xuICAgICAgICAgICAgICAgIHN0cm9rZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBjb2xvcjogJyM1NTUnLFxuICAgICAgICAgICAgICAgIHdlaWdodDogMSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9KTtcbiAgICAgIHRhaWxEYXNoWydrYW5kb19vYmplY3QnXSA9ICdEZWNvcmF0b3InO1xuICAgICAgbGF5ZXJHcm91cC5hZGRMYXllcih0YWlsRGFzaCk7XG4gICAgfVxuXG4gICAgcG9seWxpbmVCYWNrWydrYW5kb19vYmplY3RfaWQnXSA9IGVkZ2UuaWQ7XG4gICAgaWYgKGV2ZW50LmhvdmVyZWQpIHBvbHlsaW5lQmFja1sna2FuZG9fb2JqZWN0J10gPSAnSG92ZXJlZEVkZ2UnO1xuICAgIGlmIChldmVudC5mb2N1c2VkKSBwb2x5bGluZUJhY2tbJ2thbmRvX29iamVjdCddID0gJ0ZvY3VzZWRFZGdlJztcbiAgICBpZiAobWFwICE9PSBudWxsKSBsYXllckdyb3VwLmFkZExheWVyKHBvbHlsaW5lQmFjayk7XG4gICAgcG9seWxpbmVCYWNrLmJyaW5nVG9Gcm9udCgpO1xuICAgIGlmIChMLlN5bWJvbCAhPT0gdW5kZWZpbmVkKSB0YWlsRGFzaC5icmluZ1RvRnJvbnQoKTtcblxuICAgIGxldCBwb2x5bGluZUZyb250OiBhbnkgPSBMLnBvbHlsaW5lKGxhdGxuZ3MsIHtcbiAgICAgIGNvbG9yOiAncmdiKDI5LDI5LDI5KScsXG4gICAgICB3ZWlnaHQ6IDEsXG4gICAgICBvcGFjaXR5OiAxLFxuICAgIH0pO1xuXG4gICAgcG9seWxpbmVGcm9udFsna2FuZG9fb2JqZWN0X2lkJ10gPSBlZGdlLmlkO1xuICAgIGlmIChldmVudC5ob3ZlcmVkKSBwb2x5bGluZUZyb250WydrYW5kb19vYmplY3QnXSA9ICdIb3ZlcmVkRWRnZUZyb250JztcbiAgICBpZiAoZXZlbnQuZm9jdXNlZCkgcG9seWxpbmVGcm9udFsna2FuZG9fb2JqZWN0J10gPSAnRm9jdXNlZEVkZ2VGcm9udCc7XG4gICAgaWYgKG1hcCAhPT0gbnVsbCkgbGF5ZXJHcm91cC5hZGRMYXllcihwb2x5bGluZUZyb250KTtcbiAgICBwb2x5bGluZUJhY2suYWRkVG8obWFwKTtcbiAgICBwb2x5bGluZUZyb250LmFkZFRvKG1hcCk7XG5cbiAgICBwb2x5bGluZUZyb250LmJyaW5nVG9Gcm9udCgpO1xuICAgIGlmIChldmVudC5ob3ZlcmVkKVxuICAgICAgZGlzcGF0Y2goc2V0SG92ZXJlZEVkZ2VQYXRocyhbcG9seWxpbmVCYWNrLCBwb2x5bGluZUZyb250XSkpO1xuICAgIGxhdGxuZ3MgPSBbXTtcblxuICAgIGlmIChwb2ludHMubGVuZ3RoICE9PSAwKSB7XG4gICAgICBsZXQgc291cmNlUG9pbnQ6IElQb2ludCA9IHBvaW50RmluZGVyKHBvaW50cywgZWRnZS5zb3VyY2VfcG9pbnRfaWQpO1xuICAgICAgbGV0IHRhcmdldFBvaW50OiBJUG9pbnQgPSBwb2ludEZpbmRlcihwb2ludHMsIGVkZ2UudGFyZ2V0X3BvaW50X2lkKTtcbiAgICAgIGlmIChzb3VyY2VQb2ludCAhPT0gdW5kZWZpbmVkICYmIHRhcmdldFBvaW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcG9seWxpbmVCYWNrLmJpbmRQb3B1cChgRWRnZSBJRDogJHtlZGdlLmlkfSw8YnI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNvdXJjZSBwb2ludDogJHtzb3VyY2VQb2ludC5ncm91cC5uYW1lfSw8YnI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRhcmdldCBwb2ludDogJHt0YXJnZXRQb2ludC5ncm91cC5uYW1lfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGlzdGFuY2U6ICR7ZWRnZS5kaXN0YW5jZX1gKTtcbiAgICAgIH1cbiAgICAgIC8vIGNyZWF0ZVBvaW50TG9naWMoc291cmNlUG9pbnQsIG1hcCwgbGF5ZXJHcm91cCwgZmxvd1JhdGVVbml0KTtcbiAgICAgIC8vIGlmIChlZGdlc1tlZGdlcy5sZW5ndGggLSAxXS50YXJnZXRfcG9pbnRfaWQgPT09IGVkZ2UudGFyZ2V0X3BvaW50X2lkKSB7XG4gICAgICAvLyAgIGNyZWF0ZVBvaW50TG9naWModGFyZ2V0UG9pbnQsIG1hcCwgbGF5ZXJHcm91cCk7XG4gICAgICAvLyB9XG4gICAgfVxuICB9KTtcbn07XG5cbmNvbnN0IHBvaW50RmluZGVyID0gKHBvaW50cywgZGVzaXJlZFBvaW50SWQpID0+IHtcbiAgbGV0IGRlc2lyZWRQb2ludDogSVBvaW50ID0gcG9pbnRzLmZpbmQoXG4gICAgKHBvaW50OiBJUG9pbnQpID0+IHBvaW50LmlkID09PSBkZXNpcmVkUG9pbnRJZCxcbiAgKTtcblxuICByZXR1cm4gZGVzaXJlZFBvaW50O1xufTtcblxuZXhwb3J0IGNvbnN0IGZpbmRBbmREcmF3RXZlbnROZXR3b3JrRWRnZXMgPSAoXG4gIGVkZ2VzOiBJRWRnZVtdLFxuICBldmVudDogSUV2ZW50LFxuICBwb2ludHM6IElQb2ludFtdLFxuICBkaXNwYXRjaCxcbiAgbWFwLFxuICBsYXllckdyb3VwLFxuICBmbG93UmF0ZVVuaXQsXG4pID0+IHtcbiAgbGV0IGVkZ2VzVG9EcmF3OiBJRWRnZVtdID0gW107XG4gIGxldCBmaXJzdEVkZ2UgPSBnZXRGaXJzdEVkZ2VPZkV2ZW50UGF0aChlZGdlcywgZXZlbnQpO1xuXG4gIGlmIChmaXJzdEVkZ2UgIT09IHVuZGVmaW5lZCkge1xuICAgIGxldCBkb3duc3RyZWFtTmV0d29yazogSUVkZ2VbXSA9IFtmaXJzdEVkZ2VdO1xuICAgIGxldCB1cHN0cmVhbUVkZ2VzID0gZ2V0VXBzdHJlYW1FZGdlcyhmaXJzdEVkZ2UsIGVkZ2VzKTtcbiAgICBpZiAodXBzdHJlYW1FZGdlcyA9PT0gdW5kZWZpbmVkKSByZXR1cm47XG4gICAgaWYgKHVwc3RyZWFtRWRnZXMubGVuZ3RoICE9PSAwKVxuICAgICAgZmluZFVwc3RyZWFtRWRnZXNUb0RyYXcodXBzdHJlYW1FZGdlcywgZWRnZXNUb0RyYXcsIHBvaW50cywgZWRnZXMpO1xuICAgIGZpbmREb3duc3RyZWFtRWRnZXNUb0RyYXcoZmlyc3RFZGdlLCBlZGdlcywgZG93bnN0cmVhbU5ldHdvcmssIGVkZ2VzVG9EcmF3KTtcbiAgfVxuXG4gIGRyYXdOZXR3b3JrQmF0Y2hlZChcbiAgICBlZGdlc1RvRHJhdyxcbiAgICBwb2ludHMsXG4gICAgZGlzcGF0Y2gsXG4gICAgbWFwLFxuICAgIGV2ZW50LFxuICAgIGxheWVyR3JvdXAsXG4gICAgZmxvd1JhdGVVbml0LFxuICAgIDI1LCAvLyBiYXRjaCBzaXplLCBhZGp1c3QgYXMgbmVlZGVkXG4gICk7XG59O1xuXG5leHBvcnQgY29uc3QgcG9pbnRJc09ic2VydmF0aW9uID0gKGV2ZW50OiBJRXZlbnQsIHBvaW50OiBJUG9pbnQpID0+IHtcbiAgcmV0dXJuIGV2ZW50Lm9ic2VydmF0aW9ucy5maW5kKChvYnMpID0+IG9icy5wb2ludF9pZCA9PT0gcG9pbnQuaWQpO1xufTtcblxuZXhwb3J0IGNvbnN0IHBvaW50SXNDb2xsZWN0b3IgPSAocG9pbnQ6IElQb2ludCkgPT4ge1xuICByZXR1cm4gcG9pbnQuZ3JvdXAudHlwZSA9PT0gJ0dyb3Vwczo6Q29sbGVjdG9ycyc7XG59O1xuXG5leHBvcnQgY29uc3QgaXNDb2xsZWN0b3JVbm1vbml0b3JlZCA9IChwb2ludDogSVBvaW50KSA9PiB7XG4gIHJldHVybiBwb2ludElzQ29sbGVjdG9yKHBvaW50KSAmJiAhcG9pbnQuaGFzX2RldmljZTtcbn07XG5cbi8vIGNvbnN0IGNyZWF0ZVBvaW50TG9naWMgPSAocG9pbnQ6IElQb2ludCwgbWFwLCBsYXllckdyb3VwLCBmbG93UmF0ZVVuaXQpID0+IHtcbi8vICAgaWYgKGlzQ29sbGVjdG9yVW5tb25pdG9yZWQocG9pbnQpKSB7XG4vLyAgICAgcmV0dXJuO1xuLy8gICB9XG5cbi8vICAgY3JlYXRlQnViYmxlUG9pbnQoXG4vLyAgICAgW3BvaW50LmxhdGl0dWRlLCBwb2ludC5sb25naXR1ZGVdLFxuLy8gICAgIHBvaW50LFxuLy8gICAgIG1hcCxcbi8vICAgICBudWxsLFxuLy8gICAgIGxheWVyR3JvdXAsXG4vLyAgICAgZmxvd1JhdGVVbml0LFxuLy8gICApO1xuLy8gfTtcblxuZXhwb3J0IGNvbnN0IGRyYXdOZXR3b3JrQmF0Y2hlZCA9IChcbiAgZWRnZXM6IElFZGdlW10sXG4gIHBvaW50czogSVBvaW50W10sXG4gIGRpc3BhdGNoLFxuICBtYXAsXG4gIGV2ZW50LFxuICBsYXllckdyb3VwLFxuICBmbG93UmF0ZVVuaXQsXG4gIGJhdGNoU2l6ZSA9IDI1LFxuKSA9PiB7XG4gIGxldCBpID0gMDtcbiAgZnVuY3Rpb24gcHJvY2Vzc0JhdGNoKCkge1xuICAgIGNvbnN0IGVuZCA9IE1hdGgubWluKGkgKyBiYXRjaFNpemUsIGVkZ2VzLmxlbmd0aCk7XG4gICAgZm9yICg7IGkgPCBlbmQ7IGkrKykge1xuICAgICAgY29uc3QgZWRnZSA9IGVkZ2VzW2ldO1xuICAgICAgbGV0IGxhdGxuZ3M6IGFueSA9IFtdO1xuICAgICAgZWRnZS5zaGFwZV9kYXRhLmZvckVhY2goKGRhdGE6IGFueSkgPT4ge1xuICAgICAgICBsYXRsbmdzLnB1c2goW2RhdGEubGF0LCBkYXRhLmxuZ10pO1xuICAgICAgfSk7XG5cbiAgICAgIGxldCBwb2x5bGluZUJhY2s6IGFueSA9IEwucG9seWxpbmUobGF0bG5ncywge1xuICAgICAgICBjb2xvcjogJ3JnYigyMjcsMjI3LDIyNyknLFxuICAgICAgICB3ZWlnaHQ6IDEsXG4gICAgICAgIG9wYWNpdHk6IDEsXG4gICAgICB9KTtcblxuICAgICAgbGV0IHRhaWxEYXNoOiBhbnk7XG4gICAgICBpZiAod2luZG93LkwuU3ltYm9sICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGFpbERhc2ggPSB3aW5kb3cuTC5wb2x5bGluZURlY29yYXRvcihwb2x5bGluZUJhY2suX2xhdGxuZ3MsIHtcbiAgICAgICAgICBwYXR0ZXJuczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBvZmZzZXQ6IDIwLFxuICAgICAgICAgICAgICByZXBlYXQ6IDYwLFxuICAgICAgICAgICAgICBzeW1ib2w6IHdpbmRvdy5MLlN5bWJvbC5hcnJvd0hlYWQoe1xuICAgICAgICAgICAgICAgIHBpeGVsU2l6ZTogMyxcbiAgICAgICAgICAgICAgICBwb2x5Z29uOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBwYXRoT3B0aW9uczoge1xuICAgICAgICAgICAgICAgICAgc3Ryb2tlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgY29sb3I6ICcjNTU1JyxcbiAgICAgICAgICAgICAgICAgIHdlaWdodDogMSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfSk7XG4gICAgICAgIHRhaWxEYXNoWydrYW5kb19vYmplY3QnXSA9ICdEZWNvcmF0b3InO1xuICAgICAgICBsYXllckdyb3VwLmFkZExheWVyKHRhaWxEYXNoKTtcbiAgICAgIH1cblxuICAgICAgcG9seWxpbmVCYWNrWydrYW5kb19vYmplY3RfaWQnXSA9IGVkZ2UuaWQ7XG4gICAgICBpZiAoZXZlbnQuaG92ZXJlZCkgcG9seWxpbmVCYWNrWydrYW5kb19vYmplY3QnXSA9ICdIb3ZlcmVkRWRnZSc7XG4gICAgICBpZiAoZXZlbnQuZm9jdXNlZCkgcG9seWxpbmVCYWNrWydrYW5kb19vYmplY3QnXSA9ICdGb2N1c2VkRWRnZSc7XG4gICAgICBpZiAobWFwICE9PSBudWxsKSBsYXllckdyb3VwLmFkZExheWVyKHBvbHlsaW5lQmFjayk7XG4gICAgICBwb2x5bGluZUJhY2suYnJpbmdUb0Zyb250KCk7XG4gICAgICBpZiAoTC5TeW1ib2wgIT09IHVuZGVmaW5lZCAmJiB0YWlsRGFzaCkgdGFpbERhc2guYnJpbmdUb0Zyb250KCk7XG5cbiAgICAgIGxldCBwb2x5bGluZUZyb250OiBhbnkgPSBMLnBvbHlsaW5lKGxhdGxuZ3MsIHtcbiAgICAgICAgY29sb3I6ICdyZ2IoMjksMjksMjkpJyxcbiAgICAgICAgd2VpZ2h0OiAxLFxuICAgICAgICBvcGFjaXR5OiAxLFxuICAgICAgfSk7XG5cbiAgICAgIHBvbHlsaW5lRnJvbnRbJ2thbmRvX29iamVjdF9pZCddID0gZWRnZS5pZDtcbiAgICAgIGlmIChldmVudC5ob3ZlcmVkKSBwb2x5bGluZUZyb250WydrYW5kb19vYmplY3QnXSA9ICdIb3ZlcmVkRWRnZUZyb250JztcbiAgICAgIGlmIChldmVudC5mb2N1c2VkKSBwb2x5bGluZUZyb250WydrYW5kb19vYmplY3QnXSA9ICdGb2N1c2VkRWRnZUZyb250JztcbiAgICAgIGlmIChtYXAgIT09IG51bGwpIGxheWVyR3JvdXAuYWRkTGF5ZXIocG9seWxpbmVGcm9udCk7XG4gICAgICBwb2x5bGluZUJhY2suYWRkVG8obWFwKTtcbiAgICAgIHBvbHlsaW5lRnJvbnQuYWRkVG8obWFwKTtcblxuICAgICAgcG9seWxpbmVGcm9udC5icmluZ1RvRnJvbnQoKTtcbiAgICAgIGlmIChldmVudC5ob3ZlcmVkKVxuICAgICAgICBkaXNwYXRjaChzZXRIb3ZlcmVkRWRnZVBhdGhzKFtwb2x5bGluZUJhY2ssIHBvbHlsaW5lRnJvbnRdKSk7XG5cbiAgICAgIGlmIChwb2ludHMubGVuZ3RoICE9PSAwKSB7XG4gICAgICAgIGxldCBzb3VyY2VQb2ludDogSVBvaW50ID0gcG9pbnRGaW5kZXIocG9pbnRzLCBlZGdlLnNvdXJjZV9wb2ludF9pZCk7XG4gICAgICAgIGxldCB0YXJnZXRQb2ludDogSVBvaW50ID0gcG9pbnRGaW5kZXIocG9pbnRzLCBlZGdlLnRhcmdldF9wb2ludF9pZCk7XG4gICAgICAgIGlmIChzb3VyY2VQb2ludCAhPT0gdW5kZWZpbmVkICYmIHRhcmdldFBvaW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBwb2x5bGluZUJhY2suYmluZFBvcHVwKGBFZGdlIElEOiAke2VkZ2UuaWR9LDxicj5cbiAgICAgICAgICAgIFNvdXJjZSBwb2ludDogJHtzb3VyY2VQb2ludC5ncm91cC5uYW1lfSw8YnI+XG4gICAgICAgICAgICBUYXJnZXQgcG9pbnQ6ICR7dGFyZ2V0UG9pbnQuZ3JvdXAubmFtZX0sXG4gICAgICAgICAgICBEaXN0YW5jZTogJHtlZGdlLmRpc3RhbmNlfWApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChpIDwgZWRnZXMubGVuZ3RoKSB7XG4gICAgICBzZXRUaW1lb3V0KHByb2Nlc3NCYXRjaCwgMCk7IC8vIFlpZWxkIHRvIGJyb3dzZXJcbiAgICB9XG4gIH1cbiAgcHJvY2Vzc0JhdGNoKCk7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLElBQUFBLENBQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBQSxPQUFBO0FBQ0EsSUFBQUMsV0FBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBSUEsSUFBQUcsUUFBQSxHQUFBSCxPQUFBO0FBQW9FLFNBQUFJLHlCQUFBQyxXQUFBLGVBQUFDLE9BQUEsa0NBQUFDLGlCQUFBLE9BQUFELE9BQUEsUUFBQUUsZ0JBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSx5QkFBQUMsV0FBQSxXQUFBQSxXQUFBLEdBQUFHLGdCQUFBLEdBQUFELGlCQUFBLEtBQUFGLFdBQUE7QUFBQSxTQUFBTix3QkFBQVUsR0FBQSxFQUFBSixXQUFBLFNBQUFBLFdBQUEsSUFBQUksR0FBQSxJQUFBQSxHQUFBLENBQUFDLFVBQUEsV0FBQUQsR0FBQSxRQUFBQSxHQUFBLGFBQUFFLE9BQUEsQ0FBQUYs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
|
package/lib/macros/getVersion.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var packageJsonVersion = "1.2.437-alpha.
|
|
3
|
+
var packageJsonVersion = "1.2.437-alpha.4";
|
|
4
4
|
if (typeof packageJsonVersion === 'string') {
|
|
5
5
|
// eslint-disable-next-line no-console
|
|
6
6
|
console.log("%c Kando UI %c v".concat(packageJsonVersion, " "), 'font-size: 15px; background-color: #fff; color: #e20f53;', 'font-weight: bold; font-size: 15px; background-color: #e20f53; color: #fff;', "with NODE_ENV=".concat(process.env.NODE_ENV));
|