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
JavaScript
;
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