@transferwise/components 0.0.0-experimental-1a3a746 → 0.0.0-experimental-65c6e3a
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/build/index.js +239 -107
- package/build/index.js.map +1 -1
- package/build/index.mjs +239 -107
- package/build/index.mjs.map +1 -1
- package/build/types/common/dateUtils/isWithinRange/isWithinRange.d.ts +1 -1
- package/build/types/common/dateUtils/isWithinRange/isWithinRange.d.ts.map +1 -1
- package/build/types/common/dateUtils/moveToWithinRange/moveToWithinRange.d.ts +1 -1
- package/build/types/common/dateUtils/moveToWithinRange/moveToWithinRange.d.ts.map +1 -1
- package/build/types/dateLookup/DateLookup.d.ts +28 -80
- package/build/types/dateLookup/DateLookup.d.ts.map +1 -1
- package/build/types/dateLookup/DateLookup.messages.d.ts +63 -42
- package/build/types/dateLookup/DateLookup.messages.d.ts.map +1 -1
- package/build/types/dateLookup/dateHeader/DateHeader.d.ts +22 -9
- package/build/types/dateLookup/dateHeader/DateHeader.d.ts.map +1 -1
- package/build/types/dateLookup/dateHeader/index.d.ts +1 -1
- package/build/types/dateLookup/dateHeader/index.d.ts.map +1 -1
- package/build/types/dateLookup/dateTrigger/DateTrigger.d.ts +31 -13
- package/build/types/dateLookup/dateTrigger/DateTrigger.d.ts.map +1 -1
- package/build/types/dateLookup/dateTrigger/index.d.ts +1 -1
- package/build/types/dateLookup/dateTrigger/index.d.ts.map +1 -1
- package/build/types/dateLookup/dayCalendar/DayCalendar.d.ts +2 -19
- package/build/types/dateLookup/dayCalendar/DayCalendar.d.ts.map +1 -1
- package/build/types/dateLookup/dayCalendar/index.d.ts +1 -1
- package/build/types/dateLookup/dayCalendar/index.d.ts.map +1 -1
- package/build/types/dateLookup/dayCalendar/table/DayCalendarTable.d.ts +2 -12
- package/build/types/dateLookup/dayCalendar/table/DayCalendarTable.d.ts.map +1 -1
- package/build/types/dateLookup/dayCalendar/table/index.d.ts +1 -1
- package/build/types/dateLookup/dayCalendar/table/index.d.ts.map +1 -1
- package/build/types/dateLookup/getStartOfDay/getStartOfDay.d.ts +1 -1
- package/build/types/dateLookup/getStartOfDay/getStartOfDay.d.ts.map +1 -1
- package/build/types/dateLookup/getStartOfDay/index.d.ts +1 -1
- package/build/types/dateLookup/getStartOfDay/index.d.ts.map +1 -1
- package/build/types/dateLookup/index.d.ts +1 -2
- package/build/types/dateLookup/index.d.ts.map +1 -1
- package/build/types/dateLookup/monthCalendar/MonthCalendar.d.ts +2 -17
- package/build/types/dateLookup/monthCalendar/MonthCalendar.d.ts.map +1 -1
- package/build/types/dateLookup/monthCalendar/index.d.ts +1 -1
- package/build/types/dateLookup/monthCalendar/index.d.ts.map +1 -1
- package/build/types/dateLookup/monthCalendar/table/MonthCalendarTable.d.ts +26 -10
- package/build/types/dateLookup/monthCalendar/table/MonthCalendarTable.d.ts.map +1 -1
- package/build/types/dateLookup/monthCalendar/table/index.d.ts +1 -1
- package/build/types/dateLookup/monthCalendar/table/index.d.ts.map +1 -1
- package/build/types/dateLookup/yearCalendar/YearCalendar.d.ts +2 -15
- package/build/types/dateLookup/yearCalendar/YearCalendar.d.ts.map +1 -1
- package/build/types/dateLookup/yearCalendar/index.d.ts +1 -1
- package/build/types/dateLookup/yearCalendar/index.d.ts.map +1 -1
- package/build/types/dateLookup/yearCalendar/table/YearCalendarTable.d.ts +26 -10
- package/build/types/dateLookup/yearCalendar/table/YearCalendarTable.d.ts.map +1 -1
- package/build/types/dateLookup/yearCalendar/table/index.d.ts +1 -1
- package/build/types/dateLookup/yearCalendar/table/index.d.ts.map +1 -1
- package/build/types/index.d.ts +0 -1
- package/build/types/index.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/common/dateUtils/isWithinRange/isWithinRange.spec.ts +0 -21
- package/src/common/dateUtils/isWithinRange/isWithinRange.ts +2 -2
- package/src/common/dateUtils/moveToWithinRange/moveToWithinRange.ts +2 -11
- package/src/dateLookup/{DateLookup.tsx → DateLookup.js} +69 -114
- package/src/dateLookup/DateLookup.state.spec.js +0 -7
- package/src/dateLookup/{DateLookup.story.tsx → DateLookup.story.js} +14 -13
- package/src/dateLookup/dateHeader/{DateHeader.tsx → DateHeader.js} +15 -15
- package/src/dateLookup/dateTrigger/{DateTrigger.tsx → DateTrigger.js} +32 -15
- package/src/dateLookup/dateTrigger/DateTrigger.spec.js +22 -0
- package/src/dateLookup/dayCalendar/{DayCalendar.tsx → DayCalendar.js} +21 -14
- package/src/dateLookup/dayCalendar/table/{DayCalendarTable.tsx → DayCalendarTable.js} +37 -26
- package/src/dateLookup/getStartOfDay/{getStartOfDay.tsx → getStartOfDay.js} +1 -1
- package/src/dateLookup/index.js +1 -0
- package/src/dateLookup/monthCalendar/{MonthCalendar.tsx → MonthCalendar.js} +22 -19
- package/src/dateLookup/monthCalendar/table/{MonthCalendarTable.tsx → MonthCalendarTable.js} +30 -31
- package/src/dateLookup/yearCalendar/{YearCalendar.tsx → YearCalendar.js} +21 -18
- package/src/dateLookup/yearCalendar/table/{YearCalendarTable.tsx → YearCalendarTable.js} +28 -26
- package/src/index.ts +0 -1
- package/src/dateLookup/DateLookup.tests.story.tsx +0 -71
- package/src/dateLookup/index.ts +0 -2
- /package/src/dateLookup/{DateLookup.messages.ts → DateLookup.messages.js} +0 -0
- /package/src/dateLookup/dateHeader/{index.ts → index.js} +0 -0
- /package/src/dateLookup/dateTrigger/{index.ts → index.js} +0 -0
- /package/src/dateLookup/dayCalendar/{index.ts → index.js} +0 -0
- /package/src/dateLookup/dayCalendar/table/{index.ts → index.js} +0 -0
- /package/src/dateLookup/getStartOfDay/{index.ts → index.js} +0 -0
- /package/src/dateLookup/monthCalendar/{index.ts → index.js} +0 -0
- /package/src/dateLookup/monthCalendar/table/{index.ts → index.js} +0 -0
- /package/src/dateLookup/yearCalendar/{index.ts → index.js} +0 -0
- /package/src/dateLookup/yearCalendar/table/{index.ts → index.js} +0 -0
package/build/index.js
CHANGED
|
@@ -16,10 +16,10 @@ var react = require('@floating-ui/react');
|
|
|
16
16
|
var focus = require('@react-aria/focus');
|
|
17
17
|
var overlays = require('@react-aria/overlays');
|
|
18
18
|
var reactTransitionGroup = require('react-transition-group');
|
|
19
|
-
var neptuneValidation = require('@transferwise/neptune-validation');
|
|
20
|
-
var reactDom = require('react-dom');
|
|
21
19
|
var reactPopper = require('react-popper');
|
|
22
20
|
var throttle = require('lodash.throttle');
|
|
21
|
+
var reactDom = require('react-dom');
|
|
22
|
+
var neptuneValidation = require('@transferwise/neptune-validation');
|
|
23
23
|
var commonmark = require('commonmark');
|
|
24
24
|
var art = require('@wise/art');
|
|
25
25
|
var clamp$2 = require('lodash.clamp');
|
|
@@ -2697,20 +2697,11 @@ function getDayNames(locale, format = 'short') {
|
|
|
2697
2697
|
|
|
2698
2698
|
// Makes sure that date is between min and max dates, returns a cloned min or max
|
|
2699
2699
|
function moveToWithinRange(date, min, max) {
|
|
2700
|
-
|
|
2701
|
-
return date;
|
|
2702
|
-
}
|
|
2703
|
-
if (min && date < min) {
|
|
2704
|
-
return new Date(min);
|
|
2705
|
-
}
|
|
2706
|
-
if (max && date > max) {
|
|
2707
|
-
return new Date(max);
|
|
2708
|
-
}
|
|
2709
|
-
return null;
|
|
2700
|
+
return isWithinRange(date, min, max) ? date : new Date(min && date < min ? +min : +max);
|
|
2710
2701
|
}
|
|
2711
2702
|
|
|
2712
2703
|
function isWithinRange(date, min, max) {
|
|
2713
|
-
return (!min || date >= min) && (!max || date <= max);
|
|
2704
|
+
return !date || (!min || date >= min) && (!max || date <= max);
|
|
2714
2705
|
}
|
|
2715
2706
|
|
|
2716
2707
|
const getMonthNames = (locale, format = 'long') => {
|
|
@@ -3234,7 +3225,7 @@ var dateTriggerMessages = reactIntl.defineMessages({
|
|
|
3234
3225
|
|
|
3235
3226
|
const DateTrigger = ({
|
|
3236
3227
|
selectedDate,
|
|
3237
|
-
size
|
|
3228
|
+
size,
|
|
3238
3229
|
placeholder,
|
|
3239
3230
|
label,
|
|
3240
3231
|
monthFormat,
|
|
@@ -3246,6 +3237,19 @@ const DateTrigger = ({
|
|
|
3246
3237
|
locale,
|
|
3247
3238
|
formatMessage
|
|
3248
3239
|
} = reactIntl.useIntl();
|
|
3240
|
+
const handleKeyDown = event => {
|
|
3241
|
+
if (neptuneValidation.isKey({
|
|
3242
|
+
keyType: 'Space',
|
|
3243
|
+
event: event
|
|
3244
|
+
}) || neptuneValidation.isKey({
|
|
3245
|
+
keyType: 'Enter',
|
|
3246
|
+
event: event
|
|
3247
|
+
})) {
|
|
3248
|
+
event.stopPropagation();
|
|
3249
|
+
event.preventDefault();
|
|
3250
|
+
onClear();
|
|
3251
|
+
}
|
|
3252
|
+
};
|
|
3249
3253
|
return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
3250
3254
|
children: [/*#__PURE__*/jsxRuntime.jsxs("button", {
|
|
3251
3255
|
className: `btn btn-${size} btn-input np-date-trigger`,
|
|
@@ -3282,12 +3286,29 @@ const DateTrigger = ({
|
|
|
3282
3286
|
event.stopPropagation();
|
|
3283
3287
|
event.preventDefault();
|
|
3284
3288
|
onClear();
|
|
3285
|
-
}
|
|
3289
|
+
},
|
|
3290
|
+
onKeyPress: handleKeyDown
|
|
3286
3291
|
})
|
|
3287
3292
|
})]
|
|
3288
3293
|
}) : null]
|
|
3289
3294
|
});
|
|
3290
3295
|
};
|
|
3296
|
+
DateTrigger.propTypes = {
|
|
3297
|
+
selectedDate: PropTypes__default.default.instanceOf(Date),
|
|
3298
|
+
size: PropTypes__default.default.oneOf(['sm', 'md', 'lg']),
|
|
3299
|
+
placeholder: PropTypes__default.default.string.isRequired,
|
|
3300
|
+
label: PropTypes__default.default.string.isRequired,
|
|
3301
|
+
monthFormat: PropTypes__default.default.oneOf(['short', 'long']).isRequired,
|
|
3302
|
+
disabled: PropTypes__default.default.bool.isRequired,
|
|
3303
|
+
onClick: PropTypes__default.default.func,
|
|
3304
|
+
onClear: PropTypes__default.default.func
|
|
3305
|
+
};
|
|
3306
|
+
DateTrigger.defaultProps = {
|
|
3307
|
+
selectedDate: null,
|
|
3308
|
+
size: exports.Size.MEDIUM,
|
|
3309
|
+
onClear: undefined
|
|
3310
|
+
};
|
|
3311
|
+
var DateTrigger$1 = DateTrigger;
|
|
3291
3312
|
|
|
3292
3313
|
var messages$8 = reactIntl.defineMessages({
|
|
3293
3314
|
next: {
|
|
@@ -3369,6 +3390,18 @@ const DateHeader = ({
|
|
|
3369
3390
|
})]
|
|
3370
3391
|
});
|
|
3371
3392
|
};
|
|
3393
|
+
DateHeader.propTypes = {
|
|
3394
|
+
label: PropTypes__default.default.string,
|
|
3395
|
+
onLabelClick: PropTypes__default.default.func,
|
|
3396
|
+
onPreviousClick: PropTypes__default.default.func.isRequired,
|
|
3397
|
+
onNextClick: PropTypes__default.default.func.isRequired,
|
|
3398
|
+
dateMode: PropTypes__default.default.string
|
|
3399
|
+
};
|
|
3400
|
+
DateHeader.defaultProps = {
|
|
3401
|
+
label: null,
|
|
3402
|
+
onLabelClick: () => {}
|
|
3403
|
+
};
|
|
3404
|
+
var DateHeader$1 = DateHeader;
|
|
3372
3405
|
|
|
3373
3406
|
function getFocusableTime(props) {
|
|
3374
3407
|
return props.timeSpan.find(time => props.isActive(time)) || props.timeSpan.find(time => props.isNow(time) && !props.isDisabled(time)) || props.timeSpan.find(time => !props.isDisabled(time));
|
|
@@ -3454,9 +3487,10 @@ class DayCalendarTable extends React.PureComponent {
|
|
|
3454
3487
|
let week = [];
|
|
3455
3488
|
const weeks = [];
|
|
3456
3489
|
let i;
|
|
3490
|
+
|
|
3457
3491
|
// Pad first week
|
|
3458
3492
|
for (i = 1; i < firstDayOfMonth; i += 1) {
|
|
3459
|
-
week.push(
|
|
3493
|
+
week.push(false);
|
|
3460
3494
|
}
|
|
3461
3495
|
// Fill in days
|
|
3462
3496
|
for (i = 1; i <= daysInMonth; i += 1) {
|
|
@@ -3469,7 +3503,7 @@ class DayCalendarTable extends React.PureComponent {
|
|
|
3469
3503
|
if (week.length > 0) {
|
|
3470
3504
|
// Pad last week
|
|
3471
3505
|
for (i = week.length; i < 7; i += 1) {
|
|
3472
|
-
week.push(
|
|
3506
|
+
week.push(false);
|
|
3473
3507
|
}
|
|
3474
3508
|
weeks.push(week);
|
|
3475
3509
|
}
|
|
@@ -3524,10 +3558,12 @@ class DayCalendarTable extends React.PureComponent {
|
|
|
3524
3558
|
const {
|
|
3525
3559
|
viewMonth,
|
|
3526
3560
|
viewYear,
|
|
3527
|
-
intl
|
|
3561
|
+
intl: {
|
|
3562
|
+
locale
|
|
3563
|
+
}
|
|
3528
3564
|
} = this.props;
|
|
3529
3565
|
const weeks = this.getTableStructure();
|
|
3530
|
-
|
|
3566
|
+
let autoFocusDay = this.getAutofocusDay(weeks, viewMonth, viewYear);
|
|
3531
3567
|
return /*#__PURE__*/jsxRuntime.jsxs("table", {
|
|
3532
3568
|
className: "table table-condensed table-bordered tw-date-lookup-calendar m-b-0",
|
|
3533
3569
|
children: [/*#__PURE__*/jsxRuntime.jsx("thead", {
|
|
@@ -3553,12 +3589,12 @@ class DayCalendarTable extends React.PureComponent {
|
|
|
3553
3589
|
children: weeks.map((week, weekIndex) => /*#__PURE__*/jsxRuntime.jsx("tr", {
|
|
3554
3590
|
children: week.map((day, dayIndex) => /*#__PURE__*/jsxRuntime.jsx("td", {
|
|
3555
3591
|
className: dayIndex > 4 ? 'weekend' : '',
|
|
3556
|
-
children: day
|
|
3592
|
+
children: day && /*#__PURE__*/jsxRuntime.jsx(TableLink, {
|
|
3557
3593
|
item: day,
|
|
3558
3594
|
type: "day",
|
|
3559
|
-
title: formatting.formatDate(new Date(viewYear, viewMonth, day),
|
|
3595
|
+
title: formatting.formatDate(new Date(viewYear, viewMonth, day), locale, SHORT_DAY_FORMAT),
|
|
3560
3596
|
autofocus: day === autoFocusDay,
|
|
3561
|
-
longTitle: formatting.formatDate(new Date(viewYear, viewMonth, day),
|
|
3597
|
+
longTitle: formatting.formatDate(new Date(viewYear, viewMonth, day), locale),
|
|
3562
3598
|
active: this.isActive(day),
|
|
3563
3599
|
disabled: this.isDisabled(day),
|
|
3564
3600
|
today: this.isToday(day),
|
|
@@ -3570,6 +3606,19 @@ class DayCalendarTable extends React.PureComponent {
|
|
|
3570
3606
|
});
|
|
3571
3607
|
}
|
|
3572
3608
|
}
|
|
3609
|
+
DayCalendarTable.propTypes = {
|
|
3610
|
+
selectedDate: PropTypes__default.default.instanceOf(Date),
|
|
3611
|
+
min: PropTypes__default.default.instanceOf(Date),
|
|
3612
|
+
max: PropTypes__default.default.instanceOf(Date),
|
|
3613
|
+
viewMonth: PropTypes__default.default.number.isRequired,
|
|
3614
|
+
viewYear: PropTypes__default.default.number.isRequired,
|
|
3615
|
+
onSelect: PropTypes__default.default.func.isRequired
|
|
3616
|
+
};
|
|
3617
|
+
DayCalendarTable.defaultProps = {
|
|
3618
|
+
selectedDate: null,
|
|
3619
|
+
min: null,
|
|
3620
|
+
max: null
|
|
3621
|
+
};
|
|
3573
3622
|
var DayCalendarTable$1 = reactIntl.injectIntl(DayCalendarTable);
|
|
3574
3623
|
|
|
3575
3624
|
class DayCalendar extends React.PureComponent {
|
|
@@ -3609,7 +3658,7 @@ class DayCalendar extends React.PureComponent {
|
|
|
3609
3658
|
onSelect
|
|
3610
3659
|
} = this.props;
|
|
3611
3660
|
return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
3612
|
-
children: [/*#__PURE__*/jsxRuntime.jsx(DateHeader, {
|
|
3661
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(DateHeader$1, {
|
|
3613
3662
|
label: formatting.formatDate(new Date(viewYear, viewMonth), locale, {
|
|
3614
3663
|
month: monthFormat,
|
|
3615
3664
|
year: 'numeric'
|
|
@@ -3629,6 +3678,22 @@ class DayCalendar extends React.PureComponent {
|
|
|
3629
3678
|
});
|
|
3630
3679
|
}
|
|
3631
3680
|
}
|
|
3681
|
+
DayCalendar.propTypes = {
|
|
3682
|
+
selectedDate: PropTypes__default.default.instanceOf(Date),
|
|
3683
|
+
min: PropTypes__default.default.instanceOf(Date),
|
|
3684
|
+
max: PropTypes__default.default.instanceOf(Date),
|
|
3685
|
+
viewMonth: PropTypes__default.default.number.isRequired,
|
|
3686
|
+
viewYear: PropTypes__default.default.number.isRequired,
|
|
3687
|
+
monthFormat: PropTypes__default.default.oneOf([exports.MonthFormat.LONG, exports.MonthFormat.SHORT]).isRequired,
|
|
3688
|
+
onSelect: PropTypes__default.default.func.isRequired,
|
|
3689
|
+
onLabelClick: PropTypes__default.default.func.isRequired,
|
|
3690
|
+
onViewDateUpdate: PropTypes__default.default.func.isRequired
|
|
3691
|
+
};
|
|
3692
|
+
DayCalendar.defaultProps = {
|
|
3693
|
+
selectedDate: null,
|
|
3694
|
+
min: null,
|
|
3695
|
+
max: null
|
|
3696
|
+
};
|
|
3632
3697
|
var DayCalendar$1 = reactIntl.injectIntl(DayCalendar);
|
|
3633
3698
|
|
|
3634
3699
|
const ROWS$1 = 3;
|
|
@@ -3660,7 +3725,7 @@ const MonthCalendarTable = ({
|
|
|
3660
3725
|
});
|
|
3661
3726
|
};
|
|
3662
3727
|
const isActive = month => {
|
|
3663
|
-
return
|
|
3728
|
+
return selectedDate && month === selectedDate.getMonth() && viewYear === selectedDate.getFullYear();
|
|
3664
3729
|
};
|
|
3665
3730
|
const isThisMonth = month => {
|
|
3666
3731
|
return viewYear === new Date().getFullYear() && month === new Date().getMonth();
|
|
@@ -3684,23 +3749,33 @@ const MonthCalendarTable = ({
|
|
|
3684
3749
|
className: "sr-only",
|
|
3685
3750
|
children: /*#__PURE__*/jsxRuntime.jsx("tr", {
|
|
3686
3751
|
children: /*#__PURE__*/jsxRuntime.jsx("th", {
|
|
3687
|
-
colSpan:
|
|
3752
|
+
colSpan: "3",
|
|
3688
3753
|
children: placeholder
|
|
3689
3754
|
})
|
|
3690
3755
|
})
|
|
3691
3756
|
}), /*#__PURE__*/jsxRuntime.jsx("tbody", {
|
|
3692
|
-
children: Array.
|
|
3693
|
-
|
|
3694
|
-
}, (_, rowIndex) => /*#__PURE__*/jsxRuntime.jsx("tr", {
|
|
3695
|
-
children: Array.from({
|
|
3696
|
-
length: COLS$1
|
|
3697
|
-
}, (_, colIndex) => /*#__PURE__*/jsxRuntime.jsx("td", {
|
|
3757
|
+
children: [...new Array(ROWS$1)].map((row, rowIndex) => /*#__PURE__*/jsxRuntime.jsx("tr", {
|
|
3758
|
+
children: [...new Array(COLS$1)].map((col, colIndex) => /*#__PURE__*/jsxRuntime.jsx("td", {
|
|
3698
3759
|
children: getLink(rowIndex * COLS$1 + colIndex)
|
|
3699
3760
|
}, colIndex))
|
|
3700
3761
|
}, rowIndex))
|
|
3701
3762
|
})]
|
|
3702
3763
|
});
|
|
3703
3764
|
};
|
|
3765
|
+
MonthCalendarTable.propTypes = {
|
|
3766
|
+
selectedDate: PropTypes__default.default.instanceOf(Date),
|
|
3767
|
+
min: PropTypes__default.default.instanceOf(Date),
|
|
3768
|
+
max: PropTypes__default.default.instanceOf(Date),
|
|
3769
|
+
viewYear: PropTypes__default.default.number.isRequired,
|
|
3770
|
+
placeholder: PropTypes__default.default.string.isRequired,
|
|
3771
|
+
onSelect: PropTypes__default.default.func.isRequired
|
|
3772
|
+
};
|
|
3773
|
+
MonthCalendarTable.defaultProps = {
|
|
3774
|
+
selectedDate: null,
|
|
3775
|
+
min: null,
|
|
3776
|
+
max: null
|
|
3777
|
+
};
|
|
3778
|
+
var MonthCalendarTable$1 = MonthCalendarTable;
|
|
3704
3779
|
|
|
3705
3780
|
class MonthCalendar extends React.PureComponent {
|
|
3706
3781
|
onMonthSelect = month => {
|
|
@@ -3733,7 +3808,7 @@ class MonthCalendar extends React.PureComponent {
|
|
|
3733
3808
|
onLabelClick
|
|
3734
3809
|
} = this.props;
|
|
3735
3810
|
return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
3736
|
-
children: [/*#__PURE__*/jsxRuntime.jsx(DateHeader, {
|
|
3811
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(DateHeader$1, {
|
|
3737
3812
|
dateMode: formatMessage(messages$8.year),
|
|
3738
3813
|
label: formatting.formatDate(new Date(viewYear, 0), locale, {
|
|
3739
3814
|
year: 'numeric'
|
|
@@ -3741,17 +3816,32 @@ class MonthCalendar extends React.PureComponent {
|
|
|
3741
3816
|
onLabelClick: onLabelClick,
|
|
3742
3817
|
onPreviousClick: this.selectPreviousYear,
|
|
3743
3818
|
onNextClick: this.selectNextYear
|
|
3744
|
-
}), /*#__PURE__*/jsxRuntime.jsx(MonthCalendarTable, {
|
|
3745
|
-
selectedDate
|
|
3746
|
-
min
|
|
3747
|
-
max
|
|
3748
|
-
viewYear
|
|
3749
|
-
placeholder
|
|
3819
|
+
}), /*#__PURE__*/jsxRuntime.jsx(MonthCalendarTable$1, {
|
|
3820
|
+
selectedDate,
|
|
3821
|
+
min,
|
|
3822
|
+
max,
|
|
3823
|
+
viewYear,
|
|
3824
|
+
placeholder,
|
|
3750
3825
|
onSelect: this.onMonthSelect
|
|
3751
3826
|
})]
|
|
3752
3827
|
});
|
|
3753
3828
|
}
|
|
3754
3829
|
}
|
|
3830
|
+
MonthCalendar.propTypes = {
|
|
3831
|
+
selectedDate: PropTypes__default.default.instanceOf(Date),
|
|
3832
|
+
min: PropTypes__default.default.instanceOf(Date),
|
|
3833
|
+
max: PropTypes__default.default.instanceOf(Date),
|
|
3834
|
+
viewYear: PropTypes__default.default.number.isRequired,
|
|
3835
|
+
placeholder: PropTypes__default.default.string.isRequired,
|
|
3836
|
+
onSelect: PropTypes__default.default.func.isRequired,
|
|
3837
|
+
onLabelClick: PropTypes__default.default.func.isRequired,
|
|
3838
|
+
onViewDateUpdate: PropTypes__default.default.func.isRequired
|
|
3839
|
+
};
|
|
3840
|
+
MonthCalendar.defaultProps = {
|
|
3841
|
+
selectedDate: null,
|
|
3842
|
+
min: null,
|
|
3843
|
+
max: null
|
|
3844
|
+
};
|
|
3755
3845
|
var MonthCalendar$1 = reactIntl.injectIntl(MonthCalendar);
|
|
3756
3846
|
|
|
3757
3847
|
const ROWS = 5;
|
|
@@ -3807,23 +3897,33 @@ const YearCalendarTable = ({
|
|
|
3807
3897
|
className: "sr-only",
|
|
3808
3898
|
children: /*#__PURE__*/jsxRuntime.jsx("tr", {
|
|
3809
3899
|
children: /*#__PURE__*/jsxRuntime.jsx("th", {
|
|
3810
|
-
colSpan:
|
|
3900
|
+
colSpan: "4",
|
|
3811
3901
|
children: placeholder
|
|
3812
3902
|
})
|
|
3813
3903
|
})
|
|
3814
3904
|
}), /*#__PURE__*/jsxRuntime.jsx("tbody", {
|
|
3815
|
-
children: Array.
|
|
3816
|
-
|
|
3817
|
-
}, (_, rowIndex) => /*#__PURE__*/jsxRuntime.jsx("tr", {
|
|
3818
|
-
children: Array.from({
|
|
3819
|
-
length: COLS
|
|
3820
|
-
}, (_, colIndex) => /*#__PURE__*/jsxRuntime.jsx("td", {
|
|
3905
|
+
children: [...new Array(ROWS)].map((row, rowIndex) => /*#__PURE__*/jsxRuntime.jsx("tr", {
|
|
3906
|
+
children: [...new Array(COLS)].map((col, colIndex) => /*#__PURE__*/jsxRuntime.jsx("td", {
|
|
3821
3907
|
children: getLink(startYear + rowIndex * COLS + colIndex)
|
|
3822
3908
|
}, colIndex))
|
|
3823
3909
|
}, rowIndex))
|
|
3824
3910
|
})]
|
|
3825
3911
|
});
|
|
3826
3912
|
};
|
|
3913
|
+
YearCalendarTable.propTypes = {
|
|
3914
|
+
selectedDate: PropTypes__default.default.instanceOf(Date),
|
|
3915
|
+
min: PropTypes__default.default.instanceOf(Date),
|
|
3916
|
+
max: PropTypes__default.default.instanceOf(Date),
|
|
3917
|
+
viewYear: PropTypes__default.default.number.isRequired,
|
|
3918
|
+
placeholder: PropTypes__default.default.string.isRequired,
|
|
3919
|
+
onSelect: PropTypes__default.default.func.isRequired
|
|
3920
|
+
};
|
|
3921
|
+
YearCalendarTable.defaultProps = {
|
|
3922
|
+
selectedDate: null,
|
|
3923
|
+
min: null,
|
|
3924
|
+
max: null
|
|
3925
|
+
};
|
|
3926
|
+
var YearCalendarTable$1 = YearCalendarTable;
|
|
3827
3927
|
|
|
3828
3928
|
class YearCalendar extends React.PureComponent {
|
|
3829
3929
|
onYearSelect = year => {
|
|
@@ -3854,21 +3954,35 @@ class YearCalendar extends React.PureComponent {
|
|
|
3854
3954
|
}
|
|
3855
3955
|
} = this.props;
|
|
3856
3956
|
return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
3857
|
-
children: [/*#__PURE__*/jsxRuntime.jsx(DateHeader, {
|
|
3957
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(DateHeader$1, {
|
|
3858
3958
|
dateMode: formatMessage(messages$8.twentyYears),
|
|
3859
3959
|
onPreviousClick: this.selectPreviousYears,
|
|
3860
3960
|
onNextClick: this.selectNextYears
|
|
3861
|
-
}), /*#__PURE__*/jsxRuntime.jsx(YearCalendarTable, {
|
|
3862
|
-
selectedDate
|
|
3863
|
-
min
|
|
3864
|
-
max
|
|
3865
|
-
viewYear
|
|
3866
|
-
placeholder
|
|
3961
|
+
}), /*#__PURE__*/jsxRuntime.jsx(YearCalendarTable$1, {
|
|
3962
|
+
selectedDate,
|
|
3963
|
+
min,
|
|
3964
|
+
max,
|
|
3965
|
+
viewYear,
|
|
3966
|
+
placeholder,
|
|
3867
3967
|
onSelect: this.onYearSelect
|
|
3868
3968
|
})]
|
|
3869
3969
|
});
|
|
3870
3970
|
}
|
|
3871
3971
|
}
|
|
3972
|
+
YearCalendar.propTypes = {
|
|
3973
|
+
selectedDate: PropTypes__default.default.instanceOf(Date),
|
|
3974
|
+
min: PropTypes__default.default.instanceOf(Date),
|
|
3975
|
+
max: PropTypes__default.default.instanceOf(Date),
|
|
3976
|
+
viewYear: PropTypes__default.default.number.isRequired,
|
|
3977
|
+
placeholder: PropTypes__default.default.string.isRequired,
|
|
3978
|
+
onSelect: PropTypes__default.default.func.isRequired,
|
|
3979
|
+
onViewDateUpdate: PropTypes__default.default.func.isRequired
|
|
3980
|
+
};
|
|
3981
|
+
YearCalendar.defaultProps = {
|
|
3982
|
+
selectedDate: null,
|
|
3983
|
+
min: null,
|
|
3984
|
+
max: null
|
|
3985
|
+
};
|
|
3872
3986
|
var YearCalendar$1 = reactIntl.injectIntl(YearCalendar);
|
|
3873
3987
|
|
|
3874
3988
|
const MODE = {
|
|
@@ -3877,17 +3991,6 @@ const MODE = {
|
|
|
3877
3991
|
YEAR: 'year'
|
|
3878
3992
|
};
|
|
3879
3993
|
class DateLookup extends React.PureComponent {
|
|
3880
|
-
static defaultProps = {
|
|
3881
|
-
value: null,
|
|
3882
|
-
min: null,
|
|
3883
|
-
max: null,
|
|
3884
|
-
size: exports.Size.MEDIUM,
|
|
3885
|
-
placeholder: '',
|
|
3886
|
-
label: '',
|
|
3887
|
-
monthFormat: exports.MonthFormat.LONG,
|
|
3888
|
-
disabled: false,
|
|
3889
|
-
clearable: false
|
|
3890
|
-
};
|
|
3891
3994
|
element = /*#__PURE__*/React.createRef();
|
|
3892
3995
|
dropdown = /*#__PURE__*/React.createRef();
|
|
3893
3996
|
constructor(props) {
|
|
@@ -3895,8 +3998,8 @@ class DateLookup extends React.PureComponent {
|
|
|
3895
3998
|
this.state = {
|
|
3896
3999
|
selectedDate: getStartOfDay(props.value),
|
|
3897
4000
|
originalDate: null,
|
|
3898
|
-
min: getStartOfDay(props.min
|
|
3899
|
-
max: getStartOfDay(props.max
|
|
4001
|
+
min: getStartOfDay(props.min),
|
|
4002
|
+
max: getStartOfDay(props.max),
|
|
3900
4003
|
viewMonth: (props.value || new Date()).getMonth(),
|
|
3901
4004
|
viewYear: (props.value || new Date()).getFullYear(),
|
|
3902
4005
|
open: false,
|
|
@@ -3906,22 +4009,22 @@ class DateLookup extends React.PureComponent {
|
|
|
3906
4009
|
}
|
|
3907
4010
|
static getDerivedStateFromProps(props, state) {
|
|
3908
4011
|
const propsSelected = getStartOfDay(props.value);
|
|
3909
|
-
const propsMin = getStartOfDay(props.min
|
|
3910
|
-
const propsMax = getStartOfDay(props.max
|
|
3911
|
-
const hasSelectedChanged = state.selectedDate
|
|
3912
|
-
const hasMinChanged = state.min
|
|
3913
|
-
const hasMaxChanged = state.max
|
|
4012
|
+
const propsMin = getStartOfDay(props.min);
|
|
4013
|
+
const propsMax = getStartOfDay(props.max);
|
|
4014
|
+
const hasSelectedChanged = +state.selectedDate !== +propsSelected;
|
|
4015
|
+
const hasMinChanged = +state.min !== +propsMin;
|
|
4016
|
+
const hasMaxChanged = +state.max !== +propsMax;
|
|
3914
4017
|
if (hasSelectedChanged || hasMinChanged || hasMaxChanged) {
|
|
3915
4018
|
const selectedDate = hasSelectedChanged ? propsSelected : state.selectedDate;
|
|
3916
4019
|
const min = hasMinChanged ? propsMin : state.min;
|
|
3917
4020
|
const max = hasMaxChanged ? propsMax : state.max;
|
|
3918
|
-
|
|
4021
|
+
// make sure that selected date is within allowed range
|
|
4022
|
+
if (!isWithinRange(selectedDate, min, max)) {
|
|
3919
4023
|
props.onChange(moveToWithinRange(selectedDate, min, max));
|
|
3920
4024
|
return null;
|
|
3921
4025
|
}
|
|
3922
|
-
const
|
|
3923
|
-
const
|
|
3924
|
-
const viewYear = viewDateThatIsWithinRange.getFullYear();
|
|
4026
|
+
const viewMonth = (selectedDate || new Date()).getMonth();
|
|
4027
|
+
const viewYear = (selectedDate || new Date()).getFullYear();
|
|
3925
4028
|
return {
|
|
3926
4029
|
selectedDate,
|
|
3927
4030
|
min,
|
|
@@ -3933,12 +4036,12 @@ class DateLookup extends React.PureComponent {
|
|
|
3933
4036
|
return null;
|
|
3934
4037
|
}
|
|
3935
4038
|
componentDidUpdate(previousProps) {
|
|
3936
|
-
if (this.props.value
|
|
4039
|
+
if (+this.props.value !== +previousProps.value && this.state.open) {
|
|
3937
4040
|
this.focusOn('.active');
|
|
3938
4041
|
}
|
|
3939
|
-
|
|
4042
|
+
this.mediaQuery = window.matchMedia(`(max-width: ${exports.Breakpoint.SMALL}px)`);
|
|
3940
4043
|
this.setState({
|
|
3941
|
-
isMobile: mediaQuery.matches
|
|
4044
|
+
isMobile: this.mediaQuery.matches
|
|
3942
4045
|
});
|
|
3943
4046
|
}
|
|
3944
4047
|
componentWillUnmount() {
|
|
@@ -4044,15 +4147,13 @@ class DateLookup extends React.PureComponent {
|
|
|
4044
4147
|
} else {
|
|
4045
4148
|
date = getStartOfDay(new Date());
|
|
4046
4149
|
}
|
|
4047
|
-
|
|
4048
|
-
|
|
4049
|
-
}
|
|
4050
|
-
if (date?.getTime() !== selectedDate?.getTime()) {
|
|
4150
|
+
date = moveToWithinRange(date, min, max);
|
|
4151
|
+
if (+date !== +selectedDate) {
|
|
4051
4152
|
this.props.onChange(date);
|
|
4052
4153
|
}
|
|
4053
4154
|
};
|
|
4054
4155
|
focusOn = (preferredElement, fallbackElement) => {
|
|
4055
|
-
const element = this.element.current
|
|
4156
|
+
const element = this.element.current.querySelector(preferredElement);
|
|
4056
4157
|
if (element) {
|
|
4057
4158
|
element.focus();
|
|
4058
4159
|
} else if (fallbackElement) {
|
|
@@ -4106,30 +4207,30 @@ class DateLookup extends React.PureComponent {
|
|
|
4106
4207
|
'p-a-1': !isMobile
|
|
4107
4208
|
}),
|
|
4108
4209
|
children: [mode === MODE.DAY && /*#__PURE__*/jsxRuntime.jsx(DayCalendar$1, {
|
|
4109
|
-
selectedDate
|
|
4110
|
-
min
|
|
4111
|
-
max
|
|
4112
|
-
viewMonth
|
|
4113
|
-
viewYear
|
|
4114
|
-
monthFormat
|
|
4210
|
+
selectedDate,
|
|
4211
|
+
min,
|
|
4212
|
+
max,
|
|
4213
|
+
viewMonth,
|
|
4214
|
+
viewYear,
|
|
4215
|
+
monthFormat,
|
|
4115
4216
|
onSelect: this.handleSelectedDateUpdate,
|
|
4116
4217
|
onLabelClick: this.switchToYears,
|
|
4117
4218
|
onViewDateUpdate: this.handleViewDateUpdate
|
|
4118
4219
|
}), mode === MODE.MONTH && /*#__PURE__*/jsxRuntime.jsx(MonthCalendar$1, {
|
|
4119
|
-
selectedDate
|
|
4120
|
-
min
|
|
4121
|
-
max
|
|
4122
|
-
viewYear
|
|
4123
|
-
placeholder
|
|
4220
|
+
selectedDate,
|
|
4221
|
+
min,
|
|
4222
|
+
max,
|
|
4223
|
+
viewYear,
|
|
4224
|
+
placeholder,
|
|
4124
4225
|
onSelect: this.switchToDays,
|
|
4125
4226
|
onLabelClick: this.switchToYears,
|
|
4126
4227
|
onViewDateUpdate: this.handleViewDateUpdate
|
|
4127
4228
|
}), mode === MODE.YEAR && /*#__PURE__*/jsxRuntime.jsx(YearCalendar$1, {
|
|
4128
|
-
selectedDate
|
|
4129
|
-
min
|
|
4130
|
-
max
|
|
4131
|
-
viewYear
|
|
4132
|
-
placeholder
|
|
4229
|
+
selectedDate,
|
|
4230
|
+
min,
|
|
4231
|
+
max,
|
|
4232
|
+
viewYear,
|
|
4233
|
+
placeholder,
|
|
4133
4234
|
onSelect: this.switchToMonths,
|
|
4134
4235
|
onViewDateUpdate: this.handleViewDateUpdate
|
|
4135
4236
|
})]
|
|
@@ -4155,20 +4256,21 @@ class DateLookup extends React.PureComponent {
|
|
|
4155
4256
|
value
|
|
4156
4257
|
} = this.props;
|
|
4157
4258
|
return /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
4259
|
+
// eslint-disable-line jsx-a11y/no-static-element-interactions
|
|
4158
4260
|
ref: this.element,
|
|
4159
4261
|
id: this.props.id,
|
|
4160
4262
|
"aria-labelledby": ariaLabelledBy,
|
|
4161
4263
|
className: "input-group",
|
|
4162
4264
|
onKeyDown: this.handleKeyDown,
|
|
4163
|
-
children: [/*#__PURE__*/jsxRuntime.jsx(DateTrigger, {
|
|
4164
|
-
selectedDate
|
|
4165
|
-
size
|
|
4166
|
-
placeholder
|
|
4167
|
-
label
|
|
4168
|
-
monthFormat
|
|
4169
|
-
disabled
|
|
4265
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(DateTrigger$1, {
|
|
4266
|
+
selectedDate,
|
|
4267
|
+
size,
|
|
4268
|
+
placeholder,
|
|
4269
|
+
label,
|
|
4270
|
+
monthFormat,
|
|
4271
|
+
disabled,
|
|
4170
4272
|
onClick: this.open,
|
|
4171
|
-
onClear: !disabled && clearable && value ? this.handleClear :
|
|
4273
|
+
onClear: !disabled && clearable && value ? this.handleClear : null
|
|
4172
4274
|
}), /*#__PURE__*/jsxRuntime.jsx(ResponsivePanel$1, {
|
|
4173
4275
|
anchorRef: this.element,
|
|
4174
4276
|
open: open,
|
|
@@ -4180,6 +4282,36 @@ class DateLookup extends React.PureComponent {
|
|
|
4180
4282
|
});
|
|
4181
4283
|
}
|
|
4182
4284
|
}
|
|
4285
|
+
DateLookup.propTypes = {
|
|
4286
|
+
id: PropTypes__default.default.string,
|
|
4287
|
+
value: PropTypes__default.default.instanceOf(Date),
|
|
4288
|
+
min: PropTypes__default.default.instanceOf(Date),
|
|
4289
|
+
max: PropTypes__default.default.instanceOf(Date),
|
|
4290
|
+
size: PropTypes__default.default.oneOf(['sm', 'md', 'lg']),
|
|
4291
|
+
placeholder: PropTypes__default.default.string,
|
|
4292
|
+
label: PropTypes__default.default.string,
|
|
4293
|
+
'aria-labelledby': PropTypes__default.default.string,
|
|
4294
|
+
monthFormat: PropTypes__default.default.oneOf(['long', 'short']),
|
|
4295
|
+
disabled: PropTypes__default.default.bool,
|
|
4296
|
+
onChange: PropTypes__default.default.func.isRequired,
|
|
4297
|
+
onFocus: PropTypes__default.default.func,
|
|
4298
|
+
onBlur: PropTypes__default.default.func,
|
|
4299
|
+
clearable: PropTypes__default.default.bool
|
|
4300
|
+
};
|
|
4301
|
+
DateLookup.defaultProps = {
|
|
4302
|
+
value: null,
|
|
4303
|
+
min: null,
|
|
4304
|
+
max: null,
|
|
4305
|
+
size: exports.Size.MEDIUM,
|
|
4306
|
+
placeholder: '',
|
|
4307
|
+
label: '',
|
|
4308
|
+
monthFormat: exports.MonthFormat.LONG,
|
|
4309
|
+
disabled: false,
|
|
4310
|
+
onFocus: null,
|
|
4311
|
+
onBlur: null,
|
|
4312
|
+
clearable: false
|
|
4313
|
+
};
|
|
4314
|
+
var DateLookup$1 = DateLookup;
|
|
4183
4315
|
|
|
4184
4316
|
const NavigationOption = /*#__PURE__*/React.forwardRef(({
|
|
4185
4317
|
as: component = 'button',
|
|
@@ -15062,7 +15194,7 @@ exports.CriticalCommsBanner = CriticalCommsBanner;
|
|
|
15062
15194
|
exports.DEFAULT_LANG = DEFAULT_LANG;
|
|
15063
15195
|
exports.DEFAULT_LOCALE = DEFAULT_LOCALE;
|
|
15064
15196
|
exports.DateInput = DateInput;
|
|
15065
|
-
exports.DateLookup = DateLookup;
|
|
15197
|
+
exports.DateLookup = DateLookup$1;
|
|
15066
15198
|
exports.Decision = Decision;
|
|
15067
15199
|
exports.DefinitionList = DefinitionList$1;
|
|
15068
15200
|
exports.Dimmer = Dimmer$1;
|