{"version":3,"file":"Modal.bundle.js","sources":["../../../Static/src/react/components/modal/Modal.jsx"],"sourcesContent":["import React, {Component, createRef} from 'react';\r\nimport * as settings from \"../search/settings\";\r\n\r\nexport default class Modal extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.modalContentRef = createRef();\r\n\r\n this.state = {\r\n isActive: this.props.isActive,\r\n data: this.props.modalContent,\r\n hasScrollbar: this.props.hasScrollbar != null ? this.props.hasScrollbar : true\r\n };\r\n\r\n this.closeModal = this.closeModal.bind(this);\r\n this.updateScrollbar = this.updateScrollbar.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n if(this.state.hasScrollbar) {\r\n // Add a custom scrollbar for modal content\r\n this.scrollbar = new PerfectScrollbar(\r\n this.modalContentRef.current,\r\n settings.scrollbarOptions\r\n );\r\n }\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n if(this.state.hasScrollbar) {\r\n this.updateScrollbar();\r\n }\r\n\r\n // Allow for setting modal visibility from parent component\r\n if(prevProps.isActive !== this.props.isActive\r\n && this.props.isActive !== this.state.isActive) {\r\n this.setState({\r\n isActive: this.props.isActive,\r\n });\r\n }\r\n }\r\n\r\n closeModal() {\r\n this.setState({\r\n isActive: false,\r\n });\r\n\r\n // Send feedback to parent if needed\r\n if(this.props.setModalActive) {\r\n this.props.setModalActive(false);\r\n }\r\n\r\n this.props.onCloseCallback ? this.props.onCloseCallback() : null;\r\n }\r\n\r\n updateScrollbar() {\r\n this.scrollbar.element.scrollTop = 0;\r\n this.scrollbar.update();\r\n }\r\n\r\n render() {\r\n let modalContent;\r\n\r\n if(this.props.modalContent) {\r\n modalContent = this.props.modalContent;\r\n } else {\r\n modalContent = (\r\n