rsuite 5.0.0-beta.8 → 5.0.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/README.md +4 -4
- package/Sidenav/styles/index.less +99 -37
- package/cjs/@types/common.d.ts +2 -0
- package/cjs/DateRangePicker/Calendar.d.ts +2 -1
- package/cjs/DateRangePicker/Calendar.js +4 -3
- package/cjs/DateRangePicker/DateRangePicker.d.ts +1 -1
- package/cjs/DateRangePicker/DateRangePicker.js +58 -43
- package/cjs/DateRangePicker/utils.d.ts +1 -1
- package/cjs/DateRangePicker/utils.js +9 -5
- package/cjs/Dropdown/Dropdown.js +31 -18
- package/cjs/Dropdown/DropdownContext.d.ts +4 -1
- package/cjs/Dropdown/DropdownItem.js +31 -4
- package/cjs/Dropdown/DropdownState.d.ts +37 -0
- package/cjs/Dropdown/DropdownState.js +66 -0
- package/cjs/SelectPicker/SelectPicker.d.ts +1 -3
- package/cjs/Sidenav/SidenavDropdown.js +6 -1
- package/cjs/Sidenav/SidenavItem.js +4 -12
- package/cjs/utils/dateUtils.d.ts +1 -0
- package/cjs/utils/dateUtils.js +5 -1
- package/cjs/utils/useInternalId.d.ts +4 -0
- package/cjs/utils/useInternalId.js +24 -0
- package/cjs/utils/useUniqueId.d.ts +1 -1
- package/cjs/utils/useUniqueId.js +1 -1
- package/dist/rsuite-rtl.css +142 -72
- package/dist/rsuite-rtl.min.css +1 -1
- package/dist/rsuite-rtl.min.css.map +1 -1
- package/dist/rsuite.css +142 -72
- package/dist/rsuite.js +54 -10
- package/dist/rsuite.js.map +1 -1
- package/dist/rsuite.min.css +1 -1
- package/dist/rsuite.min.css.map +1 -1
- package/dist/rsuite.min.js +1 -1
- package/dist/rsuite.min.js.map +1 -1
- package/esm/@types/common.d.ts +2 -0
- package/esm/DateRangePicker/Calendar.d.ts +2 -1
- package/esm/DateRangePicker/Calendar.js +4 -3
- package/esm/DateRangePicker/DateRangePicker.d.ts +1 -1
- package/esm/DateRangePicker/DateRangePicker.js +27 -12
- package/esm/DateRangePicker/utils.d.ts +1 -1
- package/esm/DateRangePicker/utils.js +7 -3
- package/esm/Dropdown/Dropdown.js +30 -19
- package/esm/Dropdown/DropdownContext.d.ts +4 -1
- package/esm/Dropdown/DropdownItem.js +30 -6
- package/esm/Dropdown/DropdownState.d.ts +37 -0
- package/esm/Dropdown/DropdownState.js +55 -0
- package/esm/SelectPicker/SelectPicker.d.ts +1 -3
- package/esm/Sidenav/SidenavDropdown.js +5 -1
- package/esm/Sidenav/SidenavItem.js +4 -10
- package/esm/utils/dateUtils.d.ts +1 -0
- package/esm/utils/dateUtils.js +1 -0
- package/esm/utils/useInternalId.d.ts +4 -0
- package/esm/utils/useInternalId.js +16 -0
- package/esm/utils/useUniqueId.d.ts +1 -1
- package/esm/utils/useUniqueId.js +1 -1
- package/package.json +2 -2
- package/styles/color-modes/dark.less +16 -0
- package/styles/color-modes/high-contrast.less +17 -0
- package/styles/color-modes/light.less +16 -0
package/README.md
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
|
|
2
1
|
<p align="center">
|
|
3
2
|
<a href="https://rsuitejs.com" target="_blank" rel="noopener noreferrer">
|
|
4
3
|
<img src="https://user-images.githubusercontent.com/1203827/65102389-7be3f100-d9fd-11e9-859e-ae9617ed2f91.png" alt="React Suite logo">
|
|
@@ -47,13 +46,13 @@ React Suite supports server side rendering. Support [Next.js](https://github.com
|
|
|
47
46
|
React Suite is available as an [npm package][npm-home].
|
|
48
47
|
|
|
49
48
|
```bash
|
|
50
|
-
npm i rsuite
|
|
49
|
+
npm i rsuite --save
|
|
51
50
|
```
|
|
52
51
|
|
|
53
52
|
or if you prefer Yarn
|
|
54
53
|
|
|
55
54
|
```bash
|
|
56
|
-
yarn add rsuite
|
|
55
|
+
yarn add rsuite
|
|
57
56
|
```
|
|
58
57
|
|
|
59
58
|
## Usage
|
|
@@ -79,8 +78,9 @@ You can go through [full documentation][rsuite-doc-guide] or start with followin
|
|
|
79
78
|
- [Right-to-left][rsuite-doc-guide-rtl]
|
|
80
79
|
- [Components][rsuite-components-overview]
|
|
81
80
|
|
|
82
|
-
**
|
|
81
|
+
**Historic version**
|
|
83
82
|
|
|
83
|
+
- [Version 4.\*](https://v3.rsuitejs.com/)
|
|
84
84
|
- [Version 3.\*](https://v3.rsuitejs.com/)
|
|
85
85
|
- [Version 2.\*](https://v2.rsuitejs.com/)
|
|
86
86
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
@import '../../styles/common';
|
|
2
|
+
@import '../../styles//mixins/menu';
|
|
2
3
|
@import '../../Ripple/styles/mixins';
|
|
3
|
-
@import '../../Navbar/styles/index';
|
|
4
4
|
@import 'mixin';
|
|
5
5
|
|
|
6
6
|
//
|
|
@@ -20,11 +20,16 @@
|
|
|
20
20
|
|
|
21
21
|
> .rs-sidenav-item,
|
|
22
22
|
> .rs-dropdown .rs-dropdown-toggle,
|
|
23
|
-
.rs-dropdown-item
|
|
23
|
+
.rs-dropdown-item,
|
|
24
|
+
.rs-dropdown-item-toggle {
|
|
24
25
|
padding: @sidenav-padding-vertical @sidenav-padding-horizontal;
|
|
25
26
|
transition: @nav-item-transition;
|
|
26
27
|
border-radius: 0;
|
|
27
28
|
color: inherit;
|
|
29
|
+
|
|
30
|
+
.high-contrast-mode({
|
|
31
|
+
transition: none;
|
|
32
|
+
});
|
|
28
33
|
}
|
|
29
34
|
|
|
30
35
|
> .rs-sidenav-item,
|
|
@@ -396,7 +401,33 @@
|
|
|
396
401
|
|
|
397
402
|
// Default Sidenav
|
|
398
403
|
.rs-sidenav-default {
|
|
399
|
-
|
|
404
|
+
background-color: var(--rs-sidenav-default-bg);
|
|
405
|
+
color: var(--rs-sidenav-default-text);
|
|
406
|
+
|
|
407
|
+
.rs-sidenav-item,
|
|
408
|
+
.rs-dropdown-toggle {
|
|
409
|
+
background-color: var(--rs-sidenav-default-bg);
|
|
410
|
+
}
|
|
411
|
+
|
|
412
|
+
.rs-sidenav-item:hover,
|
|
413
|
+
.rs-dropdown .rs-dropdown-toggle:hover,
|
|
414
|
+
.rs-dropdown.rs-dropdown-open .rs-dropdown-toggle {
|
|
415
|
+
background-color: var(--rs-sidenav-default-hover-bg);
|
|
416
|
+
color: var(--rs-sidenav-default-hover-text);
|
|
417
|
+
}
|
|
418
|
+
|
|
419
|
+
.rs-sidenav-item.rs-sidenav-item-active,
|
|
420
|
+
.rs-dropdown-item.rs-dropdown-item-active,
|
|
421
|
+
.rs-dropdown.rs-dropdown-selected-within .rs-dropdown-toggle-icon {
|
|
422
|
+
color: var(--rs-sidenav-default-selected-text);
|
|
423
|
+
}
|
|
424
|
+
|
|
425
|
+
// Collapsed
|
|
426
|
+
&.rs-sidenav-collapse-out {
|
|
427
|
+
.rs-dropdown-item.rs-dropdown-item-active {
|
|
428
|
+
.menuitem-active();
|
|
429
|
+
}
|
|
430
|
+
}
|
|
400
431
|
}
|
|
401
432
|
|
|
402
433
|
.rs-sidenav-default.rs-sidenav-collapse-in,
|
|
@@ -404,20 +435,20 @@
|
|
|
404
435
|
.rs-dropdown-item:not(.rs-dropdown-item-submenu),
|
|
405
436
|
.rs-dropdown-item > .rs-dropdown-menu-toggle,
|
|
406
437
|
.rs-dropdown-item > .rs-dropdown-item-toggle {
|
|
407
|
-
color: var(--rs-
|
|
438
|
+
color: var(--rs-sidenav-default-text);
|
|
408
439
|
|
|
409
440
|
&:hover,
|
|
410
441
|
&:focus,
|
|
411
442
|
&.rs-dropdown-item-focus {
|
|
412
|
-
background-color: var(--rs-
|
|
413
|
-
color: var(--rs-
|
|
443
|
+
background-color: var(--rs-sidenav-default-hover-bg);
|
|
444
|
+
color: var(--rs-sidenav-default-hover-text);
|
|
414
445
|
}
|
|
415
446
|
}
|
|
416
447
|
|
|
417
448
|
// Reset active dropdown-item style
|
|
418
449
|
.rs-sidenav-item.rs-sidenav-item-active,
|
|
419
450
|
.rs-dropdown-menu > .rs-dropdown-item.rs-dropdown-item-active {
|
|
420
|
-
color: var(--rs-
|
|
451
|
+
color: var(--rs-sidenav-default-selected-text);
|
|
421
452
|
|
|
422
453
|
.high-contrast-mode({
|
|
423
454
|
text-decoration: underline;
|
|
@@ -429,33 +460,51 @@
|
|
|
429
460
|
.rs-sidenav-default.rs-sidenav-collapsing,
|
|
430
461
|
.rs-sidenav-default.rs-sidenav-collapse-out {
|
|
431
462
|
// Set active Level1 style
|
|
432
|
-
.rs-dropdown
|
|
433
|
-
|
|
434
|
-
color: var(--rs-navbar-default-selected-text);
|
|
435
|
-
}
|
|
463
|
+
.rs-dropdown.rs-dropdown-selected-within .rs-dropdown-toggle-icon {
|
|
464
|
+
color: var(--rs-sidenav-default-selected-text);
|
|
436
465
|
}
|
|
437
466
|
}
|
|
438
467
|
|
|
439
468
|
// Inverse Sidenav
|
|
440
469
|
.rs-sidenav-inverse {
|
|
441
|
-
|
|
470
|
+
background-color: var(--rs-sidenav-inverse-bg);
|
|
471
|
+
color: var(--rs-sidenav-inverse-text);
|
|
472
|
+
|
|
473
|
+
.rs-sidenav-item,
|
|
474
|
+
.rs-dropdown .rs-dropdown-toggle,
|
|
475
|
+
.rs-dropdown-item-submenu:hover > .rs-dropdown-item-toggle {
|
|
476
|
+
background-color: var(--rs-sidenav-inverse-bg);
|
|
477
|
+
|
|
478
|
+
&:hover,
|
|
479
|
+
&:focus {
|
|
480
|
+
background-color: var(--rs-sidenav-inverse-hover-bg);
|
|
481
|
+
}
|
|
482
|
+
}
|
|
483
|
+
|
|
484
|
+
// Active
|
|
485
|
+
.rs-sidenav-item.rs-sidenav-item-active,
|
|
486
|
+
.rs-dropdown.rs-dropdown-selected-within .rs-dropdown-toggle {
|
|
487
|
+
.high-contrast-mode({
|
|
488
|
+
color: var(--rs-sidenav-inverse-selected-text);
|
|
489
|
+
});
|
|
490
|
+
}
|
|
442
491
|
|
|
443
492
|
// Active
|
|
444
|
-
.rs-dropdown
|
|
493
|
+
.rs-dropdown.rs-dropdown-selected-within .rs-dropdown-toggle,
|
|
445
494
|
.rs-sidenav-item,
|
|
446
495
|
.rs-dropdown .rs-dropdown-toggle {
|
|
447
|
-
color: var(--rs-
|
|
496
|
+
color: var(--rs-sidenav-inverse-text);
|
|
448
497
|
|
|
449
498
|
&:hover,
|
|
450
499
|
&:focus,
|
|
451
500
|
&.rs-dropdown-item-focus {
|
|
452
|
-
color: var(--rs-
|
|
501
|
+
color: var(--rs-sidenav-inverse-text);
|
|
453
502
|
}
|
|
454
503
|
}
|
|
455
504
|
|
|
456
|
-
.rs-
|
|
457
|
-
.rs-
|
|
458
|
-
background-color: var(--rs-
|
|
505
|
+
.rs-sidenav-item.rs-sidenav-item-active,
|
|
506
|
+
.rs-dropdown-item.rs-dropdown-item-active {
|
|
507
|
+
background-color: var(--rs-sidenav-inverse-selected-bg);
|
|
459
508
|
}
|
|
460
509
|
}
|
|
461
510
|
|
|
@@ -464,32 +513,45 @@
|
|
|
464
513
|
.rs-dropdown-item:not(.rs-dropdown-item-submenu),
|
|
465
514
|
.rs-dropdown-item > .rs-dropdown-menu-toggle,
|
|
466
515
|
.rs-dropdown-item > .rs-dropdown-item-toggle {
|
|
467
|
-
color: var(--rs-
|
|
516
|
+
color: var(--rs-sidenav-inverse-text);
|
|
468
517
|
|
|
469
518
|
&:hover,
|
|
470
519
|
&:focus,
|
|
471
520
|
&.rs-dropdown-item-focus {
|
|
472
|
-
background-color: var(--rs-
|
|
473
|
-
color: var(--rs-
|
|
521
|
+
background-color: var(--rs-sidenav-inverse-hover-bg);
|
|
522
|
+
color: var(--rs-sidenav-inverse-text);
|
|
474
523
|
}
|
|
475
524
|
}
|
|
476
|
-
|
|
477
|
-
// Reset active dropdown-item style
|
|
478
|
-
.rs-dropdown-menu > .rs-dropdown-item.rs-dropdown-item-active:not(.rs-dropdown-item-submenu) {
|
|
479
|
-
background-color: var(--rs-navbar-inverse-hover-bg);
|
|
480
|
-
}
|
|
481
525
|
}
|
|
482
526
|
|
|
483
527
|
// Subtle Sidenav
|
|
484
528
|
.rs-sidenav-subtle {
|
|
485
|
-
|
|
529
|
+
background-color: transparent;
|
|
530
|
+
color: var(--rs-sidenav-subtle-text);
|
|
531
|
+
|
|
532
|
+
.rs-sidenav-item,
|
|
533
|
+
.rs-dropdown .rs-dropdown-toggle {
|
|
534
|
+
background-color: transparent;
|
|
535
|
+
|
|
536
|
+
&:hover,
|
|
537
|
+
&:focus {
|
|
538
|
+
background-color: transparent;
|
|
539
|
+
color: var(--rs-sidenav-subtle-hover-text);
|
|
540
|
+
}
|
|
541
|
+
}
|
|
542
|
+
|
|
543
|
+
// Active
|
|
544
|
+
.rs-sidenav-item.rs-sidenav-item-active,
|
|
545
|
+
.rs-dropdown.rs-dropdown-selected-within .rs-dropdown-toggle {
|
|
546
|
+
color: var(--rs-sidenav-subtle-selected-text);
|
|
547
|
+
}
|
|
486
548
|
|
|
487
549
|
.rs-dropdown-open > .rs-dropdown-toggle.btn {
|
|
488
550
|
background-color: transparent;
|
|
489
551
|
|
|
490
552
|
&:hover,
|
|
491
553
|
&:focus {
|
|
492
|
-
background-color: var(--rs-
|
|
554
|
+
background-color: var(--rs-sidenav-subtle-hover-bg);
|
|
493
555
|
}
|
|
494
556
|
}
|
|
495
557
|
}
|
|
@@ -499,18 +561,18 @@
|
|
|
499
561
|
.rs-dropdown-item:not(.rs-dropdown-item-submenu),
|
|
500
562
|
.rs-dropdown-item > .rs-dropdown-menu-toggle,
|
|
501
563
|
.rs-dropdown-item > .rs-dropdown-item-toggle {
|
|
502
|
-
color: var(--rs-
|
|
564
|
+
color: var(--rs-sidenav-subtle-text);
|
|
503
565
|
|
|
504
566
|
&:hover,
|
|
505
567
|
&:focus {
|
|
506
|
-
background-color: var(--rs-
|
|
507
|
-
color: var(--rs-
|
|
568
|
+
background-color: var(--rs-sidenav-subtle-hover-bg);
|
|
569
|
+
color: var(--rs-sidenav-subtle-hover-text);
|
|
508
570
|
}
|
|
509
571
|
}
|
|
510
572
|
|
|
511
573
|
// Reset active dropdown-item style
|
|
512
574
|
.rs-dropdown-menu > .rs-dropdown-item.rs-dropdown-item-active {
|
|
513
|
-
color: var(--rs-
|
|
575
|
+
color: var(--rs-sidenav-subtle-selected-text);
|
|
514
576
|
}
|
|
515
577
|
}
|
|
516
578
|
|
|
@@ -518,15 +580,15 @@
|
|
|
518
580
|
.rs-sidenav-subtle.rs-sidenav-collapsing,
|
|
519
581
|
.rs-sidenav-subtle.rs-sidenav-collapse-out {
|
|
520
582
|
// Set active Level1 style
|
|
521
|
-
.rs-dropdown
|
|
522
|
-
color: var(--rs-
|
|
583
|
+
.rs-dropdown.rs-dropdown-selected-within .rs-dropdown-toggle {
|
|
584
|
+
color: var(--rs-sidenav-subtle-text);
|
|
523
585
|
|
|
524
586
|
&:hover {
|
|
525
|
-
background-color: var(--rs-
|
|
587
|
+
background-color: var(--rs-sidenav-subtle-hover-bg);
|
|
526
588
|
}
|
|
527
589
|
|
|
528
|
-
|
|
529
|
-
color: var(--rs-
|
|
590
|
+
&-icon {
|
|
591
|
+
color: var(--rs-sidenav-subtle-selected-text);
|
|
530
592
|
}
|
|
531
593
|
}
|
|
532
594
|
}
|
package/cjs/@types/common.d.ts
CHANGED
|
@@ -72,6 +72,8 @@ export interface PickerBaseProps<LocaleType = any> extends WithAsProps, Animatio
|
|
|
72
72
|
defaultOpen?: boolean;
|
|
73
73
|
/** A picker that can clear values */
|
|
74
74
|
cleanable?: boolean;
|
|
75
|
+
/** A picker can have different sizes */
|
|
76
|
+
size?: TypeAttributes.Size;
|
|
75
77
|
/** Called when Modal is displayed */
|
|
76
78
|
onOpen?: () => void;
|
|
77
79
|
/** Called when Modal is closed */
|
|
@@ -13,7 +13,8 @@ export interface CalendarProps extends WithAsProps, Omit<CalendarCoreProps, Omit
|
|
|
13
13
|
isoWeek?: boolean;
|
|
14
14
|
limitEndYear?: number;
|
|
15
15
|
locale?: DatePickerLocale;
|
|
16
|
-
onChangeCalendarDate?: (index: number,
|
|
16
|
+
onChangeCalendarDate?: (index: number, date: Date) => void;
|
|
17
|
+
onChangeCalendarTime?: (index: number, date: Date) => void;
|
|
17
18
|
onMouseMove?: (date: Date) => void;
|
|
18
19
|
onSelect?: (date: Date, event?: React.SyntheticEvent<any>) => void;
|
|
19
20
|
showOneCalendar?: boolean;
|
|
@@ -36,9 +36,10 @@ var Calendar = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
36
36
|
index = props.index,
|
|
37
37
|
limitEndYear = props.limitEndYear,
|
|
38
38
|
onChangeCalendarDate = props.onChangeCalendarDate,
|
|
39
|
+
onChangeCalendarTime = props.onChangeCalendarTime,
|
|
39
40
|
showOneCalendar = props.showOneCalendar,
|
|
40
41
|
value = props.value,
|
|
41
|
-
rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "calendarDate", "disabledDate", "index", "limitEndYear", "onChangeCalendarDate", "showOneCalendar", "value"]);
|
|
42
|
+
rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "calendarDate", "disabledDate", "index", "limitEndYear", "onChangeCalendarDate", "onChangeCalendarTime", "showOneCalendar", "value"]);
|
|
42
43
|
|
|
43
44
|
var _useState = (0, _react.useState)(),
|
|
44
45
|
calendarState = _useState[0],
|
|
@@ -55,8 +56,8 @@ var Calendar = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
55
56
|
setCalendarState(undefined);
|
|
56
57
|
}, [index, onChangeCalendarDate]);
|
|
57
58
|
var handleChangePageTime = (0, _react.useCallback)(function (nextPageDate) {
|
|
58
|
-
|
|
59
|
-
}, [index,
|
|
59
|
+
onChangeCalendarTime(index, nextPageDate);
|
|
60
|
+
}, [index, onChangeCalendarTime]);
|
|
60
61
|
var toggleMonthDropdown = (0, _react.useCallback)(function () {
|
|
61
62
|
setCalendarState(calendarState === _Calendar.CalendarState.DROP_MONTH ? undefined : _Calendar.CalendarState.DROP_MONTH);
|
|
62
63
|
}, [calendarState]);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { PickerComponent } from '../Picker';
|
|
3
2
|
import { FormControlBaseProps, PickerBaseProps } from '../@types/common';
|
|
3
|
+
import { PickerComponent } from '../Picker';
|
|
4
4
|
import { DisabledDateFunction, RangeType, ValueType } from './types';
|
|
5
5
|
export interface DateRangePickerProps extends PickerBaseProps, FormControlBaseProps<ValueType> {
|
|
6
6
|
/** Configure shortcut options */
|
|
@@ -11,35 +11,35 @@ var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runt
|
|
|
11
11
|
|
|
12
12
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
13
13
|
|
|
14
|
-
var
|
|
14
|
+
var _Calendar = _interopRequireDefault(require("@rsuite/icons/legacy/Calendar"));
|
|
15
15
|
|
|
16
|
-
var
|
|
16
|
+
var _isUndefined = _interopRequireDefault(require("lodash/isUndefined"));
|
|
17
17
|
|
|
18
18
|
var _omit = _interopRequireDefault(require("lodash/omit"));
|
|
19
19
|
|
|
20
|
-
var
|
|
20
|
+
var _partial = _interopRequireDefault(require("lodash/partial"));
|
|
21
21
|
|
|
22
|
-
var
|
|
22
|
+
var _pick = _interopRequireDefault(require("lodash/pick"));
|
|
23
23
|
|
|
24
|
-
var
|
|
24
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
25
25
|
|
|
26
|
-
var
|
|
26
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
27
27
|
|
|
28
28
|
var _CustomProvider = require("../CustomProvider");
|
|
29
29
|
|
|
30
30
|
var _Toolbar = _interopRequireDefault(require("../DatePicker/Toolbar"));
|
|
31
31
|
|
|
32
|
-
var
|
|
32
|
+
var _Picker = require("../Picker");
|
|
33
33
|
|
|
34
|
-
var _utils = require("
|
|
34
|
+
var _utils = require("../utils");
|
|
35
35
|
|
|
36
|
-
var
|
|
36
|
+
var _dateUtils = require("../utils/dateUtils");
|
|
37
37
|
|
|
38
|
-
var
|
|
38
|
+
var _Calendar2 = _interopRequireDefault(require("./Calendar"));
|
|
39
39
|
|
|
40
|
-
var
|
|
40
|
+
var disabledDateUtils = _interopRequireWildcard(require("./disabledDateUtils"));
|
|
41
41
|
|
|
42
|
-
var
|
|
42
|
+
var _utils2 = require("./utils");
|
|
43
43
|
|
|
44
44
|
var defaultProps = (0, _extends2.default)({}, _Picker.pickerDefaultProps, {
|
|
45
45
|
as: 'div',
|
|
@@ -94,17 +94,17 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
94
94
|
onSelect = props.onSelect,
|
|
95
95
|
rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "classPrefix", "className", "cleanable", "character", "defaultCalendarValue", "defaultValue", "disabled", "disabledDate", "format", "hoverRange", "isoWeek", "limitEndYear", "locale", "menuClassName", "menuStyle", "oneTap", "placeholder", "placement", "ranges", "renderValue", "showOneCalendar", "showWeekNumbers", "style", "toggleAs", "value", "onChange", "onClean", "onClose", "onEnter", "onEntered", "onExited", "onOk", "onOpen", "onSelect"]);
|
|
96
96
|
|
|
97
|
-
var _useClassNames = (0,
|
|
97
|
+
var _useClassNames = (0, _utils.useClassNames)(classPrefix),
|
|
98
98
|
merge = _useClassNames.merge,
|
|
99
99
|
prefix = _useClassNames.prefix;
|
|
100
100
|
|
|
101
|
-
var _useCustom = (0,
|
|
101
|
+
var _useCustom = (0, _utils.useCustom)('DateRangePicker', overrideLocale),
|
|
102
102
|
locale = _useCustom.locale,
|
|
103
103
|
formatDate = _useCustom.formatDate;
|
|
104
104
|
|
|
105
105
|
var rangeFormatStr = "" + formatStr + character + formatStr;
|
|
106
106
|
|
|
107
|
-
var _useControlled = (0,
|
|
107
|
+
var _useControlled = (0, _utils.useControlled)(valueProp, defaultValue !== null && defaultValue !== void 0 ? defaultValue : []),
|
|
108
108
|
value = _useControlled[0],
|
|
109
109
|
setValue = _useControlled[1];
|
|
110
110
|
/**
|
|
@@ -135,7 +135,7 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
135
135
|
setHoverValue = _useState2[1]; // The displayed calendar panel is rendered based on this value.
|
|
136
136
|
|
|
137
137
|
|
|
138
|
-
var _useState3 = (0, _react.useState)((0,
|
|
138
|
+
var _useState3 = (0, _react.useState)((0, _utils2.getCalendarDate)({
|
|
139
139
|
value: valueProp !== null && valueProp !== void 0 ? valueProp : defaultCalendarValue
|
|
140
140
|
})),
|
|
141
141
|
calendarDate = _useState3[0],
|
|
@@ -158,7 +158,7 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
158
158
|
*/
|
|
159
159
|
|
|
160
160
|
var updateCalendarDate = (0, _react.useCallback)(function (value) {
|
|
161
|
-
setCalendarDate((0,
|
|
161
|
+
setCalendarDate((0, _utils2.getCalendarDate)({
|
|
162
162
|
value: value
|
|
163
163
|
}));
|
|
164
164
|
}, []); // if valueProp changed then update selectValue/hoverValue
|
|
@@ -227,11 +227,11 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
227
227
|
var hoverRangeFunc = hoverRange;
|
|
228
228
|
|
|
229
229
|
if (hoverRange === 'week') {
|
|
230
|
-
hoverRangeFunc = (0, _partial.default)(
|
|
230
|
+
hoverRangeFunc = (0, _partial.default)(_utils2.getWeekHoverRange, isoWeek);
|
|
231
231
|
}
|
|
232
232
|
|
|
233
233
|
if (hoverRangeFunc === 'month') {
|
|
234
|
-
hoverRangeFunc =
|
|
234
|
+
hoverRangeFunc = _utils2.getMonthHoverRange;
|
|
235
235
|
}
|
|
236
236
|
|
|
237
237
|
if (typeof hoverRangeFunc !== 'function') {
|
|
@@ -245,7 +245,7 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
245
245
|
return [];
|
|
246
246
|
}
|
|
247
247
|
|
|
248
|
-
if (
|
|
248
|
+
if (_utils.DateUtils.isAfter(hoverValues[0], hoverValues[1])) {
|
|
249
249
|
hoverValues.reverse();
|
|
250
250
|
}
|
|
251
251
|
|
|
@@ -259,7 +259,7 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
259
259
|
var nextValue = !(0, _isUndefined.default)(nextSelectValue) ? nextSelectValue : selectValue;
|
|
260
260
|
setSelectValue(nextValue || []);
|
|
261
261
|
|
|
262
|
-
if (!(0,
|
|
262
|
+
if (!(0, _utils2.isSameRange)(nextValue, value, formatStr)) {
|
|
263
263
|
setValue(nextValue);
|
|
264
264
|
onChange === null || onChange === void 0 ? void 0 : onChange(nextValue, event);
|
|
265
265
|
} // `closeOverlay` default value is `true`
|
|
@@ -268,7 +268,7 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
268
268
|
if (closeOverlay !== false) {
|
|
269
269
|
handleCloseDropdown();
|
|
270
270
|
}
|
|
271
|
-
}, [handleCloseDropdown, onChange, selectValue,
|
|
271
|
+
}, [formatStr, handleCloseDropdown, onChange, selectValue, setValue, value]);
|
|
272
272
|
/**
|
|
273
273
|
* Select the date range. If oneTap is not set, you need to click twice to select the start time and end time.
|
|
274
274
|
* The MouseMove event is called between the first click and the second click to update the selection state.
|
|
@@ -282,7 +282,7 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
282
282
|
if (hoverRange) {
|
|
283
283
|
var nextHoverValue = [selectRangeValueRef.current[0], hoverRangeValue[1]];
|
|
284
284
|
|
|
285
|
-
if (
|
|
285
|
+
if (_utils.DateUtils.isBefore(hoverRangeValue[0], selectRangeValueRef.current[0])) {
|
|
286
286
|
nextHoverValue[0] = hoverRangeValue[0];
|
|
287
287
|
nextHoverValue[1] = selectRangeValueRef.current[1];
|
|
288
288
|
}
|
|
@@ -304,7 +304,7 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
304
304
|
var noHoverRangeValid = hoverRangeValue.length !== 2; // in `oneTap` mode
|
|
305
305
|
|
|
306
306
|
if (hasDoneSelect.current && oneTap) {
|
|
307
|
-
handleValueUpdate(event, noHoverRangeValid ? [(0,
|
|
307
|
+
handleValueUpdate(event, noHoverRangeValid ? [(0, _utils2.setTimingMargin)(date), (0, _utils2.setTimingMargin)(date, 'right')] : hoverRangeValue);
|
|
308
308
|
hasDoneSelect.current = false;
|
|
309
309
|
return;
|
|
310
310
|
} // no preset hover range can use
|
|
@@ -329,7 +329,7 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
329
329
|
} // If user have completed the selection, then sort
|
|
330
330
|
|
|
331
331
|
|
|
332
|
-
if (nextSelectValue.length === 2 &&
|
|
332
|
+
if (nextSelectValue.length === 2 && _utils.DateUtils.isAfter(nextSelectValue[0], nextSelectValue[1])) {
|
|
333
333
|
nextSelectValue.reverse();
|
|
334
334
|
}
|
|
335
335
|
|
|
@@ -357,6 +357,20 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
357
357
|
nextCalendarDate[index] = date;
|
|
358
358
|
updateCalendarDate(nextCalendarDate);
|
|
359
359
|
}, [calendarDate, updateCalendarDate]);
|
|
360
|
+
var handleChangeCalendarTime = (0, _react.useCallback)(function (index, date) {
|
|
361
|
+
setSelectValue(function (prev) {
|
|
362
|
+
var next = [].concat(prev);
|
|
363
|
+
var clonedDate = new Date(date.valueOf()); // if next[index] is not empty, only update the time after aligning the year, month and day
|
|
364
|
+
|
|
365
|
+
if (next[index]) {
|
|
366
|
+
clonedDate.setFullYear(next[index].getFullYear(), next[index].getMonth(), next[index].getDate());
|
|
367
|
+
}
|
|
368
|
+
|
|
369
|
+
next[index] = clonedDate;
|
|
370
|
+
return next;
|
|
371
|
+
});
|
|
372
|
+
handleChangeCalendarDate(index, date);
|
|
373
|
+
}, [handleChangeCalendarDate]);
|
|
360
374
|
/**
|
|
361
375
|
* Toolbar operation callback function
|
|
362
376
|
*/
|
|
@@ -381,7 +395,7 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
381
395
|
var rangeValue = value.split(character); // isMatch('01/11/2020', 'MM/dd/yyyy') ==> true
|
|
382
396
|
// isMatch('2020-11-01', 'MM/dd/yyyy') ==> false
|
|
383
397
|
|
|
384
|
-
if (!
|
|
398
|
+
if (!_utils.DateUtils.isMatch(rangeValue[0], formatStr) || !_utils.DateUtils.isMatch(rangeValue[1], formatStr)) {
|
|
385
399
|
setInputState('Error');
|
|
386
400
|
return;
|
|
387
401
|
}
|
|
@@ -390,12 +404,12 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
390
404
|
var endDate = new Date(rangeValue[1]);
|
|
391
405
|
var selectValue = [startDate, endDate];
|
|
392
406
|
|
|
393
|
-
if (!
|
|
407
|
+
if (!_utils.DateUtils.isValid(startDate) || !_utils.DateUtils.isValid(endDate)) {
|
|
394
408
|
setInputState('Error');
|
|
395
409
|
return;
|
|
396
410
|
}
|
|
397
411
|
|
|
398
|
-
if (disabledDate(startDate, selectValue, true,
|
|
412
|
+
if (disabledDate(startDate, selectValue, true, _utils.DATERANGE_DISABLED_TARGET.CALENDAR)) {
|
|
399
413
|
setInputState('Error');
|
|
400
414
|
return;
|
|
401
415
|
}
|
|
@@ -424,7 +438,7 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
424
438
|
endData = value[1];
|
|
425
439
|
nextCalendarDate = [_startDate, (0, _dateUtils.isSameMonth)(_startDate, endData) ? (0, _dateUtils.addMonths)(endData, 1) : endData];
|
|
426
440
|
} else {
|
|
427
|
-
nextCalendarDate = (0,
|
|
441
|
+
nextCalendarDate = (0, _utils2.getCalendarDate)({
|
|
428
442
|
value: defaultCalendarValue
|
|
429
443
|
});
|
|
430
444
|
}
|
|
@@ -450,12 +464,12 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
450
464
|
var nextSelectValue = [selectStartDate, selectEndDate]; // If the date is between the start and the end
|
|
451
465
|
// the button is disabled
|
|
452
466
|
|
|
453
|
-
while (
|
|
467
|
+
while (_utils.DateUtils.isBefore(start, end) || _utils.DateUtils.isSameDay(start, end)) {
|
|
454
468
|
if (disabledDate(start, nextSelectValue, hasDoneSelect.current, type)) {
|
|
455
469
|
return true;
|
|
456
470
|
}
|
|
457
471
|
|
|
458
|
-
start =
|
|
472
|
+
start = _utils.DateUtils.addDays(start, 1);
|
|
459
473
|
}
|
|
460
474
|
|
|
461
475
|
return false;
|
|
@@ -468,7 +482,7 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
468
482
|
return true;
|
|
469
483
|
}
|
|
470
484
|
|
|
471
|
-
return disabledByBetween(start, end,
|
|
485
|
+
return disabledByBetween(start, end, _utils.DATERANGE_DISABLED_TARGET.TOOLBAR_BUTTON_OK);
|
|
472
486
|
}, [disabledByBetween, selectValue]);
|
|
473
487
|
var disabledShortcutButton = (0, _react.useCallback)(function (value) {
|
|
474
488
|
if (value === void 0) {
|
|
@@ -483,7 +497,7 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
483
497
|
return true;
|
|
484
498
|
}
|
|
485
499
|
|
|
486
|
-
return disabledByBetween(start, end,
|
|
500
|
+
return disabledByBetween(start, end, _utils.DATERANGE_DISABLED_TARGET.TOOLBAR_SHORTCUT);
|
|
487
501
|
}, [disabledByBetween]);
|
|
488
502
|
var handleDisabledDate = (0, _react.useCallback)(function (date, values, type) {
|
|
489
503
|
return disabledDate(date, values, hasDoneSelect.current, type);
|
|
@@ -519,12 +533,13 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
519
533
|
showWeekNumbers: showWeekNumbers,
|
|
520
534
|
value: selectValue,
|
|
521
535
|
onChangeCalendarDate: handleChangeCalendarDate,
|
|
536
|
+
onChangeCalendarTime: handleChangeCalendarTime,
|
|
522
537
|
onMouseMove: handleMouseMove,
|
|
523
538
|
onSelect: handleSelectValueChange
|
|
524
539
|
};
|
|
525
540
|
return /*#__PURE__*/_react.default.createElement(_Picker.PickerOverlay, {
|
|
526
541
|
className: classes,
|
|
527
|
-
ref: (0,
|
|
542
|
+
ref: (0, _utils.mergeRefs)(overlayRef, speakerRef),
|
|
528
543
|
target: triggerRef,
|
|
529
544
|
style: styles
|
|
530
545
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
@@ -535,9 +550,9 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
535
550
|
className: prefix('daterange-header')
|
|
536
551
|
}, getDisplayString(selectValue)), /*#__PURE__*/_react.default.createElement("div", {
|
|
537
552
|
className: prefix("daterange-calendar-" + (showOneCalendar ? 'single' : 'group'))
|
|
538
|
-
}, /*#__PURE__*/_react.default.createElement(
|
|
553
|
+
}, /*#__PURE__*/_react.default.createElement(_Calendar2.default, (0, _extends2.default)({
|
|
539
554
|
index: 0
|
|
540
|
-
}, panelProps)), !showOneCalendar && /*#__PURE__*/_react.default.createElement(
|
|
555
|
+
}, panelProps)), !showOneCalendar && /*#__PURE__*/_react.default.createElement(_Calendar2.default, (0, _extends2.default)({
|
|
541
556
|
index: 1
|
|
542
557
|
}, panelProps)))), /*#__PURE__*/_react.default.createElement(_Toolbar.default, {
|
|
543
558
|
locale: locale,
|
|
@@ -564,30 +579,30 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
564
579
|
pickerProps: (0, _pick.default)(props, _Picker.pickTriggerPropKeys),
|
|
565
580
|
ref: triggerRef,
|
|
566
581
|
placement: placement,
|
|
567
|
-
onEnter: (0,
|
|
568
|
-
onEntered: (0,
|
|
569
|
-
onExited: (0,
|
|
582
|
+
onEnter: (0, _utils.createChainedFunction)(handleEnter, onEnter),
|
|
583
|
+
onEntered: (0, _utils.createChainedFunction)(handleEntered, onEntered),
|
|
584
|
+
onExited: (0, _utils.createChainedFunction)(handleExited, onExited),
|
|
570
585
|
speaker: renderDropdownMenu
|
|
571
586
|
}, /*#__PURE__*/_react.default.createElement(Component, {
|
|
572
587
|
ref: rootRef,
|
|
573
588
|
className: merge(className, classes, (_merge = {}, _merge[prefix('error')] = inputState === 'Error', _merge)),
|
|
574
589
|
style: style
|
|
575
|
-
}, /*#__PURE__*/_react.default.createElement(_Picker.PickerToggle, (0, _extends2.default)({}, (0, _omit.default)(rest, [].concat(_Picker.omitTriggerPropKeys, usedClassNamePropKeys,
|
|
590
|
+
}, /*#__PURE__*/_react.default.createElement(_Picker.PickerToggle, (0, _extends2.default)({}, (0, _omit.default)(rest, [].concat(_Picker.omitTriggerPropKeys, usedClassNamePropKeys, _utils.DateUtils.calendarOnlyProps)), {
|
|
576
591
|
as: toggleAs,
|
|
577
592
|
ref: targetRef,
|
|
578
593
|
input: true,
|
|
579
|
-
inputMask:
|
|
594
|
+
inputMask: _utils.DateUtils.getDateMask(rangeFormatStr),
|
|
580
595
|
inputValue: value ? getDisplayString(value, true) : '',
|
|
581
596
|
inputPlaceholder: typeof placeholder === 'string' && placeholder ? placeholder : rangeFormatStr,
|
|
582
597
|
onInputChange: handleInputChange,
|
|
583
598
|
onInputBlur: handleInputBlur,
|
|
584
599
|
onKeyDown: onPickerKeyDown,
|
|
585
|
-
onClean: (0,
|
|
600
|
+
onClean: (0, _utils.createChainedFunction)(handleClean, onClean),
|
|
586
601
|
cleanable: cleanable && !disabled,
|
|
587
602
|
hasValue: hasValue,
|
|
588
603
|
active: isPickerToggleActive,
|
|
589
604
|
placement: placement,
|
|
590
|
-
caretComponent:
|
|
605
|
+
caretComponent: _Calendar.default,
|
|
591
606
|
disabled: disabled
|
|
592
607
|
}), getDisplayString())));
|
|
593
608
|
});
|
|
@@ -4,6 +4,6 @@ export declare function getCalendarDate({ value }: {
|
|
|
4
4
|
value?: ValueType;
|
|
5
5
|
}): ValueType;
|
|
6
6
|
export declare const getDefaultRanges: () => RangeType[];
|
|
7
|
-
export declare const
|
|
7
|
+
export declare const isSameRange: (source: ValueType, dest: ValueType, format: string) => boolean;
|
|
8
8
|
export declare const getMonthHoverRange: (date: Date) => ValueType;
|
|
9
9
|
export declare const getWeekHoverRange: (isoWeek: boolean, date: Date) => ValueType;
|