rsuite 5.0.0-beta.8 → 5.0.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/README.md +4 -4
- package/Sidenav/styles/index.less +99 -37
- package/cjs/@types/common.d.ts +2 -0
- package/cjs/DateRangePicker/Calendar.d.ts +2 -1
- package/cjs/DateRangePicker/Calendar.js +4 -3
- package/cjs/DateRangePicker/DateRangePicker.d.ts +1 -1
- package/cjs/DateRangePicker/DateRangePicker.js +58 -43
- package/cjs/DateRangePicker/utils.d.ts +1 -1
- package/cjs/DateRangePicker/utils.js +9 -5
- package/cjs/Dropdown/Dropdown.js +31 -18
- package/cjs/Dropdown/DropdownContext.d.ts +4 -1
- package/cjs/Dropdown/DropdownItem.js +31 -4
- package/cjs/Dropdown/DropdownState.d.ts +37 -0
- package/cjs/Dropdown/DropdownState.js +66 -0
- package/cjs/SelectPicker/SelectPicker.d.ts +1 -3
- package/cjs/Sidenav/SidenavDropdown.js +6 -1
- package/cjs/Sidenav/SidenavItem.js +4 -12
- package/cjs/utils/dateUtils.d.ts +1 -0
- package/cjs/utils/dateUtils.js +5 -1
- package/cjs/utils/useInternalId.d.ts +4 -0
- package/cjs/utils/useInternalId.js +24 -0
- package/cjs/utils/useUniqueId.d.ts +1 -1
- package/cjs/utils/useUniqueId.js +1 -1
- package/dist/rsuite-rtl.css +142 -72
- package/dist/rsuite-rtl.min.css +1 -1
- package/dist/rsuite-rtl.min.css.map +1 -1
- package/dist/rsuite.css +142 -72
- package/dist/rsuite.js +54 -10
- 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 +2 -0
- package/esm/DateRangePicker/Calendar.d.ts +2 -1
- package/esm/DateRangePicker/Calendar.js +4 -3
- package/esm/DateRangePicker/DateRangePicker.d.ts +1 -1
- package/esm/DateRangePicker/DateRangePicker.js +27 -12
- package/esm/DateRangePicker/utils.d.ts +1 -1
- package/esm/DateRangePicker/utils.js +7 -3
- package/esm/Dropdown/Dropdown.js +30 -19
- package/esm/Dropdown/DropdownContext.d.ts +4 -1
- package/esm/Dropdown/DropdownItem.js +30 -6
- package/esm/Dropdown/DropdownState.d.ts +37 -0
- package/esm/Dropdown/DropdownState.js +55 -0
- package/esm/SelectPicker/SelectPicker.d.ts +1 -3
- package/esm/Sidenav/SidenavDropdown.js +5 -1
- package/esm/Sidenav/SidenavItem.js +4 -10
- package/esm/utils/dateUtils.d.ts +1 -0
- package/esm/utils/dateUtils.js +1 -0
- package/esm/utils/useInternalId.d.ts +4 -0
- package/esm/utils/useInternalId.js +16 -0
- package/esm/utils/useUniqueId.d.ts +1 -1
- package/esm/utils/useUniqueId.js +1 -1
- package/package.json +2 -2
- package/styles/color-modes/dark.less +16 -0
- package/styles/color-modes/high-contrast.less +17 -0
- package/styles/color-modes/light.less +16 -0
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
exports.__esModule = true;
|
|
4
4
|
exports.getCalendarDate = getCalendarDate;
|
|
5
|
-
exports.getWeekHoverRange = exports.getMonthHoverRange = exports.
|
|
5
|
+
exports.getWeekHoverRange = exports.getMonthHoverRange = exports.isSameRange = exports.getDefaultRanges = exports.setTimingMargin = void 0;
|
|
6
6
|
|
|
7
7
|
var _utils = require("../utils");
|
|
8
8
|
|
|
@@ -51,13 +51,17 @@ var getDefaultRanges = function getDefaultRanges() {
|
|
|
51
51
|
|
|
52
52
|
exports.getDefaultRanges = getDefaultRanges;
|
|
53
53
|
|
|
54
|
-
var
|
|
55
|
-
var
|
|
54
|
+
var isSameRange = function isSameRange(source, dest, format) {
|
|
55
|
+
var result = _utils.DateUtils.isSameDay(source === null || source === void 0 ? void 0 : source[0], dest === null || dest === void 0 ? void 0 : dest[0]) && _utils.DateUtils.isSameDay(source === null || source === void 0 ? void 0 : source[1], dest === null || dest === void 0 ? void 0 : dest[1]);
|
|
56
56
|
|
|
57
|
-
|
|
57
|
+
if (_utils.DateUtils.shouldTime(format)) {
|
|
58
|
+
result && (result = _utils.DateUtils.isSameSecond(source === null || source === void 0 ? void 0 : source[0], dest === null || dest === void 0 ? void 0 : dest[0]) && _utils.DateUtils.isSameSecond(source === null || source === void 0 ? void 0 : source[1], dest === null || dest === void 0 ? void 0 : dest[1]));
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
return result;
|
|
58
62
|
};
|
|
59
63
|
|
|
60
|
-
exports.
|
|
64
|
+
exports.isSameRange = isSameRange;
|
|
61
65
|
|
|
62
66
|
var getMonthHoverRange = function getMonthHoverRange(date) {
|
|
63
67
|
return [_utils.DateUtils.startOfMonth(date), _utils.DateUtils.endOfMonth(date)];
|
package/cjs/Dropdown/Dropdown.js
CHANGED
|
@@ -17,6 +17,8 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
|
17
17
|
|
|
18
18
|
var _omit = _interopRequireDefault(require("lodash/omit"));
|
|
19
19
|
|
|
20
|
+
var _pick = _interopRequireDefault(require("lodash/pick"));
|
|
21
|
+
|
|
20
22
|
var _DropdownMenu = _interopRequireDefault(require("./DropdownMenu"));
|
|
21
23
|
|
|
22
24
|
var _utils = require("../utils");
|
|
@@ -47,6 +49,8 @@ var _SidenavDropdown = _interopRequireDefault(require("../Sidenav/SidenavDropdow
|
|
|
47
49
|
|
|
48
50
|
var _NavContext = _interopRequireDefault(require("../Nav/NavContext"));
|
|
49
51
|
|
|
52
|
+
var _DropdownState = require("./DropdownState");
|
|
53
|
+
|
|
50
54
|
var defaultProps = {
|
|
51
55
|
as: 'div',
|
|
52
56
|
classPrefix: 'dropdown',
|
|
@@ -124,14 +128,29 @@ var Dropdown = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
124
128
|
}, [trigger]);
|
|
125
129
|
var parentMenu = (0, _react.useContext)(_MenuContext.default);
|
|
126
130
|
var sidenav = (0, _react.useContext)(_Sidenav.SidenavContext);
|
|
127
|
-
var navbar = (0, _react.useContext)(_Navbar.NavbarContext);
|
|
131
|
+
var navbar = (0, _react.useContext)(_Navbar.NavbarContext);
|
|
132
|
+
|
|
133
|
+
var _useReducer = (0, _react.useReducer)(_DropdownState.reducer, _DropdownState.initialState),
|
|
134
|
+
items = _useReducer[0].items,
|
|
135
|
+
dispatch = _useReducer[1];
|
|
136
|
+
|
|
137
|
+
var hasSelectedItem = (0, _react.useMemo)(function () {
|
|
138
|
+
return items.some(function (item) {
|
|
139
|
+
return item.props.selected;
|
|
140
|
+
});
|
|
141
|
+
}, [items]);
|
|
142
|
+
var dropdownContextValue = (0, _react.useMemo)(function () {
|
|
143
|
+
return {
|
|
144
|
+
activeKey: activeKey,
|
|
145
|
+
onSelect: emitSelect,
|
|
146
|
+
hasSelectedItem: hasSelectedItem,
|
|
147
|
+
dispatch: dispatch
|
|
148
|
+
};
|
|
149
|
+
}, [activeKey, emitSelect, hasSelectedItem, dispatch]); // Render a disclosure when inside expanded <Sidenav>
|
|
128
150
|
|
|
129
151
|
if (sidenav !== null && sidenav !== void 0 && sidenav.expanded) {
|
|
130
152
|
return /*#__PURE__*/_react.default.createElement(_DropdownContext.default.Provider, {
|
|
131
|
-
value:
|
|
132
|
-
activeKey: activeKey,
|
|
133
|
-
onSelect: emitSelect
|
|
134
|
-
}
|
|
153
|
+
value: dropdownContextValue
|
|
135
154
|
}, /*#__PURE__*/_react.default.createElement(_SidenavDropdown.default, (0, _extends2.default)({
|
|
136
155
|
ref: ref
|
|
137
156
|
}, rest)));
|
|
@@ -140,10 +159,7 @@ var Dropdown = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
140
159
|
|
|
141
160
|
if (navbar) {
|
|
142
161
|
return /*#__PURE__*/_react.default.createElement(_DropdownContext.default.Provider, {
|
|
143
|
-
value:
|
|
144
|
-
activeKey: activeKey,
|
|
145
|
-
onSelect: emitSelect
|
|
146
|
-
}
|
|
162
|
+
value: dropdownContextValue
|
|
147
163
|
}, /*#__PURE__*/_react.default.createElement(_Disclosure.default, {
|
|
148
164
|
hideOnClickOutside: true
|
|
149
165
|
}, function (_ref, containerRef) {
|
|
@@ -183,7 +199,7 @@ var Dropdown = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
183
199
|
className: toggleClassName,
|
|
184
200
|
placement: placement,
|
|
185
201
|
disabled: disabled
|
|
186
|
-
}, (0, _omit.default)(menuButtonProps, ['open']), toggleProps), title);
|
|
202
|
+
}, (0, _omit.default)(menuButtonProps, ['open']), (0, _omit.default)(toggleProps, ['data-testid'])), title);
|
|
187
203
|
};
|
|
188
204
|
|
|
189
205
|
if (parentMenu) {
|
|
@@ -199,16 +215,13 @@ var Dropdown = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
199
215
|
className: mergeNavItemClassNames(toggleClassName, withNavItemClassPrefix({
|
|
200
216
|
focus: active
|
|
201
217
|
}))
|
|
202
|
-
}, menuButtonProps, (0, _omit.default)(menuitemProps, ['onClick']), toggleProps), title);
|
|
218
|
+
}, menuButtonProps, (0, _omit.default)(menuitemProps, ['onClick']), (0, _omit.default)(toggleProps, 'data-testid')), title);
|
|
203
219
|
});
|
|
204
220
|
};
|
|
205
221
|
}
|
|
206
222
|
|
|
207
223
|
return /*#__PURE__*/_react.default.createElement(_DropdownContext.default.Provider, {
|
|
208
|
-
value:
|
|
209
|
-
activeKey: activeKey,
|
|
210
|
-
onSelect: emitSelect
|
|
211
|
-
}
|
|
224
|
+
value: dropdownContextValue
|
|
212
225
|
}, /*#__PURE__*/_react.default.createElement(_Menu.default, {
|
|
213
226
|
menuButtonText: title,
|
|
214
227
|
renderMenuButton: renderMenuButton,
|
|
@@ -216,7 +229,7 @@ var Dropdown = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
216
229
|
renderMenuPopup: function renderMenuPopup(_ref4, popupRef) {
|
|
217
230
|
var open = _ref4.open,
|
|
218
231
|
popupProps = (0, _objectWithoutPropertiesLoose2.default)(_ref4, ["open"]);
|
|
219
|
-
var menuClassName = mergeMenuClassName(className, withMenuClassPrefix()); // When inside a collapsed <Sidenav>, render a header in menu
|
|
232
|
+
var menuClassName = mergeMenuClassName(className, withMenuClassPrefix({})); // When inside a collapsed <Sidenav>, render a header in menu
|
|
220
233
|
|
|
221
234
|
var showHeader = !!sidenav;
|
|
222
235
|
return /*#__PURE__*/_react.default.createElement("ul", (0, _extends2.default)({
|
|
@@ -243,11 +256,11 @@ var Dropdown = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
243
256
|
|
|
244
257
|
var open = _ref5.open,
|
|
245
258
|
menuContainer = (0, _objectWithoutPropertiesLoose2.default)(_ref5, ["open"]);
|
|
246
|
-
var classes = merge(className, withClassPrefix((_withClassPrefix2 = {}, _withClassPrefix2["placement-" + (0, _kebabCase.default)((0, _utils.placementPolyfill)(placement))] = !!placement, _withClassPrefix2.disabled = disabled, _withClassPrefix2.open = open, _withClassPrefix2.submenu = !!parentMenu, _withClassPrefix2)));
|
|
259
|
+
var classes = merge(className, withClassPrefix((_withClassPrefix2 = {}, _withClassPrefix2["placement-" + (0, _kebabCase.default)((0, _utils.placementPolyfill)(placement))] = !!placement, _withClassPrefix2.disabled = disabled, _withClassPrefix2.open = open, _withClassPrefix2.submenu = !!parentMenu, _withClassPrefix2['selected-within'] = hasSelectedItem, _withClassPrefix2)));
|
|
247
260
|
return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({
|
|
248
261
|
ref: (0, _utils.mergeRefs)(ref, menuContainerRef),
|
|
249
262
|
className: classes
|
|
250
|
-
}, menuContainer, {
|
|
263
|
+
}, menuContainer, (0, _pick.default)(toggleProps, ['data-testid']), {
|
|
251
264
|
style: style
|
|
252
265
|
}));
|
|
253
266
|
}));
|
|
@@ -1,7 +1,10 @@
|
|
|
1
|
-
import React from 'react';
|
|
1
|
+
import React, { Dispatch } from 'react';
|
|
2
|
+
import { DropdownAction } from './DropdownState';
|
|
2
3
|
export interface DropdownContextProps {
|
|
3
4
|
activeKey?: string;
|
|
4
5
|
onSelect: (eventKey: string, event: React.SyntheticEvent) => void;
|
|
6
|
+
hasSelectedItem?: boolean;
|
|
7
|
+
dispatch?: Dispatch<DropdownAction>;
|
|
5
8
|
}
|
|
6
9
|
declare const DropdownContext: React.Context<DropdownContextProps>;
|
|
7
10
|
export default DropdownContext;
|
|
@@ -37,6 +37,10 @@ var _SafeAnchor = _interopRequireDefault(require("../SafeAnchor"));
|
|
|
37
37
|
|
|
38
38
|
var _NavContext = _interopRequireDefault(require("../Nav/NavContext"));
|
|
39
39
|
|
|
40
|
+
var _useInternalId = _interopRequireDefault(require("../utils/useInternalId"));
|
|
41
|
+
|
|
42
|
+
var _DropdownState = require("./DropdownState");
|
|
43
|
+
|
|
40
44
|
var defaultProps = {
|
|
41
45
|
as: 'li',
|
|
42
46
|
classPrefix: 'dropdown-item'
|
|
@@ -55,6 +59,7 @@ var DropdownItem = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
55
59
|
onSelect = props.onSelect,
|
|
56
60
|
icon = props.icon,
|
|
57
61
|
rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["classPrefix", "className", "active", "eventKey", "onSelect", "icon"]);
|
|
62
|
+
var internalId = (0, _useInternalId.default)('DropdownItem');
|
|
58
63
|
var nav = (0, _react.useContext)(_NavContext.default);
|
|
59
64
|
var dropdown = (0, _react.useContext)(_DropdownContext.default);
|
|
60
65
|
|
|
@@ -82,6 +87,29 @@ var DropdownItem = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
82
87
|
});
|
|
83
88
|
handleSelectItem === null || handleSelectItem === void 0 ? void 0 : handleSelectItem(event);
|
|
84
89
|
}, [dispatchDisclosure, handleSelectItem]);
|
|
90
|
+
var selected = activeProp || !(0, _isNil.default)(eventKey) && ((0, _utils.shallowEqual)(dropdown === null || dropdown === void 0 ? void 0 : dropdown.activeKey, eventKey) || (0, _utils.shallowEqual)(nav === null || nav === void 0 ? void 0 : nav.activeKey, eventKey));
|
|
91
|
+
var dispatch = dropdown === null || dropdown === void 0 ? void 0 : dropdown.dispatch;
|
|
92
|
+
(0, _react.useEffect)(function () {
|
|
93
|
+
if (dispatch) {
|
|
94
|
+
dispatch({
|
|
95
|
+
type: _DropdownState.DropdownActionType.RegisterItem,
|
|
96
|
+
payload: {
|
|
97
|
+
id: internalId,
|
|
98
|
+
props: {
|
|
99
|
+
selected: selected
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
});
|
|
103
|
+
return function () {
|
|
104
|
+
dispatch({
|
|
105
|
+
type: _DropdownState.DropdownActionType.UnregisterItem,
|
|
106
|
+
payload: {
|
|
107
|
+
id: internalId
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
}, [internalId, selected, dispatch]);
|
|
85
113
|
|
|
86
114
|
if (sidenav !== null && sidenav !== void 0 && sidenav.expanded) {
|
|
87
115
|
return /*#__PURE__*/_react.default.createElement(_SidenavDropdownItem.default, (0, _extends2.default)({
|
|
@@ -89,7 +117,6 @@ var DropdownItem = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
89
117
|
}, props));
|
|
90
118
|
}
|
|
91
119
|
|
|
92
|
-
var menuitemSelected = activeProp || !(0, _isNil.default)(eventKey) && ((0, _utils.shallowEqual)(dropdown === null || dropdown === void 0 ? void 0 : dropdown.activeKey, eventKey) || (0, _utils.shallowEqual)(nav === null || nav === void 0 ? void 0 : nav.activeKey, eventKey));
|
|
93
120
|
var Component = rest.as,
|
|
94
121
|
divider = rest.divider,
|
|
95
122
|
panel = rest.panel,
|
|
@@ -119,7 +146,7 @@ var DropdownItem = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
119
146
|
disabled: disabled,
|
|
120
147
|
divider: divider,
|
|
121
148
|
panel: panel,
|
|
122
|
-
active:
|
|
149
|
+
active: selected
|
|
123
150
|
}));
|
|
124
151
|
var dataAttributes = {
|
|
125
152
|
'data-event-key': eventKey
|
|
@@ -132,7 +159,7 @@ var DropdownItem = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
132
159
|
return /*#__PURE__*/_react.default.createElement("li", null, /*#__PURE__*/_react.default.createElement(_SafeAnchor.default, (0, _extends2.default)({
|
|
133
160
|
ref: ref,
|
|
134
161
|
className: classes,
|
|
135
|
-
"aria-current":
|
|
162
|
+
"aria-current": selected || undefined
|
|
136
163
|
}, dataAttributes, restProps, {
|
|
137
164
|
onClick: (0, _utils.createChainedFunction)(handleClickNavbarDropdownItem, restProps.onClick)
|
|
138
165
|
}), icon && /*#__PURE__*/_react.default.cloneElement(icon, {
|
|
@@ -141,7 +168,7 @@ var DropdownItem = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
141
168
|
}
|
|
142
169
|
|
|
143
170
|
return /*#__PURE__*/_react.default.createElement(_MenuItem.default, {
|
|
144
|
-
selected:
|
|
171
|
+
selected: selected,
|
|
145
172
|
disabled: disabled,
|
|
146
173
|
onActivate: handleSelectItem
|
|
147
174
|
}, function (_ref2, menuitemRef) {
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
interface DropdownItemState {
|
|
2
|
+
/**
|
|
3
|
+
* Internal ID
|
|
4
|
+
*/
|
|
5
|
+
id: string;
|
|
6
|
+
/**
|
|
7
|
+
*
|
|
8
|
+
*/
|
|
9
|
+
props: {
|
|
10
|
+
selected: boolean;
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
interface DropdownState {
|
|
14
|
+
items: DropdownItemState[];
|
|
15
|
+
}
|
|
16
|
+
export declare const initialState: DropdownState;
|
|
17
|
+
export declare enum DropdownActionType {
|
|
18
|
+
RegisterItem = 0,
|
|
19
|
+
UnregisterItem = 1,
|
|
20
|
+
UpdateItem = 2
|
|
21
|
+
}
|
|
22
|
+
export declare type DropdownAction = {
|
|
23
|
+
type: DropdownActionType.RegisterItem;
|
|
24
|
+
payload: {
|
|
25
|
+
id: string;
|
|
26
|
+
props: {
|
|
27
|
+
selected: boolean;
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
} | {
|
|
31
|
+
type: DropdownActionType.UnregisterItem;
|
|
32
|
+
payload: {
|
|
33
|
+
id: string;
|
|
34
|
+
};
|
|
35
|
+
};
|
|
36
|
+
export declare function reducer(state: DropdownState, action: DropdownAction): DropdownState;
|
|
37
|
+
export {};
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
exports.__esModule = true;
|
|
6
|
+
exports.reducer = reducer;
|
|
7
|
+
exports.DropdownActionType = exports.initialState = void 0;
|
|
8
|
+
|
|
9
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
10
|
+
|
|
11
|
+
var initialState = {
|
|
12
|
+
items: []
|
|
13
|
+
};
|
|
14
|
+
exports.initialState = initialState;
|
|
15
|
+
var DropdownActionType;
|
|
16
|
+
exports.DropdownActionType = DropdownActionType;
|
|
17
|
+
|
|
18
|
+
(function (DropdownActionType) {
|
|
19
|
+
DropdownActionType[DropdownActionType["RegisterItem"] = 0] = "RegisterItem";
|
|
20
|
+
DropdownActionType[DropdownActionType["UnregisterItem"] = 1] = "UnregisterItem";
|
|
21
|
+
DropdownActionType[DropdownActionType["UpdateItem"] = 2] = "UpdateItem";
|
|
22
|
+
})(DropdownActionType || (exports.DropdownActionType = DropdownActionType = {}));
|
|
23
|
+
|
|
24
|
+
function reducer(state, action) {
|
|
25
|
+
if (state === void 0) {
|
|
26
|
+
state = initialState;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
switch (action.type) {
|
|
30
|
+
case DropdownActionType.RegisterItem:
|
|
31
|
+
if (state.items.find(function (item) {
|
|
32
|
+
return item.id === action.payload.id;
|
|
33
|
+
})) {
|
|
34
|
+
return (0, _extends2.default)({}, state, {
|
|
35
|
+
items: state.items.map(function (item) {
|
|
36
|
+
if (item.id === action.payload.id) {
|
|
37
|
+
return (0, _extends2.default)({}, item, {
|
|
38
|
+
props: (0, _extends2.default)({}, item.props, {
|
|
39
|
+
selected: action.payload.props.selected
|
|
40
|
+
})
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
return item;
|
|
45
|
+
})
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
return (0, _extends2.default)({}, state, {
|
|
50
|
+
items: [].concat(state.items, [{
|
|
51
|
+
id: action.payload.id,
|
|
52
|
+
props: action.payload.props
|
|
53
|
+
}])
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
case DropdownActionType.UnregisterItem:
|
|
57
|
+
return (0, _extends2.default)({}, state, {
|
|
58
|
+
items: state.items.filter(function (item) {
|
|
59
|
+
return item.id !== action.payload.id;
|
|
60
|
+
})
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
default:
|
|
64
|
+
return state;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { PickerLocale } from '../locales';
|
|
3
3
|
import { PickerComponent } from '../Picker';
|
|
4
|
-
import {
|
|
4
|
+
import { FormControlPickerProps, ItemDataType } from '../@types/common';
|
|
5
5
|
import { ListProps } from 'react-virtualized/dist/commonjs/List';
|
|
6
6
|
export declare type ValueType = number | string;
|
|
7
7
|
export interface SelectProps<T = ValueType> {
|
|
@@ -16,8 +16,6 @@ export interface SelectProps<T = ValueType> {
|
|
|
16
16
|
* https://github.com/bvaughn/react-virtualized/blob/master/docs/List.md#prop-types
|
|
17
17
|
*/
|
|
18
18
|
listProps?: ListProps;
|
|
19
|
-
/** A picker can have different sizes */
|
|
20
|
-
size?: TypeAttributes.Size;
|
|
21
19
|
/** Custom search rules. */
|
|
22
20
|
searchBy?: (keyword: string, label: React.ReactNode, item: ItemDataType) => boolean;
|
|
23
21
|
/** Sort options */
|
|
@@ -33,6 +33,8 @@ var _SidenavDropdownCollapse = _interopRequireDefault(require("./SidenavDropdown
|
|
|
33
33
|
|
|
34
34
|
var _Disclosure = _interopRequireDefault(require("../Disclosure/Disclosure"));
|
|
35
35
|
|
|
36
|
+
var _DropdownContext = _interopRequireDefault(require("../Dropdown/DropdownContext"));
|
|
37
|
+
|
|
36
38
|
var defaultProps = {
|
|
37
39
|
as: 'div',
|
|
38
40
|
classPrefix: 'dropdown',
|
|
@@ -66,6 +68,9 @@ var SidenavDropdown = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
66
68
|
openKeys = _useContext$openKeys === void 0 ? [] : _useContext$openKeys,
|
|
67
69
|
onOpenChange = _useContext.onOpenChange;
|
|
68
70
|
|
|
71
|
+
var _useContext2 = (0, _react.useContext)(_DropdownContext.default),
|
|
72
|
+
hasSelectedItem = _useContext2.hasSelectedItem;
|
|
73
|
+
|
|
69
74
|
var _useClassNames = (0, _utils.useClassNames)(classPrefix),
|
|
70
75
|
merge = _useClassNames.merge,
|
|
71
76
|
withClassPrefix = _useClassNames.withClassPrefix;
|
|
@@ -88,7 +93,7 @@ var SidenavDropdown = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
88
93
|
var _withClassPrefix;
|
|
89
94
|
|
|
90
95
|
var open = _ref.open;
|
|
91
|
-
var classes = merge(className, withClassPrefix((_withClassPrefix = {}, _withClassPrefix["placement-" + (0, _kebabCase.default)((0, _utils.placementPolyfill)(placement))] = placement, _withClassPrefix[open ? 'expand' : 'collapse'] = true, _withClassPrefix.disabled = disabled, _withClassPrefix['no-caret'] = noCaret, _withClassPrefix)));
|
|
96
|
+
var classes = merge(className, withClassPrefix((_withClassPrefix = {}, _withClassPrefix["placement-" + (0, _kebabCase.default)((0, _utils.placementPolyfill)(placement))] = placement, _withClassPrefix[open ? 'expand' : 'collapse'] = true, _withClassPrefix.disabled = disabled, _withClassPrefix['selected-within'] = hasSelectedItem, _withClassPrefix['no-caret'] = noCaret, _withClassPrefix)));
|
|
92
97
|
return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({
|
|
93
98
|
ref: (0, _utils.mergeRefs)(ref, containerRef),
|
|
94
99
|
style: style,
|
|
@@ -80,28 +80,20 @@ var SidenavItem = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
80
80
|
focus: active,
|
|
81
81
|
active: selected,
|
|
82
82
|
disabled: disabled
|
|
83
|
-
}));
|
|
83
|
+
})); // Show tooltip when inside a collapse <Sidenav>
|
|
84
84
|
|
|
85
|
-
|
|
86
|
-
ref: (0, _utils.mergeRefs)(ref, menuitemRef),
|
|
87
|
-
disabled: Component === _SafeAnchor.default ? disabled : undefined,
|
|
88
|
-
className: classes,
|
|
89
|
-
"data-event-key": eventKey
|
|
90
|
-
}, menuitem, (0, _omit.default)(rest, ['divider', 'panel'])), icon, _children, /*#__PURE__*/_react.default.createElement(_Ripple.default, null)); // Show tooltip when inside a collapse <Sidenav>
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
return sidenav ? (0, _utils.appendTooltip)({
|
|
85
|
+
return (0, _utils.appendTooltip)({
|
|
94
86
|
children: function children(triggerProps, triggerRef) {
|
|
95
87
|
return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({
|
|
96
88
|
ref: (0, _utils.mergeRefs)((0, _utils.mergeRefs)(ref, menuitemRef), triggerRef),
|
|
97
89
|
disabled: Component === _SafeAnchor.default ? disabled : undefined,
|
|
98
90
|
className: classes,
|
|
99
91
|
"data-event-key": eventKey
|
|
100
|
-
},
|
|
92
|
+
}, (0, _omit.default)(rest, ['divider', 'panel']), triggerProps, menuitem), icon, _children, /*#__PURE__*/_react.default.createElement(_Ripple.default, null));
|
|
101
93
|
},
|
|
102
94
|
message: _children,
|
|
103
95
|
placement: 'right'
|
|
104
|
-
})
|
|
96
|
+
});
|
|
105
97
|
});
|
|
106
98
|
}
|
|
107
99
|
|
package/cjs/utils/dateUtils.d.ts
CHANGED
|
@@ -19,6 +19,7 @@ export { default as isBefore } from 'date-fns/isBefore';
|
|
|
19
19
|
export { default as isEqual } from 'date-fns/isEqual';
|
|
20
20
|
export { default as isSameDay } from 'date-fns/isSameDay';
|
|
21
21
|
export { default as isSameMonth } from 'date-fns/isSameMonth';
|
|
22
|
+
export { default as isSameSecond } from 'date-fns/isSameSecond';
|
|
22
23
|
export { default as parse } from 'date-fns/parse';
|
|
23
24
|
export { default as parseISO } from 'date-fns/parseISO';
|
|
24
25
|
export { default as setDate } from 'date-fns/setDate';
|
package/cjs/utils/dateUtils.js
CHANGED
|
@@ -6,7 +6,7 @@ exports.__esModule = true;
|
|
|
6
6
|
exports.disabledTime = disabledTime;
|
|
7
7
|
exports.getMonthView = getMonthView;
|
|
8
8
|
exports.getDateMask = getDateMask;
|
|
9
|
-
exports.shouldOnlyTime = exports.shouldDate = exports.shouldMonth = exports.shouldTime = exports.omitHideDisabledProps = exports.calendarOnlyProps = exports.isValid = exports.isMatch = exports.subDays = exports.startOfWeek = exports.startOfMonth = exports.startOfISOWeek = exports.startOfDay = exports.setYear = exports.setSeconds = exports.setMonth = exports.setMinutes = exports.setHours = exports.setDate = exports.parseISO = exports.parse = exports.isSameMonth = exports.isSameDay = exports.isEqual = exports.isBefore = exports.isAfter = exports.getYear = exports.getSeconds = exports.getMonth = exports.getMinutes = exports.getHours = exports.getDaysInMonth = exports.getDay = exports.getDate = exports.format = exports.endOfWeek = exports.endOfMonth = exports.endOfISOWeek = exports.endOfDay = exports.compareAsc = exports.addMonths = exports.addDays = void 0;
|
|
9
|
+
exports.shouldOnlyTime = exports.shouldDate = exports.shouldMonth = exports.shouldTime = exports.omitHideDisabledProps = exports.calendarOnlyProps = exports.isValid = exports.isMatch = exports.subDays = exports.startOfWeek = exports.startOfMonth = exports.startOfISOWeek = exports.startOfDay = exports.setYear = exports.setSeconds = exports.setMonth = exports.setMinutes = exports.setHours = exports.setDate = exports.parseISO = exports.parse = exports.isSameSecond = exports.isSameMonth = exports.isSameDay = exports.isEqual = exports.isBefore = exports.isAfter = exports.getYear = exports.getSeconds = exports.getMonth = exports.getMinutes = exports.getHours = exports.getDaysInMonth = exports.getDay = exports.getDate = exports.format = exports.endOfWeek = exports.endOfMonth = exports.endOfISOWeek = exports.endOfDay = exports.compareAsc = exports.addMonths = exports.addDays = void 0;
|
|
10
10
|
|
|
11
11
|
var _pick = _interopRequireDefault(require("lodash/pick"));
|
|
12
12
|
|
|
@@ -96,6 +96,10 @@ var _isSameMonth = _interopRequireDefault(require("date-fns/isSameMonth"));
|
|
|
96
96
|
|
|
97
97
|
exports.isSameMonth = _isSameMonth.default;
|
|
98
98
|
|
|
99
|
+
var _isSameSecond = _interopRequireDefault(require("date-fns/isSameSecond"));
|
|
100
|
+
|
|
101
|
+
exports.isSameSecond = _isSameSecond.default;
|
|
102
|
+
|
|
99
103
|
var _parse = _interopRequireDefault(require("date-fns/parse"));
|
|
100
104
|
|
|
101
105
|
exports.parse = _parse.default;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
exports.__esModule = true;
|
|
6
|
+
exports.default = useInternalId;
|
|
7
|
+
|
|
8
|
+
var _react = require("react");
|
|
9
|
+
|
|
10
|
+
var _uniqueId = _interopRequireDefault(require("lodash/uniqueId"));
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Used for generating unique ID for DOM elements
|
|
14
|
+
*/
|
|
15
|
+
function useInternalId(prefix) {
|
|
16
|
+
var idRef = (0, _react.useRef)();
|
|
17
|
+
|
|
18
|
+
if (!idRef.current) {
|
|
19
|
+
idRef.current = (0, _uniqueId.default)("internal://" + prefix);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
(0, _react.useDebugValue)(idRef.current);
|
|
23
|
+
return idRef.current;
|
|
24
|
+
}
|
package/cjs/utils/useUniqueId.js
CHANGED
|
@@ -10,7 +10,7 @@ var _react = require("react");
|
|
|
10
10
|
var _uniqueId = _interopRequireDefault(require("lodash/uniqueId"));
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
|
-
* Used for generating unique ID for elements
|
|
13
|
+
* Used for generating unique ID for DOM elements
|
|
14
14
|
*/
|
|
15
15
|
function useUniqueId(prefix) {
|
|
16
16
|
var idRef = (0, _react.useRef)();
|