UNPKG

kepler.gl.geoiq

Version:

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

249 lines (192 loc) 22.7 kB
"use strict"; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard"); var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = exports.ModalFooter = exports.ModalTitle = 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 _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral")); var _react = _interopRequireWildcard(require("react")); var _propTypes = _interopRequireDefault(require("prop-types")); var _styledComponents = _interopRequireDefault(require("styled-components")); var _reactModal = _interopRequireDefault(require("react-modal")); var _icons = require("./icons"); var _styledComponents2 = require("./styled-components"); function _templateObject7() { var data = (0, _taggedTemplateLiteral2["default"])(["\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n z-index: 10000;\n transition: ", ";\n\n :focus {\n outline: 0\n }\n"]); _templateObject7 = function _templateObject7() { return data; }; return data; } function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } function _templateObject6() { var data = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n justify-content: flex-end;\n"]); _templateObject6 = function _templateObject6() { return data; }; return data; } function _templateObject5() { var data = (0, _taggedTemplateLiteral2["default"])(["\n position: relative;\n z-index: 10002;\n"]); _templateObject5 = function _templateObject5() { return data; }; return data; } function _templateObject4() { var data = (0, _taggedTemplateLiteral2["default"])(["\n width: 100%;\n left: 0;\n bottom: 0;\n display: flex;\n flex-direction: column;\n justify-content: flex-end;\n padding-top: 36px;\n z-index: 10001;\n"]); _templateObject4 = function _templateObject4() { return data; }; return data; } function _templateObject3() { var data = (0, _taggedTemplateLiteral2["default"])(["\n font-size: ", ";\n color: ", ";\n margin-bottom: 10px;\n position: relative;\n z-index: 10003;\n"]); _templateObject3 = function _templateObject3() { return data; }; return data; } function _templateObject2() { var data = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n display: flex;\n justify-content: flex-end;\n z-index: 10005;\n\n :hover {\n cursor: pointer;\n }\n"]); _templateObject2 = function _templateObject2() { return data; }; return data; } function _templateObject() { var data = (0, _taggedTemplateLiteral2["default"])(["\n width: 60%;\n max-width: 960px;\n padding: 24px 24px 40px;\n position: absolute;\n top: 92px;\n left: 0;\n right: 0;\n margin-left: auto;\n background-color: #ffffff;\n border-radius: 4px;\n transition: ", ";\n min-width: 600px;\n overflow: hidden;\n box-sizing: border-box;\n margin-right: auto;\n font-size: 12px;\n color: ", ";\n ", ";\n"]); _templateObject = function _templateObject() { return data; }; return data; } var ModalContentWrapper = _styledComponents["default"].div(_templateObject(), function (props) { return props.theme.transition; }, function (props) { return props.theme.labelColorLT; }, function (props) { return props.cssStyle || ''; }); var CloseButton = _styledComponents["default"].div(_templateObject2(), function (props) { return props.theme.titleColorLT; }); var ModalTitle = _styledComponents["default"].div(_templateObject3(), function (props) { return props.theme.modalTitleFontSize; }, function (props) { return props.theme.modalTitleColor; }); exports.ModalTitle = ModalTitle; var StyledModalFooter = _styledComponents["default"].div(_templateObject4()); var ModalContent = _styledComponents["default"].div(_templateObject5()); var FooterActionWrapper = _styledComponents["default"].div(_templateObject6()); var defaultCancelButton = { link: true, large: true, children: 'Cancel' }; var defaultConfirmButton = { large: true, width: '160px', children: 'Confirm' }; var ModalFooter = function ModalFooter(_ref) { var cancel = _ref.cancel, confirm = _ref.confirm, cancelButton = _ref.cancelButton, confirmButton = _ref.confirmButton; var cancelButtonProps = _objectSpread({}, defaultCancelButton, {}, cancelButton); var confirmButtonProps = _objectSpread({}, defaultConfirmButton, {}, confirmButton); return _react["default"].createElement(StyledModalFooter, { className: "modal--footer" }, _react["default"].createElement(FooterActionWrapper, null, _react["default"].createElement(_styledComponents2.Button, (0, _extends2["default"])({}, cancelButtonProps, { onClick: cancel }), cancelButtonProps.children), _react["default"].createElement(_styledComponents2.Button, (0, _extends2["default"])({}, confirmButtonProps, { onClick: confirm }), confirmButtonProps.children))); }; exports.ModalFooter = ModalFooter; var ModalDialog = /*#__PURE__*/ function (_Component) { (0, _inherits2["default"])(ModalDialog, _Component); function ModalDialog() { (0, _classCallCheck2["default"])(this, ModalDialog); return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(ModalDialog).apply(this, arguments)); } (0, _createClass2["default"])(ModalDialog, [{ key: "render", value: function render() { var props = this.props; return _react["default"].createElement(_reactModal["default"], (0, _extends2["default"])({}, props, { ariaHideApp: false, style: { overlay: _objectSpread({ backgroundColor: 'rgba(0, 0, 0, 0.5)', zIndex: 10000, overflowY: 'auto', position: 'absolute' }, props.style) } }), _react["default"].createElement(ModalContentWrapper, { className: "modal--content", cssStyle: props.cssStyle, footer: props.footer }, props.close && _react["default"].createElement(CloseButton, { className: "modal--close", onClick: props.close }, _react["default"].createElement(_icons.Delete, { height: "14px" })), _react["default"].createElement("div", { style: { padding: '0px 72px' } }, props.title && _react["default"].createElement(ModalTitle, { className: "modal--title" }, props.title), _react["default"].createElement(ModalContent, { className: "content" }, props.children), props.footer && _react["default"].createElement(ModalFooter, { cancel: props.close, confirm: props.onConfirm, cancelButton: props.cancelButton, confirmButton: props.confirmButton })))); } }]); return ModalDialog; }(_react.Component); (0, _defineProperty2["default"])(ModalDialog, "propTypes", { footer: _propTypes["default"].bool, close: _propTypes["default"].func.isRequired, onConfirm: _propTypes["default"].func, onCancel: _propTypes["default"].func, confirmButton: _propTypes["default"].object, confirmButtonLabel: _propTypes["default"].string, cancelButton: _propTypes["default"].object, cancelButtonLabel: _propTypes["default"].string, cssStyle: _propTypes["default"].arrayOf(_propTypes["default"].any) }); (0, _defineProperty2["default"])(ModalDialog, "defaultProps", { footer: false, close: function close() {}, onConfirm: function onConfirm() {}, onCancel: function onCancel() {}, cancelButton: defaultCancelButton, confirmButton: defaultConfirmButton, cssStyle: [] }); var StyledModal = (0, _styledComponents["default"])(ModalDialog)(_templateObject7(), function (props) { return props.theme.transition; }); var _default = StyledModal; exports["default"] = _default; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2NvbW1vbi9tb2RhbC5qcyJdLCJuYW1lcyI6WyJNb2RhbENvbnRlbnRXcmFwcGVyIiwic3R5bGVkIiwiZGl2IiwicHJvcHMiLCJ0aGVtZSIsInRyYW5zaXRpb24iLCJsYWJlbENvbG9yTFQiLCJjc3NTdHlsZSIsIkNsb3NlQnV0dG9uIiwidGl0bGVDb2xvckxUIiwiTW9kYWxUaXRsZSIsIm1vZGFsVGl0bGVGb250U2l6ZSIsIm1vZGFsVGl0bGVDb2xvciIsIlN0eWxlZE1vZGFsRm9vdGVyIiwiTW9kYWxDb250ZW50IiwiRm9vdGVyQWN0aW9uV3JhcHBlciIsImRlZmF1bHRDYW5jZWxCdXR0b24iLCJsaW5rIiwibGFyZ2UiLCJjaGlsZHJlbiIsImRlZmF1bHRDb25maXJtQnV0dG9uIiwid2lkdGgiLCJNb2RhbEZvb3RlciIsImNhbmNlbCIsImNvbmZpcm0iLCJjYW5jZWxCdXR0b24iLCJjb25maXJtQnV0dG9uIiwiY2FuY2VsQnV0dG9uUHJvcHMiLCJjb25maXJtQnV0dG9uUHJvcHMiLCJNb2RhbERpYWxvZyIsIm92ZXJsYXkiLCJiYWNrZ3JvdW5kQ29sb3IiLCJ6SW5kZXgiLCJvdmVyZmxvd1kiLCJwb3NpdGlvbiIsInN0eWxlIiwiZm9vdGVyIiwiY2xvc2UiLCJwYWRkaW5nIiwidGl0bGUiLCJvbkNvbmZpcm0iLCJDb21wb25lbnQiLCJQcm9wVHlwZXMiLCJib29sIiwiZnVuYyIsImlzUmVxdWlyZWQiLCJvbkNhbmNlbCIsIm9iamVjdCIsImNvbmZpcm1CdXR0b25MYWJlbCIsInN0cmluZyIsImNhbmNlbEJ1dHRvbkxhYmVsIiwiYXJyYXlPZiIsImFueSIsIlN0eWxlZE1vZGFsIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFvQkE7O0FBQ0E7O0FBRUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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QkFBa0IsRUFBRU4sc0JBQVVPLE1BTmI7QUFPakJ4QixFQUFBQSxZQUFZLEVBQUVpQixzQkFBVUssTUFQUDtBQVFqQkcsRUFBQUEsaUJBQWlCLEVBQUVSLHNCQUFVTyxNQVJaO0FBU2pCMUMsRUFBQUEsUUFBUSxFQUFFbUMsc0JBQVVTLE9BQVYsQ0FBa0JULHNCQUFVVSxHQUE1QjtBQVRPLEM7aUNBRGZ2QixXLGtCQWFrQjtBQUNwQk8sRUFBQUEsTUFBTSxFQUFFLEtBRFk7QUFFcEJDLEVBQUFBLEtBQUssRUFBRSxpQkFBTSxDQUFFLENBRks7QUFHcEJHLEVBQUFBLFNBQVMsRUFBRSxxQkFBTSxDQUFFLENBSEM7QUFJcEJNLEVBQUFBLFFBQVEsRUFBRSxvQkFBTSxDQUFFLENBSkU7QUFLcEJyQixFQUFBQSxZQUFZLEVBQUVULG1CQUxNO0FBTXBCVSxFQUFBQSxhQUFhLEVBQUVOLG9CQU5LO0FBT3BCYixFQUFBQSxRQUFRLEVBQUU7QUFQVSxDO0FBMER4QixJQUFNOEMsV0FBVyxHQUFHLGtDQUFPeEIsV0FBUCxDQUFILHFCQU1ELFVBQUExQixLQUFLO0FBQUEsU0FBSUEsS0FBSyxDQUFDQyxLQUFOLENBQVlDLFVBQWhCO0FBQUEsQ0FOSixDQUFqQjtlQWFlZ0QsVyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgMjAxOSBVYmVyIFRlY2hub2xvZ2llcywgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG5cbmltcG9ydCBSZWFjdCwge0NvbXBvbmVudH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcblxuaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQgTW9kYWwgZnJvbSAncmVhY3QtbW9kYWwnO1xuaW1wb3J0IHtEZWxldGV9IGZyb20gJ2NvbXBvbmVudHMvY29tbW9uL2ljb25zJztcbmltcG9ydCB7QnV0dG9ufSBmcm9tICdjb21wb25lbnRzL2NvbW1vbi9zdHlsZWQtY29tcG9uZW50cyc7XG5cbmNvbnN0IE1vZGFsQ29udGVudFdyYXBwZXIgPSBzdHlsZWQuZGl2YFxuICB3aWR0aDogNjAlO1xuICBtYXgtd2lkdGg6IDk2MHB4O1xuICBwYWRkaW5nOiAyNHB4IDI0cHggNDBweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDkycHg7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICB0cmFuc2l0aW9uOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnRyYW5zaXRpb259O1xuICBtaW4td2lkdGg6IDYwMHB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUubGFiZWxDb2xvckxUfTtcbiAgJHtwcm9wcyA9PiBwcm9wcy5jc3NTdHlsZSB8fCAnJ307XG5gO1xuXG5jb25zdCBDbG9zZUJ1dHRvbiA9IHN0eWxlZC5kaXZgXG4gIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnRpdGxlQ29sb3JMVH07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gIHotaW5kZXg6IDEwMDA1O1xuXG4gIDpob3ZlciB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG5gO1xuXG5leHBvcnQgY29uc3QgTW9kYWxUaXRsZSA9IHN0eWxlZC5kaXZgXG4gIGZvbnQtc2l6ZTogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5tb2RhbFRpdGxlRm9udFNpemV9O1xuICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5tb2RhbFRpdGxlQ29sb3J9O1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDEwMDAzO1xuYDtcblxuY29uc3QgU3R5bGVkTW9kYWxGb290ZXIgPSBzdHlsZWQuZGl2YFxuICB3aWR0aDogMTAwJTtcbiAgbGVmdDogMDtcbiAgYm90dG9tOiAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICBwYWRkaW5nLXRvcDogMzZweDtcbiAgei1pbmRleDogMTAwMDE7XG5gO1xuXG5jb25zdCBNb2RhbENvbnRlbnQgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDEwMDAyO1xuYDtcblxuY29uc3QgRm9vdGVyQWN0aW9uV3JhcHBlciA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5gO1xuXG5jb25zdCBkZWZhdWx0Q2FuY2VsQnV0dG9uID0ge1xuICBsaW5rOiB0cnVlLFxuICBsYXJnZTogdHJ1ZSxcbiAgY2hpbGRyZW46ICdDYW5jZWwnXG59O1xuXG5jb25zdCBkZWZhdWx0Q29uZmlybUJ1dHRvbiA9IHtcbiAgbGFyZ2U6IHRydWUsXG4gIHdpZHRoOiAnMTYwcHgnLFxuICBjaGlsZHJlbjogJ0NvbmZpcm0nXG59O1xuXG5leHBvcnQgY29uc3QgTW9kYWxGb290ZXIgPSAoe1xuICBjYW5jZWwsXG4gIGNvbmZpcm0sXG4gIGNhbmNlbEJ1dHRvbixcbiAgY29uZmlybUJ1dHRvblxufSkgPT4ge1xuICBjb25zdCBjYW5jZWxCdXR0b25Qcm9wcyA9IHsuLi5kZWZhdWx0Q2FuY2VsQnV0dG9uLCAuLi5jYW5jZWxCdXR0b259O1xuICBjb25zdCBjb25maXJtQnV0dG9uUHJvcHMgPSB7Li4uZGVmYXVsdENvbmZpcm1CdXR0b24sIC4uLmNvbmZpcm1CdXR0b259O1xuICByZXR1cm4gKFxuICAgIDxTdHlsZWRNb2RhbEZvb3RlciBjbGFzc05hbWU9XCJtb2RhbC0tZm9vdGVyXCI+XG4gICAgICA8Rm9vdGVyQWN0aW9uV3JhcHBlcj5cbiAgICAgICAgPEJ1dHRvbiB7Li4uY2FuY2VsQnV0dG9uUHJvcHN9IG9uQ2xpY2s9e2NhbmNlbH0+XG4gICAgICAgICAge2NhbmNlbEJ1dHRvblByb3BzLmNoaWxkcmVufVxuICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgPEJ1dHRvbiB7Li4uY29uZmlybUJ1dHRvblByb3BzfSBvbkNsaWNrPXtjb25maXJtfT5cbiAgICAgICAgICB7Y29uZmlybUJ1dHRvblByb3BzLmNoaWxkcmVufVxuICAgICAgICA8L0J1dHRvbj5cbiAgICAgIDwvRm9vdGVyQWN0aW9uV3JhcHBlcj5cbiAgICA8L1N0eWxlZE1vZGFsRm9vdGVyPlxuICApO1xufTtcblxuY2xhc3MgTW9kYWxEaWFsb2cgZXh0ZW5kcyBDb21wb25lbnQge1xuICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgIGZvb3RlcjogUHJvcFR5cGVzLmJvb2wsXG4gICAgY2xvc2U6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25Db25maXJtOiBQcm9wVHlwZXMuZnVuYyxcbiAgICBvbkNhbmNlbDogUHJvcFR5cGVzLmZ1bmMsXG4gICAgY29uZmlybUJ1dHRvbjogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBjb25maXJtQnV0dG9uTGFiZWw6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgY2FuY2VsQnV0dG9uOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGNhbmNlbEJ1dHRvbkxhYmVsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGNzc1N0eWxlOiBQcm9wVHlwZXMuYXJyYXlPZihQcm9wVHlwZXMuYW55KVxuICB9O1xuXG4gIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7XG4gICAgZm9vdGVyOiBmYWxzZSxcbiAgICBjbG9zZTogKCkgPT4ge30sXG4gICAgb25Db25maXJtOiAoKSA9PiB7fSxcbiAgICBvbkNhbmNlbDogKCkgPT4ge30sXG4gICAgY2FuY2VsQnV0dG9uOiBkZWZhdWx0Q2FuY2VsQnV0dG9uLFxuICAgIGNvbmZpcm1CdXR0b246IGRlZmF1bHRDb25maXJtQnV0dG9uLFxuICAgIGNzc1N0eWxlOiBbXVxuICB9O1xuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7cHJvcHN9ID0gdGhpcztcbiAgICByZXR1cm4gKFxuICAgICAgPE1vZGFsXG4gICAgICAgIHsuLi5wcm9wc31cbiAgICAgICAgYXJpYUhpZGVBcHA9e2ZhbHNlfVxuICAgICAgICBzdHlsZT17e1xuICAgICAgICAgIG92ZXJsYXk6IHtcbiAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogJ3JnYmEoMCwgMCwgMCwgMC41KScsXG4gICAgICAgICAgICB6SW5kZXg6IDEwMDAwLFxuICAgICAgICAgICAgb3ZlcmZsb3dZOiAnYXV0bycsXG4gICAgICAgICAgICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgICAgICAgICAgIC8vIGluIGNhc2Ugd2Ugd2FudCB0byBvdmVycmlkZSB0aGUgbW9kYWwgZGlhbG9nIHN0eWxlXG4gICAgICAgICAgICAuLi5wcm9wcy5zdHlsZVxuICAgICAgICAgIH1cbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAgPE1vZGFsQ29udGVudFdyYXBwZXJcbiAgICAgICAgICBjbGFzc05hbWU9XCJtb2RhbC0tY29udGVudFwiXG4gICAgICAgICAgY3NzU3R5bGU9e3Byb3BzLmNzc1N0eWxlfVxuICAgICAgICAgIGZvb3Rlcj17cHJvcHMuZm9vdGVyfVxuICAgICAgICA+XG4gICAgICAgICAge3Byb3BzLmNsb3NlICYmIChcbiAgICAgICAgICAgIDxDbG9zZUJ1dHRvbiBjbGFzc05hbWU9XCJtb2RhbC0tY2xvc2VcIiBvbkNsaWNrPXtwcm9wcy5jbG9zZX0+XG4gICAgICAgICAgICAgIDxEZWxldGUgaGVpZ2h0PVwiMTRweFwiIC8+XG4gICAgICAgICAgICA8L0Nsb3NlQnV0dG9uPlxuICAgICAgICAgICl9XG4gICAgICAgICAgPGRpdiBzdHlsZT17e3BhZGRpbmc6ICcwcHggNzJweCd9fT5cbiAgICAgICAgICAgIHtwcm9wcy50aXRsZSAmJiAoXG4gICAgICAgICAgICAgIDxNb2RhbFRpdGxlIGNsYXNzTmFtZT1cIm1vZGFsLS10aXRsZVwiPntwcm9wcy50aXRsZX08L01vZGFsVGl0bGU+XG4gICAgICAgICAgICApfVxuICAgICAgICAgICAgPE1vZGFsQ29udGVudCBjbGFzc05hbWU9XCJjb250ZW50XCI+e3Byb3BzLmNoaWxkcmVufTwvTW9kYWxDb250ZW50PlxuICAgICAgICAgICAge3Byb3BzLmZvb3RlciAmJiAoXG4gICAgICAgICAgICAgIDxNb2RhbEZvb3RlclxuICAgICAgICAgICAgICAgIGNhbmNlbD17cHJvcHMuY2xvc2V9XG4gICAgICAgICAgICAgICAgY29uZmlybT17cHJvcHMub25Db25maXJtfVxuICAgICAgICAgICAgICAgIGNhbmNlbEJ1dHRvbj17cHJvcHMuY2FuY2VsQnV0dG9ufVxuICAgICAgICAgICAgICAgIGNvbmZpcm1CdXR0b249e3Byb3BzLmNvbmZpcm1CdXR0b259XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDwvTW9kYWxDb250ZW50V3JhcHBlcj5cbiAgICAgIDwvTW9kYWw+XG4gICAgKTtcbiAgfVxufVxuXG5jb25zdCBTdHlsZWRNb2RhbCA9IHN0eWxlZChNb2RhbERpYWxvZylgXG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogMTAwMDA7XG4gIHRyYW5zaXRpb246ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUudHJhbnNpdGlvbn07XG5cbiAgOmZvY3VzIHtcbiAgICBvdXRsaW5lOiAwXG4gIH1cbmA7XG5cbmV4cG9ydCBkZWZhdWx0IFN0eWxlZE1vZGFsO1xuIl19