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
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,33 @@
|
|
|
1
|
+
# [5.20.0](https://github.com/rsuite/rsuite/compare/v5.19.1...v5.20.0) (2022-10-21)
|
|
2
|
+
|
|
3
|
+
### Bug Fixes
|
|
4
|
+
|
|
5
|
+
- **DatePicker:** reset calendar selection after closing picker menu ([#2807](https://github.com/rsuite/rsuite/issues/2807)) ([1ef91a8](https://github.com/rsuite/rsuite/commit/1ef91a846fc6d99c7479e96994aa50da2af9ef9e))
|
|
6
|
+
- **Form.Control:** when shouldResetWithUnmount should remove value and error ([#2802](https://github.com/rsuite/rsuite/issues/2802)) ([f8d108a](https://github.com/rsuite/rsuite/commit/f8d108aed3e94811491be63e3373008d12e83b60))
|
|
7
|
+
|
|
8
|
+
### Features
|
|
9
|
+
|
|
10
|
+
- **SelectPicker,CheckPicker:** add `loading` prop ([#2808](https://github.com/rsuite/rsuite/issues/2808)) ([3a5e5d5](https://github.com/rsuite/rsuite/commit/3a5e5d5d4b891373c8a05ec4d642103f75920f10))
|
|
11
|
+
|
|
12
|
+
## [5.19.1](https://github.com/rsuite/rsuite/compare/v5.19.0...v5.19.1) (2022-10-13)
|
|
13
|
+
|
|
14
|
+
### Bug Fixes
|
|
15
|
+
|
|
16
|
+
- **Cascader,MultiCascader:** fix sub-columns not being removed when a leaf node is selected ([#2792](https://github.com/rsuite/rsuite/issues/2792)) ([619c7de](https://github.com/rsuite/rsuite/commit/619c7debfca63a58622a1ae4a4776544bebf3405))
|
|
17
|
+
- **CheckTreePicker:** fix children node can't uncheck when setting virtualized ([#2782](https://github.com/rsuite/rsuite/issues/2782)) ([#2783](https://github.com/rsuite/rsuite/issues/2783)) ([50f7b89](https://github.com/rsuite/rsuite/commit/50f7b89dbe1a2b59c212e021e1bc42c50e9ebb37))
|
|
18
|
+
- **DateRangePicker:** fix predefined range affecting calendar height ([#2794](https://github.com/rsuite/rsuite/issues/2794)) ([957ce4e](https://github.com/rsuite/rsuite/commit/957ce4e197355ecbb9a0aea6cb6c5906ab1e1a2a))
|
|
19
|
+
- **TreePicker, CheckTreePicker:** ignore backspace when setting cleanable=false or disabled=true ([#2798](https://github.com/rsuite/rsuite/issues/2798)) ([eefe0eb](https://github.com/rsuite/rsuite/commit/eefe0ebc396ee1764243a1e2c8ec432dc6ce39a5))
|
|
20
|
+
- **TreePicker,CheckTreePicker:** fix `renderExtraFooter` causing the … ([#2745](https://github.com/rsuite/rsuite/issues/2745)) ([d7279d1](https://github.com/rsuite/rsuite/commit/d7279d14877e4b3b0ac74abdfeb56836b3a07780)), closes [#2758](https://github.com/rsuite/rsuite/issues/2758)
|
|
21
|
+
- **TreePicker,CheckTreePicker:** fix value being cleared internally when value is controlled ([#2788](https://github.com/rsuite/rsuite/issues/2788)) ([4521a27](https://github.com/rsuite/rsuite/commit/4521a2730a7311b7fe095d85e39966a1d56f5d9d)), closes [#2784](https://github.com/rsuite/rsuite/issues/2784)
|
|
22
|
+
|
|
23
|
+
### Features
|
|
24
|
+
|
|
25
|
+
- **i18n:** add fr_FR locale ([#2735](https://github.com/rsuite/rsuite/issues/2735)) ([087cfc8](https://github.com/rsuite/rsuite/commit/087cfc885252d764864e075b086f5d980f94db94))
|
|
26
|
+
|
|
27
|
+
### Performance Improvements
|
|
28
|
+
|
|
29
|
+
- **CheckTreePicker:** improve performance when using large data ([#2767](https://github.com/rsuite/rsuite/issues/2767)) ([651a8a1](https://github.com/rsuite/rsuite/commit/651a8a1ebb0bf1c1e07e1541ca1f0a61a96a3df4))
|
|
30
|
+
|
|
1
31
|
# [5.19.0](https://github.com/rsuite/rsuite/compare/v5.18.1...v5.19.0) (2022-09-23)
|
|
2
32
|
|
|
3
33
|
### Bug Fixes
|
package/Picker/styles/index.less
CHANGED
|
@@ -36,7 +36,7 @@ interface TransitionState {
|
|
|
36
36
|
}
|
|
37
37
|
export declare const transitionPropTypes: {
|
|
38
38
|
animation: PropTypes.Requireable<boolean>;
|
|
39
|
-
children: PropTypes.Requireable<string | number | boolean |
|
|
39
|
+
children: PropTypes.Requireable<string | number | boolean | ((...args: any[]) => any) | PropTypes.ReactElementLike | PropTypes.ReactNodeArray>;
|
|
40
40
|
className: PropTypes.Requireable<string>;
|
|
41
41
|
in: PropTypes.Requireable<boolean>;
|
|
42
42
|
unmountOnExit: PropTypes.Requireable<boolean>;
|
|
@@ -59,7 +59,7 @@ declare type EventToken = {
|
|
|
59
59
|
declare class Transition extends React.Component<TransitionProps, TransitionState> {
|
|
60
60
|
static propTypes: {
|
|
61
61
|
animation: PropTypes.Requireable<boolean>;
|
|
62
|
-
children: PropTypes.Requireable<string | number | boolean |
|
|
62
|
+
children: PropTypes.Requireable<string | number | boolean | ((...args: any[]) => any) | PropTypes.ReactElementLike | PropTypes.ReactNodeArray>;
|
|
63
63
|
className: PropTypes.Requireable<string>;
|
|
64
64
|
in: PropTypes.Requireable<boolean>;
|
|
65
65
|
unmountOnExit: PropTypes.Requireable<boolean>;
|
package/cjs/Cascader/Cascader.js
CHANGED
|
@@ -117,6 +117,7 @@ var Cascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
117
117
|
valueToPaths = _usePaths.valueToPaths,
|
|
118
118
|
columnData = _usePaths.columnData,
|
|
119
119
|
addColumn = _usePaths.addColumn,
|
|
120
|
+
romoveColumnByIndex = _usePaths.romoveColumnByIndex,
|
|
120
121
|
setValueToPaths = _usePaths.setValueToPaths,
|
|
121
122
|
setColumnData = _usePaths.setColumnData,
|
|
122
123
|
setSelectedPaths = _usePaths.setSelectedPaths,
|
|
@@ -280,9 +281,10 @@ var Cascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
280
281
|
var handleSelect = function handleSelect(node, cascadePaths, isLeafNode, event) {
|
|
281
282
|
var _node$childrenKey, _node$childrenKey2, _triggerRef$current2;
|
|
282
283
|
|
|
283
|
-
var nextValue = node[valueKey];
|
|
284
284
|
onSelect === null || onSelect === void 0 ? void 0 : onSelect(node, cascadePaths, event);
|
|
285
|
-
setSelectedPaths(cascadePaths);
|
|
285
|
+
setSelectedPaths(cascadePaths);
|
|
286
|
+
var nextValue = node[valueKey];
|
|
287
|
+
var columnIndex = cascadePaths.length; // Lazy load node's children
|
|
286
288
|
|
|
287
289
|
if (typeof getChildren === 'function' && ((_node$childrenKey = node[childrenKey]) === null || _node$childrenKey === void 0 ? void 0 : _node$childrenKey.length) === 0) {
|
|
288
290
|
node.loading = true;
|
|
@@ -294,16 +296,19 @@ var Cascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
294
296
|
node[childrenKey] = data;
|
|
295
297
|
|
|
296
298
|
if (targetRef.current) {
|
|
297
|
-
addColumn(data,
|
|
299
|
+
addColumn(data, columnIndex);
|
|
298
300
|
}
|
|
299
301
|
});
|
|
300
302
|
} else {
|
|
301
303
|
node.loading = false;
|
|
302
304
|
node[childrenKey] = children;
|
|
303
|
-
addColumn(children,
|
|
305
|
+
addColumn(children, columnIndex);
|
|
304
306
|
}
|
|
305
307
|
} else if ((_node$childrenKey2 = node[childrenKey]) !== null && _node$childrenKey2 !== void 0 && _node$childrenKey2.length) {
|
|
306
|
-
addColumn(node[childrenKey],
|
|
308
|
+
addColumn(node[childrenKey], columnIndex);
|
|
309
|
+
} else {
|
|
310
|
+
// Removes subsequent columns of the current column when the clicked node is a leaf node.
|
|
311
|
+
romoveColumnByIndex(columnIndex);
|
|
307
312
|
}
|
|
308
313
|
|
|
309
314
|
if (isLeafNode) {
|
package/cjs/Cascader/utils.d.ts
CHANGED
|
@@ -14,4 +14,5 @@ export declare function usePaths(props: CascaderProps): {
|
|
|
14
14
|
setColumnData: import("react").Dispatch<import("react").SetStateAction<ItemDataType<string | number>[][]>>;
|
|
15
15
|
setSelectedPaths: import("react").Dispatch<import("react").SetStateAction<ItemDataType<string | number>[]>>;
|
|
16
16
|
addColumn: (column: ItemDataType[], index: number) => void;
|
|
17
|
+
romoveColumnByIndex: (index: number) => void;
|
|
17
18
|
};
|
package/cjs/Cascader/utils.js
CHANGED
|
@@ -125,6 +125,15 @@ function usePaths(props) {
|
|
|
125
125
|
function addColumn(column, index) {
|
|
126
126
|
setColumnData([].concat((0, _slice.default)(columnData, 0, index), [column]));
|
|
127
127
|
}
|
|
128
|
+
/**
|
|
129
|
+
* Remove subsequent columns of the specified column
|
|
130
|
+
* @param index
|
|
131
|
+
*/
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
function romoveColumnByIndex(index) {
|
|
135
|
+
setColumnData([].concat((0, _slice.default)(columnData, 0, index)));
|
|
136
|
+
}
|
|
128
137
|
/**
|
|
129
138
|
* Enforce update of columns and paths.
|
|
130
139
|
* @param nextValue Selected value
|
|
@@ -160,6 +169,7 @@ function usePaths(props) {
|
|
|
160
169
|
setValueToPaths: setValueToPaths,
|
|
161
170
|
setColumnData: setColumnData,
|
|
162
171
|
setSelectedPaths: setSelectedPaths,
|
|
163
|
-
addColumn: addColumn
|
|
172
|
+
addColumn: addColumn,
|
|
173
|
+
romoveColumnByIndex: romoveColumnByIndex
|
|
164
174
|
};
|
|
165
175
|
}
|
|
@@ -43,8 +43,6 @@ var _Picker = require("../Picker");
|
|
|
43
43
|
|
|
44
44
|
var _utils2 = require("./utils");
|
|
45
45
|
|
|
46
|
-
var _TreePicker = require("../TreePicker/TreePicker");
|
|
47
|
-
|
|
48
46
|
var emptyArray = [];
|
|
49
47
|
|
|
50
48
|
var CheckTreePicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
@@ -88,6 +86,8 @@ var CheckTreePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
88
86
|
defaultExpandItemValues = _props$defaultExpandI === void 0 ? emptyArray : _props$defaultExpandI,
|
|
89
87
|
_props$height = props.height,
|
|
90
88
|
height = _props$height === void 0 ? 360 : _props$height,
|
|
89
|
+
_props$menuMaxHeight = props.menuMaxHeight,
|
|
90
|
+
menuMaxHeight = _props$menuMaxHeight === void 0 ? 320 : _props$menuMaxHeight,
|
|
91
91
|
menuStyle = props.menuStyle,
|
|
92
92
|
_props$searchable = props.searchable,
|
|
93
93
|
searchable = _props$searchable === void 0 ? true : _props$searchable,
|
|
@@ -119,7 +119,7 @@ var CheckTreePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
119
119
|
renderValue = props.renderValue,
|
|
120
120
|
renderTreeIcon = props.renderTreeIcon,
|
|
121
121
|
renderTreeNode = props.renderTreeNode,
|
|
122
|
-
rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "data", "style", "appearance", "cleanable", "countable", "searchBy", "toggleAs", "searchKeyword", "showIndentLine", "locale", "cascade", "disabled", "valueKey", "labelKey", "placement", "childrenKey", "placeholder", "value", "defaultValue", "defaultExpandAll", "disabledItemValues", "expandItemValues", "defaultExpandItemValues", "height", "menuStyle", "searchable", "virtualized", "className", "classPrefix", "menuClassName", "menuAutoWidth", "uncheckableItemValues", "id", "listProps", "renderMenu", "getChildren", "renderExtraFooter", "onEntered", "onChange", "onClean", "onClose", "onExited", "onSearch", "onSelect", "onOpen", "onScroll", "onExpand", "renderValue", "renderTreeIcon", "renderTreeNode"]);
|
|
122
|
+
rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "data", "style", "appearance", "cleanable", "countable", "searchBy", "toggleAs", "searchKeyword", "showIndentLine", "locale", "cascade", "disabled", "valueKey", "labelKey", "placement", "childrenKey", "placeholder", "value", "defaultValue", "defaultExpandAll", "disabledItemValues", "expandItemValues", "defaultExpandItemValues", "height", "menuMaxHeight", "menuStyle", "searchable", "virtualized", "className", "classPrefix", "menuClassName", "menuAutoWidth", "uncheckableItemValues", "id", "listProps", "renderMenu", "getChildren", "renderExtraFooter", "onEntered", "onChange", "onClean", "onClose", "onExited", "onSearch", "onSelect", "onOpen", "onScroll", "onExpand", "renderValue", "renderTreeIcon", "renderTreeNode"]);
|
|
123
123
|
|
|
124
124
|
var _useContext = (0, _react.useContext)(_TreeContext.default),
|
|
125
125
|
inline = _useContext.inline;
|
|
@@ -249,11 +249,11 @@ var CheckTreePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
249
249
|
value: node[valueKey],
|
|
250
250
|
label: node[labelKey],
|
|
251
251
|
layer: layer,
|
|
252
|
-
focus:
|
|
252
|
+
focus: focusItemValue === node[valueKey],
|
|
253
253
|
expand: node.expand,
|
|
254
254
|
visible: node.visible,
|
|
255
255
|
loading: loadingNodeValues.some(function (item) {
|
|
256
|
-
return
|
|
256
|
+
return item === node[valueKey];
|
|
257
257
|
}),
|
|
258
258
|
disabled: (0, _utils2.getDisabledState)(flattenNodes, node, {
|
|
259
259
|
disabledItemValues: disabledItemValues,
|
|
@@ -390,18 +390,6 @@ var CheckTreePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
390
390
|
onChange === null || onChange === void 0 ? void 0 : onChange(selectedValues, event);
|
|
391
391
|
onSelect === null || onSelect === void 0 ? void 0 : onSelect(node, selectedValues, event);
|
|
392
392
|
}, [cascade, valueKey, flattenNodes, isControlled, uncheckableItemValues, setValue, onChange, onSelect, toggleChecked, unSerializeList]);
|
|
393
|
-
|
|
394
|
-
var hasValue = function hasValue() {
|
|
395
|
-
var selectedValues = Object.keys(flattenNodes).map(function (refKey) {
|
|
396
|
-
return flattenNodes[refKey][valueKey];
|
|
397
|
-
}).filter(function (item) {
|
|
398
|
-
return value.some(function (v) {
|
|
399
|
-
return (0, _utils.shallowEqual)(v, item);
|
|
400
|
-
});
|
|
401
|
-
});
|
|
402
|
-
return !!selectedValues.length;
|
|
403
|
-
};
|
|
404
|
-
|
|
405
393
|
var handleOpen = (0, _react.useCallback)(function () {
|
|
406
394
|
var _triggerRef$current, _triggerRef$current$o;
|
|
407
395
|
|
|
@@ -453,22 +441,26 @@ var CheckTreePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
453
441
|
var handleClean = (0, _react.useCallback)(function (event) {
|
|
454
442
|
var target = event.target; // exclude searchBar
|
|
455
443
|
|
|
456
|
-
if (target.matches('div[role="searchbox"] > input')) {
|
|
444
|
+
if (target.matches('div[role="searchbox"] > input') || disabled || !cleanable) {
|
|
457
445
|
return;
|
|
458
446
|
}
|
|
459
447
|
|
|
460
448
|
setActiveNode(null);
|
|
461
|
-
setValue([]);
|
|
462
449
|
setFocusItemValue(null);
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
450
|
+
|
|
451
|
+
if (!isControlled) {
|
|
452
|
+
setValue([]);
|
|
453
|
+
unSerializeList({
|
|
454
|
+
nodes: flattenNodes,
|
|
455
|
+
key: 'check',
|
|
456
|
+
value: [],
|
|
457
|
+
cascade: cascade,
|
|
458
|
+
uncheckableItemValues: uncheckableItemValues
|
|
459
|
+
});
|
|
460
|
+
}
|
|
461
|
+
|
|
470
462
|
onChange === null || onChange === void 0 ? void 0 : onChange([], event);
|
|
471
|
-
}, [cascade, flattenNodes, onChange, setValue, unSerializeList, uncheckableItemValues]);
|
|
463
|
+
}, [cascade, cleanable, disabled, flattenNodes, onChange, setValue, unSerializeList, uncheckableItemValues, isControlled]);
|
|
472
464
|
var handleFocusItem = (0, _react.useCallback)(function (key) {
|
|
473
465
|
var focusableItems = (0, _treeUtils.getFocusableItems)(filteredData, {
|
|
474
466
|
disabledItemValues: disabledItemValues,
|
|
@@ -593,7 +585,7 @@ var CheckTreePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
593
585
|
var visibleChildren = (0, _isUndefined2.default)(searchKeywordState) || searchKeywordState.length === 0 ? !!children : (0, _treeUtils.hasVisibleChildren)(node, childrenKey);
|
|
594
586
|
var nodeProps = (0, _extends2.default)({}, getTreeNodeProps((0, _extends2.default)({}, node, {
|
|
595
587
|
/**
|
|
596
|
-
* spread operator
|
|
588
|
+
* spread operator don't copy unenumerable properties
|
|
597
589
|
* so we need to copy them manually
|
|
598
590
|
*/
|
|
599
591
|
parent: node.parent,
|
|
@@ -645,6 +637,11 @@ var CheckTreePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
645
637
|
visible = node.visible;
|
|
646
638
|
var expand = (0, _treeUtils.getExpandWhenSearching)(searchKeywordState, expandItemValues.includes(node[valueKey]));
|
|
647
639
|
var nodeProps = (0, _extends2.default)({}, getTreeNodeProps((0, _extends2.default)({}, node, {
|
|
640
|
+
/**
|
|
641
|
+
* spread operator don't copy unenumerable properties
|
|
642
|
+
* so we need to copy them manually
|
|
643
|
+
*/
|
|
644
|
+
parent: node.parent,
|
|
648
645
|
expand: expand
|
|
649
646
|
}), layer), {
|
|
650
647
|
hasChildren: node.hasChildren
|
|
@@ -689,7 +686,7 @@ var CheckTreePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
689
686
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
690
687
|
className: treeNodesClass
|
|
691
688
|
}, virtualized ? /*#__PURE__*/_react.default.createElement(_VirtualizedList.AutoSizer, {
|
|
692
|
-
defaultHeight: inline ? height :
|
|
689
|
+
defaultHeight: inline ? height : menuMaxHeight,
|
|
693
690
|
style: {
|
|
694
691
|
width: 'auto',
|
|
695
692
|
height: 'auto'
|
|
@@ -718,13 +715,10 @@ var CheckTreePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
718
715
|
left: left,
|
|
719
716
|
top: top
|
|
720
717
|
});
|
|
721
|
-
var styles = virtualized ? (0, _extends2.default)({
|
|
722
|
-
height: height
|
|
723
|
-
}, mergedMenuStyle) : (0, _extends2.default)({}, mergedMenuStyle);
|
|
724
718
|
return /*#__PURE__*/_react.default.createElement(_Picker.PickerOverlay, {
|
|
725
719
|
autoWidth: menuAutoWidth,
|
|
726
720
|
className: classes,
|
|
727
|
-
style:
|
|
721
|
+
style: mergedMenuStyle,
|
|
728
722
|
ref: (0, _utils.mergeRefs)(overlayRef, speakerRef),
|
|
729
723
|
onKeyDown: onPickerKeydown,
|
|
730
724
|
target: triggerRef
|
|
@@ -735,15 +729,17 @@ var CheckTreePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
735
729
|
inputRef: searchInputRef
|
|
736
730
|
}) : null, renderMenu ? renderMenu(renderCheckTree()) : renderCheckTree(), renderExtraFooter === null || renderExtraFooter === void 0 ? void 0 : renderExtraFooter());
|
|
737
731
|
};
|
|
732
|
+
|
|
733
|
+
var selectedItems = (0, _react.useMemo)(function () {
|
|
734
|
+
return (0, _utils2.getSelectedItems)(flattenNodes, value);
|
|
735
|
+
}, [flattenNodes, value]);
|
|
738
736
|
/**
|
|
739
737
|
* 1.Have a value and the value is valid.
|
|
740
738
|
* 2.Regardless of whether the value is valid, as long as renderValue is set, it is judged to have a value.
|
|
741
739
|
*/
|
|
742
740
|
|
|
743
|
-
|
|
744
|
-
var hasValidValue = hasValue() || value.length > 0 && (0, _isFunction2.default)(renderValue);
|
|
741
|
+
var hasValidValue = selectedItems.length > 0 || value.length > 0 && (0, _isFunction2.default)(renderValue);
|
|
745
742
|
var selectedElement = placeholder;
|
|
746
|
-
var selectedItems = (0, _utils2.getSelectedItems)(flattenNodes, value, valueKey);
|
|
747
743
|
|
|
748
744
|
if (hasValidValue) {
|
|
749
745
|
selectedElement = /*#__PURE__*/_react.default.createElement(_Picker.SelectedElement, {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
import { CheckTreePickerProps } from './CheckTreePicker';
|
|
2
|
+
import { CheckTreePickerProps, ValueType } from './CheckTreePicker';
|
|
3
3
|
import { CheckStateType } from '../utils';
|
|
4
4
|
export interface TreeNodeType {
|
|
5
5
|
uncheckable?: boolean;
|
|
@@ -40,5 +40,5 @@ export declare function isNodeUncheckable(node: any, props: Required<Pick<CheckT
|
|
|
40
40
|
export declare function getFormattedTree(data: any[], nodes: TreeNodesType, props: Required<Pick<CheckTreePickerProps, 'childrenKey' | 'cascade'>>): any[];
|
|
41
41
|
export declare function getDisabledState(nodes: TreeNodesType, node: TreeNodeType, props: Required<Pick<CheckTreePickerProps, 'disabledItemValues' | 'valueKey'>>): boolean;
|
|
42
42
|
export declare function getCheckTreePickerDefaultValue(value: any[], uncheckableItemValues: any[]): any[];
|
|
43
|
-
export declare function getSelectedItems(nodes: TreeNodesType,
|
|
43
|
+
export declare function getSelectedItems(nodes: TreeNodesType, values: ValueType): TreeNodeType[];
|
|
44
44
|
export declare function getNodeCheckState({ nodes, node, cascade, childrenKey }: any): CheckStateType;
|
|
@@ -126,7 +126,7 @@ function isNodeUncheckable(node, props) {
|
|
|
126
126
|
uncheckableItemValues = _props$uncheckableIte === void 0 ? [] : _props$uncheckableIte,
|
|
127
127
|
valueKey = props.valueKey;
|
|
128
128
|
return uncheckableItemValues.some(function (value) {
|
|
129
|
-
return
|
|
129
|
+
return node[valueKey] === value;
|
|
130
130
|
});
|
|
131
131
|
}
|
|
132
132
|
|
|
@@ -171,7 +171,7 @@ function getDisabledState(nodes, node, props) {
|
|
|
171
171
|
}
|
|
172
172
|
|
|
173
173
|
return disabledItemValues.some(function (value) {
|
|
174
|
-
return node.refKey &&
|
|
174
|
+
return node.refKey && nodes[node.refKey][valueKey] === value;
|
|
175
175
|
});
|
|
176
176
|
}
|
|
177
177
|
|
|
@@ -185,18 +185,17 @@ function getCheckTreePickerDefaultValue(value, uncheckableItemValues) {
|
|
|
185
185
|
return [];
|
|
186
186
|
}
|
|
187
187
|
|
|
188
|
-
function getSelectedItems(nodes,
|
|
189
|
-
var
|
|
190
|
-
|
|
188
|
+
function getSelectedItems(nodes, values) {
|
|
189
|
+
var checkedItems = [];
|
|
190
|
+
values.forEach(function (value) {
|
|
191
|
+
var refKey = (0, _treeUtils.getNodeFormattedRefKey)(value);
|
|
191
192
|
var node = nodes[refKey];
|
|
192
193
|
|
|
193
|
-
if (
|
|
194
|
-
|
|
195
|
-
})) {
|
|
196
|
-
checkItems.push(node);
|
|
194
|
+
if (!(0, _isNil2.default)(node)) {
|
|
195
|
+
checkedItems.push(node);
|
|
197
196
|
}
|
|
198
197
|
});
|
|
199
|
-
return
|
|
198
|
+
return checkedItems;
|
|
200
199
|
}
|
|
201
200
|
|
|
202
201
|
function getNodeCheckState(_ref) {
|
package/cjs/DOMHelper/index.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
1
2
|
import * as helpers from 'dom-lib';
|
|
2
3
|
export * from 'dom-lib';
|
|
3
4
|
declare const DOMHelper: {
|
|
@@ -10,8 +11,8 @@ declare const DOMHelper: {
|
|
|
10
11
|
removeClass: (target: Element, className: string) => Element;
|
|
11
12
|
hasClass: (target: Element, className: string) => boolean;
|
|
12
13
|
toggleClass: (target: Element, className: string) => Element;
|
|
13
|
-
cancelAnimationFramePolyfill: typeof clearTimeout;
|
|
14
|
-
requestAnimationFramePolyfill: typeof requestAnimationFrame;
|
|
14
|
+
cancelAnimationFramePolyfill: typeof cancelAnimationFrame | typeof clearTimeout;
|
|
15
|
+
requestAnimationFramePolyfill: typeof requestAnimationFrame | ((callback: (t: number) => void) => NodeJS.Timeout);
|
|
15
16
|
getAnimationEnd: typeof helpers.getAnimationEnd;
|
|
16
17
|
ownerDocument: (node: Element | null) => Document;
|
|
17
18
|
ownerWindow: (componentOrElement: Element) => Window;
|
|
@@ -35,6 +35,8 @@ var _utils = require("../utils");
|
|
|
35
35
|
|
|
36
36
|
var _Picker = require("../Picker");
|
|
37
37
|
|
|
38
|
+
var _OverlayTrigger = require("../Overlay/OverlayTrigger");
|
|
39
|
+
|
|
38
40
|
var DatePicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
39
41
|
var _props$as = props.as,
|
|
40
42
|
Component = _props$as === void 0 ? 'div' : _props$as,
|
|
@@ -419,6 +421,13 @@ var DatePicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
419
421
|
pickerProps: (0, _pick.default)(props, _Picker.pickTriggerPropKeys),
|
|
420
422
|
ref: triggerRef,
|
|
421
423
|
placement: placement,
|
|
424
|
+
onClose: function onClose(cause) {
|
|
425
|
+
// Unless overlay is closing on user clicking "OK" button,
|
|
426
|
+
// reset the selected date on calendar panel
|
|
427
|
+
if (cause !== _OverlayTrigger.OverlayCloseCause.ImperativeHandle) {
|
|
428
|
+
resetCalendarDate();
|
|
429
|
+
}
|
|
430
|
+
},
|
|
422
431
|
onEntered: (0, _utils.createChainedFunction)(handleEntered, onEntered),
|
|
423
432
|
onExited: (0, _utils.createChainedFunction)(handleExited, onExited),
|
|
424
433
|
speaker: renderDropdownMenu
|
|
@@ -45,6 +45,11 @@ var PredefinedRanges = /*#__PURE__*/_react.default.forwardRef(function (props, r
|
|
|
45
45
|
return item.label === key;
|
|
46
46
|
});
|
|
47
47
|
}, [calendarDate]);
|
|
48
|
+
|
|
49
|
+
if (ranges.length === 0) {
|
|
50
|
+
return null;
|
|
51
|
+
}
|
|
52
|
+
|
|
48
53
|
return /*#__PURE__*/_react.default.createElement(_Stack.default, (0, _extends2.default)({
|
|
49
54
|
className: className,
|
|
50
55
|
ref: ref,
|
|
@@ -601,6 +601,12 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
601
601
|
onToggleMeridian: handleToggleMeridian,
|
|
602
602
|
renderTitle: renderTitle
|
|
603
603
|
};
|
|
604
|
+
var sideRanges = (ranges === null || ranges === void 0 ? void 0 : ranges.filter(function (range) {
|
|
605
|
+
return (range === null || range === void 0 ? void 0 : range.placement) === 'left';
|
|
606
|
+
})) || [];
|
|
607
|
+
var bottomRanges = ranges === null || ranges === void 0 ? void 0 : ranges.filter(function (range) {
|
|
608
|
+
return (range === null || range === void 0 ? void 0 : range.placement) === 'bottom' || (range === null || range === void 0 ? void 0 : range.placement) === undefined;
|
|
609
|
+
});
|
|
604
610
|
return /*#__PURE__*/_react.default.createElement(_Picker.PickerOverlay, {
|
|
605
611
|
role: "dialog",
|
|
606
612
|
className: classes,
|
|
@@ -611,13 +617,11 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
611
617
|
className: panelClasses
|
|
612
618
|
}, /*#__PURE__*/_react.default.createElement(_Stack.default, {
|
|
613
619
|
alignItems: "flex-start"
|
|
614
|
-
}, /*#__PURE__*/_react.default.createElement(_PredefinedRanges.default, {
|
|
620
|
+
}, sideRanges.length > 0 && /*#__PURE__*/_react.default.createElement(_PredefinedRanges.default, {
|
|
615
621
|
direction: "column",
|
|
616
622
|
spacing: 0,
|
|
617
623
|
className: prefix('daterange-predefined'),
|
|
618
|
-
ranges:
|
|
619
|
-
return (range === null || range === void 0 ? void 0 : range.placement) === 'left';
|
|
620
|
-
})) || [],
|
|
624
|
+
ranges: sideRanges,
|
|
621
625
|
calendarDate: calendarDate,
|
|
622
626
|
locale: locale,
|
|
623
627
|
disabledShortcut: disabledShortcutButton,
|
|
@@ -640,9 +644,7 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
640
644
|
hideOkBtn: oneTap,
|
|
641
645
|
onOk: handleOK,
|
|
642
646
|
onClickShortcut: handleShortcutPageDate,
|
|
643
|
-
ranges:
|
|
644
|
-
return (range === null || range === void 0 ? void 0 : range.placement) === 'bottom' || (range === null || range === void 0 ? void 0 : range.placement) === undefined;
|
|
645
|
-
})
|
|
647
|
+
ranges: bottomRanges
|
|
646
648
|
})))));
|
|
647
649
|
};
|
|
648
650
|
|