rsuite 5.0.0-beta.5 → 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/Animation/styles/index.less +16 -16
- package/Animation/styles/mixin.less +2 -2
- package/Button/styles/index.less +36 -1
- package/Button/styles/mixin.less +7 -1
- package/CHANGELOG.md +47 -4
- package/Calendar/styles/index.less +7 -1
- package/Checkbox/styles/index.less +18 -2
- package/DatePicker/styles/index.less +6 -2
- package/Drawer/styles/index.less +11 -2
- package/Drawer/styles/mixin.less +2 -2
- package/Dropdown/styles/index.less +4 -0
- package/Form/styles/mixin.less +6 -0
- package/InputGroup/styles/index.less +4 -0
- package/Message/styles/index.less +16 -0
- package/Modal/styles/index.less +3 -2
- package/Nav/styles/index.less +18 -2
- package/Navbar/styles/index.less +68 -34
- package/Notification/styles/index.less +9 -3
- package/Pagination/styles/index.less +12 -1
- package/Pagination/styles/mixin.less +7 -0
- package/Picker/styles/index.less +25 -3
- package/Picker/styles/mixin.less +7 -2
- package/Popover/styles/index.less +23 -30
- package/Popover/styles/mixins.less +72 -0
- package/README.md +4 -4
- package/Radio/styles/index.less +16 -0
- package/RadioGroup/styles/index.less +4 -0
- package/Rate/styles/index.less +13 -2
- package/Ripple/styles/index.less +8 -4
- package/Sidenav/styles/index.less +160 -47
- package/Table/styles/index.less +8 -0
- package/TagInput/package.json +7 -0
- package/TagInput/styles/index.less +13 -0
- package/Toggle/styles/index.less +29 -19
- package/Tooltip/styles/index.less +32 -38
- package/Tooltip/styles/mixins.less +72 -0
- package/Uploader/styles/index.less +11 -1
- package/cjs/@types/common.d.ts +2 -0
- package/cjs/Animation/Bounce.js +10 -4
- package/cjs/Animation/Collapse.d.ts +1 -48
- package/cjs/Animation/Collapse.js +60 -106
- package/cjs/Animation/Fade.js +10 -5
- package/cjs/Animation/Slide.js +8 -4
- package/cjs/Carousel/Carousel.d.ts +7 -0
- package/cjs/Carousel/Carousel.js +24 -11
- package/cjs/CheckTree/index.js +14 -5
- package/cjs/CheckTreePicker/CheckTreePicker.js +9 -5
- package/cjs/DatePicker/DatePicker.d.ts +5 -1
- package/cjs/DatePicker/DatePicker.js +2 -13
- 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/Dropdown/DropdownToggle.js +3 -6
- package/cjs/InputNumber/InputNumber.js +11 -10
- package/cjs/InputPicker/InputPicker.d.ts +16 -3
- package/cjs/InputPicker/InputPicker.js +85 -44
- package/cjs/List/ListItem.d.ts +1 -1
- package/cjs/Menu/MenuItem.js +1 -1
- package/cjs/MultiCascader/MultiCascader.js +4 -3
- package/cjs/Nav/NavItem.js +11 -63
- package/cjs/Navbar/NavbarItem.d.ts +19 -0
- package/cjs/Navbar/NavbarItem.js +93 -0
- package/cjs/Pagination/Pagination.js +1 -1
- package/cjs/Picker/PickerToggle.js +2 -2
- package/cjs/Picker/utils.d.ts +1 -1
- package/cjs/Picker/utils.js +26 -22
- package/cjs/Progress/ProgressCircle.js +15 -15
- package/cjs/SelectPicker/SelectPicker.d.ts +1 -3
- package/cjs/Sidenav/SidenavDropdown.js +6 -1
- package/cjs/Sidenav/SidenavItem.js +46 -12
- package/cjs/Slider/Slider.js +2 -1
- package/cjs/TagInput/index.d.ts +13 -0
- package/cjs/TagInput/index.js +58 -0
- package/cjs/TagPicker/index.d.ts +10 -2
- package/cjs/TagPicker/index.js +25 -6
- package/cjs/Tree/Tree.d.ts +0 -2
- package/cjs/Tree/Tree.js +13 -4
- package/cjs/Tree/TreeContext.d.ts +7 -0
- package/cjs/Tree/TreeContext.js +13 -0
- package/cjs/TreePicker/TreeNode.js +10 -3
- package/cjs/TreePicker/TreePicker.js +22 -10
- package/cjs/Uploader/UploadFileItem.d.ts +5 -0
- package/cjs/Uploader/UploadFileItem.js +4 -3
- package/cjs/Uploader/Uploader.d.ts +8 -3
- package/cjs/Uploader/Uploader.js +12 -6
- package/cjs/index.d.ts +2 -0
- package/cjs/index.js +5 -1
- package/cjs/utils/ajaxUpload.d.ts +5 -1
- package/cjs/utils/ajaxUpload.js +24 -13
- package/cjs/utils/constants.d.ts +1 -0
- package/cjs/utils/constants.js +1 -0
- 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 +1614 -221
- package/dist/rsuite-rtl.min.css +1 -1
- package/dist/rsuite-rtl.min.css.map +1 -1
- package/dist/rsuite.css +1618 -221
- package/dist/rsuite.js +288 -288
- 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/Animation/Bounce.js +8 -4
- package/esm/Animation/Collapse.d.ts +1 -48
- package/esm/Animation/Collapse.js +59 -104
- package/esm/Animation/Fade.js +8 -4
- package/esm/Animation/Slide.js +6 -3
- package/esm/Carousel/Carousel.d.ts +7 -0
- package/esm/Carousel/Carousel.js +25 -12
- package/esm/CheckTree/index.js +11 -5
- package/esm/CheckTreePicker/CheckTreePicker.js +8 -6
- package/esm/DatePicker/DatePicker.d.ts +5 -1
- package/esm/DatePicker/DatePicker.js +2 -13
- 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/Dropdown/DropdownToggle.js +3 -6
- package/esm/InputNumber/InputNumber.js +11 -10
- package/esm/InputPicker/InputPicker.d.ts +16 -3
- package/esm/InputPicker/InputPicker.js +84 -45
- package/esm/List/ListItem.d.ts +1 -1
- package/esm/Menu/MenuItem.js +1 -1
- package/esm/MultiCascader/MultiCascader.js +4 -3
- package/esm/Nav/NavItem.js +12 -61
- package/esm/Navbar/NavbarItem.d.ts +19 -0
- package/esm/Navbar/NavbarItem.js +73 -0
- package/esm/Pagination/Pagination.js +1 -1
- package/esm/Picker/PickerToggle.js +2 -2
- package/esm/Picker/utils.d.ts +1 -1
- package/esm/Picker/utils.js +26 -22
- package/esm/Progress/ProgressCircle.js +15 -15
- package/esm/SelectPicker/SelectPicker.d.ts +1 -3
- package/esm/Sidenav/SidenavDropdown.js +5 -1
- package/esm/Sidenav/SidenavItem.js +47 -13
- package/esm/Slider/Slider.js +2 -1
- package/esm/TagInput/index.d.ts +13 -0
- package/esm/TagInput/index.js +44 -0
- package/esm/TagPicker/index.d.ts +10 -2
- package/esm/TagPicker/index.js +23 -6
- package/esm/Tree/Tree.d.ts +0 -2
- package/esm/Tree/Tree.js +10 -4
- package/esm/Tree/TreeContext.d.ts +7 -0
- package/esm/Tree/TreeContext.js +3 -0
- package/esm/TreePicker/TreeNode.js +10 -4
- package/esm/TreePicker/TreePicker.js +23 -12
- package/esm/Uploader/UploadFileItem.d.ts +5 -0
- package/esm/Uploader/UploadFileItem.js +2 -3
- package/esm/Uploader/Uploader.d.ts +8 -3
- package/esm/Uploader/Uploader.js +12 -6
- package/esm/index.d.ts +2 -0
- package/esm/index.js +1 -0
- package/esm/utils/ajaxUpload.d.ts +5 -1
- package/esm/utils/ajaxUpload.js +24 -13
- package/esm/utils/constants.d.ts +1 -0
- package/esm/utils/constants.js +1 -0
- 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 +4 -9
- package/styles/color-modes/dark.less +28 -5
- package/styles/color-modes/high-contrast.less +317 -0
- package/styles/color-modes/light.less +24 -1
- package/styles/color-modes.less +5 -0
- package/styles/colors/high-contrast.less +105 -0
- package/styles/index.less +1 -0
- package/styles/mixins/color-modes.less +6 -0
- package/styles/mixins/listbox.less +13 -1
- package/styles/mixins/menu.less +7 -0
- package/styles/mixins/utilities.less +9 -1
- package/styles/variables.less +11 -0
|
@@ -2,9 +2,9 @@ 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, _templateObject3, _templateObject4;
|
|
5
|
+
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
|
|
6
6
|
|
|
7
|
-
import React, { useState, useRef, useEffect, useCallback } from 'react';
|
|
7
|
+
import React, { useState, useRef, useEffect, useCallback, useContext } from 'react';
|
|
8
8
|
import PropTypes from 'prop-types';
|
|
9
9
|
import isUndefined from 'lodash/isUndefined';
|
|
10
10
|
import isNil from 'lodash/isNil';
|
|
@@ -18,11 +18,12 @@ import { getWidth } from 'dom-lib';
|
|
|
18
18
|
import shallowEqual from '../utils/shallowEqual';
|
|
19
19
|
import { filterNodesOfTree } from '../utils/treeUtils';
|
|
20
20
|
import Plaintext from '../Plaintext';
|
|
21
|
-
import { createChainedFunction, tplTransform, getDataGroupBy, useClassNames, useCustom, useControlled, mergeRefs } from '../utils';
|
|
21
|
+
import { createChainedFunction, tplTransform, getDataGroupBy, useClassNames, useCustom, useControlled, mergeRefs, isOneOf, KEY_VALUES } from '../utils';
|
|
22
22
|
import { DropdownMenu, DropdownMenuItem, DropdownMenuCheckItem, PickerToggle, PickerOverlay, PickerToggleTrigger, useFocusItemValue, usePickerClassName, useSearch, usePublicMethods, useToggleKeyDownEvent, pickTriggerPropKeys, omitTriggerPropKeys, listPickerPropTypes } from '../Picker';
|
|
23
23
|
import Tag from '../Tag';
|
|
24
24
|
import InputAutosize from './InputAutosize';
|
|
25
25
|
import InputSearch from './InputSearch';
|
|
26
|
+
export var InputPickerContext = /*#__PURE__*/React.createContext({});
|
|
26
27
|
var defaultProps = {
|
|
27
28
|
as: 'div',
|
|
28
29
|
appearance: 'default',
|
|
@@ -36,8 +37,7 @@ var defaultProps = {
|
|
|
36
37
|
placement: 'bottomStart',
|
|
37
38
|
searchable: true,
|
|
38
39
|
menuAutoWidth: true,
|
|
39
|
-
menuMaxHeight: 320
|
|
40
|
-
tagProps: {}
|
|
40
|
+
menuMaxHeight: 320
|
|
41
41
|
};
|
|
42
42
|
var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
43
43
|
var _merge;
|
|
@@ -57,10 +57,8 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
57
57
|
toggleAs = props.toggleAs,
|
|
58
58
|
style = props.style,
|
|
59
59
|
searchable = props.searchable,
|
|
60
|
-
multi = props.multi,
|
|
61
60
|
controlledOpen = props.open,
|
|
62
61
|
placeholder = props.placeholder,
|
|
63
|
-
tagProps = props.tagProps,
|
|
64
62
|
groupBy = props.groupBy,
|
|
65
63
|
menuClassName = props.menuClassName,
|
|
66
64
|
menuStyle = props.menuStyle,
|
|
@@ -95,7 +93,13 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
95
93
|
onFocus = props.onFocus,
|
|
96
94
|
searchBy = props.searchBy,
|
|
97
95
|
placement = props.placement,
|
|
98
|
-
rest = _objectWithoutPropertiesLoose(props, ["as", "cleanable", "cacheData", "classPrefix", "data", "disabled", "readOnly", "plaintext", "defaultValue", "defaultOpen", "disabledItemValues", "locale", "toggleAs", "style", "searchable", "
|
|
96
|
+
rest = _objectWithoutPropertiesLoose(props, ["as", "cleanable", "cacheData", "classPrefix", "data", "disabled", "readOnly", "plaintext", "defaultValue", "defaultOpen", "disabledItemValues", "locale", "toggleAs", "style", "searchable", "open", "placeholder", "groupBy", "menuClassName", "menuStyle", "menuAutoWidth", "menuMaxHeight", "creatable", "value", "valueKey", "virtualized", "labelKey", "listProps", "id", "tabIndex", "sort", "renderMenu", "renderExtraFooter", "renderValue", "renderMenuItem", "renderMenuGroup", "onEnter", "onEntered", "onExit", "onExited", "onChange", "onClean", "onCreate", "onSearch", "onSelect", "onOpen", "onClose", "onBlur", "onFocus", "searchBy", "placement"]);
|
|
97
|
+
|
|
98
|
+
var _useContext = useContext(InputPickerContext),
|
|
99
|
+
multi = _useContext.multi,
|
|
100
|
+
tagProps = _useContext.tagProps,
|
|
101
|
+
trigger = _useContext.trigger,
|
|
102
|
+
disabledOptions = _useContext.disabledOptions;
|
|
99
103
|
|
|
100
104
|
if (groupBy === valueKey || groupBy === labelKey) {
|
|
101
105
|
throw Error('`groupBy` can not be equal to `valueKey` and `labelKey`');
|
|
@@ -166,9 +170,9 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
166
170
|
var _filteredData$;
|
|
167
171
|
|
|
168
172
|
// The first option after filtering is the focus.
|
|
169
|
-
setFocusItemValue((filteredData === null || filteredData === void 0 ? void 0 : (_filteredData$ = filteredData[0]) === null || _filteredData$ === void 0 ? void 0 : _filteredData$[valueKey]) || searchKeyword);
|
|
173
|
+
setFocusItemValue(disabledOptions ? searchKeyword : (filteredData === null || filteredData === void 0 ? void 0 : (_filteredData$ = filteredData[0]) === null || _filteredData$ === void 0 ? void 0 : _filteredData$[valueKey]) || searchKeyword);
|
|
170
174
|
onSearch === null || onSearch === void 0 ? void 0 : onSearch(searchKeyword, event);
|
|
171
|
-
}, [setFocusItemValue,
|
|
175
|
+
}, [disabledOptions, setFocusItemValue, valueKey, onSearch]); // Use search keywords to filter options.
|
|
172
176
|
|
|
173
177
|
var _useSearch = useSearch({
|
|
174
178
|
labelKey: labelKey,
|
|
@@ -212,16 +216,16 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
212
216
|
var activeItem = allData.find(function (item) {
|
|
213
217
|
return shallowEqual(item[valueKey], value);
|
|
214
218
|
});
|
|
215
|
-
var
|
|
219
|
+
var itemNode = placeholder;
|
|
216
220
|
|
|
217
221
|
if (activeItem !== null && activeItem !== void 0 && activeItem[labelKey]) {
|
|
218
|
-
|
|
222
|
+
itemNode = activeItem === null || activeItem === void 0 ? void 0 : activeItem[labelKey];
|
|
219
223
|
}
|
|
220
224
|
|
|
221
225
|
return {
|
|
222
226
|
isValid: !!activeItem,
|
|
223
227
|
activeItem: activeItem,
|
|
224
|
-
|
|
228
|
+
itemNode: itemNode
|
|
225
229
|
};
|
|
226
230
|
};
|
|
227
231
|
|
|
@@ -287,7 +291,7 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
287
291
|
* @param event
|
|
288
292
|
*/
|
|
289
293
|
|
|
290
|
-
var
|
|
294
|
+
var handleSelectItem = function handleSelectItem(value, item, event) {
|
|
291
295
|
setValue(value);
|
|
292
296
|
setFocusItemValue(value);
|
|
293
297
|
setSearchKeyword('');
|
|
@@ -304,7 +308,7 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
304
308
|
*/
|
|
305
309
|
|
|
306
310
|
|
|
307
|
-
var
|
|
311
|
+
var handleCheckTag = function handleCheckTag(nextItemValue, item, event, checked) {
|
|
308
312
|
var val = cloneValue();
|
|
309
313
|
|
|
310
314
|
if (checked) {
|
|
@@ -323,7 +327,7 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
323
327
|
focusInput();
|
|
324
328
|
};
|
|
325
329
|
|
|
326
|
-
var
|
|
330
|
+
var handleTagKeyPress = useCallback(function (event) {
|
|
327
331
|
var val = cloneValue();
|
|
328
332
|
var data = getAllData();
|
|
329
333
|
|
|
@@ -342,7 +346,7 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
342
346
|
return shallowEqual(v, focusItemValue);
|
|
343
347
|
})) {
|
|
344
348
|
val.push(focusItemValue);
|
|
345
|
-
} else {
|
|
349
|
+
} else if (!disabledOptions) {
|
|
346
350
|
remove(val, function (itemVal) {
|
|
347
351
|
return shallowEqual(itemVal, focusItemValue);
|
|
348
352
|
});
|
|
@@ -360,8 +364,8 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
360
364
|
setSearchKeyword('');
|
|
361
365
|
handleSelect(val, focusItem, event);
|
|
362
366
|
handleChange(val, event);
|
|
363
|
-
}, [
|
|
364
|
-
var
|
|
367
|
+
}, [cloneValue, getAllData, focusItemValue, disabledItemValues, disabledOptions, setValue, setSearchKeyword, handleSelect, handleChange, valueKey, createOption]);
|
|
368
|
+
var handleMenuItemKeyPress = useCallback(function (event) {
|
|
365
369
|
if (!focusItemValue || !controlledData) {
|
|
366
370
|
return;
|
|
367
371
|
} // If the value is disabled in this option, it is returned.
|
|
@@ -427,14 +431,43 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
427
431
|
handleChange(null, event);
|
|
428
432
|
onClean === null || onClean === void 0 ? void 0 : onClean(event);
|
|
429
433
|
}, [disabled, searchKeyword, onClean, handleChange, setValue, setFocusItemValue, setSearchKeyword]);
|
|
434
|
+
var events = {
|
|
435
|
+
onMenuPressBackspace: multi ? removeLastItem : handleClean,
|
|
436
|
+
onMenuKeyDown: onKeyDown,
|
|
437
|
+
onMenuPressEnter: null,
|
|
438
|
+
onKeyDown: null
|
|
439
|
+
};
|
|
440
|
+
var handleKeyPress = useCallback(function (event) {
|
|
441
|
+
// When typing a space, create a tag.
|
|
442
|
+
if (isOneOf('Space', trigger) && event.key === KEY_VALUES.SPACE) {
|
|
443
|
+
handleTagKeyPress(event);
|
|
444
|
+
event.preventDefault();
|
|
445
|
+
} // When typing a comma, create a tag.
|
|
446
|
+
|
|
447
|
+
|
|
448
|
+
if (isOneOf('Comma', trigger) && event.key === KEY_VALUES.COMMA) {
|
|
449
|
+
handleTagKeyPress(event);
|
|
450
|
+
event.preventDefault();
|
|
451
|
+
}
|
|
452
|
+
}, [handleTagKeyPress, trigger]);
|
|
453
|
+
|
|
454
|
+
if (multi) {
|
|
455
|
+
if (isOneOf('Enter', trigger)) {
|
|
456
|
+
events.onMenuPressEnter = handleTagKeyPress;
|
|
457
|
+
}
|
|
458
|
+
|
|
459
|
+
if (creatable) {
|
|
460
|
+
events.onKeyDown = handleKeyPress;
|
|
461
|
+
}
|
|
462
|
+
} else {
|
|
463
|
+
events.onMenuPressEnter = handleMenuItemKeyPress;
|
|
464
|
+
}
|
|
465
|
+
|
|
430
466
|
var onPickerKeyDown = useToggleKeyDownEvent(_extends({
|
|
431
467
|
triggerRef: triggerRef,
|
|
432
468
|
targetRef: targetRef,
|
|
433
|
-
overlayRef: overlayRef
|
|
434
|
-
|
|
435
|
-
onMenuPressBackspace: multi ? removeLastItem : handleClean,
|
|
436
|
-
onMenuKeyDown: onKeyDown
|
|
437
|
-
}, rest));
|
|
469
|
+
overlayRef: overlayRef
|
|
470
|
+
}, events, rest));
|
|
438
471
|
var handleExited = useCallback(function () {
|
|
439
472
|
setFocusItemValue(multi ? value === null || value === void 0 ? void 0 : value[0] : value);
|
|
440
473
|
setSearchKeyword('');
|
|
@@ -466,24 +499,24 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
466
499
|
return renderMenuItem ? renderMenuItem(newLabel, item) : newLabel;
|
|
467
500
|
};
|
|
468
501
|
|
|
469
|
-
var
|
|
502
|
+
var checkValue = function checkValue() {
|
|
470
503
|
if (multi) {
|
|
471
504
|
return {
|
|
472
505
|
isValid: false,
|
|
473
|
-
|
|
506
|
+
itemNode: null
|
|
474
507
|
};
|
|
475
508
|
}
|
|
476
509
|
|
|
477
510
|
var dataItem = getDateItem(value);
|
|
478
|
-
var
|
|
511
|
+
var itemNode = dataItem.itemNode;
|
|
479
512
|
|
|
480
513
|
if (!isNil(value) && isFunction(renderValue)) {
|
|
481
|
-
|
|
514
|
+
itemNode = renderValue(value, dataItem.activeItem, itemNode);
|
|
482
515
|
}
|
|
483
516
|
|
|
484
517
|
return {
|
|
485
518
|
isValid: dataItem.isValid,
|
|
486
|
-
|
|
519
|
+
itemNode: itemNode
|
|
487
520
|
};
|
|
488
521
|
};
|
|
489
522
|
|
|
@@ -502,7 +535,7 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
502
535
|
var tagElements = tags.map(function (tag) {
|
|
503
536
|
var _getDateItem = getDateItem(tag),
|
|
504
537
|
isValid = _getDateItem.isValid,
|
|
505
|
-
|
|
538
|
+
itemNode = _getDateItem.itemNode,
|
|
506
539
|
activeItem = _getDateItem.activeItem;
|
|
507
540
|
|
|
508
541
|
items.push(activeItem);
|
|
@@ -515,9 +548,9 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
515
548
|
key: tag,
|
|
516
549
|
size: rest.size === 'lg' ? 'lg' : rest.size === 'xs' ? 'sm' : 'md',
|
|
517
550
|
closable: !disabled && closable && !readOnly && !plaintext,
|
|
518
|
-
title: typeof
|
|
551
|
+
title: typeof itemNode === 'string' ? itemNode : undefined,
|
|
519
552
|
onClose: createChainedFunction(handleRemoveItemByTag.bind(null, tag), onClose)
|
|
520
|
-
}),
|
|
553
|
+
}), itemNode);
|
|
521
554
|
}).filter(function (item) {
|
|
522
555
|
return item !== null;
|
|
523
556
|
});
|
|
@@ -556,6 +589,12 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
556
589
|
items = items.sort(sort(false));
|
|
557
590
|
}
|
|
558
591
|
|
|
592
|
+
if (disabledOptions) {
|
|
593
|
+
return /*#__PURE__*/React.createElement(PickerOverlay, {
|
|
594
|
+
ref: mergeRefs(overlayRef, speakerRef)
|
|
595
|
+
});
|
|
596
|
+
}
|
|
597
|
+
|
|
559
598
|
var menu = items.length ? /*#__PURE__*/React.createElement(DropdownMenu, {
|
|
560
599
|
id: id ? id + "-listbox" : undefined,
|
|
561
600
|
listProps: listProps,
|
|
@@ -570,7 +609,7 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
570
609
|
maxHeight: menuMaxHeight,
|
|
571
610
|
data: items,
|
|
572
611
|
group: !isUndefined(groupBy),
|
|
573
|
-
onSelect: multi ?
|
|
612
|
+
onSelect: multi ? handleCheckTag : handleSelectItem,
|
|
574
613
|
renderMenuGroup: renderMenuGroup,
|
|
575
614
|
renderMenuItem: renderDropdownMenuItem,
|
|
576
615
|
virtualized: virtualized
|
|
@@ -587,9 +626,9 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
587
626
|
}, renderMenu ? renderMenu(menu) : menu, renderExtraFooter === null || renderExtraFooter === void 0 ? void 0 : renderExtraFooter());
|
|
588
627
|
};
|
|
589
628
|
|
|
590
|
-
var
|
|
591
|
-
isValid =
|
|
592
|
-
|
|
629
|
+
var _checkValue = checkValue(),
|
|
630
|
+
isValid = _checkValue.isValid,
|
|
631
|
+
itemNode = _checkValue.itemNode;
|
|
593
632
|
|
|
594
633
|
var tagElements = renderMultiValue();
|
|
595
634
|
/**
|
|
@@ -598,7 +637,7 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
598
637
|
* 3.If renderValue returns null or undefined, hasValue is false.
|
|
599
638
|
*/
|
|
600
639
|
|
|
601
|
-
var hasSingleValue = !isNil(value) && isFunction(renderValue) && !isNil(
|
|
640
|
+
var hasSingleValue = !isNil(value) && isFunction(renderValue) && !isNil(itemNode);
|
|
602
641
|
var hasMultiValue = isArray(value) && value.length > 0 && isFunction(renderValue) && !isNil(tagElements);
|
|
603
642
|
var hasValue = multi ? !!(tagElements !== null && tagElements !== void 0 && tagElements.length) || hasMultiValue : isValid || hasSingleValue;
|
|
604
643
|
|
|
@@ -609,7 +648,7 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
609
648
|
pickerClasses = _usePickerClassName[0],
|
|
610
649
|
usedClassNamePropKeys = _usePickerClassName[1];
|
|
611
650
|
|
|
612
|
-
var classes = merge(pickerClasses, (_merge = {}, _merge[prefix(_templateObject2 || (_templateObject2 = _taggedTemplateLiteralLoose(["tag"])))] = multi, _merge[prefix(_templateObject3 || (_templateObject3 = _taggedTemplateLiteralLoose(["focused"])))] = open, _merge));
|
|
651
|
+
var classes = merge(pickerClasses, (_merge = {}, _merge[prefix(_templateObject2 || (_templateObject2 = _taggedTemplateLiteralLoose(["tag"])))] = multi, _merge[prefix(_templateObject3 || (_templateObject3 = _taggedTemplateLiteralLoose(["focused"])))] = open, _merge[prefix(_templateObject4 || (_templateObject4 = _taggedTemplateLiteralLoose(["disabled-options"])))] = disabledOptions, _merge));
|
|
613
652
|
var searching = !!searchKeyword && open;
|
|
614
653
|
var displaySearchInput = searchable && !disabled;
|
|
615
654
|
var inputProps = multi ? {
|
|
@@ -634,9 +673,10 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
634
673
|
return /*#__PURE__*/React.createElement(Plaintext, _extends({
|
|
635
674
|
localeKey: "notSelected",
|
|
636
675
|
ref: targetRef
|
|
637
|
-
}, plaintextProps),
|
|
676
|
+
}, plaintextProps), itemNode || (tagElements !== null && tagElements !== void 0 && tagElements.length ? tagElements : null) || placeholder);
|
|
638
677
|
}
|
|
639
678
|
|
|
679
|
+
var placeholderNode = placeholder || (disabledOptions ? null : locale === null || locale === void 0 ? void 0 : locale.placeholder);
|
|
640
680
|
return /*#__PURE__*/React.createElement(PickerToggleTrigger, {
|
|
641
681
|
pickerProps: pick(props, pickTriggerPropKeys),
|
|
642
682
|
ref: triggerRef,
|
|
@@ -665,9 +705,10 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
665
705
|
active: open,
|
|
666
706
|
disabled: disabled,
|
|
667
707
|
placement: placement,
|
|
668
|
-
inputValue: value
|
|
669
|
-
|
|
670
|
-
|
|
708
|
+
inputValue: value,
|
|
709
|
+
caret: !disabledOptions
|
|
710
|
+
}), searching || multi && hasValue ? null : itemNode || placeholderNode), !(!multi && disabled) && /*#__PURE__*/React.createElement("div", {
|
|
711
|
+
className: prefix(_templateObject5 || (_templateObject5 = _taggedTemplateLiteralLoose(["tag-wrapper"])))
|
|
671
712
|
}, tagElements, displaySearchInput && /*#__PURE__*/React.createElement(InputSearch, _extends({}, inputProps, {
|
|
672
713
|
tabIndex: tabIndex,
|
|
673
714
|
readOnly: readOnly,
|
|
@@ -688,7 +729,6 @@ InputPicker.propTypes = _extends({}, listPickerPropTypes, {
|
|
|
688
729
|
menuMaxHeight: PropTypes.number,
|
|
689
730
|
searchable: PropTypes.bool,
|
|
690
731
|
creatable: PropTypes.bool,
|
|
691
|
-
multi: PropTypes.bool,
|
|
692
732
|
groupBy: PropTypes.any,
|
|
693
733
|
sort: PropTypes.func,
|
|
694
734
|
renderMenu: PropTypes.func,
|
|
@@ -699,7 +739,6 @@ InputPicker.propTypes = _extends({}, listPickerPropTypes, {
|
|
|
699
739
|
onGroupTitleClick: PropTypes.func,
|
|
700
740
|
onSearch: PropTypes.func,
|
|
701
741
|
virtualized: PropTypes.bool,
|
|
702
|
-
searchBy: PropTypes.func
|
|
703
|
-
tagProps: PropTypes.object
|
|
742
|
+
searchBy: PropTypes.func
|
|
704
743
|
});
|
|
705
744
|
export default InputPicker;
|
package/esm/List/ListItem.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { WithAsProps } from '../@types/common';
|
|
3
3
|
import { Collection } from './helper/useManager';
|
|
4
|
-
export interface ListItemProps extends WithAsProps {
|
|
4
|
+
export interface ListItemProps extends WithAsProps, React.HTMLAttributes<HTMLElement> {
|
|
5
5
|
index?: number;
|
|
6
6
|
collection?: Collection;
|
|
7
7
|
disabled?: boolean;
|
package/esm/Menu/MenuItem.js
CHANGED
|
@@ -22,7 +22,7 @@ function MenuItem(props) {
|
|
|
22
22
|
dispatch = _ref[1]; // Whether this menuitem has focus (indicated by `aria-activedescendant` from parent menu)
|
|
23
23
|
|
|
24
24
|
|
|
25
|
-
var hasFocus = (menuState === null || menuState === void 0 ? void 0 : (_menuState$items$menu = menuState.items[menuState === null || menuState === void 0 ? void 0 : menuState.activeItemIndex]) === null || _menuState$items$menu === void 0 ? void 0 : _menuState$items$menu.element) === menuitemRef.current;
|
|
25
|
+
var hasFocus = (menuState === null || menuState === void 0 ? void 0 : (_menuState$items$menu = menuState.items[menuState === null || menuState === void 0 ? void 0 : menuState.activeItemIndex]) === null || _menuState$items$menu === void 0 ? void 0 : _menuState$items$menu.element) === menuitemRef.current && !!menuitemRef.current;
|
|
26
26
|
var handleClick = useCallback(function (event) {
|
|
27
27
|
if (disabled) {
|
|
28
28
|
return;
|
|
@@ -64,6 +64,7 @@ var MultiCascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
64
64
|
renderMenuItem = props.renderMenuItem,
|
|
65
65
|
renderExtraFooter = props.renderExtraFooter,
|
|
66
66
|
onEnter = props.onEnter,
|
|
67
|
+
onExit = props.onExit,
|
|
67
68
|
onExited = props.onExited,
|
|
68
69
|
onClean = props.onClean,
|
|
69
70
|
onSearch = props.onSearch,
|
|
@@ -72,7 +73,7 @@ var MultiCascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
72
73
|
onOpen = props.onOpen,
|
|
73
74
|
onClose = props.onClose,
|
|
74
75
|
onCheck = props.onCheck,
|
|
75
|
-
rest = _objectWithoutPropertiesLoose(props, ["as", "data", "classPrefix", "defaultValue", "value", "valueKey", "labelKey", "childrenKey", "disabled", "disabledItemValues", "cleanable", "locale", "toggleAs", "style", "countable", "cascade", "inline", "placeholder", "placement", "menuWidth", "menuHeight", "menuClassName", "menuStyle", "searchable", "uncheckableItemValues", "id", "getChildren", "renderValue", "renderMenu", "renderMenuItem", "renderExtraFooter", "onEnter", "onExited", "onClean", "onSearch", "onSelect", "onChange", "onOpen", "onClose", "onCheck"]);
|
|
76
|
+
rest = _objectWithoutPropertiesLoose(props, ["as", "data", "classPrefix", "defaultValue", "value", "valueKey", "labelKey", "childrenKey", "disabled", "disabledItemValues", "cleanable", "locale", "toggleAs", "style", "countable", "cascade", "inline", "placeholder", "placement", "menuWidth", "menuHeight", "menuClassName", "menuStyle", "searchable", "uncheckableItemValues", "id", "getChildren", "renderValue", "renderMenu", "renderMenuItem", "renderExtraFooter", "onEnter", "onExit", "onExited", "onClean", "onSearch", "onSelect", "onChange", "onOpen", "onClose", "onCheck"]);
|
|
76
77
|
|
|
77
78
|
var itemKeys = {
|
|
78
79
|
childrenKey: childrenKey,
|
|
@@ -178,10 +179,9 @@ var MultiCascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
178
179
|
setActive(true);
|
|
179
180
|
}, [onOpen]);
|
|
180
181
|
var handleExited = useCallback(function () {
|
|
181
|
-
onClose === null || onClose === void 0 ? void 0 : onClose();
|
|
182
182
|
setActive(false);
|
|
183
183
|
setSearchKeyword('');
|
|
184
|
-
}, [
|
|
184
|
+
}, []);
|
|
185
185
|
var handleSelect = useCallback(function (node, cascadePaths, event) {
|
|
186
186
|
var _node$childrenKey, _node$childrenKey2, _triggerRef$current, _triggerRef$current$u;
|
|
187
187
|
|
|
@@ -470,6 +470,7 @@ var MultiCascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
470
470
|
placement: placement,
|
|
471
471
|
onEnter: createChainedFunction(handleEntered, onEnter),
|
|
472
472
|
onExited: createChainedFunction(handleExited, onExited),
|
|
473
|
+
onExit: createChainedFunction(onClose, onExit),
|
|
473
474
|
speaker: renderDropdownMenu
|
|
474
475
|
}, /*#__PURE__*/React.createElement(Component, {
|
|
475
476
|
className: classes,
|
package/esm/Nav/NavItem.js
CHANGED
|
@@ -3,32 +3,29 @@ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWith
|
|
|
3
3
|
import React, { useCallback, useContext } from 'react';
|
|
4
4
|
import PropTypes from 'prop-types';
|
|
5
5
|
import isNil from 'lodash/isNil';
|
|
6
|
-
import omit from 'lodash/omit';
|
|
7
6
|
import Ripple from '../Ripple';
|
|
8
7
|
import SafeAnchor from '../SafeAnchor';
|
|
9
|
-
import {
|
|
8
|
+
import { shallowEqual, useClassNames } from '../utils';
|
|
10
9
|
import { SidenavContext } from '../Sidenav/Sidenav';
|
|
11
10
|
import NavContext from './NavContext';
|
|
12
11
|
import { NavbarContext } from '../Navbar/Navbar';
|
|
13
|
-
import MenuItem from '../Menu/MenuItem';
|
|
14
12
|
import SidenavItem from '../Sidenav/SidenavItem';
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
as: SafeAnchor
|
|
18
|
-
};
|
|
13
|
+
import NavbarItem from '../Navbar/NavbarItem';
|
|
14
|
+
|
|
19
15
|
/**
|
|
20
16
|
* The <Nav.Item> API
|
|
21
17
|
*/
|
|
22
|
-
|
|
23
18
|
var NavItem = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
24
|
-
var
|
|
19
|
+
var _props$as = props.as,
|
|
20
|
+
Component = _props$as === void 0 ? SafeAnchor : _props$as,
|
|
25
21
|
activeProp = props.active,
|
|
26
22
|
disabled = props.disabled,
|
|
27
23
|
eventKey = props.eventKey,
|
|
28
24
|
className = props.className,
|
|
29
|
-
classPrefix = props.classPrefix,
|
|
25
|
+
_props$classPrefix = props.classPrefix,
|
|
26
|
+
classPrefix = _props$classPrefix === void 0 ? 'nav-item' : _props$classPrefix,
|
|
30
27
|
style = props.style,
|
|
31
|
-
|
|
28
|
+
children = props.children,
|
|
32
29
|
icon = props.icon,
|
|
33
30
|
divider = props.divider,
|
|
34
31
|
panel = props.panel,
|
|
@@ -64,46 +61,8 @@ var NavItem = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
64
61
|
}
|
|
65
62
|
}, [disabled, emitSelect, onClick]);
|
|
66
63
|
|
|
67
|
-
if (sidenav !== null && sidenav !== void 0 && sidenav.expanded) {
|
|
68
|
-
return /*#__PURE__*/React.createElement(SidenavItem, props);
|
|
69
|
-
} // If <Nav.Item> is inside collapsed <Sidenav>, render an ARIA `menuitem`
|
|
70
|
-
|
|
71
|
-
|
|
72
64
|
if (sidenav) {
|
|
73
|
-
return /*#__PURE__*/React.createElement(
|
|
74
|
-
selected: active,
|
|
75
|
-
disabled: disabled,
|
|
76
|
-
onActivate: emitSelect
|
|
77
|
-
}, function (_ref, menuitemRef) {
|
|
78
|
-
var selected = _ref.selected,
|
|
79
|
-
active = _ref.active,
|
|
80
|
-
menuitem = _objectWithoutPropertiesLoose(_ref, ["selected", "active"]);
|
|
81
|
-
|
|
82
|
-
var classes = merge(className, withClassPrefix({
|
|
83
|
-
focus: active,
|
|
84
|
-
active: selected,
|
|
85
|
-
disabled: disabled
|
|
86
|
-
}));
|
|
87
|
-
var item = /*#__PURE__*/React.createElement(Component, _extends({
|
|
88
|
-
ref: mergeRefs(ref, menuitemRef),
|
|
89
|
-
disabled: Component === SafeAnchor ? disabled : undefined,
|
|
90
|
-
className: classes,
|
|
91
|
-
"data-event-key": eventKey
|
|
92
|
-
}, menuitem, omit(rest, ['divider', 'panel'])), icon, _children, /*#__PURE__*/React.createElement(Ripple, null)); // Show tooltip when inside a collapse <Sidenav>
|
|
93
|
-
|
|
94
|
-
return sidenav ? appendTooltip({
|
|
95
|
-
children: function children(triggerProps, triggerRef) {
|
|
96
|
-
return /*#__PURE__*/React.createElement(Component, _extends({
|
|
97
|
-
ref: mergeRefs(mergeRefs(ref, menuitemRef), triggerRef),
|
|
98
|
-
disabled: Component === SafeAnchor ? disabled : undefined,
|
|
99
|
-
className: classes,
|
|
100
|
-
"data-event-key": eventKey
|
|
101
|
-
}, menuitem, omit(rest, ['divider', 'panel']), triggerProps), icon, _children, /*#__PURE__*/React.createElement(Ripple, null));
|
|
102
|
-
},
|
|
103
|
-
message: _children,
|
|
104
|
-
placement: 'right'
|
|
105
|
-
}) : item;
|
|
106
|
-
});
|
|
65
|
+
return /*#__PURE__*/React.createElement(SidenavItem, props);
|
|
107
66
|
}
|
|
108
67
|
|
|
109
68
|
if (divider) {
|
|
@@ -120,18 +79,11 @@ var NavItem = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
120
79
|
ref: ref,
|
|
121
80
|
style: style,
|
|
122
81
|
className: merge(className, prefix('panel'))
|
|
123
|
-
}, rest),
|
|
82
|
+
}, rest), children);
|
|
124
83
|
}
|
|
125
84
|
|
|
126
85
|
if (navbar) {
|
|
127
|
-
return /*#__PURE__*/React.createElement(
|
|
128
|
-
ref: ref,
|
|
129
|
-
"aria-selected": active || undefined
|
|
130
|
-
}, rest, {
|
|
131
|
-
className: classes,
|
|
132
|
-
onClick: handleClick,
|
|
133
|
-
style: style
|
|
134
|
-
}), icon, _children, /*#__PURE__*/React.createElement(Ripple, null));
|
|
86
|
+
return /*#__PURE__*/React.createElement(NavbarItem, props);
|
|
135
87
|
}
|
|
136
88
|
|
|
137
89
|
return /*#__PURE__*/React.createElement(Component, _extends({
|
|
@@ -142,9 +94,8 @@ var NavItem = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
142
94
|
onClick: handleClick,
|
|
143
95
|
style: style,
|
|
144
96
|
"aria-selected": active || undefined
|
|
145
|
-
}), icon,
|
|
97
|
+
}), icon, children, /*#__PURE__*/React.createElement(Ripple, null));
|
|
146
98
|
});
|
|
147
|
-
NavItem.defaultProps = defaultProps;
|
|
148
99
|
NavItem.displayName = 'Nav.Item';
|
|
149
100
|
NavItem.propTypes = {
|
|
150
101
|
as: PropTypes.elementType,
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { IconProps } from '@rsuite/icons/lib/Icon';
|
|
3
|
+
import { RsRefForwardingComponent, WithAsProps } from '../@types/common';
|
|
4
|
+
export interface NavItemProps<T = string> extends WithAsProps, Omit<React.HTMLAttributes<HTMLElement>, 'onSelect'> {
|
|
5
|
+
/** Activation status */
|
|
6
|
+
active?: boolean;
|
|
7
|
+
/** Disabled status */
|
|
8
|
+
disabled?: boolean;
|
|
9
|
+
/** Sets the icon for the component */
|
|
10
|
+
icon?: React.ReactElement<IconProps>;
|
|
11
|
+
/** The value of the current option */
|
|
12
|
+
eventKey?: T;
|
|
13
|
+
/** Providing a `href` will render an `<a>` element */
|
|
14
|
+
href?: string;
|
|
15
|
+
/** Select the callback function that the event triggers. */
|
|
16
|
+
onSelect?: (eventKey: T, event: React.SyntheticEvent) => void;
|
|
17
|
+
}
|
|
18
|
+
declare const NavbarItem: RsRefForwardingComponent<'a', NavItemProps>;
|
|
19
|
+
export default NavbarItem;
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
+
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
3
|
+
import React, { useCallback, useContext } from 'react';
|
|
4
|
+
import PropTypes from 'prop-types';
|
|
5
|
+
import isNil from 'lodash/isNil';
|
|
6
|
+
import Ripple from '../Ripple';
|
|
7
|
+
import SafeAnchor from '../SafeAnchor';
|
|
8
|
+
import { shallowEqual, useClassNames } from '../utils';
|
|
9
|
+
import NavContext from '../Nav/NavContext';
|
|
10
|
+
var NavbarItem = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
11
|
+
var _props$as = props.as,
|
|
12
|
+
Component = _props$as === void 0 ? SafeAnchor : _props$as,
|
|
13
|
+
activeProp = props.active,
|
|
14
|
+
disabled = props.disabled,
|
|
15
|
+
eventKey = props.eventKey,
|
|
16
|
+
className = props.className,
|
|
17
|
+
_props$classPrefix = props.classPrefix,
|
|
18
|
+
classPrefix = _props$classPrefix === void 0 ? 'navbar-item' : _props$classPrefix,
|
|
19
|
+
style = props.style,
|
|
20
|
+
children = props.children,
|
|
21
|
+
icon = props.icon,
|
|
22
|
+
onClick = props.onClick,
|
|
23
|
+
onSelectProp = props.onSelect,
|
|
24
|
+
rest = _objectWithoutPropertiesLoose(props, ["as", "active", "disabled", "eventKey", "className", "classPrefix", "style", "children", "icon", "onClick", "onSelect"]);
|
|
25
|
+
|
|
26
|
+
var _useContext = useContext(NavContext),
|
|
27
|
+
activeKey = _useContext.activeKey,
|
|
28
|
+
onSelectFromNav = _useContext.onSelect;
|
|
29
|
+
|
|
30
|
+
var active = activeProp !== null && activeProp !== void 0 ? activeProp : !isNil(eventKey) && shallowEqual(eventKey, activeKey);
|
|
31
|
+
var emitSelect = useCallback(function (event) {
|
|
32
|
+
onSelectProp === null || onSelectProp === void 0 ? void 0 : onSelectProp(eventKey, event);
|
|
33
|
+
onSelectFromNav === null || onSelectFromNav === void 0 ? void 0 : onSelectFromNav(eventKey, event);
|
|
34
|
+
}, [eventKey, onSelectProp, onSelectFromNav]);
|
|
35
|
+
|
|
36
|
+
var _useClassNames = useClassNames(classPrefix),
|
|
37
|
+
withClassPrefix = _useClassNames.withClassPrefix,
|
|
38
|
+
merge = _useClassNames.merge;
|
|
39
|
+
|
|
40
|
+
var classes = merge(className, withClassPrefix({
|
|
41
|
+
active: active,
|
|
42
|
+
disabled: disabled
|
|
43
|
+
}));
|
|
44
|
+
var handleClick = useCallback(function (event) {
|
|
45
|
+
if (!disabled) {
|
|
46
|
+
emitSelect(event);
|
|
47
|
+
onClick === null || onClick === void 0 ? void 0 : onClick(event);
|
|
48
|
+
}
|
|
49
|
+
}, [disabled, emitSelect, onClick]);
|
|
50
|
+
return /*#__PURE__*/React.createElement(Component, _extends({
|
|
51
|
+
ref: ref,
|
|
52
|
+
"aria-selected": active || undefined
|
|
53
|
+
}, rest, {
|
|
54
|
+
className: classes,
|
|
55
|
+
onClick: handleClick,
|
|
56
|
+
style: style
|
|
57
|
+
}), icon, children, /*#__PURE__*/React.createElement(Ripple, null));
|
|
58
|
+
});
|
|
59
|
+
NavbarItem.displayName = 'Navbar.Item';
|
|
60
|
+
NavbarItem.propTypes = {
|
|
61
|
+
as: PropTypes.elementType,
|
|
62
|
+
active: PropTypes.bool,
|
|
63
|
+
disabled: PropTypes.bool,
|
|
64
|
+
className: PropTypes.string,
|
|
65
|
+
classPrefix: PropTypes.string,
|
|
66
|
+
onClick: PropTypes.func,
|
|
67
|
+
style: PropTypes.object,
|
|
68
|
+
icon: PropTypes.node,
|
|
69
|
+
onSelect: PropTypes.func,
|
|
70
|
+
children: PropTypes.node,
|
|
71
|
+
eventKey: PropTypes.any
|
|
72
|
+
};
|
|
73
|
+
export default NavbarItem;
|
|
@@ -166,10 +166,10 @@ var PickerToggle = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
166
166
|
ref: mergeRefs(inputRef, ref)
|
|
167
167
|
}, props));
|
|
168
168
|
}
|
|
169
|
-
}), /*#__PURE__*/React.createElement("span", {
|
|
169
|
+
}), children ? /*#__PURE__*/React.createElement("span", {
|
|
170
170
|
className: prefix(hasValue ? 'value' : 'placeholder'),
|
|
171
171
|
"aria-placeholder": typeof children === 'string' ? children : null
|
|
172
|
-
}, children), cleanable && /*#__PURE__*/React.createElement(CloseButton, {
|
|
172
|
+
}, children) : null, cleanable && /*#__PURE__*/React.createElement(CloseButton, {
|
|
173
173
|
className: prefix(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["clean"]))),
|
|
174
174
|
tabIndex: -1,
|
|
175
175
|
onClick: handleClean
|
package/esm/Picker/utils.d.ts
CHANGED
|
@@ -123,5 +123,5 @@ interface Refs {
|
|
|
123
123
|
* @param ref
|
|
124
124
|
* @param params
|
|
125
125
|
*/
|
|
126
|
-
export declare function usePublicMethods(ref: any, { triggerRef, overlayRef, targetRef, rootRef }: Refs): void;
|
|
126
|
+
export declare function usePublicMethods(ref: any, { triggerRef, overlayRef, targetRef, rootRef }: Refs, disabled?: boolean): void;
|
|
127
127
|
export {};
|