{"version":3,"file":"static/chunks/40381.31c1223d086d210c.js","sources":["webpack://_N_E/./src/LegacyApp/client/components/tooltip/tooltip.jsx"],"sourceRoot":"","sourcesContent":["import 'tippy.js/dist/tippy.css';\n\nimport React, { Children } from 'react';\nimport PropTypes from 'prop-types';\nimport Tippy from '@tippyjs/react';\nimport { connect } from 'react-redux';\nimport ResizeObserver from 'resize-observer-polyfill';\nimport classnames from 'classnames';\n\nimport { isFunction } from '@common/methods/isFunction';\nimport { trans } from '@legacyApp/client/modules/translation/translate';\nimport { enhanceComponent } from '@legacyApp/client/wrappers/enhanceComponent';\n\nTippy.defaultProps = {\n\t...Tippy.defaultProps,\n\tarrow: true,\n};\n\nclass ChildrenWithInstance extends React.PureComponent {\n\tstatic propTypes = {\n\t\tchildren: PropTypes.any,\n\t\tinstance: PropTypes.any,\n\t};\n\n\trender() {\n\t\treturn Children.map(this.props.children, (child) => {\n\t\t\t// console.log({child, instance: this.props.instance});\n\t\t\treturn React.cloneElement(child, {\n\t\t\t\ttippyinstance: this.props.instance,\n\t\t\t\t...child.props,\n\t\t\t});\n\t\t});\n\t}\n}\n\nclass Tooltip extends React.PureComponent {\n\tstatic propTypes = {\n\t\tlocalTheme: PropTypes.any,\n\t\tcontent: PropTypes.any,\n\t\tisVisible: PropTypes.any,\n\t\tvisible: PropTypes.any,\n\t\tenabled: PropTypes.bool,\n\t\thideOnClick: PropTypes.any,\n\t\tchildren: PropTypes.any,\n\t\tpassInstance: PropTypes.bool,\n\t\thandleComponentError: PropTypes.func,\n\t\tmodal: PropTypes.any,\n\t\tonModal: PropTypes.bool,\n\t\tdispatch: PropTypes.func,\n\t\tmobile: PropTypes.bool,\n\t\tmobileEnable: PropTypes.bool,\n\t\tnamespace: PropTypes.string,\n\t\tchatVisible: PropTypes.bool,\n\t\tsideMenuVisible: PropTypes.bool,\n\t\tzIndex: PropTypes.number,\n\t\tclassName: PropTypes.string,\n\t\tcloseOnScrollElemClass: PropTypes.string,\n\t};\n\n\tconstructor(props) {\n\t\tsuper(props);\n\t\tthis.state = {\n\t\t\tinstance: '',\n\t\t\tforceHide: false,\n\t\t};\n\t\tthis.modalResizeObserver =\n\t\t\tprocess.browser && ResizeObserver\n\t\t\t\t? new ResizeObserver(() => {\n\t\t\t\t\t\tthis.popperForceUpdate();\n\t\t\t\t })\n\t\t\t\t: null;\n\t\tthis.strategy = React.createRef();\n\t\tthis.element = React.createRef();\n\t}\n\n\tcomponentDidMount() {\n\t\tthis.setForceHide();\n\t\tthis.setOnModalResize();\n\t\tthis.closeOnScrollEventAdd();\n\t}\n\n\tcomponentWillUnmount() {\n\t\tconst modalElement = this.getModalElement();\n\t\tif (modalElement && isFunction(this.modalResizeObserver?.unobserve)) {\n\t\t\tthis.modalResizeObserver.unobserve(modalElement);\n\t\t}\n\n\t\tthis.closeOnScrollEventRemove();\n\t}\n\n\tsetInstance = (instance) => {\n\t\tthis.setState({\n\t\t\tinstance,\n\t\t});\n\t};\n\n\tcomponentDidUpdate(prevProps) {\n\t\tif (\n\t\t\tprevProps.modal !== this.props.modal ||\n\t\t\tprevProps.mobile !== this.props.mobile ||\n\t\t\tprevProps.chatVisible !== this.props.chatVisible ||\n\t\t\tprevProps.sideMenuVisible !== this.props.sideMenuVisible\n\t\t) {\n\t\t\tthis.popperForceUpdate();\n\t\t\tthis.setForceHide();\n\t\t}\n\n\t\tif (\n\t\t\tprevProps.content !== this.props.content ||\n\t\t\t!!prevProps.visible !== !!this.props.visible\n\t\t) {\n\t\t\tthis.setOnModalResize();\n\t\t}\n\t}\n\n\tisOnModal = () => {\n\t\treturn typeof this.props.onModal === 'boolean'\n\t\t\t? this.props.onModal\n\t\t\t: this.getModalElement();\n\t};\n\n\tgetModalElement = () => {\n\t\treturn this.element.current ? this.element.current.closest('.modal') : null;\n\t};\n\n\tpopperForceUpdate = () => {\n\t\tsetTimeout(() => {\n\t\t\tif (isFunction(this.state.instance?.popperInstance?.forceUpdate)) {\n\t\t\t\tthis.state.instance.popperInstance.forceUpdate();\n\t\t\t}\n\t\t}, 300);\n\t};\n\n\tsetOnModalResize = () => {\n\t\tconst modalElement = this.getModalElement();\n\t\tif (modalElement && isFunction(this.modalResizeObserver?.observe)) {\n\t\t\tthis.modalResizeObserver.observe(modalElement);\n\t\t}\n\t};\n\n\tsetForceHide = () => {\n\t\tconst onModal = this.isOnModal();\n\t\tthis.setState({\n\t\t\tforceHide:\n\t\t\t\t(this.props.modal && !onModal) ||\n\t\t\t\t(!onModal &&\n\t\t\t\t\tthis.props.mobile &&\n\t\t\t\t\t(this.props.chatVisible || this.props.sideMenuVisible)),\n\t\t});\n\t};\n\n\tonShown = () => {\n\t\tconst input = this.element?.current?.querySelector?.('input');\n\t\tif (!input) {\n\t\t\treturn;\n\t\t}\n\t\tconst isInputFocus = document.activeElement === input;\n\t\tif (!isInputFocus) {\n\t\t\tinput.focus();\n\t\t}\n\t};\n\n\tcloseOnScroll = () => {\n\t\tif (this.state.instance.state.isVisible) {\n\t\t\tthis.state.instance.hide();\n\t\t}\n\t};\n\n\tcloseOnScrollEventAdd = () => {\n\t\tif (!this.props.closeOnScrollElemClass) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst elem = document.querySelector(\n\t\t\t`.${this.props.closeOnScrollElemClass}`,\n\t\t);\n\n\t\telem?.addEventListener('scroll', this.closeOnScroll, false);\n\t};\n\n\tcloseOnScrollEventRemove = () => {\n\t\tif (!this.props.closeOnScrollElemClass) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst elem = document.querySelector(\n\t\t\t`.${this.props.closeOnScrollElemClass}`,\n\t\t);\n\n\t\telem?.removeEventListener('scroll', this.closeOnScroll, false);\n\t};\n\n\trender() {\n\t\tconst {\n\t\t\tchildren,\n\t\t\tpassInstance,\n\t\t\tlocalTheme,\n\t\t\tnamespace,\n\t\t\tclassName,\n\t\t\t...props\n\t\t} = this.props;\n\n\t\tdelete props.handleComponentError;\n\t\tdelete props.modal;\n\t\tdelete props.className;\n\t\tdelete props.dispatch;\n\t\tdelete props.onModal;\n\t\tdelete props.mobile;\n\t\tdelete props.mobileEnable;\n\t\tdelete props.chatVisible;\n\t\tdelete props.sideMenuVisible;\n\t\tdelete props.closeOnScrollElemClass;\n\n\t\tif (!children) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (!props.content || typeof props.content === 'boolean') {\n\t\t\treturn children;\n\t\t}\n\n\t\tif (\n\t\t\t(props.content &&\n\t\t\t\ttypeof props.content === 'object' &&\n\t\t\t\t('message' in props.content || 'values' in props.content)) ||\n\t\t\tnamespace\n\t\t) {\n\t\t\tprops.content = trans({ label: props.content, namespace });\n\t\t}\n\n\t\tconst content = (\n\t\t\t
\n\t\t\t\t{passInstance && (\n\t\t\t\t\t\n\t\t\t\t\t\t{children}\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t\t{!passInstance && children}\n\t\t\t
\n\t\t);\n\n\t\tif (\n\t\t\tthis.state.forceHide ||\n\t\t\t(this.props.mobile &&\n\t\t\t\tthis.props.localTheme !== 'error' &&\n\t\t\t\t!this.props.mobileEnable &&\n\t\t\t\t!passInstance)\n\t\t) {\n\t\t\treturn content;\n\t\t}\n\n\t\treturn (\n\t\t\t\n\t\t\t\t{content}\n\t\t\t\n\t\t);\n\t}\n}\n\nTooltip = enhanceComponent({\n\tTooltip,\n});\n\nconst mapStateToProps = (state) => {\n\treturn {\n\t\tmodal: !!state.modal?.id,\n\t\tmobile: state.app.mobile,\n\t\t// TODO: chat store usage\n\t\tchatVisible: state?.chat?.visible,\n\t\tsideMenuVisible: state?.app?.isSideMenuVisible,\n\t};\n};\n//\n// const mapDispatchToProps = (dispatch) => {\n// return {\n// };\n// };\n\nTooltip = connect(mapStateToProps, null)(Tooltip);\n\nexport default Tooltip;\n"],"names":["Tippy","arrow","ChildrenWithInstance","Children","this","props","children","child","React","tippyinstance","instance","Tooltip","setState","onModal","getModalElement","element","current","closest","setTimeout","isFunction","state","popperInstance","forceUpdate","modalElement","modalResizeObserver","observe","isOnModal","forceHide","modal","mobile","chatVisible","sideMenuVisible","input","querySelector","document","activeElement","focus","isVisible","hide","closeOnScrollElemClass","elem","addEventListener","closeOnScroll","removeEventListener","ResizeObserver","popperForceUpdate","strategy","setForceHide","setOnModalResize","closeOnScrollEventAdd","unobserve","closeOnScrollEventRemove","prevProps","content","visible","passInstance","localTheme","namespace","className","handleComponentError","dispatch","mobileEnable","trans","label","onMouseEnter","ref","interactive","zIndex","classnames","onShown","onCreate","setInstance","theme","enhanceComponent","connect","id","app","chat","isSideMenuVisible"],"mappings":"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","debug_id":"5ce1e306-b670-5e7e-959b-4448065439cd"}