{"version":3,"file":"Dropdown-DDADPd8G-chunk.js","sources":["../../../src/components/utility/images/ImageArrowUp.jsx","../../../src/utils/objects.js","../../../src/components/utility/dropdown/Dropdown.jsx"],"sourcesContent":["import React from \"react\";\n\nconst ImageArrowUp = ({ className = \"\" }) => {\n\treturn (\n\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default ImageArrowUp;\n","export const areObjectsEqual = function (a, b) {\n\tif (typeof a === \"undefined\" || typeof b === \"undefined\") {\n\t\treturn true;\n\t} else if (a === null && b === null) {\n\t\treturn true;\n\t} else if (a === null || b === null) {\n\t\treturn false;\n\t} else if (typeof a !== typeof b) {\n\t\treturn false;\n\t}\n\n\tconst aProps = Object.getOwnPropertyNames(a);\n\tconst bProps = Object.getOwnPropertyNames(b);\n\n\tif (aProps.length !== bProps.length) {\n\t\treturn false;\n\t}\n\n\tfor (let i = 0; i < aProps.length; i++) {\n\t\tconst propName = aProps[i];\n\t\tif (a[propName] !== b[propName]) {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\treturn true;\n};\n","import React, { Component } from \"react\";\nimport PropTypes from \"prop-types\";\nimport ImageArrow from \"components/utility/images/ImageArrow\";\nimport ImageArrowUp from \"components/utility/images/ImageArrowUp\";\nimport { Scrollbars } from \"react-custom-scrollbars-2\";\nimport { sanitizeHtml } from \"utils/sanitizeHtml\";\nimport { areObjectsEqual } from \"utils/objects\";\nimport { isDescendant } from \"utils/dom\";\n\nclass Dropdown extends Component {\n\tstatic defaultProps = {\n\t\titemHeight: 45,\n\t\tmobileAutoHeightMax: \"calc(100vh - 13.75rem)\",\n\t\tautoHeightMax: \"12.65rem\",\n\t\tembedded: false,\n\t\tinitDropped: false,\n\t\tmaxLength: 40,\n\t\tmaxLengthMobile: 20,\n\t\tonOpen: () => {},\n\t\tonClose: () => {}\n\t};\n\n\tstatic propTypes = {\n\t\titemHeight: PropTypes.number,\n\t\tmobileAutoHeightMax: PropTypes.string,\n\t\tautoHeightMax: PropTypes.string,\n\t\tname: PropTypes.string,\n\t\tlabel: PropTypes.string,\n\t\titems: PropTypes.arrayOf(PropTypes.object).isRequired,\n\t\tcurrentItem: PropTypes.object,\n\t\tclassName: PropTypes.string,\n\t\tshowFilter: PropTypes.bool,\n\t\tscrollbarStyle: PropTypes.object,\n\t\tinitDropped: PropTypes.bool,\n\t\tonOpen: PropTypes.func,\n\t\tonKeyArrows: PropTypes.func,\n\t\tonClose: PropTypes.func,\n\t\tsmallMatchesMobileView: PropTypes.bool, // For use when mobile & tablet experience should be the same\n\t\tdataQASelect: PropTypes.string,\n\t\tdataQADropdownList: PropTypes.string\n\t};\n\n\tconstructor(props) {\n\t\tsuper(props);\n\t\tthis.dropdown = React.createRef();\n\t\tthis.placeholder = React.createRef();\n\t\tthis.list = React.createRef();\n\t\tthis.scrollbar = React.createRef();\n\t\tthis.focusEvent = false;\n\t\tthis.filterTextTimeout = null;\n\n\t\tlet currentIndex = null;\n\t\tif (props.currentItem && props.items && props.items.length) {\n\t\t\tprops.items.forEach((item, key) => {\n\t\t\t\tif (item.key === props.currentItem.key) {\n\t\t\t\t\tcurrentIndex = key;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tthis.state = {\n\t\t\tisMobile: false,\n\t\t\tdropped: props.initDropped,\n\t\t\tcurrentItem: props.currentItem ? props.currentItem : null,\n\t\t\titems: props.items ? props.items : null,\n\t\t\tfilterText: \"\",\n\t\t\tcurrentIndex: currentIndex,\n\t\t\tisTouchDevice: false,\n\t\t\topenedByFocus: false,\n\t\t\taccessibilitySelect: null,\n\t\t\thoverCurrentItem: props.currentItem ? props.currentItem : null,\n\t\t\tisHover: false\n\t\t};\n\t}\n\n\tcomponentDidMount() {\n\t\tif (!this.props.label && !this.state.currentItem) {\n\t\t\tthis.onSelected(this.state.items[0]);\n\t\t}\n\t\tdocument.addEventListener(\"mousedown\", this.handleClickOutside);\n\t\tdocument.addEventListener(\"touchstart\", this.onTouchStart);\n\t\twindow.addEventListener(\"resize\", this.onResize);\n\t\tthis.onResize();\n\t}\n\n\t/**\n\t *\n\t * @param {*} event\n\t * on mobile, the country select gets removed from the modal and appended to the body tag\n\t * causing this function to run instead of the onClick of the country button that was selected\n\t * checking the event target classes forces the onClick of the country button to run\n\t */\n\thandleClickOutside = (event) => {\n\t\tconst mobileDropdownClasses = [\n\t\t\t\"dfa-dropdown-item\",\n\t\t\t\"dfa-dropdown-item-content\",\n\t\t\t\"dfa-dropdown-item-content-caption\"\n\t\t];\n\t\tconst elClicked = event.target.classList;\n\t\tif (this.state.dropped) {\n\t\t\tif (\n\t\t\t\tthis.state.isMobile &&\n\t\t\t\tmobileDropdownClasses.some((elClass) => elClicked.contains(elClass))\n\t\t\t) {\n\t\t\t\tlet itemCaption = \"\";\n\t\t\t\tif (event.target.classList.contains(\"dfa-dropdown-item\")) {\n\t\t\t\t\titemCaption = event.target.getAttribute(\"aria-label\");\n\t\t\t\t}\n\t\t\t\tif (event.target.classList.contains(\"dfa-dropdown-item-content\")) {\n\t\t\t\t\titemCaption = event.target.parentNode.getAttribute(\"aria-label\");\n\t\t\t\t}\n\t\t\t\tif (event.target.classList.contains(\"dfa-dropdown-item-content-caption\")) {\n\t\t\t\t\titemCaption = event.target.parentNode.parentNode.getAttribute(\"aria-label\");\n\t\t\t\t}\n\t\t\t\tthis.onSelected(...this.state.items.filter((item) => item.caption === itemCaption));\n\t\t\t} else if (this.state.isMobile && !isDescendant(this.list.current, event.target)) {\n\t\t\t\tthis.handleDropdown();\n\t\t\t} else if (!this.state.isMobile && !isDescendant(this.dropdown.current, event.target)) {\n\t\t\t\tthis.handleDropdown();\n\t\t\t}\n\t\t}\n\t\tif (\n\t\t\t!this.state.dropped &&\n\t\t\tthis.state.isMobile &&\n\t\t\tevent.target.classList.contains(\"ReactModal__Overlay\")\n\t\t) {\n\t\t\tthis.props.onClose(null, this.state.isMobile);\n\t\t}\n\t};\n\n\tonTouchStart = () => {\n\t\tif (!this.state.isTouchDevice) {\n\t\t\tthis.setState({ isTouchDevice: true });\n\t\t}\n\t};\n\n\tcomponentDidUpdate(prevProps, prevState) {\n\t\tconst newState = JSON.parse(JSON.stringify(this.state));\n\t\tlet setState = false;\n\t\tif (prevState.dropped && !this.state.dropped) {\n\t\t\tnewState.filterText = \"\";\n\t\t\tsetState = true;\n\t\t} else if (\n\t\t\tprevProps.items !== this.props.items ||\n\t\t\t(prevProps.items && this.props.items && prevProps.items.length !== this.props.items.length)\n\t\t) {\n\t\t\tnewState.filterText = \"\";\n\t\t\tsetState = true;\n\t\t}\n\n\t\tif (\n\t\t\t!prevState.dropped &&\n\t\t\tthis.state.dropped &&\n\t\t\tprevState.currentIndex >= 0 &&\n\t\t\tthis.state.currentIndex === null\n\t\t) {\n\t\t\tconst { scrollbar } = this.refs;\n\t\t\tscrollbar.scrollTop(0);\n\t\t}\n\n\t\tif (\n\t\t\t!areObjectsEqual(prevProps.currentItem, this.props.currentItem) &&\n\t\t\tthis.state.items &&\n\t\t\tthis.state.items.length\n\t\t) {\n\t\t\tlet currentItem = null,\n\t\t\t\tcurrentIndex = null;\n\t\t\tthis.state.items.forEach((item, key) => {\n\t\t\t\tif (this.props.currentItem && item.key === this.props.currentItem.key) {\n\t\t\t\t\tcurrentItem = this.props.currentItem;\n\t\t\t\t\tcurrentIndex = key;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tnewState.currentItem = currentItem;\n\t\t\tnewState.currentIndex = currentIndex;\n\t\t\tsetState = true;\n\t\t}\n\n\t\tif (this.state.filterText.length - prevState.filterText.length > 2 && newState.items.length) {\n\t\t\tnewState.currentItem = JSON.parse(JSON.stringify(newState.items[0]));\n\t\t\tnewState.filterText = \"\";\n\t\t\tnewState.dropped = false;\n\t\t\tsetState = true;\n\t\t\tthis.props.onSelected(newState.currentItem);\n\t\t}\n\n\t\tif (setState) {\n\t\t\tthis.setState(newState);\n\t\t}\n\t}\n\n\tshouldComponentUpdate(nextProps, nextState) {\n\t\tif (\n\t\t\tnextProps.topLabel !== this.props.topLabel ||\n\t\t\tnextState.dropped !== this.state.dropped ||\n\t\t\tnextProps.error !== this.props.error ||\n\t\t\tnextState.filterText !== this.state.filterText ||\n\t\t\t!areObjectsEqual(nextProps.currentItem, this.props.currentItem) ||\n\t\t\t!areObjectsEqual(nextState.currentItem, this.state.currentItem) ||\n\t\t\tnextProps.items !== this.props.items ||\n\t\t\t(nextProps.items && this.props.items && nextProps.items.length !== this.props.items.length) ||\n\t\t\tnextState.currentIndex !== this.state.currentIndex\n\t\t) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tstatic getDerivedStateFromProps(props, state) {\n\t\tif (\n\t\t\tprops.items &&\n\t\t\tprops.items.length &&\n\t\t\tstate.items &&\n\t\t\tstate.items.length &&\n\t\t\tprops.items[0].key !== state.items[0].key\n\t\t) {\n\t\t\treturn {\n\t\t\t\titems: props.items,\n\t\t\t\tcurrentItem: null,\n\t\t\t\tcurrentIndex: null\n\t\t\t};\n\t\t}\n\t\treturn null;\n\t}\n\n\tcomponentWillUnmount() {\n\t\twindow.removeEventListener(\"resize\", this.onResize);\n\t\tdocument.removeEventListener(\"mousedown\", this.handleClickOutside);\n\t\tdocument.removeEventListener(\"touchstart\", this.onTouchStart);\n\t\tdocument.removeEventListener(\"keydown\", this.onItemKeyDown);\n\t}\n\n\tonResize = () => {\n\t\tconst { embedded, initDropped, smallMatchesMobileView } = this.props;\n\t\tconst mobileViewBreakpoint = smallMatchesMobileView ? 1023 : 767;\n\t\tconst isMobile = window.innerWidth <= mobileViewBreakpoint;\n\t\tconst dropdownLists = document.querySelectorAll(\".dfa-dropdown\");\n\n\t\tdropdownLists.forEach((dropdown) => {\n\t\t\tdropdown.popover = isMobile ? \"manual\" : null;\n\t\t\tif (dropdown.popover) {\n\t\t\t\tdropdown.togglePopover(false);\n\t\t\t}\n\t\t});\n\t\tif (embedded) {\n\t\t\tthis.setState({\n\t\t\t\tisMobile,\n\t\t\t\tdropped: isMobile && initDropped\n\t\t\t});\n\t\t} else {\n\t\t\tthis.setState({ dropped: false });\n\t\t\tif (isMobile && this.list.current) {\n\t\t\t\tthis.setState({ isMobile: true });\n\t\t\t} else {\n\t\t\t\tif (this.placeholder && this.placeholder.current) {\n\t\t\t\t\tthis.placeholder.current.insertBefore(this.list.current, null);\n\n\t\t\t\t\tthis.setState({ isMobile: false });\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n\thandleDropdown = (byFocus, item = null) => {\n\t\tconst { dropped, droppedByFocus } = this.state;\n\t\tconst { name, onOpen, onClose } = this.props;\n\t\tconst currentItem = item ? item : this.state.currentItem ? this.state.currentItem : null;\n\t\tconst newState = {};\n\t\tconst focusables = document.querySelectorAll(\n\t\t\t`select:not(#dfa-dropdown-filter-input-${name}), input, button:not(.dfa-dropdown-item), a`\n\t\t);\n\t\tif (dropped) {\n\t\t\tif (\n\t\t\t\t(currentItem && !this.state.currentItem) ||\n\t\t\t\t(currentItem && this.state.currentItem && currentItem.key !== this.state.currentItem.key)\n\t\t\t) {\n\t\t\t\tnewState.currentItem = JSON.parse(JSON.stringify(currentItem));\n\t\t\t}\n\t\t\tonClose(currentItem);\n\t\t\tif (droppedByFocus) {\n\t\t\t\tnewState.droppedByFocus = false;\n\t\t\t}\n\t\t\tdocument.removeEventListener(\"keydown\", this.onItemKeyDown);\n\t\t\tfocusables.forEach((focusable) => {\n\t\t\t\tfocusable.removeEventListener(\"focus\", this.focusOnOther);\n\t\t\t});\n\t\t\tthis.clearFilterTextTimeout();\n\t\t} else {\n\t\t\tconst anyOtherDropdown = document.querySelectorAll(\n\t\t\t\t`.dfa-dropdown-container:not(#dfa-dropdown-${this.props.name})`\n\t\t\t);\n\t\t\tanyOtherDropdown.forEach((otherDropdown) => {\n\t\t\t\totherDropdown.addEventListener(\"click\", this.handleClickOutside);\n\t\t\t});\n\t\t\tonOpen();\n\t\t\tif (byFocus) {\n\t\t\t\tnewState.droppedByFocus = true;\n\t\t\t}\n\t\t\tdocument.addEventListener(\"keydown\", this.onItemKeyDown);\n\t\t\tfocusables.forEach((focusable) => {\n\t\t\t\tfocusable.addEventListener(\"focus\", this.focusOnOther);\n\t\t\t});\n\t\t\tif (this.state.isMobile) {\n\t\t\t\tthis.list.current.showPopover();\n\t\t\t}\n\t\t}\n\t\tnewState.dropped = !dropped;\n\t\tthis.setState(newState);\n\t};\n\n\tfocusOnOther = () => {\n\t\tif (this.state.dropped) {\n\t\t\tthis.handleDropdown();\n\t\t}\n\t};\n\n\tonSelected = (item) => {\n\t\tif (this.state.currentItem && this.state.currentItem.key === item.key) {\n\t\t\tthis.handleDropdown();\n\t\t} else {\n\t\t\tthis.handleDropdown(false, item);\n\t\t}\n\t};\n\n\tonFilterChange = (filterText) => {\n\t\tlet newState = { filterText: filterText };\n\t\tlet found = null,\n\t\t\tindex = null,\n\t\t\tscrollTop = 0;\n\t\tconst { scrollbar } = this.refs;\n\t\tconst list = this.list.current;\n\t\tconst regex = new RegExp(`^${filterText}`, \"i\");\n\t\tconst domItems = list.querySelectorAll(\".dfa-dropdown-item\");\n\n\t\tif (filterText) {\n\t\t\tfound = this.props.items.find((item, key) => {\n\t\t\t\tindex = key;\n\t\t\t\treturn (item.caption && regex.test(item.caption)) || (item.extra && regex.test(item.extra));\n\t\t\t});\n\n\t\t\tif (found && index !== null) {\n\t\t\t\tfor (let i = 1; i < domItems.length; i++) {\n\t\t\t\t\tif (i <= index) {\n\t\t\t\t\t\tscrollTop += domItems[i].offsetHeight;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tscrollbar.scrollTop(scrollTop);\n\t\t\t\tnewState.currentItem = found;\n\t\t\t\tnewState.currentIndex = index;\n\t\t\t}\n\t\t}\n\n\t\tthis.setState(newState);\n\t};\n\n\tonAccessibilitySelectChange = (e) => {\n\t\tconst { items } = this.state;\n\t\tconst key = e.target.value;\n\t\tlet currentItem = null,\n\t\t\tcurrentIndex = null;\n\t\tif (key && key !== this.state.accessibilitySelect) {\n\t\t\tcurrentItem = items.filter((item, index) => {\n\t\t\t\tif (item.key === key) {\n\t\t\t\t\tcurrentIndex = index;\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t});\n\t\t\tif (currentItem.length) {\n\t\t\t\tcurrentItem = JSON.parse(JSON.stringify(currentItem[0]));\n\t\t\t\tif (typeof this.props.onClose === \"function\") {\n\t\t\t\t\tthis.props.onClose(currentItem);\n\t\t\t\t}\n\t\t\t\tthis.setState({\n\t\t\t\t\tcurrentItem: currentItem,\n\t\t\t\t\tdroppedByFocus: false,\n\t\t\t\t\tcurrentIndex: currentIndex,\n\t\t\t\t\tdropped: false,\n\t\t\t\t\taccessibilitySelect: key\n\t\t\t\t});\n\t\t\t\tthis.clearFilterTextTimeout();\n\t\t\t} else {\n\t\t\t\tif (typeof this.props.onClose === \"function\") {\n\t\t\t\t\tthis.props.onClose(null);\n\t\t\t\t}\n\t\t\t\tthis.setState({\n\t\t\t\t\tcurrentItem: null,\n\t\t\t\t\tdroppedByFocus: false,\n\t\t\t\t\tcurrentIndex: null,\n\t\t\t\t\tdropped: false,\n\t\t\t\t\taccessibilitySelect: null\n\t\t\t\t});\n\t\t\t\tthis.clearFilterTextTimeout();\n\t\t\t}\n\t\t}\n\t};\n\n\thandleLabelFocus = () => {\n\t\tif (!this.state.dropped && !this.droppedByFocus) {\n\t\t\tthis.handleDropdown();\n\t\t}\n\t};\n\n\thandleLabelMousedown = (e) => {\n\t\te.nativeEvent.stopImmediatePropagation();\n\t\tthis.handleDropdown();\n\t\tthis.setState({\n\t\t\thoverCurrentItem: this.state.currentItem,\n\t\t\tisHover: false\n\t\t});\n\t};\n\n\tstopPropagation = (e) => {\n\t\te.stopPropagation();\n\t\tif (e.stopImmediatePropagation) {\n\t\t\te.stopImmediatePropagation();\n\t\t} else if (e.nativeEvent.stopImmediatePropagation) {\n\t\t\te.nativeEvent.stopImmediatePropagation();\n\t\t}\n\t};\n\n\tonItemKeyDown = (event) => {\n\t\tconst { scrollbar } = this.refs;\n\t\tconst { name } = this.props;\n\t\tconst { isMobile, isTouchDevice, dropped, currentItem, currentIndex, filterText, items } =\n\t\t\tthis.state;\n\t\tconst list = this.list.current,\n\t\t\tregexp = new RegExp(\"^(key)?[a-z]{1}$\", \"i\");\n\t\tlet code = event.code ? event.code.toLowerCase() : event.key ? event.key.toLowerCase() : \"\";\n\t\tif (list && !isMobile && !isTouchDevice) {\n\t\t\tconst domItems = list.querySelectorAll(\".dfa-dropdown-item\");\n\t\t\tif (dropped && items && items.length) {\n\t\t\t\tif (code === \"arrowup\" || code === \"arrowdown\") {\n\t\t\t\t\tconst focusables = document.querySelectorAll(\n\t\t\t\t\t\t`select:not(#dfa-dropdown-filter-input-${name}), input, button:not(.dfa-dropdown-item), a`\n\t\t\t\t\t);\n\t\t\t\t\tlet nextIndex = 0,\n\t\t\t\t\t\tscrollTop = 0;\n\t\t\t\t\tthis.stopPropagation(event);\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tfocusables.forEach((focusable) => {\n\t\t\t\t\t\tfocusable.addEventListener(\"focus\", this.focusOnOther);\n\t\t\t\t\t});\n\t\t\t\t\tif (currentItem === null || currentIndex === null) {\n\t\t\t\t\t\tscrollbar.scrollTop(0);\n\t\t\t\t\t\tthis.setState({ currentItem: items[0], currentIndex: 0 });\n\t\t\t\t\t\tif (typeof this.props.onKeyArrows === \"function\") {\n\t\t\t\t\t\t\tthis.props.onKeyArrows(items[0]);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (code === \"arrowup\") {\n\t\t\t\t\t\t\tif (currentIndex > 0) {\n\t\t\t\t\t\t\t\tnextIndex = currentIndex - 1;\n\t\t\t\t\t\t\t} else if (currentIndex === 0) {\n\t\t\t\t\t\t\t\tnextIndex = items.length - 1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else if (code === \"arrowdown\") {\n\t\t\t\t\t\t\tif (items.length > currentIndex + 1) {\n\t\t\t\t\t\t\t\tnextIndex = currentIndex + 1;\n\t\t\t\t\t\t\t} else if (items.length === currentIndex + 1) {\n\t\t\t\t\t\t\t\tnextIndex = 0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfor (let i = 1; i < domItems.length; i++) {\n\t\t\t\t\t\t\tif (i <= nextIndex) {\n\t\t\t\t\t\t\t\tscrollTop += domItems[i].offsetHeight;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tscrollbar.scrollTop(scrollTop);\n\t\t\t\t\t\tthis.setState({ currentItem: items[nextIndex], currentIndex: nextIndex });\n\t\t\t\t\t\tif (typeof this.props.onKeyArrows === \"function\") {\n\t\t\t\t\t\t\tthis.props.onKeyArrows(items[nextIndex]);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else if (code === \"esc\" || code === \"escape\" || code === \"enter\") {\n\t\t\t\t\tthis.handleDropdown();\n\t\t\t\t} else if (code === \"backspace\") {\n\t\t\t\t\tif (filterText.length > 0) {\n\t\t\t\t\t\tthis.clearFilterTextTimeout();\n\t\t\t\t\t\tthis.filterTextStartTimeout();\n\t\t\t\t\t\tthis.onFilterChange(filterText.substring(0, filterText.length - 1));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.clearFilterTextTimeout();\n\t\t\t\t\t}\n\t\t\t\t} else if (regexp.test(code)) {\n\t\t\t\t\tthis.clearFilterTextTimeout();\n\t\t\t\t\tthis.filterTextStartTimeout();\n\t\t\t\t\tconst letter = code.replace(\"key\", \"\");\n\t\t\t\t\tthis.onFilterChange(`${filterText}${letter}`);\n\t\t\t\t}\n\t\t\t} else if ([\"arrowup\", \"arrowdown\"].includes(code)) {\n\t\t\t\tthis.stopPropagation(event);\n\t\t\t\tevent.preventDefault();\n\t\t\t\tif (!dropped) {\n\t\t\t\t\tthis.handleDropdown();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n\tfilterTextStartTimeout = (time = 1.5) => {\n\t\tthis.filterTextTimeout = setTimeout(() => {\n\t\t\tthis.onFilterChange(\"\");\n\t\t}, time * 1000); // in miliseconds\n\t};\n\n\tclearFilterTextTimeout = () => {\n\t\tif (this.filterTextTimeout) {\n\t\t\tclearTimeout(this.filterTextTimeout);\n\t\t}\n\t};\n\n\tonHoverEnter = (item) => {\n\t\tthis.setState({ hoverCurrentItem: item, isHover: true });\n\t\tthis.forceUpdate();\n\t};\n\n\tonHoverLeave = () => {\n\t\tthis.setState({ hoverCurrentItem: this.state.currentItem, isHover: false });\n\t\tthis.forceUpdate();\n\t};\n\n\trender() {\n\t\tconst { dropped, currentItem, isMobile, items, hoverCurrentItem, isHover } = this.state;\n\t\tconst {\n\t\t\tname,\n\t\t\tlabel,\n\t\t\tclassName,\n\t\t\terror,\n\t\t\tmaxLengthMobile,\n\t\t\tmaxLength,\n\t\t\tmobileAutoHeightMax,\n\t\t\tautoHeightMax,\n\t\t\tscrollbarStyle,\n\t\t\tembedded,\n\t\t\tcontainerClassName,\n\t\t\terrorLabel = \"\",\n\t\t\tdataQASelect = null,\n\t\t\tdataQADropdownList = null\n\t\t} = this.props;\n\n\t\tlet currentCaption = null,\n\t\t\tselect = null;\n\t\tlet { topLabel } = this.props;\n\n\t\tif (currentItem) {\n\t\t\tconst maxLen = isMobile ? maxLengthMobile : maxLength;\n\t\t\tcurrentCaption = sanitizeHtml(currentItem.caption);\n\t\t\tcurrentCaption =\n\t\t\t\tcurrentCaption.length > maxLen\n\t\t\t\t\t? currentCaption.substring(0, maxLen).trimEnd() + \"...\"\n\t\t\t\t\t: currentCaption;\n\t\t}\n\t\tif (topLabel) {\n\t\t\ttopLabel = (\n\t\t\t\t\n\t\t\t);\n\t\t}\n\t\tconst style = {};\n\t\tif (dropped) {\n\t\t\tstyle.zIndex = 100;\n\t\t}\n\t\tselect = (\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t{items.map((item) => (\n\t\t\t\t\t\t\n\t\t\t\t\t))}\n\t\t\t\t\n\t\t\t
\n\t\t);\n\n\t\treturn (\n\t\t\t\n\t\t\t\t{select}\n\t\t\t\t{topLabel}\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t{dropped ? : }\n\t\t\t\t\n\t\t\t\t
\n\n\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t (\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t)}\n\t\t\t\t\t\tstyle={scrollbarStyle}\n\t\t\t\t\t>\n\t\t\t\t\t\t{items.map((item) => {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\tthis.onSelected(item);\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\tonMouseEnter={() => this.onHoverEnter(item)}\n\t\t\t\t\t\t\t\t\tonMouseLeave={() => this.onHoverLeave()}\n\t\t\t\t\t\t\t\t\taria-label={item.caption}\n\t\t\t\t\t\t\t\t\ttabIndex=\"-1\"\n\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\tdata-qa={item.caption}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t);\n\t\t\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\nexport default Dropdown;\n"],"names":["ImageArrowUp","className","jsx","areObjectsEqual","a","b","aProps","bProps","i","propName","Dropdown","Component","props","__publicField","event","mobileDropdownClasses","elClicked","elClass","itemCaption","item","isDescendant","embedded","initDropped","smallMatchesMobileView","mobileViewBreakpoint","isMobile","dropdown","byFocus","dropped","droppedByFocus","name","onOpen","onClose","currentItem","newState","focusables","focusable","otherDropdown","filterText","found","index","scrollTop","scrollbar","list","regex","domItems","key","items","currentIndex","isTouchDevice","regexp","code","nextIndex","letter","time","React","prevProps","prevState","setState","nextProps","nextState","state","hoverCurrentItem","isHover","label","error","maxLengthMobile","maxLength","mobileAutoHeightMax","autoHeightMax","scrollbarStyle","containerClassName","errorLabel","dataQASelect","dataQADropdownList","currentCaption","select","topLabel","maxLen","sanitizeHtml","style","jsxs","ImageArrow","Scrollbars","PropTypes"],"mappings":"kaAEA,MAAMA,EAAe,CAAC,CAAE,UAAAC,EAAY,MAElCC,EAAA,IAAC,MAAA,CACA,UAAW,kBAAkBD,CAAS,GACtC,MAAM,6BACN,WAAW,+BACX,MAAM,KACN,OAAO,KACP,QAAQ,YAER,SAAAC,EAAA,IAAC,UAAA,CACA,UAAU,mBACV,OAAO,wDAAA,CAAA,CACP,CACF,EChBWC,EAAkB,SAAUC,EAAGC,EAAG,CAC9C,GAAI,OAAOD,EAAM,KAAe,OAAOC,EAAM,IAC5C,MAAO,GACD,GAAID,IAAM,MAAQC,IAAM,KAC9B,MAAO,GACD,GAAID,IAAM,MAAQC,IAAM,KAC9B,MAAO,GACD,GAAI,OAAOD,GAAM,OAAOC,EAC9B,MAAO,GAGR,MAAMC,EAAS,OAAO,oBAAoBF,CAAC,EACrCG,EAAS,OAAO,oBAAoBF,CAAC,EAE3C,GAAIC,EAAO,SAAWC,EAAO,OAC5B,MAAO,GAGR,QAASC,EAAI,EAAGA,EAAIF,EAAO,OAAQE,IAAK,CACvC,MAAMC,EAAWH,EAAOE,CAAC,EACzB,GAAIJ,EAAEK,CAAQ,IAAMJ,EAAEI,CAAQ,EAC7B,MAAO,EAEV,CAEC,MAAO,EACR,ECjBA,MAAMC,UAAiBC,EAAAA,SAAU,CAiChC,YAAYC,EAAO,CAClB,MAAMA,CAAK,EAiDZC,EAAA,0BAAsBC,GAAU,CAC/B,MAAMC,EAAwB,CAC7B,oBACA,4BACA,mCACD,EACMC,EAAYF,EAAM,OAAO,UAC3B,GAAA,KAAK,MAAM,QAEb,GAAA,KAAK,MAAM,UACXC,EAAsB,KAAME,GAAYD,EAAU,SAASC,CAAO,CAAC,EAClE,CACD,IAAIC,EAAc,GACdJ,EAAM,OAAO,UAAU,SAAS,mBAAmB,IACxCI,EAAAJ,EAAM,OAAO,aAAa,YAAY,GAEjDA,EAAM,OAAO,UAAU,SAAS,2BAA2B,IAC9DI,EAAcJ,EAAM,OAAO,WAAW,aAAa,YAAY,GAE5DA,EAAM,OAAO,UAAU,SAAS,mCAAmC,IACtEI,EAAcJ,EAAM,OAAO,WAAW,WAAW,aAAa,YAAY,GAEtE,KAAA,WAAW,GAAG,KAAK,MAAM,MAAM,OAAQK,GAASA,EAAK,UAAYD,CAAW,CAAC,CACnF,MAAW,KAAK,MAAM,UAAY,CAACE,EAAa,KAAK,KAAK,QAASN,EAAM,MAAM,EAC9E,KAAK,eAAe,EACV,CAAC,KAAK,MAAM,UAAY,CAACM,EAAa,KAAK,SAAS,QAASN,EAAM,MAAM,GACnF,KAAK,eAAe,EAIrB,CAAC,KAAK,MAAM,SACZ,KAAK,MAAM,UACXA,EAAM,OAAO,UAAU,SAAS,qBAAqB,GAErD,KAAK,MAAM,QAAQ,KAAM,KAAK,MAAM,QAAQ,CAE9C,GAEAD,EAAA,oBAAe,IAAM,CACf,KAAK,MAAM,eACf,KAAK,SAAS,CAAE,cAAe,EAAA,CAAM,CAEvC,GAmGAA,EAAA,gBAAW,IAAM,CAChB,KAAM,CAAE,SAAAQ,EAAU,YAAAC,EAAa,uBAAAC,GAA2B,KAAK,MACzDC,EAAuBD,EAAyB,KAAO,IACvDE,EAAW,OAAO,YAAcD,EAChB,SAAS,iBAAiB,eAAe,EAEjD,QAASE,GAAa,CAC1BA,EAAA,QAAUD,EAAW,SAAW,KACrCC,EAAS,SACZA,EAAS,cAAc,EAAK,CAC7B,CACA,EACGL,EACH,KAAK,SAAS,CACb,SAAAI,EACA,QAASA,GAAYH,CAAA,CACrB,GAED,KAAK,SAAS,CAAE,QAAS,EAAA,CAAO,EAC5BG,GAAY,KAAK,KAAK,QACzB,KAAK,SAAS,CAAE,SAAU,EAAA,CAAM,EAE5B,KAAK,aAAe,KAAK,YAAY,UACxC,KAAK,YAAY,QAAQ,aAAa,KAAK,KAAK,QAAS,IAAI,EAE7D,KAAK,SAAS,CAAE,SAAU,EAAA,CAAO,GAIrC,GAEAZ,EAAA,sBAAiB,CAACc,EAASR,EAAO,OAAS,CAC1C,KAAM,CAAE,QAAAS,EAAS,eAAAC,CAAe,EAAI,KAAK,MACnC,CAAE,KAAAC,EAAM,OAAAC,EAAQ,QAAAC,GAAY,KAAK,MACjCC,EAAcd,IAAc,KAAK,MAAM,YAAc,KAAK,MAAM,YAAc,MAC9Ee,EAAW,CAAC,EACZC,EAAa,SAAS,iBAC3B,yCAAyCL,CAAI,6CAC9C,EACIF,IAEDK,GAAe,CAAC,KAAK,MAAM,aAC3BA,GAAe,KAAK,MAAM,aAAeA,EAAY,MAAQ,KAAK,MAAM,YAAY,OAErFC,EAAS,YAAc,KAAK,MAAM,KAAK,UAAUD,CAAW,CAAC,GAE9DD,EAAQC,CAAW,EACfJ,IACHK,EAAS,eAAiB,IAElB,SAAA,oBAAoB,UAAW,KAAK,aAAa,EAC/CC,EAAA,QAASC,GAAc,CACvBA,EAAA,oBAAoB,QAAS,KAAK,YAAY,CAAA,CACxD,EACD,KAAK,uBAAuB,IAEH,SAAS,iBACjC,6CAA6C,KAAK,MAAM,IAAI,GAC7D,EACiB,QAASC,GAAkB,CAC7BA,EAAA,iBAAiB,QAAS,KAAK,kBAAkB,CAAA,CAC/D,EACMN,EAAA,EACHJ,IACHO,EAAS,eAAiB,IAElB,SAAA,iBAAiB,UAAW,KAAK,aAAa,EAC5CC,EAAA,QAASC,GAAc,CACvBA,EAAA,iBAAiB,QAAS,KAAK,YAAY,CAAA,CACrD,EACG,KAAK,MAAM,UACT,KAAA,KAAK,QAAQ,YAAY,GAGhCF,EAAS,QAAU,CAACN,EACpB,KAAK,SAASM,CAAQ,CACvB,GAEArB,EAAA,oBAAe,IAAM,CAChB,KAAK,MAAM,SACd,KAAK,eAAe,CAEtB,GAEAA,EAAA,kBAAcM,GAAS,CAClB,KAAK,MAAM,aAAe,KAAK,MAAM,YAAY,MAAQA,EAAK,IACjE,KAAK,eAAe,EAEf,KAAA,eAAe,GAAOA,CAAI,CAEjC,GAEAN,EAAA,sBAAkByB,GAAe,CAC5B,IAAAJ,EAAW,CAAE,WAAAI,CAAuB,EACpCC,EAAQ,KACXC,EAAQ,KACRC,EAAY,EACP,KAAA,CAAE,UAAAC,GAAc,KAAK,KACrBC,EAAO,KAAK,KAAK,QACjBC,EAAQ,IAAI,OAAO,IAAIN,CAAU,GAAI,GAAG,EACxCO,EAAWF,EAAK,iBAAiB,oBAAoB,EAE3D,GAAIL,IACHC,EAAQ,KAAK,MAAM,MAAM,KAAK,CAACpB,EAAM2B,KAC5BN,EAAAM,EACA3B,EAAK,SAAWyB,EAAM,KAAKzB,EAAK,OAAO,GAAOA,EAAK,OAASyB,EAAM,KAAKzB,EAAK,KAAK,EACzF,EAEGoB,GAASC,IAAU,MAAM,CAC5B,QAAShC,EAAI,EAAGA,EAAIqC,EAAS,OAAQrC,IAChCA,GAAKgC,IACKC,GAAAI,EAASrC,CAAC,EAAE,cAG3BkC,EAAU,UAAUD,CAAS,EAC7BP,EAAS,YAAcK,EACvBL,EAAS,aAAeM,CAAA,CAI1B,KAAK,SAASN,CAAQ,CACvB,GAEArB,EAAA,mCAA+B,GAAM,CAC9B,KAAA,CAAE,MAAAkC,GAAU,KAAK,MACjBD,EAAM,EAAE,OAAO,MACjB,IAAAb,EAAc,KACjBe,EAAe,KACZF,GAAOA,IAAQ,KAAK,MAAM,sBAC7Bb,EAAcc,EAAM,OAAO,CAAC5B,EAAMqB,IAC7BrB,EAAK,MAAQ2B,GACDE,EAAAR,EACR,IAED,EACP,EACGP,EAAY,QACfA,EAAc,KAAK,MAAM,KAAK,UAAUA,EAAY,CAAC,CAAC,CAAC,EACnD,OAAO,KAAK,MAAM,SAAY,YAC5B,KAAA,MAAM,QAAQA,CAAW,EAE/B,KAAK,SAAS,CACb,YAAAA,EACA,eAAgB,GAChB,aAAAe,EACA,QAAS,GACT,oBAAqBF,CAAA,CACrB,EACD,KAAK,uBAAuB,IAExB,OAAO,KAAK,MAAM,SAAY,YAC5B,KAAA,MAAM,QAAQ,IAAI,EAExB,KAAK,SAAS,CACb,YAAa,KACb,eAAgB,GAChB,aAAc,KACd,QAAS,GACT,oBAAqB,IAAA,CACrB,EACD,KAAK,uBAAuB,GAG/B,GAEAjC,EAAA,wBAAmB,IAAM,CACpB,CAAC,KAAK,MAAM,SAAW,CAAC,KAAK,gBAChC,KAAK,eAAe,CAEtB,GAEAA,EAAA,4BAAwB,GAAM,CAC7B,EAAE,YAAY,yBAAyB,EACvC,KAAK,eAAe,EACpB,KAAK,SAAS,CACb,iBAAkB,KAAK,MAAM,YAC7B,QAAS,EAAA,CACT,CACF,GAEAA,EAAA,uBAAmB,GAAM,CACxB,EAAE,gBAAgB,EACd,EAAE,yBACL,EAAE,yBAAyB,EACjB,EAAE,YAAY,0BACxB,EAAE,YAAY,yBAAyB,CAEzC,GAEAA,EAAA,qBAAiBC,GAAU,CACpB,KAAA,CAAE,UAAA4B,GAAc,KAAK,KACrB,CAAE,KAAAZ,GAAS,KAAK,MAChB,CAAE,SAAAL,EAAU,cAAAwB,EAAe,QAAArB,EAAS,YAAAK,EAAa,aAAAe,EAAc,WAAAV,EAAY,MAAAS,GAChF,KAAK,MACAJ,EAAO,KAAK,KAAK,QACtBO,EAAS,IAAI,OAAO,mBAAoB,GAAG,EAC5C,IAAIC,EAAOrC,EAAM,KAAOA,EAAM,KAAK,cAAgBA,EAAM,IAAMA,EAAM,IAAI,YAAgB,EAAA,GACzF,GAAI6B,GAAQ,CAAClB,GAAY,CAACwB,EAAe,CAClC,MAAAJ,EAAWF,EAAK,iBAAiB,oBAAoB,EACvD,GAAAf,GAAWmB,GAASA,EAAM,QACzB,GAAAI,IAAS,WAAaA,IAAS,YAAa,CAC/C,MAAMhB,EAAa,SAAS,iBAC3B,yCAAyCL,CAAI,6CAC9C,EACI,IAAAsB,EAAY,EACfX,EAAY,EAMT,GALJ,KAAK,gBAAgB3B,CAAK,EAC1BA,EAAM,eAAe,EACVqB,EAAA,QAASC,GAAc,CACvBA,EAAA,iBAAiB,QAAS,KAAK,YAAY,CAAA,CACrD,EACGH,IAAgB,MAAQe,IAAiB,KAC5CN,EAAU,UAAU,CAAC,EAChB,KAAA,SAAS,CAAE,YAAaK,EAAM,CAAC,EAAG,aAAc,EAAG,EACpD,OAAO,KAAK,MAAM,aAAgB,YACrC,KAAK,MAAM,YAAYA,EAAM,CAAC,CAAC,MAE1B,CACFI,IAAS,UACRH,EAAe,EAClBI,EAAYJ,EAAe,EACjBA,IAAiB,IAC3BI,EAAYL,EAAM,OAAS,GAElBI,IAAS,cACfJ,EAAM,OAASC,EAAe,EACjCI,EAAYJ,EAAe,EACjBD,EAAM,SAAWC,EAAe,IAC9BI,EAAA,IAGd,QAAS5C,EAAI,EAAGA,EAAIqC,EAAS,OAAQrC,IAChCA,GAAK4C,IACKX,GAAAI,EAASrC,CAAC,EAAE,cAG3BkC,EAAU,UAAUD,CAAS,EACxB,KAAA,SAAS,CAAE,YAAaM,EAAMK,CAAS,EAAG,aAAcA,EAAW,EACpE,OAAO,KAAK,MAAM,aAAgB,YACrC,KAAK,MAAM,YAAYL,EAAMK,CAAS,CAAC,CACxC,CACD,SACUD,IAAS,OAASA,IAAS,UAAYA,IAAS,QAC1D,KAAK,eAAe,UACVA,IAAS,YACfb,EAAW,OAAS,GACvB,KAAK,uBAAuB,EAC5B,KAAK,uBAAuB,EAC5B,KAAK,eAAeA,EAAW,UAAU,EAAGA,EAAW,OAAS,CAAC,CAAC,GAElE,KAAK,uBAAuB,UAEnBY,EAAO,KAAKC,CAAI,EAAG,CAC7B,KAAK,uBAAuB,EAC5B,KAAK,uBAAuB,EAC5B,MAAME,EAASF,EAAK,QAAQ,MAAO,EAAE,EACrC,KAAK,eAAe,GAAGb,CAAU,GAAGe,CAAM,EAAE,CAAA,MAEnC,CAAC,UAAW,WAAW,EAAE,SAASF,CAAI,IAChD,KAAK,gBAAgBrC,CAAK,EAC1BA,EAAM,eAAe,EAChBc,GACJ,KAAK,eAAe,EAEtB,CAEF,GAEAf,EAAA,8BAAyB,CAACyC,EAAO,MAAQ,CACnC,KAAA,kBAAoB,WAAW,IAAM,CACzC,KAAK,eAAe,EAAE,CAAA,EACpBA,EAAO,GAAI,CACf,GAEAzC,EAAA,8BAAyB,IAAM,CAC1B,KAAK,mBACR,aAAa,KAAK,iBAAiB,CAErC,GAEAA,EAAA,oBAAgBM,GAAS,CACxB,KAAK,SAAS,CAAE,iBAAkBA,EAAM,QAAS,GAAM,EACvD,KAAK,YAAY,CAClB,GAEAN,EAAA,oBAAe,IAAM,CACf,KAAA,SAAS,CAAE,iBAAkB,KAAK,MAAM,YAAa,QAAS,GAAO,EAC1E,KAAK,YAAY,CAClB,GA7dM,KAAA,SAAW0C,EAAM,UAAU,EAC3B,KAAA,YAAcA,EAAM,UAAU,EAC9B,KAAA,KAAOA,EAAM,UAAU,EACvB,KAAA,UAAYA,EAAM,UAAU,EACjC,KAAK,WAAa,GAClB,KAAK,kBAAoB,KAEzB,IAAIP,EAAe,KACfpC,EAAM,aAAeA,EAAM,OAASA,EAAM,MAAM,QACnDA,EAAM,MAAM,QAAQ,CAACO,EAAM2B,IAAQ,CAC9B3B,EAAK,MAAQP,EAAM,YAAY,MACnBoC,EAAAF,EAChB,CACA,EAGF,KAAK,MAAQ,CACZ,SAAU,GACV,QAASlC,EAAM,YACf,YAAaA,EAAM,YAAcA,EAAM,YAAc,KACrD,MAAOA,EAAM,MAAQA,EAAM,MAAQ,KACnC,WAAY,GACZ,aAAAoC,EACA,cAAe,GACf,cAAe,GACf,oBAAqB,KACrB,iBAAkBpC,EAAM,YAAcA,EAAM,YAAc,KAC1D,QAAS,EACV,CAAA,CAGD,mBAAoB,CACf,CAAC,KAAK,MAAM,OAAS,CAAC,KAAK,MAAM,aACpC,KAAK,WAAW,KAAK,MAAM,MAAM,CAAC,CAAC,EAE3B,SAAA,iBAAiB,YAAa,KAAK,kBAAkB,EACrD,SAAA,iBAAiB,aAAc,KAAK,YAAY,EAClD,OAAA,iBAAiB,SAAU,KAAK,QAAQ,EAC/C,KAAK,SAAS,CAAA,CAsDf,mBAAmB4C,EAAWC,EAAW,CACxC,MAAMvB,EAAW,KAAK,MAAM,KAAK,UAAU,KAAK,KAAK,CAAC,EACtD,IAAIwB,EAAW,GAYf,IAXID,EAAU,SAAW,CAAC,KAAK,MAAM,SAIpCD,EAAU,QAAU,KAAK,MAAM,OAC9BA,EAAU,OAAS,KAAK,MAAM,OAASA,EAAU,MAAM,SAAW,KAAK,MAAM,MAAM,UAEpFtB,EAAS,WAAa,GACXwB,EAAA,IAIX,CAACD,EAAU,SACX,KAAK,MAAM,SACXA,EAAU,cAAgB,GAC1B,KAAK,MAAM,eAAiB,KAC3B,CACK,KAAA,CAAE,UAAAf,GAAc,KAAK,KAC3BA,EAAU,UAAU,CAAC,CAAA,CAGtB,GACC,CAACvC,EAAgBqD,EAAU,YAAa,KAAK,MAAM,WAAW,GAC9D,KAAK,MAAM,OACX,KAAK,MAAM,MAAM,OAChB,CACG,IAAAvB,EAAc,KACjBe,EAAe,KAChB,KAAK,MAAM,MAAM,QAAQ,CAAC7B,EAAM2B,IAAQ,CACnC,KAAK,MAAM,aAAe3B,EAAK,MAAQ,KAAK,MAAM,YAAY,MACjEc,EAAc,KAAK,MAAM,YACVe,EAAAF,EAChB,CACA,EAEDZ,EAAS,YAAcD,EACvBC,EAAS,aAAec,EACbU,EAAA,EAAA,CAGR,KAAK,MAAM,WAAW,OAASD,EAAU,WAAW,OAAS,GAAKvB,EAAS,MAAM,SAC3EA,EAAA,YAAc,KAAK,MAAM,KAAK,UAAUA,EAAS,MAAM,CAAC,CAAC,CAAC,EACnEA,EAAS,WAAa,GACtBA,EAAS,QAAU,GACRwB,EAAA,GACN,KAAA,MAAM,WAAWxB,EAAS,WAAW,GAGvCwB,GACH,KAAK,SAASxB,CAAQ,CACvB,CAGD,sBAAsByB,EAAWC,EAAW,CAE1C,MAAA,GAAAD,EAAU,WAAa,KAAK,MAAM,UAClCC,EAAU,UAAY,KAAK,MAAM,SACjCD,EAAU,QAAU,KAAK,MAAM,OAC/BC,EAAU,aAAe,KAAK,MAAM,YACpC,CAACzD,EAAgBwD,EAAU,YAAa,KAAK,MAAM,WAAW,GAC9D,CAACxD,EAAgByD,EAAU,YAAa,KAAK,MAAM,WAAW,GAC9DD,EAAU,QAAU,KAAK,MAAM,OAC9BA,EAAU,OAAS,KAAK,MAAM,OAASA,EAAU,MAAM,SAAW,KAAK,MAAM,MAAM,QACpFC,EAAU,eAAiB,KAAK,MAAM,aAIhC,CAGR,OAAO,yBAAyBhD,EAAOiD,EAAO,CAC7C,OACCjD,EAAM,OACNA,EAAM,MAAM,QACZiD,EAAM,OACNA,EAAM,MAAM,QACZjD,EAAM,MAAM,CAAC,EAAE,MAAQiD,EAAM,MAAM,CAAC,EAAE,IAE/B,CACN,MAAOjD,EAAM,MACb,YAAa,KACb,aAAc,IACf,EAEM,IAAA,CAGR,sBAAuB,CACf,OAAA,oBAAoB,SAAU,KAAK,QAAQ,EACzC,SAAA,oBAAoB,YAAa,KAAK,kBAAkB,EACxD,SAAA,oBAAoB,aAAc,KAAK,YAAY,EACnD,SAAA,oBAAoB,UAAW,KAAK,aAAa,CAAA,CAqS3D,QAAS,CACF,KAAA,CAAE,QAAAgB,EAAS,YAAAK,EAAa,SAAAR,EAAU,MAAAsB,EAAO,iBAAAe,EAAkB,QAAAC,GAAY,KAAK,MAC5E,CACL,KAAAjC,EACA,MAAAkC,EACA,UAAA/D,EACA,MAAAgE,EACA,gBAAAC,EACA,UAAAC,EACA,oBAAAC,EACA,cAAAC,EACA,eAAAC,EACA,SAAAjD,EACA,mBAAAkD,EACA,WAAAC,EAAa,GACb,aAAAC,EAAe,KACf,mBAAAC,EAAqB,MAClB,KAAK,MAEL,IAAAC,EAAiB,KACpBC,EAAS,KACN,CAAE,SAAAC,GAAa,KAAK,MAExB,GAAI5C,EAAa,CACV,MAAA6C,EAASrD,EAAWyC,EAAkBC,EAC3BQ,EAAAI,EAAa9C,EAAY,OAAO,EAEhD0C,EAAAA,EAAe,OAASG,EACrBH,EAAe,UAAU,EAAGG,CAAM,EAAE,QAAQ,EAAI,MAChDH,CAAA,CAEDE,IAEFA,EAAA3E,EAAA,IAAC,MAAA,CACA,UACC,iDACA0B,GACCqC,EAAQ,gCAAkC,IAE5C,wBAAyB,CAAE,OAAQc,EAAad,EAAQO,EAAaK,CAAQ,CAAE,CAAA,CAChF,GAGF,MAAMG,EAAQ,CAAC,EACf,OAAIpD,IACHoD,EAAM,OAAS,KAGfJ,EAAA1E,EAAA,IAAC,MAAI,CAAA,UAAU,sBACd,SAAA+E,EAAA,KAAC,SAAA,CACA,GAAI,6BAA6BnD,CAAI,GACrC,KAAK,UACL,MAAO,CAAE,WAAY,QAAS,EAC9B,SAAS,KACT,UAAU,sBACV,OAAQ,KAAK,4BACb,SAAU,KAAK,4BAEf,SAAA,CAAA5B,EAAA,IAAC,SAAkB,CAAA,MAAM,GAAG,SAAA,MAAA,EAAhB,MAEZ,EACC6C,EAAM,IAAK5B,GACVjB,EAAAA,IAAA,SAAA,CAAsB,MAAOiB,EAAK,IACjC,SAAAA,EAAK,OADM,EAAAA,EAAK,GAElB,CACA,CAAA,CAAA,IAjBsC,QAmBzC,EAIA8D,EAAA,KAAC,MAAA,CACA,GAAI,gBAAgBnD,CAAI,GACxB,UAAW,0BAA0ByC,CAAkB,IACtDlD,EAAW,wBAA0B,EACtC,IAAIA,GAAYO,EAAU,6BAA+B,EAAE,GAC3D,MAAAoD,EACA,IAAK,KAAK,SACV,cAAY,eAEX,SAAA,CAAAJ,EACAC,EACDI,EAAA,KAAC,MAAA,CACA,UACC,wCACCrD,EAAU,OAAS,UACnBqC,EAAQ,sBAAwB,IAElC,YAAa,KAAK,qBAClB,QAAS,KAAK,iBACd,KAAK,SACL,SAAS,IACT,aAAW,gBACX,gBAAe,EAAArC,EACf,UAAS6C,EAET,SAAA,CAAAvE,EAAA,IAAC,OAAA,CACA,UAAU,0BACV,wBAAyB,CACxB,OAAQyE,GAAkCI,EAAaf,CAAK,CAAA,CAC7D,CACD,EACCpC,EAAU1B,EAAA,IAACF,EAAa,CAAA,CAAA,QAAMkF,EAAW,CAAA,CAAA,CAAA,CAAA,CAC3C,QACC,MAAI,CAAA,UAAU,2BAA2B,IAAK,KAAK,YAAa,EAEjED,EAAA,KAAC,MAAA,CACA,UAAW,6BAA+BrD,EAAU,IAAI3B,GAAwB,EAAE,GAClF,IAAK,KAAK,KACV,UAASyE,EAET,SAAA,CAAAxE,MAAC,MAAI,CAAA,UAAW,8BAAgC0B,GAAWH,GAC1D,SAAAvB,EAAA,IAAC,OAAA,CACA,UAAU,gCACV,wBAAyB,CAAE,OAAQ6E,EAAaf,CAAK,CAAE,CAAA,CAAA,EAEzD,EACA9D,EAAA,IAACiF,EAAA,WAAA,CACA,IAAI,YACJ,UAAU,oBACV,WAAU,GACV,cAAc,OACd,cAAe1D,EAAW2C,EAAsBC,EAChD,oBAAsBzD,GACrBV,MAAC,OAAK,GAAGU,EAAO,UAAU,8BAA8B,EAEzD,MAAO0D,EAEN,SAAAvB,EAAM,IAAK5B,GAEVjB,EAAA,IAAC,SAAA,CACA,UACC,sBACE+B,GAAed,EAAK,MAAQc,EAAY,KAAO,CAAC8B,GACjDD,IAAqB,MAAQA,EAAiB,MAAQ3C,EAAK,KAAO4C,EAChE,uDACA,IAGJ,QAAS,IAAM,CACd,KAAK,WAAW5C,CAAI,CACrB,EACA,aAAc,IAAM,KAAK,aAAaA,CAAI,EAC1C,aAAc,IAAM,KAAK,aAAa,EACtC,aAAYA,EAAK,QACjB,SAAS,KACT,KAAK,SACL,UAASA,EAAK,QAEd,SAAA8D,EAAA,KAAC,OAAK,CAAA,UAAU,4BACf,SAAA,CAAA/E,EAAA,IAAC,OAAA,CACA,UAAU,mCACV,wBAAyB,CACxB,OAAQ6E,EAAa5D,EAAK,OAASA,EAAK,OAAS,EAAE,CAAA,CACpD,CACD,EACAjB,EAAA,IAAC,OAAA,CACA,UAAU,oCACV,wBAAyB,CAAE,OAAQ6E,EAAa5D,EAAK,OAAO,CAAE,CAAA,CAC/D,EACAjB,EAAA,IAAC,OAAA,CACA,UAAU,kCACV,wBAAyB,CACxB,OAAQ6E,EAAa5D,EAAK,MAAQA,EAAK,MAAQ,EAAE,CAAA,CAClD,CAAA,CACD,CACD,CAAA,CAAA,EA5BKA,EAAK,GA6BX,CAED,CAAA,CAAA,CACF,CAAA,CAAA,CACD,CAAA,CACD,CAAA,CAGH,CAhrBCN,EADKH,EACE,eAAe,CACrB,WAAY,GACZ,oBAAqB,yBACrB,cAAe,WACf,SAAU,GACV,YAAa,GACb,UAAW,GACX,gBAAiB,GACjB,OAAQ,IAAM,CAAC,EACf,QAAS,IAAM,CAAA,CAChB,GAEAG,EAbKH,EAaE,YAAY,CAClB,WAAY0E,EAAU,OACtB,oBAAqBA,EAAU,OAC/B,cAAeA,EAAU,OACzB,KAAMA,EAAU,OAChB,MAAOA,EAAU,OACjB,MAAOA,EAAU,QAAQA,EAAU,MAAM,EAAE,WAC3C,YAAaA,EAAU,OACvB,UAAWA,EAAU,OACrB,WAAYA,EAAU,KACtB,eAAgBA,EAAU,OAC1B,YAAaA,EAAU,KACvB,OAAQA,EAAU,KAClB,YAAaA,EAAU,KACvB,QAASA,EAAU,KACnB,uBAAwBA,EAAU,KAClC,aAAcA,EAAU,OACxB,mBAAoBA,EAAU,MAC/B"}