rsuite 5.12.0 → 5.14.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.
- package/Button/styles/index.less +1 -0
- package/CHANGELOG.md +49 -0
- package/Dropdown/styles/index.less +8 -3
- package/Grid/styles/index.less +42 -10
- package/Nav/styles/index.less +7 -1
- package/Navbar/styles/index.less +6 -1
- package/Sidenav/styles/index.less +52 -16
- package/Table/styles/index.less +0 -2
- package/Tooltip/styles/index.less +4 -4
- package/cjs/@types/common.d.ts +6 -0
- package/cjs/Cascader/DropdownMenu.js +8 -3
- package/cjs/Cascader/utils.d.ts +1 -1
- package/cjs/Col/Col.d.ts +25 -5
- package/cjs/Col/Col.js +9 -1
- package/cjs/CustomProvider/CustomProvider.d.ts +20 -7
- package/cjs/CustomProvider/CustomProvider.js +24 -3
- package/cjs/Disclosure/Disclosure.d.ts +1 -1
- package/cjs/Disclosure/DisclosureContext.d.ts +1 -1
- package/cjs/Dropdown/Dropdown.js +26 -110
- package/cjs/Dropdown/DropdownItem.js +14 -58
- package/cjs/Dropdown/DropdownMenu.js +32 -76
- package/cjs/Dropdown/DropdownToggle.js +4 -17
- package/cjs/Dropdown/useRenderDropdownItem.d.ts +1 -1
- package/cjs/Form/Form.d.ts +8 -8
- package/cjs/Form/test/Form.test.d.ts +1 -0
- package/cjs/Form/test/Form.test.js +18 -0
- package/cjs/Menu/Menu.d.ts +1 -0
- package/cjs/Menu/Menu.js +1 -0
- package/cjs/Menu/MenuItem.d.ts +1 -0
- package/cjs/Menu/MenuItem.js +1 -0
- package/cjs/Menu/Menubar.d.ts +3 -0
- package/cjs/Menu/Menubar.js +4 -0
- package/cjs/Modal/test/Modal.test.d.ts +1 -0
- package/cjs/Modal/test/Modal.test.js +14 -0
- package/cjs/Modal/utils.d.ts +1 -1
- package/cjs/Nav/Nav.d.ts +7 -2
- package/cjs/Nav/Nav.js +105 -5
- package/cjs/Nav/NavContext.d.ts +2 -8
- package/cjs/Nav/NavContext.js +1 -7
- package/cjs/Nav/NavDropdown.d.ts +71 -0
- package/cjs/Nav/NavDropdown.js +193 -0
- package/cjs/Nav/NavDropdownItem.d.ts +39 -0
- package/cjs/Nav/NavDropdownItem.js +141 -0
- package/cjs/Nav/NavDropdownMenu.d.ts +37 -0
- package/cjs/Nav/NavDropdownMenu.js +162 -0
- package/cjs/Nav/NavDropdownToggle.d.ts +21 -0
- package/cjs/Nav/NavDropdownToggle.js +74 -0
- package/cjs/Nav/NavItem.d.ts +2 -0
- package/cjs/Nav/NavItem.js +13 -26
- package/cjs/Nav/NavMenu.d.ts +38 -0
- package/cjs/Nav/NavMenu.js +122 -0
- package/cjs/Nav/test/Nav.test.d.ts +1 -0
- package/cjs/Nav/test/Nav.test.js +17 -0
- package/cjs/Navbar/NavbarDropdown.d.ts +57 -0
- package/cjs/Navbar/NavbarDropdown.js +147 -0
- package/cjs/Navbar/NavbarDropdownItem.d.ts +41 -0
- package/cjs/Navbar/NavbarDropdownItem.js +149 -0
- package/cjs/Navbar/NavbarDropdownMenu.d.ts +48 -0
- package/cjs/Navbar/NavbarDropdownMenu.js +161 -0
- package/cjs/Navbar/NavbarDropdownToggle.d.ts +19 -0
- package/cjs/Navbar/NavbarDropdownToggle.js +72 -0
- package/cjs/Navbar/NavbarItem.d.ts +5 -2
- package/cjs/Navbar/NavbarItem.js +10 -4
- package/cjs/Overlay/Modal.d.ts +1 -4
- package/cjs/Overlay/Overlay.d.ts +3 -1
- package/cjs/Overlay/Overlay.js +6 -2
- package/cjs/Overlay/OverlayTrigger.d.ts +8 -4
- package/cjs/Overlay/OverlayTrigger.js +32 -4
- package/cjs/Overlay/Position.d.ts +3 -1
- package/cjs/Overlay/Position.js +12 -4
- package/cjs/Overlay/positionUtils.d.ts +11 -4
- package/cjs/Overlay/positionUtils.js +48 -2
- package/cjs/Panel/Panel.js +9 -6
- package/cjs/Picker/utils.d.ts +1 -1
- package/cjs/Picker/utils.js +22 -15
- package/cjs/Popover/Popover.d.ts +2 -0
- package/cjs/Popover/Popover.js +6 -3
- package/cjs/Sidenav/ExpandedSidenavDropdown.d.ts +43 -0
- package/cjs/Sidenav/ExpandedSidenavDropdown.js +166 -0
- package/cjs/Sidenav/ExpandedSidenavDropdownItem.d.ts +31 -0
- package/cjs/Sidenav/ExpandedSidenavDropdownItem.js +141 -0
- package/cjs/Sidenav/ExpandedSidenavDropdownMenu.d.ts +26 -0
- package/cjs/Sidenav/ExpandedSidenavDropdownMenu.js +145 -0
- package/cjs/Sidenav/Sidenav.d.ts +8 -2
- package/cjs/Sidenav/Sidenav.js +1 -2
- package/cjs/Sidenav/SidenavDropdown.d.ts +30 -8
- package/cjs/Sidenav/SidenavDropdown.js +144 -73
- package/cjs/Sidenav/SidenavDropdownItem.d.ts +22 -5
- package/cjs/Sidenav/SidenavDropdownItem.js +88 -72
- package/cjs/Sidenav/SidenavDropdownMenu.d.ts +26 -16
- package/cjs/Sidenav/SidenavDropdownMenu.js +122 -90
- package/cjs/Sidenav/SidenavDropdownToggle.d.ts +19 -0
- package/cjs/Sidenav/SidenavDropdownToggle.js +73 -0
- package/cjs/Sidenav/SidenavItem.d.ts +7 -0
- package/cjs/Sidenav/SidenavItem.js +54 -37
- package/cjs/Sidenav/SidenavToggle.d.ts +5 -1
- package/cjs/Sidenav/SidenavToggle.js +25 -9
- package/cjs/Toggle/Toggle.d.ts +1 -1
- package/cjs/Tooltip/Tooltip.d.ts +3 -1
- package/cjs/Tooltip/Tooltip.js +8 -3
- package/cjs/Whisper/Whisper.d.ts +3 -5
- package/cjs/Whisper/Whisper.js +6 -1
- package/cjs/Whisper/test/Whisper.test.d.ts +1 -0
- package/cjs/Whisper/test/Whisper.test.js +23 -0
- package/cjs/index.d.ts +3 -3
- package/cjs/index.js +3 -2
- package/cjs/toaster/ToastContainer.d.ts +1 -0
- package/cjs/toaster/ToastContainer.js +4 -1
- package/cjs/toaster/index.d.ts +1 -0
- package/cjs/toaster/index.js +4 -1
- package/cjs/toaster/toaster.d.ts +0 -1
- package/cjs/toaster/useToaster.d.ts +12 -0
- package/cjs/toaster/useToaster.js +43 -0
- package/cjs/utils/constants.d.ts +1 -0
- package/cjs/utils/constants.js +3 -1
- package/cjs/utils/deprecateComponent.js +4 -6
- package/cjs/utils/deprecatePropType.d.ts +1 -5
- package/cjs/utils/deprecatePropType.js +7 -14
- package/cjs/utils/stringToObject.d.ts +1 -1
- package/cjs/utils/tplTransform.d.ts +1 -1
- package/cjs/utils/treeUtils.d.ts +3 -3
- package/cjs/utils/treeUtils.js +8 -10
- package/cjs/utils/useCustom.d.ts +1 -1
- package/cjs/utils/useCustom.js +5 -3
- package/cjs/utils/useFocus.d.ts +1 -1
- package/cjs/utils/useInternalId.d.ts +1 -1
- package/cjs/utils/useInternalId.js +2 -2
- package/cjs/utils/warnOnce.d.ts +9 -0
- package/cjs/utils/warnOnce.js +22 -0
- package/dist/rsuite-rtl.css +735 -56
- package/dist/rsuite-rtl.min.css +1 -1
- package/dist/rsuite-rtl.min.css.map +1 -1
- package/dist/rsuite.css +735 -56
- package/dist/rsuite.js +363 -121
- 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 +6 -0
- package/esm/Cascader/DropdownMenu.js +8 -3
- package/esm/Cascader/utils.d.ts +1 -1
- package/esm/Col/Col.d.ts +25 -5
- package/esm/Col/Col.js +10 -2
- package/esm/CustomProvider/CustomProvider.d.ts +20 -7
- package/esm/CustomProvider/CustomProvider.js +22 -3
- package/esm/Disclosure/Disclosure.d.ts +1 -1
- package/esm/Disclosure/DisclosureContext.d.ts +1 -1
- package/esm/Dropdown/Dropdown.js +25 -105
- package/esm/Dropdown/DropdownItem.js +13 -55
- package/esm/Dropdown/DropdownMenu.js +31 -76
- package/esm/Dropdown/DropdownToggle.js +4 -14
- package/esm/Dropdown/useRenderDropdownItem.d.ts +1 -1
- package/esm/Form/Form.d.ts +8 -8
- package/esm/Form/test/Form.test.d.ts +1 -0
- package/esm/Form/test/Form.test.js +11 -0
- package/esm/Menu/Menu.d.ts +1 -0
- package/esm/Menu/Menu.js +1 -0
- package/esm/Menu/MenuItem.d.ts +1 -0
- package/esm/Menu/MenuItem.js +1 -0
- package/esm/Menu/Menubar.d.ts +3 -0
- package/esm/Menu/Menubar.js +4 -0
- package/esm/Modal/test/Modal.test.d.ts +1 -0
- package/esm/Modal/test/Modal.test.js +9 -0
- package/esm/Modal/utils.d.ts +1 -1
- package/esm/Nav/Nav.d.ts +7 -2
- package/esm/Nav/Nav.js +96 -5
- package/esm/Nav/NavContext.d.ts +2 -8
- package/esm/Nav/NavContext.js +1 -6
- package/esm/Nav/NavDropdown.d.ts +71 -0
- package/esm/Nav/NavDropdown.js +170 -0
- package/esm/Nav/NavDropdownItem.d.ts +39 -0
- package/esm/Nav/NavDropdownItem.js +123 -0
- package/esm/Nav/NavDropdownMenu.d.ts +37 -0
- package/esm/Nav/NavDropdownMenu.js +143 -0
- package/esm/Nav/NavDropdownToggle.d.ts +21 -0
- package/esm/Nav/NavDropdownToggle.js +57 -0
- package/esm/Nav/NavItem.d.ts +2 -0
- package/esm/Nav/NavItem.js +13 -21
- package/esm/Nav/NavMenu.d.ts +38 -0
- package/esm/Nav/NavMenu.js +98 -0
- package/esm/Nav/test/Nav.test.d.ts +1 -0
- package/esm/Nav/test/Nav.test.js +11 -0
- package/esm/Navbar/NavbarDropdown.d.ts +57 -0
- package/esm/Navbar/NavbarDropdown.js +124 -0
- package/esm/Navbar/NavbarDropdownItem.d.ts +41 -0
- package/esm/Navbar/NavbarDropdownItem.js +128 -0
- package/esm/Navbar/NavbarDropdownMenu.d.ts +48 -0
- package/esm/Navbar/NavbarDropdownMenu.js +140 -0
- package/esm/Navbar/NavbarDropdownToggle.d.ts +19 -0
- package/esm/Navbar/NavbarDropdownToggle.js +55 -0
- package/esm/Navbar/NavbarItem.d.ts +5 -2
- package/esm/Navbar/NavbarItem.js +11 -4
- package/esm/Overlay/Modal.d.ts +1 -4
- package/esm/Overlay/Overlay.d.ts +3 -1
- package/esm/Overlay/Overlay.js +6 -2
- package/esm/Overlay/OverlayTrigger.d.ts +8 -4
- package/esm/Overlay/OverlayTrigger.js +33 -5
- package/esm/Overlay/Position.d.ts +3 -1
- package/esm/Overlay/Position.js +12 -4
- package/esm/Overlay/positionUtils.d.ts +11 -4
- package/esm/Overlay/positionUtils.js +46 -2
- package/esm/Panel/Panel.js +9 -6
- package/esm/Picker/utils.d.ts +1 -1
- package/esm/Picker/utils.js +22 -14
- package/esm/Popover/Popover.d.ts +2 -0
- package/esm/Popover/Popover.js +6 -3
- package/esm/Sidenav/ExpandedSidenavDropdown.d.ts +43 -0
- package/esm/Sidenav/ExpandedSidenavDropdown.js +140 -0
- package/esm/Sidenav/ExpandedSidenavDropdownItem.d.ts +31 -0
- package/esm/Sidenav/ExpandedSidenavDropdownItem.js +120 -0
- package/esm/Sidenav/ExpandedSidenavDropdownMenu.d.ts +26 -0
- package/esm/Sidenav/ExpandedSidenavDropdownMenu.js +121 -0
- package/esm/Sidenav/Sidenav.d.ts +8 -2
- package/esm/Sidenav/Sidenav.js +1 -2
- package/esm/Sidenav/SidenavDropdown.d.ts +30 -8
- package/esm/Sidenav/SidenavDropdown.js +145 -75
- package/esm/Sidenav/SidenavDropdownItem.d.ts +22 -5
- package/esm/Sidenav/SidenavDropdownItem.js +87 -71
- package/esm/Sidenav/SidenavDropdownMenu.d.ts +26 -16
- package/esm/Sidenav/SidenavDropdownMenu.js +122 -86
- package/esm/Sidenav/SidenavDropdownToggle.d.ts +19 -0
- package/esm/Sidenav/SidenavDropdownToggle.js +56 -0
- package/esm/Sidenav/SidenavItem.d.ts +7 -0
- package/esm/Sidenav/SidenavItem.js +53 -38
- package/esm/Sidenav/SidenavToggle.d.ts +5 -1
- package/esm/Sidenav/SidenavToggle.js +22 -9
- package/esm/Toggle/Toggle.d.ts +1 -1
- package/esm/Tooltip/Tooltip.d.ts +3 -1
- package/esm/Tooltip/Tooltip.js +8 -3
- package/esm/Whisper/Whisper.d.ts +3 -5
- package/esm/Whisper/Whisper.js +6 -1
- package/esm/Whisper/test/Whisper.test.d.ts +1 -0
- package/esm/Whisper/test/Whisper.test.js +16 -0
- package/esm/index.d.ts +3 -3
- package/esm/index.js +1 -1
- package/esm/toaster/ToastContainer.d.ts +1 -0
- package/esm/toaster/ToastContainer.js +1 -0
- package/esm/toaster/index.d.ts +1 -0
- package/esm/toaster/index.js +1 -0
- package/esm/toaster/toaster.d.ts +0 -1
- package/esm/toaster/useToaster.d.ts +12 -0
- package/esm/toaster/useToaster.js +34 -0
- package/esm/utils/constants.d.ts +1 -0
- package/esm/utils/constants.js +1 -0
- package/esm/utils/deprecateComponent.js +3 -4
- package/esm/utils/deprecatePropType.d.ts +1 -5
- package/esm/utils/deprecatePropType.js +3 -13
- package/esm/utils/stringToObject.d.ts +1 -1
- package/esm/utils/tplTransform.d.ts +1 -1
- package/esm/utils/treeUtils.d.ts +3 -3
- package/esm/utils/treeUtils.js +8 -10
- package/esm/utils/useCustom.d.ts +1 -1
- package/esm/utils/useCustom.js +5 -3
- package/esm/utils/useFocus.d.ts +1 -1
- package/esm/utils/useInternalId.d.ts +1 -1
- package/esm/utils/useInternalId.js +2 -2
- package/esm/utils/warnOnce.d.ts +9 -0
- package/esm/utils/warnOnce.js +18 -0
- package/package.json +1 -1
- package/styles/color-modes/dark.less +3 -0
- package/styles/color-modes/high-contrast.less +3 -0
- package/styles/color-modes/light.less +5 -2
- package/styles/variables.less +33 -12
|
@@ -2,19 +2,17 @@ import _extends from "@babel/runtime/helpers/esm/extends";
|
|
|
2
2
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
3
3
|
import React, { useCallback, useContext, useEffect } from 'react';
|
|
4
4
|
import PropTypes from 'prop-types';
|
|
5
|
-
import { SidenavContext } from '../Sidenav/Sidenav';
|
|
6
5
|
import deprecatePropType from '../utils/deprecatePropType';
|
|
7
6
|
import MenuItem from '../Menu/MenuItem';
|
|
8
7
|
import DropdownContext from './DropdownContext';
|
|
9
8
|
import isNil from 'lodash/isNil';
|
|
10
|
-
import {
|
|
11
|
-
import { NavbarContext } from '../Navbar/Navbar';
|
|
12
|
-
import SidenavDropdownItem from '../Sidenav/SidenavDropdownItem';
|
|
13
|
-
import DisclosureContext, { DisclosureActionTypes } from '../Disclosure/DisclosureContext';
|
|
9
|
+
import { mergeRefs, shallowEqual, useClassNames } from '../utils';
|
|
14
10
|
import NavContext from '../Nav/NavContext';
|
|
15
11
|
import useInternalId from '../utils/useInternalId';
|
|
16
12
|
import { DropdownActionType } from './DropdownState';
|
|
17
13
|
import { useRenderDropdownItem } from './useRenderDropdownItem';
|
|
14
|
+
import warnOnce from '../utils/warnOnce';
|
|
15
|
+
import Nav from '../Nav';
|
|
18
16
|
|
|
19
17
|
/**
|
|
20
18
|
* The <Dropdown.Item> API
|
|
@@ -52,21 +50,7 @@ var DropdownItem = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
52
50
|
onSelect === null || onSelect === void 0 ? void 0 : onSelect(eventKey, event);
|
|
53
51
|
dropdown === null || dropdown === void 0 ? void 0 : (_dropdown$onSelect = dropdown.onSelect) === null || _dropdown$onSelect === void 0 ? void 0 : _dropdown$onSelect.call(dropdown, eventKey, event);
|
|
54
52
|
}, [onSelect, eventKey, dropdown]);
|
|
55
|
-
var
|
|
56
|
-
var navbar = useContext(NavbarContext);
|
|
57
|
-
var disclosure = useContext(DisclosureContext);
|
|
58
|
-
|
|
59
|
-
var _ref = disclosure !== null && disclosure !== void 0 ? disclosure : [],
|
|
60
|
-
dispatchDisclosure = _ref[1];
|
|
61
|
-
|
|
62
|
-
var handleClickNavbarDropdownItem = useCallback(function (event) {
|
|
63
|
-
dispatchDisclosure === null || dispatchDisclosure === void 0 ? void 0 : dispatchDisclosure({
|
|
64
|
-
type: DisclosureActionTypes.Hide,
|
|
65
|
-
cascade: true
|
|
66
|
-
});
|
|
67
|
-
handleSelectItem === null || handleSelectItem === void 0 ? void 0 : handleSelectItem(event);
|
|
68
|
-
}, [dispatchDisclosure, handleSelectItem]);
|
|
69
|
-
var selected = activeProp || !isNil(eventKey) && (shallowEqual(dropdown === null || dropdown === void 0 ? void 0 : dropdown.activeKey, eventKey) || shallowEqual(nav === null || nav === void 0 ? void 0 : nav.activeKey, eventKey));
|
|
53
|
+
var selected = activeProp || !isNil(eventKey) && shallowEqual(dropdown === null || dropdown === void 0 ? void 0 : dropdown.activeKey, eventKey);
|
|
70
54
|
var dispatch = dropdown === null || dropdown === void 0 ? void 0 : dropdown.dispatch;
|
|
71
55
|
useEffect(function () {
|
|
72
56
|
if (dispatch) {
|
|
@@ -89,10 +73,12 @@ var DropdownItem = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
89
73
|
};
|
|
90
74
|
}
|
|
91
75
|
}, [internalId, selected, dispatch]);
|
|
92
|
-
var renderDropdownItem = useRenderDropdownItem(Component);
|
|
76
|
+
var renderDropdownItem = useRenderDropdownItem(Component); // If using <Dropdown.Item> within <Nav>
|
|
77
|
+
// Suggest <Nav.Item>
|
|
93
78
|
|
|
94
|
-
if (
|
|
95
|
-
|
|
79
|
+
if (nav) {
|
|
80
|
+
warnOnce('Usage of <Dropdown.Item> within <Nav> is deprecated. Replace with <Nav.Item> within <Nav.Menu>.');
|
|
81
|
+
return /*#__PURE__*/React.createElement(Nav.Item, _extends({
|
|
96
82
|
ref: ref
|
|
97
83
|
}, props));
|
|
98
84
|
}
|
|
@@ -113,42 +99,14 @@ var DropdownItem = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
113
99
|
}, restProps));
|
|
114
100
|
}
|
|
115
101
|
|
|
116
|
-
if (navbar) {
|
|
117
|
-
var classes = merge(className, withClassPrefix({
|
|
118
|
-
'with-icon': icon,
|
|
119
|
-
disabled: disabled,
|
|
120
|
-
divider: divider,
|
|
121
|
-
panel: panel,
|
|
122
|
-
active: selected
|
|
123
|
-
}));
|
|
124
|
-
var dataAttributes = {
|
|
125
|
-
'data-event-key': eventKey
|
|
126
|
-
};
|
|
127
|
-
|
|
128
|
-
if (!isNil(eventKey) && typeof eventKey !== 'string') {
|
|
129
|
-
dataAttributes['data-event-key-type'] = typeof eventKey;
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
return renderDropdownItem(_extends({
|
|
133
|
-
ref: ref,
|
|
134
|
-
className: classes,
|
|
135
|
-
'aria-current': selected || undefined
|
|
136
|
-
}, dataAttributes, restProps, {
|
|
137
|
-
onClick: createChainedFunction(handleClickNavbarDropdownItem, restProps.onClick),
|
|
138
|
-
children: /*#__PURE__*/React.createElement(React.Fragment, null, icon && /*#__PURE__*/React.cloneElement(icon, {
|
|
139
|
-
className: prefix('menu-icon')
|
|
140
|
-
}), children)
|
|
141
|
-
}));
|
|
142
|
-
}
|
|
143
|
-
|
|
144
102
|
return /*#__PURE__*/React.createElement(MenuItem, {
|
|
145
103
|
selected: selected,
|
|
146
104
|
disabled: disabled,
|
|
147
105
|
onActivate: handleSelectItem
|
|
148
|
-
}, function (
|
|
149
|
-
var selected =
|
|
150
|
-
active =
|
|
151
|
-
menuitem = _objectWithoutPropertiesLoose(
|
|
106
|
+
}, function (_ref, menuitemRef) {
|
|
107
|
+
var selected = _ref.selected,
|
|
108
|
+
active = _ref.active,
|
|
109
|
+
menuitem = _objectWithoutPropertiesLoose(_ref, ["selected", "active"]);
|
|
152
110
|
|
|
153
111
|
var classes = merge(className, withClassPrefix({
|
|
154
112
|
'with-icon': icon,
|
|
@@ -2,7 +2,7 @@ import _taggedTemplateLiteralLoose from "@babel/runtime/helpers/esm/taggedTempla
|
|
|
2
2
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
3
3
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
4
4
|
|
|
5
|
-
var _templateObject, _templateObject2
|
|
5
|
+
var _templateObject, _templateObject2;
|
|
6
6
|
|
|
7
7
|
import React, { useCallback, useContext, useMemo } from 'react';
|
|
8
8
|
import omit from 'lodash/omit';
|
|
@@ -10,15 +10,14 @@ import Menu from '../Menu/Menu';
|
|
|
10
10
|
import MenuItem from '../Menu/MenuItem';
|
|
11
11
|
import { mergeRefs, useClassNames } from '../utils';
|
|
12
12
|
import PropTypes from 'prop-types';
|
|
13
|
-
import { SidenavContext } from '../Sidenav/Sidenav';
|
|
14
13
|
import AngleLeft from '@rsuite/icons/legacy/AngleLeft';
|
|
15
14
|
import AngleRight from '@rsuite/icons/legacy/AngleRight';
|
|
16
15
|
import useCustom from '../utils/useCustom';
|
|
17
16
|
import DropdownContext from './DropdownContext';
|
|
18
|
-
import { NavbarContext } from '../Navbar';
|
|
19
17
|
import Menubar from '../Menu/Menubar';
|
|
20
|
-
import
|
|
21
|
-
import
|
|
18
|
+
import Nav from '../Nav';
|
|
19
|
+
import NavContext from '../Nav/NavContext';
|
|
20
|
+
import warnOnce from '../utils/warnOnce';
|
|
22
21
|
|
|
23
22
|
/**
|
|
24
23
|
* The <Dropdown.Menu> API
|
|
@@ -49,9 +48,8 @@ var DropdownMenu = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
49
48
|
children = props.children,
|
|
50
49
|
rest = _objectWithoutPropertiesLoose(props, ["onToggle", "eventKey", "title", "activeKey", "onSelect", "classPrefix", "children"]);
|
|
51
50
|
|
|
51
|
+
var nav = useContext(NavContext);
|
|
52
52
|
var dropdown = useContext(DropdownContext);
|
|
53
|
-
var sidenav = useContext(SidenavContext);
|
|
54
|
-
var withinNavbar = Boolean(useContext(NavbarContext));
|
|
55
53
|
|
|
56
54
|
var _useCustom = useCustom('DropdownMenu'),
|
|
57
55
|
rtl = _useCustom.rtl;
|
|
@@ -79,9 +77,18 @@ var DropdownMenu = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
79
77
|
activeKey: activeKey,
|
|
80
78
|
onSelect: onSelect
|
|
81
79
|
};
|
|
82
|
-
}, [activeKey, onSelect]); //
|
|
80
|
+
}, [activeKey, onSelect]); // If rendered within a <Nav>
|
|
81
|
+
// Suggest <Nav.Menu>
|
|
82
|
+
|
|
83
|
+
if (nav) {
|
|
84
|
+
warnOnce('Usage of <Dropdown.Menu> within <Nav> is deprecated. Replace with <Nav.Menu>');
|
|
85
|
+
return /*#__PURE__*/React.createElement(Nav.Menu, _extends({
|
|
86
|
+
ref: ref
|
|
87
|
+
}, props));
|
|
88
|
+
} // <Dropdown.Menu> is used outside of <Dropdown>
|
|
83
89
|
// renders a vertical `menubar`
|
|
84
90
|
|
|
91
|
+
|
|
85
92
|
if (!dropdown) {
|
|
86
93
|
var classes = merge(props.className, withClassPrefix());
|
|
87
94
|
return /*#__PURE__*/React.createElement(DropdownContext.Provider, {
|
|
@@ -94,10 +101,6 @@ var DropdownMenu = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
94
101
|
className: classes
|
|
95
102
|
}, menubar, rest), children);
|
|
96
103
|
}));
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
if (sidenav !== null && sidenav !== void 0 && sidenav.expanded) {
|
|
100
|
-
return /*#__PURE__*/React.createElement(SidenavDropdownMenu, omit(props, 'classPrefix'));
|
|
101
104
|
} // Parent menu exists. This is a submenu.
|
|
102
105
|
// Should render a `menuitem` that controls this submenu.
|
|
103
106
|
|
|
@@ -108,69 +111,21 @@ var DropdownMenu = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
108
111
|
disabled = _omit.disabled,
|
|
109
112
|
menuProps = _objectWithoutPropertiesLoose(_omit, ["icon", "className", "disabled"]);
|
|
110
113
|
|
|
111
|
-
var Icon = rtl ? AngleLeft : AngleRight;
|
|
112
|
-
|
|
113
|
-
if (withinNavbar) {
|
|
114
|
-
return /*#__PURE__*/React.createElement(Disclosure, {
|
|
115
|
-
hideOnClickOutside: true,
|
|
116
|
-
trigger: ['click', 'mouseover']
|
|
117
|
-
}, function (_ref, containerRef) {
|
|
118
|
-
var open = _ref.open,
|
|
119
|
-
props = _objectWithoutPropertiesLoose(_ref, ["open"]);
|
|
120
|
-
|
|
121
|
-
var classes = mergeItemClassNames(className, withItemClassPrefix({
|
|
122
|
-
disabled: disabled,
|
|
123
|
-
open: open,
|
|
124
|
-
submenu: true
|
|
125
|
-
}));
|
|
126
|
-
return /*#__PURE__*/React.createElement("li", _extends({
|
|
127
|
-
ref: mergeRefs(ref, containerRef),
|
|
128
|
-
className: classes
|
|
129
|
-
}, props), /*#__PURE__*/React.createElement(Disclosure.Button, null, function (_ref2, buttonRef) {
|
|
130
|
-
var open = _ref2.open,
|
|
131
|
-
buttonProps = _objectWithoutPropertiesLoose(_ref2, ["open"]);
|
|
132
|
-
|
|
133
|
-
var classes = mergeItemClassNames(className, prefixItemClassName(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["toggle"]))), withItemClassPrefix({
|
|
134
|
-
'with-icon': icon,
|
|
135
|
-
open: open,
|
|
136
|
-
disabled: disabled
|
|
137
|
-
}));
|
|
138
|
-
return /*#__PURE__*/React.createElement("div", _extends({
|
|
139
|
-
ref: mergeRefs(buttonRef, buttonRef),
|
|
140
|
-
className: classes,
|
|
141
|
-
"data-event-key": eventKey,
|
|
142
|
-
"data-event-key-type": typeof eventKey
|
|
143
|
-
}, buttonProps), icon && /*#__PURE__*/React.cloneElement(icon, {
|
|
144
|
-
className: prefix('menu-icon')
|
|
145
|
-
}), title, /*#__PURE__*/React.createElement(Icon, {
|
|
146
|
-
className: prefix(_templateObject2 || (_templateObject2 = _taggedTemplateLiteralLoose(["toggle-icon"])))
|
|
147
|
-
}));
|
|
148
|
-
}), /*#__PURE__*/React.createElement(Disclosure.Content, null, function (_ref3, elementRef) {
|
|
149
|
-
var open = _ref3.open;
|
|
150
|
-
var menuClassName = mergeMenuClassName(className, withMenuClassPrefix());
|
|
151
|
-
return /*#__PURE__*/React.createElement("ul", _extends({
|
|
152
|
-
ref: elementRef,
|
|
153
|
-
className: menuClassName,
|
|
154
|
-
hidden: !open
|
|
155
|
-
}, menuProps), children);
|
|
156
|
-
}));
|
|
157
|
-
});
|
|
158
|
-
}
|
|
159
|
-
|
|
114
|
+
var Icon = rtl ? AngleLeft : AngleRight;
|
|
160
115
|
return /*#__PURE__*/React.createElement(Menu, {
|
|
161
116
|
openMenuOn: ['mouseover', 'click'],
|
|
162
|
-
renderMenuButton: function renderMenuButton(
|
|
163
|
-
var open =
|
|
164
|
-
menuButtonProps = _objectWithoutPropertiesLoose(
|
|
117
|
+
renderMenuButton: function renderMenuButton(_ref, buttonRef) {
|
|
118
|
+
var open = _ref.open,
|
|
119
|
+
menuButtonProps = _objectWithoutPropertiesLoose(_ref, ["open"]);
|
|
165
120
|
|
|
166
121
|
return /*#__PURE__*/React.createElement(MenuItem, {
|
|
167
122
|
disabled: disabled
|
|
168
|
-
}, function (
|
|
169
|
-
var selected =
|
|
170
|
-
active =
|
|
171
|
-
menuitem = _objectWithoutPropertiesLoose(
|
|
123
|
+
}, function (_ref2, menuitemRef) {
|
|
124
|
+
var selected = _ref2.selected,
|
|
125
|
+
active = _ref2.active,
|
|
126
|
+
menuitem = _objectWithoutPropertiesLoose(_ref2, ["selected", "active"]);
|
|
172
127
|
|
|
173
|
-
var classes = mergeItemClassNames(className, prefixItemClassName(
|
|
128
|
+
var classes = mergeItemClassNames(className, prefixItemClassName(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["toggle"]))), withItemClassPrefix({
|
|
174
129
|
'with-icon': icon,
|
|
175
130
|
open: open,
|
|
176
131
|
active: selected,
|
|
@@ -185,13 +140,13 @@ var DropdownMenu = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
185
140
|
}, menuitem, omit(menuButtonProps, ['role'])), icon && /*#__PURE__*/React.cloneElement(icon, {
|
|
186
141
|
className: prefix('menu-icon')
|
|
187
142
|
}), title, /*#__PURE__*/React.createElement(Icon, {
|
|
188
|
-
className: prefix(
|
|
143
|
+
className: prefix(_templateObject2 || (_templateObject2 = _taggedTemplateLiteralLoose(["toggle-icon"])))
|
|
189
144
|
}));
|
|
190
145
|
});
|
|
191
146
|
},
|
|
192
|
-
renderMenuPopup: function renderMenuPopup(
|
|
193
|
-
var open =
|
|
194
|
-
popupProps = _objectWithoutPropertiesLoose(
|
|
147
|
+
renderMenuPopup: function renderMenuPopup(_ref3, popupRef) {
|
|
148
|
+
var open = _ref3.open,
|
|
149
|
+
popupProps = _objectWithoutPropertiesLoose(_ref3, ["open"]);
|
|
195
150
|
|
|
196
151
|
var menuClassName = mergeMenuClassName(className, withMenuClassPrefix());
|
|
197
152
|
return /*#__PURE__*/React.createElement("ul", _extends({
|
|
@@ -201,9 +156,9 @@ var DropdownMenu = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
201
156
|
}, popupProps, menuProps), children);
|
|
202
157
|
},
|
|
203
158
|
onToggleMenu: handleToggleSubmenu
|
|
204
|
-
}, function (
|
|
205
|
-
var open =
|
|
206
|
-
menuContainer = _objectWithoutPropertiesLoose(
|
|
159
|
+
}, function (_ref4, menuContainerRef) {
|
|
160
|
+
var open = _ref4.open,
|
|
161
|
+
menuContainer = _objectWithoutPropertiesLoose(_ref4, ["open"]);
|
|
207
162
|
|
|
208
163
|
var classes = mergeItemClassNames(className, withItemClassPrefix({
|
|
209
164
|
disabled: disabled,
|
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
3
|
-
import React
|
|
3
|
+
import React from 'react';
|
|
4
4
|
import PropTypes from 'prop-types';
|
|
5
5
|
import Button from '../Button';
|
|
6
6
|
import { useClassNames } from '../utils';
|
|
7
7
|
import useToggleCaret from '../utils/useToggleCaret';
|
|
8
|
-
import { SidenavContext } from '../Sidenav/Sidenav';
|
|
9
|
-
import NavContext from '../Nav/NavContext';
|
|
10
8
|
var DropdownToggle = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
11
9
|
var _props$as = props.as,
|
|
12
10
|
Component = _props$as === void 0 ? Button : _props$as,
|
|
@@ -21,11 +19,6 @@ var DropdownToggle = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
21
19
|
placement = _props$placement === void 0 ? 'bottomStart' : _props$placement,
|
|
22
20
|
rest = _objectWithoutPropertiesLoose(props, ["as", "className", "classPrefix", "renderToggle", "children", "icon", "noCaret", "placement"]);
|
|
23
21
|
|
|
24
|
-
var sidenav = useContext(SidenavContext);
|
|
25
|
-
|
|
26
|
-
var _useContext = useContext(NavContext),
|
|
27
|
-
withinNav = _useContext.withinNav;
|
|
28
|
-
|
|
29
22
|
var _useClassNames = useClassNames(classPrefix),
|
|
30
23
|
prefix = _useClassNames.prefix,
|
|
31
24
|
withClassPrefix = _useClassNames.withClassPrefix,
|
|
@@ -33,13 +26,10 @@ var DropdownToggle = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
33
26
|
|
|
34
27
|
var classes = merge(className, withClassPrefix({
|
|
35
28
|
'no-caret': noCaret
|
|
36
|
-
}));
|
|
37
|
-
var inSidenav = !!sidenav; // Caret icon is down by default, when Dropdown is used in Sidenav.
|
|
29
|
+
})); // Caret icon is down by default, when Dropdown is used in Sidenav.
|
|
38
30
|
|
|
39
|
-
var Caret = useToggleCaret(
|
|
40
|
-
var toggle = /*#__PURE__*/React.createElement(Component, _extends({
|
|
41
|
-
appearance: withinNav ? 'subtle' : undefined
|
|
42
|
-
}, rest, {
|
|
31
|
+
var Caret = useToggleCaret(placement);
|
|
32
|
+
var toggle = /*#__PURE__*/React.createElement(Component, _extends({}, rest, {
|
|
43
33
|
ref: ref,
|
|
44
34
|
className: classes
|
|
45
35
|
}), icon && /*#__PURE__*/React.cloneElement(icon, {
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
export declare function useRenderDropdownItem(Component: React.ElementType): (props: any, OverrideComponent?: React.ElementType
|
|
2
|
+
export declare function useRenderDropdownItem(Component: React.ElementType): (props: any, OverrideComponent?: React.ElementType) => JSX.Element;
|
package/esm/Form/Form.d.ts
CHANGED
|
@@ -44,21 +44,21 @@ export interface FormProps<T = Record<string, any>, errorMsgType = any, E = {
|
|
|
44
44
|
export interface FormInstance<T = Record<string, any>, errorMsg = string, E = {
|
|
45
45
|
[P in keyof T]?: errorMsg;
|
|
46
46
|
}> {
|
|
47
|
-
root:
|
|
47
|
+
root: HTMLFormElement | null;
|
|
48
48
|
/** Verify form data */
|
|
49
|
-
check
|
|
49
|
+
check: (callback?: (formError: E) => void) => boolean;
|
|
50
50
|
/** Asynchronously check form data */
|
|
51
|
-
checkAsync
|
|
51
|
+
checkAsync: () => Promise<any>;
|
|
52
52
|
/** Check the data field */
|
|
53
|
-
checkForField
|
|
53
|
+
checkForField: (fieldName: keyof T, callback?: (checkResult: CheckResult<errorMsg>) => void) => boolean;
|
|
54
54
|
/** Asynchronous verification as a data field */
|
|
55
|
-
checkForFieldAsync
|
|
55
|
+
checkForFieldAsync: (fieldName: keyof T) => Promise<CheckResult>;
|
|
56
56
|
/** Clear all error messages */
|
|
57
|
-
cleanErrors
|
|
57
|
+
cleanErrors: (callback?: () => void) => void;
|
|
58
58
|
/** Clear the error message of the specified field */
|
|
59
|
-
cleanErrorForField
|
|
59
|
+
cleanErrorForField: (fieldName: keyof E, callback?: () => void) => void;
|
|
60
60
|
/** All error messages are reset, and an initial value can be set */
|
|
61
|
-
resetErrors
|
|
61
|
+
resetErrors: (formError: E, callback?: () => void) => void;
|
|
62
62
|
}
|
|
63
63
|
export interface FormComponent extends RsRefForwardingComponent<'form', FormProps & {
|
|
64
64
|
ref?: React.Ref<FormInstance>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
var _formRef$current;
|
|
2
|
+
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import Form from '../Form';
|
|
5
|
+
var formRef = /*#__PURE__*/React.createRef();
|
|
6
|
+
|
|
7
|
+
/*#__PURE__*/
|
|
8
|
+
React.createElement(Form, {
|
|
9
|
+
ref: formRef
|
|
10
|
+
});
|
|
11
|
+
(_formRef$current = formRef.current) === null || _formRef$current === void 0 ? void 0 : _formRef$current.check();
|
package/esm/Menu/Menu.d.ts
CHANGED
|
@@ -33,6 +33,7 @@ export interface MenuHandle {
|
|
|
33
33
|
}
|
|
34
34
|
/**
|
|
35
35
|
* Headless ARIA `menu`
|
|
36
|
+
* @private
|
|
36
37
|
*/
|
|
37
38
|
declare function Menu({ disabled, children, openMenuOn, defaultOpen, open: openProp, menuButtonText, renderMenuButton, renderMenuPopup, onToggleMenu }: MenuProps & React.HTMLAttributes<HTMLUListElement>): React.ReactElement<React.HTMLAttributes<HTMLDivElement>, string | React.JSXElementConstructor<any>>;
|
|
38
39
|
declare namespace Menu {
|
package/esm/Menu/Menu.js
CHANGED
package/esm/Menu/MenuItem.d.ts
CHANGED
package/esm/Menu/MenuItem.js
CHANGED
package/esm/Menu/Menubar.d.ts
CHANGED
|
@@ -7,4 +7,7 @@ export interface MenubarProps {
|
|
|
7
7
|
/** Callback triggered when an item is being activated */
|
|
8
8
|
onActivateItem?: (event: React.SyntheticEvent) => void;
|
|
9
9
|
}
|
|
10
|
+
/**
|
|
11
|
+
* @private
|
|
12
|
+
*/
|
|
10
13
|
export default function Menubar({ vertical, children, onActivateItem }: MenubarProps): JSX.Element;
|
package/esm/Menu/Menubar.js
CHANGED
|
@@ -6,6 +6,10 @@ import { KEY_VALUES, useCustom } from '../utils';
|
|
|
6
6
|
import { isFocusEntering, isFocusLeaving } from '../utils/events';
|
|
7
7
|
import useMenu from './useMenu';
|
|
8
8
|
import { isFocusableElement } from '../utils/dom';
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* @private
|
|
12
|
+
*/
|
|
9
13
|
export default function Menubar(_ref) {
|
|
10
14
|
var _items$activeItemInde3;
|
|
11
15
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/esm/Modal/utils.d.ts
CHANGED
|
@@ -3,4 +3,4 @@ export declare const useBodyStyles: (ref: React.RefObject<HTMLElement>, options:
|
|
|
3
3
|
overflow: boolean;
|
|
4
4
|
drawer: boolean;
|
|
5
5
|
prefix: (...classes: any) => string;
|
|
6
|
-
}) => [import("react").CSSProperties, (entering?: boolean
|
|
6
|
+
}) => [import("react").CSSProperties, (entering?: boolean) => void, () => void];
|
package/esm/Nav/Nav.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import NavItem from './NavItem';
|
|
3
|
-
import Dropdown from '../Dropdown';
|
|
4
3
|
import { WithAsProps, RsRefForwardingComponent } from '../@types/common';
|
|
4
|
+
import NavDropdown from './NavDropdown';
|
|
5
|
+
import NavMenu from './NavMenu';
|
|
5
6
|
export interface NavProps<T = any> extends WithAsProps, Omit<React.HTMLAttributes<HTMLElement>, 'onSelect'> {
|
|
6
7
|
/** sets appearance */
|
|
7
8
|
appearance?: 'default' | 'subtle' | 'tabs';
|
|
@@ -19,8 +20,12 @@ export interface NavProps<T = any> extends WithAsProps, Omit<React.HTMLAttribute
|
|
|
19
20
|
onSelect?: (eventKey: T | undefined, event: React.SyntheticEvent) => void;
|
|
20
21
|
}
|
|
21
22
|
interface NavComponent extends RsRefForwardingComponent<'div', NavProps> {
|
|
22
|
-
|
|
23
|
+
/**
|
|
24
|
+
* @deprecated Use <Nav.Menu> instead.
|
|
25
|
+
*/
|
|
26
|
+
Dropdown: typeof NavDropdown;
|
|
23
27
|
Item: typeof NavItem;
|
|
28
|
+
Menu: typeof NavMenu;
|
|
24
29
|
}
|
|
25
30
|
declare const Nav: NavComponent;
|
|
26
31
|
export default Nav;
|
package/esm/Nav/Nav.js
CHANGED
|
@@ -1,15 +1,24 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
3
|
-
import React, { useContext, useMemo } from 'react';
|
|
3
|
+
import React, { useContext, useEffect, useMemo } from 'react';
|
|
4
4
|
import PropTypes from 'prop-types';
|
|
5
5
|
import NavItem from './NavItem';
|
|
6
|
-
import Dropdown from '../Dropdown';
|
|
7
6
|
import { useClassNames } from '../utils';
|
|
8
7
|
import { NavbarContext } from '../Navbar/Navbar';
|
|
9
8
|
import { SidenavContext } from '../Sidenav/Sidenav';
|
|
10
9
|
import NavContext from './NavContext';
|
|
11
10
|
import useEnsuredRef from '../utils/useEnsuredRef';
|
|
12
11
|
import Menubar from '../Menu/Menubar';
|
|
12
|
+
import NavDropdown from './NavDropdown';
|
|
13
|
+
import NavMenu, { NavMenuActionType, NavMenuContext } from './NavMenu';
|
|
14
|
+
import deprecateComponent from '../utils/deprecateComponent';
|
|
15
|
+
import NavDropdownItem from './NavDropdownItem';
|
|
16
|
+
import NavDropdownMenu from './NavDropdownMenu';
|
|
17
|
+
import NavbarDropdownItem from '../Navbar/NavbarDropdownItem';
|
|
18
|
+
import SidenavDropdownItem from '../Sidenav/SidenavDropdownItem';
|
|
19
|
+
import NavbarItem from '../Navbar/NavbarItem';
|
|
20
|
+
import SidenavItem from '../Sidenav/SidenavItem';
|
|
21
|
+
import useInternalId from '../utils/useInternalId';
|
|
13
22
|
var Nav = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
14
23
|
var _props$as = props.as,
|
|
15
24
|
Component = _props$as === void 0 ? 'div' : _props$as,
|
|
@@ -57,7 +66,6 @@ var Nav = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
57
66
|
var activeKey = activeKeyProp !== null && activeKeyProp !== void 0 ? activeKeyProp : activeKeyFromSidenav;
|
|
58
67
|
var contextValue = useMemo(function () {
|
|
59
68
|
return {
|
|
60
|
-
withinNav: true,
|
|
61
69
|
activeKey: activeKey,
|
|
62
70
|
onSelect: onSelectProp !== null && onSelectProp !== void 0 ? onSelectProp : onSelectFromSidenav
|
|
63
71
|
};
|
|
@@ -97,8 +105,91 @@ var Nav = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
97
105
|
className: prefix('bar')
|
|
98
106
|
})));
|
|
99
107
|
});
|
|
100
|
-
Nav.Dropdown
|
|
101
|
-
|
|
108
|
+
var DeprecatedNavDropdown = deprecateComponent(NavDropdown, '<Nav.Dropdown> is deprecated, use <Nav.Menu> instead.');
|
|
109
|
+
DeprecatedNavDropdown.Menu = deprecateComponent(NavDropdownMenu, '<Nav.Dropdown.Menu> is deprecated, use <Nav.Menu> instead');
|
|
110
|
+
DeprecatedNavDropdown.Item = deprecateComponent(NavDropdownItem, '<Nav.Dropdown.Item> is deprecated, use <Nav.Item> instead');
|
|
111
|
+
Nav.Dropdown = DeprecatedNavDropdown;
|
|
112
|
+
/**
|
|
113
|
+
* The <Nav.Item> API
|
|
114
|
+
* When used as direct child of <Nav>, render the NavItem
|
|
115
|
+
* When used within a <Nav.Menu>, render the NavDropdownItem
|
|
116
|
+
*/
|
|
117
|
+
|
|
118
|
+
Nav.Item = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
119
|
+
var nav = useContext(NavContext);
|
|
120
|
+
|
|
121
|
+
if (!nav) {
|
|
122
|
+
throw new Error('<Nav.Item> must be rendered within a <Nav> component.');
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
var parentNavMenu = useContext(NavMenuContext);
|
|
126
|
+
var navbar = useContext(NavbarContext);
|
|
127
|
+
var sidenav = useContext(SidenavContext);
|
|
128
|
+
|
|
129
|
+
var _ref2 = parentNavMenu !== null && parentNavMenu !== void 0 ? parentNavMenu : [],
|
|
130
|
+
dispatch = _ref2[1];
|
|
131
|
+
|
|
132
|
+
var _id = useInternalId('Nav.Item');
|
|
133
|
+
|
|
134
|
+
useEffect(function () {
|
|
135
|
+
if (dispatch) {
|
|
136
|
+
var _props$active;
|
|
137
|
+
|
|
138
|
+
dispatch({
|
|
139
|
+
type: NavMenuActionType.RegisterItem,
|
|
140
|
+
payload: {
|
|
141
|
+
_id: _id,
|
|
142
|
+
eventKey: props.eventKey,
|
|
143
|
+
active: (_props$active = props.active) !== null && _props$active !== void 0 ? _props$active : false
|
|
144
|
+
}
|
|
145
|
+
});
|
|
146
|
+
return function () {
|
|
147
|
+
dispatch({
|
|
148
|
+
type: NavMenuActionType.UnregisterItem,
|
|
149
|
+
payload: {
|
|
150
|
+
_id: _id
|
|
151
|
+
}
|
|
152
|
+
});
|
|
153
|
+
};
|
|
154
|
+
}
|
|
155
|
+
}, [dispatch, _id, props.eventKey, props.active]);
|
|
156
|
+
|
|
157
|
+
if (parentNavMenu) {
|
|
158
|
+
if (navbar) {
|
|
159
|
+
return /*#__PURE__*/React.createElement(NavbarDropdownItem, _extends({
|
|
160
|
+
ref: ref
|
|
161
|
+
}, props));
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
if (sidenav) {
|
|
165
|
+
return /*#__PURE__*/React.createElement(SidenavDropdownItem, _extends({
|
|
166
|
+
ref: ref
|
|
167
|
+
}, props));
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
return /*#__PURE__*/React.createElement(NavDropdownItem, _extends({
|
|
171
|
+
ref: ref
|
|
172
|
+
}, props));
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
if (navbar) {
|
|
176
|
+
return /*#__PURE__*/React.createElement(NavbarItem, _extends({
|
|
177
|
+
ref: ref
|
|
178
|
+
}, props));
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
if (sidenav) {
|
|
182
|
+
return /*#__PURE__*/React.createElement(SidenavItem, _extends({
|
|
183
|
+
ref: ref
|
|
184
|
+
}, props));
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
return /*#__PURE__*/React.createElement(NavItem, _extends({
|
|
188
|
+
ref: ref
|
|
189
|
+
}, props));
|
|
190
|
+
});
|
|
191
|
+
Nav.Item.displayName = 'Nav.Item';
|
|
192
|
+
Nav.Menu = NavMenu;
|
|
102
193
|
Nav.displayName = 'Nav';
|
|
103
194
|
Nav.propTypes = {
|
|
104
195
|
classPrefix: PropTypes.string,
|
package/esm/Nav/NavContext.d.ts
CHANGED
|
@@ -1,13 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
export interface NavContextProps {
|
|
3
|
-
|
|
4
|
-
* Whether component is rendered within a <Nav>
|
|
5
|
-
*
|
|
6
|
-
* FIXME: Bad design. Should use NavContextProps | null to determin whether within a <Nav>
|
|
7
|
-
*/
|
|
8
|
-
withinNav: boolean;
|
|
9
|
-
activeKey: string | null;
|
|
3
|
+
activeKey: string | undefined;
|
|
10
4
|
onSelect?: (eventKey: string | undefined, event: React.SyntheticEvent) => void;
|
|
11
5
|
}
|
|
12
|
-
declare const NavContext: React.Context<NavContextProps>;
|
|
6
|
+
declare const NavContext: React.Context<NavContextProps | null>;
|
|
13
7
|
export default NavContext;
|
package/esm/Nav/NavContext.js
CHANGED
|
@@ -1,8 +1,3 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
|
|
3
|
-
var NavContext = /*#__PURE__*/React.createContext({
|
|
4
|
-
withinNav: false,
|
|
5
|
-
activeKey: null,
|
|
6
|
-
onSelect: noop
|
|
7
|
-
});
|
|
2
|
+
var NavContext = /*#__PURE__*/React.createContext(null);
|
|
8
3
|
export default NavContext;
|