rsuite 5.49.0 → 5.50.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 +13 -0
- package/Cascader/styles/index.less +4 -4
- package/DateRangePicker/styles/index.less +15 -5
- package/Dropdown/styles/index.less +5 -4
- package/Dropdown/styles/mixin.less +0 -11
- package/Picker/styles/index.less +31 -24
- package/Picker/styles/mixin.less +17 -13
- package/README.md +4 -4
- package/TagInput/styles/index.less +1 -1
- package/cjs/AutoComplete/AutoComplete.js +25 -26
- package/cjs/Calendar/Calendar.d.ts +5 -1
- package/cjs/Calendar/CalendarContainer.d.ts +5 -1
- package/cjs/Cascader/Cascader.js +46 -48
- package/cjs/CheckPicker/CheckPicker.d.ts +2 -2
- package/cjs/CheckPicker/CheckPicker.js +33 -36
- package/cjs/CheckTreePicker/CheckTreePicker.js +61 -64
- package/cjs/DatePicker/DatePicker.d.ts +5 -1
- package/cjs/DatePicker/DatePicker.js +2 -4
- package/cjs/DatePicker/Toolbar.js +2 -1
- package/cjs/DateRangeInput/DateRangeInput.js +2 -2
- package/cjs/DateRangePicker/Calendar.js +24 -23
- package/cjs/DateRangePicker/DateRangePicker.d.ts +18 -4
- package/cjs/DateRangePicker/DateRangePicker.js +239 -201
- package/cjs/DateRangePicker/types.d.ts +11 -3
- package/cjs/DateRangePicker/utils.d.ts +2 -1
- package/cjs/DateRangePicker/utils.js +7 -5
- package/cjs/FormControl/FormControl.d.ts +11 -1
- package/cjs/FormControl/FormControl.js +6 -5
- package/cjs/InputPicker/InputPicker.js +62 -63
- package/cjs/MultiCascader/MultiCascader.js +40 -42
- package/cjs/{DatePicker → Picker}/PickerIndicator.d.ts +1 -1
- package/cjs/{DatePicker → Picker}/PickerIndicator.js +2 -1
- package/cjs/{DatePicker → Picker}/PickerLabel.d.ts +1 -1
- package/cjs/Picker/PickerToggle.d.ts +17 -22
- package/cjs/Picker/PickerToggle.js +52 -177
- package/cjs/Picker/index.d.ts +3 -0
- package/cjs/Picker/index.js +10 -1
- package/cjs/Picker/usePickerRef.d.ts +3 -1
- package/cjs/Picker/usePickerRef.js +13 -7
- package/cjs/Picker/utils.d.ts +5 -9
- package/cjs/Picker/utils.js +22 -89
- package/cjs/SelectPicker/SelectPicker.d.ts +2 -2
- package/cjs/SelectPicker/SelectPicker.js +39 -42
- package/cjs/TreePicker/TreePicker.js +72 -75
- package/cjs/utils/constants.d.ts +2 -1
- package/cjs/utils/constants.js +1 -0
- package/cjs/utils/dateUtils.d.ts +0 -1
- package/cjs/utils/dateUtils.js +0 -6
- package/cjs/utils/getStringLength.d.ts +2 -0
- package/cjs/utils/getStringLength.js +18 -0
- package/cjs/utils/index.d.ts +1 -0
- package/cjs/utils/index.js +4 -1
- package/dist/rsuite-no-reset-rtl.css +92 -69
- 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 +92 -69
- package/dist/rsuite-no-reset.min.css +1 -1
- package/dist/rsuite-no-reset.min.css.map +1 -1
- package/dist/rsuite-rtl.css +92 -69
- package/dist/rsuite-rtl.min.css +1 -1
- package/dist/rsuite-rtl.min.css.map +1 -1
- package/dist/rsuite.css +92 -69
- package/dist/rsuite.js +67 -46
- 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/AutoComplete/AutoComplete.js +28 -29
- package/esm/Calendar/Calendar.d.ts +5 -1
- package/esm/Calendar/CalendarContainer.d.ts +5 -1
- package/esm/Cascader/Cascader.js +49 -51
- package/esm/CheckPicker/CheckPicker.d.ts +2 -2
- package/esm/CheckPicker/CheckPicker.js +36 -39
- package/esm/CheckTreePicker/CheckTreePicker.js +64 -67
- package/esm/DatePicker/DatePicker.d.ts +5 -1
- package/esm/DatePicker/DatePicker.js +1 -3
- package/esm/DatePicker/Toolbar.js +2 -1
- package/esm/DateRangeInput/DateRangeInput.js +2 -2
- package/esm/DateRangePicker/Calendar.js +25 -23
- package/esm/DateRangePicker/DateRangePicker.d.ts +18 -4
- package/esm/DateRangePicker/DateRangePicker.js +241 -203
- package/esm/DateRangePicker/types.d.ts +11 -3
- package/esm/DateRangePicker/utils.d.ts +2 -1
- package/esm/DateRangePicker/utils.js +7 -5
- package/esm/FormControl/FormControl.d.ts +11 -1
- package/esm/FormControl/FormControl.js +4 -3
- package/esm/InputPicker/InputPicker.js +64 -65
- package/esm/MultiCascader/MultiCascader.js +43 -45
- package/esm/{DatePicker → Picker}/PickerIndicator.d.ts +1 -1
- package/esm/{DatePicker → Picker}/PickerIndicator.js +2 -1
- package/esm/{DatePicker → Picker}/PickerLabel.d.ts +1 -1
- package/esm/Picker/PickerToggle.d.ts +17 -22
- package/esm/Picker/PickerToggle.js +54 -179
- package/esm/Picker/index.d.ts +3 -0
- package/esm/Picker/index.js +3 -0
- package/esm/Picker/usePickerRef.d.ts +3 -1
- package/esm/Picker/usePickerRef.js +13 -8
- package/esm/Picker/utils.d.ts +5 -9
- package/esm/Picker/utils.js +24 -90
- package/esm/SelectPicker/SelectPicker.d.ts +2 -2
- package/esm/SelectPicker/SelectPicker.js +42 -45
- package/esm/TreePicker/TreePicker.js +75 -78
- package/esm/utils/constants.d.ts +2 -1
- package/esm/utils/constants.js +1 -0
- package/esm/utils/dateUtils.d.ts +0 -1
- package/esm/utils/dateUtils.js +0 -5
- package/esm/utils/getStringLength.d.ts +2 -0
- package/esm/utils/getStringLength.js +13 -0
- package/esm/utils/index.d.ts +1 -0
- package/esm/utils/index.js +1 -0
- package/package.json +1 -1
- package/styles/mixins/combobox.less +10 -0
- /package/cjs/{DatePicker → Picker}/PickerLabel.js +0 -0
- /package/esm/{DatePicker → Picker}/PickerLabel.js +0 -0
|
@@ -7,15 +7,15 @@ import _omit from "lodash/omit";
|
|
|
7
7
|
import _isFunction from "lodash/isFunction";
|
|
8
8
|
import _pick from "lodash/pick";
|
|
9
9
|
import _isNil from "lodash/isNil";
|
|
10
|
-
import React, { useState,
|
|
10
|
+
import React, { useState, useEffect, useContext, useMemo } from 'react';
|
|
11
11
|
import PropTypes from 'prop-types';
|
|
12
12
|
import classNames from 'classnames';
|
|
13
13
|
import { List, AutoSizer } from '../Windowing';
|
|
14
14
|
import CheckTreeNode from './CheckTreeNode';
|
|
15
15
|
import TreeContext from '../Tree/TreeContext';
|
|
16
16
|
import { getKeyParentMap, getPathTowardsItem, getTreeNodeIndent } from '../utils/treeUtils';
|
|
17
|
-
import { createChainedFunction, useCustom, useClassNames, useControlled, KEY_VALUES, mergeRefs } from '../utils';
|
|
18
|
-
import { PickerToggle, onMenuKeyDown as _onMenuKeyDown, PickerOverlay, SearchBar, SelectedElement, PickerToggleTrigger, createConcatChildrenFunction, usePickerClassName,
|
|
17
|
+
import { createChainedFunction, useCustom, useClassNames, useControlled, useEventCallback, KEY_VALUES, mergeRefs } from '../utils';
|
|
18
|
+
import { PickerToggle, onMenuKeyDown as _onMenuKeyDown, PickerOverlay, SearchBar, SelectedElement, PickerToggleTrigger, createConcatChildrenFunction, usePickerClassName, useToggleKeyDownEvent, usePickerRef, pickTriggerPropKeys, omitTriggerPropKeys, listPickerPropTypes } from '../Picker';
|
|
19
19
|
import { isEveryChildChecked, isSomeNodeHasChildren, isAllSiblingNodeUncheckable, isEveryFirstLevelNodeUncheckable, getFormattedTree, getDisabledState, getCheckTreePickerDefaultValue, getSelectedItems, isNodeUncheckable } from './utils';
|
|
20
20
|
import { hasVisibleChildren, getExpandWhenSearching, useTreeSearch, useTreeNodeRefs, getDefaultExpandItemValues, useFlattenTreeData, focusNextItem, getFocusableItems, focusPreviousItem, toggleExpand, getActiveItem, useGetTreeNodeChildren, focusToActiveTreeNode, focusTreeNode, leftArrowHandler, rightArrowHandler, isSearching } from '../utils/treeUtils';
|
|
21
21
|
var emptyArray = [];
|
|
@@ -106,12 +106,16 @@ var CheckTreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
106
106
|
rest = _objectWithoutPropertiesLoose(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", "onSelectItem", "onOpen", "onScroll", "onExpand", "renderValue", "renderTreeIcon", "renderTreeNode"]);
|
|
107
107
|
var _useContext = useContext(TreeContext),
|
|
108
108
|
inline = _useContext.inline;
|
|
109
|
-
var
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
109
|
+
var _usePickerRef = usePickerRef(ref, {
|
|
110
|
+
inline: inline
|
|
111
|
+
}),
|
|
112
|
+
trigger = _usePickerRef.trigger,
|
|
113
|
+
root = _usePickerRef.root,
|
|
114
|
+
target = _usePickerRef.target,
|
|
115
|
+
overlay = _usePickerRef.overlay,
|
|
116
|
+
list = _usePickerRef.list,
|
|
117
|
+
searchInput = _usePickerRef.searchInput,
|
|
118
|
+
treeView = _usePickerRef.treeView;
|
|
115
119
|
var _useCustom = useCustom('Picker', overrideLocale),
|
|
116
120
|
rtl = _useCustom.rtl,
|
|
117
121
|
locale = _useCustom.locale;
|
|
@@ -192,7 +196,7 @@ var CheckTreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
192
196
|
* get formatted nodes for render tree
|
|
193
197
|
* @params render - renderNode function. only used when virtualized setting false
|
|
194
198
|
*/
|
|
195
|
-
var getFormattedNodes =
|
|
199
|
+
var getFormattedNodes = function getFormattedNodes(render) {
|
|
196
200
|
if (virtualized) {
|
|
197
201
|
return formatVirtualizedTreeData(flattenNodes, filteredData, expandItemValues, {
|
|
198
202
|
cascade: cascade,
|
|
@@ -207,7 +211,7 @@ var CheckTreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
207
211
|
}).map(function (node) {
|
|
208
212
|
return render === null || render === void 0 ? void 0 : render(node, 1);
|
|
209
213
|
});
|
|
210
|
-
}
|
|
214
|
+
};
|
|
211
215
|
var getTreeNodeProps = function getTreeNodeProps(node, layer) {
|
|
212
216
|
return {
|
|
213
217
|
as: Component,
|
|
@@ -238,19 +242,19 @@ var CheckTreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
238
242
|
onRenderTreeIcon: renderTreeIcon
|
|
239
243
|
};
|
|
240
244
|
};
|
|
241
|
-
var focusActiveNode =
|
|
242
|
-
if (
|
|
245
|
+
var focusActiveNode = function focusActiveNode() {
|
|
246
|
+
if (list.current) {
|
|
243
247
|
focusToActiveTreeNode({
|
|
244
|
-
list:
|
|
248
|
+
list: list.current,
|
|
245
249
|
valueKey: valueKey,
|
|
246
250
|
selector: "." + checkTreePrefix('node-active'),
|
|
247
251
|
activeNode: activeNode,
|
|
248
252
|
virtualized: virtualized,
|
|
249
|
-
container:
|
|
253
|
+
container: treeView.current,
|
|
250
254
|
formattedNodes: getFormattedNodes()
|
|
251
255
|
});
|
|
252
256
|
}
|
|
253
|
-
}
|
|
257
|
+
};
|
|
254
258
|
useEffect(function () {
|
|
255
259
|
setValue(getCheckTreePickerDefaultValue(value, uncheckableItemValues));
|
|
256
260
|
}, []); // eslint-disable-line react-hooks/exhaustive-deps
|
|
@@ -280,7 +284,7 @@ var CheckTreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
280
284
|
});
|
|
281
285
|
forceUpdate();
|
|
282
286
|
}, [cascade, value, uncheckableItemValues, unSerializeList, flattenNodes, forceUpdate]);
|
|
283
|
-
var toggleUpChecked =
|
|
287
|
+
var toggleUpChecked = useEventCallback(function (nodes, node, checked) {
|
|
284
288
|
var currentNode = node.refKey ? nodes[node.refKey] : null;
|
|
285
289
|
if (cascade && currentNode) {
|
|
286
290
|
if (!checked) {
|
|
@@ -299,8 +303,8 @@ var CheckTreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
299
303
|
toggleUpChecked(nodes, currentNode.parent, checked);
|
|
300
304
|
}
|
|
301
305
|
}
|
|
302
|
-
}
|
|
303
|
-
var toggleDownChecked =
|
|
306
|
+
});
|
|
307
|
+
var toggleDownChecked = useEventCallback(function (nodes, node, isChecked) {
|
|
304
308
|
var currentNode = node.refKey ? nodes[node.refKey] : null;
|
|
305
309
|
if (!currentNode) {
|
|
306
310
|
return;
|
|
@@ -314,8 +318,8 @@ var CheckTreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
314
318
|
toggleDownChecked(nodes, child, isChecked);
|
|
315
319
|
});
|
|
316
320
|
}
|
|
317
|
-
}
|
|
318
|
-
var toggleChecked =
|
|
321
|
+
});
|
|
322
|
+
var toggleChecked = useEventCallback(function (node, isChecked) {
|
|
319
323
|
var nodes = _cloneDeep(flattenNodes);
|
|
320
324
|
toggleDownChecked(nodes, node, isChecked);
|
|
321
325
|
node.parent && toggleUpChecked(nodes, node.parent, isChecked);
|
|
@@ -324,7 +328,7 @@ var CheckTreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
324
328
|
return values.filter(function (v) {
|
|
325
329
|
return !uncheckableItemValues.includes(v);
|
|
326
330
|
});
|
|
327
|
-
}
|
|
331
|
+
});
|
|
328
332
|
|
|
329
333
|
// TODO-Doma
|
|
330
334
|
// Replace `getKeyParentMap` with `getParentMap`
|
|
@@ -335,7 +339,7 @@ var CheckTreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
335
339
|
return node[childrenKey];
|
|
336
340
|
});
|
|
337
341
|
}, [childrenKey, data, valueKey]);
|
|
338
|
-
var handleSelect =
|
|
342
|
+
var handleSelect = useEventCallback(function (node, event) {
|
|
339
343
|
var currentNode = node.refKey ? flattenNodes[node.refKey] : null;
|
|
340
344
|
if (!node || !currentNode) {
|
|
341
345
|
return;
|
|
@@ -358,18 +362,18 @@ var CheckTreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
358
362
|
onSelectItem === null || onSelectItem === void 0 ? void 0 : onSelectItem(node, getPathTowardsItem(node, function (item) {
|
|
359
363
|
return itemParentMap.get(item[valueKey]);
|
|
360
364
|
}));
|
|
361
|
-
}
|
|
362
|
-
var handleOpen =
|
|
363
|
-
var
|
|
364
|
-
(
|
|
365
|
+
});
|
|
366
|
+
var handleOpen = useEventCallback(function () {
|
|
367
|
+
var _trigger$current, _trigger$current$open;
|
|
368
|
+
(_trigger$current = trigger.current) === null || _trigger$current === void 0 ? void 0 : (_trigger$current$open = _trigger$current.open) === null || _trigger$current$open === void 0 ? void 0 : _trigger$current$open.call(_trigger$current);
|
|
365
369
|
setFocusItemValue(activeNode === null || activeNode === void 0 ? void 0 : activeNode[valueKey]);
|
|
366
370
|
focusActiveNode();
|
|
367
371
|
onOpen === null || onOpen === void 0 ? void 0 : onOpen();
|
|
368
372
|
setActive(true);
|
|
369
|
-
}
|
|
370
|
-
var handleClose =
|
|
371
|
-
var
|
|
372
|
-
(
|
|
373
|
+
});
|
|
374
|
+
var handleClose = useEventCallback(function () {
|
|
375
|
+
var _trigger$current2, _trigger$current2$clo, _target$current;
|
|
376
|
+
(_trigger$current2 = trigger.current) === null || _trigger$current2 === void 0 ? void 0 : (_trigger$current2$clo = _trigger$current2.close) === null || _trigger$current2$clo === void 0 ? void 0 : _trigger$current2$clo.call(_trigger$current2);
|
|
373
377
|
setSearchKeyword('');
|
|
374
378
|
onClose === null || onClose === void 0 ? void 0 : onClose();
|
|
375
379
|
setFocusItemValue(null);
|
|
@@ -378,9 +382,9 @@ var CheckTreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
378
382
|
/**
|
|
379
383
|
* when using keyboard toggle picker, should refocus on PickerToggle Component after close picker menu
|
|
380
384
|
*/
|
|
381
|
-
(
|
|
382
|
-
}
|
|
383
|
-
var handleExpand =
|
|
385
|
+
(_target$current = target.current) === null || _target$current === void 0 ? void 0 : _target$current.focus();
|
|
386
|
+
});
|
|
387
|
+
var handleExpand = useEventCallback(function (node) {
|
|
384
388
|
var nextExpandItemValues = toggleExpand({
|
|
385
389
|
node: node,
|
|
386
390
|
isExpand: !node.expand,
|
|
@@ -395,16 +399,8 @@ var CheckTreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
395
399
|
if (_isFunction(getChildren) && !node.expand && Array.isArray(node[childrenKey]) && node[childrenKey].length === 0) {
|
|
396
400
|
loadChildren(node, getChildren);
|
|
397
401
|
}
|
|
398
|
-
}, [childrenKey, expandItemValues, getChildren, loadChildren, onExpand, setExpandItemValues, valueKey]);
|
|
399
|
-
usePublicMethods(ref, {
|
|
400
|
-
rootRef: inline ? treeViewRef : undefined,
|
|
401
|
-
triggerRef: triggerRef,
|
|
402
|
-
overlayRef: overlayRef,
|
|
403
|
-
targetRef: targetRef,
|
|
404
|
-
listRef: listRef,
|
|
405
|
-
inline: inline
|
|
406
402
|
});
|
|
407
|
-
var handleClean =
|
|
403
|
+
var handleClean = useEventCallback(function (event) {
|
|
408
404
|
var target = event.target;
|
|
409
405
|
// exclude searchBar
|
|
410
406
|
if (target.matches('div[role="searchbox"] > input') || disabled || !cleanable) {
|
|
@@ -423,8 +419,8 @@ var CheckTreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
423
419
|
});
|
|
424
420
|
}
|
|
425
421
|
onChange === null || onChange === void 0 ? void 0 : onChange([], event);
|
|
426
|
-
}
|
|
427
|
-
var handleFocusItem =
|
|
422
|
+
});
|
|
423
|
+
var handleFocusItem = useEventCallback(function (key) {
|
|
428
424
|
var focusableItems = getFocusableItems(filteredData, {
|
|
429
425
|
disabledItemValues: disabledItemValues,
|
|
430
426
|
valueKey: valueKey,
|
|
@@ -449,8 +445,8 @@ var CheckTreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
449
445
|
if (key === KEY_VALUES.UP) {
|
|
450
446
|
focusPreviousItem(focusProps);
|
|
451
447
|
}
|
|
452
|
-
}
|
|
453
|
-
var handleLeftArrow =
|
|
448
|
+
});
|
|
449
|
+
var handleLeftArrow = useEventCallback(function () {
|
|
454
450
|
if (_isNil(focusItemValue)) return;
|
|
455
451
|
var focusItem = getActiveItem(focusItemValue, flattenNodes, valueKey);
|
|
456
452
|
leftArrowHandler({
|
|
@@ -464,8 +460,8 @@ var CheckTreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
464
460
|
focusTreeNode(focusItem === null || focusItem === void 0 ? void 0 : (_focusItem$parent2 = focusItem.parent) === null || _focusItem$parent2 === void 0 ? void 0 : _focusItem$parent2.refKey, treeNodesRefs, "." + checkTreePrefix('node-label'));
|
|
465
461
|
}
|
|
466
462
|
});
|
|
467
|
-
}
|
|
468
|
-
var handleRightArrow =
|
|
463
|
+
});
|
|
464
|
+
var handleRightArrow = useEventCallback(function () {
|
|
469
465
|
if (_isNil(focusItemValue)) return;
|
|
470
466
|
var focusItem = getActiveItem(focusItemValue, flattenNodes, valueKey);
|
|
471
467
|
rightArrowHandler({
|
|
@@ -477,8 +473,8 @@ var CheckTreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
477
473
|
handleFocusItem(KEY_VALUES.DOWN);
|
|
478
474
|
}
|
|
479
475
|
});
|
|
480
|
-
}
|
|
481
|
-
var selectActiveItem =
|
|
476
|
+
});
|
|
477
|
+
var selectActiveItem = function selectActiveItem(event) {
|
|
482
478
|
if (_isNil(focusItemValue)) return;
|
|
483
479
|
var activeItem = getActiveItem(focusItemValue, flattenNodes, valueKey);
|
|
484
480
|
if (!isNodeUncheckable(activeItem, {
|
|
@@ -487,13 +483,13 @@ var CheckTreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
487
483
|
}) && activeItem !== null) {
|
|
488
484
|
handleSelect(activeItem, event);
|
|
489
485
|
}
|
|
490
|
-
}
|
|
486
|
+
};
|
|
491
487
|
var onPickerKeydown = useToggleKeyDownEvent(_extends({
|
|
492
488
|
toggle: !focusItemValue || !active,
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
489
|
+
trigger: trigger,
|
|
490
|
+
target: target,
|
|
491
|
+
overlay: overlay,
|
|
492
|
+
searchInput: searchInput,
|
|
497
493
|
active: active,
|
|
498
494
|
onExit: handleClean,
|
|
499
495
|
onClose: handleClose,
|
|
@@ -512,8 +508,8 @@ var CheckTreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
512
508
|
});
|
|
513
509
|
}
|
|
514
510
|
}, rest));
|
|
515
|
-
var handleTreeKeydown =
|
|
516
|
-
if (!
|
|
511
|
+
var handleTreeKeydown = useEventCallback(function (event) {
|
|
512
|
+
if (!treeView.current) {
|
|
517
513
|
return;
|
|
518
514
|
}
|
|
519
515
|
_onMenuKeyDown(event, {
|
|
@@ -527,7 +523,7 @@ var CheckTreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
527
523
|
right: rtl ? handleLeftArrow : handleRightArrow,
|
|
528
524
|
enter: selectActiveItem
|
|
529
525
|
});
|
|
530
|
-
}
|
|
526
|
+
});
|
|
531
527
|
var renderNode = function renderNode(node, layer) {
|
|
532
528
|
var visible = node.visible,
|
|
533
529
|
refKey = node.refKey; // when searching, all nodes should be expand
|
|
@@ -619,7 +615,7 @@ var CheckTreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
619
615
|
}, style) : {};
|
|
620
616
|
return /*#__PURE__*/React.createElement("div", {
|
|
621
617
|
id: id ? id + "-listbox" : undefined,
|
|
622
|
-
ref:
|
|
618
|
+
ref: inline ? root : treeView,
|
|
623
619
|
role: "tree",
|
|
624
620
|
"aria-multiselectable": true,
|
|
625
621
|
className: classes,
|
|
@@ -637,7 +633,7 @@ var CheckTreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
637
633
|
}, function (_ref5) {
|
|
638
634
|
var height = _ref5.height;
|
|
639
635
|
return /*#__PURE__*/React.createElement(List, _extends({
|
|
640
|
-
ref:
|
|
636
|
+
ref: list,
|
|
641
637
|
height: height,
|
|
642
638
|
itemSize: itemSize,
|
|
643
639
|
itemCount: formattedNodes.length,
|
|
@@ -658,14 +654,14 @@ var CheckTreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
658
654
|
autoWidth: menuAutoWidth,
|
|
659
655
|
className: classes,
|
|
660
656
|
style: mergedMenuStyle,
|
|
661
|
-
ref: mergeRefs(
|
|
657
|
+
ref: mergeRefs(overlay, speakerRef),
|
|
662
658
|
onKeyDown: onPickerKeydown,
|
|
663
|
-
target:
|
|
659
|
+
target: trigger
|
|
664
660
|
}, searchable ? /*#__PURE__*/React.createElement(SearchBar, {
|
|
665
661
|
placeholder: locale.searchPlaceholder,
|
|
666
662
|
onChange: handleSearch,
|
|
667
663
|
value: searchKeywordState,
|
|
668
|
-
inputRef:
|
|
664
|
+
inputRef: searchInput
|
|
669
665
|
}) : null, renderMenu ? renderMenu(renderCheckTree()) : renderCheckTree(), renderExtraFooter === null || renderExtraFooter === void 0 ? void 0 : renderExtraFooter());
|
|
670
666
|
};
|
|
671
667
|
var selectedItems = useMemo(function () {
|
|
@@ -711,7 +707,7 @@ var CheckTreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
711
707
|
}
|
|
712
708
|
return /*#__PURE__*/React.createElement(PickerToggleTrigger, {
|
|
713
709
|
pickerProps: _pick(props, pickTriggerPropKeys),
|
|
714
|
-
ref:
|
|
710
|
+
ref: trigger,
|
|
715
711
|
placement: placement,
|
|
716
712
|
onEnter: handleOpen,
|
|
717
713
|
onEntered: onEntered,
|
|
@@ -719,10 +715,11 @@ var CheckTreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
719
715
|
speaker: renderDropdownMenu
|
|
720
716
|
}, /*#__PURE__*/React.createElement(Component, {
|
|
721
717
|
className: classes,
|
|
722
|
-
style: style
|
|
718
|
+
style: style,
|
|
719
|
+
ref: root
|
|
723
720
|
}, /*#__PURE__*/React.createElement(PickerToggle, _extends({}, _omit(rest, [].concat(omitTriggerPropKeys, usedClassNamePropKeys)), {
|
|
724
721
|
id: id,
|
|
725
|
-
ref:
|
|
722
|
+
ref: target,
|
|
726
723
|
appearance: appearance,
|
|
727
724
|
onKeyDown: onPickerKeydown,
|
|
728
725
|
onClean: createChainedFunction(handleClean, onClean),
|
|
@@ -20,7 +20,11 @@ export interface DatePickerProps extends PickerBaseProps<DatePickerLocale>, Form
|
|
|
20
20
|
* @deprecated use <Calendar> instead
|
|
21
21
|
**/
|
|
22
22
|
inline?: boolean;
|
|
23
|
-
/**
|
|
23
|
+
/**
|
|
24
|
+
* ISO 8601 standard, each calendar week begins on Monday and Sunday on the seventh day
|
|
25
|
+
*
|
|
26
|
+
* @see https://en.wikipedia.org/wiki/ISO_week_date
|
|
27
|
+
*/
|
|
24
28
|
isoWeek?: boolean;
|
|
25
29
|
/** A label displayed at the beginning of toggle button */
|
|
26
30
|
label?: React.ReactNode;
|
|
@@ -19,12 +19,10 @@ import Stack from '../Stack';
|
|
|
19
19
|
import PredefinedRanges from './PredefinedRanges';
|
|
20
20
|
import { createChainedFunction, mergeRefs, useClassNames, useControlled, useCustom, useUniqueId, useEventCallback, partitionHTMLProps } from '../utils';
|
|
21
21
|
import { shouldRenderMonth, shouldRenderDate, shouldRenderTime, shouldOnlyRenderTime, setHours, getHours, addMonths, addDays, isValid, disabledTime, copyTime, calendarOnlyProps } from '../utils/dateUtils';
|
|
22
|
-
import { PickerOverlay,
|
|
22
|
+
import { PickerOverlay, PickerLabel, PickerIndicator, PickerToggleTrigger, pickerPropTypes, pickTriggerPropKeys, omitTriggerPropKeys, usePickerClassName, onMenuKeyDown } from '../Picker';
|
|
23
23
|
import usePickerRef from '../Picker/usePickerRef';
|
|
24
24
|
import DateInput from '../DateInput';
|
|
25
25
|
import InputGroup from '../InputGroup';
|
|
26
|
-
import PickerLabel from './PickerLabel';
|
|
27
|
-
import PickerIndicator from './PickerIndicator';
|
|
28
26
|
import { OverlayCloseCause } from '../Overlay/OverlayTrigger';
|
|
29
27
|
import { deprecatePropTypeNew } from '../utils/deprecatePropType';
|
|
30
28
|
import { getAriaLabel } from '../Calendar/utils';
|
|
@@ -56,7 +56,8 @@ var Toolbar = /*#__PURE__*/React.forwardRef(function Toolbar(props, ref) {
|
|
|
56
56
|
calendarDate: calendarDate,
|
|
57
57
|
locale: locale,
|
|
58
58
|
disabledShortcut: disabledShortcut,
|
|
59
|
-
onShortcutClick: onShortcutClick
|
|
59
|
+
onShortcutClick: onShortcutClick,
|
|
60
|
+
"data-testid": "daterange-predefined-bottom"
|
|
60
61
|
}), /*#__PURE__*/React.createElement("div", {
|
|
61
62
|
className: prefix('right')
|
|
62
63
|
}, !hideOkBtn && /*#__PURE__*/React.createElement(SubmitButton, {
|
|
@@ -58,10 +58,10 @@ var DateRangeInput = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
58
58
|
isControlledDate: isControlled
|
|
59
59
|
};
|
|
60
60
|
var startDateState = useDateInputState(_extends({}, dateInputOptions, {
|
|
61
|
-
date: value === null || value === void 0 ? void 0 : value[0]
|
|
61
|
+
date: (value === null || value === void 0 ? void 0 : value[0]) || null
|
|
62
62
|
}));
|
|
63
63
|
var endDateState = useDateInputState(_extends({}, dateInputOptions, {
|
|
64
|
-
date: value === null || value === void 0 ? void 0 : value[1]
|
|
64
|
+
date: (value === null || value === void 0 ? void 0 : value[1]) || null
|
|
65
65
|
}));
|
|
66
66
|
var getActiveState = function getActiveState(type) {
|
|
67
67
|
if (type === void 0) {
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
3
3
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
4
|
+
import React from 'react';
|
|
4
5
|
import PropTypes from 'prop-types';
|
|
5
|
-
import React, { useCallback } from 'react';
|
|
6
6
|
import { addMonths } from '../utils/dateUtils';
|
|
7
7
|
import CalendarCore from '../Calendar/CalendarContainer';
|
|
8
|
-
import { DATERANGE_DISABLED_TARGET } from '../utils';
|
|
8
|
+
import { DATERANGE_DISABLED_TARGET, useEventCallback } from '../utils';
|
|
9
9
|
var Calendar = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
10
10
|
var _props$as = props.as,
|
|
11
11
|
Component = _props$as === void 0 ? CalendarCore : _props$as,
|
|
@@ -25,37 +25,39 @@ var Calendar = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
25
25
|
_props$value = props.value,
|
|
26
26
|
value = _props$value === void 0 ? [] : _props$value,
|
|
27
27
|
rest = _objectWithoutPropertiesLoose(props, ["as", "calendarDate", "format", "disabledDate", "index", "limitEndYear", "limitStartYear", "onChangeCalendarMonth", "onChangeCalendarTime", "onToggleMeridian", "onSelect", "value"]);
|
|
28
|
-
var onMoveForward =
|
|
28
|
+
var onMoveForward = useEventCallback(function (nextPageDate) {
|
|
29
29
|
onChangeCalendarMonth === null || onChangeCalendarMonth === void 0 ? void 0 : onChangeCalendarMonth(index, nextPageDate);
|
|
30
|
-
}
|
|
31
|
-
var onMoveBackward =
|
|
30
|
+
});
|
|
31
|
+
var onMoveBackward = useEventCallback(function (nextPageDate) {
|
|
32
32
|
onChangeCalendarMonth === null || onChangeCalendarMonth === void 0 ? void 0 : onChangeCalendarMonth(index, nextPageDate);
|
|
33
|
-
}
|
|
34
|
-
var handleSelect =
|
|
33
|
+
});
|
|
34
|
+
var handleSelect = useEventCallback(function (date, event) {
|
|
35
35
|
onSelect === null || onSelect === void 0 ? void 0 : onSelect(index, date, event);
|
|
36
|
-
}
|
|
37
|
-
var handleChangeMonth =
|
|
36
|
+
});
|
|
37
|
+
var handleChangeMonth = useEventCallback(function (nextPageDate) {
|
|
38
38
|
onChangeCalendarMonth === null || onChangeCalendarMonth === void 0 ? void 0 : onChangeCalendarMonth(index, nextPageDate);
|
|
39
|
-
}
|
|
40
|
-
var handleChangeTime =
|
|
39
|
+
});
|
|
40
|
+
var handleChangeTime = useEventCallback(function (nextPageDate) {
|
|
41
41
|
onChangeCalendarTime === null || onChangeCalendarTime === void 0 ? void 0 : onChangeCalendarTime(index, nextPageDate);
|
|
42
|
-
}
|
|
43
|
-
var handleToggleMeridian =
|
|
42
|
+
});
|
|
43
|
+
var handleToggleMeridian = useEventCallback(function (event) {
|
|
44
44
|
onToggleMeridian(index, event);
|
|
45
|
-
}
|
|
46
|
-
var getCalendarDate =
|
|
45
|
+
});
|
|
46
|
+
var getCalendarDate = function getCalendarDate() {
|
|
47
47
|
return calendarDate[index];
|
|
48
|
-
}
|
|
49
|
-
var handleMoveForward =
|
|
48
|
+
};
|
|
49
|
+
var handleMoveForward = useEventCallback(function () {
|
|
50
50
|
onMoveForward === null || onMoveForward === void 0 ? void 0 : onMoveForward(addMonths(getCalendarDate(), 1));
|
|
51
|
-
}
|
|
52
|
-
var handleMoveBackward =
|
|
51
|
+
});
|
|
52
|
+
var handleMoveBackward = useEventCallback(function () {
|
|
53
53
|
onMoveBackward === null || onMoveBackward === void 0 ? void 0 : onMoveBackward(addMonths(getCalendarDate(), -1));
|
|
54
|
-
}
|
|
55
|
-
var disabledMonth =
|
|
54
|
+
});
|
|
55
|
+
var disabledMonth = function disabledMonth(date) {
|
|
56
56
|
return disabledDate === null || disabledDate === void 0 ? void 0 : disabledDate(date, value, DATERANGE_DISABLED_TARGET.CALENDAR);
|
|
57
|
-
}
|
|
58
|
-
return /*#__PURE__*/React.createElement(Component, _extends({
|
|
57
|
+
};
|
|
58
|
+
return /*#__PURE__*/React.createElement(Component, _extends({
|
|
59
|
+
"data-testid": "calendar-" + (index === 0 ? 'start' : 'end')
|
|
60
|
+
}, rest, {
|
|
59
61
|
format: format,
|
|
60
62
|
dateRange: value,
|
|
61
63
|
disabledDate: disabledMonth,
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { FormControlBaseProps, PickerBaseProps } from '../@types/common';
|
|
3
|
-
import {
|
|
3
|
+
import { DateRangePickerLocale } from '../locales';
|
|
4
|
+
import { PickerComponent } from '../Picker';
|
|
4
5
|
import { DisabledDateFunction, RangeType, DateRange } from './types';
|
|
5
|
-
export interface DateRangePickerProps extends PickerBaseProps
|
|
6
|
+
export interface DateRangePickerProps extends PickerBaseProps<DateRangePickerLocale>, FormControlBaseProps<DateRange | null> {
|
|
7
|
+
/** Custom caret component */
|
|
8
|
+
caretAs?: React.ElementType | null;
|
|
6
9
|
/** Predefined date ranges */
|
|
7
10
|
ranges?: RangeType[];
|
|
8
11
|
/** Format date */
|
|
@@ -13,12 +16,20 @@ export interface DateRangePickerProps extends PickerBaseProps, FormControlBasePr
|
|
|
13
16
|
hoverRange?: 'week' | 'month' | ((date: Date) => DateRange);
|
|
14
17
|
/** Whether to click once on selected date range,Can be used with hoverRange */
|
|
15
18
|
oneTap?: boolean;
|
|
16
|
-
/**
|
|
19
|
+
/**
|
|
20
|
+
* ISO 8601 standard, each calendar week begins on Monday and Sunday on the seventh day
|
|
21
|
+
*
|
|
22
|
+
* @see https://en.wikipedia.org/wiki/ISO_week_date
|
|
23
|
+
*/
|
|
17
24
|
isoWeek?: boolean;
|
|
25
|
+
/** A label displayed at the beginning of toggle button */
|
|
26
|
+
label?: React.ReactNode;
|
|
18
27
|
/** Set the upper limit of the available year relative to the current selection date */
|
|
19
28
|
limitEndYear?: number;
|
|
20
29
|
/** Set the lower limit of the available year relative to the current selection date */
|
|
21
30
|
limitStartYear?: number;
|
|
31
|
+
/** Whether to display a loading state indicator */
|
|
32
|
+
loading?: boolean;
|
|
22
33
|
/** Whether to show week numbers */
|
|
23
34
|
showWeekNumbers?: boolean;
|
|
24
35
|
/** Show only one calendar select */
|
|
@@ -47,7 +58,10 @@ export interface DateRangePickerProps extends PickerBaseProps, FormControlBasePr
|
|
|
47
58
|
onShortcutClick?: (range: RangeType, event: React.MouseEvent) => void;
|
|
48
59
|
/** Called when clean */
|
|
49
60
|
onClean?: (event: React.MouseEvent) => void;
|
|
50
|
-
/**
|
|
61
|
+
/**
|
|
62
|
+
* Custom render value
|
|
63
|
+
* @deprecated
|
|
64
|
+
*/
|
|
51
65
|
renderValue?: (value: DateRange, format: string) => React.ReactNode;
|
|
52
66
|
/** Custom render for calendar title */
|
|
53
67
|
renderTitle?: (date: Date) => React.ReactNode;
|