{"version":3,"file":"static/chunks/dropdownMenu.container.acef6c36b4c00458.js","sources":["webpack://_N_E/./src/LegacyApp/client/components/dropdown/dropdownMenu/dropdownMenuElement.jsx","webpack://_N_E/./src/LegacyApp/client/components/dropdown/dropdownMenu/dropdownMenu.jsx","webpack://_N_E/./src/LegacyApp/client/components/dropdown/dropdownMenu/dropdownMenu.container.js","webpack://_N_E/./src/LegacyApp/client/store/dropdown/dropdown.actions.js"],"sourceRoot":"","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classname from 'classnames';\nimport { isFunction } from '@common/methods/isFunction';\nimport { ClickOutsideWrapper } from '../../clickOutSideWrapper';\nimport { trans } from '../../../modules/translation/translate';\nimport { enhanceComponent } from '../../../wrappers/enhanceComponent';\nimport { DropdownElementStyled } from './DropdownElement.styled';\nimport { StyledDropdownMenu } from './dropdownMenu.styled';\n\nclass DropdownMenuElement extends React.PureComponent {\n\tstatic propTypes = {\n\t\tcontent: PropTypes.object.isRequired,\n\t\tactive: PropTypes.bool,\n\t\ttoggle: PropTypes.func,\n\t\tid: PropTypes.string,\n\t};\n\n\tconstructor(props) {\n\t\tsuper(props);\n\t\tthis.state = {\n\t\t\tstyles: {},\n\t\t\thidden: true,\n\t\t\tinitPosition: null,\n\t\t};\n\t\tthis.nav = React.createRef();\n\t}\n\n\tcomponentWillUnmount() {\n\t\tconst scrollElement = this.getScrollElement();\n\t\tif (scrollElement) {\n\t\t\tscrollElement.removeEventListener('scroll', this.onScroll);\n\t\t}\n\t\tthis.getScrollElementQuery().removeEventListener('scroll', this.onScroll);\n\t}\n\n\tcomponentDidMount() {\n\t\tthis.setState({ hidden: !this.props.active });\n\t\tconst scrollElement = this.getScrollElement();\n\t\tif (scrollElement) {\n\t\t\tscrollElement.addEventListener('scroll', this.onScroll);\n\t\t}\n\t\tthis.getScrollElementQuery().addEventListener('scroll', this.onScroll);\n\t\tthis.setStyles();\n\t}\n\n\tcomponentDidUpdate(prevProps, prevState) {\n\t\tif (this.props.active !== prevProps.active) {\n\t\t\tthis.setState((state) => ({\n\t\t\t\t...state,\n\t\t\t\thidden: !this.props.active,\n\t\t\t\tinitPosition: this.props.active ? false : state.initPosition,\n\t\t\t}));\n\t\t}\n\n\t\tif (this.state.hidden !== prevState.hidden) {\n\t\t\tthis.setStyles(true);\n\t\t}\n\t}\n\n\tgetScrollElement = () => {\n\t\tif (!this.props.content || !this.props.content.scrollElement) {\n\t\t\treturn;\n\t\t}\n\t\tif (this.props.content.scrollElement.addEventListener) {\n\t\t\treturn this.props.content.scrollElement;\n\t\t}\n\t\treturn this.getParent().parentNode;\n\t};\n\n\tgetScrollElementQuery = () => {\n\t\tif (this.isOnModal()) {\n\t\t\treturn document.querySelector('.modal-container');\n\t\t}\n\t\treturn window;\n\t};\n\n\tisOnModal = () => {\n\t\tconst parent = this.getParent();\n\t\tif (!parent) {\n\t\t\treturn false;\n\t\t}\n\t\treturn !!parent.closest('.modal');\n\t};\n\n\tsetStyles = (setInitPosition) => {\n\t\tconst styles = this.getPosition();\n\t\tif (!this.state.hidden && this.state.initPosition) {\n\t\t\tconst diff = Math.abs(this.state.initPosition - styles.top);\n\t\t\tif (diff > 50) {\n\t\t\t\treturn this.props.toggle(false);\n\t\t\t}\n\t\t}\n\t\tthis.setState((state) => ({\n\t\t\t...state,\n\t\t\tstyles,\n\t\t\tinitPosition: setInitPosition ? styles.top : state.initPosition,\n\t\t}));\n\t};\n\n\tonScroll = () => {\n\t\tif (!this.props.active) {\n\t\t\treturn;\n\t\t}\n\t\t// console.log('dropdownMenuElement', this.props.id, {e, props: this.props, state: this.state});\n\t\tthis.setStyles();\n\t};\n\n\tgetElement = (data, index) => {\n\t\tconst isString = typeof data === 'string';\n\t\tlet el = data;\n\t\tif (!isString) {\n\t\t\tel = {\n\t\t\t\t...data,\n\t\t\t};\n\t\t\tif (el.noType) {\n\t\t\t\tdelete el.noType;\n\t\t\t}\n\t\t\tif (el.noValue) {\n\t\t\t\tdelete el.noValue;\n\t\t\t}\n\t\t\tif (el.dataType) {\n\t\t\t\tdelete el.dataType;\n\t\t\t}\n\t\t\tif (el.disabled) {\n\t\t\t\tdelete el.disabled;\n\t\t\t}\n\t\t}\n\t\tlet props = {\n\t\t\tkey: isString ? el : el.id,\n\t\t\tdisabled: data.disabled,\n\t\t\tonClick: () => {\n\t\t\t\tthis.props.content.onClick(data, index);\n\t\t\t\tthis.props.toggle(false);\n\t\t\t\tthis.setState({\n\t\t\t\t\thidden: true,\n\t\t\t\t});\n\t\t\t},\n\t\t};\n\t\tif (isString) {\n\t\t\tprops.element = el;\n\t\t} else {\n\t\t\tprops = {\n\t\t\t\t...props,\n\t\t\t\t...el,\n\t\t\t};\n\t\t}\n\t\tif (el.noElementWrapper && isFunction(el.element)) {\n\t\t\treturn el.element(props);\n\t\t}\n\t\treturn (\n\t\t\t\n\t\t\t\t{typeof el === 'string'\n\t\t\t\t\t? this.props.content.trans\n\t\t\t\t\t\t? trans({ label: el })\n\t\t\t\t\t\t: el\n\t\t\t\t\t: el.element\n\t\t\t\t\t? el.element\n\t\t\t\t\t: this.props.content.trans\n\t\t\t\t\t? trans({ label: el.name })\n\t\t\t\t\t: el.name}\n\t\t\t\n\t\t);\n\t};\n\n\tgetParent = () => {\n\t\treturn document.querySelector(`[data-id=\"${this.props.id}\"]`);\n\t};\n\n\tgetPosition = () => {\n\t\tif (!this.nav || !this.nav.current) {\n\t\t\treturn {};\n\t\t}\n\t\tconst parent = this.getParent();\n\t\tif (!parent) {\n\t\t\treturn {};\n\t\t}\n\t\tconst boxBounding = parent.getBoundingClientRect();\n\t\tconst spaceUnderBox = window.innerHeight - boxBounding.bottom;\n\t\tconst spaceFromLeftBoxSide = window.innerWidth - boxBounding.left;\n\t\tconst spaceBetweenBoxAndNav = 0;\n\t\tconst isUnder =\n\t\t\tspaceUnderBox >= this.nav.current.clientHeight + spaceBetweenBoxAndNav;\n\t\tconst top = isUnder\n\t\t\t? boxBounding.bottom + spaceBetweenBoxAndNav\n\t\t\t: boxBounding.top - spaceBetweenBoxAndNav - this.nav.current.clientHeight;\n\t\tconst isRight = spaceFromLeftBoxSide >= this.nav.current.clientWidth;\n\t\tconst left = isRight\n\t\t\t? boxBounding.left\n\t\t\t: boxBounding.left -\n\t\t\t (this.nav.current.clientWidth - spaceFromLeftBoxSide);\n\t\t// if (this.props.id === 'langPicker') {\n\t\t// console.log(\n\t\t// 'setPosition',\n\t\t// {\n\t\t// appBody,\n\t\t// id: this.props.id,\n\t\t// parent,\n\t\t// nav: this.nav.current,\n\t\t// boxBounding,\n\t\t// spaceFromLeftBoxSide,\n\t\t// spaceBetweenBoxAndNav,\n\t\t// spaceUnderBox,\n\t\t// isUnder,\n\t\t// isRight,\n\t\t// top,\n\t\t// left,\n\t\t// clientHeight: appBody.clientHeight,\n\t\t// clientWidth: appBody.clientWidth,\n\t\t// }\n\t\t// );\n\t\t// }\n\t\treturn {\n\t\t\ttop,\n\t\t\tleft,\n\t\t};\n\t};\n\n\trender() {\n\t\treturn (\n\t\t\t\n\t\t\t\t\t!this.state.hidden ? this.props.toggle(false) : false\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t this.props.toggle(true)}\n\t\t\t\t\t// onTouchStart={() => this.props.toggle(!this.props.active)}\n\t\t\t\t\t// onMouseLeave={() => this.props.toggle(false)}\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\t...this.state.styles,\n\t\t\t\t\t\twidth: this.props.content.width ? this.props.content.width : 'auto',\n\t\t\t\t\t}}\n\t\t\t\t\tclassName={classname(\n\t\t\t\t\t\t'overflow-scrollbar--vertical scroll-horizontal',\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t[this.props.content.className]: this.props.content.className,\n\t\t\t\t\t\t},\n\t\t\t\t\t)}\n\t\t\t\t>\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t);\n\t}\n}\n\nDropdownMenuElement = enhanceComponent({\n\tDropdownMenuElement,\n});\n\nexport { DropdownMenuElement };\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { enhanceComponent } from '../../../wrappers/enhanceComponent';\nimport { DropdownMenuElement } from './dropdownMenuElement';\n\nclass DropdownMenu extends React.PureComponent {\n\tstatic propTypes = {\n\t\tcontent: PropTypes.object.isRequired,\n\t\tactive: PropTypes.object,\n\t\ttoggle: PropTypes.func,\n\t};\n\n\trender() {\n\t\treturn Object.keys(this.props.content).map((key) => {\n\t\t\tconst el = this.props.content[key];\n\t\t\tconst active = this.props.active[key];\n\t\t\treturn (\n\t\t\t\t this.props.toggle(key, bool)}\n\t\t\t\t/>\n\t\t\t);\n\t\t});\n\t}\n}\n\nDropdownMenu = enhanceComponent({\n\tDropdownMenu,\n});\n\nexport { DropdownMenu };\n","import { connect } from 'react-redux';\nimport {\n\tdropdownAdd,\n\tdropdownDelete,\n\tdropdownToggle,\n} from '../../../store/dropdown/dropdown.actions';\nimport { DropdownMenu } from './dropdownMenu';\n\nconst mapStateToProps = (state, props) => {\n\treturn {\n\t\tcontent:\n\t\t\tprops.content !== undefined ? props.content : state.dropdown.content,\n\t\tactive: props.active !== undefined ? props.active : state.dropdown.active,\n\t};\n};\n\nconst mapDispatchToProps = (dispatch) => {\n\treturn {\n\t\tclose: (id) => dispatch(dropdownDelete(id)),\n\t\tadd: (id, content) =>\n\t\t\tdispatch(\n\t\t\t\tdropdownAdd({\n\t\t\t\t\tid,\n\t\t\t\t\tcontent,\n\t\t\t\t}),\n\t\t\t),\n\t\ttoggle: (id, bool) =>\n\t\t\tdispatch(\n\t\t\t\tdropdownToggle({\n\t\t\t\t\tid,\n\t\t\t\t\tbool,\n\t\t\t\t}),\n\t\t\t),\n\t};\n};\n\nconst DropdownMenuContainer = connect(\n\tmapStateToProps,\n\tmapDispatchToProps,\n)(DropdownMenu);\n\nexport default DropdownMenuContainer;\n","import { actionSimple } from '../../modules/app/actionService';\nimport {\n\tDROPDOWN_ADD,\n\tDROPDOWN_DELETE,\n\tDROPDOWN_SET_ACTIVE,\n\tDROPDOWN_SET_CONTENT,\n\tDROPDOWN_TOGGLE,\n} from './dropdown.constants';\n\nexport const dropdownSetActive = actionSimple(DROPDOWN_SET_ACTIVE);\nexport const dropdownSetContent = actionSimple(DROPDOWN_SET_CONTENT);\nexport const dropdownDelete = actionSimple(DROPDOWN_DELETE);\nexport const dropdownAdd = actionSimple(DROPDOWN_ADD);\nexport const dropdownToggle = actionSimple(DROPDOWN_TOGGLE);\n\n// export const dropdownToggle = (payload) => {\n// \treturn (dispatch, getState) => {\n// \t\tconst state = getState();\n// \t\tif (!state.dropdown.content[payload.id]) return of();\n// \t\tconst active = {\n// \t\t\t...state.dropdown.active\n// \t\t};\n// \t\tconst bool =\n// \t\t\tpayload.bool === undefined\n// \t\t\t\t? !active[payload.id]\n// \t\t\t\t: payload.bool;\n// \t\tif (active[payload.id] === bool) return of();\n// \t\tif (!bool) {\n// \t\t\tdelete active[payload.id];\n// \t\t} else {\n// \t\t\tactive[payload.id] = bool;\n// \t\t}\n// \t\treturn dispatch(dropdownSetActive(active));\n// \t};\n// };\n\nexport const dropdownGet = (id) => {\n\treturn (dispatch, getState) => {\n\t\tconst state = getState();\n\t\treturn state.dropdown.content[id];\n\t};\n};\n"],"names":["DropdownMenuElement","props","content","scrollElement","addEventListener","getParent","parentNode","isOnModal","document","querySelector","window","parent","closest","setInitPosition","styles","getPosition","state","hidden","initPosition","Math","abs","top","toggle","setState","active","setStyles","data","index","isString","el","noType","noValue","dataType","disabled","key","id","onClick","element","noElementWrapper","isFunction","trans","label","name","nav","current","boxBounding","getBoundingClientRect","spaceUnderBox","innerHeight","bottom","spaceFromLeftBoxSide","innerWidth","left","clientHeight","clientWidth","React","this","getScrollElement","removeEventListener","onScroll","getScrollElementQuery","prevProps","prevState","onClickOutside","compact","visible","ref","style","width","className","classname","css","title","map","getElement","enhanceComponent","DropdownMenu","Object","keys","bool","connect","undefined","dropdown","dispatch","close","dropdownDelete","add","dropdownAdd","dropdownToggle","actionSimple","DROPDOWN_SET_ACTIVE","DROPDOWN_SET_CONTENT","DROPDOWN_DELETE","DROPDOWN_ADD","DROPDOWN_TOGGLE","dropdownGet","getState"],"mappings":";;s+CAUMA,EAAAA,SAAAA,I,uBAQL,WAAYC,GAAO,4BAClB,cAAMA,IADY,sCA0CA,WAClB,GAAK,EAAKA,MAAMC,SAAY,EAAKD,MAAMC,QAAQC,cAG/C,OAAI,EAAKF,MAAMC,QAAQC,cAAcC,iBAC7B,EAAKH,MAAMC,QAAQC,cAEpB,EAAKE,YAAYC,eAjDN,2CAoDK,WACvB,OAAI,EAAKC,YACDC,SAASC,cAAc,oBAExBC,WAxDW,+BA2DP,WACX,IAAMC,EAAS,EAAKN,YACpB,QAAKM,KAGIA,EAAOC,QAAQ,cAhEN,+BAmEP,SAACC,GACZ,IAAMC,EAAS,EAAKC,cACpB,IAAK,EAAKC,MAAMC,QAAU,EAAKD,MAAME,cACvBC,KAAKC,IAAI,EAAKJ,MAAME,aAAeJ,EAAOO,KAC5C,GACV,OAAO,EAAKpB,MAAMqB,QAAO,GAG3B,EAAKC,UAAS,SAACP,GAAD,cACVA,GADU,IAEbF,OAAAA,EACAI,aAAcL,EAAkBC,EAAOO,IAAML,EAAME,sBA9ElC,8BAkFR,WACL,EAAKjB,MAAMuB,QAIhB,EAAKC,gBAvFa,gCA0FN,SAACC,EAAMC,GACnB,IAAMC,EAA2B,kBAATF,EACpBG,EAAKH,EACJE,KACJC,EAAK,EAAH,GACEH,IAEGI,eACCD,EAAGC,OAEPD,EAAGE,gBACCF,EAAGE,QAEPF,EAAGG,iBACCH,EAAGG,SAEPH,EAAGI,iBACCJ,EAAGI,UAGZ,IAAIhC,EAAQ,CACXiC,IAAKN,EAAWC,EAAKA,EAAGM,GACxBF,SAAUP,EAAKO,SACfG,QAAS,WACR,EAAKnC,MAAMC,QAAQkC,QAAQV,EAAMC,GACjC,EAAK1B,MAAMqB,QAAO,GAClB,EAAKC,SAAS,CACbN,QAAQ,MAYX,OARIW,EACH3B,EAAMoC,QAAUR,EAEhB5B,EAAQ,EAAH,KACDA,GACA4B,GAGDA,EAAGS,mBAAoBC,EAAAA,EAAAA,GAAWV,EAAGQ,SACjCR,EAAGQ,QAAQpC,IAGlB,SAAC,IAAD,OAA2BA,GAA3B,IAAkC,mBAAkB,EAAKA,MAAMkC,GAA/D,SACgB,kBAAPN,EACL,EAAK5B,MAAMC,QAAQsC,OAClBA,EAAAA,EAAAA,IAAM,CAAEC,MAAOZ,IACfA,EACDA,EAAGQ,QACHR,EAAGQ,QACH,EAAKpC,MAAMC,QAAQsC,OACnBA,EAAAA,EAAAA,IAAM,CAAEC,MAAOZ,EAAGa,OAClBb,EAAGa,YA9IU,+BAmJP,WACX,OAAOlC,SAASC,cAAT,oBAAoC,EAAKR,MAAMkC,GAA/C,WApJW,iCAuJL,WACb,IAAK,EAAKQ,MAAQ,EAAKA,IAAIC,QAC1B,MAAO,GAER,IAAMjC,EAAS,EAAKN,YACpB,IAAKM,EACJ,MAAO,GAER,IAAMkC,EAAclC,EAAOmC,wBACrBC,EAAgBrC,OAAOsC,YAAcH,EAAYI,OACjDC,EAAuBxC,OAAOyC,WAAaN,EAAYO,KAiC7D,MAAO,CACN/B,IA/BA0B,GAAiB,EAAKJ,IAAIC,QAAQS,aAFL,EAI3BR,EAAYI,OAJe,EAK3BJ,EAAYxB,IALe,EAKe,EAAKsB,IAAIC,QAAQS,aA6B7DD,KA5BeF,GAAwB,EAAKP,IAAIC,QAAQU,YAEtDT,EAAYO,KACZP,EAAYO,MACX,EAAKT,IAAIC,QAAQU,YAAcJ,OA1KnC,EAAKlC,MAAQ,CACZF,OAAQ,GACRG,QAAQ,EACRC,aAAc,MAEf,EAAKyB,IAAMY,EAAAA,YAPO,E,mDAUnB,WACC,IAAMpD,EAAgBqD,KAAKC,mBACvBtD,GACHA,EAAcuD,oBAAoB,SAAUF,KAAKG,UAElDH,KAAKI,wBAAwBF,oBAAoB,SAAUF,KAAKG,Y,+BAGjE,WACCH,KAAKjC,SAAS,CAAEN,QAASuC,KAAKvD,MAAMuB,SACpC,IAAMrB,EAAgBqD,KAAKC,mBACvBtD,GACHA,EAAcC,iBAAiB,SAAUoD,KAAKG,UAE/CH,KAAKI,wBAAwBxD,iBAAiB,SAAUoD,KAAKG,UAC7DH,KAAK/B,c,gCAGN,SAAmBoC,EAAWC,GAAW,WACpCN,KAAKvD,MAAMuB,SAAWqC,EAAUrC,QACnCgC,KAAKjC,UAAS,SAACP,GAAD,cACVA,GADU,IAEbC,QAAS,EAAKhB,MAAMuB,OACpBN,cAAc,EAAKjB,MAAMuB,QAAiBR,EAAME,kBAI9CsC,KAAKxC,MAAMC,SAAW6C,EAAU7C,QACnCuC,KAAK/B,WAAU,K,oBAkKjB,WAAS,WACR,OACC,SAAC,IAAD,CACCsC,eAAgB,kBACd,EAAK/C,MAAMC,QAAS,EAAKhB,MAAMqB,QAAO,IAFzC,UAKC,YAEC0C,SAAO,EACPC,SAAUT,KAAKxC,MAAMC,OACrBiD,IAAKV,KAAKb,IACV,UAASa,KAAKvD,MAAMkC,GAIpBgC,MAAK,OACDX,KAAKxC,MAAMF,QADV,IAEJsD,MAAOZ,KAAKvD,MAAMC,QAAQkE,MAAQZ,KAAKvD,MAAMC,QAAQkE,MAAQ,SAE9DC,UAAWC,IACV,kDADmB,UAGjBd,KAAKvD,MAAMC,QAAQmE,UAAYb,KAAKvD,MAAMC,QAAQmE,YAhBtD,KACMb,KAAKvD,MAAMC,QAAQqE,IADzB,UAoBC,6BACIf,KAAKvD,MAAMC,QAAQsE,QACrB,cAAGH,UAAU,yEAAb,SACEb,KAAKvD,MAAMC,QAAQsE,QAGrBhB,KAAKvD,MAAMC,QAAQA,SACnBsD,KAAKvD,MAAMC,QAAQA,QAAQuE,IAAIjB,KAAKkB,uB,EAlPrC1E,CAA4BuD,EAAAA,e,0bA0PlCvD,GAAsB2E,EAAAA,EAAAA,GAAiB,CACtC3E,oBAAAA,I,IChQK4E,EAAAA,SAAAA,I,uHAOL,WAAS,WACR,OAAOC,OAAOC,KAAKtB,KAAKvD,MAAMC,SAASuE,KAAI,SAACvC,GAC3C,IAAML,EAAK,EAAK5B,MAAMC,QAAQgC,GACxBV,EAAS,EAAKvB,MAAMuB,OAAOU,GACjC,OACC,SAAClC,EAAD,CAECE,QAAS2B,EACTL,OAAQA,EACRW,GAAID,EACJZ,OAAQ,SAACyD,GAAD,OAAU,EAAK9E,MAAMqB,OAAOY,EAAK6C,KAJpC7C,U,EAbJ0C,CAAqBrB,EAAAA,eAwB3BqB,GAAeD,EAAAA,EAAAA,GAAiB,CAC/BC,aAAAA,ICtBD,IAiCA,GAL8BI,EAAAA,EAAAA,KA5BN,SAAChE,EAAOf,GAC/B,MAAO,CACNC,aACmB+E,IAAlBhF,EAAMC,QAAwBD,EAAMC,QAAUc,EAAMkE,SAAShF,QAC9DsB,YAAyByD,IAAjBhF,EAAMuB,OAAuBvB,EAAMuB,OAASR,EAAMkE,SAAS1D,WAI1C,SAAC2D,GAC3B,MAAO,CACNC,MAAO,SAACjD,GAAD,OAAQgD,GAASE,EAAAA,EAAAA,IAAelD,KACvCmD,IAAK,SAACnD,EAAIjC,GAAL,OACJiF,GACCI,EAAAA,EAAAA,IAAY,CACXpD,GAAAA,EACAjC,QAAAA,MAGHoB,OAAQ,SAACa,EAAI4C,GAAL,OACPI,GACCK,EAAAA,EAAAA,IAAe,CACdrD,GAAAA,EACA4C,KAAAA,SAMyBC,CAG5BJ,I,uJC5BWS,IAFoBI,EAAAA,EAAAA,GAAaC,EAAAA,KACZD,EAAAA,EAAAA,GAAaE,EAAAA,KACjBF,EAAAA,EAAAA,GAAaG,EAAAA,KAC9BL,GAAcE,EAAAA,EAAAA,GAAaI,EAAAA,IAC3BL,GAAiBC,EAAAA,EAAAA,GAAaK,EAAAA,IAuB9BC,EAAc,SAAC5D,GAC3B,OAAO,SAACgD,EAAUa,GAEjB,OADcA,IACDd,SAAShF,QAAQiC","debug_id":"84349fd3-46c3-55c6-b213-bbffe376480c"}