rsuite 5.50.0 → 5.51.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +11 -0
- package/CheckTreePicker/styles/index.less +3 -3
- package/DatePicker/styles/index.less +1 -1
- package/Form/styles/mixin.less +1 -2
- package/InputGroup/styles/index.less +0 -14
- package/InputPicker/styles/index.less +1 -1
- package/Picker/styles/index.less +2 -2
- package/Picker/styles/mixin.less +3 -3
- package/TagInput/styles/index.less +1 -1
- package/TagPicker/styles/index.less +5 -1
- package/TreePicker/styles/index.less +2 -2
- package/cjs/@types/common.d.ts +8 -0
- package/cjs/AutoComplete/AutoComplete.js +14 -11
- package/cjs/AutoComplete/Combobox.d.ts +8 -0
- package/cjs/AutoComplete/Combobox.js +31 -0
- package/cjs/Calendar/CalendarContainer.js +35 -37
- package/cjs/Cascader/Cascader.js +12 -11
- package/cjs/Cascader/DropdownMenu.d.ts +3 -20
- package/cjs/Cascader/DropdownMenu.js +48 -48
- package/cjs/Cascader/TreeView.d.ts +24 -0
- package/cjs/Cascader/TreeView.js +174 -0
- package/cjs/CheckPicker/CheckPicker.js +9 -8
- package/cjs/CheckTreePicker/CheckTreeNode.d.ts +2 -2
- package/cjs/CheckTreePicker/CheckTreeNode.js +31 -59
- package/cjs/CheckTreePicker/CheckTreePicker.js +20 -20
- package/cjs/DatePicker/DatePicker.js +5 -6
- package/cjs/DateRangePicker/DateRangePicker.js +3 -4
- package/cjs/Form/Form.d.ts +14 -0
- package/cjs/Form/Form.js +39 -30
- package/cjs/Form/FormContext.d.ts +1 -0
- package/cjs/FormControl/FormControl.js +40 -18
- package/cjs/FormGroup/FormGroup.js +2 -1
- package/cjs/InputPicker/InputPicker.js +46 -29
- package/cjs/InputPicker/InputSearch.js +3 -15
- package/cjs/InputPicker/TagList.d.ts +3 -0
- package/cjs/InputPicker/TagList.js +29 -0
- package/cjs/InputPicker/TextBox.d.ts +18 -0
- package/cjs/InputPicker/TextBox.js +48 -0
- package/cjs/MultiCascader/MultiCascader.js +13 -10
- package/cjs/MultiCascader/{DropdownMenu.d.ts → TreeView.d.ts} +3 -3
- package/cjs/MultiCascader/{DropdownMenu.js → TreeView.js} +77 -74
- package/{esm/Picker/DropdownMenuCheckItem.d.ts → cjs/Picker/ListCheckItem.d.ts} +3 -3
- package/cjs/Picker/{DropdownMenuCheckItem.js → ListCheckItem.js} +14 -30
- package/{esm/Picker/DropdownMenuItem.d.ts → cjs/Picker/ListItem.d.ts} +4 -4
- package/cjs/Picker/{DropdownMenuItem.js → ListItem.js} +15 -24
- package/cjs/Picker/ListItemGroup.d.ts +6 -0
- package/cjs/Picker/{DropdownMenuGroup.js → ListItemGroup.js} +3 -9
- package/cjs/Picker/Listbox.d.ts +35 -0
- package/cjs/Picker/{DropdownMenu.js → Listbox.js} +49 -64
- package/cjs/Picker/{PickerOverlay.d.ts → PickerPopup.d.ts} +3 -3
- package/cjs/Picker/{PickerOverlay.js → PickerPopup.js} +9 -7
- package/cjs/Picker/PickerToggle.d.ts +1 -1
- package/cjs/Picker/PickerToggle.js +16 -9
- package/cjs/Picker/PickerToggleTrigger.d.ts +15 -0
- package/cjs/Picker/PickerToggleTrigger.js +21 -5
- package/cjs/Picker/SearchBar.js +7 -9
- package/cjs/Picker/TreeView.d.ts +7 -0
- package/cjs/Picker/TreeView.js +31 -0
- package/cjs/Picker/hooks/index.d.ts +6 -0
- package/cjs/Picker/hooks/index.js +18 -0
- package/cjs/Picker/hooks/useCombobox.d.ts +7 -0
- package/cjs/Picker/hooks/useCombobox.js +22 -0
- package/cjs/Picker/hooks/useFocusItemValue.d.ts +30 -0
- package/cjs/Picker/hooks/useFocusItemValue.js +246 -0
- package/cjs/Picker/hooks/usePickerClassName.d.ts +21 -0
- package/cjs/Picker/hooks/usePickerClassName.js +39 -0
- package/cjs/Picker/{usePickerRef.d.ts → hooks/usePickerRef.d.ts} +2 -2
- package/cjs/Picker/{usePickerRef.js → hooks/usePickerRef.js} +1 -1
- package/cjs/Picker/hooks/useSearch.d.ts +18 -0
- package/cjs/Picker/hooks/useSearch.js +57 -0
- package/cjs/Picker/hooks/useToggleKeyDownEvent.d.ts +25 -0
- package/cjs/Picker/hooks/useToggleKeyDownEvent.js +101 -0
- package/cjs/Picker/index.d.ts +7 -6
- package/cjs/Picker/index.js +26 -19
- package/cjs/Picker/propTypes.d.ts +0 -6
- package/cjs/Picker/propTypes.js +0 -5
- package/cjs/Picker/utils.d.ts +2 -96
- package/cjs/Picker/utils.js +1 -406
- package/cjs/SelectPicker/SelectPicker.js +8 -8
- package/cjs/TagInput/index.js +4 -0
- package/cjs/TreePicker/TreeNode.d.ts +2 -2
- package/cjs/TreePicker/TreeNode.js +22 -56
- package/cjs/TreePicker/TreePicker.js +19 -20
- package/dist/rsuite-no-reset-rtl.css +109 -117
- package/dist/rsuite-no-reset-rtl.min.css +1 -1
- package/dist/rsuite-no-reset-rtl.min.css.map +1 -1
- package/dist/rsuite-no-reset.css +109 -117
- package/dist/rsuite-no-reset.min.css +1 -1
- package/dist/rsuite-no-reset.min.css.map +1 -1
- package/dist/rsuite-rtl.css +109 -117
- package/dist/rsuite-rtl.min.css +1 -1
- package/dist/rsuite-rtl.min.css.map +1 -1
- package/dist/rsuite.css +109 -117
- package/dist/rsuite.js +184 -74
- package/dist/rsuite.js.map +1 -1
- package/dist/rsuite.min.css +1 -1
- package/dist/rsuite.min.css.map +1 -1
- package/dist/rsuite.min.js +1 -1
- package/dist/rsuite.min.js.map +1 -1
- package/esm/@types/common.d.ts +8 -0
- package/esm/AutoComplete/AutoComplete.js +15 -12
- package/esm/AutoComplete/Combobox.d.ts +8 -0
- package/esm/AutoComplete/Combobox.js +25 -0
- package/esm/Calendar/CalendarContainer.js +37 -39
- package/esm/Cascader/Cascader.js +13 -12
- package/esm/Cascader/DropdownMenu.d.ts +3 -20
- package/esm/Cascader/DropdownMenu.js +50 -49
- package/esm/Cascader/TreeView.d.ts +24 -0
- package/esm/Cascader/TreeView.js +167 -0
- package/esm/CheckPicker/CheckPicker.js +10 -9
- package/esm/CheckTreePicker/CheckTreeNode.d.ts +2 -2
- package/esm/CheckTreePicker/CheckTreeNode.js +33 -61
- package/esm/CheckTreePicker/CheckTreePicker.js +21 -21
- package/esm/DatePicker/DatePicker.js +5 -6
- package/esm/DateRangePicker/DateRangePicker.js +3 -4
- package/esm/Form/Form.d.ts +14 -0
- package/esm/Form/Form.js +41 -32
- package/esm/Form/FormContext.d.ts +1 -0
- package/esm/FormControl/FormControl.js +39 -17
- package/esm/FormGroup/FormGroup.js +3 -2
- package/esm/InputPicker/InputPicker.js +47 -30
- package/esm/InputPicker/InputSearch.js +4 -15
- package/esm/InputPicker/TagList.d.ts +3 -0
- package/esm/InputPicker/TagList.js +23 -0
- package/esm/InputPicker/TextBox.d.ts +18 -0
- package/esm/InputPicker/TextBox.js +42 -0
- package/esm/MultiCascader/MultiCascader.js +14 -11
- package/esm/MultiCascader/{DropdownMenu.d.ts → TreeView.d.ts} +3 -3
- package/esm/MultiCascader/{DropdownMenu.js → TreeView.js} +79 -75
- package/{cjs/Picker/DropdownMenuCheckItem.d.ts → esm/Picker/ListCheckItem.d.ts} +3 -3
- package/esm/Picker/{DropdownMenuCheckItem.js → ListCheckItem.js} +15 -30
- package/{cjs/Picker/DropdownMenuItem.d.ts → esm/Picker/ListItem.d.ts} +4 -4
- package/esm/Picker/{DropdownMenuItem.js → ListItem.js} +16 -24
- package/esm/Picker/ListItemGroup.d.ts +6 -0
- package/esm/Picker/{DropdownMenuGroup.js → ListItemGroup.js} +3 -9
- package/esm/Picker/Listbox.d.ts +35 -0
- package/esm/Picker/{DropdownMenu.js → Listbox.js} +50 -64
- package/esm/Picker/{PickerOverlay.d.ts → PickerPopup.d.ts} +3 -3
- package/esm/Picker/{PickerOverlay.js → PickerPopup.js} +10 -8
- package/esm/Picker/PickerToggle.d.ts +1 -1
- package/esm/Picker/PickerToggle.js +16 -9
- package/esm/Picker/PickerToggleTrigger.d.ts +15 -0
- package/esm/Picker/PickerToggleTrigger.js +20 -5
- package/esm/Picker/SearchBar.js +8 -9
- package/esm/Picker/TreeView.d.ts +7 -0
- package/esm/Picker/TreeView.js +25 -0
- package/esm/Picker/hooks/index.d.ts +6 -0
- package/esm/Picker/hooks/index.js +7 -0
- package/esm/Picker/hooks/useCombobox.d.ts +7 -0
- package/esm/Picker/hooks/useCombobox.js +17 -0
- package/esm/Picker/hooks/useFocusItemValue.d.ts +30 -0
- package/esm/Picker/hooks/useFocusItemValue.js +240 -0
- package/esm/Picker/hooks/usePickerClassName.d.ts +21 -0
- package/esm/Picker/hooks/usePickerClassName.js +33 -0
- package/esm/Picker/{usePickerRef.d.ts → hooks/usePickerRef.d.ts} +2 -2
- package/esm/Picker/{usePickerRef.js → hooks/usePickerRef.js} +1 -1
- package/esm/Picker/hooks/useSearch.d.ts +18 -0
- package/esm/Picker/hooks/useSearch.js +51 -0
- package/esm/Picker/hooks/useToggleKeyDownEvent.d.ts +25 -0
- package/esm/Picker/hooks/useToggleKeyDownEvent.js +96 -0
- package/esm/Picker/index.d.ts +7 -6
- package/esm/Picker/index.js +7 -6
- package/esm/Picker/propTypes.d.ts +0 -6
- package/esm/Picker/propTypes.js +0 -5
- package/esm/Picker/utils.d.ts +2 -96
- package/esm/Picker/utils.js +2 -401
- package/esm/SelectPicker/SelectPicker.js +9 -9
- package/esm/TagInput/index.js +4 -0
- package/esm/TreePicker/TreeNode.d.ts +2 -2
- package/esm/TreePicker/TreeNode.js +24 -58
- package/esm/TreePicker/TreePicker.js +20 -21
- package/package.json +1 -1
- package/styles/variables.less +1 -3
- package/cjs/Picker/DropdownMenu.d.ts +0 -59
- package/cjs/Picker/DropdownMenuGroup.d.ts +0 -6
- package/esm/Picker/DropdownMenu.d.ts +0 -59
- package/esm/Picker/DropdownMenuGroup.d.ts +0 -6
|
@@ -243,8 +243,8 @@ var CheckTreePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
243
243
|
allUncheckable: (0, _utils2.isAllSiblingNodeUncheckable)(node, flattenNodes, uncheckableItemValues, valueKey),
|
|
244
244
|
onSelect: handleSelect,
|
|
245
245
|
onExpand: handleExpand,
|
|
246
|
-
|
|
247
|
-
|
|
246
|
+
renderTreeNode: renderTreeNode,
|
|
247
|
+
renderTreeIcon: renderTreeIcon
|
|
248
248
|
};
|
|
249
249
|
};
|
|
250
250
|
var focusActiveNode = function focusActiveNode() {
|
|
@@ -407,8 +407,8 @@ var CheckTreePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
407
407
|
});
|
|
408
408
|
var handleClean = (0, _utils.useEventCallback)(function (event) {
|
|
409
409
|
var target = event.target;
|
|
410
|
-
// exclude
|
|
411
|
-
if (target.matches('
|
|
410
|
+
// exclude searchbox
|
|
411
|
+
if (target.matches('input[role="searchbox"]') || disabled || !cleanable) {
|
|
412
412
|
return;
|
|
413
413
|
}
|
|
414
414
|
setActiveNode(null);
|
|
@@ -562,7 +562,8 @@ var CheckTreePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
562
562
|
return saveTreeNodeRef(_ref, refKey);
|
|
563
563
|
}
|
|
564
564
|
})), /*#__PURE__*/_react.default.createElement("div", {
|
|
565
|
-
className: checkTreePrefix('
|
|
565
|
+
className: checkTreePrefix('group'),
|
|
566
|
+
role: "group"
|
|
566
567
|
}, nodes.map(function (child) {
|
|
567
568
|
return renderNode(child, layer);
|
|
568
569
|
}), showIndentLine && /*#__PURE__*/_react.default.createElement("span", {
|
|
@@ -614,21 +615,17 @@ var CheckTreePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
614
615
|
className: prefix('none')
|
|
615
616
|
}, locale.noResultsText);
|
|
616
617
|
}
|
|
617
|
-
var treeNodesClass = merge(checkTreePrefix('
|
|
618
|
-
|
|
619
|
-
height: height
|
|
620
|
-
}, style) : {};
|
|
621
|
-
return /*#__PURE__*/_react.default.createElement("div", {
|
|
622
|
-
id: id ? id + "-listbox" : undefined,
|
|
618
|
+
var treeNodesClass = merge(checkTreePrefix('root'), (_merge2 = {}, _merge2[checkTreePrefix('all-uncheckable')] = (0, _utils2.isEveryFirstLevelNodeUncheckable)(flattenNodes, uncheckableItemValues, valueKey), _merge2));
|
|
619
|
+
return /*#__PURE__*/_react.default.createElement(_Picker.TreeView, {
|
|
623
620
|
ref: inline ? root : treeView,
|
|
624
|
-
|
|
625
|
-
|
|
621
|
+
multiselectable: true,
|
|
622
|
+
treeRootClassName: treeNodesClass,
|
|
626
623
|
className: classes,
|
|
627
|
-
style:
|
|
624
|
+
style: inline ? (0, _extends2.default)({
|
|
625
|
+
height: height
|
|
626
|
+
}, style) : {},
|
|
628
627
|
onScroll: onScroll,
|
|
629
628
|
onKeyDown: inline ? handleTreeKeydown : undefined
|
|
630
|
-
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
631
|
-
className: treeNodesClass
|
|
632
629
|
}, virtualized ? /*#__PURE__*/_react.default.createElement(_Windowing.AutoSizer, {
|
|
633
630
|
defaultHeight: inline ? height : menuMaxHeight,
|
|
634
631
|
style: {
|
|
@@ -644,7 +641,7 @@ var CheckTreePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
644
641
|
itemCount: formattedNodes.length,
|
|
645
642
|
itemData: formattedNodes
|
|
646
643
|
}, listProps), renderVirtualListNode);
|
|
647
|
-
}) : formattedNodes)
|
|
644
|
+
}) : formattedNodes);
|
|
648
645
|
};
|
|
649
646
|
var renderDropdownMenu = function renderDropdownMenu(positionProps, speakerRef) {
|
|
650
647
|
var left = positionProps.left,
|
|
@@ -655,7 +652,7 @@ var CheckTreePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
655
652
|
left: left,
|
|
656
653
|
top: top
|
|
657
654
|
});
|
|
658
|
-
return /*#__PURE__*/_react.default.createElement(_Picker.
|
|
655
|
+
return /*#__PURE__*/_react.default.createElement(_Picker.PickerPopup, {
|
|
659
656
|
autoWidth: menuAutoWidth,
|
|
660
657
|
className: classes,
|
|
661
658
|
style: mergedMenuStyle,
|
|
@@ -711,6 +708,9 @@ var CheckTreePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
711
708
|
return renderCheckTree();
|
|
712
709
|
}
|
|
713
710
|
return /*#__PURE__*/_react.default.createElement(_Picker.PickerToggleTrigger, {
|
|
711
|
+
id: id,
|
|
712
|
+
popupType: "tree",
|
|
713
|
+
multiple: true,
|
|
714
714
|
pickerProps: (0, _pick2.default)(props, _Picker.pickTriggerPropKeys),
|
|
715
715
|
ref: trigger,
|
|
716
716
|
placement: placement,
|
|
@@ -723,7 +723,6 @@ var CheckTreePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
723
723
|
style: style,
|
|
724
724
|
ref: root
|
|
725
725
|
}, /*#__PURE__*/_react.default.createElement(_Picker.PickerToggle, (0, _extends2.default)({}, (0, _omit2.default)(rest, [].concat(_Picker.omitTriggerPropKeys, usedClassNamePropKeys)), {
|
|
726
|
-
id: id,
|
|
727
726
|
ref: target,
|
|
728
727
|
appearance: appearance,
|
|
729
728
|
onKeyDown: onPickerKeydown,
|
|
@@ -734,7 +733,8 @@ var CheckTreePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
734
733
|
hasValue: hasValidValue,
|
|
735
734
|
active: active,
|
|
736
735
|
placement: placement,
|
|
737
|
-
inputValue: value
|
|
736
|
+
inputValue: value,
|
|
737
|
+
focusItemValue: focusItemValue
|
|
738
738
|
}), selectedElement || locale.placeholder)));
|
|
739
739
|
});
|
|
740
740
|
CheckTreePicker.displayName = 'CheckTreePicker';
|
|
@@ -25,7 +25,6 @@ var _PredefinedRanges = _interopRequireDefault(require("./PredefinedRanges"));
|
|
|
25
25
|
var _utils = require("../utils");
|
|
26
26
|
var _dateUtils = require("../utils/dateUtils");
|
|
27
27
|
var _Picker = require("../Picker");
|
|
28
|
-
var _usePickerRef2 = _interopRequireDefault(require("../Picker/usePickerRef"));
|
|
29
28
|
var _DateInput = _interopRequireDefault(require("../DateInput"));
|
|
30
29
|
var _InputGroup = _interopRequireDefault(require("../InputGroup"));
|
|
31
30
|
var _OverlayTrigger = require("../Overlay/OverlayTrigger");
|
|
@@ -103,8 +102,8 @@ var DatePicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
103
102
|
onToggleTimeDropdown = props.onToggleTimeDropdown,
|
|
104
103
|
onShortcutClick = props.onShortcutClick,
|
|
105
104
|
restProps = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "className", "classPrefix", "calendarDefaultDate", "cleanable", "editable", "defaultValue", "disabled", "readOnly", "plaintext", "format", "id", "isoWeek", "limitEndYear", "limitStartYear", "locale", "loading", "label", "menuClassName", "menuStyle", "appearance", "placement", "oneTap", "placeholder", "ranges", "value", "showMeridian", "showWeekNumbers", "style", "size", "caretAs", "disabledDate", "disabledHours", "disabledMinutes", "disabledSeconds", "shouldDisableDate", "shouldDisableHour", "shouldDisableMinute", "shouldDisableSecond", "onChange", "onChangeCalendarDate", "onClean", "onClose", "onEntered", "onExited", "onNextMonth", "onOk", "onOpen", "onPrevMonth", "onSelect", "onToggleMonthDropdown", "onToggleTimeDropdown", "onShortcutClick"]);
|
|
106
|
-
var id = (0, _utils.useUniqueId)(
|
|
107
|
-
var _usePickerRef = (0,
|
|
105
|
+
var id = (0, _utils.useUniqueId)('rs-', idProp);
|
|
106
|
+
var _usePickerRef = (0, _Picker.usePickerRef)(ref),
|
|
108
107
|
trigger = _usePickerRef.trigger,
|
|
109
108
|
root = _usePickerRef.root,
|
|
110
109
|
target = _usePickerRef.target,
|
|
@@ -280,7 +279,7 @@ var DatePicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
280
279
|
onClean === null || onClean === void 0 ? void 0 : onClean(event);
|
|
281
280
|
event.stopPropagation();
|
|
282
281
|
});
|
|
283
|
-
var
|
|
282
|
+
var handlePickerPopupKeyDown = (0, _utils.useEventCallback)(function (event) {
|
|
284
283
|
var delta = 0;
|
|
285
284
|
var step = showMonth ? 6 : 7;
|
|
286
285
|
var changeDateFunc = showMonth ? _dateUtils.addMonths : _dateUtils.addDays;
|
|
@@ -424,7 +423,7 @@ var DatePicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
424
423
|
left: left,
|
|
425
424
|
top: top
|
|
426
425
|
});
|
|
427
|
-
return /*#__PURE__*/_react.default.createElement(_Picker.
|
|
426
|
+
return /*#__PURE__*/_react.default.createElement(_Picker.PickerPopup, {
|
|
428
427
|
role: "dialog",
|
|
429
428
|
"aria-labelledby": label ? id + "-label" : undefined,
|
|
430
429
|
tabIndex: -1,
|
|
@@ -432,7 +431,7 @@ var DatePicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
432
431
|
ref: (0, _utils.mergeRefs)(overlay, speakerRef),
|
|
433
432
|
style: styles,
|
|
434
433
|
target: trigger,
|
|
435
|
-
onKeyDown:
|
|
434
|
+
onKeyDown: handlePickerPopupKeyDown
|
|
436
435
|
}, /*#__PURE__*/_react.default.createElement(_Stack.default, {
|
|
437
436
|
alignItems: "flex-start"
|
|
438
437
|
}, sideRanges.length > 0 && /*#__PURE__*/_react.default.createElement(_PredefinedRanges.default, {
|
|
@@ -30,7 +30,6 @@ var _deprecatePropType = require("../utils/deprecatePropType");
|
|
|
30
30
|
var _DateRangePickerContext = _interopRequireDefault(require("./DateRangePickerContext"));
|
|
31
31
|
var _DateRangeInput = _interopRequireDefault(require("../DateRangeInput"));
|
|
32
32
|
var _InputGroup = _interopRequireDefault(require("../InputGroup"));
|
|
33
|
-
var _usePickerRef2 = _interopRequireDefault(require("../Picker/usePickerRef"));
|
|
34
33
|
var _templateObject;
|
|
35
34
|
/**
|
|
36
35
|
* A date range picker allows you to select a date range from a calendar.
|
|
@@ -99,8 +98,8 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
99
98
|
onShortcutClick = props.onShortcutClick,
|
|
100
99
|
renderTitle = props.renderTitle,
|
|
101
100
|
restProps = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "classPrefix", "className", "appearance", "editable", "cleanable", "character", "defaultCalendarValue", "defaultValue", "plaintext", "disabled", "disabledDate", "shouldDisableDate", "format", "hoverRange", "id", "isoWeek", "limitEndYear", "limitStartYear", "locale", "loading", "label", "menuClassName", "menuStyle", "oneTap", "placeholder", "placement", "ranges", "readOnly", "showOneCalendar", "showWeekNumbers", "showMeridian", "style", "size", "caretAs", "value", "onChange", "onClean", "onClose", "onEnter", "onEntered", "onExited", "onOk", "onOpen", "onSelect", "onShortcutClick", "renderTitle"]);
|
|
102
|
-
var id = (0, _utils.useUniqueId)(
|
|
103
|
-
var _usePickerRef = (0,
|
|
101
|
+
var id = (0, _utils.useUniqueId)('rs-', idProp);
|
|
102
|
+
var _usePickerRef = (0, _Picker.usePickerRef)(ref),
|
|
104
103
|
trigger = _usePickerRef.trigger,
|
|
105
104
|
root = _usePickerRef.root,
|
|
106
105
|
target = _usePickerRef.target,
|
|
@@ -604,7 +603,7 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
604
603
|
var bottomRanges = ranges === null || ranges === void 0 ? void 0 : ranges.filter(function (range) {
|
|
605
604
|
return (range === null || range === void 0 ? void 0 : range.placement) === 'bottom' || (range === null || range === void 0 ? void 0 : range.placement) === undefined;
|
|
606
605
|
});
|
|
607
|
-
return /*#__PURE__*/_react.default.createElement(_Picker.
|
|
606
|
+
return /*#__PURE__*/_react.default.createElement(_Picker.PickerPopup, {
|
|
608
607
|
role: "dialog",
|
|
609
608
|
"aria-labelledby": label ? id + "-label" : undefined,
|
|
610
609
|
tabIndex: -1,
|
package/cjs/Form/Form.d.ts
CHANGED
|
@@ -32,6 +32,20 @@ export interface FormProps<T = Record<string, any>, errorMsgType = any, E = {
|
|
|
32
32
|
disabled?: boolean;
|
|
33
33
|
/** The error message comes from context */
|
|
34
34
|
errorFromContext?: boolean;
|
|
35
|
+
/**
|
|
36
|
+
* The form data is nested.
|
|
37
|
+
* You may now nest fields with "dot syntax" (e.g. address.city).
|
|
38
|
+
*
|
|
39
|
+
* @default false
|
|
40
|
+
* @version v5.51.0
|
|
41
|
+
* @example
|
|
42
|
+
* ```jsx
|
|
43
|
+
* <Form formValue={{ address: { city: 'Shanghai' } }} nestedField>
|
|
44
|
+
* <FormControl name="address.city" />
|
|
45
|
+
* </Form>
|
|
46
|
+
* ```
|
|
47
|
+
*/
|
|
48
|
+
nestedField?: boolean;
|
|
35
49
|
/** Callback fired when data changing */
|
|
36
50
|
onChange?: (formValue: T, event?: React.SyntheticEvent) => void;
|
|
37
51
|
/** Callback fired when error checking */
|
package/cjs/Form/Form.js
CHANGED
|
@@ -10,6 +10,7 @@ var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runt
|
|
|
10
10
|
var _react = _interopRequireWildcard(require("react"));
|
|
11
11
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
12
12
|
var _omit = _interopRequireDefault(require("lodash/omit"));
|
|
13
|
+
var _set = _interopRequireDefault(require("lodash/set"));
|
|
13
14
|
var _schemaTyped = require("schema-typed");
|
|
14
15
|
var _FormContext = _interopRequireWildcard(require("./FormContext"));
|
|
15
16
|
var _FormControl = _interopRequireDefault(require("../FormControl"));
|
|
@@ -36,6 +37,8 @@ var Form = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
36
37
|
formValue = props.formValue,
|
|
37
38
|
formError = props.formError,
|
|
38
39
|
fluid = props.fluid,
|
|
40
|
+
_props$nestedField = props.nestedField,
|
|
41
|
+
nestedField = _props$nestedField === void 0 ? false : _props$nestedField,
|
|
39
42
|
_props$layout = props.layout,
|
|
40
43
|
layout = _props$layout === void 0 ? 'vertical' : _props$layout,
|
|
41
44
|
_props$model = props.model,
|
|
@@ -49,7 +52,7 @@ var Form = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
49
52
|
onCheck = props.onCheck,
|
|
50
53
|
onError = props.onError,
|
|
51
54
|
onChange = props.onChange,
|
|
52
|
-
rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["checkTrigger", "classPrefix", "errorFromContext", "formDefaultValue", "formValue", "formError", "fluid", "layout", "model", "readOnly", "plaintext", "className", "children", "disabled", "onSubmit", "onCheck", "onError", "onChange"]);
|
|
55
|
+
rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["checkTrigger", "classPrefix", "errorFromContext", "formDefaultValue", "formValue", "formError", "fluid", "nestedField", "layout", "model", "readOnly", "plaintext", "className", "children", "disabled", "onSubmit", "onCheck", "onError", "onChange"]);
|
|
53
56
|
var _useSchemaModel = (0, _useSchemaModel2.default)(formModel),
|
|
54
57
|
getCombinedModel = _useSchemaModel.getCombinedModel,
|
|
55
58
|
pushFieldRule = _useSchemaModel.pushFieldRule,
|
|
@@ -79,7 +82,7 @@ var Form = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
79
82
|
* The error message after verification is returned in the callback.
|
|
80
83
|
* @param callback
|
|
81
84
|
*/
|
|
82
|
-
var check = (0,
|
|
85
|
+
var check = (0, _utils.useEventCallback)(function (callback) {
|
|
83
86
|
var formValue = realFormValue || {};
|
|
84
87
|
var formError = {};
|
|
85
88
|
var errorCount = 0;
|
|
@@ -99,14 +102,14 @@ var Form = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
99
102
|
return false;
|
|
100
103
|
}
|
|
101
104
|
return true;
|
|
102
|
-
}
|
|
105
|
+
});
|
|
103
106
|
|
|
104
107
|
/**
|
|
105
108
|
* Check the data field
|
|
106
109
|
* @param fieldName
|
|
107
110
|
* @param callback
|
|
108
111
|
*/
|
|
109
|
-
var checkForField = (0,
|
|
112
|
+
var checkForField = (0, _utils.useEventCallback)(function (fieldName, callback) {
|
|
110
113
|
var _extends2;
|
|
111
114
|
var formValue = realFormValue || {};
|
|
112
115
|
var model = getCombinedModel();
|
|
@@ -119,12 +122,12 @@ var Form = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
119
122
|
onError === null || onError === void 0 ? void 0 : onError(formError);
|
|
120
123
|
}
|
|
121
124
|
return !checkResult.hasError;
|
|
122
|
-
}
|
|
125
|
+
});
|
|
123
126
|
|
|
124
127
|
/**
|
|
125
128
|
* Check form data asynchronously and return a Promise
|
|
126
129
|
*/
|
|
127
|
-
var checkAsync = (0,
|
|
130
|
+
var checkAsync = (0, _utils.useEventCallback)(function () {
|
|
128
131
|
var formValue = realFormValue || {};
|
|
129
132
|
var promises = [];
|
|
130
133
|
var keys = [];
|
|
@@ -152,13 +155,13 @@ var Form = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
152
155
|
formError: formError
|
|
153
156
|
};
|
|
154
157
|
});
|
|
155
|
-
}
|
|
158
|
+
});
|
|
156
159
|
|
|
157
160
|
/**
|
|
158
161
|
* Asynchronously check form fields and return Promise
|
|
159
162
|
* @param fieldName
|
|
160
163
|
*/
|
|
161
|
-
var checkForFieldAsync = (0,
|
|
164
|
+
var checkForFieldAsync = (0, _utils.useEventCallback)(function (fieldName) {
|
|
162
165
|
var formValue = realFormValue || {};
|
|
163
166
|
var model = getCombinedModel();
|
|
164
167
|
return model.checkForFieldAsync(fieldName, formValue).then(function (checkResult) {
|
|
@@ -171,19 +174,19 @@ var Form = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
171
174
|
}
|
|
172
175
|
return checkResult;
|
|
173
176
|
});
|
|
174
|
-
}
|
|
175
|
-
var cleanErrors = (0,
|
|
177
|
+
});
|
|
178
|
+
var cleanErrors = (0, _utils.useEventCallback)(function () {
|
|
176
179
|
setFormError({});
|
|
177
|
-
}
|
|
178
|
-
var cleanErrorForField = (0,
|
|
180
|
+
});
|
|
181
|
+
var cleanErrorForField = (0, _utils.useEventCallback)(function (fieldName) {
|
|
179
182
|
setFormError((0, _omit.default)(realFormError, [fieldName]));
|
|
180
|
-
}
|
|
181
|
-
var resetErrors = (0,
|
|
183
|
+
});
|
|
184
|
+
var resetErrors = (0, _utils.useEventCallback)(function (formError) {
|
|
182
185
|
if (formError === void 0) {
|
|
183
186
|
formError = {};
|
|
184
187
|
}
|
|
185
188
|
setFormError(formError);
|
|
186
|
-
}
|
|
189
|
+
});
|
|
187
190
|
(0, _react.useImperativeHandle)(ref, function () {
|
|
188
191
|
return {
|
|
189
192
|
root: rootRef.current,
|
|
@@ -196,7 +199,7 @@ var Form = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
196
199
|
resetErrors: resetErrors
|
|
197
200
|
};
|
|
198
201
|
});
|
|
199
|
-
var removeFieldError = (0,
|
|
202
|
+
var removeFieldError = (0, _utils.useEventCallback)(function (name) {
|
|
200
203
|
/**
|
|
201
204
|
* when this function is called when the children component is unmount, it's an old render frame
|
|
202
205
|
* so use Ref to get future error
|
|
@@ -205,8 +208,8 @@ var Form = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
205
208
|
realFormErrorRef.current = formError;
|
|
206
209
|
setFormError(formError);
|
|
207
210
|
onCheck === null || onCheck === void 0 ? void 0 : onCheck(formError);
|
|
208
|
-
}
|
|
209
|
-
var removeFieldValue = (0,
|
|
211
|
+
});
|
|
212
|
+
var removeFieldValue = (0, _utils.useEventCallback)(function (name) {
|
|
210
213
|
/**
|
|
211
214
|
* when this function is called when the children component is unmount, it's an old render frame
|
|
212
215
|
* so use Ref to get future value
|
|
@@ -215,8 +218,8 @@ var Form = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
215
218
|
realFormValueRef.current = formValue;
|
|
216
219
|
setFormValue(formValue);
|
|
217
220
|
onChange === null || onChange === void 0 ? void 0 : onChange(formValue);
|
|
218
|
-
}
|
|
219
|
-
var handleSubmit = (0,
|
|
221
|
+
});
|
|
222
|
+
var handleSubmit = (0, _utils.useEventCallback)(function (event) {
|
|
220
223
|
if (disabled || readOnly || plaintext) {
|
|
221
224
|
return;
|
|
222
225
|
}
|
|
@@ -224,24 +227,29 @@ var Form = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
224
227
|
event.stopPropagation();
|
|
225
228
|
var checkStatus = check();
|
|
226
229
|
onSubmit === null || onSubmit === void 0 ? void 0 : onSubmit(checkStatus, event);
|
|
227
|
-
}
|
|
228
|
-
var handleFieldError = (0,
|
|
230
|
+
});
|
|
231
|
+
var handleFieldError = (0, _utils.useEventCallback)(function (name, errorMessage) {
|
|
229
232
|
var _extends4;
|
|
230
233
|
var formError = (0, _extends6.default)({}, realFormError, (_extends4 = {}, _extends4[name] = errorMessage, _extends4));
|
|
231
234
|
setFormError(formError);
|
|
232
235
|
onError === null || onError === void 0 ? void 0 : onError(formError);
|
|
233
236
|
onCheck === null || onCheck === void 0 ? void 0 : onCheck(formError);
|
|
234
|
-
}
|
|
235
|
-
var handleFieldSuccess = (0,
|
|
237
|
+
});
|
|
238
|
+
var handleFieldSuccess = (0, _utils.useEventCallback)(function (name) {
|
|
236
239
|
removeFieldError(name);
|
|
237
|
-
}
|
|
238
|
-
var
|
|
240
|
+
});
|
|
241
|
+
var setFieldValue = function setFieldValue(formValue, fieldName, fieldValue) {
|
|
239
242
|
var _extends5;
|
|
240
|
-
|
|
241
|
-
|
|
243
|
+
if (nestedField) {
|
|
244
|
+
return (0, _set.default)((0, _extends6.default)({}, formValue), fieldName, fieldValue);
|
|
245
|
+
}
|
|
246
|
+
return (0, _extends6.default)({}, formValue, (_extends5 = {}, _extends5[fieldName] = fieldValue, _extends5));
|
|
247
|
+
};
|
|
248
|
+
var handleFieldChange = (0, _utils.useEventCallback)(function (name, value, event) {
|
|
249
|
+
var nextFormValue = setFieldValue(realFormValue, name, value);
|
|
242
250
|
setFormValue(nextFormValue);
|
|
243
251
|
onChange === null || onChange === void 0 ? void 0 : onChange(nextFormValue, event);
|
|
244
|
-
}
|
|
252
|
+
});
|
|
245
253
|
var rootRef = (0, _react.useRef)(null);
|
|
246
254
|
var formContextValue = (0, _react.useMemo)(function () {
|
|
247
255
|
return {
|
|
@@ -252,6 +260,7 @@ var Form = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
252
260
|
plaintext: plaintext,
|
|
253
261
|
disabled: disabled,
|
|
254
262
|
formError: realFormError,
|
|
263
|
+
nestedField: nestedField,
|
|
255
264
|
removeFieldValue: removeFieldValue,
|
|
256
265
|
removeFieldError: removeFieldError,
|
|
257
266
|
pushFieldRule: pushFieldRule,
|
|
@@ -260,7 +269,7 @@ var Form = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
260
269
|
onFieldError: handleFieldError,
|
|
261
270
|
onFieldSuccess: handleFieldSuccess
|
|
262
271
|
};
|
|
263
|
-
}, [getCombinedModel, checkTrigger, errorFromContext, readOnly, plaintext, disabled, realFormError, removeFieldValue, removeFieldError, pushFieldRule, removeFieldRule, handleFieldChange, handleFieldError, handleFieldSuccess]);
|
|
272
|
+
}, [getCombinedModel, checkTrigger, errorFromContext, readOnly, plaintext, disabled, realFormError, nestedField, removeFieldValue, removeFieldError, pushFieldRule, removeFieldRule, handleFieldChange, handleFieldError, handleFieldSuccess]);
|
|
264
273
|
return /*#__PURE__*/_react.default.createElement("form", (0, _extends6.default)({}, rest, {
|
|
265
274
|
ref: rootRef,
|
|
266
275
|
onSubmit: handleSubmit,
|
|
@@ -7,6 +7,7 @@ interface TrulyFormContextValue<T = Record<string, any>, errorMsgType = any, E =
|
|
|
7
7
|
}> {
|
|
8
8
|
getCombinedModel: () => Schema;
|
|
9
9
|
formError: E;
|
|
10
|
+
nestedField: boolean;
|
|
10
11
|
removeFieldValue: (name: string) => void;
|
|
11
12
|
removeFieldError: (name: string) => void;
|
|
12
13
|
pushFieldRule: (name: string, fieldRule: FieldRuleType) => void;
|
|
@@ -6,7 +6,7 @@ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWild
|
|
|
6
6
|
exports.__esModule = true;
|
|
7
7
|
exports.default = void 0;
|
|
8
8
|
var _taggedTemplateLiteralLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteralLoose"));
|
|
9
|
-
var
|
|
9
|
+
var _extends3 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
10
10
|
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
11
11
|
var _react = _interopRequireWildcard(require("react"));
|
|
12
12
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
@@ -37,6 +37,7 @@ var FormControl = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
37
37
|
disabledContext = _useContext.disabled,
|
|
38
38
|
errorFromContext = _useContext.errorFromContext,
|
|
39
39
|
formError = _useContext.formError,
|
|
40
|
+
nestedField = _useContext.nestedField,
|
|
40
41
|
removeFieldValue = _useContext.removeFieldValue,
|
|
41
42
|
removeFieldError = _useContext.removeFieldError,
|
|
42
43
|
pushFieldRule = _useContext.pushFieldRule,
|
|
@@ -86,46 +87,67 @@ var FormControl = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
86
87
|
});
|
|
87
88
|
var trigger = checkTrigger || contextCheckTrigger;
|
|
88
89
|
var formValue = (0, _react.useContext)(_FormContext.FormValueContext);
|
|
89
|
-
var
|
|
90
|
+
var getFieldValue = function getFieldValue(fieldName) {
|
|
91
|
+
if (!(0, _isUndefined.default)(value)) {
|
|
92
|
+
return value;
|
|
93
|
+
}
|
|
94
|
+
return nestedField ? (0, _get.default)(formValue, fieldName) : formValue === null || formValue === void 0 ? void 0 : formValue[name];
|
|
95
|
+
};
|
|
96
|
+
var setFieldValue = function setFieldValue(fieldName, fieldValue) {
|
|
97
|
+
var _extends2;
|
|
98
|
+
if (nestedField) {
|
|
99
|
+
return (0, _set.default)((0, _extends3.default)({}, formValue), fieldName, fieldValue);
|
|
100
|
+
}
|
|
101
|
+
return (0, _extends3.default)({}, formValue, (_extends2 = {}, _extends2[fieldName] = fieldValue, _extends2));
|
|
102
|
+
};
|
|
103
|
+
var getFieldError = function getFieldError(fieldName) {
|
|
104
|
+
if (nestedField) {
|
|
105
|
+
var _name = fieldName.includes('.') ? fieldName.replace('.', '.object.') + '.errorMessage' : fieldName;
|
|
106
|
+
return (0, _get.default)(formError, _name);
|
|
107
|
+
}
|
|
108
|
+
return formError === null || formError === void 0 ? void 0 : formError[fieldName];
|
|
109
|
+
};
|
|
110
|
+
var fieldValue = getFieldValue(name);
|
|
90
111
|
var _useClassNames = (0, _utils.useClassNames)(classPrefix),
|
|
91
112
|
withClassPrefix = _useClassNames.withClassPrefix,
|
|
92
113
|
prefix = _useClassNames.prefix;
|
|
93
114
|
var classes = withClassPrefix('wrapper');
|
|
94
|
-
var handleFieldChange = function
|
|
115
|
+
var handleFieldChange = (0, _utils.useEventCallback)(function (value, event) {
|
|
95
116
|
handleFieldCheck(value, trigger === 'change');
|
|
96
117
|
onFieldChange === null || onFieldChange === void 0 ? void 0 : onFieldChange(name, value, event);
|
|
97
118
|
onChange === null || onChange === void 0 ? void 0 : onChange(value, event);
|
|
98
|
-
};
|
|
99
|
-
var handleFieldBlur = function
|
|
100
|
-
handleFieldCheck(
|
|
119
|
+
});
|
|
120
|
+
var handleFieldBlur = (0, _utils.useEventCallback)(function (event) {
|
|
121
|
+
handleFieldCheck(fieldValue, trigger === 'blur');
|
|
101
122
|
onBlur === null || onBlur === void 0 ? void 0 : onBlur(event);
|
|
102
|
-
};
|
|
103
|
-
var handleFieldCheck = function
|
|
123
|
+
});
|
|
124
|
+
var handleFieldCheck = (0, _utils.useEventCallback)(function (value, isCheckTrigger) {
|
|
125
|
+
var checkFieldName = nestedField ? name.split('.')[0] : name;
|
|
104
126
|
var callbackEvents = function callbackEvents(checkResult) {
|
|
105
127
|
// The relevant event is triggered only when the inspection is allowed.
|
|
106
128
|
if (isCheckTrigger) {
|
|
107
129
|
if (checkResult.hasError) {
|
|
108
|
-
onFieldError === null || onFieldError === void 0 ? void 0 : onFieldError(
|
|
130
|
+
onFieldError === null || onFieldError === void 0 ? void 0 : onFieldError(checkFieldName, (checkResult === null || checkResult === void 0 ? void 0 : checkResult.errorMessage) || checkResult);
|
|
109
131
|
} else {
|
|
110
|
-
onFieldSuccess === null || onFieldSuccess === void 0 ? void 0 : onFieldSuccess(
|
|
132
|
+
onFieldSuccess === null || onFieldSuccess === void 0 ? void 0 : onFieldSuccess(checkFieldName);
|
|
111
133
|
}
|
|
112
134
|
}
|
|
113
135
|
return checkResult;
|
|
114
136
|
};
|
|
115
|
-
var nextFormValue = (
|
|
137
|
+
var nextFormValue = setFieldValue(name, value);
|
|
116
138
|
var model = getCombinedModel();
|
|
117
139
|
if (checkAsync) {
|
|
118
|
-
return model === null || model === void 0 ? void 0 : model.checkForFieldAsync(
|
|
140
|
+
return model === null || model === void 0 ? void 0 : model.checkForFieldAsync(checkFieldName, nextFormValue).then(function (checkResult) {
|
|
119
141
|
return callbackEvents(checkResult);
|
|
120
142
|
});
|
|
121
143
|
}
|
|
122
|
-
return Promise.resolve(callbackEvents(model === null || model === void 0 ? void 0 : model.checkForField(
|
|
123
|
-
};
|
|
144
|
+
return Promise.resolve(callbackEvents(model === null || model === void 0 ? void 0 : model.checkForField(checkFieldName, nextFormValue)));
|
|
145
|
+
});
|
|
124
146
|
var messageNode = null;
|
|
125
147
|
if (!(0, _isUndefined.default)(errorMessage)) {
|
|
126
148
|
messageNode = errorMessage;
|
|
127
149
|
} else if (errorFromContext) {
|
|
128
|
-
var fieldError =
|
|
150
|
+
var fieldError = getFieldError(name);
|
|
129
151
|
if (typeof fieldError === 'string' || !(fieldError !== null && fieldError !== void 0 && fieldError.array) && !(fieldError !== null && fieldError !== void 0 && fieldError.object) && fieldError !== null && fieldError !== void 0 && fieldError.hasError) {
|
|
130
152
|
messageNode = fieldError;
|
|
131
153
|
}
|
|
@@ -139,12 +161,12 @@ var FormControl = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
139
161
|
if (AccepterComponent === _Toggle.default) {
|
|
140
162
|
valueKey = 'checked';
|
|
141
163
|
}
|
|
142
|
-
var accepterProps = (_accepterProps = {}, _accepterProps[valueKey] =
|
|
164
|
+
var accepterProps = (_accepterProps = {}, _accepterProps[valueKey] = fieldValue === undefined ? defaultValue : fieldValue, _accepterProps);
|
|
143
165
|
return /*#__PURE__*/_react.default.createElement(Component, {
|
|
144
166
|
className: classes,
|
|
145
167
|
ref: ref,
|
|
146
168
|
"data-testid": "form-control-wrapper"
|
|
147
|
-
}, /*#__PURE__*/_react.default.createElement(AccepterComponent, (0,
|
|
169
|
+
}, /*#__PURE__*/_react.default.createElement(AccepterComponent, (0, _extends3.default)({
|
|
148
170
|
id: controlId,
|
|
149
171
|
"aria-labelledby": controlId ? controlId + "-control-label" : null,
|
|
150
172
|
"aria-describedby": ariaDescribedby,
|
|
@@ -158,7 +180,7 @@ var FormControl = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
158
180
|
onChange: handleFieldChange,
|
|
159
181
|
onBlur: handleFieldBlur
|
|
160
182
|
})), /*#__PURE__*/_react.default.createElement(_FormErrorMessage.default, {
|
|
161
|
-
id: controlId + "-error-message",
|
|
183
|
+
id: controlId ? controlId + "-error-message" : undefined,
|
|
162
184
|
role: "alert",
|
|
163
185
|
"aria-relevant": "all",
|
|
164
186
|
show: !!messageNode,
|
|
@@ -22,13 +22,14 @@ var FormGroup = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
22
22
|
Component = _props$as === void 0 ? 'div' : _props$as,
|
|
23
23
|
_props$classPrefix = props.classPrefix,
|
|
24
24
|
classPrefix = _props$classPrefix === void 0 ? 'form-group' : _props$classPrefix,
|
|
25
|
-
|
|
25
|
+
controlIdProp = props.controlId,
|
|
26
26
|
className = props.className,
|
|
27
27
|
rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "classPrefix", "controlId", "className"]);
|
|
28
28
|
var _useClassNames = (0, _utils.useClassNames)(classPrefix),
|
|
29
29
|
withClassPrefix = _useClassNames.withClassPrefix,
|
|
30
30
|
merge = _useClassNames.merge;
|
|
31
31
|
var classes = merge(className, withClassPrefix());
|
|
32
|
+
var controlId = (0, _utils.useUniqueId)('rs-', controlIdProp);
|
|
32
33
|
var contextValue = (0, _react.useMemo)(function () {
|
|
33
34
|
return {
|
|
34
35
|
controlId: controlId
|