@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.
- package/dist/cdn/js/kendo-react-dropdowns.js +1 -1
- package/dist/es/AutoComplete/AutoComplete.d.ts +7 -4
- package/dist/es/AutoComplete/AutoComplete.js +30 -19
- package/dist/es/AutoComplete/AutoCompleteProps.d.ts +37 -0
- package/dist/es/ComboBox/ComboBox.d.ts +8 -1
- package/dist/es/ComboBox/ComboBox.js +46 -33
- package/dist/es/ComboBox/ComboBoxProps.d.ts +37 -0
- package/dist/es/DropDownList/DropDownList.d.ts +6 -8
- package/dist/es/DropDownList/DropDownList.js +56 -48
- package/dist/es/DropDownList/DropDownListProps.d.ts +37 -0
- package/dist/es/DropDownTree/DropDownTree.js +44 -24
- package/dist/es/DropDownTree/DropDownTreeProps.d.ts +37 -0
- package/dist/es/MultiColumnComboBox/MultiColumnComboBox.d.ts +37 -0
- package/dist/es/MultiColumnComboBox/MultiColumnComboBox.js +23 -12
- package/dist/es/MultiSelect/MultiSelect.d.ts +8 -5
- package/dist/es/MultiSelect/MultiSelect.js +51 -32
- package/dist/es/MultiSelect/MultiSelectProps.d.ts +38 -1
- package/dist/es/MultiSelect/TagList.d.ts +2 -1
- package/dist/es/MultiSelect/TagList.js +10 -15
- package/dist/es/MultiSelectTree/MultiSelectTree.js +42 -29
- package/dist/es/MultiSelectTree/MultiSelectTreeProps.d.ts +37 -0
- package/dist/es/common/ClearButton.js +2 -1
- package/dist/es/common/DropDownBase.d.ts +2 -3
- package/dist/es/common/DropDownBase.js +2 -16
- package/dist/es/common/List.d.ts +1 -0
- package/dist/es/common/List.js +3 -2
- package/dist/es/common/ListDefaultItem.js +2 -2
- package/dist/es/common/ListFilter.d.ts +5 -0
- package/dist/es/common/ListFilter.js +12 -3
- package/dist/es/common/ListItem.js +5 -5
- package/dist/es/common/MultiColumnList.js +1 -1
- package/dist/es/common/SearchBar.d.ts +1 -4
- package/dist/es/common/SearchBar.js +2 -8
- package/dist/es/common/VirtualScroll.js +3 -2
- package/dist/es/package-metadata.js +1 -1
- package/dist/npm/AutoComplete/AutoComplete.d.ts +7 -4
- package/dist/npm/AutoComplete/AutoComplete.js +29 -18
- package/dist/npm/AutoComplete/AutoCompleteProps.d.ts +37 -0
- package/dist/npm/ComboBox/ComboBox.d.ts +8 -1
- package/dist/npm/ComboBox/ComboBox.js +45 -32
- package/dist/npm/ComboBox/ComboBoxProps.d.ts +37 -0
- package/dist/npm/DropDownList/DropDownList.d.ts +6 -8
- package/dist/npm/DropDownList/DropDownList.js +55 -47
- package/dist/npm/DropDownList/DropDownListProps.d.ts +37 -0
- package/dist/npm/DropDownTree/DropDownTree.js +43 -23
- package/dist/npm/DropDownTree/DropDownTreeProps.d.ts +37 -0
- package/dist/npm/MultiColumnComboBox/MultiColumnComboBox.d.ts +37 -0
- package/dist/npm/MultiColumnComboBox/MultiColumnComboBox.js +22 -11
- package/dist/npm/MultiSelect/MultiSelect.d.ts +8 -5
- package/dist/npm/MultiSelect/MultiSelect.js +50 -31
- package/dist/npm/MultiSelect/MultiSelectProps.d.ts +38 -1
- package/dist/npm/MultiSelect/TagList.d.ts +2 -1
- package/dist/npm/MultiSelect/TagList.js +10 -15
- package/dist/npm/MultiSelectTree/MultiSelectTree.js +40 -27
- package/dist/npm/MultiSelectTree/MultiSelectTreeProps.d.ts +37 -0
- package/dist/npm/common/ClearButton.js +2 -1
- package/dist/npm/common/DropDownBase.d.ts +2 -3
- package/dist/npm/common/DropDownBase.js +2 -16
- package/dist/npm/common/List.d.ts +1 -0
- package/dist/npm/common/List.js +3 -2
- package/dist/npm/common/ListDefaultItem.js +2 -2
- package/dist/npm/common/ListFilter.d.ts +5 -0
- package/dist/npm/common/ListFilter.js +12 -3
- package/dist/npm/common/ListItem.js +5 -5
- package/dist/npm/common/MultiColumnList.js +1 -1
- package/dist/npm/common/SearchBar.d.ts +1 -4
- package/dist/npm/common/SearchBar.js +2 -8
- package/dist/npm/common/VirtualScroll.js +3 -2
- package/dist/npm/package-metadata.js +1 -1
- package/dist/systemjs/kendo-react-dropdowns.js +1 -1
- package/package.json +19 -13
|
@@ -24,7 +24,7 @@ var __assign = (this && this.__assign) || function () {
|
|
|
24
24
|
};
|
|
25
25
|
import * as React from 'react';
|
|
26
26
|
import * as PropTypes from 'prop-types';
|
|
27
|
-
import { classNames, Keys, guid, createPropsContext, withPropsContext } from '@progress/kendo-react-common';
|
|
27
|
+
import { classNames, Keys, guid, createPropsContext, kendoThemeMaps, withPropsContext } from '@progress/kendo-react-common';
|
|
28
28
|
import { FloatingLabel } from '@progress/kendo-react-labels';
|
|
29
29
|
import ListContainer from '../common/ListContainer';
|
|
30
30
|
import List from '../common/List';
|
|
@@ -35,6 +35,8 @@ import { ActiveDescendant } from './../common/settings';
|
|
|
35
35
|
import { itemIndexStartsWith, getItemValue, areSame, removeDataItems, isPresent, preventDefaultNonInputs, matchTags } from '../common/utils';
|
|
36
36
|
import { validatePackage } from '@progress/kendo-react-common';
|
|
37
37
|
import { packageMetadata } from '../package-metadata';
|
|
38
|
+
import ClearButton from '../common/ClearButton';
|
|
39
|
+
var sizeMap = kendoThemeMaps.sizeMap, roundedMap = kendoThemeMaps.roundedMap;
|
|
38
40
|
var VALIDATION_MESSAGE = 'Please enter a valid value!';
|
|
39
41
|
var preventDefault = function (event) { return event.preventDefault(); };
|
|
40
42
|
var isCustom = function (type) { return type === FocusedItemType.CustomItem; };
|
|
@@ -140,6 +142,10 @@ var MultiSelectWithoutContext = /** @class */ (function (_super) {
|
|
|
140
142
|
}
|
|
141
143
|
_this.base.triggerPageChangeCornerItems(nextFocusedItem, state);
|
|
142
144
|
};
|
|
145
|
+
_this.componentRef = function (element) {
|
|
146
|
+
_this._element = element;
|
|
147
|
+
_this.base.wrapper = element;
|
|
148
|
+
};
|
|
143
149
|
_this.searchbarRef = function (searchbar) {
|
|
144
150
|
var input = _this._input = searchbar && searchbar.input;
|
|
145
151
|
if (input && _this.state.focused) {
|
|
@@ -228,19 +234,22 @@ var MultiSelectWithoutContext = /** @class */ (function (_super) {
|
|
|
228
234
|
}
|
|
229
235
|
};
|
|
230
236
|
_this.renderListContainer = function () {
|
|
237
|
+
var _a, _b;
|
|
231
238
|
var base = _this.base;
|
|
232
|
-
var
|
|
239
|
+
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;
|
|
233
240
|
var popupSettings = _this.base.getPopupSettings();
|
|
234
241
|
var opened = _this.props.opened !== undefined ? _this.props.opened : _this.state.opened;
|
|
235
242
|
var text = _this.props.filter !== undefined ? _this.props.filter : _this.state.text;
|
|
236
|
-
var virtual = _this.props.virtual !== undefined;
|
|
237
243
|
var popupWidth = popupSettings.width !== undefined ? popupSettings.width : base.popupWidth;
|
|
238
244
|
var listContainerProps = {
|
|
239
245
|
dir: dir !== undefined ? dir : base.dirCalculated,
|
|
240
246
|
width: popupWidth,
|
|
241
247
|
popupSettings: {
|
|
242
|
-
popupClass: popupSettings.popupClass,
|
|
243
|
-
|
|
248
|
+
popupClass: classNames(popupSettings.popupClass, 'k-list', (_a = {},
|
|
249
|
+
_a["k-list-" + (sizeMap[size] || size)] = size,
|
|
250
|
+
_a['k-virtual-list'] = _this.base.vs.enabled,
|
|
251
|
+
_a)),
|
|
252
|
+
className: popupSettings.className,
|
|
244
253
|
animate: popupSettings.animate,
|
|
245
254
|
anchor: _this.element,
|
|
246
255
|
show: opened,
|
|
@@ -251,19 +260,17 @@ var MultiSelectWithoutContext = /** @class */ (function (_super) {
|
|
|
251
260
|
itemsCount: [data.length, _this.value.length]
|
|
252
261
|
};
|
|
253
262
|
var focusedType = _this.getFocusedState().focusedType;
|
|
254
|
-
var customItem = allowCustom && text && (React.createElement("div", { className:
|
|
255
|
-
|
|
263
|
+
var customItem = allowCustom && text && (React.createElement("div", { className: classNames('k-list', (_b = {},
|
|
264
|
+
_b["k-list-" + (sizeMap[size] || size)] = size,
|
|
265
|
+
_b)), key: "customitem", onClick: _this.customItemSelect, onMouseDown: preventDefault },
|
|
266
|
+
React.createElement("div", { className: classNames('k-list-item k-custom-item', { 'k-focus': isCustom(focusedType) }), style: { fontStyle: 'italic' } },
|
|
256
267
|
text,
|
|
257
|
-
React.createElement("span", { className: "k-icon k-i-plus", style: {
|
|
268
|
+
React.createElement("span", { className: "k-icon k-i-plus", style: { position: 'absolute', right: '0.5em' } }))));
|
|
258
269
|
return (React.createElement(ListContainer, __assign({}, listContainerProps),
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
_this.renderList(),
|
|
264
|
-
!virtual && footer,
|
|
265
|
-
_this.base.renderScrollElement())),
|
|
266
|
-
virtual && footer));
|
|
270
|
+
header && React.createElement("div", { className: "k-list-header" }, header),
|
|
271
|
+
customItem,
|
|
272
|
+
_this.renderList(),
|
|
273
|
+
footer && React.createElement("div", { className: "k-list-footer" }, footer)));
|
|
267
274
|
};
|
|
268
275
|
_this.renderList = function () {
|
|
269
276
|
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;
|
|
@@ -273,8 +280,9 @@ var MultiSelectWithoutContext = /** @class */ (function (_super) {
|
|
|
273
280
|
var focusedIndex = _this.getFocusedState().focusedIndex;
|
|
274
281
|
var popupSettings = _this.base.getPopupSettings();
|
|
275
282
|
var translate = "translateY(" + vs.translate + "px)";
|
|
276
|
-
return (React.createElement(List, { 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 ?
|
|
277
|
-
|
|
283
|
+
return (React.createElement(List, { 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) {
|
|
284
|
+
vs.scrollHandler(e);
|
|
285
|
+
}, wrapperRef: vs.scrollerRef, scroller: _this.base.renderScrollElement() }));
|
|
278
286
|
};
|
|
279
287
|
_this.customItemSelect = function (event) {
|
|
280
288
|
var _a;
|
|
@@ -318,6 +326,7 @@ var MultiSelectWithoutContext = /** @class */ (function (_super) {
|
|
|
318
326
|
if (_this.props.autoClose) {
|
|
319
327
|
_this.base.togglePopup(state);
|
|
320
328
|
}
|
|
329
|
+
event.stopPropagation();
|
|
321
330
|
_this.applyState(state);
|
|
322
331
|
};
|
|
323
332
|
_this.handleBlur = function (event) {
|
|
@@ -527,9 +536,9 @@ var MultiSelectWithoutContext = /** @class */ (function (_super) {
|
|
|
527
536
|
* @hidden
|
|
528
537
|
*/
|
|
529
538
|
MultiSelectWithoutContext.prototype.render = function () {
|
|
530
|
-
var
|
|
531
|
-
var
|
|
532
|
-
var
|
|
539
|
+
var _a, _b;
|
|
540
|
+
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;
|
|
541
|
+
var _d = this.state, text = _d.text, focused = _d.focused, focusedTag = _d.focusedTag;
|
|
533
542
|
var vs = this.base.vs;
|
|
534
543
|
var id = this.props.id || this._inputId;
|
|
535
544
|
vs.enabled = virtual !== undefined;
|
|
@@ -549,16 +558,27 @@ var MultiSelectWithoutContext = /** @class */ (function (_super) {
|
|
|
549
558
|
}
|
|
550
559
|
this.setItems(tagsToRender, this._tags);
|
|
551
560
|
var isValid = !this.validityStyles || this.validity.valid;
|
|
552
|
-
var
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
561
|
+
var clearButton = Boolean(filter !== undefined ? filter : text) || this.value.length > 0;
|
|
562
|
+
var component = (React.createElement("div", { ref: this.componentRef, className: classNames('k-multiselect k-input', className, (_a = {},
|
|
563
|
+
_a["k-input-" + (sizeMap[size] || size)] = size,
|
|
564
|
+
_a["k-rounded-" + (roundedMap[rounded] || rounded)] = rounded,
|
|
565
|
+
_a["k-input-" + fillMode] = fillMode,
|
|
566
|
+
_a['k-focus'] = focused && !disabled,
|
|
567
|
+
_a['k-invalid'] = !isValid,
|
|
568
|
+
_a['k-valid'] = isValid,
|
|
569
|
+
_a['k-disabled'] = disabled,
|
|
570
|
+
_a['k-loading'] = loading,
|
|
571
|
+
_a['k-required'] = this.required,
|
|
572
|
+
_a)), style: !label
|
|
557
573
|
? style
|
|
558
|
-
: __assign({}, style, { width: undefined }), dir: dir, onFocus: this.handleFocus, onBlur: this.handleBlur },
|
|
559
|
-
React.createElement("div", {
|
|
560
|
-
|
|
574
|
+
: __assign({}, style, { width: undefined }), dir: dir, onFocus: this.handleFocus, onBlur: this.handleBlur, onClick: this.handleWrapperClick, onMouseDown: preventDefaultNonInputs },
|
|
575
|
+
React.createElement("div", { className: classNames('k-input-values k-chip-list k-selection-multiple', (_b = {},
|
|
576
|
+
_b["k-chip-list-" + (sizeMap[size] || size)] = size,
|
|
577
|
+
_b)), role: "listbox", id: 'tagslist-' + this.base.guid },
|
|
578
|
+
tagsToRender.length > 0 && React.createElement(TagList, { tagRender: this.props.tagRender, onTagDelete: this.onTagDelete, data: tagsToRender, guid: this.base.guid, focused: focusedTag ? tagsToRender.find(function (t) { return matchTags(t, focusedTag, dataItemKey); }) : undefined, size: size }),
|
|
561
579
|
this.renderSearchbar(id)),
|
|
580
|
+
loading && React.createElement("span", { className: "k-icon k-i-loading" }),
|
|
581
|
+
clearButton && React.createElement(ClearButton, { onClick: this.clearButtonClick }),
|
|
562
582
|
this.renderListContainer()));
|
|
563
583
|
return label ? (React.createElement(FloatingLabel, { label: label, editorId: id, editorValue: text || getItemValue(this.value[0], textField), editorValid: isValid, editorDisabled: disabled, style: { width: style ? style.width : undefined }, children: component })) : component;
|
|
564
584
|
};
|
|
@@ -568,12 +588,11 @@ var MultiSelectWithoutContext = /** @class */ (function (_super) {
|
|
|
568
588
|
var text = (this.props.filter !== undefined ? this.props.filter : this.state.text) || '';
|
|
569
589
|
var opened = this.props.opened !== undefined ? this.props.opened : this.state.opened;
|
|
570
590
|
var focusedIndex = this.getFocusedState().focusedIndex;
|
|
571
|
-
var clearButton = !!text || this.value.length > 0;
|
|
572
591
|
var placeholderToShow = this.value.length === 0 && !text ? placeholder : undefined;
|
|
573
592
|
var ariaActivedescendant = activedescendant === ActiveDescendant.TagsList && focusedTag !== undefined ?
|
|
574
593
|
"tag-" + this.base.guid + "-" + focusedTag.text.replace(/\s+/g, '-') :
|
|
575
594
|
"option-" + this.base.guid + "-" + focusedIndex;
|
|
576
|
-
return (React.createElement(SearchBar, { 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) : ''),
|
|
595
|
+
return (React.createElement(SearchBar, { 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 }));
|
|
577
596
|
};
|
|
578
597
|
MultiSelectWithoutContext.prototype.onTagsNavigate = function (event, state) {
|
|
579
598
|
var keyCode = event.keyCode;
|
|
@@ -715,7 +734,7 @@ var MultiSelectWithoutContext = /** @class */ (function (_super) {
|
|
|
715
734
|
/**
|
|
716
735
|
* @hidden
|
|
717
736
|
*/
|
|
718
|
-
MultiSelectWithoutContext.defaultProps = __assign({}, DropDownBase.defaultProps, { autoClose: true, required: false });
|
|
737
|
+
MultiSelectWithoutContext.defaultProps = __assign({}, DropDownBase.defaultProps, { autoClose: true, required: false, size: 'medium', rounded: 'medium', fillMode: 'solid' });
|
|
719
738
|
return MultiSelectWithoutContext;
|
|
720
739
|
}(React.Component));
|
|
721
740
|
export { 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,
|
|
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—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—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—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,
|
|
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
|
|
@@ -12,10 +12,9 @@ var __extends = (this && this.__extends) || (function () {
|
|
|
12
12
|
};
|
|
13
13
|
})();
|
|
14
14
|
import * as React from 'react';
|
|
15
|
-
|
|
16
|
-
var
|
|
17
|
-
var
|
|
18
|
-
var stopPropagation = function (event) { return event.stopPropagation(); };
|
|
15
|
+
import { Chip } from '@progress/kendo-react-buttons';
|
|
16
|
+
var preventDefault = function (event) { return event.syntheticEvent.preventDefault(); };
|
|
17
|
+
var stopPropagation = function (event) { return event.syntheticEvent.stopPropagation(); };
|
|
19
18
|
/**
|
|
20
19
|
* @hidden
|
|
21
20
|
*/
|
|
@@ -25,17 +24,13 @@ var TagList = /** @class */ (function (_super) {
|
|
|
25
24
|
return _super !== null && _super.apply(this, arguments) || this;
|
|
26
25
|
}
|
|
27
26
|
TagList.prototype.render = function () {
|
|
28
|
-
var
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
React.createElement("span", { className: "k-icon k-i-close" }))));
|
|
36
|
-
return _this.props.tagRender ?
|
|
37
|
-
_this.props.tagRender(tagData, tag) : tag;
|
|
38
|
-
})));
|
|
27
|
+
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;
|
|
28
|
+
return (React.createElement(React.Fragment, null,
|
|
29
|
+
data.map(function (tagData, index) {
|
|
30
|
+
var tag = TagComponent ? (React.createElement(TagComponent, { tagData: tagData, guid: guid, focusedTag: focused, onTagDelete: onTagDelete })) : (React.createElement(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 }));
|
|
31
|
+
return tagRender ? tagRender(tagData, tag) : tag;
|
|
32
|
+
}),
|
|
33
|
+
this.props.children));
|
|
39
34
|
};
|
|
40
35
|
return TagList;
|
|
41
36
|
}(React.Component));
|
|
@@ -11,7 +11,7 @@ var __assign = (this && this.__assign) || function () {
|
|
|
11
11
|
};
|
|
12
12
|
import * as React from 'react';
|
|
13
13
|
import * as PropTypes from 'prop-types';
|
|
14
|
-
import { classNames, noop, useRtl, getTabIndex, Keys, guid, createPropsContext, usePropsContext } from '@progress/kendo-react-common';
|
|
14
|
+
import { classNames, noop, useRtl, getTabIndex, Keys, guid, kendoThemeMaps, createPropsContext, usePropsContext } from '@progress/kendo-react-common';
|
|
15
15
|
import { Popup } from '@progress/kendo-react-popup';
|
|
16
16
|
import { useLocalization } from '@progress/kendo-react-intl';
|
|
17
17
|
import { TreeView } from '@progress/kendo-react-treeview';
|
|
@@ -20,10 +20,13 @@ import { packageMetadata } from './../package-metadata';
|
|
|
20
20
|
import { getItemValue, areSame, matchTags } from '../common/utils';
|
|
21
21
|
import { useDropdownWidth } from './../DropDownTree/useDropdownWidth';
|
|
22
22
|
import { ListNoData } from './../DropDownTree/ListNoData';
|
|
23
|
-
import { messages,
|
|
23
|
+
import { messages, nodata } from './../messages';
|
|
24
24
|
import { FloatingLabel } from '@progress/kendo-react-labels';
|
|
25
25
|
import TagList from '../MultiSelect/TagList';
|
|
26
|
+
import ClearButton from '../common/ClearButton';
|
|
27
|
+
import ListFilter from '../common/ListFilter';
|
|
26
28
|
var VALIDATION_MESSAGE = 'Please select a value from the list!';
|
|
29
|
+
var sizeMap = kendoThemeMaps.sizeMap, roundedMap = kendoThemeMaps.roundedMap;
|
|
27
30
|
var toLevel = function (hierarchicalIndex) {
|
|
28
31
|
return hierarchicalIndex.split('_').map(function (i) { return parseInt(i, 10); });
|
|
29
32
|
};
|
|
@@ -44,6 +47,9 @@ var defaultProps = {
|
|
|
44
47
|
width: '200px',
|
|
45
48
|
height: '200px'
|
|
46
49
|
},
|
|
50
|
+
size: 'medium',
|
|
51
|
+
rounded: 'medium',
|
|
52
|
+
fillMode: 'solid',
|
|
47
53
|
required: false,
|
|
48
54
|
validityStyles: true
|
|
49
55
|
};
|
|
@@ -61,11 +67,12 @@ export var MultiSelectTreePropsContext = createPropsContext();
|
|
|
61
67
|
* Obtaining the `ref` returns an object of type [MultiSelectTreeHandle]({% slug api_dropdowns_multiselecttreehandle %}).
|
|
62
68
|
*/
|
|
63
69
|
export var MultiSelectTree = React.forwardRef(function (directProps, ref) {
|
|
70
|
+
var _a, _b;
|
|
64
71
|
var props = usePropsContext(MultiSelectTreePropsContext, directProps);
|
|
65
72
|
validatePackage(packageMetadata);
|
|
66
73
|
var componentGuid = React.useMemo(function () { return guid(); }, []);
|
|
67
74
|
var id = props.id || componentGuid;
|
|
68
|
-
var
|
|
75
|
+
var _c = props.data, data = _c === void 0 ? [] : _c, dataItemKey = props.dataItemKey, _d = props.popupSettings, popupSettings = _d === void 0 ? {} : _d, _e = props.style, style = _e === void 0 ? {} : _e, opened = props.opened, disabled = props.disabled, _f = props.onOpen, onOpen = _f === void 0 ? noop : _f, _g = props.onClose, onClose = _g === void 0 ? noop : _g, placeholder = props.placeholder, label = props.label, name = props.name, _h = props.checkField, checkField = _h === void 0 ? defaultProps.checkField : _h, _j = props.checkIndeterminateField, checkIndeterminateField = _j === void 0 ? defaultProps.checkIndeterminateField : _j, _k = props.subItemsField, subItemsField = _k === void 0 ? defaultProps.subItemsField : _k, validationMessage = props.validationMessage, valid = props.valid, tags = props.tags, value = props.value, _l = props.required, required = _l === void 0 ? defaultProps.required : _l, _m = props.validityStyles, validityStyles = _m === void 0 ? defaultProps.validityStyles : _m;
|
|
69
76
|
var tabIndex = getTabIndex(props.tabIndex, disabled);
|
|
70
77
|
var targetRef = React.useRef(null);
|
|
71
78
|
var elementRef = React.useRef(null);
|
|
@@ -75,10 +82,10 @@ export var MultiSelectTree = React.forwardRef(function (directProps, ref) {
|
|
|
75
82
|
var skipFocusRef = React.useRef(false);
|
|
76
83
|
var tagsToRenderRef = React.useRef([]);
|
|
77
84
|
var popupRef = React.useRef(null);
|
|
78
|
-
var
|
|
79
|
-
var
|
|
80
|
-
var
|
|
81
|
-
var
|
|
85
|
+
var _o = React.useState(), focusedTagState = _o[0], setFocusedTagState = _o[1];
|
|
86
|
+
var _p = React.useState(false), openState = _p[0], setOpenState = _p[1];
|
|
87
|
+
var _q = React.useState(false), focusedState = _q[0], setFocusedState = _q[1];
|
|
88
|
+
var _r = React.useState(''), filterState = _r[0], setFilterState = _r[1];
|
|
82
89
|
var isOpen = opened !== undefined ? opened : openState;
|
|
83
90
|
var hasValue = Boolean(Array.isArray(value) && value.length);
|
|
84
91
|
var validity = getValidity({ validationMessage: validationMessage, valid: valid, required: required }, hasValue);
|
|
@@ -283,13 +290,13 @@ export var MultiSelectTree = React.forwardRef(function (directProps, ref) {
|
|
|
283
290
|
if (keyCode === Keys.esc || (altKey && keyCode === Keys.up)) {
|
|
284
291
|
closePopup(ev);
|
|
285
292
|
}
|
|
286
|
-
else if (treeviewElement && treeviewElement.querySelector('.k-
|
|
293
|
+
else if (treeviewElement && treeviewElement.querySelector('.k-focus') &&
|
|
287
294
|
(keyCode === Keys.up || keyCode === Keys.down ||
|
|
288
295
|
keyCode === Keys.left || keyCode === Keys.right ||
|
|
289
296
|
keyCode === Keys.home || keyCode === Keys.end)) {
|
|
290
297
|
if (keyCode === Keys.up && inputRef.current) {
|
|
291
298
|
var items = Array.from(treeviewElement.querySelectorAll('.k-treeview-item'));
|
|
292
|
-
var focusedItem = items.slice().reverse().find(function (i) { return Boolean(i && i.querySelector('.k-
|
|
299
|
+
var focusedItem = items.slice().reverse().find(function (i) { return Boolean(i && i.querySelector('.k-focus')); });
|
|
293
300
|
if (focusedItem && items.indexOf(focusedItem) === 0) {
|
|
294
301
|
return switchFocus(function () { focusElement(inputRef.current); });
|
|
295
302
|
}
|
|
@@ -368,26 +375,31 @@ export var MultiSelectTree = React.forwardRef(function (directProps, ref) {
|
|
|
368
375
|
var NoData = props.listNoData || ListNoData;
|
|
369
376
|
var localization = useLocalization();
|
|
370
377
|
var isValid = !validityStyles || validity.valid;
|
|
371
|
-
var
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
props.
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
378
|
+
var size = props.size, rounded = props.rounded, fillMode = props.fillMode;
|
|
379
|
+
var multiselecttree = (React.createElement("span", { className: classNames('k-multiselect k-input', props.className, (_a = {},
|
|
380
|
+
_a["k-input-" + (sizeMap[size] || size)] = size,
|
|
381
|
+
_a["k-rounded-" + (roundedMap[rounded] || rounded)] = rounded,
|
|
382
|
+
_a["k-input-" + fillMode] = fillMode,
|
|
383
|
+
_a['k-focus'] = focusedState && !disabled,
|
|
384
|
+
_a['k-invalid'] = !isValid,
|
|
385
|
+
_a['k-valid'] = isValid,
|
|
386
|
+
_a['k-disabled'] = disabled,
|
|
387
|
+
_a['k-loading'] = props.loading,
|
|
388
|
+
_a['k-required'] = required,
|
|
389
|
+
_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 },
|
|
390
|
+
tagsToRenderRef.current.length > 0 && (React.createElement("div", { className: classNames('k-input-values k-chip-list k-selection-multiple', (_b = {},
|
|
391
|
+
_b["k-chip-list-" + (sizeMap[size] || size)] = size,
|
|
392
|
+
_b)), role: "listbox", id: 'tagslist-' + id },
|
|
393
|
+
React.createElement(TagList, { tag: props.tag, onTagDelete: onTagDelete, data: tagsToRenderRef.current, guid: id, focused: focusedTagState ? tagsToRenderRef.current.find(function (t) { return matchTags(t, focusedTagState, dataItemKey); }) : undefined, size: size }))),
|
|
394
|
+
!hasValue && React.createElement("span", { className: "k-input-inner" },
|
|
395
|
+
React.createElement("span", { className: "k-input-value-text" }, "\u00A0")),
|
|
396
|
+
props.loading && React.createElement("span", { className: "k-icon k-i-loading" }),
|
|
397
|
+
hasValue && !disabled && React.createElement(ClearButton, { onClick: onClear }),
|
|
398
|
+
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%' } },
|
|
399
|
+
React.createElement("option", { value: props.valueMap ? props.valueMap.call(undefined, value) : value })),
|
|
400
|
+
React.createElement(Popup, { popupClass: popupSettings.popupClass, className: classNames(popupSettings.className, { 'k-rtl': dir === 'rtl' }), style: popupStyles, animate: popupSettings.animate, anchor: elementRef.current, show: isOpen, onOpen: onPopupOpened, onClose: onPopupClosed, appendTo: popupSettings.appendTo, ref: popupRef },
|
|
401
|
+
props.filterable && (React.createElement(ListFilter, { value: props.filter === undefined ? filterState : props.filter, inputRef: inputRef, onChange: onFilterChange, onKeyDown: onInputKeyDown, tabIndex: tabIndex, size: size, rounded: rounded, fillMode: fillMode })),
|
|
402
|
+
data.length > 0 ? (React.createElement(TreeView, { ref: treeViewRef, tabIndex: tabIndex, data: data, focusIdField: dataItemKey, textField: props.textField, checkField: checkField, checkIndeterminateField: checkIndeterminateField, expandField: props.expandField, childrenField: subItemsField, expandIcons: true, onItemClick: onChange, onCheckChange: onChange, onExpandChange: onExpand, checkboxes: true, size: size, item: props.item })) : (React.createElement(NoData, null, localization.toLanguageString(nodata, messages[nodata]))))));
|
|
391
403
|
return label ? (React.createElement(FloatingLabel, { label: label, editorValue: hasValue, editorPlaceholder: placeholder, editorValid: isValid, editorDisabled: disabled, editorId: id, style: { width: style ? style.width : undefined }, children: multiselecttree, dir: dir })) : multiselecttree;
|
|
392
404
|
});
|
|
393
405
|
var propTypes = {
|
|
@@ -446,4 +458,5 @@ var propTypes = {
|
|
|
446
458
|
listNoData: PropTypes.func
|
|
447
459
|
};
|
|
448
460
|
MultiSelectTree.displayName = 'KendoReactMultiSelectTree';
|
|
461
|
+
MultiSelectTree.defaultProps = defaultProps;
|
|
449
462
|
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—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—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—Does not set a fillMode `className`.
|
|
299
|
+
*
|
|
300
|
+
* @default `solid`
|
|
301
|
+
*/
|
|
302
|
+
fillMode?: null | 'solid' | 'flat' | 'outline';
|
|
266
303
|
}
|
|
@@ -26,7 +26,8 @@ var ClearButton = /** @class */ (function (_super) {
|
|
|
26
26
|
}
|
|
27
27
|
ClearButton.prototype.render = function () {
|
|
28
28
|
var title = provideLocalizationService(this).toLanguageString(clear, messages[clear]);
|
|
29
|
-
return (React.createElement("span", { className: "k-
|
|
29
|
+
return (React.createElement("span", { className: "k-clear-value", role: "button", onClick: this.props.onClick, onMouseDown: this.onMouseDown, tabIndex: -1, title: title, key: "clearbutton" },
|
|
30
|
+
React.createElement("span", { className: "k-icon k-i-x" })));
|
|
30
31
|
};
|
|
31
32
|
return ClearButton;
|
|
32
33
|
}(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<
|
|
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<
|
|
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
|
}
|
|
@@ -26,6 +26,7 @@ var DropDownBase = /** @class */ (function () {
|
|
|
26
26
|
this.handleItemClick = function (index, event) {
|
|
27
27
|
var state = _this.initState();
|
|
28
28
|
state.syntheticEvent = event;
|
|
29
|
+
event.stopPropagation();
|
|
29
30
|
_this.component.handleItemSelect(index, state);
|
|
30
31
|
_this.togglePopup(state);
|
|
31
32
|
_this.applyState(state);
|
|
@@ -96,21 +97,6 @@ var DropDownBase = /** @class */ (function () {
|
|
|
96
97
|
}
|
|
97
98
|
window.setTimeout(function () { return vs.enabled = true; }, 10);
|
|
98
99
|
};
|
|
99
|
-
// Common rendering
|
|
100
|
-
this.renderScrollWrapper = function (children, onScroll) {
|
|
101
|
-
var popupSettings = _this.getPopupSettings();
|
|
102
|
-
var vs = _this.vs;
|
|
103
|
-
return vs.enabled ? (React.createElement("div", { onScroll: function (e) {
|
|
104
|
-
vs.scrollHandler(e);
|
|
105
|
-
if (onScroll) {
|
|
106
|
-
onScroll.call(undefined, e);
|
|
107
|
-
}
|
|
108
|
-
}, ref: vs.scrollerRef, style: {
|
|
109
|
-
height: popupSettings.height,
|
|
110
|
-
overflowY: 'scroll'
|
|
111
|
-
} }, children)) :
|
|
112
|
-
(children);
|
|
113
|
-
};
|
|
114
100
|
this.renderScrollElement = function () {
|
|
115
101
|
var vs = _this.vs;
|
|
116
102
|
return vs.enabled && (React.createElement("div", { ref: function (element) { return vs.scrollElement = element; }, key: 'scrollElementKey' }));
|
|
@@ -233,7 +219,7 @@ var DropDownBase = /** @class */ (function () {
|
|
|
233
219
|
})]),
|
|
234
220
|
popupClass: PropTypes.string,
|
|
235
221
|
className: PropTypes.string,
|
|
236
|
-
appendTo: PropTypes.
|
|
222
|
+
appendTo: PropTypes.element,
|
|
237
223
|
width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
|
|
238
224
|
height: PropTypes.oneOfType([PropTypes.string, PropTypes.number])
|
|
239
225
|
}),
|
package/dist/es/common/List.d.ts
CHANGED
|
@@ -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
|
package/dist/es/common/List.js
CHANGED
|
@@ -54,10 +54,11 @@ var List = /** @class */ (function (_super) {
|
|
|
54
54
|
};
|
|
55
55
|
List.prototype.render = function () {
|
|
56
56
|
var localizationService = provideLocalizationService(this);
|
|
57
|
-
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;
|
|
57
|
+
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;
|
|
58
58
|
var items = this.renderItems();
|
|
59
59
|
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" },
|
|
60
|
-
React.createElement("ul", { id: id, role: "listbox", "aria-hidden": !show ? true : undefined, className: listClassName
|
|
60
|
+
React.createElement("ul", { id: id, role: "listbox", "aria-hidden": !show ? true : undefined, className: listClassName, ref: listRef, style: listStyle }, items),
|
|
61
|
+
this.props.scroller)) : this.renderNoValueElement(localizationService));
|
|
61
62
|
};
|
|
62
63
|
return List;
|
|
63
64
|
}(React.Component));
|
|
@@ -25,8 +25,8 @@ var ListDefaultItem = /** @class */ (function (_super) {
|
|
|
25
25
|
}
|
|
26
26
|
ListDefaultItem.prototype.render = function () {
|
|
27
27
|
var _a = this.props, selected = _a.selected, defaultItem = _a.defaultItem, textField = _a.textField;
|
|
28
|
-
return (React.createElement("div", { onClick: this.props.onClick, onMouseDown: preventDefault, className: classNames('k-list-optionlabel', {
|
|
29
|
-
'k-
|
|
28
|
+
return (React.createElement("div", { onClick: this.props.onClick, onMouseDown: preventDefault, style: { position: 'unset' }, className: classNames('k-list-optionlabel', {
|
|
29
|
+
'k-selected': selected
|
|
30
30
|
}) }, getItemValue(defaultItem, textField) || ''));
|
|
31
31
|
};
|
|
32
32
|
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
|