rsuite 5.16.1 → 5.16.4
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 +27 -0
- package/Picker/styles/index.less +3 -1
- package/Slider/styles/index.less +2 -1
- package/TreePicker/styles/index.less +0 -3
- package/cjs/Cascader/utils.js +3 -5
- package/cjs/CheckPicker/CheckPicker.d.ts +1 -1
- package/cjs/CheckPicker/test/CheckPicker.test.js +8 -0
- package/cjs/CheckTreePicker/CheckTreePicker.d.ts +2 -2
- package/cjs/CheckTreePicker/CheckTreePicker.js +5 -0
- package/cjs/CheckTreePicker/test/CheckTreePicker.test.d.ts +1 -0
- package/cjs/CheckTreePicker/test/CheckTreePicker.test.js +15 -0
- package/cjs/CheckTreePicker/utils.js +3 -1
- package/cjs/CustomProvider/CustomProvider.js +6 -3
- package/cjs/DatePicker/DatePicker.d.ts +1 -1
- package/cjs/DatePicker/DatePicker.js +1 -1
- package/cjs/DatePicker/Toolbar.js +1 -1
- package/cjs/DateRangePicker/Calendar.d.ts +0 -1
- package/cjs/DateRangePicker/Calendar.js +1 -39
- package/cjs/DateRangePicker/DateRangePicker.d.ts +1 -1
- package/cjs/DateRangePicker/DateRangePicker.js +23 -23
- package/cjs/DateRangePicker/utils.d.ts +2 -1
- package/cjs/DateRangePicker/utils.js +12 -3
- package/cjs/InputPicker/InputPicker.d.ts +2 -2
- package/cjs/InputPicker/test/InputPicker.test.d.ts +1 -0
- package/cjs/InputPicker/test/InputPicker.test.js +15 -0
- package/cjs/MultiCascader/utils.js +3 -2
- package/cjs/Overlay/OverlayTrigger.js +43 -34
- package/cjs/Panel/Panel.js +8 -7
- package/cjs/Picker/DropdownMenu.d.ts +1 -1
- package/cjs/Picker/PickerToggle.d.ts +1 -1
- package/cjs/Picker/PickerToggle.js +52 -27
- package/cjs/SelectPicker/SelectPicker.d.ts +9 -3
- package/cjs/SelectPicker/test/SelectPicker.test.js +33 -0
- package/cjs/Tree/Tree.d.ts +2 -2
- package/cjs/Tree/test/Tree.test.d.ts +1 -0
- package/cjs/Tree/test/Tree.test.js +18 -0
- package/cjs/TreePicker/TreePicker.d.ts +2 -2
- package/cjs/TreePicker/test/TreePicker.test.d.ts +1 -0
- package/cjs/TreePicker/test/TreePicker.test.js +15 -0
- package/cjs/utils/attachParent.d.ts +1 -0
- package/cjs/utils/attachParent.js +15 -0
- package/cjs/utils/treeUtils.js +3 -2
- package/cjs/utils/usePortal.d.ts +4 -2
- package/cjs/utils/usePortal.js +40 -14
- package/dist/rsuite-rtl.css +9 -10
- package/dist/rsuite-rtl.min.css +1 -1
- package/dist/rsuite-rtl.min.css.map +1 -1
- package/dist/rsuite.css +9 -10
- package/dist/rsuite.js +29 -18
- 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/Cascader/utils.js +2 -4
- package/esm/CheckPicker/CheckPicker.d.ts +1 -1
- package/esm/CheckPicker/test/CheckPicker.test.js +8 -0
- package/esm/CheckTreePicker/CheckTreePicker.d.ts +2 -2
- package/esm/CheckTreePicker/CheckTreePicker.js +5 -0
- package/esm/CheckTreePicker/test/CheckTreePicker.test.d.ts +1 -0
- package/esm/CheckTreePicker/test/CheckTreePicker.test.js +10 -0
- package/esm/CheckTreePicker/utils.js +2 -1
- package/esm/CustomProvider/CustomProvider.js +6 -3
- package/esm/DatePicker/DatePicker.d.ts +1 -1
- package/esm/DatePicker/DatePicker.js +1 -1
- package/esm/DatePicker/Toolbar.js +1 -1
- package/esm/DateRangePicker/Calendar.d.ts +0 -1
- package/esm/DateRangePicker/Calendar.js +2 -41
- package/esm/DateRangePicker/DateRangePicker.d.ts +1 -1
- package/esm/DateRangePicker/DateRangePicker.js +23 -23
- package/esm/DateRangePicker/utils.d.ts +2 -1
- package/esm/DateRangePicker/utils.js +12 -3
- package/esm/InputPicker/InputPicker.d.ts +2 -2
- package/esm/InputPicker/test/InputPicker.test.d.ts +1 -0
- package/esm/InputPicker/test/InputPicker.test.js +10 -0
- package/esm/MultiCascader/utils.js +2 -2
- package/esm/Overlay/OverlayTrigger.js +44 -35
- package/esm/Panel/Panel.js +8 -7
- package/esm/Picker/DropdownMenu.d.ts +1 -1
- package/esm/Picker/PickerToggle.d.ts +1 -1
- package/esm/Picker/PickerToggle.js +52 -27
- package/esm/SelectPicker/SelectPicker.d.ts +9 -3
- package/esm/SelectPicker/test/SelectPicker.test.js +32 -0
- package/esm/Tree/Tree.d.ts +2 -2
- package/esm/Tree/test/Tree.test.d.ts +1 -0
- package/esm/Tree/test/Tree.test.js +11 -0
- package/esm/TreePicker/TreePicker.d.ts +2 -2
- package/esm/TreePicker/test/TreePicker.test.d.ts +1 -0
- package/esm/TreePicker/test/TreePicker.test.js +10 -0
- package/esm/utils/attachParent.d.ts +1 -0
- package/esm/utils/attachParent.js +10 -0
- package/esm/utils/treeUtils.js +2 -2
- package/esm/utils/usePortal.d.ts +4 -2
- package/esm/utils/usePortal.js +36 -14
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,30 @@
|
|
|
1
|
+
## [5.16.4](https://github.com/rsuite/rsuite/compare/v5.16.3...v5.16.4) (2022-08-04)
|
|
2
|
+
|
|
3
|
+
### Bug Fixes
|
|
4
|
+
|
|
5
|
+
- **DatePicker:** fix issues with focus event ([#2636](https://github.com/rsuite/rsuite/issues/2636)) ([76b68aa](https://github.com/rsuite/rsuite/commit/76b68aa79dd129a210238517c279fe41b0da89ac))
|
|
6
|
+
|
|
7
|
+
## [5.16.3](https://github.com/rsuite/rsuite/compare/v5.16.2...v5.16.3) (2022-07-29)
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
- **DateRangePicker:** fix predefined `ranges` cannot close picker ([#2614](https://github.com/rsuite/rsuite/issues/2614)) ([7773899](https://github.com/rsuite/rsuite/commit/7773899d5cda5ce53d556be85abc76f23166fc28))
|
|
12
|
+
- **listProps:** fix properties in listProps to be optional ([#2622](https://github.com/rsuite/rsuite/issues/2622)) ([650abbd](https://github.com/rsuite/rsuite/commit/650abbdd7b1073fb1a5a3d3ca761127ac2dcdd08))
|
|
13
|
+
|
|
14
|
+
## [5.16.2](https://github.com/rsuite/rsuite/compare/v5.16.1...v5.16.2) (2022-07-28)
|
|
15
|
+
|
|
16
|
+
### Bug Fixes
|
|
17
|
+
|
|
18
|
+
- **CustomProvider:** fix warnings caused by server-side rendering ([#2599](https://github.com/rsuite/rsuite/issues/2599)) ([ea05efb](https://github.com/rsuite/rsuite/commit/ea05efba3c53bf7e04ea4caa7b378a762b85af93))
|
|
19
|
+
- **DateRangePicker:** improved experience for date range selection ([#2618](https://github.com/rsuite/rsuite/issues/2618)) ([225fc08](https://github.com/rsuite/rsuite/commit/225fc08e21d43c41d92c1514f67c05eb660bf9dd))
|
|
20
|
+
- **focus:** fix outline style for form components when focused ([#2601](https://github.com/rsuite/rsuite/issues/2601)) ([0e2f9df](https://github.com/rsuite/rsuite/commit/0e2f9dffe5e882fc56727eb8ba8901aaf1b7d7b3))
|
|
21
|
+
- **OverlayTrigger:** fix invalid rendering without followCursor ([#2600](https://github.com/rsuite/rsuite/issues/2600)) ([08abc8e](https://github.com/rsuite/rsuite/commit/08abc8e825af55d8334a6e6057d4f5582a3197ac))
|
|
22
|
+
- **Panel:** allow custom header in collapsible panels ([#2611](https://github.com/rsuite/rsuite/issues/2611)) ([6372d44](https://github.com/rsuite/rsuite/commit/6372d441235b5b65036c257608098df01f93bf6d))
|
|
23
|
+
- **Picker:** add missing caretAs prop declaration ([#2592](https://github.com/rsuite/rsuite/issues/2592)) ([faabba4](https://github.com/rsuite/rsuite/commit/faabba4b32d82f819b5c5431c3d7040798db1765))
|
|
24
|
+
- **Picker:** fix style dependency ([#2612](https://github.com/rsuite/rsuite/issues/2612)) ([0b5b1d6](https://github.com/rsuite/rsuite/commit/0b5b1d60909a069c317f069e9ab235da70eb4aa3))
|
|
25
|
+
- **SelectPicker:** make controlled value nullable ([#2591](https://github.com/rsuite/rsuite/issues/2591)) ([6619a75](https://github.com/rsuite/rsuite/commit/6619a75eca9eabf9bf08dd84dee78f1df0e094ca))
|
|
26
|
+
- **treelike:** fix data item stringify throw error ([#2606](https://github.com/rsuite/rsuite/issues/2606)) ([3a586d2](https://github.com/rsuite/rsuite/commit/3a586d28e075b5bdd95d8df948ce4887570fab1d))
|
|
27
|
+
|
|
1
28
|
## [5.16.1](https://github.com/rsuite/rsuite/compare/v5.16.0...v5.16.1) (2022-07-15)
|
|
2
29
|
|
|
3
30
|
### Bug Fixes
|
package/Picker/styles/index.less
CHANGED
|
@@ -104,6 +104,7 @@
|
|
|
104
104
|
padding-right: 32px;
|
|
105
105
|
color: var(--rs-text-primary);
|
|
106
106
|
background-color: var(--rs-input-bg);
|
|
107
|
+
outline: none;
|
|
107
108
|
}
|
|
108
109
|
|
|
109
110
|
&.rs-btn-lg &-textbox {
|
|
@@ -120,7 +121,6 @@
|
|
|
120
121
|
|
|
121
122
|
&-read-only {
|
|
122
123
|
opacity: 0;
|
|
123
|
-
pointer-events: none;
|
|
124
124
|
}
|
|
125
125
|
}
|
|
126
126
|
|
|
@@ -277,6 +277,8 @@
|
|
|
277
277
|
overflow: hidden;
|
|
278
278
|
// Remove transition
|
|
279
279
|
transition: none;
|
|
280
|
+
display: flex;
|
|
281
|
+
flex-direction: column;
|
|
280
282
|
|
|
281
283
|
.high-contrast-mode({
|
|
282
284
|
border: 1px solid var(--rs-border-primary);
|
package/Slider/styles/index.less
CHANGED
package/cjs/Cascader/utils.js
CHANGED
|
@@ -6,8 +6,6 @@ exports.__esModule = true;
|
|
|
6
6
|
exports.getColumnsAndPaths = getColumnsAndPaths;
|
|
7
7
|
exports.usePaths = usePaths;
|
|
8
8
|
|
|
9
|
-
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
10
|
-
|
|
11
9
|
var _react = require("react");
|
|
12
10
|
|
|
13
11
|
var _slice = _interopRequireDefault(require("lodash/slice"));
|
|
@@ -16,6 +14,8 @@ var _utils = require("../utils");
|
|
|
16
14
|
|
|
17
15
|
var _treeUtils = require("../utils/treeUtils");
|
|
18
16
|
|
|
17
|
+
var _attachParent = require("../utils/attachParent");
|
|
18
|
+
|
|
19
19
|
function getColumnsAndPaths(data, value, options) {
|
|
20
20
|
var childrenKey = options.childrenKey,
|
|
21
21
|
valueKey = options.valueKey,
|
|
@@ -39,9 +39,7 @@ function getColumnsAndPaths(data, value, options) {
|
|
|
39
39
|
|
|
40
40
|
if (node) {
|
|
41
41
|
columns.push(children.map(function (item) {
|
|
42
|
-
return (0,
|
|
43
|
-
parent: items[i]
|
|
44
|
-
});
|
|
42
|
+
return (0, _attachParent.attachParent)(item, items[i]);
|
|
45
43
|
}));
|
|
46
44
|
paths.push(node.active);
|
|
47
45
|
return {
|
|
@@ -4,7 +4,7 @@ import { PickerInstance, PickerToggleProps } from '../Picker';
|
|
|
4
4
|
import { ItemDataType, FormControlPickerProps } from '../@types/common';
|
|
5
5
|
import type { MultipleSelectProps } from '../SelectPicker';
|
|
6
6
|
export declare type ValueType = (number | string)[];
|
|
7
|
-
export interface CheckPickerProps<T> extends FormControlPickerProps<T[], PickerLocale, ItemDataType<T>>, MultipleSelectProps<T>, Pick<PickerToggleProps, 'label'> {
|
|
7
|
+
export interface CheckPickerProps<T> extends FormControlPickerProps<T[], PickerLocale, ItemDataType<T>>, MultipleSelectProps<T>, Pick<PickerToggleProps, 'label' | 'caretAs'> {
|
|
8
8
|
/** Top the selected option in the options */
|
|
9
9
|
sticky?: boolean;
|
|
10
10
|
/** A picker that can be counted */
|
|
@@ -88,4 +88,12 @@ _react.default.createElement(_CheckPicker.default, {
|
|
|
88
88
|
_react.default.createElement(_CheckPicker.default, {
|
|
89
89
|
label: "User",
|
|
90
90
|
data: []
|
|
91
|
+
});
|
|
92
|
+
|
|
93
|
+
/*#__PURE__*/
|
|
94
|
+
_react.default.createElement(_CheckPicker.default, {
|
|
95
|
+
caretAs: function caretAs() {
|
|
96
|
+
return /*#__PURE__*/_react.default.createElement("div", null);
|
|
97
|
+
},
|
|
98
|
+
data: []
|
|
91
99
|
});
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { PickerLocale } from '../locales';
|
|
3
|
-
import { PickerComponent } from '../Picker';
|
|
3
|
+
import { PickerComponent, PickerToggleProps } from '../Picker';
|
|
4
4
|
import { TreeBaseProps } from '../Tree/Tree';
|
|
5
5
|
import { FormControlPickerProps, ItemDataType } from '../@types/common';
|
|
6
6
|
export declare type ValueType = (string | number)[];
|
|
7
|
-
export interface CheckTreePickerProps<T = ValueType> extends TreeBaseProps<T, ItemDataType>, FormControlPickerProps<T, PickerLocale, ItemDataType> {
|
|
7
|
+
export interface CheckTreePickerProps<T = ValueType> extends TreeBaseProps<T, ItemDataType>, FormControlPickerProps<T, PickerLocale, ItemDataType>, Pick<PickerToggleProps, 'caretAs'> {
|
|
8
8
|
/** Tree node cascade */
|
|
9
9
|
cascade?: boolean;
|
|
10
10
|
/** A picker that can be counted */
|
|
@@ -592,6 +592,11 @@ var CheckTreePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
592
592
|
var children = node[childrenKey];
|
|
593
593
|
var visibleChildren = (0, _isUndefined2.default)(searchKeywordState) || searchKeywordState.length === 0 ? !!children : (0, _treeUtils.hasVisibleChildren)(node, childrenKey);
|
|
594
594
|
var nodeProps = (0, _extends2.default)({}, getTreeNodeProps((0, _extends2.default)({}, node, {
|
|
595
|
+
/**
|
|
596
|
+
* spread operator dont copy unenumerable properties
|
|
597
|
+
* so we need to copy them manually
|
|
598
|
+
*/
|
|
599
|
+
parent: node.parent,
|
|
595
600
|
expand: expand
|
|
596
601
|
}), layer), {
|
|
597
602
|
hasChildren: visibleChildren
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _react = _interopRequireDefault(require("react"));
|
|
6
|
+
|
|
7
|
+
var _CheckTreePicker = _interopRequireDefault(require("../CheckTreePicker"));
|
|
8
|
+
|
|
9
|
+
/*#__PURE__*/
|
|
10
|
+
_react.default.createElement(_CheckTreePicker.default, {
|
|
11
|
+
caretAs: function caretAs() {
|
|
12
|
+
return /*#__PURE__*/_react.default.createElement("div", null);
|
|
13
|
+
},
|
|
14
|
+
data: []
|
|
15
|
+
});
|
|
@@ -25,6 +25,8 @@ var _utils = require("../utils");
|
|
|
25
25
|
|
|
26
26
|
var _treeUtils = require("../utils/treeUtils");
|
|
27
27
|
|
|
28
|
+
var _attachParent = require("../utils/attachParent");
|
|
29
|
+
|
|
28
30
|
function isEveryChildChecked(nodes, parent) {
|
|
29
31
|
if ((0, _isNil2.default)(parent.refKey) || (0, _isNil2.default)(nodes[parent.refKey])) {
|
|
30
32
|
return false;
|
|
@@ -147,7 +149,7 @@ function getFormattedTree(data, nodes, props) {
|
|
|
147
149
|
formatted.check = curNode.check;
|
|
148
150
|
formatted.expand = curNode.expand;
|
|
149
151
|
formatted.uncheckable = curNode.uncheckable;
|
|
150
|
-
formatted
|
|
152
|
+
(0, _attachParent.attachParent)(formatted, curNode.parent);
|
|
151
153
|
formatted.checkState = checkState;
|
|
152
154
|
|
|
153
155
|
if (((_node$childrenKey = node[childrenKey]) === null || _node$childrenKey === void 0 ? void 0 : _node$childrenKey.length) > 0) {
|
|
@@ -40,7 +40,8 @@ var CustomProvider = function CustomProvider(props) {
|
|
|
40
40
|
var toasters = _react.default.useRef(new Map());
|
|
41
41
|
|
|
42
42
|
var _usePortal = (0, _utils.usePortal)({
|
|
43
|
-
container: container
|
|
43
|
+
container: container,
|
|
44
|
+
waitMount: true
|
|
44
45
|
}),
|
|
45
46
|
Portal = _usePortal.Portal;
|
|
46
47
|
|
|
@@ -65,7 +66,9 @@ var CustomProvider = function CustomProvider(props) {
|
|
|
65
66
|
}, [classPrefix, theme]);
|
|
66
67
|
return /*#__PURE__*/_react.default.createElement(Provider, {
|
|
67
68
|
value: value
|
|
68
|
-
}, children, /*#__PURE__*/_react.default.createElement(Portal, null,
|
|
69
|
+
}, children, /*#__PURE__*/_react.default.createElement(Portal, null, /*#__PURE__*/_react.default.createElement("div", {
|
|
70
|
+
className: "rs-toast-provider"
|
|
71
|
+
}, _ToastContainer.toastPlacements.map(function (placement) {
|
|
69
72
|
return /*#__PURE__*/_react.default.createElement(_ToastContainer.default, {
|
|
70
73
|
key: placement,
|
|
71
74
|
placement: placement,
|
|
@@ -73,7 +76,7 @@ var CustomProvider = function CustomProvider(props) {
|
|
|
73
76
|
toasters.current.set(placement, _ref);
|
|
74
77
|
}
|
|
75
78
|
});
|
|
76
|
-
})));
|
|
79
|
+
}))));
|
|
77
80
|
};
|
|
78
81
|
|
|
79
82
|
var _default = CustomProvider;
|
|
@@ -5,7 +5,7 @@ import { PickerToggleProps } from '../Picker';
|
|
|
5
5
|
import { FormControlBaseProps, PickerBaseProps, RsRefForwardingComponent } from '../@types/common';
|
|
6
6
|
export type { RangeType } from './Toolbar';
|
|
7
7
|
export interface DatePickerProps extends PickerBaseProps<DatePickerLocale>, FormControlBaseProps<Date | null>, Pick<PickerToggleProps, 'caretAs' | 'readOnly' | 'plaintext'> {
|
|
8
|
-
/**
|
|
8
|
+
/** Predefined date Ranges */
|
|
9
9
|
ranges?: RangeType<Date>[];
|
|
10
10
|
/** Calendar panel default presentation date and time */
|
|
11
11
|
calendarDefaultDate?: Date;
|
|
@@ -467,7 +467,7 @@ var DatePicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
467
467
|
as: toggleAs,
|
|
468
468
|
ref: targetRef,
|
|
469
469
|
appearance: appearance,
|
|
470
|
-
|
|
470
|
+
editable: true,
|
|
471
471
|
inputValue: value ? formatDate(value, formatStr) : '',
|
|
472
472
|
inputPlaceholder: typeof placeholder === 'string' && placeholder ? placeholder : formatStr,
|
|
473
473
|
inputMask: _utils.DateUtils.getDateMask(formatStr),
|
|
@@ -95,7 +95,7 @@ var Toolbar = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
95
95
|
return;
|
|
96
96
|
}
|
|
97
97
|
|
|
98
|
-
onClickShortcut === null || onClickShortcut === void 0 ? void 0 : onClickShortcut(value, closeOverlay !==
|
|
98
|
+
onClickShortcut === null || onClickShortcut === void 0 ? void 0 : onClickShortcut(value, closeOverlay !== false ? true : false, event);
|
|
99
99
|
};
|
|
100
100
|
|
|
101
101
|
return /*#__PURE__*/_react.default.createElement(_Button.default, {
|
|
@@ -19,7 +19,6 @@ export interface CalendarProps extends WithAsProps, Omit<CalendarCoreProps, Omit
|
|
|
19
19
|
onToggleMeridian: (index: number, event: React.MouseEvent) => void;
|
|
20
20
|
onMouseMove?: (date: Date) => void;
|
|
21
21
|
onSelect?: (date: Date, event: React.SyntheticEvent) => void;
|
|
22
|
-
showOneCalendar?: boolean;
|
|
23
22
|
showWeekNumbers?: boolean;
|
|
24
23
|
value?: [] | [Date] | [Date, Date];
|
|
25
24
|
}
|
|
@@ -21,14 +21,6 @@ var _Calendar = _interopRequireWildcard(require("../Calendar/Calendar"));
|
|
|
21
21
|
|
|
22
22
|
var _utils = require("../utils");
|
|
23
23
|
|
|
24
|
-
/**
|
|
25
|
-
* Omit the time in the date, which is used to compare and judge the date.
|
|
26
|
-
* eg: isAfter/isBefore
|
|
27
|
-
*/
|
|
28
|
-
function omitTime(date) {
|
|
29
|
-
return new Date(date.getFullYear(), date.getMonth(), date.getDate());
|
|
30
|
-
}
|
|
31
|
-
|
|
32
24
|
var Calendar = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
33
25
|
var _props$as = props.as,
|
|
34
26
|
Component = _props$as === void 0 ? _Calendar.default : _props$as,
|
|
@@ -43,10 +35,9 @@ var Calendar = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
43
35
|
onChangeCalendarDate = props.onChangeCalendarDate,
|
|
44
36
|
onChangeCalendarTime = props.onChangeCalendarTime,
|
|
45
37
|
onToggleMeridian = props.onToggleMeridian,
|
|
46
|
-
showOneCalendar = props.showOneCalendar,
|
|
47
38
|
_props$value = props.value,
|
|
48
39
|
value = _props$value === void 0 ? [] : _props$value,
|
|
49
|
-
rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "calendarDate", "format", "disabledDate", "index", "limitEndYear", "onChangeCalendarDate", "onChangeCalendarTime", "onToggleMeridian", "
|
|
40
|
+
rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "calendarDate", "format", "disabledDate", "index", "limitEndYear", "onChangeCalendarDate", "onChangeCalendarTime", "onToggleMeridian", "value"]);
|
|
50
41
|
|
|
51
42
|
var _useState = (0, _react.useState)(),
|
|
52
43
|
calendarState = _useState[0],
|
|
@@ -86,33 +77,6 @@ var Calendar = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
86
77
|
var handleMoveBackward = (0, _react.useCallback)(function () {
|
|
87
78
|
onMoveBackward === null || onMoveBackward === void 0 ? void 0 : onMoveBackward((0, _dateUtils.addMonths)(getCalendarDate(), -1));
|
|
88
79
|
}, [getCalendarDate, onMoveBackward]);
|
|
89
|
-
var disabledBackward = (0, _react.useCallback)(function () {
|
|
90
|
-
// Do not disable the Backward button on the first calendar.
|
|
91
|
-
if (index === 0) {
|
|
92
|
-
return false;
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
var startDate = (0, _dateUtils.setDate)((0, _dateUtils.addMonths)(calendarDate[0], 1), 1);
|
|
96
|
-
var endDate = (0, _dateUtils.setDate)(omitTime(calendarDate[1]), 1);
|
|
97
|
-
var after = (0, _dateUtils.isAfter)(endDate, startDate);
|
|
98
|
-
return !after;
|
|
99
|
-
}, [calendarDate, index]);
|
|
100
|
-
var disabledForward = (0, _react.useCallback)(function () {
|
|
101
|
-
// If only one calendar is displayed, do not disable
|
|
102
|
-
if (showOneCalendar) {
|
|
103
|
-
return false;
|
|
104
|
-
} // Do not disable the Forward button on the second calendar.
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
if (index === 1) {
|
|
108
|
-
return false;
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
var startDate = (0, _dateUtils.setDate)((0, _dateUtils.addMonths)(omitTime(calendarDate[0]), 1), 1);
|
|
112
|
-
var endDate = (0, _dateUtils.setDate)(omitTime(calendarDate[1]), 1);
|
|
113
|
-
var after = (0, _dateUtils.isAfter)(endDate, startDate);
|
|
114
|
-
return !after;
|
|
115
|
-
}, [calendarDate, index, showOneCalendar]);
|
|
116
80
|
var disabledMonth = (0, _react.useCallback)(function (date) {
|
|
117
81
|
return disabledDate === null || disabledDate === void 0 ? void 0 : disabledDate(date, value, _utils.DATERANGE_DISABLED_TARGET.CALENDAR);
|
|
118
82
|
}, [disabledDate, value]);
|
|
@@ -120,9 +84,7 @@ var Calendar = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
120
84
|
format: format,
|
|
121
85
|
calendarState: calendarState,
|
|
122
86
|
dateRange: value,
|
|
123
|
-
disabledBackward: disabledBackward(),
|
|
124
87
|
disabledDate: disabledMonth,
|
|
125
|
-
disabledForward: disabledForward(),
|
|
126
88
|
inSameMonth: inSameMonth,
|
|
127
89
|
index: index,
|
|
128
90
|
limitEndYear: limitEndYear,
|
|
@@ -3,7 +3,7 @@ import { FormControlBaseProps, PickerBaseProps } from '../@types/common';
|
|
|
3
3
|
import { PickerComponent, PickerToggleProps } from '../Picker';
|
|
4
4
|
import { DisabledDateFunction, RangeType, DateRange } from './types';
|
|
5
5
|
export interface DateRangePickerProps extends PickerBaseProps, FormControlBaseProps<DateRange | null>, Pick<PickerToggleProps, 'caretAs' | 'readOnly' | 'plaintext'> {
|
|
6
|
-
/**
|
|
6
|
+
/** Predefined date ranges */
|
|
7
7
|
ranges?: RangeType[];
|
|
8
8
|
/** Format date */
|
|
9
9
|
format?: string;
|
|
@@ -160,9 +160,10 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
160
160
|
* If params `value` is not passed, it defaults to [new Date(), addMonth(new Date(), 1)].
|
|
161
161
|
*/
|
|
162
162
|
|
|
163
|
-
var
|
|
163
|
+
var updateCalendarDateRange = (0, _react.useCallback)(function (value, calendarKey) {
|
|
164
164
|
setCalendarDate((0, _utils2.getCalendarDate)({
|
|
165
|
-
value: value
|
|
165
|
+
value: value,
|
|
166
|
+
calendarKey: calendarKey
|
|
166
167
|
}));
|
|
167
168
|
}, []); // if valueProp changed then update selectValue/hoverValue
|
|
168
169
|
|
|
@@ -337,10 +338,10 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
337
338
|
|
|
338
339
|
setHoverDateRange(nextSelectDates.length === 2 ? nextSelectDates : [nextSelectDates[0], nextSelectDates[0]]);
|
|
339
340
|
setSelectedDates(nextSelectDates);
|
|
340
|
-
|
|
341
|
+
updateCalendarDateRange(nextSelectDates);
|
|
341
342
|
onSelect === null || onSelect === void 0 ? void 0 : onSelect(date, event);
|
|
342
343
|
hasDoneSelect.current = !hasDoneSelect.current;
|
|
343
|
-
}, [getHoverRangeValue, handleValueUpdate, hoverDateRange, onSelect, oneTap, selectedDates,
|
|
344
|
+
}, [getHoverRangeValue, handleValueUpdate, hoverDateRange, onSelect, oneTap, selectedDates, updateCalendarDateRange]);
|
|
344
345
|
/**
|
|
345
346
|
* If `selectValue` changed, there will be the following effects.
|
|
346
347
|
* 1. Check if the selection is completed.
|
|
@@ -352,12 +353,12 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
352
353
|
var doneSelected = selectValueLength === 0 || selectValueLength === 2;
|
|
353
354
|
doneSelected && setHoverDateRange(null);
|
|
354
355
|
}, [selectedDates]);
|
|
355
|
-
var
|
|
356
|
+
var updateSingleCalendarDate = (0, _react.useCallback)(function (index, date) {
|
|
356
357
|
var nextCalendarDate = Array.from(calendarDate);
|
|
357
358
|
nextCalendarDate[index] = date;
|
|
358
|
-
|
|
359
|
-
}, [calendarDate,
|
|
360
|
-
var
|
|
359
|
+
updateCalendarDateRange(nextCalendarDate, index === 0 ? 'start' : 'end');
|
|
360
|
+
}, [calendarDate, updateCalendarDateRange]);
|
|
361
|
+
var updateSingleCalendarTime = (0, _react.useCallback)(function (index, date) {
|
|
361
362
|
setSelectedDates(function (prev) {
|
|
362
363
|
var next = [].concat(prev);
|
|
363
364
|
var clonedDate = new Date(date.valueOf()); // if next[index] is not empty, only update the time after aligning the year, month and day
|
|
@@ -369,8 +370,8 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
369
370
|
next[index] = clonedDate;
|
|
370
371
|
return next;
|
|
371
372
|
});
|
|
372
|
-
|
|
373
|
-
}, [
|
|
373
|
+
updateSingleCalendarDate(index, date);
|
|
374
|
+
}, [updateSingleCalendarDate]);
|
|
374
375
|
/**
|
|
375
376
|
* The callback triggered when PM/AM is switched.
|
|
376
377
|
*/
|
|
@@ -407,9 +408,9 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
407
408
|
onOk === null || onOk === void 0 ? void 0 : onOk(selectedDates, event);
|
|
408
409
|
}, [handleValueUpdate, onOk, selectedDates]);
|
|
409
410
|
var handleClean = (0, _react.useCallback)(function (event) {
|
|
410
|
-
|
|
411
|
+
updateCalendarDateRange(null);
|
|
411
412
|
handleValueUpdate(event, null);
|
|
412
|
-
}, [handleValueUpdate,
|
|
413
|
+
}, [handleValueUpdate, updateCalendarDateRange]);
|
|
413
414
|
/**
|
|
414
415
|
* Callback after the input box value is changed.
|
|
415
416
|
*/
|
|
@@ -444,9 +445,9 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
444
445
|
|
|
445
446
|
setHoverDateRange(selectValue);
|
|
446
447
|
setSelectedDates(selectValue);
|
|
447
|
-
|
|
448
|
+
updateCalendarDateRange(selectValue);
|
|
448
449
|
}, // eslint-disable-next-line react-hooks/exhaustive-deps
|
|
449
|
-
[character, rangeFormatStr,
|
|
450
|
+
[character, rangeFormatStr, updateCalendarDateRange]);
|
|
450
451
|
/**
|
|
451
452
|
* The callback after the enter key is triggered on the input
|
|
452
453
|
*/
|
|
@@ -472,8 +473,8 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
472
473
|
}
|
|
473
474
|
|
|
474
475
|
setSelectedDates(value !== null && value !== void 0 ? value : []);
|
|
475
|
-
|
|
476
|
-
}, [defaultCalendarValue,
|
|
476
|
+
updateCalendarDateRange(nextCalendarDate);
|
|
477
|
+
}, [defaultCalendarValue, updateCalendarDateRange, setSelectedDates, value]);
|
|
477
478
|
var handleEntered = (0, _react.useCallback)(function () {
|
|
478
479
|
onOpen === null || onOpen === void 0 ? void 0 : onOpen();
|
|
479
480
|
setPickerToggleActive(true);
|
|
@@ -548,7 +549,7 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
548
549
|
left: left,
|
|
549
550
|
top: top
|
|
550
551
|
});
|
|
551
|
-
var
|
|
552
|
+
var calendarProps = {
|
|
552
553
|
calendarDate: calendarDate,
|
|
553
554
|
disabledDate: handleDisabledDate,
|
|
554
555
|
format: formatStr,
|
|
@@ -556,12 +557,11 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
556
557
|
isoWeek: isoWeek,
|
|
557
558
|
limitEndYear: limitEndYear,
|
|
558
559
|
locale: locale,
|
|
559
|
-
showOneCalendar: showOneCalendar,
|
|
560
560
|
showWeekNumbers: showWeekNumbers,
|
|
561
561
|
value: selectedDates,
|
|
562
562
|
showMeridian: showMeridian,
|
|
563
|
-
onChangeCalendarDate:
|
|
564
|
-
onChangeCalendarTime:
|
|
563
|
+
onChangeCalendarDate: updateSingleCalendarDate,
|
|
564
|
+
onChangeCalendarTime: updateSingleCalendarTime,
|
|
565
565
|
onMouseMove: handleMouseMove,
|
|
566
566
|
onSelect: handleSelectDate,
|
|
567
567
|
onToggleMeridian: handleToggleMeridian,
|
|
@@ -582,9 +582,9 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
582
582
|
className: prefix("daterange-calendar-" + (showOneCalendar ? 'single' : 'group'))
|
|
583
583
|
}, /*#__PURE__*/_react.default.createElement(_Calendar2.default, (0, _extends2.default)({
|
|
584
584
|
index: 0
|
|
585
|
-
},
|
|
585
|
+
}, calendarProps)), !showOneCalendar && /*#__PURE__*/_react.default.createElement(_Calendar2.default, (0, _extends2.default)({
|
|
586
586
|
index: 1
|
|
587
|
-
},
|
|
587
|
+
}, calendarProps)))), /*#__PURE__*/_react.default.createElement(_Toolbar.default, {
|
|
588
588
|
locale: locale,
|
|
589
589
|
calendarDate: selectedDates,
|
|
590
590
|
disabledOkBtn: disabledOkButton,
|
|
@@ -624,7 +624,7 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
624
624
|
as: toggleAs,
|
|
625
625
|
ref: targetRef,
|
|
626
626
|
appearance: appearance,
|
|
627
|
-
|
|
627
|
+
editable: true,
|
|
628
628
|
inputMask: _utils.DateUtils.getDateMask(rangeFormatStr),
|
|
629
629
|
inputValue: value ? getDisplayString(value, true) : '',
|
|
630
630
|
inputPlaceholder: typeof placeholder === 'string' && placeholder ? placeholder : rangeFormatStr,
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { DateRange, RangeType } from './types';
|
|
2
2
|
export declare const setTimingMargin: (date: any, way?: string) => Date;
|
|
3
|
-
export declare function getCalendarDate({ value }: {
|
|
3
|
+
export declare function getCalendarDate({ value, calendarKey }: {
|
|
4
4
|
value: [] | [Date] | [Date, Date] | null;
|
|
5
|
+
calendarKey?: 'start' | 'end';
|
|
5
6
|
}): DateRange;
|
|
6
7
|
export declare const getDefaultRanges: () => RangeType[];
|
|
7
8
|
export declare const isSameRange: (source: DateRange | null, dest: DateRange | null, format: string) => boolean;
|
|
@@ -19,14 +19,23 @@ exports.setTimingMargin = setTimingMargin;
|
|
|
19
19
|
function getCalendarDate(_ref) {
|
|
20
20
|
var _value;
|
|
21
21
|
|
|
22
|
-
var value = _ref.value
|
|
22
|
+
var value = _ref.value,
|
|
23
|
+
_ref$calendarKey = _ref.calendarKey,
|
|
24
|
+
calendarKey = _ref$calendarKey === void 0 ? 'start' : _ref$calendarKey;
|
|
23
25
|
// Update calendarDate if the value is not null
|
|
24
26
|
value = (_value = value) !== null && _value !== void 0 ? _value : [];
|
|
25
27
|
|
|
26
28
|
if (value[0] && value[1]) {
|
|
27
|
-
var
|
|
29
|
+
var startMonth = _utils.DateUtils.getMonth(value[0]);
|
|
30
|
+
|
|
31
|
+
var endMonth = _utils.DateUtils.getMonth(value[1]);
|
|
32
|
+
|
|
33
|
+
if (calendarKey === 'start') {
|
|
34
|
+
return [value[0], startMonth >= endMonth ? _utils.DateUtils.addMonths(value[0], 1) : value[1]];
|
|
35
|
+
} else if (calendarKey === 'end') {
|
|
36
|
+
return [startMonth >= endMonth ? _utils.DateUtils.addMonths(value[1], -1) : value[0], value[1]];
|
|
37
|
+
} // If only the start date
|
|
28
38
|
|
|
29
|
-
return [value[0], sameMonth ? _utils.DateUtils.addMonths(value[1], 1) : value[1]]; // If only the start date
|
|
30
39
|
} else if (value[0]) {
|
|
31
40
|
return [value[0], _utils.DateUtils.addMonths(value[0], 1)];
|
|
32
41
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { InputPickerLocale } from '../locales';
|
|
3
|
-
import { PickerComponent } from '../Picker';
|
|
3
|
+
import { PickerComponent, PickerToggleProps } from '../Picker';
|
|
4
4
|
import { TagProps } from '../Tag';
|
|
5
5
|
import { ItemDataType, FormControlPickerProps } from '../@types/common';
|
|
6
6
|
import { SelectProps } from '../SelectPicker';
|
|
@@ -24,7 +24,7 @@ interface InputItemDataType extends ItemDataType {
|
|
|
24
24
|
create?: boolean;
|
|
25
25
|
}
|
|
26
26
|
export declare type ValueType = any;
|
|
27
|
-
export interface InputPickerProps<T = ValueType> extends FormControlPickerProps<T, InputPickerLocale, InputItemDataType>, SelectProps<T> {
|
|
27
|
+
export interface InputPickerProps<T = ValueType> extends FormControlPickerProps<T, InputPickerLocale, InputItemDataType>, SelectProps<T>, Pick<PickerToggleProps, 'caretAs'> {
|
|
28
28
|
tabIndex?: number;
|
|
29
29
|
/** Settings can create new options */
|
|
30
30
|
creatable?: boolean;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _react = _interopRequireDefault(require("react"));
|
|
6
|
+
|
|
7
|
+
var _InputPicker = _interopRequireDefault(require("../InputPicker"));
|
|
8
|
+
|
|
9
|
+
/*#__PURE__*/
|
|
10
|
+
_react.default.createElement(_InputPicker.default, {
|
|
11
|
+
caretAs: function caretAs() {
|
|
12
|
+
return /*#__PURE__*/_react.default.createElement("div", null);
|
|
13
|
+
},
|
|
14
|
+
data: []
|
|
15
|
+
});
|
|
@@ -18,6 +18,8 @@ var _slice = _interopRequireDefault(require("lodash/slice"));
|
|
|
18
18
|
|
|
19
19
|
var _treeUtils = require("../utils/treeUtils");
|
|
20
20
|
|
|
21
|
+
var _attachParent = require("../utils/attachParent");
|
|
22
|
+
|
|
21
23
|
/**
|
|
22
24
|
* Get all parents of a node
|
|
23
25
|
* @param node
|
|
@@ -196,8 +198,7 @@ function useFlattenData(data, itemKeys) {
|
|
|
196
198
|
|
|
197
199
|
var addFlattenData = (0, _react.useCallback)(function (children, parent) {
|
|
198
200
|
var nodes = children.map(function (child) {
|
|
199
|
-
child
|
|
200
|
-
return child;
|
|
201
|
+
return (0, _attachParent.attachParent)(child, parent);
|
|
201
202
|
});
|
|
202
203
|
parent[childrenKey] = nodes;
|
|
203
204
|
setFlattenData([].concat(flattenData, nodes));
|