UNPKG

kepler.gl.geoiq

Version:

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

175 lines (142 loc) 19.1 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 _dropdownList = require("../../common/item-selector/dropdown-list"); var _itemSelector = _interopRequireDefault(require("../../common/item-selector/item-selector")); var _defaultSettings = require("../../../constants/default-settings"); var _styledComponents2 = require("../../common/styled-components"); function _templateObject4() { var data = (0, _taggedTemplateLiteral2["default"])(["\n // override item-selector dropdown padding\n .item-selector .item-selector__dropdown {\n padding: 4px 10px 4px 2px;\n }\n"]); _templateObject4 = function _templateObject4() { return data; }; return data; } function _templateObject3() { var data = (0, _taggedTemplateLiteral2["default"])(["\n ", ";\n background-color: ", ";\n border-top: 1px solid ", ";\n display: flex;\n flex-wrap: wrap;\n align-items: flex-start;\n padding: 12px 0 0 12px;\n"]); _templateObject3 = function _templateObject3() { return data; }; return data; } function _templateObject2() { var data = (0, _taggedTemplateLiteral2["default"])(["\n &.list {\n display: flex;\n align-items: center;\n\n .layer-type-selector__item__icon {\n color: ", ";\n background-size: ", "px ", "px;\n margin-right: 12px;\n }\n }\n\n .layer-type-selector__item__icon {\n color: ", ";\n display: flex;\n background-image: url(", ");\n background-size: ", "px ", "px;\n }\n\n .layer-type-selector__item__label {\n text-transform: capitalize;\n font-size: 12px;\n text-align: center;\n color: ", ";\n }\n"]); _templateObject2 = function _templateObject2() { return data; }; return data; } function _templateObject() { var data = (0, _taggedTemplateLiteral2["default"])(["\n padding-bottom: 12px;\n padding-right: 12px;\n\n &.selected {\n .layer-type-selector__item__icon {\n border: 1px solid #caf2f4;\n }\n }\n\n :hover,\n &.selected {\n cursor: pointer;\n .layer-type-selector__item__icon {\n color: ", ";\n }\n\n .layer-type-selector__item__label {\n color: ", ";\n }\n }\n"]); _templateObject = function _templateObject() { return data; }; return data; } var ITEM_SIZE = { large: 60, small: 28 }; var StyledDropdownListItem = _styledComponents["default"].div(_templateObject(), function (props) { return props.theme.activeColor; }, function (props) { return props.theme.textColor; }); var StyledListItem = _styledComponents["default"].div(_templateObject2(), function (props) { return props.theme.activeColor; }, ITEM_SIZE.small, ITEM_SIZE.small, function (props) { return props.theme.labelColor; }, "".concat(_defaultSettings.CLOUDFRONT, "/kepler.gl-layer-icon-bg.png"), ITEM_SIZE.large, ITEM_SIZE.large, function (props) { return props.theme.labelColor; }); var DropdownListWrapper = _styledComponents["default"].div(_templateObject3(), function (props) { return props.theme.dropdownList; }, function (props) { return props.theme.dropdownListBgd; }, function (props) { return props.theme.dropdownListBorderTop; }); var LayerTypeListItem = function LayerTypeListItem(_ref) { var value = _ref.value, isTile = _ref.isTile; // console.log('inside LayerTypeListItem', value, isTile); return _react["default"].createElement(StyledListItem, { className: (0, _classnames["default"])('layer-type-selector__item__inner', { list: !isTile }) }, _react["default"].createElement("div", { className: "layer-type-selector__item__icon" }, _react["default"].createElement(value.icon, { height: "".concat(isTile ? ITEM_SIZE.large : ITEM_SIZE.small, "px") })), _react["default"].createElement("div", { className: "layer-type-selector__item__label" }, value.label)); }; var LayerTypeDropdownList = function LayerTypeDropdownList(props) { return _react["default"].createElement(DropdownListWrapper, { className: _dropdownList.classList.list }, props.options.map(function (value, i) { return _react["default"].createElement(StyledDropdownListItem, { className: (0, _classnames["default"])('layer-type-selector__item', { selected: props.selectedItems.find(function (it) { return it.id === value.id; }), hover: props.selectionIndex === i }), key: "".concat(value.id, "_").concat(i), onMouseDown: function onMouseDown(e) { e.preventDefault(); props.onOptionSelected(value, e); }, onClick: function onClick(e) { e.preventDefault(); props.onOptionSelected(value, e); } }, _react["default"].createElement(props.customListItemComponent, { value: value, isTile: true })); })); }; var propTypes = { layer: _propTypes["default"].object.isRequired, onSelect: _propTypes["default"].func.isRequired }; var StyledLayerTypeSelector = _styledComponents["default"].div(_templateObject4()); var LayerTypeSelector = function LayerTypeSelector(_ref2) { var layer = _ref2.layer, layerTypeOptions = _ref2.layerTypeOptions, onSelect = _ref2.onSelect; return _react["default"].createElement(_styledComponents2.SidePanelSection, null, _react["default"].createElement(StyledLayerTypeSelector, { className: "layer-config__type" }, _react["default"].createElement(_itemSelector["default"], { selectedItems: layerTypeOptions.find(function (op) { return op.id === layer.type; }), options: layerTypeOptions, multiSelect: false, placeholder: "Select A Type", onChange: onSelect, getOptionValue: function getOptionValue(op) { return op.id; }, filterOption: "label", displayOption: function displayOption(op) { return op.label; }, DropDownLineItemRenderComponent: LayerTypeListItem, DropDownRenderComponent: LayerTypeDropdownList }))); }; LayerTypeSelector.propTypes = propTypes; var _default = LayerTypeSelector; exports["default"] = _default; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3NpZGUtcGFuZWwvbGF5ZXItcGFuZWwvbGF5ZXItdHlwZS1zZWxlY3Rvci5qcyJdLCJuYW1lcyI6WyJJVEVNX1NJWkUiLCJsYXJnZSIsInNtYWxsIiwiU3R5bGVkRHJvcGRvd25MaXN0SXRlbSIsInN0eWxlZCIsImRpdiIsInByb3BzIiwidGhlbWUiLCJhY3RpdmVDb2xvciIsInRleHRDb2xvciIsIlN0eWxlZExpc3RJdGVtIiwibGFiZWxDb2xvciIsIkNMT1VERlJPTlQiLCJEcm9wZG93bkxpc3RXcmFwcGVyIiwiZHJvcGRvd25MaXN0IiwiZHJvcGRvd25MaXN0QmdkIiwiZHJvcGRvd25MaXN0Qm9yZGVyVG9wIiwiTGF5ZXJUeXBlTGlzdEl0ZW0iLCJ2YWx1ZSIsImlzVGlsZSIsImxpc3QiLCJsYWJlbCIsIkxheWVyVHlwZURyb3Bkb3duTGlzdCIsImNsYXNzTGlzdCIsIm9wdGlvbnMiLCJtYXAiLCJpIiwic2VsZWN0ZWQiLCJzZWxlY3RlZEl0ZW1zIiwiZmluZCIsIml0IiwiaWQiLCJob3ZlciIsInNlbGVjdGlvbkluZGV4IiwiZSIsInByZXZlbnREZWZhdWx0Iiwib25PcHRpb25TZWxlY3RlZCIsInByb3BUeXBlcyIsImxheWVyIiwiUHJvcFR5cGVzIiwib2JqZWN0IiwiaXNSZXF1aXJlZCIsIm9uU2VsZWN0IiwiZnVuYyIsIlN0eWxlZExheWVyVHlwZVNlbGVjdG9yIiwiTGF5ZXJUeXBlU2VsZWN0b3IiLCJsYXllclR5cGVPcHRpb25zIiwib3AiLCJ0eXBlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQW9CQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQTs7QUFDQTs7QUFDQTs7QUFFQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUEsSUFBTUEsU0FBUyxHQUFHO0FBQ2hCQyxFQUFBQSxLQUFLLEVBQUUsRUFEUztBQUVoQkMsRUFBQUEsS0FBSyxFQUFFO0FBRlMsQ0FB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QU1FLElBQUEsY0FBYyxFQUFFLHdCQUFBSyxFQUFFO0FBQUEsYUFBSUEsRUFBRSxDQUFDaEIsRUFBUDtBQUFBLEtBTnBCO0FBT0UsSUFBQSxZQUFZLEVBQUMsT0FQZjtBQVFFLElBQUEsYUFBYSxFQUFFLHVCQUFBZ0IsRUFBRTtBQUFBLGFBQUlBLEVBQUUsQ0FBQzFCLEtBQVA7QUFBQSxLQVJuQjtBQVNFLElBQUEsK0JBQStCLEVBQUVKLGlCQVRuQztBQVVFLElBQUEsdUJBQXVCLEVBQUVLO0FBVjNCLElBREYsQ0FERixDQUR3QjtBQUFBLENBQTFCOztBQW1CQXVCLGlCQUFpQixDQUFDUixTQUFsQixHQUE4QkEsU0FBOUI7ZUFFZVEsaUIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIDIwMTkgVWJlciBUZWNobm9sb2dpZXMsIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuXG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBjbGFzc05hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5cbmltcG9ydCB7Y2xhc3NMaXN0fSBmcm9tICdjb21wb25lbnRzL2NvbW1vbi9pdGVtLXNlbGVjdG9yL2Ryb3Bkb3duLWxpc3QnO1xuaW1wb3J0IEl0ZW1TZWxlY3RvciBmcm9tICdjb21wb25lbnRzL2NvbW1vbi9pdGVtLXNlbGVjdG9yL2l0ZW0tc2VsZWN0b3InO1xuaW1wb3J0IHtDTE9VREZST05UfSBmcm9tICdjb25zdGFudHMvZGVmYXVsdC1zZXR0aW5ncyc7XG5cbmltcG9ydCB7U2lkZVBhbmVsU2VjdGlvbn0gZnJvbSAnY29tcG9uZW50cy9jb21tb24vc3R5bGVkLWNvbXBvbmVudHMnO1xuXG5jb25zdCBJVEVNX1NJWkUgPSB7XG4gIGxhcmdlOiA2MCxcbiAgc21hbGw6IDI4XG59O1xuXG5jb25zdCBTdHlsZWREcm9wZG93bkxpc3RJdGVtID0gc3R5bGVkLmRpdmBcbiAgcGFkZGluZy1ib3R0b206IDEycHg7XG4gIHBhZGRpbmctcmlnaHQ6IDEycHg7XG5cbiAgJi5zZWxlY3RlZCB7XG4gICAgLmxheWVyLXR5cGUtc2VsZWN0b3JfX2l0ZW1fX2ljb24ge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2NhZjJmNDtcbiAgICB9XG4gIH1cblxuICA6aG92ZXIsXG4gICYuc2VsZWN0ZWQge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAubGF5ZXItdHlwZS1zZWxlY3Rvcl9faXRlbV9faWNvbiB7XG4gICAgICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5hY3RpdmVDb2xvcn07XG4gICAgfVxuXG4gICAgLmxheWVyLXR5cGUtc2VsZWN0b3JfX2l0ZW1fX2xhYmVsIHtcbiAgICAgIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnRleHRDb2xvcn07XG4gICAgfVxuICB9XG5gO1xuXG5jb25zdCBTdHlsZWRMaXN0SXRlbSA9IHN0eWxlZC5kaXZgXG4gICYubGlzdCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgLmxheWVyLXR5cGUtc2VsZWN0b3JfX2l0ZW1fX2ljb24ge1xuICAgICAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuYWN0aXZlQ29sb3J9O1xuICAgICAgYmFja2dyb3VuZC1zaXplOiAke0lURU1fU0laRS5zbWFsbH1weCAke0lURU1fU0laRS5zbWFsbH1weDtcbiAgICAgIG1hcmdpbi1yaWdodDogMTJweDtcbiAgICB9XG4gIH1cblxuICAubGF5ZXItdHlwZS1zZWxlY3Rvcl9faXRlbV9faWNvbiB7XG4gICAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUubGFiZWxDb2xvcn07XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJHtgJHtDTE9VREZST05UfS9rZXBsZXIuZ2wtbGF5ZXItaWNvbi1iZy5wbmdgfSk7XG4gICAgYmFja2dyb3VuZC1zaXplOiAke0lURU1fU0laRS5sYXJnZX1weCAke0lURU1fU0laRS5sYXJnZX1weDtcbiAgfVxuXG4gIC5sYXllci10eXBlLXNlbGVjdG9yX19pdGVtX19sYWJlbCB7XG4gICAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5sYWJlbENvbG9yfTtcbiAgfVxuYDtcblxuY29uc3QgRHJvcGRvd25MaXN0V3JhcHBlciA9IHN0eWxlZC5kaXZgXG4gICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuZHJvcGRvd25MaXN0fTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5kcm9wZG93bkxpc3RCZ2R9O1xuICBib3JkZXItdG9wOiAxcHggc29saWQgJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5kcm9wZG93bkxpc3RCb3JkZXJUb3B9O1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBwYWRkaW5nOiAxMnB4IDAgMCAxMnB4O1xuYDtcblxuY29uc3QgTGF5ZXJUeXBlTGlzdEl0ZW0gPSAoe3ZhbHVlLCBpc1RpbGV9KSA9PiB7XG4gIC8vIGNvbnNvbGUubG9nKCdpbnNpZGUgTGF5ZXJUeXBlTGlzdEl0ZW0nLCB2YWx1ZSwgaXNUaWxlKTtcbiAgcmV0dXJuIChcbiAgICA8U3R5bGVkTGlzdEl0ZW1cbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lcygnbGF5ZXItdHlwZS1zZWxlY3Rvcl9faXRlbV9faW5uZXInLCB7XG4gICAgICAgIGxpc3Q6ICFpc1RpbGVcbiAgICAgIH0pfVxuICAgID5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwibGF5ZXItdHlwZS1zZWxlY3Rvcl9faXRlbV9faWNvblwiPlxuICAgICAgICA8dmFsdWUuaWNvblxuICAgICAgICAgIGhlaWdodD17YCR7aXNUaWxlID8gSVRFTV9TSVpFLmxhcmdlIDogSVRFTV9TSVpFLnNtYWxsfXB4YH1cbiAgICAgICAgLz5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJsYXllci10eXBlLXNlbGVjdG9yX19pdGVtX19sYWJlbFwiPnt2YWx1ZS5sYWJlbH08L2Rpdj5cbiAgICA8L1N0eWxlZExpc3RJdGVtPlxuICApO1xufTtcblxuY29uc3QgTGF5ZXJUeXBlRHJvcGRvd25MaXN0ID0gcHJvcHMgPT4gKFxuICA8RHJvcGRvd25MaXN0V3JhcHBlciBjbGFzc05hbWU9e2NsYXNzTGlzdC5saXN0fT5cbiAgICB7cHJvcHMub3B0aW9ucy5tYXAoKHZhbHVlLCBpKSA9PiAoXG4gICAgICA8U3R5bGVkRHJvcGRvd25MaXN0SXRlbVxuICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZXMoJ2xheWVyLXR5cGUtc2VsZWN0b3JfX2l0ZW0nLCB7XG4gICAgICAgICAgc2VsZWN0ZWQ6IHByb3BzLnNlbGVjdGVkSXRlbXMuZmluZChpdCA9PiBpdC5pZCA9PT0gdmFsdWUuaWQpLFxuICAgICAgICAgIGhvdmVyOiBwcm9wcy5zZWxlY3Rpb25JbmRleCA9PT0gaVxuICAgICAgICB9KX1cbiAgICAgICAga2V5PXtgJHt2YWx1ZS5pZH1fJHtpfWB9XG4gICAgICAgIG9uTW91c2VEb3duPXtlID0+IHtcbiAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgcHJvcHMub25PcHRpb25TZWxlY3RlZCh2YWx1ZSwgZSk7XG4gICAgICAgIH19XG4gICAgICAgIG9uQ2xpY2s9e2UgPT4ge1xuICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICBwcm9wcy5vbk9wdGlvblNlbGVjdGVkKHZhbHVlLCBlKTtcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAgPHByb3BzLmN1c3RvbUxpc3RJdGVtQ29tcG9uZW50IHZhbHVlPXt2YWx1ZX0gaXNUaWxlIC8+XG4gICAgICA8L1N0eWxlZERyb3Bkb3duTGlzdEl0ZW0+XG4gICAgKSl9XG4gIDwvRHJvcGRvd25MaXN0V3JhcHBlcj5cbik7XG5cbmNvbnN0IHByb3BUeXBlcyA9IHtcbiAgbGF5ZXI6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgb25TZWxlY3Q6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWRcbn07XG5cbmNvbnN0IFN0eWxlZExheWVyVHlwZVNlbGVjdG9yID0gc3R5bGVkLmRpdmBcbiAgLy8gb3ZlcnJpZGUgaXRlbS1zZWxlY3RvciBkcm9wZG93biBwYWRkaW5nXG4gIC5pdGVtLXNlbGVjdG9yIC5pdGVtLXNlbGVjdG9yX19kcm9wZG93biB7XG4gICAgcGFkZGluZzogNHB4IDEwcHggNHB4IDJweDtcbiAgfVxuYDtcbmNvbnN0IExheWVyVHlwZVNlbGVjdG9yID0gKHtsYXllciwgbGF5ZXJUeXBlT3B0aW9ucywgb25TZWxlY3R9KSA9PiAoXG4gIDxTaWRlUGFuZWxTZWN0aW9uPlxuICAgIDxTdHlsZWRMYXllclR5cGVTZWxlY3RvciBjbGFzc05hbWU9XCJsYXllci1jb25maWdfX3R5cGVcIj5cbiAgICAgIDxJdGVtU2VsZWN0b3JcbiAgICAgICAgc2VsZWN0ZWRJdGVtcz17bGF5ZXJUeXBlT3B0aW9ucy5maW5kKG9wID0+IG9wLmlkID09PSBsYXllci50eXBlKX1cbiAgICAgICAgb3B0aW9ucz17bGF5ZXJUeXBlT3B0aW9uc31cbiAgICAgICAgbXVsdGlTZWxlY3Q9e2ZhbHNlfVxuICAgICAgICBwbGFjZWhvbGRlcj1cIlNlbGVjdCBBIFR5cGVcIlxuICAgICAgICBvbkNoYW5nZT17b25TZWxlY3R9XG4gICAgICAgIGdldE9wdGlvblZhbHVlPXtvcCA9PiBvcC5pZH1cbiAgICAgICAgZmlsdGVyT3B0aW9uPVwibGFiZWxcIlxuICAgICAgICBkaXNwbGF5T3B0aW9uPXtvcCA9PiBvcC5sYWJlbH1cbiAgICAgICAgRHJvcERvd25MaW5lSXRlbVJlbmRlckNvbXBvbmVudD17TGF5ZXJUeXBlTGlzdEl0ZW19XG4gICAgICAgIERyb3BEb3duUmVuZGVyQ29tcG9uZW50PXtMYXllclR5cGVEcm9wZG93bkxpc3R9XG4gICAgICAvPlxuICAgIDwvU3R5bGVkTGF5ZXJUeXBlU2VsZWN0b3I+XG4gIDwvU2lkZVBhbmVsU2VjdGlvbj5cbik7XG5cbkxheWVyVHlwZVNlbGVjdG9yLnByb3BUeXBlcyA9IHByb3BUeXBlcztcblxuZXhwb3J0IGRlZmF1bHQgTGF5ZXJUeXBlU2VsZWN0b3I7XG4iXX0=