kepler.gl.geoiq
Version:
kepler.gl is a webgl based application to visualize large scale location data in the browser
147 lines (127 loc) • 19.4 kB
JavaScript
"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");
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
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 = (0, _styledComponents["default"])(_styledComponents2.StyledPanelHeader)(_templateObject || (_templateObject = (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"])), function (props) {
return props.theme.panelBackgroundHover;
});
var HeaderLabelSection = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n color: ", ";\n"])), function (props) {
return props.theme.textColor;
});
var HeaderActionSection = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n"])));
var WidgetTitleSection = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (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"])), function (props) {
return props.theme.subtextColor;
});
var DragHandle = _styledComponents["default"].div(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n opacity: 0;\n\n :hover {\n cursor: move;\n color: ", ";\n }\n"])), 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 (/*#__PURE__*/_react["default"].createElement(StyledWidgetPanelHeader, {
className: (0, _classnames["default"])('layer-panel__header', {
'sort--handle': !isConfigActive
}),
active: isConfigActive,
labelRCGColorValues: labelRCGColorValues,
onClick: onToggleEnableConfig
}, /*#__PURE__*/_react["default"].createElement(HeaderLabelSection, {
className: "layer-panel__header__content"
}, isDragNDropEnabled && /*#__PURE__*/_react["default"].createElement(DragHandle, {
className: "layer__drag-handle"
}, /*#__PURE__*/_react["default"].createElement(_icons.VertDots, {
height: "20px"
})), /*#__PURE__*/_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
}), /*#__PURE__*/_react["default"].createElement(WidgetTitleSection, {
className: "layer__title"
}, /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(WidgetLabelEditor, {
label: label,
onEdit: onUpdateWidgetLabel
}), /*#__PURE__*/_react["default"].createElement("div", {
className: "layer__title__type"
}, layerType)))), /*#__PURE__*/_react["default"].createElement(HeaderActionSection, {
className: "layer-panel__header__actions"
}, showRemoveLayer ? /*#__PURE__*/_react["default"].createElement(_panelHeaderAction["default"], {
className: "layer__remove-layer",
id: layerId,
tooltip: 'Remove widget',
onClick: onRemoveWidget,
tooltipType: "error",
IconComponent: _icons.Trash
}) : null, /*#__PURE__*/_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 (/*#__PURE__*/_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 = exports["default"] = WidgetPanelHeader;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3NpZGUtcGFuZWwvd2lkZ2V0LXBhbmVsL3dpZGdldC1wYW5lbC1oZWFkZXIuanMiXSwibmFtZXMiOlsicHJvcFR5cGVzIiwiaWQiLCJQcm9wVHlwZXMiLCJzdHJpbmciLCJpc1JlcXVpcmVkIiwiaXNEcmFnTkRyb3BFbmFibGVkIiwiYm9vbCIsImlzVmlzaWJsZSIsImxhYmVsIiwib25Ub2dnbGVWaXNpYmlsaXR5IiwiZnVuYyIsImNsYXNzTmFtZSIsImlkeCIsIm51bWJlciIsImlzQ29uZmlnQWN0aXZlIiwibGFiZWxSQ0dDb2xvclZhbHVlcyIsImFycmF5T2YiLCJvblVwZGF0ZVdpZGdldExhYmVsIiwib25SZW1vdmVMYXllciIsImRlZmF1bHRQcm9wcyIsInNob3dSZW1vdmVMYXllciIsIlN0eWxlZFdpZGdldFBhbmVsSGVhZGVyIiwiU3R5bGVkUGFuZWxIZWFkZXIiLCJwcm9wcyIsInRoZW1lIiwicGFuZWxCYWNrZ3JvdW5kSG92ZXIiLCJIZWFkZXJMYWJlbFNlY3Rpb24iLCJzdHlsZWQiLCJkaXYiLCJ0ZXh0Q29sb3IiLCJIZWFkZXJBY3Rpb25TZWN0aW9uIiwiV2lkZ2V0VGl0bGVTZWN0aW9uIiwic3VidGV4dENvbG9yIiwiRHJhZ0hhbmRsZSIsInRleHRDb2xvckhsIiwiV2lkZ2V0UGFuZWxIZWFkZXIiLCJsYXllcklkIiwibGF5ZXJUeXBlIiwib25Ub2dnbGVFbmFibGVDb25maWciLCJvblJlbW92ZVdpZGdldCIsIkV5ZVNlZW4iLCJFeWVVbnNlZW4iLCJUcmFzaCIsIkFycm93RG93biIsIldpZGdldExhYmVsRWRpdG9yIiwib25FZGl0IiwiZSIsInN0b3BQcm9wYWdhdGlvbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFvQkE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBUUE7Ozs7QUFLQSxJQUFNQSxTQUFTLEdBQUc7QUFDaEI7QUFDQUMsRUFBQUEsRUFBRSxFQUFFQyxzQkFB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QkY7QUFoQndCO0FBQUEsQ0FBMUI7O0FBb0VBLElBQU1DLGlCQUFpQixHQUFHLFNBQXBCQSxpQkFBb0I7QUFBQSxNQUFFcEMsS0FBRixTQUFFQSxLQUFGO0FBQUEsTUFBU3FDLE1BQVQsU0FBU0EsTUFBVDtBQUFBLHVCQUN4QixnQ0FBQyw4QkFBRDtBQUNFLE1BQUEsSUFBSSxFQUFDLE1BRFA7QUFFRSxNQUFBLFNBQVMsRUFBQyxzQkFGWjtBQUdFLE1BQUEsS0FBSyxFQUFFckMsS0FIVDtBQUlFLE1BQUEsT0FBTyxFQUFFLGlCQUFBc0MsQ0FBQyxFQUFJO0FBQ1pBLFFBQUFBLENBQUMsQ0FBQ0MsZUFBRjtBQUNELE9BTkg7QUFPRSxNQUFBLFFBQVEsRUFBRUYsTUFQWjtBQVFFLE1BQUEsRUFBRSxFQUFDO0FBUkw7QUFEd0I7QUFBQSxDQUExQjs7QUFhQVYsaUJBQWlCLENBQUNuQyxTQUFsQixHQUE4QkEsU0FBOUI7QUFDQW1DLGlCQUFpQixDQUFDaEIsWUFBbEIsR0FBaUNBLFlBQWpDOztvQ0FFZWdCLGlCIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSAyMDIzIFViZXIgVGVjaG5vbG9naWVzLCBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgY2xhc3NuYW1lcyBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IFBhbmVsSGVhZGVyQWN0aW9uIGZyb20gJ2NvbXBvbmVudHMvc2lkZS1wYW5lbC9wYW5lbC1oZWFkZXItYWN0aW9uJztcbmltcG9ydCB7XG4gIEV5ZVNlZW4sXG4gIEV5ZVVuc2VlbixcbiAgVmVydERvdHMsXG4gIEFycm93RG93bixcbiAgVHJhc2hcbn0gZnJvbSAnY29tcG9uZW50cy9jb21tb24vaWNvbnMnO1xuXG5pbXBvcnQge1xuICBJbmxpbmVJbnB1dCxcbiAgU3R5bGVkUGFuZWxIZWFkZXJcbn0gZnJvbSAnY29tcG9uZW50cy9jb21tb24vc3R5bGVkLWNvbXBvbmVudHMnO1xuXG5jb25zdCBwcm9wVHlwZXMgPSB7XG4gIC8vIHJlcXVpcmVkXG4gIGlkOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIGlzRHJhZ05Ecm9wRW5hYmxlZDogUHJvcFR5cGVzLmJvb2wsXG4gIGlzVmlzaWJsZTogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgbGFiZWw6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgb25Ub2dnbGVWaXNpYmlsaXR5OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuXG4gIC8vIG9wdGlvbmFsXG4gIGNsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgaWR4OiBQcm9wVHlwZXMubnVtYmVyLFxuICBpc0NvbmZpZ0FjdGl2ZTogUHJvcFR5cGVzLmJvb2wsXG4gIGxhYmVsUkNHQ29sb3JWYWx1ZXM6IFByb3BUeXBlcy5hcnJheU9mKFByb3BUeXBlcy5udW1iZXIpLFxuICBvblVwZGF0ZVdpZGdldExhYmVsOiBQcm9wVHlwZXMuZnVuYyxcbiAgb25SZW1vdmVMYXllcjogUHJvcFR5cGVzLmZ1bmNcbn07XG5cbmNvbnN0IGRlZmF1bHRQcm9wcyA9IHtcbiAgaXNEcmFnTkRyb3BFbmFibGVkOiB0cnVlLFxuICBzaG93UmVtb3ZlTGF5ZXI6IHRydWVcbn07XG5cbmNvbnN0IFN0eWxlZFdpZGdldFBhbmVsSGVhZGVyID0gc3R5bGVkKFN0eWxlZFBhbmVsSGVhZGVyKWBcbiAgLmxheWVyX19yZW1vdmUtbGF5ZXIge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbiAgOmhvdmVyIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5wYW5lbEJhY2tncm91bmRIb3Zlcn07XG5cbiAgICAubGF5ZXJfX2RyYWctaGFuZGxlIHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgLmxheWVyX19yZW1vdmUtbGF5ZXIge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAubGF5ZXJfX2VuYWJsZS1jb25maWcge1xuICAgICAgY29sb3I6ICM0OTRjNTI7XG4gICAgfVxuICB9XG5gO1xuXG5jb25zdCBIZWFkZXJMYWJlbFNlY3Rpb24gPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS50ZXh0Q29sb3J9O1xuYDtcblxuY29uc3QgSGVhZGVyQWN0aW9uU2VjdGlvbiA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG5gO1xuXG5jb25zdCBXaWRnZXRUaXRsZVNlY3Rpb24gPSBzdHlsZWQuZGl2YFxuICBtYXJnaW4tbGVmdDogMTJweDtcblxuICAubGF5ZXJfX3RpdGxlX190eXBlIHtcbiAgICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zdWJ0ZXh0Q29sb3J9O1xuICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICBsaW5lLWhlaWdodDogMTJweDtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4zN3B4O1xuICAgIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xuICB9XG5gO1xuXG5jb25zdCBEcmFnSGFuZGxlID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgb3BhY2l0eTogMDtcblxuICA6aG92ZXIge1xuICAgIGN1cnNvcjogbW92ZTtcbiAgICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS50ZXh0Q29sb3JIbH07XG4gIH1cbmA7XG5cbmNvbnN0IFdpZGdldFBhbmVsSGVhZGVyID0gKHtcbiAgY2xhc3NOYW1lLFxuICBpZHgsXG4gIGlzQ29uZmlnQWN0aXZlLFxuICBpc0RyYWdORHJvcEVuYWJsZWQsXG4gIGlzVmlzaWJsZSxcbiAgbGFiZWwsXG4gIGxheWVySWQsXG4gIGxheWVyVHlwZSxcbiAgbGFiZWxSQ0dDb2xvclZhbHVlcyxcbiAgb25Ub2dnbGVWaXNpYmlsaXR5LFxuICBvblVwZGF0ZVdpZGdldExhYmVsLFxuICBvblRvZ2dsZUVuYWJsZUNvbmZpZyxcbiAgb25SZW1vdmVXaWRnZXQsXG4gIHNob3dSZW1vdmVMYXllclxufSkgPT4gKFxuICA8U3R5bGVkV2lkZ2V0UGFuZWxIZWFkZXJcbiAgICBjbGFzc05hbWU9e2NsYXNzbmFtZXMoJ2xheWVyLXBhbmVsX19oZWFkZXInLCB7XG4gICAgICAnc29ydC0taGFuZGxlJzogIWlzQ29uZmlnQWN0aXZlXG4gICAgfSl9XG4gICAgYWN0aXZlPXtpc0NvbmZpZ0FjdGl2ZX1cbiAgICBsYWJlbFJDR0NvbG9yVmFsdWVzPXtsYWJlbFJDR0NvbG9yVmFsdWVzfVxuICAgIG9uQ2xpY2s9e29uVG9nZ2xlRW5hYmxlQ29uZmlnfVxuICA+XG4gICAgPEhlYWRlckxhYmVsU2VjdGlvbiBjbGFzc05hbWU9XCJsYXllci1wYW5lbF9faGVhZGVyX19jb250ZW50XCI+XG4gICAgICB7aXNEcmFnTkRyb3BFbmFibGVkICYmIChcbiAgICAgICAgPERyYWdIYW5kbGUgY2xhc3NOYW1lPVwibGF5ZXJfX2RyYWctaGFuZGxlXCI+XG4gICAgICAgICAgPFZlcnREb3RzIGhlaWdodD1cIjIwcHhcIiAvPlxuICAgICAgICA8L0RyYWdIYW5kbGU+XG4gICAgICApfVxuICAgICAgPFBhbmVsSGVhZGVyQWN0aW9uXG4gICAgICAgIGNsYXNzTmFtZT1cImxheWVyX192aXNpYmlsaXR5LXRvZ2dsZVwiXG4gICAgICAgIGlkPXtsYXllcklkfVxuICAgICAgICB0b29sdGlwPXtpc1Zpc2libGUgPyAnaGlkZSBsYXllcicgOiAnc2hvdyBsYXllcid9XG4gICAgICAgIG9uQ2xpY2s9e29uVG9nZ2xlVmlzaWJpbGl0eX1cbiAgICAgICAgSWNvbkNvbXBvbmVudD17aXNWaXNpYmxlID8gRXllU2VlbiA6IEV5ZVVuc2Vlbn1cbiAgICAgICAgYWN0aXZlPXtpc1Zpc2libGV9XG4gICAgICAgIGZsdXNoXG4gICAgICAvPlxuICAgICAgPFdpZGdldFRpdGxlU2VjdGlvbiBjbGFzc05hbWU9XCJsYXllcl9fdGl0bGVcIj5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICA8V2lkZ2V0TGFiZWxFZGl0b3IgbGFiZWw9e2xhYmVsfSBvbkVkaXQ9e29uVXBkYXRlV2lkZ2V0TGFiZWx9IC8+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJsYXllcl9fdGl0bGVfX3R5cGVcIj57bGF5ZXJUeXBlfTwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvV2lkZ2V0VGl0bGVTZWN0aW9uPlxuICAgIDwvSGVhZGVyTGFiZWxTZWN0aW9uPlxuICAgIDxIZWFkZXJBY3Rpb25TZWN0aW9uIGNsYXNzTmFtZT1cImxheWVyLXBhbmVsX19oZWFkZXJfX2FjdGlvbnNcIj5cbiAgICAgIHtzaG93UmVtb3ZlTGF5ZXIgPyAoXG4gICAgICAgIDxQYW5lbEhlYWRlckFjdGlvblxuICAgICAgICAgIGNsYXNzTmFtZT1cImxheWVyX19yZW1vdmUtbGF5ZXJcIlxuICAgICAgICAgIGlkPXtsYXllcklkfVxuICAgICAgICAgIHRvb2x0aXA9eydSZW1vdmUgd2lkZ2V0J31cbiAgICAgICAgICBvbkNsaWNrPXtvblJlbW92ZVdpZGdldH1cbiAgICAgICAgICB0b29sdGlwVHlwZT1cImVycm9yXCJcbiAgICAgICAgICBJY29uQ29tcG9uZW50PXtUcmFzaH1cbiAgICAgICAgLz5cbiAgICAgICkgOiBudWxsfVxuICAgICAgPFBhbmVsSGVhZGVyQWN0aW9uXG4gICAgICAgIGNsYXNzTmFtZT1cImxheWVyX19lbmFibGUtY29uZmlnXCJcbiAgICAgICAgaWQ9e2xheWVySWR9XG4gICAgICAgIHRvb2x0aXA9eydMYXllciBzZXR0aW5ncyd9XG4gICAgICAgIG9uQ2xpY2s9e29uVG9nZ2xlRW5hYmxlQ29uZmlnfVxuICAgICAgICBJY29uQ29tcG9uZW50PXtBcnJvd0Rvd259XG4gICAgICAvPlxuICAgIDwvSGVhZGVyQWN0aW9uU2VjdGlvbj5cbiAgPC9TdHlsZWRXaWRnZXRQYW5lbEhlYWRlcj5cbik7XG5cbmNvbnN0IFdpZGdldExhYmVsRWRpdG9yID0gKHtsYWJlbCwgb25FZGl0fSkgPT4gKFxuICA8SW5saW5lSW5wdXRcbiAgICB0eXBlPVwidGV4dFwiXG4gICAgY2xhc3NOYW1lPVwibGF5ZXJfX3RpdGxlX19lZGl0b3JcIlxuICAgIHZhbHVlPXtsYWJlbH1cbiAgICBvbkNsaWNrPXtlID0+IHtcbiAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfX1cbiAgICBvbkNoYW5nZT17b25FZGl0fVxuICAgIGlkPVwiaW5wdXQtbGF5ZXItbGFiZWxcIlxuICAvPlxuKTtcblxuV2lkZ2V0UGFuZWxIZWFkZXIucHJvcFR5cGVzID0gcHJvcFR5cGVzO1xuV2lkZ2V0UGFuZWxIZWFkZXIuZGVmYXVsdFByb3BzID0gZGVmYXVsdFByb3BzO1xuXG5leHBvcnQgZGVmYXVsdCBXaWRnZXRQYW5lbEhlYWRlcjtcbiJdfQ==