@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,918 +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.ComboBox = exports.ComboBoxPropsContext = exports.ComboBoxWithoutContext = void 0;
30
- var React = require("react");
31
- var PropTypes = require("prop-types");
32
- var DropDownBase_1 = require("../common/DropDownBase");
33
- var kendo_react_common_1 = require("@progress/kendo-react-common");
34
- var kendo_react_labels_1 = require("@progress/kendo-react-labels");
35
- var utils_1 = require("../common/utils");
36
- var SearchBar_1 = require("../common/SearchBar");
37
- var ListContainer_1 = require("../common/ListContainer");
38
- var List_1 = require("../common/List");
39
- var ListFilter_1 = require("../common/ListFilter");
40
- var GroupStickyHeader_1 = require("../common/GroupStickyHeader");
41
- var kendo_react_common_2 = require("@progress/kendo-react-common");
42
- var package_metadata_1 = require("../package-metadata");
43
- var ClearButton_1 = require("../common/ClearButton");
44
- var kendo_react_buttons_1 = require("@progress/kendo-react-buttons");
45
- var kendo_svg_icons_1 = require("@progress/kendo-svg-icons");
46
- var messages_1 = require("./../messages");
47
- var kendo_react_intl_1 = require("@progress/kendo-react-intl");
48
- var kendo_react_layout_1 = require("@progress/kendo-react-layout");
49
- var constants_1 = require("../common/constants");
50
- var VALIDATION_MESSAGE = 'Please enter a valid value!';
51
- var sizeMap = kendo_react_common_1.kendoThemeMaps.sizeMap, roundedMap = kendo_react_common_1.kendoThemeMaps.roundedMap;
52
- /** @hidden */
53
- var ComboBoxWithoutContext = /** @class */ (function (_super) {
54
- __extends(ComboBoxWithoutContext, _super);
55
- function ComboBoxWithoutContext(props) {
56
- var _this = _super.call(this, props) || this;
57
- /** @hidden */
58
- _this.state = {};
59
- _this.base = new DropDownBase_1.default(_this);
60
- _this._element = null;
61
- _this._inputId = (0, kendo_react_common_1.guid)();
62
- _this._suggested = '';
63
- _this._skipBlur = false;
64
- _this._input = null;
65
- _this._adaptiveFilterInput = null;
66
- _this.itemHeight = 0;
67
- /** @hidden */
68
- _this.focus = function () {
69
- if (_this._input) {
70
- _this._input.focus();
71
- }
72
- };
73
- /** @hidden */
74
- _this.handleItemSelect = function (index, state) {
75
- var _a = _this.props, _b = _a.data, data = _b === void 0 ? [] : _b, virtual = _a.virtual, dataItemKey = _a.dataItemKey;
76
- var skip = virtual ? virtual.skip : 0;
77
- var item = data[index - skip];
78
- var newSelected = !(0, utils_1.areSame)(item, _this.value, dataItemKey);
79
- _this.triggerOnChange(item, state);
80
- if (_this.state.text !== undefined) {
81
- state.data.text = undefined;
82
- }
83
- if (newSelected) {
84
- _this.base.triggerPageChangeCornerItems(item, state);
85
- }
86
- };
87
- _this.onPopupOpened = function () {
88
- setTimeout(function () {
89
- if (_this.mobileMode && _this._adaptiveFilterInput) {
90
- _this._skipBlur = true;
91
- _this._adaptiveFilterInput.focus();
92
- _this._skipBlur = false;
93
- }
94
- }, 300);
95
- };
96
- _this.componentRef = function (element) {
97
- _this._element = element;
98
- _this.base.wrapper = element;
99
- };
100
- _this.toggleBtnClick = function (event) {
101
- var _a = _this.props, _b = _a.data, data = _b === void 0 ? [] : _b, skipDisabledItems = _a.skipDisabledItems, textField = _a.textField;
102
- var focusedIndex = _this.getFocusedIndex();
103
- var isCurrentValueDisabled = _this.getCurrentValueDisabledStatus(textField, data, focusedIndex);
104
- var opened = _this.props.opened !== undefined ? _this.props.opened : _this.state.opened;
105
- var state = _this.base.initState();
106
- state.syntheticEvent = event;
107
- if (!skipDisabledItems && textField && isCurrentValueDisabled) {
108
- _this.clearValueOnToggleBtnClick(event);
109
- }
110
- _this.base.togglePopup(state);
111
- if (!opened && _this.mobileMode) {
112
- var mobileText = _this.props.adaptiveFilter !== undefined ? _this.props.adaptiveFilter : _this.state.text || null;
113
- _this.base.filterChanged(mobileText, state);
114
- }
115
- _this.applyState(state);
116
- };
117
- _this.renderMobileListFilter = function () {
118
- var mobileText = _this.props.adaptiveFilter !== undefined ? _this.props.adaptiveFilter : _this.state.text;
119
- var selectedItemText = (0, utils_1.getItemValue)(_this.value, _this.props.textField);
120
- var mobileInputText = (0, utils_1.isPresent)(mobileText) ? mobileText : selectedItemText;
121
- return (React.createElement(ListFilter_1.default, { 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 }));
122
- };
123
- _this.handleMobileFilterChange = function (event) {
124
- var state = _this.base.initState();
125
- state.syntheticEvent = event.syntheticEvent;
126
- state.data.text = event.target.value;
127
- _this.base.filterChanged(event.target.value, state);
128
- _this.applyState(state);
129
- };
130
- _this.onScroll = function (event) {
131
- var _a = _this.base, vs = _a.vs, list = _a.list;
132
- vs.scrollHandler(event);
133
- var groupField = _this.props.groupField;
134
- var _b = _this.props.data, data = _b === void 0 ? [] : _b;
135
- if (!groupField || !data.length) {
136
- return;
137
- }
138
- var itemHeight = _this.itemHeight =
139
- _this.itemHeight || (vs.enabled ? vs.itemHeight : (list ? list.children[0].offsetHeight : 0));
140
- var target = event.target;
141
- var scrollTop = target.scrollTop - (vs.skip * itemHeight);
142
- if (_this.props.groupMode === 'modern') {
143
- data = _this.base.getGroupedDataModernMode(data, groupField);
144
- }
145
- var group = data[0][groupField];
146
- for (var i = 1; i < data.length; i++) {
147
- if (itemHeight * i > scrollTop) {
148
- break;
149
- }
150
- if (data[i] && data[i][groupField]) {
151
- group = data[i][groupField];
152
- }
153
- }
154
- if (group !== _this.state.group) {
155
- _this.setState({
156
- group: group
157
- });
158
- if (_this.props.onGroupScroll) {
159
- _this.props.onGroupScroll.call(undefined, { group: group });
160
- }
161
- }
162
- };
163
- _this.handleItemClick = function (index, event) {
164
- _this.base.handleItemClick(index, event);
165
- _this._valueDuringOnChange = undefined;
166
- };
167
- _this.handleBlur = function (event) {
168
- if (_this.state.focused && !_this._skipBlur) {
169
- var state = _this.base.initState();
170
- var _a = _this.props, textField = _a.textField, _b = _a.data, data = _b === void 0 ? [] : _b;
171
- var focusedIndex = _this.getFocusedIndex();
172
- var isCustomValue = focusedIndex === -1;
173
- var isCurrentValueDisabled = !isCustomValue && _this.getCurrentValueDisabledStatus(textField, data, focusedIndex);
174
- state.data.focused = false;
175
- state.events.push({ type: 'onBlur' });
176
- state.syntheticEvent = event;
177
- if (textField && isCurrentValueDisabled) {
178
- _this.clearValueOnBlur(event);
179
- }
180
- _this.applyValueOnRejectSuggestions(event.currentTarget.value, state);
181
- }
182
- };
183
- _this.onInputClick = function (event) {
184
- var opened = _this.props.opened !== undefined ? _this.props.opened : _this.state.opened;
185
- var mobileText = _this.props.adaptiveFilter !== undefined ? _this.props.adaptiveFilter : _this.state.text || null;
186
- if (!opened && _this.mobileMode) {
187
- var state = _this.base.initState();
188
- state.syntheticEvent = event;
189
- _this.base.togglePopup(state);
190
- _this.base.filterChanged(mobileText, state);
191
- _this.applyState(state);
192
- }
193
- };
194
- _this.onInputKeyDown = function (event) {
195
- var _a = _this.props, _b = _a.data, data = _b === void 0 ? [] : _b, skipDisabledItems = _a.skipDisabledItems, textField = _a.textField, dataItemKey = _a.dataItemKey, groupField = _a.groupField;
196
- var value = _this.value;
197
- var selectedIndex = Math.max(0, data.findIndex(function (i) { return (0, utils_1.areSame)(i, value, dataItemKey); }));
198
- var keyCode = event.keyCode;
199
- var opened = _this.props.opened !== undefined ? _this.props.opened : _this.state.opened;
200
- var state = _this.base.initState();
201
- state.syntheticEvent = event;
202
- if (!event.altKey && (keyCode === kendo_react_common_1.Keys.up || keyCode === kendo_react_common_1.Keys.down)) {
203
- event.preventDefault();
204
- if (groupField !== '' && textField) {
205
- if (!_this.props.skipDisabledItems && opened) {
206
- _this.onNavigate(state, keyCode);
207
- }
208
- else {
209
- var newIndex = 0;
210
- if (keyCode === kendo_react_common_1.Keys.down || keyCode === kendo_react_common_1.Keys.right) {
211
- var tempnewIndex_1 = data.slice(selectedIndex + 1).find(function (i) { return !i.disabled && i[textField]; });
212
- newIndex = tempnewIndex_1 && data.findIndex(function (el) { return el[textField] === tempnewIndex_1[textField]; });
213
- }
214
- else if (keyCode === kendo_react_common_1.Keys.up || keyCode === kendo_react_common_1.Keys.left) {
215
- var dataToSearch = void 0;
216
- if (selectedIndex === 0) {
217
- dataToSearch = data;
218
- newIndex = data.findIndex(function (i) { return !i.disabled && i[textField]; });
219
- }
220
- else {
221
- dataToSearch = data.slice(0, selectedIndex);
222
- var tempnewIndex_2 = dataToSearch.pop();
223
- while (tempnewIndex_2 && tempnewIndex_2.disabled) {
224
- tempnewIndex_2 = dataToSearch.pop();
225
- }
226
- newIndex = tempnewIndex_2 && data.findIndex(function (el) { return el[textField] === tempnewIndex_2[textField]; });
227
- }
228
- }
229
- if (newIndex !== undefined) {
230
- var skipItems = newIndex - selectedIndex;
231
- _this.onNavigate(state, keyCode, skipItems);
232
- }
233
- else if (newIndex === undefined && data.findIndex(function (el) { return el[textField] === value[textField]; }) === data.length - 1) {
234
- _this.onNavigate(state, keyCode);
235
- }
236
- }
237
- }
238
- else if (!_this.props.skipDisabledItems && opened) {
239
- _this.onNavigate(state, keyCode);
240
- }
241
- else {
242
- var newIndex = null;
243
- if (keyCode === kendo_react_common_1.Keys.down || keyCode === kendo_react_common_1.Keys.right) {
244
- newIndex = data.slice(selectedIndex + 1).find(function (i) { return !i.disabled; });
245
- }
246
- else if (keyCode === kendo_react_common_1.Keys.up || keyCode === kendo_react_common_1.Keys.left) {
247
- var dataTest = data.slice(0, selectedIndex);
248
- newIndex = dataTest.pop();
249
- while (newIndex && newIndex.disabled) {
250
- newIndex = dataTest.pop();
251
- }
252
- }
253
- if (newIndex) {
254
- var skipItems = newIndex.id - selectedIndex - 1;
255
- _this.onNavigate(state, keyCode, skipItems);
256
- }
257
- else {
258
- _this.onNavigate(state, keyCode);
259
- }
260
- }
261
- _this.applyState(state);
262
- }
263
- var togglePopup = function () {
264
- event.preventDefault();
265
- _this.base.togglePopup(state);
266
- _this.applyState(state);
267
- };
268
- var focusedIndex = _this.getFocusedIndex();
269
- var isCustomValue = focusedIndex === -1;
270
- var isCurrentValueDisabled = !isCustomValue && _this.getCurrentValueDisabledStatus(textField, data, focusedIndex);
271
- if (opened) {
272
- if (keyCode === kendo_react_common_1.Keys.pageUp) {
273
- _this.base.scrollPopupByPageSize(-1);
274
- }
275
- else if (keyCode === kendo_react_common_1.Keys.pageDown) {
276
- _this.base.scrollPopupByPageSize(1);
277
- }
278
- else if (event.altKey && keyCode === kendo_react_common_1.Keys.up) {
279
- togglePopup();
280
- }
281
- else if (keyCode === kendo_react_common_1.Keys.enter) {
282
- event.preventDefault();
283
- var currentValueText = textField && !isCustomValue && event.currentTarget.value ? data[focusedIndex][textField] : undefined;
284
- if (currentValueText) {
285
- if (!skipDisabledItems && textField && isCurrentValueDisabled) {
286
- _this.clearValueOnEnterOrEsc(event);
287
- }
288
- else if (!isCurrentValueDisabled) {
289
- _this.applyValueOnEnter(event.currentTarget.value, state);
290
- }
291
- }
292
- else {
293
- _this.applyValueOnEnter(event.currentTarget.value, state);
294
- }
295
- }
296
- else if (keyCode === kendo_react_common_1.Keys.esc) {
297
- if (!skipDisabledItems && textField && isCurrentValueDisabled) {
298
- _this.clearValueOnEnterOrEsc(event);
299
- }
300
- _this.applyValueOnRejectSuggestions(event.currentTarget.value, state);
301
- }
302
- }
303
- else if (!opened && keyCode === kendo_react_common_1.Keys.esc) {
304
- _this.clearValueOnEnterOrEsc(event);
305
- }
306
- else if (event.altKey && keyCode === kendo_react_common_1.Keys.down) {
307
- togglePopup();
308
- }
309
- };
310
- _this.inputOnChange = function (event) {
311
- var state = _this.base.initState();
312
- state.syntheticEvent = event;
313
- var opened = _this.props.opened !== undefined ? _this.props.opened : _this.state.opened;
314
- var input = event.currentTarget;
315
- var value = input.value;
316
- if (_this.props.suggest) {
317
- var selectionAtEnd = input.selectionEnd === value.length;
318
- var prevText = _this.props.filter !== undefined ? _this.props.filter : _this.state.text;
319
- if (!(0, utils_1.isPresent)(prevText)) {
320
- prevText = (0, utils_1.getItemValue)(_this.value, _this.props.textField) || '';
321
- }
322
- var deletedSuggestion = prevText && prevText === value;
323
- var deleting = prevText && prevText.length > value.length;
324
- if (deletedSuggestion || deleting || !selectionAtEnd) {
325
- _this._suggested = '';
326
- }
327
- else {
328
- _this.suggestValue(value);
329
- }
330
- }
331
- if (_this.props.filter === undefined) {
332
- state.data.text = value;
333
- }
334
- if (_this.state.focusedItem !== undefined) {
335
- state.data.focusedItem = undefined;
336
- }
337
- if (!opened) {
338
- _this.base.togglePopup(state);
339
- }
340
- _this.base.filterChanged(value, state);
341
- _this.applyState(state);
342
- _this.setState({ group: undefined });
343
- };
344
- _this.clearButtonClick = function (event) {
345
- var state = _this.base.initState();
346
- state.syntheticEvent = event;
347
- event.stopPropagation();
348
- _this.clearValue();
349
- };
350
- _this.clearValueOnEnterOrEsc = function (event) {
351
- var state = _this.base.initState();
352
- state.syntheticEvent = event;
353
- event.stopPropagation();
354
- _this.clearValue();
355
- };
356
- _this.clearValueOnBlur = function (event) {
357
- var state = _this.base.initState();
358
- state.syntheticEvent = event;
359
- event.stopPropagation();
360
- _this.clearValue();
361
- };
362
- _this.clearValueOnToggleBtnClick = function (event) {
363
- var state = _this.base.initState();
364
- state.syntheticEvent = event;
365
- event.stopPropagation();
366
- _this.clearValue();
367
- };
368
- _this.setValidity = function () {
369
- if (_this._input && _this._input.setCustomValidity) {
370
- _this._input.setCustomValidity(_this.validity.valid
371
- ? ''
372
- : _this.props.validationMessage || VALIDATION_MESSAGE);
373
- }
374
- };
375
- (0, kendo_react_common_2.validatePackage)(package_metadata_1.packageMetadata);
376
- return _this;
377
- }
378
- Object.defineProperty(ComboBoxWithoutContext.prototype, "document", {
379
- get: function () {
380
- if (!kendo_react_common_2.canUseDOM) {
381
- return;
382
- }
383
- // useful only for user actions
384
- return (this.element && this.element.ownerDocument) || document;
385
- },
386
- enumerable: false,
387
- configurable: true
388
- });
389
- Object.defineProperty(ComboBoxWithoutContext.prototype, "element", {
390
- /** @hidden */
391
- get: function () {
392
- return this._element;
393
- },
394
- enumerable: false,
395
- configurable: true
396
- });
397
- Object.defineProperty(ComboBoxWithoutContext.prototype, "mobileMode", {
398
- /**
399
- * The mobile mode of the ComboBox.
400
- */
401
- get: function () {
402
- var isAdaptive = this.state.windowWidth && this.state.windowWidth <= constants_1.MOBILE_MEDIUM_DEVISE && this.props.adaptive;
403
- return !!isAdaptive;
404
- },
405
- enumerable: false,
406
- configurable: true
407
- });
408
- Object.defineProperty(ComboBoxWithoutContext.prototype, "value", {
409
- /**
410
- * The value of the ComboBox.
411
- */
412
- get: function () {
413
- if (this._valueDuringOnChange !== undefined) {
414
- return this._valueDuringOnChange;
415
- }
416
- else if (this.props.value !== undefined) {
417
- return this.props.value;
418
- }
419
- else if (this.state.value !== undefined) {
420
- return this.state.value;
421
- }
422
- else if (this.props.defaultValue !== undefined) {
423
- return this.props.defaultValue;
424
- }
425
- return undefined;
426
- },
427
- enumerable: false,
428
- configurable: true
429
- });
430
- Object.defineProperty(ComboBoxWithoutContext.prototype, "index", {
431
- /**
432
- * The index of the selected item.
433
- */
434
- get: function () {
435
- var _a = this.props, _b = _a.data, data = _b === void 0 ? [] : _b, dataItemKey = _a.dataItemKey;
436
- var value = this.value;
437
- // TO DO: deprecate it!
438
- return data.findIndex(function (i) { return (0, utils_1.areSame)(i, value, dataItemKey); });
439
- },
440
- enumerable: false,
441
- configurable: true
442
- });
443
- Object.defineProperty(ComboBoxWithoutContext.prototype, "name", {
444
- /**
445
- * Gets the `name` property of the ComboBox.
446
- */
447
- get: function () {
448
- return this.props.name;
449
- },
450
- enumerable: false,
451
- configurable: true
452
- });
453
- Object.defineProperty(ComboBoxWithoutContext.prototype, "validity", {
454
- /**
455
- * Represents the validity state into which the component is set.
456
- */
457
- get: function () {
458
- // remove the undefined check when this is fixed:
459
- // https://github.com/telerik/kendo-react-private/issues/252
460
- var customError = this.props.validationMessage !== undefined;
461
- var isValid = (!this.required
462
- || (this.value !== null && this.value !== '' && this.value !== undefined));
463
- var valid = this.props.valid !== undefined ? this.props.valid : isValid;
464
- return {
465
- customError: customError,
466
- valid: valid,
467
- valueMissing: this.value === null
468
- };
469
- },
470
- enumerable: false,
471
- configurable: true
472
- });
473
- Object.defineProperty(ComboBoxWithoutContext.prototype, "validityStyles", {
474
- get: function () {
475
- return this.props.validityStyles !== undefined
476
- ? this.props.validityStyles
477
- : ComboBoxWithoutContext.defaultProps.validityStyles;
478
- },
479
- enumerable: false,
480
- configurable: true
481
- });
482
- Object.defineProperty(ComboBoxWithoutContext.prototype, "required", {
483
- /** @hidden */
484
- get: function () {
485
- return this.props.required !== undefined
486
- ? this.props.required
487
- : ComboBoxWithoutContext.defaultProps.required;
488
- },
489
- enumerable: false,
490
- configurable: true
491
- });
492
- /** @hidden */
493
- ComboBoxWithoutContext.prototype.componentDidUpdate = function (prevProps, prevState) {
494
- var _a;
495
- 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;
496
- var prevTotal = prevProps.virtual ? prevProps.virtual.total : 0;
497
- var opened = this.props.opened !== undefined ? this.props.opened : this.state.opened;
498
- var prevOpened = prevProps.opened !== undefined ? prevProps.opened : prevState.opened;
499
- var opening = !prevOpened && opened;
500
- var selectedItem = this.value;
501
- this._valueOnDidUpdate = selectedItem;
502
- if (virtual && virtual.total !== prevTotal) {
503
- this.base.vs.calcScrollElementHeight();
504
- this.base.vs.reset();
505
- }
506
- else {
507
- var prevSelectedItem = prevProps.value !== undefined ? prevProps.value : prevState.value;
508
- var selectedItemIndex = data.findIndex(function (i) { return (0, utils_1.areSame)(i, selectedItem, dataItemKey); });
509
- // Needed to calculate the proper item index when in 'modern' grouping mode
510
- if (this.props.groupMode === 'modern' && textField && selectedItem) {
511
- selectedItemIndex = (_a = this.base.getGroupedDataModernMode(data, groupField)) === null || _a === void 0 ? void 0 : _a.map(function (el) { return el[textField]; }).indexOf(selectedItem[textField]);
512
- }
513
- var selectedItemChanged = !(0, utils_1.areSame)(prevSelectedItem, selectedItem, dataItemKey);
514
- if (opening && virtual) {
515
- this.base.scrollToVirtualItem(virtual, selectedItemIndex);
516
- }
517
- else if (opening && !virtual) {
518
- this.onPopupOpened();
519
- // Resets the sticky header group value for scenarios with open/close of component's popup
520
- if (data && data.length !== 0) {
521
- this.base.resetGroupStickyHeader(data[0][groupField], this);
522
- }
523
- this.base.scrollToItem(selectedItemIndex);
524
- }
525
- else if (opened && prevOpened && selectedItem && selectedItemChanged) {
526
- this.base.scrollToItem(selectedItemIndex);
527
- }
528
- }
529
- if (opening && this._input) {
530
- this._input.focus();
531
- }
532
- this.setValidity();
533
- };
534
- /** @hidden */
535
- ComboBoxWithoutContext.prototype.componentDidMount = function () {
536
- var _a;
537
- this.observerResize = kendo_react_common_2.canUseDOM && window.ResizeObserver && new window.ResizeObserver(this.calculateMedia.bind(this));
538
- this.base.didMount();
539
- this.setValidity();
540
- if (((_a = this.document) === null || _a === void 0 ? void 0 : _a.body) && this.observerResize) {
541
- this.observerResize.observe(this.document.body);
542
- }
543
- };
544
- /** @hidden */
545
- ComboBoxWithoutContext.prototype.componentWillUnmount = function () {
546
- var _a;
547
- if (((_a = this.document) === null || _a === void 0 ? void 0 : _a.body) && this.observerResize) {
548
- this.observerResize.disconnect();
549
- }
550
- };
551
- /** @hidden */
552
- ComboBoxWithoutContext.prototype.render = function () {
553
- var _a;
554
- var btnAriaLabelExpand = (0, kendo_react_intl_1.provideLocalizationService)(this).toLanguageString(messages_1.comboArrowBtnAriaLabelExpand, messages_1.messages[messages_1.comboArrowBtnAriaLabelExpand]);
555
- var btnAriaLabelCollapse = (0, kendo_react_intl_1.provideLocalizationService)(this).toLanguageString(messages_1.comboArrowBtnAriaLabelCollapse, messages_1.messages[messages_1.comboArrowBtnAriaLabelCollapse]);
556
- 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;
557
- var _e = this.state.windowWidth, windowWidth = _e === void 0 ? 0 : _e;
558
- var isValid = !this.validityStyles || this.validity.valid;
559
- var text = this.props.filter !== undefined ? this.props.filter : this.state.text;
560
- var selectedItemText = (0, utils_1.getItemValue)(this.value, textField);
561
- var inputText = (0, utils_1.isPresent)(text) ? text : selectedItemText;
562
- var renderClearButton = clearButton && (!!(inputText) || (0, utils_1.isPresent)(this.value));
563
- var base = this.base;
564
- var vs = base.vs;
565
- var id = this.props.id || this._inputId;
566
- var renderAdaptive = windowWidth <= constants_1.MOBILE_MEDIUM_DEVISE && adaptive;
567
- vs.enabled = virtual !== undefined;
568
- if (virtual !== undefined) {
569
- vs.skip = virtual.skip;
570
- vs.total = virtual.total;
571
- vs.pageSize = virtual.pageSize;
572
- }
573
- var combobox = (React.createElement(React.Fragment, null,
574
- React.createElement("span", { className: (0, kendo_react_common_1.classNames)('k-combobox k-input', (_a = {},
575
- _a["k-input-".concat(sizeMap[size] || size)] = size,
576
- _a["k-rounded-".concat(roundedMap[rounded] || rounded)] = rounded,
577
- _a["k-input-".concat(fillMode)] = fillMode,
578
- _a['k-invalid'] = !isValid,
579
- _a['k-loading'] = loading,
580
- _a['k-required'] = this.required,
581
- _a['k-disabled'] = disabled,
582
- _a), className), ref: this.componentRef, style: !label ? style : __assign(__assign({}, style), { width: undefined }), dir: dir },
583
- this.renderSearchBar(inputText || '', id, placeholder),
584
- renderClearButton && !loading && React.createElement(ClearButton_1.default, { onClick: this.clearButtonClick, key: "clearbutton" }),
585
- loading && React.createElement(kendo_react_common_2.IconWrap, { className: "k-input-loading-icon", name: 'loading', key: "loading" }),
586
- React.createElement(kendo_react_buttons_1.Button, { tabIndex: -1, type: "button", "aria-label": opened ? btnAriaLabelCollapse : btnAriaLabelExpand, icon: !iconClassName ? 'caret-alt-down' : undefined, svgIcon: !iconClassName ? kendo_svg_icons_1.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(); } }),
587
- !renderAdaptive && this.renderListContainer()),
588
- renderAdaptive && this.renderAdaptiveListContainer()));
589
- return label
590
- ? (React.createElement(kendo_react_labels_1.FloatingLabel, { label: label, editorId: id, editorValue: inputText, editorValid: isValid, editorDisabled: disabled, style: { width: style ? style.width : undefined }, children: combobox }))
591
- : combobox;
592
- };
593
- /** @hidden */
594
- ComboBoxWithoutContext.prototype.onNavigate = function (state, keyCode, skipItems) {
595
- var _a = this.props, _b = _a.data, data = _b === void 0 ? [] : _b, _c = _a.virtual, virtual = _c === void 0 ? { skip: 0 } : _c;
596
- var text = this.props.filter ? this.props.filter : this.state.text;
597
- var focusedIndex = this.getFocusedIndex();
598
- var vs = this.base.vs;
599
- var value = this.value;
600
- this._suggested = '';
601
- if (focusedIndex !== -1 && !(0, utils_1.isPresent)(value)) {
602
- this.handleItemSelect(focusedIndex, state);
603
- }
604
- else if (text === '') {
605
- this.handleItemSelect(0, state);
606
- }
607
- else {
608
- var currentIndex = virtual.skip + focusedIndex;
609
- var newIndex = this.base.navigation.navigate({
610
- keyCode: keyCode,
611
- current: currentIndex,
612
- max: (vs.enabled ? vs.total : data.length) - 1,
613
- min: 0,
614
- skipItems: skipItems ? skipItems : undefined
615
- });
616
- if (newIndex !== undefined) {
617
- this.handleItemSelect(newIndex, state);
618
- }
619
- }
620
- };
621
- ;
622
- ComboBoxWithoutContext.prototype.getCurrentValueDisabledStatus = function (textField, data, focusedIndex) {
623
- return textField && data && data[focusedIndex] && data[focusedIndex].disabled;
624
- };
625
- ComboBoxWithoutContext.prototype.applyValueOnEnter = function (value, state) {
626
- var _a;
627
- var _b = this.props, _c = _b.data, data = _c === void 0 ? [] : _c, textField = _b.textField, allowCustom = _b.allowCustom;
628
- var opened = this.props.opened !== undefined ? this.props.opened : this.state.opened;
629
- var currentValueText = (0, utils_1.getItemValue)(this.value, textField);
630
- var valueIndex = currentValueText === value ?
631
- this.index : (0, utils_1.getItemIndexByText)(data, value, textField);
632
- var itemSelected = valueIndex !== -1;
633
- var newSelected = undefined;
634
- this._suggested = '';
635
- if (itemSelected) { // typed text match item from list
636
- newSelected = data[valueIndex];
637
- }
638
- else {
639
- if (allowCustom) { // any custom text not in list
640
- newSelected = textField !== undefined ? (_a = {}, _a[textField] = value, _a) : value;
641
- }
642
- else {
643
- return this.selectFocusedItem(value, state);
644
- }
645
- }
646
- this.triggerOnChange(newSelected, state);
647
- if (opened) {
648
- this.base.togglePopup(state);
649
- }
650
- if (this.props.filter === undefined && this.state.text !== undefined) {
651
- state.data.text = undefined;
652
- }
653
- this.applyState(state);
654
- };
655
- ComboBoxWithoutContext.prototype.applyValueOnRejectSuggestions = function (text, state) {
656
- var _a;
657
- var _b = this.props, _c = _b.data, data = _c === void 0 ? [] : _c, textField = _b.textField, allowCustom = _b.allowCustom;
658
- var opened = this.props.opened !== undefined ? this.props.opened : this.state.opened;
659
- var valueItemText = (0, utils_1.getItemValue)(this.value, textField);
660
- var isMobileDevice = this.state.windowWidth && this.state.windowWidth <= constants_1.MOBILE_MEDIUM_DEVISE;
661
- this._suggested = '';
662
- if (text === valueItemText || (text === '' && !(0, utils_1.isPresent)(valueItemText))) {
663
- if (opened && !isMobileDevice) {
664
- this.base.togglePopup(state);
665
- }
666
- return this.applyState(state);
667
- }
668
- var valueIndex = (0, utils_1.getItemIndexByText)(data, text, textField, true);
669
- var itemSelected = valueIndex !== -1;
670
- var newSelected = null;
671
- if (itemSelected) {
672
- newSelected = data[valueIndex];
673
- }
674
- else if (allowCustom) {
675
- newSelected = text ? (textField ? (_a = {}, _a[textField] = text, _a) : text) : null;
676
- }
677
- this.triggerOnChange(newSelected, state);
678
- if (this.state.text !== undefined) {
679
- state.data.text = undefined;
680
- this.base.filterChanged('', state);
681
- }
682
- if (opened && !isMobileDevice) {
683
- this.base.togglePopup(state);
684
- }
685
- this.applyState(state);
686
- };
687
- ComboBoxWithoutContext.prototype.selectFocusedItem = function (text, state) {
688
- var opened = this.props.opened !== undefined ? this.props.opened : this.state.opened;
689
- 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 ? utils_1.itemIndexStartsWith : _d;
690
- var skip = virtual.skip;
691
- var focusedIndex = (text === '' && skip === 0) ? 0 :
692
- focusedItemIndex(data, text, textField);
693
- if (focusedIndex !== -1) {
694
- this.handleItemSelect(focusedIndex + skip, state);
695
- }
696
- else {
697
- this.triggerOnChange(null, state);
698
- if (this.state.text !== undefined) {
699
- state.data.text = undefined;
700
- }
701
- }
702
- if (opened) {
703
- this.base.togglePopup(state);
704
- }
705
- return this.applyState(state);
706
- };
707
- ComboBoxWithoutContext.prototype.renderAdaptiveListContainer = function () {
708
- var _a;
709
- var _this = this;
710
- var _b = this.state.windowWidth, windowWidth = _b === void 0 ? 0 : _b;
711
- 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;
712
- var opened = this.props.opened !== undefined ? this.props.opened : this.state.opened;
713
- var group = this.state.group;
714
- if (group === undefined && groupField !== undefined) {
715
- group = (0, utils_1.getItemValue)(data[0], groupField);
716
- }
717
- var actionSheetProps = {
718
- navigatable: false,
719
- navigatableElements: [],
720
- expand: opened,
721
- animation: true,
722
- onClose: function (event) { return _this.toggleBtnClick(event); },
723
- animationStyles: windowWidth <= constants_1.MOBILE_SMALL_DEVISE ? { top: 0, width: '100%', height: '100%' } : undefined,
724
- className: windowWidth <= constants_1.MOBILE_SMALL_DEVISE
725
- ? 'k-adaptive-actionsheet k-actionsheet-fullscreen'
726
- : 'k-adaptive-actionsheet k-actionsheet-bottom'
727
- };
728
- return (React.createElement(React.Fragment, null,
729
- React.createElement(kendo_react_layout_1.ActionSheet, __assign({}, actionSheetProps),
730
- React.createElement(kendo_react_layout_1.ActionSheetHeader, { className: 'k-text-center' },
731
- React.createElement("div", { className: "k-actionsheet-titlebar-group k-hbox" },
732
- React.createElement("div", { className: "k-actionsheet-title" },
733
- React.createElement("div", null, adaptiveTitle)),
734
- React.createElement("div", { className: "k-actionsheet-actions" },
735
- React.createElement(kendo_react_buttons_1.Button, { tabIndex: 0, "aria-label": "Cancel", "aria-disabled": "false", type: "button", fillMode: "flat", onClick: this.toggleBtnClick, icon: 'x', svgIcon: kendo_svg_icons_1.xIcon }))),
736
- React.createElement("div", { className: "k-actionsheet-titlebar-group k-actionsheet-filter" }, this.renderMobileListFilter())),
737
- React.createElement(kendo_react_layout_1.ActionSheetContent, { className: '!k-overflow-hidden' },
738
- React.createElement("div", { className: 'k-list-container' },
739
- React.createElement("div", { className: (0, kendo_react_common_1.classNames)((_a = {},
740
- _a['k-list'] = !list,
741
- _a['k-list-lg'] = true,
742
- _a['k-virtual-list'] = virtual,
743
- _a['k-data-table'] = list,
744
- _a["k-table-".concat(sizeMap[size] || size)] = list && size,
745
- _a)) },
746
- header && React.createElement("div", { className: "k-table-header" }, header),
747
- !list && group && data.length !== 0 && React.createElement(GroupStickyHeader_1.default, { group: group, groupMode: groupMode, render: groupStickyHeaderItemRender }),
748
- this.renderList(),
749
- footer && React.createElement("div", { className: "k-list-footer" }, footer)))))));
750
- };
751
- ComboBoxWithoutContext.prototype.renderListContainer = function () {
752
- var _a, _b;
753
- var base = this.base;
754
- 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;
755
- var opened = this.props.opened !== undefined ? this.props.opened : this.state.opened;
756
- var popupSettings = base.getPopupSettings();
757
- var popupWidth = popupSettings.width !== undefined ? popupSettings.width : base.popupWidth;
758
- var group = this.state.group;
759
- if (group === undefined && groupField !== undefined) {
760
- group = (0, utils_1.getItemValue)(data[0], groupField);
761
- }
762
- return (React.createElement(ListContainer_1.default, { width: popupWidth, popupSettings: {
763
- animate: popupSettings.animate,
764
- anchor: this.element,
765
- show: opened,
766
- popupClass: (0, kendo_react_common_1.classNames)(popupSettings.popupClass, 'k-list-container', 'k-combobox-popup'),
767
- className: popupSettings.className,
768
- appendTo: popupSettings.appendTo
769
- }, dir: dir !== undefined ? dir : this.base.dirCalculated, itemsCount: [data.length] },
770
- React.createElement("div", { className: (0, kendo_react_common_1.classNames)((_a = {},
771
- _a['k-list'] = !list,
772
- _a["k-list-".concat(sizeMap[size] || size)] = !list && size,
773
- _a['k-virtual-list'] = virtual,
774
- _a['k-data-table'] = list,
775
- _a["k-table-".concat(sizeMap[size] || size)] = list && size,
776
- _a)) },
777
- header && React.createElement("div", { className: "k-table-header" }, header),
778
- !list && group && data.length !== 0 && React.createElement(GroupStickyHeader_1.default, { group: group, groupMode: groupMode, render: groupStickyHeaderItemRender }),
779
- this.renderList(),
780
- footer &&
781
- React.createElement("div", { className: (0, kendo_react_common_1.classNames)((_b = {},
782
- _b['k-list-footer'] = !this.props.footerClassName,
783
- _b), this.props.footerClassName) }, footer))));
784
- };
785
- ComboBoxWithoutContext.prototype.renderList = function () {
786
- var _a;
787
- var _this = this;
788
- var base = this.base;
789
- 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;
790
- var popupSettings = base.getPopupSettings();
791
- var vs = base.vs;
792
- var skip = virtual.skip;
793
- var opened = this.props.opened !== undefined ? this.props.opened : this.state.opened;
794
- var translate = "translateY(".concat(vs.translate, "px)");
795
- var focusedIndex = opened ? this.getFocusedIndex() : undefined;
796
- var text = this.props.filter !== undefined ? this.props.filter : this.state.text;
797
- var selectedItemText = (0, utils_1.getItemValue)(this.value, textField);
798
- var value = (0, utils_1.isPresent)(text) && text !== selectedItemText ? null : this.value;
799
- var ListComponent = this.props.list || List_1.default;
800
- 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 > constants_1.MOBILE_MEDIUM_DEVISE)
801
- ? { maxHeight: popupSettings.height }
802
- : {}, wrapperCssClass: (0, kendo_react_common_1.classNames)('k-list-content', (_a = {},
803
- _a['k-list-scroller'] = !virtual,
804
- _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() }));
805
- };
806
- ComboBoxWithoutContext.prototype.renderSearchBar = function (text, id, placeholder) {
807
- var _this = this;
808
- 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;
809
- var opened = this.props.opened !== undefined ? this.props.opened : this.state.opened;
810
- var value = this.value;
811
- var selectedIndex = Math.max(0, data.findIndex(function (i) { return (0, utils_1.areSame)(i, value, dataItemKey); }));
812
- if (this._suggested && !(0, utils_1.areSame)(this._valueOnDidUpdate, value, dataItemKey)) {
813
- this._suggested = '';
814
- }
815
- return (React.createElement(SearchBar_1.default, { 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 }));
816
- };
817
- ComboBoxWithoutContext.prototype.clearValue = function () {
818
- var state = this.base.initState();
819
- this._suggested = '';
820
- this.base.filterChanged('', state);
821
- if (this.props.filter === undefined && this.state.text !== undefined) {
822
- state.data.text = undefined;
823
- }
824
- this.triggerOnChange(null, state);
825
- var opened = this.props.opened !== undefined ? this.props.opened : this.state.opened;
826
- var isAdaptive = this.mobileMode;
827
- if (opened && !isAdaptive) {
828
- this.base.togglePopup(state);
829
- }
830
- this.applyState(state);
831
- };
832
- ComboBoxWithoutContext.prototype.triggerOnChange = function (item, state) {
833
- var value = this.value;
834
- if ((!(0, utils_1.isPresent)(value) && !(0, utils_1.isPresent)(item)) || (0, utils_1.areSame)(value, item, this.props.dataItemKey)) {
835
- return;
836
- }
837
- if (this.props.value === undefined) {
838
- state.data.value = item;
839
- }
840
- this._valueDuringOnChange = item;
841
- state.events.push({ type: 'onChange' });
842
- };
843
- ComboBoxWithoutContext.prototype.getFocusedIndex = function () {
844
- var value = this.value;
845
- 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, skipDisabledItems = _a.skipDisabledItems;
846
- var text = this.props.filter ? this.props.filter : this.state.text;
847
- if ((0, utils_1.isPresent)(value) && text === undefined) {
848
- return data.findIndex(function (i) { return (0, utils_1.areSame)(i, value, dataItemKey); });
849
- }
850
- else if (text) {
851
- return focusedItemIndex(data, text, textField);
852
- }
853
- else if (skipDisabledItems && textField && !text && virtual.skip === 0) {
854
- return data.findIndex(function (i) { return !i.disabled && i[textField]; });
855
- }
856
- else {
857
- return virtual.skip === 0 ? 0 : -1;
858
- }
859
- };
860
- ComboBoxWithoutContext.prototype.suggestValue = function (value) {
861
- var _a = this.props, data = _a.data, textField = _a.textField;
862
- this._suggested = (0, utils_1.suggestValue)(value, data, textField);
863
- };
864
- ComboBoxWithoutContext.prototype.applyState = function (state) {
865
- this.base.applyState(state);
866
- this._valueDuringOnChange = undefined;
867
- };
868
- ComboBoxWithoutContext.prototype.calculateMedia = function (entries) {
869
- for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {
870
- var entry = entries_1[_i];
871
- this.setState({ windowWidth: entry.target.clientWidth });
872
- }
873
- ;
874
- };
875
- ;
876
- ComboBoxWithoutContext.displayName = 'ComboBox';
877
- /** @hidden */
878
- ComboBoxWithoutContext.propTypes = __assign(__assign({}, DropDownBase_1.default.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: kendo_react_common_1.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 });
879
- /** @hidden */
880
- ComboBoxWithoutContext.defaultProps = __assign(__assign({}, DropDownBase_1.default.defaultProps), { size: 'medium', rounded: 'medium', fillMode: 'solid', allowCustom: false, clearButton: true, required: false, groupMode: 'modern', isMultiColumn: false, skipDisabledItems: true });
881
- return ComboBoxWithoutContext;
882
- }(React.Component));
883
- exports.ComboBoxWithoutContext = ComboBoxWithoutContext;
884
- /**
885
- * Represents the PropsContext of the `ComboBox` component.
886
- * Used for global configuration of all `ComboBox` instances.
887
- *
888
- * For more information, refer to the [Dropdowns Props Context]({% slug props-context_dropdowns %}) article.
889
- */
890
- exports.ComboBoxPropsContext = (0, kendo_react_common_1.createPropsContext)();
891
- /* eslint-disable @typescript-eslint/no-redeclare -- intentionally naming the component the same as the type */
892
- /**
893
- * Represents the [KendoReact ComboBox component]({% slug overview_combobox %}).
894
- *
895
- * Accepts properties of type [ComboBoxProps]({% slug api_dropdowns_comboboxprops %}).
896
- * Obtaining the `ref` returns an object of type [ComboBoxHandle]({% slug api_dropdowns_comboboxhandle %}).
897
- *
898
- * @example
899
- * ```jsx
900
- * class App extends React.Component {
901
- * combobox = null;
902
- * render() {
903
- * return (
904
- * <div>
905
- * <ComboBox
906
- * data={[ "Albania", "Andorra", "Austria", "Belarus" ]}
907
- * ref={component => this.combobox = component}
908
- * />
909
- * <button onClick={() => alert(this.combobox.value)}>alert value</button>
910
- * </div>
911
- * );
912
- * }
913
- * }
914
- * ReactDOM.render(<App />, document.querySelector('my-app'));
915
- * ```
916
- */
917
- exports.ComboBox = (0, kendo_react_common_1.withPropsContext)(exports.ComboBoxPropsContext, ComboBoxWithoutContext);
918
- exports.ComboBox.displayName = 'KendoReactComboBox';