{"ast":null,"code":"import React, { Component, createRef } from 'react';\nimport { classNames, ObjectUtils, DomHandler, ZIndexUtils, ConnectedOverlayScrollHandler } from 'primereact/utils';\nimport { Ripple } from 'primereact/ripple';\nimport { CSSTransition } from 'primereact/csstransition';\nimport { Portal } from 'primereact/portal';\nimport { VirtualScroller } from 'primereact/virtualscroller';\nimport PrimeReact, { localeOption, FilterService } from 'primereact/api';\nimport { tip } from 'primereact/tooltip';\nimport { OverlayService } from 'primereact/overlayservice';\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _createSuper$2(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct$2();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n}\n\nfunction _isNativeReflectConstruct$2() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nvar DropdownItem = /*#__PURE__*/function (_Component) {\n _inherits(DropdownItem, _Component);\n\n var _super = _createSuper$2(DropdownItem);\n\n function DropdownItem(props) {\n var _this;\n\n _classCallCheck(this, DropdownItem);\n\n _this = _super.call(this, props);\n _this.onClick = _this.onClick.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(DropdownItem, [{\n key: \"onClick\",\n value: function onClick(event) {\n if (this.props.onClick) {\n this.props.onClick({\n originalEvent: event,\n option: this.props.option\n });\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var className = classNames('p-dropdown-item', {\n 'p-highlight': this.props.selected,\n 'p-disabled': this.props.disabled,\n 'p-dropdown-item-empty': !this.props.label || this.props.label.length === 0\n }, this.props.option.className);\n var content = this.props.template ? ObjectUtils.getJSXElement(this.props.template, this.props.option) : this.props.label;\n return /*#__PURE__*/React.createElement(\"li\", {\n className: className,\n onClick: this.onClick,\n \"aria-label\": this.props.label,\n key: this.props.label,\n role: \"option\",\n \"aria-selected\": this.props.selected\n }, content, /*#__PURE__*/React.createElement(Ripple, null));\n }\n }]);\n\n return DropdownItem;\n}(Component);\n\n_defineProperty(DropdownItem, \"defaultProps\", {\n option: null,\n label: null,\n template: null,\n selected: false,\n disabled: false,\n onClick: null\n});\n\nfunction ownKeys$1(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread$1(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys$1(Object(source), !0).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$1(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n\n return target;\n}\n\nfunction _createSuper$1(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct$1();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n}\n\nfunction _isNativeReflectConstruct$1() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nvar DropdownPanelComponent = /*#__PURE__*/function (_Component) {\n _inherits(DropdownPanelComponent, _Component);\n\n var _super = _createSuper$1(DropdownPanelComponent);\n\n function DropdownPanelComponent(props) {\n var _this;\n\n _classCallCheck(this, DropdownPanelComponent);\n\n _this = _super.call(this, props);\n _this.onEnter = _this.onEnter.bind(_assertThisInitialized(_this));\n _this.onEntered = _this.onEntered.bind(_assertThisInitialized(_this));\n _this.onFilterInputChange = _this.onFilterInputChange.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(DropdownPanelComponent, [{\n key: \"onEnter\",\n value: function onEnter() {\n var _this2 = this;\n\n this.props.onEnter(function () {\n if (_this2.virtualScrollerRef) {\n var selectedIndex = _this2.props.getSelectedOptionIndex();\n\n if (selectedIndex !== -1) {\n _this2.virtualScrollerRef.scrollToIndex(selectedIndex);\n }\n }\n });\n }\n }, {\n key: \"onEntered\",\n value: function onEntered() {\n var _this3 = this;\n\n this.props.onEntered(function () {\n if (_this3.props.filter && _this3.props.filterInputAutoFocus) {\n _this3.filterInput.focus();\n }\n });\n }\n }, {\n key: \"onFilterInputChange\",\n value: function onFilterInputChange(event) {\n if (this.virtualScrollerRef) {\n this.virtualScrollerRef.scrollToIndex(0);\n }\n\n this.props.onFilterInputChange && this.props.onFilterInputChange(event);\n }\n }, {\n key: \"isEmptyFilter\",\n value: function isEmptyFilter() {\n return !(this.props.visibleOptions && this.props.visibleOptions.length) && this.props.hasFilter();\n }\n }, {\n key: \"renderGroupChildren\",\n value: function renderGroupChildren(optionGroup) {\n var _this4 = this;\n\n var groupChildren = this.props.getOptionGroupChildren(optionGroup);\n return groupChildren.map(function (option, j) {\n var optionLabel = _this4.props.getOptionLabel(option);\n\n var optionKey = j + '_' + _this4.props.getOptionRenderKey(option);\n\n var disabled = _this4.props.isOptionDisabled(option);\n\n return /*#__PURE__*/React.createElement(DropdownItem, {\n key: optionKey,\n label: optionLabel,\n option: option,\n template: _this4.props.itemTemplate,\n selected: _this4.props.isSelected(option),\n disabled: disabled,\n onClick: _this4.props.onOptionClick\n });\n });\n }\n }, {\n key: \"renderEmptyMessage\",\n value: function renderEmptyMessage(emptyMessage, isFilter) {\n var message = ObjectUtils.getJSXElement(emptyMessage, this.props) || localeOption(isFilter ? 'emptyFilterMessage' : 'emptyMessage');\n return /*#__PURE__*/React.createElement(\"li\", {\n className: \"p-dropdown-empty-message\"\n }, message);\n }\n }, {\n key: \"renderItem\",\n value: function renderItem(option, index) {\n if (this.props.optionGroupLabel) {\n var groupContent = this.props.optionGroupTemplate ? ObjectUtils.getJSXElement(this.props.optionGroupTemplate, option, index) : this.props.getOptionGroupLabel(option);\n var groupChildrenContent = this.renderGroupChildren(option);\n var key = index + '_' + this.props.getOptionGroupRenderKey(option);\n return /*#__PURE__*/React.createElement(React.Fragment, {\n key: key\n }, /*#__PURE__*/React.createElement(\"li\", {\n className: \"p-dropdown-item-group\"\n }, groupContent), groupChildrenContent);\n } else {\n var optionLabel = this.props.getOptionLabel(option);\n var optionKey = index + '_' + this.props.getOptionRenderKey(option);\n var disabled = this.props.isOptionDisabled(option);\n return /*#__PURE__*/React.createElement(DropdownItem, {\n key: optionKey,\n label: optionLabel,\n option: option,\n template: this.props.itemTemplate,\n selected: this.props.isSelected(option),\n disabled: disabled,\n onClick: this.props.onOptionClick\n });\n }\n }\n }, {\n key: \"renderItems\",\n value: function renderItems() {\n var _this5 = this;\n\n if (this.props.visibleOptions && this.props.visibleOptions.length) {\n return this.props.visibleOptions.map(function (option, index) {\n return _this5.renderItem(option, index);\n });\n } else if (this.props.hasFilter()) {\n return this.renderEmptyMessage(this.props.emptyFilterMessage, true);\n }\n\n return this.renderEmptyMessage(this.props.emptyMessage);\n }\n }, {\n key: \"renderFilterClearIcon\",\n value: function renderFilterClearIcon() {\n var _this6 = this;\n\n if (this.props.showFilterClear && this.props.filterValue) {\n return /*#__PURE__*/React.createElement(\"i\", {\n className: \"p-dropdown-filter-clear-icon pi pi-times\",\n onClick: function onClick() {\n return _this6.props.onFilterClearIconClick(function () {\n return _this6.filterInput.focus();\n });\n }\n });\n }\n\n return null;\n }\n }, {\n key: \"renderFilter\",\n value: function renderFilter() {\n var _this7 = this;\n\n if (this.props.filter) {\n var clearIcon = this.renderFilterClearIcon();\n var containerClassName = classNames('p-dropdown-filter-container', {\n 'p-dropdown-clearable-filter': !!clearIcon\n });\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-dropdown-header\"\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: containerClassName\n }, /*#__PURE__*/React.createElement(\"input\", {\n ref: function ref(el) {\n return _this7.filterInput = el;\n },\n type: \"text\",\n autoComplete: \"off\",\n className: \"p-dropdown-filter p-inputtext p-component\",\n placeholder: this.props.filterPlaceholder,\n onKeyDown: this.props.onFilterInputKeyDown,\n onChange: this.onFilterInputChange,\n value: this.props.filterValue\n }), clearIcon, /*#__PURE__*/React.createElement(\"i\", {\n className: \"p-dropdown-filter-icon pi pi-search\"\n })));\n }\n\n return null;\n }\n }, {\n key: \"renderContent\",\n value: function renderContent() {\n var _this8 = this;\n\n if (this.props.virtualScrollerOptions) {\n var virtualScrollerProps = _objectSpread$1(_objectSpread$1({}, this.props.virtualScrollerOptions), {\n style: _objectSpread$1(_objectSpread$1({}, this.props.virtualScrollerOptions.style), {\n height: this.props.scrollHeight\n }),\n className: classNames('p-dropdown-items-wrapper', this.props.virtualScrollerOptions.className),\n items: this.props.visibleOptions,\n onLazyLoad: function onLazyLoad(event) {\n return _this8.props.virtualScrollerOptions.onLazyLoad(_objectSpread$1(_objectSpread$1({}, event), {\n filter: _this8.props.filterValue\n }));\n },\n itemTemplate: function itemTemplate(item, options) {\n return item && _this8.renderItem(item, options.index);\n },\n contentTemplate: function contentTemplate(options) {\n var className = classNames('p-dropdown-items', options.className);\n var content = _this8.isEmptyFilter() ? _this8.renderEmptyMessage() : options.children;\n return /*#__PURE__*/React.createElement(\"ul\", {\n ref: options.contentRef,\n className: className,\n role: \"listbox\"\n }, content);\n }\n });\n\n return /*#__PURE__*/React.createElement(VirtualScroller, _extends({\n ref: function ref(el) {\n return _this8.virtualScrollerRef = el;\n }\n }, virtualScrollerProps));\n } else {\n var items = this.renderItems();\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-dropdown-items-wrapper\",\n style: {\n maxHeight: this.props.scrollHeight || 'auto'\n }\n }, /*#__PURE__*/React.createElement(\"ul\", {\n className: \"p-dropdown-items\",\n role: \"listbox\"\n }, items));\n }\n }\n }, {\n key: \"renderElement\",\n value: function renderElement() {\n var className = classNames('p-dropdown-panel p-component', this.props.panelClassName);\n var filter = this.renderFilter();\n var content = this.renderContent();\n return /*#__PURE__*/React.createElement(CSSTransition, {\n nodeRef: this.props.forwardRef,\n classNames: \"p-connected-overlay\",\n \"in\": this.props[\"in\"],\n timeout: {\n enter: 120,\n exit: 100\n },\n options: this.props.transitionOptions,\n unmountOnExit: true,\n onEnter: this.onEnter,\n onEntering: this.props.onEntering,\n onEntered: this.onEntered,\n onExit: this.props.onExit,\n onExited: this.props.onExited\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: this.props.forwardRef,\n className: className,\n style: this.props.panelStyle,\n onClick: this.props.onClick\n }, filter, content));\n }\n }, {\n key: \"render\",\n value: function render() {\n var element = this.renderElement();\n return /*#__PURE__*/React.createElement(Portal, {\n element: element,\n appendTo: this.props.appendTo\n });\n }\n }]);\n\n return DropdownPanelComponent;\n}(Component);\n\nvar DropdownPanel = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(DropdownPanelComponent, _extends({\n forwardRef: ref\n }, props));\n});\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n\n return target;\n}\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (!it) {\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nvar Dropdown = /*#__PURE__*/function (_Component) {\n _inherits(Dropdown, _Component);\n\n var _super = _createSuper(Dropdown);\n\n function Dropdown(props) {\n var _this;\n\n _classCallCheck(this, Dropdown);\n\n _this = _super.call(this, props);\n _this.state = {\n filter: '',\n focused: false,\n overlayVisible: false\n };\n _this.onClick = _this.onClick.bind(_assertThisInitialized(_this));\n _this.onInputFocus = _this.onInputFocus.bind(_assertThisInitialized(_this));\n _this.onInputBlur = _this.onInputBlur.bind(_assertThisInitialized(_this));\n _this.onInputKeyDown = _this.onInputKeyDown.bind(_assertThisInitialized(_this));\n _this.onEditableInputChange = _this.onEditableInputChange.bind(_assertThisInitialized(_this));\n _this.onEditableInputFocus = _this.onEditableInputFocus.bind(_assertThisInitialized(_this));\n _this.onOptionClick = _this.onOptionClick.bind(_assertThisInitialized(_this));\n _this.onFilterInputChange = _this.onFilterInputChange.bind(_assertThisInitialized(_this));\n _this.onFilterInputKeyDown = _this.onFilterInputKeyDown.bind(_assertThisInitialized(_this));\n _this.onFilterClearIconClick = _this.onFilterClearIconClick.bind(_assertThisInitialized(_this));\n _this.onPanelClick = _this.onPanelClick.bind(_assertThisInitialized(_this));\n _this.onOverlayEnter = _this.onOverlayEnter.bind(_assertThisInitialized(_this));\n _this.onOverlayEntered = _this.onOverlayEntered.bind(_assertThisInitialized(_this));\n _this.onOverlayExit = _this.onOverlayExit.bind(_assertThisInitialized(_this));\n _this.onOverlayExited = _this.onOverlayExited.bind(_assertThisInitialized(_this));\n _this.resetFilter = _this.resetFilter.bind(_assertThisInitialized(_this));\n _this.clear = _this.clear.bind(_assertThisInitialized(_this));\n _this.hasFilter = _this.hasFilter.bind(_assertThisInitialized(_this));\n _this.getOptionLabel = _this.getOptionLabel.bind(_assertThisInitialized(_this));\n _this.getOptionRenderKey = _this.getOptionRenderKey.bind(_assertThisInitialized(_this));\n _this.isOptionDisabled = _this.isOptionDisabled.bind(_assertThisInitialized(_this));\n _this.getOptionGroupChildren = _this.getOptionGroupChildren.bind(_assertThisInitialized(_this));\n _this.getOptionGroupLabel = _this.getOptionGroupLabel.bind(_assertThisInitialized(_this));\n _this.getOptionGroupRenderKey = _this.getOptionGroupRenderKey.bind(_assertThisInitialized(_this));\n _this.getSelectedOptionIndex = _this.getSelectedOptionIndex.bind(_assertThisInitialized(_this));\n _this.isSelected = _this.isSelected.bind(_assertThisInitialized(_this));\n _this.overlayRef = /*#__PURE__*/createRef();\n _this.inputRef = /*#__PURE__*/createRef(_this.props.inputRef);\n return _this;\n }\n\n _createClass(Dropdown, [{\n key: \"onClick\",\n value: function onClick(event) {\n if (this.props.disabled) {\n return;\n }\n\n if (DomHandler.hasClass(event.target, 'p-dropdown-clear-icon') || event.target.tagName === 'INPUT') {\n return;\n } else if (!this.overlayRef.current || !(this.overlayRef.current && this.overlayRef.current.contains(event.target))) {\n this.focusInput.focus();\n\n if (this.state.overlayVisible) {\n this.hideOverlay();\n } else {\n this.showOverlay();\n }\n }\n }\n }, {\n key: \"onInputFocus\",\n value: function onInputFocus(event) {\n var _this2 = this;\n\n event.persist();\n\n if (this.props.showOnFocus && !this.state.overlayVisible) {\n this.showOverlay();\n }\n\n this.setState({\n focused: true\n }, function () {\n if (_this2.props.onFocus) {\n _this2.props.onFocus(event);\n }\n });\n }\n }, {\n key: \"onInputBlur\",\n value: function onInputBlur(event) {\n var _this3 = this;\n\n event.persist();\n this.setState({\n focused: false\n }, function () {\n if (_this3.props.onBlur) {\n _this3.props.onBlur(event);\n }\n });\n }\n }, {\n key: \"onPanelClick\",\n value: function onPanelClick(event) {\n OverlayService.emit('overlay-click', {\n originalEvent: event,\n target: this.container\n });\n }\n }, {\n key: \"onInputKeyDown\",\n value: function onInputKeyDown(event) {\n switch (event.which) {\n //down\n case 40:\n this.onDownKey(event);\n break;\n //up\n\n case 38:\n this.onUpKey(event);\n break;\n //space\n\n case 32:\n if (this.state.overlayVisible) this.hideOverlay();else this.showOverlay();\n event.preventDefault();\n break;\n //enter\n\n case 13:\n this.hideOverlay();\n event.preventDefault();\n break;\n //escape and tab\n\n case 27:\n case 9:\n this.hideOverlay();\n break;\n\n default:\n this.search(event);\n break;\n }\n }\n }, {\n key: \"onFilterInputKeyDown\",\n value: function onFilterInputKeyDown(event) {\n switch (event.which) {\n //down\n case 40:\n this.onDownKey(event);\n break;\n //up\n\n case 38:\n this.onUpKey(event);\n break;\n //enter and escape\n\n case 13:\n case 27:\n this.hideOverlay();\n event.preventDefault();\n break;\n }\n }\n }, {\n key: \"onUpKey\",\n value: function onUpKey(event) {\n var visibleOptions = this.getVisibleOptions();\n\n if (visibleOptions) {\n var prevOption = this.findPrevOption(this.getSelectedOptionIndex());\n\n if (prevOption) {\n this.selectItem({\n originalEvent: event,\n option: prevOption\n });\n }\n }\n\n event.preventDefault();\n }\n }, {\n key: \"onDownKey\",\n value: function onDownKey(event) {\n var visibleOptions = this.getVisibleOptions();\n\n if (visibleOptions) {\n if (!this.state.overlayVisible && event.altKey) {\n this.showOverlay();\n } else {\n var nextOption = this.findNextOption(this.getSelectedOptionIndex());\n\n if (nextOption) {\n this.selectItem({\n originalEvent: event,\n option: nextOption\n });\n }\n }\n }\n\n event.preventDefault();\n }\n }, {\n key: \"findNextOption\",\n value: function findNextOption(index) {\n var visibleOptions = this.getVisibleOptions();\n\n if (this.props.optionGroupLabel) {\n var groupIndex = index === -1 ? 0 : index.group;\n var optionIndex = index === -1 ? -1 : index.option;\n var option = this.findNextOptionInList(this.getOptionGroupChildren(visibleOptions[groupIndex]), optionIndex);\n if (option) return option;else if (groupIndex + 1 !== visibleOptions.length) return this.findNextOption({\n group: groupIndex + 1,\n option: -1\n });else return null;\n } else {\n return this.findNextOptionInList(visibleOptions, index);\n }\n }\n }, {\n key: \"findNextOptionInList\",\n value: function findNextOptionInList(list, index) {\n var i = index + 1;\n\n if (i === list.length) {\n return null;\n }\n\n var option = list[i];\n if (this.isOptionDisabled(option)) return this.findNextOptionInList(i);else return option;\n }\n }, {\n key: \"findPrevOption\",\n value: function findPrevOption(index) {\n if (index === -1) {\n return null;\n }\n\n var visibleOptions = this.getVisibleOptions();\n\n if (this.props.optionGroupLabel) {\n var groupIndex = index.group;\n var optionIndex = index.option;\n var option = this.findPrevOptionInList(this.getOptionGroupChildren(visibleOptions[groupIndex]), optionIndex);\n if (option) return option;else if (groupIndex > 0) return this.findPrevOption({\n group: groupIndex - 1,\n option: this.getOptionGroupChildren(visibleOptions[groupIndex - 1]).length\n });else return null;\n } else {\n return this.findPrevOptionInList(visibleOptions, index);\n }\n }\n }, {\n key: \"findPrevOptionInList\",\n value: function findPrevOptionInList(list, index) {\n var i = index - 1;\n\n if (i < 0) {\n return null;\n }\n\n var option = list[i];\n if (this.isOptionDisabled(option)) return this.findPrevOption(i);else return option;\n }\n }, {\n key: \"search\",\n value: function search(event) {\n var _this4 = this;\n\n if (this.searchTimeout) {\n clearTimeout(this.searchTimeout);\n }\n\n var _char = event.key;\n this.previousSearchChar = this.currentSearchChar;\n this.currentSearchChar = _char;\n if (this.previousSearchChar === this.currentSearchChar) this.searchValue = this.currentSearchChar;else this.searchValue = this.searchValue ? this.searchValue + _char : _char;\n\n if (this.searchValue) {\n var searchIndex = this.getSelectedOptionIndex();\n var newOption = this.props.optionGroupLabel ? this.searchOptionInGroup(searchIndex) : this.searchOption(++searchIndex);\n\n if (newOption) {\n this.selectItem({\n originalEvent: event,\n option: newOption\n });\n this.selectedOptionUpdated = true;\n }\n }\n\n this.searchTimeout = setTimeout(function () {\n _this4.searchValue = null;\n }, 250);\n }\n }, {\n key: \"searchOption\",\n value: function searchOption(index) {\n var option;\n\n if (this.searchValue) {\n var visibleOptions = this.getVisibleOptions();\n option = this.searchOptionInRange(index, visibleOptions.length);\n\n if (!option) {\n option = this.searchOptionInRange(0, index);\n }\n }\n\n return option;\n }\n }, {\n key: \"searchOptionInRange\",\n value: function searchOptionInRange(start, end) {\n var visibleOptions = this.getVisibleOptions();\n\n for (var i = start; i < end; i++) {\n var opt = visibleOptions[i];\n\n if (this.matchesSearchValue(opt)) {\n return opt;\n }\n }\n\n return null;\n }\n }, {\n key: \"searchOptionInGroup\",\n value: function searchOptionInGroup(index) {\n var searchIndex = index === -1 ? {\n group: 0,\n option: -1\n } : index;\n var visibleOptions = this.getVisibleOptions();\n\n for (var i = searchIndex.group; i < visibleOptions.length; i++) {\n var groupOptions = this.getOptionGroupChildren(visibleOptions[i]);\n\n for (var j = searchIndex.group === i ? searchIndex.option + 1 : 0; j < groupOptions.length; j++) {\n if (this.matchesSearchValue(groupOptions[j])) {\n return groupOptions[j];\n }\n }\n }\n\n for (var _i = 0; _i <= searchIndex.group; _i++) {\n var _groupOptions = this.getOptionGroupChildren(visibleOptions[_i]);\n\n for (var _j = 0; _j < (searchIndex.group === _i ? searchIndex.option : _groupOptions.length); _j++) {\n if (this.matchesSearchValue(_groupOptions[_j])) {\n return _groupOptions[_j];\n }\n }\n }\n\n return null;\n }\n }, {\n key: \"matchesSearchValue\",\n value: function matchesSearchValue(option) {\n var label = this.getOptionLabel(option).toLocaleLowerCase(this.props.filterLocale);\n return label.startsWith(this.searchValue.toLocaleLowerCase(this.props.filterLocale));\n }\n }, {\n key: \"onEditableInputChange\",\n value: function onEditableInputChange(event) {\n if (this.props.onChange) {\n this.props.onChange({\n originalEvent: event.originalEvent,\n value: event.target.value,\n stopPropagation: function stopPropagation() {},\n preventDefault: function preventDefault() {},\n target: {\n name: this.props.name,\n id: this.props.id,\n value: event.target.value\n }\n });\n }\n }\n }, {\n key: \"onEditableInputFocus\",\n value: function onEditableInputFocus(event) {\n var _this5 = this;\n\n event.persist();\n this.setState({\n focused: true\n }, function () {\n _this5.hideOverlay();\n\n if (_this5.props.onFocus) {\n _this5.props.onFocus(event);\n }\n });\n }\n }, {\n key: \"onOptionClick\",\n value: function onOptionClick(event) {\n var option = event.option;\n\n if (!option.disabled) {\n this.selectItem(event);\n this.focusInput.focus();\n }\n\n this.hideOverlay();\n }\n }, {\n key: \"onFilterInputChange\",\n value: function onFilterInputChange(event) {\n var _this6 = this;\n\n var filter = event.target.value;\n this.setState({\n filter: filter\n }, function () {\n if (_this6.props.onFilter) {\n _this6.props.onFilter({\n originalEvent: event,\n filter: filter\n });\n }\n });\n }\n }, {\n key: \"onFilterClearIconClick\",\n value: function onFilterClearIconClick(callback) {\n this.resetFilter(callback);\n }\n }, {\n key: \"resetFilter\",\n value: function resetFilter(callback) {\n var _this7 = this;\n\n var filter = '';\n this.setState({\n filter: filter\n }, function () {\n _this7.props.onFilter && _this7.props.onFilter({\n filter: filter\n });\n callback && callback();\n });\n }\n }, {\n key: \"clear\",\n value: function clear(event) {\n if (this.props.onChange) {\n this.props.onChange({\n originalEvent: event,\n value: undefined,\n stopPropagation: function stopPropagation() {},\n preventDefault: function preventDefault() {},\n target: {\n name: this.props.name,\n id: this.props.id,\n value: undefined\n }\n });\n }\n\n this.updateEditableLabel();\n }\n }, {\n key: \"selectItem\",\n value: function selectItem(event) {\n var currentSelectedOption = this.getSelectedOption();\n\n if (currentSelectedOption !== event.option) {\n this.updateEditableLabel(event.option);\n var optionValue = this.getOptionValue(event.option);\n\n if (this.props.onChange) {\n this.props.onChange({\n originalEvent: event.originalEvent,\n value: optionValue,\n stopPropagation: function stopPropagation() {},\n preventDefault: function preventDefault() {},\n target: {\n name: this.props.name,\n id: this.props.id,\n value: optionValue\n }\n });\n }\n }\n }\n }, {\n key: \"getSelectedOption\",\n value: function getSelectedOption() {\n var index = this.getSelectedOptionIndex();\n var visibleOptions = this.getVisibleOptions();\n return index !== -1 ? this.props.optionGroupLabel ? this.getOptionGroupChildren(visibleOptions[index.group])[index.option] : visibleOptions[index] : null;\n }\n }, {\n key: \"getSelectedOptionIndex\",\n value: function getSelectedOptionIndex() {\n var visibleOptions = this.getVisibleOptions();\n\n if (this.props.value != null && visibleOptions) {\n if (this.props.optionGroupLabel) {\n for (var i = 0; i < visibleOptions.length; i++) {\n var selectedOptionIndex = this.findOptionIndexInList(this.props.value, this.getOptionGroupChildren(visibleOptions[i]));\n\n if (selectedOptionIndex !== -1) {\n return {\n group: i,\n option: selectedOptionIndex\n };\n }\n }\n } else {\n return this.findOptionIndexInList(this.props.value, visibleOptions);\n }\n }\n\n return -1;\n }\n }, {\n key: \"findOptionIndexInList\",\n value: function findOptionIndexInList(value, list) {\n var key = this.equalityKey();\n\n for (var i = 0; i < list.length; i++) {\n if (ObjectUtils.equals(value, this.getOptionValue(list[i]), key)) {\n return i;\n }\n }\n\n return -1;\n }\n }, {\n key: \"isSelected\",\n value: function isSelected(option) {\n return ObjectUtils.equals(this.props.value, this.getOptionValue(option), this.equalityKey());\n }\n }, {\n key: \"equalityKey\",\n value: function equalityKey() {\n return this.props.optionValue ? null : this.props.dataKey;\n }\n }, {\n key: \"showOverlay\",\n value: function showOverlay() {\n this.setState({\n overlayVisible: true\n });\n }\n }, {\n key: \"hideOverlay\",\n value: function hideOverlay() {\n this.setState({\n overlayVisible: false\n });\n }\n }, {\n key: \"onOverlayEnter\",\n value: function onOverlayEnter(callback) {\n ZIndexUtils.set('overlay', this.overlayRef.current, PrimeReact.autoZIndex, PrimeReact.zIndex['overlay']);\n this.alignOverlay();\n callback && callback();\n }\n }, {\n key: \"onOverlayEntered\",\n value: function onOverlayEntered(callback) {\n callback && callback();\n this.bindDocumentClickListener();\n this.bindScrollListener();\n this.bindResizeListener();\n this.props.onShow && this.props.onShow();\n }\n }, {\n key: \"onOverlayExit\",\n value: function onOverlayExit() {\n this.unbindDocumentClickListener();\n this.unbindScrollListener();\n this.unbindResizeListener();\n }\n }, {\n key: \"onOverlayExited\",\n value: function onOverlayExited() {\n if (this.props.filter && this.props.resetFilterOnHide) {\n this.resetFilter();\n }\n\n ZIndexUtils.clear(this.overlayRef.current);\n this.props.onHide && this.props.onHide();\n }\n }, {\n key: \"alignOverlay\",\n value: function alignOverlay() {\n DomHandler.alignOverlay(this.overlayRef.current, this.input.parentElement, this.props.appendTo || PrimeReact.appendTo);\n }\n }, {\n key: \"scrollInView\",\n value: function scrollInView() {\n var highlightItem = DomHandler.findSingle(this.overlayRef.current, 'li.p-highlight');\n\n if (highlightItem) {\n highlightItem.scrollIntoView({\n block: 'nearest',\n inline: 'start'\n });\n }\n }\n }, {\n key: \"bindDocumentClickListener\",\n value: function bindDocumentClickListener() {\n var _this8 = this;\n\n if (!this.documentClickListener) {\n this.documentClickListener = function (event) {\n if (_this8.state.overlayVisible && _this8.isOutsideClicked(event)) {\n _this8.hideOverlay();\n }\n };\n\n document.addEventListener('click', this.documentClickListener);\n }\n }\n }, {\n key: \"unbindDocumentClickListener\",\n value: function unbindDocumentClickListener() {\n if (this.documentClickListener) {\n document.removeEventListener('click', this.documentClickListener);\n this.documentClickListener = null;\n }\n }\n }, {\n key: \"bindScrollListener\",\n value: function bindScrollListener() {\n var _this9 = this;\n\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.container, function () {\n if (_this9.state.overlayVisible) {\n _this9.hideOverlay();\n }\n });\n }\n\n this.scrollHandler.bindScrollListener();\n }\n }, {\n key: \"unbindScrollListener\",\n value: function unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n }\n }, {\n key: \"bindResizeListener\",\n value: function bindResizeListener() {\n var _this10 = this;\n\n if (!this.resizeListener) {\n this.resizeListener = function () {\n if (_this10.state.overlayVisible && !DomHandler.isTouchDevice()) {\n _this10.hideOverlay();\n }\n };\n\n window.addEventListener('resize', this.resizeListener);\n }\n }\n }, {\n key: \"unbindResizeListener\",\n value: function unbindResizeListener() {\n if (this.resizeListener) {\n window.removeEventListener('resize', this.resizeListener);\n this.resizeListener = null;\n }\n }\n }, {\n key: \"isOutsideClicked\",\n value: function isOutsideClicked(event) {\n return this.container && !(this.container.isSameNode(event.target) || this.isClearClicked(event) || this.container.contains(event.target) || this.overlayRef && this.overlayRef.current.contains(event.target));\n }\n }, {\n key: \"isClearClicked\",\n value: function isClearClicked(event) {\n return DomHandler.hasClass(event.target, 'p-dropdown-clear-icon') || DomHandler.hasClass(event.target, 'p-dropdown-filter-clear-icon');\n }\n }, {\n key: \"updateEditableLabel\",\n value: function updateEditableLabel(option) {\n if (this.input) {\n this.input.value = option ? this.getOptionLabel(option) : this.props.value || '';\n }\n }\n }, {\n key: \"hasFilter\",\n value: function hasFilter() {\n return this.state.filter && this.state.filter.trim().length > 0;\n }\n }, {\n key: \"getOptionLabel\",\n value: function getOptionLabel(option) {\n return this.props.optionLabel ? ObjectUtils.resolveFieldData(option, this.props.optionLabel) : option && option['label'] !== undefined ? option['label'] : option;\n }\n }, {\n key: \"getOptionValue\",\n value: function getOptionValue(option) {\n return this.props.optionValue ? ObjectUtils.resolveFieldData(option, this.props.optionValue) : option && option['value'] !== undefined ? option['value'] : option;\n }\n }, {\n key: \"getOptionRenderKey\",\n value: function getOptionRenderKey(option) {\n return this.props.dataKey ? ObjectUtils.resolveFieldData(option, this.props.dataKey) : this.getOptionLabel(option);\n }\n }, {\n key: \"isOptionDisabled\",\n value: function isOptionDisabled(option) {\n if (this.props.optionDisabled) {\n return ObjectUtils.isFunction(this.props.optionDisabled) ? this.props.optionDisabled(option) : ObjectUtils.resolveFieldData(option, this.props.optionDisabled);\n }\n\n return option && option['disabled'] !== undefined ? option['disabled'] : false;\n }\n }, {\n key: \"getOptionGroupRenderKey\",\n value: function getOptionGroupRenderKey(optionGroup) {\n return ObjectUtils.resolveFieldData(optionGroup, this.props.optionGroupLabel);\n }\n }, {\n key: \"getOptionGroupLabel\",\n value: function getOptionGroupLabel(optionGroup) {\n return ObjectUtils.resolveFieldData(optionGroup, this.props.optionGroupLabel);\n }\n }, {\n key: \"getOptionGroupChildren\",\n value: function getOptionGroupChildren(optionGroup) {\n return ObjectUtils.resolveFieldData(optionGroup, this.props.optionGroupChildren);\n }\n }, {\n key: \"checkValidity\",\n value: function checkValidity() {\n if (this.inputRef.current) {\n return this.inputRef.current.checkValidity();\n }\n\n return false;\n }\n }, {\n key: \"isLazy\",\n value: function isLazy() {\n return this.props.virtualScrollerOptions && this.props.virtualScrollerOptions.lazy;\n }\n }, {\n key: \"getVisibleOptions\",\n value: function getVisibleOptions() {\n if (this.hasFilter() && !this.isLazy()) {\n var filterValue = this.state.filter.trim().toLocaleLowerCase(this.props.filterLocale);\n var searchFields = this.props.filterBy ? this.props.filterBy.split(',') : [this.props.optionLabel || 'label'];\n\n if (this.props.optionGroupLabel) {\n var filteredGroups = [];\n\n var _iterator = _createForOfIteratorHelper(this.props.options),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var optgroup = _step.value;\n var filteredSubOptions = FilterService.filter(this.getOptionGroupChildren(optgroup), searchFields, filterValue, this.props.filterMatchMode, this.props.filterLocale);\n\n if (filteredSubOptions && filteredSubOptions.length) {\n filteredGroups.push(_objectSpread(_objectSpread({}, optgroup), {\n items: filteredSubOptions\n }));\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n return filteredGroups;\n } else {\n return FilterService.filter(this.props.options, searchFields, filterValue, this.props.filterMatchMode, this.props.filterLocale);\n }\n } else {\n return this.props.options;\n }\n }\n }, {\n key: \"updateInputField\",\n value: function updateInputField() {\n if (this.props.editable && this.input) {\n var selectedOption = this.getSelectedOption();\n var label = selectedOption ? this.getOptionLabel(selectedOption) : null;\n var value = label || this.props.value || '';\n this.input.value = value;\n }\n }\n }, {\n key: \"updateInputRef\",\n value: function updateInputRef() {\n var ref = this.props.inputRef;\n\n if (ref) {\n if (typeof ref === 'function') {\n ref(this.inputRef.current);\n } else {\n ref.current = this.inputRef.current;\n }\n }\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.updateInputRef();\n\n if (this.props.autoFocus && this.focusInput) {\n this.focusInput.focus();\n }\n\n if (this.props.tooltip) {\n this.renderTooltip();\n }\n\n this.updateInputField();\n\n if (this.inputRef.current) {\n this.inputRef.current.selectedIndex = 1;\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.unbindDocumentClickListener();\n this.unbindResizeListener();\n\n if (this.scrollHandler) {\n this.scrollHandler.destroy();\n this.scrollHandler = null;\n }\n\n if (this.tooltip) {\n this.tooltip.destroy();\n this.tooltip = null;\n }\n\n if (this.hideTimeout) {\n clearTimeout(this.hideTimeout);\n this.hideTimeout = null;\n }\n\n ZIndexUtils.clear(this.overlayRef.current);\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n if (this.state.overlayVisible) {\n if (this.props.filter) {\n this.alignOverlay();\n }\n\n if (prevProps.value !== this.props.value) {\n this.scrollInView();\n }\n }\n\n if (prevProps.tooltip !== this.props.tooltip || prevProps.tooltipOptions !== this.props.tooltipOptions) {\n if (this.tooltip) this.tooltip.update(_objectSpread({\n content: this.props.tooltip\n }, this.props.tooltipOptions || {}));else this.renderTooltip();\n }\n\n if (this.state.filter && (!this.props.options || this.props.options.length === 0)) {\n this.setState({\n filter: ''\n });\n }\n\n this.updateInputField();\n\n if (this.inputRef.current) {\n this.inputRef.current.selectedIndex = 1;\n }\n }\n }, {\n key: \"renderHiddenSelect\",\n value: function renderHiddenSelect(selectedOption) {\n var placeHolderOption = /*#__PURE__*/React.createElement(\"option\", {\n value: \"\"\n }, this.props.placeholder);\n var option = selectedOption ? /*#__PURE__*/React.createElement(\"option\", {\n value: selectedOption.value\n }, this.getOptionLabel(selectedOption)) : null;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-hidden-accessible p-dropdown-hidden-select\"\n }, /*#__PURE__*/React.createElement(\"select\", {\n ref: this.inputRef,\n required: this.props.required,\n name: this.props.name,\n tabIndex: -1,\n \"aria-hidden\": \"true\"\n }, placeHolderOption, option));\n }\n }, {\n key: \"renderTooltip\",\n value: function renderTooltip() {\n this.tooltip = tip({\n target: this.container,\n content: this.props.tooltip,\n options: this.props.tooltipOptions\n });\n }\n }, {\n key: \"renderKeyboardHelper\",\n value: function renderKeyboardHelper() {\n var _this11 = this;\n\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-hidden-accessible\"\n }, /*#__PURE__*/React.createElement(\"input\", {\n ref: function ref(el) {\n return _this11.focusInput = el;\n },\n id: this.props.inputId,\n type: \"text\",\n readOnly: true,\n \"aria-haspopup\": \"listbox\",\n onFocus: this.onInputFocus,\n onBlur: this.onInputBlur,\n onKeyDown: this.onInputKeyDown,\n disabled: this.props.disabled,\n tabIndex: this.props.tabIndex,\n \"aria-label\": this.props.ariaLabel,\n \"aria-labelledby\": this.props.ariaLabelledBy\n }));\n }\n }, {\n key: \"renderLabel\",\n value: function renderLabel(selectedOption) {\n var _this12 = this;\n\n var label = ObjectUtils.isNotEmpty(selectedOption) ? this.getOptionLabel(selectedOption) : null;\n\n if (this.props.editable) {\n var value = label || this.props.value || '';\n return /*#__PURE__*/React.createElement(\"input\", {\n ref: function ref(el) {\n return _this12.input = el;\n },\n type: \"text\",\n defaultValue: value,\n className: \"p-dropdown-label p-inputtext\",\n disabled: this.props.disabled,\n placeholder: this.props.placeholder,\n maxLength: this.props.maxLength,\n onInput: this.onEditableInputChange,\n onFocus: this.onEditableInputFocus,\n onBlur: this.onInputBlur,\n \"aria-label\": this.props.ariaLabel,\n \"aria-labelledby\": this.props.ariaLabelledBy,\n \"aria-haspopup\": \"listbox\"\n });\n } else {\n var className = classNames('p-dropdown-label p-inputtext', {\n 'p-placeholder': label === null && this.props.placeholder,\n 'p-dropdown-label-empty': label === null && !this.props.placeholder\n });\n var content = this.props.valueTemplate ? ObjectUtils.getJSXElement(this.props.valueTemplate, selectedOption, this.props) : label || this.props.placeholder || 'empty';\n return /*#__PURE__*/React.createElement(\"span\", {\n ref: function ref(el) {\n return _this12.input = el;\n },\n className: className\n }, content);\n }\n }\n }, {\n key: \"renderClearIcon\",\n value: function renderClearIcon() {\n if (this.props.value != null && this.props.showClear && !this.props.disabled) {\n return /*#__PURE__*/React.createElement(\"i\", {\n className: \"p-dropdown-clear-icon pi pi-times\",\n onClick: this.clear\n });\n }\n\n return null;\n }\n }, {\n key: \"renderDropdownIcon\",\n value: function renderDropdownIcon() {\n var _this13 = this;\n\n var iconClassName = classNames('p-dropdown-trigger-icon p-clickable', this.props.dropdownIcon);\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: function ref(el) {\n return _this13.trigger = el;\n },\n className: \"p-dropdown-trigger\",\n role: \"button\",\n \"aria-haspopup\": \"listbox\",\n \"aria-expanded\": this.state.overlayVisible\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: iconClassName\n }));\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this14 = this;\n\n var className = classNames('p-dropdown p-component p-inputwrapper', this.props.className, {\n 'p-disabled': this.props.disabled,\n 'p-focus': this.state.focused,\n 'p-dropdown-clearable': this.props.showClear && !this.props.disabled,\n 'p-inputwrapper-filled': this.props.value,\n 'p-inputwrapper-focus': this.state.focused || this.state.overlayVisible\n });\n var visibleOptions = this.getVisibleOptions();\n var selectedOption = this.getSelectedOption();\n var appendTo = this.props.appendTo || PrimeReact.appendTo;\n var hiddenSelect = this.renderHiddenSelect(selectedOption);\n var keyboardHelper = this.renderKeyboardHelper();\n var labelElement = this.renderLabel(selectedOption);\n var dropdownIcon = this.renderDropdownIcon();\n var clearIcon = this.renderClearIcon();\n return /*#__PURE__*/React.createElement(\"div\", {\n id: this.props.id,\n ref: function ref(el) {\n return _this14.container = el;\n },\n className: className,\n style: this.props.style,\n onClick: this.onClick,\n onMouseDown: this.props.onMouseDown,\n onContextMenu: this.props.onContextMenu\n }, keyboardHelper, hiddenSelect, labelElement, clearIcon, dropdownIcon, /*#__PURE__*/React.createElement(DropdownPanel, _extends({\n ref: this.overlayRef,\n visibleOptions: visibleOptions\n }, this.props, {\n appendTo: appendTo,\n onClick: this.onPanelClick,\n onOptionClick: this.onOptionClick,\n filterValue: this.state.filter,\n hasFilter: this.hasFilter,\n onFilterClearIconClick: this.onFilterClearIconClick,\n onFilterInputKeyDown: this.onFilterInputKeyDown,\n onFilterInputChange: this.onFilterInputChange,\n getOptionLabel: this.getOptionLabel,\n getOptionRenderKey: this.getOptionRenderKey,\n isOptionDisabled: this.isOptionDisabled,\n getOptionGroupChildren: this.getOptionGroupChildren,\n getOptionGroupLabel: this.getOptionGroupLabel,\n getOptionGroupRenderKey: this.getOptionGroupRenderKey,\n isSelected: this.isSelected,\n getSelectedOptionIndex: this.getSelectedOptionIndex,\n \"in\": this.state.overlayVisible,\n onEnter: this.onOverlayEnter,\n onEntered: this.onOverlayEntered,\n onExit: this.onOverlayExit,\n onExited: this.onOverlayExited\n })));\n }\n }]);\n\n return Dropdown;\n}(Component);\n\n_defineProperty(Dropdown, \"defaultProps\", {\n id: null,\n inputRef: null,\n name: null,\n value: null,\n options: null,\n optionLabel: null,\n optionValue: null,\n optionDisabled: null,\n optionGroupLabel: null,\n optionGroupChildren: null,\n optionGroupTemplate: null,\n valueTemplate: null,\n itemTemplate: null,\n style: null,\n className: null,\n virtualScrollerOptions: null,\n scrollHeight: '200px',\n filter: false,\n filterBy: null,\n filterMatchMode: 'contains',\n filterPlaceholder: null,\n filterLocale: undefined,\n emptyMessage: null,\n emptyFilterMessage: null,\n editable: false,\n placeholder: null,\n required: false,\n disabled: false,\n appendTo: null,\n tabIndex: null,\n autoFocus: false,\n filterInputAutoFocus: true,\n resetFilterOnHide: false,\n showFilterClear: false,\n panelClassName: null,\n panelStyle: null,\n dataKey: null,\n inputId: null,\n showClear: false,\n maxLength: null,\n tooltip: null,\n tooltipOptions: null,\n ariaLabel: null,\n ariaLabelledBy: null,\n transitionOptions: null,\n dropdownIcon: 'pi pi-chevron-down',\n showOnFocus: false,\n onChange: null,\n onFocus: null,\n onBlur: null,\n onMouseDown: null,\n onContextMenu: null,\n onShow: null,\n onHide: null,\n onFilter: null\n});\n\nexport { Dropdown };","map":{"version":3,"names":["React","Component","createRef","classNames","ObjectUtils","DomHandler","ZIndexUtils","ConnectedOverlayScrollHandler","Ripple","CSSTransition","Portal","VirtualScroller","PrimeReact","localeOption","FilterService","tip","OverlayService","_extends","Object","assign","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","_classCallCheck","instance","Constructor","TypeError","_defineProperties","props","descriptor","enumerable","configurable","writable","defineProperty","_createClass","protoProps","staticProps","_assertThisInitialized","self","ReferenceError","_setPrototypeOf","o","p","setPrototypeOf","__proto__","_inherits","subClass","superClass","create","constructor","value","_typeof","obj","Symbol","iterator","_possibleConstructorReturn","_getPrototypeOf","getPrototypeOf","_defineProperty","_createSuper$2","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct$2","_createSuperInternal","Super","result","NewTarget","Reflect","construct","sham","Proxy","Boolean","valueOf","e","DropdownItem","_Component","_super","_this","onClick","bind","event","originalEvent","option","render","className","selected","disabled","label","content","template","getJSXElement","createElement","role","ownKeys$1","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","push","_objectSpread$1","forEach","getOwnPropertyDescriptors","defineProperties","_createSuper$1","_isNativeReflectConstruct$1","DropdownPanelComponent","onEnter","onEntered","onFilterInputChange","_this2","virtualScrollerRef","selectedIndex","getSelectedOptionIndex","scrollToIndex","_this3","filterInputAutoFocus","filterInput","focus","isEmptyFilter","visibleOptions","hasFilter","renderGroupChildren","optionGroup","_this4","groupChildren","getOptionGroupChildren","map","j","optionLabel","getOptionLabel","optionKey","getOptionRenderKey","isOptionDisabled","itemTemplate","isSelected","onOptionClick","renderEmptyMessage","emptyMessage","isFilter","message","renderItem","index","optionGroupLabel","groupContent","optionGroupTemplate","getOptionGroupLabel","groupChildrenContent","getOptionGroupRenderKey","Fragment","renderItems","_this5","emptyFilterMessage","renderFilterClearIcon","_this6","showFilterClear","filterValue","onFilterClearIconClick","renderFilter","_this7","clearIcon","containerClassName","ref","el","type","autoComplete","placeholder","filterPlaceholder","onKeyDown","onFilterInputKeyDown","onChange","renderContent","_this8","virtualScrollerOptions","virtualScrollerProps","style","height","scrollHeight","items","onLazyLoad","item","options","contentTemplate","children","contentRef","maxHeight","renderElement","panelClassName","nodeRef","forwardRef","timeout","enter","exit","transitionOptions","unmountOnExit","onEntering","onExit","onExited","panelStyle","element","appendTo","DropdownPanel","ownKeys","_objectSpread","_createForOfIteratorHelper","allowArrayLike","it","Array","isArray","_unsupportedIterableToArray","F","s","n","done","_e","f","normalCompletion","didErr","err","step","next","_e2","minLen","_arrayLikeToArray","toString","slice","name","from","test","arr","len","arr2","_createSuper","_isNativeReflectConstruct","Dropdown","state","focused","overlayVisible","onInputFocus","onInputBlur","onInputKeyDown","onEditableInputChange","onEditableInputFocus","onPanelClick","onOverlayEnter","onOverlayEntered","onOverlayExit","onOverlayExited","resetFilter","clear","overlayRef","inputRef","hasClass","tagName","current","contains","focusInput","hideOverlay","showOverlay","persist","showOnFocus","setState","onFocus","onBlur","emit","container","which","onDownKey","onUpKey","preventDefault","search","getVisibleOptions","prevOption","findPrevOption","selectItem","altKey","nextOption","findNextOption","groupIndex","group","optionIndex","findNextOptionInList","list","findPrevOptionInList","searchTimeout","clearTimeout","_char","previousSearchChar","currentSearchChar","searchValue","searchIndex","newOption","searchOptionInGroup","searchOption","selectedOptionUpdated","setTimeout","searchOptionInRange","start","end","opt","matchesSearchValue","groupOptions","_i","_groupOptions","_j","toLocaleLowerCase","filterLocale","startsWith","stopPropagation","id","onFilter","callback","undefined","updateEditableLabel","currentSelectedOption","getSelectedOption","optionValue","getOptionValue","selectedOptionIndex","findOptionIndexInList","equalityKey","equals","dataKey","set","autoZIndex","zIndex","alignOverlay","bindDocumentClickListener","bindScrollListener","bindResizeListener","onShow","unbindDocumentClickListener","unbindScrollListener","unbindResizeListener","resetFilterOnHide","onHide","input","parentElement","scrollInView","highlightItem","findSingle","scrollIntoView","block","inline","documentClickListener","isOutsideClicked","document","addEventListener","removeEventListener","_this9","scrollHandler","_this10","resizeListener","isTouchDevice","window","isSameNode","isClearClicked","trim","resolveFieldData","optionDisabled","isFunction","optionGroupChildren","checkValidity","isLazy","lazy","searchFields","filterBy","split","filteredGroups","_iterator","_step","optgroup","filteredSubOptions","filterMatchMode","updateInputField","editable","selectedOption","updateInputRef","componentDidMount","autoFocus","tooltip","renderTooltip","componentWillUnmount","destroy","hideTimeout","componentDidUpdate","prevProps","tooltipOptions","update","renderHiddenSelect","placeHolderOption","required","tabIndex","renderKeyboardHelper","_this11","inputId","readOnly","ariaLabel","ariaLabelledBy","renderLabel","_this12","isNotEmpty","defaultValue","maxLength","onInput","valueTemplate","renderClearIcon","showClear","renderDropdownIcon","_this13","iconClassName","dropdownIcon","trigger","_this14","hiddenSelect","keyboardHelper","labelElement","onMouseDown","onContextMenu"],"sources":["/Users/paolasanchez/Desktop/Pry4/Katoikia/katoikia-app/web-ui/sakai-react/node_modules/primereact/dropdown/dropdown.esm.js"],"sourcesContent":["import React, { Component, createRef } from 'react';\nimport { classNames, ObjectUtils, DomHandler, ZIndexUtils, ConnectedOverlayScrollHandler } from 'primereact/utils';\nimport { Ripple } from 'primereact/ripple';\nimport { CSSTransition } from 'primereact/csstransition';\nimport { Portal } from 'primereact/portal';\nimport { VirtualScroller } from 'primereact/virtualscroller';\nimport PrimeReact, { localeOption, FilterService } from 'primereact/api';\nimport { tip } from 'primereact/tooltip';\nimport { OverlayService } from 'primereact/overlayservice';\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _createSuper$2(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$2(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$2() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar DropdownItem = /*#__PURE__*/function (_Component) {\n _inherits(DropdownItem, _Component);\n\n var _super = _createSuper$2(DropdownItem);\n\n function DropdownItem(props) {\n var _this;\n\n _classCallCheck(this, DropdownItem);\n\n _this = _super.call(this, props);\n _this.onClick = _this.onClick.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(DropdownItem, [{\n key: \"onClick\",\n value: function onClick(event) {\n if (this.props.onClick) {\n this.props.onClick({\n originalEvent: event,\n option: this.props.option\n });\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var className = classNames('p-dropdown-item', {\n 'p-highlight': this.props.selected,\n 'p-disabled': this.props.disabled,\n 'p-dropdown-item-empty': !this.props.label || this.props.label.length === 0\n }, this.props.option.className);\n var content = this.props.template ? ObjectUtils.getJSXElement(this.props.template, this.props.option) : this.props.label;\n return /*#__PURE__*/React.createElement(\"li\", {\n className: className,\n onClick: this.onClick,\n \"aria-label\": this.props.label,\n key: this.props.label,\n role: \"option\",\n \"aria-selected\": this.props.selected\n }, content, /*#__PURE__*/React.createElement(Ripple, null));\n }\n }]);\n\n return DropdownItem;\n}(Component);\n\n_defineProperty(DropdownItem, \"defaultProps\", {\n option: null,\n label: null,\n template: null,\n selected: false,\n disabled: false,\n onClick: null\n});\n\nfunction ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$1(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _createSuper$1(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$1(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$1() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nvar DropdownPanelComponent = /*#__PURE__*/function (_Component) {\n _inherits(DropdownPanelComponent, _Component);\n\n var _super = _createSuper$1(DropdownPanelComponent);\n\n function DropdownPanelComponent(props) {\n var _this;\n\n _classCallCheck(this, DropdownPanelComponent);\n\n _this = _super.call(this, props);\n _this.onEnter = _this.onEnter.bind(_assertThisInitialized(_this));\n _this.onEntered = _this.onEntered.bind(_assertThisInitialized(_this));\n _this.onFilterInputChange = _this.onFilterInputChange.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(DropdownPanelComponent, [{\n key: \"onEnter\",\n value: function onEnter() {\n var _this2 = this;\n\n this.props.onEnter(function () {\n if (_this2.virtualScrollerRef) {\n var selectedIndex = _this2.props.getSelectedOptionIndex();\n\n if (selectedIndex !== -1) {\n _this2.virtualScrollerRef.scrollToIndex(selectedIndex);\n }\n }\n });\n }\n }, {\n key: \"onEntered\",\n value: function onEntered() {\n var _this3 = this;\n\n this.props.onEntered(function () {\n if (_this3.props.filter && _this3.props.filterInputAutoFocus) {\n _this3.filterInput.focus();\n }\n });\n }\n }, {\n key: \"onFilterInputChange\",\n value: function onFilterInputChange(event) {\n if (this.virtualScrollerRef) {\n this.virtualScrollerRef.scrollToIndex(0);\n }\n\n this.props.onFilterInputChange && this.props.onFilterInputChange(event);\n }\n }, {\n key: \"isEmptyFilter\",\n value: function isEmptyFilter() {\n return !(this.props.visibleOptions && this.props.visibleOptions.length) && this.props.hasFilter();\n }\n }, {\n key: \"renderGroupChildren\",\n value: function renderGroupChildren(optionGroup) {\n var _this4 = this;\n\n var groupChildren = this.props.getOptionGroupChildren(optionGroup);\n return groupChildren.map(function (option, j) {\n var optionLabel = _this4.props.getOptionLabel(option);\n\n var optionKey = j + '_' + _this4.props.getOptionRenderKey(option);\n\n var disabled = _this4.props.isOptionDisabled(option);\n\n return /*#__PURE__*/React.createElement(DropdownItem, {\n key: optionKey,\n label: optionLabel,\n option: option,\n template: _this4.props.itemTemplate,\n selected: _this4.props.isSelected(option),\n disabled: disabled,\n onClick: _this4.props.onOptionClick\n });\n });\n }\n }, {\n key: \"renderEmptyMessage\",\n value: function renderEmptyMessage(emptyMessage, isFilter) {\n var message = ObjectUtils.getJSXElement(emptyMessage, this.props) || localeOption(isFilter ? 'emptyFilterMessage' : 'emptyMessage');\n return /*#__PURE__*/React.createElement(\"li\", {\n className: \"p-dropdown-empty-message\"\n }, message);\n }\n }, {\n key: \"renderItem\",\n value: function renderItem(option, index) {\n if (this.props.optionGroupLabel) {\n var groupContent = this.props.optionGroupTemplate ? ObjectUtils.getJSXElement(this.props.optionGroupTemplate, option, index) : this.props.getOptionGroupLabel(option);\n var groupChildrenContent = this.renderGroupChildren(option);\n var key = index + '_' + this.props.getOptionGroupRenderKey(option);\n return /*#__PURE__*/React.createElement(React.Fragment, {\n key: key\n }, /*#__PURE__*/React.createElement(\"li\", {\n className: \"p-dropdown-item-group\"\n }, groupContent), groupChildrenContent);\n } else {\n var optionLabel = this.props.getOptionLabel(option);\n var optionKey = index + '_' + this.props.getOptionRenderKey(option);\n var disabled = this.props.isOptionDisabled(option);\n return /*#__PURE__*/React.createElement(DropdownItem, {\n key: optionKey,\n label: optionLabel,\n option: option,\n template: this.props.itemTemplate,\n selected: this.props.isSelected(option),\n disabled: disabled,\n onClick: this.props.onOptionClick\n });\n }\n }\n }, {\n key: \"renderItems\",\n value: function renderItems() {\n var _this5 = this;\n\n if (this.props.visibleOptions && this.props.visibleOptions.length) {\n return this.props.visibleOptions.map(function (option, index) {\n return _this5.renderItem(option, index);\n });\n } else if (this.props.hasFilter()) {\n return this.renderEmptyMessage(this.props.emptyFilterMessage, true);\n }\n\n return this.renderEmptyMessage(this.props.emptyMessage);\n }\n }, {\n key: \"renderFilterClearIcon\",\n value: function renderFilterClearIcon() {\n var _this6 = this;\n\n if (this.props.showFilterClear && this.props.filterValue) {\n return /*#__PURE__*/React.createElement(\"i\", {\n className: \"p-dropdown-filter-clear-icon pi pi-times\",\n onClick: function onClick() {\n return _this6.props.onFilterClearIconClick(function () {\n return _this6.filterInput.focus();\n });\n }\n });\n }\n\n return null;\n }\n }, {\n key: \"renderFilter\",\n value: function renderFilter() {\n var _this7 = this;\n\n if (this.props.filter) {\n var clearIcon = this.renderFilterClearIcon();\n var containerClassName = classNames('p-dropdown-filter-container', {\n 'p-dropdown-clearable-filter': !!clearIcon\n });\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-dropdown-header\"\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: containerClassName\n }, /*#__PURE__*/React.createElement(\"input\", {\n ref: function ref(el) {\n return _this7.filterInput = el;\n },\n type: \"text\",\n autoComplete: \"off\",\n className: \"p-dropdown-filter p-inputtext p-component\",\n placeholder: this.props.filterPlaceholder,\n onKeyDown: this.props.onFilterInputKeyDown,\n onChange: this.onFilterInputChange,\n value: this.props.filterValue\n }), clearIcon, /*#__PURE__*/React.createElement(\"i\", {\n className: \"p-dropdown-filter-icon pi pi-search\"\n })));\n }\n\n return null;\n }\n }, {\n key: \"renderContent\",\n value: function renderContent() {\n var _this8 = this;\n\n if (this.props.virtualScrollerOptions) {\n var virtualScrollerProps = _objectSpread$1(_objectSpread$1({}, this.props.virtualScrollerOptions), {\n style: _objectSpread$1(_objectSpread$1({}, this.props.virtualScrollerOptions.style), {\n height: this.props.scrollHeight\n }),\n className: classNames('p-dropdown-items-wrapper', this.props.virtualScrollerOptions.className),\n items: this.props.visibleOptions,\n onLazyLoad: function onLazyLoad(event) {\n return _this8.props.virtualScrollerOptions.onLazyLoad(_objectSpread$1(_objectSpread$1({}, event), {\n filter: _this8.props.filterValue\n }));\n },\n itemTemplate: function itemTemplate(item, options) {\n return item && _this8.renderItem(item, options.index);\n },\n contentTemplate: function contentTemplate(options) {\n var className = classNames('p-dropdown-items', options.className);\n var content = _this8.isEmptyFilter() ? _this8.renderEmptyMessage() : options.children;\n return /*#__PURE__*/React.createElement(\"ul\", {\n ref: options.contentRef,\n className: className,\n role: \"listbox\"\n }, content);\n }\n });\n\n return /*#__PURE__*/React.createElement(VirtualScroller, _extends({\n ref: function ref(el) {\n return _this8.virtualScrollerRef = el;\n }\n }, virtualScrollerProps));\n } else {\n var items = this.renderItems();\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-dropdown-items-wrapper\",\n style: {\n maxHeight: this.props.scrollHeight || 'auto'\n }\n }, /*#__PURE__*/React.createElement(\"ul\", {\n className: \"p-dropdown-items\",\n role: \"listbox\"\n }, items));\n }\n }\n }, {\n key: \"renderElement\",\n value: function renderElement() {\n var className = classNames('p-dropdown-panel p-component', this.props.panelClassName);\n var filter = this.renderFilter();\n var content = this.renderContent();\n return /*#__PURE__*/React.createElement(CSSTransition, {\n nodeRef: this.props.forwardRef,\n classNames: \"p-connected-overlay\",\n \"in\": this.props[\"in\"],\n timeout: {\n enter: 120,\n exit: 100\n },\n options: this.props.transitionOptions,\n unmountOnExit: true,\n onEnter: this.onEnter,\n onEntering: this.props.onEntering,\n onEntered: this.onEntered,\n onExit: this.props.onExit,\n onExited: this.props.onExited\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: this.props.forwardRef,\n className: className,\n style: this.props.panelStyle,\n onClick: this.props.onClick\n }, filter, content));\n }\n }, {\n key: \"render\",\n value: function render() {\n var element = this.renderElement();\n return /*#__PURE__*/React.createElement(Portal, {\n element: element,\n appendTo: this.props.appendTo\n });\n }\n }]);\n\n return DropdownPanelComponent;\n}(Component);\n\nvar DropdownPanel = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(DropdownPanelComponent, _extends({\n forwardRef: ref\n }, props));\n});\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar Dropdown = /*#__PURE__*/function (_Component) {\n _inherits(Dropdown, _Component);\n\n var _super = _createSuper(Dropdown);\n\n function Dropdown(props) {\n var _this;\n\n _classCallCheck(this, Dropdown);\n\n _this = _super.call(this, props);\n _this.state = {\n filter: '',\n focused: false,\n overlayVisible: false\n };\n _this.onClick = _this.onClick.bind(_assertThisInitialized(_this));\n _this.onInputFocus = _this.onInputFocus.bind(_assertThisInitialized(_this));\n _this.onInputBlur = _this.onInputBlur.bind(_assertThisInitialized(_this));\n _this.onInputKeyDown = _this.onInputKeyDown.bind(_assertThisInitialized(_this));\n _this.onEditableInputChange = _this.onEditableInputChange.bind(_assertThisInitialized(_this));\n _this.onEditableInputFocus = _this.onEditableInputFocus.bind(_assertThisInitialized(_this));\n _this.onOptionClick = _this.onOptionClick.bind(_assertThisInitialized(_this));\n _this.onFilterInputChange = _this.onFilterInputChange.bind(_assertThisInitialized(_this));\n _this.onFilterInputKeyDown = _this.onFilterInputKeyDown.bind(_assertThisInitialized(_this));\n _this.onFilterClearIconClick = _this.onFilterClearIconClick.bind(_assertThisInitialized(_this));\n _this.onPanelClick = _this.onPanelClick.bind(_assertThisInitialized(_this));\n _this.onOverlayEnter = _this.onOverlayEnter.bind(_assertThisInitialized(_this));\n _this.onOverlayEntered = _this.onOverlayEntered.bind(_assertThisInitialized(_this));\n _this.onOverlayExit = _this.onOverlayExit.bind(_assertThisInitialized(_this));\n _this.onOverlayExited = _this.onOverlayExited.bind(_assertThisInitialized(_this));\n _this.resetFilter = _this.resetFilter.bind(_assertThisInitialized(_this));\n _this.clear = _this.clear.bind(_assertThisInitialized(_this));\n _this.hasFilter = _this.hasFilter.bind(_assertThisInitialized(_this));\n _this.getOptionLabel = _this.getOptionLabel.bind(_assertThisInitialized(_this));\n _this.getOptionRenderKey = _this.getOptionRenderKey.bind(_assertThisInitialized(_this));\n _this.isOptionDisabled = _this.isOptionDisabled.bind(_assertThisInitialized(_this));\n _this.getOptionGroupChildren = _this.getOptionGroupChildren.bind(_assertThisInitialized(_this));\n _this.getOptionGroupLabel = _this.getOptionGroupLabel.bind(_assertThisInitialized(_this));\n _this.getOptionGroupRenderKey = _this.getOptionGroupRenderKey.bind(_assertThisInitialized(_this));\n _this.getSelectedOptionIndex = _this.getSelectedOptionIndex.bind(_assertThisInitialized(_this));\n _this.isSelected = _this.isSelected.bind(_assertThisInitialized(_this));\n _this.overlayRef = /*#__PURE__*/createRef();\n _this.inputRef = /*#__PURE__*/createRef(_this.props.inputRef);\n return _this;\n }\n\n _createClass(Dropdown, [{\n key: \"onClick\",\n value: function onClick(event) {\n if (this.props.disabled) {\n return;\n }\n\n if (DomHandler.hasClass(event.target, 'p-dropdown-clear-icon') || event.target.tagName === 'INPUT') {\n return;\n } else if (!this.overlayRef.current || !(this.overlayRef.current && this.overlayRef.current.contains(event.target))) {\n this.focusInput.focus();\n\n if (this.state.overlayVisible) {\n this.hideOverlay();\n } else {\n this.showOverlay();\n }\n }\n }\n }, {\n key: \"onInputFocus\",\n value: function onInputFocus(event) {\n var _this2 = this;\n\n event.persist();\n\n if (this.props.showOnFocus && !this.state.overlayVisible) {\n this.showOverlay();\n }\n\n this.setState({\n focused: true\n }, function () {\n if (_this2.props.onFocus) {\n _this2.props.onFocus(event);\n }\n });\n }\n }, {\n key: \"onInputBlur\",\n value: function onInputBlur(event) {\n var _this3 = this;\n\n event.persist();\n this.setState({\n focused: false\n }, function () {\n if (_this3.props.onBlur) {\n _this3.props.onBlur(event);\n }\n });\n }\n }, {\n key: \"onPanelClick\",\n value: function onPanelClick(event) {\n OverlayService.emit('overlay-click', {\n originalEvent: event,\n target: this.container\n });\n }\n }, {\n key: \"onInputKeyDown\",\n value: function onInputKeyDown(event) {\n switch (event.which) {\n //down\n case 40:\n this.onDownKey(event);\n break;\n //up\n\n case 38:\n this.onUpKey(event);\n break;\n //space\n\n case 32:\n if (this.state.overlayVisible) this.hideOverlay();else this.showOverlay();\n event.preventDefault();\n break;\n //enter\n\n case 13:\n this.hideOverlay();\n event.preventDefault();\n break;\n //escape and tab\n\n case 27:\n case 9:\n this.hideOverlay();\n break;\n\n default:\n this.search(event);\n break;\n }\n }\n }, {\n key: \"onFilterInputKeyDown\",\n value: function onFilterInputKeyDown(event) {\n switch (event.which) {\n //down\n case 40:\n this.onDownKey(event);\n break;\n //up\n\n case 38:\n this.onUpKey(event);\n break;\n //enter and escape\n\n case 13:\n case 27:\n this.hideOverlay();\n event.preventDefault();\n break;\n }\n }\n }, {\n key: \"onUpKey\",\n value: function onUpKey(event) {\n var visibleOptions = this.getVisibleOptions();\n\n if (visibleOptions) {\n var prevOption = this.findPrevOption(this.getSelectedOptionIndex());\n\n if (prevOption) {\n this.selectItem({\n originalEvent: event,\n option: prevOption\n });\n }\n }\n\n event.preventDefault();\n }\n }, {\n key: \"onDownKey\",\n value: function onDownKey(event) {\n var visibleOptions = this.getVisibleOptions();\n\n if (visibleOptions) {\n if (!this.state.overlayVisible && event.altKey) {\n this.showOverlay();\n } else {\n var nextOption = this.findNextOption(this.getSelectedOptionIndex());\n\n if (nextOption) {\n this.selectItem({\n originalEvent: event,\n option: nextOption\n });\n }\n }\n }\n\n event.preventDefault();\n }\n }, {\n key: \"findNextOption\",\n value: function findNextOption(index) {\n var visibleOptions = this.getVisibleOptions();\n\n if (this.props.optionGroupLabel) {\n var groupIndex = index === -1 ? 0 : index.group;\n var optionIndex = index === -1 ? -1 : index.option;\n var option = this.findNextOptionInList(this.getOptionGroupChildren(visibleOptions[groupIndex]), optionIndex);\n if (option) return option;else if (groupIndex + 1 !== visibleOptions.length) return this.findNextOption({\n group: groupIndex + 1,\n option: -1\n });else return null;\n } else {\n return this.findNextOptionInList(visibleOptions, index);\n }\n }\n }, {\n key: \"findNextOptionInList\",\n value: function findNextOptionInList(list, index) {\n var i = index + 1;\n\n if (i === list.length) {\n return null;\n }\n\n var option = list[i];\n if (this.isOptionDisabled(option)) return this.findNextOptionInList(i);else return option;\n }\n }, {\n key: \"findPrevOption\",\n value: function findPrevOption(index) {\n if (index === -1) {\n return null;\n }\n\n var visibleOptions = this.getVisibleOptions();\n\n if (this.props.optionGroupLabel) {\n var groupIndex = index.group;\n var optionIndex = index.option;\n var option = this.findPrevOptionInList(this.getOptionGroupChildren(visibleOptions[groupIndex]), optionIndex);\n if (option) return option;else if (groupIndex > 0) return this.findPrevOption({\n group: groupIndex - 1,\n option: this.getOptionGroupChildren(visibleOptions[groupIndex - 1]).length\n });else return null;\n } else {\n return this.findPrevOptionInList(visibleOptions, index);\n }\n }\n }, {\n key: \"findPrevOptionInList\",\n value: function findPrevOptionInList(list, index) {\n var i = index - 1;\n\n if (i < 0) {\n return null;\n }\n\n var option = list[i];\n if (this.isOptionDisabled(option)) return this.findPrevOption(i);else return option;\n }\n }, {\n key: \"search\",\n value: function search(event) {\n var _this4 = this;\n\n if (this.searchTimeout) {\n clearTimeout(this.searchTimeout);\n }\n\n var _char = event.key;\n this.previousSearchChar = this.currentSearchChar;\n this.currentSearchChar = _char;\n if (this.previousSearchChar === this.currentSearchChar) this.searchValue = this.currentSearchChar;else this.searchValue = this.searchValue ? this.searchValue + _char : _char;\n\n if (this.searchValue) {\n var searchIndex = this.getSelectedOptionIndex();\n var newOption = this.props.optionGroupLabel ? this.searchOptionInGroup(searchIndex) : this.searchOption(++searchIndex);\n\n if (newOption) {\n this.selectItem({\n originalEvent: event,\n option: newOption\n });\n this.selectedOptionUpdated = true;\n }\n }\n\n this.searchTimeout = setTimeout(function () {\n _this4.searchValue = null;\n }, 250);\n }\n }, {\n key: \"searchOption\",\n value: function searchOption(index) {\n var option;\n\n if (this.searchValue) {\n var visibleOptions = this.getVisibleOptions();\n option = this.searchOptionInRange(index, visibleOptions.length);\n\n if (!option) {\n option = this.searchOptionInRange(0, index);\n }\n }\n\n return option;\n }\n }, {\n key: \"searchOptionInRange\",\n value: function searchOptionInRange(start, end) {\n var visibleOptions = this.getVisibleOptions();\n\n for (var i = start; i < end; i++) {\n var opt = visibleOptions[i];\n\n if (this.matchesSearchValue(opt)) {\n return opt;\n }\n }\n\n return null;\n }\n }, {\n key: \"searchOptionInGroup\",\n value: function searchOptionInGroup(index) {\n var searchIndex = index === -1 ? {\n group: 0,\n option: -1\n } : index;\n var visibleOptions = this.getVisibleOptions();\n\n for (var i = searchIndex.group; i < visibleOptions.length; i++) {\n var groupOptions = this.getOptionGroupChildren(visibleOptions[i]);\n\n for (var j = searchIndex.group === i ? searchIndex.option + 1 : 0; j < groupOptions.length; j++) {\n if (this.matchesSearchValue(groupOptions[j])) {\n return groupOptions[j];\n }\n }\n }\n\n for (var _i = 0; _i <= searchIndex.group; _i++) {\n var _groupOptions = this.getOptionGroupChildren(visibleOptions[_i]);\n\n for (var _j = 0; _j < (searchIndex.group === _i ? searchIndex.option : _groupOptions.length); _j++) {\n if (this.matchesSearchValue(_groupOptions[_j])) {\n return _groupOptions[_j];\n }\n }\n }\n\n return null;\n }\n }, {\n key: \"matchesSearchValue\",\n value: function matchesSearchValue(option) {\n var label = this.getOptionLabel(option).toLocaleLowerCase(this.props.filterLocale);\n return label.startsWith(this.searchValue.toLocaleLowerCase(this.props.filterLocale));\n }\n }, {\n key: \"onEditableInputChange\",\n value: function onEditableInputChange(event) {\n if (this.props.onChange) {\n this.props.onChange({\n originalEvent: event.originalEvent,\n value: event.target.value,\n stopPropagation: function stopPropagation() {},\n preventDefault: function preventDefault() {},\n target: {\n name: this.props.name,\n id: this.props.id,\n value: event.target.value\n }\n });\n }\n }\n }, {\n key: \"onEditableInputFocus\",\n value: function onEditableInputFocus(event) {\n var _this5 = this;\n\n event.persist();\n this.setState({\n focused: true\n }, function () {\n _this5.hideOverlay();\n\n if (_this5.props.onFocus) {\n _this5.props.onFocus(event);\n }\n });\n }\n }, {\n key: \"onOptionClick\",\n value: function onOptionClick(event) {\n var option = event.option;\n\n if (!option.disabled) {\n this.selectItem(event);\n this.focusInput.focus();\n }\n\n this.hideOverlay();\n }\n }, {\n key: \"onFilterInputChange\",\n value: function onFilterInputChange(event) {\n var _this6 = this;\n\n var filter = event.target.value;\n this.setState({\n filter: filter\n }, function () {\n if (_this6.props.onFilter) {\n _this6.props.onFilter({\n originalEvent: event,\n filter: filter\n });\n }\n });\n }\n }, {\n key: \"onFilterClearIconClick\",\n value: function onFilterClearIconClick(callback) {\n this.resetFilter(callback);\n }\n }, {\n key: \"resetFilter\",\n value: function resetFilter(callback) {\n var _this7 = this;\n\n var filter = '';\n this.setState({\n filter: filter\n }, function () {\n _this7.props.onFilter && _this7.props.onFilter({\n filter: filter\n });\n callback && callback();\n });\n }\n }, {\n key: \"clear\",\n value: function clear(event) {\n if (this.props.onChange) {\n this.props.onChange({\n originalEvent: event,\n value: undefined,\n stopPropagation: function stopPropagation() {},\n preventDefault: function preventDefault() {},\n target: {\n name: this.props.name,\n id: this.props.id,\n value: undefined\n }\n });\n }\n\n this.updateEditableLabel();\n }\n }, {\n key: \"selectItem\",\n value: function selectItem(event) {\n var currentSelectedOption = this.getSelectedOption();\n\n if (currentSelectedOption !== event.option) {\n this.updateEditableLabel(event.option);\n var optionValue = this.getOptionValue(event.option);\n\n if (this.props.onChange) {\n this.props.onChange({\n originalEvent: event.originalEvent,\n value: optionValue,\n stopPropagation: function stopPropagation() {},\n preventDefault: function preventDefault() {},\n target: {\n name: this.props.name,\n id: this.props.id,\n value: optionValue\n }\n });\n }\n }\n }\n }, {\n key: \"getSelectedOption\",\n value: function getSelectedOption() {\n var index = this.getSelectedOptionIndex();\n var visibleOptions = this.getVisibleOptions();\n return index !== -1 ? this.props.optionGroupLabel ? this.getOptionGroupChildren(visibleOptions[index.group])[index.option] : visibleOptions[index] : null;\n }\n }, {\n key: \"getSelectedOptionIndex\",\n value: function getSelectedOptionIndex() {\n var visibleOptions = this.getVisibleOptions();\n\n if (this.props.value != null && visibleOptions) {\n if (this.props.optionGroupLabel) {\n for (var i = 0; i < visibleOptions.length; i++) {\n var selectedOptionIndex = this.findOptionIndexInList(this.props.value, this.getOptionGroupChildren(visibleOptions[i]));\n\n if (selectedOptionIndex !== -1) {\n return {\n group: i,\n option: selectedOptionIndex\n };\n }\n }\n } else {\n return this.findOptionIndexInList(this.props.value, visibleOptions);\n }\n }\n\n return -1;\n }\n }, {\n key: \"findOptionIndexInList\",\n value: function findOptionIndexInList(value, list) {\n var key = this.equalityKey();\n\n for (var i = 0; i < list.length; i++) {\n if (ObjectUtils.equals(value, this.getOptionValue(list[i]), key)) {\n return i;\n }\n }\n\n return -1;\n }\n }, {\n key: \"isSelected\",\n value: function isSelected(option) {\n return ObjectUtils.equals(this.props.value, this.getOptionValue(option), this.equalityKey());\n }\n }, {\n key: \"equalityKey\",\n value: function equalityKey() {\n return this.props.optionValue ? null : this.props.dataKey;\n }\n }, {\n key: \"showOverlay\",\n value: function showOverlay() {\n this.setState({\n overlayVisible: true\n });\n }\n }, {\n key: \"hideOverlay\",\n value: function hideOverlay() {\n this.setState({\n overlayVisible: false\n });\n }\n }, {\n key: \"onOverlayEnter\",\n value: function onOverlayEnter(callback) {\n ZIndexUtils.set('overlay', this.overlayRef.current, PrimeReact.autoZIndex, PrimeReact.zIndex['overlay']);\n this.alignOverlay();\n callback && callback();\n }\n }, {\n key: \"onOverlayEntered\",\n value: function onOverlayEntered(callback) {\n callback && callback();\n this.bindDocumentClickListener();\n this.bindScrollListener();\n this.bindResizeListener();\n this.props.onShow && this.props.onShow();\n }\n }, {\n key: \"onOverlayExit\",\n value: function onOverlayExit() {\n this.unbindDocumentClickListener();\n this.unbindScrollListener();\n this.unbindResizeListener();\n }\n }, {\n key: \"onOverlayExited\",\n value: function onOverlayExited() {\n if (this.props.filter && this.props.resetFilterOnHide) {\n this.resetFilter();\n }\n\n ZIndexUtils.clear(this.overlayRef.current);\n this.props.onHide && this.props.onHide();\n }\n }, {\n key: \"alignOverlay\",\n value: function alignOverlay() {\n DomHandler.alignOverlay(this.overlayRef.current, this.input.parentElement, this.props.appendTo || PrimeReact.appendTo);\n }\n }, {\n key: \"scrollInView\",\n value: function scrollInView() {\n var highlightItem = DomHandler.findSingle(this.overlayRef.current, 'li.p-highlight');\n\n if (highlightItem) {\n highlightItem.scrollIntoView({\n block: 'nearest',\n inline: 'start'\n });\n }\n }\n }, {\n key: \"bindDocumentClickListener\",\n value: function bindDocumentClickListener() {\n var _this8 = this;\n\n if (!this.documentClickListener) {\n this.documentClickListener = function (event) {\n if (_this8.state.overlayVisible && _this8.isOutsideClicked(event)) {\n _this8.hideOverlay();\n }\n };\n\n document.addEventListener('click', this.documentClickListener);\n }\n }\n }, {\n key: \"unbindDocumentClickListener\",\n value: function unbindDocumentClickListener() {\n if (this.documentClickListener) {\n document.removeEventListener('click', this.documentClickListener);\n this.documentClickListener = null;\n }\n }\n }, {\n key: \"bindScrollListener\",\n value: function bindScrollListener() {\n var _this9 = this;\n\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.container, function () {\n if (_this9.state.overlayVisible) {\n _this9.hideOverlay();\n }\n });\n }\n\n this.scrollHandler.bindScrollListener();\n }\n }, {\n key: \"unbindScrollListener\",\n value: function unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n }\n }, {\n key: \"bindResizeListener\",\n value: function bindResizeListener() {\n var _this10 = this;\n\n if (!this.resizeListener) {\n this.resizeListener = function () {\n if (_this10.state.overlayVisible && !DomHandler.isTouchDevice()) {\n _this10.hideOverlay();\n }\n };\n\n window.addEventListener('resize', this.resizeListener);\n }\n }\n }, {\n key: \"unbindResizeListener\",\n value: function unbindResizeListener() {\n if (this.resizeListener) {\n window.removeEventListener('resize', this.resizeListener);\n this.resizeListener = null;\n }\n }\n }, {\n key: \"isOutsideClicked\",\n value: function isOutsideClicked(event) {\n return this.container && !(this.container.isSameNode(event.target) || this.isClearClicked(event) || this.container.contains(event.target) || this.overlayRef && this.overlayRef.current.contains(event.target));\n }\n }, {\n key: \"isClearClicked\",\n value: function isClearClicked(event) {\n return DomHandler.hasClass(event.target, 'p-dropdown-clear-icon') || DomHandler.hasClass(event.target, 'p-dropdown-filter-clear-icon');\n }\n }, {\n key: \"updateEditableLabel\",\n value: function updateEditableLabel(option) {\n if (this.input) {\n this.input.value = option ? this.getOptionLabel(option) : this.props.value || '';\n }\n }\n }, {\n key: \"hasFilter\",\n value: function hasFilter() {\n return this.state.filter && this.state.filter.trim().length > 0;\n }\n }, {\n key: \"getOptionLabel\",\n value: function getOptionLabel(option) {\n return this.props.optionLabel ? ObjectUtils.resolveFieldData(option, this.props.optionLabel) : option && option['label'] !== undefined ? option['label'] : option;\n }\n }, {\n key: \"getOptionValue\",\n value: function getOptionValue(option) {\n return this.props.optionValue ? ObjectUtils.resolveFieldData(option, this.props.optionValue) : option && option['value'] !== undefined ? option['value'] : option;\n }\n }, {\n key: \"getOptionRenderKey\",\n value: function getOptionRenderKey(option) {\n return this.props.dataKey ? ObjectUtils.resolveFieldData(option, this.props.dataKey) : this.getOptionLabel(option);\n }\n }, {\n key: \"isOptionDisabled\",\n value: function isOptionDisabled(option) {\n if (this.props.optionDisabled) {\n return ObjectUtils.isFunction(this.props.optionDisabled) ? this.props.optionDisabled(option) : ObjectUtils.resolveFieldData(option, this.props.optionDisabled);\n }\n\n return option && option['disabled'] !== undefined ? option['disabled'] : false;\n }\n }, {\n key: \"getOptionGroupRenderKey\",\n value: function getOptionGroupRenderKey(optionGroup) {\n return ObjectUtils.resolveFieldData(optionGroup, this.props.optionGroupLabel);\n }\n }, {\n key: \"getOptionGroupLabel\",\n value: function getOptionGroupLabel(optionGroup) {\n return ObjectUtils.resolveFieldData(optionGroup, this.props.optionGroupLabel);\n }\n }, {\n key: \"getOptionGroupChildren\",\n value: function getOptionGroupChildren(optionGroup) {\n return ObjectUtils.resolveFieldData(optionGroup, this.props.optionGroupChildren);\n }\n }, {\n key: \"checkValidity\",\n value: function checkValidity() {\n if (this.inputRef.current) {\n return this.inputRef.current.checkValidity();\n }\n\n return false;\n }\n }, {\n key: \"isLazy\",\n value: function isLazy() {\n return this.props.virtualScrollerOptions && this.props.virtualScrollerOptions.lazy;\n }\n }, {\n key: \"getVisibleOptions\",\n value: function getVisibleOptions() {\n if (this.hasFilter() && !this.isLazy()) {\n var filterValue = this.state.filter.trim().toLocaleLowerCase(this.props.filterLocale);\n var searchFields = this.props.filterBy ? this.props.filterBy.split(',') : [this.props.optionLabel || 'label'];\n\n if (this.props.optionGroupLabel) {\n var filteredGroups = [];\n\n var _iterator = _createForOfIteratorHelper(this.props.options),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var optgroup = _step.value;\n var filteredSubOptions = FilterService.filter(this.getOptionGroupChildren(optgroup), searchFields, filterValue, this.props.filterMatchMode, this.props.filterLocale);\n\n if (filteredSubOptions && filteredSubOptions.length) {\n filteredGroups.push(_objectSpread(_objectSpread({}, optgroup), {\n items: filteredSubOptions\n }));\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n return filteredGroups;\n } else {\n return FilterService.filter(this.props.options, searchFields, filterValue, this.props.filterMatchMode, this.props.filterLocale);\n }\n } else {\n return this.props.options;\n }\n }\n }, {\n key: \"updateInputField\",\n value: function updateInputField() {\n if (this.props.editable && this.input) {\n var selectedOption = this.getSelectedOption();\n var label = selectedOption ? this.getOptionLabel(selectedOption) : null;\n var value = label || this.props.value || '';\n this.input.value = value;\n }\n }\n }, {\n key: \"updateInputRef\",\n value: function updateInputRef() {\n var ref = this.props.inputRef;\n\n if (ref) {\n if (typeof ref === 'function') {\n ref(this.inputRef.current);\n } else {\n ref.current = this.inputRef.current;\n }\n }\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.updateInputRef();\n\n if (this.props.autoFocus && this.focusInput) {\n this.focusInput.focus();\n }\n\n if (this.props.tooltip) {\n this.renderTooltip();\n }\n\n this.updateInputField();\n\n if (this.inputRef.current) {\n this.inputRef.current.selectedIndex = 1;\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.unbindDocumentClickListener();\n this.unbindResizeListener();\n\n if (this.scrollHandler) {\n this.scrollHandler.destroy();\n this.scrollHandler = null;\n }\n\n if (this.tooltip) {\n this.tooltip.destroy();\n this.tooltip = null;\n }\n\n if (this.hideTimeout) {\n clearTimeout(this.hideTimeout);\n this.hideTimeout = null;\n }\n\n ZIndexUtils.clear(this.overlayRef.current);\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n if (this.state.overlayVisible) {\n if (this.props.filter) {\n this.alignOverlay();\n }\n\n if (prevProps.value !== this.props.value) {\n this.scrollInView();\n }\n }\n\n if (prevProps.tooltip !== this.props.tooltip || prevProps.tooltipOptions !== this.props.tooltipOptions) {\n if (this.tooltip) this.tooltip.update(_objectSpread({\n content: this.props.tooltip\n }, this.props.tooltipOptions || {}));else this.renderTooltip();\n }\n\n if (this.state.filter && (!this.props.options || this.props.options.length === 0)) {\n this.setState({\n filter: ''\n });\n }\n\n this.updateInputField();\n\n if (this.inputRef.current) {\n this.inputRef.current.selectedIndex = 1;\n }\n }\n }, {\n key: \"renderHiddenSelect\",\n value: function renderHiddenSelect(selectedOption) {\n var placeHolderOption = /*#__PURE__*/React.createElement(\"option\", {\n value: \"\"\n }, this.props.placeholder);\n var option = selectedOption ? /*#__PURE__*/React.createElement(\"option\", {\n value: selectedOption.value\n }, this.getOptionLabel(selectedOption)) : null;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-hidden-accessible p-dropdown-hidden-select\"\n }, /*#__PURE__*/React.createElement(\"select\", {\n ref: this.inputRef,\n required: this.props.required,\n name: this.props.name,\n tabIndex: -1,\n \"aria-hidden\": \"true\"\n }, placeHolderOption, option));\n }\n }, {\n key: \"renderTooltip\",\n value: function renderTooltip() {\n this.tooltip = tip({\n target: this.container,\n content: this.props.tooltip,\n options: this.props.tooltipOptions\n });\n }\n }, {\n key: \"renderKeyboardHelper\",\n value: function renderKeyboardHelper() {\n var _this11 = this;\n\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-hidden-accessible\"\n }, /*#__PURE__*/React.createElement(\"input\", {\n ref: function ref(el) {\n return _this11.focusInput = el;\n },\n id: this.props.inputId,\n type: \"text\",\n readOnly: true,\n \"aria-haspopup\": \"listbox\",\n onFocus: this.onInputFocus,\n onBlur: this.onInputBlur,\n onKeyDown: this.onInputKeyDown,\n disabled: this.props.disabled,\n tabIndex: this.props.tabIndex,\n \"aria-label\": this.props.ariaLabel,\n \"aria-labelledby\": this.props.ariaLabelledBy\n }));\n }\n }, {\n key: \"renderLabel\",\n value: function renderLabel(selectedOption) {\n var _this12 = this;\n\n var label = ObjectUtils.isNotEmpty(selectedOption) ? this.getOptionLabel(selectedOption) : null;\n\n if (this.props.editable) {\n var value = label || this.props.value || '';\n return /*#__PURE__*/React.createElement(\"input\", {\n ref: function ref(el) {\n return _this12.input = el;\n },\n type: \"text\",\n defaultValue: value,\n className: \"p-dropdown-label p-inputtext\",\n disabled: this.props.disabled,\n placeholder: this.props.placeholder,\n maxLength: this.props.maxLength,\n onInput: this.onEditableInputChange,\n onFocus: this.onEditableInputFocus,\n onBlur: this.onInputBlur,\n \"aria-label\": this.props.ariaLabel,\n \"aria-labelledby\": this.props.ariaLabelledBy,\n \"aria-haspopup\": \"listbox\"\n });\n } else {\n var className = classNames('p-dropdown-label p-inputtext', {\n 'p-placeholder': label === null && this.props.placeholder,\n 'p-dropdown-label-empty': label === null && !this.props.placeholder\n });\n var content = this.props.valueTemplate ? ObjectUtils.getJSXElement(this.props.valueTemplate, selectedOption, this.props) : label || this.props.placeholder || 'empty';\n return /*#__PURE__*/React.createElement(\"span\", {\n ref: function ref(el) {\n return _this12.input = el;\n },\n className: className\n }, content);\n }\n }\n }, {\n key: \"renderClearIcon\",\n value: function renderClearIcon() {\n if (this.props.value != null && this.props.showClear && !this.props.disabled) {\n return /*#__PURE__*/React.createElement(\"i\", {\n className: \"p-dropdown-clear-icon pi pi-times\",\n onClick: this.clear\n });\n }\n\n return null;\n }\n }, {\n key: \"renderDropdownIcon\",\n value: function renderDropdownIcon() {\n var _this13 = this;\n\n var iconClassName = classNames('p-dropdown-trigger-icon p-clickable', this.props.dropdownIcon);\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: function ref(el) {\n return _this13.trigger = el;\n },\n className: \"p-dropdown-trigger\",\n role: \"button\",\n \"aria-haspopup\": \"listbox\",\n \"aria-expanded\": this.state.overlayVisible\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: iconClassName\n }));\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this14 = this;\n\n var className = classNames('p-dropdown p-component p-inputwrapper', this.props.className, {\n 'p-disabled': this.props.disabled,\n 'p-focus': this.state.focused,\n 'p-dropdown-clearable': this.props.showClear && !this.props.disabled,\n 'p-inputwrapper-filled': this.props.value,\n 'p-inputwrapper-focus': this.state.focused || this.state.overlayVisible\n });\n var visibleOptions = this.getVisibleOptions();\n var selectedOption = this.getSelectedOption();\n var appendTo = this.props.appendTo || PrimeReact.appendTo;\n var hiddenSelect = this.renderHiddenSelect(selectedOption);\n var keyboardHelper = this.renderKeyboardHelper();\n var labelElement = this.renderLabel(selectedOption);\n var dropdownIcon = this.renderDropdownIcon();\n var clearIcon = this.renderClearIcon();\n return /*#__PURE__*/React.createElement(\"div\", {\n id: this.props.id,\n ref: function ref(el) {\n return _this14.container = el;\n },\n className: className,\n style: this.props.style,\n onClick: this.onClick,\n onMouseDown: this.props.onMouseDown,\n onContextMenu: this.props.onContextMenu\n }, keyboardHelper, hiddenSelect, labelElement, clearIcon, dropdownIcon, /*#__PURE__*/React.createElement(DropdownPanel, _extends({\n ref: this.overlayRef,\n visibleOptions: visibleOptions\n }, this.props, {\n appendTo: appendTo,\n onClick: this.onPanelClick,\n onOptionClick: this.onOptionClick,\n filterValue: this.state.filter,\n hasFilter: this.hasFilter,\n onFilterClearIconClick: this.onFilterClearIconClick,\n onFilterInputKeyDown: this.onFilterInputKeyDown,\n onFilterInputChange: this.onFilterInputChange,\n getOptionLabel: this.getOptionLabel,\n getOptionRenderKey: this.getOptionRenderKey,\n isOptionDisabled: this.isOptionDisabled,\n getOptionGroupChildren: this.getOptionGroupChildren,\n getOptionGroupLabel: this.getOptionGroupLabel,\n getOptionGroupRenderKey: this.getOptionGroupRenderKey,\n isSelected: this.isSelected,\n getSelectedOptionIndex: this.getSelectedOptionIndex,\n \"in\": this.state.overlayVisible,\n onEnter: this.onOverlayEnter,\n onEntered: this.onOverlayEntered,\n onExit: this.onOverlayExit,\n onExited: this.onOverlayExited\n })));\n }\n }]);\n\n return Dropdown;\n}(Component);\n\n_defineProperty(Dropdown, \"defaultProps\", {\n id: null,\n inputRef: null,\n name: null,\n value: null,\n options: null,\n optionLabel: null,\n optionValue: null,\n optionDisabled: null,\n optionGroupLabel: null,\n optionGroupChildren: null,\n optionGroupTemplate: null,\n valueTemplate: null,\n itemTemplate: null,\n style: null,\n className: null,\n virtualScrollerOptions: null,\n scrollHeight: '200px',\n filter: false,\n filterBy: null,\n filterMatchMode: 'contains',\n filterPlaceholder: null,\n filterLocale: undefined,\n emptyMessage: null,\n emptyFilterMessage: null,\n editable: false,\n placeholder: null,\n required: false,\n disabled: false,\n appendTo: null,\n tabIndex: null,\n autoFocus: false,\n filterInputAutoFocus: true,\n resetFilterOnHide: false,\n showFilterClear: false,\n panelClassName: null,\n panelStyle: null,\n dataKey: null,\n inputId: null,\n showClear: false,\n maxLength: null,\n tooltip: null,\n tooltipOptions: null,\n ariaLabel: null,\n ariaLabelledBy: null,\n transitionOptions: null,\n dropdownIcon: 'pi pi-chevron-down',\n showOnFocus: false,\n onChange: null,\n onFocus: null,\n onBlur: null,\n onMouseDown: null,\n onContextMenu: null,\n onShow: null,\n onHide: null,\n onFilter: null\n});\n\nexport { Dropdown };\n"],"mappings":"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"},"metadata":{},"sourceType":"module"}