@progress/kendo-react-dropdowns 5.10.0-dev.202301092204 → 5.10.0-dev.202301111905
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.js +3 -3
- package/dist/es/ComboBox/ComboBox.d.ts +8 -1
- package/dist/es/ComboBox/ComboBox.js +10 -5
- package/dist/es/ComboBox/ComboBoxProps.d.ts +5 -1
- package/dist/es/DropDownList/DropDownList.d.ts +9 -3
- package/dist/es/DropDownList/DropDownList.js +11 -6
- package/dist/es/DropDownList/DropDownListProps.d.ts +5 -1
- package/dist/es/DropDownTree/DropDownTree.js +5 -4
- package/dist/es/MultiSelect/MultiSelect.js +4 -3
- package/dist/es/MultiSelectTree/MultiSelectTree.js +7 -7
- package/dist/es/common/ClearButton.js +3 -1
- package/dist/es/common/ListFilter.js +3 -2
- package/dist/es/messages/index.d.ts +15 -0
- package/dist/es/messages/index.js +15 -0
- package/dist/es/package-metadata.js +1 -1
- package/dist/npm/AutoComplete/AutoComplete.js +2 -2
- package/dist/npm/ComboBox/ComboBox.d.ts +8 -1
- package/dist/npm/ComboBox/ComboBox.js +9 -4
- package/dist/npm/ComboBox/ComboBoxProps.d.ts +5 -1
- package/dist/npm/DropDownList/DropDownList.d.ts +9 -3
- package/dist/npm/DropDownList/DropDownList.js +10 -5
- package/dist/npm/DropDownList/DropDownListProps.d.ts +5 -1
- package/dist/npm/DropDownTree/DropDownTree.js +4 -3
- package/dist/npm/MultiSelect/MultiSelect.js +3 -2
- package/dist/npm/MultiSelectTree/MultiSelectTree.js +6 -6
- package/dist/npm/common/ClearButton.js +3 -1
- package/dist/npm/common/ListFilter.js +2 -1
- package/dist/npm/messages/index.d.ts +15 -0
- package/dist/npm/messages/index.js +16 -1
- package/dist/npm/package-metadata.js +1 -1
- package/dist/systemjs/kendo-react-dropdowns.js +1 -1
- package/package.json +15 -13
|
@@ -31,7 +31,7 @@ import ListContainer from './../common/ListContainer';
|
|
|
31
31
|
import List from './../common/List';
|
|
32
32
|
import DropDownBase from '../common/DropDownBase';
|
|
33
33
|
import { itemIndexStartsWith, getItemValue, areSame, getFocusedItem } from '../common/utils';
|
|
34
|
-
import { guid, Keys, classNames, createPropsContext, withPropsContext, kendoThemeMaps } from '@progress/kendo-react-common';
|
|
34
|
+
import { guid, Keys, classNames, createPropsContext, withPropsContext, kendoThemeMaps, IconWrap } from '@progress/kendo-react-common';
|
|
35
35
|
import { FloatingLabel } from '@progress/kendo-react-labels';
|
|
36
36
|
import { validatePackage } from '@progress/kendo-react-common';
|
|
37
37
|
import { packageMetadata } from '../package-metadata';
|
|
@@ -319,7 +319,7 @@ var AutoCompleteWithoutContext = /** @class */ (function (_super) {
|
|
|
319
319
|
? style
|
|
320
320
|
: __assign(__assign({}, style), { width: undefined }), dir: dir },
|
|
321
321
|
this.renderSearchBar(value || '', id),
|
|
322
|
-
loading && React.createElement(
|
|
322
|
+
loading && React.createElement(IconWrap, { className: "k-input-loading-icon", name: 'loading' }),
|
|
323
323
|
renderClearButton && !loading && React.createElement(ClearButton, { onClick: this.clearButtonClick, key: "clearbutton" }),
|
|
324
324
|
this.renderListContainer()));
|
|
325
325
|
return label
|
|
@@ -370,7 +370,7 @@ var AutoCompleteWithoutContext = /** @class */ (function (_super) {
|
|
|
370
370
|
var _a = this.props, placeholder = _a.placeholder, tabIndex = _a.tabIndex, disabled = _a.disabled, readonly = _a.readonly;
|
|
371
371
|
var focused = this.state.focused;
|
|
372
372
|
var opened = this.props.opened !== undefined ? this.props.opened : this.state.opened;
|
|
373
|
-
return (React.createElement(SearchBar, { id: id, placeholder: placeholder, tabIndex: tabIndex
|
|
373
|
+
return (React.createElement(SearchBar, { id: id, placeholder: placeholder, tabIndex: tabIndex, accessKey: this.props.accessKey, value: value, suggestedText: this._suggested, focused: focused, name: this.props.name, ref: function (searchbar) { return _this._input = searchbar && searchbar.input; }, onKeyDown: this.onInputKeyDown, onChange: this.onChangeHandler, onFocus: base.handleFocus, onBlur: this.handleBlur, disabled: disabled, readOnly: readonly, expanded: opened, owns: base.listBoxId, activedescendant: 'option-' + base.guid + '-' + this.focusedIndex(), role: "combobox", ariaLabelledBy: this.props.ariaLabelledBy, ariaDescribedBy: this.props.ariaDescribedBy, render: this.props.valueRender }));
|
|
374
374
|
};
|
|
375
375
|
AutoCompleteWithoutContext.prototype.renderListContainer = function () {
|
|
376
376
|
var _a;
|
|
@@ -34,6 +34,11 @@ export declare class ComboBoxWithoutContext extends React.Component<ComboBoxProp
|
|
|
34
34
|
allowCustom: PropTypes.Requireable<boolean>;
|
|
35
35
|
clearButton: PropTypes.Requireable<boolean>;
|
|
36
36
|
iconClassName: PropTypes.Requireable<string>;
|
|
37
|
+
svgIcon: PropTypes.Requireable<PropTypes.InferProps<{
|
|
38
|
+
name: PropTypes.Validator<string>;
|
|
39
|
+
content: PropTypes.Validator<string>;
|
|
40
|
+
viewBox: PropTypes.Validator<string>;
|
|
41
|
+
}>>;
|
|
37
42
|
validationMessage: PropTypes.Requireable<string>;
|
|
38
43
|
required: PropTypes.Requireable<boolean>;
|
|
39
44
|
id: PropTypes.Requireable<string>;
|
|
@@ -76,7 +81,9 @@ export declare class ComboBoxWithoutContext extends React.Component<ComboBoxProp
|
|
|
76
81
|
onOpen: PropTypes.Requireable<(...args: any[]) => any>;
|
|
77
82
|
onClose: PropTypes.Requireable<(...args: any[]) => any>;
|
|
78
83
|
onFocus: PropTypes.Requireable<(...args: any[]) => any>;
|
|
79
|
-
onBlur: PropTypes.Requireable<(...args: any[]) => any>;
|
|
84
|
+
onBlur: PropTypes.Requireable<(...args: any[]) => any>; /**
|
|
85
|
+
* @hidden
|
|
86
|
+
*/
|
|
80
87
|
onChange: PropTypes.Requireable<(...args: any[]) => any>;
|
|
81
88
|
itemRender: PropTypes.Requireable<(...args: any[]) => any>;
|
|
82
89
|
listNoDataRender: PropTypes.Requireable<(...args: any[]) => any>;
|
|
@@ -27,7 +27,7 @@ var __assign = (this && this.__assign) || function () {
|
|
|
27
27
|
import * as React from 'react';
|
|
28
28
|
import * as PropTypes from 'prop-types';
|
|
29
29
|
import DropDownBase from '../common/DropDownBase';
|
|
30
|
-
import { guid, classNames, Keys, createPropsContext, withPropsContext, kendoThemeMaps } from '@progress/kendo-react-common';
|
|
30
|
+
import { guid, classNames, Keys, createPropsContext, withPropsContext, kendoThemeMaps, svgIconPropType } from '@progress/kendo-react-common';
|
|
31
31
|
import { FloatingLabel } from '@progress/kendo-react-labels';
|
|
32
32
|
import { areSame, itemIndexStartsWith, getItemIndexByText, getItemValue, isPresent, suggestValue } from '../common/utils';
|
|
33
33
|
import SearchBar from '../common/SearchBar';
|
|
@@ -37,6 +37,9 @@ import { validatePackage } from '@progress/kendo-react-common';
|
|
|
37
37
|
import { packageMetadata } from '../package-metadata';
|
|
38
38
|
import ClearButton from '../common/ClearButton';
|
|
39
39
|
import { Button } from '@progress/kendo-react-buttons';
|
|
40
|
+
import { caretAltDownIcon } from '@progress/kendo-svg-icons';
|
|
41
|
+
import { messages, comboArrowBtnAriaLabelExpand, comboArrowBtnAriaLabelCollapse } from './../messages';
|
|
42
|
+
import { provideLocalizationService } from '@progress/kendo-react-intl';
|
|
40
43
|
var VALIDATION_MESSAGE = 'Please enter a valid value!';
|
|
41
44
|
var sizeMap = kendoThemeMaps.sizeMap, roundedMap = kendoThemeMaps.roundedMap;
|
|
42
45
|
/** @hidden */
|
|
@@ -363,7 +366,9 @@ var ComboBoxWithoutContext = /** @class */ (function (_super) {
|
|
|
363
366
|
*/
|
|
364
367
|
ComboBoxWithoutContext.prototype.render = function () {
|
|
365
368
|
var _a;
|
|
366
|
-
var
|
|
369
|
+
var btnAriaLabelExpand = provideLocalizationService(this).toLanguageString(comboArrowBtnAriaLabelExpand, messages[comboArrowBtnAriaLabelExpand]);
|
|
370
|
+
var btnAriaLabelCollapse = provideLocalizationService(this).toLanguageString(comboArrowBtnAriaLabelCollapse, messages[comboArrowBtnAriaLabelCollapse]);
|
|
371
|
+
var _b = this.props, dir = _b.dir, disabled = _b.disabled, _c = _b.clearButton, clearButton = _c === void 0 ? ComboBoxWithoutContext.defaultProps.clearButton : _c, label = _b.label, textField = _b.textField, className = _b.className, style = _b.style, loading = _b.loading, iconClassName = _b.iconClassName, virtual = _b.virtual, size = _b.size, rounded = _b.rounded, fillMode = _b.fillMode, _d = _b.opened, opened = _d === void 0 ? this.state.opened : _d;
|
|
367
372
|
var isValid = !this.validityStyles || this.validity.valid;
|
|
368
373
|
var text = this.props.filter !== undefined ? this.props.filter : this.state.text;
|
|
369
374
|
var selectedItemText = getItemValue(this.value, textField);
|
|
@@ -390,7 +395,7 @@ var ComboBoxWithoutContext = /** @class */ (function (_super) {
|
|
|
390
395
|
this.renderSearchBar(inputText || '', id),
|
|
391
396
|
renderClearButton && !loading && React.createElement(ClearButton, { onClick: this.clearButtonClick, key: "clearbutton" }),
|
|
392
397
|
loading && React.createElement("span", { className: "k-icon k-i-loading k-input-loading-icon", key: "loading" }),
|
|
393
|
-
React.createElement(Button, { tabIndex: -1, type: "button", icon: !iconClassName ? 'caret-alt-down' : undefined, iconClass: iconClassName, size: size, fillMode: fillMode, rounded: null, themeColor: 'base', className: "k-input-button", onClick: this.toggleBtnClick, onMouseDown: function (e) { return e.preventDefault(); } }),
|
|
398
|
+
React.createElement(Button, { tabIndex: -1, type: "button", "aria-label": opened ? btnAriaLabelCollapse : btnAriaLabelExpand, icon: !iconClassName ? 'caret-alt-down' : undefined, svgIcon: !iconClassName ? caretAltDownIcon : this.props.svgIcon, iconClass: iconClassName, size: size, fillMode: fillMode, rounded: null, themeColor: 'base', className: "k-input-button", onClick: this.toggleBtnClick, onMouseDown: function (e) { return e.preventDefault(); } }),
|
|
394
399
|
this.renderListContainer()));
|
|
395
400
|
return label
|
|
396
401
|
? (React.createElement(FloatingLabel, { label: label, editorId: id, editorValue: inputText, editorValid: isValid, editorDisabled: disabled, style: { width: style ? style.width : undefined }, children: combobox }))
|
|
@@ -565,7 +570,7 @@ var ComboBoxWithoutContext = /** @class */ (function (_super) {
|
|
|
565
570
|
if (this._suggested && !areSame(this._valueOnDidUpdate, value, dataItemKey)) {
|
|
566
571
|
this._suggested = '';
|
|
567
572
|
}
|
|
568
|
-
return (React.createElement(SearchBar, { id: id, placeholder: placeholder, tabIndex: tabIndex
|
|
573
|
+
return (React.createElement(SearchBar, { id: id, placeholder: placeholder, tabIndex: tabIndex, accessKey: this.props.accessKey, value: text + this._suggested, suggestedText: this._suggested, ref: function (el) { return _this._input = el && el.input; }, onKeyDown: this.onInputKeyDown, onChange: this.inputOnChange, onFocus: this.base.handleFocus, onBlur: this.handleBlur, disabled: disabled, expanded: opened, owns: this.base.listBoxId, activedescendant: "option-".concat(this.base.guid, "-").concat(selectedIndex + virtual.skip), role: "combobox", ariaLabelledBy: this.props.ariaLabelledBy, ariaDescribedBy: this.props.ariaDescribedBy, render: this.props.valueRender }));
|
|
569
574
|
};
|
|
570
575
|
ComboBoxWithoutContext.prototype.triggerOnChange = function (item, state) {
|
|
571
576
|
var value = this.value;
|
|
@@ -604,7 +609,7 @@ var ComboBoxWithoutContext = /** @class */ (function (_super) {
|
|
|
604
609
|
/**
|
|
605
610
|
* @hidden
|
|
606
611
|
*/
|
|
607
|
-
ComboBoxWithoutContext.propTypes = __assign(__assign({}, DropDownBase.propTypes), { size: PropTypes.oneOf([null, 'small', 'medium', 'large']), rounded: PropTypes.oneOf([null, 'small', 'medium', 'large', 'full']), fillMode: PropTypes.oneOf([null, 'solid', 'flat', 'outline']), dataItemKey: PropTypes.string, groupField: PropTypes.string, suggest: PropTypes.bool, placeholder: PropTypes.string, allowCustom: PropTypes.bool, clearButton: PropTypes.bool, iconClassName: PropTypes.string, validationMessage: PropTypes.string, required: PropTypes.bool, id: PropTypes.string, ariaLabelledBy: PropTypes.string, ariaDescribedBy: PropTypes.string, list: PropTypes.any, valueRender: PropTypes.func });
|
|
612
|
+
ComboBoxWithoutContext.propTypes = __assign(__assign({}, DropDownBase.propTypes), { size: PropTypes.oneOf([null, 'small', 'medium', 'large']), rounded: PropTypes.oneOf([null, 'small', 'medium', 'large', 'full']), fillMode: PropTypes.oneOf([null, 'solid', 'flat', 'outline']), dataItemKey: PropTypes.string, groupField: PropTypes.string, suggest: PropTypes.bool, placeholder: PropTypes.string, allowCustom: PropTypes.bool, clearButton: PropTypes.bool, iconClassName: PropTypes.string, svgIcon: svgIconPropType, validationMessage: PropTypes.string, required: PropTypes.bool, id: PropTypes.string, ariaLabelledBy: PropTypes.string, ariaDescribedBy: PropTypes.string, list: PropTypes.any, valueRender: PropTypes.func });
|
|
608
613
|
/**
|
|
609
614
|
* @hidden
|
|
610
615
|
*/
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import { ComboBox } from './ComboBox';
|
|
3
3
|
import { FilterChangeEvent, ChangeEvent, OpenEvent, CloseEvent, FocusEvent, BlurEvent, PageChangeEvent } from './../common/events';
|
|
4
|
-
import { FormComponentProps } from '@progress/kendo-react-common';
|
|
4
|
+
import { FormComponentProps, SVGIcon } from '@progress/kendo-react-common';
|
|
5
5
|
import { VirtualizationSettings, DropDownsPopupSettings } from '../common/settings';
|
|
6
6
|
import { ListItemProps } from '../common/ListItem';
|
|
7
7
|
/**
|
|
@@ -71,6 +71,10 @@ export interface ComboBoxProps extends FormComponentProps {
|
|
|
71
71
|
* Sets CSS classes to the expand `icon` DOM element.
|
|
72
72
|
*/
|
|
73
73
|
iconClassName?: string;
|
|
74
|
+
/**
|
|
75
|
+
* Sets the specified SVG icon.
|
|
76
|
+
*/
|
|
77
|
+
svgIcon?: SVGIcon;
|
|
74
78
|
/**
|
|
75
79
|
* If `clearButton` is set to `true`, the ComboBox renders a button on hovering over the component. Clicking this button resets the value of the ComboBox to `undefined` and triggers the `change` event.
|
|
76
80
|
*/
|
|
@@ -25,9 +25,6 @@ export declare class DropDownListWithoutContext extends React.Component<DropDown
|
|
|
25
25
|
virtual: PropTypes.Requireable<PropTypes.InferProps<{
|
|
26
26
|
pageSize: PropTypes.Validator<number>;
|
|
27
27
|
skip: PropTypes.Validator<number>;
|
|
28
|
-
/**
|
|
29
|
-
* @hidden
|
|
30
|
-
*/
|
|
31
28
|
total: PropTypes.Validator<number>;
|
|
32
29
|
}>>;
|
|
33
30
|
onFilterChange: PropTypes.Requireable<(...args: any[]) => any>;
|
|
@@ -66,6 +63,11 @@ export declare class DropDownListWithoutContext extends React.Component<DropDown
|
|
|
66
63
|
delay: PropTypes.Requireable<number>;
|
|
67
64
|
ignoreCase: PropTypes.Requireable<boolean>;
|
|
68
65
|
iconClassName: PropTypes.Requireable<string>;
|
|
66
|
+
svgIcon: PropTypes.Requireable<PropTypes.InferProps<{
|
|
67
|
+
name: PropTypes.Validator<string>;
|
|
68
|
+
content: PropTypes.Validator<string>;
|
|
69
|
+
viewBox: PropTypes.Validator<string>;
|
|
70
|
+
}>>;
|
|
69
71
|
defaultItem: PropTypes.Requireable<any>;
|
|
70
72
|
valueRender: PropTypes.Requireable<(...args: any[]) => any>;
|
|
71
73
|
valueMap: PropTypes.Requireable<(...args: any[]) => any>;
|
|
@@ -86,6 +88,9 @@ export declare class DropDownListWithoutContext extends React.Component<DropDown
|
|
|
86
88
|
size: "small" | "medium" | "large" | null | undefined;
|
|
87
89
|
rounded: "small" | "medium" | "full" | "large" | null | undefined;
|
|
88
90
|
fillMode: "flat" | "outline" | "solid" | null | undefined;
|
|
91
|
+
/**
|
|
92
|
+
* @hidden
|
|
93
|
+
*/
|
|
89
94
|
popupSettings: {
|
|
90
95
|
height: string;
|
|
91
96
|
};
|
|
@@ -107,6 +112,7 @@ export declare class DropDownListWithoutContext extends React.Component<DropDown
|
|
|
107
112
|
private _filterInput;
|
|
108
113
|
private _valueDuringOnChange;
|
|
109
114
|
private _navigated;
|
|
115
|
+
private _inputId;
|
|
110
116
|
constructor(props: DropDownListProps);
|
|
111
117
|
/**
|
|
112
118
|
* @hidden
|
|
@@ -26,8 +26,9 @@ var __assign = (this && this.__assign) || function () {
|
|
|
26
26
|
};
|
|
27
27
|
import * as React from 'react';
|
|
28
28
|
import * as PropTypes from 'prop-types';
|
|
29
|
-
import { classNames, Keys, getTabIndex, createPropsContext, withPropsContext, kendoThemeMaps } from '@progress/kendo-react-common';
|
|
29
|
+
import { classNames, Keys, getTabIndex, createPropsContext, withPropsContext, kendoThemeMaps, IconWrap, svgIconPropType, guid } from '@progress/kendo-react-common';
|
|
30
30
|
import { FloatingLabel } from '@progress/kendo-react-labels';
|
|
31
|
+
import { caretAltDownIcon } from '@progress/kendo-svg-icons';
|
|
31
32
|
import ListContainer from '../common/ListContainer';
|
|
32
33
|
import ListFilter from '../common/ListFilter';
|
|
33
34
|
import ListDefaultItem from '../common/ListDefaultItem';
|
|
@@ -37,6 +38,8 @@ import { isPresent, getItemValue, sameCharsOnly, shuffleData, matchText, areSame
|
|
|
37
38
|
import { validatePackage } from '@progress/kendo-react-common';
|
|
38
39
|
import { packageMetadata } from '../package-metadata';
|
|
39
40
|
import { Button } from '@progress/kendo-react-buttons';
|
|
41
|
+
import { provideLocalizationService } from '@progress/kendo-react-intl';
|
|
42
|
+
import { dropDownListArrowBtnAriaLabel, messages } from '../messages';
|
|
40
43
|
var VALIDATION_MESSAGE = 'Please select a value from the list!';
|
|
41
44
|
var sizeMap = kendoThemeMaps.sizeMap, roundedMap = kendoThemeMaps.roundedMap;
|
|
42
45
|
/**
|
|
@@ -57,6 +60,7 @@ var DropDownListWithoutContext = /** @class */ (function (_super) {
|
|
|
57
60
|
_this._skipFocusEvent = false;
|
|
58
61
|
_this._filterInput = null;
|
|
59
62
|
_this._navigated = false;
|
|
63
|
+
_this._inputId = guid();
|
|
60
64
|
/**
|
|
61
65
|
* @hidden
|
|
62
66
|
*/
|
|
@@ -487,6 +491,7 @@ var DropDownListWithoutContext = /** @class */ (function (_super) {
|
|
|
487
491
|
DropDownListWithoutContext.prototype.render = function () {
|
|
488
492
|
var _a;
|
|
489
493
|
var _this = this;
|
|
494
|
+
var btnAriaLabel = provideLocalizationService(this).toLanguageString(dropDownListArrowBtnAriaLabel, messages[dropDownListArrowBtnAriaLabel]);
|
|
490
495
|
var _b = this.props, style = _b.style, className = _b.className, label = _b.label, dir = _b.dir, virtual = _b.virtual, size = _b.size, rounded = _b.rounded, fillMode = _b.fillMode;
|
|
491
496
|
var opened = this.props.opened !== undefined ? this.props.opened : this.state.opened;
|
|
492
497
|
var value = this.value;
|
|
@@ -503,7 +508,7 @@ var DropDownListWithoutContext = /** @class */ (function (_super) {
|
|
|
503
508
|
var _c = this.props, dataItemKey = _c.dataItemKey, _d = _c.data, data = _d === void 0 ? [] : _d, disabled = _c.disabled, tabIndex = _c.tabIndex, loading = _c.loading, iconClassName = _c.iconClassName, valueRender = _c.valueRender;
|
|
504
509
|
var focused = this.state.focused;
|
|
505
510
|
var selectedIndex = data.findIndex(function (i) { return areSame(i, value, dataItemKey); });
|
|
506
|
-
var valueDefaultRendering = (React.createElement("span", { className: "k-input-inner" },
|
|
511
|
+
var valueDefaultRendering = (React.createElement("span", { id: this._inputId, className: "k-input-inner" },
|
|
507
512
|
React.createElement("span", { className: "k-input-value-text" }, text)));
|
|
508
513
|
var valueElement = valueRender !== undefined ?
|
|
509
514
|
valueRender.call(undefined, valueDefaultRendering, value) : valueDefaultRendering;
|
|
@@ -518,10 +523,10 @@ var DropDownListWithoutContext = /** @class */ (function (_super) {
|
|
|
518
523
|
_a['k-required'] = this.required,
|
|
519
524
|
_a)), style: !label
|
|
520
525
|
? style
|
|
521
|
-
: __assign(__assign({}, style), { width: undefined }), dir: dir, onMouseDown: opened ? preventDefaultNonInputs : undefined, onFocus: this.handleFocus, onBlur: this.handleBlur, tabIndex: getTabIndex(tabIndex, disabled), accessKey: this.props.accessKey, onKeyDown: this.handleKeyDown, onKeyPress: this.handleKeyPress, onClick: disabled ? undefined : this.handleWrapperClick, role: 'combobox', "aria-required": this.required, "aria-disabled": disabled || undefined, "aria-haspopup": 'listbox', "aria-expanded": opened || false, "aria-owns": this.base.listBoxId, "aria-activedescendant": opened ? ('option-' + this.base.guid + '-' + (selectedIndex + (virtual ? virtual.skip : 0))) : undefined, "aria-label": this.props.ariaLabel || this.props.label, "aria-labelledby": this.props.ariaLabelledBy, "aria-describedby": this.props.ariaDescribedBy, id: this.props.id, title: this.props.title },
|
|
526
|
+
: __assign(__assign({}, style), { width: undefined }), dir: dir, onMouseDown: opened ? preventDefaultNonInputs : undefined, onFocus: this.handleFocus, onBlur: this.handleBlur, tabIndex: getTabIndex(tabIndex, disabled), accessKey: this.props.accessKey, onKeyDown: this.handleKeyDown, onKeyPress: this.handleKeyPress, onClick: disabled ? undefined : this.handleWrapperClick, role: 'combobox', "aria-required": this.required, "aria-disabled": disabled || undefined, "aria-haspopup": 'listbox', "aria-expanded": opened || false, "aria-owns": this.base.listBoxId, "aria-activedescendant": opened ? ('option-' + this.base.guid + '-' + (selectedIndex + (virtual ? virtual.skip : 0))) : undefined, "aria-label": this.props.ariaLabel || this.props.label, "aria-labelledby": this.props.ariaLabelledBy, "aria-describedby": this.props.ariaDescribedBy || this._inputId, id: this.props.id, title: this.props.title },
|
|
522
527
|
valueElement,
|
|
523
|
-
loading && React.createElement(
|
|
524
|
-
React.createElement(Button, { tabIndex: -1, type: "button", "aria-hidden": true, size: size, fillMode: fillMode, iconClass: iconClassName, className: "k-input-button", themeColor: 'base', icon: !iconClassName ? 'caret-alt-down' : undefined, onMouseDown: function (e) { return _this.state.focused && e.preventDefault(); } }),
|
|
528
|
+
loading && React.createElement(IconWrap, { className: "k-input-loading-icon", name: 'loading' }),
|
|
529
|
+
React.createElement(Button, { tabIndex: -1, type: "button", "aria-label": btnAriaLabel, "aria-hidden": true, size: size, fillMode: fillMode, iconClass: iconClassName, className: "k-input-button", themeColor: 'base', icon: !iconClassName ? 'caret-alt-down' : undefined, svgIcon: !iconClassName ? caretAltDownIcon : this.props.svgIcon, onMouseDown: function (e) { return _this.state.focused && e.preventDefault(); } }),
|
|
525
530
|
this.dummySelect(value),
|
|
526
531
|
this.renderListContainer()));
|
|
527
532
|
return label ? (React.createElement(FloatingLabel, { label: label, editorValue: text, editorValid: isValid, editorDisabled: this.props.disabled, style: { width: style ? style.width : undefined }, children: dropdownlist })) : dropdownlist;
|
|
@@ -583,7 +588,7 @@ var DropDownListWithoutContext = /** @class */ (function (_super) {
|
|
|
583
588
|
/**
|
|
584
589
|
* @hidden
|
|
585
590
|
*/
|
|
586
|
-
DropDownListWithoutContext.propTypes = __assign({ delay: PropTypes.number, ignoreCase: PropTypes.bool, iconClassName: PropTypes.string, defaultItem: PropTypes.any, valueRender: PropTypes.func, valueMap: PropTypes.func, validationMessage: PropTypes.string, required: PropTypes.bool, id: PropTypes.string, ariaLabelledBy: PropTypes.string, ariaDescribedBy: PropTypes.string, ariaLabel: PropTypes.string, leftRightKeysNavigation: PropTypes.bool, title: PropTypes.string }, DropDownBase.propTypes);
|
|
591
|
+
DropDownListWithoutContext.propTypes = __assign({ delay: PropTypes.number, ignoreCase: PropTypes.bool, iconClassName: PropTypes.string, svgIcon: svgIconPropType, defaultItem: PropTypes.any, valueRender: PropTypes.func, valueMap: PropTypes.func, validationMessage: PropTypes.string, required: PropTypes.bool, id: PropTypes.string, ariaLabelledBy: PropTypes.string, ariaDescribedBy: PropTypes.string, ariaLabel: PropTypes.string, leftRightKeysNavigation: PropTypes.bool, title: PropTypes.string }, DropDownBase.propTypes);
|
|
587
592
|
/**
|
|
588
593
|
* @hidden
|
|
589
594
|
*/
|
|
@@ -3,7 +3,7 @@ import { DropDownList } from './DropDownList';
|
|
|
3
3
|
import { FilterChangeEvent, ChangeEvent, OpenEvent, CloseEvent, FocusEvent, BlurEvent, PageChangeEvent } from './../common/events';
|
|
4
4
|
import { VirtualizationSettings, DropDownsPopupSettings } from '../common/settings';
|
|
5
5
|
import { ListItemProps } from '../common/ListItem';
|
|
6
|
-
import { FormComponentProps } from '@progress/kendo-react-common';
|
|
6
|
+
import { FormComponentProps, SVGIcon } from '@progress/kendo-react-common';
|
|
7
7
|
/**
|
|
8
8
|
* Represents the object of the `filterChange` DropDownList event.
|
|
9
9
|
*/
|
|
@@ -83,6 +83,10 @@ export interface DropDownListProps extends FormComponentProps {
|
|
|
83
83
|
* Sets CSS classes to the expand `icon` DOM element.
|
|
84
84
|
*/
|
|
85
85
|
iconClassName?: string;
|
|
86
|
+
/**
|
|
87
|
+
* Sets the specified SVG icon.
|
|
88
|
+
*/
|
|
89
|
+
svgIcon?: SVGIcon;
|
|
86
90
|
/**
|
|
87
91
|
* Sets the title attribute to the DropDownList DOM element.
|
|
88
92
|
*/
|
|
@@ -20,7 +20,7 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
|
20
20
|
};
|
|
21
21
|
import * as React from 'react';
|
|
22
22
|
import * as PropTypes from 'prop-types';
|
|
23
|
-
import { classNames, noop, useRtl, getTabIndex, Keys, mapTree, extendDataItem, guid, createPropsContext, kendoThemeMaps, usePropsContext } from '@progress/kendo-react-common';
|
|
23
|
+
import { classNames, noop, useRtl, getTabIndex, Keys, mapTree, extendDataItem, guid, createPropsContext, kendoThemeMaps, usePropsContext, IconWrap } from '@progress/kendo-react-common';
|
|
24
24
|
import { Popup } from '@progress/kendo-react-popup';
|
|
25
25
|
import { useLocalization } from '@progress/kendo-react-intl';
|
|
26
26
|
import { TreeView } from '@progress/kendo-react-treeview';
|
|
@@ -33,6 +33,7 @@ import { messages, clear, nodata } from './../messages';
|
|
|
33
33
|
import { FloatingLabel } from '@progress/kendo-react-labels';
|
|
34
34
|
import ListFilter from '../common/ListFilter';
|
|
35
35
|
import { Button } from '@progress/kendo-react-buttons';
|
|
36
|
+
import { xIcon, caretAltDownIcon } from '@progress/kendo-svg-icons';
|
|
36
37
|
var sizeMap = kendoThemeMaps.sizeMap, roundedMap = kendoThemeMaps.roundedMap;
|
|
37
38
|
var VALIDATION_MESSAGE = 'Please select a value from the list!';
|
|
38
39
|
var ValueHolder = function (props) {
|
|
@@ -354,10 +355,10 @@ export var DropDownTree = React.forwardRef(function (directProps, ref) {
|
|
|
354
355
|
_a)), tabIndex: tabIndex, accessKey: props.accessKey, id: id, style: label ? __assign(__assign({}, style), { width: undefined }) : style, dir: dir, ref: elementRef, onKeyDown: disabled ? undefined : onWrapperKeyDown, onMouseDown: onWrapperMouseDown, onClick: disabled ? undefined : onWrapperClick, onFocus: onFocus, onBlur: onBlur, role: "combobox", "aria-haspopup": "tree", "aria-expanded": isOpen, "aria-disabled": disabled, "aria-label": label, "aria-labelledby": props.ariaLabelledBy, "aria-describedby": props.ariaDescribedBy },
|
|
355
356
|
React.createElement("span", { className: "k-input-inner" },
|
|
356
357
|
React.createElement(ValueComponent, { item: value }, currentValueText || placeholder)),
|
|
357
|
-
props.loading && React.createElement(
|
|
358
|
+
props.loading && React.createElement(IconWrap, { className: "k-input-loading-icon", name: 'loading' }),
|
|
358
359
|
hasValue && !disabled && (React.createElement("span", { onClick: onClear, className: "k-clear-value", title: localization.toLanguageString(clear, messages[clear]), role: "button", tabIndex: -1, onMouseDown: function (e) { return e.preventDefault(); } },
|
|
359
|
-
React.createElement(
|
|
360
|
-
React.createElement(Button, { tabIndex: -1, type: "button", "aria-label": "select", className: "k-input-button", size: size, fillMode: fillMode, themeColor: "base", rounded: null, icon: "caret-alt-down" }),
|
|
360
|
+
React.createElement(IconWrap, { name: 'x', icon: xIcon }))),
|
|
361
|
+
React.createElement(Button, { tabIndex: -1, type: "button", "aria-label": "select", className: "k-input-button", size: size, fillMode: fillMode, themeColor: "base", rounded: null, icon: "caret-alt-down", svgIcon: caretAltDownIcon }),
|
|
361
362
|
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%' } },
|
|
362
363
|
React.createElement("option", { value: props.valueMap ? props.valueMap.call(undefined, value) : value })),
|
|
363
364
|
React.createElement(Popup, { className: classNames(popupSettings.className, { 'k-rtl': dir === 'rtl' }), popupClass: classNames(popupSettings.popupClass, 'k-list-container', 'k-dropdowntree-popup'), style: popupStyles, animate: popupSettings.animate, anchor: elementRef.current, show: isOpen, onOpen: onPopupOpened, onClose: onPopupClosed, appendTo: popupSettings.appendTo },
|
|
@@ -35,7 +35,8 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
|
35
35
|
};
|
|
36
36
|
import * as React from 'react';
|
|
37
37
|
import * as PropTypes from 'prop-types';
|
|
38
|
-
import { classNames, Keys, guid, createPropsContext, kendoThemeMaps, withPropsContext } from '@progress/kendo-react-common';
|
|
38
|
+
import { classNames, Keys, guid, createPropsContext, kendoThemeMaps, withPropsContext, IconWrap } from '@progress/kendo-react-common';
|
|
39
|
+
import { plusIcon } from '@progress/kendo-svg-icons';
|
|
39
40
|
import { FloatingLabel } from '@progress/kendo-react-labels';
|
|
40
41
|
import ListContainer from '../common/ListContainer';
|
|
41
42
|
import List from '../common/List';
|
|
@@ -275,7 +276,7 @@ var MultiSelectWithoutContext = /** @class */ (function (_super) {
|
|
|
275
276
|
_a)), key: "customitem", onClick: _this.customItemSelect, onMouseDown: preventDefault },
|
|
276
277
|
React.createElement("div", { className: classNames('k-list-item k-custom-item', { 'k-focus': isCustom(focusedType) }), style: { fontStyle: 'italic' } },
|
|
277
278
|
text,
|
|
278
|
-
React.createElement(
|
|
279
|
+
React.createElement(IconWrap, { name: 'plus', icon: plusIcon, style: { position: 'absolute', right: '0.5em' } }))));
|
|
279
280
|
return (React.createElement(ListContainer, __assign({}, listContainerProps),
|
|
280
281
|
header && React.createElement("div", { className: "k-list-header" }, header),
|
|
281
282
|
customItem,
|
|
@@ -589,7 +590,7 @@ var MultiSelectWithoutContext = /** @class */ (function (_super) {
|
|
|
589
590
|
_b["k-chip-list-".concat(sizeMap[size] || size)] = size,
|
|
590
591
|
_b)), role: "listbox", id: 'tagslist-' + this.base.guid }, 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 })),
|
|
591
592
|
this.renderSearchbar(id)),
|
|
592
|
-
loading && React.createElement(
|
|
593
|
+
loading && React.createElement(IconWrap, { className: "k-input-loading-icon", name: 'loading' }),
|
|
593
594
|
clearButton && React.createElement(ClearButton, { onClick: this.clearButtonClick }),
|
|
594
595
|
this.renderListContainer()));
|
|
595
596
|
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;
|
|
@@ -20,7 +20,7 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
|
20
20
|
};
|
|
21
21
|
import * as React from 'react';
|
|
22
22
|
import * as PropTypes from 'prop-types';
|
|
23
|
-
import { classNames, noop, useRtl, getTabIndex, Keys, guid, kendoThemeMaps, createPropsContext, usePropsContext } from '@progress/kendo-react-common';
|
|
23
|
+
import { classNames, noop, useRtl, getTabIndex, Keys, guid, kendoThemeMaps, createPropsContext, usePropsContext, IconWrap } from '@progress/kendo-react-common';
|
|
24
24
|
import { Popup } from '@progress/kendo-react-popup';
|
|
25
25
|
import { useLocalization } from '@progress/kendo-react-intl';
|
|
26
26
|
import { TreeView } from '@progress/kendo-react-treeview';
|
|
@@ -399,13 +399,13 @@ export var MultiSelectTree = React.forwardRef(function (directProps, ref) {
|
|
|
399
399
|
_a['k-loading'] = props.loading,
|
|
400
400
|
_a['k-required'] = required,
|
|
401
401
|
_a)), tabIndex: tabIndex, accessKey: props.accessKey, id: id, style: label ? __assign(__assign({}, style), { width: undefined }) : style, dir: dir, ref: elementRef, onKeyDown: disabled ? undefined : onWrapperKeyDown, onMouseDown: onWrapperMouseDown, onFocus: onFocus, onBlur: onBlur, role: "combobox", "aria-haspopup": "true", "aria-expanded": isOpen, "aria-disabled": disabled, "aria-label": label, "aria-labelledby": props.ariaLabelledBy, "aria-describedby": props.ariaDescribedBy, onClick: disabled ? undefined : onWrapperClick },
|
|
402
|
-
|
|
402
|
+
React.createElement("div", { id: 'tagslist-' + id, className: classNames('k-input-values k-chip-list k-selection-multiple', (_b = {},
|
|
403
403
|
_b["k-chip-list-".concat(sizeMap[size] || size)] = size,
|
|
404
|
-
_b)),
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
props.loading && React.createElement(
|
|
404
|
+
_b)) }, tagsToRenderRef.current.length > 0 && (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 }))),
|
|
405
|
+
!hasValue &&
|
|
406
|
+
React.createElement("span", { className: "k-input-inner", role: 'combobox', tabIndex: tabIndex, "aria-expanded": isOpen, "aria-describedby": 'tagslist-' + id, "aria-label": props.ariaLabelledBy },
|
|
407
|
+
React.createElement("span", { className: "k-input-value-text" }, "\u00A0")),
|
|
408
|
+
props.loading && React.createElement(IconWrap, { className: "k-input-loading-icon", name: 'loading' }),
|
|
409
409
|
hasValue && !disabled && React.createElement(ClearButton, { onClick: onClear }),
|
|
410
410
|
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%' } },
|
|
411
411
|
React.createElement("option", { value: props.valueMap ? props.valueMap.call(undefined, value) : value })),
|
|
@@ -16,6 +16,8 @@ var __extends = (this && this.__extends) || (function () {
|
|
|
16
16
|
import * as React from 'react';
|
|
17
17
|
import { registerForLocalization, provideLocalizationService } from '@progress/kendo-react-intl';
|
|
18
18
|
import { messages, clear } from '../messages';
|
|
19
|
+
import { IconWrap } from '@progress/kendo-react-common';
|
|
20
|
+
import { xIcon } from '@progress/kendo-svg-icons';
|
|
19
21
|
/**
|
|
20
22
|
* @hidden
|
|
21
23
|
*/
|
|
@@ -29,7 +31,7 @@ var ClearButton = /** @class */ (function (_super) {
|
|
|
29
31
|
ClearButton.prototype.render = function () {
|
|
30
32
|
var title = provideLocalizationService(this).toLanguageString(clear, messages[clear]);
|
|
31
33
|
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(
|
|
34
|
+
React.createElement(IconWrap, { name: 'x', icon: xIcon })));
|
|
33
35
|
};
|
|
34
36
|
return ClearButton;
|
|
35
37
|
}(React.Component));
|
|
@@ -14,7 +14,8 @@ var __extends = (this && this.__extends) || (function () {
|
|
|
14
14
|
};
|
|
15
15
|
})();
|
|
16
16
|
import * as React from 'react';
|
|
17
|
-
import {
|
|
17
|
+
import { searchIcon } from '@progress/kendo-svg-icons';
|
|
18
|
+
import { kendoThemeMaps, classNames, IconWrap } from '@progress/kendo-react-common';
|
|
18
19
|
var sizeMap = kendoThemeMaps.sizeMap, roundedMap = kendoThemeMaps.roundedMap;
|
|
19
20
|
/**
|
|
20
21
|
* @hidden
|
|
@@ -36,7 +37,7 @@ var ListFilter = /** @class */ (function (_super) {
|
|
|
36
37
|
_a["k-rounded-".concat(roundedMap[rounded] || rounded)] = rounded,
|
|
37
38
|
_a["k-input-".concat(fillMode)] = fillMode,
|
|
38
39
|
_a)) },
|
|
39
|
-
React.createElement(
|
|
40
|
+
React.createElement(IconWrap, { className: "k-input-icon", name: 'search', icon: searchIcon }),
|
|
40
41
|
React.createElement("input", { ref: inputRef ? inputRef : function (input) { return _this.input = input; }, value: this.props.value || '', className: "k-input-inner", onChange: this.props.onChange, onKeyDown: this.props.onKeyDown, tabIndex: this.props.tabIndex, onClick: function (e) { return e.stopPropagation(); } }))));
|
|
41
42
|
};
|
|
42
43
|
return ListFilter;
|
|
@@ -6,10 +6,25 @@ export declare const nodata = "dropdowns.nodata";
|
|
|
6
6
|
* @hidden
|
|
7
7
|
*/
|
|
8
8
|
export declare const clear = "dropdowns.clear";
|
|
9
|
+
/**
|
|
10
|
+
* @hidden
|
|
11
|
+
*/
|
|
12
|
+
export declare const comboArrowBtnAriaLabelExpand = "dropdowns.comboArrowBtnAriaLabelExpand";
|
|
13
|
+
/**
|
|
14
|
+
* @hidden
|
|
15
|
+
*/
|
|
16
|
+
export declare const comboArrowBtnAriaLabelCollapse = "dropdowns.comboArrowBtnAriaLabelCollapse";
|
|
17
|
+
/**
|
|
18
|
+
* @hidden
|
|
19
|
+
*/
|
|
20
|
+
export declare const dropDownListArrowBtnAriaLabel = "dropdowns.dropDownListArrowBtnAriaLabel";
|
|
9
21
|
/**
|
|
10
22
|
* @hidden
|
|
11
23
|
*/
|
|
12
24
|
export declare const messages: {
|
|
13
25
|
"dropdowns.clear": string;
|
|
14
26
|
"dropdowns.nodata": string;
|
|
27
|
+
"dropdowns.comboArrowBtnAriaLabelExpand": string;
|
|
28
|
+
"dropdowns.comboArrowBtnAriaLabelCollapse": string;
|
|
29
|
+
"dropdowns.dropDownListArrowBtnAriaLabel": string;
|
|
15
30
|
};
|
|
@@ -7,10 +7,25 @@ export var nodata = 'dropdowns.nodata';
|
|
|
7
7
|
* @hidden
|
|
8
8
|
*/
|
|
9
9
|
export var clear = 'dropdowns.clear';
|
|
10
|
+
/**
|
|
11
|
+
* @hidden
|
|
12
|
+
*/
|
|
13
|
+
export var comboArrowBtnAriaLabelExpand = 'dropdowns.comboArrowBtnAriaLabelExpand';
|
|
14
|
+
/**
|
|
15
|
+
* @hidden
|
|
16
|
+
*/
|
|
17
|
+
export var comboArrowBtnAriaLabelCollapse = 'dropdowns.comboArrowBtnAriaLabelCollapse';
|
|
18
|
+
/**
|
|
19
|
+
* @hidden
|
|
20
|
+
*/
|
|
21
|
+
export var dropDownListArrowBtnAriaLabel = 'dropdowns.dropDownListArrowBtnAriaLabel';
|
|
10
22
|
/**
|
|
11
23
|
* @hidden
|
|
12
24
|
*/
|
|
13
25
|
export var messages = (_a = {},
|
|
14
26
|
_a[clear] = 'clear',
|
|
15
27
|
_a[nodata] = 'NO DATA FOUND.',
|
|
28
|
+
_a[comboArrowBtnAriaLabelExpand] = 'expand combobox',
|
|
29
|
+
_a[comboArrowBtnAriaLabelCollapse] = 'collapse combobox',
|
|
30
|
+
_a[dropDownListArrowBtnAriaLabel] = 'select',
|
|
16
31
|
_a);
|
|
@@ -5,7 +5,7 @@ export var packageMetadata = {
|
|
|
5
5
|
name: '@progress/kendo-react-dropdowns',
|
|
6
6
|
productName: 'KendoReact',
|
|
7
7
|
productCodes: ['KENDOUIREACT', 'KENDOUICOMPLETE'],
|
|
8
|
-
publishDate:
|
|
8
|
+
publishDate: 1673462299,
|
|
9
9
|
version: '',
|
|
10
10
|
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'
|
|
11
11
|
};
|
|
@@ -322,7 +322,7 @@ var AutoCompleteWithoutContext = /** @class */ (function (_super) {
|
|
|
322
322
|
? style
|
|
323
323
|
: __assign(__assign({}, style), { width: undefined }), dir: dir },
|
|
324
324
|
this.renderSearchBar(value || '', id),
|
|
325
|
-
loading && React.createElement(
|
|
325
|
+
loading && React.createElement(kendo_react_common_1.IconWrap, { className: "k-input-loading-icon", name: 'loading' }),
|
|
326
326
|
renderClearButton && !loading && React.createElement(ClearButton_1.default, { onClick: this.clearButtonClick, key: "clearbutton" }),
|
|
327
327
|
this.renderListContainer()));
|
|
328
328
|
return label
|
|
@@ -373,7 +373,7 @@ var AutoCompleteWithoutContext = /** @class */ (function (_super) {
|
|
|
373
373
|
var _a = this.props, placeholder = _a.placeholder, tabIndex = _a.tabIndex, disabled = _a.disabled, readonly = _a.readonly;
|
|
374
374
|
var focused = this.state.focused;
|
|
375
375
|
var opened = this.props.opened !== undefined ? this.props.opened : this.state.opened;
|
|
376
|
-
return (React.createElement(SearchBar_1.default, { id: id, placeholder: placeholder, tabIndex: tabIndex
|
|
376
|
+
return (React.createElement(SearchBar_1.default, { id: id, placeholder: placeholder, tabIndex: tabIndex, accessKey: this.props.accessKey, value: value, suggestedText: this._suggested, focused: focused, name: this.props.name, ref: function (searchbar) { return _this._input = searchbar && searchbar.input; }, onKeyDown: this.onInputKeyDown, onChange: this.onChangeHandler, onFocus: base.handleFocus, onBlur: this.handleBlur, disabled: disabled, readOnly: readonly, expanded: opened, owns: base.listBoxId, activedescendant: 'option-' + base.guid + '-' + this.focusedIndex(), role: "combobox", ariaLabelledBy: this.props.ariaLabelledBy, ariaDescribedBy: this.props.ariaDescribedBy, render: this.props.valueRender }));
|
|
377
377
|
};
|
|
378
378
|
AutoCompleteWithoutContext.prototype.renderListContainer = function () {
|
|
379
379
|
var _a;
|
|
@@ -34,6 +34,11 @@ export declare class ComboBoxWithoutContext extends React.Component<ComboBoxProp
|
|
|
34
34
|
allowCustom: PropTypes.Requireable<boolean>;
|
|
35
35
|
clearButton: PropTypes.Requireable<boolean>;
|
|
36
36
|
iconClassName: PropTypes.Requireable<string>;
|
|
37
|
+
svgIcon: PropTypes.Requireable<PropTypes.InferProps<{
|
|
38
|
+
name: PropTypes.Validator<string>;
|
|
39
|
+
content: PropTypes.Validator<string>;
|
|
40
|
+
viewBox: PropTypes.Validator<string>;
|
|
41
|
+
}>>;
|
|
37
42
|
validationMessage: PropTypes.Requireable<string>;
|
|
38
43
|
required: PropTypes.Requireable<boolean>;
|
|
39
44
|
id: PropTypes.Requireable<string>;
|
|
@@ -76,7 +81,9 @@ export declare class ComboBoxWithoutContext extends React.Component<ComboBoxProp
|
|
|
76
81
|
onOpen: PropTypes.Requireable<(...args: any[]) => any>;
|
|
77
82
|
onClose: PropTypes.Requireable<(...args: any[]) => any>;
|
|
78
83
|
onFocus: PropTypes.Requireable<(...args: any[]) => any>;
|
|
79
|
-
onBlur: PropTypes.Requireable<(...args: any[]) => any>;
|
|
84
|
+
onBlur: PropTypes.Requireable<(...args: any[]) => any>; /**
|
|
85
|
+
* @hidden
|
|
86
|
+
*/
|
|
80
87
|
onChange: PropTypes.Requireable<(...args: any[]) => any>;
|
|
81
88
|
itemRender: PropTypes.Requireable<(...args: any[]) => any>;
|
|
82
89
|
listNoDataRender: PropTypes.Requireable<(...args: any[]) => any>;
|
|
@@ -40,6 +40,9 @@ var kendo_react_common_2 = require("@progress/kendo-react-common");
|
|
|
40
40
|
var package_metadata_1 = require("../package-metadata");
|
|
41
41
|
var ClearButton_1 = require("../common/ClearButton");
|
|
42
42
|
var kendo_react_buttons_1 = require("@progress/kendo-react-buttons");
|
|
43
|
+
var kendo_svg_icons_1 = require("@progress/kendo-svg-icons");
|
|
44
|
+
var messages_1 = require("./../messages");
|
|
45
|
+
var kendo_react_intl_1 = require("@progress/kendo-react-intl");
|
|
43
46
|
var VALIDATION_MESSAGE = 'Please enter a valid value!';
|
|
44
47
|
var sizeMap = kendo_react_common_1.kendoThemeMaps.sizeMap, roundedMap = kendo_react_common_1.kendoThemeMaps.roundedMap;
|
|
45
48
|
/** @hidden */
|
|
@@ -366,7 +369,9 @@ var ComboBoxWithoutContext = /** @class */ (function (_super) {
|
|
|
366
369
|
*/
|
|
367
370
|
ComboBoxWithoutContext.prototype.render = function () {
|
|
368
371
|
var _a;
|
|
369
|
-
var
|
|
372
|
+
var btnAriaLabelExpand = (0, kendo_react_intl_1.provideLocalizationService)(this).toLanguageString(messages_1.comboArrowBtnAriaLabelExpand, messages_1.messages[messages_1.comboArrowBtnAriaLabelExpand]);
|
|
373
|
+
var btnAriaLabelCollapse = (0, kendo_react_intl_1.provideLocalizationService)(this).toLanguageString(messages_1.comboArrowBtnAriaLabelCollapse, messages_1.messages[messages_1.comboArrowBtnAriaLabelCollapse]);
|
|
374
|
+
var _b = this.props, dir = _b.dir, disabled = _b.disabled, _c = _b.clearButton, clearButton = _c === void 0 ? ComboBoxWithoutContext.defaultProps.clearButton : _c, label = _b.label, textField = _b.textField, className = _b.className, style = _b.style, loading = _b.loading, iconClassName = _b.iconClassName, virtual = _b.virtual, size = _b.size, rounded = _b.rounded, fillMode = _b.fillMode, _d = _b.opened, opened = _d === void 0 ? this.state.opened : _d;
|
|
370
375
|
var isValid = !this.validityStyles || this.validity.valid;
|
|
371
376
|
var text = this.props.filter !== undefined ? this.props.filter : this.state.text;
|
|
372
377
|
var selectedItemText = (0, utils_1.getItemValue)(this.value, textField);
|
|
@@ -393,7 +398,7 @@ var ComboBoxWithoutContext = /** @class */ (function (_super) {
|
|
|
393
398
|
this.renderSearchBar(inputText || '', id),
|
|
394
399
|
renderClearButton && !loading && React.createElement(ClearButton_1.default, { onClick: this.clearButtonClick, key: "clearbutton" }),
|
|
395
400
|
loading && React.createElement("span", { className: "k-icon k-i-loading k-input-loading-icon", key: "loading" }),
|
|
396
|
-
React.createElement(kendo_react_buttons_1.Button, { tabIndex: -1, type: "button", icon: !iconClassName ? 'caret-alt-down' : undefined, iconClass: iconClassName, size: size, fillMode: fillMode, rounded: null, themeColor: 'base', className: "k-input-button", onClick: this.toggleBtnClick, onMouseDown: function (e) { return e.preventDefault(); } }),
|
|
401
|
+
React.createElement(kendo_react_buttons_1.Button, { tabIndex: -1, type: "button", "aria-label": opened ? btnAriaLabelCollapse : btnAriaLabelExpand, icon: !iconClassName ? 'caret-alt-down' : undefined, svgIcon: !iconClassName ? kendo_svg_icons_1.caretAltDownIcon : this.props.svgIcon, iconClass: iconClassName, size: size, fillMode: fillMode, rounded: null, themeColor: 'base', className: "k-input-button", onClick: this.toggleBtnClick, onMouseDown: function (e) { return e.preventDefault(); } }),
|
|
397
402
|
this.renderListContainer()));
|
|
398
403
|
return label
|
|
399
404
|
? (React.createElement(kendo_react_labels_1.FloatingLabel, { label: label, editorId: id, editorValue: inputText, editorValid: isValid, editorDisabled: disabled, style: { width: style ? style.width : undefined }, children: combobox }))
|
|
@@ -568,7 +573,7 @@ var ComboBoxWithoutContext = /** @class */ (function (_super) {
|
|
|
568
573
|
if (this._suggested && !(0, utils_1.areSame)(this._valueOnDidUpdate, value, dataItemKey)) {
|
|
569
574
|
this._suggested = '';
|
|
570
575
|
}
|
|
571
|
-
return (React.createElement(SearchBar_1.default, { id: id, placeholder: placeholder, tabIndex: tabIndex
|
|
576
|
+
return (React.createElement(SearchBar_1.default, { id: id, placeholder: placeholder, tabIndex: tabIndex, accessKey: this.props.accessKey, value: text + this._suggested, suggestedText: this._suggested, ref: function (el) { return _this._input = el && el.input; }, onKeyDown: this.onInputKeyDown, onChange: this.inputOnChange, onFocus: this.base.handleFocus, onBlur: this.handleBlur, disabled: disabled, expanded: opened, owns: this.base.listBoxId, activedescendant: "option-".concat(this.base.guid, "-").concat(selectedIndex + virtual.skip), role: "combobox", ariaLabelledBy: this.props.ariaLabelledBy, ariaDescribedBy: this.props.ariaDescribedBy, render: this.props.valueRender }));
|
|
572
577
|
};
|
|
573
578
|
ComboBoxWithoutContext.prototype.triggerOnChange = function (item, state) {
|
|
574
579
|
var value = this.value;
|
|
@@ -607,7 +612,7 @@ var ComboBoxWithoutContext = /** @class */ (function (_super) {
|
|
|
607
612
|
/**
|
|
608
613
|
* @hidden
|
|
609
614
|
*/
|
|
610
|
-
ComboBoxWithoutContext.propTypes = __assign(__assign({}, DropDownBase_1.default.propTypes), { size: PropTypes.oneOf([null, 'small', 'medium', 'large']), rounded: PropTypes.oneOf([null, 'small', 'medium', 'large', 'full']), fillMode: PropTypes.oneOf([null, 'solid', 'flat', 'outline']), dataItemKey: PropTypes.string, groupField: PropTypes.string, suggest: PropTypes.bool, placeholder: PropTypes.string, allowCustom: PropTypes.bool, clearButton: PropTypes.bool, iconClassName: PropTypes.string, validationMessage: PropTypes.string, required: PropTypes.bool, id: PropTypes.string, ariaLabelledBy: PropTypes.string, ariaDescribedBy: PropTypes.string, list: PropTypes.any, valueRender: PropTypes.func });
|
|
615
|
+
ComboBoxWithoutContext.propTypes = __assign(__assign({}, DropDownBase_1.default.propTypes), { size: PropTypes.oneOf([null, 'small', 'medium', 'large']), rounded: PropTypes.oneOf([null, 'small', 'medium', 'large', 'full']), fillMode: PropTypes.oneOf([null, 'solid', 'flat', 'outline']), dataItemKey: PropTypes.string, groupField: PropTypes.string, suggest: PropTypes.bool, placeholder: PropTypes.string, allowCustom: PropTypes.bool, clearButton: PropTypes.bool, iconClassName: PropTypes.string, svgIcon: kendo_react_common_1.svgIconPropType, validationMessage: PropTypes.string, required: PropTypes.bool, id: PropTypes.string, ariaLabelledBy: PropTypes.string, ariaDescribedBy: PropTypes.string, list: PropTypes.any, valueRender: PropTypes.func });
|
|
611
616
|
/**
|
|
612
617
|
* @hidden
|
|
613
618
|
*/
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import { ComboBox } from './ComboBox';
|
|
3
3
|
import { FilterChangeEvent, ChangeEvent, OpenEvent, CloseEvent, FocusEvent, BlurEvent, PageChangeEvent } from './../common/events';
|
|
4
|
-
import { FormComponentProps } from '@progress/kendo-react-common';
|
|
4
|
+
import { FormComponentProps, SVGIcon } from '@progress/kendo-react-common';
|
|
5
5
|
import { VirtualizationSettings, DropDownsPopupSettings } from '../common/settings';
|
|
6
6
|
import { ListItemProps } from '../common/ListItem';
|
|
7
7
|
/**
|
|
@@ -71,6 +71,10 @@ export interface ComboBoxProps extends FormComponentProps {
|
|
|
71
71
|
* Sets CSS classes to the expand `icon` DOM element.
|
|
72
72
|
*/
|
|
73
73
|
iconClassName?: string;
|
|
74
|
+
/**
|
|
75
|
+
* Sets the specified SVG icon.
|
|
76
|
+
*/
|
|
77
|
+
svgIcon?: SVGIcon;
|
|
74
78
|
/**
|
|
75
79
|
* If `clearButton` is set to `true`, the ComboBox renders a button on hovering over the component. Clicking this button resets the value of the ComboBox to `undefined` and triggers the `change` event.
|
|
76
80
|
*/
|