{"version":3,"file":"static/chunks/2844.ffe3ee8a2851f92d.js","mappings":"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","sources":["webpack://_N_E/../../node_modules/dom-scroll-into-view/index.js","webpack://_N_E/../../node_modules/dom-scroll-into-view/lib/dom-scroll-into-view.js","webpack://_N_E/../../node_modules/dom-scroll-into-view/lib/util.js","webpack://_N_E/../../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","each","arr","fn","i","length","isBorderBoxFn","window","getComputedStyle","name","computedStyle","val","getPropertyValue","test","style","rsLeft","pixelLeft","BOX_MODELS","swap","options","callback","old","call","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","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":""}