UNPKG

kepler.gl.geoiq

Version:

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

141 lines (118 loc) 19 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 _widgetItemSelector = _interopRequireDefault(require("../../common/item-selector/widget-item-selector")); var _defaultSettings = require("../../../constants/default-settings"); var _styledComponents2 = require("../../common/styled-components"); var _templateObject, _templateObject2, _templateObject3, _templateObject4; var ITEM_SIZE = { large: 60, small: 28 }; var StyledDropdownListItem = _styledComponents["default"].div(_templateObject || (_templateObject = (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"])), function (props) { return props.theme.activeColor; }, function (props) { return props.theme.textColor; }); var StyledListItem = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (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"])), 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 || (_templateObject3 = (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"])), 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 widgetTypeSelector', value, isTile); return (/*#__PURE__*/_react["default"].createElement(StyledListItem, { className: (0, _classnames["default"])('layer-type-selector__item__inner', { list: !isTile }) }, /*#__PURE__*/_react["default"].createElement("div", { className: "layer-type-selector__item__icon" }, /*#__PURE__*/_react["default"].createElement(value.icon, { height: "".concat(isTile ? ITEM_SIZE.large : ITEM_SIZE.small, "px") })), /*#__PURE__*/_react["default"].createElement("div", { className: "layer-type-selector__item__label" }, value.label)) ); }; var LayerTypeDropdownList = function LayerTypeDropdownList(props) { return (/*#__PURE__*/_react["default"].createElement(DropdownListWrapper, { className: _dropdownList.classList.list }, props.options.map(function (value, i) { return (/*#__PURE__*/_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); } }, /*#__PURE__*/_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 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n // override item-selector dropdown padding\n .item-selector .item-selector__dropdown {\n padding: 4px 10px 4px 2px;\n }\n"]))); var LayerTypeSelector = function LayerTypeSelector(_ref2) { var layer = _ref2.layer, widgetTypeOptions = _ref2.widgetTypeOptions, onSelect = _ref2.onSelect; return (/*#__PURE__*/_react["default"].createElement(_styledComponents2.SidePanelSection, null, /*#__PURE__*/_react["default"].createElement(StyledLayerTypeSelector, { className: "layer-config__type" }, /*#__PURE__*/_react["default"].createElement(_widgetItemSelector["default"], { selectedItems: widgetTypeOptions.find(function (op) { return op.id === layer.type; }), options: widgetTypeOptions, 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 = exports["default"] = LayerTypeSelector; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3NpZGUtcGFuZWwvd2lkZ2V0LXBhbmVsL2xheWVyLXR5cGUtc2VsZWN0b3IuanMiXSwibmFtZXMiOlsiSVRFTV9TSVpFIiwibGFyZ2UiLCJzbWFsbCIsIlN0eWxlZERyb3Bkb3duTGlzdEl0ZW0iLCJzdHlsZWQiLCJkaXYiLCJwcm9wcyIsInRoZW1lIiwiYWN0aXZlQ29sb3IiLCJ0ZXh0Q29sb3IiLCJTdHlsZWRMaXN0SXRlbSIsImxhYmVsQ29sb3IiLCJDTE9VREZST05UIiwiRHJvcGRvd25MaXN0V3JhcHBlciIsImRyb3Bkb3duTGlzdCIsImRyb3Bkb3duTGlzdEJnZCIsImRyb3Bkb3duTGlzdEJvcmRlclRvcCIsIkxheWVyVHlwZUxpc3RJdGVtIiwidmFsdWUiLCJpc1RpbGUiLCJsaXN0IiwibGFiZWwiLCJMYXllclR5cGVEcm9wZG93bkxpc3QiLCJjbGFzc0xpc3QiLCJvcHRpb25zIiwibWFwIiwiaSIsInNlbGVjdGVkIiwic2VsZWN0ZWRJdGVtcyIsImZpbmQiLCJpdCIsImlkIiwiaG92ZXIiLCJzZWxlY3Rpb25JbmRleCIsImUiLCJwcmV2ZW50RGVmYXVsdCIsIm9uT3B0aW9uU2VsZWN0ZWQiLCJwcm9wVHlwZXMiLCJsYXllciIsIlByb3BUeXBlcyIsIm9iamVjdCIsImlzUmVxdWlyZWQiLCJvblNlbGVjdCIsImZ1bmMiLCJTdHlsZWRMYXllclR5cGVTZWxlY3RvciIsIkxheWVyVHlwZVNlbGVjdG9yIiwid2lkZ2V0VHlwZU9wdGlvbnMiLCJvcCIsInR5cGUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBb0JBOztBQUNBOztBQUNBOztBQUNBOztBQUVBOztBQUNBOztBQUNBOztBQUVBOzs7O0FBRUEsSUFBTUEsU0FBUyxHQUFHO0FBQ2hCQyxFQUFBQSxLQUFLLEVBQUUsRUFEUztBQUVoQkMsRUFBQUEsS0FBSyxFQUFFO0FBRlMsQ0FBbEI7O0FBS0EsSUFBTUMsc0JBQXNCLEdBQUdDLDZCQUFPQyxH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RUFBRTtBQUFBLGVBQUlBLEVBQUUsQ0FBQ2hCLEVBQVA7QUFBQSxPQU5wQjtBQU9FLE1BQUEsWUFBWSxFQUFDLE9BUGY7QUFRRSxNQUFBLGFBQWEsRUFBRSx1QkFBQWdCLEVBQUU7QUFBQSxlQUFJQSxFQUFFLENBQUMxQixLQUFQO0FBQUEsT0FSbkI7QUFTRSxNQUFBLCtCQUErQixFQUFFSixpQkFUbkM7QUFVRSxNQUFBLHVCQUF1QixFQUFFSztBQVYzQixNQURGLENBREY7QUFEd0I7QUFBQSxDQUExQjs7QUFtQkF1QixpQkFBaUIsQ0FBQ1IsU0FBbEIsR0FBOEJBLFNBQTlCOztvQ0FFZVEsaUIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIDIwMjMgVWJlciBUZWNobm9sb2dpZXMsIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuXG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBjbGFzc05hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5cbmltcG9ydCB7Y2xhc3NMaXN0fSBmcm9tICdjb21wb25lbnRzL2NvbW1vbi9pdGVtLXNlbGVjdG9yL2Ryb3Bkb3duLWxpc3QnO1xuaW1wb3J0IEl0ZW1TZWxlY3RvciBmcm9tICdjb21wb25lbnRzL2NvbW1vbi9pdGVtLXNlbGVjdG9yL3dpZGdldC1pdGVtLXNlbGVjdG9yJztcbmltcG9ydCB7Q0xPVURGUk9OVH0gZnJvbSAnY29uc3RhbnRzL2RlZmF1bHQtc2V0dGluZ3MnO1xuXG5pbXBvcnQge1NpZGVQYW5lbFNlY3Rpb259IGZyb20gJ2NvbXBvbmVudHMvY29tbW9uL3N0eWxlZC1jb21wb25lbnRzJztcblxuY29uc3QgSVRFTV9TSVpFID0ge1xuICBsYXJnZTogNjAsXG4gIHNtYWxsOiAyOFxufTtcblxuY29uc3QgU3R5bGVkRHJvcGRvd25MaXN0SXRlbSA9IHN0eWxlZC5kaXZgXG4gIHBhZGRpbmctYm90dG9tOiAxMnB4O1xuICBwYWRkaW5nLXJpZ2h0OiAxMnB4O1xuXG4gICYuc2VsZWN0ZWQge1xuICAgIC5sYXllci10eXBlLXNlbGVjdG9yX19pdGVtX19pY29uIHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNjYWYyZjQ7XG4gICAgfVxuICB9XG5cbiAgOmhvdmVyLFxuICAmLnNlbGVjdGVkIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgLmxheWVyLXR5cGUtc2VsZWN0b3JfX2l0ZW1fX2ljb24ge1xuICAgICAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuYWN0aXZlQ29sb3J9O1xuICAgIH1cblxuICAgIC5sYXllci10eXBlLXNlbGVjdG9yX19pdGVtX19sYWJlbCB7XG4gICAgICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS50ZXh0Q29sb3J9O1xuICAgIH1cbiAgfVxuYDtcblxuY29uc3QgU3R5bGVkTGlzdEl0ZW0gPSBzdHlsZWQuZGl2YFxuICAmLmxpc3Qge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgIC5sYXllci10eXBlLXNlbGVjdG9yX19pdGVtX19pY29uIHtcbiAgICAgIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmFjdGl2ZUNvbG9yfTtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogJHtJVEVNX1NJWkUuc21hbGx9cHggJHtJVEVNX1NJWkUuc21hbGx9cHg7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gICAgfVxuICB9XG5cbiAgLmxheWVyLXR5cGUtc2VsZWN0b3JfX2l0ZW1fX2ljb24ge1xuICAgIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmxhYmVsQ29sb3J9O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCR7YCR7Q0xPVURGUk9OVH0va2VwbGVyLmdsLWxheWVyLWljb24tYmcucG5nYH0pO1xuICAgIGJhY2tncm91bmQtc2l6ZTogJHtJVEVNX1NJWkUubGFyZ2V9cHggJHtJVEVNX1NJWkUubGFyZ2V9cHg7XG4gIH1cblxuICAubGF5ZXItdHlwZS1zZWxlY3Rvcl9faXRlbV9fbGFiZWwge1xuICAgIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUubGFiZWxDb2xvcn07XG4gIH1cbmA7XG5cbmNvbnN0IERyb3Bkb3duTGlzdFdyYXBwZXIgPSBzdHlsZWQuZGl2YFxuICAke3Byb3BzID0+IHByb3BzLnRoZW1lLmRyb3Bkb3duTGlzdH07XG4gIGJhY2tncm91bmQtY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuZHJvcGRvd25MaXN0QmdkfTtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuZHJvcGRvd25MaXN0Qm9yZGVyVG9wfTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgcGFkZGluZzogMTJweCAwIDAgMTJweDtcbmA7XG5cbmNvbnN0IExheWVyVHlwZUxpc3RJdGVtID0gKHt2YWx1ZSwgaXNUaWxlfSkgPT4ge1xuICAvLyBjb25zb2xlLmxvZygnaW5zaWRlIHdpZGdldFR5cGVTZWxlY3RvcicsIHZhbHVlLCBpc1RpbGUpO1xuICByZXR1cm4gKFxuICAgIDxTdHlsZWRMaXN0SXRlbVxuICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWVzKCdsYXllci10eXBlLXNlbGVjdG9yX19pdGVtX19pbm5lcicsIHtcbiAgICAgICAgbGlzdDogIWlzVGlsZVxuICAgICAgfSl9XG4gICAgPlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJsYXllci10eXBlLXNlbGVjdG9yX19pdGVtX19pY29uXCI+XG4gICAgICAgIDx2YWx1ZS5pY29uXG4gICAgICAgICAgaGVpZ2h0PXtgJHtpc1RpbGUgPyBJVEVNX1NJWkUubGFyZ2UgOiBJVEVNX1NJWkUuc21hbGx9cHhgfVxuICAgICAgICAvPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImxheWVyLXR5cGUtc2VsZWN0b3JfX2l0ZW1fX2xhYmVsXCI+e3ZhbHVlLmxhYmVsfTwvZGl2PlxuICAgIDwvU3R5bGVkTGlzdEl0ZW0+XG4gICk7XG59O1xuXG5jb25zdCBMYXllclR5cGVEcm9wZG93bkxpc3QgPSBwcm9wcyA9PiAoXG4gIDxEcm9wZG93bkxpc3RXcmFwcGVyIGNsYXNzTmFtZT17Y2xhc3NMaXN0Lmxpc3R9PlxuICAgIHtwcm9wcy5vcHRpb25zLm1hcCgodmFsdWUsIGkpID0+IChcbiAgICAgIDxTdHlsZWREcm9wZG93bkxpc3RJdGVtXG4gICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lcygnbGF5ZXItdHlwZS1zZWxlY3Rvcl9faXRlbScsIHtcbiAgICAgICAgICBzZWxlY3RlZDogcHJvcHMuc2VsZWN0ZWRJdGVtcy5maW5kKGl0ID0+IGl0LmlkID09PSB2YWx1ZS5pZCksXG4gICAgICAgICAgaG92ZXI6IHByb3BzLnNlbGVjdGlvbkluZGV4ID09PSBpXG4gICAgICAgIH0pfVxuICAgICAgICBrZXk9e2Ake3ZhbHVlLmlkfV8ke2l9YH1cbiAgICAgICAgb25Nb3VzZURvd249e2UgPT4ge1xuICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICBwcm9wcy5vbk9wdGlvblNlbGVjdGVkKHZhbHVlLCBlKTtcbiAgICAgICAgfX1cbiAgICAgICAgb25DbGljaz17ZSA9PiB7XG4gICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgIHByb3BzLm9uT3B0aW9uU2VsZWN0ZWQodmFsdWUsIGUpO1xuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICA8cHJvcHMuY3VzdG9tTGlzdEl0ZW1Db21wb25lbnQgdmFsdWU9e3ZhbHVlfSBpc1RpbGUgLz5cbiAgICAgIDwvU3R5bGVkRHJvcGRvd25MaXN0SXRlbT5cbiAgICApKX1cbiAgPC9Ecm9wZG93bkxpc3RXcmFwcGVyPlxuKTtcblxuY29uc3QgcHJvcFR5cGVzID0ge1xuICBsYXllcjogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICBvblNlbGVjdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZFxufTtcblxuY29uc3QgU3R5bGVkTGF5ZXJUeXBlU2VsZWN0b3IgPSBzdHlsZWQuZGl2YFxuICAvLyBvdmVycmlkZSBpdGVtLXNlbGVjdG9yIGRyb3Bkb3duIHBhZGRpbmdcbiAgLml0ZW0tc2VsZWN0b3IgLml0ZW0tc2VsZWN0b3JfX2Ryb3Bkb3duIHtcbiAgICBwYWRkaW5nOiA0cHggMTBweCA0cHggMnB4O1xuICB9XG5gO1xuY29uc3QgTGF5ZXJUeXBlU2VsZWN0b3IgPSAoe2xheWVyLCB3aWRnZXRUeXBlT3B0aW9ucywgb25TZWxlY3R9KSA9PiAoXG4gIDxTaWRlUGFuZWxTZWN0aW9uPlxuICAgIDxTdHlsZWRMYXllclR5cGVTZWxlY3RvciBjbGFzc05hbWU9XCJsYXllci1jb25maWdfX3R5cGVcIj5cbiAgICAgIDxJdGVtU2VsZWN0b3JcbiAgICAgICAgc2VsZWN0ZWRJdGVtcz17d2lkZ2V0VHlwZU9wdGlvbnMuZmluZChvcCA9PiBvcC5pZCA9PT0gbGF5ZXIudHlwZSl9XG4gICAgICAgIG9wdGlvbnM9e3dpZGdldFR5cGVPcHRpb25zfVxuICAgICAgICBtdWx0aVNlbGVjdD17ZmFsc2V9XG4gICAgICAgIHBsYWNlaG9sZGVyPVwiU2VsZWN0IEEgVHlwZVwiXG4gICAgICAgIG9uQ2hhbmdlPXtvblNlbGVjdH1cbiAgICAgICAgZ2V0T3B0aW9uVmFsdWU9e29wID0+IG9wLmlkfVxuICAgICAgICBmaWx0ZXJPcHRpb249XCJsYWJlbFwiXG4gICAgICAgIGRpc3BsYXlPcHRpb249e29wID0+IG9wLmxhYmVsfVxuICAgICAgICBEcm9wRG93bkxpbmVJdGVtUmVuZGVyQ29tcG9uZW50PXtMYXllclR5cGVMaXN0SXRlbX1cbiAgICAgICAgRHJvcERvd25SZW5kZXJDb21wb25lbnQ9e0xheWVyVHlwZURyb3Bkb3duTGlzdH1cbiAgICAgIC8+XG4gICAgPC9TdHlsZWRMYXllclR5cGVTZWxlY3Rvcj5cbiAgPC9TaWRlUGFuZWxTZWN0aW9uPlxuKTtcblxuTGF5ZXJUeXBlU2VsZWN0b3IucHJvcFR5cGVzID0gcHJvcFR5cGVzO1xuXG5leHBvcnQgZGVmYXVsdCBMYXllclR5cGVTZWxlY3RvcjtcbiJdfQ==