@progress/kendo-react-dropdowns 6.1.1 → 7.0.0-develop.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (177) hide show
  1. package/{dist/es/AutoComplete → AutoComplete}/AutoComplete.d.ts +12 -8
  2. package/{dist/npm/AutoComplete → AutoComplete}/AutoCompleteProps.d.ts +4 -1
  3. package/{dist/es/ComboBox → ComboBox}/ComboBox.d.ts +12 -8
  4. package/{dist/es/ComboBox → ComboBox}/ComboBoxProps.d.ts +4 -1
  5. package/{dist/es/DropDownList → DropDownList}/DropDownList.d.ts +9 -5
  6. package/{dist/es/DropDownList → DropDownList}/DropDownListProps.d.ts +4 -1
  7. package/{dist/es/DropDownTree → DropDownTree}/DropDownTree.d.ts +4 -0
  8. package/{dist/npm/DropDownTree → DropDownTree}/DropDownTreeProps.d.ts +4 -1
  9. package/DropDownTree/ListNoData.d.ts +10 -0
  10. package/DropDownTree/useDropdownWidth.d.ts +9 -0
  11. package/LICENSE.md +1 -1
  12. package/{dist/es/MultiColumnComboBox → MultiColumnComboBox}/MultiColumnComboBox.d.ts +4 -0
  13. package/{dist/npm/MultiSelect → MultiSelect}/MultiSelect.d.ts +9 -5
  14. package/{dist/es/MultiSelect → MultiSelect}/MultiSelectProps.d.ts +4 -1
  15. package/{dist/npm/MultiSelect → MultiSelect}/TagList.d.ts +5 -1
  16. package/{dist/es/MultiSelectTree → MultiSelectTree}/MultiSelectTree.d.ts +4 -0
  17. package/{dist/es/MultiSelectTree → MultiSelectTree}/MultiSelectTreeProps.d.ts +5 -1
  18. package/{dist/npm/MultiSelectTree → MultiSelectTree}/utils.d.ts +5 -1
  19. package/{dist/npm/common → common}/AdaptiveMode.d.ts +5 -1
  20. package/common/ClearButton.d.ts +18 -0
  21. package/{dist/npm/common → common}/DropDownBase.d.ts +5 -1
  22. package/{dist/es/common → common}/GroupStickyHeader.d.ts +5 -1
  23. package/{dist/es/common → common}/List.d.ts +7 -3
  24. package/common/ListContainer.d.ts +22 -0
  25. package/common/ListDefaultItem.d.ts +20 -0
  26. package/{dist/npm/common → common}/ListFilter.d.ts +4 -0
  27. package/{dist/npm/common → common}/ListGroupItem.d.ts +5 -1
  28. package/{dist/npm/common → common}/ListItem.d.ts +5 -1
  29. package/common/MultiColumnList.d.ts +9 -0
  30. package/common/Navigation.d.ts +17 -0
  31. package/{dist/es/common → common}/SearchBar.d.ts +5 -1
  32. package/{dist/npm/common → common}/VirtualScroll.d.ts +4 -1
  33. package/common/constants.d.ts +8 -0
  34. package/{dist/es/common → common}/events.d.ts +4 -1
  35. package/{dist/npm/common → common}/filterDescriptor.d.ts +4 -0
  36. package/{dist/es/common → common}/settings.d.ts +5 -2
  37. package/{dist/npm/common → common}/utils.d.ts +4 -0
  38. package/dist/cdn/js/kendo-react-dropdowns.js +5 -1
  39. package/index.d.ts +29 -0
  40. package/index.js +5 -0
  41. package/index.mjs +4383 -0
  42. package/{dist/npm/messages → messages}/index.d.ts +4 -0
  43. package/package-metadata.d.ts +9 -0
  44. package/package.json +34 -62
  45. package/about.md +0 -3
  46. package/dist/es/AutoComplete/AutoComplete.js +0 -652
  47. package/dist/es/AutoComplete/AutoCompleteProps.d.ts +0 -243
  48. package/dist/es/AutoComplete/AutoCompleteProps.js +0 -2
  49. package/dist/es/ComboBox/ComboBox.js +0 -915
  50. package/dist/es/ComboBox/ComboBoxProps.js +0 -2
  51. package/dist/es/DropDownList/DropDownList.js +0 -887
  52. package/dist/es/DropDownList/DropDownListProps.js +0 -2
  53. package/dist/es/DropDownTree/DropDownTree.js +0 -540
  54. package/dist/es/DropDownTree/DropDownTreeProps.d.ts +0 -294
  55. package/dist/es/DropDownTree/DropDownTreeProps.js +0 -2
  56. package/dist/es/DropDownTree/ListNoData.d.ts +0 -6
  57. package/dist/es/DropDownTree/ListNoData.js +0 -8
  58. package/dist/es/DropDownTree/useDropdownWidth.d.ts +0 -5
  59. package/dist/es/DropDownTree/useDropdownWidth.js +0 -13
  60. package/dist/es/MultiColumnComboBox/MultiColumnComboBox.js +0 -213
  61. package/dist/es/MultiSelect/MultiSelect.d.ts +0 -256
  62. package/dist/es/MultiSelect/MultiSelect.js +0 -1110
  63. package/dist/es/MultiSelect/MultiSelectProps.js +0 -2
  64. package/dist/es/MultiSelect/TagList.d.ts +0 -38
  65. package/dist/es/MultiSelect/TagList.js +0 -39
  66. package/dist/es/MultiSelectTree/MultiSelectTree.js +0 -619
  67. package/dist/es/MultiSelectTree/MultiSelectTreeProps.js +0 -2
  68. package/dist/es/MultiSelectTree/utils.d.ts +0 -17
  69. package/dist/es/MultiSelectTree/utils.js +0 -191
  70. package/dist/es/common/AdaptiveMode.d.ts +0 -21
  71. package/dist/es/common/AdaptiveMode.js +0 -45
  72. package/dist/es/common/ClearButton.d.ts +0 -14
  73. package/dist/es/common/ClearButton.js +0 -39
  74. package/dist/es/common/DropDownBase.d.ts +0 -175
  75. package/dist/es/common/DropDownBase.js +0 -297
  76. package/dist/es/common/GroupStickyHeader.js +0 -34
  77. package/dist/es/common/List.js +0 -75
  78. package/dist/es/common/ListContainer.d.ts +0 -18
  79. package/dist/es/common/ListContainer.js +0 -43
  80. package/dist/es/common/ListDefaultItem.d.ts +0 -16
  81. package/dist/es/common/ListDefaultItem.js +0 -36
  82. package/dist/es/common/ListFilter.d.ts +0 -19
  83. package/dist/es/common/ListFilter.js +0 -37
  84. package/dist/es/common/ListGroupItem.d.ts +0 -33
  85. package/dist/es/common/ListGroupItem.js +0 -33
  86. package/dist/es/common/ListItem.d.ts +0 -61
  87. package/dist/es/common/ListItem.js +0 -44
  88. package/dist/es/common/MultiColumnList.d.ts +0 -6
  89. package/dist/es/common/MultiColumnList.js +0 -22
  90. package/dist/es/common/Navigation.d.ts +0 -13
  91. package/dist/es/common/Navigation.js +0 -34
  92. package/dist/es/common/SearchBar.js +0 -62
  93. package/dist/es/common/VirtualScroll.d.ts +0 -42
  94. package/dist/es/common/VirtualScroll.js +0 -161
  95. package/dist/es/common/constants.d.ts +0 -4
  96. package/dist/es/common/constants.js +0 -4
  97. package/dist/es/common/events.js +0 -1
  98. package/dist/es/common/filterDescriptor.d.ts +0 -41
  99. package/dist/es/common/filterDescriptor.js +0 -2
  100. package/dist/es/common/settings.js +0 -8
  101. package/dist/es/common/utils.d.ts +0 -62
  102. package/dist/es/common/utils.js +0 -194
  103. package/dist/es/main.d.ts +0 -25
  104. package/dist/es/main.js +0 -19
  105. package/dist/es/messages/index.d.ts +0 -40
  106. package/dist/es/messages/index.js +0 -41
  107. package/dist/es/package-metadata.d.ts +0 -5
  108. package/dist/es/package-metadata.js +0 -11
  109. package/dist/npm/AutoComplete/AutoComplete.d.ts +0 -230
  110. package/dist/npm/AutoComplete/AutoComplete.js +0 -655
  111. package/dist/npm/AutoComplete/AutoCompleteProps.js +0 -3
  112. package/dist/npm/ComboBox/ComboBox.d.ts +0 -248
  113. package/dist/npm/ComboBox/ComboBox.js +0 -918
  114. package/dist/npm/ComboBox/ComboBoxProps.d.ts +0 -313
  115. package/dist/npm/ComboBox/ComboBoxProps.js +0 -3
  116. package/dist/npm/DropDownList/DropDownList.d.ts +0 -258
  117. package/dist/npm/DropDownList/DropDownList.js +0 -890
  118. package/dist/npm/DropDownList/DropDownListProps.d.ts +0 -326
  119. package/dist/npm/DropDownList/DropDownListProps.js +0 -3
  120. package/dist/npm/DropDownTree/DropDownTree.d.ts +0 -70
  121. package/dist/npm/DropDownTree/DropDownTree.js +0 -543
  122. package/dist/npm/DropDownTree/DropDownTreeProps.js +0 -3
  123. package/dist/npm/DropDownTree/ListNoData.d.ts +0 -6
  124. package/dist/npm/DropDownTree/ListNoData.js +0 -12
  125. package/dist/npm/DropDownTree/useDropdownWidth.d.ts +0 -5
  126. package/dist/npm/DropDownTree/useDropdownWidth.js +0 -17
  127. package/dist/npm/MultiColumnComboBox/MultiColumnComboBox.d.ts +0 -287
  128. package/dist/npm/MultiColumnComboBox/MultiColumnComboBox.js +0 -216
  129. package/dist/npm/MultiSelect/MultiSelect.js +0 -1113
  130. package/dist/npm/MultiSelect/MultiSelectProps.d.ts +0 -314
  131. package/dist/npm/MultiSelect/MultiSelectProps.js +0 -3
  132. package/dist/npm/MultiSelect/TagList.js +0 -41
  133. package/dist/npm/MultiSelectTree/MultiSelectTree.d.ts +0 -81
  134. package/dist/npm/MultiSelectTree/MultiSelectTree.js +0 -622
  135. package/dist/npm/MultiSelectTree/MultiSelectTreeProps.d.ts +0 -320
  136. package/dist/npm/MultiSelectTree/MultiSelectTreeProps.js +0 -3
  137. package/dist/npm/MultiSelectTree/utils.js +0 -196
  138. package/dist/npm/common/AdaptiveMode.js +0 -49
  139. package/dist/npm/common/ClearButton.d.ts +0 -14
  140. package/dist/npm/common/ClearButton.js +0 -41
  141. package/dist/npm/common/DropDownBase.js +0 -299
  142. package/dist/npm/common/GroupStickyHeader.d.ts +0 -24
  143. package/dist/npm/common/GroupStickyHeader.js +0 -36
  144. package/dist/npm/common/List.d.ts +0 -45
  145. package/dist/npm/common/List.js +0 -77
  146. package/dist/npm/common/ListContainer.d.ts +0 -18
  147. package/dist/npm/common/ListContainer.js +0 -45
  148. package/dist/npm/common/ListDefaultItem.d.ts +0 -16
  149. package/dist/npm/common/ListDefaultItem.js +0 -38
  150. package/dist/npm/common/ListFilter.js +0 -39
  151. package/dist/npm/common/ListGroupItem.js +0 -35
  152. package/dist/npm/common/ListItem.js +0 -46
  153. package/dist/npm/common/MultiColumnList.d.ts +0 -6
  154. package/dist/npm/common/MultiColumnList.js +0 -26
  155. package/dist/npm/common/Navigation.d.ts +0 -13
  156. package/dist/npm/common/Navigation.js +0 -37
  157. package/dist/npm/common/SearchBar.d.ts +0 -43
  158. package/dist/npm/common/SearchBar.js +0 -64
  159. package/dist/npm/common/VirtualScroll.js +0 -163
  160. package/dist/npm/common/constants.d.ts +0 -4
  161. package/dist/npm/common/constants.js +0 -7
  162. package/dist/npm/common/events.d.ts +0 -73
  163. package/dist/npm/common/events.js +0 -2
  164. package/dist/npm/common/filterDescriptor.js +0 -3
  165. package/dist/npm/common/settings.d.ts +0 -114
  166. package/dist/npm/common/settings.js +0 -11
  167. package/dist/npm/common/utils.js +0 -211
  168. package/dist/npm/main.d.ts +0 -25
  169. package/dist/npm/main.js +0 -62
  170. package/dist/npm/messages/index.js +0 -44
  171. package/dist/npm/package-metadata.d.ts +0 -5
  172. package/dist/npm/package-metadata.js +0 -14
  173. package/dist/systemjs/kendo-react-dropdowns.js +0 -1
  174. package/e2e-next/combobox.basic.ts +0 -24
  175. package/e2e-next/dropdownlist.basic.tests.ts +0 -24
  176. package/e2e-next/dropdowntree.basic.tests.ts +0 -24
  177. package/e2e-next/multicolumncombobox.basic.tests.ts +0 -24
@@ -1,890 +0,0 @@
1
- "use strict";
2
- var __extends = (this && this.__extends) || (function () {
3
- var extendStatics = function (d, b) {
4
- extendStatics = Object.setPrototypeOf ||
5
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
- return extendStatics(d, b);
8
- };
9
- return function (d, b) {
10
- if (typeof b !== "function" && b !== null)
11
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
- extendStatics(d, b);
13
- function __() { this.constructor = d; }
14
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
- };
16
- })();
17
- var __assign = (this && this.__assign) || function () {
18
- __assign = Object.assign || function(t) {
19
- for (var s, i = 1, n = arguments.length; i < n; i++) {
20
- s = arguments[i];
21
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22
- t[p] = s[p];
23
- }
24
- return t;
25
- };
26
- return __assign.apply(this, arguments);
27
- };
28
- Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.DropDownList = exports.DropDownListPropsContext = exports.DropDownListWithoutContext = void 0;
30
- var React = require("react");
31
- var PropTypes = require("prop-types");
32
- var kendo_react_common_1 = require("@progress/kendo-react-common");
33
- var kendo_react_labels_1 = require("@progress/kendo-react-labels");
34
- var kendo_svg_icons_1 = require("@progress/kendo-svg-icons");
35
- var ListContainer_1 = require("../common/ListContainer");
36
- var ListFilter_1 = require("../common/ListFilter");
37
- var GroupStickyHeader_1 = require("../common/GroupStickyHeader");
38
- var ListDefaultItem_1 = require("../common/ListDefaultItem");
39
- var List_1 = require("../common/List");
40
- var DropDownBase_1 = require("../common/DropDownBase");
41
- var utils_1 = require("../common/utils");
42
- var kendo_react_common_2 = require("@progress/kendo-react-common");
43
- var package_metadata_1 = require("../package-metadata");
44
- var kendo_react_buttons_1 = require("@progress/kendo-react-buttons");
45
- var kendo_react_intl_1 = require("@progress/kendo-react-intl");
46
- var messages_1 = require("../messages");
47
- var constants_1 = require("../common/constants");
48
- var kendo_react_layout_1 = require("@progress/kendo-react-layout");
49
- var VALIDATION_MESSAGE = 'Please select a value from the list!';
50
- var sizeMap = kendo_react_common_1.kendoThemeMaps.sizeMap, roundedMap = kendo_react_common_1.kendoThemeMaps.roundedMap;
51
- /**
52
- * @hidden
53
- */
54
- var DropDownListWithoutContext = /** @class */ (function (_super) {
55
- __extends(DropDownListWithoutContext, _super);
56
- function DropDownListWithoutContext(props) {
57
- var _this = _super.call(this, props) || this;
58
- /**
59
- * @hidden
60
- */
61
- _this.state = {};
62
- _this._element = null;
63
- _this.base = new DropDownBase_1.default(_this);
64
- _this.searchState = { word: '', last: '' };
65
- _this._select = null;
66
- _this._skipFocusEvent = false;
67
- _this._filterInput = null;
68
- _this._navigated = false;
69
- _this._lastKeypressIsFilter = false;
70
- _this._inputId = (0, kendo_react_common_1.guid)();
71
- _this.itemHeight = 0;
72
- /**
73
- * @hidden
74
- */
75
- _this.focus = function () {
76
- if (_this.base.wrapper) {
77
- _this.base.wrapper.focus();
78
- }
79
- };
80
- /**
81
- * @hidden
82
- */
83
- _this.handleItemSelect = function (index, state) {
84
- var _a = _this.props, _b = _a.data, data = _b === void 0 ? [] : _b, virtual = _a.virtual, dataItemKey = _a.dataItemKey, defaultItem = _a.defaultItem;
85
- var skip = virtual ? virtual.skip : 0;
86
- var item = (index === -1 && defaultItem !== undefined) ?
87
- defaultItem : data[index - skip];
88
- var newSelected = !(0, utils_1.areSame)(item, _this.value, dataItemKey);
89
- _this.triggerOnChange(item, state);
90
- if (newSelected) {
91
- _this.base.triggerPageChangeCornerItems(item, state);
92
- }
93
- };
94
- _this.componentRef = function (element) {
95
- _this._element = element;
96
- _this.base.wrapper = element;
97
- };
98
- _this.dummySelect = function (value) {
99
- /* Dummy component to support forms */
100
- 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%' } },
101
- React.createElement("option", { value: _this.props.valueMap ? _this.props.valueMap.call(undefined, value) : value })));
102
- };
103
- _this.renderListContainer = function () {
104
- var _a;
105
- 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;
106
- var base = _this.base;
107
- var popupSettings = base.getPopupSettings();
108
- var opened = _this.props.opened !== undefined ? _this.props.opened : _this.state.opened;
109
- var popupWidth = popupSettings.width !== undefined ? popupSettings.width : base.popupWidth;
110
- var listContainerProps = {
111
- dir: dir !== undefined ? dir : base.dirCalculated,
112
- width: popupWidth,
113
- popupSettings: {
114
- popupClass: (0, kendo_react_common_1.classNames)(popupSettings.popupClass, 'k-list-container', 'k-dropdownlist-popup'),
115
- className: popupSettings.className,
116
- animate: popupSettings.animate,
117
- anchor: _this.element,
118
- show: opened,
119
- onOpen: _this.onPopupOpened,
120
- onClose: _this.onPopupClosed,
121
- appendTo: popupSettings.appendTo
122
- },
123
- itemsCount: [data.length]
124
- };
125
- var group = _this.state.group;
126
- if (group === undefined && groupField !== undefined) {
127
- group = (0, utils_1.getItemValue)(data[0], groupField);
128
- }
129
- return (React.createElement(ListContainer_1.default, __assign({}, listContainerProps),
130
- _this.renderListFilter(),
131
- header && React.createElement("div", { className: "k-list-header" }, header),
132
- React.createElement("div", { className: (0, kendo_react_common_1.classNames)('k-list', (_a = {}, _a["k-list-".concat(sizeMap[size] || size)] = size, _a['k-virtual-list'] = _this.base.vs.enabled, _a)) },
133
- _this.renderDefaultItem(),
134
- !list && group && data.length !== 0 && React.createElement(GroupStickyHeader_1.default, { group: group, groupMode: 'modern', render: groupStickyHeaderItemRender }),
135
- _this.renderList()),
136
- footer && React.createElement("div", { className: "k-list-footer" }, footer)));
137
- };
138
- _this.renderList = function () {
139
- 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;
140
- var vs = _this.base.vs;
141
- var skip = virtual.skip;
142
- var opened = _this.props.opened !== undefined ? _this.props.opened : _this.state.opened;
143
- var popupSettings = _this.base.getPopupSettings();
144
- var translate = "translateY(".concat(vs.translate, "px)");
145
- return (React.createElement(List_1.default, { 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() }));
146
- };
147
- _this.onScroll = function (event) {
148
- var _a = _this.base, vs = _a.vs, list = _a.list;
149
- vs.scrollHandler(event);
150
- var groupField = _this.props.groupField;
151
- var _b = _this.props.data, data = _b === void 0 ? [] : _b;
152
- if (!groupField || !data.length) {
153
- return;
154
- }
155
- if (groupField) {
156
- var itemHeight = _this.itemHeight =
157
- _this.itemHeight || (vs.enabled ? vs.itemHeight : (list ? list.children[0].offsetHeight : 0));
158
- var target = event.target;
159
- var scrollTop = target.scrollTop - (vs.skip * itemHeight);
160
- data = _this.base.getGroupedDataModernMode(data, groupField);
161
- var group = data[0][groupField];
162
- for (var i = 1; i < data.length; i++) {
163
- if (itemHeight * i > scrollTop) {
164
- break;
165
- }
166
- if (data[i] && data[i][groupField]) {
167
- group = data[i][groupField];
168
- }
169
- }
170
- if (group !== _this.state.group) {
171
- _this.setState({
172
- group: group
173
- });
174
- }
175
- }
176
- };
177
- _this.renderListFilter = function () {
178
- var filterText = _this.props.filter !== undefined ? _this.props.filter : _this.state.text;
179
- return _this.props.filterable && (React.createElement(ListFilter_1.default, { 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 }));
180
- };
181
- _this.renderDefaultItem = function () {
182
- var _a = _this.props, textField = _a.textField, defaultItem = _a.defaultItem, dataItemKey = _a.dataItemKey;
183
- return defaultItem !== undefined && (React.createElement(ListDefaultItem_1.default, { defaultItem: defaultItem, textField: textField, selected: (0, utils_1.areSame)(_this.value, defaultItem, dataItemKey), key: "defaultitemkey", onClick: _this.handleDefaultItemClick }));
184
- };
185
- _this.search = function (event) {
186
- clearTimeout(_this._typingTimeout);
187
- if (!_this.props.filterable) {
188
- _this._typingTimeout = window.setTimeout(function () { return _this.searchState.word = ''; }, _this.props.delay);
189
- _this.selectNext(event);
190
- }
191
- };
192
- _this.selectNext = function (event) {
193
- var _a = _this.props, _b = _a.data, data = _b === void 0 ? [] : _b, dataItemKey = _a.dataItemKey;
194
- var mappedData = data.map(function (item, idx) {
195
- return { item: item, itemIndex: idx };
196
- });
197
- var word = _this.searchState.word;
198
- var last = _this.searchState.last;
199
- var isInLoop = (0, utils_1.sameCharsOnly)(word, last);
200
- var dataLength = mappedData.length;
201
- var startIndex = Math.max(0, data.findIndex(function (i) { return (0, utils_1.areSame)(i, _this.value, dataItemKey); }));
202
- var defaultItem;
203
- if (_this.props.defaultItem) {
204
- defaultItem = { item: _this.props.defaultItem, itemIndex: -1 };
205
- dataLength += 1;
206
- startIndex += 1;
207
- }
208
- startIndex += isInLoop ? 1 : 0;
209
- mappedData = (0, utils_1.shuffleData)(mappedData, startIndex, defaultItem);
210
- var text, loopMatch, nextMatch, index = 0;
211
- var _c = _this.props, textField = _c.textField, ignoreCase = _c.ignoreCase;
212
- for (; index < dataLength; index++) {
213
- text = (0, utils_1.getItemValue)(mappedData[index].item, textField);
214
- loopMatch = isInLoop && (0, utils_1.matchText)(text, last, ignoreCase);
215
- nextMatch = (0, utils_1.matchText)(text, word, ignoreCase);
216
- if (loopMatch || nextMatch) {
217
- index = mappedData[index].itemIndex;
218
- break;
219
- }
220
- }
221
- if (index !== dataLength) {
222
- var state = _this.base.initState();
223
- state.syntheticEvent = event;
224
- _this.handleItemSelect(index, state);
225
- _this.applyState(state);
226
- _this._valueDuringOnChange = undefined;
227
- }
228
- };
229
- _this.handleKeyDown = function (event) {
230
- // The following added here to prevent the propagation of the keyDown event when the filter prop is set to true
231
- if (event && event.target instanceof Element && event.target.nodeName === 'INPUT') {
232
- event.stopPropagation && event.stopPropagation();
233
- }
234
- 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;
235
- var value = _this.value;
236
- var selectedIndex = data.findIndex(function (i) { return (0, utils_1.areSame)(i, value, dataItemKey); });
237
- var opened = _this.props.opened !== undefined ? _this.props.opened : _this.state.opened;
238
- var keyCode = event.keyCode;
239
- var homeOrEndKeys = keyCode === kendo_react_common_1.Keys.home || keyCode === kendo_react_common_1.Keys.end;
240
- var upOrDownKeys = keyCode === kendo_react_common_1.Keys.up || keyCode === kendo_react_common_1.Keys.down;
241
- var shouldOpen = !opened && ((event.altKey && keyCode === kendo_react_common_1.Keys.down) || keyCode === kendo_react_common_1.Keys.enter || keyCode === kendo_react_common_1.Keys.space);
242
- var shouldClose = opened && ((event.altKey && keyCode === kendo_react_common_1.Keys.up) || keyCode === kendo_react_common_1.Keys.esc);
243
- var leftOrRightKeys = leftRightKeysNavigation && (keyCode === kendo_react_common_1.Keys.left || keyCode === kendo_react_common_1.Keys.right);
244
- var shouldNavigate = upOrDownKeys || (leftOrRightKeys && !filterable) || homeOrEndKeys;
245
- var state = _this.base.initState();
246
- state.syntheticEvent = event;
247
- if (disabled) {
248
- return;
249
- }
250
- else if (homeOrEndKeys && _this.base.vs.enabled) {
251
- if (keyCode === kendo_react_common_1.Keys.home) {
252
- if (virtual.skip !== 0) {
253
- _this.base.triggerOnPageChange(state, 0, virtual.pageSize);
254
- _this._navigated = true;
255
- }
256
- else {
257
- _this.triggerOnChange(data[0], state);
258
- }
259
- }
260
- else {
261
- if (virtual.skip < virtual.total - virtual.pageSize) {
262
- _this.base.triggerOnPageChange(state, virtual.total - virtual.pageSize, virtual.pageSize);
263
- _this._navigated = true;
264
- }
265
- else {
266
- _this.triggerOnChange(data[data.length - 1], state);
267
- }
268
- }
269
- }
270
- else if (opened && keyCode === kendo_react_common_1.Keys.pageUp) {
271
- _this.base.scrollPopupByPageSize(-1);
272
- }
273
- else if (opened && keyCode === kendo_react_common_1.Keys.pageDown) {
274
- _this.base.scrollPopupByPageSize(1);
275
- }
276
- else if (opened && keyCode === kendo_react_common_1.Keys.enter) {
277
- var focusedIndex = _this.getFocusedIndex();
278
- if (_this.haveFocusedItemAndDataNotEmpty(data, focusedIndex)) {
279
- _this.triggerOnChange(null, state);
280
- _this.applyState(state);
281
- }
282
- else {
283
- _this.handleItemSelect(focusedIndex, state);
284
- }
285
- _this.base.togglePopup(state);
286
- event.preventDefault();
287
- }
288
- else if (shouldOpen || shouldClose) {
289
- if (shouldClose) {
290
- _this.resetValueIfDisabledItem();
291
- }
292
- _this.base.togglePopup(state);
293
- event.preventDefault();
294
- }
295
- else if (shouldNavigate) {
296
- _this._lastKeypressIsFilter = false;
297
- if (groupField !== '' && textField) {
298
- if (!skipDisabledItems && opened) {
299
- _this.onNavigate(state, keyCode);
300
- }
301
- else {
302
- var newIndex = undefined;
303
- if (keyCode === kendo_react_common_1.Keys.down || keyCode === kendo_react_common_1.Keys.right) {
304
- var tempnewIndex_1 = data.slice(selectedIndex + 1).find(function (i) { return !i.disabled && i[textField]; });
305
- newIndex = tempnewIndex_1 && data.findIndex(function (el) { return el[textField] === tempnewIndex_1[textField]; });
306
- }
307
- else if (keyCode === kendo_react_common_1.Keys.up || keyCode === kendo_react_common_1.Keys.left) {
308
- var dataToSearch = void 0;
309
- if (selectedIndex === 0 && defaultItem) {
310
- newIndex = -1;
311
- }
312
- else if (selectedIndex === -1) {
313
- dataToSearch = data;
314
- newIndex = data.findIndex(function (i) { return !i.disabled && i[textField]; });
315
- }
316
- else {
317
- dataToSearch = data.slice(0, selectedIndex);
318
- var tempnewIndex_2 = dataToSearch.pop();
319
- while (tempnewIndex_2 && tempnewIndex_2.disabled) {
320
- tempnewIndex_2 = dataToSearch.pop();
321
- }
322
- newIndex = tempnewIndex_2 && data.findIndex(function (el) { return el[textField] === tempnewIndex_2[textField]; });
323
- }
324
- }
325
- if (newIndex !== undefined) {
326
- var skipItems = newIndex - selectedIndex;
327
- _this.onNavigate(state, keyCode, skipItems);
328
- }
329
- else if (newIndex === undefined && data.findIndex(function (el) { return el[textField] === value[textField]; }) === data.length - 1) {
330
- _this.onNavigate(state, keyCode);
331
- }
332
- }
333
- }
334
- else if (!skipDisabledItems && opened || homeOrEndKeys) {
335
- _this.onNavigate(state, keyCode);
336
- }
337
- else if (textField) {
338
- var newIndex = undefined;
339
- if (keyCode === kendo_react_common_1.Keys.down || keyCode === kendo_react_common_1.Keys.right) {
340
- var tempnewIndex_3 = data.slice(selectedIndex + 1).find(function (i) { return !i.disabled && i[textField]; });
341
- newIndex = tempnewIndex_3 && data.findIndex(function (el) { return el[textField] === tempnewIndex_3[textField]; });
342
- }
343
- else if (keyCode === kendo_react_common_1.Keys.up || keyCode === kendo_react_common_1.Keys.left) {
344
- var dataTest = void 0;
345
- if (selectedIndex === 0 && defaultItem) {
346
- newIndex = -1;
347
- }
348
- else if (selectedIndex === -1) {
349
- dataTest = data;
350
- newIndex = data.find(function (i) { return !i.disabled && i[textField]; });
351
- }
352
- else {
353
- dataTest = data.slice(0, selectedIndex);
354
- var tempnewIndex_4 = dataTest.pop();
355
- while (tempnewIndex_4 && tempnewIndex_4.disabled) {
356
- tempnewIndex_4 = dataTest.pop();
357
- }
358
- newIndex = tempnewIndex_4 && data.findIndex(function (el) { return el[textField] === tempnewIndex_4[textField]; });
359
- }
360
- }
361
- if (newIndex !== undefined) {
362
- var skipItems = newIndex - selectedIndex;
363
- _this.onNavigate(state, keyCode, skipItems);
364
- }
365
- else if (newIndex === undefined && data.findIndex(function (el) { return el[textField] === value[textField]; }) === data.length - 1) {
366
- _this.onNavigate(state, keyCode);
367
- }
368
- }
369
- else {
370
- _this.onNavigate(state, keyCode);
371
- }
372
- event.preventDefault();
373
- }
374
- _this.applyState(state);
375
- };
376
- _this.handleItemClick = function (index, event) {
377
- _this.base.handleItemClick(index, event);
378
- _this._valueDuringOnChange = undefined;
379
- };
380
- _this.handleFocus = function (event) {
381
- if (_this._skipFocusEvent) {
382
- return;
383
- }
384
- _this.base.handleFocus(event);
385
- };
386
- _this.handleBlur = function (event) {
387
- if (_this._skipFocusEvent || !_this.state.focused) {
388
- return;
389
- }
390
- var opened = _this.props.opened !== undefined ? _this.props.opened : _this.state.opened;
391
- var adaptive = _this.props.adaptive;
392
- var _a = _this.state.windowWidth, windowWidth = _a === void 0 ? 0 : _a;
393
- var renderAdaptive = windowWidth <= constants_1.MOBILE_MEDIUM_DEVISE && adaptive;
394
- var state = _this.base.initState();
395
- state.syntheticEvent = event;
396
- state.data.focused = false;
397
- state.events.push({ type: 'onBlur' });
398
- if (opened) {
399
- _this.resetValueIfDisabledItem();
400
- }
401
- if (opened && !renderAdaptive) {
402
- _this.base.togglePopup(state);
403
- }
404
- _this.applyState(state);
405
- };
406
- _this.handleDefaultItemClick = function (event) {
407
- var state = _this.base.initState();
408
- state.syntheticEvent = event;
409
- _this.base.togglePopup(state);
410
- _this.triggerOnChange(_this.props.defaultItem, state);
411
- _this.applyState(state);
412
- };
413
- _this.handleWrapperClick = function (event) {
414
- if (event.isPropagationStopped()) {
415
- return;
416
- }
417
- var state = _this.base.initState();
418
- state.syntheticEvent = event;
419
- if (!_this.state.focused) {
420
- state.data.focused = true;
421
- }
422
- _this.resetValueIfDisabledItem();
423
- _this.base.togglePopup(state);
424
- _this.applyState(state);
425
- };
426
- _this.handleKeyPress = function (event) {
427
- if (_this.props.filterable || event.which === 0 || event.keyCode === kendo_react_common_1.Keys.enter) {
428
- return;
429
- }
430
- var character = String.fromCharCode(event.charCode || event.keyCode);
431
- if (_this.props.ignoreCase) {
432
- character = character.toLowerCase();
433
- }
434
- if (character === ' ') {
435
- event.preventDefault();
436
- }
437
- _this.searchState = {
438
- word: _this.searchState.word + character,
439
- last: _this.searchState.last + character
440
- };
441
- _this.search(event);
442
- };
443
- _this.handleListFilterChange = function (event) {
444
- var state = _this.base.initState();
445
- state.syntheticEvent = event.syntheticEvent;
446
- if (_this.props.filter === undefined) {
447
- state.data.text = event.target.value;
448
- }
449
- _this.base.filterChanged(event.target.value, state);
450
- _this._lastKeypressIsFilter = true;
451
- _this.applyState(state);
452
- _this.setState({ group: undefined });
453
- };
454
- _this.onPopupOpened = function () {
455
- if (_this._filterInput) {
456
- _this.focusElement(_this._filterInput);
457
- }
458
- if (_this.props.adaptive) {
459
- setTimeout(function () {
460
- if (_this._filterInput) {
461
- _this.focusElement(_this._filterInput);
462
- }
463
- }, 300);
464
- }
465
- };
466
- _this.onPopupClosed = function () {
467
- if (_this.state.focused) {
468
- window.setTimeout(function () {
469
- if (_this.state.focused && _this.base.wrapper) {
470
- _this.focusElement(_this.base.wrapper);
471
- }
472
- });
473
- }
474
- };
475
- _this.setValidity = function () {
476
- if (_this._select && _this._select.setCustomValidity) {
477
- _this._select.setCustomValidity(_this.validity.valid
478
- ? ''
479
- : _this.props.validationMessage || VALIDATION_MESSAGE);
480
- }
481
- };
482
- (0, kendo_react_common_2.validatePackage)(package_metadata_1.packageMetadata);
483
- return _this;
484
- }
485
- Object.defineProperty(DropDownListWithoutContext.prototype, "document", {
486
- get: function () {
487
- if (!kendo_react_common_2.canUseDOM) {
488
- return;
489
- }
490
- // useful only for user actions
491
- return (this.element && this.element.ownerDocument) || document;
492
- },
493
- enumerable: false,
494
- configurable: true
495
- });
496
- Object.defineProperty(DropDownListWithoutContext.prototype, "element", {
497
- /**
498
- * @hidden
499
- */
500
- get: function () {
501
- return this._element;
502
- },
503
- enumerable: false,
504
- configurable: true
505
- });
506
- Object.defineProperty(DropDownListWithoutContext.prototype, "value", {
507
- /**
508
- * The value of the DropDownList.
509
- */
510
- get: function () {
511
- var value;
512
- if (this._valueDuringOnChange !== undefined) {
513
- value = this._valueDuringOnChange;
514
- }
515
- else if (this.props.value !== undefined) {
516
- value = this.props.value;
517
- }
518
- else if (this.state.value !== undefined) {
519
- value = this.state.value;
520
- }
521
- else if (this.props.defaultValue !== undefined) {
522
- value = this.props.defaultValue;
523
- }
524
- if (!(0, utils_1.isPresent)(value) && this.props.defaultItem !== undefined) {
525
- value = this.props.defaultItem;
526
- }
527
- return value;
528
- },
529
- enumerable: false,
530
- configurable: true
531
- });
532
- Object.defineProperty(DropDownListWithoutContext.prototype, "index", {
533
- /**
534
- * The index of the selected item.
535
- */
536
- get: function () {
537
- var _a = this.props, _b = _a.data, data = _b === void 0 ? [] : _b, dataItemKey = _a.dataItemKey;
538
- var value = this.value;
539
- // TO DO: deprecate it!
540
- return data.findIndex(function (i) { return (0, utils_1.areSame)(i, value, dataItemKey); });
541
- },
542
- enumerable: false,
543
- configurable: true
544
- });
545
- Object.defineProperty(DropDownListWithoutContext.prototype, "name", {
546
- /**
547
- * Gets the `name` property of the DropDownList.
548
- */
549
- get: function () {
550
- return this.props.name;
551
- },
552
- enumerable: false,
553
- configurable: true
554
- });
555
- Object.defineProperty(DropDownListWithoutContext.prototype, "validity", {
556
- /**
557
- * Represents the validity state into which the DropDownList is set.
558
- */
559
- get: function () {
560
- var customError = this.props.validationMessage !== undefined;
561
- var isValid = (!this.required
562
- || (this.value !== null && this.value !== '' && this.value !== undefined));
563
- var valid = this.props.valid !== undefined ? this.props.valid : isValid;
564
- return {
565
- customError: customError,
566
- valid: valid,
567
- valueMissing: this.value === null
568
- };
569
- },
570
- enumerable: false,
571
- configurable: true
572
- });
573
- Object.defineProperty(DropDownListWithoutContext.prototype, "validityStyles", {
574
- get: function () {
575
- return this.props.validityStyles !== undefined
576
- ? this.props.validityStyles
577
- : DropDownListWithoutContext.defaultProps.validityStyles;
578
- },
579
- enumerable: false,
580
- configurable: true
581
- });
582
- Object.defineProperty(DropDownListWithoutContext.prototype, "required", {
583
- /**
584
- * @hidden
585
- */
586
- get: function () {
587
- return this.props.required !== undefined
588
- ? this.props.required
589
- : DropDownListWithoutContext.defaultProps.required;
590
- },
591
- enumerable: false,
592
- configurable: true
593
- });
594
- /**
595
- * @hidden
596
- */
597
- DropDownListWithoutContext.prototype.componentDidUpdate = function (prevProps, prevState) {
598
- var _a;
599
- var _b = this.props, dataItemKey = _b.dataItemKey, virtual = _b.virtual, _c = _b.groupField, groupField = _c === void 0 ? '' : _c, textField = _b.textField;
600
- var _d = this.props.data, data = _d === void 0 ? [] : _d;
601
- var prevTotal = prevProps.virtual ? prevProps.virtual.total : 0;
602
- var opened = this.props.opened !== undefined ? this.props.opened : this.state.opened;
603
- var prevOpened = prevProps.opened !== undefined ? prevProps.opened : prevState.opened;
604
- var opening = !prevOpened && opened;
605
- var closing = prevOpened && !opened;
606
- if (!this.base.getPopupSettings().animate) {
607
- if (opening) {
608
- this.onPopupOpened();
609
- }
610
- else if (closing) {
611
- // this.onPopupClosed();
612
- }
613
- }
614
- if (virtual && virtual.total !== prevTotal) {
615
- this.base.vs.calcScrollElementHeight();
616
- this.base.vs.reset();
617
- }
618
- else {
619
- var selectedItem_1 = this.value;
620
- var prevSelectedItem = prevProps.value !== undefined ? prevProps.value : prevState.value;
621
- var selectedItemIndex = data.findIndex(function (i) { return (0, utils_1.areSame)(i, selectedItem_1, dataItemKey); });
622
- if (groupField !== '' && selectedItem_1 && textField) {
623
- selectedItemIndex = (_a = this.base.getGroupedDataModernMode(data, groupField)) === null || _a === void 0 ? void 0 : _a.map(function (el) { return el[textField]; }).indexOf(selectedItem_1[textField]);
624
- }
625
- var selectedItemChanged = !(0, utils_1.areSame)(prevSelectedItem, selectedItem_1, dataItemKey);
626
- if (opening && virtual) {
627
- this.base.scrollToVirtualItem(virtual, selectedItemIndex);
628
- }
629
- else if (opening && !virtual) {
630
- this.onPopupOpened();
631
- // Resets the sticky header group value for scenarios with open/close of component's popup
632
- if (data && data.length !== 0) {
633
- this.base.resetGroupStickyHeader(data[0][groupField], this);
634
- }
635
- this.base.scrollToItem(selectedItemIndex);
636
- }
637
- else if (opened && prevOpened && selectedItem_1 && selectedItemChanged && !this._navigated) {
638
- this.base.scrollToItem(selectedItemIndex);
639
- }
640
- else if (opened && prevOpened && this._navigated) {
641
- if (this._navigated && virtual && virtual.skip === 0) {
642
- this.base.vs.reset();
643
- }
644
- else if (this._navigated && virtual && virtual.skip === virtual.total - virtual.pageSize) {
645
- this.base.vs.scrollToEnd();
646
- }
647
- }
648
- }
649
- this._navigated = false;
650
- this.setValidity();
651
- };
652
- /**
653
- * @hidden
654
- */
655
- DropDownListWithoutContext.prototype.componentDidMount = function () {
656
- var _a;
657
- this.observerResize = kendo_react_common_2.canUseDOM && window.ResizeObserver && new window.ResizeObserver(this.calculateMedia.bind(this));
658
- this.base.didMount();
659
- this.setValidity();
660
- if (((_a = this.document) === null || _a === void 0 ? void 0 : _a.body) && this.observerResize) {
661
- this.observerResize.observe(this.document.body);
662
- }
663
- };
664
- /** @hidden */
665
- DropDownListWithoutContext.prototype.componentWillUnmount = function () {
666
- var _a;
667
- if (((_a = this.document) === null || _a === void 0 ? void 0 : _a.body) && this.observerResize) {
668
- this.observerResize.disconnect();
669
- }
670
- };
671
- /**
672
- * @hidden
673
- */
674
- DropDownListWithoutContext.prototype.render = function () {
675
- var _a;
676
- var _this = this;
677
- var btnAriaLabel = (0, kendo_react_intl_1.provideLocalizationService)(this).toLanguageString(messages_1.dropDownListArrowBtnAriaLabel, messages_1.messages[messages_1.dropDownListArrowBtnAriaLabel]);
678
- 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;
679
- var _c = this.state.windowWidth, windowWidth = _c === void 0 ? 0 : _c;
680
- var opened = this.props.opened !== undefined ? this.props.opened : this.state.opened;
681
- var value = this.value;
682
- var text = (0, utils_1.getItemValue)(value, this.props.textField);
683
- var isValid = !this.validityStyles || this.validity.valid;
684
- var base = this.base;
685
- var vs = base.vs;
686
- var renderAdaptive = windowWidth <= constants_1.MOBILE_MEDIUM_DEVISE && adaptive;
687
- vs.enabled = virtual !== undefined;
688
- if (virtual !== undefined) {
689
- base.vs.skip = virtual.skip;
690
- base.vs.total = virtual.total;
691
- base.vs.pageSize = virtual.pageSize;
692
- }
693
- 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;
694
- var focused = this.state.focused;
695
- var selectedIndex = data.findIndex(function (i) { return (0, utils_1.areSame)(i, value, dataItemKey); });
696
- var valueDefaultRendering = (React.createElement("span", { id: this._inputId, className: "k-input-inner" },
697
- React.createElement("span", { className: "k-input-value-text" }, text)));
698
- var valueElement = valueRender !== undefined ?
699
- valueRender.call(undefined, valueDefaultRendering, value) : valueDefaultRendering;
700
- var dropdownlist = (React.createElement(React.Fragment, null,
701
- React.createElement("span", { ref: this.componentRef, className: (0, kendo_react_common_1.classNames)('k-dropdownlist k-picker', className, (_a = {},
702
- _a["k-picker-".concat(sizeMap[size] || size)] = size,
703
- _a["k-rounded-".concat(roundedMap[rounded] || rounded)] = rounded,
704
- _a["k-picker-".concat(fillMode)] = fillMode,
705
- _a['k-focus'] = focused,
706
- _a['k-disabled'] = disabled,
707
- _a['k-invalid'] = !isValid,
708
- _a['k-loading'] = loading,
709
- _a['k-required'] = this.required,
710
- _a)), style: !label
711
- ? style
712
- : __assign(__assign({}, style), { width: undefined }), dir: dir, onMouseDown: opened ? function (event) {
713
- if (event.target.nodeName !== 'INPUT') {
714
- _this.focusElement(_this.base.wrapper);
715
- event.preventDefault();
716
- }
717
- } : undefined, onFocus: this.handleFocus, onBlur: this.handleBlur, tabIndex: (0, kendo_react_common_1.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 },
718
- valueElement,
719
- loading && React.createElement(kendo_react_common_1.IconWrap, { className: "k-input-loading-icon", name: 'loading' }),
720
- React.createElement(kendo_react_buttons_1.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 ? kendo_svg_icons_1.caretAltDownIcon : this.props.svgIcon, onMouseDown: function (e) { return _this.state.focused && e.preventDefault(); } }),
721
- this.dummySelect(value),
722
- !renderAdaptive && this.renderListContainer()),
723
- renderAdaptive && this.renderAdaptiveListContainer()));
724
- return label ? (React.createElement(kendo_react_labels_1.FloatingLabel, { label: label, editorValue: text, editorValid: isValid, editorDisabled: this.props.disabled, style: { width: style ? style.width : undefined }, children: dropdownlist })) : dropdownlist;
725
- };
726
- /**
727
- * @hidden
728
- */
729
- DropDownListWithoutContext.prototype.onNavigate = function (state, keyCode, skipItems) {
730
- 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;
731
- var vs = this.base.vs;
732
- var value = this.value;
733
- var index = data.findIndex(function (i) { return (0, utils_1.areSame)(i, value, dataItemKey); });
734
- var newIndex = this.base.navigation.navigate({
735
- current: virtual.skip + index,
736
- max: (vs.enabled ? virtual.total : data.length) - 1,
737
- min: defaultItem !== undefined ? -1 : 0,
738
- keyCode: keyCode,
739
- skipItems: skipItems ? skipItems : undefined
740
- });
741
- if (newIndex !== undefined) {
742
- this.handleItemSelect(newIndex, state);
743
- }
744
- this.applyState(state);
745
- };
746
- DropDownListWithoutContext.prototype.renderAdaptiveListContainer = function () {
747
- var _a;
748
- var _this = this;
749
- var _b = this.state.windowWidth, windowWidth = _b === void 0 ? 0 : _b;
750
- 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;
751
- var opened = this.props.opened !== undefined ? this.props.opened : this.state.opened;
752
- var actionSheetProps = {
753
- navigatable: false,
754
- navigatableElements: [],
755
- expand: opened,
756
- animation: true,
757
- onClose: function (event) { return _this.handleWrapperClick(event); },
758
- animationStyles: windowWidth <= constants_1.MOBILE_SMALL_DEVISE ? { top: 0, width: '100%', height: '100%' } : undefined,
759
- className: windowWidth <= constants_1.MOBILE_SMALL_DEVISE
760
- ? 'k-adaptive-actionsheet k-actionsheet-fullscreen'
761
- : 'k-adaptive-actionsheet k-actionsheet-bottom'
762
- };
763
- var group = this.state.group;
764
- if (group === undefined && groupField !== undefined) {
765
- group = (0, utils_1.getItemValue)(data[0], groupField);
766
- }
767
- return (React.createElement(React.Fragment, null,
768
- React.createElement(kendo_react_layout_1.ActionSheet, __assign({}, actionSheetProps),
769
- React.createElement(kendo_react_layout_1.ActionSheetHeader, { className: 'k-text-center' },
770
- React.createElement("div", { className: "k-actionsheet-titlebar-group k-hbox" },
771
- React.createElement("div", { className: "k-actionsheet-title" },
772
- React.createElement("div", null, adaptiveTitle)),
773
- React.createElement("div", { className: "k-actionsheet-actions" },
774
- React.createElement(kendo_react_buttons_1.Button, { tabIndex: 0, "aria-label": "Cancel", "aria-disabled": "false", type: "button", fillMode: "flat", onClick: this.handleWrapperClick, icon: 'x', svgIcon: kendo_svg_icons_1.xIcon }))),
775
- React.createElement("div", { className: "k-actionsheet-titlebar-group k-actionsheet-filter" }, this.renderListFilter())),
776
- React.createElement(kendo_react_layout_1.ActionSheetContent, { className: '!k-overflow-hidden' },
777
- header && React.createElement("div", { className: "k-list-header" }, header),
778
- React.createElement("div", { className: (0, kendo_react_common_1.classNames)('k-list', (_a = {}, _a["k-list-".concat(sizeMap[size] || size)] = size, _a['k-virtual-list'] = this.base.vs.enabled, _a)) },
779
- this.renderDefaultItem(),
780
- !list && group && data.length !== 0 && React.createElement(GroupStickyHeader_1.default, { group: group, groupMode: 'modern', render: groupStickyHeaderItemRender }),
781
- this.renderList()),
782
- footer && React.createElement("div", { className: "k-list-footer" }, footer)))));
783
- };
784
- DropDownListWithoutContext.prototype.getFocusedIndex = function () {
785
- var value = this.value;
786
- 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 ? utils_1.itemIndexStartsWith : _d, filterable = _a.filterable, _e = _a.skipDisabledItems, skipDisabledItems = _e === void 0 ? true : _e;
787
- var text = this.props.filter ? this.props.filter : this.state.text;
788
- if (skipDisabledItems && textField && !text && !value) {
789
- return data.findIndex(function (i) { return !i.disabled && i[textField]; });
790
- }
791
- else if ((0, utils_1.isPresent)(value) && text === undefined || filterable && text === '') {
792
- return data.findIndex(function (i) { return (0, utils_1.areSame)(i, value, dataItemKey); });
793
- }
794
- else if (text) {
795
- if (this._lastKeypressIsFilter) {
796
- return focusedItemIndex(data, text, textField);
797
- }
798
- return data.findIndex(function (i) { return (0, utils_1.areSame)(i, value, dataItemKey); });
799
- }
800
- else {
801
- return virtual.skip === 0 ? 0 : -1;
802
- }
803
- };
804
- DropDownListWithoutContext.prototype.focusElement = function (element) {
805
- var _this = this;
806
- this._skipFocusEvent = true;
807
- element.focus();
808
- window.setTimeout(function () { return _this._skipFocusEvent = false; }, 30);
809
- };
810
- DropDownListWithoutContext.prototype.triggerOnChange = function (item, state) {
811
- if ((0, utils_1.areSame)(this.value, item, this.props.dataItemKey)) {
812
- return;
813
- }
814
- if (this.props.value === undefined) {
815
- state.data.value = item;
816
- }
817
- this._valueDuringOnChange = item;
818
- state.events.push({ type: 'onChange' });
819
- };
820
- DropDownListWithoutContext.prototype.applyState = function (state) {
821
- this.base.applyState(state);
822
- this._valueDuringOnChange = undefined;
823
- };
824
- DropDownListWithoutContext.prototype.calculateMedia = function (entries) {
825
- for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {
826
- var entry = entries_1[_i];
827
- this.setState({ windowWidth: entry.target.clientWidth });
828
- }
829
- ;
830
- };
831
- ;
832
- DropDownListWithoutContext.prototype.resetValueIfDisabledItem = function () {
833
- var _a = this.props.data, data = _a === void 0 ? [] : _a;
834
- var state = this.base.initState();
835
- var focusedIndex = this.getFocusedIndex();
836
- if (this.haveFocusedItemAndDataNotEmpty(data, focusedIndex)) {
837
- this.triggerOnChange(null, state);
838
- this.applyState(state);
839
- }
840
- };
841
- DropDownListWithoutContext.prototype.haveFocusedItemAndDataNotEmpty = function (data, focusedIndex) {
842
- return focusedIndex !== undefined && focusedIndex !== -1 && data && data.length > 0 && data[focusedIndex].disabled;
843
- };
844
- DropDownListWithoutContext.displayName = 'DropDownList';
845
- /**
846
- * @hidden
847
- */
848
- DropDownListWithoutContext.propTypes = __assign({ delay: PropTypes.number, ignoreCase: PropTypes.bool, iconClassName: PropTypes.string, svgIcon: kendo_react_common_1.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_1.default.propTypes);
849
- /**
850
- * @hidden
851
- */
852
- DropDownListWithoutContext.defaultProps = __assign(__assign({ delay: 500, tabIndex: 0, ignoreCase: true }, DropDownBase_1.default.defaultProps), { required: false, size: 'medium', rounded: 'medium', fillMode: 'solid', groupMode: 'modern' });
853
- return DropDownListWithoutContext;
854
- }(React.Component));
855
- exports.DropDownListWithoutContext = DropDownListWithoutContext;
856
- /**
857
- * Represents the PropsContext of the `DropDownList` component.
858
- * Used for global configuration of all `DropDownList` instances.
859
- *
860
- * For more information, refer to the [Dropdowns Props Context]({% slug props-context_dropdowns %}) article.
861
- */
862
- exports.DropDownListPropsContext = (0, kendo_react_common_1.createPropsContext)();
863
- /* eslint-disable @typescript-eslint/no-redeclare -- intentionally naming the component the same as the type */
864
- /**
865
- * Represents the [KendoReact DropDownList component]({% slug overview_dropdownlist %}).
866
- *
867
- * Accepts properties of type [DropDownListProps]({% slug api_dropdowns_dropdownlistprops %}).
868
- * Obtaining the `ref` returns an object of type [DropDownListHandle]({% slug api_dropdowns_dropdownlisthandle %}).
869
- *
870
- * @example
871
- * ```jsx
872
- * class App extends React.Component {
873
- * dropdownlist = null;
874
- * render() {
875
- * return (
876
- * <div>
877
- * <DropDownList
878
- * data={[ "Albania", "Andorra", "Austria", "Belarus" ]}
879
- * ref={component => this.dropdownlist = component}
880
- * />
881
- * <button onClick={() => alert(this.dropdownlist.value)}>alert value</button>
882
- * </div>
883
- * );
884
- * }
885
- * }
886
- * ReactDOM.render(<App />, document.querySelector('my-app'));
887
- * ```
888
- */
889
- exports.DropDownList = (0, kendo_react_common_1.withPropsContext)(exports.DropDownListPropsContext, DropDownListWithoutContext);
890
- exports.DropDownList.displayName = 'KendoReactDropDownList';