{"version":3,"file":"5622-d5ef5e288cb11316d3de.js","mappings":"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","sources":["webpack://@whistleout/webui/../node_modules/.pnpm/dom-scroll-into-view@1.0.1/node_modules/dom-scroll-into-view/index.js","webpack://@whistleout/webui/../node_modules/.pnpm/dom-scroll-into-view@1.0.1/node_modules/dom-scroll-into-view/lib/dom-scroll-into-view.js","webpack://@whistleout/webui/../node_modules/.pnpm/dom-scroll-into-view@1.0.1/node_modules/dom-scroll-into-view/lib/util.js","webpack://@whistleout/webui/../node_modules/.pnpm/react-autocomplete@1.8.1_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/react-autocomplete/build/lib/Autocomplete.js"],"sourcesContent":["module.exports = require('./lib/dom-scroll-into-view');\n","var util = require('./util');\n\nfunction scrollIntoView(elem, container, config) {\n config = config || {};\n // document 归一化到 window\n if (container.nodeType === 9) {\n container = util.getWindow(container);\n }\n\n var allowHorizontalScroll = config.allowHorizontalScroll;\n var onlyScrollIfNeeded = config.onlyScrollIfNeeded;\n var alignWithTop = config.alignWithTop;\n var alignWithLeft = config.alignWithLeft;\n\n allowHorizontalScroll = allowHorizontalScroll === undefined ? true : allowHorizontalScroll;\n\n var isWin = util.isWindow(container);\n var elemOffset = util.offset(elem);\n var eh = util.outerHeight(elem);\n var ew = util.outerWidth(elem);\n var containerOffset, ch, cw, containerScroll,\n diffTop, diffBottom, win,\n winScroll, ww, wh;\n\n if (isWin) {\n win = container;\n wh = util.height(win);\n ww = util.width(win);\n winScroll = {\n left: util.scrollLeft(win),\n top: util.scrollTop(win)\n };\n // elem 相对 container 可视视窗的距离\n diffTop = {\n left: elemOffset.left - winScroll.left,\n top: elemOffset.top - winScroll.top\n };\n diffBottom = {\n left: elemOffset.left + ew - (winScroll.left + ww),\n top: elemOffset.top + eh - (winScroll.top + wh)\n };\n containerScroll = winScroll;\n } else {\n containerOffset = util.offset(container);\n ch = container.clientHeight;\n cw = container.clientWidth;\n containerScroll = {\n left: container.scrollLeft,\n top: container.scrollTop\n };\n // elem 相对 container 可视视窗的距离\n // 注意边框, offset 是边框到根节点\n diffTop = {\n left: elemOffset.left - (containerOffset.left +\n (parseFloat(util.css(container, 'borderLeftWidth')) || 0)),\n top: elemOffset.top - (containerOffset.top +\n (parseFloat(util.css(container, 'borderTopWidth')) || 0))\n };\n diffBottom = {\n left: elemOffset.left + ew -\n (containerOffset.left + cw +\n (parseFloat(util.css(container, 'borderRightWidth')) || 0)),\n top: elemOffset.top + eh -\n (containerOffset.top + ch +\n (parseFloat(util.css(container, 'borderBottomWidth')) || 0))\n };\n }\n\n if (diffTop.top < 0 || diffBottom.top > 0) {\n // 强制向上\n if (alignWithTop === true) {\n util.scrollTop(container, containerScroll.top + diffTop.top);\n } else if (alignWithTop === false) {\n util.scrollTop(container, containerScroll.top + diffBottom.top);\n } else {\n // 自动调整\n if (diffTop.top < 0) {\n util.scrollTop(container, containerScroll.top + diffTop.top);\n } else {\n util.scrollTop(container, containerScroll.top + diffBottom.top);\n }\n }\n } else {\n if (!onlyScrollIfNeeded) {\n alignWithTop = alignWithTop === undefined ? true : !!alignWithTop;\n if (alignWithTop) {\n util.scrollTop(container, containerScroll.top + diffTop.top);\n } else {\n util.scrollTop(container, containerScroll.top + diffBottom.top);\n }\n }\n }\n\n if (allowHorizontalScroll) {\n if (diffTop.left < 0 || diffBottom.left > 0) {\n // 强制向上\n if (alignWithLeft === true) {\n util.scrollLeft(container, containerScroll.left + diffTop.left);\n } else if (alignWithLeft === false) {\n util.scrollLeft(container, containerScroll.left + diffBottom.left);\n } else {\n // 自动调整\n if (diffTop.left < 0) {\n util.scrollLeft(container, containerScroll.left + diffTop.left);\n } else {\n util.scrollLeft(container, containerScroll.left + diffBottom.left);\n }\n }\n } else {\n if (!onlyScrollIfNeeded) {\n alignWithLeft = alignWithLeft === undefined ? true : !!alignWithLeft;\n if (alignWithLeft) {\n util.scrollLeft(container, containerScroll.left + diffTop.left);\n } else {\n util.scrollLeft(container, containerScroll.left + diffBottom.left);\n }\n }\n }\n }\n}\n\nmodule.exports = scrollIntoView;\n","var RE_NUM = /[\\-+]?(?:\\d*\\.|)\\d+(?:[eE][\\-+]?\\d+|)/.source;\n\nfunction getClientPosition(elem) {\n var box, x, y;\n var doc = elem.ownerDocument;\n var body = doc.body;\n var docElem = doc && doc.documentElement;\n // 根据 GBS 最新数据,A-Grade Browsers 都已支持 getBoundingClientRect 方法,不用再考虑传统的实现方式\n box = elem.getBoundingClientRect();\n\n // 注:jQuery 还考虑减去 docElem.clientLeft/clientTop\n // 但测试发现,这样反而会导致当 html 和 body 有边距/边框样式时,获取的值不正确\n // 此外,ie6 会忽略 html 的 margin 值,幸运地是没有谁会去设置 html 的 margin\n\n x = box.left;\n y = box.top;\n\n // In IE, most of the time, 2 extra pixels are added to the top and left\n // due to the implicit 2-pixel inset border. In IE6/7 quirks mode and\n // IE6 standards mode, this border can be overridden by setting the\n // document element's border to zero -- thus, we cannot rely on the\n // offset always being 2 pixels.\n\n // In quirks mode, the offset can be determined by querying the body's\n // clientLeft/clientTop, but in standards mode, it is found by querying\n // the document element's clientLeft/clientTop. Since we already called\n // getClientBoundingRect we have already forced a reflow, so it is not\n // too expensive just to query them all.\n\n // ie 下应该减去窗口的边框吧,毕竟默认 absolute 都是相对窗口定位的\n // 窗口边框标准是设 documentElement ,quirks 时设置 body\n // 最好禁止在 body 和 html 上边框 ,但 ie < 9 html 默认有 2px ,减去\n // 但是非 ie 不可能设置窗口边框,body html 也不是窗口 ,ie 可以通过 html,body 设置\n // 标准 ie 下 docElem.clientTop 就是 border-top\n // ie7 html 即窗口边框改变不了。永远为 2\n // 但标准 firefox/chrome/ie9 下 docElem.clientTop 是窗口边框,即使设了 border-top 也为 0\n\n x -= docElem.clientLeft || body.clientLeft || 0;\n y -= docElem.clientTop || body.clientTop || 0;\n\n return {left: x, top: y};\n}\n\nfunction getScroll(w, top) {\n var ret = w['page' + (top ? 'Y' : 'X') + 'Offset'];\n var method = 'scroll' + (top ? 'Top' : 'Left');\n if (typeof ret !== 'number') {\n var d = w.document;\n //ie6,7,8 standard mode\n ret = d.documentElement[method];\n if (typeof ret !== 'number') {\n //quirks mode\n ret = d.body[method];\n }\n }\n return ret;\n}\n\nfunction getScrollLeft(w) {\n return getScroll(w);\n}\n\nfunction getScrollTop(w) {\n return getScroll(w, true);\n}\n\nfunction getOffset(el) {\n var pos = getClientPosition(el);\n var doc = el.ownerDocument;\n var w = doc.defaultView || doc.parentWindow;\n pos.left += getScrollLeft(w);\n pos.top += getScrollTop(w);\n return pos;\n}\nfunction _getComputedStyle(elem, name, computedStyle) {\n var val = '';\n var d = elem.ownerDocument;\n\n // https://github.com/kissyteam/kissy/issues/61\n if ((computedStyle = (computedStyle || d.defaultView.getComputedStyle(elem, null)))) {\n val = computedStyle.getPropertyValue(name) || computedStyle[name];\n }\n\n return val;\n}\n\nvar _RE_NUM_NO_PX = new RegExp('^(' + RE_NUM + ')(?!px)[a-z%]+$', 'i');\nvar RE_POS = /^(top|right|bottom|left)$/,\n CURRENT_STYLE = 'currentStyle',\n RUNTIME_STYLE = 'runtimeStyle',\n LEFT = 'left',\n PX = 'px';\n\nfunction _getComputedStyleIE(elem, name) {\n // currentStyle maybe null\n // http://msdn.microsoft.com/en-us/library/ms535231.aspx\n var ret = elem[CURRENT_STYLE] && elem[CURRENT_STYLE][name];\n\n // 当 width/height 设置为百分比时,通过 pixelLeft 方式转换的 width/height 值\n // 一开始就处理了! CUSTOM_STYLE.height,CUSTOM_STYLE.width ,cssHook 解决@2011-08-19\n // 在 ie 下不对,需要直接用 offset 方式\n // borderWidth 等值也有问题,但考虑到 borderWidth 设为百分比的概率很小,这里就不考虑了\n\n // From the awesome hack by Dean Edwards\n // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291\n // If we're not dealing with a regular pixel number\n // but a number that has a weird ending, we need to convert it to pixels\n // exclude left right for relativity\n if (_RE_NUM_NO_PX.test(ret) && !RE_POS.test(name)) {\n // Remember the original values\n var style = elem.style,\n left = style[LEFT],\n rsLeft = elem[RUNTIME_STYLE][LEFT];\n\n // prevent flashing of content\n elem[RUNTIME_STYLE][LEFT] = elem[CURRENT_STYLE][LEFT];\n\n // Put in the new values to get a computed value out\n style[LEFT] = name === 'fontSize' ? '1em' : (ret || 0);\n ret = style.pixelLeft + PX;\n\n // Revert the changed values\n style[LEFT] = left;\n\n elem[RUNTIME_STYLE][LEFT] = rsLeft;\n }\n return ret === '' ? 'auto' : ret;\n}\n\nvar getComputedStyleX;\nif (typeof window !== 'undefined') {\n getComputedStyleX = window.getComputedStyle ? _getComputedStyle : _getComputedStyleIE;\n}\n\n// 设置 elem 相对 elem.ownerDocument 的坐标\nfunction setOffset(elem, offset) {\n // set position first, in-case top/left are set even on static elem\n if (css(elem, 'position') === 'static') {\n elem.style.position = 'relative';\n }\n\n var old = getOffset(elem),\n ret = {},\n current, key;\n\n for (key in offset) {\n current = parseFloat(css(elem, key)) || 0;\n ret[key] = current + offset[key] - old[key];\n }\n css(elem, ret);\n}\n\nfunction each(arr, fn) {\n for (var i = 0; i < arr.length; i++) {\n fn(arr[i]);\n }\n}\n\nfunction isBorderBoxFn(elem) {\n return getComputedStyleX(elem, 'boxSizing') === 'border-box';\n}\n\nvar BOX_MODELS = ['margin', 'border', 'padding'],\n CONTENT_INDEX = -1,\n PADDING_INDEX = 2,\n BORDER_INDEX = 1,\n MARGIN_INDEX = 0;\n\nfunction swap(elem, options, callback) {\n var old = {},\n style = elem.style,\n name;\n\n // Remember the old values, and insert the new ones\n for (name in options) {\n old[name] = style[name];\n style[name] = options[name];\n }\n\n callback.call(elem);\n\n // Revert the old values\n for (name in options) {\n style[name] = old[name];\n }\n}\n\nfunction getPBMWidth(elem, props, which) {\n var value = 0, prop, j, i;\n for (j = 0; j < props.length; j++) {\n prop = props[j];\n if (prop) {\n for (i = 0; i < which.length; i++) {\n var cssProp;\n if (prop === 'border') {\n cssProp = prop + which[i] + 'Width';\n } else {\n cssProp = prop + which[i];\n }\n value += parseFloat(getComputedStyleX(elem, cssProp)) || 0;\n }\n }\n }\n return value;\n}\n\n/**\n * A crude way of determining if an object is a window\n * @member util\n */\nfunction isWindow(obj) {\n // must use == for ie8\n /*jshint eqeqeq:false*/\n return obj != null && obj == obj.window;\n}\n\nvar domUtils = {};\n\neach(['Width', 'Height'], function (name) {\n domUtils['doc' + name] = function (refWin) {\n var d = refWin.document;\n return Math.max(\n //firefox chrome documentElement.scrollHeight< body.scrollHeight\n //ie standard mode : documentElement.scrollHeight> body.scrollHeight\n d.documentElement['scroll' + name],\n //quirks : documentElement.scrollHeight 最大等于可视窗口多一点?\n d.body['scroll' + name],\n domUtils['viewport' + name](d));\n };\n\n domUtils['viewport' + name] = function (win) {\n // pc browser includes scrollbar in window.innerWidth\n var prop = 'client' + name,\n doc = win.document,\n body = doc.body,\n documentElement = doc.documentElement,\n documentElementProp = documentElement[prop];\n // 标准模式取 documentElement\n // backcompat 取 body\n return doc.compatMode === 'CSS1Compat' && documentElementProp ||\n body && body[prop] || documentElementProp;\n };\n});\n\n/*\n 得到元素的大小信息\n @param elem\n @param name\n @param {String} [extra] 'padding' : (css width) + padding\n 'border' : (css width) + padding + border\n 'margin' : (css width) + padding + border + margin\n */\nfunction getWH(elem, name, extra) {\n if (isWindow(elem)) {\n return name === 'width' ? domUtils.viewportWidth(elem) : domUtils.viewportHeight(elem);\n } else if (elem.nodeType === 9) {\n return name === 'width' ? domUtils.docWidth(elem) : domUtils.docHeight(elem);\n }\n var which = name === 'width' ? ['Left', 'Right'] : ['Top', 'Bottom'],\n borderBoxValue = name === 'width' ? elem.offsetWidth : elem.offsetHeight;\n var computedStyle = getComputedStyleX(elem);\n var isBorderBox = isBorderBoxFn(elem, computedStyle);\n var cssBoxValue = 0;\n if (borderBoxValue == null || borderBoxValue <= 0) {\n borderBoxValue = undefined;\n // Fall back to computed then un computed css if necessary\n cssBoxValue = getComputedStyleX(elem, name);\n if (cssBoxValue == null || (Number(cssBoxValue)) < 0) {\n cssBoxValue = elem.style[name] || 0;\n }\n // Normalize '', auto, and prepare for extra\n cssBoxValue = parseFloat(cssBoxValue) || 0;\n }\n if (extra === undefined) {\n extra = isBorderBox ? BORDER_INDEX : CONTENT_INDEX;\n }\n var borderBoxValueOrIsBorderBox = borderBoxValue !== undefined || isBorderBox;\n var val = borderBoxValue || cssBoxValue;\n if (extra === CONTENT_INDEX) {\n if (borderBoxValueOrIsBorderBox) {\n return val - getPBMWidth(elem, ['border', 'padding'],\n which, computedStyle);\n } else {\n return cssBoxValue;\n }\n } else if (borderBoxValueOrIsBorderBox) {\n return val + (extra === BORDER_INDEX ? 0 :\n (extra === PADDING_INDEX ?\n -getPBMWidth(elem, ['border'], which, computedStyle) :\n getPBMWidth(elem, ['margin'], which, computedStyle)));\n } else {\n return cssBoxValue + getPBMWidth(elem, BOX_MODELS.slice(extra),\n which, computedStyle);\n }\n}\n\nvar cssShow = {position: 'absolute', visibility: 'hidden', display: 'block'};\n\n// fix #119 : https://github.com/kissyteam/kissy/issues/119\nfunction getWHIgnoreDisplay(elem) {\n var val, args = arguments;\n // in case elem is window\n // elem.offsetWidth === undefined\n if (elem.offsetWidth !== 0) {\n val = getWH.apply(undefined, args);\n } else {\n swap(elem, cssShow, function () {\n val = getWH.apply(undefined, args);\n });\n }\n return val;\n}\n\neach(['width', 'height'], function (name) {\n var first = name.charAt(0).toUpperCase() + name.slice(1);\n domUtils['outer' + first] = function (el, includeMargin) {\n return el && getWHIgnoreDisplay(el, name, includeMargin ? MARGIN_INDEX : BORDER_INDEX);\n };\n var which = name === 'width' ? ['Left', 'Right'] : ['Top', 'Bottom'];\n\n domUtils[name] = function (elem, val) {\n if (val !== undefined) {\n if (elem) {\n var computedStyle = getComputedStyleX(elem);\n var isBorderBox = isBorderBoxFn(elem);\n if (isBorderBox) {\n val += getPBMWidth(elem, ['padding', 'border'], which, computedStyle);\n }\n return css(elem, name, val);\n }\n return;\n }\n return elem && getWHIgnoreDisplay(elem, name, CONTENT_INDEX);\n };\n});\n\nfunction css(el, name, value) {\n if (typeof name === 'object') {\n for (var i in name) {\n css(el, i, name[i]);\n }\n return;\n }\n if (typeof value !== 'undefined') {\n if (typeof value === 'number') {\n value = value + 'px';\n }\n el.style[name] = value;\n } else {\n return getComputedStyleX(el, name);\n }\n}\n\nfunction mix(to, from) {\n for (var i in from) {\n to[i] = from[i];\n }\n return to;\n}\n\nvar utils = module.exports = {\n getWindow: function (node) {\n var doc = node.ownerDocument || node;\n return doc.defaultView || doc.parentWindow;\n },\n offset: function (el, value) {\n if (typeof value !== 'undefined') {\n setOffset(el, value);\n } else {\n return getOffset(el);\n }\n },\n isWindow: isWindow,\n each: each,\n css: css,\n clone: function (obj) {\n var ret = {};\n for (var i in obj) {\n ret[i] = obj[i];\n }\n var overflow = obj.overflow;\n if (overflow) {\n for (i in obj) {\n ret.overflow[i] = obj.overflow[i];\n }\n }\n return ret;\n },\n mix: mix,\n scrollLeft: function (w, v) {\n if (isWindow(w)) {\n if (v === undefined) {\n return getScrollLeft(w);\n } else {\n window.scrollTo(v, getScrollTop(w));\n }\n } else {\n if (v === undefined) {\n return w.scrollLeft;\n } else {\n w.scrollLeft = v;\n }\n }\n },\n scrollTop: function (w, v) {\n if (isWindow(w)) {\n if (v === undefined) {\n return getScrollTop(w);\n } else {\n window.scrollTo(getScrollLeft(w), v);\n }\n } else {\n if (v === undefined) {\n return w.scrollTop;\n } else {\n w.scrollTop = v;\n }\n }\n },\n merge: function () {\n var ret = {};\n for (var i = 0; i < arguments.length; i++) {\n utils.mix(ret, arguments[i]);\n }\n return ret;\n },\n viewportWidth: 0,\n viewportHeight: 0\n};\n\nmix(utils, domUtils);\n","'use strict';\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar React = require('react');\nvar PropTypes = require('prop-types');\n\nvar _require = require('react-dom'),\n findDOMNode = _require.findDOMNode;\n\nvar scrollIntoView = require('dom-scroll-into-view');\n\nvar IMPERATIVE_API = ['blur', 'checkValidity', 'click', 'focus', 'select', 'setCustomValidity', 'setSelectionRange', 'setRangeText'];\n\nfunction getScrollOffset() {\n return {\n x: window.pageXOffset !== undefined ? window.pageXOffset : (document.documentElement || document.body.parentNode || document.body).scrollLeft,\n y: window.pageYOffset !== undefined ? window.pageYOffset : (document.documentElement || document.body.parentNode || document.body).scrollTop\n };\n}\n\nvar Autocomplete = function (_React$Component) {\n _inherits(Autocomplete, _React$Component);\n\n function Autocomplete(props) {\n _classCallCheck(this, Autocomplete);\n\n var _this = _possibleConstructorReturn(this, (Autocomplete.__proto__ || Object.getPrototypeOf(Autocomplete)).call(this, props));\n\n _this.state = {\n isOpen: false,\n highlightedIndex: null\n };\n _this._debugStates = [];\n _this.ensureHighlightedIndex = _this.ensureHighlightedIndex.bind(_this);\n _this.exposeAPI = _this.exposeAPI.bind(_this);\n _this.handleInputFocus = _this.handleInputFocus.bind(_this);\n _this.handleInputBlur = _this.handleInputBlur.bind(_this);\n _this.handleChange = _this.handleChange.bind(_this);\n _this.handleKeyDown = _this.handleKeyDown.bind(_this);\n _this.handleInputClick = _this.handleInputClick.bind(_this);\n _this.maybeAutoCompleteText = _this.maybeAutoCompleteText.bind(_this);\n return _this;\n }\n\n _createClass(Autocomplete, [{\n key: 'componentWillMount',\n value: function componentWillMount() {\n // this.refs is frozen, so we need to assign a new object to it\n this.refs = {};\n this._ignoreBlur = false;\n this._ignoreFocus = false;\n this._scrollOffset = null;\n this._scrollTimer = null;\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n clearTimeout(this._scrollTimer);\n this._scrollTimer = null;\n }\n }, {\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(nextProps) {\n if (this.state.highlightedIndex !== null) {\n this.setState(this.ensureHighlightedIndex);\n }\n if (nextProps.autoHighlight && (this.props.value !== nextProps.value || this.state.highlightedIndex === null)) {\n this.setState(this.maybeAutoCompleteText);\n }\n }\n }, {\n key: 'componentDidMount',\n value: function componentDidMount() {\n if (this.isOpen()) {\n this.setMenuPositions();\n }\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate(prevProps, prevState) {\n if (this.state.isOpen && !prevState.isOpen || 'open' in this.props && this.props.open && !prevProps.open) this.setMenuPositions();\n\n this.maybeScrollItemIntoView();\n if (prevState.isOpen !== this.state.isOpen) {\n this.props.onMenuVisibilityChange(this.state.isOpen);\n }\n }\n }, {\n key: 'exposeAPI',\n value: function exposeAPI(el) {\n var _this2 = this;\n\n this.refs.input = el;\n IMPERATIVE_API.forEach(function (ev) {\n return _this2[ev] = el && el[ev] && el[ev].bind(el);\n });\n }\n }, {\n key: 'maybeScrollItemIntoView',\n value: function maybeScrollItemIntoView() {\n if (this.isOpen() && this.state.highlightedIndex !== null) {\n var itemNode = this.refs['item-' + this.state.highlightedIndex];\n var menuNode = this.refs.menu;\n scrollIntoView(findDOMNode(itemNode), findDOMNode(menuNode), { onlyScrollIfNeeded: true });\n }\n }\n }, {\n key: 'handleKeyDown',\n value: function handleKeyDown(event) {\n if (Autocomplete.keyDownHandlers[event.key]) Autocomplete.keyDownHandlers[event.key].call(this, event);else if (!this.isOpen()) {\n this.setState({\n isOpen: true\n });\n }\n }\n }, {\n key: 'handleChange',\n value: function handleChange(event) {\n this.props.onChange(event, event.target.value);\n }\n }, {\n key: 'getFilteredItems',\n value: function getFilteredItems(props) {\n var items = props.items;\n\n if (props.shouldItemRender) {\n items = items.filter(function (item) {\n return props.shouldItemRender(item, props.value);\n });\n }\n\n if (props.sortItems) {\n items.sort(function (a, b) {\n return props.sortItems(a, b, props.value);\n });\n }\n\n return items;\n }\n }, {\n key: 'maybeAutoCompleteText',\n value: function maybeAutoCompleteText(state, props) {\n var highlightedIndex = state.highlightedIndex;\n var value = props.value,\n getItemValue = props.getItemValue;\n\n var index = highlightedIndex === null ? 0 : highlightedIndex;\n var items = this.getFilteredItems(props);\n for (var i = 0; i < items.length; i++) {\n if (props.isItemSelectable(items[index])) break;\n index = (index + 1) % items.length;\n }\n var matchedItem = items[index] && props.isItemSelectable(items[index]) ? items[index] : null;\n if (value !== '' && matchedItem) {\n var itemValue = getItemValue(matchedItem);\n var itemValueDoesMatch = itemValue.toLowerCase().indexOf(value.toLowerCase()) === 0;\n if (itemValueDoesMatch) {\n return { highlightedIndex: index };\n }\n }\n return { highlightedIndex: null };\n }\n }, {\n key: 'ensureHighlightedIndex',\n value: function ensureHighlightedIndex(state, props) {\n if (state.highlightedIndex >= this.getFilteredItems(props).length) {\n return { highlightedIndex: null };\n }\n }\n }, {\n key: 'setMenuPositions',\n value: function setMenuPositions() {\n var node = this.refs.input;\n var rect = node.getBoundingClientRect();\n var computedStyle = global.window.getComputedStyle(node);\n var marginBottom = parseInt(computedStyle.marginBottom, 10) || 0;\n var marginLeft = parseInt(computedStyle.marginLeft, 10) || 0;\n var marginRight = parseInt(computedStyle.marginRight, 10) || 0;\n this.setState({\n menuTop: rect.bottom + marginBottom,\n menuLeft: rect.left + marginLeft,\n menuWidth: rect.width + marginLeft + marginRight\n });\n }\n }, {\n key: 'highlightItemFromMouse',\n value: function highlightItemFromMouse(index) {\n this.setState({ highlightedIndex: index });\n }\n }, {\n key: 'selectItemFromMouse',\n value: function selectItemFromMouse(item) {\n var _this3 = this;\n\n var value = this.props.getItemValue(item);\n // The menu will de-render before a mouseLeave event\n // happens. Clear the flag to release control over focus\n this.setIgnoreBlur(false);\n this.setState({\n isOpen: false,\n highlightedIndex: null\n }, function () {\n _this3.props.onSelect(value, item);\n });\n }\n }, {\n key: 'setIgnoreBlur',\n value: function setIgnoreBlur(ignore) {\n this._ignoreBlur = ignore;\n }\n }, {\n key: 'renderMenu',\n value: function renderMenu() {\n var _this4 = this;\n\n var items = this.getFilteredItems(this.props).map(function (item, index) {\n var element = _this4.props.renderItem(item, _this4.state.highlightedIndex === index, { cursor: 'default' });\n return React.cloneElement(element, {\n onMouseEnter: _this4.props.isItemSelectable(item) ? function () {\n return _this4.highlightItemFromMouse(index);\n } : null,\n onClick: _this4.props.isItemSelectable(item) ? function () {\n return _this4.selectItemFromMouse(item);\n } : null,\n ref: function ref(e) {\n return _this4.refs['item-' + index] = e;\n }\n });\n });\n var style = {\n left: this.state.menuLeft,\n top: this.state.menuTop,\n minWidth: this.state.menuWidth\n };\n var menu = this.props.renderMenu(items, this.props.value, style);\n return React.cloneElement(menu, {\n ref: function ref(e) {\n return _this4.refs.menu = e;\n },\n // Ignore blur to prevent menu from de-rendering before we can process click\n onTouchStart: function onTouchStart() {\n return _this4.setIgnoreBlur(true);\n },\n onMouseEnter: function onMouseEnter() {\n return _this4.setIgnoreBlur(true);\n },\n onMouseLeave: function onMouseLeave() {\n return _this4.setIgnoreBlur(false);\n }\n });\n }\n }, {\n key: 'handleInputBlur',\n value: function handleInputBlur(event) {\n var _this5 = this;\n\n if (this._ignoreBlur) {\n this._ignoreFocus = true;\n this._scrollOffset = getScrollOffset();\n this.refs.input.focus();\n return;\n }\n var setStateCallback = void 0;\n var highlightedIndex = this.state.highlightedIndex;\n\n if (this.props.selectOnBlur && highlightedIndex !== null) {\n var items = this.getFilteredItems(this.props);\n var item = items[highlightedIndex];\n var value = this.props.getItemValue(item);\n setStateCallback = function setStateCallback() {\n return _this5.props.onSelect(value, item);\n };\n }\n this.setState({\n isOpen: false,\n highlightedIndex: null\n }, setStateCallback);\n var onBlur = this.props.inputProps.onBlur;\n\n if (onBlur) {\n onBlur(event);\n }\n }\n }, {\n key: 'handleInputFocus',\n value: function handleInputFocus(event) {\n var _this6 = this;\n\n if (this._ignoreFocus) {\n this._ignoreFocus = false;\n var _scrollOffset = this._scrollOffset,\n x = _scrollOffset.x,\n y = _scrollOffset.y;\n\n this._scrollOffset = null;\n // Focus will cause the browser to scroll the into view.\n // This can cause the mouse coords to change, which in turn\n // could cause a new highlight to happen, cancelling the click\n // event (when selecting with the mouse)\n window.scrollTo(x, y);\n // Some browsers wait until all focus event handlers have been\n // processed before scrolling the into view, so let's\n // scroll again on the next tick to ensure we're back to where\n // the user was before focus was lost. We could do the deferred\n // scroll only, but that causes a jarring split second jump in\n // some browsers that scroll before the focus event handlers\n // are triggered.\n clearTimeout(this._scrollTimer);\n this._scrollTimer = setTimeout(function () {\n _this6._scrollTimer = null;\n window.scrollTo(x, y);\n }, 0);\n return;\n }\n this.setState({ isOpen: true });\n var onFocus = this.props.inputProps.onFocus;\n\n if (onFocus) {\n onFocus(event);\n }\n }\n }, {\n key: 'isInputFocused',\n value: function isInputFocused() {\n var el = this.refs.input;\n return el.ownerDocument && el === el.ownerDocument.activeElement;\n }\n }, {\n key: 'handleInputClick',\n value: function handleInputClick() {\n // Input will not be focused if it's disabled\n if (this.isInputFocused() && !this.isOpen()) this.setState({ isOpen: true });\n }\n }, {\n key: 'composeEventHandlers',\n value: function composeEventHandlers(internal, external) {\n return external ? function (e) {\n internal(e);external(e);\n } : internal;\n }\n }, {\n key: 'isOpen',\n value: function isOpen() {\n return 'open' in this.props ? this.props.open : this.state.isOpen;\n }\n }, {\n key: 'render',\n value: function render() {\n if (this.props.debug) {\n // you don't like it, you love it\n this._debugStates.push({\n id: this._debugStates.length,\n state: this.state\n });\n }\n\n var inputProps = this.props.inputProps;\n\n var open = this.isOpen();\n return React.createElement(\n 'div',\n _extends({ style: _extends({}, this.props.wrapperStyle) }, this.props.wrapperProps),\n this.props.renderInput(_extends({}, inputProps, {\n role: 'combobox',\n 'aria-autocomplete': 'list',\n 'aria-expanded': open,\n autoComplete: 'off',\n ref: this.exposeAPI,\n onFocus: this.handleInputFocus,\n onBlur: this.handleInputBlur,\n onChange: this.handleChange,\n onKeyDown: this.composeEventHandlers(this.handleKeyDown, inputProps.onKeyDown),\n onClick: this.composeEventHandlers(this.handleInputClick, inputProps.onClick),\n value: this.props.value\n })),\n open && this.renderMenu(),\n this.props.debug && React.createElement(\n 'pre',\n { style: { marginLeft: 300 } },\n JSON.stringify(this._debugStates.slice(Math.max(0, this._debugStates.length - 5), this._debugStates.length), null, 2)\n )\n );\n }\n }]);\n\n return Autocomplete;\n}(React.Component);\n\nAutocomplete.propTypes = {\n /**\n * The items to display in the dropdown menu\n */\n items: PropTypes.array.isRequired,\n /**\n * The value to display in the input field\n */\n value: PropTypes.any,\n /**\n * Arguments: `event: Event, value: String`\n *\n * Invoked every time the user changes the input's value.\n */\n onChange: PropTypes.func,\n /**\n * Arguments: `value: String, item: Any`\n *\n * Invoked when the user selects an item from the dropdown menu.\n */\n onSelect: PropTypes.func,\n /**\n * Arguments: `item: Any, value: String`\n *\n * Invoked for each entry in `items` and its return value is used to\n * determine whether or not it should be displayed in the dropdown menu.\n * By default all items are always rendered.\n */\n shouldItemRender: PropTypes.func,\n /**\n * Arguments: `item: Any`\n *\n * Invoked when attempting to select an item. The return value is used to\n * determine whether the item should be selectable or not.\n * By default all items are selectable.\n */\n isItemSelectable: PropTypes.func,\n /**\n * Arguments: `itemA: Any, itemB: Any, value: String`\n *\n * The function which is used to sort `items` before display.\n */\n sortItems: PropTypes.func,\n /**\n * Arguments: `item: Any`\n *\n * Used to read the display value from each entry in `items`.\n */\n getItemValue: PropTypes.func.isRequired,\n /**\n * Arguments: `item: Any, isHighlighted: Boolean, styles: Object`\n *\n * Invoked for each entry in `items` that also passes `shouldItemRender` to\n * generate the render tree for each item in the dropdown menu. `styles` is\n * an optional set of styles that can be applied to improve the look/feel\n * of the items in the dropdown menu.\n */\n renderItem: PropTypes.func.isRequired,\n /**\n * Arguments: `items: Array, value: String, styles: Object`\n *\n * Invoked to generate the render tree for the dropdown menu. Ensure the\n * returned tree includes every entry in `items` or else the highlight order\n * and keyboard navigation logic will break. `styles` will contain\n * { top, left, minWidth } which are the coordinates of the top-left corner\n * and the width of the dropdown menu.\n */\n renderMenu: PropTypes.func,\n /**\n * Styles that are applied to the dropdown menu in the default `renderMenu`\n * implementation. If you override `renderMenu` and you want to use\n * `menuStyle` you must manually apply them (`this.props.menuStyle`).\n */\n menuStyle: PropTypes.object,\n /**\n * Arguments: `props: Object`\n *\n * Invoked to generate the input element. The `props` argument is the result\n * of merging `props.inputProps` with a selection of props that are required\n * both for functionality and accessibility. At the very least you need to\n * apply `props.ref` and all `props.on` event handlers. Failing to do\n * this will cause `Autocomplete` to behave unexpectedly.\n */\n renderInput: PropTypes.func,\n /**\n * Props passed to `props.renderInput`. By default these props will be\n * applied to the `` element rendered by `Autocomplete`, unless you\n * have specified a custom value for `props.renderInput`. Any properties\n * supported by `HTMLInputElement` can be specified, apart from the\n * following which are set by `Autocomplete`: value, autoComplete, role,\n * aria-autocomplete. `inputProps` is commonly used for (but not limited to)\n * placeholder, event handlers (onFocus, onBlur, etc.), autoFocus, etc..\n */\n inputProps: PropTypes.object,\n /**\n * Props that are applied to the element which wraps the `` and\n * dropdown menu elements rendered by `Autocomplete`.\n */\n wrapperProps: PropTypes.object,\n /**\n * This is a shorthand for `wrapperProps={{ style: }}`.\n * Note that `wrapperStyle` is applied before `wrapperProps`, so the latter\n * will win if it contains a `style` entry.\n */\n wrapperStyle: PropTypes.object,\n /**\n * Whether or not to automatically highlight the top match in the dropdown\n * menu.\n */\n autoHighlight: PropTypes.bool,\n /**\n * Whether or not to automatically select the highlighted item when the\n * `` loses focus.\n */\n selectOnBlur: PropTypes.bool,\n /**\n * Arguments: `isOpen: Boolean`\n *\n * Invoked every time the dropdown menu's visibility changes (i.e. every\n * time it is displayed/hidden).\n */\n onMenuVisibilityChange: PropTypes.func,\n /**\n * Used to override the internal logic which displays/hides the dropdown\n * menu. This is useful if you want to force a certain state based on your\n * UX/business logic. Use it together with `onMenuVisibilityChange` for\n * fine-grained control over the dropdown menu dynamics.\n */\n open: PropTypes.bool,\n debug: PropTypes.bool\n};\nAutocomplete.defaultProps = {\n value: '',\n wrapperProps: {},\n wrapperStyle: {\n display: 'inline-block'\n },\n inputProps: {},\n renderInput: function renderInput(props) {\n return React.createElement('input', props);\n },\n onChange: function onChange() {},\n onSelect: function onSelect() {},\n isItemSelectable: function isItemSelectable() {\n return true;\n },\n renderMenu: function renderMenu(items, value, style) {\n return React.createElement('div', { style: _extends({}, style, this.menuStyle), children: items });\n },\n\n menuStyle: {\n borderRadius: '3px',\n boxShadow: '0 2px 12px rgba(0, 0, 0, 0.1)',\n background: 'rgba(255, 255, 255, 0.9)',\n padding: '2px 0',\n fontSize: '90%',\n position: 'fixed',\n overflow: 'auto',\n maxHeight: '50%' },\n autoHighlight: true,\n selectOnBlur: false,\n onMenuVisibilityChange: function onMenuVisibilityChange() {}\n};\nAutocomplete.keyDownHandlers = {\n ArrowDown: function ArrowDown(event) {\n event.preventDefault();\n var items = this.getFilteredItems(this.props);\n if (!items.length) return;\n var highlightedIndex = this.state.highlightedIndex;\n\n var index = highlightedIndex === null ? -1 : highlightedIndex;\n for (var i = 0; i < items.length; i++) {\n var p = (index + i + 1) % items.length;\n if (this.props.isItemSelectable(items[p])) {\n index = p;\n break;\n }\n }\n if (index > -1 && index !== highlightedIndex) {\n this.setState({\n highlightedIndex: index,\n isOpen: true\n });\n }\n },\n ArrowUp: function ArrowUp(event) {\n event.preventDefault();\n var items = this.getFilteredItems(this.props);\n if (!items.length) return;\n var highlightedIndex = this.state.highlightedIndex;\n\n var index = highlightedIndex === null ? items.length : highlightedIndex;\n for (var i = 0; i < items.length; i++) {\n var p = (index - (1 + i) + items.length) % items.length;\n if (this.props.isItemSelectable(items[p])) {\n index = p;\n break;\n }\n }\n if (index !== items.length) {\n this.setState({\n highlightedIndex: index,\n isOpen: true\n });\n }\n },\n Enter: function Enter(event) {\n var _this7 = this;\n\n // Key code 229 is used for selecting items from character selectors (Pinyin, Kana, etc)\n if (event.keyCode !== 13) return;\n // In case the user is currently hovering over the menu\n this.setIgnoreBlur(false);\n if (!this.isOpen()) {\n // menu is closed so there is no selection to accept -> do nothing\n return;\n } else if (this.state.highlightedIndex == null) {\n // input has focus but no menu item is selected + enter is hit -> close the menu, highlight whatever's in input\n this.setState({\n isOpen: false\n }, function () {\n _this7.refs.input.select();\n });\n } else {\n // text entered + menu item has been highlighted + enter is hit -> update value to that of selected menu item, close the menu\n event.preventDefault();\n var item = this.getFilteredItems(this.props)[this.state.highlightedIndex];\n var value = this.props.getItemValue(item);\n this.setState({\n isOpen: false,\n highlightedIndex: null\n }, function () {\n //this.refs.input.focus() // TODO: file issue\n _this7.refs.input.setSelectionRange(value.length, value.length);\n _this7.props.onSelect(value, item);\n });\n }\n },\n Escape: function Escape() {\n // In case the user is currently hovering over the menu\n this.setIgnoreBlur(false);\n this.setState({\n highlightedIndex: null,\n isOpen: false\n });\n },\n Tab: function Tab() {\n // In case the user is currently hovering over the menu\n this.setIgnoreBlur(false);\n }\n};\n\n\nmodule.exports = Autocomplete;"],"names":["module","exports","util","elem","container","config","nodeType","getWindow","allowHorizontalScroll","onlyScrollIfNeeded","alignWithTop","alignWithLeft","undefined","containerOffset","ch","cw","containerScroll","diffTop","diffBottom","win","winScroll","ww","wh","isWin","isWindow","elemOffset","offset","eh","outerHeight","ew","outerWidth","height","width","left","scrollLeft","top","scrollTop","clientHeight","clientWidth","parseFloat","css","getScroll","w","ret","method","d","document","documentElement","body","getScrollLeft","getScrollTop","getOffset","el","pos","box","x","y","doc","ownerDocument","docElem","getBoundingClientRect","clientLeft","clientTop","getClientPosition","defaultView","parentWindow","getComputedStyleX","_RE_NUM_NO_PX","RegExp","source","RE_POS","CURRENT_STYLE","RUNTIME_STYLE","LEFT","each","arr","fn","i","length","isBorderBoxFn","window","getComputedStyle","name","computedStyle","val","getPropertyValue","test","style","rsLeft","pixelLeft","BOX_MODELS","getPBMWidth","props","which","prop","j","value","cssProp","obj","domUtils","getWH","extra","viewportWidth","viewportHeight","docWidth","docHeight","borderBoxValue","offsetWidth","offsetHeight","isBorderBox","cssBoxValue","Number","borderBoxValueOrIsBorderBox","slice","refWin","Math","max","documentElementProp","compatMode","cssShow","position","visibility","display","getWHIgnoreDisplay","args","arguments","apply","options","old","call","swap","mix","to","from","first","charAt","toUpperCase","includeMargin","utils","node","current","key","setOffset","clone","overflow","v","scrollTo","merge","_extends","Object","assign","target","prototype","hasOwnProperty","_createClass","defineProperties","descriptor","enumerable","configurable","writable","defineProperty","Constructor","protoProps","staticProps","React","PropTypes","findDOMNode","scrollIntoView","IMPERATIVE_API","Autocomplete","_React$Component","instance","TypeError","_classCallCheck","this","_this","self","ReferenceError","_possibleConstructorReturn","__proto__","getPrototypeOf","state","isOpen","highlightedIndex","_debugStates","ensureHighlightedIndex","bind","exposeAPI","handleInputFocus","handleInputBlur","handleChange","handleKeyDown","handleInputClick","maybeAutoCompleteText","subClass","superClass","create","constructor","setPrototypeOf","_inherits","refs","_ignoreBlur","_ignoreFocus","_scrollOffset","_scrollTimer","clearTimeout","nextProps","setState","autoHighlight","setMenuPositions","prevProps","prevState","open","maybeScrollItemIntoView","onMenuVisibilityChange","_this2","input","forEach","ev","itemNode","menuNode","menu","event","keyDownHandlers","onChange","items","shouldItemRender","filter","item","sortItems","sort","a","b","getItemValue","index","getFilteredItems","isItemSelectable","matchedItem","toLowerCase","indexOf","rect","g","marginBottom","parseInt","marginLeft","marginRight","menuTop","bottom","menuLeft","menuWidth","_this3","setIgnoreBlur","onSelect","ignore","_this4","map","element","renderItem","cursor","cloneElement","onMouseEnter","highlightItemFromMouse","onClick","selectItemFromMouse","ref","e","minWidth","renderMenu","onTouchStart","onMouseLeave","_this5","pageXOffset","parentNode","pageYOffset","focus","setStateCallback","selectOnBlur","onBlur","inputProps","_this6","setTimeout","onFocus","activeElement","isInputFocused","internal","external","debug","push","id","createElement","wrapperStyle","wrapperProps","renderInput","role","autoComplete","onKeyDown","composeEventHandlers","JSON","stringify","Component","propTypes","array","isRequired","any","func","menuStyle","object","bool","defaultProps","children","borderRadius","boxShadow","background","padding","fontSize","maxHeight","ArrowDown","preventDefault","p","ArrowUp","Enter","_this7","keyCode","select","setSelectionRange","Escape","Tab"],"sourceRoot":""}