@progress/kendo-react-dropdowns 5.1.0-dev.202202221154 → 5.1.0-dev.202202240928
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/ComboBox/ComboBox.js +23 -14
- package/dist/es/ComboBox/ComboBoxProps.d.ts +6 -0
- package/dist/es/DropDownList/DropDownList.d.ts +4 -1
- package/dist/es/DropDownList/DropDownList.js +3 -3
- package/dist/es/DropDownList/DropDownListProps.d.ts +4 -0
- package/dist/es/MultiColumnComboBox/MultiColumnComboBox.d.ts +6 -0
- package/dist/es/MultiColumnComboBox/MultiColumnComboBox.js +27 -16
- package/dist/es/common/List.d.ts +1 -0
- package/dist/es/common/List.js +3 -3
- package/dist/es/common/ListItem.d.ts +4 -0
- package/dist/es/common/ListItem.js +3 -3
- package/dist/es/common/MultiColumnList.js +1 -1
- package/dist/es/package-metadata.js +1 -1
- package/dist/npm/ComboBox/ComboBox.js +23 -14
- package/dist/npm/ComboBox/ComboBoxProps.d.ts +6 -0
- package/dist/npm/DropDownList/DropDownList.d.ts +4 -1
- package/dist/npm/DropDownList/DropDownList.js +3 -3
- package/dist/npm/DropDownList/DropDownListProps.d.ts +4 -0
- package/dist/npm/MultiColumnComboBox/MultiColumnComboBox.d.ts +6 -0
- package/dist/npm/MultiColumnComboBox/MultiColumnComboBox.js +26 -15
- package/dist/npm/common/List.d.ts +1 -0
- package/dist/npm/common/List.js +3 -3
- package/dist/npm/common/ListItem.d.ts +4 -0
- package/dist/npm/common/ListItem.js +3 -3
- package/dist/npm/common/MultiColumnList.js +1 -1
- package/dist/npm/package-metadata.js +1 -1
- package/dist/systemjs/kendo-react-dropdowns.js +1 -1
- package/package.json +12 -12
|
@@ -25,7 +25,7 @@ var PropTypes = require("prop-types");
|
|
|
25
25
|
var MultiColumnList_1 = require("./../common/MultiColumnList");
|
|
26
26
|
var kendo_react_common_1 = require("@progress/kendo-react-common");
|
|
27
27
|
var ComboBox_1 = require("../ComboBox/ComboBox");
|
|
28
|
-
var
|
|
28
|
+
var utils_1 = require("../common/utils");
|
|
29
29
|
var columnWidth = function (width, defaultWidth) {
|
|
30
30
|
if (width) {
|
|
31
31
|
return typeof width === 'number' ? width + 'px' : width;
|
|
@@ -47,12 +47,11 @@ exports.MultiColumnComboBoxPropsContext = kendo_react_common_1.createPropsContex
|
|
|
47
47
|
*
|
|
48
48
|
*/
|
|
49
49
|
exports.MultiColumnComboBox = React.forwardRef(function (directProps, ref) {
|
|
50
|
-
var _a;
|
|
51
50
|
var props = kendo_react_common_1.usePropsContext(exports.MultiColumnComboBoxPropsContext, directProps);
|
|
52
51
|
var target = React.useRef(null);
|
|
53
52
|
var comboBoxRef = React.useRef(null);
|
|
54
53
|
var scrollbarWidth = kendo_react_common_1.getScrollbarWidth();
|
|
55
|
-
var
|
|
54
|
+
var _a = props.columns, columns = _a === void 0 ? defaultProps.columns : _a, _b = props.popupSettings, popupSettings = _b === void 0 ? defaultProps.popupSettings : _b, size = props.size, onOpen = props.onOpen, onClose = props.onClose, onFocus = props.onFocus, onBlur = props.onBlur, onChange = props.onChange, onFilterChange = props.onFilterChange, onPageChange = props.onPageChange, other = __rest(props, ["columns", "popupSettings", "size", "onOpen", "onClose", "onFocus", "onBlur", "onChange", "onFilterChange", "onPageChange"]);
|
|
56
55
|
React.useImperativeHandle(target, function () {
|
|
57
56
|
return ({
|
|
58
57
|
element: comboBoxRef.current && comboBoxRef.current.element,
|
|
@@ -67,12 +66,15 @@ exports.MultiColumnComboBox = React.forwardRef(function (directProps, ref) {
|
|
|
67
66
|
});
|
|
68
67
|
});
|
|
69
68
|
React.useImperativeHandle(ref, function () { return target.current; });
|
|
70
|
-
var
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
69
|
+
var initialGroupHeader = React.useMemo(function () {
|
|
70
|
+
if (initialGroupHeader === undefined && props.groupField !== undefined && props.data) {
|
|
71
|
+
return utils_1.getItemValue(props.data[0], props.groupField);
|
|
72
|
+
}
|
|
73
|
+
}, [props.data, props.groupField]);
|
|
74
|
+
var _c = React.useState(initialGroupHeader), groupHeader = _c[0], setGroupHeader = _c[1];
|
|
75
|
+
var header = React.useMemo(function () {
|
|
76
|
+
return (React.createElement(React.Fragment, null,
|
|
77
|
+
props.header,
|
|
76
78
|
React.createElement("div", { className: "k-table-header-wrap" },
|
|
77
79
|
React.createElement("table", { className: "k-table", role: "presentation" },
|
|
78
80
|
React.createElement("colgroup", null, columns.map(function (column, i) {
|
|
@@ -81,7 +83,14 @@ exports.MultiColumnComboBox = React.forwardRef(function (directProps, ref) {
|
|
|
81
83
|
React.createElement("thead", { className: 'k-table-thead' },
|
|
82
84
|
React.createElement("tr", { className: 'k-table-row' }, columns.map(function (column, i) {
|
|
83
85
|
return (React.createElement("th", { className: "k-table-th", key: column.uniqueKey ? column.uniqueKey : i }, column.header || '\u00A0'));
|
|
84
|
-
}))
|
|
86
|
+
})),
|
|
87
|
+
groupHeader && React.createElement("tr", { className: 'k-table-group-row' },
|
|
88
|
+
React.createElement("th", { className: 'k-table-th', colSpan: columns.length }, groupHeader)))))));
|
|
89
|
+
}, [props.header, columns, groupHeader]);
|
|
90
|
+
var popupWidth = React.useMemo(function () {
|
|
91
|
+
// These additional 4px are coming from the child elements side borders (fixes horizontal scrollbar)
|
|
92
|
+
return "calc(" + columns.map(function (column) { return columnWidth(column.width, defaultProps.width); }).filter(Boolean).join(' + ') + " + " + scrollbarWidth + "px + 4px)";
|
|
93
|
+
}, [columns, scrollbarWidth]);
|
|
85
94
|
var skip = props.virtual ? props.virtual.skip : 0;
|
|
86
95
|
var itemRender = React.useCallback(function (li, liProps) {
|
|
87
96
|
var children = columns.map(function (column, i) { return (React.createElement("span", { className: "k-table-td", style: { width: column.width ? column.width : defaultProps.width }, key: column.uniqueKey ? column.uniqueKey : i }, column.field ? kendo_react_common_1.getter(column.field)(liProps.dataItem) : '')); });
|
|
@@ -97,13 +106,14 @@ exports.MultiColumnComboBox = React.forwardRef(function (directProps, ref) {
|
|
|
97
106
|
}
|
|
98
107
|
}
|
|
99
108
|
if (group) {
|
|
100
|
-
children.push(React.createElement("div", { key: "group", className: "k-
|
|
109
|
+
children.push(React.createElement("div", { key: "group", className: "k-table-td k-table-group-td" },
|
|
101
110
|
React.createElement("span", null, group)));
|
|
102
111
|
}
|
|
103
112
|
var rendering = React.cloneElement(li, __assign({}, li.props, { className: kendo_react_common_1.classNames('k-table-row', {
|
|
104
113
|
'k-table-alt-row': liProps.index % 2 !== 0,
|
|
105
114
|
'k-focus': liProps.focused,
|
|
106
|
-
'k-selected': liProps.selected
|
|
115
|
+
'k-selected': liProps.selected,
|
|
116
|
+
'k-first': Boolean(group)
|
|
107
117
|
}) }), children);
|
|
108
118
|
return props.itemRender ? props.itemRender.call(undefined, rendering, liProps) : rendering;
|
|
109
119
|
}, [columns, props.groupField, props.itemRender, props.data, skip]);
|
|
@@ -119,11 +129,12 @@ exports.MultiColumnComboBox = React.forwardRef(function (directProps, ref) {
|
|
|
119
129
|
var onChangeHandler = React.useCallback(function (event) { return handleEvent(onChange, event); }, [onChange]);
|
|
120
130
|
var onFilterChangeHandler = React.useCallback(function (event) { return handleEvent(onFilterChange, event); }, [onFilterChange]);
|
|
121
131
|
var onPageChangeHandler = React.useCallback(function (event) { return handleEvent(onPageChange, event); }, [onPageChange]);
|
|
132
|
+
var onGroupScroll = React.useCallback(function (event) {
|
|
133
|
+
setGroupHeader(event.group);
|
|
134
|
+
}, []);
|
|
122
135
|
React.useEffect(function () { kendo_react_common_1.setScrollbarWidth(); });
|
|
123
136
|
var List = React.useCallback(function (listProps) { return React.createElement(MultiColumnList_1.MultiColumnList, __assign({}, listProps)); }, []);
|
|
124
|
-
return (React.createElement(ComboBox_1.ComboBox, __assign({}, other, { list: List, popupSettings: __assign({ width: popupWidth }, popupSettings, { popupClass:
|
|
125
|
-
_a["k-table-" + (sizeMap[size] || size)] = size,
|
|
126
|
-
_a)), className: popupSettings.className }), ref: comboBoxRef, header: header, itemRender: itemRender, size: props.size, rounded: props.rounded, fillMode: props.fillMode, onOpen: onOpenHandler, onClose: onCloseHandler, onFocus: onFocusHandler, onBlur: onBlurHandler, onChange: onChangeHandler, onFilterChange: onFilterChangeHandler, onPageChange: onPageChangeHandler })));
|
|
137
|
+
return (React.createElement(ComboBox_1.ComboBox, __assign({}, other, { list: List, popupSettings: __assign({ width: popupWidth }, popupSettings, { popupClass: 'k-dropdowngrid-popup k-reset', className: popupSettings.className }), ref: comboBoxRef, header: header, itemRender: itemRender, size: props.size, rounded: props.rounded, fillMode: props.fillMode, onOpen: onOpenHandler, onClose: onCloseHandler, onFocus: onFocusHandler, onBlur: onBlurHandler, onChange: onChangeHandler, onFilterChange: onFilterChangeHandler, onPageChange: onPageChangeHandler, onGroupScroll: onGroupScroll })));
|
|
127
138
|
});
|
|
128
139
|
var propTypes = __assign({}, ComboBox_1.ComboBoxWithoutContext.propTypes, { columns: PropTypes.any.isRequired });
|
|
129
140
|
var defaultProps = {
|
package/dist/npm/common/List.js
CHANGED
|
@@ -28,7 +28,7 @@ var List = /** @class */ (function (_super) {
|
|
|
28
28
|
}
|
|
29
29
|
List.prototype.renderItems = function () {
|
|
30
30
|
var _this = this;
|
|
31
|
-
var _a = this.props, textField = _a.textField, valueField = _a.valueField, groupField = _a.groupField, optionsGuid = _a.optionsGuid, _b = _a.skip, skip = _b === void 0 ? 0 : _b, focusedIndex = _a.focusedIndex, _c = _a.highlightSelected, highlightSelected = _c === void 0 ? true : _c, value = _a.value, data = _a.data, itemRender = _a.itemRender;
|
|
31
|
+
var _a = this.props, textField = _a.textField, valueField = _a.valueField, groupField = _a.groupField, optionsGuid = _a.optionsGuid, _b = _a.skip, skip = _b === void 0 ? 0 : _b, virtual = _a.virtual, focusedIndex = _a.focusedIndex, _c = _a.highlightSelected, highlightSelected = _c === void 0 ? true : _c, value = _a.value, data = _a.data, itemRender = _a.itemRender;
|
|
32
32
|
var isArray = Array.isArray(value);
|
|
33
33
|
return data.map(function (item, index) {
|
|
34
34
|
var realIndex = skip + index;
|
|
@@ -44,7 +44,7 @@ var List = /** @class */ (function (_super) {
|
|
|
44
44
|
group = current;
|
|
45
45
|
}
|
|
46
46
|
}
|
|
47
|
-
return (React.createElement(ListItem_1.default, { id: "option-" + optionsGuid + "-" + realIndex, dataItem: item, selected: selected, focused: focusedIndex === index, index: realIndex, key: realIndex, onClick: _this.props.onClick, textField: textField, group: group, render: itemRender }));
|
|
47
|
+
return (React.createElement(ListItem_1.default, { id: "option-" + optionsGuid + "-" + realIndex, virtual: virtual, dataItem: item, selected: selected, focused: focusedIndex === index, index: realIndex, key: realIndex, onClick: _this.props.onClick, textField: textField, group: group, render: itemRender }));
|
|
48
48
|
});
|
|
49
49
|
};
|
|
50
50
|
List.prototype.renderNoValueElement = function (localizationService) {
|
|
@@ -60,7 +60,7 @@ var List = /** @class */ (function (_super) {
|
|
|
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
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
|
+
this.props.scroller && React.createElement("div", { className: "k-height-container" }, this.props.scroller))) : this.renderNoValueElement(localizationService));
|
|
64
64
|
};
|
|
65
65
|
return List;
|
|
66
66
|
}(React.Component));
|
|
@@ -31,6 +31,10 @@ export interface ListItemProps {
|
|
|
31
31
|
* Indicates the selected state of the list item element.
|
|
32
32
|
*/
|
|
33
33
|
selected: boolean;
|
|
34
|
+
/**
|
|
35
|
+
* @hidden
|
|
36
|
+
*/
|
|
37
|
+
virtual?: boolean;
|
|
34
38
|
/**
|
|
35
39
|
* Fires when the list item is about to be rendered. Used to override the default appearance of the list item.
|
|
36
40
|
*/
|
|
@@ -28,14 +28,14 @@ var ListItem = /** @class */ (function (_super) {
|
|
|
28
28
|
return _this;
|
|
29
29
|
}
|
|
30
30
|
ListItem.prototype.render = function () {
|
|
31
|
-
var _a = this.props, selected = _a.selected, group = _a.group, dataItem = _a.dataItem, renderer = _a.render;
|
|
31
|
+
var _a = this.props, selected = _a.selected, group = _a.group, dataItem = _a.dataItem, virtual = _a.virtual, renderer = _a.render;
|
|
32
32
|
var item = (React.createElement("li", { id: this.props.id, role: "option", "aria-selected": selected, className: kendo_react_common_1.classNames('k-list-item', {
|
|
33
33
|
'k-selected': selected,
|
|
34
34
|
'k-focus': this.props.focused,
|
|
35
35
|
'k-first': Boolean(group)
|
|
36
|
-
}), onClick: this.handleClick, style: { position: 'unset' } },
|
|
36
|
+
}), onClick: this.handleClick, style: { position: virtual ? 'relative' : 'unset' } },
|
|
37
37
|
React.createElement("span", { className: 'k-list-item-text' }, utils_1.getItemValue(dataItem, this.props.textField).toString()),
|
|
38
|
-
group !== undefined ? React.createElement("div", { className: "k-group" }, group) : null));
|
|
38
|
+
group !== undefined ? React.createElement("div", { className: "k-list-item-group-label" }, group) : null));
|
|
39
39
|
return renderer !== undefined ? renderer.call(undefined, item, this.props) : item;
|
|
40
40
|
};
|
|
41
41
|
return ListItem;
|
|
@@ -17,5 +17,5 @@ var List_1 = require("./List");
|
|
|
17
17
|
* @hidden
|
|
18
18
|
*/
|
|
19
19
|
exports.MultiColumnList = function (props) {
|
|
20
|
-
return (React.createElement(List_1.default, __assign({}, props, { wrapperCssClass: "k-table-scroller", listClassName: "k-table k-table-list", listStyle: __assign({}, props.listStyle) })));
|
|
20
|
+
return (React.createElement(List_1.default, __assign({}, props, { wrapperCssClass: "k-table-body k-table-scroller", listClassName: "k-table k-table-list", listStyle: __assign({}, props.listStyle) })));
|
|
21
21
|
};
|
|
@@ -7,7 +7,7 @@ exports.packageMetadata = {
|
|
|
7
7
|
name: '@progress/kendo-react-dropdowns',
|
|
8
8
|
productName: 'KendoReact',
|
|
9
9
|
productCodes: ['KENDOUIREACT', 'KENDOUICOMPLETE'],
|
|
10
|
-
publishDate:
|
|
10
|
+
publishDate: 1645693883,
|
|
11
11
|
version: '',
|
|
12
12
|
licensingDocsUrl: 'https://www.telerik.com/kendo-react-ui/my-license/?utm_medium=product&utm_source=kendoreact&utm_campaign=kendo-ui-react-purchase-license-keys-warning'
|
|
13
13
|
};
|