{"version":3,"file":"static/js/2065.7b0f8098.chunk.js","mappings":"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","sources":["../node_modules/@progress/kendo-react-dropdowns/dist/es/common/ListContainer.js","../node_modules/@progress/kendo-react-dropdowns/dist/es/common/ListFilter.js","../node_modules/@progress/kendo-react-dropdowns/dist/es/common/GroupStickyHeader.js","../node_modules/@progress/kendo-react-dropdowns/dist/es/common/utils.js","../node_modules/@progress/kendo-react-dropdowns/dist/es/common/ListDefaultItem.js","../node_modules/@progress/kendo-react-dropdowns/dist/es/common/ListItem.js","../node_modules/@progress/kendo-react-dropdowns/dist/es/common/ListGroupItem.js","../node_modules/@progress/kendo-react-dropdowns/dist/es/messages/index.js","../node_modules/@progress/kendo-react-dropdowns/dist/es/common/List.js","../node_modules/@progress/kendo-react-dropdowns/dist/es/common/VirtualScroll.js","../node_modules/@progress/kendo-react-dropdowns/dist/es/common/Navigation.js","../node_modules/@progress/kendo-react-dropdowns/dist/es/common/DropDownBase.js","../node_modules/@progress/kendo-react-dropdowns/dist/es/package-metadata.js","../node_modules/@progress/kendo-react-dropdowns/dist/es/common/constants.js","../node_modules/@progress/kendo-react-dropdowns/dist/es/DropDownList/DropDownList.js","../node_modules/@progress/kendo-react-dropdowns/dist/es/common/SearchBar.js","../node_modules/@progress/kendo-react-dropdowns/dist/es/common/ClearButton.js","../node_modules/@progress/kendo-react-dropdowns/dist/es/ComboBox/ComboBox.js","../node_modules/@progress/kendo-react-dropdowns/dist/es/AutoComplete/AutoComplete.js","../node_modules/@progress/kendo-react-buttons/dist/es/Chip/selection-reducer.js","../node_modules/@progress/kendo-react-buttons/dist/es/Chip/focus-reducer.js","../node_modules/@progress/kendo-react-buttons/dist/es/Chip/data-reducer.js","../node_modules/@progress/kendo-react-buttons/dist/es/Chip/ChipList.js","../node_modules/@progress/kendo-react-buttons/dist/es/Chip/Chip.js","../node_modules/@progress/kendo-react-dropdowns/dist/es/MultiSelect/TagList.js","../node_modules/@progress/kendo-react-dropdowns/dist/es/common/settings.js","../node_modules/@progress/kendo-react-dropdowns/dist/es/common/AdaptiveMode.js","../node_modules/@progress/kendo-react-dropdowns/dist/es/MultiSelect/MultiSelect.js","../node_modules/@progress/kendo-react-dropdowns/dist/es/common/MultiColumnList.js","../node_modules/@progress/kendo-react-dropdowns/dist/es/MultiColumnComboBox/MultiColumnComboBox.js","../node_modules/@progress/kendo-react-dropdowns/dist/es/DropDownTree/useDropdownWidth.js","../node_modules/@progress/kendo-react-dropdowns/dist/es/DropDownTree/ListNoData.js","../node_modules/@progress/kendo-react-dropdowns/dist/es/DropDownTree/DropDownTree.js","../node_modules/@progress/kendo-react-dropdowns/dist/es/MultiSelectTree/MultiSelectTree.js","../node_modules/@progress/kendo-react-dropdowns/dist/es/MultiSelectTree/utils.js","../node_modules/@progress/kendo-react-labels/dist/es/FloatingLabel.js","../node_modules/@progress/kendo-react-labels/dist/es/messages/index.js","../node_modules/@progress/kendo-react-labels/dist/es/package-metadata.js"],"sourcesContent":["var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport * as React from 'react';\nimport { Popup } from '@progress/kendo-react-popup';\n/**\n * @hidden\n */\nvar ListContainer = /** @class */ (function (_super) {\n __extends(ListContainer, _super);\n function ListContainer() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ListContainer.prototype.render = function () {\n var _a = this.props, children = _a.children, width = _a.width, dir = _a.dir, itemsCount = _a.itemsCount, popupSettings = _a.popupSettings;\n return (React.createElement(Popup, __assign({ style: { width: width, direction: dir }, contentKey: itemsCount && itemsCount.join() }, popupSettings), children));\n };\n return ListContainer;\n}(React.Component));\nexport default ListContainer;\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { TextBox, InputPrefix } from '@progress/kendo-react-inputs';\nimport { searchIcon } from '@progress/kendo-svg-icons';\nimport { IconWrap } from '@progress/kendo-react-common';\n/**\n * @hidden\n */\nvar ListFilter = React.forwardRef(function (props, ref) {\n var input = React.useRef(null);\n React.useImperativeHandle(ref, function () { return input.current; });\n return (React.createElement(\"div\", { className: \"k-list-filter\" },\n React.createElement(TextBox, __assign({}, props, { ref: input, value: props.value || '', onChange: props.onChange, onKeyDown: props.onKeyDown, tabIndex: props.tabIndex, onClick: function (e) { return e.stopPropagation(); }, size: props.size, fillMode: props.fillMode, rounded: props.rounded, prefix: function () { return (React.createElement(InputPrefix, null,\n React.createElement(IconWrap, { name: 'search', icon: searchIcon }))); } }))));\n});\nListFilter.propTypes = {\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.array]),\n tabIndex: PropTypes.number,\n onChange: PropTypes.func,\n onKeyDown: PropTypes.func,\n size: PropTypes.oneOf([null, 'small', 'medium', 'large']),\n rounded: PropTypes.oneOf([null, 'small', 'medium', 'large', 'full']),\n fillMode: PropTypes.oneOf([null, 'solid', 'flat', 'outline'])\n};\nListFilter.displayName = 'KendoReactListFilter';\nexport default ListFilter;\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\n/**\n * @hidden\n */\nvar GroupStickyHeader = /** @class */ (function (_super) {\n __extends(GroupStickyHeader, _super);\n function GroupStickyHeader() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n GroupStickyHeader.prototype.render = function () {\n var _a = this.props, group = _a.group, groupMode = _a.groupMode, renderer = _a.render;\n var item = (React.createElement(\"div\", { className: \"k-list-group-sticky-header\" }, groupMode === 'classic'\n ? group\n : React.createElement(\"div\", { className: \"k-list-header-text\" }, group)));\n return renderer !== undefined ? renderer.call(undefined, item, this.props) : item;\n };\n return GroupStickyHeader;\n}(React.Component));\nexport default GroupStickyHeader;\n","/**\n * @hidden\n */\nvar isPresent = function (value) { return value !== null && value !== undefined; };\n/**\n * @hidden\n */\nvar sameCharsOnly = function (word, character) {\n for (var idx = 0; idx < word.length; idx++) {\n if (word.charAt(idx) !== character) {\n return false;\n }\n }\n return true;\n};\n/**\n * @hidden\n */\nvar shuffleData = function (data, splitIndex, defaultItem) {\n var result = data;\n if (defaultItem) {\n result = [defaultItem].concat(result);\n }\n return result.slice(splitIndex).concat(result.slice(0, splitIndex));\n};\n/**\n * @hidden\n */\nvar matchText = function (text, word, ignoreCase) {\n if (!isPresent(text)) {\n return false;\n }\n var temp = String(text);\n if (ignoreCase) {\n temp = temp.toLowerCase();\n }\n return temp.indexOf(word) === 0;\n};\n/**\n * @hidden\n */\nvar scrollToItem = function (scrollElem, list, itemIndex, translate, virtualScroll) {\n var viewportHeight = scrollElem.offsetHeight;\n var li = list.children.item(itemIndex);\n var itemOffsetTop = li.offsetTop + (virtualScroll ? translate - scrollElem.scrollTop : 0);\n var itemHeight = li.offsetHeight;\n if (virtualScroll) {\n var diff = 0;\n if (itemOffsetTop + itemHeight > viewportHeight) {\n diff = itemOffsetTop + itemHeight - viewportHeight;\n }\n else if (itemOffsetTop < 0) {\n diff = itemOffsetTop;\n }\n if (diff !== 0) {\n scrollElem.scrollTop += diff;\n }\n else if (scrollElem.scrollTop === 0 && translate !== 0) {\n scrollElem.scrollTop = translate;\n }\n }\n else {\n if (itemOffsetTop + itemHeight > viewportHeight + scrollElem.scrollTop) {\n scrollElem.scrollTop = (itemOffsetTop + itemHeight - viewportHeight);\n }\n else if (itemOffsetTop < scrollElem.scrollTop) {\n scrollElem.scrollTop -= scrollElem.scrollTop - itemOffsetTop;\n }\n }\n};\n/**\n * @hidden\n */\nvar itemIndexStartsWith = function (items, text, field) {\n var result = -1;\n if (text) {\n text = text.toLowerCase();\n for (var i = 0; i < items.length; i++) {\n var itemText = (getItemValue(items[i], field) || '') + '';\n if (itemText && itemText.toLowerCase().startsWith(text)) {\n result = i;\n break;\n }\n }\n }\n return result;\n};\n/**\n * @hidden\n */\nvar getItemIndexByText = function (data, text, textField, matchCase) {\n if (matchCase === void 0) { matchCase = false; }\n var casing = function (value) { return matchCase ? value : value.toLowerCase(); };\n return data.findIndex(function (item) {\n return textField ? casing(getItemValue(item, textField)) === casing(text) :\n casing(text) === casing(item.toString());\n });\n};\n/**\n * @hidden\n */\nvar getItemValue = function (item, field) {\n if (field && isPresent(item)) {\n var path = field.split('.');\n var data_1 = item;\n path.forEach(function (p) {\n data_1 = data_1 ? data_1[p] : undefined;\n });\n return data_1;\n }\n return item;\n};\n/**\n * @hidden\n */\nvar matchDataCollections = function (data1, data2, key) {\n if (data1 === void 0) { data1 = []; }\n if (data2 === void 0) { data2 = []; }\n if (data1 === data2) {\n return true;\n }\n if (data1.length !== data2.length) {\n return false;\n }\n for (var i = 0; i < data1.length; i++) {\n if (!areSame(data1[i], data2[i], key)) {\n return false;\n }\n }\n return true;\n};\n/**\n * @hidden\n */\nvar removeDataItems = function (items, toRemove, key) {\n toRemove.forEach(function (item) {\n var itemIndex = items.findIndex(function (i) { return areSame(i, item, key); });\n if (itemIndex !== -1) {\n items.splice(itemIndex, 1);\n }\n });\n};\n/**\n * @hidden\n */\nvar areSame = function (item1, item2, key) {\n return item1 === item2 ||\n (isPresent(item1) === isPresent(item2) && getItemValue(item1, key) === getItemValue(item2, key));\n};\n/**\n * @hidden\n */\nvar getFocusedItem = function (data, value, textField) {\n if (value) {\n var selectedIndex = getItemIndexByText(data, value, textField, true);\n return selectedIndex !== -1 ? data[selectedIndex] : data[itemIndexStartsWith(data, value, textField)];\n }\n return data[0];\n};\n/**\n * @hidden\n */\nvar suggestValue = function (value, data, textField) {\n if (data === void 0) { data = []; }\n var suggested = '';\n if (value) {\n var suggestedItem = data[itemIndexStartsWith(data, value, textField)];\n if (suggestedItem) {\n var suggestedText = getItemValue(suggestedItem, textField);\n if (value.toLowerCase() !== suggestedText.toLowerCase()) {\n suggested = suggestedText.substring(value.length);\n }\n }\n }\n return suggested;\n};\n/**\n * @hidden\n */\nvar preventDefaultNonInputs = function (event) {\n if (event.target.nodeName !== 'INPUT') {\n event.preventDefault();\n }\n};\n/**\n * @hidden\n */\nvar matchTags = function (tag1, tag2, key) {\n if (!!tag1 !== !!tag2 || tag1.text !== tag2.text) {\n return false;\n }\n return tag1 === tag2 || matchDataCollections(tag1.data, tag2.data, key);\n};\nexport { isPresent, sameCharsOnly, shuffleData, matchText, scrollToItem, itemIndexStartsWith, getItemIndexByText, getItemValue, matchDataCollections, removeDataItems, areSame, getFocusedItem, preventDefaultNonInputs, suggestValue, matchTags };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport { classNames } from '@progress/kendo-react-common';\nimport { getItemValue } from './utils';\nvar preventDefault = function (e) { return e.preventDefault(); };\n/**\n * @hidden\n */\nvar ListDefaultItem = /** @class */ (function (_super) {\n __extends(ListDefaultItem, _super);\n function ListDefaultItem() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ListDefaultItem.prototype.render = function () {\n var _a = this.props, selected = _a.selected, defaultItem = _a.defaultItem, textField = _a.textField;\n return (React.createElement(\"div\", { onClick: this.props.onClick, onMouseDown: preventDefault, style: { position: 'unset' }, className: classNames('k-list-optionlabel', {\n 'k-selected': selected\n }) }, getItemValue(defaultItem, textField) || ''));\n };\n return ListDefaultItem;\n}(React.Component));\nexport default ListDefaultItem;\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport { classNames } from '@progress/kendo-react-common';\nimport { getItemValue } from './utils';\n// tslint:enable:max-line-length\n/**\n * @hidden\n */\nvar ListItem = /** @class */ (function (_super) {\n __extends(ListItem, _super);\n function ListItem() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.handleClick = function (e) { return _this.props.onClick(_this.props.index, e); };\n return _this;\n }\n ListItem.prototype.render = function () {\n var _a = this.props, selected = _a.selected, group = _a.group, dataItem = _a.dataItem, virtual = _a.virtual, groupMode = _a.groupMode, disabled = _a.disabled, renderer = _a.render;\n var item = (React.createElement(\"li\", { id: this.props.id, role: \"option\", \"aria-selected\": selected, \"aria-disabled\": disabled ? true : undefined, className: classNames('k-list-item', {\n 'k-selected': selected,\n 'k-focus': this.props.focused,\n 'k-first': Boolean(group) && groupMode === 'classic',\n 'k-disabled': disabled\n }), onClick: this.handleClick, style: { position: virtual ? 'relative' : 'unset' } },\n React.createElement(\"span\", { className: 'k-list-item-text' }, getItemValue(dataItem, this.props.textField).toString()),\n group !== undefined && groupMode === 'classic' ? React.createElement(\"div\", { className: \"k-list-item-group-label\" }, group) : null));\n return renderer !== undefined ? renderer.call(undefined, item, this.props) : item;\n };\n return ListItem;\n}(React.Component));\nexport default ListItem;\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\n/**\n * @hidden\n */\nvar ListGroupItem = /** @class */ (function (_super) {\n __extends(ListGroupItem, _super);\n function ListGroupItem() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ListGroupItem.prototype.render = function () {\n var _a = this.props, group = _a.group, virtual = _a.virtual, renderer = _a.render, _b = _a.isMultiColumn, isMultiColumn = _b === void 0 ? false : _b;\n var item = (React.createElement(\"li\", { id: this.props.id, role: \"group\", className: isMultiColumn ? 'k-table-group-row' : 'k-list-group-item', style: isMultiColumn ? { 'boxSizing': 'inherit' } : { position: virtual ? 'relative' : 'unset' } },\n React.createElement(\"span\", { className: !renderer ? isMultiColumn ? 'k-table-th' : 'k-list-item-text' : undefined }, group)));\n return renderer !== undefined ? renderer.call(undefined, item, this.props) : item;\n };\n return ListGroupItem;\n}(React.Component));\nexport default ListGroupItem;\n","var _a;\n/**\n * @hidden\n */\nexport var nodata = 'dropdowns.nodata';\n/**\n * @hidden\n */\nexport var clear = 'dropdowns.clear';\n/**\n * @hidden\n */\nexport var comboArrowBtnAriaLabelExpand = 'dropdowns.comboArrowBtnAriaLabelExpand';\n/**\n * @hidden\n */\nexport var comboArrowBtnAriaLabelCollapse = 'dropdowns.comboArrowBtnAriaLabelCollapse';\n/**\n * @hidden\n */\nexport var dropDownListArrowBtnAriaLabel = 'dropdowns.dropDownListArrowBtnAriaLabel';\n/**\n * @hidden\n */\nexport var adaptiveModeFooterApply = 'dropdowns.apply';\n/**\n * @hidden\n */\nexport var adaptiveModeFooterCancel = 'dropdowns.cancel';\n/**\n * @hidden\n */\nexport var messages = (_a = {},\n _a[clear] = 'clear',\n _a[nodata] = 'NO DATA FOUND.',\n _a[comboArrowBtnAriaLabelExpand] = 'expand combobox',\n _a[comboArrowBtnAriaLabelCollapse] = 'collapse combobox',\n _a[dropDownListArrowBtnAriaLabel] = 'select',\n _a[adaptiveModeFooterApply] = 'Apply',\n _a[adaptiveModeFooterCancel] = 'Cancel',\n _a);\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport ListItem from './ListItem';\nimport ListGroupItem from './ListGroupItem';\nimport { areSame, getItemValue } from './utils';\nimport { registerForLocalization, provideLocalizationService } from '@progress/kendo-react-intl';\nimport { messages, nodata } from '../messages';\n/**\n * @hidden\n */\nvar List = /** @class */ (function (_super) {\n __extends(List, _super);\n function List() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n List.prototype.renderItems = function () {\n var _this = this;\n var _a = this.props, textField = _a.textField, valueField = _a.valueField, groupField = _a.groupField, groupMode = _a.groupMode, isMultiColumn = _a.isMultiColumn, optionsGuid = _a.optionsGuid, _b = _a.skip, skip = _b === void 0 ? 0 : _b, virtual = _a.virtual, focusedIndex = _a.focusedIndex, _c = _a.highlightSelected, highlightSelected = _c === void 0 ? true : _c, value = _a.value, data = _a.data, itemRender = _a.itemRender, groupHeaderItemRender = _a.groupHeaderItemRender;\n var isArray = Array.isArray(value);\n var groupCounter = 0;\n return data.map(function (item, index) {\n var realIndex = skip + index;\n var idIndex = skip + index + groupCounter;\n var selected = item.disabled ? false : highlightSelected &&\n ((!isArray && areSame(item, value, valueField)) ||\n (isArray && value.findIndex(function (i) { return areSame(i, item, valueField); }) !== -1));\n var group = undefined;\n var current, previous;\n if (index > 0 && groupField !== undefined) {\n current = getItemValue(item, groupField);\n previous = getItemValue(data[index - 1], groupField);\n if (current && previous && current !== previous) {\n group = current;\n }\n }\n group !== undefined && groupMode === 'modern' ? groupCounter += 1 : '';\n return [\n group !== undefined && groupMode === 'modern' && React.createElement(ListGroupItem, { id: \"option-\".concat(optionsGuid, \"-\").concat(idIndex), virtual: virtual, key: realIndex + '-group-item', group: group, isMultiColumn: isMultiColumn, render: groupHeaderItemRender }),\n React.createElement(ListItem, { id: \"option-\".concat(optionsGuid, \"-\").concat(group !== undefined && groupMode === 'modern' ? idIndex + 1 : idIndex), virtual: virtual, dataItem: item, groupMode: groupMode, selected: selected, focused: focusedIndex === index, index: realIndex, key: realIndex, onClick: _this.props.onClick, textField: textField, group: group, render: itemRender, disabled: item.disabled })\n ];\n });\n };\n List.prototype.renderNoValueElement = function (localizationService) {\n var noDataRender = this.props.noDataRender;\n var noDataElement = (React.createElement(\"div\", { className: 'k-nodata' },\n React.createElement(\"div\", null, localizationService.toLanguageString(nodata, messages[nodata]))));\n return noDataRender ?\n noDataRender.call(undefined, noDataElement) : noDataElement;\n };\n List.prototype.render = function () {\n var localizationService = provideLocalizationService(this);\n var _a = this.props, id = _a.id, show = _a.show, wrapperCssClass = _a.wrapperCssClass, wrapperStyle = _a.wrapperStyle, listStyle = _a.listStyle, listRef = _a.listRef, wrapperRef = _a.wrapperRef, _b = _a.listClassName, listClassName = _b === void 0 ? 'k-list-ul' : _b;\n var items = this.renderItems();\n return (items.length ? (React.createElement(\"div\", { className: wrapperCssClass, style: wrapperStyle, ref: wrapperRef, onMouseDown: this.props.onMouseDown, onBlur: this.props.onBlur, onScroll: this.props.onScroll, unselectable: \"on\" },\n React.createElement(\"ul\", { id: id, role: \"listbox\", \"aria-hidden\": !show ? true : undefined, className: listClassName, ref: listRef, style: listStyle }, items),\n this.props.scroller && React.createElement(\"div\", { className: \"k-height-container\" }, this.props.scroller))) : this.renderNoValueElement(localizationService));\n };\n return List;\n}(React.Component));\nexport default List;\nregisterForLocalization(List);\n","var maxHeightIE = 1533915;\n/**\n * @hidden\n */\nvar VirtualScroll = /** @class */ (function () {\n function VirtualScroll() {\n var _this = this;\n this.container = null;\n this.scrollElement = null;\n this.list = null;\n this.containerHeight = 0;\n this.skip = 0;\n this.total = 0;\n this.enabled = false;\n this.pageSize = 0;\n this.itemHeight = 0;\n this.PageChange = null;\n this.prevScrollPos = 0;\n this.listTranslate = 0;\n this.scrollSyncing = false;\n this.scrollerRef = function (element) {\n var vs = _this;\n vs.container = element;\n if (element) {\n element.setAttribute('unselectable', 'on');\n window.setTimeout(vs.calcScrollElementHeight.bind(vs), 0);\n }\n };\n this.calcScrollElementHeight = function () {\n _this.scrollSyncing = true;\n var heightChanged = false;\n _this.itemHeight = _this.list ? _this.list.children[0].offsetHeight : _this.itemHeight;\n _this.containerHeight = Math.min(maxHeightIE, _this.itemHeight * _this.total);\n var newHeight = _this.containerHeight;\n if (_this.scrollElement) {\n heightChanged = _this.scrollElement.style.height !== newHeight + 'px';\n if (heightChanged) {\n _this.scrollElement.style.height = newHeight + 'px';\n }\n }\n _this.scrollSyncing = false;\n return heightChanged;\n };\n this.scrollHandler = this.scrollHandler.bind(this);\n }\n Object.defineProperty(VirtualScroll.prototype, \"translate\", {\n get: function () {\n return this.listTranslate;\n },\n enumerable: false,\n configurable: true\n });\n VirtualScroll.prototype.changePage = function (skip, e) {\n var newSkip = Math.min(Math.max(0, skip), this.total - this.pageSize);\n if (newSkip !== this.skip && this.PageChange) {\n this.PageChange({ skip: newSkip, take: this.pageSize }, e);\n }\n };\n VirtualScroll.prototype.translateTo = function (dY) {\n this.listTranslate = dY;\n if (this.list) {\n this.list.style.transform = 'translateY(' + dY + 'px)';\n }\n };\n VirtualScroll.prototype.reset = function () {\n if (this.container) {\n this.calcScrollElementHeight();\n this.container.scrollTop = 0;\n this.translateTo(0);\n }\n };\n VirtualScroll.prototype.scrollToEnd = function () {\n if (this.container && this.list) {\n this.calcScrollElementHeight();\n this.container.scrollTop = this.container.scrollHeight - this.container.offsetHeight;\n this.translateTo(this.container.scrollHeight); // - this.list.offsetHeight\n }\n };\n VirtualScroll.prototype.localScrollUp = function (e) {\n var height = this.itemHeight;\n var scrollTop = this.container.scrollTop;\n var targetTranslate = this.listTranslate;\n var items;\n var additionalOnTop = scrollTop - targetTranslate;\n if (additionalOnTop > height) {\n return;\n }\n for (items = 0; items < this.skip; items++) {\n if (targetTranslate + height + additionalOnTop <= scrollTop) {\n break;\n }\n targetTranslate -= height;\n }\n targetTranslate = this.validateTranslate(targetTranslate);\n if (this.skip - items <= 0 && targetTranslate >= scrollTop) {\n this.translateTo(0);\n this.changePage(0, e);\n this.container.scrollTop = 0;\n return;\n }\n if (targetTranslate !== this.listTranslate) {\n this.translateTo(targetTranslate);\n this.changePage(this.skip - items, e);\n }\n };\n VirtualScroll.prototype.localScrollDown = function (e) {\n var height = this.itemHeight;\n var scrollTop = this.container.scrollTop;\n var targetTranslate = this.listTranslate;\n var itemsLenght = this.list.children.length;\n var items;\n for (items = 0; items < itemsLenght; items++) {\n if (targetTranslate + height >= scrollTop) {\n break;\n }\n targetTranslate += height;\n }\n targetTranslate = this.validateTranslate(targetTranslate);\n if (items >= itemsLenght && this.skip + items >= this.total) {\n this.translateTo(targetTranslate);\n this.changePage(this.total - 1, e);\n }\n else if (targetTranslate !== this.listTranslate) {\n this.translateTo(targetTranslate);\n this.changePage(this.skip + items, e);\n }\n };\n VirtualScroll.prototype.scrollNonStrict = function (e) {\n var floatItemIndex = this.total * this.prevScrollPos / (this.containerHeight);\n var itemIndex = Math.min(Math.floor(floatItemIndex), this.total - 1);\n var targetTranslate = this.containerHeight * floatItemIndex / this.total;\n targetTranslate = this.validateTranslate(targetTranslate);\n this.translateTo(targetTranslate);\n this.changePage(itemIndex, e);\n };\n VirtualScroll.prototype.scrollHandler = function (e) {\n var scrollTop = this.container ? this.container.scrollTop : 0;\n var prev = this.prevScrollPos;\n this.prevScrollPos = scrollTop;\n if (!this.enabled || !this.list || !this.container || this.scrollSyncing) {\n return;\n }\n if (scrollTop - prev <= 0 && scrollTop > this.listTranslate - this.list.scrollHeight / 10) {\n this.localScrollUp(e);\n }\n else if (scrollTop - prev > 0 && scrollTop < this.listTranslate + this.list.scrollHeight * 2 / 3) {\n this.localScrollDown(e);\n }\n else {\n this.scrollNonStrict(e);\n }\n };\n VirtualScroll.prototype.validateTranslate = function (translate) {\n translate = Math.max(0, translate);\n // translate = Math.min(this.containerHeight - this.list!.offsetHeight, translate);\n translate = Math.min(this.containerHeight, translate);\n return translate;\n };\n return VirtualScroll;\n}());\nexport default VirtualScroll;\n","import { isPresent } from './utils';\nimport { Keys } from '@progress/kendo-react-common';\n/**\n * @hidden\n */\nvar Navigation = /** @class */ (function () {\n function Navigation() {\n }\n Navigation.prototype.navigate = function (args) {\n var keyCode = args.keyCode;\n if (keyCode === Keys.up || keyCode === Keys.left) {\n return this.next({ current: args.current, min: args.min, max: args.max, step: args.skipItems ? args.skipItems : -1 });\n }\n else if (keyCode === Keys.down || keyCode === Keys.right) {\n return this.next({ current: args.current, min: args.min, max: args.max, step: args.skipItems ? args.skipItems : 1 });\n }\n else if (keyCode === Keys.home) {\n return 0;\n }\n else if (keyCode === Keys.end) {\n return args.max;\n }\n };\n Navigation.prototype.next = function (args) {\n if (!isPresent(args.current)) {\n return args.min;\n }\n else {\n return Math.min(args.max, Math.max(args.current + args.step, args.min));\n }\n };\n return Navigation;\n}());\nexport { Navigation };\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport VirtualScroll from './VirtualScroll';\nimport { Navigation } from './Navigation';\nimport { scrollToItem, areSame } from './utils';\nimport { guid } from '@progress/kendo-react-common';\n/**\n * @hidden\n */\nvar DropDownBase = /** @class */ (function () {\n function DropDownBase(component) {\n var _this = this;\n this.wrapper = null;\n this.list = null;\n this.vs = new VirtualScroll();\n this.navigation = new Navigation();\n this.handleItemClick = function (index, event) {\n var state = _this.initState();\n state.syntheticEvent = event;\n event.stopPropagation();\n _this.component.handleItemSelect(index, state);\n _this.togglePopup(state);\n _this.applyState(state);\n };\n this.handleFocus = function (event) {\n if (!_this.component.state.focused) {\n var state = _this.initState();\n state.data.focused = true;\n state.events.push({ type: 'onFocus' });\n state.syntheticEvent = event;\n _this.applyState(state);\n }\n };\n this.filterChanged = function (text, state) {\n var _a = _this.component.props, textField = _a.textField, filterable = _a.filterable;\n if (filterable) {\n state.events.push({\n type: 'onFilterChange',\n filter: {\n field: textField,\n operator: 'contains',\n ignoreCase: true,\n value: text\n }\n });\n }\n };\n this.togglePopup = function (state) {\n var props = _this.component.props;\n var opened = props.opened !== undefined ? props.opened : _this.component.state.opened;\n if (props.opened === undefined) {\n state.data.opened = !opened;\n }\n if (opened) {\n state.events.push({ type: 'onClose' });\n }\n else {\n state.events.push({ type: 'onOpen' });\n _this.calculatePopupWidth();\n }\n };\n this.pageChange = function (page, syntheticEvent) {\n var state = _this.initState();\n state.syntheticEvent = syntheticEvent;\n _this.triggerOnPageChange(state, page.skip, page.take);\n _this.applyState(state);\n };\n this.scrollToVirtualItem = function (virtual, selectedItemIndex) {\n var vs = _this.vs;\n vs.enabled = false;\n if (virtual.skip === 0) {\n vs.reset();\n }\n else if (virtual.skip + virtual.pageSize === virtual.total) {\n vs.scrollToEnd();\n }\n else {\n var scrollTop = vs.translate;\n if (scrollTop === 0) {\n vs.calcScrollElementHeight();\n scrollTop = (vs.itemHeight * virtual.skip);\n vs.translateTo(scrollTop - vs.itemHeight);\n }\n if (vs.container) {\n vs.container.scrollTop = scrollTop;\n }\n _this.scrollToItem(selectedItemIndex, true);\n }\n window.setTimeout(function () { return vs.enabled = true; }, 10);\n };\n /**\n * @hidden\n * Scrolls the data inside the popup of a selected DropDown by `one page`. The page size\n * depends on the height of the popup.\n *\n * @param {number} direction Defines the direction(Up/Down) in which the page will be moved\n * @param {number} filterHeight Defines the heigh of the filter element that appears in the DropDownList and DropDownTree.\n * This property is added for handling the filtering scenarios of the mentioned components.\n */\n this.scrollPopupByPageSize = function (direction) {\n var _a, _b, _c, _d, _e, _f;\n var vs = _this.vs;\n var offsetTop = (_b = (_a = _this.list) === null || _a === void 0 ? void 0 : _a.parentElement) === null || _b === void 0 ? void 0 : _b.scrollTop;\n var itemHeight = (vs.enabled && vs.itemHeight ? vs.itemHeight : (_this.list ? _this.list.children[0].offsetHeight : 0));\n var height = (_d = (_c = _this.list) === null || _c === void 0 ? void 0 : _c.parentElement) === null || _d === void 0 ? void 0 : _d.offsetHeight;\n if (offsetTop !== undefined && height !== undefined) {\n (_f = (_e = _this.list) === null || _e === void 0 ? void 0 : _e.parentElement) === null || _f === void 0 ? void 0 : _f.scroll({ top: offsetTop + direction * Math.floor(height / itemHeight) * itemHeight });\n }\n };\n this.renderScrollElement = function () {\n var vs = _this.vs;\n return vs.enabled && (React.createElement(\"div\", { ref: function (element) { return vs.scrollElement = element; }, key: 'scrollElementKey' }));\n };\n this.resetGroupStickyHeader = function (groupName, that) {\n if (groupName !== that.state.group) {\n that.setState(__assign(__assign({}, that.state), { group: groupName }));\n }\n };\n this.listBoxId = guid();\n this.guid = guid();\n this.component = component;\n this.vs.PageChange = this.pageChange;\n }\n DropDownBase.prototype.didMount = function () {\n var props = this.component.props;\n var popupSettings = props.popupSettings || {};\n var style = props.style || {};\n var popupWidth = popupSettings.width;\n var shouldUpdate = props.opened === true;\n if (popupWidth === undefined) {\n this.calculatePopupWidth();\n }\n if (props.dir === undefined && style.direction === undefined) {\n this.calculateDir();\n shouldUpdate = true;\n }\n if (shouldUpdate) {\n this.component.forceUpdate();\n }\n };\n DropDownBase.prototype.calculateDir = function () {\n var element = this.component.element;\n if (element && element.ownerDocument && element.ownerDocument.defaultView) {\n this.dirCalculated = element.ownerDocument.defaultView.getComputedStyle(element).direction || undefined;\n }\n };\n DropDownBase.prototype.calculatePopupWidth = function () {\n if (this.wrapper) {\n this.popupWidth = this.wrapper.offsetWidth + 'px';\n }\n };\n DropDownBase.prototype.scrollToItem = function (itemIndex, vsEnabled, once) {\n var _this = this;\n var list = this.list || this.vs.list;\n if (!list && !once) {\n setTimeout(function () {\n _this.scrollToItem(itemIndex, vsEnabled, true);\n }, 10);\n }\n if (list && itemIndex >= 0) {\n var vs = this.vs;\n var scrollElement = (vs.container || list.parentNode);\n var virtualScroll = vsEnabled !== undefined ? vsEnabled : vs.enabled;\n scrollToItem(scrollElement, list, itemIndex, vs.translate, virtualScroll);\n }\n };\n DropDownBase.prototype.initState = function () {\n var state = {\n data: {},\n events: [],\n syntheticEvent: undefined\n };\n return state;\n };\n DropDownBase.prototype.applyState = function (state) {\n var _this = this;\n if (Object.keys(state.data).length > 0) {\n this.component.setState(state.data);\n }\n var eventArgs = {\n syntheticEvent: state.syntheticEvent,\n nativeEvent: state.syntheticEvent ? state.syntheticEvent.nativeEvent : undefined,\n target: this.component,\n value: this.component.value\n };\n state.events.forEach(function (eventData) {\n var type = eventData.type;\n delete eventData.type;\n var handler = type && _this.component.props[type];\n if (handler) {\n handler.call(undefined, __assign(__assign({}, eventArgs), eventData));\n }\n });\n };\n DropDownBase.prototype.triggerOnPageChange = function (state, skip, take) {\n var virtual = this.component.props.virtual;\n if (virtual) {\n var newSkip = Math.min(Math.max(0, skip), Math.max(0, virtual.total - take));\n if (newSkip !== virtual.skip) {\n state.events.push({\n type: 'onPageChange',\n page: { skip: newSkip, take: take }\n });\n }\n }\n };\n DropDownBase.prototype.triggerPageChangeCornerItems = function (item, state) {\n var props = this.component.props;\n var _a = props.data, data = _a === void 0 ? [] : _a, dataItemKey = props.dataItemKey, virtual = props.virtual;\n var opened = props.opened !== undefined ? props.opened : this.component.state.opened;\n if (item && virtual && this.vs.enabled) {\n if (virtual.skip > 0 && areSame(item, data[0], dataItemKey)) {\n this.triggerOnPageChange(state, virtual.skip - 1, virtual.pageSize);\n }\n else if (!opened && virtual.skip + virtual.pageSize < virtual.total &&\n areSame(item, data[data.length - 1], dataItemKey)) {\n this.triggerOnPageChange(state, virtual.skip + 1, virtual.pageSize);\n }\n }\n };\n DropDownBase.prototype.getPopupSettings = function () {\n return Object\n .assign({}, DropDownBase.defaultProps.popupSettings, this.component.props.popupSettings);\n };\n DropDownBase.prototype.getGroupedDataModernMode = function (data, groupField) {\n var newData = [];\n data.forEach(function (el, index) {\n var _a;\n if (data[index - 1] && el[groupField] !== data[index - 1][groupField]) {\n newData.push((_a = {}, _a[groupField] = el[groupField], _a));\n newData.push(data[index]);\n }\n else {\n newData.push(data[index]);\n }\n });\n return newData;\n };\n DropDownBase.basicPropTypes = {\n opened: PropTypes.bool,\n disabled: PropTypes.bool,\n dir: PropTypes.string,\n tabIndex: PropTypes.number,\n accessKey: PropTypes.string,\n data: PropTypes.array,\n textField: PropTypes.string,\n className: PropTypes.string,\n label: PropTypes.string,\n loading: PropTypes.bool,\n popupSettings: PropTypes.shape({\n animate: PropTypes.oneOfType([PropTypes.bool, PropTypes.shape({\n openDuration: PropTypes.number,\n closeDuration: PropTypes.number\n })]),\n popupClass: PropTypes.string,\n className: PropTypes.string,\n appendTo: PropTypes.any,\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n height: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n }),\n onOpen: PropTypes.func,\n onClose: PropTypes.func,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n onChange: PropTypes.func,\n itemRender: PropTypes.func,\n listNoDataRender: PropTypes.func,\n focusedItemIndex: PropTypes.func,\n header: PropTypes.node,\n footer: PropTypes.node\n };\n DropDownBase.propTypes = __assign(__assign({}, DropDownBase.basicPropTypes), { value: PropTypes.any, defaultValue: PropTypes.any, filterable: PropTypes.bool, filter: PropTypes.string, virtual: PropTypes.shape({\n pageSize: PropTypes.number.isRequired,\n skip: PropTypes.number.isRequired,\n total: PropTypes.number.isRequired\n }), onFilterChange: PropTypes.func, onPageChange: PropTypes.func });\n DropDownBase.defaultProps = {\n popupSettings: {\n height: '200px'\n },\n required: false,\n validityStyles: true\n };\n return DropDownBase;\n}());\nexport default DropDownBase;\n","/**\n * @hidden\n */\nexport var packageMetadata = {\n name: '@progress/kendo-react-dropdowns',\n productName: 'KendoReact',\n productCodes: ['KENDOUIREACT', 'KENDOUICOMPLETE'],\n publishDate: 1700064130,\n version: '',\n licensingDocsUrl: 'https://www.telerik.com/kendo-react-ui/my-license/?utm_medium=product&utm_source=kendoreact&utm_campaign=kendo-ui-react-purchase-license-keys-warning'\n};\n","/** @hidden */\nexport var MOBILE_SMALL_DEVISE = 500;\n/** @hidden */\nexport var MOBILE_MEDIUM_DEVISE = 768;\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { classNames, Keys, getTabIndex, createPropsContext, withPropsContext, kendoThemeMaps, IconWrap, svgIconPropType, guid } from '@progress/kendo-react-common';\nimport { FloatingLabel } from '@progress/kendo-react-labels';\nimport { caretAltDownIcon, xIcon } from '@progress/kendo-svg-icons';\nimport ListContainer from '../common/ListContainer';\nimport ListFilter from '../common/ListFilter';\nimport GroupStickyHeader from '../common/GroupStickyHeader';\nimport ListDefaultItem from '../common/ListDefaultItem';\nimport List from '../common/List';\nimport DropDownBase from '../common/DropDownBase';\nimport { isPresent, getItemValue, sameCharsOnly, shuffleData, matchText, areSame, itemIndexStartsWith } from '../common/utils';\nimport { validatePackage, canUseDOM } from '@progress/kendo-react-common';\nimport { packageMetadata } from '../package-metadata';\nimport { Button } from '@progress/kendo-react-buttons';\nimport { provideLocalizationService } from '@progress/kendo-react-intl';\nimport { dropDownListArrowBtnAriaLabel, messages } from '../messages';\nimport { MOBILE_SMALL_DEVISE, MOBILE_MEDIUM_DEVISE } from '../common/constants';\nimport { ActionSheet, ActionSheetContent, ActionSheetHeader } from '@progress/kendo-react-layout';\nvar VALIDATION_MESSAGE = 'Please select a value from the list!';\nvar sizeMap = kendoThemeMaps.sizeMap, roundedMap = kendoThemeMaps.roundedMap;\n/**\n * @hidden\n */\nvar DropDownListWithoutContext = /** @class */ (function (_super) {\n __extends(DropDownListWithoutContext, _super);\n function DropDownListWithoutContext(props) {\n var _this = _super.call(this, props) || this;\n /**\n * @hidden\n */\n _this.state = {};\n _this._element = null;\n _this.base = new DropDownBase(_this);\n _this.searchState = { word: '', last: '' };\n _this._select = null;\n _this._skipFocusEvent = false;\n _this._filterInput = null;\n _this._navigated = false;\n _this._lastKeypressIsFilter = false;\n _this._inputId = guid();\n _this.itemHeight = 0;\n /**\n * @hidden\n */\n _this.focus = function () {\n if (_this.base.wrapper) {\n _this.base.wrapper.focus();\n }\n };\n /**\n * @hidden\n */\n _this.handleItemSelect = function (index, state) {\n var _a = _this.props, _b = _a.data, data = _b === void 0 ? [] : _b, virtual = _a.virtual, dataItemKey = _a.dataItemKey, defaultItem = _a.defaultItem;\n var skip = virtual ? virtual.skip : 0;\n var item = (index === -1 && defaultItem !== undefined) ?\n defaultItem : data[index - skip];\n var newSelected = !areSame(item, _this.value, dataItemKey);\n _this.triggerOnChange(item, state);\n if (newSelected) {\n _this.base.triggerPageChangeCornerItems(item, state);\n }\n };\n _this.componentRef = function (element) {\n _this._element = element;\n _this.base.wrapper = element;\n };\n _this.dummySelect = function (value) {\n /* Dummy component to support forms */\n return (React.createElement(\"select\", { name: _this.props.name, ref: function (el) { _this._select = el; }, tabIndex: -1, \"aria-hidden\": true, title: _this.props.label, style: { opacity: 0, width: 1, border: 0, zIndex: -1, position: 'absolute', left: '50%' } },\n React.createElement(\"option\", { value: _this.props.valueMap ? _this.props.valueMap.call(undefined, value) : value })));\n };\n _this.renderListContainer = function () {\n var _a;\n var _b = _this.props, header = _b.header, footer = _b.footer, dir = _b.dir, _c = _b.data, data = _c === void 0 ? [] : _c, size = _b.size, groupField = _b.groupField, groupStickyHeaderItemRender = _b.groupStickyHeaderItemRender, list = _b.list;\n var base = _this.base;\n var popupSettings = base.getPopupSettings();\n var opened = _this.props.opened !== undefined ? _this.props.opened : _this.state.opened;\n var popupWidth = popupSettings.width !== undefined ? popupSettings.width : base.popupWidth;\n var listContainerProps = {\n dir: dir !== undefined ? dir : base.dirCalculated,\n width: popupWidth,\n popupSettings: {\n popupClass: classNames(popupSettings.popupClass, 'k-list-container', 'k-dropdownlist-popup'),\n className: popupSettings.className,\n animate: popupSettings.animate,\n anchor: _this.element,\n show: opened,\n onOpen: _this.onPopupOpened,\n onClose: _this.onPopupClosed,\n appendTo: popupSettings.appendTo\n },\n itemsCount: [data.length]\n };\n var group = _this.state.group;\n if (group === undefined && groupField !== undefined) {\n group = getItemValue(data[0], groupField);\n }\n return (React.createElement(ListContainer, __assign({}, listContainerProps),\n _this.renderListFilter(),\n header && React.createElement(\"div\", { className: \"k-list-header\" }, header),\n React.createElement(\"div\", { className: classNames('k-list', (_a = {}, _a[\"k-list-\".concat(sizeMap[size] || size)] = size, _a['k-virtual-list'] = _this.base.vs.enabled, _a)) },\n _this.renderDefaultItem(),\n !list && group && data.length !== 0 && React.createElement(GroupStickyHeader, { group: group, groupMode: 'modern', render: groupStickyHeaderItemRender }),\n _this.renderList()),\n footer && React.createElement(\"div\", { className: \"k-list-footer\" }, footer)));\n };\n _this.renderList = function () {\n var _a = _this.props, _b = _a.data, data = _b === void 0 ? [] : _b, textField = _a.textField, dataItemKey = _a.dataItemKey, _c = _a.virtual, virtual = _c === void 0 ? { skip: 0 } : _c, groupHeaderItemRender = _a.groupHeaderItemRender, listNoDataRender = _a.listNoDataRender, itemRender = _a.itemRender;\n var vs = _this.base.vs;\n var skip = virtual.skip;\n var opened = _this.props.opened !== undefined ? _this.props.opened : _this.state.opened;\n var popupSettings = _this.base.getPopupSettings();\n var translate = \"translateY(\".concat(vs.translate, \"px)\");\n return (React.createElement(List, { id: _this.base.listBoxId, show: opened, data: data.slice(), focusedIndex: _this.getFocusedIndex(), value: _this.value, textField: textField, valueField: dataItemKey, optionsGuid: _this.base.guid, groupField: _this.props.groupField, groupMode: 'modern', listRef: function (list) { return vs.list = _this.base.list = list; }, wrapperStyle: { maxHeight: popupSettings.height }, wrapperCssClass: \"k-list-content\", listStyle: vs.enabled ? { transform: translate } : undefined, key: \"listkey\", skip: skip, onClick: _this.handleItemClick, itemRender: itemRender, groupHeaderItemRender: groupHeaderItemRender, noDataRender: listNoDataRender, onScroll: _this.onScroll, wrapperRef: vs.scrollerRef, scroller: _this.base.renderScrollElement() }));\n };\n _this.onScroll = function (event) {\n var _a = _this.base, vs = _a.vs, list = _a.list;\n vs.scrollHandler(event);\n var groupField = _this.props.groupField;\n var _b = _this.props.data, data = _b === void 0 ? [] : _b;\n if (!groupField || !data.length) {\n return;\n }\n if (groupField) {\n var itemHeight = _this.itemHeight =\n _this.itemHeight || (vs.enabled ? vs.itemHeight : (list ? list.children[0].offsetHeight : 0));\n var target = event.target;\n var scrollTop = target.scrollTop - (vs.skip * itemHeight);\n data = _this.base.getGroupedDataModernMode(data, groupField);\n var group = data[0][groupField];\n for (var i = 1; i < data.length; i++) {\n if (itemHeight * i > scrollTop) {\n break;\n }\n if (data[i] && data[i][groupField]) {\n group = data[i][groupField];\n }\n }\n if (group !== _this.state.group) {\n _this.setState({\n group: group\n });\n }\n }\n };\n _this.renderListFilter = function () {\n var filterText = _this.props.filter !== undefined ? _this.props.filter : _this.state.text;\n return _this.props.filterable && (React.createElement(ListFilter, { value: filterText, ref: function (filter) { return _this._filterInput = filter && filter.element; }, onChange: _this.handleListFilterChange, onKeyDown: _this.handleKeyDown, size: _this.props.size, rounded: _this.props.rounded, fillMode: _this.props.fillMode }));\n };\n _this.renderDefaultItem = function () {\n var _a = _this.props, textField = _a.textField, defaultItem = _a.defaultItem, dataItemKey = _a.dataItemKey;\n return defaultItem !== undefined && (React.createElement(ListDefaultItem, { defaultItem: defaultItem, textField: textField, selected: areSame(_this.value, defaultItem, dataItemKey), key: \"defaultitemkey\", onClick: _this.handleDefaultItemClick }));\n };\n _this.search = function (event) {\n clearTimeout(_this._typingTimeout);\n if (!_this.props.filterable) {\n _this._typingTimeout = window.setTimeout(function () { return _this.searchState.word = ''; }, _this.props.delay);\n _this.selectNext(event);\n }\n };\n _this.selectNext = function (event) {\n var _a = _this.props, _b = _a.data, data = _b === void 0 ? [] : _b, dataItemKey = _a.dataItemKey;\n var mappedData = data.map(function (item, idx) {\n return { item: item, itemIndex: idx };\n });\n var word = _this.searchState.word;\n var last = _this.searchState.last;\n var isInLoop = sameCharsOnly(word, last);\n var dataLength = mappedData.length;\n var startIndex = Math.max(0, data.findIndex(function (i) { return areSame(i, _this.value, dataItemKey); }));\n var defaultItem;\n if (_this.props.defaultItem) {\n defaultItem = { item: _this.props.defaultItem, itemIndex: -1 };\n dataLength += 1;\n startIndex += 1;\n }\n startIndex += isInLoop ? 1 : 0;\n mappedData = shuffleData(mappedData, startIndex, defaultItem);\n var text, loopMatch, nextMatch, index = 0;\n var _c = _this.props, textField = _c.textField, ignoreCase = _c.ignoreCase;\n for (; index < dataLength; index++) {\n text = getItemValue(mappedData[index].item, textField);\n loopMatch = isInLoop && matchText(text, last, ignoreCase);\n nextMatch = matchText(text, word, ignoreCase);\n if (loopMatch || nextMatch) {\n index = mappedData[index].itemIndex;\n break;\n }\n }\n if (index !== dataLength) {\n var state = _this.base.initState();\n state.syntheticEvent = event;\n _this.handleItemSelect(index, state);\n _this.applyState(state);\n _this._valueDuringOnChange = undefined;\n }\n };\n _this.handleKeyDown = function (event) {\n // The following added here to prevent the propagation of the keyDown event when the filter prop is set to true\n if (event && event.target instanceof Element && event.target.nodeName === 'INPUT') {\n event.stopPropagation && event.stopPropagation();\n }\n var _a = _this.props, _b = _a.data, data = _b === void 0 ? [] : _b, filterable = _a.filterable, disabled = _a.disabled, defaultItem = _a.defaultItem, _c = _a.leftRightKeysNavigation, leftRightKeysNavigation = _c === void 0 ? true : _c, _d = _a.virtual, virtual = _d === void 0 ? { skip: 0, total: 0, pageSize: 0 } : _d, dataItemKey = _a.dataItemKey, _e = _a.groupField, groupField = _e === void 0 ? '' : _e, textField = _a.textField, _f = _a.skipDisabledItems, skipDisabledItems = _f === void 0 ? true : _f;\n var value = _this.value;\n var selectedIndex = data.findIndex(function (i) { return areSame(i, value, dataItemKey); });\n var opened = _this.props.opened !== undefined ? _this.props.opened : _this.state.opened;\n var keyCode = event.keyCode;\n var homeOrEndKeys = keyCode === Keys.home || keyCode === Keys.end;\n var upOrDownKeys = keyCode === Keys.up || keyCode === Keys.down;\n var shouldOpen = !opened && ((event.altKey && keyCode === Keys.down) || keyCode === Keys.enter || keyCode === Keys.space);\n var shouldClose = opened && ((event.altKey && keyCode === Keys.up) || keyCode === Keys.esc);\n var leftOrRightKeys = leftRightKeysNavigation && (keyCode === Keys.left || keyCode === Keys.right);\n var shouldNavigate = upOrDownKeys || (leftOrRightKeys && !filterable) || homeOrEndKeys;\n var state = _this.base.initState();\n state.syntheticEvent = event;\n if (disabled) {\n return;\n }\n else if (homeOrEndKeys && _this.base.vs.enabled) {\n if (keyCode === Keys.home) {\n if (virtual.skip !== 0) {\n _this.base.triggerOnPageChange(state, 0, virtual.pageSize);\n _this._navigated = true;\n }\n else {\n _this.triggerOnChange(data[0], state);\n }\n }\n else {\n if (virtual.skip < virtual.total - virtual.pageSize) {\n _this.base.triggerOnPageChange(state, virtual.total - virtual.pageSize, virtual.pageSize);\n _this._navigated = true;\n }\n else {\n _this.triggerOnChange(data[data.length - 1], state);\n }\n }\n }\n else if (opened && keyCode === Keys.pageUp) {\n _this.base.scrollPopupByPageSize(-1);\n }\n else if (opened && keyCode === Keys.pageDown) {\n _this.base.scrollPopupByPageSize(1);\n }\n else if (opened && keyCode === Keys.enter) {\n var focusedIndex = _this.getFocusedIndex();\n if (_this.haveFocusedItemAndDataNotEmpty(data, focusedIndex)) {\n _this.triggerOnChange(null, state);\n _this.applyState(state);\n }\n else {\n _this.handleItemSelect(focusedIndex, state);\n }\n _this.base.togglePopup(state);\n event.preventDefault();\n }\n else if (shouldOpen || shouldClose) {\n if (shouldClose) {\n _this.resetValueIfDisabledItem();\n }\n _this.base.togglePopup(state);\n event.preventDefault();\n }\n else if (shouldNavigate) {\n _this._lastKeypressIsFilter = false;\n if (groupField !== '' && textField) {\n if (!skipDisabledItems && opened) {\n _this.onNavigate(state, keyCode);\n }\n else {\n var newIndex = undefined;\n if (keyCode === Keys.down || keyCode === Keys.right) {\n var tempnewIndex_1 = data.slice(selectedIndex + 1).find(function (i) { return !i.disabled && i[textField]; });\n newIndex = tempnewIndex_1 && data.findIndex(function (el) { return el[textField] === tempnewIndex_1[textField]; });\n }\n else if (keyCode === Keys.up || keyCode === Keys.left) {\n var dataToSearch = void 0;\n if (selectedIndex === 0 && defaultItem) {\n newIndex = -1;\n }\n else if (selectedIndex === -1) {\n dataToSearch = data;\n newIndex = data.findIndex(function (i) { return !i.disabled && i[textField]; });\n }\n else {\n dataToSearch = data.slice(0, selectedIndex);\n var tempnewIndex_2 = dataToSearch.pop();\n while (tempnewIndex_2 && tempnewIndex_2.disabled) {\n tempnewIndex_2 = dataToSearch.pop();\n }\n newIndex = tempnewIndex_2 && data.findIndex(function (el) { return el[textField] === tempnewIndex_2[textField]; });\n }\n }\n if (newIndex !== undefined) {\n var skipItems = newIndex - selectedIndex;\n _this.onNavigate(state, keyCode, skipItems);\n }\n else if (newIndex === undefined && data.findIndex(function (el) { return el[textField] === value[textField]; }) === data.length - 1) {\n _this.onNavigate(state, keyCode);\n }\n }\n }\n else if (!skipDisabledItems && opened || homeOrEndKeys) {\n _this.onNavigate(state, keyCode);\n }\n else if (textField) {\n var newIndex = undefined;\n if (keyCode === Keys.down || keyCode === Keys.right) {\n var tempnewIndex_3 = data.slice(selectedIndex + 1).find(function (i) { return !i.disabled && i[textField]; });\n newIndex = tempnewIndex_3 && data.findIndex(function (el) { return el[textField] === tempnewIndex_3[textField]; });\n }\n else if (keyCode === Keys.up || keyCode === Keys.left) {\n var dataTest = void 0;\n if (selectedIndex === 0 && defaultItem) {\n newIndex = -1;\n }\n else if (selectedIndex === -1) {\n dataTest = data;\n newIndex = data.find(function (i) { return !i.disabled && i[textField]; });\n }\n else {\n dataTest = data.slice(0, selectedIndex);\n var tempnewIndex_4 = dataTest.pop();\n while (tempnewIndex_4 && tempnewIndex_4.disabled) {\n tempnewIndex_4 = dataTest.pop();\n }\n newIndex = tempnewIndex_4 && data.findIndex(function (el) { return el[textField] === tempnewIndex_4[textField]; });\n }\n }\n if (newIndex !== undefined) {\n var skipItems = newIndex - selectedIndex;\n _this.onNavigate(state, keyCode, skipItems);\n }\n else if (newIndex === undefined && data.findIndex(function (el) { return el[textField] === value[textField]; }) === data.length - 1) {\n _this.onNavigate(state, keyCode);\n }\n }\n else {\n _this.onNavigate(state, keyCode);\n }\n event.preventDefault();\n }\n _this.applyState(state);\n };\n _this.handleItemClick = function (index, event) {\n _this.base.handleItemClick(index, event);\n _this._valueDuringOnChange = undefined;\n };\n _this.handleFocus = function (event) {\n if (_this._skipFocusEvent) {\n return;\n }\n _this.base.handleFocus(event);\n };\n _this.handleBlur = function (event) {\n if (_this._skipFocusEvent || !_this.state.focused) {\n return;\n }\n var opened = _this.props.opened !== undefined ? _this.props.opened : _this.state.opened;\n var adaptive = _this.props.adaptive;\n var _a = _this.state.windowWidth, windowWidth = _a === void 0 ? 0 : _a;\n var renderAdaptive = windowWidth <= MOBILE_MEDIUM_DEVISE && adaptive;\n var state = _this.base.initState();\n state.syntheticEvent = event;\n state.data.focused = false;\n state.events.push({ type: 'onBlur' });\n if (opened) {\n _this.resetValueIfDisabledItem();\n }\n if (opened && !renderAdaptive) {\n _this.base.togglePopup(state);\n }\n _this.applyState(state);\n };\n _this.handleDefaultItemClick = function (event) {\n var state = _this.base.initState();\n state.syntheticEvent = event;\n _this.base.togglePopup(state);\n _this.triggerOnChange(_this.props.defaultItem, state);\n _this.applyState(state);\n };\n _this.handleWrapperClick = function (event) {\n if (event.isPropagationStopped()) {\n return;\n }\n var state = _this.base.initState();\n state.syntheticEvent = event;\n if (!_this.state.focused) {\n state.data.focused = true;\n }\n _this.resetValueIfDisabledItem();\n _this.base.togglePopup(state);\n _this.applyState(state);\n };\n _this.handleKeyPress = function (event) {\n if (_this.props.filterable || event.which === 0 || event.keyCode === Keys.enter) {\n return;\n }\n var character = String.fromCharCode(event.charCode || event.keyCode);\n if (_this.props.ignoreCase) {\n character = character.toLowerCase();\n }\n if (character === ' ') {\n event.preventDefault();\n }\n _this.searchState = {\n word: _this.searchState.word + character,\n last: _this.searchState.last + character\n };\n _this.search(event);\n };\n _this.handleListFilterChange = function (event) {\n var state = _this.base.initState();\n state.syntheticEvent = event.syntheticEvent;\n if (_this.props.filter === undefined) {\n state.data.text = event.target.value;\n }\n _this.base.filterChanged(event.target.value, state);\n _this._lastKeypressIsFilter = true;\n _this.applyState(state);\n _this.setState({ group: undefined });\n };\n _this.onPopupOpened = function () {\n if (_this._filterInput) {\n _this.focusElement(_this._filterInput);\n }\n if (_this.props.adaptive) {\n setTimeout(function () {\n if (_this._filterInput) {\n _this.focusElement(_this._filterInput);\n }\n }, 300);\n }\n };\n _this.onPopupClosed = function () {\n if (_this.state.focused) {\n window.setTimeout(function () {\n if (_this.state.focused && _this.base.wrapper) {\n _this.focusElement(_this.base.wrapper);\n }\n });\n }\n };\n _this.setValidity = function () {\n if (_this._select && _this._select.setCustomValidity) {\n _this._select.setCustomValidity(_this.validity.valid\n ? ''\n : _this.props.validationMessage || VALIDATION_MESSAGE);\n }\n };\n validatePackage(packageMetadata);\n return _this;\n }\n Object.defineProperty(DropDownListWithoutContext.prototype, \"document\", {\n get: function () {\n if (!canUseDOM) {\n return;\n }\n // useful only for user actions\n return (this.element && this.element.ownerDocument) || document;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DropDownListWithoutContext.prototype, \"element\", {\n /**\n * @hidden\n */\n get: function () {\n return this._element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DropDownListWithoutContext.prototype, \"value\", {\n /**\n * The value of the DropDownList.\n */\n get: function () {\n var value;\n if (this._valueDuringOnChange !== undefined) {\n value = this._valueDuringOnChange;\n }\n else if (this.props.value !== undefined) {\n value = this.props.value;\n }\n else if (this.state.value !== undefined) {\n value = this.state.value;\n }\n else if (this.props.defaultValue !== undefined) {\n value = this.props.defaultValue;\n }\n if (!isPresent(value) && this.props.defaultItem !== undefined) {\n value = this.props.defaultItem;\n }\n return value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DropDownListWithoutContext.prototype, \"index\", {\n /**\n * The index of the selected item.\n */\n get: function () {\n var _a = this.props, _b = _a.data, data = _b === void 0 ? [] : _b, dataItemKey = _a.dataItemKey;\n var value = this.value;\n // TO DO: deprecate it!\n return data.findIndex(function (i) { return areSame(i, value, dataItemKey); });\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DropDownListWithoutContext.prototype, \"name\", {\n /**\n * Gets the `name` property of the DropDownList.\n */\n get: function () {\n return this.props.name;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DropDownListWithoutContext.prototype, \"validity\", {\n /**\n * Represents the validity state into which the DropDownList is set.\n */\n get: function () {\n var customError = this.props.validationMessage !== undefined;\n var isValid = (!this.required\n || (this.value !== null && this.value !== '' && this.value !== undefined));\n var valid = this.props.valid !== undefined ? this.props.valid : isValid;\n return {\n customError: customError,\n valid: valid,\n valueMissing: this.value === null\n };\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DropDownListWithoutContext.prototype, \"validityStyles\", {\n get: function () {\n return this.props.validityStyles !== undefined\n ? this.props.validityStyles\n : DropDownListWithoutContext.defaultProps.validityStyles;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DropDownListWithoutContext.prototype, \"required\", {\n /**\n * @hidden\n */\n get: function () {\n return this.props.required !== undefined\n ? this.props.required\n : DropDownListWithoutContext.defaultProps.required;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * @hidden\n */\n DropDownListWithoutContext.prototype.componentDidUpdate = function (prevProps, prevState) {\n var _a;\n var _b = this.props, dataItemKey = _b.dataItemKey, virtual = _b.virtual, _c = _b.groupField, groupField = _c === void 0 ? '' : _c, textField = _b.textField;\n var _d = this.props.data, data = _d === void 0 ? [] : _d;\n var prevTotal = prevProps.virtual ? prevProps.virtual.total : 0;\n var opened = this.props.opened !== undefined ? this.props.opened : this.state.opened;\n var prevOpened = prevProps.opened !== undefined ? prevProps.opened : prevState.opened;\n var opening = !prevOpened && opened;\n var closing = prevOpened && !opened;\n if (!this.base.getPopupSettings().animate) {\n if (opening) {\n this.onPopupOpened();\n }\n else if (closing) {\n // this.onPopupClosed();\n }\n }\n if (virtual && virtual.total !== prevTotal) {\n this.base.vs.calcScrollElementHeight();\n this.base.vs.reset();\n }\n else {\n var selectedItem_1 = this.value;\n var prevSelectedItem = prevProps.value !== undefined ? prevProps.value : prevState.value;\n var selectedItemIndex = data.findIndex(function (i) { return areSame(i, selectedItem_1, dataItemKey); });\n if (groupField !== '' && selectedItem_1 && textField) {\n selectedItemIndex = (_a = this.base.getGroupedDataModernMode(data, groupField)) === null || _a === void 0 ? void 0 : _a.map(function (el) { return el[textField]; }).indexOf(selectedItem_1[textField]);\n }\n var selectedItemChanged = !areSame(prevSelectedItem, selectedItem_1, dataItemKey);\n if (opening && virtual) {\n this.base.scrollToVirtualItem(virtual, selectedItemIndex);\n }\n else if (opening && !virtual) {\n this.onPopupOpened();\n // Resets the sticky header group value for scenarios with open/close of component's popup\n if (data && data.length !== 0) {\n this.base.resetGroupStickyHeader(data[0][groupField], this);\n }\n this.base.scrollToItem(selectedItemIndex);\n }\n else if (opened && prevOpened && selectedItem_1 && selectedItemChanged && !this._navigated) {\n this.base.scrollToItem(selectedItemIndex);\n }\n else if (opened && prevOpened && this._navigated) {\n if (this._navigated && virtual && virtual.skip === 0) {\n this.base.vs.reset();\n }\n else if (this._navigated && virtual && virtual.skip === virtual.total - virtual.pageSize) {\n this.base.vs.scrollToEnd();\n }\n }\n }\n this._navigated = false;\n this.setValidity();\n };\n /**\n * @hidden\n */\n DropDownListWithoutContext.prototype.componentDidMount = function () {\n var _a;\n this.observerResize = canUseDOM && window.ResizeObserver && new window.ResizeObserver(this.calculateMedia.bind(this));\n this.base.didMount();\n this.setValidity();\n if (((_a = this.document) === null || _a === void 0 ? void 0 : _a.body) && this.observerResize) {\n this.observerResize.observe(this.document.body);\n }\n };\n /** @hidden */\n DropDownListWithoutContext.prototype.componentWillUnmount = function () {\n var _a;\n if (((_a = this.document) === null || _a === void 0 ? void 0 : _a.body) && this.observerResize) {\n this.observerResize.disconnect();\n }\n };\n /**\n * @hidden\n */\n DropDownListWithoutContext.prototype.render = function () {\n var _a;\n var _this = this;\n var btnAriaLabel = provideLocalizationService(this).toLanguageString(dropDownListArrowBtnAriaLabel, messages[dropDownListArrowBtnAriaLabel]);\n var _b = this.props, style = _b.style, className = _b.className, label = _b.label, dir = _b.dir, virtual = _b.virtual, size = _b.size, rounded = _b.rounded, fillMode = _b.fillMode, adaptive = _b.adaptive;\n var _c = this.state.windowWidth, windowWidth = _c === void 0 ? 0 : _c;\n var opened = this.props.opened !== undefined ? this.props.opened : this.state.opened;\n var value = this.value;\n var text = getItemValue(value, this.props.textField);\n var isValid = !this.validityStyles || this.validity.valid;\n var base = this.base;\n var vs = base.vs;\n var renderAdaptive = windowWidth <= MOBILE_MEDIUM_DEVISE && adaptive;\n vs.enabled = virtual !== undefined;\n if (virtual !== undefined) {\n base.vs.skip = virtual.skip;\n base.vs.total = virtual.total;\n base.vs.pageSize = virtual.pageSize;\n }\n var _d = this.props, dataItemKey = _d.dataItemKey, _e = _d.data, data = _e === void 0 ? [] : _e, disabled = _d.disabled, tabIndex = _d.tabIndex, loading = _d.loading, iconClassName = _d.iconClassName, valueRender = _d.valueRender;\n var focused = this.state.focused;\n var selectedIndex = data.findIndex(function (i) { return areSame(i, value, dataItemKey); });\n var valueDefaultRendering = (React.createElement(\"span\", { id: this._inputId, className: \"k-input-inner\" },\n React.createElement(\"span\", { className: \"k-input-value-text\" }, text)));\n var valueElement = valueRender !== undefined ?\n valueRender.call(undefined, valueDefaultRendering, value) : valueDefaultRendering;\n var dropdownlist = (React.createElement(React.Fragment, null,\n React.createElement(\"span\", { ref: this.componentRef, className: classNames('k-dropdownlist k-picker', className, (_a = {},\n _a[\"k-picker-\".concat(sizeMap[size] || size)] = size,\n _a[\"k-rounded-\".concat(roundedMap[rounded] || rounded)] = rounded,\n _a[\"k-picker-\".concat(fillMode)] = fillMode,\n _a['k-focus'] = focused,\n _a['k-disabled'] = disabled,\n _a['k-invalid'] = !isValid,\n _a['k-loading'] = loading,\n _a['k-required'] = this.required,\n _a)), style: !label\n ? style\n : __assign(__assign({}, style), { width: undefined }), dir: dir, onMouseDown: opened ? function (event) {\n if (event.target.nodeName !== 'INPUT') {\n _this.focusElement(_this.base.wrapper);\n event.preventDefault();\n }\n } : undefined, onFocus: this.handleFocus, onBlur: this.handleBlur, tabIndex: getTabIndex(tabIndex, disabled), accessKey: this.props.accessKey, onKeyDown: this.handleKeyDown, onKeyPress: this.handleKeyPress, onClick: disabled ? undefined : this.handleWrapperClick, role: 'combobox', \"aria-required\": this.required, \"aria-disabled\": disabled || undefined, \"aria-haspopup\": 'listbox', \"aria-expanded\": opened || false, \"aria-owns\": this.base.listBoxId, \"aria-activedescendant\": opened ? ('option-' + this.base.guid + '-' + (selectedIndex + (virtual ? virtual.skip : 0))) : undefined, \"aria-label\": this.props.ariaLabel || this.props.label, \"aria-labelledby\": this.props.ariaLabelledBy, \"aria-describedby\": this.props.ariaDescribedBy || this._inputId, id: this.props.id, title: this.props.title },\n valueElement,\n loading && React.createElement(IconWrap, { className: \"k-input-loading-icon\", name: 'loading' }),\n React.createElement(Button, { tabIndex: -1, type: \"button\", \"aria-label\": btnAriaLabel, \"aria-hidden\": true, size: size, fillMode: fillMode, iconClass: iconClassName, className: \"k-input-button\", rounded: null, themeColor: 'base', icon: !iconClassName ? 'caret-alt-down' : undefined, svgIcon: !iconClassName ? caretAltDownIcon : this.props.svgIcon, onMouseDown: function (e) { return _this.state.focused && e.preventDefault(); } }),\n this.dummySelect(value),\n !renderAdaptive && this.renderListContainer()),\n renderAdaptive && this.renderAdaptiveListContainer()));\n return label ? (React.createElement(FloatingLabel, { label: label, editorValue: text, editorValid: isValid, editorDisabled: this.props.disabled, style: { width: style ? style.width : undefined }, children: dropdownlist })) : dropdownlist;\n };\n /**\n * @hidden\n */\n DropDownListWithoutContext.prototype.onNavigate = function (state, keyCode, skipItems) {\n var _a = this.props, _b = _a.data, data = _b === void 0 ? [] : _b, defaultItem = _a.defaultItem, dataItemKey = _a.dataItemKey, _c = _a.virtual, virtual = _c === void 0 ? { skip: 0, total: 0, pageSize: 0 } : _c;\n var vs = this.base.vs;\n var value = this.value;\n var index = data.findIndex(function (i) { return areSame(i, value, dataItemKey); });\n var newIndex = this.base.navigation.navigate({\n current: virtual.skip + index,\n max: (vs.enabled ? virtual.total : data.length) - 1,\n min: defaultItem !== undefined ? -1 : 0,\n keyCode: keyCode,\n skipItems: skipItems ? skipItems : undefined\n });\n if (newIndex !== undefined) {\n this.handleItemSelect(newIndex, state);\n }\n this.applyState(state);\n };\n DropDownListWithoutContext.prototype.renderAdaptiveListContainer = function () {\n var _a;\n var _this = this;\n var _b = this.state.windowWidth, windowWidth = _b === void 0 ? 0 : _b;\n var _c = this.props, header = _c.header, footer = _c.footer, size = _c.size, adaptiveTitle = _c.adaptiveTitle, groupField = _c.groupField, groupStickyHeaderItemRender = _c.groupStickyHeaderItemRender, list = _c.list, _d = _c.data, data = _d === void 0 ? [] : _d;\n var opened = this.props.opened !== undefined ? this.props.opened : this.state.opened;\n var actionSheetProps = {\n navigatable: false,\n navigatableElements: [],\n expand: opened,\n animation: true,\n onClose: function (event) { return _this.handleWrapperClick(event); },\n animationStyles: windowWidth <= MOBILE_SMALL_DEVISE ? { top: 0, width: '100%', height: '100%' } : undefined,\n className: windowWidth <= MOBILE_SMALL_DEVISE\n ? 'k-adaptive-actionsheet k-actionsheet-fullscreen'\n : 'k-adaptive-actionsheet k-actionsheet-bottom'\n };\n var group = this.state.group;\n if (group === undefined && groupField !== undefined) {\n group = getItemValue(data[0], groupField);\n }\n return (React.createElement(React.Fragment, null,\n React.createElement(ActionSheet, __assign({}, actionSheetProps),\n React.createElement(ActionSheetHeader, { className: 'k-text-center' },\n React.createElement(\"div\", { className: \"k-actionsheet-titlebar-group k-hbox\" },\n React.createElement(\"div\", { className: \"k-actionsheet-title\" },\n React.createElement(\"div\", null, adaptiveTitle)),\n React.createElement(\"div\", { className: \"k-actionsheet-actions\" },\n React.createElement(Button, { tabIndex: 0, \"aria-label\": \"Cancel\", \"aria-disabled\": \"false\", type: \"button\", fillMode: \"flat\", onClick: this.handleWrapperClick, icon: 'x', svgIcon: xIcon }))),\n React.createElement(\"div\", { className: \"k-actionsheet-titlebar-group k-actionsheet-filter\" }, this.renderListFilter())),\n React.createElement(ActionSheetContent, { className: '!k-overflow-hidden' },\n header && React.createElement(\"div\", { className: \"k-list-header\" }, header),\n React.createElement(\"div\", { className: classNames('k-list', (_a = {}, _a[\"k-list-\".concat(sizeMap[size] || size)] = size, _a['k-virtual-list'] = this.base.vs.enabled, _a)) },\n this.renderDefaultItem(),\n !list && group && data.length !== 0 && React.createElement(GroupStickyHeader, { group: group, groupMode: 'modern', render: groupStickyHeaderItemRender }),\n this.renderList()),\n footer && React.createElement(\"div\", { className: \"k-list-footer\" }, footer)))));\n };\n DropDownListWithoutContext.prototype.getFocusedIndex = function () {\n var value = this.value;\n var _a = this.props, _b = _a.data, data = _b === void 0 ? [] : _b, textField = _a.textField, dataItemKey = _a.dataItemKey, _c = _a.virtual, virtual = _c === void 0 ? { skip: 0 } : _c, _d = _a.focusedItemIndex, focusedItemIndex = _d === void 0 ? itemIndexStartsWith : _d, filterable = _a.filterable, _e = _a.skipDisabledItems, skipDisabledItems = _e === void 0 ? true : _e;\n var text = this.props.filter ? this.props.filter : this.state.text;\n if (skipDisabledItems && textField && !text && !value) {\n return data.findIndex(function (i) { return !i.disabled && i[textField]; });\n }\n else if (isPresent(value) && text === undefined || filterable && text === '') {\n return data.findIndex(function (i) { return areSame(i, value, dataItemKey); });\n }\n else if (text) {\n if (this._lastKeypressIsFilter) {\n return focusedItemIndex(data, text, textField);\n }\n return data.findIndex(function (i) { return areSame(i, value, dataItemKey); });\n }\n else {\n return virtual.skip === 0 ? 0 : -1;\n }\n };\n DropDownListWithoutContext.prototype.focusElement = function (element) {\n var _this = this;\n this._skipFocusEvent = true;\n element.focus();\n window.setTimeout(function () { return _this._skipFocusEvent = false; }, 30);\n };\n DropDownListWithoutContext.prototype.triggerOnChange = function (item, state) {\n if (areSame(this.value, item, this.props.dataItemKey)) {\n return;\n }\n if (this.props.value === undefined) {\n state.data.value = item;\n }\n this._valueDuringOnChange = item;\n state.events.push({ type: 'onChange' });\n };\n DropDownListWithoutContext.prototype.applyState = function (state) {\n this.base.applyState(state);\n this._valueDuringOnChange = undefined;\n };\n DropDownListWithoutContext.prototype.calculateMedia = function (entries) {\n for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {\n var entry = entries_1[_i];\n this.setState({ windowWidth: entry.target.clientWidth });\n }\n ;\n };\n ;\n DropDownListWithoutContext.prototype.resetValueIfDisabledItem = function () {\n var _a = this.props.data, data = _a === void 0 ? [] : _a;\n var state = this.base.initState();\n var focusedIndex = this.getFocusedIndex();\n if (this.haveFocusedItemAndDataNotEmpty(data, focusedIndex)) {\n this.triggerOnChange(null, state);\n this.applyState(state);\n }\n };\n DropDownListWithoutContext.prototype.haveFocusedItemAndDataNotEmpty = function (data, focusedIndex) {\n return focusedIndex !== undefined && focusedIndex !== -1 && data && data.length > 0 && data[focusedIndex].disabled;\n };\n DropDownListWithoutContext.displayName = 'DropDownList';\n /**\n * @hidden\n */\n DropDownListWithoutContext.propTypes = __assign({ delay: PropTypes.number, ignoreCase: PropTypes.bool, iconClassName: PropTypes.string, svgIcon: svgIconPropType, defaultItem: PropTypes.any, valueRender: PropTypes.func, valueMap: PropTypes.func, validationMessage: PropTypes.string, required: PropTypes.bool, id: PropTypes.string, ariaLabelledBy: PropTypes.string, ariaDescribedBy: PropTypes.string, ariaLabel: PropTypes.string, leftRightKeysNavigation: PropTypes.bool, title: PropTypes.string, groupField: PropTypes.string, list: PropTypes.any, skipDisabledItems: PropTypes.bool }, DropDownBase.propTypes);\n /**\n * @hidden\n */\n DropDownListWithoutContext.defaultProps = __assign(__assign({ delay: 500, tabIndex: 0, ignoreCase: true }, DropDownBase.defaultProps), { required: false, size: 'medium', rounded: 'medium', fillMode: 'solid', groupMode: 'modern' });\n return DropDownListWithoutContext;\n}(React.Component));\nexport { DropDownListWithoutContext };\n/**\n * Represents the PropsContext of the `DropDownList` component.\n * Used for global configuration of all `DropDownList` instances.\n *\n * For more information, refer to the [Dropdowns Props Context]({% slug props-context_dropdowns %}) article.\n */\nexport var DropDownListPropsContext = createPropsContext();\n/* eslint-disable @typescript-eslint/no-redeclare -- intentionally naming the component the same as the type */\n/**\n * Represents the [KendoReact DropDownList component]({% slug overview_dropdownlist %}).\n *\n * Accepts properties of type [DropDownListProps]({% slug api_dropdowns_dropdownlistprops %}).\n * Obtaining the `ref` returns an object of type [DropDownListHandle]({% slug api_dropdowns_dropdownlisthandle %}).\n *\n * @example\n * ```jsx\n * class App extends React.Component {\n * dropdownlist = null;\n * render() {\n * return (\n * <div>\n * <DropDownList\n * data={[ \"Albania\", \"Andorra\", \"Austria\", \"Belarus\" ]}\n * ref={component => this.dropdownlist = component}\n * />\n * <button onClick={() => alert(this.dropdownlist.value)}>alert value</button>\n * </div>\n * );\n * }\n * }\n * ReactDOM.render(<App />, document.querySelector('my-app'));\n * ```\n */\nexport var DropDownList = withPropsContext(DropDownListPropsContext, DropDownListWithoutContext);\nDropDownList.displayName = 'KendoReactDropDownList';\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { getActiveElement } from '@progress/kendo-react-common';\nimport * as React from 'react';\n/**\n * @hidden\n */\nvar SearchBar = /** @class */ (function (_super) {\n __extends(SearchBar, _super);\n function SearchBar() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this._input = null;\n return _this;\n }\n Object.defineProperty(SearchBar.prototype, \"input\", {\n /**\n * @hidden\n */\n get: function () {\n return this._input;\n },\n enumerable: false,\n configurable: true\n });\n SearchBar.prototype.componentDidUpdate = function (prevProps) {\n var prevValue = prevProps.value;\n var prevSuggestedText = prevProps.suggestedText;\n var _a = this.props, value = _a.value, suggestedText = _a.suggestedText, focused = _a.focused;\n var input = this.input;\n var valueChanged = prevValue !== value || suggestedText !== prevSuggestedText;\n var deleting = valueChanged && prevValue.startsWith(value) &&\n !(prevSuggestedText && suggestedText && prevSuggestedText.endsWith(suggestedText));\n var activeElement = getActiveElement(document);\n if (focused && input && activeElement !== input) {\n input.focus();\n }\n if (suggestedText && valueChanged && !deleting && input) {\n input.setSelectionRange(value.length - suggestedText.length, value.length);\n }\n };\n SearchBar.prototype.render = function () {\n var _this = this;\n var _a = this.props, _b = _a.expanded, expanded = _b === void 0 ? false : _b, disabled = _a.disabled, _c = _a.role, role = _c === void 0 ? 'listbox' : _c, render = _a.render;\n var searchbar = (React.createElement(\"input\", { autoComplete: \"off\", id: this.props.id, type: \"text\", key: \"searchbar\", size: this.props.size, placeholder: this.props.placeholder, className: \"k-input-inner\", tabIndex: this.props.tabIndex, accessKey: this.props.accessKey, role: role, name: this.props.name, value: this.props.value, onChange: this.props.onChange, ref: function (input) { return _this._input = input; }, onKeyDown: this.props.onKeyDown, onFocus: this.props.onFocus, onBlur: this.props.onBlur, onClick: this.props.onClick, \"aria-disabled\": disabled || undefined, disabled: disabled || undefined, readOnly: this.props.readOnly || undefined, title: this.props.title, \"aria-haspopup\": \"listbox\", \"aria-expanded\": expanded, \"aria-owns\": this.props.owns, \"aria-activedescendant\": expanded ? this.props.activedescendant : undefined, \"aria-describedby\": this.props.ariaDescribedBy, \"aria-labelledby\": this.props.ariaLabelledBy, \"aria-required\": this.props.ariaRequired }));\n return render ? render.call(undefined, searchbar) : searchbar;\n };\n return SearchBar;\n}(React.Component));\nexport default SearchBar;\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport { registerForLocalization, provideLocalizationService } from '@progress/kendo-react-intl';\nimport { messages, clear } from '../messages';\nimport { IconWrap } from '@progress/kendo-react-common';\nimport { xIcon } from '@progress/kendo-svg-icons';\n/**\n * @hidden\n */\nvar ClearButton = /** @class */ (function (_super) {\n __extends(ClearButton, _super);\n function ClearButton() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.onMouseDown = function (e) { return e.preventDefault(); };\n return _this;\n }\n ClearButton.prototype.render = function () {\n var title = provideLocalizationService(this).toLanguageString(clear, messages[clear]);\n return (React.createElement(\"span\", { className: \"k-clear-value\", role: \"button\", onClick: this.props.onClick, onMouseDown: this.onMouseDown, tabIndex: -1, title: title, key: \"clearbutton\" },\n React.createElement(IconWrap, { name: 'x', icon: xIcon })));\n };\n return ClearButton;\n}(React.Component));\nexport default ClearButton;\nregisterForLocalization(ClearButton);\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport DropDownBase from '../common/DropDownBase';\nimport { guid, classNames, Keys, createPropsContext, withPropsContext, kendoThemeMaps, svgIconPropType } from '@progress/kendo-react-common';\nimport { FloatingLabel } from '@progress/kendo-react-labels';\nimport { areSame, itemIndexStartsWith, getItemIndexByText, getItemValue, isPresent, suggestValue } from '../common/utils';\nimport SearchBar from '../common/SearchBar';\nimport ListContainer from '../common/ListContainer';\nimport List from '../common/List';\nimport ListFilter from '../common/ListFilter';\nimport GroupStickyHeader from '../common/GroupStickyHeader';\nimport { validatePackage, canUseDOM, IconWrap } from '@progress/kendo-react-common';\nimport { packageMetadata } from '../package-metadata';\nimport ClearButton from '../common/ClearButton';\nimport { Button } from '@progress/kendo-react-buttons';\nimport { caretAltDownIcon, xIcon } from '@progress/kendo-svg-icons';\nimport { messages, comboArrowBtnAriaLabelExpand, comboArrowBtnAriaLabelCollapse } from './../messages';\nimport { provideLocalizationService } from '@progress/kendo-react-intl';\nimport { ActionSheet, ActionSheetContent, ActionSheetHeader } from '@progress/kendo-react-layout';\nimport { MOBILE_SMALL_DEVISE, MOBILE_MEDIUM_DEVISE } from '../common/constants';\nvar VALIDATION_MESSAGE = 'Please enter a valid value!';\nvar sizeMap = kendoThemeMaps.sizeMap, roundedMap = kendoThemeMaps.roundedMap;\n/** @hidden */\nvar ComboBoxWithoutContext = /** @class */ (function (_super) {\n __extends(ComboBoxWithoutContext, _super);\n function ComboBoxWithoutContext(props) {\n var _this = _super.call(this, props) || this;\n /** @hidden */\n _this.state = {};\n _this.base = new DropDownBase(_this);\n _this._element = null;\n _this._inputId = guid();\n _this._suggested = '';\n _this._skipBlur = false;\n _this._input = null;\n _this._adaptiveFilterInput = null;\n _this.itemHeight = 0;\n /** @hidden */\n _this.focus = function () {\n if (_this._input) {\n _this._input.focus();\n }\n };\n /** @hidden */\n _this.handleItemSelect = function (index, state) {\n var _a = _this.props, _b = _a.data, data = _b === void 0 ? [] : _b, virtual = _a.virtual, dataItemKey = _a.dataItemKey;\n var skip = virtual ? virtual.skip : 0;\n var item = data[index - skip];\n var newSelected = !areSame(item, _this.value, dataItemKey);\n _this.triggerOnChange(item, state);\n if (_this.state.text !== undefined) {\n state.data.text = undefined;\n }\n if (newSelected) {\n _this.base.triggerPageChangeCornerItems(item, state);\n }\n };\n _this.onPopupOpened = function () {\n setTimeout(function () {\n if (_this.mobileMode && _this._adaptiveFilterInput) {\n _this._skipBlur = true;\n _this._adaptiveFilterInput.focus();\n _this._skipBlur = false;\n }\n }, 300);\n };\n _this.componentRef = function (element) {\n _this._element = element;\n _this.base.wrapper = element;\n };\n _this.toggleBtnClick = function (event) {\n var _a = _this.props, _b = _a.data, data = _b === void 0 ? [] : _b, skipDisabledItems = _a.skipDisabledItems, textField = _a.textField;\n var focusedIndex = _this.getFocusedIndex();\n var isCurrentValueDisabled = _this.getCurrentValueDisabledStatus(textField, data, focusedIndex);\n var opened = _this.props.opened !== undefined ? _this.props.opened : _this.state.opened;\n var state = _this.base.initState();\n state.syntheticEvent = event;\n if (!skipDisabledItems && textField && isCurrentValueDisabled) {\n _this.clearValueOnToggleBtnClick(event);\n }\n _this.base.togglePopup(state);\n if (!opened && _this.mobileMode) {\n var mobileText = _this.props.adaptiveFilter !== undefined ? _this.props.adaptiveFilter : _this.state.text || null;\n _this.base.filterChanged(mobileText, state);\n }\n _this.applyState(state);\n };\n _this.renderMobileListFilter = function () {\n var mobileText = _this.props.adaptiveFilter !== undefined ? _this.props.adaptiveFilter : _this.state.text;\n var selectedItemText = getItemValue(_this.value, _this.props.textField);\n var mobileInputText = isPresent(mobileText) ? mobileText : selectedItemText;\n return (React.createElement(ListFilter, { value: mobileInputText, ref: function (filter) { return _this._adaptiveFilterInput = filter && filter.element; }, onChange: _this.handleMobileFilterChange, onKeyDown: _this.onInputKeyDown, size: _this.props.size, rounded: _this.props.rounded, fillMode: _this.props.fillMode }));\n };\n _this.handleMobileFilterChange = function (event) {\n var state = _this.base.initState();\n state.syntheticEvent = event.syntheticEvent;\n state.data.text = event.target.value;\n _this.base.filterChanged(event.target.value, state);\n _this.applyState(state);\n };\n _this.onScroll = function (event) {\n var _a = _this.base, vs = _a.vs, list = _a.list;\n vs.scrollHandler(event);\n var groupField = _this.props.groupField;\n var _b = _this.props.data, data = _b === void 0 ? [] : _b;\n if (!groupField || !data.length) {\n return;\n }\n var itemHeight = _this.itemHeight =\n _this.itemHeight || (vs.enabled ? vs.itemHeight : (list ? list.children[0].offsetHeight : 0));\n var target = event.target;\n var scrollTop = target.scrollTop - (vs.skip * itemHeight);\n if (_this.props.groupMode === 'modern') {\n data = _this.base.getGroupedDataModernMode(data, groupField);\n }\n var group = data[0][groupField];\n for (var i = 1; i < data.length; i++) {\n if (itemHeight * i > scrollTop) {\n break;\n }\n if (data[i] && data[i][groupField]) {\n group = data[i][groupField];\n }\n }\n if (group !== _this.state.group) {\n _this.setState({\n group: group\n });\n if (_this.props.onGroupScroll) {\n _this.props.onGroupScroll.call(undefined, { group: group });\n }\n }\n };\n _this.handleItemClick = function (index, event) {\n _this.base.handleItemClick(index, event);\n _this._valueDuringOnChange = undefined;\n };\n _this.handleBlur = function (event) {\n if (_this.state.focused && !_this._skipBlur) {\n var state = _this.base.initState();\n var _a = _this.props, textField = _a.textField, _b = _a.data, data = _b === void 0 ? [] : _b;\n var focusedIndex = _this.getFocusedIndex();\n var isCustomValue = focusedIndex === -1;\n var isCurrentValueDisabled = !isCustomValue && _this.getCurrentValueDisabledStatus(textField, data, focusedIndex);\n state.data.focused = false;\n state.events.push({ type: 'onBlur' });\n state.syntheticEvent = event;\n if (textField && isCurrentValueDisabled) {\n _this.clearValueOnBlur(event);\n }\n _this.applyValueOnRejectSuggestions(event.currentTarget.value, state);\n }\n };\n _this.onInputClick = function (event) {\n var opened = _this.props.opened !== undefined ? _this.props.opened : _this.state.opened;\n var mobileText = _this.props.adaptiveFilter !== undefined ? _this.props.adaptiveFilter : _this.state.text || null;\n if (!opened && _this.mobileMode) {\n var state = _this.base.initState();\n state.syntheticEvent = event;\n _this.base.togglePopup(state);\n _this.base.filterChanged(mobileText, state);\n _this.applyState(state);\n }\n };\n _this.onInputKeyDown = function (event) {\n var _a = _this.props, _b = _a.data, data = _b === void 0 ? [] : _b, skipDisabledItems = _a.skipDisabledItems, textField = _a.textField, dataItemKey = _a.dataItemKey, groupField = _a.groupField;\n var value = _this.value;\n var selectedIndex = Math.max(0, data.findIndex(function (i) { return areSame(i, value, dataItemKey); }));\n var keyCode = event.keyCode;\n var opened = _this.props.opened !== undefined ? _this.props.opened : _this.state.opened;\n var state = _this.base.initState();\n state.syntheticEvent = event;\n if (!event.altKey && (keyCode === Keys.up || keyCode === Keys.down)) {\n event.preventDefault();\n if (groupField !== '' && textField) {\n if (!_this.props.skipDisabledItems && opened) {\n _this.onNavigate(state, keyCode);\n }\n else {\n var newIndex = 0;\n if (keyCode === Keys.down || keyCode === Keys.right) {\n var tempnewIndex_1 = data.slice(selectedIndex + 1).find(function (i) { return !i.disabled && i[textField]; });\n newIndex = tempnewIndex_1 && data.findIndex(function (el) { return el[textField] === tempnewIndex_1[textField]; });\n }\n else if (keyCode === Keys.up || keyCode === Keys.left) {\n var dataToSearch = void 0;\n if (selectedIndex === 0) {\n dataToSearch = data;\n newIndex = data.findIndex(function (i) { return !i.disabled && i[textField]; });\n }\n else {\n dataToSearch = data.slice(0, selectedIndex);\n var tempnewIndex_2 = dataToSearch.pop();\n while (tempnewIndex_2 && tempnewIndex_2.disabled) {\n tempnewIndex_2 = dataToSearch.pop();\n }\n newIndex = tempnewIndex_2 && data.findIndex(function (el) { return el[textField] === tempnewIndex_2[textField]; });\n }\n }\n if (newIndex !== undefined) {\n var skipItems = newIndex - selectedIndex;\n _this.onNavigate(state, keyCode, skipItems);\n }\n else if (newIndex === undefined && data.findIndex(function (el) { return el[textField] === value[textField]; }) === data.length - 1) {\n _this.onNavigate(state, keyCode);\n }\n }\n }\n else if (!_this.props.skipDisabledItems && opened) {\n _this.onNavigate(state, keyCode);\n }\n else {\n var newIndex = null;\n if (keyCode === Keys.down || keyCode === Keys.right) {\n newIndex = data.slice(selectedIndex + 1).find(function (i) { return !i.disabled; });\n }\n else if (keyCode === Keys.up || keyCode === Keys.left) {\n var dataTest = data.slice(0, selectedIndex);\n newIndex = dataTest.pop();\n while (newIndex && newIndex.disabled) {\n newIndex = dataTest.pop();\n }\n }\n if (newIndex) {\n var skipItems = newIndex.id - selectedIndex - 1;\n _this.onNavigate(state, keyCode, skipItems);\n }\n else {\n _this.onNavigate(state, keyCode);\n }\n }\n _this.applyState(state);\n }\n var togglePopup = function () {\n event.preventDefault();\n _this.base.togglePopup(state);\n _this.applyState(state);\n };\n var focusedIndex = _this.getFocusedIndex();\n var isCustomValue = focusedIndex === -1;\n var isCurrentValueDisabled = !isCustomValue && _this.getCurrentValueDisabledStatus(textField, data, focusedIndex);\n if (opened) {\n if (keyCode === Keys.pageUp) {\n _this.base.scrollPopupByPageSize(-1);\n }\n else if (keyCode === Keys.pageDown) {\n _this.base.scrollPopupByPageSize(1);\n }\n else if (event.altKey && keyCode === Keys.up) {\n togglePopup();\n }\n else if (keyCode === Keys.enter) {\n event.preventDefault();\n var currentValueText = textField && !isCustomValue && event.currentTarget.value ? data[focusedIndex][textField] : undefined;\n if (currentValueText) {\n if (!skipDisabledItems && textField && isCurrentValueDisabled) {\n _this.clearValueOnEnterOrEsc(event);\n }\n else if (!isCurrentValueDisabled) {\n _this.applyValueOnEnter(event.currentTarget.value, state);\n }\n }\n else {\n _this.applyValueOnEnter(event.currentTarget.value, state);\n }\n }\n else if (keyCode === Keys.esc) {\n if (!skipDisabledItems && textField && isCurrentValueDisabled) {\n _this.clearValueOnEnterOrEsc(event);\n }\n _this.applyValueOnRejectSuggestions(event.currentTarget.value, state);\n }\n }\n else if (!opened && keyCode === Keys.esc) {\n _this.clearValueOnEnterOrEsc(event);\n }\n else if (event.altKey && keyCode === Keys.down) {\n togglePopup();\n }\n };\n _this.inputOnChange = function (event) {\n var state = _this.base.initState();\n state.syntheticEvent = event;\n var opened = _this.props.opened !== undefined ? _this.props.opened : _this.state.opened;\n var input = event.currentTarget;\n var value = input.value;\n if (_this.props.suggest) {\n var selectionAtEnd = input.selectionEnd === value.length;\n var prevText = _this.props.filter !== undefined ? _this.props.filter : _this.state.text;\n if (!isPresent(prevText)) {\n prevText = getItemValue(_this.value, _this.props.textField) || '';\n }\n var deletedSuggestion = prevText && prevText === value;\n var deleting = prevText && prevText.length > value.length;\n if (deletedSuggestion || deleting || !selectionAtEnd) {\n _this._suggested = '';\n }\n else {\n _this.suggestValue(value);\n }\n }\n if (_this.props.filter === undefined) {\n state.data.text = value;\n }\n if (_this.state.focusedItem !== undefined) {\n state.data.focusedItem = undefined;\n }\n if (!opened) {\n _this.base.togglePopup(state);\n }\n _this.base.filterChanged(value, state);\n _this.applyState(state);\n _this.setState({ group: undefined });\n };\n _this.clearButtonClick = function (event) {\n var state = _this.base.initState();\n state.syntheticEvent = event;\n event.stopPropagation();\n _this.clearValue();\n };\n _this.clearValueOnEnterOrEsc = function (event) {\n var state = _this.base.initState();\n state.syntheticEvent = event;\n event.stopPropagation();\n _this.clearValue();\n };\n _this.clearValueOnBlur = function (event) {\n var state = _this.base.initState();\n state.syntheticEvent = event;\n event.stopPropagation();\n _this.clearValue();\n };\n _this.clearValueOnToggleBtnClick = function (event) {\n var state = _this.base.initState();\n state.syntheticEvent = event;\n event.stopPropagation();\n _this.clearValue();\n };\n _this.setValidity = function () {\n if (_this._input && _this._input.setCustomValidity) {\n _this._input.setCustomValidity(_this.validity.valid\n ? ''\n : _this.props.validationMessage || VALIDATION_MESSAGE);\n }\n };\n validatePackage(packageMetadata);\n return _this;\n }\n Object.defineProperty(ComboBoxWithoutContext.prototype, \"document\", {\n get: function () {\n if (!canUseDOM) {\n return;\n }\n // useful only for user actions\n return (this.element && this.element.ownerDocument) || document;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ComboBoxWithoutContext.prototype, \"element\", {\n /** @hidden */\n get: function () {\n return this._element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ComboBoxWithoutContext.prototype, \"mobileMode\", {\n /**\n * The mobile mode of the ComboBox.\n */\n get: function () {\n var isAdaptive = this.state.windowWidth && this.state.windowWidth <= MOBILE_MEDIUM_DEVISE && this.props.adaptive;\n return !!isAdaptive;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ComboBoxWithoutContext.prototype, \"value\", {\n /**\n * The value of the ComboBox.\n */\n get: function () {\n if (this._valueDuringOnChange !== undefined) {\n return this._valueDuringOnChange;\n }\n else if (this.props.value !== undefined) {\n return this.props.value;\n }\n else if (this.state.value !== undefined) {\n return this.state.value;\n }\n else if (this.props.defaultValue !== undefined) {\n return this.props.defaultValue;\n }\n return undefined;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ComboBoxWithoutContext.prototype, \"index\", {\n /**\n * The index of the selected item.\n */\n get: function () {\n var _a = this.props, _b = _a.data, data = _b === void 0 ? [] : _b, dataItemKey = _a.dataItemKey;\n var value = this.value;\n // TO DO: deprecate it!\n return data.findIndex(function (i) { return areSame(i, value, dataItemKey); });\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ComboBoxWithoutContext.prototype, \"name\", {\n /**\n * Gets the `name` property of the ComboBox.\n */\n get: function () {\n return this.props.name;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ComboBoxWithoutContext.prototype, \"validity\", {\n /**\n * Represents the validity state into which the component is set.\n */\n get: function () {\n // remove the undefined check when this is fixed:\n // https://github.com/telerik/kendo-react-private/issues/252\n var customError = this.props.validationMessage !== undefined;\n var isValid = (!this.required\n || (this.value !== null && this.value !== '' && this.value !== undefined));\n var valid = this.props.valid !== undefined ? this.props.valid : isValid;\n return {\n customError: customError,\n valid: valid,\n valueMissing: this.value === null\n };\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ComboBoxWithoutContext.prototype, \"validityStyles\", {\n get: function () {\n return this.props.validityStyles !== undefined\n ? this.props.validityStyles\n : ComboBoxWithoutContext.defaultProps.validityStyles;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ComboBoxWithoutContext.prototype, \"required\", {\n /** @hidden */\n get: function () {\n return this.props.required !== undefined\n ? this.props.required\n : ComboBoxWithoutContext.defaultProps.required;\n },\n enumerable: false,\n configurable: true\n });\n /** @hidden */\n ComboBoxWithoutContext.prototype.componentDidUpdate = function (prevProps, prevState) {\n var _a;\n var _b = this.props, dataItemKey = _b.dataItemKey, virtual = _b.virtual, _c = _b.groupField, groupField = _c === void 0 ? '' : _c, _d = _b.data, data = _d === void 0 ? [] : _d, textField = _b.textField;\n var prevTotal = prevProps.virtual ? prevProps.virtual.total : 0;\n var opened = this.props.opened !== undefined ? this.props.opened : this.state.opened;\n var prevOpened = prevProps.opened !== undefined ? prevProps.opened : prevState.opened;\n var opening = !prevOpened && opened;\n var selectedItem = this.value;\n this._valueOnDidUpdate = selectedItem;\n if (virtual && virtual.total !== prevTotal) {\n this.base.vs.calcScrollElementHeight();\n this.base.vs.reset();\n }\n else {\n var prevSelectedItem = prevProps.value !== undefined ? prevProps.value : prevState.value;\n var selectedItemIndex = data.findIndex(function (i) { return areSame(i, selectedItem, dataItemKey); });\n // Needed to calculate the proper item index when in 'modern' grouping mode\n if (this.props.groupMode === 'modern' && textField && selectedItem) {\n selectedItemIndex = (_a = this.base.getGroupedDataModernMode(data, groupField)) === null || _a === void 0 ? void 0 : _a.map(function (el) { return el[textField]; }).indexOf(selectedItem[textField]);\n }\n var selectedItemChanged = !areSame(prevSelectedItem, selectedItem, dataItemKey);\n if (opening && virtual) {\n this.base.scrollToVirtualItem(virtual, selectedItemIndex);\n }\n else if (opening && !virtual) {\n this.onPopupOpened();\n // Resets the sticky header group value for scenarios with open/close of component's popup\n if (data && data.length !== 0) {\n this.base.resetGroupStickyHeader(data[0][groupField], this);\n }\n this.base.scrollToItem(selectedItemIndex);\n }\n else if (opened && prevOpened && selectedItem && selectedItemChanged) {\n this.base.scrollToItem(selectedItemIndex);\n }\n }\n if (opening && this._input) {\n this._input.focus();\n }\n this.setValidity();\n };\n /** @hidden */\n ComboBoxWithoutContext.prototype.componentDidMount = function () {\n var _a;\n this.observerResize = canUseDOM && window.ResizeObserver && new window.ResizeObserver(this.calculateMedia.bind(this));\n this.base.didMount();\n this.setValidity();\n if (((_a = this.document) === null || _a === void 0 ? void 0 : _a.body) && this.observerResize) {\n this.observerResize.observe(this.document.body);\n }\n };\n /** @hidden */\n ComboBoxWithoutContext.prototype.componentWillUnmount = function () {\n var _a;\n if (((_a = this.document) === null || _a === void 0 ? void 0 : _a.body) && this.observerResize) {\n this.observerResize.disconnect();\n }\n };\n /** @hidden */\n ComboBoxWithoutContext.prototype.render = function () {\n var _a;\n var btnAriaLabelExpand = provideLocalizationService(this).toLanguageString(comboArrowBtnAriaLabelExpand, messages[comboArrowBtnAriaLabelExpand]);\n var btnAriaLabelCollapse = provideLocalizationService(this).toLanguageString(comboArrowBtnAriaLabelCollapse, messages[comboArrowBtnAriaLabelCollapse]);\n var _b = this.props, dir = _b.dir, disabled = _b.disabled, _c = _b.clearButton, clearButton = _c === void 0 ? ComboBoxWithoutContext.defaultProps.clearButton : _c, label = _b.label, textField = _b.textField, adaptive = _b.adaptive, className = _b.className, style = _b.style, loading = _b.loading, iconClassName = _b.iconClassName, virtual = _b.virtual, size = _b.size, rounded = _b.rounded, fillMode = _b.fillMode, _d = _b.opened, opened = _d === void 0 ? this.state.opened : _d, placeholder = _b.placeholder;\n var _e = this.state.windowWidth, windowWidth = _e === void 0 ? 0 : _e;\n var isValid = !this.validityStyles || this.validity.valid;\n var text = this.props.filter !== undefined ? this.props.filter : this.state.text;\n var selectedItemText = getItemValue(this.value, textField);\n var inputText = isPresent(text) ? text : selectedItemText;\n var renderClearButton = clearButton && (!!(inputText) || isPresent(this.value));\n var base = this.base;\n var vs = base.vs;\n var id = this.props.id || this._inputId;\n var renderAdaptive = windowWidth <= MOBILE_MEDIUM_DEVISE && adaptive;\n vs.enabled = virtual !== undefined;\n if (virtual !== undefined) {\n vs.skip = virtual.skip;\n vs.total = virtual.total;\n vs.pageSize = virtual.pageSize;\n }\n var combobox = (React.createElement(React.Fragment, null,\n React.createElement(\"span\", { className: classNames('k-combobox k-input', (_a = {},\n _a[\"k-input-\".concat(sizeMap[size] || size)] = size,\n _a[\"k-rounded-\".concat(roundedMap[rounded] || rounded)] = rounded,\n _a[\"k-input-\".concat(fillMode)] = fillMode,\n _a['k-invalid'] = !isValid,\n _a['k-loading'] = loading,\n _a['k-required'] = this.required,\n _a['k-disabled'] = disabled,\n _a), className), ref: this.componentRef, style: !label ? style : __assign(__assign({}, style), { width: undefined }), dir: dir },\n this.renderSearchBar(inputText || '', id, placeholder),\n renderClearButton && !loading && React.createElement(ClearButton, { onClick: this.clearButtonClick, key: \"clearbutton\" }),\n loading && React.createElement(IconWrap, { className: \"k-input-loading-icon\", name: 'loading', key: \"loading\" }),\n React.createElement(Button, { tabIndex: -1, type: \"button\", \"aria-label\": opened ? btnAriaLabelCollapse : btnAriaLabelExpand, icon: !iconClassName ? 'caret-alt-down' : undefined, svgIcon: !iconClassName ? caretAltDownIcon : this.props.svgIcon, iconClass: iconClassName, size: size, fillMode: fillMode, rounded: null, themeColor: 'base', className: \"k-input-button\", onClick: this.toggleBtnClick, onMouseDown: function (e) { return e.preventDefault(); } }),\n !renderAdaptive && this.renderListContainer()),\n renderAdaptive && this.renderAdaptiveListContainer()));\n return label\n ? (React.createElement(FloatingLabel, { label: label, editorId: id, editorValue: inputText, editorValid: isValid, editorDisabled: disabled, style: { width: style ? style.width : undefined }, children: combobox }))\n : combobox;\n };\n /** @hidden */\n ComboBoxWithoutContext.prototype.onNavigate = function (state, keyCode, skipItems) {\n var _a = this.props, _b = _a.data, data = _b === void 0 ? [] : _b, _c = _a.virtual, virtual = _c === void 0 ? { skip: 0 } : _c;\n var text = this.props.filter ? this.props.filter : this.state.text;\n var focusedIndex = this.getFocusedIndex();\n var vs = this.base.vs;\n var value = this.value;\n this._suggested = '';\n if (focusedIndex !== -1 && !isPresent(value)) {\n this.handleItemSelect(focusedIndex, state);\n }\n else if (text === '') {\n this.handleItemSelect(0, state);\n }\n else {\n var currentIndex = virtual.skip + focusedIndex;\n var newIndex = this.base.navigation.navigate({\n keyCode: keyCode,\n current: currentIndex,\n max: (vs.enabled ? vs.total : data.length) - 1,\n min: 0,\n skipItems: skipItems ? skipItems : undefined\n });\n if (newIndex !== undefined) {\n this.handleItemSelect(newIndex, state);\n }\n }\n };\n ;\n ComboBoxWithoutContext.prototype.getCurrentValueDisabledStatus = function (textField, data, focusedIndex) {\n return textField && data && data[focusedIndex] && data[focusedIndex].disabled;\n };\n ComboBoxWithoutContext.prototype.applyValueOnEnter = function (value, state) {\n var _a;\n var _b = this.props, _c = _b.data, data = _c === void 0 ? [] : _c, textField = _b.textField, allowCustom = _b.allowCustom;\n var opened = this.props.opened !== undefined ? this.props.opened : this.state.opened;\n var currentValueText = getItemValue(this.value, textField);\n var valueIndex = currentValueText === value ?\n this.index : getItemIndexByText(data, value, textField);\n var itemSelected = valueIndex !== -1;\n var newSelected = undefined;\n this._suggested = '';\n if (itemSelected) { // typed text match item from list\n newSelected = data[valueIndex];\n }\n else {\n if (allowCustom) { // any custom text not in list\n newSelected = textField !== undefined ? (_a = {}, _a[textField] = value, _a) : value;\n }\n else {\n return this.selectFocusedItem(value, state);\n }\n }\n this.triggerOnChange(newSelected, state);\n if (opened) {\n this.base.togglePopup(state);\n }\n if (this.props.filter === undefined && this.state.text !== undefined) {\n state.data.text = undefined;\n }\n this.applyState(state);\n };\n ComboBoxWithoutContext.prototype.applyValueOnRejectSuggestions = function (text, state) {\n var _a;\n var _b = this.props, _c = _b.data, data = _c === void 0 ? [] : _c, textField = _b.textField, allowCustom = _b.allowCustom;\n var opened = this.props.opened !== undefined ? this.props.opened : this.state.opened;\n var valueItemText = getItemValue(this.value, textField);\n var isMobileDevice = this.state.windowWidth && this.state.windowWidth <= MOBILE_MEDIUM_DEVISE;\n this._suggested = '';\n if (text === valueItemText || (text === '' && !isPresent(valueItemText))) {\n if (opened && !isMobileDevice) {\n this.base.togglePopup(state);\n }\n return this.applyState(state);\n }\n var valueIndex = getItemIndexByText(data, text, textField, true);\n var itemSelected = valueIndex !== -1;\n var newSelected = null;\n if (itemSelected) {\n newSelected = data[valueIndex];\n }\n else if (allowCustom) {\n newSelected = text ? (textField ? (_a = {}, _a[textField] = text, _a) : text) : null;\n }\n this.triggerOnChange(newSelected, state);\n if (this.state.text !== undefined) {\n state.data.text = undefined;\n this.base.filterChanged('', state);\n }\n if (opened && !isMobileDevice) {\n this.base.togglePopup(state);\n }\n this.applyState(state);\n };\n ComboBoxWithoutContext.prototype.selectFocusedItem = function (text, state) {\n var opened = this.props.opened !== undefined ? this.props.opened : this.state.opened;\n var _a = this.props, _b = _a.data, data = _b === void 0 ? [] : _b, textField = _a.textField, _c = _a.virtual, virtual = _c === void 0 ? { skip: 0 } : _c, _d = _a.focusedItemIndex, focusedItemIndex = _d === void 0 ? itemIndexStartsWith : _d;\n var skip = virtual.skip;\n var focusedIndex = (text === '' && skip === 0) ? 0 :\n focusedItemIndex(data, text, textField);\n if (focusedIndex !== -1) {\n this.handleItemSelect(focusedIndex + skip, state);\n }\n else {\n this.triggerOnChange(null, state);\n if (this.state.text !== undefined) {\n state.data.text = undefined;\n }\n }\n if (opened) {\n this.base.togglePopup(state);\n }\n return this.applyState(state);\n };\n ComboBoxWithoutContext.prototype.renderAdaptiveListContainer = function () {\n var _a;\n var _this = this;\n var _b = this.state.windowWidth, windowWidth = _b === void 0 ? 0 : _b;\n var _c = this.props, header = _c.header, footer = _c.footer, size = _c.size, _d = _c.data, data = _d === void 0 ? [] : _d, groupField = _c.groupField, groupMode = _c.groupMode, list = _c.list, virtual = _c.virtual, adaptiveTitle = _c.adaptiveTitle, groupStickyHeaderItemRender = _c.groupStickyHeaderItemRender;\n var opened = this.props.opened !== undefined ? this.props.opened : this.state.opened;\n var group = this.state.group;\n if (group === undefined && groupField !== undefined) {\n group = getItemValue(data[0], groupField);\n }\n var actionSheetProps = {\n navigatable: false,\n navigatableElements: [],\n expand: opened,\n animation: true,\n onClose: function (event) { return _this.toggleBtnClick(event); },\n animationStyles: windowWidth <= MOBILE_SMALL_DEVISE ? { top: 0, width: '100%', height: '100%' } : undefined,\n className: windowWidth <= MOBILE_SMALL_DEVISE\n ? 'k-adaptive-actionsheet k-actionsheet-fullscreen'\n : 'k-adaptive-actionsheet k-actionsheet-bottom'\n };\n return (React.createElement(React.Fragment, null,\n React.createElement(ActionSheet, __assign({}, actionSheetProps),\n React.createElement(ActionSheetHeader, { className: 'k-text-center' },\n React.createElement(\"div\", { className: \"k-actionsheet-titlebar-group k-hbox\" },\n React.createElement(\"div\", { className: \"k-actionsheet-title\" },\n React.createElement(\"div\", null, adaptiveTitle)),\n React.createElement(\"div\", { className: \"k-actionsheet-actions\" },\n React.createElement(Button, { tabIndex: 0, \"aria-label\": \"Cancel\", \"aria-disabled\": \"false\", type: \"button\", fillMode: \"flat\", onClick: this.toggleBtnClick, icon: 'x', svgIcon: xIcon }))),\n React.createElement(\"div\", { className: \"k-actionsheet-titlebar-group k-actionsheet-filter\" }, this.renderMobileListFilter())),\n React.createElement(ActionSheetContent, { className: '!k-overflow-hidden' },\n React.createElement(\"div\", { className: 'k-list-container' },\n React.createElement(\"div\", { className: classNames((_a = {},\n _a['k-list'] = !list,\n _a['k-list-lg'] = true,\n _a['k-virtual-list'] = virtual,\n _a['k-data-table'] = list,\n _a[\"k-table-\".concat(sizeMap[size] || size)] = list && size,\n _a)) },\n header && React.createElement(\"div\", { className: \"k-table-header\" }, header),\n !list && group && data.length !== 0 && React.createElement(GroupStickyHeader, { group: group, groupMode: groupMode, render: groupStickyHeaderItemRender }),\n this.renderList(),\n footer && React.createElement(\"div\", { className: \"k-list-footer\" }, footer)))))));\n };\n ComboBoxWithoutContext.prototype.renderListContainer = function () {\n var _a, _b;\n var base = this.base;\n var _c = this.props, dir = _c.dir, header = _c.header, footer = _c.footer, _d = _c.data, data = _d === void 0 ? [] : _d, groupField = _c.groupField, groupMode = _c.groupMode, size = _c.size, list = _c.list, virtual = _c.virtual, groupStickyHeaderItemRender = _c.groupStickyHeaderItemRender;\n var opened = this.props.opened !== undefined ? this.props.opened : this.state.opened;\n var popupSettings = base.getPopupSettings();\n var popupWidth = popupSettings.width !== undefined ? popupSettings.width : base.popupWidth;\n var group = this.state.group;\n if (group === undefined && groupField !== undefined) {\n group = getItemValue(data[0], groupField);\n }\n return (React.createElement(ListContainer, { width: popupWidth, popupSettings: {\n animate: popupSettings.animate,\n anchor: this.element,\n show: opened,\n popupClass: classNames(popupSettings.popupClass, 'k-list-container', 'k-combobox-popup'),\n className: popupSettings.className,\n appendTo: popupSettings.appendTo\n }, dir: dir !== undefined ? dir : this.base.dirCalculated, itemsCount: [data.length] },\n React.createElement(\"div\", { className: classNames((_a = {},\n _a['k-list'] = !list,\n _a[\"k-list-\".concat(sizeMap[size] || size)] = !list && size,\n _a['k-virtual-list'] = virtual,\n _a['k-data-table'] = list,\n _a[\"k-table-\".concat(sizeMap[size] || size)] = list && size,\n _a)) },\n header && React.createElement(\"div\", { className: \"k-table-header\" }, header),\n !list && group && data.length !== 0 && React.createElement(GroupStickyHeader, { group: group, groupMode: groupMode, render: groupStickyHeaderItemRender }),\n this.renderList(),\n footer &&\n React.createElement(\"div\", { className: classNames((_b = {},\n _b['k-list-footer'] = !this.props.footerClassName,\n _b), this.props.footerClassName) }, footer))));\n };\n ComboBoxWithoutContext.prototype.renderList = function () {\n var _a;\n var _this = this;\n var base = this.base;\n var _b = this.props, textField = _b.textField, dataItemKey = _b.dataItemKey, listNoDataRender = _b.listNoDataRender, itemRender = _b.itemRender, groupHeaderItemRender = _b.groupHeaderItemRender, _c = _b.data, data = _c === void 0 ? [] : _c, _d = _b.virtual, virtual = _d === void 0 ? { skip: 0 } : _d;\n var popupSettings = base.getPopupSettings();\n var vs = base.vs;\n var skip = virtual.skip;\n var opened = this.props.opened !== undefined ? this.props.opened : this.state.opened;\n var translate = \"translateY(\".concat(vs.translate, \"px)\");\n var focusedIndex = opened ? this.getFocusedIndex() : undefined;\n var text = this.props.filter !== undefined ? this.props.filter : this.state.text;\n var selectedItemText = getItemValue(this.value, textField);\n var value = isPresent(text) && text !== selectedItemText ? null : this.value;\n var ListComponent = this.props.list || List;\n return (React.createElement(ListComponent, { id: base.listBoxId, virtual: Boolean(virtual), show: opened, data: data, focusedIndex: focusedIndex, value: value, textField: textField, valueField: dataItemKey, groupField: this.props.groupField, groupMode: this.props.groupMode, isMultiColumn: this.props.isMultiColumn, optionsGuid: base.guid, listRef: function (list) { vs.list = _this.base.list = list; _this.itemHeight = 0; }, wrapperStyle: (this.state.windowWidth && this.state.windowWidth > MOBILE_MEDIUM_DEVISE)\n ? { maxHeight: popupSettings.height }\n : {}, wrapperCssClass: classNames('k-list-content', (_a = {},\n _a['k-list-scroller'] = !virtual,\n _a)), listStyle: vs.enabled ? { transform: translate } : undefined, key: \"listkey\", skip: skip, onClick: this.handleItemClick, itemRender: itemRender, groupHeaderItemRender: groupHeaderItemRender, noDataRender: listNoDataRender, onMouseDown: function (e) { return e.preventDefault(); }, onScroll: this.onScroll, wrapperRef: vs.scrollerRef, scroller: this.base.renderScrollElement() }));\n };\n ComboBoxWithoutContext.prototype.renderSearchBar = function (text, id, placeholder) {\n var _this = this;\n var _a = this.props, tabIndex = _a.tabIndex, disabled = _a.disabled, _b = _a.data, data = _b === void 0 ? [] : _b, dataItemKey = _a.dataItemKey, _c = _a.virtual, virtual = _c === void 0 ? { skip: 0 } : _c;\n var opened = this.props.opened !== undefined ? this.props.opened : this.state.opened;\n var value = this.value;\n var selectedIndex = Math.max(0, data.findIndex(function (i) { return areSame(i, value, dataItemKey); }));\n if (this._suggested && !areSame(this._valueOnDidUpdate, value, dataItemKey)) {\n this._suggested = '';\n }\n return (React.createElement(SearchBar, { id: id, readOnly: (opened && this.mobileMode), placeholder: placeholder, tabIndex: tabIndex, title: this.props.title, accessKey: this.props.accessKey, value: text + this._suggested, suggestedText: this._suggested, ref: function (el) { return _this._input = el && el.input; }, onClick: this.onInputClick, onKeyDown: this.onInputKeyDown, onChange: this.inputOnChange, onFocus: this.base.handleFocus, onBlur: this.handleBlur, disabled: disabled, expanded: opened, owns: this.base.listBoxId, activedescendant: \"option-\".concat(this.base.guid, \"-\").concat(selectedIndex + virtual.skip), role: \"combobox\", ariaLabelledBy: this.props.ariaLabelledBy, ariaDescribedBy: this.props.ariaDescribedBy, ariaRequired: this.required, render: this.props.valueRender }));\n };\n ComboBoxWithoutContext.prototype.clearValue = function () {\n var state = this.base.initState();\n this._suggested = '';\n this.base.filterChanged('', state);\n if (this.props.filter === undefined && this.state.text !== undefined) {\n state.data.text = undefined;\n }\n this.triggerOnChange(null, state);\n var opened = this.props.opened !== undefined ? this.props.opened : this.state.opened;\n var isAdaptive = this.mobileMode;\n if (opened && !isAdaptive) {\n this.base.togglePopup(state);\n }\n this.applyState(state);\n };\n ComboBoxWithoutContext.prototype.triggerOnChange = function (item, state) {\n var value = this.value;\n if ((!isPresent(value) && !isPresent(item)) || areSame(value, item, this.props.dataItemKey)) {\n return;\n }\n if (this.props.value === undefined) {\n state.data.value = item;\n }\n this._valueDuringOnChange = item;\n state.events.push({ type: 'onChange' });\n };\n ComboBoxWithoutContext.prototype.getFocusedIndex = function () {\n var value = this.value;\n var _a = this.props, _b = _a.data, data = _b === void 0 ? [] : _b, textField = _a.textField, dataItemKey = _a.dataItemKey, _c = _a.virtual, virtual = _c === void 0 ? { skip: 0 } : _c, _d = _a.focusedItemIndex, focusedItemIndex = _d === void 0 ? itemIndexStartsWith : _d, skipDisabledItems = _a.skipDisabledItems;\n var text = this.props.filter ? this.props.filter : this.state.text;\n if (isPresent(value) && text === undefined) {\n return data.findIndex(function (i) { return areSame(i, value, dataItemKey); });\n }\n else if (text) {\n return focusedItemIndex(data, text, textField);\n }\n else if (skipDisabledItems && textField && !text && virtual.skip === 0) {\n return data.findIndex(function (i) { return !i.disabled && i[textField]; });\n }\n else {\n return virtual.skip === 0 ? 0 : -1;\n }\n };\n ComboBoxWithoutContext.prototype.suggestValue = function (value) {\n var _a = this.props, data = _a.data, textField = _a.textField;\n this._suggested = suggestValue(value, data, textField);\n };\n ComboBoxWithoutContext.prototype.applyState = function (state) {\n this.base.applyState(state);\n this._valueDuringOnChange = undefined;\n };\n ComboBoxWithoutContext.prototype.calculateMedia = function (entries) {\n for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {\n var entry = entries_1[_i];\n this.setState({ windowWidth: entry.target.clientWidth });\n }\n ;\n };\n ;\n ComboBoxWithoutContext.displayName = 'ComboBox';\n /** @hidden */\n ComboBoxWithoutContext.propTypes = __assign(__assign({}, DropDownBase.propTypes), { size: PropTypes.oneOf([null, 'small', 'medium', 'large']), rounded: PropTypes.oneOf([null, 'small', 'medium', 'large', 'full']), fillMode: PropTypes.oneOf([null, 'solid', 'flat', 'outline']), dataItemKey: PropTypes.string, groupField: PropTypes.string, groupMode: PropTypes.oneOf([undefined, 'classic', 'modern']), isMultiColumn: PropTypes.bool, suggest: PropTypes.bool, placeholder: PropTypes.string, title: PropTypes.string, allowCustom: PropTypes.bool, clearButton: PropTypes.bool, iconClassName: PropTypes.string, svgIcon: svgIconPropType, validationMessage: PropTypes.string, required: PropTypes.bool, id: PropTypes.string, ariaLabelledBy: PropTypes.string, ariaDescribedBy: PropTypes.string, list: PropTypes.any, valueRender: PropTypes.func, skipDisabledItems: PropTypes.bool });\n /** @hidden */\n ComboBoxWithoutContext.defaultProps = __assign(__assign({}, DropDownBase.defaultProps), { size: 'medium', rounded: 'medium', fillMode: 'solid', allowCustom: false, clearButton: true, required: false, groupMode: 'modern', isMultiColumn: false, skipDisabledItems: true });\n return ComboBoxWithoutContext;\n}(React.Component));\nexport { ComboBoxWithoutContext };\n/**\n * Represents the PropsContext of the `ComboBox` component.\n * Used for global configuration of all `ComboBox` instances.\n *\n * For more information, refer to the [Dropdowns Props Context]({% slug props-context_dropdowns %}) article.\n */\nexport var ComboBoxPropsContext = createPropsContext();\n/* eslint-disable @typescript-eslint/no-redeclare -- intentionally naming the component the same as the type */\n/**\n * Represents the [KendoReact ComboBox component]({% slug overview_combobox %}).\n *\n * Accepts properties of type [ComboBoxProps]({% slug api_dropdowns_comboboxprops %}).\n * Obtaining the `ref` returns an object of type [ComboBoxHandle]({% slug api_dropdowns_comboboxhandle %}).\n *\n * @example\n * ```jsx\n * class App extends React.Component {\n * combobox = null;\n * render() {\n * return (\n * <div>\n * <ComboBox\n * data={[ \"Albania\", \"Andorra\", \"Austria\", \"Belarus\" ]}\n * ref={component => this.combobox = component}\n * />\n * <button onClick={() => alert(this.combobox.value)}>alert value</button>\n * </div>\n * );\n * }\n * }\n * ReactDOM.render(<App />, document.querySelector('my-app'));\n * ```\n */\nexport var ComboBox = withPropsContext(ComboBoxPropsContext, ComboBoxWithoutContext);\nComboBox.displayName = 'KendoReactComboBox';\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport SearchBar from './../common/SearchBar';\nimport ListContainer from './../common/ListContainer';\nimport List from './../common/List';\nimport DropDownBase from '../common/DropDownBase';\nimport GroupStickyHeader from '../common/GroupStickyHeader';\nimport { itemIndexStartsWith, getItemValue, areSame, getFocusedItem } from '../common/utils';\nimport { guid, Keys, classNames, createPropsContext, withPropsContext, kendoThemeMaps, IconWrap } from '@progress/kendo-react-common';\nimport { FloatingLabel } from '@progress/kendo-react-labels';\nimport { validatePackage } from '@progress/kendo-react-common';\nimport { packageMetadata } from '../package-metadata';\nimport ClearButton from '../common/ClearButton';\nvar VALIDATION_MESSAGE = 'Please enter a valid value!';\nvar sizeMap = kendoThemeMaps.sizeMap, roundedMap = kendoThemeMaps.roundedMap;\n/** @hidden */\nvar AutoCompleteWithoutContext = /** @class */ (function (_super) {\n __extends(AutoCompleteWithoutContext, _super);\n function AutoCompleteWithoutContext(props) {\n var _this = _super.call(this, props) || this;\n /**\n * @hidden\n */\n _this.state = {};\n _this.base = new DropDownBase(_this);\n _this._element = null;\n _this._inputId = guid();\n _this._suggested = '';\n _this._input = null;\n _this._isScrolling = false;\n _this.itemHeight = 0;\n /**\n * @hidden\n */\n _this.focus = function () {\n if (_this._input) {\n _this._input.focus();\n }\n };\n /**\n * @hidden\n */\n _this.handleItemSelect = function (index, state) {\n var _a = _this.props.data, data = _a === void 0 ? [] : _a;\n var newText = getItemValue(data[index], _this.props.textField);\n _this.triggerOnChange(newText, state);\n };\n /**\n * @hidden\n */\n _this.itemFocus = function (index, state) {\n var _a = _this.props, _b = _a.data, data = _b === void 0 ? [] : _b, textField = _a.textField;\n var focusedItem = data[index];\n if (!areSame(_this.state.focusedItem, focusedItem, textField)) {\n state.data.focusedItem = focusedItem;\n }\n };\n /**\n * @hidden\n */\n _this.togglePopup = function (state) {\n _this.base.togglePopup(state);\n };\n _this.setValidity = function () {\n if (_this._input && _this._input.setCustomValidity) {\n _this._input.setCustomValidity(_this.validity.valid\n ? ''\n : _this.props.validationMessage || VALIDATION_MESSAGE);\n }\n };\n _this.onScroll = function (event) {\n _this._isScrolling = true;\n var list = _this.base.list;\n var groupField = _this.props.groupField;\n var _a = _this.props.data, data = _a === void 0 ? [] : _a;\n if (!groupField || !data.length) {\n return;\n }\n var itemHeight = _this.itemHeight || (list ? list.children[0].offsetHeight : 0);\n var target = event.target;\n var scrollTop = target.scrollTop;\n if (groupField) {\n data = _this.base.getGroupedDataModernMode(data, groupField);\n }\n ;\n var group = data[0][groupField];\n for (var i = 1; i < data.length; i++) {\n if (itemHeight * i > scrollTop) {\n break;\n }\n if (data[i] && data[i][groupField]) {\n group = data[i][groupField];\n }\n }\n if (group !== _this.state.group) {\n _this.setState({\n group: group\n });\n }\n };\n _this.handleItemClick = function (index, event) {\n _this.base.handleItemClick(index, event);\n _this._valueDuringOnChange = undefined;\n };\n _this.onChangeHandler = function (event) {\n var base = _this.base;\n var state = base.initState();\n var input = event.currentTarget;\n var value = input.value;\n var selectionAtEnd = input.selectionEnd === value.length;\n state.syntheticEvent = event;\n var prevSuggestion = _this._suggested;\n var prevValue = _this.value;\n var prevUserInput = prevValue &&\n prevValue.substring(0, prevValue.length - prevSuggestion.length);\n var deletedSuggestion = prevUserInput && prevUserInput === value;\n var deleting = prevUserInput && prevUserInput.length > value.length;\n var suggest = _this.props.suggest;\n var opened = _this.props.opened !== undefined ?\n _this.props.opened : _this.state.opened;\n if (suggest !== undefined && suggest !== false) {\n if (deletedSuggestion || deleting || !selectionAtEnd) {\n _this._suggested = '';\n }\n else {\n _this.suggestValue(value);\n }\n var newValue = value + _this._suggested;\n var suggestion = { userInput: value, value: _this._suggested };\n _this.triggerOnChange(newValue, state, { suggestion: suggestion });\n }\n else {\n _this._suggested = '';\n _this.triggerOnChange(value, state);\n }\n if ((!opened && value) || (opened && !value)) {\n _this.togglePopup(state);\n }\n state.data.focusedItem = undefined;\n _this.applyState(state);\n _this.setState({ group: undefined });\n };\n _this.clearButtonClick = function (event) {\n var base = _this.base;\n var state = base.initState();\n var opened = _this.props.opened !== undefined ? _this.props.opened : _this.state.opened;\n state.syntheticEvent = event;\n var newValue = '';\n _this._suggested = '';\n _this.triggerOnChange(newValue, state);\n if (_this.state.focusedItem !== undefined) {\n state.data.focusedItem = undefined;\n }\n if (opened) {\n _this.togglePopup(state);\n }\n _this.applyState(state);\n };\n _this.onInputKeyDown = function (event) {\n var _a = _this.props, _b = _a.data, data = _b === void 0 ? [] : _b, skipDisabledItems = _a.skipDisabledItems, groupField = _a.groupField, textField = _a.textField;\n if (_this._isScrolling) {\n _this._isScrolling = false;\n }\n var focusedIndex = _this.focusedIndex();\n var focusedItem = data[focusedIndex];\n var keyCode = event.keyCode;\n var altOrOptionsKeyPressed = event.altKey;\n var opened = _this.props.opened !== undefined ? _this.props.opened : _this.state.opened;\n var state = _this.base.initState();\n state.syntheticEvent = event;\n var preventDefault = function () {\n if (opened) {\n event.preventDefault();\n }\n };\n if (altOrOptionsKeyPressed && keyCode === Keys.down) {\n _this.setState({\n opened: true\n });\n }\n else if (altOrOptionsKeyPressed && keyCode === Keys.up) {\n _this.setState({\n opened: false\n });\n }\n else if (opened && keyCode === Keys.pageUp) {\n _this.base.scrollPopupByPageSize(-1);\n }\n else if (opened && keyCode === Keys.pageDown) {\n _this.base.scrollPopupByPageSize(1);\n }\n else if (opened && (keyCode === Keys.enter || keyCode === Keys.esc)) {\n preventDefault();\n if (skipDisabledItems === false && focusedItem && focusedItem.disabled) {\n if (opened) {\n _this.togglePopup(state);\n }\n _this.applyState(state);\n }\n else {\n _this.applyInputValue(event.currentTarget.value, state, event.keyCode);\n }\n }\n else if (!opened && keyCode === Keys.esc) {\n var newValue = '';\n _this._suggested = '';\n _this.triggerOnChange(newValue, state);\n if (_this.state.focusedItem !== undefined) {\n state.data.focusedItem = undefined;\n }\n _this.applyState(state);\n }\n else if (keyCode === Keys.up || keyCode === Keys.down) {\n if (groupField !== '' && textField) {\n if (!_this.props.skipDisabledItems && opened) {\n _this.onNavigate(state, keyCode);\n }\n else {\n var newIndex = 0;\n if (keyCode === Keys.down || keyCode === Keys.right) {\n var tempnewIndex_1 = data.slice(focusedIndex + 1).find(function (i) { return !i.disabled && i[textField]; });\n newIndex = tempnewIndex_1 && data.findIndex(function (el) { return el[textField] === tempnewIndex_1[textField]; });\n }\n else if (keyCode === Keys.up || keyCode === Keys.left) {\n var dataToSearch = void 0;\n if (focusedIndex === -1) {\n dataToSearch = data;\n newIndex = data.findIndex(function (i) { return !i.disabled && i[textField]; });\n }\n else {\n dataToSearch = data.slice(0, focusedIndex);\n var tempnewIndex_2 = dataToSearch.pop();\n while (tempnewIndex_2 && tempnewIndex_2.disabled) {\n tempnewIndex_2 = dataToSearch.pop();\n }\n newIndex = tempnewIndex_2 && data.findIndex(function (el) { return el[textField] === tempnewIndex_2[textField]; });\n }\n }\n if (newIndex !== undefined) {\n var skipItems = newIndex - focusedIndex;\n _this.onNavigate(state, keyCode, skipItems);\n }\n else if (newIndex === undefined && data.findIndex(function (el) { return el[textField]; }) === data.length - 1) {\n _this.onNavigate(state, keyCode);\n }\n }\n }\n else if (!_this.props.skipDisabledItems && opened) {\n _this.onNavigate(state, keyCode);\n }\n else {\n var newIndex = null;\n if (keyCode === Keys.down || keyCode === Keys.right) {\n newIndex = data.slice(focusedIndex + 1).find(function (i) { return !i.disabled; });\n }\n else if (keyCode === Keys.up || keyCode === Keys.left) {\n var dataTest = data.slice(0, focusedIndex);\n newIndex = dataTest.pop();\n while (newIndex && newIndex.disabled) {\n newIndex = dataTest.pop();\n }\n }\n if (newIndex) {\n var skipItems = newIndex.id - focusedIndex - 1;\n _this.onNavigate(state, keyCode, skipItems);\n }\n else {\n _this.onNavigate(state, keyCode);\n }\n }\n _this.applyState(state);\n preventDefault();\n }\n };\n _this.handleBlur = function (event) {\n if (_this.state.focused) {\n var state = _this.base.initState();\n state.data.focused = false;\n state.events.push({ type: 'onBlur' });\n state.syntheticEvent = event;\n _this.applyInputValue(event.currentTarget.value, state);\n }\n };\n validatePackage(packageMetadata);\n return _this;\n }\n Object.defineProperty(AutoCompleteWithoutContext.prototype, \"element\", {\n /**\n * @hidden\n */\n get: function () {\n return this._element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(AutoCompleteWithoutContext.prototype, \"value\", {\n /**\n * The value of the AutoComplete.\n */\n get: function () {\n if (this._valueDuringOnChange !== undefined) {\n return this._valueDuringOnChange;\n }\n else if (this.props.value !== undefined) {\n return this.props.value;\n }\n else if (this.state.value !== undefined) {\n return this.state.value;\n }\n else if (this.props.defaultValue !== undefined) {\n return this.props.defaultValue;\n }\n return '';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(AutoCompleteWithoutContext.prototype, \"name\", {\n /**\n * Gets the `name` property of the AutoComplete.\n */\n get: function () {\n return this.props.name;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(AutoCompleteWithoutContext.prototype, \"validity\", {\n /**\n * Represents the validity state into which the AutoComplete is set.\n */\n get: function () {\n // The AutoComplete component is in a invalid state\n // only if it's required and the value is null!\n var customError = this.props.validationMessage !== undefined;\n var isValid = (!this.required || this.value !== '');\n var valid = this.props.valid !== undefined ? this.props.valid : isValid;\n return {\n customError: customError,\n valid: valid,\n valueMissing: this.value === null\n };\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(AutoCompleteWithoutContext.prototype, \"validityStyles\", {\n /**\n * @hidden\n */\n get: function () {\n return this.props.validityStyles !== undefined\n ? this.props.validityStyles\n : AutoCompleteWithoutContext.defaultProps.validityStyles;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(AutoCompleteWithoutContext.prototype, \"required\", {\n /**\n * @hidden\n */\n get: function () {\n return this.props.required !== undefined\n ? this.props.required\n : AutoCompleteWithoutContext.defaultProps.required;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * @hidden\n */\n AutoCompleteWithoutContext.prototype.componentDidUpdate = function (prevProps, prevState) {\n var _a;\n var _b = this.props, _c = _b.groupField, groupField = _c === void 0 ? '' : _c, _d = _b.data, data = _d === void 0 ? [] : _d;\n var _e = prevProps.data, prevData = _e === void 0 ? [] : _e;\n var focusedIndex = this.focusedIndex();\n var focusedItem = data[focusedIndex];\n var dataChanged = prevData !== data;\n var focusedItemChanged = focusedItem !== undefined && prevState.focusedItem !== focusedItem;\n var opened = this.props.opened !== undefined ? this.props.opened : this.state.opened;\n var prevOpened = prevProps.opened !== undefined ? prevProps.opened : prevState.opened;\n var opening = !prevOpened && opened;\n if (groupField === '') {\n if ((opened && (focusedItemChanged || dataChanged)) || opening) {\n this.base.scrollToItem(focusedIndex);\n }\n }\n else if (!this._isScrolling) {\n var focusedItemIndex = (_a = this.base.getGroupedDataModernMode(data, groupField)) === null || _a === void 0 ? void 0 : _a.indexOf(focusedItem);\n if (opening) {\n // Resets the sticky header group value for scenarios with open/close of component's popup\n if (data && data.length !== 0) {\n this.base.resetGroupStickyHeader(data[0][groupField], this);\n }\n this.base.scrollToItem(focusedItemIndex);\n }\n ;\n if (opened && prevOpened && focusedItemChanged) {\n this.base.scrollToItem(focusedItemIndex);\n }\n }\n this.setValidity();\n };\n /**\n * @hidden\n */\n AutoCompleteWithoutContext.prototype.componentDidMount = function () {\n this.base.didMount();\n this.setValidity();\n };\n /**\n * @hidden\n */\n AutoCompleteWithoutContext.prototype.render = function () {\n var _a;\n var _this = this;\n var _b = this.props, dir = _b.dir, disabled = _b.disabled, label = _b.label, className = _b.className, style = _b.style, loading = _b.loading, suggest = _b.suggest, size = _b.size, rounded = _b.rounded, fillMode = _b.fillMode;\n var isValid = !this.validityStyles || this.validity.valid;\n var base = this.base;\n var value = this.value;\n var renderClearButton = this.props.clearButton !== false && !loading && !!value;\n var id = this.props.id || this._inputId;\n if (typeof suggest === 'string') {\n this._suggested = suggest;\n }\n var autoComplete = (React.createElement(\"span\", { className: classNames('k-autocomplete k-input', className, (_a = {},\n _a[\"k-input-\".concat(sizeMap[size] || size)] = size,\n _a[\"k-rounded-\".concat(roundedMap[rounded] || rounded)] = rounded,\n _a[\"k-input-\".concat(fillMode)] = fillMode,\n _a['k-invalid'] = !isValid,\n _a['k-loading'] = loading,\n _a['k-required'] = this.required,\n _a['k-disabled'] = disabled,\n _a)), ref: function (element) {\n _this._element = element;\n base.wrapper = element;\n }, style: !label\n ? style\n : __assign(__assign({}, style), { width: undefined }), dir: dir },\n this.renderSearchBar(value || '', id),\n loading && React.createElement(IconWrap, { className: \"k-input-loading-icon\", name: 'loading' }),\n renderClearButton && !loading && React.createElement(ClearButton, { onClick: this.clearButtonClick, key: \"clearbutton\" }),\n this.renderListContainer()));\n return label\n ? (React.createElement(FloatingLabel, { label: label, editorId: id, editorValue: value, editorValid: isValid, editorDisabled: disabled, style: { width: style ? style.width : undefined }, children: autoComplete }))\n : autoComplete;\n };\n /**\n * @hidden\n */\n AutoCompleteWithoutContext.prototype.onNavigate = function (state, keyCode, skipItems) {\n var _this = this;\n var typedText = this.value;\n var _a = this.props, _b = _a.data, data = _b === void 0 ? [] : _b, textField = _a.textField, focusedItemIndex = _a.focusedItemIndex;\n var focusedIndex = this.state.focusedItem !== undefined ?\n data.findIndex(function (i) { return areSame(i, _this.state.focusedItem, textField); }) :\n (focusedItemIndex ? focusedItemIndex(data, typedText, textField) :\n data.indexOf(getFocusedItem(data, typedText, textField)));\n var newFocused = this.base.navigation.navigate({\n keyCode: keyCode,\n current: focusedIndex,\n max: data.length - 1,\n min: 0,\n skipItems: skipItems ? skipItems : undefined\n });\n if (newFocused !== undefined) {\n this.itemFocus(newFocused, state);\n }\n this.applyState(state);\n };\n /**\n * @hidden\n */\n AutoCompleteWithoutContext.prototype.applyInputValue = function (value, state, eventKey) {\n var opened = this.props.opened !== undefined ? this.props.opened : this.state.opened;\n var _a = this.props, _b = _a.data, data = _b === void 0 ? [] : _b, textField = _a.textField;\n var focusedIndex = this.focusedIndex();\n var focusedItem = data[focusedIndex];\n this._suggested = '';\n if (opened && eventKey === Keys.enter) {\n if (focusedItem && !focusedItem.disabled) {\n var newValue = getItemValue(data[this.focusedIndex(value)], textField);\n this.triggerOnChange(newValue, state);\n }\n }\n if (opened) {\n this.togglePopup(state);\n }\n this.applyState(state);\n };\n AutoCompleteWithoutContext.prototype.renderSearchBar = function (value, id) {\n var _this = this;\n var base = this.base;\n var _a = this.props, placeholder = _a.placeholder, tabIndex = _a.tabIndex, disabled = _a.disabled, readonly = _a.readonly;\n var focused = this.state.focused;\n var opened = this.props.opened !== undefined ? this.props.opened : this.state.opened;\n return (React.createElement(SearchBar, { id: id, placeholder: placeholder, tabIndex: tabIndex, accessKey: this.props.accessKey, value: value, suggestedText: this._suggested, focused: focused, name: this.props.name, ref: function (searchbar) { return _this._input = searchbar && searchbar.input; }, onKeyDown: this.onInputKeyDown, onChange: this.onChangeHandler, onFocus: base.handleFocus, onBlur: this.handleBlur, disabled: disabled, readOnly: readonly, expanded: opened, owns: base.listBoxId, activedescendant: 'option-' + base.guid + '-' + this.focusedIndex(), role: \"combobox\", ariaLabelledBy: this.props.ariaLabelledBy, ariaDescribedBy: this.props.ariaDescribedBy, ariaRequired: this.required, render: this.props.valueRender }));\n };\n AutoCompleteWithoutContext.prototype.renderListContainer = function () {\n var _a;\n var base = this.base;\n var _b = this.props, dir = _b.dir, header = _b.header, footer = _b.footer, _c = _b.data, data = _c === void 0 ? [] : _c, size = _b.size, groupField = _b.groupField, list = _b.list, groupStickyHeaderItemRender = _b.groupStickyHeaderItemRender;\n var popupSettings = base.getPopupSettings();\n var opened = this.props.opened !== undefined ? this.props.opened : this.state.opened;\n var popupWidth = popupSettings.width !== undefined ? popupSettings.width : base.popupWidth;\n var group = this.state.group;\n if (group === undefined && groupField !== undefined) {\n group = getItemValue(data[0], groupField);\n }\n return (React.createElement(ListContainer, { width: popupWidth, popupSettings: {\n animate: popupSettings.animate,\n anchor: this.element,\n show: opened,\n popupClass: classNames(popupSettings.popupClass, 'k-list-container', 'k-autocomplete-popup'),\n className: popupSettings.className,\n appendTo: popupSettings.appendTo\n }, dir: dir !== undefined ? dir : this.base.dirCalculated, itemsCount: [data.length] },\n header && React.createElement(\"div\", { className: \"k-list-header\" }, header),\n React.createElement(\"div\", { className: classNames('k-list', (_a = {},\n _a[\"k-list-\".concat(sizeMap[size] || size)] = size,\n _a)) },\n !list && group && data.length !== 0 && React.createElement(GroupStickyHeader, { group: group, groupMode: 'modern', render: groupStickyHeaderItemRender }),\n this.renderList()),\n footer && React.createElement(\"div\", { className: \"k-list-footer\" }, footer)));\n };\n AutoCompleteWithoutContext.prototype.renderList = function () {\n var base = this.base;\n var popupSettings = base.getPopupSettings();\n var _a = this.props, textField = _a.textField, _b = _a.data, data = _b === void 0 ? [] : _b, listNoDataRender = _a.listNoDataRender, itemRender = _a.itemRender, groupHeaderItemRender = _a.groupHeaderItemRender;\n var value = this.value;\n var opened = this.props.opened !== undefined ? this.props.opened : this.state.opened;\n return (React.createElement(List, { id: base.listBoxId, show: opened, data: data.slice(), focusedIndex: this.focusedIndex(), value: value, textField: textField, valueField: textField, highlightSelected: false, optionsGuid: base.guid, groupField: this.props.groupField, groupMode: 'modern', listRef: function (list) { return base.list = list; }, wrapperStyle: { maxHeight: popupSettings.height }, wrapperCssClass: \"k-list-content\", onClick: this.handleItemClick, itemRender: itemRender, groupHeaderItemRender: groupHeaderItemRender, noDataRender: listNoDataRender, onMouseDown: function (e) { return e.preventDefault(); }, onScroll: this.onScroll }));\n };\n AutoCompleteWithoutContext.prototype.triggerOnChange = function (newValue, state, eventArgs) {\n if (this.value === newValue && !eventArgs) {\n return;\n }\n state.data.value = newValue;\n this._valueDuringOnChange = newValue;\n state.events.push(__assign({ type: 'onChange' }, (eventArgs || {})));\n };\n AutoCompleteWithoutContext.prototype.applyState = function (state) {\n this.base.applyState(state);\n this._valueDuringOnChange = undefined;\n };\n AutoCompleteWithoutContext.prototype.suggestValue = function (value) {\n this._suggested = '';\n if (value) {\n var _a = this.props, _b = _a.data, data = _b === void 0 ? [] : _b, textField = _a.textField;\n var suggestedItem = data[itemIndexStartsWith(data, value, textField)];\n if (suggestedItem) {\n var suggestedText = getItemValue(suggestedItem, textField);\n if (value.toLowerCase() !== suggestedText.toLowerCase()) {\n this._suggested = suggestedText.substring(value.length);\n }\n }\n }\n };\n AutoCompleteWithoutContext.prototype.focusedIndex = function (value) {\n var _this = this;\n var _a = this.props, _b = _a.data, data = _b === void 0 ? [] : _b, textField = _a.textField, focusedItemIndex = _a.focusedItemIndex, skipDisabledItems = _a.skipDisabledItems;\n var inputValue = value !== undefined ? value : this.value;\n if (this.state.focusedItem !== undefined) {\n return data.findIndex(function (i) { return areSame(i, _this.state.focusedItem, textField); });\n }\n else if (focusedItemIndex) {\n return focusedItemIndex(data, inputValue, textField);\n }\n else {\n var indexOfFocusedItem = data.indexOf(getFocusedItem(data, inputValue, textField));\n if (skipDisabledItems && textField && indexOfFocusedItem === -1) {\n return data.findIndex(function (i) { return !i.disabled && i[textField]; });\n }\n return Math.max(0, indexOfFocusedItem);\n }\n };\n AutoCompleteWithoutContext.displayName = 'AutoComplete';\n /**\n * @hidden\n */\n AutoCompleteWithoutContext.propTypes = __assign(__assign({}, DropDownBase.basicPropTypes), { size: PropTypes.oneOf([null, 'small', 'medium', 'large']), rounded: PropTypes.oneOf([null, 'small', 'medium', 'large', 'full']), fillMode: PropTypes.oneOf([null, 'solid', 'flat', 'outline']), groupField: PropTypes.string, suggest: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]), placeholder: PropTypes.string, value: PropTypes.string, defaultValue: PropTypes.string, validationMessage: PropTypes.string, required: PropTypes.bool, readonly: PropTypes.bool, clearButton: PropTypes.bool, valueRender: PropTypes.func, id: PropTypes.string, ariaLabelledBy: PropTypes.string, ariaDescribedBy: PropTypes.string, list: PropTypes.any, skipDisabledItems: PropTypes.bool });\n /**\n * @hidden\n */\n AutoCompleteWithoutContext.defaultProps = __assign(__assign({}, DropDownBase.defaultProps), { size: 'medium', rounded: 'medium', fillMode: 'solid', skipDisabledItems: true });\n return AutoCompleteWithoutContext;\n}(React.Component));\nexport { AutoCompleteWithoutContext };\n/**\n * Represents the PropsContext of the `AutoComplete` component.\n * Used for global configuration of all `AutoComplete` instances.\n *\n * For more information, refer to the [Dropdowns Props Context]({% slug props-context_dropdowns %}) article.\n */\nexport var AutoCompletePropsContext = createPropsContext();\n/* eslint-disable @typescript-eslint/no-redeclare -- intentionally naming the component the same as the type */\n/**\n * Represents the [KendoReact AutoComplete component]({% slug overview_autocomplete %}).\n *\n * Accepts properties of type [AutoCompleteProps]({% slug api_dropdowns_autocompleteprops %}).\n * Obtaining the `ref` returns an object of type [AutoCompleteHandle]({% slug api_dropdowns_autocompletehandle %}).\n *\n * @example\n * ```jsx\n * class App extends React.Component {\n * autocomplete = null;\n * render() {\n * return (\n * <div>\n * <AutoComplete\n * data={[ \"Albania\", \"Andorra\", \"Austria\", \"Belarus\" ]}\n * ref={component => this.autocomplete = component}\n * />\n * <button onClick={() => alert(this.autocomplete.value)}>alert value</button>\n * </div>\n * );\n * }\n * }\n * ReactDOM.render(<App />, document.querySelector('my-app'));\n * ```\n */\nexport var AutoComplete = withPropsContext(AutoCompletePropsContext, AutoCompleteWithoutContext);\nAutoComplete.displayName = 'KendoReactAutoComplete';\n","var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\n/**\n * @hidden\n */\nexport var SELECTION_TYPE;\n(function (SELECTION_TYPE) {\n SELECTION_TYPE[\"single\"] = \"single\";\n SELECTION_TYPE[\"multiple\"] = \"multiple\";\n SELECTION_TYPE[\"none\"] = \"none\";\n})(SELECTION_TYPE || (SELECTION_TYPE = {}));\n/**\n * @hidden\n */\nexport var SELECTION_ACTION;\n(function (SELECTION_ACTION) {\n SELECTION_ACTION[\"toggle\"] = \"toggle\";\n SELECTION_ACTION[\"remove\"] = \"remove\";\n})(SELECTION_ACTION || (SELECTION_ACTION = {}));\n/**\n * @hidden\n */\nexport var selectionReducer = function (state, action) {\n switch (action.selection) {\n case SELECTION_TYPE.single:\n switch (action.type) {\n case SELECTION_ACTION.toggle: {\n if (!Array.isArray(state) || state === null) {\n return action.payload === state ? null : action.payload;\n }\n throw new Error('State cannot be an array in single selection');\n }\n case SELECTION_ACTION.remove: {\n return action.payload === state ? null : state;\n }\n default:\n return state;\n }\n case SELECTION_TYPE.multiple:\n switch (action.type) {\n case SELECTION_ACTION.toggle: {\n if (Array.isArray(state)) {\n return state.some(function (i) { return i === action.payload; })\n ? state.filter(function (i) { return i !== action.payload; })\n : __spreadArray(__spreadArray([], state, true), [action.payload], false);\n }\n if (state === null) {\n return [action.payload];\n }\n throw new Error('State cannot be non-array in multiple selection');\n }\n case SELECTION_ACTION.remove: {\n if (Array.isArray(state)) {\n return state.some(function (i) { return i === action.payload; })\n ? state.filter(function (i) { return i !== action.payload; })\n : __spreadArray(__spreadArray([], state, true), [action.payload], false);\n }\n return state;\n }\n default:\n return state;\n }\n case SELECTION_TYPE.none:\n return null;\n default:\n return state;\n }\n};\n","/**\n * @hidden\n */\nexport var FOCUS_ACTION;\n(function (FOCUS_ACTION) {\n FOCUS_ACTION[\"next\"] = \"next\";\n FOCUS_ACTION[\"prev\"] = \"prev\";\n FOCUS_ACTION[\"current\"] = \"current\";\n FOCUS_ACTION[\"reset\"] = \"reset\";\n})(FOCUS_ACTION || (FOCUS_ACTION = {}));\n/**\n * @hidden\n */\nexport var focusReducer = function (state, action) {\n var currentIndex = action.items.findIndex(function (i) { return i === state; });\n switch (action.type) {\n case FOCUS_ACTION.next:\n return currentIndex === action.items.length - 1\n ? state\n : action.items[currentIndex + 1];\n case FOCUS_ACTION.prev:\n return currentIndex === 0\n ? state\n : action.items[currentIndex - 1];\n case FOCUS_ACTION.current:\n return action.payload;\n case FOCUS_ACTION.reset:\n return null;\n default:\n return state;\n }\n};\n","/**\n * @hidden\n */\nexport var CHIP_DATA_ACTION;\n(function (CHIP_DATA_ACTION) {\n CHIP_DATA_ACTION[\"remove\"] = \"remove\";\n CHIP_DATA_ACTION[\"add\"] = \"add\";\n CHIP_DATA_ACTION[\"reorder\"] = \"reorder\";\n})(CHIP_DATA_ACTION || (CHIP_DATA_ACTION = {}));\n/**\n * @hidden\n */\nexport var dataReducer = function (state, action) {\n switch (action.type) {\n case CHIP_DATA_ACTION.add:\n // TODO v2\n break;\n case CHIP_DATA_ACTION.remove:\n return state.filter(function (i) { return i[action.valueField] !== action.payload; });\n case CHIP_DATA_ACTION.reorder:\n // TODO v2\n break;\n default:\n return state;\n }\n};\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { useDir, getter, getTabIndex, classNames, useMouse, kendoThemeMaps } from '@progress/kendo-react-common';\nimport { selectionReducer } from './selection-reducer';\nimport { focusReducer } from './focus-reducer';\nimport { dataReducer } from './data-reducer';\nimport { Chip } from './Chip';\nimport { validatePackage } from '@progress/kendo-react-common';\nimport { packageMetadata } from '../package-metadata';\n/**\n * @hidden\n */\nexport var ChipListSelectionContext = React.createContext([null, function (_args) {\n /**/\n }]);\n/**\n * @hidden\n */\nexport var ChipListFocusContext = React.createContext([null, function (_args) {\n /**/\n }]);\n/**\n * @hidden\n */\nexport var ChipListDataContext = React.createContext([null, function (_args) {\n /**/\n }]);\n/**\n * @hidden\n */\nvar useSelection = function (defaultValue, args, callback) {\n var _a = React.useState(defaultValue), state = _a[0], setState = _a[1];\n var handleDispatchSelection = function (action) {\n var newState = selectionReducer(args.state || state, __assign(__assign({}, action), args));\n if (callback) {\n callback(newState, action.event);\n }\n setState(newState);\n };\n return [state, handleDispatchSelection];\n};\n/**\n * @hidden\n */\nvar useFocus = function (args) {\n var _a = React.useState(null), state = _a[0], setState = _a[1];\n var handleDispatchFocus = function (action) {\n var newState = focusReducer(action.payload, __assign(__assign({}, action), args));\n setState(newState);\n };\n return [state, handleDispatchFocus];\n};\n/**\n * @hidden\n */\nvar useData = function (defaultData, args, callback) {\n var _a = React.useState(defaultData), state = _a[0], setState = _a[1];\n var handleDispatchData = function (action) {\n var newState = dataReducer(args.state || state, __assign(__assign({}, action), args));\n if (callback) {\n callback(newState, action.event);\n }\n setState(newState);\n };\n return [state, handleDispatchData];\n};\n/**\n * Represents the ChipList component.\n */\nexport var ChipList = React.forwardRef(function (props, ref) {\n var _a;\n validatePackage(packageMetadata);\n var target = React.useRef(null);\n var chipListRef = React.useRef(null);\n var dir = useDir(chipListRef, props.dir);\n var chip = props.chip, id = props.id, style = props.style, tabIndex = props.tabIndex, disabled = props.disabled, size = props.size, className = props.className, ariaDescribedBy = props.ariaDescribedBy, ariaLabelledBy = props.ariaLabelledBy, _b = props.selection, selection = _b === void 0 ? defaultProps.selection : _b, _c = props.value, value = _c === void 0 ? defaultProps.defaultValue : _c, _d = props.defaultData, defaultData = _d === void 0 ? defaultProps.defaultData : _d, _e = props.valueField, valueField = _e === void 0 ? defaultProps.valueField : _e, _f = props.textField, textField = _f === void 0 ? defaultProps.textField : _f, onChange = props.onChange, onDataChange = props.onDataChange;\n var ChipComponent = React.useMemo(function () { return chip || Chip; }, [chip, Chip]);\n React.useImperativeHandle(target, function () { return ({\n element: chipListRef.current,\n props: props\n }); });\n React.useImperativeHandle(ref, function () { return target.current; });\n var handleChange = React.useCallback(function (newValue, event) {\n if (onChange && target.current) {\n onChange.call(undefined, {\n value: newValue,\n target: target.current,\n syntheticEvent: event\n });\n }\n }, [onChange]);\n var _g = useSelection(value, {\n selection: selection,\n state: value\n }, handleChange), stateValue = _g[0], dispatchStateValue = _g[1];\n var handleDataChange = React.useCallback(function (newData, event) {\n if (onDataChange && target.current) {\n onDataChange.call(undefined, {\n value: newData,\n target: target.current,\n syntheticEvent: event\n });\n }\n }, [onDataChange]);\n var _h = useData(props.data || defaultData, {\n state: props.data,\n valueField: valueField\n }, handleDataChange), stateData = _h[0], dispatchData = _h[1];\n var itemsReducer = React.useCallback(function (acc, current) {\n acc.push(current[valueField]);\n return acc;\n }, [valueField]);\n var data = React.useMemo(function () { return props.data || stateData; }, [props.data, stateData]);\n var chipValue = React.useMemo(function () { return value || stateValue; }, [value, stateValue]);\n var items = React.useMemo(function () { return data.reduce(itemsReducer, []); }, [data, itemsReducer]);\n var valueGetter = React.useCallback(function (item) { return getter(valueField)(item); }, [valueField]);\n var textGetter = React.useCallback(function (item) { return getter(textField)(item); }, [textField]);\n var _j = useFocus({ items: items }), focus = _j[0], dispatchFocus = _j[1];\n var mouseProps = useMouse(props, target);\n return (React.createElement(ChipListSelectionContext.Provider, { value: [chipValue, dispatchStateValue] },\n React.createElement(ChipListFocusContext.Provider, { value: [focus, dispatchFocus] },\n React.createElement(ChipListDataContext.Provider, { value: [data, dispatchData] },\n React.createElement(\"div\", __assign({ ref: chipListRef }, mouseProps, { role: 'listbox', id: id, dir: dir, style: style, tabIndex: getTabIndex(tabIndex, disabled, undefined), className: classNames('k-chip-list', (_a = {\n 'k-rtl': dir === 'rtl',\n 'k-disabled': disabled\n },\n _a[\"k-chip-list-\".concat(kendoThemeMaps.sizeMap[size] || size)] = size,\n _a), className), \"aria-labelledby\": ariaLabelledBy, \"aria-describedby\": ariaDescribedBy }), data.map(function (item, index) {\n return (React.createElement(ChipComponent, { role: 'option', dataItem: item, size: size, key: [valueGetter(item), index].join('-'), text: textGetter(item), value: valueGetter(item), ariaLabel: item.ariaLabel, svgIcon: item.svgIcon || undefined }));\n }))))));\n});\nvar propTypes = {\n id: PropTypes.string,\n className: PropTypes.string,\n tabIndex: PropTypes.number,\n data: PropTypes.any,\n defaultData: PropTypes.arrayOf(PropTypes.any),\n onDataChange: PropTypes.func,\n value: PropTypes.oneOfType([PropTypes.any, PropTypes.arrayOf(PropTypes.any)]),\n defaultValue: PropTypes.oneOfType([PropTypes.any, PropTypes.arrayOf(PropTypes.any)]),\n onChange: PropTypes.func,\n selection: PropTypes.oneOf(['single', 'none', 'multiple']),\n textField: PropTypes.string,\n valueField: PropTypes.string,\n disabled: PropTypes.bool,\n dir: PropTypes.oneOf(['ltr', 'rtl']),\n ariaLabelledBy: PropTypes.string,\n ariaDescribedBy: PropTypes.string,\n size: PropTypes.oneOf([null, 'small', 'medium', 'large'])\n};\nvar defaultProps = {\n chip: Chip,\n size: 'medium',\n disabled: false,\n defaultValue: null,\n defaultData: [],\n dir: 'ltr',\n selection: 'none',\n textField: 'text',\n valueField: 'value',\n removable: 'removable'\n};\nChipList.displayName = 'KendoReactChipList';\n// TODO: delete casting when @types/react is updated!\nChipList.propTypes = propTypes;\nChipList.defaultProps = defaultProps;\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { ChipListSelectionContext, ChipListFocusContext, ChipListDataContext } from './ChipList';\nimport { classNames, useDir, getTabIndex, Keys, IconWrap, kendoThemeMaps, toIconName, svgIconPropType } from '@progress/kendo-react-common';\nimport { xCircleIcon } from '@progress/kendo-svg-icons';\nimport { FOCUS_ACTION } from './focus-reducer';\nimport { CHIP_DATA_ACTION } from './data-reducer';\nimport { SELECTION_ACTION } from './selection-reducer';\nimport { validatePackage } from '@progress/kendo-react-common';\nimport { packageMetadata } from '../package-metadata';\nimport { useMouse } from '@progress/kendo-react-common';\n/**\n * Represents the Chip component.\n */\nexport var Chip = React.forwardRef(function (props, ref) {\n var _a;\n validatePackage(packageMetadata);\n var target = React.useRef(null);\n var chipRef = React.useRef(null);\n var dir = useDir(chipRef, props.dir);\n React.useImperativeHandle(target, function () { return ({\n element: chipRef.current,\n props: props\n }); });\n React.useImperativeHandle(ref, function () { return target.current; });\n var _b = React.useContext(ChipListSelectionContext), selection = _b[0], dispatchSelection = _b[1];\n var _c = React.useContext(ChipListFocusContext), focus = _c[0], dispatchFocus = _c[1];\n var _d = React.useContext(ChipListDataContext), dispatchData = _d[1];\n var selected = React.useMemo(function () {\n return (props.selected || (Array.isArray(selection)\n ? selection.some(function (i) { return i === props.value; })\n : selection === props.value));\n }, [props.selected, props.value, selection]);\n var focused = React.useMemo(function () { return focus === props.value; }, [props.value, focus]);\n React.useEffect(function () {\n if (focused && chipRef.current) {\n chipRef.current.focus();\n }\n }, [focused]);\n var handleClick = React.useCallback(function (event) {\n dispatchSelection({ type: SELECTION_ACTION.toggle, payload: props.value, event: event });\n }, [dispatchSelection, props.value]);\n var handleRemove = React.useCallback(function (event) {\n if (!props.removable) {\n return;\n }\n dispatchData({ type: CHIP_DATA_ACTION.remove, payload: props.value, event: event });\n dispatchFocus({ type: FOCUS_ACTION.reset, payload: props.value, event: event });\n dispatchSelection({ type: SELECTION_ACTION.remove, payload: props.value, event: event });\n if (props.onRemove) {\n props.onRemove.call(undefined, {\n target: target.current,\n syntheticEvent: event\n });\n }\n }, [props.onRemove, props.value, props.removable, dispatchData, dispatchFocus, dispatchSelection]);\n var handleKeyDown = React.useCallback(function (event) {\n switch (event.keyCode) {\n case Keys.left:\n dispatchFocus({ type: FOCUS_ACTION.prev, payload: props.value, event: event });\n break;\n case Keys.right:\n dispatchFocus({ type: FOCUS_ACTION.next, payload: props.value, event: event });\n break;\n case Keys.enter:\n dispatchSelection({ type: SELECTION_ACTION.toggle, payload: props.value, event: event });\n break;\n case Keys.delete:\n handleRemove(event);\n break;\n default:\n break;\n }\n if (props.onKeyDown) {\n props.onKeyDown.call(undefined, {\n target: target.current,\n syntheticEvent: event\n });\n }\n }, [props.onKeyDown, props.value, dispatchFocus, dispatchSelection, handleRemove]);\n var handleFocus = React.useCallback(function (event) {\n dispatchFocus({ payload: props.value, type: FOCUS_ACTION.current, event: event });\n if (props.onFocus) {\n props.onFocus.call(undefined, {\n target: target.current,\n syntheticEvent: event\n });\n }\n }, [props.onFocus, props.value, dispatchFocus]);\n var handleBlur = React.useCallback(function (event) {\n if (props.onBlur) {\n props.onBlur.call(undefined, {\n target: target.current,\n syntheticEvent: event\n });\n }\n }, [props.onBlur]);\n var mouseProps = useMouse(props, target, { onClick: handleClick });\n return (React.createElement(\"div\", __assign({}, mouseProps, { role: props.role, id: props.value, style: props.style, ref: chipRef, dir: dir, tabIndex: getTabIndex(props.tabIndex, props.disabled, undefined), className: classNames('k-chip', (_a = {\n 'k-rtl': dir === 'rtl',\n 'k-disabled': props.disabled,\n 'k-selected': selected,\n 'k-focus': focused\n },\n _a[\"k-chip-\".concat(kendoThemeMaps.sizeMap[props.size] || props.size)] = props.size,\n _a[\"k-rounded-\".concat(kendoThemeMaps.roundedMap[props.rounded] || props.rounded)] = props.rounded,\n _a[\"k-chip-\".concat(props.fillMode)] = props.fillMode,\n _a[\"k-chip-\".concat(props.fillMode, \"-\").concat(props.themeColor)] = Boolean(props.fillMode && props.themeColor),\n _a), props.className), \"aria-checked\": selected, \"aria-disabled\": props.disabled, \"aria-describedby\": props.ariaDescribedBy, onFocus: handleFocus, onBlur: handleBlur, onKeyDown: handleKeyDown }),\n (selected && (props.selectedIcon || props.selectedSvgIcon)) &&\n React.createElement(IconWrap, { className: 'k-chip-icon', name: props.selectedIcon ? toIconName(props.selectedIcon) : undefined, icon: props.selectedSvgIcon, size: 'small' }),\n (props.icon || props.svgIcon) &&\n React.createElement(IconWrap, { className: 'k-chip-icon', name: props.icon ? toIconName(props.icon) : undefined, icon: props.svgIcon, size: 'small' }),\n (props.avatar) &&\n React.createElement(\"div\", { className: \"k-chip-avatar k-avatar k-rounded-\".concat(props.avatar.rounded, \" k-avatar-md k-avatar-solid k-avatar-solid-primary\"), style: props.avatar.style },\n React.createElement(\"span\", { className: \"k-avatar-image\" },\n React.createElement(\"img\", { src: props.avatar.image, alt: props.avatar.imageAlt }))),\n React.createElement(\"span\", { className: 'k-chip-content' }, props.children !== undefined\n ? props.children\n : props.text &&\n React.createElement(\"span\", { \"aria-label\": props.ariaLabel || props.text, className: 'k-chip-label' }, props.text)),\n props.removable && (React.createElement(\"span\", { className: \"k-chip-actions\" },\n React.createElement(\"span\", { className: classNames('k-chip-action', 'k-chip-remove-action'), onClick: handleRemove },\n React.createElement(IconWrap, { name: props.removeIcon ? toIconName(props.removeIcon) : undefined, icon: props.removeSvgIcon || xCircleIcon, size: 'small' }))))));\n});\nvar propTypes = {\n id: PropTypes.string,\n text: PropTypes.string,\n value: PropTypes.any,\n dir: PropTypes.oneOf(['ltr', 'rtl']),\n removable: PropTypes.bool,\n removeIcon: PropTypes.string,\n removeIconSvg: svgIconPropType,\n disabled: PropTypes.bool,\n icon: PropTypes.string,\n svgIcon: svgIconPropType,\n selectedIcon: PropTypes.string,\n selectedIconSvg: svgIconPropType,\n onRemove: PropTypes.func,\n dataItem: PropTypes.any,\n selected: PropTypes.bool,\n ariaDescribedBy: PropTypes.string,\n size: PropTypes.oneOf([null, 'small', 'medium', 'large']),\n rounded: PropTypes.oneOf([null, 'small', 'medium', 'large', 'full']),\n fillMode: PropTypes.oneOf([null, 'outline', 'solid']),\n // eslint-disable-next-line max-len\n themeColor: PropTypes.oneOf([null, 'base', 'info', 'success', 'warning', 'error'])\n};\nvar defaultProps = {\n disabled: false,\n removable: false,\n removeIcon: 'k-i-x-circle',\n dir: 'ltr',\n size: 'medium',\n rounded: 'medium',\n fillMode: 'solid',\n themeColor: 'base'\n};\nChip.displayName = 'KendoReactChip';\n// TODO: delete casting when @types/react is updated!\nChip.propTypes = propTypes;\nChip.defaultProps = defaultProps;\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport { Chip } from '@progress/kendo-react-buttons';\nvar preventDefault = function (event) { return event.syntheticEvent.preventDefault(); };\nvar stopPropagation = function (event) { return event.syntheticEvent.stopPropagation(); };\n/**\n * @hidden\n */\nvar TagList = /** @class */ (function (_super) {\n __extends(TagList, _super);\n function TagList() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n TagList.prototype.render = function () {\n var _a = this.props, data = _a.data, guid = _a.guid, focused = _a.focused, tagRender = _a.tagRender, TagComponent = _a.tag, onTagDelete = _a.onTagDelete, size = _a.size;\n return (React.createElement(React.Fragment, null,\n data.map(function (tagData, index) {\n var tag = TagComponent ? (React.createElement(TagComponent, { key: tagData.text + index, tagData: tagData, guid: guid, focusedTag: focused, onTagDelete: onTagDelete })) : (React.createElement(Chip, { id: \"tag-\".concat(guid, \"-\").concat(tagData.text.replace(/\\s+/g, '-')), \"aria-selected\": true, role: \"option\", \"aria-setsize\": data.length, key: tagData.text + index, text: tagData.text, removable: true, onRemove: function (e) { return onTagDelete.call(undefined, tagData.data, e.syntheticEvent); }, onMouseDown: preventDefault, onClick: stopPropagation, className: tagData === focused ? 'k-focus' : undefined, size: size }));\n return tagRender ? tagRender(tagData, tag) : tag;\n }),\n this.props.children));\n };\n return TagList;\n}(React.Component));\nexport default TagList;\n","/**\n * @hidden\n */\nexport var ActiveDescendant;\n(function (ActiveDescendant) {\n ActiveDescendant[ActiveDescendant[\"PopupList\"] = 0] = \"PopupList\";\n ActiveDescendant[ActiveDescendant[\"TagsList\"] = 1] = \"TagsList\";\n})(ActiveDescendant || (ActiveDescendant = {}));\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport * as React from 'react';\nimport { ActionSheet, ActionSheetFooter, ActionSheetHeader } from '@progress/kendo-react-layout';\nimport { xIcon } from '@progress/kendo-svg-icons';\nimport { Button } from '@progress/kendo-react-buttons';\n/** @hidden */\nvar MOBILE_SMALL_DEVISE = 500;\n/** @hidden */\nexport var AdaptiveMode = function (props) {\n var footer = props.footer, children = props.children, _a = props.windowWidth, windowWidth = _a === void 0 ? 0 : _a, navigatable = props.navigatable, navigatableElements = props.navigatableElements, expand = props.expand, animation = props.animation, onClose = props.onClose, adaptiveTitle = props.adaptiveTitle, mobileFilter = props.mobileFilter;\n var defaultProps = {\n navigatable: navigatable || false,\n navigatableElements: navigatableElements || [],\n expand: expand,\n animation: animation === false ? false : true,\n onClose: onClose,\n animationStyles: windowWidth <= MOBILE_SMALL_DEVISE ? { top: 0, width: '100%', height: '100%' } : undefined,\n className: windowWidth <= MOBILE_SMALL_DEVISE\n ? 'k-adaptive-actionsheet k-actionsheet-fullscreen'\n : 'k-adaptive-actionsheet k-actionsheet-bottom'\n };\n return (React.createElement(ActionSheet, __assign({}, defaultProps),\n React.createElement(ActionSheetHeader, { className: 'k-text-center' },\n React.createElement(\"div\", { className: \"k-actionsheet-titlebar-group k-hbox\" },\n React.createElement(\"div\", { className: \"k-actionsheet-title\" },\n React.createElement(\"div\", null, adaptiveTitle)),\n React.createElement(\"div\", { className: \"k-actionsheet-actions\" },\n React.createElement(Button, { tabIndex: 0, \"aria-label\": \"Cancel\", \"aria-disabled\": \"false\", type: \"button\", fillMode: \"flat\", icon: 'x', svgIcon: xIcon, onClick: onClose }))),\n mobileFilter &&\n React.createElement(\"div\", { className: \"k-actionsheet-titlebar-group k-actionsheet-filter\" }, mobileFilter)),\n children,\n footer && React.createElement(ActionSheetFooter, { className: 'k-actions k-actions-stretched' },\n React.createElement(Button, { size: \"large\", tabIndex: 0, \"aria-label\": footer.cancelText, \"aria-disabled\": \"false\", type: \"button\", onClick: footer.onCancel }, footer.cancelText),\n React.createElement(Button, { tabIndex: 0, themeColor: \"primary\", size: \"large\", \"aria-label\": footer.applyText, \"aria-disabled\": \"false\", type: \"button\", onClick: footer.onApply }, footer.applyText))));\n};\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { classNames, Keys, guid, createPropsContext, kendoThemeMaps, withPropsContext, IconWrap, canUseDOM } from '@progress/kendo-react-common';\nimport { plusIcon } from '@progress/kendo-svg-icons';\nimport { FloatingLabel } from '@progress/kendo-react-labels';\nimport ListContainer from '../common/ListContainer';\nimport List from '../common/List';\nimport GroupStickyHeader from '../common/GroupStickyHeader';\nimport TagList from './TagList';\nimport SearchBar from '../common/SearchBar';\nimport DropDownBase from '../common/DropDownBase';\nimport { ActiveDescendant } from './../common/settings';\nimport { itemIndexStartsWith, getItemValue, areSame, removeDataItems, isPresent, preventDefaultNonInputs, matchTags } from '../common/utils';\nimport { validatePackage } from '@progress/kendo-react-common';\nimport { packageMetadata } from '../package-metadata';\nimport ClearButton from '../common/ClearButton';\nimport { AdaptiveMode } from '../common/AdaptiveMode';\nimport { ActionSheetContent } from '@progress/kendo-react-layout';\nimport { MOBILE_MEDIUM_DEVISE } from '../common/constants';\nimport { provideLocalizationService } from '@progress/kendo-react-intl';\nimport { adaptiveModeFooterApply, adaptiveModeFooterCancel, messages } from '../messages';\nimport ListFilter from '../common/ListFilter';\nvar sizeMap = kendoThemeMaps.sizeMap, roundedMap = kendoThemeMaps.roundedMap;\nvar VALIDATION_MESSAGE = 'Please enter a valid value!';\nvar preventDefault = function (event) { return event.preventDefault(); };\nvar isCustom = function (type) { return type === FocusedItemType.CustomItem; };\nvar FocusedItemType;\n(function (FocusedItemType) {\n FocusedItemType[FocusedItemType[\"None\"] = 0] = \"None\";\n FocusedItemType[FocusedItemType[\"ListItem\"] = 1] = \"ListItem\";\n FocusedItemType[FocusedItemType[\"CustomItem\"] = 2] = \"CustomItem\";\n})(FocusedItemType || (FocusedItemType = {}));\n/** @hidden */\nvar MultiSelectWithoutContext = /** @class */ (function (_super) {\n __extends(MultiSelectWithoutContext, _super);\n function MultiSelectWithoutContext(props) {\n var _this = _super.call(this, props) || this;\n /** @hidden */\n _this.state = {\n activedescendant: ActiveDescendant.PopupList,\n currentValue: []\n };\n _this._element = null;\n _this._valueItemsDuringOnChange = null;\n _this._inputId = guid();\n _this.base = new DropDownBase(_this);\n _this._tags = [];\n _this._input = null;\n _this._adaptiveInput = null;\n _this._skipFocusEvent = false;\n _this._lastSelectedOrDeslectedItemIndex = null; // Needed for handling the Shift + Up/Down Keyboard Navigation requirement\n _this.itemHeight = 0;\n _this.scrollToFocused = false;\n _this.localization = null;\n /** @hidden */\n _this.focus = function () {\n if (_this._input) {\n _this._input.focus();\n }\n };\n /** @hidden */\n _this.handleItemSelect = function (index, state) {\n var _a = _this.props, _b = _a.data, data = _b === void 0 ? [] : _b, dataItemKey = _a.dataItemKey, virtual = _a.virtual;\n var skip = virtual ? virtual.skip : 0;\n var dataItem = data[index - skip];\n var indexInValue = _this.value.findIndex(function (i) { return areSame(i, dataItem, dataItemKey); });\n _this._lastSelectedOrDeslectedItemIndex = data.findIndex(function (i) { return areSame(i, dataItem, dataItemKey); });\n var newItems = [];\n if (indexInValue !== -1) { // item is already selected\n newItems = _this.value;\n newItems.splice(indexInValue, 1);\n }\n else {\n newItems = __spreadArray(__spreadArray([], _this.value, true), [dataItem], false);\n }\n var text = _this.props.filter !== undefined ? _this.props.filter : _this.state.text;\n if (text && !_this.mobileMode) {\n if (_this.state.text) {\n state.data.text = '';\n }\n _this.base.filterChanged('', state);\n }\n if (_this._adaptiveInput) {\n _this._adaptiveInput.blur();\n }\n ;\n if (_this.state.focusedIndex !== undefined) {\n state.data.focusedIndex = undefined;\n }\n _this.triggerOnChange(newItems, state);\n _this.base.triggerPageChangeCornerItems(dataItem, state);\n };\n /** @hidden */\n _this.onTagDelete = function (itemsToRemove, event) {\n var state = _this.base.initState();\n state.syntheticEvent = event;\n if (_this.opened) {\n _this.base.togglePopup(state);\n }\n if (!_this.state.focused && !_this.mobileMode) {\n state.data.focused = true;\n _this.focus();\n }\n var selected = _this.value;\n removeDataItems(selected, itemsToRemove, _this.props.dataItemKey);\n _this.triggerOnChange(selected, state);\n _this.applyState(state);\n };\n /** @hidden */\n _this.itemFocus = function (index, state) {\n var _a = _this.props, _b = _a.data, data = _b === void 0 ? [] : _b, allowCustom = _a.allowCustom, virtual = _a.virtual;\n var skip = virtual ? virtual.skip : 0;\n var text = _this.props.filter !== undefined ? _this.props.filter : _this.state.text;\n var focusedIndex = _this.getFocusedState().focusedIndex;\n var customItem = allowCustom && text;\n var nextFocusedItem = data[index - skip];\n if (nextFocusedItem && focusedIndex !== index) {\n if (_this.state.focusedIndex !== index) {\n state.data.focusedIndex = index;\n state.data.activedescendant = ActiveDescendant.PopupList;\n }\n }\n else if (customItem && index === -1) {\n if (_this.state.focusedIndex !== undefined) {\n state.data.focusedIndex = undefined;\n }\n }\n _this.base.triggerPageChangeCornerItems(nextFocusedItem, state);\n };\n _this.componentRef = function (element) {\n _this._element = element;\n _this.base.wrapper = element;\n };\n _this.searchbarRef = function (searchbar) {\n var input = _this._input = searchbar && searchbar.input;\n if (input && _this.state.focused) {\n window.setTimeout(function () { return input.focus(); }, 0);\n }\n };\n _this.onChangeHandler = function (event) {\n var state = _this.base.initState();\n var value = event.target.value;\n state.syntheticEvent = event;\n if (_this.props.filter === undefined) {\n state.data.text = value;\n }\n state.data.focusedIndex = undefined;\n if (!_this.opened) {\n _this.base.togglePopup(state);\n _this.setState({ currentValue: _this.value });\n }\n _this.base.filterChanged(value, state);\n _this.applyState(state);\n _this.setState({ group: undefined });\n };\n _this.clearButtonClick = function (event) {\n var state = _this.base.initState();\n state.syntheticEvent = event;\n event.stopPropagation();\n if (_this.value.length > 0) {\n _this.triggerOnChange([], state);\n }\n if (_this.state.focusedIndex !== undefined) {\n state.data.focusedIndex = undefined;\n }\n if (_this.opened) {\n _this.base.togglePopup(state);\n }\n var text = _this.props.filter !== undefined ? _this.props.filter : _this.state.text;\n if (isPresent(text) && text !== '') {\n _this.base.filterChanged('', state);\n }\n if (_this.state.text) {\n state.data.text = '';\n }\n _this._lastSelectedOrDeslectedItemIndex = null; // Resets the last selected/deselected item according to the Keyboard navigation requirements\n _this.applyState(state);\n };\n _this.onInputKeyDown = function (event) {\n var _a = _this.props, _b = _a.data, data = _b === void 0 ? [] : _b, textField = _a.textField, groupField = _a.groupField;\n var keyCode = event.keyCode;\n var text = _this.props.filter !== undefined ? _this.props.filter : _this.state.text;\n var opened = _this.props.opened !== undefined ? _this.props.opened : _this.state.opened;\n var _c = _this.getFocusedState(), focusedItem = _c.focusedItem, focusedIndex = _c.focusedIndex;\n var state = _this.base.initState();\n state.syntheticEvent = event;\n if (!text && _this.value.length > 0 &&\n (keyCode === Keys.left || keyCode === Keys.right ||\n keyCode === Keys.home || keyCode === Keys.end ||\n keyCode === Keys.delete || keyCode === Keys.backspace) && !event.shiftKey) {\n return _this.onTagsNavigate(event, state);\n }\n var togglePopup = function () {\n event.preventDefault();\n _this.base.togglePopup(state);\n _this.applyState(state);\n };\n if (_this.opened) {\n if (keyCode === Keys.pageUp) {\n _this.base.scrollPopupByPageSize(-1);\n }\n else if (keyCode === Keys.pageDown) {\n _this.base.scrollPopupByPageSize(1);\n }\n else if ((event.ctrlKey || event.metaKey) && event.code === 'KeyA') {\n // Ctrl or Command + \"A\" Key selects/deselects all items\n var currentValuesLength = _this.state.value && _this.state.value.length;\n var dataToSet = currentValuesLength === data.length ? [] : data;\n _this.updateStateOnKeyboardNavigation(dataToSet, state);\n }\n else if ((event.ctrlKey || event.metaKey) && event.shiftKey && event.keyCode === Keys.end) {\n // Ctrl or Command + Shift + End from the Keyboard specifications\n var dataToSet = data.slice(_this.getFocusedState().focusedIndex);\n _this.itemFocus(data.length - 1, state);\n _this.updateStateOnKeyboardNavigation(dataToSet, state);\n }\n else if ((event.ctrlKey || event.metaKey) && event.shiftKey && event.keyCode === Keys.home) {\n // Ctrl or Command + Shift + Home from the Keyboard specifications\n var dataToSet = data.slice(0, _this.getFocusedState().focusedIndex + 1);\n _this.itemFocus(0, state);\n _this.updateStateOnKeyboardNavigation(dataToSet, state);\n }\n else if (event.shiftKey && event.keyCode === Keys.up) {\n // Shift + Up from the Keyboard specifications\n var dataToSet = void 0;\n var lastSelectedOrDeselectedIndex = _this.getLastSelectedOrDeselectedIndex(1, focusedIndex);\n if (lastSelectedOrDeselectedIndex === null) {\n dataToSet = focusedIndex !== 0 ? data.slice(focusedIndex - 1, focusedIndex) : [data[focusedIndex]];\n }\n else if (lastSelectedOrDeselectedIndex === focusedIndex) {\n dataToSet = [data[lastSelectedOrDeselectedIndex - 1]];\n }\n else if (focusedIndex >= 0) {\n dataToSet = lastSelectedOrDeselectedIndex > focusedIndex\n ? data.slice(focusedIndex - 1, lastSelectedOrDeselectedIndex)\n : data.slice(lastSelectedOrDeselectedIndex - 1, focusedIndex);\n }\n if (dataToSet && dataToSet.length > 0) {\n if (focusedIndex >= 1) {\n _this.itemFocus(focusedIndex - 1, state);\n }\n _this.updateStateOnKeyboardNavigation(dataToSet, state);\n }\n }\n else if (event.shiftKey && event.keyCode === Keys.down) {\n // Shift + Down from the Keyboard specifications\n var dataToSet = void 0;\n var lastSelectedOrDeselectedIndex = _this.getLastSelectedOrDeselectedIndex(0, focusedIndex);\n if (lastSelectedOrDeselectedIndex === null) {\n dataToSet = focusedIndex !== data.length - 1 ? data.slice(focusedIndex, focusedIndex + 1) : [data[focusedIndex]];\n }\n else if (lastSelectedOrDeselectedIndex === focusedIndex) {\n dataToSet = data.slice(focusedIndex, focusedIndex + 2);\n }\n else if (focusedIndex >= 0) {\n // dataToSet = data.slice(focusedIndex, lastSelectedOrDeselectedIndex);\n dataToSet = lastSelectedOrDeselectedIndex > focusedIndex\n ? data.slice(focusedIndex + 1, lastSelectedOrDeselectedIndex + 1)\n : data.slice(lastSelectedOrDeselectedIndex, focusedIndex + 2);\n }\n if (dataToSet && dataToSet.length >= 1) {\n _this.itemFocus(focusedIndex + 1, state);\n _this.updateStateOnKeyboardNavigation(dataToSet, state);\n }\n }\n else if (event.altKey && keyCode === Keys.up) {\n togglePopup();\n }\n else if (keyCode === Keys.up || keyCode === Keys.down) {\n if (groupField !== '' && textField) {\n if (!_this.props.skipDisabledItems && opened) {\n _this.onNavigate(state, keyCode);\n }\n else {\n var newIndex = 0;\n if (keyCode === Keys.down || keyCode === Keys.right) {\n var tempnewIndex_1 = data.slice(focusedIndex + 1).find(function (i) { return !i.disabled && i[textField]; });\n newIndex = tempnewIndex_1 && data.findIndex(function (el) { return el[textField] === tempnewIndex_1[textField]; });\n }\n else if (keyCode === Keys.up || keyCode === Keys.left) {\n var dataToSearch = void 0;\n if (focusedIndex === -1) {\n dataToSearch = data;\n newIndex = data.findIndex(function (i) { return !i.disabled && i[textField]; });\n }\n else {\n dataToSearch = data.slice(0, focusedIndex);\n var tempnewIndex_2 = dataToSearch.pop();\n while (tempnewIndex_2 && tempnewIndex_2.disabled) {\n tempnewIndex_2 = dataToSearch.pop();\n }\n newIndex = tempnewIndex_2 && data.findIndex(function (el) { return el[textField] === tempnewIndex_2[textField]; });\n }\n }\n if (newIndex) {\n var skipItems = newIndex - focusedIndex;\n _this.onNavigate(state, keyCode, skipItems);\n }\n else if (newIndex !== undefined) {\n _this.onNavigate(state, keyCode);\n }\n }\n }\n else if (!_this.props.skipDisabledItems && opened) {\n _this.onNavigate(state, keyCode);\n }\n else {\n var newIndex = null;\n if (keyCode === Keys.down || keyCode === Keys.right) {\n newIndex = data.slice(focusedIndex + 1).find(function (i) { return !i.disabled; });\n }\n else if (keyCode === Keys.up || keyCode === Keys.left) {\n var dataTest = data.slice(0, focusedIndex);\n newIndex = dataTest.pop();\n while (newIndex && newIndex.disabled) {\n newIndex = dataTest.pop();\n }\n }\n if (newIndex) {\n var skipItems = newIndex.id - focusedIndex - 1;\n _this.onNavigate(state, keyCode, skipItems);\n }\n else {\n _this.onNavigate(state, keyCode);\n }\n }\n _this.applyState(state);\n event.preventDefault();\n }\n else if (keyCode === Keys.enter) {\n event.preventDefault();\n if (_this.props.allowCustom && text && focusedItem === null) {\n _this.customItemSelect(event);\n }\n else if (focusedItem && focusedItem.disabled) {\n togglePopup();\n }\n else {\n _this.selectFocusedItem(event);\n }\n }\n else if (keyCode === Keys.esc) {\n togglePopup();\n }\n }\n else if (event.altKey && keyCode === Keys.down) {\n togglePopup();\n }\n };\n _this.listContainerContent = function () {\n var _a, _b;\n var _c = _this.props, header = _c.header, footer = _c.footer, allowCustom = _c.allowCustom, size = _c.size, _d = _c.data, data = _d === void 0 ? [] : _d, groupStickyHeaderItemRender = _c.groupStickyHeaderItemRender, groupField = _c.groupField, list = _c.list;\n var text = _this.props.filter !== undefined ? _this.props.filter : _this.state.text;\n var focusedType = _this.getFocusedState().focusedType;\n var customItem = allowCustom && text && (React.createElement(\"div\", { className: classNames('k-list', (_a = {},\n _a[\"k-list-\".concat(sizeMap[size] || size)] = size,\n _a)), key: \"customitem\", onClick: _this.customItemSelect, onMouseDown: preventDefault },\n React.createElement(\"div\", { className: classNames('k-list-item k-custom-item', { 'k-focus': isCustom(focusedType) }), style: { fontStyle: 'italic' } },\n text,\n React.createElement(IconWrap, { name: 'plus', icon: plusIcon, style: { position: 'absolute', right: '0.5em' } }))));\n var group = _this.state.group;\n if (group === undefined && groupField !== undefined) {\n group = getItemValue(data[0], groupField);\n }\n return (React.createElement(React.Fragment, null,\n header && React.createElement(\"div\", { className: \"k-list-header\" }, header),\n customItem,\n React.createElement(\"div\", { className: classNames('k-list', (_b = {},\n _b[\"k-list-\".concat(_this.mobileMode ? 'lg' : sizeMap[size] || size)] = size,\n _b['k-virtual-list'] = _this.base.vs.enabled,\n _b)) },\n !list && group && data.length !== 0 && React.createElement(GroupStickyHeader, { group: group, groupMode: 'modern', render: groupStickyHeaderItemRender }),\n _this.renderList()),\n footer && React.createElement(\"div\", { className: \"k-list-footer\" }, footer)));\n };\n _this.renderListContainer = function () {\n var base = _this.base;\n var _a = _this.props, dir = _a.dir, _b = _a.data, data = _b === void 0 ? [] : _b;\n var popupSettings = _this.base.getPopupSettings();\n var popupWidth = popupSettings.width !== undefined ? popupSettings.width : base.popupWidth;\n var listContainerProps = {\n dir: dir !== undefined ? dir : base.dirCalculated,\n width: popupWidth,\n popupSettings: {\n popupClass: classNames(popupSettings.popupClass, 'k-list-container', 'k-multiselect-popup'),\n className: popupSettings.className,\n animate: popupSettings.animate,\n anchor: _this.element,\n show: _this.opened,\n onOpen: _this.onPopupOpened,\n onClose: _this.onPopupClosed,\n appendTo: popupSettings.appendTo\n },\n itemsCount: [data.length, _this.value.length]\n };\n return (React.createElement(ListContainer, __assign({}, listContainerProps), _this.listContainerContent()));\n };\n _this.renderAdaptiveListContainer = function () {\n var _a = _this.props, adaptiveTitle = _a.adaptiveTitle, filterable = _a.filterable, filter = _a.filter;\n var _b = _this.state.windowWidth, windowWidth = _b === void 0 ? 0 : _b;\n var mobileText = filter !== undefined ? filter : _this.state.text;\n _this.localization = provideLocalizationService(_this);\n var mobileFilter = filterable ? (React.createElement(ListFilter, { value: mobileText, ref: function (adaptiveFilter) { return _this._adaptiveInput = adaptiveFilter && adaptiveFilter.element; }, onChange: _this.onChangeHandler, onKeyDown: _this.onInputKeyDown, size: _this.props.size, rounded: _this.props.rounded, fillMode: _this.props.fillMode })) : null;\n var actionSheetProps = {\n adaptiveTitle: adaptiveTitle,\n expand: _this.opened,\n onClose: function (event) { return _this.onCancel(event); },\n windowWidth: windowWidth,\n mobileFilter: mobileFilter,\n footer: {\n cancelText: _this.localization.toLanguageString(adaptiveModeFooterCancel, messages[adaptiveModeFooterCancel]),\n onCancel: _this.onCancel,\n applyText: _this.localization.toLanguageString(adaptiveModeFooterApply, messages[adaptiveModeFooterApply]),\n onApply: _this.closePopup\n }\n };\n return (React.createElement(AdaptiveMode, __assign({}, actionSheetProps),\n React.createElement(ActionSheetContent, { className: '!k-overflow-hidden' },\n React.createElement(\"div\", { className: 'k-list-container' }, _this.listContainerContent()))));\n };\n _this.closePopup = function (event) {\n var state = _this.base.initState();\n state.syntheticEvent = event;\n event.stopPropagation();\n if (_this.state.focusedIndex !== undefined) {\n state.data.focusedIndex = undefined;\n }\n if (_this.opened) {\n _this.base.togglePopup(state);\n }\n state.events.push({ type: 'onClose' });\n var text = _this.props.filter !== undefined ? _this.props.filter : _this.state.text;\n if (isPresent(text) && text !== '') {\n _this.base.filterChanged('', state);\n }\n if (_this.state.text) {\n state.data.text = '';\n }\n _this.applyState(state);\n };\n _this.onCancel = function (event) {\n var state = _this.base.initState();\n state.syntheticEvent = event;\n event.stopPropagation();\n if (_this.state.focusedIndex !== undefined) {\n state.data.focusedIndex = undefined;\n }\n if (_this.opened) {\n _this.base.togglePopup(state);\n }\n state.events.push({ type: 'onCancel' });\n var text = _this.props.filter !== undefined ? _this.props.filter : _this.state.text;\n if (isPresent(text) && text !== '') {\n _this.base.filterChanged('', state);\n }\n if (_this.state.text) {\n state.data.text = '';\n }\n _this.applyState(state);\n };\n _this.renderList = function () {\n var _a = _this.props, _b = _a.data, data = _b === void 0 ? [] : _b, textField = _a.textField, listNoDataRender = _a.listNoDataRender, itemRender = _a.itemRender, groupHeaderItemRender = _a.groupHeaderItemRender, dataItemKey = _a.dataItemKey, virtual = _a.virtual;\n var vs = _this.base.vs;\n var skip = virtual ? virtual.skip : 0;\n var focusedIndex = _this.getFocusedState().focusedIndex;\n var popupSettings = _this.base.getPopupSettings();\n var translate = \"translateY(\".concat(vs.translate, \"px)\");\n return (React.createElement(List, { id: _this.base.listBoxId, show: _this.opened, data: data.slice(), focusedIndex: focusedIndex - skip, value: _this.value, textField: textField, valueField: dataItemKey, optionsGuid: _this.base.guid, groupField: _this.props.groupField, groupMode: 'modern', listRef: function (list) { vs.list = _this.base.list = list; }, wrapperStyle: _this.mobileMode ? {} : { maxHeight: popupSettings.height }, wrapperCssClass: \"k-list-content\", listStyle: vs.enabled ? { transform: translate } : undefined, key: \"listKey\", skip: skip, onClick: _this.handleItemClick, itemRender: itemRender, groupHeaderItemRender: groupHeaderItemRender, noDataRender: listNoDataRender, onMouseDown: preventDefault, onBlur: _this.handleBlur, onScroll: _this.onScroll, wrapperRef: vs.scrollerRef, scroller: _this.base.renderScrollElement() }));\n };\n _this.onScroll = function (event) {\n var _a = _this.base, vs = _a.vs, list = _a.list;\n vs.scrollHandler(event);\n var groupField = _this.props.groupField;\n var _b = _this.props.data, data = _b === void 0 ? [] : _b;\n if (!groupField || !data.length) {\n return;\n }\n if (groupField) {\n var itemHeight = _this.itemHeight =\n _this.itemHeight || (vs.enabled ? vs.itemHeight : (list ? list.children[0].offsetHeight : 0));\n var target = event.target;\n var scrollTop = target.scrollTop - (vs.skip * itemHeight);\n data = _this.base.getGroupedDataModernMode(data, groupField);\n var group = data[0][groupField];\n for (var i = 1; i < data.length; i++) {\n if (itemHeight * i > scrollTop) {\n break;\n }\n if (data[i] && data[i][groupField]) {\n group = data[i][groupField];\n }\n }\n if (group !== _this.state.group) {\n _this.setState({\n group: group\n });\n }\n }\n };\n _this.customItemSelect = function (event) {\n var _a;\n var itemText = _this.props.filter !== undefined ? _this.props.filter : _this.state.text;\n var textField = _this.props.textField;\n if (!itemText) {\n return;\n }\n var state = _this.base.initState();\n state.syntheticEvent = event;\n var item = textField ? (_a = {}, _a[textField] = itemText, _a) : itemText;\n if (_this.state.text !== undefined) {\n state.data.text = '';\n }\n state.data.focusedIndex = undefined;\n _this.base.filterChanged('', state);\n var newItems = __spreadArray(__spreadArray([], _this.value, true), [item], false);\n _this.triggerOnChange(newItems, state);\n _this.base.togglePopup(state);\n _this.applyState(state);\n };\n _this.handleWrapperClick = function (event) {\n var input = _this._input;\n if (!_this.opened && input) {\n _this.focusElement(input);\n }\n var state = _this.base.initState();\n state.syntheticEvent = event;\n if (!_this.state.focused && !_this.mobileMode) {\n state.events.push({ type: 'onFocus' });\n state.data.focused = true;\n }\n if (_this.mobileMode) {\n _this.setState({ currentValue: _this.tagsToRender });\n if (_this.mobileMode) {\n window.setTimeout(function () { return _this._adaptiveInput && _this._adaptiveInput.focus(); }, 300);\n }\n }\n _this.base.togglePopup(state);\n _this.applyState(state);\n };\n _this.handleItemClick = function (index, event) {\n var state = _this.base.initState();\n state.syntheticEvent = event;\n _this.handleItemSelect(index, state);\n if (_this.props.autoClose && !_this.mobileMode) {\n _this.base.togglePopup(state);\n }\n event.stopPropagation();\n _this.applyState(state);\n };\n _this.handleBlur = function (event) {\n if (!_this.state.focused || _this._skipFocusEvent) {\n return;\n }\n var state = _this.base.initState();\n var _a = _this.props, allowCustom = _a.allowCustom, filterable = _a.filterable;\n state.syntheticEvent = event;\n state.data.focused = false;\n state.events.push({ type: 'onBlur' });\n if (_this.opened && !_this.mobileMode) {\n if (_this.state.opened) {\n state.data.opened = false;\n }\n state.events.push({ type: 'onClose' });\n }\n if (!allowCustom && !filterable && _this.state.text) {\n state.data.text = '';\n }\n _this.applyState(state);\n };\n _this.handleFocus = function (event) {\n if (_this._skipFocusEvent) {\n return;\n }\n _this.base.handleFocus(event);\n };\n _this.onPopupOpened = function () {\n if (_this._input && _this.state.focused && !_this.mobileMode) {\n _this.focusElement(_this._input);\n }\n };\n _this.onPopupClosed = function () {\n if (_this.state.focused) {\n window.setTimeout(function () { if (_this.state.focused) {\n _this.focusElement(_this._input);\n } }, 0);\n }\n };\n _this.setValidity = function () {\n if (_this._input && _this._input.setCustomValidity) {\n _this._input.setCustomValidity(_this.validity.valid\n ? ''\n : _this.props.validationMessage || VALIDATION_MESSAGE);\n }\n };\n validatePackage(packageMetadata);\n return _this;\n }\n Object.defineProperty(MultiSelectWithoutContext.prototype, \"document\", {\n get: function () {\n if (!canUseDOM) {\n return;\n }\n // useful only for user actions\n return (this.element && this.element.ownerDocument) || document;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MultiSelectWithoutContext.prototype, \"element\", {\n /** @hidden */\n get: function () {\n return this._element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MultiSelectWithoutContext.prototype, \"opened\", {\n /** @hidden */\n get: function () {\n var opened = this.props.opened !== undefined ? this.props.opened : this.state.opened;\n return !!opened;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MultiSelectWithoutContext.prototype, \"tagsToRender\", {\n /** @hidden */\n get: function () {\n var _a = this.props, tags = _a.tags, textField = _a.textField;\n var tagsToRender = [];\n if (tags === undefined) {\n this.value.forEach(function (item) {\n tagsToRender.push({ text: getItemValue(item, textField), data: [item] });\n });\n }\n else {\n tagsToRender.push.apply(tagsToRender, tags);\n }\n return tagsToRender;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MultiSelectWithoutContext.prototype, \"mobileMode\", {\n /**\n * The mobile mode of the ComboBox.\n */\n get: function () {\n var isAdaptive = this.state.windowWidth && this.state.windowWidth <= MOBILE_MEDIUM_DEVISE && this.props.adaptive;\n return !!isAdaptive;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MultiSelectWithoutContext.prototype, \"value\", {\n /**\n * Represents the value of the MultiSelect.\n */\n get: function () {\n var result = [];\n if (this._valueItemsDuringOnChange) {\n result.push.apply(result, this._valueItemsDuringOnChange);\n }\n else if (this.props.value) {\n result.push.apply(result, this.props.value);\n }\n else if (this.state.value) {\n result.push.apply(result, this.state.value);\n }\n else if (this.props.defaultValue) {\n result.push.apply(result, this.props.defaultValue);\n }\n return result;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MultiSelectWithoutContext.prototype, \"name\", {\n /**\n * Gets the `name` property of the MultiSelect.\n */\n get: function () {\n return this.props.name;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MultiSelectWithoutContext.prototype, \"validity\", {\n /**\n * Represents the validity state into which the MultiSelect is set.\n */\n get: function () {\n var customError = this.props.validationMessage !== undefined;\n var isValid = (!this.required\n || (this.value !== null && this.value.length > 0 && this.value !== undefined));\n var valid = this.props.valid !== undefined ? this.props.valid : isValid;\n return {\n customError: customError,\n valid: valid,\n valueMissing: this.value === null\n };\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MultiSelectWithoutContext.prototype, \"required\", {\n /** @hidden */\n get: function () {\n return this.props.required !== undefined\n ? this.props.required\n : MultiSelectWithoutContext.defaultProps.required;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MultiSelectWithoutContext.prototype, \"validityStyles\", {\n get: function () {\n return this.props.validityStyles !== undefined\n ? this.props.validityStyles\n : MultiSelectWithoutContext.defaultProps.validityStyles;\n },\n enumerable: false,\n configurable: true\n });\n /** @hidden */\n MultiSelectWithoutContext.prototype.componentDidUpdate = function (prevProps, prevState) {\n var _a;\n var _b = this.props, virtual = _b.virtual, _c = _b.groupField, groupField = _c === void 0 ? '' : _c, _d = _b.data, data = _d === void 0 ? [] : _d;\n var skip = virtual ? virtual.skip : 0;\n var prevTotal = prevProps.virtual ? prevProps.virtual.total : 0;\n var prevOpened = prevProps.opened !== undefined ? prevProps.opened : prevState.opened;\n var opening = !prevOpened && this.opened;\n var closing = prevOpened && !this.opened;\n var popupSettings = this.base.getPopupSettings();\n if (!popupSettings.animate && closing) {\n this.onPopupClosed();\n }\n if (virtual && virtual.total !== prevTotal) {\n this.base.vs.calcScrollElementHeight();\n this.base.vs.reset();\n }\n else {\n var _e = this.getFocusedState(), focusedItem = _e.focusedItem, focusedIndex = _e.focusedIndex;\n if (groupField !== '') {\n focusedIndex = (_a = this.base.getGroupedDataModernMode(data, groupField)) === null || _a === void 0 ? void 0 : _a.indexOf(focusedItem);\n }\n if (opening && virtual) {\n this.base.scrollToVirtualItem(virtual, focusedIndex - skip);\n }\n else if (opening && !virtual) {\n // Resets the sticky header group value for scenarios with open/close of component's popup\n if (data && data.length !== 0) {\n this.base.resetGroupStickyHeader(data[0][groupField], this);\n }\n this.base.scrollToItem(focusedIndex);\n }\n else if (this.opened && prevOpened && focusedItem && this.scrollToFocused) {\n this.base.scrollToItem(focusedIndex - skip);\n }\n }\n this.scrollToFocused = false;\n this.setValidity();\n };\n /** @hidden */\n MultiSelectWithoutContext.prototype.componentDidMount = function () {\n var _a;\n this.observerResize = canUseDOM && window.ResizeObserver && new window.ResizeObserver(this.calculateMedia.bind(this));\n this.base.didMount();\n this.setValidity();\n if (((_a = this.document) === null || _a === void 0 ? void 0 : _a.body) && this.observerResize) {\n this.observerResize.observe(this.document.body);\n }\n };\n /** @hidden */\n MultiSelectWithoutContext.prototype.componentWillUnmount = function () {\n var _a;\n if (((_a = this.document) === null || _a === void 0 ? void 0 : _a.body) && this.observerResize) {\n this.observerResize.disconnect();\n }\n };\n /** @hidden */\n MultiSelectWithoutContext.prototype.onNavigate = function (state, keyCode, skipItems) {\n var _a = this.props, allowCustom = _a.allowCustom, _b = _a.data, data = _b === void 0 ? [] : _b;\n var text = this.props.filter !== undefined ? this.props.filter : this.state.text;\n var _c = this.getFocusedState(), focusedType = _c.focusedType, focusedIndex = _c.focusedIndex;\n var customItem = allowCustom && text;\n var customItemFocused = isCustom(focusedType);\n var base = this.base;\n var vs = base.vs;\n if (this.opened && keyCode === Keys.up && customItemFocused) {\n if (this.state.focusedIndex !== undefined) {\n state.data.focusedIndex = undefined;\n }\n }\n else {\n var newFocused = base.navigation.navigate({\n keyCode: keyCode,\n current: focusedIndex,\n max: (vs.enabled ? vs.total : data.length) - 1,\n min: customItem ? -1 : 0,\n skipItems: skipItems ? skipItems : undefined\n });\n if (newFocused !== undefined) {\n this.itemFocus(newFocused, state);\n this.scrollToFocused = true;\n }\n }\n this.applyState(state);\n };\n /** @hidden */\n MultiSelectWithoutContext.prototype.render = function () {\n var _a, _b;\n var _c = this.props, style = _c.style, className = _c.className, label = _c.label, dir = _c.dir, disabled = _c.disabled, textField = _c.textField, dataItemKey = _c.dataItemKey, virtual = _c.virtual, size = _c.size, rounded = _c.rounded, fillMode = _c.fillMode, loading = _c.loading, filter = _c.filter;\n var _d = this.state, text = _d.text, focused = _d.focused, focusedTag = _d.focusedTag, currentValue = _d.currentValue;\n var vs = this.base.vs;\n var id = this.props.id || this._inputId;\n vs.enabled = virtual !== undefined;\n if (virtual !== undefined) {\n vs.skip = virtual.skip;\n vs.total = virtual.total;\n vs.pageSize = virtual.pageSize;\n }\n var currentTagsToRender = (this.mobileMode && this.opened) ? currentValue : this.tagsToRender;\n this.setItems(this.tagsToRender, this._tags);\n var isValid = !this.validityStyles || this.validity.valid;\n var clearButton = Boolean(filter !== undefined ? filter : text)\n || (currentTagsToRender && currentTagsToRender.length > 0);\n var component = (React.createElement(React.Fragment, null,\n React.createElement(\"div\", { ref: this.componentRef, className: classNames('k-multiselect k-input', className, (_a = {},\n _a[\"k-input-\".concat(sizeMap[size] || size)] = size,\n _a[\"k-rounded-\".concat(roundedMap[rounded] || rounded)] = rounded,\n _a[\"k-input-\".concat(fillMode)] = fillMode,\n _a['k-focus'] = focused && !disabled,\n _a['k-invalid'] = !isValid,\n _a['k-disabled'] = disabled,\n _a['k-loading'] = loading,\n _a['k-required'] = this.required,\n _a)), style: !label\n ? style\n : __assign(__assign({}, style), { width: undefined }), dir: dir, onFocus: this.handleFocus, onBlur: this.handleBlur, onClick: this.handleWrapperClick, onMouseDown: preventDefaultNonInputs },\n React.createElement(\"div\", { className: classNames('k-input-values') },\n React.createElement(\"div\", { className: classNames('k-chip-list', (_b = {}, _b[\"k-chip-list-\".concat(sizeMap[size] || size)] = size, _b)), role: \"listbox\", id: 'tagslist-' + this.base.guid }, currentTagsToRender && currentTagsToRender.length > 0 && React.createElement(TagList, { tagRender: this.props.tagRender, onTagDelete: this.onTagDelete, data: currentTagsToRender, guid: this.base.guid, focused: focusedTag ? currentTagsToRender.find(function (t) { return matchTags(t, focusedTag, dataItemKey); }) : undefined, size: size })),\n this.renderSearchBar(id)),\n loading && React.createElement(IconWrap, { className: \"k-input-loading-icon\", name: 'loading' }),\n clearButton && React.createElement(ClearButton, { onClick: this.clearButtonClick }),\n !this.mobileMode && this.renderListContainer()),\n this.mobileMode && this.renderAdaptiveListContainer()));\n return label ? (React.createElement(FloatingLabel, { label: label, editorId: id, editorValue: text || getItemValue(this.value[0], textField), editorValid: isValid, editorDisabled: disabled, style: { width: style ? style.width : undefined }, children: component })) : component;\n };\n MultiSelectWithoutContext.prototype.renderSearchBar = function (id) {\n var _a = this.state, activedescendant = _a.activedescendant, focusedTag = _a.focusedTag, currentValue = _a.currentValue;\n var _b = this.props, disabled = _b.disabled, placeholder = _b.placeholder, ariaDescribedBy = _b.ariaDescribedBy;\n var text = !this.mobileMode && (this.props.filter !== undefined ? this.props.filter : this.state.text) || '';\n var focusedIndex = this.getFocusedState().focusedIndex;\n var placeholderToShow = this.value.length === 0 && !text ? placeholder : undefined;\n var adaptivePlaceholder = (currentValue && currentValue.length > 0) ? undefined : placeholder;\n var ariaActivedescendant = activedescendant === ActiveDescendant.TagsList && focusedTag !== undefined ?\n \"tag-\".concat(this.base.guid, \"-\").concat(focusedTag.text.replace(/\\s+/g, '-')) :\n \"option-\".concat(this.base.guid, \"-\").concat(focusedIndex);\n return (React.createElement(SearchBar, { id: id, size: Math.max((placeholderToShow || '').length, text.length, 1), tabIndex: this.props.tabIndex, accessKey: this.props.accessKey, placeholder: this.mobileMode && this.opened ? adaptivePlaceholder : placeholderToShow, value: text, onChange: this.onChangeHandler, onKeyDown: this.onInputKeyDown, ref: this.searchbarRef, disabled: disabled, expanded: this.opened, owns: this.base.listBoxId, role: 'combobox', activedescendant: ariaActivedescendant, ariaDescribedBy: \"tagslist-\".concat(this.base.guid).concat(ariaDescribedBy ? (' ' + ariaDescribedBy) : ''), ariaLabelledBy: this.props.ariaLabelledBy, ariaRequired: this.required }));\n };\n MultiSelectWithoutContext.prototype.onTagsNavigate = function (event, state) {\n var keyCode = event.keyCode;\n var focusedTag = this.state.focusedTag;\n var tags = this._tags;\n var itemsKey = this.props.dataItemKey;\n var focusedIndex = focusedTag ?\n tags.findIndex(function (t) { return matchTags(t, focusedTag, itemsKey); }) : -1;\n var newFocusedTag = undefined;\n var hasFocused = focusedIndex !== -1;\n if (keyCode === Keys.left) {\n if (hasFocused) {\n focusedIndex = Math.max(0, focusedIndex - 1);\n }\n else {\n focusedIndex = tags.length - 1;\n }\n newFocusedTag = tags[focusedIndex];\n }\n else if (keyCode === Keys.right) {\n if (focusedIndex === tags.length - 1) {\n newFocusedTag = undefined;\n }\n else if (hasFocused) {\n focusedIndex = Math.min(tags.length - 1, focusedIndex + 1);\n newFocusedTag = tags[focusedIndex];\n }\n }\n else if (keyCode === Keys.home && !event.shiftKey) {\n newFocusedTag = tags[0];\n }\n else if (keyCode === Keys.end && !event.shiftKey) {\n newFocusedTag = tags[tags.length - 1];\n }\n else if (keyCode === Keys.delete) {\n if (hasFocused) {\n var items = this.value;\n removeDataItems(items, tags[focusedIndex].data, itemsKey);\n this.triggerOnChange(items, state);\n }\n }\n else if (keyCode === Keys.backspace) {\n var items = this.value;\n if (hasFocused) {\n removeDataItems(items, tags[focusedIndex].data, itemsKey);\n this.triggerOnChange(items, state);\n }\n else if (!hasFocused && tags.length) {\n var removed = tags.pop();\n removeDataItems(items, removed.data, itemsKey);\n this.triggerOnChange(items, state);\n }\n }\n if (newFocusedTag !== focusedTag) {\n state.data.focusedTag = newFocusedTag;\n state.data.activedescendant = ActiveDescendant.TagsList;\n }\n this.applyState(state);\n };\n MultiSelectWithoutContext.prototype.triggerOnChange = function (items, state) {\n if (this.props.value === undefined) {\n state.data.value = __spreadArray([], items, true);\n }\n this._valueItemsDuringOnChange = [];\n this.setItems(items, this._valueItemsDuringOnChange);\n state.events.push({ type: 'onChange' });\n };\n MultiSelectWithoutContext.prototype.selectFocusedItem = function (event, itemtoSelect) {\n var _a = this.props, _b = _a.data, data = _b === void 0 ? [] : _b, virtual = _a.virtual;\n var focusedIndex = (itemtoSelect || this.getFocusedState()).focusedIndex;\n var skip = virtual ? virtual.skip : 0;\n if (data[focusedIndex - skip] !== undefined) {\n this.handleItemClick(focusedIndex, event);\n }\n };\n MultiSelectWithoutContext.prototype.setItems = function (srcItems, destItems) {\n destItems.length = 0;\n destItems.push.apply(destItems, srcItems);\n };\n MultiSelectWithoutContext.prototype.getFocusedState = function () {\n var focusedIndex = this.state.focusedIndex;\n var text = this.props.filter !== undefined ? this.props.filter : this.state.text;\n var _a = this.props, allowCustom = _a.allowCustom, _b = _a.data, data = _b === void 0 ? [] : _b, dataItemKey = _a.dataItemKey, virtual = _a.virtual, textField = _a.textField, _c = _a.focusedItemIndex, focusedItemIndex = _c === void 0 ? itemIndexStartsWith : _c, skipDisabledItems = _a.skipDisabledItems;\n var skip = (virtual && virtual.skip) || 0;\n var focusedInd;\n if (focusedIndex !== undefined) {\n return {\n focusedIndex: focusedIndex,\n focusedItem: data[focusedIndex - skip],\n focusedType: FocusedItemType.ListItem\n };\n }\n var selected = this.value;\n if (allowCustom && text) {\n return { focusedItem: null, focusedIndex: -1, focusedType: FocusedItemType.CustomItem };\n }\n else if (text) {\n focusedInd = focusedItemIndex(data, text, textField);\n return {\n focusedItem: data[focusedInd],\n focusedIndex: focusedInd + skip,\n focusedType: FocusedItemType.ListItem\n };\n }\n else if (selected.length) {\n var last_1 = selected[selected.length - 1];\n focusedInd = data.findIndex(function (i) { return areSame(i, last_1, dataItemKey); });\n if (data[focusedInd] !== undefined) {\n return {\n focusedIndex: focusedInd + skip,\n focusedItem: data[focusedInd],\n focusedType: FocusedItemType.ListItem\n };\n }\n return { focusedType: FocusedItemType.None, focusedIndex: -1 };\n }\n else if (skipDisabledItems && textField && !text && skip === 0) {\n var newIndex = data.findIndex(function (i) { return !i.disabled && i[textField]; });\n return {\n focusedIndex: newIndex,\n focusedItem: data[newIndex - skip],\n focusedType: FocusedItemType.ListItem\n };\n }\n return skip === 0 ?\n { focusedItem: data[0], focusedIndex: 0, focusedType: FocusedItemType.ListItem } :\n { focusedType: FocusedItemType.None, focusedIndex: -1 };\n };\n MultiSelectWithoutContext.prototype.focusElement = function (element) {\n var _this = this;\n this._skipFocusEvent = true;\n element.focus();\n window.setTimeout(function () { return _this._skipFocusEvent = false; }, 0);\n };\n MultiSelectWithoutContext.prototype.applyState = function (state) {\n this.base.applyState(state);\n this._valueItemsDuringOnChange = null;\n };\n MultiSelectWithoutContext.prototype.calculateMedia = function (entries) {\n for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {\n var entry = entries_1[_i];\n this.setState({ windowWidth: entry.target.clientWidth });\n }\n ;\n };\n ;\n /**\n * Updates the state of the MultiSelect when the complex keyboard navigation that\n * includes key combinations with the Ctrl/Command, Shift, Home and End keys\n *\n * @param {Array<string | Object>} dataToSet Defines the array of new values that will be applied to the MultiSelect\n * @param {MultiSelectInternalState} state The current state of the MultiSelect\n */\n MultiSelectWithoutContext.prototype.updateStateOnKeyboardNavigation = function (dataToSet, state) {\n this.setState({ value: dataToSet });\n this.triggerOnChange(dataToSet, state);\n this.applyState(state);\n };\n /**\n * Returns the last element that was selected or deselected. Needed for the keyboard navigation specifications\n *\n * @param {number} correction A correction is needed depending on if UP or DOWN key is pressed\n */\n MultiSelectWithoutContext.prototype.getLastSelectedOrDeselectedIndex = function (correction, focusedIndex) {\n if (this._lastSelectedOrDeslectedItemIndex === null) {\n this._lastSelectedOrDeslectedItemIndex = focusedIndex;\n }\n return this._lastSelectedOrDeslectedItemIndex !== null ? this._lastSelectedOrDeslectedItemIndex + correction : null;\n };\n MultiSelectWithoutContext.displayName = 'MultiSelect';\n /** @hidden */\n MultiSelectWithoutContext.propTypes = __assign(__assign({}, DropDownBase.propTypes), { autoClose: PropTypes.bool, value: PropTypes.arrayOf(PropTypes.any), defaultValue: PropTypes.arrayOf(PropTypes.any), dataItemKey: PropTypes.string, placeholder: PropTypes.string, tags: PropTypes.arrayOf(PropTypes.shape({\n text: PropTypes.string,\n data: PropTypes.arrayOf(PropTypes.any)\n })), tagRender: PropTypes.func, id: PropTypes.string, ariaLabelledBy: PropTypes.string, ariaDescribedBy: PropTypes.string, groupField: PropTypes.string, list: PropTypes.any, adaptive: PropTypes.bool, adaptiveTitle: PropTypes.string, onCancel: PropTypes.func, skipDisabledItems: PropTypes.bool });\n /** @hidden */\n MultiSelectWithoutContext.defaultProps = __assign(__assign({}, DropDownBase.defaultProps), { autoClose: true, required: false, size: 'medium', rounded: 'medium', fillMode: 'solid', groupMode: 'modern', skipDisabledItems: true });\n return MultiSelectWithoutContext;\n}(React.Component));\nexport { MultiSelectWithoutContext };\n/**\n * Represents the PropsContext of the `MultiSelect` component.\n * Used for global configuration of all `MultiSelect` instances.\n *\n * For more information, refer to the [Dropdowns Props Context]({% slug props-context_dropdowns %}) article.\n */\nexport var MultiSelectPropsContext = createPropsContext();\n/* eslint-disable @typescript-eslint/no-redeclare -- intentionally naming the component the same as the type */\n/**\n * Represents the [KendoReact MultiSelect component]({% slug overview_multiselect %}).\n *\n * Accepts properties of type [MultiSelectProps]({% slug api_dropdowns_multiselectprops %}).\n * Obtaining the `ref` returns an object of type [MultiSelectHandle]({% slug api_dropdowns_multiselecthandle %}).\n *\n * @example\n * ```jsx\n * class App extends React.Component {\n * multiselect = null;\n * render() {\n * return (\n * <div>\n * <MultiSelect\n * data={[ \"Albania\", \"Andorra\", \"Austria\", \"Belarus\" ]}\n * ref={component => this.multiselect = component}\n * />\n * <button onClick={() => alert(this.multiselect.value)}>alert value</button>\n * </div>\n * );\n * }\n * }\n * ReactDOM.render(<App />, document.querySelector('my-app'));\n * ```\n */\nexport var MultiSelect = withPropsContext(MultiSelectPropsContext, MultiSelectWithoutContext);\nMultiSelect.displayName = 'KendoReactMultiSelect';\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport * as React from 'react';\nimport List from './List';\nimport { classNames } from '@progress/kendo-react-common';\n/**\n * @hidden\n */\nexport var MultiColumnList = function (props) {\n return (React.createElement(List, __assign({}, props, { wrapperCssClass: \"k-table-body k-table-scroller\", listClassName: classNames('k-table k-table-list', {\n 'k-virtual-table': props.virtual !== undefined\n }), listStyle: __assign({}, props.listStyle) })));\n};\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { PopupPropsContext } from '@progress/kendo-react-popup';\nimport { MultiColumnList } from './../common/MultiColumnList';\nimport { classNames, getScrollbarWidth, setScrollbarWidth, getter, usePropsContext, createPropsContext } from '@progress/kendo-react-common';\nimport { ComboBox, ComboBoxWithoutContext } from '../ComboBox/ComboBox';\nimport { getItemValue } from '../common/utils';\nvar columnWidth = function (width, defaultWidth) {\n if (width) {\n return typeof width === 'number' ? width + 'px' : width;\n }\n return defaultWidth;\n};\n/**\n * Represents the PropsContext of the `MultiColumnComboBox` component.\n * Used for global configuration of all `MultiColumnComboBox` instances.\n *\n * For more information, refer to the [Dropdowns Props Context]({% slug props-context_dropdowns %}) article.\n */\nexport var MultiColumnComboBoxPropsContext = createPropsContext();\n/**\n * Represents the MultiColumnComboBox component.\n *\n * Accepts properties of type [MultiColumnComboBoxProps]({% slug api_dropdowns_multicolumncomboboxprops %}).\n * Obtaining the `ref` returns an object of type [MultiColumnComboBoxHandle]({% slug api_dropdowns_multicolumncomboboxhandle %}).\n *\n * @example\n * ```jsx\n * const columns = [\n * {\n * field: \"id\",\n * header: \"ID\",\n * width: \"100px\",\n * },\n * {\n * field: \"name\",\n * header: \"Name\",\n * width: \"300px\",\n * },\n * {\n * field: \"position\",\n * header: \"Position\",\n * width: \"300px\",\n * },\n * ];\n * const App = () => {\n * return (\n * <div>\n * <div>Employees:</div>\n * <MultiColumnComboBox\n * data={employees}\n * columns={columns}\n * textField={\"name\"}\n * style={{\n * width: \"300px\",\n * }}\n * placeholder=\"Please select ...\"\n * />\n * </div>\n * );\n * };\n * ReactDOM.render(<App />, document.querySelector(\"my-app\"));\n * ```\n */\nexport var MultiColumnComboBox = React.forwardRef(function (directProps, ref) {\n var props = usePropsContext(MultiColumnComboBoxPropsContext, directProps);\n var target = React.useRef(null);\n var comboBoxRef = React.useRef(null);\n var scrollbarWidth = getScrollbarWidth();\n var _a = props.columns, columns = _a === void 0 ? defaultProps.columns : _a, _b = props.popupSettings, popupSettings = _b === void 0 ? defaultProps.popupSettings : _b, className = props.className, size = props.size, onOpen = props.onOpen, onClose = props.onClose, onFocus = props.onFocus, onBlur = props.onBlur, onChange = props.onChange, onFilterChange = props.onFilterChange, onPageChange = props.onPageChange, other = __rest(props, [\"columns\", \"popupSettings\", \"className\", \"size\", \"onOpen\", \"onClose\", \"onFocus\", \"onBlur\", \"onChange\", \"onFilterChange\", \"onPageChange\"]);\n React.useImperativeHandle(target, function () {\n return ({\n element: comboBoxRef.current && comboBoxRef.current.element,\n focus: function () {\n if (comboBoxRef.current) {\n comboBoxRef.current.focus();\n }\n },\n get value() { return comboBoxRef.current && comboBoxRef.current.value; },\n get name() { return comboBoxRef.current && comboBoxRef.current.name; },\n props: props\n });\n });\n React.useImperativeHandle(ref, function () { return target.current; });\n var initialGroupHeader = React.useMemo(function () {\n if (props.groupField !== undefined && props.data) {\n return getItemValue(props.data[0], props.groupField);\n }\n }, [props.data, props.groupField]);\n var _c = React.useState(initialGroupHeader), groupHeader = _c[0], setGroupHeader = _c[1];\n var _d = React.useState(true), showStickyHeader = _d[0], setShowStickyHeader = _d[1];\n var header = React.useMemo(function () {\n var renderer = (React.createElement(\"th\", { className: 'k-table-th', colSpan: columns.length }, groupHeader));\n return (React.createElement(React.Fragment, null,\n props.header,\n React.createElement(\"div\", { className: \"k-table-header-wrap\" },\n React.createElement(\"table\", { className: \"k-table\", role: \"presentation\" },\n React.createElement(\"colgroup\", null, columns.map(function (column, i) {\n return (React.createElement(\"col\", { key: column.uniqueKey ? column.uniqueKey : i, style: { width: column.width ? column.width : defaultProps.width } }));\n })),\n React.createElement(\"thead\", { className: 'k-table-thead' },\n React.createElement(\"tr\", { className: 'k-table-row' }, columns.map(function (column, i) {\n return (React.createElement(\"th\", { className: \"k-table-th\", key: column.uniqueKey ? column.uniqueKey : i }, column.header || '\\u00A0'));\n })),\n groupHeader && showStickyHeader && React.createElement(\"tr\", { className: 'k-table-group-row' }, props.groupStickyHeaderItemRender ? props.groupStickyHeaderItemRender.call(undefined, renderer, {}) : renderer))))));\n }, [props.header, columns, groupHeader, showStickyHeader]);\n var popupWidth = React.useMemo(function () {\n // These additional 4px are coming from the child elements side borders (fixes horizontal scrollbar)\n return \"calc(\".concat(columns.map(function (column) { return columnWidth(column.width, defaultProps.width); }).filter(Boolean).join(' + '), \" + \").concat(scrollbarWidth, \"px + 4px)\");\n }, [columns, scrollbarWidth]);\n var skip = props.virtual ? props.virtual.skip : 0;\n var itemRender = React.useCallback(function (li, liProps) {\n var children = columns.map(function (column, i) { return (React.createElement(\"span\", { className: !props.itemRender ? 'k-table-td' : undefined, style: !props.itemRender ? { width: column.width ? column.width : defaultProps.width } : undefined, key: column.uniqueKey ? column.uniqueKey : i }, column.field ? String(getter(column.field)(liProps.dataItem)) : '')); });\n var group = undefined;\n var curGroup, prevGroup, groupGetter, data = props.data || [];\n var index = liProps.index - skip;\n if (props.groupField !== undefined) {\n groupGetter = getter(props.groupField);\n curGroup = groupGetter(data[index]);\n prevGroup = groupGetter(data[index - 1]);\n if (curGroup && prevGroup && curGroup !== prevGroup) {\n group = curGroup;\n }\n }\n if (group && props.groupMode === 'classic') {\n children.push(React.createElement(\"div\", { key: \"group\", className: \"k-table-td k-table-group-td\" },\n React.createElement(\"span\", null, group)));\n }\n var rendering = React.cloneElement(li, __assign(__assign({}, li.props), { className: classNames('k-table-row', {\n 'k-table-alt-row': liProps.index % 2 !== 0,\n 'k-focus': liProps.focused,\n 'k-selected': liProps.selected,\n 'k-first': Boolean(group),\n 'k-disabled': liProps.dataItem.disabled\n }) }), children);\n return props.itemRender ? props.itemRender.call(undefined, rendering, liProps) : rendering;\n }, [columns, props.groupField, props.itemRender, props.data, skip]);\n var handleEvent = React.useCallback(function (handler, event) {\n if (handler) {\n handler.call(undefined, __assign(__assign({}, event), { target: target.current }));\n }\n }, []);\n var onOpenHandler = React.useCallback(function (event) {\n // Resets the sticky header group value for scenarios with open/close of component's popup\n if (!props.virtual) {\n setGroupHeader(initialGroupHeader);\n }\n ;\n return handleEvent(onOpen, event);\n }, [handleEvent, onOpen, props.virtual, initialGroupHeader]);\n var onCloseHandler = React.useCallback(function (event) { return handleEvent(onClose, event); }, [onClose]);\n var onFocusHandler = React.useCallback(function (event) { return handleEvent(onFocus, event); }, [onFocus]);\n var onBlurHandler = React.useCallback(function (event) { return handleEvent(onBlur, event); }, [onBlur]);\n var onChangeHandler = React.useCallback(function (event) { return handleEvent(onChange, event); }, [onChange]);\n var onPageChangeHandler = React.useCallback(function (event) { return handleEvent(onPageChange, event); }, [onPageChange]);\n var onFilterChangeHandler = React.useCallback(function (event) {\n setGroupHeader(initialGroupHeader);\n return handleEvent(onFilterChange, __assign(__assign({}, event), { mobileMode: event.target.mobileMode }));\n }, [onFilterChange]);\n var onGroupScroll = React.useCallback(function (event) {\n setGroupHeader(event.group);\n }, []);\n React.useEffect(function () { setScrollbarWidth(); });\n React.useEffect(function () {\n var data = props.data;\n setGroupHeader(initialGroupHeader);\n if (data && data.length !== 0) {\n setShowStickyHeader(true);\n }\n else {\n setShowStickyHeader(false);\n }\n ;\n }, [props.data]);\n var List = React.useCallback(function (listProps) { return React.createElement(MultiColumnList, __assign({}, listProps)); }, []);\n return (React.createElement(PopupPropsContext.Provider, { value: function (PopupProps) { return (__assign(__assign({}, PopupProps), { popupClass: \"k-dropdowngrid-popup \".concat(popupSettings.popupClass) })); } },\n React.createElement(ComboBox, __assign({}, other, { list: List, popupSettings: __assign(__assign({ width: popupWidth }, popupSettings), { className: popupSettings.className }), ref: comboBoxRef, header: header, itemRender: itemRender, groupHeaderItemRender: props.groupHeaderItemRender, size: props.size, rounded: props.rounded, fillMode: props.fillMode, groupMode: props.groupMode, groupField: props.groupField, isMultiColumn: true, onOpen: onOpenHandler, onClose: onCloseHandler, onFocus: onFocusHandler, onBlur: onBlurHandler, onChange: onChangeHandler, onFilterChange: onFilterChangeHandler, onPageChange: onPageChangeHandler, onGroupScroll: onGroupScroll, className: classNames('k-dropdowngrid', className), required: props.required, adaptive: props.adaptive, adaptiveFilter: props.adaptiveFilter, adaptiveTitle: props.adaptiveTitle, footer: props.footer, footerClassName: 'k-table-footer' }))));\n});\nvar propTypes = __assign(__assign({}, ComboBoxWithoutContext.propTypes), { columns: PropTypes.any.isRequired });\nvar defaultProps = {\n columns: [],\n popupSettings: {},\n width: '200px',\n size: 'medium',\n rounded: 'medium',\n fillMode: 'solid'\n};\nMultiColumnComboBox.displayName = 'KendoMultiColumnComboBox';\n// TODO: delete casting when @types/react is updated!\nMultiColumnComboBox.propTypes = propTypes;\nMultiColumnComboBox.defaultProps = defaultProps;\n","import * as React from 'react';\n/**\n * @hidden\n */\nexport function useDropdownWidth(elementRef, initialStyleWidth, args) {\n var _a = React.useState(initialStyleWidth), width = _a[0], setWidth = _a[1];\n React.useEffect(function () {\n if (width !== undefined && elementRef.current) {\n setWidth(elementRef.current.offsetWidth);\n }\n }, args);\n return width;\n}\n","import * as React from 'react';\n/**\n * @hidden\n */\nexport var ListNoData = function (props) {\n return React.createElement(\"div\", { className: \"k-nodata\" },\n React.createElement(\"div\", null, props.children));\n};\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nvar _this = this;\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { classNames, noop, useRtl, getTabIndex, Keys, mapTree, extendDataItem, guid, createPropsContext, kendoThemeMaps, usePropsContext, IconWrap, canUseDOM } from '@progress/kendo-react-common';\nimport { Popup } from '@progress/kendo-react-popup';\nimport { useLocalization } from '@progress/kendo-react-intl';\nimport { TreeView } from '@progress/kendo-react-treeview';\nimport { validatePackage } from '@progress/kendo-react-common';\nimport { packageMetadata } from './../package-metadata';\nimport { getItemValue, areSame, isPresent } from '../common/utils';\nimport { useDropdownWidth } from './useDropdownWidth';\nimport { ListNoData } from './ListNoData';\nimport { messages, clear, nodata } from './../messages';\nimport { FloatingLabel } from '@progress/kendo-react-labels';\nimport ListFilter from '../common/ListFilter';\nimport { Button } from '@progress/kendo-react-buttons';\nimport { xIcon, caretAltDownIcon } from '@progress/kendo-svg-icons';\nimport { AdaptiveMode } from '../common/AdaptiveMode';\nimport { ActionSheetContent } from '@progress/kendo-react-layout';\nimport { MOBILE_MEDIUM_DEVISE } from '../common/constants';\nvar sizeMap = kendoThemeMaps.sizeMap, roundedMap = kendoThemeMaps.roundedMap;\nvar VALIDATION_MESSAGE = 'Please select a value from the list!';\nvar ValueHolder = function (props) {\n return React.createElement(\"span\", { className: \"k-input-value-text\" }, props.children);\n};\nvar toLevel = function (hierarchicalIndex) {\n return hierarchicalIndex.split('_').map(function (i) { return parseInt(i, 10); });\n};\nvar getValidity = function (parameters, hasValue) {\n var validationMessage = parameters.validationMessage, valid = parameters.valid, required = parameters.required;\n return ({\n customError: validationMessage !== undefined,\n valid: Boolean(valid !== undefined ? valid : (!required || hasValue)),\n valueMissing: !hasValue\n });\n};\nvar defaultProps = {\n selectField: 'selected',\n subItemsField: 'items',\n popupSettings: {\n animate: true,\n width: '200px',\n height: '200px'\n },\n data: [],\n required: false,\n style: {},\n validityStyles: true,\n size: 'medium',\n rounded: 'medium',\n fillMode: 'solid'\n};\n/**\n * Represents the PropsContext of the `DropDownTree` component.\n * Used for global configuration of all `DropDownTree` instances.\n *\n * For more information, refer to the [Dropdowns Props Context]({% slug props-context_dropdowns %}) article.\n */\nexport var DropDownTreePropsContext = createPropsContext();\n/**\n * Represents the DropDownTree component.\n *\n * Accepts properties of type [DropDownTreeProps]({% slug api_dropdowns_dropdowntreeprops %}).\n * Obtaining the `ref` returns an object of type [DropDownTreeHandle]({% slug api_dropdowns_dropdowntreehandle %}).\n *\n * @example\n * ```jsx\n * const selectField = \"selected\";\n * const expandField = \"expanded\";\n * const dataItemKey = \"id\";\n * const textField = \"text\";\n * const subItemsField = \"items\";\n * const fields = {\n * selectField,\n * expandField,\n * dataItemKey,\n * subItemsField,\n * };\n * const App = () => {\n * const [value, setValue] = React.useState(null);\n * const [expanded, setExpanded] = React.useState([data[0][dataItemKey]]);\n * const onChange = (event) => setValue(event.value);\n * const onExpandChange = React.useCallback(\n * (event) => setExpanded(expandedState(event.item, dataItemKey, expanded)),\n * [expanded]\n * );\n * const treeData = React.useMemo(\n * () =>\n * processTreeData(\n * data,\n * {\n * expanded,\n * value,\n * },\n * fields\n * ),\n * [expanded, value]\n * );\n *\n * return (\n * <DropDownTree\n * style={{\n * width: '300px',\n * }}\n * placeholder=\"Please select ...\"\n * data={treeData}\n * value={value}\n * onChange={onChange}\n * textField={textField}\n * dataItemKey={dataItemKey}\n * selectField={selectField}\n * expandField={expandField}\n * onExpandChange={onExpandChange}\n * />\n * );\n * };\n * ReactDOM.render(<App />, document.querySelector('my-app'));\n * ```\n */\nexport var DropDownTree = React.forwardRef(function (directProps, ref) {\n var _a;\n validatePackage(packageMetadata);\n var props = usePropsContext(DropDownTreePropsContext, directProps);\n var combinedProps = __assign(__assign({}, defaultProps), props);\n var calculatedId = React.useMemo(function () { return guid(); }, []);\n var id = combinedProps.id || calculatedId;\n var data = combinedProps.data, dataItemKey = combinedProps.dataItemKey, popupSettings = combinedProps.popupSettings, style = combinedProps.style, opened = combinedProps.opened, disabled = combinedProps.disabled, _b = combinedProps.onOpen, onOpen = _b === void 0 ? noop : _b, _c = combinedProps.onClose, onClose = _c === void 0 ? noop : _c, placeholder = combinedProps.placeholder, label = combinedProps.label, name = combinedProps.name, selectField = combinedProps.selectField, subItemsField = combinedProps.subItemsField, validationMessage = combinedProps.validationMessage, valid = combinedProps.valid, required = combinedProps.required, validityStyles = combinedProps.validityStyles;\n var tabIndex = getTabIndex(combinedProps.tabIndex, disabled);\n var target = React.useRef(null);\n var elementRef = React.useRef(null);\n var inputRef = React.useRef(null);\n var adaptiveInputRef = React.useRef(null);\n var selectRef = React.useRef(null);\n var treeViewRef = React.useRef(null);\n var skipFocusRef = React.useRef(false);\n var _d = React.useState(undefined), stateValue = _d[0], setStateValue = _d[1];\n var controlled = combinedProps.value !== undefined;\n var value = controlled ? combinedProps.value : (stateValue !== undefined ? stateValue : combinedProps.defaultValue);\n var hasValue = isPresent(value);\n var currentValueText = hasValue ? getItemValue(value, combinedProps.textField) : '';\n var validity = getValidity({ validationMessage: validationMessage, valid: valid, required: required }, hasValue);\n var focus = React.useCallback(function () { return elementRef.current && elementRef.current.focus(); }, []);\n React.useImperativeHandle(target, function () { return ({\n props: combinedProps,\n element: elementRef.current,\n focus: focus\n }); });\n React.useImperativeHandle(ref, function () { return target.current; });\n var dir = useRtl(elementRef, combinedProps.dir);\n var initialStyleWidth = popupSettings.width !== undefined ?\n popupSettings.width : (style.width !== undefined ? style.width : defaultProps.popupSettings.width);\n var popupWidth = useDropdownWidth(elementRef, initialStyleWidth);\n var popupStyles = __assign({ width: popupWidth }, (dir !== undefined ? { direction: dir } : {}));\n var _e = React.useState(false), open = _e[0], setOpen = _e[1];\n var isOpen = opened !== undefined ? opened : open;\n var _f = React.useState(false), focused = _f[0], setFocused = _f[1];\n var _g = React.useState(), windowWidth = _g[0], setWindowWidth = _g[1];\n var isAdaptive = !!(windowWidth && windowWidth <= MOBILE_MEDIUM_DEVISE && combinedProps.adaptive);\n var _h = React.useState(''), filter = _h[0], setFilter = _h[1];\n var setValidity = React.useCallback(function () {\n if (selectRef.current && selectRef.current.setCustomValidity) {\n selectRef.current.setCustomValidity(validity.valid\n ? ''\n : validationMessage === undefined ? VALIDATION_MESSAGE : validationMessage);\n }\n }, [validationMessage, validity]);\n React.useEffect(setValidity);\n React.useEffect(function () {\n var observerResize = canUseDOM && window.ResizeObserver && new window.ResizeObserver(calculateMedia.bind(_this));\n if ((document === null || document === void 0 ? void 0 : document.body) && observerResize) {\n observerResize.observe(document.body);\n }\n return function () {\n if ((document === null || document === void 0 ? void 0 : document.body) && observerResize) {\n observerResize.disconnect();\n }\n };\n }, []);\n var openPopup = React.useCallback(function (event) {\n if (!isOpen) {\n if (onOpen) {\n var openEvent = __assign({}, event);\n onOpen.call(undefined, openEvent);\n }\n if (opened === undefined) {\n setOpen(true);\n }\n }\n }, [isOpen, opened, onOpen]);\n var closePopup = React.useCallback(function (event) {\n if (isOpen) {\n if (onClose) {\n var closeEvent = __assign({}, event);\n onClose.call(undefined, closeEvent);\n }\n if (opened === undefined) {\n setOpen(false);\n if (isAdaptive) {\n setTimeout(function () {\n var _a;\n focusElement((_a = adaptiveInputRef.current) === null || _a === void 0 ? void 0 : _a.element);\n }, 300);\n }\n }\n }\n }, [isOpen, opened, onClose, isAdaptive]);\n var onWrapperClick = React.useCallback(function (event) {\n if (!event.isDefaultPrevented() && target.current) {\n setFocused(true);\n var ev = {\n syntheticEvent: event,\n nativeEvent: event.nativeEvent,\n target: target.current\n };\n (isOpen ? closePopup : openPopup)(ev);\n }\n }, [isOpen, opened, onOpen, onClose]);\n var switchFocus = React.useCallback(function (focusFn) {\n skipFocusRef.current = true;\n focusFn();\n window.setTimeout(function () { return skipFocusRef.current = false; }, 0);\n }, []);\n var onWrapperKeyDown = React.useCallback(function (event) {\n var _a, _b;\n var keyCode = event.keyCode, altKey = event.altKey;\n var treeview = treeViewRef.current && treeViewRef.current.element;\n if (!target.current || (event.isDefaultPrevented() && ((_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.element) === event.target)) {\n return;\n }\n var ev = {\n syntheticEvent: event,\n nativeEvent: event.nativeEvent,\n target: target.current\n };\n if (isOpen) {\n if (keyCode === Keys.esc || (altKey && keyCode === Keys.up)) {\n event.preventDefault();\n closePopup(ev);\n }\n else if (treeview && treeview.querySelector('.k-focus') &&\n (keyCode === Keys.up || keyCode === Keys.down ||\n keyCode === Keys.left || keyCode === Keys.right ||\n keyCode === Keys.home || keyCode === Keys.end)) {\n if (keyCode === Keys.up && ((_b = inputRef.current) === null || _b === void 0 ? void 0 : _b.element)) {\n var items = Array.from(treeview.querySelectorAll('.k-treeview-item'));\n var focusedItem = __spreadArray([], items, true).reverse().find(function (i) { return Boolean(i && i.querySelector('.k-focus')); });\n if (focusedItem && items.indexOf(focusedItem) === 0) {\n return switchFocus(function () { var _a; focusElement((_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.element); });\n }\n }\n switchFocus(noop);\n }\n else if (keyCode === Keys.down) {\n switchFocus(function () { var _a; focusElement(((_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.element) || treeview); });\n }\n }\n else if (altKey && keyCode === Keys.down) {\n event.preventDefault();\n openPopup(ev);\n }\n else if (!isOpen) {\n if (keyCode === Keys.esc) {\n onClear(event);\n }\n }\n }, [isOpen, opened, onOpen, onClose]);\n var onInputKeyDown = React.useCallback(function (event) {\n var keyCode = event.keyCode, altKey = event.altKey;\n if (altKey || (keyCode !== Keys.up && keyCode !== Keys.down)) {\n return;\n }\n event.preventDefault();\n switchFocus(keyCode === Keys.up ?\n function () { focusElement(elementRef.current); } :\n function () { focusElement(treeViewRef.current && treeViewRef.current.element); });\n }, []);\n var focusElement = React.useCallback(function (element) {\n if (element) {\n switchFocus(function () { return element.focus(); });\n }\n }, []);\n var onPopupOpened = React.useCallback(function () {\n var _a;\n if (!focused && isOpen && !opened) {\n closePopup({ target: target.current });\n }\n else {\n if (props.filterable) {\n focusElement((_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.element);\n }\n else {\n focusElement(treeViewRef.current && treeViewRef.current.element);\n }\n }\n }, [onClose, props.filterable, focused, opened, isOpen]);\n var onPopupClosed = React.useCallback(function () {\n if (focused) {\n // Move the focus from treeview to dropdown without triggering Focus or Blur events.\n focusElement(elementRef.current);\n }\n }, [focused]);\n var onFocus = React.useCallback(function (event) {\n if (!focused && !skipFocusRef.current) {\n setFocused(true);\n if (props.onFocus && target.current) {\n var focusEvent = {\n syntheticEvent: event,\n nativeEvent: event.nativeEvent,\n target: target.current\n };\n props.onFocus.call(undefined, focusEvent);\n }\n }\n }, [focused, props.onFocus]);\n var onBlur = React.useCallback(function (event) {\n if (focused && !skipFocusRef.current && target.current) {\n setFocused(false);\n var ev = {\n syntheticEvent: event,\n nativeEvent: event.nativeEvent,\n target: target.current\n };\n if (props.onBlur) {\n var focusEvent = __assign({}, ev);\n props.onBlur.call(undefined, focusEvent);\n }\n if (!isAdaptive) {\n closePopup(ev);\n }\n }\n }, [focused, props.onBlur, isOpen, opened, onClose]);\n var onWrapperMouseDown = React.useCallback(function () {\n if (focused) {\n // moving focus from treeview to dropdown triggers Focus and Blur events.\n switchFocus(noop);\n }\n if (isAdaptive) {\n setTimeout(function () {\n var _a;\n focusElement((_a = adaptiveInputRef.current) === null || _a === void 0 ? void 0 : _a.element);\n }, 300);\n }\n }, [focused, isAdaptive]);\n var changeValue = React.useCallback(function (event, newValue, hierarchicalIndex) {\n if (props.onChange) {\n var changeEvent = __assign({ value: newValue, level: hierarchicalIndex ? toLevel(hierarchicalIndex) : [] }, event);\n props.onChange.call(undefined, changeEvent);\n }\n if (!controlled) {\n setStateValue(newValue);\n }\n }, [props.onChange, controlled]);\n var onChange = React.useCallback(function (event) {\n if (areSame(event.item, value, dataItemKey) || !target.current) {\n return;\n }\n var item = event.item, itemHierarchicalIndex = event.itemHierarchicalIndex, nativeEvent = event.nativeEvent, syntheticEvent = event.syntheticEvent;\n var ev = {\n syntheticEvent: syntheticEvent,\n nativeEvent: nativeEvent,\n target: target.current\n };\n changeValue(ev, item, itemHierarchicalIndex);\n closePopup(ev);\n }, [controlled, value, props.onChange, dataItemKey, isOpen, opened, onClose]);\n var onClear = React.useCallback(function (event) {\n if (!target.current) {\n return;\n }\n var ev = {\n syntheticEvent: event,\n nativeEvent: event.nativeEvent,\n target: target.current\n };\n changeValue(ev, null);\n closePopup(ev);\n event.preventDefault();\n }, [controlled, props.onChange, isOpen, opened, onClose]);\n var onExpand = React.useCallback(function (event) {\n event.syntheticEvent.stopPropagation();\n if (props.onExpandChange && target.current) {\n var item = event.item, itemHierarchicalIndex = event.itemHierarchicalIndex, nativeEvent = event.nativeEvent, syntheticEvent = event.syntheticEvent;\n var expandEvent = {\n level: toLevel(itemHierarchicalIndex),\n item: item,\n nativeEvent: nativeEvent,\n syntheticEvent: syntheticEvent,\n target: target.current\n };\n props.onExpandChange.call(undefined, expandEvent);\n }\n }, [props.onExpandChange]);\n var onFilterChange = React.useCallback(function (event) {\n if (props.onFilterChange && target.current) {\n var filterDesc = { field: props.textField, operator: 'contains', value: event.target.value };\n var ev = {\n filter: filterDesc,\n syntheticEvent: event.syntheticEvent,\n nativeEvent: event.nativeEvent,\n target: target.current\n };\n props.onFilterChange.call(undefined, ev);\n if (props.filter === undefined) {\n setFilter(event.target.value);\n }\n }\n }, [props.onFilterChange, props.filter, props.textField]);\n var renderAdaptiveListContainer = function () {\n var mobileFilter = combinedProps.filterable ? (React.createElement(ListFilter, { value: combinedProps.filter === undefined ? filter : combinedProps.filter, ref: adaptiveInputRef, onChange: onFilterChange, onKeyDown: onInputKeyDown, size: size, rounded: rounded, fillMode: fillMode })) : null;\n var actionSheetProps = {\n adaptiveTitle: combinedProps.adaptiveTitle,\n expand: isOpen,\n onClose: function (event) { return closePopup(event); },\n windowWidth: windowWidth,\n mobileFilter: mobileFilter\n };\n return (React.createElement(AdaptiveMode, __assign({}, actionSheetProps),\n React.createElement(ActionSheetContent, { className: '!k-overflow-hidden' },\n React.createElement(\"div\", { className: 'k-list-container' },\n React.createElement(\"div\", { className: 'k-list k-list-lg' }, data.length > 0 ? (React.createElement(TreeView, { ref: treeViewRef, tabIndex: tabIndex, data: treeViewData, focusIdField: dataItemKey, textField: combinedProps.textField, selectField: selectField, expandField: combinedProps.expandField, childrenField: subItemsField, expandIcons: true, onItemClick: onChange, onExpandChange: onExpand, size: size, item: combinedProps.item, dir: dir })) : (React.createElement(NoData, null, localization.toLanguageString(nodata, messages[nodata]))))))));\n };\n var calculateMedia = React.useCallback(function (entries) {\n for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {\n var entry = entries_1[_i];\n setWindowWidth(entry.target.clientWidth);\n }\n ;\n }, []);\n var treeViewData = React.useMemo(function () {\n return (controlled || !hasValue) ? data :\n mapTree(data, subItemsField, function (item) {\n var _a;\n return extendDataItem(item, subItemsField, (_a = {}, _a[selectField] = areSame(item, value, dataItemKey), _a));\n });\n }, [data, value, controlled, hasValue, selectField, subItemsField]);\n var NoData = combinedProps.listNoData || ListNoData;\n var ValueComponent = combinedProps.valueHolder || ValueHolder;\n var localization = useLocalization();\n var isValid = !validityStyles || validity.valid;\n var size = combinedProps.size, rounded = combinedProps.rounded, fillMode = combinedProps.fillMode;\n var dropdowntree = (React.createElement(React.Fragment, null,\n React.createElement(\"span\", { className: classNames('k-dropdowntree k-picker', combinedProps.className, (_a = {},\n _a[\"k-picker-\".concat(sizeMap[size] || size)] = size,\n _a[\"k-rounded-\".concat(roundedMap[rounded] || rounded)] = rounded,\n _a[\"k-picker-\".concat(fillMode)] = fillMode,\n _a['k-focus'] = focused,\n _a['k-invalid'] = !isValid,\n _a['k-loading'] = combinedProps.loading,\n _a['k-required'] = required,\n _a['k-disabled'] = combinedProps.disabled,\n _a)), tabIndex: tabIndex, accessKey: combinedProps.accessKey, id: id, style: label ? __assign(__assign({}, style), { width: undefined }) : style, dir: dir, ref: elementRef, onKeyDown: disabled ? undefined : onWrapperKeyDown, onMouseDown: onWrapperMouseDown, onClick: disabled ? undefined : onWrapperClick, onFocus: onFocus, onBlur: onBlur, role: \"combobox\", \"aria-haspopup\": \"tree\", \"aria-expanded\": isOpen, \"aria-disabled\": disabled, \"aria-label\": label, \"aria-labelledby\": combinedProps.ariaLabelledBy, \"aria-describedby\": combinedProps.ariaDescribedBy, \"aria-required\": required },\n React.createElement(\"span\", { className: \"k-input-inner\" },\n React.createElement(ValueComponent, { item: value }, currentValueText || placeholder)),\n combinedProps.loading && React.createElement(IconWrap, { className: \"k-input-loading-icon\", name: 'loading' }),\n hasValue && !disabled && (React.createElement(\"span\", { onClick: onClear, className: \"k-clear-value\", title: localization.toLanguageString(clear, messages[clear]), role: \"button\", tabIndex: -1, onMouseDown: function (e) { return e.preventDefault(); } },\n React.createElement(IconWrap, { name: 'x', icon: xIcon }))),\n React.createElement(Button, { tabIndex: -1, type: \"button\", \"aria-label\": \"select\", className: \"k-input-button\", size: size, fillMode: fillMode, themeColor: \"base\", rounded: null, icon: \"caret-alt-down\", svgIcon: caretAltDownIcon }),\n React.createElement(\"select\", { name: name, ref: selectRef, tabIndex: -1, \"aria-hidden\": true, title: label, style: { opacity: 0, width: 1, border: 0, zIndex: -1, position: 'absolute', left: '50%' } },\n React.createElement(\"option\", { value: combinedProps.valueMap ? combinedProps.valueMap.call(undefined, value) : value })),\n !isAdaptive && React.createElement(Popup, { className: classNames(popupSettings.className, { 'k-rtl': dir === 'rtl' }), popupClass: classNames(popupSettings.popupClass, 'k-dropdowntree-popup'), style: popupStyles, animate: popupSettings.animate, anchor: elementRef.current, show: isOpen, onOpen: onPopupOpened, onClose: onPopupClosed, appendTo: popupSettings.appendTo },\n combinedProps.filterable && (React.createElement(ListFilter, { value: combinedProps.filter === undefined ? filter : combinedProps.filter, ref: inputRef, onChange: onFilterChange, onKeyDown: onInputKeyDown, size: size, rounded: rounded, fillMode: fillMode })),\n data.length > 0 ? (React.createElement(TreeView, { ref: treeViewRef, tabIndex: tabIndex, data: treeViewData, focusIdField: dataItemKey, textField: combinedProps.textField, selectField: selectField, expandField: combinedProps.expandField, childrenField: subItemsField, expandIcons: true, onItemClick: onChange, onExpandChange: onExpand, size: size, item: combinedProps.item, dir: dir })) : (React.createElement(NoData, null, localization.toLanguageString(nodata, messages[nodata]))))),\n isAdaptive && renderAdaptiveListContainer()));\n return label ? (React.createElement(FloatingLabel, { label: label, editorValue: currentValueText, editorPlaceholder: placeholder, editorValid: isValid, editorDisabled: disabled, editorId: id, style: { width: style ? style.width : undefined }, children: dropdowntree, dir: dir })) : dropdowntree;\n});\nvar propTypes = {\n opened: PropTypes.bool,\n disabled: PropTypes.bool,\n dir: PropTypes.string,\n tabIndex: PropTypes.number,\n accessKey: PropTypes.string,\n data: PropTypes.array,\n value: PropTypes.any,\n valueMap: PropTypes.func,\n placeholder: PropTypes.string,\n dataItemKey: PropTypes.string.isRequired,\n textField: PropTypes.string.isRequired,\n selectField: PropTypes.string,\n expandField: PropTypes.string,\n subItemsField: PropTypes.string,\n className: PropTypes.string,\n style: PropTypes.object,\n label: PropTypes.string,\n validationMessage: PropTypes.string,\n validityStyles: PropTypes.bool,\n valid: PropTypes.bool,\n required: PropTypes.bool,\n name: PropTypes.string,\n id: PropTypes.string,\n ariaLabelledBy: PropTypes.string,\n ariaDescribedBy: PropTypes.string,\n filterable: PropTypes.bool,\n filter: PropTypes.string,\n loading: PropTypes.bool,\n popupSettings: PropTypes.shape({\n animate: PropTypes.oneOfType([PropTypes.bool, PropTypes.shape({\n openDuration: PropTypes.number,\n closeDuration: PropTypes.number\n })]),\n popupClass: PropTypes.string,\n className: PropTypes.string,\n appendTo: PropTypes.any,\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n height: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n }),\n onOpen: PropTypes.func,\n onClose: PropTypes.func,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n onChange: PropTypes.func,\n onFilterChange: PropTypes.func,\n onExpandChange: PropTypes.func,\n item: PropTypes.func,\n valueHolder: PropTypes.func,\n listNoData: PropTypes.func,\n adaptiveTitle: PropTypes.string,\n adaptive: PropTypes.bool\n};\nDropDownTree.displayName = 'KendoReactDropDownTree';\nDropDownTree.propTypes = propTypes;\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nvar _this = this;\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { classNames, noop, useRtl, getTabIndex, Keys, guid, kendoThemeMaps, createPropsContext, usePropsContext, IconWrap, canUseDOM } from '@progress/kendo-react-common';\nimport { Popup } from '@progress/kendo-react-popup';\nimport { useLocalization } from '@progress/kendo-react-intl';\nimport { TreeView } from '@progress/kendo-react-treeview';\nimport { validatePackage } from '@progress/kendo-react-common';\nimport { packageMetadata } from './../package-metadata';\nimport { getItemValue, areSame, matchTags } from '../common/utils';\nimport { useDropdownWidth } from './../DropDownTree/useDropdownWidth';\nimport { ListNoData } from './../DropDownTree/ListNoData';\nimport { messages, nodata, adaptiveModeFooterCancel, adaptiveModeFooterApply } from './../messages';\nimport { FloatingLabel } from '@progress/kendo-react-labels';\nimport TagList from '../MultiSelect/TagList';\nimport ClearButton from '../common/ClearButton';\nimport ListFilter from '../common/ListFilter';\nimport { AdaptiveMode } from '../common/AdaptiveMode';\nimport { ActionSheetContent } from '@progress/kendo-react-layout';\nimport { MOBILE_MEDIUM_DEVISE } from '../common/constants';\nvar VALIDATION_MESSAGE = 'Please select a value from the list!';\nvar sizeMap = kendoThemeMaps.sizeMap, roundedMap = kendoThemeMaps.roundedMap;\nvar toLevel = function (hierarchicalIndex) {\n return hierarchicalIndex.split('_').map(function (i) { return parseInt(i, 10); });\n};\nvar getValidity = function (parameters, hasValue) {\n var validationMessage = parameters.validationMessage, valid = parameters.valid, required = parameters.required;\n return ({\n customError: validationMessage !== undefined,\n valid: Boolean(valid !== undefined ? valid : (!required || hasValue)),\n valueMissing: !hasValue\n });\n};\nvar defaultProps = {\n checkField: 'checkField',\n checkIndeterminateField: 'checkIndeterminateField',\n subItemsField: 'items',\n popupSettings: {\n animate: true,\n width: '200px',\n height: '200px'\n },\n size: 'medium',\n rounded: 'medium',\n fillMode: 'solid',\n required: false,\n validityStyles: true\n};\n/**\n * Represents the PropsContext of the `MultiSelectTree` component.\n * Used for global configuration of all `MultiSelectTree` instances.\n *\n * For more information, refer to the [Dropdowns Props Context]({% slug props-context_dropdowns %}) article.\n */\nexport var MultiSelectTreePropsContext = createPropsContext();\n/**\n * Represents the MultiSelectTree component.\n *\n * Accepts properties of type [MultiSelectTreeProps]({% slug api_dropdowns_multiselecttreeprops %}).\n * Obtaining the `ref` returns an object of type [MultiSelectTreeHandle]({% slug api_dropdowns_multiselecttreehandle %}).\n *\n * @example\n * ```jsx\n * const dataItemKey = 'id';\n * const checkField = 'checkField';\n * const checkIndeterminateField = 'checkIndeterminateField';\n * const subItemsField = 'items';\n * const expandField = 'expanded';\n * const textField = 'text';\n * const fields = {\n * dataItemKey,\n * checkField,\n * checkIndeterminateField,\n * expandField,\n * subItemsField,\n * };\n * const App = () => {\n * const [value, setValue] = React.useState([]);\n * const [expanded, setExpanded] = React.useState([data[0][dataItemKey]]);\n * const onChange = (event) =>\n * setValue(\n * getMultiSelectTreeValue(data, {\n * ...fields,\n * ...event,\n * value,\n * })\n * );\n * const onExpandChange = React.useCallback(\n * (event) => setExpanded(expandedState(event.item, dataItemKey, expanded)),\n * [expanded]\n * );\n * const treeData = React.useMemo(\n * () =>\n * processMultiSelectTreeData(data, {\n * expanded,\n * value,\n * ...fields,\n * }),\n * [expanded, value]\n * );\n *\n * return (\n * <div>\n * <div>Categories:</div>\n * <MultiSelectTree\n * style={{\n * width: '300px',\n * }}\n * data={treeData}\n * value={value}\n * onChange={onChange}\n * placeholder=\"Please select ...\"\n * textField={textField}\n * dataItemKey={dataItemKey}\n * checkField={checkField}\n * checkIndeterminateField={checkIndeterminateField}\n * expandField={expandField}\n * subItemsField={subItemsField}\n * onExpandChange={onExpandChange}\n * />\n * </div>\n * );\n * };\n * ReactDOM.render(<App />, document.querySelector('my-app'));\n * ```\n */\nexport var MultiSelectTree = React.forwardRef(function (directProps, ref) {\n var _a, _b;\n var props = usePropsContext(MultiSelectTreePropsContext, directProps);\n validatePackage(packageMetadata);\n var componentGuid = React.useMemo(function () { return guid(); }, []);\n var id = props.id || componentGuid;\n var _c = props.data, data = _c === void 0 ? [] : _c, dataItemKey = props.dataItemKey, _d = props.popupSettings, popupSettings = _d === void 0 ? {} : _d, _e = props.style, style = _e === void 0 ? {} : _e, opened = props.opened, disabled = props.disabled, _f = props.onOpen, onOpen = _f === void 0 ? noop : _f, _g = props.onClose, onClose = _g === void 0 ? noop : _g, placeholder = props.placeholder, label = props.label, name = props.name, _h = props.checkField, checkField = _h === void 0 ? defaultProps.checkField : _h, _j = props.checkIndeterminateField, checkIndeterminateField = _j === void 0 ? defaultProps.checkIndeterminateField : _j, _k = props.subItemsField, subItemsField = _k === void 0 ? defaultProps.subItemsField : _k, validationMessage = props.validationMessage, valid = props.valid, tags = props.tags, value = props.value, _l = props.required, required = _l === void 0 ? defaultProps.required : _l, _m = props.validityStyles, validityStyles = _m === void 0 ? defaultProps.validityStyles : _m;\n var tabIndex = getTabIndex(props.tabIndex, disabled);\n var targetRef = React.useRef(null);\n var elementRef = React.useRef(null);\n var inputRef = React.useRef(null);\n var adaptiveInputRef = React.useRef(null);\n var selectRef = React.useRef(null);\n var treeViewRef = React.useRef(null);\n var skipFocusRef = React.useRef(false);\n var tagsToRenderRef = React.useRef([]);\n var popupRef = React.useRef(null);\n var _o = React.useState(), focusedTagState = _o[0], setFocusedTagState = _o[1];\n var _p = React.useState(false), openState = _p[0], setOpenState = _p[1];\n var _q = React.useState(false), focusedState = _q[0], setFocusedState = _q[1];\n var _r = React.useState(), windowWidth = _r[0], setWindowWidth = _r[1];\n var _s = React.useState([]), currentTreeValue = _s[0], setCurrentTreeValue = _s[1];\n var _t = React.useState(''), filterState = _t[0], setFilterState = _t[1];\n var isAdaptive = !!(windowWidth && windowWidth <= MOBILE_MEDIUM_DEVISE && props.adaptive);\n var isOpen = opened !== undefined ? opened : openState;\n var hasValue = Boolean(Array.isArray(value) && value.length);\n var validity = getValidity({ validationMessage: validationMessage, valid: valid, required: required }, hasValue);\n var dir = useRtl(elementRef, props.dir);\n var initialStyleWidth = popupSettings.width !== undefined ?\n popupSettings.width : (style.width !== undefined ? style.width : defaultProps.popupSettings.width);\n var popupWidth = useDropdownWidth(elementRef, initialStyleWidth);\n var popupStyles = __assign({ width: popupWidth }, (dir !== undefined ? { direction: dir } : {}));\n var focus = React.useCallback(function () { return elementRef.current && elementRef.current.focus(); }, []);\n tagsToRenderRef.current = tags === undefined ?\n (value || []).map(function (item) { return ({ text: getItemValue(item, props.textField), data: [item] }); }) : __spreadArray([], tags, true);\n React.useImperativeHandle(targetRef, function () { return ({\n props: props,\n element: elementRef.current,\n focus: focus\n }); });\n React.useImperativeHandle(ref, function () { return targetRef.current; });\n var setValidity = React.useCallback(function () {\n if (selectRef.current && selectRef.current.setCustomValidity) {\n selectRef.current.setCustomValidity(validity.valid\n ? ''\n : validationMessage === undefined ? VALIDATION_MESSAGE : validationMessage);\n }\n }, [validationMessage, validity]);\n React.useEffect(setValidity);\n React.useEffect(function () {\n var observerResize = canUseDOM && window.ResizeObserver && new window.ResizeObserver(calculateMedia.bind(_this));\n if ((document === null || document === void 0 ? void 0 : document.body) && observerResize) {\n observerResize.observe(document.body);\n }\n return function () {\n if (observerResize) {\n observerResize.disconnect();\n }\n };\n }, []);\n React.useEffect(function () {\n if (popupRef.current && isOpen) {\n popupRef.current.setPosition(popupRef.current._popup);\n }\n }, [value, isOpen]);\n var changeValue = React.useCallback(function (event, relatedItems, operation) {\n if (props.onChange) {\n var changeEvent = __assign({ items: relatedItems, operation: operation }, event);\n props.onChange.call(undefined, changeEvent);\n }\n }, [props.onChange]);\n var onChange = React.useCallback(function (event) {\n if (areSame(event.item, value, dataItemKey) || !targetRef.current) {\n return;\n }\n var item = event.item, nativeEvent = event.nativeEvent, syntheticEvent = event.syntheticEvent;\n var ev = {\n syntheticEvent: syntheticEvent,\n nativeEvent: nativeEvent,\n target: targetRef.current\n };\n changeValue(ev, [item], 'toggle');\n }, [value, dataItemKey, changeValue]);\n var openPopup = React.useCallback(function (event) {\n if (!isOpen) {\n if (onOpen) {\n var openEvent = __assign({}, event);\n onOpen.call(undefined, openEvent);\n }\n if (opened === undefined) {\n setOpenState(true);\n setCurrentTreeValue(value || []);\n if (isAdaptive) {\n setTimeout(function () {\n var _a;\n focusElement((_a = adaptiveInputRef.current) === null || _a === void 0 ? void 0 : _a.element);\n }, 300);\n }\n }\n }\n }, [isOpen, opened, onOpen, isAdaptive, adaptiveInputRef]);\n var closePopup = React.useCallback(function (event) {\n if (isOpen) {\n if (onClose) {\n var closeEvent = __assign({}, event);\n onClose.call(undefined, closeEvent);\n }\n if (opened === undefined) {\n setOpenState(false);\n }\n }\n }, [isOpen, opened, onClose]);\n var switchFocus = React.useCallback(function (focusFn) {\n skipFocusRef.current = true;\n focusFn();\n window.setTimeout(function () { return skipFocusRef.current = false; }, 0);\n }, []);\n var focusElement = React.useCallback(function (element) {\n if (element) {\n switchFocus(function () { return element.focus(); });\n }\n }, [switchFocus]);\n var onPopupOpened = React.useCallback(function () {\n var _a;\n if (!focusedState && isOpen) {\n closePopup({ target: targetRef.current });\n }\n else {\n if (props.filterable) {\n focusElement((_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.element);\n }\n else {\n focusElement(treeViewRef.current && treeViewRef.current.element);\n }\n }\n }, [focusedState, isOpen, focusElement, closePopup, props.filterable]);\n var onPopupClosed = React.useCallback(function () {\n if (focusedState) {\n // Move the focus from treeview to dropdown without triggering Focus or Blur events.\n focusElement(elementRef.current);\n }\n }, [focusedState, focusElement]);\n var onFocus = React.useCallback(function (event) {\n if (!focusedState && !skipFocusRef.current) {\n setFocusedState(true);\n if (props.onFocus && targetRef.current) {\n var focusEvent = {\n syntheticEvent: event,\n nativeEvent: event.nativeEvent,\n target: targetRef.current\n };\n props.onFocus.call(undefined, focusEvent);\n }\n }\n }, [focusedState, props.onFocus]);\n var onBlur = React.useCallback(function (event) {\n if (focusedState && !skipFocusRef.current && targetRef.current) {\n setFocusedState(false);\n var ev = {\n syntheticEvent: event,\n nativeEvent: event.nativeEvent,\n target: targetRef.current\n };\n if (props.onBlur) {\n var focusEvent = __assign({}, ev);\n props.onBlur.call(undefined, focusEvent);\n }\n if (!isAdaptive) {\n closePopup(ev);\n }\n }\n }, [focusedState, props.onBlur, isOpen, opened, onClose]);\n var onWrapperMouseDown = React.useCallback(function () {\n if (focusedState) {\n // moving focus from treeview to dropdown triggers Focus and Blur events.\n switchFocus(noop);\n }\n }, [focusedState, switchFocus]);\n var onWrapperClick = React.useCallback(function (event) {\n if (!event.isDefaultPrevented() && targetRef.current) {\n setFocusedState(true);\n var ev = {\n syntheticEvent: event,\n nativeEvent: event.nativeEvent,\n target: targetRef.current\n };\n if (!isOpen) {\n openPopup(ev);\n }\n }\n }, [isOpen, openPopup]);\n var onWrapperKeyDown = React.useCallback(function (event) {\n var _a, _b;\n var keyCode = event.keyCode, altKey = event.altKey;\n var treeviewElement = treeViewRef.current && treeViewRef.current.element;\n if (!targetRef.current || (event.isDefaultPrevented() && ((_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.element) === event.target)) {\n return;\n }\n var ev = {\n syntheticEvent: event,\n nativeEvent: event.nativeEvent,\n target: targetRef.current\n };\n if (value && value.length > 0 &&\n (keyCode === Keys.left || keyCode === Keys.right ||\n keyCode === Keys.home || keyCode === Keys.end ||\n keyCode === Keys.delete)) {\n var tagsToRender = tagsToRenderRef.current;\n var focusedIndex = focusedTagState ?\n tagsToRender.findIndex(function (t) { return matchTags(t, focusedTagState, dataItemKey); }) : -1;\n var newFocusedTag = undefined;\n var hasFocused = focusedIndex !== -1;\n if (keyCode === Keys.left) {\n if (hasFocused) {\n focusedIndex = Math.max(0, focusedIndex - 1);\n }\n else {\n focusedIndex = tagsToRender.length - 1;\n }\n newFocusedTag = tagsToRender[focusedIndex];\n }\n else if (keyCode === Keys.right) {\n if (focusedIndex === tagsToRender.length - 1) {\n newFocusedTag = undefined;\n }\n else if (hasFocused) {\n focusedIndex = Math.min(tagsToRender.length - 1, focusedIndex + 1);\n newFocusedTag = tagsToRender[focusedIndex];\n }\n }\n else if (keyCode === Keys.home) {\n newFocusedTag = tagsToRender[0];\n }\n else if (keyCode === Keys.end) {\n newFocusedTag = tagsToRender[tagsToRender.length - 1];\n }\n else if (keyCode === Keys.delete) {\n if (hasFocused) {\n changeValue(ev, tagsToRender[focusedIndex].data, 'delete');\n }\n }\n if (newFocusedTag !== focusedTagState) {\n setFocusedTagState(newFocusedTag);\n }\n }\n if (isOpen) {\n if (keyCode === Keys.esc || (altKey && keyCode === Keys.up)) {\n event.preventDefault();\n closePopup(ev);\n }\n else if (treeviewElement && treeviewElement.querySelector('.k-focus') &&\n (keyCode === Keys.up || keyCode === Keys.down ||\n keyCode === Keys.left || keyCode === Keys.right ||\n keyCode === Keys.home || keyCode === Keys.end)) {\n if (keyCode === Keys.up && ((_b = inputRef.current) === null || _b === void 0 ? void 0 : _b.element)) {\n var items = Array.from(treeviewElement.querySelectorAll('.k-treeview-item'));\n var focusedItem = __spreadArray([], items, true).reverse().find(function (i) { return Boolean(i && i.querySelector('.k-focus')); });\n if (focusedItem && items.indexOf(focusedItem) === 0) {\n return switchFocus(function () { var _a; focusElement((_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.element); });\n }\n }\n switchFocus(noop);\n }\n else if (keyCode === Keys.down) {\n switchFocus(function () { var _a; focusElement(((_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.element) || treeviewElement); });\n }\n }\n else {\n if (altKey && keyCode === Keys.down) {\n event.preventDefault();\n openPopup(ev);\n }\n }\n }, [isOpen, closePopup, focusElement, switchFocus, openPopup, focusedTagState, dataItemKey, value, changeValue]);\n var onInputKeyDown = React.useCallback(function (event) {\n var keyCode = event.keyCode, altKey = event.altKey;\n if (altKey || (keyCode !== Keys.up && keyCode !== Keys.down)) {\n return;\n }\n event.preventDefault();\n switchFocus(keyCode === Keys.up ?\n function () { focusElement(elementRef.current); } :\n function () { focusElement(treeViewRef.current && treeViewRef.current.element); });\n }, [focusElement, switchFocus]);\n var onClear = React.useCallback(function (event) {\n if (!targetRef.current) {\n return;\n }\n var ev = {\n syntheticEvent: event,\n nativeEvent: event.nativeEvent,\n target: targetRef.current\n };\n changeValue(ev, [], 'clear');\n closePopup(ev);\n event.preventDefault();\n }, [changeValue, closePopup]);\n var onTagDelete = React.useCallback(function (itemsToRemove, event) {\n var _a;\n closePopup({ target: targetRef.current });\n if (!focusedState) {\n focusElement((_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.element);\n }\n changeValue({\n syntheticEvent: event,\n nativeEvent: event.nativeEvent,\n target: targetRef.current\n }, itemsToRemove, 'delete');\n }, [changeValue, closePopup, focusElement, focusedState]);\n var onExpand = React.useCallback(function (event) {\n if (props.onExpandChange && targetRef.current) {\n var item = event.item, itemHierarchicalIndex = event.itemHierarchicalIndex, nativeEvent = event.nativeEvent, syntheticEvent = event.syntheticEvent;\n var expandEvent = {\n level: toLevel(itemHierarchicalIndex),\n item: item,\n nativeEvent: nativeEvent,\n syntheticEvent: syntheticEvent,\n target: targetRef.current\n };\n props.onExpandChange.call(undefined, expandEvent);\n }\n }, [props.onExpandChange]);\n var onFilterChange = React.useCallback(function (event) {\n if (props.onFilterChange && targetRef.current) {\n var filterDesc = { field: props.textField, operator: 'contains', value: event.target.value };\n var ev = {\n filter: filterDesc,\n syntheticEvent: event.syntheticEvent,\n nativeEvent: event.nativeEvent,\n target: targetRef.current\n };\n props.onFilterChange.call(undefined, ev);\n if (props.filter === undefined) {\n setFilterState(event.target.value);\n }\n }\n }, [props.onFilterChange, props.filter, props.textField]);\n var onCancel = React.useCallback(function (event) {\n if (!targetRef.current) {\n return;\n }\n var ev = {\n syntheticEvent: event,\n nativeEvent: event.nativeEvent,\n target: targetRef.current\n };\n if (props.onCancel) {\n props.onCancel.call(undefined, ev);\n }\n ;\n closePopup(ev);\n event.preventDefault();\n }, [props.onCancel, closePopup]);\n var renderAdaptiveListContainer = function () {\n var mobileFilter = props.filterable ? (React.createElement(ListFilter, { value: props.filter === undefined ? filterState : props.filter, ref: adaptiveInputRef, onChange: onFilterChange, onKeyDown: onInputKeyDown, size: size, rounded: rounded, fillMode: fillMode })) : null;\n var actionSheetProps = {\n adaptiveTitle: props.adaptiveTitle,\n expand: isOpen,\n onClose: function (event) { return props.onCancel ? onCancel(event) : onClear(event); },\n windowWidth: windowWidth,\n mobileFilter: mobileFilter,\n footer: {\n cancelText: localization.toLanguageString(adaptiveModeFooterCancel, messages[adaptiveModeFooterCancel]),\n onCancel: function (event) { return props.onCancel ? onCancel(event) : onClear(event); },\n applyText: localization.toLanguageString(adaptiveModeFooterApply, messages[adaptiveModeFooterApply]),\n onApply: function (event) { return closePopup(event); }\n }\n };\n return (React.createElement(AdaptiveMode, __assign({}, actionSheetProps),\n React.createElement(ActionSheetContent, { className: '!k-overflow-hidden' },\n React.createElement(\"div\", { className: 'k-list-container' },\n React.createElement(\"div\", { className: 'k-list k-list-lg' }, data.length > 0 ? (React.createElement(TreeView, { ref: treeViewRef, tabIndex: tabIndex, data: data, focusIdField: dataItemKey, textField: props.textField, checkField: checkField, checkIndeterminateField: checkIndeterminateField, expandField: props.expandField, childrenField: subItemsField, expandIcons: true, onItemClick: onChange, onCheckChange: onChange, onExpandChange: onExpand, checkboxes: true, size: size, item: props.item, dir: dir })) : (React.createElement(NoData, null, localization.toLanguageString(nodata, messages[nodata]))))))));\n };\n var calculateMedia = React.useCallback(function (entries) {\n for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {\n var entry = entries_1[_i];\n setWindowWidth(entry.target.clientWidth);\n }\n ;\n }, []);\n var NoData = props.listNoData || ListNoData;\n var localization = useLocalization();\n var isValid = !validityStyles || validity.valid;\n var size = props.size, rounded = props.rounded, fillMode = props.fillMode;\n var currentTagsToRender = isAdaptive && isOpen ? currentTreeValue : tagsToRenderRef.current;\n var multiselecttree = (React.createElement(React.Fragment, null,\n React.createElement(\"span\", { className: classNames('k-multiselecttree k-input', props.className, (_a = {},\n _a[\"k-input-\".concat(sizeMap[size] || size)] = size,\n _a[\"k-rounded-\".concat(roundedMap[rounded] || rounded)] = rounded,\n _a[\"k-input-\".concat(fillMode)] = fillMode,\n _a['k-focus'] = focusedState && !disabled,\n _a['k-invalid'] = !isValid,\n _a['k-disabled'] = disabled,\n _a['k-loading'] = props.loading,\n _a['k-required'] = required,\n _a)), tabIndex: tabIndex, accessKey: props.accessKey, id: id, style: label ? __assign(__assign({}, style), { width: undefined }) : style, dir: dir, ref: elementRef, onKeyDown: disabled ? undefined : onWrapperKeyDown, onMouseDown: onWrapperMouseDown, onFocus: onFocus, onBlur: onBlur, role: \"combobox\", \"aria-haspopup\": \"tree\", \"aria-expanded\": isOpen, \"aria-disabled\": disabled, \"aria-label\": label, \"aria-labelledby\": props.ariaLabelledBy, \"aria-describedby\": props.ariaDescribedBy ? props.ariaDescribedBy : 'tagslist-' + id, \"aria-required\": props.required, onClick: disabled ? undefined : onWrapperClick },\n React.createElement(\"div\", { id: 'tagslist-' + id, className: classNames('k-input-values k-chip-list k-selection-multiple', (_b = {},\n _b[\"k-chip-list-\".concat(sizeMap[size] || size)] = size,\n _b)) }, currentTagsToRender.length > 0 ? (React.createElement(TagList, { tag: props.tag, onTagDelete: onTagDelete, data: currentTagsToRender, guid: id, focused: focusedTagState ? tagsToRenderRef.current.find(function (t) { return matchTags(t, focusedTagState, dataItemKey); }) : undefined, size: size })) : placeholder),\n React.createElement(\"span\", { className: \"k-input-inner\" },\n React.createElement(\"span\", { className: \"k-input-value-text\" }, \"\\u00A0\")),\n props.loading && React.createElement(IconWrap, { className: \"k-input-loading-icon\", name: 'loading' }),\n hasValue && !disabled && currentTagsToRender.length > 0 &&\n React.createElement(ClearButton, { onClick: onClear }),\n React.createElement(\"select\", { name: name, ref: selectRef, tabIndex: -1, \"aria-hidden\": true, title: label, style: { opacity: 0, width: 1, border: 0, zIndex: -1, position: 'absolute', left: '50%' } },\n React.createElement(\"option\", { value: props.valueMap ? props.valueMap.call(undefined, value) : value })),\n !isAdaptive && React.createElement(Popup, { popupClass: classNames(popupSettings.popupClass, 'k-multiselecttree-popup'), className: classNames(popupSettings.className, { 'k-rtl': dir === 'rtl' }), style: popupStyles, animate: popupSettings.animate, anchor: elementRef.current, show: isOpen, onOpen: onPopupOpened, onClose: onPopupClosed, appendTo: popupSettings.appendTo, ref: popupRef },\n props.filterable && (React.createElement(ListFilter, { value: props.filter === undefined ? filterState : props.filter, ref: inputRef, onChange: onFilterChange, onKeyDown: onInputKeyDown, tabIndex: tabIndex, size: size, rounded: rounded, fillMode: fillMode })),\n data.length > 0 ? (React.createElement(TreeView, { ref: treeViewRef, tabIndex: tabIndex, data: data, focusIdField: dataItemKey, textField: props.textField, checkField: checkField, checkIndeterminateField: checkIndeterminateField, expandField: props.expandField, childrenField: subItemsField, expandIcons: true, onItemClick: onChange, onCheckChange: onChange, onExpandChange: onExpand, checkboxes: true, size: size, item: props.item, dir: dir })) : (React.createElement(NoData, null, localization.toLanguageString(nodata, messages[nodata]))))),\n isAdaptive && renderAdaptiveListContainer()));\n return label ? (React.createElement(FloatingLabel, { label: label, editorValue: hasValue, editorPlaceholder: placeholder, editorValid: isValid, editorDisabled: disabled, editorId: id, style: { width: style ? style.width : undefined }, children: multiselecttree, dir: dir })) : multiselecttree;\n});\nvar propTypes = {\n opened: PropTypes.bool,\n disabled: PropTypes.bool,\n dir: PropTypes.string,\n tabIndex: PropTypes.number,\n accessKey: PropTypes.string,\n data: PropTypes.array,\n value: PropTypes.any,\n valueMap: PropTypes.func,\n placeholder: PropTypes.string,\n dataItemKey: PropTypes.string.isRequired,\n textField: PropTypes.string.isRequired,\n checkField: PropTypes.string,\n checkIndeterminateField: PropTypes.string,\n expandField: PropTypes.string,\n subItemsField: PropTypes.string,\n className: PropTypes.string,\n style: PropTypes.object,\n label: PropTypes.string,\n validationMessage: PropTypes.string,\n validityStyles: PropTypes.bool,\n valid: PropTypes.bool,\n required: PropTypes.bool,\n name: PropTypes.string,\n id: PropTypes.string,\n ariaLabelledBy: PropTypes.string,\n ariaDescribedBy: PropTypes.string,\n filterable: PropTypes.bool,\n filter: PropTypes.string,\n loading: PropTypes.bool,\n tags: PropTypes.arrayOf(PropTypes.shape({\n text: PropTypes.string,\n data: PropTypes.arrayOf(PropTypes.any)\n })),\n popupSettings: PropTypes.shape({\n animate: PropTypes.oneOfType([PropTypes.bool, PropTypes.shape({\n openDuration: PropTypes.number,\n closeDuration: PropTypes.number\n })]),\n popupClass: PropTypes.string,\n className: PropTypes.string,\n appendTo: PropTypes.any,\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n height: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n }),\n onOpen: PropTypes.func,\n onClose: PropTypes.func,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n onChange: PropTypes.func,\n onFilterChange: PropTypes.func,\n onExpandChange: PropTypes.func,\n onCancel: PropTypes.func,\n item: PropTypes.func,\n listNoData: PropTypes.func,\n adaptiveTitle: PropTypes.string,\n adaptive: PropTypes.bool\n};\nMultiSelectTree.displayName = 'KendoReactMultiSelectTree';\nMultiSelectTree.defaultProps = defaultProps;\nMultiSelectTree.propTypes = propTypes;\n","var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nimport { getter } from '@progress/kendo-react-common';\n/** @hidden */\nexport var getValueMap = function (value, idGetter) {\n var map = {};\n if (value && value.length) {\n value.forEach(function (item) {\n map[idGetter(item)] = true;\n });\n }\n return map;\n};\n/**\n * Get MultiSelectTree new value from the component `onChange` event.\n *\n * @param {any[]} data\n * @param {object} options\n * @returns {any[]}\n */\nexport var getMultiSelectTreeValue = function (data, options) {\n var items = options.items, dataItemKey = options.dataItemKey, value = options.value, _a = options.subItemsField, subItemsField = _a === void 0 ? 'items' : _a, operation = options.operation;\n var idGetter = getter(dataItemKey);\n var valueMap = getValueMap(value, idGetter);\n if (operation === 'clear') {\n return [];\n }\n else if (operation === 'delete') {\n var deletedItemsMap_1 = getValueMap(items, idGetter);\n return value.filter(function (item) { return !deletedItemsMap_1[idGetter(item)]; });\n }\n // operation === 'toggle'\n var selectedItem = items[0];\n var selectedId = idGetter(selectedItem);\n var subItemGetter = getter(subItemsField);\n var stack = __spreadArray([], data, true);\n var context = [];\n var parents = [];\n var foundItem;\n while (stack.length) {\n var currentItem = stack.pop();\n if (selectedId === idGetter(currentItem)) {\n parents = context.map(function (contextItem) { return contextItem.item; });\n foundItem = currentItem;\n break;\n }\n else {\n if (context &&\n context.length &&\n context[context.length - 1].parentPosition === stack.length) {\n context.pop();\n }\n var subItems = subItemGetter(currentItem);\n if (subItems && subItems.length) {\n context.push({ item: currentItem, parentPosition: stack.length });\n stack.push.apply(stack, subItems);\n }\n }\n }\n var childrenStack = __spreadArray([], (subItemGetter(foundItem) || []), true);\n var children = [];\n while (childrenStack.length) {\n var currentItem = childrenStack.pop();\n children.push(currentItem);\n var subItems = subItemGetter(currentItem);\n if (subItems && subItems.length) {\n childrenStack.push.apply(childrenStack, subItems);\n }\n }\n var isChecked = !valueMap[selectedId];\n var newValue = [];\n if (isChecked) {\n newValue.push.apply(newValue, value);\n newValue.push(foundItem);\n newValue.push.apply(newValue, children.filter(function (item) { return !valueMap[idGetter(item)]; }));\n var parentCandidates = parents.filter(function (item) { return !valueMap[idGetter(item)]; });\n var newValueMap_1 = getValueMap(newValue, idGetter);\n for (var i = parentCandidates.length - 1; i > -1; i--) {\n var candidate = parentCandidates[i];\n var subItems = subItemGetter(candidate);\n var checkedChildrenLength = subItems.filter(function (item) { return newValueMap_1[idGetter(item)]; }).length;\n if (checkedChildrenLength < subItems.length) {\n break;\n }\n else {\n newValue.push(candidate);\n newValueMap_1[idGetter(candidate)] = true;\n }\n }\n }\n else {\n var foundId_1 = idGetter(foundItem);\n var childrenMap_1 = getValueMap(children, idGetter);\n var parentsMap_1 = getValueMap(parents, idGetter);\n newValue.push.apply(newValue, (value\n .filter(function (item) {\n var itemId = idGetter(item);\n return !childrenMap_1[itemId] && foundId_1 !== itemId && !parentsMap_1[itemId];\n })));\n }\n return newValue;\n};\n// /** @hidden */\n// const mapCheckAndIntermidiate = (\n// data,\n// options: {\n// valueMap: {[dataItemKey: string]: boolean};\n// callback?: (item: any) => any;\n// idGetter: (item: any) => any;\n// subItemGetter: (item: any) => any;\n// subItemSetter: (item: any, value: any) => void;\n// checkSetter: (item: any, value: any) => void;\n// checkIndeterminateSetter: (item: any, value: any) => void;\n// }\n// ) => {\n// const {\n// idGetter,\n// subItemGetter,\n// subItemSetter,\n// checkSetter,\n// checkIndeterminateSetter\n// } = options;\n// if (!data || !data.length) { return [data, false];}\n// let hasChecked = false;\n// const newData = [...data].map(dataItem => {\n// const [children, hasCheckedChildren] = mapCheckAndIntermidiate(subItemGetter(dataItem), options);\n// const isChecked = options.valueMap[idGetter(dataItem)];\n// if (isChecked || hasCheckedChildren) {\n// hasChecked = true;\n// }\n// const newItem = { ...dataItem };\n// subItemSetter(newItem, children);\n// checkSetter(newItem, isChecked);\n// checkIndeterminateSetter(newItem, !isChecked && hasCheckedChildren);\n// return options.callback ? options.callback(newItem) : newItem;\n// });\n// return [newData, hasChecked];\n// };\n// /**\n// *\n// * @param data\n// * @param options\n// * @returns\n// */\n// /**\n// * Creates a new array with the results of calling the provided callback function\n// * on every element in the provided data tree. The new tree items have their `check` and `checkIndeterminate` fields set based on provided value.\n// *\n// * @param {any[]} tree - The data tree.\n// * @param {object} options - The options used to map the tree items like check and checkIndeterminateField fields\n// * @returns {any[]} - The new data tree.\n// */\n// export const mapMultiSelectTreeData = (\n// tree,\n// options: {\n// checkField?: string;\n// checkIndeterminateField?: string;\n// subItemsField?: string;\n// dataItemKey: string;\n// value: Array<any>;\n// callback?: (item) => any;\n// }\n// ) => {\n// const {\n// subItemsField = 'items',\n// checkField = 'checkField',\n// checkIndeterminateField = 'checkIndeterminateField',\n// callback\n// } = options;\n// const idGetter = getter(options.dataItemKey);\n// const [result] = mapCheckAndIntermidiate(\n// tree,\n// {\n// callback,\n// valueMap: getValueMap(options.value, idGetter),\n// idGetter,\n// subItemGetter: getter(subItemsField),\n// subItemSetter: setter(subItemsField),\n// checkSetter: setter(checkField),\n// checkIndeterminateSetter: setter(checkIndeterminateField)\n// }\n// );\n// return result;\n// };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { classNames } from '@progress/kendo-react-common';\nimport { provideLocalizationService, registerForLocalization } from '@progress/kendo-react-intl';\nimport { labelsOptional, messages } from './messages';\nimport { validatePackage } from '@progress/kendo-react-common';\nimport { packageMetadata } from './package-metadata';\n/**\n * Represents the KendoReact FloatingLabel component.\n *\n * @example\n * ```jsx\n * const sizes = [\"X-Small\", \"Small\", \"Medium\", \"Large\", \"X-Large\", \"2X-Large\"];\n * const App = () => {\n * const [ddlState, setDdlState] = React.useState();\n * const editorId = 'ddl-sizes';\n * return (\n * <FloatingLabel label={'Shirt Size:'} editorId={editorId} editorValue={ddlState}>\n * <DropDownList\n * id={editorId}\n * value={ddlState}\n * data={sizes}\n * onChange={(e) => setDdlState(e.target.value)}\n * />\n * </FloatingLabel>\n * );\n * };\n *\n * ReactDOM.render(<App />, document.querySelector('my-app'));\n * ```\n */\nvar FloatingLabel = /** @class */ (function (_super) {\n __extends(FloatingLabel, _super);\n function FloatingLabel(props) {\n var _this = _super.call(this, props) || this;\n /**\n * @hidden\n */\n _this.state = {\n focused: false\n };\n /**\n * @hidden\n */\n _this.handleFocus = function (_) {\n _this.setState({ focused: true });\n };\n /**\n * @hidden\n */\n _this.handleBlur = function (_) {\n _this.setState({ focused: false });\n };\n validatePackage(packageMetadata);\n return _this;\n }\n /**\n * @hidden\n */\n FloatingLabel.prototype.render = function () {\n var _a = this.props, label = _a.label, editorId = _a.editorId, className = _a.className, labelClassName = _a.labelClassName, editorValue = _a.editorValue, editorPlaceholder = _a.editorPlaceholder, editorValid = _a.editorValid, editorDisabled = _a.editorDisabled, style = _a.style, id = _a.id, optional = _a.optional;\n var localizationService = provideLocalizationService(this);\n var localizedOptional = optional ? localizationService\n .toLanguageString(labelsOptional, messages[labelsOptional]) : '';\n var optionalElement = localizedOptional && (React.createElement(\"span\", { className: 'k-label-optional' }, localizedOptional));\n var spanClassNames = classNames({\n 'k-floating-label-container': true,\n 'k-focus': this.state.focused,\n 'k-empty': !editorPlaceholder && !editorValue && (editorValue !== 0),\n 'k-text-disabled': editorDisabled,\n 'k-rtl': this.props.dir === 'rtl'\n }, className);\n var labelClassNames = classNames({\n 'k-label': true,\n 'k-text-error': editorValid === false,\n 'k-text-disabled': editorDisabled\n }, labelClassName);\n return (React.createElement(\"span\", { id: this.props.id, className: spanClassNames, onFocus: this.handleFocus, onBlur: this.handleBlur, style: style, dir: this.props.dir },\n this.props.children,\n label\n ? editorId\n ? React.createElement(\"label\", { id: id, htmlFor: editorId, className: labelClassNames },\n label,\n optionalElement)\n : React.createElement(\"span\", { id: id, className: labelClassNames },\n label,\n optionalElement)\n : null));\n };\n /**\n * @hidden\n */\n FloatingLabel.propTypes = {\n label: PropTypes.string,\n editorId: PropTypes.string,\n editorValue: PropTypes.oneOfType([PropTypes.string, PropTypes.bool, PropTypes.number]),\n editorPlaceholder: PropTypes.string,\n editorValid: PropTypes.bool,\n editorDisabled: PropTypes.bool,\n id: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n labelClassName: PropTypes.string,\n optional: PropTypes.bool\n };\n return FloatingLabel;\n}(React.Component));\nexport { FloatingLabel };\nregisterForLocalization(FloatingLabel);\n","var _a;\n/**\n * @hidden\n */\nexport var labelsOptional = 'labels.optional';\n/**\n * @hidden\n */\nexport var messages = (_a = {},\n _a[labelsOptional] = '(Optional)',\n _a);\n","/**\n * @hidden\n */\nexport var packageMetadata = {\n name: '@progress/kendo-react-labels',\n productName: 'KendoReact',\n productCodes: ['KENDOUIREACT', 'KENDOUICOMPLETE'],\n publishDate: 1700063806,\n version: '',\n licensingDocsUrl: 'https://www.telerik.com/kendo-react-ui/my-license/?utm_medium=product&utm_source=kendoreact&utm_campaign=kendo-ui-react-purchase-license-keys-warning'\n};\n"],"names":["__extends","extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","prototype","hasOwnProperty","call","TypeError","String","__","this","constructor","create","__assign","assign","t","s","i","n","arguments","length","apply","ListContainer","_super","render","_a","props","children","width","dir","itemsCount","popupSettings","React","Popup","style","direction","contentKey","join","ListFilter","ref","input","current","className","TextBox","value","onChange","onKeyDown","tabIndex","onClick","e","stopPropagation","size","fillMode","rounded","prefix","InputPrefix","IconWrap","name","icon","searchIcon","propTypes","PropTypes","displayName","GroupStickyHeader","group","groupMode","renderer","item","undefined","isPresent","matchText","text","word","ignoreCase","temp","toLowerCase","indexOf","scrollToItem","scrollElem","list","itemIndex","translate","virtualScroll","viewportHeight","offsetHeight","li","itemOffsetTop","offsetTop","scrollTop","itemHeight","diff","itemIndexStartsWith","items","field","result","itemText","getItemValue","startsWith","getItemIndexByText","data","textField","matchCase","casing","findIndex","toString","path","split","data_1","forEach","removeDataItems","toRemove","key","areSame","splice","item1","item2","getFocusedItem","selectedIndex","preventDefaultNonInputs","event","target","nodeName","preventDefault","matchTags","tag1","tag2","data1","data2","matchDataCollections","ListDefaultItem","selected","defaultItem","onMouseDown","position","classNames","ListItem","_this","handleClick","index","dataItem","virtual","disabled","id","role","focused","Boolean","ListGroupItem","_b","isMultiColumn","nodata","clear","comboArrowBtnAriaLabelExpand","comboArrowBtnAriaLabelCollapse","dropDownListArrowBtnAriaLabel","adaptiveModeFooterApply","adaptiveModeFooterCancel","messages","List","renderItems","valueField","groupField","optionsGuid","skip","focusedIndex","_c","highlightSelected","itemRender","groupHeaderItemRender","isArray","groupCounter","map","previous","realIndex","idIndex","concat","renderNoValueElement","localizationService","noDataRender","noDataElement","toLanguageString","provideLocalizationService","show","wrapperCssClass","wrapperStyle","listStyle","listRef","wrapperRef","listClassName","onBlur","onScroll","unselectable","scroller","registerForLocalization","VirtualScroll","container","scrollElement","containerHeight","total","enabled","pageSize","PageChange","prevScrollPos","listTranslate","scrollSyncing","scrollerRef","element","vs","setAttribute","window","setTimeout","calcScrollElementHeight","bind","heightChanged","Math","min","newHeight","height","scrollHandler","defineProperty","get","enumerable","configurable","changePage","newSkip","max","take","translateTo","dY","transform","reset","scrollToEnd","scrollHeight","localScrollUp","targetTranslate","additionalOnTop","validateTranslate","localScrollDown","itemsLenght","scrollNonStrict","floatItemIndex","floor","prev","Navigation","navigate","args","keyCode","Keys","up","left","next","step","skipItems","down","right","home","end","DropDownBase","component","wrapper","navigation","handleItemClick","state","initState","syntheticEvent","handleItemSelect","togglePopup","applyState","handleFocus","events","push","type","filterChanged","filterable","filter","operator","opened","calculatePopupWidth","pageChange","page","triggerOnPageChange","scrollToVirtualItem","selectedItemIndex","scrollPopupByPageSize","_d","_e","_f","parentElement","scroll","top","renderScrollElement","resetGroupStickyHeader","groupName","that","setState","listBoxId","guid","didMount","popupWidth","shouldUpdate","calculateDir","forceUpdate","ownerDocument","defaultView","dirCalculated","getComputedStyle","offsetWidth","vsEnabled","once","parentNode","keys","eventArgs","nativeEvent","eventData","handler","triggerPageChangeCornerItems","dataItemKey","getPopupSettings","defaultProps","getGroupedDataModernMode","newData","el","basicPropTypes","accessKey","label","loading","animate","openDuration","closeDuration","popupClass","appendTo","onOpen","onClose","onFocus","listNoDataRender","focusedItemIndex","header","footer","defaultValue","isRequired","onFilterChange","onPageChange","required","validityStyles","packageMetadata","productName","productCodes","publishDate","version","licensingDocsUrl","MOBILE_SMALL_DEVISE","MOBILE_MEDIUM_DEVISE","sizeMap","kendoThemeMaps","roundedMap","DropDownListWithoutContext","_element","base","searchState","last","_select","_skipFocusEvent","_filterInput","_navigated","_lastKeypressIsFilter","_inputId","focus","newSelected","triggerOnChange","componentRef","dummySelect","title","opacity","border","zIndex","valueMap","renderListContainer","groupStickyHeaderItemRender","listContainerProps","anchor","onPopupOpened","onPopupClosed","renderListFilter","renderDefaultItem","renderList","slice","getFocusedIndex","maxHeight","filterText","handleListFilterChange","handleKeyDown","handleDefaultItemClick","search","clearTimeout","_typingTimeout","delay","selectNext","mappedData","idx","isInLoop","character","charAt","sameCharsOnly","dataLength","startIndex","splitIndex","shuffleData","loopMatch","nextMatch","_valueDuringOnChange","Element","leftRightKeysNavigation","skipDisabledItems","homeOrEndKeys","upOrDownKeys","shouldOpen","altKey","enter","space","shouldClose","esc","leftOrRightKeys","shouldNavigate","pageUp","pageDown","haveFocusedItemAndDataNotEmpty","resetValueIfDisabledItem","onNavigate","newIndex","tempnewIndex_1","find","dataToSearch","tempnewIndex_2","pop","tempnewIndex_3","dataTest","tempnewIndex_4","handleBlur","adaptive","windowWidth","renderAdaptive","handleWrapperClick","isPropagationStopped","handleKeyPress","which","fromCharCode","charCode","focusElement","setValidity","setCustomValidity","validity","valid","validationMessage","validatePackage","canUseDOM","document","customError","isValid","valueMissing","componentDidUpdate","prevProps","prevState","prevTotal","prevOpened","opening","selectedItem_1","prevSelectedItem","selectedItemChanged","componentDidMount","observerResize","ResizeObserver","calculateMedia","body","observe","componentWillUnmount","disconnect","btnAriaLabel","iconClassName","valueRender","valueDefaultRendering","valueElement","dropdownlist","getTabIndex","onKeyPress","ariaLabel","ariaLabelledBy","ariaDescribedBy","Button","iconClass","themeColor","svgIcon","caretAltDownIcon","renderAdaptiveListContainer","FloatingLabel","editorValue","editorValid","editorDisabled","adaptiveTitle","actionSheetProps","navigatable","navigatableElements","expand","animation","animationStyles","ActionSheet","ActionSheetHeader","xIcon","ActionSheetContent","entries","_i","entries_1","entry","clientWidth","svgIconPropType","DropDownListPropsContext","createPropsContext","DropDownList","withPropsContext","SearchBar","_input","prevValue","prevSuggestedText","suggestedText","valueChanged","deleting","endsWith","activeElement","getActiveElement","setSelectionRange","expanded","searchbar","autoComplete","placeholder","readOnly","owns","activedescendant","ariaRequired","ClearButton","ComboBoxWithoutContext","_suggested","_skipBlur","_adaptiveFilterInput","mobileMode","toggleBtnClick","isCurrentValueDisabled","getCurrentValueDisabledStatus","clearValueOnToggleBtnClick","mobileText","adaptiveFilter","renderMobileListFilter","selectedItemText","mobileInputText","handleMobileFilterChange","onInputKeyDown","onGroupScroll","clearValueOnBlur","applyValueOnRejectSuggestions","currentTarget","onInputClick","isCustomValue","clearValueOnEnterOrEsc","applyValueOnEnter","inputOnChange","suggest","selectionAtEnd","selectionEnd","prevText","deletedSuggestion","suggestValue","focusedItem","clearButtonClick","clearValue","selectedItem","_valueOnDidUpdate","btnAriaLabelExpand","btnAriaLabelCollapse","clearButton","inputText","renderClearButton","combobox","renderSearchBar","editorId","currentIndex","allowCustom","valueIndex","itemSelected","selectFocusedItem","valueItemText","isMobileDevice","footerClassName","ListComponent","isAdaptive","suggested","suggestedItem","substring","ComboBoxPropsContext","ComboBox","AutoCompleteWithoutContext","_isScrolling","newText","itemFocus","onChangeHandler","prevSuggestion","prevUserInput","newValue","suggestion","userInput","altOrOptionsKeyPressed","applyInputValue","prevData","dataChanged","focusedItemChanged","typedText","newFocused","eventKey","readonly","inputValue","indexOfFocusedItem","AutoCompletePropsContext","AutoComplete","SELECTION_TYPE","SELECTION_ACTION","__spreadArray","to","from","pack","ar","l","FOCUS_ACTION","CHIP_DATA_ACTION","ChipListSelectionContext","_args","ChipListFocusContext","ChipListDataContext","useSelection","callback","action","newState","selection","single","toggle","payload","Error","remove","multiple","some","none","selectionReducer","useFocus","focusReducer","useData","defaultData","add","reorder","dataReducer","ChipList","chipListRef","useDir","chip","onDataChange","ChipComponent","Chip","handleChange","_g","stateValue","dispatchStateValue","handleDataChange","_h","stateData","dispatchData","itemsReducer","acc","chipValue","reduce","valueGetter","getter","textGetter","_j","dispatchFocus","mouseProps","useMouse","Provider","removable","chipRef","dispatchSelection","handleRemove","onRemove","delete","selectedIcon","selectedSvgIcon","toIconName","avatar","src","image","alt","imageAlt","removeIcon","removeSvgIcon","xCircleIcon","removeIconSvg","selectedIconSvg","TagList","tagRender","TagComponent","tag","onTagDelete","tagData","focusedTag","replace","ActiveDescendant","FocusedItemType","AdaptiveMode","mobileFilter","ActionSheetFooter","cancelText","onCancel","applyText","onApply","isCustom","CustomItem","MultiSelectWithoutContext","PopupList","currentValue","_valueItemsDuringOnChange","_tags","_adaptiveInput","_lastSelectedOrDeslectedItemIndex","scrollToFocused","localization","indexInValue","newItems","blur","itemsToRemove","getFocusedState","customItem","nextFocusedItem","searchbarRef","backspace","shiftKey","onTagsNavigate","ctrlKey","metaKey","code","dataToSet","updateStateOnKeyboardNavigation","lastSelectedOrDeselectedIndex","getLastSelectedOrDeselectedIndex","customItemSelect","listContainerContent","focusedType","fontStyle","plusIcon","closePopup","tagsToRender","autoClose","tags","closing","customItemFocused","currentTagsToRender","setItems","placeholderToShow","adaptivePlaceholder","ariaActivedescendant","TagsList","itemsKey","newFocusedTag","hasFocused","removed","itemtoSelect","srcItems","destItems","focusedInd","last_1","None","correction","MultiSelectPropsContext","MultiSelect","MultiColumnList","__rest","getOwnPropertySymbols","propertyIsEnumerable","MultiColumnComboBoxPropsContext","MultiColumnComboBox","directProps","usePropsContext","comboBoxRef","scrollbarWidth","getScrollbarWidth","columns","other","initialGroupHeader","groupHeader","setGroupHeader","showStickyHeader","setShowStickyHeader","colSpan","column","uniqueKey","defaultWidth","liProps","curGroup","prevGroup","groupGetter","rendering","handleEvent","onOpenHandler","onCloseHandler","onFocusHandler","onBlurHandler","onPageChangeHandler","onFilterChangeHandler","setScrollbarWidth","listProps","PopupPropsContext","PopupProps","useDropdownWidth","elementRef","initialStyleWidth","setWidth","ListNoData","ValueHolder","toLevel","hierarchicalIndex","parseInt","selectField","subItemsField","DropDownTreePropsContext","DropDownTree","combinedProps","calculatedId","noop","inputRef","adaptiveInputRef","selectRef","treeViewRef","skipFocusRef","setStateValue","controlled","hasValue","currentValueText","parameters","getValidity","useRtl","popupStyles","open","setOpen","isOpen","setFocused","setWindowWidth","setFilter","openPopup","openEvent","closeEvent","onWrapperClick","isDefaultPrevented","ev","switchFocus","focusFn","onWrapperKeyDown","treeview","querySelector","querySelectorAll","reverse","onClear","focusEvent","onWrapperMouseDown","changeValue","changeEvent","level","itemHierarchicalIndex","onExpand","onExpandChange","expandEvent","treeViewData","mapTree","extendDataItem","NoData","listNoData","ValueComponent","valueHolder","useLocalization","dropdowntree","TreeView","focusIdField","expandField","childrenField","expandIcons","onItemClick","editorPlaceholder","checkField","checkIndeterminateField","MultiSelectTreePropsContext","MultiSelectTree","componentGuid","_k","_l","_m","targetRef","tagsToRenderRef","popupRef","_o","focusedTagState","setFocusedTagState","_p","openState","setOpenState","_q","focusedState","setFocusedState","_r","_s","currentTreeValue","setCurrentTreeValue","_t","filterState","setFilterState","setPosition","_popup","relatedItems","operation","treeviewElement","multiselecttree","onCheckChange","checkboxes","getValueMap","idGetter","getMultiSelectTreeValue","options","deletedItemsMap_1","foundItem","selectedId","subItemGetter","stack","context","parents","currentItem","contextItem","parentPosition","subItems","childrenStack","parentCandidates","newValueMap_1","candidate","foundId_1","childrenMap_1","parentsMap_1","itemId","_","labelClassName","optional","localizedOptional","labelsOptional","optionalElement","spanClassNames","labelClassNames","htmlFor"],"sourceRoot":""}