rsuite 5.50.0 → 5.51.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (177) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/CheckTreePicker/styles/index.less +3 -3
  3. package/DatePicker/styles/index.less +1 -1
  4. package/Form/styles/mixin.less +1 -2
  5. package/InputGroup/styles/index.less +0 -14
  6. package/InputPicker/styles/index.less +1 -1
  7. package/Picker/styles/index.less +2 -2
  8. package/Picker/styles/mixin.less +3 -3
  9. package/TagInput/styles/index.less +1 -1
  10. package/TagPicker/styles/index.less +5 -1
  11. package/TreePicker/styles/index.less +2 -2
  12. package/cjs/@types/common.d.ts +8 -0
  13. package/cjs/AutoComplete/AutoComplete.js +14 -11
  14. package/cjs/AutoComplete/Combobox.d.ts +8 -0
  15. package/cjs/AutoComplete/Combobox.js +31 -0
  16. package/cjs/Calendar/CalendarContainer.js +35 -37
  17. package/cjs/Cascader/Cascader.js +12 -11
  18. package/cjs/Cascader/DropdownMenu.d.ts +3 -20
  19. package/cjs/Cascader/DropdownMenu.js +48 -48
  20. package/cjs/Cascader/TreeView.d.ts +24 -0
  21. package/cjs/Cascader/TreeView.js +174 -0
  22. package/cjs/CheckPicker/CheckPicker.js +9 -8
  23. package/cjs/CheckTreePicker/CheckTreeNode.d.ts +2 -2
  24. package/cjs/CheckTreePicker/CheckTreeNode.js +31 -59
  25. package/cjs/CheckTreePicker/CheckTreePicker.js +20 -20
  26. package/cjs/DatePicker/DatePicker.js +5 -6
  27. package/cjs/DateRangePicker/DateRangePicker.js +3 -4
  28. package/cjs/Form/Form.d.ts +14 -0
  29. package/cjs/Form/Form.js +39 -30
  30. package/cjs/Form/FormContext.d.ts +1 -0
  31. package/cjs/FormControl/FormControl.js +40 -18
  32. package/cjs/FormGroup/FormGroup.js +2 -1
  33. package/cjs/InputPicker/InputPicker.js +46 -29
  34. package/cjs/InputPicker/InputSearch.js +3 -15
  35. package/cjs/InputPicker/TagList.d.ts +3 -0
  36. package/cjs/InputPicker/TagList.js +29 -0
  37. package/cjs/InputPicker/TextBox.d.ts +18 -0
  38. package/cjs/InputPicker/TextBox.js +48 -0
  39. package/cjs/MultiCascader/MultiCascader.js +13 -10
  40. package/cjs/MultiCascader/{DropdownMenu.d.ts → TreeView.d.ts} +3 -3
  41. package/cjs/MultiCascader/{DropdownMenu.js → TreeView.js} +77 -74
  42. package/{esm/Picker/DropdownMenuCheckItem.d.ts → cjs/Picker/ListCheckItem.d.ts} +3 -3
  43. package/cjs/Picker/{DropdownMenuCheckItem.js → ListCheckItem.js} +14 -30
  44. package/{esm/Picker/DropdownMenuItem.d.ts → cjs/Picker/ListItem.d.ts} +4 -4
  45. package/cjs/Picker/{DropdownMenuItem.js → ListItem.js} +15 -24
  46. package/cjs/Picker/ListItemGroup.d.ts +6 -0
  47. package/cjs/Picker/{DropdownMenuGroup.js → ListItemGroup.js} +3 -9
  48. package/cjs/Picker/Listbox.d.ts +35 -0
  49. package/cjs/Picker/{DropdownMenu.js → Listbox.js} +49 -64
  50. package/cjs/Picker/{PickerOverlay.d.ts → PickerPopup.d.ts} +3 -3
  51. package/cjs/Picker/{PickerOverlay.js → PickerPopup.js} +9 -7
  52. package/cjs/Picker/PickerToggle.d.ts +1 -1
  53. package/cjs/Picker/PickerToggle.js +16 -9
  54. package/cjs/Picker/PickerToggleTrigger.d.ts +15 -0
  55. package/cjs/Picker/PickerToggleTrigger.js +21 -5
  56. package/cjs/Picker/SearchBar.js +7 -9
  57. package/cjs/Picker/TreeView.d.ts +7 -0
  58. package/cjs/Picker/TreeView.js +31 -0
  59. package/cjs/Picker/hooks/index.d.ts +6 -0
  60. package/cjs/Picker/hooks/index.js +18 -0
  61. package/cjs/Picker/hooks/useCombobox.d.ts +7 -0
  62. package/cjs/Picker/hooks/useCombobox.js +22 -0
  63. package/cjs/Picker/hooks/useFocusItemValue.d.ts +30 -0
  64. package/cjs/Picker/hooks/useFocusItemValue.js +246 -0
  65. package/cjs/Picker/hooks/usePickerClassName.d.ts +21 -0
  66. package/cjs/Picker/hooks/usePickerClassName.js +39 -0
  67. package/cjs/Picker/{usePickerRef.d.ts → hooks/usePickerRef.d.ts} +2 -2
  68. package/cjs/Picker/{usePickerRef.js → hooks/usePickerRef.js} +1 -1
  69. package/cjs/Picker/hooks/useSearch.d.ts +18 -0
  70. package/cjs/Picker/hooks/useSearch.js +57 -0
  71. package/cjs/Picker/hooks/useToggleKeyDownEvent.d.ts +25 -0
  72. package/cjs/Picker/hooks/useToggleKeyDownEvent.js +101 -0
  73. package/cjs/Picker/index.d.ts +7 -6
  74. package/cjs/Picker/index.js +26 -19
  75. package/cjs/Picker/propTypes.d.ts +0 -6
  76. package/cjs/Picker/propTypes.js +0 -5
  77. package/cjs/Picker/utils.d.ts +2 -96
  78. package/cjs/Picker/utils.js +1 -406
  79. package/cjs/SelectPicker/SelectPicker.js +8 -8
  80. package/cjs/TagInput/index.js +4 -0
  81. package/cjs/TreePicker/TreeNode.d.ts +2 -2
  82. package/cjs/TreePicker/TreeNode.js +22 -56
  83. package/cjs/TreePicker/TreePicker.js +19 -20
  84. package/dist/rsuite-no-reset-rtl.css +109 -117
  85. package/dist/rsuite-no-reset-rtl.min.css +1 -1
  86. package/dist/rsuite-no-reset-rtl.min.css.map +1 -1
  87. package/dist/rsuite-no-reset.css +109 -117
  88. package/dist/rsuite-no-reset.min.css +1 -1
  89. package/dist/rsuite-no-reset.min.css.map +1 -1
  90. package/dist/rsuite-rtl.css +109 -117
  91. package/dist/rsuite-rtl.min.css +1 -1
  92. package/dist/rsuite-rtl.min.css.map +1 -1
  93. package/dist/rsuite.css +109 -117
  94. package/dist/rsuite.js +184 -74
  95. package/dist/rsuite.js.map +1 -1
  96. package/dist/rsuite.min.css +1 -1
  97. package/dist/rsuite.min.css.map +1 -1
  98. package/dist/rsuite.min.js +1 -1
  99. package/dist/rsuite.min.js.map +1 -1
  100. package/esm/@types/common.d.ts +8 -0
  101. package/esm/AutoComplete/AutoComplete.js +15 -12
  102. package/esm/AutoComplete/Combobox.d.ts +8 -0
  103. package/esm/AutoComplete/Combobox.js +25 -0
  104. package/esm/Calendar/CalendarContainer.js +37 -39
  105. package/esm/Cascader/Cascader.js +13 -12
  106. package/esm/Cascader/DropdownMenu.d.ts +3 -20
  107. package/esm/Cascader/DropdownMenu.js +50 -49
  108. package/esm/Cascader/TreeView.d.ts +24 -0
  109. package/esm/Cascader/TreeView.js +167 -0
  110. package/esm/CheckPicker/CheckPicker.js +10 -9
  111. package/esm/CheckTreePicker/CheckTreeNode.d.ts +2 -2
  112. package/esm/CheckTreePicker/CheckTreeNode.js +33 -61
  113. package/esm/CheckTreePicker/CheckTreePicker.js +21 -21
  114. package/esm/DatePicker/DatePicker.js +5 -6
  115. package/esm/DateRangePicker/DateRangePicker.js +3 -4
  116. package/esm/Form/Form.d.ts +14 -0
  117. package/esm/Form/Form.js +41 -32
  118. package/esm/Form/FormContext.d.ts +1 -0
  119. package/esm/FormControl/FormControl.js +39 -17
  120. package/esm/FormGroup/FormGroup.js +3 -2
  121. package/esm/InputPicker/InputPicker.js +47 -30
  122. package/esm/InputPicker/InputSearch.js +4 -15
  123. package/esm/InputPicker/TagList.d.ts +3 -0
  124. package/esm/InputPicker/TagList.js +23 -0
  125. package/esm/InputPicker/TextBox.d.ts +18 -0
  126. package/esm/InputPicker/TextBox.js +42 -0
  127. package/esm/MultiCascader/MultiCascader.js +14 -11
  128. package/esm/MultiCascader/{DropdownMenu.d.ts → TreeView.d.ts} +3 -3
  129. package/esm/MultiCascader/{DropdownMenu.js → TreeView.js} +79 -75
  130. package/{cjs/Picker/DropdownMenuCheckItem.d.ts → esm/Picker/ListCheckItem.d.ts} +3 -3
  131. package/esm/Picker/{DropdownMenuCheckItem.js → ListCheckItem.js} +15 -30
  132. package/{cjs/Picker/DropdownMenuItem.d.ts → esm/Picker/ListItem.d.ts} +4 -4
  133. package/esm/Picker/{DropdownMenuItem.js → ListItem.js} +16 -24
  134. package/esm/Picker/ListItemGroup.d.ts +6 -0
  135. package/esm/Picker/{DropdownMenuGroup.js → ListItemGroup.js} +3 -9
  136. package/esm/Picker/Listbox.d.ts +35 -0
  137. package/esm/Picker/{DropdownMenu.js → Listbox.js} +50 -64
  138. package/esm/Picker/{PickerOverlay.d.ts → PickerPopup.d.ts} +3 -3
  139. package/esm/Picker/{PickerOverlay.js → PickerPopup.js} +10 -8
  140. package/esm/Picker/PickerToggle.d.ts +1 -1
  141. package/esm/Picker/PickerToggle.js +16 -9
  142. package/esm/Picker/PickerToggleTrigger.d.ts +15 -0
  143. package/esm/Picker/PickerToggleTrigger.js +20 -5
  144. package/esm/Picker/SearchBar.js +8 -9
  145. package/esm/Picker/TreeView.d.ts +7 -0
  146. package/esm/Picker/TreeView.js +25 -0
  147. package/esm/Picker/hooks/index.d.ts +6 -0
  148. package/esm/Picker/hooks/index.js +7 -0
  149. package/esm/Picker/hooks/useCombobox.d.ts +7 -0
  150. package/esm/Picker/hooks/useCombobox.js +17 -0
  151. package/esm/Picker/hooks/useFocusItemValue.d.ts +30 -0
  152. package/esm/Picker/hooks/useFocusItemValue.js +240 -0
  153. package/esm/Picker/hooks/usePickerClassName.d.ts +21 -0
  154. package/esm/Picker/hooks/usePickerClassName.js +33 -0
  155. package/esm/Picker/{usePickerRef.d.ts → hooks/usePickerRef.d.ts} +2 -2
  156. package/esm/Picker/{usePickerRef.js → hooks/usePickerRef.js} +1 -1
  157. package/esm/Picker/hooks/useSearch.d.ts +18 -0
  158. package/esm/Picker/hooks/useSearch.js +51 -0
  159. package/esm/Picker/hooks/useToggleKeyDownEvent.d.ts +25 -0
  160. package/esm/Picker/hooks/useToggleKeyDownEvent.js +96 -0
  161. package/esm/Picker/index.d.ts +7 -6
  162. package/esm/Picker/index.js +7 -6
  163. package/esm/Picker/propTypes.d.ts +0 -6
  164. package/esm/Picker/propTypes.js +0 -5
  165. package/esm/Picker/utils.d.ts +2 -96
  166. package/esm/Picker/utils.js +2 -401
  167. package/esm/SelectPicker/SelectPicker.js +9 -9
  168. package/esm/TagInput/index.js +4 -0
  169. package/esm/TreePicker/TreeNode.d.ts +2 -2
  170. package/esm/TreePicker/TreeNode.js +24 -58
  171. package/esm/TreePicker/TreePicker.js +20 -21
  172. package/package.json +1 -1
  173. package/styles/variables.less +1 -3
  174. package/cjs/Picker/DropdownMenu.d.ts +0 -59
  175. package/cjs/Picker/DropdownMenuGroup.d.ts +0 -6
  176. package/esm/Picker/DropdownMenu.d.ts +0 -59
  177. package/esm/Picker/DropdownMenuGroup.d.ts +0 -6
@@ -27,9 +27,20 @@ var _getDataGroupBy = require("../utils/getDataGroupBy");
27
27
  var _Picker = require("../Picker");
28
28
  var _Tag = _interopRequireDefault(require("../Tag"));
29
29
  var _InputAutosize = _interopRequireDefault(require("./InputAutosize"));
30
- var _InputSearch = _interopRequireDefault(require("./InputSearch"));
30
+ var _TextBox = _interopRequireDefault(require("./TextBox"));
31
31
  var _InputPickerContext = _interopRequireDefault(require("./InputPickerContext"));
32
- var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
32
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4;
33
+ var convertSize = function convertSize(size) {
34
+ switch (size) {
35
+ case 'lg':
36
+ return 'lg';
37
+ case 'sm':
38
+ case 'xs':
39
+ return 'sm';
40
+ default:
41
+ return 'md';
42
+ }
43
+ };
33
44
  /**
34
45
  * Single item selector with text box input.
35
46
  *
@@ -212,7 +223,7 @@ var InputPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
212
223
  (_triggerRef$current3 = triggerRef.current) === null || _triggerRef$current3 === void 0 ? void 0 : (_triggerRef$current3$ = _triggerRef$current3.updatePosition) === null || _triggerRef$current3$ === void 0 ? void 0 : _triggerRef$current3$.call(_triggerRef$current3);
213
224
  // eslint-disable-next-line react-hooks/exhaustive-deps
214
225
  }, [searchKeyword, value]);
215
- var getDateItem = function getDateItem(value) {
226
+ var getDataItem = function getDataItem(value) {
216
227
  // Find active `MenuItem` by `value`
217
228
  var allData = getAllDataAndCache();
218
229
  var activeItem = allData.find(function (item) {
@@ -470,7 +481,7 @@ var InputPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
470
481
  blurInput();
471
482
  setOpen(false);
472
483
  });
473
- var renderDropdownMenuItem = function renderDropdownMenuItem(label, item) {
484
+ var renderListItem = function renderListItem(label, item) {
474
485
  // 'Create option "{0}"' => Create option "xxxxx"
475
486
  var newLabel = item.create ? /*#__PURE__*/_react.default.createElement("span", null, (0, _utils.tplTransform)(locale.createOption, label)) : label;
476
487
  return renderMenuItem ? renderMenuItem(newLabel, item) : newLabel;
@@ -482,7 +493,7 @@ var InputPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
482
493
  itemNode: null
483
494
  };
484
495
  }
485
- var dataItem = getDateItem(value);
496
+ var dataItem = getDataItem(value);
486
497
  var itemNode = dataItem.itemNode;
487
498
  if (!(0, _isNil.default)(value) && (0, _isFunction.default)(renderValue)) {
488
499
  itemNode = renderValue(value, dataItem.activeItem, itemNode);
@@ -503,17 +514,19 @@ var InputPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
503
514
  var tags = value || [];
504
515
  var items = [];
505
516
  var tagElements = tags.map(function (tag) {
506
- var _getDateItem = getDateItem(tag),
507
- isValid = _getDateItem.isValid,
508
- itemNode = _getDateItem.itemNode,
509
- activeItem = _getDateItem.activeItem;
517
+ var _getDataItem = getDataItem(tag),
518
+ isValid = _getDataItem.isValid,
519
+ itemNode = _getDataItem.itemNode,
520
+ activeItem = _getDataItem.activeItem;
510
521
  items.push(activeItem);
511
522
  if (!isValid) {
512
523
  return null;
513
524
  }
514
- return /*#__PURE__*/_react.default.createElement(_Tag.default, (0, _extends2.default)({}, tagRest, {
525
+ return /*#__PURE__*/_react.default.createElement(_Tag.default, (0, _extends2.default)({
526
+ role: "option"
527
+ }, tagRest, {
515
528
  key: tag,
516
- size: rest.size === 'lg' ? 'lg' : rest.size === 'xs' ? 'sm' : 'md',
529
+ size: convertSize(rest.size),
517
530
  closable: !disabled && closable && !readOnly && !plaintext,
518
531
  title: typeof itemNode === 'string' ? itemNode : undefined,
519
532
  onClose: (0, _utils.createChainedFunction)(handleRemoveItemByTag.bind(null, tag), onClose)
@@ -526,7 +539,7 @@ var InputPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
526
539
  }
527
540
  return tagElements;
528
541
  };
529
- var renderDropdownMenu = function renderDropdownMenu(positionProps, speakerRef) {
542
+ var renderPopup = function renderPopup(positionProps, speakerRef) {
530
543
  var left = positionProps.left,
531
544
  top = positionProps.top,
532
545
  className = positionProps.className;
@@ -550,21 +563,20 @@ var InputPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
550
563
  items = items.sort(sort(false));
551
564
  }
552
565
  if (disabledOptions) {
553
- return /*#__PURE__*/_react.default.createElement(_Picker.PickerOverlay, {
566
+ return /*#__PURE__*/_react.default.createElement(_Picker.PickerPopup, {
554
567
  ref: (0, _utils.mergeRefs)(overlay, speakerRef)
555
568
  });
556
569
  }
557
- var menu = items.length ? /*#__PURE__*/_react.default.createElement(_Picker.DropdownMenu, {
558
- id: id ? id + "-listbox" : undefined,
570
+ var menu = items.length ? /*#__PURE__*/_react.default.createElement(_Picker.Listbox, {
559
571
  listProps: listProps,
560
572
  listRef: list,
561
573
  disabledItemValues: disabledItemValues,
562
574
  valueKey: valueKey,
563
575
  labelKey: labelKey,
564
576
  classPrefix: menuClassPrefix,
565
- dropdownMenuItemClassPrefix: multi ? undefined : menuClassPrefix + "-item",
566
- dropdownMenuItemAs: multi ? _Picker.DropdownMenuCheckItem : _Picker.DropdownMenuItem,
567
- dropdownMenuItemProps: {
577
+ listItemClassPrefix: multi ? undefined : menuClassPrefix + "-item",
578
+ listItemAs: multi ? _Picker.ListCheckItem : _Picker.ListItem,
579
+ listItemProps: {
568
580
  renderMenuItemCheckbox: renderMenuItemCheckbox
569
581
  },
570
582
  activeItemValues: multi ? value : [value],
@@ -579,12 +591,12 @@ var InputPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
579
591
  onSelect: multi ? handleCheckTag : handleSelectItem // fixme don't use any
580
592
  ,
581
593
  renderMenuGroup: renderMenuGroup,
582
- renderMenuItem: renderDropdownMenuItem,
594
+ renderMenuItem: renderListItem,
583
595
  virtualized: virtualized
584
596
  }) : /*#__PURE__*/_react.default.createElement("div", {
585
597
  className: prefix(_templateObject || (_templateObject = (0, _taggedTemplateLiteralLoose2.default)(["none"])))
586
598
  }, locale === null || locale === void 0 ? void 0 : locale.noResultsText);
587
- return /*#__PURE__*/_react.default.createElement(_Picker.PickerOverlay, {
599
+ return /*#__PURE__*/_react.default.createElement(_Picker.PickerPopup, {
588
600
  ref: (0, _utils.mergeRefs)(overlay, speakerRef),
589
601
  autoWidth: menuAutoWidth,
590
602
  className: classes,
@@ -617,7 +629,7 @@ var InputPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
617
629
  usedClassNamePropKeys = _usePickerClassName[1];
618
630
  var classes = merge(pickerClasses, (_merge = {}, _merge[prefix(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteralLoose2.default)(["tag"])))] = multi, _merge[prefix(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteralLoose2.default)(["focused"])))] = open, _merge[prefix(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteralLoose2.default)(["disabled-options"])))] = disabledOptions, _merge));
619
631
  var searching = !!searchKeyword && open;
620
- var displaySearchInput = searchable && !disabled && !rest.loading;
632
+ var editable = searchable && !disabled && !rest.loading;
621
633
  var inputProps = multi ? {
622
634
  inputStyle: {
623
635
  maxWidth: maxWidth - 63
@@ -643,6 +655,8 @@ var InputPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
643
655
  }
644
656
  var placeholderNode = placeholder || (disabledOptions ? null : locale === null || locale === void 0 ? void 0 : locale.placeholder);
645
657
  return /*#__PURE__*/_react.default.createElement(_Picker.PickerToggleTrigger, {
658
+ id: id,
659
+ multiple: multi,
646
660
  pickerProps: (0, _pick.default)(props, _Picker.pickTriggerPropKeys),
647
661
  ref: triggerRef,
648
662
  trigger: "active",
@@ -650,7 +664,7 @@ var InputPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
650
664
  onEntered: (0, _utils.createChainedFunction)(onEntered, onOpen),
651
665
  onExit: (0, _utils.createChainedFunction)(handleExit, onExit),
652
666
  onExited: (0, _utils.createChainedFunction)(handleExited, onExited),
653
- speaker: renderDropdownMenu,
667
+ speaker: renderPopup,
654
668
  placement: placement
655
669
  }, /*#__PURE__*/_react.default.createElement(Component, {
656
670
  className: classes,
@@ -659,7 +673,6 @@ var InputPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
659
673
  onKeyDown: onPickerKeyDown,
660
674
  ref: root
661
675
  }, /*#__PURE__*/_react.default.createElement(_Picker.PickerToggle, (0, _extends2.default)({}, (0, _omit.default)(rest, [].concat(_Picker.omitTriggerPropKeys, usedClassNamePropKeys)), {
662
- id: id,
663
676
  appearance: appearance,
664
677
  readOnly: readOnly,
665
678
  plaintext: plaintext,
@@ -673,18 +686,22 @@ var InputPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
673
686
  disabled: disabled,
674
687
  placement: placement,
675
688
  inputValue: value,
689
+ focusItemValue: focusItemValue,
676
690
  caret: !disabledOptions
677
- }), searching || multi && hasValue ? null : itemNode || placeholderNode), !(!multi && disabled) && /*#__PURE__*/_react.default.createElement("div", {
678
- className: prefix(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteralLoose2.default)(["tag-wrapper"])))
679
- }, tagElements, displaySearchInput && /*#__PURE__*/_react.default.createElement(_InputSearch.default, (0, _extends2.default)({}, inputProps, {
680
- tabIndex: -1,
691
+ }), searching || multi && hasValue ? null : itemNode || placeholderNode), /*#__PURE__*/_react.default.createElement(_TextBox.default, {
692
+ showTagList: hasValue && multi,
693
+ tags: tagElements,
694
+ editable: editable,
681
695
  readOnly: readOnly,
696
+ disabled: disabled,
697
+ multiple: multi,
682
698
  onBlur: onBlur,
683
699
  onFocus: (0, _utils.createChainedFunction)(handleFocus, onFocus),
684
700
  inputRef: inputRef,
685
701
  onChange: handleSearch,
686
- value: open ? searchKeyword : ''
687
- })))));
702
+ inputValue: open ? searchKeyword : '',
703
+ inputProps: inputProps
704
+ })));
688
705
  });
689
706
  InputPicker.displayName = 'InputPicker';
690
707
  InputPicker.propTypes = (0, _extends2.default)({}, _Picker.listPickerPropTypes, {
@@ -2,14 +2,12 @@
2
2
  "use strict";
3
3
 
4
4
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
5
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
6
5
  exports.__esModule = true;
7
6
  exports.default = void 0;
8
7
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
8
  var _taggedTemplateLiteralLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteralLoose"));
10
9
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
11
- var _react = _interopRequireWildcard(require("react"));
12
- var _propTypes = _interopRequireDefault(require("prop-types"));
10
+ var _react = _interopRequireDefault(require("react"));
13
11
  var _utils = require("../utils");
14
12
  var _templateObject;
15
13
  var InputSearch = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
@@ -25,10 +23,10 @@ var InputSearch = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
25
23
  readOnly = props.readOnly,
26
24
  onChange = props.onChange,
27
25
  rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "classPrefix", "children", "className", "value", "inputRef", "style", "readOnly", "onChange"]);
28
- var handleChange = (0, _react.useCallback)(function (event) {
26
+ var handleChange = (0, _utils.useEventCallback)(function (event) {
29
27
  var _event$target;
30
28
  onChange === null || onChange === void 0 ? void 0 : onChange(event === null || event === void 0 ? void 0 : (_event$target = event.target) === null || _event$target === void 0 ? void 0 : _event$target.value, event);
31
- }, [onChange]);
29
+ });
32
30
  var _useClassNames = (0, _utils.useClassNames)(classPrefix),
33
31
  withClassPrefix = _useClassNames.withClassPrefix,
34
32
  merge = _useClassNames.merge,
@@ -47,15 +45,5 @@ var InputSearch = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
47
45
  })), children);
48
46
  });
49
47
  InputSearch.displayName = 'InputSearch';
50
- InputSearch.propTypes = {
51
- classPrefix: _propTypes.default.string,
52
- value: _propTypes.default.string,
53
- className: _propTypes.default.string,
54
- children: _propTypes.default.node,
55
- style: _propTypes.default.object,
56
- inputRef: _utils.TypeChecker.refType,
57
- as: _propTypes.default.elementType,
58
- onChange: _propTypes.default.func
59
- };
60
48
  var _default = InputSearch;
61
49
  exports.default = _default;
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const TagList: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
3
+ export default TagList;
@@ -0,0 +1,29 @@
1
+ 'use client';
2
+ "use strict";
3
+
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
5
+ exports.__esModule = true;
6
+ exports.default = void 0;
7
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
8
+ var _taggedTemplateLiteralLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteralLoose"));
9
+ var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
10
+ var _react = _interopRequireDefault(require("react"));
11
+ var _utils = require("../utils");
12
+ var _useCombobox2 = _interopRequireDefault(require("../Picker/hooks/useCombobox"));
13
+ var _templateObject;
14
+ var TagList = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
15
+ var children = props.children,
16
+ rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["children"]);
17
+ var _useClassNames = (0, _utils.useClassNames)('picker'),
18
+ prefix = _useClassNames.prefix;
19
+ var _useCombobox = (0, _useCombobox2.default)(),
20
+ id = _useCombobox.id;
21
+ return /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({
22
+ ref: ref,
23
+ role: "listbox",
24
+ id: id + "-describe",
25
+ className: prefix(_templateObject || (_templateObject = (0, _taggedTemplateLiteralLoose2.default)(["tag-list"])))
26
+ }, rest), children);
27
+ });
28
+ var _default = TagList;
29
+ exports.default = _default;
@@ -0,0 +1,18 @@
1
+ import React from 'react';
2
+ import { InputSearchProps } from './InputSearch';
3
+ interface TextBoxProps {
4
+ tags?: React.ReactNode;
5
+ inputProps?: InputSearchProps;
6
+ readOnly?: boolean;
7
+ disabled?: boolean;
8
+ onBlur?: (event: React.FocusEvent<HTMLInputElement>) => void;
9
+ onFocus?: (event: React.FocusEvent<HTMLInputElement>) => void;
10
+ onChange?: (value: string, event: React.ChangeEvent<HTMLInputElement>) => void;
11
+ inputValue?: string;
12
+ inputRef?: React.Ref<HTMLInputElement>;
13
+ editable?: boolean;
14
+ multiple?: boolean;
15
+ showTagList?: boolean;
16
+ }
17
+ declare const TextBox: React.ForwardRefExoticComponent<TextBoxProps & React.RefAttributes<HTMLDivElement>>;
18
+ export default TextBox;
@@ -0,0 +1,48 @@
1
+ 'use client';
2
+ "use strict";
3
+
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
5
+ exports.__esModule = true;
6
+ exports.default = void 0;
7
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
8
+ var _taggedTemplateLiteralLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteralLoose"));
9
+ var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
10
+ var _react = _interopRequireDefault(require("react"));
11
+ var _TagList = _interopRequireDefault(require("./TagList"));
12
+ var _utils = require("../utils");
13
+ var _InputSearch = _interopRequireDefault(require("./InputSearch"));
14
+ var _templateObject;
15
+ var TextBox = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
16
+ var tags = props.tags,
17
+ inputProps = props.inputProps,
18
+ readOnly = props.readOnly,
19
+ disabled = props.disabled,
20
+ multiple = props.multiple,
21
+ onBlur = props.onBlur,
22
+ onFocus = props.onFocus,
23
+ onChange = props.onChange,
24
+ inputValue = props.inputValue,
25
+ inputRef = props.inputRef,
26
+ editable = props.editable,
27
+ showTagList = props.showTagList,
28
+ rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["tags", "inputProps", "readOnly", "disabled", "multiple", "onBlur", "onFocus", "onChange", "inputValue", "inputRef", "editable", "showTagList"]);
29
+ var _useClassNames = (0, _utils.useClassNames)('picker'),
30
+ prefix = _useClassNames.prefix;
31
+ if (!multiple && disabled) {
32
+ return null;
33
+ }
34
+ return /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({
35
+ className: prefix(_templateObject || (_templateObject = (0, _taggedTemplateLiteralLoose2.default)(["textbox"]))),
36
+ ref: ref
37
+ }, rest), showTagList ? /*#__PURE__*/_react.default.createElement(_TagList.default, null, tags) : null, editable && /*#__PURE__*/_react.default.createElement(_InputSearch.default, (0, _extends2.default)({}, inputProps, {
38
+ tabIndex: -1,
39
+ readOnly: readOnly,
40
+ onBlur: onBlur,
41
+ onFocus: onFocus,
42
+ inputRef: inputRef,
43
+ onChange: onChange,
44
+ value: inputValue
45
+ })));
46
+ });
47
+ var _default = TextBox;
48
+ exports.default = _default;
@@ -13,7 +13,7 @@ var _pick = _interopRequireDefault(require("lodash/pick"));
13
13
  var _omit = _interopRequireDefault(require("lodash/omit"));
14
14
  var _isFunction = _interopRequireDefault(require("lodash/isFunction"));
15
15
  var _isNil = _interopRequireDefault(require("lodash/isNil"));
16
- var _DropdownMenu = _interopRequireDefault(require("./DropdownMenu"));
16
+ var _TreeView = _interopRequireDefault(require("./TreeView"));
17
17
  var _Checkbox = _interopRequireDefault(require("../Checkbox"));
18
18
  var _utils = require("./utils");
19
19
  var _treeUtils = require("../utils/treeUtils");
@@ -334,9 +334,10 @@ var MultiCascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
334
334
  'cascader-row-focus': item[valueKey] === focusItemValue
335
335
  });
336
336
  return /*#__PURE__*/_react.default.createElement("div", {
337
+ role: "treeitem",
338
+ "aria-disabled": disabled,
337
339
  key: key,
338
340
  className: itemClasses,
339
- "aria-disabled": disabled,
340
341
  "data-key": item[valueKey]
341
342
  }, /*#__PURE__*/_react.default.createElement(_Checkbox.default, {
342
343
  disabled: disabled,
@@ -365,12 +366,13 @@ var MultiCascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
365
366
  var items = getSearchResult();
366
367
  return /*#__PURE__*/_react.default.createElement("div", {
367
368
  className: prefix('cascader-search-panel'),
368
- "data-layer": 0
369
+ "data-layer": 0,
370
+ role: "tree"
369
371
  }, items.length ? items.map(renderSearchRow) : /*#__PURE__*/_react.default.createElement("div", {
370
372
  className: prefix('none')
371
373
  }, locale.noResultsText));
372
374
  };
373
- var renderDropdownMenu = function renderDropdownMenu(positionProps, speakerRef) {
375
+ var renderTreeView = function renderTreeView(positionProps, speakerRef) {
374
376
  var _ref = positionProps || {},
375
377
  left = _ref.left,
376
378
  top = _ref.top,
@@ -382,7 +384,7 @@ var MultiCascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
382
384
  var classes = merge(className, menuClassName, prefix('cascader-menu', 'multi-cascader-menu', {
383
385
  inline: inline
384
386
  }));
385
- return /*#__PURE__*/_react.default.createElement(_Picker.PickerOverlay, {
387
+ return /*#__PURE__*/_react.default.createElement(_Picker.PickerPopup, {
386
388
  ref: (0, _utils3.mergeRefs)(overlay, speakerRef),
387
389
  className: classes,
388
390
  style: styles,
@@ -393,8 +395,7 @@ var MultiCascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
393
395
  onChange: handleSearch,
394
396
  value: searchKeyword,
395
397
  inputRef: searchInput
396
- }), renderSearchResultPanel(), searchKeyword === '' && /*#__PURE__*/_react.default.createElement(_DropdownMenu.default, {
397
- id: id ? id + "-listbox" : undefined,
398
+ }), renderSearchResultPanel(), searchKeyword === '' && /*#__PURE__*/_react.default.createElement(_TreeView.default, {
398
399
  cascade: cascade,
399
400
  menuWidth: menuWidth,
400
401
  menuHeight: menuHeight,
@@ -444,22 +445,24 @@ var MultiCascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
444
445
  classes = _usePickerClassName[0],
445
446
  usedClassNamePropKeys = _usePickerClassName[1];
446
447
  if (inline) {
447
- return renderDropdownMenu();
448
+ return renderTreeView();
448
449
  }
449
450
  return /*#__PURE__*/_react.default.createElement(_Picker.PickerToggleTrigger, {
451
+ id: id,
452
+ popupType: "tree",
453
+ multiple: true,
450
454
  pickerProps: (0, _pick.default)(props, _Picker.pickTriggerPropKeys),
451
455
  ref: trigger,
452
456
  placement: placement,
453
457
  onEnter: (0, _utils3.createChainedFunction)(handleEntered, onEnter),
454
458
  onExited: (0, _utils3.createChainedFunction)(handleExited, onExited),
455
459
  onExit: (0, _utils3.createChainedFunction)(onClose, onExit),
456
- speaker: renderDropdownMenu
460
+ speaker: renderTreeView
457
461
  }, /*#__PURE__*/_react.default.createElement(Component, {
458
462
  className: classes,
459
463
  style: style,
460
464
  ref: root
461
465
  }, /*#__PURE__*/_react.default.createElement(_Picker.PickerToggle, (0, _extends3.default)({}, (0, _omit.default)(rest, [].concat(_Picker.omitTriggerPropKeys, usedClassNamePropKeys)), {
462
- id: id,
463
466
  as: toggleAs,
464
467
  appearance: appearance,
465
468
  disabled: disabled,
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import { ItemDataType, WithAsProps, RsRefForwardingComponent } from '../@types/common';
3
3
  import { ValueType } from './MultiCascader';
4
- export interface DropdownMenuProps extends WithAsProps {
4
+ export interface TreeViewProps extends WithAsProps {
5
5
  disabledItemValues: ValueType;
6
6
  value: ValueType;
7
7
  childrenKey: string;
@@ -21,5 +21,5 @@ export interface DropdownMenuProps extends WithAsProps {
21
21
  /**
22
22
  * TODO: reuse Menu from Cascader for consistent behavior
23
23
  */
24
- declare const DropdownMenu: RsRefForwardingComponent<'div', DropdownMenuProps>;
25
- export default DropdownMenu;
24
+ declare const TreeView: RsRefForwardingComponent<'div', TreeViewProps>;
25
+ export default TreeView;
@@ -1,14 +1,12 @@
1
1
  'use client';
2
2
  "use strict";
3
3
 
4
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
5
4
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
6
5
  exports.__esModule = true;
7
6
  exports.default = void 0;
8
7
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
8
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
10
- var _react = _interopRequireWildcard(require("react"));
11
- var _propTypes = _interopRequireDefault(require("prop-types"));
9
+ var _react = _interopRequireDefault(require("react"));
12
10
  var _Spinner = _interopRequireDefault(require("@rsuite/icons/legacy/Spinner"));
13
11
  var _AngleLeft = _interopRequireDefault(require("@rsuite/icons/legacy/AngleLeft"));
14
12
  var _AngleRight = _interopRequireDefault(require("@rsuite/icons/legacy/AngleRight"));
@@ -20,7 +18,7 @@ var emptyArray = [];
20
18
  /**
21
19
  * TODO: reuse Menu from Cascader for consistent behavior
22
20
  */
23
- var DropdownMenu = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
21
+ var TreeView = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
24
22
  var _props$as = props.as,
25
23
  Component = _props$as === void 0 ? 'div' : _props$as,
26
24
  _props$classPrefix = props.classPrefix,
@@ -46,18 +44,24 @@ var DropdownMenu = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
46
44
  valueKey = _props$valueKey === void 0 ? 'value' : _props$valueKey,
47
45
  _props$labelKey = props.labelKey,
48
46
  labelKey = _props$labelKey === void 0 ? 'label' : _props$labelKey,
47
+ style = props.style,
49
48
  renderMenuItem = props.renderMenuItem,
50
49
  renderMenu = props.renderMenu,
51
50
  _onCheck = props.onCheck,
52
51
  onSelect = props.onSelect,
53
- rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "classPrefix", "className", "cascade", "cascadeData", "cascadePaths", "childrenKey", "disabledItemValues", "menuWidth", "menuHeight", "uncheckableItemValues", "value", "valueKey", "labelKey", "renderMenuItem", "renderMenu", "onCheck", "onSelect"]);
52
+ rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "classPrefix", "className", "cascade", "cascadeData", "cascadePaths", "childrenKey", "disabledItemValues", "menuWidth", "menuHeight", "uncheckableItemValues", "value", "valueKey", "labelKey", "style", "renderMenuItem", "renderMenu", "onCheck", "onSelect"]);
54
53
  var _useClassNames = (0, _utils.useClassNames)(classPrefix),
55
54
  merge = _useClassNames.merge,
56
55
  prefix = _useClassNames.prefix;
57
56
  var classes = merge(className, prefix('items'));
58
- var _useCustom = (0, _utils.useCustom)('DropdownMenu'),
57
+ var _useCustom = (0, _utils.useCustom)(),
59
58
  rtl = _useCustom.rtl;
60
- var getCascadePaths = (0, _react.useCallback)(function (layer, node) {
59
+ var _useCombobox = (0, _Picker.useCombobox)(),
60
+ id = _useCombobox.id,
61
+ labelId = _useCombobox.labelId,
62
+ popupType = _useCombobox.popupType,
63
+ multiple = _useCombobox.multiple;
64
+ var getCascadePaths = function getCascadePaths(layer, node) {
61
65
  var paths = [];
62
66
  for (var i = 0; i < cascadeData.length && i < layer; i += 1) {
63
67
  if (i < layer - 1 && cascadePaths) {
@@ -66,15 +70,21 @@ var DropdownMenu = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
66
70
  }
67
71
  paths.push(node);
68
72
  return paths;
69
- }, [cascadeData, cascadePaths]);
70
- var handleSelect = (0, _react.useCallback)(function (layer, node, event) {
73
+ };
74
+ var handleSelect = (0, _utils.useEventCallback)(function (layer, node, event) {
71
75
  var cascadePaths = getCascadePaths(layer + 1, node);
72
76
  onSelect === null || onSelect === void 0 ? void 0 : onSelect(node, cascadePaths, event);
73
- }, [getCascadePaths, onSelect]);
74
- var renderCascadeNode = function renderCascadeNode(node, index, layer, focus, uncheckable) {
77
+ });
78
+ var renderCascadeNode = function renderCascadeNode(nodeProps) {
79
+ var node = nodeProps.node,
80
+ index = nodeProps.index,
81
+ layer = nodeProps.layer,
82
+ focus = nodeProps.focus,
83
+ uncheckable = nodeProps.uncheckable,
84
+ size = nodeProps.size;
75
85
  var children = node[childrenKey];
76
86
  var nodeValue = node[valueKey];
77
- var nodeLabel = node[labelKey];
87
+ var label = node[labelKey];
78
88
  var disabled = disabledItemValues.some(function (disabledValue) {
79
89
  return (0, _utils.shallowEqual)(disabledValue, nodeValue);
80
90
  });
@@ -90,8 +100,13 @@ var DropdownMenu = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
90
100
  valueKey: valueKey
91
101
  });
92
102
  }
93
- return /*#__PURE__*/_react.default.createElement(_Picker.DropdownMenuCheckItem, {
103
+ return /*#__PURE__*/_react.default.createElement(_Picker.ListCheckItem, {
94
104
  as: "li",
105
+ role: "treeitem",
106
+ "aria-level": layer + 1,
107
+ "aria-setsize": size,
108
+ "aria-posinset": index + 1,
109
+ "aria-label": typeof label === 'string' ? label : undefined,
95
110
  key: layer + "-" + onlyKey,
96
111
  disabled: disabled,
97
112
  active: active,
@@ -111,73 +126,61 @@ var DropdownMenu = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
111
126
  return _onCheck === null || _onCheck === void 0 ? void 0 : _onCheck(node, event, checked);
112
127
  },
113
128
  checkable: !uncheckable
114
- }, renderMenuItem ? renderMenuItem(nodeLabel, node) : nodeLabel, children ? /*#__PURE__*/_react.default.createElement(Icon, {
129
+ }, renderMenuItem ? renderMenuItem(label, node) : label, children ? /*#__PURE__*/_react.default.createElement(Icon, {
115
130
  className: prefix('caret'),
116
131
  spin: node.loading
117
132
  }) : null);
118
133
  };
119
- var renderCascade = function renderCascade() {
120
- var styles = {
121
- width: cascadeData.length * menuWidth
122
- };
123
- var columnStyles = {
124
- height: menuHeight,
125
- width: menuWidth
126
- };
127
- var cascadeNodes = cascadeData.map(function (children, layer) {
128
- var uncheckableCount = 0;
129
- var onlyKey = layer + "_" + children.length;
130
- var menu = /*#__PURE__*/_react.default.createElement("ul", {
131
- role: "listbox"
132
- }, children.map(function (item, index) {
133
- var uncheckable = uncheckableItemValues.some(function (uncheckableValue) {
134
- return (0, _utils.shallowEqual)(uncheckableValue, item[valueKey]);
135
- });
136
- if (uncheckable) {
137
- uncheckableCount++;
138
- }
139
- return renderCascadeNode(item, index, layer, cascadePaths[layer] && (0, _utils.shallowEqual)(cascadePaths[layer][valueKey], item[valueKey]), uncheckable);
140
- }));
141
- var parentNode = cascadePaths[layer - 1];
142
- var columnClasses = prefix('column', {
143
- 'column-uncheckable': uncheckableCount === children.length
134
+ var columnStyles = {
135
+ height: menuHeight,
136
+ width: menuWidth
137
+ };
138
+ var cascadeNodes = cascadeData.map(function (children, layer) {
139
+ var uncheckableCount = 0;
140
+ var onlyKey = layer + "_" + children.length;
141
+ var menu = /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, children.map(function (item, index) {
142
+ var uncheckable = uncheckableItemValues.some(function (uncheckableValue) {
143
+ return (0, _utils.shallowEqual)(uncheckableValue, item[valueKey]);
144
144
  });
145
- return /*#__PURE__*/_react.default.createElement("div", {
146
- key: onlyKey,
147
- className: columnClasses,
148
- "data-layer": layer,
149
- style: columnStyles
150
- }, renderMenu ? renderMenu(children, menu, parentNode, layer) : menu);
145
+ if (uncheckable) {
146
+ uncheckableCount++;
147
+ }
148
+ var focus = cascadePaths[layer] && (0, _utils.shallowEqual)(cascadePaths[layer][valueKey], item[valueKey]);
149
+ return renderCascadeNode({
150
+ node: item,
151
+ index: index,
152
+ layer: layer,
153
+ focus: focus,
154
+ uncheckable: uncheckable,
155
+ size: children.length
156
+ });
157
+ }));
158
+ var parentNode = cascadePaths[layer - 1];
159
+ var columnClasses = prefix('column', {
160
+ 'column-uncheckable': uncheckableCount === children.length
151
161
  });
152
- return /*#__PURE__*/_react.default.createElement("div", {
153
- style: styles
154
- }, cascadeNodes);
155
- };
156
- return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({}, rest, {
162
+ return /*#__PURE__*/_react.default.createElement("ul", {
163
+ role: "group",
164
+ key: onlyKey,
165
+ className: columnClasses,
166
+ "data-layer": layer,
167
+ style: columnStyles
168
+ }, renderMenu ? renderMenu(children, menu, parentNode, layer) : menu);
169
+ });
170
+ var styles = (0, _extends2.default)({}, style, {
171
+ width: cascadeData.length * menuWidth
172
+ });
173
+ return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({
174
+ role: "tree",
175
+ id: id + "-" + popupType,
176
+ "aria-labelledby": labelId,
177
+ "aria-multiselectable": multiple
178
+ }, rest, {
157
179
  ref: ref,
158
- className: classes
159
- }), renderCascade());
180
+ className: classes,
181
+ style: styles
182
+ }), cascadeNodes);
160
183
  });
161
- DropdownMenu.displayName = 'DropdownMenu';
162
- DropdownMenu.propTypes = {
163
- classPrefix: _propTypes.default.string,
164
- data: _propTypes.default.array,
165
- disabledItemValues: _propTypes.default.array,
166
- value: _propTypes.default.array,
167
- childrenKey: _propTypes.default.string,
168
- valueKey: _propTypes.default.string,
169
- labelKey: _propTypes.default.string,
170
- menuWidth: _propTypes.default.number,
171
- menuHeight: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
172
- className: _propTypes.default.string,
173
- cascade: _propTypes.default.bool,
174
- cascadeData: _propTypes.default.array,
175
- cascadePaths: _propTypes.default.array,
176
- uncheckableItemValues: _propTypes.default.array,
177
- renderMenuItem: _propTypes.default.func,
178
- renderMenu: _propTypes.default.func,
179
- onSelect: _propTypes.default.func,
180
- onCheck: _propTypes.default.func
181
- };
182
- var _default = DropdownMenu;
184
+ TreeView.displayName = 'TreeView';
185
+ var _default = TreeView;
183
186
  exports.default = _default;