kepler.gl.geoiq
Version:
kepler.gl is a webgl based application to visualize large scale location data in the browser
229 lines (175 loc) • 19.4 kB
JavaScript
;
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = exports.StyledConfigGroupHeader = exports.StyledLayerConfigGroup = exports.ConfigGroupCollapsibleContent = exports.StyledLayerConfigGroupAction = exports.StyledLayerConfigGroupLabel = void 0;
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
var _getPrototypeOf3 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
var _react = _interopRequireWildcard(require("react"));
var _styledComponents = _interopRequireDefault(require("styled-components"));
var _classnames = _interopRequireDefault(require("classnames"));
var _switch = _interopRequireDefault(require("../../common/switch"));
var _icons = require("../../common/icons");
function _templateObject6() {
var data = (0, _taggedTemplateLiteral2["default"])(["\n &.disabled {\n opacity: 0.3;\n pointer-events: none;\n * {\n pointer-events: none;\n }\n }\n"]);
_templateObject6 = function _templateObject6() {
return data;
};
return data;
}
function _templateObject5() {
var data = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-bottom: 12px;\n\n :hover {\n cursor: pointer;\n .layer-config-group__label {\n color: ", ";\n border-left: 2px solid ", ";\n }\n\n .layer-config-group__action {\n color: ", ";\n }\n }\n"]);
_templateObject5 = function _templateObject5() {
return data;
};
return data;
}
function _templateObject4() {
var data = (0, _taggedTemplateLiteral2["default"])(["\n padding-left: 18px;\n margin-bottom: 12px;\n\n &.collapsed {\n .layer-config-group__content {\n\n .layer-config-group__content__collapsible {\n /* display: none; */\n /* flex: 0; */\n overflow: hidden;\n max-height: 0;\n }\n }\n }\n"]);
_templateObject4 = function _templateObject4() {
return data;
};
return data;
}
function _templateObject3() {
var data = (0, _taggedTemplateLiteral2["default"])(["\n overflow: visible;\n transition: max-height 0.3s ease-out;\n height: max-content;\n max-height: 600px;\n"]);
_templateObject3 = function _templateObject3() {
return data;
};
return data;
}
function _templateObject2() {
var data = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n color: ", ";\n"]);
_templateObject2 = function _templateObject2() {
return data;
};
return data;
}
function _templateObject() {
var data = (0, _taggedTemplateLiteral2["default"])(["\n border-left: 2px solid ", ";\n color: ", ";\n font-size: 12px;\n font-weight: 500;\n line-height: 12px;\n margin-left: -12px;\n padding-left: 10px;\n text-transform: capitalize;\n letter-spacing: 0.2px;\n"]);
_templateObject = function _templateObject() {
return data;
};
return data;
}
var StyledLayerConfigGroupLabel = _styledComponents["default"].div(_templateObject(), function (props) {
return props.theme.labelColor;
}, function (props) {
return props.theme.textColor;
});
exports.StyledLayerConfigGroupLabel = StyledLayerConfigGroupLabel;
var StyledLayerConfigGroupAction = _styledComponents["default"].div(_templateObject2(), function (props) {
return props.theme.textColor;
});
exports.StyledLayerConfigGroupAction = StyledLayerConfigGroupAction;
var ConfigGroupCollapsibleContent = _styledComponents["default"].div.attrs({
className: 'layer-config-group__content__collapsible'
})(_templateObject3());
exports.ConfigGroupCollapsibleContent = ConfigGroupCollapsibleContent;
var StyledLayerConfigGroup = _styledComponents["default"].div(_templateObject4());
exports.StyledLayerConfigGroup = StyledLayerConfigGroup;
var StyledConfigGroupHeader = _styledComponents["default"].div(_templateObject5(), function (props) {
return props.theme.textColorHl;
}, function (props) {
return props.theme.textColorHl;
}, function (props) {
return props.theme.textColorHl;
});
exports.StyledConfigGroupHeader = StyledConfigGroupHeader;
var ConfigGroupContent = _styledComponents["default"].div(_templateObject6());
var LayerConfigGroup =
/*#__PURE__*/
function (_Component) {
(0, _inherits2["default"])(LayerConfigGroup, _Component);
function LayerConfigGroup() {
var _getPrototypeOf2;
var _this;
(0, _classCallCheck2["default"])(this, LayerConfigGroup);
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
_this = (0, _possibleConstructorReturn2["default"])(this, (_getPrototypeOf2 = (0, _getPrototypeOf3["default"])(LayerConfigGroup)).call.apply(_getPrototypeOf2, [this].concat(args)));
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "state", {
collapsed: true
});
return _this;
}
(0, _createClass2["default"])(LayerConfigGroup, [{
key: "componentDidMount",
value: function componentDidMount() {
this._setCollapseState(this.props.expanded);
}
}, {
key: "componentWillReceiveProps",
value: function componentWillReceiveProps(nextProps) {
this._setCollapseState(nextProps.expanded);
}
}, {
key: "_setCollapseState",
value: function _setCollapseState(expanded) {
// if props,expanded, and state collapsed, set collapsed to be false
if (expanded && this.state.collapsed) {
this.setState({
collapsed: false
});
}
}
}, {
key: "render",
value: function render() {
var _this2 = this;
var _this$props = this.props,
label = _this$props.label,
children = _this$props.children,
property = _this$props.property,
layer = _this$props.layer,
_onChange2 = _this$props.onChange,
collapsible = _this$props.collapsible;
var collapsed = this.state.collapsed;
return _react["default"].createElement(StyledLayerConfigGroup, {
className: (0, _classnames["default"])('layer-config-group', {
collapsed: collapsed
})
}, _react["default"].createElement(StyledConfigGroupHeader, {
className: "layer-config-group__header",
onClick: function onClick() {
return _this2.setState({
collapsed: !_this2.state.collapsed
});
}
}, _react["default"].createElement(StyledLayerConfigGroupLabel, {
className: "layer-config-group__label"
}, label), _react["default"].createElement(StyledLayerConfigGroupAction, {
className: "layer-config-group__action"
}, property ? _react["default"].createElement(_switch["default"], {
checked: layer.config.visConfig[property],
id: "".concat(layer.id, "-").concat(property),
onChange: function onChange() {
return _onChange2((0, _defineProperty2["default"])({}, property, !layer.config.visConfig[property]));
}
}) : null, collapsible ? _react["default"].createElement(_icons.VertThreeDots, {
height: "18px"
}) : null)), _react["default"].createElement(ConfigGroupContent, {
className: (0, _classnames["default"])('layer-config-group__content', {
disabled: property && !layer.config.visConfig[property]
})
}, children));
}
}]);
return LayerConfigGroup;
}(_react.Component);
exports["default"] = LayerConfigGroup;
(0, _defineProperty2["default"])(LayerConfigGroup, "defaultProps", {
collapsible: false,
expanded: false,
onChange: function onChange() {}
});
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3NpZGUtcGFuZWwvbGF5ZXItcGFuZWwvbGF5ZXItY29uZmlnLWdyb3VwLmpzIl0sIm5hbWVzIjpbIlN0eWxlZExheWVyQ29uZmlnR3JvdXBMYWJlbCIsInN0eWxlZCIsImRpdiIsInByb3BzIiwidGhlbWUiLCJsYWJlbENvbG9yIiwidGV4dENvbG9yIiwiU3R5bGVkTGF5ZXJDb25maWdHcm91cEFjdGlvbiIsIkNvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50IiwiYXR0cnMiLCJjbGFzc05hbWUiLCJTdHlsZWRMYXllckNvbmZpZ0dyb3VwIiwiU3R5bGVkQ29uZmlnR3JvdXBIZWFkZXIiLCJ0ZXh0Q29sb3JIbCIsIkNvbmZpZ0dyb3VwQ29udGVudCIsIkxheWVyQ29uZmlnR3JvdXAiLCJjb2xsYXBzZWQiLCJfc2V0Q29sbGFwc2VTdGF0ZSIsImV4cGFuZGVkIiwibmV4dFByb3BzIiwic3RhdGUiLCJzZXRTdGF0ZSIsImxhYmVsIiwiY2hpbGRyZW4iLCJwcm9wZXJ0eSIsImxheWVyIiwib25DaGFuZ2UiLCJjb2xsYXBzaWJsZSIsImNvbmZpZyIsInZpc0NvbmZpZyIsImlkIiwiZGlzYWJsZWQiLCJDb21wb25lbnQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQW9CQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFTyxJQUFNQSwyQkFBMkIsR0FBR0MsNkJBQU9DLEdBQVYsb0JBQ2IsVUFBQUMsS0FBSztBQUFBLFNBQUlBLEtBQUssQ0FBQ0MsS0FBTixDQUFZQyxVQUFoQjtBQUFBLENBRFEsRUFFN0IsVUFBQUYsS0FBSztBQUFBLFNBQUlBLEtBQUssQ0FBQ0MsS0FBTixDQUFZRSxTQUFoQjtBQUFBLENBRndCLENBQWpDOzs7O0FBWUEsSUFBTUMsNEJBQTRCLEdBQUdO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LEVBQUM7QUFBdEIsUUFBSCxHQUFvQyxJQVZsRCxDQU5GLENBREYsRUFvQkUsZ0NBQUMsa0JBQUQ7QUFDRSxRQUFBLFNBQVMsRUFBRSw0QkFBVyw2QkFBWCxFQUEwQztBQUNuREksVUFBQUEsUUFBUSxFQUFFUCxRQUFRLElBQUksQ0FBQ0MsS0FBSyxDQUFDRyxNQUFOLENBQWFDLFNBQWIsQ0FBdUJMLFFBQXZCO0FBRDRCLFNBQTFDO0FBRGIsU0FLR0QsUUFMSCxDQXBCRixDQURGO0FBOEJEOzs7RUFyRTJDUyxnQjs7O2lDQUF6QmpCLGdCLGtCQUVHO0FBQ3BCWSxFQUFBQSxXQUFXLEVBQUUsS0FETztBQUVwQlQsRUFBQUEsUUFBUSxFQUFFLEtBRlU7QUFHcEJRLEVBQUFBLFFBQVEsRUFBRSxvQkFBTSxDQUFFO0FBSEUsQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgMjAxOSBVYmVyIFRlY2hub2xvZ2llcywgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG5cbmltcG9ydCBSZWFjdCwge0NvbXBvbmVudH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQgY2xhc3NuYW1lcyBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCBTd2l0Y2ggZnJvbSAnY29tcG9uZW50cy9jb21tb24vc3dpdGNoJztcbmltcG9ydCB7VmVydFRocmVlRG90c30gZnJvbSAnY29tcG9uZW50cy9jb21tb24vaWNvbnMnO1xuXG5leHBvcnQgY29uc3QgU3R5bGVkTGF5ZXJDb25maWdHcm91cExhYmVsID0gc3R5bGVkLmRpdmBcbiAgYm9yZGVyLWxlZnQ6IDJweCBzb2xpZCAke3Byb3BzID0+IHByb3BzLnRoZW1lLmxhYmVsQ29sb3J9O1xuICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS50ZXh0Q29sb3J9O1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGxpbmUtaGVpZ2h0OiAxMnB4O1xuICBtYXJnaW4tbGVmdDogLTEycHg7XG4gIHBhZGRpbmctbGVmdDogMTBweDtcbiAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XG4gIGxldHRlci1zcGFjaW5nOiAwLjJweDtcbmA7XG5cbmV4cG9ydCBjb25zdCBTdHlsZWRMYXllckNvbmZpZ0dyb3VwQWN0aW9uID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUudGV4dENvbG9yfTtcbmA7XG5cbmV4cG9ydCBjb25zdCBDb25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudCA9IHN0eWxlZC5kaXYuYXR0cnMoe1xuICBjbGFzc05hbWU6ICdsYXllci1jb25maWctZ3JvdXBfX2NvbnRlbnRfX2NvbGxhcHNpYmxlJ1xufSlgXG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICB0cmFuc2l0aW9uOiBtYXgtaGVpZ2h0IDAuM3MgZWFzZS1vdXQ7XG4gIGhlaWdodDogbWF4LWNvbnRlbnQ7XG4gIG1heC1oZWlnaHQ6IDYwMHB4O1xuYDtcblxuZXhwb3J0IGNvbnN0IFN0eWxlZExheWVyQ29uZmlnR3JvdXAgPSBzdHlsZWQuZGl2YFxuICBwYWRkaW5nLWxlZnQ6IDE4cHg7XG4gIG1hcmdpbi1ib3R0b206IDEycHg7XG5cbiAgJi5jb2xsYXBzZWQge1xuICAgIC5sYXllci1jb25maWctZ3JvdXBfX2NvbnRlbnQge1xuXG4gICAgICAubGF5ZXItY29uZmlnLWdyb3VwX19jb250ZW50X19jb2xsYXBzaWJsZSB7XG4gICAgICAgIC8qIGRpc3BsYXk6IG5vbmU7ICovXG4gICAgICAgIC8qIGZsZXg6IDA7ICovXG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5gO1xuXG5leHBvcnQgY29uc3QgU3R5bGVkQ29uZmlnR3JvdXBIZWFkZXIgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIG1hcmdpbi1ib3R0b206IDEycHg7XG5cbiAgOmhvdmVyIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgLmxheWVyLWNvbmZpZy1ncm91cF9fbGFiZWwge1xuICAgICAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUudGV4dENvbG9ySGx9O1xuICAgICAgYm9yZGVyLWxlZnQ6IDJweCBzb2xpZCAke3Byb3BzID0+IHByb3BzLnRoZW1lLnRleHRDb2xvckhsfTtcbiAgICB9XG5cbiAgICAubGF5ZXItY29uZmlnLWdyb3VwX19hY3Rpb24ge1xuICAgICAgY29sb3I6ICAke3Byb3BzID0+IHByb3BzLnRoZW1lLnRleHRDb2xvckhsfTtcbiAgICB9XG4gIH1cbmA7XG5cbmNvbnN0IENvbmZpZ0dyb3VwQ29udGVudCA9IHN0eWxlZC5kaXZgXG4gICYuZGlzYWJsZWQge1xuICAgIG9wYWNpdHk6IDAuMztcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAqIHtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIH1cbiAgfVxuYDtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTGF5ZXJDb25maWdHcm91cCBleHRlbmRzIENvbXBvbmVudCB7XG5cbiAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IHtcbiAgICBjb2xsYXBzaWJsZTogZmFsc2UsXG4gICAgZXhwYW5kZWQ6IGZhbHNlLFxuICAgIG9uQ2hhbmdlOiAoKSA9PiB7fVxuICB9O1xuXG4gIHN0YXRlID0ge1xuICAgIGNvbGxhcHNlZDogdHJ1ZVxuICB9O1xuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIHRoaXMuX3NldENvbGxhcHNlU3RhdGUodGhpcy5wcm9wcy5leHBhbmRlZCk7XG4gIH1cblxuICBjb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKG5leHRQcm9wcykge1xuICAgIHRoaXMuX3NldENvbGxhcHNlU3RhdGUobmV4dFByb3BzLmV4cGFuZGVkKTtcbiAgfVxuXG4gIF9zZXRDb2xsYXBzZVN0YXRlKGV4cGFuZGVkKSB7XG4gICAgLy8gaWYgcHJvcHMsZXhwYW5kZWQsIGFuZCBzdGF0ZSBjb2xsYXBzZWQsIHNldCBjb2xsYXBzZWQgdG8gYmUgZmFsc2VcbiAgICBpZiAoZXhwYW5kZWQgJiYgdGhpcy5zdGF0ZS5jb2xsYXBzZWQpIHtcbiAgICAgIHRoaXMuc2V0U3RhdGUoe2NvbGxhcHNlZDogZmFsc2V9KTtcbiAgICB9XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgbGFiZWwsXG4gICAgICBjaGlsZHJlbixcbiAgICAgIHByb3BlcnR5LFxuICAgICAgbGF5ZXIsXG4gICAgICBvbkNoYW5nZSxcbiAgICAgIGNvbGxhcHNpYmxlXG4gICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCB7Y29sbGFwc2VkfSA9IHRoaXMuc3RhdGU7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPFN0eWxlZExheWVyQ29uZmlnR3JvdXAgY2xhc3NOYW1lPXtjbGFzc25hbWVzKCdsYXllci1jb25maWctZ3JvdXAnLCB7Y29sbGFwc2VkfSl9PlxuICAgICAgICA8U3R5bGVkQ29uZmlnR3JvdXBIZWFkZXIgY2xhc3NOYW1lPVwibGF5ZXItY29uZmlnLWdyb3VwX19oZWFkZXJcIlxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHRoaXMuc2V0U3RhdGUoe2NvbGxhcHNlZDogIXRoaXMuc3RhdGUuY29sbGFwc2VkfSl9XG4gICAgICAgID5cbiAgICAgICAgICA8U3R5bGVkTGF5ZXJDb25maWdHcm91cExhYmVsIGNsYXNzTmFtZT1cImxheWVyLWNvbmZpZy1ncm91cF9fbGFiZWxcIj5cbiAgICAgICAgICAgIHtsYWJlbH1cbiAgICAgICAgICA8L1N0eWxlZExheWVyQ29uZmlnR3JvdXBMYWJlbD5cbiAgICAgICAgICA8U3R5bGVkTGF5ZXJDb25maWdHcm91cEFjdGlvbiBjbGFzc05hbWU9XCJsYXllci1jb25maWctZ3JvdXBfX2FjdGlvblwiPlxuICAgICAgICAgICAge3Byb3BlcnR5ID8gKFxuICAgICAgICAgICAgICA8U3dpdGNoXG4gICAgICAgICAgICAgICAgY2hlY2tlZD17bGF5ZXIuY29uZmlnLnZpc0NvbmZpZ1twcm9wZXJ0eV19XG4gICAgICAgICAgICAgICAgaWQ9e2Ake2xheWVyLmlkfS0ke3Byb3BlcnR5fWB9XG4gICAgICAgICAgICAgICAgb25DaGFuZ2U9eygpID0+XG4gICAgICAgICAgICAgICAgICBvbkNoYW5nZSh7W3Byb3BlcnR5XTogIWxheWVyLmNvbmZpZy52aXNDb25maWdbcHJvcGVydHldfSlcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIHtjb2xsYXBzaWJsZSA/IDxWZXJ0VGhyZWVEb3RzIGhlaWdodD1cIjE4cHhcIi8+IDogbnVsbH1cbiAgICAgICAgICA8L1N0eWxlZExheWVyQ29uZmlnR3JvdXBBY3Rpb24+XG4gICAgICAgIDwvU3R5bGVkQ29uZmlnR3JvdXBIZWFkZXI+XG4gICAgICAgIDxDb25maWdHcm91cENvbnRlbnRcbiAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzbmFtZXMoJ2xheWVyLWNvbmZpZy1ncm91cF9fY29udGVudCcsIHtcbiAgICAgICAgICAgIGRpc2FibGVkOiBwcm9wZXJ0eSAmJiAhbGF5ZXIuY29uZmlnLnZpc0NvbmZpZ1twcm9wZXJ0eV1cbiAgICAgICAgICB9KX1cbiAgICAgICAgPlxuICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgPC9Db25maWdHcm91cENvbnRlbnQ+XG4gICAgICA8L1N0eWxlZExheWVyQ29uZmlnR3JvdXA+XG4gICAgKTtcbiAgfVxufVxuXG4iXX0=