{"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":""}