@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.
Files changed (33) hide show
  1. package/dist/cdn/js/kendo-react-dropdowns.js +1 -1
  2. package/dist/es/AutoComplete/AutoComplete.js +3 -3
  3. package/dist/es/ComboBox/ComboBox.d.ts +8 -1
  4. package/dist/es/ComboBox/ComboBox.js +10 -5
  5. package/dist/es/ComboBox/ComboBoxProps.d.ts +5 -1
  6. package/dist/es/DropDownList/DropDownList.d.ts +9 -3
  7. package/dist/es/DropDownList/DropDownList.js +11 -6
  8. package/dist/es/DropDownList/DropDownListProps.d.ts +5 -1
  9. package/dist/es/DropDownTree/DropDownTree.js +5 -4
  10. package/dist/es/MultiSelect/MultiSelect.js +4 -3
  11. package/dist/es/MultiSelectTree/MultiSelectTree.js +7 -7
  12. package/dist/es/common/ClearButton.js +3 -1
  13. package/dist/es/common/ListFilter.js +3 -2
  14. package/dist/es/messages/index.d.ts +15 -0
  15. package/dist/es/messages/index.js +15 -0
  16. package/dist/es/package-metadata.js +1 -1
  17. package/dist/npm/AutoComplete/AutoComplete.js +2 -2
  18. package/dist/npm/ComboBox/ComboBox.d.ts +8 -1
  19. package/dist/npm/ComboBox/ComboBox.js +9 -4
  20. package/dist/npm/ComboBox/ComboBoxProps.d.ts +5 -1
  21. package/dist/npm/DropDownList/DropDownList.d.ts +9 -3
  22. package/dist/npm/DropDownList/DropDownList.js +10 -5
  23. package/dist/npm/DropDownList/DropDownListProps.d.ts +5 -1
  24. package/dist/npm/DropDownTree/DropDownTree.js +4 -3
  25. package/dist/npm/MultiSelect/MultiSelect.js +3 -2
  26. package/dist/npm/MultiSelectTree/MultiSelectTree.js +6 -6
  27. package/dist/npm/common/ClearButton.js +3 -1
  28. package/dist/npm/common/ListFilter.js +2 -1
  29. package/dist/npm/messages/index.d.ts +15 -0
  30. package/dist/npm/messages/index.js +16 -1
  31. package/dist/npm/package-metadata.js +1 -1
  32. package/dist/systemjs/kendo-react-dropdowns.js +1 -1
  33. 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("span", { className: "k-icon k-i-loading k-input-loading-icon" }),
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 || undefined, 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 }));
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 _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;
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 || undefined, 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 }));
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("span", { className: "k-icon k-i-loading k-input-loading-icon", key: "loading" }),
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("span", { className: "k-icon k-i-loading k-input-loading-icon" }),
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("span", { className: "k-icon k-i-x" }))),
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("span", { className: "k-icon k-i-plus", style: { position: 'absolute', right: '0.5em' } }))));
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("span", { className: "k-icon k-i-loading k-input-loading-icon" }),
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
- tagsToRenderRef.current.length > 0 && (React.createElement("div", { className: classNames('k-input-values k-chip-list k-selection-multiple', (_b = {},
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)), role: "listbox", id: 'tagslist-' + id },
405
- 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 }))),
406
- !hasValue && React.createElement("span", { className: "k-input-inner" },
407
- React.createElement("span", { className: "k-input-value-text" }, "\u00A0")),
408
- props.loading && React.createElement("span", { className: "k-icon k-i-loading k-input-loading-icon" }),
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("span", { className: "k-icon k-i-x" })));
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 { kendoThemeMaps, classNames } from '@progress/kendo-react-common';
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("span", { className: "k-input-icon k-icon k-i-search" }),
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: 1673300612,
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("span", { className: "k-icon k-i-loading k-input-loading-icon" }),
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 || undefined, 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 }));
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 _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;
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 || undefined, 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 }));
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
  */