UNPKG

kepler.gl.geoiq

Version:

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

194 lines (160 loc) 19.7 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral")); var _react = _interopRequireDefault(require("react")); var _propTypes = _interopRequireDefault(require("prop-types")); var _classnames = _interopRequireDefault(require("classnames")); var _styledComponents = _interopRequireDefault(require("styled-components")); var _panelHeaderAction = _interopRequireDefault(require("../panel-header-action")); var _icons = require("../../common/icons"); var _styledComponents2 = require("../../common/styled-components"); function _templateObject5() { var data = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n opacity: 0;\n\n :hover {\n cursor: move;\n color: ", ";\n }\n"]); _templateObject5 = function _templateObject5() { return data; }; return data; } function _templateObject4() { var data = (0, _taggedTemplateLiteral2["default"])(["\n margin-left: 12px;\n\n .layer__title__type {\n color: ", ";\n font-size: 10px;\n line-height: 12px;\n letter-spacing: 0.37px;\n text-transform: capitalize;\n }\n"]); _templateObject4 = function _templateObject4() { return data; }; return data; } function _templateObject3() { var data = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n"]); _templateObject3 = function _templateObject3() { return data; }; return data; } function _templateObject2() { var data = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n color: ", ";\n"]); _templateObject2 = function _templateObject2() { return data; }; return data; } function _templateObject() { var data = (0, _taggedTemplateLiteral2["default"])(["\n .layer__remove-layer {\n opacity: 0;\n }\n :hover {\n cursor: pointer;\n background-color: ", ";\n\n .layer__drag-handle {\n opacity: 1;\n }\n\n .layer__remove-layer {\n opacity: 1;\n }\n\n .layer__enable-config {\n color: #494c52;\n }\n }\n"]); _templateObject = function _templateObject() { return data; }; return data; } var propTypes = { // required id: _propTypes["default"].string.isRequired, isDragNDropEnabled: _propTypes["default"].bool, isVisible: _propTypes["default"].bool.isRequired, label: _propTypes["default"].string.isRequired, onToggleVisibility: _propTypes["default"].func.isRequired, // optional className: _propTypes["default"].string, idx: _propTypes["default"].number, isConfigActive: _propTypes["default"].bool, labelRCGColorValues: _propTypes["default"].arrayOf(_propTypes["default"].number), onUpdateWidgetLabel: _propTypes["default"].func, onRemoveLayer: _propTypes["default"].func }; var defaultProps = { isDragNDropEnabled: true, showRemoveLayer: true }; var StyledWidgetPanelHeader = _styledComponents2.StyledPanelHeader.extend(_templateObject(), function (props) { return props.theme.panelBackgroundHover; }); var HeaderLabelSection = _styledComponents["default"].div(_templateObject2(), function (props) { return props.theme.textColor; }); var HeaderActionSection = _styledComponents["default"].div(_templateObject3()); var WidgetTitleSection = _styledComponents["default"].div(_templateObject4(), function (props) { return props.theme.subtextColor; }); var DragHandle = _styledComponents["default"].div(_templateObject5(), function (props) { return props.theme.textColorHl; }); var WidgetPanelHeader = function WidgetPanelHeader(_ref) { var className = _ref.className, idx = _ref.idx, isConfigActive = _ref.isConfigActive, isDragNDropEnabled = _ref.isDragNDropEnabled, isVisible = _ref.isVisible, label = _ref.label, layerId = _ref.layerId, layerType = _ref.layerType, labelRCGColorValues = _ref.labelRCGColorValues, onToggleVisibility = _ref.onToggleVisibility, onUpdateWidgetLabel = _ref.onUpdateWidgetLabel, onToggleEnableConfig = _ref.onToggleEnableConfig, onRemoveWidget = _ref.onRemoveWidget, showRemoveLayer = _ref.showRemoveLayer; return _react["default"].createElement(StyledWidgetPanelHeader, { className: (0, _classnames["default"])('layer-panel__header', { 'sort--handle': !isConfigActive }), active: isConfigActive, labelRCGColorValues: labelRCGColorValues, onClick: onToggleEnableConfig }, _react["default"].createElement(HeaderLabelSection, { className: "layer-panel__header__content" }, isDragNDropEnabled && _react["default"].createElement(DragHandle, { className: "layer__drag-handle" }, _react["default"].createElement(_icons.VertDots, { height: "20px" })), _react["default"].createElement(_panelHeaderAction["default"], { className: "layer__visibility-toggle", id: layerId, tooltip: isVisible ? 'hide layer' : 'show layer', onClick: onToggleVisibility, IconComponent: isVisible ? _icons.EyeSeen : _icons.EyeUnseen, active: isVisible, flush: true }), _react["default"].createElement(WidgetTitleSection, { className: "layer__title" }, _react["default"].createElement("div", null, _react["default"].createElement(WidgetLabelEditor, { label: label, onEdit: onUpdateWidgetLabel }), _react["default"].createElement("div", { className: "layer__title__type" }, layerType)))), _react["default"].createElement(HeaderActionSection, { className: "layer-panel__header__actions" }, showRemoveLayer ? _react["default"].createElement(_panelHeaderAction["default"], { className: "layer__remove-layer", id: layerId, tooltip: 'Remove widget', onClick: onRemoveWidget, tooltipType: "error", IconComponent: _icons.Trash }) : null, _react["default"].createElement(_panelHeaderAction["default"], { className: "layer__enable-config", id: layerId, tooltip: 'Layer settings', onClick: onToggleEnableConfig, IconComponent: _icons.ArrowDown }))); }; var WidgetLabelEditor = function WidgetLabelEditor(_ref2) { var label = _ref2.label, onEdit = _ref2.onEdit; return _react["default"].createElement(_styledComponents2.InlineInput, { type: "text", className: "layer__title__editor", value: label, onClick: function onClick(e) { e.stopPropagation(); }, onChange: onEdit, id: "input-layer-label" }); }; WidgetPanelHeader.propTypes = propTypes; WidgetPanelHeader.defaultProps = defaultProps; var _default = WidgetPanelHeader; exports["default"] = _default; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3NpZGUtcGFuZWwvd2lkZ2V0LXBhbmVsL3dpZGdldC1wYW5lbC1oZWFkZXIuanMiXSwibmFtZXMiOlsicHJvcFR5cGVzIiwiaWQiLCJQcm9wVHlwZXMiLCJzdHJpbmciLCJpc1JlcXVpcmVkIiwiaXNEcmFnTkRyb3BFbmFibGVkIiwiYm9vbCIsImlzVmlzaWJsZSIsImxhYmVsIiwib25Ub2dnbGVWaXNpYmlsaXR5IiwiZnVuYyIsImNsYXNzTmFtZSIsImlkeCIsIm51bWJlciIsImlzQ29uZmlnQWN0aXZlIiwibGFiZWxSQ0dDb2xvclZhbHVlcyIsImFycmF5T2YiLCJvblVwZGF0ZVdpZGdldExhYmVsIiwib25SZW1vdmVMYXllciIsImRlZmF1bHRQcm9wcyIsInNob3dSZW1vdmVMYXllciIsIlN0eWxlZFdpZGdldFBhbmVsSGVhZGVyIiwiU3R5bGVkUGFuZWxIZWFkZXIiLCJleHRlbmQiLCJwcm9wcyIsInRoZW1lIiwicGFuZWxCYWNrZ3JvdW5kSG92ZXIiLCJIZWFkZXJMYWJlbFNlY3Rpb24iLCJzdHlsZWQiLCJkaXYiLCJ0ZXh0Q29sb3IiLCJIZWFkZXJBY3Rpb25TZWN0aW9uIiwiV2lkZ2V0VGl0bGVTZWN0aW9uIiwic3VidGV4dENvbG9yIiwiRHJhZ0hhbmRsZSIsInRleHRDb2xvckhsIiwiV2lkZ2V0UGFuZWxIZWFkZXIiLCJsYXllcklkIiwibGF5ZXJUeXBlIiwib25Ub2dnbGVFbmFibGVDb25maWciLCJvblJlbW92ZVdpZGdldCIsIkV5ZVNlZW4iLCJFeWVVbnNlZW4iLCJUcmFzaCIsIkFycm93RG93biIsIldpZGdldExhYmVsRWRpdG9yIiwib25FZGl0IiwiZSIsInN0b3BQcm9wYWdhdGlvbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFvQkE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBUUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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TyxFQUFFRSxvQkFKWDtBQUtFLElBQUEsYUFBYSxFQUFFSztBQUxqQixJQVhGLENBOUJGLENBaEJ3QjtBQUFBLENBQTFCOztBQW9FQSxJQUFNQyxpQkFBaUIsR0FBRyxTQUFwQkEsaUJBQW9CO0FBQUEsTUFBRXJDLEtBQUYsU0FBRUEsS0FBRjtBQUFBLE1BQVNzQyxNQUFULFNBQVNBLE1BQVQ7QUFBQSxTQUN4QixnQ0FBQyw4QkFBRDtBQUNFLElBQUEsSUFBSSxFQUFDLE1BRFA7QUFFRSxJQUFBLFNBQVMsRUFBQyxzQkFGWjtBQUdFLElBQUEsS0FBSyxFQUFFdEMsS0FIVDtBQUlFLElBQUEsT0FBTyxFQUFFLGlCQUFBdUMsQ0FBQyxFQUFJO0FBQ1pBLE1BQUFBLENBQUMsQ0FBQ0MsZUFBRjtBQUNELEtBTkg7QUFPRSxJQUFBLFFBQVEsRUFBRUYsTUFQWjtBQVFFLElBQUEsRUFBRSxFQUFDO0FBUkwsSUFEd0I7QUFBQSxDQUExQjs7QUFhQVYsaUJBQWlCLENBQUNwQyxTQUFsQixHQUE4QkEsU0FBOUI7QUFDQW9DLGlCQUFpQixDQUFDakIsWUFBbEIsR0FBaUNBLFlBQWpDO2VBRWVpQixpQiIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgMjAxOSBVYmVyIFRlY2hub2xvZ2llcywgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG5cbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IGNsYXNzbmFtZXMgZnJvbSAnY2xhc3NuYW1lcyc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCBQYW5lbEhlYWRlckFjdGlvbiBmcm9tICdjb21wb25lbnRzL3NpZGUtcGFuZWwvcGFuZWwtaGVhZGVyLWFjdGlvbic7XG5pbXBvcnQge1xuICBFeWVTZWVuLFxuICBFeWVVbnNlZW4sXG4gIFZlcnREb3RzLFxuICBBcnJvd0Rvd24sXG4gIFRyYXNoXG59IGZyb20gJ2NvbXBvbmVudHMvY29tbW9uL2ljb25zJztcblxuaW1wb3J0IHtcbiAgSW5saW5lSW5wdXQsXG4gIFN0eWxlZFBhbmVsSGVhZGVyXG59IGZyb20gJ2NvbXBvbmVudHMvY29tbW9uL3N0eWxlZC1jb21wb25lbnRzJztcblxuY29uc3QgcHJvcFR5cGVzID0ge1xuICAvLyByZXF1aXJlZFxuICBpZDogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICBpc0RyYWdORHJvcEVuYWJsZWQ6IFByb3BUeXBlcy5ib29sLFxuICBpc1Zpc2libGU6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gIGxhYmVsOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIG9uVG9nZ2xlVmlzaWJpbGl0eTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcblxuICAvLyBvcHRpb25hbFxuICBjbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGlkeDogUHJvcFR5cGVzLm51bWJlcixcbiAgaXNDb25maWdBY3RpdmU6IFByb3BUeXBlcy5ib29sLFxuICBsYWJlbFJDR0NvbG9yVmFsdWVzOiBQcm9wVHlwZXMuYXJyYXlPZihQcm9wVHlwZXMubnVtYmVyKSxcbiAgb25VcGRhdGVXaWRnZXRMYWJlbDogUHJvcFR5cGVzLmZ1bmMsXG4gIG9uUmVtb3ZlTGF5ZXI6IFByb3BUeXBlcy5mdW5jXG59O1xuXG5jb25zdCBkZWZhdWx0UHJvcHMgPSB7XG4gIGlzRHJhZ05Ecm9wRW5hYmxlZDogdHJ1ZSxcbiAgc2hvd1JlbW92ZUxheWVyOiB0cnVlXG59O1xuXG5jb25zdCBTdHlsZWRXaWRnZXRQYW5lbEhlYWRlciA9IFN0eWxlZFBhbmVsSGVhZGVyLmV4dGVuZGBcbiAgLmxheWVyX19yZW1vdmUtbGF5ZXIge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbiAgOmhvdmVyIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5wYW5lbEJhY2tncm91bmRIb3Zlcn07XG5cbiAgICAubGF5ZXJfX2RyYWctaGFuZGxlIHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgLmxheWVyX19yZW1vdmUtbGF5ZXIge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAubGF5ZXJfX2VuYWJsZS1jb25maWcge1xuICAgICAgY29sb3I6ICM0OTRjNTI7XG4gICAgfVxuICB9XG5gO1xuXG5jb25zdCBIZWFkZXJMYWJlbFNlY3Rpb24gPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS50ZXh0Q29sb3J9O1xuYDtcblxuY29uc3QgSGVhZGVyQWN0aW9uU2VjdGlvbiA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG5gO1xuXG5jb25zdCBXaWRnZXRUaXRsZVNlY3Rpb24gPSBzdHlsZWQuZGl2YFxuICBtYXJnaW4tbGVmdDogMTJweDtcblxuICAubGF5ZXJfX3RpdGxlX190eXBlIHtcbiAgICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zdWJ0ZXh0Q29sb3J9O1xuICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICBsaW5lLWhlaWdodDogMTJweDtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4zN3B4O1xuICAgIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xuICB9XG5gO1xuXG5jb25zdCBEcmFnSGFuZGxlID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgb3BhY2l0eTogMDtcblxuICA6aG92ZXIge1xuICAgIGN1cnNvcjogbW92ZTtcbiAgICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS50ZXh0Q29sb3JIbH07XG4gIH1cbmA7XG5cbmNvbnN0IFdpZGdldFBhbmVsSGVhZGVyID0gKHtcbiAgY2xhc3NOYW1lLFxuICBpZHgsXG4gIGlzQ29uZmlnQWN0aXZlLFxuICBpc0RyYWdORHJvcEVuYWJsZWQsXG4gIGlzVmlzaWJsZSxcbiAgbGFiZWwsXG4gIGxheWVySWQsXG4gIGxheWVyVHlwZSxcbiAgbGFiZWxSQ0dDb2xvclZhbHVlcyxcbiAgb25Ub2dnbGVWaXNpYmlsaXR5LFxuICBvblVwZGF0ZVdpZGdldExhYmVsLFxuICBvblRvZ2dsZUVuYWJsZUNvbmZpZyxcbiAgb25SZW1vdmVXaWRnZXQsXG4gIHNob3dSZW1vdmVMYXllclxufSkgPT4gKFxuICA8U3R5bGVkV2lkZ2V0UGFuZWxIZWFkZXJcbiAgICBjbGFzc05hbWU9e2NsYXNzbmFtZXMoJ2xheWVyLXBhbmVsX19oZWFkZXInLCB7XG4gICAgICAnc29ydC0taGFuZGxlJzogIWlzQ29uZmlnQWN0aXZlXG4gICAgfSl9XG4gICAgYWN0aXZlPXtpc0NvbmZpZ0FjdGl2ZX1cbiAgICBsYWJlbFJDR0NvbG9yVmFsdWVzPXtsYWJlbFJDR0NvbG9yVmFsdWVzfVxuICAgIG9uQ2xpY2s9e29uVG9nZ2xlRW5hYmxlQ29uZmlnfVxuICA+XG4gICAgPEhlYWRlckxhYmVsU2VjdGlvbiBjbGFzc05hbWU9XCJsYXllci1wYW5lbF9faGVhZGVyX19jb250ZW50XCI+XG4gICAgICB7aXNEcmFnTkRyb3BFbmFibGVkICYmIChcbiAgICAgICAgPERyYWdIYW5kbGUgY2xhc3NOYW1lPVwibGF5ZXJfX2RyYWctaGFuZGxlXCI+XG4gICAgICAgICAgPFZlcnREb3RzIGhlaWdodD1cIjIwcHhcIiAvPlxuICAgICAgICA8L0RyYWdIYW5kbGU+XG4gICAgICApfVxuICAgICAgPFBhbmVsSGVhZGVyQWN0aW9uXG4gICAgICAgIGNsYXNzTmFtZT1cImxheWVyX192aXNpYmlsaXR5LXRvZ2dsZVwiXG4gICAgICAgIGlkPXtsYXllcklkfVxuICAgICAgICB0b29sdGlwPXtpc1Zpc2libGUgPyAnaGlkZSBsYXllcicgOiAnc2hvdyBsYXllcid9XG4gICAgICAgIG9uQ2xpY2s9e29uVG9nZ2xlVmlzaWJpbGl0eX1cbiAgICAgICAgSWNvbkNvbXBvbmVudD17aXNWaXNpYmxlID8gRXllU2VlbiA6IEV5ZVVuc2Vlbn1cbiAgICAgICAgYWN0aXZlPXtpc1Zpc2libGV9XG4gICAgICAgIGZsdXNoXG4gICAgICAvPlxuICAgICAgPFdpZGdldFRpdGxlU2VjdGlvbiBjbGFzc05hbWU9XCJsYXllcl9fdGl0bGVcIj5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICA8V2lkZ2V0TGFiZWxFZGl0b3IgbGFiZWw9e2xhYmVsfSBvbkVkaXQ9e29uVXBkYXRlV2lkZ2V0TGFiZWx9IC8+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJsYXllcl9fdGl0bGVfX3R5cGVcIj57bGF5ZXJUeXBlfTwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvV2lkZ2V0VGl0bGVTZWN0aW9uPlxuICAgIDwvSGVhZGVyTGFiZWxTZWN0aW9uPlxuICAgIDxIZWFkZXJBY3Rpb25TZWN0aW9uIGNsYXNzTmFtZT1cImxheWVyLXBhbmVsX19oZWFkZXJfX2FjdGlvbnNcIj5cbiAgICAgIHtzaG93UmVtb3ZlTGF5ZXIgPyAoXG4gICAgICAgIDxQYW5lbEhlYWRlckFjdGlvblxuICAgICAgICAgIGNsYXNzTmFtZT1cImxheWVyX19yZW1vdmUtbGF5ZXJcIlxuICAgICAgICAgIGlkPXtsYXllcklkfVxuICAgICAgICAgIHRvb2x0aXA9eydSZW1vdmUgd2lkZ2V0J31cbiAgICAgICAgICBvbkNsaWNrPXtvblJlbW92ZVdpZGdldH1cbiAgICAgICAgICB0b29sdGlwVHlwZT1cImVycm9yXCJcbiAgICAgICAgICBJY29uQ29tcG9uZW50PXtUcmFzaH1cbiAgICAgICAgLz5cbiAgICAgICkgOiBudWxsfVxuICAgICAgPFBhbmVsSGVhZGVyQWN0aW9uXG4gICAgICAgIGNsYXNzTmFtZT1cImxheWVyX19lbmFibGUtY29uZmlnXCJcbiAgICAgICAgaWQ9e2xheWVySWR9XG4gICAgICAgIHRvb2x0aXA9eydMYXllciBzZXR0aW5ncyd9XG4gICAgICAgIG9uQ2xpY2s9e29uVG9nZ2xlRW5hYmxlQ29uZmlnfVxuICAgICAgICBJY29uQ29tcG9uZW50PXtBcnJvd0Rvd259XG4gICAgICAvPlxuICAgIDwvSGVhZGVyQWN0aW9uU2VjdGlvbj5cbiAgPC9TdHlsZWRXaWRnZXRQYW5lbEhlYWRlcj5cbik7XG5cbmNvbnN0IFdpZGdldExhYmVsRWRpdG9yID0gKHtsYWJlbCwgb25FZGl0fSkgPT4gKFxuICA8SW5saW5lSW5wdXRcbiAgICB0eXBlPVwidGV4dFwiXG4gICAgY2xhc3NOYW1lPVwibGF5ZXJfX3RpdGxlX19lZGl0b3JcIlxuICAgIHZhbHVlPXtsYWJlbH1cbiAgICBvbkNsaWNrPXtlID0+IHtcbiAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfX1cbiAgICBvbkNoYW5nZT17b25FZGl0fVxuICAgIGlkPVwiaW5wdXQtbGF5ZXItbGFiZWxcIlxuICAvPlxuKTtcblxuV2lkZ2V0UGFuZWxIZWFkZXIucHJvcFR5cGVzID0gcHJvcFR5cGVzO1xuV2lkZ2V0UGFuZWxIZWFkZXIuZGVmYXVsdFByb3BzID0gZGVmYXVsdFByb3BzO1xuXG5leHBvcnQgZGVmYXVsdCBXaWRnZXRQYW5lbEhlYWRlcjtcbiJdfQ==