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
JavaScript
;
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 widgetTypeSelector', 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,
widgetTypeOptions = _ref2.widgetTypeOptions,
onSelect = _ref2.onSelect;
return _react["default"].createElement(_styledComponents2.SidePanelSection, null, _react["default"].createElement(StyledLayerTypeSelector, {
className: "layer-config__type"
}, _react["default"].createElement(_itemSelector["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 = LayerTypeSelector;
exports["default"] = _default;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3NpZGUtcGFuZWwvd2lkZ2V0LXBhbmVsL2xheWVyLXR5cGUtc2VsZWN0b3IuanMiXSwibmFtZXMiOlsiSVRFTV9TSVpFIiwibGFyZ2UiLCJzbWFsbCIsIlN0eWxlZERyb3Bkb3duTGlzdEl0ZW0iLCJzdHlsZWQiLCJkaXYiLCJwcm9wcyIsInRoZW1lIiwiYWN0aXZlQ29sb3IiLCJ0ZXh0Q29sb3IiLCJTdHlsZWRMaXN0SXRlbSIsImxhYmVsQ29sb3IiLCJDTE9VREZST05UIiwiRHJvcGRvd25MaXN0V3JhcHBlciIsImRyb3Bkb3duTGlzdCIsImRyb3Bkb3duTGlzdEJnZCIsImRyb3Bkb3duTGlzdEJvcmRlclRvcCIsIkxheWVyVHlwZUxpc3RJdGVtIiwidmFsdWUiLCJpc1RpbGUiLCJsaXN0IiwibGFiZWwiLCJMYXllclR5cGVEcm9wZG93bkxpc3QiLCJjbGFzc0xpc3QiLCJvcHRpb25zIiwibWFwIiwiaSIsInNlbGVjdGVkIiwic2VsZWN0ZWRJdGVtcyIsImZpbmQiLCJpdCIsImlkIiwiaG92ZXIiLCJzZWxlY3Rpb25JbmRleCIsImUiLCJwcmV2ZW50RGVmYXVsdCIsIm9uT3B0aW9uU2VsZWN0ZWQiLCJwcm9wVHlwZXMiLCJsYXllciIsIlByb3BUeXBlcyIsIm9iamVjdCIsImlzUmVxdWlyZWQiLCJvblNlbGVjdCIsImZ1bmMiLCJTdHlsZWRMYXllclR5cGVTZWxlY3RvciIsIkxheWVyVHlwZVNlbGVjdG9yIiwid2lkZ2V0VHlwZU9wdGlvbnMiLCJvcCIsInR5cGUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBb0JBOztBQUNBOztBQUNBOztBQUNBOztBQUVBOztBQUNBOztBQUNBOztBQUVBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFQSxJQUFNQSxTQUFTLEdBQUc7QUFDaEJDLEVBQUFBLEtBQUssRUFBRSxFQURTO0FBRWhCQyxFQUFBQSxLQUFLLEVBQUU7QUFGUyxD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O0FBTUUsSUFBQSxjQUFjLEVBQUUsd0JBQUFLLEVBQUU7QUFBQSxhQUFJQSxFQUFFLENBQUNoQixFQUFQO0FBQUEsS0FOcEI7QUFPRSxJQUFBLFlBQVksRUFBQyxPQVBmO0FBUUUsSUFBQSxhQUFhLEVBQUUsdUJBQUFnQixFQUFFO0FBQUEsYUFBSUEsRUFBRSxDQUFDMUIsS0FBUDtBQUFBLEtBUm5CO0FBU0UsSUFBQSwrQkFBK0IsRUFBRUosaUJBVG5DO0FBVUUsSUFBQSx1QkFBdUIsRUFBRUs7QUFWM0IsSUFERixDQURGLENBRHdCO0FBQUEsQ0FBMUI7O0FBbUJBdUIsaUJBQWlCLENBQUNSLFNBQWxCLEdBQThCQSxTQUE5QjtlQUVlUSxpQiIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgMjAxOSBVYmVyIFRlY2hub2xvZ2llcywgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG5cbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IGNsYXNzTmFtZXMgZnJvbSAnY2xhc3NuYW1lcyc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcblxuaW1wb3J0IHtjbGFzc0xpc3R9IGZyb20gJ2NvbXBvbmVudHMvY29tbW9uL2l0ZW0tc2VsZWN0b3IvZHJvcGRvd24tbGlzdCc7XG5pbXBvcnQgSXRlbVNlbGVjdG9yIGZyb20gJ2NvbXBvbmVudHMvY29tbW9uL2l0ZW0tc2VsZWN0b3IvaXRlbS1zZWxlY3Rvcic7XG5pbXBvcnQge0NMT1VERlJPTlR9IGZyb20gJ2NvbnN0YW50cy9kZWZhdWx0LXNldHRpbmdzJztcblxuaW1wb3J0IHtTaWRlUGFuZWxTZWN0aW9ufSBmcm9tICdjb21wb25lbnRzL2NvbW1vbi9zdHlsZWQtY29tcG9uZW50cyc7XG5cbmNvbnN0IElURU1fU0laRSA9IHtcbiAgbGFyZ2U6IDYwLFxuICBzbWFsbDogMjhcbn07XG5cbmNvbnN0IFN0eWxlZERyb3Bkb3duTGlzdEl0ZW0gPSBzdHlsZWQuZGl2YFxuICBwYWRkaW5nLWJvdHRvbTogMTJweDtcbiAgcGFkZGluZy1yaWdodDogMTJweDtcblxuICAmLnNlbGVjdGVkIHtcbiAgICAubGF5ZXItdHlwZS1zZWxlY3Rvcl9faXRlbV9faWNvbiB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjY2FmMmY0O1xuICAgIH1cbiAgfVxuXG4gIDpob3ZlcixcbiAgJi5zZWxlY3RlZCB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIC5sYXllci10eXBlLXNlbGVjdG9yX19pdGVtX19pY29uIHtcbiAgICAgIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmFjdGl2ZUNvbG9yfTtcbiAgICB9XG5cbiAgICAubGF5ZXItdHlwZS1zZWxlY3Rvcl9faXRlbV9fbGFiZWwge1xuICAgICAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUudGV4dENvbG9yfTtcbiAgICB9XG4gIH1cbmA7XG5cbmNvbnN0IFN0eWxlZExpc3RJdGVtID0gc3R5bGVkLmRpdmBcbiAgJi5saXN0IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAubGF5ZXItdHlwZS1zZWxlY3Rvcl9faXRlbV9faWNvbiB7XG4gICAgICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5hY3RpdmVDb2xvcn07XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6ICR7SVRFTV9TSVpFLnNtYWxsfXB4ICR7SVRFTV9TSVpFLnNtYWxsfXB4O1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuICAgIH1cbiAgfVxuXG4gIC5sYXllci10eXBlLXNlbGVjdG9yX19pdGVtX19pY29uIHtcbiAgICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5sYWJlbENvbG9yfTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgke2Ake0NMT1VERlJPTlR9L2tlcGxlci5nbC1sYXllci1pY29uLWJnLnBuZ2B9KTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6ICR7SVRFTV9TSVpFLmxhcmdlfXB4ICR7SVRFTV9TSVpFLmxhcmdlfXB4O1xuICB9XG5cbiAgLmxheWVyLXR5cGUtc2VsZWN0b3JfX2l0ZW1fX2xhYmVsIHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmxhYmVsQ29sb3J9O1xuICB9XG5gO1xuXG5jb25zdCBEcm9wZG93bkxpc3RXcmFwcGVyID0gc3R5bGVkLmRpdmBcbiAgJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5kcm9wZG93bkxpc3R9O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmRyb3Bkb3duTGlzdEJnZH07XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAke3Byb3BzID0+IHByb3BzLnRoZW1lLmRyb3Bkb3duTGlzdEJvcmRlclRvcH07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIHBhZGRpbmc6IDEycHggMCAwIDEycHg7XG5gO1xuXG5jb25zdCBMYXllclR5cGVMaXN0SXRlbSA9ICh7dmFsdWUsIGlzVGlsZX0pID0+IHtcbiAgLy8gY29uc29sZS5sb2coJ2luc2lkZSB3aWRnZXRUeXBlU2VsZWN0b3InLCB2YWx1ZSwgaXNUaWxlKTtcbiAgcmV0dXJuIChcbiAgICA8U3R5bGVkTGlzdEl0ZW1cbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lcygnbGF5ZXItdHlwZS1zZWxlY3Rvcl9faXRlbV9faW5uZXInLCB7XG4gICAgICAgIGxpc3Q6ICFpc1RpbGVcbiAgICAgIH0pfVxuICAgID5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwibGF5ZXItdHlwZS1zZWxlY3Rvcl9faXRlbV9faWNvblwiPlxuICAgICAgICA8dmFsdWUuaWNvblxuICAgICAgICAgIGhlaWdodD17YCR7aXNUaWxlID8gSVRFTV9TSVpFLmxhcmdlIDogSVRFTV9TSVpFLnNtYWxsfXB4YH1cbiAgICAgICAgLz5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJsYXllci10eXBlLXNlbGVjdG9yX19pdGVtX19sYWJlbFwiPnt2YWx1ZS5sYWJlbH08L2Rpdj5cbiAgICA8L1N0eWxlZExpc3RJdGVtPlxuICApO1xufTtcblxuY29uc3QgTGF5ZXJUeXBlRHJvcGRvd25MaXN0ID0gcHJvcHMgPT4gKFxuICA8RHJvcGRvd25MaXN0V3JhcHBlciBjbGFzc05hbWU9e2NsYXNzTGlzdC5saXN0fT5cbiAgICB7cHJvcHMub3B0aW9ucy5tYXAoKHZhbHVlLCBpKSA9PiAoXG4gICAgICA8U3R5bGVkRHJvcGRvd25MaXN0SXRlbVxuICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZXMoJ2xheWVyLXR5cGUtc2VsZWN0b3JfX2l0ZW0nLCB7XG4gICAgICAgICAgc2VsZWN0ZWQ6IHByb3BzLnNlbGVjdGVkSXRlbXMuZmluZChpdCA9PiBpdC5pZCA9PT0gdmFsdWUuaWQpLFxuICAgICAgICAgIGhvdmVyOiBwcm9wcy5zZWxlY3Rpb25JbmRleCA9PT0gaVxuICAgICAgICB9KX1cbiAgICAgICAga2V5PXtgJHt2YWx1ZS5pZH1fJHtpfWB9XG4gICAgICAgIG9uTW91c2VEb3duPXtlID0+IHtcbiAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgcHJvcHMub25PcHRpb25TZWxlY3RlZCh2YWx1ZSwgZSk7XG4gICAgICAgIH19XG4gICAgICAgIG9uQ2xpY2s9e2UgPT4ge1xuICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICBwcm9wcy5vbk9wdGlvblNlbGVjdGVkKHZhbHVlLCBlKTtcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAgPHByb3BzLmN1c3RvbUxpc3RJdGVtQ29tcG9uZW50IHZhbHVlPXt2YWx1ZX0gaXNUaWxlIC8+XG4gICAgICA8L1N0eWxlZERyb3Bkb3duTGlzdEl0ZW0+XG4gICAgKSl9XG4gIDwvRHJvcGRvd25MaXN0V3JhcHBlcj5cbik7XG5cbmNvbnN0IHByb3BUeXBlcyA9IHtcbiAgbGF5ZXI6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgb25TZWxlY3Q6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWRcbn07XG5cbmNvbnN0IFN0eWxlZExheWVyVHlwZVNlbGVjdG9yID0gc3R5bGVkLmRpdmBcbiAgLy8gb3ZlcnJpZGUgaXRlbS1zZWxlY3RvciBkcm9wZG93biBwYWRkaW5nXG4gIC5pdGVtLXNlbGVjdG9yIC5pdGVtLXNlbGVjdG9yX19kcm9wZG93biB7XG4gICAgcGFkZGluZzogNHB4IDEwcHggNHB4IDJweDtcbiAgfVxuYDtcbmNvbnN0IExheWVyVHlwZVNlbGVjdG9yID0gKHtsYXllciwgd2lkZ2V0VHlwZU9wdGlvbnMsIG9uU2VsZWN0fSkgPT4gKFxuICA8U2lkZVBhbmVsU2VjdGlvbj5cbiAgICA8U3R5bGVkTGF5ZXJUeXBlU2VsZWN0b3IgY2xhc3NOYW1lPVwibGF5ZXItY29uZmlnX190eXBlXCI+XG4gICAgICA8SXRlbVNlbGVjdG9yXG4gICAgICAgIHNlbGVjdGVkSXRlbXM9e3dpZGdldFR5cGVPcHRpb25zLmZpbmQob3AgPT4gb3AuaWQgPT09IGxheWVyLnR5cGUpfVxuICAgICAgICBvcHRpb25zPXt3aWRnZXRUeXBlT3B0aW9uc31cbiAgICAgICAgbXVsdGlTZWxlY3Q9e2ZhbHNlfVxuICAgICAgICBwbGFjZWhvbGRlcj1cIlNlbGVjdCBBIFR5cGVcIlxuICAgICAgICBvbkNoYW5nZT17b25TZWxlY3R9XG4gICAgICAgIGdldE9wdGlvblZhbHVlPXtvcCA9PiBvcC5pZH1cbiAgICAgICAgZmlsdGVyT3B0aW9uPVwibGFiZWxcIlxuICAgICAgICBkaXNwbGF5T3B0aW9uPXtvcCA9PiBvcC5sYWJlbH1cbiAgICAgICAgRHJvcERvd25MaW5lSXRlbVJlbmRlckNvbXBvbmVudD17TGF5ZXJUeXBlTGlzdEl0ZW19XG4gICAgICAgIERyb3BEb3duUmVuZGVyQ29tcG9uZW50PXtMYXllclR5cGVEcm9wZG93bkxpc3R9XG4gICAgICAvPlxuICAgIDwvU3R5bGVkTGF5ZXJUeXBlU2VsZWN0b3I+XG4gIDwvU2lkZVBhbmVsU2VjdGlvbj5cbik7XG5cbkxheWVyVHlwZVNlbGVjdG9yLnByb3BUeXBlcyA9IHByb3BUeXBlcztcblxuZXhwb3J0IGRlZmF1bHQgTGF5ZXJUeXBlU2VsZWN0b3I7XG4iXX0=