rsuite 5.19.0 → 5.20.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 +30 -0
- package/Picker/styles/index.less +4 -0
- package/cjs/Animation/Transition.d.ts +2 -2
- package/cjs/Cascader/Cascader.js +10 -5
- package/cjs/Cascader/utils.d.ts +1 -0
- package/cjs/Cascader/utils.js +11 -1
- package/cjs/CheckTreePicker/CheckTreePicker.js +32 -36
- package/cjs/CheckTreePicker/utils.d.ts +2 -2
- package/cjs/CheckTreePicker/utils.js +9 -10
- package/cjs/DOMHelper/index.d.ts +3 -2
- package/cjs/DatePicker/DatePicker.js +9 -0
- package/cjs/DatePicker/PredefinedRanges.js +5 -0
- package/cjs/DateRangePicker/DateRangePicker.js +9 -7
- package/cjs/Form/Form.js +44 -38
- package/cjs/MultiCascader/MultiCascader.js +10 -5
- package/cjs/MultiCascader/utils.d.ts +1 -0
- package/cjs/MultiCascader/utils.js +10 -0
- package/cjs/Overlay/OverlayTrigger.d.ts +10 -1
- package/cjs/Overlay/OverlayTrigger.js +26 -4
- package/cjs/Picker/PickerToggle.d.ts +1 -0
- package/cjs/Picker/PickerToggle.js +24 -8
- package/cjs/Picker/PickerToggleTrigger.d.ts +1 -1
- package/cjs/Picker/PickerToggleTrigger.js +4 -2
- package/cjs/SelectPicker/SelectPicker.d.ts +2 -0
- package/cjs/TreePicker/TreePicker.d.ts +0 -1
- package/cjs/TreePicker/TreePicker.js +13 -14
- package/cjs/locales/fr_FR.d.ts +105 -0
- package/cjs/locales/fr_FR.js +84 -0
- package/cjs/locales/index.d.ts +1 -0
- package/cjs/locales/index.js +6 -2
- package/cjs/utils/treeUtils.d.ts +7 -1
- package/cjs/utils/treeUtils.js +24 -5
- package/dist/rsuite-rtl.css +3 -0
- package/dist/rsuite-rtl.min.css +1 -1
- package/dist/rsuite-rtl.min.css.map +1 -1
- package/dist/rsuite.css +3 -0
- package/dist/rsuite.js +64 -64
- 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/Animation/Transition.d.ts +2 -2
- package/esm/Cascader/Cascader.js +10 -5
- package/esm/Cascader/utils.d.ts +1 -0
- package/esm/Cascader/utils.js +11 -1
- package/esm/CheckTreePicker/CheckTreePicker.js +34 -37
- package/esm/CheckTreePicker/utils.d.ts +2 -2
- package/esm/CheckTreePicker/utils.js +11 -12
- package/esm/DOMHelper/index.d.ts +3 -2
- package/esm/DatePicker/DatePicker.js +8 -0
- package/esm/DatePicker/PredefinedRanges.js +5 -0
- package/esm/DateRangePicker/DateRangePicker.js +9 -7
- package/esm/Form/Form.js +44 -38
- package/esm/MultiCascader/MultiCascader.js +10 -5
- package/esm/MultiCascader/utils.d.ts +1 -0
- package/esm/MultiCascader/utils.js +10 -0
- package/esm/Overlay/OverlayTrigger.d.ts +10 -1
- package/esm/Overlay/OverlayTrigger.js +23 -3
- package/esm/Picker/PickerToggle.d.ts +1 -0
- package/esm/Picker/PickerToggle.js +22 -8
- package/esm/Picker/PickerToggleTrigger.d.ts +1 -1
- package/esm/Picker/PickerToggleTrigger.js +4 -2
- package/esm/SelectPicker/SelectPicker.d.ts +2 -0
- package/esm/TreePicker/TreePicker.d.ts +0 -1
- package/esm/TreePicker/TreePicker.js +13 -13
- package/esm/locales/fr_FR.d.ts +105 -0
- package/esm/locales/fr_FR.js +74 -0
- package/esm/locales/index.d.ts +1 -0
- package/esm/locales/index.js +2 -1
- package/esm/utils/treeUtils.d.ts +7 -1
- package/esm/utils/treeUtils.js +22 -5
- package/locales/fr_FR/package.json +7 -0
- package/package.json +7 -7
|
@@ -103,6 +103,7 @@ var MultiCascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
103
103
|
columnData = _useColumnData.columnData,
|
|
104
104
|
setColumnData = _useColumnData.setColumnData,
|
|
105
105
|
addColumn = _useColumnData.addColumn,
|
|
106
|
+
romoveColumnByIndex = _useColumnData.romoveColumnByIndex,
|
|
106
107
|
enforceUpdateColumnData = _useColumnData.enforceUpdateColumnData;
|
|
107
108
|
|
|
108
109
|
useUpdateEffect(function () {
|
|
@@ -186,7 +187,8 @@ var MultiCascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
186
187
|
var _node$childrenKey, _node$childrenKey2, _triggerRef$current, _triggerRef$current$u;
|
|
187
188
|
|
|
188
189
|
setSelectedPaths(cascadePaths);
|
|
189
|
-
onSelect === null || onSelect === void 0 ? void 0 : onSelect(node, cascadePaths, event);
|
|
190
|
+
onSelect === null || onSelect === void 0 ? void 0 : onSelect(node, cascadePaths, event);
|
|
191
|
+
var columnIndex = cascadePaths.length; // Lazy load node's children
|
|
190
192
|
|
|
191
193
|
if (typeof getChildren === 'function' && ((_node$childrenKey = node[childrenKey]) === null || _node$childrenKey === void 0 ? void 0 : _node$childrenKey.length) === 0) {
|
|
192
194
|
node.loading = true;
|
|
@@ -199,21 +201,24 @@ var MultiCascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
199
201
|
|
|
200
202
|
if (targetRef.current) {
|
|
201
203
|
addFlattenData(data, node);
|
|
202
|
-
addColumn(data,
|
|
204
|
+
addColumn(data, columnIndex);
|
|
203
205
|
}
|
|
204
206
|
});
|
|
205
207
|
} else {
|
|
206
208
|
node.loading = false;
|
|
207
209
|
node[childrenKey] = children;
|
|
208
210
|
addFlattenData(children, node);
|
|
209
|
-
addColumn(children,
|
|
211
|
+
addColumn(children, columnIndex);
|
|
210
212
|
}
|
|
211
213
|
} else if ((_node$childrenKey2 = node[childrenKey]) !== null && _node$childrenKey2 !== void 0 && _node$childrenKey2.length) {
|
|
212
|
-
addColumn(node[childrenKey],
|
|
214
|
+
addColumn(node[childrenKey], columnIndex);
|
|
215
|
+
} else {
|
|
216
|
+
// Removes subsequent columns of the current column when the clicked node is a leaf node.
|
|
217
|
+
romoveColumnByIndex(columnIndex);
|
|
213
218
|
}
|
|
214
219
|
|
|
215
220
|
(_triggerRef$current = triggerRef.current) === null || _triggerRef$current === void 0 ? void 0 : (_triggerRef$current$u = _triggerRef$current.updatePosition) === null || _triggerRef$current$u === void 0 ? void 0 : _triggerRef$current$u.call(_triggerRef$current);
|
|
216
|
-
}, [onSelect, getChildren, childrenKey, addColumn,
|
|
221
|
+
}, [onSelect, getChildren, childrenKey, addFlattenData, addColumn, romoveColumnByIndex]);
|
|
217
222
|
var handleCheck = useCallback(function (node, event, checked) {
|
|
218
223
|
var nodeValue = node[valueKey];
|
|
219
224
|
var nextValue = [];
|
|
@@ -48,6 +48,7 @@ export declare function useFlattenData(data: ItemDataType[], itemKeys: ItemKeys)
|
|
|
48
48
|
export declare function useColumnData(flattenData: ItemType[]): {
|
|
49
49
|
columnData: ItemDataType<string | number>[][];
|
|
50
50
|
addColumn: (column: ItemDataType[], index: number) => void;
|
|
51
|
+
romoveColumnByIndex: (index: number) => void;
|
|
51
52
|
setColumnData: import("react").Dispatch<import("react").SetStateAction<ItemDataType<string | number>[][]>>;
|
|
52
53
|
enforceUpdateColumnData: (nextData: ItemDataType[]) => void;
|
|
53
54
|
};
|
|
@@ -203,6 +203,15 @@ export function useColumnData(flattenData) {
|
|
|
203
203
|
function addColumn(column, index) {
|
|
204
204
|
setColumnData([].concat(slice(columnData, 0, index), [column]));
|
|
205
205
|
}
|
|
206
|
+
/**
|
|
207
|
+
* Remove subsequent columns of the specified column
|
|
208
|
+
* @param index
|
|
209
|
+
*/
|
|
210
|
+
|
|
211
|
+
|
|
212
|
+
function romoveColumnByIndex(index) {
|
|
213
|
+
setColumnData([].concat(slice(columnData, 0, index)));
|
|
214
|
+
}
|
|
206
215
|
|
|
207
216
|
function enforceUpdateColumnData(nextData) {
|
|
208
217
|
var nextFlattenData = flattenTree(nextData);
|
|
@@ -214,6 +223,7 @@ export function useColumnData(flattenData) {
|
|
|
214
223
|
return {
|
|
215
224
|
columnData: columnData,
|
|
216
225
|
addColumn: addColumn,
|
|
226
|
+
romoveColumnByIndex: romoveColumnByIndex,
|
|
217
227
|
setColumnData: setColumnData,
|
|
218
228
|
enforceUpdateColumnData: enforceUpdateColumnData
|
|
219
229
|
};
|
|
@@ -59,10 +59,19 @@ export interface OverlayTriggerProps extends StandardProps, AnimationEventProps
|
|
|
59
59
|
/** Callback fired when open component */
|
|
60
60
|
onOpen?: () => void;
|
|
61
61
|
/** Callback fired when close component */
|
|
62
|
-
onClose?: () => void;
|
|
62
|
+
onClose?: (cause?: OverlayCloseCause) => void;
|
|
63
63
|
/** Whether speaker to follow the cursor */
|
|
64
64
|
followCursor?: boolean;
|
|
65
65
|
}
|
|
66
|
+
/**
|
|
67
|
+
* The reason that triggers closing of an overlay
|
|
68
|
+
* - Clicking outside of the overlay
|
|
69
|
+
* - Direct invocation of triggerRef.current.close()
|
|
70
|
+
*/
|
|
71
|
+
export declare enum OverlayCloseCause {
|
|
72
|
+
ClickOutside = 0,
|
|
73
|
+
ImperativeHandle = 1
|
|
74
|
+
}
|
|
66
75
|
export interface OverlayTriggerInstance {
|
|
67
76
|
root: HTMLElement | undefined;
|
|
68
77
|
updatePosition: () => void;
|
|
@@ -30,6 +30,12 @@ function mergeEvents(events, props) {
|
|
|
30
30
|
return nextEvents;
|
|
31
31
|
}
|
|
32
32
|
|
|
33
|
+
/**
|
|
34
|
+
* The reason that triggers closing of an overlay
|
|
35
|
+
* - Clicking outside of the overlay
|
|
36
|
+
* - Direct invocation of triggerRef.current.close()
|
|
37
|
+
*/
|
|
38
|
+
export var OverlayCloseCause;
|
|
33
39
|
/**
|
|
34
40
|
* Useful for mouseover and mouseout.
|
|
35
41
|
* In order to resolve the node entering the mouseover element, a mouseout event and a mouseover event will be triggered.
|
|
@@ -37,6 +43,12 @@ function mergeEvents(events, props) {
|
|
|
37
43
|
* @param handler
|
|
38
44
|
* @param event
|
|
39
45
|
*/
|
|
46
|
+
|
|
47
|
+
(function (OverlayCloseCause) {
|
|
48
|
+
OverlayCloseCause[OverlayCloseCause["ClickOutside"] = 0] = "ClickOutside";
|
|
49
|
+
OverlayCloseCause[OverlayCloseCause["ImperativeHandle"] = 1] = "ImperativeHandle";
|
|
50
|
+
})(OverlayCloseCause || (OverlayCloseCause = {}));
|
|
51
|
+
|
|
40
52
|
function onMouseEventHandler(handler, event, delay) {
|
|
41
53
|
var target = event.currentTarget;
|
|
42
54
|
var related = event.relatedTarget || get(event, ['nativeEvent', 'toElement']);
|
|
@@ -133,17 +145,19 @@ var OverlayTrigger = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
133
145
|
|
|
134
146
|
setOpen(true);
|
|
135
147
|
}, [delayOpen, setOpen]);
|
|
136
|
-
var handleClose = useCallback(function (delay) {
|
|
148
|
+
var handleClose = useCallback(function (delay, callback) {
|
|
137
149
|
var ms = _isUndefined(delay) ? delayClose : delay;
|
|
138
150
|
|
|
139
151
|
if (ms && typeof ms === 'number') {
|
|
140
152
|
return delayCloseTimer.current = setTimeout(function () {
|
|
141
153
|
delayCloseTimer.current = null;
|
|
142
154
|
setOpen(false);
|
|
155
|
+
callback === null || callback === void 0 ? void 0 : callback();
|
|
143
156
|
}, ms);
|
|
144
157
|
}
|
|
145
158
|
|
|
146
159
|
setOpen(false);
|
|
160
|
+
callback === null || callback === void 0 ? void 0 : callback();
|
|
147
161
|
}, [delayClose, setOpen]);
|
|
148
162
|
var handleExited = useCallback(function () {
|
|
149
163
|
setCursorPosition(null);
|
|
@@ -161,7 +175,11 @@ var OverlayTrigger = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
161
175
|
},
|
|
162
176
|
|
|
163
177
|
open: handleOpen,
|
|
164
|
-
close:
|
|
178
|
+
close: function close(delay) {
|
|
179
|
+
return handleClose(delay, function () {
|
|
180
|
+
return onClose === null || onClose === void 0 ? void 0 : onClose(OverlayCloseCause.ImperativeHandle);
|
|
181
|
+
});
|
|
182
|
+
},
|
|
165
183
|
updatePosition: function updatePosition() {
|
|
166
184
|
var _overlayRef$current2, _overlayRef$current2$;
|
|
167
185
|
|
|
@@ -322,7 +340,9 @@ var OverlayTrigger = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
322
340
|
var overlayProps = _extends({}, rest, {
|
|
323
341
|
rootClose: rootClose,
|
|
324
342
|
triggerTarget: triggerRef,
|
|
325
|
-
onClose: trigger !== 'none' ? createChainedFunction(handleClose,
|
|
343
|
+
onClose: trigger !== 'none' ? createChainedFunction(handleClose, function () {
|
|
344
|
+
return onClose === null || onClose === void 0 ? void 0 : onClose(OverlayCloseCause.ClickOutside);
|
|
345
|
+
}) : undefined,
|
|
326
346
|
onExited: createChainedFunction(followCursor ? handleExited : undefined, onExited),
|
|
327
347
|
placement: placement,
|
|
328
348
|
container: container,
|
|
@@ -14,6 +14,8 @@ import Plaintext from '../Plaintext';
|
|
|
14
14
|
import useToggleCaret from '../utils/useToggleCaret';
|
|
15
15
|
import TextMask from '../MaskedInput/TextMask';
|
|
16
16
|
import deprecatePropType from '../utils/deprecatePropType';
|
|
17
|
+
import Loader from '../Loader';
|
|
18
|
+
import Stack from '../Stack';
|
|
17
19
|
var defaultInputMask = [];
|
|
18
20
|
var PickerToggle = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
19
21
|
var activeProp = props.active,
|
|
@@ -30,6 +32,8 @@ var PickerToggle = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
30
32
|
plaintext = props.plaintext,
|
|
31
33
|
hasValue = props.hasValue,
|
|
32
34
|
editable = props.editable,
|
|
35
|
+
_props$loading = props.loading,
|
|
36
|
+
loading = _props$loading === void 0 ? false : _props$loading,
|
|
33
37
|
cleanableProp = props.cleanable,
|
|
34
38
|
_props$tabIndex = props.tabIndex,
|
|
35
39
|
tabIndexProp = _props$tabIndex === void 0 ? editable ? -1 : 0 : _props$tabIndex,
|
|
@@ -52,7 +56,7 @@ var PickerToggle = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
52
56
|
_props$caretAs = props.caretAs,
|
|
53
57
|
caretAs = _props$caretAs === void 0 ? caretComponent : _props$caretAs,
|
|
54
58
|
label = props.label,
|
|
55
|
-
rest = _objectWithoutPropertiesLoose(props, ["active", "as", "classPrefix", "children", "caret", "className", "disabled", "readOnly", "plaintext", "hasValue", "editable", "cleanable", "tabIndex", "id", "value", "inputPlaceholder", "inputValue", "inputMask", "onInputChange", "onInputPressEnter", "onInputBlur", "onInputFocus", "onClean", "onFocus", "onBlur", "placement", "caretComponent", "caretAs", "label"]);
|
|
59
|
+
rest = _objectWithoutPropertiesLoose(props, ["active", "as", "classPrefix", "children", "caret", "className", "disabled", "readOnly", "plaintext", "hasValue", "editable", "loading", "cleanable", "tabIndex", "id", "value", "inputPlaceholder", "inputValue", "inputMask", "onInputChange", "onInputPressEnter", "onInputBlur", "onInputFocus", "onClean", "onFocus", "onBlur", "placement", "caretComponent", "caretAs", "label"]);
|
|
56
60
|
|
|
57
61
|
var inputRef = useRef(null);
|
|
58
62
|
var comboboxRef = useRef(null);
|
|
@@ -85,7 +89,9 @@ var PickerToggle = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
85
89
|
active: activeProp || activeState
|
|
86
90
|
}));
|
|
87
91
|
var handleFocus = useCallback(function (event) {
|
|
88
|
-
|
|
92
|
+
if (!loading) {
|
|
93
|
+
setActive(true);
|
|
94
|
+
}
|
|
89
95
|
|
|
90
96
|
if (editable) {
|
|
91
97
|
// Avoid firing the onFocus event twice when DatePicker and DateRangePicker allow keyboard input.
|
|
@@ -102,7 +108,7 @@ var PickerToggle = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
102
108
|
} else {
|
|
103
109
|
onFocus === null || onFocus === void 0 ? void 0 : onFocus(event);
|
|
104
110
|
}
|
|
105
|
-
}, [editable, onFocus]);
|
|
111
|
+
}, [editable, loading, onFocus]);
|
|
106
112
|
var handleBlur = useCallback(function (event) {
|
|
107
113
|
if (inputRef.current && !editable) {
|
|
108
114
|
setActive(false);
|
|
@@ -177,7 +183,17 @@ var PickerToggle = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
177
183
|
onFocus: !disabled ? handleFocus : null // The debounce is set to 200 to solve the flicker caused by the switch between input and div.
|
|
178
184
|
,
|
|
179
185
|
onBlur: !disabled ? debounce(handleBlur, 200) : null
|
|
180
|
-
}), /*#__PURE__*/React.createElement(
|
|
186
|
+
}), /*#__PURE__*/React.createElement(Stack, null, label && /*#__PURE__*/React.createElement(Stack.Item, null, /*#__PURE__*/React.createElement("span", {
|
|
187
|
+
className: prefix('label')
|
|
188
|
+
}, label)), /*#__PURE__*/React.createElement(Stack.Item, {
|
|
189
|
+
grow: 1
|
|
190
|
+
}, loading ? /*#__PURE__*/React.createElement(Loader, {
|
|
191
|
+
style: {
|
|
192
|
+
display: 'block',
|
|
193
|
+
padding: '1px 0'
|
|
194
|
+
},
|
|
195
|
+
"data-testid": "spinner"
|
|
196
|
+
}) : /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(TextMask, {
|
|
181
197
|
mask: inputMask,
|
|
182
198
|
value: Array.isArray(inputValue) ? inputValue.toString() : inputValue,
|
|
183
199
|
onBlur: handleInputBlur,
|
|
@@ -198,9 +214,7 @@ var PickerToggle = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
198
214
|
}), children ? /*#__PURE__*/React.createElement("span", {
|
|
199
215
|
className: prefix(hasValue ? 'value' : 'placeholder'),
|
|
200
216
|
"aria-placeholder": typeof children === 'string' ? children : undefined
|
|
201
|
-
},
|
|
202
|
-
className: prefix('label')
|
|
203
|
-
}, label), children) : null, showCleanButton && /*#__PURE__*/React.createElement(CloseButton, {
|
|
217
|
+
}, children) : null)), showCleanButton && /*#__PURE__*/React.createElement(CloseButton, {
|
|
204
218
|
className: prefix(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["clean"]))),
|
|
205
219
|
tabIndex: -1,
|
|
206
220
|
locale: {
|
|
@@ -209,7 +223,7 @@ var PickerToggle = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
209
223
|
onClick: handleClean
|
|
210
224
|
}), caret && /*#__PURE__*/React.createElement(Caret, {
|
|
211
225
|
className: prefix(_templateObject2 || (_templateObject2 = _taggedTemplateLiteralLoose(["caret"])))
|
|
212
|
-
}));
|
|
226
|
+
})));
|
|
213
227
|
});
|
|
214
228
|
PickerToggle.displayName = 'PickerToggle';
|
|
215
229
|
PickerToggle.propTypes = {
|
|
@@ -3,7 +3,7 @@ import { OverlayTriggerInstance, OverlayTriggerProps, OverlayTriggerType } from
|
|
|
3
3
|
import { PositionChildProps } from '../Overlay/Position';
|
|
4
4
|
import { TypeAttributes, AnimationEventProps } from '../@types/common';
|
|
5
5
|
export type { OverlayTriggerInstance, PositionChildProps };
|
|
6
|
-
export interface PickerToggleTriggerProps extends Omit<AnimationEventProps, 'onEntering' | 'onExiting'>, Pick<OverlayTriggerProps, 'speaker'> {
|
|
6
|
+
export interface PickerToggleTriggerProps extends Omit<AnimationEventProps, 'onEntering' | 'onExiting'>, Pick<OverlayTriggerProps, 'speaker' | 'onClose'> {
|
|
7
7
|
placement?: TypeAttributes.Placement;
|
|
8
8
|
pickerProps: any;
|
|
9
9
|
open?: boolean;
|
|
@@ -6,7 +6,7 @@ import OverlayTrigger from '../Overlay/OverlayTrigger';
|
|
|
6
6
|
import { placementPolyfill } from '../utils';
|
|
7
7
|
import { CustomConsumer } from '../CustomProvider';
|
|
8
8
|
export var omitTriggerPropKeys = ['onEntered', 'onExited', 'onEnter', 'onEntering', 'onExit', 'onExiting', 'open', 'defaultOpen', 'onHide', 'container', 'containerPadding', 'preventOverflow'];
|
|
9
|
-
export var pickTriggerPropKeys = [].concat(omitTriggerPropKeys, ['disabled', 'plaintext', 'readOnly']);
|
|
9
|
+
export var pickTriggerPropKeys = [].concat(omitTriggerPropKeys, ['disabled', 'plaintext', 'readOnly', 'loading']);
|
|
10
10
|
var PickerToggleTrigger = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
11
11
|
var pickerProps = props.pickerProps,
|
|
12
12
|
speaker = props.speaker,
|
|
@@ -15,8 +15,10 @@ var PickerToggleTrigger = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
15
15
|
trigger = _props$trigger === void 0 ? 'click' : _props$trigger,
|
|
16
16
|
rest = _objectWithoutPropertiesLoose(props, ["pickerProps", "speaker", "placement", "trigger"]);
|
|
17
17
|
|
|
18
|
+
var pickerTriggerProps = pick(pickerProps, pickTriggerPropKeys);
|
|
18
19
|
return /*#__PURE__*/React.createElement(CustomConsumer, null, function (context) {
|
|
19
|
-
return /*#__PURE__*/React.createElement(OverlayTrigger, _extends({}, rest,
|
|
20
|
+
return /*#__PURE__*/React.createElement(OverlayTrigger, _extends({}, rest, pickerTriggerProps, {
|
|
21
|
+
disabled: pickerTriggerProps.disabled || pickerTriggerProps.loading,
|
|
20
22
|
ref: ref,
|
|
21
23
|
trigger: trigger,
|
|
22
24
|
placement: placementPolyfill(placement, context === null || context === void 0 ? void 0 : context.rtl),
|
|
@@ -6,6 +6,8 @@ import { FormControlPickerProps, ItemDataType } from '../@types/common';
|
|
|
6
6
|
export interface SelectProps<T> {
|
|
7
7
|
/** Set group condition key in data */
|
|
8
8
|
groupBy?: string;
|
|
9
|
+
/** Whether to display an loading indicator on toggle button */
|
|
10
|
+
loading?: boolean;
|
|
9
11
|
/** Whether dispaly search input box */
|
|
10
12
|
searchable?: boolean;
|
|
11
13
|
/** Whether using virtualized list */
|
|
@@ -3,7 +3,6 @@ import { PickerLocale } from '../locales';
|
|
|
3
3
|
import { PickerComponent, PickerToggleProps } from '../Picker';
|
|
4
4
|
import { TreeDragProps, TreeBaseProps } from '../Tree/Tree';
|
|
5
5
|
import { FormControlPickerProps, ItemDataType } from '../@types/common';
|
|
6
|
-
export declare const maxTreeHeight = 320;
|
|
7
6
|
export interface TreePickerProps<T = number | string> extends TreeBaseProps<T, ItemDataType>, TreeDragProps, FormControlPickerProps<T, PickerLocale, ItemDataType>, Pick<PickerToggleProps, 'caretAs'> {
|
|
8
7
|
/** The height of Dropdown */
|
|
9
8
|
height?: number;
|
|
@@ -13,9 +13,7 @@ import { getTreeNodeIndent } from '../utils/treeUtils';
|
|
|
13
13
|
import { createChainedFunction, useClassNames, useCustom, useControlled, TREE_NODE_DROP_POSITION, KEY_VALUES, mergeRefs, shallowEqual } from '../utils';
|
|
14
14
|
import { getExpandWhenSearching, hasVisibleChildren, getDragNodeKeys, calDropNodePosition, createUpdateTreeDataFunction, useTreeDrag, useFlattenTreeData, getTreeActiveNode, getDefaultExpandItemValues, useTreeNodeRefs, useTreeSearch, focusPreviousItem, getFocusableItems, focusNextItem, getActiveItem, toggleExpand, useGetTreeNodeChildren, focusToActiveTreeNode, leftArrowHandler, focusTreeNode, rightArrowHandler, isSearching } from '../utils/treeUtils';
|
|
15
15
|
import { PickerToggle, PickerOverlay, SearchBar, PickerToggleTrigger, createConcatChildrenFunction, usePickerClassName, onMenuKeyDown as _onMenuKeyDown, usePublicMethods, listPickerPropTypes, pickTriggerPropKeys, omitTriggerPropKeys, useToggleKeyDownEvent } from '../Picker';
|
|
16
|
-
import TreeContext from '../Tree/TreeContext';
|
|
17
|
-
|
|
18
|
-
export var maxTreeHeight = 320;
|
|
16
|
+
import TreeContext from '../Tree/TreeContext';
|
|
19
17
|
var emptyArray = [];
|
|
20
18
|
var TreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
21
19
|
var _props$as = props.as,
|
|
@@ -30,13 +28,15 @@ var TreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
30
28
|
overrideLocale = props.locale,
|
|
31
29
|
_props$height = props.height,
|
|
32
30
|
height = _props$height === void 0 ? 360 : _props$height,
|
|
31
|
+
_props$menuMaxHeight = props.menuMaxHeight,
|
|
32
|
+
menuMaxHeight = _props$menuMaxHeight === void 0 ? 320 : _props$menuMaxHeight,
|
|
33
|
+
menuStyle = props.menuStyle,
|
|
33
34
|
className = props.className,
|
|
34
35
|
disabled = props.disabled,
|
|
35
36
|
_props$placement = props.placement,
|
|
36
37
|
placement = _props$placement === void 0 ? 'bottomStart' : _props$placement,
|
|
37
38
|
_props$cleanable = props.cleanable,
|
|
38
39
|
cleanable = _props$cleanable === void 0 ? true : _props$cleanable,
|
|
39
|
-
menuStyle = props.menuStyle,
|
|
40
40
|
_props$searchable = props.searchable,
|
|
41
41
|
searchable = _props$searchable === void 0 ? true : _props$searchable,
|
|
42
42
|
_props$virtualized = props.virtualized,
|
|
@@ -89,7 +89,7 @@ var TreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
89
89
|
renderExtraFooter = props.renderExtraFooter,
|
|
90
90
|
renderMenu = props.renderMenu,
|
|
91
91
|
renderValue = props.renderValue,
|
|
92
|
-
rest = _objectWithoutPropertiesLoose(props, ["as", "data", "appearance", "style", "showIndentLine", "value", "locale", "height", "className", "disabled", "placement", "cleanable", "
|
|
92
|
+
rest = _objectWithoutPropertiesLoose(props, ["as", "data", "appearance", "style", "showIndentLine", "value", "locale", "height", "menuMaxHeight", "menuStyle", "className", "disabled", "placement", "cleanable", "searchable", "virtualized", "classPrefix", "defaultValue", "placeholder", "searchKeyword", "menuClassName", "menuAutoWidth", "searchBy", "toggleAs", "labelKey", "valueKey", "childrenKey", "draggable", "defaultExpandAll", "disabledItemValues", "expandItemValues", "defaultExpandItemValues", "id", "listProps", "getChildren", "renderTreeIcon", "renderTreeNode", "onExit", "onExited", "onClean", "onOpen", "onSearch", "onSelect", "onChange", "onEntered", "onClose", "onDragEnd", "onDragStart", "onDragEnter", "onDragLeave", "onDragOver", "onDrop", "onExpand", "renderExtraFooter", "renderMenu", "renderValue"]);
|
|
93
93
|
|
|
94
94
|
var triggerRef = useRef(null);
|
|
95
95
|
var targetRef = useRef(null);
|
|
@@ -478,13 +478,16 @@ var TreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
478
478
|
var nullValue = null;
|
|
479
479
|
var target = event.target; // exclude searchBar
|
|
480
480
|
|
|
481
|
-
if (target.matches('div[role="searchbox"] > input')) {
|
|
481
|
+
if (target.matches('div[role="searchbox"] > input') || disabled || !cleanable) {
|
|
482
482
|
return;
|
|
483
483
|
}
|
|
484
484
|
|
|
485
|
-
|
|
485
|
+
if (!isControlled) {
|
|
486
|
+
setValue(null);
|
|
487
|
+
}
|
|
488
|
+
|
|
486
489
|
onChange === null || onChange === void 0 ? void 0 : onChange(nullValue, event);
|
|
487
|
-
}, [onChange, setValue]);
|
|
490
|
+
}, [cleanable, disabled, onChange, setValue, isControlled]);
|
|
488
491
|
var onPickerKeydown = useToggleKeyDownEvent(_extends({
|
|
489
492
|
toggle: !activeNode || !active,
|
|
490
493
|
triggerRef: triggerRef,
|
|
@@ -622,7 +625,7 @@ var TreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
622
625
|
}, /*#__PURE__*/React.createElement("div", {
|
|
623
626
|
className: treePrefix('nodes')
|
|
624
627
|
}, virtualized ? /*#__PURE__*/React.createElement(AutoSizer, {
|
|
625
|
-
defaultHeight: inline ? height :
|
|
628
|
+
defaultHeight: inline ? height : menuMaxHeight,
|
|
626
629
|
style: {
|
|
627
630
|
width: 'auto',
|
|
628
631
|
height: 'auto'
|
|
@@ -653,13 +656,10 @@ var TreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
653
656
|
top: top
|
|
654
657
|
});
|
|
655
658
|
|
|
656
|
-
var styles = virtualized ? _extends({
|
|
657
|
-
height: height
|
|
658
|
-
}, mergedMenuStyle) : _extends({}, mergedMenuStyle);
|
|
659
659
|
return /*#__PURE__*/React.createElement(PickerOverlay, {
|
|
660
660
|
autoWidth: menuAutoWidth,
|
|
661
661
|
className: classes,
|
|
662
|
-
style:
|
|
662
|
+
style: mergedMenuStyle,
|
|
663
663
|
ref: mergeRefs(overlayRef, speakerRef),
|
|
664
664
|
onKeyDown: onPickerKeydown,
|
|
665
665
|
target: triggerRef
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
declare const _default: {
|
|
2
|
+
common: {
|
|
3
|
+
loading: string;
|
|
4
|
+
emptyMessage: string;
|
|
5
|
+
};
|
|
6
|
+
Plaintext: {
|
|
7
|
+
unfilled: string;
|
|
8
|
+
notSelected: string;
|
|
9
|
+
notUploaded: string;
|
|
10
|
+
};
|
|
11
|
+
Pagination: {
|
|
12
|
+
more: string;
|
|
13
|
+
prev: string;
|
|
14
|
+
next: string;
|
|
15
|
+
first: string;
|
|
16
|
+
last: string;
|
|
17
|
+
limit: string;
|
|
18
|
+
total: string;
|
|
19
|
+
skip: string;
|
|
20
|
+
};
|
|
21
|
+
Calendar: {
|
|
22
|
+
sunday: string;
|
|
23
|
+
monday: string;
|
|
24
|
+
tuesday: string;
|
|
25
|
+
wednesday: string;
|
|
26
|
+
thursday: string;
|
|
27
|
+
friday: string;
|
|
28
|
+
saturday: string;
|
|
29
|
+
ok: string;
|
|
30
|
+
today: string;
|
|
31
|
+
yesterday: string;
|
|
32
|
+
hours: string;
|
|
33
|
+
minutes: string;
|
|
34
|
+
seconds: string;
|
|
35
|
+
formattedMonthPattern: string;
|
|
36
|
+
formattedDayPattern: string;
|
|
37
|
+
dateLocale: any;
|
|
38
|
+
};
|
|
39
|
+
DatePicker: {
|
|
40
|
+
sunday: string;
|
|
41
|
+
monday: string;
|
|
42
|
+
tuesday: string;
|
|
43
|
+
wednesday: string;
|
|
44
|
+
thursday: string;
|
|
45
|
+
friday: string;
|
|
46
|
+
saturday: string;
|
|
47
|
+
ok: string;
|
|
48
|
+
today: string;
|
|
49
|
+
yesterday: string;
|
|
50
|
+
hours: string;
|
|
51
|
+
minutes: string;
|
|
52
|
+
seconds: string;
|
|
53
|
+
formattedMonthPattern: string;
|
|
54
|
+
formattedDayPattern: string;
|
|
55
|
+
dateLocale: any;
|
|
56
|
+
};
|
|
57
|
+
DateRangePicker: {
|
|
58
|
+
last7Days: string;
|
|
59
|
+
sunday: string;
|
|
60
|
+
monday: string;
|
|
61
|
+
tuesday: string;
|
|
62
|
+
wednesday: string;
|
|
63
|
+
thursday: string;
|
|
64
|
+
friday: string;
|
|
65
|
+
saturday: string;
|
|
66
|
+
ok: string;
|
|
67
|
+
today: string;
|
|
68
|
+
yesterday: string;
|
|
69
|
+
hours: string;
|
|
70
|
+
minutes: string;
|
|
71
|
+
seconds: string;
|
|
72
|
+
formattedMonthPattern: string;
|
|
73
|
+
formattedDayPattern: string;
|
|
74
|
+
dateLocale: any;
|
|
75
|
+
};
|
|
76
|
+
Picker: {
|
|
77
|
+
noResultsText: string;
|
|
78
|
+
placeholder: string;
|
|
79
|
+
searchPlaceholder: string;
|
|
80
|
+
checkAll: string;
|
|
81
|
+
};
|
|
82
|
+
InputPicker: {
|
|
83
|
+
newItem: string;
|
|
84
|
+
createOption: string;
|
|
85
|
+
};
|
|
86
|
+
Uploader: {
|
|
87
|
+
inited: string;
|
|
88
|
+
progress: string;
|
|
89
|
+
error: string;
|
|
90
|
+
complete: string;
|
|
91
|
+
emptyFile: string;
|
|
92
|
+
upload: string;
|
|
93
|
+
};
|
|
94
|
+
CloseButton: {
|
|
95
|
+
closeLabel: string;
|
|
96
|
+
};
|
|
97
|
+
Breadcrumb: {
|
|
98
|
+
expandText: string;
|
|
99
|
+
};
|
|
100
|
+
Toggle: {
|
|
101
|
+
on: string;
|
|
102
|
+
off: string;
|
|
103
|
+
};
|
|
104
|
+
};
|
|
105
|
+
export default _default;
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
+
import fr from 'date-fns/locale/fr';
|
|
3
|
+
var Calendar = {
|
|
4
|
+
sunday: 'Di',
|
|
5
|
+
monday: 'Lu',
|
|
6
|
+
tuesday: 'Ma',
|
|
7
|
+
wednesday: 'Me',
|
|
8
|
+
thursday: 'Je',
|
|
9
|
+
friday: 'Ve',
|
|
10
|
+
saturday: 'Sa',
|
|
11
|
+
ok: 'OK',
|
|
12
|
+
today: "Aujourd'hui",
|
|
13
|
+
yesterday: 'Hier',
|
|
14
|
+
hours: 'Heures',
|
|
15
|
+
minutes: 'Minutes',
|
|
16
|
+
seconds: 'Secondes',
|
|
17
|
+
formattedMonthPattern: 'MMM yyyy',
|
|
18
|
+
formattedDayPattern: 'dd MMM yyyy',
|
|
19
|
+
dateLocale: fr
|
|
20
|
+
};
|
|
21
|
+
export default {
|
|
22
|
+
common: {
|
|
23
|
+
loading: 'Chargement...',
|
|
24
|
+
emptyMessage: 'Aucune donnée trouvée'
|
|
25
|
+
},
|
|
26
|
+
Plaintext: {
|
|
27
|
+
unfilled: 'Non rempli',
|
|
28
|
+
notSelected: 'Non sélectionné',
|
|
29
|
+
notUploaded: 'Non uploadé'
|
|
30
|
+
},
|
|
31
|
+
Pagination: {
|
|
32
|
+
more: 'Plus',
|
|
33
|
+
prev: 'Précédent',
|
|
34
|
+
next: 'Suivant',
|
|
35
|
+
first: 'Premier',
|
|
36
|
+
last: 'Dernier',
|
|
37
|
+
limit: '{0} / page',
|
|
38
|
+
total: 'Lignes totales: {0}',
|
|
39
|
+
skip: 'Aller à{0}'
|
|
40
|
+
},
|
|
41
|
+
Calendar: Calendar,
|
|
42
|
+
DatePicker: _extends({}, Calendar),
|
|
43
|
+
DateRangePicker: _extends({}, Calendar, {
|
|
44
|
+
last7Days: '7 Derniers Jours'
|
|
45
|
+
}),
|
|
46
|
+
Picker: {
|
|
47
|
+
noResultsText: 'Aucun résultat trouvé',
|
|
48
|
+
placeholder: 'Sélectionner',
|
|
49
|
+
searchPlaceholder: 'Rechercher',
|
|
50
|
+
checkAll: 'Tous'
|
|
51
|
+
},
|
|
52
|
+
InputPicker: {
|
|
53
|
+
newItem: 'Nouvel item',
|
|
54
|
+
createOption: 'Option de création "{0}"'
|
|
55
|
+
},
|
|
56
|
+
Uploader: {
|
|
57
|
+
inited: 'Initial',
|
|
58
|
+
progress: 'Chargement',
|
|
59
|
+
error: 'Erreur',
|
|
60
|
+
complete: 'Terminé',
|
|
61
|
+
emptyFile: 'Vide',
|
|
62
|
+
upload: 'Uploader'
|
|
63
|
+
},
|
|
64
|
+
CloseButton: {
|
|
65
|
+
closeLabel: 'Fermer'
|
|
66
|
+
},
|
|
67
|
+
Breadcrumb: {
|
|
68
|
+
expandText: 'Afficher le chemin'
|
|
69
|
+
},
|
|
70
|
+
Toggle: {
|
|
71
|
+
on: 'Ouvrir',
|
|
72
|
+
off: 'Fermer'
|
|
73
|
+
}
|
|
74
|
+
};
|
package/esm/locales/index.d.ts
CHANGED
|
@@ -15,6 +15,7 @@ export { default as svSE } from './sv_SE';
|
|
|
15
15
|
export { default as zhCN } from './zh_CN';
|
|
16
16
|
export { default as zhTw } from './zh_TW';
|
|
17
17
|
export { default as faIR } from './fa_IR';
|
|
18
|
+
export { default as frFR } from './fr_FR';
|
|
18
19
|
declare type PickKeys<T> = {
|
|
19
20
|
[keys in keyof T]?: T[keys];
|
|
20
21
|
};
|
package/esm/locales/index.js
CHANGED
|
@@ -13,4 +13,5 @@ export { default as ruRU } from './ru_RU';
|
|
|
13
13
|
export { default as svSE } from './sv_SE';
|
|
14
14
|
export { default as zhCN } from './zh_CN';
|
|
15
15
|
export { default as zhTw } from './zh_TW';
|
|
16
|
-
export { default as faIR } from './fa_IR';
|
|
16
|
+
export { default as faIR } from './fa_IR';
|
|
17
|
+
export { default as frFR } from './fr_FR';
|
package/esm/utils/treeUtils.d.ts
CHANGED
|
@@ -190,7 +190,7 @@ interface UnSerializeListProps {
|
|
|
190
190
|
export declare function useFlattenTreeData({ data, labelKey, valueKey, childrenKey, uncheckableItemValues, callback }: FlattenTreeDataProps): {
|
|
191
191
|
forceUpdate: () => void;
|
|
192
192
|
flattenNodes: TreeNodesType;
|
|
193
|
-
flattenTreeData: (treeData: TreeNodeType[],
|
|
193
|
+
flattenTreeData: (treeData: TreeNodeType[], parent?: TreeNodeType, layer?: any) => never[] | undefined;
|
|
194
194
|
serializeListOnlyParent: (nodes: TreeNodesType, key: string) => (string | number)[];
|
|
195
195
|
unSerializeList: ({ nodes, key, value, cascade, uncheckableItemValues }: UnSerializeListProps) => void;
|
|
196
196
|
formatVirtualizedTreeData: (nodes: TreeNodesType, data: any[], expandItemValues: ItemDataType[], options: {
|
|
@@ -248,3 +248,9 @@ export declare function isSearching(searchKeyword?: string): boolean;
|
|
|
248
248
|
export declare function getTreeNodeIndent(rtl: any, layer: any, absolute?: boolean): {
|
|
249
249
|
[x: string]: number;
|
|
250
250
|
};
|
|
251
|
+
/**
|
|
252
|
+
* according to the value type to get the formatted valueKey of the node
|
|
253
|
+
* @param value
|
|
254
|
+
* @returns
|
|
255
|
+
*/
|
|
256
|
+
export declare function getNodeFormattedRefKey(value: string | number): string;
|