rsuite 5.0.2 → 5.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Button/styles/index.less +1 -1
- package/CHANGELOG.md +46 -0
- package/MaskedInput/package.json +7 -0
- package/Navbar/styles/index.less +8 -0
- package/Picker/styles/index.less +1 -1
- package/Picker/styles/mixin.less +1 -1
- package/README.md +4 -46
- package/Sidenav/styles/index.less +17 -16
- package/Slider/styles/index.less +20 -14
- package/Toggle/styles/index.less +53 -12
- package/Toggle/styles/mixin.less +25 -11
- package/Uploader/styles/index.less +0 -1
- package/cjs/@types/common.d.ts +8 -2
- package/cjs/Affix/Affix.js +3 -3
- package/cjs/Animation/Collapse.js +9 -7
- package/cjs/Animation/Transition.js +4 -2
- package/cjs/AutoComplete/AutoComplete.d.ts +2 -2
- package/cjs/AutoComplete/AutoComplete.js +7 -4
- package/cjs/Calendar/TimeDropdown.js +5 -3
- package/cjs/Cascader/Cascader.d.ts +1 -1
- package/cjs/Cascader/Cascader.js +1 -0
- package/cjs/Cascader/DropdownMenu.js +6 -5
- package/cjs/CheckTreePicker/CheckTreeNode.d.ts +1 -1
- package/cjs/CheckTreePicker/CheckTreePicker.d.ts +1 -1
- package/cjs/CheckTreePicker/utils.d.ts +1 -1
- package/cjs/CheckTreePicker/utils.js +7 -6
- package/cjs/Checkbox/Checkbox.d.ts +3 -3
- package/cjs/CheckboxGroup/CheckboxGroupContext.d.ts +1 -1
- package/cjs/DOMHelper/index.d.ts +13 -28
- package/cjs/DOMHelper/index.js +4 -3
- package/cjs/DOMHelper/isElement.d.ts +2 -0
- package/cjs/DOMHelper/isElement.js +11 -0
- package/cjs/DatePicker/DatePicker.d.ts +3 -3
- package/cjs/DatePicker/DatePicker.js +4 -2
- package/cjs/DateRangePicker/Calendar.d.ts +1 -1
- package/cjs/DateRangePicker/DateRangePicker.d.ts +2 -2
- package/cjs/DateRangePicker/DateRangePicker.js +4 -2
- package/cjs/Disclosure/Disclosure.d.ts +1 -1
- package/cjs/Disclosure/DisclosureContext.d.ts +1 -1
- package/cjs/Dropdown/DropdownItem.d.ts +1 -1
- package/cjs/Dropdown/DropdownItem.js +21 -18
- package/cjs/Dropdown/DropdownMenu.d.ts +2 -2
- package/cjs/Dropdown/useRenderDropdownItem.d.ts +2 -0
- package/cjs/Dropdown/useRenderDropdownItem.js +26 -0
- package/cjs/Form/Form.d.ts +1 -1
- package/cjs/FormControl/FormControl.d.ts +9 -3
- package/cjs/FormControl/FormControl.js +6 -2
- package/cjs/Input/Input.d.ts +2 -1
- package/cjs/InputNumber/InputNumber.js +2 -2
- package/cjs/InputPicker/InputPicker.js +2 -2
- package/cjs/List/helper/useSortHelper.js +11 -6
- package/cjs/MaskedInput/MaskedInput.d.ts +43 -0
- package/cjs/MaskedInput/MaskedInput.js +80 -0
- package/cjs/MaskedInput/adjustCaretPosition.d.ts +11 -0
- package/cjs/MaskedInput/adjustCaretPosition.js +218 -0
- package/cjs/MaskedInput/conformToMask.d.ts +8 -0
- package/cjs/MaskedInput/conformToMask.js +247 -0
- package/cjs/MaskedInput/createTextMaskInputElement.d.ts +7 -0
- package/cjs/MaskedInput/createTextMaskInputElement.js +226 -0
- package/cjs/MaskedInput/index.d.ts +3 -0
- package/cjs/MaskedInput/index.js +11 -0
- package/cjs/MaskedInput/types.d.ts +10 -0
- package/cjs/{@types/icons.js → MaskedInput/types.js} +0 -0
- package/cjs/MaskedInput/utilities.d.ts +7 -0
- package/cjs/MaskedInput/utilities.js +47 -0
- package/cjs/Menu/MenuItem.d.ts +1 -1
- package/cjs/Menu/Menubar.d.ts +1 -1
- package/cjs/Message/Message.js +13 -11
- package/cjs/Modal/Modal.js +5 -3
- package/cjs/Modal/utils.js +7 -5
- package/cjs/MultiCascader/MultiCascader.js +1 -0
- package/cjs/Notification/Notification.js +6 -3
- package/cjs/Overlay/Modal.js +14 -11
- package/cjs/Overlay/ModalManager.js +19 -7
- package/cjs/Overlay/OverlayTrigger.js +2 -2
- package/cjs/Overlay/Position.js +20 -13
- package/cjs/Overlay/positionUtils.js +16 -8
- package/cjs/Panel/Panel.d.ts +1 -1
- package/cjs/Picker/DropdownMenu.js +10 -6
- package/cjs/Picker/DropdownMenuCheckItem.d.ts +3 -3
- package/cjs/Picker/PickerOverlay.js +5 -3
- package/cjs/Picker/PickerToggle.d.ts +6 -0
- package/cjs/Picker/PickerToggle.js +17 -8
- package/cjs/Picker/SearchBar.d.ts +1 -1
- package/cjs/Picker/utils.d.ts +2 -2
- package/cjs/Picker/utils.js +1 -1
- package/cjs/Radio/Radio.d.ts +1 -1
- package/cjs/RadioGroup/RadioGroup.d.ts +1 -1
- package/cjs/RangeSlider/RangeSlider.js +9 -5
- package/cjs/Rate/Character.js +2 -2
- package/cjs/Ripple/Ripple.js +6 -7
- package/cjs/Sidenav/SidenavDropdownItem.d.ts +1 -1
- package/cjs/Sidenav/SidenavDropdownItem.js +17 -10
- package/cjs/Sidenav/SidenavDropdownMenu.d.ts +1 -1
- package/cjs/Slider/Graduated.js +1 -1
- package/cjs/Slider/Handle.js +10 -5
- package/cjs/Slider/ProgressBar.js +1 -1
- package/cjs/Slider/Slider.js +9 -5
- package/cjs/Toggle/Toggle.d.ts +5 -6
- package/cjs/Toggle/Toggle.js +42 -19
- package/cjs/Tree/Tree.d.ts +3 -3
- package/cjs/TreePicker/TreeNode.d.ts +1 -1
- package/cjs/TreePicker/TreeNode.js +2 -2
- package/cjs/TreePicker/TreePicker.d.ts +1 -1
- package/cjs/Uploader/UploadFileItem.d.ts +0 -1
- package/cjs/Uploader/UploadFileItem.js +3 -6
- package/cjs/Uploader/Uploader.d.ts +4 -4
- package/cjs/index.d.ts +2 -0
- package/cjs/index.js +5 -1
- package/cjs/locales/fa_IR.d.ts +105 -0
- package/cjs/locales/fa_IR.js +84 -0
- package/cjs/locales/index.d.ts +1 -0
- package/cjs/locales/index.js +6 -2
- package/cjs/utils/BrowserDetection.js +1 -1
- package/cjs/utils/index.d.ts +1 -0
- package/cjs/utils/index.js +7 -2
- package/cjs/utils/scrollTopAnimation.js +5 -5
- package/cjs/utils/treeUtils.d.ts +2 -2
- package/cjs/utils/useEventListener.js +4 -2
- package/cjs/utils/useIsMounted.d.ts +2 -0
- package/cjs/utils/useIsMounted.js +22 -0
- package/cjs/utils/usePortal.js +2 -2
- package/cjs/utils/useRootClose.js +10 -10
- package/dist/rsuite-rtl.css +220 -124
- package/dist/rsuite-rtl.min.css +1 -1
- package/dist/rsuite-rtl.min.css.map +1 -1
- package/dist/rsuite.css +220 -124
- package/dist/rsuite.js +780 -504
- package/dist/rsuite.js.map +1 -1
- package/dist/rsuite.min.css +1 -1
- package/dist/rsuite.min.css.map +1 -1
- package/dist/rsuite.min.js +1 -1
- package/dist/rsuite.min.js.map +1 -1
- package/esm/@types/common.d.ts +8 -2
- package/esm/Affix/Affix.js +1 -1
- package/esm/Animation/Collapse.js +2 -1
- package/esm/Animation/Transition.js +3 -2
- package/esm/AutoComplete/AutoComplete.d.ts +2 -2
- package/esm/AutoComplete/AutoComplete.js +8 -5
- package/esm/Calendar/TimeDropdown.js +2 -1
- package/esm/Cascader/Cascader.d.ts +1 -1
- package/esm/Cascader/Cascader.js +1 -0
- package/esm/Cascader/DropdownMenu.js +4 -3
- package/esm/CheckTreePicker/CheckTreeNode.d.ts +1 -1
- package/esm/CheckTreePicker/CheckTreePicker.d.ts +1 -1
- package/esm/CheckTreePicker/utils.d.ts +1 -1
- package/esm/CheckTreePicker/utils.js +7 -6
- package/esm/Checkbox/Checkbox.d.ts +3 -3
- package/esm/CheckboxGroup/CheckboxGroupContext.d.ts +1 -1
- package/esm/DOMHelper/index.d.ts +13 -28
- package/esm/DOMHelper/index.js +2 -3
- package/esm/DOMHelper/isElement.d.ts +2 -0
- package/esm/DOMHelper/isElement.js +5 -0
- package/esm/DatePicker/DatePicker.d.ts +3 -3
- package/esm/DatePicker/DatePicker.js +4 -2
- package/esm/DateRangePicker/Calendar.d.ts +1 -1
- package/esm/DateRangePicker/DateRangePicker.d.ts +2 -2
- package/esm/DateRangePicker/DateRangePicker.js +4 -2
- package/esm/Disclosure/Disclosure.d.ts +1 -1
- package/esm/Disclosure/DisclosureContext.d.ts +1 -1
- package/esm/Dropdown/DropdownItem.d.ts +1 -1
- package/esm/Dropdown/DropdownItem.js +20 -18
- package/esm/Dropdown/DropdownMenu.d.ts +2 -2
- package/esm/Dropdown/useRenderDropdownItem.d.ts +2 -0
- package/esm/Dropdown/useRenderDropdownItem.js +18 -0
- package/esm/Form/Form.d.ts +1 -1
- package/esm/FormControl/FormControl.d.ts +9 -3
- package/esm/FormControl/FormControl.js +6 -2
- package/esm/Input/Input.d.ts +2 -1
- package/esm/InputNumber/InputNumber.js +2 -2
- package/esm/InputPicker/InputPicker.js +1 -1
- package/esm/List/helper/useSortHelper.js +8 -4
- package/esm/MaskedInput/MaskedInput.d.ts +43 -0
- package/esm/MaskedInput/MaskedInput.js +67 -0
- package/esm/MaskedInput/adjustCaretPosition.d.ts +11 -0
- package/esm/MaskedInput/adjustCaretPosition.js +213 -0
- package/esm/MaskedInput/conformToMask.d.ts +8 -0
- package/esm/MaskedInput/conformToMask.js +239 -0
- package/esm/MaskedInput/createTextMaskInputElement.d.ts +7 -0
- package/esm/MaskedInput/createTextMaskInputElement.js +212 -0
- package/esm/MaskedInput/index.d.ts +3 -0
- package/esm/MaskedInput/index.js +2 -0
- package/esm/MaskedInput/types.d.ts +10 -0
- package/esm/{@types/icons.js → MaskedInput/types.js} +0 -0
- package/esm/MaskedInput/utilities.d.ts +7 -0
- package/esm/MaskedInput/utilities.js +38 -0
- package/esm/Menu/MenuItem.d.ts +1 -1
- package/esm/Menu/Menubar.d.ts +1 -1
- package/esm/Message/Message.js +15 -13
- package/esm/Modal/Modal.js +3 -2
- package/esm/Modal/utils.js +6 -5
- package/esm/MultiCascader/MultiCascader.js +1 -0
- package/esm/Notification/Notification.js +7 -4
- package/esm/Overlay/Modal.js +11 -8
- package/esm/Overlay/ModalManager.js +6 -1
- package/esm/Overlay/OverlayTrigger.js +1 -1
- package/esm/Overlay/Position.js +14 -8
- package/esm/Overlay/positionUtils.js +6 -2
- package/esm/Panel/Panel.d.ts +1 -1
- package/esm/Picker/DropdownMenu.js +3 -1
- package/esm/Picker/DropdownMenuCheckItem.d.ts +3 -3
- package/esm/Picker/PickerOverlay.js +2 -1
- package/esm/Picker/PickerToggle.d.ts +6 -0
- package/esm/Picker/PickerToggle.js +14 -6
- package/esm/Picker/SearchBar.d.ts +1 -1
- package/esm/Picker/utils.d.ts +2 -2
- package/esm/Picker/utils.js +1 -1
- package/esm/Radio/Radio.d.ts +1 -1
- package/esm/RadioGroup/RadioGroup.d.ts +1 -1
- package/esm/RangeSlider/RangeSlider.js +4 -2
- package/esm/Rate/Character.js +2 -2
- package/esm/Ripple/Ripple.js +4 -3
- package/esm/Sidenav/SidenavDropdownItem.d.ts +1 -1
- package/esm/Sidenav/SidenavDropdownItem.js +16 -10
- package/esm/Sidenav/SidenavDropdownMenu.d.ts +1 -1
- package/esm/Slider/Graduated.js +1 -1
- package/esm/Slider/Handle.js +5 -2
- package/esm/Slider/ProgressBar.js +1 -1
- package/esm/Slider/Slider.js +4 -2
- package/esm/Toggle/Toggle.d.ts +5 -6
- package/esm/Toggle/Toggle.js +43 -21
- package/esm/Tree/Tree.d.ts +3 -3
- package/esm/TreePicker/TreeNode.d.ts +1 -1
- package/esm/TreePicker/TreeNode.js +1 -1
- package/esm/TreePicker/TreePicker.d.ts +1 -1
- package/esm/Uploader/UploadFileItem.d.ts +0 -1
- package/esm/Uploader/UploadFileItem.js +3 -6
- package/esm/Uploader/Uploader.d.ts +4 -4
- package/esm/index.d.ts +2 -0
- package/esm/index.js +1 -0
- package/esm/locales/fa_IR.d.ts +105 -0
- package/esm/locales/fa_IR.js +74 -0
- package/esm/locales/index.d.ts +1 -0
- package/esm/locales/index.js +2 -1
- package/esm/utils/BrowserDetection.js +1 -1
- package/esm/utils/index.d.ts +1 -0
- package/esm/utils/index.js +2 -1
- package/esm/utils/scrollTopAnimation.js +2 -2
- package/esm/utils/treeUtils.d.ts +2 -2
- package/esm/utils/useEventListener.js +1 -1
- package/esm/utils/useIsMounted.d.ts +2 -0
- package/esm/utils/useIsMounted.js +16 -0
- package/esm/utils/usePortal.js +2 -2
- package/esm/utils/useRootClose.js +8 -6
- package/locales/fa_IR/package.json +7 -0
- package/package.json +5 -7
- package/styles/color-modes/dark.less +1 -0
- package/styles/color-modes/high-contrast.less +1 -0
- package/styles/color-modes/light.less +3 -0
- package/styles/plugins/palette.js +10 -1
- package/cjs/@types/icons.d.ts +0 -1
- package/esm/@types/icons.d.ts +0 -1
package/esm/@types/common.d.ts
CHANGED
|
@@ -80,12 +80,18 @@ export interface PickerBaseProps<LocaleType = any> extends WithAsProps, Animatio
|
|
|
80
80
|
/** Custom render extra footer */
|
|
81
81
|
renderExtraFooter?: () => React.ReactNode;
|
|
82
82
|
}
|
|
83
|
-
export interface FormControlBaseProps<ValueType =
|
|
83
|
+
export interface FormControlBaseProps<ValueType = React.InputHTMLAttributes<HTMLInputElement>['value']> {
|
|
84
|
+
/** Name of the form field */
|
|
85
|
+
name?: string;
|
|
84
86
|
/** Initial value */
|
|
85
87
|
defaultValue?: ValueType;
|
|
86
88
|
/** Current value of the component. Creates a controlled component */
|
|
87
89
|
value?: ValueType;
|
|
88
|
-
/**
|
|
90
|
+
/**
|
|
91
|
+
* Called after the value has been changed
|
|
92
|
+
* todo Override event as React.ChangeEvent in components where onChange is delegated
|
|
93
|
+
* to an underlying <input> element
|
|
94
|
+
*/
|
|
89
95
|
onChange?: (value: ValueType, event: React.SyntheticEvent) => void;
|
|
90
96
|
/** Set the component to be disabled and cannot be entered */
|
|
91
97
|
disabled?: boolean;
|
package/esm/Affix/Affix.js
CHANGED
|
@@ -2,7 +2,7 @@ import _extends from "@babel/runtime/helpers/esm/extends";
|
|
|
2
2
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
3
3
|
import React, { useCallback, useEffect, useRef, useState } from 'react';
|
|
4
4
|
import PropTypes from 'prop-types';
|
|
5
|
-
import
|
|
5
|
+
import getOffset from 'dom-lib/getOffset';
|
|
6
6
|
import { mergeRefs, useClassNames, useElementResize, useEventListener } from '../utils';
|
|
7
7
|
|
|
8
8
|
/**
|
|
@@ -2,7 +2,8 @@ import _extends from "@babel/runtime/helpers/esm/extends";
|
|
|
2
2
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
3
3
|
import React, { useCallback } from 'react';
|
|
4
4
|
import PropTypes from 'prop-types';
|
|
5
|
-
import
|
|
5
|
+
import getStyle from 'dom-lib/getStyle';
|
|
6
|
+
import addStyle from 'dom-lib/addStyle';
|
|
6
7
|
import get from 'lodash/get';
|
|
7
8
|
import capitalize from 'lodash/capitalize';
|
|
8
9
|
import Transition, { transitionPropTypes } from './Transition';
|
|
@@ -3,7 +3,8 @@ import _inheritsLoose from "@babel/runtime/helpers/esm/inheritsLoose";
|
|
|
3
3
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
4
4
|
import React from 'react';
|
|
5
5
|
import PropTypes from 'prop-types';
|
|
6
|
-
import
|
|
6
|
+
import getTransitionEnd from 'dom-lib/getTransitionEnd';
|
|
7
|
+
import on from 'dom-lib/on';
|
|
7
8
|
import classNames from 'classnames';
|
|
8
9
|
import isFunction from 'lodash/isFunction';
|
|
9
10
|
import omit from 'lodash/omit';
|
|
@@ -136,7 +137,7 @@ var Transition = /*#__PURE__*/function (_React$Component) {
|
|
|
136
137
|
var _this$props = this.props,
|
|
137
138
|
timeout = _this$props.timeout,
|
|
138
139
|
animation = _this$props.animation;
|
|
139
|
-
this.animationEventListener = on(node, animation ? getAnimationEnd() :
|
|
140
|
+
this.animationEventListener = on(node, animation ? getAnimationEnd() : getTransitionEnd(), this.nextCallback);
|
|
140
141
|
|
|
141
142
|
if (timeout !== null) {
|
|
142
143
|
setTimeout(this.nextCallback, timeout);
|
|
@@ -18,9 +18,9 @@ export interface AutoCompleteProps<T = ValueType> extends WithAsProps, FormContr
|
|
|
18
18
|
/** Called when a option is selected */
|
|
19
19
|
onSelect?: (value: any, item: ItemDataType, event: React.SyntheticEvent) => void;
|
|
20
20
|
/** Called on focus */
|
|
21
|
-
onFocus?:
|
|
21
|
+
onFocus?: React.FocusEventHandler;
|
|
22
22
|
/** Called on blur */
|
|
23
|
-
onBlur?:
|
|
23
|
+
onBlur?: React.FocusEventHandler;
|
|
24
24
|
/** Called on menu focus */
|
|
25
25
|
onMenuFocus?: (focusItemValue: any, event: React.KeyboardEvent) => void;
|
|
26
26
|
/** The callback triggered by keyboard events. */
|
|
@@ -4,7 +4,7 @@ import React, { useState, useRef, useCallback } from 'react';
|
|
|
4
4
|
import PropTypes from 'prop-types';
|
|
5
5
|
import pick from 'lodash/pick';
|
|
6
6
|
import Input from '../Input';
|
|
7
|
-
import { useClassNames, useControlled, PLACEMENT, mergeRefs } from '../utils';
|
|
7
|
+
import { useClassNames, useControlled, PLACEMENT, mergeRefs, useIsMounted } from '../utils';
|
|
8
8
|
import { animationPropTypes } from '../Animation/utils';
|
|
9
9
|
import { PickerToggleTrigger, onMenuKeyDown, DropdownMenu, DropdownMenuItem, PickerOverlay, useFocusItemValue, usePublicMethods, pickTriggerPropKeys } from '../Picker';
|
|
10
10
|
import { transformData, shouldDisplay } from './utils';
|
|
@@ -57,7 +57,8 @@ var AutoComplete = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
57
57
|
|
|
58
58
|
var items = (datalist === null || datalist === void 0 ? void 0 : datalist.filter(shouldDisplay(filterBy, value))) || [];
|
|
59
59
|
var hasItems = items.length > 0;
|
|
60
|
-
var overlayRef = useRef(null);
|
|
60
|
+
var overlayRef = useRef(null);
|
|
61
|
+
var isMounted = useIsMounted(); // Used to hover the focuse item when trigger `onKeydown`
|
|
61
62
|
|
|
62
63
|
var _useFocusItemValue = useFocusItemValue(value, {
|
|
63
64
|
data: datalist,
|
|
@@ -117,9 +118,11 @@ var AutoComplete = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
117
118
|
};
|
|
118
119
|
|
|
119
120
|
var handleClose = useCallback(function () {
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
121
|
+
if (isMounted()) {
|
|
122
|
+
setFocus(false);
|
|
123
|
+
onClose === null || onClose === void 0 ? void 0 : onClose();
|
|
124
|
+
}
|
|
125
|
+
}, [isMounted, onClose]);
|
|
123
126
|
var handleOpen = useCallback(function () {
|
|
124
127
|
setFocus(true);
|
|
125
128
|
onOpen === null || onOpen === void 0 ? void 0 : onOpen();
|
|
@@ -2,7 +2,8 @@ import _extends from "@babel/runtime/helpers/esm/extends";
|
|
|
2
2
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
3
3
|
import React, { useEffect, useRef } from 'react';
|
|
4
4
|
import PropTypes from 'prop-types';
|
|
5
|
-
import
|
|
5
|
+
import getPosition from 'dom-lib/getPosition';
|
|
6
|
+
import scrollTop from 'dom-lib/scrollTop';
|
|
6
7
|
import partial from 'lodash/partial';
|
|
7
8
|
import camelCase from 'lodash/camelCase';
|
|
8
9
|
import isNumber from 'lodash/isNumber';
|
|
@@ -25,7 +25,7 @@ export interface CascaderProps<T = ValueType> extends FormControlPickerProps<T,
|
|
|
25
25
|
/** Called when clean */
|
|
26
26
|
onClean?: (event: React.SyntheticEvent) => void;
|
|
27
27
|
/** Called when searching */
|
|
28
|
-
onSearch?: (searchKeyword: string, event: React.SyntheticEvent
|
|
28
|
+
onSearch?: (searchKeyword: string, event: React.SyntheticEvent) => void;
|
|
29
29
|
/** Asynchronously load the children of the tree node. */
|
|
30
30
|
getChildren?: (node: ItemDataType) => ItemDataType[] | Promise<ItemDataType[]>;
|
|
31
31
|
}
|
package/esm/Cascader/Cascader.js
CHANGED
|
@@ -3,13 +3,14 @@ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWith
|
|
|
3
3
|
import React, { useCallback, useEffect, useRef } from 'react';
|
|
4
4
|
import PropTypes from 'prop-types';
|
|
5
5
|
import SpinnerIcon from '@rsuite/icons/legacy/Spinner';
|
|
6
|
-
import helper from '../DOMHelper';
|
|
7
6
|
import isUndefined from 'lodash/isUndefined';
|
|
8
7
|
import isNil from 'lodash/isNil';
|
|
9
8
|
import { shallowEqual, useClassNames, mergeRefs, useCustom } from '../utils';
|
|
10
9
|
import { DropdownMenuItem } from '../Picker';
|
|
11
10
|
import AngleLeftIcon from '@rsuite/icons/legacy/AngleLeft';
|
|
12
11
|
import AngleRightIcon from '@rsuite/icons/legacy/AngleRight';
|
|
12
|
+
import getPosition from 'dom-lib/getPosition';
|
|
13
|
+
import scrollTop from 'dom-lib/scrollTop';
|
|
13
14
|
var emptyArray = [];
|
|
14
15
|
var DropdownMenu = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
15
16
|
var _props$as = props.as,
|
|
@@ -61,9 +62,9 @@ var DropdownMenu = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
61
62
|
}
|
|
62
63
|
|
|
63
64
|
if (activeItem) {
|
|
64
|
-
var position =
|
|
65
|
+
var position = getPosition(activeItem, column); // Let the active option scroll into view.
|
|
65
66
|
|
|
66
|
-
|
|
67
|
+
scrollTop(column, position.top);
|
|
67
68
|
}
|
|
68
69
|
});
|
|
69
70
|
}, [prefix]);
|
|
@@ -20,7 +20,7 @@ export interface CheckTreeNodeProps extends WithAsProps {
|
|
|
20
20
|
uncheckable?: boolean;
|
|
21
21
|
allUncheckable?: boolean;
|
|
22
22
|
onExpand?: (nodeData: any) => void;
|
|
23
|
-
onSelect?: (nodeData: any, event: React.SyntheticEvent
|
|
23
|
+
onSelect?: (nodeData: any, event: React.SyntheticEvent) => void;
|
|
24
24
|
onRenderTreeIcon?: (nodeData: any, expandIcon?: React.ReactNode) => React.ReactNode;
|
|
25
25
|
onRenderTreeNode?: (nodeData: any) => React.ReactNode;
|
|
26
26
|
}
|
|
@@ -14,7 +14,7 @@ export interface CheckTreePickerProps<T = ValueType> extends TreeBaseProps<T, It
|
|
|
14
14
|
/** Custom render selected items */
|
|
15
15
|
renderValue?: (value: any[], selectedItems: any[], selectedElement: React.ReactNode) => React.ReactNode;
|
|
16
16
|
/** Called when scrolling */
|
|
17
|
-
onScroll?: (event: React.SyntheticEvent
|
|
17
|
+
onScroll?: (event: React.SyntheticEvent) => void;
|
|
18
18
|
}
|
|
19
19
|
declare const CheckTreePicker: PickerComponent<CheckTreePickerProps>;
|
|
20
20
|
export default CheckTreePicker;
|
|
@@ -19,7 +19,7 @@ export interface TreeNodesType {
|
|
|
19
19
|
[key: string]: TreeNodeType;
|
|
20
20
|
}
|
|
21
21
|
export declare function isEveryChildChecked(nodes: TreeNodesType, parent: TreeNodeType): boolean;
|
|
22
|
-
export declare function isSomeChildChecked(nodes: TreeNodesType, parent: TreeNodeType): boolean;
|
|
22
|
+
export declare function isSomeChildChecked(nodes: TreeNodesType, parent: TreeNodeType, childrenKey: string): boolean;
|
|
23
23
|
export declare function isSomeNodeHasChildren(data: any[], childrenKey: string): boolean;
|
|
24
24
|
/**
|
|
25
25
|
* is all siblings nodes is uncheckable
|
|
@@ -18,18 +18,19 @@ export function isEveryChildChecked(nodes, parent) {
|
|
|
18
18
|
return nodes[child.refKey].check;
|
|
19
19
|
});
|
|
20
20
|
}
|
|
21
|
-
export function isSomeChildChecked(nodes, parent) {
|
|
21
|
+
export function isSomeChildChecked(nodes, parent, childrenKey) {
|
|
22
22
|
if (_isNil(nodes[parent.refKey])) {
|
|
23
23
|
return false;
|
|
24
24
|
}
|
|
25
25
|
|
|
26
26
|
var children = getChildrenByFlattenNodes(nodes, parent);
|
|
27
|
+
return children.some(function (child) {
|
|
28
|
+
var _child$childrenKey;
|
|
27
29
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
30
|
+
if ((child === null || child === void 0 ? void 0 : (_child$childrenKey = child[childrenKey]) === null || _child$childrenKey === void 0 ? void 0 : _child$childrenKey.length) > 0) {
|
|
31
|
+
return isSomeChildChecked(nodes, child, childrenKey);
|
|
32
|
+
}
|
|
31
33
|
|
|
32
|
-
return children.some(function (child) {
|
|
33
34
|
return nodes[child.refKey].check;
|
|
34
35
|
});
|
|
35
36
|
}
|
|
@@ -184,7 +185,7 @@ export function getNodeCheckState(_ref) {
|
|
|
184
185
|
return CHECK_STATE.CHECK;
|
|
185
186
|
}
|
|
186
187
|
|
|
187
|
-
if (isSomeChildChecked(nodes, node)) {
|
|
188
|
+
if (isSomeChildChecked(nodes, node, childrenKey)) {
|
|
188
189
|
nodes[node.refKey].checkAll = false;
|
|
189
190
|
return CHECK_STATE.INDETERMINATE;
|
|
190
191
|
}
|
|
@@ -31,11 +31,11 @@ export interface CheckboxProps<V = ValueType> extends WithAsProps {
|
|
|
31
31
|
/** Used for the name of the form */
|
|
32
32
|
name?: string;
|
|
33
33
|
/** Called when the user attempts to change the checked state. */
|
|
34
|
-
onChange?: (value: V, checked: boolean, event: React.
|
|
34
|
+
onChange?: (value: V, checked: boolean, event: React.ChangeEvent<HTMLInputElement>) => void;
|
|
35
35
|
/** Called when the checkbox or label is clicked. */
|
|
36
|
-
onClick?: (event: React.SyntheticEvent
|
|
36
|
+
onClick?: (event: React.SyntheticEvent) => void;
|
|
37
37
|
/** Called when the checkbox is clicked. */
|
|
38
|
-
onCheckboxClick?: (event: React.SyntheticEvent
|
|
38
|
+
onCheckboxClick?: (event: React.SyntheticEvent) => void;
|
|
39
39
|
}
|
|
40
40
|
declare const Checkbox: RsRefForwardingComponent<'div', CheckboxProps>;
|
|
41
41
|
export default Checkbox;
|
|
@@ -8,6 +8,6 @@ export interface CheckboxGroupContextValue {
|
|
|
8
8
|
disabled?: boolean;
|
|
9
9
|
readOnly?: boolean;
|
|
10
10
|
plaintext?: boolean;
|
|
11
|
-
onChange?: (value: any, checked: boolean, event: React.
|
|
11
|
+
onChange?: (value: any, checked: boolean, event: React.ChangeEvent<HTMLInputElement>) => void;
|
|
12
12
|
}
|
|
13
13
|
export declare const CheckboxGroupContext: React.Context<CheckboxGroupContextValue>;
|
package/esm/DOMHelper/index.d.ts
CHANGED
|
@@ -2,34 +2,17 @@ import * as helpers from 'dom-lib';
|
|
|
2
2
|
export * from 'dom-lib';
|
|
3
3
|
declare const DOMHelper: {
|
|
4
4
|
isElement: (node: HTMLElement) => boolean;
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
end: any;
|
|
8
|
-
backfaceVisibility: string;
|
|
9
|
-
transform: string;
|
|
10
|
-
property: string;
|
|
11
|
-
timing: string;
|
|
12
|
-
delay: string;
|
|
13
|
-
duration: string;
|
|
14
|
-
};
|
|
15
|
-
translateDOMPositionXY: (style: CSSStyleDeclaration, x?: number, y?: number) => CSSStyleDeclaration;
|
|
16
|
-
getVendorPrefixedName: typeof helpers.getVendorPrefixedName;
|
|
17
|
-
BrowserSupportCore: {
|
|
18
|
-
hasCSSAnimations: () => boolean;
|
|
19
|
-
hasCSSTransforms: () => boolean;
|
|
20
|
-
hasCSS3DTransforms: () => boolean;
|
|
21
|
-
hasCSSTransitions: () => boolean;
|
|
22
|
-
};
|
|
23
|
-
DOMMouseMoveTracker: typeof helpers.DOMMouseMoveTracker;
|
|
5
|
+
on: typeof helpers.on;
|
|
6
|
+
off: typeof helpers.off;
|
|
24
7
|
WheelHandler: typeof helpers.WheelHandler;
|
|
8
|
+
DOMMouseMoveTracker: typeof helpers.DOMMouseMoveTracker;
|
|
25
9
|
addClass: (target: Element, className: string) => Element;
|
|
26
|
-
hasClass: (target: Element, className: string) => boolean;
|
|
27
10
|
removeClass: (target: Element, className: string) => Element;
|
|
11
|
+
hasClass: (target: Element, className: string) => boolean;
|
|
28
12
|
toggleClass: (target: Element, className: string) => Element;
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
getComputedStyle: (node: Element) => CSSStyleDeclaration;
|
|
13
|
+
cancelAnimationFramePolyfill: typeof clearTimeout;
|
|
14
|
+
requestAnimationFramePolyfill: typeof requestAnimationFrame;
|
|
15
|
+
getAnimationEnd: typeof helpers.getAnimationEnd;
|
|
33
16
|
ownerDocument: (node: Element) => Document;
|
|
34
17
|
ownerWindow: (componentOrElement: Element) => Window;
|
|
35
18
|
getWindow: (node: any) => Window;
|
|
@@ -46,18 +29,20 @@ declare const DOMHelper: {
|
|
|
46
29
|
} | DOMRect;
|
|
47
30
|
nodeName: (node: Element) => string;
|
|
48
31
|
getOffsetParent: (node: Element) => Element;
|
|
49
|
-
getPosition: (node: Element, offsetParent?: Element) => DOMRect | {
|
|
32
|
+
getPosition: (node: Element, offsetParent?: Element, calcMargin?: boolean) => DOMRect | {
|
|
50
33
|
top: number;
|
|
51
34
|
left: number;
|
|
52
35
|
height: number;
|
|
53
36
|
width: number;
|
|
54
37
|
};
|
|
55
38
|
isOverflowing: (container: Element) => boolean;
|
|
56
|
-
activeElement: (doc?: Document) => Element;
|
|
57
39
|
getScrollbarSize: (recalc?: boolean) => number | void;
|
|
58
40
|
getHeight: (node: Element | Window, client?: Element) => number;
|
|
59
41
|
getWidth: (node: Element | Window, client?: Element) => number;
|
|
60
|
-
|
|
61
|
-
|
|
42
|
+
isFocusable: typeof helpers.isFocusable;
|
|
43
|
+
getStyle: (node: Element, property?: string) => string | CSSStyleDeclaration;
|
|
44
|
+
removeStyle: (node: Element, keys: string | string[]) => void;
|
|
45
|
+
addStyle: (node: Element, property: string | import("dom-lib/esm/addStyle").CSSProperty, value?: string | number) => void;
|
|
46
|
+
translateDOMPositionXY: (style: CSSStyleDeclaration, x?: number, y?: number) => CSSStyleDeclaration;
|
|
62
47
|
};
|
|
63
48
|
export default DOMHelper;
|
package/esm/DOMHelper/index.js
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import * as helpers from 'dom-lib';
|
|
3
|
+
import isElement from './isElement';
|
|
3
4
|
export * from 'dom-lib';
|
|
4
5
|
|
|
5
6
|
var DOMHelper = _extends({}, helpers, {
|
|
6
|
-
isElement:
|
|
7
|
-
return (node === null || node === void 0 ? void 0 : node.nodeType) && typeof (node === null || node === void 0 ? void 0 : node.nodeName) === 'string';
|
|
8
|
-
}
|
|
7
|
+
isElement: isElement
|
|
9
8
|
});
|
|
10
9
|
|
|
11
10
|
export default DOMHelper;
|
|
@@ -41,19 +41,19 @@ export interface DatePickerProps extends PickerBaseProps<DatePickerLocale>, Form
|
|
|
41
41
|
/** Hidden seconds */
|
|
42
42
|
hideSeconds?: (second: number, date: Date) => boolean;
|
|
43
43
|
/** Called when the calendar panel date changes */
|
|
44
|
-
onChangeCalendarDate?: (date: Date, event?: React.SyntheticEvent
|
|
44
|
+
onChangeCalendarDate?: (date: Date, event?: React.SyntheticEvent) => void;
|
|
45
45
|
/** Called when opening the month view */
|
|
46
46
|
onToggleMonthDropdown?: (toggle: boolean) => void;
|
|
47
47
|
/** Called when opening the time view */
|
|
48
48
|
onToggleTimeDropdown?: (toggle: boolean) => void;
|
|
49
49
|
/** Called when the option is selected */
|
|
50
|
-
onSelect?: (date: Date, event?: React.SyntheticEvent
|
|
50
|
+
onSelect?: (date: Date, event?: React.SyntheticEvent) => void;
|
|
51
51
|
/** Called after the prev month */
|
|
52
52
|
onPrevMonth?: (date: Date) => void;
|
|
53
53
|
/** Called after the next month */
|
|
54
54
|
onNextMonth?: (date: Date) => void;
|
|
55
55
|
/** Called after clicking the OK button */
|
|
56
|
-
onOk?: (date: Date, event: React.SyntheticEvent
|
|
56
|
+
onOk?: (date: Date, event: React.SyntheticEvent) => void;
|
|
57
57
|
/** Called when clean */
|
|
58
58
|
onClean?: (event: React.MouseEvent) => void;
|
|
59
59
|
/** Custom render value */
|
|
@@ -301,7 +301,7 @@ var DatePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
301
301
|
* The callback after the enter key is triggered on the input
|
|
302
302
|
*/
|
|
303
303
|
|
|
304
|
-
var
|
|
304
|
+
var handleInputPressEnd = useCallback(function (event) {
|
|
305
305
|
if (inputState === 'Typing') {
|
|
306
306
|
updateValue(event, calendarDate);
|
|
307
307
|
}
|
|
@@ -387,6 +387,7 @@ var DatePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
387
387
|
var _usePickerClassName = usePickerClassName(_extends({}, props, {
|
|
388
388
|
classPrefix: classPrefix,
|
|
389
389
|
name: 'date',
|
|
390
|
+
appearance: appearance,
|
|
390
391
|
hasValue: hasValue,
|
|
391
392
|
cleanable: cleanable
|
|
392
393
|
})),
|
|
@@ -429,7 +430,8 @@ var DatePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
429
430
|
inputPlaceholder: typeof placeholder === 'string' && placeholder ? placeholder : formatStr,
|
|
430
431
|
inputMask: DateUtils.getDateMask(formatStr),
|
|
431
432
|
onInputChange: handleInputChange,
|
|
432
|
-
onInputBlur:
|
|
433
|
+
onInputBlur: handleInputPressEnd,
|
|
434
|
+
onInputPressEnter: handleInputPressEnd,
|
|
433
435
|
onKeyDown: onPickerKeyDown,
|
|
434
436
|
onClean: createChainedFunction(handleClean, onClean),
|
|
435
437
|
cleanable: cleanable && !disabled,
|
|
@@ -16,7 +16,7 @@ export interface CalendarProps extends WithAsProps, Omit<CalendarCoreProps, Omit
|
|
|
16
16
|
onChangeCalendarDate?: (index: number, date: Date) => void;
|
|
17
17
|
onChangeCalendarTime?: (index: number, date: Date) => void;
|
|
18
18
|
onMouseMove?: (date: Date) => void;
|
|
19
|
-
onSelect?: (date: Date, event?: React.SyntheticEvent
|
|
19
|
+
onSelect?: (date: Date, event?: React.SyntheticEvent) => void;
|
|
20
20
|
showOneCalendar?: boolean;
|
|
21
21
|
showWeekNumbers?: boolean;
|
|
22
22
|
value?: ValueType;
|
|
@@ -26,9 +26,9 @@ export interface DateRangePickerProps extends PickerBaseProps, FormControlBasePr
|
|
|
26
26
|
/** Disabled date */
|
|
27
27
|
disabledDate?: DisabledDateFunction;
|
|
28
28
|
/** Called when the option is selected */
|
|
29
|
-
onSelect?: (date: Date, event?: React.SyntheticEvent
|
|
29
|
+
onSelect?: (date: Date, event?: React.SyntheticEvent) => void;
|
|
30
30
|
/** Called after clicking the OK button */
|
|
31
|
-
onOk?: (date: ValueType, event: React.SyntheticEvent
|
|
31
|
+
onOk?: (date: ValueType, event: React.SyntheticEvent) => void;
|
|
32
32
|
/** Called when clean */
|
|
33
33
|
onClean?: (event: React.MouseEvent) => void;
|
|
34
34
|
/** Custom render value */
|
|
@@ -400,7 +400,7 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
400
400
|
* The callback after the enter key is triggered on the input
|
|
401
401
|
*/
|
|
402
402
|
|
|
403
|
-
var
|
|
403
|
+
var handleInputPressEnd = useCallback(function (event) {
|
|
404
404
|
if (inputState === 'Typing') {
|
|
405
405
|
handleValueUpdate(event, selectValue);
|
|
406
406
|
}
|
|
@@ -550,6 +550,7 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
550
550
|
var _usePickerClassName = usePickerClassName(_extends({}, props, {
|
|
551
551
|
classPrefix: classPrefix,
|
|
552
552
|
name: 'daterange',
|
|
553
|
+
appearance: appearance,
|
|
553
554
|
hasValue: hasValue,
|
|
554
555
|
cleanable: cleanable
|
|
555
556
|
})),
|
|
@@ -577,7 +578,8 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
577
578
|
inputValue: value ? getDisplayString(value, true) : '',
|
|
578
579
|
inputPlaceholder: typeof placeholder === 'string' && placeholder ? placeholder : rangeFormatStr,
|
|
579
580
|
onInputChange: handleInputChange,
|
|
580
|
-
onInputBlur:
|
|
581
|
+
onInputBlur: handleInputPressEnd,
|
|
582
|
+
onInputPressEnter: handleInputPressEnd,
|
|
581
583
|
onKeyDown: onPickerKeyDown,
|
|
582
584
|
onClean: createChainedFunction(handleClean, onClean),
|
|
583
585
|
cleanable: cleanable && !disabled,
|
|
@@ -12,7 +12,7 @@ export interface DisclosureProps {
|
|
|
12
12
|
defaultOpen?: boolean;
|
|
13
13
|
hideOnClickOutside?: boolean;
|
|
14
14
|
/** Callback when disclosure button is being activated to update the open state */
|
|
15
|
-
onToggle?: (open: boolean, event: React.SyntheticEvent
|
|
15
|
+
onToggle?: (open: boolean, event: React.SyntheticEvent) => void;
|
|
16
16
|
}
|
|
17
17
|
declare function Disclosure(props: DisclosureProps): JSX.Element;
|
|
18
18
|
declare namespace Disclosure {
|
|
@@ -13,7 +13,7 @@ export declare type DisclosureContextProps = [
|
|
|
13
13
|
DisclosureState,
|
|
14
14
|
Dispatch<DisclosureAction>,
|
|
15
15
|
{
|
|
16
|
-
onToggle: (open: boolean, event?: React.SyntheticEvent
|
|
16
|
+
onToggle: (open: boolean, event?: React.SyntheticEvent) => void;
|
|
17
17
|
}
|
|
18
18
|
];
|
|
19
19
|
declare const DisclosureContext: React.Context<DisclosureContextProps>;
|
|
@@ -32,7 +32,7 @@ export interface DropdownMenuItemProps<T = any> extends WithAsProps, Omit<React.
|
|
|
32
32
|
*/
|
|
33
33
|
open?: boolean;
|
|
34
34
|
/** Select the callback function for the current option */
|
|
35
|
-
onSelect?: (eventKey: T, event: React.SyntheticEvent
|
|
35
|
+
onSelect?: (eventKey: T, event: React.SyntheticEvent) => void;
|
|
36
36
|
}
|
|
37
37
|
/**
|
|
38
38
|
* The <Dropdown.Item> API
|
|
@@ -15,6 +15,7 @@ import SafeAnchor from '../SafeAnchor';
|
|
|
15
15
|
import NavContext from '../Nav/NavContext';
|
|
16
16
|
import useInternalId from '../utils/useInternalId';
|
|
17
17
|
import { DropdownActionType } from './DropdownState';
|
|
18
|
+
import { useRenderDropdownItem } from './useRenderDropdownItem';
|
|
18
19
|
|
|
19
20
|
/**
|
|
20
21
|
* The <Dropdown.Item> API
|
|
@@ -29,7 +30,13 @@ var DropdownItem = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
29
30
|
eventKey = props.eventKey,
|
|
30
31
|
onSelect = props.onSelect,
|
|
31
32
|
icon = props.icon,
|
|
32
|
-
|
|
33
|
+
_props$as = props.as,
|
|
34
|
+
Component = _props$as === void 0 ? 'li' : _props$as,
|
|
35
|
+
divider = props.divider,
|
|
36
|
+
panel = props.panel,
|
|
37
|
+
children = props.children,
|
|
38
|
+
disabled = props.disabled,
|
|
39
|
+
restProps = _objectWithoutPropertiesLoose(props, ["classPrefix", "className", "active", "eventKey", "onSelect", "icon", "as", "divider", "panel", "children", "disabled"]);
|
|
33
40
|
|
|
34
41
|
var internalId = useInternalId('DropdownItem');
|
|
35
42
|
var nav = useContext(NavContext);
|
|
@@ -82,6 +89,7 @@ var DropdownItem = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
82
89
|
};
|
|
83
90
|
}
|
|
84
91
|
}, [internalId, selected, dispatch]);
|
|
92
|
+
var renderDropdownItem = useRenderDropdownItem(Component);
|
|
85
93
|
|
|
86
94
|
if (sidenav !== null && sidenav !== void 0 && sidenav.expanded) {
|
|
87
95
|
return /*#__PURE__*/React.createElement(SidenavDropdownItem, _extends({
|
|
@@ -89,28 +97,19 @@ var DropdownItem = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
89
97
|
}, props));
|
|
90
98
|
}
|
|
91
99
|
|
|
92
|
-
var _rest$as = rest.as,
|
|
93
|
-
Component = _rest$as === void 0 ? 'li' : _rest$as,
|
|
94
|
-
divider = rest.divider,
|
|
95
|
-
panel = rest.panel,
|
|
96
|
-
children = rest.children,
|
|
97
|
-
disabled = rest.disabled,
|
|
98
|
-
restProps = _objectWithoutPropertiesLoose(rest, ["as", "divider", "panel", "children", "disabled"]);
|
|
99
|
-
|
|
100
100
|
if (divider) {
|
|
101
|
-
return
|
|
101
|
+
return renderDropdownItem(_extends({
|
|
102
102
|
ref: ref,
|
|
103
|
-
role:
|
|
103
|
+
role: 'separator',
|
|
104
104
|
className: merge(prefix('divider'), className)
|
|
105
105
|
}, restProps));
|
|
106
106
|
}
|
|
107
107
|
|
|
108
108
|
if (panel) {
|
|
109
|
-
return
|
|
109
|
+
return renderDropdownItem(_extends({
|
|
110
110
|
ref: ref,
|
|
111
|
-
role: "none presentation",
|
|
112
111
|
className: merge(prefix('panel'), className)
|
|
113
|
-
}, restProps)
|
|
112
|
+
}, restProps));
|
|
114
113
|
}
|
|
115
114
|
|
|
116
115
|
if (navbar) {
|
|
@@ -134,6 +133,7 @@ var DropdownItem = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
134
133
|
className: classes,
|
|
135
134
|
"aria-current": selected || undefined
|
|
136
135
|
}, dataAttributes, restProps, {
|
|
136
|
+
as: Component,
|
|
137
137
|
onClick: createChainedFunction(handleClickNavbarDropdownItem, restProps.onClick)
|
|
138
138
|
}), icon && /*#__PURE__*/React.cloneElement(icon, {
|
|
139
139
|
className: prefix('menu-icon')
|
|
@@ -165,12 +165,14 @@ var DropdownItem = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
165
165
|
dataAttributes['data-event-key-type'] = typeof eventKey;
|
|
166
166
|
}
|
|
167
167
|
|
|
168
|
-
return
|
|
168
|
+
return renderDropdownItem(_extends({
|
|
169
169
|
ref: mergeRefs(ref, menuitemRef),
|
|
170
170
|
className: classes
|
|
171
|
-
}, menuitem, dataAttributes, restProps
|
|
172
|
-
|
|
173
|
-
|
|
171
|
+
}, menuitem, dataAttributes, restProps, {
|
|
172
|
+
children: /*#__PURE__*/React.createElement(React.Fragment, null, icon && /*#__PURE__*/React.cloneElement(icon, {
|
|
173
|
+
className: prefix('menu-icon')
|
|
174
|
+
}), children)
|
|
175
|
+
}));
|
|
174
176
|
});
|
|
175
177
|
});
|
|
176
178
|
DropdownItem.displayName = 'Dropdown.Item';
|
|
@@ -19,8 +19,8 @@ export interface DropdownMenuProps<T = string> extends StandardProps {
|
|
|
19
19
|
disabled?: boolean;
|
|
20
20
|
activeKey?: T;
|
|
21
21
|
trigger?: 'hover' | 'click';
|
|
22
|
-
onSelect?: (eventKey: T, event: React.SyntheticEvent
|
|
23
|
-
onToggle?: (eventKey: T, event: React.SyntheticEvent
|
|
22
|
+
onSelect?: (eventKey: T, event: React.SyntheticEvent) => void;
|
|
23
|
+
onToggle?: (eventKey: T, event: React.SyntheticEvent) => void;
|
|
24
24
|
}
|
|
25
25
|
/**
|
|
26
26
|
* The <Dropdown.Menu> API
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import React, { useCallback } from 'react';
|
|
2
|
+
export function useRenderDropdownItem(Component) {
|
|
3
|
+
return useCallback(function (props, OverrideComponent) {
|
|
4
|
+
if (Component === 'li') {
|
|
5
|
+
if (OverrideComponent) {
|
|
6
|
+
return /*#__PURE__*/React.createElement("li", {
|
|
7
|
+
role: "none presentation"
|
|
8
|
+
}, /*#__PURE__*/React.createElement(OverrideComponent, props));
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
return /*#__PURE__*/React.createElement(Component, props);
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
return /*#__PURE__*/React.createElement("li", {
|
|
15
|
+
role: "none presentation"
|
|
16
|
+
}, /*#__PURE__*/React.createElement(Component, props));
|
|
17
|
+
}, [Component]);
|
|
18
|
+
}
|
package/esm/Form/Form.d.ts
CHANGED
|
@@ -33,7 +33,7 @@ export interface FormProps<T = Record<string, any>, errorMsgType = any, E = {
|
|
|
33
33
|
/** The error message comes from context */
|
|
34
34
|
errorFromContext?: boolean;
|
|
35
35
|
/** Callback fired when data changing */
|
|
36
|
-
onChange?: (formValue: T, event: React.SyntheticEvent
|
|
36
|
+
onChange?: (formValue: T, event: React.SyntheticEvent) => void;
|
|
37
37
|
/** Callback fired when error checking */
|
|
38
38
|
onError?: (formError: E) => void;
|
|
39
39
|
/** Callback fired when data cheking */
|