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
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");
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 LayerTypeListItem', 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,
layerTypeOptions = _ref2.layerTypeOptions,
onSelect = _ref2.onSelect;
return (/*#__PURE__*/_react["default"].createElement(_styledComponents2.SidePanelSection, null, /*#__PURE__*/_react["default"].createElement(StyledLayerTypeSelector, {
className: "layer-config__type"
}, /*#__PURE__*/_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 = exports["default"] = LayerTypeSelector;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3NpZGUtcGFuZWwvbGF5ZXItcGFuZWwvbGF5ZXItdHlwZS1zZWxlY3Rvci5qcyJdLCJuYW1lcyI6WyJJVEVNX1NJWkUiLCJsYXJnZSIsInNtYWxsIiwiU3R5bGVkRHJvcGRvd25MaXN0SXRlbSIsInN0eWxlZCIsImRpdiIsInByb3BzIiwidGhlbWUiLCJhY3RpdmVDb2xvciIsInRleHRDb2xvciIsIlN0eWxlZExpc3RJdGVtIiwibGFiZWxDb2xvciIsIkNMT1VERlJPTlQiLCJEcm9wZG93bkxpc3RXcmFwcGVyIiwiZHJvcGRvd25MaXN0IiwiZHJvcGRvd25MaXN0QmdkIiwiZHJvcGRvd25MaXN0Qm9yZGVyVG9wIiwiTGF5ZXJUeXBlTGlzdEl0ZW0iLCJ2YWx1ZSIsImlzVGlsZSIsImxpc3QiLCJsYWJlbCIsIkxheWVyVHlwZURyb3Bkb3duTGlzdCIsImNsYXNzTGlzdCIsIm9wdGlvbnMiLCJtYXAiLCJpIiwic2VsZWN0ZWQiLCJzZWxlY3RlZEl0ZW1zIiwiZmluZCIsIml0IiwiaWQiLCJob3ZlciIsInNlbGVjdGlvbkluZGV4IiwiZSIsInByZXZlbnREZWZhdWx0Iiwib25PcHRpb25TZWxlY3RlZCIsInByb3BUeXBlcyIsImxheWVyIiwiUHJvcFR5cGVzIiwib2JqZWN0IiwiaXNSZXF1aXJlZCIsIm9uU2VsZWN0IiwiZnVuYyIsIlN0eWxlZExheWVyVHlwZVNlbGVjdG9yIiwiTGF5ZXJUeXBlU2VsZWN0b3IiLCJsYXllclR5cGVPcHRpb25zIiwib3AiLCJ0eXBlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQW9CQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQTs7QUFDQTs7QUFDQTs7QUFFQTs7OztBQUVBLElBQU1BLFNBQVMsR0FBRztBQUNoQkMsRUFBQUEsS0FBSyxFQUFFLEVBRFM7QUFFaEJDLEVBQUFBLEtBQUssRUFBRTtBQUZTLENBQWxCOztBQUtBLElBQU1DLHNCQUFzQixHQUFHQyw2QkFBT0MsR0FB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QUU7QUFBQSxlQUFJQSxFQUFFLENBQUNoQixFQUFQO0FBQUEsT0FOcEI7QUFPRSxNQUFBLFlBQVksRUFBQyxPQVBmO0FBUUUsTUFBQSxhQUFhLEVBQUUsdUJBQUFnQixFQUFFO0FBQUEsZUFBSUEsRUFBRSxDQUFDMUIsS0FBUDtBQUFBLE9BUm5CO0FBU0UsTUFBQSwrQkFBK0IsRUFBRUosaUJBVG5DO0FBVUUsTUFBQSx1QkFBdUIsRUFBRUs7QUFWM0IsTUFERixDQURGO0FBRHdCO0FBQUEsQ0FBMUI7O0FBbUJBdUIsaUJBQWlCLENBQUNSLFNBQWxCLEdBQThCQSxTQUE5Qjs7b0NBRWVRLGlCIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSAyMDIzIFViZXIgVGVjaG5vbG9naWVzLCBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgY2xhc3NOYW1lcyBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuXG5pbXBvcnQge2NsYXNzTGlzdH0gZnJvbSAnY29tcG9uZW50cy9jb21tb24vaXRlbS1zZWxlY3Rvci9kcm9wZG93bi1saXN0JztcbmltcG9ydCBJdGVtU2VsZWN0b3IgZnJvbSAnY29tcG9uZW50cy9jb21tb24vaXRlbS1zZWxlY3Rvci9pdGVtLXNlbGVjdG9yJztcbmltcG9ydCB7Q0xPVURGUk9OVH0gZnJvbSAnY29uc3RhbnRzL2RlZmF1bHQtc2V0dGluZ3MnO1xuXG5pbXBvcnQge1NpZGVQYW5lbFNlY3Rpb259IGZyb20gJ2NvbXBvbmVudHMvY29tbW9uL3N0eWxlZC1jb21wb25lbnRzJztcblxuY29uc3QgSVRFTV9TSVpFID0ge1xuICBsYXJnZTogNjAsXG4gIHNtYWxsOiAyOFxufTtcblxuY29uc3QgU3R5bGVkRHJvcGRvd25MaXN0SXRlbSA9IHN0eWxlZC5kaXZgXG4gIHBhZGRpbmctYm90dG9tOiAxMnB4O1xuICBwYWRkaW5nLXJpZ2h0OiAxMnB4O1xuXG4gICYuc2VsZWN0ZWQge1xuICAgIC5sYXllci10eXBlLXNlbGVjdG9yX19pdGVtX19pY29uIHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNjYWYyZjQ7XG4gICAgfVxuICB9XG5cbiAgOmhvdmVyLFxuICAmLnNlbGVjdGVkIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgLmxheWVyLXR5cGUtc2VsZWN0b3JfX2l0ZW1fX2ljb24ge1xuICAgICAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuYWN0aXZlQ29sb3J9O1xuICAgIH1cblxuICAgIC5sYXllci10eXBlLXNlbGVjdG9yX19pdGVtX19sYWJlbCB7XG4gICAgICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS50ZXh0Q29sb3J9O1xuICAgIH1cbiAgfVxuYDtcblxuY29uc3QgU3R5bGVkTGlzdEl0ZW0gPSBzdHlsZWQuZGl2YFxuICAmLmxpc3Qge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgIC5sYXllci10eXBlLXNlbGVjdG9yX19pdGVtX19pY29uIHtcbiAgICAgIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmFjdGl2ZUNvbG9yfTtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogJHtJVEVNX1NJWkUuc21hbGx9cHggJHtJVEVNX1NJWkUuc21hbGx9cHg7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gICAgfVxuICB9XG5cbiAgLmxheWVyLXR5cGUtc2VsZWN0b3JfX2l0ZW1fX2ljb24ge1xuICAgIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmxhYmVsQ29sb3J9O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCR7YCR7Q0xPVURGUk9OVH0va2VwbGVyLmdsLWxheWVyLWljb24tYmcucG5nYH0pO1xuICAgIGJhY2tncm91bmQtc2l6ZTogJHtJVEVNX1NJWkUubGFyZ2V9cHggJHtJVEVNX1NJWkUubGFyZ2V9cHg7XG4gIH1cblxuICAubGF5ZXItdHlwZS1zZWxlY3Rvcl9faXRlbV9fbGFiZWwge1xuICAgIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUubGFiZWxDb2xvcn07XG4gIH1cbmA7XG5cbmNvbnN0IERyb3Bkb3duTGlzdFdyYXBwZXIgPSBzdHlsZWQuZGl2YFxuICAke3Byb3BzID0+IHByb3BzLnRoZW1lLmRyb3Bkb3duTGlzdH07XG4gIGJhY2tncm91bmQtY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuZHJvcGRvd25MaXN0QmdkfTtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuZHJvcGRvd25MaXN0Qm9yZGVyVG9wfTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgcGFkZGluZzogMTJweCAwIDAgMTJweDtcbmA7XG5cbmNvbnN0IExheWVyVHlwZUxpc3RJdGVtID0gKHt2YWx1ZSwgaXNUaWxlfSkgPT4ge1xuICAvLyBjb25zb2xlLmxvZygnaW5zaWRlIExheWVyVHlwZUxpc3RJdGVtJywgdmFsdWUsIGlzVGlsZSk7XG4gIHJldHVybiAoXG4gICAgPFN0eWxlZExpc3RJdGVtXG4gICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZXMoJ2xheWVyLXR5cGUtc2VsZWN0b3JfX2l0ZW1fX2lubmVyJywge1xuICAgICAgICBsaXN0OiAhaXNUaWxlXG4gICAgICB9KX1cbiAgICA+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImxheWVyLXR5cGUtc2VsZWN0b3JfX2l0ZW1fX2ljb25cIj5cbiAgICAgICAgPHZhbHVlLmljb25cbiAgICAgICAgICBoZWlnaHQ9e2Ake2lzVGlsZSA/IElURU1fU0laRS5sYXJnZSA6IElURU1fU0laRS5zbWFsbH1weGB9XG4gICAgICAgIC8+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwibGF5ZXItdHlwZS1zZWxlY3Rvcl9faXRlbV9fbGFiZWxcIj57dmFsdWUubGFiZWx9PC9kaXY+XG4gICAgPC9TdHlsZWRMaXN0SXRlbT5cbiAgKTtcbn07XG5cbmNvbnN0IExheWVyVHlwZURyb3Bkb3duTGlzdCA9IHByb3BzID0+IChcbiAgPERyb3Bkb3duTGlzdFdyYXBwZXIgY2xhc3NOYW1lPXtjbGFzc0xpc3QubGlzdH0+XG4gICAge3Byb3BzLm9wdGlvbnMubWFwKCh2YWx1ZSwgaSkgPT4gKFxuICAgICAgPFN0eWxlZERyb3Bkb3duTGlzdEl0ZW1cbiAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWVzKCdsYXllci10eXBlLXNlbGVjdG9yX19pdGVtJywge1xuICAgICAgICAgIHNlbGVjdGVkOiBwcm9wcy5zZWxlY3RlZEl0ZW1zLmZpbmQoaXQgPT4gaXQuaWQgPT09IHZhbHVlLmlkKSxcbiAgICAgICAgICBob3ZlcjogcHJvcHMuc2VsZWN0aW9uSW5kZXggPT09IGlcbiAgICAgICAgfSl9XG4gICAgICAgIGtleT17YCR7dmFsdWUuaWR9XyR7aX1gfVxuICAgICAgICBvbk1vdXNlRG93bj17ZSA9PiB7XG4gICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgIHByb3BzLm9uT3B0aW9uU2VsZWN0ZWQodmFsdWUsIGUpO1xuICAgICAgICB9fVxuICAgICAgICBvbkNsaWNrPXtlID0+IHtcbiAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgcHJvcHMub25PcHRpb25TZWxlY3RlZCh2YWx1ZSwgZSk7XG4gICAgICAgIH19XG4gICAgICA+XG4gICAgICAgIDxwcm9wcy5jdXN0b21MaXN0SXRlbUNvbXBvbmVudCB2YWx1ZT17dmFsdWV9IGlzVGlsZSAvPlxuICAgICAgPC9TdHlsZWREcm9wZG93bkxpc3RJdGVtPlxuICAgICkpfVxuICA8L0Ryb3Bkb3duTGlzdFdyYXBwZXI+XG4pO1xuXG5jb25zdCBwcm9wVHlwZXMgPSB7XG4gIGxheWVyOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gIG9uU2VsZWN0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkXG59O1xuXG5jb25zdCBTdHlsZWRMYXllclR5cGVTZWxlY3RvciA9IHN0eWxlZC5kaXZgXG4gIC8vIG92ZXJyaWRlIGl0ZW0tc2VsZWN0b3IgZHJvcGRvd24gcGFkZGluZ1xuICAuaXRlbS1zZWxlY3RvciAuaXRlbS1zZWxlY3Rvcl9fZHJvcGRvd24ge1xuICAgIHBhZGRpbmc6IDRweCAxMHB4IDRweCAycHg7XG4gIH1cbmA7XG5jb25zdCBMYXllclR5cGVTZWxlY3RvciA9ICh7bGF5ZXIsIGxheWVyVHlwZU9wdGlvbnMsIG9uU2VsZWN0fSkgPT4gKFxuICA8U2lkZVBhbmVsU2VjdGlvbj5cbiAgICA8U3R5bGVkTGF5ZXJUeXBlU2VsZWN0b3IgY2xhc3NOYW1lPVwibGF5ZXItY29uZmlnX190eXBlXCI+XG4gICAgICA8SXRlbVNlbGVjdG9yXG4gICAgICAgIHNlbGVjdGVkSXRlbXM9e2xheWVyVHlwZU9wdGlvbnMuZmluZChvcCA9PiBvcC5pZCA9PT0gbGF5ZXIudHlwZSl9XG4gICAgICAgIG9wdGlvbnM9e2xheWVyVHlwZU9wdGlvbnN9XG4gICAgICAgIG11bHRpU2VsZWN0PXtmYWxzZX1cbiAgICAgICAgcGxhY2Vob2xkZXI9XCJTZWxlY3QgQSBUeXBlXCJcbiAgICAgICAgb25DaGFuZ2U9e29uU2VsZWN0fVxuICAgICAgICBnZXRPcHRpb25WYWx1ZT17b3AgPT4gb3AuaWR9XG4gICAgICAgIGZpbHRlck9wdGlvbj1cImxhYmVsXCJcbiAgICAgICAgZGlzcGxheU9wdGlvbj17b3AgPT4gb3AubGFiZWx9XG4gICAgICAgIERyb3BEb3duTGluZUl0ZW1SZW5kZXJDb21wb25lbnQ9e0xheWVyVHlwZUxpc3RJdGVtfVxuICAgICAgICBEcm9wRG93blJlbmRlckNvbXBvbmVudD17TGF5ZXJUeXBlRHJvcGRvd25MaXN0fVxuICAgICAgLz5cbiAgICA8L1N0eWxlZExheWVyVHlwZVNlbGVjdG9yPlxuICA8L1NpZGVQYW5lbFNlY3Rpb24+XG4pO1xuXG5MYXllclR5cGVTZWxlY3Rvci5wcm9wVHlwZXMgPSBwcm9wVHlwZXM7XG5cbmV4cG9ydCBkZWZhdWx0IExheWVyVHlwZVNlbGVjdG9yO1xuIl19