@progress/kendo-react-dropdowns 4.14.0 → 5.0.0

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 (71) hide show
  1. package/dist/cdn/js/kendo-react-dropdowns.js +1 -1
  2. package/dist/es/AutoComplete/AutoComplete.d.ts +7 -4
  3. package/dist/es/AutoComplete/AutoComplete.js +30 -19
  4. package/dist/es/AutoComplete/AutoCompleteProps.d.ts +37 -0
  5. package/dist/es/ComboBox/ComboBox.d.ts +8 -1
  6. package/dist/es/ComboBox/ComboBox.js +46 -33
  7. package/dist/es/ComboBox/ComboBoxProps.d.ts +37 -0
  8. package/dist/es/DropDownList/DropDownList.d.ts +6 -8
  9. package/dist/es/DropDownList/DropDownList.js +56 -48
  10. package/dist/es/DropDownList/DropDownListProps.d.ts +37 -0
  11. package/dist/es/DropDownTree/DropDownTree.js +44 -24
  12. package/dist/es/DropDownTree/DropDownTreeProps.d.ts +37 -0
  13. package/dist/es/MultiColumnComboBox/MultiColumnComboBox.d.ts +37 -0
  14. package/dist/es/MultiColumnComboBox/MultiColumnComboBox.js +23 -12
  15. package/dist/es/MultiSelect/MultiSelect.d.ts +8 -5
  16. package/dist/es/MultiSelect/MultiSelect.js +51 -32
  17. package/dist/es/MultiSelect/MultiSelectProps.d.ts +38 -1
  18. package/dist/es/MultiSelect/TagList.d.ts +2 -1
  19. package/dist/es/MultiSelect/TagList.js +10 -15
  20. package/dist/es/MultiSelectTree/MultiSelectTree.js +42 -29
  21. package/dist/es/MultiSelectTree/MultiSelectTreeProps.d.ts +37 -0
  22. package/dist/es/common/ClearButton.js +2 -1
  23. package/dist/es/common/DropDownBase.d.ts +2 -3
  24. package/dist/es/common/DropDownBase.js +2 -16
  25. package/dist/es/common/List.d.ts +1 -0
  26. package/dist/es/common/List.js +3 -2
  27. package/dist/es/common/ListDefaultItem.js +2 -2
  28. package/dist/es/common/ListFilter.d.ts +5 -0
  29. package/dist/es/common/ListFilter.js +12 -3
  30. package/dist/es/common/ListItem.js +5 -5
  31. package/dist/es/common/MultiColumnList.js +1 -1
  32. package/dist/es/common/SearchBar.d.ts +1 -4
  33. package/dist/es/common/SearchBar.js +2 -8
  34. package/dist/es/common/VirtualScroll.js +3 -2
  35. package/dist/es/package-metadata.js +1 -1
  36. package/dist/npm/AutoComplete/AutoComplete.d.ts +7 -4
  37. package/dist/npm/AutoComplete/AutoComplete.js +29 -18
  38. package/dist/npm/AutoComplete/AutoCompleteProps.d.ts +37 -0
  39. package/dist/npm/ComboBox/ComboBox.d.ts +8 -1
  40. package/dist/npm/ComboBox/ComboBox.js +45 -32
  41. package/dist/npm/ComboBox/ComboBoxProps.d.ts +37 -0
  42. package/dist/npm/DropDownList/DropDownList.d.ts +6 -8
  43. package/dist/npm/DropDownList/DropDownList.js +55 -47
  44. package/dist/npm/DropDownList/DropDownListProps.d.ts +37 -0
  45. package/dist/npm/DropDownTree/DropDownTree.js +43 -23
  46. package/dist/npm/DropDownTree/DropDownTreeProps.d.ts +37 -0
  47. package/dist/npm/MultiColumnComboBox/MultiColumnComboBox.d.ts +37 -0
  48. package/dist/npm/MultiColumnComboBox/MultiColumnComboBox.js +22 -11
  49. package/dist/npm/MultiSelect/MultiSelect.d.ts +8 -5
  50. package/dist/npm/MultiSelect/MultiSelect.js +50 -31
  51. package/dist/npm/MultiSelect/MultiSelectProps.d.ts +38 -1
  52. package/dist/npm/MultiSelect/TagList.d.ts +2 -1
  53. package/dist/npm/MultiSelect/TagList.js +10 -15
  54. package/dist/npm/MultiSelectTree/MultiSelectTree.js +40 -27
  55. package/dist/npm/MultiSelectTree/MultiSelectTreeProps.d.ts +37 -0
  56. package/dist/npm/common/ClearButton.js +2 -1
  57. package/dist/npm/common/DropDownBase.d.ts +2 -3
  58. package/dist/npm/common/DropDownBase.js +2 -16
  59. package/dist/npm/common/List.d.ts +1 -0
  60. package/dist/npm/common/List.js +3 -2
  61. package/dist/npm/common/ListDefaultItem.js +2 -2
  62. package/dist/npm/common/ListFilter.d.ts +5 -0
  63. package/dist/npm/common/ListFilter.js +12 -3
  64. package/dist/npm/common/ListItem.js +5 -5
  65. package/dist/npm/common/MultiColumnList.js +1 -1
  66. package/dist/npm/common/SearchBar.d.ts +1 -4
  67. package/dist/npm/common/SearchBar.js +2 -8
  68. package/dist/npm/common/VirtualScroll.js +3 -2
  69. package/dist/npm/package-metadata.js +1 -1
  70. package/dist/systemjs/kendo-react-dropdowns.js +1 -1
  71. package/package.json +19 -13
@@ -37,6 +37,8 @@ var settings_1 = require("./../common/settings");
37
37
  var utils_1 = require("../common/utils");
38
38
  var kendo_react_common_2 = require("@progress/kendo-react-common");
39
39
  var package_metadata_1 = require("../package-metadata");
40
+ var ClearButton_1 = require("../common/ClearButton");
41
+ var sizeMap = kendo_react_common_1.kendoThemeMaps.sizeMap, roundedMap = kendo_react_common_1.kendoThemeMaps.roundedMap;
40
42
  var VALIDATION_MESSAGE = 'Please enter a valid value!';
41
43
  var preventDefault = function (event) { return event.preventDefault(); };
42
44
  var isCustom = function (type) { return type === FocusedItemType.CustomItem; };
@@ -142,6 +144,10 @@ var MultiSelectWithoutContext = /** @class */ (function (_super) {
142
144
  }
143
145
  _this.base.triggerPageChangeCornerItems(nextFocusedItem, state);
144
146
  };
147
+ _this.componentRef = function (element) {
148
+ _this._element = element;
149
+ _this.base.wrapper = element;
150
+ };
145
151
  _this.searchbarRef = function (searchbar) {
146
152
  var input = _this._input = searchbar && searchbar.input;
147
153
  if (input && _this.state.focused) {
@@ -230,19 +236,22 @@ var MultiSelectWithoutContext = /** @class */ (function (_super) {
230
236
  }
231
237
  };
232
238
  _this.renderListContainer = function () {
239
+ var _a, _b;
233
240
  var base = _this.base;
234
- var _a = _this.props, header = _a.header, footer = _a.footer, allowCustom = _a.allowCustom, dir = _a.dir, _b = _a.data, data = _b === void 0 ? [] : _b;
241
+ var _c = _this.props, header = _c.header, footer = _c.footer, allowCustom = _c.allowCustom, dir = _c.dir, _d = _c.data, data = _d === void 0 ? [] : _d, size = _c.size;
235
242
  var popupSettings = _this.base.getPopupSettings();
236
243
  var opened = _this.props.opened !== undefined ? _this.props.opened : _this.state.opened;
237
244
  var text = _this.props.filter !== undefined ? _this.props.filter : _this.state.text;
238
- var virtual = _this.props.virtual !== undefined;
239
245
  var popupWidth = popupSettings.width !== undefined ? popupSettings.width : base.popupWidth;
240
246
  var listContainerProps = {
241
247
  dir: dir !== undefined ? dir : base.dirCalculated,
242
248
  width: popupWidth,
243
249
  popupSettings: {
244
- popupClass: popupSettings.popupClass,
245
- className: kendo_react_common_1.classNames('k-list-container k-reset', popupSettings.className),
250
+ popupClass: kendo_react_common_1.classNames(popupSettings.popupClass, 'k-list', (_a = {},
251
+ _a["k-list-" + (sizeMap[size] || size)] = size,
252
+ _a['k-virtual-list'] = _this.base.vs.enabled,
253
+ _a)),
254
+ className: popupSettings.className,
246
255
  animate: popupSettings.animate,
247
256
  anchor: _this.element,
248
257
  show: opened,
@@ -253,19 +262,17 @@ var MultiSelectWithoutContext = /** @class */ (function (_super) {
253
262
  itemsCount: [data.length, _this.value.length]
254
263
  };
255
264
  var focusedType = _this.getFocusedState().focusedType;
256
- var customItem = allowCustom && text && (React.createElement("div", { className: "k-list", key: "customitem", onClick: _this.customItemSelect, onMouseDown: preventDefault },
257
- React.createElement("div", { className: kendo_react_common_1.classNames('k-item k-custom-item', { 'k-state-focused': isCustom(focusedType) }) },
265
+ var customItem = allowCustom && text && (React.createElement("div", { className: kendo_react_common_1.classNames('k-list', (_b = {},
266
+ _b["k-list-" + (sizeMap[size] || size)] = size,
267
+ _b)), key: "customitem", onClick: _this.customItemSelect, onMouseDown: preventDefault },
268
+ React.createElement("div", { className: kendo_react_common_1.classNames('k-list-item k-custom-item', { 'k-focus': isCustom(focusedType) }), style: { fontStyle: 'italic' } },
258
269
  text,
259
- React.createElement("span", { className: "k-icon k-i-plus", style: { float: 'right' } }))));
270
+ React.createElement("span", { className: "k-icon k-i-plus", style: { position: 'absolute', right: '0.5em' } }))));
260
271
  return (React.createElement(ListContainer_1.default, __assign({}, listContainerProps),
261
- virtual && header,
262
- _this.base.renderScrollWrapper(React.createElement(React.Fragment, null,
263
- !virtual && header,
264
- customItem,
265
- _this.renderList(),
266
- !virtual && footer,
267
- _this.base.renderScrollElement())),
268
- virtual && footer));
272
+ header && React.createElement("div", { className: "k-list-header" }, header),
273
+ customItem,
274
+ _this.renderList(),
275
+ footer && React.createElement("div", { className: "k-list-footer" }, footer)));
269
276
  };
270
277
  _this.renderList = function () {
271
278
  var _a = _this.props, _b = _a.data, data = _b === void 0 ? [] : _b, textField = _a.textField, listNoDataRender = _a.listNoDataRender, itemRender = _a.itemRender, dataItemKey = _a.dataItemKey, virtual = _a.virtual;
@@ -275,8 +282,9 @@ var MultiSelectWithoutContext = /** @class */ (function (_super) {
275
282
  var focusedIndex = _this.getFocusedState().focusedIndex;
276
283
  var popupSettings = _this.base.getPopupSettings();
277
284
  var translate = "translateY(" + vs.translate + "px)";
278
- return (React.createElement(List_1.default, { id: _this.base.listBoxId, show: opened, data: data.slice(), focusedIndex: focusedIndex - skip, value: _this.value, textField: textField, valueField: dataItemKey, optionsGuid: _this.base.guid, listRef: function (list) { vs.list = _this.base.list = list; }, wrapperStyle: vs.enabled ?
279
- { float: 'left', width: '100%' } : { maxHeight: popupSettings.height }, wrapperCssClass: vs.enabled ? undefined : 'k-list-scroller', listStyle: vs.enabled ? { transform: translate } : undefined, key: "listKey", skip: skip, onClick: _this.handleItemClick, itemRender: itemRender, noDataRender: listNoDataRender, onMouseDown: preventDefault, onBlur: _this.handleBlur }));
285
+ return (React.createElement(List_1.default, { id: _this.base.listBoxId, show: opened, data: data.slice(), focusedIndex: focusedIndex - skip, value: _this.value, textField: textField, valueField: dataItemKey, optionsGuid: _this.base.guid, listRef: function (list) { 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, noDataRender: listNoDataRender, onMouseDown: preventDefault, onBlur: _this.handleBlur, onScroll: function (e) {
286
+ vs.scrollHandler(e);
287
+ }, wrapperRef: vs.scrollerRef, scroller: _this.base.renderScrollElement() }));
280
288
  };
281
289
  _this.customItemSelect = function (event) {
282
290
  var _a;
@@ -320,6 +328,7 @@ var MultiSelectWithoutContext = /** @class */ (function (_super) {
320
328
  if (_this.props.autoClose) {
321
329
  _this.base.togglePopup(state);
322
330
  }
331
+ event.stopPropagation();
323
332
  _this.applyState(state);
324
333
  };
325
334
  _this.handleBlur = function (event) {
@@ -529,9 +538,9 @@ var MultiSelectWithoutContext = /** @class */ (function (_super) {
529
538
  * @hidden
530
539
  */
531
540
  MultiSelectWithoutContext.prototype.render = function () {
532
- var _this = this;
533
- var _a = this.props, style = _a.style, className = _a.className, label = _a.label, dir = _a.dir, disabled = _a.disabled, tags = _a.tags, textField = _a.textField, dataItemKey = _a.dataItemKey, virtual = _a.virtual;
534
- var _b = this.state, focused = _b.focused, text = _b.text, focusedTag = _b.focusedTag;
541
+ var _a, _b;
542
+ var _c = this.props, style = _c.style, className = _c.className, label = _c.label, dir = _c.dir, disabled = _c.disabled, tags = _c.tags, textField = _c.textField, dataItemKey = _c.dataItemKey, virtual = _c.virtual, size = _c.size, rounded = _c.rounded, fillMode = _c.fillMode, loading = _c.loading, filter = _c.filter;
543
+ var _d = this.state, text = _d.text, focused = _d.focused, focusedTag = _d.focusedTag;
535
544
  var vs = this.base.vs;
536
545
  var id = this.props.id || this._inputId;
537
546
  vs.enabled = virtual !== undefined;
@@ -551,16 +560,27 @@ var MultiSelectWithoutContext = /** @class */ (function (_super) {
551
560
  }
552
561
  this.setItems(tagsToRender, this._tags);
553
562
  var isValid = !this.validityStyles || this.validity.valid;
554
- var component = (React.createElement("span", { ref: function (dropdown) { return _this._element = dropdown; }, className: kendo_react_common_1.classNames('k-widget k-multiselect', className, {
555
- 'k-state-focused': focused && !disabled,
556
- 'k-state-invalid': !isValid,
557
- 'k-state-disabled': disabled
558
- }), style: !label
563
+ var clearButton = Boolean(filter !== undefined ? filter : text) || this.value.length > 0;
564
+ var component = (React.createElement("div", { ref: this.componentRef, className: kendo_react_common_1.classNames('k-multiselect k-input', className, (_a = {},
565
+ _a["k-input-" + (sizeMap[size] || size)] = size,
566
+ _a["k-rounded-" + (roundedMap[rounded] || rounded)] = rounded,
567
+ _a["k-input-" + fillMode] = fillMode,
568
+ _a['k-focus'] = focused && !disabled,
569
+ _a['k-invalid'] = !isValid,
570
+ _a['k-valid'] = isValid,
571
+ _a['k-disabled'] = disabled,
572
+ _a['k-loading'] = loading,
573
+ _a['k-required'] = this.required,
574
+ _a)), style: !label
559
575
  ? style
560
- : __assign({}, style, { width: undefined }), dir: dir, onFocus: this.handleFocus, onBlur: this.handleBlur },
561
- React.createElement("div", { onClick: this.handleWrapperClick, ref: function (wrapper) { return _this.base.wrapper = wrapper; }, className: "k-multiselect-wrap k-floatwrap", onMouseDown: utils_1.preventDefaultNonInputs },
562
- tagsToRender.length > 0 && React.createElement(TagList_1.default, { tagRender: this.props.tagRender, onTagDelete: this.onTagDelete, data: tagsToRender, guid: this.base.guid, focused: focusedTag ? tagsToRender.find(function (t) { return utils_1.matchTags(t, focusedTag, dataItemKey); }) : undefined }),
576
+ : __assign({}, style, { width: undefined }), dir: dir, onFocus: this.handleFocus, onBlur: this.handleBlur, onClick: this.handleWrapperClick, onMouseDown: utils_1.preventDefaultNonInputs },
577
+ React.createElement("div", { className: kendo_react_common_1.classNames('k-input-values k-chip-list k-selection-multiple', (_b = {},
578
+ _b["k-chip-list-" + (sizeMap[size] || size)] = size,
579
+ _b)), role: "listbox", id: 'tagslist-' + this.base.guid },
580
+ tagsToRender.length > 0 && React.createElement(TagList_1.default, { tagRender: this.props.tagRender, onTagDelete: this.onTagDelete, data: tagsToRender, guid: this.base.guid, focused: focusedTag ? tagsToRender.find(function (t) { return utils_1.matchTags(t, focusedTag, dataItemKey); }) : undefined, size: size }),
563
581
  this.renderSearchbar(id)),
582
+ loading && React.createElement("span", { className: "k-icon k-i-loading" }),
583
+ clearButton && React.createElement(ClearButton_1.default, { onClick: this.clearButtonClick }),
564
584
  this.renderListContainer()));
565
585
  return label ? (React.createElement(kendo_react_labels_1.FloatingLabel, { label: label, editorId: id, editorValue: text || utils_1.getItemValue(this.value[0], textField), editorValid: isValid, editorDisabled: disabled, style: { width: style ? style.width : undefined }, children: component })) : component;
566
586
  };
@@ -570,12 +590,11 @@ var MultiSelectWithoutContext = /** @class */ (function (_super) {
570
590
  var text = (this.props.filter !== undefined ? this.props.filter : this.state.text) || '';
571
591
  var opened = this.props.opened !== undefined ? this.props.opened : this.state.opened;
572
592
  var focusedIndex = this.getFocusedState().focusedIndex;
573
- var clearButton = !!text || this.value.length > 0;
574
593
  var placeholderToShow = this.value.length === 0 && !text ? placeholder : undefined;
575
594
  var ariaActivedescendant = activedescendant === settings_1.ActiveDescendant.TagsList && focusedTag !== undefined ?
576
595
  "tag-" + this.base.guid + "-" + focusedTag.text.replace(/\s+/g, '-') :
577
596
  "option-" + this.base.guid + "-" + focusedIndex;
578
- return (React.createElement(SearchBar_1.default, { id: id, size: Math.max((placeholderToShow || '').length, text.length, 1), tabIndex: this.props.tabIndex, accessKey: this.props.accessKey, placeholder: placeholderToShow, value: text, onChange: this.onChangeHandler, onKeyDown: this.onInputKeyDown, ref: this.searchbarRef, disabled: disabled, expanded: opened, owns: this.base.listBoxId, activedescendant: ariaActivedescendant, ariaDescribedBy: "tagslist-" + this.base.guid + (ariaDescribedBy ? (' ' + ariaDescribedBy) : ''), clearButton: clearButton, clearButtonClick: this.clearButtonClick, loading: this.props.loading, ariaLabelledBy: this.props.ariaLabelledBy }));
597
+ return (React.createElement(SearchBar_1.default, { id: id, size: Math.max((placeholderToShow || '').length, text.length, 1), tabIndex: this.props.tabIndex, accessKey: this.props.accessKey, placeholder: placeholderToShow, value: text, onChange: this.onChangeHandler, onKeyDown: this.onInputKeyDown, ref: this.searchbarRef, disabled: disabled, expanded: opened, owns: this.base.listBoxId, activedescendant: ariaActivedescendant, ariaDescribedBy: "tagslist-" + this.base.guid + (ariaDescribedBy ? (' ' + ariaDescribedBy) : ''), ariaLabelledBy: this.props.ariaLabelledBy }));
579
598
  };
580
599
  MultiSelectWithoutContext.prototype.onTagsNavigate = function (event, state) {
581
600
  var keyCode = event.keyCode;
@@ -717,7 +736,7 @@ var MultiSelectWithoutContext = /** @class */ (function (_super) {
717
736
  /**
718
737
  * @hidden
719
738
  */
720
- MultiSelectWithoutContext.defaultProps = __assign({}, DropDownBase_1.default.defaultProps, { autoClose: true, required: false });
739
+ MultiSelectWithoutContext.defaultProps = __assign({}, DropDownBase_1.default.defaultProps, { autoClose: true, required: false, size: 'medium', rounded: 'medium', fillMode: 'solid' });
721
740
  return MultiSelectWithoutContext;
722
741
  }(React.Component));
723
742
  exports.MultiSelectWithoutContext = MultiSelectWithoutContext;
@@ -218,7 +218,7 @@ export interface MultiSelectProps extends FormComponentProps {
218
218
  /**
219
219
  * Fires when a tag element is about to be rendered ([see example]({% slug customrendering_multiselect %}#toc-tags)). Used to override the default appearance of the element.
220
220
  */
221
- tagRender?: (tagData: TagData, li: React.ReactElement<HTMLLIElement>) => React.ReactElement<HTMLLIElement> | null;
221
+ tagRender?: (tagData: TagData, tag: React.ReactElement) => React.ReactElement;
222
222
  /**
223
223
  * Sets the header component of the MultiSelect ([see example]({% slug customrendering_multiselect %}#toc-headers-and-footers)).
224
224
  */
@@ -227,4 +227,41 @@ export interface MultiSelectProps extends FormComponentProps {
227
227
  * Sets the footer component of the MultiSelect ([see example]({% slug customrendering_multiselect %}#toc-headers-and-footers)).
228
228
  */
229
229
  footer?: React.ReactNode;
230
+ /**
231
+ * Configures the `size` of the MultiSelect.
232
+ *
233
+ * The available options are:
234
+ * - small
235
+ * - medium
236
+ * - large
237
+ * - null&mdash;Does not set a size `className`.
238
+ *
239
+ * @default `medium`
240
+ */
241
+ size?: null | 'small' | 'medium' | 'large';
242
+ /**
243
+ * Configures the `roundness` of the MultiSelect.
244
+ *
245
+ * The available options are:
246
+ * - small
247
+ * - medium
248
+ * - large
249
+ * - full
250
+ * - null&mdash;Does not set a rounded `className`.
251
+ *
252
+ * @default `medium`
253
+ */
254
+ rounded?: null | 'small' | 'medium' | 'large' | 'full';
255
+ /**
256
+ * Configures the `fillMode` of the MultiSelect.
257
+ *
258
+ * The available options are:
259
+ * - solid
260
+ * - flat
261
+ * - outline
262
+ * - null&mdash;Does not set a fillMode `className`.
263
+ *
264
+ * @default `solid`
265
+ */
266
+ fillMode?: null | 'solid' | 'flat' | 'outline';
230
267
  }
@@ -20,13 +20,14 @@ export interface TagListProps {
20
20
  guid: string;
21
21
  focused?: TagData;
22
22
  onTagDelete: (items: Array<any>, event: React.MouseEvent<HTMLSpanElement>) => void;
23
- tagRender?: (tagData: TagData, li: React.ReactElement<HTMLLIElement>) => React.ReactElement<HTMLLIElement> | null;
23
+ tagRender?: (tagData: TagData, tag: React.ReactElement) => React.ReactElement;
24
24
  tag?: React.ComponentType<{
25
25
  tagData: TagData;
26
26
  guid: string;
27
27
  focusedTag?: TagData;
28
28
  onTagDelete: (items: Array<any>, event: React.MouseEvent<HTMLSpanElement>) => void;
29
29
  }>;
30
+ size?: null | 'small' | 'medium' | 'large';
30
31
  }
31
32
  /**
32
33
  * @hidden
@@ -14,10 +14,9 @@ var __extends = (this && this.__extends) || (function () {
14
14
  })();
15
15
  Object.defineProperty(exports, "__esModule", { value: true });
16
16
  var React = require("react");
17
- var tagClassName = 'k-button';
18
- var focusedTagClassName = tagClassName + ' k-state-focused';
19
- var preventDefault = function (event) { return event.preventDefault(); };
20
- var stopPropagation = function (event) { return event.stopPropagation(); };
17
+ var kendo_react_buttons_1 = require("@progress/kendo-react-buttons");
18
+ var preventDefault = function (event) { return event.syntheticEvent.preventDefault(); };
19
+ var stopPropagation = function (event) { return event.syntheticEvent.stopPropagation(); };
21
20
  /**
22
21
  * @hidden
23
22
  */
@@ -27,17 +26,13 @@ var TagList = /** @class */ (function (_super) {
27
26
  return _super !== null && _super.apply(this, arguments) || this;
28
27
  }
29
28
  TagList.prototype.render = function () {
30
- var _this = this;
31
- var _a = this.props, data = _a.data, guid = _a.guid;
32
- var TagComponent = this.props.tag;
33
- return (React.createElement("ul", { className: "k-reset", role: "listbox", id: 'tagslist-' + guid }, data.map(function (tagData, index) {
34
- var tag = TagComponent ? (React.createElement(TagComponent, { tagData: tagData, guid: guid, focusedTag: _this.props.focused, onTagDelete: _this.props.onTagDelete })) : (React.createElement("li", { className: tagData === _this.props.focused ? focusedTagClassName : tagClassName, key: tagData.text + index, id: "tag-" + guid + "-" + tagData.text.replace(/\s+/g, '-'), onMouseDown: preventDefault, onClick: stopPropagation, "aria-selected": true, role: "option", "aria-setsize": data.length },
35
- React.createElement("span", null, tagData.text),
36
- React.createElement("span", { "aria-label": "delete", className: "k-select", onClick: function (e) { return _this.props.onTagDelete.call(undefined, tagData.data, e); } },
37
- React.createElement("span", { className: "k-icon k-i-close" }))));
38
- return _this.props.tagRender ?
39
- _this.props.tagRender(tagData, tag) : tag;
40
- })));
29
+ var _a = this.props, data = _a.data, guid = _a.guid, focused = _a.focused, tagRender = _a.tagRender, TagComponent = _a.tag, onTagDelete = _a.onTagDelete, size = _a.size;
30
+ return (React.createElement(React.Fragment, null,
31
+ data.map(function (tagData, index) {
32
+ var tag = TagComponent ? (React.createElement(TagComponent, { tagData: tagData, guid: guid, focusedTag: focused, onTagDelete: onTagDelete })) : (React.createElement(kendo_react_buttons_1.Chip, { id: "tag-" + guid + "-" + tagData.text.replace(/\s+/g, '-'), "aria-selected": true, role: "option", "aria-setsize": data.length, key: tagData.text + index, text: tagData.text, removable: true, removeIcon: 'k-i-close', onRemove: function (e) { return onTagDelete.call(undefined, tagData.data, e.syntheticEvent); }, onMouseDown: preventDefault, onClick: stopPropagation, className: tagData === focused ? 'k-focus' : undefined, size: size }));
33
+ return tagRender ? tagRender(tagData, tag) : tag;
34
+ }),
35
+ this.props.children));
41
36
  };
42
37
  return TagList;
43
38
  }(React.Component));
@@ -25,7 +25,10 @@ var ListNoData_1 = require("./../DropDownTree/ListNoData");
25
25
  var messages_1 = require("./../messages");
26
26
  var kendo_react_labels_1 = require("@progress/kendo-react-labels");
27
27
  var TagList_1 = require("../MultiSelect/TagList");
28
+ var ClearButton_1 = require("../common/ClearButton");
29
+ var ListFilter_1 = require("../common/ListFilter");
28
30
  var VALIDATION_MESSAGE = 'Please select a value from the list!';
31
+ var sizeMap = kendo_react_common_1.kendoThemeMaps.sizeMap, roundedMap = kendo_react_common_1.kendoThemeMaps.roundedMap;
29
32
  var toLevel = function (hierarchicalIndex) {
30
33
  return hierarchicalIndex.split('_').map(function (i) { return parseInt(i, 10); });
31
34
  };
@@ -46,6 +49,9 @@ var defaultProps = {
46
49
  width: '200px',
47
50
  height: '200px'
48
51
  },
52
+ size: 'medium',
53
+ rounded: 'medium',
54
+ fillMode: 'solid',
49
55
  required: false,
50
56
  validityStyles: true
51
57
  };
@@ -63,11 +69,12 @@ exports.MultiSelectTreePropsContext = kendo_react_common_1.createPropsContext();
63
69
  * Obtaining the `ref` returns an object of type [MultiSelectTreeHandle]({% slug api_dropdowns_multiselecttreehandle %}).
64
70
  */
65
71
  exports.MultiSelectTree = React.forwardRef(function (directProps, ref) {
72
+ var _a, _b;
66
73
  var props = kendo_react_common_1.usePropsContext(exports.MultiSelectTreePropsContext, directProps);
67
74
  kendo_react_common_2.validatePackage(package_metadata_1.packageMetadata);
68
75
  var componentGuid = React.useMemo(function () { return kendo_react_common_1.guid(); }, []);
69
76
  var id = props.id || componentGuid;
70
- var _a = props.data, data = _a === void 0 ? [] : _a, dataItemKey = props.dataItemKey, _b = props.popupSettings, popupSettings = _b === void 0 ? {} : _b, _c = props.style, style = _c === void 0 ? {} : _c, opened = props.opened, disabled = props.disabled, _d = props.onOpen, onOpen = _d === void 0 ? kendo_react_common_1.noop : _d, _e = props.onClose, onClose = _e === void 0 ? kendo_react_common_1.noop : _e, placeholder = props.placeholder, label = props.label, name = props.name, _f = props.checkField, checkField = _f === void 0 ? defaultProps.checkField : _f, _g = props.checkIndeterminateField, checkIndeterminateField = _g === void 0 ? defaultProps.checkIndeterminateField : _g, _h = props.subItemsField, subItemsField = _h === void 0 ? defaultProps.subItemsField : _h, validationMessage = props.validationMessage, valid = props.valid, tags = props.tags, value = props.value, _j = props.required, required = _j === void 0 ? defaultProps.required : _j, _k = props.validityStyles, validityStyles = _k === void 0 ? defaultProps.validityStyles : _k;
77
+ var _c = props.data, data = _c === void 0 ? [] : _c, dataItemKey = props.dataItemKey, _d = props.popupSettings, popupSettings = _d === void 0 ? {} : _d, _e = props.style, style = _e === void 0 ? {} : _e, opened = props.opened, disabled = props.disabled, _f = props.onOpen, onOpen = _f === void 0 ? kendo_react_common_1.noop : _f, _g = props.onClose, onClose = _g === void 0 ? kendo_react_common_1.noop : _g, placeholder = props.placeholder, label = props.label, name = props.name, _h = props.checkField, checkField = _h === void 0 ? defaultProps.checkField : _h, _j = props.checkIndeterminateField, checkIndeterminateField = _j === void 0 ? defaultProps.checkIndeterminateField : _j, _k = props.subItemsField, subItemsField = _k === void 0 ? defaultProps.subItemsField : _k, validationMessage = props.validationMessage, valid = props.valid, tags = props.tags, value = props.value, _l = props.required, required = _l === void 0 ? defaultProps.required : _l, _m = props.validityStyles, validityStyles = _m === void 0 ? defaultProps.validityStyles : _m;
71
78
  var tabIndex = kendo_react_common_1.getTabIndex(props.tabIndex, disabled);
72
79
  var targetRef = React.useRef(null);
73
80
  var elementRef = React.useRef(null);
@@ -77,10 +84,10 @@ exports.MultiSelectTree = React.forwardRef(function (directProps, ref) {
77
84
  var skipFocusRef = React.useRef(false);
78
85
  var tagsToRenderRef = React.useRef([]);
79
86
  var popupRef = React.useRef(null);
80
- var _l = React.useState(), focusedTagState = _l[0], setFocusedTagState = _l[1];
81
- var _m = React.useState(false), openState = _m[0], setOpenState = _m[1];
82
- var _o = React.useState(false), focusedState = _o[0], setFocusedState = _o[1];
83
- var _p = React.useState(''), filterState = _p[0], setFilterState = _p[1];
87
+ var _o = React.useState(), focusedTagState = _o[0], setFocusedTagState = _o[1];
88
+ var _p = React.useState(false), openState = _p[0], setOpenState = _p[1];
89
+ var _q = React.useState(false), focusedState = _q[0], setFocusedState = _q[1];
90
+ var _r = React.useState(''), filterState = _r[0], setFilterState = _r[1];
84
91
  var isOpen = opened !== undefined ? opened : openState;
85
92
  var hasValue = Boolean(Array.isArray(value) && value.length);
86
93
  var validity = getValidity({ validationMessage: validationMessage, valid: valid, required: required }, hasValue);
@@ -285,13 +292,13 @@ exports.MultiSelectTree = React.forwardRef(function (directProps, ref) {
285
292
  if (keyCode === kendo_react_common_1.Keys.esc || (altKey && keyCode === kendo_react_common_1.Keys.up)) {
286
293
  closePopup(ev);
287
294
  }
288
- else if (treeviewElement && treeviewElement.querySelector('.k-state-focused') &&
295
+ else if (treeviewElement && treeviewElement.querySelector('.k-focus') &&
289
296
  (keyCode === kendo_react_common_1.Keys.up || keyCode === kendo_react_common_1.Keys.down ||
290
297
  keyCode === kendo_react_common_1.Keys.left || keyCode === kendo_react_common_1.Keys.right ||
291
298
  keyCode === kendo_react_common_1.Keys.home || keyCode === kendo_react_common_1.Keys.end)) {
292
299
  if (keyCode === kendo_react_common_1.Keys.up && inputRef.current) {
293
300
  var items = Array.from(treeviewElement.querySelectorAll('.k-treeview-item'));
294
- var focusedItem = items.slice().reverse().find(function (i) { return Boolean(i && i.querySelector('.k-state-focused')); });
301
+ var focusedItem = items.slice().reverse().find(function (i) { return Boolean(i && i.querySelector('.k-focus')); });
295
302
  if (focusedItem && items.indexOf(focusedItem) === 0) {
296
303
  return switchFocus(function () { focusElement(inputRef.current); });
297
304
  }
@@ -370,26 +377,31 @@ exports.MultiSelectTree = React.forwardRef(function (directProps, ref) {
370
377
  var NoData = props.listNoData || ListNoData_1.ListNoData;
371
378
  var localization = kendo_react_intl_1.useLocalization();
372
379
  var isValid = !validityStyles || validity.valid;
373
- var multiselecttree = (React.createElement("span", { className: kendo_react_common_1.classNames('k-widget k-dropdowntree', props.className, {
374
- 'k-state-focused': focusedState && !disabled,
375
- 'k-state-invalid': !isValid,
376
- 'k-state-disabled': disabled
377
- }), tabIndex: tabIndex, accessKey: props.accessKey, id: id, style: label ? __assign({}, style, { width: undefined }) : style, dir: dir, ref: elementRef, onKeyDown: disabled ? undefined : onWrapperKeyDown, onMouseDown: onWrapperMouseDown, onFocus: onFocus, onBlur: onBlur, role: "listbox", "aria-haspopup": "true", "aria-expanded": isOpen, "aria-disabled": disabled, "aria-label": label, "aria-labelledby": props.ariaLabelledBy, "aria-describedby": props.ariaDescribedBy },
378
- React.createElement("span", { className: kendo_react_common_1.classNames('k-multiselect-wrap k-floatwrap', {
379
- 'k-state-focused': focusedState,
380
- 'k-state-disabled': disabled,
381
- 'k-state-invalid': !isValid
382
- }), onClick: disabled ? undefined : onWrapperClick },
383
- tagsToRenderRef.current.length > 0 && (React.createElement(TagList_1.default, { tag: props.tag, onTagDelete: onTagDelete, data: tagsToRenderRef.current, guid: componentGuid, focused: focusedTagState ? tagsToRenderRef.current.find(function (t) { return utils_1.matchTags(t, focusedTagState, dataItemKey); }) : undefined })),
384
- props.loading && (React.createElement("span", { className: kendo_react_common_1.classNames('k-icon', { 'k-i-loading': props.loading }) })),
385
- hasValue && !disabled && (React.createElement("span", { onClick: onClear, className: "k-icon k-clear-value k-i-close", title: localization.toLanguageString(messages_1.clear, messages_1.messages[messages_1.clear]), role: "button", tabIndex: -1, onMouseDown: function (e) { return e.preventDefault(); } })),
386
- React.createElement("select", { name: name, ref: selectRef, tabIndex: -1, "aria-hidden": true, title: label, style: { opacity: 0, width: 1, border: 0, zIndex: -1, position: 'absolute', left: '50%' } },
387
- React.createElement("option", { value: props.valueMap ? props.valueMap.call(undefined, value) : value }))),
388
- React.createElement(kendo_react_popup_1.Popup, { popupClass: popupSettings.popupClass, className: kendo_react_common_1.classNames('k-list-container k-group k-reset k-popup-dropdowntree', popupSettings.className, { 'k-rtl': dir === 'rtl' }), style: popupStyles, animate: popupSettings.animate, anchor: elementRef.current, show: isOpen, onOpen: onPopupOpened, onClose: onPopupClosed, appendTo: popupSettings.appendTo, ref: popupRef },
389
- props.filterable && (React.createElement("span", { className: "k-list-filter" },
390
- React.createElement("input", { className: "k-textbox", tabIndex: tabIndex, ref: inputRef, value: props.filter === undefined ? filterState : props.filter, onChange: onFilterChange, onKeyDown: onInputKeyDown }),
391
- React.createElement("span", { className: "k-icon k-i-zoom" }))),
392
- data.length > 0 ? (React.createElement(kendo_react_treeview_1.TreeView, { ref: treeViewRef, tabIndex: tabIndex, data: data, focusIdField: dataItemKey, textField: props.textField, checkField: checkField, checkIndeterminateField: checkIndeterminateField, expandField: props.expandField, childrenField: subItemsField, expandIcons: true, onItemClick: onChange, onCheckChange: onChange, onExpandChange: onExpand, checkboxes: true, item: props.item })) : (React.createElement(NoData, null, localization.toLanguageString(messages_1.nodata, messages_1.messages[messages_1.nodata]))))));
380
+ var size = props.size, rounded = props.rounded, fillMode = props.fillMode;
381
+ var multiselecttree = (React.createElement("span", { className: kendo_react_common_1.classNames('k-multiselect k-input', props.className, (_a = {},
382
+ _a["k-input-" + (sizeMap[size] || size)] = size,
383
+ _a["k-rounded-" + (roundedMap[rounded] || rounded)] = rounded,
384
+ _a["k-input-" + fillMode] = fillMode,
385
+ _a['k-focus'] = focusedState && !disabled,
386
+ _a['k-invalid'] = !isValid,
387
+ _a['k-valid'] = isValid,
388
+ _a['k-disabled'] = disabled,
389
+ _a['k-loading'] = props.loading,
390
+ _a['k-required'] = required,
391
+ _a)), tabIndex: tabIndex, accessKey: props.accessKey, id: id, style: label ? __assign({}, style, { width: undefined }) : style, dir: dir, ref: elementRef, onKeyDown: disabled ? undefined : onWrapperKeyDown, onMouseDown: onWrapperMouseDown, onFocus: onFocus, onBlur: onBlur, role: "listbox", "aria-haspopup": "true", "aria-expanded": isOpen, "aria-disabled": disabled, "aria-label": label, "aria-labelledby": props.ariaLabelledBy, "aria-describedby": props.ariaDescribedBy, onClick: disabled ? undefined : onWrapperClick },
392
+ tagsToRenderRef.current.length > 0 && (React.createElement("div", { className: kendo_react_common_1.classNames('k-input-values k-chip-list k-selection-multiple', (_b = {},
393
+ _b["k-chip-list-" + (sizeMap[size] || size)] = size,
394
+ _b)), role: "listbox", id: 'tagslist-' + id },
395
+ React.createElement(TagList_1.default, { tag: props.tag, onTagDelete: onTagDelete, data: tagsToRenderRef.current, guid: id, focused: focusedTagState ? tagsToRenderRef.current.find(function (t) { return utils_1.matchTags(t, focusedTagState, dataItemKey); }) : undefined, size: size }))),
396
+ !hasValue && React.createElement("span", { className: "k-input-inner" },
397
+ React.createElement("span", { className: "k-input-value-text" }, "\u00A0")),
398
+ props.loading && React.createElement("span", { className: "k-icon k-i-loading" }),
399
+ hasValue && !disabled && React.createElement(ClearButton_1.default, { onClick: onClear }),
400
+ React.createElement("select", { name: name, ref: selectRef, tabIndex: -1, "aria-hidden": true, title: label, style: { opacity: 0, width: 1, border: 0, zIndex: -1, position: 'absolute', left: '50%' } },
401
+ React.createElement("option", { value: props.valueMap ? props.valueMap.call(undefined, value) : value })),
402
+ React.createElement(kendo_react_popup_1.Popup, { popupClass: popupSettings.popupClass, className: kendo_react_common_1.classNames(popupSettings.className, { 'k-rtl': dir === 'rtl' }), style: popupStyles, animate: popupSettings.animate, anchor: elementRef.current, show: isOpen, onOpen: onPopupOpened, onClose: onPopupClosed, appendTo: popupSettings.appendTo, ref: popupRef },
403
+ props.filterable && (React.createElement(ListFilter_1.default, { value: props.filter === undefined ? filterState : props.filter, inputRef: inputRef, onChange: onFilterChange, onKeyDown: onInputKeyDown, tabIndex: tabIndex, size: size, rounded: rounded, fillMode: fillMode })),
404
+ data.length > 0 ? (React.createElement(kendo_react_treeview_1.TreeView, { ref: treeViewRef, tabIndex: tabIndex, data: data, focusIdField: dataItemKey, textField: props.textField, checkField: checkField, checkIndeterminateField: checkIndeterminateField, expandField: props.expandField, childrenField: subItemsField, expandIcons: true, onItemClick: onChange, onCheckChange: onChange, onExpandChange: onExpand, checkboxes: true, size: size, item: props.item })) : (React.createElement(NoData, null, localization.toLanguageString(messages_1.nodata, messages_1.messages[messages_1.nodata]))))));
393
405
  return label ? (React.createElement(kendo_react_labels_1.FloatingLabel, { label: label, editorValue: hasValue, editorPlaceholder: placeholder, editorValid: isValid, editorDisabled: disabled, editorId: id, style: { width: style ? style.width : undefined }, children: multiselecttree, dir: dir })) : multiselecttree;
394
406
  });
395
407
  var propTypes = {
@@ -448,4 +460,5 @@ var propTypes = {
448
460
  listNoData: PropTypes.func
449
461
  };
450
462
  exports.MultiSelectTree.displayName = 'KendoReactMultiSelectTree';
463
+ exports.MultiSelectTree.defaultProps = defaultProps;
451
464
  exports.MultiSelectTree.propTypes = propTypes;
@@ -263,4 +263,41 @@ export interface MultiSelectTreeProps extends FormComponentProps {
263
263
  */
264
264
  listNoData?: React.ComponentType<MultiSelectTreeListNoDataProps>;
265
265
  tag?: React.ComponentType<MultiSelectTreeTagProps>;
266
+ /**
267
+ * Configures the `size` of the MultiSelectTree.
268
+ *
269
+ * The available options are:
270
+ * - small
271
+ * - medium
272
+ * - large
273
+ * - null&mdash;Does not set a size `className`.
274
+ *
275
+ * @default `medium`
276
+ */
277
+ size?: null | 'small' | 'medium' | 'large';
278
+ /**
279
+ * Configures the `roundness` of the MultiSelectTree.
280
+ *
281
+ * The available options are:
282
+ * - small
283
+ * - medium
284
+ * - large
285
+ * - full
286
+ * - null&mdash;Does not set a rounded `className`.
287
+ *
288
+ * @default `medium`
289
+ */
290
+ rounded?: null | 'small' | 'medium' | 'large' | 'full';
291
+ /**
292
+ * Configures the `fillMode` of the MultiSelectTree.
293
+ *
294
+ * The available options are:
295
+ * - solid
296
+ * - flat
297
+ * - outline
298
+ * - null&mdash;Does not set a fillMode `className`.
299
+ *
300
+ * @default `solid`
301
+ */
302
+ fillMode?: null | 'solid' | 'flat' | 'outline';
266
303
  }
@@ -28,7 +28,8 @@ var ClearButton = /** @class */ (function (_super) {
28
28
  }
29
29
  ClearButton.prototype.render = function () {
30
30
  var title = kendo_react_intl_1.provideLocalizationService(this).toLanguageString(messages_1.clear, messages_1.messages[messages_1.clear]);
31
- return (React.createElement("span", { className: "k-icon k-clear-value k-i-close", role: "button", onClick: this.props.onClick, onMouseDown: this.onMouseDown, tabIndex: -1, title: title, key: "clearbutton" }));
31
+ return (React.createElement("span", { className: "k-clear-value", role: "button", onClick: this.props.onClick, onMouseDown: this.onMouseDown, tabIndex: -1, title: title, key: "clearbutton" },
32
+ React.createElement("span", { className: "k-icon k-i-x" })));
32
33
  };
33
34
  return ClearButton;
34
35
  }(React.Component));
@@ -68,7 +68,7 @@ export default class DropDownBase {
68
68
  }>>;
69
69
  popupClass: PropTypes.Requireable<string>;
70
70
  className: PropTypes.Requireable<string>;
71
- appendTo: PropTypes.Requireable<any>;
71
+ appendTo: PropTypes.Requireable<PropTypes.ReactElementLike>;
72
72
  width: PropTypes.Requireable<string | number>;
73
73
  height: PropTypes.Requireable<string | number>;
74
74
  }>>;
@@ -112,7 +112,7 @@ export default class DropDownBase {
112
112
  }>>;
113
113
  popupClass: PropTypes.Requireable<string>;
114
114
  className: PropTypes.Requireable<string>;
115
- appendTo: PropTypes.Requireable<any>;
115
+ appendTo: PropTypes.Requireable<PropTypes.ReactElementLike>;
116
116
  width: PropTypes.Requireable<string | number>;
117
117
  height: PropTypes.Requireable<string | number>;
118
118
  }>>;
@@ -158,7 +158,6 @@ export default class DropDownBase {
158
158
  triggerOnPageChange(state: InternalState, skip: number, take: number): void;
159
159
  triggerPageChangeCornerItems(item: any, state: InternalState): void;
160
160
  scrollToVirtualItem: (virtual: VirtualizationSettings, selectedItemIndex: number) => void;
161
- renderScrollWrapper: (children: React.ReactNode, onScroll?: (event: React.UIEvent<HTMLDivElement>) => void) => {};
162
161
  renderScrollElement: () => JSX.Element;
163
162
  getPopupSettings(): DropDownsPopupSettings;
164
163
  }
@@ -28,6 +28,7 @@ var DropDownBase = /** @class */ (function () {
28
28
  this.handleItemClick = function (index, event) {
29
29
  var state = _this.initState();
30
30
  state.syntheticEvent = event;
31
+ event.stopPropagation();
31
32
  _this.component.handleItemSelect(index, state);
32
33
  _this.togglePopup(state);
33
34
  _this.applyState(state);
@@ -98,21 +99,6 @@ var DropDownBase = /** @class */ (function () {
98
99
  }
99
100
  window.setTimeout(function () { return vs.enabled = true; }, 10);
100
101
  };
101
- // Common rendering
102
- this.renderScrollWrapper = function (children, onScroll) {
103
- var popupSettings = _this.getPopupSettings();
104
- var vs = _this.vs;
105
- return vs.enabled ? (React.createElement("div", { onScroll: function (e) {
106
- vs.scrollHandler(e);
107
- if (onScroll) {
108
- onScroll.call(undefined, e);
109
- }
110
- }, ref: vs.scrollerRef, style: {
111
- height: popupSettings.height,
112
- overflowY: 'scroll'
113
- } }, children)) :
114
- (children);
115
- };
116
102
  this.renderScrollElement = function () {
117
103
  var vs = _this.vs;
118
104
  return vs.enabled && (React.createElement("div", { ref: function (element) { return vs.scrollElement = element; }, key: 'scrollElementKey' }));
@@ -235,7 +221,7 @@ var DropDownBase = /** @class */ (function () {
235
221
  })]),
236
222
  popupClass: PropTypes.string,
237
223
  className: PropTypes.string,
238
- appendTo: PropTypes.any,
224
+ appendTo: PropTypes.element,
239
225
  width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
240
226
  height: PropTypes.oneOfType([PropTypes.string, PropTypes.number])
241
227
  }),
@@ -28,6 +28,7 @@ export interface ListProps {
28
28
  onMouseDown?: (event: React.MouseEvent<HTMLDivElement>) => void;
29
29
  onBlur?: (event: React.FocusEvent<HTMLDivElement>) => void;
30
30
  onScroll?: (event: React.UIEvent<HTMLDivElement>) => void;
31
+ scroller?: any;
31
32
  }
32
33
  /**
33
34
  * @hidden
@@ -56,10 +56,11 @@ var List = /** @class */ (function (_super) {
56
56
  };
57
57
  List.prototype.render = function () {
58
58
  var localizationService = kendo_react_intl_1.provideLocalizationService(this);
59
- var _a = this.props, id = _a.id, show = _a.show, wrapperCssClass = _a.wrapperCssClass, wrapperStyle = _a.wrapperStyle, listStyle = _a.listStyle, listRef = _a.listRef, wrapperRef = _a.wrapperRef, _b = _a.listClassName, listClassName = _b === void 0 ? 'k-list' : _b;
59
+ var _a = this.props, id = _a.id, show = _a.show, wrapperCssClass = _a.wrapperCssClass, wrapperStyle = _a.wrapperStyle, listStyle = _a.listStyle, listRef = _a.listRef, wrapperRef = _a.wrapperRef, _b = _a.listClassName, listClassName = _b === void 0 ? 'k-list-ul' : _b;
60
60
  var items = this.renderItems();
61
61
  return (items.length ? (React.createElement("div", { className: wrapperCssClass, style: wrapperStyle, ref: wrapperRef, onMouseDown: this.props.onMouseDown, onBlur: this.props.onBlur, onScroll: this.props.onScroll, unselectable: "on" },
62
- React.createElement("ul", { id: id, role: "listbox", "aria-hidden": !show ? true : undefined, className: listClassName + ' k-reset', ref: listRef, style: listStyle }, items))) : this.renderNoValueElement(localizationService));
62
+ React.createElement("ul", { id: id, role: "listbox", "aria-hidden": !show ? true : undefined, className: listClassName, ref: listRef, style: listStyle }, items),
63
+ this.props.scroller)) : this.renderNoValueElement(localizationService));
63
64
  };
64
65
  return List;
65
66
  }(React.Component));
@@ -27,8 +27,8 @@ var ListDefaultItem = /** @class */ (function (_super) {
27
27
  }
28
28
  ListDefaultItem.prototype.render = function () {
29
29
  var _a = this.props, selected = _a.selected, defaultItem = _a.defaultItem, textField = _a.textField;
30
- return (React.createElement("div", { onClick: this.props.onClick, onMouseDown: preventDefault, className: kendo_react_common_1.classNames('k-list-optionlabel', {
31
- 'k-state-selected': selected
30
+ return (React.createElement("div", { onClick: this.props.onClick, onMouseDown: preventDefault, style: { position: 'unset' }, className: kendo_react_common_1.classNames('k-list-optionlabel', {
31
+ 'k-selected': selected
32
32
  }) }, utils_1.getItemValue(defaultItem, textField) || ''));
33
33
  };
34
34
  return ListDefaultItem;
@@ -4,8 +4,13 @@ import * as React from 'react';
4
4
  */
5
5
  export interface ListFilterProps {
6
6
  value?: string;
7
+ inputRef?: any;
8
+ tabIndex?: number;
7
9
  onChange?: React.ChangeEventHandler<HTMLInputElement>;
8
10
  onKeyDown?: React.KeyboardEventHandler<HTMLInputElement>;
11
+ size?: null | 'small' | 'medium' | 'large';
12
+ rounded?: null | 'small' | 'medium' | 'large' | 'full';
13
+ fillMode?: null | 'solid' | 'flat' | 'outline';
9
14
  }
10
15
  /**
11
16
  * @hidden