{"version":3,"file":"js/8457-56d3671dcc59c99acb62.js","mappings":"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","sources":["webpack://AYTM/./app/_stock/webpack/lib/rfd-ui/styles/basic/loader-dots.module.scss?b7a9","webpack://AYTM/./app/_stock/webpack/lib/rfd-ui/components/basic/loader-dots.jsx","webpack://AYTM/./app/_stock/webpack/lib/rfd-ui/components/basic/loader-wave.jsx","webpack://AYTM/./app/_stock/webpack/lib/rfd-ui/components/basic/select.jsx","webpack://AYTM/./app/_stock/webpack/lib/common/string.ts"],"sourcesContent":["// extracted by mini-css-extract-plugin\nexport default {\"component\":\"loader-dots-module__component___1Q47M rfd-ui-loader-dots\",\"dot\":\"loader-dots-module__dot___3wTm0\",\"rfd-ui-loader-dots-color\":\"loader-dots-module__rfd-ui-loader-dots-color___2-hwr\",\"dot-0\":\"loader-dots-module__dot-0___2dEQT\",\"dot-1\":\"loader-dots-module__dot-1___1dz0l\",\"dot-2\":\"loader-dots-module__dot-2___1xOG6\"};","// lib\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { Repeat } from 'immutable'\n\n// styles\nimport style from '@aytm/lib/rfd-ui/styles/basic/loader-dots.module.scss'\n\n// <Component>\nLoaderDots.propTypes = {\n dots: PropTypes.number,\n height: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n dotSize: PropTypes.number\n}\nexport default React.memo(\n LoaderDots,\n (prevProps, nextProps) =>\n prevProps.dots === nextProps.dots &&\n prevProps.height === nextProps.height &&\n prevProps.dotSize === nextProps.dotSize\n)\nfunction LoaderDots(props) {\n const { dots = 3, dotSize, height } = props\n const lineHeight = 'number' == typeof height ? `${height}px` : height\n return (\n <div className={style.component} style={{ lineHeight }}>\n {Repeat(null, dots)\n .map((_v, i) => (\n <span\n key={i}\n className={`${style.dot} ${style[`dot-${i % 3}`]}`}\n style={{\n width: dotSize,\n height: dotSize,\n lineHeight,\n marginRight: dotSize && i < dots - 1 ? dotSize / 2 : null,\n borderRadius: dotSize ? dotSize / 2 : null\n }}\n />\n ))\n .toArray()}\n </div>\n )\n}\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport { Repeat } from 'immutable'\n\nimport { PureDataComponent } from '@aytm/lib/common/components/pure-component'\n\nimport '@aytm/lib/rfd-ui/styles/basic/loader-wave.scss'\n\nexport default class LoaderWave extends PureDataComponent {\n static propTypes = {\n bars: PropTypes.number,\n height: PropTypes.oneOfType([PropTypes.number, PropTypes.string])\n }\n\n render() {\n const bars = this.props.bars || 20\n const height = this.props.height || 12\n return (\n <span className=\"rfd-ui-loader-wave\" style={{ height }}>\n {Repeat(null, bars)\n .map((_v, i) => <span key={i} className={`rfd-ui-loader-wave-bar rfd-ui-loader-wave-bar-${i % 50}`} />)\n .toArray()}\n </span>\n )\n }\n}\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport { Map, List } from 'immutable'\nimport classNames from 'classnames'\nimport autobind from 'autobind-decorator'\nimport { PureDataComponent } from '@aytm/lib/common/components/pure-component'\nimport { stopEvent, DOMchildOf, DOMfindParent, viewport } from '@aytm/lib/common/func'\nimport {\n KEYCODE_UP,\n KEYCODE_DOWN,\n KEYCODE_PGUP,\n KEYCODE_PGDOWN,\n KEYCODE_HOME,\n KEYCODE_END,\n KEYCODE_ENTER,\n KEYCODE_SPACE,\n KEYCODE_ESC,\n KEYCODE_TAB\n} from '@aytm/lib/common/const'\nimport { fuzzyMatch } from '@aytm/lib/common/string'\nimport LoaderWave from '@aytm/lib/rfd-ui/components/basic/loader-wave'\nimport LoaderDots from '@aytm/lib/rfd-ui/components/basic/loader-dots'\n\nimport '@aytm/lib/rfd-ui/styles/basic/select.scss'\n\nconst MAX_OPTIONS_NUMBER = 100\n// const DEFAULT_LIST_MAXHEIGHT = 200\n\nlet nextSelectID = 0\n\nexport const SELECT_FILTER_STRATEGIES = {\n default: (text, filter /*, option*/) => [text.includes(filter), 1],\n fuzzy: (text, filter /*, option*/) => {\n const [longestMatchedSequenceLength] = fuzzyMatch(text, filter)\n return [Boolean(longestMatchedSequenceLength), longestMatchedSequenceLength]\n },\n firstChar: (text, filter, option) => {\n const [defaultMatch, defaultPriority] = SELECT_FILTER_STRATEGIES.default(text, filter, option)\n if (defaultMatch) {\n return [true, defaultPriority]\n }\n const firstChars = text\n .split(/[\\s(),.:[\\]-]+/)\n .map(w => w.charAt(0))\n .join('')\n return [0 === firstChars.indexOf(filter), 2]\n }\n}\n\nexport default class Select extends PureDataComponent {\n static propTypes = {\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n placeholder: PropTypes.string,\n options: PropTypes.oneOfType([PropTypes.instanceOf(List), PropTypes.func]).isRequired,\n opened: PropTypes.bool,\n value: PropTypes.any,\n onSelect: PropTypes.func,\n onClose: PropTypes.func,\n isEmpty: PropTypes.oneOfType([PropTypes.func, PropTypes.bool]),\n filterOptions: PropTypes.bool,\n filterPlaceholder: PropTypes.string,\n filterStrategy: PropTypes.oneOf(Object.keys(SELECT_FILTER_STRATEGIES)),\n descriptionOptions: PropTypes.bool,\n matchOptions: PropTypes.bool,\n buttonText: PropTypes.func,\n matchNoPlaceholder: PropTypes.string,\n error: PropTypes.bool,\n disabled: PropTypes.bool,\n drop: PropTypes.string,\n theme: PropTypes.string,\n onOverflow: PropTypes.func,\n noScroll: PropTypes.bool,\n optionsMinHeight: PropTypes.number,\n optionsMaxHeight: PropTypes.number,\n showSelected: PropTypes.bool,\n allowReselection: PropTypes.bool,\n fullScreenOptions: PropTypes.bool,\n newIcon: PropTypes.bool,\n icon: PropTypes.string,\n dataTestId: PropTypes.string\n }\n\n constructor(props) {\n super(props)\n this.state = {\n opened: false,\n valueOption: Map({ value: null, text: '' }),\n filter: '',\n keyboardIndex: null,\n focused: false,\n flipped: false,\n page: 1,\n fetchedOptions: List()\n }\n this.filterChangeDelayTimer = null\n this.mouseOverOptions = false\n this.filteredOptionsCache = null\n this.filteredOptionsCacheFor = null\n this.overflow = 0\n this.loading = false\n this.selectID = nextSelectID++\n }\n\n @autobind\n addGlobalCloseEvents() {\n if ('function' == typeof this.removeGlobalEvents) {\n this.removeGlobalEvents()\n }\n const mouseDownHandler = event => {\n if (this.refRoot && DOMchildOf(event.target, this.refRoot)) return\n this.closeOptionsList()\n }\n\n this.removeGlobalEvents = () => {\n ;(this.refRoot?.ownerDocument || document).removeEventListener('mousedown', mouseDownHandler)\n this.removeGlobalEvents = null\n }\n ;(this.refRoot?.ownerDocument || document).addEventListener('mousedown', mouseDownHandler)\n }\n\n @autobind\n focusOn(ref) {\n const el = this[`ref${ref}`]\n if (el && el.focus) {\n el.focus()\n return true\n }\n return false\n }\n\n @autobind\n toggleOptions(event) {\n const { opened, options, value, showSelected } = this.props\n void (event && stopEvent(event))\n const { opened: sOpened, valueOption } = this.state\n if (null == opened) {\n const willBeOpened = !sOpened\n if (willBeOpened && 'function' == typeof options) {\n options((fetchedOptions = List()) => {\n this.filteredOptionsCache = null\n this.filteredOptionsCacheFor = null\n this.setValueOption('undefined' == typeof value ? valueOption.get('value') : value, fetchedOptions)\n this.setState({ fetchedOptions })\n })\n }\n this.setState({\n opened: willBeOpened,\n filter: '',\n keyboardIndex: null\n })\n if (willBeOpened) {\n this.addGlobalCloseEvents()\n setTimeout(() => {\n if (this.mounted) {\n this.focusOn('Filter') || this.focusOn('FocusHolder')\n }\n }, 0)\n const selIndex = showSelected\n ? this.selectedOptionIndex(valueOption.get('value'))\n : this.selectedOptionIndex(valueOption.get('value')) > 1\n ? this.selectedOptionIndex(valueOption.get('value')) - 1\n : 0\n if (selIndex >= 0) {\n this.setState({ keyboardIndex: selIndex })\n setTimeout(() => {\n if (this.mounted) this.scrollToOption(selIndex)\n }, 0)\n }\n } else {\n if ('function' == typeof this.removeGlobalEvents) this.removeGlobalEvents()\n setTimeout(() => {\n if (this.mounted) this.focusOn('FocusHolder')\n }, 0)\n }\n } else this.focusOn('FocusHolder')\n return false\n }\n\n @autobind\n selectOption(option) {\n const { allowReselection } = this.props\n this.filteredOptionsCache = null\n if (Map.isMap(option)) {\n const { valueOption } = this.state\n if (option != valueOption || allowReselection) {\n const { onSelect, placeholder } = this.props\n if ('function' == typeof onSelect) {\n const res = onSelect(option)\n this.setState({\n valueOption: false == res ? Map({ value: null, text: placeholder }) : option\n })\n } else {\n this.setState({ valueOption: option })\n }\n }\n }\n }\n\n @autobind\n clickOptionList(event) {\n stopEvent(event)\n const optionElement = event.target\n ? DOMfindParent(event.target, i => i.className && i.className.split(/\\s+/).includes('rfd-ui-select-option'), 32)\n : null\n const optionIndex = optionElement ? optionElement.dataset.index : null\n if (null != optionIndex) {\n const optionIndexInt = parseInt(optionIndex, 10)\n if (!isNaN(optionIndexInt)) {\n const option = this.filteredOptions().get(optionIndexInt)\n if (option && !option.get('disabled')) {\n this.closeOptionsList(true)\n this.selectOption(option)\n // to prevent from being highlighted when no keyboard used:\n setTimeout(() => {\n this.setState({ focused: false })\n }, 0)\n }\n }\n }\n return false\n }\n\n @autobind\n mouseEnterOptions() {\n this.mouseOverOptions = true\n }\n\n @autobind\n mouseLeavedOptions() {\n this.mouseOverOptions = false\n }\n\n @autobind\n mouseEnterOption(event) {\n const optionElement = event.target\n ? DOMfindParent(event.target, i => i.className && i.className.split(/\\s+/).includes('rfd-ui-select-option'), 32)\n : null\n const optionIndex = optionElement ? optionElement.dataset.index : null\n\n null != optionIndex && this.setState({ keyboardIndex: optionIndex })\n }\n\n @autobind\n closeOptionsList(refocus = false) {\n this.setState({ page: 1 })\n const { opened, onClose } = this.props\n if (null == opened) {\n if ('function' == typeof this.removeGlobalEvents) this.removeGlobalEvents()\n this.setState({\n opened: false,\n filter: '',\n optionIndex: null,\n keyboardIndex: null,\n focused: refocus\n })\n this.mouseOverOptions = false\n if (refocus) {\n setTimeout(() => {\n if (this.mounted) this.focusOn('FocusHolder')\n }, 0)\n }\n if ('function' === typeof onClose) {\n onClose()\n }\n }\n }\n\n @autobind\n setValueOption(\n value = this.props.value || Map(),\n options = this.fetchSelectOptions(),\n placeholder = this.props.placeholder\n ) {\n this.setState({\n valueOption: options.find(o => o.get('value') == value, null, Map({ value: null, text: placeholder || '' }))\n })\n }\n\n @autobind\n selectedOptionIndex(value = this.props.value || Map(), options = this.fetchSelectOptions()) {\n return options.findIndex(o => o.get('value') == value)\n }\n\n @autobind\n onFilterChange(event) {\n const value = event.target ? event.target.value : ''\n if (this.filterChangeDelayTimer) {\n clearTimeout(this.filterChangeDelayTimer)\n }\n this.filterChangeDelayTimer = setTimeout(() => {\n if (!this.mounted) return\n this.filterChangeDelayTimer = null\n this.setState({ filter: value, keyboardIndex: null, page: 1 })\n }, 180)\n }\n\n @autobind\n scrollToOption(index) {\n const list = this.refOptions\n if (list) {\n const listItems = list.children\n if (listItems) {\n const item = listItems[index]\n if (item) {\n try {\n const listScrollTop = list.scrollTop\n const itemTop = item.offsetTop - list.offsetTop\n if (itemTop < listScrollTop) {\n list.scrollTop = itemTop\n } else if (itemTop >= listScrollTop) {\n list.scrollTop = Math.max(0, itemTop)\n }\n } catch (error) {\n window.console && window.console.error && window.console.error('scrollToOption', index, error)\n }\n }\n }\n }\n }\n\n @autobind\n onKeyDown(event) {\n switch (event.keyCode) {\n case KEYCODE_UP: {\n stopEvent(event)\n if (!this.mouseOverOptions) {\n const { keyboardIndex } = this.state\n const options = this.filteredOptions()\n const newKeyboardIndex =\n null == keyboardIndex ? 0 : Math.min(options.count(), Math.max(-1, keyboardIndex - 1))\n this.setState({ keyboardIndex: newKeyboardIndex })\n this.scrollToOption(newKeyboardIndex)\n }\n return false\n }\n case KEYCODE_DOWN: {\n stopEvent(event)\n if (!this.mouseOverOptions) {\n const { keyboardIndex } = this.state\n const options = this.filteredOptions()\n const newKeyboardIndex =\n null == keyboardIndex ? 0 : Math.min(options.count(), Math.max(-1, keyboardIndex + 1))\n this.setState({ keyboardIndex: newKeyboardIndex })\n this.scrollToOption(newKeyboardIndex)\n this.onListScroll()\n }\n return false\n }\n case KEYCODE_PGUP: {\n stopEvent(event)\n if (!this.mouseOverOptions) {\n const { keyboardIndex } = this.state\n const options = this.filteredOptions()\n const newKeyboardIndex =\n null == keyboardIndex ? 0 : Math.min(options.count() - 1, Math.max(0, keyboardIndex - 7))\n this.setState({ keyboardIndex: newKeyboardIndex })\n this.scrollToOption(newKeyboardIndex)\n }\n return false\n }\n case KEYCODE_PGDOWN: {\n stopEvent(event)\n if (!this.mouseOverOptions) {\n const { keyboardIndex } = this.state\n const options = this.filteredOptions()\n const newKeyboardIndex =\n null == keyboardIndex ? 0 : Math.min(options.count() - 1, Math.max(0, keyboardIndex + 7))\n this.setState({ keyboardIndex: newKeyboardIndex })\n this.scrollToOption(newKeyboardIndex)\n this.onListScroll()\n }\n return false\n }\n case KEYCODE_HOME: {\n stopEvent(event)\n if (!this.mouseOverOptions) {\n this.setState({ keyboardIndex: 0 })\n this.scrollToOption(0)\n }\n return false\n }\n case KEYCODE_END: {\n stopEvent(event)\n if (!this.mouseOverOptions) {\n const options = this.filteredOptions()\n const newKeyboardIndex = options.count() - 1\n this.setState({ keyboardIndex: newKeyboardIndex })\n this.scrollToOption(newKeyboardIndex)\n this.onListScroll()\n }\n return false\n }\n case KEYCODE_ENTER: {\n const { keyboardIndex } = this.state\n const opened = null == this.props.opened ? this.state.opened : this.props.opened\n if (opened && null != keyboardIndex && keyboardIndex >= 0) {\n const option = this.filteredOptions().get(keyboardIndex)\n if (option) {\n this.closeOptionsList(true)\n this.selectOption(option)\n }\n } else if (!opened) {\n this.toggleOptions()\n } else if (opened) {\n this.setState({ keyboardIndex: 0 })\n this.scrollToOption(0)\n }\n break\n }\n case KEYCODE_SPACE: {\n const opened = null == this.props.opened ? this.state.opened : this.props.opened\n if (!opened) {\n this.toggleOptions()\n }\n break\n }\n case KEYCODE_ESC: {\n if (this.state.opened) {\n this.closeOptionsList(true)\n } else {\n this.setState({ focused: false }) // double esc removes highlight\n }\n break\n }\n case KEYCODE_TAB: {\n if (this.state.opened) {\n this.closeOptionsList()\n }\n break\n }\n }\n return true\n }\n\n @autobind\n onFocus() {\n this.setState({ focused: true })\n }\n\n @autobind\n onBlur() {\n this.setState({ focused: false })\n }\n\n @autobind\n onListScroll() {\n const options = this.fetchSelectOptions()\n if (\n this.state.opened &&\n this.refOptions.scrollHeight - this.refOptions.scrollTop - 1 <= this.refOptions.clientHeight &&\n !this.loading &&\n options.size > this.state.page * MAX_OPTIONS_NUMBER\n ) {\n this.loading = true\n const index = this.state.keyboardIndex\n setTimeout(() => {\n if (this.state.keyboardIndex > index) {\n this.setState({ keyboardIndex: index })\n }\n this.loading = false\n this.setState({ page: this.state.page + 1 })\n }, 500)\n }\n }\n\n @autobind\n filteredOptions(filter = this.state.filter) {\n const options = this.fetchSelectOptions()\n const { filterOptions, matchOptions, showSelected, filterStrategy = 'default' } = this.props\n const { valueOption } = this.state\n if (!filterOptions && showSelected && options.size <= MAX_OPTIONS_NUMBER) return options\n if (\n null != this.filteredOptionsCache &&\n filter == this.filteredOptionsCacheFor &&\n options.size <= MAX_OPTIONS_NUMBER\n ) {\n return this.filteredOptionsCache\n }\n const lcfilter = filter.toLocaleLowerCase ? filter.toLocaleLowerCase() : filter.toLowerCase()\n\n const filterStrategyFn = SELECT_FILTER_STRATEGIES[filterStrategy] || SELECT_FILTER_STRATEGIES.default\n const filterPriorities = new window.Map()\n\n const filtered = options\n .filter(o => {\n const text = o.has('text') ? String(o.get('text')) : ''\n const lctext = text.toLocaleLowerCase ? text.toLocaleLowerCase() : text.toLowerCase()\n const [match, priority] = lcfilter ? filterStrategyFn(lctext, lcfilter, o) : [true, 0]\n if (match) {\n filterPriorities.set(o, priority)\n }\n return (\n (match || (o.has('skipFilter') && o.get('skipFilter'))) &&\n (showSelected || //show or hide selected item\n valueOption.get('value') != o.get('value'))\n )\n })\n .map(o => {\n if (matchOptions && lcfilter.length) {\n const text = o.has('text') ? String(o.get('text')) : ''\n const lcText = text.toLocaleLowerCase ? text.toLocaleLowerCase() : text.toLowerCase()\n const lcIndex = lcText.indexOf(lcfilter)\n const matchedText = text.slice(lcIndex, lcIndex + lcfilter.length)\n return o.set(\n 'text',\n text.replace(matchedText, `<span class=\"rfd-ui-select-option-text-matched\">${matchedText}</span>`)\n )\n } else {\n return o\n }\n })\n .sort((a, b) => {\n const priorityA = filterPriorities.get(a) || 0\n const priorityB = filterPriorities.get(b) || 0\n return priorityB - priorityA\n })\n\n this.filteredOptionsCache = filtered\n this.filteredOptionsCacheFor = filter\n return filtered\n }\n\n @autobind\n defaultIsEmpty(value) {\n return null == value.get('value')\n }\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n super.UNSAFE_componentWillReceiveProps(nextProps)\n if (nextProps.options != this.props.options || nextProps.value != this.props.value) {\n this.setValueOption(nextProps.value, this.fetchSelectOptions(nextProps.options), nextProps.placeholder)\n }\n if (nextProps.options != this.props.options) {\n this.filteredOptionsCache = null\n this.filteredOptionsCacheFor = null\n }\n if (null != nextProps.opened && nextProps.opened != this.props.opened) {\n this.setState({ opened: nextProps.opened })\n }\n if (nextProps.empty) {\n this.setState({\n valueOption: Map({ value: null, text: nextProps.placeholder || '' })\n })\n }\n }\n\n UNSAFE_componentWillMount() {\n super.UNSAFE_componentWillMount()\n this.filteredOptionsCache = null\n this.filteredOptionsCacheFor = null\n }\n\n componentDidMount() {\n super.componentDidMount()\n this.setValueOption()\n }\n\n componentWillUnmount() {\n super.componentWillUnmount()\n if ('function' == typeof this.removeGlobalEvents) {\n this.removeGlobalEvents()\n }\n this.filteredOptionsCache = null\n this.filteredOptionsCacheFor = null\n }\n\n @autobind\n fetchSelectOptions(options = this.props.options) {\n const { fetchedOptions } = this.state\n return ('function' == typeof options ? fetchedOptions : options) || List()\n }\n\n @autobind\n getText(valueOption) {\n const { buttonText } = this.props\n const optionText = valueOption.get('text') || valueOption.get('listText') || ''\n return 'function' == typeof buttonText ? buttonText(optionText) : optionText\n }\n\n @autobind\n renderButtonText(valueOption) {\n const optionCategory = valueOption.get('category')\n return (\n <span\n className=\"rfd-ui-select-button-text\"\n dangerouslySetInnerHTML={{\n __html: (optionCategory ? `<b>${optionCategory}: </b>` : '') + this.getText(valueOption)\n }}\n />\n )\n }\n\n @autobind\n renderButton() {\n const options = this.fetchSelectOptions()\n const { placeholder, filterPlaceholder, disabled, icon, fetching, newIcon } = this.props\n const { valueOption } = this.state\n const filterOptions = this.props.filterOptions || options.size > MAX_OPTIONS_NUMBER\n const opened = disabled ? false : null == this.props.opened ? this.state.opened : this.props.opened\n\n return !opened || (opened && !filterOptions) ? (\n <div\n className=\"rfd-ui-select-button\"\n id={`rfd-ui-select-${this.selectID}`}\n tabIndex={0}\n role=\"combobox\"\n aria-haspopup=\"listbox\"\n aria-controls={`rfd-ui-select-${this.selectID}-panel`}\n aria-expanded=\"false\"\n aria-label={this.getText(valueOption)}\n ref={this.saveRef('FocusHolder')}\n onMouseDown={this.toggleOptions}\n onKeyDown={this.onKeyDown}\n onFocus={this.onFocus}\n onBlur={this.onBlur}\n >\n {fetching ? (\n <div className=\"rfd-ui-select-button-loader\">\n <LoaderDots dots={3} dotSize={4} height={16} />\n </div>\n ) : (\n <>\n {valueOption.get('icon') && <i className={`icon-aytmfd-${valueOption.get('icon')}`} />}\n {icon && <i className={`icon-aytmfd-${icon}`} />}\n {this.renderButtonText(valueOption)}\n {(options.size > 0 || 'function' == typeof this.props.options) &&\n (newIcon ? (\n <span className=\"icon-aytmfd-chevron-bracket\" />\n ) : (\n <span className=\"rfd-ui-select-button-arrow\" />\n ))}\n </>\n )}\n </div>\n ) : (\n <div className=\"rfd-ui-select-filter\">\n <input\n type=\"text\"\n placeholder={filterPlaceholder || placeholder}\n role=\"combobox\"\n aria-haspopup=\"listbox\"\n aria-controls={`rfd-ui-select-${this.selectID}-panel`}\n aria-expanded=\"true\"\n aria-label={this.getText(valueOption)}\n ref={this.saveRef('Filter')}\n onChange={this.onFilterChange}\n onKeyDown={this.onKeyDown}\n />\n </div>\n )\n }\n\n renderOptions() {\n const options = this.fetchSelectOptions()\n const {\n width,\n disabled,\n noScroll,\n fullScreenOptions,\n smallHeight,\n descriptionOptions,\n matchOptions,\n matchNoPlaceholder,\n optionsMinHeight,\n optionsMaxHeight\n } = this.props\n const { valueOption, keyboardIndex, filter, page } = this.state\n const opened = disabled ? false : null == this.props.opened ? this.state.opened : this.props.opened\n const filteredOptions = this.filteredOptions()\n const loading = MAX_OPTIONS_NUMBER * page < filteredOptions.size\n\n const optionsHeight = fullScreenOptions && opened ? viewport().h - 40 : 'none'\n\n const DOMoptions =\n opened && options.size > 0\n ? filteredOptions.takeWhile((_x, i) => i <= Math.min(options.size, MAX_OPTIONS_NUMBER * page - 1))\n : List()\n\n const countedWidth = width ? (isNaN(Number(width)) ? width : Number(width)) : 200\n const containerWidth = isNaN(Number(countedWidth)) ? 'none' : countedWidth / (descriptionOptions ? 2 : 1)\n\n return opened && options.size > 0 ? (\n <div\n className=\"rfd-ui-select-container\"\n style={{\n width: containerWidth\n }}\n >\n <ul\n className=\"rfd-ui-select-options\"\n role=\"listbox\"\n id={`rfd-ui-select-${this.selectID}-panel`}\n onMouseDown={this.clickOptionList}\n onMouseEnter={this.mouseEnterOptions}\n onMouseLeave={this.mouseLeavedOptions}\n onScroll={this.onListScroll}\n style={{\n height: optionsHeight,\n minHeight:\n null != optionsMinHeight\n ? `${optionsMinHeight}px`\n : noScroll || fullScreenOptions\n ? 'none'\n : descriptionOptions\n ? smallHeight\n ? '115px'\n : '200px'\n : optionsHeight,\n maxHeight:\n null != optionsMaxHeight\n ? `${optionsMaxHeight}px`\n : noScroll || fullScreenOptions\n ? 'none'\n : smallHeight\n ? '115px'\n : '200px'\n }}\n ref={this.saveRef('Options')}\n >\n {(() => {\n const DOMoptions = filteredOptions\n .takeWhile((_x, i) => i <= Math.min(options.size, MAX_OPTIONS_NUMBER * page - 1))\n .map((o, oi) => {\n const selected = valueOption.get('value') == o.get('value')\n const ariaSelected = null != keyboardIndex && 0 <= keyboardIndex ? keyboardIndex == oi : selected\n const icon = o.get(selected ? 'selectedIcon' : 'icon')\n return (\n <li\n className={classNames('rfd-ui-select-option', {\n 'rfd-ui-select-option-selected': selected,\n 'rfd-ui-select-option-current': keyboardIndex == oi,\n 'rfd-ui-select-option-first': 0 == oi,\n 'rfd-ui-select-option-disabled': o.get('disabled')\n })}\n role=\"option\"\n aria-selected={ariaSelected}\n aria-activedescendant={ariaSelected ? `rfd-ui-select-${this.selectID}` : null}\n aria-label={o.get('text')}\n onMouseEnter={this.mouseEnterOption}\n data-index={oi}\n key={oi}\n >\n <div\n className=\"rfd-ui-select-option-text\"\n dangerouslySetInnerHTML={{\n __html:\n (icon ? `<i class='icon-aytmfd-${icon}'></i>` : '') +\n (o.get('category') ? `<b>${o.get('category')}: </b>` : '') +\n (o.get('listText') || o.get('text'))\n }}\n />\n </li>\n )\n })\n return (\n loading\n ? DOMoptions.push(\n <li className=\"rfd-ui-select-option rfd-ui-loading-sign\" data-index={-1} key={-1}>\n <span className=\"rfd-ui-select-option-text rfd-ui-select-loader\">\n <LoaderWave bars={5} height={10} />\n </span>\n </li>\n )\n : filter.length && matchOptions && matchNoPlaceholder.length && !DOMoptions.size\n ? DOMoptions.push(\n <li className=\"rfd-ui-select-option\" data-index={-1} key={-1}>\n <div\n className=\"rfd-ui-select-option-text\"\n dangerouslySetInnerHTML={{\n __html: matchNoPlaceholder\n }}\n />\n </li>\n )\n : DOMoptions\n ).toArray()\n })()}\n </ul>\n {descriptionOptions &&\n (() => {\n const option = DOMoptions.get(keyboardIndex)\n return (\n <div\n className=\"rfd-ui-select-description\"\n dangerouslySetInnerHTML={{\n __html: (option && option.get('description')) || ''\n }}\n style={{\n width: containerWidth\n }}\n />\n )\n })()}\n </div>\n ) : null\n }\n\n render() {\n const options = this.fetchSelectOptions()\n const { width, error, disabled, drop, theme, fullScreenOptions, className, dataTestId } = this.props\n const { valueOption, flipped } = this.state\n const opened = disabled ? false : null == this.props.opened ? this.state.opened : this.props.opened\n const focused = !disabled && (this.state.focused || this.state.opened)\n\n const isEmpty =\n 'function' == typeof this.props.isEmpty\n ? this.props.isEmpty(valueOption, options)\n : null == this.props.isEmpty\n ? this.defaultIsEmpty(valueOption, options)\n : Boolean(this.props.isEmpty)\n\n return (\n <div\n className={classNames('rfd-ui-select', className, {\n 'rfd-ui-select-opened': opened,\n 'rfd-ui-select-focused': focused,\n 'rfd-ui-select-error': error,\n 'rfd-ui-select-disabled': disabled,\n 'rfd-ui-select-empty': isEmpty,\n 'rfd-ui-select-mobile': fullScreenOptions && !opened,\n 'rfd-ui-select-fullscreen': fullScreenOptions && opened,\n 'rfd-ui-select-up': 'up' == drop || flipped,\n [`rfd-ui-select-theme-${theme}`]: theme\n })}\n data-testid={dataTestId}\n style={fullScreenOptions && opened ? {} : { width: width ? width : 200 }}\n ref={this.saveRef('Root')}\n >\n {this.renderButton()}\n {this.renderOptions()}\n </div>\n )\n }\n}\n","/**\n * Fuzzy test for string matching pattern.\n * @param {string} str - String to test.\n * @param {string} pattern - Pattern to match.\n * @returns {boolean} - True if string matches pattern.\n */\nexport function fuzzyTest(str: string, pattern: string) {\n let patternIdx = 0\n let stringIdx = 0\n while (patternIdx < pattern.length && stringIdx < str.length) {\n if (pattern[patternIdx] === str[stringIdx]) {\n patternIdx++\n stringIdx++\n } else {\n stringIdx++\n }\n }\n return patternIdx === pattern.length\n}\n\n/**\n * Fuzzy match string with pattern and return matched parts.\n * @param {string} str - String to match.\n * @param {string} pattern - Pattern to match.\n * @returns {Array} - [ longestMatchedSequenceLength, unmatchedPart, matchedPart, unmatchedPart, matchedPart, ... ]\n */\nexport function fuzzyMatch(str: string, pattern: string) {\n const patternLength = pattern.length\n const strLength = str.length\n\n if (0 === patternLength || patternLength > strLength) {\n return [0, str]\n } else if (1 === patternLength) {\n const matchFrom = str.indexOf(pattern)\n return -1 === matchFrom ? [0, str] : [1, str.slice(0, matchFrom), pattern, str.slice(matchFrom + 1)]\n } else if (pattern === str) {\n return [patternLength, '', pattern]\n }\n\n const result: [number, ...string[]] = [0]\n let currentPart = ''\n let currentPartMatched = false\n\n let patternIdx = 0\n let stringIdx = 0\n while (patternIdx < patternLength && stringIdx < strLength) {\n if (pattern[patternIdx] === str[stringIdx]) {\n if (!currentPartMatched) {\n result.push(currentPart)\n currentPart = ''\n currentPartMatched = true\n }\n currentPart += str[stringIdx]\n patternIdx++\n stringIdx++\n } else {\n if (currentPartMatched) {\n if (result[0] < currentPart.length) {\n result[0] = currentPart.length\n }\n result.push(currentPart)\n currentPart = ''\n currentPartMatched = false\n }\n currentPart += str[stringIdx]\n stringIdx++\n }\n }\n\n if (patternIdx === patternLength) {\n if (currentPart.length) {\n if (result[0] < currentPart.length) {\n result[0] = currentPart.length\n }\n result.push(currentPart)\n }\n if (stringIdx < strLength) {\n result.push(str.slice(stringIdx))\n }\n return result\n } else {\n return [0, str]\n }\n}\n\n/**\n * Calculates the Levenshtein distance between two strings, returning counts for each operation.\n *\n * The Levenshtein distance is a measure of the difference between two sequences.\n * This function returns the count of each type of single-character edit (substitutions,\n * insertions, and deletions) required to change one word into the other.\n *\n * @param {string} s1 - The first string to compare.\n * @param {string} s2 - The second string to compare.\n * @returns {[number, number, number]} An array containing the counts of [substitutions, insertions, deletions].\n * If maxDistance is provided and the actual distance exceeds it,\n * the function may return counts that sum to a value greater than maxDistance.\n *\n * @example\n * levenshteinDistance(\"kitten\", \"sitting\"); // returns [1, 1, 1]\n */\nexport function levenshteinDistance(s1: string, s2: string): [number, number, number] {\n const m = s1.length\n const n = s2.length\n const dp: number[][] = Array<number[]>(m + 1)\n .fill(null)\n .map(() => Array<number>(n + 1).fill(0))\n\n // Initialize the first row and column\n for (let i = 0; i <= m; i++) dp[i][0] = i\n for (let j = 0; j <= n; j++) dp[0][j] = j\n\n // Fill the dp table\n for (let i = 1; i <= m; i++) {\n for (let j = 1; j <= n; j++) {\n dp[i][j] =\n s1[i - 1] === s2[j - 1]\n ? dp[i - 1][j - 1]\n : Math.min(\n dp[i - 1][j] + 1, // deletion\n dp[i][j - 1] + 1, // insertion\n dp[i - 1][j - 1] + 1 // substitution\n )\n }\n }\n\n // Backtrack to count operations\n let substitutions = 0\n let insertions = 0\n let deletions = 0\n let i = m\n let j = n\n while (i > 0 || j > 0) {\n if (i > 0 && j > 0 && s1[i - 1] === s2[j - 1]) {\n i--\n j--\n } else if (i > 0 && j > 0 && dp[i][j] === dp[i - 1][j - 1] + 1) {\n substitutions++\n i--\n j--\n } else if (i > 0 && dp[i][j] === dp[i - 1][j] + 1) {\n deletions++\n i--\n } else {\n insertions++\n j--\n }\n }\n\n return [substitutions, insertions, deletions]\n}\n"],"names":["React","LoaderDots","prevProps","nextProps","dots","height","dotSize","props","_props$dots","lineHeight","className","style","Repeat","map","_v","i","key","width","marginRight","borderRadius","toArray","LoaderWave","_PureDataComponent","_classCallCheck","_callSuper","arguments","_inherits","value","bars","this","PureDataComponent","propTypes","PropTypes","MAX_OPTIONS_NUMBER","nextSelectID","SELECT_FILTER_STRATEGIES","default","text","filter","includes","fuzzy","longestMatchedSequenceLength","_slicedToArray","str","pattern","patternLength","length","strLength","matchFrom","indexOf","slice","result","currentPart","currentPartMatched","patternIdx","stringIdx","push","fuzzyMatch","Boolean","firstChar","option","_SELECT_FILTER_STRATE2","defaultMatch","defaultPriority","split","w","charAt","join","Select","_Select","_this","state","opened","valueOption","Map","keyboardIndex","focused","flipped","page","fetchedOptions","List","filterChangeDelayTimer","mouseOverOptions","filteredOptionsCache","filteredOptionsCacheFor","overflow","loading","selectID","_this$refRoot","_this2","removeGlobalEvents","mouseDownHandler","event","refRoot","DOMchildOf","target","closeOptionsList","_this2$refRoot","ownerDocument","document","removeEventListener","addEventListener","ref","el","focus","_this3","_this$props","options","showSelected","stopEvent","_this$state","sOpened","willBeOpened","undefined","setValueOption","get","setState","addGlobalCloseEvents","setTimeout","mounted","focusOn","selIndex","selectedOptionIndex","scrollToOption","allowReselection","_this$props2","onSelect","placeholder","res","_this4","optionElement","DOMfindParent","optionIndex","dataset","index","optionIndexInt","parseInt","isNaN","filteredOptions","selectOption","_this5","refocus","_this$props3","onClose","fetchSelectOptions","find","o","findIndex","_this6","clearTimeout","list","refOptions","listItems","children","item","listScrollTop","scrollTop","itemTop","offsetTop","Math","max","error","window","console","keyCode","KEYCODE_UP","newKeyboardIndex","min","count","KEYCODE_DOWN","onListScroll","KEYCODE_PGUP","KEYCODE_PGDOWN","KEYCODE_HOME","KEYCODE_END","KEYCODE_ENTER","toggleOptions","KEYCODE_SPACE","KEYCODE_ESC","KEYCODE_TAB","_this7","scrollHeight","clientHeight","size","_this$props4","filterOptions","matchOptions","_this$props4$filterSt","filterStrategy","lcfilter","toLocaleLowerCase","toLowerCase","filterStrategyFn","filterPriorities","filtered","has","String","lctext","_ref2","match","priority","set","lcIndex","matchedText","replace","sort","a","b","priorityA","_get","_getPrototypeOf","prototype","call","empty","buttonText","optionText","optionCategory","dangerouslySetInnerHTML","__html","getText","_this$props5","filterPlaceholder","disabled","icon","fetching","newIcon","id","tabIndex","role","saveRef","onMouseDown","onKeyDown","onFocus","onBlur","renderButtonText","type","onChange","onFilterChange","_this8","_this$props6","noScroll","fullScreenOptions","smallHeight","descriptionOptions","matchNoPlaceholder","optionsMinHeight","optionsMaxHeight","_this$state2","optionsHeight","viewport","h","DOMoptions","takeWhile","_x","countedWidth","Number","containerWidth","clickOptionList","onMouseEnter","mouseEnterOptions","onMouseLeave","mouseLeavedOptions","onScroll","minHeight","maxHeight","oi","selected","ariaSelected","classNames","mouseEnterOption","_this$props7","drop","theme","dataTestId","_this$state3","isEmpty","defaultIsEmpty","renderButton","renderOptions","isRequired","Object","keys","onOverflow","_applyDecoratedDescriptor","_class","autobind","getOwnPropertyDescriptor"],"sourceRoot":""}