UNPKG

kepler.gl

Version:

kepler.gl is a webgl based application to visualize large scale location data in the browser

148 lines (147 loc) 23.9 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); var _typeof = require("@babel/runtime/helpers/typeof"); Object.defineProperty(exports, "__esModule", { value: true }); exports.PureFeatureActionPanelFactory = PureFeatureActionPanelFactory; exports["default"] = FeatureActionPanelFactory; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral")); var _react = _interopRequireWildcard(require("/Users/ihordykhta/Desktop/unfolded/kepler.gl/node_modules/react")); var _reactIntl = require("/Users/ihordykhta/Desktop/unfolded/kepler.gl/node_modules/react-intl"); var _copyToClipboard = _interopRequireDefault(require("copy-to-clipboard")); var _react2 = require("@floating-ui/react"); var _classnames = _interopRequireDefault(require("classnames")); var _styledComponents = _interopRequireDefault(require("/Users/ihordykhta/Desktop/unfolded/kepler.gl/node_modules/styled-components")); var _src = require("/Users/ihordykhta/Desktop/unfolded/kepler.gl/src/utils/src"); var _actionPanel = _interopRequireWildcard(require("../common/action-panel")); var _icons = require("../common/icons"); var _templateObject; // SPDX-License-Identifier: MIT // Copyright contributors to the kepler.gl project function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); } function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; } var LAYOVER_OFFSET = 4; var StyledActionsLayer = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n position: absolute;\n .layer-panel-item-disabled {\n color: ", ";\n }\n"])), function (props) { return props.theme.textColor; }); var defaultActionIcons = { remove: _icons.Trash, layer: _icons.Layers, copy: _icons.Copy, copied: _icons.Checkmark }; PureFeatureActionPanelFactory.deps = []; function PureFeatureActionPanelFactory() { var FeatureActionPanel = function FeatureActionPanel(_ref) { var className = _ref.className, datasets = _ref.datasets, selectedFeature = _ref.selectedFeature, _ref$position = _ref.position, position = _ref$position === void 0 ? null : _ref$position, layers = _ref.layers, currentFilter = _ref.currentFilter, onToggleLayer = _ref.onToggleLayer, onDeleteFeature = _ref.onDeleteFeature, _ref$actionIcons = _ref.actionIcons, actionIcons = _ref$actionIcons === void 0 ? defaultActionIcons : _ref$actionIcons, children = _ref.children, onClose = _ref.onClose; var _useState = (0, _react.useState)(false), _useState2 = (0, _slicedToArray2["default"])(_useState, 2), copied = _useState2[0], setCopied = _useState2[1]; var _ref2 = currentFilter || {}, _ref2$layerId = _ref2.layerId, layerId = _ref2$layerId === void 0 ? [] : _ref2$layerId; var intl = (0, _reactIntl.useIntl)(); var _useFloating = (0, _react2.useFloating)({ open: true, onOpenChange: function onOpenChange(v) { if (!v && onClose) { onClose(); } } }), refs = _useFloating.refs, context = _useFloating.context; var dismiss = (0, _react2.useDismiss)(context); var _useInteractions = (0, _react2.useInteractions)([dismiss]), getFloatingProps = _useInteractions.getFloatingProps; var copyGeometry = (0, _react.useCallback)(function () { if (selectedFeature !== null && selectedFeature !== void 0 && selectedFeature.geometry) (0, _copyToClipboard["default"])(JSON.stringify(selectedFeature.geometry)); setCopied(true); }, [selectedFeature === null || selectedFeature === void 0 ? void 0 : selectedFeature.geometry]); if (!position) { return null; } var isFilterLayerDisabled = !(0, _src.canApplyFeatureFilter)(selectedFeature); return /*#__PURE__*/_react["default"].createElement(StyledActionsLayer, (0, _extends2["default"])({ ref: refs.setFloating }, getFloatingProps(), { className: (0, _classnames["default"])('feature-action-panel', className), style: { top: "".concat(position.y + LAYOVER_OFFSET, "px"), left: "".concat(position.x + LAYOVER_OFFSET, "px") } }), /*#__PURE__*/_react["default"].createElement(_actionPanel["default"], null, /*#__PURE__*/_react["default"].createElement(_actionPanel.ActionPanelItem, { className: "editor-layers-list", label: intl.formatMessage({ id: 'editor.filterLayer', defaultMessage: 'Filter layers' }), Icon: actionIcons.layer, isDisabled: isFilterLayerDisabled, tooltipText: isFilterLayerDisabled ? intl.formatMessage({ id: 'editor.filterLayerDisabled' }) : null }, layers.length ? layers.map(function (layer, index) { return /*#__PURE__*/_react["default"].createElement(_actionPanel.ActionPanelItem, { key: index, label: layer.config.label // @ts-ignore , color: datasets[layer.config.dataId].color, isSelection: true, isActive: layerId.includes(layer.id), onClick: function onClick() { return onToggleLayer(layer); }, className: "layer-panel-item" }); }) : /*#__PURE__*/_react["default"].createElement(_actionPanel.ActionPanelItem, { key: 'no-layers', label: intl.formatMessage({ id: 'editor.noLayersToFilter', defaultMessage: 'No layers to filter' }), isSelection: false, isActive: false, className: "layer-panel-item-disabled" })), /*#__PURE__*/_react["default"].createElement(_actionPanel.ActionPanelItem, { label: intl.formatMessage({ id: 'editor.copyGeometry', defaultMessage: 'Copy Geometry' }), className: "delete-panel-item", Icon: copied ? actionIcons.copied : actionIcons.copy, onClick: copyGeometry }), children, /*#__PURE__*/_react["default"].createElement(_actionPanel.ActionPanelItem, { label: intl.formatMessage({ id: 'tooltip.delete', defaultMessage: 'Delete' }), className: "delete-panel-item", Icon: actionIcons.remove, onClick: onDeleteFeature }))); }; FeatureActionPanel.displayName = 'FeatureActionPanel'; return FeatureActionPanel; } FeatureActionPanelFactory.deps = PureFeatureActionPanelFactory.deps; function FeatureActionPanelFactory() { return PureFeatureActionPanelFactory(); } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfcmVhY3RJbnRsIiwiX2NvcHlUb0NsaXBib2FyZCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfcmVhY3QyIiwiX2NsYXNzbmFtZXMiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9zcmMiLCJfYWN0aW9uUGFuZWwiLCJfaWNvbnMiLCJfdGVtcGxhdGVPYmplY3QiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJMQVlPVkVSX09GRlNFVCIsIlN0eWxlZEFjdGlvbnNMYXllciIsInN0eWxlZCIsImRpdiIsIl90YWdnZWRUZW1wbGF0ZUxpdGVyYWwyIiwicHJvcHMiLCJ0aGVtZSIsInRleHRDb2xvciIsImRlZmF1bHRBY3Rpb25JY29ucyIsInJlbW92ZSIsIlRyYXNoIiwibGF5ZXIiLCJMYXllcnMiLCJjb3B5IiwiQ29weSIsImNvcGllZCIsIkNoZWNrbWFyayIsIlB1cmVGZWF0dXJlQWN0aW9uUGFuZWxGYWN0b3J5IiwiZGVwcyIsIkZlYXR1cmVBY3Rpb25QYW5lbCIsIl9yZWYiLCJjbGFzc05hbWUiLCJkYXRhc2V0cyIsInNlbGVjdGVkRmVhdHVyZSIsIl9yZWYkcG9zaXRpb24iLCJwb3NpdGlvbiIsImxheWVycyIsImN1cnJlbnRGaWx0ZXIiLCJvblRvZ2dsZUxheWVyIiwib25EZWxldGVGZWF0dXJlIiwiX3JlZiRhY3Rpb25JY29ucyIsImFjdGlvbkljb25zIiwiY2hpbGRyZW4iLCJvbkNsb3NlIiwiX3VzZVN0YXRlIiwidXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkyIiwic2V0Q29waWVkIiwiX3JlZjIiLCJfcmVmMiRsYXllcklkIiwibGF5ZXJJZCIsImludGwiLCJ1c2VJbnRsIiwiX3VzZUZsb2F0aW5nIiwidXNlRmxvYXRpbmciLCJvcGVuIiwib25PcGVuQ2hhbmdlIiwidiIsInJlZnMiLCJjb250ZXh0IiwiZGlzbWlzcyIsInVzZURpc21pc3MiLCJfdXNlSW50ZXJhY3Rpb25zIiwidXNlSW50ZXJhY3Rpb25zIiwiZ2V0RmxvYXRpbmdQcm9wcyIsImNvcHlHZW9tZXRyeSIsInVzZUNhbGxiYWNrIiwiZ2VvbWV0cnkiLCJKU09OIiwic3RyaW5naWZ5IiwiaXNGaWx0ZXJMYXllckRpc2FibGVkIiwiY2FuQXBwbHlGZWF0dXJlRmlsdGVyIiwiY3JlYXRlRWxlbWVudCIsIl9leHRlbmRzMiIsInJlZiIsInNldEZsb2F0aW5nIiwiY2xhc3NuYW1lcyIsInN0eWxlIiwidG9wIiwiY29uY2F0IiwieSIsImxlZnQiLCJ4IiwiQWN0aW9uUGFuZWxJdGVtIiwibGFiZWwiLCJmb3JtYXRNZXNzYWdlIiwiaWQiLCJkZWZhdWx0TWVzc2FnZSIsIkljb24iLCJpc0Rpc2FibGVkIiwidG9vbHRpcFRleHQiLCJsZW5ndGgiLCJtYXAiLCJpbmRleCIsImtleSIsImNvbmZpZyIsImNvbG9yIiwiZGF0YUlkIiwiaXNTZWxlY3Rpb24iLCJpc0FjdGl2ZSIsImluY2x1ZGVzIiwib25DbGljayIsImRpc3BsYXlOYW1lIiwiRmVhdHVyZUFjdGlvblBhbmVsRmFjdG9yeSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3NyYy9lZGl0b3IvZmVhdHVyZS1hY3Rpb24tcGFuZWwudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBSZWFjdCwge3VzZUNhbGxiYWNrLCB1c2VTdGF0ZSwgQ29tcG9uZW50VHlwZX0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHt1c2VJbnRsfSBmcm9tICdyZWFjdC1pbnRsJztcbmltcG9ydCBjb3B5IGZyb20gJ2NvcHktdG8tY2xpcGJvYXJkJztcbmltcG9ydCB7dXNlRGlzbWlzcywgdXNlRmxvYXRpbmcsIHVzZUludGVyYWN0aW9uc30gZnJvbSAnQGZsb2F0aW5nLXVpL3JlYWN0JztcbmltcG9ydCBjbGFzc25hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5cbmltcG9ydCB7TGF5ZXJ9IGZyb20gJ0BrZXBsZXIuZ2wvbGF5ZXJzJztcbmltcG9ydCB7RmlsdGVyfSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcbmltcG9ydCB7RmVhdHVyZX0gZnJvbSAnQG5lYnVsYS5nbC9lZGl0LW1vZGVzJztcbmltcG9ydCB7RGF0YXNldHN9IGZyb20gJ0BrZXBsZXIuZ2wvdGFibGUnO1xuaW1wb3J0IHtjYW5BcHBseUZlYXR1cmVGaWx0ZXJ9IGZyb20gJ0BrZXBsZXIuZ2wvdXRpbHMnO1xuXG5pbXBvcnQgQWN0aW9uUGFuZWwsIHtBY3Rpb25QYW5lbEl0ZW19IGZyb20gJy4uL2NvbW1vbi9hY3Rpb24tcGFuZWwnO1xuaW1wb3J0IHtUcmFzaCwgTGF5ZXJzLCBDb3B5LCBDaGVja21hcmt9IGZyb20gJy4uL2NvbW1vbi9pY29ucyc7XG5cbmNvbnN0IExBWU9WRVJfT0ZGU0VUID0gNDtcblxuY29uc3QgU3R5bGVkQWN0aW9uc0xheWVyID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICAubGF5ZXItcGFuZWwtaXRlbS1kaXNhYmxlZCB7XG4gICAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUudGV4dENvbG9yfTtcbiAgfVxuYDtcbmNvbnN0IGRlZmF1bHRBY3Rpb25JY29ucyA9IHtcbiAgcmVtb3ZlOiBUcmFzaCxcbiAgbGF5ZXI6IExheWVycyxcbiAgY29weTogQ29weSxcbiAgY29waWVkOiBDaGVja21hcmtcbn07XG5QdXJlRmVhdHVyZUFjdGlvblBhbmVsRmFjdG9yeS5kZXBzID0gW107XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmVhdHVyZUFjdGlvblBhbmVsUHJvcHMge1xuICBjbGFzc05hbWU/OiBzdHJpbmc7XG4gIGRhdGFzZXRzOiBEYXRhc2V0cztcbiAgc2VsZWN0ZWRGZWF0dXJlOiBGZWF0dXJlIHwgbnVsbDtcbiAgcG9zaXRpb246IHtcbiAgICB4OiBudW1iZXI7XG4gICAgeTogbnVtYmVyO1xuICB9IHwgbnVsbDtcbiAgbGF5ZXJzOiBMYXllcltdO1xuICBjdXJyZW50RmlsdGVyPzogRmlsdGVyO1xuICBvblRvZ2dsZUxheWVyOiAobGF5ZXI6IExheWVyKSA9PiB2b2lkO1xuICBvbkRlbGV0ZUZlYXR1cmU6ICgpID0+IHZvaWQ7XG4gIG9uQ2xvc2U/OiAoKSA9PiB2b2lkO1xuICBjaGlsZHJlbj86IFJlYWN0LlJlYWN0Tm9kZTtcbiAgYWN0aW9uSWNvbnM/OiB7XG4gICAgW2lkOiBzdHJpbmddOiBSZWFjdC5FbGVtZW50VHlwZTtcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIFB1cmVGZWF0dXJlQWN0aW9uUGFuZWxGYWN0b3J5KCk6IFJlYWN0LkZDPEZlYXR1cmVBY3Rpb25QYW5lbFByb3BzPiB7XG4gIGNvbnN0IEZlYXR1cmVBY3Rpb25QYW5lbCA9ICh7XG4gICAgY2xhc3NOYW1lLFxuICAgIGRhdGFzZXRzLFxuICAgIHNlbGVjdGVkRmVhdHVyZSxcbiAgICBwb3NpdGlvbiA9IG51bGwsXG4gICAgbGF5ZXJzLFxuICAgIGN1cnJlbnRGaWx0ZXIsXG4gICAgb25Ub2dnbGVMYXllcixcbiAgICBvbkRlbGV0ZUZlYXR1cmUsXG4gICAgYWN0aW9uSWNvbnMgPSBkZWZhdWx0QWN0aW9uSWNvbnMsXG4gICAgY2hpbGRyZW4sXG4gICAgb25DbG9zZVxuICB9OiBGZWF0dXJlQWN0aW9uUGFuZWxQcm9wcykgPT4ge1xuICAgIGNvbnN0IFtjb3BpZWQsIHNldENvcGllZF0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gICAgY29uc3Qge2xheWVySWQgPSBbXX0gPSBjdXJyZW50RmlsdGVyIHx8IHt9O1xuICAgIGNvbnN0IGludGwgPSB1c2VJbnRsKCk7XG5cbiAgICBjb25zdCB7cmVmcywgY29udGV4dH0gPSB1c2VGbG9hdGluZyh7XG4gICAgICBvcGVuOiB0cnVlLFxuICAgICAgb25PcGVuQ2hhbmdlOiB2ID0+IHtcbiAgICAgICAgaWYgKCF2ICYmIG9uQ2xvc2UpIHtcbiAgICAgICAgICBvbkNsb3NlKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCBkaXNtaXNzID0gdXNlRGlzbWlzcyhjb250ZXh0KTtcblxuICAgIGNvbnN0IHtnZXRGbG9hdGluZ1Byb3BzfSA9IHVzZUludGVyYWN0aW9ucyhbZGlzbWlzc10pO1xuXG4gICAgY29uc3QgY29weUdlb21ldHJ5ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgaWYgKHNlbGVjdGVkRmVhdHVyZT8uZ2VvbWV0cnkpIGNvcHkoSlNPTi5zdHJpbmdpZnkoc2VsZWN0ZWRGZWF0dXJlLmdlb21ldHJ5KSk7XG4gICAgICBzZXRDb3BpZWQodHJ1ZSk7XG4gICAgfSwgW3NlbGVjdGVkRmVhdHVyZT8uZ2VvbWV0cnldKTtcblxuICAgIGlmICghcG9zaXRpb24pIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IGlzRmlsdGVyTGF5ZXJEaXNhYmxlZCA9ICFjYW5BcHBseUZlYXR1cmVGaWx0ZXIoc2VsZWN0ZWRGZWF0dXJlIGFzIGFueSk7XG4gICAgcmV0dXJuIChcbiAgICAgIDxTdHlsZWRBY3Rpb25zTGF5ZXJcbiAgICAgICAgcmVmPXtyZWZzLnNldEZsb2F0aW5nfVxuICAgICAgICB7Li4uZ2V0RmxvYXRpbmdQcm9wcygpfVxuICAgICAgICBjbGFzc05hbWU9e2NsYXNzbmFtZXMoJ2ZlYXR1cmUtYWN0aW9uLXBhbmVsJywgY2xhc3NOYW1lKX1cbiAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICB0b3A6IGAke3Bvc2l0aW9uLnkgKyBMQVlPVkVSX09GRlNFVH1weGAsXG4gICAgICAgICAgbGVmdDogYCR7cG9zaXRpb24ueCArIExBWU9WRVJfT0ZGU0VUfXB4YFxuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICA8QWN0aW9uUGFuZWw+XG4gICAgICAgICAgPEFjdGlvblBhbmVsSXRlbVxuICAgICAgICAgICAgY2xhc3NOYW1lPVwiZWRpdG9yLWxheWVycy1saXN0XCJcbiAgICAgICAgICAgIGxhYmVsPXtpbnRsLmZvcm1hdE1lc3NhZ2Uoe2lkOiAnZWRpdG9yLmZpbHRlckxheWVyJywgZGVmYXVsdE1lc3NhZ2U6ICdGaWx0ZXIgbGF5ZXJzJ30pfVxuICAgICAgICAgICAgSWNvbj17YWN0aW9uSWNvbnMubGF5ZXJ9XG4gICAgICAgICAgICBpc0Rpc2FibGVkPXtpc0ZpbHRlckxheWVyRGlzYWJsZWR9XG4gICAgICAgICAgICB0b29sdGlwVGV4dD17XG4gICAgICAgICAgICAgIGlzRmlsdGVyTGF5ZXJEaXNhYmxlZCA/IGludGwuZm9ybWF0TWVzc2FnZSh7aWQ6ICdlZGl0b3IuZmlsdGVyTGF5ZXJEaXNhYmxlZCd9KSA6IG51bGxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7bGF5ZXJzLmxlbmd0aCA/IChcbiAgICAgICAgICAgICAgbGF5ZXJzLm1hcCgobGF5ZXIsIGluZGV4KSA9PiAoXG4gICAgICAgICAgICAgICAgPEFjdGlvblBhbmVsSXRlbVxuICAgICAgICAgICAgICAgICAga2V5PXtpbmRleH1cbiAgICAgICAgICAgICAgICAgIGxhYmVsPXtsYXllci5jb25maWcubGFiZWx9XG4gICAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICAgICAgICBjb2xvcj17ZGF0YXNldHNbbGF5ZXIuY29uZmlnLmRhdGFJZF0uY29sb3J9XG4gICAgICAgICAgICAgICAgICBpc1NlbGVjdGlvbj17dHJ1ZX1cbiAgICAgICAgICAgICAgICAgIGlzQWN0aXZlPXtsYXllcklkLmluY2x1ZGVzKGxheWVyLmlkKX1cbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uVG9nZ2xlTGF5ZXIobGF5ZXIpfVxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwibGF5ZXItcGFuZWwtaXRlbVwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKSlcbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxBY3Rpb25QYW5lbEl0ZW1cbiAgICAgICAgICAgICAgICBrZXk9eyduby1sYXllcnMnfVxuICAgICAgICAgICAgICAgIGxhYmVsPXtpbnRsLmZvcm1hdE1lc3NhZ2Uoe1xuICAgICAgICAgICAgICAgICAgaWQ6ICdlZGl0b3Iubm9MYXllcnNUb0ZpbHRlcicsXG4gICAgICAgICAgICAgICAgICBkZWZhdWx0TWVzc2FnZTogJ05vIGxheWVycyB0byBmaWx0ZXInXG4gICAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgICAgaXNTZWxlY3Rpb249e2ZhbHNlfVxuICAgICAgICAgICAgICAgIGlzQWN0aXZlPXtmYWxzZX1cbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJsYXllci1wYW5lbC1pdGVtLWRpc2FibGVkXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9BY3Rpb25QYW5lbEl0ZW0+XG4gICAgICAgICAgPEFjdGlvblBhbmVsSXRlbVxuICAgICAgICAgICAgbGFiZWw9e2ludGwuZm9ybWF0TWVzc2FnZSh7aWQ6ICdlZGl0b3IuY29weUdlb21ldHJ5JywgZGVmYXVsdE1lc3NhZ2U6ICdDb3B5IEdlb21ldHJ5J30pfVxuICAgICAgICAgICAgY2xhc3NOYW1lPVwiZGVsZXRlLXBhbmVsLWl0ZW1cIlxuICAgICAgICAgICAgSWNvbj17Y29waWVkID8gYWN0aW9uSWNvbnMuY29waWVkIDogYWN0aW9uSWNvbnMuY29weX1cbiAgICAgICAgICAgIG9uQ2xpY2s9e2NvcHlHZW9tZXRyeX1cbiAgICAgICAgICAvPlxuICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgICA8QWN0aW9uUGFuZWxJdGVtXG4gICAgICAgICAgICBsYWJlbD17aW50bC5mb3JtYXRNZXNzYWdlKHtpZDogJ3Rvb2x0aXAuZGVsZXRlJywgZGVmYXVsdE1lc3NhZ2U6ICdEZWxldGUnfSl9XG4gICAgICAgICAgICBjbGFzc05hbWU9XCJkZWxldGUtcGFuZWwtaXRlbVwiXG4gICAgICAgICAgICBJY29uPXthY3Rpb25JY29ucy5yZW1vdmV9XG4gICAgICAgICAgICBvbkNsaWNrPXtvbkRlbGV0ZUZlYXR1cmV9XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9BY3Rpb25QYW5lbD5cbiAgICAgIDwvU3R5bGVkQWN0aW9uc0xheWVyPlxuICAgICk7XG4gIH07XG5cbiAgRmVhdHVyZUFjdGlvblBhbmVsLmRpc3BsYXlOYW1lID0gJ0ZlYXR1cmVBY3Rpb25QYW5lbCc7XG5cbiAgcmV0dXJuIEZlYXR1cmVBY3Rpb25QYW5lbDtcbn1cblxuRmVhdHVyZUFjdGlvblBhbmVsRmFjdG9yeS5kZXBzID0gUHVyZUZlYXR1cmVBY3Rpb25QYW5lbEZhY3RvcnkuZGVwcztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gRmVhdHVyZUFjdGlvblBhbmVsRmFjdG9yeSgpOiBDb21wb25lbnRUeXBlPEZlYXR1cmVBY3Rpb25QYW5lbFByb3BzPiB7XG4gIHJldHVybiBQdXJlRmVhdHVyZUFjdGlvblBhbmVsRmFjdG9yeSgpO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFHQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxVQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxnQkFBQSxHQUFBQyxzQkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQUksT0FBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssV0FBQSxHQUFBRixzQkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQU0saUJBQUEsR0FBQUgsc0JB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