-
Notifications
You must be signed in to change notification settings - Fork 196
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix github url strings (org edx -> openedx) #1891
Conversation
Codecov ReportBase: 94.98% // Head: 94.98% // No change to project coverage 👍
Additional details and impacted files@@ Coverage Diff @@
## master #1891 +/- ##
=======================================
Coverage 94.98% 94.98%
=======================================
Files 154 154
Lines 17045 17045
Branches 1873 1873
=======================================
Hits 16190 16190
Misses 641 641
Partials 214 214
Flags with carried forward coverage won't be shown. Click here to find out more.
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here. ☔ View full report at Codecov. |
34d6727
to
ba496be
Compare
@@ -1515,7 +1515,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var reac | |||
/***/ (function(module, __webpack_exports__, __webpack_require__) { | |||
|
|||
"use strict"; | |||
eval("__webpack_require__.r(__webpack_exports__);\n/* WEBPACK VAR INJECTION */(function(global) {/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-dom */ \"./node_modules/react-dom/index.js\");\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_dom__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! classnames */ \"./node_modules/classnames/index.js\");\n/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var react_focus_on__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react-focus-on */ \"./node_modules/react-focus-on/dist/es2015/index.js\");\n/* harmony import */ var tabbable__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! tabbable */ \"./node_modules/tabbable/index.js\");\n/* harmony import */ var tabbable__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(tabbable__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! .. */ \"./node_modules/@edx/paragon/dist/index.js\");\n/* harmony import */ var _Icon__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../Icon */ \"./node_modules/@edx/paragon/dist/Icon/index.js\");\n/* harmony import */ var _utils_newId__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../utils/newId */ \"./node_modules/@edx/paragon/dist/utils/newId.js\");\n/* harmony import */ var _utils_constants__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../utils/constants */ \"./node_modules/@edx/paragon/dist/utils/constants.js\");\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n/* eslint-disable max-len */\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar Modal = /*#__PURE__*/function (_React$Component) {\n _inherits(Modal, _React$Component);\n\n var _super = _createSuper(Modal);\n\n function Modal(props) {\n var _this;\n\n _classCallCheck(this, Modal);\n\n _this = _super.call(this, props);\n _this.close = _this.close.bind(_assertThisInitialized(_this));\n _this.headerId = Object(_utils_newId__WEBPACK_IMPORTED_MODULE_8__[\"default\"])();\n _this.modalBodyRef = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createRef();\n\n if (typeof document !== 'undefined') {\n _this.el = document.createElement('div'); // Sets true for IE11, false otherwise: https://stackoverflow.com/a/22082397/6620612\n\n _this.isIE11 = !!global.MSInputMethodContext && !!document.documentMode;\n }\n\n _this.state = {\n open: props.open\n };\n return _this;\n }\n\n _createClass(Modal, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var parentSelector = this.props.parentSelector;\n this.parentElement = document.querySelector(parentSelector);\n\n if (this.parentElement === null) {\n throw new Error(\"Modal received invalid parentSelector: \".concat(parentSelector, \", no matching element found\"));\n }\n\n this.parentElement.appendChild(this.el);\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, prevState) {\n var open = this.props.open;\n\n if (open !== prevProps.open || open !== prevState.open) {\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState({\n open: open\n });\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n react_dom__WEBPACK_IMPORTED_MODULE_1___default.a.unmountComponentAtNode(this.parentElement);\n }\n }, {\n key: \"getVariantIconClassName\",\n value: function getVariantIconClassName() {\n var variant = this.props.variant;\n var variantIconClassName;\n\n switch (variant.status) {\n case _utils_constants__WEBPACK_IMPORTED_MODULE_9__[\"default\"].status.WARNING:\n variantIconClassName = classnames__WEBPACK_IMPORTED_MODULE_2___default()('fa', 'fa-exclamation-triangle', 'fa-3x', \"text-\".concat(variant.status.toLowerCase()));\n break;\n\n default:\n break;\n }\n\n return variantIconClassName;\n }\n }, {\n key: \"getVariantGridBody\",\n value: function getVariantGridBody(body) {\n var variant = this.props.variant;\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"container-fluid\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"row\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"col-md-10\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", null, body)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"col-md-2\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_Icon__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n id: Object(_utils_newId__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(\"Modal-\".concat(variant.status)),\n className: this.getVariantIconClassName()\n }))));\n }\n }, {\n key: \"getTabbableBodyElements\",\n value: function getTabbableBodyElements() {\n var _this$modalBodyRef;\n\n if ((_this$modalBodyRef = this.modalBodyRef) === null || _this$modalBodyRef === void 0 ? void 0 : _this$modalBodyRef.current) {\n return tabbable__WEBPACK_IMPORTED_MODULE_5___default()(this.modalBodyRef.current);\n }\n\n return [];\n }\n }, {\n key: \"isValidVariantStatus\",\n value: function isValidVariantStatus() {\n var variant = this.props.variant;\n return Object.values(_utils_constants__WEBPACK_IMPORTED_MODULE_9__[\"default\"].status).includes(variant.status);\n }\n }, {\n key: \"close\",\n value: function close(e) {\n if (e) {\n e.stopPropagation();\n }\n\n this.setState({\n open: false\n });\n this.props.onClose();\n }\n }, {\n key: \"renderButtons\",\n value: function renderButtons() {\n return this.props.buttons.map(function (button) {\n // button is either a React component that we want clone or a set of props\n if ( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.isValidElement(button)) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.cloneElement(button, {\n key: button.props.children\n });\n }\n\n var label = button.label,\n buttonProps = _objectWithoutProperties(button, [\"label\"]);\n\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(___WEBPACK_IMPORTED_MODULE_6__[\"Button\"].Deprecated, _extends({}, buttonProps, {\n key: label\n }), label);\n });\n }\n }, {\n key: \"renderBody\",\n value: function renderBody() {\n var body = this.props.body;\n\n if (typeof body === 'string') {\n body = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"p\", null, body);\n }\n\n if (this.isValidVariantStatus()) {\n body = this.getVariantGridBody(body);\n }\n\n return body;\n }\n }, {\n key: \"renderModal\",\n value: function renderModal() {\n var open = this.state.open;\n var _this$props = this.props,\n dialogClassName = _this$props.dialogClassName,\n renderDefaultCloseButton = _this$props.renderDefaultCloseButton,\n renderHeaderCloseButton = _this$props.renderHeaderCloseButton,\n buttons = _this$props.buttons,\n closeText = _this$props.closeText,\n title = _this$props.title;\n var hasTabbableElements = renderDefaultCloseButton || renderHeaderCloseButton || buttons.length > 0 || this.getTabbableBodyElements().length > 0;\n var renderModalFooter = renderDefaultCloseButton || buttons.length > 0;\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_0___default.a.Fragment, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: classnames__WEBPACK_IMPORTED_MODULE_2___default()({\n 'modal-backdrop': open,\n show: open,\n fade: !open\n }),\n role: \"presentation\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: classnames__WEBPACK_IMPORTED_MODULE_2___default()('modal', {\n show: open,\n fade: !open,\n 'd-block': open,\n 'is-ie11': this.isIE11\n }),\n role: \"presentation\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: classnames__WEBPACK_IMPORTED_MODULE_2___default()({\n 'modal-dialog': open\n }, dialogClassName),\n role: \"dialog\",\n \"aria-modal\": true,\n \"aria-labelledby\": this.headerId\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_focus_on__WEBPACK_IMPORTED_MODULE_4__[\"FocusOn\"], {\n enabled: open,\n onClickOutside: this.close,\n onEscapeKey: this.close\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", _extends({\n className: \"modal-content\" // if the modal doesn't contain any tabbable elements, make this element programmatically focusable.\n\n }, !hasTabbableElements ? {\n tabIndex: -1\n } : {}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"modal-header\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"h2\", {\n className: \"modal-title\",\n id: this.headerId\n }, title), renderHeaderCloseButton && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(___WEBPACK_IMPORTED_MODULE_6__[\"Button\"].Deprecated, {\n className: \"p-1\",\n onClick: this.close\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_Icon__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n className: \"fa fa-times\",\n screenReaderText: closeText\n }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"modal-body\",\n ref: this.modalBodyRef\n }, this.renderBody()), renderModalFooter && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"modal-footer\"\n }, renderDefaultCloseButton && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(___WEBPACK_IMPORTED_MODULE_6__[\"Button\"], {\n variant: \"link\",\n onClick: this.close\n }, closeText), this.renderButtons()))))));\n }\n }, {\n key: \"render\",\n value: function render() {\n if (!this.el) {\n return null;\n }\n\n return /*#__PURE__*/react_dom__WEBPACK_IMPORTED_MODULE_1___default.a.createPortal(this.renderModal(), this.el);\n }\n }]);\n\n return Modal;\n}(react__WEBPACK_IMPORTED_MODULE_0___default.a.Component);\n\nModal.propTypes = {\n /** specifies whether the modal renders open or closed on the initial render. It defaults to false. */\n open: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n /** is the selector for an element in the dom which the modal should be rendered under. It uses querySelector to find the first element that matches that selector, and then creates a react portal to a div underneath the parent element.\n */\n parentSelector: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n /** a string or an element that is rendered inside of the modal title, above the modal body. */\n title: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.element]).isRequired,\n\n /** a string or an element that is rendered inside of the modal body, between the title and the footer. */\n body: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.element]).isRequired,\n\n /** an array of either elements or shapes that take the form of the buttonPropTypes. See the [buttonPropTypes](https://github.com/edx/paragon/blob/master/src/Button/index.jsx#L40) for a list of acceptable props to pass as part of a button. */\n buttons: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.arrayOf(prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.element, prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object // TODO: Only accept nodes in the future\n ])),\n\n /** specifies the display text of the default Close button. It defaults to \"Close\". */\n closeText: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.element]),\n\n /** a function that is called on close. It can be used to perform actions upon closing of the modal, such as restoring focus to the previous logical focusable element. */\n onClose: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func.isRequired,\n variant: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.shape({\n status: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string\n }),\n\n /** specifies whether the default close button is rendered in the footer. It defaults to true. */\n renderDefaultCloseButton: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n /** specifies whether a close button is rendered in the modal header. It defaults to true. */\n renderHeaderCloseButton: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n /**\n * Specifies optional classes to add to the element with the '.modal-dialog' class. See Bootstrap documentation for possible classes. Some options: modal-lg, modal-sm, modal-dialog-centered\n */\n dialogClassName: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string\n};\nModal.defaultProps = {\n open: false,\n parentSelector: 'body',\n buttons: [],\n closeText: 'Close',\n variant: {},\n renderDefaultCloseButton: true,\n renderHeaderCloseButton: true,\n dialogClassName: undefined\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (Modal);\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../webpack/buildin/global.js */ \"./node_modules/webpack/buildin/global.js\")))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vLi4vc3JjL01vZGFsL2luZGV4LmpzeD9iNjlmIl0sIm5hbWVzIjpbIk1vZGFsIiwibmV3SWQiLCJSZWFjdCIsImRvY3VtZW50IiwiZ2xvYmFsIiwib3BlbiIsInByb3BzIiwicGFyZW50U2VsZWN0b3IiLCJwcmV2UHJvcHMiLCJwcmV2U3RhdGUiLCJSZWFjdERPTSIsInZhcmlhbnQiLCJWYXJpYW50IiwidmFyaWFudEljb25DbGFzc05hbWUiLCJjbGFzc05hbWVzIiwiYm9keSIsInRhYmJhYmxlIiwiT2JqZWN0IiwiZSIsImtleSIsImJ1dHRvbiIsImNoaWxkcmVuIiwibGFiZWwiLCJidXR0b25Qcm9wcyIsImRpYWxvZ0NsYXNzTmFtZSIsInJlbmRlckRlZmF1bHRDbG9zZUJ1dHRvbiIsInJlbmRlckhlYWRlckNsb3NlQnV0dG9uIiwiYnV0dG9ucyIsImNsb3NlVGV4dCIsInRpdGxlIiwiaGFzVGFiYmFibGVFbGVtZW50cyIsInJlbmRlck1vZGFsRm9vdGVyIiwic2hvdyIsImZhZGUiLCJpc0lFMTEiLCJoZWFkZXJJZCIsImNsb3NlIiwidGFiSW5kZXgiLCJtb2RhbEJvZHlSZWYiLCJDb21wb25lbnQiLCJQcm9wVHlwZXMiLCJvbkNsb3NlIiwic3RhdHVzIiwic3RyaW5nIiwidW5kZWZpbmVkIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7O0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0lBRU1BLEs7Ozs7O0FBQ0osd0JBQW1CO0FBQUE7O0FBQUE7O0FBQ2pCO0FB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L3BhcmFnb24vZGlzdC9Nb2RhbC9pbmRleC5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG1heC1sZW4gKi9cbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUmVhY3RET00gZnJvbSAncmVhY3QtZG9tJztcbmltcG9ydCBjbGFzc05hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCB7IEZvY3VzT24gfSBmcm9tICdyZWFjdC1mb2N1cy1vbic7XG5pbXBvcnQgdGFiYmFibGUgZnJvbSAndGFiYmFibGUnO1xuXG5pbXBvcnQgeyBCdXR0b24gfSBmcm9tICcuLic7XG5pbXBvcnQgSWNvbiBmcm9tICcuLi9JY29uJztcbmltcG9ydCBuZXdJZCBmcm9tICcuLi91dGlscy9uZXdJZCc7XG5pbXBvcnQgVmFyaWFudCBmcm9tICcuLi91dGlscy9jb25zdGFudHMnO1xuXG5jbGFzcyBNb2RhbCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIGNvbnN0cnVjdG9yKHByb3BzKSB7XG4gICAgc3VwZXIocHJvcHMpO1xuXG4gICAgdGhpcy5jbG9zZSA9IHRoaXMuY2xvc2UuYmluZCh0aGlzKTtcblxuICAgIHRoaXMuaGVhZGVySWQgPSBuZXdJZCgpO1xuICAgIHRoaXMubW9kYWxCb2R5UmVmID0gUmVhY3QuY3JlYXRlUmVmKCk7XG5cbiAgICBpZiAodHlwZW9mIGRvY3VtZW50ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgdGhpcy5lbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgLy8gU2V0cyB0cnVlIGZvciBJRTExLCBmYWxzZSBvdGhlcndpc2U6IGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vYS8yMjA4MjM5Ny82NjIwNjEyXG4gICAgICB0aGlzLmlzSUUxMSA9ICEhZ2xvYmFsLk1TSW5wdXRNZXRob2RDb250ZXh0ICYmICEhZG9jdW1lbnQuZG9jdW1lbnRNb2RlO1xuICAgIH1cblxuICAgIHRoaXMuc3RhdGUgPSB7XG4gICAgICBvcGVuOiBwcm9wcy5vcGVuLFxuICAgIH07XG4gIH1cblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICBjb25zdCB7IHBhcmVudFNlbGVjdG9yIH0gPSB0aGlzLnByb3BzO1xuICAgIHRoaXMucGFyZW50RWxlbWVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IocGFyZW50U2VsZWN0b3IpO1xuICAgIGlmICh0aGlzLnBhcmVudEVsZW1lbnQgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgTW9kYWwgcmVjZWl2ZWQgaW52YWxpZCBwYXJlbnRTZWxlY3RvcjogJHtwYXJlbnRTZWxlY3Rvcn0sIG5vIG1hdGNoaW5nIGVsZW1lbnQgZm91bmRgKTtcbiAgICB9XG4gICAgdGhpcy5wYXJlbnRFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuZWwpO1xuICB9XG5cbiAgY29tcG9uZW50RGlkVXBkYXRlKHByZXZQcm9wcywgcHJldlN0YXRlKSB7XG4gICAgY29uc3QgeyBvcGVuIH0gPSB0aGlzLnByb3BzO1xuICAgIGlmIChvcGVuICE9PSBwcmV2UHJvcHMub3BlbiB8fCBvcGVuICE9PSBwcmV2U3RhdGUub3Blbikge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0L25vLWRpZC11cGRhdGUtc2V0LXN0YXRlXG4gICAgICB0aGlzLnNldFN0YXRlKHsgb3BlbiB9KTtcbiAgICB9XG4gIH1cblxuICBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICBSZWFjdERPTS51bm1vdW50Q29tcG9uZW50QXROb2RlKHRoaXMucGFyZW50RWxlbWVudCk7XG4gIH1cblxuICBnZXRWYXJpYW50SWNvbkNsYXNzTmFtZSgpIHtcbiAgICBjb25zdCB7IHZhcmlhbnQgfSA9IHRoaXMucHJvcHM7XG4gICAgbGV0IHZhcmlhbnRJY29uQ2xhc3NOYW1lO1xuXG4gICAgc3dpdGNoICh2YXJpYW50LnN0YXR1cykge1xuICAgICAgY2FzZSBWYXJpYW50LnN0YXR1cy5XQVJOSU5HOlxuICAgICAgICB2YXJpYW50SWNvbkNsYXNzTmFtZSA9IGNsYXNzTmFtZXMoXG4gICAgICAgICAgJ2ZhJyxcbiAgICAgICAgICAnZmEtZXhjbGFtYXRpb24tdHJpYW5nbGUnLFxuICAgICAgICAgICdmYS0zeCcsXG4gICAgICAgICAgYHRleHQtJHt2YXJpYW50LnN0YXR1cy50b0xvd2VyQ2FzZSgpfWAsXG4gICAgICAgICk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhcmlhbnRJY29uQ2xhc3NOYW1lO1xuICB9XG5cbiAgZ2V0VmFyaWFudEdyaWRCb2R5KGJvZHkpIHtcbiAgICBjb25zdCB7IHZhcmlhbnQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250YWluZXItZmx1aWRcIj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3dcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1tZC0xMFwiPlxuICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAge2JvZHl9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1tZC0yXCI+XG4gICAgICAgICAgICA8SWNvblxuICAgICAgICAgICAgICBpZD17bmV3SWQoYE1vZGFsLSR7dmFyaWFudC5zdGF0dXN9YCl9XG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17dGhpcy5nZXRWYXJpYW50SWNvbkNsYXNzTmFtZSgpfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9XG5cbiAgZ2V0VGFiYmFibGVCb2R5RWxlbWVudHMoKSB7XG4gICAgaWYgKHRoaXMubW9kYWxCb2R5UmVmPy5jdXJyZW50KSB7XG4gICAgICByZXR1cm4gdGFiYmFibGUodGhpcy5tb2RhbEJvZHlSZWYuY3VycmVudCk7XG4gICAgfVxuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIGlzVmFsaWRWYXJpYW50U3RhdHVzKCkge1xuICAgIGNvbnN0IHsgdmFyaWFudCB9ID0gdGhpcy5wcm9wcztcbiAgICByZXR1cm4gT2JqZWN0LnZhbHVlcyhWYXJpYW50LnN0YXR1cykuaW5jbHVkZXModmFyaWFudC5zdGF0dXMpO1xuICB9XG5cbiAgY2xvc2UoZSkge1xuICAgIGlmIChlKSB7XG4gICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH1cblxuICAgIHRoaXMuc2V0U3RhdGUoeyBvcGVuOiBmYWxzZSB9KTtcbiAgICB0aGlzLnByb3BzLm9uQ2xvc2UoKTtcbiAgfVxuXG4gIHJlbmRlckJ1dHRvbnMoKSB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMuYnV0dG9ucy5tYXAoKGJ1dHRvbikgPT4ge1xuICAgICAgLy8gYnV0dG9uIGlzIGVpdGhlciBhIFJlYWN0IGNvbXBvbmVudCB0aGF0IHdlIHdhbnQgY2xvbmUgb3IgYSBzZXQgb2YgcHJvcHNcbiAgICAgIGlmIChSZWFjdC5pc1ZhbGlkRWxlbWVudChidXR0b24pKSB7XG4gICAgICAgIHJldHVybiBSZWFjdC5jbG9uZUVsZW1lbnQoYnV0dG9uLCB7XG4gICAgICAgICAga2V5OiBidXR0b24ucHJvcHMuY2hpbGRyZW4sXG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBjb25zdCB7IGxhYmVsLCAuLi5idXR0b25Qcm9wcyB9ID0gYnV0dG9uO1xuXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8QnV0dG9uLkRlcHJlY2F0ZWRcbiAgICAgICAgICB7Li4uYnV0dG9uUHJvcHN9XG4gICAgICAgICAga2V5PXtsYWJlbH1cbiAgICAgICAgPlxuICAgICAgICAgIHtsYWJlbH1cbiAgICAgICAgPC9CdXR0b24uRGVwcmVjYXRlZD5cbiAgICAgICk7XG4gICAgfSk7XG4gIH1cblxuICByZW5kZXJCb2R5KCkge1xuICAgIGxldCB7IGJvZHkgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBpZiAodHlwZW9mIGJvZHkgPT09ICdzdHJpbmcnKSB7XG4gICAgICBib2R5ID0gPHA+e2JvZHl9PC9wPjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5pc1ZhbGlkVmFyaWFudFN0YXR1cygpKSB7XG4gICAgICBib2R5ID0gdGhpcy5nZXRWYXJpYW50R3JpZEJvZHkoYm9keSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGJvZHk7XG4gIH1cblxuICByZW5kZXJNb2RhbCgpIHtcbiAgICBjb25zdCB7IG9wZW4gfSA9IHRoaXMuc3RhdGU7XG4gICAgY29uc3Qge1xuICAgICAgZGlhbG9nQ2xhc3NOYW1lLFxuICAgICAgcmVuZGVyRGVmYXVsdENsb3NlQnV0dG9uLFxuICAgICAgcmVuZGVySGVhZGVyQ2xvc2VCdXR0b24sXG4gICAgICBidXR0b25zLFxuICAgICAgY2xvc2VUZXh0LFxuICAgICAgdGl0bGUsXG4gICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBoYXNUYWJiYWJsZUVsZW1lbnRzID0gKFxuICAgICAgcmVuZGVyRGVmYXVsdENsb3NlQnV0dG9uXG4gICAgICB8fCByZW5kZXJIZWFkZXJDbG9zZUJ1dHRvblxuICAgICAgfHwgYnV0dG9ucy5sZW5ndGggPiAwXG4gICAgICB8fCB0aGlzLmdldFRhYmJhYmxlQm9keUVsZW1lbnRzKCkubGVuZ3RoID4gMFxuICAgICk7XG4gICAgY29uc3QgcmVuZGVyTW9kYWxGb290ZXIgPSByZW5kZXJEZWZhdWx0Q2xvc2VCdXR0b24gfHwgYnV0dG9ucy5sZW5ndGggPiAwO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZXMoe1xuICAgICAgICAgICAgJ21vZGFsLWJhY2tkcm9wJzogb3BlbixcbiAgICAgICAgICAgIHNob3c6IG9wZW4sXG4gICAgICAgICAgICBmYWRlOiAhb3BlbixcbiAgICAgICAgICB9KX1cbiAgICAgICAgICByb2xlPVwicHJlc2VudGF0aW9uXCJcbiAgICAgICAgLz5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lcyhcbiAgICAgICAgICAgICdtb2RhbCcsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHNob3c6IG9wZW4sXG4gICAgICAgICAgICAgIGZhZGU6ICFvcGVuLFxuICAgICAgICAgICAgICAnZC1ibG9jayc6IG9wZW4sXG4gICAgICAgICAgICAgICdpcy1pZTExJzogdGhpcy5pc0lFMTEsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICl9XG4gICAgICAgICAgcm9sZT1cInByZXNlbnRhdGlvblwiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZXMoXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAnbW9kYWwtZGlhbG9nJzogb3BlbixcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgZGlhbG9nQ2xhc3NOYW1lLFxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIHJvbGU9XCJkaWFsb2dcIlxuICAgICAgICAgICAgYXJpYS1tb2RhbFxuICAgICAgICAgICAgYXJpYS1sYWJlbGxlZGJ5PXt0aGlzLmhlYWRlcklkfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxGb2N1c09uXG4gICAgICAgICAgICAgIGVuYWJsZWQ9e29wZW59XG4gICAgICAgICAgICAgIG9uQ2xpY2tPdXRzaWRlPXt0aGlzLmNsb3NlfVxuICAgICAgICAgICAgICBvbkVzY2FwZUtleT17dGhpcy5jbG9zZX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cIm1vZGFsLWNvbnRlbnRcIlxuICAgICAgICAgICAgICAgIC8vIGlmIHRoZSBtb2RhbCBkb2Vzbid0IGNvbnRhaW4gYW55IHRhYmJhYmxlIGVsZW1lbnRzLCBtYWtlIHRoaXMgZWxlbWVudCBwcm9ncmFtbWF0aWNhbGx5IGZvY3VzYWJsZS5cbiAgICAgICAgICAgICAgICB7Li4uKCFoYXNUYWJiYWJsZUVsZW1lbnRzID8geyB0YWJJbmRleDogLTEgfSA6IHt9KX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibW9kYWwtaGVhZGVyXCI+XG4gICAgICAgICAgICAgICAgICA8aDIgY2xhc3NOYW1lPVwibW9kYWwtdGl0bGVcIiBpZD17dGhpcy5oZWFkZXJJZH0+e3RpdGxlfTwvaDI+XG4gICAgICAgICAgICAgICAgICB7cmVuZGVySGVhZGVyQ2xvc2VCdXR0b24gJiYgKFxuICAgICAgICAgICAgICAgICAgICA8QnV0dG9uLkRlcHJlY2F0ZWRcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJwLTFcIlxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e3RoaXMuY2xvc2V9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8SWNvbiBjbGFzc05hbWU9XCJmYSBmYS10aW1lc1wiIHNjcmVlblJlYWRlclRleHQ9e2Nsb3NlVGV4dH0gLz5cbiAgICAgICAgICAgICAgICAgICAgPC9CdXR0b24uRGVwcmVjYXRlZD5cbiAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtb2RhbC1ib2R5XCIgcmVmPXt0aGlzLm1vZGFsQm9keVJlZn0+XG4gICAgICAgICAgICAgICAgICB7dGhpcy5yZW5kZXJCb2R5KCl9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAge3JlbmRlck1vZGFsRm9vdGVyICYmIChcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibW9kYWwtZm9vdGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIHtyZW5kZXJEZWZhdWx0Q2xvc2VCdXR0b24gJiYgKFxuICAgICAgICAgICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJsaW5rXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e3RoaXMuY2xvc2V9XG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAge2Nsb3NlVGV4dH1cbiAgICAgICAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAge3RoaXMucmVuZGVyQnV0dG9ucygpfVxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L0ZvY3VzT24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC8+XG4gICAgKTtcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBpZiAoIXRoaXMuZWwpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiBSZWFjdERPTS5jcmVhdGVQb3J0YWwoXG4gICAgICB0aGlzLnJlbmRlck1vZGFsKCksXG4gICAgICB0aGlzLmVsLFxuICAgICk7XG4gIH1cbn1cblxuTW9kYWwucHJvcFR5cGVzID0ge1xuICAvKiogc3BlY2lmaWVzIHdoZXRoZXIgdGhlIG1vZGFsIHJlbmRlcnMgb3BlbiBvciBjbG9zZWQgb24gdGhlIGluaXRpYWwgcmVuZGVyLiBJdCBkZWZhdWx0cyB0byBmYWxzZS4gKi9cbiAgb3BlbjogUHJvcFR5cGVzLmJvb2wsXG4gIC8qKiBpcyB0aGUgc2VsZWN0b3IgZm9yIGFuIGVsZW1lbnQgaW4gdGhlIGRvbSB3aGljaCB0aGUgbW9kYWwgc2hvdWxkIGJlIHJlbmRlcmVkIHVuZGVyLiBJdCB1c2VzIHF1ZXJ5U2VsZWN0b3IgdG8gZmluZCB0aGUgZmlyc3QgZWxlbWVudCB0aGF0IG1hdGNoZXMgdGhhdCBzZWxlY3RvciwgYW5kIHRoZW4gY3JlYXRlcyBhIHJlYWN0IHBvcnRhbCB0byBhIGRpdiB1bmRlcm5lYXRoIHRoZSBwYXJlbnQgZWxlbWVudC5cbiAqL1xuICBwYXJlbnRTZWxlY3RvcjogUHJvcFR5cGVzLnN0cmluZyxcbiAgLyoqIGEgc3RyaW5nIG9yIGFuIGVsZW1lbnQgdGhhdCBpcyByZW5kZXJlZCBpbnNpZGUgb2YgdGhlIG1vZGFsIHRpdGxlLCBhYm92ZSB0aGUgbW9kYWwgYm9keS4gKi9cbiAgdGl0bGU6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5zdHJpbmcsIFByb3BUeXBlcy5lbGVtZW50XSkuaXNSZXF1aXJlZCxcbiAgLyoqIGEgc3RyaW5nIG9yIGFuIGVsZW1lbnQgdGhhdCBpcyByZW5kZXJlZCBpbnNpZGUgb2YgdGhlIG1vZGFsIGJvZHksIGJldHdlZW4gdGhlIHRpdGxlIGFuZCB0aGUgZm9vdGVyLiAqL1xuICBib2R5OiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMuc3RyaW5nLCBQcm9wVHlwZXMuZWxlbWVudF0pLmlzUmVxdWlyZWQsXG4gIC8qKiBhbiBhcnJheSBvZiBlaXRoZXIgZWxlbWVudHMgb3Igc2hhcGVzIHRoYXQgdGFrZSB0aGUgZm9ybSBvZiB0aGUgYnV0dG9uUHJvcFR5cGVzLiBTZWUgdGhlIFtidXR0b25Qcm9wVHlwZXNdKGh0dHBzOi8vZ2l0aHViLmNvbS9lZHgvcGFyYWdvbi9ibG9iL21hc3Rlci9zcmMvQnV0dG9uL2luZGV4LmpzeCNMNDApIGZvciBhIGxpc3Qgb2YgYWNjZXB0YWJsZSBwcm9wcyB0byBwYXNzIGFzIHBhcnQgb2YgYSBidXR0b24uICovXG4gIGJ1dHRvbnM6IFByb3BUeXBlcy5hcnJheU9mKFByb3BUeXBlcy5vbmVPZlR5cGUoW1xuICAgIFByb3BUeXBlcy5lbGVtZW50LFxuICAgIFByb3BUeXBlcy5vYmplY3QsIC8vIFRPRE86IE9ubHkgYWNjZXB0IG5vZGVzIGluIHRoZSBmdXR1cmVcbiAgXSkpLFxuICAvKiogc3BlY2lmaWVzIHRoZSBkaXNwbGF5IHRleHQgb2YgdGhlIGRlZmF1bHQgQ2xvc2UgYnV0dG9uLiBJdCBkZWZhdWx0cyB0byBcIkNsb3NlXCIuICovXG4gIGNsb3NlVGV4dDogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLnN0cmluZywgUHJvcFR5cGVzLmVsZW1lbnRdKSxcbiAgLyoqIGEgZnVuY3Rpb24gdGhhdCBpcyBjYWxsZWQgb24gY2xvc2UuIEl0IGNhbiBiZSB1c2VkIHRvIHBlcmZvcm0gYWN0aW9ucyB1cG9uIGNsb3Npbmcgb2YgdGhlIG1vZGFsLCBzdWNoIGFzIHJlc3RvcmluZyBmb2N1cyB0byB0aGUgcHJldmlvdXMgbG9naWNhbCBmb2N1c2FibGUgZWxlbWVudC4gKi9cbiAgb25DbG9zZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgdmFyaWFudDogUHJvcFR5cGVzLnNoYXBlKHtcbiAgICBzdGF0dXM6IFByb3BUeXBlcy5zdHJpbmcsXG4gIH0pLFxuICAvKiogc3BlY2lmaWVzIHdoZXRoZXIgdGhlIGRlZmF1bHQgY2xvc2UgYnV0dG9uIGlzIHJlbmRlcmVkIGluIHRoZSBmb290ZXIuIEl0IGRlZmF1bHRzIHRvIHRydWUuICovXG4gIHJlbmRlckRlZmF1bHRDbG9zZUJ1dHRvbjogUHJvcFR5cGVzLmJvb2wsXG4gIC8qKiBzcGVjaWZpZXMgd2hldGhlciBhIGNsb3NlIGJ1dHRvbiBpcyByZW5kZXJlZCBpbiB0aGUgbW9kYWwgaGVhZGVyLiBJdCBkZWZhdWx0cyB0byB0cnVlLiAqL1xuICByZW5kZXJIZWFkZXJDbG9zZUJ1dHRvbjogUHJvcFR5cGVzLmJvb2wsXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgb3B0aW9uYWwgY2xhc3NlcyB0byBhZGQgdG8gdGhlIGVsZW1lbnQgd2l0aCB0aGUgJy5tb2RhbC1kaWFsb2cnIGNsYXNzLiAgU2VlIEJvb3RzdHJhcCBkb2N1bWVudGF0aW9uIGZvciBwb3NzaWJsZSBjbGFzc2VzLiAgU29tZSBvcHRpb25zOiBtb2RhbC1sZywgbW9kYWwtc20sIG1vZGFsLWRpYWxvZy1jZW50ZXJlZFxuICAgKi9cbiAgZGlhbG9nQ2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxufTtcblxuTW9kYWwuZGVmYXVsdFByb3BzID0ge1xuICBvcGVuOiBmYWxzZSxcbiAgcGFyZW50U2VsZWN0b3I6ICdib2R5JyxcbiAgYnV0dG9uczogW10sXG4gIGNsb3NlVGV4dDogJ0Nsb3NlJyxcbiAgdmFyaWFudDoge30sXG4gIHJlbmRlckRlZmF1bHRDbG9zZUJ1dHRvbjogdHJ1ZSxcbiAgcmVuZGVySGVhZGVyQ2xvc2VCdXR0b246IHRydWUsXG4gIGRpYWxvZ0NsYXNzTmFtZTogdW5kZWZpbmVkLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgTW9kYWw7XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@edx/paragon/dist/Modal/index.js\n"); | |||
eval("__webpack_require__.r(__webpack_exports__);\n/* WEBPACK VAR INJECTION */(function(global) {/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-dom */ \"./node_modules/react-dom/index.js\");\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_dom__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! classnames */ \"./node_modules/classnames/index.js\");\n/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var react_focus_on__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react-focus-on */ \"./node_modules/react-focus-on/dist/es2015/index.js\");\n/* harmony import */ var tabbable__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! tabbable */ \"./node_modules/tabbable/index.js\");\n/* harmony import */ var tabbable__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(tabbable__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! .. */ \"./node_modules/@edx/paragon/dist/index.js\");\n/* harmony import */ var _Icon__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../Icon */ \"./node_modules/@edx/paragon/dist/Icon/index.js\");\n/* harmony import */ var _utils_newId__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../utils/newId */ \"./node_modules/@edx/paragon/dist/utils/newId.js\");\n/* harmony import */ var _utils_constants__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../utils/constants */ \"./node_modules/@edx/paragon/dist/utils/constants.js\");\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n/* eslint-disable max-len */\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar Modal = /*#__PURE__*/function (_React$Component) {\n _inherits(Modal, _React$Component);\n\n var _super = _createSuper(Modal);\n\n function Modal(props) {\n var _this;\n\n _classCallCheck(this, Modal);\n\n _this = _super.call(this, props);\n _this.close = _this.close.bind(_assertThisInitialized(_this));\n _this.headerId = Object(_utils_newId__WEBPACK_IMPORTED_MODULE_8__[\"default\"])();\n _this.modalBodyRef = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createRef();\n\n if (typeof document !== 'undefined') {\n _this.el = document.createElement('div'); // Sets true for IE11, false otherwise: https://stackoverflow.com/a/22082397/6620612\n\n _this.isIE11 = !!global.MSInputMethodContext && !!document.documentMode;\n }\n\n _this.state = {\n open: props.open\n };\n return _this;\n }\n\n _createClass(Modal, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var parentSelector = this.props.parentSelector;\n this.parentElement = document.querySelector(parentSelector);\n\n if (this.parentElement === null) {\n throw new Error(\"Modal received invalid parentSelector: \".concat(parentSelector, \", no matching element found\"));\n }\n\n this.parentElement.appendChild(this.el);\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, prevState) {\n var open = this.props.open;\n\n if (open !== prevProps.open || open !== prevState.open) {\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState({\n open: open\n });\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n react_dom__WEBPACK_IMPORTED_MODULE_1___default.a.unmountComponentAtNode(this.parentElement);\n }\n }, {\n key: \"getVariantIconClassName\",\n value: function getVariantIconClassName() {\n var variant = this.props.variant;\n var variantIconClassName;\n\n switch (variant.status) {\n case _utils_constants__WEBPACK_IMPORTED_MODULE_9__[\"default\"].status.WARNING:\n variantIconClassName = classnames__WEBPACK_IMPORTED_MODULE_2___default()('fa', 'fa-exclamation-triangle', 'fa-3x', \"text-\".concat(variant.status.toLowerCase()));\n break;\n\n default:\n break;\n }\n\n return variantIconClassName;\n }\n }, {\n key: \"getVariantGridBody\",\n value: function getVariantGridBody(body) {\n var variant = this.props.variant;\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"container-fluid\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"row\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"col-md-10\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", null, body)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"col-md-2\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_Icon__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n id: Object(_utils_newId__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(\"Modal-\".concat(variant.status)),\n className: this.getVariantIconClassName()\n }))));\n }\n }, {\n key: \"getTabbableBodyElements\",\n value: function getTabbableBodyElements() {\n var _this$modalBodyRef;\n\n if ((_this$modalBodyRef = this.modalBodyRef) === null || _this$modalBodyRef === void 0 ? void 0 : _this$modalBodyRef.current) {\n return tabbable__WEBPACK_IMPORTED_MODULE_5___default()(this.modalBodyRef.current);\n }\n\n return [];\n }\n }, {\n key: \"isValidVariantStatus\",\n value: function isValidVariantStatus() {\n var variant = this.props.variant;\n return Object.values(_utils_constants__WEBPACK_IMPORTED_MODULE_9__[\"default\"].status).includes(variant.status);\n }\n }, {\n key: \"close\",\n value: function close(e) {\n if (e) {\n e.stopPropagation();\n }\n\n this.setState({\n open: false\n });\n this.props.onClose();\n }\n }, {\n key: \"renderButtons\",\n value: function renderButtons() {\n return this.props.buttons.map(function (button) {\n // button is either a React component that we want clone or a set of props\n if ( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.isValidElement(button)) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.cloneElement(button, {\n key: button.props.children\n });\n }\n\n var label = button.label,\n buttonProps = _objectWithoutProperties(button, [\"label\"]);\n\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(___WEBPACK_IMPORTED_MODULE_6__[\"Button\"].Deprecated, _extends({}, buttonProps, {\n key: label\n }), label);\n });\n }\n }, {\n key: \"renderBody\",\n value: function renderBody() {\n var body = this.props.body;\n\n if (typeof body === 'string') {\n body = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"p\", null, body);\n }\n\n if (this.isValidVariantStatus()) {\n body = this.getVariantGridBody(body);\n }\n\n return body;\n }\n }, {\n key: \"renderModal\",\n value: function renderModal() {\n var open = this.state.open;\n var _this$props = this.props,\n dialogClassName = _this$props.dialogClassName,\n renderDefaultCloseButton = _this$props.renderDefaultCloseButton,\n renderHeaderCloseButton = _this$props.renderHeaderCloseButton,\n buttons = _this$props.buttons,\n closeText = _this$props.closeText,\n title = _this$props.title;\n var hasTabbableElements = renderDefaultCloseButton || renderHeaderCloseButton || buttons.length > 0 || this.getTabbableBodyElements().length > 0;\n var renderModalFooter = renderDefaultCloseButton || buttons.length > 0;\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_0___default.a.Fragment, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: classnames__WEBPACK_IMPORTED_MODULE_2___default()({\n 'modal-backdrop': open,\n show: open,\n fade: !open\n }),\n role: \"presentation\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: classnames__WEBPACK_IMPORTED_MODULE_2___default()('modal', {\n show: open,\n fade: !open,\n 'd-block': open,\n 'is-ie11': this.isIE11\n }),\n role: \"presentation\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: classnames__WEBPACK_IMPORTED_MODULE_2___default()({\n 'modal-dialog': open\n }, dialogClassName),\n role: \"dialog\",\n \"aria-modal\": true,\n \"aria-labelledby\": this.headerId\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_focus_on__WEBPACK_IMPORTED_MODULE_4__[\"FocusOn\"], {\n enabled: open,\n onClickOutside: this.close,\n onEscapeKey: this.close\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", _extends({\n className: \"modal-content\" // if the modal doesn't contain any tabbable elements, make this element programmatically focusable.\n\n }, !hasTabbableElements ? {\n tabIndex: -1\n } : {}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"modal-header\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"h2\", {\n className: \"modal-title\",\n id: this.headerId\n }, title), renderHeaderCloseButton && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(___WEBPACK_IMPORTED_MODULE_6__[\"Button\"].Deprecated, {\n className: \"p-1\",\n onClick: this.close\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_Icon__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n className: \"fa fa-times\",\n screenReaderText: closeText\n }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"modal-body\",\n ref: this.modalBodyRef\n }, this.renderBody()), renderModalFooter && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"modal-footer\"\n }, renderDefaultCloseButton && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(___WEBPACK_IMPORTED_MODULE_6__[\"Button\"], {\n variant: \"link\",\n onClick: this.close\n }, closeText), this.renderButtons()))))));\n }\n }, {\n key: \"render\",\n value: function render() {\n if (!this.el) {\n return null;\n }\n\n return /*#__PURE__*/react_dom__WEBPACK_IMPORTED_MODULE_1___default.a.createPortal(this.renderModal(), this.el);\n }\n }]);\n\n return Modal;\n}(react__WEBPACK_IMPORTED_MODULE_0___default.a.Component);\n\nModal.propTypes = {\n /** specifies whether the modal renders open or closed on the initial render. It defaults to false. */\n open: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n /** is the selector for an element in the dom which the modal should be rendered under. It uses querySelector to find the first element that matches that selector, and then creates a react portal to a div underneath the parent element.\n */\n parentSelector: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n /** a string or an element that is rendered inside of the modal title, above the modal body. */\n title: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.element]).isRequired,\n\n /** a string or an element that is rendered inside of the modal body, between the title and the footer. */\n body: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.element]).isRequired,\n\n /** an array of either elements or shapes that take the form of the buttonPropTypes. See the [buttonPropTypes](https://github.com/openedx/paragon/blob/master/src/Button/index.jsx#L40) for a list of acceptable props to pass as part of a button. */\n buttons: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.arrayOf(prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.element, prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object // TODO: Only accept nodes in the future\n ])),\n\n /** specifies the display text of the default Close button. It defaults to \"Close\". */\n closeText: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.element]),\n\n /** a function that is called on close. It can be used to perform actions upon closing of the modal, such as restoring focus to the previous logical focusable element. */\n onClose: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func.isRequired,\n variant: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.shape({\n status: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string\n }),\n\n /** specifies whether the default close button is rendered in the footer. It defaults to true. */\n renderDefaultCloseButton: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n /** specifies whether a close button is rendered in the modal header. It defaults to true. */\n renderHeaderCloseButton: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n /**\n * Specifies optional classes to add to the element with the '.modal-dialog' class. See Bootstrap documentation for possible classes. Some options: modal-lg, modal-sm, modal-dialog-centered\n */\n dialogClassName: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string\n};\nModal.defaultProps = {\n open: false,\n parentSelector: 'body',\n buttons: [],\n closeText: 'Close',\n variant: {},\n renderDefaultCloseButton: true,\n renderHeaderCloseButton: true,\n dialogClassName: undefined\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (Modal);\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../webpack/buildin/global.js */ \"./node_modules/webpack/buildin/global.js\")))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vLi4vc3JjL01vZGFsL2luZGV4LmpzeD9iNjlmIl0sIm5hbWVzIjpbIk1vZGFsIiwibmV3SWQiLCJSZWFjdCIsImRvY3VtZW50IiwiZ2xvYmFsIiwib3BlbiIsInByb3BzIiwicGFyZW50U2VsZWN0b3IiLCJwcmV2UHJvcHMiLCJwcmV2U3RhdGUiLCJSZWFjdERPTSIsInZhcmlhbnQiLCJWYXJpYW50IiwidmFyaWFudEljb25DbGFzc05hbWUiLCJjbGFzc05hbWVzIiwiYm9keSIsInRhYmJhYmxlIiwiT2JqZWN0IiwiZSIsImtleSIsImJ1dHRvbiIsImNoaWxkcmVuIiwibGFiZWwiLCJidXR0b25Qcm9wcyIsImRpYWxvZ0NsYXNzTmFtZSIsInJlbmRlckRlZmF1bHRDbG9zZUJ1dHRvbiIsInJlbmRlckhlYWRlckNsb3NlQnV0dG9uIiwiYnV0dG9ucyIsImNsb3NlVGV4dCIsInRpdGxlIiwiaGFzVGFiYmFibGVFbGVtZW50cyIsInJlbmRlck1vZGFsRm9vdGVyIiwic2hvdyIsImZhZGUiLCJpc0lFMTEiLCJoZWFkZXJJZCIsImNsb3NlIiwidGFiSW5kZXgiLCJtb2RhbEJvZHlSZWYiLCJDb21wb25lbnQiLCJQcm9wVHlwZXMiLCJvbkNsb3NlIiwic3RhdHVzIiwic3RyaW5nIiwidW5kZWZpbmVkIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7O0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0lBRU1BLEs7Ozs7O0FBQ0osd0JBQW1CO0FBQUE7O0FBQUE7O0FBQ2pCO0FB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L3BhcmFnb24vZGlzdC9Nb2RhbC9pbmRleC5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG1heC1sZW4gKi9cbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUmVhY3RET00gZnJvbSAncmVhY3QtZG9tJztcbmltcG9ydCBjbGFzc05hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCB7IEZvY3VzT24gfSBmcm9tICdyZWFjdC1mb2N1cy1vbic7XG5pbXBvcnQgdGFiYmFibGUgZnJvbSAndGFiYmFibGUnO1xuXG5pbXBvcnQgeyBCdXR0b24gfSBmcm9tICcuLic7XG5pbXBvcnQgSWNvbiBmcm9tICcuLi9JY29uJztcbmltcG9ydCBuZXdJZCBmcm9tICcuLi91dGlscy9uZXdJZCc7XG5pbXBvcnQgVmFyaWFudCBmcm9tICcuLi91dGlscy9jb25zdGFudHMnO1xuXG5jbGFzcyBNb2RhbCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIGNvbnN0cnVjdG9yKHByb3BzKSB7XG4gICAgc3VwZXIocHJvcHMpO1xuXG4gICAgdGhpcy5jbG9zZSA9IHRoaXMuY2xvc2UuYmluZCh0aGlzKTtcblxuICAgIHRoaXMuaGVhZGVySWQgPSBuZXdJZCgpO1xuICAgIHRoaXMubW9kYWxCb2R5UmVmID0gUmVhY3QuY3JlYXRlUmVmKCk7XG5cbiAgICBpZiAodHlwZW9mIGRvY3VtZW50ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgdGhpcy5lbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgLy8gU2V0cyB0cnVlIGZvciBJRTExLCBmYWxzZSBvdGhlcndpc2U6IGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vYS8yMjA4MjM5Ny82NjIwNjEyXG4gICAgICB0aGlzLmlzSUUxMSA9ICEhZ2xvYmFsLk1TSW5wdXRNZXRob2RDb250ZXh0ICYmICEhZG9jdW1lbnQuZG9jdW1lbnRNb2RlO1xuICAgIH1cblxuICAgIHRoaXMuc3RhdGUgPSB7XG4gICAgICBvcGVuOiBwcm9wcy5vcGVuLFxuICAgIH07XG4gIH1cblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICBjb25zdCB7IHBhcmVudFNlbGVjdG9yIH0gPSB0aGlzLnByb3BzO1xuICAgIHRoaXMucGFyZW50RWxlbWVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IocGFyZW50U2VsZWN0b3IpO1xuICAgIGlmICh0aGlzLnBhcmVudEVsZW1lbnQgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgTW9kYWwgcmVjZWl2ZWQgaW52YWxpZCBwYXJlbnRTZWxlY3RvcjogJHtwYXJlbnRTZWxlY3Rvcn0sIG5vIG1hdGNoaW5nIGVsZW1lbnQgZm91bmRgKTtcbiAgICB9XG4gICAgdGhpcy5wYXJlbnRFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuZWwpO1xuICB9XG5cbiAgY29tcG9uZW50RGlkVXBkYXRlKHByZXZQcm9wcywgcHJldlN0YXRlKSB7XG4gICAgY29uc3QgeyBvcGVuIH0gPSB0aGlzLnByb3BzO1xuICAgIGlmIChvcGVuICE9PSBwcmV2UHJvcHMub3BlbiB8fCBvcGVuICE9PSBwcmV2U3RhdGUub3Blbikge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0L25vLWRpZC11cGRhdGUtc2V0LXN0YXRlXG4gICAgICB0aGlzLnNldFN0YXRlKHsgb3BlbiB9KTtcbiAgICB9XG4gIH1cblxuICBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICBSZWFjdERPTS51bm1vdW50Q29tcG9uZW50QXROb2RlKHRoaXMucGFyZW50RWxlbWVudCk7XG4gIH1cblxuICBnZXRWYXJpYW50SWNvbkNsYXNzTmFtZSgpIHtcbiAgICBjb25zdCB7IHZhcmlhbnQgfSA9IHRoaXMucHJvcHM7XG4gICAgbGV0IHZhcmlhbnRJY29uQ2xhc3NOYW1lO1xuXG4gICAgc3dpdGNoICh2YXJpYW50LnN0YXR1cykge1xuICAgICAgY2FzZSBWYXJpYW50LnN0YXR1cy5XQVJOSU5HOlxuICAgICAgICB2YXJpYW50SWNvbkNsYXNzTmFtZSA9IGNsYXNzTmFtZXMoXG4gICAgICAgICAgJ2ZhJyxcbiAgICAgICAgICAnZmEtZXhjbGFtYXRpb24tdHJpYW5nbGUnLFxuICAgICAgICAgICdmYS0zeCcsXG4gICAgICAgICAgYHRleHQtJHt2YXJpYW50LnN0YXR1cy50b0xvd2VyQ2FzZSgpfWAsXG4gICAgICAgICk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhcmlhbnRJY29uQ2xhc3NOYW1lO1xuICB9XG5cbiAgZ2V0VmFyaWFudEdyaWRCb2R5KGJvZHkpIHtcbiAgICBjb25zdCB7IHZhcmlhbnQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250YWluZXItZmx1aWRcIj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3dcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1tZC0xMFwiPlxuICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAge2JvZHl9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1tZC0yXCI+XG4gICAgICAgICAgICA8SWNvblxuICAgICAgICAgICAgICBpZD17bmV3SWQoYE1vZGFsLSR7dmFyaWFudC5zdGF0dXN9YCl9XG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17dGhpcy5nZXRWYXJpYW50SWNvbkNsYXNzTmFtZSgpfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9XG5cbiAgZ2V0VGFiYmFibGVCb2R5RWxlbWVudHMoKSB7XG4gICAgaWYgKHRoaXMubW9kYWxCb2R5UmVmPy5jdXJyZW50KSB7XG4gICAgICByZXR1cm4gdGFiYmFibGUodGhpcy5tb2RhbEJvZHlSZWYuY3VycmVudCk7XG4gICAgfVxuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIGlzVmFsaWRWYXJpYW50U3RhdHVzKCkge1xuICAgIGNvbnN0IHsgdmFyaWFudCB9ID0gdGhpcy5wcm9wcztcbiAgICByZXR1cm4gT2JqZWN0LnZhbHVlcyhWYXJpYW50LnN0YXR1cykuaW5jbHVkZXModmFyaWFudC5zdGF0dXMpO1xuICB9XG5cbiAgY2xvc2UoZSkge1xuICAgIGlmIChlKSB7XG4gICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH1cblxuICAgIHRoaXMuc2V0U3RhdGUoeyBvcGVuOiBmYWxzZSB9KTtcbiAgICB0aGlzLnByb3BzLm9uQ2xvc2UoKTtcbiAgfVxuXG4gIHJlbmRlckJ1dHRvbnMoKSB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMuYnV0dG9ucy5tYXAoKGJ1dHRvbikgPT4ge1xuICAgICAgLy8gYnV0dG9uIGlzIGVpdGhlciBhIFJlYWN0IGNvbXBvbmVudCB0aGF0IHdlIHdhbnQgY2xvbmUgb3IgYSBzZXQgb2YgcHJvcHNcbiAgICAgIGlmIChSZWFjdC5pc1ZhbGlkRWxlbWVudChidXR0b24pKSB7XG4gICAgICAgIHJldHVybiBSZWFjdC5jbG9uZUVsZW1lbnQoYnV0dG9uLCB7XG4gICAgICAgICAga2V5OiBidXR0b24ucHJvcHMuY2hpbGRyZW4sXG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBjb25zdCB7IGxhYmVsLCAuLi5idXR0b25Qcm9wcyB9ID0gYnV0dG9uO1xuXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8QnV0dG9uLkRlcHJlY2F0ZWRcbiAgICAgICAgICB7Li4uYnV0dG9uUHJvcHN9XG4gICAgICAgICAga2V5PXtsYWJlbH1cbiAgICAgICAgPlxuICAgICAgICAgIHtsYWJlbH1cbiAgICAgICAgPC9CdXR0b24uRGVwcmVjYXRlZD5cbiAgICAgICk7XG4gICAgfSk7XG4gIH1cblxuICByZW5kZXJCb2R5KCkge1xuICAgIGxldCB7IGJvZHkgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBpZiAodHlwZW9mIGJvZHkgPT09ICdzdHJpbmcnKSB7XG4gICAgICBib2R5ID0gPHA+e2JvZHl9PC9wPjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5pc1ZhbGlkVmFyaWFudFN0YXR1cygpKSB7XG4gICAgICBib2R5ID0gdGhpcy5nZXRWYXJpYW50R3JpZEJvZHkoYm9keSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGJvZHk7XG4gIH1cblxuICByZW5kZXJNb2RhbCgpIHtcbiAgICBjb25zdCB7IG9wZW4gfSA9IHRoaXMuc3RhdGU7XG4gICAgY29uc3Qge1xuICAgICAgZGlhbG9nQ2xhc3NOYW1lLFxuICAgICAgcmVuZGVyRGVmYXVsdENsb3NlQnV0dG9uLFxuICAgICAgcmVuZGVySGVhZGVyQ2xvc2VCdXR0b24sXG4gICAgICBidXR0b25zLFxuICAgICAgY2xvc2VUZXh0LFxuICAgICAgdGl0bGUsXG4gICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBoYXNUYWJiYWJsZUVsZW1lbnRzID0gKFxuICAgICAgcmVuZGVyRGVmYXVsdENsb3NlQnV0dG9uXG4gICAgICB8fCByZW5kZXJIZWFkZXJDbG9zZUJ1dHRvblxuICAgICAgfHwgYnV0dG9ucy5sZW5ndGggPiAwXG4gICAgICB8fCB0aGlzLmdldFRhYmJhYmxlQm9keUVsZW1lbnRzKCkubGVuZ3RoID4gMFxuICAgICk7XG4gICAgY29uc3QgcmVuZGVyTW9kYWxGb290ZXIgPSByZW5kZXJEZWZhdWx0Q2xvc2VCdXR0b24gfHwgYnV0dG9ucy5sZW5ndGggPiAwO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZXMoe1xuICAgICAgICAgICAgJ21vZGFsLWJhY2tkcm9wJzogb3BlbixcbiAgICAgICAgICAgIHNob3c6IG9wZW4sXG4gICAgICAgICAgICBmYWRlOiAhb3BlbixcbiAgICAgICAgICB9KX1cbiAgICAgICAgICByb2xlPVwicHJlc2VudGF0aW9uXCJcbiAgICAgICAgLz5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lcyhcbiAgICAgICAgICAgICdtb2RhbCcsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHNob3c6IG9wZW4sXG4gICAgICAgICAgICAgIGZhZGU6ICFvcGVuLFxuICAgICAgICAgICAgICAnZC1ibG9jayc6IG9wZW4sXG4gICAgICAgICAgICAgICdpcy1pZTExJzogdGhpcy5pc0lFMTEsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICl9XG4gICAgICAgICAgcm9sZT1cInByZXNlbnRhdGlvblwiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZXMoXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAnbW9kYWwtZGlhbG9nJzogb3BlbixcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgZGlhbG9nQ2xhc3NOYW1lLFxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIHJvbGU9XCJkaWFsb2dcIlxuICAgICAgICAgICAgYXJpYS1tb2RhbFxuICAgICAgICAgICAgYXJpYS1sYWJlbGxlZGJ5PXt0aGlzLmhlYWRlcklkfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxGb2N1c09uXG4gICAgICAgICAgICAgIGVuYWJsZWQ9e29wZW59XG4gICAgICAgICAgICAgIG9uQ2xpY2tPdXRzaWRlPXt0aGlzLmNsb3NlfVxuICAgICAgICAgICAgICBvbkVzY2FwZUtleT17dGhpcy5jbG9zZX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cIm1vZGFsLWNvbnRlbnRcIlxuICAgICAgICAgICAgICAgIC8vIGlmIHRoZSBtb2RhbCBkb2Vzbid0IGNvbnRhaW4gYW55IHRhYmJhYmxlIGVsZW1lbnRzLCBtYWtlIHRoaXMgZWxlbWVudCBwcm9ncmFtbWF0aWNhbGx5IGZvY3VzYWJsZS5cbiAgICAgICAgICAgICAgICB7Li4uKCFoYXNUYWJiYWJsZUVsZW1lbnRzID8geyB0YWJJbmRleDogLTEgfSA6IHt9KX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibW9kYWwtaGVhZGVyXCI+XG4gICAgICAgICAgICAgICAgICA8aDIgY2xhc3NOYW1lPVwibW9kYWwtdGl0bGVcIiBpZD17dGhpcy5oZWFkZXJJZH0+e3RpdGxlfTwvaDI+XG4gICAgICAgICAgICAgICAgICB7cmVuZGVySGVhZGVyQ2xvc2VCdXR0b24gJiYgKFxuICAgICAgICAgICAgICAgICAgICA8QnV0dG9uLkRlcHJlY2F0ZWRcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJwLTFcIlxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e3RoaXMuY2xvc2V9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8SWNvbiBjbGFzc05hbWU9XCJmYSBmYS10aW1lc1wiIHNjcmVlblJlYWRlclRleHQ9e2Nsb3NlVGV4dH0gLz5cbiAgICAgICAgICAgICAgICAgICAgPC9CdXR0b24uRGVwcmVjYXRlZD5cbiAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtb2RhbC1ib2R5XCIgcmVmPXt0aGlzLm1vZGFsQm9keVJlZn0+XG4gICAgICAgICAgICAgICAgICB7dGhpcy5yZW5kZXJCb2R5KCl9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAge3JlbmRlck1vZGFsRm9vdGVyICYmIChcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibW9kYWwtZm9vdGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIHtyZW5kZXJEZWZhdWx0Q2xvc2VCdXR0b24gJiYgKFxuICAgICAgICAgICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJsaW5rXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e3RoaXMuY2xvc2V9XG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAge2Nsb3NlVGV4dH1cbiAgICAgICAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAge3RoaXMucmVuZGVyQnV0dG9ucygpfVxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L0ZvY3VzT24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC8+XG4gICAgKTtcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBpZiAoIXRoaXMuZWwpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiBSZWFjdERPTS5jcmVhdGVQb3J0YWwoXG4gICAgICB0aGlzLnJlbmRlck1vZGFsKCksXG4gICAgICB0aGlzLmVsLFxuICAgICk7XG4gIH1cbn1cblxuTW9kYWwucHJvcFR5cGVzID0ge1xuICAvKiogc3BlY2lmaWVzIHdoZXRoZXIgdGhlIG1vZGFsIHJlbmRlcnMgb3BlbiBvciBjbG9zZWQgb24gdGhlIGluaXRpYWwgcmVuZGVyLiBJdCBkZWZhdWx0cyB0byBmYWxzZS4gKi9cbiAgb3BlbjogUHJvcFR5cGVzLmJvb2wsXG4gIC8qKiBpcyB0aGUgc2VsZWN0b3IgZm9yIGFuIGVsZW1lbnQgaW4gdGhlIGRvbSB3aGljaCB0aGUgbW9kYWwgc2hvdWxkIGJlIHJlbmRlcmVkIHVuZGVyLiBJdCB1c2VzIHF1ZXJ5U2VsZWN0b3IgdG8gZmluZCB0aGUgZmlyc3QgZWxlbWVudCB0aGF0IG1hdGNoZXMgdGhhdCBzZWxlY3RvciwgYW5kIHRoZW4gY3JlYXRlcyBhIHJlYWN0IHBvcnRhbCB0byBhIGRpdiB1bmRlcm5lYXRoIHRoZSBwYXJlbnQgZWxlbWVudC5cbiAqL1xuICBwYXJlbnRTZWxlY3RvcjogUHJvcFR5cGVzLnN0cmluZyxcbiAgLyoqIGEgc3RyaW5nIG9yIGFuIGVsZW1lbnQgdGhhdCBpcyByZW5kZXJlZCBpbnNpZGUgb2YgdGhlIG1vZGFsIHRpdGxlLCBhYm92ZSB0aGUgbW9kYWwgYm9keS4gKi9cbiAgdGl0bGU6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5zdHJpbmcsIFByb3BUeXBlcy5lbGVtZW50XSkuaXNSZXF1aXJlZCxcbiAgLyoqIGEgc3RyaW5nIG9yIGFuIGVsZW1lbnQgdGhhdCBpcyByZW5kZXJlZCBpbnNpZGUgb2YgdGhlIG1vZGFsIGJvZHksIGJldHdlZW4gdGhlIHRpdGxlIGFuZCB0aGUgZm9vdGVyLiAqL1xuICBib2R5OiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMuc3RyaW5nLCBQcm9wVHlwZXMuZWxlbWVudF0pLmlzUmVxdWlyZWQsXG4gIC8qKiBhbiBhcnJheSBvZiBlaXRoZXIgZWxlbWVudHMgb3Igc2hhcGVzIHRoYXQgdGFrZSB0aGUgZm9ybSBvZiB0aGUgYnV0dG9uUHJvcFR5cGVzLiBTZWUgdGhlIFtidXR0b25Qcm9wVHlwZXNdKGh0dHBzOi8vZ2l0aHViLmNvbS9lZHgvcGFyYWdvbi9ibG9iL21hc3Rlci9zcmMvQnV0dG9uL2luZGV4LmpzeCNMNDApIGZvciBhIGxpc3Qgb2YgYWNjZXB0YWJsZSBwcm9wcyB0byBwYXNzIGFzIHBhcnQgb2YgYSBidXR0b24uICovXG4gIGJ1dHRvbnM6IFByb3BUeXBlcy5hcnJheU9mKFByb3BUeXBlcy5vbmVPZlR5cGUoW1xuICAgIFByb3BUeXBlcy5lbGVtZW50LFxuICAgIFByb3BUeXBlcy5vYmplY3QsIC8vIFRPRE86IE9ubHkgYWNjZXB0IG5vZGVzIGluIHRoZSBmdXR1cmVcbiAgXSkpLFxuICAvKiogc3BlY2lmaWVzIHRoZSBkaXNwbGF5IHRleHQgb2YgdGhlIGRlZmF1bHQgQ2xvc2UgYnV0dG9uLiBJdCBkZWZhdWx0cyB0byBcIkNsb3NlXCIuICovXG4gIGNsb3NlVGV4dDogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLnN0cmluZywgUHJvcFR5cGVzLmVsZW1lbnRdKSxcbiAgLyoqIGEgZnVuY3Rpb24gdGhhdCBpcyBjYWxsZWQgb24gY2xvc2UuIEl0IGNhbiBiZSB1c2VkIHRvIHBlcmZvcm0gYWN0aW9ucyB1cG9uIGNsb3Npbmcgb2YgdGhlIG1vZGFsLCBzdWNoIGFzIHJlc3RvcmluZyBmb2N1cyB0byB0aGUgcHJldmlvdXMgbG9naWNhbCBmb2N1c2FibGUgZWxlbWVudC4gKi9cbiAgb25DbG9zZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgdmFyaWFudDogUHJvcFR5cGVzLnNoYXBlKHtcbiAgICBzdGF0dXM6IFByb3BUeXBlcy5zdHJpbmcsXG4gIH0pLFxuICAvKiogc3BlY2lmaWVzIHdoZXRoZXIgdGhlIGRlZmF1bHQgY2xvc2UgYnV0dG9uIGlzIHJlbmRlcmVkIGluIHRoZSBmb290ZXIuIEl0IGRlZmF1bHRzIHRvIHRydWUuICovXG4gIHJlbmRlckRlZmF1bHRDbG9zZUJ1dHRvbjogUHJvcFR5cGVzLmJvb2wsXG4gIC8qKiBzcGVjaWZpZXMgd2hldGhlciBhIGNsb3NlIGJ1dHRvbiBpcyByZW5kZXJlZCBpbiB0aGUgbW9kYWwgaGVhZGVyLiBJdCBkZWZhdWx0cyB0byB0cnVlLiAqL1xuICByZW5kZXJIZWFkZXJDbG9zZUJ1dHRvbjogUHJvcFR5cGVzLmJvb2wsXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgb3B0aW9uYWwgY2xhc3NlcyB0byBhZGQgdG8gdGhlIGVsZW1lbnQgd2l0aCB0aGUgJy5tb2RhbC1kaWFsb2cnIGNsYXNzLiAgU2VlIEJvb3RzdHJhcCBkb2N1bWVudGF0aW9uIGZvciBwb3NzaWJsZSBjbGFzc2VzLiAgU29tZSBvcHRpb25zOiBtb2RhbC1sZywgbW9kYWwtc20sIG1vZGFsLWRpYWxvZy1jZW50ZXJlZFxuICAgKi9cbiAgZGlhbG9nQ2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxufTtcblxuTW9kYWwuZGVmYXVsdFByb3BzID0ge1xuICBvcGVuOiBmYWxzZSxcbiAgcGFyZW50U2VsZWN0b3I6ICdib2R5JyxcbiAgYnV0dG9uczogW10sXG4gIGNsb3NlVGV4dDogJ0Nsb3NlJyxcbiAgdmFyaWFudDoge30sXG4gIHJlbmRlckRlZmF1bHRDbG9zZUJ1dHRvbjogdHJ1ZSxcbiAgcmVuZGVySGVhZGVyQ2xvc2VCdXR0b246IHRydWUsXG4gIGRpYWxvZ0NsYXNzTmFtZTogdW5kZWZpbmVkLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgTW9kYWw7XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@edx/paragon/dist/Modal/index.js\n"); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I split this into lines and diff-ed it and the only thing changed on this (huge) line is:
[buttonPropTypes](https://github.com/edx/paragon/blob/master/src/Button/index.jsx#L40)
to
[buttonPropTypes](https://github.com/openedx/paragon/blob/master/src/Button/index.jsx#L40)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🙏🏻 thank you!
This PR was autogenerated
This pr replaces the old GitHub organization, github.com/edx, with the new GitHub organization, github.com/openedx.
Tagging @openedx/tcril-engineering for review, but others are welcome to provide review.
Ref: openedx/axim-engineering#42